DH_GENERATE_KEY(3ssl) OpenSSL DH_GENERATE_KEY(3ssl)

DH_generate_key, DH_compute_key, DH_compute_key_padded - efectuează schimbul de chei Diffie-Hellman

#include <openssl/dh.h>

Următoarele funcții au fost depreciate de la OpenSSL 3.0 și pot fi ascunse complet prin definirea OPENSSL_API_COMPAT cu o valoare de versiune adecvată, a se vedea openssl_user_macros(7):

int DH_generate_key(DH *dh);
int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh);
int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh);

Toate funcțiile descrise în această pagină sunt învechite. Aplicațiile ar trebui să utilizeze în schimb EVP_PKEY_derive_init(3) și EVP_PKEY_derive(3).

DH_generate_key() efectuează primul pas al unui schimb de chei Diffie-Hellman prin generarea valorilor DH private și publice. Prin apelarea DH_compute_key() sau DH_compute_key_padded(), acestea sunt combinate cu valoarea publică a celeilalte părți pentru a calcula cheia partajată.

DH_generate_key() se așteaptă ca dh să conțină parametrii partajați dh->p și dh->g. Generează o valoare DH privată aleatorie, cu excepția cazului în care dh->priv_key este deja definită, și calculează valoarea publică corespunzătoare dh->pub_key, care poate fi apoi publicată.

DH_compute_key() calculează secretul partajat din valoarea DH privată din dh și valoarea publică a celeilalte părți din pub_key și îl stochează în key. key trebuie să indice DH_size(dh) octeți de memorie. Stilul de umplere este RFC 5246 (8.1.2), care elimină octeții zero din față. Nu este un timp constant, deoarece octeții zero din față sunt eliminați. Valoarea returnată trebuie considerată publică.

DH_compute_key_padded() este similar, dar stochează un număr fix de octeți. Stilul de completare este NIST SP 800-56A (C.1), care păstrează octeții zero inițiali. Este un timp constant datorită păstrării octeților zero inițiali. Valoarea returnată trebuie considerată publică.

DH_generate_key() returnează 1 în caz de succes, 0 în caz contrar.

DH_compute_key() returnează dimensiunea secretului partajat în caz de succes, -1 în caz de eroare.

DH_compute_key_padded() returnează DH_size(dh) în caz de succes, -1 în caz de eroare.

Codurile de eroare pot fi obținute prin ERR_get_error(3).

EVP_PKEY_derive(3), DH_new(3), ERR_get_error(3), RAND_bytes(3), DH_size(3)

DH_compute_key_padded() a fost adăugată în OpenSSL 1.0.2.

Toate aceste funcții au fost depreciate în OpenSSL 3.0.

Drepturi de autor 2000-2021 The OpenSSL Project Authors. Toate drepturile rezervate.

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 https://www.openssl.org/source/license.html.

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

5 august 2025 3.5.2