aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/PyJWT/py2/jwt/utils.py
diff options
context:
space:
mode:
authorrobot-piglet <robot-piglet@yandex-team.com>2024-04-12 12:45:55 +0300
committerrobot-piglet <robot-piglet@yandex-team.com>2024-04-12 13:42:15 +0300
commita592841bc0deb67c364dea234d7c5adbe0dadad5 (patch)
tree90a280604bae87f20b5007a185611c45040bdd17 /contrib/python/PyJWT/py2/jwt/utils.py
parentdd11d72c358cf78610025a4d12ef888be70054bf (diff)
downloadydb-a592841bc0deb67c364dea234d7c5adbe0dadad5.tar.gz
Intermediate changes
Diffstat (limited to 'contrib/python/PyJWT/py2/jwt/utils.py')
-rw-r--r--contrib/python/PyJWT/py2/jwt/utils.py113
1 files changed, 0 insertions, 113 deletions
diff --git a/contrib/python/PyJWT/py2/jwt/utils.py b/contrib/python/PyJWT/py2/jwt/utils.py
deleted file mode 100644
index b33c7a2d455..00000000000
--- a/contrib/python/PyJWT/py2/jwt/utils.py
+++ /dev/null
@@ -1,113 +0,0 @@
-import base64
-import binascii
-import struct
-
-from .compat import binary_type, bytes_from_int, text_type
-
-try:
- from cryptography.hazmat.primitives.asymmetric.utils import (
- decode_dss_signature, encode_dss_signature
- )
-except ImportError:
- pass
-
-
-def force_unicode(value):
- if isinstance(value, binary_type):
- return value.decode('utf-8')
- elif isinstance(value, text_type):
- return value
- else:
- raise TypeError('Expected a string value')
-
-
-def force_bytes(value):
- if isinstance(value, text_type):
- return value.encode('utf-8')
- elif isinstance(value, binary_type):
- return value
- else:
- raise TypeError('Expected a string value')
-
-
-def base64url_decode(input):
- if isinstance(input, text_type):
- input = input.encode('ascii')
-
- rem = len(input) % 4
-
- if rem > 0:
- input += b'=' * (4 - rem)
-
- return base64.urlsafe_b64decode(input)
-
-
-def base64url_encode(input):
- return base64.urlsafe_b64encode(input).replace(b'=', b'')
-
-
-def to_base64url_uint(val):
- if val < 0:
- raise ValueError('Must be a positive integer')
-
- int_bytes = bytes_from_int(val)
-
- if len(int_bytes) == 0:
- int_bytes = b'\x00'
-
- return base64url_encode(int_bytes)
-
-
-def from_base64url_uint(val):
- if isinstance(val, text_type):
- val = val.encode('ascii')
-
- data = base64url_decode(val)
-
- buf = struct.unpack('%sB' % len(data), data)
- return int(''.join(["%02x" % byte for byte in buf]), 16)
-
-
-def merge_dict(original, updates):
- if not updates:
- return original
-
- try:
- merged_options = original.copy()
- merged_options.update(updates)
- except (AttributeError, ValueError) as e:
- raise TypeError('original and updates must be a dictionary: %s' % e)
-
- return merged_options
-
-
-def number_to_bytes(num, num_bytes):
- padded_hex = '%0*x' % (2 * num_bytes, num)
- big_endian = binascii.a2b_hex(padded_hex.encode('ascii'))
- return big_endian
-
-
-def bytes_to_number(string):
- return int(binascii.b2a_hex(string), 16)
-
-
-def der_to_raw_signature(der_sig, curve):
- num_bits = curve.key_size
- num_bytes = (num_bits + 7) // 8
-
- r, s = decode_dss_signature(der_sig)
-
- return number_to_bytes(r, num_bytes) + number_to_bytes(s, num_bytes)
-
-
-def raw_to_der_signature(raw_sig, curve):
- num_bits = curve.key_size
- num_bytes = (num_bits + 7) // 8
-
- if len(raw_sig) != 2 * num_bytes:
- raise ValueError('Invalid signature')
-
- r = bytes_to_number(raw_sig[:num_bytes])
- s = bytes_to_number(raw_sig[num_bytes:])
-
- return encode_dss_signature(r, s)