RSACryptoServiceProvider.VerifyData(Byte[], Object, Byte[]) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Ověří, že digitální podpis je platný, a to tak, že určí hodnotu hash v podpisu pomocí zadaného veřejného klíče a porovná ho s hodnotou hash zadaných dat.
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
Parametry
- buffer
- Byte[]
Data, která byla podepsána.
- halg
- Object
Název hashového algoritmu použitého k vytvoření hodnoty hash dat.
- signature
- Byte[]
Data podpisu, která se mají ověřit.
Návraty
true
je-li podpis platný; false
v opačném případě .
Výjimky
Parametr halg
je null
.
Parametr halg
není platným typem.
Příklady
Následující příklad ukazuje, jak použít metodu VerifyData k ověření podpisu. Tento příklad kódu je součástí většího příkladu poskytnutého pro metodu SignHash .
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
Poznámky
Tato metoda ověří RSA digitální podpis vytvořený metodou SignData . Podpis je ověřen získáním hodnoty hash z podpisu pomocí veřejného klíče, se kterým byl podepsán, a porovnáním této hodnoty s hodnotou hash zadaných dat.
Parametr halg
může přijmout Stringparametr , a HashAlgorithm, nebo Type.