Sample code for 30+ languages & platforms
DataFlex

Load Certs from Java KeyStore into Trusted CA Roots

See more Java KeyStore (JKS) Examples

Demonstrates how to load a Java KeyStore containing CA root certificates that are to be trusted by the application. This can be done once at the beginning of an application, and then the trusted roots can be activated so that only these root CA certs are trusted by the application for any TLS connections.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Variant vJks
    Handle hoJks
    String sPassword
    Handle hoTroots
    Integer i
    Integer iNumCerts
    Variant vCacert
    Handle hoCacert
    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
    Set ComVerboseLogging Of hoJks To True

    Move "myPassword" To sPassword
    Get ComLoadFile Of hoJks sPassword "qa_data/jks/entrust_caCerts.jks" To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoJks To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatTrustedRoots)) To hoTroots
    If (Not(IsComObjectCreated(hoTroots))) Begin
        Send CreateComObject of hoTroots
    End
    Set ComVerboseLogging Of hoTroots To True

    Get pvComObject of hoJks to vJks
    Get ComAddJavaKeyStore Of hoTroots vJks To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoTroots To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Move 0 To i
    Get ComNumCerts Of hoTroots To iNumCerts
    While (i < iNumCerts)
        Get ComGetCert Of hoTroots i To vCacert
        If (IsComObject(vCacert)) Begin
            Get Create (RefClass(cComChilkatCert)) To hoCacert
            Set pvComObject Of hoCacert To vCacert
        End
        Get ComSubjectDN Of hoCacert To sTemp1
        Showln i ": " sTemp1
        Send Destroy of hoCacert
        Move (i + 1) To i
    Loop

    // Activate this specific set of trusted roots.
    Get ComActivate Of hoTroots To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoTroots To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Output:

    // 0: C=US, O=Entrust.net, OU=www.entrust.net/CPS incorp. by ref. (limits liab.), OU=(c) 1999 Entrust.net Limited, CN=Entrust.net Secure Server Certification Authority
    // 1: O=Entrust.net, OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), OU=(c) 1999 Entrust.net Limited, CN=Entrust.net Certification Authority (2048)
    // 2: C=US, O="Entrust, Inc.", OU=www.entrust.net/CPS is incorporated by reference, OU="(c) 2006 Entrust, Inc.", CN=Entrust Root Certification Authority


End_Procedure