1#!/usr/local/bin/python3.8 2# vim:fileencoding=utf-8 3# License: GPL v3 Copyright: 2019, Kovid Goyal <kovid at kovidgoyal.net> 4 5 6from base64 import standard_b64decode, standard_b64encode 7from binascii import hexlify, unhexlify 8 9from polyglot.builtins import unicode_type 10 11 12def as_base64_bytes(x, enc='utf-8'): 13 if isinstance(x, unicode_type): 14 x = x.encode(enc) 15 return standard_b64encode(x) 16 17 18def as_base64_unicode(x, enc='utf-8'): 19 if isinstance(x, unicode_type): 20 x = x.encode(enc) 21 return standard_b64encode(x).decode('ascii') 22 23 24def from_base64_unicode(x, enc='utf-8'): 25 if isinstance(x, unicode_type): 26 x = x.encode('ascii') 27 return standard_b64decode(x).decode(enc) 28 29 30def from_base64_bytes(x): 31 if isinstance(x, unicode_type): 32 x = x.encode('ascii') 33 return standard_b64decode(x) 34 35 36def as_hex_bytes(x, enc='utf-8'): 37 if isinstance(x, unicode_type): 38 x = x.encode(enc) 39 return hexlify(x) 40 41 42def as_hex_unicode(x, enc='utf-8'): 43 if isinstance(x, unicode_type): 44 x = x.encode(enc) 45 return hexlify(x).decode('ascii') 46 47 48def from_hex_unicode(x, enc='utf-8'): 49 if isinstance(x, unicode_type): 50 x = x.encode('ascii') 51 return unhexlify(x).decode(enc) 52 53 54def from_hex_bytes(x): 55 if isinstance(x, unicode_type): 56 x = x.encode('ascii') 57 return unhexlify(x) 58