Compartilhar via


Função CryptSignMessageWithKey (wincrypt.h)

A função CryptSignMessageWithKey assina uma mensagem usando uma chave privada do CSP especificada nos parâmetros. Um espaço reservado SignerId é criado e armazenado na mensagem.

Sintaxe

BOOL CryptSignMessageWithKey(
  [in]      PCRYPT_KEY_SIGN_MESSAGE_PARA pSignPara,
  [in]      const BYTE                   *pbToBeSigned,
  [in]      DWORD                        cbToBeSigned,
  [out]     BYTE                         *pbSignedBlob,
  [in, out] DWORD                        *pcbSignedBlob
);

Parâmetros

[in] pSignPara

Um ponteiro para uma estrutura CRYPT_KEY_SIGN_MESSAGE_PARA que contém os parâmetros de assinatura.

[in] pbToBeSigned

Um ponteiro para uma matriz de buffer que contém a mensagem a ser assinada.

[in] cbToBeSigned

O número de elementos de matriz na matriz de buffer pbToBeSigned .

[out] pbSignedBlob

Um ponteiro para um buffer para receber a mensagem assinada codificada.

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 valor DWORD que indica 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.

Nota Ao processar os dados retornados, os aplicativos devem usar o tamanho real dos dados retornados. O tamanho real pode ser um pouco menor do que o tamanho do buffer especificado na entrada. (Na entrada, os tamanhos de buffer geralmente são especificados grandes o suficiente para garantir que os maiores dados de saída possíveis se encaixem no buffer.) Na saída, a variável apontada por esse parâmetro é atualizada para refletir o tamanho real dos dados copiados para o buffer.
 

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 seguinte lista os códigos de erro mais comumente retornados pela função GetLastError .

Código de retorno Descrição
ERROR_MORE_DATA
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.
E_INVALIDARG
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.
CRYPT_E_NO_KEY_PROPERTY
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