crypto/x509/v3_cpols.cc: do not forward declare ASN.1 items. Doing so causes then to have external linkage and thus to appear as symbols in the library. Instead, order them so no forward declaration is necessary. Bug: 42220000 Change-Id: I36303d0fba0ae960b6a42f0f8d02cff1866f6fea Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/86049 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: Rudolf Polzer <rpolzer@google.com>
diff --git a/crypto/x509/v3_cpols.cc b/crypto/x509/v3_cpols.cc index 217a808..2d65775 100644 --- a/crypto/x509/v3_cpols.cc +++ b/crypto/x509/v3_cpols.cc
@@ -61,23 +61,19 @@ nullptr, }; -DECLARE_ASN1_ITEM(POLICYINFO) -DECLARE_ASN1_ITEM(POLICYQUALINFO) -DECLARE_ASN1_ITEM(USERNOTICE) -DECLARE_ASN1_ITEM(NOTICEREF) +ASN1_SEQUENCE(NOTICEREF) = { + ASN1_SIMPLE(NOTICEREF, organization, DISPLAYTEXT), + ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER), +} ASN1_SEQUENCE_END(NOTICEREF) -ASN1_ITEM_TEMPLATE(CERTIFICATEPOLICIES) = ASN1_EX_TEMPLATE_TYPE( - ASN1_TFLG_SEQUENCE_OF, 0, CERTIFICATEPOLICIES, POLICYINFO) -ASN1_ITEM_TEMPLATE_END(CERTIFICATEPOLICIES) +IMPLEMENT_ASN1_ALLOC_FUNCTIONS(NOTICEREF) -IMPLEMENT_ASN1_FUNCTIONS_const(CERTIFICATEPOLICIES) +ASN1_SEQUENCE(USERNOTICE) = { + ASN1_OPT(USERNOTICE, noticeref, NOTICEREF), + ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT), +} ASN1_SEQUENCE_END(USERNOTICE) -ASN1_SEQUENCE(POLICYINFO) = { - ASN1_SIMPLE(POLICYINFO, policyid, ASN1_OBJECT), - ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO), -} ASN1_SEQUENCE_END(POLICYINFO) - -IMPLEMENT_ASN1_ALLOC_FUNCTIONS(POLICYINFO) +IMPLEMENT_ASN1_ALLOC_FUNCTIONS(USERNOTICE) ASN1_ADB_TEMPLATE(policydefault) = ASN1_SIMPLE(POLICYQUALINFO, d.other, ASN1_ANY); @@ -96,19 +92,18 @@ IMPLEMENT_ASN1_ALLOC_FUNCTIONS(POLICYQUALINFO) -ASN1_SEQUENCE(USERNOTICE) = { - ASN1_OPT(USERNOTICE, noticeref, NOTICEREF), - ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT), -} ASN1_SEQUENCE_END(USERNOTICE) +ASN1_SEQUENCE(POLICYINFO) = { + ASN1_SIMPLE(POLICYINFO, policyid, ASN1_OBJECT), + ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO), +} ASN1_SEQUENCE_END(POLICYINFO) -IMPLEMENT_ASN1_ALLOC_FUNCTIONS(USERNOTICE) +IMPLEMENT_ASN1_ALLOC_FUNCTIONS(POLICYINFO) -ASN1_SEQUENCE(NOTICEREF) = { - ASN1_SIMPLE(NOTICEREF, organization, DISPLAYTEXT), - ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER), -} ASN1_SEQUENCE_END(NOTICEREF) +ASN1_ITEM_TEMPLATE(CERTIFICATEPOLICIES) = ASN1_EX_TEMPLATE_TYPE( + ASN1_TFLG_SEQUENCE_OF, 0, CERTIFICATEPOLICIES, POLICYINFO) +ASN1_ITEM_TEMPLATE_END(CERTIFICATEPOLICIES) -IMPLEMENT_ASN1_ALLOC_FUNCTIONS(NOTICEREF) +IMPLEMENT_ASN1_FUNCTIONS_const(CERTIFICATEPOLICIES) static void *r2i_certpol(const X509V3_EXT_METHOD *method, const X509V3_CTX *ctx, const char *value) {