API Java
HSM Dinamo
Carregando...
Procurando...
Nenhuma entrada encontrado
EncDecGcm.java

Exemplo de encriptação e decriptação utilizando GCM com IV definido pelo chamador. Não é suportado nos modos RM2 e RM3, ver documentação da API.

Veja Nota sobre os exemplos.
package doxy.examples;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import com.dinamonetworks.Dinamo;
import br.com.trueaccess.TacException;
import br.com.trueaccess.TacNDJavaLib;
public class EncDecGcm {
static String hsmIp = "127.0.0.1";
static String hsmUser = "master";
static String hsmUserPassword = "12345678";
public static void main(String[] args) throws TacException {
Dinamo api = new Dinamo();
api.openSession(hsmIp, hsmUser, hsmUserPassword);
byte[] iv = new byte[]{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
String plainText = "asdfasdfasdfasdfasdfas";
byte[] originalData = plainText.getBytes(StandardCharsets.UTF_8);
String keyId = "aes256";
api.createKey(keyId, TacNDJavaLib.ALG_AES_256);
byte[] encrypted = api.encrypt(
keyId,
originalData,
iv,
TacNDJavaLib.D_NO_PADDING,
TacNDJavaLib.MODE_GCM
);
byte[] decrypted = api.decrypt(
keyId,
encrypted,
iv,
TacNDJavaLib.D_NO_PADDING,
TacNDJavaLib.MODE_GCM
);
if(!Arrays.equals(originalData, decrypted))
{
System.out.println("Dados decriptados não são iguais aos dados originais!");
return;
}
System.out.println("Dados decriptados com sucesso.");
api.deleteKeyIfExists(keyId);
}
}