From 6de81195ae15bff715ef1e5a3fe88f90ce643dee Mon Sep 17 00:00:00 2001 From: Carl Beekhuizen Date: Fri, 19 Jun 2020 16:33:46 +0200 Subject: [PATCH 1/6] Update tests for new EIP2333 (bls v2 compliant HKDF_mod_r) --- .../key_handling/key_derivation/tree.py | 12 +++++++--- eth2deposit/utils/crypto.py | 4 ++-- .../test_key_derivation/test_path.py | 22 +++++++++++++++---- .../test_key_derivation/test_tree.py | 12 ++++++++-- .../test_vectors/tree_kdf.json | 16 +++++++------- .../test_vectors/tree_kdf_intermediate.json | 13 ++++++----- 6 files changed, 55 insertions(+), 24 deletions(-) diff --git a/eth2deposit/key_handling/key_derivation/tree.py b/eth2deposit/key_handling/key_derivation/tree.py index 0cce6ac..10582b6 100644 --- a/eth2deposit/key_handling/key_derivation/tree.py +++ b/eth2deposit/key_handling/key_derivation/tree.py @@ -37,8 +37,14 @@ def _parent_SK_to_lamport_PK(*, parent_SK: int, index: int) -> bytes: return compressed_PK -def _HKDF_mod_r(*, IKM: bytes) -> int: - okm = HKDF(salt=b'BLS-SIG-KEYGEN-SALT-', IKM=IKM, L=48) +def _HKDF_mod_r(*, IKM: bytes, key_info: bytes=b'') -> int: + L = 48 + okm = HKDF( + salt=b'BLS-SIG-KEYGEN-SALT-', + IKM=IKM + b'\x00', + L=L, + info=key_info + L.to_bytes(2, 'big'), + ) return int.from_bytes(okm, byteorder='big') % bls_curve_order @@ -49,5 +55,5 @@ def derive_child_SK(*, parent_SK: int, index: int) -> int: def derive_master_SK(seed: bytes) -> int: - assert(len(seed) >= 16) + assert(len(seed) >= 32) return _HKDF_mod_r(IKM=seed) diff --git a/eth2deposit/utils/crypto.py b/eth2deposit/utils/crypto.py index b66befb..c87ca48 100644 --- a/eth2deposit/utils/crypto.py +++ b/eth2deposit/utils/crypto.py @@ -32,8 +32,8 @@ def PBKDF2(*, password: str, salt: bytes, dklen: int, c: int, prf: str) -> bytes return res if isinstance(res, bytes) else res[0] # PyCryptodome can return Tuple[bytes] -def HKDF(*, salt: bytes, IKM: bytes, L: int) -> bytes: - res = _HKDF(master=IKM, key_len=L, salt=salt, hashmod=_sha256) +def HKDF(*, salt: bytes, IKM: bytes, L: int, info: bytes=b'') -> bytes: + res = _HKDF(master=IKM, key_len=L, salt=salt, hashmod=_sha256, context=info) return res if isinstance(res, bytes) else res[0] # PyCryptodome can return Tuple[bytes] diff --git a/tests/test_key_handling/test_key_derivation/test_path.py b/tests/test_key_handling/test_key_derivation/test_path.py index 7839742..1d2f0b3 100644 --- a/tests/test_key_handling/test_key_derivation/test_path.py +++ b/tests/test_key_handling/test_key_derivation/test_path.py @@ -8,18 +8,22 @@ from eth2deposit.key_handling.key_derivation.tree import ( _HKDF_mod_r, ) +from eth2deposit.key_handling.key_derivation.path import ( + mnemonic_and_path_to_key, +) + test_vector_filefolder = os.path.join(os.getcwd(), 'tests', 'test_key_handling', 'test_key_derivation', 'test_vectors', 'tree_kdf_intermediate.json') with open(test_vector_filefolder, 'r') as f: test_vector = json.load(f) -def test_flip_bits_256(): +def test_flip_bits_256() -> None: test_vector_int = int(test_vector['seed'][:64], 16) # 64 comes from string chars containing .5 bytes assert test_vector_int & _flip_bits_256(test_vector_int) == 0 -def test_IKM_to_lamport_SK(): +def test_IKM_to_lamport_SK() -> None: test_vector_lamport_0 = [bytes.fromhex(x) for x in test_vector['lamport_0']] test_vector_lamport_1 = [bytes.fromhex(x) for x in test_vector['lamport_1']] salt = test_vector['child_index'].to_bytes(4, 'big') @@ -31,15 +35,25 @@ def test_IKM_to_lamport_SK(): assert test_vector_lamport_1 == lamport_1 -def test_parent_SK_to_lamport_PK(): + +def test_parent_SK_to_lamport_PK() -> None: parent_SK = test_vector['master_SK'] index = test_vector['child_index'] lamport_PK = bytes.fromhex(test_vector['compressed_lamport_PK']) + print(_parent_SK_to_lamport_PK(parent_SK=parent_SK, index=index).hex()) assert lamport_PK == _parent_SK_to_lamport_PK(parent_SK=parent_SK, index=index) -def test_HKDF_mod_r(): +def test_HKDF_mod_r() -> None: test_0 = (bytes.fromhex(test_vector['seed']), test_vector['master_SK']) test_1 = (bytes.fromhex(test_vector['compressed_lamport_PK']), test_vector['child_SK']) for test in (test_0, test_1): assert _HKDF_mod_r(IKM=test[0]) == test[1] + + +def test_mnemonic_and_path_to_key() -> None: + mnemonic = test_vector['mnemonic'] + password = test_vector['password'] + path = test_vector['path'] + key = test_vector['child_SK'] + assert mnemonic_and_path_to_key(mnemonic=mnemonic, path=path, password=password) == key diff --git a/tests/test_key_handling/test_key_derivation/test_tree.py b/tests/test_key_handling/test_key_derivation/test_tree.py index b3cd1d2..8e06540 100644 --- a/tests/test_key_handling/test_key_derivation/test_tree.py +++ b/tests/test_key_handling/test_key_derivation/test_tree.py @@ -1,8 +1,10 @@ import os import json +from py_ecc.bls import G2ProofOfPossession as bls from eth2deposit.key_handling.key_derivation.tree import ( + _HKDF_mod_r, derive_child_SK, derive_master_SK, ) @@ -14,14 +16,20 @@ with open(test_vector_filefolder, 'r') as f: test_vectors = json.load(f)['kdf_tests'] -def test_derive_master_SK(): +def test_hkdf_mod_r() -> None: + for test in test_vectors: + seed = bytes.fromhex(test['seed']) + assert bls.KeyGen(seed) == _HKDF_mod_r(IKM=seed) + + +def test_derive_master_SK() -> None: for test in test_vectors: seed = bytes.fromhex(test['seed']) master_SK = test['master_SK'] assert derive_master_SK(seed=seed) == master_SK -def test_derive_child_SK(): +def test_derive_child_SK() -> None: for test in test_vectors: parent_SK = test['master_SK'] index = test['child_index'] diff --git a/tests/test_key_handling/test_key_derivation/test_vectors/tree_kdf.json b/tests/test_key_handling/test_key_derivation/test_vectors/tree_kdf.json index 3b92c9e..b957d2c 100644 --- a/tests/test_key_handling/test_key_derivation/test_vectors/tree_kdf.json +++ b/tests/test_key_handling/test_key_derivation/test_vectors/tree_kdf.json @@ -2,27 +2,27 @@ "kdf_tests": [ { "seed": "c55257c360c07c72029aebc1b53c05ed0362ada38ead3e3e9efa3708e53495531f09a6987599d18264c1e1c92f2cf141630c7a3c4ab7c81b2f001698e7463b04", - "master_SK": 12513733877922233913083619867448865075222526338446857121953625441395088009793, + "master_SK": 5399117110774477986698372024995405256382522670366369834617409486544348441851, "child_index": 0, - "child_SK": 7419543105316279183937430842449358701327973165530407166294956473095303972104 + "child_SK": 11812940737387919040225825939013910852517748782307378293770044673328955938106 }, { "seed": "3141592653589793238462643383279502884197169399375105820974944592", - "master_SK": 46029459550803682895343812821003080589696405386150182061394330539196052371668, + "master_SK": 36167147331491996618072159372207345412841461318189449162487002442599770291484, "child_index": 3141592653, - "child_SK": 43469287647733616183478983885105537266268532274998688773496918571876759327260 + "child_SK": 41787458189896526028601807066547832426569899195138584349427756863968330588237 }, { "seed": "0099FF991111002299DD7744EE3355BBDD8844115566CC55663355668888CC00", - "master_SK": 45379166311535261329029945990467475187325618028073620882733843918126031931161, + "master_SK": 13904094584487173309420026178174172335998687531503061311232927109397516192843, "child_index": 4294967295, - "child_SK": 46475244006136701976831062271444482037125148379128114617927607151318277762946 + "child_SK": 12482522899285304316694838079579801944734479969002030150864436005368716366140 }, { "seed": "d4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3", - "master_SK": 31740500954810567003972734830331791822878290325762596213711963944729383643688, + "master_SK": 44010626067374404458092393860968061149521094673473131545188652121635313364506, "child_index": 42, - "child_SK": 51041472511529980987749393477251359993058329222191894694692317000136653813011 + "child_SK": 4011524214304750350566588165922015929937602165683407445189263506512578573606 } ] } \ No newline at end of file diff --git a/tests/test_key_handling/test_key_derivation/test_vectors/tree_kdf_intermediate.json b/tests/test_key_handling/test_key_derivation/test_vectors/tree_kdf_intermediate.json index 489f0f1..caf3572 100644 --- a/tests/test_key_handling/test_key_derivation/test_vectors/tree_kdf_intermediate.json +++ b/tests/test_key_handling/test_key_derivation/test_vectors/tree_kdf_intermediate.json @@ -1,9 +1,12 @@ { + "mnemonic": "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about", + "password": "TREZOR", "seed": "c55257c360c07c72029aebc1b53c05ed0362ada38ead3e3e9efa3708e53495531f09a6987599d18264c1e1c92f2cf141630c7a3c4ab7c81b2f001698e7463b04", - "master_SK": 12513733877922233913083619867448865075222526338446857121953625441395088009793, + "master_SK": 5399117110774477986698372024995405256382522670366369834617409486544348441851, + "path": "m/0", "child_index": 0, - "lamport_0": ["7b4a587eac94d7f56843e718a04965d4832ef826419b4001a3ad0ba77eb44a3b", "90f45a712112122429412921ece5c30eb2a6daf739dc9034fc79424daeb5eff6", "d061c2799de00b2be90eb1cc295f4c31e22d4b45c59a9b9b2554379bea7783cb", "3ad17e4cda2913b5180557fbe7db04b5ba440ce8bb035ae27878d66fbfa50d2c", "f5b954490933ad47f8bf612d4a4f329b3aa8914b1b83d59e15e271e2a087e002", "95d68d505bf4ff3e5149bc5499cf4b2f00686c674a29a8d903f70e569557d867", "1b59c76d9bb2170b220a87833582ede5970d4a336d91c99a812825afe963e056", "4310ff73cfbbf7b81c39ecbf1412da33e9388c1a95d71a75e51fe12256551ceb", "ee696343f823e5716e16747f3bbae2fc6de233fe10eea8e45b4579018da0874f", "ae12a437aaa7ae59f7d8328944b6a2b973a43565c55d5807dc2faf223a33aa73", "2a3ae0b47f145bab629452661ff7741f111272e33ec571030d0eb222e1ed1390", "1a3ea396e8cbd1d97733ef4753d6840b42c0795d2d693f18e6f0e7b3fff2beb2", "472429d0643c888bfdfe6e6ccfdeee6d345d60c6710859ac29fc289fd3656347", "a32d4d955949b8bed0eb20f586d8fd516d6ddec84fbbc36998d692633c349822", "e5ac8ac5ee1d40e53a7abf36e8269d5d5fce450a87feae8e59f432a44bcc7666", "ddf9e497ed78032fbd72d9b8abd5204d81c3475f29afa44cdf1ded8ea72dd1dc", "945c62e88fb1e5f3c15ff57cd5eb1586ee93ec5ec80154c5a9c50241c5adae0a", "c8868b50fc8423c96b7efa1ede4d3203a6b835dbeb6b2ababc58397e6b31d9dd", "66de9bd86b50e2b6a755310520af655759c1753bff34b79a5cd63d6811fc8c65", "5b13786c6068df7735343e5591393bea8aee92ac5826d6132bf4f5ebf1098776", "a2038fc7d8e3cb2eda2bd303cfa76a9e5d8b88293918bec8b2fc03be75684f14", "47a13f6b2308a50eded830fdee7c504bf49d1fe6a95e337b0825d0d77a520129", "b534cdddcf1aa1c6b4cbba46d1db31b766d958e0a0306450bc031d1e3ed79d97", "54aa051b754c31658377f7bff00b7deaa861e74cb12e1eb84216666e19b23d69", "0220d57f63435948818eb376367b113c188e37451c216380f65d1ad55f73f527", "f9dd2e391565534a4db84980433bf5a56250f45fe294fce2679bcf115522c081", "1166591ee2ca59b9f4e525900f085141be8879c66ef18529968babeb87c44814", "f4fa2e8de39bdbeb29b64d8b440d3a6c9a6ca5bdce543877eaee93c11bd70ab8", "07f466d73b93db283b3f7bfaf9c39ae296adc376ab307ef12312631d0926790e", "b2ecff93acb4fa44c1dbf8464b81734a863b6d7142b02f5c008907ea4dc9aaa1", "a1d9c342f6c293ac6ef8b5013cba82c4bad6ed7024d782948cb23cd490039ba1", "c7d04a639ba00517ece4dbc5ef4aaf20e0ccde6e4a24c28936fabe93dec594db", "e3cbb9810472d9dd1cdb5eed2f74b67ea60e973d2d2e897bd64728c9b1aa0679", "e36884703413958ff2aba7a1f138a26d0ac0a371270f0169219beb00a5add5f0", "e5ea300a09895b3f98de5232d92a36d5611cbcf9aaf9e7bb20cf6d1696ad1cb4", "c136cda884e18175ab45148ed4f9d0d1a3c5e11ad0275058e61ae48eb151a81f", "3ee1101e944c040021187e93b6e0beb1048c75fb74f3fdd67756b1c8517a311f", "016964fd6fc32b9ad07a630949596715dee84d78230640368ff0929a280cf3a2", "e33865fc03120b94333bb754fd097dc0f90e69ff6fd221d6aae59fcf2d762d76", "e80bb3515a09ac6ecb4ec59de22701cdf954b1ae8a677fd85508c5b041f28058", "3889af7cd325141ec288021ede136652a0411d20364005b9d3ca9102cb368f57", "18dad0bc975cf8800addd54c7867389d3f7fe1b97d348bd8412a6cbfb75c520a", "09035218686061ee91bd2ad57dc6fb6da7243b8177a153484524b2b228da5314", "688fd7a97551c64eae33f91abb073a46eafbbacd5595c6bac2e57dd536acdfe2", "1fc164dce565a1d0da59cc8048b334cc5eb84bf04de2399ddb847c22a7e32ab7", "a2a340ba05c8a30dd1cab886a926b761758eba0e41b5c4c5dfd4a42f249655c1", "c43dffe01479db836a6a1a74564b297fad0d69c6b06cf593f6db9f26b4f307d5", "73cef7f3ff724a30a79e1dca74cef74954afeefa2e476c4dec65afe50c16c5c4", "a54002253ab7b95cc5b664b3f08976400475cc56f170b939f6792e730ff5170b", "9ade43053d41afebc002f09476dffd1b13ecbf67f810791540b92ca56d5e63e4", "234e7cbfbe45b22a871db26738fa05de09213a925439d7f3e5108132e521b280", "066b712417332c7cfca871fb1bb5839f0341acf9266229603a3eddbc8a93b59f", "b5857acdcf636330da2cfcc99c81d9fdbd20c506a3c0e4f4f6a139d2a64f051c", "e119908a150a49704b6bbba2c470cd619a0ae10dd9736e8d491890e3c8509fff", "b8a5c5dbb51e6cb73cca95b4ad63ea3c7399cd16b05ab6261535495b3af2ca51", "05624a1d4d2d2a31160bc48a6314bbf13eaddf56cddb0f0aa4ed3fb87f8b479f", "483daceff1c3baa0ed0f3be7e534eebf5f4aed424ecd804edfbf5c56b3476b50", "424d04694e7ae673707c77eb1c6d0996d250cfab6832ee3506a12e0384a3c5c9", "a11fed0ed8057966bfe7136a15a814d06a516fbc9d44aeef87c509137a26190e", "3694d22d1bc64658f3adbe2cc9f1716aee889066e0950e0b7a2fd576ed36bb76", "49a13000a87f39f93d0ae9c3a4cfccbf440c0a75cce4c9d70dac627b6d6958b3", "b3ff0cdd878d5ac1cb12e7d0b300d649fdd008800d498ae4f9fbf9510c74249a", "e52a867cfb87d2fe7102d23d8d64925f7b75ca3f7d6bb763f7337352c255e0be", "6513b372e4e557cca59979e48ec27620e9d7cdb238fcf4a9f19c3ba502963be0", "9f69d82d4d51736902a987c8b5c30c2b25a895f2af5d2c846667ff6768bcc774", "049a220dbe3340749f94643a429cb3cba3c92b561dc756a733d652d838728ab3", "4fa2cd877aa115b476082b11053309f3537fa03d9158085f5f3f4bab6083e6da", "ed12db4069eb9f347735816afcee3fe43d4a6999fef8240b91bf4b05447d734f", "3ecbe5eda469278f68548c450836a05cc500864664c7dda9b7526f084a891032", "690d8f928fc61949c22e18cceaa2a446f8e1b65bd2e7af9e0a8e8284134ab3d2", "99e09167a09f8261e7e8571d19148b7d7a75990d0702d9d582a2e4a96ac34f8e", "6d33931693ed7c2e1d080b6a37da52c279a06cec5f534305819f7adf7db0afe3", "c4b735462a9a656e28a52b1d4992ea9dea826b858971d698453a4be534d6bb70", "edf92b10302dc41f8d362b360f4c2ef551d50e2ded012312c964002d2afc46d7", "58f6691cca081ae5c3661dd171b87cc49c90359bb03cc0e57e503f7fcf14aefc", "5d29b8b4ee295a73c4a8618927b3d14b76c7da049133a2257192b10be8c17a6a", "646802fa42801e0ae24011fb4f62e87219ef1da01f7fc14bf8d6bd2d9e7c21f1", "23abf45eee65cc4c1e95ccab42ad280a00bb3b14d243e2021a684075f900141e", "2b1ae95c975bf9c387eae506fdb5e58afd2d198f00a21cd3fddb5855e8021e4d", "0ef9f6e1c0583493d343e75f9c0c557fa6da0dc12b17a96c5757292916b72ee3", "04c7fc76195c64a3285af14161077c045ff6ddbb67c0ff91b080f98eb6781e5c", "ba12679b97027d0e7076e6d19086c07792eaa7f78350842fbef8ddf5bcd3ecc0", "cead458e6799df4d2f6cbf7f13cb3afec3441a354816e3071856ed49cbdbb1a7", "be6c56256556bb5c6727a1d9cb641d969677f56bb5ad7f8f7a7c9cfd128427b4", "c80f11963ff40cb1888054b83c0463d32f737f2e7d42098e639023db0dfc84d4", "ac80006c1296bcfde86697efebb87fb0fddfb70dd34dd2ee4c152482af4687eb", "bb7d13ce184249df4576fc3d13351e1683500e48726cd4198423f14f9094068b", "1b2d9c40c55bd7362664fa46c1268e094d56c8193e3d991c08dc7a6e4ca14fa1", "9bd236254d0565f5b2d24552d4b4d732de43b0adaa64ecd8be3efc6508577591", "38078cefccc04e8312d79e0636e0e3157434c50a2ad4e3e87cc6584c41eec8b5", "b5d15a8527ff3fa254ba61ffceb02d2570b53361894f351a9e839c0bb716857d", "6763dad684bf2e914f40ae0a7ee0cdf12c97f41fc05a485d5991b4daad21a3f8", "c80363c20df589333ecbe05bd5f2c19942ebc2593626dc50d00835c40fb8d005", "48502b56ae93acd2794f847cbe825525d5d5f59f0f75c67aff84e5338776b3af", "fd8e033493ba8af264a855a78ab07f37d936351d2879b95928909ed8df1b4f91", "11f75bee9eac7356e65ebc7f004ccdc1da80807380d69143293d1421f50b1c97", "903a88a3ebe84ca1c52a752b1faffa9ca1daedac9cbf1aa70942efc9beb44b79", "2c0dcd68837f32a69da651045ad836b8cd6b48f2c8c5d73a3bd3bba6148d345a", "0aa0f49b3476f3fdb6393f2ab601e0009586090b72ee54a525734f51598960d5", "f7a789f013f702731656c562caa15b04cb7c9957376c4d80b8839167bb7fa626", "4e0be1b19e305d82db3fd8affd67b0d2559da3edbfb08d19632a5cc46a90ed07", "3caaccfc546d84d543eaf4f4c50c9c8fd831c12a8de56fdb9dfd04cc082882fe", "894f6a01fd34f0642077e22981752011678548eb70eb55e8072c1caffc16fe02", "ae7eb54adaa68679348ea3537a49be669d1d61001fbab9fac259ba727dbc9a1a", "291a1cbdceff957b5a65440ab67fb8672de881230fe3108a15ca487c2662c2c7", "891d43b867137bf8beb9df4da2d951b5984a266a8cd74ec1593801d005f83f08", "c558407f6491b37a10835e0ad7ce74f4e368aa49157a28873f7229310cb2d7fd", "9ce061b0a072e1fe645f3479dac089b5bfb78cfa6cfbe5fd603bcdb504711315", "a8e30d07b09275115dd96472ecf9bc316581caf307735176ca226d4cd9022925", "918ee6d2efba7757266577691203f973cf4f4cac10f7d5f86acd2a797ff66583", "fa31ba95e15d1635d087522f3d0da9cf7acac4ed6d0ac672654032a3c39244a6", "f2952b58f015d6733af06938cd1f82fbddb3b796823bee7a3dbffa04efc117c2", "46f8f742d3683de010ede528128d1181e8819f4252474f51371a177bfa518fa4", "4ca1cc80094f2910cf83a9e65ad70e234690ffb9142793911ec7cf71663545b3", "381965037b5725c71bfa6989d4c432f6611de8e8ec387f3cfc0dcb1a15191b73", "2562b88ed3b86ba188be056805a3b7a47cb1a3f630d0e2f39647b0792ec6b7d8", "565f6d14e7f22724f06d40f54465ad40d265b6de072b34a09d6e37a97a118cd8", "c2982c861ad3278063b4a5f584eaf866db684cc4e712d64230fc9ee33bb4253b", "fd806c91927e549d8d400ab7aa68dbe60af988fbabf228483ab0c8de7dab7eee", "afae6ff16c168a3a3b5c2f1742d3f89fa4777c4bd0108f174014debf8f4d629c", "af5a4be694de5e53632be9f1a49bd582bf76002259460719197079c8c4be7e66", "a8df4a4b4c5bf7a4498a11186f8bb7679137395f28e5c2179589e1c1f26504b5", "ce8b77c64c646bb6023f3efaed21ca2e928e21517422b124362cf8f4d9667405", "62e67a8c423bc6c6c73e6cd8939c5c1b110f1a38b2ab75566988823762087693", "7e778f29937daaa272d06c62d6bf3c9c0112d45a3df1689c602d828b5a315a9f", "e9b5abd46c2377e602ff329050afa08afe152f4b0861db8a887be910ff1570bf", "a267b1b2ccd5d96ae8a916b0316f06fafb886b3bb41286b20763a656e3ca0052", "b8ed85a67a64b3453888a10dedf4705bd27719664deff0996a51bb82bc07194f", "57907c3c88848f9e27bc21dd8e7b9d61de48765f64d0e943e7a6bb94cc2021ab", "d2f6f1141a3b76bf9bf581d49091142944c7f9f323578f5bdd5522ba32291243", "c89f104200ed4c5d5f7046d99e68ae6f8ec31e2eeceb568eb05087e3aa546a74", "c9f367fae45c39299693b134229bb6dd0da112fd1a7d19b7f4772c01e5cbe479", "64e2d4ad51948764dd578d26357e29e8e4d076d65c05cffdf8211b624fefe9ac", "f9a9b4e6d5be7fc051df8ecd9c389d16b1af86c749308e6a23f7ff4871f0ba9a", "0d2b2a228b86ebf9499e1bf7674335087ced2eb35ce0eb90954a0f75751a2bf4", "ff8531b45420a960d6e48ca75d77758c25733abde83cd4a6160beae978aa735e", "d6d412bd1cb96a2b568d30e7986b7e8994ca92fd65756a758295499e11ea52b6", "ad8533fccbecdd4a0b00d648bfe992360d265f7be70c41d9631cefad5d4fe2f6", "31fbf2afb8d5cc896d517cfc5201ee24527e8d283f9c37ca10233bef01000a20", "2fd67b7365efc258131eb410f46bf3b1cbd3e9c76fd6e9c3e86c9ff1054116ff", "ab6aa29f33d18244be26b23abadb39679a8aa56dafc0dd7b87b672df5f5f5db6", "bad3b0f401ca0a53a3d465de5cecd57769ec9d4df2c04b78f8c342a7ed35bbee", "bdc24d46e471835d83ce8c5b9ecbe675aab2fd8f7831c548e8efd268c2ee2232", "87265fabd7397d08f0729f13a2f3a25bbc8c874b6b50f65715c92b62f665f925", "a379fd268e7ff392c067c2dd823996f72714bf3f936d5eeded71298859f834cb", "f3ab452c9599ebfbb234f72a86f3062aed12ae1f634abbe542ff60f5cefc1fcf", "2b17ebb053a3034c07da36ed2ba42c25ad8e61dec87b5527f5e1c755eb55405a", "305b40321bd67bf48bfd121ee4d5d347268578bd4b8344560046594771a11129", "e7029c9bea020770d77fe06ca53b521b180ad6a9e747545aadc1c74beef7241c", "abc357cec0f4351a5ada22483d3b103890392f8d8f9cb8073a61969ed1be4e08", "97f88c301946508428044d05584dc41af2e6a0de946de7d7f5269c05468afe20", "bdc08fe8d6f9a05ad8350626b622ad8eec80c52331d154a3860c98676719cfbd", "161590fc9f7fcf4eaba2f950cf588e6da79e921f139d3c2d7ebe017003a4799e", "91b658db75bc3d1954bfde2ef4bc12980ff1688e09d0537f170c9ab47c162320", "76d995f121406a63ce26502e7ec2b653c221cda357694a8d53897a99e6ce731e", "3d6b2009586aceb7232c01259bb9428523c02b0f42c2100ec0d392418260c403", "14ca74ecbc8ec0c67444c6cb661a2bce907aa2a1453b11f16002b815b94a1c49", "553b4dc88554ebe7b0a3bd0813104fd1165a1f950ceace11f5841aa74b756d85", "4025bf4ad86751a156d447ce3cabafde9b688efcdafd8aa4be69e670f8a06d9e", "74260cf266997d19225e9a0351a9acfa17471fccdf5edc9ccc3bb0d23ef551c5", "f9dbca3e16d234e448cf03877746baeb62a8a25c261eff42498b1813565c752a", "2652ec98e05c1b6920fb6ddc3b57e366d514ffa4b35d068f73b5603c47f68f2f", "83f090efeb36db91eb3d4dfbb17335c733fce7c64317d0d3324d7caaaf880af5", "1e86257f1151fb7022ed9ed00fb961a9a9989e58791fb72043bb63ed0811791c", "d59e4dcc97cba88a48c2a9a2b29f79125099a39f74f4fb418547de8389cd5d15", "875a19b152fe1eb3fe1de288fa9a84864a84a79bac30b1dbd70587b519a9770e", "9c9dc2d3c8f2f6814cfc61b42ee0852bbaf3f523e0409dd5df3081b750a5b301", "f6f7f81c51581c2e5861a00b66c476862424151dd750efeb20b7663d552a2e94", "723fcb7ca43a42483b31443d4be9b756b34927176f91a391c71d0b774c73a299", "2b02d8acf63bc8f528706ed4d5463a58e9428d5b71d577fd5daa13ba48ac56cf", "2ff6911f574c0f0498fc6199da129446b40fca35ccbf362bc76534ba71c7ca22", "1ef4b959b11bc87b11e4a5f84b4d757c6bdcfad874acec9a6c9eee23dc4bbe1b", "68e2df9f512be9f64b7e3a2dee462149dac50780073d78b569a20256aea5f751", "d1a3682e12b90ae1eab27fc5dc2aef3b8e4dbb813925e9a91e58d6c9832767b6", "75778ccc102d98c5e0b4b83f7d4ef7fe8bc7263cc3317723001cb0b314d1e9e8", "c7f44e2cead108dc167f0036ac8a278d3549cc3dd5cc067d074ccad9b1d9f8d4", "4cba0223c5df2796b0ee9fbc084d69f10e6aedda8f0cf86171bebb156ede676c", "628deda825661f586a5713e43c806fdd55e1a53fbe90a4ddb5f3786570740954", "fc82a253bc7e0ac96252b238fbb411a54e0adf78d089f804a7fc83a4959b401e", "72a6491f5daae0ceb85b61a5ed69009dd2a167c64cb35cabf38b846e27268e9d", "ee139a913d4fcf25ba54bb36fc8051b91f2ec73ba820cc193c46fb2f7c37a106", "7f75021f2b1d0c78859478e27f6f40646b5776c060f1a5f6f0944c840a0121f8", "5b60a1b78feca1d2602ac8110d263ad6b3663cbf49e6bdc1077b4b80af2feb6f", "d61f15d80b1e88469b6a76ed6a6a2b94143b6acc3bd717357264818f9f2d5c6d", "ea85da1780b3879a4d81b685ba40b91c060866abd5080b30fbbb41730724a7dd", "b9b9da9461e83153f3ae0af59fbd61febfde39eb6ac72db5ed014797495d4c26", "f737762fe8665df8475ff341b3762aaeb90e52974fe5612f5efd0fc1c409d7f8", "aaa25d934a1d5aa6b2a1863704d7a7f04794ed210883582c1f798be5ca046cf7", "932f46d0b6444145221b647f9d3801b6cb8b1450a1a531a959abdaacf2b5656b", "f4a8b0e52f843ad27635c4f5a467fbf98ba06ba9a2b93a8a97170b5c41bf4958", "196ed380785ee2925307ec904161dc02a4596a55499e5b0a3897f95485b3e74a", "772e829a405219e4f8cd93a1ef15c250be85c828c1e29ef6b3f7b46958a85b44", "d66cfc9af9941515d788f9f5e3b56fddb92464173ddb67b83bf265e7ea502170", "f5b040bfc246425278e2423b1953d8ad518de911cf04d16c67d8580a09f90e62", "d2d18b2ae8a53dde14b4000e5e7e414505825f50401a3797dd8820cf510dc448", "c01dcc064e644266739cd0ec7edf92fc2ef8e92e0beedf0e8aa30efcff1644fe", "24720d325913ba137daf031924ad3bfaa1c8c00a53a2d048fe5667aef45efce3", "70a24e1c89b3ea78d76ef458d498dcb5b8561d484853b2a8b2adcd61869857df", "0ff3313997f14e1b1dcd80f1d62c58aaefb19efd7c0ea15dde21aa4e2a516e80", "960c1f50062a4df851638f42c0259b6e0a0217300884f13a3c5c8d94adb34f21", "b71ca7cc8578149da556131268f4625b51620dfc3a6e9fbd47f5df03afbd410e", "a1a3eeec0addec7b9e15f416a07608a1b5d94f0b42d5c203b8ced03a07484f5b", "a4bb8b059aa122ca4652115b83b17af80cfbea0d3e1e8979a396a667f94e85f3", "31c4d2f252167fe2a4d41944224a80b2f1afaf76f8dd6a3d52d71751849e44bb", "79642dd6a255f96c9efe569304d58c327a441448db0431aa81fe072d0d359b52", "42a4b504714aba1b67defe9458fff0c8cb1f216dcab28263cef67a65693b2036", "e3d2f6a9d882d0f026ef316940dfcbf131342060ea28944475fe1f56392c9ad2", "986af9aeff236394a0afa83823e643e76f7624e9bfd47d5468f9b83758a86caa", "afe2de6ede50ee351d63ed38d1f2ae5203174c731f41bbed95db467461ad5492", "9ad40f0785fe1c8a5e4c3342b3c91987cd47a862ece6573674b52fa0456f697a", "de4cde6d0fc6def3a89b79da0e01accdbec049f1c9471d13a5d59286bd679af1", "ecd0d1f70116d6b3ae21c57fb06ad90eed33d040e2c5c3d12714b3be934fa5ce", "3c53c5bf2d1b1d4038e1f0e8a2e6d12e0d4613d5cd12562578b6909921224c10", "36087382b37e9e306642cc6e867e0fb2971b6b2b28b6caf2f9c96b790e8db70a", "a957496d6a4218a19998f90282d05bd93e6baabf55e55e8a5f74a933a4dec045", "077d6f094e8467a21f02c67753565ec5755156015d4e86f1f82a22f9cf21c869", "12dd3b1f29e1462ca392c12388a77c58044151154cf86f23873f92a99b6bb762", "7fdbcdedcc02ecf16657792bd8ef4fa4adeee497f30207d4cc060eb0d528b26b", "245554b12bf8edf9e9732d6e2fa50958376e355cb695515c94676e64c6e97009", "ccd3b1841b517f7853e35f85471710777e437a8665e352a0b61c7d7083c3babc", "d970545a326dcd92e31310d1fdce3703dff8ef7c0f3411dfa74fab8b4b0763ac", "d24163068918e2783f9e79c8f2dcc1c5ebac7796ce63070c364837aac91ee239", "256a330055357e20691e53ca5be846507c2f02cfde09cafb5809106f0af9180e", "fa446a5d1876c2051811af2a341a35dbcd3f7f8e2e4f816f501139d27dd7cd82", "bafbc7a8f871d95736a41e5721605d37e7532e41eb1426897e33a72ed2f0bf1d", "8055af9a105b6cf17cfeb3f5320e7dab1a6480500ff03a16c437dfec0724c290", "1de6ee3e989497c1cc7ca1d16b7b01b2f336524aa2f75a823eaa1716c3a1a294", "12bb9508d646dda515745d104199f71276d188b3e164083ad27dfdcdc68e290b", "7ea9f9939ad4f3b44fe7b780e0587da4417c34459b2996b3a449bb5b3ff8c8cb", "a88d2f8f35bc669aa6480ce82571df65fea366834670b4084910c7bb6a735dde", "9486e045adb387a550b3c7a603c30e07ed8625d322d1158f4c424d30befe4a65", "b283a70ba539fe1945be096cb90edb993fac77e8bf53616bde35cdcaa04ab732", "ab39a81558e9309831a2caf03e9df22e8233e20b1769f16e613debcdb8e2610f", "1fc12540473fbbad97c08770c41f517ce19dc7106aa2be2e9b77867046627509", "ec33dbec9d655c4c581e07d1c40a587cf3217bc8168a81521b2d0021bd0ec133", "c8699e3b41846bc291209bbb9c06f565f66c6ccecbf03ebc27593e798c21fe94", "240d7eae209c19d453b666c669190db22db06279386aa30710b6edb885f6df94", "b181c07071a750fc7638dd67e868dddbeeee8e8e0dcbc862539ee2084674a89e", "b8792555c891b3cbfddda308749122a105938a80909c2013637289e115429625", "fe3e9e5b4a5271d19a569fee6faee31814e55f156ba843b6e8f8dc439d60e67a", "912e9ba3b996717f89d58f1e64243d9cca133614394e6ae776e2936cf1a9a859", "a0671c91a21fdfd50e877afa9fe3974aa3913855a2a478ae2c242bcdb71c73d7", "5b55d171b346db9ba27b67105b2b4800ca5ba06931ed6bd1bafb89d31e6472e6", "68438458f1af7bd0103ef33f8bc5853fa857b8c1f84b843882d8c328c595940d", "21fe319fe8c08c1d00f977d33d4a6f18aecaa1fc7855b157b653d2d3cbd8357f", "23cce560bc31f68e699ece60f21dd7951c53c292b3f5522b9683eb2b3c85fc53", "917fa32d172c352e5a77ac079df84401cdd960110c93aa9df51046d1525a9b49", "3fc397180b65585305b88fe500f2ec17bc4dccb2ec254dbb72ffb40979f14641", "f35fb569e7a78a1443b673251ac70384abea7f92432953ca9c0f31c356be9bd9", "7955afa3cd34deb909cd031415e1079f44b76f3d6b0aaf772088445aaff77d08", "45c0ca029356bf6ecfc845065054c06024977786b6fbfaea74b773d9b26f0e6c", "e5c1dac2a6181f7c46ab77f2e99a719504cb1f3e3c89d720428d019cb142c156", "677b0e575afcccf9ddefc9470e96a6cfff155e626600b660247b7121b17b030a", "beed763e9a38277efe57b834a946d05964844b1f51dba2c92a5f3b8d0b7c67d0", "962b17ed1a9343d8ebfae3873162eef13734985f528ca06c90b0c1e68adfdd89"], - "lamport_1": ["b3a3a79f061862f46825c00fec4005fb8c8c3462a1eb0416d0ebe9028436d3a9", "6692676ce3b07f4c5ad4c67dc2cf1dfa784043a0e95dd6965e59dc00b9eaff2d", "bf7b849feb312db230e6e2383681b9e35c064e2d037cbc3c9cc9cd49220e80c9", "a54e391dd3b717ea818f5954eec17b4a393a12830e28fabd62cbcecf509c17dc", "8d26d800ac3d4453c211ef35e9e5bb23d3b9ede74f26c1c417d6549c3110314d", "bb8153e24a52398d92480553236850974576876c7da561651bc551498f184d10", "0d30e0e203dc4197f01f0c1aba409321fbf94ec7216e47ab89a66fb45e295eff", "01dc81417e36e527776bf37a3f9d74a4cf01a7fb8e1f407f6bd525743865791d", "a6318e8a57bec438245a6834f44eb9b7fb77def1554d137ea12320fc572f42c9", "d25db9df4575b595130b6159a2e8040d3879c1d877743d960bf9aa88363fbf9f", "61bb8baeb2b92a4f47bb2c8569a1c68df31b3469e634d5e74221bc7065f07a96", "b18962aee4db140c237c24fec7fd073b400b2e56b0d503f8bc74a9114bf183bf", "205473cc0cdab4c8d0c6aeceda9262c225b9db2b7033babfe48b7e919751a2c6", "c5aa7df7552e5bb17a08497b82d8b119f93463ccb67282960aee306e0787f228", "36da99e7d38ce6d7eab90ea109ba26615ad75233f65b3ae5056fba79c0c6682a", "d68b71bba6266b68aec0df39b7c2311e54d46a3eab35f07a9fe60d70f52eec58", "bbe56f1274ada484277add5cb8c90ef687d0b69a4c95da29e32730d90a2d059f", "0982d1d1c15a560339d9151dae5c05e995647624261022bbedce5dce8a220a31", "8ef54ad546d2c6144fc26e1e2ef92919c676d7a76cfdfb5c6a64f09a54e82e71", "1e3ac0133eef9cdbeb590f14685ce86180d02b0eea3ef600fd515c38992b1f26", "642e6b1c4bec3d4ba0ff2f15fbd69dcb57e4ba8785582e1bc2b452f0c139b590", "ca713c8cf4afa9c5d0c2db4fc684a8a233b3b01c219b577f0a053548bedf8201", "d0569ba4e1f6c02c69018b9877d6a409659cb5e0aa086df107c2cc57aaba62da", "4ebe68755e14b74973e7f0fa374b87cee9c370439318f5783c734f00bb13e4b5", "788b5292dc5295ae4d0ea0be345034af97a61eec206fda885bbc0f049678c574", "0ebd88acd4ae195d1d3982038ced5af1b6f32a07349cf7fffbff3ce410c10df2", "c7faf0a49234d149036c151381d38427b74bae9bd1601fc71663e603bc15a690", "c5247bf09ebe9fa4e1013240a1f88c703f25a1437196c71ee02ca3033a61f946", "719f8c68113d9f9118b4281e1f42c16060def3e3eeef15f0a10620e886dc988f", "28da4f8d9051a8b4d6158503402bdb6c49ba2fb1174344f97b569c8f640504e6", "96f6773576af69f7888b40b0a15bc18cc9ec8ca5e1bb88a5de58795c6ddf678e", "8d80d188a4e7b85607deccf654a58616b6607a0299dd8c3f1165c453fd33d2e4", "9c08dcc4f914486d33aa24d10b89fd0aabcc635aa2f1715dfb1a18bf4e66692a", "0ff7045b5f6584cc22c140f064dec0692762aa7b9dfa1defc7535e9a76a83e35", "8e2dae66fa93857b39929b8fc531a230a7cfdd2c449f9f52675ab5b5176461d5", "f449017c5d429f9a671d9cc6983aafd0c70dd39b26a142a1d7f0773de091ac41", "ed3d4cab2d44fec0d5125a97b3e365a77620db671ecdda1b3c429048e2ebdae6", "836a332a84ee2f4f5bf24697df79ed4680b4f3a9d87c50665f46edaeed309144", "7a79278754a4788e5c1cf3b9145edb55a2ba0428ac1c867912b5406bb7c4ce96", "51e6e2ba81958328b38fd0f052208178cec82a9c9abd403311234e93aff7fa70", "217ec3ec7021599e4f34410d2c14a8552fff0bc8f6894ebb52ec79bf6ec80dc9", "8a95bf197d8e359edabab1a77f5a6d04851263352aa46830f287d4e0564f0be0", "60d0cbfb87340b7c92831872b48997ce715da91c576296df215070c6c20046d4", "1739fbca476c540d081b3f699a97387b68af5d14be52a0768d5185bc9b26961b", "ac277974f945a02d89a0f8275e02de9353e960e319879a4ef137676b537a7240", "959b7640821904ba10efe8561e442fbdf137ccb030aee7472d10095223e320ba", "dba61c8785a64cb332342ab0510126c92a7d61f6a8178c5860d018d3dad571c6", "c191fb6a92eb1f1fb9e7eb2bdecd7ec3b2380dd79c3198b3620ea00968f2bd74", "16ef4e88e182dfc03e17dc9efaa4a9fbf4ff8cb143304a4a7a9c75d306729832", "39080e4124ca577ff2718dfbcb3415a4220c5a7a4108729e0d87bd05adda5970", "a29a740eef233956baff06e5b11c90ed7500d7947bada6da1c6b5d9336fc37b6", "7fda7050e6be2675251d35376bacc895813620d245397ab57812391d503716ee", "401e0bf36af9992deb87efb6a64aaf0a4bc9f5ad7b9241456b3d5cd650418337", "814e70c57410e62593ebc351fdeb91522fe011db310fcf07e54ac3f6fefe6be5", "03c1e52ecbef0d79a4682af142f012dc6b037a51f972a284fc7973b1b2c66dcf", "57b22fb091447c279f8d47bdcc6a801a946ce78339e8cd2665423dfcdd58c671", "53aeb39ab6d7d4375dc4880985233cba6a1be144289e13cf0bd04c203257d51b", "795e5d1af4becbca66c8f1a2e751dcc8e15d7055b6fc09d0e053fa026f16f48f", "1cd02dcd183103796f7961add835a7ad0ba636842f412643967c58fe9545bee4", "55fc1550be9abf92cacb630acf58bad11bf734114ebe502978a261cc38a4dd70", "6a044e0ea5c361d3fb2ca1ba795301e7eb63db4e8a0314638f42e358ea9cfc3e", "57d9f15d4db199cbcb7cbd6524c52a1b799d52b0277b5a270d2985fcee1e2acb", "66c78c412e586bd01febc3e4d909cc278134e74d51d6f60e0a55b35df6fb5b09", "1076799e15a49d6b15c2486032f5e0b50f43c11bc076c401e0779d224e33f6fc", "5f70e3a2714d8b4483cf3155865ba792197e957f5b3a6234e4c408bf2e55119d", "9b105b0f89a05eb1ff7caed74cf9573dc55ac8bc4881529487b3700f5842de16", "1753571b3cfadca4277c59aee89f607d1b1e3a6aa515d9051bafb2f0d8ce0daa", "4014fff940b0950706926a19906a370ccbd652836dab678c82c539c00989201a", "0423fa59ee58035a0beb9653841036101b2d5903ddeabddabf697dbc6f168e61", "78f6781673d991f9138aa1f5142214232d6e3d6986acb6cc7fb000e1a055f425", "21b8a1f6733b5762499bf2de90c9ef06af1c6c8b3ddb3a04cce949caad723197", "83847957e909153312b5bd9a1a37db0bd6c72a417024a69df3e18512973a18b4", "948addf423afd0c813647cfe32725bc55773167d5065539e6a3b50e6ebbdab38", "0b0485d1bec07504a2e5e3a89addd6f25d497cd37a0c04bc38355f8bdb01cd48", "31be8bda5143d39ea2655e9eca6a294791ca7854a829904d8574bedc5057ddc4", "16a0d2d657fadce0d81264320e42e504f4d39b931dff9888f861f3cc78753f99", "b43786061420c5231bf1ff638cb210f89bf4cd2d3e8bafbf34f497c9a298a13b", "1f5986cbd7107d2a3cbc1826ec6908d976addbf9ae78f647c1d159cd5397e1bd", "a883ccdbfd91fad436be7a4e2e74b7796c0aadfe03b7eea036d492eaf74a1a6f", "5bc9eb77bbbf589db48bca436360d5fc1d74b9195237f11946349951f2a9f7f6", "b6bc86de74a887a5dceb012d58c62399897141cbcc51bad9cb882f53991f499c", "a6c3260e7c2dd13f26cf22bf4cd667688142ff7a3511ec895bc8f92ebfa694b6", "b97da27e17d26608ef3607d83634d6e55736af10cc7e4744940a3e35d926c2ad", "9df44067c2dc947c2f8e07ecc90ba54db11eac891569061a8a8821f8f9773694", "865cc98e373800825e2b5ead6c21ac9112ff25a0dc2ab0ed61b16dc30a4a7cd7", "e06a5b157570c5e010a52f332cacd4e131b7aed9555a5f4b5a1c9c4606caca75", "824eccb5cf079b5943c4d17771d7f77555a964a106245607cedac33b7a14922e", "e86f721d7a3b52524057862547fc72de58d88728868f395887057153bccaa566", "3344e76d79f019459188344fb1744c93565c7a35799621d7f4505f5b6119ac82", "401b3589bdd1b0407854565329e3f22251657912e27e1fb2d978bf41c435c3ac", "b12fd0b2567eb14a562e710a6e46eef5e280187bf1411f5573bb86ecbe05e328", "e6dc27bab027cbd9fbb5d80054a3f25b576bd0b4902527a0fc6d0de0e45a3f9f", "1de222f0e731001c60518fc8d2be7d7a48cc84e0570f03516c70975fdf7dc882", "b8ff6563e719fc182e15bbe678cf045696711244aacc7ce4833c72d2d108b1b9", "53e28ac2df219bcbbc9b90272e623d3f6ca3221e57113023064426eff0e2f4f2", "8a4e0776f03819e1f35b3325f20f793d026ccae9a769d6e0f987466e00bd1ce7", "2f65f20089a31f79c2c0ce668991f4440b576ecf05776c1f6abea5e9b14b570f", "448e124079a48f62d0d79b96d5ed1ffb86610561b10d5c4236280b01f8f1f406", "419b34eca1440c847f7bff9e948c9913075d8e13c270e67f64380a3f31de9bb2", "2f6e4fee667acaa81ba8e51172b8329ed936d57e9756fb31f635632dbc2709b7", "dd5afc79e8540fcee6a896c43887bd59c9de5d61b3d1b86539faeb41a14b251d", "c707bed926a46cc451a6b05e642b6098368dbdbf14528c4c28733d5d005af516", "153e850b606eb8a05eacecc04db4b560d007305e664bbfe01595cb69d26b8597", "1b91cc07570c812bb329d025e85ef520132981337d7ffc3d84003f81a90bf7a7", "4ca32e77a12951a95356ca348639ebc451170280d979e91b13316844f65ed42a", "e49ea1998e360bd68771bd69c3cd4cf406b41ccca4386378bec66ea210c40084", "01aaffbde1a672d253e0e317603c2dc1d0f752100d9e853f840bca96e57f314c", "170d0befcbbaafb317c8684213a4989368332f66e889824cc4becf148f808146", "56f973308edf5732a60aa3e7899ae1162c7a2c7b528c3315237e20f9125b34e0", "66c54fd5f6d480cab0640e9f3ec1a4eafbafc0501528f57bb0d5c78fd03068ef", "aca6c83f665c64d76fbc4858da9f264ead3b6ecdc3d7437bb800ef7240abffb9", "f1d4e02e7c85a92d634d16b12dc99e1d6ec9eae3d8dfbca77e7c609e226d0ce7", "094352545250e843ced1d3c6c7957e78c7d8ff80c470974778930adbe9a4ed1a", "76efa93070d78b73e12eb1efa7f36d49e7944ddcc3a043b916466ee83dca52ce", "1772a2970588ddb584eadf02178cdb52a98ab6ea8a4036d29e59f179d7ba0543", "e4bbf2d97d65331ac9f680f864208a9074d1def3c2433458c808427e0d1d3167", "8ccfb5252b22c77ea631e03d491ea76eb9b74bc02072c3749f3e9d63323b44df", "9e212a9bdf4e7ac0730a0cecd0f6cc49afc7e3eca7a15d0f5f5a68f72e45363b", "52e548ea6445aae3f75509782a7ab1f4f02c2a85cdd0dc928370f8c76ae8802d", "b62e7d73bf76c07e1a6f822a8544b78c96a6ba4f5c9b792546d94b56ca12c8b9", "595cb0e985bae9c59af151bc748a50923921a195bbec226a02157f3b2e066f5b", "1c7aa6b36f402cec990bafefbdbb845fc6c185c7e08b6114a71dd388fe236d32", "01ee2ff1a1e88858934a420258e9478585b059c587024e5ec0a77944821f798c", "420a963a139637bffa43cb007360b9f7d305ee46b6a694b0db91db09618fc2e5", "5a8e2ad20f8da35f7c885e9af93e50009929357f1f4b38a6c3073e8f58fae49e", "52a405fdd84c9dd01d1da5e9d1c4ba95cb261b53bf714c651767ffa2f9e9ad81", "a1a334c901a6d5adc8bac20b7df025e906f7c4cfc0996bfe2c62144691c21990", "b789a00252f0b34bded3cb14ae969effcf3eb29d97b05a578c3be8a9e479c213", "b9dbf7e9ddb638a515da245845bea53d07becdf3f8d1ec17de11d495624c8eab", "af566b41f5ed0c026fa8bc709533d3fa7a5c5d69b03c39971f32e14ab523fa3d", "8121e0b2d9b106bb2aefd364fd6a450d88b88ee1f5e4aad7c0fcd8508653a112", "8581c1be74279216b93e0a0d7272f4d6385f6f68be3eef3758d5f68b62ee7b6c", "85386f009278f9a1f828404fa1bbfa02dfb9d896554f0a52678eb6ec8feadc55", "f483ed167d92a0035ac65a1cfdb7906e4952f74ae3a1d86324d21f241daffcb7", "3872485e2a520a350884accd990a1860e789dd0d0664ad14f50186a92c7be7be", "c6c1a3301933019105f5650cabcb22bfbf221965ffcfc1329315b24ea3d77fd4", "cee901330a60d212a867805ce0c28f53c6cc718f52156c9e74390d18f5df6280", "a67ae793b1cd1a828a607bae418755c84dbb61adf00833d4c61a94665363284f", "80d8159873b517aa6815ccd7c8ed7cfb74f84298d703a6c5a2f9d7d4d984ddde", "1de5a8b915f2d9b45c97a8e134871e2effb576d05f4922b577ade8e3cd747a79", "6ea17c5ece9b97dddb8b2101b923941a91e4b35e33d536ab4ff15b647579e1f5", "cb78631e09bc1d79908ce1d3e0b6768c54b272a1a5f8b3b52485f98d6bba9245", "d7c38f9d3ffdc626fe996218c008f5c69498a8a899c7fd1d63fbb03e1d2a073f", "72cdef54267088d466244a92e4e6f10742ae5e6f7f6a615eef0da049a82068f9", "60b3c490ba8c502656f9c0ed37c47283e74fe1bc7f0e9f651cbc76552a0d88eb", "56bd0c66987a6f3761d677097be9440ea192c1cb0f5ec38f42789abe347e0ea9", "3caac3e480f62320028f6f938ee147b4c78e88a183c464a0c9fb0df937ae30c1", "7a4d2f11bddda1281aba5a160df4b814d23aef07669affe421a861fac2b4ec0f", "9bb4d11299922dc309a4523959298a666ebe4063a9ee3bad1b93988ed59fb933", "957323fffbaf8f938354662452115ae5acba1290f0d3f7b2a671f0359c109292", "877624e31497d32e83559e67057c7a605fb888ed8e31ba68e89e02220eac7096", "8456546ae97470ff6ea98daf8ae632e59b309bd3ff8e9211f7d21728620ed1e5", "bacb26f574a00f466ce354e846718ffe3f3a64897d14d5ffb01afcf22f95e72b", "0228743a6e543004c6617bf2c9a7eba1f92ebd0072fb0383cb2700c3aed38ba0", "04f093f0f93c594549436860058371fb44e8daf78d6e5f563ba63a46b61ddbf0", "0ba17c1ec93429ceaff08eb81195c9844821b64f2b5363926c2a6662f83fb930", "d71605d8446878c677f146837090797e888416cfc9dc4e79ab11776cc6639d3f", "33dde958dc5a6796138c453224d4d6e7f2ae740cceef3b52a8b669eb4b9691a1", "3c39838295d1495e90e61ce59f6fcc693b31c292d02d31759719df6fe3214559", "8aecc66f38644296cf0e6693863d57a243a31a4929130e22ab44cb6157b1af41", "df7153a7eab9521f2b37124067166c72de8f342249ac0e0f5350bd32f1251053", "a498840b58897cf3bed3981b94c86d85536dfebbc437d276031ebd9352e171eb", "b1df15a081042ab665458223a0449ffc71a10f85f3d977beb20380958fd92262", "15d3bdbdee2a61b01d7a6b72a5482f6714358eedf4bece7bb8458e100caf8fba", "0c96b7a0ea09c3ef758424ffb93654ce1520571e32e1f83aecbeded2388c3a7a", "b4a3a8023266d141ecd7c8a7ca5282a825410b263bc11c7d6cab0587c9b5446e", "f38f535969d9592416d8329932b3a571c6eacf1763de10fb7b309d3078b9b8d4", "5a1e7b1c3b3943158341ce6d7f9f74ae481975250d89ae4d69b2fcd4c092eb4e", "dad31e707d352f6cca78840f402f2ac9292094b51f55048abf0d2badfeff5463", "097e290170068e014ceda3dd47b28ede57ff7f916940294a13c9d4aa2dc98aad", "22e2dcedb6bb7f8ace1e43facaa502daa7513e523be98daf82163d2a76a1e0be", "7ef2b211ab710137e3e8c78b72744bf9de81c2adde007aef6e9ce92a05e7a2c5", "49b427805fc5186f31fdd1df9d4c3f51962ab74e15229e813072ec481c18c717", "e60f6caa09fa803d97613d58762e4ff7f22f47d5c30b9d0116cdc6a357de4464", "ab3507b37ee92f026c72cc1559331630bc1c7335b374e4418d0d02687df1a9dd", "50825ae74319c9adebc8909ed7fc461702db8230c59975e8add09ad5e7a647ab", "0ee8e9c1d8a527a42fb8c2c8e9e51faf727cffc23ee22b5a95828f2790e87a29", "675c21c290ddb40bec0302f36fbcd2d1832717a4bc05d113c6118a62bc8f9aca", "580bafab24f673317b533148d7226d485e211eaa3d6e2be2529a83ca842b58a7", "540e474776cae597af24c147dc1ae0f70a6233e98cf5c3ce31f38b830b75c99a", "36eaf9f286e0f356eaaf8d81f71cc52c81d9ebc838c3b4859009f8567a224d16", "0e2cbbb40954be047d02b1450a3dbd2350506448425dc25fd5faf3a66ee8f5c4", "7eb0390cfe4c4eb120bbe693e87adc8ecab51d5fd8ce8f911c8ff07fad8cbe20", "bf77589f5c2ebb465b8d7936f6260a18a243f59bd87390ee22cf579f6f020285", "695b96bb28693f6928777591ef64146466d27521280a295936a52ec60707c565", "22a0d018cbd4274caa8b9e7fb132e0a7ed787874046ca683a7d81d1c7c8b8f15", "84092b122bb35e5ad85407b4b55f33707b86e0238c7970a8583f3c44308ed1d9", "ea346067ca67255235f9cae949f06e4b6c93846a7abc7c8c8cd786e9c4b3e4bc", "a6df0716b125dc696b5d0e520cb49c1c089397c754efc146792e95bc58cc7159", "7377b5d3953029fc597fb10bb6479ee34133d38f08783fbb61c7d070f34ea66f", "7d79b00ffb976a10cd24476a394c8ed22f93837c51a58a3ddc7418153a5a8ea1", "01e55182e80dff26cc3e06bb736b4a63745bde8ae28c604fa7fb97d99de5f416", "062a2d5a207f8d540764d09648afecbf5033b13aec239f722b9033a762acf18b", "48be60a3221d98b4d62f0b89d3bef74c70878dd65c6f79b34c2c36d0ddaa1da0", "41e11f33543cf045c1a99419379ea31523d153bdf664549286b16207b9648c85", "eef4d30b4700813414763a199e7cc6ab0faec65ef8b514faa01c6aa520c76334", "ea7cfe990422663417715e7859fc935ca47f47c943a1254044b6bc5934c94bc8", "bbd3c834e5403b98a0ca346c915a23310f3d58880786628bc6cfbe05ba29c3c5", "e216379f385bc9995ae0f37f1409a78d475c56b8aeb4ee434326724ec20124f7", "dd328a1eee19d09b6fef06e252f8ad0ae328fbf900ef745f5950896803a3899d", "a16fde34b0d743919feb0781eca0c525a499d279119af823cb3a8817000335db", "7a28d108c59b83b12c85cd9aabc1d1d994a9a0329ae7b64a32aadcd61ebe50e3", "b28bc82fceae74312eb837a805f0a8a01c0f669b99bb03fde31c4d58bedff89b", "1b0d8f37d349781e846900b51a90c828aa384afe9b8ee1f88aeb8dba4b3168f2", "bfd0301ff964c286c3331a30e09e0916da6f484e9c9596dbf1cae3cc902dbf9e", "bb8254cb9ef6b485b8fb6caeafe45f920affc30f6b9d671e9a454530536f4fef", "cad2317cf63dfa7147ded5c7e15f5f72e78f42d635e638f1ece6bc722ca3638b", "b6c6e856fd45117f54775142f2b38f31114539d8943bcbcf823f6c7650c001e4", "869f1baa35684c8f67a5bc99b294187852e6c85243a2f36481d0891d8b043020", "14c6ccf145ee40ff56e3810058d2fba9a943ffc7c7087c48a08b2451c13dc788", "263c1bcb712890f155b7e256cefa4abf92fe4380f3ffc11c627d5e4e30864d18", "69f4eaf655e31ad7f7a725cd415ce7e45dd4a8396ac416950d42ed33155c3487", "47e8eec2c5e33c9a54fe1f9b09e7744b614fb16531c36b862aa899424be13b05", "5c985de270e62c44f0b49157882e8e83641b906ce47959e337fe8423e125a2eb", "4e13b11e13202439bb5de5eea3bb75d2d7bf90f91411163ade06161a9cf424db", "583a8fa159bb74fa175d72f4e1705e9a3b8ffe26ec5ad6e720444b99288f1213", "903d2a746a98dfe2ee2632606d57a9b0fa6d8ccd895bb18c2245fd91f8a43676", "a35a51330316012d81ec7249e3f2b0c9d7fcbb99dd98c62fe880d0a152587f51", "33818a7beb91730c7b359b5e23f68a27b429967ea646d1ea99c314353f644218", "183650af1e0b67f0e7acb59f8c72cc0e60acc13896184db2a3e4613f65b70a8b", "857ff2974bef960e520937481c2047938a718cea0b709282ed4c2b0dbe2ef8fa", "95a367ecb9a401e98a4f66f964fb0ece783da86536410a2082c5dbb3fc865799", "56c606a736ac8268aedadd330d2681e7c7919af0fe855f6c1c3d5c837aa92338", "5c97f7abf30c6d0d4c23e762c026b94a6052a444df4ed942e91975419f68a3a4", "0b571de27d2022158a3128ae44d23a8136e7dd2dee74421aa4d6ed15ee1090a0", "a17f6bc934a2f3c33cea594fee8c96c1290feec934316ebbbd9efab4937bf9f9", "9ff57d70f27aad7281841e76435285fd27f10dad256b3f5cabde4ddc51b70eff", "afa3071a847215b3ccdf51954aa7cb3dd2e6e2a39800042fc42009da705508b2", "5e3bea33e4ac6f7c50a077d19571b1796e403549b1ce7b15e09905a0cc5a4acf", "0dc7ba994e632ab95f3ecb7848312798810cf761d1c776181882d17fd6dda075", "b4f7158679dad9f7370a2f64fbe617a40092849d17453b4f50a93ca8c6885844", "094564b00f53c6f27c121fd8adfe1685b258b259e585a67b57c85efb804c57b2", "9cd21a4249ba3fccffad550cdb8409dc12d8b74a7192874b6bafe2363886f318", "bb22e0dad55cb315c564c038686419d40ef7f13af2143a28455bf445f6e10393", "2a71d5e00821178c2cd39e7501e07da5cca6680eb7cdbe996f52dccafadb3735", "9619406093b121e044a5b403bb1713ae160aeb52ad441f82dc6c63e4b323b969", "3b8bd1d82c6d67ae707e19b889f1cb1f7bba912f12ae4284298f3a70c3644c79", "d7a70c50d47d48785b299dbea01bf03ef18b8495de3c35cb265bc8f3295c4e15", "8802ecce8dd6b6190af8ac79aafda3479c29f548d65e5798c0ca51a529b19108", "4b630e1df52ec5fd650f4a4e76b3eeddda39e1e9eab996f6d3f02eefdf690990", "0bfbff60fcf7f411d469f7f6f0a58ca305fd84eb529ee3ac73c00174793d723e", "535f78b5f3a99a1c498e2c19dc1acb0fbbaba8972ba1d7d66936c28ab3667ebe", "06ba92d8129db98fec1b75f9489a394022854f22f2e9b9450b187a6fc0d94a86", "b7ae275ba10f80fb618a2cf949d5ad2e3ae24eb2eb37dcf1ec8c8b148d3ba27f", "b275579bcf2584d9794dd3fc7f999902b13d33a9095e1980d506678e9c263de1", "843ccd52a81e33d03ad2702b4ef68f07ca0419d4495df848bff16d4965689e48", "de8b779ca7250f0eb867d5abdffd1d28c72a5a884d794383fc93ca40e5bf6276", "6b789a2befccb8788941c9b006e496b7f1b03dbb8e530ba339db0247a78a2850", "fccd4dca80bc52f9418f26b0528690255e320055327a34b50caf088235d2f660", "18479ebfbe86c1e94cd05c70cb6cace6443bd9fdac7e01e9c9535a9e85141f2f", "5350c8f3296441db954a261238c88a3a0c51ab418a234d566985f2809e211148", "a5636614135361d03a381ba9f6168e2fd0bd2c1105f9b4e347c414df8759dea3", "e7bb69e600992e6bd41c88a714f50f450153f1a05d0ddb4213a3fc4ba1f48c3f", "17b42e81bae19591e22aa2510be06803bcb5c39946c928c977d78f346d3ca86b", "30a10c07dc9646b7cbb3e1ab722a94d2c53e04c0c19efaaea7dccba1b00f2a20"], - "compressed_lamport_PK": "672ba456d0257fe01910d3a799c068550e84881c8d441f8f5f833cbd6c1a9356", - "child_SK": 7419543105316279183937430842449358701327973165530407166294956473095303972104 + "lamport_0": ["47c51a1ada8ea9854caf9cabbcf352a4a6516bd2e2846cf489e79918702efbcc", "8a552f431750ea58ade978452178fc94b5b188b0239833043e6b0f4dee2bfab9", "adfe3d35801d6ce39613b7d331932c8112c5bed0b64911f94362f27cdc4337e9", "70aeba65f07f8aa7592dc0a987fc22a85e4ed0fcae85fbdf7140bad88092a85a", "2d0f072630e89bb5fafa6de68e252f08e2ec52f33a2a4e9b71bd4102714306b3", "db5463e480d9781854d779721751e1aba0b5bac1399003e1c2c20697fc7c1397", "3f9373c7415abcd48d9bbb763fba27f64069ee5d7f3868ec9c9338b08588bd80", "58775c94d4e83789025d05210c939f4c83fc49400ba7cf5c369d981aa0583bb0", "fe41b86505baaa50d96820cb9d5c3525e135d0cbd95e4445cc4596d40a057a47", "1385785dc8b8e40f45f557fc890b70ccfd18dccdcc81b5748bde580d2b3d56ac", "c5dfd9830fb663b1ef6238ecfdea0bae1b09d34f8c58b968558d0cd1fa8a61ba", "95e884c1cdf68b7f6f27c6a58441dd02329a8d0746004fd01ae7fe927fed5862", "0f112d1265e05217eb0ec461ca799234f0776f7d7cfe0876239f08e835483b83", "480bd7fcf059e97e6a306c511075534f4542a92c3447ae298d7d07fffea140c5", "75b4427cdf268cd88e4c2020d447d6ac59a354feec8557eab63289e64df93417", "8014fd85a67b8935f3d8b6f0c7454b9ff21ef76ec9b0292b84420dec429eee41", "ea32ecb794e6c97098a3d14c1ba3634c5c6c851143d52487330e81eb42ea7392", "6336ec857a6b550bbdab7e5aa872966eaf6d659c495a477110236153d0d0fe23", "a0e1d76e8b10a1e7f688d276393fd4c4ea1edd4791abe2d961815e6110647e5b", "7b3e0c566de3161a3c5f6709cd1f19371064df2b7bd0e53d3d157bfb814435d4", "a5b7b1d2425bfcab61cb488802a668ee690457c4c781724eaa98e6b47b35a459", "82218cf527a038c501327f83d1433959a3b7dcd805717612da27cee5da426d22", "e016339982f6bcf25fb383ceae5b062c54f0997f19b36d8ca10c550aa13afc96", "1bfa1ae8d5ae9c7ef6357fe71f1b201f5475625adedb95ec7b1e3922f9cfd032", "1c9e4372198bf852bd5ee7805c2fc776ad947558cad6794c3a99b68ad6c59549", "8b6e746f021e2606eac33909bdca28e82cf6212c924a3d5f73e2a6897c4bc4bd", "c455f8fb57e3517d493ef5200b98e92b6aaabcbd6b0065a95c06e188a0a6b490", "ac3443fc47738f896aec50953c8417daa6d6db963ed3b9ef602943cb44b106f6", "2242f621410c337628167ff6dc13d984775a52e20c8bd0218aef0c7c58d13053", "3dc490394ee6de94aef45579547c13a65a62404d685236a94d54c0ca476b2529", "fd873ece6865f10e31643bb38179b9495c3a52f37f6552baf8cb43e2e6117f80", "bf2598e5d038714d54a05e716d0ec4ad7ee0409504b076ce55e3122041451c94", "e2c0ea9f25d5fc86acf7bcbbc42e15bfb14a5b6df8177737ab36804377bf4a83", "2cc0e4a318a66eefcee0ef2f3f8a26ed7be5ee9ecf1a430d63c25b3318703e62", "b13bd90161dbbb1f08053c06f76487d03a47389061afdf9c729382a55f993450", "5a80b7d8d05aa033c46df33fa61c6a45274e89d86e1f19f5d5afd4e253d1a22c", "23fd5dad51a50f1edfe49a5364f59a7aabf725c1a0a4ef1ad2fa8621695075d1", "40015086aa9999d6304d17063e8360696b208cdcd33782052552799963f05961", "7998f43798b8f415950e2a01c91c5e58e7f3d9b850624d70cb36de59e7a9091c", "f2be8bf17fb6674939a57e33d30ad02fea5e7692639a636e02ac3069e7f11ce2", "781aed2cf60d98d0c832d29d8cef20b850f34f28790a6031aa110f8055c1a519", "1985d94ff1ddd9bb89aa9182e7e7c5c74cf98e7a49ad8872d1a4236ee64977ef", "6678007ce2c1774f608b58b0f4cd80229e4be3a75bacb59a2c3ed6b120c6a2b1", "f7cae435496e2e1d70334db16e2015ec8031662e3a0ac7f70f4cb59348ad548d", "fcf7ffbad27215851bbcf900aeb97a0252a2b2ac515e8b62f600724c21c71a27", "17ba1852f93d8889f7e4831e4ed2a344f944d74b967f35cb4fb1d48d66e55bbb", "3361017af64e421ce8a8ed9a420654d2d59085761efb04f952fb012cfe7299d4", "9c497159c948a99ab963aa68f6c449c8a7b31c88c2465d99937fb9dda7eea2f5", "ec5a191e542262ddbec561ed03869adb7dea03e187cd8ac3d9d34ab91b5981ed", "f7d6c031aaf81eb2a99afab342f2ea53356da736bf7a17924c096000692d8b8d", "ec13d3d906c56df5536242f817eee11dc83ac0dee5be009d6c80824e1b216baa", "c9263e8c1df78c394f4329e73144f8cd925fe71b2881d2899239c888a4976e5d", "29ade35af482d6d0b12b19e8f39d2eeb25501142828fdb4c32c3ffb5948fb01e", "24023237c1121d3a383b6195c3a2e32d181fab29ef4d188fe9666816b13a27af", "f7eb262e5833f93a3fc16da1713c3f678e775ba818de0ca4d72b6ff431e2dda7", "d269ad7f448a541b90eda6e048729eca28eb6a889299c35870c3e6d5b3e81e4a", "9fa40fe02c4e4b0983b6d4b7ce705f8fd93cd36df11538d2691ec960bcfc5553", "945d7181619edab7188e8efd60d3691fc7e9b63c0e84e67a5fe9f89a5c527842", "630086fa18518e8298ed1da44cbc644eddb05ebb13acf0e04561ad2986f68667", "ed7b241e3485086451e39ba6c4a1a9cd9dcb6336080660bc04840ed80ab27700", "157a96671b9ccd887612a6f1d7fffbb63475163c44b5d1ef8f422d50b1c22cad", "32d6e45f707d6bb2c538fcd6d2c8f1d560f17153b88d53d89922eee8dfbf9af0", "151a225c2bd8caa213956ced9f26625c54bb72606e8062f475bec227e4b99cba", "7f14c5bf78d05f61f676c31f448238e8e08296bd682d7dd134764220a2e710bb", "69670a13b69764fd025661d9a7ab6851d89d6da2938557d52e02e5a249039828", "119f6e51d07335898222554bb5a6b5bd0bdf3d851a600be5e4d3211168eb9cbd", "a1faba057401c4c650e3577d8925f3a87a6e3ce3b20b2a3fd17268e05f3f26bb", "8999420b45062552fc96cd57bb1fd503434f6f6861cd9ad499ec7e3ae07f0a3b", "9d6d4d5cf71d9708f6e7f7afe04f51c8ebe7b4b7801452e59f2bdb38cabd259a", "9b9d7b26734eb529d05106a5473928a9141669a7d05c2cdd305821dd7cc75549", "1ea085fcefdbe503f06d802e15b06e25fb578ee506936df0b4c786e0aa88b7a2", "daaf4c1895bcfd32a6f01093ad94ea2cf3ad7349cbe7304b71782253c1970e01", "eff57165e9af91f623ff8d3c41d6df74c4350639ced764ca0727ada3cc44279f", "75be1c75b29db0e1c1b99ef8d64e78cfcacf93198eaa86806f0812b95f89e23e", "35e0c4d3b758a693e69f83fde7601a1f1f251c7f051bfccda58d9620afc64ee2", "6ba7fc24b15306583bfe8357b412ebf0ba280429f1b02e1cf0778af640a1d000", "8f75549267e20c3bd70cd74a2b96b42326c54a4352f88b59c3bb59586e82ad7c", "7a7c7d3852f6c6eca7fe75e4b99fadd4b312a36017df1d5d15395e26c21d8302", "28599b54f64c7b3c12ffcf1dcd8491983af5d92f247496fc7d3cf43aa4861b53", "d19c0f48f2de5ea80e574f76c42463c4da8ba5033a0b3ed753cc8e3d1e9e6bfe", "ac02bdd61f6c2c6464ec853080254f74bb100920372db1d68e8c2731f57dedf1", "4c176854680d9d9c235f870cbeecc4e07e272f5fd9c6615197e3b8f64d023ac4", "2f29148814ca6da9793af0c335896a63c601d00c722b88da3d4a392e08716ffb", "3735c6fdea2b1212e0e07019e5696e3a4015888252eeeb4c7bfa8ae251017e17", "bd15533475412a54ae3ed46c9255ac10047b408a8a9e2bac5fd13b39a2604d76", "f53d1cb0732bcd0c3ae240f548c21fda4bf605177bdd0e6469717d58c6f864e8", "5495af2758e8b35cf6b5fff6428c1a11e940e775c6e7dd84c3d98d72cd2aec9d", "0947c3583b730b7fc6b4d11c12eb260ccc917189f7b047715363f07e04b60272", "14736ba15e313c0105666b44c5ebb2866513f441701e8141052138de292b8648", "93588c7759a4f392d65c9ad3133391468d86d8b6a6a4e0924ab5ae8ea33083cb", "d8b63b4b40e5085d62e13264091c2cee661c487938f78bdf8593e73b1af879eb", "a2174f6c0bd2e5efd255bb2a4b45805ef54f5f5a5beed2d83e19a9b7694fdbec", "960788862f5b58c03d156ac82dcb4b6973aedbfe8d1ed6d2cb6195ee6e6ec0e0", "23a61fcbdbb671c826d98ee9eba5ae66a4078f0bd93a89c372743c38fb55fc76", "345db3c5da26a2f65e7c9d773db3f2560e82591af71ee2835d31bf2e18f3d741", "acec6b57b5900656d913f33a8dc650f6d2f95e6451d1042b4ecbc2774eb5ffd6", "0677a666b02527feb128fd966b6b1ce333df0d6b2fef16afe49f2dcb56b11b2d", "772fd2dcaa6d45ced22d1b17876fafd8a197e2f508fe0fc29b5dbf8447504ecb", "471be93d7e0e2c687c85073ad8d48dc4b2defcbd1c4b427b8ea547ecf5dc7b37", "d64bbfdd54cecabc5aec481695e68e816d1ee2dbb4afd7f1f9d8e8df706c1163", "f4cd4e95456744108a2d5ee0387e315cda19838c22770ea195f5cc1c03a36f62", "afa5c2ad4bd7066a2a2a48df376dcc19094bcfeedfca87b1f84155fbbfd832d7", "1580dd4eef6371c0f9133883e1f67ecb1f5838c855da75930e6c24e9286da510", "858a261e4fa1b25833a6e47b569c75fca8719341fd1fbb89f52edb824709115f", "b7dab2aa3c009de6a62d9138e40116bcf52b4def4570d95750982d534f22be3c", "7b67fca5c3a13c91c1e8ff5c4f698965b8dce0e0cabe79ff5856bc502ec83624", "e7a9535c899ddf1732c0a326043cb865aca2fb7dff65ef2eea0ce9c8ccce0984", "6ef44378130cbf2f6c26678971b1437483642c35bb42757deee7bef1a6a9817b", "bf3eacd871f19be8085d35c9c8dedcf8b9f751188bf2f27909d3fc2da21f56cb", "f560f67dd7e38985203a4c5eaba634724645472a5c80a6bcf1cb1bec4d834567", "238cf7409d750221b7a2b96ca3a33aade0096124e8fe6e08fb54b4dceabf1567", "233ff01d5511da258d0d057aeae8c0165818252b5fc5dd370540fec6e05e8d7d", "4e1b0eec69960c7f3db81ef860b30fdbb98053acef21fceb1e08c3ebf40563cb", "d69aaa44954f69cc2f35f305f7698c42a63f724b638e6e3fdfaa28527c75f797", "7f5656a5353616e5f2defc6792a98062d6fcb664b7b6c5a3aa656002507a3b0f", "e74d037642e8fba474e3d73f53dfa938ac28fe0c513f96b42677f72d0bb71eb4", "d806933b718cc8dac24ffc9bff2fb0841add066c1727a669b833a0226d2d9a75", "8c2d5c90a9cc20b35fe3762af481b03c1c35a21d527319c9431f00e8bbfa3d27", "761ec1dc5a9dc44e33b178548002f8be6b2f032f0d069bead3da3dad498b860e", "b1a77e9cad611cdd1bcd895a863c3745bac26d5316a7042cd353ea01460adc1d", "f98033583c890f2fe60e0bfc13578ec48d9a9bb7c49fa5caad48cdd26c91a384", "4bfa3c2502a9e05b82be83820ae7e8e4dd63b9d8f5df43a1a468982d924733bb", "963191cef6b85a8e0bd871bce0b83f3ccfff74222f52263db857b03eee66303b", "dd372a18f6c7683fa4150d90af90268bc584cf37564006be231924629f73f34a", "f89c94b497752739e5930d34a741817e9ec2da9234a7dd5db3bf6886365c953e", "73c0d84bff89d45ac809ee70704aae72c5a23c1525a85b809f4f5437c2cf15b5", "f9570f3de2d27c967b3e07d1f79453ef3d1f05d9b664ed71559caaf5ade5af65", "a29c517c6339dd7e0db605be17b35579fc9208f9134ee2fed562e669794f4d86", "8f7643851a86d5d5293b588e6cef5b5fb587c1a43518f6e9c9775bec49a78c6a", "5181bbd29a10dbf143283040c0b381cbd32f24e2bc262b014d447fd528dcdd13", "31e1e1f5215c3977c3649bd5bad9fa660ff57c3d9bde427863d8f24eea89bd2b", "16636f6ba92d289b2f9e73df09b729321e41b8dd92836762bff166fdf32c733e", "4a27a7a2d0c8551e7b3fb8c0ce945b4dee6e1a861c1b9366042194aabea565e7", "3a5b81eb6a830f9369c763059e79a2462b3518d4b6435169f59b34c68b173c84", "972c5c1184cfae855f51e86d920b0758f08eb83e75a8095d813e57ae3483e67a", "b7fb2f2e1ef1719f50f63de009db0dcbed7626eecd3b707d0d058ae728d7ed15", "a2204ef75bb8280d74a1ea4ea453d39f161c88f3e6d651de685b5544f8ded58c", "e667bba3fc7125a857dce9ab78f0eca206b545eba9ea1600c1287e20899e49ad", "0e3da6d01af61ddba7b0ef797941f28a5f4755b692b5608d5c18f30484de66f4", "3bde7939fe8d59964da4067b9b80a68b2427c19f42c90a46c3a6ab03ef3c525c", "5fa8369ac2c017cf3e7662bc6004c0bae8c3b6c32b3a95feafcabb3e7ad17827", "45d490639d30d0c039178bb790efe6468b8e62278b47f0eeabc8ac1e9af83398", "cb02558244fbf31b2c58e24040d7ca2b19fad5dbe568edf9311ebc7854afa539", "0b61ba57b5b23376e5f3efde11dc363cf04f68d3530d5a8fc3d3856f1b21d19a", "24449b689a2232148ec404eb4a5b58e9a29f3efd0dfe70e92778803e304ca665", "602333f8e5b2a70df3b59f8ce0a0ade4be3c2f17f5a80b23316a8541259557d5", "60b7b6ad36375943916ef9ba9185c36e0e7091d6be7db552a3aedd8cbf937a4f", "cf1983805abf53b419c54f9e525e79fc8a1b42a113d92fdec4a80499f4e24a0a", "1eb1ecbdef25304623feeb09e92734cf9715506371640d38634ee9529a72df82", "2e83e546a4e79b7802940e88acb959e59efb98f73d417a82df3c1e239ef99778", "709bb626e78d89c5c01301f2ca2491caf9c55aab9a7231b295bc7afed005fffb", "c54bfb6c50b37b01c206101ba94c53549f7543814b4e99ae08f75136c79e5548", "d4624acc52ba30b8af8f263298375f92a88315d3bc2bcfaa5c1e1f4f6555a2ef", "ffd16a7ab5297888d977bd1a49aa9f7770eb6650e18e860e93d6f2de9e769e2f", "287ba47f8c738d8b87ebeccf1f0870541b52972b6a5dcc97b8789a0d21f8ad87", "8db966056a499a99bdd08d36018ad45da1ffcf55879c38f4598e6dcfa3d9433e", "506f89108104eebdce9bab65877fd19ddabd75c65359bfc0f77bc67bedcdc2eb", "1658f7425c7e82d12d3d17dddb4f6984a2f8278d359ba5d8c78db724e5bd930b", "10b2f84ac4430c1c4e955acd94692135da1087fbd97656cdf916123b6e23bd44", "c47281cbc458c4ac3342aec12bf2bb52ca3d0250780349cf0b8a94e2afe2cc47", "9e85354bca498129c68830e5611e9556244148d2d20e33c2e64c9c28f9daa2df", "f1aa7bf3505d9fd76926bd3a4f60e6f00f7437936ac9dd45a221763ebdd7e8a8", "df7a2bfba543a0c748e9e1480dd8e36f27b2bef8a7df1f140dd787a5b60d9e61", "3770a31cfc77fe35f226463f68a00dd355ff442ca3d9b4b82345775780f901d0", "fd4addc241945b9f70612c9c87e9f3b7f208f9124416925927c443ab1bebd4ff", "f08c520bd8d62d087913c96f939ab6e2102047948697ff90293b232ed8956d72", "2edb1dde4767200f77f522315238bb499ee7eb340a990552599e2cdb687d57aa", "52451854fc0c69292e900509655009457c41f309b2744102f02c0e0b0bc72a34", "786d4507c7c04352a7693f3fa72f8e2eaea424a970eb94f9384cb36582698602", "c377f768bfdbbf5d4fa9ec681d212a76b62241b50448ad5531be430dac58a7a4", "e4bc6a4d90954cfdcf6d91dfd719c4812bc48b0e5ad43b304fcc695d09e6eef7", "189e3240859ecb4e5a9c0180115bce8c7ab3d6e856c9452b398ead1bd407f198", "738b0b20795d3d12b0eb2d426ed190dde476c8c1b978b6030e716d3a39470c18", "21db28f1bbee1bf8890d96daf7ecd3bbb2c76cea53a6db322ec117576b694f5a", "4f50de5656b0d92dce1d883905d0330c8541909795d5322a4ca1f9ecb464dd85", "618c41bfd6c0c504eeeaa308ba45842827eb7c3b7d2e3d4b381c85afad7c12cc", "7b26a8935edc6460eb5503ba85b59c5a2e893b29ebe4b0d16ad06d46896947f7", "039a2a59a3f3c5dd174cd02ca976ceb6d89236d039672873d83bfc9142115e91", "8eda5c06073b26afcc25d81f05d2c336713dceee8dc666c062404e1ca40a4b62", "7797231b84322e98bff217ba0740042bed64e13648a62b4adbcddf6baab21b5a", "548d73ff8b3fddaf6063ac164a2c24b2703b1c06bba2d09b2c95a2e43afbbaba", "2be23f2f891aed77300d875ba3077e0980689de85a0918c62276814a69872952", "e7e946b77d00958756bdcbfc922a22f243d98ce633b8d3dd3b842bab842483b2", "1c4e4d790dac07d0c52271404e4f2c3ebb8ecb826c0c1f877e83be7a342f4e68", "14b29ac4a30e9a1aac381b3ac170f895a9746122430545b3180e7274bf8cc8bf", "491537cdad4be779a995b718d45458934efe66851628aa449724faaac3857190", "77dadda5a543d27596a2f1392e89825a0110d80675ddd9d90bd92bb4c0e9be6c", "88165c21fed7aaa73e9ef778af5908552a0de36b46b15136eb589dffd7574f5e", "7ea8e7e5e43a7d65962579b65598c2936256d7ab73cc41d4f70cbdcbf6e37850", "3636e4c194f1071945a1a677491026a0accb41be8287fd7f61b572f8c555f4e3", "8d13f58cad38b8ce5430a7e40ca8c7916b50765cb5c91bd115c78348af00610c", "d86217a2266d2daf3516c9b0ff3825a9ab2239d1c81b4d63d8a55a6a2698fec7", "ce9a3a8d7e07c3b52bdad9cc6863a0c5d69f4579ba5497e4d109b369add315a5", "6617d370041e9ddb9fe3f5a9e36192337b801670eb4627a560b87c66893cb817", "97299637a05dd13630f572bffbc006b899bb1af6a9abfb9710903629d492ebc9", "7959209f190905090f149ef4efaa4008b2b241ba834ece3b1c95587d16a1920f", "ff2721b862a589dce484a4d57e13989dc166630a4f198f0458398398ab061c0a", "d2d4f7b7962b08c9ca4fb82d67d90ec81539bdb0fdac3277c2a5f4741b61d361", "03c69770073f24908ba143352b3d447623c626c664e2efff81bd25bd4a55f576", "ad195500897129ca1eb4095f460d15f7519e4aceac2a78c6932a62f9450d7d52", "4b975adc74e2f8695ac9e8e7d51e1486cfa9b8237349b9bbcaf1116214f46bc4", "32e60475c6ad1280f7031b6383cd2da52bce1c0ad7001593de37abc6ff2c33e7", "a8d2637084deac3d7f6781f0d1255462773ceeffa0306266c0ee378369ce771c", "41edf295682d2f0369788e9f71cea485abc3e1a24b3a332758c624b81ba3961f", "452f15dc59f73102324ac2877029e3c0ebe65f9b6f028788607d721735b5ea43", "f252ca5ffa269eca930a11672c7b12c97215c102b3960137350e3b7e50a179fc", "d1e66a2b249a2a00d349c9cdfc50ea03f81609b83fb3d9494e048002c244cfd3", "893ea1e99335f96e3385be4cf5333ca6d660762296757138e7b26d0a632dde3c", "b67fccb7a3b343c48770b1f31aa2b32b30c774859099d07f83ee656357060a9b", "ae9595a156103ecfbdb5fc46ad2f47f70d0a23eb8749c334dc50ec06c32ed5c1", "a67401f29d9fd6d60481fa9c6e4b53cb1fe4a959310a96a238e00f41ad8865fb", "bfe2e732164121a64a268e008b07baab1452e1c21a99d3b388f61f0497338689", "afcc433cc10d9ad2dce5fdd231a0fc72e8301806dac0f7ba14ef8938c4f4dbb1", "1e18b9803dce58c906f2e4531dc75427e50db910e6cc38adb97b1623f850d279", "ca74ff2cc20ba797507073f6ffcdaee4ad5d566691d248c6d26aa0c3b7900882", "bb68c52799b6048c4d06f93ef4b68bbcc10e589e2eca8855ac1529e49a3579fc", "2d1863c997bbf21261d2c7fe451ff28914fac97437f93b7461634351c5b3fd50", "cf5b5a4e719b4eeb81fa2439e349163122efe64f539f2fcec39a6533e8adf436", "605ca4979b99da446e3d43226d8e38af69b8c87b3b635976af1ac6a04c368465", "704cd79c8feb00263b2a3409c7a28948c456eedc2c9585babf25959def57d7e0", "465057ecfa980eea21a28c90d9a24e9063f20010b1f35512521b311182103053", "f33d00693eb20e4d0e885a1ef2ff3bdf0c8292e5301703ddd3c6fb6d88667a81", "bc1413f6b5a6aa7d32ee19357f47623e3817846fe090b8bcf10b728ae318cce3", "0f466a2c7dbe8a93d57ae085d4d47510a15e0376d5bdff2f4b47d4bbe0086953", "d7df51ffd012c87b1255f8d3bc84c2b1d7795f7ffbe9ec2558dfd9325f05a2a8", "e76791f4aa3bb2d2992f9d943f8a17041bbcd653b9f4c3e6a9fedf177932d636", "4a5d182c4ce33685f268cff263a2997652f0193087c71564bffa8c7dee50aa8b", "608c5a3192c055a7c310156d2974408f513d1bf562aedaa88c2f9b574a75ccda", "e0f9a26c9fcbce379b835e5db8028e62334a30c302e03a0b680a34ac5d8262ce", "58486e59404f41f8830446da90fc30dfb8d97b73ace69e4af3fd2efa4bfbb41d", "6b8e1ac2c217ca16c57e48746d2098e8d5633e262051306880f9c81097a3a195", "ef8561ef4924cd116a6f0e7403981fcbb3b7a1d2b9f424809d0e5bdb36bc0002", "f2d94e9a4850721b66492225271161b3a12a5f41097e02eed77ff7119f005270", "985f23a7ac9954044c824ea8e5256988d9f4091c03403318ec2190cb71827f82", "50614c34e845595968fe29eb7e2cfbbfc7b76ddb843b5ef821273741baf89253", "ea166155a7858a43b2358d2c4f3197bacfc41ebcb13c31939a8fc82f186dc574", "3c42dfe4de4ff1ae4d69afdfe2ad996463b6ff2d70469b7d9010b636ec24b35a", "3e87cff54de62440d839af030c778ed81d4d0358f7a89f327c6e3c0ac7d2de17", "7b0d3f7c55bac0a5ca6e36e56973edd7d017e72ddd5a06f351bdb8ebba779ac0", "7108a7082ba28154f8e432ed75ec8cfbc111cd922e45818aa074c04e0c48c13c", "41b6263c1aa19c15d78985221580efb77a508c96a3436d8e651b3e681fae938b", "3bb6d4b1d8039ae28d45ee2c8ca4f2225b2656e24b9c52b91d386530b0018bcb", "ce1ddee90cc0fc000e8a557b9f66dfe499ad202547882475ca4013f9bb4d23be", "3419637327542e86ddac3fee8278f7ce9f418aa3472a9f7f4f376235be80af35", "5ef9714eaf16ff7780c8b1906dbfc77ecf1cfbfc8cedd9c1b1f1d072e01f8304", "c3028847834234b90acd663f8998a7fe28d239fe72faa1e5766249aa513f1ce3", "edee0496e1ddeaba19dd7e81be7d8537b30195e0fc872f5bbd51d78c998f1d19", "3180fa4cb6f290b7e213a4b76478f55b33840f866f7601d91fab24603fc13cdf", "7791bf1cdff34a66f89b2ef87a48b3b316284eb8cc272b9042f2a9079e9295a8", "03a78a5080b88d5b2fce2956406473f294ec3a3dc01c74ac617a1471bd55e911", "80b84a0a62e464fe71209941d57a9a971d3f5eb0c52f1cef1f84709e4d2fa6d2", "5c774796ca6fadc50f7051c433876ff6f1c635b8f005df36fcf8ec82ce939855", "cd70aed80d75320bd3eaeb5fd1287c3449d01c2456cd8fa7d851e9cd549b6dc2", "eabdc6405f0d948d60cf7d3da42a33859132fd86261bd020bd3df9c04c40f9a9", "4d79b6a7956215d61bbceef5f700bf1f5c2de4723531bd5efa04a4727ab488dd"], + "lamport_1": ["5a245199d228aa7dfabee88dd4b8805a86e0172498cd2f65c031574f8e533f82", "2ad5ccf7a2bfbd6e19a3615ab977e091abb897c92640b3ff720ba3378ab3a37f", "160c77a395b5302a82cfdb45f7ba7273a137e38bdb9fbecac7a705663069aefa", "6c326425661bc2dd361c2eb1e6d0bd6c330d9857e7a694daf4747b60a4bf6145", "e19fbe5e599ed8c418254dad4e410ab76145504cecfe64e397961f83ffeabe62", "392e7270e4598b7ad0c6c1b0284c67280b3070cc6ee0a42baf9356cc38b481e6", "4da21716b37b8ca45302e35d9af1e0b087a8130a14355d35f680168778b83fe1", "63cae11f12c4a042f958a052a52678e1c18a047f499787e1018c05370ec24632", "2bfafa5eecff84c72361da53b9dc5707be2e851cdc60a2cdd853157c757dbb47", "993015dd35ead043525e933a362dc02022779352657ac656712810fe6c18af1e", "44dd132d572c1c4f1860dddde612d820d75cc8303312b451b3f4333bc130529e", "21054a0c86fc178cbdd8a542ecba775cb6e8e4bf2f3d2c38cf2ecaac19674ad1", "449cb94721546604603006221a8423b7b14f7725db9b1ad4de16862eb39abd2c", "035a732443141001cbd657613c0a06a686f50e41097860741f9c25f16afee783", "5b704620893085ff195f14c1ce447509cb68e48c594ff338a92e323b75ac0da7", "12800b5a8fb1782d2183a8a434c59ee25812b78bc6004d3705b9d6bcb8c3ccc1", "5ec6aebe2d3ec90505917880ae505dbf39ca7c0bbd06895c2347682830f0d852", "c1d74662e68ddc51cbe845cb9a036f3932a50655996ed7bed88a3e3dcbfd51bf", "9aafad22badef8779eda3360415e9e55e0faffd1ea98a6241fe3223025df4de1", "9d0b63a659f50af2201c08cc2b7f6cb02e254b0b5ca87129c9eaa9f6c56b632a", "4326069297e0842a0069132a3cbd55839bf9c9befa4b57bcb5542a9a41740877", "c1e2863e47c2044a66539d04d51701cca8ffec60a921ef55a7f8189f1c375769", "7ca3413d1821426cd74ea7d333721526890c200ab07d95bdd0e451e17caafa0f", "3f8572a672e0d2c9ea23536afe71f61de06b6a639e867656bdc0731d59f2340c", "d0250ba072e36dab6b03a90588b7a71840e1fe8dee6b65e07ad8ded47148177a", "6a47597aadb2b578f6a2123fd43954e92c7afb8c21400e556532dedc3cb1de45", "8a0eee35e45919d8f94e8f96db6394fbfaafb100c8f63d6f4695329be530eabf", "f01e15fc4b70111ced4cc2cd47546664e99ae32134f61d9f94dac54c53180acd", "1dc95e087daa20603d681c5904d512c38edee4a1ffc421f2a7b5040cce45408a", "d9013433936f0329316ced377b9fed9caa068c537f458db3e19272de785333cd", "18b7f79ba324d75c7835e4ee3b40c786dcac8b8408fc4596524c10e6f8320643", "7a48611932ad4cda9f4ee0c131e727f006d2e03739bd1e9cd5d9e2e047eb4e4f", "894e347bc632c1dd880b9fe858a7fd0cf79d38b06dd5234411e340905bf5c401", "4dac6a1fc82a6a9964a9ab16d6dac642e259637c6d44b1ba82cb7d269e175990", "7fa5a30fbf91e74640cedf1cc31830f9f525e204627dfa834cd44137e4dcb780", "63519f33c9b79b1a75ccb8926e48792bcae586105c343f274f7696c23abcd473", "c1400860b13dc1a65c3d2dbe37b0529c12cd8724d7d389bfffa6612e3c55de9a", "ce6ef8d4189467ad33fc75ac6bdb3610b70442990342c0c17ba8e914bfeafeba", "6465e713b0460dbc4c95196c17a358f40c9ed9eaa02a0fad90e1af0a8cb53057", "315522dd397b7d5923b6871c8062cd905666edc1157f6723a3dc9bd9d6346d77", "a31bd3091282a20990e71abe991c38b2b79f49ee7e72a41847debe7040322cc5", "a247bdc491ffee1f80f8034ad9bb78d0383c7e63a76561640811e8785a07c4ae", "c05367692996eeb5c39e9738430f32f296286441ad3b1e5b624edf002d8d20fa", "e26fdc80e6f10b1175c772f5e24c6b2e79796aa827ec7c2eb00baa6eddc275ef", "74f3a5341d445f6389dc166fe02546916d0aa6a808b72ad74c36da5fd1deb2e0", "a8bcd27448cbc8f7b8d9aef81f6d950670f22243b8dd3bcc143b71e7794edb9c", "8d374c59197083ff33da3c80bcd15784db227cf951e3c48b7524e3176552493e", "e6e7cc444dd0507035db1651b9c270fbadf83f0071a81f06ded2e974ddae9ae0", "ef5b3108180fc9c9d1b43ed0ee22261bc7c49280915bb9ce7e722ab7f826e00c", "09976e20d85657a64de83cbdf729c0ee5980f6e3e3fb9b79732cb244480ec225", "971b02f6b157e33f896771e708b7707793693553101a354b7eea7177fc57213b", "09692d554f560a706f10691745748cb3a05644e769939c42a24f28636d3b93f5", "2ca9aa9a3f59ad91e6f8df389d41ba3e9c6223321056d76ffe6c370a8e15def6", "440b505cbc7cf69c98dfee2216229d8041b5f1256f21e19e0b3bb03c9bc9d495", "92989c4955c078c25ab3417faa7381bb11bdf0b2e37cedf9ef78331f0acf0844", "0dac22858959f9aa57b4176e205423c07bdbaea597513bae81b94a668cf97487", "0417319439529903c73f211a7308afbc180eea96e24351a649861b714f43bcf4", "b6b4aa86cf8679a581f1dac3894d6b5c0add2debfae03b53970904c32a3e9095", "5bbbbdf421f40e3f8e60687a7113baaf143e234e830465689433db8fff867a8e", "a0fff17b20ee95c8fd999aab95000e66f0ec51627bc60a1315ca3ae62c4a3f0a", "75d144f4363938c2f07c21963741ec4f490f49b193792d846496460743cdaedc", "b43fcdc5a09c8d06cd41e897194b49eea57c12a366f1ae32b59752daa98aa9e4", "29be44794e342cfaa05df88f5df6e27a08a0932c341437a456e636f57b14a6f1", "b8d7a246b21d90083c039b0ac75b3ddba91e16985c55c1af88d4840a3b02f455", "12415360fe4ec7ce4d88e148bd949697673a248bb28abdd2413c0328b3de448f", "1f9e77a077030a66d4ca2a6ee001e1ef43c332fe4b7d79e7c5720fdde2ca4a98", "254520088928268d6565a1210300c5f81f467b7da8d6746e37b17e25f5227413", "a1669defde91d34d36760722798a48edc50dc1e4387d28f7129b95d46e0bbf0e", "ed9febc3931d5ae5e5a7010d4c2e7b6452b91c1c54e45a19c90a23974d36b040", "6f8fba1b2857cfd3e9cb9424c588f6fe5dcba91d8eb4a54e31e4b324ec19aad4", "943a5092e2b8998904228273fde1f6232c8c3cec093deb40d06d785562388b18", "11599fe8b5b961d83ca299f228e054c43d0e381345aef134d586d2ae215340a7", "a8a9058bc5d7e5f395f7d26ad90c80055958f4ded9cf6960cbcb22e086cc9536", "ab2a242b67bb8eb14cf0bfe04e679d0497174bc7fea2f3d610eb7117cb6b8105", "2943ad98540cf641ce2df54b47c5c880de12aac550678c1d749c00c8bba9ab32", "13c40e13a0a43bc2ffc9e0ec5bbcf408c394687d87cd3934eafabee4acc910d2", "976076fb1b3edbb2538f23d1d127740eb35a391e4549d5c335b3345b0326138c", "9f902ce170dcdde007a2fbac46ff971635a9c8c7053b26e4f4b375ebaf83a446", "ae781b3afd3c66757781c7c8a94e178f8368273a1c3e26aa8b281f5be1647a86", "a9c8dd8a0115e1aa5f8b8f7aabfbdbcada699031064b3bc4c2fad2af9a2fe2a4", "48225ef857486815f9a860b3b0657bf8c88d71cc01febdea3d28d38bdf26ea2d", "e17a9c716555add77fc345401cbe9f2c3700dabff60e299a3a477e2df1eba7be", "be70d2c53b45f1485072de2daca41c04ac9f347aeaac40d7cb013492ff8b9316", "0fca21a59d56e9d9e06a5ae5203f09c7f335d4411ccc9c6abf1c1285e2c3e2a3", "49a05dc0ea1c8b9ee7085c780c8804bdc6f9c3d23bf71a5848d12711a4bcb9a9", "ba5df6973972644855b286a50d8c6f11dc345116b11a615bca9faff98caa0977", "2c07abdd718c21618d2fa5afd3c7a43e62d18aeacdfdafdc4132149b98531a6e", "c0dcc5b56cc317754778d401bbdbb92ff6a44812dce95b8b0765f6b1d1c089de", "88e511e364adb86223647b70136423c787481fbffcdf59bdb0b6bd98f4fffc6b", "533078bc0e9b445e3ccf01aeef83f760a48b6e1e9ff41f168055be709d8af46c", "974c4c66994ffc99a1c7d210e8e33449459efe9ccaa07f857ee0c5094904e0ec", "b371114662ab505e238a2c19fd3b223a07e926cbb7dca8b2a11a8854e16e722a", "c1d2995ae78e3552a497f1d87a9136b40fd469de066338f18a092e00d130dd4c", "87b7dd13dfe19c9ca9605d7274577ca0f5926a75492489042c6fefe7c02a5a83", "05aa4de71ac3ed1a96e264f651518ec81d6032ba74937f702a133235ae2df05d", "e927ce1a97e74a925c6faae3dd0b9ab1e91e7e0046a33bd7f5d26409560ba48b", "b62d613cc40b1c5495b11c9a23cec86a478e4f8b38de4d2c41bb2f2e75c518df", "a91c3f91f2456562692144904708a7530bad73a3c371e26e8f7cfe51e8589b07", "803959700d6c04c5a6244c7785f1c4a6bf6d22ece17eacf40b78b8c65075b605", "a38e49ec2b438a30abb5db88d3162bdaa4747fce2d5f19bb333fa108a94a0ee5", "e285fafe56c13320b40b348ad0235bf4a739ea817a4b926e548666ec90f298cd", "16c9f4cf4d7cac3748c7abdaa1aa5d30d263de7dd3663bfb8168e3b37f74a3ff", "b48f37f6b1e3181b670c171aa55f7fa7318b13c526fc42a8df00fe202a07756b", "d92a8ec62cb0c9471793f30aea1e6cd0fae87729ec2ac2f051f838f45cf81fbd", "4a4cd51fd45cb501f423e082da55025f9b13c98042c67bb86417121c10b56aac", "cf6f64363c49640ce5d80268b4727992cda62b5481dee1233246e4872d8dccd8", "46f9f62068cbb8854c1c6d60108fc259567e4931be05bcbf91cc314fa45dd4d7", "846f216fbbc36b9efdeb90492c2ca3f905c8c036897d38d6f324953daad00eb4", "85c497e63ee723343f13edcf432e4458b06238f3c9d58720765e07cde17ec889", "dcd5683017b2b44f85407bf977cb352bce99ed1e77de96b272e98605f9663fc4", "65ce72432c7a2081e38e0e922f1f4664d47cc8b3739162fa177b2efc1d61f179", "a21b96f6d960b5b069cc373cd2dc885b2d71941db2285d863257f320d79fc871", "ecf11b16a8e6a4205e067b5a21e8b74b62fdbee20213ddaa399f96cdcff054ad", "c9ebf3a945b584c0f2d520c8e359b6ae351f07dcf0fab57c73b7fde327d494f0", "72dc87b5260f41747b9208773fc0372f9d6110e74abb4f70a67709cfbf5cdd65", "5823572ce90eb844ca93245527dd5a4d73d03756b261552ff9d9bbced5b85e5b", "a89f996568669ad350c0a64098557b9ab2ff3d13bc502cfc06b9690d0a5430dd", "2558623c0adc37269d582b733ede2c1ba66dcc4605c2f46c79578daf7a9d6c04", "c154facce53908937ed9064bcb4f8b5dbacca1757cc7f5379909b2c88077b428", "1490b7960027b2211dd98d621a815344c86046da01f53d709964ca0dffb13a29", "fe7f73ba622e2cb7b5c166f3c949d934ae8ece406ae0ad5336c25052c34c6e81", "32c40729c093bdd80ea9bbb7650f7f103d323b44ef3d823113c80c644cbf8628", "411a7cb72159ddfa0366a6bde126d0d5690c6a3c02a29cbd3ab82cf9d4175a68", "7101913966504a7650d947e142e0ef97820e6e2065b8c92596695a4c9daed2c4", "713364e68b338d7d9e451dd5a3ce525f5882ebebeec043fa4edf8ea58b1c62ac", "999c3893b9b56cd0080e1b0ed05857afc7766564dee997c386a0099c7080a839", "23b119178379dcdb63837474fff2348e50804754cf46ce2f0192a2e2a59ef162", "b06c417baf3a2b1071377cc97f4591198dfd261e557f9e84f9bac7f2632fb3dd", "7d59abe3d20e97638a145530f6c75745f82fdd86abaee8b9bbde87fa46a1568a", "7ee29207ba7c605a7d617f033bf7e52321aecd399eae0caa0881d14e22f1d398", "7ec67fa4a2efdbd7ff44b4dc3fc8d39d02e4142ed4cb37ae1bc942e2319f8757", "243c6a68e7852b5dfd947e177eeb47b0f21e38d75076ec0cfeda9e2b58e4bed9", "f54319a677c3ea230a81bd16f83932fefe277e0b12438c4853796ae6e84b81c9", "657a1ffa4920b8c43816817841d6167089dec3135d073f0a7facb75990640e3a", "ee51ebdd7a4dff9147369e25447c240db9b2e7af6655cbf83f71358ddc20da0a", "15445f8ba69e1fcdbbe2324c80245d66062f8aaadf9d35555e6b6314b5f3932f", "e152772c62bce4b2f1f2d16fbd5909e26024b9d82a9723ebedea2e2a07d3b7bc", "5d2868b23ae7b696b0c192cc96adda4d8467ff5668e28d5aaa0646d259c3a3a2", "6890f71eef39349e768c36e5ad1ffd391b1a183e004f73a1eb2e51dbfbca7294", "7a968eea9fa16a85daaa8b7a500dcd21ba3ecf9ecd7a4a3523ffbbe796f1b4ba", "f334ca400dd91da35d655d216346134ab997f01267dce72013998a8c62e1f278", "1f85a87e191d62c6eccc70206d00103e12095bc7f72747e48639b9cb5eec6f58", "e3d6d326c2a1cbf53b3e297ee8b75bd648be5c19d6a1f38d5c4bf4b42e9819e6", "9bf54b1c73eabdcbb88c9cbf347d0e432c8311c206fd2307e077c27bfadcd5db", "e6a2afe3391c515664ada6c1db97c5373d04a66ae1348dab350833a8e9f735e1", "beb0d3a89b9c762491bc9d74be137cd84c7e6f6e3baa9afa588a2ec0cb5a8aae", "3967cda40ce1e87c9043f6ff8b3491d3cd891508a0377b119ce48ecbed1bfeb3", "b5b085c413fbeadc354382b6da2c5e81277d1876c755124a6a796e58381e6388", "3ae4aa2df68104bd4774c1f68e3c096f37c6fb948fb5cc51e06be7549cf78dda", "7d4dc1bee2855ba85af87bd857f4e00b6e3e6d02d8e1648435f9a35a445c3777", "7fe2e187885e05a28d42a7ac3a23260697b226e7eec704e98e5eb2cee2629845", "66b6d929e78bdccd81e729d1bb9bd0e0ecba86e76f578661ac742bbe9256b73c", "f3fbf7192940c9c05e574dfdb26b71c803c128246f3ef417f9d9dd593bbf8ac4", "9f9d27a9f4cf806a3e974ae1b5016efc481732060f3adc71c6cc940c7901b6ca", "a3edbe61a21eca1dd8a15fb58e32d3245a11ef38f14adc5766aad7565f8bd693", "0dd03ca9de8635a5e9de1961afce960e2ea74b0f3348d27679151da0113002cc", "087c9ed67acdbabeb5d4220f18b3e182183dd78879041a4945fb9cfb7e38ab15", "742669d7b917fea8a585f3b72b6e78a77c142a86048aee82775f2ed2caf0690f", "9a5f4d41590bbe0a146f610f10232c37e645773c25c7f4ef870d20a1e9902677", "dbfe47c8795a630040f5432fd9d48fa23fb8f8d1bfbcd6ea172c2d157251e741", "087db7b45c8a5b65dade506ee4e4507f5246d7c3c7baed35c50ee01a846101e8", "be2dbb88d32d7c956cfabba27a5c3c2eed462d208b3b3786b8e3c665feed4dc3", "83d2d740edde878e42b381bef3dd75307af46ff3e8185b40b609b01c8a0549fc", "5956e88b3ffeb6c808556cfa41fd6c10534c65f5080c06c2ed02a8403cee72b0", "f2ddc617523cf4b8e7ca7387351baf2a01cbe5aedf59f799966c6cb7f0a9df14", "1f8250cda2bfb14dbdcc476d3e433e8837d1ca656513a3c1df1a32f604fade10", "dd0123a2e5dc861aea02563027453aae75fda75b9ec3886663f42b1e1f69a54b", "9a89a3fa90c64d2361ade6ad131c1164e64e00ddbb7d9c09f2ace8ac7ada9310", "e2a21bdf7c25c03dadee9fb4d426c88d509dfa7286e29c527585ec8282682c38", "d4fe359eb5bd898efbd4f18f87e6a55bd687234b7488e27db7f410596717d763", "60334014329aa262dffd112eb7a71a00e4c24bae171ff7e45be68d305a637972", "8af78705ddb291068ca1c4411066fdece5f20246390626619c361d9b9bc9da0e", "67f87a7242412c783d6d03c3b7510fb1db8d5cbb644ec95d854d32409a87f942", "b3ce2a1364285ac42a508ea0fdaf1ecb3601e10022242ec0ed009397697421bd", "e463f676b5817bc2bbd710ef31faa5752701e0919f377ba3547a469c1d283c9d", "200e7fa5f7dbe0352414dcd0876583804ec35cae50e54a835a194a954a6c1b3e", "98511932392f650c18e412c2bddb5a93ed645eaddc08f96a9b651a4762dd7797", "92e95024dfdb8297018be716d98e469db2e2084468bc5768071ec009eea5b97b", "c99173e647b1be147c78eda61839e676e5ef18b6ae597eb28d3cb9747de8bfa4", "d229d14a117166208df39fb042a39594e18b45a374e7c44fc4799ee0dfe54495", "7f32542a6794f4fd6f127eed8a5884e3931213dddd130ee07d0e93aebb92a125", "073d8f38a660f66ab89615af32a86453cdc111a7dfc88d27b5de3c609672bd85", "bf191f44476a829b022bdca0068422e49bdbb1c3818fbd81ad04c8c2ef407da6", "37597c8646d72852925a68cdf27b5b94a6053aa8b342c59b2e58c5731217a617", "69f98c9a377149c9fd898a7db45195c63775ba2c7b7d5bb42c876479afdfc7f3", "d6884b7282a4de0dce853515f45bb90c996437126c8a2c7eb13950b686fd2ed2", "0b62c41b7bacba1e1f29abbdd09c679e1a8b2046402afbcdb97ee16b674d6abc", "bb25f9b2ad05a108595e2d4a106490b28de9f226faea9ce9d37ccbb28cdb3701", "836bbfee8a0928000eec3499920c9eeae1c79288515b3dcb27831143c0cb85df", "7fd37800903247a6d511d8cac31b4d1576b83f650386d990b1e46acc1a26d14c", "8a76dc3e07e93b3b580168986738c8957b9df421d6f03cbc43860661e480fea8", "0c4dd4b2736e111d24e1d0c9fa7c5c4d393cdbaded250670523c1986547030de", "14050c71148232ce3da97ab91454e7574898ed38ec28ceebba77e636abdf566b", "16235c9b388276cd98319e7629f5a5ffcc0db86025955fb3e9eb4d63c31c9f10", "d10ee3babb4e510f1fb1b0c130bfd884b6a994b0abd1e2b2471582a200ff4672", "063285914e5e4e4550ad55409f559c033219d4aad262313efc11d984d56e4f83", "5cb5752acdcf7e5c0dc1868216c4300faf822965fcff6c33b96e51780cbaa326", "18e0042074186b308246932e5a387a8d9677d264ba6a57696ba57a0d9c430887", "bfedff2475f88d8bb3b17c248ca7c321ed9e5512e916260f017c48eb455e19d2", "4a595cccf7830f3bd4be998fe0bbf96d0b18ab2e2b9110d45286d7c85516da56", "aaceb59e4c1bbc93ceb64e37a374826f49d9924dc8ccaef012d2f49b1af7d81e", "266fcff928058833f24eab8c42715a92440f579f8efaa8023952cfd9d1bd4c6c", "ac7903e6965f705cbe4de169529cf3b035419c619c7252dcf4b2bebe53bcc084", "6384a1bd42f07b19b57aeb37481661ca4d9206fc7deea7851c7552ab8aef641d", "2b8b0e7f19472368b5f06cbd51d884fcf859d5e78152a6fc21ebe8a7f5d5ad5e", "9a1d5951465254de85fda2094bdd27045db13ef577833d63c2a105da45c97049", "feb282e42d71209b581ff135648e47f5959ac0cce80a09f1fddff3a51d74c429", "a6c007cc715eb33db92e1507f14947b9b5208049984f774d2c03ca3381188851", "d4137c812986cb08763e82fe402e9a4ce355ba2d0f7742750448c381faf8f4d6", "4d683607cb3e11ebb0e9962f39f6b1f8944028b2ff91c63288057d46dd895411", "2072458bd8f4559a7fa612710ac1ae65efad8848d553bb648f58bbd0a41213ff", "3a7e8f23c28df6cef6906c8200a7c94fc54a17c5920b08bfe0a3d98629ee2b0b", "eb23f7936d00158a6d9c2fb6213e066d7bd7ef9e34be61c688f883d03e3d0d6f", "473fe433a9904a54b7177695f53e13617b3a24e57b6008a9e840be1bc2d3268c", "afc4d6777c57177c5865fc140e0491c232df5a699ca9a0217ce6dd49c8eb7962", "edbbdd5723f8c73b12a51200f3c35e12abbae7faa61aac96dec2fc4fc1d43727", "7d71d60fc7f04c4bfd462d4aa368797bae2077045b8f10b00632e65910fc239c", "1bbf289521eda7457412e0042389f389122f08a14cfb647b44347263d50339ad", "12de02e7d5d5c9d2d86e8508e867dd13135993561541bff2d5110bf1d6851835", "affb78c1a629c50ed1fb743b2cb05e15f3b5e9afc5de459e052a5b432331d9e7", "1463e3825c7febe6283d93a130ffd45d5514426e7aa45587384b8b8070b4d6be", "b778761d63770e95272c4f2aa553b14775ea976f5b2bb454ff23b115e6401d66", "4dc7780e18970b20a1cfd8f80754ce01fd2674827d894c72dac5f33d802d760e", "35e2efc77f3b37cc2065320c80519a9e26663c75a78ab204f72fcbda2d3662ea", "14861873e425b0f6dfd676f87e9ea64be71a7cb170293574e213b66c3730a4f0", "fd4d5ce73f6980dee342acc43a2ab10a2f9096a6fd9a399d458eb96abbe75202", "e8e8876f07b95a7ba5d41d74d07fc4b134b7da98e5332d610a67bb7601b97387", "2ae43ba90a9f57eca44ab2bb12424f832dae4218d00f4a93382b0eb172f69197", "b4d692e2f00729045c0bbdfc427c80ca09a7f02921df33bbfb4ac62e159f62d5", "64b1e6e29a27120f0b6ed2f0824ce85e948df8009b0d2ac51062b67a0168dad1", "636d24e03f6571d353eb6af53ff6c07c728899a90318491cf51bea26d9fc3fc6", "cc4e6b7e3e7ce45de5498fbaef7cd171a6ae6e194bc9f2f62a7a297564d8354a", "5bbcad8017a20d46df57ad47698088eef3fe825a007f8f567397ddf869829216", "41c726de05ffa2a725cb1d5971f30e5e76dc5320c720c84eb879b05d1cb688dd", "e91977463dace9a021e0254c0c21e84888da125d5e880e47ceb66560923bf3da", "3afd12c67da1235119c1b0e10b0757a09f72be86c1519fe5d4ab5e5a5b5b112c", "1074218cbcbe73f02a1b66527a3c43d832a1387dd1067acd4af1fe16d4f81c1b", "07180bf4f0e8d16c51e3c835fbee0bafa7052b251d158f8b75b1ea3d8e4d0ff5", "38f43fc06fda28d26022622e927aea28c2644a2f7f17f7d5672687359ee184c5", "b1c45e7a2552ce25e7afc4cd1cc57b97a8c40ace1d519bc8791d8c593a2b1c1b", "1728ab024d5f4452e7d902d8bc5310d193a68484d1cec16a9d74efa591cbe557", "6f2118833fc642dfc93c10d18c2ad63a8dd5d0aaef920b9639809aaefd22c401", "e9cdf5b5c543e9f1507159eeadb06f5a8eac8bf7b3ce4c6488e7c0be239640d7", "fc80118433f279d981b1b710b340e1b1a27270ad4def2e2be1c289abc8d5d29e", "9da256d18eee495cc9a6512b9760a2bc7586cdd5639e00afacc3039a3c19709e", "0e357211499978e3452289e7ea96829fb3577f55174caf6293f1fc832fb46d5a", "461ccd81b42ff5b09c0ff87e6212faee7f21f97d495ad8f73d2e46aa56cdee57", "7eaaf120e2f72c902d5582dd54848ed32fdca65c7afd0392628c89f97d5eecc8", "8e0dab13ab353dfbfd6efc11790a0794d470d0c761c8e1c6d43b317f6c37a49f", "ab4916ba0c8d36f091fc121919debed7e8c474c3b07c73a151e0fe2db2e30a79", "b264efca27a007213598dba9ebbb34c286f958de491484b3bfa2aa2f9ea8ab60", "46e14d1ae3817bfb4dc553e867e272bdd417afc6b6ec5aa28637fad6f7a23b46", "6f3bd66556058970852a3814ba28f5ca2c7142dc15bd7f4c6b21075af79eb08a", "5eb243a7d6fd23812fecd9865889d96a5b26ac4d137b676eac56a656c5ac6470", "72ef69a2f0df1f4c1a9bde1aafbe05bebf4ef3f7c2ccb5b7cfaa2249d63b260d"], + "compressed_lamport_PK": "86ec318410220c24e8679ba5d6ea9f0756558f5eb7f442010b33ba4252fc95ac", + "child_SK": 11812940737387919040225825939013910852517748782307378293770044673328955938106 } \ No newline at end of file From 9d2008eb4e90bd8e396775beb4399606351b4c76 Mon Sep 17 00:00:00 2001 From: Carl Beekhuizen Date: Fri, 19 Jun 2020 16:45:00 +0200 Subject: [PATCH 2/6] Remove extra newline (lint) --- tests/test_key_handling/test_key_derivation/test_path.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/test_key_handling/test_key_derivation/test_path.py b/tests/test_key_handling/test_key_derivation/test_path.py index 1d2f0b3..faaac4b 100644 --- a/tests/test_key_handling/test_key_derivation/test_path.py +++ b/tests/test_key_handling/test_key_derivation/test_path.py @@ -35,7 +35,6 @@ def test_IKM_to_lamport_SK() -> None: assert test_vector_lamport_1 == lamport_1 - def test_parent_SK_to_lamport_PK() -> None: parent_SK = test_vector['master_SK'] index = test_vector['child_index'] From 9557f3cabb9a52b4c7a5456602086cf32daa2d5b Mon Sep 17 00:00:00 2001 From: Carl Beekhuizen Date: Mon, 29 Jun 2020 11:48:59 +0200 Subject: [PATCH 3/6] Apply suggestions from @hwwhww's code review * Tests are of type none. * Parameters passed in to tests instead of using global variables * remove debugging print left in Co-authored-by: Hsiao-Wei Wang --- .../key_handling/key_derivation/tree.py | 4 +-- .../test_key_derivation/test_path.py | 1 - .../test_key_derivation/test_tree.py | 35 +++++++++++++------ 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/eth2deposit/key_handling/key_derivation/tree.py b/eth2deposit/key_handling/key_derivation/tree.py index 10582b6..e1359dc 100644 --- a/eth2deposit/key_handling/key_derivation/tree.py +++ b/eth2deposit/key_handling/key_derivation/tree.py @@ -38,10 +38,10 @@ def _parent_SK_to_lamport_PK(*, parent_SK: int, index: int) -> bytes: def _HKDF_mod_r(*, IKM: bytes, key_info: bytes=b'') -> int: - L = 48 + L = 48 # `ceil((3 * ceil(log2(r))) / 16)`, where `r` is the order of the BLS 12-381 curve okm = HKDF( salt=b'BLS-SIG-KEYGEN-SALT-', - IKM=IKM + b'\x00', + IKM=IKM + b'\x00', # add postfix `I2OSP(0, 1)` L=L, info=key_info + L.to_bytes(2, 'big'), ) diff --git a/tests/test_key_handling/test_key_derivation/test_path.py b/tests/test_key_handling/test_key_derivation/test_path.py index faaac4b..8443e9f 100644 --- a/tests/test_key_handling/test_key_derivation/test_path.py +++ b/tests/test_key_handling/test_key_derivation/test_path.py @@ -39,7 +39,6 @@ def test_parent_SK_to_lamport_PK() -> None: parent_SK = test_vector['master_SK'] index = test_vector['child_index'] lamport_PK = bytes.fromhex(test_vector['compressed_lamport_PK']) - print(_parent_SK_to_lamport_PK(parent_SK=parent_SK, index=index).hex()) assert lamport_PK == _parent_SK_to_lamport_PK(parent_SK=parent_SK, index=index) diff --git a/tests/test_key_handling/test_key_derivation/test_tree.py b/tests/test_key_handling/test_key_derivation/test_tree.py index 8e06540..9b3463f 100644 --- a/tests/test_key_handling/test_key_derivation/test_tree.py +++ b/tests/test_key_handling/test_key_derivation/test_tree.py @@ -16,20 +16,35 @@ with open(test_vector_filefolder, 'r') as f: test_vectors = json.load(f)['kdf_tests'] -def test_hkdf_mod_r() -> None: - for test in test_vectors: - seed = bytes.fromhex(test['seed']) - assert bls.KeyGen(seed) == _HKDF_mod_r(IKM=seed) +@pytest.mark.parametrize( + 'test', + test_vectors +) +def test_hkdf_mod_r(test) -> None: + seed = bytes.fromhex(test['seed']) + assert bls.KeyGen(seed) == _HKDF_mod_r(IKM=seed) -def test_derive_master_SK() -> None: - for test in test_vectors: - seed = bytes.fromhex(test['seed']) - master_SK = test['master_SK'] - assert derive_master_SK(seed=seed) == master_SK + +@pytest.mark.parametrize( + 'test', + test_vectors +) +def test_derive_master_SK(test) -> None: + seed = bytes.fromhex(test['seed']) + master_SK = test['master_SK'] + assert derive_master_SK(seed=seed) == master_SK -def test_derive_child_SK() -> None: +@pytest.mark.parametrize( + 'test', + test_vectors +) +def test_derive_child_SK(test) -> None: + parent_SK = test['master_SK'] + index = test['child_index'] + child_SK = test['child_SK'] + assert derive_child_SK(parent_SK=parent_SK, index=index) == child_SK for test in test_vectors: parent_SK = test['master_SK'] index = test['child_index'] From ba585f8b8ea160066fd982f06c664144813e810a Mon Sep 17 00:00:00 2001 From: Carl Beekhuizen Date: Mon, 29 Jun 2020 16:21:20 +0200 Subject: [PATCH 4/6] import pytest into test_tree --- tests/test_key_handling/test_key_derivation/test_tree.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_key_handling/test_key_derivation/test_tree.py b/tests/test_key_handling/test_key_derivation/test_tree.py index 9b3463f..d0bb5d3 100644 --- a/tests/test_key_handling/test_key_derivation/test_tree.py +++ b/tests/test_key_handling/test_key_derivation/test_tree.py @@ -1,6 +1,7 @@ import os import json from py_ecc.bls import G2ProofOfPossession as bls +import pytest from eth2deposit.key_handling.key_derivation.tree import ( @@ -25,7 +26,6 @@ def test_hkdf_mod_r(test) -> None: assert bls.KeyGen(seed) == _HKDF_mod_r(IKM=seed) - @pytest.mark.parametrize( 'test', test_vectors From dbfbaccca93b5c62cd02cb26f82f4ad4b9a1a113 Mon Sep 17 00:00:00 2001 From: Carl Beekhuizen Date: Mon, 29 Jun 2020 16:22:09 +0200 Subject: [PATCH 5/6] Test key_info != b'' --- .../test_key_derivation/test_tree.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/test_key_handling/test_key_derivation/test_tree.py b/tests/test_key_handling/test_key_derivation/test_tree.py index d0bb5d3..8bd6491 100644 --- a/tests/test_key_handling/test_key_derivation/test_tree.py +++ b/tests/test_key_handling/test_key_derivation/test_tree.py @@ -26,6 +26,18 @@ def test_hkdf_mod_r(test) -> None: assert bls.KeyGen(seed) == _HKDF_mod_r(IKM=seed) +@pytest.mark.parametrize( + 'seed', + [b'\x00'*32] +) +@pytest.mark.parametrize( + 'key_info', + [b'\x00'*32, b'\x01\x23\x45\x67\x89\xAB\xBC\xDE\xFF', b'\xFF'*16] +) +def test_hkdf_mod_r_key_info(seed: bytes, key_info:bytes) -> None: + assert bls.KeyGen(seed, key_info) == _HKDF_mod_r(IKM=seed, key_info=key_info) + + @pytest.mark.parametrize( 'test', test_vectors From f6c9d4b8fd7774d09631380dcb46170a85a33356 Mon Sep 17 00:00:00 2001 From: Carl Beekhuizen Date: Mon, 29 Jun 2020 16:44:17 +0200 Subject: [PATCH 6/6] Linting fixes --- tests/test_key_handling/test_key_derivation/test_tree.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/test_key_handling/test_key_derivation/test_tree.py b/tests/test_key_handling/test_key_derivation/test_tree.py index 8bd6491..d6e735d 100644 --- a/tests/test_key_handling/test_key_derivation/test_tree.py +++ b/tests/test_key_handling/test_key_derivation/test_tree.py @@ -28,13 +28,13 @@ def test_hkdf_mod_r(test) -> None: @pytest.mark.parametrize( 'seed', - [b'\x00'*32] + [b'\x00' * 32] ) @pytest.mark.parametrize( 'key_info', - [b'\x00'*32, b'\x01\x23\x45\x67\x89\xAB\xBC\xDE\xFF', b'\xFF'*16] + [b'\x00' * 32, b'\x01\x23\x45\x67\x89\xAB\xBC\xDE\xFF', b'\xFF' * 16] ) -def test_hkdf_mod_r_key_info(seed: bytes, key_info:bytes) -> None: +def test_hkdf_mod_r_key_info(seed: bytes, key_info: bytes) -> None: assert bls.KeyGen(seed, key_info) == _HKDF_mod_r(IKM=seed, key_info=key_info)