Sample code for 30+ languages & platforms
Lianja

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 Lianja Downloads

Lianja
llSuccess = .F.

loCertStore = createobject("CkCertStore")

lcThumbprint = "12c1dd8015f3f03f7b1fa619dc24e2493ca8b4b2"

// This opens the Current User certificate store on Windows,
// On MacOS and iOS it opens the default Keychain.
llBReadOnly = .T.
llSuccess = loCertStore.OpenCurrentUserStore(llBReadOnly)
if (llSuccess = .F.) then
    ? loCertStore.LastErrorText
    release loCertStore
    return
endif

// Find the certificate having a specific SHA1 thumbprint.
loJson = createobject("CkJsonObject")
loJson.UpdateString("thumbprint",lcThumbprint)

loCert = createobject("CkCert")
llSuccess = loCertStore.FindCert(loJson,loCert)
if (llSuccess = .F.) then
    ? "Failed to find the certificate."
    release loCertStore
    release loJson
    release loCert
    return
endif

? "Found: " + loCert.SubjectCN

// -------------------------------------------------------------------------------------
// Alternatively, one could load a certificate store object with certs from a PEM file,
// and do the same thing..
loCertStorePem = createobject("CkCertStore")

llSuccess = loCertStorePem.LoadPemFile("pemFiles/certificates.pem")
if (llSuccess = .F.) then
    ? loCertStorePem.LastErrorText
    release loCertStore
    release loJson
    release loCert
    release loCertStorePem
    return
endif

llSuccess = loCertStore.FindCert(loJson,loCert)
if (llSuccess = .F.) then
    ? "Failed to find the certificate."
    release loCertStore
    release loJson
    release loCert
    release loCertStorePem
    return
endif

? "Found: " + loCert.SubjectCN


release loCertStore
release loJson
release loCert
release loCertStorePem