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