29 lines
1 KiB
Python
29 lines
1 KiB
Python
import ecdsa
|
|
import pytest
|
|
|
|
from frostfs_api.client.signer import Signer
|
|
from frostfs_api.client.verifier import Verifier
|
|
from frostfs_api.crypto.key_extension import KeyExtension
|
|
from tests.helpers.resources import WIF
|
|
|
|
|
|
@pytest.mark.crypto
|
|
class TestSignAndVerify:
|
|
|
|
@pytest.mark.parametrize("message", [b"Hello Frostfs API", b""])
|
|
def test_sign_verify_success(
|
|
self,
|
|
client_signer: Signer,
|
|
client_verifier: Verifier,
|
|
client_key_extension: KeyExtension,
|
|
message: bytes
|
|
):
|
|
private_key = client_key_extension.get_private_key_from_wif(WIF)
|
|
public_key = client_key_extension.get_public_key(private_key)
|
|
|
|
signature = client_signer.sign_rfc6979(private_key, message)
|
|
assert client_verifier.verify_rfc6979(public_key, message, signature) is True
|
|
|
|
def test_verify_rfc6979_empty_key(self, client_verifier: Verifier):
|
|
with pytest.raises(ValueError, match="Incorrect public key"):
|
|
client_verifier.verify_rfc6979(b'', b"Test message", b"signature")
|