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) Encrypt with Chilkat, Decrypt with OpenSSLDemonstrates how to RSA encrypt a string using Chilkat, and then shows the corresponding OpenSSL command to RSA decrypt. The OpenSSL command to decrypt is as follows: openssl rsautl -decrypt -inkey VP_Private.pem -in rsa_encrypted.bin -out original.txt
Use ChilkatAx-win32.pkg Procedure Test Handle hoRsa Variant vKey Handle hoKey Boolean iSuccess String sStrToEncrypt Boolean iUsePrivateKey Variant hoEncryptedBytes Handle hoFac String sTemp1 Boolean bTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatRsa)) To hoRsa If (Not(IsComObjectCreated(hoRsa))) Begin Send CreateComObject of hoRsa End // Note: RSA encryption uses the public key. // RSA decryption uses the private key. // The reason is that the public key can be freely provided to anybody. This allows anybody // to send an encrypted message to the private key owner, and only the private key owner // can decrypt. Get Create (RefClass(cComChilkatPublicKey)) To hoKey If (Not(IsComObjectCreated(hoKey))) Begin Send CreateComObject of hoKey End // Load an RSA public key from a PEM file: Get ComLoadFromFile Of hoKey "qa_data/pem/VP_Public.pem" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoKey To sTemp1 Showln sTemp1 Procedure_Return End // Load the public key into the RSA object. Get pvComObject of hoKey to vKey Get ComImportPublicKeyObj Of hoRsa vKey To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoRsa To sTemp1 Showln sTemp1 Procedure_Return End Move "00000000;XYZ2-3BHQ-ABCD-MMVV;6MY1-GHJK-9LRR;0" To sStrToEncrypt // The LittleEndian property is False by default, but it is set here // anyway to show that LittleEndian byte ordering is required for OpenSSL compatibility. Set ComLittleEndian Of hoRsa To False Move False To iUsePrivateKey Get ComEncryptString Of hoRsa sStrToEncrypt iUsePrivateKey To hoEncryptedBytes Get ComLastMethodSuccess Of hoRsa To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoRsa To sTemp1 Showln sTemp1 Procedure_Return End // The OpenSSL command to decrypt would be this: // openssl rsautl -decrypt -inkey VP_Private.pem -in rsa_encrypted.bin -out original.txt Get Create (RefClass(cComCkFileAccess)) To hoFac If (Not(IsComObjectCreated(hoFac))) Begin Send CreateComObject of hoFac End Get ComWriteEntireFile Of hoFac "qa_output/rsa_encrypted.bin" vEncryptedBytes To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoFac To sTemp1 Showln sTemp1 Procedure_Return End Showln "RSA Encryption Succeeded." End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.