API C/C++
HSM Dinamo
Cargando...
Buscando...
No se han encontrado entradas
Conservación segura

Descripción detallada

Gestión de secretos compartidos.

Consulte la documentación técnica del HSM.

Definiciones y 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)
 

Funciones

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)
 

Definiciones y macros

DN_SKEEP_LEVEL_UNKNOWN

#define DN_SKEEP_LEVEL_UNKNOWN   (0)

#include <dinamo.h>

Nivel de seguridad desconocido. Utilizado en DSKeepProbeSecret().

DN_SKEEP_SEC_LEVEL_64b

#define DN_SKEEP_SEC_LEVEL_64b   (1)

#include <dinamo.h>

Nivel de seguridad de 64 bits.

DN_SKEEP_SEC_LEVEL_96b

#define DN_SKEEP_SEC_LEVEL_96b   (2)

#include <dinamo.h>

Nivel de seguridad de 96 bits.

DN_SKEEP_SEC_LEVEL_112b

#define DN_SKEEP_SEC_LEVEL_112b   (3)

#include <dinamo.h>

Nivel de seguridad de 112 bits.

DN_SKEEP_SEC_LEVEL_128b

#define DN_SKEEP_SEC_LEVEL_128b   (4)

#include <dinamo.h>

Nivel de seguridad de 128 bits.

DN_SKEEP_SEC_LEVEL_160b

#define DN_SKEEP_SEC_LEVEL_160b   (5)

#include <dinamo.h>

Nivel de seguridad de 160 bits.

Ejemplos
skeep_new_split_recover.c y skeep_probe_match.c.

DN_SKEEP_TYPE_NMIND

#define DN_SKEEP_TYPE_NMIND   (0)

#include <dinamo.h>

No limita el tipo de autenticación.

Ejemplos
skeep_new_split_recover.c y skeep_probe_match.c.

DN_SKEEP_TYPE_SCRD

#define DN_SKEEP_TYPE_SCRD   (1)

#include <dinamo.h>

Partición con M de N autenticación.

DN_SKEEP_TYPE_2FA

#define DN_SKEEP_TYPE_2FA   (2)

#include <dinamo.h>

OATHPartición con autenticación .

DN_SKEEP_TYPE_CRT

#define DN_SKEEP_TYPE_CRT   (4)

#include <dinamo.h>

Partición con autenticación X.509.

DN_SKEEP_SHARE_CKS_LEN

#define DN_SKEEP_SHARE_CKS_LEN   (4)

#include <dinamo.h>

Tamaño del valor de verificación (cuota) de una parte.

Ejemplos
skeep_new_split_recover.c.

DN_SKEEP_GEN_SHARE_CKS

#define DN_SKEEP_GEN_SHARE_CKS   (1)

#include <dinamo.h>

Genera el valor de verificación de una acción.

Ejemplos
skeep_new_split_recover.c.

Funciones

DSKeepNewSecret()

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

#include <dinamo.h>

Cree un nuevo secreto utilizando el módulo Guardado Seguro.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]cszIdIdentificador del objeto que se va a crear en el HSM. Véase szKeyId en DGenerateKey() para obtener más información sobre el tamaño máximo de los identificadores.
[in]bSecLevelNivel de seguridad. Puede ser una de las opciones siguientes.
Valor Significado Tamaño en bytes Cantidad física correspondiente
DN_SKEEP_SEC_LEVEL_64b Nivel de seguridad de 64 bits. 8 Granos de arena en la tierra
DN_SKEEP_SEC_LEVEL_96b Nivel de seguridad de 96 bits. 12 Los átomos en el cuerpo humano
DN_SKEEP_SEC_LEVEL_112b Nivel de seguridad de 112 bits. 14 Diámetro del Universo observable en miles de milímetros
DN_SKEEP_SEC_LEVEL_128b Nivel de seguridad de 128 bits. 16 Átomos de oxígeno en la atmósfera terrestre
DN_SKEEP_SEC_LEVEL_160b Nivel de seguridad de 160 bits. 20 Átomos en la Tierra
DN_SKEEP_LEVEL_UNKNOWN Nivel de seguridad desconocido. Utilizado en DSKeepProbeSecret(). - -

‍Los secretos son ligeramente más pequeños que sus acciones porque no tienen la metainformación del esquema M de N.

Parámetros
[in]wAuthTypeTipo de autenticación requerida por la partición secreta. Puede ser uno o una combinación de los valores siguientes.
Valor Significado
DN_SKEEP_TYPE_NMIND No limita el tipo de autenticación.
DN_SKEEP_TYPE_SCRD Partición con M de N autenticación.
DN_SKEEP_TYPE_2FA OATHPartición con autenticación .
DN_SKEEP_TYPE_CRT Partición con autenticación X.509.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Ejemplos
skeep_new_split_recover.c y 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>

Divide M de N en secreto. Según el estándar de compartición de secretos de Shamir.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]cszIdIdentificador del objeto en el HSM.
[in]bSecLevelNivel de seguridad. Ver opciones en DSKeepNewSecret().
[in]wAuthTypeTipo de autenticación requerida por la partición secreta. Ver opciones en DSKeepNewSecret().
[in]bMNúmero mínimo de acciones necesarias para reconstruir el secreto. Debe ser mayor o igual que DN_SKEEP_M_OF_N_S_MIN y menor o igual que DN_SKEEP_M_OF_N_S_MAX.
[in]bNNúmero de acciones a generar. Debe ser mayor o igual que DN_SKEEP_M_OF_N_S_MIN y menor o igual que DN_SKEEP_M_OF_N_S_MAX.
[out]pstSharesVector de estructura SKeepShare que recibirá las acciones generadas. El tamaño de este vector debe ser bN elementos.

‍Las acciones son ligeramente mayores que su secreto correspondiente porque contienen la metainformación del esquema M de N.

Parámetros
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Ejemplos
skeep_new_split_recover.c y skeep_probe_match.c.

DSKeepProbeSecret()

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

#include <dinamo.h>

Recuperar información de un secreto.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]cszIdIdentificador del objeto en el HSM.
[out]pstInfoEstructura que recibirá la información del secreto. Recibe una estructura SKeepProbeInfo.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Ejemplos
skeep_probe_match.c.

DSKeepMatchSecret()

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

#include <dinamo.h>

Comprueba que las acciones de un secreto son válidas.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]cszIdIdentificador del objeto en el HSM.
[in]cpstSharesVector de estructura SKeepShare que contiene las acciones del secreto. El número de elementos de este vector debe introducirse en dwSharesCount. La cantidad de este buffer debe ser la cantidad de M piezas.
[in]dwSharesCountNúmero de pstShares.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Notas
Si se utiliza con una autorización de partición M de N, esta API puede utilizarse sin estar autorizada.
Ejemplos
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>

Recuperar un secreto a partir de sus partes (compartir).

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]cszIdIdentificador del objeto en el HSM.
[in]cpstSharesVector de estructura SKeepShare que contiene las acciones del secreto. El número de elementos de este vector debe introducirse en dwSharesCount. La cantidad de este buffer debe ser la cantidad de M piezas.
[in]dwSharesCountNúmero de pstShares.
[out]pstRecoverInfoEstructura que recibirá la información secreta. Recibe una estructura SKeepRecoverInfo.
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Ejemplos
skeep_new_split_recover.c.

DSKeepRemoveSecret()

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

#include <dinamo.h>

Eliminar un secreto.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]cszIdIdentificador del objeto en el HSM.
[in]bSecLevelNivel de seguridad. Ver opciones en DSKeepNewSecret().
[in]wAuthTypeTipo de autenticación requerida por la partición secreta. Ver opciones en DSKeepNewSecret().
[in]dwReservedReservado para uso futuro (debe ser 0).
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Ejemplos
skeep_new_split_recover.c y skeep_probe_match.c.

DSKeepCalcCompartirCks()

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

#include <dinamo.h>

Genera el valor de verificación de una acción.

Parámetros
[in]dwTypeTipo de operación. Puede ser uno de los valores siguientes.
Valor Significado
DN_SKEEP_GEN_SHARE_CKS Genera el valor de comprobación de una acción. Consiste en una cadena de números DN_SKEEP_SHARE_CKS_LEN más el terminador nulo.
[in]cszShareBuffer que contiene la parte del secreto.
[out]szCksBuffer que recibirá el valor de comprobación. El tamaño de este búfer debe ser DN_SKEEP_SHARE_CKS_LEN + 1.
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Ejemplos
skeep_new_split_recover.c.