Exemplo de configuração do cache de conexões HTTP do PIX e leitura dos contadores do handle e do cache.
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#define HOST_ADDR "127.0.0.1"
#define USER_ID "master"
#define USER_PWD "12345678"
int main()
{
int nRet = 0;
const char szKeyId[] = "key";
const char szKeyCert[] = "key_cert";
const char szPIXChain[] = "pix_chain";
const char szUrl[] = "https://127.0.0.1:8000";
BYTE pbTestData[] =
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><xml>sdfsdf</xml>";
if (nRet) {
printf("Falha na funcao: DInitialize \nCodigo de erro: %d\n", nRet);
goto clean;
}
printf("Bibliotecas inicializadas.\n");
if (nRet) {
printf("Falha na funcao: DPIXSetCacheParam \nCodigo de erro: %d\n", nRet);
goto clean;
}
if (nRet) {
printf("Falha na funcao: DPIXSetCacheParam \nCodigo de erro: %d\n", nRet);
goto clean;
}
printf("Cache de conexoes HTTP configurado.\n");
memset(&authPwd, 0, sizeof(authPwd));
szKeyId,
szKeyCert,
szPIXChain,
sizeof(authPwd),
0);
if (nRet) {
printf("Falha na funcao: DPIXOpenHandle \nCodigo de erro: %d\n", nRet);
goto clean;
}
memset(&stRequest, 0, sizeof(stRequest));
stRequest.
pbBody = pbTestData;
stRequest.
dwBodyLen =
sizeof(pbTestData) - 1;
memset(&stResponse, 0, sizeof(stResponse));
nRet =
DPIXRequest(hPIXSession, &stRequest, &stResponse, 0);
if (nRet) {
printf("Falha na funcao: DPIXRequest \nCodigo de erro: %d\n", nRet);
goto clean;
}
printf("PIX post executado com sucesso.\n");
dwDataLen = sizeof(nHttpRet);
if (nRet) {
printf("Falha na funcao: DPIXGetHandleParam \nCodigo de erro: %d\n", nRet);
goto clean;
}
printf("Codigo HTTP da ultima requisicao: %llu\n", nHttpRet);
memset(&stDetails, 0, sizeof(stDetails));
dwDataLen = sizeof(stDetails);
if (nRet) {
printf("Falha na funcao: DPIXGetHandleParam \nCodigo de erro: %d\n", nRet);
goto clean;
}
printf("Tempo total: %llu ms, handshake TLS: %llu ms.\n",
memset(&stHandleStats, 0, sizeof(stHandleStats));
dwDataLen = sizeof(stHandleStats);
if (nRet) {
printf("Falha na funcao: DPIXGetHandleParam \nCodigo de erro: %d\n", nRet);
goto clean;
}
printf("Handle: %llu handshake(s) TLS, %llu assinatura(s) no HSM.\n",
memset(&stPoolStats, 0, sizeof(stPoolStats));
dwDataLen = sizeof(stPoolStats);
if (nRet) {
printf("Falha na funcao: DPIXGetCacheParam \nCodigo de erro: %d\n", nRet);
goto clean;
}
printf("Cache: %llu conexao(oes) viva(s), maximo ja atingido %llu.\n",
printf("Cache: %llu handshake(s) TLS, %llu assinatura(s) no HSM, %llu retomada(s).\n",
if (nRet) {
printf("Falha na funcao: DPIXSetCacheParam \nCodigo de erro: %d\n", nRet);
goto clean;
}
printf("Cache de conexoes HTTP marcado para fechamento.\n");
clean:
if (hPIXSession) {
printf("Handle PIX encerrado.\n");
}
printf("Bibliotecas finalizada.\n");
return nRet;
}
Application Programming Interface (API) do HSM Dinamo.
#define PIX_RESPONSE_VERSION
Definição dinamo.h:2803
#define DEFAULT_PORT
Definição dinamo.h:2091
#define PIXP_HTTP_RET
Definição dinamo.h:2855
unsigned char BYTE
Definição dinamo.h:44
#define PIXCP_MAX_HANDLES
Definição dinamo.h:2880
#define PIX_HTTP_POST
Definição dinamo.h:2797
#define PIXCP_STATS
Definição dinamo.h:2882
#define PIXP_HTTP_REQ_DETAILS
Definição dinamo.h:2856
unsigned int DWORD
Definição dinamo.h:45
#define PIX_POOL_STATS_VERSION
Definição dinamo.h:2885
void * HPIXSESSIONCTX
Definição dinamo.h:68
#define PIXCP_CLEAR
Definição dinamo.h:2879
#define PIX_REQUEST_VERSION
Definição dinamo.h:2802
#define ENCRYPTED_CONN
Definição dinamo.h:586
#define SS_USER_PWD
Definição dinamo.h:577
#define PIXCP_IDLE_TTL
Definição dinamo.h:2881
#define PIXP_STATS
Definição dinamo.h:2857
unsigned long long ND_uint64_t
Definição dinamo.h:36
#define PIX_HANDLE_STATS_VERSION
Definição dinamo.h:2884
int AAP_API DPIXSetCacheParam(DWORD dwParam, BYTE *pbData, DWORD dwDataLen, DWORD dwReserved)
Configura o cache de sessões HTTP do PIX, usado pelas funções DPIXPost(), DPIXPut(),...
int AAP_API DPIXCloseHandle(HPIXSESSIONCTX *phPIXSession, DWORD dwReserved)
Destrói um handle PIX criado por DPIXOpenHandle(), apagando da memória as credenciais nele armazenada...
int AAP_API DPIXGetCacheParam(DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwReserved)
Recupera a configuração e os contadores do cache de sessões HTTP do PIX.
int AAP_API DPIXRequest(HPIXSESSIONCTX hPIXSession, const PIX_REQUEST *pstRequest, PIX_RESPONSE *pstResponse, DWORD dwReserved)
Executa uma requisição HTTP com um handle PIX, para qualquer método.
int AAP_API DPIXOpenHandle(HPIXSESSIONCTX *phPIXSession, const char *szKeyId, const char *szCertId, const char *szPIXCertChainId, DWORD dwParam, BYTE *pbData, DWORD dwDataLen, DWORD dwFlags, DWORD dwPixFlags)
Cria um handle PIX, que encapsula uma conexão HTTP persistente e o material TLS (certificado,...
int AAP_API DPIXGetHandleParam(HPIXSESSIONCTX hPIXSession, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwReserved)
Recupera informações e contadores de um handle PIX.
int AAP_API DPIXFreeResponse(PIX_RESPONSE *pstResponse)
Libera os buffers de uma PIX_RESPONSE preenchida por DPIXRequest().
int AAP_API DInitialize(DWORD dwReserved)
int nPort
Definição dinamo.h:3547
char szUserId[MAX_USR_LEN]
Definição dinamo.h:3548
char szAddr[MAX_ADDR_LEN]
Definição dinamo.h:3546
char szPassword[MAX_USR_PWD]
Definição dinamo.h:3549
ND_uint64_t ssl_hook_count
Definição dinamo.h:2895
ND_uint64_t hsm_sign_count
Definição dinamo.h:2896
DWORD dwVersion
Definição dinamo.h:2893
ND_uint64_t appconnect_time
Definição dinamo.h:2775
ND_uint64_t total_time
Definição dinamo.h:2778
ND_uint64_t handles_live
Definição dinamo.h:2927
ND_uint64_t ssl_hook_count
Definição dinamo.h:2934
ND_uint64_t hsm_sign_count
Definição dinamo.h:2935
DWORD dwVersion
Definição dinamo.h:2925
ND_uint64_t handles_high_water
Definição dinamo.h:2929
const char * szURL
Definição dinamo.h:2821
DWORD dwTimeOut
Definição dinamo.h:2829
DWORD dwBodyLen
Definição dinamo.h:2827
DWORD dwMethod
Definição dinamo.h:2820
DWORD dwVersion
Definição dinamo.h:2818
BYTE * pbBody
Definição dinamo.h:2826
DWORD dwVersion
Definição dinamo.h:2842