mirror of https://github.com/nucypher/pyUmbral.git
Merge pull request #223 from cygnusv/optional-stuff
Last minute changes before release v0.1.1-alpha.0pull/226/head
commit
75692999e4
|
@ -27,10 +27,6 @@ from umbral.config import default_params
|
|||
from umbral.fragments import KFrag, CapsuleFrag
|
||||
from umbral import pre
|
||||
|
||||
import pytest
|
||||
|
||||
pytestmark = pytest.mark.xfail(reason="Test vectors are outdated")
|
||||
|
||||
def test_curvebn_operations():
|
||||
|
||||
vector_file = os.path.join('vectors', 'vectors_curvebn_operations.json')
|
||||
|
@ -48,14 +44,14 @@ def test_curvebn_operations():
|
|||
result = bytes.fromhex(op_result['result'])
|
||||
expected[op_result['operation']] = CurveBN.from_bytes(result)
|
||||
|
||||
test = [ ('Addition', bn1 + bn2),
|
||||
('Subtraction', bn1 - bn2),
|
||||
('Multiplication', bn1 * bn2),
|
||||
('Division', bn1 / bn2),
|
||||
('Pow', bn1 ** bn2),
|
||||
('Mod', bn1 % bn2),
|
||||
('Inverse', ~bn1),
|
||||
('Neg', -bn1),
|
||||
test = [('Addition', bn1 + bn2),
|
||||
('Subtraction', bn1 - bn2),
|
||||
('Multiplication', bn1 * bn2),
|
||||
('Division', bn1 / bn2),
|
||||
('Pow', bn1 ** bn2),
|
||||
('Mod', bn1 % bn2),
|
||||
('Inverse', ~bn1),
|
||||
('Neg', -bn1),
|
||||
]
|
||||
|
||||
for (operation, result) in test:
|
||||
|
@ -95,18 +91,18 @@ def test_point_operations():
|
|||
for op_result in vector_suite['vectors']:
|
||||
expected[op_result['operation']] = bytes.fromhex(op_result['result'])
|
||||
|
||||
test = [ ('Addition', point1 + point2),
|
||||
('Subtraction', point1 - point2),
|
||||
('Multiplication', bn1 * point1),
|
||||
('Inversion', -point1),
|
||||
]
|
||||
test = [('Addition', point1 + point2),
|
||||
('Subtraction', point1 - point2),
|
||||
('Multiplication', bn1 * point1),
|
||||
('Inversion', -point1),
|
||||
]
|
||||
|
||||
for (operation, result) in test:
|
||||
assert result == Point.from_bytes(expected[operation]), 'Error in {}'.format(operation)
|
||||
|
||||
test = [ ('To_affine.X', point1.to_affine()[0]),
|
||||
('To_affine.Y', point1.to_affine()[1]),
|
||||
]
|
||||
test = [('To_affine.X', point1.to_affine()[0]),
|
||||
('To_affine.Y', point1.to_affine()[1]),
|
||||
]
|
||||
|
||||
for (operation, result) in test:
|
||||
assert result == int.from_bytes(expected[operation], 'big'), 'Error in {}'.format(operation)
|
||||
|
@ -139,16 +135,12 @@ def test_kfrags():
|
|||
except OSError:
|
||||
raise
|
||||
|
||||
|
||||
verifying_key = UmbralPublicKey.from_bytes(bytes.fromhex(vector_suite['verifying_key']))
|
||||
delegating_key = UmbralPublicKey.from_bytes(bytes.fromhex(vector_suite['delegating_key']))
|
||||
receiving_key = UmbralPublicKey.from_bytes(bytes.fromhex(vector_suite['receiving_key']))
|
||||
|
||||
kfrags = [ KFrag.from_bytes(bytes.fromhex(json_kfrag['kfrag']))
|
||||
for json_kfrag in vector_suite['vectors']]
|
||||
|
||||
|
||||
for kfrag in kfrags:
|
||||
for json_kfrag in vector_suite['vectors']:
|
||||
kfrag = KFrag.from_bytes(bytes.fromhex(json_kfrag['kfrag']))
|
||||
assert kfrag.verify(signing_pubkey=verifying_key,
|
||||
delegating_pubkey=delegating_key,
|
||||
receiving_pubkey=receiving_key), \
|
||||
|
@ -173,9 +165,9 @@ def test_cfrags():
|
|||
delegating_key = UmbralPublicKey.from_bytes(bytes.fromhex(vector_suite['delegating_key']))
|
||||
receiving_key = UmbralPublicKey.from_bytes(bytes.fromhex(vector_suite['receiving_key']))
|
||||
|
||||
kfrags_n_cfrags = [ ( KFrag.from_bytes(bytes.fromhex(json_kfrag['kfrag'])),
|
||||
CapsuleFrag.from_bytes(bytes.fromhex(json_kfrag['cfrag'])))
|
||||
for json_kfrag in vector_suite['vectors']]
|
||||
kfrags_n_cfrags = [(KFrag.from_bytes(bytes.fromhex(json_kfrag['kfrag'])),
|
||||
CapsuleFrag.from_bytes(bytes.fromhex(json_kfrag['cfrag'])))
|
||||
for json_kfrag in vector_suite['vectors']]
|
||||
|
||||
capsule.set_correctness_keys(delegating=delegating_key,
|
||||
receiving=receiving_key,
|
||||
|
@ -192,6 +184,5 @@ def test_cfrags():
|
|||
assert new_cfrag._point_v1 == cfrag._point_v1
|
||||
assert new_cfrag._kfrag_id == cfrag._kfrag_id
|
||||
assert new_cfrag._point_precursor == cfrag._point_precursor
|
||||
assert new_cfrag._point_xcoord == cfrag._point_xcoord
|
||||
assert new_cfrag.proof is None
|
||||
assert cfrag.to_bytes() == new_cfrag.to_bytes()
|
||||
assert cfrag.to_bytes() == new_cfrag.to_bytes()
|
||||
|
|
|
@ -21,6 +21,7 @@ def hexlify(data):
|
|||
except AttributeError:
|
||||
return bytes(data).hex()
|
||||
|
||||
|
||||
def create_test_vector_file(vector, filename, generate_again=False):
|
||||
path = os.path.join(os.path.dirname(__file__), filename)
|
||||
|
||||
|
@ -53,12 +54,21 @@ receiving_key = receiving_privkey.get_pubkey()
|
|||
|
||||
signer = Signer(signing_privkey)
|
||||
|
||||
kfrags = pre.generate_kfrags(delegating_privkey, signer, receiving_key, 6, 10)
|
||||
kfrags = pre.generate_kfrags(delegating_privkey=delegating_privkey,
|
||||
receiving_pubkey=receiving_key,
|
||||
threshold=6,
|
||||
N=10,
|
||||
signer=signer,
|
||||
)
|
||||
|
||||
plain_data = b'peace at dawn'
|
||||
|
||||
ciphertext, capsule = pre.encrypt(delegating_key, plain_data)
|
||||
|
||||
capsule.set_correctness_keys(delegating=delegating_key,
|
||||
receiving=receiving_key,
|
||||
verifying=verifying_key)
|
||||
|
||||
cfrag = pre.reencrypt(kfrags[0], capsule)
|
||||
points = [capsule._point_e, cfrag._point_e1, cfrag.proof._point_e2,
|
||||
capsule._point_v, cfrag._point_v1, cfrag.proof._point_v2,
|
||||
|
@ -79,25 +89,25 @@ bn1 = CurveBN.gen_rand(curve)
|
|||
bn2 = CurveBN.gen_rand(curve)
|
||||
|
||||
# Expected results for some binary operations
|
||||
expected = [ ('Addition', bn1 + bn2),
|
||||
('Subtraction', bn1 - bn2),
|
||||
('Multiplication', bn1 * bn2),
|
||||
('Division', bn1 / bn2),
|
||||
('Pow', bn1 ** bn2),
|
||||
('Mod', bn1 % bn2),
|
||||
('Inverse', ~bn1),
|
||||
('Neg', -bn1),
|
||||
]
|
||||
expected = [('Addition', bn1 + bn2),
|
||||
('Subtraction', bn1 - bn2),
|
||||
('Multiplication', bn1 * bn2),
|
||||
('Division', bn1 / bn2),
|
||||
('Pow', bn1 ** bn2),
|
||||
('Mod', bn1 % bn2),
|
||||
('Inverse', ~bn1),
|
||||
('Neg', -bn1),
|
||||
]
|
||||
|
||||
expected = [ {'operation' : op, 'result' : hexlify(result) } for (op, result) in expected ]
|
||||
expected = [{'operation': op, 'result': hexlify(result)} for (op, result) in expected]
|
||||
|
||||
# Definition of test vector
|
||||
vector_suite = {
|
||||
'name' : 'Test vectors for CurveBN operations',
|
||||
'params' : 'default',
|
||||
'first operand' : hexlify(bn1),
|
||||
'second operand' : hexlify(bn2),
|
||||
'vectors' : expected
|
||||
'name': 'Test vectors for CurveBN operations',
|
||||
'params': 'default',
|
||||
'first operand': hexlify(bn1),
|
||||
'second operand': hexlify(bn2),
|
||||
'vectors': expected
|
||||
}
|
||||
|
||||
json_file = 'vectors_curvebn_operations.json'
|
||||
|
@ -111,23 +121,22 @@ create_test_vector_file(vector_suite, json_file, generate_again=generate_again)
|
|||
##################
|
||||
|
||||
# Test vectors for different kinds of inputs (bytes, Points, CurveBNs, etc.)
|
||||
inputs = ( [b''],
|
||||
[b'abc'],
|
||||
[capsule._point_e],
|
||||
[z],
|
||||
[capsule._point_e, z],
|
||||
points,
|
||||
)
|
||||
inputs = ([b''],
|
||||
[b'abc'],
|
||||
[capsule._point_e],
|
||||
[z],
|
||||
[capsule._point_e, z],
|
||||
points,
|
||||
)
|
||||
|
||||
vectors = list()
|
||||
for input_to_hash in inputs:
|
||||
bn_output = CurveBN.hash(*input_to_hash, params=params)
|
||||
json_input = [{ 'class' : data.__class__.__name__,
|
||||
'bytes' : hexlify(data),
|
||||
}
|
||||
for data in input_to_hash]
|
||||
json_input = [{'class': data.__class__.__name__,
|
||||
'bytes': hexlify(data),
|
||||
} for data in input_to_hash]
|
||||
|
||||
json_input = { 'input' : json_input, 'output' : hexlify(bn_output) }
|
||||
json_input = {'input': json_input, 'output': hexlify(bn_output) }
|
||||
|
||||
vectors.append(json_input)
|
||||
|
||||
|
@ -149,24 +158,24 @@ point1 = Point.gen_rand(curve)
|
|||
point2 = Point.gen_rand(curve)
|
||||
|
||||
# Expected results for some Point operations
|
||||
expected = [ ('Addition', point1 + point2),
|
||||
('Subtraction', point1 - point2),
|
||||
('Multiplication', bn1 * point1),
|
||||
('Inversion', -point1),
|
||||
('To_affine.X', point1.to_affine()[0]),
|
||||
('To_affine.Y', point1.to_affine()[1]),
|
||||
]
|
||||
expected = [('Addition', point1 + point2),
|
||||
('Subtraction', point1 - point2),
|
||||
('Multiplication', bn1 * point1),
|
||||
('Inversion', -point1),
|
||||
('To_affine.X', point1.to_affine()[0]),
|
||||
('To_affine.Y', point1.to_affine()[1]),
|
||||
]
|
||||
|
||||
expected = [ {'operation' : op, 'result' : hexlify(result) } for (op, result) in expected ]
|
||||
expected = [{'operation': op, 'result': hexlify(result)} for (op, result) in expected]
|
||||
|
||||
# Definition of test vector
|
||||
vector_suite = {
|
||||
'name' : 'Test vectors for Point operations',
|
||||
'params' : 'default',
|
||||
'first Point operand' : hexlify(point1),
|
||||
'second Point operand' : hexlify(point2),
|
||||
'CurveBN operand' : hexlify(bn1),
|
||||
'vectors' : expected
|
||||
'name': 'Test vectors for Point operations',
|
||||
'params': 'default',
|
||||
'first Point operand': hexlify(point1),
|
||||
'second Point operand': hexlify(point2),
|
||||
'CurveBN operand': hexlify(bn1),
|
||||
'vectors': expected
|
||||
}
|
||||
|
||||
json_file = 'vectors_point_operations.json'
|
||||
|
@ -178,27 +187,27 @@ create_test_vector_file(vector_suite, json_file, generate_again=generate_again)
|
|||
# unsafe_hash_to_point #
|
||||
########################
|
||||
|
||||
inputs = ( b'',
|
||||
b'abc',
|
||||
b'NuCypher',
|
||||
b'Nucypher',
|
||||
inputs = (b'',
|
||||
b'abc',
|
||||
b'NuCypher',
|
||||
b'Nucypher',
|
||||
)
|
||||
|
||||
vectors = list()
|
||||
for data in inputs:
|
||||
for label in inputs:
|
||||
point = unsafe_hash_to_point(label=label, data=data, params=params)
|
||||
json_input = { 'data' : hexlify(data),
|
||||
'label' : hexlify(label),
|
||||
'point' : hexlify(point),
|
||||
}
|
||||
json_input = {'data': hexlify(data),
|
||||
'label': hexlify(label),
|
||||
'point': hexlify(point),
|
||||
}
|
||||
|
||||
vectors.append(json_input)
|
||||
|
||||
vector_suite = {
|
||||
'name' : 'Test vectors for umbral.point.Point.unsafe_hash_to_point',
|
||||
'params' : 'default',
|
||||
'vectors' : vectors
|
||||
'name': 'Test vectors for umbral.point.Point.unsafe_hash_to_point',
|
||||
'params': 'default',
|
||||
'vectors': vectors
|
||||
}
|
||||
|
||||
create_test_vector_file(vector_suite, 'vectors_unsafe_hash_to_point.json', generate_again=generate_again)
|
||||
|
@ -213,21 +222,21 @@ vectors = list()
|
|||
for kfrag in kfrags:
|
||||
assert kfrag.verify(verifying_key, delegating_key, receiving_key)
|
||||
|
||||
json_input = { 'kfrag' : hexlify(kfrag) }
|
||||
json_input = {'kfrag': hexlify(kfrag)}
|
||||
|
||||
vectors.append(json_input)
|
||||
|
||||
vector_suite = {
|
||||
'name' : 'Test vectors for KFrags',
|
||||
'description' : ('This is a collection of KFrags generated under the '
|
||||
'enclosed delegating, verifying and receiving keys. '
|
||||
'Each of them must deserialize correctly and the '
|
||||
'call to verify() must succeed.'),
|
||||
'params' : 'default',
|
||||
'verifying_key' : hexlify(verifying_key),
|
||||
'delegating_key' : hexlify(delegating_key),
|
||||
'receiving_key' : hexlify(receiving_key),
|
||||
'vectors' : vectors
|
||||
'name': 'Test vectors for KFrags',
|
||||
'description': ('This is a collection of KFrags generated under the '
|
||||
'enclosed delegating, verifying and receiving keys. '
|
||||
'Each of them must deserialize correctly and the '
|
||||
'call to verify() must succeed.'),
|
||||
'params': 'default',
|
||||
'verifying_key': hexlify(verifying_key),
|
||||
'delegating_key': hexlify(delegating_key),
|
||||
'receiving_key': hexlify(receiving_key),
|
||||
'vectors': vectors
|
||||
}
|
||||
|
||||
#print(json.dumps(vector_suite, indent=2))
|
||||
|
@ -246,22 +255,22 @@ vectors = list()
|
|||
|
||||
for kfrag in kfrags:
|
||||
cfrag = pre.reencrypt(kfrag, capsule, provide_proof=False)
|
||||
json_input = { 'kfrag' : hexlify(kfrag), 'cfrag' : hexlify(cfrag) }
|
||||
json_input = {'kfrag': hexlify(kfrag), 'cfrag': hexlify(cfrag)}
|
||||
vectors.append(json_input)
|
||||
|
||||
vector_suite = {
|
||||
'name' : 'Test vectors for CFrags',
|
||||
'description' : ('This is a collection of CFrags, originated from the '
|
||||
'enclosed Capsule, under the enclosed delegating, '
|
||||
'verifying and receiving keys. Each CFrag must deserialize '
|
||||
'correctly and can be replicated with a call to '
|
||||
'`pre.reencrypt(kfrag, capsule, provide_proof=False)`'),
|
||||
'params' : 'default',
|
||||
'capsule' : hexlify(capsule),
|
||||
'verifying_key' : hexlify(verifying_key),
|
||||
'delegating_key' : hexlify(delegating_key),
|
||||
'receiving_key' : hexlify(receiving_key),
|
||||
'vectors' : vectors
|
||||
'name': 'Test vectors for CFrags',
|
||||
'description': ('This is a collection of CFrags, originated from the '
|
||||
'enclosed Capsule, under the enclosed delegating, '
|
||||
'verifying and receiving keys. Each CFrag must deserialize '
|
||||
'correctly and can be replicated with a call to '
|
||||
'`pre.reencrypt(kfrag, capsule, provide_proof=False)`'),
|
||||
'params': 'default',
|
||||
'capsule': hexlify(capsule),
|
||||
'verifying_key': hexlify(verifying_key),
|
||||
'delegating_key': hexlify(delegating_key),
|
||||
'receiving_key': hexlify(receiving_key),
|
||||
'vectors': vectors
|
||||
}
|
||||
|
||||
#print(json.dumps(vector_suite, indent=2))
|
||||
|
|
|
@ -1,51 +1,51 @@
|
|||
{
|
||||
"name": "Test vectors for CFrags",
|
||||
"description": "This is a collection of CFrags, originated from the enclosed Capsule, under the enclosed delegating, verifying and receiving keys. Each CFrag must deserialize correctly and can be replicated with a call to `pre.reencrypt(kfrag, capsule, provide_proof=False)`",
|
||||
"params": "default",
|
||||
"capsule": "0297f0bba140662bc46937870d85f3edd6faf45b9ffb4d894b336f36c64f6eb0a903b07d572288d3eed02d09b459d4ca643b27a29dca95cc3249e4f7c64b6c45e6813b039e0c472210207d543efe46b5d7a41aadfa80748dbfac7f70092f0fdbfcc9",
|
||||
"verifying_key": "02c2a1b400f2fc5ecbc196bb28fd714f2b4dce8d014e57f8530734422da11e214b",
|
||||
"delegating_key": "023f3960d43da063476bbabe5011818d84154d9c6a683eeadbac94252f9ec2a843",
|
||||
"receiving_key": "0205a51f53d40fd00df0824e70581843b9a561458dece9b1dfafd903f0cb612712",
|
||||
"capsule": "022addcd977be7783bbdcff3b648f4d02507bb52ab6cb4094109e8e282ffdcf63d021a2fdcc42c6566cd3901d36726cdb5b91c8c7ba83a2962361ab19aed22e60b1b17ebb346a22775ae84f16b1c9496f5520c6e6344e6a307be835571f7594df109",
|
||||
"delegating_key": "0268ae7a68ad3598e1de622874133378ed87f08a4a55f583232b9f823c8d0e0ccc",
|
||||
"vectors": [
|
||||
{
|
||||
"kfrag": "5d8d984fb1d5c1f06d6ac50401eae7172aaf5206e3c90e59a1ccf5bd09c2f690356f3ff4b8a1d9734ec261ccdf79433240e70a8dca61f9acdaeda93619c02b8203852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f03b37bf8a3bb51bf57d45f435fd9e30c70101271d88520a6cce4234934f82a322b02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74b81a70d3a2d12b77d09664efcdd29957620734f95c3ae6488e168ef10d8566fb082349d17c696f33b6bdd36a0ce564d019bff774366fa6ae758b52832d354a00",
|
||||
"cfrag": "0379df73c1099812531934e2bbde23dd065d9cbc3edf0dbfc956725645ce8f81e3039ccfa0de772a7b0598c145a05a572dee0134b7b6d38bb68ea9e52cf79bab3c635d8d984fb1d5c1f06d6ac50401eae7172aaf5206e3c90e59a1ccf5bd09c2f69003852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74"
|
||||
"kfrag": "d6cf3fe9cbefd61c6fa7381ee47d3f26d92cd24672cc9b06bed719d65cfdfbac3ad1b2cc730abff34cdf9a5a03737064313e3cd4276f7fa4bf083ba65c4136200356f933ae695815a43680e9e7c5d9fe731de109c7a70bcb231d09d3b0d08fef32024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa050387378d0b45800d78482ed42d103179b58a6864de1bb3493038b7b049cbdd119f29b419e5c0e909286d1fa0de721c46779727c4758602d4acdc3956c2483b1bdf9e4059e7f4ca9e4524e7de30d1c06f1537caa89b0a691dd3521a3896b45c29b767d368c25fb8754598c5075da5dcc23b0ac3073056929c7692627bbd9ebf0eab",
|
||||
"cfrag": "03848cfadf9c68ee30c56e79e50720018127c5c99b77b2d58a3d1281d69da4dcec022275455906d5d3c52f9a9edd17a759beaa0756f6f0124847cee7935f6010c44fd6cf3fe9cbefd61c6fa7381ee47d3f26d92cd24672cc9b06bed719d65cfdfbac024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa05"
|
||||
},
|
||||
{
|
||||
"kfrag": "7467210ecfad8e1de8c7258ec67d95edc76c98032a02d1adefff03dd6dd5bd313cd7bfac9dcd316ae9899710155aa3875629643547f0f0a7f6c387708639134803852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f0250aa7705ae24dfb938deb801984700955e0b24a2b42e8bf2c77c6be4cf93ac2602cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f742035151595b0a5dd72493405a1f21fda788aba56a339d05695a443bd30a27198e950f0fd5dbe722c02a207ea6bc8cde1f5fd9db2e515f2e77ce6d48ec9cf3741",
|
||||
"cfrag": "0204c9b9ca83479e3d6a4e915d54d6d59f491548a7453401f99354f019f7c4938c0218425e07a84a1cd3f89ccb8e178a2e52de8a2b1a74e2d1280f4c183805ffc79a7467210ecfad8e1de8c7258ec67d95edc76c98032a02d1adefff03dd6dd5bd3103852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74"
|
||||
"kfrag": "697ec723b1beb784893e14efcef48fe28cbd5918224f5ba4e985aeb2b303de4737ac6a6a906a6b2dc55db7798637f613b73f7e5de7c5e8be61b1bc5f0d3f00d40380731ff7c81a3fbfeed9388ac19c4be5df2fa01f047857b1d7011330089dcb26024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa050341ac15c6bcfa4779344f2dad384b68365eb472edef86b5a653784a1c38cda73b366b0460f1e1963826c1ea5d25d0f7a0a7298435282fce0cc5a767eead9cffd18c131ef289bbb1593783876a6964d09f5951c0d61425fc1d0b95c6c2af55f61601dedab95d6bd966fc38c21f84498381d7a5aad3daad522592ab5b8a1496256f",
|
||||
"cfrag": "02b8288d4b1967204280c13e4e50315ccc9fe879c6bd88cfcf91c80f19b8bee63b02c1b77b014da16119b49b893312c9d9b63397a0181c996d9b5a9e5ba7785925cc697ec723b1beb784893e14efcef48fe28cbd5918224f5ba4e985aeb2b303de47024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa05"
|
||||
},
|
||||
{
|
||||
"kfrag": "b709ebb856f0f47f3dcfa1eeebe542151d8d83aad6612d604154060ceaab168d3007634e9173eafd1fae78649fb7e1ba4a8a70fa4595f1055cc8b5bd98b524be03852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f035bddbe1571077036f101b991d46be945d8eb9f738671edfa3cad51969adbddee02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74ad7f7be9e6b3b6cf685186efc80b670ffb949ba394f1b3debf8878a11a185e17c2160fd0f8bd98a56df6678877573f5d2554543452fcc44b5fd2c71a9333aac2",
|
||||
"cfrag": "023dfb23625154d895e245ce7ab15b50ca8a1f2563c3b7bbe5571fa208acefd853036dd3107e386dec90bf78f9164d87563360ff3c2079031234b17539a739d22413b709ebb856f0f47f3dcfa1eeebe542151d8d83aad6612d604154060ceaab168d03852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74"
|
||||
"kfrag": "95fa474bb23428b7b1d329f23006e3b4b7968dae342f3860c85cb5cc8078f93f9cadd99db9097fe2c79fdc27528a7a5a908f786448a526e0b5333f36cffe636b02187712e01ab5e6bded45eb73cf561688b15b9a0058b773aceea2dac7f1e3ad11024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa050303362ae866a69acb35c21862c5d89853134b4408424d0695051ec4b60da3c6f3fd2f45a41e4ad8c2138e4fbc8183e2fe87120c474997a788194b70b51f44c2203044e782adecc4a7d74404da3a585ef34d7acf2c87cc1c8aad8dfab5c03cb4bcb46015c379c9b454a6562b51aa0a7454e6077cd9df7fb5d53a7136d4705c8ab6",
|
||||
"cfrag": "024f2c094c77247a50b565f64f117b12c4b99e45648d78fd56ef16a2b4a1ce3d7b03358adcee51aea61adff373fa0f83ea14f8c8ef2df66c3d5cfd812d94301a476d95fa474bb23428b7b1d329f23006e3b4b7968dae342f3860c85cb5cc8078f93f024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa05"
|
||||
},
|
||||
{
|
||||
"kfrag": "9ae9e03c94677c18754394e2b9886cf40e4a4a59481ea70f3c9c5b022f3375b5150504015593744358c0cb3f48bc62541adb3b474fab8dd2bfc264774787e12703852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f02f438633ce738cc7f9a7f340a833603477b06e8c5bfe7a8c0155fc607702521eb02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74dc1b6c5d0d40db9f5867e3eb802e3ad2c25f9e0187c235a208c8006a71c74974c3d0cdca9351ec6acedc2bb38b91bd098c4c1f44b6f941c0bec11c1a133e1a72",
|
||||
"cfrag": "02f9dc5c0046c18236f7f26e1bed7fa779c640062bc87aa6f0e8479f78791b9f98027a84276d7319277ffa2e5783e9df2f0e7b6d85e429485f89899ab75327ad37ee9ae9e03c94677c18754394e2b9886cf40e4a4a59481ea70f3c9c5b022f3375b503852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74"
|
||||
"kfrag": "6677cc88841fcfac22961f221e8d386efa8e8d70f823849472fc635cd17625cee2df8cb936a8159b0d469c29dc85bb0a3fc9d44bf4cb843b735145e7783bda6f03ff381ee51f5c61d0d6e33c8478cd7d652f1e091201bdbcf0b79ba5b13cef1723024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa05038757dee465679724030d64a55eb1a6f0de3636a8bfb1297309b2ddbe7b00da678370057811b6e6d8a1e4c4415f029a98bdbe54234cf1952830cfbb251cf6765b8a92a29edfcf0de7dd1dfb0ef9ddab0a6fc4d12b72781fd291d04e43a8c8979e9a6e2b4e6cd76dd21069cc06e7349663914412ec6d2e16c3bdab908a99cadfc1",
|
||||
"cfrag": "023b150e2b610a32a250dbb822c87a7dcb57d0e04bbcf383da71d67c963099cc23025cf708dfa30dfbbc5150935c41fd7cd310ddbe3e7616265c6e5a8d43c0dfa0d46677cc88841fcfac22961f221e8d386efa8e8d70f823849472fc635cd17625ce024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa05"
|
||||
},
|
||||
{
|
||||
"kfrag": "a446b980ce7daffafe4aed2cc9703fc10aeb9b2f658f33b9034f306c16f519ce76a0cf8351a7e8430d3c2a18faebd8290cc5c7fdcdf00c73f7ddf2fc71402a0203852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f03d1aaee8ab7e410145be657333f08f3733efa3f1c129d11ec7f73b332e55132c902cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f740a01f98cb250ad84c0b9b7f260d6f4ea1524552cc85362981f7aaaa75275683e21d34c1b1d759bff1e19b11838a92c9431356f5c73b9dbce3bd2c6ecd1d22254",
|
||||
"cfrag": "0253a1b31530feae91844d3dfcc72510438c4ca389d4524f05f993b971129dc27f025878295e479768168bfaeb6cdcda8498036945b66d818140efb69ac2106c14c2a446b980ce7daffafe4aed2cc9703fc10aeb9b2f658f33b9034f306c16f519ce03852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74"
|
||||
"kfrag": "0ad4f056902a8eadbc59fb61b5890d28a8116a768d0ad15ea9880cf185916a842b2ad0b016d2ab5ce760d909244788865554342d40e13f9f3cd6668a21cd4215022e0433fe4f5e1518779d016260d00e091d44668c1a413ecfd46fdff6a1bfba58024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa0503e3fde4201890dfcccfb63c61971d95a8f7209f391bf2f64e7532d62016d8734aa677c3b6c797a28ca2bec4d22d77862a8d7279530d7571e1cd97a09266d47d82f9fc8c89faab9def2f3502b653c11b2d3e4025fe449e5e53989ae6bdc59ceb07de1e0c916b4eac67ccdf11f26fcee50886112ad46239a48cdff3c916679ee326",
|
||||
"cfrag": "02f8c12c4ad334677e0140bd0327737bd0c2386f9fa76a9e55aa9d89f5b8534551038d4c6a0106383c1fb06ec02aa2fcefbcfaf6b27fafb5685f713466c1651622ad0ad4f056902a8eadbc59fb61b5890d28a8116a768d0ad15ea9880cf185916a84024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa05"
|
||||
},
|
||||
{
|
||||
"kfrag": "05b36934a6df7e6ad0b61585c5983a415210af3f0baa0871adff1755fda00378670b2fc9a6af6578462459755a743fe2af66deaa4561ad16ffe42e9a7454860e03852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f038b5516cceef4886d8df5c9aeb39be19334b91b36809c5598a83234a948bc3a1802cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f7401ffbcdbe1dbbd116cb8f7596cde504d8461777b5a02a57b9ef4807b2553e4dd81e69c665741dcfd32f5c096014e4161a44a00e66b6770bd0250431108322748",
|
||||
"cfrag": "02db3143c98c8ff66e44635704b877f878d30245e2222bb98a2d0e929d9d1b603802fcd6e22029999dfbf284c7b7cf72d9c41ba70d47ad33f1846198bd9bfaa8246305b36934a6df7e6ad0b61585c5983a415210af3f0baa0871adff1755fda0037803852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74"
|
||||
"kfrag": "dd9515377085b94f53a0148d0ed7d6b68fcc414e04b01b8bf85fdf79f2b1bbbebfe3c4c656d0e549cb69af351cfa349a03bca74ebcd43e2b55eea4e0aa0865b602a5aa99e2684f395323bc4c21867b9b45166b4b7145dc9e62c8d1839987ac90ea024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa05036469216debd9f47a6454701ebf8bd28a5cf0923ab3d52dd66b6ecbe365e8d4fce3c901f156e2af9e6e4f500e149757d040c11c4140cda667a78c0ee1d2873043e32a6c0821c65de9f395a6b8fb6657d091b2d64f391fff36a5eb74dd308985bb12b73c978cf4a31879f9bbf37c8296a7053b807ab41fce32d89635abc6b2c48d",
|
||||
"cfrag": "03f8a73d4bd92c89958586160d6d81d65cdb9468caec57c0ba43426203da9991420351bc3785b6071273051e9d389b813a8d28be1636a54f1bf47510d562bd649d89dd9515377085b94f53a0148d0ed7d6b68fcc414e04b01b8bf85fdf79f2b1bbbe024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa05"
|
||||
},
|
||||
{
|
||||
"kfrag": "d023dab1e24e4f9824300f81ee6701f3e4e77124d413abb09ee2d7c24ce8f602dc8b806a4132fbb7cada12ca87505bda614292cbe4edb080b1cee64851aca48303852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f02f8cf534db707eb210b6e5ac26d11cfe70fbd75d1bd5f48227f2aae3653bb2d7f02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74ea6e32f4c32649682d098a60c875bbac0e989dda09a1c637ebafb9cef72102e1f1d66ce19f89f017b6a78bed0be8ffa758f6ddff8ac9480973aedf6549c44f41",
|
||||
"cfrag": "037d6e5bebd226aec4cca79ab1cc3296334ff77695a9eb46839a7044af2fa2eb800266777068c30df822afa11d3b63fbef47f49633571c61a68d81f85efe1c340bb4d023dab1e24e4f9824300f81ee6701f3e4e77124d413abb09ee2d7c24ce8f60203852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74"
|
||||
"kfrag": "85ef419f7cf403cc07d408a314b0bb5823d87d6ff2de048e4994f0cca366b737ca39040f1408ad26e68b0562268617996ea598d4fcbd92284e63561aac23114c03a9c1b7b5288a67159872a7ecd13eb988052431cf3f79b849652c7fa72a6aae4e024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa0503dd85bfbbd0db316ed138e84a8f89af9d3669a4f839358b1c9033e742410afe8b691bdf17d142080f41b0795f08e1c021faa2628583c777a4006ee7548d591c3dcf24fe9349da31bbd0613bdb3ce4522b35e27b4c6e3e2cedd6ad4a19a8bd7cdc4d873e83e588efe2872a751bf22fa9e20097d085034f9c4c7a3371d4ec2db899",
|
||||
"cfrag": "03ea12e438f9e6f6f70e4a07beb1aa78f73a9ccb3df7c5c78a95bbdf47ea7592b9027fc277093bfdaab00dfcaaf31fe8206173044c8e6d7c7b762ba75e7c36368c0e85ef419f7cf403cc07d408a314b0bb5823d87d6ff2de048e4994f0cca366b737024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa05"
|
||||
},
|
||||
{
|
||||
"kfrag": "557d935cad6b03690786a893a5b64061260cf1672c1dd300e82f5abd37939dc2529ed1bf58b4f390beafe802e3d7fa4f34946b202766ef57f4ab42c27bedac2d03852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f03abd7838aae2444a42205a7452cc3d34e66d2488d856c9e65a2076299cacce21a02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74a88c377e7a8ea8decd327b2c82645c7c90a1ae6078ddfa4f968863d65cabe5717df519613a5b505a92c93dadcc220c5a16e572005d7e15dfd00150b620e04e6d",
|
||||
"cfrag": "02a8eab6617c57911936317773b9c1d85af14870628fa64e2436bd951a92bddadc031d8ba04de606cc3032d6f0c749b71fa47b630b036170bb260c4d62ead0363168557d935cad6b03690786a893a5b64061260cf1672c1dd300e82f5abd37939dc203852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74"
|
||||
"kfrag": "5fcc542f949b8a511cca95a3baba408586817b138bdf6fe3976419bca73e15af05b018f9ed4b4fb48757caed1f382611705d69e72eb9a33fe1a30fb62bfcfba1039d50507caafeefa75fd7d86e98d30ad6ffc52dca78b9dcfe6773669ee0cbcc00024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa0503eb9e57f2f37faa6ca18b0d471b7c388dcc28aa86280ccb7aac665a099022fb64f3589141dbfaddd16a4ac52b4533db941d6bb3b9e4f38307ebee9175eddab764391733958111cae49fc6d2371f932ed0fc98e21a08b1fcf28ececb8998a92d850c139aa7f0e8c1bca9910d6cf6108ae288c03f5ea72e4f96169b0b451dd171b2",
|
||||
"cfrag": "029ba810558536f451823d3ab29eceeab14ff659cc548545bf6ee3e193ff6d4e97027172a0df1766f9123f1885046406d2bd4caa3ef04234c866bb23a7de942cd7705fcc542f949b8a511cca95a3baba408586817b138bdf6fe3976419bca73e15af024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa05"
|
||||
},
|
||||
{
|
||||
"kfrag": "f08a220fdebc0fc533b1c3ea0fbae6b05199a414127dbe43c92ba4b474a641492feea04ce6cab256f799986da6b1ff9786e92b4dd22eb4db36b711bc3f5213b203852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f03d2ef2224a4ae6c268423c99282c157735bdfcc5580aeb48ade7609f94423c11c02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f7422fbac3626473a999f6d2d0fe4df8564bb9ecf0fb8c8cf4af3a66108d7f3b222ffd3336cc4197d4fc782743deb01b9903705d0f458d558abd33ed15ec5f9d7ee",
|
||||
"cfrag": "037548c3ae7e77d75930ad35cfa4b344e7ac807eabe07c5380c0adea02f162610403eeda5ece0c90bf314931ad865c592b053aaea3be7fad76d8c1d89a8f886966b1f08a220fdebc0fc533b1c3ea0fbae6b05199a414127dbe43c92ba4b474a6414903852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74"
|
||||
"kfrag": "35a628e751b5383192b7ddaab26fe720c3e80beec30aa7ea74c9598b6a15f46cce2407a38a783b54400c3ffed32ae571db7e54e3f6e5bc4577f3abd5813b8a4803d13dedd7a533d25a4bb3179a9394dd1c8593831b7d064a98844d1b14613249f4024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa050385630521f909716f0a86301819cf98863afbb93962b970d555eaccb0a7e9f6c0cae97674b2c82f0166c400e8b871fdfe0f45739066981755224047ae2b061aac166c46dc2aa4efa62083b4c20a752e82fbe084e9d7fa5b53eeb5b5cf0a4db4bb88cd2553437377c199661526ee8f1c55004867f55ca15b3d4700f0cacd1f24ca",
|
||||
"cfrag": "029401407055c8f9e7a7e2fcdd65d8874ae25f6d805000f63dbb24625f83dd5e72023ba7dd34ce05382a0fed5991e3f512dbea7d09b52806daf01d567de5a7121f0435a628e751b5383192b7ddaab26fe720c3e80beec30aa7ea74c9598b6a15f46c024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa05"
|
||||
},
|
||||
{
|
||||
"kfrag": "a7f29c801442f26c1697c6b010c75a2e9c8b01157050e3d4e5eee2dc72b2dcf9544936536c75efbd390103c67f1c901358c08e9dd2beb389eebd65724ef5e08b03852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f03df02e69959e9afa504ea4f329d7b42ac4fd9ead5e7cf1d7c999968ea10e28e9b02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74e18c7a7ced0b978f8b84e3a703d7b9da2244486012e853827354221c081b598c8cd75b20c7fd174436d7b4454e337f7e863649a17502a081f1fb2c5f4d0bfe20",
|
||||
"cfrag": "0253309c170db0520fae49f68db7aaa233c188888ad0f17fbd59aad163f6eeea7602a8fb11e5fa7c7a20a6b32cd379170071d496870fc1bf5f6bb2267d337ad8f810a7f29c801442f26c1697c6b010c75a2e9c8b01157050e3d4e5eee2dc72b2dcf903852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74"
|
||||
"kfrag": "8d663d5d2251ee871454229ad7bfbc37927d7c5b50d6c132ff1a4e8e70e9f798719ce23b611e8e8a943e91d3f4f78b11628af7e1569be833168f73d6708b2c3c024ab7546832cc1860f6adb95f2b5462c634a2e6c8c0f0119b96b6963f64d41484024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa0503c09699971990dcecb4d6712327cd8bad8f48af9f7657c9ed9251ded78289d7cd3b10a5b306b69ac197133ca231f3179233bed9a626578a92c88c58207b96931c299b6793389b49fb9d7f5c504fc6eb7fd4693388556fb143346944180f09d61846f641951f218f42c16f8f07336a40fb4cda324a406c027508db4882ad37820d",
|
||||
"cfrag": "03ab87298460f74432e9da842f8f0acc802b60205cd30cb311d3bf5f571ba162d002ad2dc16473f5bf5dffab17b41e1b4342c6adde523e4ad4a09cf01d5abb90863b8d663d5d2251ee871454229ad7bfbc37927d7c5b50d6c132ff1a4e8e70e9f798024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa05"
|
||||
}
|
||||
]
|
||||
],
|
||||
"verifying_key": "025b0f3a3c5f1c59807ef78aefabb47fa7fe4cd614e3eaecd3019141f5aa461dfe",
|
||||
"receiving_key": "026cbf16dfceb5a89a382d08d332282781cd40177f7d81a5716b9a82353c76079b",
|
||||
"description": "This is a collection of CFrags, originated from the enclosed Capsule, under the enclosed delegating, verifying and receiving keys. Each CFrag must deserialize correctly and can be replicated with a call to `pre.reencrypt(kfrag, capsule, provide_proof=False)`",
|
||||
"params": "default"
|
||||
}
|
|
@ -1,40 +1,40 @@
|
|||
{
|
||||
"name": "Test vectors for KFrags",
|
||||
"description": "This is a collection of KFrags generated under the enclosed delegating, verifying and receiving keys. Each of them must deserialize correctly and the call to verify() must succeed.",
|
||||
"params": "default",
|
||||
"verifying_key": "02c2a1b400f2fc5ecbc196bb28fd714f2b4dce8d014e57f8530734422da11e214b",
|
||||
"delegating_key": "023f3960d43da063476bbabe5011818d84154d9c6a683eeadbac94252f9ec2a843",
|
||||
"receiving_key": "0205a51f53d40fd00df0824e70581843b9a561458dece9b1dfafd903f0cb612712",
|
||||
"delegating_key": "0268ae7a68ad3598e1de622874133378ed87f08a4a55f583232b9f823c8d0e0ccc",
|
||||
"vectors": [
|
||||
{
|
||||
"kfrag": "5d8d984fb1d5c1f06d6ac50401eae7172aaf5206e3c90e59a1ccf5bd09c2f690356f3ff4b8a1d9734ec261ccdf79433240e70a8dca61f9acdaeda93619c02b8203852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f03b37bf8a3bb51bf57d45f435fd9e30c70101271d88520a6cce4234934f82a322b02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74b81a70d3a2d12b77d09664efcdd29957620734f95c3ae6488e168ef10d8566fb082349d17c696f33b6bdd36a0ce564d019bff774366fa6ae758b52832d354a00"
|
||||
"kfrag": "d6cf3fe9cbefd61c6fa7381ee47d3f26d92cd24672cc9b06bed719d65cfdfbac3ad1b2cc730abff34cdf9a5a03737064313e3cd4276f7fa4bf083ba65c4136200356f933ae695815a43680e9e7c5d9fe731de109c7a70bcb231d09d3b0d08fef32024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa050387378d0b45800d78482ed42d103179b58a6864de1bb3493038b7b049cbdd119f29b419e5c0e909286d1fa0de721c46779727c4758602d4acdc3956c2483b1bdf9e4059e7f4ca9e4524e7de30d1c06f1537caa89b0a691dd3521a3896b45c29b767d368c25fb8754598c5075da5dcc23b0ac3073056929c7692627bbd9ebf0eab"
|
||||
},
|
||||
{
|
||||
"kfrag": "7467210ecfad8e1de8c7258ec67d95edc76c98032a02d1adefff03dd6dd5bd313cd7bfac9dcd316ae9899710155aa3875629643547f0f0a7f6c387708639134803852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f0250aa7705ae24dfb938deb801984700955e0b24a2b42e8bf2c77c6be4cf93ac2602cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f742035151595b0a5dd72493405a1f21fda788aba56a339d05695a443bd30a27198e950f0fd5dbe722c02a207ea6bc8cde1f5fd9db2e515f2e77ce6d48ec9cf3741"
|
||||
"kfrag": "697ec723b1beb784893e14efcef48fe28cbd5918224f5ba4e985aeb2b303de4737ac6a6a906a6b2dc55db7798637f613b73f7e5de7c5e8be61b1bc5f0d3f00d40380731ff7c81a3fbfeed9388ac19c4be5df2fa01f047857b1d7011330089dcb26024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa050341ac15c6bcfa4779344f2dad384b68365eb472edef86b5a653784a1c38cda73b366b0460f1e1963826c1ea5d25d0f7a0a7298435282fce0cc5a767eead9cffd18c131ef289bbb1593783876a6964d09f5951c0d61425fc1d0b95c6c2af55f61601dedab95d6bd966fc38c21f84498381d7a5aad3daad522592ab5b8a1496256f"
|
||||
},
|
||||
{
|
||||
"kfrag": "b709ebb856f0f47f3dcfa1eeebe542151d8d83aad6612d604154060ceaab168d3007634e9173eafd1fae78649fb7e1ba4a8a70fa4595f1055cc8b5bd98b524be03852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f035bddbe1571077036f101b991d46be945d8eb9f738671edfa3cad51969adbddee02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74ad7f7be9e6b3b6cf685186efc80b670ffb949ba394f1b3debf8878a11a185e17c2160fd0f8bd98a56df6678877573f5d2554543452fcc44b5fd2c71a9333aac2"
|
||||
"kfrag": "95fa474bb23428b7b1d329f23006e3b4b7968dae342f3860c85cb5cc8078f93f9cadd99db9097fe2c79fdc27528a7a5a908f786448a526e0b5333f36cffe636b02187712e01ab5e6bded45eb73cf561688b15b9a0058b773aceea2dac7f1e3ad11024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa050303362ae866a69acb35c21862c5d89853134b4408424d0695051ec4b60da3c6f3fd2f45a41e4ad8c2138e4fbc8183e2fe87120c474997a788194b70b51f44c2203044e782adecc4a7d74404da3a585ef34d7acf2c87cc1c8aad8dfab5c03cb4bcb46015c379c9b454a6562b51aa0a7454e6077cd9df7fb5d53a7136d4705c8ab6"
|
||||
},
|
||||
{
|
||||
"kfrag": "9ae9e03c94677c18754394e2b9886cf40e4a4a59481ea70f3c9c5b022f3375b5150504015593744358c0cb3f48bc62541adb3b474fab8dd2bfc264774787e12703852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f02f438633ce738cc7f9a7f340a833603477b06e8c5bfe7a8c0155fc607702521eb02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74dc1b6c5d0d40db9f5867e3eb802e3ad2c25f9e0187c235a208c8006a71c74974c3d0cdca9351ec6acedc2bb38b91bd098c4c1f44b6f941c0bec11c1a133e1a72"
|
||||
"kfrag": "6677cc88841fcfac22961f221e8d386efa8e8d70f823849472fc635cd17625cee2df8cb936a8159b0d469c29dc85bb0a3fc9d44bf4cb843b735145e7783bda6f03ff381ee51f5c61d0d6e33c8478cd7d652f1e091201bdbcf0b79ba5b13cef1723024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa05038757dee465679724030d64a55eb1a6f0de3636a8bfb1297309b2ddbe7b00da678370057811b6e6d8a1e4c4415f029a98bdbe54234cf1952830cfbb251cf6765b8a92a29edfcf0de7dd1dfb0ef9ddab0a6fc4d12b72781fd291d04e43a8c8979e9a6e2b4e6cd76dd21069cc06e7349663914412ec6d2e16c3bdab908a99cadfc1"
|
||||
},
|
||||
{
|
||||
"kfrag": "a446b980ce7daffafe4aed2cc9703fc10aeb9b2f658f33b9034f306c16f519ce76a0cf8351a7e8430d3c2a18faebd8290cc5c7fdcdf00c73f7ddf2fc71402a0203852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f03d1aaee8ab7e410145be657333f08f3733efa3f1c129d11ec7f73b332e55132c902cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f740a01f98cb250ad84c0b9b7f260d6f4ea1524552cc85362981f7aaaa75275683e21d34c1b1d759bff1e19b11838a92c9431356f5c73b9dbce3bd2c6ecd1d22254"
|
||||
"kfrag": "0ad4f056902a8eadbc59fb61b5890d28a8116a768d0ad15ea9880cf185916a842b2ad0b016d2ab5ce760d909244788865554342d40e13f9f3cd6668a21cd4215022e0433fe4f5e1518779d016260d00e091d44668c1a413ecfd46fdff6a1bfba58024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa0503e3fde4201890dfcccfb63c61971d95a8f7209f391bf2f64e7532d62016d8734aa677c3b6c797a28ca2bec4d22d77862a8d7279530d7571e1cd97a09266d47d82f9fc8c89faab9def2f3502b653c11b2d3e4025fe449e5e53989ae6bdc59ceb07de1e0c916b4eac67ccdf11f26fcee50886112ad46239a48cdff3c916679ee326"
|
||||
},
|
||||
{
|
||||
"kfrag": "05b36934a6df7e6ad0b61585c5983a415210af3f0baa0871adff1755fda00378670b2fc9a6af6578462459755a743fe2af66deaa4561ad16ffe42e9a7454860e03852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f038b5516cceef4886d8df5c9aeb39be19334b91b36809c5598a83234a948bc3a1802cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f7401ffbcdbe1dbbd116cb8f7596cde504d8461777b5a02a57b9ef4807b2553e4dd81e69c665741dcfd32f5c096014e4161a44a00e66b6770bd0250431108322748"
|
||||
"kfrag": "dd9515377085b94f53a0148d0ed7d6b68fcc414e04b01b8bf85fdf79f2b1bbbebfe3c4c656d0e549cb69af351cfa349a03bca74ebcd43e2b55eea4e0aa0865b602a5aa99e2684f395323bc4c21867b9b45166b4b7145dc9e62c8d1839987ac90ea024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa05036469216debd9f47a6454701ebf8bd28a5cf0923ab3d52dd66b6ecbe365e8d4fce3c901f156e2af9e6e4f500e149757d040c11c4140cda667a78c0ee1d2873043e32a6c0821c65de9f395a6b8fb6657d091b2d64f391fff36a5eb74dd308985bb12b73c978cf4a31879f9bbf37c8296a7053b807ab41fce32d89635abc6b2c48d"
|
||||
},
|
||||
{
|
||||
"kfrag": "d023dab1e24e4f9824300f81ee6701f3e4e77124d413abb09ee2d7c24ce8f602dc8b806a4132fbb7cada12ca87505bda614292cbe4edb080b1cee64851aca48303852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f02f8cf534db707eb210b6e5ac26d11cfe70fbd75d1bd5f48227f2aae3653bb2d7f02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74ea6e32f4c32649682d098a60c875bbac0e989dda09a1c637ebafb9cef72102e1f1d66ce19f89f017b6a78bed0be8ffa758f6ddff8ac9480973aedf6549c44f41"
|
||||
"kfrag": "85ef419f7cf403cc07d408a314b0bb5823d87d6ff2de048e4994f0cca366b737ca39040f1408ad26e68b0562268617996ea598d4fcbd92284e63561aac23114c03a9c1b7b5288a67159872a7ecd13eb988052431cf3f79b849652c7fa72a6aae4e024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa0503dd85bfbbd0db316ed138e84a8f89af9d3669a4f839358b1c9033e742410afe8b691bdf17d142080f41b0795f08e1c021faa2628583c777a4006ee7548d591c3dcf24fe9349da31bbd0613bdb3ce4522b35e27b4c6e3e2cedd6ad4a19a8bd7cdc4d873e83e588efe2872a751bf22fa9e20097d085034f9c4c7a3371d4ec2db899"
|
||||
},
|
||||
{
|
||||
"kfrag": "557d935cad6b03690786a893a5b64061260cf1672c1dd300e82f5abd37939dc2529ed1bf58b4f390beafe802e3d7fa4f34946b202766ef57f4ab42c27bedac2d03852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f03abd7838aae2444a42205a7452cc3d34e66d2488d856c9e65a2076299cacce21a02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74a88c377e7a8ea8decd327b2c82645c7c90a1ae6078ddfa4f968863d65cabe5717df519613a5b505a92c93dadcc220c5a16e572005d7e15dfd00150b620e04e6d"
|
||||
"kfrag": "5fcc542f949b8a511cca95a3baba408586817b138bdf6fe3976419bca73e15af05b018f9ed4b4fb48757caed1f382611705d69e72eb9a33fe1a30fb62bfcfba1039d50507caafeefa75fd7d86e98d30ad6ffc52dca78b9dcfe6773669ee0cbcc00024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa0503eb9e57f2f37faa6ca18b0d471b7c388dcc28aa86280ccb7aac665a099022fb64f3589141dbfaddd16a4ac52b4533db941d6bb3b9e4f38307ebee9175eddab764391733958111cae49fc6d2371f932ed0fc98e21a08b1fcf28ececb8998a92d850c139aa7f0e8c1bca9910d6cf6108ae288c03f5ea72e4f96169b0b451dd171b2"
|
||||
},
|
||||
{
|
||||
"kfrag": "f08a220fdebc0fc533b1c3ea0fbae6b05199a414127dbe43c92ba4b474a641492feea04ce6cab256f799986da6b1ff9786e92b4dd22eb4db36b711bc3f5213b203852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f03d2ef2224a4ae6c268423c99282c157735bdfcc5580aeb48ade7609f94423c11c02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f7422fbac3626473a999f6d2d0fe4df8564bb9ecf0fb8c8cf4af3a66108d7f3b222ffd3336cc4197d4fc782743deb01b9903705d0f458d558abd33ed15ec5f9d7ee"
|
||||
"kfrag": "35a628e751b5383192b7ddaab26fe720c3e80beec30aa7ea74c9598b6a15f46cce2407a38a783b54400c3ffed32ae571db7e54e3f6e5bc4577f3abd5813b8a4803d13dedd7a533d25a4bb3179a9394dd1c8593831b7d064a98844d1b14613249f4024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa050385630521f909716f0a86301819cf98863afbb93962b970d555eaccb0a7e9f6c0cae97674b2c82f0166c400e8b871fdfe0f45739066981755224047ae2b061aac166c46dc2aa4efa62083b4c20a752e82fbe084e9d7fa5b53eeb5b5cf0a4db4bb88cd2553437377c199661526ee8f1c55004867f55ca15b3d4700f0cacd1f24ca"
|
||||
},
|
||||
{
|
||||
"kfrag": "a7f29c801442f26c1697c6b010c75a2e9c8b01157050e3d4e5eee2dc72b2dcf9544936536c75efbd390103c67f1c901358c08e9dd2beb389eebd65724ef5e08b03852db0923427261c9ef5b4c19e85b15d72dc7aa9a16bfc1e95709fcfc6aea90f03df02e69959e9afa504ea4f329d7b42ac4fd9ead5e7cf1d7c999968ea10e28e9b02cedc7d977e0351dec733f940a2554e84145ce69d34cc34dd46242d3a868a7f74e18c7a7ced0b978f8b84e3a703d7b9da2244486012e853827354221c081b598c8cd75b20c7fd174436d7b4454e337f7e863649a17502a081f1fb2c5f4d0bfe20"
|
||||
"kfrag": "8d663d5d2251ee871454229ad7bfbc37927d7c5b50d6c132ff1a4e8e70e9f798719ce23b611e8e8a943e91d3f4f78b11628af7e1569be833168f73d6708b2c3c024ab7546832cc1860f6adb95f2b5462c634a2e6c8c0f0119b96b6963f64d41484024eac36deb637bd070a1fbc8c64adbec56440fd1a5bb07e57bb4aa24d85c1fa0503c09699971990dcecb4d6712327cd8bad8f48af9f7657c9ed9251ded78289d7cd3b10a5b306b69ac197133ca231f3179233bed9a626578a92c88c58207b96931c299b6793389b49fb9d7f5c504fc6eb7fd4693388556fb143346944180f09d61846f641951f218f42c16f8f07336a40fb4cda324a406c027508db4882ad37820d"
|
||||
}
|
||||
]
|
||||
],
|
||||
"verifying_key": "025b0f3a3c5f1c59807ef78aefabb47fa7fe4cd614e3eaecd3019141f5aa461dfe",
|
||||
"receiving_key": "026cbf16dfceb5a89a382d08d332282781cd40177f7d81a5716b9a82353c76079b",
|
||||
"description": "This is a collection of KFrags generated under the enclosed delegating, verifying and receiving keys. Each of them must deserialize correctly and the call to verify() must succeed.",
|
||||
"params": "default"
|
||||
}
|
Loading…
Reference in New Issue