-
Notifications
You must be signed in to change notification settings - Fork 141
Description
Describe the bug
I tried building the Azure SDK on Windows where the -std=c++14 flag was overriden by -std=c++20 and it failed to build.
It seems that there are two versions of the make_openssl_unique
function in the sdk/attestation/azure-security-attestation/src/private/crypto/openssl/openssl_helpers.hpp
file, one for the c++14 and one for the c++17 standard. It depends on the __cpp_nontype_template_parameter_auto
feature flag which version is used.
Unfortunately the implementation of the c++17 version would require specifying the template argument in the make_openssl_unique
calls to deduce the parameter type. It should be used like this make_openssl_unique<BIO_new,>(BIO_s_mem())
, but instead it is used this way in the codebase that causes the error: make_openssl_unique(BIO_new, BIO_s_mem())
. According to godbolt as well it should not work: https://godbolt.org/z/5YqddjfPx
Build error log
2025-08-12T13:10:09.7858331Z FAILED: [code=2] _deps/asdkext-build/sdk/attestation/azure-security-attestation/CMakeFiles/azure-security-attestation.dir/src/private/crypto/openssl/opensslcert.cpp.obj
2025-08-12T13:10:09.7869674Z sccache C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1444~1.352\bin\Hostx64\x64\cl.exe /nologo /TP -DAZ_RTTI -DBUILD_CURL_HTTP_TRANSPORT_ADAPTER -DCURL_STATICLIB -DMINIFI_USE_REAL_ODBC_TEST_DRIVER -DNOMINMAX -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_WARNINGS -D_azure_BUILDING_SDK -IC:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\inc -external:IC:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\core\azure-core\inc -external:IC:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\thirdparty\curl-install\include -external:IC:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\thirdparty\zlib-install\include -external:IC:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\thirdparty\openssl-install\include -external:W0 /DWIN32 /D_WINDOWS /EHsc /permissive- /O2 /Ob2 /DNDEBUG -std:c++14 -MD /W3 /utf-8 /bigobj /MP /diagnostics:caret /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /std:c++latest /permissive- /W4 /wd5031 /wd4668 /wd4820 /wd4255 /wd4710 /Zc:__cplusplus /showIncludes /Fo_deps\asdkext-build\sdk\attestation\azure-security-attestation\CMakeFiles\azure-security-attestation.dir\src\private\crypto\openssl\opensslcert.cpp.obj /Fd_deps\asdkext-build\sdk\attestation\azure-security-attestation\CMakeFiles\azure-security-attestation.dir\azure-security-attestation.pdb /FS -c C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp
2025-08-12T13:10:09.7890878Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\openssl_helpers.hpp(50,15): error C2187: syntax error: 'remove_pointer_t' was unexpected here
2025-08-12T13:10:09.7895185Z using T = remove_pointer_t<decltype(raw)>; // no need to request T when we can see
2025-08-12T13:10:09.7954828Z ^
2025-08-12T13:10:09.7970225Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.hpp(80,23): error C2672: 'make_openssl_unique': no matching overloaded function found
2025-08-12T13:10:09.8020038Z openssl_bio bio(make_openssl_unique(BIO_new, BIO_s_mem()));
2025-08-12T13:10:09.8102530Z ^
2025-08-12T13:10:09.8315192Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\openssl_helpers.hpp(45,53): note: could be 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)'
2025-08-12T13:10:09.8449624Z template <auto OpensslApi, typename... Args> auto make_openssl_unique(Args&&... args)
2025-08-12T13:10:09.8664680Z ^
2025-08-12T13:10:09.8699256Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.hpp(80,23): note: 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)': could not deduce template argument for 'OpensslApi'
2025-08-12T13:10:09.8830604Z openssl_bio bio(make_openssl_unique(BIO_new, BIO_s_mem()));
2025-08-12T13:10:09.9025803Z ^
2025-08-12T13:10:09.9027275Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.hpp(135,17): error C2672: 'make_openssl_unique': no matching overloaded function found
2025-08-12T13:10:09.9138406Z auto hash(make_openssl_unique(EVP_MD_CTX_new));
2025-08-12T13:10:09.9181060Z ^
2025-08-12T13:10:09.9352864Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\openssl_helpers.hpp(45,53): note: could be 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)'
2025-08-12T13:10:09.9411227Z template <auto OpensslApi, typename... Args> auto make_openssl_unique(Args&&... args)
2025-08-12T13:10:09.9511087Z ^
2025-08-12T13:10:09.9691454Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.hpp(135,17): note: 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)': could not deduce template argument for 'OpensslApi'
2025-08-12T13:10:09.9730670Z auto hash(make_openssl_unique(EVP_MD_CTX_new));
2025-08-12T13:10:09.9869709Z ^
2025-08-12T13:10:10.0149623Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.hpp(135,16): error C2119: 'hash': the type for 'auto' cannot be deduced from an empty initializer
2025-08-12T13:10:10.0203596Z auto hash(make_openssl_unique(EVP_MD_CTX_new));
2025-08-12T13:10:10.0370829Z ^
2025-08-12T13:10:10.0488039Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(43,14): error C2672: 'make_openssl_unique': no matching overloaded function found
2025-08-12T13:10:10.0510958Z auto bio(make_openssl_unique(
2025-08-12T13:10:10.0624266Z ^
2025-08-12T13:10:10.0803067Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\openssl_helpers.hpp(45,53): note: could be 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)'
2025-08-12T13:10:10.0841289Z template <auto OpensslApi, typename... Args> auto make_openssl_unique(Args&&... args)
2025-08-12T13:10:10.0983452Z ^
2025-08-12T13:10:10.1216211Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(43,14): note: 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)': could not deduce template argument for 'OpensslApi'
2025-08-12T13:10:10.1252807Z auto bio(make_openssl_unique(
2025-08-12T13:10:10.1307331Z ^
2025-08-12T13:10:10.1539639Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(43,13): error C2119: 'bio': the type for 'auto' cannot be deduced from an empty initializer
2025-08-12T13:10:10.1576831Z auto bio(make_openssl_unique(
2025-08-12T13:10:10.1597960Z ^
2025-08-12T13:10:10.1701273Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(58,14): error C2672: 'make_openssl_unique': no matching overloaded function found
2025-08-12T13:10:10.1875088Z auto bio(make_openssl_unique(BIO_new, BIO_s_mem()));
2025-08-12T13:10:10.1955841Z ^
2025-08-12T13:10:10.1974250Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\openssl_helpers.hpp(45,53): note: could be 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)'
2025-08-12T13:10:10.2122924Z template <auto OpensslApi, typename... Args> auto make_openssl_unique(Args&&... args)
2025-08-12T13:10:10.2196244Z ^
2025-08-12T13:10:10.2278682Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(58,14): note: 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)': could not deduce template argument for 'OpensslApi'
2025-08-12T13:10:10.2301164Z auto bio(make_openssl_unique(BIO_new, BIO_s_mem()));
2025-08-12T13:10:10.2447092Z ^
2025-08-12T13:10:10.2528961Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(58,13): error C2119: 'bio': the type for 'auto' cannot be deduced from an empty initializer
2025-08-12T13:10:10.2647605Z auto bio(make_openssl_unique(BIO_new, BIO_s_mem()));
2025-08-12T13:10:10.2667050Z ^
2025-08-12T13:10:10.2847991Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(76,20): error C2672: 'make_openssl_unique': no matching overloaded function found
2025-08-12T13:10:10.3264920Z auto base64bio(make_openssl_unique(BIO_new, BIO_f_base64()));
2025-08-12T13:10:10.3313403Z ^
2025-08-12T13:10:10.3504912Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\openssl_helpers.hpp(45,53): note: could be 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)'
2025-08-12T13:10:10.3640621Z template <auto OpensslApi, typename... Args> auto make_openssl_unique(Args&&... args)
2025-08-12T13:10:10.3666825Z ^
2025-08-12T13:10:10.3779235Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(76,20): note: 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)': could not deduce template argument for 'OpensslApi'
2025-08-12T13:10:10.3954044Z auto base64bio(make_openssl_unique(BIO_new, BIO_f_base64()));
2025-08-12T13:10:10.3982528Z ^
2025-08-12T13:10:10.4003469Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(76,19): error C2119: 'base64bio': the type for 'auto' cannot be deduced from an empty initializer
2025-08-12T13:10:10.4118648Z auto base64bio(make_openssl_unique(BIO_new, BIO_f_base64()));
2025-08-12T13:10:10.4298275Z ^
2025-08-12T13:10:10.4321673Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(80,14): error C2672: 'make_openssl_unique': no matching overloaded function found
2025-08-12T13:10:10.4454582Z auto bio(make_openssl_unique(BIO_new, BIO_s_mem()));
2025-08-12T13:10:10.4538205Z ^
2025-08-12T13:10:10.4651945Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\openssl_helpers.hpp(45,53): note: could be 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)'
2025-08-12T13:10:10.4656377Z template <auto OpensslApi, typename... Args> auto make_openssl_unique(Args&&... args)
2025-08-12T13:10:10.4793205Z ^
2025-08-12T13:10:10.4872245Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(80,14): note: 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)': could not deduce template argument for 'OpensslApi'
2025-08-12T13:10:10.4971692Z auto bio(make_openssl_unique(BIO_new, BIO_s_mem()));
2025-08-12T13:10:10.5050211Z ^
2025-08-12T13:10:10.5154308Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(80,13): error C2119: 'bio': the type for 'auto' cannot be deduced from an empty initializer
2025-08-12T13:10:10.5212501Z auto bio(make_openssl_unique(BIO_new, BIO_s_mem()));
2025-08-12T13:10:10.5291127Z ^
2025-08-12T13:10:10.5401366Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(84,5): error C2660: 'BIO_push': function does not take 1 arguments
2025-08-12T13:10:10.5515733Z BIO_push(base64bio.get(), bio.release());
2025-08-12T13:10:10.5539205Z ^
2025-08-12T13:10:10.5704609Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\thirdparty\openssl-install\include\openssl/bio.h(756,6): note: see declaration of 'BIO_push'
2025-08-12T13:10:10.5764484Z BIO *BIO_push(BIO *b, BIO *append);
2025-08-12T13:10:10.5765701Z ^
2025-08-12T13:10:10.5825274Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(84,5): note: while trying to match the argument list '()'
2025-08-12T13:10:10.5845665Z BIO_push(base64bio.get(), bio.release());
2025-08-12T13:10:10.5849456Z ^
2025-08-12T13:10:10.5890888Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(135,35): error C2672: 'make_openssl_unique': no matching overloaded function found
2025-08-12T13:10:10.5968739Z openssl_x509_name returnValue(make_openssl_unique(X509_NAME_new));
2025-08-12T13:10:10.5992909Z ^
2025-08-12T13:10:10.6035815Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\openssl_helpers.hpp(45,53): note: could be 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)'
2025-08-12T13:10:10.6038693Z template <auto OpensslApi, typename... Args> auto make_openssl_unique(Args&&... args)
2025-08-12T13:10:10.6039817Z ^
2025-08-12T13:10:10.6066357Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(135,35): note: 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)': could not deduce template argument for 'OpensslApi'
2025-08-12T13:10:10.6147220Z openssl_x509_name returnValue(make_openssl_unique(X509_NAME_new));
2025-08-12T13:10:10.6148581Z ^
2025-08-12T13:10:10.6151619Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(224,12): error C2672: 'make_openssl_unique': no matching overloaded function found
2025-08-12T13:10:10.6170143Z return make_openssl_unique(X509V3_EXT_conf_nid, nullptr, &context, nid, nidValue.c_str());
2025-08-12T13:10:10.6172318Z ^
2025-08-12T13:10:10.6174830Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\openssl_helpers.hpp(45,53): note: could be 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)'
2025-08-12T13:10:10.6184519Z template <auto OpensslApi, typename... Args> auto make_openssl_unique(Args&&... args)
2025-08-12T13:10:10.6252477Z ^
2025-08-12T13:10:10.6302845Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(224,12): note: 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)': could not deduce template argument for 'OpensslApi'
2025-08-12T13:10:10.6305596Z return make_openssl_unique(X509V3_EXT_conf_nid, nullptr, &context, nid, nidValue.c_str());
2025-08-12T13:10:10.6369791Z ^
2025-08-12T13:10:10.6394947Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(250,30): error C2672: 'make_openssl_unique': no matching overloaded function found
2025-08-12T13:10:10.6422140Z openssl_x509 certificate(make_openssl_unique(X509_new));
2025-08-12T13:10:10.6519565Z ^
2025-08-12T13:10:10.6551866Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\openssl_helpers.hpp(45,53): note: could be 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)'
2025-08-12T13:10:10.6558593Z template <auto OpensslApi, typename... Args> auto make_openssl_unique(Args&&... args)
2025-08-12T13:10:10.6579204Z ^
2025-08-12T13:10:10.6613028Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(250,30): note: 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)': could not deduce template argument for 'OpensslApi'
2025-08-12T13:10:10.6638593Z openssl_x509 certificate(make_openssl_unique(X509_new));
2025-08-12T13:10:10.6643517Z ^
2025-08-12T13:10:10.6755925Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(303,25): error C2672: 'make_openssl_unique': no matching overloaded function found
2025-08-12T13:10:10.6772216Z auto serialNumber(make_openssl_unique(ASN1_INTEGER_new));
2025-08-12T13:10:10.6781261Z ^
2025-08-12T13:10:10.6810332Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\openssl_helpers.hpp(45,53): note: could be 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)'
2025-08-12T13:10:10.6836752Z template <auto OpensslApi, typename... Args> auto make_openssl_unique(Args&&... args)
2025-08-12T13:10:10.6838126Z ^
2025-08-12T13:10:10.6865312Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(303,25): note: 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)': could not deduce template argument for 'OpensslApi'
2025-08-12T13:10:10.6918359Z auto serialNumber(make_openssl_unique(ASN1_INTEGER_new));
2025-08-12T13:10:10.6919941Z ^
2025-08-12T13:10:10.6980706Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(303,24): error C2119: 'serialNumber': the type for 'auto' cannot be deduced from an empty initializer
2025-08-12T13:10:10.7005206Z auto serialNumber(make_openssl_unique(ASN1_INTEGER_new));
2025-08-12T13:10:10.7006612Z ^
2025-08-12T13:10:10.7008319Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(308,11): error C2660: 'X509_set_serialNumber': function does not take 1 arguments
2025-08-12T13:10:10.7010293Z if (X509_set_serialNumber(certificate.get(), serialNumber.get()) != 1)
2025-08-12T13:10:10.7011073Z ^
2025-08-12T13:10:10.7013668Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\thirdparty\openssl-install\include\openssl/x509.h(841,5): note: see declaration of 'X509_set_serialNumber'
2025-08-12T13:10:10.7068644Z int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial);
2025-08-12T13:10:10.7093339Z ^
2025-08-12T13:10:10.7119773Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(308,11): note: while trying to match the argument list '(x509_st *)'
2025-08-12T13:10:10.7174548Z if (X509_set_serialNumber(certificate.get(), serialNumber.get()) != 1)
2025-08-12T13:10:10.7191962Z ^
2025-08-12T13:10:10.7199591Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(328,11): error C2672: 'make_openssl_unique': no matching overloaded function found
2025-08-12T13:10:10.7261520Z make_openssl_unique(ASN1_TIME_adj, nullptr, currentTime, 0, 0));
2025-08-12T13:10:10.7292058Z ^
2025-08-12T13:10:10.7302742Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\openssl_helpers.hpp(45,53): note: could be 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)'
2025-08-12T13:10:10.7369423Z template <auto OpensslApi, typename... Args> auto make_openssl_unique(Args&&... args)
2025-08-12T13:10:10.7400421Z ^
2025-08-12T13:10:10.7421886Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(328,11): note: 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)': could not deduce template argument for 'OpensslApi'
2025-08-12T13:10:10.7492547Z make_openssl_unique(ASN1_TIME_adj, nullptr, currentTime, 0, 0));
2025-08-12T13:10:10.7493493Z ^
2025-08-12T13:10:10.7575536Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(339,11): error C2672: 'make_openssl_unique': no matching overloaded function found
2025-08-12T13:10:10.7582280Z make_openssl_unique(ASN1_TIME_adj, nullptr, expirationTime, 0, 0));
2025-08-12T13:10:10.7583658Z ^
2025-08-12T13:10:10.7595261Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\openssl_helpers.hpp(45,53): note: could be 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)'
2025-08-12T13:10:10.7614881Z template <auto OpensslApi, typename... Args> auto make_openssl_unique(Args&&... args)
2025-08-12T13:10:10.7621706Z ^
2025-08-12T13:10:10.7711560Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(339,11): note: 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)': could not deduce template argument for 'OpensslApi'
2025-08-12T13:10:10.7956847Z make_openssl_unique(ASN1_TIME_adj, nullptr, expirationTime, 0, 0));
2025-08-12T13:10:10.8162608Z ^
2025-08-12T13:10:10.8415890Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(360,22): error C2672: 'make_openssl_unique': no matching overloaded function found
2025-08-12T13:10:10.8642035Z auto extension(make_openssl_unique(X509_EXTENSION_new));
2025-08-12T13:10:10.8790823Z ^
2025-08-12T13:10:10.8990420Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\openssl_helpers.hpp(45,53): note: could be 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)'
2025-08-12T13:10:10.9128192Z template <auto OpensslApi, typename... Args> auto make_openssl_unique(Args&&... args)
2025-08-12T13:10:10.9333135Z ^
2025-08-12T13:10:10.9469295Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(360,22): note: 'auto Azure::Security::Attestation::_detail::make_openssl_unique(Args ...)': could not deduce template argument for 'OpensslApi'
2025-08-12T13:10:10.9682803Z auto extension(make_openssl_unique(X509_EXTENSION_new));
2025-08-12T13:10:10.9780785Z ^
2025-08-12T13:10:10.9899568Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(360,21): error C2119: 'extension': the type for 'auto' cannot be deduced from an empty initializer
2025-08-12T13:10:11.0159289Z auto extension(make_openssl_unique(X509_EXTENSION_new));
2025-08-12T13:10:11.0230705Z ^
2025-08-12T13:10:11.0513176Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(371,11): error C2660: 'X509_add_ext': function does not take 2 arguments
2025-08-12T13:10:11.0558744Z if (X509_add_ext(certificate.get(), extension.get(), -1) != 1)
2025-08-12T13:10:11.0833984Z ^
2025-08-12T13:10:11.0885097Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\thirdparty\openssl-install\include\openssl/x509.h(1095,5): note: see declaration of 'X509_add_ext'
2025-08-12T13:10:11.1183446Z int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc);
2025-08-12T13:10:11.1208036Z ^
2025-08-12T13:10:11.1521601Z C:\a\nifi-minifi-cpp\nifi-minifi-cpp\build\_deps\asdkext-src\sdk\attestation\azure-security-attestation\src\private\crypto\openssl\opensslcert.cpp(371,11): note: while trying to match the argument list '(x509_st *, int)'
2025-08-12T13:10:11.1658917Z if (X509_add_ext(certificate.get(), extension.get(), -1) != 1)
2025-08-12T13:10:11.1879346Z ^
2025-08-12T13:10:11.1977818Z cl : Command line warning D9025 : overriding '/std:c++14' with '/std:c++latest'
2025-08-12T13:10:11.2198690Z cl : Command line warning D9025 : overriding '/W3' with '/W4'
To Reproduce
Steps to reproduce the behavior: build with /std:c++20
instead of the default c++14
Expected behavior
Should build successfully with c++17 and above
Setup (please complete the following information):
- OS: Windows Server 2025
- IDE : Visual Studio Enterprise 2022 17.14.36327.8, MSVC 19.44.35213.0, MSVC runtime 14.44.35211
- Version of the Library used: azure-identity_1.13.0
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report
- Bug Description Added
- Repro Steps Added
- Setup information Added