Sample code for 30+ languages & platforms
AutoIt

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