diff --git a/README.md b/README.md
index 760940b2..fcfdf4ca 100644
--- a/README.md
+++ b/README.md
@@ -72,23 +72,27 @@ object is created using the `EudiWalletConfig.Builder` class. The builder allows
the following options:
- `documentsStorageDir` method allows you to specify the directory where the documents are stored.
+ The default value is the application's no-backup files directory.
- `encryptDocumentsInStorage` method allows you to specify if the documents should be encrypted in
- the storage.
+ the storage. The default value is `true`.
- `useHardwareToStoreKeys` method allows you to specify if the StrongBox Android Keystore should be
- used, if available.
+ used, if available. The default value is `true`.
- `bleTransferMode` method allows you to specify the BLE transfer mode. The BLE transfer mode can
be one of the following:
+ `EudiWalletConfig.BLE_SERVER_PERIPHERAL_MODE` - the device will act as a BLE server
+ `EudiWalletConfig.BLE_CLIENT_CENTRAL_MODE` - the device will act as a BLE client
+ The default value is `EudiWalletConfig.BLE_SERVER_PERIPHERAL_MODE`.
- `bleClearCacheEnabled` method allows you to specify if the BLE cache should be cleared after the
- transfer.
+ transfer. The default value is `false`.
- `userAuthenticationRequired` method allows you to specify if the user authentication is required
- when using documents' keys.
+ when using documents' keys. The default value is `false`.
- `userAuthenticationTimeOut` method allows you to specify the user authentication timeout in
milliseconds. If the value is 0, the user authentication is required for every use of the key,
- otherwise it's required within the given amount of milliseconds.
+ otherwise it's required within the given amount of milliseconds. The default value is 30000.
- `trustedReaderCertificates` method allows you to specify the list of trusted reader certificates.
-- `openId4VpVerifierApiUri` method allows you to specify the verifier api uri for OpenID4VP.
+ The default value is an empty list.
+- `openId4VpVerifierApiUri` method allows you to specify the verifier api uri for OpenID4VP. The
+ default value is null.
The following example shows how to initialize the library:
@@ -120,6 +124,13 @@ val config = EudiWalletConfig.Builder(applicationContext)
EudiWalletSDK.init(applicationContext, config)
```
+To initialize the library with the default configuration, you can use the following code:
+
+```kotlin
+val config = EudiWalletConfig.Builder(applicationContext).build()
+EudiWalletSDK.init(applicationContext, config)
+```
+
Library initialization is recommended to be done in the `Application.onCreate` method.
### Manage documents
@@ -366,7 +377,7 @@ val transferEventListener = TransferEvent.Listener { event ->
}
is ResponseResult.Response -> {
val responseBytes = responseResult.bytes
- transferManager.sendResponse(responseBytes)
+ EudiWalletSDK.sendResponse(responseBytes)
}
is ResponseResult.UserAuthRequired -> {
// user authentication is required. Get the crypto object from responseResult.cryptoObject
@@ -382,14 +393,14 @@ val transferEventListener = TransferEvent.Listener { event ->
is TransferEvent.Disconnected -> {
// event when the devices are disconnected
// presentation can be stopped here
- transferManager.stopPresentation()
+ EudiWalletSDK.stopPresentation()
}
is TransferEvent.Error -> {
// event when an error occurs. Get the error from event.error
val error: Throwable = event.error
// handle error
// stop presentation
- transferManager.stopPresentation()
+ EudiWalletSDK.stopPresentation()
}
}
}
@@ -535,116 +546,106 @@ EudiWalletSDK.addTransferEventListener(transferEventListener)
}
```
- 4. OpenID4VP
-
- To use the OpenID4VP functionality, the configuration that is used to initialize the library
- must
- contain the `openId4VpVerifierApiUri`. See
- the [Initialize the library](#initialize-the-library)
- section.
-
- Then, declare to your app's manifest file (AndroidManifest.xml) the following Intent Filters
- for
- your MainActivity:
-
- ```xml
-
-
-
-
-
-
-
-
-
-
-
-
- ```
-
- where `${verifierHostName}` is the host name of the verifier. Also
- set `launchMode="singleTask"`
- for this activity.
-
- Then your MainActivity use the `EudiWalletSDK.openId4vpManager` property to get
- the `OpenId4VpManager` object and use it to initiate the transfer, as shown in the example
- below:
-
- ```kotlin
- import android.content.Intent
- import android.os.Bundle
- import androidx.appcompat.app.AppCompatActivity
- import eu.europa.ec.eudi.iso18013.transfer.DisclosedDocument
- import eu.europa.ec.eudi.iso18013.transfer.DisclosedDocuments
- import eu.europa.ec.eudi.iso18013.transfer.ResponseResult
- import eu.europa.ec.eudi.iso18013.transfer.TransferEvent
- import eu.europa.ec.eudi.wallet.EudiWalletSDK
+4. OpenID4VP
+
+ To use the OpenID4VP functionality, the configuration that is used to initialize the library
+ must contain the `openId4VpVerifierApiUri`. See
+ the [Initialize the library](#initialize-the-library) section.
+
+ Then, declare to your app's manifest file (AndroidManifest.xml) the following Intent Filters for
+ your MainActivity:
+
+ ```xml
+
+
+
+
+
+
+ ```
+
+ Also set `launchMode="singleTask"` for this activity.
+
+ Then your MainActivity use the `EudiWalletSDK.openId4vpManager` property to get
+ the `OpenId4VpManager` object and use it to initiate the transfer, as shown in the example
+ below:
+
+ ```kotlin
+ import android.content.Intent
+ import android.os.Bundle
+ import androidx.appcompat.app.AppCompatActivity
+ import eu.europa.ec.eudi.iso18013.transfer.DisclosedDocument
+ import eu.europa.ec.eudi.iso18013.transfer.DisclosedDocuments
+ import eu.europa.ec.eudi.iso18013.transfer.ResponseResult
+ import eu.europa.ec.eudi.iso18013.transfer.TransferEvent
+ import eu.europa.ec.eudi.wallet.EudiWalletSDK
+
+ class MainActivity : AppCompatActivity() {
- class MainActivity : AppCompatActivity() {
-
- val transferEventListener = TransferEvent.Listener { event ->
- when (event) {
- is TransferEvent.RequestReceived -> {
- val disclosedDocuments = DisclosedDocuments(
- listOf(
- // get disclosed documents from user
- )
+ val transferEventListener = TransferEvent.Listener { event ->
+ when (event) {
+ is TransferEvent.RequestReceived -> {
+ val disclosedDocuments = DisclosedDocuments(
+ listOf(
+ // get disclosed documents from user
)
- val result = EudiWalletSDK.createResponse(disclosedDocuments)
- when (result) {
- is ResponseResult.Response -> {
- EudiWalletSDK.openId4vpManager.sendResponse(result.bytes)
- EudiWalletSDK.openId4vpManager.close()
- }
- is ResponseResult.UserAuthRequired -> {
- // perform user authentication
- // and try send data again
- }
-
- is ResponseResult.Failure -> {
- val cause = result.throwable
- // handle failure
-
- // close connection
- EudiWalletSDK.openId4vpManager.close()
- }
+ )
+ val result = EudiWalletSDK.createResponse(disclosedDocuments)
+ when (result) {
+ is ResponseResult.Response -> {
+ EudiWalletSDK.openId4vpManager.sendResponse(result.bytes)
+ EudiWalletSDK.openId4vpManager.close()
+ }
+ is ResponseResult.UserAuthRequired -> {
+ // perform user authentication
+ // and try send data again
+ }
+
+ is ResponseResult.Failure -> {
+ val cause = result.throwable
+ // handle failure
+
+ // close connection
+ EudiWalletSDK.openId4vpManager.close()
}
-
- }
-
- else -> {
- // rest of event handling
}
+
+ }
+
+ else -> {
+ // rest of event handling
}
}
- // ... rest of activity code
+ }
+ // ... rest of activity code
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- EudiWalletSDK.openId4vpManager.addTransferEventListener(transferEventListener)
- }
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ EudiWalletSDK.openId4vpManager.addTransferEventListener(transferEventListener)
+ }
- override fun onResume() {
- super.onResume()
- handleOpenId4VpIntent(intent)
- }
+ override fun onResume() {
+ super.onResume()
+ handleOpenId4VpIntent(intent)
+ }
- override fun onNewIntent(intent: Intent) {
- super.onNewIntent(intent)
- setIntent(null)
- handleOpenId4VpIntent(intent)
- }
-
- private fun handleOpenId4VpIntent(intent: Intent) {
- when (intent.scheme) {
- "mdoc-openid4vp" -> EudiWalletSDK.openId4vpManager.resolveRequestUri(intent.toUri(0))
- else -> {
- // do nothing
- }
+ override fun onNewIntent(intent: Intent) {
+ super.onNewIntent(intent)
+ setIntent(null)
+ handleOpenId4VpIntent(intent)
+ }
+
+ private fun handleOpenId4VpIntent(intent: Intent) {
+ when (intent.scheme) {
+ "mdoc-openid4vp" -> EudiWalletSDK.openId4vpManager.resolveRequestUri(intent.toUri(0))
+ else -> {
+ // do nothing
}
}
- }
- ```
+ }
+ }
+ ```
+
#### Receiving request and sending response
When a request is received, the `TransferEvent.RequestReceived` event is triggered. The request can