API JavaScript HSM Dinamo
    theme_preparing_search_index
    // Importa FileSystem do NodeJS
    const fs = require("node:fs");
    // Importa o Path do NodeJS
    const path = require("node:path");

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

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

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

    // Verifica se a chave foi criada
    if (created) {
    console.log("Key created");

    // Gera o P10
    const dn = {
    CN: "Dev Team",
    OU: ["Engenharia", "TI"],
    O: "Exemplo Corp",
    L: "Brasilia",
    ST: "DF",
    C: "BR",
    E: "lab@dev.com",
    };
    const p10 = await conn.key.generatePKCS10(
    keyName, // Nome da chave
    dn // Distinguished Name
    );

    // Verifica se o P10 foi gerado
    if (p10) {
    console.log("PKCS#10 generated");

    const certClearText = await conn.key.exportCertClearText(keyName);

    console.log(
    "Cert clear text (base64): " + certClearText.toString("base64")
    );
    } else {
    console.log("P10 not generated");
    }
    } else {
    console.log("Key not created");
    }

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

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