API Java
HSM Dinamo
Cargando...
Buscando...
No se han encontrado entradas
IssueTOTPBlob2.java

Ejemplo de generación, comprobación y resincronización de una mancha TOTP OATH utilizando el HSM. Con semilla generada fuera del HSM.

Véase la nota sobre ejemplos.
paquete doxy.examples;
import com.dinamonetworks.Dinamo;
import br.com.trueaccess.TacException;
import br.com.trueaccess.TacNDJavaLib;
public clase IssueTOTPBlob2 {
private static String strAddr = "127.0.0.1";
private static String strUsrId = "maestro";
private static String strPwd = "12345678" ;
private static String masterKeyName = "llave_maestra";
public static void main(String[] args) throws TacException {
Dinamo api = new Dinamo();
System.out.println("--> Inicio de sesión HSM");
api.openSession(strAddr, strUsrId, strPwd);
System.out.println("--> Crear una clave maestra");
api.createKey(masterKeyName, TacNDJavaLib.ALG_AES_256, TacNDJavaLib.NONEXPORTABLE_KEY);
byte[] totpSeed = {(byte)0x01, (byte)0x01, (byte)0x01,(byte)0x01, (byte)0x01,(byte)0x01, (byte)0x01,(byte)0x01,
(byte)0x01,(byte)0x01, (byte)0x01,(byte)0x01, (byte)0x01,(byte)0x01,(byte)0x01,
(byte)0x01,(byte)0x01, (byte)0x01,(byte)0x01, (byte)0x01,(byte)0x01,(byte)0x01,
(byte)0x01,(byte)0x01, (byte)0x01,(byte)0x01, (byte)0x01,(byte)0x01};
byte[] totpImpBlob = api.importOATHTotpBlob(masterKeyName,
totpSeed);
//This call simulates the client application
String nextOtp = api.getNextOATHOTP(masterKeyName,
TacNDJavaLib.ISSUE_OATH_MIN_OTP_LEN,
totpImpBlob);
System.out.println("--> comprobar valor OTP para conocer semilla y secuencia");
totpImpBlob = api.checkOATHBlobOTP(masterKeyName, nextOtp, totpImpBlob);
System.out.println("--> Borrar la llave maestra");
api.deleteKey(nombreClavePatrón);
api.closeSession();
System.out.println("El proceso finalizó correctamente");
}
}