Operações de hash de criptogragia simétrica e assimétrica.
Funções | |
int AAP_API | DEncrypt (HKEYCTX hKey, HHASHCTX hHash, BOOL bFinal, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen, DWORD dwBufLen) |
int AAP_API | DDecrypt (HKEYCTX hKey, HHASHCTX hHash, BOOL bFinal, DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen) |
int AAP_API | DCreateHash (HSESSIONCTX hSession, int nAlgId, HKEYCTX hKey, DWORD dwFlags, HHASHCTX *hHash) |
int AAP_API | DHashData (HHASHCTX hHash, BYTE *pbData, DWORD dwDataLen, DWORD dwFlags) |
int AAP_API | DSetHashParam (HHASHCTX hHash, DWORD dwParam, BYTE *pbData, DWORD dwDataLen, DWORD dwFlags) |
int AAP_API | DGetHashParam (HHASHCTX hHash, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags) |
int AAP_API | DSignHash (HHASHCTX hHash, HKEYCTX hKey, DWORD dwFlags, BYTE *pbSignature, DWORD *pdwSigLen) |
int AAP_API | DDestroyHash (HHASHCTX *phHash) |
int AAP_API | DVerifySignature (HHASHCTX hHash, BYTE *pbSignature, DWORD dwSigLen, HKEYCTX hPubKey, DWORD dwFlags) |
int AAP_API | DDuplicateHash (HHASHCTX hHash, DWORD dwFlag, HHASHCTX *phHash) |
int AAP_API | DGetRandom (HSESSIONCTX hSession, BYTE *pbData, DWORD dwDataLen) |
int AAP_API | DGenEcdhKey (HSESSIONCTX hSession, DWORD dwOP, char *szPriKey, void *pvInData, DWORD dwInDataLen, BYTE *pbOutData, DWORD *pdwOutDataLen, DWORD dwFlags) |
int AAP_API | DCRLCertCheck (HSESSIONCTX hSession, char *szCRL, char *szCertId, char *szVerifyInfo) |
int AAP_API | DMofNSplit (HSESSIONCTX hSession, BYTE bM, BYTE bN, BYTE *pbSecret, DWORD dwSecretLen, DN_M_OF_N_SPLIT_INFO *pstSplitInfo, DWORD dwReserved) |
int AAP_API | DMofNRecover (HSESSIONCTX hSession, DN_M_OF_N_PART *pstParts, DWORD dwPartsCount, BYTE *pbSecret, DWORD dwReserved) |
int AAP_API DEncrypt | ( | HKEYCTX | hKey, |
HHASHCTX | hHash, | ||
BOOL | bFinal, | ||
DWORD | dwFlags, | ||
BYTE * | pbData, | ||
DWORD * | pdwDataLen, | ||
DWORD | dwBufLen ) |
#include <dinamo.h>
Criptografa de dados. O algoritmo usado depende da chave informada no parâmetro hKey.
[in] | hKey | Contexto de chave. | ||||||
[in] | hHash | Contexto de hash se os dados forem submetidos à operação de hash antes de serem criptografados. Depois da operação completa, o valor do hash pode ser obtido através da função DGetHashParam(). | ||||||
[in] | bFinal | Indica o último bloco de uma série que foi cifrada. TRUE para último bloco ou FALSE caso contrário. | ||||||
[in] | dwFlags | Deve ser passado 0, os valores da tabela abaixo são aceitos para casos específicos.
| ||||||
[in,out] | pbData | Ponteiro para um buffer que contem os dados a serem criptografados. Quando a função retorna, os dados originais são sobrescritos pelo resultado da operação de criptografia. O tamanho buffer é especificado pelo parâmetro dwBufLen, o número de bytes a serem processados é especificado pelo parâmetro pdwDataLen. O tamanho do buffer deve ser grande o suficiente para conter os dados criptografados mais o padding. | ||||||
[in,out] | pdwDataLen | Ponteiro para um DWORD que contem o tamanho dos dados em pbData . Quando parâmetro de entrada, contém o número de bytes que serão processados, quando parâmetro de saída, contém o número de bytes dos dados criptografados.Se o buffer alocado não for suficiente para receber todo o dado cifrado (faltar, por exemplo, espaço para o padding) a função irá falhar retornando D_MORE_DATA. | ||||||
[in] | dwBufLen | Tamanho do buffer passado em pbData . Para operações simétricas que exijam padding o buffer deve ter o tamanho mínimo do comprimento do dado mais o tamanho do bloco de operação do algoritmo a ser utilizado. |
int AAP_API DDecrypt | ( | HKEYCTX | hKey, |
HHASHCTX | hHash, | ||
BOOL | bFinal, | ||
DWORD | dwFlags, | ||
BYTE * | pbData, | ||
DWORD * | pdwDataLen ) |
#include <dinamo.h>
Decriptografa dados, muitas vezes cifrado pela função DEncrypt. O algoritmo usado depende da chave informada no parâmetro hKey.
[in] | hKey | Contexto de chave. | ||||||
[in] | hHash | Contexto de hash se os dados forem submetidos à operação de hash depois de serem decriptografados. Depois da operação completa, o valor do hash pode ser obtido através da função DGetHashParam(). | ||||||
[in] | bFinal | Indica o último bloco de uma série que foi cifrada. TRUE para último bloco ou FALSE caso contrário. | ||||||
[in] | dwFlags | Deve ser passado 0, os valores da tabela abaixo são aceitos para casos específicos.
| ||||||
[in,out] | pbData | Ponteiro para um buffer que contem os dados a serem decriptografados. Quando a função retorna, os dados originais são sobrescritos pelo resultado da operação de criptografia. Para operações simétricas de bloco, é necessário que o tamanho dos dados seja sempre múltiplo do bloco usado pelo algoritmo em questão. | ||||||
[in,out] | pdwDataLen | Ponteiro para um DWORD que contem o tamanho dos dados em pbData . Quando parâmetro de entrada, contém o número de bytes que serão processados, quando parâmetro de saída, contém o número de bytes dos dados em texto claro. |
int AAP_API DCreateHash | ( | HSESSIONCTX | hSession, |
int | nAlgId, | ||
HKEYCTX | hKey, | ||
DWORD | dwFlags, | ||
HHASHCTX * | hHash ) |
#include <dinamo.h>
Inicializa um contexto de hash para ser usado com um fluxo de dados. Esse contexto é usado para chamadas subseqüentes DHashData(), DHashSessionKey(), entre outras.
[in] | hSession | Contexto adquirido através da função DOpenSession(). | ||||||||||||||||||||||||||||||||||||||||
[in] | nAlgId | Define o algoritmo associado ao contexto de hash.
| ||||||||||||||||||||||||||||||||||||||||
[in] | hKey | Deve ser passado de acordo com o tipo de algoritmo passado em nAlgId. | ||||||||||||||||||||||||||||||||||||||||
[in] | dwFlags | Reservado para uso futuro (deve ser 0). | ||||||||||||||||||||||||||||||||||||||||
[out] | hHash | Ponteiro para o contexto do hash gerado. Depois do seu uso deverá ser liberado com a função DDestroyHash(). |
#include <dinamo.h>
Adiciona dados à um determinado contexto de hash. Essa função pode ser chamada diversas vezes para adicionar dados discontinuos.
[in] | hHash | Contexto de hash gerado pela função DCreateHash(). |
[in] | pbData | Buffer contendo os dados que serão adicionados ao contexto de hash. |
[in] | dwDataLen | Número de bytes a ser adicionados. |
[in] | dwFlags | Reservado para uso futuro (deve ser 0). |
int AAP_API DSetHashParam | ( | HHASHCTX | hHash, |
DWORD | dwParam, | ||
BYTE * | pbData, | ||
DWORD | dwDataLen, | ||
DWORD | dwFlags ) |
#include <dinamo.h>
Altera um contexto de hash criado por DCreateHash().
[in] | hHash | Contexto de hash gerado pela função DCreateHash(). | ||||||
[in] | dwParam | Define o parâmetro do contexto de hash a ser modificado.
| ||||||
[in] | pbData | Ponteiro para os dados ou estruturas especificados em dwParam . | ||||||
[in] | dwDataLen | Tamanho dos dados ou estrutura especificados em dwParam . | ||||||
[in] | dwFlags | Reservado para uso futuro (deve ser 0). |
int AAP_API DGetHashParam | ( | HHASHCTX | hHash, |
DWORD | dwParam, | ||
BYTE * | pbData, | ||
DWORD * | pdwDataLen, | ||
DWORD | dwFlags ) |
#include <dinamo.h>
Retorna atributos associados à um determinado contexto de hash. O valor do hash pode ser recuperado usando essa função.
[in] | hHash | Contexto de hash gerado pela função DCreateHash(). | ||||||||
[in] | dwParam | Define o parâmetro do contexto de hash a ser recuperado.
| ||||||||
[in] | pbData | Ponteiro para os dados ou estruturas especificados em dwParam . Esse parâmetro pode ser NULL para que seja especificada a quantidade de memória necessária. | ||||||||
[in,out] | pdwDataLen | Ponteiro para o tamanho do buffer, em bytes, especificado em pbData . Quando a função retorna, esse parâmetro conterá o tamanho dos dados armazenados em pbData . | ||||||||
[in] | dwFlags | Reservado para uso futuro (deve ser 0). |
int AAP_API DSignHash | ( | HHASHCTX | hHash, |
HKEYCTX | hKey, | ||
DWORD | dwFlags, | ||
BYTE * | pbSignature, | ||
DWORD * | pdwSigLen ) |
#include <dinamo.h>
Assina um dado a partir do seu contexto de hash criado com a função DCreateHash().
[in] | hHash | Contexto de hash gerado pela função DCreateHash(). | ||||||||
[in] | hKey | Contexto da chave privada a ser utilizada na assinatura. | ||||||||
[in] | dwFlags | Deve-se passar 0 ou algum modificador definido na lista abaixo.
| ||||||||
[out] | pbSignature | Buffer que receberá a assinatura. Esse parâmetro pode ser NULL para que seja especificada a quantidade de memória necessária. | ||||||||
[in,out] | pdwSigLen | Ponteiro para o tamanho da assinatura, em bytes. Quando a função retorna, esse parâmetro conterá o tamanho dos dados armazenados em pbSignature. |
As assinaturas geradas com chaves EdDSA são feitas utilizando o algoritmo de assinatura PureEdDSA como descrito na RFC 8032. Desta maneira, deve-se utilizar o algoritmo ALG_IDENTITY_FUNC nas APIs de hash para utilizar a função identidade. O tamanho máximo de dados aceitos para assinatura é de DN_SIG_EDDSA_MAX_DATA_LEN bytes.
#include <dinamo.h>
Libera o contexto de um hash depois do seu uso. Depois que este contexto foi liberado ele não pode ser mais usado por qualquer função, se tornando inválido.
[in] | phHash | Contexto de hash gerado pela função DCreateHash(). |
int AAP_API DVerifySignature | ( | HHASHCTX | hHash, |
BYTE * | pbSignature, | ||
DWORD | dwSigLen, | ||
HKEYCTX | hPubKey, | ||
DWORD | dwFlags ) |
#include <dinamo.h>
Verifica a assinatura do hash associado à um contexto.
[in] | hHash | Contexto de hash gerado pela função DCreateHash(). | ||||||
[in] | pbSignature | Buffer contendo o a assinatura a ser verificada. | ||||||
[in] | dwSigLen | Número de bytes da assinatura. | ||||||
[in] | hPubKey | Contexto para a chave pública utilizada na verificação da assinatura. | ||||||
[in] | dwFlags | Modificadores do comportamento da função.
|
#include <dinamo.h>
Duplica o contexto de um hash, incluindo o seu estado interno.
[in] | hHash | Contexto de hash gerado pela função DCreateHash(). |
[in] | dwFlag | Reservado para uso futuro (deve ser 0). |
[in] | phHash | Ponteiro para o contexto do hash gerado. Depois do seu uso deverá ser liberado com a função DDestroyHash(). |
int AAP_API DGetRandom | ( | HSESSIONCTX | hSession, |
BYTE * | pbData, | ||
DWORD | dwDataLen ) |
#include <dinamo.h>
Recupera um número determinado de bytes pseudo-aleatórios para uso criptográfico.
[in] | hSession | Contexto adquirido através da função DOpenSession(). |
[out] | pbData | Buffer que será preenchido com os bytes pseudo-aleatórios. |
[in] | dwDataLen | Tamanho em bytes de pbData . |
int AAP_API DGenEcdhKey | ( | HSESSIONCTX | hSession, |
DWORD | dwOP, | ||
char * | szPriKey, | ||
void * | pvInData, | ||
DWORD | dwInDataLen, | ||
BYTE * | pbOutData, | ||
DWORD * | pdwOutDataLen, | ||
DWORD | dwFlags ) |
#include <dinamo.h>
Gera um segredo compartilhado(shared secret)/chave utilizando o protocolo de acordo de chaves (key-agreement) ECDH (Elliptc Curve Diffie-Hellman).
[in] | hSession | Contexto adquirido através da função DOpenSession(). | ||||||
[in] | dwOP | Modificadores do comportamento da função.
| ||||||
[in] | szPriKey | Identificador da chave privada dentro do HSM. Este identificador não deve conter espaços ou caracteres especiais. Caracteres maiúsculos e minúsculos são diferenciados ( case sensitive) | ||||||
[in] | pvInData | Ponteiro para os dados de entrada da função. Deve ser preenchido de acordo com o descrito nas opções de dwOP | ||||||
[in] | dwInDataLen | Tamanho em bytes de pvInData . | ||||||
[out] | pbOutData | Buffer que receberá a chave/segredo de saída. Esse parâmetro pode ser NULL para que seja retornada a quantidade de memória necessária em pdwOutDataLen . Este parâmetro será ignorado quando a operação for de gravar a chave no HSM. | ||||||
[in,out] | pdwOutDataLen | Ponteiro para o tamanho do buffer pbOutData , em bytes, que conterá a chave/segredo de saída. Quando a função retorna, esse parâmetro conterá o tamanho dos dados efetivamente armazenados em pbOutData . Este parâmetro será ignorado quando a operação for de gravar a chave no HSM. | ||||||
[in] | dwFlags | Reservado para uso futuro (deve ser 0). |
int AAP_API DCRLCertCheck | ( | HSESSIONCTX | hSession, |
char * | szCRL, | ||
char * | szCertId, | ||
char * | szVerifyInfo ) |
#include <dinamo.h>
Valida um certificado X.509 no HSM utilizando uma LCR(Lista de Certificados Revogados) e uma cadeia de certificados.
[in] | hSession | Contexto adquirido através da função DOpenSession(). |
[in] | szCRL | Nome da LCR(Lista de Certificados Revogados). |
[in] | szCertId | Nome do certificado que será validado. |
[in] | szVerifyInfo | Nome da cadeia de certificados/certificado para validação do certificado especificado em szCertId. Pode ser passado NULL para não fazer a verificação de cadeia de certificados. |
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
int AAP_API DMofNSplit | ( | HSESSIONCTX | hSession, |
BYTE | bM, | ||
BYTE | bN, | ||
BYTE * | pbSecret, | ||
DWORD | dwSecretLen, | ||
DN_M_OF_N_SPLIT_INFO * | pstSplitInfo, | ||
DWORD | dwReserved ) |
#include <dinamo.h>
Faz a divisão M de N de um segredo. De acordo com o padrão de compartilhamento de segredos de Shamir.
[in] | hSession | Contexto adquirido através da função DOpenSession(). |
[in] | bM | Quantidade mínima de partes necessárias para reconstrução do segredo. Mínimo de DN_M_OF_N_S_MIN e máximo de DN_M_OF_N_S_MAX. |
[in] | bN | Quantidade total de partes geradas. Mínimo de DN_M_OF_N_S_MIN e máximo de DN_M_OF_N_S_MAX. |
[in] | pbSecret | Segredo que será compartilhado em várias partes. Deve ter tamanho DN_M_OF_N_S_LEN. Pode ser passado NULL para que um segredo seja gerado randomicamente pelo HSM, neste caso o valor será retornado em pstSplitInfo . |
[in] | dwSecretLen | Tamanho dos dados informados em pbSecret . Caso pbSecret seja NULL passar 0 neste parâmetro. |
[out] | pstSplitInfo | Dados de saída. |
[in] | dwReserved | Reservado para uso futuro (deve ser 0). |
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
int AAP_API DMofNRecover | ( | HSESSIONCTX | hSession, |
DN_M_OF_N_PART * | pstParts, | ||
DWORD | dwPartsCount, | ||
BYTE * | pbSecret, | ||
DWORD | dwReserved ) |
#include <dinamo.h>
Reconstrói o segredo M de N a partir das partes dos custodiantes. De acordo com o padrão de compartilhamento de segredos de Shamir.
[in] | hSession | Contexto adquirido através da função DOpenSession(). |
[in] | pstParts | Array de partes dos custodiantes. |
[in] | dwPartsCount | Quantidade de partes passadas em pstParts . |
[in] | pbSecret | Segredo reconstruído. Deve ter tamanho DN_M_OF_N_S_LEN. |
[in] | dwReserved | Reservado para uso futuro (deve ser 0). |
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.