Sample code for 30+ languages & platforms
Unicode C++

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 Unicode C++ Downloads

Unicode C++
#include <CkCertStoreW.h>
#include <CkJsonObjectW.h>
#include <CkCertW.h>

void ChilkatSample(void)
    {
    bool success = false;

    CkCertStoreW certStore;

    const wchar_t *thumbprint = L"12c1dd8015f3f03f7b1fa619dc24e2493ca8b4b2";

    //  This opens the Current User certificate store on Windows,
    //  On MacOS and iOS it opens the default Keychain.
    bool bReadOnly = true;
    success = certStore.OpenCurrentUserStore(bReadOnly);
    if (success == false) {
        wprintf(L"%s\n",certStore.lastErrorText());
        return;
    }

    //  Find the certificate having a specific SHA1 thumbprint.
    CkJsonObjectW json;
    json.UpdateString(L"thumbprint",thumbprint);

    CkCertW cert;
    success = certStore.FindCert(json,cert);
    if (success == false) {
        wprintf(L"Failed to find the certificate.\n");
        return;
    }

    wprintf(L"Found: %s\n",cert.subjectCN());

    //  -------------------------------------------------------------------------------------
    //  Alternatively, one could load a certificate store object with certs from a PEM file,
    //  and do the same thing..
    CkCertStoreW certStorePem;

    success = certStorePem.LoadPemFile(L"pemFiles/certificates.pem");
    if (success == false) {
        wprintf(L"%s\n",certStorePem.lastErrorText());
        return;
    }

    success = certStore.FindCert(json,cert);
    if (success == false) {
        wprintf(L"Failed to find the certificate.\n");
        return;
    }

    wprintf(L"Found: %s\n",cert.subjectCN());
    }