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);