Skip to content

Commit c12b5da

Browse files
sraptis-scyvkanellopoulos
authored andcommitted
SecureAreaDpopSigner updated with KeyUnlockDataProvider - Unit tests updated dpopConfig instead of dpopUsage
1 parent e996a84 commit c12b5da

3 files changed

Lines changed: 12 additions & 4 deletions

File tree

wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/dpop/SecureAreaDpopSigner.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@ package eu.europa.ec.eudi.wallet.issue.openid4vci.dpop
22

33
import com.nimbusds.jose.jwk.JWK
44
import eu.europa.ec.eudi.openid4vci.SignOperation
5+
import eu.europa.ec.eudi.wallet.internal.asProvider
56
import eu.europa.ec.eudi.wallet.internal.d
67
import eu.europa.ec.eudi.wallet.issue.openid4vci.javaAlgorithm
78
import eu.europa.ec.eudi.wallet.logging.Logger
89
import kotlinx.coroutines.runBlocking
10+
import kotlinx.coroutines.withContext
911
import org.multipaz.crypto.Algorithm
1012
import org.multipaz.securearea.KeyInfo
13+
import org.multipaz.securearea.UnlockReason
1114

1215
/**
1316
* Secure area-based implementation of [DPopSigner] for OpenID4VCI credential issuance.
@@ -178,7 +181,10 @@ class SecureAreaDpopSigner(
178181
return SignOperation(
179182
function = { input ->
180183
val keyUnlockData = config.keyUnlockDataProvider(keyInfo.alias, secureArea)
181-
secureArea.sign(keyInfo.alias, input, keyUnlockData).toDerEncoded()
184+
val provider = keyUnlockData.asProvider()
185+
withContext(provider) {
186+
secureArea.sign(keyInfo.alias, input, UnlockReason.Unspecified).toDerEncoded()
187+
}
182188
},
183189
publicMaterial = jwk
184190
)

wallet-core/src/test/java/eu/europa/ec/eudi/wallet/issue/openid4vci/AuthorizationHandlerIntegrationTest.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package eu.europa.ec.eudi.wallet.issue.openid4vci
1818

1919
import android.content.Context
2020
import eu.europa.ec.eudi.wallet.document.DocumentManager
21+
import eu.europa.ec.eudi.wallet.issue.openid4vci.dpop.DPopConfig
2122
import eu.europa.ec.eudi.wallet.logging.Logger
2223
import eu.europa.ec.eudi.wallet.provider.WalletKeyManager
2324
import io.mockk.mockk
@@ -98,14 +99,15 @@ class AuthorizationHandlerIntegrationTest {
9899
withClientAuthenticationType(OpenId4VciManager.ClientAuthenticationType.None("wallet-client"))
99100
withAuthFlowRedirectionURI("eudi-wallet://oauth-callback")
100101
withAuthorizationHandler(customHandler)
101-
withDPoPUsage(OpenId4VciManager.Config.DPoPUsage.Disabled)
102+
withDPopConfig(DPopConfig.Disabled)
103+
// withDPoPUsage(OpenId4VciManager.Config.DPoPUsage.Disabled)
102104
withParUsage(OpenId4VciManager.Config.ParUsage.REQUIRED)
103105
}
104106

105107
assertEquals("https://issuer.example.com", config.issuerUrl)
106108
assertEquals("eudi-wallet://oauth-callback", config.authFlowRedirectionURI)
107109
assertEquals(customHandler, config.authorizationHandler)
108-
assertEquals(OpenId4VciManager.Config.DPoPUsage.Disabled, config.dPoPUsage)
110+
assertEquals(DPopConfig.Disabled, config.dpopConfig)
109111
assertEquals(OpenId4VciManager.Config.ParUsage.REQUIRED, config.parUsage)
110112
}
111113

wallet-core/src/test/java/eu/europa/ec/eudi/wallet/issue/openid4vci/OpenId4VciManagerBuilderTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class OpenId4VciManagerBuilderTest {
7777
issuerUrl = "https://issuer.example.com",
7878
clientAuthenticationType = OpenId4VciManager.ClientAuthenticationType.AttestationBased,
7979
authFlowRedirectionURI = "app://redirect",
80-
dPoPUsage = OpenId4VciManager.Config.DPoPUsage.IfSupported(),
80+
dpopConfig = DPopConfig.Default,
8181
parUsage = OpenId4VciManager.Config.ParUsage.IF_SUPPORTED,
8282
)
8383

0 commit comments

Comments
 (0)