Visual FoxPro
Visual FoxPro
Use a Custom Set of Trusted Root Certificates
See more Certificates Examples
Demonstrates how to build a set of trusted root certificates to be used globally by all Chilkat classes.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loTrustedRoots
LOCAL loZip
LOCAL loEntry
LOCAL lcPemStr
LOCAL loCert
LOCAL lcPattern
LOCAL lnBHasMoreEntries
lnSuccess = 0
* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loTrustedRoots = CreateObject('Chilkat.TrustedRoots')
* Indicate that we will NOT trust any pre-installed certificates on the system.
loTrustedRoots.TrustSystemCaRoots = 0
* Thawte is a certificate authority that provides a .zip download of their
* root CA certificates: https://www.thawte.com/roots/index.html
* The direct download link is: https://www.verisign.com/support/thawte-roots.zip
* Note: The above URLs are valid at the time of writing this example (29-May-2015).
* Assuming the .zip has already been downloaded, open it and load each .pem file into
* our trusted roots object.
loZip = CreateObject('Chilkat.Zip')
* Open a .zip containing PEM files, among other things..
lnSuccess = loZip.OpenZip("qa_data/certs/thawte-roots.zip")
IF (lnSuccess = 0) THEN
? loZip.LastErrorText
RELEASE loTrustedRoots
RELEASE loZip
CANCEL
ENDIF
loEntry = CreateObject('Chilkat.ZipEntry')
loCert = CreateObject('Chilkat.Cert')
lcPattern = "*.pem"
lnBHasMoreEntries = loZip.EntryMatching(lcPattern,loEntry)
DO WHILE lnBHasMoreEntries = 1
? "Entry: " + loEntry.FileName
* Get the PEM of the CA cert:
lcPemStr = loEntry.UnzipToString(0,"utf-8")
* Load it into a certificate object:
lnSuccess = loCert.LoadPem(lcPemStr)
IF (lnSuccess <> 1) THEN
? loCert.LastErrorText
ENDIF
* Add it to the trusted roots.
loTrustedRoots.AddCert(loCert)
lnBHasMoreEntries = loEntry.GetNextMatch(lcPattern)
ENDDO
* Activate the trusted roots globally for all Chilkat objects.
* This call really shouldn't fail, so we're not checking the return value.
lnSuccess = loTrustedRoots.Activate()
RELEASE loTrustedRoots
RELEASE loZip
RELEASE loEntry
RELEASE loCert