[#2] Add methods sign and verify

This commit is contained in:
ilyas585 2025-02-11 10:03:29 +03:00
parent 97bc53c6f4
commit 4433fc425a
9 changed files with 102 additions and 10 deletions

View file

@ -0,0 +1,29 @@
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")