fix flow did
This commit is contained in:
parent
6054eaa705
commit
84041bf2ed
6
did.py
6
did.py
|
@ -34,7 +34,8 @@ def key_read(path_keys):
|
||||||
|
|
||||||
|
|
||||||
def get_signing_key(jwk_pr):
|
def get_signing_key(jwk_pr):
|
||||||
private_key_material_str = jwk_pr['d']
|
key = json.loads(jwk_pr)
|
||||||
|
private_key_material_str = key['d']
|
||||||
missing_padding = len(private_key_material_str) % 4
|
missing_padding = len(private_key_material_str) % 4
|
||||||
if missing_padding:
|
if missing_padding:
|
||||||
private_key_material_str += '=' * (4 - missing_padding)
|
private_key_material_str += '=' * (4 - missing_padding)
|
||||||
|
@ -57,7 +58,8 @@ def generate_keys():
|
||||||
# Generate an Ed25519 key pair
|
# Generate an Ed25519 key pair
|
||||||
key = jwk.JWK.generate(kty='OKP', crv='Ed25519')
|
key = jwk.JWK.generate(kty='OKP', crv='Ed25519')
|
||||||
key['kid'] = 'Generated'
|
key['kid'] = 'Generated'
|
||||||
return key.export_private(True)
|
key_json = key.export_private(True)
|
||||||
|
return json.dumps(key_json)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
|
|
@ -13,22 +13,23 @@ from utils import now
|
||||||
|
|
||||||
def test_generated_did_key():
|
def test_generated_did_key():
|
||||||
key = generate_keys()
|
key = generate_keys()
|
||||||
|
key_d = json.loads(key)
|
||||||
did = generate_did(key)
|
did = generate_did(key)
|
||||||
_did = did.split("#")[0]
|
_did = did.split("#")[0]
|
||||||
pub = _did.split(":")[-1]
|
pub = _did.split(":")[-1]
|
||||||
mc = multiformats.multibase.decode(pub)
|
mc = multiformats.multibase.decode(pub)
|
||||||
public_key_bytes = multicodec.remove_prefix(mc)
|
public_key_bytes = multicodec.remove_prefix(mc)
|
||||||
x = nacl.encoding.URLSafeBase64Encoder.encode(public_key_bytes).decode('utf-8')
|
x = nacl.encoding.URLSafeBase64Encoder.encode(public_key_bytes).decode('utf-8')
|
||||||
k_x = key.get('x', '')
|
k_x = key_d.get('x', '')
|
||||||
missing_padding = len(k_x) % 4
|
missing_padding = len(k_x) % 4
|
||||||
if missing_padding:
|
if missing_padding:
|
||||||
k_x += '=' * (4 - missing_padding)
|
k_x += '=' * (4 - missing_padding)
|
||||||
|
|
||||||
assert key.get('kty') == 'OKP'
|
assert key_d.get('kty') == 'OKP'
|
||||||
assert key.get('crv') == 'Ed25519'
|
assert key_d.get('crv') == 'Ed25519'
|
||||||
assert key.get('kid') == 'Generated'
|
assert key_d.get('kid') == 'Generated'
|
||||||
assert k_x == x
|
assert k_x == x
|
||||||
assert key.get('d') is not None
|
assert key_d.get('d') is not None
|
||||||
|
|
||||||
|
|
||||||
def test_credential():
|
def test_credential():
|
||||||
|
@ -135,6 +136,6 @@ def test_verifiable_presentation():
|
||||||
holder_did = generate_did(holder_key)
|
holder_did = generate_did(holder_key)
|
||||||
holder_signing_key = get_signing_key(holder_key)
|
holder_signing_key = get_signing_key(holder_key)
|
||||||
vp = sign_vp(holder_signing_key, holder_did, vc_json)
|
vp = sign_vp(holder_signing_key, holder_did, vc_json)
|
||||||
verified = verify_vc(json.dumps(vp))
|
verified = verify_vp(json.dumps(vp))
|
||||||
assert verified
|
assert verified
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue