From b9a57a6f9840fe16c920148eae4451997abdde64 Mon Sep 17 00:00:00 2001 From: Johannes Kulick Date: Tue, 18 Dec 2012 09:22:37 +0100 Subject: validate key before adding to encryption list we check whether a key is - revoked - expired - invalid - unable to encrypt - unable to sign --- alot/crypto.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'alot/crypto.py') diff --git a/alot/crypto.py b/alot/crypto.py index 55b9e30c..9000d15b 100644 --- a/alot/crypto.py +++ b/alot/crypto.py @@ -198,3 +198,15 @@ def hash_key(key): for tmp_key in key.subkeys: hash_str += tmp_key.keyid return hash_str + +def validate_key(key, sign=False, encrypt=False): + if key.revoked: + raise GPGProblem("The key \"" + key.uids[0].uid + "\" is revoked.") + elif key.expired: + raise GPGProblem("The key \"" + key.uids[0].uid + "\" is expired.") + elif key.invalid: + raise GPGProblem("The key \"" + key.uids[0].uid + "\" is invalid.") + if encrypt and not key.can_encrypt: + raise GPGProblem("The key \"" + key.uids[0].uid + "\" can not encrypt.") + if sign and not key.can_sign: + raise GPGProblem("The key \"" + key.uids[0].uid + "\" can not sign.") -- cgit v1.2.3