// Define os parâmetros de conexão com o HSM constoptions = { host:"127.0.0.1", authUsernamePassword: { username:"master", password:"12345678", }, };
asyncfunctionpubKeyRecovery() { // Connecta ao HSM constconn = awaithsm.connect(options);
// Nome da chave constkeyName = "myKeyToRecover";
// Cria uma nova chave constkey = awaitconn.blockchain.create( keyName, // Nome da chave hsm.enums.BLOCKCHAIN_KEYS.BITCOIN_MINI_KEY, // Tipo true, // Se é exportável true, // Se é temporária hsm.enums.VERSION_OPTIONS.BIP32_TEST_NET// Versão );
// Dados para serem aplicados a hash constdataToHash = Buffer.from("Data to hash"); // Geração de hash com base nos dados consthashedData = awaitconn.blockchain.hashData( hsm.enums.BLOCKCHAIN_HASH_MODE.SHA256, dataToHash );
// Assina o hash constsignedHash = awaitconn.blockchain.sign( hsm.enums.BLOCKCHAIN_SIG_TYPE.SIG_RAW_ECDSA, // Tipo da assinatura hsm.enums.BLOCKCHAIN_HASH_MODE.KECCAK256, // Tipo do hash hashedData, // Dados a serem assinados keyName// Nome da chave );
// Recupera a chave pública constpubKeyRecovered = awaitconn.blockchain.pubKeyRecovery( hsm.enums.BLOCKCHAIN_SIG_TYPE.SIG_RAW_ECDSA, // Tipo da assinatura hsm.enums.BLOCKCHAIN_HASH_MODE.KECCAK256, // Modo do hash hashedData, // Hash dos dados signedHash// Assinatura );
// Chave pública console.log(pubKeyRecovered);
// Desconecta do HSM awaitconn.disconnect(); }
// Execute a função pubKeyRecovery pubKeyRecovery();