Provided by: manpages-fr-extra_20151231_all bug

NOM

       EVP_SealInit, EVP_SealUpdate, EVP_SealFinal - Chiffrement d’enveloppe EVP

SYNOPSIS

        #include <openssl/evp.h>

        int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,
                         unsigned char **ek, int *ekl, unsigned char *iv,
                         EVP_PKEY **pubk, int npubk);
        int EVP_SealUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out,
                int *outl, unsigned char *in, int inl);
        int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out,
                int *outl);

DESCRIPTION

       Les routines d’enveloppe EVP sont des interfaces de haut niveau pour le chiffrement d’enveloppe. Elles
       produisent une clef aléatoire et un vecteur d'initialisation (si nécessaire) puis les « enveloppent » en
       utilisant une clef de chiffrement publique. Les données peuvent être chiffrées en utilisant cette clef.

       EVP_SealInit() initialise un contexte de chiffrement ctx pour un chiffrement avec l’algorithme type en
       utilisant une clef secrète et un vecteur d'initialisation. type est normalement fourni par une fonction
       telle que EVP_des_cbc(). La clef secrète est chiffrée en utilisant une ou plusieurs clefs publiques,
       permettant aux mêmes données d’être déchiffrées avec n’importe quelle clef privée correspondante. ek est
       un tableau de tampons où la clef secrète, chiffrée avec la clef publique, sera écrite, chaque tampon
       étant suffisamment grand pour la clef chiffrée correspondante : ek[i] doit pouvoir contenir
       EVP_PKEY_size(pubk[i]) octets. La taille réelle de chaque clef chiffrée est écrite dans le tableau ekl.
       pubk est un tableau de npubk clefs publiques.

       Le paramètre iv est un tampon où le vecteur d'initialisation créé est écrit. Il doit pouvoir contenir le
       vecteur d'initialisation correspondant de l’algorithme de chiffrement, tel qu’il est déterminé par (par
       exemple) EVP_CIPHER_iv_length(type).

       Si l’algorithme de chiffrement ne demande pas de vecteur d'initialisation, alors le paramètre iv est
       ignoré et peut être NULL.

       EVP_SealUpdate() et EVP_SealFinal() ont exactement les mêmes propriétés que les routines
       EVP_EncryptUpdate() et EVP_EncryptFinal(), comme documentées dans la page de manuel EVP_EncryptInit(3).

VALEURS DE RETOUR

       EVP_SealInit() renvoie 0 lors d’une erreur ou npubk en cas de réussite.

       EVP_SealUpdate() et EVP_SealFinal() renvoient 1 en cas de réussite et 0 lors d’une erreur.

NOTES

       Parce qu’une clef secrète est créée, la graine du générateur de nombre aléatoire doit être enlevée avant
       l’appel à EVP_SealInit().

       La clef publique doit être RSA car c’est le seul algorithme à clef publique d’OpenSSl qui prend en charge
       l’acheminement de clef.

       Le chiffrement d’enveloppe est la méthode habituelle pour le chiffrement à clef publique de grandes
       quantités de données, cela parce que le chiffrement à clef publique est lent mais le chiffrement
       symétrique est rapide. Aussi le chiffrement symétrique est utilisé pour la majeure partie du chiffrement
       et la petite clef symétrique aléatoire utilisée est transférée en utilisant le chiffrement à clef
       publique.

       Il est possible d’appeler EVP_SealInit() deux fois de la même façon que EVP_EncryptInit(). Le premier
       appel devrait avoir npubk défini à 0 et (après avoir défini tous les paramètres du chiffrement) l’appel
       devrait être fait avec type défini à NULL.

VOIR AUSSI

       evp(3), rand(3), EVP_EncryptInit(3), EVP_OpenInit(3)

HISTORIQUE

       EVP_SealFinal() ne renvoyait pas de valeur avant OpenSSL 0.9.7.

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.

1.0.2a 1.0.2c                                      2015-12-31                     fr::crypto::EVP_SealInit(3SSL)