| { |
| "algorithm" : "HKDF-SHA-384", |
| "generatorVersion" : "0.8rc17", |
| "numberOfTests" : 102, |
| "header" : [ |
| "Test vector of type HkdfTest are intended for the verification of HKDF." |
| ], |
| "notes" : { |
| "EmptySalt" : "An empty salt is a valid input for HKDF. It is equivalent to a salt with n zero bytes, where n is the size of the underlying hash function.", |
| "SizeTooLarge" : "The output size of HKDF is limited to 255*size of the hash digest" |
| }, |
| "schema" : "hkdf_test_schema.json", |
| "testGroups" : [ |
| { |
| "type" : "HkdfTest", |
| "keySize" : 128, |
| "tests" : [ |
| { |
| "tcId" : 1, |
| "comment" : "", |
| "ikm" : "60ab7f45b0ad534683b3a6c020d4f775", |
| "salt" : "", |
| "info" : "", |
| "size" : 20, |
| "okm" : "3f8b0e4a7b2bff01a26a18f1e07c0218897a324e", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 2, |
| "comment" : "", |
| "ikm" : "e3db76e02278cbd2adbcb4555803da11", |
| "salt" : "", |
| "info" : "", |
| "size" : 42, |
| "okm" : "54d872ee6079718738b96cad7573bdd667aef80a43344ccdd2488eb2e1d3c33b9e291faf89609af32365", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 3, |
| "comment" : "", |
| "ikm" : "d4dcb92a769f57c8bab8a420ee0aa351", |
| "salt" : "", |
| "info" : "", |
| "size" : 64, |
| "okm" : "8998abf032b4fbb29e431f0bf1544e19590ef4fc99e013db8d6ce0dc085660dd3f2432b5f9cdcc44cb6ce0053e7eb43c0375ac7efba148ece8688e637a5759f6", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 4, |
| "comment" : "", |
| "ikm" : "2d43e54bf0c94c9cbff4300f4aa69ab8", |
| "salt" : "", |
| "info" : "d674da3bb47d5c7e38b501e5251d9348af601c44", |
| "size" : 20, |
| "okm" : "658e6132e5279439568a617274fc788dccc2bacf", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 5, |
| "comment" : "", |
| "ikm" : "4055536896c406d5fe14a6cd6b999bff", |
| "salt" : "", |
| "info" : "2094768a8816f7df070d6e08b7ad93755dc9024b", |
| "size" : 42, |
| "okm" : "14a650a903d54e0de9962f5462deb135071cd1e3051ecacd65d378b6181b41e1e1ab3b5d2143b710c728", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 6, |
| "comment" : "", |
| "ikm" : "5b01b2da3166f217cdd68de8af60078f", |
| "salt" : "", |
| "info" : "6884cfa7ffe8f27bf4ebc6e46a7e01488c79243a", |
| "size" : 64, |
| "okm" : "7bf6c7c72fa9bf184f9a2e13077a0e1afb9d976a5574fb7ec819d8bafb9b10f962e6fa8bc6a844ee0b609eee34aaaa025065a7e3a7fe4678a005640f7dc286c2", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 7, |
| "comment" : "", |
| "ikm" : "467403c2ec02a235bf730ff37e8d8ff3", |
| "salt" : "41f0f173d307d40436c25856cf559f96", |
| "info" : "", |
| "size" : 20, |
| "okm" : "55169d60bedd7ab2399d830b1da06f69f94e4b0c", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 8, |
| "comment" : "", |
| "ikm" : "3352f942aa93071da6d39cc5ed8dc460", |
| "salt" : "57a0db708b25a51afc4271803aa35204", |
| "info" : "", |
| "size" : 42, |
| "okm" : "260a775477eb6b32fbeb4e6825464a47ac8484a92296a3a3d51b0821b346deadf57f9c82e589ee369fe6", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 9, |
| "comment" : "", |
| "ikm" : "08867e76311126089356623ba5381e73", |
| "salt" : "0c164c443edcdfaedb1ab150f047951f", |
| "info" : "", |
| "size" : 64, |
| "okm" : "59debea3637c46394e2fb2790ebf8760de4986f36a6b142305bb62d1466dd56fa201c96814a2e5846acdf141733ccc54df9e6ccbaebf84c4f40e21201e180b12", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 10, |
| "comment" : "", |
| "ikm" : "c55c41d69d2424a520414e3662aa7303", |
| "salt" : "fea9bfc92b74337e43a201a2dc199e27", |
| "info" : "3fdf20538063b76901d61bbf9b72b0c18749e00e", |
| "size" : 20, |
| "okm" : "25ffbc81bc7b1c2dc1cf98020f55d256a31ce89f", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 11, |
| "comment" : "", |
| "ikm" : "5d3db20e8238a90b62a600fa57fdb318", |
| "salt" : "1d6f3b38a1e607b5e6bcd4af1800a9d3", |
| "info" : "2bc5f39032b6fc87da69ba8711ce735b169646fd", |
| "size" : 42, |
| "okm" : "6724e716f6a953aab112b61e29d921fec0f8e806841d5ccd3aa567574b502904d04ae707d244187fec52", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 12, |
| "comment" : "", |
| "ikm" : "8677dc79233ef3480777c4c601ef4f0b", |
| "salt" : "ad88db718244e2cb60e35f874d7ad81f", |
| "info" : "a38f634d947819a9bfa792174b42baa20c9fce15", |
| "size" : 64, |
| "okm" : "758546362a070c0f13cbfbf1756e8f29b7819fb903c7ed4f97a56be3c8f81e8c37aef5c0f8e5d2b17eb1aa02ec04c33f546cb2f3d193e930a9f89ec9ce3a82b5", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 13, |
| "comment" : "", |
| "ikm" : "0f602703d37943e0253bed3da331aff4", |
| "salt" : "ebdc8510499f69b2e188daab77cd819cccb95f276f46e6b2be11cbe72700", |
| "info" : "", |
| "size" : 20, |
| "okm" : "25b54be713ec3eabde9f8d25745672d1e6386c07", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 14, |
| "comment" : "", |
| "ikm" : "9fe65737574c5c7aa67646adf8230ba8", |
| "salt" : "73a34648c152443586236abcb46a090ce55ef6c7f282ffce6342d694650a", |
| "info" : "", |
| "size" : 42, |
| "okm" : "24e3486d28a6574270b32541651cccbb93f0418905e628ec1274263681b943114f742b9b81db0f86385d", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 15, |
| "comment" : "", |
| "ikm" : "e8f2b1c3e6a6c3d5ee0a20dd47aafa78", |
| "salt" : "3f5e162de91e0782cd189f3b7778cdc2ce6bfe9d3fe841cd3c70475d7b3c", |
| "info" : "", |
| "size" : 64, |
| "okm" : "167928954f92eed2e1c82496e57cf091d9c96aa6d4c01ea0b4275f9f17ceed820d90287cea90ac8297f892c219885243a67429829bfc86ca8eabda4295236252", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 16, |
| "comment" : "", |
| "ikm" : "a679521cdb56aafc5a4b76db0431a4dd", |
| "salt" : "123033b1ddaead83a4b9cfef8a660bd8e00fde01e67c35656c6d7607d456", |
| "info" : "44ec41ab4f4e64f4a36e5e30c9f0dc1d77ae4974", |
| "size" : 20, |
| "okm" : "72f15cece4bc7704a841eb5047f04756f86ec549", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 17, |
| "comment" : "", |
| "ikm" : "49bf155ca102026f2a217ea1bc9843ac", |
| "salt" : "76776e3b4d75f8f43dce4bded71f3b1ae6bcb012d9c0d59f78248b9427b8", |
| "info" : "851bda4faa8f7add2a3cbf0acf9c2786f8f955b2", |
| "size" : 42, |
| "okm" : "f693a3253389435899adac72d3ff59c240c65bf282f373cea7a9ee00864d5b4f39b2000f7eb49af16fda", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 18, |
| "comment" : "", |
| "ikm" : "6cf725e939e8824d4392233eeac75d30", |
| "salt" : "1e72f24b05a91a0093f34306ffced79e7003055b0833c6d0f27a4f33a1bd", |
| "info" : "495425d9727fee2e2b7e78899868c1c3e7735e1d", |
| "size" : 64, |
| "okm" : "e13a7490f842b6e5be206e6d5ce69b2a8e2cba5525715283f22b021d2fbc2aec59d0144088581058f0fb2f551c6d62bfbd8a15d2706e23e10f3bf7277fff337f", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 19, |
| "comment" : "", |
| "ikm" : "a319ff7b5ba9b14ac72b681cecf0f742", |
| "salt" : "d7e3bc6daed343ce77ef793e15a8246e4bfcbaf83d2ac956d0661d1df7262b2e7311623dfe4152caddbfda8fa8ed7a82656ec00b72c5adf7c9d388e5b3bc8d24", |
| "info" : "", |
| "size" : 42, |
| "okm" : "83b3d9f22cb5765c16dcca24e6ce6875b180ec9253bb3950666c52e3711f3b9200d2a995aa548bc6bba2", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 20, |
| "comment" : "", |
| "ikm" : "34bae5a158c1678aa76a744417a70d7a", |
| "salt" : "1532075f363e061133780ac959bf653c7687d181b9431215d6f62dd2f1ec3019d61c50fa82c70ae25e624c849a276b0c57d7c02a4d753fe84a1a6621e9a5ef01", |
| "info" : "87ec30aa53acfc3d09ccc1d57d654fdbce403cd4", |
| "size" : 42, |
| "okm" : "9413c6e1b27f829fb82252b5ac5e14a54503e5f433fc8182a6b556bd7b8e04ac34b0d6006950d5917132", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 21, |
| "comment" : "maximal output size", |
| "ikm" : "b8a3fec3c020e028a2a9512ad3acb688", |
| "salt" : "324ea1f30b8dc6e13694326da568c57345b6383444fe6bc425fabdf92653fbc1f5158e43bddc5526ca2ee0caeb301977", |
| "info" : "006a7b5529648b31", |
| "size" : 12240, |
| "okm" : "d21bf9e7a8685d4c052b391b472767d436a0335ce2315a9e44d5b183da2f06fb0ac31733fe0cb0c1b47f1652d16b4ca84a5c05e4fc9432a840426d146cdf17924c62d3e1901cd3f5cbb0aaa55d46e0d3d23fd86f82a2bcf3181a548cef4d848960ec65518ae2230474d6177a29381e6537eedc2b2728db2573ee182afc5d72cd65ba04ed613f245f3ac401de5e4b30018040b8b1f253eb57a2128c2c0e99ab68dab4583f5a1ee7d0a1d16e9f00afb5f63a1e98268f8c66db5d49ddff7528dfe71f792a93623e355d0860d65344eee9eba04e739627874829c2cc469f27d467822a72a5dafbea14fea2aca2c521aa17985c07a8457b18a1965ce824bc886525c439bf48c36e957e567edd26ee015c01e01cf3ae463f8efdf12dd0d102d95310da2849b8b0bb0849e8b1b41c515708299c7fb645c8f5c86e165e14ccdd9f3ac4766e8ca74eec97f7632a75543d4a93818fcd2b3201feddc19eafe19ed596b76aa3a8492edc52e990549f91967aad94536e8234afb862a60c92267e029bf90e07315db87e56ce4fe7a857edd4869c44b4f410f62b7ddcd31bdad3c1d6016edff774ea7e17c1cb3b39ba918ef0d961725ebe407b6c89b06a9f012d8fa55abb1b84e277991d8b2089a7e228d326eb0c24632e4e35289a14cf7fa1f036de44ee56c0444bbe7d84873597fd82dd6b717488ba3086d57c76783e88cb0992944c66f8b87132eb9908c5dfcf30600feca06ac52d28af218bc5df00fdf4b8fe3fc3947e3ee24a68d8f7c96517337df46283adbad468daaefd334ee2b101692651cf5c8c1c60c2b204a111707afa2ff0520727ac222807629e65f8425c925eddd4a301ad247499f6640f9ae9818644cc94ce4b088e37ce728c48e42f82201b9b27c7b0e918c09b3dcf6484d6794ba27f10374f618c4ec49791a3918977a13099e53bb8fe4fdee599016e7fc91f849692ba97e722c90fa6b4fe54e2bdf4699857fafef364fda90767692818a40cd83cfa42e5c12b56f7d83c4a8653434ec7e5e9a13cb46019bdd215c106425ad51418a6258014a62a449287edbd879063d8db019de0980d0ee30c9463c50860c7a2c390974c09c74e634b0543212e99f6db9bc104e14fb7eb52c4d98c5df24808c59baeaa01bcec03dd110d0ca6529e437e2994dadd8a48af91734b638acfe6c8d216b5d1ee48143a0b24c51f4e24ab2687be88233d10bb974906d46ac8e08dee1191fe7455075c167a743290c261362051c28fc441737d92de5ebc763cb52bd905cd3cf115dfd3ee89f0051e31159965e285887fee7fbc529ece2d350985d13bd16abe379ac5f9a89a99b768d4f0353e2d52bc8636c1dcb05bed53e958937de69636e34d5f46ca5371bb0f38e2fd718a6bec6784076efefeb08c3184bc92e18a9fb7042910d1305b560b9c59223db160e2959f061cb0c9a0acb11f479d4e77c6d98d5ca73149bd19875daaf06341b86227a93e09765877c0d7d0e74337f9cce38d59f0c4c9fa202d1c48e9c398064d5f9fe802f634b094f47dc44cd041086b728ef57103162df6d62208c3b60f750a4bcc2ab461424fc88107cfd545518aab77b42fccbebc7bf3da92e4a8c2a1eeca8d7052ce8c94ba6393f66be9b758cacf37b7c87ae41e48f9d2016fcac2305d6e15256d4bf7d19d6129582eaf7237af07463aceb51edd7c56bbaae7a54af6678256bbd5ad3bbb328d0506e451855281c5b380f63c1bce87b370132570ca98e4e330c1ad12831771ecfeb6773eaa44880bc5dc633452160ac8388b9eddbd02fbad325e0dbd66cf20298cba81f3263a402c5e6d5d57d4ee5fe391de78d2103067fd889d870a36e7df6441e466262b759d3e2c051f7c850e8484b6fb837239e8d11570d095a76241817fbd518ac44bf1bdeea004f8496a252726de49f36b0dc69c0a5d01daf2723140922ddec55519d49391f9a34b7c1a5e00d094c0ba8af27bd3b2ae1de2d6ae15b23e49bf65483104ac62172c8f2e9ca109c59649d0318e5c38cdd659779c598c23620151783d521f7ca021cb910f195e36d55bd963c25167cdb3bffe3642bde8e184eff7905affe418f80379393cd7ca78586764a80be777dc9d9cbe0840a4219c83459745f9cae786d26c1edc74f5fad27113fb84e8854c76e1fb02b1998253d365cb7aa682104765ea1f020b0aef0d3cd2378c037e5d64ab2dafd8a23beb5ac5fae3341be1c6a9c6053a3d857a2d74d56a7bafe341bd5bf7779bd7bbd1991a949850fc25ef0f2e012772ea0d2cb7e9292fe2658c6424ce786d7b7aaafe415adaf9ed7ac5e5ac8e24218bf9e629dc93d22d398a7872b9a0477ae98df9fb22e042d475f96d349029dbe108632d4d3b56dd89f352dfc703e2f25fba97da49a079133f1e0c0c729bf80b02edad76bb036a9ce1c841e5202d59cf63149cb3b81a68df64589fba8b1dc7f4fdab3cc8c4b5ac9712d7c9c41a6d5e0efebc2a9ad6310d30087395dd74b61aef03cb4facfd59d5d50d8c04c5e79518823f9824a94e0ec06b7157e48916d551bb5a6831ec44cae0cc8dabba3ae1b6c03391f3b5ce45861902a8e777fea9a5729cd16eefff724636284dea34605f53d98010fd888f469475a6a98b20c8ad8fc07466276e461b9821ea55cf3c42e208fc56c610f70368ff331e3dfdffbecc26e489f70b0a3e995fbdeec6b8fc87e19d3ac6f9036dddab7e8ffc38f58446f75fcb2cc4f7e90a721533de151a61c67346dcc63e15fe1a4ef1a98d1cbb25cd7b24703045fdfcffbb1249ebd3c1e52399d6c24838d7bd5b668807a4310b447c167cd3d3c13697f35225bb284339149bdd4618656b2a09712a812b2586c3492bc07a4c2f8fbe39861cf8d36dad815edc9cdc97dc2fe4b24b0fb3c2513e3504bcdb1dacf2692c98a6f90ff77fc5348d4acc44ee4524506bc176257b434e8584a483c4c734cefbb7457b4761e1dd2dafa10eba4a031e1f0f644e210e5bcfb7a72e2e14577c972a78b1a275f338145e2b7d80851013b784811a91c19c71bbb9df88ccc2c1380699f0d88d203800574a0830632e4401880c547c6bab52d2235638a7222662e166307779d2528c3dc5436508e25544d1025ac3dfb627781e8fc7bfa67738b63a86bdd9f1f089f30a71cb7a79dda35340ac1a2dec129cab38dbde6cd5dcf9d2da3a88f9c2cf65b4a1aba02ca213ba596af1a2f323a47ab6a07f0e3057c6d635b2f5ed1bc2f4f6ece8eac348202cf1c6d9f9c8738044ca5166e371dac0f305fbf1b5ef2536cedda250a4f209ab01c714882244b3c1ab3c0a0e5c07d6b928dbc52c9b23362266ab8a25e2ade5e06c3d645dd557630fabe57733c7543f7453e002da4eb1844899740d95ebe604dbb03e883d9f668b4974282ed491ba183c5d8cb2867788f24eed7d67f4b6c235262cf71d52763fb7688d3d84d92424b0b23468908e95ae82de41a2615cb009aa7e5f18c889125f1167d60aa24c3fd9e2e087c6b99d29733abd06c81e5a728faa0a945a2ac8029d58d7782f03aea0e185dbcca12e0564fd163427ebc2bf46bc71fa3564bc9556546ca2cf1e8ac1720d8955caadd08a6530c98d7df7ac14b07f7959d0edc4ac31e6d58d793be3c6ceb370868cb1ee8b57b74860576398fa5c7bc8d23e673745e7ecb1754dc2c873d6ea61057adb9b91dc4ca1ae1fa69a93e8caebd8a647915a75db4935e040e609e3cbd1e382a433b7a990488094dc53a91104c9c28fac9c74568e5a9e4d37df0a44f750fba7dd45b17c142057f16361ac750fbccd56fe43ccc548c9c97ed9a190e14be1bc2a039a671175ae625bd4a0a7a9f6ff27d75a022a5a0e5bea17eb6976631117ad44beeff05360580b8aa87d8a6c65b7f4b51d53c20d9ccf9008eee95cddc90032325598f0c671810edc80c9de9a74cb32de95b940507773347a17fea02f85cd2461e2e76e0f58315a7393489b9d26440283d89ac0d4f8e853e35790aaabf8dc26981bccb4b85c36393db621c26c99d1ccb072c8f250924fd0411136c5e2f9e79ccf450e785de248b75427dc6f858975b0d3f11feb0f8745ef8e2873424d34f09d04bf01edc974865fb2223b9cf72aa4aa35a5b2c9c91f55f2e545ac403e66435c25fdcd6aff3466bc9b947bd1c811c65de058a92dd3d3668f2ea7c8fdfbc54188d8328e445676a3d115252022b2e828ffedad08c2b96b10b5ca3057083fcc313e3a6d1fffac12987b8d518cdb8b0447f6f23d5266d95e03d36a806dedcc5466ca408580d5c3872d7f6c96bc63fe3c0ffacdbac126ecfaa9426483bee96596d0ff88f8fac8b9c67de4d023b3f0b146d8ee27cad9ae019d8982c85e361cfb7495dfbcff0486448251e34a31f22c0beece7f01f8b81448d267397bfe55b4b384d6604606015a744ae36c92d593a1cf33d3b5562d98093313f3a2ebc7b8b7baaaa0535476b7399ef34521f06d459861985e81e2f1bee5b3544c09e5528bfd472e01383975dabd907be7e9628ba660a776a9ed3a815ffb1df09753e8dc45a0225ba98e197508e0a22560cc0d76fc1692749a16c91dbed55e385593331f3bef1666de4c2b8f29f5df2673ac331a337da8fc020d76f4e4b0933ed6df06b5199715416d6ce46b760205b7583973bdf3967fa546c9e367d6e60f4c9f8dd79fc73a0967a58deb4b779f9b5695a91db67fc2c0e55e7d74eff97bcc322a00c5a5c0fb9564d2c128f5ee3b3378416894ff25b8445e52d21bd35f1759171cb4e6e426c71bab9a6cda6049d8eea904a0c95ebacc98dbf5a5e98d835b6e216e6fc062e600ba74c321620f63e76995637fb506daaf7b7e0514563b536edbc11a35515a75c58cb7f56f3f5ca0e7dfa3ec715089bf6e5f26ad74c10e72ba5f603f3ee51c7bc9645f4194877d4f4645c8226b1d974fab69e62aa3527ad2fbd101eb6b752a739a191d431a87d5c739b7d7f7804430f41820cde5e5a717ed84d80ad154f816657561d58f379e4a2e7761cdb505b5da6f1008143cac623d11859b186c291a0b39267da29f64d5f5c3e0e5cf0f3dca3b78372593aecff71541dbe2d3f89d0febe753f9571684bf8c1b82826715d40cc0da84fc2cbeb3f46c1e53f522fe5f682479503bfa423a2fe10396a9330be5c484e21d60a26aa3f70b210d3ca96226972b7b03fcddfde1499fa81be22e82d851e609834ff9be6407e0bae00909f952798a559809bbe47ea0e4e626de0445b79758726a09e38e757c5645379223141ac21de8ee298542670f329d77ab498f73adfd2d269dcee504d8dd046f7b496fea449e2b265874af3419d43b58df44d9be3e414775c715d65a1d4107bafad16bc315610a36b5775b7fdba09511ce68d1fac79592e740535a27b47a24f07b98bc2548df11610860c5918173f04cf28890e9c038846ea4baaac30b22c552d5545c7dab8f4a034367352336e58409ed2907df1a2fdcb0c56994477c2c9075ce3b1876abda5da66b3768eb7eba609f83376aa5175e3d23a49e8a4327ca3687e401b9fc2f00fb41a13059dd57f9053d438fb66050c4022f9a2d740ca1be13830047d47e9d15184669640ae993fdcd2242977f479b80169ccc802baede5fb86fba380d3d6313bf2034f71f9bd7616c02225ae23b2a83158e31de5726b79564f16abde403a915c0e8d9110319dd91e8c32ba5546ae522ba3204b70d59731d9971157807b024306cbb720563671b282b6e89f82cf91d5686978de9af12e523beb1f2947a384dfe1a6b18989a0cf1c42803c8238eab525ed3a25dad792908db3478d14cb26abbf324d589eaf96204c837b32a4c4e6f9240103ffaa14c1edd6b7ee221ca2dc52dc553cd4eea179ca9a7c4481f17a3f4a9633d29987056afe59b8f51b8665837c62c72c0a3b5a4c5c597327414485c39f298b190da1d9effc1e103b0194f5dc634c6e12c7a22866ae23e64a86bca3629544be79f5b4e89592a69c46d92566c7939385870e3337174dde45ddbda3691ccd6573edb897a15d2d17f2599c523355137de6b987cc35df65d0bba0e06e64bd3059ff94e723ab11bb4f015d72b42e1762226f163b881bf82dcbfa1604fe33107c978181d850bbaec70b44d64fb27baaf7cddd33b1ebb0872115a4fbfaeb6ca5299a02aa07ebbb28574c430d02cedf0396b8e181ff3631a1fe938b0ef175ac9e7dd399b663ec6c6c9520e4a63c80584d8b845087f5419d8c815b1ad78e402a4db542b900c71a16ada2cff190d6fb38815c59238e96e6cde1dda63a89ba907db338e0db29d6151722e9120126d70c6d348b8d3b99084fd8b2bc068258d43a34dba7f639807eaf2176ca7eda0c0e2b4e168c1df200734b592416304e7fefe17f051640464164d643e7b66dce05264a24354651cb803c012af3aa6b61c7c2c5690979b1e1b5e05fc64cb6dbd4c95df382f7d5550e12d7bb9242ddc025f2af03a44f7974dcf5da038f23ad826e9177b23f6163b827a98f0cb065395235e7d3141f94e83e46e8fe71c9e2c43c77837c8616150250485db8a41f7dae069fba1e453cca231ac71454bcace3477af40485ff2f24474115a6029163ab3b7186af02de5c3361c3f26741b1d86334823120178f6d453057cd7b7df09c908ab114c0fda4767bcbc43d1262cb94f07c396ff51858ea2a55ee02873cf9fe2c456f8afb5a64671c05c020177891ba65fd8a3857359de1fb4fdd80d2f7bca6e369f8dca930bd1c977a141728afb66abbad60bbd3b5a08f32901354067f5442de768972a8ac3330f3b4324c16c1a5f4b321c68467404cfe642418620df5078d8525919eff62163c388ad4c2666bcd06330ce5737d438b59fe84f4089fcf35dcdb17ad93d3d40e32493a57ef97a6c0d45604623ecc80714b561e515c0169ccf488ece2672af491446a5d9ec8cd443d6bf95258d2bbbe220be1b56f1179231aca39ae84f5ed34ead9511a2e9af44bac69f4bf42b241696d4cdd5f260d28c22d26ebb580265c5046c81bc386c0bf698ca1d412e7cadcc247dc1c774877f5b9ff8193128934fbcdee8e0932e6658dcd30d07391f82f4d89a17e2b622a8b87997e1848490e26efbc6e79b9e1c40a414d9f84e22a0dec7e21321245c76e64921e3030a1076c9a87596d5aa97caa5c9c68b3280427668348985c7b7759db6fba4c1ce21ebc6b6889fd7d925215d56758131c515b544c56e75f95b90d15dda7f309b7740aa7989cf1a9e3ce217e0ca6e27f502731bb7821a3fdfa73f915ee49e0757a897972d58475e4b12ac735cd9e6b28b81a76d2ab0ff179fc1755a7d96cef5e8a68ac9256d8d8f17d9182daf1540d7af15aab8b1517f7b8656fd3e6708b99dca9a1fd598efeaaa60ebeab6adb5a76a0ab6cbb7dedbe3f0862ffb028ba4e942372344cfe84da9fdec4ec75fb290240828c4c31a1fac0d178f0dd2245f29d346c3a841f863130920bc97dc05c510020852f3c01bd783a8c6db64228b973b20d72c45bc5482517cff230f1a9bf1d8d0979f62049bbd5e8a3e1bc54f6a1c148289b2a66685ddfd0406bbab589abfd183c4299ed66283beb96556ff200497804dbabf9b6702a87692b4b5bb58e01d16ce069b6c3512332b394db1c91db0882a571ee41e458bc960e7535668e334152c9d46e9c155ad09617c348c3874e5db311601f25d5e1682cf69689c15c13dc5c8d836ff6e30b0b804e4810e280252f4bee9470964159f2b271c275c9615b341d20f292107a481955b0b986365c3d7f05de29a8955cccc5d42113c21fe60e2a4a51be45784fc304e8da0091398205a9afdad9b62361d6f8c42b16a7990d5fb50ebb90cd1e1052f62a966a9e8be73593b50be8398c5b3e8f7ced3af398d537bce72ab1d7b10b4f0aa77383560a79f4faf2f29992c1e2afda295d15a65e30e6f968d00d60e5f1dab5a847060e55ad9b64f0203b21bdb506319ad379302c24673a727acc17b59ba12f20c3ba472c0a5628d0b05213116e2dfbaf9e98628fac973046f60f930b7eaf0790ff010914c19e93f07b74ac3f7a6b6c3cf92adb49443194f9167f7dd553768841b34d461f7b854a40926b016d8a0123a1fae741e07662e125d42fdcfd765c52d518049ff16393422e6080b9fc69117e5f17f3764917eba5fff3f078727048f3e5bff1d9eefe8ebe2fb6db7c54cdc9b7678fd0d6551aee06b584dc4047beaa72c198bd96ae9eb9b151f29747af88b75399b21570ba6cf983637e6dd2b1d42d39d07108464ee22d81d640aa4cdbdbee7919de51d8f82710e32dc722a04a8ea96aa32a7a19c7048c1d76d2ae63ea288b1120d139bfd2e51f634c82f6f10a5bf18b02725bfed7a2913896b5f108fcebd949d04647467e9837256d9918c2185905e078a14d2945ae64d57eb7ebf9746f80ef939c3b1a307c6af627b91db34d59234d3b62279fec874720624278a51fa6d22886456135bc98b683eccbabcaacab2f013fcc884c554ddfc6f91950215c4f1f750cac338ef3e420a82c1ba15ef420798053483ced448b730e386f0788e1a3a747f8365385bd0e02cd42f1cb48a61ffeb2b2e6e3ad75363a118a27dcb86cf27400be97bc7d10bccdc03f6e19227ffd0e3881bd7c3126d682596abc15bcebe77854ce2844219b17f604aa2b4cc19971e8dc163ac654126bc39966d35737ae75a4852ea1c29183a3700e7cf609ca864285a8b92de0f32ae7c33b5ca11aaea05e10f87d892c5571e89dfe54091639bd87636245f06cfaf87fa3a7d6d657ab3aa89f5fa6b54eedec92186b2026954045a07822997051bf232e39dc1a36a50cbade8fe4dc6ceaaa29008c13fcd7ef96cafc7554b60d479132b2810ffa583aafd6c7e188293c4c35008d895fba6634eb20c92bc1fc2a93f7034694e6bae8d291c59caad61a723719298ae5d99fbb0485837a284f070fd293f74307fafbcd5b9b3a49c96d9b7dace812d6fc7a94aa381346e879601fc292e850d5a732bcec383ec59a1034a573793ee07b9c30e29c3f3cf0efb40693b8ee6df08cad92be3bc4666093daae5484fc02df28f3601861a2aa9ea96e68bbda698fbb032485a55c4baa03893813804f09a4d3e639f2d84c553f2e917b3d47f658820702a6cda2e06070d29c71640c677fd76c429f98ef0b65aed0d5c82d334a3e22b5e2d49a31518d61833ed8fcef352146e7a1ca1c9eac1d786487e357a108ba102415f9d87ef8b00d1fdadccaf3328d9376600ab0e4ee2400aced47774ef5374e62ceb9f19670e144e4590e80d33e0f5863be0e5c515656c7f0880bf57ad0b986affe07a1f66cc9b1763ae7646a8f28f6c804b6c8c260f5fa02af05cffc3a631377f0e4abe659e55655f691fd9572ad832f6485c06bc025d5300dca8aebf5ac0094e582c5ba28389d76fe6387f933db6d04b5da56b739824bd507a072f32b5e10be0516718d1c9031dc83aef222abe60c6ced982b4256a36beaa9d15e11fd3f3f600e28c2625ba2b7a9290fbe89a41465b075aa5f00b1bbcbbfdced6dbfc41e30d511b02c9711510087652b4c6637c44ebaabdd0d5527e5017dc4a339479c9be804bb5b606ea3e701e88bf02cb6c2b3e8c6f7e4bf730c8cc36748d38b96300ad92136c9ab8632c54da6d7307afc226eef8b3b9c849235347fdd953a194a90cc730edd043d44f4387858fb88daaf9a0b4f73abc949895ad4af054a8d31b69a2a98090940c24cf008fe675befaa7641a79c440e666905a055e4ede90f923d8bf16e2c451bbe8970e4c3c54ba5b1c3ddf66e8ee0cb3ea1d417cf82a72d244ccad0288c9231809302494235e905876cf8ae1f874b61d78c26b9e1645f68a0478767d049dee312f6ca578ef5630cf4bcb55967c960077503927f3562dab3e37bee4c96d18b66f969f04d592457d055302ac96fd47abd3582a5117fd62b09a1a8c74c379961fe68c9e1792a2097d29c1d837161edeee01a4b76158b0939af676edd2bcfd18bced7ebd0ea8464be04edfd2590004004b0b24af9c1c028fc2b7e756408854ad3d4f89f8d1d27f90db5844c1622b007c47882f316ddca82c7429c870b2455aebd0519bacda287f843419cd74bb07a40cc08d1fc812039254411266245f3b16dca3d88d305d7ffeaae1b45b1bf622945e3ce4e90ec153b9ef84741db9782f1b4518233ac86e10d5f212ae7dd3cbbb952336401a1831621aa7aaaf1f053efdf3938e73ec95d084cca4c2a266e7a1db5e58851fc291db9d0e7bc4447319feceb83767a5c226010db7c1068e8831d90c0051689a7d7a9dbf687d1f1ae43f62a33d3076784cb5d800c2e3e9007d9a50c1d218efc59bb6d5e61c12112b90f72deb9348e874f3292135d7ea9dd6061a6023cf8d9d8c3abc3a8f29a50f2a2be9ee11de0a910bd3763f0b90946ed1fa5a6494fc65f155bc0a1349f0c3626359746e020f8d3bd83ad591f6ad00921a13909d6df288f4174bdd2bd231d2c5352fa232687c5262432732b2837fc37874ba8ec887f17e41a0eff1b56a03d6d4cce12cd60b426a0ce2ca0a3af667874b2c43dab58e65f83c0afe85e36a754cf460fd66689746ecf640d5af440403d2339898647dd36e733b550f41882b6aebf31d886091d1f3a7044ac84014ffc793f34f6633e419599c792042282f37cade01ea1b307cff1f7ddfc340703166c24a63587324859d7190d540352bd31ecd34a2213978980a490c456dc55adda4f3c920aeaf16611ef0516180d05ccfb6c05a8df20792591a12df86a3450c0bcf0ee7ca2a861c9eab2de259e77391f4cbc3125e67d41553644b2a1a8268647237255bb08e884852fb050365574a5fd78999e23a6b0457b7007c0f31d1919680ba10e803bb52e8af42c4dd85638c87d5ea436be1c8102876cf7c38aef78864ad5ab556b7648806caf6fda6dc247f26754862b29fd0d8c89b5c70476132737eb9d6bbf044fb0eec96a961d4f9975d866a84df0a08cde0e9525b179b4b4f18ea67d035fcaa946e807bb22ae18c159241534ed15da394ed5f73b1d74c51db40283048dd8c0f8c5c807cc7c13129f10d957b698470c05caaf280b37f605ff4d855726869251fd4952cb35d6a873309a7166548cc3aac9008589a6d258d8b4b31835dc26504455bcaa25fc580f27b213d8af43897d59e89cca09472f57720146f4d0748040c2f21764b9b3faa75e5ff78d3eebba844feefe0ad9bc0493599bdf1de61b3d71446e6acaf3327dcf61635e51694d3713732804b43989a43d293f133ac21ead51d1f2b92b76b3c61f8de0aa8dd660effc9cb1bbab80f9d1915025cbf3f70198f979a5a1e15db18ec2b78da238cdab78dad028fd5aac7ac043acda7828234d93bf512e09deea886b6c9459962705f8cac432ca315c3b9449c68deb4b0e71b4d393b891bbf92c6ba9dcec3fece0dd91512f49af9806c6c05f950bf2af2842a85fe153153dd658719a2e1b1a2e989448fb0c9b456d81f4ca770140fe9e37e1ccbe61893c1886ba8805f08c9417c8a3998b5adaf96a37d71b953aeae5717258b9f11fbc891d2bec8ead8d355656a0d0fb783cdc1353af35d8cfce2ecc36124809a77cb6fdba75d0f1ab2c9f82de83e1d166a70edfb86129d9b4e362db8d4dfd6b37c6c85e0399bddc8d30ef6b24e1f0a49871511aa210027fb6dd37b979d3a79cd386d0aa3629a25df9e77c33f4eb822ea3daf6c29be1c2d88d3ae3be2321c8fea439c0da77cee72cce86673477cced34d4fd93aee2d2dde285eeac032a81d4df620603a141fdd1d62ee11d2a82e70c4134ce2a80071cd39cfca105bc669319fc85aae441754ef7a3ea83ccd1ccf3fc6c22b998107d1c747ad5dae0d304649f2bd9e21e3064be40ec7b570fe564fb71d95f9ddc94ca45b8768a0b96414dace446411a07fa0100835aa70b21526a1d6f59c167ae22e7e181a14cff96e1073f652cea4ff504180c74320633527430719178a4f75e65ae9464d7dff690bbed239e00e7d166c5b7f8b6f12d510c7d8e619976b359c3cf71b6ecca2984dbd080e631af5c0e5b4c5641aba47eeb4f3b0d942eff17da0f59ef22a12bf3c09f3c24b462743e396a0bdc21b728bb1a73c6d0038bdeb6c078efe49262c597c50cae204d7ee129f7189ec333b2099d5b8c30a5e651402dfcdd65aac3a30ce35e905b8480a45f3f339b81eecc19ed0b36f40fea6490f47ee1a3386678164e1f299abf45dbadd518f38c758bf4366f8e6a5774ce0ae4c4501f11b06fd72eb8ccc25e5bff4809ffbc78faf3b0055394348513fcc2053207008244ed0461660105fcdb9540cd7a026cd3485c5a06ed7907309c1666f9391eac01bf63d0c6d4818cfa4782e5350f14f0b61dfc566d2d6ae766ba4832a974e7524c351bdcf5279fc49f385894f64c56dafcea13762d9c1763515fe16207ce1873a183ecb0a7e557a2807289a868cc4194efa2b46e0cdfa8668eaf99e583888030891f9991f47cbd11e6594ddcaa87f1d8caf858fedb73269b5dc5749aaa794cd37241100ae2c6ab74f5e5d091cca278b3e2f16109d0fde76230e5b3c91c6b63dbf736fb2af20429af3975d589ccbf41515d492560e92c4f72ca6655c3faa78ea5f49487d2812c72b455b8be1c1b881d243e1bce03a6b171cbdba96e795eb0164cbdf40538e98efcde2843a8b1b12e66daccc68e2b4c169a7198090dcc60934783bab955259332dc3b2fd9f2ee83ab234184c22554325e0fb07c52cd3d1737f12911947312c46ee47ace07e8183dede9d52d1e4d9b8447ecc3f21d8ae22c4065d4a12ec8b0c317324595f5dcf17b14642d0e8b18c1a821723a9970281a593fd865fb6b9fe3c93e58767d3a60a55972e505cbfdafcd957752d2015af86b956972691ae027725c9bc6bd5ad63e8b41ccc5c6c0bce89441e1ecd86b20c73780b4e453a10cd3928c354bdb96fce9f09bfc0c0e34298604a0f2ab0e87d5ec6d3e20ca312695da3b65f8218f161a05fb224437c94c8a936b2f73f27f112df39ec596ec8248e228d379acedb3664a1a96825db7c770c43cf3fd1d8abff9fd68977a72d2cb6c3792c88588913e106a77749fbc9f8f5f0e3178475caf5b228327a7c1620c3b4e3a9e41f66456e40f484343dd3e14ce084e82a06d285379094d7d820b02673e16c79dc1a5e56c04d69a33b328a944d94e33c8009d7071d3dce25b74b1c7b7ff60cee8807c9dc1b8e854c79087e9ac00ec8216e01f1ecccab81432563d71e604af79bbb24761c6fbebb1b5420764624e0d6b08d7127661873b756cfbd99cdeb494228d03a619cda283e430da5cf2ea8854e3bb42b5af8dc957901e2442c89d189c7d0739eaa4c79aac9cc829bc70320c896d626b5cd2f862bae1294f3e2c83270e61c12d1db6064c4be559bbb03bca33d3129437a5f0f0696b9d36cd29b4f98561e4cf0e765258b324c50066db05ec4ed01caf9f6fec58dbd5818fad71b2ddf59c70506a2245e3a3a2753152d94b3b79a90ce2af0f6819bd9ccda102b73b81419c2a317c59d2baa3a963214050d15aa8fa85ea825a8e9852bbd3711ce45b495079b610c18789e0123c6d07178387bcd88fff0ac62437c5dbddcba1ea4af9ad0983f57381c438ff89700eede5047951aae1cd545597ef2f59b82ee173d1e06dbfd55f93b944ad68aafaab9eacbe1ee366e2e650881647d375abf478ea48cdb196c86fe5d9afd3511845d644f5f3c3ae76d21b34b6f376f9e0f145e91044d78ec47a944df31f6683836f5e7eb6ffc458a6438a30fdd070c90d70b45feb320a00012ee6a5a4c00f2f39c16e05ec35367b1e120c243627a3ea42fea333fd54c5e5b487b81a52ab2f0b7c593fe1cb8aadb8b2d29be1aedaee0567356b44aa4ec3ae5440869c7a9fb6e9c31476fd4cebf1c1c59cccdba7d2ca0ba3df636522ee983169d521cc9ae0074dec1083d54df92bec7aed5c97190dbc1067b0950f052335767eb7fb1ff54ce78d6ab20af3ae08cd83f10e22f603fdb6c216ca88c01b6315f6f4c20b400de3363ecd78991171a2b6ecf5fc2d66f5519f53407e6a6e28cdd2789c5ea21f4ebf46ff6fe93b7f30f7dc38b3a9b52ad0cea17eddfa88d534a5a6589ddf5fd5826f0ef3294f6d40cfcfc790ff25ef282a0885caf25c818f3721ca7463c8b7e2ab00fe3b37379bd9b242962702738b97809e45f373bf98e8962eca221d35406dccc0efb041d165ae9ec16044c8929c66c8e6aedeea0164cb61b6cbed9f46aea04de581d12e9c33329f0d70e5ef3ff2c75c6152a65ebff7308a64a8bd8b4e3aeb7795070e9b1dc19522647a48ac70a7166df2aaeb3b11811a8817593ace2db23076bde79a99400ca25240bf180472d406f171545c461f69f6d550dc1e7afb183dab9975f0e4527c9271aa330579a796010bf80138c2721d05a997e4d49f099a19e781c8b78fb8e6a85b004dd0f8a745e39342b19937a20cde7ba721c1634e89b715ad63572e94542e7ea4cbf0396d2f289460d4ce0357b25a01dfb44098da0fee41b85411b4097eb860f4ac9b3713a4164b2abb1b264ddf347cd84d7941d5f221c84d93310c1e3a1c86c7c64cc4c00d45922bccaa9bd4f86af2b40e3610664ae6be78f6cdae5edaa59893cd91d1b0a33038ba2b102c330785914140426c2992baf110404f2848e275fe11c40b6aa98aba6a5a79777adeaaa783f1e60f95bf2c12652ebaf676b7725fcee87fef63c46c886ee6db1cce0e084edb9ee01d6aca1287d77738737e7c42481260410d0ba8cc71f22440f9f309d893aacbe26f23210bbfb5d3957df2ba2abc471d43c9794fc6ef7df55d32e167e94008ba64ab3cff49b974f0a04d6513e687cb363acb536a280a905933c5e0e0253b1d5cee4812c7df42abbc6aaf17ec4ba0e0c408fb040a28895970d4a605cc87136480807260f82628073e62b21b6cb43d475cdff3dfa278bed482d294c1e82f9d99d4da8698d7223ad0a19b18024ff4aa1027bb29a3b35eacec61175c97e99aec01676479d04e2e3ea09bc0a8c2c3d08e6c5bd0459c4c7c64be06ee2eea9f17c93416fb1e13b6eb27c070bc043a05ce02ac9469d101d20044ec5502a6f650550db40bb4f1c3dd7d238091efc8f8df5f64da3e0df42ad021388d79b79772c06a61c262ead76e95c51d720abb7ddb069662a37b1348430c001e1ba0c7c0336ecc363acc425834efbf31695f66526b09e559c209b4266ad344a3392f1c7a086e08ef4d790c261549ec19b736feb243c97704e1a4c7edc3d50e95d531795ca20a65f2c6cf73c497e93de0e0849df72e25ff882159aa1cc1e2c764acd79d900b7f627bae2d6929eb726bb94c3de42bf0ce7cf086ff47b33ba63ab71c0f4a24e07708381f263c481ca25098c6e977e9aea3a99277b5c127ea056006a4478f73e6660aa5ba6890fc9c517e261611c74f7ef2c9addc7ccedb13731f36792b55cbe3497acad6c84139d62f525789ef648208804cb5300b74bce2fe6c35b16f4146d92ddb6ba4f499425f8d9bcab94e340154492d0c1590820a19bad95761c28903a308e84a0530a99ec5a12262a5f2c6c3c43555cadade946c59c0ef5db8cd2ccd388661f3b3634aee15c5ba323f7b6ba592180d2e68897d24408f4c102c4746c88369865e3798c7bcc2c26af47e0dc404b61ff62e63b655e42c8268618469519a3de8267597de938fa149166764230c3f442b484fced4e73a09988863b9f10d23c59402b7822d972ad2f576be45143897fa08bdc86ff05975ba047aceabb4d8430151af315146fceba98517e10710ee5dffee550cee6c1f9c7261b546997e994518fdda25f9e6c9d00bcab9017f7c8b043e750d3fc8ddee31984a40803164260f809d93c2a9ed6e19273bbe6984157d1c0ffd9df3c38eb64462d1bc220daf2d82a31b523befbf3c0f84803e092ef314eb8420668056f445193471a45a0650ad0ff4b2847735d00b48f4130314393d6263792e907457ff80ff7f16ff1e4716a31479b1575b693c685d0487e18fdeb52320a57d75fd1b39bd9c3a23e537a51406ab438627a32f1e47a7ea4bccc432e6dfdbb86da1c44c639680b5389120bf218fb9aa11e8b07e6828ddbdd96a672a5d429807ef1706c9996d8d3f7d4e3760424d6da0e678da0892d352e2d60c310049c1628a4c8b9f42233b0b25a4bad08f4301b985f8fdf886c3c9d83def2fb58c0d443d3a64a75c06f93e7db5ab0744883195c29bd6830745940600a7644ab87717526adac7cb69f463a66bed88df2d7872b2e964ff059f7a67c1fa61eb50eed5f37495880fa7023b36b2b1befe55ab9fe072b1acadf6ebab7fbdb51c3052d4d56170af68292793573397cf1a0d721a30ade786fcb61ee10dde6b9f340c7ac85b57ee6c01b50dc983110ece4641a8e49b9c7a02e13b9fedb550bbf9bc250cf9c9f5d03cb6dcd7ca1d0859e1722fed1e38a521d05fc1dc18d42de7cd7f5ffa17faec8f8bc2993e8393635dfec2b6669a82979367a57734ce805d9d927621517abc53601618c7b5343442e75b0084d76d62e2ebe04c7f3f8bd28e39b8ea3a2b6d7c2021a026a7e1058b4531bc34b4852004eeae6b5a55f212ec3552bc7b779fd14d03b9343a754d7d425c92b0beb6f65161e377b8f86dcfa7738c543a16812b57c0aa8b36d6f62c25737c828f217175c3bfa6c707837c32ca51533459155e368c3da99c2b31c063d17ca57b251726ba177e26d3ccb75891f0b0b6fcf3839efe99cbc6691f8dff63a988b13c08d1ce3a7bc4cac8d0a52e9331543321b76ceda20df0a7bed490a4048d8a9811a476ac8d0eae6151e7705d76484dd6606bd6f3186b248a6bc56f98a06641bd5a82cb2de1c8eb87eb0839acaaa22cacba4b2d47f6facd5c43e45eb73b7778af40f465c66d88b3185b067e838f115bed756956b683cd3f82917107130a0dcb0629520cffae7d3edcdd5d8a739447b6e819f4864c1a71f378a9343f266162adae57f7b27c5cb17606ce89af722fcaf1f828ebe4bf4c01bd9478309f639b95c513e63e51d1d9a207f8ec8eb3b39f3fdb6dbb8178dfdbe136ebc514ae551435b385240f7d080e01d0b7ff4480f5736efc24468f8a0f044fe6f84e4e8954d29ff5153a130b479e1f45ab50b9554df7736ae46f8f405d3ae75ca6416bba8932850bf057f6fd862154148b45e3ba00dd900b1de69879ae428e1b350d513405c18eddc0f9f4980406482e49828f39ee8c1f7f96920a466fd6bfb0e2d36290bcd3d7f52cd6633b9c89593acd9d2e8a43b982b29faf6251644039785e0a66df01e67da68f8d2764eacea4f3abe5e1ebb42e0db1ab787d028356fe739f966023eb90130afc63e1e947ef1bcc2a70d7e600c9ce109dd6af55eea8b", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 22, |
| "comment" : "invalid output size", |
| "ikm" : "39053d8bdfa97044ceb676ae54563de2", |
| "salt" : "85522968a566b7ba10cb8e7a6f10159977e4a572408ace1b65c481ccfdf09532483cf308bba0557c9a72c849780e044c", |
| "info" : "cae8a93087e97de1", |
| "size" : 12241, |
| "okm" : "", |
| "result" : "invalid", |
| "flags" : [ |
| "SizeTooLarge" |
| ] |
| }, |
| { |
| "tcId" : 23, |
| "comment" : "output collision for different salts", |
| "ikm" : "5943c65bc33bf05a205b04be8ae0ab2e", |
| "salt" : "", |
| "info" : "be082f301a03f87787a80fbea88941214d50c42b", |
| "size" : 32, |
| "okm" : "6f93965b7399bdcaef06c151056ba14b7392a1521af1145e0c1d05e34b6f19f3", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 24, |
| "comment" : "output collision for different salts", |
| "ikm" : "5943c65bc33bf05a205b04be8ae0ab2e", |
| "salt" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", |
| "info" : "be082f301a03f87787a80fbea88941214d50c42b", |
| "size" : 32, |
| "okm" : "6f93965b7399bdcaef06c151056ba14b7392a1521af1145e0c1d05e34b6f19f3", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 25, |
| "comment" : "a salt longer than the block size of the hash is equivalent to the hash of the salt", |
| "ikm" : "5943c65bc33bf05a205b04be8ae0ab2e", |
| "salt" : "329f445e7de8a156cf26a0208dbb028d9de6ef76b8de67ca634f4a5a732138a1bd436a7b345d7a0314c7ed0a00b0d34ecad2cb8bd141e2ecc1c77e237094d55154", |
| "info" : "be082f301a03f87787a80fbea88941214d50c42b", |
| "size" : 32, |
| "okm" : "94190f4f21f412c1d9358264a9dbb5035f94f39f5a503c0f54189b1dff1df637", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 26, |
| "comment" : "a salt longer than the block size of the hash is equivalent to the hash of the salt", |
| "ikm" : "5943c65bc33bf05a205b04be8ae0ab2e", |
| "salt" : "8900e95c7464dd4ad187a480befdbac713cf5e049c4aa4918f11e9caa0e07503cbda48921f5779a685dd220e484d6927", |
| "info" : "be082f301a03f87787a80fbea88941214d50c42b", |
| "size" : 32, |
| "okm" : "998ee6c2df90e53c32281303b2860c214d0325928898603e3dab40ae85cd6e66", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 27, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "5943c65bc33bf05a205b04be8ae0ab2e", |
| "salt" : "e69dcaad55fb0536", |
| "info" : "be082f301a03f87787a80fbea88941214d50c42b", |
| "size" : 32, |
| "okm" : "ef1423258f12fb40c01f773b9af50226f691abfc82def30ddc09d6b45e9beb03", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 28, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "5943c65bc33bf05a205b04be8ae0ab2e", |
| "salt" : "e69dcaad55fb05360000000000000000", |
| "info" : "be082f301a03f87787a80fbea88941214d50c42b", |
| "size" : 32, |
| "okm" : "ef1423258f12fb40c01f773b9af50226f691abfc82def30ddc09d6b45e9beb03", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 29, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "5943c65bc33bf05a205b04be8ae0ab2e", |
| "salt" : "e69dcaad55fb053600000000000000000000000000000000", |
| "info" : "be082f301a03f87787a80fbea88941214d50c42b", |
| "size" : 32, |
| "okm" : "ef1423258f12fb40c01f773b9af50226f691abfc82def30ddc09d6b45e9beb03", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 30, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "5943c65bc33bf05a205b04be8ae0ab2e", |
| "salt" : "e69dcaad55fb0536000000000000000000000000000000000000000000000000", |
| "info" : "be082f301a03f87787a80fbea88941214d50c42b", |
| "size" : 32, |
| "okm" : "ef1423258f12fb40c01f773b9af50226f691abfc82def30ddc09d6b45e9beb03", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 31, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "5943c65bc33bf05a205b04be8ae0ab2e", |
| "salt" : "e69dcaad55fb05360000000000000000000000000000000000000000000000000000000000000000", |
| "info" : "be082f301a03f87787a80fbea88941214d50c42b", |
| "size" : 32, |
| "okm" : "ef1423258f12fb40c01f773b9af50226f691abfc82def30ddc09d6b45e9beb03", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 32, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "5943c65bc33bf05a205b04be8ae0ab2e", |
| "salt" : "e69dcaad55fb053600000000000000000000000000000000000000000000000000000000000000000000000000000000", |
| "info" : "be082f301a03f87787a80fbea88941214d50c42b", |
| "size" : 32, |
| "okm" : "ef1423258f12fb40c01f773b9af50226f691abfc82def30ddc09d6b45e9beb03", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 33, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "5943c65bc33bf05a205b04be8ae0ab2e", |
| "salt" : "e69dcaad55fb0536000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", |
| "info" : "be082f301a03f87787a80fbea88941214d50c42b", |
| "size" : 32, |
| "okm" : "ef1423258f12fb40c01f773b9af50226f691abfc82def30ddc09d6b45e9beb03", |
| "result" : "valid", |
| "flags" : [] |
| } |
| ] |
| }, |
| { |
| "type" : "HkdfTest", |
| "keySize" : 160, |
| "tests" : [ |
| { |
| "tcId" : 34, |
| "comment" : "", |
| "ikm" : "e2865d6bbc1abf6a815067edc4ee7aa33c290d5a", |
| "salt" : "", |
| "info" : "", |
| "size" : 20, |
| "okm" : "e0f2f690fd50db3731b19ba8d6a7bbaeb5e9f7fb", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 35, |
| "comment" : "", |
| "ikm" : "8c177ab5f40e9c57203883562f01f174070ccd97", |
| "salt" : "", |
| "info" : "", |
| "size" : 42, |
| "okm" : "f94067eaf6df97baacb1b5a519c259b7e9b9322d6da9f71e976611cdc6e7007eadb1d6180ec1ade0bb7b", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 36, |
| "comment" : "", |
| "ikm" : "e842a4fc1a147cf2f87de9bd5a42fce6457496f7", |
| "salt" : "", |
| "info" : "", |
| "size" : 64, |
| "okm" : "380c941a86c66affb4694bebec2858c5c1927a6b920f84a6a952a30ba215bc41948c72e90a8017eaa2033d149fb955a2a222c5101eda58c3d7667cd7764f4795", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 37, |
| "comment" : "", |
| "ikm" : "5b870ee1bb97ee83f67fa7335b4a0f9dadc80d12", |
| "salt" : "", |
| "info" : "0a0dfb2a6e051441678788bdec04cc1b63ebe1f4", |
| "size" : 20, |
| "okm" : "99d9e9b5e7c324f8fff6cd2a2152dc2411457f78", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 38, |
| "comment" : "", |
| "ikm" : "58ea7ab33acff514ec08f41e59c17a3c66c1ceef", |
| "salt" : "", |
| "info" : "1cf9e25bd70c5546ea7a79eaf5d90cacf754c4f0", |
| "size" : 42, |
| "okm" : "2e1036f7359a52ad08f987e8be907e12f36f0a3fe576e1e27365a33439b4ce23a10f6ce329428cc7f471", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 39, |
| "comment" : "", |
| "ikm" : "e8d20934b9d320458f4854e2442e2f0fa092f461", |
| "salt" : "", |
| "info" : "4425999958aa3cc629300c25ab15be8cea7a4277", |
| "size" : 64, |
| "okm" : "d1e7a09a0f77ae7dd5cdb8e568aa53fd4ba63688623079fc8df2a53c9a44275cc61b09091f5997d0c819f89803fb6c990dd6a599f00ff68ab379e7afb29a5b4a", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 40, |
| "comment" : "", |
| "ikm" : "dc9e488c684dbf0ac8ff1eefaa0666d413d258f0", |
| "salt" : "9afa7df500d7a17af1f44422d25a62bf", |
| "info" : "", |
| "size" : 20, |
| "okm" : "ded7f0b68046268ef0e81b03aa74ee58ea72b670", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 41, |
| "comment" : "", |
| "ikm" : "34b85c341a04cbade472b3f7dee4de4d1954bf70", |
| "salt" : "b066b42acea664350a8448f8e064225f", |
| "info" : "", |
| "size" : 42, |
| "okm" : "50f2b92a23e76b1cd51071d9416f4ae497a967068616d55aba15ac025ea56e21a4c63adf9c6b2696d9e9", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 42, |
| "comment" : "", |
| "ikm" : "44cc641e09f7d5642f7b6007ca5a1c0813319666", |
| "salt" : "69c0dde6c8e5bd40553a5981fad6ad87", |
| "info" : "", |
| "size" : 64, |
| "okm" : "b1ac58c93111b1e81191f88eb408ab179881f3bb1c171903aa335cfc541ece2f8ea7eeac2df7f86a7c2d867e06a9173538fcd3e38bcb99128d76887e8ffaf17d", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 43, |
| "comment" : "", |
| "ikm" : "88a8880cc2b73e73b3b6ca1d4902caf2128732c3", |
| "salt" : "0579f690ed32e57a26701a9f6877f243", |
| "info" : "6dc723df3d26f704067afb2fb6d95a66516d089c", |
| "size" : 20, |
| "okm" : "43c3e04295d525a0dc49591dc27e4f75699421ac", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 44, |
| "comment" : "", |
| "ikm" : "8408668b9d671121b8c7d31113f045c0d7c020fe", |
| "salt" : "679b30e6930a8ea3f076e317b9595d5e", |
| "info" : "b4451b0f1a217db703582881e86d8044d5f2e092", |
| "size" : 42, |
| "okm" : "22ee54eb05ea001854069664ad1ebac22323b0b79b6def905942757d1f038a63e74bcc61b00119d3635b", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 45, |
| "comment" : "", |
| "ikm" : "e6715cc4ee13c4d999d8f8f500243c321f70b0be", |
| "salt" : "ecfaca2ea3301a992b4de081d9d3a4cc", |
| "info" : "ef17c9227a5ca654fbdb35dd00dd6dc77b6321de", |
| "size" : 64, |
| "okm" : "9d1ca84928eaf8cde23028ae306389313265b4380cf85459602d86eae08d32fcad2d6ea589eddaf95545adf856f0fc46902d7ea0656cecedb1cbf2191ac66a54", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 46, |
| "comment" : "", |
| "ikm" : "9a6b88f3f68f5a8e79903b51dcd733abaece1a41", |
| "salt" : "0226df3d66ee3abb275eb39c8ec3d3e12e9b87b67f85c552accc4279ec17", |
| "info" : "", |
| "size" : 20, |
| "okm" : "e15666ec2261badaf8364f4cfff8d21f240bbccc", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 47, |
| "comment" : "", |
| "ikm" : "0b9eaec88b2940a4754e83272cbf47fb6f86aaa1", |
| "salt" : "c1616497d49246400ba68242b635c67515d2528ee1c3b71b318b631f9bef", |
| "info" : "", |
| "size" : 42, |
| "okm" : "86aab917d334ee079d50ea3e20ab243f06e2e29d2475591e88e048f0d3204cb8a8443671724ad11e5e20", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 48, |
| "comment" : "", |
| "ikm" : "c4717276e7c7f794c4ee333b2f7a2ab244be9e8c", |
| "salt" : "af4c63e5b554063e83e37bf730ffa401c696088ccc4f133a8695ffcbf2a9", |
| "info" : "", |
| "size" : 64, |
| "okm" : "00153d105154d1086f950d7829be7e0d75db97441c88b7f31431f04884dd81b8f4ace2f5be6846f0da1853a1db2f89be090d3453488a12cc052f3234d36c4eb5", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 49, |
| "comment" : "", |
| "ikm" : "5e43a900ee0d432c5fe6fc81db8d5f81a54e39df", |
| "salt" : "8cc815009350b0b6a924ed93e73c8f8c57a1105726663b72741b67209c1f", |
| "info" : "32460280e60910b10abee2e9f80a3dab48acbc59", |
| "size" : 20, |
| "okm" : "883561d252df369074fcdafe0cad379653fe4aaf", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 50, |
| "comment" : "", |
| "ikm" : "070c170fca600aa2b23618150ab9044bff7d4dcf", |
| "salt" : "f32a1cddb32693860eeb39a5d190f5667a303d5403712cdcebb575c6563b", |
| "info" : "c1b0971fefa0a23cf4b7185879475ebd8d83b9bc", |
| "size" : 42, |
| "okm" : "ddc00ec19f76258aad541e0359465fcdb6a036fb4582e7d283b8ffda0b73a8b1b4988550b67a9182c227", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 51, |
| "comment" : "", |
| "ikm" : "87a23208df5e66488d23f7aaa066e87bdced8e2b", |
| "salt" : "0488ffa08062f1fe83e9c3934f5688a2e17827f898aa5daa2d595f09b245", |
| "info" : "e4d66fa23a6020820013d94d1f8e84a58cba2a82", |
| "size" : 64, |
| "okm" : "fbe18cc5a99e747477fbd7ec3c7f9d65eedc9538cee9a1aa81b0b3b1f199f5f892122734fba185919a64638eabe2c6932fd96270116f55a411a555f5c60d5ceb", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 52, |
| "comment" : "", |
| "ikm" : "214746af12a669b726364027e9a1cfa40c18f8e0", |
| "salt" : "f65ab21816c5eaa5c9ce77d58608ab67176d2255438096f4b45779d15c2afda12718ec557bfe161e7fab89ebad4fa634cf73f2d12c884c4583e64d2b59b9d8b9", |
| "info" : "", |
| "size" : 42, |
| "okm" : "281c2cce7550a0b02b170cea4985ee34666552d219b982389f1082746d4524cf3a8edf13fde8f5d2cecd", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 53, |
| "comment" : "", |
| "ikm" : "d509c509f91d78c33b9d661e6df1992b2b6ae429", |
| "salt" : "95ff4b20ade46bada320316dad7e2b4286e93dfa2a72c6366c5ddfe8ce2ff344729ea56416d5b53074c6d6c4eb4e4873980e5e4a4991d6b1497aef822e16e209", |
| "info" : "bea4f60eff1a0c6ab664ff3db2f774347920a482", |
| "size" : 42, |
| "okm" : "6a800418892df0663b4469108eea9f01ab66dbc7888da7ae95b05c68f61a5dd27b7a7c1857f2fb6c1a99", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 54, |
| "comment" : "maximal output size", |
| "ikm" : "e099aecd5c8f0fe1c5dedf647c5687220faaa64c", |
| "salt" : "a8febd4ecfa01739cedb1136c9a7fa10362e8f7ee6556fe0e2dad1740e1ed44f5c95b6ac57aeaf509af0732c0b0390d4", |
| "info" : "0e02ec03576474c1", |
| "size" : 12240, |
| "okm" : "43fe9568d5423d93c5f59789319610e996e82ed97aabeb896d88e92614faf45df0fadc3cf496368a07f562eb8036495556edaf95b06d89f1c095da8c18003a20ca5fbb28891596680b3d9e5518f012142a1ff5bb52f4dccbac7d1db2fcfe308d8fd6444d187833ab9dc603305260604d9acc4bf8bfc5ff82d2e4f3bb25a4ad92c30b9236953e096af57eb7f4ac5aefd447f244478b1576ab7f95354f8d2000d986c607e3d1ebc900bf80b4d6cc013ae122a0876191f287f5b5dec28fde54e66858b9169ebb45529ea1c5004fef0aa85a5cf22117039798a30f2f26fe8623c8536751531f6435cc77e0ac841b884f586509e80e4ca98e3260eb60701aaad62a1a4814f4fba950d1690090f0190cf0927cffd0d3ef1b45a846ab9aa1073036c177eaf86d9f4ef8b5ab0fbecd76ee5a293c5f7843a2028a468a952b0109d720d50afd649306685f26ea407d7464e505905f2383460f6b8113923af6916f43259d83bf833cfed074e6a81a997c1a7f8f2f6eec413e3a3768308bd4292dae0d3452619291ab7f3275333edcd39ad2a390149505b6b02d7bcafb91a1185ade1834613396c63eb00e8126a14332205d7c59f39fe1aebf49a46f94bdcc56e1ae834ba06cab4e9a85bea8f4635b3bf6b332946ae3983dd9ef30773471f6c9d5a604efe2d32f4f40f28b9a609db8e6a3049e6bc961b6aa685d7a789a45cf17826305535afb67116447e8a5ca78813bb0e0978ac1a904e2d1d248c714b81fc1642421b43c6992b82cb457703df3ba7767bffca96143886d7157bb3c7a2362636a5f988e1349d57a10d6eff1303c8e3ccedf9350ef65844a173385cf4e12b3c023d99787a7c1a4b74eff2d8da06b6ae69cf71328fc613e68d408e7eaf3b9672525ee72c593e1131a72e3837daad27177a8480d6c0dbe3c61e6b971922ca3f60019e52d648c5981b1da133c1866e9a0fb953383f47441627bab17df6479a9c33547f8fb8c21e555730289d75b48d779b63f4555501220707df4b550a87f356455c516b3e519acb4cd3aff720c60181aa553f0a1a7ba5b2798f988f876e789ebaa32da2ca24b06449cebec9b739ff82ce9d0af6b20271492b53f8cfd00583bc6535f6a778f0a9fc1388b12323e631976ec6c7d69c5a0af7b65f9e2a1553b2104d83de01e98cb80a857e7e7339be2433ed24afbb7b1a663ca8b9b8b0bd21e63089b8ccf49c9669d0dbf6fd2973a0f2a5925e29574e99902d8bfb49193b929edb920d5772f8aae2334ec8efed4287162cf6a14dde23d325222e82f760cc8da3e2453c970c9ca819abcb73e6697a0627090453b8c6c471134125e96416c318f06ddee0824159a7f7be8beb817ff49bd29f2d4d333f7a69cff82ae84076aea16d9cc1bed38b7c2d598428fd0529fdc8082848527d81267511ef9bd420f54540e39c8d648983eb08b2710c7c6456dca567b936d4d55fd0e468a44d0bc469dcd386de6d063a4487e9a17dfe680a4c6c9bc0543152074e9405758fd8036ba74c4f9bbcd3d9518a853f55494960777d60f0bcedadacac8af588fdfa5b68416fd2a7a3c2337bf2c114b2ed39e4b23e461106011b5ca3f13b1d78d2531bf21fec33cfb9f4eb1ef7cca539ce1204cae29239c85e81caebe4c5a01cfe664b5433f95ff1835835068ba7ee15cb3fb7d69187a70e01492454a1b7b00bf270d53fb8deda6f3daab1b996ea3d6ffa3f4bb6cf3dab0d044528183265bc644fce34f8bd1d98cb093447a257bc1ca474f2d3181011310b0c912da67a640b8a7b06b499f8d1d77fed129b47e2685055b1dbe0e831c5e104d11f92a005e2ad67e34c47cf462f867d1d2336c0694d148fb4526ddac66b9f6153c5ea91ccdbff4d2589f53191fc49a595bfada361efd20e9190a5e172e1086df63f6eeb719723cae815b2e2ff76da9c8d359c604f79fb4134bbee3382cb4a2e7ee318f25ddf0097b0e42dcfc49ebdf3467602f7d02040f18b6ed7cbd0d78bc2421795a4072880787db163dd09fc5dabcc35dc557dc68bbaa6176c10772aa7007c0b838dccb22b18750c00a5a1a1a27fac1c4e2b1b6f3923ae004d3d03555224cc54349d2fc9377fb8ce42fc2e246d9c2f2634301018f96bdff0a1d671c0377405e83ffbfa57de8aefcc5de062eb18d0ff922b3a999d0854cec38b276cabe98776c93cc41b5fd345201e1901507fa1e0c1770061263f0559d02a36d0af81f25b9682b38cad3ffe11b5991b1e6967939497424e8320168bd24209d71b0426f1c8d6e86f0377abe4a97e6ac72c9f18ed1929b07c85dd869585e30a30483df52f28545a5068577bd37286bc4b6ee40707b88ffae61344ed7f5723f07fd772d70141ab0a4bc06e3e87e4289176cd65bcd634a2a62075bd759e90c524808909aff506908e659bc1e3b3714f21a9b5c0c28f4232c96a9abe26181b4b27c2409e648a47b3164a8a1c8914835de3cf7eeb630474506ec12585c2d8eb27d692c2b61202a646d4793499ec9217ecd4361b0eaa6514e5483f16be529e2a300f940c94837fc2c68a6a5a71999b6dadbeff5f277a601984cfb74f3659c9c6fd661fecb7a39fdadeb1be5c68ed53eada42deb182445d8def28143147bfba24d65d43978277bdc6137947d6a0ee20ef78603b22919589292fc44e7bfbadda845c626cab6cff4fb4dc6a616da9905f73e16a1b923ab545caa3b11a8edecd9b6ca2812bdc8c49126588ed67aae8066fdbdb190a76c84b9bb49b6d689353ff3dac753dcadd7591c4708ee130f547a731f6880d3e2906154151a71b558d2b6d94801dc7a569c1b030123cee2afbcf121c3868424ab76b0870171cbfa00c15a746f8560e9faa7a35d91b42394ead450eba96735a0c676958fe48ffd9732b21236ea54c9d8c666615866179467b01d3c4e86ede658a3d611fb51340608622429359c7e2eff5480e5d00e948f7dee5da8ddf5a40720d85449142d5440366618dccbeef36a8f47410c344fb9731f86a2ffb4e3706f337c2abe86fd5b0311178b40c4d083d940fda9262bfcf1712a8b30bfb226791a57e0b9138e16cb850182d395433129b96b921b10faf1059c081db4896ae24045c28f9b4b12e7997d52523e3e0cf1e519521ae529146da05bc271fe8f2efaddb82dce5166ddefc86dc790b75ba9ab9458a7e32afb9b4510f9cb419ffd2f92ca479d8e497b87681d895e6536890b9a01d2af13f2a6767b428878812f7a179fe25dc27a45316d9274f49c5510ab2495ddb946d7080aeec72ea81f9b391953d748dcc4c74d5eee53d4dc69269e8f4ceca3d4dbf416840a3b02bee2b4cab18b8e5e88ee4cab4942927ac63eba64f1fb59e23397aa43a0c0f99c2b27ad51a968d61f1c9784e7122d5e63771fd68f9e030f9c26b314c037abf125366b6f199d92212017feefe878f534b32e5f5b18fdfa2edccc85488e5ea4220e8cbe34a15a4b34f1d48291777944e7cfeaefe6d3c3cdc19d216cace0383ccaf7a6fc30c267f01a915e7d8d4dddc53f2c41daf293eb7100b1c9258214669d1de4ba149c37c3a70bc2f4a7cf15d74c81c3bc5f9976677014e4e08e1a23b25790e8b15631044323a26180db21c97a53cba0d5c5a8793df6ad413da4891b9ba403bc1c798fc3bd88435b7170a2e065ae2055ef274d893a0b4ef962c9d92734032d218055ae5be5632f1d3234bb0c4fb4dd8eb2e6bce4fcea9488bc6d59259d99f273a9d76f8fd017b50d43d2d59c7752a26a94ea7e530551bcc09113becd2cfa052ca28e8ef8dbd535a9f859293b64d29a08a01e9b4ad2e4f92c69eb444fe79474a42855bae22d8a38fed765a13df2cc703d59564d55a52d6d3832f1ccdb7ea398934d67fbd4a5584b85b9d3fe2f1c06d76e1ac39a51e994e6217b98d608def8d2c3466bfdb13237ab93987a706ba8090e49a3acaa52fd78d2871f19fec9bb719f7423c566bd34f27f621fa65275457585de575d2af76136698e7f110869c0f71365765d650d3f5dfa7d871be76e761da0e533b0cc1c4acfff0e2ac5bf66c80752520eeab83b43da7e73b1e0c576406de8f2797a5003cdb66eb3a0222de073050ef2afb8fe4b18cba0654bfb8e03b48b78450c80c043df5175859320f5fca3950f226bbc5fc9a1bb25debd1aea9778ac6629840bd584f1d7f5ef9c711ae9f15830fa694660a0d8a890a5f93866ea78476bb0f1de1208eea7bf231dc0274dc496112de0138751dee67f8265dd2efca486a02aaf676e289f7cd994a534c0a062ffbbe1bf1d5aa9bd2b2ca1b864b1ab545bb3468acdb9e4394a499300b0579e475e70f157897f08dfff7fb069e0d72b361e0e5abc4486053ede6b92eadbc784335ffc54e5bc702b0fcd464fe947f29b2ffb4433369bbcb639bc82d3594666c672a57a596359eeb3bde01667d0f43869ff3d818ff715f402be0ed56517934a650f98eba6b15d002249170ed0409fd1fdb3bd241f1a160e1a06dc411e05c55a0d4fefa3b7b5fcca49882f6a83d4d69a23885be5fec6edc77c082456cfa013285979c1b1e157ed37c3c1d4f6bbae36c0f12e1cf82e18cdbf602a7640730f6f53759118aec87cc1ace66298e7fbc671da9d204568c44a0040fb6735b2ba7f1bb6d2fdbda38d04b1ae3ef796cafb1ec98505a3e552361d2950042922f0d649a68953c993bd7ee9cd7ddf2decd0b48213b3db80b640b5b6eb30d2ad36c189ad89d1556db9d016adca7ca00c42471c3f282113c0400cc2ab4016a629d7bf141395584b30c1d70ac53a425894402ab34445948d809c26390e1308ea54f412270f9a9bf24550243d3fd27ab142d0c309ab1511aa417899a123a8a0e2bbaba9758e959667d3572c60113461b6ae43c536d13762748e7ebd30e39ccf5717828038ac3697c7d9af55ed9b82befd8ff67392cd6365419fc7c8c89edead81580ac50108f17ae6b3924221e4ddee45d873de3f024c24838f4723dac9ebd14deec8380682b3a62bae71b44d0d34226502e869cd41fcd41b922e54369ea5cd3c95254d690001caaddae3fe16cf2f44b583c5b8194a2e3a3e09429f8fe6f5f28eba06cb242946ee4dc28f32b7025a05b395ad5072db27eed26ca703bc29325d1bf001d21b26b1cc744e7d87aaf07669333acd066ebf0f27c05631ab204622fc77a06741d5395e42d7ba83d7d59b386aeffc2d93170920adc3066303e1e87c75058a7fa3656505dd4d0fa29d970d5f5220d8618c50e704b03ec5e544ee8b91c028d4cbcc8fe1a52e1c15abbbb7ca810ce45053606b5d6ce21e8d8caa7d496bee2e40d36565def4ee5ff9ef0442ffb16a16998c1c43096dac816976df6e39940cb9097bdc469a567552c485b0e5df1c40ebbe41a90c6df1f6be3754c3946f9e797b8be869fbb195aa3748592298caf24cf0deff33d61ab2bb0b805373df982aedb81a621c58bc664b79bf1d87b298cdc5e5066743339c1f3efe110ed24cfd6655e1d9a3fb243aa4d26dcbbfd7665fe5a090de4be79019786f561a8292fb4434441a68e17edf77c464dff50b7cc5ad4799d43ebb51a23dea7b760d626d041c8bbb96aa6b20e66260c0fcde1e78cc59a5a9ffbc5b409a974c42abf165ba591b4299c3e86ef331c4f71131bedf1a913eeff92da531971698c8884a3f33b43622a9077d118a77645558202ccb437a347051ceda13f2d44f63c24da270bc350f80cbf4ed02a16ca9b5eb75f7e8511a64d16eabaedb6c5a7854cee19b54dd7e37ae423a84889f8f926b5ce07337c023b56cdd09a9f219419630cae32decca6c26e52ca35a90c2e258330982b9896f6664c435ad9319b895e92f310292f3b7e575ec624a65f9258ea6465d5d074d730bfe7d6b19a8d7071a133778cad36b890117f9e75e2c3e755d82756e2f664851f32bb3d48c67a2db19f29a307bdf9b05dce5250a4cb79e48536584b0334cd0f60c256c1d5f0439a0c2f0b44fd1a901a34603cd4692e63439e3374a778f6d7b6186f5f48d7900d6d227bed0b5ea16e0f6b9962adf944b31ab6a4ab5a6f41fa7be2fb605ec181db786f88ac981ba03333f287544e77bcc2f1ff6156099e09acc0a7530a0d7f5e8b45ef6eabd288d26ccc6abe9649f49d4045bf4e6f5e6fdbb735773f58b8e23a108c8229802b20d1252aed2f049e04a83be36406386919770004858fd1133fa4d8721e5caad10ddac2236adcbef269092f2734a0c84be8c55ed3cd42c1920b44832858aded480cb8aaf5104849d67026fd583cffe083b2761baa445f37fcc8205078574e9a746b31a732ff50cc4872d7e0265892a4d7c51dd509099d3682f961689a936e2354e0c4c49e57883b7f8fbb4901e9a8d426d4d85cf7e6280523b372309cde7628f993a19055175f3d959ac2e162aac22b0d4063caae9e6db1e63a866e59554f7dcf887388cdee8eca6608972dcd587a652bb3f75186c44fa32d1cefc4bf593b5c3fb728a898b315f3483285283012738c2e9555ef6dc22309898cab2c6dc75b54f3c1410948cf6c37b6127d89ff0cfdd6b2e512d7a8b150f32c15db6a1443a73907e3c0fdcaeb1df2162823f88dc6c526054686dd57dff1c032f695761397a85181c8817c1bad81ec38230d731d285a0e116eed03b1b03621835cc9143f2a9eae442a7d70e818f701e0e885a794f2afbbb35c5c7210f5f28e356d684bcea9e53a2088052aae19b36870a115855a7df1db48a55a0d3f94929afd81b7dc3973c4749904919a520d7aa664957990ef92a82116a51d5452043d051c29ad36a1c4712c56b92048ec4995c0510abad4f84022eb00037d52ac9133cd1c1e78db7bc57776342f53790a8eb22869eb0868804b753179198c463661faecda241f6c05fdd5236fb802689c35e45087de051f134bc2349ff3ff9f1ad3c33779e607e04478b59ff4b74e4d11cd99235259ef185e7d9bd262c935204c55485b4407b58b21cde59e43d5ad6b9760be9e2cafc676164f99fa909c7b50b3b97367d824529f074c7ae0ec258245be73f4e1395a8bfcb0fbe2f10c90d5b912c6c211d2a9d33d7c0fb31a6251e8b5c48158b81e4ae5fac00dc898eeac6b6b636660a1087f87db043d0ee0ff9a4667c14e18d886db31a5c10b2b17cfc6d97673ed5f7d72b9aab8b0d8ad5fa66ebf32422431dd8783024c986942d380ec48e3e0e0c5faa94355e2093df1fdb027e8ca52d2b997dfc77f005c2cfc331c401a0b00a013b4c8b3584adac06c28549491914366128d6d2f59f42f9e6905bc58a9253df7b95bee53d40264d9c16ff36d880d1f6e477ec09a958ad90ee89464cbb46e7efaff67426abccac3e05c6ff5e6c6f278164d26e623abe8f9d376e9285a80406cce1fc4de26fa8af5311137fcbeda51ef1767a2ebc76755da10818e9a2bbbb2ccccdf5f72de6d4fc7327a9e388e722eb213b85a9be3bbcfe119137e9c8abdeb72bd8c4448b68314b754603ecc846eeaa85f979e6737e325b0501586cba6ca9c2bac24421570eaf9ee6c897689e8130306df9a10436b50d017464419d535c382becbb4da5071cffedd10c902ce0a7a9e181cb0dc775924c66a516c5effb438cc754c9ffa186598153616ce8858fe534126800f1ff9df6116d1dff074736bacec45420494fd0455929c2a33cd7db8cf063e46772b70eb996bacbb7aaab75eeae21944041ec35a4c8564dc1280d6af8b8e598f8f5bf5a422007c3145b31b8ff3d374b49f4f63e219534f26bcf88b6eb10cdf0bf824e4b115997424dafd2e3f967a51a21e7bfcec437b07a212f355cf1dcb337f01bb029342605e3ce90e6fbdd41fb56f516646f4fc9bbebb650057c7f62610aba4ba2a03d572e08ac97769804c0dbce322e008a207f155d93a1bd949aeacd92a6fedd76b1c11c75099ed3bbec327570534134d5e316253fce81720e735af68ce89e8b1671ebe2aaa932d5568c530d7fc9aad77a09e0ebb3c7c72e5feedac49e653e6754b33aee3d8306e4943ae95d398c0ce227e87cd4ddf973346bc733e2b4d7906dab53639f138acf5bfb700d299cbb124c2f77fda5b44a832f2f6740f32c3fba0becacc4c579e3ffaa086d4c1415119691fb855347183f46f64718c6c5f45b167e6639506675fa0c22cecb539f2926b793dd730a788d87aca9abe31eb210b5abf00133238bb1222ff31efc5917f065130f6991b59a3ac4f82924438ed576665a096a5adada8b3e3842be65b1ec1e636af0859fe9ac1bcf3def535a2ad650c428c514139085a6189716a0bf7c3c8f7fa20858d81985213faeb96ea1e4a9ed39a629d2537850fb56052ba7aeebe7fb5f355e4fd17e6d452c94f67ce4bf6b2fd4e91a8a1089f689ad2c1088bfd38d9dc71750cc5836c5cc4630d48f2d9b237d3d6700af559c5f144a207c625fac2db4dcdf03a157603daf1c1cb5f76afe0fcfee609c1ec602f20ffab7fdb9a6f18e9df3cc75e9879c029ae69677b9e4f1bb3555c2f0bbbd8a398ab3004609707fc6a3d062d4b8c4476b433bf273f2d1a8a5193981ec52e4b8361811f0d7d9bbbb4ff86fc04a1d6c7b3cf4753405f12c0e0e53c6d410aaeedbb6f8a1604370d354be1ee0929a90e36fb4e3e5bc8f8491c7f1b563fbdb66296bcdef1d67129ffce4d1083b527710865730370282244537ec059962e4e48286830c89feef9d20e382b1de2cd0875bcd66f6a18b0a27b261b4aec64864648971e299b019e3a8f6b65a2725af4caf7219a38182e3c058d775871032a4ea80795b330e4445a3099e067ebc01461cd439f77f9635517e55cc274304d4a0c222299773d6b2a24c02b8271954b797c370fb3760d3f493f886cb3f4f7851c35ae22e6d531cd339daece8984188cc85848b4ffdb624506e1560fece36f9e2ee27746ef5f1212822f8aa917ff17504457d054fb934e4fe21772636d71f9e255680a9da2c5a937d16a477e1637562bd1dadf402cb91f4744dcf16733bcbad47e09592f15e8c1fc5f0a71ba9d7c9e9bba0d4f807ecf913986ecc88c4c3571e5bff8ad314585b38d265a1379d1f785c30866b2ff5fb42ed869070785f3fd5215631fb83c9cd909a996dc7e957e1b253138edad231c1e8da892733afe567e6e0923572d57ee6dcb13d50a5b09e32d45319dbae84d93b7e2987cec9cf4da686d823b09432f9cf09adedda9918fd1aedbcf06b0c6753d4dfd27797044e93cac49d04a3af016b2b1c553e843af640274a2a06840728c8f0c26dfe8dbf06d1c1866dd290eb45e1f97ee617054499b461e054883b1ce866facf11e001027ea9342941eb47c3203c6a40457a4da350fa2f454d0b2000a081f86ae7f2fc5aafaf1a17f22bbea02bf3822dad0723384d4a08442aac709ee43873eaa1d2044e98e952667c2ecf14c754d642b2810b902a8ce8784a54f37fa3f4cca6853fc49ddf08510d6f54b803a48b4e0dfbecd70af80e74cef54d21341476b5d3bc8be46f2c4222c24524c781ec698dbaf4f2fdee02f0a183bfe82c1b743b148b17824654e38220a187c74cd4dae0c45056a446950ac7886ee71d397c2b46b07ebb07979e6c644a7c6bf1f6f94597a3b8bfd5285a9faf94fbe7e13cad9802e9667c031455ecc4e4f33cfb67b9a7e2bb6cc099316e9ad7dd7bf1027d2de68c91024863193a70a6cf900ad60e1da8c639af32a0542735deeb11294169d0bb10c4811daf7d2715f89a9fbb4904f823545747f291b977e2b4c2f825953d39b392408166ba8f58e8978543c420cc33f3c3b99cf28c9aab2a891f44ac28a6577dac4b2abbb71634b9f1f098836163355f95c9a614a913405f2fa811593434644eccbce541dc59a2b2cf76f021d82fe5d511a3b6d2ee80b66f1c1d5aaf57589ce3d340afcbbd09f687921725663e4bae152d14c6a0d5ac944c4194e94b0ed6042aa1c0084cb95111d162904ac9bb8ec2bd65b62ecdcceda8bb937fcf9e2f76c2e282cdce8b8ddeac3dab93a8f08c22ced1ca8c230e0ed34f488a20545db5e40f50b931380710a1390d24381a74e6c872548587f0d36c99d0bec08d8ef60f653e64a3aea222ca5de85d750e7cdd6a92df38cbd3f0127e971cb477528dd9639594210dd69825d4b1d6ccb16f3c6945e7a27953c634f3be93ed6a5d5adc62f58de6a34404ab0f154708cc98e031c621784bb76daf022cf6c77f64b080409022dee0b0beb40135f8f8c094798ee83bdaa0f414f3254906c3e244340fc5f940f322fb02d4d1d9c7423dbf1f0ed2d009644ce689eee320e2926f8ca4c360180449705151be7e2c41b1db926c8878b32a46c3ab42e96f12a717f2df77f61a5790865a18ef45199b0b5b21033061e532a17f16a7efb8884340762eec930a02808b9488e080c0c7f86f70e6d245eec1bfde72751918336104947935b37368db7f81958e6856184a0f1be47d6c5ce5aa15980fd226e1dd05cf0c0db76ed9dce2f1f2801fbcc7a2f4ad23ea273740c17573834b9e92ab2368e57360acdbb6fd97887e2600d71db902c3feb4318caa4ca35ec2d02e7b3fbe3378e9ac98286961b877e2e6f0322b61d2e43989cd846085de89635e207b900e369f455b1519ad035f4d66e4a761e1f8438697f3e6743143931e53d1e0d3f5a4b96f6d0762d26728a067d433350b6506775f9e20669e9bac120a02390f2032dce2600aa4e20fa2a7d9513fdbb4c105a9f6a3cea5dfaa19cf7da2edc5959fd5b7d4bf8d7792e0f5d123598e6ef45bb205a1421899f95c6ccb888f371b5cb2c0eb4eab7241ea0d8c0521a4eba74bf6dbda1a4b7aecf64309fe785063958ae7db568fe89523a3c54c378e565b9861f4d853cfa19e2999c6b3418cfbcabad15121fa27f515717d27f197f46d60cb14985f288d279660636c02006a0721b819b0177566843430be4527d27a18b79c677df6f6a3013975e53865bac04acecc5c24c4e90c7179796d1de28bbfaa0542f05b669c2493d04713e18333f6ab5cfd2a3a3c3801a7313887200a757ae3c87ab7f4c1c79d5202ddf56cd0ef7b35a71618e761824274696aeec8b12b21f17d17c4a0cd03848896ff4cf846dded27512cc17eb66d59a7307ccf46a6a4b9ee707a096977c2787d86c4664375292d163e598d2efee1257ec6e5d557cda9ff687216a398482baecdc1fe402244a135df0b0874919794849e9da7c5a6863d5cf83fa6c998cb00c3e70462854eaf80774785f6fb55cb1215a04776532ae403db7409a536e931fa15f479e0f7492301c6219557b54882bc634a857d2f2b1601cf4d345b326ced91b40e6e500030d2cdba5901719ed395381e13ebbac90e80f66c4e7520247f07ca941846a90238735a4a7ca21909d858eb2af54f5f52128339cf5fb2af060f02d4668d81c98f8e14501b9edf0dd766cda58da7b6947499249f6c4f3eb38a56457dcb70c5680e29992d36d8a0045a9c942136a9eaf134af71434c5b9c0d6a2820a365605f7578c48796f7e4de9600d2eea8d43d37714461b4412b306c8712e517226d6a190ee73ce529a3b284f69b6eac34dd03a68548fbc3dd7258a26fe2ddbba69bdcf654bac8b140a1b2c3ee788c539d3da52addb21b1f3e5af8fd594ee1d140746da32f5e8c64f9a9643fce278be2cbb1d1702b033a58319eb061c7034f5ce6e967cc9de6451b33a5b0f95f2c11417bebf02cbcf3913628a09b54c47d60e3dc15445c1d430c9e76819948e88c476d3fc8bd3afa506edb216773bc2cc2e9f87b410fe6fa9d3d323d185fcfc1c40943c1dab531bd0e8939c80a75470b012fcb4afe6d83a32b85c95cbc746c47168da969f67c4b2c348da9e3c6da46882188d28143dc6f68d2f0c106cecbe327091368f597549e027c9431899510bbcddc682fd41777b8a497ac627835c7dc97fa1ce161d849fa05cccb644b0bda99be6ef27a0a08ee6a3b0e61bd1ba0ecaca0f39acdd09948cb09fbf9fa686c535bb0a7227923522192ce2c8611f45aa2850745ea6572d167ab450ece7c982226b01a0359ca4518792e26deec16211ce5138868bce7c4cfa6129ce071efb7f6ccb0e99b848ad3a586c2ad77c5e21d4007c56787dcf56ca8f910e395434092e80273be4081241f02649db8e1a6a5757e4d213714089aaf044a2ed0b181a4c79d48d529eb0edb79dd87a2c9366da1b3e0960860516ceaaf0889c2c2160a5818a13d682c8b81ee3318c5a33ca0359a2d4b69f60595ac0b19e2795e0ac5e6235b7b7fa849d1c01682c01ee0c84bbe5f336f07c671db9b239204fbaa6874723b780196360f9a4b8b7d6d7a4bb8d91b5e620e901cf4d23a2111cec6b4e2882637886fe026ae2470f0a86a6422057ffbd152a9490b572d48dc4c93c9d052ef1c86d5704b4b04709e4a7a59bdb2486b3f2d0b84d31e44cae3d51e9efa35d97c8070678c76376bc4a9b6e40884a9ca5203c69e18ccd0140605c5551151e5ca037deab9a5cd8514f5515363228c30cac1591ea6fb5fcc7957a7ab3ad157aedf0348008cd8add6474f5e4d65a305cba5c01c2f5003af45a018c0cc24f07683e907013cd09dfcf82068adbd68521319a2c6661f495ee3c164334358af499fbd225502219882d7c7ca82220e83fd9496cca4f18a129b53d490254475e0332fb949fd8141eeebbc3841fd3478c4af60e205ca43ba378e42abce20fdaf7dc4a9491ee8d3fd74ec5f6e7e9b2e6467a452336bbda0d8fde7ce783d973a9e1343411746f7288975ab20749d7f75ba34ed496e597675a99de38db3a58eec2b31e1ac9ed1fe8512b33a453d98bb1bca29b5784264a18d4a51700685c69706800eee7a27c17e8536812aa0b5ba16ef8622ba0d42334311e054166ef6fa843c09ca92402510849375c209f2e7afbef5938cc7a4cb194b488d2e42b650f559200d0f1d2f087a3d26cfc4c9d13ce0d83cc2ff35b3655b25b2fb8064235ca4364495e0fd017eed4f854b8929326e8c68b985b1c330ee05fd63b063f58871f48e25218798be5700b7313967572db57125cea82d3e4a366f559ec556ee116b19144965574f03d3596bc56431fb051a882f4d61d4b9eda13b96c48310609f1bf7502723a0b4574ad3f6427138151fc59e1cbdd8bcde532d41459b42f04a0f99623f9aa8eb33ec591dcdc88b026753515411bc8ad4ad75530cff0e4da879203c715fae5ff628546dd5cb6c365afaaf01fe0373ab5f4e373a8b6d0634ff5db6f7da3fcae6334bd7887021e687a8187be9bfb64b4c2d4bcb0907cbf38272945e26ffbe37457efa4799ebbf271df4bf49b70254094f14065efd2136d75c19485f32cdb523dd68f04b2e17fb0b63b10b38eb4d219ea38b7e95178a6c54b15ef70c4f8acbc17f487ee9a4331ab92625b544f74c80ef92903a524824ec3029489a93f9321f8160a80b551d764329d55ffd16b4b2c3be632c9733dae71d16d8d46bf1222b33b293e9b218d3e6c1d55c331966bdaa2ab822c1cb1843e83f9cc06df7a207986430a9fde3fced65ef1591541480d45acaeaacba1ccfa40680a8c736d8a949ac30c10f9776fc584c7a161e51c5f20a523559d1ba2d96834fbb688ae0a1cf5a64a95e25e7eece6dd512196115d8d0e01dcbaa9f7c6f23ecddec8354464408857a61d11b349a550dc9cdd52e536bbb8fe21f9bac950146c54f8fa1bdc855aacaad455a9d86db792c502712b32855820b468701c22108976758f1a4b5a7aaf09934e81687e02c1bcdbe99dfc6f6a3af065c817af159fc337bce1078881f72518cff30d22b2029cb01c8fbe012d370eb443d3116e700b09dd9affd7db12dbc7931c63a44cd95c29289bc4ecaf9de37c1b8b70300daabd4fc9e0c3718610f63cec51217150544449cd45387612462e04b2f200149424f5fd9584dbb6b32a1397c68d89b3e4700d61fd489359faf812dbb21e4e63de0c810dbadf84c9a90d18aeb5d104b689e901815eb49ed249f921e7d3218cda3d717c9fa39e07b40d399ba6b74eb030d5abb7736d70eb2262e0dc048402a7aecb30ce6a077a09b50c3a475fcac29b3c171b1cb8e01dd3b8d4378aaeaa9efa431de7c2fdb097b92c8cb7942d204a4f3ffa6832d97e784d2e5225a149d012bd9932397647663de738d3fd805d7e735b36f375c1a26be760e96198bcaa0a22a50c16d2975bf00228ba35f6d76734a182e0efcfbce1b174270a5094560a61d1376b39d8b8f41a9bd57e1665248c13dbb0e39e4ec776c7914d62045821482da7b9f8da5f7fe87e94ff93f62c1dfb84ed8b38d6555d3129248d5520da73abfa37468d6c39b795271e4e7fa24249fb8ece5235386c7a0d9b149e6fe6b296cdb9017e0724f3b34da6315624717b13dd43e7a80831c9edfd7e58aeb136de554eda1ea13f17a6943dc7f946535f8ffe95329d3923d45caae98c7dbac64dc5d0d1c62176ffc42e2dd184f781a7eea698b9731d5ae3357783a838918d562c5436d353ac241b38fe6e6c045981ff216e9e4f8769992ab3d27d462944e2167b0a27b84d083fe5bc04db1730780004d03f9862a5b27b9719623d6006dabb7201cb763f20d29f16f8f80f2506bbdc2448483fe9e515af8fa4e5c199a232429d4882e64f07e90ad939066c60e23c2a9bdf2b875a490b2556b1b4966feac8cbc212d1d4ab24094401b90b733578d8be20e03b9aed8b67b14ec5744af7d0fe6cbe490e689969c79c813344a07d26c23b18589b040688107a936bd30b1ce7dd6af62a7d33a8bd287dbdbf34e754dbfacff62d05fe8526b53e0ebd8b41eb442d4416dbaa621ed9bbb97709f08c85da603d39d6ea42e6465e1e4f8ffe03bfd0865b6bf13755a61b3f8e3937d917102497c77b9b21a3d67b7d393f27753369f6b488eba203b80c7ecc723aaba839c3957805429bca5b159daa39739fbbe7e32bb785ccc1fff186f85d842e2f22a7a9af3ef93739b0de86cd56d82e89b2fe82489d80553dc4a9e55f28af51e041a13eac68020c17093394dfafb75a79aad21d9034cd3845167b0fc5178b4c8015d7328525a90b64f310ba6668cd5f76c25cda4ed34a4a16158b2cea8317337214a7a2fc9959b54814abe77729faca87ba2db39934480e5e988b2709544564092f57d95a5f8dd0695e1e06e695e371737674e6bdc18acd6595a970aed7bd236bbd313bd857cd96148200d81e04c9e7f5419d4be68f3b41dc8ba8392614eb3170bb5a42bbd01a842f72f3be740d77fe0c5ea41b84a5065bbf97fb429d9a4e33d0d5f8a76954f46ab9d1e15422b29ab283161e4a608292531bff1e15e4b2a77d0ba49ef863f5ac8886dcd5938c3ecc8c1060d05ed917c03fbb316d975e64c5d869d82038f9cdfe960e8b2d90809527b75872c205b49a4f9322784a0f788affd5ffa6877820e96125f8d865c7137a04a4d75add2075c3d739193d53c2e018ed2f37a428e76f68941eed83c1dadd95e05ed9b9d768ca9ff6fa041651c2927e7a445b7c1d3766b82d864d3ad56bb2cc8dd35513f1f6aff6de7e9fd62736ad7d742267be35bbd91b0f06e0d2bc395f4d6199421e83ce840a31caa3d62a2f9f94071fdfa4320d46f3612646177c9cec0d1cd5def90e01d1b82a27a22d0b1dca7c383b9aae588ae7b363b864a91871d737252e973f4362f425a8e422889994f4cf047e61652e94dd71e2b39a04664758aac55d17a6f3f26abe24b6fe9ad5e678591adc1ede8cc67a1aff4ecb1463b727b54749ef6c7c7a4c17440172be36e9639098d561d72d4dbc6f2705646911d603605a342ec1984a5cb09930da7ded78f96bf44bfa7223f6ff2cf7c262ff2603160b07c0b8933e2ddc82a0bf91788fbcbe11552550ee00b70ea47f4f569f1013461e047a57ffe3a222dbc5ecd28c95125c3e09b8c6d360043ef40382cca645b93c1d0a2496d7b8ad3bae37985494637a4001d6b61aa7d5cde2ee7af14249b9ab4655ce5b76a529969d7f5ea6e5d0045585e28ec6b91781598aec0e386b3cab3640a69f4cf710b700d3a4a39906b481a91b804072cec90c616d3ad6d7bc365591b6a4e85baa1c2ac6d923518440293f2eeec4c7ad523e30686f24cde1ee619d86e15f4dbbcdc294a315ea7b0652020c10c2189b28028993af3873dee52ef4c8cf7ce4c97457d775ee0ccecd339b83196a7da32fa91fe00db77a242f728f2cb25b91a03a7933acf525a79c63cf88968f78ec078810a5a60718222fde90c09938f2b0b19ce269b3f5123e61418a7f86586af4260060208b5e0a2ece6f01e955ed827da6ff33f93570a6fbd79082abffdb6f45192d7c2e3d4cc8ac868d284de6843b403bec58bb3ee3570fcb6932ca3d5e0aacf4b1c7ea785e59d4ed10a43e08da8e402861ac9bd1e1a110051ed5282ab2016a84da4e76ed457ee1de45423f56f41281174bc897736888852a5f4a01b4b796eb6fecdaf8584ce1d982ad633a51cedaebf602ef3298ea9b63002a21fb3dee97d89ced945572e37c1184a1813895b23e506a8c974db7e7c6f5fe3fa8dc22816a982cca48d052c0a7d8ec4cd37acb86a9578518e9065c61860f3804fcfc385e0a7bcd772267b8cf366046a61f66c19aeb501cb138793b0de11cdeda36846c6b76a5c2d7b0d4b2f7a7241b2f5bf48d1cfcf0a65b468ef307e55f60d0289be6f66a5c36fa4fed684ddeb97b0d85ac1bb7335c145c35c070b80518441251dafd98a796d1cbc464e038d53aeadba1447a7d00f6baba73b7d6084eff55eb4875c8e16b80c1260a1c45a888801277a4ba4b725a4d5b7d715e133bb38f5ff98efbf07a248ff384badcdcc78bbfb085234f59a415f754deaddd0080d08e1366baa15cd0ae6a4dbd258069a7d328c76522624c78a624c166b486470c1ac977c0763386f307dcbf8f06e2c2f4cf4cde9ba620dda2ec703ab7041e3e376e9107056098709d7fce847352836e65d1af6ca5c1d879e24522b391760fd36643b9f7bdcd1e4028f6401e09187e387eda8817a1e230820f943b8b612628efae93022c28b4f35fd7e64156c77f47804cbde126edd4e3bff900b809220df97f9fcf61ec77e21936d990c8d14f5309807f7d3feb28479cabd370145b8b2d04cf6e29a16333343577e4299dc3f58183813a5e45b6dfc806fcb765c57684401cfec6c8df3e669931913953847e733c6b61d858b42f65594f165cade5384265664f808d5596a67b4fae95cd3c564906357d64da843a3993f344d4b27bd79156a1666c60ae9e1bc07c278d9e176e9fd8613592f1c99f4dd73f32cf2787a1a065a1ace9c3ad2bfe0fbc82f98274ac5bc561f426b5979309ba3fcb68ebecfb58f6b059eb9694236e635915bc0d8315ceac966b633f2fd810c42424c5ac887fda243f94ea535e70596015c4e2664a58bc7479f0c3d038fa8be0b62", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 55, |
| "comment" : "invalid output size", |
| "ikm" : "487df211f042c4a8e2e50a4929d4bc302e3584b0", |
| "salt" : "e01bc4ca3df96a1d158434ec7519550d485ec22d45f827c5f1f9c20036591089a8b6dbec705fd80266fac62a66c9681c", |
| "info" : "943c7f0cbda70cf2", |
| "size" : 12241, |
| "okm" : "", |
| "result" : "invalid", |
| "flags" : [ |
| "SizeTooLarge" |
| ] |
| }, |
| { |
| "tcId" : 56, |
| "comment" : "output collision for different salts", |
| "ikm" : "624a5b59c2be55cbe29ea90c0020a7e8c60f2501", |
| "salt" : "", |
| "info" : "5447e595250d02165aae3e61fa90313e25509a7b", |
| "size" : 32, |
| "okm" : "ee8362786c0c8f19b159b49c0ec33438929d4575a7a319a99386392ac07bef44", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 57, |
| "comment" : "output collision for different salts", |
| "ikm" : "624a5b59c2be55cbe29ea90c0020a7e8c60f2501", |
| "salt" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", |
| "info" : "5447e595250d02165aae3e61fa90313e25509a7b", |
| "size" : 32, |
| "okm" : "ee8362786c0c8f19b159b49c0ec33438929d4575a7a319a99386392ac07bef44", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 58, |
| "comment" : "a salt longer than the block size of the hash is equivalent to the hash of the salt", |
| "ikm" : "624a5b59c2be55cbe29ea90c0020a7e8c60f2501", |
| "salt" : "1a08959149f4b073bcd902c9bc4ed0324c21c95590773afc77037d610b9584806aeeeda8b5d588d0cd79e7c12211b8e394067516ce12946d61111a52042b539353", |
| "info" : "5447e595250d02165aae3e61fa90313e25509a7b", |
| "size" : 32, |
| "okm" : "7e060421904a880f28703cea5defae446809d4cd0b971272ba2cb78d8fd7eadf", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 59, |
| "comment" : "a salt longer than the block size of the hash is equivalent to the hash of the salt", |
| "ikm" : "624a5b59c2be55cbe29ea90c0020a7e8c60f2501", |
| "salt" : "466f383c878a617f0828bf2f86dac9f67b40e6375bbbbbd5615e7e99783bd265fcb5ef946f062250c0186cbe711d930b", |
| "info" : "5447e595250d02165aae3e61fa90313e25509a7b", |
| "size" : 32, |
| "okm" : "86bcde8ec5a2b4cb9993fc0981d3e216f49789936b43d67de83ba9f51fcdf0f1", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 60, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "624a5b59c2be55cbe29ea90c0020a7e8c60f2501", |
| "salt" : "af856d5eed5c77f4", |
| "info" : "5447e595250d02165aae3e61fa90313e25509a7b", |
| "size" : 32, |
| "okm" : "60a49c2dd255be03e3accc8a66cea4cbc919f957dcba8225be0cd707685df52e", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 61, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "624a5b59c2be55cbe29ea90c0020a7e8c60f2501", |
| "salt" : "af856d5eed5c77f40000000000000000", |
| "info" : "5447e595250d02165aae3e61fa90313e25509a7b", |
| "size" : 32, |
| "okm" : "60a49c2dd255be03e3accc8a66cea4cbc919f957dcba8225be0cd707685df52e", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 62, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "624a5b59c2be55cbe29ea90c0020a7e8c60f2501", |
| "salt" : "af856d5eed5c77f400000000000000000000000000000000", |
| "info" : "5447e595250d02165aae3e61fa90313e25509a7b", |
| "size" : 32, |
| "okm" : "60a49c2dd255be03e3accc8a66cea4cbc919f957dcba8225be0cd707685df52e", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 63, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "624a5b59c2be55cbe29ea90c0020a7e8c60f2501", |
| "salt" : "af856d5eed5c77f4000000000000000000000000000000000000000000000000", |
| "info" : "5447e595250d02165aae3e61fa90313e25509a7b", |
| "size" : 32, |
| "okm" : "60a49c2dd255be03e3accc8a66cea4cbc919f957dcba8225be0cd707685df52e", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 64, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "624a5b59c2be55cbe29ea90c0020a7e8c60f2501", |
| "salt" : "af856d5eed5c77f40000000000000000000000000000000000000000000000000000000000000000", |
| "info" : "5447e595250d02165aae3e61fa90313e25509a7b", |
| "size" : 32, |
| "okm" : "60a49c2dd255be03e3accc8a66cea4cbc919f957dcba8225be0cd707685df52e", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 65, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "624a5b59c2be55cbe29ea90c0020a7e8c60f2501", |
| "salt" : "af856d5eed5c77f400000000000000000000000000000000000000000000000000000000000000000000000000000000", |
| "info" : "5447e595250d02165aae3e61fa90313e25509a7b", |
| "size" : 32, |
| "okm" : "60a49c2dd255be03e3accc8a66cea4cbc919f957dcba8225be0cd707685df52e", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 66, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "624a5b59c2be55cbe29ea90c0020a7e8c60f2501", |
| "salt" : "af856d5eed5c77f4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", |
| "info" : "5447e595250d02165aae3e61fa90313e25509a7b", |
| "size" : 32, |
| "okm" : "60a49c2dd255be03e3accc8a66cea4cbc919f957dcba8225be0cd707685df52e", |
| "result" : "valid", |
| "flags" : [] |
| } |
| ] |
| }, |
| { |
| "type" : "HkdfTest", |
| "keySize" : 256, |
| "tests" : [ |
| { |
| "tcId" : 67, |
| "comment" : "", |
| "ikm" : "b18e35e63cc4fe4117bf2754ec3f9ebb5346dbb0bf6d4e5f2422418771816fc4", |
| "salt" : "", |
| "info" : "", |
| "size" : 20, |
| "okm" : "9e2d67ac4c0efa0b734570d7299b8e8d2fbbc5b5", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 68, |
| "comment" : "", |
| "ikm" : "236c2ba20c72242820f63d3e9c20633162c1cb048a45dea13861e8a138b9640d", |
| "salt" : "", |
| "info" : "", |
| "size" : 42, |
| "okm" : "a7d98a30ba3320706cf345f0ab09d4cac7d212c8337bef01419b054c10d336009e5636916570452d4b8e", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 69, |
| "comment" : "", |
| "ikm" : "f2cba42dd82acb5d2d569406815a3769b7becb13fa48537fa7d7d5e121081d39", |
| "salt" : "", |
| "info" : "", |
| "size" : 64, |
| "okm" : "558c7cd96388bd7f225afd1580a41083c465aea527cfb4e33a0408565708239eeb6797ba0e9f80f9655fa3bf2c7172252775ccb16170c0c31830c648617ad586", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 70, |
| "comment" : "", |
| "ikm" : "73d97f2ffde01b447a5b8573190a8eb4f87f7ac04482836143f780ad876bfffe", |
| "salt" : "", |
| "info" : "74d2301c5aca2441372cf6077bd8806dab3e8721", |
| "size" : 20, |
| "okm" : "dbff53109babfe9694885c6bc0c577ce8f5201ef", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 71, |
| "comment" : "", |
| "ikm" : "6948521434707e96fa943e44988d1ad409ec57e6594867e8193e9d727238916d", |
| "salt" : "", |
| "info" : "9eaddd1e7edb6b84c96fb5ac7e0d673a8f5084f2", |
| "size" : 42, |
| "okm" : "bd6dcd55a59713754ba4a26c55b6084014db2c3ac568eda3be9ebc55e67a2aee4d3cf2d19ce945555d42", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 72, |
| "comment" : "", |
| "ikm" : "b72b3854923b8a0048497a86bddef962552c8f6b2c72b2b2006a1820fea5c6a9", |
| "salt" : "", |
| "info" : "113b708f7522ec3b362999db18699bf7871e3b8f", |
| "size" : 64, |
| "okm" : "743e992e2d0ebbf94c6b901955270f1cbb472fee9ae645e128a941e62623c3e0f484369e77bba1f6ae485fd23b6ed2bba64ca25a19d56715875f3d092caa5698", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 73, |
| "comment" : "", |
| "ikm" : "44d774def90685c0e9a685fa50fd434c807d1a57896fa42f91778821fe232057", |
| "salt" : "0d7d3b47bf8484c8adab7f9c27c9584f", |
| "info" : "", |
| "size" : 20, |
| "okm" : "f17c54ecdb9769ab1f2c7e5ae6ac720277cac48d", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 74, |
| "comment" : "", |
| "ikm" : "098ecd86354496a701ffcac8d589a1217231da3b80ccce4ef85762d7f3a2c211", |
| "salt" : "5232e5e4e2dd6133d46ebe5a8a51a0bc", |
| "info" : "", |
| "size" : 42, |
| "okm" : "5d0568ae988ca4c225eed0b789b488b8b8eb421aaf0aa8056c69031c004ace076dc2d2292e06b0df6095", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 75, |
| "comment" : "", |
| "ikm" : "917ad396520e454a571ac39a9f6bc845a8920954fba1ac400cb2988cd8847ba0", |
| "salt" : "962d86949506450eaca929286ce5d9e7", |
| "info" : "", |
| "size" : 64, |
| "okm" : "dc65cdffb023a4323bb82c444815cbbea1aad5c5fbdea4db2df982432f5a6b4124719f9fd6a47492170041c60a7a075df39e9310ed0394271a53e87f772d8591", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 76, |
| "comment" : "", |
| "ikm" : "1cbff2202268edf1985bc91466b80133644988c5e81368cf0995274204fb0aa3", |
| "salt" : "2bde6e33534731f52d39add940ff46f6", |
| "info" : "3e4f9c8d3d607c2ed43caa9e87e6ecbc307c6048", |
| "size" : 20, |
| "okm" : "8fd42650adad1b8cff79d8a6c690e62779ecdb48", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 77, |
| "comment" : "", |
| "ikm" : "d00d6b4fe088077ffbc64127d6bdb9707a0f9061c0b873c334c3be0adaa7c2bd", |
| "salt" : "1647a044472179d454b8d2108e4a2aa8", |
| "info" : "4266351bad419173279c901aea148e8b1d99e50f", |
| "size" : 42, |
| "okm" : "61a29469106dd22597f742303af8683bcb81fae85b45d38792b019f201194372895897fd7c63f95d616e", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 78, |
| "comment" : "", |
| "ikm" : "9a27c19b607adc8f152faeaeb1282002d3a2166894b7fe5d65829ecdcfaf73b9", |
| "salt" : "70d83929a6376a6eab859f0d6225f131", |
| "info" : "36356cdc28187c11cbb9046f9ce7502ab4d2ea46", |
| "size" : 64, |
| "okm" : "6f4c33adde661d92083b96c90e9f030cb372304ee1fa8adaba2f22f45c47aec925e944034737e47845d577e4f2559b9d00cbdd07a3bb9b4fffe701385a0e6e53", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 79, |
| "comment" : "", |
| "ikm" : "f5d1c855d3448e212d76d3927ec797dc439cb182f427064288452988ab79c83f", |
| "salt" : "87ef5da5400db731d658972ea82b76848004e70d3b22cec76c8be06283c4", |
| "info" : "", |
| "size" : 20, |
| "okm" : "2d45645198322629380b4051ec1a219d2cbb49cd", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 80, |
| "comment" : "", |
| "ikm" : "3f19b7095a6b3d313b59c3ba2c3a78d8b24f30c9ed4f8be9eb92f8eeaabd2c3c", |
| "salt" : "8f1f6c8e4f68830319ae859b4b1fa71f1d69552b0c3e53cbbad26293651e", |
| "info" : "", |
| "size" : 42, |
| "okm" : "5eaa1b59bd65ef1a25f255f2b8bf54757c2cac123ccd8ff64e7d0a094c2a8656cd4eb2c4b98b16a0779c", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 81, |
| "comment" : "", |
| "ikm" : "b1d396c69f14994dc8add0f6e0cde4455677ba9ee95ff84a142295f9177ee629", |
| "salt" : "7f693304bff77534b8246d832749387ecc0e8daeae11d77d022ca9e362d1", |
| "info" : "", |
| "size" : 64, |
| "okm" : "938ce3bda3308425f80da0093b4f8ccb7afdd75c4b484d8c92e9aad3613a5d0c268539e5bb115b658121ceecadcc367f866c505972665fc4ad0d0664576f6b22", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 82, |
| "comment" : "", |
| "ikm" : "003d1901a10c062ec44e0f2a94c544b7f53b33f1ea4679fa6e023c2d0a907fcd", |
| "salt" : "ed86cb8c8ba1c989f9a60a4a82c38be98c70e6218576b292c93fcc18192e", |
| "info" : "d5d3ef5beb9840d15efe9c778aefe38f1bf7bae3", |
| "size" : 20, |
| "okm" : "a9e331f535da580a86a3b4e0cdd5a7dabbae2de9", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 83, |
| "comment" : "", |
| "ikm" : "02e0647a4b7ccfc0d3ee7ddfe24ce69c02f51cbaa836b96cbc5a9c2885c45599", |
| "salt" : "f0862f61f2377ca34b76476ae21e331b114c7712aef501a1bf00f7e9cb79", |
| "info" : "4e9e27d971e76fda614fde15031f6664b97d4786", |
| "size" : 42, |
| "okm" : "3b17b93969f5e7567f7b955dc1e6bb20a04543724764cae47de80272505d25383687f4ecebe7797c4e9e", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 84, |
| "comment" : "", |
| "ikm" : "92bfb7e31e839f109e6622b2c2c4f41ce84c9907172681920e7d90e80e2339bf", |
| "salt" : "ce869619607f71fde53ef55e18d01d20002e3f91a8b7584190fc6667b8d2", |
| "info" : "ff36776fc755722ff371f21cfb37a168a2731e99", |
| "size" : 64, |
| "okm" : "a4b00d604d54e6d1374499c6588e199a9add616403acce0532eaecab0752b1d49a7beafc47220783577eeba89c5f79ffc21a7cf3a061457e6bc54031037f92f9", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 85, |
| "comment" : "", |
| "ikm" : "17632581c34ab743992cd99318889b32f92812bd37f41636b5fbbf2b12190c6f", |
| "salt" : "55e39431c83648867ac98eb7ecbbc8b41c5a5e774646b926a9b49c511915b0de1241f8666da198f6ba4bf7e9025e434b6d7ef794e7a563309303055fe3bbe769", |
| "info" : "", |
| "size" : 42, |
| "okm" : "04ea65201dc5ce6cd19dedfb3a30517e0e1c4d4766bc0229da4cdac8c551632306c9cb14bc05fcba1535", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 86, |
| "comment" : "", |
| "ikm" : "045b4d451bc30c39afe0932f6cd62e65b4b2ae2cf1160f19e8ba1323f7ca146c", |
| "salt" : "b73682dda0fad41095070b2b26f2d7d98ac62202d918258ca9aca0f794ef5e4d23b3fc43c8cabf9fcb37ad9a62337fbce967fe24054c3bf891195858e53997f4", |
| "info" : "613e353162c6c1b12fb1477fbc54074ff7848a14", |
| "size" : 42, |
| "okm" : "cf9736b01f3ae0768b669d53ad335243db19e2587d904d72b72213aba2f0964064039177cd922e2aaf8d", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 87, |
| "comment" : "maximal output size", |
| "ikm" : "b16b67a856259419ada925f3553103eda6cfda15666ad1d012d43429a8272d75", |
| "salt" : "8ed2f3533ae5da80bc34db49d9c3b3b0a7873baf9148772f286244b23ec6b3c1d9f235310c383c96bfe02a7e8be2c01c", |
| "info" : "f82bfdc6aaf0c789", |
| "size" : 12240, |
| "okm" : "1c9b28ae006c65a8716df9089e105358aac83c2372e31788e2c1ad0bcfef21e14ce59a2c3defed070ed55424e891aec5215240f8915f92c35b3e8cbe6c91e70cd83dae81e2628e3b668d69ec66093d054f7e213ef5a3e88d6694145fe3bc88a6ab55a8c32ef2cf0907e07e0b05fc9002dee5d86a724b237fb8423c874d21fd541e3c6d89ee2b1990e3dcfe6ddb65c0500d1488ae749529724dd975492bd35f98b89c280586e8ace25c03a8259c52a3c7478d748554d2f7d485ed68d1fa6a804b3d1b6a0aab002eef97b9656752cb0c728e1b0f15aea2928346cb97617ea9760e0d46be6638c905247c6f8c927416c283ce1dc41f16e61060644952bd046bd478a01011907456a03080d7bb0d79c959f5def259e6a4e0fab0eab317ed5e62d0b8d8e7ea4b07b0281e09392e43a00deef79eca892b59b1adeaefd14b10f11f9621edaa8567bb15e52e0f71393ec309d3dfbe3673550b8ec6d9e1f325007b5253bea1b838a2785fe37b80dea14c247ebbaeafc73bc44d013408a2368cbcf6d80c572a9630f38322a778470ec557657d3ac8e1265eaadce9975f26d9ee24eaefc6d6c38b78ac198ac49be0e08502901868b6d966543b682ff658b12f962a0f8f1bbd437a2863ad6246b0738b343d368cac0cce1bd4dc4a1efc2e65b53c732caca0101b0b44fe17b15909f84cad9d107e5374bdbf84a579428219adf9e4f60162566d5f29cb28c851ce9d05995018095ef7b915781dcaa5d75c4db60d497982df7767f907fab51d650acf70cb3430a2b5210a572bcf68453b3ba10672b5c134a70f63e934f8388cf4483871134c6b0089988948a528fe4ac88338f00098826042f096de009a605ab575dbee9bc675d626b83393511efccaf73c941d38be181ee22a368526909f8da2246473e2265b58f1a68c7a876b55223d2de9022f4af4036469eda819a593ca3ed2763c1e8d26c49082e9c8a2ca21b939ad0e8949c105ffa36893d36314b266cd6d22d2a1c1e7e81e0bab9743269cb5ae6808fe1c48bd583bd863b74f919118437bcf7053b2796f1ad1b06a4328612be85e9280009c0a11f212dd748987c2b0abd1825385bc1303c935117d3b968e46a6d554c04073affa3884486340b77a37377214cf799e8b422d3ba77c7eeab27c50d0ef7f07adb97b014b7c09982c70142aae3dd417610c76088042e7196745e5574106ac8043642d3e5d0e3f4e916d5bcf14754e21feccd10006d8fcd222f2d6b268fce261ebea921a35f538b23bb14833c10f31b697675182dc1b2a32616f3174aa40f0296b7b45489c2ff16d8ba0e23ff740b53fb91ce8026c2863f7bc1466594a984ec1744cf07533a9bf35794717dfe170e48616cbf7c24293cf9d931d7848513ecc8960907aa60359275bb9af101ac41ad42be509cb8acc9701440773a486a8615dcb8861eef8c1d63373152df15790280436662f4dc98e3fee01fa8ef61a1c500e060da7c5e284fcf3d27ec9321ace93d8764ee34bc51ee6cfced9e56ba56020652a855099395fc5c0290ce84b0ff6c8ce2f25b30bf85909d906f0c418cb70c7e69d5b3aed6d0eb74387b6efbf33872f3712fe0dad38110dbbd0e5f4432bf102835ccf4795f95e7d07e408ef853d28c226cad475fd361c5de53b2d2a1d6f59dcda82dd6f582c52ecd2421b940939acbaa0f34bc64193d6baf7a809b42ffbab45639fe645ccabc93a97b247e454e63cb891cf187908d33dffcf1225757e87bfcfede42dd0e8b75e4ce05f6a766b915f047e52aff8a7a982d9b2072c1020198ae69a69348a8554fb51edd4ff68a8e0041a0a118ad2bf42c418130e01b3d1c521a80716b0898eb63bf6fde067048e650fac3433b6c7aed5d59bb4065ebab0dbaa03e1b8b348bff92575f5e4db87d64355f75925dffbb090aac2ae320bf72da9371148901c740e34b4355e715b7c8640e016d7ab63c0cf5d6f3a6d62f3358a5fda77ada6947fd711501891c23739f262f71e5314bfba0b7372638a6dd2b2547cd1ab5ed3debbf968669b6273cec753d43085192860c4168a8703b917a609d87e5ab1f733976a06240d288f8846ad27328b071b377accebf4501c75f8e4697e715e8b052bd116cd16895024a8b58f9b96f460e6aa9f6b8c5b760ae84e036b2e83d18c3b242f59e7c00cdf308e43ae576c5d69d78dfb39c78423ffc565a0c27b1ed04f231fadd2cd46f4dfc1caa7ba639746ed61e1787606ff6a9e1422ce3ce817e23ecf95b7940c08b865b1e19d143e230defee3ea88893404992399adbede4a82b34b906631b339dbe2e8d0618ff54b9015012fff625f69a1b9c753d790d3ba76af8fe7ee5f6f493e47c30b28341d98f0aa38ff76f7f660e048a09c5cec238d36e21e26d8dca7d427b609dd35d9cf42447ac88636a4575b0383177be4f1f1e4db97778147b73477c50071a625fc908f4130090a819644f1c1bf7318cc611b0ff4454a7b3d180c445fffa0b52739a474017fbdaeb278fdb901723d0de12f0115831f6b4b2f0b6f15c59194bf28d36ad73a2ce8263d8d293a7555048db5ace9e5669d3c0391475c602bda918dd951a2db8aa94bd8925a646ffbf9a22590bd87ca893f45c53b184f63d93794c6f9f4ac2d4ae4669e9b36af3cac1f59262550c5203a1152cbd0d4a264e337302430f59db44b2c3c1bc7580f09a5326db90d6f88617337d20bbb39b05b7d1710eaecdfbfc7be543df1f52dbd8248209275394ed36cff244b9dc25a46bdf9cd09f2201f2fd8007cf561af8dc4bad49de3c7131820e2c3225eb4ff95de565580c02ed86094a3b3757d8ccb040ecc75aa1b272fc1f96b6a9e5f117f9a229da82ba85f42e2fbc172be3f24c2250d15fdf257d39d2d4b677f23a5ec8cc4083d957d38fde4f5571786278fbebb2b56ad8a1dbce217bb8c64926813dbaf0f068e20595f80cb5ec546206b6660789291b3714db364e9f27d920c606cfbd48f5276aaf07f2defc637d25e146d18dfe207e1e0f946b91108bc60a7a633e960bb77c119620e6da200b650d5b45921e32b307029b769a04972421cb80f3494eb7403c58f779891d994c556043a501836111abb0f8ddb34a894cc2fccbae3d73a95dcbbb0c73c3a4fe516b3bf2109e0b9d2ddce48477890911169449e5c00c8a4782c33c349d7802e1b3fee21f23cb73a9e649ead85c06d7e883bc69982ce63e1b9ee3ead32f2d29f82b0eadfb5f55f8311c18697de6472c7d1b9b37a73ce27ef80413efcdbe992dac8ccecb7463509a096ca33cf5449726a83d078d5558da1a95dac80bbcdacfbf5935011143dd0e4ce91aa1a49efee241a72f0edce6567662a4b9789763ca414445a3a4baa45ad4d9ffe7f28c2c94974f5e74052cdd5008b8d89bc7726caf49693d1dc01619ac91155915031c5f575f0694d9f8a0dffe303ecc3779b8cd4441c6a110aaf682be920b3895f45538e1089ad610edc3ca64589cc82f863cb4be9125f1659c51f693d30bef11042384dd92887da5e45cd127065dcd57847673be82a29c1ea6ba5973994182c06db59272149966603c3f1d3c1efe10e6df1fbe2d32f955b4fe04ae96dd3591dd1314ef715951b4ff8b8378ac2e3814fcd378fe7bc739b2c5b7d401603dd00c2c92f9c86b8c63c90d4da37400f590f36210c60495f049cabc91f4c4585c5f1a1098167190108f704eccac5b1960748502ab4791144c8e049fc2a8d37c125c1da0b15adf85bdfb07102a653645c379f5ebc84d505457e8c22884d850def6c3ed18342a28d4f62b47593db3607b97c7be1acc81278bbcd9772ef366e84af816d0e2d132419034163d5fb0b88ffa183ee2eb3c1f354321c076221ed7d1f0774e7fafa5baedc5eb32fc3ff1e2e48d77ebbf4d7804c7a76eadb7673fe9aaddd2960c288d9159f7a2c21b243dd47f4cdb0c29931a3856e1cdca81cf8ab2fd0bc07b4179ffce30e12a72980e9b705f53bc7ad78bf7e939dcfa5200d15b626e220e465e293379f12e1e82df11caf29536aa085cdfce4d9f824666eaf12b71e42919ffa28a327a4d944873f0a970f9abe4986979d772fb854151fdcdb4faf7534a9a8eeea3e9d080f9b56fb8d281ab2e0f9777f2e2f1e58bf6c471c79f4e1611fc0c541227bf9179e6c76152f86013c78e6035f0361e57fd5494c590cd5285cdeef52904fc4a6713009542da95e8e3ff6785bb953d571855d86742331d62682ef537e25411bf35ab44ac31b451477ec44db4624a83fd637852905473d30a4ba927556163b8fb98f15008d005660caa833f28cb80e299427e044dfb254b97ac03ee5389b93130ddf4c8dec96f6babc43220a59a194408540122f96257be852fdc97303f8c21553a506473e2dfcc50e73b5b6c2b2c99e55b2742752a54fae78daa18271534b82c274fd6aa41e003bc60e935edf4cb4fb377afc273d720f41db68db9a98274da032beef4464f082d06e679cb456f4772eed93eda24e31eba70cdbe12fbf39d413304891c7a720ce8d896fd20952b4b0577c700028fa804cdb7e0e72dd503a5299b346e188e7b0ac0b93c3d4ce7ca24181909589c82b01e9c05769dc2ceebe9df8652bf843746945dec545dd211cdfc0831fc03cb91c6136f5e0e2d558db50ce3dd90cae233442f2a41ffd1d69b2897a10ad0a2fb83075d3f389c26f041f6e178313682e91804256c1d0b4842225e6f63e1bde51e888cb9c93fdff2b7dcab1109da6e648cfd57ba9237e35f1d28e5e69cbb8ac5b941f2a2c56985d76107723288422ea37c2883fe775e44e1a5be4f3ab0410c11e2a3e7cfbce8e359c7004e7a7c86884af6dc32fe94198f2592144b1bb397187ea5df233db8856291c1b91914d87cf0bc1e707e104ed80a74b5273d267626180b035fdcb1ab94b8c6560e8dc0a8ebd7d6df478d719b3b426e26c07c9eaa9bfd62f921ef99b8d25cb9db02ef9346b18f41f88fb17aca4f04595f6ecd8c8f89d01b19faf3b479796945bf714497fc692bceb89620138cc089e64b05c3efc39ca03aa87c0ee5e8766e83362f37fb4aa47fde3acf5f3a6f7c7485af5eaa852f3303c03b1c8c4c82e511f0a1aeeb3aa5465d11a306b08ea1a2561e583bd183da982bdc82c20d7ec33e80ac7dd7b7d93f22b7bac6752d71fa6e767b5af61e5496cb6b896e822dd2ecc57d1f3da815eec7ed83ed50822f96da844b1565f65d72afca24a5ee59d36ddcb6e5ad9fa6d2f19248e120a663d3d93c2f2d3e478d3915200104f5a2402dd37cb8473e6104ccb1a8ffe6b014096def2a03ef2c035620b4267711719ae545951c6e930fe19aa90a7d5ca01d089201c9ceaf49aaf4bc3bd80a47884d12848bad2df4bf99b45b09b888f1be26cdddddf557e4e97f3552cedafed9f0be5a26e46140180e204dede4bd0442899bc4e6192d16267e7e0ecc0e52471206b306254ab4e3908b8a4aff72f337f21c551164319ec9fa947e3184bf8eeb1562932f1446f9a1fa6f7a10fe4e9df16a74ca7072170644163cf1f9849cd15dd1d0902012d4d13172334dd7146e3dd066ae11c59e45588bc597f90d217d2eb0545b8e171b5b36669cec25196a4d92a866de6a8b1ecba130876d787386d596d03471a0169a1cd6bd734815d6d36df83e4273d01761550207445247b14e9f5fd9a04d6e5916cd7c5a27dc10e7347522c2e8df09689787d2dd44d852b1316cdc2178d9718f2af92e9fd711b881de0c058e9c9c302a06b9b7bd40a4e857d3007248090f2ce2c74d64d84f1985ecb9b1ae558fb20bc8180cb8720d215bcd57c27737f6051387178fc177010dca84486d62c7113c0de4b0ec79197d450a733c8492d8c213c5123424560853a7878425412fcdad1ae0986c375a2b19863a07f924f2737991297bada908d5033fee6e734e86ce45c60f6e61f42922d500cfc57cffe21bf42a36a3841e710d1cd94caaafeed9be4f00243a439ac4d37348102f7890c8e8adf6d8ec765d709a15cb526e7c52da7281e6262f5ac206806dd595d58ea0158c1102476f4f7077c8bcb13f80d9fbd4fa29e490ffb74b45480a31df2e75618eddf10f34a0cd2e61c99316e303fbf92326fccc785745adba435d68c2f720064668671345fa1a7af122386c969e79fba2fc6b66d86c4ea79ac9d9fbdb6f21fcda70b96875dc70d915f8ee3bd68f84447d9015d3b8b340929daf16c25f57ee9828ac93989c53028023b7be7e6cbe10f077e2b41b873f0a7a9a4718063975a94e045aa246dd05b5f1d0dbdf123ce661943c2fba51eb41f4cc854bccab72d41fd8ac6a34da8d55e9f943f04b675f6661b9ba03857023e2e00011ba47f8635ca9408ebb55b43ed3a029151a6c44fe2f8a1a61f390c2343cdac9dc24afdc6472478673fd2a024578d2ada32a1376332ea24445ac99ff3081fc327a482b6ee96d56db0694b978296102a448f6010dcb560447d32e4fc67f260c9646dd60e11d39cf736577edbc1330bf8a2a3accd05e7f562fc911635898882a9937d3d527d618d450cfbfc1dd16ea040958e21f72fdbe29fdd91798888d0eaf50d01e9c162034dd12a889112b8281be71b291360a6e676f560fe34faccf5556319acd7067ffe1f7abd2489d88cc8238d5479e18b20b502d8be6c3b9565a97d15f827c177622feb795d32a6cc8d49f0223410a484bf8788dd6ffa1722a13857681646e7ce8fdd89646d54b8a960148df2cc92d310112eb1388f5da1eac32b1fdfea06495f57ebf845ac6f38c942e2ab13f45b4448d35a785f0ec3e1a0f15c4b341dc29e4d936bd438f26d1c3f3fd103b6543790a8d48702b24aca7b3a60a968703e258297a592a2690431ce09993fab0da0555b42a448897afec276d1d48b8a71d3708ea3a453bb653ccff2a3b3cb33c7dcbe432813d859f511735b6ac062b225c706f97241a3acc08b56f88d883dbce97c8aa935fb07d8dc5291d3d74732a10130f88907ef6fa06b96ed4de40dc90beb03cadccc978fdcc7e36ec532eac8eb33e4914faa060d3041ab7386a071458f104f9707a9b8858e220acc78802ed0961a268454a4c02bd8d3f7aaadc6573179c5c0a102517d55301febf5001d4d7a5d95d80143e6383f95af933c83fd68bb7d0c1e283390975fdd29b0e62fcb0cb1d032bafc96c1908ef7839a86f52d0cf6fc61a6d145542b2843c8210fa0c44ebc78f3c42faaff2a560dbe937f2dde15f0110d1284a5c69c7aa9f26455d5bfc5558ab6b60d8c98bae2ee0717fdf1757d26d2082da8f481e7404d32d06da52a1f5da5bb128f4c185e7dfed64513c97329e5836ea707361c6dd45366396f31e7aa46ad88e0849622c3851e72c2b44136ba2e1f1769e8cd86184f9c0a1030da36016f146343ee8fad9a06c33946e2cd3224da22504ab68af25b3b9789df7f2dc1c9f99291f89bd2516115876c3bce1e678a846163386db044eb0ecdbc9e0ec6ff999945c83859f025aae214b5cce6c32a048cc76d7077c11e9962061b73a6827a0a4d0b4a8c1c92b3128f21c7e3372e7e248dff0500358fda14bd46f50838666f3d5d8f28a32fdbbea2829b86bafb15d02db14381581709b2a9cd095d8555035ccd4c67c10a4124acaa9ffd2a76196ded0729cfda8d423fe98fcc126569f90899ee416b397bc16d1fbc88ffb4fca25b2b2c91d5ab91d3a66450708a95ab8250ad8d8ce4614683225ac9bdcc236a25c6f5d65ee25262e54c54dbf59f2ba193a210359ae7ab1615f15a3ae2f017bb1aecdab6833c0256495512f5775ef85655e595b8898a3ed24165ddfc1b73b43aa2a9af4060283a1cd6355fdbf585bdb924899790c477a6343b244be0433da2c084aafc57345bd69e57c5fa3b5e6d19c98eb119e7f5e2080b4dd121dfad487441e6089c97494ee9a932bb8f56b0066940f415b5df917110108bfde7bbfebca4206bad5916b45ccd7118164c97ce0b053e0b2265179494568c0de284b8ebe664fcc74ae13fbe56e35e97c1e6e54d10173950090244f353feab7b0a4bcf892dfbe6a1975632efa67c1964140c8c09d23d300338c8f8702475afef0d794ec815cbc28590bb91967179115f5922d7fca605c2e98213589f540fcdc61c28ce38e955cd5cf86b49cb729afd941055d0273e9ab74b87709fad9aaa56878cae49e063c430459983230bb9c47c36eec08ead6faf7428b13cf11739250c3908088aac25e387c1f7ee461c53dacae84804d0c83185508bd5d9f2f3e7e9bee7d2dcdad485bc3cf076b57d153962730bb23017374c76b5181058a982b96357ed0e5a26ffbe6744cfe2f2bbcc0d6a06bdf6235d53a305e922c207d3374f67f9e9571c044f73adcf28ab399b5187b0fa4db03aaeb10a3c6111669cab03dce28daf75ce598604f28326452133a3dd18dcc925c5394b62f48f803f0ad91fbae1c4ccde3a61fd7e23a00b6582d38257d2de8ff5c84e7c15b373b67d10a55940143c30d9cd01dbdbdc4efd2d78e060248106b68f2a741028bda70c99420f996dd225a0fcd0fc93cffb2194ff47023d9bba1054874d8a50bef8ebb90561468f214e13e505b558af82818fd74aa3bae02ea49f2502fc2791e96c3eea62742a2035468927cf74541329c950df615be360fd0b2fae64030a7add9c35b48a6441527dc4e38e9ca001719d5cf1e3d9a5c0660a54473e90557a2e7494fe2da354ad37ad0f1d8c02c4d78bd5e2c18997039f3ed7e9d82954d532b498eb2df080f5840c34eaa7153719bcf3b0f1b7d16c9a61421f83803ae677920b65420ac4dc2ad0fea214a0f66bb2f2b0c326a2067cbeda0419424393c643a1152cfcf0396a15d30d4e216b656b4934babe2d518ce9bac15ab3e6bed02b397d2df6f0bc9d9d56333ee9963a71b9e0fc5eead36a12efe520aa8ab9d1f9933eebd5e45c3068f8ebc90d1434712c8b078d41dc913668fa8ee6d686a90c16df842418bacfe1482fea4526ca464732fd935c61779d294ceaa828b54e437262d8bea50b7e6b423ae39cdfe390e61f7c847d8fb560b07260fc108abc130bb6dbe99dbfa65245c882a2cd65e4205ddeb902603e1c1dcc2a471c9a206064a8d756353773813f0c9efcd22903c443df9677b5979f7cbf97ac09e35ad048b34c33eebd515dc696a7776997929d0bf49052ec3348a81694a324a6829c227388b5352da311bd7ee38f7e2b6792cefb8b33664a6ed89a11f9d9f6f64f63e898a4b97362fbb2a681a87eb2914e6d10eb4f49881197630b2d8c4c8dd3322566c6d3350b9a05890d0f25beb26a49aa9d6f755a4c533966f137aecbcbd6e65391abc4bf97a17f0e32f5ad0a7c6af2ab0af3ebb07b97210606d68d4d8ccea6f0311f15ada1cf79504ef4e4b58d17bcd87cec74370be0f6cbee92831bea0dc35246fda4feb3299813a18ada050744e836cba694e7fc0a8368c797720f16e238a7e9b4d3008ab555cc0c66c1d0fd00721db81dd40585ebf5a7e7cc0443d11e91ece4536325e9993828cafee77ce6e128d0767279001ff089c44f193b1f7b736334e0dc5085fee52e574b2e4ea6c570ed92175df0c1af574b6285c7f5f8ceb3945a2e337fbd19f6b4553cdd8be98e5937d58d229901dab6dfe7cea5683cf573a3ed097c14372eff45e562629851a75cfdc3ca90f68f4aaf94006d03f078b236c443c31fc96e8c7aac2d0a66954add0c0a7771c5ca6665d782de40eca16449b2275fb04fd15114639cef02a6852c7ca2392923e2ca74f05a721b810b555269bfcf6e788e2ae891d54e0d9528ed8cd49c8b0e1b41f8c9355cc5faa42477415d6e7992f65dc6a62dbf10ca59d55a6bbb71b41fb93de8fd00f3640f620257a00f0af4f4286cadd03df8b06077320f617a889fd7487c2703bea22c2c39d3be70e50692f3410e2ce0fe9ee6829833bbca4a9d70ca7438c798432c1ec563d81c384a42bd5599eebf98985124a27279a610dbe9800a6509f517fb1df6be255ec1015bb808d56eaee3a278e0d8119eaa04375137f22558de2759be8dea393312617c4aa447e28091bd3e79e6e6daceac906a7c180faf0ebe9b01635f075b32effc404d52e914e54642057d4976b7ccbdff3932cad5d35fce432bb675db4548e8d358267d1f34498ecf46baf5efd8bf221c0d35f18d5f64974115af6419d0ab4b71fe0bbe8014c03412532699d7caf4b0707f92ac7c677bff84427476eca38cc2da5310df255bfd11c6905639bfd622a0931fe864d5c52caa357ee46b57af74c23d2e2e4abb076c7bf11dc5dbbc69a75ff9446af6e8d5a165d3dccc33fc6ceabd6790ff4e4032b515f2d85414e59ed6d26d9c19e9133e628e3f2b1b77eb6aa74e50df1618abb12240661ace8cc9cb0a78048dc62349df3b16f5a48bb3462f56da5d74a22a04fd3b6353349f09289713539efec56fcaf0a41650b218005c4ab31c8a1f866c2c29dffb51127d52afec692acecd3ab79e46c331c041fe8ca9212a694c7848736a471966f8d3cbee2b1403177a67c4c030164d006c2967e33f45bd90185d385c87b715314a2b15933d7240d2fb4b8e9572e9e07f8402745b35a78ca5f8d053dcdab3b2a9a885439b20506148d2caecb6327cf7d33e559cfa12678f55747abfb3cc25f32572c47922d7b8c9686e5a66e1855ccbef0c4cf0eb489b6a3aa885b2c78e067421268705a4bbfd88374b33279b71303c70aba755458842f205d3a2a7e40a2828a2cef6ef86659182c68a0252c2eb393270fd26402581e1692eaa77be5e6d7252c683e380e932cb5facd2bae8c5c25739f84f07f2b44d6133aaeef8d87191a9c2037f5a95489adcdcb89e54f1165c1af615890a1e4e56d07d949c003e12aae68820492666c999d8c09a356762820c9146ef9f85828d9a9b818cfc2fe2bf09effcd841e9b77922e2d263982060eea4a06a3ae8fbc15e8b5bdfae224c648b33446ba400ecef428b236ffc8938a7bc6c406fea97fc0e1a324f8e31429f53873d0f24eaab39f0e5c37a0147a95ad22c4312b1d8032da65db800150d4e88bf7b9b1dfd63c3b714eb32b7e6f288d7bddd875934c4cab2cc57f771ab8523721033d769b2ffe9080488a1b201299a1eba6aca7f468fc72e4c26c34d161764c7c5ce96c90115898824c24fcd7a97ec7d5031d1364b2028591ec1f6a286a5d474dae06ebfe38900b0ff730a497d40abe221e0dbe82a90106bee225263fe2c04cbdc5aa7a643bafd3f89d10abdbdb320cd8da6c1753202ea2243395f7fc798db6ab11f78e6a6fd29269169c6925488171a147c651e85777a791837f8f079fb958b54af044a11ff54c493a0f032162dcbeaec09d68df9da5c47e87631f7254b3ee5a26d895d2c980ad62ee8fbc5d7c4235bf1f9be12781d1acaf02e100be5a535438c44860b8ca257257f8b4288f66a7bc82a25c9f78f55397e29e99ea97595599ca41f599653548cc4a2983dab789eab4dc1536ccc2463a0d259d14fc0778696a73fb6f4d78c0c1080b2815b1fe91ecf65fa02206c438e16ffb9aa43aa4c6e68dfca745e4b1b287d03325a9f595c5fe164594a8bd3bb1893151c3a7e3d5ee2d966f367d98578e2564398feaeca7d8c4773d4fb51f706bb4fe13494afbd786c0662d0159557a8c1c56590b5738a116a20218b9c35a29651224dceb00b4a5fda958ca46375885af41ff9e1335a3d57d650aae9901b71645923eb3f3d869dbb7d79c6a58f856fd2be95c376d9934950577b682d82985f0ffc2adeb9ac1d801cee6ddad69d342046487798373560db6331ac07287a9240fe1cffa3bcb14825ee235389e80ecfbbe138c349f6fb43574077213fa5a995ecc936eb12b011a7a1b3417b33f2adc3963a2b7abbd2314c4d32291cf24e9d0e896bd709c01e5a05acb60bb7713234b450557e460aa3ba916c5da158a88f37fab9c0a293565610ee33a42fe1b632c9c5ec0a70667d5fe236fd8405a80152bb91ccf336608dbc472602343579d0bca549d6d97155ff65e6d3cd2342ba931158a97613ea430b8fe663c28dac1cce08e8c28db4bae76758d3d186b6e34c631ad743a20ab81771879df17361e7d5db49fb0a88651d6d4b388b925714c19d790c50a76182f3d121dff6fae46fcd97e7eff2277bc8c6b87984c0fdb67cdec92b763d867ac3f54f30ea1c5e86be4484b8d52408dd9638f3d13d32e9fc43a7596c9748e0aaeabc83c08a7849c28df6262ffa83128341431cb97eb574990a2e2e92610035442bd7fa3520c4ad3f6a849297ff68650516fb80b786a3cd5a2699e37ab1f36d40c6b35843ba7cca1aa445af87711feea243c787165dc51975ae058f80cd70a272721e7d3be99db79e76c9cdbb476eea6b73e50968e9ff7515d78bf550e9b77fde7f686544e238483e7444faef2829a01651eb76aa767c03dbfd37c79ed8d77491cdc75798d230d9734052ab886075da01556263d09e82f2682bbad8c26d780ed6def00bbd3413a3b7d69d2eafc4ea0c42fa89114964aa4b775b5840ea4ea9f69b01d269ba4551f1aa7bff0dafd8e3ed13941abcd91fb3bef76a7b49340382eeca128b9ddd1bb253c1d082f02d20c37f0411a57ba5249b05b1ca2959aa140edfc4bbb474c9273909594b1d970124f86f861c0504bcb56d7ce395da042c175384e8e1c0b2be453df961e9fb0e8d60ad09ab6b8c8b09d8c7c3fa0c0376e70fe6487dab64d398257b8293c19bca53ec82479f7784f5359ef3577c7904acfd59ba3694283d7f0b63be70c5f7e55b45ae013ba5a8a77126a11154e91f8c3e9ed719e087c73e425c7425abda06860b898b1763dc030debaa9790ac22263a099573d6b4fa2ac17ffc9e7e0fa710a23326b965df9e2d2a69f07a249f7b2c931f2219a3f6281aa96937b1f88f952693519089b4504965e0408dc018f449c566f027866f891ca75832689995b72fd5f518e5a1e37f33c06775166822050932319f0d1e53bbccb9ae4d18c100086fae3311c69650d2317d83e4a164c4e67278dc1539dfaf2d9e02b52cd6885c9a66831cb81ce13422ccb069067ab6a6c4d3c89650677551c344918a5c24b0973ef5727f9593c59ba1026a82ca6e78033d6ba6a40488c5ec91708ec2479dc53d0ba7fe14bb238181f1c058e694898c914c2208dc01979119bfc0195e8ac0fcaca51d61fcfc5f72d92ba68a8d51394eea8d10b624dff051a9153b7d729f50f02d04547a6676add6ee0338b6d9ca9dee43260980291adaed18759bddd5311b7b46956cd113a076a3995b2e72cd1a5138dc31fcb5edfbc514bd2ee72fb53e0722367afc717b9ec401e4213a317583e6b3b19a75e1c63f1889f60dfb3059b0a64b85fb758651c713ac43345c8cd3c801da3f6ba8aceaba572f46100def2adcc135c4af0965f379a7a6c75d039a2cd40f2bb5919a3c8b74d58bc9d008b592f2ddb3acf4888e8b7873585f1f3d8581c743b324873fc23a345176635375b746575f79d361d186108eb5609dc78612b7bb530b6327bca6dfca45fb4f4f975afd1bf0f898dae164a19dee3f0feaaede1440cc7ff8fcb21145680e8a24e2eb5404697e25c2558ae9289f528a8faa572a354931a1cd4bc05bfb0116a0359a6b70aa79b145a88df482ed33354c260d1567e000b2d315e2808138638fd7bf7f4e88add370d24ceab5a999643741b13612ea85f67ecfc728e110aedeff58060a8aff0b7e1526f4aa60b9f9b558c2acf584a83b08d91901d6cff5ea2bcdd832303539703d30102ca067db40908dd8b555834a6060f3f6e7189612ed0d3b6c645db8b113909a38149072b3decb1f3a28be9223cfde40c2feea7e8c9d5bf37a2e55a60d8f89c391903e49bc644178531e6891653b1a4d73ee0870b18f8d53a089d5066dfadc3d92271232455637b20c298d640cb04b668d7080a510146b08031fcb84f41ca0cc85428f27ea9657de94073fec43d2c8c464723539276dbdcef593d716d02d172d30e76a9fc022d4952621d4c306278d3969592469d9a9ba62841dedd07e76a362b67ae5f925fae70f27c9cc870ba7b15d2d7d81b4e1d49f02fd963fa6f9ea5f4c901eade1114d92eabbde70cb0c6ba9136c68cbd25acb278e6cc73f9e625f1747e281d248739ecaaf403a21269758211121db85805ac522295ece97b8f90abb56e5a762bb7601b916befe8257e02a2b10c8384887de04b2d1c5afabe583367690c03d3ea6f7294f71b82ca80cd99951e5ccfe9ce7cbc5e04d1d60dcdd2ec88f9edb424bce5f04217be277700df4035443d18c14391bc9469f38f78f41f2d983bf761296161216e5719b37e3653de0d4a90a5171c2fdb9547a75be38910aa96c27ecc4e1fcf7a12d5254a8951a659df30db813ad7c75716ac050e61bd76ee5a4ec0bd7208a4c8cf4dfa0ac4438fc7f85e23db79d006e2acfb8d5a4229dbf0ee5ee26d064dc57a1dfb4374dc306158c1f8a9fe450a11e7ed21700ab2b817724a7139e2ac3df5f953ade220d996821ccef9e8f58a9c4996ed0bf6e70fc17237141d822f393cbc725b6813626cc63b88f5b893732969b47dc884c772e12c9099be0e519eccbc31d5b5886fbd737499a622058d6c13e200e7b201839c52634dd89e87a742cc99c5971e0b7cd976e8b1f5043a74fd6bd9d30eb8ab29c332057b2dac2f95739f34f1abe9e85b856f1d2df1d80915338cfc454b70ce41c2ce77da0f06f3b113d8ebc2ea441721a2f4d6e573eef2ce7e86c2c68a1060f6836526723e6726046c6efc68178798d967a88c17b4b4c59b96828d7497c7e40d6cb57e8f83c7164ad56c4e95cf551cbfe0314523fd7ca84bd0063ba241b591799b5422ba0cec9c2d5d5a3785bc510a4b12ece05c1081bd489edf428bba344eac60f1c9a59152fb8442c7b65987ac41b5ee2ff7ca6b8bbeded9e8b10ece0a3a792a508ac22497df9e66031edade139dffb19a3fc7d27b9bcd572d60b6a0f3482b8fb6ef495e2aaad99cdb89cf6171609096e4f2f03e21f01ad554c59d008ffce5f1ba874fc58638179ff01dd4fdfb01c4b60e08e315654fa5e211d0b75109439082a982ace4667ef510211b1c3ed116bbff57a3304161e1707f4f9c3b22365760b1de206a68c4eea017970e138a5e29fa3f5fb28f220d84596c0a7fa5e192e7aac83a1b83f65a5a61b2ce0586cf5c387ad24efacdec8f4c9e96334b94a9994fe3181a5e0ef82dd8e6a9ca79dcf9e5dec753a01f8d8c89e709a63a92638f0dbd4d083cd80ee7b4c82bb08bdb24d77ead9d20fa041b32386bb68d7e5255290ce65dd07d470b220e5298bf80a064c940378f06d35a3eec74dc60be0a9f46d29014210cb09374406a02e48342bc07db10811d314b0fd9be677909c91958ef5b3de9660d105058cb3a9bb859a355d502076938dc0f8feab32cc342f08e5392735263ab0e84eae11b39e993f0a6dfbbbc69dd01a7c23989f05acf42829f0fedc564e8ea633dbd4a1ae9318b8a7fe03efc535eb008cf30f8c9d38fa572e79a1b6c8bb02b87050dfd40f6d8a91a3b1bbc167247613000dd7fdcfa7e49000eb3604cbc7e790b1df640acb5a7dfb359d138b6fe3e12a8025b512f429d47ddd60c8c56c9084c509766d38ee652d49fa12aa3c2a26be8faafe589bfbae0815203101127aa23abae6b01b4fb82a2f7fee10cac9092d92e68b48bf26629524f2d8882dcd18965c2b7b6ecbab0204bd90e68ba89f1af5ab3992604bebfd482babe08ac40f86dc638c9440796bacc8bda1895d75fa30fcb0434aab12526de4c026d320587ebc36843a662d5c646eefc6524d6350ab11206530a7e48b53c8ef851e1d17d1a78a5f0a58023b9081357b033e2ece1dfc4cd68f99ae754195ba9453cc90f60371ebfb5086f60619f6b951f0708c1304875c618eb30ff4acf7b16a5f88564cebd3afa0c509516889e4a58354aed00433173830cc90c16ebd6b366e7d2b43da4f37ee4a05860e2d3267b4b61facdfed2ffb1960adce69914d4f36d13a5b7d6920524b364c87c2697000335cc5fecbc68c24acb6a6235a61fff788daad1294df9d2fd0d012b446b35e3bd4592f4f6418d7e676cf46bfdf1ede5c9f9c3fabbf3ea0b435555d253412deb4c66922f54a59cedef5dfd961795b0a8840a78266810d45da1e76f4ff7c8642e106852173bb7fb44394bf4b285d95d711651031d8f062ea62f2503c0047d808a131a44c0d67bbf1ae1ff58f9018bd92c63bab4761f572ec67da2538bae95fee458b1f298d27be26fbeb9c80361e30e0738e7da2d5b0dd21817832bd2af3f92f2e6d9a8c75f0bdb4c5f31811c4ba4af5312aa615e0e72a987724b56d78c8d598a59eee50978dd4ef4aa0fe958ce88f6ff8d3672a5d07a50a4c61af4b8121e6b5efdf7e39842d91004d2a78cda448ad233708a91d6a9b0e29e5c6ae3494b3e73f81c04e9df3d7cb5e4f8484bddcc228e87c3efeb39ee367cc3e9bd25521b493b168d15f5e15379177fe625e9a6052f8e3312ba0b85380ce40ec62afe4abb8d21ff9e420865874f16525fa38e3ea1aab965f548db6ba2bc21001a836b2598792e4dc27ac82b136ce604f554078d44b80424f449968cd3e7f07e73c1769fd6bbf2580421d4fa4e6bc2929da999f4ff8fb9f6170210e1d2be140f6fba282ec31c9d57a6d69e73502d194b611b1adbbc4c028bcea1d4003368cd564a59bd93966f2996fe7c6ef5b7ca578dac3b59989080b47024732adf735ffd721fdd88638217d44ac912893f031366150855028af0b12719460cfcb72378447f43fde09ae5fa6060e41372e40b89e088b00decd495dc7f37f9e8a4421f504108fc2f56eef0bc2eefe041dc52cde085622407d0da699cdc018a7844e8f8589e62cdd3359b08a6b90c75eb5b77421df5316c6dcb2e0672369f3feb5fc368d112a1d4d00abbae91f28e5fbecf772c8bfa84c222963934b206f8f77886bfc27e03b876d3c33e59d29901d41c7f3209d9562eee953eeb239a9c83f3c649a86c55d84a799145eac8f05303dfa6530cb693bfd5d1facb26753f76c50a3528003044e64359f22d8b31750782dd323b003c767ab6a8332994c51b57563cdc60c181400c46b5e7f928684e049a146ff614facfc17ad5f34e23f2a3bed5bb41cae4c65b9e6a6e62fa7dbf787543e5d8d2dcda4dad9773ba129e75b4dbf341cf6261c71441875a690ceb6b56b1f8a5c2504f17d521e1fb2b9e802db8a2e332c9ec91dfa044b0d948be844b6c67547efa07d74c9f9b1f44998888a62ce1b04a806923e3368fe4d9a1960191e022a1774589533b5c39090351ad793327dea2c54c6c03fe8afa5185e8579ef4f91a7b34d01b771bcb6cf1c9107bbb06045b4f689c034d4026a0540b44c24e9df543014a18", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 88, |
| "comment" : "invalid output size", |
| "ikm" : "f39c81ba274637ba1460a7ecd776db66fa91ac12e1429bef84a9963b76c2c07f", |
| "salt" : "408df96efb424324020d4836d100280b70f5d0e850e5460db77c543224ad5d2ba935060d1b5d63d80923fe922db1220a", |
| "info" : "516c2d910a221982", |
| "size" : 12241, |
| "okm" : "", |
| "result" : "invalid", |
| "flags" : [ |
| "SizeTooLarge" |
| ] |
| }, |
| { |
| "tcId" : 89, |
| "comment" : "output collision for different salts", |
| "ikm" : "2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d", |
| "salt" : "", |
| "info" : "1301b63168af5451377717f7f5ed52de36a197ff", |
| "size" : 32, |
| "okm" : "ef369d7b63f5509da56c5f6e446e2f03b700ca40c13e059ea0f43b08f5c29f15", |
| "result" : "valid", |
| "flags" : [ |
| "EmptySalt" |
| ] |
| }, |
| { |
| "tcId" : 90, |
| "comment" : "output collision for different salts", |
| "ikm" : "2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d", |
| "salt" : "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", |
| "info" : "1301b63168af5451377717f7f5ed52de36a197ff", |
| "size" : 32, |
| "okm" : "ef369d7b63f5509da56c5f6e446e2f03b700ca40c13e059ea0f43b08f5c29f15", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 91, |
| "comment" : "a salt longer than the block size of the hash is equivalent to the hash of the salt", |
| "ikm" : "2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d", |
| "salt" : "0102c651e047fed9c217bcf915520532d44999534c1e7e7c87311093d7a3681aff3e2d335b3c6139b9fc66dcfe35573b36a329a550c4cd20bfe2a90dfea50167ff", |
| "info" : "1301b63168af5451377717f7f5ed52de36a197ff", |
| "size" : 32, |
| "okm" : "b8365c28c10d6cd188f01efa320fa26713f7d87bf18f18529071607d1410b93c", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 92, |
| "comment" : "a salt longer than the block size of the hash is equivalent to the hash of the salt", |
| "ikm" : "2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d", |
| "salt" : "a0b5f9ccef84deab2a26b5d81f84e62b8800dbf270bad71f53d66881ccc543e33c20eb1b6526ffb53ab50399c5c96339", |
| "info" : "1301b63168af5451377717f7f5ed52de36a197ff", |
| "size" : 32, |
| "okm" : "be14708389e4bf856681504fe3bd6a50eb33bf71a823337ada17316fc641344c", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 93, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d", |
| "salt" : "cd920e8dbf19ed66", |
| "info" : "1301b63168af5451377717f7f5ed52de36a197ff", |
| "size" : 32, |
| "okm" : "ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 94, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d", |
| "salt" : "cd920e8dbf19ed660000000000000000", |
| "info" : "1301b63168af5451377717f7f5ed52de36a197ff", |
| "size" : 32, |
| "okm" : "ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 95, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d", |
| "salt" : "cd920e8dbf19ed6600000000000000000000000000000000", |
| "info" : "1301b63168af5451377717f7f5ed52de36a197ff", |
| "size" : 32, |
| "okm" : "ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 96, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d", |
| "salt" : "cd920e8dbf19ed66000000000000000000000000000000000000000000000000", |
| "info" : "1301b63168af5451377717f7f5ed52de36a197ff", |
| "size" : 32, |
| "okm" : "ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 97, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d", |
| "salt" : "cd920e8dbf19ed660000000000000000000000000000000000000000000000000000000000000000", |
| "info" : "1301b63168af5451377717f7f5ed52de36a197ff", |
| "size" : 32, |
| "okm" : "ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 98, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d", |
| "salt" : "cd920e8dbf19ed6600000000000000000000000000000000000000000000000000000000000000000000000000000000", |
| "info" : "1301b63168af5451377717f7f5ed52de36a197ff", |
| "size" : 32, |
| "okm" : "ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 99, |
| "comment" : "a salt shorter than the block size is padded with zeros.", |
| "ikm" : "2b54cba29681b6ff2feaa9202b87322d861aff8a8260e1bda68d61979e605b2d", |
| "salt" : "cd920e8dbf19ed66000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", |
| "info" : "1301b63168af5451377717f7f5ed52de36a197ff", |
| "size" : 32, |
| "okm" : "ab13dba7201b6df9182666cf7e658b2660de998ac8410745c2873aeb502fa371", |
| "result" : "valid", |
| "flags" : [] |
| } |
| ] |
| }, |
| { |
| "type" : "HkdfTest", |
| "keySize" : 384, |
| "tests" : [ |
| { |
| "tcId" : 100, |
| "comment" : "", |
| "ikm" : "baa311295125e326efd92676775b9aa20a0acd68fdd9b05795cf82e157c7dac61394fdc26cd7f8a9015e9587c5d0855d", |
| "salt" : "79f4669058de474f47efb74371ca5b6e3788a729abc31d47113ca0c2f972217ac9deb56b317f1e80fe42f5504c8690fa", |
| "info" : "ac9954349e500c55", |
| "size" : 48, |
| "okm" : "5f027dcc4e32bc2f1c23de92b8b5fad67312fdeca2c09daa97bf0c81015bfe02ff2c17de1851336833666db3b29ceb16", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 101, |
| "comment" : "", |
| "ikm" : "a91adac5ab8bdd60fb350eb81d7243cf97740787877d41b40eee1c4c9a96f077e8bda335cb0e3b106454e85629bc5e63", |
| "salt" : "07e28c9f6efd74908c06435c95f3ab25f4d9a9e023f287e7298f9cde0cba29717baa1158e86fb70d5bd76d2549291923", |
| "info" : "3eb47169931585a5", |
| "size" : 88, |
| "okm" : "fca326c96af6690eb9b61b4b2a23d78a05c90152667c87cf813c2c16f56047a63cc6103986d3c2bce48c5e4e031dde077fc153876bab3f57e12e871a506278f220d6180321ce84eb1ea45494d6b1c5bf44f60a397cf01d5a", |
| "result" : "valid", |
| "flags" : [] |
| }, |
| { |
| "tcId" : 102, |
| "comment" : "", |
| "ikm" : "e80e0fdb818f228c505ea15887a42abfd7b6479b589a76c33b0f63c00e7d188a20ef8e98534aa85df6e482750f85ad7f", |
| "salt" : "d1dd17d92c45854e1c617830ec2bd6ea613d8debe261ac30f0fdf9358a2be2dbb25f7ffaa9eee85f06df367b370804c8", |
| "info" : "31580276db515d6b", |
| "size" : 192, |
| "okm" : "941c9c841ecfd3b0d2c0488e0b327d151081d6f4d6b927c319df7ba4e3c9dd92ebe1c5b420af2f3b50b6991cc57a4f5a6aded05d5be9d699b4c70555e3dae218eb520158fd63e7be11bff5c5601ed9c6e616147aeb9878d01314ff519c4fe23bf29abe768df09bc485c175d9320e93aebce8336bd83c400b69d07fc19ff692bf05d299b25679cd038bffa43405057d22f014b9db5e5d94f09d3f6cea5d479d7e70f31dce39e2acd93f47f789ff094c0ae4c68b231d818548a81cd1373120b0f5", |
| "result" : "valid", |
| "flags" : [] |
| } |
| ] |
| } |
| ] |
| } |