EVP_VERIFYINIT(3ssl) OpenSSL EVP_VERIFYINIT(3ssl) NUME EVP_VerifyInit_ex, EVP_VerifyInit, EVP_VerifyUpdate, EVP_VerifyFinal_ex, EVP_VerifyFinal - funcii de verificare a semnaturii EVP SINOPSIS #include int EVP_VerifyInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); int EVP_VerifyUpdate(EVP_MD_CTX *ctx, const void *d, unsigned int cnt); int EVP_VerifyFinal_ex(EVP_MD_CTX *ctx, const unsigned char *sigbuf, unsigned int siglen, EVP_PKEY *pkey, OSSL_LIB_CTX *libctx, const char *propq); int EVP_VerifyFinal(EVP_MD_CTX *ctx, unsigned char *sigbuf, unsigned int siglen, EVP_PKEY *pkey); int EVP_VerifyInit(EVP_MD_CTX *ctx, const EVP_MD *type); DESCRIERE EVP_SealInit() iniializeaza un context de criptare ctx pentru criptare cu algoritmul de criptare type utilizand o cheie secreta aleatorie. Rutinele de verificare a semnaturilor EVP sunt o interfaa de nivel inalt pentru semnaturile digitale. EVP_VerifyInit_ex() configureaza contextul de verificare ctx pentru a utiliza rezumatul type din ENGINE impl. ctx trebuie creat prin apelarea EVP_MD_CTX_new() inainte de apelarea acestei funcii. EVP_VerifyUpdate() hashes cnt octei de date la d in contextul de verificare ctx. Aceasta funcie poate fi apelata de mai multe ori pe acelai ctx pentru a include date suplimentare. EVP_VerifyFinal_ex() verifica datele din ctx utilizand cheia publica pkey i octeii siglen din sigbuf. Contextul bibliotecii libctx i interogarea proprietaii propq sunt utilizate la crearea unui context pentru a fi utilizat cu cheia pkey. EVP_VerifyFinal() este similara cu EVP_VerifyFinal_ex(), dar utilizeaza valorile implicite NULL pentru contextul bibliotecii libctx i interogarea proprietaii propq. EVP_VerifyInit() iniializeaza contextul de verificare ctx pentru a utiliza implementarea implicita a rezumatului type. VALORI RETURNATE EVP_VerifyInit_ex() i EVP_VerifyUpdate() returneaza 1 pentru succes i 0 pentru eec. EVP_VerifyFinal_ex() i EVP_VerifyFinal() returneaza 1 pentru o semnatura corecta, 0 pentru eec i o valoare negativa daca a aparut o alta eroare. Codurile de eroare pot fi obinute prin ERR_get_error(3). NOTE Interfaa EVP pentru semnaturile digitale ar trebui utilizata aproape intotdeauna cu prioritate faa de interfeele de nivel scazut. Aceasta deoarece codul devine transparent pentru algoritmul utilizat i mult mai flexibil. Apelul catre EVP_VerifyFinal() finalizeaza intern o copie a contextului de rezumat Aceasta inseamna ca apelurile catre EVP_VerifyUpdate() i EVP_VerifyFinal() pot fi apelate ulterior pentru a rezuma i verifica date suplimentare. Aplicaiile pot dezactiva acest comportament activand fanionul de context EVP_MD_CTX_FLAG_FINALISE prin EVP_MD_CTX_set_flags(3). Deoarece numai o copie a contextului de rezumat este finalizata, contextul trebuie curaat dupa utilizare prin apelarea EVP_MD_CTX_free(), altfel va aparea o scurgere de memorie. Reinei ca nu toi furnizorii accepta continuarea. In cazul in care furnizorul selectat nu permite duplicarea contextelor, EVP_VerifyFinal() va finaliza contextul de rezumat i incercarea de a procesa date suplimentare prin EVP_VerifyUpdate() va genera o eroare. ERORI Versiunile mai vechi ale acestei documentaii indicau in mod eronat ca apelurile catre EVP_VerifyUpdate() nu puteau fi efectuate dupa apelarea EVP_VerifyFinal(). Deoarece cheia publica este transmisa in apelul catre EVP_SignFinal(), orice eroare legata de cheia privata (de exemplu, o combinaie necorespunzatoare de cheie i rezumat) nu va fi indicata decat dupa ce cantitai potenial mari de date au fost transmise prin EVP_SignUpdate(). Nu este posibil sa modificai parametrii de semnare folosind aceste funcii. Cele doua erori anterioare au fost remediate in noua funcie EVP_DigestVerify*(). CONSULTAI I evp(7), EVP_SignInit(3), EVP_DigestInit(3), evp(7), HMAC(3), MD2(3), MD5(3), MDC2(3), RIPEMD160(3), SHA1(3), openssl-dgst(1) ISTORIC Funcia EVP_VerifyFinal_ex() a fost adaugata in OpenSSL 3.0. DREPTURI DE AUTOR Drepturi de autor 2000-2023 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_VERIFYINIT(3ssl)