CMS_ADD1_RECIPIENT_CERT(3ssl)

NUME
CMS_add1_recipient, CMS_add1_recipient_cert, CMS_add0_recipient_key - adaugă destinatari la o structură de date în plic CMS

SINOPSIS
 #include <openssl/cms.h>

 CMS_RecipientInfo *CMS_add1_recipient(CMS_ContentInfo *cms, X509 *recip,
                                       EVP_PKEY *originatorPrivKey,
                                       X509 *originator, unsigned int flags);

 CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms,
                                            X509 *recip, unsigned int flags);

 CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid,
                                           unsigned char *key, size_t keylen,
                                           unsigned char *id, size_t idlen,
                                           ASN1_GENERALIZEDTIME *date,
                                           ASN1_OBJECT *otherTypeId,
                                           ASN1_TYPE *otherType);

DESCRIERE
CMS_add1_recipient() adaugă destinatarul recip și furnizează cheia privată (pkey) a inițiatorului originatorPrivKey și certificatul inițiatorului originator la CMS_ContentInfo. Câmpurile referitoare la inițiator sunt relevante numai în cazul în care se utilizează metoda keyAgreement de furnizare a cheii partajate.

CMS_add1_recipient_cert() adaugă destinatarul recip la structura de date în plic CMS_ContentInfo cms ca structură KeyTransRecipientInfo sau structură KEMRecipientInfo, sau ca o structură KeyAgreeRecipientInfo cu o cheie efemeră.

CMS_add0_recipient_key() adaugă cheia simetrică key de lungime keylen folosind algoritmul de învăluire nid, identificatorul id de lungime idlen și valorile opționale date, otherTypeId și otherType la structura de date în plic CMS_ContentInfo cms ca o structură KEKRecipientInfo.

Structura CMS_ContentInfo trebuie obținută în urma unui apel inițial la CMS_encrypt() cu fanionul CMS_PARTIAL activat.

NOTE
Scopul principal al acestei funcții este de a oferi un control mai fin asupra unei structuri de date în plic CMS atunci când valorile implicite ale funcției CMS_encrypt(), mai simple, nu sunt adecvate. De exemplu, dacă trebuie adăugate una sau mai multe structuri KEKRecipientInfo. Se pot adăuga, de asemenea, atribute noi utilizând structura CMS_RecipientInfo returnată și funcțiile utilitare de atribuire CMS.

OpenSSL va identifica în mod implicit certificatele destinatarului utilizând numele emitentului și numărul de serie. Dacă CMS_USE_KEYID este activat, acesta va utiliza în schimb valoarea identificatorului de cheie subiect. Apare o eroare dacă toate certificatele destinatarului nu au extensia „subject key identifier”.

În prezent, pentru nid sunt acceptați numai algoritmi de învăluire a cheilor bazați pe AES, în special: NID_id_aes128_wrap, NID_id_aes192_wrap și NID_id_aes256_wrap. Dacă nid este definit la NID_undef, atunci se va utiliza un algoritm de învăluire AES compatibil cu keylen.

VALORI RETURNATE
CMS_add1_recipient_cert() și CMS_add0_recipient_key() returnează un indicator intern către structura CMS_RecipientInfo tocmai adăugată sau NULL dacă apare o eroare.

CONSULTAȚI ȘI
ERR_get_error(3), CMS_decrypt(3), CMS_final(3),

ISTORIC
CMS_add1_recipient_cert și CMS_add0_recipient_key au fost adăugate în OpenSSL 3.0.

DREPTURI DE AUTOR
Drepturi de autor 2008-2025 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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.