.\" -*- 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_DERIVE 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH EVP_PKEY_DERIVE 3ssl "5 august 2025" 3.5.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_derive_init, EVP_PKEY_derive_init_ex, EVP_PKEY_derive_set_peer_ex, EVP_PKEY_derive_set_peer, EVP_PKEY_derive \&\- derivă (deduce) secretul partajat al algoritmului cheii publice .SH SINOPSIS .IX Antet SINOPSIS .Vb 1 \& #include \& \& int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); \& int EVP_PKEY_derive_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); \& int EVP_PKEY_derive_set_peer_ex(EVP_PKEY_CTX *ctx, EVP_PKEY *peer, \& int validate_peer); \& int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); \& int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); .Ve .SH DESCRIERE .IX Antet DESCRIERE \&\fBEVP_PKEY_derive_init()\fP inițializează un context de algoritm cu cheie publică \fIctx\fP pentru derivarea secretului partajat utilizând algoritmul dat atunci când contextul a fost creat utilizând \fBEVP_PKEY_CTX_new\fP\|(3) sau variante ale acestuia. Algoritmul este utilizat pentru a prelua implicit o metodă \fBEVP_KEYEXCH\fP, consultați „Preluarea implicită” în \fBprovider\fP\|(7) pentru mai multe informații despre preluările implicite. .PP \&\fBEVP_PKEY_derive_init_ex()\fP este identică cu \fBEVP_PKEY_derive_init()\fP, dar în plus definește parametrii pasați \fIparams\fP în context înainte de returnare. .PP \&\fBEVP_PKEY_derive_set_peer_ex()\fP definește cheia omologului (peer): aceasta va fi, în mod normal, o cheie publică. \fIvalidate_peer\fP va valida cheia publică dacă această valoare este diferită de zero. .PP \&\fBEVP_PKEY_derive_set_peer()\fP este similară cu \fBEVP_PKEY_derive_set_peer_ex()\fP cu \&\fIvalidate_peer\fP definit la 1. .PP \&\fBEVP_PKEY_derive()\fP derivă (deduce) un secret partajat utilizând \fIctx\fP. Dacă \fIkey\fP este NULL, atunci dimensiunea maximă a tamponului de ieșire este scrisă în parametrul \&\fIkeylen\fP. Dacă \fIkey\fP nu este NULL, atunci înainte de apel, parametrul \fIkeylen\fP trebuie să conțină lungimea tamponului \fIkey\fP. Dacă apelul are succes, secretul partajat este scris în \fIkey\fP, iar cantitatea de date este scrisă în \fIkeylen\fP. .SH NOTE .IX Antet NOTE După apelul către \fBEVP_PKEY_derive_init()\fP, se pot efectua operații de control specifice algoritmului pentru a defini parametrii corespunzători pentru operație. .PP Funcția \fBEVP_PKEY_derive()\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_derive_init()\fP și \fBEVP_PKEY_derive()\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 EXEMPLE .IX Antet EXEMPLE Deduce secretul comun (de exemplu, cheile DH sau EC): .PP .Vb 2 \& #include \& #include \& \& EVP_PKEY_CTX *ctx; \& ENGINE *eng; \& unsigned char *skey; \& size_t skeylen; \& EVP_PKEY *pkey, *peerkey; \& /* NB: se presupune că pkey, eng, peerkey au fost deja configurate */ \& \& ctx = EVP_PKEY_CTX_new(pkey, eng); \& if (!ctx) \& /* A apărut o eroare */ \& if (EVP_PKEY_derive_init(ctx) <= 0) \& /* Eroare */ \& if (EVP_PKEY_derive_set_peer(ctx, peerkey) <= 0) \& /* Eroare */ \& \& /* Determine buffer length */ \& if (EVP_PKEY_derive(ctx, NULL, &skeylen) <= 0) \& /* Eroare */ \& \& skey = OPENSSL_malloc(skeylen); \& \& if (!skey) \& /* Eșec malloc */ \& \& if (EVP_PKEY_derive(ctx, skey, &skeylen) <= 0) \& /* Eroare */ \& \& /* Secretul partajat este reprezentat de octeții skey scriși în tamponul skey. */ .Ve .SH "CONSULTAȚI ȘI" .IX Antet "CONSULTAȚI ȘI" \&\fBEVP_PKEY_CTX_new\fP\|(3), \&\fBEVP_PKEY_encrypt\fP\|(3), \&\fBEVP_PKEY_decrypt\fP\|(3), \&\fBEVP_PKEY_sign\fP\|(3), \&\fBEVP_PKEY_verify\fP\|(3), \&\fBEVP_PKEY_verify_recover\fP\|(3), \&\fBEVP_KEYEXCH_fetch\fP\|(3) .SH ISTORIC .IX Antet ISTORIC Funcțiile \fBEVP_PKEY_derive_init()\fP, \fBEVP_PKEY_derive_set_peer()\fP și \fBEVP_PKEY_derive()\fP au fost adăugate inițial în OpenSSL 1.0.0. .PP Funcțiile \fBEVP_PKEY_derive_init_ex()\fP și \fBEVP_PKEY_derive_set_peer_ex()\fP au fost adăugate în OpenSSL 3.0. .SH "DREPTURI DE AUTOR" .IX Antet "DREPTURI DE AUTOR" Drepturi de autor 2006\-2022 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 .