Trouble with python-cryptography packages: authentication tags can only be
passed in advance: https://github.com/pyca/cryptography/pull/3421
+Errors
+-------------------------------------------------------------------------------
+
+Errors fall into roughly three categories:
+
+ - Cryptographical errors or data validity.
+
+ - ``InvalidGCMTag`` (decryption failed on account of an invalid GCM
+ tag),
+ - ``InvalidIVFixedPart`` (IV fixed part of object not found in list),
+ - ``DecryptionError`` (used in CLI decryption).
+
+ - Incorrect usage of the library.
+
+ - ``InvalidParameter`` (non-conforming user supplied parameter),
+ - ``InvalidHeader`` (data passed for reading not parsable into header),
+ - ``FormatError`` (cannot handle header or parameter version),
+ - ``RuntimeError``.
+
+ - Bad internal state. If one of these is encountered it means that a state
+ was reached that shouldn’t occur during normal processing.
+
+ - ``InternalError``,
+ - ``Unreachable``.
+
+Also, ``EndOfFile`` is used as a sentinel to communicate that a stream supplied
+for reading is exhausted.
+
"""
import binascii