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

Get the Certificate with Private Key from a Java KeyStore

See more Java KeyStore (JKS) Examples

Load a Chilkat certificate object from a Java KeyStore.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

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

;  Most of the time a .jks contains one certificate with it's associated private key.
;  (Similar to how a .pfx/.p12 usually contains a particular certificate with private key.)
;  This example demonstrates how to get the certificate with private key such that it can be used
;  by other Chilkat classes wherever a cert w/ private key is needed.
$oJks = ObjCreate("Chilkat.JavaKeyStore")
Local $sPassword = "secret"
$bSuccess = $oJks.LoadFile($sPassword,"qa_data/jks/test_secret.jks")
If ($bSuccess = False) Then
    ConsoleWrite($oJks.LastErrorText & @CRLF)
    Exit
EndIf

;  Make sure we have a private key.
If ($oJks.NumPrivateKeys < 1) Then
    ConsoleWrite("No private key available." & @CRLF)
    Exit
EndIf

;  -------------------------------------------------------------------------
;  Get the certificate chain associated with the 1st (and probably only) private key in the JKS.

$oChain = ObjCreate("Chilkat.CertChain")
$bSuccess = $oJks.CertChainAt(0,$oChain)
If ($bSuccess = False) Then
    ConsoleWrite($oJks.LastErrorText & @CRLF)
    Exit
EndIf

$oCert = ObjCreate("Chilkat.Cert")
$bSuccess = $oChain.CertAt(0,$oCert)
If ($bSuccess = False) Then
    ConsoleWrite($oChain.LastErrorText & @CRLF)
    Exit
EndIf

;  Verify again that this cert has a private key.
If ($oCert.HasPrivateKey() <> True) Then
    ConsoleWrite("Certificate has no associated private key." & @CRLF)
    Exit
EndIf

;  We now have the cert object with it's associated private key, and it can be used in other Chilkat classes where needed.
;  For example..

$oCrypt = ObjCreate("Chilkat.Crypt2")
$bSuccess = $oCrypt.SetSigningCert($oCert)
If ($bSuccess = False) Then
    ConsoleWrite($oCrypt.LastErrorText & @CRLF)
    Exit
EndIf

;  ...
;  ...