diff --git a/CMakeLists.txt b/CMakeLists.txt index 0940e041624..fe6cb0241f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -593,6 +593,19 @@ check_cxx_source_compiles( }" HAVE_CRYPTO_EX_DUP_TYPE1 ) +check_cxx_source_compiles( + "#include + namespace bssl { + DECLARE_ASN1_ITEM(GENERAL_NAME) + }; + int main() { + if (&bssl::GENERAL_NAME_it == reinterpret_cast(0x01)) { + return 1; + } + return 0; + }" + HAVE_GENERAL_NAME_IN_BSSL_NAMESPACE +) set(CMAKE_EXTRA_INCLUDE_FILES netinet/in.h netinet/tcp.h) check_type_size("struct tcp_info" STRUCT_TCP_INFO) diff --git a/include/tscore/ink_config.h.cmake.in b/include/tscore/ink_config.h.cmake.in index c1fbfb2c36a..bf012cefecd 100644 --- a/include/tscore/ink_config.h.cmake.in +++ b/include/tscore/ink_config.h.cmake.in @@ -92,6 +92,7 @@ #cmakedefine HAVE_NATIVE_DUAL_CERT_SUPPORT 1 #cmakedefine HAVE_CRYPTO_EX_UNUSED 1 #cmakedefine HAVE_CRYPTO_EX_DUP_TYPE1 1 +#cmakedefine HAVE_GENERAL_NAME_IN_BSSL_NAMESPACE 1 #cmakedefine HAVE_STRUCT_TCP_INFO 1 #cmakedefine HAVE_STRUCT_TCP_INFO_TCPI_TOTAL_RETRANS 1 diff --git a/src/iocore/net/OCSPStapling.cc b/src/iocore/net/OCSPStapling.cc index 23ac23c0a0b..0a504167653 100644 --- a/src/iocore/net/OCSPStapling.cc +++ b/src/iocore/net/OCSPStapling.cc @@ -55,7 +55,13 @@ extern ClassAllocator FetchSMAllocator; #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-function" #ifndef GENERAL_NAME_it +#if HAVE_GENERAL_NAME_IN_BSSL_NAMESPACE +namespace bssl { +#endif DECLARE_ASN1_ITEM(GENERAL_NAME) +#if HAVE_GENERAL_NAME_IN_BSSL_NAMESPACE +} +#endif #endif // RFC 6960 using TS_OCSP_CERTID = struct ocsp_cert_id { @@ -97,7 +103,11 @@ using TS_OCSP_REQINFO = struct ocsp_req_info_st { DECLARE_ASN1_FUNCTIONS(TS_OCSP_REQINFO) ASN1_SEQUENCE(TS_OCSP_REQINFO) = { ASN1_EXP_OPT(TS_OCSP_REQINFO, version, ASN1_INTEGER, 0), +#if HAVE_GENERAL_NAME_IN_BSSL_NAMESPACE + ASN1_EXP_OPT(TS_OCSP_REQINFO, requestorName, bssl::GENERAL_NAME, 1), +#else ASN1_EXP_OPT(TS_OCSP_REQINFO, requestorName, GENERAL_NAME, 1), +#endif ASN1_SEQUENCE_OF(TS_OCSP_REQINFO, requestList, TS_OCSP_ONEREQ), ASN1_EXP_SEQUENCE_OF_OPT(TS_OCSP_REQINFO, requestExtensions, X509_EXTENSION, 2) } ASN1_SEQUENCE_END(TS_OCSP_REQINFO)