Visual FoxPro
Visual FoxPro
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 Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loJks
LOCAL lcPassword
LOCAL loChain
LOCAL loCert
LOCAL loCrypt
lnSuccess = 0
* 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('Chilkat.JavaKeyStore')
lcPassword = "secret"
lnSuccess = loJks.LoadFile(lcPassword,"qa_data/jks/test_secret.jks")
IF (lnSuccess = 0) THEN
? loJks.LastErrorText
RELEASE loJks
CANCEL
ENDIF
* Make sure we have a private key.
IF (loJks.NumPrivateKeys < 1) THEN
? "No private key available."
RELEASE loJks
CANCEL
ENDIF
* -------------------------------------------------------------------------
* Get the certificate chain associated with the 1st (and probably only) private key in the JKS.
loChain = CreateObject('Chilkat.CertChain')
lnSuccess = loJks.CertChainAt(0,loChain)
IF (lnSuccess = 0) THEN
? loJks.LastErrorText
RELEASE loJks
RELEASE loChain
CANCEL
ENDIF
loCert = CreateObject('Chilkat.Cert')
lnSuccess = loChain.CertAt(0,loCert)
IF (lnSuccess = 0) THEN
? loChain.LastErrorText
RELEASE loJks
RELEASE loChain
RELEASE loCert
CANCEL
ENDIF
* Verify again that this cert has a private key.
IF (loCert.HasPrivateKey() <> 1) THEN
? "Certificate has no associated private key."
RELEASE loJks
RELEASE loChain
RELEASE loCert
CANCEL
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('Chilkat.Crypt2')
lnSuccess = loCrypt.SetSigningCert(loCert)
IF (lnSuccess = 0) THEN
? loCrypt.LastErrorText
RELEASE loJks
RELEASE loChain
RELEASE loCert
RELEASE loCrypt
CANCEL
ENDIF
* ...
* ...
RELEASE loJks
RELEASE loChain
RELEASE loCert
RELEASE loCrypt