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

    // Chave que será útilizaada para encriptar a chave que será exportada
    const kekKeyName = "myKekKey";

    // Cria a chave KEK no HSM
    const kekImported = await conn.key.create(
    kekKeyName, // Nome da chave
    hsm.enums.SYMMETRICAL_KEYS.ALG_AES_256, // Algoritmo da chave
    true, // Se é exportável
    true // Se é temporária
    );

    if (!kekImported) {
    console.log("Error on create KEK key");
    return;
    }

    // Chave que será encriptada e exportada
    const keyName = "myEncryptedKey";

    // Cria a chave no HSM
    const keyToExport = await conn.key.create(
    keyName, // Nome da chave
    hsm.enums.SYMMETRICAL_KEYS.ALG_AES_256, // Algoritmo da chave
    true, // Se é exportável
    true // Se é temporária
    );

    if (!keyToExport) {
    console.log("Error on create key");
    return;
    }

    // IV (Initialization Vector) utilizado para encriptar a chave
    const iv = "5C3473E5016D36B341D0F363FF95BC1B";

    // Exporta a chave encriptada com a KEK
    const exportedKekKey = await conn.key.exportKekWrap(
    hsm.enums.KEK_MODE.MODE_ECB, // Modo de operação para a importação da chave
    hsm.enums.KEK_WRAP_PADDING._0_PAD, // Padding utilizado na exportação da chave
    keyName, // Nome da chave
    kekKeyName, // Nome da chave útilizada para encriptar
    iv // IV utilizado para encriptar a chave
    );

    if (!exportedKekKey || !exportedKekKey.length === 0) {
    console.log("Error on export encrypted key");
    return;
    }

    console.log("Encrypted key exported successfully");
    console.log("Encrypted key: " + exportedKekKey.toString("hex"));

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

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