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

Exemplo de criação de um novo conjunto de shadows M de N: gera a chave SVMK diretamente no HSM e distribui as shadows em N cartões Smart-card Dinamo.

Veja Nota sobre os exemplos.
package doxy.examples;
import java.util.Scanner;
import com.dinamonetworks.Dinamo;
import com.dinamonetworks.SvmkShadow;
import br.com.trueaccess.TacException;
import br.com.trueaccess.TacNDJavaLib;
public class SmartCardCreateSet {
public static void main(String[] args) throws Exception {
String ip = "127.0.0.1";
String user = "master";
String password = "12345678";
String pin = "12345678";
int version = TacNDJavaLib.DN_SC_M_OF_N_SHADOW_V2_TYPE;
int M = 2; // mínimo de shadows para reconstrução
int N = 2; // total de shadows no esquema
Dinamo api = new Dinamo();
api.openSession(ip, user, password);
Scanner scanner = new Scanner(System.in);
try {
// Gera a chave SVMK no HSM e divide em N shadows.
// Passar null como material de chave faz o HSM gerar a chave internamente.
SvmkShadow[] shadows = api.generateSVMK(version, null, M, N);
System.out.printf("Chave SVMK gerada no HSM. Esquema %d de %d, versão %d.%n",
M, N, version);
// Grava cada shadow no cartão do respectivo custodiante.
System.out.println("Iniciando gravação das shadows...");
for (int i = 0; i < N; i++) {
System.out.printf("Insira o cartão do custodiante %d e pressione Enter...%n", i + 1);
scanner.nextLine();
api.scWriteShadow(shadows[i], pin, true);
System.out.printf("Shadow [%d/%d] gravada.%n", i + 1, N);
System.out.println("Remova o cartão.");
}
System.out.println("Conjunto M de N criado e distribuído com sucesso.");
} finally {
api.closeSession();
}
}
}