Sample code for 30+ languages & platforms
Dart Requires Chilkat v11.0.0+

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 Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  final jks = CkJavaKeyStore();

  final 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.
  try {
    jks.loadFile(jksPassword, '/someDir/keyStore.jks');
  } on ChilkatException catch (e) {
    print(e.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.
  final fac = CkFileAccess();
  try {
    fac.openForWrite('/pemFiles/caCerts.pem');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final numCerts = jks.numTrustedCerts;

  final cert = CkCert();
  var pem = '';

  // Iterate over the trusted certs, get the PEM for each,
  // and append it to the output file.
  var i = 0;
  while (i < numCerts) {
    jks.trustedCertAt(i, cert);

    // Get the certificate in PEM format.  
    pem = cert.exportCertPem();

    // Append the PEM string to the open file.
    try {
      fac.appendText(pem, 'utf-8');
    } on ChilkatException catch (e) {
      print(e.lastErrorText);
      return;
    }

    i++;
  }

  // Close the output file.
  fac.fileClose();

  print('Trusted certificates saved to PEM.');
}