Sample code for 30+ languages & platforms
Objective-C

Convert Java KeyStore to PEM

See more Java KeyStore (JKS) Examples

Loads a Java keystore file and saves the trusted certificate entries to a PEM file.

Chilkat Objective-C Downloads

Objective-C
#import <CkoJavaKeyStore.h>
#import <NSString.h>
#import <CkoFileAccess.h>
#import <CkoCert.h>

BOOL success = NO;

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

CkoJavaKeyStore *jks = [[CkoJavaKeyStore alloc] init];

NSString *jksPassword = @"myJksPassword";

// Load the Java keystore from a file.  The JKS file password is used
// to verify the keyed digest that is found at the very end of the keystore.
// It verifies that the keystore has not been modified.
success = [jks LoadFile: jksPassword path: @"/someDir/keyStore.jks"];
if (success == NO) {
    NSLog(@"%@",jks.LastErrorText);
    return;
}

// Open/create the output PEM file. 
// This example uses Chilkat's file access class for writing the output file.
// You may replace the file I/O lines of code with whatever is most convenient for you.
CkoFileAccess *fac = [[CkoFileAccess alloc] init];
success = [fac OpenForWrite: @"/pemFiles/caCerts.pem"];
if (success == NO) {
    NSLog(@"%@",fac.LastErrorText);
    return;
}

int numCerts = [jks.NumTrustedCerts intValue];

CkoCert *cert = [[CkoCert alloc] init];
NSString *pem = 0;

// Iterate over the trusted certs, get the PEM for each,
// and append it to the output file.
int i = 0;
while (i < numCerts) {
    [jks TrustedCertAt: [NSNumber numberWithInt: i] cert: cert];

    // Get the certificate in PEM format.  
    pem = [cert ExportCertPem];

    // Append the PEM string to the open file.
    success = [fac AppendText: pem charset: @"utf-8"];
    if (success != YES) {
        NSLog(@"%@",fac.LastErrorText);
        return;
    }

    i = i + 1;
}

// Close the output file.
[fac FileClose];

NSLog(@"%@",@"Trusted certificates saved to PEM.");