From d107ee57fe60191701bb7ffb9995abf77edf7c56 Mon Sep 17 00:00:00 2001 From: Raul Metsma Date: Tue, 27 Aug 2024 15:46:28 +0300 Subject: [PATCH] Fix escaping some cases and add unittest (#619) IB-7996 Signed-off-by: Raul Metsma --- src/crypto/X509Crypto.cpp | 2 +- test/data/comma.crt | 10 ++++++++++ test/libdigidocpp_boost.cpp | 2 ++ 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 test/data/comma.crt diff --git a/src/crypto/X509Crypto.cpp b/src/crypto/X509Crypto.cpp index 5750e80f7..b6839ef28 100644 --- a/src/crypto/X509Crypto.cpp +++ b/src/crypto/X509Crypto.cpp @@ -151,7 +151,7 @@ int X509Crypto::compareIssuerToString(string_view name) const value[pos] = char(result); value.erase(pos + 1, 2); } - else if(escape.find(value[pos+1]) == string::npos) + else if(escape.find(value[pos+1]) != string::npos) value.erase(pos, 1); } diff --git a/test/data/comma.crt b/test/data/comma.crt new file mode 100644 index 000000000..6f4e683df --- /dev/null +++ b/test/data/comma.crt @@ -0,0 +1,10 @@ +-----BEGIN CERTIFICATE----- +MIIBcjCB+QIJAKIsqQxqAGX3MAoGCCqGSM49BAMCMCMxCzAJBgNVBAYTAkVFMRQw +EgYDVQQDDAt0ZXN0LCBjb21tYTAeFw0yNDA4MjcwODM4MDlaFw0yNTA4MjcwODM4 +MDlaMCMxCzAJBgNVBAYTAkVFMRQwEgYDVQQDDAt0ZXN0LCBjb21tYTB2MBAGByqG +SM49AgEGBSuBBAAiA2IABKoUm0pDszqGu4HyjABAYB0FhAgEN+G1QNEEEXjz0jRK +rlu7PqV3Bj+4Wz222KBUpViaZZdTuZFLDbEL7legmfNMeOiQK2SQiYRrclFhZVaE +laqSW0BNqI6wIevp/IgSmjAKBggqhkjOPQQDAgNoADBlAjBFyjog1pDn0J5azKuK +AwTqnTVYxWgeNsYpfgzQ1BYs9jEs/x/FoEgRX7sqeL9TCksCMQC6CG34jBdM3stY +1czLqKJjqRgZ9yg4wSgPABHYICjTW0TfuCTPLa7pMlL6mrWeAhg= +-----END CERTIFICATE----- diff --git a/test/libdigidocpp_boost.cpp b/test/libdigidocpp_boost.cpp index e376c9e6e..13da2fc84 100644 --- a/test/libdigidocpp_boost.cpp +++ b/test/libdigidocpp_boost.cpp @@ -159,6 +159,8 @@ BOOST_AUTO_TEST_CASE(parameters) X509Crypto test(X509Cert("test.crt", X509Cert::Pem)); BOOST_CHECK_EQUAL(test.compareIssuerToString("CN=\\\"test\\\""), 0); + X509Crypto comma(X509Cert("comma.crt", X509Cert::Pem)); + BOOST_CHECK_EQUAL(comma.compareIssuerToString("CN=test\\, comma"), 0); } BOOST_AUTO_TEST_SUITE_END()