Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/starkbank_ecdsa-2.3.1-py3.11.egg/ellipticcurve/utils/binary.py: 93%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

27 statements  

1from base64 import b64encode, b64decode 

2from .compatibility import safeHexFromBinary, safeBinaryFromHex, toString 

3 

4 

5def hexFromInt(number): 

6 hexadecimal = "{0:x}".format(number) 

7 if len(hexadecimal) % 2 == 1: 

8 hexadecimal = "0" + hexadecimal 

9 return hexadecimal 

10 

11 

12def intFromHex(hexadecimal): 

13 return int(hexadecimal, 16) 

14 

15 

16def hexFromByteString(byteString): 

17 return safeHexFromBinary(byteString) 

18 

19 

20def byteStringFromHex(hexadecimal): 

21 return safeBinaryFromHex(hexadecimal) 

22 

23 

24def numberFromByteString(byteString, bitLength=None): 

25 number = intFromHex(hexFromByteString(byteString)) 

26 if bitLength is not None: 

27 hashBitLen = len(byteString) * 8 

28 if hashBitLen > bitLength: 

29 number >>= (hashBitLen - bitLength) 

30 return number 

31 

32 

33def base64FromByteString(byteString): 

34 return toString(b64encode(byteString)) 

35 

36 

37def byteStringFromBase64(base64String): 

38 return b64decode(base64String) 

39 

40 

41def bitsFromHex(hexadecimal): 

42 return format(intFromHex(hexadecimal), 'b').zfill(4 * len(hexadecimal))