![]() |
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
(DataFlex) RSA Signature/Verify with .key and .cerSee more RSA ExamplesDemonstrates how to use a .key file (private key) and digital certificate (.cer, public key) to create and verify an RSA signature.Note: This example requires Chilkat v11.0.0 or greater.
Use ChilkatAx-win32.pkg Procedure Test Boolean iSuccess Variant vPrivKey Handle hoPrivKey Handle hoRsa String sStrData String sHexSig Handle hoCert Variant vPubKey Handle hoPubKey 2 Handle hoRsa2 String sTemp1 Move False To iSuccess // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatPrivateKey)) To hoPrivKey If (Not(IsComObjectCreated(hoPrivKey))) Begin Send CreateComObject of hoPrivKey End // Load the private key from an RSA .key file: Get ComLoadPemFile Of hoPrivKey "privateKey.key" To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoPrivKey To sTemp1 Showln sTemp1 Procedure_Return End Get Create (RefClass(cComChilkatRsa)) To hoRsa If (Not(IsComObjectCreated(hoRsa))) Begin Send CreateComObject of hoRsa End // Import the private key into the RSA component: Get pvComObject of hoPrivKey to vPrivKey Get ComUsePrivateKey Of hoRsa vPrivKey To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoRsa To sTemp1 Showln sTemp1 Procedure_Return End // Create the signature as a hex string: Set ComEncodingMode Of hoRsa To "hex" Move "This is the string to be signed." To sStrData // Sign the string using the sha256 hash algorithm. // Other valid choices are "md2", "sha1", "sha384", // "sha512", and "md5". Get ComSignStringENC Of hoRsa sStrData "sha256" To sHexSig Showln sHexSig // Load a digital certificate from a .cer file: Get Create (RefClass(cComChilkatCert)) To hoCert If (Not(IsComObjectCreated(hoCert))) Begin Send CreateComObject of hoCert End Get ComLoadFromFile Of hoCert "myCert.cer" To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoCert To sTemp1 Showln sTemp1 Procedure_Return End Get Create (RefClass(cComChilkatPublicKey)) To hoPubKey If (Not(IsComObjectCreated(hoPubKey))) Begin Send CreateComObject of hoPubKey End Get pvComObject of hoPubKey to vPubKey Get ComGetPublicKey Of hoCert vPubKey To iSuccess // Now verify using a new instance of the RSA object: Get Create (RefClass(cComChilkatRsa)) To hoRsa2 If (Not(IsComObjectCreated(hoRsa2))) Begin Send CreateComObject of hoRsa2 End // Import the public key into the RSA object: Get pvComObject of hoPubKey to vPubKey Get ComUsePublicKey Of hoRsa2 vPubKey To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoRsa2 To sTemp1 Showln sTemp1 Procedure_Return End // The signature is a hex string, so make sure the EncodingMode is correct: Set ComEncodingMode Of hoRsa2 To "hex" // Verify the signature: Get ComVerifyStringENC Of hoRsa2 sStrData "sha256" sHexSig To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoRsa2 To sTemp1 Showln sTemp1 Procedure_Return End Showln "Success." End_Procedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.