.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "fr::crypto::EVP_SealInit 3SSL" .TH fr::crypto::EVP_SealInit 3SSL "2015-12-31" "1.0.2a 1.0.2c" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NOM" .IX Header "NOM" EVP_SealInit, EVP_SealUpdate, EVP_SealFinal \- Chiffrement d’enveloppe \s-1EVP\s0 .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fB #include \fR .PP \&\fB int EVP_SealInit(\s-1EVP_CIPHER_CTX\s0 *\fR\fIctx\fR\fB, const \s-1EVP_CIPHER\s0 *\fR\fItype\fR\fB,\fR \fBunsigned char **\fR\fIek\fR\fB, int *\fR\fIekl\fR\fB, unsigned char *\fR\fIiv\fR\fB,\fR \fB\s-1EVP_PKEY\s0 **\fR\fIpubk\fR\fB, int\fR \fInpubk\fR\fB);\fR \fBint EVP_SealUpdate(\s-1EVP_CIPHER_CTX\s0 *\fR\fIctx\fR\fB, unsigned char *\fR\fIout\fR\fB,\fR \fBint *outl, unsigned char *in, int inl);\fR \fBint EVP_SealFinal(\s-1EVP_CIPHER_CTX\s0 *\fR\fIctx\fR\fB, unsigned char *out,\fR \fBint *outl);\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" Les routines d’enveloppe \s-1EVP\s0 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. .PP \&\fBEVP_SealInit\fR() initialise un contexte de chiffrement \fIctx\fR pour un chiffrement avec l’algorithme \fItype\fR en utilisant une clef secrète et un vecteur d'initialisation. \fItype\fR est normalement fourni par une fonction telle que \fBEVP_des_cbc\fR(). 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. \fIek\fR 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 : \fIek[i]\fR doit pouvoir contenir EVP_PKEY_size(pubk[i]) octets. La taille réelle de chaque clef chiffrée est écrite dans le tableau \&\fIekl\fR. \fIpubk\fR est un tableau de \fInpubk\fR clefs publiques. .PP Le paramètre \fIiv\fR 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). .PP Si l’algorithme de chiffrement ne demande pas de vecteur d'initialisation, alors le paramètre \fIiv\fR est ignoré et peut être \s-1NULL.\s0 .PP \&\fBEVP_SealUpdate\fR() et \fBEVP_SealFinal\fR() ont exactement les mêmes propriétés que les routines \fBEVP_EncryptUpdate\fR() et \fBEVP_EncryptFinal\fR(), comme documentées dans la page de manuel \&\fBEVP_EncryptInit\fR(3). .SH "VALEURS DE RETOUR" .IX Header "VALEURS DE RETOUR" \&\fBEVP_SealInit\fR() renvoie \fB0\fR lors d’une erreur ou \fInpubk\fR en cas de réussite. .PP \&\fBEVP_SealUpdate\fR() et \fBEVP_SealFinal\fR() renvoient \fB1\fR en cas de réussite et \fB0\fR lors d’une erreur. .SH "NOTES" .IX Header "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 à \fBEVP_SealInit\fR(). .PP La clef publique doit être \s-1RSA\s0 car c’est le seul algorithme à clef publique d’OpenSSl qui prend en charge l’acheminement de clef. .PP 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. .PP Il est possible d’appeler \fBEVP_SealInit\fR() deux fois de la même façon que \&\fBEVP_EncryptInit\fR(). Le premier appel devrait avoir \fInpubk\fR défini à \fB0\fR et (après avoir défini tous les paramètres du chiffrement) l’appel devrait être fait avec \fItype\fR défini à \s-1NULL.\s0 .SH "VOIR AUSSI" .IX Header "VOIR AUSSI" \&\fBevp\fR(3), \fBrand\fR(3), \&\fBEVP_EncryptInit\fR(3), \&\fBEVP_OpenInit\fR(3) .SH "HISTORIQUE" .IX Header "HISTORIQUE" \&\fBEVP_SealFinal\fR() ne renvoyait pas de valeur avant OpenSSL 0.9.7. .SH "TRADUCTION" .IX Header "TRADUCTION" La traduction de cette page de manuel est maintenue par les membres de la liste . Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.