Прежде чем вы сможете зашифровать ключом, ключ которого у вас есть, вам необходимо импортировать ключ в набор ключей. Для этого используйте функцию import_keys
.
Редактировать : шифрование невозможно даже после импорта ключа, поскольку GPG не доверяет ему. Это становится очевидным, когда вы включаете подробные сообщения; вы получите
gpg: <keyid>: There is no assurance this key belongs to the named user
Чтобы обойти эту проблему (не считая настройки пути доверия для ключа), вы можете изменить модель доверия gpg. Следующая программа работает для меня (с моим ключом в качестве примера)
import gnupg, urllib
retk = urllib.urlopen("http://keyserver.pramberger.at/pks/"
"lookup?op=get&search=0x6AF053F07D9DC8D2")
pub_key = retk.read()
gpg = gnupg.GPG(gnupghome="/tmp/foo", verbose=True)
print "Import:", gpg.import_keys(pub_key).summary()
print "Encrypt:", gpg.encrypt("Hello, world!", "6AF053F07D9DC8D2",
always_trust=True)