mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-11-15 22:49:26 +01:00
b62357dfe2
This adds code to decrypt chunked protocol replies for configuration data. Also some (disabled) code for SMS reply.
29 lines
1.3 KiB
Java
29 lines
1.3 KiB
Java
package nodomain.freeyourgadget.gadgetbridge.util;
|
|
|
|
import android.annotation.SuppressLint;
|
|
|
|
import java.security.InvalidKeyException;
|
|
import java.security.NoSuchAlgorithmException;
|
|
|
|
import javax.crypto.BadPaddingException;
|
|
import javax.crypto.Cipher;
|
|
import javax.crypto.IllegalBlockSizeException;
|
|
import javax.crypto.NoSuchPaddingException;
|
|
import javax.crypto.spec.SecretKeySpec;
|
|
|
|
public class CryptoUtils {
|
|
public static byte[] encryptAES(byte[] value, byte[] secretKey) throws InvalidKeyException, NoSuchPaddingException, NoSuchAlgorithmException, BadPaddingException, IllegalBlockSizeException {
|
|
@SuppressLint("GetInstance") Cipher ecipher = Cipher.getInstance("AES/ECB/NoPadding");
|
|
SecretKeySpec newKey = new SecretKeySpec(secretKey, "AES");
|
|
ecipher.init(Cipher.ENCRYPT_MODE, newKey);
|
|
return ecipher.doFinal(value);
|
|
}
|
|
|
|
public static byte[] decryptAES(byte[] value, byte[] secretKey) throws InvalidKeyException, NoSuchPaddingException, NoSuchAlgorithmException, BadPaddingException, IllegalBlockSizeException {
|
|
@SuppressLint("GetInstance") Cipher ecipher = Cipher.getInstance("AES/ECB/NoPadding");
|
|
SecretKeySpec newKey = new SecretKeySpec(secretKey, "AES");
|
|
ecipher.init(Cipher.DECRYPT_MODE, newKey);
|
|
return ecipher.doFinal(value);
|
|
}
|
|
}
|