Am I right that "minidrivers" which are specific to different national or regional smart cards (eg PIV/CAC, Brazil, Estonia, Sweden, France, etc) are needed for digital signatures (RSA)?

Can the right minidriver be installed automatically upon insertion of a smart card? That is, install multiple mini-drivers on the PC and the right one is automatically used depending on the smart card that is inserted.

Does the CCID standard for USB Smart Cards provides a common signing API for apps?

I'm trying to make a single software app that will work with multiple cards for signing.

1 Answer 1


Minidrivers abstract the actual smart cards so that applications can all talk to them using a common interface. Your app doesn't even need to know nor care about which smartcard it's talking to, or whether it's really a smartcard or a big networked HSM, assuming it accesses the card through the standard interface and not talk directly to the card. Here's a good example from Microsoft themselves, as you can see the RsaCryptoServiceProvider can be used the same way no matter which card is behind it, because the minidriver provides a Cryptographic Service Provider that abstracts the card.

The right minidriver should automatically be installed via Windows Update, assuming the manufacturer submitted their minidriver there. I'm not sure which manufacturers bothered to do this in practice though. But yes, in theory nothing prevents you from bundling a lot of minidrivers with you app and installing them in advance.

CCID is a standard to talk to USB smart card readers, its sole job is to relay APDUs (commands) between the computer and the smart card reader. Basically the minidriver translates from high-level crypto functions into low-level APDUs (which are card-specific) and then passes them on to the reader via CCID.

  • Thanks. I've heard from others the same issue that you mention--that the smart card issuers are not bothering to submit their minidrivers to Microsoft Update. Sigh.
    – Larry K
    Aug 20, 2016 at 17:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .