Sample code for 30+ languages & platforms
Objective-C

Convert CRL PEM to XML

See more PEM Examples

Loads a CRL (Certificate Revocation List) from the PEM file format and converts to XML to allow for visual examination and parsing.

Note: This example requires Chilkat v9.5.0.77 or greater.

Chilkat Objective-C Downloads

Objective-C
#import <CkoPem.h>
#import <CkoAsn.h>
#import <CkoXml.h>
#import <NSString.h>

BOOL success = NO;

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

// This example requires Chilkat v9.5.0.77 or greater.
CkoPem *pem = [[CkoPem alloc] init];

pem.VerboseLogging = YES;
success = [pem LoadPemFile: @"qa_data/crl/sampleCrl.pem" password: @"password_not_used"];
if (success != YES) {
    NSLog(@"%@",pem.LastErrorText);
    return;
}

int numCrls = [pem.NumCrls intValue];
int i = 0;

CkoAsn *asn = [[CkoAsn alloc] init];
CkoXml *xml = [[CkoXml alloc] init];
while (i < numCrls) {

    // Get the CRL as base64 (multi-line)
    NSString *crlBase64 = [pem GetEncodedItem: @"crl" itemSubType: @"" encoding: @"base64_mime" index: [NSNumber numberWithInt: i]];
    if (pem.LastMethodSuccess != YES) {
        NSLog(@"%@",pem.LastErrorText);
        return;
    }

    NSLog(@"%@",crlBase64);

    success = [asn LoadEncoded: crlBase64 encoding: @"base64"];
    if (success != YES) {
        NSLog(@"%@",asn.LastErrorText);
        return;
    }

    // Convert ASN.1 to XML and load into xml and re-emit for pretty printing..
    [xml LoadXml: [asn AsnToXml]];
    NSLog(@"%@",[xml GetXml]);

    // Use this online tool to generate parsing code from CRL XML: 
    // Generate Parsing Code from XML

    NSLog(@"%@",@"-------------------------------------");
    i = i + 1;
}