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;
    }
    }