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

Iterate over Certificates on Connected Smart Cards and USB Tokens

See more Cert Store Examples

Demonstrates how to iterate over the certificates on connected smart cards and USB tokens.

Note: Requires Chilkat v10.1.2 or later.

Chilkat Unicode C++ Downloads

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

void ChilkatSample(void)
    {
    bool success = false;

    CkCertStoreW certStore;

    // Detects connected smart cards and USB tokens
    // and loads the certificate store object with the certificates found.
    // Works on Windows, MacOS, iOS, and Linux.
    // Note: If something is not detected, contact info@chilkatsoft.com
    // for help or for workarounds.
    const wchar_t *argNotUsed = L"";
    success = certStore.OpenSmartcard(argNotUsed);
    if (success == false) {
        wprintf(L"%s\n",certStore.lastErrorText());
        return;
    }

    CkCertW cert;

    int numCerts = certStore.get_NumCertificates();
    int i = 0;

    while (i < numCerts) {
        // Load the cert object with the Nth certificate found in the connected HSMs
        certStore.GetCert(i,cert);
        wprintf(L"%d: %s\n",i,cert.subjectCN());
        i = i + 1;
    }
    }