Ejemplo de inicio de sesión con autenticación mutua TLS mediante certificado.
package doxy.examples;
import java.nio.file.Files;
import java.nio.file.Paths;
import com.dinamonetworks.Dinamo;
import br.com.trueaccess.TacException;
import br.com.trueaccess.TacNDJavaLib;
public class OpenSessionCertAuth {
public static void main(String[] args) {
String ip = "127.0.0.1";
String user = "certuser";
String pwd = "12345678";
String privKeyPath = "client_key.pem";
String privKeyPwd = "";
String privKeyCertPath = "client_cert.pem";
Dinamo api = new Dinamo();
try {
byte[] baPrivKey = Files.readAllBytes(Paths.get(privKeyPath));
byte[] baPrivKeyCert = Files.readAllBytes(Paths.get(privKeyCertPath));
byte[] baHSMCert = Dinamo.getHSMTLSCert(ip, TacNDJavaLib.DEFAULT_PORT, TacNDJavaLib.CERT_OUT_PEM);
api.openSessionCert(ip, user, pwd,
baPrivKey, privKeyPwd, baPrivKeyCert, baHSMCert,
TacNDJavaLib.DEFAULT_PORT,
TacNDJavaLib.ENCRYPTED_CONN);
System.out.println("Session opened with mutual TLS authentication.");
System.out.println("Firmware: " + api.getFirmwareVersion());
} catch (TacException e) {
e.printStackTrace();
} catch (Exception e) {
System.err.println("Failed to read key/cert files: " + e.getMessage());
} finally {
try { api.closeSession(); } catch (TacException ignore) {}
}
}
}