Provided by: manpages-fr-dev_3.65d1p1-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.65 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)