PowerBuilder
PowerBuilder
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 PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_CertStore
string ls_Thumbprint
integer li_BReadOnly
oleobject loo_Json
oleobject loo_Cert
oleobject loo_CertStorePem
li_Success = 0
loo_CertStore = create oleobject
li_rc = loo_CertStore.ConnectToNewObject("Chilkat.CertStore")
if li_rc < 0 then
destroy loo_CertStore
MessageBox("Error","Connecting to COM object failed")
return
end if
ls_Thumbprint = "12c1dd8015f3f03f7b1fa619dc24e2493ca8b4b2"
// This opens the Current User certificate store on Windows,
// On MacOS and iOS it opens the default Keychain.
li_BReadOnly = 1
li_Success = loo_CertStore.OpenCurrentUserStore(li_BReadOnly)
if li_Success = 0 then
Write-Debug loo_CertStore.LastErrorText
destroy loo_CertStore
return
end if
// Find the certificate having a specific SHA1 thumbprint.
loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject")
loo_Json.UpdateString("thumbprint",ls_Thumbprint)
loo_Cert = create oleobject
li_rc = loo_Cert.ConnectToNewObject("Chilkat.Cert")
li_Success = loo_CertStore.FindCert(loo_Json,loo_Cert)
if li_Success = 0 then
Write-Debug "Failed to find the certificate."
destroy loo_CertStore
destroy loo_Json
destroy loo_Cert
return
end if
Write-Debug "Found: " + loo_Cert.SubjectCN
// -------------------------------------------------------------------------------------
// Alternatively, one could load a certificate store object with certs from a PEM file,
// and do the same thing..
loo_CertStorePem = create oleobject
li_rc = loo_CertStorePem.ConnectToNewObject("Chilkat.CertStore")
li_Success = loo_CertStorePem.LoadPemFile("pemFiles/certificates.pem")
if li_Success = 0 then
Write-Debug loo_CertStorePem.LastErrorText
destroy loo_CertStore
destroy loo_Json
destroy loo_Cert
destroy loo_CertStorePem
return
end if
li_Success = loo_CertStore.FindCert(loo_Json,loo_Cert)
if li_Success = 0 then
Write-Debug "Failed to find the certificate."
destroy loo_CertStore
destroy loo_Json
destroy loo_Cert
destroy loo_CertStorePem
return
end if
Write-Debug "Found: " + loo_Cert.SubjectCN
destroy loo_CertStore
destroy loo_Json
destroy loo_Cert
destroy loo_CertStorePem