EVP_PKEY_ENCRYPT(3ssl) OpenSSL EVP_PKEY_ENCRYPT(3ssl) NUME EVP_PKEY_encrypt_init_ex, EVP_PKEY_encrypt_init, EVP_PKEY_encrypt - criptare folosind un algoritm cu cheie publica SINOPSIS #include int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); int EVP_PKEY_encrypt_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]); int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, const unsigned char *in, size_t inlen); DESCRIERE Funcia EVP_PKEY_encrypt_init() iniializeaza un context de algoritm cu cheie publica utilizand cheia pkey pentru o operaie de criptare. Funcia EVP_PKEY_encrypt_init_ex() iniializeaza un context de algoritm cu cheie publica utilizand cheia pkey pentru o operaie de criptare i definete parametrii specifici algoritmului params. Funcia EVP_PKEY_encrypt() efectueaza o operaie de criptare cu cheie publica utilizand ctx. Datele care urmeaza sa fie criptate sunt specificate utilizand parametrii in i inlen. Daca out este NULL, atunci dimensiunea maxima a tamponului de ieire este scrisa in parametrul outlen. Daca out nu este NULL, atunci inainte de apel, parametrul outlen trebuie sa conina lungimea tamponului out. Daca apelul are succes, datele criptate sunt scrise in out, iar cantitatea de date scrise in outlen. NOTE Dupa apelul catre EVP_PKEY_encrypt_init(), pot fi efectuate operaii de control specifice algoritmului pentru a defini parametrii corespunzatori pentru operaie. Aceste operaii pot fi incluse in apelul EVP_PKEY_encrypt_init_ex(). Funcia EVP_PKEY_encrypt() poate fi apelata de mai multe ori in acelai context daca se efectueaza mai multe operaii utilizand aceiai parametri. VALORI RETURNATE EVP_PKEY_encrypt_init(), EVP_PKEY_encrypt_init_ex() i EVP_PKEY_encrypt() returneaza 1 pentru succes i 0 sau o valoare negativa pentru eec. In special, o valoare returnata de -2 indica ca operaia nu este acceptata de algoritmul cheii publice. EXEMPLE Criptai datele folosind OAEP (pentru cheile RSA). Consultai i PEM_read_PUBKEY(3) sau d2i_X509(3) pentru modalitai de incarcare a unei chei publice. De asemenea, putei defini pur i simplu 'eng = NULL;' pentru a incepe cu implementarea implicita OpenSSL RSA: #include #include #include EVP_PKEY_CTX *ctx; ENGINE *eng; unsigned char *out, *in; size_t outlen, inlen; EVP_PKEY *key; /* * NB: presupune ca eng, key, in, inlen sunt deja configurate * i ca acea cheie este o cheie publica RSA */ ctx = EVP_PKEY_CTX_new(key, eng); if (!ctx) /* A aparut o eroare */ if (EVP_PKEY_encrypt_init(ctx) <= 0) /* Eroare */ if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_OAEP_PADDING) <= 0) /* Eroare */ /* Determina lungimea memoriei tampon */ if (EVP_PKEY_encrypt(ctx, NULL, &outlen, in, inlen) <= 0) /* Eroare */ out = OPENSSL_malloc(outlen); if (!out) /* Eec malloc */ if (EVP_PKEY_encrypt(ctx, out, &outlen, in, inlen) <= 0) /* Eroare */ /* Datele criptate sunt octei outlen scrii in memoria tampon de ieire */ CONSULTAI I d2i_X509(3), ENGINE_by_id(3), EVP_PKEY_CTX_new(3), EVP_PKEY_decrypt(3), EVP_PKEY_sign(3), EVP_PKEY_verify(3), EVP_PKEY_verify_recover(3), EVP_PKEY_derive(3) ISTORIC Aceste funcii au fost adaugate in OpenSSL 1.0.0. DREPTURI DE AUTOR Drepturi de autor 2006-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_PKEY_ENCRYPT(3ssl)