"""`JOSE Base64`_ is defined as: - URL-safe Base64 - padding stripped .. _`JOSE Base64`: https://tools.ietf.org/html/draft-ietf-jose-json-web-signature-37#appendix-C .. Do NOT try to call this module "base64", as it will "shadow" the standard library. """ import base64 import six def b64encode(data): """JOSE Base64 encode. :param data: Data to be encoded. :type data: bytes :returns: JOSE Base64 string. :rtype: bytes :raises TypeError: if ``data`` is of incorrect type """ if not isinstance(data, six.binary_type): raise TypeError('argument should be {0}'.format(six.binary_type)) return base64.urlsafe_b64encode(data).rstrip(b'=') def b64decode(data): """JOSE Base64 decode. :param data: Base64 string to be decoded. If it's unicode, then only ASCII characters are allowed. :type data: bytes or unicode :returns: Decoded data. :rtype: bytes :raises TypeError: if input is of incorrect type :raises ValueError: if input is unicode with non-ASCII characters """ if isinstance(data, six.string_types): try: data = data.encode('ascii') except UnicodeEncodeError: raise ValueError( 'unicode argument should contain only ASCII characters') elif not isinstance(data, six.binary_type): raise TypeError('argument should be a str or unicode') return base64.urlsafe_b64decode(data + b'=' * (4 - (len(data) % 4)))
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
__init__.py | File | 1.97 KB | 0644 |
|
b64.py | File | 1.47 KB | 0644 |
|
b64_test.py | File | 2.27 KB | 0644 |
|
errors.py | File | 815 B | 0644 |
|
errors_test.py | File | 463 B | 0644 |
|
interfaces.py | File | 7.56 KB | 0644 |
|
interfaces_test.py | File | 3.54 KB | 0644 |
|
json_util.py | File | 15.38 KB | 0644 |
|
json_util_test.py | File | 13.94 KB | 0644 |
|
jwa.py | File | 6.01 KB | 0644 |
|
jwa_test.py | File | 4.54 KB | 0644 |
|
jwk.py | File | 9.19 KB | 0644 |
|
jwk_test.py | File | 6.92 KB | 0644 |
|
jws.py | File | 13.93 KB | 0644 |
|
jws_test.py | File | 8.32 KB | 0644 |
|
test_util.py | File | 2.85 KB | 0644 |
|
util.py | File | 7.3 KB | 0644 |
|
util_test.py | File | 6.45 KB | 0644 |
|