Я пытаюсь создать пару открытый / закрытый ключ, используя python.
Я создал закрытый ключ, используя следующий метод:
private_key = ''.join(['%x' % random.randrange(16) for x in range(0, 64)])
используя этот закрытый ключ, я попытался с помощью графа ecdsa сгенерировать соответствующий открытый ключ
def privateKeyToPublicKey(s):
sk = ecdsa.SigningKey.from_string(s, curve=ecdsa.SECP256k1)
vk = sk.verifying_key
return ('\04' + sk.verifying_key.to_string())
Мне не удалось создать ключ подписи (sk) из-за ошибки форматирования, когда моя строка имеет неправильный формат. Но я не уверен, как / в каком формате должна работать строка s, чтобы SigningKey работал.
Я получаю следующую ошибку при запуске скрипта:
Traceback (most recent call last):
File "address.py", line 23, in <module>
privateKeyToPublicKey(private_key)
File "address.py", line 20, in privateKeyToPublicKey
sk = ecdsa.SigningKey.from_string(s, curve=ecdsa.SECP256k1)
File "/usr/local/lib/python3.6/dist-packages/ecdsa/keys.py", line
149, in from_string
assert len(string) == curve.baselen, (len(string), curve.baselen)
AssertionError: (64, 32)