4.8. Crypto¶
-
alot.crypto.
RFC3156_micalg_from_algo
(hash_algo)¶ Converts a GPGME hash algorithm name to one conforming to RFC3156.
GPGME returns hash algorithm names such as “SHA256”, but RFC3156 says that programs need to use names such as “pgp-sha256” instead.
Parameters: hash_algo – GPGME hash_algo Return type: str
-
alot.crypto.
decrypt_verify
(encrypted)¶ Decrypts the given ciphertext string and returns both the signatures (if any) and the plaintext.
Parameters: encrypted – the mail to decrypt Returns: a tuple (sigs, plaintext) with sigs being a list of a gpgme.Signature
and plaintext is a str holding the decrypted mailRaises: GPGProblem
if the decryption fails
-
alot.crypto.
detached_signature_for
(plaintext_str, key=None)¶ Signs the given plaintext string and returns the detached signature.
A detached signature in GPG speak is a separate blob of data containing a signature for the specified plaintext.
Parameters: - plaintext_str – text to sign
- key – gpgme_key_t object representing the key to use
Return type: tuple of gpgme.NewSignature array and str
-
alot.crypto.
encrypt
(plaintext_str, keys=None)¶ Encrypts the given plaintext string and returns a PGP/MIME compatible string
Parameters: - plaintext_str – the mail to encrypt
- key – gpgme_key_t object representing the key to use
Return type: a string holding the encrypted mail
-
alot.crypto.
get_key
(keyid, validate=False, encrypt=False, sign=False)¶ Gets a key from the keyring by filtering for the specified keyid, but only if the given keyid is specific enough (if it matches multiple keys, an exception will be thrown).
If validate is True also make sure that returned key is not invalid, revoked or expired. In addition if encrypt or sign is True also validate that key is valid for that action. For example only keys with private key can sign.
Parameters: - keyid – filter term for the keyring (usually a key ID)
- validate – validate that returned keyid is valid
- encrypt – when validating confirm that returned key can encrypt
- sign – when validating confirm that returned key can sign
Return type: gpgme.Key
-
alot.crypto.
hash_key
(key)¶ Returns a hash of the given key. This is a workaround for https://bugs.launchpad.net/pygpgme/+bug/1089865 and can be removed if the missing feature is added to pygpgme
Parameters: key – the key we want a hash of Return type: a has of the key as string
-
alot.crypto.
list_keys
(hint=None, private=False)¶ Returns a list of all keys containing keyid.
Parameters: - keyid – The part we search for
- private – Whether secret keys are listed
Return type:
-
alot.crypto.
verify_detached
(message, signature)¶ Verifies whether the message is authentic by checking the signature.
Parameters: - message – the message as str
- signature – a str containing an OpenPGP signature
Returns: a list of
gpgme.Signature
Raises: GPGProblem
if the verification fails