Gerencia do HSM. Mais...

Definições e Macros

#define DN_ATOKEN_CACHE_GET_COUNT   (0)
 
#define DN_ATOKEN_CACHE_GC   (1)
 
#define DN_LB_LIST   (1)
 
#define DN_LB_LIST   (1)
 

Definições de Tipos

typedef int(AAP_APIfuncListKeyCallback) (char *szKeyName, void *pParam, BOOL bFinal)
 
typedef int(AAP_APIfuncLogEventCallback) (char *szEvent, void *pParam, BOOL bFinal)
 
typedef int(AAP_APIfuncReadLocalFileCallback) (BYTE *pbData, DWORD *pdwDataLen, void *pParam, BOOL *pbFinal)
 
typedef int(AAP_APIfuncWriteLocalFileCallback) (BYTE *pbData, DWORD dwDataLen, void *pParam, BOOL bFinal)
 
typedef int(AAP_APIfuncListAKeysCallback) (void *pvToken, void *pParam, BOOL bFinal)
 

Funções

int AAP_API DListObjs (HSESSIONCTX hSession, funcListKeyCallback fncallback, void *pParam )
 
int AAP_API DBackupData (HSESSIONCTX hSession, char *szBackupFile, char *szPin, int nDirection)
 
int AAP_API DBackupObject (HSESSIONCTX hSession, DWORD dwOP, char *szObjectId, char *szPin, BYTE *pbData, DWORD *pdwDataLen, DWORD dwReserved)
 
int AAP_API DGetLogEvents (HSESSIONCTX hSession, funcLogEventCallback fncallback, void *pParam)
 
int AAP_API DAdmOperation (HSESSIONCTX hSession, DWORD dwParam, BYTE *pbData, DWORD dwDataLen, DWORD dwFlags)
 
int AAP_API DGetHSMTLSCert (char *szAddress, int nPort, DWORD dwOutFormat, BYTE **ppbOutCert, DWORD *pdwOutCertLen, DWORD dwFlags)
 
int AAP_API DWriteFile (HSESSIONCTX hSession, char *szFileId, DWORD dwFileSize, funcReadLocalFileCallback fncallback, void *pParam)
 
int AAP_API DReadFile (HSESSIONCTX hSession, char *szFileId, funcWriteLocalFileCallback fncallback, void *pParam)
 
int AAP_API DRemoveObj (HSESSIONCTX hSession, char *szObjId)
 
int AAP_API DGetStatLog (HSESSIONCTX hSession, DWORD dwStart, DWORD dwOffset, DWORD *pdwLogSize, BYTE **ppbLog)
 
int AAP_API DTruncateLog (HSESSIONCTX hSession)
 
int AAP_API DFindHSM (DWORD dwServiceType, DWORD dwFilter, void **ppvOutputData, DWORD *pdwOutputDataLen, DWORD dwFlags)
 
int AAP_API DManageAToken (HSESSIONCTX hSession, BYTE bOP, DN_A_TOKEN_FULL *pstATokenFull, funcListAKeysCallback fnCallBack, void *pvCallbackParam, DWORD dwParam)
 
int AAP_API DManageATokenCache (HSESSIONCTX hSession, DWORD dwOP, void *pOutData, DWORD dwParam)
 

Descrição Detalhada

Gerencia do HSM.

Definições e macros

#define DN_ATOKEN_CACHE_GET_COUNT   (0)

#include <dinamo.h>

#define DN_ATOKEN_CACHE_GC   (1)

#include <dinamo.h>

#define DN_LB_LIST   (1)

#include <dinamo.h>

#define DN_LB_LIST   (1)

#include <dinamo.h>

Definições dos tipos

typedef int(AAP_API * funcListKeyCallback) (char *szKeyName, void *pParam, BOOL bFinal)

#include <dinamo.h>

Ponteiro para função de callback para listagem de objetos.

Parâmetros
[in]szKeyNameNome do objeto.
[in]pParamPonteiro para um parâmetro passado para a função DListObjs().
[in]bFinalFlag que indica o último registro.
Retorna
0
typedef int(AAP_API * funcLogEventCallback) (char *szEvent, void *pParam, BOOL bFinal)

#include <dinamo.h>

Ponteiro para função de callback para gravar os eventos gerados pelo servidor.

Parâmetros
[in]szEventEvento do log.
[in]pParamPonteiro para um parâmetro passado na função DgetLogEvents.
[in]bFinalIndica o fim do envio de eventos.
Retorna
0
typedef int(AAP_API * funcReadLocalFileCallback) (BYTE *pbData, DWORD *pdwDataLen, void *pParam, BOOL *pbFinal)

#include <dinamo.h>

Ponteiro para função de callback para ler o arquivo a ser carregado para o HSM.

Parâmetros
[in]pbDataBuffer contendo os dados lidos.
[in]pdwDataLenPonteiro para um DWORD contendo o número de bytes lidos do arquivo
[in]pParamPonteiro para um parâmetro passado para a função DWriteFile().
[in]pbFinalFlag que indica o fim do arquivo.
Retorna
0
typedef int(AAP_API * funcWriteLocalFileCallback) (BYTE *pbData, DWORD dwDataLen, void *pParam, BOOL bFinal)

#include <dinamo.h>

Ponteiro para função de callback para gravar localmente o arquivo recuperado do HSM.

Parâmetros
[in]pbDataBuffer com os dados que serão gravados no arquivo.
[in]dwDataLenNúmero de bytes que serão gravados.
[in]pParamPonteiro para um parâmetro passado para a função DWriteFile().
[in]bFinalFlag que indica o fim do arquivo.
Retorna
0
typedef int(AAP_API * funcListAKeysCallback) (void *pvToken, void *pParam, BOOL bFinal)

#include <dinamo.h>

Ponteiro para função de callback para listagem de tokens de sessão em DManageAToken.

Parâmetros
[in]pvTokenPonteiro que receberá uma estrutura DN_A_TOKEN_FULL que conterá os dados do token de sessão.
[in]pParamPonteiro para um parâmetro passado para a função DManageAToken().
[in]bFinalFlag que indica o último registro.
Retorna
0

Funções

int AAP_API DListObjs ( HSESSIONCTX  hSession,
funcListKeyCallback  fncallback,
void *  pParam 
)

#include <dinamo.h>

Lista os objetos armazenadas no Dinamo, entre chaves e arquivos.

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]fncallbackPonteiro para uma função de callback usada para listar os nomes (identificadores) dos objetos.
[in]pParamPonteiro para um parâmetro qualquer que será repassado à função de callback
Retorna
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
Anotações
As funções da API Dinamo não devem ser chamadas de dentro da função de callback (parâmetro ListObjsCallback) usando o mesmo contexto (parâmetro hSession) passado para a função DListObjs(). Quando houver necessidade dever se usar um contexto diferente.
Exemplos:
listkeys.c.
int AAP_API DBackupData ( HSESSIONCTX  hSession,
char *  szBackupFile,
char *  szPin,
int  nDirection 
)

#include <dinamo.h>

Cria ou restaura o backup dos objetos (chaves, certificados, etc.) gravados internamente no Dinamo.

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]szBackupFileCaminho do arquivo de backup.
[in]szPinSenha de proteção do arquivo de backup. Devem ser caracteres ASCII. O tamanho deve estar entre MIN_BACKUP_PIN_LEN e MAX_BACKUP_PIN_LEN.
[in]nDirection[in] Especifica a ação a ser executada.
Valor Significado
MAKE_BACKUP O arquivo de backup será criado, caso exista, será sobrescrito.
MAKE_RESTORE_WITHOUT_NET_CONFIG Os dados de backup existentes, não incluindo parâmetros de rede, no arquivo indicado por szBackupFile serão restaurados.
MAKE_RESTORE_WITH_NET_CONFIG Os dados de backup existentes, incluindo parâmetros de rede, no arquivo indicado por szBackupFile serão restaurados.
Retorna
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
Anotações
Essa função cria ou recupera uma cópia de segurança (backup) dos objetos armazenados no sistema para ou de um arquivo cifrado. A chave de criptografia e decriptografia é derivada da senha informada pelo usuário. Esta operação de criptografia/decriptografia é independente do modo de armazenamento do objeto no Dinamo (cifrado ou não-cifrado). A cópia de segurança é sempre cifrada. A senha utilizada na geração da cópia de segurança deverá ser usada na restauração. É possível indicar que os parâmetros de rede (endereço IP, máscara, e gateway) sejam ou não restaurados. Para restaurar arquivos grandes, acima de 2147483647 bytes é necessário que o servidor HSM esteja com a versão mínima 3.9.0.2 ou acima.
Observação
Objetos marcados como não exportáveis no Dinamo também serão incluídos na cópia de segurança. Esta operação não é seletiva, ou seja, todos os objetos existentes na área de armazenamento do Dinamo serão copiados.
int AAP_API DBackupObject ( HSESSIONCTX  hSession,
DWORD  dwOP,
char *  szObjectId,
char *  szPin,
BYTE pbData,
DWORD pdwDataLen,
DWORD  dwReserved 
)

#include <dinamo.h>

Cria ou restaura o backup de um objeto específico no HSM.

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]dwOPEspecifica a ação a ser executada.
Valor Significado
D_BACKUP_OBJ Faz o backup do objeto especificado em szObjectId e escreve o conteúdo em pbData. pdwDataLen deverá conter o tamanho do buffer apontado por pbData e ao final da chamada receberá o total de bytes copiados para pbData. Caso pbData seja NULL, pdwDataLen receberá o tamanho do buffer pbData necessário para acomodar o backup. Pode-se utilizar um buffer maior ou igual a D_MAX_BACKUP_OBJ_LEN para evitar uma chamada extra a esta função, apenas para recuperar o tamanho do buffer de backup necessário.
D_RESTORE_OBJ Restaura o backup do objeto. szObjectId deverá conter o nome que o objeto restaurado terá dentro do HSM. pbData deverá conter o buffer do backup que será restaurado e pdwDataLen o tamanho de pbData.
[in]szObjectIdNome do objeto dentro do HSM.
[in]szPinSenha de proteção do arquivo de backup. Devem ser caracteres ASCII. O tamanho deve estar entre MIN_BACKUP_PIN_LEN e MAX_BACKUP_PIN_LEN.
[in,out]pbDataBuffer contento o backup do objeto. Ver opções em dwOP para mais detalhes.
[in,out]pdwDataLenTamanho do backup. Ver opções em dwOP para mais detalhes.
[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
Essa função cria ou recupera uma cópia de segurança (backup) de um objeto específico (uma chave por exemplo) para ou de um arquivo cifrado. A cópia de segurança é sempre cifrada com duas camadas: primeiro com a chave Server Master Key (SVMK) do HSM e segundo com a chave de criptografia derivada da senha informada pelo usuário. A senha utilizada na geração da cópia de segurança deverá ser usada na restauração.

Como o objeto saí cifrado pela SVMK, só poderá ser restaurado em HSMs Dinamo inicializados com esta mesma SVMK. Do ponto de vista de segurança o objeto contido no backup continua protegida pela fronteira criptográfica do HSM.

Linhas diferentes de modelos de HSM Dinamo podem ter métodos diferentes de derivação de SVMK a partir da semente. Os backups gerados em modelos XP e ST são interoperáveis entre si, mas não com backups de modelo Pocket.

Observação
O backup pode ser realizado com objetos exportáveis ou não-exportáveis e este estado é preservado na operação de restore. Apenas o objeto especificado em szObjectId será incluído no backup.
int AAP_API DGetLogEvents ( HSESSIONCTX  hSession,
funcLogEventCallback  fncallback,
void *  pParam 
)

#include <dinamo.h>

Recupera os eventos de log gerados pelo servidor.

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]fncallbackPonteiro para uma função de callback usada para gravar os eventos gerados pelo servidor.
[in]pParamPonteiro para um parâmetro qualquer que será repassado à função de callback.
Retorna
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
Anotações
Esta opção permite que um programa receba mensagens de log geradas internamente no Dinamo; o programa passa a receber uma cópia de todas as mensagens de log. Há um limite de 03 (três) receptores simultaneamente em modo de recebimento de notificações de eventos, para evitar degradação de desempenho do HSM. As mensagens enviadas continuam sendo gravadas no arquivo interno do servidor. O primeiro valor hexadecimal mostrado na linha de log é um timestamp e o segundo é um ID usado internamente.
Exemplos:
getrtlogs.c.
int AAP_API DAdmOperation ( HSESSIONCTX  hSession,
DWORD  dwParam,
BYTE pbData,
DWORD  dwDataLen,
DWORD  dwFlags 
)

#include <dinamo.h>

Executa operações administrativas no servidor.

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]dwParamEspecifica a operação que será executada e por conseqüência a estrutura ou dados passados no parâmetro pbData.
Valor Signficado
AO_SHUTDOWN Tipo de pbData: NULL
Desliga o HSM. Neste momento será preciso uma intervenção manual para que o servidor fique disponível novamente, ou seja, será preciso ligar o equipamento e inserir o cartão de operação.
Ainda não suportado
AO_RESTART Tipo de pbData: NULL
Reinicia o HSM. Neste momento será preciso uma intervenção manual para que o servidor fique disponível novamente, ou seja, inserir o cartão de operação.
Ainda não suportado.
AO_KEEPALIVE Tipo de pbData: NULL
Executa uma simples troca de mensagens entre o cliente e o servidor a fim de manter a conexão estabelecida.
AO_SET_DATE_TIME Tipo de pbData: struct tm (time.h)
Define data e hora do HSM. Deve ser passado o horário GMT (Greenwich Mean Time) padrão (sem fuso horário).
AO_SET_PWD_SEC_POLICY Tipo de pbData: PWD_SEC_POLICY
Define os parâmetros da política de segurança do HSM.
AO_GET_PWD_SEC_POLICY Tipo de pbData: PWD_SEC_POLICY
Recupera os parâmetros da política de segurança do HSM.
AO_SET_TLS_BUNDLE Tipo de pbData: TLS_BUNDLE_INFO
Define a chave e certificado que serão utilizados pelo TLS do HSM.
[in]pbDataPonteiro para os dados ou estruturas especificados em dwParam.
[in]dwDataLenTamanho dos dados ou estrutura especificados em dwParam.
[in]dwFlagsDeve ser 0 ou algum dos valores abaixo.
Valor Signficado
AO_KEEPALIVE_FLAG_NOISELESS Tipo de dwParam: AO_KEEPALIVE
Faz com que a operação de keep alive não gere logs no HSM.
Retorna
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
Anotações
A opção AO_KEEPALIVE executa um teste para indicação de ‘vida’ (heartbeat) do serviço do Dinamo. O resultado positivo a este teste mostra que o HSM está processando corretamente as requisições de clientes e seu estado interno é consistente e íntegro. Pode ser usado por exemplo pelas equipes de monitoração e suporte para indicação de status OK do Dinamo.
Exemplos:
connecthsm.c.
int AAP_API DGetHSMTLSCert ( char *  szAddress,
int  nPort,
DWORD  dwOutFormat,
BYTE **  ppbOutCert,
DWORD pdwOutCertLen,
DWORD  dwFlags 
)

#include <dinamo.h>

Recupera o certificado do HSM utilizado no TLS.

Parâmetros
[in]szAddressEndereço do HSM.
[in]nPortPorta de acesso ao HSM. A porta padrão é DEFAULT_PORT.
[in]dwOutFormatFormato de saída do certificado.
Valor Signficado
CERT_OUT_DER Exporta o certificado do servidor no formato X.509 DER.
CERT_OUT_DER Exporta o certificado do servidor no formato X.509 PEM.
[in]ppbOutCertPonteiro de ponteiro com o certificado no formato especificado em dwOutFormat. Este ponteiro deve ser liberado com DFree.
[in]pdwOutCertLenTamanho do certificado apontado em ppbOutCert.
[in]dwFlagsReservado 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.
int AAP_API DWriteFile ( HSESSIONCTX  hSession,
char *  szFileId,
DWORD  dwFileSize,
funcReadLocalFileCallback  fncallback,
void *  pParam 
)

#include <dinamo.h>

Importa um arquivo para dentro do HSM.

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]szFileIdIdentificador do novo arquivo dentro do HSM.
[in]dwFileSizeTamanho do arquivo a ser carregado.
[in]fncallbackPonteiro para uma função de callback usada para ler o arquivo a ser carregado.
[in]pParamPonteiro para um parâmetro qualquer que será repassado à função de callback.
Retorna
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
Anotações
O arquivo gravado é opaco para o HSM e não será cifrado internamente e será sempre um objeto exportável.
O tamanho máximo por arquivo aceito pelo HSM é de 512kb.
Os arquivos enviados para o HSM, descritos na tabela abaixo, terão seus tipos detectados automaticamente.
Tipo Formato
Certificados X.509 DER
CRL(Certificate Revocation List) ou LCR(Lista de Certificados Revogados) DER
Cadeias de certificados PKCS#7 DER
int AAP_API DReadFile ( HSESSIONCTX  hSession,
char *  szFileId,
funcWriteLocalFileCallback  fncallback,
void *  pParam 
)

#include <dinamo.h>

Exporta uma arquivo do HSM.

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]szFileIdIdentificador do arquivo dentro do HSM.
[in]fncallbackPonteiro para uma função de callback usada para gravar o arquivo recuperado.
[in]pParamPonteiro para um parâmetro qualquer que será repassado à função de callback.
Retorna
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
Anotações
Esta API não deve ser usada para exportação de chaves.
int AAP_API DRemoveObj ( HSESSIONCTX  hSession,
char *  szObjId 
)

#include <dinamo.h>

Remove um objeto armazenado no Dinamo, seja ele uma chave ou um arquivo.

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]szObjIdIdentificador do objeto 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).
Retorna
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
Exemplos:
genecdh.c.
int AAP_API DGetStatLog ( HSESSIONCTX  hSession,
DWORD  dwStart,
DWORD  dwOffset,
DWORD pdwLogSize,
BYTE **  ppbLog 
)

#include <dinamo.h>

Recupera o conteúdo do log do servidor.

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]dwStartPosição inicial, em bytes, do log a ser recuperado. Para receber todo o conteúdo do log indique GET_LOG_START_FULL.
[in]dwOffsetQuantidade, em bytes, a ser recuperada a partir da posição inicial indicada por dwStart. Para receber todo o conteúdo do log indique GET_LOG_END_FULL .
[out]pdwLogSizePonteiro para DWORD que irá conter a quantidade, em bytes, do log recuperado.
[out]ppbLogPonteiro para ponteiro que irá conter o log recuperado do servidor. A alocação de memória é feita internamente pela biblioteca. A aplicação chamadora é responsável por liberar a memória alocada. Consulte a função DFree().
Retorna
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
Veja também
DGetStatLogSize(), DTruncateLog()
Exemplos:
downloadlog.c.
int AAP_API DTruncateLog ( HSESSIONCTX  hSession)

#include <dinamo.h>

Permite apagar o conteúdo do log do servidor.

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
Retorna
0 (ZERO) se a função for bem sucedida.
Consulte a seção Códigos de Retorno sobre outros valores.
Veja também
DGetStatLogSize(), DGetStatLog()
int AAP_API DFindHSM ( DWORD  dwServiceType,
DWORD  dwFilter,
void **  ppvOutputData,
DWORD pdwOutputDataLen,
DWORD  dwFlags 
)

#include <dinamo.h>

Busca, utilizando protocolo SLP via multicast, os HSMs disponíveis na rede.

Parâmetros
[in]dwServiceTypeDefine o tipo de serviço do HSM que será procurado.
Valor Signficado
DN_FIND_SRVC_TYPE_IP Lista todos os serviços tipo IP encontrados. Lista todas as interfaces IP disponíveis. O mesmo HSM pode ser listado mais de uma vez com IPs diferentes. O valor de dwFilter deve ser DN_FIND_FILTER_TYPE_ALL.
DN_FIND_SRVC_TYPE_AAP Lista todos os serviços tipo AAP encontrados. Lista todos os HSMs que estejam com o serviço executando.
DN_FIND_SRVC_TYPE_ALL Lista todos os tipos de serviço.
[in]dwFilterDefine o tipo de filtro a ser utilizado na busca.
Valor Signficado
DN_FIND_FILTER_TYPE_POCKET Lista todos os HSMs Pocket encontrados.
DN_FIND_FILTER_TYPE_HSM Lista todos os HSM DINAMO ST ou XP encontrados.
DN_FIND_FILTER_TYPE_ALL Lista todos os HSM DINAMO ST, XP ou Pocket encontrados.
[out]ppvOutputDataPonteiro de ponteiro, do tipo SLP_SRVR_INFO, que irá conter a lista de HSMs encontrados. A alocação de memória é feita internamente pela biblioteca. A aplicação chamadora é responsável por liberar a memória alocada. Consulte a função DFree().
[out]pdwOutputDataLenPonteiro para DWORD que irá conter a quantidade de estruturas (descritas em dwOutputType) retornadas em ppvOutputData.
[in]dwFlagsReservado 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
A busca é feita utilizando protocolo SLP (Service Location Protocol) via multicast. Todos os HSMs que se encontrarem acessíveis e com o serviço executando poderão aparecer nesta lista.
int AAP_API DManageAToken ( HSESSIONCTX  hSession,
BYTE  bOP,
DN_A_TOKEN_FULL pstATokenFull,
funcListAKeysCallback  fnCallBack,
void *  pvCallbackParam,
DWORD  dwParam 
)

#include <dinamo.h>

Gerencia tokens de sessão (Access Tokens) do próprio usuário do HSM.

Ver mais detalhes em Anotações.

Sobre autenticação usando tokens de sessão consulte a função DOpenSession() com a opção SS_ATOKEN.

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]bOPEspecifica a operação que será executada.
Valor Signficado
DN_A_TOKEN_OP_ISSUE Emite um token de sessão. Preencher o parâmetro qwExpiration de entrada em pstATokenFull, que no retorno da API receberá o token emitido. Passar NULL em fnCallBack e pvCallbackParam.
DN_A_TOKEN_OP_REVOKE Revoga um token de sessão, caso ele exista. Preencher o parâmetro Key de entrada em pstATokenFull. Passar NULL em fnCallBack e pvCallbackParam.
DN_A_TOKEN_OP_LIST Lista todos tokens ativos deste usuário. Deve ser passado a função de callback em fnCallBack. Passar NULL em pstATokenFull;
[in,out]pstATokenFullPonteiro para uma estrutura do tipo DN_A_TOKEN_FULL. Ver opção de bOP para instruções de preenchimento da estrutura.
[in]fnCallBackPonteiro para a função de callback do tipo funcListAKeysCallback. Pode ser NULL. Ver opção de bOP para instruções de preenchimento da estrutura.
[in]pvCallbackParamPonteiro para um parâmetro qualquer que será repassado à função de callback. Pode ser NULL.
[in]dwParamReservado 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
Os Access Tokens são mantidos de forma volátil, e desta maneira são apagados quando o HSM é reiniciado. Apesar de serem voláteis, os Access Tokens são replicados entre HSMs.
O limite máximo de Access Tokens emitidos por HSM pode ser visto na tabela abaixo.
Modelo Limite máximo
Pocket 1024
XP 1 Milhão
ST 1 Milhão

Esta operação está disponível à partir da vesão 3.18 do firmware do HSM. A implementação de Access Tokens anterior à versão 3.18 do firmware é legada.
As aplicações, que utilizam esta funcionalidade, deverão atualizar o cliente do HSM para a versão 3.2.18 ou superior, juntamente com o firmware do HSM para a versão 3.18 ou superior.
Não há compatibilidade entre versões novas e antigas de cliente e firmware do HSM.
int AAP_API DManageATokenCache ( HSESSIONCTX  hSession,
DWORD  dwOP,
void *  pOutData,
DWORD  dwParam 
)

#include <dinamo.h>

Gerencia o cache dos tokens de sessão (Access Tokens) de todo HSM. Esta funcionalidade é indicada para o controle granular de autenticação de aplicações, onde a emissão de tokens é gerenciada pelo security officer. O limite máximo de Access Tokens emitidos por HSM é de 4096 tokens. Sobre autenticação usando tokens de sessão consulte a função DOpenSession() com a opção SS_ATOKEN.

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]dwOPEspecifica a operação que será executada.
Valor Signficado
DN_ATOKEN_CACHE_GET_COUNT Recupera a quantidade de tokens de sessão de todo HSM. Passar em pOutData um DWORD que receberá a quantidade total de tokens de sessão do HSM.
DN_ATOKEN_CACHE_GC Executa o Garbage Collector de tokens de sessão do HSM. Passar NULL em pOutData.
[out]pOutDataDados de saída. Ver opções de uso em dwOP.
[in]dwParamReservado 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
Esta operação está disponível à partir da vesão 3.18 do firmware do HSM e a partir da versão 3.2.18 do cliente do HSM.