Provided by: manpages-fr-extra_20151231_all bug

NOM

       EVP_DigestSignInit, EVP_DigestSignUpdate, EVP_DigestSignFinal - Fonctions EVP d’empreinte
       numérique

SYNOPSIS

        #include <openssl/evp.h>

        int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
                      const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey);
        int EVP_DigestSignUpdate(EVP_MD_CTX *ctx, const void *d, unsigned int cnt);
        int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sig, size_t *siglen);

DESCRIPTION

       Les routines de signature EVP constituent une interface de haut niveau pour les signatures
       numériques.

       EVP_DigestSignInit() définit de contexte de signature ctx à utiliser avec le type
       d’empreinte numérique à partir de l’ENGINE impl et la clef privée pkey. ctx doit être
       initialisé avec EVP_MD_CTX_init() avant l’appel de cette fonction. Si <pctx> n’est pas
       NULL, EVP_PKEY_CTX de cette opération de signature sera écrit dans *pctx : cela peut être
       utilisé pour définir des options alternatives de signature.

       EVP_DigestSignUpdate() calcule un hachage de cnt octets de données vers d dans le contexte
       de signature ctx. Cette fonction peut être appelée plusieurs fois dans le même ctx pour
       tenir compte de données additionnelles. Cette fonction est actuellement implémentée en
       utilisant une macro.

       EVP_DigestSignFinal() signe les données dans ctx et place l’empreinte numérique dans sig.
       Si sig est NULL, alors la taille maximale du tampon de sortie est écrite dans le paramètre
       siglen. Si sig n’est pas NULL, alors avant l’appel, le paramètre siglen doit contenir la
       taille du tampon sig ; si l’appel est réussi, l’empreinte numérique est écrite dans sig et
       le total de données écrites dans siglen.

VALEURS DE RETOUR

       EVP_DigestSignInit(), EVP_DigestSignUpdate() et EVP_DigestSignaFinal() renvoient 1 en cas
       de succès ou une valeur négative en cas d’échec. En particulier, une valeur de retour de
       -2 signifie que l’opération n’est pas permise par l’algorithme de clef publique.

       Les codes d'erreur peuvent être obtenus par ERR_get_error(3).

NOTES

       L’interface EVP pour les signatures numériques devrait presque toujours être utilisée de
       préférence à des interfaces de bas niveaux. Cela est ainsi parce que le code devient
       évident pour l’algorithme utilisé et bien plus souple.

       Dans les versions précédentes d’OpenSSL, un lien existait entre les empreintes numériques
       et les algorithmes de clef publique. Cela signifiait que les « clones » d’algorithmes de
       hachage tels que EVP_dss1() devaient être utilisés pour les empreintes numériques SHA1 et
       DSA. Cela n’est plus nécessaire et l’utilisation de clone est maintenant déconseillée.

       Pour quelques sortes de clefs et de paramètres, la graine du générateur de nombre
       aléatoire doit être fournie ou l’opération échouera.

       L’appel à EVP_DigestSignFinal() de manière interne fait une copie du contexte de
       signature. Cela signifie que des appels à EVP_DigestSignUpdate() et EVP_DigestSignFinal()
       peuvent être faits en cas de données additionnelles.

       Puisqu’une seule copie est réalisée, le contexte de l’empreinte numérique doit être
       nettoyé après utilisation en appelant EVP_MD_CTX_cleanup() ou une fuite de mémoire se
       produira.

       L’utilisation de EVP_PKEY_size() avec ces fonctions est déconseillée car quelques
       opérations de signature peuvent avoir une taille d’empreinte numérique dépendant de
       paramètres. Par conséquent, EVP_PKEY_size() devrait renvoyer une valeur donnant la taille
       maximale possible d’empreinte numérique pour n’importe quelles définitions des paramètres.

VOIR AUSSI

       EVP_DigestVerifyInit(3), EVP_DigestInit(3), err(3), evp(3), hmac(3), md2(3), md5(3),
       mdc2(3), ripemd(3), sha(3), dgst(1)

HISTORIQUE

       EVP_DigestSignInit(), EVP_DigestSignUpdate() et EVP_DigestSignFinal() ont été ajoutées
       pour la première fois à OpenSSL 1.0.0.

TRADUCTION

       La traduction de cette page de manuel est maintenue par les membres de la liste
       <debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler toute erreur de
       traduction par un rapport de bogue sur le paquet manpages-fr-extra.