• Home
  • Raw
  • Download

Lines Matching refs:si

68     CMS_SignerInfo *si;  in cms_sd_set_version()  local
97 si = sk_CMS_SignerInfo_value(sd->signerInfos, i); in cms_sd_set_version()
98 if (si->sid->type == CMS_SIGNERINFO_KEYIDENTIFIER) { in cms_sd_set_version()
99 if (si->version < 3) in cms_sd_set_version()
100 si->version = 3; in cms_sd_set_version()
103 } else if (si->version < 1) in cms_sd_set_version()
104 si->version = 1; in cms_sd_set_version()
124 static int cms_set_si_contentType_attr(CMS_ContentInfo *cms, CMS_SignerInfo *si) in cms_set_si_contentType_attr() argument
129 return CMS_signed_add1_attr_by_NID(si, NID_pkcs9_contentType, in cms_set_si_contentType_attr()
135 static int cms_copy_messageDigest(CMS_ContentInfo *cms, CMS_SignerInfo *si) in cms_copy_messageDigest() argument
144 if (sitmp == si) in cms_copy_messageDigest()
148 if (OBJ_cmp(si->digestAlgorithm->algorithm, in cms_copy_messageDigest()
161 if (CMS_signed_add1_attr_by_NID(si, NID_pkcs9_messageDigest, in cms_copy_messageDigest()
223 static int cms_sd_asn1_ctrl(CMS_SignerInfo *si, int cmd) in cms_sd_asn1_ctrl() argument
225 EVP_PKEY *pkey = si->pkey; in cms_sd_asn1_ctrl()
229 i = pkey->ameth->pkey_ctrl(pkey, ASN1_PKEY_CTRL_CMS_SIGN, cmd, si); in cms_sd_asn1_ctrl()
246 CMS_SignerInfo *si = NULL; in CMS_add1_signer() local
257 si = M_ASN1_new_of(CMS_SignerInfo); in CMS_add1_signer()
258 if (!si) in CMS_add1_signer()
266 si->pkey = pk; in CMS_add1_signer()
267 si->signer = signer; in CMS_add1_signer()
268 si->mctx = EVP_MD_CTX_new(); in CMS_add1_signer()
269 si->pctx = NULL; in CMS_add1_signer()
271 if (si->mctx == NULL) { in CMS_add1_signer()
277 si->version = 3; in CMS_add1_signer()
283 si->version = 1; in CMS_add1_signer()
286 if (!cms_set1_SignerIdentifier(si->sid, signer, type)) in CMS_add1_signer()
305 X509_ALGOR_set_md(si->digestAlgorithm, md); in CMS_add1_signer()
327 if (!(flags & CMS_KEY_PARAM) && !cms_sd_asn1_ctrl(si, 0)) in CMS_add1_signer()
334 if (!si->signedAttrs) { in CMS_add1_signer()
335 si->signedAttrs = sk_X509_ATTRIBUTE_new_null(); in CMS_add1_signer()
336 if (!si->signedAttrs) in CMS_add1_signer()
344 i = CMS_add_smimecap(si, smcap); in CMS_add1_signer()
350 if (!cms_copy_messageDigest(cms, si)) in CMS_add1_signer()
352 if (!cms_set_si_contentType_attr(cms, si)) in CMS_add1_signer()
355 !CMS_SignerInfo_sign(si)) in CMS_add1_signer()
368 si->pctx = EVP_PKEY_CTX_new(si->pkey, NULL); in CMS_add1_signer()
369 if (si->pctx == NULL) in CMS_add1_signer()
371 if (EVP_PKEY_sign_init(si->pctx) <= 0) in CMS_add1_signer()
373 if (EVP_PKEY_CTX_set_signature_md(si->pctx, md) <= 0) in CMS_add1_signer()
375 } else if (EVP_DigestSignInit(si->mctx, &si->pctx, md, NULL, pk) <= in CMS_add1_signer()
382 if (!sd->signerInfos || !sk_CMS_SignerInfo_push(sd->signerInfos, si)) in CMS_add1_signer()
385 return si; in CMS_add1_signer()
390 M_ASN1_free_of(si, CMS_SignerInfo); in CMS_add1_signer()
395 static int cms_add1_signingTime(CMS_SignerInfo *si, ASN1_TIME *t) in cms_add1_signingTime() argument
407 if (CMS_signed_add1_attr_by_NID(si, NID_pkcs9_signingTime, in cms_add1_signingTime()
425 EVP_PKEY_CTX *CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si) in CMS_SignerInfo_get0_pkey_ctx() argument
427 return si->pctx; in CMS_SignerInfo_get0_pkey_ctx()
430 EVP_MD_CTX *CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si) in CMS_SignerInfo_get0_md_ctx() argument
432 return si->mctx; in CMS_SignerInfo_get0_md_ctx()
448 CMS_SignerInfo *si; in STACK_OF() local
452 si = sk_CMS_SignerInfo_value(sinfos, i); in STACK_OF()
453 if (si->signer) { in STACK_OF()
459 if (!sk_X509_push(signers, si->signer)) { in STACK_OF()
468 void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer) in CMS_SignerInfo_set1_signer_cert() argument
472 EVP_PKEY_free(si->pkey); in CMS_SignerInfo_set1_signer_cert()
473 si->pkey = X509_get_pubkey(signer); in CMS_SignerInfo_set1_signer_cert()
475 X509_free(si->signer); in CMS_SignerInfo_set1_signer_cert()
476 si->signer = signer; in CMS_SignerInfo_set1_signer_cert()
479 int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si, in CMS_SignerInfo_get0_signer_id() argument
483 return cms_SignerIdentifier_get0_signer_id(si->sid, keyid, issuer, sno); in CMS_SignerInfo_get0_signer_id()
486 int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert) in CMS_SignerInfo_cert_cmp() argument
488 return cms_SignerIdentifier_cert_cmp(si->sid, cert); in CMS_SignerInfo_cert_cmp()
495 CMS_SignerInfo *si; in CMS_set1_signers_certs() local
506 si = sk_CMS_SignerInfo_value(sd->signerInfos, i); in CMS_set1_signers_certs()
507 if (si->signer) in CMS_set1_signers_certs()
512 if (CMS_SignerInfo_cert_cmp(si, x) == 0) { in CMS_set1_signers_certs()
513 CMS_SignerInfo_set1_signer_cert(si, x); in CMS_set1_signers_certs()
519 if (si->signer || (flags & CMS_NOINTERN)) in CMS_set1_signers_certs()
527 if (CMS_SignerInfo_cert_cmp(si, x) == 0) { in CMS_set1_signers_certs()
528 CMS_SignerInfo_set1_signer_cert(si, x); in CMS_set1_signers_certs()
537 void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk, in CMS_SignerInfo_get0_algs() argument
542 *pk = si->pkey; in CMS_SignerInfo_get0_algs()
544 *signer = si->signer; in CMS_SignerInfo_get0_algs()
546 *pdig = si->digestAlgorithm; in CMS_SignerInfo_get0_algs()
548 *psig = si->signatureAlgorithm; in CMS_SignerInfo_get0_algs()
551 ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si) in CMS_SignerInfo_get0_signature() argument
553 return si->signature; in CMS_SignerInfo_get0_signature()
557 CMS_SignerInfo *si, BIO *chain) in cms_SignerInfo_content_sign() argument
568 if (!si->pkey) { in cms_SignerInfo_content_sign()
573 if (!cms_DigestAlgorithm_find_ctx(mctx, chain, si->digestAlgorithm)) in cms_SignerInfo_content_sign()
576 if (si->pctx && !cms_sd_asn1_ctrl(si, 0)) in cms_SignerInfo_content_sign()
583 if (CMS_signed_get_attr_count(si) >= 0) { in cms_SignerInfo_content_sign()
588 if (!CMS_signed_add1_attr_by_NID(si, NID_pkcs9_messageDigest, in cms_SignerInfo_content_sign()
592 if (!cms_set_si_contentType_attr(cms, si)) in cms_SignerInfo_content_sign()
595 if (!CMS_SignerInfo_sign(si)) in cms_SignerInfo_content_sign()
597 } else if (si->pctx) { in cms_SignerInfo_content_sign()
602 pctx = si->pctx; in cms_SignerInfo_content_sign()
605 siglen = EVP_PKEY_size(si->pkey); in cms_SignerInfo_content_sign()
615 ASN1_STRING_set0(si->signature, sig, siglen); in cms_SignerInfo_content_sign()
619 sig = OPENSSL_malloc(EVP_PKEY_size(si->pkey)); in cms_SignerInfo_content_sign()
624 if (!EVP_SignFinal(mctx, sig, &siglen, si->pkey)) { in cms_SignerInfo_content_sign()
629 ASN1_STRING_set0(si->signature, sig, siglen); in cms_SignerInfo_content_sign()
644 CMS_SignerInfo *si; in cms_SignedData_final() local
648 si = sk_CMS_SignerInfo_value(sinfos, i); in cms_SignedData_final()
649 if (!cms_SignerInfo_content_sign(cms, si, chain)) in cms_SignedData_final()
656 int CMS_SignerInfo_sign(CMS_SignerInfo *si) in CMS_SignerInfo_sign() argument
658 EVP_MD_CTX *mctx = si->mctx; in CMS_SignerInfo_sign()
665 md = EVP_get_digestbyobj(si->digestAlgorithm->algorithm); in CMS_SignerInfo_sign()
669 if (CMS_signed_get_attr_by_NID(si, NID_pkcs9_signingTime, -1) < 0) { in CMS_SignerInfo_sign()
670 if (!cms_add1_signingTime(si, NULL)) in CMS_SignerInfo_sign()
674 if (!CMS_si_check_attributes(si)) in CMS_SignerInfo_sign()
677 if (si->pctx) in CMS_SignerInfo_sign()
678 pctx = si->pctx; in CMS_SignerInfo_sign()
681 if (EVP_DigestSignInit(mctx, &pctx, md, NULL, si->pkey) <= 0) in CMS_SignerInfo_sign()
683 si->pctx = pctx; in CMS_SignerInfo_sign()
687 EVP_PKEY_CTRL_CMS_SIGN, 0, si) <= 0) { in CMS_SignerInfo_sign()
692 alen = ASN1_item_i2d((ASN1_VALUE *)si->signedAttrs, &abuf, in CMS_SignerInfo_sign()
708 EVP_PKEY_CTRL_CMS_SIGN, 1, si) <= 0) { in CMS_SignerInfo_sign()
715 ASN1_STRING_set0(si->signature, abuf, siglen); in CMS_SignerInfo_sign()
725 int CMS_SignerInfo_verify(CMS_SignerInfo *si) in CMS_SignerInfo_verify() argument
732 if (!si->pkey) { in CMS_SignerInfo_verify()
737 if (!CMS_si_check_attributes(si)) in CMS_SignerInfo_verify()
740 md = EVP_get_digestbyobj(si->digestAlgorithm->algorithm); in CMS_SignerInfo_verify()
743 if (si->mctx == NULL && (si->mctx = EVP_MD_CTX_new()) == NULL) { in CMS_SignerInfo_verify()
747 mctx = si->mctx; in CMS_SignerInfo_verify()
748 if (EVP_DigestVerifyInit(mctx, &si->pctx, md, NULL, si->pkey) <= 0) in CMS_SignerInfo_verify()
751 if (!cms_sd_asn1_ctrl(si, 1)) in CMS_SignerInfo_verify()
754 alen = ASN1_item_i2d((ASN1_VALUE *)si->signedAttrs, &abuf, in CMS_SignerInfo_verify()
765 si->signature->data, si->signature->length); in CMS_SignerInfo_verify()
803 int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain) in CMS_SignerInfo_verify_content() argument
817 if (CMS_signed_get_attr_count(si) >= 0) { in CMS_SignerInfo_verify_content()
818 os = CMS_signed_get0_data_by_OBJ(si, in CMS_SignerInfo_verify_content()
828 if (!cms_DigestAlgorithm_find_ctx(mctx, chain, si->digestAlgorithm)) in CMS_SignerInfo_verify_content()
854 pkctx = EVP_PKEY_CTX_new(si->pkey, NULL); in CMS_SignerInfo_verify_content()
861 si->pctx = pkctx; in CMS_SignerInfo_verify_content()
862 if (!cms_sd_asn1_ctrl(si, 1)) in CMS_SignerInfo_verify_content()
864 r = EVP_PKEY_verify(pkctx, si->signature->data, in CMS_SignerInfo_verify_content()
865 si->signature->length, mval, mlen); in CMS_SignerInfo_verify_content()
880 int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs) in CMS_add_smimecap() argument
887 r = CMS_signed_add1_attr_by_NID(si, NID_SMIMECapabilities, in CMS_add_smimecap()