DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des certificats
  • Validité du certificat (syntaxe 1)
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
Crée la signature d'une chaîne de caractères.
WINDEVCode Utilisateur (MCU)
// Signature de chaîne selon un certificat installé sur la machine
// Attention : cette syntaxe utilise une variable de type Certificat.
// Cette syntaxe n'est pas compatible avec la mise en conformité
// des logiciels de caisse (Norme NF525).
// L'exemple correspondant à la norme NF525 est disponible dans
// les exemples supplémentaires
 
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 la validité du certificat pour la signature
SI MonCertificat.ValidePourSignature = Faux ALORS
Info("Le certificat sélectionné ne permet de 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)
 
// Récupération du certificat contenu dans le buffer de la signature
MonCertificatExtrait est un Certificat
MonCertificatExtrait = CertificatExtrait(bufSignature)
 
// Gestion des erreurs
SI MonCertificatExtrait = Null ALORS
RETOUR
FIN
 
// Ouverture de la fenêtre des propriétés du certificat
CertificatOuvrePropriétés(MonCertificatExtrait)
Syntaxe
WINDEVLinuxCode Utilisateur (MCU)

Signer une chaîne à l'aide d'une variable de type Certificat Masquer les détails

<Résultat> = CertificatSigneChaîne(<Chaîne à signer> , <Certificat>)
<Résultat> : Buffer
Signature de la chaîne (au format PKCS7 (DER)). Ce buffer pourra être ensuite utilisé par la fonction CertificatVérifieChaîne pour vérifier la correspondance entre la signature et la chaîne.
<Chaîne à signer> : Chaîne de caractères Ansi ou Unicode ou Buffer
Chaîne de caractères à signer.
<Certificat> : Variable de type Certificat
Nom de la variable de type Certificat contenant le certificat à utiliser pour signer la chaîne.

Signer une chaîne via une signature numérique Masquer les détails

<Résultat> = CertificatSigneChaîne(<Chaîne à signer> , <Fichier certificat> , <Mot de passe> , <Option>)
<Résultat> : Buffer
Signature de la chaîne (au format demandé). Ce buffer pourra être ensuite utilisé par la fonction CertificatVérifieChaîne pour vérifier la correspondance entre la signature et la chaîne.
<Chaîne à signer> : Chaîne de caractères Ansi ou Unicode ou Buffer
Chaîne de caractères à signer.
<Fichier certificat> : Chaîne de caractères ou Buffer
  • Chemin complet vers un fichier de type PKCS12 (.p12/.pfx) contenant la clé privée et les certificats. Ce fichier peut être intégré dans la librairie (fichier WDL) de l'application.
  • Buffer contenant la clé privée et les certificats.
    Si la constante certSignatureSeule est utilisée, ce buffer peut contenir uniquement la clé privée.
<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.
<Option> : Constante ou combinaison de constantes de type Entier
Permet de spécifier :
  • l'algorithme de hachage utilisé (facultatif dans le cas d'une signature au format PKCS7) :
    certMD5Algorithme MD5.
    Déconseillé car peu fiable. Ce type d'algorithme est interdit avec les signatures de type "elliptic curve".
    certSHA160Algorithme SHA1.
    certSHA256Algorithme SHA2. Le résultat produit est de 256 bits.
    certSHA384Algorithme SHA-384. Le résultat produit est de 384 bits.
    Ce type d'algorithme n'est pas supporté avec les signatures de type "DSA".
    certSHA512Algorithme SHA-512. Le résultat produit est de 512 bits.
    Ce type d'algorithme n'est pas supporté avec les signatures de type "DSA".
  • le format de la signature :
    certPKCS7AvecCertificatConteneur au format PKCS7 (DER) contenant la signature et la chaîne des certificats.
    Remarque : si cette constante est utilisée, l'algorithme de hachage est facultatif. S'il n'est pas précisé, un algorithme approprié sera automatiquement choisi.
    certPKCS7AvecCertificat + certPKCS7PEMConteneur au format PKCS7 (PEM) contenant la signature et la chaîne des certificats.
    Remarque : si cette constante est utilisée, l'algorithme de hachage est facultatif. S'il n'est pas précisé, un algorithme approprié sera automatiquement choisi.
    certPKCS7EnveloppéConteneur au format PKCS7 (DER) contenant la signature, la chaîne des certificats et les données signées.
    Remarque : si cette constante est utilisée, l'algorithme de hachage est facultatif. S'il n'est pas précisé, un algorithme approprié sera automatiquement choisi.
    certPKCS7Enveloppé + certPKCS7PEMConteneur au format PKCS7 (PEM) contenant la signature, la chaîne des certificats et les données signées.
    Remarque : si cette constante est utilisée, l'algorithme de hachage est facultatif. S'il n'est pas précisé, un algorithme approprié sera automatiquement choisi.
    certPKCS7SansCertificatConteneur au format PKCS7 (DER) contenant la signature.
    Remarque : si cette constante est utilisée, l'algorithme de hachage est facultatif. S'il n'est pas précisé, un algorithme approprié sera automatiquement choisi.
    certPKCS7SansCertificat + certPKCS7PEMConteneur au format PKCS7 (PEM) contenant la signature.
    Remarque : si cette constante est utilisée, l'algorithme de hachage est facultatif. S'il n'est pas précisé, un algorithme approprié sera automatiquement choisi.
    certSignatureSeuleLa sortie contient uniquement la signature brute, sans conteneur.
    Cette option est requise dans le cas d'une mise en conformité des logiciels de caisse (norme NF525). Avec cette option, seule la partie clé du fichier PFX est utilisée (la partie certificat qui contient la date n'est pas utilisée).
    Attention : si cette constante est utilisée, il est nécessaire de préciser l'algorithme de hachage.
Remarque : L'algorithme de signature est déterminé par la clé privée (RSA, DSA, Elliptic curve).
Remarques

Validité du certificat (syntaxe 1)

Avant de signer une chaîne, il est conseillé de vérifier la validité du certificat (propriété ValidePourSignature de la variable de type Certificat). Cette propriété permet de savoir si le certificat possède une clé privée et toutes les caractéristiques requises pour effectuer une signature. Si cette propriété est à Faux, la fonction CertificatSigneChaîne renvoie une erreur.
Classification Métier / UI : Code métier
Composante : wd300std.dll
Version minimum requise
  • Version 16
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 06/07/2022

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