RSACryptoServiceProvider.VerifyData(Byte[], Object, Byte[]) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Verifica se uma assinatura digital é válida determinando o valor de hash na assinatura com a chave pública fornecida e comparando-a com o valor de hash dos dados fornecidos.
public:
bool VerifyData(cli::array <System::Byte> ^ buffer, System::Object ^ halg, cli::array <System::Byte> ^ signature);
public bool VerifyData (byte[] buffer, object halg, byte[] signature);
override this.VerifyData : byte[] * obj * byte[] -> bool
member this.VerifyData : byte[] * obj * byte[] -> bool
Public Function VerifyData (buffer As Byte(), halg As Object, signature As Byte()) As Boolean
Parâmetros
- buffer
- Byte[]
Os dados que receberam um sinal.
- halg
- Object
O nome do algoritmo de hash usado para criar o valor de hash dos dados.
- signature
- Byte[]
Os dados de assinatura a serem verificados.
Retornos
true
se a assinatura for válida; caso contrário, false
.
Exceções
O parâmetro halg
é null
.
O parâmetro halg
não é um tipo válido.
Exemplos
O exemplo a seguir mostra como usar o VerifyData método para verificar uma assinatura. Este exemplo de código faz parte de um exemplo maior fornecido para o SignHash método .
bool VerifyHash( RSAParameters rsaParams, array<Byte>^signedData, array<Byte>^signature )
{
RSACryptoServiceProvider^ rsaCSP = gcnew RSACryptoServiceProvider;
SHA1Managed^ hash = gcnew SHA1Managed;
array<Byte>^hashedData;
rsaCSP->ImportParameters( rsaParams );
bool dataOK = rsaCSP->VerifyData(signedData, CryptoConfig::MapNameToOID("SHA1"), signature);
hashedData = hash->ComputeHash( signedData );
return rsaCSP->VerifyHash( hashedData, CryptoConfig::MapNameToOID( "SHA1" ), signature );
}
public bool VerifyHash(RSAParameters rsaParams, byte[] signedData, byte[] signature)
{
RSACryptoServiceProvider rsaCSP = new RSACryptoServiceProvider();
SHA1Managed hash = new SHA1Managed();
byte[] hashedData;
rsaCSP.ImportParameters(rsaParams);
bool dataOK = rsaCSP.VerifyData(signedData, CryptoConfig.MapNameToOID("SHA1"), signature);
hashedData = hash.ComputeHash(signedData);
return rsaCSP.VerifyHash(hashedData, CryptoConfig.MapNameToOID("SHA1"), signature);
}
Public Function VerifyHash(ByVal rsaParams As RSAParameters, ByVal signedData() As Byte, ByVal signature() As Byte) As Boolean
Dim rsaCSP As New RSACryptoServiceProvider()
Dim hash As New SHA1Managed()
Dim hashedData() As Byte
Dim dataOK As Boolean
rsaCSP.ImportParameters(rsaParams)
dataOK = rsaCSP.VerifyData(signedData, CryptoConfig.MapNameToOID("SHA1"), signature)
hashedData = hash.ComputeHash(signedData)
Return rsaCSP.VerifyHash(hashedData, CryptoConfig.MapNameToOID("SHA1"), signature)
End Function 'VerifyHash
Comentários
Esse método verifica a RSA assinatura digital produzida pelo SignData método . A assinatura é verificada obtendo o valor de hash da assinatura usando a chave pública com a qual foi assinada e comparando esse valor com o valor de hash dos dados fornecidos.
O halg
parâmetro pode aceitar um String, um HashAlgorithmou um Type.