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
(Swift 3,4,5...) 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.
func chilkatTest() { // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. let rsa = CkoRsa()! // First load a public key object with a public key. // In this case, we'll load it from a file. let pubkey = CkoPublicKey()! var success: Bool = pubkey.load(fromFile: "qa_data/pem/rsa_public.pem") if success != true { print("\(pubkey.lastErrorText!)") return } // 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. var plainText: String? = "Time is an illusion. Lunchtime doubly so." // Import the public key to be used for encrypting. success = rsa.importPublicKeyObj(pubkey) // To get OAEP padding, set the OaepPadding property: rsa.oaepPadding = true // To use SHA1 or SHA-256, set the OaepHash property rsa.oaepHash = "sha256" // for SHA1 -- rsa.oaepHash = "sha1" // Indicate we'll want hex output rsa.encodingMode = "hex" // Encrypt.. var usePrivateKey: Bool = false var encryptedStr: String? = rsa.encryptStringENC(plainText, bUsePrivateKey: usePrivateKey) print("\(encryptedStr!)") // ------------------------------------------------- // Now decrypt with the matching private key. let rsa2 = CkoRsa()! let privKey = CkoPrivateKey()! success = privKey.loadEncryptedPem("qa_data/pem/rsa_passwd.pem", password: "passwd") if success != true { print("\(privKey.lastErrorText!)") return } success = rsa2.importPrivateKeyObj(privKey) // Make sure we have the same settings used for encryption. rsa2.oaepPadding = true rsa2.encodingMode = "hex" rsa2.oaepHash = "sha1" var originalStr: String? = rsa2.decryptStringENC(encryptedStr, bUsePrivateKey: true) print("\(originalStr!)") } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.