Provided by: manpages-fr-extra_20151231_all bug

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.

SYNOPSIS

        #include <openssl/blowfish.h>

        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);

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).

       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 DES (voir
       des_modes(7)). Blowfish est actuellement un des algorithmes de chiffrement par blocs les
       plus rapides. Il est un peu plus rapide que DES, et bien plus rapide qu'IDEA ou RC2.

       Blowfish consiste en une phase de mise en place de clés, puis une phase deréel chiffrement
       ou déchiffrement.

       BF_set_key() mets en place BF_KEY key en utilisant la clé de len octets dans data.

       BF_ecb_encrypt() est la fonction de chiffrement et de déchiffrement de base de Blowfish.
       Celle-ci chiffre et déchiffre les premiers 64 bits de in en utilisant la clé key, et met
       le résultat dans out. enc décide si un chiffrement (BF_ENCRYPT) ou un déchiffrement
       (BF_DECRYPT) doit être appliqué. Le vecteur pointé par in et out 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é.

       Les fonctions de mode BF_cbc_encrypt(), BF_cfb64_encrypt() et BF_ofb64_encrypt() opèrent
       toutes sur des données de tailles variables. Elles prennent toutes un vecteur
       d'initialisation ivec qui nécessite d'être passé au prochain appel de la même fonction
       pour le même message. ivec 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 SSH, où ivec est simplement initialisé à
       0. BF_cbc_encrypt() opère sur des données qui sont des multiples de 8 octets en longueur,
       alors que BF_cfb64_encrypt() et BF_ofb64_encrypt() 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 num, qui est un pointeur vers un entier dans lequel est stocké
       la position courante de lecture ivec entre chaque appel. Cet entier doit être initialisé à
       0 quand ivec est initialisé.

       BF_cbc_encrypt() est la fonction d'enchaînement pour le chiffrement par blocs de Blowfish.
       Elle chiffre et déchiffre les morceaux de 64 bits de in en utilisant la clé schedule, puis
       met le résultat dans out. enc décide si un chiffrement (BF_ENCRYPT) ou un déchiffrement
       (BF_DECRYPT) doit être exécuté. ivec doit pointer vers un vecteur d'initialisation de
       8 octets.

       BF_cfb64_encrypt() est le mode CFB de Blowfish avec un retour de 64 bits. Elle chiffre et
       déchiffre les octets de in en utilisant la clé schedule, et met le résultat dans out. enc
       décide si un chiffrement (BF_ENCRYPT) ou un déchiffrement (BF_DECRYPT) doit être exécuté.
       ivec doit pointer vers un vecteur d'initialisation de 8 octets. num doit pointer vers un
       entier qui doit être initialisé à 0.

       BF_ofb64_encrypt() est le mode OFB de Blowfish avec un retour de 64 bits. Elle utilise les
       mêmes paramètres que BF_cfb64_encrypt(), et ceux-ci doivent être initialisés de la même
       façon.

       BF_encrypt() et BF_decrypt() sont les fonctions de bas niveau du chiffrement Blowfish.
       Elles chiffrent ou déchiffrent les premiers 64 bits du vecteur pointé par data, en
       utilisant la clé key. Ces fonctions ne doivent pas être utilisées sauf si vous implémentez
       « modes » pour Blowfish. L'alternative est d'utiliser BF_ecb_encrypt(). 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.

VALEURS DE RETOUR

       Aucune des fonctions présentées ici n'a de valeur de retour.

NOTE

       Les applications devraient utiliser les fonctions de haut niveau telles
       EVP_EncryptInit(3), etc., au lieu d'appeler les fonctions de Blowfish directement.

VOIR AUSSI

       des_modes(7)

HISTORIQUE

       Les fonctions Blowfish sont disponibles dans toutes les versions de SSLeay et d'OpenSSL.

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.