// 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 exportAsymmetricPub() {
// Connecta ao HSM
const conn = await hsm.connect(options);

const keyName = "myPubKeyToExp";

const created = await conn.key.create(
keyName, // Nome da chave
hsm.enums.RSA_ASYMMETRIC_KEYS.ALG_RSA_2048, // Algoritmo da chave
false, // Se é exportável
true // Se é temporária
);

if (created) {
console.log(`Key "${keyName}" created successfull`);

const bufferData = await conn.key.exportAsymmetricPub(
keyName, // Nome da chave
true // Se deve ser exportada no formato X509
);

console.log("Public Key:", bufferData.toString("hex"));
} else {
console.log("Key not imported");
}

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

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