authlib/jose/errors.py
from authlib.common.errors import AuthlibBaseError
class JoseError(AuthlibBaseError):
pass
class DecodeError(JoseError):
error = 'decode_error'
class MissingAlgorithmError(JoseError):
error = 'missing_algorithm'
class UnsupportedAlgorithmError(JoseError):
error = 'unsupported_algorithm'
class BadSignatureError(JoseError):
error = 'bad_signature'
def __init__(self, result):
super().__init__()
self.result = result
class InvalidHeaderParameterNameError(JoseError):
error = 'invalid_header_parameter_name'
def __init__(self, name):
description = f'Invalid Header Parameter Name: {name}'
super().__init__(
description=description)
class InvalidEncryptionAlgorithmForECDH1PUWithKeyWrappingError(JoseError):
error = 'invalid_encryption_algorithm_for_ECDH_1PU_with_key_wrapping'
def __init__(self):
description = 'In key agreement with key wrapping mode ECDH-1PU algorithm ' \
'only supports AES_CBC_HMAC_SHA2 family encryption algorithms'
super().__init__(
description=description)
class InvalidAlgorithmForMultipleRecipientsMode(JoseError):
error = 'invalid_algorithm_for_multiple_recipients_mode'
def __init__(self, alg):
description = f'{alg} algorithm cannot be used in multiple recipients mode'
super().__init__(
description=description)
class KeyMismatchError(JoseError):
error = 'key_mismatch_error'
description = 'Key does not match to any recipient'
class MissingEncryptionAlgorithmError(JoseError):
error = 'missing_encryption_algorithm'
description = 'Missing "enc" in header'
class UnsupportedEncryptionAlgorithmError(JoseError):
error = 'unsupported_encryption_algorithm'
description = 'Unsupported "enc" value in header'
class UnsupportedCompressionAlgorithmError(JoseError):
error = 'unsupported_compression_algorithm'
description = 'Unsupported "zip" value in header'
class InvalidUseError(JoseError):
error = 'invalid_use'
description = 'Key "use" is not valid for your usage'
class InvalidClaimError(JoseError):
error = 'invalid_claim'
def __init__(self, claim):
self.claim_name = claim
description = f'Invalid claim "{claim}"'
super().__init__(description=description)
class MissingClaimError(JoseError):
error = 'missing_claim'
def __init__(self, claim):
description = f'Missing "{claim}" claim'
super().__init__(description=description)
class InsecureClaimError(JoseError):
error = 'insecure_claim'
def __init__(self, claim):
description = f'Insecure claim "{claim}"'
super().__init__(description=description)
class ExpiredTokenError(JoseError):
error = 'expired_token'
description = 'The token is expired'
class InvalidTokenError(JoseError):
error = 'invalid_token'
description = 'The token is not valid yet'