Commit a2aabd53a2 for openssl.org
commit a2aabd53a29b35c1f7db765400d3653778413131
Author: Bob Beck <beck@openssl.org>
Date: Fri Sep 4 14:37:31 2026 -0600
Rename the CMS and PKCS7 "resolve libctx" functions
With certificates no longer rebound after decoding,
ossl_cms_resolve_libctx() and ossl_pkcs7_resolve_libctx() only point
the signer and recipient infos at their container's context. Name
them for that.
Reviewed-by: Tomas Mraz <tomas@openssl.foundation>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Merge-date: Mon Oct 26 19:04:41 2026
Merged-from: https://github.com/openssl/openssl/pull/32690
diff --git a/crypto/cms/cms_io.c b/crypto/cms/cms_io.c
index fb948093cb..5bdf3f7d0b 100644
--- a/crypto/cms/cms_io.c
+++ b/crypto/cms/cms_io.c
@@ -50,7 +50,7 @@ CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms)
ossl_cms_ctx_get0_propq(ctx));
if (ci != NULL) {
ERR_set_mark();
- ossl_cms_resolve_libctx(ci);
+ ossl_cms_infos_set_cmsctx(ci);
ERR_pop_to_mark();
}
return ci;
@@ -116,7 +116,7 @@ CMS_ContentInfo *SMIME_read_CMS_ex(BIO *bio, int flags, BIO **bcont,
ossl_cms_ctx_get0_propq(ctx));
if (ci != NULL) {
ERR_set_mark();
- ossl_cms_resolve_libctx(ci);
+ ossl_cms_infos_set_cmsctx(ci);
ERR_pop_to_mark();
}
return ci;
diff --git a/crypto/cms/cms_lib.c b/crypto/cms/cms_lib.c
index 72fcd72770..121bfa3b3a 100644
--- a/crypto/cms/cms_lib.c
+++ b/crypto/cms/cms_lib.c
@@ -40,7 +40,7 @@ CMS_ContentInfo *d2i_CMS_ContentInfo(CMS_ContentInfo **a,
ossl_cms_ctx_get0_propq(ctx));
if (ci != NULL) {
ERR_set_mark();
- ossl_cms_resolve_libctx(ci);
+ ossl_cms_infos_set_cmsctx(ci);
ERR_pop_to_mark();
}
return ci;
@@ -86,7 +86,7 @@ const char *ossl_cms_ctx_get0_propq(const CMS_CTX *ctx)
return ctx != NULL ? ctx->propq : NULL;
}
-void ossl_cms_resolve_libctx(CMS_ContentInfo *ci)
+void ossl_cms_infos_set_cmsctx(CMS_ContentInfo *ci)
{
ossl_cms_SignerInfos_set_cmsctx(ci);
ossl_cms_RecipientInfos_set_cmsctx(ci);
diff --git a/crypto/cms/cms_local.h b/crypto/cms/cms_local.h
index c2dfa55be9..f13a345a5f 100644
--- a/crypto/cms/cms_local.h
+++ b/crypto/cms/cms_local.h
@@ -443,7 +443,7 @@ BIO *ossl_cms_content_bio(CMS_ContentInfo *cms);
const CMS_CTX *ossl_cms_get0_cmsctx(const CMS_ContentInfo *cms);
OSSL_LIB_CTX *ossl_cms_ctx_get0_libctx(const CMS_CTX *ctx);
const char *ossl_cms_ctx_get0_propq(const CMS_CTX *ctx);
-void ossl_cms_resolve_libctx(CMS_ContentInfo *ci);
+void ossl_cms_infos_set_cmsctx(CMS_ContentInfo *ci);
CMS_ContentInfo *ossl_cms_Data_create(OSSL_LIB_CTX *ctx, const char *propq);
int ossl_cms_DataFinal(CMS_ContentInfo *cms, BIO *cmsbio, BIO *data,
diff --git a/crypto/pkcs12/p12_add.c b/crypto/pkcs12/p12_add.c
index 1d330e4701..ec7e0484ea 100644
--- a/crypto/pkcs12/p12_add.c
+++ b/crypto/pkcs12/p12_add.c
@@ -250,7 +250,7 @@ STACK_OF(PKCS7) *ossl_pkcs12_unpack_authsafes_ex(const PKCS12 *p12,
ossl_pkcs7_set0_libctx(p7, libctx);
if (!ossl_pkcs7_set1_propq(p7, propq))
goto err;
- ossl_pkcs7_resolve_libctx(p7);
+ ossl_pkcs7_SignerInfos_set_ctx(p7);
}
}
return p7s;
diff --git a/crypto/pkcs7/pk7_asn1.c b/crypto/pkcs7/pk7_asn1.c
index 00eabd9815..b3a1a9d39e 100644
--- a/crypto/pkcs7/pk7_asn1.c
+++ b/crypto/pkcs7/pk7_asn1.c
@@ -82,7 +82,7 @@ PKCS7 *d2i_PKCS7(PKCS7 **a, const unsigned char **in, long len)
ret = (PKCS7 *)ASN1_item_d2i_ex((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(PKCS7),
libctx, propq);
if (ret != NULL)
- ossl_pkcs7_resolve_libctx(ret);
+ ossl_pkcs7_SignerInfos_set_ctx(ret);
return ret;
}
diff --git a/crypto/pkcs7/pk7_lib.c b/crypto/pkcs7/pk7_lib.c
index bb23d074c2..7e085309a6 100644
--- a/crypto/pkcs7/pk7_lib.c
+++ b/crypto/pkcs7/pk7_lib.c
@@ -432,8 +432,8 @@ STACK_OF(X509) *pkcs7_get0_certificates(const PKCS7 *p7)
return NULL;
}
-/* Set up the library context into any loaded structure that needs it. */
-void ossl_pkcs7_resolve_libctx(PKCS7 *p7)
+/* Point the signer infos of a PKCS7 at its context */
+void ossl_pkcs7_SignerInfos_set_ctx(PKCS7 *p7)
{
int i;
const PKCS7_CTX *ctx = ossl_pkcs7_get0_ctx(p7);
@@ -482,7 +482,7 @@ int ossl_pkcs7_ctx_propagate(const PKCS7 *from, PKCS7 *to)
if (!ossl_pkcs7_set1_propq(to, from->ctx.propq))
return 0;
- ossl_pkcs7_resolve_libctx(to);
+ ossl_pkcs7_SignerInfos_set_ctx(to);
return 1;
}
diff --git a/crypto/pkcs7/pk7_mime.c b/crypto/pkcs7/pk7_mime.c
index 3117c52637..3f77a8674d 100644
--- a/crypto/pkcs7/pk7_mime.c
+++ b/crypto/pkcs7/pk7_mime.c
@@ -63,7 +63,7 @@ PKCS7 *SMIME_read_PKCS7_ex(BIO *bio, BIO **bcont, PKCS7 **p7)
ret = (PKCS7 *)SMIME_read_ASN1_ex(bio, 0, bcont, ASN1_ITEM_rptr(PKCS7),
(ASN1_VALUE **)p7, libctx, propq);
if (ret != NULL)
- ossl_pkcs7_resolve_libctx(ret);
+ ossl_pkcs7_SignerInfos_set_ctx(ret);
return ret;
}
diff --git a/crypto/x509/x_all.c b/crypto/x509/x_all.c
index 11ea028332..bf76b1a0b4 100644
--- a/crypto/x509/x_all.c
+++ b/crypto/x509/x_all.c
@@ -424,7 +424,7 @@ PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7)
ret = ASN1_item_d2i_fp_ex(ASN1_ITEM_rptr(PKCS7), fp, p7, libctx, propq);
if (ret != NULL)
- ossl_pkcs7_resolve_libctx(ret);
+ ossl_pkcs7_SignerInfos_set_ctx(ret);
return ret;
}
@@ -447,7 +447,7 @@ PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7)
ret = ASN1_item_d2i_bio_ex(ASN1_ITEM_rptr(PKCS7), bp, p7, libctx, propq);
if (ret != NULL)
- ossl_pkcs7_resolve_libctx(ret);
+ ossl_pkcs7_SignerInfos_set_ctx(ret);
return ret;
}
diff --git a/include/crypto/pkcs7.h b/include/crypto/pkcs7.h
index df9d123fce..b4accd4bda 100644
--- a/include/crypto/pkcs7.h
+++ b/include/crypto/pkcs7.h
@@ -13,7 +13,7 @@
#include <openssl/pkcs7.h>
-void ossl_pkcs7_resolve_libctx(PKCS7 *p7);
+void ossl_pkcs7_SignerInfos_set_ctx(PKCS7 *p7);
void ossl_pkcs7_set0_libctx(PKCS7 *p7, OSSL_LIB_CTX *ctx);
int ossl_pkcs7_set1_propq(PKCS7 *p7, const char *propq);