.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2000 Nicolás Lichtmaier .\" Created 2000-07-22 00:52-0300 .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\" Modified 2002-07-23 19:21:35 CEST 2002 Walter Harms .\" .\" .\" Modified 2003-04-04, aeb .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH encrypt 3 "2 mai 2024" "Pages du manuel de Linux 6.8" .SH NOM encrypt, setkey, encrypt_r, setkey_r \- Crypter des messages de 64\ bits .SH BIBLIOTHÈQUE Bibliothèque hachage de mot de passe (\fIlibcrypt\fP, \fI\-lcrypt\fP) .SH SYNOPSIS .nf \fB#define _XOPEN_SOURCE\fP /* Consultez feature_test_macros(7) */ \fB#include \fP .P \fB[[obsolète]] void encrypt(char \fP\fIblock\fP\fB[64], int \fP\fIedflag\fP\fB);\fP .P \fB#define _XOPEN_SOURCE\fP /* Consultez feature_test_macros(7) */ \fB#include \fP .P \fB[[obsolète]] void setkey(const char *\fP\fIkey\fP\fB);\fP .P \fB#define _GNU_SOURCE\fP /* Consultez feature_test_macros(7) */ \fB#include \fP .P \fB[[obsolète]] void setkey_r(const char *\fP\fIkey\fP\fB, struct crypt_data *\fP\fIdata\fP\fB);\fP \fB[[obsolète]] void encrypt_r(char *\fP\fIblock\fP\fB, int \fP\fIedflag\fP\fB,\fP \fB struct crypt_data *\fP\fIdata\fP\fB);\fP .fi .SH DESCRIPTION Ces fonctions chiffrent et déchiffrent des messages de 64\ bits. La fonction \fBsetkey\fP() permet de fournir la clef à utiliser pour \fBencrypt\fP(). L'argument \fIkey\fP est une table de 64\ octets, chacun ayant la valeur\ 0 ou \ 1. Les octets key[n] où n=8*i\-1 sont ignorés, ce qui ramène la clef à 56\ bits effectifs. .P La fonction \fBencrypt\fP() modifie le tampon transmis, en l'encodant si l'argument \fIedflag\fP vaut 0, et en le décodant s'il vaut 1. L'argument \fIblock\fP est, comme l'argument \fIkey\fP, une représentation de la valeur réelle à encoder sous forme de vecteur de bits. Le résultat est renvoyé dans le même vecteur. .P Ces deux fonctions ne sont pas réentrantes, c'est\-à\-dire que la clef est stockée dans une zone de stockage statique. Les fonctions \fBsetkey_r\fP() et \fBencrypt_r\fP() sont des versions réentrantes. Elles utilisent la structure suivante pour contenir la clef\ : .P .in +4n .EX 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 current_saltbits; int direction; int initialized; }; .EE .in .P Avant d'appeler \fBsetkey_r\fP(), définissez \fIdata\->initialized\fP à zéro. .SH "VALEUR RENVOYÉE" Ces routines ne renvoient pas de valeur. .SH ERREURS Définissez \fIerrno\fP à zéro avant d'appeler les fonctions ci\-dessus. Si elles réussissent, \fIerrno\fP n'est pas modifiée. .TP \fBENOSYS\fP La fonction n'est pas disponible. (Par exemple, à cause des restrictions américaines sur l'exportation de routines cryptographiques.) .SH ATTRIBUTS Pour une explication des termes utilisés dans cette section, consulter \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interface Attribut Valeur T{ .na .nh \fBencrypt\fP(), \fBsetkey\fP() T} Sécurité des threads MT\-Unsafe race:crypt T{ .na .nh \fBencrypt_r\fP(), \fBsetkey_r\fP() T} Sécurité des threads MT\-Safe .TE .SH STANDARDS .TP \fBencrypt\fP() .TQ \fBsetkey\fP() POSIX.1\-2008. .TP \fBencrypt_r\fP() .TQ \fBsetkey_r\fP() Aucune. .SH HISTORIQUE Supprimée dans la glibc 2.28. .P Parce qu'elles emploient le chiffrement par bloc DES, qui n'est plus considéré comme sûr, ces fonctions ont été retirées de la glibc. Les applications devraient passer à une bibliothèque de chiffrement moderne telle que \fBlibgcrypt\fP. .TP \fBencrypt\fP() .TQ \fBsetkey\fP() POSIX.1\-2001, SUS, SVr4. .SS "Disponibilité dans la glibc" Consultez \fBcrypt\fP(3). .SS "Fonctionnalités dans la glibc" Dans la glibc\ 2.2, ces fonctions utilisent l'algorithme DES. .SH EXEMPLES .\" SRC BEGIN (encrypt.c) .EX #define _XOPEN_SOURCE #include #include #include #include \& int main(void) { char key[64]; char orig[9] = "eggplant"; char buf[64]; char txt[9]; \& for (size_t i = 0; i < 64; i++) { key[i] = rand() & 1; } \& for (size_t i = 0; i < 8; i++) { for (size_t j = 0; j < 8; j++) { buf[i * 8 + j] = orig[i] >> j & 1; } setkey(key); } printf("Avant chiffrement : %s\en", orig); \& encrypt(buf, 0); for (size_t i = 0; i < 8; i++) { for (size_t j = 0, txt[i] = \[aq]\e0\[aq]; j < 8; j++) { txt[i] |= buf[i * 8 + j] << j; } txt[8] = \[aq]\e0\[aq]; } printf("Après chiffrement : %s\en", txt); \& encrypt(buf, 1); for (size_t i = 0; i < 8; i++) { for (size_t j = 0, txt[i] = \[aq]\e0\[aq]; j < 8; j++) { txt[i] |= buf[i * 8 + j] << j; } txt[8] = \[aq]\e0\[aq]; } printf("Après déchiffrement : %s\en", txt); exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "VOIR AUSSI" \fBcbc_crypt\fP(3), \fBcrypt\fP(3), \fBecb_crypt\fP(3) .\" .BR fcrypt (3) .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Jean-Pierre Giraud . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .