CryptVerifySignature
Verifica se uma assinatura digital é válida para os dados.
Formato
CryptVerifySignature ( dados ; algoritmo ; chaveRSAPública ; assinatura )
Parâmetros
dados
- qualquer expressão do texto que representa os dados dos quais verificar a assinatura
.
algoritmo
- o nome do algoritmo criptográfico a ser usado (consulte a Função CryptAuthCode).
publicRSAKey
- texto que representa a chave pública PKCS #1 RSA no formato PEM que corresponde à chave privada usada para gerar a assinatura
.
assinatura
- a assinatura RSA binária a ser verificada nos dados
, como o valor retornado pela Função CryptGenerateSignature.
Tipo de dados retornado
número
Originada na versão
18.0
Descrição
Para verificar uma assinatura, esta função compara o resumo da mensagem dos dados
(usando o algoritmo especificado) com o resumo obtido descriptografando a assinatura
usando chaveRSAPública
.
Uma chave pública RSA deve estar neste formato:
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqqDiwrPQwVaJzOzfFVBd
...
egkXva5cYBb8PNifmlPXVb8CAwEAAQ==
-----END PUBLIC KEY-----
Se a assinatura for válida para os dados, a função retornará 1 (true); se a assinatura não for válida, ela retornará 0 (false). Se algum dos parâmetros for inválido, ela retornará "?".
Exemplo 1
Usa o algoritmo SHA-512 para gerar o resumo de Tabela::textoAssinado. Base64 decodifica a assinatura armazenada no campo de texto Tabela::Assinatura e a retorna como dados de container. Descriptografa a assinatura usando o valor no campo Tabela::chaveRSAPública e compara o resumo da assinatura com o resumo baseado no campo Tabela::textoAssinado. Se a assinatura for válida, retornará 1.
CryptVerifySignature (
Tabela::textoAssinado ; "SHA512" ; Tabela::chaveRSAPública ;
Base64Decode (
Tabela::Assinatura ; "sig.data"
)
)