API C/C++
HSM Dinamo
Loading...
Looking for...
No entries found
gen_csr.c

Example of CSR generation in PKCS#10 format.

See Note on examples.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <dinamo.h>
/* Parametros da conexao */
#define HSM_IP "127.0.0.1"
#define HSM_USR "master"
#define HSM_PWD "12345678"
int main(void)
{
int nRet = 0;
struct AUTH_PWD_EX stAUTPWD = {0};
HSESSIONCTX hSession = NULL;
HKEYCTX hPrivKey = NULL;
char szPrivKeyName[] = "rsa";
char szSubject[] = "/CN=www.teste.com/O=teste/OU=engenharia";
DWORD dwCSRLen = 0;
BYTE *pbCSR = NULL;
// Preenche a estrutura de usuario
strncpy(stAUTPWD.szAddr, HSM_IP, sizeof(stAUTPWD.szAddr));
strncpy(stAUTPWD.szUserId, HSM_USR, sizeof(stAUTPWD.szUserId));
strncpy(stAUTPWD.szPassword, HSM_PWD, sizeof(stAUTPWD.szPassword));
stAUTPWD.nPort = DEFAULT_PORT;
stAUTPWD.nStrongAuthLen = 0;
stAUTPWD.pbStrongAuth = NULL;
nRet = DOpenSession(&hSession,
(BYTE *) &stAUTPWD,
sizeof(struct AUTH_PWD_EX),
if(nRet)
{
printf("DOpenSession : Failed! %d.\n", nRet);
goto clean;
}
/* Gera a chave privada */
nRet = DGenerateKey(hSession,
szPrivKeyName,
0,
&hPrivKey);
if (nRet)
{
printf("DGenerateKey : Failed! %d.\n", nRet);
goto clean;
}
/* Gera o CSR */
nRet = DGeneratePKCS10CSR(hSession,
szPrivKeyName,
szSubject,
&dwCSRLen,
&pbCSR,
0);
if( nRet )
{
printf("DGeneratePKCS10CSR : Failed! %d.\n", nRet);
goto clean;
}
clean:
DDestroyKey(&hPrivKey, 0);
if( hSession )
{
DCloseSession(&hSession, 0);
}
if( pbCSR )
{
DFree(pbCSR);
}
return nRet;
}
Application Programming Interface (API) do HSM Dinamo.
void * HSESSIONCTX
Definição dinamo.h:68
#define CORE_P10_CSR_VERSION1
Definição dinamo.h:1804
#define DEFAULT_PORT
Definição dinamo.h:1934
#define CACHE_BYPASS
Definição dinamo.h:574
#define SA_AUTH_NONE
Definição dinamo.h:579
unsigned char BYTE
Definição dinamo.h:45
#define LB_BYPASS
Definição dinamo.h:573
unsigned int DWORD
Definição dinamo.h:46
#define ENCRYPTED_CONN
Definição dinamo.h:570
#define ALG_RSA_2048
Definição dinamo.h:1071
#define P10_CSR_PEM
Definição dinamo.h:1808
#define SS_USR_PWD_EX
Definição dinamo.h:564
void * HKEYCTX
Definição dinamo.h:70
int AAP_API DGenerateKey(HSESSIONCTX hSession, char *szKeyId, int nAlgId, DWORD dwFlags, HKEYCTX *phKey)
int AAP_API DGeneratePKCS10CSR(HSESSIONCTX hSession, char *szPrivateKeyName, BYTE bVersion, char *szDN, DWORD dwOutType, DWORD *pdwCSRLen, BYTE **ppbCSR, DWORD dwParam)
int AAP_API DDestroyKey(HKEYCTX *phKey, DWORD dwFlags)
void AAP_API DFree(void *p)
int AAP_API DOpenSession(HSESSIONCTX *phSession, DWORD dwParam, BYTE *pbData, DWORD dwDataLen, DWORD dwFlags)
int AAP_API DCloseSession(HSESSIONCTX *phSession, DWORD dwFlags)
int AAP_API DInitialize(DWORD dwReserved)
int AAP_API DFinalize()
Definição dinamo.h:3122
int nPort
Definição dinamo.h:3124
char szUserId[MAX_USR_LEN]
Definição dinamo.h:3125
DWORD dwAuthType
Definição dinamo.h:3127
char szAddr[MAX_ADDR_LEN]
Definição dinamo.h:3123
char szPassword[MAX_USR_PWD]
Definição dinamo.h:3126
int nStrongAuthLen
Definição dinamo.h:3133
BYTE * pbStrongAuth
Definição dinamo.h:3132