Provided by: manpages-fr-dev_3.57d1p1-1_all bug

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.57 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 à <debian-l10n-french@lists.debian.org>  ou  par
       un rapport de bogue sur le paquet manpages-fr.

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

                                                 22 juillet 2013                                      ENCRYPT(3)