Provided by: manpages-fr-dev_3.32d0.2p4-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'edition des liens avec l'option -lcrypt.

DESCRIPTION

       Ces  fonctions  chiffrent  et  dechiffrent  des messages de 64 bits. La
       fonction setkey() permet de fournir la clef a utiliser pour  encrypt().
       L'argument  key est une table de 64 octets, chacun ayant la valeur 0 ou
       1. L'octet key[n] ou n=8*i-1 est ignore, ce qui ramene  la  clef  a  56
       bits effectifs.

       La  fonction  encrypt()  modifie  le  tampon transmis, en l'encodant si
       l'argument edflag vaut 0, et en le decodant  s'il  vaut  1.  L'argument
       block  est,  comme  l'argument  key,  une representation de la valeur a
       encoder sous forme de vecteur de bits. Le resultat est renvoye dans  le
       meme vecteur.

       Ces  fonctions  ne  sont  pas reentrantes, c'est-a-dire que la clef est
       stockee dans une zone de stockage statique. Les fonctions setkey_r() et
       encrypt_r() sont des versions reentrantes. 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(), definissez data->initialized a zero.

VALEUR RENVOY'EE

       Ces routines ne renvoient pas de valeur.

ERREURS

       Definissez errno a zero avant d'appeler  les  fonctions  ci-dessus.  Si
       elles reussissent, errno n'est pas modifiee.

       ENOSYS La  fonction  n'est  pas  disponible.  (Par  exemple a cause des
              restrictions   americaines   sur   l'exportation   de   routines
              cryptographiques...)

CONFORMIT'E

       Les  fonctions  encrypt()  et setkey() sont conformes a 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 bibliotheque libcrypt pour le compiler
       avec la glibc. Pour servir a quelque chose, les tables key[]  et  txt[]
       devraient etre initialisees 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.32 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

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

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

       Veuillez   signaler   toute   erreur   de   traduction  en  ecrivant  a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir acces a la version anglaise de ce document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

                                 4 avril 2003                       ENCRYPT(3)