Some tools to play with GnuPG’s smartcard daemon and OpenPGP smartcards.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Damien Goutte-Gattat 2f1dd187fe Fix blank lines in help message
Print only one blank line between logical options groups.
8 years ago
lib Add replacement function for asprintf 9 years ago
m4 Add replacement function for asprintf 9 years ago
man Set default private DO at configure time 9 years ago
src Fix blank lines in help message 8 years ago
.gitignore Initial commit 9 years ago
AUTHORS Distribute AUTHORS and COPYING files 9 years ago
COPYING Distribute AUTHORS and COPYING files 9 years ago Add man page and README file 9 years ago
NEWS Prepare for 0.3.0 release 8 years ago
README Update documentation for scdtotp 9 years ago Use private DO #3 as default private DO 8 years ago


This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

Scdtools - Tools for Scdaemon and OpenPGP smartcards

Scdtools is a set of utility tools to work with Scdaemon, the smartcard
daemon of the GnuPG project, and OpenPGP smartcards.

Scdrand - Extract random numbers from a smartcard
Scdrand obtains up to 256 bytes of random data from a ISO7816-compliant
smartcard and adds them to the kernel entropy pool.

It uses Scdaemon to send a GET CHALLENGE to the smartcard. As per
ISO 7816-4, the smartcard replies with random bytes, which Scdrand then
sends to the Linux kernel entropy pool through the RNDADDENTROPY ioctl
call on /dev/random.

Since that call requires root privileges, scdrand is installed with the
setuid bit set. To mitigate risks associated with running as root, the
program forks itself at startup and only the child retains the root
privileges needed to write to /dev/random. The parent process, in charge
of communicating with the smartcard, then runs with the privileges on
the calling user.

Scdtotp - Generate time-based OTP from an OpenPGP smartcard
Scdtotp uses an OpenPGP smartcard as a poor mans one-time password
generator token. It generates time-based one-time password (TOTP)
as per RFC 6238, based on a key it expects to find in the private
data object of the inserted OpenPGP smartcard.

Note that contrary to a true password generator token, the key cannot
remain only on the smartcard, it has to be sent to the computer so
that scdtotp can derive the password from it. Thus it cannot provide
the same level of security.

Scdtools is distributed under the terms of the GNU General Public
License, version 3 or higher. The full license is included in the
COPYING file of the source distribution.

Homepage and contact
The project is located at <>.
The latest source code is available in a Git repository at
<git://> and may also be browsed at

The author may be contact at the following address:
Damien Goutte-Gattat <>