Skip to content

Commit bf5566d

Browse files
committed
Enable sdjwt filter
1 parent 9cdf0b5 commit bf5566d

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

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

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

1919
import eu.europa.ec.eudi.openid4vci.CredentialConfiguration
2020
import eu.europa.ec.eudi.openid4vci.MsoMdocCredential
21+
import eu.europa.ec.eudi.openid4vci.SdJwtVcCredential
2122
import kotlin.reflect.KClass
2223

2324
/**
@@ -51,14 +52,22 @@ internal fun interface CredentialConfigurationFilter {
5152
internal val MsoMdocFormatFilter: CredentialConfigurationFilter =
5253
FormatFilter(MsoMdocCredential::class)
5354

55+
/**
56+
* Filter for [CredentialConfiguration] instances for sd-jwt format
57+
*/
58+
@JvmSynthetic
59+
internal val SdJwtFormatFilter: CredentialConfigurationFilter =
60+
FormatFilter(SdJwtVcCredential::class)
61+
62+
5463
/**
5564
* Filter for [CredentialConfiguration] instances based on the document type.
5665
* @param docType document type
5766
* @return [CredentialConfigurationFilter] instance
5867
*/
5968
@JvmSynthetic
6069
internal fun DocTypeFilter(docType: String): CredentialConfigurationFilter =
61-
Compose(MsoMdocFormatFilter, CredentialConfigurationFilter { conf -> conf.docType == docType })
70+
Compose(MsoMdocFormatFilter, SdJwtFormatFilter, CredentialConfigurationFilter { conf -> conf.docType == docType })
6271

6372
/**
6473
* Filter for [CredentialConfiguration] instances based on the proof type.

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import eu.europa.ec.eudi.openid4vci.CredentialConfiguration
2020
import eu.europa.ec.eudi.openid4vci.CredentialIssuerMetadata
2121
import eu.europa.ec.eudi.openid4vci.CredentialOffer
2222
import eu.europa.ec.eudi.openid4vci.MsoMdocCredential
23+
import eu.europa.ec.eudi.openid4vci.SdJwtVcCredential
2324

2425
/**
2526
* Default implementation of [Offer].
@@ -61,5 +62,6 @@ internal val CredentialConfiguration.name: String
6162
internal val CredentialConfiguration.docType: String
6263
@JvmSynthetic get() = when (this) {
6364
is MsoMdocCredential -> docType
65+
is SdJwtVcCredential -> docType
6466
else -> "unknown"
6567
}

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import eu.europa.ec.eudi.wallet.issue.openid4vci.CredentialConfigurationFilter.C
2929
import eu.europa.ec.eudi.wallet.issue.openid4vci.CredentialConfigurationFilter.Companion.DocTypeFilter
3030
import eu.europa.ec.eudi.wallet.issue.openid4vci.CredentialConfigurationFilter.Companion.MsoMdocFormatFilter
3131
import eu.europa.ec.eudi.wallet.issue.openid4vci.CredentialConfigurationFilter.Companion.ProofTypeFilter
32+
import eu.europa.ec.eudi.wallet.issue.openid4vci.CredentialConfigurationFilter.Companion.SdJwtFormatFilter
3233
import eu.europa.ec.eudi.wallet.issue.openid4vci.IssueEvent.Companion.failure
3334
import eu.europa.ec.eudi.wallet.issue.openid4vci.ProofSigner.UserAuthStatus
3435
import kotlinx.coroutines.*
@@ -88,7 +89,6 @@ internal class DefaultOpenId4VciManager(
8889

8990
val offer = DefaultOffer(credentialOffer, credentialConfigurationFilter)
9091
doIssueDocumentByOffer(offer, config, authorizationHandler, listener)
91-
9292
} catch (e: Throwable) {
9393
Log.e(TAG, "issueDocumentByDocType failed", e)
9494
listener(failure(e))
@@ -130,6 +130,7 @@ internal class DefaultOpenId4VciManager(
130130
DefaultOffer(
131131
it, Compose(
132132
MsoMdocFormatFilter,
133+
SdJwtFormatFilter,
133134
ProofTypeFilter(config.proofTypes)
134135
)
135136
)
@@ -151,7 +152,11 @@ internal class DefaultOpenId4VciManager(
151152
launch(onResolvedOffer.wrap(executor)) { coroutineScope, callback ->
152153
try {
153154
val credentialOffer = CredentialOfferRequestResolver().resolve(offerUri).getOrThrow()
154-
val offer = DefaultOffer(credentialOffer, Compose(MsoMdocFormatFilter, ProofTypeFilter(config.proofTypes)))
155+
val offer = DefaultOffer(credentialOffer.also {
156+
Log.d(
157+
"DefaultOpenId4VciManager",
158+
"DefaultOpenId4VciManager.resolveDocumentOffer: $it"
159+
) }, Compose(MsoMdocFormatFilter, SdJwtFormatFilter, ProofTypeFilter(config.proofTypes)))
155160
offerUriCache[offerUri] = offer
156161
Log.d(TAG, "OfferUri $offerUri resolved")
157162
callback(OfferResult.Success(offer))

0 commit comments

Comments
 (0)