DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion de Windows / Fonctions diverses Windows
  • Fonctionnement
  • Configuration nécessaire
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
OpenSSLVérifie (Fonction)
En anglais : OpenSSLCheck
Vérifie grâce à une clé publique que la signature de données réalisée avec la bibliothèque OpenSSL est correcte.
Attention : Cette fonction ne gère que la vérification d'une signature au format RSA + SHA1. Pour gérer des formats supplémentaires, il est conseillé d'utiliser la fonction CertificatVérifieChaîne.
Exemple
sCléPublique est une chaîne = [
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDi8S01w2xZzE00dzSEaoFqsOuv
WFRHqwnSYXRV9pazpLMRW6M8mFBow7CwVNI26JTU0pXopOGTf0dHVwR8i/AS/mYi
3YdmSkeFJ5PTtOqupr1OWW9GjIciDzyg12CJyH59UoG3anNC8Zy3LfG8bpoUxb/E
9V+5yUZz4akdeNpU7wIDAQAB
-----END PUBLIC KEY-----
]
 
sData est une chaîne = [
Date 31/08/2012
Commande #123456
-----------------------------------
1 Fauteuil en cuir : 125.90 €
6 Assiettes à poisson : 54.99 €
-----------------------------------
TOTAL : 180.89 €
]
 
sDataSignéeBase64 est une chaîne = [
wmn3lM4anUpdhUyBkarlYQK7Ftzf7dA6HOoSlZUilsk9YxNooV8nOyRrMq8eCIWY
5h3J7noxhkkhEMz0TWpen0FCYE57jHwDTKTLtmIIQONKZPTD2vKJgc8wifejm0jH
zSsRhRm8o2iqfPuSSSZlXxoPWLihKmU3NqlNqIFUwx4=
 
]
 
SI OpenSSLVérifie(sData, sDataSignéeBase64, sCléPublique) ALORS
Info("La signature est correcte")
SINON
Erreur("La signature est incorrecte")
FIN
// Vérification de la signature de données transmises par PayBox
Données est une chaîne = [
montant=500&ref=634762387633462156_1329&auto=XXXXXX&
trans=405476423&erreur=00000&idtrans=406494010&abonnement=0
]
Signature est une chaîne = [
npArYMsKpBYQ3XFyouN32Q1Z5/HxEpXCiYrjks6ZQD8RPFfoJ4hEVnm1WD7tDCvEkS
awAfyaN3jUG7tHjc3NR1gnjoZREz3LSjsr128GUGmRZpF1uV3vG6NqHzWf2TiZMUtt
QH8yMBBb6XsIv1I5h6S0K6EZzt2SB4dp7AfyHR0=
]
sCléPublique est une chaîne = [
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDe+hkicNP7ROHUssGNtHwiT2Ew
HFrSk/qwrcq8v5metRtTTFPE/nmzSkRnTs3GMpi57rBdxBBJW5W9cpNyGUh0jNXc
VrOSClpD5Ri2hER/GcNrxVRP7RlWOqB1C03q4QYmwjHZ+zlM4OUhCCAtSWflB4wC
Ka1g88CjFwRw/PB9kwIDAQAB
-----END PUBLIC KEY-----
]
 
// Vérification
SI OpenSSLVérifie(Données, Signature, sCléPublique) ALORS
Info("La signature est correcte")
SINON
Erreur("La signature est incorrecte")
FIN
 
// Note : Vérification également possible avec la fonction CertificatVérifieChaîne en utilisant
// les constantes certSignatureSeule + certSHA160
// Utile sous Linux, iOS et Android
Syntaxe
<Résultat> = OpenSSLVérifie(<Données> , <Signature> , <Clé>)
<Résultat> : Booléen
  • Vrai si la signature est correcte,
  • Faux dans le cas contraire.
<Données> : Chaîne de caractères
Données signées.
<Signature> : Chaîne de caractères
Signature des données (encodée au format Base64)
<Clé> : Chaîne de caractères
Clé publique correspondant à la clé privée ayant servi à encrypter les données.
Remarques

Fonctionnement

La bibliothèque OpenSSL est utilisée par certains sites de paiement sécurisé, comme PayBox, pour certifier les requêtes entre le site de vente et le site de paiement.
La fonction OpenSSLVérifie permet de contrôler facilement les clés cryptées avec la bibliothèque de cryptographie OpenSSL.
Dans le cas de PayBox, les données et la signature sont renvoyées par PayBox. La clé publique peut être trouvée simplement sur le site de PayBox. Il est aussi possible d'utiliser CertificatVérifieChaîne en décodant préalablement la signature qui est encodée en base64url avec la fonction Décode. La fonction CertificatVérifieChaîne a l'avantage de fonctionner sous Windows, Linux, iOS et Android alors que la fonction OpenSSLVérifie fonctionne uniquement sous Windows.
PHP

Configuration nécessaire

En PHP, il est nécessaire d'activer le module openssl.
Pour activer si nécessaire cette librairie en local, le fichier PHP.INI présent dans le répertoire Windows doit avoir la ligne "extension=php_openssl.dll" et non pas ";extension=php_openssl.dll".
Composante : wd290std.dll
Version minimum requise
  • Version 18
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale