|  | 
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 DLL) RSA Sign Binary Data and Verify (Recover the Original Data)Demonstrates how to RSA sign binary data and then verify/recover the original data. Note: This example uses methods introduced in Chilkat v9.5.0.77. Note: This example requires Chilkat v11.0.0 or greater. 
 uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, BinData, PrivateKey, Rsa, PublicKey; ... procedure TForm1.Button1Click(Sender: TObject); var success: Boolean; privKey: HCkPrivateKey; rsa: HCkRsa; originalData: PWideChar; bd: HCkBinData; pubKey: HCkPublicKey; rsa2: HCkRsa; bVerified: Boolean; begin success := False; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // Load an RSA private key for signing. privKey := CkPrivateKey_Create(); success := CkPrivateKey_LoadEncryptedPemFile(privKey,'qa_data/pem/rsa_passwd.pem','passwd'); if (success = False) then begin Memo1.Lines.Add(CkPrivateKey__lastErrorText(privKey)); Exit; end; rsa := CkRsa_Create(); CkRsa_UsePrivateKey(rsa,privKey); // We have some binary data (in hex) to sign originalData := '0102030405060708090A'; bd := CkBinData_Create(); CkBinData_AppendEncoded(bd,originalData,'hex'); // If successful, the contents of bd are replaced with the RSA signature. success := CkRsa_SignRawBd(rsa,bd); if (success = False) then begin Memo1.Lines.Add(CkRsa__lastErrorText(rsa)); Exit; end; // Show the RSA signature in base64 Memo1.Lines.Add(CkBinData__getEncoded(bd,'base64')); // ------------------------------------------ // Get the public key from the private key pubKey := CkPublicKey_Create(); CkPrivateKey_ToPublicKey(privKey,pubKey); // Verify the signature and extract the original data. rsa2 := CkRsa_Create(); CkRsa_UsePublicKey(rsa2,pubKey); bVerified := CkRsa_VerifyRawBd(rsa2,bd); Memo1.Lines.Add('signature verified: ' + IntToStr(Ord(bVerified))); // Show the original data: Memo1.Lines.Add('original data: ' + CkBinData__getEncoded(bd,'hex')); CkPrivateKey_Dispose(privKey); CkRsa_Dispose(rsa); CkBinData_Dispose(bd); CkPublicKey_Dispose(pubKey); CkRsa_Dispose(rsa2); end; | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.