gcaff is a graphical tool for signing OpenPGP keys. Its main
use case is for signing many keys at once, after a keysigning party
- display photo IDs and select for signing
- sign with multiple signing keys in one pass
- choose the certification level on a per-key basis
- email each signature separately, only to the associated email address
gcaff is inspried by caff, a command-line signing assistant.
caff being a CLI program and
gcaff having a GUI,
there are some important differences:
gcaffdoes not remove uids from keys.
caffsends only the uid that was signed to each email address.
gcaffsends all uids, but only one uid will have the new signature.
gcaffsends signatures for photo uids or uids without an email address to all email addresses on the key. Signatures on regular uids are sent to the corresponding email address only.
gcaffhas no pinentry mechanism; users must have a working
gcaffrequires the user to supply a file containing keys to be signed; no keys are fetched from keyservers.
gcaff signs keys using the SHA256 digest. Future work could
allow users to choose a different digest for signing. Patches are
Secret keys are never exported from the GnuPG home directory, however, the corresponding public keys are exported to a temporary GnuPG keyring during the signing process.
No keys in the user's GnuPG home directory are modified during the signing process. Once signing is complete, all the signatures are written to a file whose location is reported. The user may (manually) import keys from this file into her regular keyring. A future version could offer to perform this step for the user. Contributions are welcome.
- GnuPG and gpg-agent
- Python 2.7
- PyGTK >=2, <3
- a local mailer (SMTP), e.g. sendmail
Debian / Ubuntu
Install Python 2.7 and PyGTK in the normal way for your operating
system. Note that on many systems PyGTK cannot be installed with
To install dependencies on a Debian or Ubuntu system (or other systems using APT):
sudo apt-get install gnupg gnupg-agent python-pip postfix python-gtk2
gnupg-agent was not previously installed you will probably
need to log out and log in again to ensure that
running and the appropriate environment variables are set.
During the postfix configuration dialog ensure you select Internet Site as the "General type of mail configuration". If postfix is not accepting mail you can run the configuration again:
sudo dpkg-reconfigure postfix
Fedora 20 and later releases do not have an MTA installed by default. To install and configure:
sudo yum install -y postfix sudo systemctl start postfix sudo systemctl enable postfix
To install for all users, on a Unix system:
sudo pip install gcaff
To perform an installation to user site-packages:
pip install gcaff --user
Ensure that the user site
bin/ directory is on the
installing to user site-packages.
gcaff --keyring keys-to-sign.asc
gcaff is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Bug reports, general feedback, patches and translations are welcome.
A list of desirable enhancements can be found in the file
To submit a patch, please use
git send-email or generate a
pull/merge request. Write a well formed commit message. If your
patch is nontrivial, add a copyright notice (or, if appropriate,
update an existing notice) at the top of each file added or changed.