.\" 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::blowfish 3SSL" .TH fr::crypto::blowfish 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" blowfish, BF_set_key, BF_encrypt, BF_decrypt, BF_ecb_encrypt, BF_cbc_encrypt, BF_cfb64_encrypt, BF_ofb64_encrypt, BF_options \- Chiffrement avec Blowfish. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void BF_set_key(BF_KEY *key, int len, const unsigned char *data); \& \& void BF_ecb_encrypt(const unsigned char *in, unsigned char *out, \& BF_KEY *key, int enc); \& void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, \& long length, BF_KEY *schedule, unsigned char *ivec, int enc); \& void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out, \& long length, BF_KEY *schedule, unsigned char *ivec, int *num, \& int enc); \& void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out, \& long length, BF_KEY *schedule, unsigned char *ivec, int *num); \& const char *BF_options(void); \& \& void BF_encrypt(BF_LONG *data,const BF_KEY *key); \& void BF_decrypt(BF_LONG *data,const BF_KEY *key); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Cette bibliothèque implémente l'algorithme de chiffrement Blowfish, qui a été créé et décrit par Counterpane (voir http://www.counterpane.com/blowfish.html). .PP Blowfish est un algorithme de chiffrement par blocs qui opère sur des blocs de données de 64 bits (8 octets). Blowfish utilise une clé de taille variable, mais en général, les clés de longueur 128 bits (16 octets) sont considérées comme bonnes pour un chiffrement puissant. Blowfish peut être utilisé de la même façon que l'algorithme \s-1DES \s0(voir \&\fIdes_modes\fR\|(7)). Blowfish est actuellement un des algorithmes de chiffrement par blocs les plus rapides. Il est un peu plus rapide que \&\s-1DES,\s0 et bien plus rapide qu'\s-1IDEA\s0 ou \s-1RC2.\s0 .PP Blowfish consiste en une phase de mise en place de clés, puis une phase deréel chiffrement ou déchiffrement. .PP \&\fIBF_set_key()\fR mets en place \fB\s-1BF_KEY\s0\fR \fBkey\fR en utilisant la clé de \fBlen\fR octets dans \fBdata\fR. .PP \&\fIBF_ecb_encrypt()\fR est la fonction de chiffrement et de déchiffrement de base de Blowfish. Celle-ci chiffre et déchiffre les premiers 64 bits de \fBin\fR en utilisant la clé \fBkey\fR, et met le résultat dans \fBout\fR. \fBenc\fR décide si un chiffrement (\fB\s-1BF_ENCRYPT\s0\fR) ou un déchiffrement (\fB\s-1BF_DECRYPT\s0\fR) doit être appliqué. Le vecteur pointé par \fBin\fR et \fBout\fR doit avoir une longueur de 64 bits, pas moins. S'ils sont plus grands, tout ce qu'il y a après le 64ème bit est ignoré. .PP Les fonctions de mode \fIBF_cbc_encrypt()\fR, \fIBF_cfb64_encrypt()\fR et \&\fIBF_ofb64_encrypt()\fR opèrent toutes sur des données de tailles variables. Elles prennent toutes un vecteur d'initialisation \fBivec\fR qui nécessite d'être passé au prochain appel de la même fonction pour le même message. \fBivec\fR peut être initialisé avec n'importe quoi mais le destinataire a besoin de savoir avec quoi il a été initialisé, ou il ne pourra pas déchiffrer. Certains programmes et protocoles simplifient cela, comme \s-1SSH,\s0 où \fBivec\fR est simplement initialisé à 0. \fIBF_cbc_encrypt()\fR opère sur des données qui sont des multiples de 8 octets en longueur, alors que \&\fIBF_cfb64_encrypt()\fR et \fIBF_ofb64_encrypt()\fR sont utilisées pour chiffrer un nombre d'octets variable (le montant peut ne pas être un multiple de 8). Le but des deux dernières fonctions est de pouvoir simuler des chiffrements de flux, et de ce fait, elles ont besoin d'un paramètre \fBnum\fR, qui est un pointeur vers un entier dans lequel est stocké la position courante de lecture \fBivec\fR entre chaque appel. Cet entier doit être initialisé à 0 quand \fBivec\fR est initialisé. .PP \&\fIBF_cbc_encrypt()\fR est la fonction d'enchaînement pour le chiffrement par blocs de Blowfish. Elle chiffre et déchiffre les morceaux de 64 bits de \&\fBin\fR en utilisant la clé \fBschedule\fR, puis met le résultat dans \&\fBout\fR. \fBenc\fR décide si un chiffrement (\s-1BF_ENCRYPT\s0) ou un déchiffrement (\s-1BF_DECRYPT\s0) doit être exécuté. \fBivec\fR doit pointer vers un vecteur d'initialisation de 8 octets. .PP \&\fIBF_cfb64_encrypt()\fR est le mode \s-1CFB\s0 de Blowfish avec un retour de 64 bits. Elle chiffre et déchiffre les octets de \fBin\fR en utilisant la clé \&\fBschedule\fR, et met le résultat dans \fBout\fR. \fBenc\fR décide si un chiffrement (\fB\s-1BF_ENCRYPT\s0\fR) ou un déchiffrement (\fB\s-1BF_DECRYPT\s0\fR) doit être exécuté. \fBivec\fR doit pointer vers un vecteur d'initialisation de 8 octets. \fBnum\fR doit pointer vers un entier qui doit être initialisé à 0. .PP \&\fIBF_ofb64_encrypt()\fR est le mode \s-1OFB\s0 de Blowfish avec un retour de 64 bits. Elle utilise les mêmes paramètres que \fIBF_cfb64_encrypt()\fR, et ceux-ci doivent être initialisés de la même façon. .PP \&\fIBF_encrypt()\fR et \fIBF_decrypt()\fR sont les fonctions de bas niveau du chiffrement Blowfish. Elles chiffrent ou déchiffrent les premiers 64 bits du vecteur pointé par \fBdata\fR, en utilisant la clé \fBkey\fR. Ces fonctions ne doivent pas être utilisées sauf si vous implémentez « modes » pour Blowfish. L'alternative est d'utiliser \fIBF_ecb_encrypt()\fR. Si vous voulez utiliser ces fonctions, sachez qu'elles prennent des blocs de 32 bits dans l'ordre de l'hôte, c'est\-à\-dire petit-boutiste pour les plateformes petit-boutistes et gros-boutiste pour celles gros-boutistes. .SH "VALEURS DE RETOUR" .IX Header "VALEURS DE RETOUR" Aucune des fonctions présentées ici n'a de valeur de retour. .SH "NOTE" .IX Header "NOTE" Les applications devraient utiliser les fonctions de haut niveau telles \&\fIEVP_EncryptInit\fR\|(3), etc., au lieu d'appeler les fonctions de Blowfish directement. .SH "VOIR AUSSI" .IX Header "VOIR AUSSI" \&\fIdes_modes\fR\|(7) .SH "HISTORIQUE" .IX Header "HISTORIQUE" Les fonctions Blowfish sont disponibles dans toutes les versions de SSLeay et d'OpenSSL. .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.