Sample code for 30+ languages & platforms
Objective-C

Load PKCS12 / PFX and Access Contents

See more PFX/P12 Examples

Loads a PKCS12 / PFX file and iterates over the contents which include private keys and certificates.

Chilkat Objective-C Downloads

Objective-C
#import <CkoPfx.h>
#import <CkoPrivateKey.h>
#import <CkoCert.h>

BOOL success = NO;

CkoPfx *pfx = [[CkoPfx alloc] init];

// Load the PKCS12 from a file
success = [pfx LoadPfxFile: @"/someDir/my.p12" password: @"pfxFilePassword"];
if (success == NO) {
    NSLog(@"%@",pfx.LastErrorText);
    return;
}

int numPrivateKeys = [pfx.NumPrivateKeys intValue];

CkoPrivateKey *privKey = [[CkoPrivateKey alloc] init];

NSLog(@"%@",@"Private Keys:");

int i = 0;
while (i < numPrivateKeys) {
    [pfx PrivateKeyAt: [NSNumber numberWithInt: i] privKey: privKey];

    // Do something with the private key ...

    i = i + 1;
}

CkoCert *cert = [[CkoCert alloc] init];

int numCerts = [pfx.NumCerts intValue];

NSLog(@"%@",@"Certs:");
i = 0;
while (i < numCerts) {
    [pfx CertAt: [NSNumber numberWithInt: i] cert: cert];
    NSLog(@"%@",cert.SubjectDN);

    // If the certificate has a private key (one of the private keys within the PFX)
    // then it can also be obtained via the certificate object:
    if ([cert HasPrivateKey] == YES) {

        NSLog(@"%@",@"Has private key!");

        success = [cert GetPrivateKey: privKey];
        // ...

    }

    i = i + 1;
}