mirror of https://github.com/nucypher/nucypher.git
Unpacking message kits into retrieve().
parent
24ab7a6e4f
commit
70952329c3
|
@ -658,7 +658,7 @@ class Bob(Character):
|
|||
self.follow_treasure_map(treasure_map=treasure_map, block=block)
|
||||
|
||||
def retrieve(self,
|
||||
message_kits: UmbralMessageKit,
|
||||
*message_kits: UmbralMessageKit,
|
||||
alice_verifying_key: UmbralPublicKey,
|
||||
label: bytes,
|
||||
enrico: "Enrico" = None,
|
||||
|
|
|
@ -362,7 +362,7 @@ def test_federated_bob_retrieves_a_single_message(federated_bob,
|
|||
|
||||
alices_verifying_key = federated_alice.stamp.as_umbral_pubkey()
|
||||
|
||||
delivered_cleartexts = federated_bob.retrieve(message_kits=(the_message_kit,),
|
||||
delivered_cleartexts = federated_bob.retrieve(the_message_kit,
|
||||
enrico=capsule_side_channel.enrico,
|
||||
alice_verifying_key=alices_verifying_key,
|
||||
label=enacted_federated_policy.label)
|
||||
|
@ -385,7 +385,7 @@ def test_federated_bob_retrieves_multiple_messages_from_same_enrico(federated_bo
|
|||
|
||||
alices_verifying_key = federated_alice.stamp.as_umbral_pubkey()
|
||||
|
||||
delivered_cleartexts = federated_bob.retrieve(message_kits=three_message_kits,
|
||||
delivered_cleartexts = federated_bob.retrieve(*three_message_kits,
|
||||
enrico=capsule_side_channel.enrico,
|
||||
alice_verifying_key=alices_verifying_key,
|
||||
label=enacted_federated_policy.label)
|
||||
|
@ -412,7 +412,9 @@ def test_federated_bob_retrieves_multiple_messages_from_different_enricos(federa
|
|||
message2.sender = enrico2
|
||||
message3.sender = enrico3
|
||||
|
||||
delivered_cleartexts = federated_bob.retrieve(message_kits=(message1, message2, message3),
|
||||
delivered_cleartexts = federated_bob.retrieve(message1,
|
||||
message2,
|
||||
message3,
|
||||
alice_verifying_key=alices_verifying_key,
|
||||
label=enacted_federated_policy.label)
|
||||
|
||||
|
@ -434,7 +436,7 @@ def test_federated_bob_retrieves_twice_without_retaining_cfrags(federated_bob,
|
|||
|
||||
alices_verifying_key = federated_alice.stamp.as_umbral_pubkey()
|
||||
|
||||
delivered_cleartexts = federated_bob.retrieve(message_kits=(the_message_kit,),
|
||||
delivered_cleartexts = federated_bob.retrieve(the_message_kit,
|
||||
enrico=capsule_side_channel.enrico,
|
||||
alice_verifying_key=alices_verifying_key,
|
||||
label=enacted_federated_policy.label)
|
||||
|
@ -442,7 +444,7 @@ def test_federated_bob_retrieves_twice_without_retaining_cfrags(federated_bob,
|
|||
# We show that indeed this is the passage originally encrypted by the Enrico.
|
||||
assert b"Welcome to flippering number 1." == delivered_cleartexts[0]
|
||||
|
||||
delivered_cleartexts = federated_bob.retrieve(message_kits=(the_message_kit,),
|
||||
delivered_cleartexts = federated_bob.retrieve(the_message_kit,
|
||||
enrico=capsule_side_channel.enrico,
|
||||
alice_verifying_key=alices_verifying_key,
|
||||
label=enacted_federated_policy.label,
|
||||
|
@ -461,7 +463,7 @@ def test_federated_bob_retrieves_twice_by_retaining_cfrags(federated_bob,
|
|||
the_message_kit = capsule_side_channel()
|
||||
alices_verifying_key = federated_alice.stamp.as_umbral_pubkey()
|
||||
|
||||
delivered_cleartexts = federated_bob.retrieve(message_kits=(the_message_kit,),
|
||||
delivered_cleartexts = federated_bob.retrieve(the_message_kit,
|
||||
enrico=capsule_side_channel.enrico,
|
||||
alice_verifying_key=alices_verifying_key,
|
||||
label=enacted_federated_policy.label,
|
||||
|
@ -471,13 +473,13 @@ def test_federated_bob_retrieves_twice_by_retaining_cfrags(federated_bob,
|
|||
# Can't retrieve this message again.
|
||||
# Bob needs to either instantiate the message_kit again or use use_attached_cfrags=True.
|
||||
with pytest.raises(TypeError):
|
||||
federated_bob.retrieve(message_kits=(the_message_kit,),
|
||||
federated_bob.retrieve(the_message_kit,
|
||||
enrico=capsule_side_channel.enrico,
|
||||
alice_verifying_key=alices_verifying_key,
|
||||
label=enacted_federated_policy.label,
|
||||
)
|
||||
|
||||
delivered_cleartexts = federated_bob.retrieve(message_kits=(the_message_kit,),
|
||||
delivered_cleartexts = federated_bob.retrieve(the_message_kit,
|
||||
enrico=capsule_side_channel.enrico,
|
||||
alice_verifying_key=alices_verifying_key,
|
||||
label=enacted_federated_policy.label,
|
||||
|
@ -521,7 +523,7 @@ def test_federated_bob_cannot_resume_retrieval_without_caching(federated_bob,
|
|||
|
||||
# Since 8 Ursulas are down, Bob can only get 2 CFrags; not enough to complete retrieval.
|
||||
with pytest.raises(ursula1.NotEnoughUrsulas):
|
||||
federated_bob.retrieve(message_kits=(the_message_kit,),
|
||||
federated_bob.retrieve(the_message_kit,
|
||||
enrico=capsule_side_channel.enrico,
|
||||
alice_verifying_key=alices_verifying_key,
|
||||
label=enacted_federated_policy.label)
|
||||
|
@ -539,7 +541,7 @@ def test_federated_bob_cannot_resume_retrieval_without_caching(federated_bob,
|
|||
federated_bob.network_middleware.node_is_up(ursula4)
|
||||
|
||||
with pytest.raises(ursula1.NotEnoughUrsulas):
|
||||
federated_bob.retrieve(message_kits=(the_message_kit,),
|
||||
federated_bob.retrieve(the_message_kit,
|
||||
enrico=capsule_side_channel.enrico,
|
||||
alice_verifying_key=alices_verifying_key,
|
||||
label=enacted_federated_policy.label)
|
||||
|
@ -579,7 +581,7 @@ def test_federated_retrieves_partially_then_finishes(federated_bob,
|
|||
|
||||
# Bob can't retrieve; there aren't enough Ursulas up.
|
||||
with pytest.raises(ursula1.NotEnoughUrsulas):
|
||||
federated_bob.retrieve(message_kits=(the_message_kit,),
|
||||
federated_bob.retrieve(the_message_kit,
|
||||
enrico=capsule_side_channel.enrico,
|
||||
alice_verifying_key=alices_verifying_key,
|
||||
label=enacted_federated_policy.label,
|
||||
|
@ -599,14 +601,14 @@ def test_federated_retrieves_partially_then_finishes(federated_bob,
|
|||
|
||||
# We're not allowed to try again with a Capsule with cached CFrags if we set cache to False.
|
||||
with pytest.raises(TypeError):
|
||||
federated_bob.retrieve(message_kits=(the_message_kit,),
|
||||
federated_bob.retrieve(the_message_kit,
|
||||
enrico=capsule_side_channel.enrico,
|
||||
alice_verifying_key=alices_verifying_key,
|
||||
label=enacted_federated_policy.label,
|
||||
retain_cfrags=False)
|
||||
|
||||
# But now, with just one Ursula up, we can use the cached CFrags to get the message.
|
||||
delivered_cleartexts = federated_bob.retrieve(message_kits=(the_message_kit,),
|
||||
delivered_cleartexts = federated_bob.retrieve(the_message_kit,
|
||||
enrico=capsule_side_channel.enrico,
|
||||
alice_verifying_key=alices_verifying_key,
|
||||
label=enacted_federated_policy.label,
|
||||
|
@ -620,7 +622,7 @@ def test_federated_retrieves_partially_then_finishes(federated_bob,
|
|||
for ursula in federated_ursulas:
|
||||
federated_bob.network_middleware.node_is_down(ursula)
|
||||
|
||||
delivered_cleartexts = federated_bob.retrieve(message_kits=(the_message_kit,),
|
||||
delivered_cleartexts = federated_bob.retrieve(the_message_kit,
|
||||
enrico=capsule_side_channel.enrico,
|
||||
alice_verifying_key=alices_verifying_key,
|
||||
label=enacted_federated_policy.label,
|
||||
|
@ -633,7 +635,7 @@ def test_federated_retrieves_partially_then_finishes(federated_bob,
|
|||
the_message_kit.capsule.clear_cfrags()
|
||||
|
||||
# ...we can still get the message with the network being down because Bob has the properly completed WorkOrders cached in state.
|
||||
delivered_cleartexts = federated_bob.retrieve(message_kits=(the_message_kit,),
|
||||
delivered_cleartexts = federated_bob.retrieve(the_message_kit,
|
||||
enrico=capsule_side_channel.enrico,
|
||||
alice_verifying_key=alices_verifying_key,
|
||||
label=enacted_federated_policy.label,
|
||||
|
|
Loading…
Reference in New Issue