Provided by: manpages-fr-extra_20151231_all bug

NOM

       EVP_PKEY_verify_recover_init, EVP_PKEY_verify_recover - Récupérer une signature à l'aide
       d'un algorithme à clef publique

SYNOPSIS

        #include <openssl/evp.h>

        int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx);
        int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx,
                      unsigned char *rout, size_t *routlen,
                      const unsigned char *sig, size_t siglen);

DESCRIPTION

       La fonction EVP_PKEY_verify_recover_init() initialise un contexte d'algorithme à clef
       publique en utilisant la clef pkey pour une opération de vérification et récupération.

       La fonction EVP_PKEY_verify_recover() récupère des données signées en utilisant ctx. La
       signature est indiquée en utilisant les paramètres sig et siglen. Si rout est NULL, alors
       la taille maximale du tampon de sortie est écrite dans le paramètre routlen. Si rout n'est
       pas NULL, alors, avant l'appel, le paramètre routlen devrait contenir la taille du tampon
       rout. Si l'appel réussit, les données récupérées sont écrites dans rout et la quantité de
       données écrites dans routlen.

NOTES

       Normalement, une application ne cherche à savoir que si une opération de vérification de
       signature a réussi. Dans ce cas la fonction EVP_verify() devrait être utilisée.

       Parfois, cependant, il est utile d'obtenir les données d'origine signées en utilisant une
       opération de signature. Seuls certains algorithmes à clef publique peuvent récupérer une
       signature de cette façon (par exemple RSA en mode de remplissage PKCS).

       Après l'appel de EVP_PKEY_verify_recover_init(), les opérations de contrôle spécifique à
       l'algorithme peuvent être réalisée pour définir tous les paramètres nécessaires à
       l'opération.

       La fonction EVP_PKEY_verify_recover() peut être appelée plus d'une fois sur le même
       contexte si plusieurs opérations sont réalisées en utilisant les mêmes paramètres.

VALEURS DE RETOUR

       EVP_PKEY_verify_recover_init() et EVP_PKEY_verify_recover() 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
       indique que l'opération n'est pas permise par l'algorithme à clef publique.

EXEMPLE

       Récupérer l'algorithme de signature d'origine signé en utilisant PKCS#1 et un algorithme
       de signature SHA256 :

        #include <openssl/evp.h>
        #include <openssl/rsa.h>

        EVP_PKEY_CTX *ctx;
        unsigned char *rout, *sig;
        size_t routlen, siglen;
        EVP_PKEY *verify_key;
        /* Remarque : verify_key, sig et siglen sont supposées déjà
         * être configurées et verify_key une clef publique RSA
         */
        ctx = EVP_PKEY_CTX_new(verify_key);
        if (!ctx)
               /* Une erreur est survenue */
        if (EVP_PKEY_verify_recover_init(ctx) <= 0)
               /* Erreur */
        if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0)
               /* Erreur */
        if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0)
               /* Erreur */

        /* Déterminer la taille du tampon */
        if (EVP_PKEY_verify_recover(ctx, NULL, &routlen, sig, siglen) <= 0)
               /* Erreur */

        rout = OPENSSL_malloc(routlen);

        if (!rout)
               /* Erreur malloc */

        if (EVP_PKEY_verify_recover(ctx, rout, &routlen, sig, siglen) <= 0)
               /* Erreur */

        /* Données récupérées : routlen octets écrits dans le tampon rout */

VOIR AUSSI

       EVP_PKEY_CTX_new(3), EVP_PKEY_encrypt(3), EVP_PKEY_decrypt(3), EVP_PKEY_sign(3),
       EVP_PKEY_verify(3), EVP_PKEY_derive(3)

HISTORIQUE

       Ces fonctions ont été ajoutées pour la première fois dans 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.