diff --git a/CHANGELOG.md b/CHANGELOG.md index 1571e43f2..b6816ddf3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -50,6 +50,10 @@ Release 6.0.0 (unreleased): - Update Bouncy Castle 1.84 - Update to kotlinx.coroutines 1.11.0 - Matrix testing + - Add `LoTEFilterService` for extracting trust list certificates from `LoTE` based on `ServiceTypeIdentifier` + - Add signature and time validity checks of certificate against the trust list + - Add JAdES B-B validation (Used when fetching LoTE) + - Add `issuer` property in `StoreEntry`, for evaluation of trust against trust list Release 5.12.0: - W3C JWT VC: diff --git a/etsi-data-classes/src/commonMain/kotlin/at/asitplus/etsi/EtsiX509CertificateSerializer.kt b/etsi-data-classes/src/commonMain/kotlin/at/asitplus/etsi/EtsiX509CertificateSerializer.kt index 1c010f7d1..676650870 100644 --- a/etsi-data-classes/src/commonMain/kotlin/at/asitplus/etsi/EtsiX509CertificateSerializer.kt +++ b/etsi-data-classes/src/commonMain/kotlin/at/asitplus/etsi/EtsiX509CertificateSerializer.kt @@ -6,10 +6,15 @@ import kotlinx.serialization.KSerializer import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.descriptors.SerialDescriptor +import kotlinx.serialization.descriptors.buildClassSerialDescriptor import kotlinx.serialization.encoding.Decoder import kotlinx.serialization.encoding.Encoder +import kotlinx.serialization.json.JsonDecoder +import kotlinx.serialization.json.jsonObject +import kotlinx.serialization.json.jsonPrimitive +import kotlin.io.encoding.Base64 -class EtsiX509CertificateSerializer : KSerializer { +class EtsiX509CertificateSerializer : KSerializer { private val delegate = EtsiX509CertificateSerializationSurrogate.serializer() override val descriptor: SerialDescriptor get() = SerialDescriptor( @@ -19,8 +24,10 @@ class EtsiX509CertificateSerializer : KSerializer { override fun serialize( encoder: Encoder, - value: X509Certificate + value: X509Certificate? ) { + if (value == null) return encoder.encodeNull() + encoder.encodeSerializableValue( EtsiX509CertificateSerializationSurrogate.serializer(), EtsiX509CertificateSerializationSurrogate( @@ -29,9 +36,16 @@ class EtsiX509CertificateSerializer : KSerializer { ) } - override fun deserialize(decoder: Decoder) = decoder.decodeSerializableValue( - EtsiX509CertificateSerializationSurrogate.serializer(), - ).value + override fun deserialize(decoder: Decoder): X509Certificate? = try { + if (decoder is JsonDecoder) { + val element = decoder.decodeJsonElement() + decoder.json.decodeFromJsonElement(delegate, element).value + } else { + decoder.decodeSerializableValue(delegate).value + } + } catch (_: Exception) { + null + } @Serializable private data class EtsiX509CertificateSerializationSurrogate( diff --git a/etsi-data-classes/src/commonMain/kotlin/at/asitplus/etsi/ServiceDigitalIdentity.kt b/etsi-data-classes/src/commonMain/kotlin/at/asitplus/etsi/ServiceDigitalIdentity.kt index 354232f58..98a336848 100644 --- a/etsi-data-classes/src/commonMain/kotlin/at/asitplus/etsi/ServiceDigitalIdentity.kt +++ b/etsi-data-classes/src/commonMain/kotlin/at/asitplus/etsi/ServiceDigitalIdentity.kt @@ -22,7 +22,7 @@ interface OtherId @Serializable data class ServiceDigitalIdentity( @SerialName(SerialNames.X509_CERTIFICATE) - val x509Certificates: List<@Serializable(with = EtsiX509CertificateSerializer::class) X509Certificate>? = null, + val x509Certificates: List<@Serializable(with = EtsiX509CertificateSerializer::class) X509Certificate?> = emptyList(), @SerialName(SerialNames.X509_SUBJECT_NAMES) val x509SubjectNames: List? = null, @SerialName(SerialNames.PUBLIC_KEY_VALUE) @@ -33,8 +33,8 @@ data class ServiceDigitalIdentity( val otherIds: List? = null, ) { init { - require(x509Certificates?.isNotEmpty() != false) { - "Expected at least 1 X509Certificate, but got 0." + require( x509Certificates.isNotEmpty() || x509SKIs?.isNotEmpty() != false) { + "Expected at least 1 X509Certificate or at least 1 X509SKI, but got 0." } require(x509SubjectNames?.isNotEmpty() != false) { "Expected at least 1 X509SubjectName, but got 0." @@ -42,9 +42,6 @@ data class ServiceDigitalIdentity( require(publicKeyValues?.isNotEmpty() != false) { "Expected at least 1 PublicKeyValue, but got 0." } - require(x509SKIs?.isNotEmpty() != false) { - "Expected at least 1 X509SKI, but got 0." - } require(otherIds?.isNotEmpty() != false) { "Expected at least 1 other id, but got 0." } diff --git a/etsi-data-classes/src/commonMain/kotlin/at/asitplus/etsi/TrustListPayload.kt b/etsi-data-classes/src/commonMain/kotlin/at/asitplus/etsi/TrustListPayload.kt new file mode 100644 index 000000000..b37d1f9b8 --- /dev/null +++ b/etsi-data-classes/src/commonMain/kotlin/at/asitplus/etsi/TrustListPayload.kt @@ -0,0 +1,10 @@ +package at.asitplus.etsi + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class TrustListPayload( + @SerialName("LoTE") + val loTe: ListOfTrustedEntities +) \ No newline at end of file diff --git a/vck/build.gradle.kts b/vck/build.gradle.kts index e9d764066..eac74f9e6 100644 --- a/vck/build.gradle.kts +++ b/vck/build.gradle.kts @@ -29,6 +29,7 @@ kotlin { dependencies { api(project(":dif-data-classes")) api(project(":openid-data-classes")) + api(project(":etsi-data-classes")) api(project(":sd-jwt-type-metadata")) commonImplementationAndApiDependencies() } diff --git a/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/agent/HolderAgent.kt b/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/agent/HolderAgent.kt index 30406791a..a0bb65d22 100644 --- a/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/agent/HolderAgent.kt +++ b/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/agent/HolderAgent.kt @@ -15,6 +15,7 @@ import at.asitplus.openid.dcql.DCQLQuery import at.asitplus.signum.indispensable.cosef.CoseKey import at.asitplus.signum.indispensable.cosef.toCoseKey import at.asitplus.signum.indispensable.pki.X509Certificate +import at.asitplus.signum.indispensable.pki.leaf import at.asitplus.wallet.lib.agent.SubjectCredentialStore.StoreEntry import at.asitplus.wallet.lib.data.CredentialPresentation import at.asitplus.wallet.lib.data.CredentialPresentationRequest @@ -68,7 +69,8 @@ class HolderAgent( vc = validated.jws, vcSerialized = credential.vcJws, scheme = credential.scheme, - renewalInfo = renewalInfo + renewalInfo = renewalInfo, + issuer = credential.signedVcJws.jws.jwsHeader.certificateChain?.leaf?.encodeToDerOrNull() ) } @@ -82,7 +84,8 @@ class HolderAgent( vcSerialized = credential.vcSdJwt, disclosures = validated.disclosures, scheme = credential.scheme, - renewalInfo = renewalInfo + renewalInfo = renewalInfo, + issuer = credential.signedSdJwtVc.jws.jwsHeader.certificateChain?.leaf?.encodeToDerOrNull() ) } @@ -92,7 +95,8 @@ class HolderAgent( subjectCredentialStore.storeCredential( issuerSigned = validated.issuerSigned, scheme = credential.scheme, - renewalInfo = renewalInfo + renewalInfo = renewalInfo, + issuer = credential.issuerSigned.issuerAuth.unprotectedHeader?.certificateChain?.getOrNull(0) ) } } diff --git a/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/agent/InMemorySubjectCredentialStore.kt b/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/agent/InMemorySubjectCredentialStore.kt index 86ab2a69f..81bf0545b 100644 --- a/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/agent/InMemorySubjectCredentialStore.kt +++ b/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/agent/InMemorySubjectCredentialStore.kt @@ -17,6 +17,7 @@ class InMemorySubjectCredentialStore : SubjectCredentialStore { vcSerialized: String, scheme: ConstantIndex.CredentialScheme, renewalInfo: CredentialRenewalInfo?, + issuer: ByteArray? ) = SubjectCredentialStore.StoreEntry.Vc(vcSerialized, vc, scheme.schemaUri, renewalInfo) .also { credentials += it } @@ -26,6 +27,7 @@ class InMemorySubjectCredentialStore : SubjectCredentialStore { disclosures: Map, scheme: ConstantIndex.CredentialScheme, renewalInfo: CredentialRenewalInfo?, + issuer: ByteArray? ) = SubjectCredentialStore.StoreEntry.SdJwt(vcSerialized, vc, disclosures, scheme.schemaUri, renewalInfo) .also { credentials += it } @@ -33,6 +35,7 @@ class InMemorySubjectCredentialStore : SubjectCredentialStore { issuerSigned: IssuerSigned, scheme: ConstantIndex.CredentialScheme, renewalInfo: CredentialRenewalInfo?, + issuer: ByteArray? ) = SubjectCredentialStore.StoreEntry.Iso(issuerSigned, scheme.schemaUri, renewalInfo) .also { credentials += it } diff --git a/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/agent/SubjectCredentialStore.kt b/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/agent/SubjectCredentialStore.kt index cfa1da893..3759c1b5f 100644 --- a/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/agent/SubjectCredentialStore.kt +++ b/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/agent/SubjectCredentialStore.kt @@ -11,6 +11,7 @@ import at.asitplus.openid.OAuth2AuthorizationServerMetadata import at.asitplus.openid.SupportedCredentialFormat import at.asitplus.signum.indispensable.cosef.io.coseCompliantSerializer import at.asitplus.signum.indispensable.josef.io.joseCompliantSerializer +import at.asitplus.signum.indispensable.pki.X509Certificate import at.asitplus.wallet.lib.data.AttributeIndex import at.asitplus.wallet.lib.data.ConstantIndex import at.asitplus.wallet.lib.data.IsoMdocFallbackCredentialScheme @@ -43,6 +44,7 @@ interface SubjectCredentialStore { vcSerialized: String, scheme: ConstantIndex.CredentialScheme, renewalInfo: CredentialRenewalInfo? = null, + issuer: ByteArray? = null ): StoreEntry /** @@ -58,6 +60,7 @@ interface SubjectCredentialStore { disclosures: Map, scheme: ConstantIndex.CredentialScheme, renewalInfo: CredentialRenewalInfo? = null, + issuer: ByteArray? = null ): StoreEntry /** @@ -70,6 +73,7 @@ interface SubjectCredentialStore { issuerSigned: IssuerSigned, scheme: ConstantIndex.CredentialScheme, renewalInfo: CredentialRenewalInfo? = null, + issuer: ByteArray? = null ): StoreEntry /** @@ -87,6 +91,7 @@ interface SubjectCredentialStore { val credentialFormat: CredentialFormatEnum val claimFormat: ClaimFormat val renewalInfo: CredentialRenewalInfo? + val issuer: ByteArray? fun getFallbackScheme(): ConstantIndex.CredentialScheme? @@ -100,6 +105,8 @@ interface SubjectCredentialStore { override val schemaUri: String, @SerialName("credential-renewal-info") override val renewalInfo: CredentialRenewalInfo? = null, + @SerialName("issuer") + override val issuer: ByteArray? = null, ) : StoreEntry { override fun getFallbackScheme(): ConstantIndex.CredentialScheme = VcFallbackCredentialScheme(vc.vc.type.first { it != VERIFIABLE_CREDENTIAL }) @@ -121,6 +128,8 @@ interface SubjectCredentialStore { override val schemaUri: String, @SerialName("credential-renewal-info") override val renewalInfo: CredentialRenewalInfo? = null, + @SerialName("issuer") + override val issuer: ByteArray? = null ) : StoreEntry { override fun getFallbackScheme(): ConstantIndex.CredentialScheme = SdJwtFallbackCredentialScheme(sdJwt.verifiableCredentialType) @@ -137,6 +146,8 @@ interface SubjectCredentialStore { override val schemaUri: String, @SerialName("credential-renewal-info") override val renewalInfo: CredentialRenewalInfo? = null, + @SerialName("issuer") + override val issuer: ByteArray? = null ) : StoreEntry { override fun getFallbackScheme(): ConstantIndex.CredentialScheme? = catchingUnwrapped { IsoMdocFallbackCredentialScheme(issuerSigned.issuerAuth.payload?.docType!!) @@ -171,4 +182,4 @@ data class CredentialRenewalInfo( val oauthMetadata: OAuth2AuthorizationServerMetadata, val credentialFormat: SupportedCredentialFormat, val credentialIdentifier: String, -) +) \ No newline at end of file diff --git a/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/etsi/LoTEFilterService.kt b/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/etsi/LoTEFilterService.kt new file mode 100644 index 000000000..868e87ef6 --- /dev/null +++ b/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/etsi/LoTEFilterService.kt @@ -0,0 +1,52 @@ +package at.asitplus.wallet.lib.etsi + +import at.asitplus.etsi.EtsiX509CertificateSerializer +import at.asitplus.etsi.ListOfTrustedEntities +import at.asitplus.etsi.TEName +import at.asitplus.signum.indispensable.asn1.Asn1Primitive +import at.asitplus.signum.indispensable.asn1.Asn1String +import at.asitplus.signum.indispensable.pki.AttributeTypeAndValue +import at.asitplus.signum.indispensable.pki.X509Certificate +import kotlinx.serialization.Serializable + +class LoTEFilterService { + + fun extractTrustedCertificates(lote: ListOfTrustedEntities, criteria: LoTEFilterCriteria): List { + val entities = lote.trustedEntitiesList ?: return emptyList() + + return entities.flatMap { entity -> + val providerName = entity.trustedEntityInformation.teName + + entity.trustedEntityServices + .filter { it.serviceInformation.serviceTypeIdentifier?.string == criteria.expectedServiceType } + .flatMap { service -> service.serviceInformation.serviceDigitalIdentity.x509Certificates } + .filter { cert -> cert?.hasMatchingOrganization(providerName) == true } + .map { cert -> TrustedCertificate(cert, providerName, criteria.expectedServiceType) } + } + } + + // Checks if any organization name matches the provider's TEName + private fun X509Certificate.hasMatchingOrganization(providerName: TEName): Boolean { + val orgName = tbsCertificate.subjectName + .flatMap { it.attrsAndValues } + .filterIsInstance() + .firstOrNull() + ?.asStringOrNull() ?: return false + + return providerName.any { it.value.equals(orgName, ignoreCase = true) } + } + private fun AttributeTypeAndValue.Organization.asStringOrNull(): String? = when (val element = value) { + is Asn1Primitive -> runCatching { Asn1String.decodeFromTlv(element).value }.getOrNull() + else -> element.toString() + } +} + +data class TrustedCertificate( + val certificate: @Serializable(with = EtsiX509CertificateSerializer::class) X509Certificate?, + val providerName: TEName, + val serviceType: String +) + +data class LoTEFilterCriteria( + val expectedServiceType: String, +) \ No newline at end of file diff --git a/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/etsi/TrustListValidator.kt b/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/etsi/TrustListValidator.kt new file mode 100644 index 000000000..56e7df2d2 --- /dev/null +++ b/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/etsi/TrustListValidator.kt @@ -0,0 +1,67 @@ +package at.asitplus.wallet.lib.etsi + +import at.asitplus.KmmResult +import at.asitplus.catching +import at.asitplus.signum.indispensable.X509SignatureAlgorithm +import at.asitplus.signum.indispensable.pki.CertificateChain +import at.asitplus.signum.indispensable.pki.X509Certificate +import at.asitplus.signum.supreme.sign.verifierFor +import at.asitplus.signum.supreme.sign.verify +import kotlin.time.Clock +import kotlin.time.Instant + +/** + * Verifies if this certificate is directly signed and trusted by any anchor in the [trustStore]. + * Enforces time validity, cryptographic integrity + */ +fun X509Certificate.isTrustedBy( + trustStore: CertificateChain, + date: Instant = Clock.System.now() +): KmmResult = catching { + if (!this.isValidAt(date)) throw Exception("Certificate is not valid at $date") + + trustStore + .asSequence() + .filter { it.isValidAt(date) } + .map { it.isIssuerOf(this) } + .firstOrNull { it.isSuccess } + ?: throw IllegalArgumentException( + "No valid trust anchor could verify certificate" + ) + +} + +/** + * Checks whether this certificate has expired at the specified [date]. + * @return `true` if the certificate is expired, `false` otherwise. + */ +fun X509Certificate.isExpired(date: Instant = Clock.System.now()): Boolean = + Instant.fromEpochSeconds(date.epochSeconds) > tbsCertificate.validUntil.instant + +/** + * Checks whether this certificate is not yet valid at the specified [date]. + * @return `true` if the certificate is not yet valid, `false` otherwise. + */ +fun X509Certificate.isNotYetValid(date: Instant = Clock.System.now()): Boolean = + Instant.fromEpochSeconds(date.epochSeconds) < tbsCertificate.validFrom.instant + + +/** + * Checks whether this certificate is valid at the specified [date]. + */ +fun X509Certificate.isValidAt(date: Instant = Clock.System.now()): Boolean = !(isExpired(date) || isNotYetValid(date)) + +/** + * Verifies that this certificate is the issuer of the given [cert]. + */ +fun X509Certificate.isIssuerOf(cert: X509Certificate): KmmResult = catching { + if (cert.tbsCertificate.issuerName != this.tbsCertificate.subjectName) throw Exception("Subject of issuer cert and issuer of child certificate mismatch.") + + if (cert.tbsCertificate.issuerUniqueID != this.tbsCertificate.subjectUniqueID) throw Exception("UID of issuer cert and UID of issuer in child certificate mismatch.") + + val verifier = (cert.signatureAlgorithm as X509SignatureAlgorithm).verifierFor(this.decodedPublicKey.getOrThrow()).getOrThrow() + verifier.verify( + cert.tbsCertificate.encodeToDer(), + cert.decodedSignature.getOrThrow() + ).getOrThrow() +} \ No newline at end of file diff --git a/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/jws/JwsService.kt b/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/jws/JwsService.kt index d517cef66..6b8106999 100644 --- a/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/jws/JwsService.kt +++ b/vck/src/commonMain/kotlin/at/asitplus/wallet/lib/jws/JwsService.kt @@ -6,6 +6,7 @@ import at.asitplus.signum.indispensable.CryptoPublicKey import at.asitplus.signum.indispensable.Digest import at.asitplus.signum.indispensable.KeyAgreementPrivateValue import at.asitplus.signum.indispensable.asn1.encoding.encodeTo4Bytes +import at.asitplus.signum.indispensable.io.Base64UrlStrict import at.asitplus.signum.indispensable.josef.ConfirmationClaim import at.asitplus.signum.indispensable.josef.JsonWebKey import at.asitplus.signum.indispensable.josef.JsonWebKeySet @@ -25,6 +26,7 @@ import at.asitplus.signum.indispensable.josef.toJsonWebKey import at.asitplus.signum.indispensable.josef.toJwsAlgorithm import at.asitplus.signum.indispensable.pki.CertificateChain import at.asitplus.signum.indispensable.pki.X509Certificate +import at.asitplus.signum.indispensable.pki.leaf import at.asitplus.signum.indispensable.requireSupported import at.asitplus.signum.indispensable.symmetric.AuthCapability import at.asitplus.signum.indispensable.symmetric.KeyType @@ -54,7 +56,13 @@ import at.asitplus.wallet.lib.agent.KeyMaterial import at.asitplus.wallet.lib.agent.PublishedKeyMaterial import at.asitplus.wallet.lib.agent.VerifySignature import at.asitplus.wallet.lib.agent.VerifySignatureFun +import io.matthewnelson.encoding.core.Decoder.Companion.decodeToByteArray +import io.matthewnelson.encoding.core.Encoder.Companion.encodeToString +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable import kotlinx.serialization.SerializationStrategy +import kotlinx.serialization.json.decodeFromJsonElement +import kotlinx.serialization.json.jsonObject import kotlin.io.encoding.Base64 @@ -686,6 +694,56 @@ class VerifyJwsObject( } +/** + * Verifies a JWS object and additionally validates JAdES-B-B requirements. + */ +class VerifyJwsObjectJades( + val verifyJwsObject: VerifyJwsObjectFun = VerifyJwsObject(), +) : VerifyJwsObjectFun { + + @Serializable + private data class JadesX5tO( + @SerialName("digAlg") val digAlg: String, + @SerialName("digVal") val digVal: String + ) + + override suspend operator fun invoke(jwsObject: JwsCompact): KmmResult = catching { + verifyJwsObject(jwsObject).getOrThrow() // This internally uses plainSignature and signatureInput + validateX5tO(jwsObject).getOrThrow() + Verifier.Success + } + + private fun validateX5tO(jwsObject: JwsCompact): KmmResult = catching { + val headerJsonStr = jwsObject.plainProtectedHeader.decodeToString() + val rawHeaderJson = joseCompliantSerializer.parseToJsonElement(headerJsonStr).jsonObject + + val x5tOElement = rawHeaderJson["x5t#o"] ?: return@catching + val x5tO = joseCompliantSerializer.decodeFromJsonElement(x5tOElement) + + val certChain = jwsObject.jwsHeader.certificateChain + ?: throw IllegalArgumentException("JAdES Compliance Failure: 'x5t#o' parameter requires an 'x5c' certificate chain.") + + val digestAlgorithm = when (x5tO.digAlg.lowercase()) { + "sha-256", "s256" -> throw IllegalArgumentException( + "JAdES Compliance Failure: 'sha-256' is forbidden in 'x5t#o'. Use 'x5t#256' instead." + ) + "sha-384", "s384" -> Digest.SHA384 + "sha-512", "s512" -> Digest.SHA512 + else -> throw IllegalArgumentException( + "Unsupported JAdES digest algorithm: '${x5tO.digAlg}'. System supports 'sha-384' or 'sha-512'." + ) + } + + val certBytes = certChain.leaf.encodeToDer() + val calculatedHash = digestAlgorithm.digest(certBytes) + val calculatedB64Url = calculatedHash.encodeToString(Base64UrlStrict) + + if (calculatedB64Url != x5tO.digVal) { + throw IllegalArgumentException("JAdES Integrity Violation: The calculated certificate thumbprint does not match 'x5t#o'.") + } + } +} + /** * Derives the key, for use in content encryption in JWE, * per [RFC 7518](https://datatracker.ietf.org/doc/html/rfc7518#section-5.2.2.1) diff --git a/vck/src/commonTest/kotlin/at/asitplus/wallet/lib/jws/JwsServiceTest.kt b/vck/src/commonTest/kotlin/at/asitplus/wallet/lib/jws/JwsServiceTest.kt index 7d2d060a0..50f70c795 100644 --- a/vck/src/commonTest/kotlin/at/asitplus/wallet/lib/jws/JwsServiceTest.kt +++ b/vck/src/commonTest/kotlin/at/asitplus/wallet/lib/jws/JwsServiceTest.kt @@ -1,5 +1,7 @@ package at.asitplus.wallet.lib.jws +import at.asitplus.catching +import at.asitplus.signum.indispensable.Digest import at.asitplus.signum.indispensable.josef.JwsCompactTyped import at.asitplus.signum.indispensable.io.Base64UrlStrict import at.asitplus.signum.indispensable.josef.JsonWebKeySet @@ -7,12 +9,18 @@ import at.asitplus.signum.indispensable.josef.JweAlgorithm import at.asitplus.signum.indispensable.josef.JweEncrypted import at.asitplus.signum.indispensable.josef.JweEncryption import at.asitplus.signum.indispensable.josef.JweHeader +import at.asitplus.signum.indispensable.josef.JwsCompact import at.asitplus.signum.indispensable.josef.JwsHeader +import at.asitplus.signum.indispensable.josef.io.joseCompliantSerializer +import at.asitplus.signum.indispensable.pki.leaf +import at.asitplus.signum.supreme.hash.digest +import at.asitplus.signum.supreme.sign.Verifier import at.asitplus.testballoon.matrix.* import at.asitplus.wallet.lib.agent.EphemeralKeyWithoutCert import at.asitplus.wallet.lib.agent.KeyMaterial import com.benasher44.uuid.uuid4 import at.asitplus.testballoon.matrix.matrixSuite +import at.asitplus.wallet.lib.agent.EphemeralKeyWithSelfSignedCert import io.kotest.assertions.throwables.shouldThrowAny import io.kotest.matchers.nulls.shouldNotBeNull import io.kotest.matchers.shouldBe @@ -20,6 +28,9 @@ import io.matthewnelson.encoding.base64.Base64 import io.matthewnelson.encoding.core.Encoder.Companion.encodeToString import kotlinx.serialization.builtins.ByteArraySerializer import kotlinx.serialization.builtins.serializer +import kotlinx.serialization.json.JsonObject +import kotlinx.serialization.json.buildJsonObject +import kotlinx.serialization.json.put import kotlin.random.Random val JwsServiceTest by matrixSuite { @@ -119,9 +130,116 @@ val JwsServiceTest by matrixSuite { .shouldNotBeNull() .payload shouldBe it.randomPayload } + + val dummyVerifier = VerifyJwsObjectFun { catching { Verifier.Success } } + val jadesVerifier = VerifyJwsObjectJades(verifyJwsObject = dummyVerifier) + + test("JAdES verification passes with valid x5t#o parameter (SHA-384)") { + val keyWithCert = EphemeralKeyWithSelfSignedCert() + val signed = SignJwt(keyWithCert, JwsHeaderCertOrJwk())( + JwsContentTypeConstants.JWT, + it.randomPayload.encodeToByteArray(), + ByteArraySerializer() + ).getOrThrow() + + // Extract the actual JwsCompact to match the rest of the test suite + val baseJws = signed.jws + + val validB64Url = Digest.SHA384 + .digest(baseJws.jwsHeader.certificateChain!!.leaf.encodeToDer()) + .encodeToString(Base64UrlStrict) + + val patchedJws = baseJws.patchHeader { + put("x5t#o", buildJsonObject { + put("digAlg", "S384") + put("digVal", validB64Url) + }) + } + + jadesVerifier(patchedJws).isSuccess shouldBe true + } + + test("JAdES verification fails if x5t#o is present but x5c chain is missing") { + val signed = it.signJwt(JwsContentTypeConstants.JWT, it.randomPayload.encodeToByteArray(), ByteArraySerializer()).getOrThrow() + + // Call .patchHeader on .jws + val patchedJws = signed.jws.patchHeader { + put("x5t#o", buildJsonObject { + put("digAlg", "S384") + put("digVal", "dummyValue") + }) + } + + shouldThrowAny { jadesVerifier(patchedJws).getOrThrow() } + } + + test("JAdES verification fails if forbidden sha-256 algorithm is specified") { + val keyWithCert = EphemeralKeyWithSelfSignedCert() + val signed = SignJwt(keyWithCert, JwsHeaderCertOrJwk())( + JwsContentTypeConstants.JWT, + it.randomPayload.encodeToByteArray(), + ByteArraySerializer() + ).getOrThrow() + + val patchedJws = signed.jws.patchHeader { + put("x5t#o", buildJsonObject { + put("digAlg", "S256") + put("digVal", "dummyValue") + }) + } + + shouldThrowAny { jadesVerifier(patchedJws).getOrThrow() } + } + + test("JAdES verification fails if certificate thumbprint does not match digVal") { + val keyWithCert = EphemeralKeyWithSelfSignedCert() + val signed = SignJwt(keyWithCert, JwsHeaderCertOrJwk())( + JwsContentTypeConstants.JWT, + it.randomPayload.encodeToByteArray(), + ByteArraySerializer() + ).getOrThrow() + + val patchedJws = signed.jws.patchHeader { + put("x5t#o", buildJsonObject { + put("digAlg", "S384") + put("digVal", "invalidMismatchedThumbprint") + }) + } + + shouldThrowAny { jadesVerifier(patchedJws).getOrThrow() } + } + + test("JAdES verification skips validation and succeeds if x5t#o parameter is absent") { + val signed = it.signJwt(JwsContentTypeConstants.JWT, it.randomPayload.encodeToByteArray(), ByteArraySerializer()).getOrThrow() + + jadesVerifier(signed.jws).isSuccess shouldBe true + } } } +/** + * Mutates a serialized JWS string by injecting custom parameters directly into the unverified JSON header block. + * NOTE: This deliberately invalidates the cryptographic signature. Use for testing only. + */ +fun JwsCompact.patchHeader(patcher: kotlinx.serialization.json.JsonObjectBuilder.() -> Unit): JwsCompact { + val rawHeaderJson = joseCompliantSerializer.decodeFromString(plainProtectedHeader.decodeToString()) + + val updatedHeaderJson = buildJsonObject { + rawHeaderJson.forEach { (key, value) -> put(key, value) } + patcher() + } + + val updatedHeaderB64 = joseCompliantSerializer + .encodeToString(JsonObject.serializer(), updatedHeaderJson) + .encodeToByteArray() + .encodeToString(Base64UrlStrict) + + val parts = this.toString().split('.') + val newJwsStr = "$updatedHeaderB64.${parts[1]}.${parts[2]}" + + return JwsCompact(newJwsStr) +} + /** * Identify [KeyMaterial] with it's [KeyMaterial.identifier] set in [JwsHeader.keyId], * and URL set in[JwsHeader.jsonWebKeySetUrl]. diff --git a/vck/src/jvmTest/kotlin/at/asitplus/wallet/lib/etsi/LoTEFilterTest.kt b/vck/src/jvmTest/kotlin/at/asitplus/wallet/lib/etsi/LoTEFilterTest.kt new file mode 100644 index 000000000..74beaae75 --- /dev/null +++ b/vck/src/jvmTest/kotlin/at/asitplus/wallet/lib/etsi/LoTEFilterTest.kt @@ -0,0 +1,7051 @@ +package at.asitplus.wallet.lib.etsi + +import at.asitplus.etsi.ListOfTrustedEntities +import at.asitplus.testballoon.matrix.matrixSuite + +import io.kotest.matchers.shouldNotBe +import kotlinx.serialization.json.Json + +val LoTEFilterTest by matrixSuite { + + val pidProvidersOriginal = """ + { + "ListAndSchemeInformation": { + "LoTEVersionIdentifier": 1, + "LoTESequenceNumber": 4, + "LoTEType": "http://uri.etsi.org/19602/LoTEType/EUPIDProvidersList", + "SchemeOperatorName": [ + { + "lang": "en", + "value": "European Commission" + }, + { + "lang": "bg", + "value": "Европейска комисия" + }, + { + "lang": "es", + "value": "Comisión Europea" + }, + { + "lang": "cs", + "value": "Evropská komise" + }, + { + "lang": "da", + "value": "Europa-Kommissionen" + }, + { + "lang": "de", + "value": "Europäische Kommission" + }, + { + "lang": "et", + "value": "Euroopa Komisjon" + }, + { + "lang": "el", + "value": "Ευρωπαϊκή Επιτροπή" + }, + { + "lang": "fr", + "value": "Commission européenne" + }, + { + "lang": "it", + "value": "Commissione europea" + }, + { + "lang": "lv", + "value": "Eiropas Komisija" + }, + { + "lang": "lt", + "value": "Europos Komisija" + }, + { + "lang": "hu", + "value": "Európai Bizottság" + }, + { + "lang": "mt", + "value": "Il-Kummissjoni Ewropea" + }, + { + "lang": "nl", + "value": "Europese Commissie" + }, + { + "lang": "pl", + "value": "Komisja Europejska" + }, + { + "lang": "pt", + "value": "Comissão Europeia" + }, + { + "lang": "ro", + "value": "Comisia Europeană" + }, + { + "lang": "sk", + "value": "Európska komisia" + }, + { + "lang": "sl", + "value": "Evropska komisija" + }, + { + "lang": "fi", + "value": "Euroopan komissio" + }, + { + "lang": "sv", + "value": "Europeiska kommissionen" + }, + { + "lang": "hr", + "value": "Europska komisija" + } + ], + "SchemeOperatorAddress": { + "SchemeOperatorPostalAddress": [ + { + "lang": "fr", + "StreetAddress": "Rue de la Loi 200", + "Locality": "Bruxelles", + "PostalCode": "1049", + "Country": "BE" + }, + { + "lang": "nl", + "StreetAddress": "Wetstraat 200", + "Locality": "Brussel", + "PostalCode": "1049", + "Country": "BE" + }, + { + "lang": "en", + "StreetAddress": "Rue de la Loi/Wetstraat 200", + "Locality": "Brussels", + "PostalCode": "1049", + "Country": "BE" + } + ], + "SchemeOperatorElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:DIGIT-EU-TRUST-NON-PROD@ec.europa.eu" + }, + { + "lang": "en", + "uriValue": "https://digital-strategy.ec.europa.eu/en/policies/eu-trusted-lists" + } + ] + }, + "SchemeName": [ + { + "lang": "en", + "value": "The present list is a list of person identifier providers of EUDI Wallet issued in accordance with CIR 2024/2980" + } + ], + "SchemeInformationURI": [ + { + "lang": "en", + "uriValue": "https://trust.tech.ec.europa.eu/lists/eudiw/pid-providers-list-scheme-information" + } + ], + "StatusDeterminationApproach": "http://uri.etsi.org/19602/PIDProvidersList/StatusDetn/EU", + "SchemeTypeCommunityRules": [ + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/PIDProviders/schemerules/EU" + } + ], + "SchemeTerritory": "EU", + "PolicyOrLegalNotice": [ + { + "LoTEPolicy": { + "lang": "en", + "uriValue": "http://trust.tech.ec.europa.eu/lists/eudiw/legal-notice#EN" + } + } + ], + "ListIssueDateTime": "2026-04-17T13:14:02Z", + "NextUpdate": "2026-10-16T13:14:02Z" + }, + "TrustedEntitiesList": [ + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Agence Nationale des Titres Sécurisés" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATFR-2356568" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "3465", + "Country": "FR" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.fr" + }, + { + "lang": "en", + "uriValue": "tel:+337848346754" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.fr" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/FR" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_PID_solution_fr_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDLTCCAtKgAwIBAgISESEFJUbpBJovlg7lg3Eb5YTCMAoGCCqGSM49BAMCMIGiMQswCQYDVQQGEwJGUjEwMC4GA1UECgwnQWdlbmNlIE5hdGlvbmFsZSBkZXMgVGl0cmVzIFPDqWN1cmlzw6lzMRcwFQYDVQQLDA4wMDAyIDEzMDAwMzI2MjE8MDoGA1UEAwwzQXV0b3JpdMOpIGRlIENlcnRpZmljYXRpb24gRnJhbmNlIEF0dGVzdGF0aW9ucyBJQUNBMQowCAYDVQQFEwExMB4XDTI1MTAxNzAwMDAwMFoXDTM0MTAxNzAwMDAwMFowgaIxCzAJBgNVBAYTAkZSMTAwLgYDVQQKDCdBZ2VuY2UgTmF0aW9uYWxlIGRlcyBUaXRyZXMgU8OpY3VyaXPDqXMxFzAVBgNVBAsMDjAwMDIgMTMwMDAzMjYyMTwwOgYDVQQDDDNBdXRvcml0w6kgZGUgQ2VydGlmaWNhdGlvbiBGcmFuY2UgQXR0ZXN0YXRpb25zIElBQ0ExCjAIBgNVBAUTATEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASa4ZI0w4Mn4FW6kYdKPUlYYgVbwFf1A6lBDnurRsoPJxM3+dVupbkGl9O+QnJ36wc8ngoXE3oH1hP11flDmWsIo4HlMIHiMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMDAGA1UdEgQpMCeBJWZyYW5jZS1hdHRlc3RhdGlvbnNAaW50ZXJpZXVyLmdvdXYuZnIwSgYDVR0fBEMwQTA/oD2gO4Y5aHR0cDovL2NybC5hbnRzLmdvdXYuZnIvYWNfZnJhbmNlX2F0dGVzdGF0aW9uc19pYWNhXzEuY3JsMB0GA1UdDgQWBBT/dscZoX+tou0+F2dDsFrTPfsMpzAfBgNVHSMEGDAWgBT/dscZoX+tou0+F2dDsFrTPfsMpzAKBggqhkjOPQQDAgNJADBGAiEAmMD8Kpgnctmx12gCBYrj98knoKDSPlO5SucThy1EEqwCIQDsYM80Ere4Yw0fHNJQQHl6D1rAITDV3qFKP62Uq7xtsQ==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + }, + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_PID_solution_fr_2" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDUzCCAvmgAwIBAgISESHtNjf+2KAQ0ttWtR9EhAAPMAoGCCqGSM49BAMCMIHFMQswCQYDVQQGEwJGUjEwMC4GA1UECgwnQWdlbmNlIE5hdGlvbmFsZSBkZXMgVGl0cmVzIFPDqWN1cmlzw6lzMRcwFQYDVQQLDA4wMDAyIDEzMDAwMzI2MjEmMCQGA1UECwwdUE9VUiBRVUFMSUZJQ0FUSU9OIFVOSVFVRU1FTlQxNzA1BgNVBAMMLkF1dG9yaXTDqSBkZSBDZXJ0aWZpY2F0aW9uIEZyYW5jZSBBdHRlc3RhdGlvbnMxCjAIBgNVBAUTATEwHhcNMjUwMTI5MDAwMDAwWhcNMzAwMTI5MDAwMDAwWjCBxTELMAkGA1UEBhMCRlIxMDAuBgNVBAoMJ0FnZW5jZSBOYXRpb25hbGUgZGVzIFRpdHJlcyBTw6ljdXJpc8OpczEXMBUGA1UECwwOMDAwMiAxMzAwMDMyNjIxJjAkBgNVBAsMHVBPVVIgUVVBTElGSUNBVElPTiBVTklRVUVNRU5UMTcwNQYDVQQDDC5BdXRvcml0w6kgZGUgQ2VydGlmaWNhdGlvbiBGcmFuY2UgQXR0ZXN0YXRpb25zMQowCAYDVQQFEwExMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEoCYCM9LYS8zUk8I1xL2B2G9voa4yFskoqohrsEQkpNEeKb59J3VDHausTqFWCOfwEGUzi6yocLIbE+gfz59pnaOBxjCBwzAOBgNVHQ8BAf8EBAMCAQYwMAYDVR0SBCkwJ4ElZnJhbmNlLWF0dGVzdGF0aW9uc0BpbnRlcmlldXIuZ291di5mcjASBgNVHRMBAf8ECDAGAQH/AgEAMEwGA1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9jcmwucXVhbGlmLmFudHMuZ291di5mci9hY19mcmFuY2VfYXR0ZXN0YXRpb25zXzEuY3JsMB0GA1UdDgQWBBR3bIy6PB3fPAlYHOvqk7nftps4sDAKBggqhkjOPQQDAgNIADBFAiBrI2HGG1SZNRfEoaIwk3bjAjLBcE9tcKPi1gu0oah58AIhAL+KWRF8FwT4JBblyZdmuoVVXJ36LMmAUcs5YwJpMiQW" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + }, + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_PID_solution_fr_3" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDHTCCAsSgAwIBAgISESEhmoph1P1OOjDCLJAgGdBbMAoGCCqGSM49BAMCMIGfMQswCQYDVQQGEwJGUjEwMC4GA1UECgwnQWdlbmNlIE5hdGlvbmFsZSBkZXMgVGl0cmVzIFPDqWN1cmlzw6lzMRcwFQYDVQQLDA4wMDAyIDEzMDAwMzI2MjE5MDcGA1UEAwwwQXV0b3JpdMOpIGRlIENlcnRpZmljYXRpb24gRnJhbmNlIElkZW50aXTDqSBJQUNBMQowCAYDVQQFEwExMB4XDTI1MTAxNzAwMDAwMFoXDTM0MTAxNzAwMDAwMFowgZ8xCzAJBgNVBAYTAkZSMTAwLgYDVQQKDCdBZ2VuY2UgTmF0aW9uYWxlIGRlcyBUaXRyZXMgU8OpY3VyaXPDqXMxFzAVBgNVBAsMDjAwMDIgMTMwMDAzMjYyMTkwNwYDVQQDDDBBdXRvcml0w6kgZGUgQ2VydGlmaWNhdGlvbiBGcmFuY2UgSWRlbnRpdMOpIElBQ0ExCjAIBgNVBAUTATEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQqfRW/7OTJS4K0IPMa/c8UicIUq62jTccQtGnHAYk6UnvXyRO3PC4/2pdq5QjhwIKwJVqCFOr4fbGboMKLX+L/o4HdMIHaMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMCwGA1UdEgQlMCOBIWZyYW5jZS1pZGVudGl0ZUBpbnRlcmlldXIuZ291di5mcjBGBgNVHR8EPzA9MDugOaA3hjVodHRwOi8vY3JsLmFudHMuZ291di5mci9hY19mcmFuY2VfaWRlbnRpdGVfaWFjYV8xLmNybDAdBgNVHQ4EFgQUAQ1+Rjq9mU0kAyKKyTwFdgjmwA4wHwYDVR0jBBgwFoAUAQ1+Rjq9mU0kAyKKyTwFdgjmwA4wCgYIKoZIzj0EAwIDRwAwRAIgSNKCT8z4zaZLfdOd/rHevKYDbvjqylK723wjd4g4s0ECIDnoWVWyJHwlO31z3QmK7QapM00sOCJnsTIvEGi1Fz/I" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Digitaliseringsdirektoratet - Bevisporten" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-NOFOR.991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "5788", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.no" + }, + { + "lang": "en", + "uriValue": "tel:+4734869323" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.no" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_PID_solution_no" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDBTCCAqygAwIBAgIJALyA/nuVMsUpMAoGCCqGSM49BAMEMIGCMR4wHAYDVQRhExVOVFJOTy1OT0ZPUi45OTE4MjU4MjcxLTArBgNVBAMTJGVpZGFzMnNhbmRrYXNzZSBFQUEgUHJvdmlkZXIgQ0EgdGVzdDEkMCIGA1UEChMbRElHSVRBTElTRVJJTkdTRElSRUtUT1JBVEVUMQswCQYDVQQGEwJOTzAeFw0yNTEwMTAwODE2MzZaFw0yNjEwMDgxMjQ3MzZaMGExCzAJBgNVBAYTAk5PMTIwMAYDVQQDDClEaWdpdGFsaXNlcmluZ3NkaXJla3RvcmF0ZXQgLSBCZXZpc3BvcnRlbjEeMBwGA1UEYQwVTlRSTk8tTk9GT1IuOTkxODI1ODI3MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEggybfUUfbzJltJnTd3NjkH/OApRXdjznhsiDEShxa14362U8s1d/z8fsFMNxiO+z/ZSkHsUurkh2EiNQMcG0T6OCASkwggElMB8GA1UdIwQYMBaAFG2uFOu+dBM1aEzXwQ1nMTFpj7JfMB0GA1UdDgQWBBRTpQH9HAw203fM8Z6Nnc6Aj5RsVzAMBgNVHRMBAf8EAjAAMFwGA1UdHwRVMFMwUaBPoE2GS2h0dHBzOi8vY2EudGVzdC5laWRhczJzYW5ka2Fzc2UubmV0L3YxL2NlcnRzL2ludGVybWVkaWF0ZXMvZWFhX3Byb3ZpZGVyLmNybDBnBggrBgEFBQcBAQRbMFkwVwYIKwYBBQUHMAKGS2h0dHBzOi8vY2EudGVzdC5laWRhczJzYW5ka2Fzc2UubmV0L3YxL2NlcnRzL2ludGVybWVkaWF0ZXMvZWFhX3Byb3ZpZGVyLmNlcjAOBgNVHQ8BAf8EBAMCBaAwCgYIKoZIzj0EAwQDRwAwRAIgco5xnaAZPzLFF0aC7FbF3bEmbHsXId42CRiZIJdqyK0CIG9cjXM31kTF3kmHgN8NligxMbxEmT2HjkAYkKRKUUZR" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Digitaliseringsdirektoratet - PID-utsteder" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-NOFOR.991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "3478", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.no" + }, + { + "lang": "en", + "uriValue": "tel:+47348346754" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.no" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_PID_solution_no_2" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDMzCCAtmgAwIBAgIIGkwIqxyvEDswCgYIKoZIzj0EAwQwZzEYMBYGA1UEYRMPTlRSTk8tOTkxODI1ODI3MQswCQYDVQQGEwJubzEPMA0GA1UECxMGRGlnZGlyMS0wKwYDVQQDEyRlaWRhczJzYW5ka2Fzc2UgUElEIFByb3ZpZGVyIENBIHRlc3QwHhcNMjUxMDE1MTExMzA3WhcNMjYxMDE1MTExMzA3WjBiMQswCQYDVQQGEwJOTzEzMDEGA1UEAwwqRGlnaXRhbGlzZXJpbmdzZGlyZWt0b3JhdGV0IC0gUElELXV0c3RlZGVyMR4wHAYDVQRhDBVOVFJOTy1OT0ZPUi45OTE4MjU4MjcwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATLIEmdVcdTVfQ/6YpsPvS4taSRiebXwcjHWGEWpZLfrKb3yvowmUMe2SaDZD8HCOXjvSXfbIQsgFKeMU88IkNaDOfyMHbXYf3cJZCFJYo799hQL6j2tMogjUMkyoP+dnCjggFVMIIBUTAfBgNVHSMEGDAWgBRX7XviJqjDMVi/g0bAr0FvQshSDDAdBgNVHQ4EFgQUUCIS5a/pLXMjHV+a4AV8NkiRHZMwDAYDVR0TAQH/BAIwADBcBgNVHR8EVTBTMFGgT6BNhktodHRwczovL2NhLnRlc3QuZWlkYXMyc2FuZGthc3NlLm5ldC92MS9jZXJ0cy9pbnRlcm1lZGlhdGVzL3BpZF9wcm92aWRlci5jcmwwZwYIKwYBBQUHAQEEWzBZMFcGCCsGAQUFBzAChktodHRwczovL2NhLnRlc3QuZWlkYXMyc2FuZGthc3NlLm5ldC92MS9jZXJ0cy9pbnRlcm1lZGlhdGVzL3BpZF9wcm92aWRlci5jZXIwDgYDVR0PAQH/BAQDAgWgMCoGCCsGAQUFBwEDAQH/BBswGQYGBACORgEGDA9pZC1ldHNpLXFjdC1waWQwCgYIKoZIzj0EAwQDSAAwRQIgPNu17SJ+E628cVBT1J1CCZQEI85MIG1hqm1ynwyQN84CIQC67g+mvEDLF9C5gcwN8Q38IEJu3bw0EhCvBbUqPORQPA==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Digi- ja väestötietovirasto" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATFI-8567" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "5685", + "Country": "FI" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.fi" + }, + { + "lang": "en", + "uriValue": "tel:+358348346754" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.fi" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/FI" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_PID_solution_fi" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDDTCCApKgAwIBAgIUaqDAxDTFQMkDVdM0LpPFNCskEV4wCgYIKoZIzj0EAwMwgagxODA2BgNVBAMML0RWViBEaWdpLUlEIE1vY2sgQXR0cmlidXRlIFNlYWxpbmcgQ2VydGlmaWNhdGVzMSYwJAYDVQQKDB1EaWdpLSBqYSB2w6Rlc3TDtnRpZXRvdmlyYXN0bzERMA8GA1UEBwwISGVsc2lua2kxCzAJBgNVBAYTAkZJMRAwDgYDVQQIDAdGaW5sYW5kMRIwEAYDVQQFEwkwMjQ1NDM3LTIwHhcNMjQwMTE1MDkyNTE5WhcNMzMwMTEyMDkyNTE5WjCBqDE4MDYGA1UEAwwvRFZWIERpZ2ktSUQgTW9jayBBdHRyaWJ1dGUgU2VhbGluZyBDZXJ0aWZpY2F0ZXMxJjAkBgNVBAoMHURpZ2ktIGphIHbDpGVzdMO2dGlldG92aXJhc3RvMREwDwYDVQQHDAhIZWxzaW5raTELMAkGA1UEBhMCRkkxEDAOBgNVBAgMB0ZpbmxhbmQxEjAQBgNVBAUTCTAyNDU0MzctMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABGcz86+Pt3o1TZ5BYKXtOrFhqi6fDVq7+32J8DaeiSibJES5c9mAPIP/eNB8b+Wm+7RU9blUZ3xlxsmVTGScEOwwSVczmiwBHtk4+7KNltd6CrAAFgSdyDKCEe+w+AKwLqN7MHkwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwGQYDVR0SBBIwEIYOaHR0cHM6Ly9kdnYuZmkwGQYDVR0RBBIwEIYOaHR0cHM6Ly9kdnYuZmkwHQYDVR0OBBYEFJNVLFsDRkyYNcoRYUEBvtvpEOv7MAoGCCqGSM49BAMDA2kAMGYCMQCwfwzQ2A07a3RiA3BUs2BhdNNuhiZcj5HZN7H8fEEiSvkHay67c2XvuyRlZ+zhE18CMQD6OMM6GM+7oKSBtHEbXuiskiWhl9nq7FPQDwPFoaVGxu/SQ3itFL4k2nNsJrEBcfg=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "eidas2sandkasse PID Provider CA test" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "9678", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.no" + }, + { + "lang": "en", + "uriValue": "tel:+47348346754" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.no" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_PID_solution_no_3" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICvTCCAmSgAwIBAgIJAJ7Fdm0r3xiMMAoGCCqGSM49BAMDMGMxGDAWBgNVBGETD05UUk5PLTk5MTgyNTgyNzELMAkGA1UEBhMCbm8xDzANBgNVBAsTBkRpZ2RpcjEpMCcGA1UEAxMgZWlkYXMyc2FuZGthc3NlLm5ldCByb290IENBIHRlc3QwHhcNMjUwNzE0MDk1MDE5WhcNMjkxMjE2MDk1MDE5WjBnMRgwFgYDVQRhEw9OVFJOTy05OTE4MjU4MjcxCzAJBgNVBAYTAm5vMQ8wDQYDVQQLEwZEaWdkaXIxLTArBgNVBAMTJGVpZGFzMnNhbmRrYXNzZSBQSUQgUHJvdmlkZXIgQ0EgdGVzdDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMyVKdaQbLy6E4y7A2Crz/7qBv2x9vebD+7B3N0o2rpxXsDzOQYkBBaBh8uD2LxmEI3E3a6vISekCY0NK/nhUR2jgfwwgfkwUQYIKwYBBQUHAQEERTBDMEEGCCsGAQUFBzAChjVodHRwczovL2NhLnRlc3QuZWlkYXMyc2FuZGthc3NlLm5ldC92MS9jZXJ0cy9yb290LmNlcjAdBgNVHQ4EFgQUV+174iaowzFYv4NGwK9Bb0LIUgwwDgYDVR0PAQH/BAQDAgEGMAwGA1UdEwQFMAMBAf8wRgYDVR0fBD8wPTA7oDmgN4Y1aHR0cHM6Ly9jYS50ZXN0LmVpZGFzMnNhbmRrYXNzZS5uZXQvdjEvY2VydHMvcm9vdC5jcmwwHwYDVR0jBBgwFoAUCi/G/x9Z1uJAVlFqD3onNXclrPEwCgYIKoZIzj0EAwMDRwAwRAIgLvJLEoUbacsoa2calE0f/XVOAnHDWVYDizHJqJAwS3kCIDz8miu6b8cD09rfGSD727joqPunkIGRQqi72HTVabcA" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "eidas2sandkasse Pub EAA Provider CA test" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "5784", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.no" + }, + { + "lang": "en", + "uriValue": "tel:+4734869323" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.no" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_PID_solution_no_4" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICwjCCAmigAwIBAgIJAPm2yYm712+4MAoGCCqGSM49BAMDMGMxGDAWBgNVBGETD05UUk5PLTk5MTgyNTgyNzELMAkGA1UEBhMCbm8xDzANBgNVBAsTBkRpZ2RpcjEpMCcGA1UEAxMgZWlkYXMyc2FuZGthc3NlLm5ldCByb290IENBIHRlc3QwHhcNMjUwNzE0MDk1MDUxWhcNMjkxMjE2MDk1MDUxWjBrMRgwFgYDVQRhEw9OVFJOTy05OTE4MjU4MjcxCzAJBgNVBAYTAm5vMQ8wDQYDVQQLEwZEaWdkaXIxMTAvBgNVBAMTKGVpZGFzMnNhbmRrYXNzZSBQdWIgRUFBIFByb3ZpZGVyIENBIHRlc3QwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS+7CQFU3oWwu9dxauSvk5Xc7AeDhDtLb/x8WcUWFvlG4ekHKlqvW9gxe+W4KJrfn95UZ/0fOfm+znsha/zpiMKo4H8MIH5MFEGCCsGAQUFBwEBBEUwQzBBBggrBgEFBQcwAoY1aHR0cHM6Ly9jYS50ZXN0LmVpZGFzMnNhbmRrYXNzZS5uZXQvdjEvY2VydHMvcm9vdC5jZXIwHQYDVR0OBBYEFD/oYNwZ6+S0FLt9IQvCHPFK6ktiMA4GA1UdDwEB/wQEAwIBBjAMBgNVHRMEBTADAQH/MEYGA1UdHwQ/MD0wO6A5oDeGNWh0dHBzOi8vY2EudGVzdC5laWRhczJzYW5ka2Fzc2UubmV0L3YxL2NlcnRzL3Jvb3QuY3JsMB8GA1UdIwQYMBaAFAovxv8fWdbiQFZRag96JzV3JazxMAoGCCqGSM49BAMDA0gAMEUCIHcgPyDKaizjJPpyztDqUwVqDabzOBVSQwgFIAFT+aV+AiEA8sFi8APxqLmwmCjd5EOd2WhGXSWRksIcCW+aS8kpPmU=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "AMA - Agência para a Modernização Administrativa" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATPT-98765" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "2345", + "Country": "PT" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.pt" + }, + { + "lang": "en", + "uriValue": "tel:+35134567" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.pt" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/PT" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_pid_solution_pt" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIC3zCCAoWgAwIBAgIUcSydOyasuB5uNjr9rj5tPAhpbQUwCgYIKoZIzj0EAwIwejEtMCsGA1UEAwwkRW1pc3NvciBkZSBQSUQgLSBDZXJ0aWZpY2FkbyByYWl6IDAxMTwwOgYDVQQKDDNBTUEgLSBBZ8OqbmNpYSBwYXJhIGEgTW9kZXJuaXphw6fDo28gQWRtaW5pc3RyYXRpdmExCzAJBgNVBAYTAlBUMB4XDTI0MDgyMzE4MTQ0N1oXDTMzMTExOTE4MTQ0NlowejEtMCsGA1UEAwwkRW1pc3NvciBkZSBQSUQgLSBDZXJ0aWZpY2FkbyByYWl6IDAxMTwwOgYDVQQKDDNBTUEgLSBBZ8OqbmNpYSBwYXJhIGEgTW9kZXJuaXphw6fDo28gQWRtaW5pc3RyYXRpdmExCzAJBgNVBAYTAlBUMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEJQQp1ekgl4ztbyvAEHQcHjiIwNRbELpVBzqXiGP2AZdhCP0qgEQ5Ud2hb0fbrE2/hEtiZmw0ppGX37g/wx+VLaOB6DCB5TASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFNl5BlM1kkgig634oJOTlZRNJbezMBYGA1UdJQEB/wQMMAoGCCuBAgIAAAEHMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHBzOi8vcHJlcHJvZC5wa2kuYW1hLnByb2pqLmV1L2NybC9waWRfQ0FfMDEuY3JsMB0GA1UdDgQWBBTZeQZTNZJIIoOt+KCTk5WUTSW3szAOBgNVHQ8BAf8EBAMCAQYwIgYDVR0SBBswVIZSaHR0cHM6Ly93d3cuYW1hLmdvdi5wdC8wCgYIKoZIzj0EAwIDSAAwRQIhAPlr1TTIv8pTKOY08FpKrpNsFLj9gKIagDIUHcDPjy6iAiBL8GUS5H5NcHhTEjJxxEMX9CVuFfVhvRCssbaCV3RwsA==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "A-SIT" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATAT-45678" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "2345", + "Country": "AT" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.at" + }, + { + "lang": "en", + "uriValue": "tel:+4378901" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.at" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/AT" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_pid_solution_at_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICGzCCAcCgAwIBAgIUb9GJdqQMdwXaoO61uxoBlg+jhbYwCgYIKoZIzj0EAwIwLDELMAkGA1UEBhMCQVQxDjAMBgNVBAoMBUEtU0lUMQ0wCwYDVQQDDARJQUNBMB4XDTI1MDQwNzA5NDQ1N1oXDTI2MDQwNzA5NDQ1N1owLDELMAkGA1UEBhMCQVQxDjAMBgNVBAoMBUEtU0lUMQ0wCwYDVQQDDARJQUNBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElIXOzb+iF+zGutygdIVOBnC4R6OvhYo5TGWhrH0idmqs56IVwJWYzQYzK4CbYePcxpMQY3lKBa5O0MAZe+EogKOBvzCBvDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAiBgNVHRIEGzAZhhdodHRwczovL3dhbGxldC5hLXNpdC5hdDAyBgNVHR8EKzApMCegJaAjhiFodHRwczovL3dhbGxldC5hLXNpdC5hdC9jcmwvMS5jcmwwHwYDVR0jBBgwFoAUDQF5K46YVgzLpfV5stoutBezK6QwHQYDVR0OBBYEFA0BeSuOmFYMy6X1ebLaLrQXsyukMAoGCCqGSM49BAMCA0kAMEYCIQCz0i9GA24ZOf3Wk+w8+09J6ARAHKLuBuepszBxVZdaZAIhAJlgzKBhHw8+Bwr+wLGQVjMC5e9BWWaUga8ZP9dRYhHJ" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "IDAKTO IACA 4" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATFR-567890" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "2345", + "Country": "FR" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.fr" + }, + { + "lang": "en", + "uriValue": "tel:+3345678" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.fr" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/FR" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_pid_solution_fr_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIB2TCCAX+gAwIBAgIJAI5LEB+QbO+3MAoGCCqGSM49BAMCMCUxCzAJBgNVBAYTAkZSMRYwFAYDVQQDDA1JREFLVE8gSUFDQSA0MB4XDTI0MDkyNjEyMzQ1M1oXDTI5MDkyNTEyMzQ1M1owJTELMAkGA1UEBhMCRlIxFjAUBgNVBAMMDUlEQUtUTyBJQUNBIDQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARMophaPOvIcnsKuxs3iGxJA3kyQx3pHeC0LWj8RNPLtYWAcPJq8bB5PSyOkGtB6XcGUTJukaBxU//5cAe2I18po4GXMIGUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS2EQayXDKCQSR99d/ve3ZXwxWPpzAaBgNVHRIEEzARgQ9pYWNhQGlkYWt0by5jb20wMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5jaG9wcGVyLmlkbGFiLmxpdmU6NTU1NTAKBggqhkjOPQQDAgNIADBFAiAX1wM1La0uufb2yA4jZ+11FfF6hcx3ER8/kcC52teviQIhALNwfW4Zusu4QD8QFxRKrLyi8UVWpDXI5G7rHRnIbNPf" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "ISO Root CA" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATAT-0987" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "2345", + "Country": "AT" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain2.at" + }, + { + "lang": "en", + "uriValue": "tel:+3320390" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.at" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/AT" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_pid_solution_at_2" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICbDCCAhKgAwIBAgIUH23VY4YX6sFgbdidaIr2o7cR154wCgYIKoZIzj0EAwIwIzELMAkGA1UEBhMCQVQxFDASBgNVBAMMC0lTTyBSb290IENBMB4XDTI1MDUyODExNTMxMloXDTM1MDUyNjExNTMxMlowIzELMAkGA1UEBhMCQVQxFDASBgNVBAMMC0lTTyBSb290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEisG5+9ei6IRPnTkc2HuiY5kDWM+SUEeTkDXBs7bz/Xc1gwa0WbfEwJA2GuasCl4h0Zzv2fuDK+ER2+Gb7IsPWKOCASIwggEeMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTeJAquS8H45Kv/lng41lul7kTOCDAfBgNVHSMEGDAWgBTeJAquS8H45Kv/lng41lul7kTOCDCBiwYDVR0fBIGDMIGAMH6gfKB6hnhodHRwczovL3ZhdWx0LmxpZS1pbnRlcm5hbC5wcm9kdWN0aW9uLmNsdXN0ZXJzLnlvdW5pcXguY29tL3YxL21hbmFnZWQvcGtpL21pYS1saWUtaW50ZXJuYWwvbWlhLWxpZS1pbnRlcm5hbC1pc28tcm9vdC9jcmwwKgYDVR0SBCMwIYEfdGVhbS5xdWFudHVtcXVva2thc0B5b3VuaXF4LmNvbTAKBggqhkjOPQQDAgNIADBFAiA9ehNPI3Ck4bfcma27BbKClYLOmjIbu0ytFf6etfp5dwIhAIZT1olmq8bVm7iDRjtFAWUUpNjKQMPAXXY83EbqiqQV" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Bundesdruckerei GmbH" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATDE-12345" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "2345", + "Country": "DE" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.de" + }, + { + "lang": "en", + "uriValue": "tel:+49320390" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.de" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/DE" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_pid_solution_de_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICNTCCAdygAwIBAgIUBEfh5TdWaKkeiOkVBHKBHe7VHOUwCgYIKoZIzj0EAwIwZzELMAkGA1UEBhMCREUxDzANBgNVBAcMBkJlcmxpbjEdMBsGA1UECgwUQnVuZGVzZHJ1Y2tlcmVpIEdtYkgxETAPBgNVBAsMCFQgQ1MgSURFMRUwEwYDVQQDDAxQSURQIERlbW8gQ0EwHhcNMjUxMTE5MTIwNjMwWhcNMzUxMTE3MTIwNjMwWjBnMQswCQYDVQQGEwJERTEPMA0GA1UEBwwGQmVybGluMR0wGwYDVQQKDBRCdW5kZXNkcnVja2VyZWkgR21iSDERMA8GA1UECwwIVCBDUyBJREUxFTATBgNVBAMMDFBJRFAgRGVtbyBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLfzEvVnrtzbM47MtwES2H4cOFtqvaZEQw4DGMiENSbfKih9WxxhDN8HzuukmiFZYhOxy0frbPlCBJkhGZFsKOWjZjBkMB0GA1UdDgQWBBSAX87IYWUcmGz01ZRdX/qAWEO+XzAfBgNVHSMEGDAWgBSAX87IYWUcmGz01ZRdX/qAWEO+XzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAKBggqhkjOPQQDAgNHADBEAiBae8hSEdl3gqo8gmbvl9IV9rTrG5iw/6kk6h8w0upuVwIgM29abFnlKUY07mil1xc43zoMqql4YuWv29VHA9ZiT4Y=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Microsec Ltd." + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATHU-23584497" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "23451", + "Country": "HU" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.hu" + }, + { + "lang": "en", + "uriValue": "tel:+3698709" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.hu" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/HU" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_pid_solution_hu_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDQzCCAuigAwIBAgIMBcKMJXgy2272WHQKMAoGCCqGSM49BAMCMHYxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxIzAhBgNVBAMMGlRlc3QgZS1Temlnbm8gUm9vdCBDQSAyMDE3MB4XDTE3MDkyMjIwMDAwMFoXDTQyMDkyMjA2MDAwMFowcTELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRYwFAYDVQQKDA1NaWNyb3NlYyBMdGQuMRcwFQYDVQRhDA5WQVRIVS0yMzU4NDQ5NzEeMBwGA1UEAwwVVGVzdCBlLVN6aWdubyBDQSAyMDE3MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElKYzOPtAdd2ohSfwEgX2A+Zr2jXWrEqAwJYRs9aBjxT67VwuD10R+TEY0aRwzbrAAPfR2hsOr9DcvZlh4AXRraOCAV8wggFbMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vdGVzenQuZS1zemlnbm8uaHUvcWNwczAdBgNVHQ4EFgQUeptoh454hhbzt/k2HvgamLNkHIkwHwYDVR0jBBgwFoAUklDZBPHkz7JSHyQKgYTiOO2dO44wOQYDVR0fBDIwMDAuoCygKoYoaHR0cDovL3Rlc3p0LmUtc3ppZ25vLmh1L3Ryb290Y2EyMDE3LmNybDB9BggrBgEFBQcBAQRxMG8wNwYIKwYBBQUHMAGGK2h0dHA6Ly90ZXN6dC5lLXN6aWduby5odS90ZXN0cm9vdGNhMjAxN29jc3AwNAYIKwYBBQUHMAKGKGh0dHA6Ly90ZXN6dC5lLXN6aWduby5odS90cm9vdGNhMjAxNy5jcnQwCgYIKoZIzj0EAwIDSQAwRgIhAL+F7BHEDUvV/weTnf4TwzwDIssl0hMF/0oKo0c9CaXXAiEAvNpfSAJjlU9kCqsRVUYVQqVffJCuBPIKdFvfcejwfbY=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "TEST Authority" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATEE-12345" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "23451", + "Country": "EE" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.ee" + }, + { + "lang": "en", + "uriValue": "tel:+37298709" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.ee" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/EE" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_pid_solution_ee" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICiTCCAjCgAwIBAgIUD89WCelKX+PFzZTKvrIsMgoIjZcwCgYIKoZIzj0EAwIwUjELMAkGA1UEBhMCRUUxDjAMBgNVBAgMBUhhcmp1MRcwFQYDVQQKDA5URVNUIEF1dGhvcml0eTEaMBgGA1UEAwwRVEVTVCBJQUNBIFJvb3QgQ0EwHhcNMjUwMjE5MTExNDI2WhcNNDUwMjE0MTExNDI2WjBSMQswCQYDVQQGEwJFRTEOMAwGA1UECAwFSGFyanUxFzAVBgNVBAoMDlRFU1QgQXV0aG9yaXR5MRowGAYDVQQDDBFURVNUIElBQ0EgUm9vdCBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOJyw8+GgiTyqkzhvwA5nNMwsjLA24/2wjYrXJMb23fCAWeskZu014znoXZHJZK+cxlnvLtLscYCiF7REr6NWcqjgeMwgeAwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHAddh/lzBAlZm1hAO/QgQmhV9WBMCMGA1UdEgQcMBqBGGNvbnRhY3RAaWFjYS5leGFtcGxlLmNvbTB2BgNVHR8EbzBtMGugaaBnhmVodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3Blbi1laWQvZXVkaS1xZWFhLWlzc3Vlci1wb2MvcmVmcy9oZWFkcy9kZXZlbG9wL2xvY2FsL2NybC9pYWNhLmNybDAKBggqhkjOPQQDAgNHADBEAiBt84QP49zoXBFItKhxIPkg+7qXbf6eIMY0xkc1M7RYlQIgWOSUJbP8KEreKUQ5Nwgae13YifG3jpJfU+nVWAe+1Ik=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "GRNET" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATEL-77432" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "53554", + "Country": "EL" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test2@domain.el" + }, + { + "lang": "en", + "uriValue": "tel:+30293239487" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.el" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/EL" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_pid_solution_el" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICkTCCAjigAwIBAgIUBHi4ixVY+v67hn64ELqWc/cuIoQwCgYIKoZIzj0EAwIwPTEeMBwGA1UEAwwVUElEIElzc3VlciBDQSAtIEdSIDAxMQ4wDAYDVQQKDAVHUk5FVDELMAkGA1UEBhMCR1IwHhcNMjUxMTAzMTMwMzQ1WhcNMjYxMTAzMTMwMzQ1WjA9MR4wHAYDVQQDDBVQSUQgSXNzdWVyIENBIC0gR1IgMDExDjAMBgNVBAoMBUdSTkVUMQswCQYDVQQGEwJHUjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGV76duOyXnqudRE1nzJHu4TF/hQLSzrUNNj/g14e1eno+mdF/2BUsTKMMoVi6Nvahco45gI0aC/sXBK+zfhysmjggEUMIIBEDASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQ9fVq9ZifBrdIV1gL89UMxFC+HyzBiBgNVHSMEWzBZoUGkPzA9MR4wHAYDVQQDDBVQSUQgSXNzdWVyIENBIC0gR1IgMDExDjAMBgNVBAoMBUdSTkVUMQswCQYDVQQGEwJHUoIUBHi4ixVY+v67hn64ELqWc/cuIoQwFgYDVR0lAQH/BAwwCgYIK4ECAgAAAQcwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovLzgzLjIxMi43Mi4xMTQ6ODA4Mi9jcmwucGVtMA4GA1UdDwEB/wQEAwIBBjAbBgNVHRIEFDAShhBodHRwczovL2dybmV0LmdyMAoGCCqGSM49BAMCA0cAMEQCICAFSFanRww3RVPLqp4IC+/1JxXF9q3qE22t0R0pSKxUAiAJLUpXIknyy2qAwukAZujeuZne71PJ1Yh9xYjUdQZuhQ==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "PID Provider1" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "PAAP Test Name1" + }, + { + "lang": "en", + "value": "VATPL-5170359458" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Test", + "Locality": "Locality", + "StateOrProvince": "", + "PostalCode": "", + "Country": "PL" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.se" + }, + { + "lang": "en", + "uriValue": "tel:+9988" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/PL" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "Test Service 1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDUTCCAjmgAwIBAgIQNx1PCl0yvLFIAPW3ueQiwzANBgkqhkiG9w0BAQsFADAvMRYwFAYDVQQKDA1QSUQgUHJvdmlkZXIxMRUwEwYDVQQDDAxOYW1lVGVzdENlcnQwHhcNMjUwOTI1MTQxNzUwWhcNMjYwOTI1MTQyNzUwWjAvMRYwFAYDVQQKDA1QSUQgUHJvdmlkZXIxMRUwEwYDVQQDDAxOYW1lVGVzdENlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCX9gPZbuZHoJQbrxXOtIWYiQw5a1DgSKe4h3MNXiE7728oHYHIhV0ZoU3SX70XJpWrNsudo7bVMLoHN2UANkjX6SO5LR1OL7oAo3NFD9974GlQxLg5QmrJacbgg1NtFLTHq5c8SLzG3fHc9DJ94vB/lGxP7rBBOzQLp3j9h1muLYl+ZGroZjZOj7d7uK0hK0d4UWkDWb2n2K6kC1PN7zwTLxchEF1oppPFjogF/7Gq7OWFiQy3LS6h+marlY6FxFmU9tq7Uu2hxJF2tFMPVZsMUHEluUZFW25VH30Y3LtiSvlRQY1wiakTuE2pRF3VvXi3Kgx2O15VdvbCadZOK/8hAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwFwYDVR0RBBAwDoIMTmFtZVRlc3RDZXJ0MB0GA1UdDgQWBBSKjzSwKcYg/s+/jOq+rm0NhUDC1DANBgkqhkiG9w0BAQsFAAOCAQEARyAF6yKL2xVPRVIA/o+YBdEmTRpnFAIPIvjC6hCfKpTz/hpMzHuuuTxU8oMg6mHyeL6fOGhLodXQMqkoJZMEpOwftnpHmIXR5+BHZaH7/Ga/6zIa53suiqydmuEo+FxDrBK6s42v/O2mB66hptTJ3cg3aqXEXeV5w5uAbTLlrCpaggXFBjZuR3E8xj8MGax4BUL8mBW+24XaRA/APSPnLwVlyJ95kiJC9R/9MH1t7wRxfftI7wuqQLi4hb3Nl/Zo1aL66txelX/TLkdq4f+1Ql1Pfzz60nIqk3oICCSg89acEx6o1tAfguBid50cHnLxaTBe6g8KFwXv+5PUTZ1Fug==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + }, + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "Test Service 2" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDNjCCAh6gAwIBAgIQXRnxamTIT4JGgTnOaCBRQjANBgkqhkiG9w0BAQsFADAuMRgwFgYDVQQKDA9QQUFQIFRlc3QgTmFtZTExEjAQBgNVBAMMCVRlc3RDZXJ0MTAeFw0yNTA5MTgxMDM2MDFaFw0zMDA5MTgxMDQ2MDFaMC4xGDAWBgNVBAoMD1BBQVAgVGVzdCBOYW1lMTESMBAGA1UEAwwJVGVzdENlcnQxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlLCnGRUwbkiOcFnI9f7CFfFzxOfsgNkI6x/S7BXrTesp+VgP/PPO+yILV42kNBDFO+YUcd5T9Offv+s6YfU1YfTCh1D4UXio9s9b8iYFiRCkB7s5bqHAYb9uc2zDpt/t+heuRt7TjGGJqdykpRRjcNP56TMtqfmhtQhvG1LYJzj1HulsmjGvdJVSkreeOxkzy4GCB/6UENqnWZhPdGvqY5tzZ2GXUwpN7mDFP1zA5unLgVQIcHmXtWYAYllnNu7IV9mBq/g1XvngzyWefMmKLqf791AgXY0dd9G6JlOOvkB5Y4jMHAT6DzNyoYiQrigTQxI2lWyuqYxTqhhY201wqQIDAQABo1AwTjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBTlGtpzx3x9ErCwLv73FslxFD6IPTANBgkqhkiG9w0BAQsFAAOCAQEAUQZ5Qeb8mcZpMub4I5NF5bNox3yVPwPThzf6VwBVvaaHsm2xZoWXSpKBlyiCmFoQINJ5PHglgZOIVdcCU3SKfeHhffLhxIW+qTC6DZ05DZyuL4+FFVMH8/SKOrlLbT3x1SM5u8iEWMFPFMfkGDW8Xq6vWpobuDg5eVyYjvj29wCZuyygfaj1cRr21/aKefOksw8rc97yTzzHNPcHjjBqFZv8Pq4TAMExgV0a6h8tnnk8AK2+MSy0SOHbrCj7khm2Q5+gOaPXfwzVHCoJTuEfRDSF96+IlX/2nr+eVwvpfcMtr+01LnRh/actoLGOybsM/1H9jMGxF4VqsQwBiMwfxQ==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance", + "ServiceSupplyPoints": [ + { + "uriValue": "https://supplypoints", + "ServiceType": "type:type" + } + ], + "ServiceDefinitionURI": [ + { + "lang": "en", + "uriValue": "information:uri" + } + ] + } + } + ] + } + ] + } + """.trimIndent() + val walletProvidersOriginal = """ + { + "ListAndSchemeInformation": { + "LoTEVersionIdentifier": 1, + "LoTESequenceNumber": 2, + "LoTEType": "http://uri.etsi.org/19602/LoTEType/EUWalletProvidersList", + "SchemeOperatorName": [ + { + "lang": "en", + "value": "European Commission" + }, + { + "lang": "bg", + "value": "Европейска комисия" + }, + { + "lang": "es", + "value": "Comisión Europea" + }, + { + "lang": "cs", + "value": "Evropská komise" + }, + { + "lang": "da", + "value": "Europa-Kommissionen" + }, + { + "lang": "de", + "value": "Europäische Kommission" + }, + { + "lang": "et", + "value": "Euroopa Komisjon" + }, + { + "lang": "el", + "value": "Ευρωπαϊκή Επιτροπή" + }, + { + "lang": "fr", + "value": "Commission européenne" + }, + { + "lang": "it", + "value": "Commissione europea" + }, + { + "lang": "lv", + "value": "Eiropas Komisija" + }, + { + "lang": "lt", + "value": "Europos Komisija" + }, + { + "lang": "hu", + "value": "Európai Bizottság" + }, + { + "lang": "mt", + "value": "Il-Kummissjoni Ewropea" + }, + { + "lang": "nl", + "value": "Europese Commissie" + }, + { + "lang": "pl", + "value": "Komisja Europejska" + }, + { + "lang": "pt", + "value": "Comissão Europeia" + }, + { + "lang": "ro", + "value": "Comisia Europeană" + }, + { + "lang": "sk", + "value": "Európska komisia" + }, + { + "lang": "sl", + "value": "Evropska komisija" + }, + { + "lang": "fi", + "value": "Euroopan komissio" + }, + { + "lang": "sv", + "value": "Europeiska kommissionen" + }, + { + "lang": "hr", + "value": "Europska komisija" + } + ], + "SchemeOperatorAddress": { + "SchemeOperatorPostalAddress": [ + { + "lang": "fr", + "StreetAddress": "Rue de la Loi 200", + "Locality": "Bruxelles", + "PostalCode": "1049", + "Country": "BE" + }, + { + "lang": "nl", + "StreetAddress": "Wetstraat 200", + "Locality": "Brussel", + "PostalCode": "1049", + "Country": "BE" + }, + { + "lang": "en", + "StreetAddress": "Rue de la Loi/Wetstraat 200", + "Locality": "Brussels", + "PostalCode": "1049", + "Country": "BE" + } + ], + "SchemeOperatorElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:DIGIT-EU-TRUST-NON-PROD@ec.europa.eu" + }, + { + "lang": "en", + "uriValue": "https://digital-strategy.ec.europa.eu/en/policies/eu-trusted-lists" + } + ] + }, + "SchemeName": [ + { + "lang": "en", + "value": "The present list is a list of person identifier providers of EUDI Wallet issued in accordance with CIR 2024/2980" + } + ], + "SchemeInformationURI": [ + { + "lang": "en", + "uriValue": "https://trust.tech.ec.europa.eu/lists/eudiw/wallet-providers-list-scheme-information" + } + ], + "StatusDeterminationApproach": "http://uri.etsi.org/19602/WalletProvidersList/StatusDetn/EU", + "SchemeTypeCommunityRules": [ + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/WalletProvidersList/schemerules/EU" + } + ], + "SchemeTerritory": "EU", + "PolicyOrLegalNotice": [ + { + "LoTEPolicy": { + "lang": "en", + "uriValue": "http://trust.tech.ec.europa.eu/lists/eudiw/legal-notice#EN" + } + } + ], + "ListIssueDateTime": "2026-04-02T11:23:10Z", + "NextUpdate": "2026-10-02T11:23:10Z" + }, + "TrustedEntitiesList": [ + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "PagoPA Wallet Provider Root CA" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATIT-123456789" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Test street", + "Locality": "Test locality", + "StateOrProvince": "Test province", + "PostalCode": "12345", + "Country": "IT" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.it" + }, + { + "lang": "en", + "uriValue": "tel:+39123456789" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.it" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/WalletProvider/IT" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_eudiw_solution_it" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICUDCCAfWgAwIBAgIUONlIPSqyFQVjT6+yy1zAFLS+fOUwCgYIKoZIzj0EAwIwfTELMAkGA1UEBhMCSVQxCzAJBgNVBAgMAlJNMQ0wCwYDVQQHDARSb21lMRYwFAYDVQQKDA1QYWdvUEEgUy5wLkEuMREwDwYDVQQLDAhTZWN1cml0eTEnMCUGA1UEAwweUGFnb1BBIFdhbGxldCBQcm92aWRlciBSb290IENBMB4XDTI1MTEyMTE2MDcxOFoXDTM1MTExOTE2MDcxOFowfTELMAkGA1UEBhMCSVQxCzAJBgNVBAgMAlJNMQ0wCwYDVQQHDARSb21lMRYwFAYDVQQKDA1QYWdvUEEgUy5wLkEuMREwDwYDVQQLDAhTZWN1cml0eTEnMCUGA1UEAwweUGFnb1BBIFdhbGxldCBQcm92aWRlciBSb290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEsOCKDPMrqG3DKLHAEqkutBKCBHlSmuyeQGkLL95EW4oAzqVd+1aVPfXGNKSE6dgGb2wbrcqNz/wLyoTdBh3pkaNTMFEwHQYDVR0OBBYEFFdzfeaqb/ETC5YoB4Od5h4jVD7VMB8GA1UdIwQYMBaAFFdzfeaqb/ETC5YoB4Od5h4jVD7VMA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwIDSQAwRgIhAP8LhOOEB8HPNx0sobIBQgS3Ej1rtzXcx4hggAfyFFTJAiEAmJMJA1tgB/kl2gmH5TKH2R4QaWeHmgAZSFQcdZ7yEFM=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/WalletSolution/Issuance", + "ServiceInformationExtensions": [ + { + "ServiceUniqueIdentifier": "ojeu:eudiw:ref_eudiw_solution_it" + } + ] + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Microsec Ltd." + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATHU-23584497" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Test street", + "Locality": "Test locality", + "StateOrProvince": "Test province", + "PostalCode": "123456", + "Country": "HU" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.hu" + }, + { + "lang": "en", + "uriValue": "tel:+36123456" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.hu" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/WalletProvider/HU" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_wallet_solution_ojeu_hu" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDQzCCAuigAwIBAgIMBcKMJXgy2272WHQKMAoGCCqGSM49BAMCMHYxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxIzAhBgNVBAMMGlRlc3QgZS1Temlnbm8gUm9vdCBDQSAyMDE3MB4XDTE3MDkyMjIwMDAwMFoXDTQyMDkyMjA2MDAwMFowcTELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRYwFAYDVQQKDA1NaWNyb3NlYyBMdGQuMRcwFQYDVQRhDA5WQVRIVS0yMzU4NDQ5NzEeMBwGA1UEAwwVVGVzdCBlLVN6aWdubyBDQSAyMDE3MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElKYzOPtAdd2ohSfwEgX2A+Zr2jXWrEqAwJYRs9aBjxT67VwuD10R+TEY0aRwzbrAAPfR2hsOr9DcvZlh4AXRraOCAV8wggFbMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vdGVzenQuZS1zemlnbm8uaHUvcWNwczAdBgNVHQ4EFgQUeptoh454hhbzt/k2HvgamLNkHIkwHwYDVR0jBBgwFoAUklDZBPHkz7JSHyQKgYTiOO2dO44wOQYDVR0fBDIwMDAuoCygKoYoaHR0cDovL3Rlc3p0LmUtc3ppZ25vLmh1L3Ryb290Y2EyMDE3LmNybDB9BggrBgEFBQcBAQRxMG8wNwYIKwYBBQUHMAGGK2h0dHA6Ly90ZXN6dC5lLXN6aWduby5odS90ZXN0cm9vdGNhMjAxN29jc3AwNAYIKwYBBQUHMAKGKGh0dHA6Ly90ZXN6dC5lLXN6aWduby5odS90cm9vdGNhMjAxNy5jcnQwCgYIKoZIzj0EAwIDSQAwRgIhAL+F7BHEDUvV/weTnf4TwzwDIssl0hMF/0oKo0c9CaXXAiEAvNpfSAJjlU9kCqsRVUYVQqVffJCuBPIKdFvfcejwfbY=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/WalletSolution/Issuance", + "ServiceInformationExtensions": [ + { + "ServiceUniqueIdentifier": "ojeu:eudiw:ref_wallet_solution_hu" + } + ] + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Wallet Notification" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "Liechtenstein National Administration" + }, + { + "lang": "en", + "value": "VATLI-2345678" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Platz 2", + "Locality": "Vaduz", + "StateOrProvince": "Liechtenstein", + "PostalCode": "Fl-001", + "Country": "PL" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:office-wallet@test.li" + }, + { + "lang": "en", + "uriValue": "tel:+4235002211" + }, + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wallet" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wallet/policies" + }, + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wallet/information" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/WalletProvider/PL" + } + ], + "TEInformationExtensions": [ + { + "OtherAssociatedBodies": [ + { + "AssociatedBodyName": [ + { + "lang": "en", + "value": "Wallet Notification Body" + } + ], + "AssociatedBodyTradeName": [ + { + "lang": "en", + "value": "Liechtenstein National Administration Wallet Body" + }, + { + "lang": "en", + "value": "VATLI-3333" + } + ], + "AssociatedBodyAddress": { + "AssociatedBodyPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Platz 2A", + "Locality": "Vaduz", + "StateOrProvince": "Liechtenstein", + "PostalCode": "Fl-001", + "Country": "PL" + } + ], + "AssociatedBodyElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:office-wallet-body@test.li" + }, + { + "lang": "en", + "uriValue": "tel:+42350022112" + }, + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wallet/body" + } + ] + }, + "AssociatedBodyInformationURI": [ + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wallet/body/information" + } + ] + } + ] + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "Wallet Service 1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDsjCCApqgAwIBAgIQa5/PTwD9epxBQHrl6XObezANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQGEwJMSTEOMAwGA1UEBwwFVmFkdXoxDDAKBgNVBAsMA0xMVjEuMCwGA1UECgwlTGllY2h0ZW5zdGVpbiBOYXRpb25hbCBBZG1pbmlzdHJhdGlvbjEPMA0GA1UEAwwGbGx2LmxpMB4XDTI2MDEwNTEzMTkyMFoXDTI3MDEwNTEzMTk1MFowbDELMAkGA1UEBhMCTEkxDjAMBgNVBAcMBVZhZHV6MQwwCgYDVQQLDANMTFYxLjAsBgNVBAoMJUxpZWNodGVuc3RlaW4gTmF0aW9uYWwgQWRtaW5pc3RyYXRpb24xDzANBgNVBAMMBmxsdi5saTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJtDK/L1QEAj7QNtAgA5SNVXXahMtwayCAHtimJEGMRXeiI9KSE+BBfQ8c989Wbw9KqLsIUWGNuleGQCRFWArZmWXXezHn3fJecpeb06t+OZiPaLgq4iBp8EZ0czGFIxNxXOtSSgVcL1FCsDnIW9yzRt/xFPUn/59F6oGky/KPQXg0sW3UOkTW/k795QqIvLaMPFKn1kKkBSGh4TWmp6zQ0c7lEWGLKlCV0l0XHQAwl0bmoebEsA7QBG320i31n4Gr5y0zCbWjxEv3IU6RWZ2QARlybj4lVXyTyiezJ91v2tEhWlE/xK6AV7y9N5IcB5e+sxKDmjCp4gb1idBJYM9W0CAwEAAaNQME4wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAdBgNVHQ4EFgQU0RI/MTHeLnYjg8CQlPsrBXvWZLkwDQYJKoZIhvcNAQELBQADggEBAHlLN3fEK8q9mk5Uy6Y0Bnq7clLKAlajbUcPc2/SAiYsmioNv5k6p6dAiNXng4gaSe1gGQz9o15raYz2EK3nfmw1ooFjXjmZOfiY2EBsBd9X3EJCu2aYBDeOaX3Xqw1s0ZXdfmDnvqEEmVvVr+VubzX8JLS2AM2glyRvBb7w27gBBvptggS54P9Re16yGxiQbqV17k8h/0idYbGH31Y8lUYRyOHkFtlL4pqJmCQ38laej0L73GiUtCg0hdrGcrEf2oziO55pBpsJTAiiCkv/Pz7Ri4o8l3ALQKrByloO2mpwlPmVmxxNi/o79XFGelTIBrWIVYgBbTwfDzvQIIKjY6I=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/WalletSolution/Issuance", + "ServiceSupplyPoints": [ + { + "uriValue": "http://supply.points", + "ServiceType": "http://supply.pointstype" + } + ], + "ServiceDefinitionURI": [ + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wallet/" + } + ], + "ServiceInformationExtensions": [ + { + "ServiceUniqueIdentifier": "REF:1234" + } + ] + } + } + ] + } + ] + } + """.trimIndent() + val wrpacProvidersOriginal = """ + { + "ListAndSchemeInformation": { + "LoTEVersionIdentifier": 1, + "LoTESequenceNumber": 2, + "LoTEType": "http://uri.etsi.org/19602/LoTEType/EUWRPACProvidersList", + "SchemeOperatorName": [ + { + "lang": "en", + "value": "European Commission" + }, + { + "lang": "bg", + "value": "Европейска комисия" + }, + { + "lang": "es", + "value": "Comisión Europea" + }, + { + "lang": "cs", + "value": "Evropská komise" + }, + { + "lang": "da", + "value": "Europa-Kommissionen" + }, + { + "lang": "de", + "value": "Europäische Kommission" + }, + { + "lang": "et", + "value": "Euroopa Komisjon" + }, + { + "lang": "el", + "value": "Ευρωπαϊκή Επιτροπή" + }, + { + "lang": "fr", + "value": "Commission européenne" + }, + { + "lang": "it", + "value": "Commissione europea" + }, + { + "lang": "lv", + "value": "Eiropas Komisija" + }, + { + "lang": "lt", + "value": "Europos Komisija" + }, + { + "lang": "hu", + "value": "Európai Bizottság" + }, + { + "lang": "mt", + "value": "Il-Kummissjoni Ewropea" + }, + { + "lang": "nl", + "value": "Europese Commissie" + }, + { + "lang": "pl", + "value": "Komisja Europejska" + }, + { + "lang": "pt", + "value": "Comissão Europeia" + }, + { + "lang": "ro", + "value": "Comisia Europeană" + }, + { + "lang": "sk", + "value": "Európska komisia" + }, + { + "lang": "sl", + "value": "Evropska komisija" + }, + { + "lang": "fi", + "value": "Euroopan komissio" + }, + { + "lang": "sv", + "value": "Europeiska kommissionen" + }, + { + "lang": "hr", + "value": "Europska komisija" + } + ], + "SchemeOperatorAddress": { + "SchemeOperatorPostalAddress": [ + { + "lang": "fr", + "StreetAddress": "Rue de la Loi 200", + "Locality": "Bruxelles", + "PostalCode": "1049", + "Country": "BE" + }, + { + "lang": "nl", + "StreetAddress": "Wetstraat 200", + "Locality": "Brussel", + "PostalCode": "1049", + "Country": "BE" + }, + { + "lang": "en", + "StreetAddress": "Rue de la Loi/Wetstraat 200", + "Locality": "Brussels", + "PostalCode": "1049", + "Country": "BE" + } + ], + "SchemeOperatorElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:DIGIT-EU-TRUST-NON-PROD@ec.europa.eu" + }, + { + "lang": "en", + "uriValue": "https://digital-strategy.ec.europa.eu/en/policies/eu-trusted-lists" + } + ] + }, + "SchemeName": [ + { + "lang": "en", + "value": "The present list is a list of person identifier providers of EUDI Wallet issued in accordance with CIR 2024/2980" + } + ], + "SchemeInformationURI": [ + { + "lang": "en", + "uriValue": "https://trust.tech.ec.europa.eu/lists/eudiw/wrpac-providers-list-scheme-information" + } + ], + "StatusDeterminationApproach": "http://uri.etsi.org/19602/WRPACProvidersList/StatusDetn/EU", + "SchemeTypeCommunityRules": [ + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/WRPACProvidersList/schemerules/EU" + } + ], + "SchemeTerritory": "EU", + "PolicyOrLegalNotice": [ + { + "LoTEPolicy": { + "lang": "en", + "uriValue": "http://trust.tech.ec.europa.eu/lists/eudiw/legal-notice#EN" + } + } + ], + "ListIssueDateTime": "2026-04-02T09:21:34Z", + "NextUpdate": "2026-10-01T09:21:34Z" + }, + "TrustedEntitiesList": [ + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "eidas2sandkasse RP Access CA test" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "1234", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.no" + }, + { + "lang": "en", + "uriValue": "tel:+47987654" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.no" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/WRPACProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_wrpac_solution_no" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICuzCCAmGgAwIBAgIJAKcp7ByPxFNUMAoGCCqGSM49BAMDMGMxGDAWBgNVBGETD05UUk5PLTk5MTgyNTgyNzELMAkGA1UEBhMCbm8xDzANBgNVBAsTBkRpZ2RpcjEpMCcGA1UEAxMgZWlkYXMyc2FuZGthc3NlLm5ldCByb290IENBIHRlc3QwHhcNMjUwNTA5MDc1NjU0WhcNMzAwNDI5MDc1NjU0WjBkMRgwFgYDVQRhEw9OVFJOTy05OTE4MjU4MjcxCzAJBgNVBAYTAm5vMQ8wDQYDVQQLEwZEaWdkaXIxKjAoBgNVBAMTIWVpZGFzMnNhbmRrYXNzZSBSUCBBY2Nlc3MgQ0EgdGVzdDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABE4OQr5vpRMvcYZs46LkpdDgVQ9V+9E/Gx3Io2jqm+g/43/0b2Ns9oSRv1VpY/vYSI/O6JWylRQ+MNk6V3DfQv2jgfwwgfkwUQYIKwYBBQUHAQEERTBDMEEGCCsGAQUFBzAChjVodHRwczovL2NhLnRlc3QuZWlkYXMyc2FuZGthc3NlLm5ldC92MS9jZXJ0cy9yb290LmNlcjAdBgNVHQ4EFgQUUcgCJYAwgpE7JCLUm9xeoainXcwwDgYDVR0PAQH/BAQDAgEGMAwGA1UdEwQFMAMBAf8wRgYDVR0fBD8wPTA7oDmgN4Y1aHR0cHM6Ly9jYS50ZXN0LmVpZGFzMnNhbmRrYXNzZS5uZXQvdjEvY2VydHMvcm9vdC5jcmwwHwYDVR0jBBgwFoAUCi/G/x9Z1uJAVlFqD3onNXclrPEwCgYIKoZIzj0EAwMDSAAwRQIgfuk68h7gRHYXzBuddxFEUGl1eYtQgMCMKcw6D1kVjzgCIQC91xg+yGdocsoPmIGACivfYZAftiQXGEjHdid9RZOX1g==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/WRPAC/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Idakto" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATFR-12345" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "1234", + "Country": "FR" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.fr" + }, + { + "lang": "en", + "uriValue": "tel:+33234567" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.fr" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/WRPACProvider/FR" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_wrpac_solution_fr" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICgjCCAiegAwIBAgIUafRAIleaQOm9jZLiIML9FeOWd9cwCgYIKoZIzj0EAwIwczELMAkGA1UEBhMCRlIxDzANBgNVBAgMBkZSQU5DRTEPMA0GA1UEBwwGQW5nZXJzMQ8wDQYDVQQKDAZJZGFrdG8xDjAMBgNVBAsMBVN0ZWFtMSEwHwYDVQQDDBhyZWFkZXItaXNzdWVyQGlkYWt0by5jb20wHhcNMjUwNzI1MTQ0NzI1WhcNMzAwNzI0MTQ0NzI1WjBzMQswCQYDVQQGEwJGUjEPMA0GA1UECAwGRlJBTkNFMQ8wDQYDVQQHDAZBbmdlcnMxDzANBgNVBAoMBklkYWt0bzEOMAwGA1UECwwFU3RlYW0xITAfBgNVBAMMGHJlYWRlci1pc3N1ZXJAaWRha3RvLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCq6dkUsfqjCByvS+UM/FDOgjO5fbB6aEesAgWmiMrSJQybQnAGSOySr0V+E0puM3eMaLy4DzsGLW0LX6J+vRLOjgZgwgZUwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJ57lkHy09w59xHQDk4y9ubmup5VMCsGA1UdEQQkMCKCIG9wZW5pZDR2cC5kcnVrcXMuYXNnYXJkLmlkZW52LmZyMCMGA1UdEgQcMBqBGHJlYWRlci1pc3N1ZXJAaWRha3RvLmNvbTAKBggqhkjOPQQDAgNJADBGAiEA9hIBNw8GI7E5z/NZI/3CUMZjndoKGg+2o0lh8/6gY30CIQCiUgMnIib46Ypi4IryQOn282zPWrTWQFwIebwASeG9+w==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/WRPAC/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Microsec Ltd." + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATHU-23584497" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "2345", + "Country": "HU" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.hu" + }, + { + "lang": "en", + "uriValue": "tel:+36567890" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.hu" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/WRPACProvider/HU" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_wrpac_solution_hu" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDQzCCAuigAwIBAgIMBcKMJXgy2272WHQKMAoGCCqGSM49BAMCMHYxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxIzAhBgNVBAMMGlRlc3QgZS1Temlnbm8gUm9vdCBDQSAyMDE3MB4XDTE3MDkyMjIwMDAwMFoXDTQyMDkyMjA2MDAwMFowcTELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRYwFAYDVQQKDA1NaWNyb3NlYyBMdGQuMRcwFQYDVQRhDA5WQVRIVS0yMzU4NDQ5NzEeMBwGA1UEAwwVVGVzdCBlLVN6aWdubyBDQSAyMDE3MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElKYzOPtAdd2ohSfwEgX2A+Zr2jXWrEqAwJYRs9aBjxT67VwuD10R+TEY0aRwzbrAAPfR2hsOr9DcvZlh4AXRraOCAV8wggFbMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vdGVzenQuZS1zemlnbm8uaHUvcWNwczAdBgNVHQ4EFgQUeptoh454hhbzt/k2HvgamLNkHIkwHwYDVR0jBBgwFoAUklDZBPHkz7JSHyQKgYTiOO2dO44wOQYDVR0fBDIwMDAuoCygKoYoaHR0cDovL3Rlc3p0LmUtc3ppZ25vLmh1L3Ryb290Y2EyMDE3LmNybDB9BggrBgEFBQcBAQRxMG8wNwYIKwYBBQUHMAGGK2h0dHA6Ly90ZXN6dC5lLXN6aWduby5odS90ZXN0cm9vdGNhMjAxN29jc3AwNAYIKwYBBQUHMAKGKGh0dHA6Ly90ZXN6dC5lLXN6aWduby5odS90cm9vdGNhMjAxNy5jcnQwCgYIKoZIzj0EAwIDSQAwRgIhAL+F7BHEDUvV/weTnf4TwzwDIssl0hMF/0oKo0c9CaXXAiEAvNpfSAJjlU9kCqsRVUYVQqVffJCuBPIKdFvfcejwfbY=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/WRPAC/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "A-SIT" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATAT-45678" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "2345", + "Country": "AT" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.at" + }, + { + "lang": "en", + "uriValue": "tel:+43789012" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.at" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/WRPACProvider/AT" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_wrpac_solution_at" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICJzCCAc6gAwIBAgIUSvMftn/oM3etHjE7hdIBl6tWMV8wCgYIKoZIzj0EAwIwMzELMAkGA1UEBhMCQVQxDjAMBgNVBAoMBUEtU0lUMRQwEgYDVQQDDAtWYWxlcmEgSUFDQTAeFw0yNTA2MjYwODI0MDJaFw0yNjA2MjYwODI0MDJaMDMxCzAJBgNVBAYTAkFUMQ4wDAYDVQQKDAVBLVNJVDEUMBIGA1UEAwwLVmFsZXJhIElBQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmm+pmyUxx/x2eD131E8HhvNkhsfYQXzefZlxgLXQPqCOxO+VPOXVOKL0dUy+kHyT5IP/NOAh038coAVOgGPT4o4G/MIG8MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMCIGA1UdEgQbMBmGF2h0dHBzOi8vd2FsbGV0LmEtc2l0LmF0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHBzOi8vd2FsbGV0LmEtc2l0LmF0L2NybC8xLmNybDAfBgNVHSMEGDAWgBSDGoj0XuXE3qEVTmPvKSvIvR36ijAdBgNVHQ4EFgQUgxqI9F7lxN6hFU5j7ykryL0d+oowCgYIKoZIzj0EAwIDRwAwRAIgS9XcYA4Be5gDIdHmMOgJ3AeS44gT4bgVgsg/D5+WXS8CIAxJgi3nhGrVMj9SszehLorR2rR5FO5RZgITAaOIGSNP" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/WRPAC/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "WRPAC Provider - failing conformance checks" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "WRPAC Provider1" + }, + { + "lang": "en", + "value": "VATLI-2345678" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Platz 2", + "Locality": "Vaduz", + "StateOrProvince": "Liechtenstein", + "PostalCode": "Fl-001", + "Country": "PL" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:office-wrpac@test.li" + }, + { + "lang": "en", + "uriValue": "tel:+423887744" + }, + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wrpac" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wrpac/policies" + }, + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wrpac/information" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/WRPACProvider/PL" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "WRPAC Service 1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDWjCCAkKgAwIBAgIQFNp7JHkUrblEFMsg3Z6PoDANBgkqhkiG9w0BAQsFADAxMRgwFgYDVQQKDA9XUlBBQyBQcm92aWRlcjExFTATBgNVBAMMDE5hbWVUZXN0Q2VydDAeFw0yNTA5MjUxNDMxMzhaFw0yNjA5MjUxNDQxMzhaMDExGDAWBgNVBAoMD1dSUEFDIFByb3ZpZGVyMTEVMBMGA1UEAwwMTmFtZVRlc3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsfg1O1Eq5tt92WJRylnFc75amIjPybG3yyATDg28rF1rBOcoGFXw/Za029VlewkYCGIznE3SyoaFTcO0e14MLW4sjvSAYYIwTfKFBo7X7VwbhI+ItVrb3bgNXUeLiq5eOerfZWthjtjB5p3SjOtOmIoHpRwRvegGrlFKFK7SFGt7iGMIxKEu0FDQOi7eJnPIhaMflE7qHDfgrX8YFrc8dgi8g062nk1JWM+g+eFcj/eCyHs3adWQ/P5yEVn/A5sOeO8W3tbxA98xRkHgZbikYPaYy1tQGWzdCxZ3kehyucBysaAOuoXunWjX/v4Tx0omEkVq5Dh+lt7iH2nyU03R+QIDAQABo24wbDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBwGA1UdEQQVMBOCEU5hbWVUZXN0Q2VydFdSUEFDMB0GA1UdDgQWBBToGtzqikCk196F3aaeq6HPxLfR3TANBgkqhkiG9w0BAQsFAAOCAQEAbqhUoauW+PRFiOO5O1QjF9pl7ncsCTL/13d4vnEmIicVOOHJjKnZ50/jGkVnPe34BaJ+iEVomNkEHg5XTaj005kTQ1Nimo9NCVJudl9v135dCPdSItGY2FRUfdesD0lYYwSEa0RUT57NeKA6ZTQNIlpE5HFywvKiktZ05GAFQuqn5UYMvaf2unEvXf6HO92yQcJ7H5A5zmJv5RBp6wFs2DznOTKdJMhjKOIybumDoXKCLQYqR9zDG042s369/UB/2FXcNfL3mi/VdayH2BwCu/OlyaxWy0pX+hhZuGEBbyrVTdJvsLSItsg7WpjxeU/GyViz227qh9xKCI/wCZmdzw==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/WRPAC/Issuance", + "ServiceSupplyPoints": [ + { + "uriValue": "http://supply.points", + "ServiceType": "http://supply.pointstype" + } + ], + "ServiceDefinitionURI": [ + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wrpac/service/information" + } + ] + } + } + ] + } + ] + } + """.trimIndent() + val mdlProvidersOriginal = """ + { + "ListAndSchemeInformation": { + "LoTEVersionIdentifier": 1, + "LoTESequenceNumber": 2, + "LoTEType": "http://trust.ec.europa.eu/lists/mDL/mDLProvidersListType", + "SchemeOperatorName": [ + { + "lang": "en", + "value": "European Commission" + }, + { + "lang": "bg", + "value": "Европейска комисия" + }, + { + "lang": "es", + "value": "Comisión Europea" + }, + { + "lang": "cs", + "value": "Evropská komise" + }, + { + "lang": "da", + "value": "Europa-Kommissionen" + }, + { + "lang": "de", + "value": "Europäische Kommission" + }, + { + "lang": "et", + "value": "Euroopa Komisjon" + }, + { + "lang": "el", + "value": "Ευρωπαϊκή Επιτροπή" + }, + { + "lang": "fr", + "value": "Commission européenne" + }, + { + "lang": "it", + "value": "Commissione europea" + }, + { + "lang": "lv", + "value": "Eiropas Komisija" + }, + { + "lang": "lt", + "value": "Europos Komisija" + }, + { + "lang": "hu", + "value": "Európai Bizottság" + }, + { + "lang": "mt", + "value": "Il-Kummissjoni Ewropea" + }, + { + "lang": "nl", + "value": "Europese Commissie" + }, + { + "lang": "pl", + "value": "Komisja Europejska" + }, + { + "lang": "pt", + "value": "Comissão Europeia" + }, + { + "lang": "ro", + "value": "Comisia Europeană" + }, + { + "lang": "sk", + "value": "Európska komisia" + }, + { + "lang": "sl", + "value": "Evropska komisija" + }, + { + "lang": "fi", + "value": "Euroopan komissio" + }, + { + "lang": "sv", + "value": "Europeiska kommissionen" + }, + { + "lang": "hr", + "value": "Europska komisija" + } + ], + "SchemeOperatorAddress": { + "SchemeOperatorPostalAddress": [ + { + "lang": "fr", + "StreetAddress": "Rue de la Loi 200", + "Locality": "Bruxelles", + "PostalCode": "1049", + "Country": "BE" + }, + { + "lang": "nl", + "StreetAddress": "Wetstraat 200", + "Locality": "Brussel", + "PostalCode": "1049", + "Country": "BE" + }, + { + "lang": "en", + "StreetAddress": "Rue de la Loi/Wetstraat 200", + "Locality": "Brussels", + "PostalCode": "1049", + "Country": "BE" + } + ], + "SchemeOperatorElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:DIGIT-EU-TRUST-NON-PROD@ec.europa.eu" + }, + { + "lang": "en", + "uriValue": "https://digital-strategy.ec.europa.eu/en/policies/eu-trusted-lists" + } + ] + }, + "SchemeName": [ + { + "lang": "en", + "value": "The present list is a list of person identifier providers of EUDI Wallet issued in accordance with CIR 2024/2980" + } + ], + "SchemeInformationURI": [ + { + "lang": "en", + "uriValue": "https://trust.tech.ec.europa.eu/lists/eudiw/mdl-providers-list-scheme-information" + } + ], + "StatusDeterminationApproach": "http://trust.ec.europa.eu/lists/mDL/mDLProvidersListStatusDetn", + "SchemeTypeCommunityRules": [ + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/schemerules" + } + ], + "SchemeTerritory": "EU", + "PolicyOrLegalNotice": [ + { + "LoTEPolicy": { + "lang": "en", + "uriValue": "http://trust.tech.ec.europa.eu/lists/eudiw/legal-notice#EN" + } + } + ], + "ListIssueDateTime": "2026-04-02T11:24:30Z", + "NextUpdate": "2026-10-01T11:24:30Z" + }, + "TrustedEntitiesList": [ + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Agence Nationale des Titres Sécurisés" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATFR-2356568" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "3465", + "Country": "FR" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.fr" + }, + { + "lang": "en", + "uriValue": "tel:+337848346754" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.fr" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/mDLProvider/FR" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mDL_solution_fr_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDLTCCAtKgAwIBAgISESEFJUbpBJovlg7lg3Eb5YTCMAoGCCqGSM49BAMCMIGiMQswCQYDVQQGEwJGUjEwMC4GA1UECgwnQWdlbmNlIE5hdGlvbmFsZSBkZXMgVGl0cmVzIFPDqWN1cmlzw6lzMRcwFQYDVQQLDA4wMDAyIDEzMDAwMzI2MjE8MDoGA1UEAwwzQXV0b3JpdMOpIGRlIENlcnRpZmljYXRpb24gRnJhbmNlIEF0dGVzdGF0aW9ucyBJQUNBMQowCAYDVQQFEwExMB4XDTI1MTAxNzAwMDAwMFoXDTM0MTAxNzAwMDAwMFowgaIxCzAJBgNVBAYTAkZSMTAwLgYDVQQKDCdBZ2VuY2UgTmF0aW9uYWxlIGRlcyBUaXRyZXMgU8OpY3VyaXPDqXMxFzAVBgNVBAsMDjAwMDIgMTMwMDAzMjYyMTwwOgYDVQQDDDNBdXRvcml0w6kgZGUgQ2VydGlmaWNhdGlvbiBGcmFuY2UgQXR0ZXN0YXRpb25zIElBQ0ExCjAIBgNVBAUTATEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASa4ZI0w4Mn4FW6kYdKPUlYYgVbwFf1A6lBDnurRsoPJxM3+dVupbkGl9O+QnJ36wc8ngoXE3oH1hP11flDmWsIo4HlMIHiMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMDAGA1UdEgQpMCeBJWZyYW5jZS1hdHRlc3RhdGlvbnNAaW50ZXJpZXVyLmdvdXYuZnIwSgYDVR0fBEMwQTA/oD2gO4Y5aHR0cDovL2NybC5hbnRzLmdvdXYuZnIvYWNfZnJhbmNlX2F0dGVzdGF0aW9uc19pYWNhXzEuY3JsMB0GA1UdDgQWBBT/dscZoX+tou0+F2dDsFrTPfsMpzAfBgNVHSMEGDAWgBT/dscZoX+tou0+F2dDsFrTPfsMpzAKBggqhkjOPQQDAgNJADBGAiEAmMD8Kpgnctmx12gCBYrj98knoKDSPlO5SucThy1EEqwCIQDsYM80Ere4Yw0fHNJQQHl6D1rAITDV3qFKP62Uq7xtsQ==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/mDL/Issuance" + } + }, + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mDL_solution_fr_2" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDUzCCAvmgAwIBAgISESHtNjf+2KAQ0ttWtR9EhAAPMAoGCCqGSM49BAMCMIHFMQswCQYDVQQGEwJGUjEwMC4GA1UECgwnQWdlbmNlIE5hdGlvbmFsZSBkZXMgVGl0cmVzIFPDqWN1cmlzw6lzMRcwFQYDVQQLDA4wMDAyIDEzMDAwMzI2MjEmMCQGA1UECwwdUE9VUiBRVUFMSUZJQ0FUSU9OIFVOSVFVRU1FTlQxNzA1BgNVBAMMLkF1dG9yaXTDqSBkZSBDZXJ0aWZpY2F0aW9uIEZyYW5jZSBBdHRlc3RhdGlvbnMxCjAIBgNVBAUTATEwHhcNMjUwMTI5MDAwMDAwWhcNMzAwMTI5MDAwMDAwWjCBxTELMAkGA1UEBhMCRlIxMDAuBgNVBAoMJ0FnZW5jZSBOYXRpb25hbGUgZGVzIFRpdHJlcyBTw6ljdXJpc8OpczEXMBUGA1UECwwOMDAwMiAxMzAwMDMyNjIxJjAkBgNVBAsMHVBPVVIgUVVBTElGSUNBVElPTiBVTklRVUVNRU5UMTcwNQYDVQQDDC5BdXRvcml0w6kgZGUgQ2VydGlmaWNhdGlvbiBGcmFuY2UgQXR0ZXN0YXRpb25zMQowCAYDVQQFEwExMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEoCYCM9LYS8zUk8I1xL2B2G9voa4yFskoqohrsEQkpNEeKb59J3VDHausTqFWCOfwEGUzi6yocLIbE+gfz59pnaOBxjCBwzAOBgNVHQ8BAf8EBAMCAQYwMAYDVR0SBCkwJ4ElZnJhbmNlLWF0dGVzdGF0aW9uc0BpbnRlcmlldXIuZ291di5mcjASBgNVHRMBAf8ECDAGAQH/AgEAMEwGA1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9jcmwucXVhbGlmLmFudHMuZ291di5mci9hY19mcmFuY2VfYXR0ZXN0YXRpb25zXzEuY3JsMB0GA1UdDgQWBBR3bIy6PB3fPAlYHOvqk7nftps4sDAKBggqhkjOPQQDAgNIADBFAiBrI2HGG1SZNRfEoaIwk3bjAjLBcE9tcKPi1gu0oah58AIhAL+KWRF8FwT4JBblyZdmuoVVXJ36LMmAUcs5YwJpMiQW" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/mDL/Issuance" + } + }, + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mDL_solution_fr_3" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDHTCCAsSgAwIBAgISESEhmoph1P1OOjDCLJAgGdBbMAoGCCqGSM49BAMCMIGfMQswCQYDVQQGEwJGUjEwMC4GA1UECgwnQWdlbmNlIE5hdGlvbmFsZSBkZXMgVGl0cmVzIFPDqWN1cmlzw6lzMRcwFQYDVQQLDA4wMDAyIDEzMDAwMzI2MjE5MDcGA1UEAwwwQXV0b3JpdMOpIGRlIENlcnRpZmljYXRpb24gRnJhbmNlIElkZW50aXTDqSBJQUNBMQowCAYDVQQFEwExMB4XDTI1MTAxNzAwMDAwMFoXDTM0MTAxNzAwMDAwMFowgZ8xCzAJBgNVBAYTAkZSMTAwLgYDVQQKDCdBZ2VuY2UgTmF0aW9uYWxlIGRlcyBUaXRyZXMgU8OpY3VyaXPDqXMxFzAVBgNVBAsMDjAwMDIgMTMwMDAzMjYyMTkwNwYDVQQDDDBBdXRvcml0w6kgZGUgQ2VydGlmaWNhdGlvbiBGcmFuY2UgSWRlbnRpdMOpIElBQ0ExCjAIBgNVBAUTATEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQqfRW/7OTJS4K0IPMa/c8UicIUq62jTccQtGnHAYk6UnvXyRO3PC4/2pdq5QjhwIKwJVqCFOr4fbGboMKLX+L/o4HdMIHaMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMCwGA1UdEgQlMCOBIWZyYW5jZS1pZGVudGl0ZUBpbnRlcmlldXIuZ291di5mcjBGBgNVHR8EPzA9MDugOaA3hjVodHRwOi8vY3JsLmFudHMuZ291di5mci9hY19mcmFuY2VfaWRlbnRpdGVfaWFjYV8xLmNybDAdBgNVHQ4EFgQUAQ1+Rjq9mU0kAyKKyTwFdgjmwA4wHwYDVR0jBBgwFoAUAQ1+Rjq9mU0kAyKKyTwFdgjmwA4wCgYIKoZIzj0EAwIDRwAwRAIgSNKCT8z4zaZLfdOd/rHevKYDbvjqylK723wjd4g4s0ECIDnoWVWyJHwlO31z3QmK7QapM00sOCJnsTIvEGi1Fz/I" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/mDL/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Digitaliseringsdirektoratet - Bevisporten" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-NOFOR.991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "5788", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.no" + }, + { + "lang": "en", + "uriValue": "tel:+4734869323" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.no" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mDL_solution_no" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDBTCCAqygAwIBAgIJALyA/nuVMsUpMAoGCCqGSM49BAMEMIGCMR4wHAYDVQRhExVOVFJOTy1OT0ZPUi45OTE4MjU4MjcxLTArBgNVBAMTJGVpZGFzMnNhbmRrYXNzZSBFQUEgUHJvdmlkZXIgQ0EgdGVzdDEkMCIGA1UEChMbRElHSVRBTElTRVJJTkdTRElSRUtUT1JBVEVUMQswCQYDVQQGEwJOTzAeFw0yNTEwMTAwODE2MzZaFw0yNjEwMDgxMjQ3MzZaMGExCzAJBgNVBAYTAk5PMTIwMAYDVQQDDClEaWdpdGFsaXNlcmluZ3NkaXJla3RvcmF0ZXQgLSBCZXZpc3BvcnRlbjEeMBwGA1UEYQwVTlRSTk8tTk9GT1IuOTkxODI1ODI3MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEggybfUUfbzJltJnTd3NjkH/OApRXdjznhsiDEShxa14362U8s1d/z8fsFMNxiO+z/ZSkHsUurkh2EiNQMcG0T6OCASkwggElMB8GA1UdIwQYMBaAFG2uFOu+dBM1aEzXwQ1nMTFpj7JfMB0GA1UdDgQWBBRTpQH9HAw203fM8Z6Nnc6Aj5RsVzAMBgNVHRMBAf8EAjAAMFwGA1UdHwRVMFMwUaBPoE2GS2h0dHBzOi8vY2EudGVzdC5laWRhczJzYW5ka2Fzc2UubmV0L3YxL2NlcnRzL2ludGVybWVkaWF0ZXMvZWFhX3Byb3ZpZGVyLmNybDBnBggrBgEFBQcBAQRbMFkwVwYIKwYBBQUHMAKGS2h0dHBzOi8vY2EudGVzdC5laWRhczJzYW5ka2Fzc2UubmV0L3YxL2NlcnRzL2ludGVybWVkaWF0ZXMvZWFhX3Byb3ZpZGVyLmNlcjAOBgNVHQ8BAf8EBAMCBaAwCgYIKoZIzj0EAwQDRwAwRAIgco5xnaAZPzLFF0aC7FbF3bEmbHsXId42CRiZIJdqyK0CIG9cjXM31kTF3kmHgN8NligxMbxEmT2HjkAYkKRKUUZR" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Digitaliseringsdirektoratet - mDL-utsteder" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-NOFOR.991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "3478", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.no" + }, + { + "lang": "en", + "uriValue": "tel:+47348346754" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.no" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mDL_solution_no_2" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDMzCCAtmgAwIBAgIIGkwIqxyvEDswCgYIKoZIzj0EAwQwZzEYMBYGA1UEYRMPTlRSTk8tOTkxODI1ODI3MQswCQYDVQQGEwJubzEPMA0GA1UECxMGRGlnZGlyMS0wKwYDVQQDEyRlaWRhczJzYW5ka2Fzc2UgUElEIFByb3ZpZGVyIENBIHRlc3QwHhcNMjUxMDE1MTExMzA3WhcNMjYxMDE1MTExMzA3WjBiMQswCQYDVQQGEwJOTzEzMDEGA1UEAwwqRGlnaXRhbGlzZXJpbmdzZGlyZWt0b3JhdGV0IC0gUElELXV0c3RlZGVyMR4wHAYDVQRhDBVOVFJOTy1OT0ZPUi45OTE4MjU4MjcwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATLIEmdVcdTVfQ/6YpsPvS4taSRiebXwcjHWGEWpZLfrKb3yvowmUMe2SaDZD8HCOXjvSXfbIQsgFKeMU88IkNaDOfyMHbXYf3cJZCFJYo799hQL6j2tMogjUMkyoP+dnCjggFVMIIBUTAfBgNVHSMEGDAWgBRX7XviJqjDMVi/g0bAr0FvQshSDDAdBgNVHQ4EFgQUUCIS5a/pLXMjHV+a4AV8NkiRHZMwDAYDVR0TAQH/BAIwADBcBgNVHR8EVTBTMFGgT6BNhktodHRwczovL2NhLnRlc3QuZWlkYXMyc2FuZGthc3NlLm5ldC92MS9jZXJ0cy9pbnRlcm1lZGlhdGVzL3BpZF9wcm92aWRlci5jcmwwZwYIKwYBBQUHAQEEWzBZMFcGCCsGAQUFBzAChktodHRwczovL2NhLnRlc3QuZWlkYXMyc2FuZGthc3NlLm5ldC92MS9jZXJ0cy9pbnRlcm1lZGlhdGVzL3BpZF9wcm92aWRlci5jZXIwDgYDVR0PAQH/BAQDAgWgMCoGCCsGAQUFBwEDAQH/BBswGQYGBACORgEGDA9pZC1ldHNpLXFjdC1waWQwCgYIKoZIzj0EAwQDSAAwRQIgPNu17SJ+E628cVBT1J1CCZQEI85MIG1hqm1ynwyQN84CIQC67g+mvEDLF9C5gcwN8Q38IEJu3bw0EhCvBbUqPORQPA==" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Digi- ja väestötietovirasto" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATFI-8567" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "5685", + "Country": "FI" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.fi" + }, + { + "lang": "en", + "uriValue": "tel:+358348346754" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.fi" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/FI" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mDL_solution_fi" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDDTCCApKgAwIBAgIUaqDAxDTFQMkDVdM0LpPFNCskEV4wCgYIKoZIzj0EAwMwgagxODA2BgNVBAMML0RWViBEaWdpLUlEIE1vY2sgQXR0cmlidXRlIFNlYWxpbmcgQ2VydGlmaWNhdGVzMSYwJAYDVQQKDB1EaWdpLSBqYSB2w6Rlc3TDtnRpZXRvdmlyYXN0bzERMA8GA1UEBwwISGVsc2lua2kxCzAJBgNVBAYTAkZJMRAwDgYDVQQIDAdGaW5sYW5kMRIwEAYDVQQFEwkwMjQ1NDM3LTIwHhcNMjQwMTE1MDkyNTE5WhcNMzMwMTEyMDkyNTE5WjCBqDE4MDYGA1UEAwwvRFZWIERpZ2ktSUQgTW9jayBBdHRyaWJ1dGUgU2VhbGluZyBDZXJ0aWZpY2F0ZXMxJjAkBgNVBAoMHURpZ2ktIGphIHbDpGVzdMO2dGlldG92aXJhc3RvMREwDwYDVQQHDAhIZWxzaW5raTELMAkGA1UEBhMCRkkxEDAOBgNVBAgMB0ZpbmxhbmQxEjAQBgNVBAUTCTAyNDU0MzctMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABGcz86+Pt3o1TZ5BYKXtOrFhqi6fDVq7+32J8DaeiSibJES5c9mAPIP/eNB8b+Wm+7RU9blUZ3xlxsmVTGScEOwwSVczmiwBHtk4+7KNltd6CrAAFgSdyDKCEe+w+AKwLqN7MHkwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwGQYDVR0SBBIwEIYOaHR0cHM6Ly9kdnYuZmkwGQYDVR0RBBIwEIYOaHR0cHM6Ly9kdnYuZmkwHQYDVR0OBBYEFJNVLFsDRkyYNcoRYUEBvtvpEOv7MAoGCCqGSM49BAMDA2kAMGYCMQCwfwzQ2A07a3RiA3BUs2BhdNNuhiZcj5HZN7H8fEEiSvkHay67c2XvuyRlZ+zhE18CMQD6OMM6GM+7oKSBtHEbXuiskiWhl9nq7FPQDwPFoaVGxu/SQ3itFL4k2nNsJrEBcfg=" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "eidas2sandkasse mDL Provider CA test" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "4332", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.no" + }, + { + "lang": "en", + "uriValue": "tel:+47348346754" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.no" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mDL_solution_no_3" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICvTCCAmSgAwIBAgIJAJ7Fdm0r3xiMMAoGCCqGSM49BAMDMGMxGDAWBgNVBGETD05UUk5PLTk5MTgyNTgyNzELMAkGA1UEBhMCbm8xDzANBgNVBAsTBkRpZ2RpcjEpMCcGA1UEAxMgZWlkYXMyc2FuZGthc3NlLm5ldCByb290IENBIHRlc3QwHhcNMjUwNzE0MDk1MDE5WhcNMjkxMjE2MDk1MDE5WjBnMRgwFgYDVQRhEw9OVFJOTy05OTE4MjU4MjcxCzAJBgNVBAYTAm5vMQ8wDQYDVQQLEwZEaWdkaXIxLTArBgNVBAMTJGVpZGFzMnNhbmRrYXNzZSBQSUQgUHJvdmlkZXIgQ0EgdGVzdDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMyVKdaQbLy6E4y7A2Crz/7qBv2x9vebD+7B3N0o2rpxXsDzOQYkBBaBh8uD2LxmEI3E3a6vISekCY0NK/nhUR2jgfwwgfkwUQYIKwYBBQUHAQEERTBDMEEGCCsGAQUFBzAChjVodHRwczovL2NhLnRlc3QuZWlkYXMyc2FuZGthc3NlLm5ldC92MS9jZXJ0cy9yb290LmNlcjAdBgNVHQ4EFgQUV+174iaowzFYv4NGwK9Bb0LIUgwwDgYDVR0PAQH/BAQDAgEGMAwGA1UdEwQFMAMBAf8wRgYDVR0fBD8wPTA7oDmgN4Y1aHR0cHM6Ly9jYS50ZXN0LmVpZGFzMnNhbmRrYXNzZS5uZXQvdjEvY2VydHMvcm9vdC5jcmwwHwYDVR0jBBgwFoAUCi/G/x9Z1uJAVlFqD3onNXclrPEwCgYIKoZIzj0EAwMDRwAwRAIgLvJLEoUbacsoa2calE0f/XVOAnHDWVYDizHJqJAwS3kCIDz8miu6b8cD09rfGSD727joqPunkIGRQqi72HTVabcA" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "eidas2sandkasse Pub EAA Provider CA test" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "test", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.no" + }, + { + "lang": "en", + "uriValue": "tel:+4734869323" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.no" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mDL_solution_no_4" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICwjCCAmigAwIBAgIJAPm2yYm712+4MAoGCCqGSM49BAMDMGMxGDAWBgNVBGETD05UUk5PLTk5MTgyNTgyNzELMAkGA1UEBhMCbm8xDzANBgNVBAsTBkRpZ2RpcjEpMCcGA1UEAxMgZWlkYXMyc2FuZGthc3NlLm5ldCByb290IENBIHRlc3QwHhcNMjUwNzE0MDk1MDUxWhcNMjkxMjE2MDk1MDUxWjBrMRgwFgYDVQRhEw9OVFJOTy05OTE4MjU4MjcxCzAJBgNVBAYTAm5vMQ8wDQYDVQQLEwZEaWdkaXIxMTAvBgNVBAMTKGVpZGFzMnNhbmRrYXNzZSBQdWIgRUFBIFByb3ZpZGVyIENBIHRlc3QwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS+7CQFU3oWwu9dxauSvk5Xc7AeDhDtLb/x8WcUWFvlG4ekHKlqvW9gxe+W4KJrfn95UZ/0fOfm+znsha/zpiMKo4H8MIH5MFEGCCsGAQUFBwEBBEUwQzBBBggrBgEFBQcwAoY1aHR0cHM6Ly9jYS50ZXN0LmVpZGFzMnNhbmRrYXNzZS5uZXQvdjEvY2VydHMvcm9vdC5jZXIwHQYDVR0OBBYEFD/oYNwZ6+S0FLt9IQvCHPFK6ktiMA4GA1UdDwEB/wQEAwIBBjAMBgNVHRMEBTADAQH/MEYGA1UdHwQ/MD0wO6A5oDeGNWh0dHBzOi8vY2EudGVzdC5laWRhczJzYW5ka2Fzc2UubmV0L3YxL2NlcnRzL3Jvb3QuY3JsMB8GA1UdIwQYMBaAFAovxv8fWdbiQFZRag96JzV3JazxMAoGCCqGSM49BAMDA0gAMEUCIHcgPyDKaizjJPpyztDqUwVqDabzOBVSQwgFIAFT+aV+AiEA8sFi8APxqLmwmCjd5EOd2WhGXSWRksIcCW+aS8kpPmU=" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "AMA - Agência para a Modernização Administrativa" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATPT-27373" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "23451", + "Country": "PT" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.pt" + }, + { + "lang": "en", + "uriValue": "tel:+35198765" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.pt" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/PT" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mdl_solution_pt" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIC3zCCAoWgAwIBAgIUcSydOyasuB5uNjr9rj5tPAhpbQUwCgYIKoZIzj0EAwIwejEtMCsGA1UEAwwkRW1pc3NvciBkZSBQSUQgLSBDZXJ0aWZpY2FkbyByYWl6IDAxMTwwOgYDVQQKDDNBTUEgLSBBZ8OqbmNpYSBwYXJhIGEgTW9kZXJuaXphw6fDo28gQWRtaW5pc3RyYXRpdmExCzAJBgNVBAYTAlBUMB4XDTI0MDgyMzE4MTQ0N1oXDTMzMTExOTE4MTQ0NlowejEtMCsGA1UEAwwkRW1pc3NvciBkZSBQSUQgLSBDZXJ0aWZpY2FkbyByYWl6IDAxMTwwOgYDVQQKDDNBTUEgLSBBZ8OqbmNpYSBwYXJhIGEgTW9kZXJuaXphw6fDo28gQWRtaW5pc3RyYXRpdmExCzAJBgNVBAYTAlBUMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEJQQp1ekgl4ztbyvAEHQcHjiIwNRbELpVBzqXiGP2AZdhCP0qgEQ5Ud2hb0fbrE2/hEtiZmw0ppGX37g/wx+VLaOB6DCB5TASBgNVHRMBAf8ECDAGAQH/AgEAMB8GA1UdIwQYMBaAFNl5BlM1kkgig634oJOTlZRNJbezMBYGA1UdJQEB/wQMMAoGCCuBAgIAAAEHMEMGA1UdHwQ8MDowOKA2oDSGMmh0dHBzOi8vcHJlcHJvZC5wa2kuYW1hLnByb2pqLmV1L2NybC9waWRfQ0FfMDEuY3JsMB0GA1UdDgQWBBTZeQZTNZJIIoOt+KCTk5WUTSW3szAOBgNVHQ8BAf8EBAMCAQYwIgYDVR0SBBswVIZSaHR0cHM6Ly93d3cuYW1hLmdvdi5wdC8wCgYIKoZIzj0EAwIDSAAwRQIhAPlr1TTIv8pTKOY08FpKrpNsFLj9gKIagDIUHcDPjy6iAiBL8GUS5H5NcHhTEjJxxEMX9CVuFfVhvRCssbaCV3RwsA==" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "A-SIT" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATAT-37373" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "23451", + "Country": "AT" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.at" + }, + { + "lang": "en", + "uriValue": "tel:+4398279" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.at" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/AT" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mdl_solution_at_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICGzCCAcCgAwIBAgIUb9GJdqQMdwXaoO61uxoBlg+jhbYwCgYIKoZIzj0EAwIwLDELMAkGA1UEBhMCQVQxDjAMBgNVBAoMBUEtU0lUMQ0wCwYDVQQDDARJQUNBMB4XDTI1MDQwNzA5NDQ1N1oXDTI2MDQwNzA5NDQ1N1owLDELMAkGA1UEBhMCQVQxDjAMBgNVBAoMBUEtU0lUMQ0wCwYDVQQDDARJQUNBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElIXOzb+iF+zGutygdIVOBnC4R6OvhYo5TGWhrH0idmqs56IVwJWYzQYzK4CbYePcxpMQY3lKBa5O0MAZe+EogKOBvzCBvDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAiBgNVHRIEGzAZhhdodHRwczovL3dhbGxldC5hLXNpdC5hdDAyBgNVHR8EKzApMCegJaAjhiFodHRwczovL3dhbGxldC5hLXNpdC5hdC9jcmwvMS5jcmwwHwYDVR0jBBgwFoAUDQF5K46YVgzLpfV5stoutBezK6QwHQYDVR0OBBYEFA0BeSuOmFYMy6X1ebLaLrQXsyukMAoGCCqGSM49BAMCA0kAMEYCIQCz0i9GA24ZOf3Wk+w8+09J6ARAHKLuBuepszBxVZdaZAIhAJlgzKBhHw8+Bwr+wLGQVjMC5e9BWWaUga8ZP9dRYhHJ" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "IDAKTO IACA 4" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATFR-73829" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "23343", + "Country": "FR" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.fr" + }, + { + "lang": "en", + "uriValue": "tel:+33857302" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.fr" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/FR" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mdl_solution_fr_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIB2TCCAX+gAwIBAgIJAI5LEB+QbO+3MAoGCCqGSM49BAMCMCUxCzAJBgNVBAYTAkZSMRYwFAYDVQQDDA1JREFLVE8gSUFDQSA0MB4XDTI0MDkyNjEyMzQ1M1oXDTI5MDkyNTEyMzQ1M1owJTELMAkGA1UEBhMCRlIxFjAUBgNVBAMMDUlEQUtUTyBJQUNBIDQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARMophaPOvIcnsKuxs3iGxJA3kyQx3pHeC0LWj8RNPLtYWAcPJq8bB5PSyOkGtB6XcGUTJukaBxU//5cAe2I18po4GXMIGUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS2EQayXDKCQSR99d/ve3ZXwxWPpzAaBgNVHRIEEzARgQ9pYWNhQGlkYWt0by5jb20wMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5jaG9wcGVyLmlkbGFiLmxpdmU6NTU1NTAKBggqhkjOPQQDAgNIADBFAiAX1wM1La0uufb2yA4jZ+11FfF6hcx3ER8/kcC52teviQIhALNwfW4Zusu4QD8QFxRKrLyi8UVWpDXI5G7rHRnIbNPf" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "ISO Root CA" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATAT-90021" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "63823", + "Country": "AT" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test2@domain.at" + }, + { + "lang": "en", + "uriValue": "tel:+33848209" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.at" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/AT" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mdl_solution_at_2" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICbDCCAhKgAwIBAgIUH23VY4YX6sFgbdidaIr2o7cR154wCgYIKoZIzj0EAwIwIzELMAkGA1UEBhMCQVQxFDASBgNVBAMMC0lTTyBSb290IENBMB4XDTI1MDUyODExNTMxMloXDTM1MDUyNjExNTMxMlowIzELMAkGA1UEBhMCQVQxFDASBgNVBAMMC0lTTyBSb290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEisG5+9ei6IRPnTkc2HuiY5kDWM+SUEeTkDXBs7bz/Xc1gwa0WbfEwJA2GuasCl4h0Zzv2fuDK+ER2+Gb7IsPWKOCASIwggEeMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTeJAquS8H45Kv/lng41lul7kTOCDAfBgNVHSMEGDAWgBTeJAquS8H45Kv/lng41lul7kTOCDCBiwYDVR0fBIGDMIGAMH6gfKB6hnhodHRwczovL3ZhdWx0LmxpZS1pbnRlcm5hbC5wcm9kdWN0aW9uLmNsdXN0ZXJzLnlvdW5pcXguY29tL3YxL21hbmFnZWQvcGtpL21pYS1saWUtaW50ZXJuYWwvbWlhLWxpZS1pbnRlcm5hbC1pc28tcm9vdC9jcmwwKgYDVR0SBCMwIYEfdGVhbS5xdWFudHVtcXVva2thc0B5b3VuaXF4LmNvbTAKBggqhkjOPQQDAgNIADBFAiA9ehNPI3Ck4bfcma27BbKClYLOmjIbu0ytFf6etfp5dwIhAIZT1olmq8bVm7iDRjtFAWUUpNjKQMPAXXY83EbqiqQV" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Bundesdruckerei GmbH" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATDE-82718" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "638382", + "Country": "DE" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test2@domain.de" + }, + { + "lang": "en", + "uriValue": "tel:+4971501" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.at" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/DE" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mdl_solution_de_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICNTCCAdygAwIBAgIUBEfh5TdWaKkeiOkVBHKBHe7VHOUwCgYIKoZIzj0EAwIwZzELMAkGA1UEBhMCREUxDzANBgNVBAcMBkJlcmxpbjEdMBsGA1UECgwUQnVuZGVzZHJ1Y2tlcmVpIEdtYkgxETAPBgNVBAsMCFQgQ1MgSURFMRUwEwYDVQQDDAxQSURQIERlbW8gQ0EwHhcNMjUxMTE5MTIwNjMwWhcNMzUxMTE3MTIwNjMwWjBnMQswCQYDVQQGEwJERTEPMA0GA1UEBwwGQmVybGluMR0wGwYDVQQKDBRCdW5kZXNkcnVja2VyZWkgR21iSDERMA8GA1UECwwIVCBDUyBJREUxFTATBgNVBAMMDFBJRFAgRGVtbyBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLfzEvVnrtzbM47MtwES2H4cOFtqvaZEQw4DGMiENSbfKih9WxxhDN8HzuukmiFZYhOxy0frbPlCBJkhGZFsKOWjZjBkMB0GA1UdDgQWBBSAX87IYWUcmGz01ZRdX/qAWEO+XzAfBgNVHSMEGDAWgBSAX87IYWUcmGz01ZRdX/qAWEO+XzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAKBggqhkjOPQQDAgNHADBEAiBae8hSEdl3gqo8gmbvl9IV9rTrG5iw/6kk6h8w0upuVwIgM29abFnlKUY07mil1xc43zoMqql4YuWv29VHA9ZiT4Y=" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Microsec Ltd." + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATHU-23584497" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "73824", + "Country": "HU" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test2@domain.hu" + }, + { + "lang": "en", + "uriValue": "tel:+36019283" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.hu" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/HU" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mdl_solution_hu_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDQzCCAuigAwIBAgIMBcKMJXgy2272WHQKMAoGCCqGSM49BAMCMHYxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxIzAhBgNVBAMMGlRlc3QgZS1Temlnbm8gUm9vdCBDQSAyMDE3MB4XDTE3MDkyMjIwMDAwMFoXDTQyMDkyMjA2MDAwMFowcTELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRYwFAYDVQQKDA1NaWNyb3NlYyBMdGQuMRcwFQYDVQRhDA5WQVRIVS0yMzU4NDQ5NzEeMBwGA1UEAwwVVGVzdCBlLVN6aWdubyBDQSAyMDE3MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElKYzOPtAdd2ohSfwEgX2A+Zr2jXWrEqAwJYRs9aBjxT67VwuD10R+TEY0aRwzbrAAPfR2hsOr9DcvZlh4AXRraOCAV8wggFbMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vdGVzenQuZS1zemlnbm8uaHUvcWNwczAdBgNVHQ4EFgQUeptoh454hhbzt/k2HvgamLNkHIkwHwYDVR0jBBgwFoAUklDZBPHkz7JSHyQKgYTiOO2dO44wOQYDVR0fBDIwMDAuoCygKoYoaHR0cDovL3Rlc3p0LmUtc3ppZ25vLmh1L3Ryb290Y2EyMDE3LmNybDB9BggrBgEFBQcBAQRxMG8wNwYIKwYBBQUHMAGGK2h0dHA6Ly90ZXN6dC5lLXN6aWduby5odS90ZXN0cm9vdGNhMjAxN29jc3AwNAYIKwYBBQUHMAKGKGh0dHA6Ly90ZXN6dC5lLXN6aWduby5odS90cm9vdGNhMjAxNy5jcnQwCgYIKoZIzj0EAwIDSQAwRgIhAL+F7BHEDUvV/weTnf4TwzwDIssl0hMF/0oKo0c9CaXXAiEAvNpfSAJjlU9kCqsRVUYVQqVffJCuBPIKdFvfcejwfbY=" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "TEST Authority" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATEE-373091" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "53242", + "Country": "EE" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test2@domain.ee" + }, + { + "lang": "en", + "uriValue": "tel:+372932394" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.ee" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/EE" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mdl_solution_ee" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICiTCCAjCgAwIBAgIUD89WCelKX+PFzZTKvrIsMgoIjZcwCgYIKoZIzj0EAwIwUjELMAkGA1UEBhMCRUUxDjAMBgNVBAgMBUhhcmp1MRcwFQYDVQQKDA5URVNUIEF1dGhvcml0eTEaMBgGA1UEAwwRVEVTVCBJQUNBIFJvb3QgQ0EwHhcNMjUwMjE5MTExNDI2WhcNNDUwMjE0MTExNDI2WjBSMQswCQYDVQQGEwJFRTEOMAwGA1UECAwFSGFyanUxFzAVBgNVBAoMDlRFU1QgQXV0aG9yaXR5MRowGAYDVQQDDBFURVNUIElBQ0EgUm9vdCBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOJyw8+GgiTyqkzhvwA5nNMwsjLA24/2wjYrXJMb23fCAWeskZu014znoXZHJZK+cxlnvLtLscYCiF7REr6NWcqjgeMwgeAwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHAddh/lzBAlZm1hAO/QgQmhV9WBMCMGA1UdEgQcMBqBGGNvbnRhY3RAaWFjYS5leGFtcGxlLmNvbTB2BgNVHR8EbzBtMGugaaBnhmVodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3Blbi1laWQvZXVkaS1xZWFhLWlzc3Vlci1wb2MvcmVmcy9oZWFkcy9kZXZlbG9wL2xvY2FsL2NybC9pYWNhLmNybDAKBggqhkjOPQQDAgNHADBEAiBt84QP49zoXBFItKhxIPkg+7qXbf6eIMY0xkc1M7RYlQIgWOSUJbP8KEreKUQ5Nwgae13YifG3jpJfU+nVWAe+1Ik=" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "GRNET" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATEL-7283" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "53242", + "Country": "EL" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test2@domain.el" + }, + { + "lang": "en", + "uriValue": "tel:+302932394" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.el" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/EL" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mdl_solution_el" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICkTCCAjigAwIBAgIUBHi4ixVY+v67hn64ELqWc/cuIoQwCgYIKoZIzj0EAwIwPTEeMBwGA1UEAwwVUElEIElzc3VlciBDQSAtIEdSIDAxMQ4wDAYDVQQKDAVHUk5FVDELMAkGA1UEBhMCR1IwHhcNMjUxMTAzMTMwMzQ1WhcNMjYxMTAzMTMwMzQ1WjA9MR4wHAYDVQQDDBVQSUQgSXNzdWVyIENBIC0gR1IgMDExDjAMBgNVBAoMBUdSTkVUMQswCQYDVQQGEwJHUjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGV76duOyXnqudRE1nzJHu4TF/hQLSzrUNNj/g14e1eno+mdF/2BUsTKMMoVi6Nvahco45gI0aC/sXBK+zfhysmjggEUMIIBEDASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQ9fVq9ZifBrdIV1gL89UMxFC+HyzBiBgNVHSMEWzBZoUGkPzA9MR4wHAYDVQQDDBVQSUQgSXNzdWVyIENBIC0gR1IgMDExDjAMBgNVBAoMBUdSTkVUMQswCQYDVQQGEwJHUoIUBHi4ixVY+v67hn64ELqWc/cuIoQwFgYDVR0lAQH/BAwwCgYIK4ECAgAAAQcwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovLzgzLjIxMi43Mi4xMTQ6ODA4Mi9jcmwucGVtMA4GA1UdDwEB/wQEAwIBBjAbBgNVHRIEFDAShhBodHRwczovL2dybmV0LmdyMAoGCCqGSM49BAMCA0cAMEQCICAFSFanRww3RVPLqp4IC+/1JxXF9q3qE22t0R0pSKxUAiAJLUpXIknyy2qAwukAZujeuZne71PJ1Yh9xYjUdQZuhQ==" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "mDL Provider1" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "Liechtenstein National Administration" + }, + { + "lang": "en", + "value": "VATLI-2345678" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Platz 2", + "Locality": "Vaduz", + "StateOrProvince": "Liechtenstein", + "PostalCode": "Fl-001", + "Country": "PL" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:office-mdl@test.li" + }, + { + "lang": "en", + "uriValue": "tel:+423887744" + }, + { + "lang": "en", + "uriValue": "https://www.llv.li/en/mdl" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://www.llv.li/en/mdl/policies" + }, + { + "lang": "en", + "uriValue": "https://www.llv.li/en/mdl/information" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/PL" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "mDL Service 1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDsjCCApqgAwIBAgIQa5/PTwD9epxBQHrl6XObezANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQGEwJMSTEOMAwGA1UEBwwFVmFkdXoxDDAKBgNVBAsMA0xMVjEuMCwGA1UECgwlTGllY2h0ZW5zdGVpbiBOYXRpb25hbCBBZG1pbmlzdHJhdGlvbjEPMA0GA1UEAwwGbGx2LmxpMB4XDTI2MDEwNTEzMTkyMFoXDTI3MDEwNTEzMTk1MFowbDELMAkGA1UEBhMCTEkxDjAMBgNVBAcMBVZhZHV6MQwwCgYDVQQLDANMTFYxLjAsBgNVBAoMJUxpZWNodGVuc3RlaW4gTmF0aW9uYWwgQWRtaW5pc3RyYXRpb24xDzANBgNVBAMMBmxsdi5saTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJtDK/L1QEAj7QNtAgA5SNVXXahMtwayCAHtimJEGMRXeiI9KSE+BBfQ8c989Wbw9KqLsIUWGNuleGQCRFWArZmWXXezHn3fJecpeb06t+OZiPaLgq4iBp8EZ0czGFIxNxXOtSSgVcL1FCsDnIW9yzRt/xFPUn/59F6oGky/KPQXg0sW3UOkTW/k795QqIvLaMPFKn1kKkBSGh4TWmp6zQ0c7lEWGLKlCV0l0XHQAwl0bmoebEsA7QBG320i31n4Gr5y0zCbWjxEv3IU6RWZ2QARlybj4lVXyTyiezJ91v2tEhWlE/xK6AV7y9N5IcB5e+sxKDmjCp4gb1idBJYM9W0CAwEAAaNQME4wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAdBgNVHQ4EFgQU0RI/MTHeLnYjg8CQlPsrBXvWZLkwDQYJKoZIhvcNAQELBQADggEBAHlLN3fEK8q9mk5Uy6Y0Bnq7clLKAlajbUcPc2/SAiYsmioNv5k6p6dAiNXng4gaSe1gGQz9o15raYz2EK3nfmw1ooFjXjmZOfiY2EBsBd9X3EJCu2aYBDeOaX3Xqw1s0ZXdfmDnvqEEmVvVr+VubzX8JLS2AM2glyRvBb7w27gBBvptggS54P9Re16yGxiQbqV17k8h/0idYbGH31Y8lUYRyOHkFtlL4pqJmCQ38laej0L73GiUtCg0hdrGcrEf2oziO55pBpsJTAiiCkv/Pz7Ri4o8l3ALQKrByloO2mpwlPmVmxxNi/o79XFGelTIBrWIVYgBbTwfDzvQIIKjY6I=" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance", + "ServiceSupplyPoints": [ + { + "uriValue": "http://supply.points", + "ServiceType": "http://supply.pointstype" + } + ], + "ServiceDefinitionURI": [ + { + "lang": "en", + "uriValue": "https://www.llv.li/en/mdl/service/information" + } + ] + } + } + ] + } + ] + } + """.trimIndent() + + val pidProvidersFixed = """ + { + "ListAndSchemeInformation": { + "LoTEVersionIdentifier": 1, + "LoTESequenceNumber": 4, + "LoTEType": "http://uri.etsi.org/19602/LoTEType/EUPIDProvidersList", + "SchemeOperatorName": [ + { + "lang": "en", + "value": "European Commission" + }, + { + "lang": "bg", + "value": "Европейска комисия" + }, + { + "lang": "es", + "value": "Comisión Europea" + }, + { + "lang": "cs", + "value": "Evropská komise" + }, + { + "lang": "da", + "value": "Europa-Kommissionen" + }, + { + "lang": "de", + "value": "Europäische Kommission" + }, + { + "lang": "et", + "value": "Euroopa Komisjon" + }, + { + "lang": "el", + "value": "Ευρωπαϊκή Επιτροπή" + }, + { + "lang": "fr", + "value": "Commission européenne" + }, + { + "lang": "it", + "value": "Commissione europea" + }, + { + "lang": "lv", + "value": "Eiropas Komisija" + }, + { + "lang": "lt", + "value": "Europos Komisija" + }, + { + "lang": "hu", + "value": "Európai Bizottság" + }, + { + "lang": "mt", + "value": "Il-Kummissjoni Ewropea" + }, + { + "lang": "nl", + "value": "Europese Commissie" + }, + { + "lang": "pl", + "value": "Komisja Europejska" + }, + { + "lang": "pt", + "value": "Comissão Europeia" + }, + { + "lang": "ro", + "value": "Comisia Europeană" + }, + { + "lang": "sk", + "value": "Európska komisia" + }, + { + "lang": "sl", + "value": "Evropska komisija" + }, + { + "lang": "fi", + "value": "Euroopan komissio" + }, + { + "lang": "sv", + "value": "Europeiska kommissionen" + }, + { + "lang": "hr", + "value": "Europska komisija" + } + ], + "SchemeOperatorAddress": { + "SchemeOperatorPostalAddress": [ + { + "lang": "fr", + "StreetAddress": "Rue de la Loi 200", + "Locality": "Bruxelles", + "PostalCode": "1049", + "Country": "BE" + }, + { + "lang": "nl", + "StreetAddress": "Wetstraat 200", + "Locality": "Brussel", + "PostalCode": "1049", + "Country": "BE" + }, + { + "lang": "en", + "StreetAddress": "Rue de la Loi/Wetstraat 200", + "Locality": "Brussels", + "PostalCode": "1049", + "Country": "BE" + } + ], + "SchemeOperatorElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:DIGIT-EU-TRUST-NON-PROD@ec.europa.eu" + }, + { + "lang": "en", + "uriValue": "https://digital-strategy.ec.europa.eu/en/policies/eu-trusted-lists" + } + ] + }, + "SchemeName": [ + { + "lang": "en", + "value": "The present list is a list of person identifier providers of EUDI Wallet issued in accordance with CIR 2024/2980" + } + ], + "SchemeInformationURI": [ + { + "lang": "en", + "uriValue": "https://trust.tech.ec.europa.eu/lists/eudiw/pid-providers-list-scheme-information" + } + ], + "StatusDeterminationApproach": "http://uri.etsi.org/19602/PIDProvidersList/StatusDetn/EU", + "SchemeTypeCommunityRules": [ + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/PIDProviders/schemerules/EU" + } + ], + "SchemeTerritory": "EU", + "PolicyOrLegalNotice": [ + { + "LoTEPolicy": { + "lang": "en", + "uriValue": "http://trust.tech.ec.europa.eu/lists/eudiw/legal-notice#EN" + } + } + ], + "ListIssueDateTime": "2026-04-17T13:14:02Z", + "NextUpdate": "2026-10-16T13:14:02Z" + }, + "TrustedEntitiesList": [ + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Agence Nationale des Titres Sécurisés" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATFR-2356568" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "3465", + "Country": "FR" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.fr" + }, + { + "lang": "en", + "uriValue": "tel:+337848346754" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.fr" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/FR" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_PID_solution_fr_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDLTCCAtKgAwIBAgISESEFJUbpBJovlg7lg3Eb5YTCMAoGCCqGSM49BAMCMIGiMQswCQYDVQQGEwJGUjEwMC4GA1UECgwnQWdlbmNlIE5hdGlvbmFsZSBkZXMgVGl0cmVzIFPDqWN1cmlzw6lzMRcwFQYDVQQLDA4wMDAyIDEzMDAwMzI2MjE8MDoGA1UEAwwzQXV0b3JpdMOpIGRlIENlcnRpZmljYXRpb24gRnJhbmNlIEF0dGVzdGF0aW9ucyBJQUNBMQowCAYDVQQFEwExMB4XDTI1MTAxNzAwMDAwMFoXDTM0MTAxNzAwMDAwMFowgaIxCzAJBgNVBAYTAkZSMTAwLgYDVQQKDCdBZ2VuY2UgTmF0aW9uYWxlIGRlcyBUaXRyZXMgU8OpY3VyaXPDqXMxFzAVBgNVBAsMDjAwMDIgMTMwMDAzMjYyMTwwOgYDVQQDDDNBdXRvcml0w6kgZGUgQ2VydGlmaWNhdGlvbiBGcmFuY2UgQXR0ZXN0YXRpb25zIElBQ0ExCjAIBgNVBAUTATEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASa4ZI0w4Mn4FW6kYdKPUlYYgVbwFf1A6lBDnurRsoPJxM3+dVupbkGl9O+QnJ36wc8ngoXE3oH1hP11flDmWsIo4HlMIHiMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMDAGA1UdEgQpMCeBJWZyYW5jZS1hdHRlc3RhdGlvbnNAaW50ZXJpZXVyLmdvdXYuZnIwSgYDVR0fBEMwQTA/oD2gO4Y5aHR0cDovL2NybC5hbnRzLmdvdXYuZnIvYWNfZnJhbmNlX2F0dGVzdGF0aW9uc19pYWNhXzEuY3JsMB0GA1UdDgQWBBT/dscZoX+tou0+F2dDsFrTPfsMpzAfBgNVHSMEGDAWgBT/dscZoX+tou0+F2dDsFrTPfsMpzAKBggqhkjOPQQDAgNJADBGAiEAmMD8Kpgnctmx12gCBYrj98knoKDSPlO5SucThy1EEqwCIQDsYM80Ere4Yw0fHNJQQHl6D1rAITDV3qFKP62Uq7xtsQ==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + }, + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_PID_solution_fr_2" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDUzCCAvmgAwIBAgISESHtNjf+2KAQ0ttWtR9EhAAPMAoGCCqGSM49BAMCMIHFMQswCQYDVQQGEwJGUjEwMC4GA1UECgwnQWdlbmNlIE5hdGlvbmFsZSBkZXMgVGl0cmVzIFPDqWN1cmlzw6lzMRcwFQYDVQQLDA4wMDAyIDEzMDAwMzI2MjEmMCQGA1UECwwdUE9VUiBRVUFMSUZJQ0FUSU9OIFVOSVFVRU1FTlQxNzA1BgNVBAMMLkF1dG9yaXTDqSBkZSBDZXJ0aWZpY2F0aW9uIEZyYW5jZSBBdHRlc3RhdGlvbnMxCjAIBgNVBAUTATEwHhcNMjUwMTI5MDAwMDAwWhcNMzAwMTI5MDAwMDAwWjCBxTELMAkGA1UEBhMCRlIxMDAuBgNVBAoMJ0FnZW5jZSBOYXRpb25hbGUgZGVzIFRpdHJlcyBTw6ljdXJpc8OpczEXMBUGA1UECwwOMDAwMiAxMzAwMDMyNjIxJjAkBgNVBAsMHVBPVVIgUVVBTElGSUNBVElPTiBVTklRVUVNRU5UMTcwNQYDVQQDDC5BdXRvcml0w6kgZGUgQ2VydGlmaWNhdGlvbiBGcmFuY2UgQXR0ZXN0YXRpb25zMQowCAYDVQQFEwExMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEoCYCM9LYS8zUk8I1xL2B2G9voa4yFskoqohrsEQkpNEeKb59J3VDHausTqFWCOfwEGUzi6yocLIbE+gfz59pnaOBxjCBwzAOBgNVHQ8BAf8EBAMCAQYwMAYDVR0SBCkwJ4ElZnJhbmNlLWF0dGVzdGF0aW9uc0BpbnRlcmlldXIuZ291di5mcjASBgNVHRMBAf8ECDAGAQH/AgEAMEwGA1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9jcmwucXVhbGlmLmFudHMuZ291di5mci9hY19mcmFuY2VfYXR0ZXN0YXRpb25zXzEuY3JsMB0GA1UdDgQWBBR3bIy6PB3fPAlYHOvqk7nftps4sDAKBggqhkjOPQQDAgNIADBFAiBrI2HGG1SZNRfEoaIwk3bjAjLBcE9tcKPi1gu0oah58AIhAL+KWRF8FwT4JBblyZdmuoVVXJ36LMmAUcs5YwJpMiQW" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + }, + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_PID_solution_fr_3" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDHTCCAsSgAwIBAgISESEhmoph1P1OOjDCLJAgGdBbMAoGCCqGSM49BAMCMIGfMQswCQYDVQQGEwJGUjEwMC4GA1UECgwnQWdlbmNlIE5hdGlvbmFsZSBkZXMgVGl0cmVzIFPDqWN1cmlzw6lzMRcwFQYDVQQLDA4wMDAyIDEzMDAwMzI2MjE5MDcGA1UEAwwwQXV0b3JpdMOpIGRlIENlcnRpZmljYXRpb24gRnJhbmNlIElkZW50aXTDqSBJQUNBMQowCAYDVQQFEwExMB4XDTI1MTAxNzAwMDAwMFoXDTM0MTAxNzAwMDAwMFowgZ8xCzAJBgNVBAYTAkZSMTAwLgYDVQQKDCdBZ2VuY2UgTmF0aW9uYWxlIGRlcyBUaXRyZXMgU8OpY3VyaXPDqXMxFzAVBgNVBAsMDjAwMDIgMTMwMDAzMjYyMTkwNwYDVQQDDDBBdXRvcml0w6kgZGUgQ2VydGlmaWNhdGlvbiBGcmFuY2UgSWRlbnRpdMOpIElBQ0ExCjAIBgNVBAUTATEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQqfRW/7OTJS4K0IPMa/c8UicIUq62jTccQtGnHAYk6UnvXyRO3PC4/2pdq5QjhwIKwJVqCFOr4fbGboMKLX+L/o4HdMIHaMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMCwGA1UdEgQlMCOBIWZyYW5jZS1pZGVudGl0ZUBpbnRlcmlldXIuZ291di5mcjBGBgNVHR8EPzA9MDugOaA3hjVodHRwOi8vY3JsLmFudHMuZ291di5mci9hY19mcmFuY2VfaWRlbnRpdGVfaWFjYV8xLmNybDAdBgNVHQ4EFgQUAQ1+Rjq9mU0kAyKKyTwFdgjmwA4wHwYDVR0jBBgwFoAUAQ1+Rjq9mU0kAyKKyTwFdgjmwA4wCgYIKoZIzj0EAwIDRwAwRAIgSNKCT8z4zaZLfdOd/rHevKYDbvjqylK723wjd4g4s0ECIDnoWVWyJHwlO31z3QmK7QapM00sOCJnsTIvEGi1Fz/I" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Digitaliseringsdirektoratet - Bevisporten" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-NOFOR.991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "5788", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.no" + }, + { + "lang": "en", + "uriValue": "tel:+4734869323" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.no" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_PID_solution_no" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDBTCCAqygAwIBAgIJALyA/nuVMsUpMAoGCCqGSM49BAMEMIGCMR4wHAYDVQRhExVOVFJOTy1OT0ZPUi45OTE4MjU4MjcxLTArBgNVBAMTJGVpZGFzMnNhbmRrYXNzZSBFQUEgUHJvdmlkZXIgQ0EgdGVzdDEkMCIGA1UEChMbRElHSVRBTElTRVJJTkdTRElSRUtUT1JBVEVUMQswCQYDVQQGEwJOTzAeFw0yNTEwMTAwODE2MzZaFw0yNjEwMDgxMjQ3MzZaMGExCzAJBgNVBAYTAk5PMTIwMAYDVQQDDClEaWdpdGFsaXNlcmluZ3NkaXJla3RvcmF0ZXQgLSBCZXZpc3BvcnRlbjEeMBwGA1UEYQwVTlRSTk8tTk9GT1IuOTkxODI1ODI3MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEggybfUUfbzJltJnTd3NjkH/OApRXdjznhsiDEShxa14362U8s1d/z8fsFMNxiO+z/ZSkHsUurkh2EiNQMcG0T6OCASkwggElMB8GA1UdIwQYMBaAFG2uFOu+dBM1aEzXwQ1nMTFpj7JfMB0GA1UdDgQWBBRTpQH9HAw203fM8Z6Nnc6Aj5RsVzAMBgNVHRMBAf8EAjAAMFwGA1UdHwRVMFMwUaBPoE2GS2h0dHBzOi8vY2EudGVzdC5laWRhczJzYW5ka2Fzc2UubmV0L3YxL2NlcnRzL2ludGVybWVkaWF0ZXMvZWFhX3Byb3ZpZGVyLmNybDBnBggrBgEFBQcBAQRbMFkwVwYIKwYBBQUHMAKGS2h0dHBzOi8vY2EudGVzdC5laWRhczJzYW5ka2Fzc2UubmV0L3YxL2NlcnRzL2ludGVybWVkaWF0ZXMvZWFhX3Byb3ZpZGVyLmNlcjAOBgNVHQ8BAf8EBAMCBaAwCgYIKoZIzj0EAwQDRwAwRAIgco5xnaAZPzLFF0aC7FbF3bEmbHsXId42CRiZIJdqyK0CIG9cjXM31kTF3kmHgN8NligxMbxEmT2HjkAYkKRKUUZR" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Digitaliseringsdirektoratet - PID-utsteder" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-NOFOR.991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "3478", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.no" + }, + { + "lang": "en", + "uriValue": "tel:+47348346754" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.no" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_PID_solution_no_2" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDMzCCAtmgAwIBAgIIGkwIqxyvEDswCgYIKoZIzj0EAwQwZzEYMBYGA1UEYRMPTlRSTk8tOTkxODI1ODI3MQswCQYDVQQGEwJubzEPMA0GA1UECxMGRGlnZGlyMS0wKwYDVQQDEyRlaWRhczJzYW5ka2Fzc2UgUElEIFByb3ZpZGVyIENBIHRlc3QwHhcNMjUxMDE1MTExMzA3WhcNMjYxMDE1MTExMzA3WjBiMQswCQYDVQQGEwJOTzEzMDEGA1UEAwwqRGlnaXRhbGlzZXJpbmdzZGlyZWt0b3JhdGV0IC0gUElELXV0c3RlZGVyMR4wHAYDVQRhDBVOVFJOTy1OT0ZPUi45OTE4MjU4MjcwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATLIEmdVcdTVfQ/6YpsPvS4taSRiebXwcjHWGEWpZLfrKb3yvowmUMe2SaDZD8HCOXjvSXfbIQsgFKeMU88IkNaDOfyMHbXYf3cJZCFJYo799hQL6j2tMogjUMkyoP+dnCjggFVMIIBUTAfBgNVHSMEGDAWgBRX7XviJqjDMVi/g0bAr0FvQshSDDAdBgNVHQ4EFgQUUCIS5a/pLXMjHV+a4AV8NkiRHZMwDAYDVR0TAQH/BAIwADBcBgNVHR8EVTBTMFGgT6BNhktodHRwczovL2NhLnRlc3QuZWlkYXMyc2FuZGthc3NlLm5ldC92MS9jZXJ0cy9pbnRlcm1lZGlhdGVzL3BpZF9wcm92aWRlci5jcmwwZwYIKwYBBQUHAQEEWzBZMFcGCCsGAQUFBzAChktodHRwczovL2NhLnRlc3QuZWlkYXMyc2FuZGthc3NlLm5ldC92MS9jZXJ0cy9pbnRlcm1lZGlhdGVzL3BpZF9wcm92aWRlci5jZXIwDgYDVR0PAQH/BAQDAgWgMCoGCCsGAQUFBwEDAQH/BBswGQYGBACORgEGDA9pZC1ldHNpLXFjdC1waWQwCgYIKoZIzj0EAwQDSAAwRQIgPNu17SJ+E628cVBT1J1CCZQEI85MIG1hqm1ynwyQN84CIQC67g+mvEDLF9C5gcwN8Q38IEJu3bw0EhCvBbUqPORQPA==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Digi- ja väestötietovirasto" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATFI-8567" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "5685", + "Country": "FI" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.fi" + }, + { + "lang": "en", + "uriValue": "tel:+358348346754" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.fi" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/FI" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_PID_solution_fi" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDDTCCApKgAwIBAgIUaqDAxDTFQMkDVdM0LpPFNCskEV4wCgYIKoZIzj0EAwMwgagxODA2BgNVBAMML0RWViBEaWdpLUlEIE1vY2sgQXR0cmlidXRlIFNlYWxpbmcgQ2VydGlmaWNhdGVzMSYwJAYDVQQKDB1EaWdpLSBqYSB2w6Rlc3TDtnRpZXRvdmlyYXN0bzERMA8GA1UEBwwISGVsc2lua2kxCzAJBgNVBAYTAkZJMRAwDgYDVQQIDAdGaW5sYW5kMRIwEAYDVQQFEwkwMjQ1NDM3LTIwHhcNMjQwMTE1MDkyNTE5WhcNMzMwMTEyMDkyNTE5WjCBqDE4MDYGA1UEAwwvRFZWIERpZ2ktSUQgTW9jayBBdHRyaWJ1dGUgU2VhbGluZyBDZXJ0aWZpY2F0ZXMxJjAkBgNVBAoMHURpZ2ktIGphIHbDpGVzdMO2dGlldG92aXJhc3RvMREwDwYDVQQHDAhIZWxzaW5raTELMAkGA1UEBhMCRkkxEDAOBgNVBAgMB0ZpbmxhbmQxEjAQBgNVBAUTCTAyNDU0MzctMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABGcz86+Pt3o1TZ5BYKXtOrFhqi6fDVq7+32J8DaeiSibJES5c9mAPIP/eNB8b+Wm+7RU9blUZ3xlxsmVTGScEOwwSVczmiwBHtk4+7KNltd6CrAAFgSdyDKCEe+w+AKwLqN7MHkwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwGQYDVR0SBBIwEIYOaHR0cHM6Ly9kdnYuZmkwGQYDVR0RBBIwEIYOaHR0cHM6Ly9kdnYuZmkwHQYDVR0OBBYEFJNVLFsDRkyYNcoRYUEBvtvpEOv7MAoGCCqGSM49BAMDA2kAMGYCMQCwfwzQ2A07a3RiA3BUs2BhdNNuhiZcj5HZN7H8fEEiSvkHay67c2XvuyRlZ+zhE18CMQD6OMM6GM+7oKSBtHEbXuiskiWhl9nq7FPQDwPFoaVGxu/SQ3itFL4k2nNsJrEBcfg=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "eidas2sandkasse PID Provider CA test" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "9678", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.no" + }, + { + "lang": "en", + "uriValue": "tel:+47348346754" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.no" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_PID_solution_no_3" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICvTCCAmSgAwIBAgIJAJ7Fdm0r3xiMMAoGCCqGSM49BAMDMGMxGDAWBgNVBGETD05UUk5PLTk5MTgyNTgyNzELMAkGA1UEBhMCbm8xDzANBgNVBAsTBkRpZ2RpcjEpMCcGA1UEAxMgZWlkYXMyc2FuZGthc3NlLm5ldCByb290IENBIHRlc3QwHhcNMjUwNzE0MDk1MDE5WhcNMjkxMjE2MDk1MDE5WjBnMRgwFgYDVQRhEw9OVFJOTy05OTE4MjU4MjcxCzAJBgNVBAYTAm5vMQ8wDQYDVQQLEwZEaWdkaXIxLTArBgNVBAMTJGVpZGFzMnNhbmRrYXNzZSBQSUQgUHJvdmlkZXIgQ0EgdGVzdDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMyVKdaQbLy6E4y7A2Crz/7qBv2x9vebD+7B3N0o2rpxXsDzOQYkBBaBh8uD2LxmEI3E3a6vISekCY0NK/nhUR2jgfwwgfkwUQYIKwYBBQUHAQEERTBDMEEGCCsGAQUFBzAChjVodHRwczovL2NhLnRlc3QuZWlkYXMyc2FuZGthc3NlLm5ldC92MS9jZXJ0cy9yb290LmNlcjAdBgNVHQ4EFgQUV+174iaowzFYv4NGwK9Bb0LIUgwwDgYDVR0PAQH/BAQDAgEGMAwGA1UdEwQFMAMBAf8wRgYDVR0fBD8wPTA7oDmgN4Y1aHR0cHM6Ly9jYS50ZXN0LmVpZGFzMnNhbmRrYXNzZS5uZXQvdjEvY2VydHMvcm9vdC5jcmwwHwYDVR0jBBgwFoAUCi/G/x9Z1uJAVlFqD3onNXclrPEwCgYIKoZIzj0EAwMDRwAwRAIgLvJLEoUbacsoa2calE0f/XVOAnHDWVYDizHJqJAwS3kCIDz8miu6b8cD09rfGSD727joqPunkIGRQqi72HTVabcA" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "eidas2sandkasse Pub EAA Provider CA test" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "5784", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.no" + }, + { + "lang": "en", + "uriValue": "tel:+4734869323" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.no" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_PID_solution_no_4" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICwjCCAmigAwIBAgIJAPm2yYm712+4MAoGCCqGSM49BAMDMGMxGDAWBgNVBGETD05UUk5PLTk5MTgyNTgyNzELMAkGA1UEBhMCbm8xDzANBgNVBAsTBkRpZ2RpcjEpMCcGA1UEAxMgZWlkYXMyc2FuZGthc3NlLm5ldCByb290IENBIHRlc3QwHhcNMjUwNzE0MDk1MDUxWhcNMjkxMjE2MDk1MDUxWjBrMRgwFgYDVQRhEw9OVFJOTy05OTE4MjU4MjcxCzAJBgNVBAYTAm5vMQ8wDQYDVQQLEwZEaWdkaXIxMTAvBgNVBAMTKGVpZGFzMnNhbmRrYXNzZSBQdWIgRUFBIFByb3ZpZGVyIENBIHRlc3QwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS+7CQFU3oWwu9dxauSvk5Xc7AeDhDtLb/x8WcUWFvlG4ekHKlqvW9gxe+W4KJrfn95UZ/0fOfm+znsha/zpiMKo4H8MIH5MFEGCCsGAQUFBwEBBEUwQzBBBggrBgEFBQcwAoY1aHR0cHM6Ly9jYS50ZXN0LmVpZGFzMnNhbmRrYXNzZS5uZXQvdjEvY2VydHMvcm9vdC5jZXIwHQYDVR0OBBYEFD/oYNwZ6+S0FLt9IQvCHPFK6ktiMA4GA1UdDwEB/wQEAwIBBjAMBgNVHRMEBTADAQH/MEYGA1UdHwQ/MD0wO6A5oDeGNWh0dHBzOi8vY2EudGVzdC5laWRhczJzYW5ka2Fzc2UubmV0L3YxL2NlcnRzL3Jvb3QuY3JsMB8GA1UdIwQYMBaAFAovxv8fWdbiQFZRag96JzV3JazxMAoGCCqGSM49BAMDA0gAMEUCIHcgPyDKaizjJPpyztDqUwVqDabzOBVSQwgFIAFT+aV+AiEA8sFi8APxqLmwmCjd5EOd2WhGXSWRksIcCW+aS8kpPmU=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "AMA - Agência para a Modernização Administrativa" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATPT-98765" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "2345", + "Country": "PT" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.pt" + }, + { + "lang": "en", + "uriValue": "tel:+35134567" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.pt" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/PT" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_pid_solution_pt" + } + ], + "ServiceDigitalIdentity": { + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "A-SIT" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATAT-45678" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "2345", + "Country": "AT" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.at" + }, + { + "lang": "en", + "uriValue": "tel:+4378901" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.at" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/AT" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_pid_solution_at_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICGzCCAcCgAwIBAgIUb9GJdqQMdwXaoO61uxoBlg+jhbYwCgYIKoZIzj0EAwIwLDELMAkGA1UEBhMCQVQxDjAMBgNVBAoMBUEtU0lUMQ0wCwYDVQQDDARJQUNBMB4XDTI1MDQwNzA5NDQ1N1oXDTI2MDQwNzA5NDQ1N1owLDELMAkGA1UEBhMCQVQxDjAMBgNVBAoMBUEtU0lUMQ0wCwYDVQQDDARJQUNBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElIXOzb+iF+zGutygdIVOBnC4R6OvhYo5TGWhrH0idmqs56IVwJWYzQYzK4CbYePcxpMQY3lKBa5O0MAZe+EogKOBvzCBvDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAiBgNVHRIEGzAZhhdodHRwczovL3dhbGxldC5hLXNpdC5hdDAyBgNVHR8EKzApMCegJaAjhiFodHRwczovL3dhbGxldC5hLXNpdC5hdC9jcmwvMS5jcmwwHwYDVR0jBBgwFoAUDQF5K46YVgzLpfV5stoutBezK6QwHQYDVR0OBBYEFA0BeSuOmFYMy6X1ebLaLrQXsyukMAoGCCqGSM49BAMCA0kAMEYCIQCz0i9GA24ZOf3Wk+w8+09J6ARAHKLuBuepszBxVZdaZAIhAJlgzKBhHw8+Bwr+wLGQVjMC5e9BWWaUga8ZP9dRYhHJ" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "IDAKTO IACA 4" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATFR-567890" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "2345", + "Country": "FR" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.fr" + }, + { + "lang": "en", + "uriValue": "tel:+3345678" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.fr" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/FR" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_pid_solution_fr_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIB2TCCAX+gAwIBAgIJAI5LEB+QbO+3MAoGCCqGSM49BAMCMCUxCzAJBgNVBAYTAkZSMRYwFAYDVQQDDA1JREFLVE8gSUFDQSA0MB4XDTI0MDkyNjEyMzQ1M1oXDTI5MDkyNTEyMzQ1M1owJTELMAkGA1UEBhMCRlIxFjAUBgNVBAMMDUlEQUtUTyBJQUNBIDQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARMophaPOvIcnsKuxs3iGxJA3kyQx3pHeC0LWj8RNPLtYWAcPJq8bB5PSyOkGtB6XcGUTJukaBxU//5cAe2I18po4GXMIGUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS2EQayXDKCQSR99d/ve3ZXwxWPpzAaBgNVHRIEEzARgQ9pYWNhQGlkYWt0by5jb20wMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5jaG9wcGVyLmlkbGFiLmxpdmU6NTU1NTAKBggqhkjOPQQDAgNIADBFAiAX1wM1La0uufb2yA4jZ+11FfF6hcx3ER8/kcC52teviQIhALNwfW4Zusu4QD8QFxRKrLyi8UVWpDXI5G7rHRnIbNPf" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "ISO Root CA" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATAT-0987" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "2345", + "Country": "AT" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain2.at" + }, + { + "lang": "en", + "uriValue": "tel:+3320390" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.at" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/AT" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_pid_solution_at_2" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICbDCCAhKgAwIBAgIUH23VY4YX6sFgbdidaIr2o7cR154wCgYIKoZIzj0EAwIwIzELMAkGA1UEBhMCQVQxFDASBgNVBAMMC0lTTyBSb290IENBMB4XDTI1MDUyODExNTMxMloXDTM1MDUyNjExNTMxMlowIzELMAkGA1UEBhMCQVQxFDASBgNVBAMMC0lTTyBSb290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEisG5+9ei6IRPnTkc2HuiY5kDWM+SUEeTkDXBs7bz/Xc1gwa0WbfEwJA2GuasCl4h0Zzv2fuDK+ER2+Gb7IsPWKOCASIwggEeMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTeJAquS8H45Kv/lng41lul7kTOCDAfBgNVHSMEGDAWgBTeJAquS8H45Kv/lng41lul7kTOCDCBiwYDVR0fBIGDMIGAMH6gfKB6hnhodHRwczovL3ZhdWx0LmxpZS1pbnRlcm5hbC5wcm9kdWN0aW9uLmNsdXN0ZXJzLnlvdW5pcXguY29tL3YxL21hbmFnZWQvcGtpL21pYS1saWUtaW50ZXJuYWwvbWlhLWxpZS1pbnRlcm5hbC1pc28tcm9vdC9jcmwwKgYDVR0SBCMwIYEfdGVhbS5xdWFudHVtcXVva2thc0B5b3VuaXF4LmNvbTAKBggqhkjOPQQDAgNIADBFAiA9ehNPI3Ck4bfcma27BbKClYLOmjIbu0ytFf6etfp5dwIhAIZT1olmq8bVm7iDRjtFAWUUpNjKQMPAXXY83EbqiqQV" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Bundesdruckerei GmbH" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATDE-12345" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "2345", + "Country": "DE" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.de" + }, + { + "lang": "en", + "uriValue": "tel:+49320390" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.de" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/DE" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_pid_solution_de_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICNTCCAdygAwIBAgIUBEfh5TdWaKkeiOkVBHKBHe7VHOUwCgYIKoZIzj0EAwIwZzELMAkGA1UEBhMCREUxDzANBgNVBAcMBkJlcmxpbjEdMBsGA1UECgwUQnVuZGVzZHJ1Y2tlcmVpIEdtYkgxETAPBgNVBAsMCFQgQ1MgSURFMRUwEwYDVQQDDAxQSURQIERlbW8gQ0EwHhcNMjUxMTE5MTIwNjMwWhcNMzUxMTE3MTIwNjMwWjBnMQswCQYDVQQGEwJERTEPMA0GA1UEBwwGQmVybGluMR0wGwYDVQQKDBRCdW5kZXNkcnVja2VyZWkgR21iSDERMA8GA1UECwwIVCBDUyBJREUxFTATBgNVBAMMDFBJRFAgRGVtbyBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLfzEvVnrtzbM47MtwES2H4cOFtqvaZEQw4DGMiENSbfKih9WxxhDN8HzuukmiFZYhOxy0frbPlCBJkhGZFsKOWjZjBkMB0GA1UdDgQWBBSAX87IYWUcmGz01ZRdX/qAWEO+XzAfBgNVHSMEGDAWgBSAX87IYWUcmGz01ZRdX/qAWEO+XzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAKBggqhkjOPQQDAgNHADBEAiBae8hSEdl3gqo8gmbvl9IV9rTrG5iw/6kk6h8w0upuVwIgM29abFnlKUY07mil1xc43zoMqql4YuWv29VHA9ZiT4Y=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Microsec Ltd." + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATHU-23584497" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "23451", + "Country": "HU" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.hu" + }, + { + "lang": "en", + "uriValue": "tel:+3698709" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.hu" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/HU" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_pid_solution_hu_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDQzCCAuigAwIBAgIMBcKMJXgy2272WHQKMAoGCCqGSM49BAMCMHYxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxIzAhBgNVBAMMGlRlc3QgZS1Temlnbm8gUm9vdCBDQSAyMDE3MB4XDTE3MDkyMjIwMDAwMFoXDTQyMDkyMjA2MDAwMFowcTELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRYwFAYDVQQKDA1NaWNyb3NlYyBMdGQuMRcwFQYDVQRhDA5WQVRIVS0yMzU4NDQ5NzEeMBwGA1UEAwwVVGVzdCBlLVN6aWdubyBDQSAyMDE3MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElKYzOPtAdd2ohSfwEgX2A+Zr2jXWrEqAwJYRs9aBjxT67VwuD10R+TEY0aRwzbrAAPfR2hsOr9DcvZlh4AXRraOCAV8wggFbMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vdGVzenQuZS1zemlnbm8uaHUvcWNwczAdBgNVHQ4EFgQUeptoh454hhbzt/k2HvgamLNkHIkwHwYDVR0jBBgwFoAUklDZBPHkz7JSHyQKgYTiOO2dO44wOQYDVR0fBDIwMDAuoCygKoYoaHR0cDovL3Rlc3p0LmUtc3ppZ25vLmh1L3Ryb290Y2EyMDE3LmNybDB9BggrBgEFBQcBAQRxMG8wNwYIKwYBBQUHMAGGK2h0dHA6Ly90ZXN6dC5lLXN6aWduby5odS90ZXN0cm9vdGNhMjAxN29jc3AwNAYIKwYBBQUHMAKGKGh0dHA6Ly90ZXN6dC5lLXN6aWduby5odS90cm9vdGNhMjAxNy5jcnQwCgYIKoZIzj0EAwIDSQAwRgIhAL+F7BHEDUvV/weTnf4TwzwDIssl0hMF/0oKo0c9CaXXAiEAvNpfSAJjlU9kCqsRVUYVQqVffJCuBPIKdFvfcejwfbY=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "TEST Authority" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATEE-12345" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "23451", + "Country": "EE" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.ee" + }, + { + "lang": "en", + "uriValue": "tel:+37298709" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.ee" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/EE" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_pid_solution_ee" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICiTCCAjCgAwIBAgIUD89WCelKX+PFzZTKvrIsMgoIjZcwCgYIKoZIzj0EAwIwUjELMAkGA1UEBhMCRUUxDjAMBgNVBAgMBUhhcmp1MRcwFQYDVQQKDA5URVNUIEF1dGhvcml0eTEaMBgGA1UEAwwRVEVTVCBJQUNBIFJvb3QgQ0EwHhcNMjUwMjE5MTExNDI2WhcNNDUwMjE0MTExNDI2WjBSMQswCQYDVQQGEwJFRTEOMAwGA1UECAwFSGFyanUxFzAVBgNVBAoMDlRFU1QgQXV0aG9yaXR5MRowGAYDVQQDDBFURVNUIElBQ0EgUm9vdCBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOJyw8+GgiTyqkzhvwA5nNMwsjLA24/2wjYrXJMb23fCAWeskZu014znoXZHJZK+cxlnvLtLscYCiF7REr6NWcqjgeMwgeAwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHAddh/lzBAlZm1hAO/QgQmhV9WBMCMGA1UdEgQcMBqBGGNvbnRhY3RAaWFjYS5leGFtcGxlLmNvbTB2BgNVHR8EbzBtMGugaaBnhmVodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3Blbi1laWQvZXVkaS1xZWFhLWlzc3Vlci1wb2MvcmVmcy9oZWFkcy9kZXZlbG9wL2xvY2FsL2NybC9pYWNhLmNybDAKBggqhkjOPQQDAgNHADBEAiBt84QP49zoXBFItKhxIPkg+7qXbf6eIMY0xkc1M7RYlQIgWOSUJbP8KEreKUQ5Nwgae13YifG3jpJfU+nVWAe+1Ik=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "GRNET" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATEL-77432" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "53554", + "Country": "EL" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test2@domain.el" + }, + { + "lang": "en", + "uriValue": "tel:+30293239487" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.el" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/EL" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_pid_solution_el" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICkTCCAjigAwIBAgIUBHi4ixVY+v67hn64ELqWc/cuIoQwCgYIKoZIzj0EAwIwPTEeMBwGA1UEAwwVUElEIElzc3VlciBDQSAtIEdSIDAxMQ4wDAYDVQQKDAVHUk5FVDELMAkGA1UEBhMCR1IwHhcNMjUxMTAzMTMwMzQ1WhcNMjYxMTAzMTMwMzQ1WjA9MR4wHAYDVQQDDBVQSUQgSXNzdWVyIENBIC0gR1IgMDExDjAMBgNVBAoMBUdSTkVUMQswCQYDVQQGEwJHUjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGV76duOyXnqudRE1nzJHu4TF/hQLSzrUNNj/g14e1eno+mdF/2BUsTKMMoVi6Nvahco45gI0aC/sXBK+zfhysmjggEUMIIBEDASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQ9fVq9ZifBrdIV1gL89UMxFC+HyzBiBgNVHSMEWzBZoUGkPzA9MR4wHAYDVQQDDBVQSUQgSXNzdWVyIENBIC0gR1IgMDExDjAMBgNVBAoMBUdSTkVUMQswCQYDVQQGEwJHUoIUBHi4ixVY+v67hn64ELqWc/cuIoQwFgYDVR0lAQH/BAwwCgYIK4ECAgAAAQcwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovLzgzLjIxMi43Mi4xMTQ6ODA4Mi9jcmwucGVtMA4GA1UdDwEB/wQEAwIBBjAbBgNVHRIEFDAShhBodHRwczovL2dybmV0LmdyMAoGCCqGSM49BAMCA0cAMEQCICAFSFanRww3RVPLqp4IC+/1JxXF9q3qE22t0R0pSKxUAiAJLUpXIknyy2qAwukAZujeuZne71PJ1Yh9xYjUdQZuhQ==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "PID Provider1" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "PAAP Test Name1" + }, + { + "lang": "en", + "value": "VATPL-5170359458" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Test", + "Locality": "Locality", + "StateOrProvince": "", + "PostalCode": "", + "Country": "PL" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.se" + }, + { + "lang": "en", + "uriValue": "tel:+9988" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/PIDProvider/PL" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "Test Service 1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDUTCCAjmgAwIBAgIQNx1PCl0yvLFIAPW3ueQiwzANBgkqhkiG9w0BAQsFADAvMRYwFAYDVQQKDA1QSUQgUHJvdmlkZXIxMRUwEwYDVQQDDAxOYW1lVGVzdENlcnQwHhcNMjUwOTI1MTQxNzUwWhcNMjYwOTI1MTQyNzUwWjAvMRYwFAYDVQQKDA1QSUQgUHJvdmlkZXIxMRUwEwYDVQQDDAxOYW1lVGVzdENlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCX9gPZbuZHoJQbrxXOtIWYiQw5a1DgSKe4h3MNXiE7728oHYHIhV0ZoU3SX70XJpWrNsudo7bVMLoHN2UANkjX6SO5LR1OL7oAo3NFD9974GlQxLg5QmrJacbgg1NtFLTHq5c8SLzG3fHc9DJ94vB/lGxP7rBBOzQLp3j9h1muLYl+ZGroZjZOj7d7uK0hK0d4UWkDWb2n2K6kC1PN7zwTLxchEF1oppPFjogF/7Gq7OWFiQy3LS6h+marlY6FxFmU9tq7Uu2hxJF2tFMPVZsMUHEluUZFW25VH30Y3LtiSvlRQY1wiakTuE2pRF3VvXi3Kgx2O15VdvbCadZOK/8hAgMBAAGjaTBnMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwFwYDVR0RBBAwDoIMTmFtZVRlc3RDZXJ0MB0GA1UdDgQWBBSKjzSwKcYg/s+/jOq+rm0NhUDC1DANBgkqhkiG9w0BAQsFAAOCAQEARyAF6yKL2xVPRVIA/o+YBdEmTRpnFAIPIvjC6hCfKpTz/hpMzHuuuTxU8oMg6mHyeL6fOGhLodXQMqkoJZMEpOwftnpHmIXR5+BHZaH7/Ga/6zIa53suiqydmuEo+FxDrBK6s42v/O2mB66hptTJ3cg3aqXEXeV5w5uAbTLlrCpaggXFBjZuR3E8xj8MGax4BUL8mBW+24XaRA/APSPnLwVlyJ95kiJC9R/9MH1t7wRxfftI7wuqQLi4hb3Nl/Zo1aL66txelX/TLkdq4f+1Ql1Pfzz60nIqk3oICCSg89acEx6o1tAfguBid50cHnLxaTBe6g8KFwXv+5PUTZ1Fug==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance" + } + }, + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "Test Service 2" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDNjCCAh6gAwIBAgIQXRnxamTIT4JGgTnOaCBRQjANBgkqhkiG9w0BAQsFADAuMRgwFgYDVQQKDA9QQUFQIFRlc3QgTmFtZTExEjAQBgNVBAMMCVRlc3RDZXJ0MTAeFw0yNTA5MTgxMDM2MDFaFw0zMDA5MTgxMDQ2MDFaMC4xGDAWBgNVBAoMD1BBQVAgVGVzdCBOYW1lMTESMBAGA1UEAwwJVGVzdENlcnQxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlLCnGRUwbkiOcFnI9f7CFfFzxOfsgNkI6x/S7BXrTesp+VgP/PPO+yILV42kNBDFO+YUcd5T9Offv+s6YfU1YfTCh1D4UXio9s9b8iYFiRCkB7s5bqHAYb9uc2zDpt/t+heuRt7TjGGJqdykpRRjcNP56TMtqfmhtQhvG1LYJzj1HulsmjGvdJVSkreeOxkzy4GCB/6UENqnWZhPdGvqY5tzZ2GXUwpN7mDFP1zA5unLgVQIcHmXtWYAYllnNu7IV9mBq/g1XvngzyWefMmKLqf791AgXY0dd9G6JlOOvkB5Y4jMHAT6DzNyoYiQrigTQxI2lWyuqYxTqhhY201wqQIDAQABo1AwTjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBTlGtpzx3x9ErCwLv73FslxFD6IPTANBgkqhkiG9w0BAQsFAAOCAQEAUQZ5Qeb8mcZpMub4I5NF5bNox3yVPwPThzf6VwBVvaaHsm2xZoWXSpKBlyiCmFoQINJ5PHglgZOIVdcCU3SKfeHhffLhxIW+qTC6DZ05DZyuL4+FFVMH8/SKOrlLbT3x1SM5u8iEWMFPFMfkGDW8Xq6vWpobuDg5eVyYjvj29wCZuyygfaj1cRr21/aKefOksw8rc97yTzzHNPcHjjBqFZv8Pq4TAMExgV0a6h8tnnk8AK2+MSy0SOHbrCj7khm2Q5+gOaPXfwzVHCoJTuEfRDSF96+IlX/2nr+eVwvpfcMtr+01LnRh/actoLGOybsM/1H9jMGxF4VqsQwBiMwfxQ==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/PID/Issuance", + "ServiceSupplyPoints": [ + { + "uriValue": "https://supplypoints", + "ServiceType": "type:type" + } + ], + "ServiceDefinitionURI": [ + { + "lang": "en", + "uriValue": "information:uri" + } + ] + } + } + ] + } + ] + } + """.trimIndent() + val walletProvidersFixed = """ + { + "ListAndSchemeInformation": { + "LoTEVersionIdentifier": 1, + "LoTESequenceNumber": 2, + "LoTEType": "http://uri.etsi.org/19602/LoTEType/EUWalletProvidersList", + "SchemeOperatorName": [ + { + "lang": "en", + "value": "European Commission" + }, + { + "lang": "bg", + "value": "Европейска комисия" + }, + { + "lang": "es", + "value": "Comisión Europea" + }, + { + "lang": "cs", + "value": "Evropská komise" + }, + { + "lang": "da", + "value": "Europa-Kommissionen" + }, + { + "lang": "de", + "value": "Europäische Kommission" + }, + { + "lang": "et", + "value": "Euroopa Komisjon" + }, + { + "lang": "el", + "value": "Ευρωπαϊκή Επιτροπή" + }, + { + "lang": "fr", + "value": "Commission européenne" + }, + { + "lang": "it", + "value": "Commissione europea" + }, + { + "lang": "lv", + "value": "Eiropas Komisija" + }, + { + "lang": "lt", + "value": "Europos Komisija" + }, + { + "lang": "hu", + "value": "Európai Bizottság" + }, + { + "lang": "mt", + "value": "Il-Kummissjoni Ewropea" + }, + { + "lang": "nl", + "value": "Europese Commissie" + }, + { + "lang": "pl", + "value": "Komisja Europejska" + }, + { + "lang": "pt", + "value": "Comissão Europeia" + }, + { + "lang": "ro", + "value": "Comisia Europeană" + }, + { + "lang": "sk", + "value": "Európska komisia" + }, + { + "lang": "sl", + "value": "Evropska komisija" + }, + { + "lang": "fi", + "value": "Euroopan komissio" + }, + { + "lang": "sv", + "value": "Europeiska kommissionen" + }, + { + "lang": "hr", + "value": "Europska komisija" + } + ], + "SchemeOperatorAddress": { + "SchemeOperatorPostalAddress": [ + { + "lang": "fr", + "StreetAddress": "Rue de la Loi 200", + "Locality": "Bruxelles", + "PostalCode": "1049", + "Country": "BE" + }, + { + "lang": "nl", + "StreetAddress": "Wetstraat 200", + "Locality": "Brussel", + "PostalCode": "1049", + "Country": "BE" + }, + { + "lang": "en", + "StreetAddress": "Rue de la Loi/Wetstraat 200", + "Locality": "Brussels", + "PostalCode": "1049", + "Country": "BE" + } + ], + "SchemeOperatorElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:DIGIT-EU-TRUST-NON-PROD@ec.europa.eu" + }, + { + "lang": "en", + "uriValue": "https://digital-strategy.ec.europa.eu/en/policies/eu-trusted-lists" + } + ] + }, + "SchemeName": [ + { + "lang": "en", + "value": "The present list is a list of person identifier providers of EUDI Wallet issued in accordance with CIR 2024/2980" + } + ], + "SchemeInformationURI": [ + { + "lang": "en", + "uriValue": "https://trust.tech.ec.europa.eu/lists/eudiw/wallet-providers-list-scheme-information" + } + ], + "StatusDeterminationApproach": "http://uri.etsi.org/19602/WalletProvidersList/StatusDetn/EU", + "SchemeTypeCommunityRules": [ + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/WalletProvidersList/schemerules/EU" + } + ], + "SchemeTerritory": "EU", + "PolicyOrLegalNotice": [ + { + "LoTEPolicy": { + "lang": "en", + "uriValue": "http://trust.tech.ec.europa.eu/lists/eudiw/legal-notice#EN" + } + } + ], + "ListIssueDateTime": "2026-04-02T11:23:10Z", + "NextUpdate": "2026-10-02T11:23:10Z" + }, + "TrustedEntitiesList": [ + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "PagoPA Wallet Provider Root CA" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATIT-123456789" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Test street", + "Locality": "Test locality", + "StateOrProvince": "Test province", + "PostalCode": "12345", + "Country": "IT" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.it" + }, + { + "lang": "en", + "uriValue": "tel:+39123456789" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.it" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/WalletProvider/IT" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_eudiw_solution_it" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICUDCCAfWgAwIBAgIUONlIPSqyFQVjT6+yy1zAFLS+fOUwCgYIKoZIzj0EAwIwfTELMAkGA1UEBhMCSVQxCzAJBgNVBAgMAlJNMQ0wCwYDVQQHDARSb21lMRYwFAYDVQQKDA1QYWdvUEEgUy5wLkEuMREwDwYDVQQLDAhTZWN1cml0eTEnMCUGA1UEAwweUGFnb1BBIFdhbGxldCBQcm92aWRlciBSb290IENBMB4XDTI1MTEyMTE2MDcxOFoXDTM1MTExOTE2MDcxOFowfTELMAkGA1UEBhMCSVQxCzAJBgNVBAgMAlJNMQ0wCwYDVQQHDARSb21lMRYwFAYDVQQKDA1QYWdvUEEgUy5wLkEuMREwDwYDVQQLDAhTZWN1cml0eTEnMCUGA1UEAwweUGFnb1BBIFdhbGxldCBQcm92aWRlciBSb290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEsOCKDPMrqG3DKLHAEqkutBKCBHlSmuyeQGkLL95EW4oAzqVd+1aVPfXGNKSE6dgGb2wbrcqNz/wLyoTdBh3pkaNTMFEwHQYDVR0OBBYEFFdzfeaqb/ETC5YoB4Od5h4jVD7VMB8GA1UdIwQYMBaAFFdzfeaqb/ETC5YoB4Od5h4jVD7VMA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwIDSQAwRgIhAP8LhOOEB8HPNx0sobIBQgS3Ej1rtzXcx4hggAfyFFTJAiEAmJMJA1tgB/kl2gmH5TKH2R4QaWeHmgAZSFQcdZ7yEFM=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/WalletSolution/Issuance", + "ServiceInformationExtensions": [ + { + "ServiceUniqueIdentifier": "ojeu:eudiw:ref_eudiw_solution_it" + } + ] + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Microsec Ltd." + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATHU-23584497" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Test street", + "Locality": "Test locality", + "StateOrProvince": "Test province", + "PostalCode": "123456", + "Country": "HU" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.hu" + }, + { + "lang": "en", + "uriValue": "tel:+36123456" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.hu" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/WalletProvider/HU" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_wallet_solution_ojeu_hu" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDQzCCAuigAwIBAgIMBcKMJXgy2272WHQKMAoGCCqGSM49BAMCMHYxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxIzAhBgNVBAMMGlRlc3QgZS1Temlnbm8gUm9vdCBDQSAyMDE3MB4XDTE3MDkyMjIwMDAwMFoXDTQyMDkyMjA2MDAwMFowcTELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRYwFAYDVQQKDA1NaWNyb3NlYyBMdGQuMRcwFQYDVQRhDA5WQVRIVS0yMzU4NDQ5NzEeMBwGA1UEAwwVVGVzdCBlLVN6aWdubyBDQSAyMDE3MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElKYzOPtAdd2ohSfwEgX2A+Zr2jXWrEqAwJYRs9aBjxT67VwuD10R+TEY0aRwzbrAAPfR2hsOr9DcvZlh4AXRraOCAV8wggFbMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vdGVzenQuZS1zemlnbm8uaHUvcWNwczAdBgNVHQ4EFgQUeptoh454hhbzt/k2HvgamLNkHIkwHwYDVR0jBBgwFoAUklDZBPHkz7JSHyQKgYTiOO2dO44wOQYDVR0fBDIwMDAuoCygKoYoaHR0cDovL3Rlc3p0LmUtc3ppZ25vLmh1L3Ryb290Y2EyMDE3LmNybDB9BggrBgEFBQcBAQRxMG8wNwYIKwYBBQUHMAGGK2h0dHA6Ly90ZXN6dC5lLXN6aWduby5odS90ZXN0cm9vdGNhMjAxN29jc3AwNAYIKwYBBQUHMAKGKGh0dHA6Ly90ZXN6dC5lLXN6aWduby5odS90cm9vdGNhMjAxNy5jcnQwCgYIKoZIzj0EAwIDSQAwRgIhAL+F7BHEDUvV/weTnf4TwzwDIssl0hMF/0oKo0c9CaXXAiEAvNpfSAJjlU9kCqsRVUYVQqVffJCuBPIKdFvfcejwfbY=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/WalletSolution/Issuance", + "ServiceInformationExtensions": [ + { + "ServiceUniqueIdentifier": "ojeu:eudiw:ref_wallet_solution_hu" + } + ] + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Wallet Notification" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "Liechtenstein National Administration" + }, + { + "lang": "en", + "value": "VATLI-2345678" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Platz 2", + "Locality": "Vaduz", + "StateOrProvince": "Liechtenstein", + "PostalCode": "Fl-001", + "Country": "PL" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:office-wallet@test.li" + }, + { + "lang": "en", + "uriValue": "tel:+4235002211" + }, + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wallet" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wallet/policies" + }, + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wallet/information" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/WalletProvider/PL" + } + ], + "TEInformationExtensions": [ + { + "OtherAssociatedBodies": [ + { + "AssociatedBodyName": [ + { + "lang": "en", + "value": "Wallet Notification Body" + } + ], + "AssociatedBodyTradeName": [ + { + "lang": "en", + "value": "Liechtenstein National Administration Wallet Body" + }, + { + "lang": "en", + "value": "VATLI-3333" + } + ], + "AssociatedBodyAddress": { + "AssociatedBodyPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Platz 2A", + "Locality": "Vaduz", + "StateOrProvince": "Liechtenstein", + "PostalCode": "Fl-001", + "Country": "PL" + } + ], + "AssociatedBodyElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:office-wallet-body@test.li" + }, + { + "lang": "en", + "uriValue": "tel:+42350022112" + }, + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wallet/body" + } + ] + }, + "AssociatedBodyInformationURI": [ + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wallet/body/information" + } + ] + } + ] + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "Wallet Service 1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDsjCCApqgAwIBAgIQa5/PTwD9epxBQHrl6XObezANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQGEwJMSTEOMAwGA1UEBwwFVmFkdXoxDDAKBgNVBAsMA0xMVjEuMCwGA1UECgwlTGllY2h0ZW5zdGVpbiBOYXRpb25hbCBBZG1pbmlzdHJhdGlvbjEPMA0GA1UEAwwGbGx2LmxpMB4XDTI2MDEwNTEzMTkyMFoXDTI3MDEwNTEzMTk1MFowbDELMAkGA1UEBhMCTEkxDjAMBgNVBAcMBVZhZHV6MQwwCgYDVQQLDANMTFYxLjAsBgNVBAoMJUxpZWNodGVuc3RlaW4gTmF0aW9uYWwgQWRtaW5pc3RyYXRpb24xDzANBgNVBAMMBmxsdi5saTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJtDK/L1QEAj7QNtAgA5SNVXXahMtwayCAHtimJEGMRXeiI9KSE+BBfQ8c989Wbw9KqLsIUWGNuleGQCRFWArZmWXXezHn3fJecpeb06t+OZiPaLgq4iBp8EZ0czGFIxNxXOtSSgVcL1FCsDnIW9yzRt/xFPUn/59F6oGky/KPQXg0sW3UOkTW/k795QqIvLaMPFKn1kKkBSGh4TWmp6zQ0c7lEWGLKlCV0l0XHQAwl0bmoebEsA7QBG320i31n4Gr5y0zCbWjxEv3IU6RWZ2QARlybj4lVXyTyiezJ91v2tEhWlE/xK6AV7y9N5IcB5e+sxKDmjCp4gb1idBJYM9W0CAwEAAaNQME4wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAdBgNVHQ4EFgQU0RI/MTHeLnYjg8CQlPsrBXvWZLkwDQYJKoZIhvcNAQELBQADggEBAHlLN3fEK8q9mk5Uy6Y0Bnq7clLKAlajbUcPc2/SAiYsmioNv5k6p6dAiNXng4gaSe1gGQz9o15raYz2EK3nfmw1ooFjXjmZOfiY2EBsBd9X3EJCu2aYBDeOaX3Xqw1s0ZXdfmDnvqEEmVvVr+VubzX8JLS2AM2glyRvBb7w27gBBvptggS54P9Re16yGxiQbqV17k8h/0idYbGH31Y8lUYRyOHkFtlL4pqJmCQ38laej0L73GiUtCg0hdrGcrEf2oziO55pBpsJTAiiCkv/Pz7Ri4o8l3ALQKrByloO2mpwlPmVmxxNi/o79XFGelTIBrWIVYgBbTwfDzvQIIKjY6I=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/WalletSolution/Issuance", + "ServiceSupplyPoints": [ + { + "uriValue": "http://supply.points", + "ServiceType": "http://supply.pointstype" + } + ], + "ServiceDefinitionURI": [ + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wallet/" + } + ], + "ServiceInformationExtensions": [ + { + "ServiceUniqueIdentifier": "REF:1234" + } + ] + } + } + ] + } + ] + } + """.trimIndent() + val wrpacProvidersFixed = """ + { + "ListAndSchemeInformation": { + "LoTEVersionIdentifier": 1, + "LoTESequenceNumber": 2, + "LoTEType": "http://uri.etsi.org/19602/LoTEType/EUWRPACProvidersList", + "SchemeOperatorName": [ + { + "lang": "en", + "value": "European Commission" + }, + { + "lang": "bg", + "value": "Европейска комисия" + }, + { + "lang": "es", + "value": "Comisión Europea" + }, + { + "lang": "cs", + "value": "Evropská komise" + }, + { + "lang": "da", + "value": "Europa-Kommissionen" + }, + { + "lang": "de", + "value": "Europäische Kommission" + }, + { + "lang": "et", + "value": "Euroopa Komisjon" + }, + { + "lang": "el", + "value": "Ευρωπαϊκή Επιτροπή" + }, + { + "lang": "fr", + "value": "Commission européenne" + }, + { + "lang": "it", + "value": "Commissione europea" + }, + { + "lang": "lv", + "value": "Eiropas Komisija" + }, + { + "lang": "lt", + "value": "Europos Komisija" + }, + { + "lang": "hu", + "value": "Európai Bizottság" + }, + { + "lang": "mt", + "value": "Il-Kummissjoni Ewropea" + }, + { + "lang": "nl", + "value": "Europese Commissie" + }, + { + "lang": "pl", + "value": "Komisja Europejska" + }, + { + "lang": "pt", + "value": "Comissão Europeia" + }, + { + "lang": "ro", + "value": "Comisia Europeană" + }, + { + "lang": "sk", + "value": "Európska komisia" + }, + { + "lang": "sl", + "value": "Evropska komisija" + }, + { + "lang": "fi", + "value": "Euroopan komissio" + }, + { + "lang": "sv", + "value": "Europeiska kommissionen" + }, + { + "lang": "hr", + "value": "Europska komisija" + } + ], + "SchemeOperatorAddress": { + "SchemeOperatorPostalAddress": [ + { + "lang": "fr", + "StreetAddress": "Rue de la Loi 200", + "Locality": "Bruxelles", + "PostalCode": "1049", + "Country": "BE" + }, + { + "lang": "nl", + "StreetAddress": "Wetstraat 200", + "Locality": "Brussel", + "PostalCode": "1049", + "Country": "BE" + }, + { + "lang": "en", + "StreetAddress": "Rue de la Loi/Wetstraat 200", + "Locality": "Brussels", + "PostalCode": "1049", + "Country": "BE" + } + ], + "SchemeOperatorElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:DIGIT-EU-TRUST-NON-PROD@ec.europa.eu" + }, + { + "lang": "en", + "uriValue": "https://digital-strategy.ec.europa.eu/en/policies/eu-trusted-lists" + } + ] + }, + "SchemeName": [ + { + "lang": "en", + "value": "The present list is a list of person identifier providers of EUDI Wallet issued in accordance with CIR 2024/2980" + } + ], + "SchemeInformationURI": [ + { + "lang": "en", + "uriValue": "https://trust.tech.ec.europa.eu/lists/eudiw/wrpac-providers-list-scheme-information" + } + ], + "StatusDeterminationApproach": "http://uri.etsi.org/19602/WRPACProvidersList/StatusDetn/EU", + "SchemeTypeCommunityRules": [ + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/WRPACProvidersList/schemerules/EU" + } + ], + "SchemeTerritory": "EU", + "PolicyOrLegalNotice": [ + { + "LoTEPolicy": { + "lang": "en", + "uriValue": "http://trust.tech.ec.europa.eu/lists/eudiw/legal-notice#EN" + } + } + ], + "ListIssueDateTime": "2026-04-02T09:21:34Z", + "NextUpdate": "2026-10-01T09:21:34Z" + }, + "TrustedEntitiesList": [ + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "eidas2sandkasse RP Access CA test" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "1234", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.no" + }, + { + "lang": "en", + "uriValue": "tel:+47987654" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.no" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/WRPACProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_wrpac_solution_no" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICuzCCAmGgAwIBAgIJAKcp7ByPxFNUMAoGCCqGSM49BAMDMGMxGDAWBgNVBGETD05UUk5PLTk5MTgyNTgyNzELMAkGA1UEBhMCbm8xDzANBgNVBAsTBkRpZ2RpcjEpMCcGA1UEAxMgZWlkYXMyc2FuZGthc3NlLm5ldCByb290IENBIHRlc3QwHhcNMjUwNTA5MDc1NjU0WhcNMzAwNDI5MDc1NjU0WjBkMRgwFgYDVQRhEw9OVFJOTy05OTE4MjU4MjcxCzAJBgNVBAYTAm5vMQ8wDQYDVQQLEwZEaWdkaXIxKjAoBgNVBAMTIWVpZGFzMnNhbmRrYXNzZSBSUCBBY2Nlc3MgQ0EgdGVzdDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABE4OQr5vpRMvcYZs46LkpdDgVQ9V+9E/Gx3Io2jqm+g/43/0b2Ns9oSRv1VpY/vYSI/O6JWylRQ+MNk6V3DfQv2jgfwwgfkwUQYIKwYBBQUHAQEERTBDMEEGCCsGAQUFBzAChjVodHRwczovL2NhLnRlc3QuZWlkYXMyc2FuZGthc3NlLm5ldC92MS9jZXJ0cy9yb290LmNlcjAdBgNVHQ4EFgQUUcgCJYAwgpE7JCLUm9xeoainXcwwDgYDVR0PAQH/BAQDAgEGMAwGA1UdEwQFMAMBAf8wRgYDVR0fBD8wPTA7oDmgN4Y1aHR0cHM6Ly9jYS50ZXN0LmVpZGFzMnNhbmRrYXNzZS5uZXQvdjEvY2VydHMvcm9vdC5jcmwwHwYDVR0jBBgwFoAUCi/G/x9Z1uJAVlFqD3onNXclrPEwCgYIKoZIzj0EAwMDSAAwRQIgfuk68h7gRHYXzBuddxFEUGl1eYtQgMCMKcw6D1kVjzgCIQC91xg+yGdocsoPmIGACivfYZAftiQXGEjHdid9RZOX1g==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/WRPAC/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Idakto" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATFR-12345" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "1234", + "Country": "FR" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.fr" + }, + { + "lang": "en", + "uriValue": "tel:+33234567" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.fr" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/WRPACProvider/FR" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_wrpac_solution_fr" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICgjCCAiegAwIBAgIUafRAIleaQOm9jZLiIML9FeOWd9cwCgYIKoZIzj0EAwIwczELMAkGA1UEBhMCRlIxDzANBgNVBAgMBkZSQU5DRTEPMA0GA1UEBwwGQW5nZXJzMQ8wDQYDVQQKDAZJZGFrdG8xDjAMBgNVBAsMBVN0ZWFtMSEwHwYDVQQDDBhyZWFkZXItaXNzdWVyQGlkYWt0by5jb20wHhcNMjUwNzI1MTQ0NzI1WhcNMzAwNzI0MTQ0NzI1WjBzMQswCQYDVQQGEwJGUjEPMA0GA1UECAwGRlJBTkNFMQ8wDQYDVQQHDAZBbmdlcnMxDzANBgNVBAoMBklkYWt0bzEOMAwGA1UECwwFU3RlYW0xITAfBgNVBAMMGHJlYWRlci1pc3N1ZXJAaWRha3RvLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCq6dkUsfqjCByvS+UM/FDOgjO5fbB6aEesAgWmiMrSJQybQnAGSOySr0V+E0puM3eMaLy4DzsGLW0LX6J+vRLOjgZgwgZUwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJ57lkHy09w59xHQDk4y9ubmup5VMCsGA1UdEQQkMCKCIG9wZW5pZDR2cC5kcnVrcXMuYXNnYXJkLmlkZW52LmZyMCMGA1UdEgQcMBqBGHJlYWRlci1pc3N1ZXJAaWRha3RvLmNvbTAKBggqhkjOPQQDAgNJADBGAiEA9hIBNw8GI7E5z/NZI/3CUMZjndoKGg+2o0lh8/6gY30CIQCiUgMnIib46Ypi4IryQOn282zPWrTWQFwIebwASeG9+w==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/WRPAC/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Microsec Ltd." + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATHU-23584497" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "2345", + "Country": "HU" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.hu" + }, + { + "lang": "en", + "uriValue": "tel:+36567890" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.hu" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/WRPACProvider/HU" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_wrpac_solution_hu" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDQzCCAuigAwIBAgIMBcKMJXgy2272WHQKMAoGCCqGSM49BAMCMHYxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxIzAhBgNVBAMMGlRlc3QgZS1Temlnbm8gUm9vdCBDQSAyMDE3MB4XDTE3MDkyMjIwMDAwMFoXDTQyMDkyMjA2MDAwMFowcTELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRYwFAYDVQQKDA1NaWNyb3NlYyBMdGQuMRcwFQYDVQRhDA5WQVRIVS0yMzU4NDQ5NzEeMBwGA1UEAwwVVGVzdCBlLVN6aWdubyBDQSAyMDE3MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElKYzOPtAdd2ohSfwEgX2A+Zr2jXWrEqAwJYRs9aBjxT67VwuD10R+TEY0aRwzbrAAPfR2hsOr9DcvZlh4AXRraOCAV8wggFbMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vdGVzenQuZS1zemlnbm8uaHUvcWNwczAdBgNVHQ4EFgQUeptoh454hhbzt/k2HvgamLNkHIkwHwYDVR0jBBgwFoAUklDZBPHkz7JSHyQKgYTiOO2dO44wOQYDVR0fBDIwMDAuoCygKoYoaHR0cDovL3Rlc3p0LmUtc3ppZ25vLmh1L3Ryb290Y2EyMDE3LmNybDB9BggrBgEFBQcBAQRxMG8wNwYIKwYBBQUHMAGGK2h0dHA6Ly90ZXN6dC5lLXN6aWduby5odS90ZXN0cm9vdGNhMjAxN29jc3AwNAYIKwYBBQUHMAKGKGh0dHA6Ly90ZXN6dC5lLXN6aWduby5odS90cm9vdGNhMjAxNy5jcnQwCgYIKoZIzj0EAwIDSQAwRgIhAL+F7BHEDUvV/weTnf4TwzwDIssl0hMF/0oKo0c9CaXXAiEAvNpfSAJjlU9kCqsRVUYVQqVffJCuBPIKdFvfcejwfbY=" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/WRPAC/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "A-SIT" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATAT-45678" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "2345", + "Country": "AT" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.at" + }, + { + "lang": "en", + "uriValue": "tel:+43789012" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.at" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/WRPACProvider/AT" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_wrpac_solution_at" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICJzCCAc6gAwIBAgIUSvMftn/oM3etHjE7hdIBl6tWMV8wCgYIKoZIzj0EAwIwMzELMAkGA1UEBhMCQVQxDjAMBgNVBAoMBUEtU0lUMRQwEgYDVQQDDAtWYWxlcmEgSUFDQTAeFw0yNTA2MjYwODI0MDJaFw0yNjA2MjYwODI0MDJaMDMxCzAJBgNVBAYTAkFUMQ4wDAYDVQQKDAVBLVNJVDEUMBIGA1UEAwwLVmFsZXJhIElBQ0EwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmm+pmyUxx/x2eD131E8HhvNkhsfYQXzefZlxgLXQPqCOxO+VPOXVOKL0dUy+kHyT5IP/NOAh038coAVOgGPT4o4G/MIG8MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMCIGA1UdEgQbMBmGF2h0dHBzOi8vd2FsbGV0LmEtc2l0LmF0MDIGA1UdHwQrMCkwJ6AloCOGIWh0dHBzOi8vd2FsbGV0LmEtc2l0LmF0L2NybC8xLmNybDAfBgNVHSMEGDAWgBSDGoj0XuXE3qEVTmPvKSvIvR36ijAdBgNVHQ4EFgQUgxqI9F7lxN6hFU5j7ykryL0d+oowCgYIKoZIzj0EAwIDRwAwRAIgS9XcYA4Be5gDIdHmMOgJ3AeS44gT4bgVgsg/D5+WXS8CIAxJgi3nhGrVMj9SszehLorR2rR5FO5RZgITAaOIGSNP" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/WRPAC/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "WRPAC Provider - failing conformance checks" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "WRPAC Provider1" + }, + { + "lang": "en", + "value": "VATLI-2345678" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Platz 2", + "Locality": "Vaduz", + "StateOrProvince": "Liechtenstein", + "PostalCode": "Fl-001", + "Country": "PL" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:office-wrpac@test.li" + }, + { + "lang": "en", + "uriValue": "tel:+423887744" + }, + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wrpac" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wrpac/policies" + }, + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wrpac/information" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/WRPACProvider/PL" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "WRPAC Service 1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDWjCCAkKgAwIBAgIQFNp7JHkUrblEFMsg3Z6PoDANBgkqhkiG9w0BAQsFADAxMRgwFgYDVQQKDA9XUlBBQyBQcm92aWRlcjExFTATBgNVBAMMDE5hbWVUZXN0Q2VydDAeFw0yNTA5MjUxNDMxMzhaFw0yNjA5MjUxNDQxMzhaMDExGDAWBgNVBAoMD1dSUEFDIFByb3ZpZGVyMTEVMBMGA1UEAwwMTmFtZVRlc3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsfg1O1Eq5tt92WJRylnFc75amIjPybG3yyATDg28rF1rBOcoGFXw/Za029VlewkYCGIznE3SyoaFTcO0e14MLW4sjvSAYYIwTfKFBo7X7VwbhI+ItVrb3bgNXUeLiq5eOerfZWthjtjB5p3SjOtOmIoHpRwRvegGrlFKFK7SFGt7iGMIxKEu0FDQOi7eJnPIhaMflE7qHDfgrX8YFrc8dgi8g062nk1JWM+g+eFcj/eCyHs3adWQ/P5yEVn/A5sOeO8W3tbxA98xRkHgZbikYPaYy1tQGWzdCxZ3kehyucBysaAOuoXunWjX/v4Tx0omEkVq5Dh+lt7iH2nyU03R+QIDAQABo24wbDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBwGA1UdEQQVMBOCEU5hbWVUZXN0Q2VydFdSUEFDMB0GA1UdDgQWBBToGtzqikCk196F3aaeq6HPxLfR3TANBgkqhkiG9w0BAQsFAAOCAQEAbqhUoauW+PRFiOO5O1QjF9pl7ncsCTL/13d4vnEmIicVOOHJjKnZ50/jGkVnPe34BaJ+iEVomNkEHg5XTaj005kTQ1Nimo9NCVJudl9v135dCPdSItGY2FRUfdesD0lYYwSEa0RUT57NeKA6ZTQNIlpE5HFywvKiktZ05GAFQuqn5UYMvaf2unEvXf6HO92yQcJ7H5A5zmJv5RBp6wFs2DznOTKdJMhjKOIybumDoXKCLQYqR9zDG042s369/UB/2FXcNfL3mi/VdayH2BwCu/OlyaxWy0pX+hhZuGEBbyrVTdJvsLSItsg7WpjxeU/GyViz227qh9xKCI/wCZmdzw==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/WRPAC/Issuance", + "ServiceSupplyPoints": [ + { + "uriValue": "http://supply.points", + "ServiceType": "http://supply.pointstype" + } + ], + "ServiceDefinitionURI": [ + { + "lang": "en", + "uriValue": "https://www.llv.li/en/wrpac/service/information" + } + ] + } + } + ] + } + ] + } + """.trimIndent() + val mdlProvidersFixed = """ + { + "ListAndSchemeInformation": { + "LoTEVersionIdentifier": 1, + "LoTESequenceNumber": 2, + "LoTEType": "http://trust.ec.europa.eu/lists/mDL/mDLProvidersListType", + "SchemeOperatorName": [ + { + "lang": "en", + "value": "European Commission" + }, + { + "lang": "bg", + "value": "Европейска комисия" + }, + { + "lang": "es", + "value": "Comisión Europea" + }, + { + "lang": "cs", + "value": "Evropská komise" + }, + { + "lang": "da", + "value": "Europa-Kommissionen" + }, + { + "lang": "de", + "value": "Europäische Kommission" + }, + { + "lang": "et", + "value": "Euroopa Komisjon" + }, + { + "lang": "el", + "value": "Ευρωπαϊκή Επιτροπή" + }, + { + "lang": "fr", + "value": "Commission européenne" + }, + { + "lang": "it", + "value": "Commissione europea" + }, + { + "lang": "lv", + "value": "Eiropas Komisija" + }, + { + "lang": "lt", + "value": "Europos Komisija" + }, + { + "lang": "hu", + "value": "Európai Bizottság" + }, + { + "lang": "mt", + "value": "Il-Kummissjoni Ewropea" + }, + { + "lang": "nl", + "value": "Europese Commissie" + }, + { + "lang": "pl", + "value": "Komisja Europejska" + }, + { + "lang": "pt", + "value": "Comissão Europeia" + }, + { + "lang": "ro", + "value": "Comisia Europeană" + }, + { + "lang": "sk", + "value": "Európska komisia" + }, + { + "lang": "sl", + "value": "Evropska komisija" + }, + { + "lang": "fi", + "value": "Euroopan komissio" + }, + { + "lang": "sv", + "value": "Europeiska kommissionen" + }, + { + "lang": "hr", + "value": "Europska komisija" + } + ], + "SchemeOperatorAddress": { + "SchemeOperatorPostalAddress": [ + { + "lang": "fr", + "StreetAddress": "Rue de la Loi 200", + "Locality": "Bruxelles", + "PostalCode": "1049", + "Country": "BE" + }, + { + "lang": "nl", + "StreetAddress": "Wetstraat 200", + "Locality": "Brussel", + "PostalCode": "1049", + "Country": "BE" + }, + { + "lang": "en", + "StreetAddress": "Rue de la Loi/Wetstraat 200", + "Locality": "Brussels", + "PostalCode": "1049", + "Country": "BE" + } + ], + "SchemeOperatorElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:DIGIT-EU-TRUST-NON-PROD@ec.europa.eu" + }, + { + "lang": "en", + "uriValue": "https://digital-strategy.ec.europa.eu/en/policies/eu-trusted-lists" + } + ] + }, + "SchemeName": [ + { + "lang": "en", + "value": "The present list is a list of person identifier providers of EUDI Wallet issued in accordance with CIR 2024/2980" + } + ], + "SchemeInformationURI": [ + { + "lang": "en", + "uriValue": "https://trust.tech.ec.europa.eu/lists/eudiw/mdl-providers-list-scheme-information" + } + ], + "StatusDeterminationApproach": "http://trust.ec.europa.eu/lists/mDL/mDLProvidersListStatusDetn", + "SchemeTypeCommunityRules": [ + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/schemerules" + } + ], + "SchemeTerritory": "EU", + "PolicyOrLegalNotice": [ + { + "LoTEPolicy": { + "lang": "en", + "uriValue": "http://trust.tech.ec.europa.eu/lists/eudiw/legal-notice#EN" + } + } + ], + "ListIssueDateTime": "2026-04-02T11:24:30Z", + "NextUpdate": "2026-10-01T11:24:30Z" + }, + "TrustedEntitiesList": [ + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Agence Nationale des Titres Sécurisés" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATFR-2356568" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "3465", + "Country": "FR" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.fr" + }, + { + "lang": "en", + "uriValue": "tel:+337848346754" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.fr" + }, + { + "lang": "en", + "uriValue": "http://uri.etsi.org/19602/ListOfTrustedEntities/mDLProvider/FR" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mDL_solution_fr_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDLTCCAtKgAwIBAgISESEFJUbpBJovlg7lg3Eb5YTCMAoGCCqGSM49BAMCMIGiMQswCQYDVQQGEwJGUjEwMC4GA1UECgwnQWdlbmNlIE5hdGlvbmFsZSBkZXMgVGl0cmVzIFPDqWN1cmlzw6lzMRcwFQYDVQQLDA4wMDAyIDEzMDAwMzI2MjE8MDoGA1UEAwwzQXV0b3JpdMOpIGRlIENlcnRpZmljYXRpb24gRnJhbmNlIEF0dGVzdGF0aW9ucyBJQUNBMQowCAYDVQQFEwExMB4XDTI1MTAxNzAwMDAwMFoXDTM0MTAxNzAwMDAwMFowgaIxCzAJBgNVBAYTAkZSMTAwLgYDVQQKDCdBZ2VuY2UgTmF0aW9uYWxlIGRlcyBUaXRyZXMgU8OpY3VyaXPDqXMxFzAVBgNVBAsMDjAwMDIgMTMwMDAzMjYyMTwwOgYDVQQDDDNBdXRvcml0w6kgZGUgQ2VydGlmaWNhdGlvbiBGcmFuY2UgQXR0ZXN0YXRpb25zIElBQ0ExCjAIBgNVBAUTATEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASa4ZI0w4Mn4FW6kYdKPUlYYgVbwFf1A6lBDnurRsoPJxM3+dVupbkGl9O+QnJ36wc8ngoXE3oH1hP11flDmWsIo4HlMIHiMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMDAGA1UdEgQpMCeBJWZyYW5jZS1hdHRlc3RhdGlvbnNAaW50ZXJpZXVyLmdvdXYuZnIwSgYDVR0fBEMwQTA/oD2gO4Y5aHR0cDovL2NybC5hbnRzLmdvdXYuZnIvYWNfZnJhbmNlX2F0dGVzdGF0aW9uc19pYWNhXzEuY3JsMB0GA1UdDgQWBBT/dscZoX+tou0+F2dDsFrTPfsMpzAfBgNVHSMEGDAWgBT/dscZoX+tou0+F2dDsFrTPfsMpzAKBggqhkjOPQQDAgNJADBGAiEAmMD8Kpgnctmx12gCBYrj98knoKDSPlO5SucThy1EEqwCIQDsYM80Ere4Yw0fHNJQQHl6D1rAITDV3qFKP62Uq7xtsQ==" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/mDL/Issuance" + } + }, + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mDL_solution_fr_2" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDUzCCAvmgAwIBAgISESHtNjf+2KAQ0ttWtR9EhAAPMAoGCCqGSM49BAMCMIHFMQswCQYDVQQGEwJGUjEwMC4GA1UECgwnQWdlbmNlIE5hdGlvbmFsZSBkZXMgVGl0cmVzIFPDqWN1cmlzw6lzMRcwFQYDVQQLDA4wMDAyIDEzMDAwMzI2MjEmMCQGA1UECwwdUE9VUiBRVUFMSUZJQ0FUSU9OIFVOSVFVRU1FTlQxNzA1BgNVBAMMLkF1dG9yaXTDqSBkZSBDZXJ0aWZpY2F0aW9uIEZyYW5jZSBBdHRlc3RhdGlvbnMxCjAIBgNVBAUTATEwHhcNMjUwMTI5MDAwMDAwWhcNMzAwMTI5MDAwMDAwWjCBxTELMAkGA1UEBhMCRlIxMDAuBgNVBAoMJ0FnZW5jZSBOYXRpb25hbGUgZGVzIFRpdHJlcyBTw6ljdXJpc8OpczEXMBUGA1UECwwOMDAwMiAxMzAwMDMyNjIxJjAkBgNVBAsMHVBPVVIgUVVBTElGSUNBVElPTiBVTklRVUVNRU5UMTcwNQYDVQQDDC5BdXRvcml0w6kgZGUgQ2VydGlmaWNhdGlvbiBGcmFuY2UgQXR0ZXN0YXRpb25zMQowCAYDVQQFEwExMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEoCYCM9LYS8zUk8I1xL2B2G9voa4yFskoqohrsEQkpNEeKb59J3VDHausTqFWCOfwEGUzi6yocLIbE+gfz59pnaOBxjCBwzAOBgNVHQ8BAf8EBAMCAQYwMAYDVR0SBCkwJ4ElZnJhbmNlLWF0dGVzdGF0aW9uc0BpbnRlcmlldXIuZ291di5mcjASBgNVHRMBAf8ECDAGAQH/AgEAMEwGA1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9jcmwucXVhbGlmLmFudHMuZ291di5mci9hY19mcmFuY2VfYXR0ZXN0YXRpb25zXzEuY3JsMB0GA1UdDgQWBBR3bIy6PB3fPAlYHOvqk7nftps4sDAKBggqhkjOPQQDAgNIADBFAiBrI2HGG1SZNRfEoaIwk3bjAjLBcE9tcKPi1gu0oah58AIhAL+KWRF8FwT4JBblyZdmuoVVXJ36LMmAUcs5YwJpMiQW" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/mDL/Issuance" + } + }, + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mDL_solution_fr_3" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDHTCCAsSgAwIBAgISESEhmoph1P1OOjDCLJAgGdBbMAoGCCqGSM49BAMCMIGfMQswCQYDVQQGEwJGUjEwMC4GA1UECgwnQWdlbmNlIE5hdGlvbmFsZSBkZXMgVGl0cmVzIFPDqWN1cmlzw6lzMRcwFQYDVQQLDA4wMDAyIDEzMDAwMzI2MjE5MDcGA1UEAwwwQXV0b3JpdMOpIGRlIENlcnRpZmljYXRpb24gRnJhbmNlIElkZW50aXTDqSBJQUNBMQowCAYDVQQFEwExMB4XDTI1MTAxNzAwMDAwMFoXDTM0MTAxNzAwMDAwMFowgZ8xCzAJBgNVBAYTAkZSMTAwLgYDVQQKDCdBZ2VuY2UgTmF0aW9uYWxlIGRlcyBUaXRyZXMgU8OpY3VyaXPDqXMxFzAVBgNVBAsMDjAwMDIgMTMwMDAzMjYyMTkwNwYDVQQDDDBBdXRvcml0w6kgZGUgQ2VydGlmaWNhdGlvbiBGcmFuY2UgSWRlbnRpdMOpIElBQ0ExCjAIBgNVBAUTATEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQqfRW/7OTJS4K0IPMa/c8UicIUq62jTccQtGnHAYk6UnvXyRO3PC4/2pdq5QjhwIKwJVqCFOr4fbGboMKLX+L/o4HdMIHaMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMCwGA1UdEgQlMCOBIWZyYW5jZS1pZGVudGl0ZUBpbnRlcmlldXIuZ291di5mcjBGBgNVHR8EPzA9MDugOaA3hjVodHRwOi8vY3JsLmFudHMuZ291di5mci9hY19mcmFuY2VfaWRlbnRpdGVfaWFjYV8xLmNybDAdBgNVHQ4EFgQUAQ1+Rjq9mU0kAyKKyTwFdgjmwA4wHwYDVR0jBBgwFoAUAQ1+Rjq9mU0kAyKKyTwFdgjmwA4wCgYIKoZIzj0EAwIDRwAwRAIgSNKCT8z4zaZLfdOd/rHevKYDbvjqylK723wjd4g4s0ECIDnoWVWyJHwlO31z3QmK7QapM00sOCJnsTIvEGi1Fz/I" + } + ] + }, + "ServiceTypeIdentifier": "http://uri.etsi.org/19602/SvcType/mDL/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Digitaliseringsdirektoratet - Bevisporten" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-NOFOR.991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "5788", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.no" + }, + { + "lang": "en", + "uriValue": "tel:+4734869323" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.no" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mDL_solution_no" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDBTCCAqygAwIBAgIJALyA/nuVMsUpMAoGCCqGSM49BAMEMIGCMR4wHAYDVQRhExVOVFJOTy1OT0ZPUi45OTE4MjU4MjcxLTArBgNVBAMTJGVpZGFzMnNhbmRrYXNzZSBFQUEgUHJvdmlkZXIgQ0EgdGVzdDEkMCIGA1UEChMbRElHSVRBTElTRVJJTkdTRElSRUtUT1JBVEVUMQswCQYDVQQGEwJOTzAeFw0yNTEwMTAwODE2MzZaFw0yNjEwMDgxMjQ3MzZaMGExCzAJBgNVBAYTAk5PMTIwMAYDVQQDDClEaWdpdGFsaXNlcmluZ3NkaXJla3RvcmF0ZXQgLSBCZXZpc3BvcnRlbjEeMBwGA1UEYQwVTlRSTk8tTk9GT1IuOTkxODI1ODI3MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEggybfUUfbzJltJnTd3NjkH/OApRXdjznhsiDEShxa14362U8s1d/z8fsFMNxiO+z/ZSkHsUurkh2EiNQMcG0T6OCASkwggElMB8GA1UdIwQYMBaAFG2uFOu+dBM1aEzXwQ1nMTFpj7JfMB0GA1UdDgQWBBRTpQH9HAw203fM8Z6Nnc6Aj5RsVzAMBgNVHRMBAf8EAjAAMFwGA1UdHwRVMFMwUaBPoE2GS2h0dHBzOi8vY2EudGVzdC5laWRhczJzYW5ka2Fzc2UubmV0L3YxL2NlcnRzL2ludGVybWVkaWF0ZXMvZWFhX3Byb3ZpZGVyLmNybDBnBggrBgEFBQcBAQRbMFkwVwYIKwYBBQUHMAKGS2h0dHBzOi8vY2EudGVzdC5laWRhczJzYW5ka2Fzc2UubmV0L3YxL2NlcnRzL2ludGVybWVkaWF0ZXMvZWFhX3Byb3ZpZGVyLmNlcjAOBgNVHQ8BAf8EBAMCBaAwCgYIKoZIzj0EAwQDRwAwRAIgco5xnaAZPzLFF0aC7FbF3bEmbHsXId42CRiZIJdqyK0CIG9cjXM31kTF3kmHgN8NligxMbxEmT2HjkAYkKRKUUZR" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Digitaliseringsdirektoratet - mDL-utsteder" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-NOFOR.991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "3478", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.no" + }, + { + "lang": "en", + "uriValue": "tel:+47348346754" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.no" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mDL_solution_no_2" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDMzCCAtmgAwIBAgIIGkwIqxyvEDswCgYIKoZIzj0EAwQwZzEYMBYGA1UEYRMPTlRSTk8tOTkxODI1ODI3MQswCQYDVQQGEwJubzEPMA0GA1UECxMGRGlnZGlyMS0wKwYDVQQDEyRlaWRhczJzYW5ka2Fzc2UgUElEIFByb3ZpZGVyIENBIHRlc3QwHhcNMjUxMDE1MTExMzA3WhcNMjYxMDE1MTExMzA3WjBiMQswCQYDVQQGEwJOTzEzMDEGA1UEAwwqRGlnaXRhbGlzZXJpbmdzZGlyZWt0b3JhdGV0IC0gUElELXV0c3RlZGVyMR4wHAYDVQRhDBVOVFJOTy1OT0ZPUi45OTE4MjU4MjcwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATLIEmdVcdTVfQ/6YpsPvS4taSRiebXwcjHWGEWpZLfrKb3yvowmUMe2SaDZD8HCOXjvSXfbIQsgFKeMU88IkNaDOfyMHbXYf3cJZCFJYo799hQL6j2tMogjUMkyoP+dnCjggFVMIIBUTAfBgNVHSMEGDAWgBRX7XviJqjDMVi/g0bAr0FvQshSDDAdBgNVHQ4EFgQUUCIS5a/pLXMjHV+a4AV8NkiRHZMwDAYDVR0TAQH/BAIwADBcBgNVHR8EVTBTMFGgT6BNhktodHRwczovL2NhLnRlc3QuZWlkYXMyc2FuZGthc3NlLm5ldC92MS9jZXJ0cy9pbnRlcm1lZGlhdGVzL3BpZF9wcm92aWRlci5jcmwwZwYIKwYBBQUHAQEEWzBZMFcGCCsGAQUFBzAChktodHRwczovL2NhLnRlc3QuZWlkYXMyc2FuZGthc3NlLm5ldC92MS9jZXJ0cy9pbnRlcm1lZGlhdGVzL3BpZF9wcm92aWRlci5jZXIwDgYDVR0PAQH/BAQDAgWgMCoGCCsGAQUFBwEDAQH/BBswGQYGBACORgEGDA9pZC1ldHNpLXFjdC1waWQwCgYIKoZIzj0EAwQDSAAwRQIgPNu17SJ+E628cVBT1J1CCZQEI85MIG1hqm1ynwyQN84CIQC67g+mvEDLF9C5gcwN8Q38IEJu3bw0EhCvBbUqPORQPA==" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Digi- ja väestötietovirasto" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATFI-8567" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "5685", + "Country": "FI" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.fi" + }, + { + "lang": "en", + "uriValue": "tel:+358348346754" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.fi" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/FI" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mDL_solution_fi" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDDTCCApKgAwIBAgIUaqDAxDTFQMkDVdM0LpPFNCskEV4wCgYIKoZIzj0EAwMwgagxODA2BgNVBAMML0RWViBEaWdpLUlEIE1vY2sgQXR0cmlidXRlIFNlYWxpbmcgQ2VydGlmaWNhdGVzMSYwJAYDVQQKDB1EaWdpLSBqYSB2w6Rlc3TDtnRpZXRvdmlyYXN0bzERMA8GA1UEBwwISGVsc2lua2kxCzAJBgNVBAYTAkZJMRAwDgYDVQQIDAdGaW5sYW5kMRIwEAYDVQQFEwkwMjQ1NDM3LTIwHhcNMjQwMTE1MDkyNTE5WhcNMzMwMTEyMDkyNTE5WjCBqDE4MDYGA1UEAwwvRFZWIERpZ2ktSUQgTW9jayBBdHRyaWJ1dGUgU2VhbGluZyBDZXJ0aWZpY2F0ZXMxJjAkBgNVBAoMHURpZ2ktIGphIHbDpGVzdMO2dGlldG92aXJhc3RvMREwDwYDVQQHDAhIZWxzaW5raTELMAkGA1UEBhMCRkkxEDAOBgNVBAgMB0ZpbmxhbmQxEjAQBgNVBAUTCTAyNDU0MzctMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABGcz86+Pt3o1TZ5BYKXtOrFhqi6fDVq7+32J8DaeiSibJES5c9mAPIP/eNB8b+Wm+7RU9blUZ3xlxsmVTGScEOwwSVczmiwBHtk4+7KNltd6CrAAFgSdyDKCEe+w+AKwLqN7MHkwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwGQYDVR0SBBIwEIYOaHR0cHM6Ly9kdnYuZmkwGQYDVR0RBBIwEIYOaHR0cHM6Ly9kdnYuZmkwHQYDVR0OBBYEFJNVLFsDRkyYNcoRYUEBvtvpEOv7MAoGCCqGSM49BAMDA2kAMGYCMQCwfwzQ2A07a3RiA3BUs2BhdNNuhiZcj5HZN7H8fEEiSvkHay67c2XvuyRlZ+zhE18CMQD6OMM6GM+7oKSBtHEbXuiskiWhl9nq7FPQDwPFoaVGxu/SQ3itFL4k2nNsJrEBcfg=" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "eidas2sandkasse mDL Provider CA test" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "4332", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.no" + }, + { + "lang": "en", + "uriValue": "tel:+47348346754" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.no" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mDL_solution_no_3" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICvTCCAmSgAwIBAgIJAJ7Fdm0r3xiMMAoGCCqGSM49BAMDMGMxGDAWBgNVBGETD05UUk5PLTk5MTgyNTgyNzELMAkGA1UEBhMCbm8xDzANBgNVBAsTBkRpZ2RpcjEpMCcGA1UEAxMgZWlkYXMyc2FuZGthc3NlLm5ldCByb290IENBIHRlc3QwHhcNMjUwNzE0MDk1MDE5WhcNMjkxMjE2MDk1MDE5WjBnMRgwFgYDVQRhEw9OVFJOTy05OTE4MjU4MjcxCzAJBgNVBAYTAm5vMQ8wDQYDVQQLEwZEaWdkaXIxLTArBgNVBAMTJGVpZGFzMnNhbmRrYXNzZSBQSUQgUHJvdmlkZXIgQ0EgdGVzdDBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMyVKdaQbLy6E4y7A2Crz/7qBv2x9vebD+7B3N0o2rpxXsDzOQYkBBaBh8uD2LxmEI3E3a6vISekCY0NK/nhUR2jgfwwgfkwUQYIKwYBBQUHAQEERTBDMEEGCCsGAQUFBzAChjVodHRwczovL2NhLnRlc3QuZWlkYXMyc2FuZGthc3NlLm5ldC92MS9jZXJ0cy9yb290LmNlcjAdBgNVHQ4EFgQUV+174iaowzFYv4NGwK9Bb0LIUgwwDgYDVR0PAQH/BAQDAgEGMAwGA1UdEwQFMAMBAf8wRgYDVR0fBD8wPTA7oDmgN4Y1aHR0cHM6Ly9jYS50ZXN0LmVpZGFzMnNhbmRrYXNzZS5uZXQvdjEvY2VydHMvcm9vdC5jcmwwHwYDVR0jBBgwFoAUCi/G/x9Z1uJAVlFqD3onNXclrPEwCgYIKoZIzj0EAwMDRwAwRAIgLvJLEoUbacsoa2calE0f/XVOAnHDWVYDizHJqJAwS3kCIDz8miu6b8cD09rfGSD727joqPunkIGRQqi72HTVabcA" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "eidas2sandkasse Pub EAA Provider CA test" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "NTRNO-991825827" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "test", + "Country": "NO" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@test.no" + }, + { + "lang": "en", + "uriValue": "tel:+4734869323" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "http://test.no" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/NO" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mDL_solution_no_4" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICwjCCAmigAwIBAgIJAPm2yYm712+4MAoGCCqGSM49BAMDMGMxGDAWBgNVBGETD05UUk5PLTk5MTgyNTgyNzELMAkGA1UEBhMCbm8xDzANBgNVBAsTBkRpZ2RpcjEpMCcGA1UEAxMgZWlkYXMyc2FuZGthc3NlLm5ldCByb290IENBIHRlc3QwHhcNMjUwNzE0MDk1MDUxWhcNMjkxMjE2MDk1MDUxWjBrMRgwFgYDVQRhEw9OVFJOTy05OTE4MjU4MjcxCzAJBgNVBAYTAm5vMQ8wDQYDVQQLEwZEaWdkaXIxMTAvBgNVBAMTKGVpZGFzMnNhbmRrYXNzZSBQdWIgRUFBIFByb3ZpZGVyIENBIHRlc3QwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS+7CQFU3oWwu9dxauSvk5Xc7AeDhDtLb/x8WcUWFvlG4ekHKlqvW9gxe+W4KJrfn95UZ/0fOfm+znsha/zpiMKo4H8MIH5MFEGCCsGAQUFBwEBBEUwQzBBBggrBgEFBQcwAoY1aHR0cHM6Ly9jYS50ZXN0LmVpZGFzMnNhbmRrYXNzZS5uZXQvdjEvY2VydHMvcm9vdC5jZXIwHQYDVR0OBBYEFD/oYNwZ6+S0FLt9IQvCHPFK6ktiMA4GA1UdDwEB/wQEAwIBBjAMBgNVHRMEBTADAQH/MEYGA1UdHwQ/MD0wO6A5oDeGNWh0dHBzOi8vY2EudGVzdC5laWRhczJzYW5ka2Fzc2UubmV0L3YxL2NlcnRzL3Jvb3QuY3JsMB8GA1UdIwQYMBaAFAovxv8fWdbiQFZRag96JzV3JazxMAoGCCqGSM49BAMDA0gAMEUCIHcgPyDKaizjJPpyztDqUwVqDabzOBVSQwgFIAFT+aV+AiEA8sFi8APxqLmwmCjd5EOd2WhGXSWRksIcCW+aS8kpPmU=" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "AMA - Agência para a Modernização Administrativa" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATPT-27373" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "23451", + "Country": "PT" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.pt" + }, + { + "lang": "en", + "uriValue": "tel:+35198765" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.pt" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/PT" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mdl_solution_pt" + } + ], + "ServiceDigitalIdentity": { + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "A-SIT" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATAT-37373" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "23451", + "Country": "AT" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.at" + }, + { + "lang": "en", + "uriValue": "tel:+4398279" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.at" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/AT" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mdl_solution_at_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICGzCCAcCgAwIBAgIUb9GJdqQMdwXaoO61uxoBlg+jhbYwCgYIKoZIzj0EAwIwLDELMAkGA1UEBhMCQVQxDjAMBgNVBAoMBUEtU0lUMQ0wCwYDVQQDDARJQUNBMB4XDTI1MDQwNzA5NDQ1N1oXDTI2MDQwNzA5NDQ1N1owLDELMAkGA1UEBhMCQVQxDjAMBgNVBAoMBUEtU0lUMQ0wCwYDVQQDDARJQUNBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElIXOzb+iF+zGutygdIVOBnC4R6OvhYo5TGWhrH0idmqs56IVwJWYzQYzK4CbYePcxpMQY3lKBa5O0MAZe+EogKOBvzCBvDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjAiBgNVHRIEGzAZhhdodHRwczovL3dhbGxldC5hLXNpdC5hdDAyBgNVHR8EKzApMCegJaAjhiFodHRwczovL3dhbGxldC5hLXNpdC5hdC9jcmwvMS5jcmwwHwYDVR0jBBgwFoAUDQF5K46YVgzLpfV5stoutBezK6QwHQYDVR0OBBYEFA0BeSuOmFYMy6X1ebLaLrQXsyukMAoGCCqGSM49BAMCA0kAMEYCIQCz0i9GA24ZOf3Wk+w8+09J6ARAHKLuBuepszBxVZdaZAIhAJlgzKBhHw8+Bwr+wLGQVjMC5e9BWWaUga8ZP9dRYhHJ" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "IDAKTO IACA 4" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATFR-73829" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "23343", + "Country": "FR" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test@domain.fr" + }, + { + "lang": "en", + "uriValue": "tel:+33857302" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.fr" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/FR" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mdl_solution_fr_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIB2TCCAX+gAwIBAgIJAI5LEB+QbO+3MAoGCCqGSM49BAMCMCUxCzAJBgNVBAYTAkZSMRYwFAYDVQQDDA1JREFLVE8gSUFDQSA0MB4XDTI0MDkyNjEyMzQ1M1oXDTI5MDkyNTEyMzQ1M1owJTELMAkGA1UEBhMCRlIxFjAUBgNVBAMMDUlEQUtUTyBJQUNBIDQwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARMophaPOvIcnsKuxs3iGxJA3kyQx3pHeC0LWj8RNPLtYWAcPJq8bB5PSyOkGtB6XcGUTJukaBxU//5cAe2I18po4GXMIGUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS2EQayXDKCQSR99d/ve3ZXwxWPpzAaBgNVHRIEEzARgQ9pYWNhQGlkYWt0by5jb20wMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5jaG9wcGVyLmlkbGFiLmxpdmU6NTU1NTAKBggqhkjOPQQDAgNIADBFAiAX1wM1La0uufb2yA4jZ+11FfF6hcx3ER8/kcC52teviQIhALNwfW4Zusu4QD8QFxRKrLyi8UVWpDXI5G7rHRnIbNPf" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "ISO Root CA" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATAT-90021" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "63823", + "Country": "AT" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test2@domain.at" + }, + { + "lang": "en", + "uriValue": "tel:+33848209" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.at" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/AT" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mdl_solution_at_2" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICbDCCAhKgAwIBAgIUH23VY4YX6sFgbdidaIr2o7cR154wCgYIKoZIzj0EAwIwIzELMAkGA1UEBhMCQVQxFDASBgNVBAMMC0lTTyBSb290IENBMB4XDTI1MDUyODExNTMxMloXDTM1MDUyNjExNTMxMlowIzELMAkGA1UEBhMCQVQxFDASBgNVBAMMC0lTTyBSb290IENBMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEisG5+9ei6IRPnTkc2HuiY5kDWM+SUEeTkDXBs7bz/Xc1gwa0WbfEwJA2GuasCl4h0Zzv2fuDK+ER2+Gb7IsPWKOCASIwggEeMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTeJAquS8H45Kv/lng41lul7kTOCDAfBgNVHSMEGDAWgBTeJAquS8H45Kv/lng41lul7kTOCDCBiwYDVR0fBIGDMIGAMH6gfKB6hnhodHRwczovL3ZhdWx0LmxpZS1pbnRlcm5hbC5wcm9kdWN0aW9uLmNsdXN0ZXJzLnlvdW5pcXguY29tL3YxL21hbmFnZWQvcGtpL21pYS1saWUtaW50ZXJuYWwvbWlhLWxpZS1pbnRlcm5hbC1pc28tcm9vdC9jcmwwKgYDVR0SBCMwIYEfdGVhbS5xdWFudHVtcXVva2thc0B5b3VuaXF4LmNvbTAKBggqhkjOPQQDAgNIADBFAiA9ehNPI3Ck4bfcma27BbKClYLOmjIbu0ytFf6etfp5dwIhAIZT1olmq8bVm7iDRjtFAWUUpNjKQMPAXXY83EbqiqQV" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Bundesdruckerei GmbH" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATDE-82718" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "638382", + "Country": "DE" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test2@domain.de" + }, + { + "lang": "en", + "uriValue": "tel:+4971501" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.at" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/DE" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mdl_solution_de_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICNTCCAdygAwIBAgIUBEfh5TdWaKkeiOkVBHKBHe7VHOUwCgYIKoZIzj0EAwIwZzELMAkGA1UEBhMCREUxDzANBgNVBAcMBkJlcmxpbjEdMBsGA1UECgwUQnVuZGVzZHJ1Y2tlcmVpIEdtYkgxETAPBgNVBAsMCFQgQ1MgSURFMRUwEwYDVQQDDAxQSURQIERlbW8gQ0EwHhcNMjUxMTE5MTIwNjMwWhcNMzUxMTE3MTIwNjMwWjBnMQswCQYDVQQGEwJERTEPMA0GA1UEBwwGQmVybGluMR0wGwYDVQQKDBRCdW5kZXNkcnVja2VyZWkgR21iSDERMA8GA1UECwwIVCBDUyBJREUxFTATBgNVBAMMDFBJRFAgRGVtbyBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLfzEvVnrtzbM47MtwES2H4cOFtqvaZEQw4DGMiENSbfKih9WxxhDN8HzuukmiFZYhOxy0frbPlCBJkhGZFsKOWjZjBkMB0GA1UdDgQWBBSAX87IYWUcmGz01ZRdX/qAWEO+XzAfBgNVHSMEGDAWgBSAX87IYWUcmGz01ZRdX/qAWEO+XzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAKBggqhkjOPQQDAgNHADBEAiBae8hSEdl3gqo8gmbvl9IV9rTrG5iw/6kk6h8w0upuVwIgM29abFnlKUY07mil1xc43zoMqql4YuWv29VHA9ZiT4Y=" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "Microsec Ltd." + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATHU-23584497" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "73824", + "Country": "HU" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test2@domain.hu" + }, + { + "lang": "en", + "uriValue": "tel:+36019283" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.hu" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/HU" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mdl_solution_hu_1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDQzCCAuigAwIBAgIMBcKMJXgy2272WHQKMAoGCCqGSM49BAMCMHYxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxIzAhBgNVBAMMGlRlc3QgZS1Temlnbm8gUm9vdCBDQSAyMDE3MB4XDTE3MDkyMjIwMDAwMFoXDTQyMDkyMjA2MDAwMFowcTELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRYwFAYDVQQKDA1NaWNyb3NlYyBMdGQuMRcwFQYDVQRhDA5WQVRIVS0yMzU4NDQ5NzEeMBwGA1UEAwwVVGVzdCBlLVN6aWdubyBDQSAyMDE3MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElKYzOPtAdd2ohSfwEgX2A+Zr2jXWrEqAwJYRs9aBjxT67VwuD10R+TEY0aRwzbrAAPfR2hsOr9DcvZlh4AXRraOCAV8wggFbMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vdGVzenQuZS1zemlnbm8uaHUvcWNwczAdBgNVHQ4EFgQUeptoh454hhbzt/k2HvgamLNkHIkwHwYDVR0jBBgwFoAUklDZBPHkz7JSHyQKgYTiOO2dO44wOQYDVR0fBDIwMDAuoCygKoYoaHR0cDovL3Rlc3p0LmUtc3ppZ25vLmh1L3Ryb290Y2EyMDE3LmNybDB9BggrBgEFBQcBAQRxMG8wNwYIKwYBBQUHMAGGK2h0dHA6Ly90ZXN6dC5lLXN6aWduby5odS90ZXN0cm9vdGNhMjAxN29jc3AwNAYIKwYBBQUHMAKGKGh0dHA6Ly90ZXN6dC5lLXN6aWduby5odS90cm9vdGNhMjAxNy5jcnQwCgYIKoZIzj0EAwIDSQAwRgIhAL+F7BHEDUvV/weTnf4TwzwDIssl0hMF/0oKo0c9CaXXAiEAvNpfSAJjlU9kCqsRVUYVQqVffJCuBPIKdFvfcejwfbY=" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "TEST Authority" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATEE-373091" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "53242", + "Country": "EE" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test2@domain.ee" + }, + { + "lang": "en", + "uriValue": "tel:+372932394" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.ee" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/EE" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mdl_solution_ee" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICiTCCAjCgAwIBAgIUD89WCelKX+PFzZTKvrIsMgoIjZcwCgYIKoZIzj0EAwIwUjELMAkGA1UEBhMCRUUxDjAMBgNVBAgMBUhhcmp1MRcwFQYDVQQKDA5URVNUIEF1dGhvcml0eTEaMBgGA1UEAwwRVEVTVCBJQUNBIFJvb3QgQ0EwHhcNMjUwMjE5MTExNDI2WhcNNDUwMjE0MTExNDI2WjBSMQswCQYDVQQGEwJFRTEOMAwGA1UECAwFSGFyanUxFzAVBgNVBAoMDlRFU1QgQXV0aG9yaXR5MRowGAYDVQQDDBFURVNUIElBQ0EgUm9vdCBDQTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABOJyw8+GgiTyqkzhvwA5nNMwsjLA24/2wjYrXJMb23fCAWeskZu014znoXZHJZK+cxlnvLtLscYCiF7REr6NWcqjgeMwgeAwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHAddh/lzBAlZm1hAO/QgQmhV9WBMCMGA1UdEgQcMBqBGGNvbnRhY3RAaWFjYS5leGFtcGxlLmNvbTB2BgNVHR8EbzBtMGugaaBnhmVodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vb3Blbi1laWQvZXVkaS1xZWFhLWlzc3Vlci1wb2MvcmVmcy9oZWFkcy9kZXZlbG9wL2xvY2FsL2NybC9pYWNhLmNybDAKBggqhkjOPQQDAgNHADBEAiBt84QP49zoXBFItKhxIPkg+7qXbf6eIMY0xkc1M7RYlQIgWOSUJbP8KEreKUQ5Nwgae13YifG3jpJfU+nVWAe+1Ik=" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "GRNET" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "VATEL-7283" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Rue test", + "Locality": "test", + "StateOrProvince": "test", + "PostalCode": "53242", + "Country": "EL" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:test2@domain.el" + }, + { + "lang": "en", + "uriValue": "tel:+302932394" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://test.el" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/EL" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "name_mdl_solution_el" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIICkTCCAjigAwIBAgIUBHi4ixVY+v67hn64ELqWc/cuIoQwCgYIKoZIzj0EAwIwPTEeMBwGA1UEAwwVUElEIElzc3VlciBDQSAtIEdSIDAxMQ4wDAYDVQQKDAVHUk5FVDELMAkGA1UEBhMCR1IwHhcNMjUxMTAzMTMwMzQ1WhcNMjYxMTAzMTMwMzQ1WjA9MR4wHAYDVQQDDBVQSUQgSXNzdWVyIENBIC0gR1IgMDExDjAMBgNVBAoMBUdSTkVUMQswCQYDVQQGEwJHUjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGV76duOyXnqudRE1nzJHu4TF/hQLSzrUNNj/g14e1eno+mdF/2BUsTKMMoVi6Nvahco45gI0aC/sXBK+zfhysmjggEUMIIBEDASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQ9fVq9ZifBrdIV1gL89UMxFC+HyzBiBgNVHSMEWzBZoUGkPzA9MR4wHAYDVQQDDBVQSUQgSXNzdWVyIENBIC0gR1IgMDExDjAMBgNVBAoMBUdSTkVUMQswCQYDVQQGEwJHUoIUBHi4ixVY+v67hn64ELqWc/cuIoQwFgYDVR0lAQH/BAwwCgYIK4ECAgAAAQcwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovLzgzLjIxMi43Mi4xMTQ6ODA4Mi9jcmwucGVtMA4GA1UdDwEB/wQEAwIBBjAbBgNVHRIEFDAShhBodHRwczovL2dybmV0LmdyMAoGCCqGSM49BAMCA0cAMEQCICAFSFanRww3RVPLqp4IC+/1JxXF9q3qE22t0R0pSKxUAiAJLUpXIknyy2qAwukAZujeuZne71PJ1Yh9xYjUdQZuhQ==" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance" + } + } + ] + }, + { + "TrustedEntityInformation": { + "TEName": [ + { + "lang": "en", + "value": "mDL Provider1" + } + ], + "TETradeName": [ + { + "lang": "en", + "value": "Liechtenstein National Administration" + }, + { + "lang": "en", + "value": "VATLI-2345678" + } + ], + "TEAddress": { + "TEPostalAddress": [ + { + "lang": "en", + "StreetAddress": "Platz 2", + "Locality": "Vaduz", + "StateOrProvince": "Liechtenstein", + "PostalCode": "Fl-001", + "Country": "PL" + } + ], + "TEElectronicAddress": [ + { + "lang": "en", + "uriValue": "mailto:office-mdl@test.li" + }, + { + "lang": "en", + "uriValue": "tel:+423887744" + }, + { + "lang": "en", + "uriValue": "https://www.llv.li/en/mdl" + } + ] + }, + "TEInformationURI": [ + { + "lang": "en", + "uriValue": "https://www.llv.li/en/mdl/policies" + }, + { + "lang": "en", + "uriValue": "https://www.llv.li/en/mdl/information" + }, + { + "lang": "en", + "uriValue": "http://trust.ec.europa.eu/lists/mDL/mDLProvider/PL" + } + ] + }, + "TrustedEntityServices": [ + { + "ServiceInformation": { + "ServiceName": [ + { + "lang": "en", + "value": "mDL Service 1" + } + ], + "ServiceDigitalIdentity": { + "X509Certificates": [ + { + "val": "MIIDsjCCApqgAwIBAgIQa5/PTwD9epxBQHrl6XObezANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQGEwJMSTEOMAwGA1UEBwwFVmFkdXoxDDAKBgNVBAsMA0xMVjEuMCwGA1UECgwlTGllY2h0ZW5zdGVpbiBOYXRpb25hbCBBZG1pbmlzdHJhdGlvbjEPMA0GA1UEAwwGbGx2LmxpMB4XDTI2MDEwNTEzMTkyMFoXDTI3MDEwNTEzMTk1MFowbDELMAkGA1UEBhMCTEkxDjAMBgNVBAcMBVZhZHV6MQwwCgYDVQQLDANMTFYxLjAsBgNVBAoMJUxpZWNodGVuc3RlaW4gTmF0aW9uYWwgQWRtaW5pc3RyYXRpb24xDzANBgNVBAMMBmxsdi5saTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJtDK/L1QEAj7QNtAgA5SNVXXahMtwayCAHtimJEGMRXeiI9KSE+BBfQ8c989Wbw9KqLsIUWGNuleGQCRFWArZmWXXezHn3fJecpeb06t+OZiPaLgq4iBp8EZ0czGFIxNxXOtSSgVcL1FCsDnIW9yzRt/xFPUn/59F6oGky/KPQXg0sW3UOkTW/k795QqIvLaMPFKn1kKkBSGh4TWmp6zQ0c7lEWGLKlCV0l0XHQAwl0bmoebEsA7QBG320i31n4Gr5y0zCbWjxEv3IU6RWZ2QARlybj4lVXyTyiezJ91v2tEhWlE/xK6AV7y9N5IcB5e+sxKDmjCp4gb1idBJYM9W0CAwEAAaNQME4wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAdBgNVHQ4EFgQU0RI/MTHeLnYjg8CQlPsrBXvWZLkwDQYJKoZIhvcNAQELBQADggEBAHlLN3fEK8q9mk5Uy6Y0Bnq7clLKAlajbUcPc2/SAiYsmioNv5k6p6dAiNXng4gaSe1gGQz9o15raYz2EK3nfmw1ooFjXjmZOfiY2EBsBd9X3EJCu2aYBDeOaX3Xqw1s0ZXdfmDnvqEEmVvVr+VubzX8JLS2AM2glyRvBb7w27gBBvptggS54P9Re16yGxiQbqV17k8h/0idYbGH31Y8lUYRyOHkFtlL4pqJmCQ38laej0L73GiUtCg0hdrGcrEf2oziO55pBpsJTAiiCkv/Pz7Ri4o8l3ALQKrByloO2mpwlPmVmxxNi/o79XFGelTIBrWIVYgBbTwfDzvQIIKjY6I=" + } + ] + }, + "ServiceTypeIdentifier": "http://trust.ec.europa.eu/lists/mDL/SvcType/Issuance", + "ServiceSupplyPoints": [ + { + "uriValue": "http://supply.points", + "ServiceType": "http://supply.pointstype" + } + ], + "ServiceDefinitionURI": [ + { + "lang": "en", + "uriValue": "https://www.llv.li/en/mdl/service/information" + } + ] + } + } + ] + } + ] + } + """.trimIndent() + + + data class TestData( + val json: String, + val expectedServiceType: String + ) + + testSuite("filter lote by type identifier") { + mapOf( + "pidProviders" to TestData(pidProvidersFixed, "http://uri.etsi.org/19602/SvcType/PID/Issuance"), + "walletProviders" to TestData(walletProvidersFixed, "http://uri.etsi.org/19602/SvcType/WalletSolution/Issuance"), + "wrpacProviders" to TestData(wrpacProvidersFixed, "http://uri.etsi.org/19602/SvcType/WRPAC/Issuance"), + "mdlProviders" to TestData(mdlProvidersFixed, "http://uri.etsi.org/19602/SvcType/mDL/Issuance"), + ).asData() test{ (_, data) -> + val lote = Json.decodeFromString(data.json) + + val criteria = LoTEFilterCriteria(expectedServiceType = data.expectedServiceType) + + val trustedCerts = LoTEFilterService().extractTrustedCertificates(lote, criteria) + + trustedCerts.size shouldNotBe(0) + } + } +} \ No newline at end of file diff --git a/vck/src/jvmTest/kotlin/at/asitplus/wallet/lib/etsi/TrustListValidatorTest.kt b/vck/src/jvmTest/kotlin/at/asitplus/wallet/lib/etsi/TrustListValidatorTest.kt new file mode 100644 index 000000000..11207fa0e --- /dev/null +++ b/vck/src/jvmTest/kotlin/at/asitplus/wallet/lib/etsi/TrustListValidatorTest.kt @@ -0,0 +1,174 @@ +package at.asitplus.wallet.lib.etsi + +import at.asitplus.signum.indispensable.pki.X509Certificate +import at.asitplus.testballoon.matrix.matrixSuite +import io.kotest.matchers.shouldBe + + +val TrustListValidatorTest by matrixSuite { + + val trustAnchorPem = "-----BEGIN CERTIFICATE-----\n" + + "MIIDRzCCAi+gAwIBAgIBATANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJVUzEf\n" + + "MB0GA1UEChMWVGVzdCBDZXJ0aWZpY2F0ZXMgMjAxMTEVMBMGA1UEAxMMVHJ1c3Qg\n" + + "QW5jaG9yMB4XDTEwMDEwMTA4MzAwMFoXDTMwMTIzMTA4MzAwMFowRTELMAkGA1UE\n" + + "BhMCVVMxHzAdBgNVBAoTFlRlc3QgQ2VydGlmaWNhdGVzIDIwMTExFTATBgNVBAMT\n" + + "DFRydXN0IEFuY2hvcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALmZ\n" + + "UYkRR+DNRbmEJ4ITAhbNRDmqrNsJw97iLE7bpFeflDUoNcJrZPZbC208bG+g5M0A\n" + + "TzV0vOqg88Ds1/FjFDK1oPItqsiDImJIq0xb/et5w72WNPxHVrcsr7Ap6DHfdwLp\n" + + "NMncqtzX92hU/iGVHLE/w/OCWwAIIbTHaxdrGMUG7DkJJ6iI7mzqpcyPvyAAo9O3\n" + + "SHjJr+uw5vSrHRretnV2un0bohvGslN64MY/UIiRnPFwd2gD76byDzoM1ioyLRCl\n" + + "lfBJ5sRDz9xrUHNigTAUdlblb6yrnNtNJmkrROYvkh6sLETUh9EYh0Ar+94fZVXf\n" + + "GVi57Sw7x1jyANTlA40CAwEAAaNCMEAwHQYDVR0OBBYEFOR9X9FclYYILAWuvnW2\n" + + "ZafZXahmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3\n" + + "DQEBCwUAA4IBAQCYoa9uR55KJTkpwyPihIgXHq7/Z8dx3qZlCJQwE5qQBZXIsf5e\n" + + "C8Va/QjnTHOC4Gt4MwpnqqmoDqyqSW8pBVQgAUFAXqO91nLCQb4+/yfjiiNjzprp\n" + + "xQlcqIZYjJSVtckH1IDWFLFeuGW+OgPPEFgN4hjU5YFIsE2r1i4+ixkeuorxxsK1\n" + + "D/jYbVwQMXLqn1pjJttOPJwuA8+ho1f2c8FrKlqjHgOwxuHhsiGN6MKgs1baalpR\n" + + "/lnNFCIpq+/+3cnhufDjvxMy5lg+cwgMCiGzCxn4n4dBMw41C+4KhNF7ZtKuKSZ1\n" + + "eczztXD9NUkGUGw3LzpLDJazz3JhlZ/9pXzF\n" + + "-----END CERTIFICATE-----" + + "valid signature" { + val testCertPem = "-----BEGIN CERTIFICATE-----\n" + + "MIIDfDCCAmSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJVUzEf\n" + + "MB0GA1UEChMWVGVzdCBDZXJ0aWZpY2F0ZXMgMjAxMTEVMBMGA1UEAxMMVHJ1c3Qg\n" + + "QW5jaG9yMB4XDTEwMDEwMTA4MzAwMFoXDTMwMTIzMTA4MzAwMFowQDELMAkGA1UE\n" + + "BhMCVVMxHzAdBgNVBAoTFlRlc3QgQ2VydGlmaWNhdGVzIDIwMTExEDAOBgNVBAMT\n" + + "B0dvb2QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCQWJpHYo37\n" + + "Xfb7oJSPe+WvfTlzIG21WQ7MyMbGtK/m8mejCzR6c+f/pJhEH/OcDSMsXq8h5kXa\n" + + "BGqWK+vSwD/Pzp5OYGptXmGPcthDtAwlrafkGOS4GqIJ8+k9XGKs+vQUXJKsOk47\n" + + "RuzD6PZupq4s16xaLVqYbUC26UcY08GpnoLNHJZS/EmXw1ZZ3d4YZjNlpIpWFNHn\n" + + "UGmdiGKXUPX/9H0fVjIAaQwjnGAbpgyCumWgzIwPpX+ElFOUr3z7BoVnFKhIXze+\n" + + "VmQGSWxZxvWDUN90Ul0tLEpLgk3OVxUB4VUGuf15OJOpgo1xibINPmWt14Vda2N9\n" + + "yrNKloJGZNqLAgMBAAGjfDB6MB8GA1UdIwQYMBaAFOR9X9FclYYILAWuvnW2ZafZ\n" + + "XahmMB0GA1UdDgQWBBRYAYQkG7wrUpRKPaUQchRR9a86yTAOBgNVHQ8BAf8EBAMC\n" + + "AQYwFwYDVR0gBBAwDjAMBgpghkgBZQMCATABMA8GA1UdEwEB/wQFMAMBAf8wDQYJ\n" + + "KoZIhvcNAQELBQADggEBADWHlxbmdTXNwBL/llwhQqwnazK7CC2WsXBBqgNPWj7m\n" + + "tvQ+aLG8/50Qc2Sun7o2VnwF9D18UUe8Gj3uPUYH+oSI1vDdyKcjmMbKRU4rk0eo\n" + + "3UHNDXwqIVc9CQS9smyV+x1HCwL4TTrq+LXLKx/qVij0Yqk+UJfAtrg2jnYKXsCu\n" + + "FMBQQnWCGrwa1g1TphRp/RmYHnMynYFmZrXtzFz+U9XEA7C+gPq4kqDI/iVfIT1s\n" + + "6lBtdB50lrDVwl2oYfAvW/6sC2se2QleZidUmrziVNP4oEeXINokU6T6p//HM1FG\n" + + "QYw2jOvpKcKtWCSAnegEbgsGYzATKjmPJPJ0npHFqzM=\n" + + "-----END CERTIFICATE-----\n" + + val trustList = listOf(X509Certificate.decodeFromPem(trustAnchorPem).getOrThrow()) + val leaf = X509Certificate.decodeFromPem(testCertPem).getOrThrow() + + leaf.isTrustedBy(trustList).isSuccess shouldBe true + } + + "invalid signature" { + val testCertPem = "-----BEGIN CERTIFICATE-----\n" + + "MIIDgjCCAmqgAwIBAgIBAzANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJVUzEf\n" + + "MB0GA1UEChMWVGVzdCBDZXJ0aWZpY2F0ZXMgMjAxMTEVMBMGA1UEAxMMVHJ1c3Qg\n" + + "QW5jaG9yMB4XDTEwMDEwMTA4MzAwMFoXDTMwMTIzMTA4MzAwMFowRjELMAkGA1UE\n" + + "BhMCVVMxHzAdBgNVBAoTFlRlc3QgQ2VydGlmaWNhdGVzIDIwMTExFjAUBgNVBAMT\n" + + "DUJhZCBTaWduZWQgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDf\n" + + "77zrq/d3vnq9i8r8Trn+BmzL4FkkTxewQRXNUnk6QnZ3Zi929sKAyv6cHCJK0r3p\n" + + "JQj89gjkcHFt4Wsqzo9cRS/39ynAiCBoPqdOdCiy6J1AhKjMAVjrx0U597QUMKXj\n" + + "jQvxpsLptqnn6kEX0VQzHqrChCbYogCHGVzyOEM8EA4KK8byAf2ZwUE34FqcSYjb\n" + + "XtX2Kl+NsNGEBMTiqNEE82w+HmuRM5XYxG9+3EnCuT5O5b4WWqzsvYHAXEzgu+K0\n" + + "ghe4Wail7rFP1Ho046GZCwUzi+U518bek8liQ9qiqS1L6oVa8dnQf7QDImDBIb5F\n" + + "+2IJmU/NPAJwTNAhK3mBAgMBAAGjfDB6MB8GA1UdIwQYMBaAFOR9X9FclYYILAWu\n" + + "vnW2ZafZXahmMB0GA1UdDgQWBBR73RA7SuDI3USFTog8WovNmSKTrzAOBgNVHQ8B\n" + + "Af8EBAMCAQYwFwYDVR0gBBAwDjAMBgpghkgBZQMCATABMA8GA1UdEwEB/wQFMAMB\n" + + "Af8wDQYJKoZIhvcNAQELBQADggEBAWS/T/8EU0O0tLjvTs5hWudZV+co6/NMpRBk\n" + + "gUjCI8VuNjpi/bmhLuNioJ3tCgLWlZ4Lhd9fLyOvktEo5HtJ0HNedz1Nq6+L4S+u\n" + + "h8yYAIXSawnnyZLof8p67U4Z0hz7typr+a9FLpbkvOi6KUykbEgNOwES0+2PZLlf\n" + + "0O3/I4JLkA7w0JXQi6CyOgVlRxF6fxw4O3Z/C+u560TndrUaISdyugt9a00gTmZc\n" + + "9cQpAfZUn6WS0xp4D+xQ1h1l8BU0nXR32uODwxTh4PHh6sjZhY4pWrwbRgBjKkzI\n" + + "iqEDzQlzqYwtPjIntlbAkwC4KM1pFaMwZU+WJ79rrPJGMGWFF3Y=\n" + + "-----END CERTIFICATE-----\n" + + val trustList = listOf(X509Certificate.decodeFromPem(trustAnchorPem).getOrThrow()) + val leaf = X509Certificate.decodeFromPem(testCertPem).getOrThrow() + + leaf.isTrustedBy(trustList).isSuccess shouldBe false + } + + "Invalid notBefore date" { + val testCertPem = "-----BEGIN CERTIFICATE-----\n" + + "MIIDijCCAnKgAwIBAgIBBDANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJVUzEf\n" + + "MB0GA1UEChMWVGVzdCBDZXJ0aWZpY2F0ZXMgMjAxMTEVMBMGA1UEAxMMVHJ1c3Qg\n" + + "QW5jaG9yMB4XDTQ3MDEwMTEyMDEwMFoXDTQ5MDEwMTEyMDEwMFowTjELMAkGA1UE\n" + + "BhMCVVMxHzAdBgNVBAoTFlRlc3QgQ2VydGlmaWNhdGVzIDIwMTExHjAcBgNVBAMT\n" + + "FUJhZCBub3RCZWZvcmUgRGF0ZSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC\n" + + "AQoCggEBAKdTl1qhx5hGD+CvPHQU/pDSJCVnLWeXmdblHoJ746b/bW3/GkXFSUPl\n" + + "1yT36yl6CZJzUJqOYzFkSE3aN2vDcrjviJOAInET39JOxLTkc7J8DxCpz13PmliN\n" + + "KpQl5p3fY3Lll8UumG/5mZsdphQSp2gIN6w68nJKS6Nmad46or/5l1qsAteEjIGx\n" + + "a26CC6tV5yEqchk1Htsd4hJz7xUi7vijBM987pOidUjCYNltpZYQYvdbGIjl2LnX\n" + + "ILVLy2B7Sska+bMVllQM6d932/mzFUxCXCR7eow5ZKo3dPAKOuwTnjTAR3MHfCij\n" + + "/mRVgxSBDh017j55dVB16y0Si9flCfkCAwEAAaN8MHowHwYDVR0jBBgwFoAU5H1f\n" + + "0VyVhggsBa6+dbZlp9ldqGYwHQYDVR0OBBYEFGM+vBqe+6HyWaEvS5X+5t5WuIZA\n" + + "MA4GA1UdDwEB/wQEAwIBBjAXBgNVHSAEEDAOMAwGCmCGSAFlAwIBMAEwDwYDVR0T\n" + + "AQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAtkgaLAbOwuudAqkh/5xJw8ur\n" + + "RsA3e1joOqVXy3iP5Uj8o663gzdoBl+sIyDGntdx0h5GjR4QM/SWPlz5yxFrExe/\n" + + "AaoxXHr77fYZfkgGBCLblxo3wb0iNpKz5OKmb4qtwEOpHygOpSSiV5e2wZDjhN1q\n" + + "yR3v2lR5L2exD+k4l2Td/0w4uCpom62k+sWY36/h/zKiWFWhnIWqpHYyYOGhYzTM\n" + + "EtJNWj6H0EWEoB1YNsNZYT3f2w4jOFa7oxfiqFS9kzXIjenc+MIt9uU6+oLFjdzt\n" + + "jVCxa181mRD3+OiQw9SDtTZXEwPQmp0jj7B5bLGSKK477cAIX1uqxE7jyO8t2g==\n" + + "-----END CERTIFICATE-----\n" + + val trustList = listOf(X509Certificate.decodeFromPem(trustAnchorPem).getOrThrow()) + val leaf = X509Certificate.decodeFromPem(testCertPem).getOrThrow() + + leaf.isTrustedBy(trustList).isSuccess shouldBe false + } + + "invalid name chaining" { + val taPem = "-----BEGIN CERTIFICATE-----\n" + + "MIIDfDCCAmSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJVUzEf\n" + + "MB0GA1UEChMWVGVzdCBDZXJ0aWZpY2F0ZXMgMjAxMTEVMBMGA1UEAxMMVHJ1c3Qg\n" + + "QW5jaG9yMB4XDTEwMDEwMTA4MzAwMFoXDTMwMTIzMTA4MzAwMFowQDELMAkGA1UE\n" + + "BhMCVVMxHzAdBgNVBAoTFlRlc3QgQ2VydGlmaWNhdGVzIDIwMTExEDAOBgNVBAMT\n" + + "B0dvb2QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCQWJpHYo37\n" + + "Xfb7oJSPe+WvfTlzIG21WQ7MyMbGtK/m8mejCzR6c+f/pJhEH/OcDSMsXq8h5kXa\n" + + "BGqWK+vSwD/Pzp5OYGptXmGPcthDtAwlrafkGOS4GqIJ8+k9XGKs+vQUXJKsOk47\n" + + "RuzD6PZupq4s16xaLVqYbUC26UcY08GpnoLNHJZS/EmXw1ZZ3d4YZjNlpIpWFNHn\n" + + "UGmdiGKXUPX/9H0fVjIAaQwjnGAbpgyCumWgzIwPpX+ElFOUr3z7BoVnFKhIXze+\n" + + "VmQGSWxZxvWDUN90Ul0tLEpLgk3OVxUB4VUGuf15OJOpgo1xibINPmWt14Vda2N9\n" + + "yrNKloJGZNqLAgMBAAGjfDB6MB8GA1UdIwQYMBaAFOR9X9FclYYILAWuvnW2ZafZ\n" + + "XahmMB0GA1UdDgQWBBRYAYQkG7wrUpRKPaUQchRR9a86yTAOBgNVHQ8BAf8EBAMC\n" + + "AQYwFwYDVR0gBBAwDjAMBgpghkgBZQMCATABMA8GA1UdEwEB/wQFMAMBAf8wDQYJ\n" + + "KoZIhvcNAQELBQADggEBADWHlxbmdTXNwBL/llwhQqwnazK7CC2WsXBBqgNPWj7m\n" + + "tvQ+aLG8/50Qc2Sun7o2VnwF9D18UUe8Gj3uPUYH+oSI1vDdyKcjmMbKRU4rk0eo\n" + + "3UHNDXwqIVc9CQS9smyV+x1HCwL4TTrq+LXLKx/qVij0Yqk+UJfAtrg2jnYKXsCu\n" + + "FMBQQnWCGrwa1g1TphRp/RmYHnMynYFmZrXtzFz+U9XEA7C+gPq4kqDI/iVfIT1s\n" + + "6lBtdB50lrDVwl2oYfAvW/6sC2se2QleZidUmrziVNP4oEeXINokU6T6p//HM1FG\n" + + "QYw2jOvpKcKtWCSAnegEbgsGYzATKjmPJPJ0npHFqzM=\n" + + "-----END CERTIFICATE-----" + + val testCertPem = "-----BEGIN CERTIFICATE-----\n" + + "MIIDjjCCAnagAwIBAgIBCTANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJVUzEf\n" + + "MB0GA1UEChMWVGVzdCBDZXJ0aWZpY2F0ZXMgMjAxMTEVMBMGA1UEAxMMR29vZCBD\n" + + "QSBSb290MB4XDTEwMDEwMTA4MzAwMFoXDTMwMTIzMTA4MzAwMFowYzELMAkGA1UE\n" + + "BhMCVVMxHzAdBgNVBAoTFlRlc3QgQ2VydGlmaWNhdGVzIDIwMTExMzAxBgNVBAMT\n" + + "KkludmFsaWQgTmFtZSBDaGFpbmluZyBFRSBDZXJ0aWZpY2F0ZSBUZXN0MTCCASIw\n" + + "DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL+nEW5gQmCvT4PQ4bfEwb8YmHX2\n" + + "bhQjlGRTHO894s1c8ntn8sOGipmZujpyWKEnuLYYXnrx/8d6EaQ5iHWc2STa5xO2\n" + + "/FYakp8YF7+wGIrvAKI2gXIaIFzFC6BBtZiDBb9esrLPA3tiu6u5F9WBsGWuA1TQ\n" + + "jKqaTll9i5WvnXY8Fq4JbfHOeh9SCJKnyLtY/o6QqfJu4IvGIy3SVMUOpy35ZR6O\n" + + "Hdy4JXBISnOe44NDd27PQNnkb7VlcvspL873wQSp5YJKW5tvoPMtCGegEssZIGGN\n" + + "lN9bNTzeXAB+BfwtYoqP0Ej769uC6863UgGeWztLxe5YlvyS7CXaMmNdyosCAwEA\n" + + "AaNrMGkwHwYDVR0jBBgwFoAUWAGEJBu8K1KUSj2lEHIUUfWvOskwHQYDVR0OBBYE\n" + + "FBrADjt6tfm3fhTgKkOCvTN+XnXkMA4GA1UdDwEB/wQEAwIE8DAXBgNVHSAEEDAO\n" + + "MAwGCmCGSAFlAwIBMAEwDQYJKoZIhvcNAQELBQADggEBAHmYLicHjD0aYoBwgy4J\n" + + "fY9KHQVyP3enwjKFrzxt3lLh0+hvUeJG49oxt3lRPjU5d7GJYSzB9hmbECnD8hYf\n" + + "/NVRIa6UnLTK/blp3yc0fgYrZSFgzU77f6i51hxScIwprI/rNKUKjwYwPBQ6XZoS\n" + + "Lb5nZkbFoSaPjorD7/rTBp1A0vPt9QNn8wBph59HSKyUnHm256Y5kv67Knkt5W11\n" + + "tazp3HAc2nsE21MClKg4S4IHQYCva6p3KhViH5Wntu0AaG6Cl3eVbMDe+rzu2i7a\n" + + "SsP+m1IhK/geXvUOHGkKQd0ESsNaHakpy5mQXpYbxxpem1NCcsbPPlipMa0AN5p/\n" + + "ksU=\n" + + "-----END CERTIFICATE-----" + + val trustList = listOf( + X509Certificate.decodeFromPem(trustAnchorPem).getOrThrow(), + X509Certificate.decodeFromPem(taPem).getOrThrow() + ) + val leaf = X509Certificate.decodeFromPem(testCertPem).getOrThrow() + + val result = leaf.isTrustedBy(trustList) + result.isSuccess shouldBe false + result.exceptionOrNull()?.message shouldBe "No valid trust anchor could verify certificate" + } +} \ No newline at end of file