Função CryptSignMessage (wincrypt.h)
A função CryptSignMessage cria um hash do conteúdo especificado, assina o hash e codifica o conteúdo da mensagem original e o hash assinado.
Sintaxe
BOOL CryptSignMessage(
[in] PCRYPT_SIGN_MESSAGE_PARA pSignPara,
[in] BOOL fDetachedSignature,
[in] DWORD cToBeSigned,
[in] const BYTE * [] rgpbToBeSigned,
[in] DWORD [] rgcbToBeSigned,
[out] BYTE *pbSignedBlob,
[in, out] DWORD *pcbSignedBlob
);
Parâmetros
[in] pSignPara
Um ponteiro para CRYPT_SIGN_MESSAGE_PARA estrutura que contém os parâmetros de assinatura.
[in] fDetachedSignature
TRUE se for para ser uma assinatura desanexada. Caso contrário, FALSE. Se esse parâmetro for definido como TRUE, somente o hash assinado será codificado em pbSignedBlob. Caso contrário, rgpbToBeSigned e o hash assinado serão codificados.
[in] cToBeSigned
Contagem do número de elementos de matriz em rgpbToBeSigned e rgcbToBeSigned. Esse parâmetro deve ser definido como um, a menos que fDetachedSignature esteja definido como TRUE.
[in] rgpbToBeSigned
Matriz de ponteiros para buffers que contêm o conteúdo a ser assinado.
[in] rgcbToBeSigned
Matriz de tamanhos, em bytes, dos buffers de conteúdo apontados em rgpbToBeSigned.
[out] pbSignedBlob
Um ponteiro para um buffer para receber o hash assinado codificado, se fDetachedSignature for TRUE ou para o conteúdo codificado e o hash assinado se fDetachedSignature for FALSE.
Esse parâmetro pode ser NULL para definir o tamanho dessas informações para fins de alocação de memória. Para obter mais informações, consulte Recuperando dados de comprimento desconhecido.
[in, out] pcbSignedBlob
Um ponteiro para um DWORD que especifica o tamanho, em bytes, do buffer pbSignedBlob . Quando a função retorna, essa variável contém o tamanho, em bytes, da mensagem assinada e codificada.
Retornar valor
Se a função for bem-sucedida, o valor retornado será diferente de zero (TRUE).
Se a função falhar, o valor retornado será zero (FALSE).
Para obter informações de erro estendidas, chame GetLastError.
O exemplo a seguir lista os códigos de erro mais comumente retornados pela função GetLastError .
Código de retorno | Descrição |
---|---|
|
Se o buffer especificado pelo parâmetro pbSignedBlob não for grande o suficiente para manter os dados retornados, a função definirá o código ERROR_MORE_DATA e armazenará o tamanho do buffer necessário, em bytes, na variável apontada por pcbSignedBlob. |
|
O tipo de codificação de mensagem não é válido. Atualmente, há suporte apenas para PKCS_7_ASN_ENCODING. O cbSize em *pSignPara não é válido. |
|
O pSigningCert em *pSignPara não tem uma propriedade CERT_KEY_PROV_INFO_PROP_ID ou CERT_KEY_CONTEXT_PROP_ID. |
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | wincrypt.h |
Biblioteca | Crypt32.lib |
DLL | Crypt32.dll |