Operações de suporte à segurança de estruturas baseadas em Blockchain.
Consulte a documentação técnica do HSM.
Funções | |
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>
Cria uma chave Extended Private Key (XPrv) para a blockchain no padrão BIP32.
[in] | hSession | Contexto adquirido através da função DOpenSession(). | ||||||||||||
[in] | bType | Tipo de geração da chave.
| ||||||||||||
[in] | dwAttributes | Parâmetros adicionais da chave. Veja as opções na função DGenerateKey(). Esta API inclui automaticamente a flag BCHAIN_KEY, que é necessária para as operações de blockchain. | ||||||||||||
[in] | szId | Nome da chave no HSM. Deve ter tamanho máximo de MAX_OBJ_ID_FQN_LEN. | ||||||||||||
[in] | pcbData | Buffer contendo os dados necessários para a geração da chave. Os dados de entrada devem ser passados de acordo com a opção bType e o tamanho dos dados passados aqui devem ser especificados em dwDataLen . | ||||||||||||
[in] | dwDataLen | Tamanho dos dados passados em pcbData . | ||||||||||||
[in] | dwReserved | Reservado para uso futuro (deve 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>
Faz uma operação de Child Key Derivation (CKD). Deriva uma chave Extended Private Key (XPrv) para a blockchain no padrão BIP32.
[in] | hSession | Contexto adquirido através da função DOpenSession(). | ||||||||||
[in] | bVersion | Versão da chave.
| ||||||||||
[in] | 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 DN_BCHAIN_SECURE_BIP32_INDEX_BASE como base para gerar índices hardened (Ex. DN_BCHAIN_SECURE_BIP32_INDEX_BASE + 1 ...). | ||||||||||
[in] | dwAttributes | Parâmetros adicionais da chave. Veja as opções na função DGenerateKey(). Esta API inclui automaticamente a flag BCHAIN_KEY, que é necessária para as operações de blockchain. | ||||||||||
[in] | cszPar | Nome da chave pai no HSM. Deve ter tamanho máximo de MAX_OBJ_ID_FQN_LEN. Deve ser uma chave XPrv (DN_BCHAIN_BIP32_XPRV etc.). Ver DBchainCreateXPrv(). | ||||||||||
[in] | cszDst | Nome da chave que será derivada no HSM. Deve ter tamanho máximo de MAX_OBJ_ID_FQN_LEN. | ||||||||||
[out] | pKeyInfo | Ponteiro para a estrutura DN_BCHAIN_KEY_INFO que conterá as informações da chave gerada. | ||||||||||
[in] | dwReserved | Reservado para uso futuro (deve 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 o endereço de uma chave usando o módulo blockchain.
[in] | hSession | Contexto adquirido através da função DOpenSession(). | ||||||||||||||||||||||
[in] | bType | Tipo do endereço a ser gerado. Pode ser um dos valores abaixo. | ||||||||||||||||||||||
[in] | bVer | Versão do endereço.
| ||||||||||||||||||||||
[in] | cszHrp | HRP (Human Readable Part) da chave. Os valores da tabela são aceitos. Deve ter tamanho máximo de DN_BCHAIN_MAX_HRP.
| ||||||||||||||||||||||
[in] | cszPk | Chave privada que será gerado o endereço ou o script-hash. Caso use script-hash passar um buffer de tamanho MAX_OBJ_ID_FQN_LEN com script-hash com padding zero. | ||||||||||||||||||||||
[in,out] | pbAddress | Buffer que receberá o endereço. Pode ser NULL para obter o tamanho necessário. É recomendado utilizar o tamanho máximo de DN_BCHAIN_MAX_ADDR_LEN. | ||||||||||||||||||||||
[in,out] | pdwAddressLen | Tamanho do buffer pbAddress . Caso o buffer pbAddress seja NULL, este parâmetro receberá o tamanho necessário. | ||||||||||||||||||||||
[in] | dwReserved | Reservado para uso futuro (deve 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>
Assina um hash usando o módulo blockchain.
[in] | hSession | Contexto adquirido através da função DOpenSession(). | ||||||||||||
[in] | bType | Tipo da assinatura a ser gerada. Pode ser um dos valores abaixo.
| ||||||||||||
[in] | bHashMode | Tipo do hash.
| ||||||||||||
[in] | pbHash | Hash calculado de acordo com o informado em bHashMode . | ||||||||||||
[in] | dwHashLen | Tamanho do hash informado em pbHash . | ||||||||||||
[in] | cszPk | Nome da chave privada. | ||||||||||||
[in,out] | pbSig | Buffer que receberá a assinatura.Pode ser NULL para obter o tamanho necessário.É recomendado utilizar o tamanho máximo de DN_BCHAIN_MAX_SIG_LEN. | ||||||||||||
[in,out] | pdwSigLen | Tamanho do buffer pbSig.Caso o buffer pbSig seja NULL, este parâmetro receberá o tamanho necessário. | ||||||||||||
[in] | dwReserved | Reservado para uso futuro (deve 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 uma assinatura usando o módulo blockchain.
[in] | hSession | Contexto adquirido através da função DOpenSession(). | ||||||||||||
[in] | bSigType | Tipo da assinatura a ser gerada. Pode ser um dos valores abaixo.
| ||||||||||||
[in] | bHashMode | Tipo do hash.
| ||||||||||||
[in] | pbHash | Hash calculado de acordo com o informado em bHashMode . | ||||||||||||
[in] | dwHashLen | Tamanho do hash informado em pbHash . | ||||||||||||
[in] | pbSig | Assinatura de acordo com o informado em bSigType . | ||||||||||||
[in] | dwSigLen | Tamanho da assinatura informada em pbSig . | ||||||||||||
[in] | bInPbkType | Formato da chave pública. Pode ser um dos valores abaixo.
| ||||||||||||
[in] | pbInPbk | Assinatura de acordo com o informado em bInPbkType . | ||||||||||||
[in] | bInPbkLen | Tamanho da assinatura informada em pbInPbk . | ||||||||||||
[in] | dwReserved | Reservado para uso futuro (deve 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>
Gera uma assinatura EdDsa usando o módulo blockchain.
[in] | hSession | Contexto adquirido através da função DOpenSession(). | ||||||||||
[in] | bType | Tipo da assinatura a ser gerada. Pode ser um dos valores abaixo.
| ||||||||||
[in] | cszCtxStr | String de contexto (context-string) como definido na RFC-8032 . Pode ser passado DN_BCHAIN_EDDSA_CSTR_UNUSED. | ||||||||||
[in] | pbData | Dados a serem assinados. | ||||||||||
[in] | dwDataLen | Tamanho dos dados a serem assinados. | ||||||||||
[in] | cszPk | Nome da chave privada. | ||||||||||
[in,out] | pbSig | Buffer que receberá a assinatura. Pode ser NULL para obter o tamanho necessário. É recomendado utilizar o tamanho máximo de DN_BCHAIN_MAX_SIG_LEN. | ||||||||||
[in,out] | pdwSigLen | Tamanho do buffer pbSig . Caso o buffer pbSig seja NULL, este parâmetro receberá o tamanho necessário. | ||||||||||
[in] | dwReserved | Reservado para uso futuro (deve 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 uma assinatura EdDsa usando o módulo blockchain.
[in] | hSession | Contexto adquirido através da função DOpenSession(). | ||||||||||
[in] | bType | Tipo da assinatura a ser verificada. Pode ser um dos valores abaixo.
| ||||||||||
[in] | cszCtxStr | String de contexto (context-string) como definido na RFC-8032 de tamanho máximo DN_BCHAIN_EDDSA_MAX_CSTRL. Pode ser passado DN_BCHAIN_EDDSA_CSTR_UNUSED. | ||||||||||
[in] | pbData | Dados a serem verificados. | ||||||||||
[in] | dwDataLen | Tamanho dos dados a serem verificados. | ||||||||||
[in] | bPbkType | Formato da chave pública. Pode ser um dos valores abaixo.
| ||||||||||
[in] | pbPbk | Chave pública utilizada na verificação. | ||||||||||
[in] | dwPbkLen | Tamanho da chave pública. | ||||||||||
[in] | pbSig | Assinatura a ser verificada. | ||||||||||
[in] | dwSigLen | Tamanho da assinatura. | ||||||||||
[in] | dwReserved | Reservado para uso futuro (deve 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 uma chave privada usando o módulo blockchain.
[in] | hSession | Contexto adquirido através da função DOpenSession(). | ||||||||||||||||
[in] | bFormat | Formato da chave a ser importada. Pode ser um dos valores abaixo.
| ||||||||||||||||
[in] | dwAttributes | Parâmetros adicionais da chave. Veja as opções na função DGenerateKey(). Esta API inclui automaticamente a flag BCHAIN_KEY, que é necessária para as operações de blockchain. | ||||||||||||||||
[in] | cszId | Nome da chave privada. | ||||||||||||||||
[in] | pcbData | Chave privada no formato especificado em bFormat . O tamanho deste buffer deve ser informado em dwDataLen . | ||||||||||||||||
[in] | dwDataLen | Tamanho do buffer pcbData . | ||||||||||||||||
[in] | dwReserved | Reservado para uso futuro (deve 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 uma chave privada usando o módulo blockchain.
[in] | hSession | Contexto adquirido através da função DOpenSession(). | ||||||||||||||||
[in] | bFormat | Formato da chave a ser exportada. Pode ser um dos valores abaixo.
| ||||||||||||||||
[in] | bVersion | Versão da chave.
| ||||||||||||||||
[in] | bCompressed | 0 para exportar a chave no formato não comprimido e 1 para o formato comprimido. | ||||||||||||||||
[in] | cszId | Nome da chave privada. | ||||||||||||||||
[out] | ppbData | Chave privada. O tamanho deste buffer será informado em pdwDataLen . Este buffer deverá ser liberado com a API DFree(). | ||||||||||||||||
[out] | pdwDataLen | Tamanho do buffer ppcbData . | ||||||||||||||||
[in] | dwReserved | Reservado para uso futuro (deve ser 0). |
int AAP_API DBchainGetPubKey | ( | HSESSIONCTX | hSession, |
BYTE | bType, | ||
const char * | cszId, | ||
BYTE * | pbData, | ||
DWORD * | pdwDataLen, | ||
DWORD | dwReserved ) |
#include <dinamo.h>
Recupera uma chave pública a partir de uma chave privada usando o módulo blockchain.
[in] | hSession | Contexto adquirido através da função DOpenSession(). | ||||||||||||||||
[in] | bType | Formato da chave pública a ser exportada. Pode ser um dos valores abaixo.
| ||||||||||||||||
[in] | cszId | Nome da chave privada. | ||||||||||||||||
[out] | pbData | Chave pública. Pode ser passado NULL para receber o tamanho esperado em pdwDataLen . O tamanho máximo deste buffer é DN_BCHAIN_MAX_PBK_LEN. | ||||||||||||||||
[in,out] | pdwDataLen | Tamanho do buffer pcbData . Conterá, ao final da chamada, a quantidade de dados escritas em pcbData . | ||||||||||||||||
[in] | dwReserved | Reservado para uso futuro (deve 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 uma chave pública (PBK) a partir de uma assinatura tipo ECDSA.
[in] | hSession | Contexto adquirido através da função DOpenSession(). | ||||||||||||
[in] | bSigType | Tipo da assinatura a ser gerada. Pode ser um dos valores abaixo.
| ||||||||||||
[in] | bHashMode | Tipo do hash.
| ||||||||||||
[in] | pbHash | Hash calculado de acordo com o informado em bHashMode . | ||||||||||||
[in] | dwHashLen | Tamanho do hash informado em pbHash . | ||||||||||||
[in] | pbSig | Assinatura de acordo com o informado em bSigType . | ||||||||||||
[in] | dwSigLen | Tamanho da assinatura informada em pbSig . | ||||||||||||
[out] | pPbk | Chave pública a ser recuperada. Informar uma estrutura do tipo DN_BCHAIN_PBK. | ||||||||||||
[in] | dwReserved | Reservado para uso futuro (deve ser 0). |
int AAP_API DBchainGetKeyInfo | ( | HSESSIONCTX | hSession, |
DWORD | dwReserved, | ||
const char * | cszId, | ||
void * | pvData, | ||
DWORD * | pdwDataLen ) |
#include <dinamo.h>
Recupera as propriedades de uma chave usando o módulo blockchain.
[in] | hSession | Contexto adquirido através da função DOpenSession(). |
[in] | dwReserved | Reservado para uso futuro (deve ser 0). |
[in] | cszId | Nome da chave privada. |
[out] | pvData | Propriedades da chave. Recebe uma estrutura DN_BCHAIN_KEY_INFO. Pode ser passado NULL para receber o tamanho esperado em pdwDataLen . |
[in,out] | pdwDataLen | Tamanho do buffer pcbData . Conterá, ao final da chamada, a quantidade de dados escritas em pcbData . |
int AAP_API DBchainHashData | ( | HSESSIONCTX | hSession, |
BYTE | bMode, | ||
BYTE * | pbData, | ||
DWORD | dwDataLen, | ||
BYTE * | pbHash, | ||
DWORD * | pdwHashLen, | ||
DWORD | dwReserved ) |
#include <dinamo.h>
Calcula um hash usando o módulo blockchain.
[in] | hSession | Contexto adquirido através da função DOpenSession(). | ||||||||||||
[in] | bMode | Tipo do hash.
| ||||||||||||
[in] | pbData | Dados que serão processados. O tamanho deste buffer deve ser informado em dwDataLen . Tamanho máximo de DN_BCHAIN_MAX_HDATA_LEN. | ||||||||||||
[in] | dwDataLen | Tamanho do buffer pbData . | ||||||||||||
[out] | pbHash | Recebe o hash calculado. Pode ser passado NULL para receber o tamanho esperado em pdwHashLen . | ||||||||||||
[in,out] | pdwHashLen | Tamanho do buffer pbHash . Conterá, ao final da chamada, a quantidade de dados escritas em pbHash . | ||||||||||||
[in] | dwReserved | Reservado para uso futuro (deve ser 0). |
int AAP_API DBchainEd2X | ( | HSESSIONCTX | hSession, |
const char * | cszPk, | ||
const char * | cszTo, | ||
DWORD | dwAttr, | ||
DWORD | dwReserved ) |
#include <dinamo.h>
Converte uma chave Edwards (Ed) para o formato Montgomery (x). Atualmente converte chaves Ed25519 para X25519.
[in] | hSession | Contexto adquirido através da função DOpenSession(). |
[in] | cszPk | Nome da chave privada no formato Edwards, existente no HSM. |
[in] | cszTo | Nome da chave privada no formato Montgomery, que será criada no HSM. |
[in] | dwAttr | Atributos da chave. Veja dwAttr em DGenerateKey() para detalhes sobre os atributos de chave. Os atributos são adicionados aos atributos atuais da chave de origem cszPk . |
[in] | dwReserved | Reservado para uso futuro (deve ser 0). |