Move from ed25519 to PyNaCl

This commit is contained in:
2022-05-06 11:39:23 +02:00
parent 280652d5a7
commit 1299acd463
9 changed files with 136 additions and 100 deletions

View File

@@ -1,7 +1,7 @@
"""Test configuration and global fixtures
"""
from ed25519 import SigningKey
from nacl.signing import SigningKey
import pytest
from _pytest.fixtures import SubRequest

View File

@@ -3,7 +3,7 @@
from datetime import datetime, timedelta
from typing import Any, Dict
from ed25519 import SigningKey
from nacl.signing import SigningKey
import pytest
from pytest_mock.plugin import MockerFixture
@@ -213,11 +213,11 @@ def test_sign_different_author(identity: Identity) -> None:
def test_sign_new_identity() -> None:
"""Test if signing a document with a different entity also sets the author"""
key_seed = (
other_key_seed = (
b'`_\x8dm\x18\xeem\xe3\\\xeb_\x1aw)\xcd\xb7\xd8\xd9\xdd\xad\x86\x9a#wQ"F\x95\xa1\x178r'
)
key = SigningKey(key_seed)
identity = Identity('name', sign_key=key)
identity = Identity('name', sign_key=SigningKey(other_key_seed))
assert str(identity) == '@name.bu5seaewd4p7cx7ot4ue3m6wpigfa5hmowxgeophe2so72roao5wq'
document = Es4Document.from_json(VALID_DOCUMENT)
document.author = identity

View File

@@ -2,7 +2,7 @@
"""
import bip39
from ed25519 import SigningKey, create_keypair
from nacl.signing import SigningKey
import pytest
from pytest_mock.plugin import MockerFixture
@@ -27,7 +27,8 @@ TEST_MNEMONIC = bip39.encode_bytes(TEST_SEED)
def test_init_bad_name(name: str) -> None:
"""Test if initialisation is not possible with an invalid name"""
sign, verify = create_keypair()
sign = SigningKey.generate()
verify = sign.verify_key
with pytest.raises(ValidationError) as ctx:
Identity(name, verify_key=verify, sign_key=sign)
@@ -38,8 +39,8 @@ def test_init_bad_name(name: str) -> None:
def test_init_key_mismatch() -> None:
"""Test if initialisation fails if the signing and verifying keys dont match"""
sign1, _ = create_keypair()
_, verify2 = create_keypair()
sign1 = SigningKey.generate()
verify2 = SigningKey.generate().verify_key
with pytest.raises(ValidationError) as ctx:
Identity('name', verify_key=verify2, sign_key=sign1)
@@ -89,12 +90,12 @@ def test_from_address() -> None:
"""Test loading an identity from an author address"""
skey = SigningKey(TEST_SEED)
vkey = skey.get_verifying_key()
vkey = skey.verify_key
identity = Identity.from_address('@test.bcz76z52y5dlpohtkmpuj3jsdcvfmebzpcgfmtmhu4u7hlexzreya')
assert identity.name == 'test'
assert identity.sign_key is None
assert identity.verify_key.to_bytes() == vkey.to_bytes()
assert identity.verify_key == vkey
def test_from_invalid_address() -> None:
@@ -110,9 +111,8 @@ def test_generate(mocker: MockerFixture) -> None:
"""Test the generate property"""
skey = SigningKey(TEST_SEED)
vkey = skey.get_verifying_key()
mocker.patch('earthsnake.identity.create_keypair', return_value=(skey, vkey))
mocker.patch('earthsnake.identity.SigningKey.generate', return_value=skey)
identity = Identity.generate('test')
assert str(identity) == '@test.bcz76z52y5dlpohtkmpuj3jsdcvfmebzpcgfmtmhu4u7hlexzreya'
@@ -145,7 +145,7 @@ def test_from_mnemonic() -> None:
assert identity.name == name
assert identity.sign_key
assert identity.sign_key.to_seed() == TEST_SEED
assert identity.sign_key.encode() == TEST_SEED
assert str(identity) == f'@{name}.bcz76z52y5dlpohtkmpuj3jsdcvfmebzpcgfmtmhu4u7hlexzreya'