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 000000000..4a1286a7d Binary files /dev/null and b/test/data/test-leading-slash-uri.asice differ 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) {