Source code for cryptography.exceptions

# This file is dual licensed under the terms of the Apache License, Version
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.

from __future__ import absolute_import, division, print_function

from enum import Enum


class _Reasons(Enum):
    BACKEND_MISSING_INTERFACE = 0
    UNSUPPORTED_HASH = 1
    UNSUPPORTED_CIPHER = 2
    UNSUPPORTED_PADDING = 3
    UNSUPPORTED_MGF = 4
    UNSUPPORTED_PUBLIC_KEY_ALGORITHM = 5
    UNSUPPORTED_ELLIPTIC_CURVE = 6
    UNSUPPORTED_SERIALIZATION = 7
    UNSUPPORTED_X509 = 8
    UNSUPPORTED_EXCHANGE_ALGORITHM = 9
    UNSUPPORTED_DIFFIE_HELLMAN = 10
    UNSUPPORTED_MAC = 11


[docs]class UnsupportedAlgorithm(Exception): def __init__(self, message, reason=None): super(UnsupportedAlgorithm, self).__init__(message) self._reason = reason
[docs]class AlreadyFinalized(Exception): pass
[docs]class AlreadyUpdated(Exception): pass
[docs]class NotYetFinalized(Exception): pass
[docs]class InvalidTag(Exception): pass
[docs]class InvalidSignature(Exception): pass
class InternalError(Exception): def __init__(self, msg, err_code): super(InternalError, self).__init__(msg) self.err_code = err_code
[docs]class InvalidKey(Exception): pass