Lines Matching refs:si

124 	CMS_SignerInfo *si;  in cms_sd_set_version()  local
153 si = sk_CMS_SignerInfo_value(sd->signerInfos, i); in cms_sd_set_version()
154 if (si->sid->type == CMS_SIGNERINFO_KEYIDENTIFIER) { in cms_sd_set_version()
155 if (si->version < 3) in cms_sd_set_version()
156 si->version = 3; in cms_sd_set_version()
159 } else if (si->version < 1) in cms_sd_set_version()
160 si->version = 1; in cms_sd_set_version()
170 cms_copy_messageDigest(CMS_ContentInfo *cms, CMS_SignerInfo *si) in cms_copy_messageDigest() argument
180 if (sitmp == si) in cms_copy_messageDigest()
184 if (OBJ_cmp(si->digestAlgorithm->algorithm, in cms_copy_messageDigest()
194 if (CMS_signed_add1_attr_by_NID(si, NID_pkcs9_messageDigest, in cms_copy_messageDigest()
260 cms_sd_asn1_ctrl(CMS_SignerInfo *si, int cmd) in cms_sd_asn1_ctrl() argument
262 EVP_PKEY *pkey = si->pkey; in cms_sd_asn1_ctrl()
267 ret = pkey->ameth->pkey_ctrl(pkey, ASN1_PKEY_CTRL_CMS_SIGN, cmd, si); in cms_sd_asn1_ctrl()
281 cms_SignerInfo_default_digest_md(const CMS_SignerInfo *si) in cms_SignerInfo_default_digest_md() argument
285 if (si->pkey == NULL) { in cms_SignerInfo_default_digest_md()
291 if ((rv = EVP_PKEY_get_default_digest_nid(si->pkey, &nid)) <= 0) in cms_SignerInfo_default_digest_md()
310 cms_SignerInfo_signature_md(const CMS_SignerInfo *si) in cms_SignerInfo_signature_md() argument
314 if (si->pkey == NULL) { in cms_SignerInfo_signature_md()
320 if ((rv = EVP_PKEY_get_default_digest_nid(si->pkey, &nid)) <= 1) in cms_SignerInfo_signature_md()
321 return EVP_get_digestbyobj(si->digestAlgorithm->algorithm); in cms_SignerInfo_signature_md()
343 CMS_SignerInfo *si = NULL; in CMS_add1_signer() local
354 si = (CMS_SignerInfo *)ASN1_item_new(&CMS_SignerInfo_it); in CMS_add1_signer()
355 if (!si) in CMS_add1_signer()
363 si->pkey = pk; in CMS_add1_signer()
364 si->signer = signer; in CMS_add1_signer()
365 si->mctx = EVP_MD_CTX_new(); in CMS_add1_signer()
366 si->pctx = NULL; in CMS_add1_signer()
368 if (si->mctx == NULL) { in CMS_add1_signer()
374 si->version = 3; in CMS_add1_signer()
380 si->version = 1; in CMS_add1_signer()
383 if (!cms_set1_SignerIdentifier(si->sid, signer, type)) in CMS_add1_signer()
387 md = cms_SignerInfo_default_digest_md(si); in CMS_add1_signer()
393 if (!X509_ALGOR_set_evp_md(si->digestAlgorithm, md)) in CMS_add1_signer()
418 if (!(flags & CMS_KEY_PARAM) && !cms_sd_asn1_ctrl(si, 0)) in CMS_add1_signer()
425 if (!si->signedAttrs) { in CMS_add1_signer()
426 si->signedAttrs = sk_X509_ATTRIBUTE_new_null(); in CMS_add1_signer()
427 if (!si->signedAttrs) in CMS_add1_signer()
436 i = CMS_add_smimecap(si, smcap); in CMS_add1_signer()
442 if (!cms_copy_messageDigest(cms, si)) in CMS_add1_signer()
445 !CMS_SignerInfo_sign(si)) in CMS_add1_signer()
458 si->pctx = EVP_PKEY_CTX_new(si->pkey, NULL); in CMS_add1_signer()
459 if (si->pctx == NULL) in CMS_add1_signer()
461 if (EVP_PKEY_sign_init(si->pctx) <= 0) in CMS_add1_signer()
463 if (EVP_PKEY_CTX_set_signature_md(si->pctx, md) <= 0) in CMS_add1_signer()
465 } else if (EVP_DigestSignInit(si->mctx, &si->pctx, md, in CMS_add1_signer()
472 if (!sd->signerInfos || !sk_CMS_SignerInfo_push(sd->signerInfos, si)) in CMS_add1_signer()
475 return si; in CMS_add1_signer()
480 ASN1_item_free((ASN1_VALUE *)si, &CMS_SignerInfo_it); in CMS_add1_signer()
488 cms_add1_signingTime(CMS_SignerInfo *si, ASN1_TIME *t) in cms_add1_signingTime() argument
501 if (CMS_signed_add1_attr_by_NID(si, NID_pkcs9_signingTime, in cms_add1_signingTime()
517 CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si) in CMS_SignerInfo_get0_pkey_ctx() argument
519 return si->pctx; in CMS_SignerInfo_get0_pkey_ctx()
524 CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si) in CMS_SignerInfo_get0_md_ctx() argument
526 return si->mctx; in CMS_SignerInfo_get0_md_ctx()
548 CMS_SignerInfo *si; in STACK_OF() local
553 si = sk_CMS_SignerInfo_value(sinfos, i); in STACK_OF()
554 if (si->signer) { in STACK_OF()
560 if (!sk_X509_push(signers, si->signer)) { in STACK_OF()
572 CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer) in CMS_SignerInfo_set1_signer_cert() argument
576 EVP_PKEY_free(si->pkey); in CMS_SignerInfo_set1_signer_cert()
577 si->pkey = X509_get_pubkey(signer); in CMS_SignerInfo_set1_signer_cert()
579 X509_free(si->signer); in CMS_SignerInfo_set1_signer_cert()
580 si->signer = signer; in CMS_SignerInfo_set1_signer_cert()
585 CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si, ASN1_OCTET_STRING **keyid, in CMS_SignerInfo_get0_signer_id() argument
588 return cms_SignerIdentifier_get0_signer_id(si->sid, keyid, issuer, sno); in CMS_SignerInfo_get0_signer_id()
593 CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert) in CMS_SignerInfo_cert_cmp() argument
595 return cms_SignerIdentifier_cert_cmp(si->sid, cert); in CMS_SignerInfo_cert_cmp()
604 CMS_SignerInfo *si; in CMS_set1_signers_certs() local
616 si = sk_CMS_SignerInfo_value(sd->signerInfos, i); in CMS_set1_signers_certs()
617 if (si->signer) in CMS_set1_signers_certs()
622 if (CMS_SignerInfo_cert_cmp(si, x) == 0) { in CMS_set1_signers_certs()
623 CMS_SignerInfo_set1_signer_cert(si, x); in CMS_set1_signers_certs()
629 if (si->signer || (flags & CMS_NOINTERN)) in CMS_set1_signers_certs()
637 if (CMS_SignerInfo_cert_cmp(si, x) == 0) { in CMS_set1_signers_certs()
638 CMS_SignerInfo_set1_signer_cert(si, x); in CMS_set1_signers_certs()
649 CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk, X509 **signer, in CMS_SignerInfo_get0_algs() argument
653 *pk = si->pkey; in CMS_SignerInfo_get0_algs()
655 *signer = si->signer; in CMS_SignerInfo_get0_algs()
657 *pdig = si->digestAlgorithm; in CMS_SignerInfo_get0_algs()
659 *psig = si->signatureAlgorithm; in CMS_SignerInfo_get0_algs()
664 CMS_SignerInfo_get0_signature(CMS_SignerInfo *si) in CMS_SignerInfo_get0_signature() argument
666 return si->signature; in CMS_SignerInfo_get0_signature()
671 cms_SignerInfo_content_sign(CMS_ContentInfo *cms, CMS_SignerInfo *si, BIO *chain) in cms_SignerInfo_content_sign() argument
682 if (!si->pkey) { in cms_SignerInfo_content_sign()
687 if (!cms_DigestAlgorithm_find_ctx(mctx, chain, si->digestAlgorithm)) in cms_SignerInfo_content_sign()
690 if (si->pctx && !cms_sd_asn1_ctrl(si, 0)) in cms_SignerInfo_content_sign()
697 if (CMS_signed_get_attr_count(si) >= 0) { in cms_SignerInfo_content_sign()
705 if (!CMS_signed_add1_attr_by_NID(si, NID_pkcs9_messageDigest, in cms_SignerInfo_content_sign()
709 if (CMS_signed_add1_attr_by_NID(si, NID_pkcs9_contentType, in cms_SignerInfo_content_sign()
712 if (!CMS_SignerInfo_sign(si)) in cms_SignerInfo_content_sign()
714 } else if (si->pctx) { in cms_SignerInfo_content_sign()
720 pctx = si->pctx; in cms_SignerInfo_content_sign()
723 siglen = EVP_PKEY_size(si->pkey); in cms_SignerInfo_content_sign()
733 ASN1_STRING_set0(si->signature, sig, siglen); in cms_SignerInfo_content_sign()
738 sig = malloc(EVP_PKEY_size(si->pkey)); in cms_SignerInfo_content_sign()
743 if (!EVP_SignFinal(mctx, sig, &siglen, si->pkey)) { in cms_SignerInfo_content_sign()
748 ASN1_STRING_set0(si->signature, sig, siglen); in cms_SignerInfo_content_sign()
764 CMS_SignerInfo *si; in cms_SignedData_final() local
769 si = sk_CMS_SignerInfo_value(sinfos, i); in cms_SignedData_final()
770 if (!cms_SignerInfo_content_sign(cms, si, chain)) in cms_SignedData_final()
779 CMS_SignerInfo_sign(CMS_SignerInfo *si) in CMS_SignerInfo_sign() argument
787 if ((md = cms_SignerInfo_signature_md(si)) == NULL) in CMS_SignerInfo_sign()
790 if (CMS_signed_get_attr_by_NID(si, NID_pkcs9_signingTime, -1) < 0) { in CMS_SignerInfo_sign()
791 if (!cms_add1_signingTime(si, NULL)) in CMS_SignerInfo_sign()
795 if (si->pctx == NULL) { in CMS_SignerInfo_sign()
796 (void)EVP_MD_CTX_reset(si->mctx); in CMS_SignerInfo_sign()
797 if (!EVP_DigestSignInit(si->mctx, &si->pctx, md, NULL, si->pkey)) in CMS_SignerInfo_sign()
801 if (EVP_PKEY_CTX_ctrl(si->pctx, -1, EVP_PKEY_OP_SIGN, in CMS_SignerInfo_sign()
802 EVP_PKEY_CTRL_CMS_SIGN, 0, si) <= 0) { in CMS_SignerInfo_sign()
807 if ((buf_len = ASN1_item_i2d((ASN1_VALUE *)si->signedAttrs, &buf, in CMS_SignerInfo_sign()
812 if (!EVP_DigestSign(si->mctx, NULL, &sig_len, buf, buf_len)) in CMS_SignerInfo_sign()
816 if (!EVP_DigestSign(si->mctx, sig, &sig_len, buf, buf_len)) in CMS_SignerInfo_sign()
819 if (EVP_PKEY_CTX_ctrl(si->pctx, -1, EVP_PKEY_OP_SIGN, in CMS_SignerInfo_sign()
820 EVP_PKEY_CTRL_CMS_SIGN, 1, si) <= 0) { in CMS_SignerInfo_sign()
825 ASN1_STRING_set0(si->signature, sig, sig_len); in CMS_SignerInfo_sign()
831 (void)EVP_MD_CTX_reset(si->mctx); in CMS_SignerInfo_sign()
840 CMS_SignerInfo_verify(CMS_SignerInfo *si) in CMS_SignerInfo_verify() argument
847 if ((md = cms_SignerInfo_signature_md(si)) == NULL) in CMS_SignerInfo_verify()
850 if (si->mctx == NULL) in CMS_SignerInfo_verify()
851 si->mctx = EVP_MD_CTX_new(); in CMS_SignerInfo_verify()
852 if (si->mctx == NULL) { in CMS_SignerInfo_verify()
857 if (EVP_DigestVerifyInit(si->mctx, &si->pctx, md, NULL, si->pkey) <= 0) in CMS_SignerInfo_verify()
860 if (!cms_sd_asn1_ctrl(si, 1)) in CMS_SignerInfo_verify()
863 if ((buf_len = ASN1_item_i2d((ASN1_VALUE *)si->signedAttrs, &buf, in CMS_SignerInfo_verify()
869 ret = EVP_DigestVerify(si->mctx, si->signature->data, si->signature->length, in CMS_SignerInfo_verify()
877 (void)EVP_MD_CTX_reset(si->mctx); in CMS_SignerInfo_verify()
920 CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain) in CMS_SignerInfo_verify_content() argument
934 if (CMS_signed_get_attr_count(si) >= 0) { in CMS_SignerInfo_verify_content()
935 os = CMS_signed_get0_data_by_OBJ(si, in CMS_SignerInfo_verify_content()
944 if (!cms_DigestAlgorithm_find_ctx(mctx, chain, si->digestAlgorithm)) in CMS_SignerInfo_verify_content()
968 pkctx = EVP_PKEY_CTX_new(si->pkey, NULL); in CMS_SignerInfo_verify_content()
975 si->pctx = pkctx; in CMS_SignerInfo_verify_content()
976 if (!cms_sd_asn1_ctrl(si, 1)) in CMS_SignerInfo_verify_content()
978 r = EVP_PKEY_verify(pkctx, si->signature->data, in CMS_SignerInfo_verify_content()
979 si->signature->length, mval, mlen); in CMS_SignerInfo_verify_content()
995 CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs) in CMS_add_smimecap() argument
1003 r = CMS_signed_add1_attr_by_NID(si, NID_SMIMECapabilities, in CMS_add_smimecap()