EVP_DigestVerifyInit(3) EVP_DigestVerifyFinal

SYNOPSIS

#include <openssl/evp.h>

int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
                        const EVP_MD *typeENGINE *e, EVP_PKEY *pkey);

 int EVP_DigestVerifyUpdate(EVP_MD_CTX *ctx, const void *d, unsigned int cnt);
 int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, size_t siglen);

DESCRIPTION

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

EVP_DigestVerifyInit() définit le contexte de vérification ctx pour le condensé de message de type à partir de l’ENGINE impl et de la clef publique pkey. ctx doit être initialisé avec EVP_MD_CTX_init() avant d’appeler cette fonction. Si pctx n’est pas NULL, EVP_PKEY_CTX de l’opération de vérification sera écrite dans *pctx : cela peut être utilisé pour définir des options alternatives de vérification.

EVP_DigestVerifyUpdate() produit un hachage de cnt octets de données vers d dans le contexte de vérification ctx. Cette fonction peut être appelée plusieurs fois sur le même ctx pour intégrer des données additionnelles. Cette fonction est actuellement mise en œuvre en utilisant une macro.

EVP_DigestVerifyFinal() vérifie les données dans ctx par rapport à la signature dans sig de longueur siglen.

VALEURS DE RETOUR

EVP_DigestVerifyInit() et EVP_DigestVerifyUpdate() renvoient 1 en cas de réussite et 0 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 prise en charge par l’algorithme de clef publique.

Contrairement à d’autres fonctions, la valeur 0 de retour de EVP_DigestVerifyFinal() signifie seulement que la signature n’a pas conduit à une réussite de la vérification (c’est-à-dire, ce qui est à signer ne correspond pas aux données originelles ou la signature était de forme incorrecte) ; ce n’est pas une indication d’une erreur plus sérieuse.

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_DigestVerifyFinal() en interne réalise une copie du contexte du condensé de message. Cela signifie que EVP_VerifyUpdate() et EVP_VerifyFinal() peuvent être ensuite appelées pour incorporer et vérifier des 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.

HISTORIQUE

EVP_DigestVerifyInit(), EVP_DigestVerifyUpdate() et EVP_DigestVerifyFinal() 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.