diff --git a/android/crypto/src/main/java/com/coinbase/wallet/crypto/ciphers/AES256GCM.kt b/android/crypto/src/main/java/com/coinbase/wallet/crypto/ciphers/AES256GCM.kt index 93ae20d..92ed2e3 100644 --- a/android/crypto/src/main/java/com/coinbase/wallet/crypto/ciphers/AES256GCM.kt +++ b/android/crypto/src/main/java/com/coinbase/wallet/crypto/ciphers/AES256GCM.kt @@ -22,7 +22,7 @@ class AES256GCM { * * @return A pair of encrypted data and authTag */ - fun encrypt(data: ByteArray, key: ByteArray, iv: ByteArray): Pair { + @Synchronized fun encrypt(data: ByteArray, key: ByteArray, iv: ByteArray): Pair { val cipher = Cipher.getInstance(TRANSFORMATION) val paramSpec = GCMParameterSpec(AUTH_TAG_SIZE, iv) val keySpec = SecretKeySpec(key, "AES") @@ -45,7 +45,7 @@ class AES256GCM { * @return A triple of iv, authTag, and encrypted data * @throws `EncryptionException.invalidAES256GCMData` if unable to encrypt data */ - fun encrypt(data: ByteArray, secretKey: SecretKey): Triple { + @Synchronized fun encrypt(data: ByteArray, secretKey: SecretKey): Triple { val cipher = Cipher.getInstance(TRANSFORMATION) cipher.init(Cipher.ENCRYPT_MODE, secretKey) @@ -68,7 +68,7 @@ class AES256GCM { * @return The decrypted data * @throws`EncryptionError.invalidAES256GCMData` if unable to decrypt data */ - fun decrypt(data: ByteArray, key: ByteArray, iv: ByteArray, authTag: ByteArray): ByteArray { + @Synchronized fun decrypt(data: ByteArray, key: ByteArray, iv: ByteArray, authTag: ByteArray): ByteArray { val cipher = Cipher.getInstance(TRANSFORMATION) val paramSpec = GCMParameterSpec(AUTH_TAG_SIZE, iv) val keySpec = SecretKeySpec(key, "AES") @@ -89,7 +89,7 @@ class AES256GCM { * * @return A triple of iv, authTag, and encrypted data */ - fun decrypt(data: ByteArray, secretKey: SecretKey, iv: ByteArray, authTag: ByteArray): ByteArray { + @Synchronized fun decrypt(data: ByteArray, secretKey: SecretKey, iv: ByteArray, authTag: ByteArray): ByteArray { val cipher = Cipher.getInstance(TRANSFORMATION) val paramSpec = GCMParameterSpec(AUTH_TAG_SIZE, iv) val encryptedData = data + authTag