EVP_PKEY_DERIVE(3ssl) OpenSSL EVP_PKEY_DERIVE(3ssl) NUME EVP_PKEY_derive_init, EVP_PKEY_derive_init_ex, EVP_PKEY_derive_set_peer_ex, EVP_PKEY_derive_set_peer, EVP_PKEY_derive - deriva (deduce) secretul partajat al algoritmului cheii publice SINOPSIS #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); DESCRIERE EVP_PKEY_derive_init() iniializeaza un context de algoritm cu cheie publica ctx pentru derivarea secretului partajat utilizand algoritmul dat atunci cand contextul a fost creat utilizand EVP_PKEY_CTX_new(3) sau variante ale acestuia. Algoritmul este utilizat pentru a prelua implicit o metoda EVP_KEYEXCH, consultai ,,Preluarea implicita" in provider(7) pentru mai multe informaii despre preluarile implicite. EVP_PKEY_derive_init_ex() este identica cu EVP_PKEY_derive_init(), dar in plus definete parametrii pasai params in context inainte de returnare. EVP_PKEY_derive_set_peer_ex() definete cheia omologului (peer): aceasta va fi, in mod normal, o cheie publica. validate_peer va valida cheia publica daca aceasta valoare este diferita de zero. EVP_PKEY_derive_set_peer() este similara cu EVP_PKEY_derive_set_peer_ex() cu validate_peer definit la 1. EVP_PKEY_derive() deriva (deduce) un secret partajat utilizand ctx. Daca key este NULL, atunci dimensiunea maxima a tamponului de ieire este scrisa in parametrul keylen. Daca key nu este NULL, atunci inainte de apel, parametrul keylen trebuie sa conina lungimea tamponului key. Daca apelul are succes, secretul partajat este scris in key, iar cantitatea de date este scrisa in keylen. NOTE Dupa apelul catre EVP_PKEY_derive_init(), se pot efectua operaii de control specifice algoritmului pentru a defini parametrii corespunzatori pentru operaie. Funcia EVP_PKEY_derive() poate fi apelata de mai multe ori in acelai context daca se efectueaza mai multe operaii utilizand aceiai parametri. VALORI RETURNATE EVP_PKEY_derive_init() i EVP_PKEY_derive() returneaza 1 pentru succes i 0 sau o valoare negativa pentru eec. In special, o valoare de returnare de -2 indica faptul ca operaia nu este acceptata de algoritmul cheii publice. EXEMPLE Deduce secretul comun (de exemplu, cheile DH sau EC): #include #include EVP_PKEY_CTX *ctx; ENGINE *eng; unsigned char *skey; size_t skeylen; EVP_PKEY *pkey, *peerkey; /* NB: se presupune ca pkey, eng, peerkey au fost deja configurate */ ctx = EVP_PKEY_CTX_new(pkey, eng); if (!ctx) /* A aparut 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) /* Eec malloc */ if (EVP_PKEY_derive(ctx, skey, &skeylen) <= 0) /* Eroare */ /* Secretul partajat este reprezentat de octeii skey scrii in tamponul skey. */ CONSULTAI I EVP_PKEY_CTX_new(3), EVP_PKEY_encrypt(3), EVP_PKEY_decrypt(3), EVP_PKEY_sign(3), EVP_PKEY_verify(3), EVP_PKEY_verify_recover(3), EVP_KEYEXCH_fetch(3) ISTORIC Funciile EVP_PKEY_derive_init(), EVP_PKEY_derive_set_peer() i EVP_PKEY_derive() au fost adaugate iniial in OpenSSL 1.0.0. Funciile EVP_PKEY_derive_init_ex() i EVP_PKEY_derive_set_peer_ex() au fost adaugate in OpenSSL 3.0. DREPTURI DE AUTOR Drepturi de autor 2006-2022 The OpenSSL Project Authors. Toate drepturile rezervate. Liceniat sub Licena Apache 2.0 (,,License"). Nu avei voie sa utilizai acest fiier decat in conformitate cu licena. Putei obine o copie din fiierul LICENSE din distribuia sursei sau de la . TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . 3.5.2 5 august 2025 EVP_PKEY_DERIVE(3ssl)