Lianja
Lianja
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 Lianja Downloads
llSuccess = .F.
// 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.
loJks = createobject("CkJavaKeyStore")
lcPassword = "secret"
llSuccess = loJks.LoadFile(lcPassword,"qa_data/jks/test_secret.jks")
if (llSuccess = .F.) then
? loJks.LastErrorText
release loJks
return
endif
// Make sure we have a private key.
if (loJks.NumPrivateKeys < 1) then
? "No private key available."
release loJks
return
endif
// -------------------------------------------------------------------------
// Get the certificate chain associated with the 1st (and probably only) private key in the JKS.
loChain = createobject("CkCertChain")
llSuccess = loJks.CertChainAt(0,loChain)
if (llSuccess = .F.) then
? loJks.LastErrorText
release loJks
release loChain
return
endif
loCert = createobject("CkCert")
llSuccess = loChain.CertAt(0,loCert)
if (llSuccess = .F.) then
? loChain.LastErrorText
release loJks
release loChain
release loCert
return
endif
// Verify again that this cert has a private key.
if (loCert.HasPrivateKey() <> .T.) then
? "Certificate has no associated private key."
release loJks
release loChain
release loCert
return
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..
loCrypt = createobject("CkCrypt2")
llSuccess = loCrypt.SetSigningCert(loCert)
if (llSuccess = .F.) then
? loCrypt.LastErrorText
release loJks
release loChain
release loCert
release loCrypt
return
endif
// ...
// ...
release loJks
release loChain
release loCert
release loCrypt