DataFlex
DataFlex
Find a Certificate by it's SHA-1 Thumbprint
See more Cert Store Examples
Finds a certificate by it's SHA-1 hex thumbprint.Note: This example requires Chilkat v10.1.2 or later.
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Variant vCert
Store Handle hoCertStore
String sThumbprint
Boolean iBReadOnly
Variant vJson
Handle hoJson
Variant vCert
Handle hoCert
Handle hoCertStorePem
String sTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatCertStore)) To hoCertStore
If (Not(IsComObjectCreated(hoCertStore))) Begin
Send CreateComObject of hoCertStore
End
Move "12c1dd8015f3f03f7b1fa619dc24e2493ca8b4b2" To sThumbprint
// This opens the Current User certificate store on Windows,
// On MacOS and iOS it opens the default Keychain.
Move True To iBReadOnly
Get ComOpenCurrentUserStore Of hoCertStore iBReadOnly To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoCertStore To sTemp1
Showln sTemp1
Procedure_Return
End
// Find the certificate having a specific SHA1 thumbprint.
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Get ComUpdateString Of hoJson "thumbprint" sThumbprint To iSuccess
Get Create (RefClass(cComChilkatCert)) To hoCert
If (Not(IsComObjectCreated(hoCert))) Begin
Send CreateComObject of hoCert
End
Get pvComObject of hoJson to vJson
Get pvComObject of hoCert to vCert
Get ComFindCert Of hoCertStore vJson vCert To iSuccess
If (iSuccess = False) Begin
Showln "Failed to find the certificate."
Procedure_Return
End
Get ComSubjectCN Of hoCert To sTemp1
Showln "Found: " sTemp1
// -------------------------------------------------------------------------------------
// Alternatively, one could load a certificate store object with certs from a PEM file,
// and do the same thing..
Get Create (RefClass(cComChilkatCertStore)) To hoCertStorePem
If (Not(IsComObjectCreated(hoCertStorePem))) Begin
Send CreateComObject of hoCertStorePem
End
Get ComLoadPemFile Of hoCertStorePem "pemFiles/certificates.pem" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoCertStorePem To sTemp1
Showln sTemp1
Procedure_Return
End
Get pvComObject of hoJson to vJson
Get pvComObject of hoCert to vCert
Get ComFindCert Of hoCertStore vJson vCert To iSuccess
If (iSuccess = False) Begin
Showln "Failed to find the certificate."
Procedure_Return
End
Get ComSubjectCN Of hoCert To sTemp1
Showln "Found: " sTemp1
End_Procedure