Precizní a jednoduchá specifikace neexistuje z prostého důvodu - mnoho historického balastu a zpětná kompatibilita.
Tento balast má odstranit právě v článku zmíněné PKCS#11, což je relativně rozumné C API. Akorát musí výrobce dodat .dll/.so implementující PKCS#11 rozhraní pro daný token, smartkartu nebo HSM. Pak lze smartkartu používat z běžných jazyků jako C, Java, command-line nástrojů nebo aplikací podporujících PKCS#11 API (př. Firefox, SSH, OpenVPN...).
Zde je jeden příklad ukazující použití v PKCS#11 command-line utilitou pkcs11-tool (součást OpenSC) a krátký C kód:
Mozillí knihovna NSS má vlastní API nadstavbu nad PKCS#11. Kromě HW tokenů umí zvládat i "software security token", což je místo, kam se například ukládají klientské SSL/TLS certifikáty, pokud člověk nemá HW token.
Připadá mi, že výrobci smartkaret nemají nějaký zvláštní zájem dodávat své knihovny jako otevřené. Naopak, i těch pár výrobců, na jejichž karty fungovaly otevřené ovladače, už dnes má novější, nepodporované karty.
Mimochodem, kdysi jsem se pokoušel vyrobit mapu otevřených smartcard ovladačů: http://old-en.opensuse.org/Smart_Cards