Exemplo de geração de hash (one-shot)
import { hsm } from "@dinamonetworks/hsm-dinamo";
const hashExample = async () => {
let conn;
try {
// Define os parâmetros de conexão com o HSM
const options = {
host: "127.0.0.1",
authUsernamePassword: {
username: "master",
password: "12345678",
},
};
// Estabelece conexão com o HSM
conn = await hsm.connect(options);
console.log("Connected to HSM successfully.");
// Dados para processar
const data = Buffer.from("Hello Dinamo HSM", "utf8");
// 1. Hash simples (SHA-256)
console.log("Generating SHA-256 hash...");
const sha256Digest = await conn.cryptography.hash(
hsm.enums.HASH_ALGORITHMS.ALG_SHA256,
data
);
console.log("SHA-256 Digest (hex):", sha256Digest.toString("hex"));
// 2. Hash com algoritmo SHA-512
console.log("Generating SHA-512 hash...");
const sha512Digest = await conn.cryptography.hash(
hsm.enums.HASH_ALGORITHMS.ALG_SHA2_512,
data
);
console.log("SHA-512 Digest (hex):", sha512Digest.toString("hex"));
// Nota: Para HMAC ou CMAC, é necessário fornecer o nome de uma chave simétrica
// compatível existente no HSM no terceiro parâmetro de hash().
} catch (err) {
console.error("Error during hash example:", err.message);
} finally {
if (conn) {
await conn.disconnect();
console.log("Disconnected from HSM.");
}
}
};
hashExample();