GnuPG's scdaemon provides access to USB tokens and smartcard readers that provide cryptographic functionality (e.g. use of protected secret keys).