.\" 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_BytesToKey 3SSL" .TH fr::crypto::EVP_BytesToKey 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_BytesToKey \- Routine de chiffrement à base de mot de passe .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fB #include \fR .PP \&\fB int EVP_BytesToKey(const \s-1EVP_CIPHER\s0 *\fR\fItype\fR\fB,const \s-1EVP_MD\s0 *\fR\fImd\fR\fB,\fR \fBconst unsigned char *\fR\fIsalt\fR\fB,\fR \fBconst unsigned char *\fR\fIdata\fR\fB, int\fR \fIdatal\fR\fB, int\fR \fIcount\fR\fB,\fR \fBunsigned char *\fR\fIkey\fR\fB,unsigned char *\fR\fIiv\fR\fB);\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBEVP_BytesToKey\fR() dérive (fournit) une clef et un vecteur d'initialisation à partir de plusieurs paramètres. \fItype\fR est l'algorithme de chiffrement pour dériver la clef et le vecteur d'initialisation. \fImd\fR est l'algorithme de signature de message à utiliser. Le paramètre \fIsalt\fR est utilisé comme sel dans la dérivation : il devrait pointer vers un tampon de 8 octets ou \&\s-1NULL\s0 s'il ne faut pas utiliser de sel. \fIdata\fR est un tampon contenant \&\fIdatal\fR octets utilisé pour dériver les données de clef. \fIcount\fR est le nombre d'itérations à utiliser. La clef et le vecteur d'initialisation dérivés seront respectivement écrits dans \fIkey\fR et \fIiv\fR. .SH "NOTES" .IX Header "NOTES" Une application typique de cette fonction est de dériver du matériel de clef pour un algorithme de chiffrement à partir d'un mot de passe dans le paramètre \fIdata\fR. .PP Augmenter le paramètre \fIcount\fR ralentit l'algorithme, ce qui rend plus difficile pour un attaquant de réaliser une attaque par force brute utilisant un grand nombre de mots de passe candidats. .PP Si la taille totale de la clef et du vecteur d'initialisation est inférieure à la taille de l'algorithme de signature est que \fB\s-1MD5\s0\fR est utilisé, alors l'algorithme de dérivation est compatible avec PKCS#5 v1.5, sinon une extension non normalisée est utilisée pour fournir les données supplémentaires. .PP Les applications les plus récentes devraient utiliser un algorithme plus moderne comme \s-1PBKDF2\s0 tel qu’il est défini dans PKCS#5 v2.1 et fourni par \&\s-1PKCS5_PBKDF2_HMAC.\s0 .SH "ALGORITHME DE DÉRIVATION DE CLEF" .IX Header "ALGORITHME DE DÉRIVATION DE CLEF" La clef et le vecteur d'initialisation sont dérivés en concaténant D_1, D_2, etc., jusqu'à ce que suffisamment de données soient disponibles pour la clef et le vecteur d'initialisation. D_i est défini comme : .PP .Vb 1 \& D_i = HASH^count(D_(i\-1) || data || salt) .Ve .PP où || indique la concaténation, D_0 est vide, \s-1HASH\s0 est l'algorithme de signature utilisé, HASH^1(data) est simplement \s-1HASH\s0(data), HASH^2(data) est \&\s-1HASH\s0(\s-1HASH\s0(data)) et ainsi de suite. .PP Les octets initiaux sont utilisés pour la clef et les octets suivants pour le vecteur d'initialisation. .SH "VALEURS DE RETOUR" .IX Header "VALEURS DE RETOUR" Si \fIdata\fR est \s-1NULL,\s0 alors \fBEVP_BytesToKey\fR() renvoie le nombre d’octets nécessaires pour enregistrer la clef dérivée. Autrement, \fBEVP_BytesToKey\fR() renvoie la taille de la clef en octets, ou \fB0\fR en cas d’erreur. .SH "VOIR AUSSI" .IX Header "VOIR AUSSI" \&\fBevp\fR(3), \fBrand\fR(3), \&\fBEVP_EncryptInit\fR(3) .SH "HISTORIQUE" .IX Header "HISTORIQUE" .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.