Gnupg

Установка
make install clean -C /usr/ports/security/gnupg

Взвел флажок Pinetry и CURL был взведен. Ниже старый мейк.

cat Makefile  LDAP "LDAP keyserver interface" off \ SCDAEMON "Enable Smartcard daemon (with libusb)" off \ CURL "Use the real curl library (worked around if no)" on \ -              GPGSM "Enable GPGSM (require LDAP)" on CONFIGURE_ARGS+=       --enable-nls 

Также требуется установить pinentry (например, /usr/ports/security/pinentry-curses), иначе при вызове gpg будет выводиться сообщение, что отсутствует эта программа. Это "Curses version of the gnupg password dialog"

При установке она предлагает фронтэнды к GTK и QT, оставил для GTK2 и QT4, а также ncurses.

Документация
man gpg2

Использование
Криптование без ключей, с использованием одного пароля (синтаксис команды такой же в Ubuntu): gpg -c lex-home.tar.gz Декриптование: gpg -d lexhome.tar.gz.gpg > lexhome.tar.gz

Создание ключей
gpg --gen-key DSA (пункт 2), потом будет предложено ввести пароль - у меня выводился гуевый GTK-шный диалог для этого

gpg: next trustdb check due at 2012-07-01 pub  2048D/5CC2DE3D 2012-06-01 [expires: 2012-07-01] Key fingerprint = - uid                 Aleksey Spiridonov (temporary keys)  sub  2048g/2C9E7F2F 2012-06-01 [expires: 2012-07-01]

Экспорт всех ключей. -a для экспорта в ASCII gpg --export -a -o junekey

Чтобы конкретный ключ экспортировать, надо указать [UID] который можно разными способами - - это описано в man в разделе HOW TO SPECIFY A USER ID

gpg --list-keys Warning: using insecure memory! /home/leksey/.gnupg/pubring.gpg --- pub  2048D/5CC2DE3D 2012-06-01 [expires: 2012-07-01] uid                 Aleksey Spiridonov (temporary keys)  sub  2048g/2C9E7F2F 2012-06-01 [expires: 2012-07-01]

Как-то иначе надо указывать ресипиента

А так и указывать. Любое слово из описания и потом подтвердить. gpg -e --recipient "Eugene Bolshakoff" testfile.txt

gpg -d testfile.txt.gpg gpg: encrypted with 4096-bit RSA key, ID 0C4DCB9D, created 2010-10-12 "Eugene Bolshakoff (Mercurius) " gpg: decryption failed: No secret key

Отправка ключа на сервере
Можно на любой - они между собой синхронизируются. По умолчанию идет на hkp://keys.gnupg.net

Убрал пробелы и поставил gpg --send-keys "221D9B9ADB07983DB16BC3EB42616D0E5CC2DE3D" gpg: sending key 5CC2DE3D to hkp server keys.gnupg.net

Создание сообщения с подписью
gpg --clearsign mail01.txt

Получается текст заключенный сверху в -BEGIN PGP SIGNED MESSAGE- Hash: SHA256 тест и сама подпись

Поиск ключа
gpg --search-keys 'leksey@ya.ru' Warning: using insecure memory! gpg: searching for "leksey@ya.ru" from hkp server keys.gnupg.net (1)    Aleksey Spiridonov (temporary keys)  2048 bit DSA key 5CC2DE3D, created: 2012-06-01 Keys 1-1 of 1 for "leksey@ya.ru". Enter number(s), N)ext, or Q)uit > q

Шифрование переписки в почтовом клиенте
Thunderbird + Enigmail

Ссылки

 * http://pgpru.com/
 * http://thinkst.com/tools/cr-gpg/

pkg_info |grep gnup qca-gnupg-2.0.0.b3_1 QCA GnuPG plugin