API .Net HSM Dinamo
API Proprietária .Net do HSM Dinamo
bchain_sign_hash.cs

Exemplo de assinatura usando o módulo blockchain.

Veja Nota sobre os exemplos.
using Dinamo.Hsm;
using System;
using System.Text;
using System.IO;
namespace BchainSignHash
{
class Program
{
private static String addr = "127.0.0.1";
private static String userId = "master";
private static String userPwd = "12345678";
static void Main(string[] args)
{
String keyId = "key";
DinamoClient api = new DinamoClient();
try {
/*
Conecta no HSM
*/
api.Connect(addr, userId, userPwd);
Console.Out.WriteLine("Conectado com sucesso!");
api.RemoveObjectIfExists(keyId);
/*
Gera a chave XPriv BIP-32.
*/
api.BchainCreateXPrvBip32(keyId, DinamoApi.DN_BCHAIN_VER_BIP32_MAINNET, false, false);
Console.Out.WriteLine("Chave gerada com sucesso!");
/*
Hash a ser assinado. Keccack-256 do texto "12345678".
O hash idealmente deve ser gerado em software externo ao HSM.
*/
var hash = new byte[] { 0xa9, 0x22, 0x4f, 0xaa, 0x7b, 0xc2, 0x36, 0x09,
0x1f, 0x61, 0x53, 0xe7, 0xce, 0x01, 0x3a, 0x1b,
0x0a, 0x2c, 0x80, 0x2c, 0x18, 0xa7, 0xce, 0xdf,
0xeb, 0x70, 0x8f, 0x21, 0x17, 0x35, 0x90, 0x32 };
/*
Assina o hash com a chave privada gerada anteriormente.
*/
var signature = api.BchainSignHash(DinamoApi.DN_BCHAIN_SIG_DER_ECDSA,
DinamoApi.DN_BCHAIN_HASH_KECCAK256,
hash, keyId);
Console.Out.WriteLine("Assinatura: " + BitConverter.ToString(signature));
} catch (DinamoException e) {
Console.Out.WriteLine(e.Message);
} finally{
/*
Desconecta do HSM
*/
api.Disconnect();
Console.Out.WriteLine("Desconectado com sucesso!");
}
}
}
}
Namespace que denota um conjunto de funções para acesso ao HSM Dinamo e suas respectivas exceptions.
Definition: DinamoClient.cs:12
Definition: DinamoClient.cs:12