diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiCrypto.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiCrypto.java index 64691b958..32c2fab91 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiCrypto.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiCrypto.java @@ -248,25 +248,21 @@ public class HuaweiCrypto { } } - public static byte[] encrypt(byte authMode, byte[] message, byte[] key, byte[] iv) throws CryptoException { + public static byte[] encrypt(byte encryptMethod, byte[] message, byte[] key, byte[] iv) throws CryptoException { try { - if (authMode == 0x04) { + if (encryptMethod == 0x01) return CryptoUtils.encryptAES_GCM_NoPad(message, key, iv, null); - } else { - return CryptoUtils.encryptAES_CBC_Pad(message, key, iv); - } + return CryptoUtils.encryptAES_CBC_Pad(message, key, iv); } catch (InvalidAlgorithmParameterException | NoSuchPaddingException | IllegalBlockSizeException | NoSuchAlgorithmException | BadPaddingException | InvalidKeyException | IllegalArgumentException e) { throw new CryptoException(e); } } - public static byte[] decrypt(byte authMode, byte[] message, byte[] key, byte[] iv) throws CryptoException { + public static byte[] decrypt(byte encryptMethod, byte[] message, byte[] key, byte[] iv) throws CryptoException { try { - if (authMode == 0x04) { + if (encryptMethod == 0x01) return CryptoUtils.decryptAES_GCM_NoPad(message, key, iv, null); - } else { - return CryptoUtils.decryptAES_CBC_Pad(message, key, iv); - } + return CryptoUtils.decryptAES_CBC_Pad(message, key, iv); } catch (InvalidAlgorithmParameterException | NoSuchPaddingException | IllegalBlockSizeException | NoSuchAlgorithmException | BadPaddingException | InvalidKeyException | IllegalArgumentException e) { throw new CryptoException(e); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiTLV.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiTLV.java index 80d8f6753..bccc420ef 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiTLV.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/huawei/HuaweiTLV.java @@ -291,7 +291,7 @@ public class HuaweiTLV { byte[] serializedTLV = serialize(); byte[] key = paramsProvider.getSecretKey(); byte[] nonce = paramsProvider.getIv(); - byte[] encryptedTLV = HuaweiCrypto.encrypt(paramsProvider.getDeviceSupportType(), serializedTLV, key, nonce); + byte[] encryptedTLV = HuaweiCrypto.encrypt(paramsProvider.getEncryptMethod(), serializedTLV, key, nonce); return new HuaweiTLV() .put(CryptoTags.encryption, (byte) 0x01) .put(CryptoTags.initVector, nonce) @@ -300,7 +300,7 @@ public class HuaweiTLV { public void decrypt(ParamsProvider paramsProvider) throws CryptoException, HuaweiPacket.MissingTagException { byte[] key = paramsProvider.getSecretKey(); - byte[] decryptedTLV = HuaweiCrypto.decrypt(paramsProvider.getDeviceSupportType(), getBytes(CryptoTags.cipherText), key, getBytes(CryptoTags.initVector)); + byte[] decryptedTLV = HuaweiCrypto.decrypt(paramsProvider.getEncryptMethod(), getBytes(CryptoTags.cipherText), key, getBytes(CryptoTags.initVector)); this.valueMap = new ArrayList<>(); parse(decryptedTLV); }