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

Load Java KeyStore and Access Contents

See more Java KeyStore (JKS) Examples

Loads a Java keystore file and iterates over the contents. A Java keystore (.jks) file can contain one or more trusted root certificate entries and/or one or more private key entries. Each private key entry includes an associated certificate chain.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

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

$oJks = ObjCreate("Chilkat.JavaKeyStore")

;  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 there has been no tampering with the file.
$bSuccess = $oJks.LoadFile("jksFilePassword","/someDir/keyStore.jks")
If ($bSuccess = False) Then
    ConsoleWrite($oJks.LastErrorText & @CRLF)
    Exit
EndIf

;  Find out how many of each type of entry:
Local $iNumTrustedCerts = $oJks.NumTrustedCerts
Local $iNumPrivateKeys = $oJks.NumPrivateKeys

$oCert = ObjCreate("Chilkat.Cert")
Local $sAlias

;  For each trusted certificate, access it by getting
;  it as a cert object.  Also get the alias associated with the certificate.
ConsoleWrite("Trusted Certs:" & @CRLF)
Local $i = 0
While $i < $iNumTrustedCerts
    $bSuccess = $oJks.TrustedCertAt($i,$oCert)
    ConsoleWrite($oJks.GetTrustedCertAlias($i) & ": " & $oCert.SubjectDN & @CRLF)
    $i = $i + 1
Wend

$oPrivKey = ObjCreate("Chilkat.PrivateKey")
$oCertChain = ObjCreate("Chilkat.CertChain")

;  For each private key entry, get the private key and
;  the associated certificate chain.
;  Each private key is password protected.  Usually it is the same
;  password as used for the keyed digest of the entire JKS.  
;  However, this does not have to be.  The password is passed
;  here to handle the possibility of each private key requiring
;  a different password.
ConsoleWrite("Private Keys:" & @CRLF)
$i = 0
While $i < $iNumPrivateKeys
    $oJks.PrivateKeyAt("jksFilePassword",$i,$oPrivKey)
    ConsoleWrite($oJks.GetPrivateKeyAlias($i) & @CRLF)
    $oJks.CertChainAt($i,$oCertChain)

    ;  The 1st certificate in the chain is the one associated with the private key.
    $oCertChain.CertAt(0,$oCert)
    ConsoleWrite($oCert.SubjectDN & @CRLF)

    $i = $i + 1
Wend