Sample code for 30+ languages & platforms
Swift

RSA Encrypt Randomly Generated AES Key

See more RSA Examples

Demonstrates how to RSA encrypt a randomly generated AES key.

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.

    // First generate a 256-bit AES key (32 bytes).
    let prng = CkoPrng()!
    let bdAesKey = CkoBinData()!
    success = prng.genRandomBd(numBytes: 32, bd: bdAesKey)

    // Use a public key from a certificate for RSA encryption.
    let cert = CkoCert()!

    success = cert.load(fromFile: "qa_data/pem/mf_public_rsa.pem")
    if success == false {
        print("\(cert.lastErrorText!)")
        return
    }

    let pubKey = CkoPublicKey()!
    cert.getPublicKey(pubKey: pubKey)

    let rsa = CkoRsa()!
    success = rsa.usePublicKey(pubKey: pubKey)
    if success == false {
        print("\(rsa.lastErrorText!)")
        return
    }

    // RSA encrypt our 32-byte AES key.
    // The contents of bdAesKey are replaced with result of the RSA encryption.
    success = rsa.encryptBd(bd: bdAesKey, usePrivateKey: false)
    if success == false {
        print("\(rsa.lastErrorText!)")
        return
    }

    // Return the result as a base64 string
    var encryptedAesKey: String? = bdAesKey.getEncoded(encoding: "base64")

    print("encrypted AES key = \(encryptedAesKey!)")

}