Descriptografia do AES GCM ignorando a autenticação em JAVA
Eu tenho alguns dados criptografados em AES / GCM e queria descriptografá-los. Quero descriptografá-lo ignorando a autenticação, pois os dados não contêm informações de autenticação (os dados são criptografados por um aplicativo de terceiros). Eu tentei descriptografar com o pacote javax.crypto e ele está sempre gerando erro de incompatibilidade de tag. Existe alguma maneira de ignorar essa verificação de marca e descriptografar dados. Os dados são criptografados com o AES128 e estão usando o vetor de inicialização de 12 bytes.
Edit: Eu tenho uma solução temporária para este problema. Não tenho certeza se este é o método correto.
Key key = new SecretKeySpec(hlsKey, "AES");
GCMParameterSpec gCMParameterSpec = new GCMParameterSpec(96, initialisationVector);
final Cipher c = Cipher.getInstance("AES/GCM/NoPadding", "BC");
c.init(Cipher.DECRYPT_MODE, key, gCMParameterSpec);
byte[] nodata = new byte[len * 2];
System.arraycopy(cipherText, 0, nodata, 0, len);
byte[] plaindata = new byte[len * 2];
try {
int decrypted_index = 0;
while (decrypted_index < len) {
int cp = c.update(nodata, decrypted_index, nodata.length - decrypted_index, plaindata, decrypted_index);//doFinal(nodata);
decrypted_index += cp;
}
if(decrypted_index>=len){
System.arraycopy(plaindata, 0, plainText, 0, len);
retvalue=1;
}
} catch (Exception e) {
e.printStackTrace();
}