Visual FoxPro
Visual FoxPro
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 Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loJks
LOCAL lnNumTrustedCerts
LOCAL lnNumPrivateKeys
LOCAL loCert
LOCAL lcAlias
LOCAL i
LOCAL loPrivKey
LOCAL loCertChain
lnSuccess = 0
* This requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loJks = CreateObject('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.
lnSuccess = loJks.LoadFile("jksFilePassword","/someDir/keyStore.jks")
IF (lnSuccess = 0) THEN
? loJks.LastErrorText
RELEASE loJks
CANCEL
ENDIF
* Find out how many of each type of entry:
lnNumTrustedCerts = loJks.NumTrustedCerts
lnNumPrivateKeys = loJks.NumPrivateKeys
loCert = CreateObject('Chilkat.Cert')
* For each trusted certificate, access it by getting
* it as a cert object. Also get the alias associated with the certificate.
? "Trusted Certs:"
i = 0
DO WHILE i < lnNumTrustedCerts
lnSuccess = loJks.TrustedCertAt(i,loCert)
? loJks.GetTrustedCertAlias(i) + ": " + loCert.SubjectDN
i = i + 1
ENDDO
loPrivKey = CreateObject('Chilkat.PrivateKey')
loCertChain = CreateObject('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.
? "Private Keys:"
i = 0
DO WHILE i < lnNumPrivateKeys
loJks.PrivateKeyAt("jksFilePassword",i,loPrivKey)
? loJks.GetPrivateKeyAlias(i)
loJks.CertChainAt(i,loCertChain)
* The 1st certificate in the chain is the one associated with the private key.
loCertChain.CertAt(0,loCert)
? loCert.SubjectDN
i = i + 1
ENDDO
RELEASE loJks
RELEASE loCert
RELEASE loPrivKey
RELEASE loCertChain