encrypt

ENCRYPT(3)                Manuel du programmeur Linux               ENCRYPT(3)



NOM
       encrypt, setkey, encrypt_r, setkey_r - Crypter des messages de 64 bits

SYNOPSIS
       #define _XOPEN_SOURCE /* Consultez feature_test_macros(7) */
       #include <unistd.h>

       void encrypt(char block[64], int edflag);

       #define _XOPEN_SOURCE /* Consultez feature_test_macros(7) */
       #include <stdlib.h>

       void setkey(const char *key);

       #define _GNU_SOURCE /* Consultez feature_test_macros(7) */
       #include <crypt.h>

       void setkey_r(const char *key, struct crypt_data *data);
       void encrypt_r(char *block, int edflag, struct crypt_data *data);

       Effectuez l'édition des liens avec l'option -lcrypt.

DESCRIPTION
       Ces fonctions chiffrent et déchiffrent des messages de 64 bits. La
       fonction setkey() permet de fournir la clef à utiliser pour encrypt().
       L'argument key est une table de 64 octets, chacun ayant la valeur 0 ou
       1. L'octet key[n] où n=8*i-1 est ignoré, ce qui ramène la clef à 56
       bits effectifs.

       La fonction encrypt() modifie le tampon transmis, en l'encodant si
       l'argument edflag vaut 0, et en le décodant s'il vaut 1. L'argument
       block est, comme l'argument key, une représentation de la valeur Ã
       encoder sous forme de vecteur de bits. Le résultat est renvoyé dans
       le même vecteur.

       Ces fonctions ne sont pas réentrantes, c'est-à -dire que la clef est
       stockée dans une zone de stockage statique. Les fonctions setkey_r()
       et encrypt_r() sont des versions réentrantes. Elles utilisent la
       structure suivante pour contenir la clef :

           struct crypt_data {
               char     keysched[16 * 8];
               char     sb0[32768];
               char     sb1[32768];
               char     sb2[32768];
               char     sb3[32768];
               char     crypt_3_buf[14];
               char     current_salt[2];
               long int current_saltbits;
               int      direction;
               int      initialized;
           };

       Avant d'appeler setkey_r(), définissez data->initialized à zéro.

VALEUR RENVOYÃE
       Ces routines ne renvoient pas de valeur.

ERREURS
       Définissez errno à zéro avant d'appeler les fonctions ci-dessus. Si
       elles réussissent, errno n'est pas modifiée.

       ENOSYS La fonction n'est pas disponible. (Par exemple à cause des
              restrictions américaines sur l'exportation de routines
              cryptographiques...)

ATTRIBUTS
   Multithreading (voir pthreads(7))
       Les fonctions encrypt() et setkey() ne sont pas sûres dans un contexte
       multithread.

       Les fonctions encrypt_r() et setkey_r() sont sûres dans un contexte
       multithread.

CONFORMITÃ
       Les fonctions encrypt() et setkey() sont conformes à SVr4, SUSv2, et
       POSIX.1-2001. Les fonctions encrypt_r() et setkey_r() sont des
       extensions GNU.

NOTES
       Dans la glibc 2.2, ces fonctions utilisent l'algorithme DES.

EXEMPLE
       Il faut lier cet exemple avec la bibliothèque libcrypt pour le
       compiler avec la glibc. Pour servir à quelque chose, les tables key[]
       et txt[] devraient être initialisées avec des valeurs significatives.

       #define _XOPEN_SOURCE
       #include <unistd.h>
       #include <stdlib.h>

       int
       main(void)
       {
           char key[64];      /* bit pattern for key */
           char txt[64];      /* bit pattern for messages */

           setkey(key);
           encrypt(txt, 0);   /* encode */
           encrypt(txt, 1);   /* decode */
       }

VOIR AUSSI
       cbc_crypt(3), crypt(3), ecb_crypt(3),

COLOPHON
       Cette page fait partie de la publication 3.70 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler des
       anomalies peuvent être trouvées à l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION
       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction
       francophone au sein du projet perkamon
       <http://perkamon.alioth.debian.org/>.

       Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain
       Portal <http://manpagesfr.free.fr/> (2003-2006).  Florentin Duneau et
       l'équipe francophone de traduction de Debian (2006-2009).

       Veuillez signaler toute erreur de traduction en écrivant Ã
       <perkamon-fr@traduc.org>.

       Vous pouvez toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».



                                22 juillet 2013                     ENCRYPT(3)