示例#1
0
def public_key_to_coords(public_key):

    length = len(public_key)

    if length == 33:
        flag, x = int.from_bytes(public_key[:1],
                                 "big"), int.from_bytes(public_key[1:], "big")
        y = x_to_y(x, flag & 1)
    elif length == 65:
        x, y = int.from_bytes(public_key[1:33],
                              "big"), int.from_bytes(public_key[33:], "big")
    else:
        raise ValueError(f"{length} is an invalid length for a public key.")

    return x, y
示例#2
0
def public_key_to_coords(public_key):

    length = len(public_key)

    if length == 33:
        flag, x = int.from_bytes(public_key[:1],
                                 'big'), int.from_bytes(public_key[1:], 'big')
        y = x_to_y(x, flag & 1)
    elif length == 65:
        x, y = int.from_bytes(public_key[1:33],
                              'big'), int.from_bytes(public_key[33:], 'big')
    else:
        raise ValueError(
            '{} is an invalid length for a public key.'.format(length))

    return x, y
示例#3
0
 def test_x_to_y_incorrect_first_solution(self):
     assert x_to_y(X_INCORRECT, Y_INCORRECT & 1) == Y_INCORRECT