// Importa o cliente Dinamo HSM
const { hsm } = require("@dinamonetworks/hsm-dinamo");

// Define os parâmetros de conexão com o HSM
const options = {
host: "127.0.0.1",
authUsernamePassword: {
username: "master",
password: "12345678",
},
};

async function exportSymmetric() {
// Connecta ao HSM
const conn = await hsm.connect(options);

// Nome da chave
const keyName = "mySymmetricKey";

// Cria a chave para exportação
const created = await conn.key.create(
keyName, // Nome da chave
hsm.enums.SYMMETRICAL_KEYS.ALG_AES_256, // Algoritmo da chave
true, // Se a chave é exportável
true // Se a chave é temporária
);

// Verifica se a chave foi criada
if (created) {
console.log(`Chave "${keyName}" created successfull`);

// Exporta a chave
const exported = await conn.key.exportSymmetric(keyName);

console.log("Chave exportada (base64):", exported.toString("base64"));
} else {
console.log("Chave not created");
}

// Desconecta do HSM
await conn.disconnect();
}

// Execute a função exportSymmetric
exportSymmetric();