From 00d8b11dbe987c702d884486d13b97cfa2ce2756 Mon Sep 17 00:00:00 2001 From: John Melati Date: Sun, 26 Jan 2025 18:10:01 +0100 Subject: [PATCH] feat: implement trust mark verify in js client --- .../oid/fed/client/FederationClient.js.kt | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/modules/openid-federation-client/src/jsMain/kotlin/com/sphereon/oid/fed/client/FederationClient.js.kt b/modules/openid-federation-client/src/jsMain/kotlin/com/sphereon/oid/fed/client/FederationClient.js.kt index 96954d7c..b983d216 100644 --- a/modules/openid-federation-client/src/jsMain/kotlin/com/sphereon/oid/fed/client/FederationClient.js.kt +++ b/modules/openid-federation-client/src/jsMain/kotlin/com/sphereon/oid/fed/client/FederationClient.js.kt @@ -5,10 +5,8 @@ import com.sphereon.oid.fed.client.fetch.FetchServiceAdapter import com.sphereon.oid.fed.client.fetch.fetchService import com.sphereon.oid.fed.client.services.entityConfigurationStatementService.EntityConfigurationStatementService import com.sphereon.oid.fed.client.services.trustChainService.TrustChainService -import com.sphereon.oid.fed.client.types.ICryptoService -import com.sphereon.oid.fed.client.types.IFetchService -import com.sphereon.oid.fed.client.types.TrustChainResolveResponse -import com.sphereon.oid.fed.client.types.VerifyTrustChainResponse +import com.sphereon.oid.fed.client.services.trustMarkService.TrustMarkService +import com.sphereon.oid.fed.client.types.* import com.sphereon.oid.fed.openapi.models.EntityConfigurationStatementDTO import com.sphereon.oid.fed.openapi.models.Jwk import kotlinx.coroutines.CoroutineScope @@ -50,6 +48,7 @@ class FederationClientJS( private val entityService = EntityConfigurationStatementService(context) private val trustChainService = TrustChainService(context) + private val trustMarkService = TrustMarkService(context) private val scope = CoroutineScope(SupervisorJob() + Dispatchers.Default) @JsName("resolveTrustChain") @@ -86,4 +85,19 @@ class FederationClientJS( entityService.fetchEntityConfigurationStatement(entityIdentifier) } } + + @JsName("verifyTrustMark") + fun verifyTrustMarkJS( + trustMark: String, + trustAnchorConfig: EntityConfigurationStatementDTO, + currentTime: Int? = null + ): Promise { + return scope.promise { + trustMarkService.validateTrustMark( + trustMark, + trustAnchorConfig, + currentTime?.toLong() + ) + } + } } \ No newline at end of file