API C/C++
HSM Dinamo
Carregando...
Procurando...
Nenhuma entrada encontrado
Safe Keeping

Descrição detalhada

Gerência de segredos compartilhados.

Consulte a documentação técnica do HSM.

Definições e Macros

#define DN_SKEEP_LEVEL_UNKNOWN   (0)
 
#define DN_SKEEP_SEC_LEVEL_64b   (1)
 
#define DN_SKEEP_SEC_LEVEL_96b   (2)
 
#define DN_SKEEP_SEC_LEVEL_112b   (3)
 
#define DN_SKEEP_SEC_LEVEL_128b   (4)
 
#define DN_SKEEP_SEC_LEVEL_160b   (5)
 
#define DN_SKEEP_TYPE_NMIND   (0)
 
#define DN_SKEEP_TYPE_SCRD   (1)
 
#define DN_SKEEP_TYPE_2FA   (2)
 
#define DN_SKEEP_TYPE_CRT   (4)
 
#define DN_SKEEP_SHARE_CKS_LEN   (4)
 
#define DN_SKEEP_GEN_SHARE_CKS   (1)
 

Funções

int AAP_API DSKeepNewSecret (HSESSIONCTX hSession, const char *cszId, BYTE bSecLevel, WORD wAuthType, DWORD dwReserved)
 
int AAP_API DSKeepSplitSecret (HSESSIONCTX hSession, const char *cszId, BYTE bSecLevel, WORD wAuthType, BYTE bM, BYTE bN, SKeepShare *pstShares, DWORD dwReserved)
 
int AAP_API DSKeepProbeSecret (HSESSIONCTX hSession, const char *cszId, SKeepProbeInfo *pstInfo, DWORD dwReserved)
 
int AAP_API DSKeepMatchSecret (HSESSIONCTX hSession, const char *cszId, const SKeepShare *cpstShares, DWORD dwSharesCount, DWORD dwReserved)
 
int AAP_API DSKeepRecoverSecret (HSESSIONCTX hSession, const char *cszId, const SKeepShare *cpstShares, DWORD dwSharesCount, SKeepRecoverInfo *pstRecoverInfo, DWORD dwReserved)
 
int AAP_API DSKeepRemoveSecret (HSESSIONCTX hSession, const char *cszId, BYTE bSecLevel, WORD wAuthType, DWORD dwReserved)
 
int AAP_API DSKeepCalcShareCks (DWORD dwType, const char *cszShare, char *szCks)
 

Definições e macros

◆ DN_SKEEP_LEVEL_UNKNOWN

#define DN_SKEEP_LEVEL_UNKNOWN   (0)

#include <dinamo.h>

Nível de segurança não conhecido. Usado em DSKeepProbeSecret().

◆ DN_SKEEP_SEC_LEVEL_64b

#define DN_SKEEP_SEC_LEVEL_64b   (1)

#include <dinamo.h>

Nível de segurança de 64 bits.

◆ DN_SKEEP_SEC_LEVEL_96b

#define DN_SKEEP_SEC_LEVEL_96b   (2)

#include <dinamo.h>

Nível de segurança de 96 bits.

◆ DN_SKEEP_SEC_LEVEL_112b

#define DN_SKEEP_SEC_LEVEL_112b   (3)

#include <dinamo.h>

Nível de segurança de 112 bits.

◆ DN_SKEEP_SEC_LEVEL_128b

#define DN_SKEEP_SEC_LEVEL_128b   (4)

#include <dinamo.h>

Nível de segurança de 128 bits.

◆ DN_SKEEP_SEC_LEVEL_160b

#define DN_SKEEP_SEC_LEVEL_160b   (5)

#include <dinamo.h>

Nível de segurança de 160 bits.

Exemplos
skeep_new_split_recover.c e skeep_probe_match.c.

◆ DN_SKEEP_TYPE_NMIND

#define DN_SKEEP_TYPE_NMIND   (0)

#include <dinamo.h>

Não limita o tipo de autenticação.

Exemplos
skeep_new_split_recover.c e skeep_probe_match.c.

◆ DN_SKEEP_TYPE_SCRD

#define DN_SKEEP_TYPE_SCRD   (1)

#include <dinamo.h>

Partição com autenticação M de N.

◆ DN_SKEEP_TYPE_2FA

#define DN_SKEEP_TYPE_2FA   (2)

#include <dinamo.h>

Partição com autenticação OATH.

◆ DN_SKEEP_TYPE_CRT

#define DN_SKEEP_TYPE_CRT   (4)

#include <dinamo.h>

Partição com autenticação X.509.

◆ DN_SKEEP_SHARE_CKS_LEN

#define DN_SKEEP_SHARE_CKS_LEN   (4)

#include <dinamo.h>

Tamanho do valor de verificação de uma parte (share).

Exemplos
skeep_new_split_recover.c.

◆ DN_SKEEP_GEN_SHARE_CKS

#define DN_SKEEP_GEN_SHARE_CKS   (1)

#include <dinamo.h>

Gera o valor de verificação de uma parte (share).

Exemplos
skeep_new_split_recover.c.

Funções

◆ DSKeepNewSecret()

int AAP_API DSKeepNewSecret ( HSESSIONCTX hSession,
const char * cszId,
BYTE bSecLevel,
WORD wAuthType,
DWORD dwReserved )

#include <dinamo.h>

Cria um novo segredo utilizando módulo Safe Keeping.

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]cszIdIndentificador do objeto que será criado no HSM. Veja szKeyId em DGenerateKey() para detalhes sobre tamanhos máximos de identificadores.
[in]bSecLevelNível de segurança. Pode ser uma das opções abaixo.
Valor Significado Tamanho em bytes Grandeza Física Correspondente
DN_SKEEP_SEC_LEVEL_64b Nível de segurança de 64 bits. 8 Grãos de Areia na Terra
DN_SKEEP_SEC_LEVEL_96b Nível de segurança de 96 bits. 12 Átomos no Corpo Humano
DN_SKEEP_SEC_LEVEL_112b Nível de segurança de 112 bits. 14 Diâmetro do Universo Observável em Milésimos de Milímetros
DN_SKEEP_SEC_LEVEL_128b Nível de segurança de 128 bits. 16 Átomos de Oxigênio na Atmosfera Terrestre
DN_SKEEP_SEC_LEVEL_160b Nível de segurança de 160 bits. 20 Átomos na Terra
DN_SKEEP_LEVEL_UNKNOWN Nível de segurança não conhecido. Usado em DSKeepProbeSecret(). - -

‍Os segredos são ligeiramente menores que as suas partes (shares) por não terem a meta informação do esquema M de N.

Parâmetros
[in]wAuthTypeTipo de autenticação requerida pela partição do segredo. Pode ser um ou a combinação dos valores abaixo.
Valor Significado
DN_SKEEP_TYPE_NMIND Não limita o tipo de autenticação.
DN_SKEEP_TYPE_SCRD Partição com autenticação M de N.
DN_SKEEP_TYPE_2FA Partição com autenticação OATH.
DN_SKEEP_TYPE_CRT Partição com autenticação X.509.
[in]dwReservedReservado para uso futuro (deve ser 0).
Retorna
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
Exemplos
skeep_new_split_recover.c e skeep_probe_match.c.

◆ DSKeepSplitSecret()

int AAP_API DSKeepSplitSecret ( HSESSIONCTX hSession,
const char * cszId,
BYTE bSecLevel,
WORD wAuthType,
BYTE bM,
BYTE bN,
SKeepShare * pstShares,
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.

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]cszIdIndentificador do objeto no HSM.
[in]bSecLevelNível de segurança. Ver opções em DSKeepNewSecret().
[in]wAuthTypeTipo de autenticação requerida pela partição do segredo. Ver opções em DSKeepNewSecret().
[in]bMQuantidade mínima de partes (share) necessárias para reconstrução do segredo. Deve ser maior ou igual a DN_SKEEP_M_OF_N_S_MIN e menor ou igual a DN_SKEEP_M_OF_N_S_MAX.
[in]bNQuantidade de partes (share) que serão geradas. Deve ser maior ou igual a DN_SKEEP_M_OF_N_S_MIN e menor ou igual a DN_SKEEP_M_OF_N_S_MAX.
[out]pstSharesVetor de estruturas SKeepShare que receberá as partes (share) geradas. O tamanho deste vetor deve ser bN elementos.

‍As partes (shares) são ligeiramente maiores do que seu segredo correspondente, por conterem a meta informação do esquema M de N.

Parâmetros
[in]dwReservedReservado para uso futuro (deve ser 0).
Retorna
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
Exemplos
skeep_new_split_recover.c e skeep_probe_match.c.

◆ DSKeepProbeSecret()

int AAP_API DSKeepProbeSecret ( HSESSIONCTX hSession,
const char * cszId,
SKeepProbeInfo * pstInfo,
DWORD dwReserved )

#include <dinamo.h>

Recupera informaçoes de um segredo.

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]cszIdIndentificador do objeto no HSM.
[out]pstInfoEstrutura que receberá as informações do segredo. Recebe uma estrutura SKeepProbeInfo.
[in]dwReservedReservado para uso futuro (deve ser 0).
Retorna
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
Exemplos
skeep_probe_match.c.

◆ DSKeepMatchSecret()

int AAP_API DSKeepMatchSecret ( HSESSIONCTX hSession,
const char * cszId,
const SKeepShare * cpstShares,
DWORD dwSharesCount,
DWORD dwReserved )

#include <dinamo.h>

Verifica se as partes (share) de um segredo são válidas.

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]cszIdIndentificador do objeto no HSM.
[in]cpstSharesVetor de estruturas SKeepShare que contém as partes (share) do segredo. A quantidade de elementos deste vetor deve ser informado em dwSharesCount. A quantidade deste buffer deve ser a quantidade de partes M.
[in]dwSharesCountQuantidade de elementos de pstShares.
[in]dwReservedReservado para uso futuro (deve ser 0).
Retorna
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
Anotações
Caso seja utilizada com autorização M de N de partição, esta API pode ser utilizada sem estar autorizada.
Exemplos
skeep_probe_match.c.

◆ DSKeepRecoverSecret()

int AAP_API DSKeepRecoverSecret ( HSESSIONCTX hSession,
const char * cszId,
const SKeepShare * cpstShares,
DWORD dwSharesCount,
SKeepRecoverInfo * pstRecoverInfo,
DWORD dwReserved )

#include <dinamo.h>

Recupera um segredo a partir de suas partes (share).

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]cszIdIndentificador do objeto no HSM.
[in]cpstSharesVetor de estruturas SKeepShare que contém as partes (share) do segredo. A quantidade de elementos deste vetor deve ser informado em dwSharesCount. A quantidade deste buffer deve ser a quantidade de partes M.
[in]dwSharesCountQuantidade de elementos de pstShares.
[out]pstRecoverInfoEstrutura que receberá as informações do segredo. Recebe uma estrutura SKeepRecoverInfo.
[in]dwReservedReservado para uso futuro (deve ser 0).
Retorna
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
Exemplos
skeep_new_split_recover.c.

◆ DSKeepRemoveSecret()

int AAP_API DSKeepRemoveSecret ( HSESSIONCTX hSession,
const char * cszId,
BYTE bSecLevel,
WORD wAuthType,
DWORD dwReserved )

#include <dinamo.h>

Remove um segredo.

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]cszIdIndentificador do objeto no HSM.
[in]bSecLevelNível de segurança. Ver opções em DSKeepNewSecret().
[in]wAuthTypeTipo de autenticação requerida pela partição do segredo. Ver opções em DSKeepNewSecret().
[in]dwReservedReservado para uso futuro (deve ser 0).
Retorna
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
Exemplos
skeep_new_split_recover.c e skeep_probe_match.c.

◆ DSKeepCalcShareCks()

int AAP_API DSKeepCalcShareCks ( DWORD dwType,
const char * cszShare,
char * szCks )

#include <dinamo.h>

Gera o valor de verificação de uma parte (share).

Parâmetros
[in]dwTypeTipo da operação. Pode ser um dos valores abaixo.
Valor Significado
DN_SKEEP_GEN_SHARE_CKS Gera o valor de verificação de uma parte (share). Consiste em uma string de DN_SKEEP_SHARE_CKS_LEN números mais o terminador nulo.
[in]cszShareBuffer que contém a parte (share) do segredo.
[out]szCksBuffer que receberá o valor de verificação. O tamanho deste buffer deve ser DN_SKEEP_SHARE_CKS_LEN + 1.
Retorna
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
Exemplos
skeep_new_split_recover.c.