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

Exemplo de uso do NSAuth (Namespace M de N Authorization): associação de partição, verificação de shadows, autorização de sessão e reset de estado usando Smart-cards Dinamo.

Veja Nota sobre os exemplos.
package doxy.examples;
import com.dinamonetworks.Dinamo;
import com.dinamonetworks.SvmkShadow;
import br.com.trueaccess.TacException;
import br.com.trueaccess.TacNDJavaLib;
public class NSAuthSetState {
public static void main(String[] args) throws TacException {
String ip = "127.0.0.1";
String user = "ns";
String password = "12345678";
Dinamo api = new Dinamo();
api.openSession(ip, user, password);
try {
int M = 2;
int N = 3;
// Gera as shadows SVMK (normalmente feito offline e distribuído em Smart-cards).
SvmkShadow[] allShadows = api.generateSVMK(
TacNDJavaLib.DN_SC_M_OF_N_SHADOW_V2_TYPE, null, M, N);
System.out.printf("Shadows geradas: %d (mínimo para reconstrução: %d)%n", N, M);
// Simula a coleta de M shadows dos custodiantes.
SvmkShadow[] mShadows = new SvmkShadow[M];
System.arraycopy(allShadows, 0, mShadows, 0, M);
// 1. Associa a partição com o ACL desejado.
int acl = TacNDJavaLib.NSAUTH_ACL_OBJ_OPEN | TacNDJavaLib.NSAUTH_ACL_OBJ_EXPORT;
api.nsAuthSetState(acl, TacNDJavaLib.DN_S_NSAUTH_ASSOC, mShadows);
System.out.println("Partição associada (ASSOC) com ACL = " + acl);
// 2. Verifica o conjunto de shadows sem alterar o estado.
api.nsAuthSetState(TacNDJavaLib.NSAUTH_ACL_NOP,
TacNDJavaLib.DN_S_NSAUTH_CHECK, mShadows);
System.out.println("Verificação de shadows (CHECK) concluída.");
// 3. Autoriza a sessão atual (eAUTH).
api.nsAuthSetState(TacNDJavaLib.NSAUTH_ACL_NOP,
TacNDJavaLib.DN_S_NSAUTH_eAUTH, mShadows);
System.out.println("Sessão autorizada (eAUTH).");
// 4. Reset do estado NSAuth ao final.
api.nsAuthSetState(TacNDJavaLib.NSAUTH_ACL_NOP,
TacNDJavaLib.DN_S_NSAUTH_RESET, mShadows);
System.out.println("Estado NSAuth resetado (RESET).");
} finally {
api.closeSession();
}
}
}