summaryrefslogtreecommitdiff
path: root/jwt/exceptions.py
diff options
context:
space:
mode:
authorMark Adams <mark@markadams.me>2017-03-14 08:04:03 -0500
committerMark Adams <mark@markadams.me>2017-03-14 10:43:58 -0500
commitd04339de54fca44c09ae9105627ab4ae7e0abdb1 (patch)
treedcfdd94edb8d89b2222949ead86694a9e1720be8 /jwt/exceptions.py
parent1710c1524c69c39dfece7a24b87179be5eeff217 (diff)
downloadpyjwt-fix-key-errors.tar.gz
Refactor error handling in Algorithm.prepare_key() methodsfix-key-errors
Our error handling in Algorithm.prepare_key() was previously weird and kind of inconsistent. This change makes a number of improvements: * Refactors RSA and ECDSA prepare_key() methods to reduce nesting and make the code simpler to understand * All calls to Algorithm.prepare_key() return InvalidKeyError (or a subclass) or a valid key instance. * Created a new InvalidAsymmetricKeyError class that is used to provide a standard message when an invalid RSA or ECDSA key is used.
Diffstat (limited to 'jwt/exceptions.py')
-rw-r--r--jwt/exceptions.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/jwt/exceptions.py b/jwt/exceptions.py
index 31177a0..48a6e16 100644
--- a/jwt/exceptions.py
+++ b/jwt/exceptions.py
@@ -26,10 +26,18 @@ class ImmatureSignatureError(InvalidTokenError):
pass
-class InvalidKeyError(Exception):
+class InvalidKeyError(ValueError):
pass
+class InvalidAsymmetricKeyError(InvalidKeyError):
+ message = 'Invalid key: Keys must be in PEM or RFC 4253 format.'
+
+
+class InvalidJwkError(InvalidKeyError):
+ message = 'Invalid key: Keys must be in JWK format.'
+
+
class InvalidAlgorithmError(InvalidTokenError):
pass