NET API
HSM Dinamo
Cargando...
Buscando...
No se han encontrado entradas
Blockchain

Descripción detallada

Operaciones de apoyo a la seguridad de las estructuras basadas en Blockchain.

Las API del módulo Blockchain están destinadas a operaciones específicas para procesar la criptografía de la red blockchain y las especificaciones BIP, EIP y SLIP.

La firma ECDSA, por ejemplo, está especializada para evitar maleabilidad de la firmacon la restricción de BAJA-S.

Ejemplos de operaciones disponibles en el módulo Blockchain:

  1. Generación de claves privadas extendidas (XPrv) en el estándar BIP32.
  1. Derivación de claves infantiles en las normas BIP32 y SLIP10.
  1. Recuperación de direcciones.
  1. Firmas digitales ECDSA, en las normas SECG DER estrictas (BIP62/66 y BIP 146) y Schnorr en la norma BIP340;
  1. Firmas digitales Curva EdDSA 25519.
  1. Verificación de firmas.
  1. Importación y exportación de claves mediante varios formatos (WIF, Hex, Sec1, Xpriv, etc.).
  1. Recuperación de la clave pública con diferentes formatos (BIP32 Xpub, Sec1 con y sin compresión, Schnorr BIP340 etc).
  1. Dividir y recuperar secretos con el esquema M de N utilizando SSS (Shamir's Secret Sharing).
  1. Operaciones con la curva alt_bn128según la EIP-196.
Atención
El módulo blockchain no maneja ni ensambla los detalles de la transacción para cada red en particular; esto debe dejarse a la aplicación. El trabajo del HSM es proteger la clave privada en un entorno seguro, generar y devolver una firma de acuerdo con los parámetros pasados por la aplicación que llama.

Redes compatibles

A continuación figura la lista de redes cuyo cifrado es compatible con HSM:

Observación
Los algoritmos enumerados son los actualmente implementados en el HSM que permiten firmar transacciones en la red y no cubren necesariamente todas las opciones definidas en la especificación de red. Dinamo Networks Si tiene alguna pregunta, no dude en ponerse en contacto y preguntar.
Entonces Nombre Símbolo Alg. Firma en HSM Curva Obs
Bitcoin BTC ECDSA secp256k1
Ethereum ETH ECDSA secp256k1
Tether USDT ECDSA secp256k1 token en varias redes (por ejemplo, Ethereum, Algorand)
Binance Coin BNB ECDSA secp256k1
imagen Moneda USD USDC ECDSA secp256k1 ficha
Solana SOL EdDSA edwards25519
XRP XRP ECDSA, EdDSA secp256k1, edwards25519
Terra Classic LUNC ECDSA secp256k1
Cardano ADA EdDSA edwards25519
Avalancha AVAX ECDSA secp256k1
imagen Dogecoin DOGE ECDSA secp256k1
imagen Binance USD BUSD ECDSA secp256k1 ficha
Polkadot DOT ECDSA, EdDSA secp256k1, edwards25519
Shiba Inu SHIB ECDSA secp256k1 ficha
Bitcoin envuelto WBTC ECDSA, EdDSA secp256k1, edwards25519 ficha
Polígono MATIC ECDSA secp256k1
Cronos CRO ECDSA secp256k1
Dai DAI ECDSA secp256k1 ficha
Protocolo NEAR CERCA DE ECDSA secp256k1
Litecoin LTC ECDSA secp256k1
TRON TRX ECDSA secp256k1
imagen ApeCoin EPA ECDSA secp256k1 ficha
Cosmos ATOM ECDSA secp256k1
Bitcoin Efectivo BCH ECDSA secp256k1
Algoritmo ALGO EdDSA edwards25519
Token digital brasileño BRZ ECDSA secp256k1 ficha
Celo Real Brasileño CREAL ECDSA secp256k1 ficha
Celo Dólar CUSD ECDSA secp256k1 ficha
Axie Infinito AXS ECDSA secp256k1 ficha/moneda
Fantom FTM ECDSA secp256k1
Uniswap UNI ECDSA secp256k1 ficha
Estelar XLM EdDSA edwards25519
Tezos XTZ ECDSA, EdDSA secp256k1, edwards25519
CELO CELO ECDSA secp256k1 ficha/moneda
imagen Toncoin TON EdDSA edwards25519
Enlace en cadena ENLACE ECDSA secp256k1 ficha

La aplicación del HSM cumple las normas definidas en la documentación que se indica a continuación:

Funciones

void BchainCreateXPrvBtcMinikey (cadena szId, bool isExportable, bool isTemporary)
 Crea una clave privada XPriv para Bitcoin en formato minikey.
 
void BchainCreateXPrvBip32 (cadena szId, byte bVersion, bool isExportable, bool isTemporary)
 Crea una clave privada XPriv en formato BIP32.
 
void BchainCreateXPrvBip32Seed (cadena szId, DinamoApi.DN_BCHAIN_BIP32_SEED_XPRV_DATA pData, bool isExportable, bool isTemporary)
 Crea una clave privada XPriv en formato BIP32 utilizando semilla.
 
void BchainCreateXPrvBip39Seed (cadena szId, DinamoApi.DN_BCHAIN_BIP39_SEED_XPRV_DATA pData, bool isExportable, bool isTemporary)
 Crea una clave privada XPriv en formato BIP39 utilizando semilla.
 
DinamoApi.DN_BCHAIN_KEY_INFO BchainCreateBip32Ckd (byte bVersion, UInt32 dwIndex, cadena szPar, cadena szDst, bool isExportable, bool isTemporary)
 Realiza una operación de Derivación de Clave Hija (CKD). Deriva una clave privada extendida (XPrv) para la cadena de bloques en el estándar BIP32.
 
byte[] BchainSignHash (byte bType, byte bHashMode, byte[] pbHash, cadena szPk)
 Firma un hash utilizando el módulo Blockchain.
 
byte[] BchainGetPubKey (byte bType, cadena szId)
 Recupera una clave pública utilizando el módulo blockchain.
 
byte[] BchainGetAddress (byte bType, byte bVersion, cadena szHrp, cadena szId)
 Recupera la dirección de una clave utilizando el módulo blockchain.
 
byte[] BchainEdDsaSign (byte bType, cadena szCtxStr, byte[] pbData, cadena szId)
 Genera una firma EdDsa utilizando el módulo blockchain.
 
void BchainGenerateKey (Dinamo.Hsm.DinamoClient.KEY_ALG dwAlg, string szId, bool isExportable, bool isTemporary)
 Genera una clave marcada para su uso en el módulo blockchain.
 

Funciones

BchainCreateXPrvBtcMinikey()

void BchainCreateXPrvBtcMinikey ( cadena szId,
bool isExportable,
bool isTemporary )
en línea

Crea una clave privada XPriv para Bitcoin en formato minikey.

Parámetros
szIdIdentificador clave.
isExportableLa clave puede exportarse desde el HSM.
isTemporaryLa clave sólo existirá mientras la sesión esté activa. Se destruirá una vez cerrada la sesión.
Excepciones
DinamoExceptionLanza una excepción en caso de error.

BchainCreateXPrvBip32()

void BchainCreateXPrvBip32 ( cadena szId,
byte bVersión,
bool isExportable,
bool isTemporary )
en línea

Crea una clave privada XPriv en formato BIP32.

Parámetros
szIdIdentificador clave.
bVersiónVersión clave. Consulte la tabla siguiente.
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.
isExportableLa clave puede exportarse desde el HSM.
isTemporaryLa clave sólo existirá mientras la sesión esté activa. Se destruirá una vez cerrada la sesión.
Excepciones
DinamoExceptionLanza una excepción en caso de error.
Ejemplos
bchain_ckd.cs, bchain_get_address.cs, bchain_get_pub.cs y bchain_sign_hash.cs.

BchainCreateXPrvBip32Seed()

void BchainCreateXPrvBip32Seed ( cadena szId,
DinamoApi.DN_BCHAIN_BIP32_SEED_XPRV_DATA pData,
bool isExportable,
bool isTemporary )
en línea

Crea una clave privada XPriv en formato BIP32 utilizando semilla.

Parámetros
szIdIdentificador clave.
pDataDatos para generar la clave.
isExportableLa clave puede exportarse desde el HSM.
isTemporaryLa clave sólo existirá mientras la sesión esté activa. Se destruirá una vez cerrada la sesión.
Excepciones
DinamoExceptionLanza una excepción en caso de error.

BchainCreateXPrvBip39Seed()

void BchainCreateXPrvBip39Seed ( cadena szId,
DinamoApi.DN_BCHAIN_BIP39_SEED_XPRV_DATA pData,
bool isExportable,
bool isTemporary )
en línea

Crea una clave privada XPriv en formato BIP39 utilizando semilla.

Parámetros
szIdIdentificador clave.
pDataDatos para generar la clave.
isExportableLa clave puede exportarse desde el HSM.
isTemporaryLa clave sólo existirá mientras la sesión esté activa. Se destruirá una vez cerrada la sesión.
Excepciones
DinamoExceptionLanza una excepción en caso de error.

BchainCreateBip32Ckd()

DinamoApi.DN_BCHAIN_KEY_INFO BchainCreateBip32Ckd ( byte bVersión,
UInt32 dwIndex,
cadena szPar,
cadena szDst,
bool isExportable,
bool isTemporary )
en línea

Realiza una operación de Derivación de Clave Hija (CKD). Deriva una clave privada extendida (XPrv) para la cadena de bloques en el estándar BIP32.

Parámetros
bVersiónVersión clave. Consulte la tabla siguiente.
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.
dwIndexÍndice de la clave a derivar. Clave no endurecido utilizar el 0 a 231-1 y llaves endurecido índices de uso (sin restricciones de seguridad) de 231 a 232-1como se especifica en la norma BIP32. Se recomienda encarecidamente generar claves reforzadas. Utilice DinamoApi.DN_BCHAIN_SECURE_BIP32_INDEX_BASE como base para generar índices endurecido (Ej. DinamoApi.DN_BCHAIN_SECURE_BIP32_INDEX_BASE + 1 ...).
szParIdentificador de la clave padre.
szDstIdentificador de la clave derivada. Debe ser una clave XPrv(DinamoApi.DN_BCHAIN_BIP32_XPRV etc.)
isExportableLa clave puede exportarse desde el HSM.
isTemporaryLa clave sólo existirá mientras la sesión esté activa. Se destruirá una vez cerrada la sesión.
Devolución
Información sobre la clave derivada.
Excepciones
DinamoExceptionLanza una excepción en caso de error.
Ejemplos
bchain_ckd.cs.

BchainSignHash()

byte[] BchainSignHash ( byte bTipo,
byte bHashMode,
byte[] pbHash,
cadena szPk )
en línea

Firma un hash utilizando el módulo Blockchain.

Parámetros
bTipoTipo de llave.
Valor Significado
DinamoApi.DN_BCHAIN_SIG_DER_ECDSA Firma DER, en el formato v || DER. SECG!SEC1 DER estricto con S baja como se describe en BIP62/66, BIP146, EIP2. Con 'v' de un tamaño de 1 byte. v' es el bit de paridad de 'r' y puede tener los valores 0 ó 1.
DinamoApi.DN_BCHAIN_SIG_RAW_ECDSA Firma RAW, en el formato v || r || s. v' tiene un tamaño de 1 byte y 'r' y 's' tienen un tamaño de 32 bytes cada uno. v' es el bit de paridad de 'r' y puede tener los valores 0 o 1.
DinamoApi.DN_BCHAIN_SIG_BIP340 Firma BIP340 - Schnorr 64 bytes.
bHashModeTipo 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.
pbHashHash calculado según bHashMode.
szPkIdentificador de la clave privada.
Devolución
Firma.
Excepciones
DinamoExceptionLanza una excepción en caso de error.
Ejemplos
bchain_sign_hash.cs.

BchainGetPubKey()

byte[] BchainGetPubKey ( byte bTipo,
cadena szId )
en línea

Recupera una clave pública utilizando el módulo blockchain.

Parámetros
bTipoTipo de llave.
Valor Significado
DinamoApi.DN_BCHAIN_PBK_SEC1_UNCOMP ECDSA SEC1 sin comprimir.
DinamoApi.DN_BCHAIN_PBK_SEC1_COMP ECDSA SEC1 comprimido.
DinamoApi.DN_BCHAIN_PBK_BIP340 Schnorr, BIP-340.
DinamoApi.DN_BCHAIN_PBK_ED25519 Ed25519.
DinamoApi.DN_BCHAIN_PBK_AT_ALGORAND Algoritmo.
DinamoApi.DN_BCHAIN_PBK_BIP32_XPUB BIP32 XPub.
DinamoApi.DN_BCHAIN_PBK_AT_SOL Solana.
szIdIdentificador de la clave privada.
Devolución
Clave pública.
Excepciones
DinamoExceptionLanza una excepción en caso de error.
Ejemplos
bchain_get_pub.cs.

BchainGetAddress()

byte[] BchainGetAddress ( byte bTipo,
byte bVersión,
cadena szHrp,
cadena szId )
en línea

Recupera la dirección de una clave utilizando el módulo blockchain.

Parámetros
bTipoTipo de dirección a generar. Puede ser uno de los valores siguientes.
Valor Significado
DinamoApi.DN_BCHAIN_AT_BTC_P2PKH Dirección P2PKH.
DinamoApi.DN_BCHAIN_AT_BTC_P2SH Dirección P2SH BIP13..
DinamoApi.DN_BCHAIN_AT_BTC_B32_PKH Dirección BIP32 P2PKH BIP173.
DinamoApi.DN_BCHAIN_AT_BTC_B32_SH Dirección BIP32 P2SH.
DinamoApi.DN_BCHAIN_AT_ETH_EOA Dirección ETH EOA.
DinamoApi.DN_BCHAIN_AT_ETH_EOA_MC_CKS Dirección ETH EOA MC CKS. EIP55.
DinamoApi.DN_BCHAIN_AT_ETH_EOA_ICAP Dirección ETH EOA ICAP.
DinamoApi.DN_BCHAIN_AT_ALGORAND Dirección Algorand.
DinamoApi.DN_BCHAIN_AT_TRON_HEX Dirección hexadecimal de TRON.
DinamoApi.DN_BCHAIN_AT_TRON_B58 Dirección TRON Base 58.
DinamoApi.DN_BCHAIN_AT_XRP Dirección de XRP Ledger/Ripple.
DinamoApi.DN_BCHAIN_AT_SOL Dirección Solana.
Parámetros
bVersiónVersión de la dirección. Consulte la tabla siguiente.
Valor Significado
DinamoApi.DN_BCHAIN_VER_UNUSED Parámetro no utilizado.
DinamoApi.DN_BCHAIN_VER_BTC_A1_MAIN_NET Red principal de Bitcoin A1.
DinamoApi.DN_BCHAIN_VER_XRP_CLASSIC XRP Ledger/Ripple Classic.
DinamoApi.DN_BCHAIN_VER_BTC_AMN_TEST_NET Red de prueba Bitcoin P2PKH.
DinamoApi.DN_BCHAIN_VER_BTC_A3_MAIN_NET Red principal de Bitcoin A3.
DinamoApi.DN_BCHAIN_VER_BTC_B32_WITVER Bitcoin B32 witver.
DinamoApi.DN_BCHAIN_VER_HTR_MAINNET Hathor mainnet.
DinamoApi.DN_BCHAIN_VER_HTR_TESTNET Hathor testnet.
DinamoApi.DN_BCHAIN_VER_HTR_P2SH_MAINNET Red principal Hathor P2SH.
DinamoApi.DN_BCHAIN_VER_HTR_P2SH_TESTNET Hathor P2SH testnet.
szHrpHRP (Human Readable Part) de la clave. Se aceptan los valores de la tabla. Debe tener un tamaño máximo de DinamoApi.DN_BCHAIN_MAX_HRP
Valor Significado
DinamoApi.DN_BCHAIN_HRP_UNUSED Parámetro no utilizado.
DinamoApi.DN_BCHAIN_HRP_BTC_MAIN_NET Bitcoin mainnet.
DinamoApi.DN_BCHAIN_HRP_BTC_TEST_NET Bitcoin testnet.
szIdIdentificador de la clave privada.
Devolución
Dirección.
Excepciones
DinamoExceptionLanza una excepción en caso de error.
Ejemplos
bchain_get_address.cs.

BchainEdDsaSign()

byte[] BchainEdDsaSigno ( byte bTipo,
cadena szCtxStr,
byte[] pbData,
cadena szId )
en línea

Genera una firma EdDsa utilizando el módulo blockchain.

Parámetros
bTipoTipo de suscripción que se va a generar. Puede ser uno de los valores siguientes.
Valor Significado
DinamoApi.DN_BCHAIN_EDDSA_SIG_PURE EdDsa Pure Signature.
DinamoApi.DN_BCHAIN_EDDSA_SIG_ALGORAND Firma del algoritmo EdDsa.
DinamoApi.DN_BCHAIN_EDDSA_SIG_XRP Firma EdDsa XRP.
DinamoApi.DN_BCHAIN_EDDSA_SIG_SOL Firma EdDsa Solana.
szCtxStrCadena de contexto definida en RFC-8032 de tamaño máximo DinamoApi .DN_BCHAIN_EDDSA_MAX_CSTRL. Se puede pasar DinamoApi.DN_BCHAIN_EDDSA_CSTR_UNUSED.
pbDataDatos a firmar.
szIdIdentificador de la clave privada.
Devolución
Firma.
Excepciones
DinamoExceptionLanza una excepción en caso de error.
Ejemplos
bchain_eddsa_sign.cs.

BchainGenerateKey()

void BchainGenerateKey ( Dinamo .Hsm.DinamoClient.KEY_ALG dwAlg,
cadena szId,
bool isExportable,
bool isTemporary )
en línea

Genera una clave marcada para su uso en el módulo blockchain.

Parámetros
dwAlgAlgoritmo que debe utilizarse. Dinamo.Hsm.DinamoClient.KEY_ALG
szIdIdentificador clave.
isExportableLa clave puede exportarse desde el HSM.
isTemporaryLa clave sólo existirá mientras la sesión esté activa. Se destruirá una vez cerrada la sesión.
Excepciones
DinamoExceptionLanza una excepción en caso de error.
Ejemplos
bchain_eddsa_sign.cs.