Update the Bitwarden SDK (#276)

This commit is contained in:
David Perez
2023-11-27 09:56:53 -06:00
committed by Álison Fernandes
parent d36601fa3a
commit baafab6e67
6 changed files with 93 additions and 78 deletions

View File

@@ -5,7 +5,7 @@ import com.bitwarden.core.CipherListView
import com.bitwarden.core.CipherView
import com.bitwarden.core.Folder
import com.bitwarden.core.FolderView
import com.bitwarden.core.InitCryptoRequest
import com.bitwarden.core.InitUserCryptoRequest
import com.bitwarden.core.Send
import com.bitwarden.core.SendView
import com.x8bit.bitwarden.data.vault.datasource.sdk.model.InitializeCryptoResult
@@ -19,7 +19,7 @@ interface VaultSdkSource {
* Attempts to initialize cryptography functionality for the Bitwarden SDK
* with a given [InitCryptoRequest].
*/
suspend fun initializeCrypto(request: InitCryptoRequest): Result<InitializeCryptoResult>
suspend fun initializeCrypto(request: InitUserCryptoRequest): Result<InitializeCryptoResult>
/**
* Decrypts a [Cipher] returning a [CipherView] wrapped in a [Result].

View File

@@ -5,7 +5,7 @@ import com.bitwarden.core.CipherListView
import com.bitwarden.core.CipherView
import com.bitwarden.core.Folder
import com.bitwarden.core.FolderView
import com.bitwarden.core.InitCryptoRequest
import com.bitwarden.core.InitUserCryptoRequest
import com.bitwarden.core.Send
import com.bitwarden.core.SendView
import com.bitwarden.sdk.BitwardenException
@@ -22,11 +22,11 @@ class VaultSdkSourceImpl(
private val clientCrypto: ClientCrypto,
) : VaultSdkSource {
override suspend fun initializeCrypto(
request: InitCryptoRequest,
request: InitUserCryptoRequest,
): Result<InitializeCryptoResult> =
runCatching {
try {
clientCrypto.initializeCrypto(req = request)
clientCrypto.initializeUserCrypto(req = request)
InitializeCryptoResult.Success
} catch (exception: BitwardenException) {
// The only truly expected error from the SDK is an incorrect password.

View File

@@ -2,7 +2,8 @@ package com.x8bit.bitwarden.data.vault.repository
import com.bitwarden.core.CipherView
import com.bitwarden.core.FolderView
import com.bitwarden.core.InitCryptoRequest
import com.bitwarden.core.InitUserCryptoMethod
import com.bitwarden.core.InitUserCryptoRequest
import com.bitwarden.core.Kdf
import com.x8bit.bitwarden.data.auth.datasource.disk.AuthDiskSource
import com.x8bit.bitwarden.data.auth.repository.util.toSdkParams
@@ -195,13 +196,14 @@ class VaultRepositoryImpl constructor(
emit(
vaultSdkSource
.initializeCrypto(
request = InitCryptoRequest(
request = InitUserCryptoRequest(
kdfParams = kdf,
email = email,
password = masterPassword,
userKey = userKey,
privateKey = privateKey,
organizationKeys = organizationalKeys,
method = InitUserCryptoMethod.Password(
password = masterPassword,
userKey = userKey,
),
),
)
.fold(