EVP(7ssl) | OpenSSL | EVP(7ssl) |
NUME
evp - funcții criptografice de nivel înalt
SINOPSIS
#include <openssl/evp.h>
DESCRIERE
Biblioteca EVP oferă o interfață la nivel înalt pentru funcțiile criptografice.
Funcțiile EVP_SealXXX și EVP_OpenXXX oferă criptare și decriptare cu cheie publică pentru a implementa „plicuri” digitale.
Funcțiile EVP_DigestSignXXX și EVP_DigestVerifyXXX implementează semnături digitale și coduri de autentificare a mesajelor (MAC). Consultați și funcțiile mai vechi EVP_SignXXX și EVP_VerifyXXX.
Criptarea simetrică este disponibilă cu funcțiile EVP_EncryptXXX. Funcțiile EVP_DigestXXX furnizează sumele de control ale mesajelor.
Funcțiile EVP_PKEYXXX oferă o interfață de nivel înalt pentru algoritmii asimetrici. Pentru a crea un EVP_PKEY nouă, consultați EVP_PKEY_new(3). EVP_PKEY-urile pot fi asociate cu o cheie privată a unui anumit algoritm utilizând funcțiile descrise pe pagina EVP_PKEY_fromdata(3) sau pot fi generate noi chei utilizând EVP_PKEY_keygen(3). EVP_PKEY-urile pot fi comparate utilizând EVP_PKEY_eq(3) sau imprimate utilizând EVP_PKEY_print_private(3). EVP_PKEY_todata(3) poate fi utilizat pentru a converti din nou o cheie într-o matrice OSSL_PARAM(3).
Funcțiile EVP_PKEY suportă întreaga gamă de operații ale algoritmului asimetric:
- Pentru acordul de chei, a se vedea EVP_PKEY_derive(3)
- Pentru semnare și verificare, a se vedea EVP_PKEY_sign(3), EVP_PKEY_verify(3) și EVP_PKEY_verify_recover(3). Cu toate acestea, rețineți că aceste funcții nu efectuează o calculare a sumelor de control ale datelor care urmează să fie semnate. Prin urmare, în mod normal ar trebui să utilizați funcțiile EVP_DigestSignInit(3) în acest scop.
- Pentru criptare și decriptare, consultați EVP_PKEY_encrypt(3) și respectiv EVP_PKEY_decrypt(3). Cu toate acestea, rețineți că aceste funcții efectuează doar criptarea și decriptarea. Deoarece criptarea cu cheie publică este o operație costisitoare, în mod normal ați include un mesaj criptat într-un „plic digital” utilizând funcțiile EVP_SealInit(3) și EVP_OpenInit(3).
Funcția EVP_BytesToKey(3) oferă un suport limitat pentru criptarea pe bază de parolă. Selectarea atentă a parametrilor va oferi o implementare compatibilă cu PKCS#5 PBKDF1. Cu toate acestea, noile aplicații nu ar trebui să utilizeze în mod obișnuit această funcție (preferând, de exemplu, PBKDF2 din PCKS#5).
Funcțiile EVP_EncodeXXX și EVP_DecodeXXX implementează codificarea și decodificarea base64.
Toți algoritmii simetrici (cifruri), sumele de control calculate și algoritmii asimetrici (algoritmi cu cheie publică) pot fi înlocuiți de module MOTOR (ENGINE) care oferă implementări alternative. Dacă implementările MOTOR ale cifrelor sau ale sumelor de control sunt înregistrate ca valori implicite, diferitele funcții EVP vor utiliza automat aceste implementări, cu prioritate față de implementările software integrate. Pentru mai multe informații, consultați pagina de manual engine(3).
Deși există funcții specifice algoritmilor de nivel scăzut pentru mulți algoritmi, utilizarea lor este descurajată. Acestea nu pot fi utilizate cu un MOTOR (ENGINE) și versiunile MOTOR ale noilor algoritmi nu pot fi accesate utilizând funcțiile de nivel scăzut. De asemenea, acest lucru îngreunează adaptarea codului la noi algoritmi și unele opțiuni nu sunt acceptate în mod clar la nivel scăzut, iar unele operații sunt mai eficiente utilizând interfața de nivel înalt.
CONSULTAȚI ȘI
EVP_DigestInit(3), EVP_EncryptInit(3), EVP_OpenInit(3), EVP_SealInit(3), EVP_DigestSignInit(3), EVP_SignInit(3), EVP_VerifyInit(3), EVP_EncodeInit(3), EVP_PKEY_new(3), EVP_PKEY_fromdata(3), EVP_PKEY_todata(3), EVP_PKEY_keygen(3), EVP_PKEY_print_private(3), EVP_PKEY_decrypt(3), EVP_PKEY_encrypt(3), EVP_PKEY_sign(3), EVP_PKEY_verify(3), EVP_PKEY_verify_recover(3), EVP_PKEY_derive(3), EVP_BytesToKey(3), ENGINE_by_id(3)
DREPTURI DE AUTOR
Drepturi de autor 2000-2024 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.
TRADUCERE
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 |