Sample code for 30+ languages & platforms
DataFlex

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

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoJks
    String sJksPassword
    Handle hoFac
    Integer iNumCerts
    Variant vCert
    Handle hoCert
    String sPem
    Integer i
    String sTemp1

    Move False To iSuccess

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

    Get Create (RefClass(cComChilkatJavaKeyStore)) To hoJks
    If (Not(IsComObjectCreated(hoJks))) Begin
        Send CreateComObject of hoJks
    End

    Move "myJksPassword" To sJksPassword

    // 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.
    Get ComLoadFile Of hoJks sJksPassword "/someDir/keyStore.jks" To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoJks To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // 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.
    Get Create (RefClass(cComCkFileAccess)) To hoFac
    If (Not(IsComObjectCreated(hoFac))) Begin
        Send CreateComObject of hoFac
    End
    Get ComOpenForWrite Of hoFac "/pemFiles/caCerts.pem" To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoFac To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComNumTrustedCerts Of hoJks To iNumCerts

    Get Create (RefClass(cComChilkatCert)) To hoCert
    If (Not(IsComObjectCreated(hoCert))) Begin
        Send CreateComObject of hoCert
    End

    // Iterate over the trusted certs, get the PEM for each,
    // and append it to the output file.
    Move 0 To i
    While (i < iNumCerts)
        Get pvComObject of hoCert to vCert
        Get ComTrustedCertAt Of hoJks i vCert To iSuccess

        // Get the certificate in PEM format.  
        Get ComExportCertPem Of hoCert To sPem

        // Append the PEM string to the open file.
        Get ComAppendText Of hoFac sPem "utf-8" To iSuccess
        If (iSuccess <> True) Begin
            Get ComLastErrorText Of hoFac To sTemp1
            Showln sTemp1
            Procedure_Return
        End

        Move (i + 1) To i
    Loop

    // Close the output file.
    Send ComFileClose To hoFac

    Showln "Trusted certificates saved to PEM."


End_Procedure