diff options
Diffstat (limited to 'jwcrypto')
-rw-r--r-- | jwcrypto/__init__.py | 0 | ||||
-rw-r--r-- | jwcrypto/common.py | 22 |
2 files changed, 22 insertions, 0 deletions
diff --git a/jwcrypto/__init__.py b/jwcrypto/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/jwcrypto/__init__.py diff --git a/jwcrypto/common.py b/jwcrypto/common.py new file mode 100644 index 0000000..e348b44 --- /dev/null +++ b/jwcrypto/common.py @@ -0,0 +1,22 @@ +# Copyright (C) 2015 JWCrypto Project Contributors - see LICENSE file + +from base64 import urlsafe_b64encode, urlsafe_b64decode + + +# Padding stripping versions as described in +# draft-ietf-jose-json-web-signature-41 appendix C + + +def base64url_encode(payload): + return urlsafe_b64encode(payload).rstrip('=') + + +def base64url_decode(payload): + l = len(payload) % 4 + if l == 2: + payload += '==' + elif l == 3: + payload += '=' + elif l != 0: + raise ValueError('Invalid base64 string') + return urlsafe_b64decode(payload) |