API .NET
HSM Dinamo
Carregando...
Procurando...
Nenhuma entrada encontrado
Módulo Blockchain

Descrição detalhada

Operações de suporte à segurança de estruturas baseadas em Blockchain.

Consulte a documentação técnica do HSM sobre detalhes de funcionamento, especificações utilizadas, licenças e nome comercial do módulo.

Funções

void BchainCreateXPrvBtcMinikey (string szId, bool isExportable, bool isTemporary)
 Cria uma chave privada XPriv para Bitcoin no formato minikey.
 
void BchainCreateXPrvBip32 (string szId, byte bVersion, bool isExportable, bool isTemporary)
 Cria uma chave privada XPriv no formato BIP32.
 
void BchainCreateXPrvBip32Seed (string szId, DinamoApi.DN_BCHAIN_BIP32_SEED_XPRV_DATA pData, bool isExportable, bool isTemporary)
 Cria uma chave privada XPriv no formato BIP32 utilizando seed.
 
void BchainCreateXPrvBip39Seed (string szId, DinamoApi.DN_BCHAIN_BIP39_SEED_XPRV_DATA pData, bool isExportable, bool isTemporary)
 Cria uma chave privada XPriv no formato BIP39 utilizando seed.
 
DinamoApi.DN_BCHAIN_KEY_INFO BchainCreateBip32Ckd (byte bVersion, UInt32 dwIndex, string szPar, string szDst, bool isExportable, bool isTemporary)
 Faz uma operação de Child Key Derivation (CKD). Deriva uma chave Extended Private Key (XPrv) para a blockchain no padrão BIP32.
 
byte[] BchainSignHash (byte bType, byte bHashMode, byte[] pbHash, string szPk)
 Assina um hash usando o módulo Blockchain.
 
byte[] BchainGetPubKey (byte bType, string szId)
 Recupera uma chave pública usando o módulo blockchain.
 
byte[] BchainGetAddress (byte bType, byte bVersion, string szHrp, string szId)
 Recupera o endereço de uma chave usando o módulo blockchain.
 
byte[] BchainEdDsaSign (byte bType, string szCtxStr, byte[] pbData, string szId)
 Gera uma assinatura EdDsa usando o módulo blockchain.
 
void BchainGenerateKey (Dinamo.Hsm.DinamoClient.KEY_ALG dwAlg, string szId, bool isExportable, bool isTemporary)
 Gera uma chave marcada para uso no módulo blockchain.
 

Funções

◆ BchainCreateXPrvBtcMinikey()

void BchainCreateXPrvBtcMinikey ( string szId,
bool isExportable,
bool isTemporary )
inline

Cria uma chave privada XPriv para Bitcoin no formato minikey.

Parâmetros
szIdIdentificador da chave.
isExportableA chave poderá ser exportada do HSM.
isTemporaryA chave existirá apenas enquanto a sessão estiver ativa. Ela será destruída após o encerramento da sessão.
Exceções
DinamoExceptionLança exceção em caso de erro.

◆ BchainCreateXPrvBip32()

void BchainCreateXPrvBip32 ( string szId,
byte bVersion,
bool isExportable,
bool isTemporary )
inline

Cria uma chave privada XPriv no formato BIP32.

Parâmetros
szIdIdentificador da chave.
bVersionVersão da chave. Ver tabela abaixo.
Valor Significado
DinamoApi.DN_BCHAIN_VER_BIP32_MAINNET Mainnet BIP32.
DinamoApi.DN_BCHAIN_VER_BIP32_TESTNET Testnet BIP32.
DinamoApi.DN_BCHAIN_VER_BIP32_HTR_MAINNET Mainnet BIP32 Hathor.
DinamoApi.DN_BCHAIN_VER_BIP32_HTR_TESTNET Testnet BIP32 Hathor.
DinamoApi.DN_BCHAIN_VER_BIP32_FPRV1 Fireblocks variation.
Parâmetros
isExportableA chave poderá ser exportada do HSM.
isTemporaryA chave existirá apenas enquanto a sessão estiver ativa. Ela será destruída após o encerramento da sessão.
Exceções
DinamoExceptionLança exceção em caso de erro.
Exemplos
bchain_ckd.cs, bchain_get_address.cs, bchain_get_pub.cs e bchain_sign_hash.cs.

◆ BchainCreateXPrvBip32Seed()

void BchainCreateXPrvBip32Seed ( string szId,
DinamoApi.DN_BCHAIN_BIP32_SEED_XPRV_DATA pData,
bool isExportable,
bool isTemporary )
inline

Cria uma chave privada XPriv no formato BIP32 utilizando seed.

Parâmetros
szIdIdentificador da chave.
pDataDados para a geração da chave.
isExportableA chave poderá ser exportada do HSM.
isTemporaryA chave existirá apenas enquanto a sessão estiver ativa. Ela será destruída após o encerramento da sessão.
Exceções
DinamoExceptionLança exceção em caso de erro.

◆ BchainCreateXPrvBip39Seed()

void BchainCreateXPrvBip39Seed ( string szId,
DinamoApi.DN_BCHAIN_BIP39_SEED_XPRV_DATA pData,
bool isExportable,
bool isTemporary )
inline

Cria uma chave privada XPriv no formato BIP39 utilizando seed.

Parâmetros
szIdIdentificador da chave.
pDataDados para a geração da chave.
isExportableA chave poderá ser exportada do HSM.
isTemporaryA chave existirá apenas enquanto a sessão estiver ativa. Ela será destruída após o encerramento da sessão.
Exceções
DinamoExceptionLança exceção em caso de erro.

◆ BchainCreateBip32Ckd()

DinamoApi.DN_BCHAIN_KEY_INFO BchainCreateBip32Ckd ( byte bVersion,
UInt32 dwIndex,
string szPar,
string szDst,
bool isExportable,
bool isTemporary )
inline

Faz uma operação de Child Key Derivation (CKD). Deriva uma chave Extended Private Key (XPrv) para a blockchain no padrão BIP32.

Parâmetros
bVersionVersão da chave. Ver tabela abaixo.
Valor Significado
DinamoApi.DN_BCHAIN_VER_BIP32_MAINNET Mainnet BIP32.
DinamoApi.DN_BCHAIN_VER_BIP32_TESTNET Testnet BIP32.
DinamoApi.DN_BCHAIN_VER_BIP32_HTR_MAINNET Mainnet BIP32 Hathor.
DinamoApi.DN_BCHAIN_VER_BIP32_HTR_TESTNET Testnet BIP32 Hathor.
DinamoApi.DN_BCHAIN_VER_BIP32_FPRV1 Fireblocks variation.
dwIndexÍndice da chave que será derivada. Chaves non hardened usam índice de 0 a 231-1 e chaves hardened (irrestritamente seguras) usam índices de 231 a 232-1, como especificado no padrão BIP32. É altamente recomendado gerar chaves hardened. Usar DinamoApi.DN_BCHAIN_SECURE_BIP32_INDEX_BASE como base para gerar índices hardened (Ex. DinamoApi.DN_BCHAIN_SECURE_BIP32_INDEX_BASE + 1 ...).
szParIdentificador da chave pai.
szDstIdentificador da chave derivada. Deve ser uma chave XPrv (DinamoApi.DN_BCHAIN_BIP32_XPRV etc.)
isExportableA chave poderá ser exportada do HSM.
isTemporaryA chave existirá apenas enquanto a sessão estiver ativa. Ela será destruída após o encerramento da sessão.
Retorna
Informações da chave derivada.
Exceções
DinamoExceptionLança exceção em caso de erro.
Exemplos
bchain_ckd.cs.

◆ BchainSignHash()

byte[] BchainSignHash ( byte bType,
byte bHashMode,
byte[] pbHash,
string szPk )
inline

Assina um hash usando o módulo Blockchain.

Parâmetros
bTypeTipo de chave.
Valor Significado
DinamoApi.DN_BCHAIN_SIG_DER_ECDSA Assinatura DER, no formato v || DER. SECG!SEC1 strict DER com low S como descrito em BIP62/66, BIP146, EIP2. Tendo 'v' o tamanho de 1 byte. 'v' é o bit de paridade de 'r' podendo ter os valores 0 ou 1.
DinamoApi.DN_BCHAIN_SIG_RAW_ECDSA Assinatura RAW, no formato v || r || s. Tendo 'v' o tamanho de 1 byte e 'r' e 's' cada uma o tamanho de 32 bytes. 'v' é o bit de paridade de 'r' podendo ter os valores 0 ou 1.
DinamoApi.DN_BCHAIN_SIG_BIP340 Assinatura BIP340 - Schnorr 64 bytes.
bHashModeTipo do hash.
Valor Significado
DinamoApi.DN_BCHAIN_HASH_BTC_H160 Bitcoin H160.
DinamoApi.DN_BCHAIN_HASH_RIPEMD160 RIPEMD160.
DinamoApi.DN_BCHAIN_HASH_SHA256 SHA256
DinamoApi.DN_BCHAIN_HASH_BTC_SHA256_2X Bitcoin SHA256 2x.
DinamoApi.DN_BCHAIN_HASH_KECCAK256 KECCAK256.
DinamoApi.DN_BCHAIN_HASH_BLAKE2B224 Blake2b 224.
DinamoApi.DN_BCHAIN_HASH_BLAKE2B256 Blake2b 256.
pbHashHash calculado de acordo com o informado em bHashMode.
szPkIdentificador da chave privada.
Retorna
Assinatura.
Exceções
DinamoExceptionLança exceção em caso de erro.
Exemplos
bchain_sign_hash.cs.

◆ BchainGetPubKey()

byte[] BchainGetPubKey ( byte bType,
string szId )
inline

Recupera uma chave pública usando o módulo blockchain.

Parâmetros
bTypeTipo de chave.
Valor Significado
DinamoApi.DN_BCHAIN_PBK_SEC1_UNCOMP ECDSA SEC1 não comprimida.
DinamoApi.DN_BCHAIN_PBK_SEC1_COMP ECDSA SEC1 comprimida.
DinamoApi.DN_BCHAIN_PBK_BIP340 Schnorr, BIP-340.
DinamoApi.DN_BCHAIN_PBK_ED25519 Ed25519.
DinamoApi.DN_BCHAIN_PBK_AT_ALGORAND Algorand.
DinamoApi.DN_BCHAIN_PBK_BIP32_XPUB BIP32 XPub.
DinamoApi.DN_BCHAIN_PBK_AT_SOL Solana.
DinamoApi.DN_BCHAIN_PBK_AT_XLM Stellar Lumens..
DinamoApi.DN_BCHAIN_PBK_ADA_VK Cardano CIP-0016 / CIP-0005.
DinamoApi.DN_BCHAIN_PBK_AT_SS58 SS58.
DinamoApi.DN_BCHAIN_PBK_TON TEP-2 "User-friendly"/"armored".
DinamoApi.DN_BCHAIN_PBK_E_UNCOMP | SEC1_UNCOMP sem o prefixo 0x04 (X || Y). Apenas alt_bn128 (EIPs 196/197).
szIdIdentificador da chave privada.
Retorna
Chave pública.
Exceções
DinamoExceptionLança exceção em caso de erro.
Exemplos
bchain_get_pub.cs.

◆ BchainGetAddress()

byte[] BchainGetAddress ( byte bType,
byte bVersion,
string szHrp,
string szId )
inline

Recupera o endereço de uma chave usando o módulo blockchain.

Parâmetros
bTypeTipo do endereço a ser gerado. Pode ser um dos valores abaixo.
Valor Significado
DinamoApi.DN_BCHAIN_AT_BTC_P2PKH Endereço P2PKH.
DinamoApi.DN_BCHAIN_AT_BTC_P2SH Endereço P2SH BIP13..
DinamoApi.DN_BCHAIN_AT_BTC_P2WPKH Endereço BIP173, version 0.
DinamoApi.DN_BCHAIN_AT_BTC_P2WSH Endereço BIP173, version 0.
DinamoApi.DN_BCHAIN_AT_ETH_EOA Endereço ETH EOA.
DinamoApi.DN_BCHAIN_AT_ETH_EOA_MC_CKS Endereço ETH EOA MC CKS. EIP55.
DinamoApi.DN_BCHAIN_AT_ETH_EOA_ICAP Endereço ETH EOA ICAP.
DinamoApi.DN_BCHAIN_AT_ALGORAND Endereço Algorand.
DinamoApi.DN_BCHAIN_AT_TRON_HEX Endereço TRON hexadecimal.
DinamoApi.DN_BCHAIN_AT_TRON_B58 Endereço TRON Base 58.
DinamoApi.DN_BCHAIN_AT_XRP Endereço XRP Ledger/Ripple.
DinamoApi.DN_BCHAIN_AT_SOL Endereço Solana.
DN_BCHAIN_AT_XLM Endereço Stellar SEP-23.
DN_BCHAIN_AT_ADA_PKH Endereço Cardano CIP-0019, Shelley, Header type: 0110 (6).
DN_BCHAIN_AT_ADA_SH Endereço Cardano CIP-0019, Shelley, Header type: 0111 (7).
DN_BCHAIN_AT_LUNC Endereço Terra Classic.
DN_BCHAIN_AT_SS58 Endereço SS58.
DN_BCHAIN_AT_XTZ Endereço Tezos.
DN_BCHAIN_AT_TON Endereço Toncoin TEP-2.
DN_BCHAIN_AT_TON_SH Endereço Toncoin TEP-2 SH.
DN_BCHAIN_AT_ATOM Endereço Atom ADR-028.
DN_BCHAIN_AT_BTC_P2TR Endereço BTC BIP350, version 1-16.
DN_BCHAIN_AT_LTC_P2PKH Endereço LTC P2PKH.
DN_BCHAIN_AT_LTC_P2SH Endereço LTC P2SH BIP13.
DN_BCHAIN_AT_LTC_P2WPKH Endereço LTC P2WPKH BIP173.
DN_BCHAIN_AT_LTC_P2WSH Endereço LTC P2WSH BIP173.
DN_BCHAIN_AT_LTC_P2TR Endereço LTC BIP350, version 1-16.
Parâmetros
bVersionVersão do endereço. Ver tabela abaixo.
Valor Significado
DinamoApi.DN_BCHAIN_VER_UNUSED Parâmetro não utilizado.
DinamoApi.DN_BCHAIN_VER_BTC_A1_MAIN_NET Bitcoin A1 mainnet.
DinamoApi.DN_BCHAIN_VER_BTC_AMN_TEST_NET Bitcoin P2PKH testnet.
DinamoApi.DN_BCHAIN_VER_BTC_A3_MAIN_NET Bitcoin A3 mainnet.
DinamoApi.DN_BCHAIN_VER_BTC_B32_WITVER Bitcoin B32 witver.
DinamoApi.DN_BCHAIN_VER_BTC_SEGWIT0 Bitcoin SEGWIT0
DinamoApi.DN_BCHAIN_VER_BTC_SEGWIT1 Bitcoin SEGWIT1
DinamoApi.DN_BCHAIN_VER_HTR_MAINNET Hathor mainnet.
DinamoApi.DN_BCHAIN_VER_HTR_TESTNET Hathor testnet.
DinamoApi.DN_BCHAIN_VER_HTR_P2SH_MAINNET Hathor P2SH mainnet.
DinamoApi.DN_BCHAIN_VER_HTR_P2SH_TESTNET Hathor P2SH testnet.
DinamoApi.DN_BCHAIN_VER_XRP_CLASSIC XRP Ledger/Ripple Classic.
DinamoApi.DN_BCHAIN_VER_LTC_SEGWIT0 Litecoin SEGWIT0
DinamoApi.DN_BCHAIN_VER_LTC_SEGWIT1 Litecoin SEGWIT1
DinamoApi.DN_BCHAIN_VER_LTC_AL_MAINNET Litecoin AL mainnet.
DinamoApi.DN_BCHAIN_VER_LTC_Amn_TESTNET Litecoin Amn testnet.
DinamoApi.DN_BCHAIN_VER_LTC_AM_MAINNET Litecoin AM mainnet.
DinamoApi.DN_BCHAIN_VER_LTC_AQ_TESTNET Litecoin AQ testnet.
DinamoApi.DN_BCHAIN_VER_ADA_MAINNET Cardano mainnet.
DinamoApi.DN_BCHAIN_VER_ADA_TESTNET Cardano testnet.
DinamoApi.DN_BCHAIN_VER_SS58_POLKADOT Polkadot SS58.
DinamoApi.DN_BCHAIN_VER_SS58_GEN_SUBST Generic Substrate SS58.
DinamoApi.DN_BCHAIN_VER_TON_MN_BWORK Toncoin wallet v4r2; mainnet; basic workchain.
DinamoApi.DN_BCHAIN_VER_TON_MN_MCHAIN Toncoin wallet v4r2; mainnet; masterchain. *
DinamoApi.DN_BCHAIN_VER_TON_TN_BWORK Toncoin wallet v4r2; testnet; basic workchain.
DinamoApi.DN_BCHAIN_VER_TON_TN_MCHAIN Toncoin wallet v4r2; testnet; masterchain.
szHrpHRP (Human Readable Part) da chave. Os valores da tabela são aceitos. Deve ter tamanho máximo de DinamoApi.DN_BCHAIN_MAX_HRP
Valor Significado
DinamoApi.DN_BCHAIN_HRP_UNUSED Parâmetro não utilizado.
DinamoApi.DN_BCHAIN_HRP_BTC_MAIN_NET Bitcoin mainnet.
DinamoApi.DN_BCHAIN_HRP_BTC_TEST_NET Bitcoin testnet.
<see cref="DinamoApi.DN_BCHAIN_HRP_LTC_MAINNET" Litecoin mainnet.
<see cref="DinamoApi.DN_BCHAIN_HRP_LTC_TESTNET" Litecoin testnet.
<see cref="DinamoApi.DN_BCHAIN_HRP_TON_BNCBLE" Toncoin bounceable.
<see cref="DinamoApi.DN_BCHAIN_HRP_TON_NBNCBLE" Toncoin non-bounceable.
szIdIdentificador da chave privada.
Retorna
Endereço.
Exceções
DinamoExceptionLança exceção em caso de erro.
Exemplos
bchain_get_address.cs.

◆ BchainEdDsaSign()

byte[] BchainEdDsaSign ( byte bType,
string szCtxStr,
byte[] pbData,
string szId )
inline

Gera uma assinatura EdDsa usando o módulo blockchain.

Parâmetros
bTypeTipo da assinatura a ser gerada. Pode ser um dos valores abaixo.
Valor Significado
DinamoApi.DN_BCHAIN_EDDSA_SIG_PURE Assinatura EdDsa Pure.
DinamoApi.DN_BCHAIN_EDDSA_SIG_ALGORAND Assinatura EdDsa Algorand.
DinamoApi.DN_BCHAIN_EDDSA_SIG_XRP Assinatura EdDsa XRP.
DinamoApi.DN_BCHAIN_EDDSA_SIG_SOL Assinatura EdDsa Solana.
DinamoApi.DN_BCHAIN_EdDSA_SIG_XLM Assinatura EdDsa Stellar.
DinamoApi.DN_BCHAIN_EdDSA_SIG_ADA Assinatura EdDsa Cardano.
DinamoApi.DN_BCHAIN_EdDSA_SIG_DOT Assinatura EdDsa Polkadot.
DinamoApi.DN_BCHAIN_EdDSA_SIG_XTZ Assinatura EdDsa Tezos codificada em b58.
DinamoApi.DN_BCHAIN_EdDSA_SIG_XTZ_PH Assinatura EdDsa Tezos (igual à DinamoApi.DN_BCHAIN_EdDSA_SIG_XTZ_PH), utilizando blake2b-256 como dado.
szCtxStrString de contexto (context-string) como definido na RFC-8032 de tamanho máximo DinamoApi.DN_BCHAIN_EDDSA_MAX_CSTRL. Pode ser passado DinamoApi.DN_BCHAIN_EDDSA_CSTR_UNUSED.
pbDataDados a serem assinados.
szIdIdentificador da chave privada.
Retorna
Assinatura.
Exceções
DinamoExceptionLança exceção em caso de erro.
Exemplos
bchain_eddsa_sign.cs.

◆ BchainGenerateKey()

void BchainGenerateKey ( Dinamo.Hsm.DinamoClient.KEY_ALG dwAlg,
string szId,
bool isExportable,
bool isTemporary )
inline

Gera uma chave marcada para uso no módulo blockchain.

Parâmetros
dwAlgAlgoritmo a ser utilizado. Dinamo.Hsm.DinamoClient.KEY_ALG
szIdIdentificador da chave.
isExportableA chave poderá ser exportada do HSM.
isTemporaryA chave existirá apenas enquanto a sessão estiver ativa. Ela será destruída após o encerramento da sessão.
Exceções
DinamoExceptionLança exceção em caso de erro.
Exemplos
bchain_eddsa_sign.cs.