diff options
author | S. Solomon Darnell | 2025-03-28 21:52:21 -0500 |
---|---|---|
committer | S. Solomon Darnell | 2025-03-28 21:52:21 -0500 |
commit | 4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch) | |
tree | ee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/ellipticcurve/utils/oid.py | |
parent | cc961e04ba734dd72309fb548a2f97d67d578813 (diff) | |
download | gn-ai-master.tar.gz |
Diffstat (limited to '.venv/lib/python3.12/site-packages/ellipticcurve/utils/oid.py')
-rw-r--r-- | .venv/lib/python3.12/site-packages/ellipticcurve/utils/oid.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/ellipticcurve/utils/oid.py b/.venv/lib/python3.12/site-packages/ellipticcurve/utils/oid.py new file mode 100644 index 00000000..dbfebe79 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/ellipticcurve/utils/oid.py @@ -0,0 +1,35 @@ +from .binary import intFromHex, hexFromInt + + +def oidFromHex(hexadecimal): + firstByte, remainingBytes = hexadecimal[:2], hexadecimal[2:] + firstByteInt = intFromHex(firstByte) + oid = [firstByteInt // 40, firstByteInt % 40] + oidInt = 0 + while len(remainingBytes) > 0: + byte, remainingBytes = remainingBytes[0:2], remainingBytes[2:] + byteInt = intFromHex(byte) + if byteInt >= 128: + oidInt = (128 * oidInt) + (byteInt - 128) + continue + oidInt = (128 * oidInt) + byteInt + oid.append(oidInt) + oidInt = 0 + return oid + + +def oidToHex(oid): + hexadecimal = hexFromInt(40 * oid[0] + oid[1]) + for number in oid[2:]: + hexadecimal += _oidNumberToHex(number) + return hexadecimal + + +def _oidNumberToHex(number): + hexadecimal = "" + endDelta = 0 + while number > 0: + hexadecimal = hexFromInt((number % 128) + endDelta) + hexadecimal + number //= 128 + endDelta = 128 + return hexadecimal or "00" |