constconnectAndSignMLDSA = async () => { letconn; try { // Define os parâmetros de conexão com o HSM constoptions = { host:"127.0.0.1", authUsernamePassword: { username:"master", password:"12345678", }, };
// Estabelece conexão com o HSM conn = awaithsm.connect(options); console.log("Connected to HSM successfully.");
// Define um nome aleatório para a chave ML-DSA a ser usada na assinatura constkeyName = `MLDSA_KEY_${Date.now()}`;
// 1. Cria uma chave ML-DSA (usado ALG_ML_DSA_44 no exemplo) awaitconn.key.create( keyName, hsm.enums.PQC_ML_DSA_ASYMMETRIC_KEYS.ALG_ML_DSA_44, // Chave do tipo ML-DSA 44 false, // Exportável true// Temporário ); console.log(`ML-DSA key created successfully: ${keyName}`);
// 2. Prepara o dado a ser assinado // Note: Para ML-DSA, tipicamente assinamos o dado bruto à um hash pré-calculado. constdataToSign = Buffer.from("Data to be signed with ML-DSA algorithm", "utf8");