Função BCryptVerifySignature (bcrypt.h)

A função BCryptVerifySignature verifica se a assinatura especificada corresponde ao hash especificado.

Sintaxe

NTSTATUS BCryptVerifySignature(
  [in]           BCRYPT_KEY_HANDLE hKey,
  [in, optional] VOID              *pPaddingInfo,
  [in]           PUCHAR            pbHash,
  [in]           ULONG             cbHash,
  [in]           PUCHAR            pbSignature,
  [in]           ULONG             cbSignature,
  [in]           ULONG             dwFlags
);

Parâmetros

[in] hKey

O identificador da chave a ser usada para descriptografar a assinatura. Essa deve ser uma chave idêntica ou a parte de chave pública do par de chaves usado para assinar os dados com a função BCryptSignHash .

[in, optional] pPaddingInfo

Um ponteiro para uma estrutura que contém informações de preenchimento. O tipo real de estrutura para o qual esse parâmetro aponta depende do valor do parâmetro dwFlags . Esse parâmetro só é usado com chaves assimétricas e deve ser NULL caso contrário.

[in] pbHash

O endereço de um buffer que contém o hash dos dados. O parâmetro cbHash contém o tamanho desse buffer.

[in] cbHash

O tamanho, em bytes, do buffer pbHash .

[in] pbSignature

O endereço de um buffer que contém o hash assinado dos dados. A função BCryptSignHash é usada para criar a assinatura. O parâmetro cbSignature contém o tamanho desse buffer.

[in] cbSignature

O tamanho, em bytes, do buffer pbSignature . A função BCryptSignHash é usada para criar a assinatura.

[in] dwFlags

Um conjunto de sinalizadores que modificam o comportamento dessa função. O conjunto permitido de sinalizadores depende do tipo de chave especificado pelo parâmetro hKey .

Se a chave for uma chave simétrica, esse parâmetro não será usado e deverá ser zero.

Se a chave for uma chave assimétrica, esse poderá ser um dos valores a seguir.

Valor Significado
BCRYPT_PAD_PKCS1
O esquema de preenchimento PKCS1 foi usado quando a assinatura foi criada. O parâmetro pPaddingInfo é um ponteiro para uma estrutura BCRYPT_PKCS1_PADDING_INFO .
BCRYPT_PAD_PSS
O esquema de preenchimento PSS (Probabilistic Signature Scheme) foi usado quando a assinatura foi criada. O parâmetro pPaddingInfo é um ponteiro para uma estrutura BCRYPT_PSS_PADDING_INFO .

Retornar valor

Retorna um código status que indica o êxito ou a falha da função.

Os códigos de retorno possíveis incluem, mas não se limitam a, o seguinte.

Código de retorno Descrição
STATUS_SUCCESS
A função foi bem-sucedida.
STATUS_INVALID_SIGNATURE
A assinatura não foi verificada.
NTE_NO_MEMORY
Ocorreu uma falha de alocação de memória.
STATUS_INVALID_PARAMETER
Um dos parâmetros fornecidos é inválido.
STATUS_INVALID_HANDLE
O identificador de chave especificado pelo parâmetro hKey não é válido.
STATUS_NOT_SUPPORTED
O provedor de algoritmo usado para criar o identificador de chave especificado pelo parâmetro hKey não é um algoritmo de assinatura.

Comentários

Essa função calcula a assinatura com a chave fornecida e compara o valor da assinatura calculada com o valor de assinatura especificado.

Para usar essa função, você deve fazer hash dos dados usando o mesmo algoritmo de hash que foi usado para criar o valor de hash que foi assinado. Se aplicável, você também deve especificar o mesmo esquema de preenchimento especificado quando a assinatura foi criada.

Dependendo de quais modos de processador um provedor dá suporte, BCryptVerifySignature pode ser chamado do modo de usuário ou do modo kernel. Os chamadores do modo kernel podem ser executados em PASSIVE_LEVELIRQL ou DISPATCH_LEVEL IRQL. Se o nível IRQL atual for DISPATCH_LEVEL, o identificador fornecido no parâmetro hKey deverá ser derivado de um identificador de algoritmo retornado por um provedor que foi aberto usando o sinalizador BCRYPT_PROV_DISPATCH e quaisquer ponteiros passados para a função BCryptVerifySignature deverão se referir à memória nãopagada (ou bloqueada).

Para chamar essa função no modo kernel, use Cng.lib, que faz parte do DDK (Driver Development Kit). Windows Server 2008 e Windows Vista: Para chamar essa função no modo kernel, use Ksecdd.lib.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho bcrypt.h
Biblioteca Bcrypt.lib
DLL Bcrypt.dll

Confira também

BCryptSignHash