Remove utils/AES.java (#234)
This commit is contained in:
parent
66a2641a6b
commit
9e37d5de27
@ -1,57 +0,0 @@
|
|||||||
package com.rarchives.ripme.utils;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
import javax.crypto.Cipher;
|
|
||||||
import javax.crypto.SecretKey;
|
|
||||||
import javax.crypto.spec.IvParameterSpec;
|
|
||||||
import javax.crypto.spec.SecretKeySpec;
|
|
||||||
|
|
||||||
class AES {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Hack to get JCE Unlimited Strenght so we can use weird AES encryption stuff.
|
|
||||||
* From http://stackoverflow.com/a/20286961
|
|
||||||
*/
|
|
||||||
static {
|
|
||||||
try {
|
|
||||||
Field field = Class.forName("javax.crypto.JceSecurity").getDeclaredField("isRestricted");
|
|
||||||
if (!field.isAccessible()) {
|
|
||||||
field.setAccessible(true);
|
|
||||||
field.set(null, java.lang.Boolean.FALSE);
|
|
||||||
}
|
|
||||||
} catch (Exception ex) {
|
|
||||||
// Assume it's fine.
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String decrypt(String cipherText, String key, int nBits) throws Exception {
|
|
||||||
String res = null;
|
|
||||||
nBits = nBits / 8;
|
|
||||||
byte[] data = Base64.decode(cipherText);
|
|
||||||
byte[] k = Arrays.copyOf(key.getBytes(), nBits);
|
|
||||||
|
|
||||||
Cipher cipher = Cipher.getInstance("AES/CTR/NoPadding");
|
|
||||||
SecretKey secretKey = generateSecretKey(k, nBits);
|
|
||||||
byte[] nonceBytes = Arrays.copyOf(Arrays.copyOf(data, 8), nBits / 2);
|
|
||||||
IvParameterSpec nonce = new IvParameterSpec(nonceBytes);
|
|
||||||
cipher.init(Cipher.ENCRYPT_MODE, secretKey, nonce);
|
|
||||||
res = new String(cipher.doFinal(data, 8, data.length - 8));
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static SecretKey generateSecretKey(byte[] keyBytes, int nBits) throws Exception {
|
|
||||||
try {
|
|
||||||
SecretKey secretKey = new SecretKeySpec(keyBytes, "AES");
|
|
||||||
Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding");
|
|
||||||
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
|
|
||||||
keyBytes = cipher.doFinal(keyBytes);
|
|
||||||
} catch (Throwable e1) {
|
|
||||||
e1.printStackTrace();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
System.arraycopy(keyBytes, 0, keyBytes, nBits / 2, nBits / 2);
|
|
||||||
return new SecretKeySpec(keyBytes, "AES");
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user