Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... 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.
Use ChilkatAx-win32.pkg Procedure Test Handle hoPrivKey Boolean iSuccess String sPrivKeyXml Handle hoRsa String sStrData String sHexSig Handle hoCert Variant vPubKey Handle hoPubKey 2 Handle hoRsa2 String sTemp1 // 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 <> True) Begin Get ComLastErrorText Of hoPrivKey To sTemp1 Showln sTemp1 Procedure_Return End // Get the private key in XML format: Get ComGetXml Of hoPrivKey To sPrivKeyXml 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 ComImportPrivateKey Of hoRsa sPrivKeyXml To iSuccess If (iSuccess <> True) 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 sha-1 hash algorithm. // Other valid choices are "md2", "sha256", "sha384", // "sha512", and "md5". Get ComSignStringENC Of hoRsa sStrData "sha-1" 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 <> True) Begin Get ComLastErrorText Of hoCert To sTemp1 Showln sTemp1 Procedure_Return End Get ComExportPublicKey Of hoCert To vPubKey If (IsComObject(vPubKey)) Begin Get Create (RefClass(cComChilkatPublicKey)) To hoPubKey Set pvComObject Of hoPubKey To vPubKey End // Now verify using a separate 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 ComGetXml Of hoPubKey To sTemp1 Get ComImportPublicKey Of hoRsa2 sTemp1 To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoRsa2 To sTemp1 Showln sTemp1 Procedure_Return End Send Destroy of hoPubKey // 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 "sha-1" sHexSig To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoRsa2 To sTemp1 Showln sTemp1 Procedure_Return End Showln "Success." End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.