Sample code for 30+ languages & platforms
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 C++ Downloads

C++
#include <CkCertStore.h>
#include <CkJsonObject.h>
#include <CkCert.h>

void ChilkatSample(void)
    {
    bool success = false;

    CkCertStore certStore;

    const char *thumbprint = "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) {
        std::cout << certStore.lastErrorText() << "\r\n";
        return;
    }

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

    CkCert cert;
    success = certStore.FindCert(json,cert);
    if (success == false) {
        std::cout << "Failed to find the certificate." << "\r\n";
        return;
    }

    std::cout << "Found: " << cert.subjectCN() << "\r\n";

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

    success = certStorePem.LoadPemFile("pemFiles/certificates.pem");
    if (success == false) {
        std::cout << certStorePem.lastErrorText() << "\r\n";
        return;
    }

    success = certStore.FindCert(json,cert);
    if (success == false) {
        std::cout << "Failed to find the certificate." << "\r\n";
        return;
    }

    std::cout << "Found: " << cert.subjectCN() << "\r\n";
    }