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ěří platnost digitálního podpisu tak, že pomocí poskytnutého veřejného klíče určí hodnotu hash v podpisu a porovná ji 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 hashovací algoritmu použitého k vytvoření hodnoty hash dat.
- signature
- Byte[]
Data podpisu, která se mají ověřit.
Návraty
true
pokud je podpis platný; v opačném případě . false
Výjimky
Parametr halg
je null
.
Parametr halg
není platný typ.
Příklady
Následující příklad ukazuje, jak pomocí VerifyData metody ověřit podpis. Tento příklad kódu je součástí většího příkladu 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ěřuje 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, kterým byl podepsán, a porovnáním této hodnoty s hodnotou hash zadaných dat.
Parametr halg
může přijmout String, a HashAlgorithmnebo Type.