from ecdsa import SigningKey, SECP256k1 | |
def generate_user(private_key=None): | |
if not private_key: | |
private_key = SigningKey.generate(curve=SECP256k1).to_string().hex() | |
public_key = get_public_key(private_key) | |
user = {"public_key": public_key, "id": f"user:{public_key}"} | |
return user, private_key | |
def get_public_key(private_key_hex): | |
private_key = SigningKey.from_string(bytes.fromhex(private_key_hex), curve=SECP256k1) | |
public_key = private_key.get_verifying_key() | |
return public_key.to_string().hex() |