diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-offer/-default-offer.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-offer/-default-offer.md
deleted file mode 100644
index 037651c3..00000000
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-offer/-default-offer.md
+++ /dev/null
@@ -1,6 +0,0 @@
-//[wallet-core](../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../index.md)/[DefaultOffer](index.md)/[DefaultOffer](-default-offer.md)
-
-# DefaultOffer
-
-[androidJvm]\
-constructor(credentialOffer: CredentialOffer, filterConfigurations: [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<CredentialConfigurationFilter> = listOf(FormatFilter, ProofTypeFilter))
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-offer/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-offer/index.md
deleted file mode 100644
index 49ba4c02..00000000
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-offer/index.md
+++ /dev/null
@@ -1,19 +0,0 @@
-//[wallet-core](../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../index.md)/[DefaultOffer](index.md)
-
-# DefaultOffer
-
-[androidJvm]\
-data class [DefaultOffer](index.md)(credentialOffer: CredentialOffer, filterConfigurations: [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<CredentialConfigurationFilter> = listOf(FormatFilter, ProofTypeFilter)) : [Offer](../-offer/index.md)
-
-## Constructors
-
-| | |
-|---|---|
-| [DefaultOffer](-default-offer.md) | [androidJvm]
constructor(credentialOffer: CredentialOffer, filterConfigurations: [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<CredentialConfigurationFilter> = listOf(FormatFilter, ProofTypeFilter)) |
-
-## Properties
-
-| Name | Summary |
-|---|---|
-| [issuerName](issuer-name.md) | [androidJvm]
open override val [issuerName](issuer-name.md): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
the name of the issuer |
-| [offeredDocuments](offered-documents.md) | [androidJvm]
open override val [offeredDocuments](offered-documents.md): [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[Offer.OfferedDocument](../-offer/-offered-document/index.md)>
the items to be issued |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-offer/issuer-name.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-offer/issuer-name.md
deleted file mode 100644
index 6251ec23..00000000
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-offer/issuer-name.md
+++ /dev/null
@@ -1,6 +0,0 @@
-//[wallet-core](../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../index.md)/[DefaultOffer](index.md)/[issuerName](issuer-name.md)
-
-# issuerName
-
-[androidJvm]\
-open override val [issuerName](issuer-name.md): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-offer/offered-documents.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-offer/offered-documents.md
deleted file mode 100644
index 2dc0d5ce..00000000
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-offer/offered-documents.md
+++ /dev/null
@@ -1,6 +0,0 @@
-//[wallet-core](../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../index.md)/[DefaultOffer](index.md)/[offeredDocuments](offered-documents.md)
-
-# offeredDocuments
-
-[androidJvm]\
-open override val [offeredDocuments](offered-documents.md): [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[Offer.OfferedDocument](../-offer/-offered-document/index.md)>
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/-companion/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/-companion/index.md
deleted file mode 100644
index 32bcb69d..00000000
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/-companion/index.md
+++ /dev/null
@@ -1,6 +0,0 @@
-//[wallet-core](../../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../../index.md)/[DefaultOpenId4VciManager](../index.md)/[Companion](index.md)
-
-# Companion
-
-[androidJvm]\
-object [Companion](index.md)
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/-default-open-id4-vci-manager.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/-default-open-id4-vci-manager.md
deleted file mode 100644
index 34d7f29c..00000000
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/-default-open-id4-vci-manager.md
+++ /dev/null
@@ -1,6 +0,0 @@
-//[wallet-core](../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../index.md)/[DefaultOpenId4VciManager](index.md)/[DefaultOpenId4VciManager](-default-open-id4-vci-manager.md)
-
-# DefaultOpenId4VciManager
-
-[androidJvm]\
-constructor(context: [Context](https://developer.android.com/reference/kotlin/android/content/Context.html), documentManager: DocumentManager, config: [OpenId4VciManager.Config](../-open-id4-vci-manager/-config/index.md))
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/config.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/config.md
deleted file mode 100644
index b8794022..00000000
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/config.md
+++ /dev/null
@@ -1,6 +0,0 @@
-//[wallet-core](../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../index.md)/[DefaultOpenId4VciManager](index.md)/[config](config.md)
-
-# config
-
-[androidJvm]\
-var [config](config.md): [OpenId4VciManager.Config](../-open-id4-vci-manager/-config/index.md)
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/index.md
deleted file mode 100644
index b79c4ed0..00000000
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/index.md
+++ /dev/null
@@ -1,34 +0,0 @@
-//[wallet-core](../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../index.md)/[DefaultOpenId4VciManager](index.md)
-
-# DefaultOpenId4VciManager
-
-[androidJvm]\
-class [DefaultOpenId4VciManager](index.md)(context: [Context](https://developer.android.com/reference/kotlin/android/content/Context.html), documentManager: DocumentManager, var config: [OpenId4VciManager.Config](../-open-id4-vci-manager/-config/index.md)) : [OpenId4VciManager](../-open-id4-vci-manager/index.md)
-
-## Constructors
-
-| | |
-|---|---|
-| [DefaultOpenId4VciManager](-default-open-id4-vci-manager.md) | [androidJvm]
constructor(context: [Context](https://developer.android.com/reference/kotlin/android/content/Context.html), documentManager: DocumentManager, config: [OpenId4VciManager.Config](../-open-id4-vci-manager/-config/index.md)) |
-
-## Types
-
-| Name | Summary |
-|---|---|
-| [Companion](-companion/index.md) | [androidJvm]
object [Companion](-companion/index.md) |
-
-## Functions
-
-| Name | Summary |
-|-----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [issueDocumentByDocType](issue-document-by-doc-type.md) | [androidJvm]
open override fun [issueDocumentByDocType](issue-document-by-doc-type.md)(docType: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), executor: [Executor](https://developer.android.com/reference/kotlin/java/util/concurrent/Executor.html)?, onIssueEvent: [OpenId4VciManager.OnIssueEvent](../-open-id4-vci-manager/-on-issue-event/index.md))
Issue a document using a document type |
-| [issueDocumentByOffer](issue-document-by-offer.md) | [androidJvm]
open override fun [issueDocumentByOffer](issue-document-by-offer.md)(offer: [Offer](../-offer/index.md), executor: [Executor](https://developer.android.com/reference/kotlin/java/util/concurrent/Executor.html)?, onIssueEvent: [OpenId4VciManager.OnIssueEvent](../-open-id4-vci-manager/-on-issue-event/index.md))
Issue a document using an offer |
-| [issueDocumentByOfferUri](issue-document-by-offer-uri.md) | [androidJvm]
open override fun [issueDocumentByOfferUri](issue-document-by-offer-uri.md)(offerUri: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), executor: [Executor](https://developer.android.com/reference/kotlin/java/util/concurrent/Executor.html)?, onIssueEvent: [OpenId4VciManager.OnIssueEvent](../-open-id4-vci-manager/-on-issue-event/index.md))
Issue a document using an offer URI |
-| [resolveDocumentOffer](resolve-document-offer.md) | [androidJvm]
open override fun [resolveDocumentOffer](resolve-document-offer.md)(offerUri: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), executor: [Executor](https://developer.android.com/reference/kotlin/java/util/concurrent/Executor.html)?, onResolvedOffer: [OpenId4VciManager.OnResolvedOffer](../-open-id4-vci-manager/-on-resolved-offer/index.md))
Resolve an offer using OpenId4Vci protocol |
-| [resumeWithAuthorization](resume-with-authorization.md) | [androidJvm]
open override fun [resumeWithAuthorization](resume-with-authorization.md)(intent: [Intent](https://developer.android.com/reference/kotlin/android/content/Intent.html))
open override fun [resumeWithAuthorization](resume-with-authorization.md)(uri: [Uri](https://developer.android.com/reference/kotlin/android/net/Uri.html))
open override fun [resumeWithAuthorization](resume-with-authorization.md)(uri: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html))
Resume the authorization flow after the user has been redirected back to the app |
-
-## Properties
-
-| Name | Summary |
-|---|---|
-| [config](config.md) | [androidJvm]
var [config](config.md): [OpenId4VciManager.Config](../-open-id4-vci-manager/-config/index.md) |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/issue-document-by-doc-type.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/issue-document-by-doc-type.md
deleted file mode 100644
index 8b136f6a..00000000
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/issue-document-by-doc-type.md
+++ /dev/null
@@ -1,28 +0,0 @@
-//[wallet-core](../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../index.md)/[DefaultOpenId4VciManager](index.md)/[issueDocumentByDocType](issue-document-by-doc-type.md)
-
-# issueDocumentByDocType
-
-[androidJvm]\
-open override fun [issueDocumentByDocType](issue-document-by-doc-type.md)(
-docType: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html),
-executor: [Executor](https://developer.android.com/reference/kotlin/java/util/concurrent/Executor.html)?,
-onIssueEvent: [OpenId4VciManager.OnIssueEvent](../-open-id4-vci-manager/-on-issue-event/index.md))
-
-Issue a document using a document type
-
-#### Parameters
-
-androidJvm
-
-| | |
-|---|---|
-| docType | the document type to issue |
-| executor | the executor defines the thread on which the callback will be called. If null, the callback will be called on the main thread |
-| onIssueEvent | the callback to be called when the document is issued |
-
-#### See also
-
-| | |
-|---|---|
-| [IssueEvent](../-issue-event/index.md) | on how to handle the result |
-| [IssueEvent.DocumentRequiresUserAuth](../-issue-event/-document-requires-user-auth/index.md) | on how to handle user authentication |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/issue-document-by-offer-uri.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/issue-document-by-offer-uri.md
deleted file mode 100644
index 9427fd49..00000000
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/issue-document-by-offer-uri.md
+++ /dev/null
@@ -1,28 +0,0 @@
-//[wallet-core](../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../index.md)/[DefaultOpenId4VciManager](index.md)/[issueDocumentByOfferUri](issue-document-by-offer-uri.md)
-
-# issueDocumentByOfferUri
-
-[androidJvm]\
-open override fun [issueDocumentByOfferUri](issue-document-by-offer-uri.md)(
-offerUri: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html),
-executor: [Executor](https://developer.android.com/reference/kotlin/java/util/concurrent/Executor.html)?,
-onIssueEvent: [OpenId4VciManager.OnIssueEvent](../-open-id4-vci-manager/-on-issue-event/index.md))
-
-Issue a document using an offer URI
-
-#### Parameters
-
-androidJvm
-
-| | |
-|---|---|
-| offerUri | the offer URI |
-| executor | the executor defines the thread on which the callback will be called. If null, the callback will be called on the main thread |
-| onIssueEvent | the callback to be called when the document is issued. This callback may be called multiple times, each for every document in the offer |
-
-#### See also
-
-| | |
-|---|---|
-| [IssueEvent](../-issue-event/index.md) | on how to handle the result |
-| [IssueEvent.DocumentRequiresUserAuth](../-issue-event/-document-requires-user-auth/index.md) | on how to handle user authentication |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/issue-document-by-offer.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/issue-document-by-offer.md
deleted file mode 100644
index c4743df3..00000000
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/issue-document-by-offer.md
+++ /dev/null
@@ -1,27 +0,0 @@
-//[wallet-core](../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../index.md)/[DefaultOpenId4VciManager](index.md)/[issueDocumentByOffer](issue-document-by-offer.md)
-
-# issueDocumentByOffer
-
-[androidJvm]\
-open override fun [issueDocumentByOffer](issue-document-by-offer.md)(offer: [Offer](../-offer/index.md),
-executor: [Executor](https://developer.android.com/reference/kotlin/java/util/concurrent/Executor.html)?,
-onIssueEvent: [OpenId4VciManager.OnIssueEvent](../-open-id4-vci-manager/-on-issue-event/index.md))
-
-Issue a document using an offer
-
-#### Parameters
-
-androidJvm
-
-| | |
-|---|---|
-| offer | the offer to issue |
-| executor | the executor defines the thread on which the callback will be called. If null, the callback will be called on the main thread |
-| onIssueEvent | the callback to be called when the document is issued. This callback may be called multiple times, each for every document in the offer |
-
-#### See also
-
-| | |
-|---|---|
-| [IssueEvent](../-issue-event/index.md) | on how to handle the result |
-| [IssueEvent.DocumentRequiresUserAuth](../-issue-event/-document-requires-user-auth/index.md) | on how to handle user authentication |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/resolve-document-offer.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/resolve-document-offer.md
deleted file mode 100644
index cdb56407..00000000
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/resolve-document-offer.md
+++ /dev/null
@@ -1,18 +0,0 @@
-//[wallet-core](../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../index.md)/[DefaultOpenId4VciManager](index.md)/[resolveDocumentOffer](resolve-document-offer.md)
-
-# resolveDocumentOffer
-
-[androidJvm]\
-open override fun [resolveDocumentOffer](resolve-document-offer.md)(offerUri: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), executor: [Executor](https://developer.android.com/reference/kotlin/java/util/concurrent/Executor.html)?, onResolvedOffer: [OpenId4VciManager.OnResolvedOffer](../-open-id4-vci-manager/-on-resolved-offer/index.md))
-
-Resolve an offer using OpenId4Vci protocol
-
-#### Parameters
-
-androidJvm
-
-| | |
-|---|---|
-| offerUri | the offer URI |
-| executor | the executor defines the thread on which the callback will be called. If null, the callback will be called on the main thread |
-| onResolvedOffer | the callback to be called when the offer is resolved |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/resume-with-authorization.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/resume-with-authorization.md
deleted file mode 100644
index 2f4e7210..00000000
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/resume-with-authorization.md
+++ /dev/null
@@ -1,43 +0,0 @@
-//[wallet-core](../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../index.md)/[DefaultOpenId4VciManager](index.md)/[resumeWithAuthorization](resume-with-authorization.md)
-
-# resumeWithAuthorization
-
-[androidJvm]\
-open override fun [resumeWithAuthorization](resume-with-authorization.md)(intent: [Intent](https://developer.android.com/reference/kotlin/android/content/Intent.html))
-
-Resume the authorization flow after the user has been redirected back to the app
-
-#### Parameters
-
-androidJvm
-
-| | |
-|---|---|
-| intent | the intent that contains the authorization code |
-
-#### Throws
-
-| | |
-|---|---|
-| [IllegalStateException](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-illegal-state-exception/index.html) | if no authorization request to resume |
-
-[androidJvm]\
-open override fun [resumeWithAuthorization](resume-with-authorization.md)(uri: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html))
-
-open override fun [resumeWithAuthorization](resume-with-authorization.md)(uri: [Uri](https://developer.android.com/reference/kotlin/android/net/Uri.html))
-
-Resume the authorization flow after the user has been redirected back to the app
-
-#### Parameters
-
-androidJvm
-
-| | |
-|---|---|
-| uri | the uri that contains the authorization code |
-
-#### Throws
-
-| | |
-|---|---|
-| [IllegalStateException](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-illegal-state-exception/index.html) | if no authorization request to resume |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/index.md
index fa8c4fe2..2d54156e 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/index.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/index.md
@@ -2,16 +2,11 @@
# Offer
+[androidJvm]\
interface [Offer](index.md)
An offer of credentials to be issued.
-#### Inheritors
-
-| |
-|---|
-| [DefaultOffer](../-default-offer/index.md) |
-
## Types
| Name | Summary |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/index.md
index 837d4709..417908b6 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/index.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/index.md
@@ -34,5 +34,5 @@ Builder to create an instance of [Config](../index.md)
| [authFlowRedirectionURI](auth-flow-redirection-u-r-i.md) | [androidJvm]
var [authFlowRedirectionURI](auth-flow-redirection-u-r-i.md): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)?
the redirection URI for the authorization flow |
| [clientId](client-id.md) | [androidJvm]
var [clientId](client-id.md): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)?
the client id |
| [issuerUrl](issuer-url.md) | [androidJvm]
var [issuerUrl](issuer-url.md): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)?
the issuer url |
-| [useDPoP](use-d-po-p.md) | [androidJvm]
var [useDPoP](use-d-po-p.md): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
flag that if set will enable the use of DPoP JWT |
+| [useDPoPIfSupported](use-d-po-p-if-supported.md) | [androidJvm]
var [useDPoPIfSupported](use-d-po-p-if-supported.md): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
flag that if set will enable the use of DPoP JWT |
| [useStrongBoxIfSupported](use-strong-box-if-supported.md) | [androidJvm]
var [useStrongBoxIfSupported](use-strong-box-if-supported.md): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
use StrongBox for document keys if supported |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/use-d-po-p-if-supported.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/use-d-po-p-if-supported.md
new file mode 100644
index 00000000..3c4314a0
--- /dev/null
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/use-d-po-p-if-supported.md
@@ -0,0 +1,6 @@
+//[wallet-core](../../../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../../../index.md)/[OpenId4VciManager](../../index.md)/[Config](../index.md)/[Builder](index.md)/[useDPoPIfSupported](use-d-po-p-if-supported.md)
+
+# useDPoPIfSupported
+
+[androidJvm]\
+var [useDPoPIfSupported](use-d-po-p-if-supported.md): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/use-d-po-p.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/use-d-po-p.md
index 516a90c3..f2c90376 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/use-d-po-p.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/use-d-po-p.md
@@ -7,6 +7,3 @@ fun [useDPoP](use-d-po-p.md)(
useDPoP: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)): [OpenId4VciManager.Config.Builder](index.md)
Set the flag that if set will enable the use of DPoP JWT
-
-[androidJvm]\
-var [useDPoP](use-d-po-p.md): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-config.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-config.md
index 069f40bf..3ac83aeb 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-config.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-config.md
@@ -7,4 +7,4 @@ constructor(issuerUrl: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kot
clientId: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html),
authFlowRedirectionURI: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html),
useStrongBoxIfSupported: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html),
-useDPoP: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html))
+useDPoPIfSupported: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html))
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/index.md
index d70a6738..9cef13b3 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/index.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/index.md
@@ -8,15 +8,15 @@ issuerUrl: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/
clientId: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), val
authFlowRedirectionURI: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), val
useStrongBoxIfSupported: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html), val
-useDPoP: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html))
+useDPoPIfSupported: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html))
Configuration for the OpenId4Vci issuer
## Constructors
-| | |
-|----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [Config](-config.md) | [androidJvm]
constructor(issuerUrl: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), clientId: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), authFlowRedirectionURI: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), useStrongBoxIfSupported: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html), useDPoP: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)) |
+| | |
+|----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [Config](-config.md) | [androidJvm]
constructor(issuerUrl: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), clientId: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), authFlowRedirectionURI: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), useStrongBoxIfSupported: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html), useDPoPIfSupported: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)) |
## Types
@@ -32,5 +32,5 @@ Configuration for the OpenId4Vci issuer
| [authFlowRedirectionURI](auth-flow-redirection-u-r-i.md) | [androidJvm]
val [authFlowRedirectionURI](auth-flow-redirection-u-r-i.md): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
the redirection URI for the authorization flow |
| [clientId](client-id.md) | [androidJvm]
val [clientId](client-id.md): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
the client id |
| [issuerUrl](issuer-url.md) | [androidJvm]
val [issuerUrl](issuer-url.md): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
the issuer url |
-| [useDPoP](use-d-po-p.md) | [androidJvm]
val [useDPoP](use-d-po-p.md): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
flag that if set will enable the use of DPoP JWT |
+| [useDPoPIfSupported](use-d-po-p-if-supported.md) | [androidJvm]
val [useDPoPIfSupported](use-d-po-p-if-supported.md): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) |
| [useStrongBoxIfSupported](use-strong-box-if-supported.md) | [androidJvm]
val [useStrongBoxIfSupported](use-strong-box-if-supported.md): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
use StrongBox for document keys if supported |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/use-d-po-p-if-supported.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/use-d-po-p-if-supported.md
new file mode 100644
index 00000000..0e633372
--- /dev/null
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/use-d-po-p-if-supported.md
@@ -0,0 +1,6 @@
+//[wallet-core](../../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../../index.md)/[OpenId4VciManager](../index.md)/[Config](index.md)/[useDPoPIfSupported](use-d-po-p-if-supported.md)
+
+# useDPoPIfSupported
+
+[androidJvm]\
+val [useDPoPIfSupported](use-d-po-p-if-supported.md): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/use-d-po-p.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/use-d-po-p.md
deleted file mode 100644
index 6a367747..00000000
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/use-d-po-p.md
+++ /dev/null
@@ -1,6 +0,0 @@
-//[wallet-core](../../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../../index.md)/[OpenId4VciManager](../index.md)/[Config](index.md)/[useDPoP](use-d-po-p.md)
-
-# useDPoP
-
-[androidJvm]\
-val [useDPoP](use-d-po-p.md): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/index.md
index 8b1e8879..e1fae57d 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/index.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/index.md
@@ -12,22 +12,16 @@ OpenId4VciManager is the main entry point to issue documents using the OpenId4Vc
|---|---|
| [OpenId4VciManager.Config](-config/index.md) | for the configuration options |
-#### Inheritors
-
-| |
-|---|
-| [DefaultOpenId4VciManager](../-default-open-id4-vci-manager/index.md) |
-
## Types
-| Name | Summary |
-|------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [Builder](-builder/index.md) | [androidJvm]
class [Builder](-builder/index.md)(context: [Context](https://developer.android.com/reference/kotlin/android/content/Context.html))
Builder to create an instance of [OpenId4VciManager](index.md) |
-| [Companion](-companion/index.md) | [androidJvm]
object [Companion](-companion/index.md) |
-| [Config](-config/index.md) | [androidJvm]
data class [Config](-config/index.md)(val issuerUrl: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), val clientId: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), val authFlowRedirectionURI: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), val useStrongBoxIfSupported: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html), val useDPoP: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html))
Configuration for the OpenId4Vci issuer |
-| [OnIssueEvent](-on-issue-event/index.md) | [androidJvm]
fun interface [OnIssueEvent](-on-issue-event/index.md) : [OpenId4VciManager.OnResult](-on-result/index.md)<[IssueEvent](../-issue-event/index.md)>
Callback to be called when a document is issued |
-| [OnResolvedOffer](-on-resolved-offer/index.md) | [androidJvm]
fun interface [OnResolvedOffer](-on-resolved-offer/index.md) : [OpenId4VciManager.OnResult](-on-result/index.md)<[OfferResult](../-offer-result/index.md)>
Callback to be called when an offer is resolved |
-| [OnResult](-on-result/index.md) | [androidJvm]
fun interface [OnResult](-on-result/index.md)<[T](-on-result/index.md)> |
+| Name | Summary |
+|------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [Builder](-builder/index.md) | [androidJvm]
class [Builder](-builder/index.md)(context: [Context](https://developer.android.com/reference/kotlin/android/content/Context.html))
Builder to create an instance of [OpenId4VciManager](index.md) |
+| [Companion](-companion/index.md) | [androidJvm]
object [Companion](-companion/index.md) |
+| [Config](-config/index.md) | [androidJvm]
data class [Config](-config/index.md)(val issuerUrl: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), val clientId: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), val authFlowRedirectionURI: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), val useStrongBoxIfSupported: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html), val useDPoPIfSupported: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html))
Configuration for the OpenId4Vci issuer |
+| [OnIssueEvent](-on-issue-event/index.md) | [androidJvm]
fun interface [OnIssueEvent](-on-issue-event/index.md) : [OpenId4VciManager.OnResult](-on-result/index.md)<[IssueEvent](../-issue-event/index.md)>
Callback to be called when a document is issued |
+| [OnResolvedOffer](-on-resolved-offer/index.md) | [androidJvm]
fun interface [OnResolvedOffer](-on-resolved-offer/index.md) : [OpenId4VciManager.OnResult](-on-result/index.md)<[OfferResult](../-offer-result/index.md)>
Callback to be called when an offer is resolved |
+| [OnResult](-on-result/index.md) | [androidJvm]
fun interface [OnResult](-on-result/index.md)<[T](-on-result/index.md)> |
## Functions
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/index.md
index 6e3bd9ad..d3dfc06b 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/index.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/index.md
@@ -6,8 +6,6 @@
| Name | Summary |
|---|---|
-| [DefaultOffer](-default-offer/index.md) | [androidJvm]
data class [DefaultOffer](-default-offer/index.md)(credentialOffer: CredentialOffer, filterConfigurations: [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<CredentialConfigurationFilter> = listOf(FormatFilter, ProofTypeFilter)) : [Offer](-offer/index.md) |
-| [DefaultOpenId4VciManager](-default-open-id4-vci-manager/index.md) | [androidJvm]
class [DefaultOpenId4VciManager](-default-open-id4-vci-manager/index.md)(context: [Context](https://developer.android.com/reference/kotlin/android/content/Context.html), documentManager: DocumentManager, var config: [OpenId4VciManager.Config](-open-id4-vci-manager/-config/index.md)) : [OpenId4VciManager](-open-id4-vci-manager/index.md) |
| [IssueEvent](-issue-event/index.md) | [androidJvm]
interface [IssueEvent](-issue-event/index.md) |
| [Offer](-offer/index.md) | [androidJvm]
interface [Offer](-offer/index.md)
An offer of credentials to be issued. |
| [OfferResult](-offer-result/index.md) | [androidJvm]
interface [OfferResult](-offer-result/index.md)
The result of an offer operation. |
diff --git a/docs/wallet-core/package-list b/docs/wallet-core/package-list
index b6e66e83..ff216ba2 100644
--- a/docs/wallet-core/package-list
+++ b/docs/wallet-core/package-list
@@ -7,21 +7,6 @@ $dokka.location:eu.europa.ec.eudi.wallet.document/Constants/EU_PID_NAMESPACE/#/P
$dokka.location:eu.europa.ec.eudi.wallet.document/Constants/MDL_DOCTYPE/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.document/-constants/-m-d-l_-d-o-c-t-y-p-e.md
$dokka.location:eu.europa.ec.eudi.wallet.document/Constants/MDL_NAMESPACE/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.document/-constants/-m-d-l_-n-a-m-e-s-p-a-c-e.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci////PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/index.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/DefaultOffer///PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-offer/index.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/DefaultOffer/DefaultOffer/#eu.europa.ec.eudi.openid4vci.CredentialOffer#kotlin.collections.List[kotlin.Function1[eu.europa.ec.eudi.openid4vci.CredentialConfiguration,kotlin.Boolean]]/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-offer/-default-offer.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/DefaultOffer/issuerName/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-offer/issuer-name.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/DefaultOffer/offeredDocuments/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-offer/offered-documents.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/DefaultOpenId4VciManager.Companion///PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/-companion/index.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/DefaultOpenId4VciManager///PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/index.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/DefaultOpenId4VciManager/DefaultOpenId4VciManager/#android.content.Context#eu.europa.ec.eudi.wallet.document.DocumentManager#eu.europa.ec.eudi.wallet.issue.openid4vci.OpenId4VciManager.Config/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/-default-open-id4-vci-manager.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/DefaultOpenId4VciManager/config/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/config.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/DefaultOpenId4VciManager/issueDocumentByDocType/#kotlin.String#java.util.concurrent.Executor?#eu.europa.ec.eudi.wallet.issue.openid4vci.OpenId4VciManager.OnIssueEvent/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/issue-document-by-doc-type.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/DefaultOpenId4VciManager/issueDocumentByOffer/#eu.europa.ec.eudi.wallet.issue.openid4vci.Offer#java.util.concurrent.Executor?#eu.europa.ec.eudi.wallet.issue.openid4vci.OpenId4VciManager.OnIssueEvent/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/issue-document-by-offer.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/DefaultOpenId4VciManager/issueDocumentByOfferUri/#kotlin.String#java.util.concurrent.Executor?#eu.europa.ec.eudi.wallet.issue.openid4vci.OpenId4VciManager.OnIssueEvent/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/issue-document-by-offer-uri.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/DefaultOpenId4VciManager/resolveDocumentOffer/#kotlin.String#java.util.concurrent.Executor?#eu.europa.ec.eudi.wallet.issue.openid4vci.OpenId4VciManager.OnResolvedOffer/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/resolve-document-offer.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/DefaultOpenId4VciManager/resumeWithAuthorization/#android.content.Intent/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/resume-with-authorization.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/DefaultOpenId4VciManager/resumeWithAuthorization/#android.net.Uri/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/resume-with-authorization.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/DefaultOpenId4VciManager/resumeWithAuthorization/#kotlin.String/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-default-open-id4-vci-manager/resume-with-authorization.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/IssueEvent.Companion///PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-issue-event/-companion/index.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/IssueEvent.DocumentFailed///PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-issue-event/-document-failed/index.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/IssueEvent.DocumentFailed/DocumentFailed/#kotlin.String#kotlin.String#kotlin.Throwable/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-issue-event/-document-failed/-document-failed.md
@@ -82,8 +67,8 @@ $dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Conf
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config.Builder/clientId/#kotlin.String/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/client-id.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config.Builder/issuerUrl/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/issuer-url.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config.Builder/issuerUrl/#kotlin.String/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/issuer-url.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config.Builder/useDPoP/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/use-d-po-p.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config.Builder/useDPoP/#kotlin.Boolean/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/use-d-po-p.md
+$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config.Builder/useDPoPIfSupported/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/use-d-po-p-if-supported.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config.Builder/useStrongBoxIfSupported/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/use-strong-box-if-supported.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config.Builder/useStrongBoxIfSupported/#kotlin.Boolean/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/use-strong-box-if-supported.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config.Builder/withAuthFlowRedirectionURI/#kotlin.String/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/with-auth-flow-redirection-u-r-i.md
@@ -96,7 +81,7 @@ $dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Conf
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config/authFlowRedirectionURI/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/auth-flow-redirection-u-r-i.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config/clientId/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/client-id.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config/issuerUrl/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/issuer-url.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config/useDPoP/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/use-d-po-p.md
+$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config/useDPoPIfSupported/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/use-d-po-p-if-supported.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config/useStrongBoxIfSupported/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/use-strong-box-if-supported.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.OnIssueEvent///PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-on-issue-event/index.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.OnResolvedOffer///PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-on-resolved-offer/index.md
diff --git a/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/DefaultOpenId4VciManager.kt b/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/DefaultOpenId4VciManager.kt
index 89b90cce..47a1f6fb 100644
--- a/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/DefaultOpenId4VciManager.kt
+++ b/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/DefaultOpenId4VciManager.kt
@@ -33,7 +33,7 @@ import java.net.URI
import java.util.*
import java.util.concurrent.Executor
-class DefaultOpenId4VciManager(
+internal class DefaultOpenId4VciManager(
private val context: Context,
private val documentManager: DocumentManager,
var config: OpenId4VciManager.Config
@@ -384,7 +384,7 @@ class DefaultOpenId4VciManager(
authFlowRedirectionURI = URI.create(authFlowRedirectionURI),
keyGenerationConfig = KeyGenerationConfig(Curve.P_256, 2048),
credentialResponseEncryptionPolicy = CredentialResponseEncryptionPolicy.SUPPORTED,
- dPoPProofSigner = if (useDPoP) DPoPSigner() else null
+ dPoPProofSigner = if (useDPoPIfSupported) DPoPSigner() else null
)
}
}
diff --git a/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/Offer.kt b/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/Offer.kt
index b78419b4..38f19231 100644
--- a/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/Offer.kt
+++ b/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/Offer.kt
@@ -51,9 +51,9 @@ interface Offer {
}
}
-data class DefaultOffer(
- @JvmSynthetic internal val credentialOffer: CredentialOffer,
- private val filterConfigurations: List = listOf(FormatFilter, ProofTypeFilter)
+internal data class DefaultOffer(
+ @JvmSynthetic val credentialOffer: CredentialOffer,
+ @JvmSynthetic val filterConfigurations: List = listOf(FormatFilter, ProofTypeFilter)
) : Offer {
override val issuerName: String
diff --git a/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/OpenId4VciManager.kt b/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/OpenId4VciManager.kt
index 0a73ec9f..2f5b4d82 100644
--- a/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/OpenId4VciManager.kt
+++ b/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/OpenId4VciManager.kt
@@ -172,7 +172,7 @@ interface OpenId4VciManager {
val clientId: String,
val authFlowRedirectionURI: String,
val useStrongBoxIfSupported: Boolean,
- val useDPoP: Boolean
+ val useDPoPIfSupported: Boolean
) {
/**
* Builder to create an instance of [Config]
@@ -180,7 +180,7 @@ interface OpenId4VciManager {
* @property clientId the client id
* @property authFlowRedirectionURI the redirection URI for the authorization flow
* @property useStrongBoxIfSupported use StrongBox for document keys if supported
- * @property useDPoP flag that if set will enable the use of DPoP JWT
+ * @property useDPoPIfSupported flag that if set will enable the use of DPoP JWT
*
*/
class Builder {
@@ -188,7 +188,7 @@ interface OpenId4VciManager {
var clientId: String? = null
var authFlowRedirectionURI: String? = null
var useStrongBoxIfSupported: Boolean = false
- var useDPoP: Boolean = false
+ var useDPoPIfSupported: Boolean = false
/**
* Set the issuer url
@@ -215,7 +215,7 @@ interface OpenId4VciManager {
/**
* Set the flag that if set will enable the use of DPoP JWT
*/
- fun useDPoP(useDPoP: Boolean) = apply { this.useDPoP = useDPoP }
+ fun useDPoP(useDPoP: Boolean) = apply { this.useDPoPIfSupported = useDPoP }
/**
* Build the [Config]
@@ -226,7 +226,13 @@ interface OpenId4VciManager {
checkNotNull(clientId) { "clientId is required" }
checkNotNull(authFlowRedirectionURI) { "authFlowRedirectionURI is required" }
- return Config(issuerUrl!!, clientId!!, authFlowRedirectionURI!!, useStrongBoxIfSupported, useDPoP)
+ return Config(
+ issuerUrl!!,
+ clientId!!,
+ authFlowRedirectionURI!!,
+ useStrongBoxIfSupported,
+ useDPoPIfSupported
+ )
}
fun withIssuerUrl(issuerUrl: String) = issuerUrl(issuerUrl)
diff --git a/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/Utils.kt b/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/Utils.kt
index 29e6bc19..0f54416f 100644
--- a/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/Utils.kt
+++ b/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/Utils.kt
@@ -28,15 +28,17 @@ import org.bouncycastle.util.io.pem.PemWriter
import java.io.StringWriter
import java.security.PublicKey
-internal typealias CredentialConfigurationFilter = (CredentialConfiguration) -> Boolean
+internal fun interface CredentialConfigurationFilter {
+ operator fun invoke(conf: CredentialConfiguration): Boolean
+}
@JvmSynthetic
-internal val FormatFilter: CredentialConfigurationFilter = { conf ->
+internal val FormatFilter: CredentialConfigurationFilter = CredentialConfigurationFilter { conf ->
conf is MsoMdocCredential
}
@JvmSynthetic
-internal val ProofTypeFilter: CredentialConfigurationFilter = { conf ->
+internal val ProofTypeFilter: CredentialConfigurationFilter = CredentialConfigurationFilter { conf ->
conf.proofTypesSupported.keys
.firstOrNull { it in ProofSigner.SupportedProofTypes.keys }
?.let { proofType ->
@@ -49,9 +51,10 @@ internal val ProofTypeFilter: CredentialConfigurationFilter = { conf ->
} ?: false
}
-@JvmSynthetic
-internal fun DocTypeFilterFactory(docType: String): CredentialConfigurationFilter = { conf ->
- conf is MsoMdocCredential && conf.docType == docType
+internal class DocTypeFilterFactory(private val docType: String) : CredentialConfigurationFilter {
+ override fun invoke(conf: CredentialConfiguration): Boolean {
+ return conf is MsoMdocCredential && conf.docType == docType
+ }
}
internal val CreateIssuanceRequestResult.result: Result
diff --git a/wallet-core/src/test/java/eu/europa/ec/eudi/wallet/issue/openid4vci/CredentialConfigurationFilterTest.kt b/wallet-core/src/test/java/eu/europa/ec/eudi/wallet/issue/openid4vci/CredentialConfigurationFilterTest.kt
new file mode 100644
index 00000000..a6bb9fbe
--- /dev/null
+++ b/wallet-core/src/test/java/eu/europa/ec/eudi/wallet/issue/openid4vci/CredentialConfigurationFilterTest.kt
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2024 European Commission
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package eu.europa.ec.eudi.wallet.issue.openid4vci
+
+import com.nimbusds.jose.JWSAlgorithm
+import eu.europa.ec.eudi.openid4vci.MsoMdocCredential
+import eu.europa.ec.eudi.openid4vci.ProofType
+import eu.europa.ec.eudi.openid4vci.SdJwtVcCredential
+import io.mockk.every
+import io.mockk.mockk
+import org.junit.Assert.assertFalse
+import org.junit.Assert.assertTrue
+import org.junit.Test
+
+class CredentialConfigurationFilterTest {
+
+ @Test
+ fun `FormatFilter returns true for MsoMdocCredential`() {
+ val credentialConfiguration = mockk(relaxed = true)
+ assertTrue(FormatFilter(credentialConfiguration))
+ }
+
+ @Test
+ fun `FormatFilter returns false for non-MsoMdocCredential`() {
+ val credentialConfiguration = mockk(relaxed = true)
+ assertFalse(FormatFilter(credentialConfiguration))
+ }
+
+
+ @Test
+ fun `ProofTypeFilter returns true for supported proof type`() {
+ val credentialConfiguration = mockk(relaxed = true)
+ every { credentialConfiguration.proofTypesSupported } returns mapOf(
+ ProofType.JWT to listOf(
+ JWSAlgorithm.ES256
+ )
+ )
+
+ assertTrue(ProofTypeFilter(credentialConfiguration))
+ }
+
+ @Test
+ fun `ProofTypeFilter returns false for supported proof type but unsupported algorithm`() {
+ val credentialConfiguration = mockk(relaxed = true)
+ every { credentialConfiguration.proofTypesSupported } returns mapOf(
+ ProofType.JWT to listOf(
+ JWSAlgorithm.ES384
+ )
+ )
+
+ assertFalse(ProofTypeFilter(credentialConfiguration))
+ }
+
+ @Test
+ fun `ProofTypeFilter returns false for unsupported proof type`() {
+ val credentialConfiguration = mockk(relaxed = true)
+ every { credentialConfiguration.proofTypesSupported } returns mapOf(
+ ProofType.CWT to listOf(
+ JWSAlgorithm.ES256
+ )
+ )
+
+ assertFalse(ProofTypeFilter(credentialConfiguration))
+ }
+
+ @Test
+ fun `ProofTypeFilter returns false for empty proof types`() {
+ val credentialConfiguration = mockk(relaxed = true)
+ every { credentialConfiguration.proofTypesSupported } returns emptyMap()
+
+ assertFalse(ProofTypeFilter(credentialConfiguration))
+ }
+
+ @Test
+ fun `DocTypeFilterFactory returns true for matching docType`() {
+ val docType = "testDocType"
+ val credentialConfiguration = mockk(relaxed = true)
+ every { credentialConfiguration.docType } returns docType
+
+ assertTrue(DocTypeFilterFactory(docType).invoke(credentialConfiguration))
+ }
+
+ @Test
+ fun `DocTypeFilterFactory returns false for non-matching docType`() {
+ val docType = "testDocType"
+ val credentialConfiguration = mockk(relaxed = true)
+ every { credentialConfiguration.docType } returns "differentDocType"
+
+ assertFalse(DocTypeFilterFactory(docType).invoke(credentialConfiguration))
+ }
+}
\ No newline at end of file
diff --git a/wallet-core/src/test/java/eu/europa/ec/eudi/wallet/issue/openid4vci/OpenId4VciManagerBuilderTest.kt b/wallet-core/src/test/java/eu/europa/ec/eudi/wallet/issue/openid4vci/OpenId4VciManagerBuilderTest.kt
new file mode 100644
index 00000000..bbc427f0
--- /dev/null
+++ b/wallet-core/src/test/java/eu/europa/ec/eudi/wallet/issue/openid4vci/OpenId4VciManagerBuilderTest.kt
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2024 European Commission
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package eu.europa.ec.eudi.wallet.issue.openid4vci
+
+import android.content.Context
+import eu.europa.ec.eudi.wallet.document.DocumentManager
+import io.mockk.mockk
+import org.junit.Assert.assertNotNull
+import org.junit.Assert.assertThrows
+import org.junit.Test
+
+class OpenId4VciManagerBuilderTest {
+
+ private val context = mockk(relaxed = true)
+ private val documentManager = mockk(relaxed = true)
+ private val config = OpenId4VciManager.Config(
+ issuerUrl = "https://issuer.example.com",
+ clientId = "testClientId",
+ authFlowRedirectionURI = "app://redirect",
+ useStrongBoxIfSupported = true,
+ useDPoPIfSupported = true
+ )
+
+ @Test
+ fun `Builder builds OpenId4VciManager with valid config and documentManager`() {
+ val builder = OpenId4VciManager.Builder(context)
+ .config(config)
+ .documentManager(documentManager)
+
+ val manager = builder.build()
+
+ assertNotNull(manager)
+ }
+
+ @Test
+ fun `Builder throws exception when config is not set`() {
+ val builder = OpenId4VciManager.Builder(context)
+ .documentManager(documentManager)
+
+ assertThrows(IllegalStateException::class.java) {
+ builder.build()
+ }
+ }
+
+ @Test
+ fun `Builder throws exception when documentManager is not set`() {
+ val builder = OpenId4VciManager.Builder(context)
+ .config(config)
+
+ assertThrows(IllegalStateException::class.java) {
+ builder.build()
+ }
+ }
+}
\ No newline at end of file
diff --git a/wallet-core/src/test/java/eu/europa/ec/eudi/wallet/issue/openid4vci/OpenId4VciManagerConfigBuilderTest.kt b/wallet-core/src/test/java/eu/europa/ec/eudi/wallet/issue/openid4vci/OpenId4VciManagerConfigBuilderTest.kt
new file mode 100644
index 00000000..06bc0bc3
--- /dev/null
+++ b/wallet-core/src/test/java/eu/europa/ec/eudi/wallet/issue/openid4vci/OpenId4VciManagerConfigBuilderTest.kt
@@ -0,0 +1,110 @@
+/*
+ * Copyright (c) 2024 European Commission
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package eu.europa.ec.eudi.wallet.issue.openid4vci
+
+import org.junit.Assert.*
+import org.junit.Test
+
+class OpenId4VciManagerConfigBuilderTest {
+
+ @Test
+ fun `ConfigBuilder builds Config with valid issuerUrl, clientId and authFlowRedirectionURI`() {
+ val builder = OpenId4VciManager.Config.Builder()
+ .withIssuerUrl("https://issuer.example.com")
+ .withClientId("testClientId")
+ .withAuthFlowRedirectionURI("app://redirect")
+
+ val config = builder.build()
+
+ assertNotNull(config)
+ }
+
+ @Test
+ fun `ConfigBuilder throws exception when issuerUrl is not set`() {
+ val builder = OpenId4VciManager.Config.Builder()
+ .clientId("testClientId")
+ .authFlowRedirectionURI("app://redirect")
+
+ assertThrows(IllegalStateException::class.java) {
+ builder.build()
+ }
+ }
+
+ @Test
+ fun `ConfigBuilder throws exception when clientId is not set`() {
+ val builder = OpenId4VciManager.Config.Builder()
+ .issuerUrl("https://issuer.example.com")
+ .authFlowRedirectionURI("app://redirect")
+
+ assertThrows(IllegalStateException::class.java) {
+ builder.build()
+ }
+ }
+
+ @Test
+ fun `ConfigBuilder throws exception when authFlowRedirectionURI is not set`() {
+ val builder = OpenId4VciManager.Config.Builder()
+ .issuerUrl("https://issuer.example.com")
+ .clientId("testClientId")
+
+ assertThrows(IllegalStateException::class.java) {
+ builder.build()
+ }
+ }
+
+ @Test
+ fun `ConfigBuilder sets issuerUrl correctly`() {
+ val builder = OpenId4VciManager.Config.Builder()
+ .issuerUrl("https://issuer.example.com")
+ .clientId("testClientId")
+ .authFlowRedirectionURI("app://redirect")
+
+ val config = builder.build()
+
+ assertEquals("https://issuer.example.com", config.issuerUrl)
+ assertEquals("testClientId", config.clientId)
+ assertEquals("app://redirect", config.authFlowRedirectionURI)
+ assertFalse(config.useStrongBoxIfSupported)
+ assertFalse(config.useDPoPIfSupported)
+ }
+
+ @Test
+ fun `ConfigBuilder sets useStrongBoxIfSupported correctly`() {
+ val builder = OpenId4VciManager.Config.Builder()
+ .issuerUrl("https://issuer.example.com")
+ .clientId("testClientId")
+ .authFlowRedirectionURI("app://redirect")
+ .useStrongBoxIfSupported(true)
+
+ val config = builder.build()
+
+ assertTrue(config.useStrongBoxIfSupported)
+ }
+
+ @Test
+ fun `ConfigBuilder sets useDPoPIfSupported correctly`() {
+ val builder = OpenId4VciManager.Config.Builder()
+ .issuerUrl("https://issuer.example.com")
+ .clientId("testClientId")
+ .authFlowRedirectionURI("app://redirect")
+ .useDPoP(true)
+
+ val config = builder.build()
+
+ assertTrue(config.useDPoPIfSupported)
+ }
+}
\ No newline at end of file