diff --git a/MobileSdk/build.gradle.kts b/MobileSdk/build.gradle.kts index 92c2db8..830db05 100644 --- a/MobileSdk/build.gradle.kts +++ b/MobileSdk/build.gradle.kts @@ -118,7 +118,7 @@ android { } dependencies { - api("com.spruceid.mobile.sdk.rs:mobilesdkrs:0.0.28") + api("com.spruceid.mobile.sdk.rs:mobilesdkrs:0.0.30") //noinspection GradleCompatible implementation("com.android.support:appcompat-v7:28.0.0") /* Begin UI dependencies */ diff --git a/MobileSdk/src/main/java/com/spruceid/mobile/sdk/BleSessionManager.kt b/MobileSdk/src/main/java/com/spruceid/mobile/sdk/BleSessionManager.kt index bff5fe5..3e4c9fd 100644 --- a/MobileSdk/src/main/java/com/spruceid/mobile/sdk/BleSessionManager.kt +++ b/MobileSdk/src/main/java/com/spruceid/mobile/sdk/BleSessionManager.kt @@ -45,7 +45,7 @@ public class BLESessionManager { this.uuid, "BLE", "Central", - sessionData.bleIdent.toByteArray(), + sessionData.bleIdent, ::updateRequestData, callback ) diff --git a/MobileSdk/src/main/java/com/spruceid/mobile/sdk/CredentialsViewModel.kt b/MobileSdk/src/main/java/com/spruceid/mobile/sdk/CredentialsViewModel.kt index 760ab61..ce1f713 100644 --- a/MobileSdk/src/main/java/com/spruceid/mobile/sdk/CredentialsViewModel.kt +++ b/MobileSdk/src/main/java/com/spruceid/mobile/sdk/CredentialsViewModel.kt @@ -91,7 +91,7 @@ class CredentialsViewModel : ViewModel() { _uuid.value, "BLE", "Central", - _session.value!!.bleIdent.toByteArray(), + _session.value!!.bleIdent, ::updateRequestData, null ) @@ -146,4 +146,4 @@ class CredentialsViewModel : ViewModel() { throw e } } -} \ No newline at end of file +} diff --git a/MobileSdk/src/main/java/com/spruceid/mobile/sdk/OID4VCI.kt b/MobileSdk/src/main/java/com/spruceid/mobile/sdk/OID4VCI.kt new file mode 100644 index 0000000..56c62c8 --- /dev/null +++ b/MobileSdk/src/main/java/com/spruceid/mobile/sdk/OID4VCI.kt @@ -0,0 +1,81 @@ +package com.spruceid.mobile.sdk + +import com.spruceid.mobile.sdk.rs.AsyncHttpClient +import com.spruceid.mobile.sdk.rs.HttpRequest +import com.spruceid.mobile.sdk.rs.HttpResponse +import com.spruceid.mobile.sdk.rs.SyncHttpClient +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext +import java.io.BufferedInputStream +import java.io.DataOutputStream +import java.net.URL +import javax.net.ssl.HttpsURLConnection + +class Oid4vciSyncHttpClient: SyncHttpClient { + override fun httpClient(request: HttpRequest): HttpResponse { + val connection: HttpsURLConnection = URL(request.url).openConnection() as HttpsURLConnection + + connection.requestMethod = request.method + for ((k, v) in request.headers) { + connection.setRequestProperty(k, v) + } + connection.doOutput = true + connection.doInput = true + + val wr = DataOutputStream(connection.outputStream) + wr.write(request.body) + wr.flush() + wr.close() + + val statusCode = connection.responseCode + val stream = BufferedInputStream(connection.inputStream) + val body = stream.readBytes() + stream.close() + + val headers = connection.headerFields.mapValues { it.value.joinToString(",") } + + return HttpResponse( + statusCode = statusCode.toUShort(), + headers = headers, + body = body, + ) + } +} + +class Oid4vciAsyncHttpClient: AsyncHttpClient { + override suspend fun httpClient(request: HttpRequest): HttpResponse { + val connection: HttpsURLConnection = + withContext(Dispatchers.IO) { + URL(request.url).openConnection() + } as HttpsURLConnection + + connection.requestMethod = request.method + for ((k, v) in request.headers) { + connection.setRequestProperty(k, v) + } + connection.doOutput = true + connection.doInput = true + + val wr = DataOutputStream(connection.outputStream) + withContext(Dispatchers.IO) { + wr.write(request.body) + wr.flush() + wr.close() + } + + val statusCode = connection.responseCode + val body: ByteArray + withContext(Dispatchers.IO) { + val stream = BufferedInputStream(connection.inputStream) + body = stream.readBytes() + stream.close() + } + val headers = connection.headerFields.mapValues { it.value.joinToString(",") } + + return HttpResponse( + statusCode = statusCode.toUShort(), + headers = headers, + body = body, + ) + } +} \ No newline at end of file diff --git a/WalletSdk/.idea/other.xml b/WalletSdk/.idea/other.xml deleted file mode 100644 index 94c96f6..0000000 --- a/WalletSdk/.idea/other.xml +++ /dev/null @@ -1,318 +0,0 @@ - - - - - - \ No newline at end of file