DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des certificats
  • Section LDAP du certificat
  • Gestion des certificats en WEBDEV
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
Vérifie la correspondance entre une signature et une chaîne.
Exemple
WINDEVEtats et RequêtesCode Utilisateur (MCU)
MonCertificat est un Certificat
 
// Ouverture du sélecteur de certificat de Windows
MonCertificat = CertificatSélecteur()
 
// Annulation ou erreur
SI MonCertificat.Nom = "" ALORS
RETOUR
FIN
 
// Teste si le certificat sélectionné est valide pour signer
SI MonCertificat.ValidePourSignature = Faux ALORS
Info("Le certificat sélectionné ne permet pas de générer une signature.")
RETOUR
FIN
 
// Récupération du buffer contenant la signature
bufSignature est un Buffer
bufSignature = CertificatSigneChaîne("Chaîne de caractères à signer", MonCertificat)
 
// Vérification de la signature
SELON CertificatVérifieChaîne("Chaîne de caractères à signer", bufSignature)
CAS certificatOk : Info("Signature valide et certificat fiable")
CAS certificatInvalide : Info("Signature ou certificat invalide")
CAS certificatExpiré : Info("Signature valide mais certificat expiré")
CAS certificatNonFiable : Info("Signature valide mais racine de confiance " + ...
"du certificat non fiable")
FIN
WINDEVWEBDEV - Code ServeurWindowsLinuxAndroidiPhone/iPad
// Vérification de signature de données transmises par PayBox
sDonnées est une chaîne = [
act=ps_validated&secid=190&fpay=1&montant=25000&reference=CMD2019021309341242&auto=XXXXXX
&trans=33015345&abo=0&paiement=CARTE&carte=Maestro
&idtrans=14515770&erreur=00000&payscarte=FRA&fincb=44&debcb=111122
]
sSignatureBase64 est une chaîne = [
DVD+nMNaQatCBdS/qVjZGE8DtwPvIA3jxGhKlU83MyYC98ezKori/
3cceClqNhtmzD6MDhuKbm8Lw5sFTYdaKWzy79tXzxMLCq814u0+fc5KSihExS6
gIaixjCHiOTgqQXmPP29MkFPpfAFz/wKU/fu+FPGp2dpgLcoRAv0+m1o=
]
sFichierCléPbublique est une chaîne = fRepDonnées() + "\pubkey.pem"
// Décodage Base64 de la signature
bufSignature est un Buffer = Décode(Remplace(sSignatureBase64, RC, ""), encodeBASE64URL)
// Condensé SHA-1 ==> certSHA160
SI CertificatVérifieChaîne(sDonnées, bufSignature, sFichierCléPbublique,
"", "", certSignatureSeule + certSHA160) = certificatOk ALORS
Info("La signature est correcte")
SINON
Erreur("La signature est incorrecte", ErreurInfo())
FIN
Syntaxe
WINDEVWEBDEV - Code ServeurEtats et RequêtesLinuxCode Utilisateur (MCU)

Vérifier la correspondance entre une signature et une chaîne Masquer les détails

<Résultat> = CertificatVérifieChaîne(<Chaîne à vérifier> , <Buffer de signature>)
<Résultat> : Constante de type Entier
Résultat de la vérification de la signature :
certificatExpiréSignature valide mais certificat expiré.
certificatInvalideSignature ou certificat invalide.
certificatNonFiableSignature valide mais la racine de confiance du certificat est non fiable.
certificatOkSignature et certificat fiables.
<Chaîne à vérifier> : Chaîne de caractères
Chaîne de caractères sur laquelle la vérification doit être effectuée.
<Buffer de signature> : Buffer
Buffer contenant la signature de la chaîne. Ce buffer est obtenu avec la fonction CertificatSigneChaîne.

Vérifier la correspondance entre une signature et une chaîne (signature numérique) Masquer les détails

<Résultat> = CertificatVérifieChaîne(<Chaîne à vérifier> , <Buffer de signature> , <Fichier de certificat> [, <Mot de passe> [, <Autorités de confiance>]] , <Options>)
<Résultat> : Constante de type Entier
Résultat de la vérification de la signature :
certificatExpiréSignature valide mais certificat expiré.
certificatInvalideSignature ou certificat invalide.
certificatNonFiableSignature valide mais la racine de confiance du certificat est non fiable.
certificatOkSignature et certificat fiables.
<Chaîne à vérifier> : Chaîne de caractères ou Buffer
Chaîne de caractères sur laquelle la vérification doit être effectuée.
Ce paramètre peut correspondre à une chaîne ANSI, une chaîne UNICODE ou un Buffer. La chaîne sera traitée comme un buffer.
Si ce paramètre correspond à une chaîne (sans précision du type), le type de chaîne pris en compte dépend du type de chaîne défini par défaut dans la configuration courante du projet.
Remarque : Dans le cas d'une chaîne UNICODE, notez que l'Unicode n'est pas le même sous Linux et sous Windows.
<Buffer de signature> : Buffer
Buffer contenant la signature de la chaîne. Ce buffer est obtenu avec la fonction CertificatSigneChaîne.
<Fichier de certificat> : Chaîne de caractères ou Buffer
Correspond :
  • Chemin complet du fichier de certificat à utiliser (au format PEM, DER ou P12).
  • Buffer contenant le certificat à utiliser.
Remarques :
  • Pour une signature de type PKCS7, ce paramètre permet d'ajouter des certificats pour la recherche de la chaîne de confiance.
  • Pour la signature brute, ce paramètre contient la clé publique.
<Mot de passe> : Chaîne de caractères
Mot de passe à utiliser pour décrypter le fichier de certificat si celui-ci est protégé par un mot de passe.
Remarque : Ce paramètre est utile notamment si le certificat utilisé est identique à celui utilisé pour la signature.
<Autorités de confiance> : Chaîne de caractères ou tableau de chaînes
Chemin complet du certificat de confiance à utiliser.
Ce paramètre peut également correspondre à un tableau de chaînes contenant le chemin complet des différents certificats de confiance à utiliser.
Remarque : Les certificats de confiance ajoutés avec la fonction CertificatDeConfianceAjoute sont également prise en compte.
AndroidWidget Android Attention : Ce paramètre est nécessaire sous les systèmes récents (supérieur ou égal à Android 2.6).
<Options> : Constante ou combinaison de constantes de type Entier
Format de la signature :
certPKCS7Signature au format PKCS7.
certSignatureSeuleSignature seule. Dans ce cas, il est nécessaire de combiner la constante certSignatureSeule avec l'algorithme de hachage :
  • certSignatureSeule + certMD5 : Algorithme MD5.
  • certSignatureSeule + certSHA160 : Algorithme SHA1.
  • certSignatureSeule + certSHA256 : Algorithme SHA2. Le résultat produit est de 256 bits.
  • certSignatureSeule + certSHA384 : Algorithme SHA-384. Le résultat produit est de 384 bits
  • certSignatureSeule + certSHA512 : Algorithme SHA-512. Le résultat produit est de 512 bits.
Dans ce cas, il n'y a pas de vérification de la chaîne de confiance. Seule la validité de la signature par rapport à la clé publique est vérifiée.
Remarques

Section LDAP du certificat

La section LDAP (qui regroupe les informations sur le créateur du certificat) doit être différente entre le certificat de confiance et le certificat (par exemple avec une sous-section "commonName" différente).
Dans le cas contraire, il est possible que la fonction renvoie une erreur correspondant à la constante certificatNonFiable.
Remarque : Selon l'outil utilisé, cette section peut porter différents noms : Emetteur (certificat Windows), ...
WEBDEV - Code Serveur

Gestion des certificats en WEBDEV

Pour que les certificats soient visibles pour l'utilisateur du site, ils doivent être installés sur le serveur dans le magasin de certificats personnels de l'utilisateur Internet.
Classification Métier / UI : Code métier
Composante : wd290std.dll
Version minimum requise
  • Version 16
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 15/07/2022

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