Sample code for 30+ languages & platforms
Swift

Iterate Keys and Certs in PEM

See more PEM Examples

Demonstrates how to access each of the private keys and certs contained within a PEM.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

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

    let pem = CkoPem()!

    // Load the PEM from a file.
    // If the PEM is encrypted, provide a password.  Otherwise pass an empty string for the password.
    var password: String? = "myPassword"
    success = pem.loadFile(path: "../myPemFiles/myPem.pem", password: password)
    if success == false {
        print("\(pem.lastErrorText!)")
        return
    }

    // Note: If the app already has the PEM pre-loaded in a string variable, then load it 
    // by calling LoadPem instead.  
    var pemContent: String? = "... the PEM contents ..."
    success = pem.load(pemContent: pemContent, password: password)
    // Check for success as before..

    // Iterate over the private keys.
    var numPrivateKeys: Int = pem.numPrivateKeys.intValue
    var i: Int = 0

    let privKey = CkoPrivateKey()!
    while i < numPrivateKeys {
        pem.privateKey(at: i, privKey: privKey)
        print("Private Key \(i) is \(privKey.bitLength.intValue) in length")
        i = i + 1
    }

    // Iterate over the certificates.
    let cert = CkoCert()!
    var numCerts: Int = pem.numCerts.intValue
    i = 0
    while i < numCerts {
        pem.cert(at: i, cert: cert)
        print("Certificate \(i) : \(cert.subjectDN!)")
        i = i + 1
    }


}