From 0c5d06cfc1ad4cd1c8bc19141b2ff2213730266c Mon Sep 17 00:00:00 2001 From: Gianmarco Pettinato Date: Fri, 24 Sep 2021 15:21:24 +0200 Subject: [PATCH] first working version --- cerificate_collection.json | 3294 +++++++++++++++++ package-lock.json | 119 +- package.json | 2 + rules.json | 1 + src/api/green/controller.ts | 16 +- src/api/green/index.ts | 2 +- src/api/green/middleware.ts | 1 - src/api/index.ts | 4 +- src/app.ts | 9 +- src/server.ts | 1 - .../dgcVerifier/CertificateDownloader.ts | 128 +- src/utils/dgcVerifier/RuleDownloader.ts | 53 +- src/utils/dgcVerifier/VaccineVerifier.ts | 129 + src/utils/dgcVerifier/Verifier.ts | 22 +- tsconfig.json | 2 +- 15 files changed, 3650 insertions(+), 133 deletions(-) create mode 100644 cerificate_collection.json create mode 100644 rules.json create mode 100644 src/utils/dgcVerifier/VaccineVerifier.ts diff --git a/cerificate_collection.json b/cerificate_collection.json new file mode 100644 index 0000000..8886f54 --- /dev/null +++ b/cerificate_collection.json @@ -0,0 +1,3294 @@ +{ + "certificates": { + "hHffSLS1AIU=": { + "serialNumber": "43ff62f3d371e5ccbacbce", + "subject": "C=AL, O=Ministria e Shendetesise dhe Mbrojtjes Sociale, OU=Production, CN=Ministria e Shendetesise dhe Mbrojtjes Sociale", + "issuer": "C=AL, O=NAIS, CN=NAIS Class 3 Certification Authority", + "notBefore": "2021-09-09T12:54:27.000Z", + "notAfter": "2022-09-09T12:54:27.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "ccfa29b7d745dc990aa2ffbeb94147aa3a0bd155", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAENFtonAma5ngnltfk78rprtlz8Cue6/t2XzvM/OR3wOn/1nD4QDWTP0KjGsFtiJ80Aed5gQ0JbMXUL8M2mQyQPw==" + }, + "Is2JtrOJhik=": { + "serialNumber": "0179ccf8be3b7e605c7b", + "subject": "C=AT, O=BMSGPK, 2.5.4.5=001001, CN=AT DGC DSC 1", + "issuer": "C=AT, O=BMSGPK, 2.5.4.5=001, CN=AT DGC CSCA 1", + "notBefore": "2021-06-02T13:45:24.000Z", + "notAfter": "2023-06-02T13:45:24.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "54e0dde0904f118b15b54d7a3da75049e29d3b63", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEYE24qIKmdcfRWUh2TqklkfZ6nyNBpX4VHeLMxfFl8rkQ8Zku0bcnH5OZXckkSt+tKs+FGZ9tKJ1VtNDmedlL6w==" + }, + "ODqaG8mnbro=": { + "serialNumber": "5dfefffd3a560d58", + "subject": "C=BE, O=eHealth - Belgium, CN=Belgium Covid19 DSC 01", + "issuer": "C=BE, O=eHealth - Belgium, CN=Belgium Covid19 Country Signing CA 01", + "notBefore": "2021-05-27T10:12:47.000Z", + "notAfter": "2023-05-27T10:12:47.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "2942d10907cf19f27aeb0dc391f35197c69dea87", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEU/f/KsmP3NasU/jZo7aulTrd9GHoznfnwWvX8xmHtK49EoobMAG7LhXnpLQ+aRwmmnSMcIWy8wPxM8QDMBUtyA==" + }, + "Jjql9rBrjHI=": { + "serialNumber": "457555fc6ab622b9fa83f36a841516f8af746d0a", + "subject": "C=BG, L=Sofia, O=Ministry of Health, OU=Health Information System, CN=DGC DSC 1", + "issuer": "C=BG, O=Ministry of Health, OU=Health Information System, CN=Bulgaria DGC CSCA 1", + "notBefore": "2021-05-28T12:41:51.000Z", + "notAfter": "2023-05-28T12:41:51.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "12ff5b304d29e7fcf91312ba22db5777a73a3d17", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmyxlsE2inBusapxY7LvRiPN0s+dsHnakaaa9M/5NDZZTljSZCzeK77fWO9MFRcGCXrTQaXNE3FhkV4+a92hRaw==" + }, + "Ll3NP03zOxY=": { + "serialNumber": "1479dce89e848ba6077c57b16f925eca", + "subject": "C=CH, ST=Bern, L=Köniz, 2.5.4.15=Government Entity, 2.5.4.97=NTRCH-CHE-467.023.568, O=Bundesamt für Gesundheit (BAG), OU=GE-0220-BAG, OU=Taskforce BAG Covid-19, CN=COVID-certificate-CH-21-05", + "issuer": "C=CH, 2.5.4.97=VATCH-CHE-221.032.573, O=Bundesamt fuer Informatik und Telekommunikation (BIT), OU=Swiss Government PKI, CN=Swiss Government Regulated CA 02", + "notBefore": "2021-05-20T10:04:31.000Z", + "notAfter": "2024-05-20T10:04:31.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "a572445c2c1d3ced7689963caf2c0e763778c024", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "RSASSA-PKCS1-v1_5", + "publicExponent": { + "0": 1, + "1": 0, + "2": 1 + }, + "modulusLength": 2048 + }, + "publicKeyPem": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtk/51stJXU48RqD2lh4IdsxFrjlJfmTCrLr3cQNEXkrEoI3OEV8NnotE1RjVmQrqLTT04oxpWlcbMolXtJBtu3rOiLNwQvyVEbj/xSc6KT84Tp7GBo1P/kkunY+Vmab6HUCV/oGZYmsdiUP/OnTPX6Wy6delDhnrgHIDti73/TSsG7Zl1V6km7+KIkjAkVCEDkkUD7uffd4G+GBZ0B9F1KOT0IcFQNvDm0zlROVoGFlmPS8DWlrLHuIdMbB281uiDjcN+kNUt7rUyyj6TFgX9WCgEB/5mQBMRaaXK1zeDTaNkmC2S7IWxhMQsMBXJyAdbD9AnQOZc6XRjBauO7gz0wIDAQAB" + }, + "7rZbUrXNlLk=": { + "serialNumber": "00f4b455b9b72f7313", + "subject": "C=CY, ST=Nicosia, L=Nicosia, O=Ministry of Health, OU=IT Department, CN=DSC_EUDCC_CY_01", + "issuer": "C=CY, ST=Nicosia, L=Nicosia, O=Ministry of Health, OU=IT Department, CN=CSCA_EUDCC_CY_01", + "notBefore": "2021-06-24T11:23:22.000Z", + "notAfter": "2023-06-14T11:23:22.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "df9ebc69cde56f18e7076f88f2e87f3dc62a43f3", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7S/R06707Glu721qJqvxIFzQ2LSbq9P2uu6nRKCBLsH5ryP3wXpggL6hGh080F462bGLTuI/hXrxEB2kR2Vjww==" + }, + "e4lH6I4iMIM=": { + "serialNumber": "00f09d424412274033", + "subject": "C=CZ, O=MZCR, CN=CZ DSC 1", + "issuer": "C=CZ, O=MZCR, CN=CZ DSC CSCA 1", + "notBefore": "2021-05-06T14:24:00.000Z", + "notAfter": "2023-05-06T14:24:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "734c0982d3b2d50ca981a11cf529eb70d89e1478", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUIzSq5MMYg2oez/kdjVH73ZPmI3lAQZTJsLOGqhJNcahsn+m5vFLeODWFM6/hXQGSL56sIjbKMrYa17lKNAKUw==" + }, + "fNf883wPIEg=": { + "serialNumber": "00f09d424412274034", + "subject": "C=CZ, O=MZCR, CN=CZ DSC 2", + "issuer": "C=CZ, O=MZCR, CN=CZ DSC CSCA 1", + "notBefore": "2021-06-10T10:06:18.000Z", + "notAfter": "2023-06-10T10:06:18.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "e924a64ffdf41d38ea14abbcb72c6606c13e2a1c", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8Dj2k2EY/UqgKsSGvIwPRhLiMa2kYm+y02Sam1DJusQJFOpbHanl9wM98U2xn9YrpPiKCXwnaSPieXyX7GskOg==" + }, + "dhSzPDr4G2M=": { + "serialNumber": "6860d165f4c66c2dfd388193f1b1b34c", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026164168, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-05-07T14:13:31.000Z", + "notAfter": "2023-05-11T14:13:31.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "c9b8c9821e0ac8a13c99f2f1246b97352d995905", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEsLa/zRhSxxsmrPE/RwPNKXGblvI4JrdqfPNYpuPn3TpkExb/vod11MuW7BismmErZcJC+oWuItW1UH+wcXHJcQ==" + }, + "L7XIA2gi2ps=": { + "serialNumber": "525fdae9d08941858defe86f0a640c8c", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026164195, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-05-07T14:15:32.000Z", + "notAfter": "2023-05-11T14:15:32.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "e809f118759b2186c075a4ed99637869c552788c", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEorGGRfEic2GL5o9XnITdq3nd9d7pWDvy6waSkDMI633+wvCluSBV3rWR/QkL3FdfpcL2FOCWaAR5/sXOihpfrw==" + }, + "nPKEYm3gXzU=": { + "serialNumber": "5e157ea8cca0ba07fd53a64cb4058eaf", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026317104, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-05-26T12:32:10.000Z", + "notAfter": "2023-05-30T12:32:10.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "67f2b3af864a6db672caca86ab888e4e63627976", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEJmki+G1pd9DNiLX/eT709p/ZeCd/mcjrmRLoTgP6nlDqJxUvZ0rQ64y/Lj2Vk5ehGHtuV/RmyuNXJYxFB58bdA==" + }, + "ZDoFfkn+yhY=": { + "serialNumber": "7008b073284b4ed5aa37bd58a485fec9", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026382773, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-03T10:38:57.000Z", + "notAfter": "2023-06-07T10:38:57.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "dd47d8dad5ace41f865da3a88510f073d4143d4f", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEHZM5AMBImcqdKPFM6P5xx0LmZxo81NcnuydrdPUQaaa0NhsRctuX4qB8YSd2pG12ilwSSfEcgju8I7AsFJSAOQ==" + }, + "3jqajzfHpKE=": { + "serialNumber": "745ea163cb3826d7f2077051eae7fda5", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026382791, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-03T10:40:44.000Z", + "notAfter": "2023-06-07T10:40:44.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "31d0f1ee18fc89b0c1bff071df4d54a89324f714", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8nZrLqMlw5EvdfvJXgxb2rXj9OBT2UWBqAFLeCoQXuY+YOZJpUtL4wFQHMGPbvyoWvvcfWtrz3ZXHwaaigQG/A==" + }, + "OKpEjMo/2MY=": { + "serialNumber": "7ddd10f5909b58877fa1e82d6f89b763", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026382843, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-03T10:43:55.000Z", + "notAfter": "2023-06-07T10:43:55.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "90d1a27416378f72795e826e5533532cc65245af", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUCSPQOg4hIgEJzD2PHFjccnQzSQIvYs+gbBuJqHxv7tCAEpyEj5XIfjjfMjNxA+so+AdZyEfwszhKr2A1/nVSQ==" + }, + "2BGoyFIyYPs=": { + "serialNumber": "508a9290c6effb4c9bc852c1e8dce586", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026382898, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-03T10:46:22.000Z", + "notAfter": "2023-06-07T10:46:22.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "421061fe4f4ffbd4feb323d488138dcf4b27539f", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEtGEETBc2arnjxxBWO3aDW+rwFgwmhqPbxhaUuOEC6kkd3GPhmXPFYKtmFM4IQDj1Cfqu2bIHa6RqF9uEMbtxwQ==" + }, + "MxhfdcoHinc=": { + "serialNumber": "6dcb6f979b85745c9fc99959e1ba3772", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026382913, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-03T10:48:03.000Z", + "notAfter": "2023-06-07T10:48:03.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "0999bb46abe050ff9246b62643ee952f655fa492", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEKPuGAJsDLPU7vw4aDg52nFxuxz3AsJtWUmtsY7tQegwCVfll+e5sQJu6y5CZnOD+gKdMKfnjuB719z/tF9qB9g==" + }, + "i5SVuCsR5TA=": { + "serialNumber": "5ca9b03271c530079d09eac1c238fc10", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026382931, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-03T10:49:49.000Z", + "notAfter": "2023-06-07T10:49:49.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "b8ef2b0ee1474b4eca1c627c765ec1f350dc9d70", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5D4cdY3G91kHagLyAGon0ufC2jqzQ17V1wjvYHOLxZSY1evmQVhovIVUS9AU5Z73aeW++2ZyNUFg7L/9Zk1E7g==" + }, + "yWCRdph8XJs=": { + "serialNumber": "4eb352631c648246247422d4c8df50b9", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026382968, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-03T10:52:53.000Z", + "notAfter": "2023-06-07T10:52:53.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "03cee78a073cd993e5f0527b2dd31554f4c2c24f", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgMhpOktfDD7Vn7Wm+BlHabFbpOs2UmCVrtIpcOFpIlr8+2wHP5/VSUZslExSo284fpwuoJ5eKcjDuvlCPjZNhQ==" + }, + "6FNkACSMLEc=": { + "serialNumber": "624d7e049e131705599f55d44142f12c", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026382995, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-03T10:54:30.000Z", + "notAfter": "2023-06-07T10:54:30.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "ac99996bd3feb75d7d7cae339668089011cf70f2", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8xghqNrE21susvTQHV9fwN3RWhBIdCYBu3laCz66NasqyquT47PJXuOifSUiNY2/qOyDuu0Ae8MKIHeUmN5wdA==" + }, + "CvktK3hdjeY=": { + "serialNumber": "6e07567545c18e24e2f6a775a3f8a9bf", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026383019, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-03T10:56:04.000Z", + "notAfter": "2023-06-07T10:56:04.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "d1cd37fcba986a866ade94a5cc36b705b94148cc", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuCgNX5VUmp7/lN7/UDF5kRDz7qvWnpgFOKwv1AxJXbSvwJj5ADOP9wGAsocoSJtPr3LbjbmqAqndrgr3831+tg==" + }, + "7XLhQx1KXdQ=": { + "serialNumber": "4164bee1f2c2bdfc712e1210b765b358", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026383046, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-03T10:57:42.000Z", + "notAfter": "2023-06-07T10:57:42.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "647c41d45f7d00c81fa8743b5fef22d1dec7288c", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEkkxNdS0EZvjP8j17j2k92vHZpX3qSNMDbCqBYPvmqzj1jnNEqsAZSp8uppwoShgmQPdUSmC5jvSaI0PiIRUJhg==" + }, + "kjEx2H7huNE=": { + "serialNumber": "605339e888d8c007f334fcf86c77beef", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026383107, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-03T11:01:08.000Z", + "notAfter": "2023-06-07T11:01:08.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "9103cd9b82776974e8052c3717c37b5699ed00a9", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEtLZ1N2Y7UQHgRO3yKGyRTsJWdYFGDld5kbglFGHrMvZQwa5XoBclH9xTrP3dXcTsgjnml7Hx5YZOnGHhJMrenw==" + }, + "izUDZjGtHWY=": { + "serialNumber": "6adc00eb9c92cee27ae230a37262fc76", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026383125, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-03T11:03:07.000Z", + "notAfter": "2023-06-07T11:03:07.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "f4623e8fe5aca90a7fa3e36d25945818c6ad5abb", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEpobykjScOX2uy+5C/BYBXDRcVUVOBDWLUgUaIhP2q0GoF8FBBDYBjx1peWhf4Nd+rtjBivr5WDcFmjMVn+FVzg==" + }, + "3LCRmucB9kU=": { + "serialNumber": "6589adda892bc72fe31d0dc226dae5bd", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026413213, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T09:49:05.000Z", + "notAfter": "2023-06-11T09:49:05.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "b4778b00c65e121af7573d66e4ba604b9db12699", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEtgz2ifmTj/vZbBaz6xlNCdQlw4FQU7v3dUrJYQEigk4Lz8dY1c3pGzYO33TjrgN/Qn+yHaYMHl6+06Gk7AuW6w==" + }, + "DusseXrzqO8=": { + "serialNumber": "749555e7ab55fa3b2ab3f482cae94500", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026413231, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T09:50:12.000Z", + "notAfter": "2023-06-11T09:50:12.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "63bdc1dec1ac603b191f0e317243e40c6929398c", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExfciFuh1jL3LBPzaNAVmmVTL87eJ6wVctSg393nUcXxVL1v5vCgp6jWlRdJglVJj8jRG0TfF3OLjDUHAPn2rAw==" + }, + "juskqrNQf6k=": { + "serialNumber": "4059d6ce0d24905d7735417717aa8bc4", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026413286, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T09:52:01.000Z", + "notAfter": "2023-06-11T09:52:01.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "5af56e989d8329d041f6c66510b191c484a09134", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgxLpjMDX1/tMRghYLQKMI0nK4UkZuK9pnAAJTC7BeQUaHYFp4pJkC8z/VHcW74CpwTeTRITzs4MZflkN/WHtqQ==" + }, + "NCdyt3s+cak=": { + "serialNumber": "64eb7efaaf9642d2e5f471e3ae831f27", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026413347, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T09:53:12.000Z", + "notAfter": "2023-06-11T09:53:12.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "6213edcdbefc782d7e30aa0a91279f0c8dadee31", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEszk+l0BVoDOXZg5SKeeNbLUAggqLKB2a3NlMXWfxfdcdHsPqqlKWcFTZBzD3/kIyxJi5rlxk1Uk2JsFNEbjt7w==" + }, + "Uj77p+qIQNs=": { + "serialNumber": "4a6cd722eb6987adafa1930a7f4f3470", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026413417, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T09:54:34.000Z", + "notAfter": "2023-06-11T09:54:34.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "5fde53a4c1c2d81d50f19b9e8713577fa7a4d9a3", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEopaKkUUE4nCgNpRBE9ugmShuJd907aOocVvFvxPLxiJ5qqQ2pq/GVsq5Vf/0V/b1V3rAoKO8bMvxP4jkTWTxqQ==" + }, + "1+da8dKEjlE=": { + "serialNumber": "5dd4a85106bc78cc7b557d33055e6766", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026413462, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T09:55:47.000Z", + "notAfter": "2023-06-11T09:55:47.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "5e711a756657d70728117f43051acf9d620f554f", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqD56CIMWer5HDRhCpUrq5lZ6F8WrFPy/IDwjgb44oE2BELk1xBbjXvz7kSPpf3jp48wPI7WWLcx/V5K1A6obNA==" + }, + "R7q7yd90ZPU=": { + "serialNumber": "681072ed7781d6bbd991951a3189450f", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026413541, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T09:57:23.000Z", + "notAfter": "2023-06-11T09:57:23.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "d82a5770de1f45ca5d68e609f324b01c5704edc1", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/eGWuKcNV/od7Eh4EJuiqBPv+0yP4q+qzhOlNFdkzuuWy6l+hhjVHxdfxp4XDVvOUV2D9wff81/tNfBuc4pCmA==" + }, + "8AnF/hcilSo=": { + "serialNumber": "6dac03986229b8dc9ec062ab6c334df0", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026413569, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T09:58:39.000Z", + "notAfter": "2023-06-11T09:58:39.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "29a602a4f8846f945a862aa4b0da67c29ef97a03", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEOl2NFM+2gkakrrAa7g+F7KOXRziS4ydbxiNbm3XTu+L9LP+oSKMLOeJOBcjJA3RqrqAiWfoMriWGd0LRYM6TWQ==" + }, + "5xtSr6KkAGA=": { + "serialNumber": "70997fd6365945b56c08c903c62c587a", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026413639, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T10:00:17.000Z", + "notAfter": "2023-06-11T10:00:17.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "82708454d1002535680d9cf801d38676ea01116d", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzma5iz5ZBIh1KDZhj9fSnqJoKK9weOGB/91w6FpdAUjFEKGDphj/MdGRfVro/gSyHRhpaQghZJXRDECOuSAzqQ==" + }, + "XuCERkHu8kY=": { + "serialNumber": "50258f745a22926628f61fce073cfc73", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026413693, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T10:02:08.000Z", + "notAfter": "2023-06-11T10:02:08.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "91a3debc04c141861ca12341715dd362568e90f2", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyV/EBSORniEE7SMMNmvSWT3dOAuDuviDHFv7rvnrcZ2wyfQkIjyYPkrtVrGwiNdwOcbHKreB2eW6li/+fDQPEA==" + }, + "TpQIkAHAym4=": { + "serialNumber": "76dc20fc0bec41141835e99bcf17444d", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026413860, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T10:15:11.000Z", + "notAfter": "2023-06-11T10:15:11.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "09b920d29a0602d6f09f2d6176e26594533a3a39", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEs77Dr92zb+HOBL9gdfCWOwkna+9D3Kdq0HgUqpVByi7kqykRPAFKPZBA771qyoBy0uHFhdYIzNAPzdHj7KrPsA==" + }, + "Yr8a8Rd+zqI=": { + "serialNumber": "5bd061545f4690c496e6d11dea87e842", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026413897, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T10:16:16.000Z", + "notAfter": "2023-06-11T10:16:16.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "74035d26a2e21c3437cf425e38f896c09ea9b0ff", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5eOmRsTsPlyUVzKnWK3xYlY04+DOffgg07nWx4FTa4mouXQ9nfCxmMHgpuZv2RxbVSzYzewjcmKaknNEYDdCdQ==" + }, + "AQCGDydsS1Q=": { + "serialNumber": "657125890e390c38604289ef52291ce7", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026413994, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T10:21:15.000Z", + "notAfter": "2023-06-11T10:21:15.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "dbeac2dfd9b41170737abd201e0abc83df57e5b4", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEM7zYPRk1r4viA/oG6BxLec1shhb0JoDGjLAUuPxmGSMw+aCQZUcY5MtUqnVD3x//kviuFZDumf65i0V1o7Gsew==" + }, + "3lrBUHc4iQE=": { + "serialNumber": "4ae855ddc2aabd570672ab73cfa2051e", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026414054, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T10:22:49.000Z", + "notAfter": "2023-06-11T10:22:49.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "4115b25e160af776a91d814ab87b19795856c8de", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE71N2pH6YyC6gfUHwiEJDzIxwMIW/Hs+Cgn/gPQbZAkFcyX/LTE2j2gZD8hLs55TErTTKokvHkrEOWtHYkIDhyQ==" + }, + "bKmas9wa5tc=": { + "serialNumber": "7976a0c0cc9537f06931b21a6c9d2c69", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026414081, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T10:23:58.000Z", + "notAfter": "2023-06-11T10:23:58.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "54d9559fe7007c723548c36ab1b1d4d5a9001f8b", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEaOhuajeY34pPu/12SnuMv2qlG8ErMOj7s0eAEM2679YVzsiZWLIp1S1jNWsoIJJTEiLWUtj1mqCsMOR3gA7CBA==" + }, + "nTrG8glLUls=": { + "serialNumber": "54e494263001a28a6279f00b568f1583", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026414115, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T10:25:38.000Z", + "notAfter": "2023-06-11T10:25:38.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "715f753e80c2b9aa47fd1a642cdb8e5a862aa52e", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEd+grPnJ58prZvOeLC3vi9P2mnqlvvGNfsbT0HmxAVHAoNB73PT149IhGWhNZFSMFRel7vu8vi4wPoaSuIjraPw==" + }, + "vjm0I2ATJ+Y=": { + "serialNumber": "40848a1f072923cc820c6a4a64865ab3", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026414133, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T10:26:34.000Z", + "notAfter": "2023-06-11T10:26:34.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "c2793d76bdc7a3d2cfe55784b5754954f07a9532", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE2TqSv2wB9nB0Ev3u5VmckxWzq/L0fvl1HVI3ZBXCF+7k55bo0zUABUPBz6/e1PaDxDCIS8+NybrbpUT3w5D3Iw==" + }, + "npo0ZWgdQSY=": { + "serialNumber": "445ec3fd6b18a38cc07c082eb4b7a493", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026414160, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T10:27:27.000Z", + "notAfter": "2023-06-11T10:27:27.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "8274a41ba984c721d203bd517f2a236658d8e78d", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPdriVdFsidKrE0nr7S+75iO7+8LOtzFp99++4BLqKKMKn/mAXvgkInEN5xqsifTYFWk9KmLcUGbD9dtwQlaA+w==" + }, + "sYXcYixrOGA=": { + "serialNumber": "7694bd366b2a4e3f5839e70c3d9a232c", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026414197, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T10:29:17.000Z", + "notAfter": "2023-06-11T10:29:17.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "e50740b47037b1bdd69773629ac170edf656a7c2", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE40rFr8baZEDNvONEE+Rxf5ePnZLLmqR+5Uwx/S5I2ylMijZyZ4c2kD3OyTHlfTNa1mS09zXnXNJKqZyqi3GGQw==" + }, + "IZftFLRmKGY=": { + "serialNumber": "7e04ad7315f46d947c1be53dbbd88786", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026414212, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-07T10:30:18.000Z", + "notAfter": "2023-06-11T10:30:18.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "fe1e0cb19a7d087e6b63008b90ec14ad112a2b23", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyxW76RQrbDUSOEHxYksWk5CaGGygxDJJ7A9jRiop+FlpwmPReFTmJNVRMCjE56zKy1oxdi4KXCHI/yJIuw4zWw==" + }, + "r9YkEJZgi9k=": { + "serialNumber": "6b711fa4827111059b14a0014d3a18c7", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026460008, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-11T14:49:10.000Z", + "notAfter": "2023-06-15T14:49:10.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "7f9ed6182d285cee4d9c81b1265fc1657e9b9841", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7f4SNNst1BMsb6Ub0yVCz01aDWB9I2/ajVbLyJpTr2pKwSocQpiM0mcy9XX+dMYYlUaQVBOmtoE//fnw8w2vDA==" + }, + "XkVWZqUeeFc=": { + "serialNumber": "5082a49fd74627e16fc368ae114e2d7a", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026460026, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-11T14:50:21.000Z", + "notAfter": "2023-06-15T14:50:21.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "ed36e4804c7547df21080b70bde7e234213690c4", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEh934IiMCsXp977pDeG7Wi11S+uGGoem6nSNbtCILcST4+/FqGlLOBJvIZPSh3hTHx2V7V+3Lzqi6R2dahOno/g==" + }, + "M8bcnysCMj4=": { + "serialNumber": "4af206c3ef2ac868ae1013922b8833e7", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026460044, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-11T14:51:25.000Z", + "notAfter": "2023-06-15T14:51:25.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "8d6f6e55ec6b29560eb1d2f6b053bbb3242fbb1e", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqXPIlxahww0kgegwTgRNQWpChqH2PfXelyd1D77uo8dy08tlDhsE7zpyzWXfZTUAMxPtgw+JTqiaL1FQtvdkyA==" + }, + "2JelGO/ymxQ=": { + "serialNumber": "493fc36699e1a98473e31ae028940e26", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026460071, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-11T14:52:44.000Z", + "notAfter": "2023-06-15T14:52:44.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "d52d3bc6f1e5e5e4a8afe1f06b5d912bdc764605", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEeL12fn7+nUNW+9T9zJLaiZF18rfzL1I735fT+3zuKryR3K2oMIMBDFbrrLVva3UeOEZaz+sUwUKWHMg2HgQttg==" + }, + "3oYtiEZ9wp4=": { + "serialNumber": "51ed9318252eb13e77a1200e10b0be27", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026460099, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-11T14:53:43.000Z", + "notAfter": "2023-06-15T14:53:43.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "7a5a14be6c04bab21f0ba6bd05d794adafc72561", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5sqOpW4x66Hmcposox406LFRWyGIvH2CA+Di7pgvWYIJLX7soTE36YKx53vPYRUhKtzexJ7nI90MtClg6NsTAw==" + }, + "TGjTR+Re+yk=": { + "serialNumber": "7dcb45cc3ba525091a5d7b1ac097423a", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026460123, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-11T14:54:54.000Z", + "notAfter": "2023-06-15T14:54:54.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "93f766305eebb1570177570aadea2c52f034d52d", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEh4UMl8PsQUsu36Hq7xK+dyGWGrELxsfzVOny20ZnkHhyBYxBUIGoHEYl70bpzjFBJN4WLGtilZD/0aLWE/+ykw==" + }, + "9v3FozjKAUo=": { + "serialNumber": "7ad64aa53715ef0d7fcc7f1d0d4dec04", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026523255, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-18T10:12:55.000Z", + "notAfter": "2023-06-22T10:12:55.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "9c904cd1251ce4f758570c4b5185b1dc8f883340", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzIzHRqk76vDGIUAj3dIo3UVev41tak5P5oxO+zaOlsKnxUNbo9yqIcpOo7stI8WLrif4RRaiZoQ0tvahSHH2iw==" + }, + "wb/2450PPrc=": { + "serialNumber": "55bd659b3d0ce6629df9b90145605501", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026571119, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-24T13:12:24.000Z", + "notAfter": "2023-06-28T13:12:24.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "52b8006856f40facc30443e67d663163db089380", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElGYxcioPZFzAfJHtsB07FzUDpJlc6C18W2kcnCGEE1ujahisK6ZvE+UoSGh4ABGNQOX8RypMp4t8bzj7VAqI7w==" + }, + "0L7AaIwu+EY=": { + "serialNumber": "7535ddbdff223089ac56a0dff884d014", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026571146, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-24T13:13:27.000Z", + "notAfter": "2023-06-28T13:13:27.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "9af448b7abe9812f19cec7c2b0c8c31942f8016c", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUdPPsk9xzY1vM1zdjgvHDsRCST55Y9SJBJUXI5uqGb6ckpT7xQFGbm+WGQuFJ9E0w3Zyyqb9P/bsMJQmJkrpkg==" + }, + "6VdOPLF8/Fg=": { + "serialNumber": "5db96809c8dff088ba504a1035afc95a", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026571164, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-24T13:14:28.000Z", + "notAfter": "2023-06-28T13:14:28.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "fbc3e9a75a55c7576a535a16a635f7d1e4b7c47c", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEHrXK9pJSpMrEB4xUrXTTnb7RakIRzDtNh6ugnjfV513NFsu5rKopJYYDOk/Bfy5MyNug6nD3kSSUUy5yePrgmA==" + }, + "rKMDA66RiLE=": { + "serialNumber": "44305380a6a00ffd9210cd8b385cc08e", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026571191, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-24T13:15:37.000Z", + "notAfter": "2023-06-28T13:15:37.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "22d62268e1c8b2c9de1409219ab8f843578be280", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEbQZPoqfjpTx8m/wAZZWk3uoDxzfpiISsNSuZg/+9VN/cSefrEHFRvQwM2AjN6vOjhzVMdjZ14MSRJUMJEu85Lw==" + }, + "vq08l/LTxhk=": { + "serialNumber": "682acaa7fa227e4655ec03c4ff04fab7", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026571243, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-24T13:18:05.000Z", + "notAfter": "2023-06-28T13:18:05.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "93fdc95c795bbad26be0f6182225b8ec9686fdc6", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDRVIqu7uo4HOgXlXyxYBl2L1arxxvDfwfgnYHjgVKQpFEj+hV9YEjSECJS+YrhGr5RXZU7eRzKvfKtRI1POaww==" + }, + "c1XrnEBoj/c=": { + "serialNumber": "47c5d7a1d8655095b092c0977b5f8550", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026571270, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-24T13:19:50.000Z", + "notAfter": "2023-06-28T13:19:50.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "6d868da970a89e26e57f6c5e76bf6ab23ab52db8", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUtMktlZKpvOfwhumIvsvpKMWE1LyMq32RkRCbVM5TBBxHsCUYdXSjbqPK3cZ8tYkCkcYlyluKbQO++HaSsGjSQ==" + }, + "wtYpyAmNmdk=": { + "serialNumber": "500e9b1be369cc8b4252fdf77078ef40", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026571298, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-24T13:21:05.000Z", + "notAfter": "2023-06-28T13:21:05.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "6be9641588ea6989f4e0fadaf3e8417e403a36e6", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6/QS0f7r433yqdq7XKh3OOKhOEigg+VVixYEToozbg9QgAqADIZYDe3WEQnO8u8fqdzd2ouVZo54/Gc13gszYA==" + }, + "nHmZ5K96UY4=": { + "serialNumber": "689d370c03202b843f93a9a5c383fde6", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026571313, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-24T13:22:00.000Z", + "notAfter": "2023-06-28T13:22:00.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "7f20e8639c8a1fb2255350a6c1372076c88eeec8", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEx4HHLyxeH1wp/aPCCwyRxWVEcfUALP66kgwanudG4b8upvGFMsVXpzg0ohEParVa912A9UBuCkjDM6jFAsgZIQ==" + }, + "rXP9L7xddL8=": { + "serialNumber": "6cd0e382c504ff55702eb09706cd32fa", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026571331, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-24T13:23:17.000Z", + "notAfter": "2023-06-28T13:23:17.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "f85ce65f3e3e597281f452a3b174099e8cc2a04a", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE+fBKs9tgAlGoiBIglL4JDLpguDzBcXqCuIulrUkBy/wZrJtv7fsirU/YCvcn70rPzMCloqePEoDPCf1wWX8Dpw==" + }, + "9IZVOkJRZPQ=": { + "serialNumber": "777a438c90c11791fd73b9da353d2ede", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM026571377, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-06-24T13:24:35.000Z", + "notAfter": "2023-06-28T13:24:35.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "8dffc67ff04964d79b71f5ff6d655fc81b07a0b4", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE65QJlG4NQ1UKM3/5Yf6n9u430S0gtEarOF4e+WrILwUamksO2zJfSgAwXJV2ZzzenNRml1iFffdf4V7yxzgLUw==" + }, + "72XVTQ2A9Jw=": { + "serialNumber": "51292b760f078c1856afab4d3232d3b0", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM027614703, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-09-22T07:12:07.000Z", + "notAfter": "2023-09-26T07:12:07.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "e47c9f7775f32a29db09e8052bec295607d8fea2", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErm7fxPeto31KuUPtQl6VxVchANLA6NTLFaFJ5bupx2WsBsICmk32sqx46/ZCHCmiFqGyfYv9IxatTrP233n5zw==" + }, + "hWoyHrtJs+E=": { + "serialNumber": "7268b482c23258cec16813653daf7d67", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM027614758, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-09-22T07:15:22.000Z", + "notAfter": "2023-09-26T07:15:22.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "0f0191d60dccd5022852bd91637adca080f23a75", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExfzglJTFBrKFErvCRkqtHq0U7O7SmxzRntsiUENJFzkpxD0rHs+0H6Qb23WUiaDe368iOrWfNk03uOEjviJurg==" + }, + "7byt9scureM=": { + "serialNumber": "43c1fa549aab83504619ecaeb7e775e3", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM027614776, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-09-22T07:17:42.000Z", + "notAfter": "2023-09-26T07:17:42.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "7c8c1738acb39afeb22be8596af9970c2d99b809", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZftKRdrOhX1qx8KzPyrbXB/V8TYi2ZAsEwcr5gkoSkiPWyN+LH0BaRwG6HbqfjpqgdFztwj6PIRisTIQ6LYXKQ==" + }, + "EDSWY8Hnul4=": { + "serialNumber": "751fd2b1cf5c86c8c548d981fa213968", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM027614837, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-09-22T07:19:32.000Z", + "notAfter": "2023-09-26T07:19:32.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "952dc25b42299e539fbd4128d154bd393a71c5be", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6JUSmYQDMdlfXO6t5UIh71Hhib6DZ7VFVaRHqIiSem6blCKAJ9bSQoEJDjl+zrXVBbnTZYJAtFXt+VBqIzq51A==" + }, + "IKMstf8yj/4=": { + "serialNumber": "58efc10d30c33e9d60c741651a24347e", + "subject": "C=DE, O=Robert Koch-Institut, OU=Elektronischer Impfnachweis, CN=Robert Koch-Institut, L=Berlin, 2.5.4.17=13353, 2.5.4.9=Nordufer 20, 2.5.4.97=DT:DE-3023531445, 2.5.4.5=CSM027614916, ST=Berlin", + "issuer": "C=DE, O=D-Trust GmbH, CN=D-TRUST CA 2-2 2019, 2.5.4.97=NTRDE-HRB74346", + "notBefore": "2021-09-22T07:21:10.000Z", + "notAfter": "2023-09-26T07:21:10.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "c5c7f9703c4cbf4d494b7f0fd208b0a6181230a6", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAESb7iWoF0mDYKwlP2EkoD9oJdt0Ew3tomFYMPK51gX10VgQPMGAUhwigTTGrSJsT865r6sshKSy20xzsrMZ3buQ==" + }, + "NAyCKly+hCg=": { + "serialNumber": "01", + "subject": "C=DK, O=The Danish Health Data Authority, OU=The Danish Health Data Authority, CN=PROD_DSC_DGC_DK_01, E=kontakt@sundhedsdata.dk", + "issuer": "C=DK, O=The Danish Health Data Authority, OU=The Danish Health Data Authority, CN=PROD_CSCA_DGC_DK_01, E=kontakt@sundhedsdata.dk", + "notBefore": "2021-05-19T09:47:25.000Z", + "notAfter": "2023-05-20T09:47:25.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "a6bbf6b1a1aca900a7c0b99e6e831272dff23e9e", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEBmdgY/VORsecXxY/0xNNOzoJNRaVnMMmHs5jiXrGvaDOy1jzDUOyvR++Jxgf0+YuGyp5/UAY0QIh75b+JQnlHA==" + }, + "GuQPQRxbMsU=": { + "serialNumber": "03c228cf2be4325160b0efec53e4e7af", + "subject": "C=ES, O=EUSKO JAURLARITZA - GOBIERNO VASCO, OU=SELLO ELECTRONICO, 2.5.4.97=VATES-S4833001C, CN=DIRECCIÓN DE SALUD PÚBLICA Y ADICCIONES", + "issuer": "C=ES, O=IZENPE S.A., OU=Peer, CN=iCA Izenpe", + "notBefore": "2021-05-28T13:28:12.000Z", + "notAfter": "2024-05-28T13:28:12.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "0e8b95af3f5b0e4f9fe59dbadb14421366a57f9e", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEKMpkfLlexSZAyOl3FjSomlb4P8POpQb7PYz1bg8uca+S/l/hpPiW0U2Cx5gSVvodEJOJdcbMMCgRoGHHdwD+1Q==" + }, + "BKBFhNFXWAU=": { + "serialNumber": "1e12fc91", + "subject": "C=FI, ST=Finland, L=Helsinki, O=Kansanelakelaitos, OU=Kanta, 2.5.4.5=1.2.246.556.12.21.2, CN=Todistuspalvelu", + "issuer": "C=FI, O=Vaestorekisterikeskus CA, OU=Sosiaali- ja terveydenhuollon palveluvarmenteet, CN=VRK CA for Social Welfare and Health Care Service Providers", + "notBefore": "2021-06-18T11:00:00.000Z", + "notAfter": "2023-06-18T20:59:59.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "81cff4b9be13a3c0e0f05a8d08ac6a92fd065ed4", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEepKcLfnTZIej9gSNJVmR8sRYMMgztnG9h0ZGWx7D1X1g32V/GtJc55HkoH+vqkbkhKJnvDBJ1JdsbkKKmBJb2Q==" + }, + "e+bFdywyJQE=": { + "serialNumber": "6cdb458794b234d5b7e938f79521ac559d72cc99", + "subject": "C=FR, O=APHP, OU=26750045200011, CN=DSC_FR_001", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-06-10T22:00:00.000Z", + "notAfter": "2023-06-10T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "9179c9bbfac17e702efe93c1847a1aa4197c17ad", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAERuPqA8PXwAZlb3MnIn+3UajY2JjRkt4v3rI4nUuQjh23nZZ/3rDqaJ8Jbow+pKFgdWA51sZ6pQIyIX76wYfrCg==" + }, + "eQOY6BDp+vM=": { + "serialNumber": "429a2b62ff0cb77ce2475afa1b8b39e07cd15697", + "subject": "C=FR, O=APHP, OU=26750045200011, CN=DSC_FR_002", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-06-10T22:00:00.000Z", + "notAfter": "2023-06-10T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "34594cad445873d477fba2034a67d8d0af01cb78", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEx2sQ7slwQ+IQrSLZwgIfafTa2g144vB8OXnI5WU67BHfTazsPcfNbWUj5uq/fFB5EEblaSEpRA5YwhyfAEIt4g==" + }, + "pe6raiG2dWE=": { + "serialNumber": "69a64d668892eeea7891c2afa20af35bc8b05db2", + "subject": "C=FR, O=APHP, OU=26750045200011, CN=DSC_FR_003", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-09-10T22:00:00.000Z", + "notAfter": "2023-09-10T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "86c7500af13b85069303fe4078e7d4ac9ccbfa85", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEYhbzpGUwWZsuCEA81oAyfP87n5PwahJ99Q7M7t8AyNn7QVv30mX+GUTN3aWb91903UvjfwRlCJQiC7pLchjkzA==" + }, + "rLMiGt6uB3U=": { + "serialNumber": "23124c8cdc3776bf3c11c204fa13484928889a4c", + "subject": "C=FR, O=APHP, OU=26750045200011, CN=DSC_FR_004", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-09-10T22:00:00.000Z", + "notAfter": "2023-09-10T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "2c823e09c92b5f5d15b5deafee0696658e3d61ad", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzL6Rlb4x8PsN6Knac1E+85lkIce+1Zn53WIrFVIAAaXOd4P6Zpvd+MLOLzdJbxhMPF4851s9qxXzMBIMevSLMA==" + }, + "fGLuvg6n5wk=": { + "serialNumber": "3563bbfbfda59864064f571ea79a5eb5fb0e1687", + "subject": "C=FR, O=CNAM, OU=180035024, CN=DSC_FR_019", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-06-14T22:00:00.000Z", + "notAfter": "2023-06-14T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "2d53de4c89a1f5a5a901312e8ffe7e1c5573a852", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEImIFaugzwB5f/VyfQ3KTfTSoukwAPVSgHZWrtrc2j4FuAUpw/ObRnA9pBjN/HdUc1zcl9SO/vsCEnHkXhxjz4Q==" + }, + "IMgNr10pfPQ=": { + "serialNumber": "63b6421d1fca3373eeef3931197edaeabdb1593f", + "subject": "C=FR, O=CNAM, OU=180035024, CN=DSC_FR_020", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-07-14T22:00:00.000Z", + "notAfter": "2023-07-14T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "f14cc6f6d27428a62e77cc16a58dc63b94e0b3cf", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAECmvd9b56sHucHEi7GBjqapZy6IAZ4MFIFg7Acr85jXp/oBSNzFBP9CnkswLR5vwmr836uS9JL5sddzLT4K4+5A==" + }, + "mo/w8S8rZ0Q=": { + "serialNumber": "3d4026acdf70067f9e56e1ea329f1bfdb95f3cf3", + "subject": "C=FR, O=CNAM, OU=180035024, CN=DSC_FR_021", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-08-14T22:00:00.000Z", + "notAfter": "2023-08-14T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "1a5732eab530f83af800736777e66e45321091b1", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1PApTQ/nFA6JcYUuo7GgP+gPSKf98BQh88IKHOt/yNS8ZrjxjL+lVY6EH4yyQdbQZGqS9d2Se5dxNwx5C3jxkA==" + }, + "eUVY16rD2Kc=": { + "serialNumber": "1c7b9a57ad099b18f4fd269f6f8e0719ece9d94f", + "subject": "C=FR, O=CNAM, OU=180035024, CN=DSC_FR_022", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-09-14T22:00:00.000Z", + "notAfter": "2023-09-14T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "5170877a8c00821b2359a8cea846ae85b6ceee4c", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEx2HtKUYnSxJw/bgED+2LJQMAIjyA+I2plnVS50JCXaIALKstac37wB1lUvasfdvbE+nNbCvMkGPdMjLluMfT3g==" + }, + "53FOjX/4aJs=": { + "serialNumber": "6e3a243ea72c2bd04f6bd51d59ec497b212a8a5a", + "subject": "C=FR, O=CNAM, OU=180035024, CN=DSC_FR_023", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-10-14T22:00:00.000Z", + "notAfter": "2023-10-14T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "be552cc91a5fe934268b9db169db6349311ad693", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgu/WJBn1Q+RCOfQx3NLT5oIGUCHsqSRXuu7EZsqfqZN5PvHk6/E++88wvj2fMrfmAptk5tVld2xBH4P4tRs8JQ==" + }, + "Qe8D6lfZ5/Y=": { + "serialNumber": "4064faea2d63ef661df825d567181a24584b18a7", + "subject": "C=FR, O=CNAM, OU=180035024, CN=DSC_FR_024", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-11-14T23:00:00.000Z", + "notAfter": "2023-11-14T23:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "44373e80e9ba0ca494ec6c5bdce1708a905087b7", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7B4Il+aYBZk8hs1MI28H4Z4GF2HZCXgX/DSTxvUoCMVze4xp449WJLblSCKXreGdiT0Mycgevo4rWYVGbwtUxg==" + }, + "G3jDFQ1oK0Q=": { + "serialNumber": "104e6512e82c92c28164ef1915d764b41db31198", + "subject": "C=FR, O=CNAM, OU=180035024, CN=DSC_FR_025", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-06-14T22:00:00.000Z", + "notAfter": "2023-06-14T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "f2ad3bd263944931097d9f289b1ca14844dfeabf", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEGSSdtJPZeYWU3QrR2cR4M2Cv6sYKuY870qkBKKREtlSel4Cxpfm8EnPZ+OPVVDXxArWdYR0MoLK6Ox9aEIkmw==" + }, + "lrxgMs2Duac=": { + "serialNumber": "76100c1f3266b5f23d282d87799bad789f3ea379", + "subject": "C=FR, O=DGS, OU=120036017, CN=DSC_FR_012", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-06-10T22:00:00.000Z", + "notAfter": "2023-06-10T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "ae9cea5f229ae6f291b3c071639d622ec5ae49f5", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7jO1wt+KJfoKi9O5dydU++nfENeQWdVACVEwAdquyYT6CEWfo1xG1tUcMhKII77XJbGK+H2nyAuCsJ0gTfT5lQ==" + }, + "CvmI4xOoMj4=": { + "serialNumber": "76fc0f8081b1c64dc678b0454a4d11b8a3f53671", + "subject": "C=FR, O=DGS, OU=120036017, CN=DSC_FR_013", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-07-01T22:00:00.000Z", + "notAfter": "2023-07-01T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "c790f64a6988e7db7857b83427788297ea3c1f48", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEsNCxAUi67vlLEBaGIqAk259l+dk6/Yw7hZL4JFqT6M/mBXIc7P+mZtK903KXiVZelboECOOoTG/+2nVEFhaZuA==" + }, + "YDAy+yvD5lU=": { + "serialNumber": "2d2416a6160ffffce4d49426a6ff787481fa7264", + "subject": "C=FR, O=DGS, OU=120036017, CN=DSC_FR_014", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-07-22T22:00:00.000Z", + "notAfter": "2023-07-22T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "3833a70f14e45b10c83d5cdd15bfd2ee77a18c8e", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEbGQa07BM7QEDU6l68C2n6ZHM7ZxZmHQNdBf+6uo5tDfxe+fmwaWlpsqYpYf2ICxlvgL6Mx5GTvns1evKCQoxHg==" + }, + "2Yv0kajsIlA=": { + "serialNumber": "738676d6c91967c5f2d3b51b18ea2740987fdee6", + "subject": "C=FR, O=DGS, OU=120036017, CN=DSC_FR_015", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-08-12T22:00:00.000Z", + "notAfter": "2023-08-12T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "9d35758ebb3f3066a410338de9906cae3a5436f8", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0xTgG+IpxKsG43aa1bGa5tRfC9WC2oCkA08Jz8vHcrYciVOqreHkycHRF0EIM9O6G9LCBypatiQ3VoKDkUVwIw==" + }, + "AX/m4PDDCXE=": { + "serialNumber": "450699f840532fe63ac39daa69050d67c60136cf", + "subject": "C=FR, O=DGS, OU=120036017, CN=DSC_FR_016", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-09-02T22:00:00.000Z", + "notAfter": "2023-09-02T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "a571dd2efc4af5267d2f8a9b36357f811831c1cc", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEf41NUAppbywsMdA5DQSf/UbbtGTCmVAv1h5lFKWpxvusDlcy9e8aidIRnhOkon6X3xJg4n5dU9Ukgu0hEPRFDw==" + }, + "Xo78qgBEx8k=": { + "serialNumber": "1b15bdef2372df449e7ee99e3403f7cd9c0834b3", + "subject": "C=FR, O=DGS, OU=120036017, CN=DSC_FR_017", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-09-23T22:00:00.000Z", + "notAfter": "2023-09-23T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "a2a558c4f7136cf09421f92cd7f7d95950988f98", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElKFq4PSBlVJuySoXP3gAMLo6v8B/MCODYRK1OFUmBk7J/kfnRmv/a6ksBIghwjDc4nZx12IKUvhpuakVkhTGxQ==" + }, + "YVpBYnLh1Hs=": { + "serialNumber": "5ba063757d86224a3c62ff38b12e36f1cdc31fab", + "subject": "C=FR, O=DGS, OU=120036017, CN=DSC_FR_018", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-06-10T22:00:00.000Z", + "notAfter": "2023-06-10T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "beaa7c530a9f7c2ba39d2484ccc15b694a394757", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8SjDdFFGxTunJ0RQyxdGDbBKVUjHz9gKydhpKuTZAvYZMzGVVV7NYhJGQqOp4Ox6wU3y+zY666nfAeaAPcINRw==" + }, + "MJuQDybecd4=": { + "serialNumber": "1749fcd2bac13091f73f141440b33ebccdb4b828", + "subject": "C=FR, O=DGS, OU=120036017, CN=DSC_FR_19", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-08-31T22:00:00.000Z", + "notAfter": "2023-08-31T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "7ae8925073483ec618dab08bc77b090884b8c10e", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAERSQZ3mIam9saggM/z1bCW2+wGPWF6yNJN7qrsTLHntxEu2JpPJRPP866gJVIsHmIMqU/Kg/BnQ1bb6icYxpcTg==" + }, + "26Fcjnjuf2s=": { + "serialNumber": "169bf90e4bc95392b5be7fc7dbf33d3109de26b6", + "subject": "C=FR, O=DGS, OU=120036017, CN=DSC_FR_20", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-09-21T22:00:00.000Z", + "notAfter": "2023-09-21T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "5f7912a36e2d716fee4fae9d5873747af17cee36", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmRk7MSZQCX2u4UIQgVzma1JEo3yASVafls/5nw/V9T6e5EbsK64MM0KhsPH9aK/aElRt1+Rxtd1AsHVvsQJjKw==" + }, + "Cj0KwOpRFvQ=": { + "serialNumber": "682d62f14e15a7d3bcf4aa8d0869e82ff0715e95", + "subject": "C=FR, O=DGS, OU=120036017, CN=DSC_FR_21", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-10-12T22:00:00.000Z", + "notAfter": "2023-10-12T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "71f93592c1496224765f266a35055b1abdd8e1a9", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE2KIu7zh4VbMsB2Y8H2VRojkDFFA8hQwDsYjuAuxqIvqqx0Rjjv0+teHsdtIwdXW5f3BrIp5D5WXbPechk9nR9w==" + }, + "3aGO1ni4qKA=": { + "serialNumber": "1d96cbe4c84add1228f7d5c4574c58ea3881ad09", + "subject": "C=FR, O=DGS, OU=120036017, CN=DSC_FR_22", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-11-02T23:00:00.000Z", + "notAfter": "2023-11-02T23:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "27ff50685c13725a00d6ea6c765dfd6ce8727ef5", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE+ws8GOmbxIZm3jIeG2vN3jsMTvjNuC40InFfPoXbMRVFjhOBjro3792wiunoFYiG7TZsgCEi/+IOCUsxa5+H/g==" + }, + "qrdfSzqcjRc=": { + "serialNumber": "2821b56814e40009f413f8150fe1d1657acc8016", + "subject": "C=FR, O=DGS, OU=120036017, CN=DSC_FR_23", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-11-23T23:00:00.000Z", + "notAfter": "2023-11-23T23:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "5a54e6b9353325491a6b4286919d70fdcdf32b31", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE2U0nHQxTR9PPb0QwY+YS7qJs9XDN5a9fc+lCqTltrFE5D8kEZMRFY+qNhMbo5JY4VU473btztC0zWP52tgFH+g==" + }, + "LkrphwJykEw=": { + "serialNumber": "70ca1f043b99bfb76efe59062d20546823e845d4", + "subject": "C=FR, O=DGS, OU=120036017, CN=DSC_FR_24", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-12-14T23:00:00.000Z", + "notAfter": "2023-12-14T23:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "136ed25e126476add6f47c5657c2eda60c8ae9bc", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEv9oPMoRAqA3JV2+cNikqVChE7Y8WxGrVkEm5PV1bFndPkVXnRgpdgznH2H/x/3IcOdv6edXz4iorfKud7oJoYg==" + }, + "M+R7JFFk6G8=": { + "serialNumber": "3d746d8dc414a7b6f6f2fd2f9a9a719c815e587e", + "subject": "C=FR, O=DGS, OU=120036017, CN=DSC_FR_25", + "issuer": "C=FR, O=Gouv, CN=CSCA-FRANCE", + "notBefore": "2021-08-31T22:00:00.000Z", + "notAfter": "2023-08-31T22:00:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "cb0c97bc713265acef382c2509f0bdbb31a73dd6", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEB5mLr8niSSWcqZ3EbDPjFseikZTP0rPRJPDW1+hvblECWjmEOsWEiXQ87RUStArNabZ9JMysQccgbb5IJ7bbOw==" + }, + "Qw0ebn8uT4I=": { + "serialNumber": "421f4dbc5fcded82f2c0f42eda13031fb762243b", + "subject": "C=FR, ST=Some-State, O=Inria", + "issuer": "C=FR, ST=Some-State, O=Inria", + "notBefore": "2021-09-17T08:47:41.000Z", + "notAfter": "2022-09-17T08:47:41.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "8780368011f0930d6a4c81edd4c510b86a467852", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUOXG+vMbzpzkd0rmpI8erYChwTWSPcnAEo93BiH28hAQ+WyuhmClWS6q6FM5t9DM97M+njCQaqriBQ3ktH0eVA==" + }, + "c3ByZGtleTI=": { + "serialNumber": "31021e39101b489e", + "subject": "C=GB, O=NHSScotland, OU=IT, CN=c3ByZGtleTI=", + "issuer": "C=GB, O=SCOTNHS, OU=IT, CN=SCOTTEMPCA", + "notBefore": "2021-09-01T13:56:00.000Z", + "notAfter": "2025-09-01T13:56:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "7da1e496d53201b00c217c688efa6d6170b13e52", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAELv/LGmc0H46LwmLHIRD89CmSRlW8aiFyniNkOgkpjpJ+sApFzfQScbmLlRJx1vZ+PYhWeL5Ktb6w+5ajWj8h5Q==" + }, + "d3ByZGtleTE=": { + "serialNumber": "5b56086a0208c1c0", + "subject": "C=GB, O=NHSScotland, OU=IT, CN=d3ByZGtleTE=", + "issuer": "C=GB, O=SCOTNHS, OU=IT, CN=SCOTTEMPCA", + "notBefore": "2021-09-01T13:51:00.000Z", + "notAfter": "2025-08-01T13:51:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "a4ed0e897d8cb9afc96ae1ca0e75b346605f3eb1", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzQtHAcVujgAyvWzHOx9mrtIW3muUpB0sCl22Kt3vMbTMN81yZnEoqkOyOBu3UHE9ifr+RoEVCgMZ7GcDF9Ix1A==" + }, + "d3ByZGtleTI=": { + "serialNumber": "350c2bbb1363d62f", + "subject": "C=GB, O=NHSScotland, OU=IT, CN=d3ByZGtleTI=", + "issuer": "C=GB, O=SCOTNHS, OU=IT, CN=SCOTTEMPCA", + "notBefore": "2021-09-01T13:52:00.000Z", + "notAfter": "2025-09-01T13:52:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "e35ec5b549ea3dfbe77d2cf76cd1d9a528b60ce9", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPJq53/TUr83Jx/KibQsq/FsKOdUBogz9YsH157l/mlrmjEmdToz6vDFMxvvWfdRIvNL0LoRuTSg5XjIvoAYqZA==" + }, + "c3ByZGtleTE=": { + "serialNumber": "6ceeb55bac9cfe2b", + "subject": "C=GB, O=ScotlandNHS, OU=IT, CN=c3ByZGtleTE=", + "issuer": "C=GB, O=SCOTNHS, OU=IT, CN=SCOTTEMPCA", + "notBefore": "2021-09-01T13:46:00.000Z", + "notAfter": "2025-09-01T13:46:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "505e86c2cc3ba52b42069ff6734dcab9d8497e38", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPtYvyfeF/2VvzK7yZFtTzzZjvIzmdDCCHqeQi7/R/PiKJ9HL3exOeVzabVvBkW5uP/+5RnwfSvyxYW/xIhooNg==" + }, + "1J9pb87ndV0=": { + "serialNumber": "4541037b9551542fb116ebf36d00f123e35c1b71", + "subject": "C=GB, ST=NI, L=Belfast, O=Department of Health, OU=DHCNI, CN=DSC_DGC_GB_NI_01", + "issuer": "C=GB, ST=NI, L=Belfast, O=Department of Health, OU=DHCNI, CN=CSCA_DGC_GB_NI_01", + "notBefore": "2021-07-19T15:22:18.000Z", + "notAfter": "2023-07-19T15:22:18.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "4f389794b184b83e61ac485666d3f1f091e986ca", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZ+fdcTa4UWA/6PT5V4a0+0j1/s++4JQEsW/HvGnxxP7mGfuQDfn/FRdUMGQtTkoCGaky1gpYVZXkkoYu9ZjlUw==" + }, + "vvYa1vaWkGg=": { + "serialNumber": "2a1941ee3ff39d46c76ea1107c912bb9df00c8f3", + "subject": "C=GR, CN=grnet.gr", + "issuer": "C=GR, CN=grnet.gr", + "notBefore": "2021-05-24T18:35:25.000Z", + "notAfter": "2023-05-24T18:35:25.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "f208175ef47114e5937d65f3a88755149e2d32f5", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEaI7Y+lpY9cv5h5gKDrAzpkhl5bFPen/ohAMuJXU4uFfQu0UnSDCFt/bHTWcqKxYcik8YfnF+UZSWOKE3MsllEQ==" + }, + "25QCxBrBJvA=": { + "serialNumber": "3d1f6391763b08f1", + "subject": "C=HR, O=AKD d.o.o., CN=Croatia DGC DS 001", + "issuer": "C=HR, O=AKD d.o.o., CN=Croatia DGC CSCA", + "notBefore": "2021-05-20T13:17:46.000Z", + "notAfter": "2023-05-20T13:17:45.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "678a9b63d73aa4e82ce35b455fbe8363feee98c4", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEt5hwD0cJUB5TeQIAaE7nLjeef0vV5mamR30kjErGOcReGe37dDrmFAeOqILajQTiBXzcnPaMxWUd9SK9ZRexzQ==" + }, + "4GkJs9YsYS4=": { + "serialNumber": "6bf8149eb2ad4a8e17cd75533e457600fb4fc171", + "subject": "C=HU, ST=Budapest, L=Budapest, O=OKFO, CN=DGC_DSC_HU_PRD_20210628_01", + "issuer": "C=HU, ST=Budapest, L=Budapest, O=EESZT, CN=DGC_CSCA_HU_PRD_20210621_01", + "notBefore": "2021-06-28T14:15:34.000Z", + "notAfter": "2023-06-28T14:15:34.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "0de364a6bc77f7dfd9b2cc02c041c48f14adbcb5", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyN8tlsHEJlHHmms/54jGukHiHadMS0ckg70EQkyDuX7A003uCCiZTokKurIS19EOAlQFLTCLrVJ72CcST7+H/A==" + }, + "PBpDVqnJ7Us=": { + "serialNumber": "00815a02704a550479", + "subject": "C=IE, O=Department of Health, CN=validateqr.gov.ie 2020135457912391810539600999694555", + "issuer": "C=IE, ST=Dublin, L=Dublin, O=Department of Health, OU=eHealth, CN=CSCA_DGC_IE_01", + "notBefore": "2021-07-07T09:31:21.000Z", + "notAfter": "2023-06-27T09:31:21.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "6d7d24efe8d49d1a3339e56dd2b89e4076b6c684", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETPE5ItolrGzLQLPqYxOT+orVmYJusLDsPWLwrK+bbJKBBtXBsrD2Py/osWYr9LF5ffORpzxmBUQmzp7K4uPiIw==" + }, + "eNNsg2jd4wA=": { + "serialNumber": "00815a02704a550477", + "subject": "C=IE, ST=Dublin, L=Dublin, O=Department of Health, OU=eHealth, CN=DGC CSR", + "issuer": "C=IE, ST=Dublin, L=Dublin, O=Department of Health, OU=eHealth, CN=CSCA_DGC_IE_01", + "notBefore": "2021-06-30T13:38:55.000Z", + "notAfter": "2023-06-30T13:38:55.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "e781fb7ed3fa8437e6f1eddada8c07ca2b2c9c38", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZfUiZPt+jvUVd8fpPkv2xoXxluGZwuvys0oXWRnPOBcDeGmcMszJ7gQNKS0xOZ33xtY/9rhivmjVU67IHcBM8Q==" + }, + "cS/wou0g/po=": { + "serialNumber": "1d0000000745870bc080cb34d4000000000007", + "subject": "C=IL, ST=Israel, L=Jerusalem, O=Ministry of Health, OU=Digital Health, CN=IL-NB-DSC-01", + "issuer": "C=IL, DC=IL, DC=GOV, DC=HEALTH, DC=MOH, ST=Israel, L=Jerusalem, O=Ministry of Health, OU=Digital Health, CN=CSCA-Health-DCG-IL-01", + "notBefore": "2021-09-05T07:16:00.000Z", + "notAfter": "2023-09-05T07:16:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "70cca7c74a5a6413f86dd51e07cc083580f69866", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEcw+UZUnryP4rqSw+a8xQw4wLHZkcu4MDjJP7QeBUEpDt8xh4i4RSIBEJrBkAukSSobRDkwMb0dSCsWwK0rfMgQ==" + }, + "NJpCsMLQco4=": { + "serialNumber": "46576ee6bb1fac3799b43071ac9f92ba332bd88b", + "subject": "C=IT, O=Ministero della Salute, CN=Italy DGC DSC 1", + "issuer": "C=IT, O=Ministero della Salute, CN=Italy DGC CSCA 1", + "notBefore": "2021-05-12T08:18:17.000Z", + "notAfter": "2023-05-12T08:11:59.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "8ff39d880aa2fb3628a8e49020074cc44cdc61f0", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnL9+WnIp9fvbcocZSGUFlSw9ffW/jbMONzcvm1X4c+pXOPEs7C4/83+PxS8Swea2hgm/tKt4PI0z8wgnIehojw==" + }, + "e/YRqyv++qY=": { + "serialNumber": "11587fbc2ddc8605", + "subject": "C=LI, L=Vaduz, O=Liechtensteinische Landesverwaltung, CN=DGC-NB-DSC-RECOVERY-PROD-20210608, E=webmaster@llv.li", + "issuer": "C=LI, L=Vaduz, O=Liechtensteinische Landesverwaltung, CN=DGC-NB-CSCA-PROD-20210608, E=webmaster@llv.li", + "notBefore": "2021-06-08T07:57:00.000Z", + "notAfter": "2023-06-08T07:57:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "72d9aec9db4180327c8661a489ddc89b1ed3f5af", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmCCGUDO95y6Rj40KX74cFgc99I9BnFoPBkZ3kcAyo2q/smN4gbYWkrC2WMErsN8zZ37C9RhAGlHYDN8tPJbiAw==" + }, + "JkFekJel6/o=": { + "serialNumber": "3fdf992c70b61584", + "subject": "C=LI, L=Vaduz, O=Liechtensteinische Landesverwaltung, CN=DGC-NB-DSC-TEST-PROD-20210608, E=webmaster@llv.li", + "issuer": "C=LI, L=Vaduz, O=Liechtensteinische Landesverwaltung, CN=DGC-NB-CSCA-PROD-20210608, E=webmaster@llv.li", + "notBefore": "2021-06-08T07:42:00.000Z", + "notAfter": "2023-06-08T07:42:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "cd7b77b9077a8f0e7f6309e784385b636d2a9da9", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEBnFUjr8FpfpVaVFtCUW7Yg6JBk/n1TlJKEKpm/rZOvAEzKpwoTCpXpXPP1SPGhvQXzJ+i4dBQHgbdw2SDpcZmQ==" + }, + "jYpr5GHCDiQ=": { + "serialNumber": "10237f2e565bee49", + "subject": "C=LI, L=Vaduz, O=Liechtensteinische Landesverwaltung, CN=DGC-NB-DSC-VACCINATION-PROD-20210608, E=webmaster@llv.li", + "issuer": "C=LI, L=Vaduz, O=Liechtensteinische Landesverwaltung, CN=DGC-NB-CSCA-PROD-20210608, E=webmaster@llv.li", + "notBefore": "2021-06-08T07:54:00.000Z", + "notAfter": "2023-06-08T07:54:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "e3e7607e0fcf002e1b0ee4516b696a60c4f49bec", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElHOTKQPe3GZKCAIsaBbPpAfJZ30ftIUsb/r6gHu19cI21XMfiZDQuI3we82ezsmyjL/jfr1zlRYqXLmbqOrkJA==" + }, + "lshLbYfCWRg=": { + "serialNumber": "0179e2e06287", + "subject": "C=LT, ST=Lithuania, O=Ministry of Health of The Republic of Lithuania, CN=LT_DGC_DSC_1", + "issuer": "C=LT, O=State Enterprise Centre of Registers, CN=LT_DGC_CSCA_1", + "notBefore": "2021-06-06T19:50:26.000Z", + "notAfter": "2023-06-06T19:50:26.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "07625d9810e3b784a86ae6642156d7d594f84952", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "RSASSA-PKCS1-v1_5", + "publicExponent": { + "0": 1, + "1": 0, + "2": 1 + }, + "modulusLength": 2048 + }, + "publicKeyPem": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnhBpxzeGXNlQs7U+j/Av1BUZ6CCgMR3bFLT4rRjO8KQ4IpAKqSCQ3j57MJqdumk3AUfHO5zhMZF4Awy0wqV3oFlyP49/56KKZxGARe5UkyfPjVbl8AZpLmgYoS/Ior53TLrwmT/+zvXynzFYbOi2OtCtqanG+9OUhSVRrXEEB+56PpCltE31wemX1behxDuCbE4tuqyTYODFw9Le3dGCbHWdjxi5W3XIUNo8j2u2PKue0KS76Xv0zAYItTgChgv7mM55/G109m4MfeU7AHah43bJth8K8y+SxG3RYHskmNZ7sfn3w8w7WyW7D3/tKHcMt3hgIh9z3DuWeR1C296JyQIDAQAB" + }, + "7AfAwcpWOv0=": { + "serialNumber": "017a5eefa4a2", + "subject": "C=LT, ST=Lithuania, O=Ministry of Health of The Republic of Lithuania, CN=LT_DGC_DSC_2", + "issuer": "C=LT, O=State Enterprise Centre of Registers, CN=LT_DGC_CSCA_1", + "notBefore": "2021-06-30T22:00:01.000Z", + "notAfter": "2023-06-30T22:00:01.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "62770a65b075cc58044f064cfb7fb6b6589a1a64", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "RSASSA-PKCS1-v1_5", + "publicExponent": { + "0": 1, + "1": 0, + "2": 1 + }, + "modulusLength": 2048 + }, + "publicKeyPem": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsIcppmCVhq96vMc4NtW8X+yV6O1oC7hfKnewK1/pxfByqlVTPpETDLAjNq9knNQpCs7vGjadCbDAylsQRK7qfU3sUUKamh6FgDhFo1dzC4mUHCy3XBL04XJie2eT/a6Wgjrn6NjEFk5M4Jl4N8u/RbfaVxqaOjUM0hBfuzfZeL2LT30POqDHj1hcyod1fIbG4vv2Upqxe3OX/WLr+WzSPbRkPwxcJjmYeNYODT0rEcd9VSzJpljaK+eDVwxT0wMRnCH2QLxdw8sR+oDYDTZBaabeHYyZ0CfYzSoBOZT3fVMAbjkVAl8GFyH8tUm4lMQbYEMbl/FkftcZQicaqvRdQQIDAQAB" + }, + "ln8K+9SqfuA=": { + "serialNumber": "3392244c19e0afe0", + "subject": "C=LU, O=Ministry of Health, CN=Grand Duchy of Luxembourg DS DCC 1", + "issuer": "C=LU, O=INCERT public agency, CN=Grand Duchy of Luxembourg CSCA", + "notBefore": "2021-06-09T09:48:55.000Z", + "notAfter": "2023-06-09T09:48:55.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "cf45236aa033232547752ee4c61d024a06210eab", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEExXQauou3f3g77qOsZ0rSPFjoTDiKQDhG+Bpf34YyoeFkYMBML890KaqmZL4uezBc8xxg1f170qcZWHILjp4qw==" + }, + "0kAwFy+vLpg=": { + "serialNumber": "5fb2152071bf338b", + "subject": "C=LU, O=Ministry of Health, CN=Grand Duchy of Luxembourg DS DCC 2", + "issuer": "C=LU, O=INCERT public agency, CN=Grand Duchy of Luxembourg CSCA", + "notBefore": "2021-06-09T09:50:05.000Z", + "notAfter": "2023-06-09T09:50:05.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "4e99c030794a3dccc040614f8b37bf0ad1422171", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEvIs/H8NhtE23q5tR84V9WwbbdGDc3hh7mjrXom4PRzjGRuSvfC9OIFLtRzOohsdnbcE62FWN+Fz09ugJcaqhtA==" + }, + "02vdAOY/+gI=": { + "serialNumber": "29b50f0f2c608107", + "subject": "C=LU, O=Ministry of Health, CN=Grand Duchy of Luxembourg DS DCC 3", + "issuer": "C=LU, O=INCERT public agency, CN=Grand Duchy of Luxembourg CSCA", + "notBefore": "2021-06-09T09:51:04.000Z", + "notAfter": "2023-06-09T09:51:04.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "8d94afdbf2b3ee880486b0587f64ff48abf97087", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5EtYbOu+RuUcFAu1NN1rqsuKqNzpl0Y6bgg9wNKcmVLzfBO81jH2dcupHtKlp7My5KGjCyBAKvjJUSE/fnDd5g==" + }, + "bBnmkeVMV6A=": { + "serialNumber": "6ce9896434283fea", + "subject": "C=LU, O=Ministry of Health, CN=Grand Duchy of Luxembourg DS DCC 4", + "issuer": "C=LU, O=INCERT public agency, CN=Grand Duchy of Luxembourg CSCA", + "notBefore": "2021-06-09T09:51:54.000Z", + "notAfter": "2023-06-09T09:51:54.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "731b285776205c9953790ef193994bce7a957e64", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEHTBJY0Z+T5I8EmqQmrbZAr8equIcKKE+YriIGw/AKJyw0ZAj1Dd2MRTM3+AEiNARxXIF08a2rhUvFCyyHCJ2DA==" + }, + "o11W81MgYYg=": { + "serialNumber": "3991318d5da48c60", + "subject": "C=LU, O=Ministry of Health, CN=Grand Duchy of Luxembourg DS DCC 5", + "issuer": "C=LU, O=INCERT public agency, CN=Grand Duchy of Luxembourg CSCA", + "notBefore": "2021-09-02T13:00:18.000Z", + "notAfter": "2023-09-02T13:00:18.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "801a6f9b73bf83598c4b2131f7fc72e6a8c0aeeb", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEHcMt1ez6jhOR9UBCXlFg//cHD/JoypGzNaG4C/gYl4qQdN+Vns7/idf8DO6Fk5z+Yh+I/vQ4vUQ5bWZSwRwUJg==" + }, + "Amn7EaBy1ag=": { + "serialNumber": "2ca2e41e7eabc0a0", + "subject": "C=LU, O=Ministry of Health, CN=Grand Duchy of Luxembourg DS DCC 7", + "issuer": "C=LU, O=INCERT public agency, CN=Grand Duchy of Luxembourg CSCA", + "notBefore": "2021-09-02T13:03:09.000Z", + "notAfter": "2023-09-02T13:03:09.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "4a18bef39a53523c1ba64a63414b802ce877bfb3", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7U8cYsFNOZawVgxC9FBfvNzL05Xetv6jVxj+aii7IkXcXCIiRsruAdrAHCLCtpDgIFzwLsFNwJs5ZFu+8lr6nw==" + }, + "ZpnsokK1DgM=": { + "serialNumber": "35000000049fddfe973542af18000000000004", + "subject": "C=MA, O=Kingdom of Morocco, OU=Ministry of Health, CN=DSC-MA", + "issuer": "C=MA, OU=Ministry of Health, O=Kingdom of Morocco, CN=CSCA Health MA", + "notBefore": "2021-09-16T13:54:20.000Z", + "notAfter": "2023-09-16T13:54:20.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "97ad2a6b0f83d152cb8fa8b64c2c901b47783f82", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEvILEthEWN9hu06zQ9GCUCthQJ9OAa/0eskYOKbfQZVEf9kNzPEH9qbVrwvr8jhwKL6CKoXAefNLlrBKZ+Mtpzg==" + }, + "Pcl7yBWEQ7c=": { + "serialNumber": "009747113986845f5ccc2040c73dfac46af030f9", + "subject": "C=MC, O=Principality of Monaco, OU=Ministry of Health and Social Affairs, CN=DSPKI_MC_DGC_1", + "issuer": "C=MC, O=Principality of Monaco, OU=Foreign Office of Monaco, CN=CSCAPKI_MC", + "notBefore": "2021-06-17T08:24:29.000Z", + "notAfter": "2022-12-17T08:24:29.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "d7f0c6ba44e45a5540aa5bc2529c0781a407abc0", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEcrxlv5/uGbsaXM/QMSpvZV2iNtF0o4QBech6LGpy3OEefbJLf+4iqI19QNWtUXEjlMMytB4+1ESLHdXyki5X2g==" + }, + "qEgQcWPd3xU=": { + "serialNumber": "01", + "subject": "C=MK, ST=North Macedonia, L=Skopje, O=Ministry of Health, OU=Ministry of Health, CN=zdravstvo.gov.mk", + "issuer": "C=MK, ST=North Macedonia, L=Skopje, O=Ministry of Health, CN=zdravstvo.gov.mk, E=contact@zdravstvo.gov.mk", + "notBefore": "2021-08-23T12:22:02.000Z", + "notAfter": "2022-08-23T12:22:02.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "dbd631b2b552ff7cfd67e239b4fa953628a74e8d", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "RSASSA-PKCS1-v1_5", + "publicExponent": { + "0": 1, + "1": 0, + "2": 1 + }, + "modulusLength": 4096 + }, + "publicKeyPem": "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA144Qzvk4vkmWoGZUPGRepcNVPCbXy0tLeaxmuDuTbJIfyO0TwxrQllUOF+pni559+knMmUUk7PqfvU8fsbrNXHn4Wh1LzIVZkz/GuiQ44bR3b7k9kcS9vfOx14WiP41zx/vOmQXWaGx+mzC+RD6+w5T8hAdRjol6nUHAvstL0MbIylv+Fhi4s1qpmr1rR5liG/KI3uzaMjJvQC6d3R9Ee+q3ULTJ81+WyVe9sK9hY5Z/KzFrMbnbH2Y1/voIcLc+vjjVCOFJKkXhjz00/wu6NalMMN6MC+G9gZMHp69CJPB45hIBiAKfGEI4dq8lCthqi2orRoXmAyf6LxSBL6wZVu+naTXUJMVoXjFNXIyszm1MRQiagaoqOyctY/bg/RQgVSDrjtEN4MeMArSbehogEZuYL8GRRrnOEbWb86DEwMAYDbbPFEab3hsyZejJ3bxZdylWNj1V8QPyP2uvOLAFGwsvSzw7E34b0RcpEeOoQeKrT8nKPpFOFIQ3gBxyqlw4T+v/iENIxDWoWdvUO2/bkidNXecSn3XlzTT7OW8IbJ0M7D9htz/SPd55XP5sU5gF3wnwuWMIq1auj/LXwbRAh63OiUG+Bo4ssL7AkMcOpkYl25QZQOXzWykI0/ZZ8Hu/968eoYvMxbQD4EARMGDMwdkU5G+nuHniTS52kONbrZUCAwEAAQ==" + }, + "KjE8h58xh7A=": { + "serialNumber": "01", + "subject": "C=MK, ST=North Macedonia, L=Skopje, O=Ministry of Health, OU=Ministry of Health, CN=zdravstvo.gov.mk", + "issuer": "C=MK, ST=North Macedonia, L=Skopje, O=Ministry of Health, CN=zdravstvo.gov.mk, E=contact@zdravstvo.gov.mk", + "notBefore": "2021-09-15T13:20:53.000Z", + "notAfter": "2022-09-15T13:20:53.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "74b6427e733caff7a2a78355426de735915ff701", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "RSASSA-PKCS1-v1_5", + "publicExponent": { + "0": 1, + "1": 0, + "2": 1 + }, + "modulusLength": 4096 + }, + "publicKeyPem": "MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAy4Z5U8Qb5fGFqBdFLyUhGP4ZlweYKLIA0BUXsuNB1h4EkNmF9tfcGsaDDBwmH5feGWlxaiPmHgpm8ewKbtrNusMz9t2YuZz78f9Pdk6Cjhh7A1O7abtmonpEGNbUnmQr1xmp2y33RM+p+kG2YzwWhlVStm4OjJNmnuLplbCfLi8MZaqUxRvV8irjTLubqUCsgH1yOOLNnB00OVTog7oqDGGD5Lesj/7H7T7pqDH+DNvj1BnFVMDm1DbYGOd0NXZH7gr+Twi3a5Ogtrm6XYG65RuDO2IetJJzmME/FyMBgYntmu97eCDoKy1rdpA8GUMWOk9Mic2MD9d2DLlOjtbPUV63KkeuClZYLUN77tl06qUJRD6vSNLCnzxSQzhq/qmr8Bq5t0XCywl1ViaCFknPtZBTxszi/GbrzjQQUEwWl7rJKZQQTLifAifc7atDZHRhSzBTJ2IcxEppTllMEss2Wyk5OzhjILauTGk640q5nbr0mix7yDKW5Us5tzMvgQcd4Cp3E1USGBjKoLs+yT9C3skVA5Tjt6k4tc1B1sR+EftWaX3gEtl6XM2S9JZl1YNYyOjXNW5PRy+FmpWuEVBTBN8czKnqvi67dCZmgLIkv1ABw00XlWPoH6kAnKFCV9zShC6o9Ef7UX2hHchOLdjZxIJCY4nTu3OfC4rqey3EPGECAwEAAQ==" + }, + "lzGYCpOBQsU=": { + "serialNumber": "7fe579a881eb001055ae27216b30da120634c771", + "subject": "C=NL, O=Aruba, OU=Ministry of Tourism Public Health and Sports, 2.5.4.5=1, CN=Health DSC for recovery", + "issuer": "CN=CSCA Health NL, 2.5.4.5=1, OU=Ministry of Health Welfare and Sport, O=Kingdom of the Netherlands, C=NL", + "notBefore": "2021-08-03T08:10:51.000Z", + "notAfter": "2032-07-31T08:10:51.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "6cbf3a7e477afac0bec47d247374de6b32762d99", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEf85n2j7jSWalqCH8Dquo5E3uyYIwYReoWWAiPkIvnwaaoPUt427OizGvRF35l0wPD6zSkbiQZxWI1DMaf+UeXQ==" + }, + "2Bh+2HrOg0c=": { + "serialNumber": "1d5b7e8fa30bd5120b6a458eae8930c75bc98564", + "subject": "C=NL, O=Aruba, OU=Ministry of Tourism Public Health and Sports, 2.5.4.5=1, CN=Health DSC for test", + "issuer": "CN=CSCA Health NL, 2.5.4.5=1, OU=Ministry of Health Welfare and Sport, O=Kingdom of the Netherlands, C=NL", + "notBefore": "2021-08-03T08:12:53.000Z", + "notAfter": "2032-07-31T08:12:53.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "a1194dc0b29397670233bd793adbe714e667c0dd", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEKBG1WklnURluKXTg5+tm6/S7pMFLBE8cZ5xNxnCCAL5nvUi6JzSgTjAmOaUNPXVwvA2TYl/GkJNbh4TazMeF3w==" + }, + "ryvXsisPPeU=": { + "serialNumber": "102b2740fda8b966a837c196b437f32333a342c0", + "subject": "C=NL, O=Aruba, OU=Ministry of Tourism Public Health and Sports, 2.5.4.5=1, CN=Health DSC for vaccinations", + "issuer": "CN=CSCA Health NL, 2.5.4.5=1, OU=Ministry of Health Welfare and Sport, O=Kingdom of the Netherlands, C=NL", + "notBefore": "2021-08-03T08:13:23.000Z", + "notAfter": "2032-07-31T08:13:23.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "08c09ee3fa582a35bd00c66fb1e7780072ce7b19", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEcI1v9r69Swup7ghwGhCA5xoG8SopLiD2DnfkhTydslZQBHc+TuieZ11aHYkD91gmngRXRsGU8Tow/LEoKPkyuQ==" + }, + "0JzyumjttZU=": { + "serialNumber": "1311a61314d3e1e7fcac39a8535826d719ec077b", + "subject": "C=NL, O=Country of Curacao, OU=Ministry of Health Environment and Nature, 2.5.4.5=1, CN=Health DSC for recovery", + "issuer": "CN=CSCA Health NL, 2.5.4.5=1, OU=Ministry of Health Welfare and Sport, O=Kingdom of the Netherlands, C=NL", + "notBefore": "2021-08-03T09:13:10.000Z", + "notAfter": "2032-07-31T09:13:10.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "8a2022932477ebbb64b4bfc5c04afd49ef33d4af", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAENlKRwpA1S14Zfx6LZuAWm9ExHy86o7O9ijCq4AmZ1dFu2d2wowdylJzAvbbVsR1RoxfNJPzy5dwu9Nsm0PvsEg==" + }, + "T8kbYovQlYU=": { + "serialNumber": "47a558b5fd28bd604297b1474f7e48573550d442", + "subject": "C=NL, O=Country of Curacao, OU=Ministry of Health Environment and Nature, 2.5.4.5=1, CN=Health DSC for test", + "issuer": "CN=CSCA Health NL, 2.5.4.5=1, OU=Ministry of Health Welfare and Sport, O=Kingdom of the Netherlands, C=NL", + "notBefore": "2021-08-03T09:14:19.000Z", + "notAfter": "2032-07-31T09:14:19.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "8e51d16d098c637a7c40f34802b5c6cc8442148b", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPVZAyUlqrJ3XW8kCQu401SKWJ1GjF+LBjT16DUZO0RaRdAPsKx8FUBwqRBtn8dPzIP+EWDX7iUppuG0TNkt3Ug==" + }, + "H6b6bQ8qij4=": { + "serialNumber": "36861ed6a7d05942a37a740cda1664ef91a3ebb9", + "subject": "C=NL, O=Country of Curacao, OU=Ministry of Health Environment and Nature, 2.5.4.5=1, CN=Health DSC for vaccinations", + "issuer": "CN=CSCA Health NL, 2.5.4.5=1, OU=Ministry of Health Welfare and Sport, O=Kingdom of the Netherlands, C=NL", + "notBefore": "2021-08-03T09:15:10.000Z", + "notAfter": "2032-07-31T09:15:10.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "2e58fa542970750edc6809e72e20f3022ee5d8e4", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEawHNq4c7wLusLEYNhn7CBSqk6bdY7Phqjt1+Q+CVRHqBFfSRfWG+9dgoEMBdFHY12g4qsO3nnT2P4qhADwIvng==" + }, + "pSEfhlMubh4=": { + "serialNumber": "48ae1b99eef389abbf25990cf3420e2ccf226aeb", + "subject": "C=NL, O=Kingdom of the Netherlands, OU=Ministry of Health Welfare and Sport, 2.5.4.5=1, CN=Health DSC for recovery", + "issuer": "CN=CSCA Health NL, 2.5.4.5=1, OU=Ministry of Health Welfare and Sport, O=Kingdom of the Netherlands, C=NL", + "notBefore": "2021-05-31T14:14:00.000Z", + "notAfter": "2032-05-28T14:14:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "adb569c77420c675cbd30a58b36e9f1d37301202", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEiY+AGRWtd8tCUb5PQdEPaCWAZl0D/SIOtcDH8R8yrp/JT8MmMxV/wM15WiZf09Eyy3iJXwFT+9YOCyrBA/Cejg==" + }, + "f+4yAPIGTWg=": { + "serialNumber": "0d6c2eeab589185d3321093f68a8dd5344d7a10a", + "subject": "C=NL, O=Kingdom of the Netherlands, OU=Ministry of Health Welfare and Sport, 2.5.4.5=1, CN=Health DSC for test", + "issuer": "CN=CSCA Health NL, 2.5.4.5=1, OU=Ministry of Health Welfare and Sport, O=Kingdom of the Netherlands, C=NL", + "notBefore": "2021-05-31T14:19:43.000Z", + "notAfter": "2032-05-28T14:19:43.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "cb3cbe63abb7f9e936f66433c361cc6c94cf2e2d", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAERyOtPhis4M+vOSM+4AoqtBot3s7AGrqQOSA2ZY3a25z5e4QlRpExd1S399CADvo5j0Nyqrm/azrhFIsSAc8FIg==" + }, + "3lTmAZX19GQ=": { + "serialNumber": "53426b4540552fc0c45b5cf48f1f3ff8a00284b2", + "subject": "C=NL, O=Kingdom of the Netherlands, OU=Ministry of Health Welfare and Sport, 2.5.4.5=1, CN=Health DSC for vaccinations", + "issuer": "CN=CSCA Health NL, 2.5.4.5=1, OU=Ministry of Health Welfare and Sport, O=Kingdom of the Netherlands, C=NL", + "notBefore": "2021-05-31T14:27:32.000Z", + "notAfter": "2032-05-28T14:27:32.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "d338db41308bf00da7bc19c57793f26b7c7cc84b", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/DBnhBhTf8TkfsTn4tLEb3mQLCsONkZbY4I5i0zh0WhsDupDshGnu4TE4AgH6Y/uBnsJ+D6QkVAikza/rtw89w==" + }, + "4Ss2raOqhTw=": { + "serialNumber": "45961aa092a5fd6cbaf8c48903eeca0407cb4291", + "subject": "C=NL, O=Sint Maarten, OU=Ministry of Public Health Social Development and Labor, 2.5.4.5=1, CN=Health DSC for recovery", + "issuer": "CN=CSCA Health NL, 2.5.4.5=1, OU=Ministry of Health Welfare and Sport, O=Kingdom of the Netherlands, C=NL", + "notBefore": "2021-08-02T18:08:31.000Z", + "notAfter": "2032-07-30T18:08:31.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "61c77a2edbcbdc5d44087400207aafecfea5408e", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQb+DcAtDpjI4ftm5ICNC5KGz10zJvY682GDCREwLupvC17QzWFvc6S0jbk2NJt2VY5V4svj2FfLGkSWbUqUFnQ==" + }, + "ypEjzbYNqEw=": { + "serialNumber": "01cd01302b211d929ce3ff892f630e5c1bf5d1de", + "subject": "C=NL, O=Sint Maarten, OU=Ministry of Public Health Social Development and Labor, 2.5.4.5=1, CN=Health DSC for test", + "issuer": "CN=CSCA Health NL, 2.5.4.5=1, OU=Ministry of Health Welfare and Sport, O=Kingdom of the Netherlands, C=NL", + "notBefore": "2021-08-02T18:09:38.000Z", + "notAfter": "2032-07-30T18:09:38.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "2bd7bb4beacaa237b4435ebc7a2853e21e028101", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnRYo0qQ5BM+B3lWzaaqBhgTqQ99wnzj078WYakRSXv7LyJbz21EGEQkNpe3UOlENX5Q7RdzkrrXFbs7pHfNDpw==" + }, + "JsReuAsmza8=": { + "serialNumber": "792d9ec52d9054680c6a6c021f5acecbc5c58447", + "subject": "C=NL, O=Sint Maarten, OU=Ministry of Public Health Social Development and Labor, 2.5.4.5=1, CN=Health DSC for vaccinations", + "issuer": "CN=CSCA Health NL, 2.5.4.5=1, OU=Ministry of Health Welfare and Sport, O=Kingdom of the Netherlands, C=NL", + "notBefore": "2021-08-02T18:10:25.000Z", + "notAfter": "2032-07-30T18:10:25.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "59666675082cd84bdc11e1301227eef717c49cc4", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAERw+zOjyFNs4ntgwxcvouetTqlBIztiTtJhOi8DesKXv5uX/m1pVAbYium/fhyu0IaBeh3DVOLfLJtPaUEx8eiw==" + }, + "cdm9Ymfwn2I=": { + "serialNumber": "59000000056eef20a7c3fbf86a000000000005", + "subject": "C=NO, O=Norwegian Institute of Public Health, CN=DSC AN EU 4", + "issuer": "C=NO, O=Norsk helsenett SF, CN=NO NHN CSCA PROD", + "notBefore": "2021-06-15T09:30:26.000Z", + "notAfter": "2023-06-15T09:40:26.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "04ba571d2ed6d679b3979aa4edd0f2162d284c06", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElH46JUamhvfj2ocSTxw9Eq7nVdP9OzBOxQ/zaWNXN5ucagla6nruNqfDiZXQMcz4gpZ6pcjtJl+xra2ATzZ9Pw==" + }, + "Er5OTMwLd78=": { + "serialNumber": "59000000063e0619c0b9b66ccb000000000006", + "subject": "C=NO, O=Norwegian Institute of Public Health, CN=DSC AN EU 5", + "issuer": "C=NO, O=Norsk helsenett SF, CN=NO NHN CSCA PROD", + "notBefore": "2021-06-15T09:30:41.000Z", + "notAfter": "2023-06-15T09:40:41.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "3af4abe0dd2a1ef38f6ccf2f238a13ee68d004cd", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfBeQBQBjyKpvjsCujqi15xnygRMyhjNsEy198LzTYuB+Mje1lxIvPYkfO/PEHQFgA52gn26bHCXE75GWqq6UMw==" + }, + "7z8+6oww2a8=": { + "serialNumber": "59000000032417dbd45e12ffbf000000000003", + "subject": "C=NO, O=Norwegian Institute of Public Health, CN=DSC HN EU 2", + "issuer": "C=NO, O=Norsk helsenett SF, CN=NO NHN CSCA PROD", + "notBefore": "2021-06-07T09:16:13.000Z", + "notAfter": "2023-06-07T09:26:13.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "9cdac14a6db231783e024687541fb70ebe8b5b52", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErbWQM5hj5SeR23DzCV0TVKrFhfYsmNVVSbPFxwyw4ZEfersZ3bp2h+rw2BhbLbzVHZIwWfnhaKZ72+JciUksFQ==" + }, + "Ui7DXQikstE=": { + "serialNumber": "34b324f7ad6d2ff355f15db7b1608a2685308f89", + "subject": "C=PA, ST=Panama, L=Panama, O=AIG, OU=AIG, CN=AIG", + "issuer": "C=PA, O=FIRMA ELECTRONICA, CN=AUTORIDAD NACIONAL PARA LA INNOVACION GUBERNAMENTAL", + "notBefore": "2021-09-16T11:14:42.000Z", + "notAfter": "2023-09-16T11:14:42.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "d0ac34a36e965e1820bd0671730465ca1008c04e", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6B5cdgxOlktZr67WAjgdIgoJwG5ZSTRBM6yEZb0y3rrlIHQi95rlKO6dFtQxo5rRPZYjvWSbaqVBgvbc0djcxw==" + }, + "hA1+pwEOxCI=": { + "serialNumber": "1618382320", + "subject": "C=RO, O=Ministerul Sanatatii, CN=BSC", + "issuer": "C=RO, O=Ministerul Sanatatii, CN=AC Ministerul Sanatatii", + "notBefore": "2021-06-18T13:35:59.000Z", + "notAfter": "2026-06-22T13:35:59.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "fe67be25a3c899d1eb919eae96657ca5e992930f", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIQ5LJGhrs3m//HC60//4N8WDL1DiHJRUTirld4U9ebBYYsTtxWknGG0Uton12x8yDHm7wm7aRoFhd5MxW4G5cw==" + }, + "Z7k1XpIWZOE=": { + "serialNumber": "00ace33f75d1033c2c11b6dfc5d84bb0ad", + "subject": "C=SE, O=Swedish eHealth Agency, 2.5.4.97=202100-6552, CN=DCC Signer", + "issuer": "C=SE, O=Swedish eHealth Agency, OU=Digital Covid Certificate Services, 2.5.4.97=202100-6552, CN=Swedish Digital Covid Certificate CSCA", + "notBefore": "2021-06-21T06:07:31.000Z", + "notAfter": "2023-06-21T06:27:31.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "efaec05f0f1eaa99709e4837766a409b9aaeec98", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEaLOo1IGTspZSdr2BqdAvKjZjHfW/Zq8VDrI6nEhBlXUr3VCDlzjrXo5v6ix2qF9RCySJsHgZxUrqWQpFQbrbMw==" + }, + "90CNG8dcdn0=": { + "serialNumber": "254006017a711ec5354bcd8b7272128204eb6587", + "subject": "C=SI, O=NIJZ\\, National Institute of Public Health of Slovenia, OU=NIJZ eHealth, CN=Slovenian Digital Covid Certificate Signer", + "issuer": "C=SI, O=NIJZ\\, National Institute of Public Health of Slovenia, OU=NIJZ eHealth, CN=Slovenian Digital Covid Certificate CSCA", + "notBefore": "2021-06-04T07:53:33.000Z", + "notAfter": "2023-06-04T07:53:33.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "d6d1f01d686e92e40e6e2b43f3896119b5f7e780", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEmxEg2iFDaol9DVnrqIY5zkPXrBANQlakmUfrBhogaDC2ZZ7fkQ2IcOJgEF4rQSyb34g5jDw88g7QaIknaLKMw==" + }, + "6CDB1hL+uKU=": { + "serialNumber": "49f025579468efe851a916bd907e149fde572064", + "subject": "C=SK, L=Bratislava, O=NCZI, OU=DGCOperations, CN=DGC_01", + "issuer": "C=SK, ST=SK, L=Bratislava, O=NCZI, OU=DGCOperations, CN=CSCA_DGC_SK_01", + "notBefore": "2020-09-02T00:00:00.000Z", + "notAfter": "2024-09-01T00:00:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "b50408c6e7ec2f581609eb76c41ae8c376b16196", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6qxT6sSK3TDheWFHTBkfveooRhtUWqEqrELD9B7aAk7xjPS3MBETtmnWb4nRzBINvFwrLDxQCqTX8Jevp33c4Q==" + }, + "r9RtWK9x7dM=": { + "serialNumber": "7804c5ca331aa224fce032899a2354ef6fa69158", + "subject": "C=SM, ST=San Marino, L=City of San Marino, O=Istituto per la Sicurezza Sociale\\ , OU=DGCOperations, CN=DSC_CSR_DGC_SM_01, E=smdcc@iss.sm", + "issuer": "C=SM, ST=SM, L=City of San Marino, O=San Marino Innovation, OU=DGCOperations, CN=CSCA_DGC_SM_01", + "notBefore": "2021-06-10T10:45:59.000Z", + "notAfter": "2023-06-10T10:45:59.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "fc975789cd83adfcf2b5d268e2ebb29b0a12cf48", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEH2+GOTdCPhSUdDZmaM7hq/hRJkZCd3wPyOwB8lS30s4N81r4XFpv1Yev+1bfB4A173DByhZyIKkdnZc/FfaAXQ==" + }, + "gEIK4Q/lAG0=": { + "serialNumber": "00a875f8a85cfe85f0", + "subject": "C=TR, ST=ANKARA, L=ÇANKAYA, O=T.C. SAĞLIK BAKANLIĞI, OU=SAĞLIK BÄ°LGÄ° SÄ°STEMLERÄ° GENEL MÜDÜRLÜĞÜ, CN=healthpassgwuat.saglik.gov.tr", + "issuer": "C=TR, ST=ANKARA, L=ÇANKAYA, O=T.C. SAĞLIK BAKANLIĞI, OU=SAĞLIK BÄ°LGÄ° SÄ°STEMLERÄ° GENEL MÜDÜRLÜĞÜ, CN=healthpassgwprod.saglik.gov.tr", + "notBefore": "2021-08-04T19:02:05.000Z", + "notAfter": "2023-08-04T19:02:05.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "200477077913499f729db8217ac5a140d85f5f1d", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE4gGExz9UXm77v21gaWNSjjtigr9VIyGL9S92FqnF99YqS/ekrLWvW4N6fmHfUST9VJLJVaB9uP3SX1rXlfq7lg==" + }, + "S2V5M1BSTw==": { + "serialNumber": "4f0e753c1291e6b8", + "subject": "C=UK, O=NHSX, OU=COVID, CN=S2V5M1BSTw==", + "issuer": "C=UK, O=NHSX, OU=COVID, CN=CA-temp", + "notBefore": "2021-05-01T00:00:00.000Z", + "notAfter": "2023-04-30T23:59:59.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "70552ec051de9dae35c23a72ce88e175d507c6c9", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErltiOh3nmU+x4p5r249O/2fBSnHkjJpas23lhMAtEYeQutHiw0G+zeEUNZ/n++/XbFoY5hH68d27cGaGW6uoxw==" + }, + "S2V5M1JF": { + "serialNumber": "51f57c9cfc64e45e", + "subject": "C=UK, O=NHSX, OU=COVID, CN=S2V5M1JF", + "issuer": "C=UK, O=NHSX, OU=COVID, CN=CA-temp", + "notBefore": "2021-05-01T00:00:00.000Z", + "notAfter": "2023-04-30T23:59:59.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "09d87cf17571f43f7bd76de8a468693300a85853", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE2ZpDNa1VV6g2PkmyKoL1INO0MtTqE5WT45i3QhY9FFMjbF9ieqnHV4R814wrN3f3vzkx0VN/YJZH4rI1GDlfqw==" + }, + "S2V5MVBSTw==": { + "serialNumber": "58804309245c5225", + "subject": "C=UK, O=NHSX, OU=COVID, CN=S2V5MVBSTw==", + "issuer": "C=UK, O=NHSX, OU=COVID, CN=CA-temp", + "notBefore": "2021-05-01T00:00:00.000Z", + "notAfter": "2023-04-30T23:59:59.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "8d15cf1ead9f1cb3ead49f44f051d1e480890cdb", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyfUqlGg4hfyPYgZJzl1KepkfTaX+F3592syCJ0ylVOHA4fE6vavLXE4cG+Whz/eqyW/rFuZ0HBHHEskmpCngOA==" + }, + "S2V5MVJF": { + "serialNumber": "5ddfeab4c85cc3e8", + "subject": "C=UK, O=NHSX, OU=COVID, CN=S2V5MVJF", + "issuer": "C=UK, O=NHSX, OU=COVID, CN=CA-temp", + "notBefore": "2021-05-01T00:00:00.000Z", + "notAfter": "2023-04-30T23:59:59.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "6d539d5f2a64512961b6f91cd4abe8fc2acd0d0f", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEtWokvmqrJOv/0PO9Vy8lpb6SgWw+rao0qIXntO/Bf7ExryL3yyKRI73IqAh38Lk4joqHrZK8XLZV9PMclgmTVg==" + }, + "S2V5MlBSTw==": { + "serialNumber": "0ef0cccf6905f490", + "subject": "C=UK, O=NHSX, OU=COVID, CN=S2V5MlBSTw==", + "issuer": "C=UK, O=NHSX, OU=COVID, CN=CA-temp", + "notBefore": "2021-05-01T00:00:00.000Z", + "notAfter": "2023-04-30T23:59:59.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "58706938a2278407ce597d3dcfd6d0e2391a6f57", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEP6P6ZlbhcW1xZpp91qagUY+iLIyuu+CynzAlrqiiseqmOYH8uJ71CkbEYhbVh8TemnbaR0unE2j9EPK7Y/x7Vg==" + }, + "S2V5MlJF": { + "serialNumber": "2e6379d0fc2c9237", + "subject": "C=UK, O=NHSX, OU=COVID, CN=S2V5MlJF", + "issuer": "C=UK, O=NHSX, OU=COVID, CN=CA-temp", + "notBefore": "2021-05-01T00:00:00.000Z", + "notAfter": "2023-04-30T23:59:59.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "7c8f3845ab064a2c8102dc68760b147d46b7eee2", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAauvVllnjXm0toiI2cUQfCTdZiDQ6kvtoo1bSnl8W3Rq7WyOeHWYKhBaQ4rEBceqNl5+v1ZLGj0WfnIhXh246Q==" + }, + "S2V5NFBSTw==": { + "serialNumber": "338510d507cc1016", + "subject": "C=UK, O=NHSX, OU=COVID, CN=S2V5NFBSTw==", + "issuer": "C=UK, O=NHSX, OU=COVID, CN=CA-temp", + "notBefore": "2021-05-01T00:00:00.000Z", + "notAfter": "2023-04-30T23:59:59.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "714799238d8384f758487b462fa066d338754e38", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEEfIefhjjacwZ+xxKudJGqdHr0j95tWtYIUGPeWV2XWmduygfe3oIFJu/A2kYGmeZ4u/ERSTNM2ZXuE9k19xVJQ==" + }, + "S2V5NFJF": { + "serialNumber": "27499e7a58558768", + "subject": "C=UK, O=NHSX, OU=COVID, CN=S2V5NFJF", + "issuer": "C=UK, O=NHSX, OU=COVID, CN=CA-temp", + "notBefore": "2021-05-01T00:00:00.000Z", + "notAfter": "2023-04-30T23:59:59.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "c6393784bc1380394db56477b196c8f69340a2e2", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE8g5iFLRT7NyRmKp7pcP8uEgoHFhfmcXOLLD4RUtX50/Rh4Cz7l/faAiODNMmCkcWLA1Z8WOZoNFQsdmeDjXuLQ==" + }, + "S2V5NVBSTw==": { + "serialNumber": "0a86f0f79a017dc9", + "subject": "C=UK, O=NHSX, OU=COVID, CN=S2V5NVBSTw==", + "issuer": "C=UK, O=NHSX, OU=COVID, CN=CA-temp", + "notBefore": "2021-05-01T00:00:00.000Z", + "notAfter": "2023-04-30T23:59:59.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "1720e68f7a118345ff04f6fa59b8f665830ee6b9", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE+4ukUdmm9f4AmyQBwTLQFKPPCQj4fP2BpQkIl2hb4p6FxPGDP9z3JkIo2w2xkoxqs2JrTHn2MCdyh3aeyZWD4A==" + }, + "S2V5NVJF": { + "serialNumber": "31b11acd6c1a8005", + "subject": "C=UK, O=NHSX, OU=COVID, CN=S2V5NVJF", + "issuer": "C=UK, O=NHSX, OU=COVID, CN=CA-temp", + "notBefore": "2021-05-01T00:00:00.000Z", + "notAfter": "2023-04-30T23:59:59.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "bde5d84928584cad53fe022f85465ff602841b03", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEOFOUp1+SLuaM3NnV+OMZKZOoPg76T7D+vqRCasD0BrRZmlUH2gD+aVlpKvp+u7h8ywTR7T6Z6/iI2Qe6F5begg==" + }, + "crm1HLAeaTo=": { + "serialNumber": "73fe8b011a5693b6", + "subject": "C=VA, O=STATO CITTA’ DEL VATICANO, OU=DIREZIONE DI SANITA' E IGIENE, CN=DSC_DGC_VA_01", + "issuer": "C=VA, O=STATO CITTA’ DEL VATICANO, OU=DIREZIONE DI SANITA' E IGIENE, CN=CSCA_DGC_VA_01", + "notBefore": "2021-06-25T09:47:00.000Z", + "notAfter": "2023-06-25T09:47:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "9fe204a0f633c6d04870470cf6ce5026fefde1d7", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEI6Q/krjPDaHJ2WsrBzR9sGYnYjFqkflAAWhJgXbXt3RuUVfJt4c53N6v9J2BE3kPqCVl9FbYrwqQ0vZ+Ps5e+Q==" + }, + "EzYR1uk/E0I=": { + "serialNumber": "16", + "subject": "CN=02-2021_DCC, 2.5.4.5=02-2021, C=EE, O=Estonia, OU=Health and Welfare Information Systems Centre", + "issuer": "C=EE, O=Estonia, OU=Police and Border Guard Board, 2.5.4.5=01-2020, CN=CSCA_Estonia", + "notBefore": "2021-06-08T11:39:22.000Z", + "notAfter": "2023-12-05T11:39:22.000Z", + "signatureAlgorithm": "1.2.840.113549.1.1.10", + "fingerprint": "cca3b977e319e61cdaf5f4abbc21250ce0ae3b88", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEvW8QeGk0YQMGQ/wG2vpPalRdoKNfd48O2qW5uP6gmgRm1OnrQr2gtH3XKxNfVDeuNuqeomsSRkDWa3DXqwLc4A==" + }, + "e9SH8dtWwdY=": { + "serialNumber": "739a56c15aa266ee4f", + "subject": "CN=CERT-GENCAT-1S-21, 2.5.4.5=S0811001G, OU=SELLO ELECTRONICO, OU=Departament de Salut, 2.5.4.97=VATES-S0811001G, O=Departament de Salut de la Generalitat de Catalunya, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-05-26T14:00:00.000Z", + "notAfter": "2023-05-26T14:00:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "6a5c03608f17caaba45bb6d244b2644ee4941d34", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEHZjrINN6u+ZGfRqaYqgqL+yZZCDlu+PKPCkVS/ysPosrontwlhznbPsq5W+d2NyxXeaUAT+lTyRKy1NAxOFqAA==" + }, + "YU9+X9nepqU=": { + "serialNumber": "14c4e25253ae19b48f", + "subject": "CN=CEUTA, 2.5.4.5=S6100007A, OU=SELLO ELECTRONICO, OU=CIUDAD AUTONOMA DE CEUTA, 2.5.4.97=VATES-S6100007A, O=CIUDAD AUTONOMA DE CEUTA, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-05-14T09:30:00.000Z", + "notAfter": "2023-05-14T09:30:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "3f4b4587fe1f38fb283dfa01d4c97ba9ce18f9cd", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgOuoVfBtfKWYpcffhNWfiCf4g4oZBdaPcdrn0HBtkQ/9xYp6FlfFAP1Ze29LaM1emnFxjyQNWV3KeNmoc/vFYA==" + }, + "NCc6YSsVioM=": { + "serialNumber": "11265a4dda72687fcc", + "subject": "CN=Consejería de Salud del Principado de Asturias, 2.5.4.5=S3333001J, OU=SELLO ELECTRONICO, 2.5.4.97=VATES- S3333001J, O=Principado de Asturias, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-05-24T12:40:00.000Z", + "notAfter": "2023-05-24T12:40:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "dbcba45230c6bb762bc756431ee4d8a49a36b128", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUvljql1ZGpwzC92AbO4J751kqnIEXaCI8hYUIEArhReqJcx5qClAGSkDFcbrTPV9WuUtmDQ/NpoV+EejqBmlyg==" + }, + "x3ch4ml934I=": { + "serialNumber": "1cefbbcc771d4c7136", + "subject": "CN=ConselleriadeSanidade.XuntadeGalicia, 2.5.4.5=S1511001H, OU=SELLO ELECTRONICO, 2.5.4.97=VATES-S1511001H, O=Consellería de Sanidad, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-05-28T14:45:00.000Z", + "notAfter": "2023-05-28T14:45:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "9379637ec81215c4d259425b80b798ed46052053", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEeC6+zmnjgdAUmYG4kIPJsMwSFSJclYoKuHKcIQ5PpX4xKyM36Gp2fkKvARbyJYjduU8JzO9nrSILVxjuKRapFw==" + }, + "tCM87WnaaQE=": { + "serialNumber": "7e10b9c776ffd183f7", + "subject": "CN=DEPARTAMENTO DE SANIDAD DEL GOBIERNO DE ARAGON, 2.5.4.5=S5011001D, OU=SELLO ELECTRONICO, OU=DEPARTAMENTO DE SANIDAD, 2.5.4.97=VATES-S5011001D, O=GOBIERNO DE ARAGON, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-05-07T11:15:00.000Z", + "notAfter": "2023-05-07T11:15:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "359f5982785044667e1e5fc46da029a451a4859c", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDOg7lpxitz9+ytOAKFXxS7F4qc9IfKWrj388ETiCbLEQuoYeWEp+4wXPLCF7RRpg6Zxt9iGG93ZAwxl8g05Oag==" + }, + "KG9lzdohSY0=": { + "serialNumber": "6fbdb8a5e535ddd74ad9489a5df67c9490372a90", + "subject": "CN=DGC DS, 2.5.4.5=001, O=Republica Portuguesa - Portuguese Republic, C=PT", + "issuer": "CN=CSCA Saude, 2.5.4.5=001, O=Republica Portuguesa - Portuguese Republic, C=PT", + "notBefore": "2021-05-21T16:17:11.000Z", + "notAfter": "2023-05-21T16:17:10.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "8a959d48bc72e00c304b63deb05ac820ad5b13ed", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEnjK8A8ato900a+wQ1IaxJyaeUGQ5lwsYOCRlq47X4DKGe+P3L22utYcGTWtCekBqarcEzzSHH/X+s5aeEQgYYA==" + }, + "hgpHHrTb4ws=": { + "serialNumber": "03ece56b6dfce88cbf", + "subject": "CN=DIRECCIÓN GENERAL DE SALUD PÚBLICA Y ADICCIONES, 2.5.4.5=S3011001l, OU=SELLO ELECTRONICO, OU=DIRECCION GENERAL INFORMATICA CORPORATIVA, 2.5.4.97=VATES- S3011001l, O=COMUNIDAD AUTONOMA DE LA REGION DE MURCIA, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-05-24T14:50:00.000Z", + "notAfter": "2023-05-24T14:50:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "d4f6c042c8b9a427b0c562865d7a54ee9c60d455", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEli8eKthiom9EydKvhg7LHXj/f88/ZeNUpfEFm6kIAr3K1NCRSv1grJnNiBc9lvggtAjqFHQSGTovtRcGHcVuRA==" + }, + "fNstNUxgGSI=": { + "serialNumber": "3447095cc60170774e024318abf3b17a1f0eda1c", + "subject": "CN=DSC_DGC_FO_345334_TEST_01, O=SJUKRAHUSVERKID, C=FO", + "issuer": "CN=Faroe Islands Health Authority CSCA v1, O=Gjaldstovan, C=FO", + "notBefore": "2021-07-08T14:39:57.000Z", + "notAfter": "2023-07-08T14:39:57.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "a6e3ad050e3ab5797f8fa3efb4c0a1b5e712e961", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyOmUr7E52s+yofKQE/TmtLQxLPEpZnZMA/OL647R1ZZG+O3tA7F3CfMXmgZZV4OOjuoaAbgHh01F5MdEg1eQpg==" + }, + "l8W4rhh9nTs=": { + "serialNumber": "2545389f96e29ed9371b60fb91386f989f8d1e5c", + "subject": "CN=DSC_DGC_FO_345334_VACCINATION_01, O=SJUKRAHUSVERKID, C=FO", + "issuer": "CN=Faroe Islands Health Authority CSCA v1, O=Gjaldstovan, C=FO", + "notBefore": "2021-07-08T14:45:31.000Z", + "notAfter": "2023-07-08T14:45:31.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "27958f55b937fe2c1de17f95352dabf9f0dd8639", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEIp1kjKkjq85G7p7edy5EfNsWF0l4XZu5Rz+nL3viEVP/qiZYWwsQ30RXMDwixcFXI2tSzfu82J31dIEGQ3Ceog==" + }, + "ub6Qmv9xtAo=": { + "serialNumber": "3d728332f59a570b7b", + "subject": "CN=FIRMA CERTIFICADO COVID DIGITAL UE 1, 2.5.4.5=Q2801221I, OU=SELLO ELECTRONICO, OU=DG SISTEMAS DE INFORMACION Y EQUIPAMIENTOS SANITARIOS, 2.5.4.97=VATES-Q2801221I, O=SERVICIO MADRILEÑO DE SALUD, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-05-27T10:00:00.000Z", + "notAfter": "2023-05-27T10:00:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "14c0fab7be32f26c32f72ce2b5afaa334bc62d40", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEhe+kvml2tx/+/wipHR5ttSw1PdmWGLpoEqzNiel2mWsZovfSBR+Jzri7NpH8s8RBSnEDc0kQTl2dSiECy9D45Q==" + }, + "ZcfkloEvfGQ=": { + "serialNumber": "17298a3ddcc9757f2a", + "subject": "CN=GENERALITAT VALENCIANA, 2.5.4.5=S4611001A, OU=SELLO ELECTRONICO, OU=CONSELLERIA DE SANITAT UNIVERSAL I SALUT PÚBLICA, 2.5.4.97=VATES-S4611001A, O=GENERALITAT VALENCIANA, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-05-28T10:55:00.000Z", + "notAfter": "2023-05-28T10:55:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "f9ca9fa535906a36ae5d777c5399ea502629ced3", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEV61Sl3v6NzBqyCbqSb8/fBodGle+b3RJ7Utk+uExDwbOxzS//2GUTRFKW43ppskyr3G60/xeJCaeN7S9Cvssdg==" + }, + "4Qmniw7B0gc=": { + "serialNumber": "0c374491c94f086b28", + "subject": "CN=GERENCIA REGIONAL DE SALUD CASTILLA Y LEÓN (SACYL), 2.5.4.5=Q4700608E, OU=SELLO ELECTRONICO, OU=GERENCIA REGIONAL DE SALUD DE CASTILLA Y LEON, 2.5.4.97=VATES- Q4700608E, O=GERENCIA REGIONAL DE SALUD DE CASTILLA Y LEON, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-04-30T13:30:00.000Z", + "notAfter": "2023-04-30T13:30:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "ff64d437ff4876079a88b07c65d5e8b59a42c1e6", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEGwQNm+R4gtY5wWQTeJ9/kH1TqtnzC97I1EZQTE54p2bJhXvLz2IFkQ7CQQebSk7cwgikTDOcvQSg50JwupMNfA==" + }, + "6ag2wJkSHtk=": { + "serialNumber": "482d197825e63170a7", + "subject": "CN=Gobierno de La Rioja, 2.5.4.5=S2633001I, OU=SELLO ELECTRONICO, OU=DIRECCIÓN GENERAL DE SALUD PUBLICA\\, CONSUMO Y CUIDADOS, 2.5.4.97=VATES-S2633001I, O=DIRECCION GENERAL DE SALUD PUBLICA\\, CONSUMO Y CUIDADOS, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-05-21T08:55:00.000Z", + "notAfter": "2023-05-21T08:55:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "370fd3d324877a9e07f183a4e88875e668d2843a", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqF22rG5bDXpWn/tKy358h2KwYyaSKzCZV0HJptUQq7sWxfeDE86HSoebBrpOvpjhZX2/ZkTF/YRlkh0ztnkclw==" + }, + "/IcqIBnnZzc=": { + "serialNumber": "0431c60cfc00ee4629", + "subject": "CN=IBSALUT-CVD-SELLO, 2.5.4.5=Q0719003F, OU=SELLO ELECTRONICO, 2.5.4.97=VATES-Q0719003F, O=SERVICIO DE SALUD DE LAS ISLAS BALEARES, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-05-24T12:00:00.000Z", + "notAfter": "2023-05-24T12:00:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "4c0541a6e536f3427a6dccbeac1cba435d07d392", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEbxlQ/UTz0AxZWF+xQs+w+xveq5Eche9zf16LnDFYY/K8pZ6l6sb2KlXw8Z/kwopzzbv5LCX1VxLsGO9Rs9OzLg==" + }, + "Pbydc1LscXo=": { + "serialNumber": "0411", + "subject": "CN=IS-DSC-1, 2.5.4.5=1, OU=Directorate of Health, O=Directorate of Health, C=IS", + "issuer": "CN=IS DGC CSCA 1, 2.5.4.5=1, OU=Directorate of Health, O=Directorate of Health, C=IS", + "notBefore": "2021-06-11T10:18:25.000Z", + "notAfter": "2023-06-11T10:18:25.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "42244570870033c071f20dfda561b9fb84534a16", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEO42X7C2X5bSDTnfSJwnk4qAjSk2m11Cy/mmFqryl7J1MhrZDfy77ky4uS0o1iW181Ev51mAiW0J3i3SeKYeEOw==" + }, + "HeWuzGwEM5c=": { + "serialNumber": "704b", + "subject": "CN=IS-DSC-testrec-1, 2.5.4.5=2, OU=Directorate of Health, O=Directorate of Health, C=IS", + "issuer": "CN=IS DGC CSCA 1, 2.5.4.5=1, OU=Directorate of Health, O=Directorate of Health, C=IS", + "notBefore": "2021-07-02T18:10:48.000Z", + "notAfter": "2023-07-02T18:10:48.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "58f78179f2e11163a2f423b2c9ab7091b42d9edf", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEvwlwjQL5cId7nINp/A/b+XNY/WzgX9sIOde8ggZmZjXvIYhDhz7Fvs52ozmdqatDp3yIwPpr6nAMmaNTj0KdZg==" + }, + "MtI93IMknMk=": { + "serialNumber": "243c6b316b131e673e", + "subject": "CN=Inspección General de Sanidad de la Defensa, 2.5.4.5=S2830001J, OU=SELLO ELECTRONICO, OU=Inspección General de Sanidad de la Defensa, 2.5.4.97=VATES-S2830001J, O=Ministerio de Defensa, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-05-27T11:39:00.000Z", + "notAfter": "2023-05-27T11:39:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "f6bc06d15484bd1a725b3209b0eb6b32abe685d3", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE62orr7HL0POyQCqmgbbEqfcbcdcT4vyfQZEPYfxk69ZRv9T8Iy6nWAyEjF0VxvknfCg/x9uig5HFWrpedW2Epw==" + }, + "hFpY/ySOrwI=": { + "serialNumber": "7c135fe14838eff060b11f389f4b3934", + "subject": "CN=LV DSC 001, O=Nacionālais veselības dienests, C=LV", + "issuer": "C=LV, O=VAS Latvijas Valsts radio un televīzijas centrs, 2.5.4.97=NTRLV-40003011203, CN=Digital Green Certificate CSCA", + "notBefore": "2021-05-28T16:50:00.000Z", + "notAfter": "2023-05-28T16:50:00.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "52745b485b97de2e59357bcaca63b73b652ea4f7", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPUwE7htr+kD1eVnJBfRf5tx0kA17qu4p1wRz3EKPxsJyyIznIqr9+HsnMd7k9ID/f0deqjP8dulzS2cFrVVnFQ==" + }, + "MrT00mhDxLQ=": { + "serialNumber": "21523cfbba4224a760db505fd7f90c9c", + "subject": "CN=LV DSC 002, O=Nacionālais veselības dienests, C=LV", + "issuer": "C=LV, O=VAS Latvijas Valsts radio un televīzijas centrs, 2.5.4.97=NTRLV-40003011203, CN=Digital Green Certificate CSCA", + "notBefore": "2021-06-29T16:54:55.000Z", + "notAfter": "2023-06-29T16:54:55.000Z", + "signatureAlgorithm": "RSASSA-PKCS1-v1_5", + "fingerprint": "be1e9eff2fdf0b543e7e485e9abf6ff75a7316c4", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5/m2YdN8L81Ajoi+2brFJbul628alfXRXU26t7hRYEvvsb74tSVm2Dm9cbuhrgFJ+/wXecdxh0tTSHCkMfB0hQ==" + }, + "f6J92LRKpj0=": { + "serialNumber": "2be1ddbd75a437d6", + "subject": "CN=MLT-DSC-RECOVERY-002, O=Government of Malta, C=MT", + "issuer": "C=MT, O=Government of Malta, CN=Malta DCC Signing CA", + "notBefore": "2021-07-01T00:00:00.000Z", + "notAfter": "2023-07-01T23:59:59.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "1b7ca98bf1de55ec9cdcd172b5fc2139a7879eb7", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDSjY8ob2FU6g06KQpeZ2BAjhXnNxdEOMdex6l563qlPvNsY6Z2xjVoDnx9Elns6hbeRjNwD+Lfwq8Tn92Qfk4Q==" + }, + "GvVR3e6VJIM=": { + "serialNumber": "17080717710ee069", + "subject": "CN=MLT-DSC-RECOVERY-003, O=Government of Malta, C=MT", + "issuer": "C=MT, O=Government of Malta, CN=Malta DCC Signing CA", + "notBefore": "2021-07-01T00:00:00.000Z", + "notAfter": "2023-07-01T23:59:59.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "e2a1777c15b1e0373b67dc0cb8cc92ad1548a510", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1kpyGGbMShwokxGdJmH/WPJDcDONYigpXr7Z8jiiX9MP1fkjvsHd4GkcfHHtrrssr2FLR/m5rgI3Ig5xDLJWdQ==" + }, + "QacbC7DdD4U=": { + "serialNumber": "7a34bb777ed55e01", + "subject": "CN=MLT-DSC-TEST-001, O=Government of Malta, C=MT", + "issuer": "C=MT, O=Government of Malta, CN=Malta DCC Signing CA", + "notBefore": "2021-06-21T00:00:00.000Z", + "notAfter": "2023-06-21T23:59:59.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "5b50377477409ce5220530cefea514c688a68a48", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfapP8+QeyFgXVvY41YkQudlUUh7IZBBpIdOJ34xYmxCEuHXbVUFqt/JSnbpVsGsd7ZBPUjL2u5Ks9moBMDEPLg==" + }, + "bfoj2trt6bE=": { + "serialNumber": "2537c35d67ede6d7", + "subject": "CN=MLT-DSC-TEST-002, O=Government of Malta, C=MT", + "issuer": "C=MT, O=Government of Malta, CN=Malta DCC Signing CA", + "notBefore": "2021-07-01T00:00:00.000Z", + "notAfter": "2023-07-01T23:59:59.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "dbf0c316de79a1af11ce6a58b42a1166ce956c90", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE4DsoM1rJFjHyQPcX6WKDWZkouBehfQGxqOgwFAYyRKXbrSuL+tkz8sJfo8djfsuQRLDSuZxud0IOsMB9YsTMpg==" + }, + "UZ1cSMaPcaQ=": { + "serialNumber": "644c0333e36dd4a3", + "subject": "CN=MLT-DSC-VACCINATIONS-001, O=Government of Malta, C=MT", + "issuer": "C=MT, O=Government of Malta, CN=Malta DCC Signing CA", + "notBefore": "2021-06-21T00:00:00.000Z", + "notAfter": "2023-06-21T23:59:59.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "09bedf7f986f48980dc6bb81be650f87c70c904c", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE1q1nvgXLGIbibQuYQU+f+Xs+mcbPmukAc3KQAyy/5KZH+n5F4bG4V0XIjphX093YxHh1JbHWOzuhKuan9FboyA==" + }, + "ccgQ13tmkU8=": { + "serialNumber": "586ae1a3c6c18cca", + "subject": "CN=MLT-DSC-VACCINATIONS-002, O=Government of Malta, C=MT", + "issuer": "C=MT, O=Government of Malta, CN=Malta DCC Signing CA", + "notBefore": "2021-07-01T00:00:00.000Z", + "notAfter": "2023-07-01T23:59:59.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "d76534a5670b54d607053fdc872063f2f1cc1398", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXj9fU7e4KVYe1VakCDZjYquHzkoxSHT8D33zeMDfyLbYi/GSVpKQtPwBPZlPx65r2Kb2warIK8BgxSgsQvMIag==" + }, + "AN1EeLIMAmo=": { + "serialNumber": "48f1c7f5e37f0ec5", + "subject": "CN=Poland Test DGC Service 1, OU=eHealth Centre, O=Ministry of Health, C=PL", + "issuer": "CN=Poland DGC RootCSCA 1, O=Ministry of Health, C=PL", + "notBefore": "2021-05-26T11:50:25.000Z", + "notAfter": "2023-05-26T11:50:25.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "637253d705af47e58616aad0a78ee34b74ec1e96", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAERG4yI/SSv70zEtVjzIrn/CypR1e0BZO5u8bIgltZicrg+992n2a7GucxK6zy91xq8F8XH7B0SJU75qkr8Z1d9A==" + }, + "HhkeqvrtQ0U=": { + "serialNumber": "3eb81376ec182fce", + "subject": "CN=Poland Vaccination DGC Service 1, OU=eHealth Centre, O=Ministry of Health, C=PL", + "issuer": "CN=Poland DGC RootCSCA 1, O=Ministry of Health, C=PL", + "notBefore": "2021-05-26T11:53:10.000Z", + "notAfter": "2023-05-26T11:53:10.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "21a41df1c6b1bf189f5c3f55d63adcc5bd7c67bc", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEgUesihG8ECIDnqxEoU9RouOR9y3NVLBUlpZ+ri+Ur7TQLORQDE3s/M5KGEllwCbsgT6cXUAT8kun12mOcJt78g==" + }, + "FDNJjaSCWi0=": { + "serialNumber": "36b705ef7b615d27", + "subject": "CN=Recovery DGC Service 1, OU=eHealth Centre, O=Ministry of Health, C=PL", + "issuer": "CN=Poland DGC RootCSCA 1, O=Ministry of Health, C=PL", + "notBefore": "2021-05-26T11:49:49.000Z", + "notAfter": "2023-05-26T11:49:49.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "ffbba5c2d07f94a88d89248ae07a4fd5142e64b9", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdxvWMfuk6CHCbffZWPS6bRgVYglYdED1NT1FCfXstUZ81AWmYOh6tbZgOF9OM1lzqdpFD1uOmEZ0A8XXYmkB1A==" + }, + "BEnvMVnNFK8=": { + "serialNumber": "716d0d82405ada569a", + "subject": "CN=SELLO ELECTRONICO DE LA CIUDAD AUTÓNOMA DE MELILLA, 2.5.4.5=S7900010E, OU=SELLO ELECTRONICO, OU=DIRECCIÓN GENERAL DE LA SOCIEDAD DE LA INFORMACIÓN, 2.5.4.97=VATES-S7900010E, O=CIUDAD AUTÓNOMA DE MELILLA, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-05-28T14:45:00.000Z", + "notAfter": "2023-05-28T14:45:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "341c9b523981615142dc3f5cf0e400583a450b32", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEe1XUTCn6DkdbSOKlyzczFWQfDvtP31uGdjzVCzAkuxorNeEX3F827gnycL/mTzRm8lfDxz64lEUcTww0I7unwA==" + }, + "qFNF2dC+mjQ=": { + "serialNumber": "08d273a92e3044136c", + "subject": "CN=SELLO MINISTERIO DE SANIDAD CERTIFICACION COVID19, 2.5.4.5=S2827001E, OU=SELLO ELECTRONICO, OU=SELLO MINISTERIO DE SANIDAD CERTIFICACION COVID19, 2.5.4.97=VATES-S2827001E, O=MINISTERIO DE SANIDAD, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-06-03T08:15:00.000Z", + "notAfter": "2023-06-03T08:15:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "2b32cecccdcda9963fcac9ee4da2475401526792", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE3KVI7Sy+id+bprJ8Eh9AHtW+1qeC4qoHH1oK7HN87UKH9KxQix0jq0RySb2c+5CN+kbAfsYEvULfHToz2FWzWQ==" + }, + "GMFMBu1RlCg=": { + "serialNumber": "7219d71aae22ead2e8", + "subject": "CN=SELLO SAS PARA CERTIFICADO COVID DE LA UE, 2.5.4.5=Q9150013B, OU=SELLO ELECTRONICO, OU=SERVICIO ANDALUZ DE SALUD, 2.5.4.97=VATES-Q9150013B, O=SERVICIO ANDALUZ DE SALUD, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-05-21T12:15:00.000Z", + "notAfter": "2023-05-21T12:15:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "ac63deeb5a3b8aa7a392b894b7cbea0949f39d25", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEt3OX+XF/LZlHff6ZWiHRqQu4WBrgzNZYz4wFJkwkBmk/z0ROsLJ4FlwOLPs2cUEIIV0Pu1cmnngva6+EzQpbAA==" + }, + "JHd4CkNzadI=": { + "serialNumber": "5283e6b4bf3744c5a2", + "subject": "CN=SESCAM Certificado Digital COVID UE, 2.5.4.5=Q4500146H, OU=SELLO ELECTRONICO, 2.5.4.97=VATES- Q4500146H, O=Servicio de Salud de Castilla-La Mancha, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-05-25T12:40:00.000Z", + "notAfter": "2023-05-25T12:40:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "7dbcc7c97fd1060ab8b92571560d7fcf4bf60892", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDvCuOC6NlQCaL18+CEn4sbjC3NNnN4jBAmZo6lrGXbjIfAQ3YWmXc3gqLnSFq84EEV6+2PFy9yyLgq4JmFAfDA==" + }, + "ARrNkCRtprY=": { + "serialNumber": "39c928ce906e97ae99", + "subject": "CN=Secretaría General del Servicio Canario de la Salud, 2.5.4.5=Q8555011I, OU=SELLO ELECTRONICO, OU=Secretaría General del Servicio Canario de la Salud, 2.5.4.97=VATES-Q8555011I, O=Servicio Canario de la Salud, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-04-30T13:10:00.000Z", + "notAfter": "2023-04-30T13:10:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "975fb74cc1f7849a6adbd6262a90457aecd6d1c2", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEblis8RR4Oc4Xqq4RZdhrJ0DnkAvK4vY8AamWbFg9T7OG17La8TJYTq3FqJJd5KttTP71GojxRF0REKpF+uwAtw==" + }, + "YRYidQ+wetg=": { + "serialNumber": "7e82f450faebb1bb88", + "subject": "CN=Sello Electrónico del Servicio Navarro de Salud-Osasunbidea, 2.5.4.5=Q3150004D, OU=SELLO ELECTRONICO, OU=Servicio Navarro de Salud-Osasunbidea, 2.5.4.97=VATES-Q3150004D, O=Servicio Navarro de Salud-Osasunbidea, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-05-14T09:35:00.000Z", + "notAfter": "2023-05-14T09:35:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "3ab701c890b037bac7d8f837e7032941423a2fce", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEtdieg6q+5HvrfAd3ufPZthIWeQX4B/ytBp8iYAGpaJmlkImelmyPWdAAEH4JPXucXOsAcP1tN6vOkk0eHeXgHw==" + }, + "IaGR283U1jA=": { + "serialNumber": "40f07cb54b49390bb1", + "subject": "CN=Servicio Cántabro de Salud, 2.5.4.5=Q3900738J, OU=SELLO ELECTRONICO, 2.5.4.97=VATES-Q3900738J, O=Servicio Cántabro de Salud, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-05-27T12:58:00.000Z", + "notAfter": "2023-05-27T12:58:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "378fcd5805ccb510c700652167d5cb9ba28ab445", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEj/wPWM6e8JDYxW9673ivEvwlu2JAZpsNBrr2sQW5ppku6rcqJUKx7Kbvf2Zx1AJeIS7+PQq2iNcugfD+RC/VfQ==" + }, + "3IsdmTYkAAM=": { + "serialNumber": "3dcf9e866ba2b46e74", + "subject": "CN=Servicio Extremeño de Salud, 2.5.4.5=Q0600413I, OU=SELLO ELECTRONICO, OU=SSII, 2.5.4.97=VATES-Q0600413I, O=Servicio Extremeño de Salud, C=ES", + "issuer": "CN=EADTrust ECC 256 SubCA For Qualified Certificates 2019, O=European Agency of Digital Trust\\, S.L., C=ES, 2.5.4.97=VATES-B85626240, OU=Legal Person", + "notBefore": "2021-05-27T06:43:00.000Z", + "notAfter": "2023-05-27T06:43:00.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "c38369cded412e357b6894fbe2ab428beb53c051", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEManlPIcO9J8UBpHCAbku/KkAfiBrGLIre1buTIzhhoncL0YIO+DQ9uPs6UfzPKXzQq791V5I5avhmpQ6j2zFsQ==" + }, + "FhciF/j3plg=": { + "serialNumber": "7904c820b5908787040000001600000021000000", + "subject": "O=State enterprise \\\"DIIA\\\", CN=\\\"DIIA\\\". Green Certificate DSC 2, 2.5.4.5=22, C=UA, L=Kyiv", + "issuer": "O=State enterprise \\\"DIIA\\\", CN=\\\"DIIA\\\". Green Certificate CSCA, 2.5.4.5=UA-43395033-2021, C=UA, L=Kyiv, 2.5.4.97=NTRUA-43395033", + "notBefore": "2021-08-17T21:00:00.000Z", + "notAfter": "2023-08-17T20:59:59.000Z", + "signatureAlgorithm": "ECDSA", + "fingerprint": "6564fadb714a0f3c3e23c7a3db814d9e059b4156", + "publicKeyAlgorithm": { + "hash": { + "name": "SHA-256" + }, + "name": "ECDSA", + "namedCurve": "P-256" + }, + "publicKeyPem": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEd22zt56DQx1ao5dd4u6jU3KPELJdcWfl0+FJ6cVhCb8s0SmQleFtS9m5RQqVzbBr/JnUfqVZjvrPFzwpbgdMeQ==" + } + }, + "lastupdateDate": 1632418085180 +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 90e0470..82dd47b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,9 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "axios": "^0.21.4", "body-parser": "^1.19.0", + "dayjs": "^1.10.7", "dcc-utils": "^0.2.0", "express": "^4.17.1", "jsrsasign": "^10.4.0", @@ -2533,6 +2535,19 @@ "node": ">=4.0.0" } }, + "node_modules/@react-native-community/cli-tools/node_modules/node-fetch": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", + "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "optional": true, + "peer": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + } + }, "node_modules/@react-native-community/cli-types": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-6.0.0.tgz", @@ -3653,6 +3668,14 @@ "node": ">= 4.5.0" } }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, "node_modules/b64-lite": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/b64-lite/-/b64-lite-1.4.0.tgz", @@ -4720,9 +4743,7 @@ "node_modules/dayjs": { "version": "1.10.7", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", - "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==", - "optional": true, - "peer": true + "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==" }, "node_modules/dcc-utils": { "version": "0.2.0", @@ -6098,6 +6119,25 @@ "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", "dev": true }, + "node_modules/follow-redirects": { + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz", + "integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -8182,6 +8222,19 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/metro/node_modules/node-fetch": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", + "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "optional": true, + "peer": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + } + }, "node_modules/metro/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -8400,19 +8453,6 @@ "node": ">=4.0.0" } }, - "node_modules/node-fetch": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", - "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", - "optional": true, - "peer": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - } - }, "node_modules/node-hkdf-sync": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-hkdf-sync/-/node-hkdf-sync-1.0.0.tgz", @@ -13961,6 +14001,16 @@ "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", "optional": true, "peer": true + }, + "node-fetch": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", + "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "optional": true, + "peer": true, + "requires": { + "whatwg-url": "^5.0.0" + } } } }, @@ -14723,6 +14773,14 @@ "optional": true, "peer": true }, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + }, "b64-lite": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/b64-lite/-/b64-lite-1.4.0.tgz", @@ -15569,9 +15627,7 @@ "dayjs": { "version": "1.10.7", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", - "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==", - "optional": true, - "peer": true + "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==" }, "dcc-utils": { "version": "0.2.0", @@ -16681,6 +16737,11 @@ "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", "dev": true }, + "follow-redirects": { + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz", + "integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==" + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -18073,6 +18134,16 @@ "graceful-fs": "^4.1.6" } }, + "node-fetch": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", + "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "optional": true, + "peer": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -18559,16 +18630,6 @@ "optional": true, "peer": true }, - "node-fetch": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", - "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", - "optional": true, - "peer": true, - "requires": { - "whatwg-url": "^5.0.0" - } - }, "node-hkdf-sync": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-hkdf-sync/-/node-hkdf-sync-1.0.0.tgz", diff --git a/package.json b/package.json index 946df48..60e4f91 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,9 @@ "author": "", "license": "ISC", "dependencies": { + "axios": "^0.21.4", "body-parser": "^1.19.0", + "dayjs": "^1.10.7", "dcc-utils": "^0.2.0", "express": "^4.17.1", "jsrsasign": "^10.4.0", diff --git a/rules.json b/rules.json new file mode 100644 index 0000000..38f27a9 --- /dev/null +++ b/rules.json @@ -0,0 +1 @@ +{"rules":[{"name":"vaccine_end_day_complete","type":"EU/1/20/1525","value":"365"},{"name":"vaccine_start_day_complete","type":"EU/1/20/1525","value":"15"},{"name":"vaccine_end_day_not_complete","type":"EU/1/20/1525","value":"365"},{"name":"vaccine_start_day_not_complete","type":"EU/1/20/1525","value":"15"},{"name":"vaccine_end_day_complete","type":"EU/1/21/1529","value":"365"},{"name":"vaccine_start_day_complete","type":"EU/1/21/1529","value":"0"},{"name":"vaccine_end_day_not_complete","type":"EU/1/21/1529","value":"84"},{"name":"vaccine_start_day_not_complete","type":"EU/1/21/1529","value":"15"},{"name":"vaccine_end_day_complete","type":"EU/1/20/1507","value":"365"},{"name":"vaccine_start_day_complete","type":"EU/1/20/1507","value":"0"},{"name":"vaccine_end_day_not_complete","type":"EU/1/20/1507","value":"42"},{"name":"vaccine_start_day_not_complete","type":"EU/1/20/1507","value":"15"},{"name":"vaccine_end_day_complete","type":"EU/1/20/1528","value":"365"},{"name":"vaccine_start_day_complete","type":"EU/1/20/1528","value":"0"},{"name":"vaccine_end_day_not_complete","type":"EU/1/20/1528","value":"42"},{"name":"vaccine_start_day_not_complete","type":"EU/1/20/1528","value":"15"},{"name":"rapid_test_start_hours","type":"GENERIC","value":"0"},{"name":"rapid_test_end_hours","type":"GENERIC","value":"48"},{"name":"molecular_test_start_hours","type":"GENERIC","value":"0"},{"name":"molecular_test_end_hours","type":"GENERIC","value":"48"},{"name":"recovery_cert_start_day","type":"GENERIC","value":"0"},{"name":"recovery_cert_end_day","type":"GENERIC","value":"180"},{"name":"ios","type":"APP_MIN_VERSION","value":"1.1.0"},{"name":"android","type":"APP_MIN_VERSION","value":"1.1.0"}],"lastupdateDate":1632418898529} \ No newline at end of file diff --git a/src/api/green/controller.ts b/src/api/green/controller.ts index 0e08e2d..8392a8c 100644 --- a/src/api/green/controller.ts +++ b/src/api/green/controller.ts @@ -1,10 +1,14 @@ import { Request, Response } from 'express'; -import Verifier from '../../../utils/dgcVerifier/Verifier'; +import Verifier from '../../utils/dgcVerifier/Verifier'; let verifier:Verifier; -Verifier.instanceVerifier().then((ver)=>verifier=ver).catch(console.error); +Verifier.instanceVerifier().then((ver:Verifier)=>verifier=ver).catch(console.error); -export const get = (req: Request, res: Response):void => { - const cert = req.body; - const result = verifier.checkCertificate(cert); - res.status(200).send({'data':result}); +export const get = async (req: Request, res: Response):Promise => { + const cert = req.body['key']; + try { + const result = await verifier.checkCertificate(cert); + res.status(200).send(result); + } catch (error) { + res.status(200).send({message:'unsigned certificate',error}); + } }; \ No newline at end of file diff --git a/src/api/green/index.ts b/src/api/green/index.ts index 8375200..cac2a6b 100644 --- a/src/api/green/index.ts +++ b/src/api/green/index.ts @@ -10,7 +10,7 @@ export default class GreenApi implements API { this.router = router; } - setupApi():void { + setupApi(): void { this.router.post('/green',middleware.canGet,controller.get); } } diff --git a/src/api/green/middleware.ts b/src/api/green/middleware.ts index 5b7c30c..25a6454 100644 --- a/src/api/green/middleware.ts +++ b/src/api/green/middleware.ts @@ -1,6 +1,5 @@ import { Request, Response, NextFunction } from 'express'; export const canGet = (req: Request, res: Response, next: NextFunction):void => { - return next(); }; \ No newline at end of file diff --git a/src/api/index.ts b/src/api/index.ts index 1b77d09..740549c 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -5,9 +5,9 @@ export const setupApis = (application: Express):void => { const router = Router(); const exampleApi = new GreenApi(router); - exampleApi.setupApi(); - + exampleApi.setupApi(); application.use('/api', router); + console.log('inited'); }; export interface API { diff --git a/src/app.ts b/src/app.ts index 2279710..bf1c091 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,12 +1,11 @@ +import { setupApis } from './api'; import express from 'express'; -import bodyParser from 'body-parser'; const app = express(); app.set('port', process.env.PORT || 3000); -app.use(bodyParser.json()); -app.use(bodyParser.urlencoded({ extended: true })); - -import './api'; +app.use(express.json()); +app.use(express.urlencoded()); +setupApis(app); export default app; \ No newline at end of file diff --git a/src/server.ts b/src/server.ts index 9e9d140..fc7de94 100644 --- a/src/server.ts +++ b/src/server.ts @@ -1,5 +1,4 @@ import app from './app'; - const server = app.listen(app.get('port'), () => { console.log( 'App is running at http://localhost:%d in %s mode', diff --git a/src/utils/dgcVerifier/CertificateDownloader.ts b/src/utils/dgcVerifier/CertificateDownloader.ts index 85e663d..4ec5301 100644 --- a/src/utils/dgcVerifier/CertificateDownloader.ts +++ b/src/utils/dgcVerifier/CertificateDownloader.ts @@ -1,30 +1,39 @@ +import { response } from 'express'; import fs from 'fs/promises'; +import axios, { AxiosResponse } from 'axios'; + export class CertificateDownloader{ // static instance: CertificateDownloader; private readonly baseUrl = 'https://get.dgc.gov.it'; private readonly updateApi = '/v1/dgc/signercertificate/update' private readonly statusApi = '/v1/dgc/signercertificate/status' private readonly keyStorage = './cerificate_collection.json'; - private readonly timeSpan = 86400000; - private cerficateCollection:string[] = []; - private currentValidKids = []; + // private readonly timeSpan = 86400000; + private readonly timeSpan = 1; + private cerficateCollection:unknown = {}; + private currentValidKids:string[] = []; - public constructor(){ - this.getCertificates(); - } - - public async getCertificates(): Promise { - const file = await fs.open(this.keyStorage,'r'); - const data = await file.readFile(); - const savedData = JSON.parse( data.toString() || '{}'); - if(savedData.lastupdateDate == null || Date.now() - savedData?.lastupdateDate > this.timeSpan){ - this.getAllCertificate() - .then(() => { console.log('could not read the certificates from the local file'); return this.cerficateCollection; }) - .catch(console.error); + public async getCertificates(): Promise { + let data = '{}'; + try { + const file = await fs.open(this.keyStorage,'r'); + data = (await file.readFile()).toString('utf-8'); + await file.close(); + const savedData = JSON.parse( data || '{}'); + // if(savedData.lastupdateDate == null || Date.now() - savedData?.lastupdateDate > this.timeSpan){ + // await this.getAllCertificate(); + // } else { + this.cerficateCollection = savedData.certificates; + // } + return this.cerficateCollection; + } catch (error) { + console.log(error); + if(error.errno == -2){ + await fs.writeFile(this.keyStorage,'{}'); + } else { + console.log(error); + } } - console.log('cerficates collection is valid loading from local source'); - this.cerficateCollection = savedData.certificates; - return this.cerficateCollection; } // public static getCertificateDownloader():CertificateDownloader{ @@ -34,45 +43,54 @@ export class CertificateDownloader{ // return CertificateDownloader.instance; // } + async getAllCertificate(): Promise { + this.cerficateCollection = {}; + const response:AxiosResponse = (await axios.get('https://raw.githubusercontent.com/lovasoa/sanipasse/master/src/assets/Digital_Green_Certificate_Signing_Keys.json')); + if(response.status == 200){ + console.log(response.data); + this.cerficateCollection = response.data; + console.log(response); + const lastupdateDate = Date.now(); + const file = await fs.open(this.keyStorage,'w'); + file.writeFile(JSON.stringify({'certificates':this.cerficateCollection, lastupdateDate})); + console.log(this.cerficateCollection); + await file.close(); + }else{ + throw new Error(response.statusText); + } + } + // async getAllCertificate(): Promise { - // this.cerficateCollection = {}; - // const response = (await fetch('https://raw.githubusercontent.com/lovasoa/sanipasse/master/src/assets/Digital_Green_Certificate_Signing_Keys.json')); - // if(response.ok){ - // this.cerficateCollection = await response.json(); - // console.log(response); - // const lastupdateDate = Date.now(); - // const file = await fs.open(this.keyStorage,'rw'); - // file.writeFile(JSON.stringify({'certificates':this.cerficateCollection, lastupdateDate})); - // }else{ - // throw new Error(response.statusText); + // let exit = false; + // let headers = {}; + // this.cerficateCollection = []; + // while(!exit){ + // // const response = await fetch(this.baseUrl+this.updateApi,{headers}); + // const response:AxiosResponse = await axios.get(this.baseUrl+this.updateApi,{headers}); + // // console.log(response.headers); + // headers = {'X-RESUME-TOKEN': response.headers['x-resume-token']}; + // const currentKid:string = response.headers['x-kid']; + // if(this.currentValidKids.includes(currentKid)){ + // // console.log('=========AGGIUNG==========='); + // const cert = `-----BEGIN CERTIFICATE-----${response.data}-----END CERTIFICATE-----`; + // // console.log(cert); + // this.cerficateCollection.push(cert); + // } + // exit = (response.status !== 200); // } + // const lastupdateDate = Date.now(); + // const file = await fs.open(this.keyStorage,'w'); + // file.writeFile(JSON.stringify({'certificates':this.cerficateCollection, lastupdateDate})); + // console.log(this.cerficateCollection); + // await file.close(); // } - async getAllCertificate(): Promise { - let exit = false; - let headers = {}; - this.cerficateCollection = []; - while(!exit){ - const response = await fetch(this.baseUrl+this.updateApi,{headers}); - headers = {'X-RESUME-TOKEN': response.headers.get('X-RESUME-TOKEN')}; - const currentKid:string = response.headers.get('X-KID') || ''; - if(this.currentValidKids.includes(currentKid as never)){ - const cert = await response.text(); - this.cerficateCollection.push('-----BEGIN CERTIFICATE-----\n' + cert + '-----END CERTIFICATE-----'); - } - exit = (response.status !== 200); - } - const lastupdateDate = Date.now(); - const file = await fs.open(this.keyStorage,'rw'); - file.writeFile(JSON.stringify({'certificates':this.cerficateCollection, lastupdateDate})); - } - - async updateKids(): Promise { - try { - const resp = await fetch(this.baseUrl+this.statusApi); - this.currentValidKids = await resp.json(); - } catch (error) { - console.log('could not get keyChild ', error); - } - } + // async updateKids(): Promise { + // try { + // const resp = await axios.get(this.baseUrl+this.statusApi); + // this.currentValidKids = await resp.data as string[]; + // } catch (error) { + // console.log('could not get keyChild ', error); + // } + // } } \ No newline at end of file diff --git a/src/utils/dgcVerifier/RuleDownloader.ts b/src/utils/dgcVerifier/RuleDownloader.ts index a1ec288..80809ab 100644 --- a/src/utils/dgcVerifier/RuleDownloader.ts +++ b/src/utils/dgcVerifier/RuleDownloader.ts @@ -1,34 +1,49 @@ +import fs from 'fs/promises'; +import axios, { AxiosResponse } from 'axios'; + export class RuleDownloader { static instance: RuleDownloader; private readonly baseUrl = 'https://get.dgc.gov.it'; private readonly timeSpan = 86400000; - private readonly keyStorage = 'rules' + // private readonly timeSpan = 1; + private readonly keyStorage = 'rules.json' // private readonly timeSpan = 1000; - public rules:unknown = {} + public rules:unknown[] = [] // eslint-disable-next-line @typescript-eslint/no-empty-function - constructor(){ - this.getRules(); - } + constructor(){} - public getRules(): unknown { - const savedData = JSON.parse(localStorage.getItem(this.keyStorage) || '{}'); - if(savedData.lastupdateDate == null || Date.now() - savedData?.lastupdateDate > this.timeSpan){ - this.getSettings() - .then(() => { console.log('could not read the certificates from the local file'); return this.rules; }) - .catch(console.error); + public async getRules(): Promise { + let data = '{}'; + try { + const file = await fs.open(this.keyStorage,'r'); + data = (await file.readFile()).toString('utf-8'); + await file.close(); + const savedData = JSON.parse(data); + if(savedData.lastupdateDate == null || Date.now() - savedData?.lastupdateDate > this.timeSpan){ + await this.getSettings(); + } else { + this.rules = savedData.rules; + } + return this.rules; + } catch (error) { + console.log(error); + if(error.code == 'ENONET'){ + await fs.writeFile(this.keyStorage,'{}'); + } else { + console.log(error); + } } - console.log('cerficates collection is valid loading from local source'); - // console.log(dataRead.certificates); - this.rules = savedData.certificates; - return this.rules; } - private async getSettings(): Promise{ - const response = await fetch(`${this.baseUrl}/v1/dgc/settings`); - const jsonData = await response.json(); + private async getSettings(): Promise{ + const response:AxiosResponse = await axios.get(`${this.baseUrl}/v1/dgc/settings`); + const jsonData = response.data; // this.rules = Rule.fromJSON(jsonData,{valueSets, validationClock:new Date().toISOString(),}) this.rules = jsonData; - localStorage.setItem(this.keyStorage, JSON.stringify({rules:this.rules,lastupdateDate:Date.now()})); + // localStorage.setItem(this.keyStorage, JSON.stringify({rules:this.rules,lastupdateDate:Date.now()})); + const file = await fs.open(this.keyStorage,'w'); + file.writeFile(JSON.stringify({rules:this.rules,lastupdateDate:Date.now()})); + await file.close(); return jsonData; } } \ No newline at end of file diff --git a/src/utils/dgcVerifier/VaccineVerifier.ts b/src/utils/dgcVerifier/VaccineVerifier.ts new file mode 100644 index 0000000..7ef12b9 --- /dev/null +++ b/src/utils/dgcVerifier/VaccineVerifier.ts @@ -0,0 +1,129 @@ +import {DCC} from 'dcc-utils'; +import dayjs from 'dayjs'; +import utc from 'dayjs/plugin/utc'; +import timezone from 'dayjs/plugin/timezone'; + +interface checkResult { + valid: boolean; + message: string; + type: string; +} + +export class VaccineVerifier { + private readonly vaccineStartDayNotComplete = 'vaccine_start_day_not_complete'; + private readonly vaccineEndDayNotComplete = 'vaccine_end_day_not_complete'; + private readonly vaccineStartDayComplete = 'vaccine_start_day_complete'; + private readonly vaccineEndDayComplete = 'vaccine_end_day_complete'; + private readonly recoveryCertStartDay = 'recovery_cert_start_day'; + private readonly recoveryCertEndDay = 'recovery_cert_end_day'; + private readonly rapidTestStartHour = 'rapid_test_start_hours'; + private readonly rapidTestEndHour = 'rapid_test_end_hours'; + private readonly molecularTestStartHour = 'molecular_test_start_hours'; + private readonly molecularTestEndHour = 'molecular_test_end_hours'; + private readonly positiveTest = '260373001'; + private readonly negativeTest = '260415000'; + private readonly rapidTest = 'LP217198-3'; // RAT, Rapid Antigen Test + private readonly molecularTest = 'LP6464-4'; // NAAT, Nucleic Acid Amplification Test + + settings=[]; + certTypes=['r','v','t',] + + private checkVaccine = (payload:any):checkResult => { + const inoculationDate = dayjs(payload.dt); + const validRulesSet = this.getRulesSet(payload.mp); + const vaccineDiff = payload.sd - payload.dn; + const baseRuleIndex = validRulesSet.findIndex((elem:any)=>{ return elem.name == this.vaccineEndDayComplete;}); + if( baseRuleIndex == -1) + return {valid:false, message:'Invaild set of rules check with operator', type:'vaccine'}; + if(vaccineDiff <= 0){ + return this.getLogicValidityDays(validRulesSet, this.vaccineStartDayComplete, this.vaccineEndDayComplete,inoculationDate); + } else { + return this.getLogicValidityDays(validRulesSet, this.vaccineStartDayNotComplete, this.vaccineEndDayNotComplete,inoculationDate); + } + } + + private checkRecovery = (payload:any):checkResult => { + const now = dayjs(); + const dateFrom = dayjs(payload.df); + const dateEnd = dayjs(payload.du); + if(now.isAfter(dateFrom) && now.isBefore(dateEnd)){ + return{valid:true, message:'Certificate is valid', type:'recovery'}; + } + return {valid:false, message:'toimplement', type:'recovery'}; + } + + private checkTest = (payload:any):checkResult => { + const validRulesSet = this.getRulesSet('GENERIC'); + const testType = payload.tt; + if(payload.tr === this.positiveTest) + return {valid:false, message:'The test detected the virus',type:'test'}; + const collectionDateTime = dayjs.tz(payload.sc,'UTC').tz(dayjs.tz.guess()); + if(testType == this.rapidTest){ + return this.getLogicValidityHours(validRulesSet,this.rapidTestStartHour,this.rapidTestEndHour,collectionDateTime); + } + if(testType == this.molecularTest){ + return this.getLogicValidityHours(validRulesSet,this.molecularTestStartHour,this.molecularTestEndHour,collectionDateTime); + } + return {valid:false, message:'unknown test type',type:'test'}; + } + + private functionSelector = { + 'v':this.checkVaccine, + 'r':this.checkRecovery, + 't':this.checkTest + } + + constructor(settings:unknown[]) { + dayjs.extend(utc); + dayjs.extend(timezone); + this.settings = settings; + } + + public checkCertifcate(pass:DCC):checkResult { + console.log(pass.payload); + const payloadAndType = this.getPayloadAndType(pass); + const result: checkResult = this.functionSelector[payloadAndType.key](payloadAndType.payload); + return result; + } + + private getPayloadAndType(pass:DCC): {key:string,payload:unknown}{ + const result:{key:string,payload:unknown} = {key:'',payload:[]}; + this.certTypes.forEach((key:string) => { + if(pass.payload[key] != undefined){ + if((pass.payload[key] as unknown[]).length != 0){ + result.key =(key); + result.payload = (pass.payload[key][pass.payload[key].length -1]); + } + } + }); + return result; + } + + private getRulesSet(type:string): unknown[]{ + return this.settings.filter((rule:unknown)=>{ + return rule['type'] = type; + }); + } + + private getLogicValidityDays(validRulesSet:unknown[],startKey:string, endKey:string, inoculationDate: dayjs.Dayjs): checkResult { + const now = dayjs(); + const ruleStart = validRulesSet.find((elem:any)=>{return elem.name == startKey;}); + const ruleEnd = validRulesSet.find((elem:any)=>{return elem.name == endKey;}); + const startValidity = inoculationDate.add(parseInt(ruleStart['value']),'days'); + const endValidity = inoculationDate.add(parseInt(ruleEnd['value']),'days'); + if(startValidity.isAfter(now)) return {valid:false, message:'Certificate not yet valid', type:'vaccine'}; + if(now.isAfter(endValidity)) return {valid:false, message:'Certificate not more valid', type:'vaccine'}; + return {valid:true, message:'Certificate is valid', type:'vaccine'}; + } + + private getLogicValidityHours(validRulesSet:unknown[],startKey:string, endKey:string, inoculationDate: dayjs.Dayjs): checkResult { + const now = dayjs(); + const ruleStart = validRulesSet.find((elem:any)=>{return elem.name == startKey;}); + const ruleEnd = validRulesSet.find((elem:any)=>{return elem.name == endKey;}); + const startValidity = inoculationDate.add(parseInt(ruleStart['value']),'hours'); + const endValidity = inoculationDate.add(parseInt(ruleEnd['value']),'hours'); + if(startValidity.isAfter(now)) return {valid:false, message:'Certificate not yet valid', type:'test'}; + if(now.isAfter(endValidity)) return {valid:false, message:'Certificate not more valid', type:'test'}; + return {valid:true, message:'Certificate is valid', type:'test'}; + } +} \ No newline at end of file diff --git a/src/utils/dgcVerifier/Verifier.ts b/src/utils/dgcVerifier/Verifier.ts index 76efc2c..80679c6 100644 --- a/src/utils/dgcVerifier/Verifier.ts +++ b/src/utils/dgcVerifier/Verifier.ts @@ -1,14 +1,12 @@ import { CertificateDownloader } from './CertificateDownloader'; import { RuleDownloader } from './RuleDownloader'; +import { VaccineVerifier } from './VaccineVerifier'; import {DCC} from 'dcc-utils'; -import jsrsasign from 'jsrsasign'; export default class Verifier { static instance: Verifier|undefined = undefined; private certDownloader: CertificateDownloader; private ruleDownloader: RuleDownloader; - private certificateList: string[] = []; - private constructor(){ this.certDownloader = new CertificateDownloader(); this.ruleDownloader = new RuleDownloader(); @@ -17,22 +15,20 @@ export default class Verifier { public static async instanceVerifier(): Promise{ if (Verifier.instance == undefined){ Verifier.instance = new Verifier(); - Verifier.instance.certificateList = await Verifier.instance.certDownloader.getCertificates(); + await Verifier.instance.certDownloader.getCertificates(); + await Verifier.instance.ruleDownloader.getRules(); + } return Verifier.instance; } async checkCertificate(certificate:string): Promise{ + console.log(certificate); const dcc = await DCC.fromRaw(certificate); - let result: unknown; - this.certificateList.forEach(async (cert: string) => { - const verifier = jsrsasign.KEYUTIL.getKey(cert); - if (typeof verifier == typeof jsrsasign.KJUR.crypto.ECDSA ){ - const xyCoord = (verifier as jsrsasign.KJUR.crypto.ECDSA).getPublicKeyXYHex(); - result = await dcc.checkSignature(xyCoord); - } - }); - console.log(result); + let result = await dcc.checkSignatureWithKeysList(await this.certDownloader.getCertificates()); + const vaccineVerifier = new VaccineVerifier(await this.ruleDownloader.getRules()); + result = {signature: result, valid:vaccineVerifier.checkCertifcate(dcc)}; + console.log(result); return result; } } diff --git a/tsconfig.json b/tsconfig.json index 83b5f57..4932e6e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -73,7 +73,7 @@ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ - "strict": true, /* Enable all strict type-checking options. */ + // "strict": true, /* Enable all strict type-checking options. */ // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */