From 54b9ee088b89c23607fa90c546b8bd0a94efc8e0 Mon Sep 17 00:00:00 2001 From: Bogdan Opanchuk <bogdan@opanchuk.net> Date: Sun, 18 Apr 2021 22:35:09 -0700 Subject: [PATCH] Change the order of parameters in CapsuleFrag.verify() to match that of KeyFrag.verify() --- docs/examples/umbral_simple_api.py | 3 +- docs/notebooks/pyUmbral Simple API.ipynb | 4 +-- docs/source/using_pyumbral.rst | 4 +-- tests/test_capsule_frag.py | 46 ++++++++++++++---------- tests/test_compatibility.py | 6 +++- tests/test_pre.py | 3 +- umbral/capsule_frag.py | 2 +- 7 files changed, 42 insertions(+), 26 deletions(-) diff --git a/docs/examples/umbral_simple_api.py b/docs/examples/umbral_simple_api.py index 23c499a..55dfdda 100644 --- a/docs/examples/umbral_simple_api.py +++ b/docs/examples/umbral_simple_api.py @@ -90,9 +90,10 @@ assert len(cfrags) == 10 # using Alice's public keys. assert all(cfrag.verify(capsule, + verifying_pk=alices_verifying_key, delegating_pk=alices_public_key, receiving_pk=bobs_public_key, - verifying_pk=alices_verifying_key) + ) for cfrag in cfrags) # Bob opens the capsule diff --git a/docs/notebooks/pyUmbral Simple API.ipynb b/docs/notebooks/pyUmbral Simple API.ipynb index fd16c85..6c361be 100644 --- a/docs/notebooks/pyUmbral Simple API.ipynb +++ b/docs/notebooks/pyUmbral Simple API.ipynb @@ -231,9 +231,9 @@ "outputs": [], "source": [ "assert all(cfrag.verify(capsule,\n", + " verifying_pk=alices_verifying_key,\n", " delegating_pk=alices_public_key,\n", - " receiving_pk=bobs_public_key,\n", - " verifying_pk=alices_verifying_key)\n", + " receiving_pk=bobs_public_key)\n", " for cfrag in cfrags)" ] }, diff --git a/docs/source/using_pyumbral.rst b/docs/source/using_pyumbral.rst index a00b899..4bb865c 100644 --- a/docs/source/using_pyumbral.rst +++ b/docs/source/using_pyumbral.rst @@ -179,9 +179,9 @@ using Alice's public keys. .. doctest:: capsule_story >>> all(cfrag.verify(capsule, + ... verifying_pk=alices_verifying_key, ... delegating_pk=alices_public_key, - ... receiving_pk=bobs_public_key, - ... verifying_pk=alices_verifying_key) + ... receiving_pk=bobs_public_key) ... for cfrag in cfrags) True diff --git a/tests/test_capsule_frag.py b/tests/test_capsule_frag.py index 103df8b..ed79a0f 100644 --- a/tests/test_capsule_frag.py +++ b/tests/test_capsule_frag.py @@ -19,44 +19,50 @@ def test_cfrag_serialization(alices_keys, bobs_keys, capsule, kfrags): assert new_cfrag == cfrag assert new_cfrag.verify(capsule, + verifying_pk=verifying_pk, delegating_pk=delegating_pk, receiving_pk=receiving_pk, - verifying_pk=verifying_pk, - metadata=metadata) + metadata=metadata, + ) # No metadata assert not new_cfrag.verify(capsule, + verifying_pk=verifying_pk, delegating_pk=delegating_pk, receiving_pk=receiving_pk, - verifying_pk=verifying_pk) + ) # Wrong metadata assert not new_cfrag.verify(capsule, + verifying_pk=verifying_pk, delegating_pk=delegating_pk, receiving_pk=receiving_pk, - verifying_pk=verifying_pk, - metadata=b'Not the same metadata') + metadata=b'Not the same metadata', + ) # Wrong delegating key assert not new_cfrag.verify(capsule, + verifying_pk=verifying_pk, delegating_pk=receiving_pk, receiving_pk=receiving_pk, - verifying_pk=verifying_pk, - metadata=metadata) + metadata=metadata, + ) # Wrong receiving key assert not new_cfrag.verify(capsule, + verifying_pk=verifying_pk, delegating_pk=delegating_pk, receiving_pk=delegating_pk, - verifying_pk=verifying_pk, - metadata=metadata) + metadata=metadata, + ) # Wrong signing key assert not new_cfrag.verify(capsule, + verifying_pk=receiving_pk, delegating_pk=delegating_pk, receiving_pk=receiving_pk, - verifying_pk=receiving_pk, - metadata=metadata) + metadata=metadata, + ) def test_cfrag_serialization_no_metadata(alices_keys, bobs_keys, capsule, kfrags): @@ -75,15 +81,17 @@ def test_cfrag_serialization_no_metadata(alices_keys, bobs_keys, capsule, kfrags new_cfrag = CapsuleFrag.from_bytes(cfrag_bytes) assert new_cfrag.verify(capsule, + verifying_pk=verifying_pk, delegating_pk=delegating_pk, receiving_pk=receiving_pk, - verifying_pk=verifying_pk) + ) assert not new_cfrag.verify(capsule, + verifying_pk=verifying_pk, delegating_pk=delegating_pk, receiving_pk=receiving_pk, - verifying_pk=verifying_pk, - metadata=b'some metadata') + metadata=b'some metadata', + ) def test_cfrag_with_wrong_capsule(alices_keys, bobs_keys, @@ -103,10 +111,11 @@ def test_cfrag_with_wrong_capsule(alices_keys, bobs_keys, cfrag = reencrypt(capsule_alice2, kfrags[0], metadata=metadata) assert not cfrag.verify(capsule_alice1, + verifying_pk=PublicKey.from_secret_key(signing_sk), delegating_pk=delegating_pk, receiving_pk=receiving_pk, - verifying_pk=PublicKey.from_secret_key(signing_sk), - metadata=metadata) + metadata=metadata, + ) def test_cfrag_with_wrong_data(kfrags, alices_keys, bobs_keys, capsule_and_ciphertext, message): @@ -126,10 +135,11 @@ def test_cfrag_with_wrong_data(kfrags, alices_keys, bobs_keys, capsule_and_ciphe cfrag.point_v1 = CurvePoint.random() assert not cfrag.verify(capsule, + verifying_pk=PublicKey.from_secret_key(signing_sk), delegating_pk=delegating_pk, receiving_pk=receiving_pk, - verifying_pk=PublicKey.from_secret_key(signing_sk), - metadata=metadata) + metadata=metadata, + ) def test_cfrag_is_hashable(capsule, kfrags): diff --git a/tests/test_compatibility.py b/tests/test_compatibility.py index c3a03be..befdb97 100644 --- a/tests/test_compatibility.py +++ b/tests/test_compatibility.py @@ -160,7 +160,11 @@ def _decrypt_reencrypted(umbral, receiving_sk_bytes, delegating_pk_bytes, verify capsule = umbral.Capsule.from_bytes(bytes(capsule_bytes)) cfrags = [umbral.CapsuleFrag.from_bytes(cfrag_bytes) for cfrag_bytes in cfrags_bytes] - assert all(cfrag.verify(capsule, delegating_pk, receiving_pk, verifying_pk, metadata=metadata) + assert all(cfrag.verify(capsule, + verifying_pk=verifying_pk, + delegating_pk=delegating_pk, + receiving_pk=receiving_pk, + metadata=metadata) for cfrag in cfrags) # Decryption by Bob diff --git a/tests/test_pre.py b/tests/test_pre.py index 6306cd1..1524f18 100644 --- a/tests/test_pre.py +++ b/tests/test_pre.py @@ -91,9 +91,10 @@ def test_simple_api(num_kfrags, threshold): # Bob checks that the received cfrags are valid assert all(cfrag.verify(capsule=capsule, + verifying_pk=verifying_pk, delegating_pk=delegating_pk, receiving_pk=receiving_pk, - verifying_pk=verifying_pk) for cfrag in cfrags) + ) for cfrag in cfrags) # Decryption by Bob plaintext_reenc = decrypt_reencrypted(receiving_sk, diff --git a/umbral/capsule_frag.py b/umbral/capsule_frag.py index ffee0ef..a41bf9b 100644 --- a/umbral/capsule_frag.py +++ b/umbral/capsule_frag.py @@ -159,9 +159,9 @@ class CapsuleFrag(Serializable): def verify(self, capsule: Capsule, + verifying_pk: PublicKey, delegating_pk: PublicKey, receiving_pk: PublicKey, - verifying_pk: PublicKey, metadata: Optional[bytes] = None, ) -> bool: """