Compartilhar via


Função NCryptVerifySignature (ncrypt.h)

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

Sintaxe

SECURITY_STATUS NCryptVerifySignature(
  [in]           NCRYPT_KEY_HANDLE hKey,
  [in, optional] VOID              *pPaddingInfo,
  [in]           PBYTE             pbHashValue,
  [in]           DWORD             cbHashValue,
  [in]           PBYTE             pbSignature,
  [in]           DWORD             cbSignature,
  [in]           DWORD             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 NCryptSignHash .

[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] pbHashValue

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

[in] cbHashValue

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 NCryptSignHash é 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 NCryptSignHash é usada para criar a assinatura.

[in] dwFlags

Sinalizadores que modificam o comportamento da 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
NCRYPT_PAD_PKCS1_FLAG
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 .
NCRYPT_PAD_PSS_FLAG
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 .
NCRYPT_SILENT_FLAG
Solicita que o KSP (provedor de serviços de chave) não exiba nenhuma interface do usuário. Se o provedor precisar exibir a interface do usuário para operar, a chamada falhará e o KSP deverá definir o código de erro NTE_SILENT_CONTEXT como o último erro.

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
ERROR_SUCCESS
A função foi bem-sucedida.
NTE_BAD_SIGNATURE
A assinatura não foi verificada.
NTE_INVALID_HANDLE
O parâmetro hKey não é válido.
NTE_NO_MEMORY
Ocorreu uma falha de alocação de memória.
NTE_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

Um serviço não deve chamar essa função de sua função StartService. Se um serviço chamar essa função de sua função StartService, um deadlock poderá ocorrer e o serviço poderá parar de responder.

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 ncrypt.h
Biblioteca Ncrypt.lib
DLL Ncrypt.dll

Confira também

NCryptSignHash