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 |
---|---|
|
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 . |
|
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 |
---|---|
|
A função foi bem-sucedida. |
|
A assinatura não foi verificada. |
|
Ocorreu uma falha de alocação de memória. |
|
Um dos parâmetros fornecidos é inválido. |
|
O identificador de chave especificado pelo parâmetro hKey não é válido. |
|
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 |