EVP_SEALINIT(3ssl) OpenSSL EVP_SEALINIT(3ssl) NUME EVP_SealInit, EVP_SealUpdate, EVP_SealFinal - criptarea plicului EVP SINOPSIS #include int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, unsigned char **ek, int *ekl, unsigned char *iv, EVP_PKEY **pubk, int npubk); int EVP_SealUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, unsigned char *in, int inl); int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); DESCRIERE Rutinele de plic EVP sunt o interfaa de nivel inalt pentru criptarea plicurilor. Acestea genereaza o cheie aleatorie i IV (daca este necesar), apoi o ,,creeaza plicul" folosind criptarea cu cheie publica. Datele pot fi apoi criptate folosind aceasta cheie. EVP_SealInit() iniializeaza un context de criptare ctx pentru criptare cu algoritmul type utilizand o cheie secreta aleatorie i IV. type este furnizat in mod normal de o funcie precum EVP_aes_256_cbc(). Cheia secreta este criptata utilizand una sau mai multe chei publice, ceea ce permite decriptarea acelorai date criptate utilizand oricare dintre cheile private corespunzatoare. ek este o matrice de tampoane in care va fi scrisa cheia secreta criptata cu cheia publica, fiecare tampon trebuie sa conina suficient spaiu pentru cheia criptata corespunzatoare: adica ek[i] trebuie sa aiba spaiu pentru EVP_PKEY_get_size(pubk[i]) octei. Dimensiunea reala a fiecarei chei secrete criptate este scrisa in matricea ekl. pubk este o matrice de npubk chei publice. Parametrul iv este un tampon in care este scris IV-ul generat. Acesta trebuie sa conina suficient spaiu pentru IV-ul cifrului corespunzator, astfel cum este determinat de (de exemplu) EVP_CIPHER_get_iv_length(type). Daca algoritmul de criptare nu necesita un IV, parametrul iv este ignorat i poate fi NULL. EVP_SealUpdate() i EVP_SealFinal() au exact aceleai proprietai ca rutinele EVP_EncryptUpdate() i EVP_EncryptFinal(), aa cum este documentat in pagina manualului EVP_EncryptInit(3). VALORI RETURNATE EVP_SealInit() returneaza 0 in caz de eroare sau npubk daca operaiunea are succes. EVP_SealUpdate() i EVP_SealFinal() returneaza 1 pentru succes i 0 pentru eec. NOTE Deoarece se genereaza o cheie secreta aleatorie, generatorul de numere aleatorii trebuie iniializat atunci cand se apeleaza EVP_SealInit(). Daca iniializarea sau reinitializarea automata a OpenSSL CSPRNG eueaza din cauza unor circumstane externe (a se vedea RAND(7)), operaia va eua. Cheia publica trebuie sa fie RSA, deoarece este singurul algoritm de cheie publica OpenSSL care accepta transportul cheilor. Criptarea plicului este metoda obinuita de utilizare a criptarii cu cheie publica pentru cantitai mari de date, deoarece criptarea cu cheie publica este lenta, iar criptarea simetrica este rapida. Prin urmare, criptarea simetrica este utilizata pentru criptarea in bloc, iar cheia simetrica aleatorie mica utilizata este transferata folosind criptarea cu cheie publica. Este posibil sa apelai EVP_SealInit() de doua ori, in acelai mod ca i EVP_EncryptInit(). La prima apelare, npubk trebuie definit la 0 i (dupa definirea parametrilor de criptare) trebuie apelat din nou cu type definit la NULL. CONSULTAI I evp(7), RAND_bytes(3), EVP_EncryptInit(3), EVP_OpenInit(3), RAND(7) DREPTURI DE AUTOR Drepturi de autor 2000-2021 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_SEALINIT(3ssl)