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 Encrypt RSA/ECB/OAEPWithSHA1AndMGF1PaddingDemonstrates how to RSA encrypt using RSA/ECB/OAEPWithSHA1AndMGF1Padding. Also demonstrates RSA/ECB/OAEPWithSHA-256AndMGF1Padding. Both of these terms are from Java's JCE. Note: In this context, "ECB" doesn't actually mean anything. It's a symmetric cipher mode that doesn't apply (or make sense) in this context.
Use ChilkatAx-win32.pkg Procedure Test Handle hoRsa Variant vPubkey Handle hoPubkey Boolean iSuccess String sPlainText Boolean iUsePrivateKey String sEncryptedStr 2 Handle hoRsa2 Variant vPrivKey Handle hoPrivKey String sOriginalStr String sTemp1 // This example assumes 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 // First load a public key object with a public key. // In this case, we'll load it from a file. Get Create (RefClass(cComChilkatPublicKey)) To hoPubkey If (Not(IsComObjectCreated(hoPubkey))) Begin Send CreateComObject of hoPubkey End Get ComLoadFromFile Of hoPubkey "qa_data/pem/rsa_public.pem" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoPubkey To sTemp1 Showln sTemp1 Procedure_Return End // RSA encryption is limited to small amounts of data. The limit // is typically a few hundred bytes and is based on the key size and // padding (OAEP vs. PKCS1_5). RSA encryption is typically used for // encrypting hashes or symmetric (bulk encryption algorithm) secret keys. Move "Time is an illusion. Lunchtime doubly so." To sPlainText // Import the public key to be used for encrypting. Get pvComObject of hoPubkey to vPubkey Get ComImportPublicKeyObj Of hoRsa vPubkey To iSuccess // To get OAEP padding, set the OaepPadding property: Set ComOaepPadding Of hoRsa To True // To use SHA1 or SHA-256, set the OaepHash property Set ComOaepHash Of hoRsa To "sha256" // for SHA1 -- Set ComOaepHash Of hoRsa To "sha1" // Indicate we'll want hex output Set ComEncodingMode Of hoRsa To "hex" // Encrypt.. Move False To iUsePrivateKey Get ComEncryptStringENC Of hoRsa sPlainText iUsePrivateKey To sEncryptedStr Showln sEncryptedStr // ------------------------------------------------- // Now decrypt with the matching private key. Get Create (RefClass(cComChilkatRsa)) To hoRsa2 If (Not(IsComObjectCreated(hoRsa2))) Begin Send CreateComObject of hoRsa2 End Get Create (RefClass(cComChilkatPrivateKey)) To hoPrivKey If (Not(IsComObjectCreated(hoPrivKey))) Begin Send CreateComObject of hoPrivKey End Get ComLoadEncryptedPem Of hoPrivKey "qa_data/pem/rsa_passwd.pem" "passwd" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoPrivKey To sTemp1 Showln sTemp1 Procedure_Return End Get pvComObject of hoPrivKey to vPrivKey Get ComImportPrivateKeyObj Of hoRsa2 vPrivKey To iSuccess // Make sure we have the same settings used for encryption. Set ComOaepPadding Of hoRsa2 To True Set ComEncodingMode Of hoRsa2 To "hex" Set ComOaepHash Of hoRsa2 To "sha1" Get ComDecryptStringENC Of hoRsa2 sEncryptedStr True To sOriginalStr Showln sOriginalStr End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.