diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/verification/SASDefaultVerificationTransaction.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/verification/SASDefaultVerificationTransaction.kt
index 22a190c68e..c7885ce449 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/verification/SASDefaultVerificationTransaction.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/verification/SASDefaultVerificationTransaction.kt
@@ -31,6 +31,7 @@ import org.matrix.android.sdk.internal.extensions.toUnsignedInt
import org.matrix.olm.OlmSAS
import org.matrix.olm.OlmUtility
import timber.log.Timber
+import java.util.Locale
/**
* Represents an ongoing short code interactive key verification between two devices.
@@ -344,7 +345,7 @@ internal abstract class SASDefaultVerificationTransaction(
}
protected fun hashUsingAgreedHashMethod(toHash: String): String? {
- if ("sha256".toLowerCase() == accepted?.hash?.toLowerCase()) {
+ if ("sha256" == accepted?.hash?.toLowerCase(Locale.ROOT)) {
val olmUtil = OlmUtility()
val hashBytes = olmUtil.sha256(toHash)
olmUtil.releaseUtility()
@@ -354,12 +355,11 @@ internal abstract class SASDefaultVerificationTransaction(
}
private fun macUsingAgreedMethod(message: String, info: String): String? {
- if (SAS_MAC_SHA256_LONGKDF.toLowerCase() == accepted?.messageAuthenticationCode?.toLowerCase()) {
- return getSAS().calculateMacLongKdf(message, info)
- } else if (SAS_MAC_SHA256.toLowerCase() == accepted?.messageAuthenticationCode?.toLowerCase()) {
- return getSAS().calculateMac(message, info)
+ return when (accepted?.messageAuthenticationCode?.toLowerCase(Locale.ROOT)) {
+ SAS_MAC_SHA256_LONGKDF -> getSAS().calculateMacLongKdf(message, info)
+ SAS_MAC_SHA256 -> getSAS().calculateMac(message, info)
+ else -> null
}
- return null
}
override fun getDecimalCodeRepresentation(): String {
diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/util/Hash.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/util/Hash.kt
index 3d80ad01d5..e19b1bcca7 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/util/Hash.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/util/Hash.kt
@@ -17,6 +17,7 @@
package org.matrix.android.sdk.internal.util
import java.security.MessageDigest
+import java.util.Locale
/**
* Compute a Hash of a String, using md5 algorithm
@@ -26,7 +27,7 @@ fun String.md5() = try {
digest.update(toByteArray())
digest.digest()
.joinToString("") { String.format("%02X", it) }
- .toLowerCase()
+ .toLowerCase(Locale.ROOT)
} catch (exc: Exception) {
// Should not happen, but just in case
hashCode().toString()
diff --git a/vector/lint.xml b/vector/lint.xml
index 51d795b669..572f937406 100644
--- a/vector/lint.xml
+++ b/vector/lint.xml
@@ -41,6 +41,7 @@
+
diff --git a/vector/src/main/java/im/vector/app/core/intent/VectorMimeType.kt b/vector/src/main/java/im/vector/app/core/intent/VectorMimeType.kt
index c8a2bf65d5..1299f4086b 100644
--- a/vector/src/main/java/im/vector/app/core/intent/VectorMimeType.kt
+++ b/vector/src/main/java/im/vector/app/core/intent/VectorMimeType.kt
@@ -21,6 +21,7 @@ import android.net.Uri
import android.webkit.MimeTypeMap
import im.vector.app.core.utils.getFileExtension
import timber.log.Timber
+import java.util.Locale
/**
* Returns the mimetype from a uri.
@@ -44,7 +45,7 @@ fun getMimeTypeFromUri(context: Context, uri: Uri): String? {
if (null != mimeType) {
// the mimetype is sometimes in uppercase.
- mimeType = mimeType.toLowerCase()
+ mimeType = mimeType.toLowerCase(Locale.ROOT)
}
} catch (e: Exception) {
Timber.e(e, "Failed to open resource input stream")
diff --git a/vector/src/main/java/im/vector/app/core/utils/FileUtils.kt b/vector/src/main/java/im/vector/app/core/utils/FileUtils.kt
index ab99ba61bd..aa36dd0959 100644
--- a/vector/src/main/java/im/vector/app/core/utils/FileUtils.kt
+++ b/vector/src/main/java/im/vector/app/core/utils/FileUtils.kt
@@ -19,6 +19,7 @@ package im.vector.app.core.utils
import android.content.Context
import timber.log.Timber
import java.io.File
+import java.util.Locale
// Implementation should return true in case of success
typealias ActionOnFile = (file: File) -> Boolean
@@ -113,7 +114,7 @@ fun getFileExtension(fileUri: String): String? {
val ext = filename.substring(dotPos + 1)
if (ext.isNotBlank()) {
- return ext.toLowerCase()
+ return ext.toLowerCase(Locale.ROOT)
}
}
}