Home | History | Annotate | Download | only in cms

Lines Matching refs:cms

15 #include <openssl/cms.h>
78 static int check_content(CMS_ContentInfo *cms)
80 ASN1_OCTET_STRING **pos = CMS_get0_content(cms);
104 int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags)
109 if (OBJ_obj2nid(CMS_get0_type(cms)) != NID_pkcs7_data) {
113 cont = CMS_dataInit(cms, NULL);
124 CMS_ContentInfo *cms = ossl_cms_Data_create(libctx, propq);
126 if (cms == NULL)
129 if ((flags & CMS_STREAM) || CMS_final(cms, in, NULL, flags))
130 return cms;
132 CMS_ContentInfo_free(cms);
141 int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out,
147 if (OBJ_obj2nid(CMS_get0_type(cms)) != NID_pkcs7_digest) {
152 if (dcont == NULL && !check_content(cms))
155 cont = CMS_dataInit(cms, dcont);
161 r = ossl_cms_DigestedData_do_final(cms, cont, 1);
170 CMS_ContentInfo *cms;
178 cms = ossl_cms_DigestedData_create(md, ctx, propq);
179 if (cms == NULL)
183 CMS_set_detached(cms, 0);
185 if ((flags & CMS_STREAM) || CMS_final(cms, in, NULL, flags))
186 return cms;
188 CMS_ContentInfo_free(cms);
198 int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms,
205 if (OBJ_obj2nid(CMS_get0_type(cms)) != NID_pkcs7_encrypted) {
210 if (dcont == NULL && !check_content(cms))
213 if (CMS_EncryptedData_set1_key(cms, NULL, key, keylen) <= 0)
215 cont = CMS_dataInit(cms, dcont);
229 CMS_ContentInfo *cms;
235 cms = CMS_ContentInfo_new_ex(libctx, propq);
236 if (cms == NULL)
238 if (!CMS_EncryptedData_set1_key(cms, cipher, key, keylen))
242 CMS_set_detached(cms, 0);
245 || CMS_final(cms, in, NULL, flags))
246 return cms;
249 CMS_ContentInfo_free(cms);
305 int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs,
317 const CMS_CTX *ctx = ossl_cms_get0_cmsctx(cms);
319 if (dcont == NULL && !check_content(cms))
322 const ASN1_OBJECT *coid = CMS_get0_eContentType(cms);
330 sinfos = CMS_get0_SignerInfos(cms);
345 scount += CMS_set1_signers_certs(cms, certs, flags);
362 if (!ossl_cms_get1_certs_ex(cms, &untrusted))
370 && !ossl_cms_get1_crls_ex(cms, &crls))
434 cmsbio = CMS_dataInit(cms, tmpout);
451 cmsbio = CMS_dataInit(cms, tmpin);
514 CMS_ContentInfo *cms;
517 cms = CMS_ContentInfo_new_ex(libctx, propq);
518 if (cms == NULL || !CMS_SignedData_init(cms)) {
523 && !CMS_set1_eContentType(cms,
529 if (pkey != NULL && !CMS_add1_signer(cms, signcert, pkey, NULL, flags)) {
537 if (!CMS_add1_cert(cms, x)) {
544 CMS_set_detached(cms, 0);
547 || CMS_final(cms, data, NULL, flags))
548 return cms;
553 CMS_ContentInfo_free(cms);
568 CMS_ContentInfo *cms = NULL;
584 cms = CMS_sign_ex(NULL, NULL, certs, NULL, flags,
587 if (cms == NULL)
591 if (!CMS_set1_eContentType(cms, OBJ_nid2obj(NID_id_smime_ct_receipt)))
594 rct_si = CMS_add1_signer(cms, signcert, pkey, NULL, flags);
615 if (!CMS_final(cms, rct_cont, NULL, flags))
619 pos = CMS_get0_content(cms);
629 return cms;
630 CMS_ContentInfo_free(cms);
639 CMS_ContentInfo *cms;
643 cms = (EVP_CIPHER_get_flags(cipher) & EVP_CIPH_FLAG_AEAD_CIPHER)
646 if (cms == NULL) {
652 if (!CMS_add1_recipient_cert(cms, recip, flags)) {
659 CMS_set_detached(cms, 0);
662 || CMS_final(cms, data, NULL, flags))
663 return cms;
668 CMS_ContentInfo_free(cms);
678 static int cms_kari_set1_pkey_and_peer(CMS_ContentInfo *cms,
694 rv = CMS_RecipientInfo_kari_decrypt(cms, ri, rek);
703 int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert)
705 return CMS_decrypt_set1_pkey_and_peer(cms, pk, cert, NULL);
708 int CMS_decrypt_set1_pkey_and_peer(CMS_ContentInfo *cms, EVP_PKEY *pk,
711 STACK_OF(CMS_RecipientInfo) *ris = CMS_get0_RecipientInfos(cms);
715 CMS_EncryptedContentInfo *ec = ossl_cms_get0_env_enc_content(cms);
742 r = cms_kari_set1_pkey_and_peer(cms, ri, pk, cert, peer);
753 r = CMS_RecipientInfo_decrypt(cms, ri);
792 int CMS_decrypt_set1_key(CMS_ContentInfo *cms,
800 ris = CMS_get0_RecipientInfos(cms);
811 r = CMS_RecipientInfo_decrypt(cms, ri);
828 int CMS_decrypt_set1_password(CMS_ContentInfo *cms,
831 STACK_OF(CMS_RecipientInfo) *ris = CMS_get0_RecipientInfos(cms);
834 CMS_EncryptedContentInfo *ec = ossl_cms_get0_env_enc_content(cms);
851 r = CMS_RecipientInfo_decrypt(cms, ri);
862 int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert,
868 int nid = OBJ_obj2nid(CMS_get0_type(cms));
875 if (dcont == NULL && !check_content(cms))
877 ec = ossl_cms_get0_env_enc_content(cms);
882 if (pk != NULL && !CMS_decrypt_set1_pkey(cms, pk, cert))
884 cont = CMS_dataInit(cms, dcont);
892 int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags)
897 if ((cmsbio = CMS_dataInit(cms, dcont)) == NULL) {
908 if (!CMS_dataFinal(cms, cmsbio)) {
921 int CMS_final_digest(CMS_ContentInfo *cms,
928 if ((cmsbio = CMS_dataInit(cms, dcont)) == NULL) {
935 if (!ossl_cms_DataFinal(cms, cmsbio, md, mdlen)) {
948 int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out,
954 if (OBJ_obj2nid(CMS_get0_type(cms)) != NID_id_smime_ct_compressedData) {
959 if (dcont == NULL && !check_content(cms))
962 cont = CMS_dataInit(cms, dcont);
972 CMS_ContentInfo *cms;
976 cms = ossl_cms_CompressedData_create(comp_nid, NULL, NULL);
977 if (cms == NULL)
981 CMS_set_detached(cms, 0);
983 if ((flags & CMS_STREAM) || CMS_final(cms, in, NULL, flags))
984 return cms;
986 CMS_ContentInfo_free(cms);
992 int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out,