|  | 
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 Hash Binary Data and Sign (and Verify)Demonstrates how to sign the hash of binary data. Also demonstrates how to verify the RSA signature. 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; bdData: HCkBinData; bdSignature: 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'; bdData := CkBinData_Create(); CkBinData_AppendEncoded(bdData,originalData,'hex'); // Hash (SHA-256) and sign the hash: bdSignature := CkBinData_Create(); success := CkRsa_SignBd(rsa,bdData,'sha256',bdSignature); if (success = False) then begin Memo1.Lines.Add(CkRsa__lastErrorText(rsa)); Exit; end; // Show the RSA signature in base64 Memo1.Lines.Add(CkBinData__getEncoded(bdSignature,'base64')); // ------------------------------------------ // Get the public key from the private key pubKey := CkPublicKey_Create(); CkPrivateKey_ToPublicKey(privKey,pubKey); // Verify the signature.. rsa2 := CkRsa_Create(); CkRsa_UsePublicKey(rsa2,pubKey); bVerified := CkRsa_VerifyBd(rsa2,bdData,'sha256',bdSignature); Memo1.Lines.Add('signature verified: ' + IntToStr(Ord(bVerified))); CkPrivateKey_Dispose(privKey); CkRsa_Dispose(rsa); CkBinData_Dispose(bdData); CkBinData_Dispose(bdSignature); CkPublicKey_Dispose(pubKey); CkRsa_Dispose(rsa2); end; | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.