Sample code for 30+ languages & platforms
DataFlex

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 DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Variant vCert
Store    Handle hoCertStore
    String sArgNotUsed
    Variant vCert
    Handle hoCert
    Integer iNumCerts
    Integer i
    String sTemp1

    Move False To iSuccess

    Get Create (RefClass(cComChilkatCertStore)) To hoCertStore
    If (Not(IsComObjectCreated(hoCertStore))) Begin
        Send CreateComObject of hoCertStore
    End

    // 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.
    Move "" To sArgNotUsed
    Get ComOpenSmartcard Of hoCertStore sArgNotUsed To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoCertStore To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatCert)) To hoCert
    If (Not(IsComObjectCreated(hoCert))) Begin
        Send CreateComObject of hoCert
    End

    Get ComNumCertificates Of hoCertStore To iNumCerts
    Move 0 To i

    While (i < iNumCerts)
        // Load the cert object with the Nth certificate found in the connected HSMs
        Get pvComObject of hoCert to vCert
        Get ComGetCert Of hoCertStore i vCert To iSuccess
        Get ComSubjectCN Of hoCert To sTemp1
        Showln i ": " sTemp1
        Move (i + 1) To i
    Loop



End_Procedure