Skip to content

Commit

Permalink
Merge pull request #195 from idnow/sdk_7.0.0
Browse files Browse the repository at this point in the history
Sdk 7.0.0
  • Loading branch information
souheib93 authored Aug 30, 2023
2 parents 353f32e + 7c1d42a commit 2e01c7f
Show file tree
Hide file tree
Showing 23 changed files with 562 additions and 16 deletions.
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# Changelog

### 7.0.0

<strong>Improvements:</strong>

The WebRTC used by our SDK is using the BouncyCastle library as a third-party dependency. As a result, previously, if the same library was being used on the integrator’s part, the two versions would end up in a conflict. In the past, as a temporary solution to this problem, we had to generate a custom version of our SDK, in order to set BouncyCastle as an external dependency.
Starting with our upcoming version (v7.0.0), we will begin offering a more feasible solution to this problem:
We will be using the custom version of our WebRTC that allows us to set BouncyCastle as an external dependency, without having to provide custom SDKs to our clients that are also using this library. This implies that this dependency will have to be added directly in the app.gradle file of the integrator app’s project.

<strong>Migration Guide:</strong>
- Update reference to IDnow SDK 7.0.0
- Update reference eID SDK to 2.7.1
- Add BouncyCastle libs

<strong>IMPORTANT:</strong>
- Please refer to this link to see how to integrate this SDK: [https://github.com/idnow/de.idnow.android#how-to-import-the-sdk](https://github.com/idnow/de.idnow.android#how-to-import-the-sdk)


### 6.8.0

Improvements:
Expand Down
50 changes: 40 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
- [Branding](#branding)
- [Certificate provider](#certificate-provider)
- [Bouncy castle](#bouncy-castle)
- [Supported BouncyCastle versions](#Supported-BouncyCastle-versions)
- [Animations](#animations)
- [Supported Architecture](#Supported-Architecture)
- [arm64-v8a](#arm64-v8a)
Expand Down Expand Up @@ -114,6 +115,9 @@ Moreover, when using an Android LibraryProject, all the Activities, Services and

[![Watch the video](https://github.com/idnow/de.idnow.android/blob/master/docs/screenshot_video1.png)](https://youtu.be/yKOu-luc1x8)

Starting with SDK version 7.0.0 we offer the possibility to integrate bouncycastle as an external library.
We offer the bouncycastle version 1.64 as a default used version, therefore integrating bouncycastle as external library is optional, in case it's not needed you can skip adding bouncycastle versions into the dependencies

In your top-level build.gradle project file add the following url under repositories block:

```
Expand All @@ -122,19 +126,29 @@ repositories {
..
maven {
url "https://raw.githubusercontent.com/idnow/de.idnow.android/master"
}
}
maven { url 'https://jitpack.io' }
..
}
}
```

and in the dependencies part of your app.gradle add:
Copy bouncycastle libraries bcprov-jdk15to18-x.x.jar, bctls-jdk15to18-x.x.jar and bcutil-jdk15to18-x.x.jar into the apps libs folder



In the dependencies part of your app.gradle you have to add IDnow SDK dependency alongside with bouncycastle libraries to be used

```
dependencies {
..
implementation 'de.idnow.sdk:idnow-android-sdk:x.x.x'
// IDnow SDK lib
implementation 'de.idnow.sdk:idnow-android-sdk:x.x.x'
// Bouncycastle external libs
implementation files ('libs/bcprov-jdk15to18-x.x.jar')
implementation files ('libs/bctls-jdk15to18-x.x.jar')
implementation files ('libs/bcutil-jdk15to18-x.x.jar')
..
}
```
Expand All @@ -143,15 +157,18 @@ implementation 'de.idnow.sdk:idnow-android-sdk:x.x.x'

[![Watch the video](https://github.com/idnow/de.idnow.android/blob/master/docs/Screenshot_video2.png)](https://youtu.be/yMIpthcLRnw)

Copy the idnow-android-.aar into the apps libs folder.
Starting with SDK version 7.0.0 we offer the possibility to integrate bouncycastle as an external library.
We offer the bouncycastle version 1.64 as a default used version, therefore integrating bouncycastle as external library is optional, in case it's not needed you can skip adding bouncycastle versions into the dependencies

Copy the idnow-android-sdk.7.0.0 and bouncycastle libraries(Optional as mentioned above) into the apps libs folder.

In your app.gradle add:

```
repositories {
maven {
url "https://raw.githubusercontent.com/idnow/de.idnow.android/master"
url "https://raw.githubusercontent.com/idnow/de.idnow.android/master"
}
maven { url 'https://jitpack.io' }
Expand All @@ -166,7 +183,13 @@ Additional dependencies to add in your app.gradle:

```
dependencies {
// IDnow SDK
implementation 'de.idnow.sdk:idnow-android-x.x.x@aar'
// Bouncycastle external libs
implementation files ('libs/bcprov-jdk15to18-x.x.jar')
implementation files ('libs/bctls-jdk15to18-x.x.jar')
implementation files ('libs/bcutil-jdk15to18-x.x.jar')
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.okhttp3:okhttp:4.9.3'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.3'
Expand Down Expand Up @@ -462,12 +485,19 @@ http://developer.android.com/ndk/guides/abis.html

## Bouncy castle

The WebRTC used by our SDK is using the Bouncy Castle third-party dependency. This implies that if the same dependency is being used on the integrator’s part, the two versions will conflict. The Bouncy castle version being used in this SDK version is 1.51.
As a temporary solution to this, we previously had to generate a ‘custom’ version of the SDK, which had this Bouncy Castle dependency removed.
Starting with one of our upcoming versions (yet to be specified), we will begin offering a more feasible solution to this problem: We will remove the third-party Bouncy Castle dependency, and it will have to be added directly from the integrator app. This implies that in the app.gradle file of the integrator app’s project, we will need to add the following dependency in addition to the existing list of dependencies:
```
implementation 'org.bouncycastle:bcpkix-jdk15on:1.71’
The WebRTC used by our SDK is using the Bouncy Castle third-party dependency. This implies that if the same dependency is being used on the integrator’s part, the two versions will conflict. As a solution to this problem, we are using a custom version of our WebRTC that allows us to set BouncyCastle as an external dependency. This implies that the following dependency will also have to be added directly in the app.gradle file of the integrator app’s project, along with other listed dependencies:

```
implementation files ('libs/bcprov-jdk15to18-x,x.jar')
implementation files ('libs/bctls-jdk15to18-x.x.jar')
implementation files ('libs/bcutil-jdk15to18-x.x.jar')
```

### Supported BouncyCastle versions

- Starting with IDnow SDK version 7.0.0, we are supporting BouncyCastle as an external dependency.
- The default BouncyCastle version used in the SDK is <strong>v1.64</strong>.
- The BouncyCastle versions that are supported are v1.63+.

## Animations

Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
768df7ed00d01c236f2b28d55a0c5283
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
9172158712b884d230b15afb4c78cf8d49f98b57
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
395e881d6c412e1878ef0c08c26974b8ecf664460b2f0cb230c53fe208800f80
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
44b5abf17408423976b824aa981d7253603b63d04796caba1ea8c962d64e45f6356cac16ab02afe4fc8d8dab52e7a5d8fc2093feb6f1c42cc25c02b9ee2650aa
Loading

0 comments on commit 2e01c7f

Please sign in to comment.