Lines Matching refs:p7
20 long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg) in PKCS7_ctrl() argument
25 nid = OBJ_obj2nid(p7->type); in PKCS7_ctrl()
31 if (p7->d.sign == NULL) { in PKCS7_ctrl()
36 ret = p7->detached = (int)larg; in PKCS7_ctrl()
37 if (ret && PKCS7_type_is_data(p7->d.sign->contents)) { in PKCS7_ctrl()
39 os = p7->d.sign->contents->d.data; in PKCS7_ctrl()
41 p7->d.sign->contents->d.data = NULL; in PKCS7_ctrl()
51 if (p7->d.sign == NULL || p7->d.sign->contents->d.ptr == NULL) in PKCS7_ctrl()
56 p7->detached = ret; in PKCS7_ctrl()
71 int PKCS7_content_new(PKCS7 *p7, int type) in PKCS7_content_new() argument
79 if (!PKCS7_set_content(p7, ret)) in PKCS7_content_new()
88 int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data) in PKCS7_set_content() argument
92 i = OBJ_obj2nid(p7->type); in PKCS7_set_content()
95 PKCS7_free(p7->d.sign->contents); in PKCS7_set_content()
96 p7->d.sign->contents = p7_data; in PKCS7_set_content()
99 PKCS7_free(p7->d.digest->contents); in PKCS7_set_content()
100 p7->d.digest->contents = p7_data; in PKCS7_set_content()
115 int PKCS7_set_type(PKCS7 *p7, int type) in PKCS7_set_type() argument
126 p7->type = obj; in PKCS7_set_type()
127 if ((p7->d.sign = PKCS7_SIGNED_new()) == NULL) in PKCS7_set_type()
129 if (!ASN1_INTEGER_set(p7->d.sign->version, 1)) { in PKCS7_set_type()
130 PKCS7_SIGNED_free(p7->d.sign); in PKCS7_set_type()
131 p7->d.sign = NULL; in PKCS7_set_type()
136 p7->type = obj; in PKCS7_set_type()
137 if ((p7->d.data = ASN1_OCTET_STRING_new()) == NULL) in PKCS7_set_type()
141 p7->type = obj; in PKCS7_set_type()
142 if ((p7->d.signed_and_enveloped = PKCS7_SIGN_ENVELOPE_new()) in PKCS7_set_type()
145 if (!ASN1_INTEGER_set(p7->d.signed_and_enveloped->version, 1)) in PKCS7_set_type()
147 p7->d.signed_and_enveloped->enc_data->content_type in PKCS7_set_type()
151 p7->type = obj; in PKCS7_set_type()
152 if ((p7->d.enveloped = PKCS7_ENVELOPE_new()) in PKCS7_set_type()
155 if (!ASN1_INTEGER_set(p7->d.enveloped->version, 0)) in PKCS7_set_type()
157 p7->d.enveloped->enc_data->content_type = OBJ_nid2obj(NID_pkcs7_data); in PKCS7_set_type()
160 p7->type = obj; in PKCS7_set_type()
161 if ((p7->d.encrypted = PKCS7_ENCRYPT_new()) in PKCS7_set_type()
164 if (!ASN1_INTEGER_set(p7->d.encrypted->version, 0)) in PKCS7_set_type()
166 p7->d.encrypted->enc_data->content_type = OBJ_nid2obj(NID_pkcs7_data); in PKCS7_set_type()
170 p7->type = obj; in PKCS7_set_type()
171 if ((p7->d.digest = PKCS7_DIGEST_new()) in PKCS7_set_type()
174 if (!ASN1_INTEGER_set(p7->d.digest->version, 0)) in PKCS7_set_type()
186 int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other) in PKCS7_set0_type_other() argument
188 p7->type = OBJ_nid2obj(type); in PKCS7_set0_type_other()
189 p7->d.other = other; in PKCS7_set0_type_other()
193 int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *psi) in PKCS7_add_signer() argument
201 i = OBJ_obj2nid(p7->type); in PKCS7_add_signer()
204 signer_sk = p7->d.sign->signer_info; in PKCS7_add_signer()
205 md_sk = p7->d.sign->md_algs; in PKCS7_add_signer()
208 signer_sk = p7->d.signed_and_enveloped->signer_info; in PKCS7_add_signer()
209 md_sk = p7->d.signed_and_enveloped->md_algs; in PKCS7_add_signer()
250 psi->ctx = ossl_pkcs7_get0_ctx(p7); in PKCS7_add_signer()
256 int PKCS7_add_certificate(PKCS7 *p7, X509 *x509) in PKCS7_add_certificate() argument
261 i = OBJ_obj2nid(p7->type); in PKCS7_add_certificate()
264 sk = &(p7->d.sign->cert); in PKCS7_add_certificate()
267 sk = &(p7->d.signed_and_enveloped->cert); in PKCS7_add_certificate()
277 int PKCS7_add_crl(PKCS7 *p7, X509_CRL *crl) in PKCS7_add_crl() argument
282 i = OBJ_obj2nid(p7->type); in PKCS7_add_crl()
285 sk = &(p7->d.sign->crl); in PKCS7_add_crl()
288 sk = &(p7->d.signed_and_enveloped->crl); in PKCS7_add_crl()
396 PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, EVP_PKEY *pkey, in PKCS7_add_signature() argument
416 if (!PKCS7_add_signer(p7, si)) in PKCS7_add_signature()
424 STACK_OF(X509) *pkcs7_get0_certificates(const PKCS7 *p7) in STACK_OF()
426 if (p7->d.ptr == NULL) in STACK_OF()
428 if (PKCS7_type_is_signed(p7)) in STACK_OF()
429 return p7->d.sign->cert; in STACK_OF()
430 if (PKCS7_type_is_signedAndEnveloped(p7)) in STACK_OF()
431 return p7->d.signed_and_enveloped->cert; in STACK_OF()
435 static STACK_OF(PKCS7_RECIP_INFO) *pkcs7_get_recipient_info(const PKCS7 *p7) in STACK_OF()
437 if (p7->d.ptr == NULL) in STACK_OF()
439 if (PKCS7_type_is_signedAndEnveloped(p7)) in STACK_OF()
440 return p7->d.signed_and_enveloped->recipientinfo; in STACK_OF()
441 if (PKCS7_type_is_enveloped(p7)) in STACK_OF()
442 return p7->d.enveloped->recipientinfo; in STACK_OF()
450 void ossl_pkcs7_resolve_libctx(PKCS7 *p7) in ossl_pkcs7_resolve_libctx() argument
453 const PKCS7_CTX *ctx = ossl_pkcs7_get0_ctx(p7); in ossl_pkcs7_resolve_libctx()
460 if (ctx == NULL || p7->d.ptr == NULL) in ossl_pkcs7_resolve_libctx()
463 rinfos = pkcs7_get_recipient_info(p7); in ossl_pkcs7_resolve_libctx()
464 sinfos = PKCS7_get_signer_info(p7); in ossl_pkcs7_resolve_libctx()
465 certs = pkcs7_get0_certificates(p7); in ossl_pkcs7_resolve_libctx()
484 const PKCS7_CTX *ossl_pkcs7_get0_ctx(const PKCS7 *p7) in ossl_pkcs7_get0_ctx() argument
486 return p7 != NULL ? &p7->ctx : NULL; in ossl_pkcs7_get0_ctx()
489 void ossl_pkcs7_set0_libctx(PKCS7 *p7, OSSL_LIB_CTX *ctx) in ossl_pkcs7_set0_libctx() argument
491 p7->ctx.libctx = ctx; in ossl_pkcs7_set0_libctx()
494 int ossl_pkcs7_set1_propq(PKCS7 *p7, const char *propq) in ossl_pkcs7_set1_propq() argument
496 if (p7->ctx.propq != NULL) { in ossl_pkcs7_set1_propq()
497 OPENSSL_free(p7->ctx.propq); in ossl_pkcs7_set1_propq()
498 p7->ctx.propq = NULL; in ossl_pkcs7_set1_propq()
501 p7->ctx.propq = OPENSSL_strdup(propq); in ossl_pkcs7_set1_propq()
502 if (p7->ctx.propq == NULL) in ossl_pkcs7_set1_propq()
527 int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md) in PKCS7_set_digest() argument
529 if (PKCS7_type_is_digest(p7)) { in PKCS7_set_digest()
530 if ((p7->d.digest->md->parameter = ASN1_TYPE_new()) == NULL) { in PKCS7_set_digest()
534 p7->d.digest->md->parameter->type = V_ASN1_NULL; in PKCS7_set_digest()
535 p7->d.digest->md->algorithm = OBJ_nid2obj(EVP_MD_nid(md)); in PKCS7_set_digest()
543 STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7) in STACK_OF()
545 if (p7 == NULL || p7->d.ptr == NULL) in STACK_OF()
547 if (PKCS7_type_is_signed(p7)) { in STACK_OF()
548 return p7->d.sign->signer_info; in STACK_OF()
549 } else if (PKCS7_type_is_signedAndEnveloped(p7)) { in STACK_OF()
550 return p7->d.signed_and_enveloped->signer_info; in STACK_OF()
572 PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509) in PKCS7_add_recipient() argument
580 if (!PKCS7_add_recipient_info(p7, ri)) in PKCS7_add_recipient()
582 ri->ctx = ossl_pkcs7_get0_ctx(p7); in PKCS7_add_recipient()
589 int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri) in PKCS7_add_recipient_info() argument
594 i = OBJ_obj2nid(p7->type); in PKCS7_add_recipient_info()
597 sk = p7->d.signed_and_enveloped->recipientinfo; in PKCS7_add_recipient_info()
600 sk = p7->d.enveloped->recipientinfo; in PKCS7_add_recipient_info()
680 X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si) in PKCS7_cert_from_signer_info() argument
682 if (PKCS7_type_is_signed(p7)) in PKCS7_cert_from_signer_info()
683 return (X509_find_by_issuer_and_serial(p7->d.sign->cert, in PKCS7_cert_from_signer_info()
691 int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher) in PKCS7_set_cipher() argument
696 i = OBJ_obj2nid(p7->type); in PKCS7_set_cipher()
699 ec = p7->d.signed_and_enveloped->enc_data; in PKCS7_set_cipher()
702 ec = p7->d.enveloped->enc_data; in PKCS7_set_cipher()
717 ec->ctx = ossl_pkcs7_get0_ctx(p7); in PKCS7_set_cipher()
722 int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7) in PKCS7_stream() argument
726 switch (OBJ_obj2nid(p7->type)) { in PKCS7_stream()
728 os = p7->d.data; in PKCS7_stream()
732 os = p7->d.signed_and_enveloped->enc_data->enc_data; in PKCS7_stream()
735 p7->d.signed_and_enveloped->enc_data->enc_data = os; in PKCS7_stream()
740 os = p7->d.enveloped->enc_data->enc_data; in PKCS7_stream()
743 p7->d.enveloped->enc_data->enc_data = os; in PKCS7_stream()
748 os = p7->d.sign->contents->d.data; in PKCS7_stream()