Sample code for 30+ languages & platforms
Swift

Encrypt with Chilkat, Decrypt with OpenSSL

See more OpenSSL Examples

Demonstrates 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

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    // This example requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    let rsa = CkoRsa()!

    // 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.
    let key = CkoPublicKey()!

    // Load an RSA public key from a PEM file:
    success = key.load(fromFile: "qa_data/pem/VP_Public.pem")
    if success == false {
        print("\(key.lastErrorText!)")
        return
    }

    // Load the public key into the RSA object.
    success = rsa.usePublicKey(pubKey: key)
    if success == false {
        print("\(rsa.lastErrorText!)")
        return
    }

    var strToEncrypt: String? = "00000000;XYZ2-3BHQ-ABCD-MMVV;6MY1-GHJK-9LRR;0"

    // The LittleEndian property is false by default, but it is set here
    // anyway to show that LittleEndian byte ordering is required for OpenSSL compatibility.
    rsa.littleEndian = false

    var usePrivateKey: Bool = false
    var encryptedBytes: NSData
    encryptedBytes = rsa.encryptString(str: strToEncrypt, bUsePrivateKey: usePrivateKey)
    if rsa.lastMethodSuccess == false {
        print("\(rsa.lastErrorText!)")
        return
    }

    // The OpenSSL command to decrypt would be this:
    // openssl rsautl -decrypt -inkey VP_Private.pem -in rsa_encrypted.bin -out original.txt

    let fac = CkoFileAccess()!
    success = fac.writeEntireFile(path: "qa_output/rsa_encrypted.bin", fileData: encryptedBytes)
    if success == false {
        print("\(fac.lastErrorText!)")
        return
    }

    print("RSA Encryption Succeeded.")

}