API C/C++
HSM Dinamo
Cargando...
Buscando...
No se han encontrado entradas
OATH

Descripción detallada

OATHAutenticación estándar .

Consulte la documentación técnica del HSM.

Funciones

int AAP_API DOATHIssueBlob(HSESSIONCTX hSession, char *szMasterKeyId, DWORD dwParamBlobType, void *pvParamBlob, DWORD dwParamBlobLen, BYTE *pbOTPBlob, DWORD *pdwOTPBlobLen, DWORD dwFlags)
 
int AAP_API DOATHCheckOTP(HSESSIONCTX hSession, char *szMasterKeyId, char *szOTP, BYTE *pbOATHBlob, DWORD *pdwOATHBlobLen, DWORD dwFlags)
 
int AAP_API DOATHGetNextOTP(HSESSIONCTX hSession, char *szMasterKeyId, BYTE bOTPLen, BYTE *pbOATHBlob, DWORD dwOATHBlobLen, char *szOTP, DWORD dwFlags)
 
int AAP_API DOATHGetBlobInfo (const HSESSIONCTX hSession, char *szMasterKey, BYTE *pbInBlob, DWORD dwInBlobLen, DWORD dwOutBlobType, BYTE *pbOutInfo, DWORD *pdwOutInfoLen, DWORD dwParam)
 
int AAP_API DOATHBlobResync(HSESSIONCTX hSession, char *szMasterKeyId, char *szOTP1, char *szOTP2, BYTE *pbOATHBlob, DWORD *pdwOATHBlobLen, DWORD dwFlags)
 
int AAP_API DOATHPskcTranslate(HSESSIONCTX hSession, char *szMasterKey, BYTE *pbPSK, BYTE bPSKLen, BYTE *pbPSKC, DWORD dwPSKCLen, void **pvBlobList, DWORD *pdwBlobListQuantity, DWORD dwParam)
 

Funciones

DOATHIssueBlob()

int AAP_API DOATHIssueBlob ( HSESSIONCTX hSession,
char * szMasterKeyId,
DWORD dwParamBlobType,
void * pvParamBlob,
DWORD dwParamBlobLen,
BYTE * pbOTPBlob,
DWORD * pdwOTPBlobLen,
DWORD dwFlags )

#include <dinamo.h>

OATH Genera o importa un blob para su uso en HSM.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]szMasterKeyIdNombre de la clave maestra, utilizada para proteger los blobs, de tamaño máximo MAX_OBJ_ID_FQN_LEN.
[in]dwParamBlobTypeSe acepta la siguiente tabla.
valor Significado
ISSUE_OATH_GENERATE_HOTP Tipo de pvParamBlob: estructura ISSUE_OTP_BLOB.
Genera una mancha HOTP en el HSM. La semilla se genera dentro del HSM.
Deben rellenarse los siguientes parámetros de estructura: bSeedLen e bTruncationOffset. El resto debe ser cero.
ISSUE_OATH_GENERATE_TOTP Tipo de pvParamBlob: estructura ISSUE_OTP_BLOB.
Genera la mancha TOTP en el HSM. La semilla se genera dentro del HSM.
Deben rellenarse los siguientes parámetros de estructura: bSeedLen, bTruncationOffset, wTimeStep e otT0. El resto debe ser cero.
ISSUE_OATH_IMPORT_HOTP Tipo de pvParamBlob: estructura ISSUE_OTP_BLOB.
Importa un blob HOTP. La semilla se pasa por parámetro. Deben rellenarse los siguientes parámetros de estructura: bSeedLen, pbSeed e bTruncationOffset. El resto debe ser cero.
ISSUE_OATH_IMPORT_TOTP Tipo de pvParamBlob: estructura ISSUE_OTP_BLOB.
Importa un blob TOTP. La semilla se pasa por parámetro.
Deben rellenarse los siguientes parámetros de estructura: bUseDefaultMovingFactor, bSeedLen, pbSeed, bTruncationOffset, wTimeStep e otT0. El resto debe ser cero.
[in]pvParamBlobPuntero a los datos o estructuras especificados en dwParamBlobType.
[in]dwParamBlobLenTamaño de los datos o de la estructura especificada en dwParamBlobType.
[out]pbOTPBlobBuffer de tamaño mínimo de ISSUE_OATH_OUTPUT_MAX_BLOB_LEN que contendrá el blob generado.
[in,out]pdwOTPBlobLenTamaño del búfer indicado por pbOTPBlob. La entrada debe contener el tamaño del búfer pbOTPBlob en la salida contendrá el tamaño del blob escrito en el búfer asignado.
[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_check_oath.c.

DOATHCheckOTP()

int AAP_API DOATHCheckOTP ( HSESSIONCTX hSession,
char * szMasterKeyId,
char * szOTP,
BYTE * pbOATHBlob,
DWORD * pdwOATHBlobLen,
DWORD dwFlags )

#include <dinamo.h>

OATHComprueba un valor OTP para un blob dado .

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]szMasterKeyIdNombre de la clave maestra, utilizada para proteger los blobs, de tamaño máximo MAX_OBJ_ID_FQN_LEN.
[in]szOTPOTP para comprobar el tamaño mínimo ISSUE_OATH_MIN_OTP_LEN y el máximo ISSUE_OATH_MAX_OTP_LEN.
[in,out]pbOATHBlobPuntero a un buffer que contiene el blob que tendrá el OTP comprobado. Este búfer se reescribirá con el búfer actualizado.
[in,out]pdwOATHBlobLenTamaño del búfer pbOATHBlob. La entrada contendrá el tamaño de pbOATHBlob y mostrar el tamaño de los datos escritos en pbOATHBlob.
[in]dwFlagsA partir de la versión de firmware 4.0.2, el tamaño de la ventana de espera de autenticación se puede establecer en este parámetro. El valor por defecto es de 10 intervalos más o menos. En el caso de tokens HOTP, los intervalos se contarán por número de eventos; en el caso de tokens TOTP, se contarán por número de pasos de tiempo.
Valor Significado
0 Utiliza el valor por defecto de 10 intervalos.
1 a MAX_OTP_LOOK_AHEAD_INTERVAL Establece el valor de la ventana de espera de autenticación.

También puede pasar el OATH_UPDATE_BLOBOATH para permitir la actualización del formato del blob. Cuando el OATH_UPDATE_BLOB OATH debe pasar el blob actual en pbOATHBlob en un búfer lo suficientemente grande como para contener el blob actualizado. pdwOATHBlobLen debe contener el valor del tamaño del búfer pasado en pbOATHBlob. El tamaño de pbOATHBlob necesario, se devuelve en pdwOATHBlobLen en la llamada en la que se produjo el error D_OATH_BLOB_UPDATE se devuelve. La actualización sólo tiene que hacerse después de recibir el error D_OATH_BLOB_UPDATE. Consulte las Notas para obtener más información.

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 devuelve el error D_OATH_BLOB_UPDATE la función devolverá en pdwOATHBlobLen OATH el tamaño del búfer que debe utilizarse para actualizar el blob en una llamada posterior. Véanse los detalles en la sección OATH_UPDATE_BLOB.
Ejemplos
gen_check_oath.c.

DOATHGetNextOTP()

int AAP_API DOATHGetNextOTP ( HSESSIONCTX hSession,
char * szMasterKeyId,
BYTE bOTPLen,
BYTE * pbOATHBlob,
DWORD dwOATHBlobLen,
char * szOTP,
DWORD dwFlags )

#include <dinamo.h>

OATHGenera el siguiente OTP a partir de un blob . OATH El blob no se modificará.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]szMasterKeyIdNombre de la clave maestra, utilizada para proteger los blobs, de tamaño máximo MAX_OBJ_ID_FQN_LEN.
[in]bOTPLenTamaño de la OTP a generar, que puede ser un valor comprendido entre ISSUE_OATH_MIN_OTP_LEN e ISSUE_OATH_MAX_OTP_LEN.
[in]pbOATHBlobPuntero a un búfer que contiene el blob que se utilizará para generar el OTP. Este búfer no se modificará.
[in]dwOATHBlobLenTamaño del búfer pbOATHBlob.
[out]szOTPBuffer que contendrá el OTP generado. Debe tener un tamaño mínimo de bOTPLen + 1 (terminador nulo).
[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_check_oath.c.

DOATHGetBlobInfo()

int AAP_API DOATHGetBlobInfo ( const HSESSIONCTX hSession,
char * szMasterKey,
BYTE * pbInBlob,
DWORD dwInBlobLen,
DWORD dwOutBlobType,
BYTE * pbOutInfo,
DWORD * pdwOutInfoLen,
DWORD dwParam )

#include <dinamo.h>

OATHRecupera la información interna de una mancha .

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]szMasterKeyNombre de la clave maestra, utilizada para proteger los blobs, de tamaño máximo MAX_OBJ_ID_FQN_LEN.
[in]pbInBlobPuntero a un búfer que contiene el blob para extraer la información.
[in]dwInBlobLenTamaño del búfer pbInBlob.
[in]dwOutBlobTypeIndica el tipo de datos de salida. Se acepta la siguiente tabla.
Valor Significado
OATH_ISSUE_OATH_BLOB_t Tipo de pbOutInfo: ISSUE_OATH_BLOB_t. El búfer pbInBlob debe ser un blob de tipo V1 con tamaño ISSUE_OATH_OUTPUT_BLOB_V1_LEN.
OATH_ISSUE_OATH_INFO_t Tipo de pbOutInfo: ISSUE_OATH_INFO_t. Esta opción acepta blobs de tipo V1 y V2 con tamaños ISSUE_OATH_OUTPUT_BLOB_V1_LEN e ISSUE_OATH_OUTPUT_BLOB_V2_LEN, respectivamente.
[out]pbOutInfoPuntero a un búfer que recibirá la información del blob. Debe ser como se describe en dwOutBlobType.
[in,out]pdwOutInfoLenTamaño del búfer indicado por pdwOutInfoLen.
[in]dwParamReservado 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.

DOATHBlobResync()

int AAP_API DOATHBlobResync ( HSESSIONCTX hSession,
char * szMasterKeyId,
char * szOTP1,
char * szOTP2,
BYTE * pbOATHBlob,
DWORD * pdwOATHBlobLen,
DWORD dwFlags )

#include <dinamo.h>

OATH Resincroniza una nota mostrando dos valores continuos de OTP. Sólo para HOTP (OTP por evento).

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]szMasterKeyIdNombre de la clave maestra, utilizada para proteger los blobs, de tamaño máximo MAX_OBJ_ID_FQN_LEN.
[in]szOTP1OTP para comprobar el tamaño mínimo ISSUE_OATH_MIN_OTP_LEN y el máximo ISSUE_OATH_MAX_OTP_LEN.
[in]szOTP2Segunda OTP a comprobar para tamaño mínimo ISSUE_OATH_MIN_OTP_LEN y máximo ISSUE_OATH_MAX_OTP_LEN.
[in,out]pbOATHBlobPuntero a un búfer que contiene la nota que se va a sincronizar. Este búfer se reescribirá con el búfer sincronizado.
[in,out]pdwOATHBlobLenTamaño del búfer pbOATHBlob. La entrada contendrá el tamaño de pbOATHBlob y mostrar el tamaño de los datos escritos en pbOATHBlob.
[in]dwFlagsAceptar la bandera OATH_UPDATE_BLOBOATH para permitir la actualización del formato del blob. Cuando el OATH_UPDATE_BLOB OATH debe pasar el blob actual en pbOATHBlob en un búfer lo suficientemente grande como para contener el blob actualizado. pdwOATHBlobLen debe contener el valor del tamaño del búfer pasado en pbOATHBlob. El tamaño de pbOATHBlob necesario, se devuelve en pdwOATHBlobLen en la llamada en la que se produjo el error D_OATH_BLOB_UPDATE se devuelve. La actualización sólo tiene que hacerse después de recibir el error D_OATH_BLOB_UPDATE. Consulte las Notas para obtener más información.
Devolución
0 (CERO) si la función tiene éxito.
Consulte la sección Códigos de retorno para conocer otros valores.
Notas
A partir de la versión de firmware 4.0.2, la ventana se ampliará hasta 200 intervalos. En el caso de las fichas HOTP, los intervalos se contarán por número de eventos; en el caso de las fichas TOTP, se contarán por número de pasos de tiempo. Si se devuelve un error D_OATH_BLOB_UPDATE la función devolverá en pdwOATHBlobLen OATH el tamaño del búfer que debe utilizarse para actualizar el blob en una llamada posterior. Véanse los detalles en la sección OATH_UPDATE_BLOB.

DOATHPskcTraducir()

int AAP_API DOATHPskcTranslate ( HSESSIONCTX hSession,
char * szMasterKey,
BYTE * pbPSK,
BYTE bPSKLen,
BYTE * pbPSKC,
DWORD dwPSKCLen,
void ** pvBlobList,
DWORD * pdwBlobListQuantity,
DWORD dwParam )

#include <dinamo.h>

Importa semillas envueltas en el estándar PSKC(Portable Symmetric Key Container), RFC 6030.

Parámetros
[in]hSessionContexto adquirido a través de la función DOpenSession().
[in]szMasterKeyNombre de la clave maestra, utilizada para proteger los blobs, de tamaño máximo de salida MAX_OBJ_ID_FQN_LEN.
[in]pbPSKTamaño máximo del búfer OATH_MAX_PSK_LEN que contiene la clave de transporte que protege las semillas notificadas en pbPSKC.
[in]bPSKLenTamaño del búfer pbPSK.
[in]pbPSKCBúfer PSKC que contiene las semillas que se transformarán en blobs en formato HSM.
[in]dwPSKCLenTamaño del búfer pbPSKC.
[out]pvBlobListPonteiro para ponteiro que apontará para um buffer alocado internamente contendo um array de estruturas OATH_PSKC_TRANSLATE_OUTPUT. Esta estrutura conterá internamente os blobs das sementes traduzidas para o formato do HSM e o identificador de cada semente como na tag "<pskc:Key Id=>".
[out]pdwBlobListQuantityPuntero al número de blobs devueltos en el búfer pvBlobList.
[in]dwParamReservado 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.