.\" -*- coding: UTF-8 -*- .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .de IX .. .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .if n .ds AD l .\" .\" Required to disable full justification in groff 1.23.0. .\" ======================================================================== .\" .IX Titlu "EVP_PKEY_DECRYPT 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH EVP_PKEY_DECRYPT 3ssl "7 aprilie 2026" 3.6.2 OpenSSL .if n .ad l .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .nh .SH NUME EVP_PKEY_decrypt_init, EVP_PKEY_decrypt_init_ex, EVP_PKEY_decrypt \- decriptare folosind un algoritm cu cheie publică .SH SINOPSIS .IX Antet SINOPSIS .Vb 1 \& #include \& \& int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); \& int EVP_PKEY_decrypt_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); \& int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, \& unsigned char *out, size_t *outlen, \& const unsigned char *in, size_t inlen); .Ve .SH DESCRIERE .IX Antet DESCRIERE Funcția \fBEVP_PKEY_decrypt_init()\fP inițializează un context de algoritm cu cheie publică utilizând cheia \fIpkey\fP pentru o operație de decriptare. .PP Funcția \fBEVP_PKEY_decrypt_init_ex()\fP inițializează un context de algoritm cu cheie publică utilizând cheia \fIpkey\fP pentru o operație de decriptare și definește parametrii specifici algoritmului \fIparams\fP. .PP Funcția \fBEVP_PKEY_decrypt()\fP efectuează o operație de decriptare a cheii publice utilizând \fIctx\fP. Datele care trebuie decriptate sunt specificate utilizând parametrii \fIin\fP și \&\fIinlen\fP. Dacă \fIout\fP este NULL, atunci dimensiunea minimă necesară a tamponului de ieșire este scrisă în parametrul \fI*outlen\fP. .PP Dacă \fIout\fP nu este NULL, atunci înainte de apel, parametrul \fI*outlen\fP trebuie să conțină lungimea tamponului \fIout\fP. Dacă apelul are succes, datele decriptate sunt scrise în \fIout\fP și cantitatea de date decriptate este scrisă în \fI*outlen\fP, în caz contrar fiind returnată o eroare. .SH NOTE .IX Antet NOTE După apelul către \fBEVP_PKEY_decrypt_init()\fP, pot fi efectuate operații de control specifice algoritmului pentru a defini parametrii corespunzători pentru operație. Aceste operații pot fi incluse în apelul \fBEVP_PKEY_decrypt_init_ex()\fP. .PP Funcția \fBEVP_PKEY_decrypt()\fP poate fi apelată de mai multe ori în același context dacă se efectuează mai multe operații utilizând aceiași parametri. .SH "VALORI RETURNATE" .IX Antet "VALORI RETURNATE" \&\fBEVP_PKEY_decrypt_init()\fP, \fBEVP_PKEY_decrypt_init_ex()\fP și \fBEVP_PKEY_decrypt()\fP returnează 1 pentru succes și 0 sau o valoare negativă pentru eșec. În special, o valoare de returnare de \-2 indică faptul că operația nu este acceptată de algoritmul cheii publice. .SH AVERTISMENTE .IX Antet AVERTISMENTE În versiunile OpenSSL anterioare versiunii 3.2.0, atunci când erau utilizate în completarea PKCS#1 v1.5, atât valoarea returnată de \fBEVP_PKEY_decrypt()\fP, cât și \fBoutlen\fP furnizau informații utile pentru lansarea unui atac Bleichenbacher împotriva cheii private utilizate. Acestea trebuiau procesate într\-un mod care să nu implice canale secundare. .PP Începând cu versiunea 3.2.0, metoda \fBEVP_PKEY_decrypt()\fP utilizată împreună cu umplerea PKCS#1 v1.5, așa cum este implementată în furnizorul \fBdefault\fP, implementează mecanismul de respingere implicită (consultați \&\fBOSSL_ASYM_CIPHER_PARAM_IMPLICIT_REJECTION\fP în \fBprovider\-asym_cipher\fP\|(7)). Asta înseamnă că nu returnează o eroare când detectează o eroare în umplere, ci returnează un mesaj generat pseudo\-aleatoriu, eliminând necesitatea codului securizat de canal lateral din aplicațiile care folosesc OpenSSL. Dacă OpenSSL este configurat să folosească un furnizor care nu implementează respingerea implicită, codul trebuie să gestioneze în continuare valorile returnate folosind codul fără canal lateral. Gestionarea fără canal secundar a stivei de erori poate fi efectuată fie folosind o pereche de apeluri necondiționate \fBERR_set_mark\fP\|(3) și \fBERR_pop_to_mark\fP\|(3) , fie folosind apelul \fBERR_clear_error\fP\|(3). .SH EXEMPLE .IX Antet EXEMPLE Decriptează datele folosind OAEP (pentru cheile RSA): .PP .Vb 2 \& #include \& #include \& \& EVP_PKEY_CTX *ctx; \& ENGINE *eng; \& unsigned char *out, *in; \& size_t outlen, inlen; \& EVP_PKEY *key; \& \& /* \& * NB: presupune că key, eng, in, inlen sunt deja configurate și \& * că key este o cheie privată RSA. \& */ \& ctx = EVP_PKEY_CTX_new(key, eng); \& if (!ctx) \& /* A apărut o eroare */ \& if (EVP_PKEY_decrypt_init(ctx) <= 0) \& /* Eroare */ \& if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_OAEP_PADDING) <= 0) \& /* Eroare */ \& \& /* Determină lungimea memoriei tampon */ \& if (EVP_PKEY_decrypt(ctx, NULL, &outlen, in, inlen) <= 0) \& /* Eroare */ \& \& out = OPENSSL_malloc(outlen); \& \& if (!out) \& /* Eșec malloc */ \& \& if (EVP_PKEY_decrypt(ctx, out, &outlen, in, inlen) <= 0) \& /* Eroare */ \& \& /* Datele decriptate sunt octeți outlen scrise în memoria tampon de ieșire */ .Ve .SH "CONSULTAȚI ȘI" .IX Antet "CONSULTAȚI ȘI" \&\fBEVP_PKEY_CTX_new\fP\|(3), \&\fBEVP_PKEY_encrypt\fP\|(3), \&\fBEVP_PKEY_sign\fP\|(3), \&\fBEVP_PKEY_verify\fP\|(3), \&\fBEVP_PKEY_verify_recover\fP\|(3), \&\fBEVP_PKEY_derive\fP\|(3) .SH ISTORIC .IX Antet ISTORIC Aceste funcții au fost adăugate în OpenSSL 1.0.0. .SH "DREPTURI DE AUTOR" .IX Antet "DREPTURI DE AUTOR" Drepturi de autor 2006\-2025 The OpenSSL Project Authors. Toate drepturile rezervate. .PP Licențiat sub Licența Apache 2.0 („License”). Nu aveți voie să utilizați acest fișier decât în conformitate cu licența. Puteți obține o copie din fișierul LICENSE din distribuția sursei sau de la . .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 .