.\" -*- 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" "Pagini de manual de Linux 6.8" .SH NUME encrypt, setkey, encrypt_r, setkey_r \- criptează mesaje pe 64 de biți .SH BIBLIOTECA Biblioteca de criptare a parolelor (\fIlibcrypt\fP, \fI\-lcrypt\fP) .SH SINOPSIS .nf \fB#define _XOPEN_SOURCE\fP /* Consultați feature_test_macros(7) */ \fB#include \fP .P \fB[[depreciat]] void encrypt(char \fP\fIblock\fP\fB[64], int \fP\fIedflag\fP\fB);\fP .P \fB#define _XOPEN_SOURCE\fP /* Consultați feature_test_macros(7) */ \fB#include \fP .P \fB[[depreciat]] void setkey(const char *\fP\fIkey\fP\fB);\fP .P \fB#define _GNU_SOURCE\fP /* Consultați feature_test_macros(7) */ \fB#include \fP .P \fB[[depreciat]] void setkey_r(const char *\fP\fIkey\fP\fB, struct crypt_data *\fP\fIdata\fP\fB);\fP \fB[[depreciat]] 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 DESCRIERE Aceste funcții criptează și decriptează mesaje pe 64 de biți. Funcția \fBsetkey\fP() stabilește cheia utilizată de \fBencrypt\fP(). Argumentul \fIkey\fP utilizat aici este o matrice de 64 de octeți, fiecare dintre aceștia având valoarea numerică 1 sau 0. Octeții key[n] unde n=8*i\-1 sunt ignorați, astfel încât lungimea efectivă a cheii este de 56 de biți. .P Funcția \fBencrypt\fP() modifică memoria tampon transmisă, codificând dacă \fIedflag\fP este 0 și decodificând dacă este transmis 1. Ca și argumentul \fIkey\fP, de asemenea \fIblock\fP este o reprezentare vectorială de biți a valorii reale care este codificată. Rezultatul este returnat în același vector. .P Aceste două funcții nu sunt reentrante, adică datele cheie sunt păstrate în memoria statică. Funcțiile \fBsetkey_r\fP() și \fBencrypt_r\fP() sunt versiunile reentrante. Acestea utilizează următoarea structură pentru a păstra datele cheii: .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 Înainte de a apela \fBsetkey_r\fP() stabilește \fIdata\->initialized\fP la zero. .SH "VALOAREA RETURNATĂ" Aceste funcții nu returnează nicio valoare. .SH ERORI\-IEȘIRE Stabilește \fIerrno\fP la zero înainte de a apela funcțiile de mai sus. În caz de succes, \fIerrno\fP rămâne neschimbată. .TP \fBENOSYS\fP Funcția nu este furnizată; (de exemplu, din cauza fostelor restricții de export din SUA). .SH ATRIBUTE Pentru o explicație a termenilor folosiți în această secțiune, a se vedea \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfață Atribut Valoare T{ .na .nh \fBencrypt\fP(), \fBsetkey\fP() T} Siguranța firelor MT\-Unsafe race:crypt T{ .na .nh \fBencrypt_r\fP(), \fBsetkey_r\fP() T} Siguranța firelor MT\-Safe .TE .SH STANDARDE .TP \fBencrypt\fP() .TQ \fBsetkey\fP() POSIX.1\-2008. .TP \fBencrypt_r\fP() .TQ \fBsetkey_r\fP() Niciunul. .SH ISTORIC Eliminată în glibc 2.28. .P Deoarece acestea utilizează cifrul bloc DES, care nu mai este considerat sigur, aceste funcții au fost eliminate. Aplicațiile ar trebui să treacă la o bibliotecă de criptografie modernă, cum ar fi \fBlibgcrypt\fP. .TP \fBencrypt\fP() .TQ \fBsetkey\fP() POSIX.1\-2001, SUS, SVr4. .SS "Disponibilitate în glibc" Consultați \fBcrypt\fP(3). .SS "Caracteristici în glibc" În glibc 2.2, aceste funcții utilizează algoritmul DES. .SH EXEMPLE .\" 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("Înainte de criptare: %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("După criptare: %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("După decriptare: %s\en", txt); exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "CONSULTAȚI ȘI" \fBcbc_crypt\fP(3), \fBcrypt\fP(3), \fBecb_crypt\fP(3) .\" .BR fcrypt (3) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .