DataFlex
DataFlex
Download and Trust the DigiCert Global Root CA
See more Certificates Examples
Demonstrates how to download a root certificate and trust it.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
String sCertUrl
Handle hoHttp
Variant vBdCert
Handle hoBdCert
Variant vCert
Handle hoCert
String sCertPath
Handle hoTroots
String sTemp1
Move False To iSuccess
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// In this example, the URLs for the DigiCert root CA certs are available at this web page:
// https://www.digicert.com/digicert-root-certificates.htm
// This example downloads the "DigiCert Global Root G3"
// Valid until: 15/Jan/2038
// Serial #: 05:55:56:BC:F2:5E:A4:35:35:C3:A4:0F:D5:AB:45:72
// Thumbprint: 7E04DE896A3E666D00E687D33FFAD93BE83D349E
Move "https://dl.cacerts.digicert.com/DigiCertGlobalRootG3.crt" To sCertUrl
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
Get Create (RefClass(cComChilkatBinData)) To hoBdCert
If (Not(IsComObjectCreated(hoBdCert))) Begin
Send CreateComObject of hoBdCert
End
Get pvComObject of hoBdCert to vBdCert
Get ComDownloadBd Of hoHttp sCertUrl vBdCert To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
// Load it into a Chilkat cert object.
Get Create (RefClass(cComChilkatCert)) To hoCert
If (Not(IsComObjectCreated(hoCert))) Begin
Send CreateComObject of hoCert
End
Get pvComObject of hoBdCert to vBdCert
Get ComLoadFromBd Of hoCert vBdCert To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoCert To sTemp1
Showln sTemp1
Procedure_Return
End
// Examine the common name,serial, and thumbprint:
Get ComSubjectCN Of hoCert To sTemp1
Showln "CN: " sTemp1
Get ComSerialNumber Of hoCert To sTemp1
Showln "Serial: " sTemp1
Get ComSha1Thumbprint Of hoCert To sTemp1
Showln "Thumbprint: " sTemp1
// Output from the above:
// CN: DigiCert Global Root G3
// Serial: 055556BCF25EA43535C3A40FD5AB4572
// Thumbprint: 7E04DE896A3E666D00E687D33FFAD93BE83D349E
// If desired, the certificate can be saved to a local file so it does not need
// to be downloaded from the website every time.
Move "qa_data/certs/DigiCertGlobalRootG3.crt" To sCertPath
Get ComWriteFile Of hoBdCert sCertPath To iSuccess
// To load the cert from a file...
Get ComLoadFromFile Of hoCert sCertPath To iSuccess
// Do the following to add the cert to the collection of trusted roots
// for this application. (Note: The trust is not persisted. Each time the
// application runs, it should load the cert (from whatever source, whether it is
// a file, a database,etc.) and do the following:
Get Create (RefClass(cComChilkatTrustedRoots)) To hoTroots
If (Not(IsComObjectCreated(hoTroots))) Begin
Send CreateComObject of hoTroots
End
Get pvComObject of hoCert to vCert
Get ComAddCert Of hoTroots vCert To iSuccess
Get ComActivate Of hoTroots To iSuccess
Get ComSubjectCN Of hoCert To sTemp1
Showln sTemp1 " is now trusted for this run of this application."
End_Procedure