API C/C++
HSM Dinamo
Cargando...
Buscando...
No se han encontrado entradas
Criptografía

Descripción detallada

Operaciones hash criptográficas simétricas y asimétricas.

Funciones

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)
 

Funciones

DEncriptar()

int AAP_API DEncrypt ( HKEYCTX hKey,
HHASHCTX hHash,
BOOL bFinal,
DWORD dwFlags,
BYTE * pbData,
DWORD * pdwDataLen,
DWORD dwBufLen )

#include <dinamo.h>

Cifrado de datos. El algoritmo utilizado depende de la clave introducida en el parámetro hKey.

Parámetros
[in]hKeyContexto clave.
[in]hHashContexto hash si los datos se someten a hash antes de ser encriptados. Una vez finalizada la operación, el valor hash puede obtenerse mediante la función DGetHashParam().
[in]bFinalIndica el último bloque cifrado de una serie. TRUE para el último bloque o FALSE en caso contrario.
[in]dwFlagsLos valores de la tabla siguiente son aceptables para casos concretos.
Valor Significado
D_NO_RSA_PADDING No pad/unpad para claves RSA. Utilizar sólo para claves RSA. Puede utilizarse junto con el indicador D_FORCE_ACTUAL_RSA.
D_FORCE_ACTUAL_RSA Utiliza directamente la clave RSA. Cifrado con clave privada en DEncrypt y descifrado con DDecrypt. Puede utilizarse junto con la bandera D_NO_RSA_PADDING.
[in,out]pbDataPuntero a un búfer que contiene los datos que se van a cifrar. Cuando la función regresa, los datos originales se sobrescriben con el resultado de la operación de cifrado.
El tamaño del búfer se especifica mediante el parámetro dwBufLen, y el número de bytes que deben procesarse se especifica mediante el parámetro pdwDataLen. El tamaño del búfer debe ser suficiente para contener los datos cifrados más el relleno.
[in,out]pdwDataLenPuntero a un DWORD que contiene el tamaño de los datos en pbData. Cuando parámetro de entrada, contiene el número de bytes a procesar, cuando parámetro de salida, contiene el número de bytes de datos encriptados.
Si el búfer asignado no es suficiente para recibir todos los datos cifrados (por ejemplo, no hay espacio para el relleno) la función fallará y devolverá D_MÁS_DATA.
[in]dwBufLenTamaño del búfer introducido pbData. Para las operaciones simétricas que requieren relleno, el búfer debe tener al menos la longitud de los datos más el tamaño del bloque de operaciones del algoritmo que se vaya a utilizar.
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 va a cifrar una gran cantidad de datos, se puede hacer en parte con sucesivas llamadas a DEncrypt. En la última llamada, el parámetro bFinal debe pasarse con un valor verdadero.
Sólo se rellena el último bloque (cuando procede), por lo que los bloques restantes deben tener un tamaño coherente con el algoritmo utilizado. El búfer al que se pasan los datos debe ser lo suficientemente grande como para acomodar también el relleno.
Esta API admite operaciones RSA realizadas directamente sobre esta función. Los datos sobre los que se va a operar deben tener una longitud igual o inferior al tamaño de la clave menos 11 bytes. Cuando se utiliza la clave pública para el cifrado, el relleno utilizado es PKCS#1 tipo 2 y en el proceso de descifrado, el relleno se comprueba y se elimina. Para las operaciones con la clave privada, se utiliza el relleno PKCS#1 tipo 1. El HSM comprobará el formato del relleno incluso cuando la operación no tenga relleno definido, como en D_NO_RSA_PADDING. Las operaciones de cifrado y descifrado RSA sólo están habilitadas en modo no restringido (NRM).
Ver también
DGenerateKey().
Ejemplos
crypt_sym.c.

DDecrypt()

int AAP_API DDecrypt ( HKEYCTX hKey,
HHASHCTX hHash,
BOOL bFinal,
DWORD dwFlags,
BYTE * pbData,
DWORD * pdwDataLen )

#include <dinamo.h>

Desencripta los datos, a menudo encriptados por la función DEncrypt. El algoritmo utilizado depende de la clave introducida en el parámetro hKey.

Parámetros
[in]hKeyContexto clave.
[in]hHashContexto hash si los datos se someten a la operación hash después de ser descifrados. Una vez finalizada la operación, el valor hash puede obtenerse mediante la función DGetHashParam().
[in]bFinalIndica el último bloque cifrado de una serie. TRUE para el último bloque o FALSE en caso contrario.
[in]dwFlagsLos valores de la tabla siguiente son aceptables para casos concretos.
Valor Significado
D_NO_RSA_PADDING No pad/unpad para claves RSA. Utilizar sólo para claves RSA. Puede utilizarse junto con el indicador D_FORCE_ACTUAL_RSA.
D_FORCE_ACTUAL_RSA Utiliza directamente la clave RSA. Cifrado con clave privada en DEncrypt y descifrado con DDecrypt. Puede utilizarse junto con la bandera D_NO_RSA_PADDING.
[in,out]pbDataPuntero a un búfer que contiene los datos que se van a descifrar. Cuando la función regresa, los datos originales se sobrescriben con el resultado de la operación de cifrado.
Para las operaciones simétricas de bloque, el tamaño de los datos debe ser siempre múltiplo del bloque utilizado por el algoritmo en cuestión.
[in,out]pdwDataLenPuntero a un DWORD que contiene el tamaño de los datos en pbData. Cuando parámetro de entrada, contiene el número de bytes a procesar, cuando parámetro de salida, contiene el número de bytes de datos en texto claro.
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Notas
Si hay que descifrar una gran cantidad de datos, se puede hacer en parte, con llamadas DDecrypt posteriores. En la última llamada, el parámetro bFinal debe pasarse con un valor verdadero.
Sólo en el último bloque se deshace el relleno (cuando procede), por lo que los bloques restantes deben tener un tamaño acorde con el algoritmo utilizado, y si se está utilizando el modo de funcionamiento de cifrado simétrico CBC, el vector de inicialización se pondrá a cero.
Esta API admite operaciones RSA realizadas directamente sobre esta función. Los datos sobre los que se va a operar deben tener una longitud igual al tamaño de la clave. Cuando se utiliza la clave pública para el cifrado, el relleno utilizado es PKCS#1 tipo 2 y en el proceso de descifrado, el relleno se comprueba y se elimina. Para las operaciones con la clave privada, se utiliza el relleno PKCS#1 tipo 1. El HSM comprobará el formato del relleno incluso cuando la operación no tenga relleno definido, como en D_NO_RSA_PADDING. Las operaciones de cifrado y descifrado RSA sólo están habilitadas en modo no restringido (NRM).
Ejemplos
crypt_sym.c.

DCreateHash()

int AAP_API DCreateHash ( HSESSIONCTX hSession,
int nAlgId,
HKEYCTX hKey,
DWORD dwFlags,
HHASHCTX * hHash )

#include <dinamo.h>

Inicializa un contexto hash que se utilizará con un flujo de datos. Este contexto se utiliza para llamadas posteriores a DHashData(), DHashSessionKey(), entre otras.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]nAlgIdDefine el algoritmo asociado al contexto hash.
Valor Significado
ALG_MD5 Algoritmo hash MD5. hKey debe ser NULL.
ALG_SHA1 Algoritmo hash SHA1. hKey debe ser NULL.
ALG_SSL_SHA1_MD5 Hash para la autenticación de clientes SSLv3. hKey debe ser NULL.
ALG_SHA2_224 Algoritmo hash SHA2 - 224. hKey debe ser NULL.
ALG_SHA2_256 Algoritmo hash SHA2 - 256. hKey debe ser NULL.
ALG_SHA2_384 Algoritmo hash SHA2 - 384. hKey debe ser NULL.
ALG_SHA2_512 Algoritmo hash SHA2 - 512. hKey debe ser NULL.
ALG_SHA3_224 Algoritmo hash SHA3 - 224. hKey debe ser NULL.
ALG_SHA3_256 Algoritmo hash SHA3 - 256. hKey debe ser NULL.
ALG_SHA3_384 Algoritmo hash SHA3 - 384. hKey debe ser NULL.
ALG_SHA3_512 Algoritmo hash SHA3 - 512. hKey debe ser NULL.
ALG_HMAC_MD5 Algoritmo HMAC MD5. hKey debe ser el contexto de la clave utilizada en HMAC.
ALG_HMAC_SHA1 Algoritmo HMAC SHA1. hKey debe ser el contexto de la clave utilizada en HMAC.
ALG_HMAC_SHA2_256 Algoritmo HMAC SHA2 - 256. hKey debe ser el contexto de la clave utilizada en HMAC.
ALG_HMAC_SHA2_384 Algoritmo HMAC SHA2 - 384. hKey debe ser el contexto de la clave utilizada en HMAC.
ALG_HMAC_SHA2_512 Algoritmo HMAC SHA2 - 512. hKey debe ser el contexto de la clave utilizada en HMAC.
ALG_CMAC_DES Algoritmo CMAC 3DES. hKey debe ser el contexto de la clave 3DES utilizada en CMAC.
ALG_CMAC_AES CMAC Algoritmo AES. hKey debe ser el contexto para la clave AES utilizada en CMAC.
ALG_IDENTIDAD_FUNC Función de identidad. Los datos de entrada son los mismos que los de salida. hKey NULL.
[in]hKeyDebe pasarse según el tipo de algoritmo pasado en nAlgId.
[in]dwFlagsReservado para uso futuro (debe ser 0).
[out]hHashPuntero al contexto del hash generado. Tras su uso, debe liberarse con la función DDestroyHash().
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Ejemplos
create_hash.c, sign_verify.c y sign_verify_eddsa.c.

DHashData()

int AAP_API DHashData ( HHASHCTX hHash,
BYTE * pbData,
DWORD dwDataLen,
DWORD dwFlags )

#include <dinamo.h>

Añade datos a un contexto hash dado. Esta función puede llamarse varias veces para añadir datos discontinuos.

Parámetros
[in]hHashContexto hash generado por la función DCreateHash().
[in]pbDataBuffer que contiene los datos que se añadirán al contexto hash.
[in]dwDataLenNúmero de bytes a añadir.
[in]dwFlagsReservado 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
create_hash.c, sign_verify.c y sign_verify_eddsa.c.

DSetHashParam()

int AAP_API DSetHashParam ( HHASHCTX hHash,
DWORD dwParam,
BYTE * pbData,
DWORD dwDataLen,
DWORD dwFlags )

#include <dinamo.h>

Cambia un contexto hash creado por DCreateHash().

Parámetros
[in]hHashContexto hash generado por la función DCreateHash().
[in]dwParamDefine el parámetro de contexto hash que se va a modificar.
Valor Significado
DHP_HASH_VALUE Tipo de pbData: BYTE *
pbData debe ser un puntero a un búfer que contenga el valor hash que se asociará al contexto.
Una vez que se ha asignado un valor a este parámetro, el valor hash ya no se puede cambiar y las futuras llamadas a DHashData o DHashSessionKey fallarán devolviendo el código de error D_INVALID_HASH_STATE.
DHP_RESET Tipo de pbData: NULL
Restablece el contexto hash al estado inicial. Se elimina el valor hash.
[in]pbDataPuntero a los datos o estructuras especificados en dwParam.
[in]dwDataLenTamaño de los datos o de la estructura especificada en dwParam.
[in]dwFlagsReservado 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.

DGetHashParam()

int AAP_API DGetHashParam ( HHASHCTX hHash,
DWORD dwParam,
BYTE * pbData,
DWORD * pdwDataLen,
DWORD dwFlags )

#include <dinamo.h>

Devuelve los atributos asociados a un contexto hash dado. El valor hash se puede recuperar utilizando esta función.

Parámetros
[in]hHashContexto hash generado por la función DCreateHash().
[in]dwParamDefine el parámetro de contexto hash que se va a recuperar.
Valor Significado
DHP_ALGID Tipo de pbData: DWORD
Recupera el algoritmo asociado a ese contexto cuando fue creado.
DHP_HASH_SIZE Tipo de pbData: DWORD
Recupera la longitud del valor hash.
DHP_HASH_VALUE Tipo de pbData: BYTE *
pbData será un puntero a un búfer que contiene el valor hash asociado al contexto.
Una vez devuelto este atributo, el valor hash ya no podrá ser modificado y las futuras llamadas a DHashData o DHashSessionKey fallarán devolviendo el código de error D_INVALID_HASH_STATE.
[in]pbDataPuntero a los datos o estructuras especificados en dwParam. Este parámetro puede ser NULL para especificar la cantidad de memoria necesaria.
[in,out]pdwDataLenPuntero al tamaño del búfer, en bytes, especificado en pbData. Cuando la función retorne, este parámetro contendrá el tamaño de los datos almacenados en pbData.
[in]dwFlagsReservado 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
create_hash.c.

DSignHash()

int AAP_API DSignHash ( HHASHCTX hHash,
HKEYCTX hKey,
DWORD dwFlags,
BYTE * pbSignature,
DWORD * pdwSigLen )

#include <dinamo.h>

Firma un dato a partir de su contexto hash creado con la función DCreateHash().

Parámetros
[in]hHashContexto hash generado por la función DCreateHash().
[in]hKeyContexto de la clave privada que se utilizará en la firma.
[in]dwFlagsDebe pasar 0 o algún modificador definido en la lista de abajo.
Valor Significado
DN_SIGN_NO_HASH_OID Cuando se especifica este indicador, el identificador de objeto (OID) no se coloca delante del valor hash, como se prevé en PKCS#7, atributo DigestInfo.
Por defecto, este valor se añade siempre a la firma. Sólo para firmas RSA.
DN_SIGN_DISABLE_LEGACY_OPERATION Cuando se especifica este indicador, la API de cliente utiliza las versiones más recientes de la implementación de firma del HSM. Se utiliza con HSM de la versión 4.0 o superior.
Por defecto, este indicador está desactivado por motivos de compatibilidad. Los algoritmos de firma más recientes utilizarán automáticamente la implementación más reciente y es posible que los HSM más antiguos no los admitan.
DN_SIGN_ECC_P11_FMT Utiliza el formato de firma ECC PKCS#11 v2.40 sección 2.3.1.
[out]pbSignatureBuffer que recibirá la firma. Este parámetro puede ser NULL para especificar la cantidad de memoria necesaria.
[in,out]pdwSigLenPuntero al tamaño de la firma, en bytes. Cuando la función regresa, este parámetro contendrá el tamaño de los datos almacenados en pbSignature.
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Notas
El formato de firma estándar generado por el DSignHash() cumple con las especificaciones de PKCS#1 v.1.5, utilizando padding tipo 1 cuando se utiliza una clave RSA, con el uso de claves ECDSA la firma será en el estándar DER ANSI X9.62/.RFC 3278 sección-8.2.
Norma DER ECDSA:
ECDSA-Sig-Value ::= SEQUENCE {
r INTEGER,
s INTEGER
}

Las firmas generadas con claves EdDSA se realizan utilizando el algoritmo de firma PureEdDSA descrito en el RFC 8032. Por lo tanto, debe utilizarse el algoritmo ALG_IDENTITY_FUNC en las API de hash para utilizar la función de identidad. El tamaño máximo de datos aceptado para la firma es DN_SIG_EDDSA_MAX_DATA_LEN bytes.

Ejemplos
sign_verify.c y sign_verify_eddsa.c.

DDestroyHash()

int AAP_API DDestroyHash ( HHASHCTX * phHash)

#include <dinamo.h>

Libera el contexto de un hash después de que haya sido utilizado. Una vez liberado este contexto, ya no puede ser utilizado por ninguna función y deja de ser válido.

Parámetros
[in]phHashContexto hash generado por la función DCreateHash().
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Ejemplos
create_hash.c, sign_verify.c y sign_verify_eddsa.c.

DVerificarFirma()

int AAP_API DVerifySignature ( HHASHCTX hHash,
BYTE * pbSignature,
DWORD dwSigLen,
HKEYCTX hPubKey,
DWORD dwFlags )

#include <dinamo.h>

Comprueba la firma del hash asociado a un contexto.

Parámetros
[in]hHashContexto hash generado por la función DCreateHash().
[in]pbSignatureBuffer que contiene la firma a verificar.
[in]dwSigLenNúmero de bytes de la firma.
[in]hPubKeyContexto de la clave pública utilizada para verificar la firma.
[in]dwFlagsModificadores del comportamiento de las funciones.
Valor Significado
DN_VERIFY_NO_HASH_OID Cuando se especifica este indicador, no se comprueba el identificador de objeto (OID), como se establece en PKCS#7, atributo DigestInfo.
Por defecto, este valor se comprueba siempre. Sólo en operaciones RSA.
DN_VERIFY_ECC_P11_FMT Utiliza el formato de firma ECC PKCS#11 v2.40 sección 2.3.1.
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Notas
Puede consultar más detalles sobre los formatos de firma aceptados por esta API en los comentarios de la API DSignHash().
Ejemplos
sign_verify.c y sign_verify_eddsa.c.

DDuplicarHash()

int AAP_API DDuplicateHash ( HHASHCTX hHash,
DWORD dwFlag,
HHASHCTX * phHash )

#include <dinamo.h>

Duplica el contexto de un hash, incluyendo su estado interno.

Parámetros
[in]hHashContexto hash generado por la función DCreateHash().
[in]dwFlagReservado para uso futuro (debe ser 0).
[in]phHashPuntero al contexto del hash generado. Tras su uso, debe liberarse con la función DDestroyHash().
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Notas
Los contextos hash son independientes, por lo que cuando liberas el contexto original, el nuevo contexto sigue siendo válido.

DGetRandom()

int AAP_API DGetRandom ( HSESSIONCTX hSession,
BYTE * pbData,
DWORD dwDataLen )

#include <dinamo.h>

Recupera un cierto número de bytes pseudoaleatorios para uso criptográfico.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[out]pbDataBuffer que se llenará con bytes pseudoaleatorios.
[in]dwDataLenTamaño en bytes de pbData.
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.

DGenEcdhKey()

int AAP_API DGenEcdhKey ( HSESSIONCTX hSession,
DWORD dwOP,
char * szPriKey,
void * pvInData,
DWORD dwInDataLen,
BYTE * pbOutData,
DWORD * pdwOutDataLen,
DWORD dwFlags )

#include <dinamo.h>

Genera unaclave/secreto compartido utilizando el protocolo deacuerdo de claves ECDH (Elliptc Curve Diffie-Hellman).

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]dwOPModificadores del comportamiento de las funciones.
Valor Significado
DN_GEN_KEY_KDF_RAW_SECRET Volver en pbOutData la clave secreta ECDH sin derivación.

Recomendamos derivar una clave de esto para comunicarse con el par. El parámetro pasado en pvInData debe ser un puntero a un búfer que contenga la clave pública del par en formato DER.
DN_GEN_KEY_X9_63_SHA256 Deriva una clave secreta ECDH en el estándar ANSI X9.63 utilizando SHA256. Debe pasarse pvInData la estructura GEN_ECDH_X9_63. Consulte la documentación de GEN_ECDH_X9_63 para conocer los detalles de la entrega. Opcionalmente devoluciones en pbOutData la clave secreta generada, véase GEN_ECDH_X9_63 para más detalles.
[in]szPriKeyIdentificador de la clave privada dentro del HSM. Este identificador no debe contener espacios ni caracteres especiales. Los caracteres en mayúsculas y minúsculas se diferencian ( se distingue entre mayúsculas y minúsculas).
[in]pvInDataPuntero a los datos de entrada de la función. Debe rellenarse como se describe en las opciones de dwOP
[in]dwInDataLenTamaño en bytes de pvInData.
[out]pbOutDataBuffer que recibirá la clave/secreto de salida. Este parámetro puede ser NULL para devolver la cantidad de memoria necesaria en pdwOutDataLen. Este parámetro se ignorará cuando la operación consista en escribir la clave en el HSM.
[in,out]pdwOutDataLenPuntero al tamaño del búfer pbOutDataen bytes, que contendrá la clave/secreto de salida. Cuando la función retorne, este parámetro contendrá el tamaño de los datos realmente almacenados en pbOutData. Este parámetro se ignorará cuando la operación consista en escribir la clave en el HSM.
[in]dwFlagsReservado 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
gen_ecdh.c y gen_xecdh.c.

DCRLCertCheck()

int AAP_API DCRLCertCheck ( HSESSIONCTX hSession,
char * szCRL,
char * szCertId,
char * szVerifyInfo )

#include <dinamo.h>

Valida un certificado X.509 en el HSM mediante una LCR (lista de certificados revocados) y una cadena de certificados.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]szCRLNombre de la LCR (Lista de Certificados Revocados).
[in]szCertIdNombre del certificado a validar.
[in]szVerifyInfoNombre de la cadena/certificado para validar el certificado especificado en szCertId. Se puede pasar NULL para evitar comprobar la cadena de certificados.

0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.

DMofNSplit()

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>

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]bMNúmero mínimo de piezas necesarias para reconstruir el secreto. DN_M_OF_N_S_MIN mínimo y DN_M_OF_N_S_MAX máximo.
[in]bNNúmero total de piezas generadas. DN_M_OF_N_S_MIN mínimo y DN_M_OF_N_S_MAX máximo.
[in]pbSecretUn secreto que se compartirá en varias partes. Debe ser DN_M_DE_N_S_LEN. Se puede pasar NULL para que el HSM genere aleatoriamente un secreto, en cuyo caso el valor se devolverá en pstSplitInfo.
[in]dwSecretLenTamaño de los datos introducidos pbSecret. Caso pbSecret es NULL pase 0 en este parámetro.
[out]pstSplitInfoDatos de salida.
[in]dwReservedReservado para uso futuro (debe ser 0).

0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.

Notas
La sesión utilizada en esta operación puede ser autenticada o anónima.
Ejemplos
m_de_n.c.

DMofNRecuperar()

int AAP_API DMofNRecover ( HSESSIONCTX hSession,
DN_M_OF_N_PART * pstParts,
DWORD dwPartsCount,
BYTE * pbSecret,
DWORD dwReserved )

#include <dinamo.h>

Reconstruye el secreto M de N a partir de las partes de los custodios. Según el patrón de compartición de secretos de Shamir.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]pstPartsConjunto de piezas de custodia.
[in]dwPartsCountNúmero de piezas introducidas pstPartes.
[in]pbSecretSecreto reconstruido. Debe tener un tamaño DN_M_OF_N_S_LEN.
[in]dwReservedReservado para uso futuro (debe ser 0).

0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.

Notas
La sesión utilizada en esta operación puede ser autenticada o anónima.
Ejemplos
m_de_n.c.