From 571dea912fb0a5734a07522fd14a80b4403b18a2 Mon Sep 17 00:00:00 2001 From: Raul Metsma Date: Mon, 11 May 2026 12:54:20 +0300 Subject: [PATCH] Fix validating files with leading / IB-8933 Signed-off-by: Raul Metsma --- src/SignatureXAdES_B.cpp | 10 +- src/SignatureXAdES_LTA.cpp | 3 - src/util/File.cpp | 2 + test/data/EE_T.xml | 318 +++++++++++++++++++++++-- test/data/test-leading-slash-uri.asice | Bin 0 -> 7181 bytes test/libdigidocpp_boost.cpp | 14 ++ 6 files changed, 324 insertions(+), 23 deletions(-) create mode 100644 test/data/test-leading-slash-uri.asice diff --git a/src/SignatureXAdES_B.cpp b/src/SignatureXAdES_B.cpp index 6f1723853..ea4920f5d 100644 --- a/src/SignatureXAdES_B.cpp +++ b/src/SignatureXAdES_B.cpp @@ -154,10 +154,11 @@ int initXmlSecCallback() return {}; } - auto find = [name](auto files) -> const DataFile* { + string uriName = File::fromUriPath(name); + auto find = [&uriName](auto files) -> const DataFile* { for(const DataFile *file: files) { - if(file->fileName() == name) + if(file->fileName() == uriName) return file; } return {}; @@ -505,10 +506,7 @@ void SignatureXAdES_B::validate(const string &policy) const EXCEPTION_ADD(exception, "Reference '%.*s' ID missing", int(uri.size()), uri.data()); else { - string uriPath = File::fromUriPath(uri); - if(uriPath.front() == '/') - uriPath.erase(0); - signatureref.emplace(uriPath, mimeinfo[string("#").append(ref["Id"])]); + signatureref.emplace(File::fromUriPath(uri), mimeinfo[string("#").append(ref["Id"])]); } } if(!signedInfoFound) diff --git a/src/SignatureXAdES_LTA.cpp b/src/SignatureXAdES_LTA.cpp index 33d341a8b..7c14acb48 100644 --- a/src/SignatureXAdES_LTA.cpp +++ b/src/SignatureXAdES_LTA.cpp @@ -54,9 +54,6 @@ void SignatureXAdES_LTA::calcArchiveDigest(const Digest &digest, string_view can } string uriPath = File::fromUriPath(uri); - if(uriPath.front() == '/') - uriPath.erase(0); - auto files = bdoc->dataFiles(); auto file = find_if(files.cbegin(), files.cend(), [&uriPath](DataFile *file) { return file->fileName() == uriPath; diff --git a/src/util/File.cpp b/src/util/File.cpp index c57643f15..9cecc09b3 100644 --- a/src/util/File.cpp +++ b/src/util/File.cpp @@ -349,6 +349,8 @@ constexpr bool fromHexChar(auto pos, auto end, auto &value) string File::fromUriPath(string_view path) { + if(!path.empty() && path.front() == '/') + path.remove_prefix(1); string ret; ret.reserve(path.size()); uint8_t value = 0; diff --git a/test/data/EE_T.xml b/test/data/EE_T.xml index bcfe4ac35..382e0671f 100644 --- a/test/data/EE_T.xml +++ b/test/data/EE_T.xml @@ -1,7 +1,7 @@ - 5 - 22 + 6 + 34 http://uri.etsi.org/TrstSvc/TrustedList/TSLType/EUgeneric Information System Authority @@ -75,7 +75,7 @@ - 2024-11-18T15:43:39Z + 2026-05-11T12:22:20Z 2027-08-20T21:00:00Z @@ -1252,18 +1252,308 @@ + + + http://uri.etsi.org/TrstSvc/Svctype/CA/QC + + TEST of SK ID Solutions EID-Q 2024E + + + + MIIDxzCCAymgAwIBAgIUIJ92Wg42THMIC1QSOpWpxv3+22AwCgYIKoZIzj0EAwMwbjELMAkGA1UEBhMCRUUxGzAZBgNVBAoMElNLIElEIFNvbHV0aW9ucyBBUzEXMBUGA1UEYQwOTlRSRUUtMTA3NDcwMTMxKTAnBgNVBAMMIFRFU1Qgb2YgU0sgSUQgU29sdXRpb25zIFJPT1QgRzFFMB4XDTI0MDYwMzEzMDEyMloXDTM5MDUzMTEzMDEyMVowcTEsMCoGA1UEAwwjVEVTVCBvZiBTSyBJRCBTb2x1dGlvbnMgRUlELVEgMjAyNEUxFzAVBgNVBGEMDk5UUkVFLTEwNzQ3MDEzMRswGQYDVQQKDBJTSyBJRCBTb2x1dGlvbnMgQVMxCzAJBgNVBAYTAkVFMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE9tnu4Hr6oZ3virQ52FkQ8zgSnRLjSpbr7y6hjaI5ZtvFTssL3aOgvULxOvV5x+HtOmcGVfmhvy9YtoJENq/E3pFFOkofrkX3O/RVLdtPpiVahYa89HCgqoEVDln5ILMWo4IBgzCCAX8wEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBTiHN5j3L74hH4BOy5LgLHhf9Xx5jBsBggrBgEFBQcBAQRgMF4wOAYIKwYBBQUHMAKGLGh0dHA6Ly9jLnNrLmVlL1RFU1RfU0tfUk9PVF9HMV8yMDIxRS5kZXIuY3J0MCIGCCsGAQUFBzABhhZodHRwOi8vZGVtby5zay5lZS9vY3NwMHAGA1UdIARpMGcwBgYEVR0gADBdBgNVHSAwVjBUBggrBgEFBQcCARZIaHR0cHM6Ly93d3cuc2tpZHNvbHV0aW9ucy5ldS9yZXNvdXJjZXMvY2VydGlmaWNhdGlvbi1wcmFjdGljZS1zdGF0ZW1lbnQvMDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jLnNrLmVlL1RFU1RfU0tfUk9PVF9HMV8yMDIxRS5jcmwwHQYDVR0OBBYEFLAkFxmI42b4zShYZXtNFNiSZk9rMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwOBiwAwgYcCQXIdNKdyvEhtB+48QZEXi2dgXiAjYD7O0D4f4Y2KPajqrRcwd9KEYr/yFjK0JWYHqRFN47tMdYhisy7aFySEWmKcAkIBUbTJeSboXAKBT9+j2zQduKv8Eqb/AIQybcVXyP23w+1ujNkcQZMkok41nGOH2YNRP7aGsCZa7Wy8pf2lw6EcfyU= + + + http://uri.etsi.org/TrstSvc/TrustedList/Svcstatus/granted + 2024-06-03T13:01:22Z + + https://www.skidsolutions.eu/en/repository/CPS/ + + + + + + + + + + + + true + + + + 1.3.6.1.4.1.10015.17.2 + + + All certificates issued under this CA/QC service that have nonRepudiation bit set exclusively are issued as qualified certificates + + + + + + + http://uri.etsi.org/TrstSvc/TrustedList/SvcInfoExt/ForeSignatures + + + + + + + + http://uri.etsi.org/TrstSvc/Svctype/CA/QC + + TEST of SK ID Solutions EID-Q 2024R + + + + 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 + + + http://uri.etsi.org/TrstSvc/TrustedList/Svcstatus/granted + 2024-06-04T06:53:58Z + + https://www.skidsolutions.eu/en/repository/CPS/ + + + + + + + + + + + + true + + + + 1.3.6.1.4.1.10015.17.2 + + + All certificates issued under this CA/QC service that have nonRepudiation bit set exclusively are issued as qualified certificates + + + + + + + http://uri.etsi.org/TrstSvc/TrustedList/SvcInfoExt/ForeSignatures + + + + + + + + http://uri.etsi.org/TrstSvc/Svctype/TSA/QTST + + DEMO SK TIMESTAMPING UNIT 2025E + + + + MIIDqTCCAy+gAwIBAgIQfa9+FvsGICCYmcn24d0EazAKBggqhkjOPQQDAjBlMSAwHgYDVQQDDBdURVNUIG9mIFNLIFRTQSBDQSAyMDIzRTEXMBUGA1UEYQwOTlRSRUUtMTA3NDcwMTMxGzAZBgNVBAoMElNLIElEIFNvbHV0aW9ucyBBUzELMAkGA1UEBhMCRUUwHhcNMjQxMjMxMjIwMDAwWhcNMzEwMzMwMjE1OTU5WjBtMSgwJgYDVQQDDB9ERU1PIFNLIFRJTUVTVEFNUElORyBVTklUIDIwMjVFMRcwFQYDVQRhDA5OVFJFRS0xMDc0NzAxMzEbMBkGA1UECgwSU0sgSUQgU29sdXRpb25zIEFTMQswCQYDVQQGEwJFRTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABABDeV/Ain3DRLR8YoB0+42LwxUK4gna2tRiKx308K4ubuqEyM5V4VQs1ZDsUBRN3TFMCmj+kIC43G2M+MKCSeOjggG3MIIBszAfBgNVHSMEGDAWgBRpBaK0o4dLjl8YRS3VsZc0z2c7tzBuBggrBgEFBQcBAQRiMGAwOgYIKwYBBQUHMAKGLmh0dHA6Ly9jLnNrLmVlL1RFU1Rfb2ZfU0tfVFNBX0NBXzIwMjNFLmRlci5jcnQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9kZW1vLnNrLmVlL29jc3AwgZ4GA1UdIASBljCBkzCBkAYGBACPegECMIGFMDsGCCsGAQUFBwIBFi9odHRwczovL3d3dy5za2lkc29sdXRpb25zLmV1L2VuL3JlcG9zaXRvcnkvdHNhLzBGBggrBgEFBQcCAjA6DDhUU1UgY2VydGlmaWNhdGUgaGFzIGJlZW4gaXNzdWVkIGFjY29yZGluZyB0byBOQ1ArIHBvbGljeTAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDA4BgNVHR8EMTAvMC2gK6AphidodHRwOi8vYy5zay5lZS90ZXN0X3NrX3RzYV9jYV8yMDIzZS5jcmwwHQYDVR0OBBYEFHh6Lgr61N6+uGJW+j2wP/7+synjMA4GA1UdDwEB/wQEAwIGwDAKBggqhkjOPQQDAgNoADBlAjEA069B7Yyns64RZhgv9keesbcU1/1j3g6KAZOcZuPJunkr5BkT7c92lxUekpz/xUT+AjBkIlkM8I+x+fMw9K1+gRYhJFdIkmnpaM1yPjBDv+QT3QqlXDm7Wf0gcOBdmkt43bM= + + + http://uri.etsi.org/TrstSvc/TrustedList/Svcstatus/granted + 2025-01-01T00:00:00Z + + http://tsa.demo.sk.ee/tsaecc + + + + + + http://uri.etsi.org/TrstSvc/Svctype/TSA/QTST + + DEMO SK TIMESTAMPING UNIT 2025R + + + + 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 + + + http://uri.etsi.org/TrstSvc/TrustedList/Svcstatus/granted + 2025-01-01T00:00:00Z + + http://tsa.demo.sk.ee/tsarsa + + + + + + http://uri.etsi.org/TrstSvc/Svctype/Certstatus/OCSP/QC + + DEMO of KLASS3-SK 2016 OCSP RESPONDER 2026 + + + + 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 + + + http://uri.etsi.org/TrstSvc/TrustedList/Svcstatus/granted + 2026-01-30T15:08:00Z + + http://demo.sk.ee/ocsp + + + + + + + + + Zetes Estonia + + + Zetes + + + + + A. H. Tammsaare tee 47 + Tallinn + Harjumaa + 11316 + EE + + + + https://www.ria.ee + + + + https://repository-test.eidpki.ee + + + + + + http://uri.etsi.org/TrstSvc/Svctype/CA/QC + + Test ESTEID2025 + + + + MIIDMTCCAregAwIBAgIUNtXxgsJYFy9r5Opm2j2LcsnZYtkwCgYIKoZIzj0EAwMwXTEZMBcGA1UEAwwQVGVzdCBFRUdvdkNBMjAyNTEXMBUGA1UEYQwOTlRSRUUtMTcwNjYwNDkxGjAYBgNVBAoMEVpldGVzIEVzdG9uaWEgT8OcMQswCQYDVQQGEwJFRTAeFw0yNDExMDQxMjU5NTVaFw0zOTExMDMxMjU5NTRaMFwxGDAWBgNVBAMMD1Rlc3QgRVNURUlEMjAyNTEXMBUGA1UEYQwOTlRSRUUtMTcwNjYwNDkxGjAYBgNVBAoMEVpldGVzIEVzdG9uaWEgT8OcMQswCQYDVQQGEwJFRTB2MBAGByqGSM49AgEGBSuBBAAiA2IABC8Uc5s70j1iWMZNbQyVYpDmwp4Ad5HlQmFB9noY2yBeDKL2KHKQG31SDTboKlBz7JUWsmaxF1Vj6ZkKAwcltO2cBnEU1B5H8hWgk5Un61GZxhX2wPkwJLm7vjyidKmftqOCATcwggEzMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAU4VbfrsSXORfv3goMbOVys4vVchAwSQYIKwYBBQUHAQEEPTA7MDkGCCsGAQUFBzAChi1odHRwOi8vY3J0LXRlc3QuZWlkcGtpLmVlL3Rlc3RFRUdvdkNBMjAyNS5jcnQwQgYDVR0gBDswOTA3BgRVHSAAMC8wLQYIKwYBBQUHAgEWIWh0dHBzOi8vcmVwb3NpdG9yeS10ZXN0LmVpZHBraS5lZTA+BgNVHR8ENzA1MDOgMaAvhi1odHRwOi8vY3JsLXRlc3QuZWlkcGtpLmVlL3Rlc3RFRUdvdkNBMjAyNS5jcmwwHQYDVR0OBBYEFO7ylT+MsvxRnoTm5l6EEX5CuiA2MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjEA3qECw4GIfbeoC5cFhtiPJRfFlzsjRGVBtQTH6DNbZsm+EF6Gc28/iZFX1H6nUTRlAjAiwooqEyVbxA1KqT6PwVl1BXNbF59j6MaiNR43dYeJxrdOnxleR50EVdICDJFEm2E= + + + http://uri.etsi.org/TrstSvc/TrustedList/Svcstatus/granted + 2024-11-04T12:59:55Z + + + + + + + + + + true + + + true + + Certificates for test signatures only + + + + + + + + + true + + + + + + + + http://uri.etsi.org/TrstSvc/TrustedList/SvcInfoExt/ForeSignatures + + + + + + + + + + + Information System Authority + + + RIA + + + + + Pärnu maantee 139a + Tallinn + Harjumaa + 15169 + EE + + + + https://www.ria.ee + mailto:info@ria.ee + + + + http://www.sk.ee/en/repository/CPS + + + + + + http://uri.etsi.org/TrstSvc/Svctype/TSA/QTST + + TEST of RIA TIMESTAMPING AUTHORITY 2018 G1 PROOV 1 + + + + MIIFCjCCAvKgAwIBAgIIOTmoMM25tyUwDQYJKoZIhvcNAQEMBQAwdTELMAkGA1UEBhMCRUUxJTAjBgNVBAoMHEluZm9ybWF0aW9uIFN5c3RlbSBBdXRob3JpdHkxJDAiBgNVBAMMG1RFU1Qgb2YgUklBIFJPT1QgQ0EgMjAxOCBHMTEZMBcGCSqGSIb3DQEJARYKcGtpQHJpYS5lZTAeFw0xOTA3MTYwNzUyNTZaFw0zODA0MTQxMjA4MjZaMIGoMQswCQYDVQQGEwJFRTEVMBMGA1UECAwMSGFyanUgQ291bnR5MRAwDgYDVQQHDAdUYWxsaW5uMSUwIwYDVQQKDBxJbmZvcm1hdGlvbiBTeXN0ZW0gQXV0aG9yaXR5MQwwCgYDVQQLDANUU0ExOzA5BgNVBAMMMlRFU1Qgb2YgUklBIFRJTUVTVEFNUElORyBBVVRIT1JJVFkgMjAxOCBHMSBQUk9PViAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuwKPfXSFMJRX5/cuk950lQVN2y1dNESggm8m11D05VKAlOdor9fZO2aGVToMGqDcOa6FRH/fbdKuRN4LDJsbTiysKdlqAfoOqioOgnqu6HUt3TQztaSauqqduKKwLSNXQuN7T0/B6sTtNKlzuCtv8kwnxQVrAjPTRGx+0NIM5zxYyni0HXB+lp+w+ToG/l3s29lC5VeCnUPcYM5xtC+KsSvRRKmKI8dDK5l20v5RgmowIxP0McyhmhcGf+WbI01nq5ptEn8cFoJVwu8gcMDfLC6aRgEr+ag8G+l6pHLRiiNH+kjSFPQreDcCGcHbRKOqNT4SbwYeccZI5fpNLW7bywIDAQABo2owaDAfBgNVHSMEGDAWgBQ+6250UdpSNA6ZgOO3z9/uQysKVDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAdBgNVHQ4EFgQUgN06mzzCFCX8ThslsRNc1HnNcsswDgYDVR0PAQH/BAQDAgbAMA0GCSqGSIb3DQEBDAUAA4ICAQBHin1fKyM2t4J21djwjqDXROpYh7XncZDiUdAXGLlHnXI/wRG+x6ttWj/MjxsTeUGJrKuibsBIQDV4kWRNKoCt4zDOyDM11p3jg9oA325xad7cXcHOrRY7flbvFTB8jlKXHgrSdyfha8Cq7BJScepS2lELXLZ2ZziXXRdFxTpGzxdPqGKUB7tzpc6IIWEmcTOBTLXL/t2j6fZpLJKBihY74h+/16UxG3cXZa3E0BFkAeycm7XsbmS96XOmj2i/g2rKri7mztsS+WdFc++Awh1AvQiE9x5i0T/16nlJajsd6eJCBb2Nv/JlHqhmymDslmdiMSG1GMoHeQjTxLd197F3tz4TkVhEbcb6+tTgHn5nlSgk7W14hRqhv+9stBNt6d5ikdX01MugM8Iah7zGZKe35I+OUu3VKg8yDQFa2JItjIgvqcDTQKJ8cSep32YcIb/WFENRRfDocQQjai9PlJ7tvLbj17Z6fEe4M/mZAQnM3Lmw9rzz4OiOk8CrQAxJULeNOT0amKL8Hvsms5YKhahP6+PkU+bez+Cj2lV25rXVLfWYU5qKzd+aps6xHatR5HLJ13+aasJ4yYJ0AUXeUrbOb+KCFWzuIrKCDskoUAhIwVIr2tUQSeP65jBYurgsVtCi7IB7OSdaEjA7UTzyNurLKp81NEAOtp5zTRKwsraFMw== + + + http://uri.etsi.org/TrstSvc/TrustedList/Svcstatus/granted + 2019-07-16T08:00:00Z + + http://tsa.test.riaint.ee/ + + + + + + http://uri.etsi.org/TrstSvc/Svctype/Certstatus/OCSP/QC + + TEST of RIA OCSP RESPONDER 2019 G1 + + + + MIIE+DCCAuCgAwIBAgIIE2M27fGPKnowDQYJKoZIhvcNAQEMBQAwdTELMAkGA1UEBhMCRUUxJTAjBgNVBAoMHEluZm9ybWF0aW9uIFN5c3RlbSBBdXRob3JpdHkxJDAiBgNVBAMMG1RFU1Qgb2YgUklBIFJPT1QgQ0EgMjAxOCBHMTEZMBcGCSqGSIb3DQEJARYKcGtpQHJpYS5lZTAeFw0xOTA5MDQxMjM4MDRaFw0zODA0MTQxMjA4MjZaMIGZMQswCQYDVQQGEwJFRTEVMBMGA1UECAwMSGFyanUgQ291bnR5MRAwDgYDVQQHDAdUYWxsaW5uMSUwIwYDVQQKDBxJbmZvcm1hdGlvbiBTeXN0ZW0gQXV0aG9yaXR5MQ0wCwYDVQQLDARPQ1NQMSswKQYDVQQDDCJURVNUIG9mIFJJQSBPQ1NQIFJFU1BPTkRFUiAyMDE5IEcxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwKu3S/omS09qV59HtnFVGFtN7lOc84QZi3LsZwVjFunnWPN1Kxe/wbmR8VK8vTbS6IUe0PKzoMui6NcZIH0wJwLV3CeaXZtbpQ8Sl1ZYTd9ks6907RKLHRW9lDuu8dBwAe7xOlfJS7/cyTQO0z5475CtIOt0fODwU1mcjebXegZPqVlzUpqaRbM1ONgsOK4dSO04+MmGpFsluXt5HfaA6O5jggKG6SiTOLSIpJeaM6T4K284Mx+1+Pfl0NR+evt+vELJonmvTfxViYoEa2T8HNqHJZxMb78X8IDJGZ/Hvp3MTJ+2XDZLNHeSx3Kdy/A18HdUGgAM37xchtgGzJsZvQIDAQABo2cwZTAfBgNVHSMEGDAWgBQ+6250UdpSNA6ZgOO3z9/uQysKVDATBgNVHSUEDDAKBggrBgEFBQcDCTAdBgNVHQ4EFgQUPa7zIV4ioQssO0Djiso9ccTnktwwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBDAUAA4ICAQBRGOnbtqMQHIR85CSsjITJMv4YVqvzq1Dmm2K12I4vKMsLW8VFgCBCmeh5KtJCrTYnWJJbLDZj3EACA1pWLOQXAfMuqDu5aYZ9Uvvx7bR4CiOaPoSImjLZnYeo5IbwgFE8/yHNcaXjNmnwNYnfbvLYG8aY+qoOHrs63tj5HQL2po3N1B9BOKuYRA1zenYRyqpUYF1ZV2zYDzw2en7x8ZnZHUEln2a0rGWp2KHwH63lI+MiWpOa8yMC3Nzm9ZIpLw49u7U0+Vu2at9Lf6Cb+7aMrwdsfVuLrDVBf6AQmBSvLPZQTZa2SvdUoPNrT3mFpR1gjZRu+W4XVtikm+iSVN3dQX3lT4ycC+jwGEo7QA+N3+UZJR9A7h1Bz0jqF4g5zKRUtvxRsyMbP8pnIvDEThSHzBkr64t9nchdqlpgNruMCMQZWnoosqd6PSYlgef7W7OOhkxKTsTaUayzXR9QMH7QrSwMuq9DoOKaQlOTTfxrfLcCaoRP8fwUkE3hqqdCBnzhtnadYG0KgYnDu4mMkqTvsBOFU/EooE6aUdLScPQZ2ReLI/hAwm2G8rEqwGlS/Jun7l8moHK3ZoQUeoi56h+Hx2Dj0UqZ+Ph2KVs+zi4T28dPEqIbISBX/1hQXempPHbMNw5EIYPidlFLzovoc1aYgRWNcbimUEWaIZM2YLW9eQ== + + + http://uri.etsi.org/TrstSvc/TrustedList/Svcstatus/granted + 2019-09-04T13:00:00Z + + http://ocsp.test.riaint.ee/ + + + - -+h7xMSl4cU+dfeyicSHqtYWWb+koyf3FArqRlAvzWpo=CBHF4+VRUEUdl7hKTJSPfcZU8eHr/6l51fqPyz7YT7w=MSUpnb9dJ8+6S19vmEWoaRHEIeS7eBabl4KiHzEG1vdOUgRKGFxAO22GNTkVSOYoM2vqoY337gbN -wJ3p6BiAREwRqri4XXrxaR/rpDpWXWXZOim+Ixx7UbVcYCUmfw7nhYyuJTQGi4Bbz+JESNC0LoVz -64bWRu/BmM895yDqVGWCSFCCSbLa98Rrhj32fW3fOwjVm8J3iD5vt5gK4ZCUFtgAUiBrhm+3/WdS -zCBszUcEBnQOMu5KxykSrKGQQBkpsLZDFz9MAhirVAu7UETRc62jVa9IN1um+ANDmmkhk5tJJwZd -HmIu+i5abEPSwlRbAGg+ze7GT6t3nJpv09XNQKHfC00smsTY7LaAX5lZOgekzqZnPWtut2J4MEVa -i8qp4Qmutnfl13VBsi8t1qC0mpurTE9zbCPtQzL+7r8SRn/0SAASB/7FJHl/vl2weBmDp6d/G1TX -/QcLYoImStvOjZ+TKPHeziQSBXid1UVhEXkwFAEKgsouIh5ZKnfT2TJTL24pZV0UWjiktM/5X8zj -XWf3+hg+arXtNptYpOER9LgQo4soRTYJRMDAbcsXUbprkRE0F8npoAqCK4vXKNsu/L5tjQV6/Sg7 -xIOnkJjxDomCDAu60tvJcyb4hKXau3yWU0TFlf03d7ozLVFxmMilOJGP3dcdKjY/eytIjLLzeM0=MIIEvDCCAqQCCQCL/COUVyiGjTANBgkqhkiG9w0BAQUFADAgMQswCQYDVQQGEwJFRTERMA8GA1UE + z2/BmOOxR0ae14AvKaejjkKuFb2qD6qYlHcr6EJnPhE=I1TF6No1A4ZaPeJPgyYY6jwZEPd3pYB7pvsiYK68X8c=WyFp4oe27bJSeRhvt/E5FKdiJu3ZVNpcO9cXQxvuIBLfujviRxlHm+w2QsHIL2j8kfOOJyRnjOqV +ADCfwa3ugSHn1nvy190bNGzZzUlXX1+fFjfgfn9T1hPPoyGb94uFhGscYzv7su9+A/Fms5HnOjQ/ +H1+K81DHftZ6MDTvRNUiLk53KU3n0QYNlnQK7U8CT1V3MjBRN60y16wmH4C3Z3nv0TInhvEFsLgM +E+vxE1iiQRFn8sYz1pZV/txmDP1qzNjgyYQ1e24lOZml3/Ey1s3yv79VOwiKCYrhu9ksECCZ1My6 +QcRFs8b7zF9nPbwJxPG2u2CI7h4qwO0uklVblNQldI4HFJDITaxL2QPpH0qP5zlNSairxIhs8JqG +8055bQ+SF4fskALpWGB2hG/c7dZRTdMdUQD8S78p7jwEbwvpTx8MsOEd5WhXlt+DxYy7wy5+LsQF +iKnaD/o7GWZ2Q0u5T5IcEjopw3AeFsCLiMQzNr6vfQ16VtZSK0uSx+vqQZJlHAuyAu159Q2J2rql +krb3Gy2T7iJV0a+G3sFLDVJCh9j6P/Epr6Nj/yZ86KgBaiyqh67a7u3U+IOslTdDhH4Vt+AvhnZJ +Ec0R23KyHXPosWImY5BASF2W6rCh+vd2hA1HInrxA18f/oR6eb+bqfPz18ymOGq47SO1icBxIEc=MIIEvDCCAqQCCQCL/COUVyiGjTANBgkqhkiG9w0BAQUFADAgMQswCQYDVQQGEwJFRTERMA8GA1UE AwwIVGVzdCBUU0wwHhcNMTgxMTE1MTI1MjU1WhcNMjgxMTEyMTI1MjU1WjAgMQswCQYDVQQGEwJF RTERMA8GA1UEAwwIVGVzdCBUU0wwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDfFK0f YeGrdngMZXZndDEpcl9pjGGNpbie3+ch5mDqObUe+OL45b4+SfPapriVRNBa+m5T1TuijP7Kb8sT @@ -1284,4 +1574,4 @@ AzcmODU9uMRRBlGOWK8UQg05exc518heICmudSbgSyQLGqzVoI4kybhmBA3w93KEXJSXlnU7hBzo YDP2d1g46Ay59UtvLycS1kxe0jVjxxRnh/f9aPbMwUYBzEC0naUzMeJtElHLHgW4HT6PLgFImgLL Fh8dnYJUzn35wz10g3YBA61YUJuODpapKHixn/2X/t/8Vf1vqr/VwiwUglNQj+P78Fdb3T56JsYR G1bdf6nz5dvv4qtLoG+OjPI/tiLjh2ktqaMjeVmlQFchy/C5Lr48d9IGmo+x2ECYSWVvwzxI7PIb -YBI4oaPjh2zKIrz/AlY2RmqMMA==2024-11-18T13:43:39Znk6Dlz6rjsOp9TaNXJg0RNj/m53oC7RGzdDHcZ7jrfo=CN=Test TSL, C=EE10086976385427474061 \ No newline at end of file +YBI4oaPjh2zKIrz/AlY2RmqMMA==2026-05-11T09:22:20Znk6Dlz6rjsOp9TaNXJg0RNj/m53oC7RGzdDHcZ7jrfo=MDEwJKQiMCAxCzAJBgNVBAYTAkVFMREwDwYDVQQDDAhUZXN0IFRTTAIJAIv8I5RXKIaNapplication/vnd.etsi.tsl+xml \ No newline at end of file diff --git a/test/data/test-leading-slash-uri.asice b/test/data/test-leading-slash-uri.asice new file mode 100644 index 0000000000000000000000000000000000000000..4a1286a7dae3c7f0ed8c123ec99630fcf83006ef GIT binary patch literal 7181 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 L0AK?CYsP;71Jap~ literal 0 HcmV?d00001 diff --git a/test/libdigidocpp_boost.cpp b/test/libdigidocpp_boost.cpp index d449ef5e4..3fa54adcd 100644 --- a/test/libdigidocpp_boost.cpp +++ b/test/libdigidocpp_boost.cpp @@ -515,6 +515,20 @@ BOOST_AUTO_TEST_CASE(HexToBinConvertsHexEncodedStringToBinaryData) } BOOST_AUTO_TEST_SUITE_END() +BOOST_AUTO_TEST_SUITE(ASiCETestSuite) +BOOST_AUTO_TEST_CASE(LeadingSlashReferenceURI) +{ + // Container signed with URI="/test1.txt" (leading slash). + // Without the erase(0,1) fix the reference path is erased to "", + // failing to match the DataFile and throwing during validate(). + auto d = Container::openPtr("test-leading-slash-uri.asice"); + BOOST_REQUIRE_EQUAL(d->dataFiles().size(), 1U); + BOOST_REQUIRE_EQUAL(d->signatures().size(), 1U); + BOOST_CHECK_EQUAL(d->dataFiles().front()->fileName(), "test1.txt"); + BOOST_CHECK_NO_THROW(d->signatures().front()->validate()); +} +BOOST_AUTO_TEST_SUITE_END() + BOOST_AUTO_TEST_SUITE(ASiCSTestSuite) BOOST_AUTO_TEST_CASE(OpenValidASiCSContainer) {