Sample code for 30+ languages & platforms
Xbase++

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 Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oCertStore
LOCAL cArgNotUsed
LOCAL oCert
LOCAL nNumCerts
LOCAL i

nSuccess := 0

oCertStore := CreateObject("Chilkat.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.
cArgNotUsed := ""
nSuccess := oCertStore:OpenSmartcard(cArgNotUsed)
IF (nSuccess == 0)
    ? oCertStore:LastErrorText
    oCertStore:destroy()
    RETURN
ENDIF

oCert := CreateObject("Chilkat.Cert")

nNumCerts := oCertStore:NumCertificates
i := 0

DO WHILE i < nNumCerts
    //  Load the cert object with the Nth certificate found in the connected HSMs
    oCertStore:GetCert(i, oCert)
    ? Str(i) + ": " + oCert:SubjectCN
    i := i + 1
ENDDO

oCertStore:destroy()
oCert:destroy()