Lines Matching refs:ri
102 int ossl_cms_env_asn1_ctrl(CMS_RecipientInfo *ri, int cmd)
106 if (ri->type == CMS_RECIPINFO_TRANS)
107 pkey = ri->d.ktri->pkey;
108 else if (ri->type == CMS_RECIPINFO_AGREE) {
109 EVP_PKEY_CTX *pctx = ri->d.kari->pctx;
120 return ossl_cms_dh_envelope(ri, cmd);
122 return ossl_cms_ecdh_envelope(ri, cmd);
124 return ossl_cms_rsa_envelope(ri, cmd);
129 i = pkey->ameth->pkey_ctrl(pkey, ASN1_PKEY_CTRL_CMS_ENVELOPE, cmd, ri);
172 CMS_RecipientInfo *ri;
177 ri = sk_CMS_RecipientInfo_value(rinfos, i);
178 if (ri != NULL) {
179 switch (ri->type) {
181 ri->d.kari->cms_ctx = ctx;
184 ri->d.ktri->cms_ctx = ctx;
185 ossl_x509_set0_libctx(ri->d.ktri->recip,
190 ri->d.kekri->cms_ctx = ctx;
193 ri->d.pwri->cms_ctx = ctx;
202 int CMS_RecipientInfo_type(CMS_RecipientInfo *ri)
204 return ri->type;
207 EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri)
209 if (ri->type == CMS_RECIPINFO_TRANS)
210 return ri->d.ktri->pctx;
211 else if (ri->type == CMS_RECIPINFO_AGREE)
212 return ri->d.kari->pctx;
279 static int cms_RecipientInfo_ktri_init(CMS_RecipientInfo *ri, X509 *recip,
286 ri->d.ktri = M_ASN1_new_of(CMS_KeyTransRecipientInfo);
287 if (!ri->d.ktri)
289 ri->type = CMS_RECIPINFO_TRANS;
291 ktri = ri->d.ktri;
324 } else if (!ossl_cms_env_asn1_ctrl(ri, 0))
337 CMS_RecipientInfo *ri = NULL;
347 ri = M_ASN1_new_of(CMS_RecipientInfo);
348 if (ri == NULL)
360 if (!cms_RecipientInfo_ktri_init(ri, recip, pk, flags, ctx))
365 if (!ossl_cms_RecipientInfo_kari_init(ri, recip, pk, originator,
376 if (!sk_CMS_RecipientInfo_push(ris, ri))
379 return ri;
384 M_ASN1_free_of(ri, CMS_RecipientInfo);
395 int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri,
400 if (ri->type != CMS_RECIPINFO_TRANS) {
405 ktri = ri->d.ktri;
416 int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri,
422 if (ri->type != CMS_RECIPINFO_TRANS) {
426 ktri = ri->d.ktri;
432 int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert)
434 if (ri->type != CMS_RECIPINFO_TRANS) {
438 return ossl_cms_SignerIdentifier_cert_cmp(ri->d.ktri->rid, cert);
441 int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey)
443 if (ri->type != CMS_RECIPINFO_TRANS) {
447 EVP_PKEY_free(ri->d.ktri->pkey);
448 ri->d.ktri->pkey = pkey;
455 CMS_RecipientInfo *ri)
466 if (ri->type != CMS_RECIPINFO_TRANS) {
470 ktri = ri->d.ktri;
476 if (!ossl_cms_env_asn1_ctrl(ri, 0))
517 CMS_RecipientInfo *ri)
519 CMS_KeyTransRecipientInfo *ktri = ri->d.ktri;
571 if (!ossl_cms_env_asn1_ctrl(ri, 1))
611 int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri,
616 if (ri->type != CMS_RECIPINFO_KEK) {
620 kekri = ri->d.kekri;
654 CMS_RecipientInfo *ri = NULL;
697 ri = M_ASN1_new_of(CMS_RecipientInfo);
698 if (!ri)
701 ri->d.kekri = M_ASN1_new_of(CMS_KEKRecipientInfo);
702 if (!ri->d.kekri)
704 ri->type = CMS_RECIPINFO_KEK;
706 kekri = ri->d.kekri;
714 if (!sk_CMS_RecipientInfo_push(ris, ri))
736 return ri;
741 M_ASN1_free_of(ri, CMS_RecipientInfo);
745 int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri,
753 if (ri->type != CMS_RECIPINFO_KEK) {
757 rkid = ri->d.kekri->kekid;
759 *palg = ri->d.kekri->keyEncryptionAlgorithm;
779 int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri,
783 if (ri->type != CMS_RECIPINFO_KEK) {
788 kekri = ri->d.kekri;
819 CMS_RecipientInfo *ri)
835 kekri = ri->d.kekri;
890 CMS_RecipientInfo *ri)
906 kekri = ri->d.kekri;
969 int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri)
971 switch (ri->type) {
973 return cms_RecipientInfo_ktri_decrypt(cms, ri);
976 return cms_RecipientInfo_kekri_decrypt(cms, ri);
979 return ossl_cms_RecipientInfo_pwri_crypt(cms, ri, 0);
987 int CMS_RecipientInfo_encrypt(const CMS_ContentInfo *cms, CMS_RecipientInfo *ri)
989 switch (ri->type) {
991 return cms_RecipientInfo_ktri_encrypt(cms, ri);
994 return ossl_cms_RecipientInfo_kari_encrypt(cms, ri);
997 return cms_RecipientInfo_kekri_encrypt(cms, ri);
1000 return ossl_cms_RecipientInfo_pwri_crypt(cms, ri, 1);
1041 CMS_RecipientInfo *ri;
1055 ri = sk_CMS_RecipientInfo_value(env->recipientInfos, i);
1056 if (ri->type == CMS_RECIPINFO_PASS || ri->type == CMS_RECIPINFO_OTHER) {
1059 } else if (ri->type != CMS_RECIPINFO_TRANS
1060 || ri->d.ktri->version != 0) {
1075 CMS_RecipientInfo *ri;
1078 ri = sk_CMS_RecipientInfo_value(ris, i);
1079 if (CMS_RecipientInfo_encrypt(cms, ri) <= 0)