diff --git a/README.md b/README.md
index 6a419e63..c9836e0f 100644
--- a/README.md
+++ b/README.md
@@ -103,7 +103,7 @@ file.
```groovy
dependencies {
- implementation "eu.europa.ec.eudi:eudi-lib-android-wallet-core:0.9.4-SNAPSHOT"
+ implementation "eu.europa.ec.eudi:eudi-lib-android-wallet-core:0.9.5-SNAPSHOT"
implementation "androidx.biometric:biometric-ktx:1.2.0-alpha05"
}
```
@@ -201,6 +201,7 @@ val config = EudiWalletConfig.Builder(applicationContext)
useDPoP(false)
parUsage(ParUsage.IF_SUPPORTED)
proofTypes(Config.ProofType.JWT, Config.ProofType.CWT)
+ debugLogging(true)
}
.build()
diff --git a/changelog.md b/changelog.md
index 3f26dcb5..18b7b45b 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,11 @@
# Changelog
+## [0.9.5-SNAPSHOT]
+
+__12 Jun 2024__
+
+- Configurable debug logging for OpenId4VCI
+
## [0.9.4-SNAPSHOT]
__10 Jun 2024__
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.document/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.document/index.md
index f998c0b0..417fac3d 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.document/index.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.document/index.md
@@ -4,6 +4,6 @@
## Types
-| Name | Summary |
-|----------------------------------|--------------------------------------------------------------------------------------------------------------------|
+| Name | Summary |
+|---|---|
| [Constants](-constants/index.md) | [androidJvm]
object [~~Constants~~](-constants/index.md)
Shared constant values for doc types and namespaces |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/-offered-document/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/-offered-document/index.md
index 57b2e42c..60d27c9f 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/-offered-document/index.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/-offered-document/index.md
@@ -12,6 +12,7 @@ An item to be issued.
| Name | Summary |
|---|---|
| [asPair](as-pair.md) | [androidJvm]
fun [asPair](as-pair.md)(): [Pair](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)>
Converts this item to a pair of name and document type. |
+| [toString](to-string.md) | [androidJvm]
open override fun [toString](to-string.md)(): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) |
## Properties
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/-offered-document/to-string.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/-offered-document/to-string.md
new file mode 100644
index 00000000..56349e9b
--- /dev/null
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/-offered-document/to-string.md
@@ -0,0 +1,6 @@
+//[wallet-core](../../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../../index.md)/[Offer](../index.md)/[OfferedDocument](index.md)/[toString](to-string.md)
+
+# toString
+
+[androidJvm]\
+open override fun [toString](to-string.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/-open-id4-vci-manager/-config/-builder/auth-flow-redirection-u-r-i.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/auth-flow-redirection-u-r-i.md
index d3862ced..f1402d5a 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/auth-flow-redirection-u-r-i.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/auth-flow-redirection-u-r-i.md
@@ -11,8 +11,8 @@ Set the redirection URI for the authorization flow
androidJvm
-| | |
-|------------------------|------------------------------------------------|
+| | |
+|---|---|
| authFlowRedirectionURI | the redirection URI for the authorization flow |
[androidJvm]\
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/client-id.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/client-id.md
index ea5503dd..27bf94c0 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/client-id.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/client-id.md
@@ -11,8 +11,8 @@ Set the client id
androidJvm
-| | |
-|----------|---------------|
+| | |
+|---|---|
| clientId | the client id |
[androidJvm]\
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/debug-logging.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/debug-logging.md
new file mode 100644
index 00000000..6dc48906
--- /dev/null
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/debug-logging.md
@@ -0,0 +1,11 @@
+//[wallet-core](../../../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../../../index.md)/[OpenId4VciManager](../../index.md)/[Config](../index.md)/[Builder](index.md)/[debugLogging](debug-logging.md)
+
+# debugLogging
+
+[androidJvm]\
+fun [debugLogging](debug-logging.md)(debugLogging: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)): [OpenId4VciManager.Config.Builder](index.md)
+
+Set the debug logging flag
+
+[androidJvm]\
+var [debugLogging](debug-logging.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/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/index.md
index 63eb44a9..d13fe6dd 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
@@ -15,27 +15,29 @@ Builder to create an instance of [Config](../index.md)
## Functions
-| Name | Summary |
-|-------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [authFlowRedirectionURI](auth-flow-redirection-u-r-i.md) | [androidJvm]
fun [authFlowRedirectionURI](auth-flow-redirection-u-r-i.md)(authFlowRedirectionURI: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [OpenId4VciManager.Config.Builder](index.md)
Set the redirection URI for the authorization flow |
-| [build](build.md) | [androidJvm]
fun [build](build.md)(): [OpenId4VciManager.Config](../index.md)
Build the [Config](../index.md) |
-| [clientId](client-id.md) | [androidJvm]
fun [clientId](client-id.md)(clientId: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [OpenId4VciManager.Config.Builder](index.md)
Set the client id |
-| [issuerUrl](issuer-url.md) | [androidJvm]
fun [issuerUrl](issuer-url.md)(issuerUrl: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [OpenId4VciManager.Config.Builder](index.md)
Set the issuer url |
-| [parUsage](par-usage.md) | [androidJvm]
fun [parUsage](par-usage.md)(parUsage: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)): [OpenId4VciManager.Config.Builder](index.md)
Set the PAR usage |
-| [proofTypes](proof-types.md) | [androidJvm]
fun [proofTypes](proof-types.md)(vararg proofType: [OpenId4VciManager.Config.ProofType](../-proof-type/index.md)): [OpenId4VciManager.Config.Builder](index.md)
Set the proof types. The supported proof types are [ProofType](../-proof-type/index.md). The order of the proof types is the order in which they will be used. |
-| [useDPoP](use-d-po-p.md) | [androidJvm]
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 |
-| [useStrongBoxIfSupported](use-strong-box-if-supported.md) | [androidJvm]
fun [useStrongBoxIfSupported](use-strong-box-if-supported.md)(useStrongBoxIfSupported: [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 StrongBox for document keys if supported |
-| [withAuthFlowRedirectionURI](with-auth-flow-redirection-u-r-i.md) | [androidJvm]
fun [withAuthFlowRedirectionURI](with-auth-flow-redirection-u-r-i.md)(authFlowRedirectionURI: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [OpenId4VciManager.Config.Builder](index.md) |
-| [withClientId](with-client-id.md) | [androidJvm]
fun [withClientId](with-client-id.md)(clientId: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [OpenId4VciManager.Config.Builder](index.md) |
-| [withIssuerUrl](with-issuer-url.md) | [androidJvm]
fun [withIssuerUrl](with-issuer-url.md)(issuerUrl: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [OpenId4VciManager.Config.Builder](index.md) |
+| Name | Summary |
+|---|---|
+| [authFlowRedirectionURI](auth-flow-redirection-u-r-i.md) | [androidJvm]
fun [authFlowRedirectionURI](auth-flow-redirection-u-r-i.md)(authFlowRedirectionURI: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [OpenId4VciManager.Config.Builder](index.md)
Set the redirection URI for the authorization flow |
+| [build](build.md) | [androidJvm]
fun [build](build.md)(): [OpenId4VciManager.Config](../index.md)
Build the [Config](../index.md) |
+| [clientId](client-id.md) | [androidJvm]
fun [clientId](client-id.md)(clientId: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [OpenId4VciManager.Config.Builder](index.md)
Set the client id |
+| [debugLogging](debug-logging.md) | [androidJvm]
fun [debugLogging](debug-logging.md)(debugLogging: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)): [OpenId4VciManager.Config.Builder](index.md)
Set the debug logging flag |
+| [issuerUrl](issuer-url.md) | [androidJvm]
fun [issuerUrl](issuer-url.md)(issuerUrl: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [OpenId4VciManager.Config.Builder](index.md)
Set the issuer url |
+| [parUsage](par-usage.md) | [androidJvm]
fun [parUsage](par-usage.md)(parUsage: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)): [OpenId4VciManager.Config.Builder](index.md)
Set the PAR usage |
+| [proofTypes](proof-types.md) | [androidJvm]
fun [proofTypes](proof-types.md)(vararg proofType: [OpenId4VciManager.Config.ProofType](../-proof-type/index.md)): [OpenId4VciManager.Config.Builder](index.md)
Set the proof types. The supported proof types are [ProofType](../-proof-type/index.md). The order of the proof types is the order in which they will be used. |
+| [useDPoP](use-d-po-p.md) | [androidJvm]
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 |
+| [useStrongBoxIfSupported](use-strong-box-if-supported.md) | [androidJvm]
fun [useStrongBoxIfSupported](use-strong-box-if-supported.md)(useStrongBoxIfSupported: [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 StrongBox for document keys if supported |
+| [withAuthFlowRedirectionURI](with-auth-flow-redirection-u-r-i.md) | [androidJvm]
fun [withAuthFlowRedirectionURI](with-auth-flow-redirection-u-r-i.md)(authFlowRedirectionURI: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [OpenId4VciManager.Config.Builder](index.md) |
+| [withClientId](with-client-id.md) | [androidJvm]
fun [withClientId](with-client-id.md)(clientId: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [OpenId4VciManager.Config.Builder](index.md) |
+| [withIssuerUrl](with-issuer-url.md) | [androidJvm]
fun [withIssuerUrl](with-issuer-url.md)(issuerUrl: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [OpenId4VciManager.Config.Builder](index.md) |
## Properties
-| Name | Summary |
-|-----------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [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 |
-| [parUsage](par-usage.md) | [androidJvm]
var [parUsage](par-usage.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)
if PAR should be used |
-| [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 |
+| Name | Summary |
+|---|---|
+| [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 |
+| [debugLogging](debug-logging.md) | [androidJvm]
var [debugLogging](debug-logging.md): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
flag to enable debug logging. Default is false |
+| [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 |
+| [parUsage](par-usage.md) | [androidJvm]
var [parUsage](par-usage.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)
if PAR should be used |
+| [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/issuer-url.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/issuer-url.md
index fd7e2ae5..7a71ef76 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/issuer-url.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/issuer-url.md
@@ -11,8 +11,8 @@ Set the issuer url
androidJvm
-| | |
-|-----------|----------------|
+| | |
+|---|---|
| issuerUrl | the issuer url |
[androidJvm]\
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/par-usage.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/par-usage.md
index a05b02a3..fd7d3ca2 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/par-usage.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/par-usage.md
@@ -3,8 +3,7 @@
# parUsage
[androidJvm]\
-fun [parUsage](par-usage.md)(
-parUsage: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)): [OpenId4VciManager.Config.Builder](index.md)
+fun [parUsage](par-usage.md)(parUsage: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)): [OpenId4VciManager.Config.Builder](index.md)
Set the PAR usage
@@ -12,8 +11,8 @@ Set the PAR usage
androidJvm
-| | |
-|----------|---------------|
+| | |
+|---|---|
| parUsage | the PAR usage |
[androidJvm]\
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/proof-types.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/proof-types.md
index 9dbe824f..4e13c5cb 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/proof-types.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/proof-types.md
@@ -3,22 +3,20 @@
# proofTypes
[androidJvm]\
-fun [proofTypes](proof-types.md)(vararg
-proofType: [OpenId4VciManager.Config.ProofType](../-proof-type/index.md)): [OpenId4VciManager.Config.Builder](index.md)
+fun [proofTypes](proof-types.md)(vararg proofType: [OpenId4VciManager.Config.ProofType](../-proof-type/index.md)): [OpenId4VciManager.Config.Builder](index.md)
-Set the proof types. The supported proof types are [ProofType](../-proof-type/index.md). The order of the proof types is
-the order in which they will be used.
+Set the proof types. The supported proof types are [ProofType](../-proof-type/index.md). The order of the proof types is the order in which they will be used.
#### Parameters
androidJvm
-| | |
-|-----------|-----------------|
+| | |
+|---|---|
| proofType | the proof types |
#### Throws
-| | |
-|------------------------------------------------------------------------------------------------------------------------|--------------------------------------------|
+| | |
+|---|---|
| [IllegalArgumentException](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-illegal-argument-exception/index.html) | if a proof type is provided more than once |
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 bfcf8548..4896b74a 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
@@ -11,6 +11,6 @@ Set the flag that if set will enable the use of DPoP JWT
androidJvm
-| | |
-|---------|------------------------------------------------------|
+| | |
+|---|---|
| useDPoP | the flag that if set will enable the use of DPoP JWT |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/use-strong-box-if-supported.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/use-strong-box-if-supported.md
index 7cc5b46b..6e64cec7 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/use-strong-box-if-supported.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/use-strong-box-if-supported.md
@@ -11,8 +11,8 @@ Set the flag that if set will enable the use of StrongBox for document keys if s
androidJvm
-| | |
-|-------------------------|--------------------------------------------------------------------------------------|
+| | |
+|---|---|
| useStrongBoxIfSupported | the flag that if set will enable the use of StrongBox for document keys if supported |
[androidJvm]\
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 d887bb92..0a3faa06 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
@@ -3,11 +3,4 @@
# Config
[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),
-parUsage: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html),
-proofTypes: [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)
-<[OpenId4VciManager.Config.ProofType](-proof-type/index.md)>)
+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), parUsage: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), proofTypes: [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[OpenId4VciManager.Config.ProofType](-proof-type/index.md)>, debugLogging: [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/-par-usage/-companion/-i-f_-s-u-p-p-o-r-t-e-d.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-par-usage/-companion/-i-f_-s-u-p-p-o-r-t-e-d.md
index bd030bdf..b4d8a850 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-par-usage/-companion/-i-f_-s-u-p-p-o-r-t-e-d.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-par-usage/-companion/-i-f_-s-u-p-p-o-r-t-e-d.md
@@ -3,6 +3,4 @@
# IF_SUPPORTED
[androidJvm]\
-const
-val [IF_SUPPORTED](-i-f_-s-u-p-p-o-r-t-e-d.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) =
-2
+const val [IF_SUPPORTED](-i-f_-s-u-p-p-o-r-t-e-d.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 2
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-par-usage/-companion/-r-e-q-u-i-r-e-d.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-par-usage/-companion/-r-e-q-u-i-r-e-d.md
index 540db311..e1686d00 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-par-usage/-companion/-r-e-q-u-i-r-e-d.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-par-usage/-companion/-r-e-q-u-i-r-e-d.md
@@ -3,5 +3,4 @@
# REQUIRED
[androidJvm]\
-const val [REQUIRED](-r-e-q-u-i-r-e-d.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) =
-4
+const val [REQUIRED](-r-e-q-u-i-r-e-d.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 4
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-par-usage/-companion/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-par-usage/-companion/index.md
index c25dcae7..f79eb541 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-par-usage/-companion/index.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-par-usage/-companion/index.md
@@ -9,8 +9,8 @@ If PAR is supported
## Properties
-| Name | Summary |
-|--------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Name | Summary |
+|---|---|
| [IF_SUPPORTED](-i-f_-s-u-p-p-o-r-t-e-d.md) | [androidJvm]
const val [IF_SUPPORTED](-i-f_-s-u-p-p-o-r-t-e-d.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 2
use PAR if supported |
-| [NEVER](-n-e-v-e-r.md) | [androidJvm]
const val [NEVER](-n-e-v-e-r.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0
never use PAR |
-| [REQUIRED](-r-e-q-u-i-r-e-d.md) | [androidJvm]
const val [REQUIRED](-r-e-q-u-i-r-e-d.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 4
use PAR always |
+| [NEVER](-n-e-v-e-r.md) | [androidJvm]
const val [NEVER](-n-e-v-e-r.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 0
never use PAR |
+| [REQUIRED](-r-e-q-u-i-r-e-d.md) | [androidJvm]
const val [REQUIRED](-r-e-q-u-i-r-e-d.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) = 4
use PAR always |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-par-usage/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-par-usage/index.md
index 4842c2a7..19881145 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-par-usage/index.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-par-usage/index.md
@@ -9,6 +9,6 @@ PAR usage for the OpenId4Vci issuer
## Types
-| Name | Summary |
-|----------------------------------|--------------------------------------------------------------------------------|
+| Name | Summary |
+|---|---|
| [Companion](-companion/index.md) | [androidJvm]
object [Companion](-companion/index.md)
If PAR is supported |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/-c-w-t/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/-c-w-t/index.md
index eb354cc0..5d46ffff 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/-c-w-t/index.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/-c-w-t/index.md
@@ -9,7 +9,7 @@ CWT proof type
## Properties
-| Name | Summary |
-|----------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [name](index.md#-372974862%2FProperties%2F1615067946) | [androidJvm]
val [name](index.md#-372974862%2FProperties%2F1615067946): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) |
-| [ordinal](index.md#-739389684%2FProperties%2F1615067946) | [androidJvm]
val [ordinal](index.md#-739389684%2FProperties%2F1615067946): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) |
+| Name | Summary |
+|---|---|
+| [name](index.md#-372974862%2FProperties%2F1615067946) | [androidJvm]
val [name](index.md#-372974862%2FProperties%2F1615067946): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) |
+| [ordinal](index.md#-739389684%2FProperties%2F1615067946) | [androidJvm]
val [ordinal](index.md#-739389684%2FProperties%2F1615067946): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/-j-w-t/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/-j-w-t/index.md
index 992bb8df..1b374655 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/-j-w-t/index.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/-j-w-t/index.md
@@ -9,7 +9,7 @@ JWT proof type
## Properties
-| Name | Summary |
-|--------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [name](../-c-w-t/index.md#-372974862%2FProperties%2F1615067946) | [androidJvm]
val [name](../-c-w-t/index.md#-372974862%2FProperties%2F1615067946): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) |
-| [ordinal](../-c-w-t/index.md#-739389684%2FProperties%2F1615067946) | [androidJvm]
val [ordinal](../-c-w-t/index.md#-739389684%2FProperties%2F1615067946): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) |
+| Name | Summary |
+|---|---|
+| [name](../-c-w-t/index.md#-372974862%2FProperties%2F1615067946) | [androidJvm]
val [name](../-c-w-t/index.md#-372974862%2FProperties%2F1615067946): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) |
+| [ordinal](../-c-w-t/index.md#-739389684%2FProperties%2F1615067946) | [androidJvm]
val [ordinal](../-c-w-t/index.md#-739389684%2FProperties%2F1615067946): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/index.md
index 1c61063c..5deb99f4 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/index.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/index.md
@@ -3,28 +3,27 @@
# ProofType
[androidJvm]\
-enum [ProofType](index.md) : [Enum](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html)
-<[OpenId4VciManager.Config.ProofType](index.md)>
+enum [ProofType](index.md) : [Enum](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html)<[OpenId4VciManager.Config.ProofType](index.md)>
Proof type for the OpenId4Vci issuer
## Entries
-| | |
-|------------------------|----------------------------------------------------------|
+| | |
+|---|---|
| [JWT](-j-w-t/index.md) | [androidJvm]
[JWT](-j-w-t/index.md)
JWT proof type |
| [CWT](-c-w-t/index.md) | [androidJvm]
[CWT](-c-w-t/index.md)
CWT proof type |
## Functions
-| Name | Summary |
-|------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Name | Summary |
+|---|---|
| [valueOf](value-of.md) | [androidJvm]
fun [valueOf](value-of.md)(value: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [OpenId4VciManager.Config.ProofType](index.md)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.) |
-| [values](values.md) | [androidJvm]
fun [values](values.md)(): [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)<[OpenId4VciManager.Config.ProofType](index.md)>
Returns an array containing the constants of this enum type, in the order they're declared. |
+| [values](values.md) | [androidJvm]
fun [values](values.md)(): [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)<[OpenId4VciManager.Config.ProofType](index.md)>
Returns an array containing the constants of this enum type, in the order they're declared. |
## Properties
-| Name | Summary |
-|-----------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [name](-c-w-t/index.md#-372974862%2FProperties%2F1615067946) | [androidJvm]
val [name](-c-w-t/index.md#-372974862%2FProperties%2F1615067946): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) |
-| [ordinal](-c-w-t/index.md#-739389684%2FProperties%2F1615067946) | [androidJvm]
val [ordinal](-c-w-t/index.md#-739389684%2FProperties%2F1615067946): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) |
+| Name | Summary |
+|---|---|
+| [name](-c-w-t/index.md#-372974862%2FProperties%2F1615067946) | [androidJvm]
val [name](-c-w-t/index.md#-372974862%2FProperties%2F1615067946): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) |
+| [ordinal](-c-w-t/index.md#-739389684%2FProperties%2F1615067946) | [androidJvm]
val [ordinal](-c-w-t/index.md#-739389684%2FProperties%2F1615067946): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/value-of.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/value-of.md
index 9f886bd1..2c49b82c 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/value-of.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/value-of.md
@@ -3,14 +3,12 @@
# valueOf
[androidJvm]\
-fun [valueOf](value-of.md)(
-value: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [OpenId4VciManager.Config.ProofType](index.md)
+fun [valueOf](value-of.md)(value: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)): [OpenId4VciManager.Config.ProofType](index.md)
-Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to
-declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
+Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
#### Throws
-| | |
-|------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------|
+| | |
+|---|---|
| [IllegalArgumentException](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-illegal-argument-exception/index.html) | if this enum type has no constant with the specified name |
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/values.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/values.md
index 9acc67a2..9104104e 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/values.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/values.md
@@ -3,8 +3,7 @@
# values
[androidJvm]\
-fun [values](values.md)(): [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)
-<[OpenId4VciManager.Config.ProofType](index.md)>
+fun [values](values.md)(): [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)<[OpenId4VciManager.Config.ProofType](index.md)>
Returns an array containing the constants of this enum type, in the order they're declared.
diff --git a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/debug-logging.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/debug-logging.md
new file mode 100644
index 00000000..71f3158f
--- /dev/null
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/debug-logging.md
@@ -0,0 +1,6 @@
+//[wallet-core](../../../../index.md)/[eu.europa.ec.eudi.wallet.issue.openid4vci](../../index.md)/[OpenId4VciManager](../index.md)/[Config](index.md)/[debugLogging](debug-logging.md)
+
+# debugLogging
+
+[androidJvm]\
+val [debugLogging](debug-logging.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/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/index.md
index 7288d5c9..c64911d2 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
@@ -3,41 +3,34 @@
# Config
[androidJvm]\
-data class [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), val
-parUsage: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), val
-proofTypes: [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)
-<[OpenId4VciManager.Config.ProofType](-proof-type/index.md)>)
+data class [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), val parUsage: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), val proofTypes: [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[OpenId4VciManager.Config.ProofType](-proof-type/index.md)>, val debugLogging: [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), useDPoPIfSupported: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html), parUsage: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), proofTypes: [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[OpenId4VciManager.Config.ProofType](-proof-type/index.md)>) |
+| | |
+|---|---|
+| [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), parUsage: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), proofTypes: [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[OpenId4VciManager.Config.ProofType](-proof-type/index.md)>, debugLogging: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)) |
## Types
-| Name | Summary |
-|-----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [Builder](-builder/index.md) | [androidJvm]
class [Builder](-builder/index.md)
Builder to create an instance of [Config](index.md) |
-| [Companion](-companion/index.md) | [androidJvm]
object [Companion](-companion/index.md) |
-| [ParUsage](-par-usage/index.md) | [androidJvm]
annotation class [ParUsage](-par-usage/index.md)
PAR usage for the OpenId4Vci issuer |
+| Name | Summary |
+|---|---|
+| [Builder](-builder/index.md) | [androidJvm]
class [Builder](-builder/index.md)
Builder to create an instance of [Config](index.md) |
+| [Companion](-companion/index.md) | [androidJvm]
object [Companion](-companion/index.md) |
+| [ParUsage](-par-usage/index.md) | [androidJvm]
annotation class [ParUsage](-par-usage/index.md)
PAR usage for the OpenId4Vci issuer |
| [ProofType](-proof-type/index.md) | [androidJvm]
enum [ProofType](-proof-type/index.md) : [Enum](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html)<[OpenId4VciManager.Config.ProofType](-proof-type/index.md)>
Proof type for the OpenId4Vci issuer |
## Properties
-| Name | Summary |
-|-----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [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 |
-| [parUsage](par-usage.md) | [androidJvm]
val [parUsage](par-usage.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)
if PAR should be used |
-| [proofTypes](proof-types.md) | [androidJvm]
val [proofTypes](proof-types.md): [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[OpenId4VciManager.Config.ProofType](-proof-type/index.md)>
the proof types to use |
-| [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)
flag that if set will enable the use of DPoP JWT |
-| [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 |
+| Name | Summary |
+|---|---|
+| [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 |
+| [debugLogging](debug-logging.md) | [androidJvm]
val [debugLogging](debug-logging.md): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
flag to enable debug logging |
+| [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 |
+| [parUsage](par-usage.md) | [androidJvm]
val [parUsage](par-usage.md): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)
if PAR should be used |
+| [proofTypes](proof-types.md) | [androidJvm]
val [proofTypes](proof-types.md): [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[OpenId4VciManager.Config.ProofType](-proof-type/index.md)>
the proof types to use |
+| [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)
flag that if set will enable the use of DPoP JWT |
+| [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/proof-types.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/proof-types.md
index 719c5dd3..b23284eb 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/proof-types.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/proof-types.md
@@ -3,5 +3,4 @@
# proofTypes
[androidJvm]\
-val [proofTypes](proof-types.md): [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)
-<[OpenId4VciManager.Config.ProofType](-proof-type/index.md)>
+val [proofTypes](proof-types.md): [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[OpenId4VciManager.Config.ProofType](-proof-type/index.md)>
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 86f65b6c..c1016128 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
@@ -14,14 +14,14 @@ OpenId4VciManager is the main entry point to issue documents using the OpenId4Vc
## 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 useDPoPIfSupported: [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html), val parUsage: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), val proofTypes: [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[OpenId4VciManager.Config.ProofType](-config/-proof-type/index.md)>)
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), val parUsage: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), val proofTypes: [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[OpenId4VciManager.Config.ProofType](-config/-proof-type/index.md)>, val debugLogging: [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/-unsupported-proof-type-exception/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-unsupported-proof-type-exception/index.md
index 17246259..edeecf7b 100644
--- a/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-unsupported-proof-type-exception/index.md
+++ b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-unsupported-proof-type-exception/index.md
@@ -10,26 +10,26 @@ Exception thrown when the proof type is not supported.
androidJvm
-| | |
-|---------------------|-----------------------|
+| | |
+|---|---|
| supportedProofTypes | supported proof types |
## Functions
-| Name | Summary |
-|---------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [addSuppressed](index.md#282858770%2FFunctions%2F1615067946) | [androidJvm]
fun [addSuppressed](index.md#282858770%2FFunctions%2F1615067946)(p0: [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)) |
-| [fillInStackTrace](index.md#-1102069925%2FFunctions%2F1615067946) | [androidJvm]
open fun [fillInStackTrace](index.md#-1102069925%2FFunctions%2F1615067946)(): [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html) |
-| [getLocalizedMessage](index.md#1043865560%2FFunctions%2F1615067946) | [androidJvm]
open fun [getLocalizedMessage](index.md#1043865560%2FFunctions%2F1615067946)(): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) |
-| [getStackTrace](index.md#2050903719%2FFunctions%2F1615067946) | [androidJvm]
open fun [getStackTrace](index.md#2050903719%2FFunctions%2F1615067946)(): [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)<[StackTraceElement](https://developer.android.com/reference/kotlin/java/lang/StackTraceElement.html)> |
-| [getSuppressed](index.md#672492560%2FFunctions%2F1615067946) | [androidJvm]
fun [getSuppressed](index.md#672492560%2FFunctions%2F1615067946)(): [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)<[Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)> |
-| [initCause](index.md#-418225042%2FFunctions%2F1615067946) | [androidJvm]
open fun [initCause](index.md#-418225042%2FFunctions%2F1615067946)(p0: [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)): [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html) |
-| [printStackTrace](index.md#-1769529168%2FFunctions%2F1615067946) | [androidJvm]
open fun [printStackTrace](index.md#-1769529168%2FFunctions%2F1615067946)()
open fun [printStackTrace](index.md#1841853697%2FFunctions%2F1615067946)(p0: [PrintStream](https://developer.android.com/reference/kotlin/java/io/PrintStream.html))
open fun [printStackTrace](index.md#1175535278%2FFunctions%2F1615067946)(p0: [PrintWriter](https://developer.android.com/reference/kotlin/java/io/PrintWriter.html)) |
-| [setStackTrace](index.md#2135801318%2FFunctions%2F1615067946) | [androidJvm]
open fun [setStackTrace](index.md#2135801318%2FFunctions%2F1615067946)(p0: [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)<[StackTraceElement](https://developer.android.com/reference/kotlin/java/lang/StackTraceElement.html)>) |
+| Name | Summary |
+|---|---|
+| [addSuppressed](index.md#282858770%2FFunctions%2F1615067946) | [androidJvm]
fun [addSuppressed](index.md#282858770%2FFunctions%2F1615067946)(p0: [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)) |
+| [fillInStackTrace](index.md#-1102069925%2FFunctions%2F1615067946) | [androidJvm]
open fun [fillInStackTrace](index.md#-1102069925%2FFunctions%2F1615067946)(): [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html) |
+| [getLocalizedMessage](index.md#1043865560%2FFunctions%2F1615067946) | [androidJvm]
open fun [getLocalizedMessage](index.md#1043865560%2FFunctions%2F1615067946)(): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) |
+| [getStackTrace](index.md#2050903719%2FFunctions%2F1615067946) | [androidJvm]
open fun [getStackTrace](index.md#2050903719%2FFunctions%2F1615067946)(): [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)<[StackTraceElement](https://developer.android.com/reference/kotlin/java/lang/StackTraceElement.html)> |
+| [getSuppressed](index.md#672492560%2FFunctions%2F1615067946) | [androidJvm]
fun [getSuppressed](index.md#672492560%2FFunctions%2F1615067946)(): [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)<[Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)> |
+| [initCause](index.md#-418225042%2FFunctions%2F1615067946) | [androidJvm]
open fun [initCause](index.md#-418225042%2FFunctions%2F1615067946)(p0: [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)): [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html) |
+| [printStackTrace](index.md#-1769529168%2FFunctions%2F1615067946) | [androidJvm]
open fun [printStackTrace](index.md#-1769529168%2FFunctions%2F1615067946)()
open fun [printStackTrace](index.md#1841853697%2FFunctions%2F1615067946)(p0: [PrintStream](https://developer.android.com/reference/kotlin/java/io/PrintStream.html))
open fun [printStackTrace](index.md#1175535278%2FFunctions%2F1615067946)(p0: [PrintWriter](https://developer.android.com/reference/kotlin/java/io/PrintWriter.html)) |
+| [setStackTrace](index.md#2135801318%2FFunctions%2F1615067946) | [androidJvm]
open fun [setStackTrace](index.md#2135801318%2FFunctions%2F1615067946)(p0: [Array](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-array/index.html)<[StackTraceElement](https://developer.android.com/reference/kotlin/java/lang/StackTraceElement.html)>) |
## Properties
-| Name | Summary |
-|----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [cause](index.md#-654012527%2FProperties%2F1615067946) | [androidJvm]
open val [cause](index.md#-654012527%2FProperties%2F1615067946): [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)? |
-| [message](index.md#1824300659%2FProperties%2F1615067946) | [androidJvm]
open val [message](index.md#1824300659%2FProperties%2F1615067946): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)? |
+| Name | Summary |
+|---|---|
+| [cause](index.md#-654012527%2FProperties%2F1615067946) | [androidJvm]
open val [cause](index.md#-654012527%2FProperties%2F1615067946): [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)? |
+| [message](index.md#1824300659%2FProperties%2F1615067946) | [androidJvm]
open val [message](index.md#1824300659%2FProperties%2F1615067946): [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/index.md b/docs/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/index.md
index df506b94..622f0b68 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
@@ -4,10 +4,10 @@
## Types
-| Name | Summary |
-|-----------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [IssueEvent](-issue-event/index.md) | [androidJvm]
interface [IssueEvent](-issue-event/index.md)
Events related to document issuance. |
-| [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. |
-| [OpenId4VciManager](-open-id4-vci-manager/index.md) | [androidJvm]
interface [OpenId4VciManager](-open-id4-vci-manager/index.md)
OpenId4VciManager is the main entry point to issue documents using the OpenId4Vci protocol It provides methods to issue documents using a document type or an offer, and to resolve an offer |
-| [UnsupportedProofTypeException](-unsupported-proof-type-exception/index.md) | [androidJvm]
class [UnsupportedProofTypeException](-unsupported-proof-type-exception/index.md) : [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)
Exception thrown when the proof type is not supported. |
+| Name | Summary |
+|---|---|
+| [IssueEvent](-issue-event/index.md) | [androidJvm]
interface [IssueEvent](-issue-event/index.md)
Events related to document issuance. |
+| [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. |
+| [OpenId4VciManager](-open-id4-vci-manager/index.md) | [androidJvm]
interface [OpenId4VciManager](-open-id4-vci-manager/index.md)
OpenId4VciManager is the main entry point to issue documents using the OpenId4Vci protocol It provides methods to issue documents using a document type or an offer, and to resolve an offer |
+| [UnsupportedProofTypeException](-unsupported-proof-type-exception/index.md) | [androidJvm]
class [UnsupportedProofTypeException](-unsupported-proof-type-exception/index.md) : [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)
Exception thrown when the proof type is not supported. |
diff --git a/docs/wallet-core/package-list b/docs/wallet-core/package-list
index b8b3712d..d27b0fa5 100644
--- a/docs/wallet-core/package-list
+++ b/docs/wallet-core/package-list
@@ -39,6 +39,7 @@ $dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/Offer.OfferedDocument/
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/Offer.OfferedDocument/asPair/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/-offered-document/as-pair.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/Offer.OfferedDocument/docType/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/-offered-document/doc-type.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/Offer.OfferedDocument/name/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/-offered-document/name.md
+$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/Offer.OfferedDocument/toString/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/-offered-document/to-string.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/Offer///PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/index.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/Offer/issuerName/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/issuer-name.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/Offer/offeredDocuments/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-offer/offered-documents.md
@@ -65,6 +66,8 @@ $dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Conf
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config.Builder/build/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/build.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config.Builder/clientId/#/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/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/debugLogging/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/debug-logging.md
+$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config.Builder/debugLogging/#kotlin.Boolean/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/debug-logging.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/parUsage/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-builder/par-usage.md
@@ -90,9 +93,10 @@ $dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Conf
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config.ProofType/valueOf/#kotlin.String/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/value-of.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config.ProofType/values/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-proof-type/values.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config///PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/index.md
-$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config/Config/#kotlin.String#kotlin.String#kotlin.String#kotlin.Boolean#kotlin.Boolean#kotlin.Int#kotlin.collections.List[eu.europa.ec.eudi.wallet.issue.openid4vci.OpenId4VciManager.Config.ProofType]/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-config.md
+$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config/Config/#kotlin.String#kotlin.String#kotlin.String#kotlin.Boolean#kotlin.Boolean#kotlin.Int#kotlin.collections.List[eu.europa.ec.eudi.wallet.issue.openid4vci.OpenId4VciManager.Config.ProofType]#kotlin.Boolean/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/-config.md
$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/debugLogging/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/debug-logging.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/parUsage/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/par-usage.md
$dokka.location:eu.europa.ec.eudi.wallet.issue.openid4vci/OpenId4VciManager.Config/proofTypes/#/PointingToDeclaration/wallet-core/eu.europa.ec.eudi.wallet.issue.openid4vci/-open-id4-vci-manager/-config/proof-types.md
diff --git a/gradle.properties b/gradle.properties
index 643ee915..c64a9b92 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -42,7 +42,7 @@ systemProp.sonar.host.url=https://sonarcloud.io
systemProp.sonar.gradle.skipCompile=true
systemProp.sonar.coverage.jacoco.xmlReportPaths=build/reports/jacoco/testDebugUnitTestCoverage/testDebugUnitTestCoverage.xml,build/reports/jacoco/testReleaseUnitTestCoverage/testReleaseUnitTestCoverage.xml
systemProp.sonar.projectName=eudi-lib-android-wallet-core
-VERSION_NAME=0.9.4-SNAPSHOT
+VERSION_NAME=0.9.5-SNAPSHOT
SONATYPE_HOST=S01
SONATYPE_AUTOMATIC_RELEASE=false
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 1ec8ee91..a3da424b 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -10,7 +10,7 @@ espresso-contrib = "3.5.1"
espresso-core = "3.5.1"
eudi-document-manager = "0.3.0-SNAPSHOT"
eudi-iso18013-data-transfer = "0.2.0-SNAPSHOT"
-eudi-lib-jvm-openid4vci-kt = "0.3.0"
+eudi-lib-jvm-openid4vci-kt = "0.3.1"
eudi-lib-jvm-siop-openid4vp-kt = "0.4.2"
gradle-plugin = "7.4.0"
identity-credential = "20231002"
@@ -53,6 +53,7 @@ json = { module = "org.json:json", version.ref = "json" }
junit = { module = "junit:junit", version.ref = "junit" }
junit-jupiter-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "junit" }
ktor-client-android = { module = "io.ktor:ktor-client-android", version.ref = "ktor" }
+ktor-client-logging = {module ="io.ktor:ktor-client-logging", version.ref="ktor"}
mockito-android = { module = "org.mockito:mockito-android", version.ref = "mockito-android" }
mockito-inline = { module = "org.mockito:mockito-inline", version.ref = "mockito-inline" }
mockito-kotlin = { module = "org.mockito.kotlin:mockito-kotlin", version.ref = "mockito-inline" }
diff --git a/wallet-core/build.gradle b/wallet-core/build.gradle
index c4e3d429..a064425c 100644
--- a/wallet-core/build.gradle
+++ b/wallet-core/build.gradle
@@ -132,6 +132,7 @@ dependencies {
// Ktor Android Engine
runtimeOnly libs.ktor.client.android
+ implementation libs.ktor.client.logging
// Bouncy Castle
implementation libs.bouncy.castle.prov
diff --git a/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/DefaultOffer.kt b/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/DefaultOffer.kt
index d4b99e6c..15518d1c 100644
--- a/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/DefaultOffer.kt
+++ b/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/DefaultOffer.kt
@@ -43,6 +43,10 @@ internal data class DefaultOffer(
.filterKeys { it in credentialOffer.credentialConfigurationIdentifiers }
.filterValues { credentialConfigurationFilter(it) }
.map { (id, conf) -> Offer.OfferedDocument(conf.name, conf.docType, id, conf) }
+
+ override fun toString(): String {
+ return "Offer(issuerName='$issuerName', offeredDocuments=$offeredDocuments)"
+ }
}
/**
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 aa3e0bfd..df053125 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
@@ -130,7 +130,7 @@ internal class DefaultOpenId4VciManager(
launch(onIssueEvent.wrap(executor)) { coroutineScope, listener ->
try {
val offer = offerUriCache[offerUri].also {
- Log.d(TAG, "OfferUri $offerUri cache hit")
+ logDebug("OfferUri $offerUri cache hit")
} ?: CredentialOfferRequestResolver().resolve(offerUri).getOrThrow()
.let {
DefaultOffer(
@@ -157,11 +157,13 @@ internal class DefaultOpenId4VciManager(
) {
launch(onResolvedOffer.wrap(executor)) { coroutineScope, callback ->
try {
- val credentialOffer = CredentialOfferRequestResolver().resolve(offerUri).getOrThrow()
+ val credentialOffer =
+ CredentialOfferRequestResolver(createKtorHttpClient(config.debugLogging)).resolve(offerUri)
+ .getOrThrow()
val offer =
DefaultOffer(credentialOffer, Compose(MsoMdocFormatFilter, ProofTypeFilter(config.proofTypes)))
offerUriCache[offerUri] = offer
- Log.d(TAG, "OfferUri $offerUri resolved")
+ logDebug("OfferUri $offerUri resolved")
callback(OfferResult.Success(offer))
coroutineScope.cancel("resolveDocumentOffer succeeded")
} catch (e: Throwable) {
@@ -174,16 +176,19 @@ internal class DefaultOpenId4VciManager(
}
override fun resumeWithAuthorization(intent: Intent) {
+ logDebug("resumeWithAuthorization: ${intent.data}")
suspendedAuthorization?.use { it.resumeFromIntent(intent) }
?: throw IllegalStateException("No authorization request to resume")
}
override fun resumeWithAuthorization(uri: String) {
+ logDebug("resumeWithAuthorization: $uri")
suspendedAuthorization?.use { it.resumeFromUri(uri) }
?: throw IllegalStateException("No authorization request to resume")
}
override fun resumeWithAuthorization(uri: Uri) {
+ logDebug("resumeWithAuthorization: $uri")
suspendedAuthorization?.use { it.resumeFromUri(uri) }
?: throw IllegalStateException("No authorization request to resume")
}
@@ -201,7 +206,9 @@ internal class DefaultOpenId4VciManager(
) {
offer as DefaultOffer
val credentialOffer = offer.credentialOffer
- val issuer = Issuer.make(config.toOpenId4VCIConfig(), credentialOffer).getOrThrow()
+ val issuer =
+ Issuer.make(config.toOpenId4VCIConfig(), credentialOffer, createKtorHttpClient(config.debugLogging))
+ .getOrThrow()
onEvent(IssueEvent.Started(offer.offeredDocuments.size))
with(issuer) {
val prepareAuthorizationCodeRequest = prepareAuthorizationRequest().getOrThrow()
@@ -218,7 +225,7 @@ internal class DefaultOpenId4VciManager(
.createIssuanceRequest(item, config.useStrongBoxIfSupported)
.getOrThrow()
- Log.d(TAG, "Issuing document: ${issuanceRequest.documentId} for ${issuanceRequest.docType}")
+ logDebug("Issuing document: ${issuanceRequest.documentId} for ${issuanceRequest.docType}")
doIssueCredential(
authorizedRequest,
@@ -241,7 +248,7 @@ internal class DefaultOpenId4VciManager(
private suspend fun openBrowserForAuthorization(prepareAuthorizationCodeRequest: AuthorizationRequestPrepared): Result {
val authorizationCodeUri =
Uri.parse(prepareAuthorizationCodeRequest.authorizationCodeURL.value.toString())
-
+ logDebug("openBrowserForAuthorization: $authorizationCodeUri")
return suspendCancellableCoroutine { continuation ->
suspendedAuthorization = SuspendedAuthorization(continuation)
continuation.invokeOnCancellation {
@@ -274,7 +281,7 @@ internal class DefaultOpenId4VciManager(
) {
val claimSet = null
val payload = IssuanceRequestPayload.ConfigurationBased(credentialConfigurationIdentifier, claimSet)
- Log.d(TAG, "doIssueCredential payload: $payload")
+ logDebug("doIssueCredential payload: $payload")
when (authRequest) {
is AuthorizedRequest.NoProofRequired -> doRequestSingleNoProof(
authRequest,
@@ -315,10 +322,10 @@ internal class DefaultOpenId4VciManager(
addedDocuments: MutableSet,
onEvent: OpenId4VciManager.OnResult
) {
- Log.d(TAG, "doRequestSingleNoProof for ${issuanceRequest.documentId}")
+ logDebug("doRequestSingleNoProof for ${issuanceRequest.documentId}")
when (val outcome = authRequest.requestSingle(payload).getOrThrow()) {
is SubmittedRequest.InvalidProof -> {
- Log.d(TAG, "doRequestSingleNoProof invalid proof")
+ logDebug("doRequestSingleNoProof invalid proof")
doRequestSingleWithProof(
authRequest.handleInvalidProof(outcome.cNonce),
payload,
@@ -358,9 +365,9 @@ internal class DefaultOpenId4VciManager(
addedDocuments: MutableSet,
onEvent: OpenId4VciManager.OnResult
) {
- Log.d(TAG, "doRequestSingleWithProof for ${issuanceRequest.documentId}")
+ logDebug("doRequestSingleWithProof for ${issuanceRequest.documentId}")
val proofSigner = ProofSigner(issuanceRequest, credentialConfiguration, config.proofTypes).getOrThrow()
- Log.d(TAG, "doRequestSingleWithProof proofSigner: ${proofSigner::class.java.name}")
+ logDebug("doRequestSingleWithProof proofSigner: ${proofSigner::class.java.name}")
try {
when (val outcome = authRequest.requestSingle(payload, proofSigner.popSigner).getOrThrow()) {
is SubmittedRequest.Failed -> onEvent(IssueEvent.DocumentFailed(issuanceRequest, outcome.error))
@@ -382,10 +389,10 @@ internal class DefaultOpenId4VciManager(
} catch (e: Throwable) {
when (val status = proofSigner.userAuthStatus) {
is UserAuthStatus.Required -> {
- Log.d(TAG, "doRequestSingleWithProof userAuthStatus: $status")
+ logDebug("doRequestSingleWithProof userAuthStatus: $status")
val event = object : IssueEvent.DocumentRequiresUserAuth(issuanceRequest, status.cryptoObject) {
override fun resume() {
- Log.d(TAG, "doRequestSingleWithProof resume from user auth")
+ logDebug("doRequestSingleWithProof resume from user auth")
runBlocking {
doRequestSingleWithProof(
authRequest,
@@ -435,8 +442,8 @@ internal class DefaultOpenId4VciManager(
is IssuedCredential.Issued -> {
val cbor = Base64.getUrlDecoder().decode(issuedCredential.credential)
- Log.d(TAG, "storeIssuedCredential for ${issuanceRequest.documentId}")
- Log.d(TAG, "storeIssuedCredential cbor: ${Hex.toHexString(cbor)}")
+ logDebug("storeIssuedCredential for ${issuanceRequest.documentId}")
+ logDebug("storeIssuedCredential cbor: ${Hex.toHexString(cbor)}")
when (val addResult = documentManager.addDocument(issuanceRequest, cbor)) {
is AddDocumentResult.Failure -> {
@@ -467,42 +474,47 @@ internal class DefaultOpenId4VciManager(
}.logResult()
}
+ /**
+ * Wraps the given [OpenId4VciManager.OnResult] with debug logging.
+ */
private inline fun , reified V> R.logResult(): OpenId4VciManager.OnResult {
- return OpenId4VciManager.OnResult { result: V ->
- when (result) {
- is IssueEvent.DocumentIssued -> Log.d(
- TAG,
- "${IssueEvent.DocumentIssued::class.java.name} for ${result.documentId}"
- )
+ return if (config.debugLogging) {
+ OpenId4VciManager.OnResult { result: V ->
+ when (result) {
+ is IssueEvent.DocumentIssued -> Log.d(
+ TAG,
+ "${IssueEvent.DocumentIssued::class.java.name} for ${result.documentId}"
+ )
- is IssueEvent.DocumentFailed -> Log.e(
- TAG,
- IssueEvent.DocumentFailed::class.java.simpleName,
- result.cause
- )
+ is IssueEvent.DocumentFailed -> Log.e(
+ TAG,
+ IssueEvent.DocumentFailed::class.java.simpleName,
+ result.cause
+ )
- is IssueEvent.DocumentRequiresUserAuth -> Log.d(
- TAG,
- IssueEvent.DocumentRequiresUserAuth::class.java.simpleName
- )
+ is IssueEvent.DocumentRequiresUserAuth -> Log.d(
+ TAG,
+ IssueEvent.DocumentRequiresUserAuth::class.java.simpleName
+ )
- is IssueEvent.Started -> Log.d(
- TAG,
- "${IssueEvent.Started::class.java.name} for ${result.total} documents"
- )
+ is IssueEvent.Started -> Log.d(
+ TAG,
+ "${IssueEvent.Started::class.java.name} for ${result.total} documents"
+ )
- is IssueEvent.Finished -> Log.d(
- TAG,
- "${IssueEvent.Finished::class.java.name} for ${result.issuedDocuments}"
- )
+ is IssueEvent.Finished -> Log.d(
+ TAG,
+ "${IssueEvent.Finished::class.java.name} for ${result.issuedDocuments}"
+ )
- is IssueEvent.Failure -> Log.e(TAG, IssueEvent.Failure::class.java.simpleName, result.cause)
- is OfferResult.Failure -> Log.e(TAG, OfferResult.Failure::class.java.simpleName, result.error)
- is OfferResult.Success -> Log.d(TAG, "${OfferResult.Success::class.java.name} for ${result.offer}")
- else -> Log.d(TAG, V::class.java.simpleName)
+ is IssueEvent.Failure -> Log.e(TAG, IssueEvent.Failure::class.java.simpleName, result.cause)
+ is OfferResult.Failure -> Log.e(TAG, OfferResult.Failure::class.java.simpleName, result.error)
+ is OfferResult.Success -> logDebug("${OfferResult.Success::class.java.name} for ${result.offer}")
+ else -> logDebug(V::class.java.simpleName)
+ }
+ this.onResult(result)
}
- this.onResult(result)
- }
+ } else this
}
/**
@@ -524,6 +536,15 @@ internal class DefaultOpenId4VciManager(
block()
}
+ private fun logDebug(message: String, throwable: Throwable? = null) {
+ if (config.debugLogging) {
+ when (throwable) {
+ null -> Log.d(TAG, message)
+ else -> Log.d(TAG, message, throwable)
+ }
+ }
+ }
+
companion object {
internal const val TAG = "DefaultOpenId4VciManage"
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 ca5ea62c..3d853aaa 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
@@ -43,6 +43,10 @@ interface Offer {
* Converts this item to a pair of name and document type.
*/
fun asPair() = Pair(name, docType)
+
+ override fun toString(): String {
+ return "OfferedDocument(name='$name', docType='$docType')"
+ }
}
}
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 053c9e04..bc84bd30 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
@@ -170,6 +170,7 @@ interface OpenId4VciManager {
* @property useDPoPIfSupported flag that if set will enable the use of DPoP JWT
* @property parUsage if PAR should be used
* @property proofTypes the proof types to use
+ * @property debugLogging flag to enable debug logging
*/
data class Config(
val issuerUrl: String,
@@ -178,7 +179,8 @@ interface OpenId4VciManager {
val useStrongBoxIfSupported: Boolean,
val useDPoPIfSupported: Boolean,
@ParUsage val parUsage: Int,
- val proofTypes: List
+ val proofTypes: List,
+ val debugLogging: Boolean
) {
/**
@@ -223,6 +225,7 @@ interface OpenId4VciManager {
* @property useStrongBoxIfSupported use StrongBox for document keys if supported
* @property useDPoPIfSupported flag that if set will enable the use of DPoP JWT
* @property parUsage if PAR should be used
+ * @property debugLogging flag to enable debug logging. Default is false
*
*/
class Builder {
@@ -237,6 +240,8 @@ interface OpenId4VciManager {
private var proofTypes: List = listOf(ProofType.JWT, ProofType.CWT)
+ var debugLogging: Boolean = false
+
/**
* Set the issuer url
* @param issuerUrl the issuer url
@@ -289,6 +294,11 @@ interface OpenId4VciManager {
this.proofTypes = distinctList
}
+ /**
+ * Set the debug logging flag
+ */
+ fun debugLogging(debugLogging: Boolean) = apply { this.debugLogging = debugLogging }
+
/**
* Build the [Config]
* @throws [IllegalStateException] if issuerUrl, clientId or authFlowRedirectionURI is not set
@@ -305,7 +315,8 @@ interface OpenId4VciManager {
useStrongBoxIfSupported,
useDPoPIfSupported,
parUsage,
- proofTypes
+ proofTypes,
+ debugLogging
)
}
diff --git a/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/SuspendedAuthorization.kt b/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/SuspendedAuthorization.kt
index b37b083a..2af7e67c 100644
--- a/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/SuspendedAuthorization.kt
+++ b/wallet-core/src/main/java/eu/europa/ec/eudi/wallet/issue/openid4vci/SuspendedAuthorization.kt
@@ -52,7 +52,6 @@ internal class SuspendedAuthorization(
* @throws Throwable if the uri is invalid
*/
fun resumeFromUri(uri: Uri) {
- Log.d(TAG, "resumeFromUri: $uri")
try {
uri.getQueryParameter("code")?.let { authorizationCode ->
uri.getQueryParameter("state")?.let { serverState ->
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 135f3d05..b621e6ff 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
@@ -16,11 +16,22 @@
package eu.europa.ec.eudi.wallet.issue.openid4vci
+import android.util.Log
import com.nimbusds.jose.JWSAlgorithm
import com.nimbusds.jose.crypto.impl.ECDSA
+import eu.europa.ec.eudi.openid4vci.DefaultHttpClientFactory
+import eu.europa.ec.eudi.openid4vci.KtorHttpClientFactory
import eu.europa.ec.eudi.wallet.document.CreateIssuanceRequestResult
import eu.europa.ec.eudi.wallet.document.DocumentManager
import eu.europa.ec.eudi.wallet.document.IssuanceRequest
+import io.ktor.client.*
+import io.ktor.client.plugins.*
+import io.ktor.client.plugins.contentnegotiation.*
+import io.ktor.client.plugins.logging.*
+import io.ktor.client.request.*
+import io.ktor.client.statement.*
+import io.ktor.serialization.kotlinx.json.*
+import kotlinx.serialization.json.Json
import org.bouncycastle.util.io.pem.PemObject
import org.bouncycastle.util.io.pem.PemWriter
import java.io.StringWriter
@@ -99,4 +110,35 @@ internal fun ByteArray.derToJose(algorithm: JWSAlgorithm = JWSAlgorithm.ES256):
return derToConcat(len)
}
+@JvmSynthetic
+internal fun createKtorHttpClient(debug: Boolean = false): KtorHttpClientFactory {
+ return when {
+ debug -> {
+ {
+ HttpClient {
+ install(ContentNegotiation) {
+ json(
+ json = Json {
+ ignoreUnknownKeys = true
+ },
+ )
+ }
+ install(Logging) {
+ logger = object : Logger {
+ override fun log(message: String) {
+ Log.d(DefaultOpenId4VciManager.TAG, message)
+ }
+ }
+ level = LogLevel.ALL
+ }
+ }
+ }
+ }
+
+ else -> DefaultHttpClientFactory
+
+
+ }
+}
+
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
index e820cbe4..0acff246 100644
--- 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
@@ -35,6 +35,7 @@ class OpenId4VciManagerBuilderTest {
useDPoPIfSupported = true,
parUsage = OpenId4VciManager.Config.ParUsage.IF_SUPPORTED,
proofTypes = listOf(OpenId4VciManager.Config.ProofType.JWT),
+ debugLogging = true,
)
@Test