API JavaScript HSM Dinamo
    Preparing search index...
    import { hsm } from "@dinamonetworks/hsm-dinamo";
    import { Readable } from "stream";

    const streamHashExample = 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.");

    // Define as opções para o stream de hash
    const hashOptions = {
    algorithm: hsm.enums.HASH_ALGORITHMS.ALG_SHA256
    };

    // 1. Cria o Transform Stream de hash
    const hashStream = conn.cryptography.createHashStream(hashOptions);

    // 2. Simula uma fonte de dados
    const sourceData = "Data to be processed by hash stream. ".repeat(10);
    const sourceStream = Readable.from(sourceData);

    console.log("Processing data through hash stream...");

    let digest = Buffer.alloc(0);

    // 3. Conecta os streams
    sourceStream.pipe(hashStream);

    // 4. Coleta o resultado (o hash final é emitido ao encerrar o stream)
    for await (const chunk of hashStream) {
    digest = chunk;
    }

    console.log("Hash processing completed.");
    console.log("Final Digest (hex):", digest.toString("hex"));

    } catch (err) {
    console.error("Error during stream hash example:", err.message);
    } finally {
    if (conn) {
    await conn.disconnect();
    console.log("Disconnected from HSM.");
    }
    }
    };

    streamHashExample();