From 3fd13f3e3bafeb0dc2059f1ecacfae34cb3300f5 Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Wed, 20 Jan 2021 11:42:09 +0100 Subject: [PATCH] Try to fix decodeHex method conflict in some devices --- .../keepass/database/element/database/DatabaseKDBX.kt | 4 ++-- .../keepass/database/element/database/DatabaseVersioned.kt | 2 +- app/src/main/java/com/kunzisoft/keepass/otp/OtpElement.kt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDBX.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDBX.kt index 84ae4394b..ded08f2d4 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDBX.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseKDBX.kt @@ -451,7 +451,7 @@ class DatabaseKDBX : DatabaseVersioned { return if (hashString != null && checkKeyFileHash(dataString, hashString)) { Log.i(TAG, "Successful key file hash check.") - Hex.decodeHex(dataString) + Hex.decodeHex(dataString.toCharArray()) } else { Log.e(TAG, "Unable to check the hash of the key file.") null @@ -477,7 +477,7 @@ class DatabaseKDBX : DatabaseVersioned { digest = MessageDigest.getInstance("SHA-256") digest?.reset() // hexadecimal encoding of the first 4 bytes of the SHA-256 hash of the key. - val dataDigest = digest.digest(Hex.decodeHex(data)) + val dataDigest = digest.digest(Hex.decodeHex(data.toCharArray())) .copyOfRange(0, 4) .toHexString() success = dataDigest == hash diff --git a/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseVersioned.kt b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseVersioned.kt index fe379787f..660434e5f 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseVersioned.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/element/database/DatabaseVersioned.kt @@ -140,7 +140,7 @@ abstract class DatabaseVersioned< when (keyData.size) { 32 -> return keyData 64 -> try { - return Hex.decodeHex(String(keyData)) + return Hex.decodeHex(String(keyData).toCharArray()) } catch (ignoredException: Exception) { // Key is not base 64, treat it as binary data } diff --git a/app/src/main/java/com/kunzisoft/keepass/otp/OtpElement.kt b/app/src/main/java/com/kunzisoft/keepass/otp/OtpElement.kt index dc501b182..bddb8a284 100644 --- a/app/src/main/java/com/kunzisoft/keepass/otp/OtpElement.kt +++ b/app/src/main/java/com/kunzisoft/keepass/otp/OtpElement.kt @@ -138,7 +138,7 @@ data class OtpElement(var otpModel: OtpModel = OtpModel()) { @Throws(IllegalArgumentException::class) fun setHexSecret(secret: String) { if (secret.isNotEmpty()) - otpModel.secret = Hex.decodeHex(secret) + otpModel.secret = Hex.decodeHex(secret.toCharArray()) else throw IllegalArgumentException() }