![]() |
Chilkat • HOME • Android™ • AutoIt • C • C# • C++ • Chilkat2-Python • CkPython • Classic ASP • DataFlex • Delphi DLL • Go • Java • Node.js • Objective-C • PHP Extension • Perl • PowerBuilder • PowerShell • PureBasic • Ruby • SQL Server • Swift • Tcl • Unicode C • Unicode C++ • VB.NET • VBScript • Visual Basic 6.0 • Visual FoxPro • Xojo Plugin
(Delphi ActiveX) Verfies an RSA SignatureSee more Apple Keychain ExamplesVerifies an RSA signature against the original data.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB; ... procedure TForm1.Button1Click(Sender: TObject); var bd: TChilkatBinData; i: Integer; bdSig: TChilkatBinData; success: Integer; pubKey: TPublicKey; rsa: TChilkatRsa; begin // The following data was signed by the following example: // RSA Sign using a Private Key on a USB Token or Smartcard bd := TChilkatBinData.Create(Self); for i := 0 to 100 do begin bd.AppendEncoded('000102030405060708090A0B0C0D0E0F','hex'); end; // Load the signature bdSig := TChilkatBinData.Create(Self); success := bdSig.LoadFile('rsaSignatures/test1.sig'); if (success = 0) then begin Memo1.Lines.Add('Failed to load the RSA signature'); Exit; end; // Get the public key to be used for signature verification. pubKey := TPublicKey.Create(Self); success := pubKey.LoadFromFile('rsaKeys/chilkat-rsa-2048.pem'); if (success = 0) then begin Memo1.Lines.Add(pubKey.LastErrorText); Exit; end; rsa := TChilkatRsa.Create(Self); rsa.ImportPublicKeyObj(pubKey.ControlInterface); // Verify the hash of the data against the signature. // We pass in the original data. Internally, the hash is generated // and used to validate the signature. // Validating the RSA signature means two things: // (1) the original data is exactly what was signed, and // (2) it was signed by the owner of the RSA private key. success := rsa.VerifyBd(bd.ControlInterface,'sha256',bdSig.ControlInterface); if (success = 0) then begin Memo1.Lines.Add(rsa.LastErrorText); Memo1.Lines.Add('Signature invalid.'); end else begin Memo1.Lines.Add('Signature valid.'); end; end; |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.