about summary refs log tree commit diff
path: root/.venv/lib/python3.12/site-packages/ellipticcurve/utils/compatibility.py
blob: 3b22dd3c9d284ad8d91dc2856712d6f490454fb8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from sys import version_info as pyVersion
from binascii import hexlify, unhexlify


if pyVersion.major == 3:
    # py3 constants and conversion functions

    stringTypes = (str,)
    intTypes = (int, float)

    def toString(string, encoding="utf-8"):
        return string.decode(encoding)

    def toBytes(string, encoding="utf-8"):
        return string.encode(encoding)

    def safeBinaryFromHex(hexadecimal):
        if len(hexadecimal) % 2 == 1:
            hexadecimal = "0" + hexadecimal
        return unhexlify(hexadecimal)

    def safeHexFromBinary(byteString):
        return toString(hexlify(byteString))
else:
    # py2 constants and conversion functions

    stringTypes = (str, unicode)
    intTypes = (int, float, long)

    def toString(string, encoding="utf-8"):
        return string

    def toBytes(string, encoding="utf-8"):
        return string

    def safeBinaryFromHex(hexadecimal):
        return unhexlify(hexadecimal)

    def safeHexFromBinary(byteString):
        return hexlify(byteString)