From: Fred Morcos Date: Fri, 29 Apr 2022 11:25:18 +0000 (+0200) Subject: SignerParams PEM contents don't need to be optional anymore X-Git-Tag: auth-4.8.0-alpha0~115^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F11590%2Fhead;p=thirdparty%2Fpdns.git SignerParams PEM contents don't need to be optional anymore We now always test PEM import/export and we expect any new signers to implement the necessary methods for that. --- diff --git a/pdns/test-signers.cc b/pdns/test-signers.cc index 09029a26be..f491ee8fe3 100644 --- a/pdns/test-signers.cc +++ b/pdns/test-signers.cc @@ -33,7 +33,7 @@ struct SignerParams uint16_t rfcFlags; uint8_t algorithm; bool isDeterministic; - std::optional pem; + std::string pem; }; static const SignerParams rsaSha256SignerParams = SignerParams{ @@ -415,37 +415,35 @@ BOOST_FIXTURE_TEST_CASE(test_generic_signers, Fixture) auto dcke = std::shared_ptr(DNSCryptoKeyEngine::makeFromISCString(drc, signer.iscMap)); test_generic_signer(dcke, drc, signer, message); - if (signer.pem.has_value()) { - unique_ptr fp{fmemopen((void*)signer.pem->c_str(), signer.pem->length(), "r"), &std::fclose}; - BOOST_REQUIRE(fp.get() != nullptr); + unique_ptr fp{fmemopen((void*)signer.pem.c_str(), signer.pem.length(), "r"), &std::fclose}; + BOOST_REQUIRE(fp.get() != nullptr); - DNSKEYRecordContent pemDRC; - shared_ptr pemKey{DNSCryptoKeyEngine::makeFromPEMFile(pemDRC, "", *fp, signer.algorithm)}; + DNSKEYRecordContent pemDRC; + shared_ptr pemKey{DNSCryptoKeyEngine::makeFromPEMFile(pemDRC, "", *fp, signer.algorithm)}; - BOOST_CHECK_EQUAL(pemKey->convertToISC(), dcke->convertToISC()); + BOOST_CHECK_EQUAL(pemKey->convertToISC(), dcke->convertToISC()); - test_generic_signer(pemKey, pemDRC, signer, message); + test_generic_signer(pemKey, pemDRC, signer, message); - const size_t buflen = 4096; + const size_t buflen = 4096; - std::string dckePEMOutput{}; - dckePEMOutput.resize(buflen); - unique_ptr dckePEMOutputFp{fmemopen(static_cast(dckePEMOutput.data()), dckePEMOutput.length() - 1, "w"), &std::fclose}; - dcke->convertToPEM(*dckePEMOutputFp); - std::fflush(dckePEMOutputFp.get()); - dckePEMOutput.resize(std::ftell(dckePEMOutputFp.get())); + std::string dckePEMOutput{}; + dckePEMOutput.resize(buflen); + unique_ptr dckePEMOutputFp{fmemopen(static_cast(dckePEMOutput.data()), dckePEMOutput.length() - 1, "w"), &std::fclose}; + dcke->convertToPEM(*dckePEMOutputFp); + std::fflush(dckePEMOutputFp.get()); + dckePEMOutput.resize(std::ftell(dckePEMOutputFp.get())); - BOOST_CHECK_EQUAL(dckePEMOutput, *signer.pem); + BOOST_CHECK_EQUAL(dckePEMOutput, signer.pem); - std::string pemKeyOutput{}; - pemKeyOutput.resize(buflen); - unique_ptr pemKeyOutputFp{fmemopen(static_cast(pemKeyOutput.data()), pemKeyOutput.length() - 1, "w"), &std::fclose}; - pemKey->convertToPEM(*pemKeyOutputFp); - std::fflush(pemKeyOutputFp.get()); - pemKeyOutput.resize(std::ftell(pemKeyOutputFp.get())); + std::string pemKeyOutput{}; + pemKeyOutput.resize(buflen); + unique_ptr pemKeyOutputFp{fmemopen(static_cast(pemKeyOutput.data()), pemKeyOutput.length() - 1, "w"), &std::fclose}; + pemKey->convertToPEM(*pemKeyOutputFp); + std::fflush(pemKeyOutputFp.get()); + pemKeyOutput.resize(std::ftell(pemKeyOutputFp.get())); - BOOST_CHECK_EQUAL(pemKeyOutput, *signer.pem); - } + BOOST_CHECK_EQUAL(pemKeyOutput, signer.pem); } }