Operaciones de apoyo a la seguridad de las estructuras basadas en Blockchain.
Véase Documentación técnica de HSM.
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 | 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) |
| 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.
| [in] | hSession | Contexto adquirido a través de la función DOpenSession(). | ||||||||||||
| [in] | bType | Tipo de generación de claves.
| ||||||||||||
| [in] | dwAttributes | Pará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] | szId | Nombre de la clave en el HSM. Debe tener un tamaño máximo de MAX_OBJ_ID_FQN_LEN. | ||||||||||||
| [in] | pcbData | Buffer 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] | dwDataLen | Tamaño de los datos pasados en pcbData. | ||||||||||||
| [in] | dwReserved | Reservado para uso futuro (debe ser 0). |
| 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. |
| 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.
| [in] | hSession | Contexto adquirido a través de la función DOpenSession(). | ||||||||||
| [in] | bVersion | Versión clave.
| ||||||||||
| [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] | dwAttributes | Pará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] | cszPar | Nombre 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] | cszDst | Nombre de la clave que se derivará en el HSM. Debe tener un tamaño máximo de MAX_OBJ_ID_FQN_LEN. | ||||||||||
| [out] | pKeyInfo | Puntero a la estructura DN_BCHAIN_KEY_INFO que contendrá la información de la clave generada. | ||||||||||
| [in] | dwReserved | Reservado para uso futuro (debe ser 0). |
| 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.
| [in] | hSession | Contexto adquirido a través de la función DOpenSession(). | ||||||||||||||||||||||
| [in] | bType | Tipo de dirección a generar. Puede ser uno de los valores siguientes. | ||||||||||||||||||||||
| [in] | bVer | Versión de la dirección.
| ||||||||||||||||||||||
| [in] | cszHrp | HRP (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.
| ||||||||||||||||||||||
| [in] | cszPk | Clave 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] | pbAddress | Buffer 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] | pdwAddressLen | Tamaño del búfer pbAddress. Si el búfer pbAddress es NULL, este parámetro recibirá el tamaño requerido. | ||||||||||||||||||||||
| [in] | dwReserved | Reservado para uso futuro (debe ser 0). |
| 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.
| [in] | hSession | Contexto adquirido a través de la función DOpenSession(). | ||||||||||||
| [in] | bType | Tipo de suscripción que se va a generar. Puede ser uno de los valores siguientes.
| ||||||||||||
| [in] | bHashMode | Tipo hash.
| ||||||||||||
| [in] | pbHash | Hash calculado según la información de bHashMode. | ||||||||||||
| [in] | dwHashLen | Tamaño del hash introducido en pbHash. | ||||||||||||
| [in] | cszPk | Nombre de la clave privada. | ||||||||||||
| [in,out] | pbSig | Buffer 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] | pdwSigLen | Tamaño del búfer pbSig .Si el búfer pbSig es NULL, este parámetro recibirá el tamaño requerido. | ||||||||||||
| [in] | dwReserved | Reservado para uso futuro (debe ser 0). |
| 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.
| [in] | hSession | Contexto adquirido a través de la función DOpenSession(). | ||||||||||||
| [in] | bSigType | Tipo de suscripción que se va a generar. Puede ser uno de los valores siguientes.
| ||||||||||||
| [in] | bHashMode | Tipo hash.
| ||||||||||||
| [in] | pbHash | Hash calculado según la información de bHashMode. | ||||||||||||
| [in] | dwHashLen | Tamaño del hash introducido en pbHash. | ||||||||||||
| [in] | pbSig | Firma de acuerdo con la información de bSigType. | ||||||||||||
| [in] | dwSigLen | Tamaño de firma introducido en pbSig. | ||||||||||||
| [in] | bInPbkType | Formato de la clave pública. Puede ser uno de los valores siguientes.
| ||||||||||||
| [in] | pbInPbk | Firma según la información de bInPbkType. | ||||||||||||
| [in] | bInPbkLen | Tamaño de la firma introducida en pbInPbk. | ||||||||||||
| [in] | dwReserved | Reservado para uso futuro (debe ser 0). |
| 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.
| [in] | hSession | Contexto adquirido a través de la función DOpenSession(). | ||||||||||
| [in] | bType | Tipo de suscripción que se va a generar. Puede ser uno de los valores siguientes.
| ||||||||||
| [in] | cszCtxStr | Cadena de contexto definida en RFC-8032 . Se puede pasar DN_BCHAIN_EDDSA_CSTR_UNUSED. | ||||||||||
| [in] | pbData | Datos a firmar. | ||||||||||
| [in] | dwDataLen | Tamaño de los datos a firmar. | ||||||||||
| [in] | cszPk | Nombre de la clave privada. | ||||||||||
| [in,out] | pbSig | Buffer 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] | pdwSigLen | Tamaño del búfer pbSig. Si el búfer pbSig es NULL, este parámetro recibirá el tamaño requerido. | ||||||||||
| [in] | dwReserved | Reservado para uso futuro (debe ser 0). |
| 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.
| [in] | hSession | Contexto adquirido a través de la función DOpenSession(). | ||||||||||
| [in] | bType | Tipo de firma a verificar. Puede ser uno de los valores siguientes.
| ||||||||||
| [in] | cszCtxStr | Cadena de contexto definida en RFC-8032 de longitud máxima DN_BCHAIN_EDDSA_MAX_CSTRL. Se puede pasar DN_BCHAIN_EDDSA_CSTR_UNUSED. | ||||||||||
| [in] | pbData | Datos por verificar. | ||||||||||
| [in] | dwDataLen | Tamaño de los datos a comprobar. | ||||||||||
| [in] | bPbkType | Formato de la clave pública. Puede ser uno de los valores siguientes.
| ||||||||||
| [in] | pbPbk | Clave pública utilizada para la verificación. | ||||||||||
| [in] | dwPbkLen | Tamaño de la clave pública. | ||||||||||
| [in] | pbSig | Firma a verificar. | ||||||||||
| [in] | dwSigLen | Tamaño de la firma. | ||||||||||
| [in] | dwReserved | Reservado para uso futuro (debe ser 0). |
| 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.
| [in] | hSession | Contexto adquirido a través de la función DOpenSession(). | ||||||||||||||||
| [in] | bFormat | Formato de la clave a importar. Puede ser uno de los valores siguientes.
| ||||||||||||||||
| [in] | dwAttributes | Pará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] | cszId | Nombre de la clave privada. | ||||||||||||||||
| [in] | pcbData | Clave privada en el formato especificado en bFormat. El tamaño de este búfer debe introducirse en dwDataLen. | ||||||||||||||||
| [in] | dwDataLen | Tamaño del buffer pcbData. | ||||||||||||||||
| [in] | dwReserved | Reservado para uso futuro (debe ser 0). |
| 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.
| [in] | hSession | Contexto adquirido a través de la función DOpenSession(). | ||||||||||||||||
| [in] | bFormat | Formato de la clave a exportar. Puede ser uno de los valores siguientes.
| ||||||||||||||||
| [in] | bVersion | Versión clave.
| ||||||||||||||||
| [in] | bCompressed | 0 para exportar la clave en formato no comprimido y 1 para formato comprimido. | ||||||||||||||||
| [in] | cszId | Nombre de la clave privada. | ||||||||||||||||
| [out] | ppbData | Clave privada. El tamaño de este búfer se introducirá en pdwDataLen. Este búfer debe liberarse con la API DFree(). | ||||||||||||||||
| [out] | pdwDataLen | Tamaño del búfer ppcbData. | ||||||||||||||||
| [in] | dwReserved | Reservado para uso futuro (debe ser 0). |
| 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.
| [in] | hSession | Contexto adquirido a través de la función DOpenSession(). | ||||||||||||||||
| [in] | bType | Formato de la clave pública a exportar. Puede ser uno de los valores siguientes.
| ||||||||||||||||
| [in] | cszId | Nombre de la clave privada. | ||||||||||||||||
| [out] | pbData | Clave 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] | pdwDataLen | Tamaño del búfer pcbData. Al final de la llamada, contendrá la cantidad de datos escritos en pcbData. | ||||||||||||||||
| [in] | dwReserved | Reservado para uso futuro (debe ser 0). |
| 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.
| [in] | hSession | Contexto adquirido a través de la función DOpenSession(). | ||||||||||||
| [in] | bSigType | Tipo de suscripción que se va a generar. Puede ser uno de los valores siguientes.
| ||||||||||||
| [in] | bHashMode | Tipo hash.
| ||||||||||||
| [in] | pbHash | Hash calculado según la información de bHashMode. | ||||||||||||
| [in] | dwHashLen | Tamaño del hash introducido en pbHash. | ||||||||||||
| [in] | pbSig | Firma de acuerdo con la información de bSigType. | ||||||||||||
| [in] | dwSigLen | Tamaño de firma introducido en pbSig. | ||||||||||||
| [out] | pPbk | Clave pública que debe recuperarse. Introduzca una estructura de tipo DN_BCHAIN_PBK. | ||||||||||||
| [in] | dwReserved | Reservado para uso futuro (debe ser 0). |
| 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.
| [in] | hSession | Contexto adquirido a través de la función DOpenSession(). |
| [in] | dwReserved | Reservado para uso futuro (debe ser 0). |
| [in] | cszId | Nombre de la clave privada. |
| [out] | pvData | Propiedades de la clave. Recibe una estructura DN_BCHAIN_KEY_INFO. Se puede pasar NULL para recibir el tamaño esperado en pdwDataLen. |
| [in,out] | pdwDataLen | Tamaño del búfer pcbData. Al final de la llamada, contendrá la cantidad de datos escritos en pcbData. |
| 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.
| [in] | hSession | Contexto adquirido a través de la función DOpenSession(). | ||||||||||||
| [in] | bMode | Tipo hash.
| ||||||||||||
| [in] | pbData | Datos a procesar. El tamaño de este búfer debe introducirse en dwDataLen. Tamaño máximo de DN_BCHAIN_MAX_HDATA_LEN. | ||||||||||||
| [in] | dwDataLen | Tamaño del búfer pbData. | ||||||||||||
| [out] | pbHash | Recibe el hash calculado. Se puede pasar NULL para recibir el tamaño esperado en pdwHashLen. | ||||||||||||
| [in,out] | pdwHashLen | Tamaño del buffer de pbHash. Al final de la llamada, contendrá la cantidad de datos escritos en pbHash. | ||||||||||||
| [in] | dwReserved | Reservado para uso futuro (debe ser 0). |
| 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.
| [in] | hSession | Contexto adquirido a través de la función DOpenSession(). |
| [in] | cszPk | Nombre de la clave privada en formato Edwards que existe en el HSM. |
| [in] | cszTo | Nombre de la clave privada en formato Montgomery que se creará en el HSM. |
| [in] | dwAttr | Atributos 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] | dwReserved | Reservado para uso futuro (debe ser 0). |