/usr/lib/python3.6/site-packages/josepy
NameSizeModeActions
testdata/-0755rm
__pycache__/-0755rm
b64.py14370644editdlrm
b64_test.py22560644editdlrm
errors.py7620644editdlrm
errors_test.py4630644editdlrm
interfaces.py76920644editdlrm
interfaces_test.py35940644editdlrm
json_util.py157200644editdlrm
json_util_test.py141660644editdlrm
jwa.py83700644editdlrm
jwa_test.py90150644editdlrm
jwk.py134330644editdlrm
jwk_test.py129910644editdlrm
jws.py141690644editdlrm
jws_test.py85180644editdlrm
magic_typing.py5290644editdlrm
magic_typing_test.py10770644editdlrm
test_util.py26320644editdlrm
util.py85750644editdlrm
util_test.py83500644editdlrm
__init__.py17040644editdlrm
Edit: /usr/lib/python3.6/site-packages/josepy/b64.py (1437B)
"""`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 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, bytes): raise TypeError('argument should be bytes') 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, str): try: data = data.encode('ascii') except UnicodeEncodeError: raise ValueError( 'unicode argument should contain only ASCII characters') elif not isinstance(data, bytes): raise TypeError('argument should be a str or unicode') return base64.urlsafe_b64decode(data + b'=' * (4 - (len(data) % 4)))