Sample code for 30+ languages & platforms
Objective-C

Add Private Key and Certificate to a PEM

See more PEM Examples

Demonstrates how to add certificates and private keys to a PEM.

Chilkat Objective-C Downloads

Objective-C
#import <CkoPem.h>
#import <CkoPrivateKey.h>
#import <CkoCert.h>
#import <NSString.h>

BOOL success = NO;

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

// The Chilkat PEM class was introduced in v9.5.0.49.  
// It requires the bundle to be unlocked, as shown above.
CkoPem *pem = [[CkoPem alloc] init];

// Add the private key found in alice.key to this PEM.
// 
CkoPrivateKey *privKey = [[CkoPrivateKey alloc] init];

success = [privKey LoadAnyFormatFile: @"qa_data/alice.key" password: @""];
if (success != YES) {
    NSLog(@"%@",privKey.LastErrorText);
    return;
}

// Add it to the PEM:
success = [pem AddPrivateKey: privKey];

// Add the certificate found in alice.crt to this PEM.
// 
CkoCert *cert = [[CkoCert alloc] init];

success = [cert LoadFromFile: @"qa_data/alice.crt"];
if (success != YES) {
    NSLog(@"%@",cert.LastErrorText);
    return;
}

// Add it to the PEM:
BOOL includeCertChain = NO;
success = [pem AddCert: cert includeChain: includeCertChain];

// Write the PEM containing the private key and certificate.
// The private key will be output in PKCS8 encrypted form.
// Certificates are never encrypted.

// This is the password that will be required to open and access the private key
// from the PEM we're about to write..
NSString *password = @"secret";
BOOL extendedAttrs = NO;
BOOL noKeys = NO;
BOOL noCerts = NO;
BOOL noCaCerts = NO;
NSString *encryptAlg = @"aes128";

NSString *pemStr = [pem ToPemEx: extendedAttrs noKeys: noKeys noCerts: noCerts noCaCerts: noCaCerts encryptAlg: encryptAlg password: password];
NSLog(@"%@",pemStr);