API C/C++
HSM Dinamo
Cargando...
Buscando...
No se han encontrado entradas
Módulo Blockchain

Descripción detallada

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

Véase Documentación técnica de HSM sobre detalles de funcionamiento, especificaciones utilizadas, licencias e nombre comercial del módulo.

Definiciones y macros

#define DN_BCHAIN_CKD_OPT_BIP32_XPRV (1)
 
#define DN_BCHAIN_CKD_OPT_BIP32_ED25519_XPRV (2)
 
#define DN_BCHAIN_CKD_OPT_BIP32_P256_XPRV (3)
 

Funciones

int AAP_API DBchainCreateXPrv(HSESSIONCTX hSession, BYTE bType, DWORD dwAttributes, const char *szId, const BYTE *pcbData, DWORD dwDataLen, DWORD dwReserved)
 
int AAP_API DBchainCreateBip32Ckd(HSESSIONCTX hSession, BYTE bVersion, DWORD dwIndex, DWORD dwAttributes, const char *cszPar, const char *cszDst, DN_BCHAIN_KEY_INFO *pKeyInfo, DWORD dwReserved)
 
int AAP_API DBchainCreateCkd (HSESSIONCTX hSession, DWORD dwOpt, const BYTE *pbIn, BYTE *pbOut, DWORD dwReserved)
 
int AAP_API DBchainGetAddress(HSESSIONCTX hSession, BYTE bType, BYTE bVer, const char *cszHrp, const char *cszPk, BYTE *pbAddress, DWORD *pdwAddressLen, DWORD dwReserved)
 
int AAP_API DBchainSignHash(HSESSIONCTX hSession, BYTE bType, BYTE bHashMode, BYTE *pbHash, DWORD dwHashLen, const char *cszPk, BYTE *pbSig, DWORD *pdwSigLen, DWORD dwReserved)
 
int AAP_API DBchainVerify(HSESSIONCTX hSession, BYTE bSigType, BYTE bHashMode, const BYTE *pbHash, DWORD dwHashLen, const BYTE *pbSig, DWORD dwSigLen, BYTE bInPbkType, const BYTE *pbInPbk, BYTE bInPbkLen, DWORD dwReserved)
 
int AAP_API DBchainEdDsaSign(HSESSIONCTX hSession, BYTE bType, const char *cszCtxStr, BYTE *pbData, DWORD dwDataLen, const char *cszPk, BYTE *pbSig, DWORD *pdwSigLen, DWORD dwReserved)
 
int AAP_API DBchainEdDsaVerify(HSESSIONCTX hSession, BYTE bType, const char *cszCtxStr, BYTE *pbData, DWORD dwDataLen, BYTE bPbkType, BYTE *pbPbk, DWORD dwPbkLen, BYTE *pbSig, DWORD dwSigLen, DWORD dwReserved)
 
int AAP_API DBchainPkImport(HSESSIONCTX hSession, BYTE bFormat, DWORD dwAttributes, const char *cszId, const BYTE *pcbData, DWORD dwDataLen, DWORD dwReserved)
 
int AAP_API DBchainPkExport(HSESSIONCTX hSession, BYTE bFormat, BYTE bVersion, BYTE bCompressed, const char *cszId, BYTE **ppbData, DWORD *pdwDataLen, DWORD dwReserved)
 
int AAP_API DBchainGetPubKey(HSESSIONCTX hSession, BYTE bType, const char *cszId, BYTE *pbData, DWORD *pdwDataLen, DWORD dwReserved)
 
int AAP_API DBchainRecoverPbkFromSignature(HSESSIONCTX hSession, BYTE bSigType, BYTE bHashMode, const BYTE *pbHash, DWORD dwHashLen, const BYTE *pbSig, DWORD dwSigLen, DN_BCHAIN_PBK *pPbk, DWORD dwReserved)
 
int AAP_API DBchainGetKeyInfo(HSESSIONCTX hSession, DWORD dwReserved, const char *cszId, void *pvData, DWORD *pdwDataLen)
 
int AAP_API DBchainHashData(HSESSIONCTX hSession, BYTE bMode, BYTE *pbData, DWORD dwDataLen, BYTE *pbHash, DWORD *pdwHashLen, DWORD dwReserved)
 
int AAP_API DBchainEd2X(HSESSIONCTX hSession, const char *cszPk, const char *cszTo, DWORD dwAttr, DWORD dwReserved)
 

Definiciones y macros

◆ DN_BCHAIN_CKD_OPT_BIP32_XPRV

#define DN_BCHAIN_CKD_OPT_BIP32_XPRV   (1)

#include <dinamo.h>

Derivación de claves secundarias para BIP32 XPrv.

◆ DN_BCHAIN_CKD_OPT_BIP32_ED25519_XPRV

#define DN_BCHAIN_CKD_OPT_BIP32_ED25519_XPRV   (2)

#include <dinamo.h>

Derivación de claves secundarias para BIP32 Ed25519 XPrv.

Ejemplos
ckd_bchain_ed25519.c.

◆ DN_BCHAIN_CKD_OPT_BIP32_P256_XPRV

#define DN_BCHAIN_CKD_OPT_BIP32_P256_XPRV   (3)

#include <dinamo.h>

Derivación de claves secundarias para BIP32 P-256 XPrv.

Funciones

DBchainCreateXPrv()

int AAP_API DBchainCreateXPrv ( HSESSIONCTX hSession,
BYTE bType,
DWORD dwAttributes,
const char * szId,
const BYTE * pcbData,
DWORD dwDataLen,
DWORD dwReserved )

#include <dinamo.h>

Crea una clave privada extendida (XPrv) para el blockchain en el estándar BIP32.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]bTypeTipo de generación de claves.
Valor Significado
DN_BCHAIN_BTC_MINIKEY Bitcoin minikey. pcbData debe ser NULL y dwDataLen debe ser 0.
DN_BCHAIN_BIP32_SEED_XPRV BIP32 seed XPrv. pcbData debe contener la estructura DN_BCHAIN_BIP32_SEED_XPRV_DATA.
DN_BCHAIN_BIP39_SEED_XPRV BIP39 seed XPrv. pcbData debe contener la estructura DN_BCHAIN_BIP39_SEED_XPRV_DATA.
DN_BCHAIN_BIP32_XPRV BIP32 XPrv. dwDataLen debe ser un BYTE que contenga la versión de la clave. Véanse las notas para más detalles.
DN_BCHAIN_BIP32_ED25519_XPRV BIP32 Ed25519 XPrv. dwDataLen debe ser un BYTE que contenga la versión de la clave. Véanse las notas para más detalles.
DN_BCHAIN_BIP32_P256_XPRV BIP32 P-256 XPrv. dwDataLen debe ser un BYTE que contenga la versión de la clave. Consulte las notas para obtener más detalles.
[in]dwAttributesParámetros adicionales de la clave. Consulte las opciones de la función DGenerateKey(). Esta API incluye automáticamente el indicador BCHAIN_KEY, necesario para las operaciones de blockchain.
[in]szIdNombre de la clave en el HSM. Debe tener un tamaño máximo de MAX_OBJ_ID_FQN_LEN.
[in]pcbDataBuffer que contiene los datos necesarios para generar la clave. Los datos de entrada deben pasarse según la opción bType y el tamaño de los datos pasados aquí debe especificarse en dwDataLen.
[in]dwDataLenTamaño de los datos pasados en pcbData.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Notas
Tabla de opciones de versión para la clave XPrv.
Valor Significado
DN_BCHAIN_VER_BIP32_MAINNET Mainnet BIP32.
DN_BCHAIN_VER_BIP32_TESTNET Testnet BIP32.
DN_BCHAIN_VER_BIP32_HTR_MAINNET Mainnet BIP32 Hathor.
DN_BCHAIN_VER_BIP32_HTR_TESTNET Testnet BIP32 Hathor.
DN_BCHAIN_VER_BIP32_FPRV1 FPRV1 BIP32 Ed25519.
Ejemplos
ckd_bchain.c, ckd_bchain_ed25519.c, get_key_info_bchain.c, get_pub_key_bchain.c, import_export_bchain.c y sign_verify_bchain.c.

DBchainCreateBip32Ckd()

int AAP_API DBchainCreateBip32Ckd ( HSESSIONCTX hSession,
BYTE bVersion,
DWORD dwIndex,
DWORD dwAttributes,
const char * cszPar,
const char * cszDst,
DN_BCHAIN_KEY_INFO * pKeyInfo,
DWORD dwReserved )

#include <dinamo.h>

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

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]bVersionVersión clave.
Valor Significado
DN_BCHAIN_VER_BIP32_MAINNET Mainnet BIP32.
DN_BCHAIN_VER_BIP32_TESTNET Testnet BIP32.
DN_BCHAIN_VER_BIP32_HTR_MAINNET Mainnet BIP32 Hathor.
DN_BCHAIN_VER_BIP32_HTR_TESTNET Testnet BIP32 Hathor.
[in]dwIndexÍndice de la clave que debe derivarse. Las claves no endurecidas utilizan un índice de 0 a 231-1 y las endurecidas (sin restricciones de seguridad) utilizan índices de 231 a 232-1, tal y como se especifica en el estándar BIP32. Se recomienda encarecidamente generar claves reforzadas. Utilice DN_BCHAIN_SECURE_BIP32_INDEX_BASE como base para generar índices endurecidos (por ejemplo, DN_BCHAIN_SECURE_BIP32_INDEX_BASE + 1 ...).
[in]dwAttributesParámetros adicionales de la clave. Consulte las opciones de la función DGenerateKey(). Esta API incluye automáticamente el indicador BCHAIN_KEY, necesario para las operaciones de blockchain.
[in]cszParNombre de la clave padre en el HSM. Debe tener un tamaño máximo de MAX_OBJ_ID_FQN_LEN. Debe ser una clave XPrv(DN_BCHAIN_BIP32_XPRV etc.). Véase DBchainCreateXPrv().
[in]cszDstNombre de la clave que se derivará en el HSM. Debe tener un tamaño máximo de MAX_OBJ_ID_FQN_LEN.
[out]pKeyInfoPuntero a la estructura DN_BCHAIN_KEY_INFO que contendrá la información de la clave generada.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Notas
Un intento de derivar una clave privada BIP32 puede fallar si el índice seleccionado genera una clave no válida; en estos casos, la función puede devolver D_ERR_INVALID_KEY o D_ERR_OPERATION_FAILED, y el llamante deberá volver a intentarlo utilizando otros índices, de acuerdo con la política y la jerarquía de claves definidas por el propio cliente.
Ejemplos
ckd_bchain.c.

◆ DBchainCreateCkd()

int AAP_API DBchainCreateCkd ( HSESSIONCTX hSession,
DWORD dwOpt,
const BYTE * pbIn,
BYTE * pbOut,
DWORD dwReserved )

#include <dinamo.h>

Realiza una operación de derivación de clave secundaria (CKD). Deriva una clave privada extendida (XPrv) para la cadena de bloques.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]dwOptOpciones de derivación de la clave.
Valor Significado pbIn pbOut
DN_BCHAIN_CKD_OPT_BIP32_XPRV Deriva una clave en el patrón BIP32. DN_BCHAIN_BIP32_CKD_IN_INFO DN_BCHAIN_KEY_INFO
DN_BCHAIN_CKD_OPT_BIP32_ED25519_XPRV Deriva una clave ED25519 en el estándarBIP32/SLIP-0010 y variaciones como FPRV1. DN_BCHAIN_BIP32_ED25519_CKD_IN_INFO DN_BCHAIN_KEY_INFO
DN_BCHAIN_CKD_OPT_BIP32_P256_XPRV Deriva una clave P-256 en el estándarBIP32/SLIP-0010. DN_BCHAIN_BIP32_P256_CKD_IN_INFO DN_BCHAIN_KEY_INFO
[in]pbInBúfer que contiene la estructura de entrada para la derivación de la clave. La estructura debe elegirse de acuerdo con la opción dwOpt.
[out]pbOutBúfer que recibirá la estructura de salida con la información de la clave generada. La estructura debe elegirse de acuerdo con la opción dwOpt.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Notas
Un intento de derivar una clave privada BIP32 puede fallar si el índice seleccionado genera una clave no válida; en estos casos, la función puede devolver D_ERR_INVALID_KEY o D_ERR_OPERATION_FAILED, y corresponde al llamante realizar reintentos utilizando otros índices, de acuerdo con la política y la jerarquía de claves definidas por el propio cliente. En el caso de SLIP-0010, aunque el fallo también es posible (aunque muy improbable), el algoritmo ejecuta automáticamente estos reintentos internos y, si no es posible obtener una clave válida, también devolverá uno de estos errores.
Ejemplos
ckd_bchain_ed25519.c.

DBchainGetAddress()

int AAP_API DBchainGetAddress ( HSESSIONCTX hSession,
BYTE bType,
BYTE bVer,
const char * cszHrp,
const char * cszPk,
BYTE * pbAddress,
DWORD * pdwAddressLen,
DWORD dwReserved )

#include <dinamo.h>

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

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]bTypeTipo de dirección a generar. Puede ser uno de los valores siguientes.
Valor Significado
DN_BCHAIN_AT_BTC_P2PKH Dirección P2PKH.

bVer debe ser DN_BCHAIN_VER_BTC_A1_MAIN_NET, DN_BCHAIN_VER_BTC_A3_MAIN_NET, DN_BCHAIN_VER_BTC_AMN_TEST_NET, DN_BCHAIN_VER_HTR_MAINNET o DN_BCHAIN_VER_HTR_TESTNET.
cszHrp debe ser DN_BCHAIN_HRP_UNUSED.
DN_BCHAIN_AT_BTC_P2SH Dirección P2SH BIP13.

bVer debe ser DN_BCHAIN_VER_BTC_A1_MAIN_NET, DN_BCHAIN_VER_BTC_A3_MAIN_NET, DN_BCHAIN_VER_BTC_AMN_TEST_NET, DN_BCHAIN_VER_HTR_MAINNET o DN_BCHAIN_VER_HTR_TESTNET.
cszHrp debe ser DN_BCHAIN_HRP_UNUSED.
cszPk debe ser el script-hash.
DN_BCHAIN_AT_BTC_P2WPKH Dirección Dirección BIP173, versión 0.

bVer debe ser DN_BCHAIN_VER_BTC_B32_WITVER.
cszHrp puede ser DN_BCHAIN_HRP_BTC_MAIN_NET o DN_BCHAIN_HRP_BTC_TEST_NET.
DN_BCHAIN_AT_BTC_P2WSH Dirección Dirección BIP173, versión 0.

bVer debe ser DN_BCHAIN_VER_BTC_A1_MAIN_NET, DN_BCHAIN_VER_BTC_A3_MAIN_NET, DN_BCHAIN_VER_BTC_AMN_TEST_NET, DN_BCHAIN_VER_HTR_MAINNET o DN_BCHAIN_VER_HTR_TESTNET.
cszHrp debe ser DN_BCHAIN_HRP_UNUSED.
cszPk debe ser el script-hash.
DN_BCHAIN_AT_ETH_EOA Dirección ETH EOA.

bVer debe ser DN_BCHAIN_VER_UNUSED.
cszHrp debe ser DN_BCHAIN_HRP_UNUSED.
DN_BCHAIN_AT_ETH_EOA_MC_CKS Dirección ETH EOA MC CKS. EIP55.

bVer debe ser DN_BCHAIN_VER_UNUSED.
cszHrp debe ser DN_BCHAIN_HRP_UNUSED.
DN_BCHAIN_AT_ETH_EOA_ICAP Dirección ETH EOA ICAP.

bVer debe ser DN_BCHAIN_VER_UNUSED.
cszHrp debe ser DN_BCHAIN_HRP_UNUSED.
DN_BCHAIN_AT_ALGORAND Algoritmo.

bVer debe ser DN_BCHAIN_VER_UNUSED.
cszHrp debe ser DN_BCHAIN_HRP_UNUSED.
DN_BCHAIN_AT_TRON_HEX Dirección TRON hexadecimal.

bVer debe ser DN_BCHAIN_VER_UNUSED.
cszHrp debe ser DN_BCHAIN_HRP_UNUSED.
DN_BCHAIN_AT_TRON_B58 Dirección TRON Base 58.

bVer debe ser DN_BCHAIN_VER_UNUSED.
cszHrp debe ser DN_BCHAIN_HRP_UNUSED.
DN_BCHAIN_AT_XRP Dirección del Ledger/Ripple XRP.

bVer debe ser DN_BCHAIN_VER_XRP_CLASSIC.
cszHrp debe ser DN_BCHAIN_HRP_UNUSED.
DN_BCHAIN_AT_SOL Dirección de solana.

bVer debe ser DN_BCHAIN_VER_UNUSED.
cszHrp debe ser DN_BCHAIN_HRP_UNUSED.

DN_BCHAIN_AT_XLM | Endereço Stellar SEP-23.

bVer deve ser DN_BCHAIN_VER_UNUSED.
cszHrp deve ser DN_BCHAIN_HRP_UNUSED. DN_BCHAIN_AT_ADA_PKH | Endereço Cardano CIP-0019, Shelley, Header type: 0110 (6).

bVer deve ser DN_BCHAIN_VER_ADA_MAINNET ou DN_BCHAIN_VER_ADA_TESTNET.
cszHrp deve ser DN_BCHAIN_HRP_UNUSED. DN_BCHAIN_AT_ADA_SH | Endereço Cardano CIP-0019, Shelley, Header type: 0111 (7).

bVer deve ser DN_BCHAIN_VER_ADA_MAINNET ou DN_BCHAIN_VER_ADA_TESTNET.
cszHrp deve ser DN_BCHAIN_HRP_UNUSED.
cszPk deve ser o script-hash. DN_BCHAIN_AT_LUNC | Endereço Terra Classic.

bVer deve ser DN_BCHAIN_VER_UNUSED.
cszHrp deve ser DN_BCHAIN_HRP_UNUSED. DN_BCHAIN_AT_SS58 | Endereço SS58.

bVer deve ser DN_BCHAIN_VER_SS58_POLKADOT ou DN_BCHAIN_VER_SS58_GEN_SUBST.
cszHrp deve ser DN_BCHAIN_HRP_UNUSED. DN_BCHAIN_AT_XTZ | Endereço Tezos.

bVer deve ser DN_BCHAIN_VER_UNUSED.
cszHrp deve ser DN_BCHAIN_HRP_UNUSED. DN_BCHAIN_AT_TON | Endereço Toncoin TEP-2.

bVer deve ser DN_BCHAIN_VER_TON_MN_BWORK, DN_BCHAIN_VER_TON_MN_MCHAIN, DN_BCHAIN_VER_TON_TN_BWORK ou DN_BCHAIN_VER_TON_TN_MCHAIN.
cszHrp deve ser DN_BCHAIN_HRP_TON_BNCBLE ou DN_BCHAIN_HRP_TON_NBNCBLE. DN_BCHAIN_AT_TON_SH | Endereço Toncoin TEP-2 SH.

bVer deve ser DN_BCHAIN_VER_TON_MN_BWORK, DN_BCHAIN_VER_TON_MN_MCHAIN, DN_BCHAIN_VER_TON_TN_BWORK ou DN_BCHAIN_VER_TON_TN_MCHAIN.
cszHrp deve ser DN_BCHAIN_HRP_TON_BNCBLE ou DN_BCHAIN_HRP_TON_NBNCBLE.
cszPk deve ser o script-hash. DN_BCHAIN_AT_ATOM | Endereço Atom ADR-028.

bVer deve ser DN_BCHAIN_VER_UNUSED.
cszHrp deve ser DN_BCHAIN_HRP_UNUSED. DN_BCHAIN_AT_BTC_P2TR | Endereço BTC BIP350, version 1-16.

bVer deve ser DN_BCHAIN_VER_BTC_SEGWIT1 ou DN_BCHAIN_VER_LTC_SEGWIT1.
cszHrp deve ser DN_BCHAIN_HRP_BTC_MAIN_NET, DN_BCHAIN_HRP_BTC_TEST_NET, DN_BCHAIN_HRP_LTC_MAINNET ou DN_BCHAIN_HRP_LTC_TESTNET. DN_BCHAIN_AT_LTC_P2PKH | Endereço LTC P2PKH.

bVer deve ser DN_BCHAIN_VER_BTC_A1_MAIN_NET, DN_BCHAIN_VER_BTC_A3_MAIN_NET, DN_BCHAIN_VER_BTC_AMN_TEST_NET, DN_BCHAIN_VER_HTR_MAINNET ou DN_BCHAIN_VER_HTR_TESTNET.
cszHrp deve ser DN_BCHAIN_HRP_UNUSED. DN_BCHAIN_AT_LTC_P2SH | Endereço LTC P2SH BIP13.

bVer deve ser DN_BCHAIN_VER_BTC_A1_MAIN_NET, DN_BCHAIN_VER_BTC_A3_MAIN_NET, DN_BCHAIN_VER_BTC_AMN_TEST_NET, DN_BCHAIN_VER_HTR_MAINNET ou DN_BCHAIN_VER_HTR_TESTNET.
cszHrp deve ser DN_BCHAIN_HRP_UNUSED.
cszPk deve ser o script-hash. DN_BCHAIN_AT_LTC_P2WPKH | Endereço LTC P2WPKH BIP173.

bVer deve ser DN_BCHAIN_VER_BTC_B32_WITVER.
cszHrp pode ser DN_BCHAIN_HRP_BTC_MAIN_NET ou DN_BCHAIN_HRP_BTC_TEST_NET. DN_BCHAIN_AT_LTC_P2WSH | Endereço LTC P2WSH BIP173.

bVer deve ser DN_BCHAIN_VER_BTC_A1_MAIN_NET, DN_BCHAIN_VER_BTC_A3_MAIN_NET, DN_BCHAIN_VER_BTC_AMN_TEST_NET, DN_BCHAIN_VER_HTR_MAINNET ou DN_BCHAIN_VER_HTR_TESTNET.
cszHrp deve ser DN_BCHAIN_HRP_UNUSED.
cszPk deve ser o script-hash. DN_BCHAIN_AT_LTC_P2TR | Endereço LTC BIP350, version 1-16.

bVer deve ser DN_BCHAIN_VER_BTC_SEGWIT1 ou DN_BCHAIN_VER_LTC_SEGWIT1.
cszHrp deve ser DN_BCHAIN_HRP_BTC_MAIN_NET, DN_BCHAIN_HRP_BTC_TEST_NET, DN_BCHAIN_HRP_LTC_MAINNET ou DN_BCHAIN_HRP_LTC_TESTNET.

Parámetros
[in]bVerVersión de la dirección.
Valor Significado
DN_BCHAIN_VER_UNUSED Parámetro no utilizado.
DN_BCHAIN_VER_BTC_A1_MAIN_NET Red principal de Bitcoin A1.
DN_BCHAIN_VER_BTC_AMN_TEST_NET Red de prueba Bitcoin P2PKH.
DN_BCHAIN_VER_BTC_A3_MAIN_NET Red principal de Bitcoin A3.
DN_BCHAIN_VER_BTC_B32_WITVER Bitcoin B32 witver.
DN_BCHAIN_VER_BTC_SEGWIT0 Bitcoin SEGWIT0
DN_BCHAIN_VER_BTC_SEGWIT1 Bitcoin SEGWIT1
DN_BCHAIN_VER_HTR_MAINNET Hathor mainnet.
DN_BCHAIN_VER_HTR_TESTNET Hathor testnet.
DN_BCHAIN_VER_HTR_P2SH_MAINNET Red principal Hathor P2SH.
DN_BCHAIN_VER_HTR_P2SH_TESTNET Hathor P2SH testnet.
DN_BCHAIN_VER_XRP_CLASSIC XRP Ledger/Ripple Classic.
DN_BCHAIN_VER_LTC_SEGWIT0 Litecoin SEGWIT0
DN_BCHAIN_VER_LTC_SEGWIT1 Litecoin SEGWIT1
DN_BCHAIN_VER_LTC_AL_MAINNET Litecoin AL mainnet.
DN_BCHAIN_VER_LTC_Amn_TESTNET Litecoin Amn testnet.
DN_BCHAIN_VER_LTC_AM_MAINNET Litecoin AM red principal.
DN_BCHAIN_VER_LTC_AQ_TESTNET Litecoin AQ testnet.
DN_BCHAIN_VER_ADA_MAINNET Cardano mainnet.
DN_BCHAIN_VER_ADA_TESTNET Cardano testnet.
DN_BCHAIN_VER_SS58_POLKADOT Polkadot SS58.
DN_BCHAIN_VER_SS58_GEN_SUBST Sustrato genérico SS58.
DN_BCHAIN_VER_TON_MN_BWORK Monedero Toncoin v4r2; red principal; cadena de trabajo básica.
DN_BCHAIN_VER_TON_MN_MCHAIN Monedero Toncoin v4r2; red principal; cadena maestra.
DN_BCHAIN_VER_TON_TN_BWORK Monedero Toncoin v4r2; red de pruebas; cadena de trabajo básica.
DN_BCHAIN_VER_TON_TN_MCHAIN Monedero Toncoin v4r2; testnet; cadena maestra.
[in]cszHrpHRP (Human Readable Part) de la clave. Se aceptan los valores de la tabla. Debe tener un tamaño máximo de DN_BCHAIN_MAX_HRP.
Valor Significado
DN_BCHAIN_HRP_UNUSED Parámetro no utilizado.
DN_BCHAIN_HRP_BTC_MAIN_NET Bitcoin mainnet.
DN_BCHAIN_HRP_BTC_TEST_NET Bitcoin testnet.
DN_BCHAIN_HRP_LTC_MAINNET Red principal Litecoin.
DN_BCHAIN_HRP_LTC_TESTNET Litecoin testnet.
DN_BCHAIN_HRP_TON_BNCBLE Toncoin rebotable.
DN_BCHAIN_HRP_TON_NBNCBLE Toncoin no rebotable.
[in]cszPkClave privada que generará la dirección o el script-hash. Si se utiliza script-hash pasar un buffer de tamaño MAX_OBJ_ID_FQN_LEN con script-hash con relleno cero.
[in,out]pbAddressBuffer que recibirá la dirección. Puede ser NULL para obtener el tamaño requerido. Se recomienda utilizar el tamaño máximo de DN_BCHAIN_MAX_ADDR_LEN.
[in,out]pdwAddressLenTamaño del búfer pbAddress. Si el búfer pbAddress es NULL, este parámetro recibirá el tamaño requerido.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Ejemplos
ckd_bchain.c y ckd_bchain_ed25519.c.

DBchainSignHash()

int AAP_API DBchainSignHash ( HSESSIONCTX hSession,
BYTE bType,
BYTE bHashMode,
BYTE * pbHash,
DWORD dwHashLen,
const char * cszPk,
BYTE * pbSig,
DWORD * pdwSigLen,
DWORD dwReserved )

#include <dinamo.h>

Firma un hash utilizando el módulo blockchain.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]bTypeTipo de suscripción que se va a generar. Puede ser uno de los valores siguientes.
Valor Significado
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.
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.
DN_BCHAIN_SIG_BIP340 Firma BIP340 - Schnorr 64 bytes.
DN_BCHAIN_DER_RFC_6979_ECDSA Firma ECDSA determinista estándar RFC-6979. Tipo DER en el formato v || DER, teniendo 'v' un tamaño de 1 byte. v' es el bit de paridad de 'r' y puede tener los valores 0 ó 1.
DN_BCHAIN_RAW_RFC_6979_ECDSA Firma ECDSA determinista estándar RFC-6979. Tipo RAW en el formato v || r || s, teniendo 'v' un tamaño de 1 byte y 'r' y 's' un tamaño de 32 bytes cada uno. v' es el bit de paridad de 'r' y puede tener los valores 0 ó 1.
[in]bHashModeTipo hash.
Valor Significado
DN_BCHAIN_HASH_BTC_H160 Bitcoin H160.
DN_BCHAIN_HASH_RIPEMD160 RIPEMD160.
DN_BCHAIN_HASH_SHA256 SHA256
DN_BCHAIN_HASH_BTC_SHA256_2X Bitcoin SHA256 2x.
DN_BCHAIN_HASH_KECCAK256 KECCAK256.
DN_BCHAIN_HASH_BLAKE2B224 Blake2b 224.
DN_BCHAIN_HASH_BLAKE2B256 Blake2b 256.
[in]pbHashHash calculado según la información de bHashMode.
[in]dwHashLenTamaño del hash introducido en pbHash.
[in]cszPkNombre de la clave privada.
[in,out]pbSigBuffer que recibirá la firma.Puede ser NULL para obtener el tamaño requerido.Se recomienda utilizar el tamaño máximo de DN_BCHAIN_MAX_SIG_LEN.
[in,out]pdwSigLenTamaño del búfer pbSig .Si el búfer pbSig es NULL, este parámetro recibirá el tamaño requerido.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Ejemplos
sign_verify_bchain.c.

DBchainVerify()

int AAP_API DBchainVerify ( HSESSIONCTX hSession,
BYTE bSigType,
BYTE bHashMode,
const BYTE * pbHash,
DWORD dwHashLen,
const BYTE * pbSig,
DWORD dwSigLen,
BYTE bInPbkType,
const BYTE * pbInPbk,
BYTE bInPbkLen,
DWORD dwReserved )

#include <dinamo.h>

Verifica una firma utilizando el módulo blockchain.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]bSigTypeTipo de suscripción que se va a generar. Puede ser uno de los valores siguientes.
Valor Significado
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.
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.
DN_BCHAIN_SIG_BIP340 Firma BIP340 - Schnorr 64 bytes.
[in]bHashModeTipo hash.
Valor Significado
DN_BCHAIN_HASH_BTC_H160 Bitcoin H160.
DN_BCHAIN_HASH_RIPEMD160 RIPEMD160.
DN_BCHAIN_HASH_SHA256 SHA256
DN_BCHAIN_HASH_BTC_SHA256_2X Bitcoin SHA256 2x.
DN_BCHAIN_HASH_KECCAK256 KECCAK256.
DN_BCHAIN_HASH_BLAKE2B224 Blake2b 224.
DN_BCHAIN_HASH_BLAKE2B256 Blake2b 256.
[in]pbHashHash calculado según la información de bHashMode.
[in]dwHashLenTamaño del hash introducido en pbHash.
[in]pbSigFirma de acuerdo con la información de bSigType.
[in]dwSigLenTamaño de firma introducido en pbSig.
[in]bInPbkTypeFormato de la clave pública. Puede ser uno de los valores siguientes.
Valor Significado
DN_BCHAIN_PBK_SEC1_UNCOMP ECDSA SEC1 sin comprimir.
DN_BCHAIN_PBK_SEC1_COMP ECDSA SEC1 comprimido.
DN_BCHAIN_PBK_BIP340 Schnorr, BIP-340.
DN_BCHAIN_PBK_ED25519 Ed25519.
[in]pbInPbkFirma según la información de bInPbkType.
[in]bInPbkLenTamaño de la firma introducida en pbInPbk.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Ejemplos
sign_verify_bchain.c.

DBchainEdDsaSign()

int AAP_API DBchainEdDsaSign ( HSESSIONCTX hSession,
BYTE bType,
const char * cszCtxStr,
BYTE * pbData,
DWORD dwDataLen,
const char * cszPk,
BYTE * pbSig,
DWORD * pdwSigLen,
DWORD dwReserved )

#include <dinamo.h>

Genera una firma EdDsa utilizando el módulo blockchain.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]bTypeTipo de suscripción que se va a generar. Puede ser uno de los valores siguientes.
Valor Significado
DN_BCHAIN_EDDSA_SIG_PURE EdDsa Pure Signature.
DN_BCHAIN_EDDSA_SIG_ALGORAND Firma del algoritmo EdDsa.
DN_BCHAIN_EDDSA_SIG_XRP Firma EdDsa XRP.
DN_BCHAIN_EDDSA_SIG_SOL Firma EdDsa Solana.
DN_BCHAIN_EdDSA_SIG_XLM Firma EdDsa Stellar.
DN_BCHAIN_EdDSA_SIG_ADA Firma EdDsa Cardano.
DN_BCHAIN_EdDSA_SIG_DOT Firma EdDsa Polkadot.
DN_BCHAIN_EdDSA_SIG_XTZ Firma EdDsa Tezos codificada en b58.
DN_BCHAIN_EdDSA_SIG_XTZ_PH Firma EdDsa Tezos (igual a DN_BCHAIN_EdDSA_SIG_XTZ), utilizando blake2b-256 como dato.
[in]cszCtxStrCadena de contexto definida en RFC-8032 . Se puede pasar DN_BCHAIN_EDDSA_CSTR_UNUSED.
[in]pbDataDatos a firmar.
[in]dwDataLenTamaño de los datos a firmar.
[in]cszPkNombre de la clave privada.
[in,out]pbSigBuffer que recibirá la firma. Puede ser NULL para obtener el tamaño requerido. Se recomienda utilizar el tamaño máximo de DN_BCHAIN_MAX_SIG_LEN.
[in,out]pdwSigLenTamaño del búfer pbSig. Si el búfer pbSig es NULL, este parámetro recibirá el tamaño requerido.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.

DBchainEdDsaVerify()

int AAP_API DBchainEdDsaVerify ( HSESSIONCTX hSession,
BYTE bType,
const char * cszCtxStr,
BYTE * pbData,
DWORD dwDataLen,
BYTE bPbkType,
BYTE * pbPbk,
DWORD dwPbkLen,
BYTE * pbSig,
DWORD dwSigLen,
DWORD dwReserved )

#include <dinamo.h>

Verifica una firma EdDsa utilizando el módulo blockchain.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]bTypeTipo de firma a verificar. Puede ser uno de los valores siguientes.
Valor Significado
DN_BCHAIN_EDDSA_SIG_PURE EdDsa Pure Signature.
DN_BCHAIN_EDDSA_SIG_ALGORAND Firma del algoritmo EdDsa.
DN_BCHAIN_EDDSA_SIG_XRP Firma EdDsa XRP.
DN_BCHAIN_EDDSA_SIG_SOL Firma EdDsa Solana.
DN_BCHAIN_EdDSA_SIG_XLM Firma EdDsa Stellar.
DN_BCHAIN_EdDSA_SIG_ADA Firma EdDsa Cardano.
DN_BCHAIN_EdDSA_SIG_DOT Firma EdDsa Polkadot.
DN_BCHAIN_EdDSA_SIG_XTZ Firma EdDsa Tezos codificada en b58.
DN_BCHAIN_EdDSA_SIG_XTZ_PH Firma EdDsa Tezos (igual a DN_BCHAIN_EdDSA_SIG_XTZ), utilizando blake2b-256 como dato.
[in]cszCtxStrCadena de contexto definida en RFC-8032 de longitud máxima DN_BCHAIN_EDDSA_MAX_CSTRL. Se puede pasar DN_BCHAIN_EDDSA_CSTR_UNUSED.
[in]pbDataDatos por verificar.
[in]dwDataLenTamaño de los datos a comprobar.
[in]bPbkTypeFormato de la clave pública. Puede ser uno de los valores siguientes.
Valor Significado
DN_BCHAIN_PBK_ED25519 Ed25519.
DN_BCHAIN_PBK_AT_ALGORAND Algoritmo.
DN_BCHAIN_PBK_BIP32_XPUB BIP32 XPub.
DN_BCHAIN_PBK_AT_SOL Solana.
DN_BCHAIN_PBK_AT_XLM Lumens estelares.
DN_BCHAIN_PBK_ADA_VK Cardano CIP-0016 / CIP-0005;
DN_BCHAIN_PBK_AT_SS58 SS58.
DN_BCHAIN_PBK_TON TEP-2 «Fácil de usar»/«blindado».
[in]pbPbkClave pública utilizada para la verificación.
[in]dwPbkLenTamaño de la clave pública.
[in]pbSigFirma a verificar.
[in]dwSigLenTamaño de la firma.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.

DBchainPkImport()

int AAP_API DBchainPkImport ( HSESSIONCTX hSession,
BYTE bFormat,
DWORD dwAttributes,
const char * cszId,
const BYTE * pcbData,
DWORD dwDataLen,
DWORD dwReserved )

#include <dinamo.h>

Importa una clave privada utilizando el módulo blockchain.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]bFormatFormato de la clave a importar. Puede ser uno de los valores siguientes.
Valor Significado
DN_BCHAIN_KEY_WIF Formato de importación de carteras (WIF).
DN_BCHAIN_KEY_MINI Bitcoin minikey.
DN_BCHAIN_KEY_HEX Escala de la clave privada en hexadecimal. Importada como una clave de tipo ALG_ECC_SECP256K1.
DN_BCHAIN_KEY_SEC1 SEC1.
DN_BCHAIN_KEY_XPRIV XPriv.
DN_BCHAIN_KEY_ED25519_B64 Ed25519 en formato Base 64.
DN_BCHAIN_KEY_ED25519_XPRIV Ed25519 en formato XPriv.
DN_BCHAIN_KEY_Ed25519_SKPK Ed25519 en formato SEP-23.
DN_BCHAIN_KEY_Ed25519_SK Ed25519 en formato CIP-0016 / CIP-0005.
DN_BCHAIN_KEY_Ed25519_XTZ Ed25519 en formato Tezos.
DN_BCHAIN_KEY_P256_XPRIV P-256 en formato XPriv.
[in]dwAttributesParámetros adicionales de la clave. Consulte las opciones de la función DGenerateKey(). Esta API incluye automáticamente el indicador BCHAIN_KEY, necesario para las operaciones de blockchain.
[in]cszIdNombre de la clave privada.
[in]pcbDataClave privada en el formato especificado en bFormat. El tamaño de este búfer debe introducirse en dwDataLen.
[in]dwDataLenTamaño del buffer pcbData.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Ejemplos
import_export_bchain.c.

DBchainPkExport()

int AAP_API DBchainPkExport ( HSESSIONCTX hSession,
BYTE bFormat,
BYTE bVersion,
BYTE bCompressed,
const char * cszId,
BYTE ** ppbData,
DWORD * pdwDataLen,
DWORD dwReserved )

#include <dinamo.h>

Exporta una clave privada utilizando el módulo blockchain.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]bFormatFormato de la clave a exportar. Puede ser uno de los valores siguientes.
Valor Significado
DN_BCHAIN_KEY_WIF Wallet Import Format (WIF). bVersion puede ser DN_BCHAIN_VER_WIF_MAIN_NET o DN_BCHAIN_VER_WIF_TEST_NET.
DN_BCHAIN_KEY_MINI Bitcoin minikey. bVersion debe ser DN_BCHAIN_VER_UNUSED.
DN_BCHAIN_KEY_HEX Escala de la clave privada en hexadecimal. bVersion debe ser DN_BCHAIN_VER_UNUSED.
DN_BCHAIN_KEY_SEC1 SEC1. bVersion debe ser DN_BCHAIN_VER_UNUSED.
DN_BCHAIN_KEY_XPRIV XPriv. bVersion debe ser DN_BCHAIN_VER_UNUSED.
DN_BCHAIN_KEY_ED25519_B64 Ed25519 en formato Base 64. bVersion debe ser DN_BCHAIN_VER_UNUSED y el parámetro bCompressed se ignora.
DN_BCHAIN_KEY_ED25519_XPRIV Ed25519 en formato XPriv. bVersion debe ser DN_BCHAIN_VER_UNUSED y el parámetro bCompressed se ignora.
DN_BCHAIN_KEY_Ed25519_SKPK Ed25519 en formato SEP-23. bVersion debe ser DN_BCHAIN_VER_UNUSED y el parámetro bCompressed se ignora.
DN_BCHAIN_KEY_Ed25519_SK Ed25519 en formato CIP-0016 / CIP-0005. bVersion debe ser DN_BCHAIN_VER_UNUSED y el parámetro bCompressed se ignora.
DN_BCHAIN_KEY_Ed25519_XTZ Ed25519 en formato Tezos. bVersion debe ser DN_BCHAIN_VER_UNUSED y el parámetro bCompressed se ignora.
DN_BCHAIN_KEY_P256_XPRIV P-256 en formato XPriv. bVersion debe ser DN_BCHAIN_VER_UNUSED.
[in]bVersionVersión clave.
Valor Significado
DN_BCHAIN_VER_UNUSED Parámetro no utilizado.
DN_BCHAIN_VER_WIF_MAIN_NET Red principal de WIF.
DN_BCHAIN_VER_WIF_TEST_NET Red de prueba WIF.
DN_BCHAIN_VER_WIF_LTC_MAINNET Red principal WIF LTC.
[in]bCompressed0 para exportar la clave en formato no comprimido y 1 para formato comprimido.
[in]cszIdNombre de la clave privada.
[out]ppbDataClave privada. El tamaño de este búfer se introducirá en pdwDataLen. Este búfer debe liberarse con la API DFree().
[out]pdwDataLenTamaño del búfer ppcbData.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Ejemplos
import_export_bchain.c.

DBchainGetPubKey()

int AAP_API DBchainGetPubKey ( HSESSIONCTX hSession,
BYTE bType,
const char * cszId,
BYTE * pbData,
DWORD * pdwDataLen,
DWORD dwReserved )

#include <dinamo.h>

Recuperar una clave pública a partir de una clave privada utilizando el módulo blockchain.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]bTypeFormato de la clave pública a exportar. Puede ser uno de los valores siguientes.
Valor Significado
DN_BCHAIN_PBK_SEC1_UNCOMP ECDSA SEC1 sin comprimir.
DN_BCHAIN_PBK_SEC1_COMP ECDSA SEC1 comprimido.
DN_BCHAIN_PBK_BIP340 Schnorr, BIP-340.
DN_BCHAIN_PBK_ED25519 Ed25519.
DN_BCHAIN_PBK_AT_ALGORAND Algoritmo.
DN_BCHAIN_PBK_BIP32_XPUB BIP32 XPub.
DN_BCHAIN_PBK_AT_SOL Solana.
DN_BCHAIN_PBK_AT_XLM Lumens estelares.
DN_BCHAIN_PBK_ADA_VK Cardano CIP-0016 / CIP-0005.
DN_BCHAIN_PBK_AT_SS58 SS58.
DN_BCHAIN_PBK_TON TEP-2 «Fácil de usar»/«blindado».
DN_BCHAIN_PBK_E_UNCOMP | SEC1_UNCOMP sin el prefijo 0x04 (X || Y). Solo alt_bn128 (EIP 196/197).
[in]cszIdNombre de la clave privada.
[out]pbDataClave pública. Se puede pasar NULL para recibir el tamaño esperado en pdwDataLen. El tamaño máximo de este búfer es DN_BCHAIN_MAX_PBK_LEN.
[in,out]pdwDataLenTamaño del búfer pcbData. Al final de la llamada, contendrá la cantidad de datos escritos en pcbData.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Ejemplos
get_pub_key_bchain.c.

DBchainRecuperarPbkDeFirma()

int AAP_API DBchainRecoverPbkFromSignature ( HSESSIONCTX hSession,
BYTE bSigType,
BYTE bHashMode,
const BYTE * pbHash,
DWORD dwHashLen,
const BYTE * pbSig,
DWORD dwSigLen,
DN_BCHAIN_PBK * pPbk,
DWORD dwReserved )

#include <dinamo.h>

Recupera una clave pública (PBK) de una firma de tipo ECDSA.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]bSigTypeTipo de suscripción que se va a generar. Puede ser uno de los valores siguientes.
Valor Significado
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.
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.
[in]bHashModeTipo hash.
Valor Significado
DN_BCHAIN_HASH_BTC_H160 Bitcoin H160.
DN_BCHAIN_HASH_RIPEMD160 RIPEMD160.
DN_BCHAIN_HASH_SHA256 SHA256
DN_BCHAIN_HASH_BTC_SHA256_2X Bitcoin SHA256 2x.
DN_BCHAIN_HASH_KECCAK256 KECCAK256.
DN_BCHAIN_HASH_BLAKE2B224 Blake2b 224.
DN_BCHAIN_HASH_BLAKE2B256 Blake2b 256.
[in]pbHashHash calculado según la información de bHashMode.
[in]dwHashLenTamaño del hash introducido en pbHash.
[in]pbSigFirma de acuerdo con la información de bSigType.
[in]dwSigLenTamaño de firma introducido en pbSig.
[out]pPbkClave pública que debe recuperarse. Introduzca una estructura de tipo DN_BCHAIN_PBK.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Ejemplos
sign_verify_bchain.c.

DBchainGetKeyInfo()

int AAP_API DBchainGetKeyInfo ( HSESSIONCTX hSession,
DWORD dwReserved,
const char * cszId,
void * pvData,
DWORD * pdwDataLen )

#include <dinamo.h>

Recupera las propiedades de una clave utilizando el módulo blockchain.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]dwReservedReservado para uso futuro (debe ser 0).
[in]cszIdNombre de la clave privada.
[out]pvDataPropiedades de la clave. Recibe una estructura DN_BCHAIN_KEY_INFO. Se puede pasar NULL para recibir el tamaño esperado en pdwDataLen.
[in,out]pdwDataLenTamaño del búfer pcbData. Al final de la llamada, contendrá la cantidad de datos escritos en pcbData.
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Ejemplos
get_key_info_bchain.c.

DBchainHashData()

int AAP_API DBchainHashData ( HSESSIONCTX hSession,
BYTE bMode,
BYTE * pbData,
DWORD dwDataLen,
BYTE * pbHash,
DWORD * pdwHashLen,
DWORD dwReserved )

#include <dinamo.h>

Calcula un hash utilizando el módulo blockchain.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]bModeTipo hash.
Valor Significado
DN_BCHAIN_HASH_BTC_H160 Bitcoin H160.
DN_BCHAIN_HASH_RIPEMD160 RIPEMD160.
DN_BCHAIN_HASH_SHA256 SHA256
DN_BCHAIN_HASH_BTC_SHA256_2X Bitcoin SHA256 2x.
DN_BCHAIN_HASH_KECCAK256 KECCAK256.
DN_BCHAIN_HASH_BLAKE2B224 Blake2b 224.
DN_BCHAIN_HASH_BLAKE2B256 Blake2b 256.
[in]pbDataDatos a procesar. El tamaño de este búfer debe introducirse en dwDataLen. Tamaño máximo de DN_BCHAIN_MAX_HDATA_LEN.
[in]dwDataLenTamaño del búfer pbData.
[out]pbHashRecibe el hash calculado. Se puede pasar NULL para recibir el tamaño esperado en pdwHashLen.
[in,out]pdwHashLenTamaño del buffer de pbHash. Al final de la llamada, contendrá la cantidad de datos escritos en pbHash.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Notas
Esta API está disponible para la validación de la implementación. Recomendamos generar el hash por software para un mejor rendimiento y un mejor uso de los recursos del HSM.
Ejemplos
sign_verify_bchain.c.

DBchainEd2X()

int AAP_API DBchainEd2X ( HSESSIONCTX hSession,
const char * cszPk,
const char * cszTo,
DWORD dwAttr,
DWORD dwReserved )

#include <dinamo.h>

Convierte una clave Edwards (Ed) al formato Montgomery (x). Actualmente convierte claves Ed25519 a X25519.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]cszPkNombre de la clave privada en formato Edwards que existe en el HSM.
[in]cszToNombre de la clave privada en formato Montgomery que se creará en el HSM.
[in]dwAttrAtributos de clave. Véase dwAttr en DGenerateKey() para más detalles sobre los atributos de clave. Los atributos se añaden a los atributos actuales de la clave de origen cszPk.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Observación
Las claves deben estar marcadas con la bandera BCHAIN_KEY para ser convertidas.