PKCS#7

Assinatura padrão PKCS#7. Mais...

Funções

int AAP_API DPKCS7Sign (HSESSIONCTX hSession, char *szKeyName, char *szKeyCert, char *szCerts, DWORD dwAttrib, BYTE *pbContent, DWORD dwContentLen, DWORD *pdwSignatureLen, BYTE **ppbSignature, DWORD dwParam)
 

Descrição Detalhada

Assinatura padrão PKCS#7.

Funções

int AAP_API DPKCS7Sign ( HSESSIONCTX  hSession,
char *  szKeyName,
char *  szKeyCert,
char *  szCerts,
DWORD  dwAttrib,
BYTE pbContent,
DWORD  dwContentLen,
DWORD pdwSignatureLen,
BYTE **  ppbSignature,
DWORD  dwParam 
)

#include <dinamo.h>

Gera uma assinatura ou co-assinatura seguindo o padrão PKCS#7 (Cryptographic Message Syntax Standard).

Parâmetros
[in]hSessionContexto adquirido através da função DOpenSession().
[in]szKeyNameNome da chave dentro do HSM que será utilizada para fazer a assinatura.
[in]szKeyCertNome do certificado (correspondente a chave szKeyName) dentro do HSM que será utilizado na assinatura.
[in]szCertsNome da cadeia de certificados (PKCS#7) ou certificado X.509 da Autoridade Certificadora (correspondente a chave szKeyName) dentro do HSM que será utilizada na assinatura.
[in]dwAttribFlag contendo as opções de assinatura.
ValorSignificado
TAC_MOD_CORE_P7_TEXT Incluir cabeçalho MIME de texto.
TAC_MOD_CORE_P7_NOCERTS Não incluir certificado de assinatura.
TAC_MOD_CORE_P7_DETACHED Gerar assinatura separada.
TAC_MOD_CORE_P7_BINARY Tratar arquivo como binário sem tradução de MIME type.
TAC_MOD_CORE_P7_NOATTR Não utilizar atributos de autenticação.
TAC_MOD_CORE_P7_NOSMIMECAP Omitir S/MIME Capabilities.
TAC_MOD_CORE_P7_COSIGN Gera uma co-assinatura. Este flag só deve usada se o conteúdo em pbContent for um pacote PKCS#7 assinado (formato DER), assim é acrescentada uma nova assinatura.
[in]pbContentBuffer contendo os dados que serão assinados. Seu tamanho deve ser especificado em dwContentLen.
[in]dwContentLenTamanho do buffer em bytes passado em pbContent.
[out]pdwSignatureLenPonteiro para o tamanho em bytes do buffer ppbSignature.
[out]ppbSignaturePonteiro para um ponteiro que receberá a assinatura PKCS#7 (formato DER). Este ponteiro deverá ser liberado após seu uso com DFree().
[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
Para gerar uma mensagem PKCS#7 com co-assinatura, o chamador deve submeter em pbContent uma mensagem PKCS#7 assinada (em formato DER). Este processo deve ser repetido iterativamente tantas vezes quantas forem as co-assinaturas necessárias. Ao fazer uma co-assinatura a flag TAC_MOD_CORE_P7_NOATTR é automaticamente desabilitada.
O padrão adotado é o PKCS#7 v. 1.5.
Exemplos:
pkcs7sign.c.