Operaciones de apoyo a la seguridad de las estructuras basadas en Blockchain.
Consulte la documentación técnica del 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 de acuerdo con la opción bTipo y el tamaño de los datos pasados aquí debe especificarse en dwDataLen . | ||||||||||||
[in] | dwDataLen | Tamaño de los datos introducidos 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 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-1 como se especifica en la norma BIP32. Se recomienda encarecidamente generar claves reforzadas. Utilice DN_BCHAIN_SECURE_BIP32_INDEX_BASE como base para generar índices endurecido (Ej. 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 pbDirección . Si el búfer pbDirección 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 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.Case 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 bHashMode . | ||||||||||||
[in] | dwHashLen | Tamaño del hash introducido en pbHash . | ||||||||||||
[in] | pbSig | Firma de conformidad con 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 de conformidad con bInPbkType . | ||||||||||||
[in] | bInPbkLen | Tamaño de firma introducido 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 bFormato . El tamaño de este búfer debe introducirse en dwDataLen . | ||||||||||||||||
[in] | dwDataLen | Tamaño del búfer 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 . Contendrá, al final de la llamada, 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 bHashMode . | ||||||||||||
[in] | dwHashLen | Tamaño del hash introducido en pbHash . | ||||||||||||
[in] | pbSig | Firma de conformidad con 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 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 . Contendrá, al final de la llamada, 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 que se van 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 búfer pbHash . Contendrá, al final de la llamada, 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 clave. Véase dwAttr en DGenerateKey() para obtener más información sobre los atributos de la 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). |