mirror of
https://github.com/luxfi/math.git
synced 2026-09-24 00:25:16 +00:00
Replicates the codec cross-runtime KAT pattern across the rest of the math substrate. Each package now ships: * kat.go — KATEntry/KATBundle aliases pointing at codec.KATEntry/ codec.KATBundle (one schema for the whole substrate). * cmd/emit_*_kat/main.go — Go-side emitter that produces the canonical bundle. * kat_test.go — Go replay test (TestKATBundle_RoundTrip*). * testdata/*_kat.json — emitted bundle, byte-stable across runs. modarith/cmd/emit_modarith_kat: ~300 entries - 100 MontMulMod cross-checked against MulMod - 100 AddMod across deterministic random pairs - 100 MontgomeryRoundTrip (ToMontgomery -> FromMontgomery) - Multiple moduli (PulsarQ, NTT998). ntt/cmd/emit_ntt_kat: ~50 entries - input: 256 random uint64 mod PulsarQ - output: NTT(input) byte-stream + SHA-256 commitment - Pulsar N=256 ring. sample/cmd/emit_sample_kat: ~30 entries - Uniform / Ternary / CenteredBinomial across param sweeps - Each entry records the seed + first 64 sampled values. Tests: GOWORK=off go test ./modarith/ ./ntt/ ./sample/ -> all PASS. C++ replay tests follow in luxcpp/crypto commit on this same branch.
510 lines
341 KiB
JSON
510 lines
341 KiB
JSON
{
|
|
"schema": "lux.math.kat.v1",
|
|
"entries": [
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=PulsarQ/i=0",
|
|
"input_hex": "db0e3eaa6632495984538bf368a84e7a04e79d6f75322f53d68e780d3775bcc9aaff63171361264fbabb315e8277f9667d622dd8a1d6f04238a4442d36e1b35b65a38e94ac00d7a248b067105041ddd99dd7796c7c0df7c7d5d1f496a175bfd53e201a1f7abeee59751ba0e7c22f3de7d5398b90da553dbd4c0cd011c96ff66ddb1561d01bc66b0e7b122574ecc1d6f440ff63ef1a04f494f8114cf4e6f22fdfb6ba002bd174682a550d6105679229b1af98b440fbb5e99a053168a39810cef326fe2172b61d510db7b4c402f01cc7f81cc72776aa8185a5bc269f5c9bcced3c0395ce7ca2c4fd2a6ee4d316a52260d2d1cd294a67d7b066d79cf8e458ff4f080ce073ae305236a142322b1d1e6b615b763372b25f6d37df9bde8e0d8316d62ae19142b6780fc2863f143ecd9b0106e984dcc7e246c67e78f3a6933908ab7248477b694d0648ccb27c1489d161e5b0cff761172b118fda22ae5b67eeb9142e56489baed1a0540990fbd59be28f79763547dd6cdf54616475f6ece5af82ba9920b8aabacd952569864b7d9d03a37e481aadb59fb8f3d262f9cbed7ea903955daf1f21bbd0544b3ee4a5d27ef3221f71504d4be248aa61fc1d3132d96d30d7bbf9f98fc79dd41da90a9dbcee280213cff61a4fc13ef55e5a5641a4c2882a331a5078ab856f8670e5a39deb4c09e13fa941cc3f41a9509ec46bff18838b2ed32d614c3b4ea7a03e64ca902ff9f102183a1df3df07ef9d95ca32e59beefcc75dc054850843d75bbdd0750235030972694b4332108687b8a548847c3516a7a96c9f96ce9c609b66247500e025ad41fe7efc3b701fc7a625e5cf3f23eda0ca79ed374275baa21e87f6621085fb3bd073ec83dcd7689b16be20c4ec2d3281706e85ae896a7a1ca2d5730a703c55ebcfd011a311008cb6c1d506f51e3ab8586731f536a4aafa7aefc9de0b851958612a0cc243107215ca11426d71755946d3ccc941639d75a8afe7899d510ac0942770e21160ae6223cff3b1f49cea46aebebf72b07cbeb9b935a012492f93331fc0ade6579b61d7c7183a32cea31dddebc16b32d41c37074c8185c20fdb727b070f90f6dc7e68d96a2e303c397d234f600a62b1934a404c3829f9ce5425fd79eb76de68224964179c7471c998ea3987c672b943ad739a4176d281b515ea4342fc41f5d40120f55c5dd4a4dcaeec03e44c235ef6d40ca0a0e4d693ad204bbec56551f62e575e3cd6a453ce2be741406f1c37dd7c55d266fb7d82cfc816ebba64572073052422ec5f1ff5f74aa54c2c486e9b26482dcfeba5da689ac321d3a8ad8bffc0c63926f1dbbce3692a4efb72573746feb2ae3114d1adcc810cc52ba7184287d5fe860a66b527b88a808ffb56dc51392149c0b4a7654171d5e236291e1f2adf9b745a862954133ff6bd3edc359751b73f40af5aecf18e769014bc25d534125aeb5eb54ea1c0bb0272eda94614f274c7e45d0ac1add80d6ae515e1138a048711743ac662d791fa063fe29d845c5b4cadc4a6f029eadfe7c0d7670eaec7d9b7c9b45c38fb42807546bf7164ba6ec7b1016c11e48d7224e3df269438d9b34214a86c15f562f6d73fa5bdcb8c46a19a05aa05c8f1e216a7461f3cf1b5a41d98faadfafe644d87c4ffbd1918ee92fcd6c16d62ba6d74927b787ea81917596a01abe401a31f1a82055efdeb663565f45495fc9a6c4a2a76f6b527a3e9ec3df86686334ea51a5e9dc673757017f0e7bbd0a5c75897c2f7ee553a3c830952e53a9eeda9440d5f9e8dc03f5dc415d6a898946f8610003fdb62bf5cc88cf4aa5cc88653c9a46d5c1dd3245c76915ab7f7b81a89e56cbb9cdd40c81aef035c4a2da718bd209ea057c9eb520715a5bba508ac27077d93c19d85bf5f8212501bf0baf022aedc90824d6b1f43e3a6210df3d12d4d1555f4f4efcbaaa7b5effdcab44ccb9f6b8c51ffb32d298f56d133aa16082d2c9583594054b1d03fe99aa93d5b82555e955de969c47a7cc47eac7ddf8ee4ca56f1c01027501818198ca94aa27c7953f3bb10d88bf1c8e6d1ac3239c08cce96a8c92dfa2ba9fc5833d6167fd30720e67d6db1ba4fef30ba9834a04d689ae0c37869a53f873ab9ec945a6e20377bf0965dfdb2aaa81b8df5cc0739829422ddabbd5f9bffce8bf33616e316334b7201ad321b352b84424e4ec40d2cf6357142e8e4d294bf52b6a602ba135b538aa94be8dd8dd11e2495f0cbab63653653b325fff193a6efa31d0c0722828e6feb80901db43c8dd7f462f87c694cc9f3ddd0b79a041789d80ee15f9ec13b31579c9b9431d1e4a7c45c0c67d14e783059f65760c3af98f853c12920d6535f67718a1b368a06c4d2eeeecf35553781adb9169977ec0b3bcade28d923b4ccb664e204aef202d499cb8a375c69da28ab16f6be55104f0807fba5cc1719e7de5a067fe62056d6f64cdf51a5d8f58f3c679590af4f21820fb56157e69d21257461c4ca227855d347e9d8aeefe082bd36f58cab48153ba3af33e964c2840c887b1103d3fd6e99d1a5f1639425767cd2b7f7464daebf672000d56b8b411ba0b0292a56e999b2b6c5223bcc40289cb619d7147834423fe679659a5a6115205f212f4561623f8fa1dd1469112aa10fab4f45fd8cfa0eb220b3d4a83ea5c7442b521c5b65760a7a69fd22f0a8745e3b4a2b3366ece6fa40575a7d82cf06756f2f272045f697352bbb1fc367a73aa5e08723f20ade80baf4ae5055a61e561ec39d3eda2ada2ac3a0d45bb72183f3db75a66c8b52ee56ec51de9cf968e47dda46c3758fbb6e74542f50600f05e67f8fe7bdb6bed04ed05255a0f3d1257ff35c482e7be1b760e1d421b975ced49782a7b8efda49432c089f38dc67d3543d13a4ac1c2a611abf7513cae9c15a1b2576430d98c66260f1e309a1acd241e49b347be0b0fd33c71bb1e889cd70704b64ab814770928578408847ae010cd8904e8e496b14122ad758dba265a3c30aec4fcdca41832df50de7bcffe05a5458e2c959ef669658232442bb738e600f0b3e282c33b87a20433e4219dc3e398b782e4ddd763bba2df7b5d700c78387dd9b10e38e8dbe4871c6c348361d9b1489b5fc0388f91c453a275a859f34e3290c9a07786beb5efe4cee36cb66a2d989b449af09ce71320fc536231bf156b8ade31ec880653ddffb89b272013d0799cbe2874bf843c939050c9fd07d0b7a4d45fc46daf81dbf1e7aa975de4d302069d52d80281782f366b403e6c2e3df939e1d4bc8b37567f5ea7408d5cbd0207959f81201c9acafffddcc53e24f8820ecccae940681ca87bd2ccf0fa19ee4d91d719a99b537a8ee8a86ae6186df6515dc49c13200b4782688134b8ccfba23739b69c09bc7a5fac38e0a92ccfd50f9eda8ebf64bfeefbc417268cfddc6c9d874d77ad5587593568c0c7e3559c261b0b4123b557ccbe543808a85d30f89439b3a36aa31b760a991064a7a0a136c33a033822ec23c13e775f8ddcdf00ce022ce04240603af38a7a3bc6f2bd7a6e830dbd03f3ce989548dbc836231b60712c445df3d44c28b41673372f6bea324c835e6ca3071a4b3eb7a0ad63204e83eab4ab763e9a6b77c03d428808ac531caafc8cfa95374cf18db076507b9f496e032433165c18c4210dc76d0e5b9cbaf86b4aaa8ca23f6c42c9aa28f0aee9bc80e0a55d7a585131b2fb99995ec53e0d0748c85b39cc4332617c7f4838d4d1943f3a40c4cbf9093046b7e9d3a84cda71ab03befa4cbd0d6fefe94b66f33f5864f182cbd8879e06965a1a43bfba39e518a92a9c45f98f83b484df32038a0c3fdb37c33e6bcb1657284a4455858a5c4998fe166ef6b08ae986f698cff81a54aa1ca0bbc31dfc497d5df4ff7e3fe381cbb16f9a752a6e0cb10b926fc6a1efd4c036bef569af95026278d5033bc72d4fd60e559dfedf507e670b4b49fa7b8ba7ba30c4e33d44e90ddaae5b6c1adc7016a227ac74cbb7c124afd7c18a9093cf9369de6f72fe76edde4eb7185200dc2d9e9f684e837f293d636a1c0a27ab7e592060bff0845af31b2863b034431c521ba66d1d938851e3350a6d930b9b396ef145315f85ea20616f12a8e3e34b6114eacf6df246839296274c0c3e248c73928052cf022b4dfd018f5bba71d598760bf4cb91a5a545d99d5e8ec7afa80cad8fd993d9484d1fdf40394b2144b80de208f0ebddb45b59bca99af93e45a946990d6ae06b1202bb03fa8d11d7b9a35e999c67ae90f973335523e299d1cfcdb9a9e57014ba4925ed29d5d965472bc25475b29c667f12ad9ee4dc147576fed75a753826450c5e182f867242689695df6512f74ece08816f040ba7243cdd3b0961ac407cf324bf5b3f531ec6c65f4352837bc99a041693fb5cc7413e4d103e0cab7619ddc209b3a3ee8b33923e7839003a413cdf99a369ce64608943d1127082d1f0806832413c31a5e130c83e6d08ef6b05a6da15960cf87c35eaf979b3f3192f387229bdede4a35d04081935e6e4ce039743e42890ac7e3bc34505a20bef255800a8e272ce7a510feade7a64512df93abbbcc7ee3d31c2b18c36834fb7f7858a009a9d019cf688f7f97c99d4d2f3bb61afabcfd1f3756443f428e06b9dd8aa58c7fa1dd879d65e839e1534003da0e631124dc5383c8762bafc3dbf404a72a5f8a448305461fc2a61ce308bc169414d5d2cf7471980cc17e6f6b7a346524a3060e2515dadcd99fcfd8de7f2188f372b3a1df65ed7532510416ab0bd383f0155bf730c1ffb1b2ad11b849c7c4502d02237625b936dd475d38a411a7400efb0c78a3865b9eb3ef96fd9e29ab79761199af0cac39f5eb1cecf132777f9afd9cdba3d748c85b3b58fe621b7d4c158ca5b1ed7425b4f346ceb2ba7ceee34efc50e642a5f39f9d46bd77bb3111c5afb56b44198bd342d0230affd6c979b90e749cb19a8d71a15278c2f18f8b03760677fd6fc5036e1936ee0c0114774c815da7c2dfbe56bff547340b66a6a98bcb5c76479ae5cff8c69ee3566441c0306d3b34de61d36b747121e0d232a8854f5a7e77f80302c6fcba05e80eed2db719c9d88bbc5ea678c622e57af6cc6a616900bcca7ceae582228ebc00fe678fccd680c2af4e7804f0e5ffd5c60c4e8653ba934a265c861c41b06d696c07039cfb0bd806e6a8eea120777d026043664d6ea9f26179f9535b87457efc322cc8eca7ad9912e42b878560299a46d8774b2df468438b21c734e75803ecaa2b7df802540e5260519c7d0ea4aa1ea781f2dccea1f0fb37eef057d741b69982d6de739ace2716c165b883a033e9048dce7a44c7a1891a3e24f4857652b11cb54324b9a688680447e8743f0872de69db2193a10bd1dac59c27959474637188b10ba6bfb37150ef8c36039187db7bc223995458b0aa1a01de2b15c1ca59017d7c443c5acc71b9e6d2e10cda9eb79050b48eb7f9cece166ad4640b2cce6b6e5ef44c3272f22e9d0340f9fd907f26dc6ad91cda233db79287211d657467234643f5c9101037fba5bc9e95c688924fcac3405f33433aaacacdd2b3d36b645e30ce3f503c3a81a6b2f753ee3b2c1edd090f473a67d34e5a0cfb0be3180bd278bd2776b710f5fb29aa13b190b097d43ee5e0f3b1c71847e8a6aa57ab79b354494344fb65c31ec2d075a3733d02794b2cf64356be99fd5531e57ccde0c57b2fba88ac840ebb91b32adb735033e4d96be5916b0325cfc7fc2b2afe2b60698dd5326c642fb2d818d39313f387009bb41bdcc242f8be110254c52f2ff974140015b6447ea30ad9f7bc",
|
|
"output_hex": "84538bf368a80000d68e780d37750000aaff6317136100007d622dd8a1d600003e201a1f7abe00004c0cd011c96f00007b122574ecc1000040ff63ef1a040000b6ba002bd1740000053168a3981000006ee4d316a5220000d1cd294a67d700000ce073ae305200009bde8e0d83160000e19142b6780f00003f143ecd9b01000084dcc7e246c60000f3a6933908ab0000477b694d064800007c1489d161e50000f761172b118f0000ae5b67eeb9140000fbd59be28f79000047dd6cdf546100004b7d9d03a37e0000adb59fb8f3d200001f21bbd0544b00004d4be248aa6100001a4fc13ef55e000041a4c2882a330000cc3f41a9509e00004c3b4ea7a03e0000902ff9f102180000f3df07ef9d950000e59beefcc75d0000850843d75bbd000032108687b8a50000e025ad41fe7e000075baa21e87f60000d7689b16be2000002d3281706e8500006a7a1ca2d57300003ab8586731f50000c0942770e21100006223cff3b1f4000046aebebf72b00000ddebc16b32d400007b070f90f6dc00004f600a62b1930000179c7471c99800004176d281b515000042fc41f5d40100005c5dd4a4dcae0000e44c235ef6d40000c56551f62e5700006f1c37dd7c55000064572073052400005f1ff5f74aa50000ad8bffc0c6390000184287d5fe860000dc51392149c000001f2adf9b745a000054133ff6bd3e00009751b73f40af0000",
|
|
"output_sha256": "058f37ded6deb4376b16e38dac88a09872712bf72395c5eedf7e2be54b37d1cb"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=PulsarQ/i=1",
|
|
"input_hex": "61f1cea77eebac621e7635c60a68c91dcf37c173c20322e2f9397c72fbac7aa220e2c2eb126e9c492fb182703ba405877573c1f8d19758476bea3c0ae54831250b21eff7f1e07e083a3a790d6d1794da999c68f299b748d8cc01e91b3e53a7c8ba2c03845af29f6f0536b8f37a51bfb3ea7b7c7c1aaf28c497b79e8f428a329c5281ff5c7d0daa567fa104821209f7cfe3d64be6f667741c2e5ac62662e8a70fb07bd301a0f0c7fb29d09b3ccac6f31db0fd984d8e13184f0892b0efd075a6a85356fd5a07b3187f5f7b34cc26f5f9ebcccd0b4c2d1df51e84f25a11c24de0ed817db9e403e5f3e334ef57b68f7d9ec39e9a3fe390e94f5aa9b6c021c86814ab09d2d7e9796608516abb8e964958e5ff4ea18a668569acd61ddcd9ea4263f81782a88901241a6d288a864db6e4a5b1a719a93183bdbbddab250e0fd2c108ff20b968971e84ddefe89ea8d87b0a73738745287dcfb28bfc0ae23a4563f0ee140cd97322b27d0fb21d2693a265752ecb3d6c6da0cbbd8bf3f52ef8c615f94d47b88ee4e6099ed687501f1e0c74d1facdf80175abccb3594fd8cbd7bf6bf0ac6af476d99239b16cee8b2f8437beb88f770dc2d8255e03b699010e72598b12d81d349d1382e7aa250742369507c84fa35bc6c750bcfb784a34657995a9792bb63179f8ab9c1d0a7f96b06b2d07e5e9ccedc57ff003336af1331605686d2f4f8fd5fb4fe6c66159f43b755337897154111d26d9174963a648634d792d31beb32f2ebd68b89b51f5100cf3edd79c6ff3b22f3d54432124b3953c84e65494a8bc07c137bc56040c1a465afd8d636275957c9dad42fe92da8b4f1678ff6c33b35776ea195b06e72d67022d4f9f669b4b38d6a69e443a3885c78e7be4aecd3ed72c67886c1b38c7a234cc9e96c5ab72713cc2d683849ebae7af21d7a6ebaae79671502e76af0aedb959a360f20457f2dff46de984d4c46d9407c477d2ce43f784e5df6556be7cf0f59a6c5b27131ebb8d7cbd2272d8bf7fb2f1be26b793535a04cb2329ea40defda82a1c38e566d609e51586f6b2cf11d65126e808ab25eccd54351c32b63fb0de4d01a7697a31c4146975173b81c306d147f6f9bec291db4ab871e3c1b47a7931ded0e1996c267d3556e16ed2bff4c9cd962c7e22d7b9204c76d37db1240d915c30983246a4b4d3227167c667c876c7c67e78ba08b217e0fa79eba5ec768a560b621b7da15a234430497c5218380effc165130466b9f69f47e15b834b98c9f7f4a716ea6b605b3a7c41beca92b630116d13067f70b69658802219ff987383cce646f746c7f3aef331383a20d72757f9541c411c0ce74fc84d93456add809b91ac30b56a8f513797cd093b9b9b12e232fa28786c04aabdf16570bb90f2f99b068a5b4a21a53ab674550993474d374d8087165557f8b2e25defae83075745863558e718a0e3498eb24d2eee6b5f33160325ef15faf887b8742ff6e9334980c74e3e76840f9ae6262d08cad41019400d7ffe49ddb1782cbad3271e50e2cfe60167e593476b9392a9d0aa649234b585b8f8e6534631d3a75a7556356f3e5eaee72b9f1da41e135ccabb75ce649e023e5befe02c1b55788078bdde4571e380fea934adfcfbc543b2309b9f0e085fdae9318c430bf1a70a1ff2786d3aed6b82346bbda8dc89bc221287582e32843f6f08899e7288c7685fda3ed10c8a4e8a8d8a191e2cf111cc10d8e640cb9b1e9021501bfae734bed5b541f9dd3a6df75a13d1786144e851added34ed789074903e52150051c0adb0b737c7192f973c6a2d126c1afe64d9abcca88ff7efea2ab2e9cf94f8b4ce19f301e59fa13b994e359f33da6ca68e8198a4d954c39fffb569584ef6fe0233f9a23d9cc3bbeaeb1ac4a292bd47ed93b888d9c002aa8de7f5229f9e323ab3c6737a265a4bcc01f7b501c7828d6a049a5eb180c186724701485dabb00234249464d72557480565e241f0deb79c19a24e57ffcead0edbe7525e9ee9fc44bde9bc0bd2e90aa6c2a7e7c270dbfb177f86b0cbe4edfd037c14bae43e13a3956223a6bbcb7931e857d46e0865fb5d09c6b55d4d2df6d7f8df5d799f3d635313ef652909056d2e1becda9010553034ac3e74f6b034c8f592c1e090727be9664b198c7b82d579c42be04ac17b538c648880d3a74fc862d60053e0dfc3a8ef0156f63e767eda3a7e5483f12a5370dccd416cf24623997cff47c09425613005d19dfef49bde3317abe8c03344eb3f78b9c764c50de8ea76f34a3a8e61e7d3fc8f2f36831705c0abf8e8c4e1035572917200ec5e9fdffbc204634ceb4f8f3004bf55499ce9e28d3e5886647f40516e49c405af7e78b5d5489440138de861235cc2a572f67c881e04c54342aef3dea6460322808fe2d488a083ba2eb684876dfd37371701d1a204d0f3d166d16ebd75beb28878e90a02a3e38ba71194ab48e6af01133c7c9c4387ddd57fa584a907cfcbae8c54249f2e94c8e67cbecbad9b4ae85eaa089484899d27583a19e709a0dcbc2fef861ffb96e3e3562011608714825acae3492f9fc4221ce8bf4f8b1697f8feb11f22281310b7c53d6421003b44494823ce460e41ce28b7b2d1421f43c360d5eb6e2cc45e7b9e4f2f5d16edd4bc2ad6f7afc1672e667bd8a667a447d2aa9225ea8190f14a18d27881469328a5792c566c7b195c0f7e0eafcba9e5fa440570cfd5bda40a8bddb86c499e4146f770ed7c3d3dc0c8cecd6426fd5f9ecf9c41872ec4b2b0d21ceb9a18693ef3f99482f556e20c89fb81d063756ba0d9ed304c1c499fd50cee3e3075fb0bcda639ce57e6994ae76a4354c6c1c6be9df7352cf29c8754d6b35abd87624366f06acec3a2ade3e89f595c5870bc9de1c77bd78ba23597cee6d19e4c99056b81191499486aa726b69d64d3417a6e48d7f9280114dc48e5d0f637bbfbd4969311d1f5b3a20004cf3899889c2b8928b2c880096c0cecce37d5b114cc9d16c8fce51dcd09871f854693f6178413457b5055e839c79582b091ae825852dff77837e112f46492a8c510ce0a5aafd8106597d8770287c0f637f427a60ec0753402f8738657187ec5abdede287d256aa00c861f4facb5a54bfa06fc9f13234dab3579ed82319d1dd31c8c17dcb329d342fcc07b7818c526c447c0602c236ce3fe435727a5f3377e65e15d0633da730c8ab30b1aa27008b029961ba3ef532fe800279e221daa5d21031c9939706d9f608d538fb4b0e0d21605ea1191fe2ec0c92a1bee3f526e8d7ce537c61a2798d483f6d27787adcbb9ccbdee60f7c95828d114bbb920c3d2a84475135dc59c7df53a6a61bca58bd337d8a7220a8c672946721e707de3f80d37617a74a78de899d2b28c85fe721af7901ecc22652a9892dae68f81ad85b467274f89da4ab43df43cd285a7f8efcec75ac8ddbcdf6f5ba97c2864c7f5e66c196a031ab8afd7af64ddea3a8709d913405f5270864d7cbb0e344fc65ec65333e11d7ca5b7f3ade439a8816122817895ad1bc2baae044f9e664638b3f8d644efb74b8f16df9613c87a85fa8d22b79ac80da79b996fe4dd95de7632c179cd2810fc32b7f1bb3c46015fd27f352bf69112d25281f13e479a7ad0f61aa0c2d513d3cadfe724542cf24eb31b494916e543064b6bda57af99adfb847525f7f85582a8b4eab2eb263e59ccbb98050baa409a71754e4cbe568c48142d5beaf435d82d76e418ae374565c94d5ab87aa8642da6289e74846bce6d29bb810553ab1f581a85e7270038f453aafcfd8dbaaf7aabc947db9ae02feedfec44c1c8918e5b6e6400d8a0dfa27c25c1544a9d53665df964506db6f199de9e9ec5d5a544659e32f5d0ef09bf8d2965d65ccb3d29342b42277dd96629d885308d984755c05f34a58e4e18de70b9fa304152a56e67e4cf11dc976e73df11d5ce1afa66987b5699886002bb467aa0b25884f23e621fe35b7092a8bdd83fef99ea69793ad7c15ad96a7363e3b2c6a70b2ca083c9afa45d0b5e23d1412ca38b9bdf6da44a95643e89b26b9be624c972aae6f28076df3c5b67e2241c70175b770745f8797fd4c2e09b665ef1393d3718a55a99809fc9f5586017ab0be43ad6b0aa2ac0f7f41cac68d26303e7919d473be03ae38d8d981731bca9b90d0529afe18babb0a0b1a440766a0486c04c1e481de54b2b4fcf4eea76bfa272dbf5bb11c273feaaf82acd085a905a33b3b73d757f05004ad36803b2b9c500c865097327a5a7612aefb4dfe4ca3e10503957602dfa20979b6945d905b4c1657d8ca4b1bc0d9fb0431a0e8c6118d768576b58bd4c23f8e0b216056eb6f7e21d5b11de19110588ebc563fae17f4c5c2bbe7f58f995b907f361b48f83189a2be4df6f533cca03d7bffbedd4e91cca7aeb9d7a0929a6a171098702b3c3d26576581eefa6b5609c9c4f94504950fba58f6d272d17fcb350d0424e1321e49019bf176995bb06cf17865902e345925f55c2841342dc5c3be6d5fdfc65f85a89b2e81ee39b91350a1ec927799b2b4036617a3057114df73bec199efeb890c9b04668e9845292daeffed1ec6575e3637a76e816c6fac02125590f5a01551494d196b67fba0b9e61ec399a1816c2d28ab47fdab8d7f6eb9c0cceaa35108e82067702650eeb86c2399b978441fe8a05d961dace05e5a8840d3a97c45d82fa86d0f95137846f03788559386dccd8fb69b35d07ebb6cb4bdc776ee5ff63a14b58b0274e948cf301201adb3c31af05241ee09fd38e9a4e3748020623757742bb3ce54c24a1018b06251bcbbb70bc242eb84242e54f8d38ced4ebb9e9295ed44c04416ed112dba720bc89702342adb00fc4be4aa69c0132e8a046fabcdbf41484bb4ebe445c47536f19edf894141f7a1adfa8c73ee5b74fe81151d12324e08e738913e76569db4fe427653bcfa8c8fc8baa3010bdbeac4e132113aa398c00afa0ecd98794568176590dc24f26a59915ab7cf612263affaa7564fabf1b69715a26b5eb0c91f0e16591e319af09c869076f77fe2a0dbb4b99fcca3e001f0f7dc8c793e520ae57a0a49f363f6e9bd5c8a852a241886d3c905f9dbba72133f4b14b914732e6dbc467da2ca7b1eeee7b8a52b3e3b5d1d2fb7633b5924a5911786c3b61caec79fbc9d58b7acd3b21a988096d2ba50cb7b81e2ba1afc0257f353f5e7a5389d45658795991f425ad129b7ef65112a065241ac8faf17a4fb56790c5ff2323d347bafbb403b5ba40253c460133219ea0ee51ba6ec7aab37a1a176714d4a2a057de3bffe9d65a146cda334a2fd519c8ab82988977266cd8d9898f284f1abe088c3c1d8fe372be5e3af791f9a515c189221738510cd30411338c0bc2018149ef43cb384aa180a7109012ee34b6b1f387c9fe80cee4e8fbcdfe44812cca7556ee072b1d5b0003b307297161d8310ef10298817255834890c53180110ef4294a7ca6a02ca723344aa24a917b1e3bb8ed3ea2f609a958f8d36e867ab8cf80751b94babc77a9d8cc42472b2b879985fa37dcc79c54f4b83344769d6657660f84a412a4c6d4edcd9918b7d98ec763beb07b3341b7e76d2e97e87d5e6697f387cf56a359cca38d7297d00a4f43c79e4ffb33db8e847b7a47ddf5a0a4fa94f70ea0aee0157d344d423faa0d900df67b0c66f0ae0c8600cbde1cbea997d4aa4845f44696d487fccd811906db2966c3af45781a545e6851126c0bfe6e4a56d1255a311132664ea323e8856d606240ea7165be7910d8b796221ec0e2cb61c4dd352798429dd9a3f0bdf2be75221b92fe7d11368a8",
|
|
"output_hex": "61f1cea77eeb0000cf37c173c2030000f9397c72fbac000020e2c2eb126e00007573c1f8d19700000b21eff7f1e000003a3a790d6d170000999c68f299b70000ea7b7c7c1aaf000097b79e8f428a00005281ff5c7d0d0000e3d64be6f6670000b0fd984d8e1300000892b0efd07500005356fd5a07b3000084f25a11c24d000034ef57b68f7d0000a9b6c021c868000009d2d7e9796600004ea18a66856900001ddcd9ea4263000045287dcfb28b0000e23a4563f0ee0000d97322b27d0f0000cbd7bf6bf0ac000076d99239b16c0000c750bcfb784a0000f8ab9c1d0a7f0000792d31beb32f000068b89b51f510000054432124b3950000bc56040c1a46000042fe92da8b4f0000ff6c33b3577600009f669b4b38d60000aecd3ed72c6700001b38c7a234cc0000c5ab72713cc20000ebaae79671500000af0aedb959a30000131ebb8d7cbd0000d8bf7fb2f1be000040defda82a1c000066d609e515860000cf11d65126e8000025eccd54351c0000c306d147f6f90000267d3556e16e0000f4c9cd962c7e00000d915c309832000076c7c67e78ba000017e0fa79eba50000234430497c5200000effc165130400005b3a7c41beca000030116d13067f00009658802219ff000057f9541c411c0000e232fa28786c0000bdf16570bb9000004d80871655570000160325ef15fa0000c74e3e76840f00000d7ffe49ddb10000",
|
|
"output_sha256": "e8e7e653dee67b9a53fe8ac6333d3dcbc42f48f9566b028e8c02e1cf8355b01a"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=PulsarQ/i=2",
|
|
"input_hex": "25074111191aaadfd39951ba3945345feb419866e3f12329d00dfe451d537d0dd73fb67686f2bcb8c6f8a4a086af5e74b8f921812297dad01472c55d47a08c33ca5cddf84d06475c60ab65a2e37baf467255d355ac15133a87dc836c988c7df7550026fd00118bf098de68fbf85607f7f6a42927a569a7f17cffb4dfce3dbb42db8582d0b3e297df0e8f3458d7beadef79d7c68ceaf447d921b2e3149133236b5b97e37a238d02c6c8dc9e943c8b9c06169d27732e9c74ee0f73cb939b9a8b3b7729e41049cf25e5c83a83b91f455bf276bc113cdeb026b896069eda5b696216323cb42ec0521c1fa09d9cb12d0e6d0f0e8ace28b9ef0f6dafdfc500106b95592cba8fd60bd5ec103d6a21d8176f3bc038a6ebc33e3127e764598dcecdf883bafe8a738de401e4af80ac3c0588241f494bddf6fc369a057327671b868f05b690bff66eceff0dce0a946194ac86edcdb17c49ccde965240217bdedb8cdc4f41619c41550d8d5eaa51f77200ffa31d9d4e437716513d089c54254552f1316bd110bae4664e827dd88dc81744507fc8ee775a3d96c4ed05c1d6f35fc258fe3c63bc14382b99c65ac291fe1743d0c581a4cd2bd77394bda15b9c231dcd04e60920ed3113e1da80e9cb805e8b3f8f88df0bae38757cfd0a8b5e5907a1c5b71a579cca3befeaf43a05036766adab146c2e3ed2932ed25b64a9975cef3747742f46ef7b9977a18bda3597e80714aec2e596582232ebd6b14b1e9e96ade569f9ce5706f60599b4a7696a46ce0fd23e48fa9e6209dc45bb9be49a9bddce8ab0dd198c51d9d6d7eb452dc7a8aed682e876e40cd706558318f3583f3fbfb2b2d2e768902ab9359873c9e787bbd515fcc711288947f4c87ac4778f51c725e70a8f38173f1524c7ddd55aa37ee0807c74ec492eb44528f983326cf1197f7b923de9856ff8b88b633fc383ca50968bc91fd937d2e05c5398aa5529ca02f3be510322f2b92a6e08663c48739a5cf10117f803bba0eb3b341e24e66f72a1c26e6fe2a696f5c796093debf5e3c07623506b9883d4af02b57e2481e36bccc251147ec6e4e2ee23017b05f0bee3e714b4e3826bfdf4502709f969e5fd59624a65d1897008d89fa94b844f2375184ffa30244a1360ddd6ff481d2086ad2e165bb51bbc6358b89a07ce989782551082f8f49c769fd3be7e7a575516e6c59668f682f4c3920f2ab314d55c25d9f2fa70ec19bb32daebb60dd0b3bcf15ffae5f653c8dd2db00da810a9b9a1c4e446a0ee0190879e2f61185597af9a95cecf551e9ead1578abbfd6cb12105a31060e34f28867c1488903e0810a02e78ce293507328f35cdb8fd8da8bc59127d8913605161b49653c5f9ca45c826b499fffab48d549ba4337d5a829f07b3490598021f308374f182eb2f74e4b7b5263fbf6f411613f900ca9a1a83e3c3586261925414e80591544937b73ea5d4d3d77976fed4780bef3cf5cb5d77c1c9de4f084f5fb3a732b38364773b0bd0c040529db59421937e2541b834771875bc2951be8ff3b1eac97fdea30c05f9a5eb84af9f895003c6f122773cfcc042bc4d975b0167a6134c35277e0f714b39c5e5de62975875146bec93f6bf88105f0ef217224c4aee81053ac71b549745522518e254363b1065ab634c9add4e4590e9983caa2b3beb77b84c6031ecb176847e535fcfe976195e700b93a00a85930db01b58601611176ae2a200efea9a7056d2b28580c83973802fd0ab004f102838a44d601f3e8b44324b12c024570878371d6f3627d3f644441dbcac0385b643cd19cc5da73bcc3a4ef989927b9a56960cc5eae2e5953388c380f11d06d44fe123d6025305fa00af704bacb5d820d5386d264597c997a1a40a1334a86375aba73fa59e82a536cbaec33cc6e9555aa8e6dc19a3da0cc2eed820259699d822788421bfec67cdd18845a71e3bfe0af256c9dc02a86fe76ea3f79321dbbd0106cffd5e8a0b447bb4d90c95a132b17521e9dcfc6fccd8f61a6fe42c135eb34345a70f70b7f385bc37965266d6ef26e23904678038eaa1cfcfe3210426e32ddc7e76cb5bf087d7cf10a3169e59349329631e2daa925583837eae2c1806f84fbfc6598c18b20d3333843198bc79305aa303e3f2a9fb7e0e9f042456de0e3e46fa9da34e113f556fd085a5bcf5ce8ee66641b46ac40456e62f794f6bd271cd409f55ccd9473b86c900bd8e395c65626544488982fa14c8bf12202c139e7afb42ba48774cbe5a836c86f0f197f2e3ffccca07499ea1140e8549d32a107bc04caa0ebff8cad5715fe2070cba17b6dea3d1f0be9551c8d15d28099a03fbee8e616bb0271f6d7a4c4ea4210e919cdd75642120e49673bfeeaaf8c93521b9b8d9b4bfd182f6731bad152cb375d8776cd759868f25d5e899cc441ca5118a6d045a33193bb40e487c64ec3790fc20025b138d1185cde0c0c02391d4930903c1ce26a0f39ccf1e0361d9dc58e580e00238780c6d04b5ac857a08239d7f2e923a9bef23faa679ce0638cca242ee5780b2ca8e37ac2c9d40db10e83f520f712b107575d611c3282d9e3f79204c8df0a7bd169a346f9ad0be84a4d96ca5b7cfdec219fadcec320a11ed6fc7728f42c5d4927b5d1330868f2775c0aaed8dba8d41253a23a27b77c6d2566a149b436fc05563552b12bb0f4c5ba11b8ab5f7d40e52274afe29e36c3585bdd8fe062e657b1d47d66602df89a0309bdce8c548395c541e19945c610a34ee8e039166f283ed1b53988893f36d0222c5510a3bc1734f1f491f49b9638a28c6a4e8498eed51c87a449f8d868ec9d52c96bb8bbec52e1e1f1ae8ce4af083925f95e9fbd75fac8c009621d92f388862187386476c52de684a597f905a1b2f7905f7ebdd4876073d6da3e75f843869ec872e39bf5715c3a9d445ae6c17ffc0b1bc7261d8d549c7d6838fc1465b0d5856e89140a6cb7bdaf7b43802425fe6af779fe6722d5a8e7ac307d9bca1e77f3f7c6b58c0f8a9da760dcfd0aff1cb3fe84da0a9929a28991182a1bc49caa0998c596b655dc97abba5932c96fb0d917cecfb4b814b9106afad3df0939d67697956ba139e3e14ea746330e8870c69a59a5df6d186323ffc5322b74f51efd5b5d88ba801e4d25673db68b09728df63b7cd12f488f8abc07fd23f92eb972b0e6dc51409e64506283e7fb6802b616590ed808c91681176782b2a06aacdd5cc926e73c81819912b626de180a54f422f9b94b4223797586b6e71b2dcc899021d536ee8549a4f086d99bdd6e47d3118661fff895ccdc3e9de79767e944383222e33c696d576d8abd8b9f6090c5c5777a12419d0a872397a542ed813f069597eba816de0519038cb1ed22f5374538d8ca046ea8daf50fa7259ec5cf4452892ab556189a147870af9f78a9fc60304bdbbb60c5e383e5345885c97ce606128cc0aa9283ae94ac75b9b8da98ceb2e563a9b55e0a4074c1162c00a1cfccc0179e9ede138b982d6f5f270af3b8b722d530b5fa49196406cdf796c2131de71623774f0b7e4746527fbbc381e0fc8076ebafa113b7a828b4fc125362a9081d7a35412af392a77cfd625c2e6fc4f63d8a8dfe9eec697a71443898b1f627c754493308e829621420f134e1d967d0606235c15616030869817c53fa55f3da849a2e0c95519c23c2ef1bdc07c43aea058ccecad933e19144612ec2ede7b629096779876f56437d408971107844be8bbc93c4cfd7f9e2549b53192ebaab7874f0210a03c2eefea2464fe1f6b14169bda57ec4a699f4d6e3b7d95fcc9588aaf87124a20b43ae3cc1cb72b450ec340426d7399fb095fc07968dc655889352f5870a3c4f888391626389be7f003b660f4322350fc6ed6be8f61fb3627c00a896fa323f756ecad684154cf9b2323a57d66ce9c1100930000162ce874371d3d892d6aaeb538248d972af48fb20b9ea6d702a6c98acda597467e1d812afae46162dc424d670b4529743c64eca47c6c4271e6f6fa2f9330e9f10eccccf54cff2ed39b91e2893baf527faf9c9c2fd752d0c08c241c7bceb0a50c21df7430450f54d86381cfae02dabee79d84c3a159bcbc44fb779622d8ac468c3cb7fe637f53f19bb4f6de490aebb7ce2fca2fd2b07b755286c42b22b1ed0768dfb3eda1917d0b67ef6d21df8da71260b6b7f010045becfca06d3d8387fcb40db8c1f87c8fa3a3c09b48c12e1b7c120c6229301638fe081876f3268667a000ae9945a6cb59613651ba07f157e115523395366162c61035f43ce8fd3dcc826a7e4d132ed885ba544b499be630363de0dc9560cd7c6279a1716040eee1714c9830e62293aff857ed9cafa3c1946915b4dab791eb0273587e5aafdddd407293b67b3f9ea2c872469efd79a0744a3659a88dd9bb65094efb232aab4536292b9dc0fb3f0b7a917520e8fcd65dc4b70cf4ff131ecff2c449890036b4ef7db60f20d47dea1216fa6912e4b205044f739d0fb68f8c6018bc33ad68b9681f666258813471ada58672af806c78f436968e526d8d59109302766a8bce26250463d0cd409e11b66f5bf398e38a43a40b5f5db492fd2db6f8f66c584fdf6b38ebac9ff9f2c3d711c9867831c454249ec4107ca22070ae01f108cdea72f9b33df561311711a366ba0a532cd75431247c306707c36720335f783fead93466b168c98de98b046f1b70114b5ebac7b76a0425ccdcc05a702da8941b2f769e5f20a0500a16a3ef7c54927197166d84ef5263cdcb304929a209c2b378e78ea38ef18c9becfe67a42a645fa5c27c5b1cdb6eb11e31d084a917cd4348f00c35e965935f67703b94b9d18d69d6732945622f542bc007b82431266e4970048ac4506d98009008d2e8238451afb3e0ff44e7f3c3dfcf9424d6806aa925037616589be090a1cd376d766c55ed212e52cfb93d5942c6031e1064a9f2c2656da7f57d028575cf57c9a9aa5906199a5dda67cf2e1d7ea6265dc945cb88e4ff0209d01bc24c90f78557a9021d0383439ce2122c9b1ac3b14746e43549fce0166e50ad0aeb5391944e586e69bb6ca36efd3ff2193de7c986573564a028643d4d15ea59c44f37b92ae89f9294df32b8276ebc441438025af6289261f1a540bcb7dcd0f894b5d3712efc3f45060cb8c91cebd43687028dd7a6172b13c44ca6451bbebf2ae49620c26954b164038bba6493592bf02050f8834f3381634225e500a3ba15702630d1bd9fe6b3dcbc635deded5580c4cba05907279be6773bd1391def2b7eccbd862596aa645590e3a2720b68bfcda3edd2de873f6aaf8dd831679f034c41144add2a478cd291ec990c23e736ca04fb54d1c9b31d0e215333696bdf668d688877ad728dd6924bf22be2305da02686203b2c3e5316208b7c4af38eee8cac7fbb69b2573bd2ac43f8631374fb0eb0b6c38603e61c6c5d1b767d648298f6a8cadb375622bf6f412eb14f36a8c5df034e9212507eebaff3c7b4f3b4e728ab4e61758fc21c62fe7806521b24fe1a8cd9f5d19337ab9b93a858375edeb8e3f4fce71b9c32735d1a639e0990f96bade84a6ffc100d6d6d4368bd337005bd15ab858592c541dc0ab4aa41d583b67b820e1820f433b653691b07a0213aee6c924995368c234265405ed61a2e76c683e6e61f1782d97902a2483495419180429559fe5d87808c7222c58154bd6234bb10b0593eef8d02d7328844db0cf182aa359d6b5e62f1ae076efcbfde4426b590b56574015380889c19011ddfbaa2adcf9c60d632fd120d6dfd5798a33986acf277a2cf21a8fa9efbff85f67e7c6c9",
|
|
"output_hex": "25074111191a0000d39951ba39450000d73fb67686f20000c6f8a4a086af0000b8f92181229700001472c55d47a000005b97e37a238d0000c8dc9e943c8b0000169d27732e9c000076bc113cdeb0000096069eda5b690000323cb42ec05200002cba8fd60bd50000fe8a738de401000027671b868f050000bff66eceff0d00007c49ccde965200009c41550d8d5e0000437716513d080000bae4664e827d0000c81744507fc8000014382b99c65a0000fe1743d0c5810000231dcd04e609000038757cfd0a8b000007a1c5b71a57000066adab146c2e00000714aec2e596000032ebd6b14b1e0000ade569f9ce5700000599b4a7696a00000fd23e48fa9e0000d6d7eb452dc70000b2b2d2e768900000c7ddd55aa37e0000923de9856ff80000633fc383ca500000c91fd937d2e00000510322f2b92a00001e24e66f72a100006fe2a696f5c7000005f0bee3e71400004f2375184ffa00004a1360ddd6ff0000bc6358b89a0700009782551082f8000016e6c59668f60000f15ffae5f6530000c4e446a0ee01000078abbfd6cb120000488903e0810a00009fffab48d549000037d5a829f07b00002eb2f74e4b7b0000fbf6f411613f0000a9a1a83e3c3500005cb5d77c1c9d000084f5fb3a732b0000db59421937e2000030c05f9a5eb80000f714b39c5e5d0000f88105f0ef210000d4e4590e99830000cb176847e5350000",
|
|
"output_sha256": "7f86e886e97063ca5e635a0dda838eba4dac61e624efa961c6df1c176ed7cb6c"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=PulsarQ/i=3",
|
|
"input_hex": "4c99079c8eba5a462faf1ba508792afa01c7172c70299987a4d0f43d57ace71d30b992137c759f1766dcccb4b242ea61d47f7a3572e876c30633953a855b535c1b0a676b406d0bde4de2215e5fffa9e3c9ad64a78d5c3b949da8ed6e56b65cac54eff27744c6ba85b5c00527907fc9a22fcf409c93e8de11975cfd8834bce036403ad40c95be82bcd9cd9bf605bf2af50085c3fe8a81d70885e1e8001b8414e2f4e0aa9daa46e763540aa43a6cae27c1ef9c2a22d4d606f18cdd970bbc4ab7f7408648195701bad31fe73a68838d62b659ded361cbab1dfd97694114d00aae3a16587fe97260e83efcf151075c016d340be77d79b914306d4152227f9756e46988441b5073a918d7b27d56b80b4a08465d67f16349ef5e75c6f0edfca31d14ea08f2bfe9f8589cf6f9345f7462260100d5d7cfd1fb28979f7bb1c8491326896c71b3a6497a94d828296221a0ed126f9422bcee94f0cc3a867d11812a2910350d8a7b69e7a7b8cf7fd00d1caf766bb0e97bb7cb8287658c2466a211b6c7aadda22c77682fad161e17e6daea093d584c154f4521b20f99d53d6078acd8825ca1eea98fb93a43467d4e1aec0eab4d8dbccc6bd161a0f11ed8ae8c094bafa2a3690f4075ff4ab993fb2319afbba27f410ceeb63049e902dd1f591083df4ebbbeea6a7a5f3006362018c37a7ee2d60c4a65f8da77899abbb8b2b14694c7450825ed62c8573979938ec64fb70ce2d132f1b6e7746ddf0675bc94d35228c535d778332fe7cc7ea23293b8cb9b069a2099aaaeeefe1be2e537367e3a747e8c30a06d28321d446251bf285ee5b8baedc4c316d85007e82dad366af6507d8ca88530e2008461dcbab534491e6fa24c0d92d6d002c469016616e51481821db2659625f1fb79a89d35b2f607f6e855b219f5f9344493dcd182d155b0e19cf2417dde448976c7c70c2febbad24a0435a8c79fe0ded0b1c0e3710b8a5a388b86885948b5eddd504f44e9ffd5e1cf4739e92e97280d896345e7efe7d2f24d20688e306a4ff831f6c1c51b83f332cc50c011d7f35e463e69ceb10fd3dadf2cd68e08d8fef936912b69586538c610358f1e80e1b609a025e73ca32e60bfe5cb79eabb0e16c4eb07953d05699be87d467aeadc9fd4342f525e278abc9eb7650a4eefe523d17c7f4d7d7c7793cfafe009ec805d6817fd24eb410fe23ba8d50a2e12e4b9146095632d655a480a88c265b8b1c364f020e3bd2f21ea5a93a186ccc0c1ca219b3f1b138acd96b5970a95a166fd79e73ab11c77dad8fe81686a0a9089a85e224960d3ba067a1f2a54d152514c5778853a58c2a6ddc8ba52af131e4454270c560ef1058ca7a3ba5e552eb2fcb87fad01a093f35b5c91ca6b5458a216866bec5e3dba8876fdfbe498c808fc6c94de0a438d78610cc78b912af0797b315af70b30acfb276529b228a2c29d4f94ac4f5395254faf429e451e6a4455af616e6474a7e921d9305cb3374996a5d013455c961e24f066667bfa38f2b23a0facfb9dd95210656ba0b05cd5b87dfcc56e304407988001c1255df8e3c1525c24068d406ac99b5e9563625a7652f7a8e76a0d7312734fe9126b05c45592a64d0e18412f3de3f1c94809b0343a0616e16385f307747596cc454c1737a273b8d746d7bf378de0721bf508077b601634589df9031d6e3fe3052c80bfab71c0bbbb277bba03a616a92d7c8f08fd78ccaafbbf4dc08cff9e05630dec034df8c309ba4784430e7d73e859211d62c220994c3b3ded626eae1483e1af8e0d46001b69beaffb501931d0065505736563cb18051a3a7d8a5dd42f816c5903c67b0e29c5d3b8d3232d59e1b67dc94596f8fe64a8d01a5d4fdc8a188902d2eaba0c307f963ce68cb092562bf42773b29048abe424fdf962c08c4cfeaaba3f49966a84ff07e428f05ad59316339dfd345bcc46d8ac7611cd3b2f322a22a961f333cc716b2d109bcaad89b4cb3067e4f09663e9452f5bf4deae0fde9f35e90a089a993315782c16e95d031a56b3a0528b39c1b4b48b95546fced4288292c396c0145f6c3dbab9339314dd530e2fdfae140568bbf52714ae9af73b55edaf76cf3e4c7f3514e7e9e4d7b0874048fe395af68ae63c0a2b51eecf8b527ff0ac8d2a24eb3f889cd1d657e5ffa1268b910241c54c11dc8fc3d1a97e06751084fd5ea2605beeaedd048299238003c019df2d6993fde33932b3505adfe9008501a865c9e3b16d4215d1c61151e0b3a772af9af43534becb0eb22122bf6b6d2766a83b0da91734042215b46b12a30a83b9fa366203d9f74139dfd37cc833945b6196714a0e0fa970c0016f03c0c4eb9655664d963e7b02f36b66fef7a44daf04e56a4ea118a7dda533c962d32c587cea036c9bd9ca063eabbf6ea0f1bb24b6913af44a63cdc3597f0c47db795f2bece8d4286d74efb02ccb6b22378eeec6bd496dd1e1cbffd42c592c1a8a0942f25ea3977a93abc1e149b05e56116867267a5b1aa93d91b4d0305e5806d216bde5fa2f05adc698f894f427766fd41f4ea36deba6d5ad6b40034e04c9bb2402fd15c1f54f09ad7cbb6ebc28fd5a95771155989680cb88e8899f701610b4507608f6f59bb860ef4358e736eb8a26f28cc2c3d45c2879402af0af1d5aeb224f6b8ad316c62aaed057741b896667120178574706029f909d3e11157023173ba2d6ca46c5a849a3f287734553425d78c8158a0d2080d7708f0f164f991d35e79816f9462188ef3d484e09efc554a98d7595f5dfadf476a0b60c5d3c682a708c511ef493f490b16ab0fb58368fd071f3975cc6c081431521f4e01bdcbf4c9ad15b09dd693d806bce622eeb6652185770cefe60da8ca814fe086cd2e8d9e06f10d4af01095f093daf0e9bf35554b9f790199b76257feaadfaba459e03b50048b72744fb6fc9685b1992e0bbb84a82a0b7d472b3621443c545a6b9e659adef822223da2c9fb7cb61bd8e9527844c37471dbd863133b2c5bd6729bf4bf9b8fa70b3a992683c97aa152a1253060e1fad60413b766267785b999649306a3bd581b599ba2bd37f53f3167711c982ba8cb67cb34dee4c016f922d9d754ce1475b9ea550a9af2f849bfc797314f963fa8c25c934dbc3df85d024bb485469c6ab12a3f874411f1e7c44c665844483c39dbfbadaa8d0a6ef6869a105d56cd8b265105050d4188482334ebd362b99a7b789526a6bd114900ee5cab7db099a2d266a39e8596dbf84af533996dfdfb3a0464350e25bd31b147fd28b57570291dcabb9db28b4fb670539d58398f00dea849a5f8dbf56aa1c6b49364d6d9a03880d5e3c0445578d88d94fcd946244500d4a7b5ca668ee7bad3e2064cae222595e4485ef348dc5ac03b98a7c68ae2bfdeeaa829eb7c8829920a7eea35beb135f96eb4a7354e6e3a68ea6aea68c684b7f718583683c4763de16e4a53fdeb3624ff7c23813f4950ff36d48fd388c827cb5d67a304d7483376da26a463be5b0fb1a57b17d8569265bd7080f20d0d0591a1b5d38c791f00518de8f527a5822dd0c9f7b100a0d18a20af1beca97679bde110a000fb3fe5e22b1e7cee88fe6ad8a56cd217b914463ec9a6d5b1a1a418eae674532f90832961b78600311b38cdac7dc45818d69ae7f6dee005579c11168b7db74afa4aba2632e10c43c63294ebc4861790db4bc08f2f3ff95a3c4a25ca6274fa0d31d09499b91f2edeb4c624ba86068dc48f7b6c9b2e5e63e612e0f5c508cea50fedad76d25011ddec183d91748c7244be5e7ef723f6f09870a6147b9496b1747ecf41cc1bd1877b5dd650d0a873384dafa038e27e577d44f1a5fb0e1acd7a732961639c71164d5d86dc91f56f8dfbbff6b18e978582618e54bd63056e1116cb0ae41ccd1ca095092c4931c71e24a0c6d29e929483cc9e340b5a7095cd330e0ec5fab51ecd063b9e941e2ed9eff614d95d2887deb3776863d08788f0ef3bcf0252cb783887393669749df0d8d30c999e4ec7ed6f3a625f045a6502d12cb990d590329a77e03d6a029482356ef0ea09392a62c1134212e2e30de0326c1e9cfd5aab6135897a121d03d0df42e1097ebf2708b53695584a85e190ce09209f7f7591440eaf4031d8e451d4ee6e3d9737c48f12bbbf33123c9f00cce889fb9cd89cf61b78c027697adf7d2da685214a4e3faf8b0f73e22f0c31a49e3debc100c00fc3513799f3c489234047d8beda9a7af48037802158a1d7a7f81bb6ac369e0a32ffca7bd056fa53c23c9cf032e152f50989e2eae678055f38c2d6a06966766ce8a18026c21fdeedcecfcac968efe6befe31945447dd789b54822fe6bc4a4a6ad55edc0402a1db65b45e8cc61b63090713518830846b4cc7f4f9095ade8a055d4ad34c65601c1a1153a4bc48a28e76979fe46de403bc726a123272d41b2bbc734766e8e7d019454e8f0b368676deab83cd4a41b4a33c486482cba3c29132f3d53c954eca6faf1f106a12e0b6182ce564de74661fe505e7f68472a31a2672a6ec30802a369df6f8a2c45a1c5f098c527f0adf98a769ad88a1adfaa5504653b64d643e063616b5242c35952ee7118787bf9ed2fe0d34bc905e1d3071c1fb1ec019856d2f817d7e898a5f94b1de0324649827870c60f2c8102a9f8729ff5489f59531ae51c3bf7f2e02c52beed272ee9524f1ae5b128a29bf8d39ce51eb961a2b03e4c99d1129649d69fcde787d0d5e3bb6a73256e27beb06bf3bb1c672b76ef9194b81f52ba62e141f24751d90c31b5962c7457fa536bd337919cf641646f698a0eeee2ece31f39963dd1002446a13697ead33a2e61c0a8b4b0cf7a6a42d589d86dc9a50025405a21e64ed34121c6cbdb2986303e52ff931e47843693ca2fee76b537ed7c7beb1778888f6bc1a49ef8b316790fa89783522b942d6b76b86cbdb69d29f40752caf699b2ada4a9225f50495dda5055c390948a6b0224536273291e468651a05c61a8953ae9ed319152406c5a65207a7b2cae3ff6398e6df0cf9b692fe9294e038abc949aa3639e8aa49d657bc661527f2a576386cc086a6846d9a85937f8062c8d585d0d1ab8e0748140212b304e39f4b47bdfea74aa0299fc7b445937cf3ef3a79fedafe10162b73d639967abb75dc79c249a63a063d91a5deaaed5ab6daaba2d095d6852c9bb4352a2d35228a97827bc2588a14051aba046960e463572ad3f26282e2cb51d3e4d016a831fa37299f6542ab02d5ff9b11b7f61d51d1ee7ae6cc727ee397380b93f09f85450a8c5535e3cb782e0b7ea4a6647a377c41bbb5092d301ae20e72502a72ce69c6584ac8341242f0cb5c021753f82dbff37f406faddceb43bffa331a28e5171baada53f8ef3a9f952b9fcc872b38417c619c1f16d81ae60e6ab78e1088fe91435c1c9a771e4d3993caeb39f5766152256399a3d8b06ca50e62b89485e03224801c45525f593db457ec90fd92d9bb51801b7488d283e7c3fd3172dc8c3188e5a20ef7bb6172d1d2b159ff40f180e2f4d8d6549842bbfbaa933a248b56ee7f2f96d7a66e990ce740f5e7dac0d8822ea9fa6f7c42dc34f4ed12aed3fc8cc05d5c04302d2242966587863f6deadcb4d43153e992753e8fd447c47f80d85de746bb6f5ab98cebf977aef5355d69d73432207ed89ea8d6ab436e0fa6895e066167b4292931aef370c0ba95192c19c37a78968b4039ad28cfd42aa4cf03687357eee75d7797c8b5b9a032f60f62b66c282948822e305af0b3c700d73ace509c4aec7a845f1f23ec7d07fac1314201f2124fb12515535f5a1ac435fff",
|
|
"output_hex": "4c99079c8eba00002faf1ba50879000066dcccb4b2420000d47f7a3572e800009da8ed6e56b6000054eff27744c600002fcf409c93e80000975cfd8834bc0000403ad40c95be0000d9cd9bf605bf000085e1e8001b840000ef9c2a22d4d6000040864819570100001fe73a68838d000097694114d00a000016587fe9726000000be77d79b91400004152227f9756000088441b5073a90000b27d56b80b4a00005d67f16349ef0000c6f0edfca31d000008f2bfe9f858000071b3a6497a94000022bcee94f0cc0000d00d1caf766b00007bb7cb82876500002c77682fad160000e6daea093d5800001aec0eab4d8d00006bd161a0f11e000019afbba27f4100001083df4ebbbe00007a5f300636200000da77899abbb80000c8573979938e0000b70ce2d132f10000746ddf0675bc0000e7cc7ea2329300009b069a2099aa0000fe1be2e537360000747e8c30a06d00001d446251bf280000b8baedc4c316000007e82dad366a00007d8ca88530e2000061dcbab534490000a24c0d92d6d00000a89d35b2f607000055b219f5f9340000f2417dde44890000c70c2febbad2000035a8c79fe0de0000c0e3710b8a5a0000c1c51b83f3320000c011d7f35e460000ceb10fd3dadf00003d05699be87d0000eadc9fd4342f0000278abc9eb76500000fe23ba8d50a00005a480a88c2650000ea5a93a186cc0000ca219b3f1b130000",
|
|
"output_sha256": "b6b95bb1266ac6c87a933f23eea99461be3815cb60219930793ca6355ba421e8"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=PulsarQ/i=4",
|
|
"input_hex": "e79ded45853a009b4f2ab687f05d9e7b697c0c196a822eb1e37f5165d80c643829de16d070593f661a84c3e5bad8ea542e41cec1a3fd8c73f8c6336a1a92ad4ae4040fa33b5f6aae0b6997c994c414df06deb66171526dbd1013bf8951b9bf993be687599c5076418356aae324f7bf040d93451f8707055801803eefbab9c3e514d77de088997cc39197a4c61420959de81f0e3b253fac0025e12708297156b276939767ec967c398a6d22932167e2b885ddd4a1057cf430787fbd07439388c8329f3097dca54056667d723d4e39d76f3a242c278fc13abd93b1ab63945a35235c8704633fc4796254a372c5bd7a8564f216ea91001eb21f9093e59bbe0d139490e5267c236741a2cbdebc45f3e49bee1b0bf10dbfd6fe2001e48e19059f66b13994c5af8b676b90228d820f74f941b192488eaaeebfaf2931c832a5740c2708465f9bd2531a16a1cbd069f5ce187ffeb43c86016d867c88909fe24f3ea7c62fdffa6ab9d17e4ec198bd9e7c928514110582a0c9414be6e1f951f85878d4aed145fcc951143ce08ed7b5dfd438b2a6a42580d46b6136e60140f5bfc54c8c52d344e760d80950ad138d958e8d550342782260f5220df8d41d50fedf69ecc17c0eebf6b79885b5888aea3476c02a759bb01dfabaed69ed95e0a12f3f0c17a1368da46f874d25beefb0339c9d724f86a75447e47e4022821ba87101c06e6f89ae4dd5220c0a96ef8a0be4f1a57f350ad675c377cba269d01a27bad38321ff03fb358d2eb1be77bac516e527c5036077249bff1530a7c19402e7dc73eb1a9807155bf1d1b7784b67f2c2477851c747693983ce27bffc5e27779e214ae0c128d6dc05dce310aeacf25b04b0dcc5644e98896642ae4efe08e6b93e059aee5aa43fcedb66e9235f2de1bc225f7925cd600a6f3203c31175674e7021e0527cfd82e882ebbeb5daba3859731652870a3e537863dd1a7f8c2b3eb4d1c8754ee4dbde36e416f590891996ce15fcb41a52b9db2396b617422943456550e235736c31feb0142f458198d242142bf27d116cff60048a1cf24fe9a3245e773b79bfa3652c926d57563d8ed67d9bbdcf676f8c653c911a34d82ac0cca0bfc62c42eb7b98cb45b2c68fb244fb4b941912ddf8e94961fd6ad35e858246d2b5e47f1ef25062c08b243c5128b71d611a321262b253874b1f584b604b3ea36400c86fed79b8be0cccc19db8303fe024036f6b64e07e31c10bfca86fccabd8a2a96f7a7ce8270eee6438abf37efc1a3d30b7018d73436f5fe29b25511971190b45ffd49dbbc12dac5102694a794067e8579ec13adaf3a176ced0d433e67bef8bee40ac84e83a9a13861b0fbac9de6e481d3b5fa04410b0a30ad8a3f063375c3d325d29f6a18638dcc0d8a57c9292d5b6aa282bb37dcb963d2365a017b3218aedcb7a24692df8b9638fac730f840e44df112546bdf8b8fe32e69d1da77c9492b9ab7b3d30e7dc0f0cf4ecc737d6166d2bef7dfc44e7244e0362de686a4b849e2e804d74803aa09ff1d1f56a4426a2effe89bed503dcda10e12c3f8992da00c99bda1d20b6794e47aa4db2a87778466a74009e93037c5897624d8134c4dd272e8c6be1d0d914e94264924d1c9038ed5d4601a731dfc2fad0e9958713023f2cc33281c9c8247ca46c569138c36fd70d7e6680845cd53294c56162714a9ff3d708092a4149441f565231eb51f21ed3ffc61d6aaab46bac1a5aacddbc9fd76497ce9fe338c76bf26b6be0a08738393c31fa09bb3c7a33ef9aa74cd1027be27116e4135fc9e5b22517423532d4c40d8513ed384c0f69a58cac64a24f652e212d4810c619e5a1ffc63728b1299ce538b584663f08af2f8f3b7c5b63a241e1390046485954d8c1f7f3cae8a27a69faa0f61342bc0323c05a5326ce844f1cc051931dac9a0e57f13171c0825166ebf947d8c55658899f2b2d0a6ee5982139f468ef3dc71ea34d485c56e28e3c6596e3b1fcd6bacab04c372576db9a2862ffc55db1ffde48232f5ddf51e3ad16ca3694dbc7002e936d484bc6f6f7d433ba10a6a5c43c33654d88d3a0cedab1e563f2036811a02fed4006f188aa2de55189e6cd46b93d98760462bb613b05b014b6a3212f366589f21a3bc286283b661821fac1c2e0959adbd7e5afbef64fad9772e42d54b6cf5c0d11a40b8cc45f7003d5943b0df78e682777900001d7d92ed33f44497f382e8cd1efc42fcb6685826c4cb17f0e7439e27f3834978509b720455ef3a5e3dafb5b13a6e1e46b9620b24551d3ba16595aabab58f957b2fc62048da6b4fe72918b51b7b92c4901490085c3f4142ce228f1a26e298b8314579d8dd4ab21e31543b914bbb2d67ab769a8d8ddd0ef96e86e846f9fdd1989d0a933a8b4a608e77fa8af5c1032775abe0b062c29692818c8c2e18fd333bc49a94caec9e7bd6d20e8e4659bb67c1f5b86838cd403b3da5d439e295551ac0d3e7faf909697848ff798371f32e3f861b7491531a350a7c74e3e953369b4b61b0b90163175fa9fcb0d0550ecf79db25988be2f13de30a9f503eda772b82819d6affcae6b33203aa260ad0e1a55998a204c03c286875ad224d5b6e8fdc1560bc3d7f7f4d9f6c600c24e14050af16b90b83e3f152436cff29edf46b9b6754eba0e7bc95e63705b5655b03b82f4bc1dac8951bd005ddc198b0afc819ff9fb7e5b3db52174cb47b23fe8cc0a7a05ce486602a0cf08557892d21c8edd0d713811b1f150b1d7883c43cc4b7d246f40b934aef91240d46c8694b46fa7086c9f0cb1d124b1340e1c63b5f632ee867185dbede72645bc6a634ef55192e48171ae6460abdac0c849178b34d4fb63b0a13949f555f31f0a06913a4e4a652744e55820fb3cb4308be016ad0c2e973a56444d5aef26277e1872377faf0461636d2757af370e24bd4c16f1e86bc10cfdd94e8fc8bf0ffa43106db86e8f38a221d483ac937c637524510ceafc041acc5d6d4b9af8f45b9022f35601aaca61988db05e45fb95f4912e3116c7e84a5df3d1bac492a9506c20ed2f14040016a9b865826dbcfae8917a93cfeba7c32eab657bedfb887ba8ffcce7747ddaf39cb090d2e9e4a3bac6f87b22173cd7ac8635ec8a40dee40efff9ebca652da28ead5139532e42240732c3f371fed69fedc0e2bdaa2dda762113f6accd39f3b247fab03b78d17e9c7bc78a7829c5a7da30cfb42425636ed736b9baec692d63c3d675184e72403bc5a7444ca7947bc37c1111b5d6718e191853b3c2d706271520328d7025fb712b20ea63f6e15097f13f6e5f462886088cdc65353fffaf116a7bdb6c7f41fd3798d19d7d1de3881c3fd9bf4f66f95a250127501221c81bdfc85f3c457dd9d93d51a3ebcb0357b4dd0fcc348f8c43754af0aee63330a0f901536e7c5bda6d998d885ec521ea54a3279c764ed941a9aa968ec0904639b1a67ac73ff07742b4a7a46044ab441abc45898ca14a0fd9530042017e6ab14b765b674440885adb5d9c8d3727f81463b1e547d0241365f9b6b771acc7099c5a96f431b9464237d7f6585eb636ba1a63404bff37151e39642f6a8ddd0a8a5dd05c709a97db487efaa3df05eb39f52181bba8b6b09a66c0d1e2b041ca93eb949872b403178dedd308798df68c5378f0ea502271be580eabee9fb5d93bb3ce6cd5b85ed46ca5a89f00007622d071ecbf8941f4102e4853dca0a1428ee95cb80f5a01e92d26b2aa2c101c8cdb21bb1e597b88e2005229ffc59b253573e99d8a3bc4c6b276788999e530ce15f354b136b8ed7cc9cc92b6b91836ba4e76dc4863fd606c8c66d6dfa649a78f46965a1b8c69affd54eccd0c6bddb888217999c552ca63db98ac1c4914b262143879a534a9a77193792a5f9643ada8cd968e7003a2cb41f0c830c13d6c26f740125dbd110b169aafacf23f61daef497192e2df1ab5b890282a5804d01e26b336bc45ce484466bc7e3fc19dd625ae9fbf469ca0250ab586ce91e4cd1ef66be74db8b8af7d924d7c9d4d13bcc9fdeb90339fda60e3497af735d33afb182676f10afc79d9da38e45d8df152cb1feabf9cb332a7d34eab1fe081e851d60a61b145cb658b2c3123781753154e796f1bfab585bc3b0e260650d6d8acf1a958fd3ce6ff91c4643b680a7cc48411a627bdf1f11edad141611decd4274bb8772c7c8570575e9e50e22abad4ee591dec5bb755be80428274e2ac6f85211c5b3db05ebd72cf070904451ceb9a22a1df0baeff31b6afa3c7cd6d50658527a47116e1e56eed66d77fbafea0c71ed69625cb30ab502ea17500b8e5a7b9cbff8ad17d4e773f5a4be3baa00c7c9c3df947af3c8d109e8e06abc2cdbe28a62f7b03acb35037e33fa0754dc3294c06ab58f2a49ba8aacadce295858628906821fc1a682fa1657cb4036ae7f6d65e0fd481a3bece0dfe37fdf5238450c3bec4d09e83f8e8114b40871395b3f9299465034863514d05f8a3614594a9f8d1706685d6ac23aac2105b2a971ff597bc1605a954a675bff6da1c1f9f5b94314d8bf5a22a28613bb84ad3c33634e09a6acc9feda40bf64adf6d79e730a5c4601b8d9e5d3e09f543f85a3eb63df726b0c0ee5abe8a7c8fbc207bdca5064031f0fb2f88a00398c0af314b8be1babd6061005f1c98cc0401b230e42450b2e773768a36f7892260aee56bd6989fb13ec3a2fdcaebd64200bc04335b650a4e845c132dc4fc00f039f4f17a2fb09e90871befba17f1e4123180f83677d8e8d48a9508dfe89c645589b6c1a97ace6dcbcc98d0968c4212eab200d9c50df822eee9a56a84facc49c8d9c6bc54e3703dfecb9e0cf35a124436e5849db6f71be931f2e76425aa7fbce9f6bcea3343f903125fc664108f164800a986a5a96df754890b0ddefeb1b0b9e64471b1c1fc56b4cd53aac08844893038467eb404dc1b940ea79c48722d87706d245a209a5eb36b3f083be83e32c9e450ab6dbede1726a5a5565041cd7d326e6e3e4578ff62544fcd3c18127fe7547d88dee5b53bbe8884086881d69e5ccb868498f93c0f3f124a3463c025fad568edd3a5cdb93dadf64b7380ab35b425afc96e307e290a788c993940f4fbe73d12c8f877e7f71e35b69b12d9682b0ce6d0018de3bc68ed243ab4a21cb04d56dfe680975aff6ea430b696784fee49e03aff26b9e85d8795cf176acbc2b56336300f4081efb71f6480836979e71843ff74c588a95dc842e3f92f7fa0d076ebd514e7f710e9917368453f178d883a6fdb890d81112b3f8bb3b7df231fbc1b1ee38fa7c57a3aa4856f89440460365bda4ed19ea109bc57148ee26f402862e9d69982dcc1d7bae1b860628d2063d1023ad019fbb97755469854772cbdb620a10628ecb756b14439e253cbc8b6595c2aa94bdeb8cc8b6370daee0d7c40598429ca6b19a5713a765fa87f14e89dc352c8503dd20688f7cdabca8086d935a052fe35c997b2cc36c4672139631a51e59185550926a4ca357905f8f7ea4ef5fedfe5b50453b7e02c1beba7e44f650edcd7139dbad04ff2b564273e9dbbd4ffe97e8fd8dd58a1064235ae766394a7370113001ef009d59c122c8e8ef9e64f1699aefc13b0cef636fbdcf90cfe09db8dc6edb5634e9a823581135ea91f121819eb4c4f555a68b8a7e4ad4197a782c29c2990cb2d14e9e13003357d09c330fc4a599bd2142a28343ec271b465183a007339a7352f5b18d85e140acf02b85fb8e6da83efaf7d0fe132d2d7db49f68320c9a322ecbd2614cbe42e06a5730149189a5719cf409bf038f2245228fa97a0a9e0b9ad",
|
|
"output_hex": "e79ded45853a00004f2ab687f05d0000697c0c196a820000e37f5165d80c00001a84c3e5bad800002e41cec1a3fd0000e4040fa33b5f00000b6997c994c400003be687599c50000014d77de088990000e81f0e3b253f000025e127082971000076939767ec9600008a6d22932167000085ddd4a1057c0000787fbd0743930000329f3097dca500003a242c278fc10000f216ea91001e00001b0bf10dbfd6000001e48e19059f0000465f9bd2531a0000b43c86016d860000909fe24f3ea70000dffa6ab9d17e000098bd9e7c928500000582a0c9414b0000f951f85878d4000045fcc951143c0000d7b5dfd438b200002580d46b6136000040f5bfc54c8c00008d958e8d550300002260f5220df8000050fedf69ecc10000ebf6b79885b50000a12f3f0c17a100007101c06e6f890000d5220c0a96ef0000e4f1a57f350a0000c377cba269d00000e527c50360770000ff1530a7c1940000f1d1b7784b670000214ae0c128d60000059aee5aa43f000066e9235f2de1000003c31175674e0000e0527cfd82e80000754ee4dbde360000b41a52b9db230000174229434565000035736c31feb000007d116cff60040000676f8c653c910000d82ac0cca0bf000042eb7b98cb450000ddf8e94961fd00005e858246d2b500001ef25062c08b00005128b71d611a000062b253874b1f0000604b3ea36400000064e07e31c10b0000",
|
|
"output_sha256": "899ccd8cb8eb7bfd513a325a593525da98936606ea6c3ea15c8d669bd58fd64d"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=PulsarQ/i=5",
|
|
"input_hex": "15da3501daab1ecc402a71c27efe317f82ed1f332e6e417f23ffb57249db243ac5e03ab22c275001f9ae46121ef90eb18688dba3de00ec8b2b6f5b1c87cb11ef33042d654a4370e2e99d1a46917ce0a9c6abd9255dba4b1ae01cae31d9af720fcf30556f24a0760bc054a60f487d89d5b0afb28fb146a7be8cd2d8cfb38e10a100aff668aa56ffaac247d638d849179bcbe17596c1016703e465060028281b70ef8d8082dc6ee804344b64767a63fdf0128621d536958ce71431de9656ba6c8b25b966b7018ea89ba09b1d59801b5c4cf790f3c7fcb1d078e900304771a7b87bb0a1e1ac33f6fab17aaed96ae456066facfe660034ee037ee2f6f5c534a1fbb29343111212101ead8c91de1e04cff204bfe813985d7eab0c4b05334ec28cb7f01ff9d8ff66f2b266dcf00237ca3c078ab3f84dab8ce59b3f1ac44d0f3ed31a5eccd7b8faf4624e71b004be3d36a6d46916e870036b5d2f7cd6399c688cdace76a814100cb773450782ce246fc7164c8fa0869daefdf797a74f5ea5727b758ee9fce1c0aabae7dd94a06a89235484495c3c03aef5e170055a153c1be341c258433f573cd64ee5a434e58f81ee58ecb4cc2dc325032bd389278a5bfe47796535aa20ab133d36e98c27d05f8a6b68a71855f9b012772e489de80bbae89c4ed1aff61b0d331c5dca0b609b04302bfac3fb50318d5aa3bee446f856faab635938e0651f352c34502b543d91ebd3825b806d92f6943ed8e8f9bffc72968151d04d3f0ef98aedf73618e2758496acbb67400852b574961ff91457e33eff554cc61160b63afc23c2d25005628396a67573fd5970f752cf84601461276d67462efb36490291a6b4ce206b4418d2d331bcef451a43ec658408e9b25d29ab9de55b82f159a16d68583abb3a63791fdb6cff8c05bd91234a1efd03d8a6fa7540501e2fe7aae028a4b350af03fa62c2490c1f5f0f5d344ad54b364155f09766941b696474c1a409e539cc0a43e40c65e6b413629c2094ef3565d6e291acf8880328c086b923aa4c32f41250c8329c4b3d0c166939541721e4d63fb188ecf036f9cd82d510447ce0902d3d6ba9da732aa0ef0cccacfaa96b792e51a34046a0d225bba8029045348cb70a525bf64574c1dba3acb481991f55bfc02ba001ef4d742d22858f9d400293ac53d116ddedbbb0762aa68620621eafe5a07a0c0ebf00a77a1a08a61d4ba2a8bf71ac79050a006e6264f0a0b35851a609908d643ca594172f11e999882b7d2d100a5abfd4c012ee0f5baa74af1454b2524142eeb165fe7749002593574058177c0dd332692b1dc94e9e02cd824b424924120aa85a19830d67691b83724762403cfef69503c2e797da5ad5f50a2051d6c3b8689778380f06ba737ccad3f673c05e96def4b8209b4136a641e5ee9d42273302f36628120053932ca8926f7f8cd0885fcdf46e6b797b75daa08af970c44dc73903bcccd7f896ae3429f6a79fa367cffcf2031470a763994639f8e88267f4c2e725bdf55f4dc02acc1dc888d5eb5e04a096837f5bc359cd4553b96f3db0adc8d9f27a72152e27286082992d200993a613e429509f967d7a10afde13a7ac65f7db33e7f66cd9a74bc9ee3c7aa18f118a6372a4f2ff6cbc61856f1bf194b74e4d5b1fc989989c4a9fe1abd8f4886334f7d310478ed76281584cc3ceea8295e849a376ed8b167ceccdad269daf16cf07ddd88bfafac4697e1cdd494c88a1aaadd4a42a2c3892e65f2279508a93f2b0eb834c17004b247cf4e14ef93fc6254797ac43856e72573d39dcd9eb656a5250fc5c09101ebf4de1043a6eaa2b2e7af08c66418e08c5109b7904c87104e72cb0f4cd6178074d9cf7af69a9ca42d6ba493b91470db33cd65e94d7018ef539fd9830081cb4f5058f8b32072416069f97391450299a2b2161af0a074462ccefed7ca2571055cc70ab98ca7bfce32e02454fc0f9eab73bd520ca87ff119bbf64bc5301966ce849b0e4e440a67cb9deb338178eba225bfc497b86ea8390746512a2bf375a61946d34aa629210a7200dbb779e5055b6d840ccde5baf94032e1ec122e8155b36ae0870750fb7459801cec997b28b5d4ce0ea30b4bc34eaba4630e4de8a1d9e601d03803da677a945980d0ada43cbbb6986fc8ea16712a19ef8a5f8d4172b98aeee7b32b6cf0ebb64747ef9a2220202faa32a1e81393dd49441350d2080ec3528579784b9d24560149f2e9e0472c4e4c7d21d3ccfb6104230b111aad3d37b121ebd1a75ac6def5195629200163292fea7f0510c8e88f356b430698430bde0f4407ea9f29b8e99437f12fd1cdb412705f93c91e14566e597cdfb33ef9c20d5dfe39f9125885998619ce1c40c23c0d68c3a5afbeb682cc3a0e141da11130e80a16290373b9bc0718ebc547eaa26485bb1889cbebe528fe24ff903ef26549d9998cb38eb20bfafb0d355129d955507d788ec19c266805fd941f3a2ec554a3061ae6ffc313f0b852c37e7192196f40aa981e9482c48b3fcbb079b9f6bc7b61b07e1871c13ac61ea1fc0d1dfb5a18542b5011e04c6eecb72f7b80bb425228d809d0abe103c4953efb1e8e590d0ddc03913db61f3176f91fa1ee9ffb1c089a58a71bdf8a503754ace2eeefa531f127d554608f9aa780752ce376d53ac6883e80d9cbb473ba597ff38396ce92d05df7b008c7fe882b504856fad803e902535402c3e863d30531d3cd42592d99680530050a60014d6106bdb10afd3803262a7037e1a6508a8953de43795d87f4aaf7dcca07c4324e60620018fdaa5afbe10045a39ce4691bba3799fa82a9e241ba4abf68b8ac8cad6dab289fc289ca4b481f4851c0cf319ea2055b67311cd6fef66921d73c9954e48dcef680c748c4fd5a578131fddf062564149d0385e62ec3594c8a7cd1e88435f0be7ddd573fa21933f3142e7b0be07e17214d6f57a86cfa44d13050383b680235fe73a9eadcc6cd61387b718729b565ca2060aad9376ff8c807e1843df5879ad33a00a393e7dbe04c03ec3ad4483eae24fe89470f742fc8408f3bf283fdd6e6ce10b674a67135ee5db4d8d9155e07180a92f02f1e063fc57dd9685eed0516f6e2923754adc1f431023e6bea9532266cdb4da60789354f00b323b6932cf5f251f303f09a18456f63a27e01a33cd722e9faec9a9ff007e154ad1db7799ee5d9567ce1ab91daeebdb745a22c22296b6ada15bc3b25c2af7a868616a58db3cdf0f0c9a22d93bf4165eab511083c7099d02ab79c679eefe9942dc89b8b3eb528bdd9d4b94b638dbf1e59d6d5576e917e1d2223455740c26c3a4daac33964f78c045dc212aecfd770620769eda7f2affaeb49a014914694a333f08b0dff7ab4db42a32a59821c9d5c4b3aabe180f594b8a7c9bfe596d87e8384b710d3d130d621565afd1a98829d30dcbb45f5dbc361e7354d8c2fa1dd1b0c2dda84fa3d423e0e101eaeccae742efbf5af8a31249348a95b5dad45d4e7043410710a9a3a63cb1f3386fd9f8828d9ddb7dcb74ee326e1cb79cd862f0886e05f4fa68a5c5f869114cf52c6487b23809b2ca77f57fec064375a1649015a4360c5a8d8dc06886ab839145ee697aa55e3747980daa7f30ee5975728ce4e699220d8aec9de3ca32ab418e4875f0ea128e6d26e3ec29f053bee040354d4db23f06bb885a4a67e971dffb88e26ce58e91224379423ee74c09b06cd845f1c8f3f86b4d534bbebbc4dca767179fd918453b1b957efd7176021e50b76911047eeceb511a94ff328f1276b84d92674e9690fbc615b987a0099982315a4f5f413ad4d9cb72948aa3ccf1c44797c207898864762e819a9d267911313c4db3e25db8984541b446a946594c86e8ea1be7b1cb33b7ab961a7028d725f3498596a8ac17d1e34573a0db9b8da739d28f9a20ad6b0ea7f2e98aaa57faf2abbc71c3832a9a93efa678daa538d63c5674e2ac4d72cb041db790f0ea7883502aa09a93e1ec85b0bd6150dd22844f0065ef600efbd1d3e93c471fb4d98a072f154ed2a17b8c4797c15249f383fddcb0a9a47f6e91c89555d8e6eae096c6c6e3f7a41190a969d3e2baf47d0ca965ba26584e55cf066fbabaf91857c3bca24e91faff3a02a09ad5f80c4c1e2e5cefddc28eeb2ba910708defbf125da1160e3df592407d569d81333882223f5b346096408864ce93c836bb32c86342baad4f443a39d0bf4ce811e2b23e29f45cfbdde565c2a91aedc92138e19223959655b2c080b9be007b7167bc5961bed30b8c6875b3f4210dee3371f85071328bcd97815ba67e2bf6fa2ad228b007dbac01baba3663ac4ff160ad59e74284ccf179b443a39ba4f060e397e99dba999c85c21350aae632fbb67a12f23677ea92457e4bca3b226ec995c33956db067b120a0e5d9a956799871effb5f8492e311ca9722f6858e91a665ed0c4f4e2f346c3a6c929c0c921a66d916deb0859650fbaf23af2aa8fbee62b16d943e9ebdbd6fd5b239ff29e781124012583c0604d68085a3def4b3fb1406399359f446911153a117445e239910b046d12ffd39e6cbb702aea7d6aa08e0856872c0ae51a42b404000dae32959008a02ab2f2db13fcf5556576d7812bf85c154829d7278bce907da5a661345e006a582e566f42f555324512eaf43754a037beb971ee4a85b3427ddcb8ad64faa21d22848d9fe99c90def1caee88dbf6a78d279aa03ed5bbaabda5d030a213b0659f18e593769cd46fdfd8d878ce3f0d3fc6e4696c3a554bdfe355ae6d93116dc8971cab879ec821040e91720a58a0bf867363131631bec2d87945eeeb9d6051e31ffe796d9aa5ac7fe388a3709aae2665aa82fff01ef221a20ac84df8264bd7c3f14cb805225fdc32202133b52cb6160adf2b8236b96771336aa4783a2d19fb099c84c7a8854a2df675343aa3ab722a963b50188f349b3190446044ded33e3f3c8be96a2edf8b36ddef9266423326f2d8262c42df7aa928c83012d36081d2d695d750bcb7671272fd3b2bd46831a5ea001e370324b9483e4e1a5272eb3f97edd5baacfba481617fcd332014d7aeac4cc0583ba81846ae5e9a763201e627e5374a5c7159153f6d1d2ad04ba0442518d9d7c9ec8f90c548e9883120852ca2c4a6d6e0a73816b72d999b35c832da9686c95365ebea8e0c44bee237ab0d6d22d869027dce5ce609229741f44d7590e7d35e2ab5e3354c730bbe3f3b8c71fb552e7e7c4db49dab0828250967dc1bb4600a37ecb8e93d5e64ee18d4dca204e3e2c27810c550c70e450ba01c6e85105b469ab3e52c1133131c78d9ac7c8eae7027defcf210f1c8cf97bfee0e1a804b4dc90f08fedb7eef7633ca1de7ebf7cc20fc92f1073d45ae50dfb85676d58b4696f334ce9511540d22a324d6fb4748dc0dae70f8350547358f3a4bd528bf4273aba1c9df5a56a3da1f761e1ac5fa3a38c419dd71fe8128cc0616148d81476ff446cfff0c439c8cb97aa35382dd0bb2ff4f003b7307c2b06cdc7ce5b881bd8fa8822bd8dafd1875748fc8f030d1bfbf6702c4d8f96ff2b0461e1b6d76950c674ab2bf10817e38ff4033c9c4f318c63c13944b50f8a067cdabff650920be5503de982a4cb3f1f92e8afaa17e554accc68b6512e79a70fc37b5b589d1a78a370cb294e6187082c1f271f677c171daae3aafaed430a5093d0dc918c21a252dc179c35802d519bdfc62d95c2f9a5be34d5864be3f192a1c8c769be428da8c5770da4ab452e0144b426760e539428c4b4f6a659cf37d9154eb1152b33cb08b2d3236bfa1c65857819d2a",
|
|
"output_hex": "15da3501daab000023ffb57249db0000c5e03ab22c270000f9ae46121ef900008688dba3de00000033042d654a430000e99d1a46917c0000e01cae31d9af0000cf30556f24a000008cd2d8cfb38e0000ef8d8082dc6e0000128621d5369500001431de9656ba000025b966b7018e0000a09b1d59801b0000f790f3c7fcb10000e900304771a70000b0a1e1ac33f600007aaed96ae456000093431112121000008c91de1e04cf00001ff9d8ff66f200001ac44d0f3ed30000ccd7b8faf4620000b004be3d36a60000d6399c688cda000082ce246fc71600004f5ea5727b750000153c1be341c200003f573cd64ee50000e58f81ee58ec000020ab133d36e90000d05f8a6b68a70000318d5aa3bee4000056faab63593800001f352c34502b0000f98aedf7361800008496acbb674000003eff554cc611000091a6b4ce206b0000d2d331bcef450000234a1efd03d800007540501e2fe7000028a4b350af0300004ad54b364155000009e539cc0a43000065e6b413629c0000ef3565d6e29100004c32f41250c800004b3d0c166939000021e4d63fb188000036f9cd82d5100000e0902d3d6ba900002aa0ef0cccac00006b792e51a3400000742d22858f9d0000b0762aa686200000a8bf71ac790500006e6264f0a0b300002d100a5abfd40000ee0f5baa74af00007749002593570000403cfef69503000097da5ad5f50a0000",
|
|
"output_sha256": "db5080ad27a1b09b6aa52ae1c84a249102cd8d29f5465c60b6848983d7bb75c9"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=PulsarQ/i=6",
|
|
"input_hex": "910ffccfdec2c8a1702f72050ef5758153811ede4dfed6a37a558f7ceb5d8c70d1e9a1e01b017f2cdd83db98f22965aeed817a204be635d8c2812df4ea3fea4604511edf8dd5a204831adfda4ea7cb71176c8184d1abdae32f6233357ea13286eafa8a4b53877b7bdcc9a4870c1f00038bba90fc4e20fbd00493303967190d5b1a8d858c6122c9140ae8f9d7eeca706423b2618378ec654bb1022de5f7c355cc432d9ae737fd2c75db0182122b4b886b30407e2085a0bdf47cd041102eaf3330bc46fc0bfe2c03221cbfe65c95c3eaf42d9866075a872cef6ecfaa24e3ed17abedb72deadc58ff7597f5e1c25211126c3afb0471dc54496060e56272e4c471c11b1584f8fa67f18df4e2204129b3e75fc557069df0a1d613ff0f0f3597e420595d8d17b845470d30b34a18a7d36f57723e75f6ccc1d9eecdf08080a62b2e86d1fd4ae09acc1010624f8541b923d63380d9580755ae05deba3ad07bc2e4fa31318e44e80136c3ff825b8be2f2986b330a199157381959e4ea30d0f74b08663ea65948444dc3a4fb048fef9deeae7a9b0ce5842481b19af516da8ed0b08cb91f162d9594aaf1e1fc157b2bd8cb29653453c95cd0743922a6186db41d4b690816331f481c317e4f792627b56563f77b7e903f26c44084771b5ced93b33e841e1876e52d65b18950a1d89235fddac3bed8d14bda354a55371c8112bdae40353b5bc1f0c26505ac03147f4ccc012991bed87a12823425f2d4cf16ed9ac1d296e1dc3bcc71f40166785c4adaef7379391f4c542126db890ebc51f8478f899b258e846c979351099510a174b2b3228676fc2fa77dee89e6dfc2c7f7162286811eef600b6cb5fe0930139ac4485b461d6c30e28f02d10d7fae42a32647d4603f2bde6de9643807b66dccfacd82863bf20e2aaee8aa5f81095be3cef8e28bfee3a3f7e9c77bd51bedd6d5075380543f9c21659d1e8e6cd07cd7f13c76cb891f8ca41c81891cb38b59172c57a4811e0d043c19edd24a3348ee8ed6b0df1e7b70193944863109e07e048c5aec5e8f3a92f28616d6a621d35ac9fc95730a2f27ef7fb9b5a97b1dec24ccee966087ef6685c2d0c67946e76fa358febacea73fcb997c958d2fd2483b1cef2fae7a54581accaae6fdfcd2b99643180a98270d174a098699bf7a7a88b18fd5f6423778d08c1eb251b667265ba353f2319900def580ae88b569f1d8082e370728653e03d478a24498fd3f754539d3551f39a25b59426f5275824c66fca85156c635096b013ff206364e0a38c5902462d20d00aaba0d0b5522399b2cce9ae73ca38cbc743347ea380f1d47fb09ef765e0417094effdef3c3af24776d65f93568bd71a5dd37737157169c91d8e5e4c18d1249d1fd8d9751dcc00e365b34fd96f3e95467a0c164440baa2baedfaecd3790e8fdf99deb5984ab563492c9e4ebdc45810979e0e770356049d212c8c5a0006e47bbaa4cd743689074b5fe9a4de5b247c8692436b0cff9fd887c72a166854227f2451788ac514e96f1d44e4fef9792c62509346776766a0be1e0e159baa9549a38a137af83bd3dfccbb4d61a3ae3a2eaa24d2f497f4a1f21af18dc1c18282f81df05b078c0cff716497b299c5ab962c9e3f3e9334b36409e05ea607304ff6758a3b23ee8c71cb7da0528f5a737d0bd5f3ae27ab94093c24818d5a7638bcf285646d479a5d233095c79c1211445084ee23d383e6df8db8d97f2772cc69392379b86af9edbdc56ddedc0fc1bd0a6567fb661e67402c759d5a4ab48f43c15e52140c1af4d9b5d98f53f970a6f538d088287b4d7a6d9997ffb8dce9bb391237ccad2afafbbdbf8a004859bbcaf8c91f5a984209c7f632cb3e1305b95edb7fcb2bdc4dd8a578cd97060f1f70113f6505977a3270db2963016b46299e27c9b9de12b09b81c86fafd915c89bd939b0549da96f7524ae9c36e7ad42f9429e5280be41ed8738ceffba6a56e1c3261cae45e3efa7249a3aa2902960e477361c751a9c4f5e7c20a515cf756c544e5185675892be1911ec6ec87dfd8248767a06e85a97b24fe2cc57619c66ca3107065391d0647e04a7411600ff00e889c9774ab53c9c0fa1e604f15ded59315fd0f329f044d9521ac432fee7610546d32abe0ac21c23bc93ceab0784c63548774cbfbbf1775175e1db1690c9c795e89021d21d1899d2c2b639fea3c48164655e78888ba59d60f234becc36f9cae9e3fa177551a40bd7e1fd2c8cf337ecd6290db334cde94701e5461d8572f83c5fab51b35ea19dea33be5acfb23a45803c3d8bc9faae1b3f80c79c8a2eb720fdf63df93b21b126ae21291f492ffca032e78d497b48e2e3f4a199de697587f9637e3c86b380822157e6e70a199394a9e7801d2421f66a981b52fc829fcab542ae7dde97b85bb9e1a148bee8344968780c709721d3df6e13cb6545751fed58129798d3e7d6a95ac7b1b8bdc83db9e2eab41201bdf8ba0790c80de7f03dae5dd23fdeaeafc51fc2227c40812186f7b2f5d59427ad7ef6ff3d66ed81c8d23ff5b0271f73c3d79880658caccbcf91111a6f92d3a0fc93402d79ea6f0d1d67a7f0d00532dd4cb18b576cd98a08347dc7ee8c42b0b93ba9a3b994f6d944ef589165cbad5f972a7cbac4c017ee0d68f0848b315b65b421fd6d22dc2099198a94e75983d5256e72939835c475107d73412813a3c2fbb63fb5d599cda81680d8ab823073baddc2d51bb8101751260290d71a3c1ab22eb3bf833ef957a58c06998081786ffc7668c8bd2fbb3e30da44e0add046be62cf77a2a5eff14becc309a243db8f7632d137f9c5827b592d93006a1d495adc624fbb06b30c1265e7c5d83f6f58c4d0e2fd5ff3c984bc246487669936be3355798f7ee4eec0150e90c3b0e5c56d7c0ccc48ac44175b54871ee2689e2062166b5dafeb7d75e122369b720864ff31cddef3c13f159b8e8114fca8980a06999f5f7c86eef12ec8005c7ce2dd7089d0282d43217df865ddbf7e0bd9d3a7d644ef880ad322536b2e6c16920fe73056dfb04c0bd014603973ee10e942cd27c3a749aabace3ddb8ba22d1d3a6f96dff9c3f72f4cbd7f27b221cf7d6a2f8620621837934d2b5116449cbc5f921a1f39403165226263b1fcdf78c00c17e3d05488de1484daaed974971066318b51087174c93d4e3ab5f6bd44743344d02e15748e6c962fb0c343428f68fa936b9bd1054c89adcf159c03e9a43e8b336099199d5b55d5cc1b2de78945d9f3e726b45e5036d048c3c376442d2a29885ea265486730d45801fa24827fb96ca4a4121baf5af05aae17eecf2f3ac3dfdda7dcccf8c2ae34b43fd9630a1c4992a3540983b0bcbd36881c8edf13eb4bb471608d1928ae9f9b59006a595c88ac6f2bba52a064d7d7d59e683e94eab502093725c0bd47e45264b023087196b33d389784bbcae4210466b3c51bea4fc4076f8ed056ec18e3b229b1f49580bd974629efc458e930a830dd4eda9a9b1f1a06313cb7bbc16179281b3611f1abf74ddbad99e0c75dfb997e133139918bf8a44e87450a1c2d8d64b4662ac0ef841a6c21f94c7e7114452ba36bfaeae0158894334a272568bf772983bb29b40ee01eeb7d002daf2d0340ae152bba6f3b2ba2092e817613768a224418773a6fed60dc93b1424d3eff3d52641cf65d5140f591d17cead8effc336c5172b1bd99c3c2003387d17144f2d4cf8acd1846a54b73de02208effb018c9eeceae35acabf6f9da5797d9d2ef6102ffdaf90f41ecf09e7ed5ec0a4d6a48717225d4fe8829dd69f0984d09766e948aae4527d9fc69b1055e658721c6510fc71a80f4ce9d86a782779c70d816dd1f5da00eee20a8c73f3fe63973b2cfe530672d4ad2d74bc2df7ed55af5fa7962790a70a0b906d2c9c678ef4eb68ed5480cd361d29d56f83d3e03a58802e07045368a49be755344cd006b1c5b79007f7f972d2ce895d09c054bca841cb0e6d7328e59b8f03de742b77de696a7bed693f7fc7e60d86d7a70b8be1bbea74d81df8432d4cfbf5428c206eab309fdb827fd3fab8aedb54b936df5f692c986152a293eabb857df2250b817060ce15e2ddc272b7a777d805d6cc08a0f4e5948f0a5281511ba836687544562ea4ef4a94b5747396778b0b627bab846ec93bbfa62d57e6d470925f5b43a9144ea3018267f8a8060fef4639b141822ae49a5824e997330db15af5301f174c0f5023d184e11728374d57de8cc32f78133c41b781b452657c020f58721ddc8fde619da024b0e5d439fe5ee1b02ea7a9fa07ab6c61e270510363712df8f9d0d576745d4ba5d4980bd87ad9982640b18a50cece6be847cf92d23d464b5d9306005e3887292d1356572cce11ee0b753aef7e22ea321debb970ee2572747877733824ed6a57cc7708e8910c5ac124bf10826b021fdb3e51f70b2d5fc89f0539adc4729b9451a8a5d077d2449de6a7000b93bce95f5b74beebf152c490742ede95ee119c3d25c234282aa4ccfbe6ab910ac2da5d128ab262d963214738db71ec4aca2508276f3e5412f3eaa9c3bb27d0f532a26bae944fae8f61a587f85ff141a2f92067df4305a9feeb187c4875e09afc62b481be8361c77167c285855e0a13c6cf3be70e39a05e9cb2ba878d3b09238cc1fe0107aba7891508c18a48b32e379b1ccbac28a7368ad078c3525731163ff6655800ec7f57751917a474d40a0a89c71c9f25928f485fec3ca69d5866e978310cb8d09149b1ef80902dba5ad23bc5ceec0bd0d18c7db8316a611534d983eadcfe1fc157ed1773faf5716cf0310c26f5bd171b61d3495b86c8bae21649044d851349467bd15ae334aae3a43b9b245a714a89912d614687b0e9d1bf5f62fc6faaf0f210c9f968d5fc723a18d7d23f9191df27898fb7a4d30fc213fc772c879d4dcadaad4ae1880fea67824e96f2e0aa15030a48f0f92764d27168c2feb0879dbcaa3202e80703fa79fc3c087102ea0f45ec8feb01fa9b2e34dc2ef209dc730416d4ab1db97af7dfd00a0d91dded140d77dbf47ed7c6810db5ac881d05b18a8d1ca531274d54165ae95ed80ab54398121dd9101f097f0f87777695ed0cb2af3302204b750905d8bd393346eab0cfa4d7faef5d267925d0898bf3b2fa93d806e32ab1799d31aa00c7a47cf41587e46225c87a37f87b55afd1d269449c95051b20b39bd581c44237eb4b2aae06188e64e2d2c54eca2a86dde69d64d3c06dc7b74416cfe4e8d30afad8130dda0cf48c21b121d6a41f04d0e524965209f4997c8b77ccfdaf047116badd2af06184f5c5ce5eb2a1d07f5d1595e11869b3c9d4b4726d19007df5383174b7a1d15ef98b6e44b0c74245fc3320aed4e493429258ccac46be81479ca07a09f2e491c5a42beae3e3488b013e1ba50a7606d750dfe9d443423db57a69c9692f889b7dae58efb1d0e145c38413be8186fce82e5826921867e8e71090884c5c3ffd1c87f93b583057283a355e3eebbff75c0b4319bb32ef4184dce2e858207e82158a0797fe897a324bc305a285937971d9296082283f368363ef8186b6c80aa5c3483f185e715eda325be54f6b983e8380fb4cecb718bb3610a9d67b4bb93855216366dafcbafab299caa5ff191ca41473abe91180a948959aecc13078f877bc9c9cd5f152950f5f86ee47c71d330c4ddfa6232bac5ea905aef0c927c88309fa403505a42d17e8f7419321e7488bd4412168df932361ed01a484df3c1f3221676fc7be95009188b395432301575e2aa8baafc9736a34cfc07d453bd3016d26eee5a93edc51",
|
|
"output_hex": "910ffccfdec2000053811ede4dfe00007a558f7ceb5d0000c2812df4ea3f000004511edf8dd50000176c8184d1ab00002f6233357ea10000dcc9a4870c1f00000ae8f9d7eeca0000432d9ae737fd0000db0182122b4b00001cbfe65c95c300002d9866075a87000097f5e1c252110000c557069df0a10000ff0f0f3597e400003e75f6ccc1d90000f08080a62b2e0000fd4ae09acc100000d9580755ae050000199157381959000030d0f74b086600002d9594aaf1e100007b2bd8cb29650000c95cd074392200006db41d4b6908000027b56563f77b0000ed93b33e841e00009235fddac3be00004bda354a55370000f0c26505ac0300004ccc012991be0000ed9ac1d296e10000cc71f40166780000daef7379391f0000478f899b258e0000162286811eef00006cb5fe0930130000485b461d6c300000643807b66dcc000082863bf20e2a0000aa5f81095be300008e6cd07cd7f100004a3348ee8ed600001e7b70193944000009e07e048c5a00008f3a92f2861600001dec24ccee960000e76fa358feba0000483b1cef2fae0000581accaae6fd0000174a098699bf00005ba353f231990000082e3707286500004539d3551f39000059426f5275820000013ff206364e0000c5902462d20d0000ce9ae73ca38c00008d9751dcc00e0000c164440baa2b0000eb5984ab56340000e770356049d20000c5a0006e47bb0000",
|
|
"output_sha256": "d055b0710d7713577ba0b3093516b66c24e2a7c2de5ff8957e2852bd7f051f2d"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=PulsarQ/i=7",
|
|
"input_hex": "4a8b82e2179202a2f397837aa049728c5bcc666a9a13ae82569a7c977823b666521ca051710d433c1ce7b7700d36217d873ffcbf3f91f51b8ae98ee2e37486da28ac454f20596c4d415baededb25efd7aabdb85564b5ae1fcca55cfab4bee4268d3d89e1885338df43e9b73e08af88ddbceac35c4b8f2ca4c8581d5b423962abe0f41e913ea902e951d357114c20fff2882a7403e12e0eb70ba50c9424a1ea124485297aed463de6ef9c42a624ec62c688900ea381c4b03e1cd86b634300b8dad3337f1a64a959d4ee69ede858084434b957fabc3a206ded4517992ddcb6f6cabd5d9daddca5d08f4654c6d36291711090a31ff6df2d37f3e34d7daff740e7e45fc653b6cf7d3b9c4f6c665235979253e04470c2f92d69a15a666da06b02799af1125aff16d8bb77a261f08aa6c887a3ceff9c7a0cf1cef662cdad0fdde3d9acf5ec47f7cb94b5f46b0ade6add32e3b5b7e1b7bb640fe59221be7e5a4bb1f331cd0b1a85433d4be2c4d03889874855c633e630f570cb9a92dec7145ade392b28f346ff8b9e9ba3bb885c536dabe2e1426b6fd647a2714aa85e0af22869184951ce4093597b11ea17d740d9dd86b0dc0573e5a0e55148795fa0a06e3f64c3793d18e2ac045ceda9e1b467320b61a09640383075a82a4ce0e0fea5ed6d3a196cd3b79c6f67dcec0e9826235c0548ebdc297e45a5d0359790334f1a25796a325bde2413fc5225f3f033ec75e9885fff358302626310f93836c32f204942b02b09594b0ac49f0c970c75905c99866a68015dea0140ce660c797d7d00dfa67b7cc02200a69c7ac34fc211a9f0ec14678991cc766fb9ecfd6c968f15b4c947845302f54cfdfab88cf1ec91ec1447f5ec74118d497e20a981c95c0313da76938439f80f8add601967e9fa1e2253e8e6a87f645d3aa7e014158010ea246447780f152f0ebfb586d23e0b77580081e09bbeb9e976d1ca27bf499de36ab4cb5e238a394bec430c5c1ba346f32233ab5299a11f34935d5e674d3acbb4192715499eaf8b90d2af106d670d6c2d96b316a0bcb7d8d5a5feec330f755df5993c95abccf6371e4719adbaad3ccd784275a0c7b1ec05cb8bc77442a8108fa426eb08a1d900170240cc4084d4b9829771eb5ec10739f80130682ee8e6841c1314a15b596f6301e82781ea956a10999891f6592584e06226210c5088207435eb6e3e1aa0d50a0bfd13826f1753460d0e66c8fc66631e9bdac6382782148a5139254dee13f7b715508b5a6a50d390fcb3ce5bb8e708722241d5a1f90f6920f00c21e326f4b50ffb5f57a9ba79ffebe89a90dcbcf82fd1aafc19cb9909b20bce177b100e0948c1c281979a5d22dfb4cb7b0907da1519f4a150dda3381010d27b4f325e1c71e114eaafcedd40eee8c73889e38a94748c65d7c19bd7b8a430f831f166633a896118561c15c9567bfa6f1e526009cce9372ebe7a9568bd8106b4149a185b47c83ca6ca39f27e592dc0774a15108329105a190656f80a1252bf272fcfb2c0fe62da0b7fe911b32109731f046d31451ae00b2f909f40135e9ff1ed2e50e327bb9f315c422eaac856db5bbe657b949d88465f3017bf8b8a95df76e2296e74ffb0266044cc5371332529a15f64ef0a7dafd4925dfc496c34a52e575ba83a4449082add71c1fd50871ce708d950bdf73afbe390a9bba4bb7055da10e0382b9a1aac3075afcfb77498e3bd2b5cae150822f7da09c9c3cec0f13485d68be1995843f8c5812afa6e7f9d0883b27376853d124bcfb2298bdd72271cb6e35db96ffb1fd592909eff6992582afdbb1f34987216d3e614f9819255e9114491812fb6395d6c4d37f74eaf5a8aa080ff9471e5991f50a26c3136be0bb2995cf0280804049f8f4b11b05b593350185c927c6a616f4dbe76564fc7b5c913e23ef9bc94f697357b91d28ae279c4887e0193ea06f176fe869ed62fe9e755bed8ec7ad3053d3220860f1528a2a3260c7e64dff2e46bda5a033c9e0a8ba69dede980c715e6378ae312a762b0c3392e1cd3e4ed33f564b29c34d502def249c0c9bb9014390059dfbc30eed945486dd5992a0d6d23ec0ab93e7a272652f974756cd01bee70516bc326e28844e1fa6d952b0300cdb4b82aa77f5a8c7f2b5669ff399eeb219b90f60e10cf150073570eba491941844466c787cfaedff9dbbb2e2904a9b175e7dcebe2f23fc14474be03d6411f4d345b2eec641bb9db237186eae4557e9b2f10c22cfd15e4ff521f8f6673744c4f6fb534b095ebcb78417867dff17a7fdf67c4b591fc550d0cbb39feea78f56f06d66eb84dcc96a7f74dc9968531cf2296335b825422951ed2699e56050c61906e68f2750cd768c2c72f1c61ca3d257fa9340368fb4a1ecd4c98f4a806843181c7e94b1db3f5ae77c6f6d22e1af70473adc3bb8c03fc8eefd821cacccf14edefde574a3394b6bc04f2fff931affec4d874b1f77eeb3d0d2360b0cd022d2bb8880ad62705345818e0408f52e5b1526b743e0b968773f724903bccf19b99fa2248bb4cabf9c8feb707d73fbe2cf8995a8a32c43e8f5db78db128caec8d874c053be10645116dce4bede7fb08170a37b97c04a5f5a528eb2f29d905d8f89ea909ae17d601a3934b44bad60582898e284872ca0d687d8accfded8cbbb1eac09facb42ff6581aae3c24ef4450200cec9e4b50f1d81507b6409ab44a313e60311aee89ce340848fcb0b3a697dbe5e7082df7f130ab73778b023f62b7757d47f22f51f805a0576600882f4251d2c7334fec15873e3c3afcd3da72348e0727bbf854ca75b3c63c5f9d7e9b32be30e5b4f036182497d69da6a79bbe2abdb10a10e9a0c8d05eb7688b6ae869a91adf163ec2ccbc8236e4165a959ccaa161f8813d370b64af578a6d25e1da5110d2784f47955b201cecf8c61515c6c73b404ef380fe48132f7a4badada0350fc0ef5b364a95b395e42c1c5bb7558d7abb8a3a8048eaf36fd519ecaa4531ffa956be64996451e1594205589bdab1751329e6c606c970a4a10bb7575748f81d72c59682439d0b08920be58f61f7620feade5b4b3217e4b4663fb775bf0251e6f6571771198897fdab099dfc9fad94230dcd4f8a7a324eb71a7b1cd1ff2460e4a5b44886141a2029f0fa3452e2af9220653851e072cbe5535360118aff46d3f1f2af4e7f526de9b29f325b698519f7a9c5b41d34da0a4470a8736b2912969740a5c0a763345908909ba2a09f79d4f362ab6f48820cd48ed525465a13a19341ad64c790bf4b296d751bcbbd26de7e040d61a3572a54f247de4c403ca3183401dbc9433941686ed186ae2ece4b3692973cfd26b27e4f3c4fcd5ff890e938f9509491444c3ad3eab36ac5ea6fcc8fb6d7fdb1c7c00cc9e8a49d5b5e8455d50820801f14f2762a8885fe6f6b4c57873ea9a1b98cdb4626e4d2c3483e79e476da30de8437e14f2250d9b35b97cb475180992f0cb32956c4d10383c1bda19df28c6af27aea3a9c4a76f6444c3ed7f5d0055b3bf33cdc4c8c7cfbd634ee2ade966c2d6b672aa43512689f2aa2478070c66ebe2ef5ac02160f1bf2381e869bd283691bab3d18f65295590ff53c748767d2e7b7e5c93afdb2147b255e99bc9dc90eea5a36b57e0b300b82b1921e5d7cd0e60bbae2e30cd70854dc1834bb71af1ad98cde6492809beb67746221308c760f15b0624a0ec645bfbfac72bd1cc5361f7154fac60bc982f62a6058df4404e90840c168d7ba289da02f50a72b45085d5b93e97d513d56954fa6f89954e17019d35ae4bd223dd80abf5b4ba87f7265ef02ea9c33b7acead768ff412875608e9b1faaf203bf8abf6e336bfaee119d3c1422618d3f3e43c1edccf47f4ed944df6ec9c94fa2fc845ac8f280c273e4c708f4d94146dd9af8e784083e3e8a164430675e4db88c92f490417724ce4f04d798aafd476c583455bb5ba62b4e235432d4e3f9663adc49611572d1c1e4d8906fd71caea40ce3bebb1f0528d7b8ce8a5d7ab2091cd5f518d3f7766745e76805f396d34cd7fc6d1ee145efd0d9e4523f4fb695a5efbd81ab2b455e945fc994b31391372e4c9596b82d6d0f1c3e5d8af8778890759bb13f1d2f2449bc5c51e6cf0e43696b5d5fd2170d7145bc7db0586cdcce33169076c46e991aab001bcef5e5c587ddb3301c2e3a3f5cbc12b69ef96e773c93629326466f11a87ca149c8e3b849c433c0eb52e156343f9fc6f75c51900bc0919525393a9790fb8966605576123cb29885fbdd83438c9d12376984312450ac6248e94ed883b8923536833766a81433653531e95e2765773d9c7a753604df60c9958ffa9ba5c4b4b90a39477453c47c851f816aa440550bfa07b72138fba21beaa10752cc7db39aedae46b00ab69db7846dbf227ca74fb52443a9c656067c05e0a0d97af6cbc51e9a8a2ac83cd8f9e120fb8c53b4dfdd62f3812308b7ac54735eb118f837fa6eb6a5bbcbc83776cd3c11fa2383da79799633c8cc6581fb0db403f56ef7e75e07f553d4f13440944810d5c8ef89bc6ad168acaf76cdf5fda05bffcc6dc8d31379c1c1021adbd0a272fa55b545bebd38a1b6824d114c2487fb22ac2518bf08a19bebe61034f6d823b25edeb2fb2bdcfb971e6fd1cf615da9fb5fa7a1f45011703494c7c4f99a9362174adc20278ae18e5f1990028f74f7255227a1219409d9264f9a7a547694c79e09ed0f84ce6e22bd4985f7405442f30d0c11606a914e849f21ab84106d36700e99ec951e53f188c192eb80a46c1bc687936cc4aef21570aeac82bcf275cf2151eb1a3dab74070d0d806137cca67e5477fe4faaf48e2e3413bedf7e292812ee9d9f3f72238c403efa08152ecc70384f28dea4532f5a7825fd08f4f9cb83e562ca20d0bf2ae67e56313618a032212bd656a4ee72e7296613fe11e40e7d73111df4158bad47be8de2d3cde289a9d3a7460bf488f78e31269b5fd3ee9a563ffefbb2b7c901b542bbefd234f10bedf8e614d4cc4de0cbe9847f870d4ef7d149ad983fc1e904456decb28aefe174e862c6acc57caa9dce48487ad245e0355147b4ad9e695f3bb074d6f5ec89de8a2a60883faab0b46f2f11848bebbf13fd52a8450bf0338032b429573bb6cfdd4391d29862d27289ba96f304ac64306a0a6fcae8b156a4684501716fa86ca73206d4b216fa0312b094b0ab93d7f0e69fb9535a4cf46c106e24dd963b5ba6452ff35558c0ced33f4ad7ce03c6ca8420751ae7cebcd295841294c95efd1f07406d0207daed3aea15c2c3b9853e8b07880d99aa67025ccfc784c1c8cfea5b6b97804237fc1791be8471399e63bd3943fee576c7d4336ed836c15809664485c6e33a9e72af41fb4d3a454a65c1c71a0232c79723ddc3b3ede4f39a7f85003b36e89cd415c30f1a10bfd36149f310d7bf933a1b9a3ba14bdd7b869535e5f81df18969621e8adbdac6da78d464ff19d37bfc93abac90a738ea271f783e8de0504803e6c74c1db7c2b3343a52642d4296c2c8efc61293fce696cd5f94c3b2461e1e3ef18e5932ec78a49977836e32965eb8c85bf22efd7064067a8e8fe137e119bda58a90c88ed15b970f75a47564f1575ab8ad65cf8b2aa6af54bd44e764fd645e6c01ac6ffae76bb6ff87dc7d9f2d2dc313c1784c2eef22692130a5cd9b0aad772916512b58607d6246f1cef3c580c60da56ce7e6c9cbcaa2462ab1991364f3caab6a24050b9259885a652c47dbe51aef6c1edcb8bab4e2c7cb0e703ab0892c21502353c445e701e99d806b456e79bf83703358716236bc69",
|
|
"output_hex": "4a8b82e217920000f397837aa04900005bcc666a9a130000569a7c97782300008ae98ee2e374000028ac454f20590000aabdb85564b50000cca55cfab4be00008d3d89e18853000043e9b73e08af0000bceac35c4b8f0000c8581d5b42390000e0f41e913ea90000882a7403e12e00000ba50c9424a10000ef9c42a624ec000088900ea381c400001cd86b6343000000ee69ede8580800004517992ddcb60000bd5d9daddca500004f6c665235970000ceff9c7a0cf1000033e630f570cb00006b6fd647a2710000ce4093597b110000d740d9dd86b00000b467320b61a00000383075a82a4c0000fea5ed6d3a190000b79c6f67dcec000026235c0548eb00007e45a5d0359700002413fc5225f3000002626310f93800004b0ac49f0c9700007d00dfa67b7c000000a69c7ac34f0000766fb9ecfd6c000015b4c947845300004cfdfab88cf10000497e20a981c9000013da7693843900008add601967e900002253e8e6a87f00003aa7e0141580000033ab5299a11f00005d5e674d3acb00002715499eaf8b00003c95abccf637000019adbaad3ccd0000c77442a8108f0000eb08a1d900170000a15b596f6301000081ea956a10990000f6592584e0620000826f1753460d0000c8fc66631e9b00004dee13f7b7150000a1f90f6920f00000a9ba79ffebe80000dcbcf82fd1aa000007da1519f4a10000633a896118560000",
|
|
"output_sha256": "5a7ebcbc02f067bda233b0ab9418bf30ff61e3c427ddc691fb2f44debdc907c6"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=PulsarQ/i=8",
|
|
"input_hex": "a609124fde53a204973fba46464ec9a01906ff777e65a6e03910c38d53cd0d4a3fc62cf259bcffd1f497050828ee39a5065d184b29f2b9399e6dd8f39535691d0a4e936feb5c2e48d6870c2e98eefa099b3091be2b5df31d029920f3c7db32e50ae3632a6c499bd1321821c35f8ad3a8ed5718ccf3ad56015c484a37322e695f2644cef1056e38d32cf0576fd2b5c9202789dd1025201615c132fd65736cb717c08d3c7f63aabb71dafd5ce07f9b0cdc412674c0a9a2fe35a0882c68b6223f4e2f3efc3ee65fa1855b99370cb559ce6f06f5c852c6cd118cf7f6d64d18f54d7ea5d3c3f4c087328c19cc965eb48306b3eeed94442974b986ad62ac15cf42789830599558e0201a516954745f1eeced067fe8a4c236c520761e8ef504efad9e518fcf5014f401c026c33369e892d1f16d3f90ae7638e4d93184ba376f72a88c28de0d81ef004e4b92921af9768095fb800327fd5a3f3a5ea439720a810feef2ebdf16466708b0a3a798bff7e0528bcdc3264c7a9172d14b30cbcfc885c8001859c1f559dce97329961c84028658a14900425d67da96ec3506747f226dfb928cc0c09b34eebfad74473cf5810e59f38e72a1a3c400876f15e113fb289acc9de0a95bd24625602625cb354f56ed7556b5ebe9302d7a9e9384ad8e1d98a8d7e357342e603fa41f28265e12ee06d2da875ba4cbde692672dc2764a52a2738cb6b02df22c72c3729849909bab65db57f0ad29ef043f7c3a7b87d1f06b9cd0ef847271874f84f3bfe53c9ffbbee815bb0f2ae2b0dbbd5e2c372cbfe0fe47af9ef7a3c1d2cea062f9a15f08e2528bb3d622eefad14020d6590aae119617db18c3d5f7af521c40c05a44b718041c50cc9943f219509641545eb56966f9750824533c769f070f9c98105993c2bc44fdb45c164fa051c88cc5a3f73975f74c1ebeece484071f1eed0e6ab7285879b03b48fda75fd6c69a6f69ba0d60271438df662fda2cad97c35087e08eadc19eb8255513583d1c6665d59aa99943bc940332e9166d681b036adf48bcb0fd40ad38f0d6cc3e546b40edcecdb56065d36f85b31509c8dcefb18c745d30bfd10dd080ea9659fd7a516ba135315afb9c54807a011c708d44d1e4deae3807a780cb514c60f93d6874017cfa72eec0dcd8d52e64a30c84fcabb1d13994962ae9ec585300704db196be3096ce5797a685677558af14f37f308e98c01a99160a43a29564bae40f3c224e13e323775065c42b98ac7309164f7858c63999961853ecd3a1658cddc422778bc7d1af5683a2ce3eac0c034c0a95dac9d1e4c689476d9989baebfe8d698507f8dfc4b458f1c25c66cb66e32639a6303e20423b9973ad3f07512c1c95f7695ba8821cf57970f57a44d2e85c9ec7a963eddaecf9ee3d8f9d5f865250a13cd619f7c7f744eac4539bb6968eaf6d3520468bdb94ca13f46e02f9fd8ea567e293d3baebefbeb4b378be35ecd7e1b9f6c336602dba89be615a29d439b80fb2b0e9749e13c17ad1fefbe576fc03822fac03c2dfa766a8f944485187a75b0f20d549ac86c003c937c346161870b51eb21fd2bca1c831c1e7a77f5064b4d15961554771042fe57b8898a48dce7e9b83d8fc16f40bc004ce5f90d7240bc2bb636b7c33b96bdc78ee6e8fb87eab2afec86d4500554f97a5900f272d6bc5c88da5293381533288de90c72353a9817e46cef3997a7a5e13133ef73d69770a4777756f1082b8d2e7f0cf3b44a315fce3957494726a6ac207d49058946f373e2dcefd271459007c167a4f6986bf4c98708f3b68b93c1a9317ddba767ef5815202502feee4b133db00e3e2ce5cce979ffabaed572a010cc7b6a34b772839dc0ef4bf79f7ea96da131ecac285d83ee27630d7f447b6d16a6d0febfb8fe0ded62367f8b918d44e857845ed76c83ee0a6b43c4225d307d0dc1fd428d01e239cebf859cdcbe75c98cf551243d5ec16fb6c4a611b5f7e62cca6a34a11bf17e66e7df8d6df4190718c181a20ee29663927d17d9332b9081fa8fb7f9bfac86f6d30fd7a46b814babd87c53f3119ee37b22cc3a1ab46f3276a6fbba3ac3fb38c55afdf4bcd806ffca4bddc08604ac374de21e7b2e01a5bba84e8727563f69effefcd6efebb7b5d49c86ca60eb3b4f0f95e49093bb780117dfccfe725caeeba397a0c1dfcc975f5d84d100e10c7b7bf662aad957db5ed2a85a8fad42983bc446459cdec98873d082d064cc7bf3b0478420ad2a8d11aea35fd99e03fb445b2f09f910d4131a57c8ee71268460007fe8585afb742fccb5ec0f50a6beeb056b3deec4d85a0a3bfec8e3252345dea0fe8ca84051ae7e38cc7793bdceca1a4ab28e426acd9090b013b00570aa472cfffd81718b463bee1719aed037508023cab25c8c4c8d38e94a71fb1782511a57fca8f65697f9bb0d25f413f28213b3e4d421083a841f6734ffdf0fc7165ed048215044408945bfbb0db50ce8f91968acc61212935894ec26d58eba396ba5706c44b386afe6655acdee2394496decaf704d3aa129102be78f31502343f4a9f4d3e6f531c585095b7a7ae0bc957bdff2d807a83ca4de816f72e3693103791cf4dfa06f264b995c03dbb0ed0eaa598794fc5e0ff124c696907661de1074079989c435747e355d38e4bc56525ac1c5f222352d9fcce2b0e61af65806bfb3b9d31c0e46b418f8a829b6519fc94a17a74fb41d40d0257afa0836bf6ba98aae8141898d24716318e1c1bfd1664ebbd824590f196933df23c3513989e466bdf2bf4a73983ddc92d28fef2d6db94a3c65627849b0ace2854d5c3e44a6dcc09a4597c31d7a0f67771c2abc8e97333bb8c8ca41a6a8b117b3b0a18d23d96cbf2c9fed2e98cceec25d65ad7adf9c3442a3d0117f2807c1e39346b2a77f689f5d5c16aead53b23d2bc16a9a7a4c18e930ad9d67603d9c12394db41ab4d59bd89d21849a1d1ae83552094a234ef5df1b45687e2079fd24882e33456a148becce5ed8b3ec3f66085f9ba465ef1e185e0df81fe1e97a952d1d17d64e435e1bebb37974b3f99b55cd4aed9f31ba7e937ae7ba0aaea0548ddba8dad33fc2f88b5ed7192cd721fc230e96f70ff0ac532ff5516c17caf1a0f0a89e4e9afd5d22fc9d5e0385b21f91878d3e6abb5efecb6d2ac008b2434a32dca9f120b0f7120f9ebec141e8a24b6ac6a07521ab549ec6dcb13f338b228e2a03c9269d8495ef800afaedc73295a3183172df6c29e73a5a32bc2005f0e46c10aa76ec124ba0498d2b591b7e7c7830c15366148954eaadeb86d2ae2d265fb16f59c92435ca64ee0f341d7f134a6ec4125e105d35f859fc39cb5abbdd5459deaad6e9dca20cc3420517f08a0c001f0503928c487126032c8f143031dcac61fe5f5c5c44c40c12cb9c68c58946849b4f51faf1be4cb4b9afb93866a05d204839600d401d6062b9f2192ebc7a8817a5474fae688b43e8bab27c75ac9b176b009c7856d9b3b59a3e57ecb555c7069b849827d97d8cfc217eaedbd279dd61d63d95bf493bfa0ded67dc3873405e8b4e123658100719b2471393756b963bc230098db9171929b19e2539810918e3e6e93e4b5bda9611b141cd05f9dac9472f9d03f9beb5cc0ea70e24628df76535530e4bfc139ecaecd05ce077b7ab3fb646f35fd7e6ce52b448f0974845866cbce463c103f12e9ba4757ee745d8ffef72216bce61879d0d2e42cc119c03aed0c9026d0463894b984d2c1c17309d641be7ea40567d78ab1658cefc8a980049684d8b24caa15a82d91a22f92e175de695aed7df6ebefc2e3daa3b290bb9254a487b2f8b4e48f0ad850e3f7b900c75bc89e292236b78b3f5654e9ccd29b5e3a251581b43e8f66edeab8dd00acf16e3f35dccee5bb32305a367a96eac877f1f20647140842971f05b55029b0b4144c1b0c2275e520c5e2d817f991876733de9c2747433501ea77f19e6a147772652709437b008519ba2700f08ff818d7cdef5f1dfacff103503093d9712269b98517a0b46fea7d19421be84084bad780a9c4d1978850b8f34ffbcf3b5b957f8f0c4435f0fca942d0c8735e5b152da9b21f21cb0065386ec0b6775ae4d447695b27c45a03bcb03a35e664ba01d65fa41fc91d4435699c0e443af82c93d4f06c07b8f8cb47ebb9fa834b43929384ec0c90f7cc0818efadb5355cc99fa949ef351a98143c51f9bdc507dab1e85dea4b9393750f4cc2956da72c3dcbb4c289f442655fc0bb2317b107fe85e80434a62f593b629d75c3b1e2b25becea0951e3cb943641c7f5a57fca64746d2d551187ffb8ddcbb8c333fe38e64677550243d6fb3d1488e604dbb10e8eced405eed29cdfe3d464269156fc1658d31a21c218f0625b5ec8a4e9adceaabf2530a04caa10d8877cbdbec29f25ef6af6945c7f92139b8e0bcba08462393fd68876ffed4a53e6191116521577d6b99b6468c81a311acdc843615cb35e9562a84524b6413e02dde3017d8cd659b24b0a59ca749d6e8e2d8fa8af842fffc3d8c1d405cf417819d6c4cc51ab94370566e3dd98b637d887b0d5d1fc91b34d360c26e6347c42832f0c1db8274ed8dec2a9abee51d92461c1bb477c34ed1d4eada11ad9564da1feaf12fed7270d62c1e3c71a67546525cc52a5df21cc9f2884aa064aaa4153ac1f890191dc323f7c0f04997b536315b9fde0baef9589bc1aaaa1ca9819bd7766f1fd18a51e10d7f398bcde557d7ab7e6c2a83720f0728182889a96633d23ca10ca0371431c2376ddfab7f2b04dc3c0cd3c252e03cb13bb3f14c343d5918a2675271242fa9dd7739aa539285cd364996c90474f05b5289498d0762fe64428d412c44f95373c6dff5fdebcfdd1803d46cef0920b0154560e34254b5bca6ffff9cb6504f0c311f195728386e9a702f0970a55948f7c5c2ed6a2df59f014aea37641359a47ad65289bab7d6d76c8d509999d826897611858dda9b1064b208d5d7873fdcd6eb01c7e4040a4272a74e00187566a101fd972264afa4ddd1ebfd7283de28741f9f01ec2202dd96ae3db26a68b00cc667c68a521f6a41bbcfeec32926b53bfbad55e4dff8d74e6df8415543095e352fd8a0d478238cdfd12326efd27dfc07ca2d2a0013300ce93cf3e9633960f81b7f53cd6f75260e9201e0a100b0fcc3957923f9eef57b04f009ba7a6a9adfb07d2288cc6c6119a8a74425c0b3afc28c0cac0fc36c4ce9910358c56db88c430cf07376e5badc8359d09237b411e085bcadbea64f0bb4b19fd4711a94b1089715ff792cb183b368716d65012a5f5683fb600b0d938bdce89da2567a58f535824570476e71bd8ce069a4bf36c11f5bd703d779b38aaf95b381dfc0cde3bbb484ef25476125338ac40da765f76247a0c5be0d7928da3b22f78d2460ad9ef2bf2cff683cdfae9f0bc3b6d368ac8105cd4360259f5cb31472211af6ca50e942f46b3eb8b5ec7053912d1a08a4f04132d93c00625058e7284ecb3fac6347340d3b2f16f417da6edc71334f7dee5cb42c73ec42d5d273657cae2770a3239a603c662b7a4232fcb71021689360a47822d6ced1a96c8a3e18cd633f8a93fa539863b029c148cd5ca05045868ffb9744816c776720adc39a24b33db5ec4878a0ab53894b42c70cedad225bbe14b8acf856216fb3bdecdc5e4e9e629ebc4aa2eceea8b8820c9203bfcacd0b2c82f2b72715e3ad2b55200ed1c310964f9e8a5e6904de5c9bffb6921609bd2361ee69c559371d0dc5780c487ab924e2757a2dfdb50396b49247bb8240ad2397095687cbac9a44aafede050b5c56",
|
|
"output_hex": "a609124fde5300001906ff777e6500000a4e936feb5c0000d6870c2e98ee0000029920f3c7db0000ed5718ccf3ad00002644cef1056e00002789dd1025200000dafd5ce07f9b0000412674c0a9a200005b99370cb5590000a5d3c3f4c087000019cc965eb4830000ad62ac15cf42000030599558e02000007fe8a4c236c500001e8ef504efad00008fcf5014f401000084ba376f72a800000327fd5a3f3a000039720a810fee0000cbcfc885c8000000747f226dfb920000c09b34eebfad00003cf5810e59f3000013fb289acc9d0000e9302d7a9e9300002e603fa41f280000a52a2738cb6b0000bab65db57f0a0000bbee815bb0f200000fe47af9ef7a00002cea062f9a150000617db18c3d5f000009641545eb56000070f9c98105990000c44fdb45c164000074c1ebeece48000069a6f69ba0d60000438df662fda200007c35087e08ea000036adf48bcb0f0000d38f0d6cc3e50000f85b31509c8d000018c745d30bfd00004deae3807a78000014c60f93d6870000c7309164f7850000999961853ecd000058cddc42277800001af5683a2ce300004b458f1c25c600006e32639a63030000c1c95f7695ba0000cf9ee3d8f9d50000250a13cd619f0000ea567e293d3b0000fbeb4b378be300007e1b9f6c336600003822fac03c2d00006a8f944485180000b0f20d549ac8000051eb21fd2bca00001596155477100000",
|
|
"output_sha256": "7b1ac14f0b86036a58e980139aaed7957dda8b3955d83c636293d29984a5e119"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=PulsarQ/i=9",
|
|
"input_hex": "162be1a4c98021ed581416a800e04b13b159909f308baaf4efc98c533cd54320d3d812d95399de10e0c423de111efff9c70c2f24aefdf9ab1c4934850b5e2e20560f6dfa628db4fedc25a50897f77663df41353fd6249a85a167e039716f76304df71eabcd84c77aa37941e9c96f614f418146d01ea99147906387f5580c16b56018b8a27115628b7f123b89df6cefa7a21ffbda8891e971269b1cd72de80904000538ced2aa138e22936b5eac0f9b31574d953bde7c79768b936d8919ef82159a955e05e646a7c88c0d6c37452fda208fd5d7dae8e1f165c14a2abff2e4ad9c498460c007b098dfeec698774fee59e585fe3d39be2c3a029d3835b5cbdcaf34388f5dfda34015e975122d90fe87292ce220f8b29d1de51537e4241f62f56018b27f87ee8557377f050284f19ef31b57d590f887ac04cc28469c5b7d3063b2b07e252d2db69919901dfa0dd47c5121349aa3b53d23e996bf1730e9dac8345218b2b255b3606239626afb92754b07dab6578aaaaf42d1e1850a2698a11ce966f2b1353387858c40394ef1329c0930217ab972c90c035f05c9de42800b1ec92cbf3ba2eca4d0398c6cbf7751505eddd57fd952a491f12c25c09ed9af24ee877b84a4edb64f56612cd416dd5014eb74d0d664912217deb90799867654c173e418c9cbf7eb6231c63fc49cf58f4a284a3af4b69dec1877cbf1bad410369f4f9b531735e3b7e96feeab8790e0f799a641ad706c69948566eccb53e752a1b743a7d17cc1a5650e80e1e711adbd852cefc6e1e814992589460168cbf373ee31b321e8e8d7408526e45c95f6221c3cbf1592a188c756f0bf4b84b1c9da1d01e85fa70b15d75e476a1bf7372c9cfd511fd855801d3f1dd1888e4ca79a85d8f04090797eb14f3e2c576b0ee0f63a69e6caccad574d36ac6e01a16f70324e3ad68325b547299b500628e94da02f62602db22f4fd982abd3eda34f25e04ae57e48ebf059e355f99ad271af5caf65faf23128cf005e23ae9f6ad052b693594d6e7202ba9c01347344e209a6904e12fef83a3c21f3fe8fb726ae5f2192787464d6459c753db7f55de30ef50cb0230a7f3bff80cf6c3349fd41f460f11e385246d8ac3ebf29419f54df98e17afb81436045e2ed3133f43181e90019a06faee244994968ed78a67b7d86e0d6027bd330879f45580a132fbbfc0e5b42155b42cacaeaf9b6e25e0dfa16c13b274188de8c835db5109c4a0fc41ab9af5ab6d2458b26824f4db0d6a389afba832340136d88632572477f25e0058b000ec978d9e79dafccb0786b63c9b3950fc01548a26c756695d9bb9b102f649c395726080ffa8dd57487115d9885bc54249c9fb54e4efa66907b82cb482f3c3099d823185e087a51cfca5808f277b471e58d51668da1ed3af2240ed3ae647578da07184be668e0e474149bfce70530697a220dad918af7130cfdc2b0f9dd70daa543bdee7bf033cc059ec6d9f84236d5557fdc594415306a8a856650dc3b6d229bd3b86ab654a855e20c33db702c1b753f1985ff81fc59e24bb708c47ca05d6b6b1f982a0757451b0a6cf52f96489bdae681369f7721edde43bdbe8d7f4f121b444b92b2d9e9db05f454407e2e5d7f94e8ab49e432ee24a221291ad60820c12eaf3ff717c6fc546706b4c49443aba8084ff8df267e61616b58e3f33cdeebbf3659c3f72bb7da9864f2ac8f35cfe62d6198503e83dbd360aa99d469726287e4f33bae447530a8b0b1b94999ea19077927372ca3465d3e96db5dbd4f25a69ebf8434f76b5eac28a74e067b66936092ad46855af0bd9527c5e603c2d27e18d7f799da9a690bac6a2d1275aba18e02d07dd6bdc7e1f8232aabfb6e46f738c7bd7d96513198e9a7d950b9e355e0b2627d783d64b6578d65f46e8def319ac886bfe38f2c1fae6e9d68224fecb28361351df7ad0ee287371e7ed565fe6abcf56a0da1d47022ac10aa008aa7b027f81f639d0eb5b83c5b411044e733b1cb1e592a9563ff4a2b14a2e7e5d150b72bc72bfc1d8eb5915bfa352a8de1ea18b3288a117c303ef36591aff5f48dda110cc0d4b85be77eb4142e36b5e831a76bd1eae91573b34c0ea1ca0845b088c469a627cf04d2cd827f183b2ca0bc4e44497c0cca021cb1e2bb6db5bbdaddbef729acc7dbf3b45fd42bd83e034bc04af7c8062332a9d9853dea1abbbf00a11c16ef23420de1e4be24c815fd70802b76af261ac7f89c8a4018634ec6124df741856392b231f27bc1bdb1a2238a86222b3cca1e29190655294f033899df08947835c64f48976e4a6702ada66fd1c738e971bff09cc223db1102d293697ed81773fd404f1c3375021400931ff1810b832b5b56f25e1921a8d0eca93abf9ee1a0438075a9199acf7a35beaa2141d64ee411e8acae984ef1ce43c7aacc8fa9ee680ed8ff51e3a1bf0b087ababf182e6bc408e016e96a8d5f7b3f080212551ed487670b83d01fdac6c8860ed9ae3ff7adc07c2257cf0125a871f2cc029cdfa5a6a9759adc084cb44e4de0294faa648ef4065826557ccdd28d119687b726210011a02ed6ac71964a66cf55054e897666dd11494937d04a9bd1184eb5a3374fd35aa38c3c04db642830e67ff482f1228241aef9fd52bdfacd1c12b43aa113d368c20f762cf22ed67aeb605616e502eb3944c0c6dcd18de1cca65edd4528c4f778ded09da28a797f86e584a0806ee7e90c88efcc5851464458262afd35328388fcf1bbc6a3205cab0f19f5d2ba8b1ec2c556b03a25f62f3ff9a7c1708c5cce78b9ee05699a6ae3f0b9e3605d193998db921f4a0ffd212a7ce610271a653f4a82297a306f748c2fd4b73e36c6798924e815bb9504a98d61e17ecab420352dfa4b292f09dfe66c9cf01273bf43303efeec265f6c4cd35fea5764e9e46046158314b21415b1b206c44f7979935cc2d464aa3bafa07790c8fd2a9d2fc0fd3d3ded86a38c25285f6f95b8dc6b33bd8f3bede6bb9ff5e976b3e579cedc9c6df68e54105bc82fc11a49ef9843623c451b53c29273a15105a763fdf81321df8d7c3837bf7f44a848b34bcd630b3853c29c61b7c877509fe19f16b07281b6a1cd5846717e60735b0cb36a90e4631ec02f9bcbc63e3934048847168d05ae47a853550159d2d1337619468e82f073ab8f3c1c2d019462183c4f82f1bb235dce7e25e214a56fe9e98a528ad43548c7b36919207a19c7a8e4c365e79309dc62506964392c4b68e2f4fdbbdb91dc62d3df59e5899e5ab1c86d17c13019a60e6c98bde2d99056f1eed5959a194717c2c195e82a105df24209d3c6d82627f63d4a2817ce930ce7e4ca0ee0ac47f60c0522ed3e5aab1f351c4241e818984815f1cad798166ff67d0c2a944938ca831ff323f30b44ed0b6b7f931ae56dc800d329de9fe9e0273d1f9b0d51d4c12a7823c0495960066ea27ac9296b81888dfd95bc78d8ec99ff0979466e9f8e30eb32de5efb5f7d62b0739fcb94b49c1d9c8c4b51e50302b03ee8c51b0f077aed5e147029440b51e93510e2a110a3a0b48e2bc02cda19807eac1471301d613c4595a4fc549b4e027f8f1dbe625c5e7aa14d997410f31f4febe969084ec121290bf14ed488c9378bac613580345d92a6a96448f035d2060cb029a6cf61ecdd445012bd4ee9861eca03283966fac13c24b1ba08e3efa578b99134b7227c520148b49fcf74288cbe092fbef6c1c762a85ab88da56a333c95320b194239cc46cd35310355a48f4aceb6c09548be513c69670f2bc3c865343c3c03f4285d909c94777b4d84d2863f8bf58518e76d969a0638dffe486b865c1a3f46f593de74b2242426cf3e4814459d8a8198cae69466d44a4368f42ec870f626ec5e127c4d786651e3e9c39320a7eff6fb7c2302b3f76bdfd14a163c938dc0fac960975c0d8302d87d53d85193425269bb53c7b17405a30921d23626061b65d789db0c33974779ad96d887b451c4c5d365352147a562916c0d00041c48c41d778e09e02cca8765c2b2402caa49912551225cbfde9b1c041947cbf37419a7471179743f7250f05f27599c5aea913ea1168b2330d94e89eb9ed13bf6063ae40221e75085a68e264383764864647989e00598756ff06f1422c4440b234139009584aabc6e1886b0b6058b88bc50699598afb97809855222c2c82d1bdbb0d555708996e10e93c5bf3931a528971d852b42c3009274f33ca4685a14c61a979ce049465ac1999df1516c88cc345bbe8102cfbee52c63fc5175b94478eac6b6f5b88037b6347316bdd0227f9a9efff292b9bcafbbbc70176b232a400532c6fdb30fe8ed7f3cdfab7f9a283b323ef4d2050fd365b395e3b75c0b6ba2e28ff81b18fc62aa3aa2c23696a30b13b8662af5f453913ab83c649481b43af4eb36f7a74f349d53e6a695af29a1082c5f641528eb90bc96be2f9fe8ea73ccfbdf5738f4259aa4a3ac341895fa5cf168aff6934a49f4f9ef437f0bb9d52d616e857c284ecaf96d4b9e78c77a2f5190a68c162b70866264aba1f02ec88db1f1e7406fadb49ff4a36508024beea3c08a452cac7adf70e218e8417e17edb5a8f68c102883d265991344112e2cebafe129d470d16c097eb2debd2c1e0984a4c43b2d74631e6677c7a6985513647e03d8f069cc54d915b191031568220cabf31cecb72ca141a8471eddac905d7b4f4d561761a1297a06f475596f482b2afbbb4e6da310f6551ac48e48ffcff5ab1ab6454baaa2b38a30bd95c14e56ad6ca0901ff225fe706228bc8372fc1b1670174ee62d8ea113c0a6dd9dd5137619adc7068875b25ba4afe874f8b81a584821c69e19083536fa0ac0d420a2d8bd0e30109773bae669ec5f48713322bc58cba0a3a4f44739854578ac48884b554ad86213bbb265e6f6f17e096005fbed6cbc10ee7d3b8990d75dcd44b934239e99042a713cfb6e40fdd9e3e4c17e9e57e1530d4c375f442df11137734b273a4219ce949976cefc3bf3a580acd9b2ed512e84916465a2bb6ea6d572c5c51b9f7927884842832efebe85ed615fecc6b79703b7ecb2d77256fd08a3fff09224eb25a6766df433fe7f35089406d5830202bb364ab9e63d2a1ae6478b60127e576769ebb2acc9715d01924f8db4414f9e3119b3063ecd8a3b0c9a7220d43cb9e1665ad0d159e59b0f820411f739ff9265c9c1ac6b05bcf49515364140a0c3598554b656997e979a2632b0d7f727930b574913337b223095b677ece949799d40731be4b04abe5c30bd01458c443cf4ef161fcd3e2a89feef32e871cb2dc0fbdb6bd194d0c9e5f0b566d57f1622efc83a7e4ee7d25fe4bf501a6687fee489059a1849b8f82648d1de566d5f0ad20848127b60947b0c92d0b1aebd345491e861a9922c8fb323cca93b05d04aff469b47b0f1095d9fff483b85be97be22d92f9ccb87cdf9ce42fa075a0664f55fbe117ed1803ebe11a59f5cbbae81e268f5d088051aeafa61a5c5ad659f1c6205a009423b79617d35e48ae05439242bd6657f8aecdc7d91584158d3a5c637ca22a7a5fa9c1b9ea76624cd49a9ec158559bd20e7d3654b4894aae9bf90ede2fe5a612fe1510dcf56b348a7ea925ad64a01a4cc6b89ebf673220106b4e6e0b2d2544b02d5ae3cf670ba382b8801d741c14b98a9a4065fb7be2ff45f7422e97a44894d21a1fb944cb03f6594701b13ff52d52d8b95e1a1e798649a455995992b0b870e3a91ecc4757441eb642884cc24722dc28c983c7131532449570b1b73e748fda9122d3fa8cf3f23a3c47bda00218fc8b4649e29c7d3d535",
|
|
"output_hex": "b159909f308b0000d3d812d9539900001c4934850b5e0000560f6dfa628d0000dc25a50897f70000df41353fd6240000a167e039716f0000906387f5580c00006018b8a2711500008b936d8919ef00008c0d6c37452f0000498460c007b0000085fe3d39be2c000037e4241f62f50000d590f887ac040000469c5b7d306300009aa3b53d23e900001730e9dac83400006afb92754b0700000a2698a11ce90000b1353387858c0000de42800b1ec900003ba2eca4d0390000a4edb64f5661000016dd5014eb740000867654c173e400009cf58f4a284a00001499258946010000f373ee31b32100009cfd511fd855000085d8f040907900004f3e2c576b0e000036ac6e01a16f00009b500628e94d0000abd3eda34f250000faf23128cf0000007344e209a6900000fef83a3c21f30000b726ae5f21920000fd41f460f11e00006045e2ed3133000081e90019a06f000044994968ed780000fc0e5b42155b000016c13b2741880000632572477f250000950fc01548a200009c395726080f000054249c9fb54e00003099d823185e00003af2240ed3ae000078da07184be60000697a220dad910000daa543bdee7b0000cc059ec6d9f80000229bd3b86ab6000055e20c33db700000753f1985ff810000e24bb708c47c00001b0a6cf52f96000094e8ab49e4320000a221291ad60800002eaf3ff717c600003659c3f72bb70000",
|
|
"output_sha256": "517769ab9747ea142e3037243056c69371df8358f96d50fbe0f2a56be4761fa6"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=NTT998/i=0",
|
|
"input_hex": "9c8757611be41a5cf97ddd62798d3d0b1f37c6d26cbd9c61165ca6d40c5825e2fbcc3d76243cc7440c45bda71a5f29f770bf4f7c0276f209d5064c309e771ccd5852ac7e58a4c5085fcfd8d2dd29129796b5a1ee6478af5e13864c1770c2bc697f9902666fe6b655dee6337cc4d5c9881c1428a0cb5160c55daf006dac0d0584dd9f8348b48a79d33b7be975e41b7efe3fb99e7b3df725f552ec114ecf9ea7f5696dde639792bb15907da07723cdb45ecbd58f5675a16612886e133a116e02bfc4dff00c8ead064954b2c67f55dd05628a94338e7e787a851b16f0ab03501e83a6990ee75d98eeae36ec6febcd10a6d3efaced1720d836bbf5ad2b6812bf7ffb7a8d0f64290f5e7b758efb3f25523a45f02ebd62d8e87c56331e7d5517561cd44749cf3ffd646229ff3a40b8440b7add4fc342a71bb5e84f66ccc397f0d7a01ca5d8fdf92ca6ebba4274575e504c3278fba1f8935d7c30435d48cd23593b6f93e32d86d892be205107349d6eb342f0c2338b90a96ce28d40cc93713e4392b8a6523c51fba8c21f4a4292ed1799945d17f861baf0d3df10e7fe838d6b74931c63e2716b877f80c02b2db2a7f708681d67489859ca129de48308237216c0ba5c6c5990d57e94117c1ce471fceca3471139204418dc68f7c41b07afa909145520e5d41d8c684296717737a121182a7f10c93dd9873ee3dfc8f5b5477dfe3c8dba26e1b4eea3e93532b94f2838c7887ae7de5881803c846a161e1438dc6f1080911ff34ea0a1b95fffb07001064c90400e2e422b80b543e6e9d7c24e33137d6df3d55bf29fe37e92ac37de329a0062fb117bcf525b75d81abaee42fa705998b785dad73119c08a1cd23080f8b7da5b57e63315c509e2b1726ef7d5cd15599e47a649318b9671e363346c5d570331ce92ffbfef4b9af9cf4ed4c269f2e3023563b4d6b5bfbc91f459a5cf7be78dd3d99c94ed5c0699f622ad17ba1b910be314dbc13f7b1dca286b622d50cd524363070a696d38dac451b3cea084a1ddabe35de19121a6b81a051f91842b92434af70021f76920412dec6e8a71ff0d1d3a8e642091b6d5a26d8de2ad270b8fa0bddf67d6197e40c99f8b27cc642287ae867f20d1782e15f657dd6fac53f4018cef070cc80a4ea590948bbc6b8cba6e48e6c495c85f1f7a3996e2a6bab9fa9b7848d58bb4612ac35848bb12da74560c4c5304f8c6e9c2183202517a243ecf440fa2a8cc7978a1f4c2baedfc4dab1d727db905985b572b12adbe42ff30fb0edee5ecfa0e06289633199be0fe0a04512a54993ab95abca065f4590870a8aa1c5fdb1d1477cd649e619721736e9be0378ab17984e1e49112aa122d5a9db8cfa2bef2426eed975a788f9b594feef74c195478d0b047a5ec7656aa7bfac923f54368690a9fe2fc80bc8953d5e4db0e87b57b6d268b71a2b23e11773a5f287e4adec8a26b498c5b28dfb7098cd7e69e7e2e01313e41603e4c209dd180dcd55bf707593bcb45b7296b8938e5ceb6122ce0992e49eb44687e409e0be5558d00ab582888252f253217d2185b76a97108fa85c150ef34e148708b83abf29604a1778b14246d99cba94c01c508e7e6d21478d3114e7e62da508d04efa80f4e3cd62b16279057cd48bb6900101ad6d2e4aa7292b631e3a63af0dbac60d009fa94c258de0cda859a76e042487b5f0e7836d3660be8ee7b3e6617d80ca64e6e2c8ccbe2057fab56cce54e72856db1d34aabafe5fa14da265aa3502cd0f969ddb1063f272a238607796b2e16ff55e30288ab0c370001843c763eca64dd590b90cf5a09d05580159e0e217b7ee801019f228d9ca59dc40971afbd5fada4f5b9cdbb6287c2fa6b5a9e5fd84636eb8500e7b60a944201330a3b11a763e983b7307a88e7cee8424db0d5f98c6a9c2fe1b162adcada8f4cb046502a78cd91aaa14115f6761a708d8b1a4c78396ba33d6ba420b00493c723071b2473f8841cd1fd181d17bfe33e3af8d1394a55e3a2cd7cda44a26c6a7b079ff3b00dadeea265046498ab1200ac522acee2840c14c6af506688c03768e117c1eb5e846499e6005b1bc71e14057894e35386a8dd5fb5e23d8b725d4bc6996fa466ccecf1260c06229044bf079d944837df8f9dc278a4a3446b19b3b0d2d4b2cf58e1a38ec8a9f04612f2a6f60ef4dab8452f18c17c32ff9c35554ba824d5937ae4f61636d41d82436658820b7ff651020826efdd7a07e263ccaa0c7329e902dae643177ba222fa64c1207f4bcbd96c6749e17f87c5fc21db3643b7882bc4af2ed783ce1c77452fb17a48a4ca577905455e42aef0d376d5d247cdde2da550bed2707035df0c4f7947b21125176ed50608a38cac33d7496b1565d50c5b30ff162a7a2b8b95d92453520e50b0f865325e9f01579f0665f3636ebfb8425c0c6335a715395a574a253a2ac4d719fea25fc4dc8718f5e9a5d47ee1ccbba220d48e3254ce921d29359b1336d29bfd73267f5fb238d824fd989823b86caea0002d86e0e73b9eec7f639059739b82a7e897637cf74dd2c3b3423afd18335cfe0d2d5ec1e42331e9a4d67dc953da022f0c56c4627c91b3ec383ccd9fdaf83c498905d3bef58b3ac955f069868f1a794858519cb172c13afd32efb10c52dc920d346d4aab93bfb9e63b7823c4175354fea12fb64d748bab08dc3e4e7cbbaf7e0594d62ff086a70faf039ffa5d0806d6454f6103a6e58563785d1795ca38b7e86687faea40563bc6984c6f03b2e2ae13c64c5e2e974f36f4eb046b4e5c6d5bda1b3dc67adb5db47b164dfdcefac25a8adc342ed7fb358f54bee3aba6b17a3fba1f166fa59fbaeb508b500da452edce3f00f52408ace4f51d54fe7880a42b7be386e066caaf551c5b7a80616665f476b2128edd45d9e6464a3caacb6fa80034a50d0663c73e1930b5acc9dce1dfaafc5ec12f901e11b84211856f22ceeba8eb5fbc12b176b20d3de5257f1cb093303cdf1fab15eed9ddb7509a9821759c11697d338cedb6930b87e0271facad2188bfec92f796da1339154c3bc7a96111f8e609d6420e743739ca61a550a5c8b76016461a12c03959e5f33ebddddb18e559b2d5ee9878369bd2c99061c575e412777d76cd08519c2e2d53859ce214c9b4cbb3dbd56abf01b61b70a9a6cd348d3c0be3270207db9e2a4c5ee2021f57b79d4f39c77308502b11a42fd24e55272d2d42768efc1a5c1125cb948c113f388d85e38ee7e4834babcd1ad5b8eda98ebea2b0bfb6244a591cf3b31599ac13d945d167b8313bc07ff1cc3eb607b2a1390f3c5ae5d05aabf72a528bbbc2f4ef1823cf25e9a6081207fb01e2051653cdafa1246b8216dc52697cc2e808cd1e2a49c11fd0aff9cd2a409ee8b99c373eedc25b5be489b94c9641a85d8dc1bf3a5399ed7e83911480217ee7519d01c605e29a51a6ee5682213c5080f111ff02088e7ecfb59de5566ae92d21d6bc19e0f50e59e6dd3f395f9200547006831f30445719d34de6b04ac86a70f2253ed5cb129d097c1cfb37c45390dbba1cae70475bfa1c5d573d86c5411c1a2ae46ed344765999fe80a938f9784066dff74d62de9abc3107eb0349d1f419256bfe854b192eadc1c3f48c9c7108a2ea0bb56fbdf88fce54009c5cf085379c00126c23a5d4c88f6d201da32f73a39bcceb7e9e63ddef1f140aaf65e4d6c266e29b6e9f66f74a1fdb6474991ac271d313921b3d1fe28a74b1575b6fdc904ac36f19ff87c8b1497ac522d9dc6dd8654d6ac607e099ebfa6974f45d71858a6f0acec8fc421c20861dd865684c14067ecac7a52fb06ab896d23e2edcaf3d2945660f2978d1b4cabc21b0c3991fec47005cee3ccc81cd16db4f875635f8d82b0721149b1300e79d9e6755136ca4d4ec9c554f2de7df68dc63f7f396d01c88656c8ff84844056dc083b4c7bdcc13f90a4764398807c6749296fbb8133ec25f668ca41385d0bd84296c64b7218eff1842f431e9c3aa0e79dd3555a58880850b79f4ea994ed9678c81ae78326a8c580a7d76a6de55adfe3f416c8dcb4a431be2370cc122e44c2f0cf89f2bbca8fc5a722b6937ff9fd65c359cb9ca9fec6f36dfd170e0538467a5d301879066c37ef2d5aef31571d4617edf8114b41d9c93a2953aae836ccf76909e4fd8deff536c3b5bfacaf9fc0a0d95bd0d2fa8b4dd887aa93145ef1c539d127f53cb7bb9000dcaba6970d88ca64a1344b2ea90ee7ab35cd37c0eb618bab1a8561db11d2b852feb438d1ee209d502704f698237c24e27894891e4043a1c00105b327d42ae1c1301bad90ef61af1994c1ef47c22af7f436b2cd2c2803a63501562bac25a2a2ffc20037327048aae2104120d52d2db15b6c5dca4a821371b981123ad2480f2f1977094007c44946bcef54dca9ada2b74e26b3f9d51d7611b992fbbb0ef8c454f013c3c627020e7658dc9b29c4fdc061868ef0b30f653ea52a9b3869974fc290448ddb0ff8fcdae9137071cc6b38e5f41871bf38827188d94ced234fe4ccb994096541b50e0b3fbb69c1edaef194423687122a44efde75be6651418cd3af3dca690a8e61f62c1b1838a1f60e2892e656be3a89e69a045d7d811d15b795a1ebf4b265dd9d612dee8f169aeebbbf4bc107a080c28eacd772b834859d0bd35314658fe7f76c88b0cccb3ab1fa6ddfe9da6cf63c615f995eb6198c7605bf3bdc9d89e21e5bcd5724ea49597d7da597e57e541de0f94dc7ce83b6bf9fa503233c4dd2b02cb01dbf6d470b2b0f9d3c05297af05c40b96b6c2b48106c9d543eee1d361bc0c6faa12f250f95897a409a6226d7f48a36cef61cc9898ae85ef7420eac450a329b8207389d2613312bfa35559ae41ec4fc4cf8704785760d39ed70bc52187d6c56cf500d4b789e07afc2ce362a2ca0e73ba3c1ee7876d85207223c30aaec88f85021f1c90b8cdbf71c05c585444bb0e381f3b69735b49275e963e67e4a137bee03aea05c6dcbaf53af6dfe766dc73be7f5577e3c6adb990d0dd2ba590a4991e19cde8ae50215933d063ea7141bb3b4a54064b71ff346665bbe93b316a2b8e918b51f1949f91b1dfa5d4ddd39c59febc728a0d9ab514a8687b492503842ffdc1b7b48cd392e7478b10d65d5aa145e912d4f16b75e65097370f7e28ba021366f92bd6c33fbc25b4c03c02438deaae39c2f27aa286405d1e48ae348dba320c0912a3ec831b8850a0014beaceb54b062ef9bfea5a155a702bc37d095676af9d66e3fd0c502ab726007a6f03ec29dd432c91843cea8c0710c4bb3915d0f2e880a1d9f077ab3a63f41324cf64ba93c4442a0adfd0240f79e0c7856aed468f9e23bdbcc7ead36285eebbbc94d9d6cde1c58fde1fd0b2ed61bf9a8fdee768dc924a5a5f33e0aa45473c244f8e9009e7445293da519a8260592985b599120a62969ce6fe1b08ec07774cec981013f5c6bf24423e79bc07f6535a9c9b250563531e2c483977fb6df3c9bf5be4cbe82b01cf99d068b1150a517a98e934d08c10588ea92bdb46062ceee737482eb7414761d543dd8ebd06b72eba8480d19a0d616e1107523facc0fe45d345af1d6cde520057cad7759d09067a015df7c85540ee1cd02eb16e96622f409ec07b3d87dd26cdacdd0be6e6505b086c20993c4e7b5d8ef8ceb1478c4593e37d69a8ee2d5e6cf329a1974a4191da94bee49c7c64ea6974b3597e630f6735f3483b25a9401006fbf44ff3b73a8f676255285919713f5980350c94e1add9e12601c985dd0ac1e0565361f7e7d4bd33e9ef5849ff3f26109713da2e4cd4e5",
|
|
"output_hex": "9c87572100000000f97ddd22000000001f37c61200000000165ca61400000000fbcc3d36000000000c45bd2700000000d5064c30000000005fcfd8120000000096b5a12e0000000013864c17000000007f990226000000001c142820000000005daf002d00000000dd9f8308000000003b7be9350000000052ec110e00000000696dde2300000000907da03700000000cbd58f1600000000886e133a00000000c4dff00c000000008a94330e000000001b16f02b00000000a6990e270000000036ec6f2b00000000efaced1700000000f5ad2b28000000007a8d0f2400000000f02ebd2200000000331e7d1500000000ff3a4038000000004fc342270000000066ccc31700000000a5d8fd39000000004274571e00000000fba1f813000000005d48cd2300000000e32d86180000000007349d2e00000000338b902900000000523c513b000000004292ed1700000000f861ba3000000000fe838d2b00000000e2716b07000000002db2a737000000004898590a000000000823721600000000e471fc2c000000002044181c0000000007afa90900000000d41d8c280000000037a1211800000000e1b4ee23000000004f283807000000001438dc2f00000000f34ea021000000007001060c00000000422b803500000000c24e3313000000005bf29f2300000000de329a0000000000cf525b350000000042fa701900000000",
|
|
"output_sha256": "469ca8950f1dc3d6007e22bc4a6777aa525997a2c45abe128e2cf4fb08c2e9cc"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=NTT998/i=1",
|
|
"input_hex": "8c870f6e3b30faaf1b71ccd098970df70a729bd1f0d56638c99f832333d07958f2506c4e9b386dfe7960ef027a6ec037cbd3ab4810ac7a1fdcb68bda5cee51f756d392d4e2fe21cca48cec26bcd7344c869a0a1a0cde3e8d52e24943d24fc6bf63f498ed51ee0a497ab8509a5fd30920c6fde08e629eb2001c55cea6e488cd75c5d97b8563b23ddbcece0c47a8541ea0b16ead046459d6964d5ce44d5fd918688caefea562be0790d2d891e7b8a989056ca956b0b1a5d524260c7f3a9259901f43c977842ce24cbf78f9b55ba16e97c6429ec8ce64c1787d4910cf7af1d5fb37462886bf8028821426d42456cb751ffa03881c75f8ea4e8c1c8bae04265a8cdcf5ffa4d389bec851226ff29b29ad43259418fc632bb061d77ee5d1185f653183df1aaa7f8fddc8c2d93c3abd12dc4ceee2628d2d76285bb4bee1ce161946e3decae0cbcf3d2278ad3e75a48d478ef6a76bff9788b961369522d52c724c9da415768665de16f817c1f9c759ac02faa4ecb8b525aa15b07f9e59d86364ce750bb49b9c3121e5faa5cc393deeb890695e680ec2378c245b2b4cf8b442bfed10b88f045bf9113e7c27d54e3d490fe354f31ef7600cb1f1f576f955a58a2b6a18414402fc815f9bef2a2a0058e8e4776b5432c6e1122605b18c07584041789d8541bb7b829c786a3f5584a711e8d917e23462ccd425f2abc4cade9a4df8cdcd7391d86b4521dfac69bd642e55554363bbdbd67a2d9dcc365414b7c54bdb812abc640b5cc98a94ff959490ba9f12ce7f263e44c890374ce9dade9c347460b37ee402c097420f07677c2654254ec3846d238a8fa386f843d0f7252e12c4616e5963b0ab3badf587636bdcd749967a01f7cd966765c45874aaa4f6a28a4ed3b7b80705865889a25990051654650cb53b4f7269adeeb60d4543c936790009a44ddb226ebb959e93867d7f5792bd0a38e91ddba1fc39119b570d720c1fc406f5a551df93befcff993c2116c0151ffa623a2c4025e031b8c97db4e98801eb6869a6a2e4fb070f99674dd182a32c4df3a2d9f467963e417dc502f40e8e20ec445e5a032f9d5950f8851c71b2a2b2a0388ca8f44614493bd55d5a5dcc61e7636b6654b8342b17b0aca86a7cd28b5e1ba6b9200ea1bf65093b528b330d4dcf289864a2cf2c95577dda1cb8237e96a66886f877b0c8c104b87ad38f07f9774fc13460410d8bcc086d8e9f40e17168e60fae21754251cb450527b94eb2e1afd07c900bccdd13375129cb1d53ba60cbb5661bd32eff92b20b62670c66ebd5be20de0aeb43955d424003f817e057c0f8b2bf80206267fe535a67941c01e0e164e7026fec13b553b9504cd0577718d31ad47527f04e231cc32e1570a5ab55c4623058f46fdcfbc3bafae911470834fbb33119d3de7587c2eb328b6a270a9d6ba3d3d1fe1c283ba58f9b8ad12b6aa1655ddb16a38f0090d7290a3d929429e846a07647fc36e2744f907940a54742f048d6e76d0909fb2437442d71f4c8bea5c93f687782af36f45135fd43e3a3064f1992214a365ece8991d564e806cf8ac870b4a37cbba7cf1f51bc29e19b9f1935198682d9e23ed4ca8a5ec87d0c2ffc54da213692f2e4788769b2d40467e715f5d5e1a569286b4d37b24e3a60f778bc8c5eb982327b3f9d1d31c9bedc23873c0c9db6c845bedd67d72306e2359db53672e382e607174bdd3a7c985ce8993372ab6117195b34eda506170a4d27aa7977fdf6015c140df4593ff0fde8405fa9ec625f49b0b2b12fe47135a6f918ab097cdd034bd7abef272f262b962418a10f024a777ae2f5e91ef54218d9b5f61bbffdb4f59f6e2e0fbfcb1e70825fef8bbf07464e3def164a2252e5a4b71ea04f329e5a8c3b4b32327dc4efe6fda4eefd60f5fc21314ea6dea51b1b215327d3c51f47e1cf0091813ee7ad0ad9acca44b6bb4d1c5b018102cc69853ea7a1b6c54440b6af59ee1bed770b37c709d5ab570a2aab1ba15e524abf0bd3f9a3d29974a82db5feed7a2466e6703ec326d8fc6768def4c91e5c4656f2034ea9941dd09502efc6cb81a51d4c84a9a2e1dadd8edf668582b1c56d17ffd3c5d2d90957930ac1c834ae311d1ccbd734028a45e656e797e813647342a49ed6f24abdc3425805e9bbe657af51b5d7ddd80b01c89f19c3a0d942e0db2b02a4ead2a33cc02024e59afc68fbca251888487f6ddc846176658aa5111879a8f947d4d6421c6fcc5bbc10c754c7525aa36b5687fb3c921cd424e4aa974e3b1fa000f79506a4f6377eb1b38b503dec82838ab9749dda2cec4b1106d17e23a3e0edddd28407b263a762391c41aa8827c9950409e61b3e0d39d967ccc1df178fcff83116b107a59a3e0b9114546235bbcce62ff6803f977ac38ff3dcf7372e065c3856572118d239c67e1901b97364d42d8275b21f65a3d39e8a5124e7b23e83525c31e9ffb4053337e5530a7576e1df2d82f67223f598a198439a44439c8bf6846a4cded04a53857e23727ab66a37e3eb4777277d1559d2c52b2ba93eef5e47a47aadfba0a21bc29f92cfa792d2c54ceb2dd4cb1c599aac3aa2279c81cd62790a88600afb3a140beef5b84e480aba7c942fc4a210a17f39e42ab31a91517c205ac70968b837d9678615d7e60fa23b12c8cd4bcd9e6c43bb7e7353dd724c0aa3203d228827b8e9a89e283d7ec7a6a9d2073b5eb2f3c1962f9904e5a809700950c4eeff49f5c34e9096ceba2c8a4f910eb609a23a913067c17125df36edeac942bcccb5000dc26dbe29565efe1e536eb4f75c0a8f4b62506a7ec0b08a95b87419be43df509830c4ce9e2eb4b817ca123ebfae0ff557aa7ef384af405f92d37c50c3dcf4334c76f58e897d0437719e386b7ad7014f172463675e5c3dfe1be079f272af9fad35c9ef971226a7382b32b996edc691e1c17a80a1dd090a490c6af1027bc886df5c45db165876e89b8457e4b62380aa1015c8b33998e52f73f54cc5359462da293541d827bca860e5e1e4b92afd83c2095d5b3a5f5c8284c6528e4d7f3971c48cbf97c748cc28a609b02ea1b18bbc01e4a8ee4fc341ac400a3ac398cfc0be06f28fd83a70100ced1e590952f99f0a5d3cec377509b0c28d541271e9eae33db6aae41005e1a90d3dde0c5aa6931d39d6ab8540e11740647e91699faa4d73999783bc97144a6d014697c506df16d659772b7831f2b5b01c140fc94fd3be0eed08b2c8b177c65e00a8c9eeec1c2d55318afe4e7f41bbe12fc3969f82aff8fda15c4d3d9bdd7d978ecb05737d42d8ea648651063bd11f4d71a6355c5b11efa2ad139f67f352a4eee642f9122df0dba41e03aa8f6d0afc12942952b02c3564cf6a7bc35a90b4f682a9c4616f10618bebf51f1b81c745d801e083d512ef587d58e0a561eb831e82cb00631f76f9728dbbee18ff48dafafeb0b320e3e9ba57f228c4c1f8daf0e70a1b64dd8e49d1b8a6484c29d66d0f380d710aa8e5b0526de85fd8e3b2a255596898fd229614b2c6b1634599db3d54502e2acb8dc025e1e6844fe9275cf23e59a8a04401705294ac4c396048eee51dee52c06485f7d2dbb4917f19ca5e275bda1aeaa2be5e8c8e5c80126a9f440d97f57e5a968810939dcd3681fe27280d78436020fd6d28d9d29bad921547cea3beff92b07f9aaa41a8be3970cff2cd7d1c180f5d04f71c8b75652d03e54af56c723615e788db9eff69ee9d9f7cdf11a119aad088c7ce970340d8182e1e9ce5e3e91f82e81d4ce8cb4cbe86459bfc63efce8d365fbc99e87220fce8083175061cd1a0adc3bed99eeabf8558766509f91195aebd58e7abb687e1d0ffd12b2f0ba8eadda410809d045e55b0e510708b72efe30e08b2b8f35ef725eeccab267b6a7bd82675ce1f4e6f59537d1064a62fb85d3b8657d87655fc93c155f92bf3ce9bef737436b942dbde54f8adc8f89209144ac62e473dbf39f4a750f221c0905ddb31af5772f7396034e2951868cf827e0b420cc0179f6a2d2d1b8ea42abae80318166b6e5fa2ea1b9f46e95959ec7450bc0d021500b48afc45ab247559fce9b32470c93b229ba0b98c19ec60aca154f0bd2dbc23895477703099093238acb09f709b6b7e577816d5913a9594159b1b7bed846ba15f53d4147aa992d7f33e474f4873b0a287ebf85fa32b82fa042e671463082c8711ada4d7e34e2f98c690e0bbe4d9268ffba2dad8ce702d176396335dee058173378115fbb8f1040cfd4bdb5a78fd48b0d137db44b2f617f9d387495ae59b271fef05a7d66a2199c6c1d3759b797b8090e7014f66c813f8d84f0cc8dad834e20be341fad8afdf56fc7fcdab6e00146fafea9e10068f1eb3846486e5357fe6a9a87dfc5e9716de33f595a12db61baacffe65cbd65c48c451f127dd944fc456dc55643ccd43fdbe3567b744e10b5fcd4d14893fe4ed8de7f933d497e5b02244491a48767795c551982218e01b81e59719cfb97e20322ca0f3debd55e8f5f3da316774fa62880399e1a2d5af1d530a021adf168e899b6a4a045309af084c303f17e84d2dc321f5dc1fe2bdf707c47b7e7bbb1284ec26445e6a467dae7751c79c96ee1fe375176679a49d9c950273bf3054cee7f363b5c6d2831dc73d1eca1131bd79412007df07ba38bfb858853cda9267a6df015d97592efc7fcb04bbe301de154b15487c2bdc049495a485181fff7080291545eea30ac807e3c4037cae1fce33da08b8bee41dac6a890b249cbbb5c6672fb311323afa06b714596cc31a074ac37c0e3bf0f8f24767814579a36a4b900a4787f3d0721c5f3c2069277b0f12a55836a0aabe8881df4422dc1f8cac3e9718f1c520856d28c87683d1bef98eb31d6e83f4883933b39ebbe7e5779e10e9a305b682b97e6d44a0c9480d8c28611c5b224d725a8e07a4ed6d002b01730fe7da1cec8a47e65d343800549c70f5850a43100b720c10654addcda7bac8fd9eb997f209af344cb7820cc2304ed1c67bb11ca588aa2daed5c0080bf4c2a2920aefb1279ed2e71d9b5864b1f6669cd763b3534c5567b9e6b575a17cf0943c344cf8dec5eec4fc3461e8f4f7f1e7608bf34b16cac58560035c217f1caa4292960933f7a0376ccc8339a127e87053de7a1ec03c74dab3fd0b58ec04237bcfb38da61e3255dcbbf5523c4fd98833aca77d43ee6e0d8ab31ce118671e8d1e765d270251ee42946b7960df1e80aad832ef73a54480e2a5a52789fbe046c1e9d1aaba8058ad10c229f82a1142139f83ff8bfeb17af206d280c8c7124b33dc4d287553d0dbc698455ed050c8a364779fd4172a83b50a53e583f3e979ecc213e943ed6c700d0edb57ec6a08d9c00fb317369e2093d3e37cd3b3bfabb7019d3885fce56cdd10322353eee1bc27b64a84df79edc8ea3e8e07afe9ba6a77a3c0b0ffe09a42eb37cfc640d4048f78a26ad0edbde434bfdc01faa28a6a7ecd8ed2eec2f1e14cbf4eb7dccc754551b97d7b193e0ff7d7d3230b0ce6584471fae2ae3d12b5b94641ac78b003f2f9c5ed468e77d148a656b0e1c38487f6778512f9c6cfc1eaa3f9adc0c721df564e842c93319398dc74ba58ae8b91521123c8e435bb1e27cf7c0d8e3fd4f53c2a0036d4bbfbaf2829fc66b62d7cc081172de75afea2ed00365dace00cac3082c0f5596c0452903a70979261506e228299e5357c4bb746c942be3575d96c71fe4898393c294c62619860e3214ae641c5fb8263e2ab50bd5c241e9f7674bef6433f6959c83322841b9569dee86644bc92817ade173fd95e187226e7864b059eb6f76592",
|
|
"output_hex": "8c870f2e000000001b71cc10000000000a729b1100000000c99f832300000000f2506c0e000000007960ef0200000000cbd3ab0800000000dcb68b1a0000000056d3921400000000a48cec2600000000869a0a1a0000000052e249030000000063f4982d000000007ab8501a00000000c6fde00e000000001c55ce2600000000c5d97b0500000000cece0c0700000000b16ead04000000004d5ce40d000000008caefe2500000000d2d89127000000006ca9563000000000260c7f3a0000000043c977040000000078f9b51b00000000429ec80e000000004910cf3a0000000026d424160000000003881c35000000001c8bae0400000000f5ffa41300000000226ff21b000000009418fc23000000007ee5d11800000000e2628d2d00000000bee1ce1600000000cae0cb0f000000003e75a40d000000006bff97080000000022d52c32000000007686651e00000000f9c7592c00000000b8b5252a0000000059d86324000000009b9c312100000000393dee38000000000ec2370c00000000045bf911000000004e3d490f00000000f7600c310000000055a58a2b0000000002fc811f000000000058e82400000000c6e112260000000058404138000000007b829c3800000000a711e81900000000ccd42532000000009a4df80d000000006b45211f000000002e555503000000007a2d9d0c00000000c54bdb0100000000",
|
|
"output_sha256": "62aa357069a8402a5404257dee2363670c74c3db4fed0beb5a66eb2b27f1afd4"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=NTT998/i=2",
|
|
"input_hex": "bd366ef6c6408f20d91bb3440a3702d5708a3d34967a6c1fc62d8a971aa228f37af198b4d37ffef9ac9a231704d19f20a0f183bf349c8d8d623163d9917033e3c2595aef708bd05586463c3679e32db359800b80012f672c3286ec4e281ca490bfc06fcbef996ca353616e3db475bb31c5589a6a14f0f2177c6050c77b7128bbb21097c45fe34ae4ca4cb42e0ce493b214a32b75c1eec4125dad3506f254faf366b2383a49e1695d2be5bf3f3271800592653f3c59e086f48de6c65a116a24d5cce02be42e1e4c9f242dcd5f7e091b6e5ce94d337c6606d841fdbfb059281873428e4f9ac81e910a1f5ac7f08a03c44d0fd0d42f12aa43b91134ffda13565856145b5e260476b607711a85ee669f361fbc12dd6cd818711dcc244e4193ba7057ee2090829bca3b7a9dd800b860293b27c54b7117f76dae12e5546ac1e3dfd31a0218482c248d38969464f860bf667ed367c012095b135011b95dd1234590492c121082356041b0b35a3691aa3ec8276bea0d6db4cc4358be622e9bc9db8325a8aef95d53387f3c05c4ace0f31dd0efae18353432c3694d6e6e90a6fd88a2fa8f6123c153b9a320c092503f4567e8b06055b4982dbe6d9a22ed0d77fd28719c2334c45d2939e3a1a8438c11577de2e1c01a43c9d0c8319ed185ece3f4a7eaa79984a5abb48f15b625f68a48ee3ef401a4f3a25877c9b0c1dae45152a6b8e838dac7b738c6dbad15e2f761cff9c349b3728f5987e7fce7f9fde26c6509103599f9ce98bb9901428be385c35c7eaf643bca19b3ed6681e27e5d9c422fdb3c94158e4f0f4e03407ebd0633947584782a9d995bba46d0ff547885ad7588f65b4373ec296b5caa51b339ce3a71d266ba3661aa75c095976153e78e49de7b72cd624dac0b4a018bea537971608173fbb1083720f068b524390939694024faea3b879fbeff58ebda86f2bd2447cba94e5e8c21102b5ca198e55c0a578fc516512fc69aefb83c91330737e18beef39b1ec9cdad3b51d000dfda086bd6681b36afefff03afc1c3bb2ddf22e18169bd0140188b64c80befca7cde034ec3a56abc946d86277a0a4d181885ccb86cfe8a89c15c480f42385dab517e21dc8a2c22029de15cf1f0ce2e2b7ee4da6995b58ed7ac936b96d5c2d3085fa8e5c3afd824e2d6f04f5bb204efda240cf970a819f74ca2a12c5b75f1b88d92ea54f02449b396dde260880e385533c83791a0d435cf1a9abda46ce586a541b1091e61b0d4e0e89836a72212bb13f98527aed392e35d1a6a09eeb1456acee1969cc70f6f63bd7a65a99c4f62f63dda6c0788b4b950951cfe0a1548d6b199b53a35a5db57ce3a2b30e46070db36b93f467415112a870234dc33b36ec5811fcc1184781c33619a6b456a13e2cd7e8170b65c7f219aca9066d917dea001423b0065b6b2fa427030ef1e9efe010419433a9f736fc164d12c8bc070e3c592ce7e671edfa8ff513411413a5e35ac7ae8f6db1565b5a926f0092bcce1a9227fb03b10ebca876691f518ea461ebaa33c312c2496ab36344fa9fa990822624959f776312b0499e31033a66214f7be05ed7af9e09f7ba828f184e1e025ad88ac41f534d34242a8b4d31e70fb1e9ed9f3576e0a20fbe57d5a2a1b268f32dd9cc3067e47fc1bb0d1ca909b6fddd0e807cfc7091547ac68bacf74c83a226125b94db150446557d850c278014846f1f88fe56d6d91df2080d2cc7cc9c77fb1c9d9444aa1598ead12fee8fb3505506ba42b27a60e19f8c01fb9876de50e5bc6d5e5c0bd408139297086d1deef2df0c52424d22550d755fde5c425b3cd6ae8d81e739a413b5cbcc1bc34b31d484edb7004b79a7df46a711016c29e71df358e17966b5d97246bd1110e7da4b2795d34888c703270dee4c170051f89028f61aa9c8e985b47da707012cb4e8484e7370c9fffc4beda787d77c2e31e1f42db2aa0cae262a0bcb676ef10c84cbf69833c83fabe0971dc16fcaa6da7c03076dd49110a290c2babef98104f5877f381a7de64689b2a55a875aec7084797063dab7e97c1235a5ee474486be6d27ba346c89f518671de6deaf3b1cc35e8f045f98383c1259bf1f8477b0dc3f53952d3ea1f00ed7d9c7a08b6964aea055d2c9cf69fb264d6e02880a6bad144243e66eedd219159801570d8f86d52dc06eb819c0b3041af4272043562c03a54339c2079124e57dd5830e03b2be0780c6858fa4f7149e668b8904d8f00e37abcdd801440f194c08c93d0d4d0f573c9ad07fb3f17fa314a85e7a894fda4730294bd2a43d4f869d5b0b0474b1c7825a347d7755f55ce397ece437aec89cc638e1bdf95dfc05da5e61de41f3eac2b7d2a499f687010fca4a6bc0000d352181b591e50dcadae792d09fe3197b3301304ee6a6ad8943a9a1f341dd910713447f69eaa504e629bc53ade88f436d22582775b7ac8411fa8ecbde68a4263a5eda16b2b2109c6aff6cff7b0f86baf4d668d01e4a3e92fb26b1747131d3de60f5a98c0fdd18317a8c6230346c40d78c3b8515dd9df86524e20d0f1b72f7a6fc2295f1224b4f0dcd86c5305824bdc213e8231551d127cb39d6749a03f7b8bf4b02ce1197f38e3e84c1f9e0a0abb96f9092402a8ed250b11681009a5d29504979b67624c10610f8886eb89fcccd65984250d0c56818c22952af613c35ec3bcbbf6e20bf9372b7e6d622a8ff0886e67b8b98e43c2cdfcd5677c8df7c5769741b4605c87976a4feda94df39c6d1e1db56db2bcb2a6e179afda2c7d923ab1ca8284409c5a88a3a7784a3b0f5de1ab762838af32abe718c0b8ec23733b68e73ed3da5cf66083ecdf7f6e25b5e7c32135f471732cc808b0d60c8f492271f645dcbfea63d1f29468a1555fa690e5e7ef06ab9b9806d40b6971098cbc99520d0e899060d0111a36bdee4d90a3f84fff0c8d82aefda98fc74fb549cdc637abd88a1b38233ddfa8da01b9ebc2233bd7154ad0d9330d3e506ba3d5b41836d1c56c83a790c2cbcfc96c45ccace49dcefb96100bedb5cb8e99e531a44a6ca66ae6e91a8f33387fd5118affa854a5b7215211eefb9daff0bdbd665bc958af34cd08ce0e66aed01af7686ea2e85f38783a976014eb3ba430ff0d565d7b21ec118ad48de4ec0056735091276f51273317b82d48f24a6d1ef38e03d09a055781f8521369bbb9b7879d7c55b297de61108c0e0598f470776a14de1cbcbae1d4656e42c74e1a231eddbd9491b6f37df3294b0801cfcde60c97f3e8e9a4c2f8854db42d0dd64cdb0dc97e7850b11e5f2e6b65acc35fc60c48905a4c0b8d3c83bf4d5d0e8a5b4f3c8b30c3cb5583c3d68182e43a126e81bfda808a3d23d6f99d2e0c6e2ef36255929d03b1d0f9821fffded8b92642b4facd218164ee695050b9f6ef496002e68e181c94d5537488875fc62330912e2ea7228ce02a6ee5b271bfafc74acace1e13070d7f145b308f179c6fa9d4a70b03bb28de8b89f3950a1e562be3e4738c0507ced00394422e76d7011d601963cf74da6215741b4d1d7276ece51b15e61b4571c458ec4b2e801bd6c629ebc0546dca29fc4215f0f04ce907aa9769e0236e2a485dab6283573e05166a7d3827cd90d15173b71403b478852a10841d0ff1c0996c4d4e2eff8472cd95c81f419d315c944cb29a4de1bc7f68eed9ac7b907f82fee40808d0b8cdd2d8e462efcb27ac07a0dc258c3eb05f61fc18af16e11ad5bd56f9c3693970f051d1947ac86d72681c3e293d93beb2eaf15797a9884b4a4130d6a15f3e2c4933744296354cec5a24b3346022043da0f1fb7bdc83e12e610aca9dd567431f8fd428668e346db58dd5f54fe545bb1058d564051d36cded37775b414b3dd2761a178d103da4257c128742ca4b07315021d6ecbf9df5b09b3c291fddc23fbb3792aa00ece4937ce6b917e8d4b524e2610521c0fb28e8dcb3586c20cf478e82e81c0ef011cd09b04b539e4398c91c571596f77a95903dc0914aceada556c28f763b1d5e7b2cd2d0444fddef9c007ed1ee40c415e41ab91c35fb7b58281d74f7762659692646d4abee43ebb320535956e213cd7dcc27af5dfe0710c06d4bf41003b7d533efd6aa8827fda5b343594eb95468f2c99a7ea2e6f65d8929e6953752d593478b14538b33d6ab658e0f733460161f80fb1daa5bc5672bd61e87443f5964759af2d015c6d4530dfbb9d5de295e813ccab9b38fa361f3d51974d58e888b6bed8621a7273adf092222b78822a59fe9e17e524fb36ce06a48c78c420cd0658502a6d5870463fa628a4c700790e0453ac3e67657f05e32e99c6c07358a1d4337a1447911fe3a083d5d80ac637216fa901fb837e113373953064256ab680463b6eea135d1a1488470f22c88c647b9be120a61779dbecfeb5aea39e41fe0b315df00f972ba0a012ec4e49148132e0668a45942bcda07e5942cf52b3a1fb2aa1b6f67050c79b06fcdb0b1b7d68094d47b03394ec9d7f9bd195fbb423cc69277a0f17f3024052cbbadcbdc7aa90e4561cb622cfb0b2a79a1ddafbb3dbac82f2bab1d6f46b2776dabc28513fda4d064f7671af36b5e352573a654eeca53e7fbf2fa023a409472492bf42030c1df52981a20fcbd9aea04a344a770e4ec482489bc1a70fbacec10a4bfa510aca3dd2874ee9085adeb6cbc248af3ca84a8193c4075dcf4be22967b1497b4f88107eb4ea741b25cf1af91a98a67b9a0000c738f3cb642583eb376e540ab1d8431e1f83d3bd188a7296b9323e6b6d8a6cefe6cb21514837e631aafdb46aa0441a8c4127c14a91e4e4e50ce968f2b323793742139ce5289f5ff4738a738017345f0fe419e364734dabeea279e53e0588efde4384459de1dcd4ddcb1a75bcd9fbca07a43d2e18a62d60d6266ff0b8ff81037f26389f8b903655840eaacb4dc9ef25bdd52690154d2aa6d2b575f3325c21dedcec552e8bdd5a50720752dc940e1975045e4cfa5f2797b605246849aa9cf2e434b64fc80d6a75219976b6c14974a48fa8f6572697ed5a992258828091508753cc42418782a4366bb58dbdb7b61984e686b59106456c39eade585cdb3fe94aa9c6b18a007f964b444e2164b2d055d5bf230e932e61333d10766b1a2392fa73baca5dc8a0b3e492c0f85b197eb5c028360cbacd5c36bcb9e10b0d6ea716fb7afcbfa4c8e03f1b0d6e02d56e95381b9bc103aed30b3998035b168784241f1a6d90e4c7c1ca04dd3b6f784d0c42ac629bc42024d8584e1a26eab9b67cf4d57c44c3fdc80a64df071b2b3300db57a328572a6d9718c2efe318af698c611486278debebad58df8978b65c078b2fa36a6fb3e3c493849ff4a5667e7ce6060da66c36c5c86469b24a85f1af9f473f392d25283bdcdfc7b76dc6baa2f097d077950293794fca0e26bdfd7a4439d030e9936b6d66eb8639f32a62277441d1216e869bf59b6d0036a528c8a6bc2a8ceb3f33a05202a9d3788bbb8d2615b5d9cb664e5fe8ab98ea1a9a26b974b34dac19b48b173509407b17b41097c44cce63486e0a9b046251bf78ce43fd96ca663189afa5120514ae2a0e760c4edac73998c5e77fd733da03aad49ede65431433511bc23ecb09b89c52bf64adea1610ce64106c6bf65104e0e0e554d282f7ef4d694b21306e57e180aa3d1e0cc728c3ce9c6cd6e3d10445ecc645c37601ce5ded6ac3730ed8f3247e901a7a465d941c66c2b93daf2d3ff51da6c43d42c024a940d5ca037a0a7b2f0b0b4a2cda4af9adc10f02c91c4fcc9e8902d46b961c73a7ca4d722499e3aca066e6be9aa2af7a0156004",
|
|
"output_hex": "bd366e3600000000d91bb30400000000708a3d3400000000c62d8a17000000007af1983400000000ac9a2317000000006231631900000000c2595a2f0000000086463c360000000059800b00000000003286ec0e00000000bfc06f0b00000000c5589a2a000000007c60500700000000b210970400000000ca4cb42e0000000014a32b35000000005dad35060000000066b2383a000000008de6c61a00000000cce02b2400000000242dcd1f000000005ce94d330000000041fdbf3000000000428e4f1a000000001f5ac730000000000fd0d42f000000001134ff1a00000000145b5e2600000000711a852e00000000bc12dd2c00000000cc244e0100000000ee209002000000009dd8003800000000c54b711700000000e5546a01000000000218482c000000009464f8200000000067c0120900000000b95dd1230000000012108235000000005a36912a00000000ea0d6d3400000000622e9b0900000000aef95d1300000000c4ace0330000000018353432000000006123c1130000000092503f050000000055b4982d0000000034c45d2900000000438c1117000000001a43c9100000000085ece3340000000084a5ab3400000000f68a482e00000000f3a2583700000000e451522600000000c7b7380600000000f761cf39000000008f59872700000000e26c650900000000ce98bb190000000019b3ed2600000000",
|
|
"output_sha256": "b57539e276e5bd5d95056eb9227ea39c0f644fb5b1b96d018fba072f763aa713"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=NTT998/i=3",
|
|
"input_hex": "52bcbdce761e9c2c8ecfdef43d9d17477a777bbea4cec443be9c6199b6157de2f93ef3f98c3a5fd53628a05e5b6ee489152f91c221fbfd642322766d3487f3e5d82e298391934284940783b36d51f09f6a6124a40a04a3d8e90fe042bbd8a51cd31277e6851d1b25ccd69dafc0556d6383897f73b506f5647ba380b2ab4c3e46a6d0f860a87adcc910f09a8a98a779eb959434ea4357b76dae97900993ea0aaf5840fdb152655cb30be6e66fb378995858f2d615f8867c6f206861dfb2320671308f680d2745f29b168fa7dfec00d22d222a830b5d207663fef9f0bb2c6cb23e91e6c3ac12089b3882414a6e2d76a27f87cdf53883ba5b9683e7a912c65d70c0a48869f442f3dd123cad154cee76d39bb87945b41ee637c592e10907cc6d19db373c31afc7d3d2f4a37d13706e6e6dae89d92fe890e907f21227f2491d0bbb75236f77efe83cb1cd309a09cdd1a3c6fe8ea49a88baab306075541731dc4e0bcab64b99659c80afdffe56e0927d9ecc841f1adc43d05d928e9930bad1511e456f9c619a34478e36e737b75c3f46df1a0dcf1d219cb6d114a638698efd1373d30cdbe3ad76ed65ffd34dcfd125b06c9f076a0d2633ecf6700443279beb33fe90c5eef3299f09cf0b0e9cf08b4b3b869e43bfb40555dbd762aae96fc17c66a88de120543a42a56ec339e14d9ba24b431ef706c6864f18bd86c1c0956ff27b6e9a74d5bda0c450777a427b3780d1011bfba37c2a4cc1d6713b56de79496df79fcf1f58da02d5b7139a5f6a260ca2378674cc0ad8edd4834f0cc263ce35fe3c1301756c229658d88c9071dfa8c0fa9848220107ab01dbcecb68f787d4888850527002dd98a2627563e9238cf00967bd8a22bdf935d97e161a1f3fb3a9cfe1677ce9648810452a285e4989b4e1c0f63a2407e74975891fe117d37bea5b4dee72e3e84f23808ed8895565b315df13a0c8c7ae9315166b6df85f6b559bdd0dfe2f459ad2c6942ebe909bc814855265c7b04e7f7f44b1a7bdc69a39a872ff4faa6dd7914723b1f6edb77483f0094654727c6aba130d62d3819bc92bfa5c55498d9129a6e0c4c3d797224b7c5441fb00415f7443c42a94c2ae6c2a3762ff1c1b19b5c840319b79cea662f5d0db1dd7037c07f16af15f27b9b58aa7fd66b9050c8a72e3d4e57ee9d5b2194610c3c26cc632897399415b123230ed817a258561c9f2cf650675966d945232b853e94b65b9774e00d686c7bd478d6965ab8ecb4b1bfbdaae752540cc34a51dd989c139ad59559e525465cf6ac0c48b75a66f0767b07759bc2eceeacf8bbb6bcf1c97c150add1c4b2a680beb0a977e4d145f957238260d90b3988fcaa02c5d9fd5f2ca278bd18c39b49c65d9d96e7931f0f0aab96375814e95a34262497e1e11036f8432ddef05ac7420b7fa948ea731f1083453da054909a1e9cf53267484b983f5bf9d00fdc51a717a4dc6d710a207b6c69d728ff59ff9296008bd10f3c63ab02d2ac78f515b202e3dd153253aa2455150dc4623fc964265cc23fd2421882fc339f595c246bbf91c6eed97b405f534fc2db323c93515400f93a46fd782144f67f3e491e80c7ec0e25e5da1fda601c9104c06da9fca9ea8b2cc0bd6da91abd1dfcab85fd30681ace965dbdac284671b65f8cc798ac8bfc639882b6a7f80e97c85aaf000c80fd0628e0d35ebf434ae965603d8f9177a686ce87661b267a487c5482ff3d4f2d667b1a1302da10c209b079828a273ccc19a8efa5161663af41ffea16db01876f79b6148937ae0ef1a47cd9246772cef672eede02e121791b38679d24d4152b178d345e74e8e55afc781cf7875f4125591193c108c9a28bd4f756f13d33a9fba14f9cc606f24c342da512b19714235b5313cf4095786957923c17a2a13c9910845ac46309418fe9a8eddd788d88b4682db8259f98ab024b98454ad748c9db7d50f2e66f8fa76b839fffe73eeafd6c5b81d0b34daa6cf128dbb8ee06cc1c5265237d1cb993ecded173aafd603de9ca15f48d32999be23cb91568978412141009185e60cfbc382b1d39e070882286901f0d291970b72940f760ced57342652ede5d9244ca6903787df6176533233b26fe951b106a27f746cf800969928883b221b1d5ea83ed90e45597c6864c0423bff9bedca40b09ae5780316f470417431ff5aff4c218dc2703189f9f75aff5b5c03aa1a2928f415903c8083ffd666ede971c5fd85eb2279030ae00cc3807fa4447f2c387a2beaca5e5c4692c10009c563320835b58c1c75e27af92b8b8bd9a9d07bcc61b537f0148b68887939f75ecb2ee8b49b7523b45a3dc0f0676131b4e528be0a89754e547ca7fd857979882feb6bd05e9a4901ac54195fd098c6f7b77b4c235476165d99ebdb5232491a7a61d28270b788b6676757f91f27300fbe64ec0f020080cadb7ea291332205bfbb002ef10f4c5086e29f58db7204a76dcd46b038ab99783c2c70cb9adc451b653576e846038b463ea9fe33984783121455bb8f61dbbe14c68d239dfd8d09e1dc811460347ddaad8ab0508e69366a52e68ccb2cdbf59d2045936afc619a69e71cea1be7497e14509ebb706353024117ea63f6346624efc46d41f6db9a921bae2d5fb048a8a31fb63b71f679fa3f6c7278cb7766b21350ba3357fda46a300e0ff6cd9ac262a1be0a88c613a8fa206cb046559a09b59eb9112ebdeedeb1a42b07bd59571b7972bd50c69cb4e6fb21c832750f0f57ce5dae553f609f96933e4450c259ce1dbdb747619ee7c644774215a326875641ccf75397541d792b974b4e913acfd4f09ef91f2fe2e0edf09d879d76304d48824f054e9245d57f4221ca6d7dd50629ca6fbd411b446f72ec15ff8564f26e7f5f4b1f91025f5f511c55e5f2dd292e4f8e42f51c424de439d261bbbd879cc4c96405bcf90ef2ad13ec958fdce5e71d6bb7ea60ad21dbd286537a271933a8bc08a49444f892081aecd9c6bb5ce58fef0976b2dc442e4d340bfefdcd4617c3c4743b5c1cb3ec7e68b3f5567bfcdff689af523d2d36baa1b3e403b6a68c0d1c3480f70e7d589645b84f54ce123b006247c5200f7cd45fa29a6f0f4e2dfc528f850070e741897cf2bf80eb8c07b399f64d7126ffbe9e0922fa6675b15231966fede56ef2413f7cf5908b994fc012f2e7629192ea5cb6d769a77c5e8e0a896954e18a799443aecdf9feb2d71553b3366da09f2afa0d37e348a34bb020628cf1c5ddc9155f0cd6ba29511e4a5f59436b62772287f0dea279f1217741554b9f712c6a09f7384544f69ceae966d73a6e109d979ac7d352d134ffb8fbdfd184b3c351e746067828979025999c315dce33d935c0ec7c13374b4d2ca06f734622db1b0d7aad40784ae89a708675219bde533defb233733ad5052594835f9db0d90650a35ff3337fa58b93e6a4f3bedac7f69c906bdd49469bb1e482c9112055791d81041e3f2dcda55396c133eac8be49ade1cd1fc4597e8cd2a0a9c4ed491712b17c2f7fe3d018909f951e18bfc77e9cc67200440168b8a62c2d3c52ff4c14ab1f95dc0b0d7df7b901da3d83e7dff71551e7dddf5dcd8a9e70d56dffb4a596f633685a17cf60d62223600ece46e49f5bf8d984b02715a9d82181261c5c16bf69475831ad93e253cb814d66ece94c3fe17d42b9af97687df1b4981369d9e8f7bf5fcc29073039cc840069a23e19d043435c11c572a77b72b9352d844ad8a551551a1a37a837db3c3c836eff7c31719e52f7bd16f3a3865f7678e86191c258c426c8f0c063a7b9631ddda46555b6697c5e1c9a6acbae8c9510d04b5fc20e243a0d23b46339ec9e361e489a44f1bb8462f457e1781b9012ba847b04a3940a6069fa1ed2e44698f38446f04f9497d223e752408d4e92f2c8c8682a5a2acfc202676891efbfeefd2f9daa9cf6721819f72a41e97a7b7624a50eae9b9f0b55b15f7f8c4771461b81da589d9f3b8cb233f068e1b9b1f946f789b3fa927ac6c4036c70bfa29e6a1ddd576216b99cfa219c78864a7dc28045cd858a5e0c40c6156b536f9c9a523e17e322164bb1358d7409852996b7cccec970641dfbfc80aa671422859bafc92518e7bcf2f46dd69fc6294115a432c8aba5f7255941c0ce5dee73daf7e6a3068f845f1c8b57c240a684707d007937420d9cba8cd1dee95384b68d0211fe7845dddd3376434c377e6816e512b9b46e89426d26c56fde621e86e45b1abcdec98cd6e47e8db32f6d77d0edd3d26b3b05e353bc0fe8dffa398d0580b586a8bc67905a35d8c545c71f828853a6d2bb538a01ea358f059f70a83537557871185648fedba93da6c6671e435ae458bdbe7c1bf58137deb2d5c30f1a5526f520ce8efcc6edb6161a178980ca7c15d18d01c5dd7d17b69200bbc1866c7e70dbee8dfd7af72ef369a917df23292e061725ad633940200fa562b26e8841694331769b28d1f53d65fb6696e60feb7b324b5c88105e4375dd26649076f23c053b73763da83c370bcbe2f92624e03f526d155d7f497c7fad7ca9d016c9667bb649b0b34083e804f7d1e592ce78acb9f1bd6cad9e13f49dfbdca8da6907f2694af375a2415553139e4535fa5908d556cd02c138575dae48480d32f978d30e233090a8e67234ed903d22597099ba96c6862d775b1d0e90f96f43e9b01409b66ef74368b99450f781b2f3ea58abd8dcf8f03d8c6bb1a7adc5bd61420f16e3f9cea6f2336b175c8a1fdc4f8d0231d94a81d4538b52c86ce35f4c34ca0b53e06bb222343359037ab809d4e8e37fe3038c0c399a78e9681e17728c512c36a416f5ef75828a58e3ee75a5e18d2a51e72fa98dfa794068bff1e64edb6a3eff147352ad05b9fb633e6396def23bb490bcd060be90f618c7e10076e30deea0d95b424c3026d5f9376bca9b90f71661b66c7b00eaf6390f8661ace85f4244e84a31b9b6ef4ec7dd9916d4584c8adb0a44731b0d5e8d49f80d6042b8004b8f131f1e369c26c8865c00347397d60041d080fadc54bd3beb65cce5c526970d1776cd4093877601b6bbf8a6ae8fd6e19512736ec35bef0bcd544049457d9b148fbe6f89cd9cbb7effaf66c582f2a1610013da8ea0f6405cb4d24020833dff7d55f4144e2e20ff47865c1c399f776391589bc0942c691879a06e2fc12f804ce031edbc9514c19e72825bffc34e77dacf23752d438a32a6c9438146f828ee9fe4c35c009bee2de5cdbb8d80c39e6b826bcf3679edfa2fadc66ab352a6b59023788656f9ccb83f6d7a3764ae4da3d1a8ea72ce3b685c9e411ca97f3bf05070b668cd97a5420b699f1ea28d5bd03825216518dff860ad3b5ccbcb435438d4d5e2db23895c6f86922557c5a3d01f911e1d25656ad9a5fd85df862a4ec82bfe5c31c25c92e56f67a70172d80fc5dc05bd118820abf399178d84cc48317d526257cb8da75f61002e5e3377438cf48c79544bc482f79c05a7f25fc1539734623bb13794629ec59e834396320d829b2baf6a870d12c34709e056ee890ca8f4739f520ff83e9f8871d906f397b31b032c6cc747ae13dc4923c53c5fb7ac0fba1a9a22d306dd7eed6eb4c181f676290ab4d306a32cf15683fccd5a7cc515d1c63c545e5aab41813c8f0b67e00091477a99572fd0a1f02832d3aa9de20e5186afd913e234eef502f044ff7385355d20406abc3cd89896705db1652e52fa43ab393c9c7a97730c7fc25e44a3be712a7b6f5975c0a635d4bff9b307567e3ed5188b32ed42d434691a69dfe51e44edb08141e35e485f8158bb2488c0fc41bf3f03dd2",
|
|
"output_hex": "52bcbd0e000000008ecfde3400000000be9c611900000000f93ef339000000003628a01e00000000152f9102000000002322762d00000000d82e29030000000094078333000000006a61242400000000e90fe00200000000d312772600000000ccd69d2f0000000083897f33000000007ba3803200000000a6d0f8200000000010f09a0a000000009594342a00000000ae979009000000005840fd31000000000be6e62f0000000058f2d615000000002068611f00000000308f680d00000000168fa71f00000000222a830b0000000091e6c32c0000000082414a2e0000000087cdf5380000000083e7a91200000000a4886934000000003cad150c00000000b87945340000000092e1090700000000373c312f00000000a37d13300000000089d92f28000000001227f20900000000236f772f00000000309a090d000000008ea49a08000000007554173100000000b64b992500000000fe56e012000000001f1adc03000000009930ba11000000009c619a3400000000cf1d211c00000000dbe3ad36000000004dcfd125000000006a0d26330000000043279b2b00000000eef3291f000000009cf08b0b00000000bfb405150000000020543a0200000000e14d9b220000000006c6860f00000000c0956f3200000000d5bda004000000007b378011000000007c2a4c0100000000de79492d0000000058da021500000000",
|
|
"output_sha256": "c8ed5865743a8d370f7776fb999198dae7417d08cd43451719211007e6802271"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=NTT998/i=4",
|
|
"input_hex": "ad9bb125330ecf2bb2a1b138afb1ba982de0a692d72fbec6506ee0bfb7e2dcdfd9c1a3f3a4f71ac28feb618f287706cafafa24dcc95f587dd2e96b1f375c9a67090c241ab60800966079bc349eb10fd644eb6f7d16d9a00db744dd81a37d7c429ae62d5a8a619b737a2a9fbf906939108d38f5ee024923602631122dbaec92f0d9434d2dd46301f2177a919cf0c190b2900306f5c3d65be08f0fc0ba4bc5504de3096359bf83f48f563bc97dbe2cefdf8b5071fb3b7dc18bb3a2a001f7a0a58721e744b907a5bd24815e77d71a1845b91685846f8f1010659681df975bcc134c7ccbf9f643a0991b4071518920225612b406e9c3083523db6cdeb88a9a893286e348390a46ef2a843b0636510ce0c6a873615334b243749ae823d29f49d4cfa47a9bd3fc73c28d150e0e2882e0953b92544843a249d7baef371f7397c33d271fd68d66d2333f02c2d2bb06cda46b53becb804650cb32b22c8123144532dec75a5c0175ecaaf68eb947c11031bcc08f369c97ea020b6db3bd9070b06d7128e2eb924dd1f89003d7d630b8c626163cd552de64671a2654db6f4f395a59338a48c481e7626e7d2166ed61030e7cc39b356b01d9105a4f7993fcd4b7fb7587821a9ac0760a1c1d867ed73844543efbdcc2dbe4a7df2854c09727019e34a758d1afe9f8029f199d259b7c44e05b4e8b017c3da2a7f2a3d4b7e3c433d4f199a42f3ba7330c9c3ac5b2d3f70198e8c798332eabdaf8b161cb3e0a0e4ff91710683dd5697978294af279725349c5db6115eabfbc97380e8fc57d3f6a1175cc43a704abb08762cba2d4852f528527765980b558a9dc6c5b30a1b6faa10f6fd91f91b0aa11cb13af8ab47550d7380879828fbce8c3ed4607a0d9b7c23eea8ace391ffdf91a069d0fbbb3836b5ea2dc5d0caa2888e2912007669244c531e5c1c8dc652315973b45ce9634ed80a3bef8e49bfebc811e8fe5b1551dfcf65a0d59f81287e05d160323ef78e9f24c7ccb78bbfc430dd2389be74b3dd5552ee37340c9863ade18da1783ac38b79e170cf57222080f148ddad3642afd53530148726c2f18352452f61424df5c6abf8560b77fd522b485d94d9002b9336234cedf25b2609dc1e18f90d1722f96f847bae6afcad1ed27d25fa1a9addce2d973bb6aaf66c1f1c7c772d5b8bac12db1843c90573943bf90756731fcc8600a8f2144343ab2d2690c546ca8b27633062a10df0d9913cf5c2d8ebf6f609556fed21382e756f86b5fcdc973985779369d5aa6d54a26b7a7c39d571bd44cbf1cae521f177c5ba07b1eef11ea46e8cf6dcf4932c364d2938944324bd919b7c550b62d291043d0c061ff96655070a856f1b93304629b4076aeb9fd20d7af7faaceb88e57933daa3ff2b364528f2754b3166d6b386d9741736420d6523d441f0c5c22170f7f85cae26c9416d4063fee4713691ce413d5e2da60e5db6696bfa8c5ee6bf3dc4d73c4a48bb0297265aee86a2c68ed377e87d0ec1386de7ddac4b7bf92755fdb23a0eecfff8d71aa9dc4461ace37f0041cdd48e32bfa979e11da5d9b5cb18b70749066020b06a1f675a048c916daf710f9d033078b6a0da792018d589b5d86f9ded4ba8828e3ec6ef3928e6b15e08a0bce315cf9cc732a5ae6adea52a4b90df677422c0afc51b8bb8e5d078dccb196632cad9b187b0ab6b7f66be896cdf165a890a33652f39f1e9735b35754ac0385315e93748b388ec5b3da9ca9e3f3ec02091f577ac2c389117104882da485a8005dcd022892a736c0b5dcd99669dd533819c40bbbcc14a69376652634125107a8b07deba64b41423eec0e53e5526f3442ab317f754f18a6f22d0bc02b9baea9151203259e8977269e3d3ea15aaf1d39c9c1a72c009489f9d1a18ae5cdf575394d43cceef1a9be37275ecb927e1fb0300b8e8dc71935c9a8fa70fb0a1ae7fc772c88cd59b991fdb64c34b102572913057bd267ab6a55ad1a42a3f8a81967a44b9770ebfcf21c693e35e101f2cd37f96d5381fcb6c6408cf4347a4c1d69564484d6b3cf038d1706384f9523f1003247155d6a6531315135168a10e72d67357e21afc146c2f41aadf7da5eb308aeba7d6b8348bb8785237a4633d3cb199228375df9b421aa54188d06b59aab1b65fc986d8aa862cdc50befebfd766d25ad9b875adb3653a9b7b84254b32f24849d0171716a95086daa99d47326cbe66c22a15cec0af85d23bd5a799e600b50f1f7bbe2c1c837e416a96c27de32014ab3a0dc919ad4c6bf7fd5933be0845cfb28df4494a95304ee563b3f8ce20fbcf8c4fff55195130bfce172f4048805418acef570cd441d4c6d6528d1ef7e12b69ea4a3ca747c89b3f4b6b968f61ec27a844d4113a53cac0768bbd4a23119181fc5f7abc91c0dc2a494f7a22e7ebb678f5ea4fa8f4c99d3a7f65ce19d3cbe295c509e62195bbd0aff67331be4b7e15a1d1cd89c3e0ae6b266dca5dc361bec2e77fc368db1ad2e81593f11297db15279780d17c0cd232366e6044c65f39bc3b46081bb67b0ff3d61d73137e0fb469fc577e00dc7eb1122a22575940e757670541e455bc742bb48a36a82b68aa23b0fffa37298e0d8bc12d9c59c65aea8fc3b64f89d7d3556b40d417419a2a212369e5aefbf62a1b4def62a4580f9c45b1a7ae779ace90af0cc7fb1ac72c630be2df06b45490bb13a8c90d4a9a6af7b4e229f0bcbe15e13967d6e2094ce8e224354653a406a745921c9d3b67fd1100f68a3fe76eaee5ca14bc260384664e4631d9c8ecbdc6128df8069fb2e1df5fe3fc842c619efc7a546f2809e4d90e7afc28193cd6901aa6f1fbd7359208808d409d83df5a90cc141a7a44eef595a922114b00e60f9e0c66e40016f99d66fb985241a0dd05deb68f72f49bef3262c04889ad7311a0f2fd906cdd232d28bc747245db7bc115e095019cb888a44f63cc57aa3e152d992f7d4ad9fba5a13fda1ab7a262cfe5d005f666b0f162fc59a3f14e5711003fb5aaf66c167ecbfff37a13cdd67c0abbff70e1fac6e45e43b1d46ec9be82c04512d4dbe7fdba5235b529e3fbe8951778c3d3abbf7c6343b048cd7838c3e7d3ffae152d848a6c0b9e24fb07a502e2d123f7818a95f9e0e366b729d89ef0f498d371427156e825a67e4dfc941f5fefb6c678f72f708650b75684a60caab17df7b3811e2e528073015173e9d6131322e5b70fa3a0869a1101ae163c77341a6968323ef3b348032b5157e852015192132359a12cf73576b8223b246cbe418047ccca37420a8ba44e4a5f667d21f62190e6c26bcd7349033da42c61fb044b7c1c732eceb3936424260c8a6137f46d63cff69f0cb547e1cac0a436b92d9d0485023fbf479bc1b7fd526710164d39fe071d7caeb55d221c0603c2fa3ed6e2bc215600a97058ecf045757788e7135e09b2151f2b10662105c4b63249cb8776545a46671c6fe2b3619c038efc59bc99aa90e8ae623c6981200a0c48a69b23b2d30b660197df7c4ea05a567caedb9d964a1f15168249a6e8461b1c6589fa6c89cd0fa29886f35455ec0e152b373d67a02a649c82a4e05e1d9d232b86539e37f471587b44e23bbf0a9eb3dd4ebfca7a3c2d6b78e6c5af726c32c85316f08ced86f9edde152e135fbff2e32e7ddec6f96a041db27df366783983fb297f32040e386ca4f4f5cfeb2d0563fef25e81cb9c4fbbff42756c9659f09a79f1af16cafc5cd1b618b82dbca861ca11708842334fe98d02b0c86e99503845089fb9c7cf91b0f3cc85553a9149f7f4d1fa9e61b04111f0bee2e19da01b478dfc6e7f49357b53a6ebb4ab3445c8d1f8442be364f81964f3da7a67f46f946eac08d471947214c02a55a0e2ffbb6a8508ef3e4c3594d1edb09578c842d8cb303e13a800880d4457a207c1bf681a4bbd2811c67919cf6be9faeed371edb643d3425495cb2bb5fefdaa8f44f1a9d6b7f70835addca6830aaded1d882ac2b3d3f6192c30dfa67d22fd6416c7fd8765d0526d2be2f467941ec8d237739d186d358423443c2d3013e94dc7f961207305243122783e4142b426a0eace7b1917c855e3a72bf991aca847ec952ae6b86969006c466c547a01b86bd2861b2f0f9720e2503a85bf67c2f51603d1adf7044e6052249b71517f0bce73d24279ea19fdf83cc41689f9298a8fa04030b846d28eb718f5d383428dbc688675bf3d72e59cea08a48873121c1678407e6ff75b00a3c82113e94ffbeffd5471570e4a68086169768128d00e42bae6c14e1bc2afee3bda15b2226ed12e08b6a30fbf1b51927ece7174c2a8b40e1edf2be7e7ec50ece94bcd07fcd23b3e7b5f871275976b58b301a90f637f56eedfcf58cf620d135793cdf84256780f17fcc6988e7525dffb7f5c43ca7dc3ec57902e78d0559b3d844300dbfe97e5cd44a9a08cfc8c69d189080650a844664120dd260a61ff4303ee8da9c995fb51193e7c3ed9f48b2b8119565cb7d355b1834b63ad3dc3f9349276990180a4629d38e37803cfe7444128ba6edda9aae09ba1b976a41b7b94f20640b46e1c3054113c48be5120dd3cfdee45731f8363159929db9d3af0c13c17d3c61803379e4a30f222cca0e64a787cc28d13f27cf48a939cc7c8ec5f219b79c7e3b6f347ea18819d2172559689027fe420d761940cebfb2b09e77255fac97ed6bf48208bccbc313ef1595161fddcd5e6c27390e15248d98721378ce1d9f364a8c2d9fef32c5c51d7bcb3211dd2ea69783267c635e563135203f2007f7a8ab18867359dcb31cd90cd41851c92a94ae5443b2e8ddd3cbd14b5410bf534f3dfda863af28e04b04beb68c41ac5ba13dd96874187d8b5bfd4e75b357558a7cbe1da9d6a965de94dbff0bd958f449a972ef0770b6b6c03d8d5f6a360cc039e9acf45350f8ae20e820d55009bc0fde4f66c1e3a3d263fe03ba89de83bcdebb8b7bf0b6b444e8bdad2b94a44ce878b5c23512dfea21f549dbca72225e7b4e9611bb0769a6237932f0c1849704335cf58dba9748663f399e4b0ac3b9d9bbbb1739a09362de26f048220228e8d346bc42897ec5376d15fef259be1fe5bbfed4505c4310a0b678d5c8bcc1ee461b873c5274f5957e23e6447b2396a8ba573ffabc2e4c8dc20015366435621de87846fb808a4d7f0863a611b7517d34f2ccaad1fc6722e6cf2eeec5c7ed81e8cb5398d8d3af507ab3389e5b2188e2e1e005b22bd970366a894d56576f72f905e042f1623012be4064ec86a98b4a55d9a2f592ebf18c8bd597776f04ba292472e36781bfe71b8018b755f9bb6ca23becca3041d61647d1687f763fbd331543f2ed85b300ca689174619506070d8c7953220cc1758ee8f565932f3a46091cf15a3429fa6055725adad54ed9f9ceb69b001a10135ed5bdff16a976c0d11221c689a6368ae3b9651fe821729d4f5461ac3385c66f7d276ba9da81a06a453490a780afdb15c172b33991be68f65fa9cf1689d6566d20ca044d9ad18e7b5f35511d049408c40d72a99cfe3a7add7fd3082718426e3520529d501b94765e3b6d8c0c6f0fab48d23300908c1e2a0dcbeb916ce85bac4d08c0ebd0fb296831fcca136d0f7519f88c4f27a9cb57eccbba10b8693dc00c2d742ff2476b60506f9d9ce8e48c0c385efaf9b76ad0b93233bdde4d83d40f8f4ac8dbf0722ee49b0049b6674b4af94e1bd5b1d65dbaaa55d683e49ad37e361fb0548f7005b32a04c69a84f717f6c296f5f218a2bf43eaee014940a4ba9375b8643e30a2cf7eaa565ed1264bf807cf6167b6b2edc8721cec38f97ca72593",
|
|
"output_hex": "ad9bb12500000000b2a1b138000000002de0a61200000000d9c1a333000000008feb610f00000000fafa241c00000000d2e96b1f00000000090c241a000000006079bc3400000000b744dd01000000009ae62d1a000000008d38f52e000000002631122d00000000d9434d2d00000000177a911c0000000090030635000000008f0fc03a00000000e3096319000000008b50713b00000000b3a2a0010000000021e7443900000000815e7717000000001685842f000000009681df17000000007ccbf936000000004071510900000000b406e903000000006cdeb80a00000000e348390a000000003b063611000000007361533400000000e823d21f000000000e0e2802000000005448432200000000371f731700000000d68d661200000000d2bb060d00000000cb8046100000000081231405000000005c01752c0000000047c11031000000009c97ea02000000009070b02d00000000924dd1380000000030b8c62600000000de64671a000000004f395a190000000081e7622e0000000001d9101a00000000d4b7fb3500000000c0760a1c00000000e4a7df2800000000019e342700000000f8029f190000000044e05b0e00000000a2a7f2230000000033d4f11900000000330c9c3a000000000198e80700000000daf8b121000000004ff91710000000007978290a0000000049c5db210000000097380e0f00000000",
|
|
"output_sha256": "9522faaf76cd01a10b3d49c4ed3d5c2c00eea2b7c11246fa0ecd87d704c93cd4"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=NTT998/i=5",
|
|
"input_hex": "c56ff030adbddf3c1bd56efbd3bd9c4f68cbe9642e18e0140de35ba47e7846c329f5a86c686798723989b84ef33a725fae0fa140e49259f401a9fc5966150c4aa0742ae7b087448b8d64835069a87bc5165f633d26613e8194b7404dd3767914a60f8ef43c47f0366202c8ec89b11e81bf4084086e79c2500d289b4df978bfae7f6d27587bf339dc53bb098bbcd69b771d0a3a214d381e47ce0501d405eb19d8882479adb7d611585a0c47e3a0b0d487995ecff053fd23a47125feda80bb1a0b7972195d22ada8cfd6cf186a6bbea28c0b2fdde9555d8a669585dc198f4c055158c3f91228462be9bd3e6dfdcc88a62ba5492c0f8585fab4fa464147218e1ca59c30d81003ae8d80cd94790df8a60b714fa998b10fadbbbce7eebdaae620df3b9c14392a3584d1f707af227ed92c8822428c0cf04b01194599a29e5c37a93c1991b60a04433aec702e8233b3eae1bd50af4a09127e295b099b0b50e36d4b0d6f9a84e1fef9f877635b3edca2f8803d56d014284910538e25f66bcbe3c8888d167fad9517b1a86d9a6de5a3cc85d4f1016a844bc6be768ac1fd9c601c0b2839e01ca2febea3a47d4e762ed63922a6e0254207b939dc62e61beafc0141b8a31bede80589632e91b71b7f47581667d0f07a536669c005c0c85cceada1659e25ca6257030c6c6bb981028b959f594952918fff1127f1cda489bc530115034355d2680976e38227be62e223ff48fa1e46f5be1525a53946f089b72e318609dfbd3ff54eb5ff0ef10dee31f106c5d1f332fc3532cc0339ecbe58f5979b9b301e071bb47240197333741f11553bfb0c81f2422c30c38065656b978ce5a73389b76c495051a15aec9ba4026fba1190331f1e123a47c617eaf13240b23a3c47aca07471f3ea1683f205d62706b04af8f596f327440b846af5836b9ecd02781cd4705765cf4887e06a33acc664f399b3cc1b66e575cec37261d65ceb3b7cff576f2c3571ea68410dcebe4bdd31b4eedc1c4d8b6a0669b4642299ec5494451321191214685cd684f04346be3414d5fbc51491b0b57c4f5dca4797b24de0f5076b4dbb2caab9e07e2a056f820f1571b1ac9d4eccb4a0d71cebab61ac40e4f1751d618d6faa50be82daff9c8a4f78503b3d90edee15c0e5f4e5687c0c95f4c301d85e2757296dc2764f04b6dd86eb1ea4a5d991a52515b65c5fcea0656b6635f07daecd40ac8da26e0de196723353cdb799e8deb24fdefcb0873e368a250e38b9b1db0a7ef37dc5e7f8df019dc5ab1b9374d266436cf232d08b4586a1418a08189fdd29bec5c56bcfe107d53404cfe00aa0a4210510a591f6d9896d9196d085e6ce4099d7da5e66a19a9ffe3caed902a593f13e8e173e1c2d9d9bea1ae62788bdbb9b88ee32f1f45db0fa64034b8da78508c5cc46357aed39ba05057157555986fe34056d0e93bb31f4d1b5e472ce85d94ac1a5cbfbb9c63c384e6467289c51d88a348497567ec44481fec3a358cfeecd4e1f90c46f0321b5ddbffeb4dcc45d669c59a840d6a4c469ed852ccbb7073975de97b5c31b24af126ba0cdc7289a27ef18ad0bebe091ac1e6ce22408b6fe15541f3e4f436f78a485c666befd7f4cd1677854f95eff1a2013dc70a7964d5ef63fb47d813b32dc80129c8191a0fcef06b3e74e88447795f746039639114fa7c3d3229361bbb13effb1da5d8d1b75761aa69d71ed3c9d26ba72a92b1e4f5d771498275875183e4fb6dc4c2f3c661bb411df745b711bb0aec2b705d9fc85e54394ad4e3fe78f5568bfea57ea5b8b0097ab8574ba2aed2ba1fb54068c90af45c15575027aa85450611be1f86d1770cff93342cbcff643e2d2de3f591853f9e880a5671471c86c27113cf44ec740bbe52eb062f5ea23377c5916943d2397e79ce954ee440e7f6fd162de842dfef4ed56917d63092fc5a81577137c9262d6ddac74e7dec1e6897b3658f7e561f6e58983ff4f8ba43b6cbc132aad69834bd8c5dd2eee9596d549194367e195db6af463f4992d7902026dcc8be5592f57a62700f4a9968866d7757f104d6cdc3db669120bd6ca38dde438784c10ec4819fde06058e5a70cea95e6577e23f0899ee7a2cd9ad0910ba229ff85670ca63c5c4d5ddc1f87e1879354e57a931c28ccc23264e8c33f42aa240359c31092d98e542fd61f09242311234d63b128d70e764a9e9704df3130eaf42c33da1d4cacda90b84862ad5f3d6aa956a29295808823087e1b6fc42dc74b88fa95bedd4e1659dbf9b38e0acaa34881cf752bfc074f221b072dda2bf75e618be0e31fd575ccc66f4a97cb9a58668b6f295e19e82f2b12ca8497a44c2e3fe001e42d82d707e7236b10e7c58ad3e0093c8c6198df617560ab611bef3566b2d858205b554bd0f86787d7d6cd4f66a9bef85df52518d15a51de4c39575288613405f60e3a454e90623d23aec3129a1cd66bb4536f6c20b62a7a0597eaab652c8a13cbaf66fe5dccab4150a032faf80b05219d9f997048c0fc687e0df55b0901752dbfe0d7c766fbd3b145e68f35b3f6490b8e688be693e69fdee04659ce9a66b2f9c8bb88a5042b658d7ddcb1ec88f27129cdf8c83da5171c50135d2bc1fd0ca7ede4050cea6a6ef126d44373fabd3210c54ccfc28a961982fc73e51efdd304045b521ba7a0557d3d01c6f7b41a829df9ca7eda2feb7fb17bc490914104f4710396fb5580b101590f5d8f425c9c6675f92aab0eff3696e83c18c009c41fb5a1aaa46ba994c445a76f3202fa3e0f005f6e923aa24800861ac2ebc31d17fffa8235209fbe2a94fbc27172e43c6c01ffdb8276bf04d012aeaa3e93d22777804e9191ce97d0c12212765932ea5e1560b20845e43a5f7d56e1b1f6fd84876612824d51775c1d8fe07a94e4a14941704bc6d3d424f57f70f30932405846e759b9f6cee6496c274a71537a55122837ef1a322ce3d8d9f7761a665da59399a7a2fe07ae2f95a9dead8adf692257bd5ca34f7ddc140a47f49b51a662148b6618220f9d1b2cf0baa1bb543167a86b6c6686f6eb46e475c8873890b5f5acd04e7ce782547df335119f0acca501cae417ec0fbc8d9e60c19c883238125cf6d1d395ec63dd2fe2d2a2468124a0c16bde58123091c43b6b9d8133ed04815a015c64859a8180c54c0a910619dea668d20fb42cc87ba8438df331f56a4a147a6bcc6c7e7853afa7f6fb1d5097809147828b5ce72ae8912cdbbbc86ff000f6ffadc052db87dbfdc82aed4d08a9888d69870ba93e0fb03b9764321a521a721cbbe8aec3d6c74a1b8b6333b87f7b940f10691b7a41071dec0b7df8b9615a965d2e4b1b6b222628f24a7f4ba440b25ca62a9d407da139f04a9b1df0fe1d6a92bfb33e780c5c6a1ca03fdccdf6a2030927720f2300f38afeabbecd1331d59e5086699971c5315866731394a61a2ea1f8e5800f067191650dc87e7ffd64549257bd4336055033d5792b41eba62563263116c66f2ddccf0de6b2708c9896f568b49a0e92f7afc105f9ae6788b01be29938798357f28d5e8ad503131b4d422b39b32d15e4d88b34aba252d6d150c72cd79a0bfb35468c1d9e2e0fbe9f6635c31670858b9d7bed7056664de30dde1c8d896ed61d945bee92a8bc4e6abc050dbb0c5f0621ecfd940c764774a78a06d68ad186be4a8e99e6caf6115bedb76beba017fd43140db592ebf3297fc2248fd1d2c5419372d841ecc0ff077bf85e9f4d6f62b2f19d2c642322227493fae5cf4551980c6f4f35ed5b96a6d2613c37205b370145105be85c264ec25791eb4a870e727c77f96e9494a81d63fc35331d3461b4fb924b7ca53efa5750bf2a90acd21a61391d079735dbde0bd30b6618cc8a058850e203f1f308b7c3b67c83cc861abb0bdceb73341afa98850b3a7b1a6cffe13b6eb6d5a51b6f710444adc53bb8944679f1b6bfcdaaff9edd8e30282dc26489e341fab3ccfc07c9ee20aeca7d5140371f1057b47c5662017a29f064757cc2dc1c813e58b73dd8367546e6dc4d6dce6c97a02618b5075c2e1000010f984dc248c4c5b4fd310e4af21eed1f0d1779d40c35b18d77605bb28db1184ce2f2a378ce1ef347c666823d9f8658fc589cad1e823d3a5ff83356e8474f26043160b8e4798aaeb27c0535190691a0e073422ddd35fc75c6c34d8f122d125c227f9b790842191c3c582585bd46da8cf6f288bac76a76962024fc41f960aa0de6fb49068e4fe8c29ed957f9a048bab87eb78e907b75b5482667efc627d514f6630f149406c38403fbe4938a5cade63919fc15edea063d79dadef2614c721b11c1b302a47122c498c67ffd075fc0a2aa30a5f82b3fcb755a79ed55182bf0fafb1d00fd4269deb5b3df226f2f0f3f9075c9d488994fe0114a542dfeaf40839093e776a7535ad6b3d2ec920ab21bcf9f495aca44d1eebed9b874bb09313159b3c191d06c73de130a00ae2b2ac18c88e901dcba586a6893e10db9ae2bb17db29e0da01295a1fb010e79649ca3d538a061923a4f284911dd1489a53e19c226261a04bab43acc1bbeeecf770e2db6cf966f27f28d902fd1bb528ccfbcf0627904e3326b8ff1445ab2585c2c021ffdf980826f62df4b36de1e7d4c449ec6aba7a416253a347b5182d2a064d720183ba9106b598ea6f5c855f577217f048ac53331617700dd0bf916f8344a52656f597383bcb1f164f0238ef4441db7c0e7ad4d904fbbe95993e531100b3d5046c5f334d2fa4bc7b63b0fefec5937d913fbbf26cac1a041ec2f615aff4dbc332a3c112ecd7eaa706fd83055145dd40267042e7bd67d5f53770e19a70ab43736748deaafba2e480cacf28750672cc6c3cbab26943be0daffb2ff70d95928c8a76de48ae50c33a97f3abf105a238e9b9b748b51bd556299b73a6f3cdac548fc01b42dc3321f39fdc48952eb1ccb1243ab4a14ff79bfb91be668a4e72bfdd62abdc181cdd8d1bc96f1180fb22c54965e33c3aadb44efccbd13d465456b90f962c7d17c07f65fc511df429cbe57e9baf9f1058bcf140914e8ca17cbde671ce437c1d38c0241a95079ddd7fbac22a15a13a7694190744ff2825f921a3ad0f6fa2a05d1cb24d081fc59db4d0a6dfb49e702dac5b2ac907dfca25083663e51a67b74b813a816aee8fad9134764746ed4f09d086c65bfa073a311b060527eb5cf0eff70fadc5258a89274d13aff4d3a5a8cff0da5b1d3d1a6110901efb1db66aee62aea800974f4e9088d443a9454f4aec1303c179c06ddbc113698165e442222ac68c46842029573f40730af571c5923cc3cb3109bf52e012c03cb028db17d4a2f4748b2151aff0fefa257ae55490e4ede50ad4f5c4d99c5e7ac29bcb6efce6e2c27e6992b8662eed184fcb47052b257c55dc5e51b8798fcd1433a5e61532da4a9995428dbc6252b5e9f29c2021fb71b1d4d1350cb037532890d243d11a455b2677f17506c74af14a653b3863cbb8e6c543a25166b7cf06b8993c81cecd3e141c0fbaec6c3d1036756369f08af20ba40c895c3cf85de7f120228759295a1e84c56090af7c1163ef6e4eeab747273151ce1714e854d3a5cc388d6c170d8501dbb368ff22f913166700bbe92d43ad95387217067969d82a3b439c4fa93dd601d4d59395a4b87713a8f15d79ef5a3346bb9d903ed956a532406efa5ef493335fce281c135eb040f368e1565080dbc4d0a55ad8ba458440696feac226c9f445aef93f5496bf9cda9c1c52134fc0f43636201f85132979e8a5c1b11e3aa84bca5bb12914222f31dbe888def5c0b6f990a3549679862e2",
|
|
"output_hex": "c56ff030000000001bd56e3b0000000068cbe924000000000de35b240000000029f5a82c000000003989b80e00000000ae0fa1000000000001a9fc1900000000a0742a27000000008d6483100000000094b7400d00000000a60f8e34000000006202c82c00000000bf408408000000000d289b0d000000007f6d27180000000053bb090b000000001d0a3a2100000000ce050114000000008824792d000000005a0c472300000000995ecf30000000007125fe1a000000007972191d00000000d6cf182a000000000b2fdd29000000009585dc190000000058c3f91200000000a5492c0f00000000fa464107000000009c30d81000000000cd94790d000000004fa9983100000000e7eebd2a000000009c14392a00000000428c0c300000000099a29e1c0000000091b60a04000000002e82333300000000af4a0912000000009b0b5023000000005b3edc2200000000d014280900000000f66bcb23000000007fad9517000000006de5a30c000000006a844b0600000000fd9c601c00000000762ed639000000004207b93900000000eafc010100000000e8058923000000007f475816000000005366690000000000ceada1250000000057030c2c000000008b959f1900000000ff1127310000000053011503000000000976e3020000000023ff483a000000001525a539000000002e318609000000004eb5ff0e00000000",
|
|
"output_sha256": "7e75b8859e1f932428a331aab0360b9372f3845ded7fdf4d0496babead689baf"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=NTT998/i=6",
|
|
"input_hex": "6c705e39d8968ad42119cf5e7f52d3ef459af9c42eaf06b63ba161aaf79a90c03a5524a17cd3ec277d16720580aed7543edc68c40743ab50d344a06d03ed28eeb6f89775368664c30b4427202d9ef5c3290275e44b94580da87bc589b2b32f7711e235f346ab56c639d7258f53efdcfbd5a524edbee2ef4955399a58e5c9291163a1fc4fbc625751de83f67b872ddf12f2445854f894686db08a9688dfe2d74be01c635a15191c749f141aff845b020da9038ca0a0149c914749bc948bd0e3a1a3146895a79277d270bf3182b38870cd77444626e7beca596bd21e3927ffd0fdf1ab58fe2ef65de8bbd2ac18980ea7d7f38dd92135323daafc0cb654bbf27cec1312b081c7dac7fbe45beaf9dc3930bbd9450f329d9a4bb263d4b0b97356634c7f746954158055aa26a19a6aa4878581c42c83e8166c8e4e469f0af5acc0cce25ccb4ee704782490cc9ff1622dc2414a3e873c6f79bd839ffd9325aa714bf4a5f9ab81faded7fb4da4df5347236dda866a0f0816c55ac025b7f359fa2d20c29de625fe1936ce73715c76d66c69ed150655ea9ad75f0d38488f5ae148fa48f65a7ca786d02aeace29257ebaa00d3f245c996fa8331daff60499324f6d2c0389682fd616fe9064569373140979c4f651e81002009102aae26dd541c01779bb9201ba44038497b89ff6511f8d02296494d52cd0f27356f143e21f34246dc5d45cd9864dc0369a93a05bdd88381f2873e76a218b4a85cb02bcb7d00a8f38c3437560fd6f9e6a52bbcb36c038553546593b57c0c5dd3ca1fd5564c44a3f3519670e44a38c99dc5dcf29ebc609de7a61ddf3fd28beac1ce6107c7c591ca5a33d94bcca25f23abfd0f5c7aafe4fe955ee064714cbea0d1d797a963622d380a99d7e430192ef6976aaedd46616388ea5f5dcb8cf181e170bf9ad35ac41dce82767214617c42d5fda9ea2ef6fe1db4163dbf7eb9f424261851bf26d65fc44cbec40db7009489dae3e206f0ad4c02ae22af9d19e34308f02006f28dbbbe904d3ec28088f80bb485fbed66745f9c3b74be2d2e5856c3187404015941c03fd83ea25cb842b9b59a0cec28c562a85e0dbc05a5e576db1d7ee5b011bb13dc10927a9cac92b1d576192c4a927f0f0cf50c3ba4323e1cf34ac3359b31809110d049f2ba961e8e5526322171d8a955d9fe64a64c3e99975e5b43cd98a8c744eedcb01ba7253bf5789355a86e2e150d8fdcc8d9c716a03e30c760de8aefe5f09549d3747ac0a754a3f5edee7e4afeb64c5ce298a96b2af5096545bb9d9d8aee2628c22966a2aa8b4c3ab9f1b0055bc60a72f02bae356d71bf965ce4a716e3b2ce551082bcaca6889cf727688a64b18bb420b097e8231f1a48ecf8a782372de4799fd6cdd252fc2b37825e785df696914e725ce3f8c3c349ca9321dc195f2805f8af131a9600191cc4a7dd501d8af77ab43c7c4039bdad85f20ab22edff2d94cf384ccb7a31c917198a72ad49d4c2f4ac50ab326ee0550c4ac68c415c2bd477b8284f472440425f347b6156d66cc959a53ba83c11482d07215921fbabd82fb3bcad165216ff882fff8dc90671319715eb8d05967e55885e596de388bf97ea9ecfd6e9993abeb3f44baaad93cca141a1251eca2f6e88fb55fadb127794056047f226bcd782066937a64cfa8697b2aba68a2ce6768382021db364ae7ebe9340312f72070ea15e1816ba1a34fa663fcf3db6a6dd00d8947cea03bfdfb92e883c1b8024138fa8f33e4b984fb999508bb0de56a65026cf9b6f42a437f96ba52e6dceb6b4c49f0e8257e79f70aea43daa08e4e557d4f8f030f083e310308821aef8256c9af26b0ca048f45458920e4adfa7324e6c2b534a7412f07478493e8ff08df459c0e9c2a4b56dc983d05df38aa2289ae174a15569ec1d4c0fdcef2fc2c7fd6f81058e7bdde1b75d7a67674278a3458045860cec74ae885001a37c159ae6411ddc1c6b7b7a44126161ad736217dba6ae0cd5f0f42279aa2023107ceaa7afd6d4c39179a76bc4d10c9345153c2a8d3cb736021a968667880b6b4c0007d93d646d128e42fd631d0062db479dba150cc2057eb7956ae184d2d9f7d89e88473141d96ab7545ee41916e2df6961b2ba13334550367f784f2f3d2f22aeb5fc37568c3546f31844beaabb0655c37ac65b93232d105d2a2adb6f2e7aa7e95c368906c0d361940d21d4e9b657ab04a798d97b59c6bc435fc880c8c3163a545ff9fec5bad8f20962c57d2d245089d2df9eb9319a803b03a7d78f2a77dd9718aecc4eb96df96020f257d76e1bb1064be493b3fcb2d5e1dce5434d00872531a04edc07b75c730768b84f1561fa5d3fb322239877538c111c339f87916cc3794a68cf760719b3cae06348c5b368c0fe4b0802bfd83d0b1f949256c86c0ebb34108e13acf4059cbd2db6eed39ce2297fee83dee9d403605ad9bce4c434ffd7d7b6c1907dcabec6ced0f5a487e7b7f4e28666496a579820e181008bcb6a1aadc144ad3ab9c6647153f2006bf6dd26725a59810c5afb1dda1a54dd2d2dbc1e0214fcada20ac8f0ec7e31f4103a98e98e62604aa3fb814af64d3af8b8d54a6620ea2b64a5e861c802da6882f2adb405e718f2552ff238e05697d7aebee354149c3d1540b7450deb1156fd14ca301f39367c4ac1ee95a36beaeadb894c3bca325f7cf351d79d1a337f247b8d385b5cb8ce120e2ee423e8e4af1a096f57f866c44597a4e2d69d3e59db6ee554b2188c3a3f1b4fbb814428857fc9732a256a282ba9f2a9f0c53f68bc79d2f4257bb1d5665a3b4dcb14558c2ba8bce41a8041c146e8e201bbdd8703bd54d25aa487cf2ca4ee03050eb7fe60a35b95f9488046b184c7e94e2c38ba09946652be85786ff6a8cee372756b1439fc5360049e60498b2689856b9428a5ead30c281fd355b558cdc7e6ad86c10406693022aaa853885b96223e8572faf2c4a4ab075395285ffa36b7400cc475745aecf2be2bf58d0b24b67278d83a8dd592a5d1bfc183c9a6f03bb22433caba81623c37a8695429a6fceb49e3693dea0f2c77df581f7f725cb61b48d9f2b93f614e0d71d82eafeadb0da02109447f1fbd35fa2fb9757a2c1db7fab7dbd5a049e1d1f514ca5e1fea703cdbf7d152ec55f870ccb392b584ba66feb60fd2528b612982de129196b031bc4bcb6a2ceb1e7ccc2c9dc6b7b8b01dd60ce46572be6d29b37eab79fb88a15ec6559c4c622ce83628c8621ad8ac24dd7f29d08026d9f4c67247016be588e77b7a825f71a1a7aa6b638ee26e99d5a14f3fc42c349600f985b40fd0e89088a45ef8b42e558a8b8c551fd956d55fbb2b355bbd32b1a0c8b7b61045d4873afab61b17a329e49b6f4a4c28b9c6bef535396200bccd2a1f034a7b48be1732cf5b1d64560fea033a6d87641dd87bfd040b609f8c421ea6616fb6ddda05bafa28014b60de7fae05003b59dc81909fac94b588bcef5384fb3cb7428ce460af18438e3716cc3d207ad9081fb3b5e67ecffac715efc545b8e6d5259b9924c499db61ec449f23a356f79ec87940f4016bc545cebe4d79b95e7cd9ac39ef7187f59a3e5e1426993aea0a730cf2003c1164860b2854fbfd25873955674a97cba9bad3d253ee7991887edad06727a8ce908fbdee91baf0626e158f054ca04bae28b0c121657a1287a0fb71b7388a1677712fc18d4eeee0b195288217e1a04a2c515b358f7e4e2bec0bb83c8e366f4b98234b0bbba39ed1c42a61e13feb780aca7936cd8395d9a272677bdb662991fe269519d0d490d192c516c85f6e70d04ad15d37ff4fc5f2c8cc25975715541ce1fb02ac49a65edacd6e7f6280df0c74a11972d12cbe1389adca9c6361bfb194b77a86ab93a9080b7e1a596956c0276d950095e550e96fa821691c2503233ff4265a4d7a7021e30488ea0a5f98ec49ffaf565dd0975c6e1499099f99d8385865b0c25ed85c3ac304a7b817c2c539c3504b09d9a9f27540fc8cafe7f9c202eddceebdf55d05e275e9d00f80236b8b7335c4e1e4cde6de01ff3ea8f45c4349957cbb9d7e20c69b6284137a2d746ece114e3e8879ad392b6169f331afc35c4bc82b9058d8b1ee06b9e3f78439957fdf0a5efccca735fbe76bd311d101aebe22de3e76f2b1899921e4aaaa6b3c7f40ac5f500824a048569dd4f8a5a408364b711b4e7747b334e984c8d0fb28ff757a7db093abd151186816e1fc44f43daa5a27eeeeaaa499b31f3be6f9cecc135a2828e5cfe7e80f67515ef11abac6c99cec1fa18d26077579213ede42e866074dc414d4afc1d928b8721ba5d49db5a520d2e4a1557f18664bc68bdfc163f8637155f56c66ff9317245d347b99bf8a0fc6e520a5172c3c4687b210d4c8b7603c4d176ea12dce9fc7de52b004fe15a920e3fdb4e5dc38e8dea01c7c24587dc74bee96f9c8887fca43f805ee9442ae0fa90c309acd6301f16c55645746a617f77dd30e6258280d176cb1eae6be9e359d70dbf0039d5fb2caf7bade2716fb9d3a4d1c2a9bc9c9ed178dcf38be6457530bd9092bfc842a0dfe64b411a6164cf280cbcd66bc5100c18b762f510ed1edd6b01c61bb38c6b4902c1b632caa417fb48ea8047795c189a8ec6fc7c435baa77a7c9e11792de7deaefd1548ec0b6646da1f4e2dac3db4f8139adc8c2649c72547c897a7047677b4438a9ee0927d2ace54408dc6cddea9b5395b3f73bb6e38ed121a2179d2f2b566b195105ac1a963b2f1cc174bbf194a8e0b21b1d68f690a69802967cbb619a69eb356089a5d227253862d3e781dfad53d8c6a29b8694645411364497098d7141ac56fc88c32c2fc65b272116872994803323fbe8698186bcdc0fbaab7229a51291a4d49ca5be821a7100efffb7514709fc50748f24ee94178daefa2b4142d7d0c6df6d4c620381ab1fefff003768b33d7b5a4dde2408d5233725542a3ce6be0f9cb71fe4b42560b47fef42b5093c0606de6fd6b38e225784c4c92820e98eb8e1d5d9cce0a986d87dca340278468a426a895a99872f9c27fada1d2e99b0d142ff90c26c2afdd17bed8630bc9670de898efe74e37dd502f9f149404ecc39b478dfeb6b7fe77512db2eb8bbe76ec2e9c506dbbc0f0b849461e6adc4f5f328555131f5635cef96f7d562341ed6547190e32d8c715bd06c673099e30731bdd81eb65df54a5fdcc7a147362fcebf08e2dc9dd23ea78ce88aa4d1b952e094a498869b4946a5ad9ac162955d0a335c58822872bf8d54460d2da79a398c5a5603ed5cad664784fffda65fc48d373efe305c038bc09c69b31a7f253e72fd32f4ca06238973bd4655041105fb48d38b4032d7f62de0eaa34db5549e7e93c6eef80f87849bf4c3919fe87c973b452f7e793f501fd2fa27c606bf6be58e05f67beb8f6b55a68aa326e07aed820fedac33d3a21674f09c97ffa11b5c0fbc4db050213e5032fb7e12dbe61f615c3dc2a4889dfd40a77892926d453a6a87665cb7773efda8e5d079140ed6fc9d0ec79e1fe7e3568d791269a9bc93ac1d0b0c33e915ee9041f53b3b9c814ef890746229c7ac8f59668b8ac2e149eda9ee858d215403f8b516d94bec2bbfd6bf773ee8ba98adb4cae96c937807ec142653098402b6929330e7a8c02a2e38c7c03f4b9e65e96f69518d69d6159808d5b8de6f7f93a07fb4cb74dbc4275e97a850c3ec132ea2f1df1b0b7c17272eabda2c9f524d41754224876ccc5900e1dd4cff0b403ede1f11a7826ee2bab77026b210ca1f686c8e00ffef4bb8b3f03471127ccbb8bf33d517ca6294a4f7a",
|
|
"output_hex": "6c705e39000000002119cf1e00000000459af904000000003ba1612a000000003a552421000000007d167205000000003edc680400000000d344a02d00000000b6f89735000000000b442720000000002902752400000000a87bc5090000000011e235330000000039d7250f00000000d5a5242d0000000055399a180000000063a1fc0f00000000f244581400000000b08a960800000000e01c631a00000000a9038c20000000004749bc1400000000a31468150000000070bf31020000000077444626000000006bd21e3900000000bbd2ac1800000000f38dd92100000000fc0cb614000000001312b00100000000e45bea3900000000d9450f320000000063d4b039000000007f7469140000000026a19a2a00000000c42c832800000000469f0a35000000005ccb4e2700000000cc9ff122000000003e873c2f00000000fd93252a00000000f9ab813a00000000a4df5307000000006a0f081600000000b7f3593a00000000e625fe19000000005c76d62c0000000055ea9a17000000008f5ae108000000007ca7861000000000257eba2000000000996fa8330000000099324f2d0000000073140939000000001002001100000000d541c01700000000ba44030400000000511f8d02000000002cd0f233000000001f34242d00000000864dc03600000000dd88381f00000000218b4a0500000000d00a8f3800000000",
|
|
"output_sha256": "6b44937e6b02b6eb5b60b27a71ba0ffc1d50dbac15e121a471ebcd80a7cf5c2e"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=NTT998/i=7",
|
|
"input_hex": "7fb532fbd37006ee05d737181ff098d0f71dbba9b80a0ff65ebbdff7e0586da24283462f4f4b81db60a42b3266a3317aa9534239fdc9163df5f0ec84465dcdfd45eeff63664eaeeea373033a2318b6b662af08047a40470c5537244c71d02a50d39d270c4e9790292d198b17ccfd21f3456ab2915c27bbc182f5639cd0654ce6e1be43253846f9ef41eb2647cc1e17577d81adf43d3cc2519bc54ca42ccaedc4d16a3068e8e2ca7c28efa95a8e5f819643eae778ac0f938a9776ca7f70fe0db46df8665a627cfb70ff593430704de2a205629baafe5e6f477e27c803823fc0ccbb6fc7fd9ebfc459ad94b0e07709a714df7d95e3e54ca4d1815b087ea3f8e967fb0eef3778d588da673d73298ac4ebcabc9e7100f7b145e1c24257f8f324b8856b8175dc36c69bbe285de675cca0f12170bfc9491b8bd1a802f2ee369256a8e519c3a5ac10c9c68796bffebd7357048db30e8457e43402e4ea92dc04fe359440a272c486f63e8a68c5fade24db7256dc0500203f1a3a832f3a12d8d8819390bfee715685bc9de9d87d074eb67975a0198bb0e742001f457e59f9527f5e8d5085969af4e0efa48b5da270fdf76b42a342c4db49a51c42cf173fc277b6c9794d601d1aafe9ce18281fa5a6889503fd92f707499b26d776a19c13712b4840d6f958996297836d9cf44d4fc1203cc04a043b792955e03f0443b236eb0a2c33ec15fd6e9b7724e6447e4058b4a9d5e3309b5c0107ce206354d68ea5a6384fe24e2144c8df5e4bdea0aaf636dedc7a7a6852fdaf7792efcdab07a35f308a6ee19ca3a725197a36f6ccd39b5797cb61856671649701475bc359a733fc4c2f31e980714e6095b33cea8459b51a27498b3aa0b462b75d8cdca9da4874c87bc181a7570bbe47b34b338c25f4ec6e6984dfb02b33c2015c19d8bb7a861818913fa310e049b43f2e4af2f95bc04981f6abcb37e28d7066cb60c752af7ad807d52f14c06a6328bbd3d33e9280f68e82479ad64321fd78ce3c377669f298354e41ab851c96ad0f27aa29da11d7fd1790d27dbc0521a77c43af9cc3b276fe1da9bba554e9104d9884f1728b64070fd0b72e67b8d56d6c9c79f32adc0a4413bd5d3c25479e5dc37c30f0809b6ba8d035075399ced671274e3f8b4f102cfc67c2a0b85e917f135a310c2998d33ad7230eb9793560b6aaff9bd1982b63fefca89c9836c0e704fe5794ab2d326b7a22e6a2d2b1bf0e50fd483240a1c72e8d76990f58fb66c5f8ec5ddcca9cdaa36597e98cb7aa36e6cb2b783d275d1ec51bf7b38055bf0aaf217e656c338f365ed4e955d3c58859075d8fc5db65918040d49a235f577fffb3df7030fd6788d011bbe592d249b0b897ef8f406f84839a3256c8156a83a0a2357d171c3195e855d7b238bc1c56b268b8ac0276f4b9464fb3f320e3099c1cefbf695829b3b717f8ba05512ae4bd8b230e57f66fa497b6692ea527bd461c5e52aae767ee3f3a243c1ad783fd314897e4bc18da4b2803bfe360b5c912a3a3010df8d0b6fc73eb382e253a1bad7aa3dcb212c930a191509bd06e6eda3195b797264a2118193791217c3d3d75d49d0a407c6d4bc0c38c77d8ae3013d747ed53f323e29d970decdc03afce81d8a63802a4e19e8392a04067bef46ca0486d6edd5bb1a598e32af21178de4620cfac4f50aba22fc8d9018e760547baad3a7b6d9169d8d3380b6eda5fa244fc3d3b6f5c2ec181a63a8cf03871e1dd65e3d4f254e9eefef7140f799c4c48d833164ae8734471d75e4e21d10b4be327a9212020ecda9116f9373955db48f3eed329eb709230e7a2ba3222cad53bdd2758c16919d417c5761daf1c70d830732be1c918a280ed1941238eb63c049a41ef3cc3d417e3c1bb7ab566b73304ac901c90cf6490371f480d22e240156cd4c19ec1ba70f5be4762b8e2352359b2a481a12ec33a899d8bb89c24b59e5699ebec54fac7c1bc10db4c0c25d85708f7377be56a9602a1fd2e77b1b369b06a254fa4ad40a40f01e5dd351f29ec6469150f2f1592355e3860554beb9f8341ac4076cfb82e423f0e9fcd6b8918010c4de93fea21f42132dfc4acad7374159d986b084ba324f1a03eb3e967913bf1d147e2037701b0df0fd4368a861e318bd34366c425473ec7176bdf12669394b9c484a86c7bcc8c92e286a82b89feec8736e7a55eb7dd75dd6cda4446414f67aba8c7b3ee1dcdd59b3fc7726535e4dca42284d01821e0ffe8953ae4ddb1a7f966072726f7509b9436fb01f468694feb68f247263571f6393de854357ac5a77c7dca29d89cd6eb0e9fb1a34a8f8f52249b56262467eabe6813bfeee94226ed0dc9118e8d21e4d34271f17781a0888b77c0532fbe91162f44b6052126d7eb60d7c21c2f8f7cbbc991e7700d4a2686e6221799db3eaa3aa8f61471d82f94c5fbe517352ac1969f01449deaa1386eb598211b5a54bb1b1ad7e4392fc89e539167304e3bae8925b51f14ddcf9c992b88cb1270d2aa13602dbc5c3b93051ce15253bb043a40bf4c9fe054d7bc79168c553f4a5f1f92954368fd11fd4dac49458ad7b8da624091e51a88eb4b03faf641edd145d3ec57e40b512dff4ef4e91f8e75c683e5ded0c5607d2b9af171ea9e1642e2a56599fff2cc1b5f44e5c160e4977b288432b88c349e97ad1a4b6bd3f2b854b8349bc3f96d4fb3e05fb950e9aab089758a3bb329fdf6524aff953ac5737389c54524a7ff94c2f8a60f10d16af8eee9f6aca7498d4ca6e348af9edb9cdf8fba2934ed7a1f45bd77389af0aee1365018c7ca1a7f2ba123c700aa494e7956ed64cb0c78befaf8307f2c57d6dc1bb2655b2e2b15ae7ee94d23e00ac3d0147d6b2d97c14ac909fede03d1e34bd8e92210ccba6695e68429247392cf5e6b2c5fec6740a1947cc79c193abef976a1bcbf8678a153f573da8c53fc87a27341a0f996d76541f0ea95c7e8613fbcdc5aa85f6f7203461dbf1df66a1ab1038495ee29363ac232126acff2433d284890fb114e4420791d1fb69053fe37313c2f7027bfd5aa229f59c08258017c3df948cfe740545896c631dc5dadc4aa12e20d04e609a3b5cf1d607837d6124777273e169917cfdfcd81b956b3166163bc160eb047f35f6b4d26229253a879633ee5c4297dedc15ac534e1fe760514d620df4a170550f263f5d2932897379eb242a756ffec8bc07683e731cf6792f376cf7dc8da419c970f833d9966c5cda83db1377386a5ddae3c72d777eeb065a644e37d22c235b88224c62610a8f9bf111d8df4b6aa9144aee3799d48219b555b1d8ac2a283f7cc91ec65cc0744a553da38cb5f989b42af68d9996dbd3aadc4951b183dc2c6c7b571e636358745fdd1cd6bbd16ca55e7c4a792112a93ce4d3f4617e7e9994646f2f0e083d9b3a2e9b6b5521ef8e3164dc3de2ee114c9e00ae1b5b8223d000b6683f0a2fc3db64125f7c4f09f93532b43e4b92742c194fb1951c687ffd27d7d4bf07d69e9d8367e8a04fe4beb64950cb224ecf739ade1a8823b41e68609f1fc0eeb2a356628e13cd1b66ee2a5f98e9a9102b2c157ef3848ddf291017b47a9d4a4bb51c6c6a009258934018d02091c915ed28da80d4efc392d5657a1daab96f14b1092e1a8298214ca0d84d034f41ab677181df01fddfefc52c9d4527133f02aeb204fec6dd1c9e77bb48a32e2def30fb85e1815a05d64839123edc9b93c5c8bea2f509b8151ea891dbd162cf368061ca5a700c0a2b0d788ef120d2f4e618fa4e7bfb851362f71b743ac51d66bed3182be6595f894d32bf95f79bdce101a7a679bad3f844fc6d6c8abba18d31e0fd011a196178c91d3c303722cfb68194f590bf7a5a3226ba776c47cfec7bc17ceef0d78dcfe7f59f0479dcc62dc850a27828b86079978c58baf5d9cf3bc682b06861661c19262f711717033c70cbfc426967a120294ae33ce9d8d4160876a05d13a86db0426add6500e0013afaea02d99c47ce001b1e3db001757af0ff8c01d41668d0861836bd18eb945544164261fea2e210d77ecbbfe5639341d8413c7f64300179466ef3cf1a1b953233cae347209b93841b88b8cac0151913c1b6bb5bb14e2dac9c4db9373178f57c5edffb28dc4025a0b930588ffaed5a52d4c6108c487ac67a73ba57e5f610757ed2c5740fcdbf3076c06413022ccce9ef670e99115a6e29e098d0152e338653be71dc0d680ef5dafa7234932f675bdcf88b28fc3547c58a9105876e5b12a2055e357abad7e045222a81d88f4ee55ce7eaf74e82401063baf426be8745a38cd1acf94fd318d92b4b636832b61e1487879b9835c66433b95e291c88177184942a40ff60ac49ea199fb024c053b8df3847965861cd5899aaf6e50885cb6d0c42ec09f6738a5361b2c7bf75e12e9743e3f1d397d3f23f899ac3202958b03c9cc4d0589fb0017aa0b9dd75a5747afcda456a4164554c86421825c24eb3541284e6080da005213b1cad994bdb82ec4e9fcfe32179d15565a6eccf7839ad5d1eda95a4f45f727ce81bb23e0c21c0d17344d10a868a7d5bea3c35bf4a0cc80ca6a4c579fde4a3623c33a2a5396de9d244114ff6e8bb92964fe99145a1d234c81aa3244cd1197dae3fc6b5f1960ac84304fc9b1fc86e5387c77834a86a32fe988e82138313a9f0a90b52346ee16109fbbafd0bef05da5566d07b3c2fb57578a97938a4749c79211f71fe54b681b40d345716572b330f9f901c2a2448e8cbc2dbbb283260d8246be43a811f700c4add9f7a2b6d4b68383a8cd0990c31e67353557bc9d54a1298a126620142a496ea7b9ea1d5d587e8082bd2cabfb96687ff1c135bd3998d100a6820a681f54fc10addb494475ad60fcd94c4310c5f386e26e18df5297447a0fd296eb32cc5eeaf273bc8c23d9895f72b68bf26bdcb8534e7bc9708ca607da41a2e94109e2adc801697e202d3aca9d896f8bbf1d31ab5bfa664196834cdc43af4faa172e8a2d251e87f7c0ee3d7e05173ac1a8f70810569878cdf602dff1e23d67cdb6949b98085c351b5993ce7f409b5bfb41c46c9213c5af17c301c9956b6737d16560687942d5b6e5f3ea5bd03fc45c3b778d827dcae557ad666d5421b5c8039f4ecdb7529122ccf66a22a2d8b07ea4eac193aba11648a08f7a626896249b7f850bca23efbb7c9f85ab9a634fe808951ef1f268823980df18b7a66562b333cada64c93fa0ebdee53b6534914696b95391d95ad3bf5a34736c3a9c344cd1655fad6e04196d6464ca1e8bd81908b620400d8af2faa86c44dba40d8c444b331efbc000c2574c7e6947c4958129ce3e940021d59105ad49cecfbebb503afb0a43b47e00a7f5a230093d898ac423a0346e8dedb370fdb0d25e7a91b63ee0f4584bc6850dbe4fed2ec669549bb8f5f7d4ce385bc6a6eb36ea979f3db655a07c1be02dfb298eaf4c41acaa1fe0a0bdc4fbc544e7e3d1fae21be5e99a3f00057608975b452bb4255f3afa9bee83620392cb415311a4ec5903eae7e2d542dfb38563a7879c518631d906e0ae882b0208b943c8326b967147e02ce923e96c84e9cafee42179b43cd79cd4d675a37d55158ae4c71fba41774ce89c2cf2f91e187e6cb92d8fb2ac28ac3735bce1f605c09ec7b8b2ff6f61df2cd3c5c6cbed92e2978156dc2201b2a57c65ba6441146517728fe98ee19ff2dba23b3e8761c3c4c64354bc73c766c0900bc79065bdb43bcec14cee722f6793e9897e5ec81cb8a92f23b5284b9f62b2612693476bf17dcc4eee5301e643d7a2a43d2a3bc4a18e4121a1f83b3cd7",
|
|
"output_hex": "7fb5323b0000000005d7371800000000f71dbb29000000005ebbdf37000000004283462f0000000060a42b3200000000a953423900000000f5f0ec040000000045eeff2300000000a373033a0000000062af0804000000005537240c00000000d39d270c000000002d198b1700000000456ab2110000000082f5631c00000000e1be43250000000041eb2607000000007d81ad34000000009bc54c2400000000d16a30280000000028efa91a0000000043eae738000000006df8661a00000000ff5934300000000005629b2a000000007e27c80300000000ad94b02000000000df7d952300000000fb0eef3700000000673d732900000000bc9e710000000000c2425738000000006b81751c00000000285de6350000000070bfc9090000000002f2ee360000000019c3a52c00000000b30e841700000000ea92dc0400000000a272c40600000000c5fade24000000003a12d81800000000ee715605000000007d074e36000000008bb0e70200000000969af42000000000a270fd3700000000c4db4925000000003fc27736000000001d1aaf2900000000a5a688150000000007499b260000000013712b08000000009962970300000000792955200000000036eb0a2c000000006e9b77240000000058b4a915000000000107ce2000000000a5a6380f00000000c8df5e0b0000000036dedc3a00000000af77922f00000000",
|
|
"output_sha256": "7122704b32bbf960575716eb0a96a639b821a2b43a7e61b6f792f454b76d63df"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=NTT998/i=8",
|
|
"input_hex": "f86323d7a7a8afee250abccfbb644c497e444bfa7b675fee9446d8cc0bbd801e827fac5c5cee0ffbe9e08ac21efcece08d6b383d1d48023da793d7d7449128ebf1679cb40de343dd6fafafd3deb0558b7e3a4350d0da71050bc018717524d170984ed2c6d827a62e2726458e128024bbf454716aea468853d9951bd2740087a03bc7c082d1e6139ff0e108944fcdb20acd0833f9b9ab691376f87413583da87e24afea27e9af4009897c7a653f53c97db0007649cb496033dc8f928ea4b19dbd946240553b14643ae3f32fa3fbd88bc763b4ec891a9c93268b85145aa1b038fdb3aa472f759a4d675e60415795c84e20b0b660c19e3990a252275d1b8ceec997df254bfd3a78f7823e1629a101a4081654fef68864973120085a0301a17ecae69dd2f21af2ab15d711a0a179543ef0d51960403910fc5397da6abb314c64f3f046f48428e156faba19e6c1623a7644cc82b419ea78d2e47def4c7e50d6100d96b09d01dd1d0d4469d69916681aa9514f523d50a383e005c8ac2659c174be921e29ac7ea65bad598b17685b1ff775479740cbe548dc4f088b1e5e6a30138111c51251e162843be54520296cbc073fb1a0262c77f7613a04342939cb303856667542bb5afcfe508f5aa98715bd5d623719fe955739492c76949e2a2605ed06b38c798a8177c1371adedbdd2d8ae92bf1e6bbfab600c97666f1ebc14f5789b39dcb041ab1e3cd72f178beb2cea74c40e3c5e98c4b1051df411ddf3e9c1e393af6d0ec8b0191f4513461f4e2d00254fafde12fc7ee765daf8efd54fcc7e27dec28943a7d2f061bd05e73cfeb78023cfd4b65d83d6633b699eb62435309f491ead157e1bbda25aaec3b34730711dfef1d8c43b87d7c847744421f32422894bee4d0d198480c735ac79e6c03ed6fad12768b7fc578dafd2e2f9eec4aea746cda09f9d8b076b686b83e835cd22d8b0248a9f14c97564c370c175e35e8b6b719be47efa906c1eda16552c039a9fa59148fb7b5d18b9b08e6c1905f19bab27dd5ff12fba2f4fdf98e54beef5e00128220ecd6e10e81398a5fc983a26f947c4666e91dd8fa8ee132c5ae473a1e9a8d556c33c44034b1eb2b2ea702abcc276e6707f991700004dfb490a8c8375a675b156ceeff529c8315ec06616f0b4a8fa93f70783523e77fa770d84e56055b43c0da7a85137cbd73feb237b7f036f0060880eb0e346b4dfab43dce63ac245a123dcabec6eebd0cce981abf1193e7fa286d62d2ed31d3219f458623b809c01c7c1f7eaf07bbb87fedad72db1ffb32056ed7f3d10f2a50094e29d2b1e0c1baef286fd267128923d712b8bb12b65727fc136efa9fa6a31ee47ad29560b1f689a131cabc9fb9a8f9f4d27a9db8329d6756f12939ad0b3871034fefd112ceedeb104c850ccd979b192b13c074be24343601ed751d76c20ca2f82fd99b9cfc080a5ccd4552464d9f3a59f0dfe2c9a1aedc773056467a50dfc5657cfe581d22c2ca61811b817100354eb1a95bb09ea37344c1abb9b536f836f14910fba60aefc16b80dfa0b63b90dad4487ab8c4a19ff93d10cc75d0c4a9aaefbd3a06f7b1c6a1808d9f5b5bb63e1cdc0de388f8ed9e4a8252ec8881d7f352d237489ea387e082627d4a2b8c5aea9b1bbe66993c7d04d82ea7e94db36ffcd3ea56deca693218cd77d16d9c7f8cc974f6b170cb927f2f5aac658354f7a012f2bd2ea1606bc0ceba1c524a49a37fdb9162d6e2605da4e581de1ae686bc1cb3ea5f21385f940f9f0a8267a1eb01b3a0d41f92e1fae00b66430b686b948aadc27214062b54844bb98a1a12d3e54d709b0dd93cd637a1fe132446eceb147c56c8d768c488d735dde16acc04c5c91857fa2bec4c42732bbdd6dd39bbb26a8c9eee734f15ca5d05d27453637a693d6fe058f6b7fd70254ac71e005038115bee74ce853c11e8e3f4524c383b6e632a1dd68e7ea48af7beccca116e947c04ecf75346819f122e71d76e969ebfc5f7bc9a4e817ea361964bcc21db5d31b7eaef89d1133bf99aaaf6c482d1b45ac3473db5a26662002ce47c7e174fa4d96e650aab9d34c823ae2bea9d7b055ff150cf26e971095354656b9fb44d023cc40afd455f6e213720caed82102e9603f02f4ba619d06f125467fa98f562721c6f866a8bf8c52d67c572afcc4a8ec57a6763f5b96b472d687472776e2ff710fb446429649d87aee8262e1782596d7a3e11f3d99bdc1fc7e6af54fd8e983c3982ed24039be8bf4967cf263a899dec87778af10179c20538710300e19c8ac446c7bc3107081bd094024df65e67bfafc549bd80fb6ad291de932af790af7faf071bda6f764c7ee14d90dfc43b70a16e6757316fc8c99bb7acb5a37078ba13f2b1fb98b7e9484e6545c1e759d0709045c0d113827898a792d3b859dda169e1e42c3646c21d4d992f18554f55512645a2e200ef381ad819fba5394b44773d1bdd45853f16f1e2c47bdf02749600fe80da794b2b4e50ee530802e3fe64c2cace0536f6107e8ae24ab9b7a202a449f6273b46f6f7845d20a071df149045ba7c84f0bf3508e43d3781c4eb343aac7db23e1936be5c51f86729151f46708a432f2a51f3140ba1c9c7611d246739d1481ba39b868853f3b5b13e45fe3de73ae2bf25163b25b4052ff6ce410e30f2c1126e390d2979d38275b8dfc92ef6818b6317d248213ebe9d2183d69c8be8d01c2e8f8fbff07a8d85d0de1c0787b08f1527d2c0ffdff17e2b7c1e46d2c5b4a6f4cf422b484d606a99622367612a628f006d842b0af8b133875ad42b9c608554e2a9a32804448fc4fe91c6c911363c34acfcea357829539052f683dff678185828c8cb6ece3834514013aa6894ca7973ccf1e1c3d7ff8a4d512e80388dde34e5b610d069bf8cebe023d1f1187c57747751438164bcee05b4c9389a1724b73df6c007ab494f8d7431e83176e3ad9b2ba1be460e63794f7f9d43e1b3b2e3e537d71c2ccd619cbf641799dfcf34e1f2942bdb5ffe9622144a1e1796e7f2a66e6dda084dfea9ef20b62a3e45a01a5cab5118ab81e75ce1a05f64ed7d8eb69e27d53d9807e5d7f5d6455b2d393563436cee1bae4a0e56d0b9f0334794242e9acb4258d20f3594d4a56fb4b4e9234248aa9e4a8e97d605b897a707e19e4229d8f3dc6680cf4fa6deee015a9897491a64afb5d6ed9d9ecbc3218d4ce398806dc865e5f1190f48c423a4a3a626e35186e04deb4994ccad9ee919bd320b68950e86d168ba638292cd54aba874da630ed6ce8509ea82450803f9b409d913863763112def0e869c03ae9c895426015a4915a5051907c31a7456a9dd7d986c6e550fdb6602fc8c33cae76e85de96d19cf8df37f5ff5e602fa297debf922da4a1152a6f5fbc8e0779b905f6897a28439c28fb1e23e1c178bc2aae9c68eafa91db7ddc70400fe56cabaa097ec2db4a00f34d5393c4232f0ae5f85e4f59834f0bc318cb36f228f5ea4dbe48afd2641fe0d800985704e10cafbdfa216b3db70c068dce5fd30f16135c1a678ca40ea2bcaf86d21ecd95ac888adcba31bf58ee40606e0843df69d362cd9ec0e12a8f11c75798bd675c64f111b9f566ebbb87f38f6e6bd1afc7f71a18b72d87ba292fe17a882fddaaa77368ff239a082ea86ab8c2185092a3705e0e603c630589c581261aeb3c73fe97b6eb0f8149f46aab1768574df4c262d38fb40f6bca857eb87a9505d9518d38dc6ebf41ee14e5b12220324dc82a9b58e9ce7ecc299f7966a33fc6eadda26a5586d2c22750177ab58b3903df1c2c70651789e1d2c282a0ba8e8ac69cd7baf37c6d97233783159bc31ac0eff4896cb7fa737e01c44159aedb0bffba482f1b23129545bf01a6bb08bed9b1f8cc74d1d72ec0a7ae804e8a13a75977e5ff5762547e8eb15fcea4750df8e0bb054596ddf580b1a8cb8c26a3936c51d1efcf59bce8ca9646b7f1e053b73153a3551d52af9a0e4fbd8cfe5865d0adfc2d615c925ba3364fe1adb14959fb0fbc67e6dc77249ccb77a56661a2cca555a27d4bf4cb055bb38cb964c5dc7d70657ac968dc73f3805ed7e6ecdbbfde55669a79a51f34ccf75156684def4320bb3a95f5e5f3b8eafa36332d9d92aae92d314be0fac6c9fd05b2e39ea3668da9831c2523ab602fdc66e1179f8947328d59499698dd04e96142b478ce7bb6aa0361a43e366d2b38326d39761f1aec0e5147e864afda8970a07e0fb852d42a567fb2e0c515f50eb58e8be3b4a845e378d891050b0689c9d8a8686fd7a3f0040d6bdc59b3b2b807b4e82716b80ab54cbdf870d5a2deb658898ed46ca8a56da9da0ee20584df9b98372853812eb7e6540b4eae1dafb4afc88713a7b4210548e3b7e0e9085b08769b3bec02370bf81e50eb2f7eb386eba8dcb632f9c9970d4ceb03c5522bfd4ff5a39459ce59122589d648838c0da265631857ef8f3be8205a4787181cb382947af26b6d4dda7905ac9cd52a7a50650a6e1663d3fe4b4221c37930913f88f77819d29f389012f541fd48ead0066f93cd551549ce3888141653b448b44c9656bc1c9b014f1f96bb005bf68fd0f7324eb3cbfcc6d54c2ec39295bcdb74a918f3db090d529b0c9dbc192c64a47455a600f3765385b2845ec8db299ec6c82169ae1d5722f0eb06f3695af8e1d2cd045641265fd34d4f8df9819484fc7236674d373d7840940a69aedeb9c2c5a96b974b7e941e0ffe6dbe89c37d36e3f5f8eb7c9ac05e2c89f6005d984a5735aaf9b1a02208d33c734143feac1ae81a017b4a325bcbef293375dcf0526ccabb327ff891d3ba9401afc9565f55e377472f56c1fb64bfc39ff40dcbd1bc55781158bbbddb78f7ef2c7650aacd7f3e6f70d3daa7a9ae2cf2ce0725eee2a7898c6cc023cd2e12e59479c3826be3988a5c95ad48c5bcea759ba75303bf4ec44912cec59bc948976a827303321d192923648e00fd4d240aa2318e3cb19691299f0f606ee4116777e33cc27e7804c4033398b82127c3290dbf4d3174e76437879c72e054a5ad25afbc40c8dd58bf09aeb2dc884d70f95121a591d4659e57562143b6038174bb1557267a6858df83ed8215f601761ac56d82a08c9cd49b68aa8870c9db0c55f187de86ec7eb64c83beab57d6160e6d860ffa8ef500c69a4b2e1630421904ecf5b7105be42ad001111496838362c111243b07054e136ab144a8bf646e566a3820dcbebe09b86b66d7efeee0a3285359f245e2eea988f06dde10d9ac34ae7ddef5617f0fe213f84ac8d8d4dc7a8470af2d63818ebf2fcdd94619e2ebadb2f5435f6e4a94311b33b2e01f573bc6e98bf5dd75aa40007052e263cb18cb33fcbf616726ddecc8371bbec3186dcc01627ace7ab5dcc0257abd4d1101f07bd29b9827a0349f4b8af13f838df33c568f8384421ec645d2579a7acd12a7d2a1f4bdc3e367f53699c66def43d28c9074eb7ceb3318c450814b722ab498cb325402c603b779965199a9c8aabfb6ac88bcbfaacf07b2c7af2b82efe04f6b75ecd62cd991d0917b1fe5343a71f04ad48f849deb39a1dd104d5acba3a08dc0fb9e183e72465239da28bddb43b6ed219f18bfb02f2dd1a37b4146a9274039d7854375d41bce87f6dd5323e7c0843ab4ca6e84f6a8635af37c3e3189f135db3b2e2b97e8427ffc8be4f249b69d35b8393302906f540c112c18ad8ee5403e473dd1a6a5f7f77b9d783ef2ede22116eb1d8b9ba2a04fcde943f51cd798e1ebf7a8d4f8635c6e9c14fa9742bda1876210fff7dccad9f21405d54401d976fcd2f6944eb3a51cc63d",
|
|
"output_hex": "f863231700000000250abc0f000000007e444b3a000000009446d80c00000000827fac1c00000000e9e08a0200000000a793d71700000000f1679c34000000006fafaf13000000007e3a4310000000000bc0183100000000984ed206000000002726450e00000000f454712a00000000d9951b12000000003bc7c00200000000f0e1081400000000cd0833390000000076f874130000000024afea2700000000897c7a2500000000b000760900000000dc8f920e000000009462401500000000e3f32f230000000063b4ec09000000008b85141a00000000b3aa472f000000005e60411700000000b0b660010000000052275d1b000000003e1629210000000054fef60800000000085a0301000000009dd2f21a0000000011a0a139000000001960403900000000da6abb310000000046f484280000000019e6c1220000000082b4192a00000000ef4c7e1000000000b09d011d00000000d699162800000000523d502300000000ac2659010000000029ac7e260000000017685b1f0000000040cbe508000000001e5e6a30000000001251e12200000000262c7737000000002939cb3000000000fe955739000000009e2a260500000000798a813700000000dbdd2d0a00000000bbfab60000000000ebc14f1700000000041ab12300000000beb2ce2700000000e98c4b1000000000df3e9c1e00000000ec8b011100000000",
|
|
"output_sha256": "619424756eff4494eb01060dce756802273740833d7be50cce7bb24690a4aaf1"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Uniform/q=NTT998/i=9",
|
|
"input_hex": "5a5c9b60f5b48f49966d6bc9082c134e7170e3d116287f520ddb2823a785fcf674e1ebb9023bc3bdc11a418dc4ba482d82a149beabc033ee853a292cc774be25ff8dc83ecda83acaebd0140155e8337cd0b687ad0547dd4f13f3e238dc05e5c7a928340226810d1a2d19da2f058a8ddbd42003e06f6fe2a5a5fbaa2b37f85f575c37fb94422d564bd01c615e6e17d5b393ef3230528bd88930c1f1faec1d40b16ea44a4025db0d308b1eab22efeb358f5eb25beb30e3091bd843e4aee558e9e90d8ffd52818665fa1073b9cfed921c0cf9a8da9841a79d351118610a500bf1705abb2cf7a27b0ee934f91a3b29a4e3553c77d2eb12a9ef840b8b3fa67a9d8649e0769c1e7fa7ce03a0e5f077c27d320f305751890b806d0c52ad7ef7023fe3d4ace5f17135b5888ca78078a18e3c71cf1963427beddbd564de29add951ec063d46b9e6833ffa6648bf2ed201048dbe761a92a347835300da142bc8db8e404920390812caa9a34e8f96ee57a1ee7ba46582e33a7a2b272dff00786faeb1eda166219461acb7edf121f0da5e38c8c7b3c484e8078a869d0c49a01d827987f2af08d0d2b2713ac317887e626e0ff27cedf6aaf81e2072b9ebfc408662ea9f9719b1b194292db9320d770dde415f03869aa7400fb8ac32f74cbbab2f987d4d5bec17d4818c053ca280cbf2f4ef2b04332d60d36f52487a749bbe9f82cc044f9179874ab8ef36d178f403171328515d617ec0d43ab19a55bfdd12c8e2fd42a4757a8a4796a58275eab8dd2a184a5fa06a6a639f652a934c4e0c59ab632709a907033566684555de8a231befd8d9509e6e0d4d18a981479d685dc1dbccfcb245d3682600a94462f393321cf43063f6c0ea3300ae78f036def0f9ecb0395a703016ca4c00f8a950faef7343670b2343efb537ed09639192fc5b518d52aa84cf386b5aeb46b1b718e57eb00d0d1e1a77bd76684296d75b3ef5d60f7ab005df0168fb10061e903eea40667c3b1026ac9d6de39750dd2e918d31c7922e30f900e98a8dae0e9f9db06547aed5257990df0259b7946b6d2162d27fac3f65482f287d2e26a345030d8e6261a1e94486a12273497db1221e5a9cc7cfb482688cbea5848d71fd3d2ba50b1c678beaf1a718689fa57ca44088ea098d23697df9e60ba670708d1698269958d2fb263b511bf7a6bfe031da108df5f182c7b3e4956e2e61a7caf567815578c520c828d012fbf0cf212b8e4e7ecfbf2047d22311288a99ca4b90f482a9bd8b9d73c1653082c5291bc0ed1cf975d68222b40b0fe0b5847778cc48373a0a833a7919cf7c257291454b563ed865b470d1cb54c7a8fbdc1e6d1b45996792ec496ff23c5f931deb4df5660119ebfd7a015a468a236b8f623bf41ced3159cc12724f69d5e796a2159154a11e6366c797687b7f4f2e689f375f31d188969f54b36415f81417d5f4760025e34997f893d757669ee501405cb39c4fbced83a055b6a411312cca5d57e4036b33e2afd0cba74dd3e10fa3f96eb6edda3d17323b55edb0c39eadfc2a0a4093427ebee9fd1c83843c74b3ac08fb00e5e64d2d7cc37d94602ba59fc7b111d3995865d8aeff7fcadb0f0ffa583ca31a4cce516ba6a9a7f2a085a016bd900b06e8d3f7063da99377a1768874cff7b7e02cbac60aa966f5b7acff649d95ed98e69a9314b8e134d4f7c1525bd5357077d23fdec07553fd60ffe84260515ce9a8f55b4ab0b5e65716796d5872a5c99f70e02910869dedbd9bc2339b59f5fc9f29a5731cd968cbb6f55cb13b4b67b0a346ecdd631807e20b8694459bf6d67893dd33e3afd75e0d7cfd90d67d5e6942e01dd6238566d11cf5a14762d8022a1009004f68f8e81225883ee31c81f05275d62195ffad865b5b307a02203bad51a89f229b544c9e110d41202ba2bd260e7f81b096ae1b0436631f4eaaa286c907a41d99942cc2b27ba61a06198b34120818d012a09f7927ac4dc4f32d8ab115ce672e978d0c0cb03d2b79792e8d6a4f3793a6b75671d2206324c538c1ef00dd9fc2f4b23560acf4f198175495074c642ab97b2404838b0e10ef32eaf3d4f8a17abec265e137ca70241ba5e6a2a0565e753c775e074c417e88ee4cf5c80792adcff87bfa202f55409f91c7c6af53d446f5608e8fbed0ac5975febb33fdb417bfdc75abc82b258de92b4b404e0d3b96edc0dce842ed7d807bd8e9cc1bc2479e4b5c7a67ba18548ecb872f35937cd44f3b2d9a10e4a821f182ee5414a024d281ca52a2fe35b2dbded6827917551c25781db892b71b9e4b615968cbcda3f37b864df42bc23f9ab896ad4e03628245aac96d1c8ae85f0676e84c928a14671180212e096a0ccaf5f82adcfbab8fda8dbc084a4b2cefcc4d55016662c8e26e44e0ba830a278b018b92581a77e6379014db3d0811e0e1354184ca33edb1d915c3948ff0720b2a1516fdabad88e452cefec95d3bb67d0ee77b10f90b5e3f56b5f1dc6535c15d39ce573293f3cd785a3965e2ffec2bfe1b7cd33d750468be8d9723a74b3321a5ea871a74953e4ec09ac8f179e7771f0ba9b33b8f0f3073ee1e290ec7d7bc66d1b0b9f7f9b7abc8ff5609e38dd230fcf7ce5c9ce0c84671d171b74f320067a900109a6bc923a039d174484b7b37417cc525b771afcd740731882042f29c9aba9aeb80827e68912bc647258863d793eff9483fa5e088dd02268357a028bad2cf4ca7cdeb5128f4836d8125b014e3f27ae98d26ad32acfa88ba2442a1635cb5a405b82c2a97c4b376186303343dec059a7fbf668abb51a8e10be53434654d49738b55796ee6cd58a754c2e6d105705e3da80055f083229c4782dae3e65a9c461949ac1690c42582737e202d56b83a4969e9312e1d67926feff9729d8669e3858737f2027d894c306d5f16540b05f1f6ba3a9a711e86b37c76a8c0bc9d027d69727b80b62657c7813c4eecda0d7da5ce9fc9f3607a8494ffce481339efd1357457e01becef9ecf3183a865423f133a9eeac889a700b2123b0ac38f38dabcfa2d0afe04b9e44e1ea560364e4c7442b01404bb7a0d3ca998c0f4623ea91c77dd357ad6acd429466a0c412f0dece8a2ec8d7b03909e89b83a22b0bb0f2aa40f68fe54da809c4aff90345e01c35f36ba64ae5ffcb230412c5efcd6a348e1d2b4b7f738fffc797b1cac01100250588e3243f4f8d1d5e9f27e3cc31f657dbbe992939c1f54e2bb8e3b9c70807cc73e9525b46293ac312b2e3d683238da74b718eb8db7a22107ebc1ce0c0b2a6aaa82a7d7b612d50139a8fe2f6a7ce308f0e65213cf71c6275721587d335936899a007ec8f376af7d0da93440e3bc25700ae251f5a07e68cb0637bd761c130c2ccf4fbf96b0df7dd4c14b4e4b51e7d2b6265476b563e3eadb93dfb85493ec0a4016f1eaa372420f37e277eeae325fcadd296fd842cc2b7451f1f08586b3982c09f407a78d283cb594d394d25bb1c5413c862638adf4329481fdc81bbba7a001d5664f22710b85bf9b4d11ff175b543ccbd35de5b2497376e2ff6db3222c1030d8531a625fb6ec814d9c7451f02138cf05c6761bbe40a10fd9647a748dc33cb04654f972dc05a5b116ec3f4d93d419b8ab205b7e21c09fbc21ea9b7705cfd2447c2ea697a14adf2e4b8467524a38b260aeab706c1930af8007f137773a601ce7cbd1fa4f36f8dda5d41b7204357b571f7e9b50e12ddf6dff78c029ec8f0dfa1ae732108fac6e78599494c6af7adbfc3accda9c1344f2c942504306b9e08f949e80914861a54101536afa48453eb5115bf1e2b05c391c5cd090cf78a6e3adac069ce287bd687e6b99e66c17727fdf10d69d0904954b67b4ae78bcb1a0564044f990c22fbc49fe1aac913f1ef911063cd1afb95dd01bf92a2e6c7b27dceb7eae48d1fca733a188dd0560caa9fcaf3b7e3ac3800dafbbd9624fc7abce84a55b912435d8a4f2cd8c36a1bbceb0c5ad47344d29dd2610bd9001e8b266dff1bf0dbbd6d91a1b640317ae1591c067935c1d2fb78e52c3475106f76671db102131a0974f51262fb7e4cbcb43ce278d747769dd3e9cb13939ab7f1bdfc163a93c930aaf33be9973e0a50bce25936cad1617f1a2ef6c5456c329388f81025c1d1d17b9f3568b8ccdf53dc93c400c4aac249eeeb8a3b258f8f4307c0651147c644185ff11ffda3aec881c4c9f1f056e436f29f9aecff0a7982b7b0ffc078287e2dda508709dedfca0aff088fbb5f0a6181ac89fecc6c1a81ff9439fcaaf883ca0449f3c966f4403f11bcb04e8a76f7c6db09899f99ebe54c3d571740b5df7a3217d1e1d20f5c84a29900ed610c3838156f46fb9d19d4791740e28b4c5c0ae0b3658c8ed13821855d01c2c87607a694342bdbe94494603c14f48f569b2c20316c066b9aa3531ff20e4e0c944e4e91eb546d3bb9e866861c631ef282c345ebd52f27e2919b39ec6af0bad2c5f3568f6e733531dc69879b2dcf45e5ce5098805e0129e7943edd2bb0ad4a5c6aac58ec9be5f9cc54f0902efeeaf011871117b890244159bc162f1df64f642202f71434a9b746ddee09488eb71c5d1ecc0655bf047b3eff34275b1bc0b906308336f4abdf9f6472ce440c7c3f7d92e1a85bcb5d963c2368ca224ae13549b2a56a768f923bb8f371969971f1ed9e53796de6628895262650acd47422bfe56edfae8d6f0044161ea93447dfe263386989c6b5e9c2932ee49eab607cd315c9d9ec0c0e61e76444527f4da3b52ec2e8f2a4560e88d1d40e865da3fde8ee883b8a81d8bc7bf759907ec7937361e2850c47c3e3e2345a0308c1ca96e6bde6a3975c587641b39c6b5de08eba32ca6e13366004a13a83ebaaf363923dd64c9d6d9a22e8b879ea7c6660ca1bb0decb47a7fbb3e93432f1bc992db9f9ec392afd0610e4fca91c2a0596484961a9f441084a719bc45fe4c95bc4702f4345f46f8a9890c998835407b27e7f955af1c658e7560abe9265d54ce351bd57b72ce19f21a8bfacb07ff40877006a49003eb0c975fc2802067d0fa4b6855332f42bd07f30f723d241001e67897122c6da4f6c20301addd0e6da904cbbe2c6b33ee9729a98470922b8e899da2428e844cd904b9101398a23f32dc5e3f5f8710d3fcde5226d4004865a47aaea5d74c4dee1393b9f3e17eae5295ebb3ceb212419ea3d17ee32e07796dd3827d9606d72687f6676794b286d3ce3c04ab0079ad86b71d59a40575300aacc800c889830d059e03839d2b9f058b150d92300f4da2db02043a98806ab4914d1a12621b52dffd4a06d64fc3db43121dac9cec578914bdbd51b2ea21d73fe77d0ae7a51b086babdb64066a1b2b1861c362384cf9d1d64f21a478c18da4ab1d7c65e4ed1eddb7d87f694469183f1cda2c23e0da72d0f1055225ca4483aad57cdf307efd4b02cfa5ee119d75546d9ff45332d64649b39811151267f0914d71c4fec9f8fadca9a9a902f3058757c6decf9cc45218c8783607a77dab3150cdb15850ba07e08c1451b6216d115477d41b7a6041a0ec1b4bdb5763ce5716ee909d5a56579b6cdc74d87f38e0835b89ae62f8b802f0cc45d3a99728d0a735e0b9b98b1e8b74427946510a78c70f72b0d3c702f3d80b7436756756134c47afd06ffb54c961f7b2039c51bf0c1d6f8e7ce185133cfa58f3cd58ab3032b0df12d40f39cd105092b0c209051c605d829176a2735bf8dd2980a09823191ae3334690bdf7d328ff2b81044bbd42fafdc88f41ac4c6552e6aff23dd1f5703fedd73e62a3ec706350f4d46f0c592afb73821a02afe4244a",
|
|
"output_hex": "5a5c9b2000000000966d6b09000000007170e311000000000ddb28230000000074e1eb3900000000c11a410d00000000853a292c00000000ebd0140100000000d0b6872d0000000013f3e23800000000a9283402000000002d19da2f00000000d420032000000000a5fbaa2b000000005c37fb1400000000d01c611e0000000093ef32300000000030c1f13a000000006ea44a00000000008b1eab22000000005eb25b2b00000000d843e42e000000000d8ffd12000000001073b90f00000000f9a8da18000000001118610a000000005abb2c370000000034f91a3b000000003c77d22b000000000b8b3f2600000000e0769c1e00000000a0e5f03700000000305751090000000052ad7e3700000000ace5f13100000000a7807821000000001963423b00000000de29ad190000000046b9e60300000000bf2ed201000000001a92a30700000000142bc81b000000003908120a0000000096ee57210000000082e33a3a0000000000786f2e000000002194612c00000000f0da5e380000000084e8070a00000000a01d823900000000d0d2b231000000007e626e0f00000000aaf81e20000000004086622a00000000b194292d000000000dde411f00000000400fb82c00000000d4818c0500000000f2f4ef2b00000000d36f5208000000009f82cc04000000004ab8ef36000000001713281100000000d43ab11a00000000",
|
|
"output_sha256": "5254c21e5b7fee9f11575520be2aea421515157aa4d8476af090bc4df367d2ca"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Ternary/q=PulsarQ/density=0.50/i=0",
|
|
"input_hex": "b1276061aae1389a292c53d891ee85418b844ff570ef4501035850167430d66b4bbac9b54e7644778a078f5237862ab02dd528c3b3a67ed89763016bcec2910168e777b75437d9dbbd0f1aaf824bf5ebb779b25996610dcff19661ea29a6593f7fcc72ed52fa79d753ba0488273d3be94593c9177457527808ab2f961b78b75fd869191b400f57fc3387cf1c3c69303fd19837da0caa0605695b48e3da21826c2894654c092c13e8999caddd25c7db82f8b6e0f11fde1e09a44d2e837b174c348a11c3715485ef16fe7b7bec1a3bb05d28ecf29a146eaea357fe4ccfc080b19115f3828ef29078fc71657fa528038ddfa7c94cc13ab69cd8bf51d44c8d6eee56c42cac18eb51b1d5a92cf438628f042d28ece7a68b1787cc43ddd3c0b143c0de6eb9c04fd266d91cb921096fdca8ef26179a63411aa791ad05a0fba2edf3474d4f1ba253cf728b8b5690ada79cf64b71d6da87c5af28deb18d3424ab95d2820c523be50892425bf3050452c74ae7d2b6aa40b7679c6b19da16db4f9f8b8f2883604f2975f94b2df2c5d041e5dbec94d25c72670a593b785c478a2afa85f512b7315f08ebae02e3f1a4b0bddbef7da6895d0b8e50a60c89a830a4ca7b186140ba5ee14180a1abebcfa952ed08adff6b7323b75642fbbaa0a3ba36c7f13158133d4d5c8ec53e09c75a19ca402e46089e650c602c86bcb09d13aad1471477c5784927def2983e914d37565de8e2737ba0700f6006474eb18a36f099d6cd49c420a7327a288120e6d1e6db43793da61e243dc4415011f5cf3106a3141d71d7640ba639369de77bdc4f35c88ea0ac0619b839e80ba3b39ecbc0106f49362f391d8df7c3ea76973fc92a9882ed2b63b9071ca39bf19ed4a0c0f63f39692f44dacd0372ab0081c19df73e1c9eea16b6e9c6a43544d181fb7b8cb49268eab436194c365a666a45f81e02e4e7df63dbf665f4b4a203f6552728b7b462ebf2d7131e45b134efec3e78c542b0fd552ff5b32e896a69c64a6afe09e7856b3e83a4faa0c4cc0ad7aa4200bbb84a6f038cfd5368983b0d38fca8da364f77b094f0b4b68cfdea093da27d5e7d967682ce004d29831916aaa8a0ea5e20e7988cf2fc5ba91cb0b672bbec9fca35a744b8838262588147df2f96c16bbf6758ca0889af69635109be3bf3357484ece4a1efa75fdf506ea2ae25e1d770fbc9298380cb074da68a9ba6b0bd976eb0a98da5e31c41afaccd2d7317a612cec25fe1e5256f2fbb4c9963742cbb0dc7ce8ff9d083f81424f2253be3d0cd21b83e6766c225b7714ff3aec2d401f4adab41d82322b15afd9022e9d0a5aeda759e31a0a373a0349763a3fa60b30635980291b9708e18c0e873c7a2885e97d747b8a1700bafa31e188707d8ef4aa7610a9148aded3f3737679f015d7772c47b3479e2fbfc5be5cb053cb0db06e166c9845d79fae2f6fd76fd38460a28ff0e20a629a7290a32d7f6ac5c71e4e1e9f586f6223b675f74f0dcdbe11e76895888fde41556f47494e393bdb964e55bc95cf3d54c7591df275f0613045c9f0c68706405230e89f5a6ad2297aa3cf05f21fb2fd246cb40b7157ac03c6f62c0b5ec40c9c8c4221dcf856d40e39895841dc74a8a8d4c9a6dad05647760244c6d3b67d47b382db1d548b1eb5a1f37c197dfbc89a99eb58be580147177f0c6557999e58820e36d914ffdda79fbe36f9235635bfaa669b6bd23d287553a86583fd10d960178052b0e976161bf202b3ab2011e7a399d66fcd31df35722633a1f95fca6e98d35a3012999c839e30e6c59fab828d3c0fe959c2a282c4fcdd28433cb6debbdb5aa2890c178b7fa458d164d97afecf7bf9269517280a15ac2f34b2771d65c4eb336437f2c7973d152ccc5f3b5c7ff81b36bf6ba31d57057ab865ffb8e8f70b56fcbcc514e3b5ad4aa6226f9c92c4110fed7ecec33a9a24ee893523c7ef7bab4249116de9391731fbb87cf33252757eda9ceed00f706c97de7dc63e0540effc4ed3c0f5f00a0aa40fa37cacad32d1a3c939a5c60332f9e5c51e5b923478043b2c30e0686ed6a795116aea49c426a9f781678ae834159d731770b74cf4d847b51f24f639215e378dffd7a2d4c83dd1584b260ec7eaada29c1f45f94892a10390f66640a7d9e62f9039c331c0b2b157d3f8d53a3e6f2f300c6c877d064633d66c640c11db6c68ffc5068c805be7a13978467273eff986bd0c9b3a98426ac9186068f018dec70063a63b0c7b3f600a8b122ee1618203d6765f2d54947888fdc64891c4ac8e284dc3bc30a03615a9bb5d52759799ce6e9238516aa90d9c6822bf311eacc4f09a0fede08f841a1a78806da05bcec065916228f82085e32a6a5861dd235fef44b223566bc9828547f15ff60d4490db5493c2bbe08fcef5e965e58eb51c1e7bf9a7b9e633815bab20ee0810d166e5b0da2d5ad5d7392fc8d4c05f3c45dea98dd0a8fe6a278336b7fa3963dc8b05f4acf039e840a10cfdca9587bc889e51b65b9353966d541a530a86801dd4a3fd4ce4ebc58e302488eea008ee4b0bc4358f193d0ba731ea8c1518421a1a8aa6330f61be9b8fd3df3fefd8717c1af0e8fa2706727703e10d411cc42ab3c3cfde712c2faacabc965f0ad81c6949c013f0804dc80bb6e98772ccdea9f5317df7650f8a2f0ea0cdd66cd0915b13c4314d5815cd496515143959b77ded53b6b6338c3ccad95a0c0897ad0788f766632f513e8d8059f8f8a55269e2494745787ef504a8033f1a7c441e69886329c6fe492695d1d26b858e36d420985b0e8727608ce6f08158d023dfad655e4989219ad8cadb53d6e264c6f80e0a57db3fd5d69f09f73a2d3cd66216288b3ab8a953d35558812ab02b5b861e1a6da3c78339041546fe8b8a32edad480ea16e31986fdc2f39fbbb3883fe97714ad3e80135a0d7b1e3a400f5c8ea6bb7a3a7d7ebc2f86b08a81329c3b0007d5bbc1b4dba15207615e96029137c78cfda747a141e12d14974f16bfd7e471f7cbb94b165cc53fdbf5f4ccc55704807ab1fbe63b4576f34d381d023b04bbcc816c87941fe627dd0bf2060eeec3772cf7c6c3e49469f53df5dd1cb1b1900bcbeca6319d1006af7e4628776f9f6f5c476e5ccc1f9e2e1c1f6819ec15613058e8701606e6757e988668a032db8588f0dba0ed8efa208c01b1db13dd52a6f2b83acc9e255e8af0f0a7c8b01babed5da181f0bcb3ae31acbd1b1acad142e342c08bd0de3ba0c5ad4e3cf08dfb6d2c8aa1ed48fc83f944345e0058fd2fae24107ed51fa33d7d59d9bc8ebb7acbc8a9eba70e70387662b084e5e2bdffc0b7d82d99a869ba50a61b7def397a7ec7531ce832a27684e02b849b307ce60e0b68ce80fe20fde0fa386736b2f4b3c6f5d13e2b8e51e4dbda185b57ca688d179086c1039abb360e6c371a417a33f90865a300dea6368f5cc5b002ea8612bd9b7450f0e8261e4987f34645f90509d9e15c7d107472747e3dc9f727516b520e0869b744b33c5214156a52dcf69ec719e958e1526f26682aa00baffd0a83c06b7e13a169dedcad3a72cec230ef2382fbfed8b44dd150800c37cb1ec175eb4d5d97296f210af3ed9748ab1a45381f0985a9c0f308ad948fd5b6f6fbb98eddd0f6e749b4ebb9fcf9584ac3ffd3b85db77b061a2bea02f7e000de4edc9e7c7e14ee304ab98991f31996053363cdc7bd848511eae08fc559598754d8173726695b54f1c4de9990568dd82793551eb5dc10f13a308f3f73b7a5518ef9475cf6664175d047b9227bc476b9395bf88ab560943e6549153b44b753495d4b19601267523935923ab57d130feb6cfb31d786e99ca5d20aabe548bedcc0dc7a898e0193daf076f8e37f4bceda8e8a961e8d28023941eaedae261acf63bb845a2bee839ccd8de032c14b1182042bbd5fb3e891bfe8d391ab4117005f93e0840b8614966961b070e9f194be1e5b12b433387e79a7cb981e6e843554fdb5ff2eaf974fb527c144683423c777966f21a963ba50ab8b97d185bdddb615ae8b464dfdbf92b582a62a6dbb16eef29e13ce2cd4e0ca767cf93f22e2b4ef0a36409911cf0cb36d6b37f49ef9302c7fc2989f8524115155ef8a1a57cb8e8e721d7436943c92f8d1fa937939c0edfc66ff758c72446378c99a8e9a5831dd051fca6c612d9b788c4370756afa6f64fae739527b5be5bf62d79063f0d029515ffad6c56859efc747a8c4a08d6191958a37304e6dba29ba3d4d43cdeadf6ba3e94f0a0b80b67627ef7c4b43a34aefeb5640932c9c18e1aabbf0fc954a7e25e115214f2274086c1c847a65f568f995d16b956cb93df20e968fc0463277409db8c0da4ae61045d8d59999b799ad5f5414183387d9510c2825622f0a380ff4a7728b56029663b24f1838036b0230ade892e8d75f3696bbc9f9fe5716a5b20df3a8ef6250da334f09ddcc74d15e6ec78a461904e0130a669bde91c2173afa996da84b39d676bbbc290f7974fa7ec4819cb6171e13e807a7018d73d53f7b48854671d3c1274b82327bae55d30c1df5c7388bec33a04487b01bfa9e44cbbb2922bf3d348198a1b4ed9b424b2b8af8a657d5d0d03fdca4b5b27993a56e7732e3d97d75f9ae50aa0f28ee4416793c8a31c52e2ca9d9585d37fab189c569e16ae6ddffa370767776d4fdc412eac50802246aaa3a8d781e22423ab282088cece4dc2befd4d9114044ea8dd153bd952b9e95f20a057f19f0a0def478f7ec7bc2181d1462db6553af2042669615c5f085e0d2301f9d845feedbd7e0ddd26993ca454934412a6668e1c1dbf39c2c3d86658eac30d0f82795deeeac6d2a3302bfc7b4359ea9ea8e7620687f55a5afca0541e65b45ea142d1ae72a213692d5ab9a98fdab4738b9b36659adf7b978e7b7bba4504c2803d4d7ba312f65dcacd79b035c520a4a45608b4bed992d5807b82a147de50e6385e385b2937ba6c33ab62525afd33b0d58653685e1d9793623252d894d3b4465ee2f1ad30e51d9af527c33ce240b5c1d2a3d8b72c447e3bbe221f7966a0dfd7fa38aa19aa0e60bf4e8f2b220e5021320b7facd9f885db99282578c002b792aeeba8bd09278920cb07da5714de7d898ba96afdb82eb7549955a9886cba4f803255faf7bfd13c500ebb659f5720956684644e25034520273fe6dcd5ace89bdb7ccf3d1f342ecc03f4dcaa8fd181cf8dc51e145bbe167e10c08177ecb457ed5a5016fd0bf096eba644003fe8e379b67480c855e7e8c0b8fa22ef11e2fa1e15324cfdae350f03e94c11c7bd141e24dd0da8824f3815a6212b7fafc58328320c94cb8b2ca4ba6e12fa78bfb80ce914313608fd423dcf5af28125c06fac8eaaaf0e665c47aa4f3995195748eefe5aaaff882ad07a224a239ed3c70efa775fadf4f0c065370e6f7f31612a349dd88817c337eba2bfff38799c01d971289c5c76b11eb4740ca68ec0ea9fe1d902ddd1b32e4d9ccd7c0cbbeaa0ccb495e99b9ed7f4bbab1147b9394bec659d26cbad6fb83f633dc963a374dcca7bb3f3b6d5b49cc5eaa30a747ba669419726d42d5b5824c0826325dddd27a2d0f82f220b5045aa710077dfefa00587b659046eef8bc96d60263fcff3138e1f9fd0ca9278efda170fd8e93209c0e96295638c8dca46c41f79bf4cd2b584dab48a0b972a259281595ad4079a3a048c6581e21e0980b8f3c36a16b1aea5974be29678422be277c7a9d6787c002d387126979bbcba922eb8a51e59921b7056a0fb0d254c6ba4c7244f08233f7cf9b804d7e9641e5b27b8f1bdc89050ab591aff6",
|
|
"output_hex": "0000000000000000004a0000000001000000000000000000010000000000000001000000000000000100000000000000000000000000000000000000000000000000000000000000004a000000000100004a000000000100004a0000000001000100000000000000010000000000000001000000000000000000000000000000010000000000000000000000000000000100000000000000004a0000000001000000000000000000000000000000000001000000000000000100000000000000004a000000000100004a000000000100000000000000000001000000000000000000000000000000004a00000000010000000000000000000000000000000000004a000000000100004a000000000100004a00000000010000000000000000000000000000000000004a00000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000004a000000000100000000000000000001000000000000000100000000000000004a0000000001000100000000000000004a0000000001000100000000000000004a00000000010001000000000000000100000000000000004a000000000100004a000000000100004a0000000001000000000000000000004a0000000001000100000000000000004a000000000100010000000000000001000000000000000000000000000000",
|
|
"output_sha256": "5263e892c6894a3f16d7d77b48fe023853d84f223429575f61d9a7deb1488426"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Ternary/q=PulsarQ/density=0.50/i=1",
|
|
"input_hex": "cc0cac675aac2cbd463d1905141fd7db11d1372065c3153b71af59ef68f4869c185d50544da0682e65f963ea1d8f140608e15271afb545cb4ed06b4e8a7b863310bdedfe1b311992dd7f52911ad785f8ee25296a76f1fbb57a953d25a61d1d0d418dd654df3e698eda4a42a04204adf616bb361590aff83908a8b7bfa4d600f9aaa4e12d013675307079a2a1c96d70173d031a30205f4269151e9406ef1336efd4d159f25edfb4191bcd7e3aca3864b0d899ca5c59a2651e76074da0939a876f7e639ad99681c9f429eb8c6d7ece75011de29aed8f044bf2c09a9cb124f235281a4bdd358b6afa61f4d45d6a5cb9f30b7762c533ba58fa7cb98616c16769d519b865ccaab610a3f8516fb2ea1c9053772f2ba9f02703d7dd609b7da7cc5bd30cfa3bac540973c5d762be1b2a513c871f2e703d5b2d9bc0781ec35193f337e9de684f20578ebc9ec35a4e952d4ac6dac4759313a64c02c6cd0954f032c408e18bed912a84293db156abdc52c8bfba9ae17805a3365d69b082eced768940633be25dab943750e6ee2cbc99283c946ac661e3e0611820a9aab446ab42710b45df3cf9b11e89a5cdbd53a14912fb8ddf59e2e59802e486505808adcc6c19c99c51fe014d321a0a6bb4f988471d96a5b2f28d751039b682ee8b029236d92b0f1865d7fe07cdb0a68f31ffcea82f8ad907bf1d04fcc9c2c16ed71b010a770b0b823aff71cda224992ed0e8eb5343f2d54b095f9fdc3161a7073c08eaf4577b56c9687dc3027c6f1a3d451c1bb4fe21b8c008b67b02554118e0811c42b1a9453883606ff77dba8c43006f37d24272b9d396ee914597cbb2a34d00f32eb67f7fc2164bdc961a3f8b6c3083441528a25a0e8cc43ef2ae545f72d9812febe19511db9300295ef56d0f67f5a04a664b1eed51979931c0bb7565714fd0e486be99442785444bf46a172c50ba6ddcd6cd92c9742466b00e6a86d54215deac654257d39b9df7e16ef25dc0fbdf566afc0382f7c3682e4987bc162833153ece69a87a8cec362e3da866bced614de80163f1f5f1357bf07943128db527bc9f70ff7b39ce04e12d1ab87322dd63b37fd576f76e0ded47acae4478cdb264ad4bf793c38db924e5c46a464d3fa02c4e3dcdbc84916053d9bec869002b53292cca8b6aeac7baf44597fc88023480a2935c03c04ed5ec15ebf8c39526731a43eb15fb7f7482abafe8c83a278911784e1aca67b517ffba584247e385bd0f6726d1b8d28dd318cd875b330c03c558516a7cfe796794e41c996b11d4588aa7a8bfa844a25f0b65b2b7f8b2ed49c4cffd0fcda467074bf5d8fdfbb2cb0fdcb1bb87f28990c687749255a901b498f76fbb9ea36f5ee2e6a8a9f81741a06d2f58cd38e5f4581ce1463949c0dbe3ceae28f67ddb3a96714ae05ef593c26cfd07f1f43b2fae47b91544155dad2a91211cabb528fb06a0f8fdffa7de93642143b8fe8987290fd41562fecc1a4ffd1f679af86a1de762833b67a46c1da50b13942792a19a1f24d61e83e2f64928482f841cab60389ab73c8b36742bfda14838114996bf97d55aaa977e60b63039839aa98c617b147b43b93a346fce2dd7f29edc7b77dff55566e875d01ffbcad27cf551bd23e0408a47b7f65919696ccbe84277c369435482ea5779cae6cc9bf77c6a7a290d67a46eb86093bad274de706985c611615d4d9ba0cdf65a3c740cb6dd1d7319dafcff64f070f3dc079d0085ba7db14d46934f6f9a8d0bb92652aee51df8ecc54cbd7ecb070e52306922298ac9f98e32090eab52796c0f7936c0e1e49b7f2d6338a2266c554138eaf747e71d4f61e58487796ccaba82300b4d333f23781893573233d7c436bf3cd1f13662f671dddec65d4f0a3496e3bd32e0b0eeea18074b0e9e123c8b3f12e5da6038a13709560679148252737b3919196a692a626b0a0568a20d8af0826fa0a968453f6bc4790eff881236145540c78049ecdef4f513ade7b92a8d9b20a46221acf3e622a5cab9d0c98ab3de09afddd6311523034d0757013e646f2034cf0f0d7c383661c9bbab05b27e286918d52caf48127777b7bee92460479cf68ca352b73d88c4d88a6a99d7206960e86701156591ad75aa9e17d5809101c6db41a114e1f33cf910a2cf6a2097d2657b4f416e45bcda22022d598775d9d1fde949b086c0b1d6a54619cf780d4c8ac3b3de74020201942dcbc02f762394b02ad0813e4ab129c3461a5eae98ad005a5ec6a7b41d5a688841ac969aabdfa8b8d59b5a06c83d33240d3036bf717fd45de86d7c9cb74ec48264c61ac3674124e0e1ccf451c022bc9a750287a809f43a8e9e73de3f5ea625d1721cb4143153bf00639322b5f4da2872b6f7f9c9c05126334c8d0ea1a4bf55c121a360665a26c80169819f362d8eb23ad76475d57f388a29948693e6c8b929c54c9b7cce26f1e191ccb135e8102098d3912a1a4cefb7f47d6edcb3c4c335a70f72a3d2390eb952aff7fba1cb4411e5507f20fb4430abbf71c07e53eac2c4c8c2f3ee8c70fe29d9840358a27885cca5a424bc4c906e53d41b3c0fd48a4a9b93f95c56fc84d8f6e698242d478c7b6abfaab74638e82cb63ae4f4a000900f7a9b3f728f74599ad0b0e064da64ae5ad530fe36177071d4324bf470ad6a4a475963e08676053a5163c01f6a485d7107bb3424eeec33c8dccefb03a7829abac7c4dc5c664710288e88b101798fcf77b97f495a798c3b793c02963df2e5f2749cfcaf93f4216f061cc1645e18e13e2443ae6a6de076becfc4d2cd1d01a3159c3e5413e91fd5fad9624ef3ac0fdc097752e25f6ffea18e081077f737d41a40550fe35e055f225303e590d9d2d3c9d5827ce2a6aa567c3ac0c106546eb255de3b4895a69cf7f956ed075cedd807cd223ef6d5ac976414944503a07b8318e2d690d382d2bd2092c7202c33b95f33a8bcf9538d2d9895b3964b2fbc990b89ca089a28340428cfaccecde10061d9a4b5642ecd33b93d12c27620b7740f5d6bf9ccaafac1755a114cd64d6f46662b87e0970a043afe443e14c723465f3a84277b3999906d66e870f09fc1ccb08ce296d01d728adaeeb3a4bb93a8707bc81eb582180d6b4d2e7cfa16694831f58438ecdc46ff19c14d0a8a21180c574b047ea584353d6ccf43dd0ab7f9d96eba56811177d7ca2162dfcb03635fc983162d9b14ad5e2cd20a2c32ee738cdc4a3e1c4dde601194fad4b1dd0e2a3b06ff676ec969d133df5e9a5f1bd4ffe4caf5d2444e2d7c544a3ecda85c945b29b71d95aeb563b2a71aa046574673277dc97d913263f2cfcec3d67f170d0ae49cf932f25921e7fff094e69ddbda06fe7793413fbd9a60389ae27c15baee912c9ccf7386051e630464c3eb7c7bf3702cf9c59a98e1a0720e5a1b22616983042ee578fe491756da585a02de904dee81e2c9626f2bcc0a382a8cc92328a160bf69b951ed1c9657791d4059165e450d4b32bec6b2aa4c7d4ca6394d94dcc09dcf0123ba4e14dde32d658606005ac57fc29d34b5a467d67388c9a03fcc97b937bceefc707a41a737f3636d84c3761011e0fc141bd2fea381dccaff9483343ac06034675b6758731eb21310d3f8abcffe69d6c14c13419805ead783cc405cfda9edd3bfefd930bd24299f3e3d13677bac297e4c10b6971ba77723dd0b1879d23697b3a893b6d1712428b35ec17934772f14a3f19863ebc56794d8a1b8bb8dd5107b4733794592f143f06a72885feb51046d6f3ff80f634648cd06945dbb968a8124617130254862b08977c5ac8f5d46d58f3901bc18df60135120a9f83cc101f1aa5a26c02d242c7256a67800d45e4f8d3e7ee82ef1c064f8b5442b5c1370402cb553b6c5ef5625c27afb45d0536f229d317a52d7366ccb00e5516db579a0430d57869c1873c63a29942b13e9b77e4573be82569963a129e27db958c717d2c7e3a12a8017e7e6e8f585b877d23ba87073cbeda79b6b4be87afa161721d50eee8ef55279b0df8e1d6fd2a939bce19e637e6faebcbb604f43f3600812378fafdc99d8377fcf62cc9b37c453e17381339acd532a2ad49b908ec3096a112e824d293104bd9ad2bb4a70aa7d685bb09da81e1d6c2c8cac4e0ac4edcc155f1cb879a25be0a0413afc55aa0c001bf5400e7c4d1427e11e8ee842a4eb1ee4a23ad7cca7e890dabd7b05f51daf608cf5aa8717cda624f84f4b24b1c63e694e1d6179a95e07437f389f3aa95e53136e82b39282407f542e9e29d5b93476d8180bce835e53f883a9825f294fcd6773d676184fb7ec2d077bfe8cb312596b76c6664e7582da67c2518862f74daa1cbea95ea3fa2f6dec61bea4393a2716ef75b927860674c10d54bf19b228b869a5ec5c59e37298fa666b1ca7a9065d868014bd5a3425473be2b141b502793a974d5141edf1d721ccd01d5ba4205a0719aec0297e41da9b8b8d12f2db2e84133ac9e71b1a5dfecb279d0f05f2c535fad053e9572b460fb0440bd08db4b4396d1c2b8ecaacf5fdd70265a1734c1c96278531ca5c31fe079a836a8689833244828da6096224efe37f98c376b1d249a431c5142d791eb9ce1c47a965afbc5c3fc6d19b563961269168f2e372cfc1b2d7b8a5759318104989b943ab6bb77ecc1768ac6676a1ed7c33157d40d36fbe0841b467ff90e283aa911034134c45c8c2468deb275d77e38f9fac2add698309b2385d5eb688bec4c050d58d056e8d6aab60b81b834ef5f875d7a1e42802ef52ba90609480746597b822886c073e2e4ec6feb1852b4d123480777c963d1a062ea2f36bbabc1257a917b27eb922eec77e5b7a0031808cce69b24c3954e7b96b53d5dc0f93a3b85915189a6bc26d6d894c082e6533e6a33b6c4389925d24ad24fc3ef68a32208bb300161f94fffcf1efa53adc1d96363ae7eb74342b8e8f6798c4e88f87d63cdba804c7819db1547ae883cdbe3f11a1dbe7ed0a0fa8e87aaeff983c89fa462ba11f9698562f50ea2e2084d4efda2b05cad307b1269ad340f19eaf108078c649db13526edf53961c510b344ed0eb4994953d50c4120012482b4df1d246e185238c4144f27d5a846d7ad26009bddf9ccc195c74f59746ec238553187675127a67a48125eece94227bac17047521875386e3a86bbc1546eb3a03e6afe8e0ca9a693b0585611fa77fcf3599869a7cdd20661f899f341869a14aa79eab15b400aaf67858019c928db94480c7cfef7c084d18f0b067b48024f7d4eba3314a16d51b5a918f7b04f1661283cf57c1bae86a91c12992edbd10d9d5dc7dbded9fd13cb9d2d2558df808f26744c0258b654e0fd27bc407f23b2cc26bd64b2a9c0dc1385c6953a91769fbe2d6995dbe76d400d1738e7411ec5897b511b8d057787a4a0886932b8e9636b99a44aff0eb9fe54701fc2a664a4659634099fa5d74e895fa60b77aa8548776142d34fc79128966ec93dc5a5b3dd3ee8f27ef3e070c03ab9eff8e0469a635a003d6b9d8272ea4e933d9d96d8b86135b9e94f6636dcda85a2824a2ef3c58522bf75d69ce333bbabfcb9c25bfc26656f714215132cd7f11575360c406d003842fd7d667bde9d96270d0342025ddc3f8fbcb5691b1a67a9009eed926ae7bf370af7aee50b4c7b22280e69ef33de354da43ac4ec669a145e0536811ec4426ec222ca944f33c7f207d239e1defd1afe5fd2d856f20859925a1e0dabca2d9c4d755335d3b48977130670fb933a02f6fa242772a457931fe4f5ed1441cbf19fc59dc42c35b10bbb87078f89b0322caa65d4d629bb7fa53a05758f0",
|
|
"output_hex": "000000000000000000000000000000000100000000000000004a000000000100004a000000000100004a000000000100004a0000000001000000000000000000004a0000000001000100000000000000004a000000000100004a000000000100004a000000000100004a00000000010001000000000000000000000000000000004a000000000100010000000000000001000000000000000100000000000000004a0000000001000100000000000000004a0000000001000100000000000000004a000000000100004a0000000001000000000000000000004a0000000001000100000000000000010000000000000000000000000000000000000000000000004a0000000001000000000000000000004a00000000010001000000000000000000000000000000004a000000000100004a000000000100000000000000000000000000000000000100000000000000004a0000000001000000000000000000004a000000000100004a0000000001000000000000000000004a000000000100004a0000000001000000000000000000000000000000000001000000000000000000000000000000010000000000000001000000000000000000000000000000004a000000000100004a00000000010000000000000000000000000000000000010000000000000000000000000000000000000000000000004a000000000100",
|
|
"output_sha256": "e97903c1a715da81b7462822eaea3c8dc711079806ae3ead774793f63f1c09b2"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Ternary/q=PulsarQ/density=0.50/i=2",
|
|
"input_hex": "aa9391a23650987896e33222d4c1332e044bae4f1efb114a1b9809badc300c56f670e60022b8b6a31ae4cffa3444ac5aaf9a0364e652854c534ccc9b6d1d9730f442b46dd2e384b35790ea2ea855c5f64e7f9e7d1985db87f9edc1d24d4f5a1188d59e3bdde9675fa284d19e5cf26303d359eeacb68c55f7e9fefc6676e76403e6fc6013efd527a140dea07944db3dcc375aaf4ced557f61ad8d1fbeba0c70ce78ab3d6a319e24c528fce8393aaca0d5c7f0c994b7130d2c928e08a1fa6af1ec9c57e0641c4ef0d18cb058dd8a231d154f7d88527fc86a76933406f34978c0f8520f40d70f4ffdada92511694deec1ecfc97e6cf0c791f7afd84947abf6e48b372d6cda0f1a246036d58e85cb54861fd8ff05639b83adc734513d97ab06d6676f396caa6b673cd4c1d2912ac08736e2d3eb3ccb62b3066bd8936ab28b6d920e20198773e4d202f2667b31b601023c2f8567d29a70c20e82325a41f45be3c5c7d12c9366e25438a4047f8d1c49edcc8e9db406b962ec496d74be4203cd57257ca16bddf47d3e9c0ca96b5b470ed8e575c602847edd0ed35a540a138eae168699fd5f908da923fb2ebdb433da57f6b150c155affe3d1c54e84fce6e396360115415e0a4b4dae7090807797f7b8dbe031fe694732734026c35763a14a8f69f90b5dcf360b63afc9ed4f16a7d89705fddf1ca87cb1ae025b1c1532676b80f7528b6cd0c4f516372730f1b0170b6c72419c686a11d48ad2f3f4bb716db402121360bcc2daa9a06af5091091d5cde674313d8718b9fa39598694b6715bb7c728ef7b7b8ae980b9f123c43747d7bda1fbd7b399ac4e7d25ff1679dd6350584d99bd8b9b04255739d8c9dbdbf4b00e4556bd7b269232262834df3650e9112008348c17c776a06108ab44aeeca3aecf79c98ec447f2762785945c64fb8c71e3387bcb4d950ec1be470b1ecb1c6ac59611886c7949843f85abb49dbb05027b94a1a0fee0013b51b5902c7e1cb3962d964b78ee4b4bd8833fbede13dc5230c2fd0b1b12e30cf822858da91dfb3b22c874642db434aa92be96e701c1cfbbec31d3decda77e7360fa42cae703494b423de453fc2592d1dbf9a3c3819f0e0fa940f6d878c6a626ec6d751296008f44d3f6e8aee04fcdec316c41979b10c4609000eb6cba1d590241b9ed84b7fc5397bb9d26fa2ba54d5bdf2f8d09b9097378269fa24dc291e9302565de8bf559f17eb4611499a45e12310f53413cf41ba72075d043fc87ea6e83ae5d167b74aec130824569ac51551696c27c128c9322dc0b104c19321db17a72c04ec35130cc369b2af8818b7c8abfb6f44b4b34fa3edbce5cb15a3d27577afb858efeed7d937cfb81cb7795a36ee5a1e72b1423381f4cd07f168e2f8b468c140188d9c82f01c89a754abaaebec6fc1a46464b2c560f8e6483f84bcb8d1256708e03915a7581633fc7ed0de4deb009cb28e6717f62e5165ad7285ba363f99b1d6352dff0f80f54c68f4928747eacff2bdef876220c493ef746b17129e336658dbf1a697b9f06f7103771e153906097bb29802617138414e201a4a78089a42cf1ac72db0af555a26bbd2028fd7aa3ee42b7cbab1b57cf9c25eb6d3673b350c51b51e8a678e89577abf5270e9cadccc952c9d5e14b18ef5da78994bff5cc8a1c265e3b08808b7c1ec8f2948f02983c897b86505c3651a66538ffd074f6375c39f09ead51db8a47ecfebc8a913bc10633d693810691de06da788237c07c0a6de5faf335d4ee7e15df9b3209e7fa8745c83e9837b84ed9956595736f018c1d3703a20ed8ae12c29f340559a8e77a2201ca368ca6a10ed83c36e7b91ece4e8752c1f8d07e64de42189e4bb80e76cda73d119e6165475f468dd66470f1d01e2620e807e457bbd6e35bde8caed3015d5cf0636f4131302bdcde50433e072dce25f3d9bb6f688d046fba4c9e0b88f8d5a95d2686cf08ebaadeed9903c8b22c5891cb611761e5afa72f1138237414d33306c7551b15996ede854b5a2d1153e7e5edf87353c4f61f70ffc09d12b33dffda135272891b13a924f34a3fde30d498697c7c1e6259f609453e3e1eec66fff6584606e65436f4d4a389b28d42191ef05dac57e174f43e79a9cba821239b9fe530f9f3d4bcdd0aded5c38950db8ff05dacde1c64eddb589313ad4efb460be62d5aeb86c1712a4013e6a512879d020f00131f54322e9cf2c043f59c75196d1ba2c41f6e0b5eb47b1a38a223672b0cfcf98abad1914443b3414110a9b1bc98ed62dc49846c42ea2976fb599e245c7d44f9f858c324278e3e02c48bd756e0786da965d54024d54ad945137444d645b582f0e0aee176523639d69a1d11cc3f8e44906996a879a41c0bb574f89d995982089991a7c1feba2e87d37fb27b0ae0b5e46f2062502090d9d33a1646ba89c4df149a1f4fa609a4f9afbb25b5479989a4d6faa0f9e3cc4ca3c1aec3d90b96fce830022f56d70cd17c88dab3e36c24c343f926d5d6a70c5c0027fd14f6f42b224ad432f0d13f5040be3d81c5b4375d478a38c0e70b4f53d525a03366f2baed33cd788879212826e1cb21f51ed7791a735afe3da0ece2db3b7f4a2105d9b6c13c58351867ea41838f01fb3bdb52ad2c66b66689c73fd6e9cf1d8cb0db4887304e4c93ae953097a8bb26571833723926ab88ed99c30788e2cc442ffcab3aec4deefd084794d4e308563130887b4c97839853ec95a9bf75e8d9b0c5d73e3ab71bc1f74953d18a87197f4a55b5629cc2cc41c3eba9b68b17764b740cc7919d5b64e0ce54e9b57aaf1900c7e9236508bf5ab445081b52cf9d3f9cd26169302ab7003226d7df22066f2b2e149434555cedd47093bdad2e846d58bb415bba45cc8b679310f937c40d9c13189afdab6624d3a66ad31b96957c94baf4f309e4eaab27a959fae3224930ecb480185fd9458c9f1644d170390382aeb030b829fcf8cc5317ca386d12e62522741144966ebd0b44855cf37af05ca86e49f0c2cb0f1e1e9e317efd772d5b91999e14bf9152adbce869360d0538d3dc1ab4e5d4a0813aff18f3f0354d4dadc35ce9608915aecf25515b44d891d7979e39fde3606990f1aa47c5cd80f66817a63e86458a072442200fede18a7f761489f430460c84a40023ec58f85f941b0e801614844c32aa50478e49c7757968d07023e002dcde37f2d93db8d3c4fd519d3cc6abb97d184f45686471e7ec5172fd23d57f089c8469298afdd406e8151901e0b564e15ab74b12df7ac36a0755ae5f98e537546ce7bb61391ce5dab12d68c0745da0435c82e504eafde420fb544740ece1048b6849a3821742ff768f695b4be7b075cb0e1d50fe7e0c9f5c54a8abd8e5d789e36a07736971be82ba4de26e70c6547806243bd5a31441e582f89e8dc743ab4baaa9f9ad75b3df44b944c36af882ed56551c86f6ef50877adbc2a1aa4edda1f52c9ad3ec7852368b0cfd3cfe5d7e8a94c588f93568b0e02eda00fdb98e3be481d1bc69ecaace0fba94bb9d68ac2c27d1cc48002650e8de07a94dfdd15c2dd37a7822ad03bff8b0ee7b6aba1af7207a513079709e6b6526b2b77edf32ae25726ea9e3c94ed86674c0d6d4c8b2c37ca409e36d07bb14be636fc02667c1cbed58f30840689dd07e0cdd69d2cd1c12c6328cafb7f7ca69a9172c40ef577494c945b5c90066a59147828744246019720b8482e3ec29e9addbfa2e38fe62f98f9d7e07409954729496fe724ab7f2a30855d87e66002e88c79fb6654b7962e3f7d9d4118b8739e67fea549e782d1cb4a51ae9602f14ea538ac790ee1109727651255f69f7ba856aafaaf86612ca3b7078a381bdfb2bb9929c3c8f3dfe7de6e8bd44aea6670ece0b27c5ba97fba3edd73fcf48ec45ac3acda42f7ed35ac181801828a95cbfbb96c09512ecaa91c30c04c234d9a1c401057436a9f0e04e93da973f32642d4c5c8e240195b81202ea1f30009d0cd3263ca8755ea48a16ad3479d290d4c32cdedd25f07291b07744db8946699c6572b1114b3ee01671778fe7bc6381a9df0ec2ccd652f7f32cdec2b5906f8082943c3c2313351a6d5b6dc086a32a043cbf22c11917974bf67254018ba49c91518e5b6d7e19710646d1253ba0fd2dc75ffc2cb62191cf1d9d109e9b0e63a574e5e6bb0b6f3c5f9117e33d95ad889405e9f044cf7b8a4be35988545871863276eeffc09e0fc9ad73cc951ba66b2d3752953079f841da26f50c52d97b85d3ac3579f314dfd69e685337975e8e2e7cd72728e9be31d53c70cb6adc2976a95959313f65edad79ff473bc4eef28b120b61e4383c51fa0564161b8a7caf0d60bc0d7b262dd1bb6facc205bc0ddc9ca9d23bee4c62ee196b4defdf1c52c54975148913afe4b518a444ca36d057da8c14343be5873717f9c9dba4c05445caed255836a538eff6ad1db4200d8a75c91216d9afe4ecf5866fd559d4e70734cedcd2b03c988e4c3239ccac8de0af7276928fbb2127915a80c69d041b18adee19f83f557f994aad6584e38debd6653fecea338abe1d2254c80082cd0744f1e2f8ab0cbb5ec9d7acbbf29797d97c1f92eb915734fa3dca24adc4b8b4b92384ecf04e5b095b190cc0f0b20210563287f9301804535fb1b99c39aaa820e52671da544d6ee232f6f0fbd184447868697157ca399f31274995dbd25a4423fd61f9a6ec620046a1371f956cbcf7307deb73b6de4d55012ddb2b2912069bf41ed9a435733b0efa1af2f2216e3b29d285dd93ff12edc4801b564e49063341025a1ffe44e741f1d6486eabc7900551ec8b50c39ab79ff33714ee65aa5eed2506a5fb0b333dbc2da6723b4fcb11f1c56a2811a3250653cd4640405a8f9102370af9439fd764312e475c7d74dd246f8ede0a84e0ba8384bcac0291ee3ba47edbbce8f530da8eab56741df3816c18700ac43fb841ce217c5a974391d2b014fa1bc36ea65c9e321e6d6ca3347693154990a054102c174e595b019fb77749fe4aaf37e354f53ee34baa8b1410900cddb6f9f3874d7e38b5f75043c21a242bd38bd5da5cba2d159fe3ae2da97882c889a170afa6b6f996781bb343c531f19d25336e48dd24f1e7039c58e37ce138265e4c59b638645ea7ab5d3e7f25c69c99b7c873d15d1582b82e6883623a0ff6f000d5fb32da12962188e0e1d759805f65f5a7876fe2df4db8ef53b61defe77b04a9493a7a39dd4553f290612ca4ca87f00f2d52e4edc03c6bdd548711e05e6b3c3dc4efe821e2e660ddd4a08c4af16893933b70531e560298a2e0d9ad1e54a4f51ac3eb117c7f5a860634931e31947d3e1211c3de5b27d7e634f3860d6c7596340b4071926bfc7f2fa5dfdfe78188026276cc399e15205408c205b329f952d33b0e09522b882319f8dc64b0cc88737476495c087bc4880fe431fe2595c34c950d8af5e9a5473db0f60bd817ba9db1b21227f9b5e67ea9213da25d411918fc7020668e9b9e1319d0db010098ed3327a32910468199ff503f34c4b62a59d27d86f40e57f572ac24125a7c8d22b844ac2e3ca25b25b8952cfba42c62657abae483b0d96c43911ad7889f91e616b02d11cc787a06fa627d9d981c7276b033417c5d55b68ed5d73871110ea535de39c8e91106b512655a5896fd4468b9e843aaf65bf10f3f6617481eccb71e6f9ae7ff4039bc0ac4f457fc62362270b06e8649535dbfb3c064b6812218447e1017c0796daff513263440d5319065b66a28d194e17addd3ef14b72432313664e23fe3bbfb365d908420ac2b72ca8eafba137ceb4673ccd67f",
|
|
"output_hex": "00000000000000000000000000000000010000000000000000000000000000000000000000000000010000000000000000000000000000000100000000000000004a0000000001000000000000000000004a0000000001000100000000000000010000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000001000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000001000000000000000000000000000000004a000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000004a0000000001000000000000000000004a000000000100000000000000000000000000000000000000000000000000004a000000000100004a000000000100000000000000000000000000000000000000000000000000004a000000000100000000000000000000000000000000000100000000000000004a000000000100000000000000000000000000000000000000000000000000004a00000000010000000000000000000000000000000000004a000000000100004a000000000100",
|
|
"output_sha256": "416018373129ef880ddce6a48fcfc248ff93d6318f43a3f4a0de81f26a405dd5"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Ternary/q=PulsarQ/density=0.50/i=3",
|
|
"input_hex": "d50bdbf62f37583d4b47127c5530f7e25e0fcd170159e2368ff750cdc4ebd885a2e8388450930795e5d359a9e681dfbc8737fa0f0d2a71714cf53f35009a50a1577618a67e538b23f2df12df493d750ae4dce30a96f99151d5dc457728e9950258d7f0c08b6ebf49cd8a8065d43b0cea3a54997cc0d9066765d50ec3fbf88932863bedb038f98095584f1d0ac471fe32723a61610c62f25224c4f1d236c48ba73fd3e14d387090e40ad593c918e28866b29a56d8c4e0d676732c16256a207449adc95804a3040b4193b10029acc04a6d5da32944b2144caf14101d8f0ac45e9e848e5c3960d206c9b1d56128919b5c49df2cbb16ccd1aced360aa6d7d70fa45f5b5ea3a54d40eef987799a43721bfd74b249d093b882783373cfa602f5d47b8b5bc08f09fc91ce34fd31203e458cebbf0031d1bec20b94a5ee02112134d6c29ef3ee715c4d09743d591c275b9898dd8cb838f69a13262e921232f403dde5d57e98229c38ad21ffa8ee3053d3306d8636ef3d3b288ac76907e86e3a08475b72a3cedb236790d8074cad5b07935be9bd15d40e5412375fcb9f9cdb5646e2dae44580e126f7bbb1d10eec3dbce14dc4e5b40b8fbb46e0afb1b8c226bb245eac4f05eb7bd03c53d7b52c0761990092616a18c80463aaaba75fa0958226638de12c2cac371582ac8f83b4089012350cae52ca17a279acdbf611191f32a7f1531e5db3a0b9801dd69d063cfc4714346f6f1271df25d9a63488e975f9a7f96e3daceca7918574c68d3f73f32f5750466802f38d016fc4e26f8eaec574f6a98de123c5a9fee3a4bd77861051c70c036ddb087d7f29a716b82824deb2dde93ab048da52693e8aaea79805adb45aab4cb13fac89e4be66e18fc83da9947f80c8daf193727471ad2856e8c0285c1657558b94f988dc5dca48fb8852da276ce9bfc943a4bc3370abd527b11bbd567c953ad66499bd2c24b7a9329bde62c24d7352ea85f55fdfde004ac135321884c77ad82184d20f83c591dfc3c25f91d482f026e255fffa522616e4917f3d424fdd9bc3776faacfed92d187cf5ea5a8c3ab9bff142c622c76631596f459281f617d3f0e048f44e9b79fae0de34cf6e3de7b74d993ac08d722bbc060bd49abab3b3196c73dc6109f4bb850b1a455ebe7a26c5a306e831e4245bde934ed6929d34fda6bbea404039e850dc2646f5b8d0e747b3581b29bb6cf83b81e67d1f7b3f1f0bba0aa96881cbd6c1d82c24b5eaf5e112dd8cb586e761d714925b2f3c010a32c23f99f9024fc2ad7bca6c1bd57d28d55da5c97317e8077ea158ebff4f108efca210ce2ecac55c59b5ed25198c154b93f965f7729bbc63ec3499a9567c4d74f1165bca2f91e57a5ecab1a3a3947f8d143dde10a4e8644cdd2d6db914da46b97187fd5ff36f46bc6fd20cf1605120547873f622a48d44175ba53126b33d69d04fb40dbde351faffa973f20372be00d5b84bbafd23635fefa202cf617aeb79bdb569fe074f182532c459f0caf38dc4cbb673910db680023ed9c3eb955da236f09ee51ec8d3173233e7ef80bfaa153be4a2d1c11d06e2fa00b9cf292aa5c773ac25d2e6693444ac6ab5a63d095b8a5286157f6683d891f00c79697ebf643a550ea0be8166ed1f2757f75a24dbf6a938a40dd7031d1e2b8e93d12925b75318f54157397c5db202682f6457a917af6c53feea26c37c8cd55f51a2b59d605bf8f7860611f86ef66196d30132e2ae1d5bdc421619e0bd11a38b026c08cf1b03c7124af6a560e9a8a625ec768c4e9e7837bccb21958f8a3f77587c6be35b124030b85fe89aaf57628c1516d2513483674f91cf174b7c347b0c1a5866d17823c0ca69c9e496896c76e237cab6f2762bf5b3892f5fc43673d869a331511b22025621fe0d506d6ece4ce17bd1e2009b50ef96d766bf1e4b5bb7c9efeef5d9104994400eb9c0318e40f916130b8ac9c45a24185323cc40b13ff5e4d68dd9084ec668e86d3e333c59fe2fb63ec30226f13b084ebfd17b33619b343be56b42c20a0dfbaa8c2498b16182c992696dcb855c98c8aec4d19308ae736dc9eb889db8261592c94ea7f5b3b55616c7200fc04a7d391b2c78519ae83eea35e676f4af9ccba33e9133a7d272e890443eb90e6e30e0365b3c0e0e5400ac588fd9ade49e9151c2bae5cf48f4900e1275d252924db3b7a9709d54777f0880e8b006f41e2b686a5fb0aa55f734f9c1ded86bc843e783a626c554b89888a34d588ba418e04a1803b9bd1edf3fa3dc3d9c41c2860d6f78efa45b6a3f1fd278ea4a4e6d7daf2f918b82702cf6e33175d748f082271b1c813e6069488ff7b5a14ec6d9d28571dfdef5ff5560541c3336384d9bfcb9af834a7e67c641193fc13d885f7337bc9209214796faf3462eddcb1244b987efa25bcab5832af620789c7d36cde8ae74c4422d3b90d8ed1cc214537f2b97195780a604a8e97fe7f42ccb5c0d10370a39dc882c93335ea5e6c9d684fb5d4389b97b0035542f4f7279940df3d69d92fc3a3fdeeef36a648f8df4a13eda0d6a5aad4e341399359df2384cc6c5f14da1814a3b301e5a1a1c9c48f11d611b17d7010b00fa0af223dfc2d76bcfe5b9f96ec55af80ca2f66bd81cbe72bc6f00052b32033206723e2f7fe9ded6ae24d68b581d6b4df126effd60c9853c96ace4cb2a17f48e8c242e72ed01c75d554c2e985dbeada14a5e04c55061dc607373a8336cb70a27557f30272a720b210538edff50842a636622b6c86fc98c2f24a9a42adb1bc686dc80a7a675d04ddc03d42acc79f5cd3e7a6015065757009cb375ac4f517f2225d8be67a9d2716f46b98ba818e96493bd329e7ee6517ac49d30056036f1ea21849c5890807425f626f7b8c9915e3ff3933533ea122baa54b464a89a5ab856759fbfe07781b8ef6937e8c5431836bf670503b095b48cd854ecb05074fdf99916bcfc29387ff325143186faa5b0d2a81383ab279a12b6e5de2dfc75d0aeb2332c1b8839294bd914bce71710a00849a3d72c308eaf782b13e8f3d97e9499ec443d7a56c0b2d47090994f3672b1b1de4b2b77f90a325d3c6d63b75f78211f11522313744e8e554bb96ad26dff602bbff1f8297648e54d708f97150296dbb147faafe7b122a3b2db0f07f277bddb0c499e4124a7a2582025395ff4f57add682208a2135597028b26f157c40d2ac11a0838c8761eca430c140675ba2ffd50215bacddf3dad72f1e17ce27350eb9dd001189b849c79ab39d2d5d79378f94623384237f8cc0673a93bbe5eb3df83edf38f24b15d75c59ca466085dba0ae1bb095b147060f47e7a06b685577af379b38bb5ea08c7e204f9c87e61a5f7bb380f97c090f3b417b018416c84de42c5c60dc9e33d0ec33d59dac9557efd1bdaebc68603c81ccf5c1c275cc7e4128fde2d19bcfb005034ae5bde44ddaf27fec99603a319d47472f78e22aa12c6353e2680cf14239d159548e7bb6a1e36ddcdd07eca514b633940848225931f1f1e2b8c8d30f50e18afe26ee3b2ea6ded90aa76eb4b19e50970d6aa0d52e6b2a18b0a92c26d097670afbbf021a8e31052a4949cbed6fc41e145cde7a34c0f5c090de057fac0915edb49716d947ea6ac8562376340b61fdb3f36c4268345d4c31203c033459b13adda486fbd452d93db6623f2aa0862c031cc888a4a522f743aafe2d554cbc33e39419792afda63a8b040fa46dd2467d0a9d6f8b7ded9c314626e76e4806feb898a1d1d29e504b165d2911a9a40fee17c4f21fe88077c366daefd93ef4539619fc2110e9e2c94a9d005c4f67f5f50200fc236eae0fce22bd1a81ca8f73aaa3e717ef14883e75da98d3e83641db1db18d21fc939dc26323a0f499e9cca261760c1bae0eeaf0dc225547b0a4abbf142873aa8d378d2066a6620dd9e45aa3ca82206bae443dbe058829ef49bcf264c125531a1c25e9f54575885f745948c875900af3d9c25322603baa38ce3df8dcc00811c0c99773e371f6b04c6fe8d7b9406dc8f7ee336f6e4c4482d6b6df33465b1f7e44f12b74966971f0a078fd8dc0f5c47974da9c97cfdffab9b86e9cd37d44962a6f481fab9ab0419b9b8f9b3ee3faa1332d22dfc22d3b9bf42230598d445106f551d5ccfcb9b3bbd90a6a0303d8aa25c7a2b1d4c8fe8bc324787de551177cc3d648b90d0e57fd46ded67ce9f87ba2c36cfb4d06a97c4257350b5f48fc172960f83c421d982c045d0987a831a654129df91aa922b41aa300d681398a39a9c9d70ff5ae213209a602b7ea81cc6b7f15fd59904569922c7921bb56d5db7f073ddabc0787b8fbafc693066bb1d7c7ef2d2b6419eba6794c2d624bd1b60171ad45cdc0663f922cdb09fdd3b853e78223c3a72863836a5bec7740056ee0d7b38c94697aa31de55e826d98799bde001c3b7236493dda9aa225ec135bb4456e4515ea7a008053c6512b221813ea833eec39e5c1324431261c730b9becc4b8b7e4c61491d50d8b0ed0bf638b733e7c33406bd512f62e8e4b49027d62385e37f8bfa12ac3d414bf6285470ef110a093f8c41d3446f7afc151a44d0e4a85af88dda5f12e1bcfa3b2747e726caee219ac490ffb98dc05a52392e0078e19e0bb0725d6646bead72a0456f2bcee94598be068cfd2eae4d3057a6744e370ca173ae97b656822cb320725faae953023071764c355987dfcc47072de3918a37343b0b786b5577f03d4ad48771d3b1cefda238577e1fde2faf42e8f8f3e9d5f32121ada64d1f94461e61d58b8a057f641279f82a0e050dd81ae8105aececf05cc1934732d9d1bd025fbdeb78e1b8e5fd036af6160741111807384c214a403504aad8a197b51b80c5069eafdfcc1d980474fae501ccbee4d3b0f8ca3a8868774d0e22722c3fab02a60941fa3c005d775cd48fe2f2bf50c20978b085dcccd4ab0066b4ff037e615ef071af2b61d3d8169dc0c3931d68a7c99265da16acb96d6ed2ae47b1f7f78db880f6f4f2ecd665bf7c466495cb589a733f44c561f2c76b661e16c3981df06fc1ac23913248e47dda0430fd264f102928396a2a813022055fa016c035a5490d77c49bf39555dc9dfa0cf89aeb1387a80845dd5ef363742023dd70bd480ed157b2898dd132e74de43d1070e1587174651cc4aceb899068a4201464cd7d7abf72cfdce7d8993c63ca6e40c7611601204911c1d4c427884bdc89b4f78d4ae1d5c2fab4aba0814da32be8ded528efeeb6185ed4605a0f718167d36f46ee1aeb54d0e7b81e74d25067198b85228b08899dd68ee667513a2849f1da8daa15b87133a3bbdd589d2b7312352f2690a649bb010c089d1c533f00c8bda41e62efbcba25043956a40c760778fb76d9b95a9d2aff2d50b81e18bfaaaa2b109b2f3ebbe3a077b3590fe4343ec081f85dc38c9a2867aa7ca6a88611182644dd2b829b492a3e9d0b40d52d8798aec3719454eda72bf5cca826081a2760c97e76a9ef88d80ad9bfb25cafdde1f19248d87474537df36860e6b3220431916c58a78029bad8ce1cd148c71de340253f179ae4d57b923d38e4168ffbf1181b4409e4888914336be018f22306d6f6f572da09b89dace39427627d4f5f455d6b8691a862fd5e9f4c93b19b520db41001fda0d9abec14605a2ecf9a9125562c08830d888f458b0757b4a54296b509bf7918f2fe92ef73f83b063c64b45a9d36b2847fd9b1f3bd6e6432bd37e22d1e1674d4f1c866b1c101b14da04a9d8dfecf2ec27bbd9ade668c0b7c546483b9d13408fe68faa2b710cb8ef408c65f6546bcce6f33ae03",
|
|
"output_hex": "00000000000000000000000000000000004a000000000100004a000000000100004a000000000100010000000000000001000000000000000000000000000000004a0000000001000000000000000000004a00000000010000000000000000000000000000000000004a0000000001000000000000000000000000000000000000000000000000000100000000000000004a000000000100004a0000000001000000000000000000004a00000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000004a000000000100004a000000000100004a0000000001000100000000000000004a00000000010001000000000000000100000000000000004a00000000010000000000000000000000000000000000004a000000000100004a000000000100010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a000000000100004a0000000001000000000000000000004a0000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000010000000000000000000000000000000000000000000000004a000000000100004a000000000100004a00000000010000000000000000000000000000000000",
|
|
"output_sha256": "0f469597e8631fd9d0881f01af4283b2ba2c049a04970858ce9f116b075b8b00"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Ternary/q=PulsarQ/density=0.50/i=4",
|
|
"input_hex": "a3e13a6cf5f992e4ebe7002371b1f7ec29c4bd4dc84afc55c198abd5aa83966db86d7cd065ff31209c1777d1a0df1b99d25ba71f633f6354b3426aed479438899aa51693f1edecbaeb36046c6d992e4a6018deeaef53b02e81029f3e51b4167e8261dbc7bceaf0e6ed51fbc68e2587e79680b739cbd30c529a11030533a6c0c4d260ed22b252784f3da01a3d706d051cfb2c5b32862cd1fe2262af4e4226c1c8eb75ca9c086d70ccc20a7f1113e4da59918c86d37b5f13701a4ac1223e17836526796900871a4c5b513a68e1723924fae3c360e96ba1eba5effa14e1ae75a69e654a5b501f1836fbe5fcec4beabbffd8bf13841c4ddd2d89e3658408141a32822a0267098a060e7879fd355780b0121933598556bbf91fe1e722b49adf9cf3be1c7eac26d080db6297fdd43756d5144e63e75fa05e0c063eb0739c7d4960ffa12b0e129fb3904411e1e9cc9f8cde1022478053c733a4ca99d2f49aca083d82f04ec343eec9a28ca3e56cf40ac18e24e9cd81f3dec12767d22c16aa0f5ce3392037579c069d409c37d0bbf4406aaec7c06958eefb61e75524285ced0d7598c7f1ada3e9d1e1d8252a1c083c3cf57039fd402379b972498ef2a4bfe065e1759a3bdd5845efad18050260b7dfe5648e77bf4ff00aae414e62e388f5573f99290ab0e01d9c3cc6017b16ffcd0fc9c6a137253e628d8a20240a44f5f7c17af944bea03b923a59784993dba2e938989a0f1a7d6a3e26074d69f125a1a840be7b3d56db56b22391cc42669511524be170867dd5a8a4a3b7ff332a181b827f14a15d439ff21b9268aec997a524fa6fb49f6920bfa66b2440539bd1dcf821ab351a0619d150115113501b825a3228f95f5dd856d1cd0a571f6bd4262cfdab78c131b23d8020994216c6faa652c04b4bcb2174c9866d00c1ce911a8d45bb839cf4e86802d53b07c7f6a955f2e908ddb0056f6b04e2839f97bc680bcd68111bceb948716b522c47176a9f3dc8ed148d64460c34f1da91555ba8b9e0575ba24e680f09523bad83dcce7e86b3f2b9b701dfd6bd0d0776818c8fbb10e58a7a6d18835d9bdcdd01d6591bde063b0471abc82a0b68eb9d9b526116b80338a73c36d7cc5cc11aedb181b854efcee8dbd93b5d33d55e1e8e7dfe7f8f6d1220ef74ead362495051099b8310176ee024f65a1371d4904bc97217f453e345abf0d295ca3d5e9f824605f1d6e327fd823af1653e09811e1146c590f48b0cdd2c990315f895125824accd88e4d4edfa30aeb1d9a76a0da33ca56af5c44877992100f1789fc7f37faed14418c6244118b097776571bf7702853401ec3499df3c8179a0874102dcb84f44b6aede97fb3ee49236a6f951591b5c847334b372c11d7c2ec07c6b4dcdbb6413c51aa7141042e5b6f2ce954a282b49b26f33c5042cb338c111ec311b31f116e5ce6028875ac458fe35acd2518ab89b522e2baa7d6b2de31a8c1315537e0bf6dafec1f7b56f38987ffefbff1115f681a13c1ef725b697f6b15dbfd2bdb9f55a4d6ff4d5e81793ae2ce73a67c6a1f81cb0c4b15cad0ce27107cc5f9e799ee49f78fba142be42cb5eaa2becf4cb5908a5dd868677057a547b8ad0ec069ca9c48821875a1b5999701baff6f39e19a530c7f548c88d84dc3c99e36b97224580ad5004c03c3f55cfae79ad026d1eb44654fc95111d2019090d5ff51fbfc3ddc38b1cb82c505d229ed1014e045bc8023324ad41291e1744470c5ac24c1de564d5e9a23ad84fd88a1e691d9f155ffa20ad8dad7ea1b17290b25101e03525a2c3f35f6ce9ab697eff46e9d4de5b3ba4f465f7ee7f7e0047d9043f1fc9987e2da8dfb83e1523d3f18b74912132a9a4b4dbcfe86bfd11b76fd5f33f2b5e203d490afb8c70dd10fd991e786c80fe3d736edf3b27d9ea33223addcb08f25c073ce95312f4d2a44a97fd7fc15d9163880e3c6b3b011fbc7b2e9e43de14c216440d47ae517a1343abbb1f10f6cc414f61ff128ec7b6c5977a6d1c5a8b7fac7b5cb16510f452871bf4a48bbfeef32743b5ca4e59e29719b55273c578a8f92ef81048adab617087ba34d38a77a2239af8b4a7958022f7eb4b7c23951fedb56dd5c27396acbd6f7cc649d613ca0fdce532d6a2c71013bf742136d9ab6054aa34da25cd953bef31abd4bc9aebab40a2675ea23263f4385e5ebe00b3f0af1730988012f9149f72dd1a66dd0f5e9a51dd9ea55e9a54f45ed6f806ffb565090d1edf31000be25a2b80bcab9cefa586952ddc0cc0ebc26fd4deb38e78bf8ee9667ce9e3028e8ffb159cfc48a83a26b5ed14bfc5d6b085faa92f812d12fa74c77b012e08f9f301054c787e0882954e7d0cf94f09701d3e5bfdaae56335c779427c9b9fc3ad053a00ae294188479132a725461e3dcdead5398459bc81f0bd9045c0237fe82cac84890a2c7ed708f27a5277386956c1e941ac9efd47244447f5e8797c68b1ae045cca41d69a17aa2e784ad5459434adf6afcf2f70b79586cedfe9542c28fd2c85c273e8d3d90c8a3f267fdcdd830f888f55ee26627fc45078b559ab27d87d991799f5e72a0eed2c9775908da9e36e0591b9e42677e6846f00f5015e0a10f652984ee8d643273994fd51dae26af0b87e87b50be3008f8c104a4fd2918da19c6dd740f6f34da9b89e0d05623e6c4a38c4523ee82577806e1dfb37da3a7936e8f30e587e87daabfe71a4a827f6ca4d544f9205cc2d174849036a460045f9bab702af31625bf0c0858a1357686b192161d00542c639fcaad9ae9ded0de9323ecb7cff05cdfeb71b3e42f65714933dbfb23d4029dbaa69cd84321d3b86964dcfc42d3a91160bb3aed25fd46b5670eddb7876ca8b319e68e6ba0768a4f92c3c2052f4af4914ca0619422ab4813fd44c7993c21d9d9f4a3f32722253220b6a32568c0ad437155950b89d7c152a5097eb95cf84c35b4021ab07b0cd1d92fed282e025c2b76f9f44db63d568404a3d009e9bc378bd0e99dc8c8c1ec962e0a7dc9540ba1e3d2025dd36834930267322c1380628dfa11f70c985431ccd6d50b9bf38006e1da9212b88694f26fbd035f79cd8d9fc1f73555687d0302a21d905bd7fea8096970641d06125c9ed061c4e2e727cf1f2a9b1bdc30323765d1e47be59d25cada783e2a51317f8faf87d030e7b6d2a45de860859cb61aa9235746bcc4f0d8547ae14813679ec34b64941b85405349151e0c07f5b23f4e524fdb1b492087798e458136b6324792990fb126cfcb51999dec1cf00d1e697f77b7ecb70fe32b8654d704203b36fbf97b3148b6ccc1a5681d3a729f30a07075e9d1cd208f0d64b2855c1fba8f49e49685f696641df514714083cba5ac493dc0d604f1de8f687c306ec5583073028dfb46261213fb782bc513b00ffdab42b87658bfb33e3928bb31ae5f3fbff4b512de07575c8b0012657ca2bab33a606c09b874e6bd10d5d3e063e399204adab4756523ac7fc929ff77f9401b465e7fa8b57a9c678a1d037afca143881f9448a35159efea3218b3203bdd600f9d3a95cb53ff878faa357d74ceaa22f83910a459a2001b9f3fd37172600b03485617667870f6cf6a75b0e6985d940e3abe55c352fdc4e9fd09a9550470a9c169d9ea67572677ddafd4fdf7ca18211c074d33e2740fd3bdd772dd90aaa8cb9016aaaef1d8d36c84499076153bc9de53bb0cf069abc618a7fffa2de99991e73cc8baabd5c020faeac0266045cd94c3a529c17ce54ee0112b01224d7de69c5a4b8664d94f1a0dc463700930f23f66ee64da00a4a2e791bed38dd09db3fc4ae2c236c323ffb0bba21460319560d0648737f8efc43df73d780dd5da411ab15d925e79a6c3b1018529e5e0d03164de97bd9ebc587a5284d7054f1faf143fbcc56992a481811b40a674d375647b7557baaf5e19b511eb85f4a6adc3d0efbdc76d893efd61fdc2e6cb7909db3d28460669cb68d517493cd11c7d2ad5dd7b2729352cdb6bd908888c193b76b7ce222c982d699215bf6abac579cfb1dea6e369b52eaba3d22112460102971e0ff76756663700d8cd912567960e690177fa9c1a91d0b61c518d319b84587cc5ae7e078ab90b472e526f9cd4e4c16a9da706f3da0efc788bff940084c7f868470c7cf421e2ed7d86cfab4ccfdf0823707ca98c4d9dbdca18874d41ca86bf253c8071123751574271389f53ffdd6683f0ab01af32fd51a73747dccbb2aa45f0283c174f78e58b5244aa130aab1ab0ff10c88b4489c04a9f36d1f9ccddfe4c1eb52d1da2e008714dcd52d59e85642bb1e44f6ba90598b50222047afb41bdd98aa1f591da6e696c39cd15e7abf9c12e931292f4c03d9951086b8c8caeed6c55261d7634665236c727a454688a65b03038401e79b4d757de489731ecf205e9bf12ae3912b58eaac61a6c80e85a202db695d1e05883f3e1cbd9f74eec20a37e9e74a7224be0da8c543f2cc8e9b320f594201ebcfe9a73c86b7dd04656853d386e681a0344363951b086c03980e17670533555283008bfffd796f4820a2a129a633f2ca30c487ff518d8e2bbbd55dad911a4aadd881410bb0212153ca4c05ad9c8879803611aee86d2fe1e4954a6329f766d18b04d356e6217d1778694a7ddc48c9051c9ffd6f261e789ec36c38975715df201f73337b55cb95bc7e9e546a807a548a61d860106d8b368f1f3f5ddde3061e017aec633180ad13da6b9f40685bba583269c3392978256e30d21079f28a585f748f93c47aa5531e1ff3b63d88a6f0a2f5f9d3d636d0760009eb38b8c374e4f85eefd0ccff80b7f035d6af82f524cc2f246b1722aebf95dd71ea7078f5ef1971902c9b32814c530a606efe106b85dc4a60f951fe61285e180c1e8d7e7941a05d89b0cb134fe3cd619d015c7635bebdd45604fd6c7a16f2ce01b34afcb461750fbe82bf621df91ad5a91ba34b352d6b52e6914090891b89c474720ce31fe266d452090ff215bda12f505f0bacc7407d69fcf36dc4daf2723e86b3d5e535a25678eb84c062fa73706d9e06604ae5ff6122e56caece9f1d0770dd6bee9951f377f964528baf0b631c1e9e6fa24b569c441499e059e0c9288dfc3d8afd11a71ad64e4136c1aa417be32bf7c1ca73f51627f9a4b600068c79489aa72c2aa28e9d521a5abb855b27fdcf60d1cf325faa3ff6ef93d9bf5468131b78e12b3ea5abc6f1b38d8b94dc75d64813a44b551c5aeeba07abd2795e796dcadf3f2353297fac830f69cdaa53c555fddfcfaef9d033551010c703b0c70387db9e0151ff46bde0687157f141913adfaea103b1f5613e7638e83e8206b675a4666ec8db689f70e5be9140a524e10f36b41950639156467251a26c731a9360ce5fa12055e7dea93aa47147896cd9e9dfd9175783526fdf76d9141a5d5bb541ebe11c4e8f7f730b36ce5e96c9661ff245720586b73903ccb5eb4b81221784b0fc73c25815b644f2ac69119a422d55333fae941d5c2ab77f8aab6fc0cb3fbb8f972f94d398beac1be55abbceb27951a61984c36c018edd66073de7772fe1ee38941454540a6395b4e0b2b1d239c19032db547941ab5aa300f5bab1b45716378020ff83aedf9206053136ce128267e1717a780262ab33667bbfe2ac5cf219e86ab1d4a967d856b5cbcb41e83c76755cb2d11f3b60d77bce2fa344743e6d61f3cedb9abd2db4b39f104abcd8b10ff91d0d932147685d83cae0c820e090ace84a76e4c930a5b6da50ac965772341df605a02699193e94df711ba2de166eb29f6f8c6504f97dd86bc32d47a60e3ca12b0084",
|
|
"output_hex": "00000000000000000100000000000000000000000000000000000000000000000000000000000000004a000000000100004a00000000010000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000004a00000000010001000000000000000000000000000000004a0000000001000000000000000000004a00000000010000000000000000000000000000000000004a00000000010001000000000000000000000000000000004a0000000001000100000000000000004a0000000001000000000000000000004a0000000001000000000000000000000000000000000000000000000000000100000000000000004a0000000001000100000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000004a00000000010001000000000000000000000000000000",
|
|
"output_sha256": "104191d5b0047a14b13dd0952031f9d0d15a543cf0e2ec06dd79d4f0dcd02c59"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Ternary/q=PulsarQ/density=0.25/i=0",
|
|
"input_hex": "bae1deffbc395baccb3fbfef72c9318352b07e60194b806e41faa39e7a6ddb8363abe63085adaed1693e35831202f52535b7b0393607f1117336bf3e679d09460becc7d8ae66eb7e95d68ac3db00116f9fc5dd6a40b48b9caa235ec02957a5df3117de77b9d1402f19aeb7564f572e63e9010242914fc46b580d097c3860adbbf9231444030544c1cba45ae4f2ac4b3c6187386691e0c782394ab05c9ef5d577259eda42b85e493c41a7fff9a61d5e70b644c95d927f70fd5956de80952063cf668dc5df5734772b47f053d5e1c2d7757d64e09b0f4a20c00d4d291490d00ead52a7a22bd55656f1b1e0422e94ea50b59dbcc5b914e0b4ed467f0380d11bd3a76b430c230150a0482317d939a8c0511e30610e37008c90c41a9eb40be698af397eebb1d86ceea6dbbf8857bd461dc974efb7357d9e804cd3bb0b1e90366c37cfd14b1cfb6879a9110628e519e9c7891a7c9e3c76fb2af37b08c0f7a2565f829266e41bf34826c53da966cc5da4f406bfaf7d4dfb4d488f7913d176aeeb02aa4ad4a5990e4d2e0495a62120c161630ba138323a084354ecf50b9f1f35dfbdd06c4fd743270263550be1082eeeab9ccdf6599614edb478982f3ab82f6f0f8d9b48286fbd4283a8fbb42bf7f8eb22658544254f78192f1f45b51a06e61af3d09d586494f3515de20ac400385c56712fea51e6ceb726d51c89b9f0843fa596db299495f6e0e845c7c4eb3ece17bd515ef4afdabfcc76f40e8feb40a11ee94a5b1769aaed717b0a146cddca261aba13e972306e6343bfe7b9c4acf68350a5eb11898e5819436c3721364c67612b621506fdfb37191e85fab17b6948003d78c1bc6e481e086296708d1343d21199385aa3544a527d5525a78557fdccf69ee12d3d96270dd5d880d0bd5c142cbf7d03b3085367d90d6b784d2599e35d56f3e26c984e5c19a7744b8ffc680c761d228416c987b2adaa0c2f3fd7fdd0ddec7fd7b17c39b64ff18c044db4bd312fb9d4eccd9f43a807181ed371f963f99e7cc914e75580488fa8a62c8a30e5b8afd7ba3dc590b5d0883d9987de09ac5cb43ba00e98e645353409b2a05537be167dc5a3336814cef1be9be77b14bdd9e72865d25c86f44138fc3128fa3c8dc1a5f922d5bab7af9a6359a97694835961fcf2a9a07281bdec69f08d297603552e34ed120bce730f130aab392c0c2663630aed89ff2d636373fb0a8ace907d9f181dafe07b4102a2c5c1081db317ddbad8cda51401de209221416be8f72b9a0ac92627c6ccd10d60db3826018bb641740fc1a837ac8c8c8789e87b1f173f1b8793f4300eeee8035d2c2c60d32729a5ebac4d7ca95d7983ab678a7c69db97fe36fb46141a2b1508b2124010d6aed61308a02b2ef5ee7486bf2555ee1075e20e237667bc9f2ab686770e03b75da5692821dd42bcf27fb98001c95d28e695751720e675a07634267f79f2ff89ea4a1e33621920af80d489093b6d8d05f288128c50d73a7a014d202c2065ab9b7d3255ca42eb98a5ee11079b5965d548f3e05b8183af9dd4ebbdf11281c794be4d562ece204693830fee28dd14fb01b1dc96c1049b5f2ede99ca050cbb689422adb4db6897af017735b909a56023addc5069e4aabd14a5b42dc2f33a2c2ad5613343ba7ce70b71c4ac27fea79fe2842622b6a32cd8735da6001c6cac1fc52dccb104cbc19dd7e0ee18008b7b3a782a713e9c9a91162d0c379a1d4f01fd800d43376c09d766b40fd81b693dbfd027ad263886c135a0d56ec9dec1920290eebc92fca25fd3c88bda7551c8ab0b422ea302e45dde04fb40b180dc359bdf4090a18d2af2477fe5219de51159bd0e878993e72c90206de6de645e8f2a667d47ce855c2bdcc49dd233d85ba40e508a2561eb5bcd7467f4b4b69359161cde5283afe0960278fb65ef6be254cb29928d52ce40a20c78f8a8c0847a62c86d084d0f0deed612c2ddc7f6a094d9bb574f5ea234c029c1020cc949580cbef6622f779765846257fd7e54a67a956d74236b1403722c91692c2560df9524077a8b1515dba5b08456f2f920d5293b30dd6fb719c9c7998188b4551b5ca3df0db49b9cdf249b01722c79538a51f16467dcb12e495d88c19dc4f33e252d243eff6293045c22d40157f415b216cd903f1aa4221277b0e4bd22907948753a8139e3c6086a2d233551dbe5ae36d2ec65e0761b8b8c11fac877bec964f8b526fc914d76e9efa113adb6568e9ec8c06eade3b66adbb265f21ea001e59c633d39f4bf03256d05a446cbe54f9c0b56cf28b8de5e22abb124d35d2416d8029cd9c5c5ccd857b813b0e3c952220126e78a6f19a1da49a20e645754e3be7a697fdb3bf6318eda3adf9a027f112b7d8e194d52f425eabbb466673d76d396aafe848f101b6fee508266b309bf9f18d323a1ced0bab041097e52d85cad8954d99c1182ce2ded87c7c9a70b294a525891c16aade0999400de03c4d672c1a69a6a181ec676b3c72aaba864400dfaf7fdd685177614b1ddd443fd3923ed3dc2a944f6bf5fd89474cc0877abf06ac9678fbbd8111d289e1329b3c544b3ea4bfb6f833987a3accc3532fc594cc98c15a659abe760ef892c8477bf8db82dfc6170ade3d357be3dfcb23803a76e1e58891c303f3b4c177c99fc85b7a09fe4c0691fc1b0cf03a6c14cccbee5f3cf4ee1888528a2ebf6ff5f23253cb5d4bcd1a5bc2cca5e21a2a96ef7f305555c3145a0390f3809236cb76d917e072ffb977782bc164aa2f1bead2a2175050116570073ffd97a55a56792d794d12545c1dc2a029239b89bc269aafb61523749eaaf3ab26271101ab9670b1b633959a7543db558d3784c295998b7aed4b62e532aeb488dfc73196326f0fbf68fa751aa52a9bfac8320d989335761d73eaffab063de6b4bb583d5cb2557b9856d3a70d0f7acd2dc5f69ae840b3ec089c6749b7a29e74cebeec483393ee416079c966c441408dee40a4bcec3623d1be65ed785c4b465591ee0e2cebb28a659cfbb80f1826c170a272289ed884da520c45794001782c24bc51083a3e38cdf676a993968f187bfdd893e945ae5bc399bfac450e5418500e1c2b5726457afad2f4d8eda5f2066cc9b097f8cf1b63c2c2ef7b48284466fcf616df0750487b9f8870ca646ae5096912ffa377e78883b70578b64041ed6df9c470510751208f71c0a56fc2393b945c9632f48e988b759d5d32b8c23e5c7f21724bf5f6a6a4cfb301f58b6c18cf09bc737749a50207fee198cc6279bf49f3e2e8093d7ea23d1786011b9a0388332f4516394ee3b6811770d06ff002d02d6f3e49951af3b5b6852780a6c1f3cc15dab01c4f2fd0509f781be829289196fbb93ef8ec9a2df2476c5166f432ed91e3d3767276c3b4c6b32cade865778f8ca6de10c74b17f7e4a331fea169ebf07df7a867e815fe8f7c6baca6bb482e115d4ddbb509012f9228253d5ae637f16c1de7d7c71812dba4a96867cccab30128cd0543894c63ce7aaa88aca94a707a9e930afbf8b92d5ff23b37e733ce25429e32e3b6cc0f13b6a84861ab9d6507789b3187a7169929dc88117e22d7efffc74891fac4751e54bc23b0bf79c351bc51662dbe4eeff073a809793d310f1034dfd008d42783352399dd5af1713d2b48dfad51881b0ff986fcdb7faae1e5c0e5cc6e1578ae5ca9cdb16cc1f0cf0dd66759a5c8ec277ed07f54987aa263aaeb78e6aa2e608dbf09c1ae820e044fa3da4bccaaff5ab1820479b540f2502d781e5bb4417ee87d6b62f1fa7c36b68e4b631ed9ef165254e572304a5b7b58dc4ec3c743b8cd0b9fb90b6ee34b5eb009ddcde6f3e404d3b07c526371d36fb04a4d5676c7e8bd70d01e1a9383710ca5dd9e8b440eda286d499ac9955e55f319f992dabf0cbe7346baaf2634b2d253e3268bb5d6a730b3da38bbdcdf3b5569e90a9b9ba499e4ebe5c38e426d8b3369a2196c544b9ce59d7ec86012549e80bd1f04321fe35b4050c461944c272603bce4b4939d540a7615974cae4455de3ae6fcc7d2a7eb8db639c17b962969ddaa23394b92554de21e628f705d01aa1180f21816db54d033176a3a537dcea27af05550bf38c5b97998823e4fac8ba584fb006b2191a5fe886176126a47e16711921f04d66cd89aacd149abea7b9cb8923660f8e0b1f1e0c7deba3d1655d966bacf74247605aaee9b9c1f2213df70777de757520230c660917f00ed942a71f002631e67def0cf7dfe4afefa441625c225b207097462d62f5b33f53c66bc378c78449f6785b0000f59da88302c2c356e763043beee7483c1ee6fe12d0ed37db9d13aae624a081cee961a5b70defddf3a937a99f7eed2d63dffcfaf827b2b5fdde0eb61468e6cf8250d06cb45465cda5657967a4be8b3026eb681ed507afe3a689965a3eab0f61bf98c6bf45372c94a23e830be6ac89d787a1d089e3efb6dad664bbd847b6f97e1226e690e59753cc17aa5d3445f93511cebed99cdde71b942224d705a55972404a62b81b8bb5a36755648a9b565959efa953e6ab0077816262e322f2c914b7616eab2ea9772de441c6b6aa7f4c8ae9e12457f2bfc5c09d16a9528f22d75ca70f8b19211e3210a1de27ac4ef8627aae4fb7acee575829cfefb7a07679ab0a6c02263e1a06c6e283b0a5eee73768c31429aaeec843db17117f40848b2d55acb2f2ccb5ce43435e92473b595a7afa6bd0c9ea2a9500deab7efff00de4fa3fdb28c8f2d76044d61bc8cfe6971e4e4c8c1ad162cd0d3e9259a350bf07239fd8cea38ddfc57be4fcb54f1097093471f8c643b365e4456a48e35ff42d8b1efcb189711d7f5f70af4764dec51de8fc649646269d869634387facfb7908e3fb0a12165904be4e45322c10e65b6126ecdb1833d1d5b957bf23fddf1c7fc9f3967cb3986f0d2af13a07800cb95c8b1bd202c1f339f73db78efc5280faab9e27cc94a1c0ad4b176f1c1e8a978420db308a4a75bda8ca18af9f7f74e328dd8447be8444b3b8b41669328e4e40280b7775976129e31c6370a65491f5815a034e559d7a950e7175435f8444c988c82aeab7ed3bebcb78562588912ee62b705325f8d0eb456f7328e202a1074e4ce7f1d5091bce8fbe5985050f8d4b970f3b08628333cd642ebde76ffe7a7f9b600a7788991bc3bcd110262f56a9a230e182f16a900c898c9b7e9d3e20111ac2e4dc49f103dcd19f9d1fdb456af553eec941e75079c793b02c6f9d60a2a24638e23a230572c6c358718d376fb00f0b737ac0cf4448612dfbe4250eddf24fe5a76b0b8bf0fa7bcf2d8d628dc33f5e7f592f51ea4a69490d2ae8e6d859ff4fb166f99587a18c908391428b30dbbf3c8e9e631f9229be46cd3393143b3a2e2ec03869e0ec3d028b4032dd3ba75704c8d611e6a9600b0d8e251cbeebd990a32cab79e824c5d3df63d2362879553e5cebb69c02ad7e6b60571a9fb0b74d6a461baeba69ae50deda1ddd018182e8998de8991685fa9d83a16a3365c79b842f6e3174ff1ad01ff98a127efa09376e3b6ce68bc1f3cdb1cd23ed548bc8a5792be74f1f03adfda8dc32918545bb84632b01d9b929620d547f0d76128ce7c59c4d47be6fe03ba49a629d17fcc5fcd7195e3cf02785638303a104707b0f22f8bae4cd1ff47efb585d0d25e17443d2ad70abe848846f1728adf2099c1195886092803c51ba4880815b5a1e4a4c903423cfa20b3c4920df1cc1798e4da9adf3b92014c6ac93ef12261c419c898f16294771dea5999f5bd60387f601700e00bf2424dbe43696b3f8ba1855187a18",
|
|
"output_hex": "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a00000000010000000000000000000000000000000000004a0000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a00000000010001000000000000000000000000000000004a0000000001000000000000000000004a000000000100000000000000000000000000000000000000000000000000000000000000000001000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a0000000001000000000000000000004a000000000100000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000004a00000000010000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000001000000000000000000000000000000",
|
|
"output_sha256": "ed30c0075811654547a98bc0a0314e99925f87dacf6ca521e06b54853ed17ff3"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Ternary/q=PulsarQ/density=0.25/i=1",
|
|
"input_hex": "d4c5bfa004935fe6f2d90e07841e66764c7a23cb64f8925ea9d5beb582befc7153d781a794bc54fa32f985e53cf013943075e9c1ad4ad2649d2751c089c4f9dda213bb8f56335cef08bb8248b121208aa6cd931281660ef830bcc6736ce27e2ecbdeb366c51b7b488d1e18b048bb97b6e7b2c30859106cdf70000be572f6a5b68e27052f1580340c33d5ec09601617f079e70096c45fe1a29179ff07b893e0c7112a8402e7a550b2fdeaf9b66e27adacca64dbf86bc472b2952ec16377c5b98d507676f8cb309f126af16a981b9198bc99ca64bb6d680878cd49e8b78d93d5804ba99c92b0c086cb92aa1c7d1809995421a81644060a5cbcc3b0e4f4948cd8e679e392b1771891f61630ac62913a0c8e16c6a8035dfe783740567d676d5a9cdf64f51e336e913a95109b85935732cf273e557dd646ab8b296c8f12dae7cae969acaecc7fdd84c9092952a00458022fdce009af93dc0e02ee48aee8a836cc5b7f1190ec5f11858b724a7ddbca8d25e54869650e6feaa1060ad2029fae6deb3f07ac31b04a20b6935083d1caca48632e3a7fcefa0e2a41e4bad083d2267ad3c5b244a78da7a881c0bb547eb99fe3c0cd7bbdcb5cafc16166075a26044bbd80b3e178989992fc5074c4325c77a91578d76b217bf2ff9b5761659e58047f920099dd8edae19062ce9ea8d8d19b73cbc1ab55604df9380c546fff8b0751006df8ac664f272b9a51d77552a29a0f9bdb1215299b386e15e47ffb3ffec737627dc395fa1a8ce21f826e0434a6b92852d8fc93ef6efa50663daa9c0e2559413b8420f74f86b092b70fe682c25f93339e78a12c8486e9cbadddb09322270bcf9abc318f3410312e017c913433efd461c5e9ad4148b82a11f1fa82a0ee52643fe332389cad7043ebd6e64a219f383fe2b4e1c9a587d69c22f0c6db487ee1b06877ca09564422a37ec6882c32fd7280bdbdb0049c105148bb8e22e5077e3d37a5a10efe3985e80fa7999689017553e5bb203bda17d9f3d26b33ea57f510d13c2eb49f7b7d4ca2c09950aa70bb746834523c33ba18f940a9c2440155e20cd4f647bc2f21a5bab6cad20c305d0c2f442f100bea46da175ff6a6010062178f6368bebcb97b70cbbd0bab9c9a08dedda868e56ac46b4ee4c851c6538d738b72b8c39f2530362b5006072da4741ca10ae77eabf2c591923f0e7669ccdebc872f8e1f142d652cb24481131114568c9dce6cb8689cafbb23f2914aed0b418f4c8ef2e44674f05d147b2dfcf0cd9934913d6666bfaa36e46455c3f67cf39a97e729513ec7206c79443d7c19d1d3bc2b0c0268849b400361ed2091853d1c576f33b256a53571597b091a8384c1f530c7c4a42b6c03d1d6d60a302af5dc1868c9476867710046eb6b63110da28b26df44e64c2bdf3015f1da9a547fd7ff05ef22ffc189b1e7e783bb6551ff5b9cc9811bff3816ee48196a8228fb80ada1c86dd618fb0e10a889310515ddaeed31a6c2d807565f25ebdad9df1bcb10ee4a36177309ad5aeeda964face3a3fd13d5deb094ab1cdf498edcb81d758f6b1063da9416f65eb636ab2b92e9fdddbcac37f2d148ccadde077b6abdbe09ca3833406a0ea042ab2971f96a7baa74e34bd58e3354136f1ddb7f2303e08b3e9108d6903839698101649d180da1180d85de0869dccd88fb5f298bb56c0eaec141e9e75556af13a0ecff19d817d36ad14fd0a1c337176340762fd4ddd551b3a848b120b6f340af19f1365075bc1516941e64a12301770c436214bdfb6904eed0f60bef0eea0abbb5594a71c936d9647242c29304fc6cc94d0dc6ab585ac8e37ad1b93a897db6ae712cf11f572c88af2a90f82b628739938e813e9bd9fdc69570d7b0b88958c5e1ac38b0c72546b3a2623e4b65197c25acc3af34cbaaa15b017c88b66956170d89e9f02b599d3904470e664c03f310a6151f8456c06394473117c7605f8bda0c523d9d855f59745fb36249fafcba74943fbd5b24435c90ec57bf18995f781bac813950343f9e2b890f4f6fbc666890650ed5673220ca4f4c543f832bbf29d3c409dac6fe264da974aab28f8893d04104797fb55aa7d05d18464d0fd3bfcd203bedf258b5fd1b38cb0aed4667358f2c095e19551bd1e8e0ef7d50c180f3ea3c26710fa45018b3902e29c480e86e643b507a44459c0d3511824fa67ddb73252f60e17076734d1c201c4afe61523af2032d507f018f58866d94c82207eb4a8143d2d7ab2184f7fdfbccfd82522606785f6036a7d402b92f12eb4c7ea0876e2486ef2119c073d94d628663b9b03cd11a2dd61ebdb9b61d9a2d2d9887e5f259d8d8b8155c283dadd1986716523c122476113cfba8a9a75b6eb3467eef6b05091bbcc4d160ba81b3bb46ffc1003d328a6073717f5b85b1fc319f8c8ca12de9bace0bebaa54bba0e81358bc3338897dc33e803529d7bb8adc4150887b84f8250acfb459578cc14680352c5ff8160bb75ef623c8b2ef6fed81f8b14e9cb6a009eb6e59e1fd7e93aef9577b52c3148905514d4512ee41745d83eeda346d0a55d1bdf97fc214fc971004f655f48b2eb525b66e2ad0d00f56361bc3d2a8cd5288caccf34ba4590b0ee381b58f2356eb0e0b2b4d46300b5625f4abdda97edbbdb567a126804c574eca51040756a5a13202036f20564138fcea53414f50f4176779dd204cc5188ded8a9746a763ddca33fbcddbf07f9579bc897147ae3bfdb0962514e308e66bbdca3513db18b3faa9c7455f9e30dfb4e3d0c3bd47142f0092d7c8d02277c84982abd09b14d0f066e5152b28068d6c3c96a4f82697ec75e0756ee06d1ff0d5222ea43c04da894e1714ecbbd666466b08e78d2843d9ca87c457281fb26a1bfc329a6e85a568ea13e5b624b21c692b9f88a2b79a548a07ab8080d06e3d12274290a73f981d4717f131af34ffa8898d0af09f3a1e7279a4950a5f841af9e58bfd6735a6fe82f03c298d72349c2bea88ecace11d80796b663b91405a3698fe85877a2deb915d58cf8621909782e02429dbacebe7615526e8d728da240f27f93181b3c0e3272d88183c9e08c9a78979058ce5b66bba77b0060440acde89f02fee4d614be1db436c60328f441c1a8e48a9923b81ab43e14938db72caaf73f2709b4e04160dcee24782c6969a5b204aaec3a98eb55706ec3dd6544c5d60622469e4c0b1ea8fa8d6994f683b1dca397dac980c80979b35657712e73bfdfd2d607480755f17cf2f715cfaa80f02143e07a4d28cfb336e7a8a564d2f22014e940553851af139f7d8075e135e30f9fb5f9e704479a5fe3ad6c4a222dec8259159521218102f120c52ef1e39d1a8e65acfb9534993b6a644c8b139f736ec002a04259a7123306fef659c6aa23957e3fd119a1599236d84156f5a8e3904e56bb426b186eacc7a3d085589c2f324ff65085007000c90be29467dd6d15f4d79073e1bcb826df10d54885bf43b671dfd16b1f4f620771970c244d597133e3419d455d04d2127447c76e1b6756be90cbcfc312cbfb330f16a7901b6285ac3e61a72990a068593eb00e7fd8304cef0021add474b49510a7f2cb89bd2bcd2efec9db069cdfb9436cdd1e1317ebf4b2cccb984ce245e785fde702a7fa05b7f8e0b8905a1e83dd4d4517c32999d8e6f454e8ac123f689caf375cf4c8cad1fee0c8573a43414d0e0bd37fb175d26422f71c73baa36dc37152a21e75a1e0f4750feaf50bc79ed9b04ecb41934d6f077b2c01c4db410a716d9b94fdcb51a00b1eb429597318f99600ca7bc990b3073e62704c25365dd5feeb7e79abca521ba75915403b609d78c3bd0cff63e26e109cbecc6cbafabe2335777b7d51e3c3bbde1f0892f546aab3e64e2864dbe5fe3ae13292e26c1349eae29d844c8401a8404e0fe0bc4457c191b59c83cb6f4ef1510d372e976ce3828e803919105630eb8b73ce3ed15d708e1bd8b175306551b1da0e70a80660535310fe13bd031e21319f19140e61a069ea3f56e4b6f0b93c9049d135e1d9907b5997ff9fa1e76872b3fe17886f7ed89230f7892e8e4f79ccd9a25e8dcc5adb506889f007ca3464a72086266a63a603855ad13c55d724f78d9850551946468074911184c88ec99620bed09e60a4ba14d9e9f36529503b9ecf626d650f82036580ab7bd57587b56ada193e833d324076770c02bee67ec076521df55932510308bde8254a6011cff99d059464178feffe81065b63144ae0312251059d3fb197b3cd25d6fbd1a9c8c37da0b309ab10559bddb040ff1d80ee939b7aa4e8d7007d313c0eb35d43c03e5fdda52ce22165b4ae5d7e3018709e3605ab47dd27c51d86ef25e9dd1f440c101ad4c0f62432a31ff5681432f94eb44d1d44686feeed22db07a19764fc090279feb995171dbe9f3bb7ec8e6ca981c9322913be6c8aa521eed4b85ba264163b24841ef1d8e3544e98c9a266fbc855d9b49cba361602916984c3dbb40d190a9896232beebbe907b287364569c29053b9e0d71b1ba78d528513dfedd10cad37b80aa83f10ec079a7778cb6d89f8edc5cc023d451b62bf368af2e529ae760c9ce8bb94aa90cf8c1f20f8ca304e0387153ce69629e3f8e89908c14b00d426c39949f75e8b0bec3a06b2b7cf2f34a9e04c602c7b46897874009f3c23b4aefe8a98f41c23a637bcd071b96bed6d91ae314837a311a3d5ef45057e1136d1a21e5ee982adaef18db63b8451ae2f75ce27530271ac91782b56742a5c08c75d67dd8666d54cc0c2c71ebf7899e76230318480461663e5afa57c354858d6cb968f9a2447be9db81022e1f38698c0f259c3311efadcf6c8236d3b5acdc63723a941ad4e85a0ef797c5f91705659e1f901b8e51b982d4e93668993b06c9c8573d397ddecc69bc4b466ca6ad6721a022d959f0eb2cd0e48d2a280072bcaeb74fde741980b129d0eb4f5156acadd66984bce6164507175c7b1baa5175d02e37dc2be46be0cc49b47e279062c1c97ee39d8281e48b01c6e2c999937a9094d5bcbfd6e0fb1c6cec084cefee13761d6063b6f7a423d775ff7a301640d90e893cc21eea48338a3fb4d5ad31ad104ec8e147399f1c1597e8b56d2f960ceb7a0cfc3d10ef52bd9c7b6eecb89265ab3a2c2996bed6de6f22d8386b6ab71e7fd9fda50e103f936e883788a189ca58eeabe91c7fc119d4773c095e862730977a09a86cdf6ea6e2a8eece2cc121f058957c9bfdb80f026062a5dee6424db29c2cfa9784ea18fa5200e6b197e81011355a718d143c736ec03e8605ffeeefd34c98e3f9e0f66dd5fef0ff8bc43f38b53fa465dc228321f1c57dca46220c3c28ccc907a7783ca73367d16b0e4fc5665e37332e68c82abd6ba36ceebd86d1523212a33d2fa597da5da8c23ab68441eaf6a09b04917cb54e00fd0c819623d136c142f1cb972b6f5c1cb53965bf926e1ead8b6740198c531cffdd6b6d4c148b2f926e87315ffde19923316e9c7da55b7939d15ba5622949f6b07585d414b594e7d08863e32c902d1709f589a04fb957dc4e8263e0bcbfd85d3ed0d16a5204fd765aad3dd297f53fe9175d42db232411bb0330b2881bf4d6fd962e07ebf9df976b8773037423032ec954dab6d0184b5f8fe462fe402bfce989cf44f3cc9af4373c0fa85984a54212f4641f05d7867f73100b29148d47d8ab75433b81c4dad6bbd2e02e3f684238162a701d56e00773c06bb4b9d3d3282d6273c47eb916844de233d99be58661bd6e7ff6946b16958cc24e307f27dabadc75d692d9332217c7d4cd334e2afc5094366fb7800c99",
|
|
"output_hex": "00000000000000000000000000000000004a00000000010000000000000000000000000000000000004a000000000100000000000000000000000000000000000000000000000000004a0000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a000000000100000000000000000001000000000000000100000000000000004a00000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a000000000100000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a00000000010000000000000000000000000000000000",
|
|
"output_sha256": "846060c9f4420f36c0e96e73529c9a77c4f73a2345b1cbb47965cf890b6ab8dd"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "Ternary/q=PulsarQ/density=0.25/i=2",
|
|
"input_hex": "b3b1687e688b40b07e6b719cf32d01efe93b1a3c5018f01337a477d3a864fd45d6ed00dcf9af3da8cfddda80ab9ecaefc722985d1f17fdd0310b92af828696ed853ceaf3df364ce92aad7e221fcd7bed87b0f99d54f42ef2d5009f3df3b16cf8f1274e7a8bac8b864fe7dfba9c81feaa7df4c9f277b6ca005ab2808e58842f6c107e93e8a1805f54afe5e9b693e790ce0b096637599bb601450dd5eeb1e8ebc9aa51512fa27aaed0595b41d5649164ff078d301c8274cc87349b0ab472934738a8948504900a7a44377fd55fd607db615debb351b518bd2b15c0242d35ef3047d6aedd1a04cfce121d306797bef5a7024186ba81d2e1fad0eb3a61f71b4b7f844aaee6076a6a1c2ff0d8c6e2a06c0e5f41d8a119433aa4943cff9d4dbedcc0d3277ae2959746478f6b82277e73a1c4f57c1fd12db1aec0aad7c85737f2ec8da6fc92ba3aa0bbebcc72c81ea822a510b1ca3060760f47b5f93f77cb5de894584c536147cf15923635a15219da5265caa343d1e357d16d342508ee38337c4f781964ef111cb4273f77933ef16928e2c092c7608fd6b9448546299ddd2406c1955fde4a8b41f4de0a0023de72259e79084fc8bcf0069168005a95d1f1deef0ca1da27938bd8e21c51c52df7f06b9d467b5d900793ecd9e259bcc44db29decd6caf963fa4314352af12525e65cdd4dd03c795b6053caa32d15f14f0d337d7f4a88c59a3f6d94ff656f8fd73f6bd042de7a9b94d7d4a185a68bf74bf9b5107cb2f00452ac9b1a632490b189753168522a1b6b3d4344b984d8452ae528248ff2c51442a9e35a126e16ffe098397b77bd4da9f48783abe1409148daa314d316e9c76b955440c9c20b9dd3cfc7bab5c22e183c46de02d93b5f81b960e05ba218f979de4a111906ad293321ab2f4dd54f5b4cee848d641aecafc81738c5ca4ca6d42b55e3444aeeefd5790644248c3c6f1eef69de641368851a11a3c41176e5df5c0f81999e1e98e9de65039cf5081eb9590c36f2a43edc836eadcf91294046ca7d4f8b38fba1ed69326e27652cf1edfcea25deb2d17586dd3b473d3633eb4cf54dda127fd5ab56ad719aae5a2d568160c1f43530c5329577f3d9d2ef0d60415f78636613b95dfd4d96bd97ae2e147edf5fd745eb9c4e26b22389a393baf761ba3452a69bc07dfea01cf769814917303d9bd30afbb5e4e7130986844af6451c7e3f27ac3da7978b6c5dd0355b373622d6dfd2809b25e8613407237df2f5550b47e04b9cee543bfa39f415296e8922c2e2dd5354673aa0f0be884592e21262d0c5881e2c2427d39908c3c07d6552ce183b69e7f68e44b9a25695cd845d1f2ea0fd23d28fa9c9bef7648abf3ab2d9158fc48e67f5e6e7b657f87ab9ee9eac3f0d1aec3d9e0cc930bdd455344ed96e0692bfa1bee74d1ec24152c4286a4a5da13debb811aba05eddc5ce5f0a1ef9f8c32ec5e9bc5be21e3e7a4b494a261343d912bd4486e5c9e5ee5375465268e5312dd2d2f5bfb723cf8139d9a877fd0d157a4705b1c61ce5f44adeca5fc2192259da0578c70032464190ca374b85a9ff16c4c31c14302d33bf4a769d1dd5e96eedf324e9035ff5d1284410b6eca7917f7769b24a84758eaeaabc9fcd4c884aee9374687116960a620da4763202a9135e596249fba49c504eb2a0781c3b15bc4112b9183fa7f4ba33a3b49573200178669fba5a7f9ede997bda180867e15c749829f6ade501d41470984fabbf963c26479db8be4cdd4bf656efea9da2e7e8ba920d554b81600255d3b7b842ca45e85bc7e50721635ef761524223d47dab439b2290f1a32905bfcf7f6179bcc08c3d3d897fe4fa7e26da8dc5aacf9433a478ca5b01612f1f075e125f1cff58f14507743e34f8f9fe6459fe36a3187207cbf1cf7ca0556783d7e216caed030926f73504bac12e4e74818f81031de69bc12ea7c0ba5d7db64f7da52588a79142b7dd11c2d4242dac320f678b9ffe6f797abdc9d98af446a633b1d3c89414d1db0325332a2b2e6c9fa910db0eb88047d6c7a2f595db04e4de5584117b25dd683831ffb2cb62d4760d14ee29aef4742276c6a30ce2ab35a393c38a6f2d0f217d6145ab3358ebc0d518a9011c208608feaca7d1a28dfe2146257c826147901e607ee51ee6d916dbc82acfa3d546289e7b1d36ec4ceb40b90a60f3ef90ea9e2e63e37d447f6b4c5d07a17bd0ab886ce8ce4fae3c9120cc6adc78bd4adbfa5d03ea6601c1c128494f47cd2a58ec496db44001e15600bc4477af8b773fafc8c1bd8f8cb14d324008732984355dea9439455db45762e330ff0a11faf550ecec2b3003e5c4212d459500a42c9aca27f78b642f40ba7ef110008ee051e8a5ba37bd96517944ee6daf8e2e0863ace178d6b570ac18e33b2be7ccffdc28e393443b7a060a6cab0259ab2ae00c889dfc3e178adeff67d22e49b79d636b13f26a0c2aa0a2830b3d726021fc2a0360b7fe349dbc5f5b83671cdb59ad5aa379617627d966106cd5374fef2ce65a45422744f4bf22c0d5143e38690206fbc3e766c1a40f8ad909b25a800c4ea55e4a73fdda04e55034bf6ba48daef4a689df7931bf6f6e7dd2c0fd175d7d7e60cfd97f14796b7c7a0bf047c60ce18ab145dcaffadb72f66daf7211eff0aa4de1f8bc6ba9bf698602028883d6b51d6205c2dc98498a888e0da73112a706691c90101772174c122fbfe026cf03a3c69da6cba65f2352fdbebeb833d51392a75601ede050864b1f1626c9d7df76e3d6e47b6d04fdc68ba05e5a8f9ded37981f5eb618cf6f2543b314e68b41b212186f999a09beedce0f33b9053d53aeebdcf680e7601127d96a8a2e664177daac1d1f1d6999d1d5883f407708658b1cf530ea66ba99f8b0d2bdca0df65fd64bca6621d2afedec37aa44d967157deb8a8cc39c8d628edcc065a42548715d6bc2df8d61bb4211e241814c94c923d73d63334661fd947ee29bc00674c169354fdab856feade7d795a93da191e5e77cff542d73691690093a6d0738173f5f115087f3a2b5d734854da96a534bfef225b4bd7415bb3105366cb64dbc1eaa0c33a8b48834e66e48794b2c52a92c5790251f6ce0fdd059df74dec8eff993f3a2af49a9cfe9f4a394b31a4d5b28802b6c3ce0b72454e7246a4f9b7e70bacd00eb358109d27e5e855f2840674719d8d9fa56bd1d7ddba03755a54d58e1a15181d3aaf81869826ac193856ef9db2f5059097730b45bafe34e61a47d19a36fb1d4ba25044ffb7fd84ba77183d000b96d7aee7ed098ed8271f8bf0af5d0912c2e85eab270b6bc3baed0d465cdae9c39c68d4f69ea9587893244ad7317af37d2dc1a42085c98068026af9cb8712e1303822d15873ef4c605df47441ffa296c9b58cd5105a5bb0577684154b12204caed4e2f0f919ae759bdfadf58ef7cd1956cb1b4dc4db634f8a2170f451f6ee44a8276aaf3fd231c02d0edb4df00a1d92333246f244ea996cef13c61b94ede461d4d149b655df81a6f68e98e2d8e0c370b111be34f258fa244e997cc946e6bc1b8cd82eea75f364e8dce6a84699da59f5e58205e9205361ca62986090f7842c2d9d2fba20ec5afb07bb17e5d4a983719daf83dee11fd517f8bd65415e79974356606862faa02e707245b307b58f6d359098d4111fde1478db9069502a6712f80a691b8e5e123906322c5bafab22b937f5963259ee5a9a2034e19f50bf4832e807c1356082f7404767ff3e52058ea166c22a7079e416c8f7f0f1a18ecbd3d04817b97230003ba9427c22be3c2b2681d297ffebe8e6d3013b5d2ff2a740c16df09fd215162bf624d17b6af11326b750c372a335e76a595265a8140231e04f3e07ccbfcbb55a5a8165d32667587b8faac7f7804d69ccd0d705cde2973483907da3ab628b635c3c801dfac1a8b8619f7f5507edd9d80b6ee1ab371522fdcc38af3c4a1a5670225d74cd0a33be78febc3ac2404398b7d5b760991195e56229f2025997075ec165e7e3fb6666d007ffed000c95654e81f8f4d5835e945a8d30408e53f7279d37f7dd40e58113182ec3f5d0fc72794bf2f2f208c31179bfb2f4203a18d68abeea7d6c63b539b2bc7d60eb6a19230681f2a109b283e0d41b917c039de04c6c94be041fc94020406e9144e0a624e683d7ab2bd4fd916fc209109975e18006e222b6bab4e43badcd69475504a69598774ef06dbf44f53f5ac19fafc4b6711fba84fa7ec510471b50df4e2c244bbe24c35f065a5698726a87942ef1613fe2c20f68df5d571a45f9dcd20d6a969d2b551e68e3c54b485d4d315cd0458f04ee1f8d120733d47598ff488fae42cf1f0dafa3d2cd3af0078568a467d6085f94d8e12f94457f1e3f9087d6e196e9f2ce8c75849bc3861d1aefa3e6c7c45e7517940c67113b62839d9dc9c7b608d870ce88485a838a8087b7d6940801970a064b21f06e8e8e5eaeb6df3760fdf8b641289976f3c1ce146511b7aed5ed89c65c1ccecc4abc3f537acc64cd09602b1d70d11bed1e745de6391e550401b7e30657500cbebb883885dfd23f199bd76ca0b94a1f95ed699111483365b0c526135a74e5e2e14989589a6aaee3cafa0baf5582fad13df1db14bbf8e1acc5ccdb2f4821f7bc97a5748ed20763578eebd32d1be9a2a684b8dd19c4005823b8be98c0d9fcfc4a429e872342ad6f055eecd878ad242cbfa0816d6bc24b1c911f3a6c27074cafa7576d9b45526db596449c04cdfad7cb981b15213ed7823478644f006e5b81bc6ea525ab8df2a8bba1f9d02a379a999f16287b296d001ddb89793c810f38df179b52828afdd22c7a5a43ad11aaeefc848fc86ff0e99e6e32ca74b3992b085913bb6b371cf1997309eb7e81975463efb98448978d3b16a5365e9e5f6e6583690312f797a6b7aaef96cb133f268c03267826762537f6b11606bc6bf5055f7981a4a6323f678f0f2d818b5f2c60c5739f4953bd2522479d6737a62ef253c619ab09836d5581217e491e751097033f39b80748741a85f76067a43b7d84613b45aa87e46f349fa067881eb379867f4f2a2f3a0708a0a39505a222f960be6b6a8335d03728c426dbe4be7af692406487e8215d024c5c1c9e3c0ffa7ec8fe4faa622ef15e25cb57c304c4d0535b3747fb732e6b2e9238b731c986e28e3f24b38f7d9b1270a2b242170effac9e0c21a6469135792c5074081df549d9e74b7f64b0f3bcb0066585990ccd4945733b1a19efc2162cb05693d8018c9171fe152e184a072860760d209e24a1cf3d35f8f12321c1d5059febd027af3d093268914cec4750e32d939cc714dac359f90b535fbecb01d14e2c500c59fa3882da6550b75f1af4e53865a02cd2e85d1a55dfc1553205b11014cd36992b963e0a56e955e53daae4697a977502fc0b80d51fc606c568cfd669912f475a6288cf0e42d95d9ea019a5403eda4df63af9a0866297d1989e7a9fe7c943e2bcc1dff0c24251b84b4c1b8986c6a976b365dcd7d4f4ac7c40765130d718e22ba038f3380b0e0bb0118758432d7f4b15161788c4f286a9946a53fe7025c878b1349a21f5af5b35a0ad76b5a862aea106df3002439254f8ec2215f51306689a5ad0ad740809943436f042b2b535bd87137c5b3873b945571667a6c9263e3f86d180b43ab515be768532e63f4af281dd60865f0cd99950dca6f0444ed954810ee3acbb0526e7cac5c182acbf608378cadfaf9bae740df060fc771ecf9b86a9b2dff0e14096525eef4a9021bead4f9c8ed9c003c86a1cf80a9a8f70221b55235f509daed5d08",
|
|
"output_hex": "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a000000000100000000000000000001000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a0000000001000000000000000000004a0000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a0000000001000000000000000000004a0000000001000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000",
|
|
"output_sha256": "f08ce350330d38f460835bf497f1b49ebeeb35b1198cdeb021e4b817b818e39b"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "CenteredBinomial/q=PulsarQ/eta=2/i=0",
|
|
"input_hex": "a84207133eb9bdc778fc2b5eab7c247c7fc7f159ee6ac8b262ea870f236a438ebc171f5c97d948e3474e3cc08f7e408c13d1096140ea9d16e78fef042fcc9246c0f8e271e69390ac3bed78464e9d83d0066391b2ad8bb7daabf87c9accc7c5a75bca64532e81595cd4aacc1fb50f175ef8ecbc1d410cd06eae1eb778c7c7d0a7d79735c2b24019ed3098586d821138070adcd1475e04222d68f242f460403465d6168c5e50822bcf16e3553db4dce614ed7471cb5f7b5ba70503d47899cad80e5122d1a16c1838557f604e2e9d63188175d39aea7777a47dabb50ee7e138822fd9e0453ca760313f9a79ac2398b0217070919e92fbc7d68f068e19255313c4d95a50817c3cfcb0b09cd61882bec46ad10898289e614f0ef4b46d872a04a02c912beffe4b1cd462089cccfecd0e7d3de415b97719c23ed22579e2e354ebc26147aa5b824219870213678518040fc23ce255677dad48a2bd27dd26a50e754de3d053cd948f2c821c1adb83b3d57f29da9f3324d83715c5b7e09000352a7f32b3a4015e6815111de819b069ebd93459373673ab232a43233525713fd32a644bdb389163063b1e51f69872cd7d9c3ddada22f236f84aafbb3b650bc697b59ef8f736b972ba1956be7513ff85e821fb21a2140fe40f255634d5a38a77e30d11a519712d29a28fbff04c80b0924b2bc356607e034b03b86d3abdcd3af51b063d87abaa031132b1519c81a262264a353f11b6f44d6bff12541ab247829d54469bc11fbfb8397016141d092ec46fc6c4cec047b3415b74f23f9e4cab22d0b10a87cb98d0a9e1e118a6b94a0a5cd788b8c943a40e21e64d146559db9e3beb60083194c6a50cb959bff9dd80453bc22ad3e218b2333728407eee3cc4a0a0b57ef253c9d1623b3e7df2353f987f6b5f050bbe00a32ecc2e1bc2621dcf8ce6528e2a0ad56790254980cbb56b8b2d4534b98c7123ffa8c58d9a51f61f5bdd3d75786f611acb6eb68995e5c523a338a3e13767029f9b439d0f7e22381805e1d72f7efb9dac939fb6c748eb1c9fd9d191a013ed301d79ff8f28be2cbf7530e260a1ffd93920a2a10d3cde873e7285e509328f328133cab62f6ebbe49115a4816dc178cf62991fb98066c2200674d2c8ca4c4569c5968d0047547157c2258c0cb248e4023ea2d3222ce8750ae37abcce2e4d5cdd09516bd1e2f7755fa6808d90c1232f90bcdf030da2ae68b8c9bddc9f9656a1af9f60bacd3b0346f31d225e1ce4d51453b613f64118298c8d810e8199aa550a0edf50400fb2b87630e173d01c5a5e8e9092b7157a306f2ba95ad84bac5ce9c9f5c16d657798922af6b97c5558a61980925b2c91bc6f7b881ad4b1ec13198394c557b9f73286096b9d9700e49a49927d32be522d7d8b1c6416dde514d52133063bb40fa6f881ab8d07080f0646094443ab5f980289a1d2f7329721c8759430c2493706b767dfcce1b81f43d221a50e7cc4aab089b72d3ffbbed858705043a34f996a3b484eb7d673deb6b2891e1a4e4d9ec1dc0ab2ea2a5f4257c15012d001998439832a79123483841e0eda020f0b160ca2e75a9481cef216620cacfa591e34ace034ef38b2ac908e0140439538a695c35ee5ca9b7c3c5a4c9d4a224c2410a457adc5c8cbaeb983fb994afeba8afe2e48a9b7f2f19b35205334df2f37c401b25cc0cd48b8f38fe528ad767b9f4d9343be026f760f2c91b79069ce90e8ec152d748c28713309ecd46ec07c615b6c7bd48ac30151a473d5d849349e8e0d94fc8b636163246f5b7de0c36741222913a7a4707d506cc3554135f905065e1fdc88a14537765b243666fa463ebf37d4d39a1389e452ccd67b850a62807bfe6fcd52f16ab6433865c0e954dd3ef926629c62e6c1ecb33f902c242e95a0ded715c716ab05c3e702a87c4d98b26601bca86eb1ac3e92d768a55b0062f9759e3291ed0d775fcae5807d8e2c956e5cf831cb3d40af8ba0c88a26639aa383c68048c0df52b04e83850b24763c72ff27e0d432a7411a5c052fb4731fc67616e18abbc8084af8e0d65392fcd7cc4e6845c53b4303222e84e4fb3ceae7ff83c5f6a5e4f5055ba2501f27635f9f878ec5c0ba1e2636efb72219642f0bf96b490ff0e198cb10cd2998a1566a439ee0134dca338628f04749b60c980c505c4a22a6e9dc845db073e628b0575132c596b13f5c1eed16cafff02efcdb8b91b961346e52912fac51e709ea6ec28ca6182a8eb41e5976b3c3ecdfb9cf7b52f826744c2dca094bef18043a93dcce2c782bf0bc0d8830a79bd3b99ff13ec7e8858e96ecaba228d73b754a98eab8428da4c00396ba0c56cdc0088410c16866f20fbd9487f1fffc23ae22e35912763a915117073f7613847b14a90f637a8348c48d63ba946004e46cc6942a06bdba623655f924840f3594d4820d1dbf0b138835dfd60f930b5eb0ebb5662bbfe72a2168fd5652afc1f798d641456a82f1774bae04bd45dc13a2d34afdec615ff34fa8e8626b64494a2e42dcb01e6b4799c74d6aaf29254f465e930a9938227e4c06db8bea39bdd769ebf28ff832aef1f2becc99fac366829e6fd5ccc0fb998bcfcd0494a8a035c7e3f1a23b7d05e541e8b2cfd7f2034f268614f95c5b0fc35a7f09f0ededa5016cd8baed7c7767b6ec86284d4ed4f943b80190244d80d7f8acda4c1ce2e2732ad2bf79510fcfbf8cdf321a2b66dec3f836bc793eb12c05eb0b5fb46f70f27659472d78cfebf62169d09037d76c645e7218dc60398c3c442b5740fdc990ad456bde05752ad3d0a3edacabf8495ebe9f3c97d84225fc1777b14a2b29292fe47fcf5ff7422d62e14d249b20d34ef812df181de11deec9a7a0131615fa6353d37c20b5216da3fe7789056f7a24b1675c93309b9c0ac9e05b51e5653b92d7e077ce2cc41030d8e78e0a673b10835c7c667d0aa396f2e088cc8b6f9d63a79dcfce767fb6b4d76602a34be00eec4a7a99f7471e2a496680501d363ddea1510f6f7fc57febfbe4395bdd447d9341dc0d9495f5423dd6100507b6f325fb967a96ed9f4930ac6680e6b49084385cdb6fdee92d628e8aa7a2a1abebf9437ea9cd0d1cef14927d4a94ef202d1c1d7fd79bab9983331bf3ef49c98e81c496e67f85bed7b6f28f30f9acafef1b9d5e8ef200c04fc4ec18c1871fdda92503fb63895a6b2a2610ff7dd4975d8a452e0373b2f3dfc50dc43f6194faadbc8b8d1f89530bdd185685543d7e46052da8ad0e0eb0604744e0d6c7381f548f26f0e367c825733966e0a785bc5860be8471eb0591cdf0b2c54e2546b4e584dd67b539a99caf0d7e6e2e7103e670a7377aaf5bfc380b410796196dcc8fc5f37169ce14a2a19dd760df69846fcd2e09a81c83a568a550dcd0c4f92569aeea436962a4f43f85d311d2d3ee32587c790328f5363c334a295039f1ceb030271a4f2069fbdd2fe8065ce6311ea36be3f6d131bb76d94c37cf17dc4bf01659cb5e5418ae1d25fe230eaba90312cbf3fc6a7ef1f895f844aea7d071af0abbce61ee34b3a309617b1e841f825ab7c7bbef51d575e3eb207b98663bffb58065227917189d94b00a3cd3db0dfbe5cf9c57e287747035907b07f9200e2eaf94a7b7d1f35ea2a4ce553bb882a998b1caa30bfaff3ee0443fb84e3fa3caa403413749c43ad8718af268cb9670c5fdb6c161bedfea5ee9bbf0d01d03ca132cfe69b584dae9b7046e95055fdb400ce433f50ec53f2b6ea84c144bda457ac3c33839b4715b923cabf5afc4ef107be48b27331fb40d1d1e5a6630c082ca3c041b533aa5a7296e205539df2e186fb27c8c0c271999e3cc2c87c63c440bb7393bdc174faffb4b9ec1914ce494cabe34698f0dfaf04583dad5c4c1a5a1d97f42de30b411ae346dc3375fc21d20c873aedf278488dffd6fb4186103f39cef70f1c1eda06aa280511879c76c4da56c7baa8d051be08e937ac3afc479c40850e61a7c526a4f77e3a20c8c8c9f04440613cd2e66a48e13e89cc8893bcab34b3c9d49b56ad5973003bf02889034d0cfc53ae2a2f7f7511b45288ee17df1c39c889dc5eb8378b137bf4680bdebcb13f7516e564742f487c18592ce7458508ed99661c2e8281089822272a20c18b53ddc935ddc7f0c9284bcc9f97cdece3eb47f86985fab6829c2b520c06450dee73718de57be16e48020bb8626a493890709eb31c1c403bc033349f56eb620f8df6ad1299fa0cf2e6d9faa703bd4d88279bd244b1126a84c254c117299802126c3fd3669c251de1de32ca70aa99d05c0f40a9af6c75c942bb76563de62413aed82280399f03f2f20c1bcf0c815d29152f70515638864e293f346af142e8f0655c6686074c8adfa4b0fbc8ed65af063105eadbebd8db939bdb0b07f84f2a7b3fea6d8b4b0d32aac5f08be04f4940dfcaeefbddd71e58bf8f232c8f17998ee05ed7575bcfed8c036a8209ebcdc665e01d5a2920576fbc4c8c01a6743d3d80b807f1721c98c9eadc03c2d5f4d1d8083fd52e6f27f1c53e17d730c8a605a8f8232d26b2e5c232a90fa519f87209faa3ddbd7e012574766ab3f4722be9f43953cc1e11fd72afb72a749aa60a6a9c1fbf35d2c4f4427e48d0dc38621531a20271b464c9c70e776efe7c10c0e6108f4fca042eefc4db4b4a25885a05fd22fbc4220011ce2b6e40a2c7a79968914aa5b9b8e78f076ae5124ae4e800897dcfe93a5b56a7b87d63894a12a35ff4ddb5c384d0d36ce14d7551b0f7274b8a622ffd8a0c3a77f37614433d0b33bfcc702156aa6328f1b88ba5f2b56913917c6f8b58a21a10a8c58d4d18ea37a23b8bf64b2e63d693a7f4f4a9aba4ef79c19afc4108359c3c3d256ad910701180c7d929f6f4b1b6354b7167f5095fb20ee02f8cfc3be25e27f1bbaaae0ae5efe288a3b7c810f173362171b9f3e2f3acb6532485b331d8544e85051522a52b51327106f3eda16f077b02bc6d8147b09a91054d607508df5c21ad778deefadb0d8cce1cacc2b6808569721875e3fc5255f50e2fcb5db8101df1ae6ead2d8f9796afc90e302b3ef09be3bbbf03d3cb52c1b8ff2bd054dce50266ac40b99a0c69f9cc9513a56870cd7a684fa5208d6733c25828de798e335e90580dc5985726e7ee5eff83391205528bda1d92697f6d06a1021005c3caf01a40fe2b6834a78895c3b41a21a0e1ca9694d2eac935f5319b2e6c48fc3343af82629a8d8e091c2ccd3c337484a64bc06b7fdae192678deb96ba94b05cdf100add846613a6d5c1ef39c8f9535d688c50b665b3e42289ba9f93d6fe7adaf19d91bed52bb9e916b18a1912858c65e44bae90b4c913f967a55bed77c48efef5cd8902839bce9d5bc40629e7c262f96dbeeb02b5ac5500d4ad6c9640855fd612f9169bd71b045a3834e42f26341c977af98b9c5fb0c0884257fc06ce6b3fcd332b7e3760a57ff7ca0b77b11e7182ed49caeb6b5a94403fce360f83218a6a4069591464de47e9c6d32290ca59fbea558fec0f7bdf555d5c9977c555e7ac6373e40fbba719f62ef1268abc7d6a710ac5cdda012ae0ae1a43eddfbf20f10b5a9aa65b66546a53d62b460bd51d8055c3fa5979fd5374935a098e2af21f91de78af94f762be0e4a7a16d0342cdbfc20e3911d633ac5b1a1c23908f68e0d23bb7b9b6d28929facca56ca92b4ac4d089d953607a3625325b0f3f6b1c78d91578a7addb96dea28b2cbf5330eeb135b2ad6a2eb194406320b17d8e47ab03026c2a130a7a5e3785f3c84d60bc03284affd1c27351945f2c5a81d204794b531bd13375091ddb",
|
|
"output_hex": "004a000000000100010000000000000001000000000000000200000000000000004a0000000001000000000000000000004a0000000001000100000000000000004a000000000100ff490000000001000100000000000000004a0000000001000100000000000000ff49000000000100004a000000000100ff490000000001000000000000000000010000000000000001000000000000000000000000000000004a0000000001000000000000000000004a00000000010001000000000000000100000000000000000000000000000001000000000000000000000000000000020000000000000000000000000000000200000000000000004a000000000100ff4900000000010001000000000000000000000000000000ff4900000000010001000000000000000000000000000000004a00000000010002000000000000000100000000000000004a000000000100ff4900000000010000000000000000000000000000000000004a0000000001000000000000000000ff49000000000100020000000000000001000000000000000000000000000000010000000000000000000000000000000000000000000000004a0000000001000000000000000000010000000000000000000000000000000000000000000000004a0000000001000000000000000000ff4900000000010001000000000000000000000000000000",
|
|
"output_sha256": "6f4c4c93bd9c5c0233fb565df6c960c908f18021b3ba926d966c66a6c055f0f0"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "CenteredBinomial/q=PulsarQ/eta=2/i=1",
|
|
"input_hex": "c43396c3e911dbd83d8d8a09d951bce7185526cd906b4b05aa13a0d2c28de56a625eb246534a4b7101f0b6487c576adc8b9782284b2c7cab3970af788c71fd16577af6c9b67844d57b194003c92566fb9a93711bd1fc4c590ec43688f64d54b9d781dd324d642273d539897054c27f783f96d313ffb5697f61d5e01b4550d9f7f27745424add3cbd1eb9bcf3828b3b3a9ebe05dca87d72fcd350bd58abedaba1666b7586383866484b0cf3a6095987940483870395766512d8b9e685d5228b66a1b76001aa036ecdffa1781dc1f10f632d1dfb17046e14bc07a47f4237eeb7c37f3c0207c29e0d5be80ee9095e0f41e2d3d851f54fcb05f15d848fb1829076fba4a6c341c8ffe6a5f1f35fd8939d274676093226292d0a4b11665d72272d1fc489416e4517624f5a155ff3ef130dc0be8e21b316c5d941b4c3bd9438fcc37fb2d5296c26fe21103fa878fbe3d328169ff8280a6d4be0b9175471aff420b0625bb0f7342f3db0588f79187c71ba6661699d2add5544b2ffbb2016fae4dab97e56ec364509a75a416a617b73ff1afdb8c12d27e818dc3732f6bb6e2bd493bb5eaa5c5412b259498a9cc49df32b863d6ca9ad77b234f62516c8b0d5093b9ee8d8e4fa66e0d9078e7ae639f907fb830e7523c1ebcd1944cac911c46bab4d4b6487cd6788edda3b33e703ad2be7b99dcfbb29977a03615e7100e09ed30327cc4f8109959233a1612ddbc429b34fd9d23bfebe9c1e64939b6a76db4284e2e9ac4c6df6b1f489a9562571b95c3f9da2a2b2638a255db2777f788adf65010100013ff86dd9c6100429d25c33459c916d5591aed10c61ab087fa3a25ed23bef25d7df757ce30c7119056946bc4ceda4965a7a1bc9c78200dbbeefc79b46565b6c9aa10c401e2fcc70e1ed5ac2aaaf367cfb35e68502cde378107d4af539a7d7d3281cdd8d61b858aad1701dab448e25e6528ec193877bad33c768bb0d02cc25b02ddb70e0c6d8c9b77c3a3f1245b3ab91a4f5244708c4bce7af8c517042ea15380b8c7249659c077b970b06e4ea90e6987e3dba9a94cc0be85755a7dc08461e39db88633484ce837c10dd0d52d111a2814953a17eaf7fcfd16d70d35865c6d6af4822695d719324cc01de3c73c83b7672b1e63565c1a926b884b2d27e26d2901093968e7f1da7afba19f456848a6e4962bea8a44a255e011a05b52342d7107a6477b7d26f2045058cc8bf60c7607772fcdc7bdca16ad785f85602b3a7e9be09db326287b7b9fa6f1fce0107fe3b2ec0692a0b30904b271ae3ac8b47d74bbd9f00fd77bc072595e2e8b1b5e3c3fb8c171d2f7622c6538ff7c76a92cf6c52e8a01671090a50d80e301a6b5b989a8c29fb5d3ad0a96fc204087f2a346ac6ddf4026fa1607c9ccba8e5c48c35c153c6df779a2b1164006991d6b06692f7acd444e7399cad60c3ee84a771dfdda5fe4c1868fa0ff08b667434d6e6eaf8e5a8621048b62cb3043561963de8af9d6221f6410b2dafaf94fad1dfa7c4dd06ce72fc244a88abc18832522ed623a42597e7352f2ce9754a64b6699317c40e7d7bba455e32b32678bac9c32b586372bddad1feac496d3ce2057eb7a2b2e0b61c50c8d8733508690f3538f3be4f5909b735cee2fb2e33eea004ac53c59d192e80c62d5207962a30217c04ea0a187e12cf446346024f6b59cbd48f21c44ea1618861623cd4a298a879a5e03b8c3a57cffe43df71672e17db535519c311ffe30218a3b64861678135acf408190132c01040f7988ee2f03b15827bf1364e3bf8a63c69645e8b2e5aa18eb8671ca12e85294035279b283326882e35bd33afb78655aade901cd29768e7304a01ac4a2dba69063f2610fe6364c8ea7b4d5e1db1d6ddd3fdc33ff45db8f0accff63894a19399724234fdced760a3d57cf431253233726a4ca5717e3d18f789dc2573ac840c9c3c9538e39f7ed5f9ef1e16201d8578f76e8c72978961ea99c5b6a534863fbc0bef096c378a626693366d1ee063c6d6cc69f015ffcd88b68ac9fd8f17edb82beeee91fb2dcaa0b3ce92b4215ea9a4d15ec55eacf1aba146fb0024ce0691b0ef3b055e17ba48a06d0f4268d9121f5a5bd57be402733e1043e8de4405cffa5b089f1f927015b61889b66acb7efa1ee9e04d8e5a1617033f6e27a4183357ea6cb6f346673ae53d7e12920e004ea6b7f8c4145b856bef4e3791c475248970112ebb1e71405d33fb90a5e9fc1eb83d755fbd2b25baf51e3d6be93d7c7a67d9b5cbfc1775b7fb7c8ccb4f8c727c126056513e38b6a43ae0b4588006582cf78fcd6b5354720bebd78e97fb1d5b717a6f6cd852364c1f2b8a0269ce569556c12acc0e61a08aa07259c15906c718e0829885eb72c9fbfa0575aef3c94b96b2af29fbaa2775013b663f914dbbfcd246491c36950d8d620656a7af04ff534c6fa23650e20da5180bc116cdfc6d1d76d723fb8dd8d1c6674c54bcbb8d4a8dbcce8abaf9392ada30daae9f12013bc9f0a81a57861bae13d460c7d0bed68ce1c29bccef360a8685e0b3a5778edb10a14313fa61e732685b8fb41ea56ff32219bdd8e3814b12d148fe897653a2ce1620c17bcd41e19f9caf3f5211be411290802e98752077bea6fea39706c612079555b1ecfa1779f3a2838825a922a53dcfda13ebd24c084776bc1efdfd52c4540adefdf011645fc484cfe5bab39187d4348bd523bfa24a72b4d8234fae18dfbbf0ffa264f483d17d1787b346bd61d7e7a1529f6843bad6eb0e9b99c0cd2d1ccf5a8b7305f240daacaefc0df9cd3de7a92db25ec8bb66e44ca7f6269205154893b192e967c02ca73386de356ac63d5113b02e425265631bd5a40ddd5dcf4f5ed9db3a9abd986a94ae00870605dd18bc59aaada722e3ecb6c16e10447ee209aeee793a8dcc6a7281d37105722fd58cb93c09dff41994a0f05034abaaf89e7a98b3064135b5d16fda5a739a78c3f10d371fcf20032f3a3649306aa8eb6afee63a80a95b66b8be102ef125629a51fcaf75bb67dee07c59ee8a660222085bba3debba10b69b0c378f22ce2b18f16f003f3c449b631c2b5d7b9f05da6bdbd665dd51d1b9f08f16682a9d2458a50764432e75bb4d9475712da1e679ebf85fbc271a68c2fb3207a9139019fdc1088a15119d68c6c2b1ccbf6af78daf977a597709703efa2025bd79f6757f7f228320e756ab458ae5b0455819c0a21da995c82e68779320f541ca57be72b529ed5fa46dfef2158883f39e2166537cd3c983f08f8dfa579598dea62207989cbf47c8ac20df93d69a03659bb0e81fee6a868bef2cb8733218018ae83462237463d4fb24a0e6c2ec9c82ae069842e7f148357cd14ab0c198fa957715e866fdd4f43c7d5fc200f73527e9c31af082e95ba284645f58933194e6291ebd46c3b46f5b89753ee46ee060c75417c5e25a37e3ff7edbda8f9b7b5fb01abc80fd3a0edb27fd9012611df3fc8ccaf64f22011a69d9daeca05c64eb386af7f6c584ca50d6573b9661022b2a7c0235eb80b4a60bc3168af991eda2b23bf17aeaa29f18686261d1509f0a0f0f0fdd8b850e7936649d7337323b9a3580b2b8c925b4d9d0b0d0b66821faa4cc78f6e5512b89841bb436d3f7b4bb424ed3b3c6cdc50c20171932c20aa57537a649e37f628b5ba5459255c3cc32b3f53de5a89e8f06f8440b7e0f4fd021887ed051616483d01a44c611c8feeb1969fdd2d86a5c78f208e406630902692aebcbeb7324e653d6ef3466be76083413058cdad3ae29d995f3028a0ad7cd0dd45d0c84050cae70b32a14fd054ff3bd4ee7292b843b1f69fd379ea9bbeaf8bfce8d972ae31a197b2ae7d31234bc12773f7d75abfd39986765947b7588b1bf6f6facbe15c05598dcb62e2f6bfa2f743d39a9863e5046ed227ae7e14c30a38d31723e0532ef4cd7f02c0feaf99cefc0e73222e32505917951b38264c931cb29b3f7fc9156de386d90ce5d9ebb5a2ef76bed0907b06f04f9f03f49191af9a3ec3e71ed3f1f5900ec58581818e1b79eb077ce0cb7518202d4cc105c3294dc3214ffd67415015b710cde14312899951d4596517c47bcdf95394c48189d6ec453fcc9d336587b80b165a94a8af5032f0b7b0e1e0edcb7940b55cc753f4c4d950cf77190ebdcfd201f4966471a8a0ec0eed28885b22a3be70aab999209622672d606d7e1662d0bc5ccfe1e47c093faa526ac97e07698ef497f8da31ae0900892f7d38d989f24a937537409006deaa3610d013c1c94ffa599075b7149b0598241bcdfa6f315b0877581546f5b5557206dc1196729a53511c5321291461989ea20117752cbaca264d2e7de9d2f0e67b0ba6a165d59316b1eb5918bb5880d5a6ce358b15dc9bdea90125d575d7b8fc38df93fb02922239822c4a28d95207635d9cd4ccdb1d79cfbee0c434d2f295a69280d17012a340f4a883832d5275742896620335b1246aad1c98ec5bd76306ae0e5274c8ae5cde730ef63b2d76076aae658c48048972db4311f43bbfec38204953d5fac039d7e1bc10e13953f49feba49ddc40e6ca22889e33f4c9e6019c07a61a57a7b281273d2b5dec35ae0d89954187373efe1b9d5b3b96830ed20587171fdadecbd8077fca5c71563f0ebe9533316456f19e349e43c0960b2cf9607fd8a1578c6de3bcd26ffbfb3cb3ace2354734badf3c226678574ad057647462ebf5a227a9e3bb9e6b4354a07391588584d20405f803af98c655b3da429b721e80ced9325680104745657732cf87371fa7a85c256e2cd1ef1a0f78f0190bdf61b97812c4982c3ee29a301acd371ca3ab8219adbb46228ea48c95161425c356ecdea2a422de2af634c4252946bfc28741f3ee60fbab508700d8202b7f9f8b2df53dc875f6e53490e38e2ccad080a22d0ebc0ac27a4d5e42f7128a1a35867184aace2467ac7e6e64afeee8b2fbe378acdeb34433c05a6da19e13c9fa86a1c0c94283645e5959a71f26841aaae70c8757813c8c121ee2a42bb07411b853b748af5c5d89467742e137b747996cbe3938f68f26dafe5a30dfa151a8e1e2ba7815e384b865db8ee17c4f06c9b6c4cb8220f04aab80be609205601ffa5627a9be0fb5281e8cd51569d3fa7e5ca689b202ce80a00247fd1b082075bbde30a441917ba7792f907c49b17732a36d732cc1023204e2e9c87c7ee953c6e26e37f9310e64ca48289f311b353b3071b692efa5c374dd3637f8b14eb15fc0ea0dc49d4d36931cb47bd61209f016324ba625fd281a16a1f6a2cf7ba0264cd5aed0e7c2aece6e509f1ce2b8466498feeb839aafa170e46063b056d22ef0412479e4cacaabb3f14c18682a6e06987bab583835134571bd5c3969701b03c5267cd3aab018dd41a631b190aa194781b4e840c352eebf404d43ef58c1ec48b836317be999700768d1ae5ac13769ce79e666e5f5276fa5116e32df0a53316ca7533f207dcf3b0ccbf6f1d92323107f33c737711527bcb1634b5da87fb960145d635824f0b79edd6a6810ee3c095a51153310f288c268f1de2b811b08c27509352fd536625819b8bd4d6f4347479833f2511a41d7d68730e7ba19e1bff250bbf61f5762e8e628af0d5ebcaea831924ec0d51d9530dea3f1d05efa99090056e02b615fc6da8238c00f4bcb2d87ec7d72186dc6e559c05f74d8b8a8291ab69d2fc62e28ae4ec3a7b8077a2d46a71f64e8c249c8d050e8a26214ac2fa41c08ba675d0962cf4b605e6666855f55506ca6f1b343b0e722e0b611665ec3add4776f4d502acf678face671d65111df615262956",
|
|
"output_hex": "004a000000000100020000000000000000000000000000000200000000000000000000000000000001000000000000000100000000000000004a000000000100004a000000000100004a0000000001000000000000000000000000000000000000000000000000000100000000000000ff490000000001000100000000000000004a00000000010000000000000000000000000000000000004a000000000100000000000000000001000000000000000100000000000000000000000000000000000000000000000200000000000000000000000000000001000000000000000100000000000000004a000000000100000000000000000000000000000000000100000000000000004a000000000100010000000000000000000000000000000200000000000000000000000000000001000000000000000100000000000000010000000000000000000000000000000000000000000000004a000000000100ff4900000000010001000000000000000000000000000000ff49000000000100010000000000000001000000000000000100000000000000004a0000000001000100000000000000ff49000000000100ff490000000001000100000000000000000000000000000000000000000000000000000000000000004a000000000100ff490000000001000100000000000000004a0000000001000000000000000000",
|
|
"output_sha256": "07172e61d1122f13bfb924bf24b5b9e2df6a06d848ce66df40e239eb9a65fcab"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "CenteredBinomial/q=PulsarQ/eta=2/i=2",
|
|
"input_hex": "cf10fb9189a2aded1f5f7fc3d607d404fb203389a2ecdbf44dfdca69f5407d5134fd948be5ab42c4da5efddd663da0688785d802a2fa9e7ef0ccaf08f9692aeea2ac46e8711cf05f56845edb1564ec4413716fc4a9647bdec531967b5ff95114624cd735961565ddd6c7cb1ed06c66d585d412e2bbca460c0be3c614e4645dfc580b553a2dd62d1286458a8116b2a91146a7fe9cc11a3b72e6020d4bf46e6f22de7ec5b556f309411af79c7119adbe6cca00eee2ecacebe741ca4996030240ac533e95ff852360d6e3a29e5c75204241dc90b6ef7b31d5405e7166bc1361e3dc455b91e0c7ca306a9645b0d45391fc6233fa4a85f0c5cdfaa5e3678a6bc3f4e13d2e7b6241c4a5144e20043d4acb2c11bfb50613e5c84d7f3922bdc71b4c2fe1bc7037c17619949c15203a461838be29c505418c6c6dcfc0e6e64a582cd5d869a570c9b91bba313f46f6cbe974d957dd1145085c81fedbe57de1cd742a96a3c48754942730051cffedf052f15d30ff111343b888b4c4c607c2cb6439738aaa2ddc1297cc894a421dd38e11297ac08ba8c27d4ef2b4e3420296e86909fc96a1104cd85856e1f775f349a4dc5d3ce265f7ed014ed9751af5987cfcb34631f4d8f6b13503974802e3df25006902592abc11f9f36195f45ae18366f6f0d1f131e5c345f7215d8bdd3343988762e321dd0e5b7d0ba33bf1089f2b1e40103d4777815cb6cdf8b2fa72963fc09a4cab7c1a08bcdc979a4291d07e4fb38c3b6aa13bed50d840f9c51d163522cb44b2239432c8319b68100889424fb4c083d8be7c093492bd9cbb51ef803ac90ad0615022a64d731163e930c7a52d9143fb43579165f66babe5b0bc9cac00c6a43381024f2ad4458b1f5231bf584a7352d1dd6d140f5369c31600b695dc31f437028317f63840e7fb60ba7e91e47aaa7f961523e95c732b3d93195dc190b4fea62c21a4b6f34ff5d33dac8c70300e54c6212f5708c0ccaf531f528eac496db7348bb93a5d8f746250197a6cdcb73bef7f5ba29a0a47385b412495ed2a2b6af495010ae965981d06dd374930b67f51c83bb9f3b4810c5460781cab75635db14a37113e02067275ba254362ede519e0f0f128ff25d049ed61ac6f3a49fa46ac63500be4613eb12d235bb011ed450490812f37af558e1f5559b60f2344c9f27f507236b1ac6353895351fcea90f851feb1434453170560128ee310d66314123752e70389d95816f00616193820a21207c1f546e2ca8a0ed122d2103ba0f9335e4ace2862e8e4510fbea75e4dcad3064b24577c283943aec1a272fb5c12099f541266553a259ecf42688a61de531723e1d25b5f09eda49362de67962d3bea9eb580ac595a08ca82487fd8f2a6024ece16751d8953a0e986486020d5124a8f266773819c8b4209a8260744e646f1d1fc19e75eb06a593955de02fc625b33286d120af31d5b551d66f37c63b483aedae76eee14e4fb50345947478cdeb04193b2727721d55352487ab0507e3ee6eb9d471eaf7bfd1ef7e11f61ad7d1142457fd253716bfdb58f0ff97cd17b402481b9f59891b7b31cf5bb1eebdc495982d4d302b0442d5c3af5d8d98752cb12db4757a8e68040fc6780e3bc0816b127d6e7a869959d8179144a7a6b89c9470e79bda58a235d34de61d8285a56bb562f23c868167685eaac14a4c32623345d699e35fe66fc7035255132bb4a91d19a826bfba1deb460f1eeaee310c3c7116220a6bc0d61a5241285785dcb3850af5bef727020019aa22dd8a2d671b873ffbd30274b590030b4af2031ebac370502a212bcf4b3a15ecbe64bd379501f013c34cb12892a1d897b705930577e909bdd3f5aafec7c7914cb0659f0a55c55d2dd43f94a95b9a0e01fb1ba5fb231b28d575e9526d0e0585e25bbf55d3c7d660dcf1d65d7c5639157619b486d1b63e8c9ff445a05f99c114bb058079cf7734d9519653fed84722003c4528ce01d35c83e5160ac6cbee9e30c4980ca600b92d9587a7e0222ff436f6a9d4d0872d9f7e3eb791f83bd73b1cbedadb739a7e320bf5ad4f5c65a058a0f0a90ba9cdc2a78acdf82266ba1330853b5ca92caed579a35c30a1473f70c0c4c15de9940db71c72dfeba3a9b8708c99715764d3c7fee4f23e76dcebdb5ef0cfd86296d1fb8e0f178ff4feb7992dcb37352ede44aacb5d81886b89958511d67af1e6bfda19dde7767ba5b9096fce0a78906ff4388cc97b8fee3e684b3186658f41bdf0e3c15af6f4d29f6174fd0773a1791bd155d67132602182db70767b0267a05fb96401ab30b483642a254bd4904c5462582dc5f251d31e08d81329ed7ee6e30f230c6dddb620cb70506258d86a8b62c808d66cba7b64d9706f87118a48c2c2ca2bbaf698de7b8677e9583c5dbc3f9ec71d42009a51d63de2feebb73197d10d649369e4e179248ab3cb9b4e2e2203764cf9f00fe928f0c3793b509d3a46cd9a2e38cdddc4646d0952326b0db6d0379e38c1f9f74db36778f46d507100434541234c2b3a92f3ed0bc153f46e9daee3a7b9504fabb158ebe04e31421f364382e15d8c1ef162d58a4f824398674d15c9b6ce1263947fe9ef4baf53bf89355921ee81662f39a560296bfbb81941d3e750e78a11631ff27e82310a1edb0f0bc2f6f3133186735c30926d63ea2db53db8f69b0bb50e64f5f3f143d08d9dc3fee77e535701aa96f3641974844c890730a89297580ada619e88b0a1f0053baf295088b5cdacc25bfd22b9841d01a98920a467e22239e1a87d9580be186d3aed05c0756aad63378b5c361397805c6411b003e7f3548093e8588021d559c0de1b4942ee2bd252099c3d7d05a271843d1b38a9769eb9e6c87fb459fbba03987d4396401682c66e7a17b08a0394351d90cd7634e00eac5f10c2250d2425aa41b281e6ab0ee3db63c8e233dd53429e981541e2d18556f15e5ece16a7473596a29cab8bfc4216ea8caa625cc60384b20360ce01478576cb464019bb78791a7df670adeba362e986d820bc85b9439b8dd8cc479ebda835ca0782bcb067417610f8695ea1d27da6edc23bb761e266e5f51e73d2aefbc9a0aa503a32d8f1895a4fdf282e8dc563ac2c19db62850a1d156e093a783cd785d13678c5e054c64245a4b66d8431ec3812af9351220833aba7f435435614e04f614729454f5629f46d6e9f605ddc539e453f0286ef4f0cbc0b5e6896f2e63341db137671214d0b86ae112a044667eac2bca95785c8457a7b60330d58a84693e463b78a61dec57244601731769fe0e9dc39e214949849c2e6b504af37510f2861b3792cd451647aa7c795fdc83598420aea2936634d3ec392abea520201e3ea75fd272ecd41f665317406be1f8b5c8f9d9c4f2c464b326278b7e5ec03b8bc1203a03e88a22a502af2647dbc1d44007ee1d0e058087bcedf2ea6b5fb0566a1e8afc083ebac2266c9054d3a21607554eae2d7de4037aba63ada4a9df679e1596690812cf29b74f2f98b3ceabd7aff94463a553847321f73de63f54c9e187ed796f6587b126ac132a2c79576acce52c80eeca936bf5effa02788cac64f544f80dccc185621c8c8e7448c7fb752d3ed97f2634b6ff106a40589cf4180de908e803e531b4e98fcb77249a86bc9ff16fb8773f3c40b9ae43b9b5e55487c55ca0fb3bb3f98665077e006c9a460a08c21903cd05e27c94d44f23af39e2f2b06ebebd6e9fe2f9bcf506d15c1177ff7fd1f82a82ff3a976c1ddcfcccda28d65539bcde5d778ed76b56470d96af012db1390157529a93ceb5eecce1bd5efccceaad65c006f73feb5645299ab89892caaaac6943321949592e5972b337110c4e22b22695d8df21c7453f81c0a1f82583be42c27c4ceae5fb04aa675fdcc7df74346accd7f298f5048c751f2815307710b4d583d856e03b218f34ec95300ac600339b9038c1cbb090e087782180c46ae94d49fdc210c540fe217f8907c74a9893a70655321b5c21f9f9085311a46ac00d11e93175e7e4819d23bb1a46e2574ebb1f73fca5a95804f583cc4010f8ec07fffe5a8e7dfc1f6850062a45ef30c2c5d2b7a21218dd601554fa230b6ebb660e3c244dd410f21d426f0a8931a5c30a005297f74d291a602e3db29fb045a71153ab902e28a8d5c66dff24e7fa14af93ff78882fdf7d838dab4a47407a128b2eb1252a0200e46cb149eebb8d634e1dbf3acce4707ceee007ca327893c79ada2268e8d9ff1100d661a7b697af9a80185fd52e074e7bd8c2fd270f1aed5ea2e5bcdf233abd04b5c8faed9c5d760b7c3fd6e1bf230727c41a44e937ca03a9bce25e48e074ce868e06ac930d89819344b1e59e0d0a9b544175c326fd673291bd8a294ade4fc7cfadb92813d568d960c3899e5159b82a0ed3a242fe60a54954188acc830717c675d14cd1c430a5d4ef23e36ac1285f2ea562c312f6424507369f6da67285a40bae0174d02ab092a1ed7283ee7dbe59c85e3406ef96b3de2cf9480f2ad6921671b2b828056412a43b0d880369c18b3b1a4a0d5a7d5287f3208cc055fa699cb36e5902803fcb436d99c1b368ab5f4abfa521eaafae000ac54d52929e0abdf6f2242a1b31d1770200a31828994055682100ac02d26ad8547c42b9394742371a722f1649318b20283ee3c2e6c12bae148eb73ed7c7f676e4db4a290af8a6c30a31bb849324ea16edb6c25c66eef5ba1cb638f773117d09d2a6dd3369177f2a7499c590a4ba720747b486d3108306b9b1444824adb6217f77d3c5ff3a46b0e6c6ba16f78da35c9fd02cbc4ccd649354ff7f3d56d702077d8e91ca634414a369faf7559709d545f0d44e15cfe030152f331c2df76b70ceac3b9fb297c0d2bae79d5fc7bf20b58ec4c2350f4f5323254dec320c95050222eb094868d7356bd9210cbdaea7c884126157133b3a512d29ce815f48fb650d817134a8736fcd345addab923136dba2aea86f13655400d08ba1210cee26b9b1d7c126cee280794b970013eaf08e1f71b63f6b12a85b83b8e799119067b62c305137bf61d107e2846d7e60ba1363b44d514533a1f1f4f50d2517df08fdd334b936fcbeac6054799e5e99dc8a0d712d0f6c646574c2562cbab3fa9120b389646e8b9ba53fa1b9c6de6f47d73beecf18a8678670179bd1f078d2dd7b9f9263fdd6b0cf9993da826f1db9b195cee8f1a0cd1797cc66a53dd1beb26f9de0ee60612884ad199c4d253824651a0ffcdb35ba749a3daa7bc73a4e320f487137a22f2865d5aa9c1d5ca2b90e8dd81bdf903cb8f91616570ed09824bcc9a76e1e2aa4f0cce730dac355e722325520ba89f9b86ca66afc7bd50df94ab159de38daeb1170b9558d798a902d69bb2b3d964b867935dc80dbfd80336da17b3a178e3142e2aa8ee9e8340b0f8ed099ecd325d797d64702919717eb5bae9d8b434e3b5f2d825e721c03bc83ce8d8949d2c6927732f302cdc042e391279b4e9f7a3b0b74f557b0d0b3dd689e077e025c0bf3b5350cefcb4d3a11fec0be416fa7aec913dc46137fd6c3d93646accd71bff8039b05af2765e5052e3cfc1862c928c38c78df0b33d0b202a83ae4554774992e41df0b1115321d81424f61f2ade27d6511a4c2cc676e531ee4e944c08766a394c7045cb464d93a80e31e7f1ebb7b4a238a76f6c68aa075725f229bb547302326594c4111f84dc578f38a1f219091ed126fd5ee5ec7c17445d35addaa83e70af8bde4399628a1d4f67714eda136925db630a77c747f2b27d247ec3638a8218ad18e8b851f25521e935b464496580683c5b20f8b",
|
|
"output_hex": "000000000000000000000000000000000100000000000000010000000000000000000000000000000100000000000000004a000000000100004a000000000100000000000000000000000000000000000000000000000000020000000000000000000000000000000100000000000000004a000000000100004a00000000010001000000000000000000000000000000020000000000000000000000000000000100000000000000ff490000000001000100000000000000004a000000000100004a000000000100004a0000000001000000000000000000000000000000000000000000000000000000000000000000004a0000000001000100000000000000004a000000000100004a000000000100004a0000000001000100000000000000000000000000000001000000000000000100000000000000004a0000000001000000000000000000004a000000000100004a000000000100004a0000000001000000000000000000004a0000000001000000000000000000004a00000000010001000000000000000000000000000000004a000000000100010000000000000001000000000000000000000000000000004a000000000100004a0000000001000000000000000000ff490000000001000000000000000000004a000000000100000000000000000000000000000000000000000000000000004a000000000100",
|
|
"output_sha256": "b7f7666350f376db54cfa3e6801cc91d24a8b7922084289d3adf9d5e469d5092"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "CenteredBinomial/q=PulsarQ/eta=2/i=3",
|
|
"input_hex": "7d6ae6bae05bd7392b857182bb352f67c106bf6085dba135845b2f25b8f1f502640b18fd7ef5ff299a8339ae32c2ed46bdd2166ae77c639e0a0df0fb300ff27f95958976232715ac10593cc546c78fec9d55266a74af872e35acb2b459c786bf413912153baa752a9e28bd73edd7f6bd5b797e9f96c179249cfd0787c77e1b1bbbd7fa095f535898bcdd9c1e6f6db48085fada2ece2098ddf680d25aa1f2429341ef3ebf0d6307c5f1058165edd4a7f5a57ff375c1ea11c0f299d40264efb71f1049b1d5b82e01422abd2263aafec5b91eff24e33933ae4258cd29fcf8bd3fdd525f8d81cac718b7a1c6e39cec2f5362407cae3b39a832d388c79a745759ec61b2dcea4797a8eeac621efc6d2b5dfa7f718a5a60b282207cd001c11cecf8dabdcda5df2bfc47e88dbae87279b058fbe471b5748c448343d1d5a9376b39488b81315671c6a2b91943a49a861431b39e96bfa43922ce24d90f0b4cadb63eb7b9bf549ad132de03649964c17d3c4c2d919aaa837b274f08ded746f40249da0a6b9933953a72683f6fa049f17184837f8bcbc5c84959342f3d59c1dbe6f55be701adc458ac22330b125e38d54e62edbff186f0965ee3389f3640b9c91f12b69d402684556599157cd5e739bf15630d0ccf495b87014e7c1b079608a2992db1bcd4c0fb8efd9e49a20d60a3c49adb5e6713800dc415a579aa797e8cefc9e78823b2d8740727fd14dc2847933841fb50f456a9072aa0a48c2f91749b21c05311d9760512b8844e010c6a9ed1212c2904c0558293bd74927b450e8e0fac289eae2328a14f75144711066ca889748d5e4b6c171f14d31b817c5d7f732026afa48a81f4652b7fbd3a862f948e2c9920508883e7961d5925801f3036553a845ec5a4ca3bc108b70613c95ec079012973d345331b9de5cdd40cf048783f92a0f2e1aa1dab011e503cf4c002d7b31117960ce46d4c96d60f4b204c7f9a4d986c3d148932506516d48913496fac3f9a094cc8d7fadb2203dd0e46bd92f4d391c096cacb59370d6933d298d111370d9caa54a9042aa644f519d5d4f1ef8e53b09683d2353861d74fb93cda3248406398255ad6498a270a45e53639c26fcb163f63017b224d62eb547dfa6c08388035fa4a66f7005e11e7b71a166cb12ad14044cf900853d3eee2b674c47095fac8399f912f3a8ca1d0159f99c7f6a0fa3d196d84e228d1f63f03fae8eaf94c5e53906f53c75f675dcacd16b0bcd05628c09d920c756ce8acb35c4225c9020c74547f8c17cc3f284cd01b7de6d52c6bcbeffc7cd6e088556727cbbcc04b56f935ed1e1a3f697ddc389f0be9d1a7dc44aef742df90a0ea37058762a0fe3772341a28f5e7d9489ba4200c863d0ed52aae7b5bd005e8e7bce810a4d47ec448a9e31e88c53882d2051e698c1263a253813026a7aa479b0350608ead42f1fbecfcb2b4e974683ebe4b0e12166cd978f2e0121d90799098d20de5ee492e521cd03a660197ce77bbf173157c0dd0a7dd4aa14ddd4d16482eab95be10b68ad8515e52f9a2c259eee0ffadcfb536b635ad495ce380029348bcd7a83fdd6c8be1788ecb05cb79ec673c8e4dfb436b5e7c175ea2275eec1711d9db1bdf0d83215f7e75f16a1e134b7d0aaf9aac4b549e359b0d6291ec6ebc538f55cbf4d80b2cc263dd53bcffe65d748700f485194a334d655cbac0d16bbc4973c72ac48bde5c136ae488979889ea25085022f56f2d39f631048583b839ca5f143537e38819e0392df3626e6a5713db34010396478adfd4b4d08d4a119c12a4cf468d2f03343ac4f8d3e33290102e05a4da55331f9117deb9182b842419c14b76390fe4613597f0bcf42f493f3b1b9aab0b0659cfdf9f0381a7fd7f518b8d56f607e1caf3815a94fbeb366dab72faaf2ce9b01df84213e6fc548826733102600646bd16b37bafc968e46dc505b3919f88b4a1a57cb152b2cff8705a70f8be32b3fe0b27b0581d63b5d38773c4368659284083ed25327cf7917b0882775513dcbf0f05afadff15de36055eabdf05d1f6df1eeccf4b429bdcec35a04de323d375b4302fa74fd3d2c8ca9b464e06b797dcaef9a16e6852dcb66663a08f9741dd87b7be65221a2f432014f29cf38bd01bdb6fad48833b0fe478feb1a236d31cf837c97981306f64e4be2758ac2de43e049c531e1f504a735a62f8921e92a58e9e4d757005feaad028c243209a26946c846ccffd321fad357c67c256d95aec494f440733a7d1420c427f2f0e77e3ceee8e785409b6c9e5ea131c9059ea83912b9710565ff0f43c6960a46cc2815878544bc997f011cd44e02a22c3f7010952e2515e50d63c72fcd8990029babe130be1f5971657b4535312d61f8d063074a8a37a8b0cc1dff9c8e25400e40ed44de140d150ad1e83af09e8f37e2a6cc1b51f40633252817b34961137b05715c4a118393c2cc08515c453817f2d4a6abdeeb375ce75fce7ff5698e173272138df091f7a6801b2a254330fc7977828fab5c288ddba92d66229988d68c2fb39cde7985f01ea1949cdda4850d5f08f1dd414472b68bb197eea9cd48d3ef4bbe5e8d1607898d92c15c58f3028db028efb02e9c3fc6e5fcde93c26930a14d85ce5aabff258ebb9b413af7b228fef71c8e3f43cf43e73fc35c4ba9906d7dc879e76f1f1e8e5070485aa20326ff7da658810a0571004a4f168aab18aa3bee7f8321befbdee89d644027eec4a3f7c5393e6a009807313b553c8664ca3daacf9856d203f77331dc24407a19d4cf46430da12ab979534d51964e758a9a2864d16edf81e4ff188d08221bdbbf177f41a1db057bc40aad80151d2a2c3acff4f9d069daa268e863bd4e35d3e5a0b52c0b1dca6dbf3e29d2b35b413a1c8cb7ce0ecf223fbe3f5a7f4190ae8fc1997913432971bdb526a2ed77b9c5ba2277a10bb96736140f62c52c0ce16b93a8be7d08d2529602ee8d291338f5c90834c7eac6d0592920cb1c9cc3419fcd7058171ebe33beb3943d4889b465b73d6f120f5b78ee6e63ecf3d97066620ef1b7ac1864808f6edd19bc276a10972e489157b285b31225d223331567fc56b77990781a398f85044e94bef87f972a090123fa50c019c34faaca7290e5682a173be5fabcefa25ae3a18cfc7f6627d9080b82b33289904b07a2a80fef16ce7d992618234f45f5727cb142dea9b9ee2c2f06ae6a138417e9c2b6d6430514defdbf0d5c5feb4fcaa4747000bb285941ca576149bbd680db49257c1cbc95baf365506ef99e71c10d1c3d847745d218eef31ec577cee7ce1ef421585d67a16f3c1cdf48b8b429bae3a9b33658e989298d40f47becd7873d92e9a7a3fa3d3b4fd8f34b7feb2f24ff811c2595d401d6cf188ade377c702b91a2809efdb292a375b3940c0d6d2e8f90eda13cf58cfc5d23cda7fc05b3df10c078f5025ea02ac82fb87cd8bbbfe92b9100f6d9a4e04bc71b5515d665272cc32b13ec49ae466983263c3e9da488c1e506e09e2387187ae0ae6a731ea618f5661da3c9aa00a30d6932e55c7e5b230dd64c17a7871b057bd0aed8e7e7890fac6fc7e7a77f4e4470ff696308be27c3545e86641ad8885cebbb46d73a905b7fc498a0f0bf83b12a2bf040a33c23916d588a12e08bbd8c63791ad7d91502fcdb0d90c61992d054f59f2fc99ea6298a9bd94c35cf4923f8acd0500af29649f0fe4a25c96efe0378b84012b5f76b4a6a6284beb887a40cb88a7415d54eb8f7e008a82f70f8fc60db88cc4d78193191800a0d0683e6ed7889eaced7ba68c6ae871fed1ceec74d731c84388765f984639d4bdab04a9b2dc3038526a3a9a8fd2ff922969a3fe832efca811598a1c9547572c6c5804e93ca2ef4a523e4bf8de9b2b23f8dd93c755dd4d97a29786634f387b9442bba4e7986733f57e0fabe43c076a5ac0753ca48b0b586310de44dc7cd2c86ce9847217852b15c2a59818727e6296a2334b6e187a9fc78f4280429b9fcf57d53bbe0b7cc6d81084a0f2e64b3354a4987cf60aff13cd715df90df273004ca26e02ce82e44ab3f996bd022a3f41f05b1b00f76bccb474580dc5e474b1c04d404426e7612f9d893ae3107ad81baf9fd73712f6f1fd417d35eca30e79837950c626b7332debc5ff7bcde0cfa564ae821d0408810aeae0aff085edb7f6f903b0da5d6dd3c3b7653da7ce8a2e9f5814ef908f8a866e093f64510d1afe77ba3f2955754291b832df1c8cd489a5524b0e84e2d663abdaf8fde68af10a4e44870fa4ceea936474b6bdfb23ab63a35a321e897ed6c173780c53a8ce0ad63295e37292209964ac42c0ddfe1ef857fe61b2344065bfe2aef6f1f0b41d2b06f185dd6bf9e1ae86ffd8f9d32326d6248a56193cf00edf24204572f0d70d2fed4c283b1bb80f8f4f5e8ca9cf711477305b5fc69bef3cff775f9431cc762462ef5adf4d86a2cacd2b5eca641b472d447e6976e019d3d37d1bb69d9dbec8aca7a749da4326448b154bf6a458c778cbfdbd798eed07b1452d95f2cd455ea36eb8fc89c15a2c079131cabcbade34b93ae09b9bbaa07d0aaf4d311aac80a8d7a9a513f73b0ff4bad7039e8fddd20e9586448d09eedce028d1c52ae93ecf53af27326353585c54a63360494960bea3a4e8e8b1fdaf3cb9baa7f91d748c4fa118e6fba07a3c27a555324c4031726d76c59ca34a62b1f7f5562f45e20d48f382adf3e4195631b2f945cc35eb9b564c7ab24fc94bc011de20c893f782c51324971a5d5ea294c863d4fdc9f46bb3d024d43c60954451708280eb1459f8af8db68373613a3363576f5c2efd3e47ab63782445ceeb85a76c6f8b73dea03348428e56148a4f94432d4bad44e79c62e13309264bb4c0a361ef8cac5f58591e223bcf9bf48f540d94050ff9a7565dbf868f8870d1cd498b9f16ecc4c998dccb256a23e5cd75dd71e03665efe239361fb25b3193f7fb0222dd86948da928d0010cff1507d87d4ae6711029838e97b4a85079e9178aebc5cf5479b09eaf667544092dcb632d9bad9928400860e9f00e0e048e386a011cc254251327fb94df484b82e6ef80867e55ae9be006626ed5b4674c458cfa69622471ddc602ea631735a75c808831c4434e8366f1ac649b4cc15ad427cd05093c5babc5cc50e97490e9ea2f5317419bd6f3e68c56c669a7f6c233ee15b78d160d8fee1dc4efdbe7dc5a3883034d98c52daf9988511253b8f027ecef8f8c1a68df6dcef5d002b7712a9164cb00d897541fb6c54e412c0c60683b0686cdb27a47d9b8de1a95e8e621a293a5c1ff9add96d7b3e80facee6952b395f3661ed1be498bbca3324d5033a13fc556ee46825d46824b48e44ff822ebcbcfe09acd374bde3f083b71738db52544f598257a7cf87824965e5021717fef51696d5f0e82c6a4a1fc330e62fe406d429dc2f827f332d85ab6d3e153bde2a47a8d973023712ebe8ad656456921ea6395fb67b5d881dcc568b187c164fb36fe93c211850ccae3a88a03d9ca0df53d9cff751320f17c9c41d5b36ae4dd7ca944fea5280fa600f2d1298836a3d1cf5293255d6314d4ade2704a513eac6fe421b6957128cc23a30026a9666bea1acc81e6be9135d7fed9c48429a77ecbf3fb44416d5a6e9c9748cd39ea98dc425f255cf9c18e6a788dfbdb45309a681405e41eda9a514333cea021d0491f7a2ceef51161d76f088bc7473adfca647326600431a048ec6bc4e5193515b7d7ea6ef22181f4335c802ad781c8977c7d160d0b3b9ac1dfb55b66caf194a305c7f486075eaac51d5397049023d94cd28b",
|
|
"output_hex": "004a00000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000010000000000000000000000000000000100000000000000000000000000000001000000000000000100000000000000010000000000000000000000000000000000000000000000010000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000001000000000000000000000000000000004a000000000100010000000000000000000000000000000000000000000000004a000000000100010000000000000000000000000000000100000000000000004a0000000001000100000000000000004a000000000100004a000000000100004a000000000100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000004a00000000010001000000000000000100000000000000004a0000000001000000000000000000004a0000000001000100000000000000000000000000000000000000000000000100000000000000ff490000000001000200000000000000004a0000000001000000000000000000004a000000000100000000000000000001000000000000000000000000000000000000000000000001000000000000000000000000000000",
|
|
"output_sha256": "516ce7c55c882573b760f655b22d0e1b9c385f0b40182849745c98fa15fef8b8"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "CenteredBinomial/q=PulsarQ/eta=2/i=4",
|
|
"input_hex": "20ceed42626a84cd8467d0316cefd5ee3e859367f26fcf76808f3a17761f618dd8ff85281da2d0e4898f9a1cf406e4ebcb6df860725174eca8cddb6f9c0dfd6df49d925dcd315a7f34fe6450957164c45ac26ce2459779e421c66c5374513b08c3d6356a81c314da1b68698b086097e089485c59dffd9b2ba4f6d6ea65ed060372b4f232f54b2388b746244c8963ab14b3327333f57ebc76f4c82113bf0279f4cbd47577391e466c6bf2130b4dc3b6c1184aac6e354c2734779535032543cff5fd5b0581b4b9a92d9c0d3a72cc30a42f337eb308fe034024b64270e7e4f9400cf6e9f82d8e247fae1fa85d674c93b388bbff0623b827ba6c308ea14dfc12566edd66be168d321f262f19956fdb1a87c71e1305b9aa0659d32f1f6b2ec36b54d558bedc73ad5609e623a863363a765dc242dd5030b7fb6900262b437d2025e761b2a93034b99a1c1699c327cfbbdb3d53981e49f4f8ea40d795b8497442777dd42831a59ec704a50399a6508b114294558601c9f790fb13c5b572f2dbdba34c87a29de452ae5f0fb257ffaa0ebb46c0a0193c75732cccf05a1b7c3313232b1c8cfb415690c41a02cfe8db0efdb41258b54753e883412e0c5ad31eb516e7d679f99cca8671cd7a2fee43abc6261dfdb203d3bbcdad22e30404427f0782673ca9e941f773c1c6c6f52de8812151a954e22e51913b5a180736253ea52cfcfa41d79eebc98be7c5cec6230875956427d6d0ecc4ee62ab1ddc4b073de28a1368209fc09ff193d0a0a6f1f04e031edf1248a261fbf288dc8046bfdeb4b9175ef31b3d6daaac3a95e086238676b0788e6e07f81117bcf220acb484899ef32fba84360d0b17e73c924f2efa7c8867a14ab058685621cc734bb1851d170d452e7cf25ea582f3bc2b227f2a3bc00a2b1c8bc70f71612c579372601dc66c43ae57b3301c114cd689a87ee10b28bd777f65f92dcf5f961aa43426cf6fe0d783527821ee3380424b27d4ca9eb3ebdd1c22252ef632c613c519d78f98b349b2e41d6d01cf2c36f01893cab1385e29273dea3642a2f69b234fde90fe770146e460a8ab39e5cacf7900fb24e278c572d80485ee2079f4aeb98bca87566b4e2f2c8ec1dab74ea385466bf50f85650495fb8c9fc2994f8e1cdde987046b70116c394af7e55640e7249132c99f6becc1f30569d0a93b1be8b05a1a1ded865ebc62bc93336d3a808f1dedea8b8d2aafff83fc7a85c508ff4dfb31e55493d36fb71d94233a42186343a15994259e482e79ffca06abf3c0a2e8d01f80c97d152f0f804804c2262da662e294be8709a8a17c924b07cd5a81cadb93376bb7d645a1c263f5b4da59208875d07acafdc0d1b1144d6ce73747ba61a6960171537c2dcfcf82ede0a2c9f8abaa3f0fa96822b9b910886c925bf4656e2142b361828c5b18b9e4cb6f2bfb17a49745a33f639b3ec929e2efa595ab65400143b52e69170c1a63ed59dedea4fe8d32c9bbd181dd6455290794dd84f1ca018b791ca8d38495e761ec314fc635963a355446052f0581145ad0741e3401a38f59b1be7f1d3aa7b459865ea217c2b6613a48b6c1b01c02e72ba112002a5fe2b280e45f66de8195a97d048b26e0e798f55a8a8e858e19232233ae88e7e3ccf7080e1d519542f678f975e3be648d2719c612f668dfc4cb7f9c9eb850fda4336b3f621ac70510c067d19fcf94e046566b8f159bec7a75bf99559ebb88f0abcea05992be33fdc0f9ae559366bd28768a768347215fc40e017e4c839bb369d8990b968392b2aac236ffb3bd142d64874f5fa07fd5c9acbbe10bc2e0028946942bc4e27a291fc50dce516e2aa4e2b4ea2453aa0c2014412d46ae07b533c9272c1124c7bd1cf7ff560f025c21261d299c45a3ef9093667f6ea01841120b9fd4118aa4ea56bba4ac8473d29e21acd6f685e6740a96919001cfbe4471679ea072a0b6ba77f6d7777fdd35c6f5be4d9769e4a0c161980b2cc6d4501e034f60d7e980d18c8820d8ae13e13481b072a9afe78cd344935651d2588deaec357b52080081a27f2b7f5b79a10a187a9a001446791b602319bcd0c596b1ed5e7e307424635980bd524ee3f670e996fbc652086fa4810bba7fd2efa2bb850ba0e0b13cd24633116b1ba2bfb87996ce6d4124a6ce3f1911fb206fcc1fa16393f1c1ba914ffd610f2083a631e0315d7b73429317b82ce36624c7a1094a79de032b69a5cc265704ac7d4d6fbdc54a1159c2f10d501b8dfc68429d4d72c561a51512bdc5caa767e634c5424af6591cd93fcac2f6fa9796db36efb951dea6a65973ecfc93eeac2444bf1170bd1a4e1dcb74eda459114b8459986b133346bd4f4413149829bacd6b2c908fd7f598c58f9f5f62de19a1ce09c3bc99cdc2690cbc9f13e8144528aaed401a5d360d33ef10b2009a23a695c5ebaaea919c6fd192a5968755c23e89e64d0db2f96f7022783136b69e5eafac9e8a4e3fc2905cd9e8b9d8de0a02060b47ea97af241175ac055e4b062f4bc86cc3a785e37665144bf526db2a4f3c13233d4d417c80a26066ed31bfbad8ac290c529d674d3e8cdce2717da3567f790445a0c3a7abfaf678ead5ffded343a8d4341595ddbb617fc651401a4ada424118dd13b5fdcbeec848a6297ce0a8d137f5722f7b8ad6a4e5071ee7e2c21b0014aa6f16fdf4a25904bcceb52c1c15df865b5057f6c775f12270e58eda5b7960e1521e76f6480ca746992cb63e24b878ba56859b3b76ad4927f77d617ce9ababb79f02f925d6d3ff5b8a9005000cf9914fdcd2b11b8476436d2be7f1dad70248dec7eea52193491e70732c9b3c7250912625b9ac1297ba84b37e166adb4641fdab2eda03bc34035a74c13341859e0c0c1e515a41d8f62deb1bfcb145a93726b0f1769ca7cf11d47d65c23c5de899649257668fa8ba2d8d3bdf62f995c757ecef3840e7645bdb2709a3c8778211dd02bdf4c314466033e2034832e34e21ead776957b3a18e7bf9d6605a89e7b5ef3dfbd86618222933bf8840f4f264b293c7469dce6cf76e3c8e3f824a27cebfa90bc7718c1e308402118ad553f4b3afd2fa66c035ef02a6821207de2e7e40acde315a2520253e22edae1f7eef7413267320d1a2c9125c801474f7346c234abdcf1c5724cab5412d434f0d652c3d323e0d5d528545aae771c041d2ffc43c2e577cbd18d2d009cca913952ee919a2058bf6ace97ec4ced4d1648033f7f3e3865ccce69473f53f40c202c1ae0822d95f53b21115a4fe35a89e232536a4acb8dd8f7cee2187007f000b356fa614e12ec01038c42660eb8032d8df909852efcd1a1a7193aac2e6a6d284da83236ea13ab11a85bc1880732752fc25096a5e8cc1d2049b786f08e8520d46806a926f68d4c7b7d3bdbfbe80af5ecc3f6dacb8ed68052c6ddccf476cf1ee0f537817e1625eed9c32dbdc2ae62dd16075e31fa4effefedbd4f58a0e416c3890e5d17ae0e015c3e96de017ad26141efe1552726cee5d68ff4006d7ec727b5acd2266286283306ffa5ae5cfce255ed0eb9267a158c35c516bde029b3219d2508d035e32e4a3249e904d9feaf9d30bf5e86d4eca9a75e2772174f8385b643f7833903c28f0ab998ce6337953ea71367c7cf3a95d559ca23dccc5f5f1907a3003d9e642a22c69826b468b6ca51fc6f1b07ac28a3d0b81a2116ecb826b1f4b619b92e5a82c881b275ebd541ed1ba340c665e2abdf6e4f4ebeb02d0191516578f65ecb18f3d4d2a3acdfa3e04286c5b3ed488f5430070f3447fb71308dd6322922cc6d660a33706a0b3c521789fb408349924ecf05c23e1cb9f55bfb0014288f4e7bdf11cb818c14ffe087f201ffde91c13112de1091346479703374d1e4f45d9f7114eeb4fc213ec7aac755dee47d36df65c32efda646f6fb98c71d474e5cf23def104664e6eed2d13e2aad21161ebc13efb9c1ee1230cfaa6a28d41d2547f9f1afa60768c136a417dab7e56eac6f7976b7c20524cc9fdd383fcda176bebef504a4ecb817c4153911ba931f8375948f8c91c94ecca5e59f130b6e3d6b5339bee3470a5013b7348e1443c0b5c6ad4c7445065003437fe8bbdab1718b38d3987f6a49c500df77d98ee51060975cff6dc81ebf28e20e9cf6c63298e439230fa16a09672a8b6b3dc2c727a0a8e0334001554b45908e839cb50436b8d4325425ab932343d825c6249c56c2745ac27128ec2b04a1f3608843b85535b6f67f983f8896db5065bff96be551898adbb7b76db16926a6805aa3a093ac8cc583f3f46e9d415f514800825eb968fec5e9570041d159dd2451be22383d578718fbb1562e9a9b8c175fd97f4e71eb64a1c3ea715b7376fb844e9dead44884c80674484f156d093bde2e76c5b431ddc4f67044c7e5f385d6a4c024ad79ee84e208d3cb2be1bcdee49559c595c174d48fb8da695055ef90c2afe0747a1e3c9cb8eb0fdbe0f030eec56ead5402ee1c60f4fdde4266d50588ca30bc60d315b362bc07d44acb89f7cfbdc788186da25e8d94e44b0554d18d56750744ab400da98c37841604ec5ccf309546d03d61dab41509db291b5cc288d57c0f8f67139c0ee2743d0b123bbb90b0902bed9060fcbaec0f6ec13a5be236b786c699d906a401358188efeb8813d3e67e1d4235db12cab27416c0240000496bc49b5323e84637c7ae8a6fc112fff3a33a3a72a5c669ff7b5fe80ed997fdff52cc45b4eaed4755ff5b5af89dc21bff844408893132df5032cda9110c68cc0eb11437db84a72c7af06bbcfde0d9f17c4c9696f37e137e564ae61d27f4464203bad14a689f4bca01af682f1726bb580213cb3f360712e84a3c49556ae773980e1c4336cd891a4b8517d15ea51bfc1019ba74cfe0eb366ce607806ca963c2605068c2f33b8c707db3538d7adb71853098d93be68459141aa839c73217a421ff8e82fc9648603240dc313f1f37a5b0af874226747fc48a3ba09cfdd34e7035daf8159f7fd05824cdc0d7b26504c0d2405fddd83727bb9ad64d4ff65b05ba19c646db26df8e194330b45f4eba319bef11c49088714603275f59d2ae7ac1556048a3b99c383b91d93a3cf3fbf1d6dabafeb8838a84b738e7606d6f71e589e0e4e7ba718eecf711a141772ba62426627a12027a575be2ce2be86a0e04b5e040728b6bbf8a80df4bad9ea023419769f2ed156702060a1fed9d7876e1008d2a7fb744802528036ee6f232b1cbd42e01a260e4f04253cb09c8109b0fbf964361afb8d3536b441dedf091b88812575a08ce2c56f0aecbf383ec156ba5bc19d6b6173a5973f3fa6ce886369e4c3cce28e488b203caabd256817b761b54c01022499f89a93f757c7a65625143b92efd9d60f39cfe06f8e93a38f6931684794234d26afb7bc4bc23edf64ece4d1c68ebc13be846ed75b38ff58dd459f2c0c063e0cabe9ee2364f2e3a7b699f66f2f7bfc2daebe3670dece9cad0809ce3651f2f2063da20b4d8dea0266fa8591eccdf9d4d3480851d3838940492e831a156d411dfdbd49b25ba876cf54a176deb36fa8aac9add14c64e1fe382469ce5b45bd1d6a28def69834197438469b20f6dec5051a0c7793aed98f6b8e8f1c18945ebac55a6bb4132d6d60d836cce10702c3ecd0d87de8f6e55f1c1158c5036f0290900aa89b53a7bb78351b9effb45c9cd7a84043cd19b05b7cd6d283ff18f3d2191aea8ed6ed6954e265320a51c4b8a9b94597aa0a4117219c74b482652483fb17bbf57f9dd6f2391f64fa41e359641efb52890668fb9be3b9872dcf87f1c3e5209776c31",
|
|
"output_hex": "0000000000000000004a000000000100004a000000000100010000000000000001000000000000000000000000000000004a000000000100004a000000000100004a000000000100010000000000000000000000000000000100000000000000ff4900000000010000000000000000000000000000000000004a000000000100004a00000000010000000000000000000200000000000000010000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000100000000000000004a000000000100004a00000000010000000000000000000000000000000000004a000000000100004a00000000010001000000000000000000000000000000004a000000000100000000000000000000000000000000000000000000000000ff49000000000100004a0000000001000000000000000000004a00000000010001000000000000000100000000000000004a000000000100004a000000000100000000000000000001000000000000000100000000000000004a000000000100ff49000000000100004a000000000100004a00000000010001000000000000000000000000000000ff49000000000100004a000000000100004a000000000100004a000000000100",
|
|
"output_sha256": "6e66b05722bbad126a19d2df2cc0bb2161bf8c0c27a3907d9e27ad0feac0b0d9"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "CenteredBinomial/q=PulsarQ/eta=4/i=0",
|
|
"input_hex": "cc289957c44b3ac92e99d0f9933bd23bd6eb4175258d360a3878dda3e623ba0ed46470eaaf2eadfbd6ba54c196bd8cb0ed520b7f7c2e87c370595a9365e5263a64fc582cf6d87f068596b8b17ac966808f4cdae666903fcc688a9deccca3b07315ea899f89815b20260ebe27f3dc9baf9410af40a37e771359a02cdd0a953c3074b4388c0be45136b50ac97c8e0899ecc4435fb5b33b484a7408b4995c6af8e6e18dcc7577965634636f9c98d7259d953f32f562137f19c82d31d995da2a0b885a1e0b10e9ced3696c99447f5ca8c5dc6070edbdf1234bc0b7f334a495a38f41ed5c2a53ec7cadc76931c32a07b9044c850da51a26ec9806f29a15adce373c102c7d7971af4b7faaa974e6ce02198e151eece2f26c4b0d1ffb9ad7c228dcdac94503165514a2c3fa3c9f0eff4f5857567fdfe698602f956e4b960245061db017f2bd15e66265c5ec8372e2df0c38af331a0e327d4c54300634a534c32500f5b9a95e548607a9689462c905b0cd905c75ad5a22999c71774a9a28f23fd905dcba6d06f19a6dd2db17fbe1eea65fd0e97a6bed701357c0dae00be9cd2b4c183049ba88768bf691488c00d634516cdba2b504bb0cea2b83b956647b82696a3ad7f89153dadee064b71f068304b8c51cfd58d1d33172056c89fcc425a9fb77df7ab7c7d959b71083e0557be4956b10f210e9bf64abca5198cb523c9e6b3dc78281e332a31fca02047e025226ce4e6215f5a92bea586b0174d1d0a79cb54ec595653b7f429ffff5351967752aea7f000a6eb89da6e2c44d8190df4f499307dcaf49819a8a86304d42454712810730b71962e45b8021a745653b227fc421f6382ff339c83f8c480b470195a5f11ad57d6544b9ec9521b9f396661fcb6997cde5fd5b7377ee88f5a4f6642fd61d715e9b0f13111acc65f1e82112b5c834c4870a55fd8f83b4d703e2d280c7a03544bed549a7dd45db1501b49cda44a03338d53a3d0e8986fda303ebf00cd1cf74d057742721c04d6bcf1b407195e9249c3513b8c766827eb7940e93817f754ac944627498c5d3bbbb1fff66444d632655c033e8ee1a3bd852cacf2d5678073d97c6e3774f029bc7872c776915990d8174dd4dcdac89649b2b63f6ec6f73ee350ea607d5d0b1c1f65fd9353983a7d752f0a7a18c74b2bf4fcd1fa3af9359f465a7b1d8a4d257cb01d248e635f39e23c84a2c5b836ce80389924808fb1f3223369039381c4dc92eb2b7e18e49d611ee376b2aee71d1c08734b2ed795cdf2384df5c21aa475487eb6d5a62c7de2989ac924ea10196e67fd158b6672e8dfaf5690f3e91895062250fcf7c0c6feb6f25cb4239d3f882a91724aedd1db6af40a949e5ec4131c874b46d21b94b38d721e1ca913ebbb4f8496053cc3afd7ab5c12fca35a1ab2dae3ebf1d18157d7e1dfbdb5f7558bd922317fab2f3025a6f141aebdc1d61aa64a27653befd421c5a25e85046749273261e93a0cfef36b6b7405f6041e7eb672806a39bb147f1bf674143a910696e268c34ac8f3cba32fa3f37d7ee714356d6a45849ecb8643053fc03055a4357083de515ef630240bed2aef357c18ef8e72da4f3dfa78bacd64ce0b28bd1f5463ff4bdfb90e2033e1c9fa74bbc055f156d52dc9dfeadf39984f761b74b311b21aa4c2aa4448255602862459114697831d9f390fc9c8e85b4ffaaf989fa93c21f5de60d6c9f33fbaa45fad8f029fca33949623f5487d3c14bac14019303a1b35b4681187038ef7579ee81d3d21b6d5c4e3af608ede2bc53ad43cd63783918206e982693a0b8c794fac7e153f3e0eb6a12f3261b980936295d00639634cbc6cd0a0fc3e7cef4982fc8307f0fcc2cee2332d04ca0754b0da5e342b70c7cc5ae109c81c9df7cfccbe10fdbde732e907b84a1a5652bacef15ab93513dfa5d38d5467187ae66ec268d2b04e69d17825e764e70cd52636df6ae9cf4d0ff1798d5b875b9e41c64d80622de8787f9a7d0606d5e03e0fbc73cad705de2af981f8624a9a0f4076e8825644c65e7c2a33a7c25136b7937f28b7abb10f84df26c9b717088aca79bf65217536d59962833fab4815ec997cad3a1a7d49bdadd8c9a58515af99b9b5f7b101747ea204fc5befa77cd6bfd0c43fd42439fa6671b25517f58053e9e57ae25c33275c6570098de08c4cc248399be1d5a56f06160d9682aa09ac228ae833310438560f622f1fa055746bc998be16e094f29dddb6e2f2884280e37ce7ecc741b385a3e83da2fbbbc3bc672a65b6a05c3b077219f493cbc4b24b860cc0711fc6bbf4ff699bbcc402a57a07423beac7f5b5d9f9cb6e7c2296a6245ad7f2ff5e4eb9980f6927c2d577bc48535f6252d2e296325771c7566f0f41d8c3640f37171ffb87cba600f3d9b6f8ad14978252c67b4ca64872b4ece1ecfe652f0e90755ca0e5de4b38f2cff2b11f6e57273fcb37f5125d7030d0a31088b6c25eace38ed7663195d599ab764b38fa78f6b59710553158a470cde70202471ed93b50f76eb61470a8f467c318b369cc55e944a26a7f325be2a9e5d248d52f98d0a69a85338096ea41fc8d7d051da5890732a3f4627b777a031b77a8853555ee666c39edc51395686ea86b8a654980c0f249ce1fccd41e4ed0e1ec07bdaca7f865bc029c0632e9c0504cdc723ff235278d8fef4961aa136ea39c05b63eaf092eaeb49e63446e4ca9b9d289670f7b54175ea5763743df8744d9a78fd549822dcaa42946fb87b19ef5c0f84259c27992e2b2b21ea9c6f7f0d66db00c8101c80e41edda85f45d5cb7f53918fc6b82055ed0197056a148555cd8028ed4760c2573a4423cf33274cd97b1f9ea8d8f92275f8b623f4ca38d3d22ff03810ca77a5da6e559e839f0cce8b31ec3fc47b9ef13b6fac4bc70c0973cbdb469da52fcc2f7ce172362d94531635ac72d886f5088a6a644e10e7d4af5747ea05ba913842a7cbd69d3e422ee9148b64f1269a4cdcd3997b1d42ae37fd00afaa04c771c9fa403373aacb935499a6ba0c209fd681fbf0f6f6179a2199784d43d6713cfcb54a09e86a5c4fa7219ca4c950ea2a64c4c48058500f51748e759a55c3a54e1b92af73ec6a23e6552a893a9cfd7e6c7b754a5315e2c5d96b4125c9eaad0a96c95b1cbdf7c472c87c98abd2f68977971048cf6ad524a4df101da9754995efd9bea4e1e5a2a6712cda70c8758885f9244c5f0d25d6542ca290ae593f7ddc4ea0da99a997523a6cd77c55fb1e8a93dc2ea0f00e9357499a7d312d6f6fca5dfe728b7c4645c0472a7bfeeb36f279518ea7ee052329991d83aa9f8e262b21780fd3820e0f794ed25342f5f2a10d330db94b697b9d5727a9dfca6f75872625ce298e126018c6697102b9396e3b8bf74dba117c687a7559a09d42dcfefcbc728ad60f894258d4b1def8d918e722bdc98a8e63d27dae99162e3df66d6dca8c594318151e38d3632b7b2c9e021e76ad7ef77f830c6cc4cebdb2ace741aaee10d4c446126a36956bd1db3c23503309730c19ba24e950061600f8c49538b71c83c85d1475501f225f1286a4a37969d89c2c5817271633a4a71b00a40916c7c49d92d8c2aa8f3e8c60e6d146e32a5cb691beec68e7df698f896cb74f7f53a561ca562180c4e0f92f651fbca35395c853d288d27ea4abac8b73ed515722434864f49b2595f2f570bc8b1c93229226b1991567904517883ce849f6deab579c71f4b70fec59950c7e01e76f4d524f9ac0dd5882ab061cd4e7cf8b416e4195aee4b47584ea7ba2ec086fd7f6c3d72c3523395d8c19beec75b57fe5e6d99e459fb4c2521a5c629592318e6e4b84ae5bf314d466a5422f24d06242220dfb499cc7ba701231395c67d7490d9988b6275fdf0d44932fda030f4831d2cd61ba6ae90a38f7bb05c2d25acf053d01388b5a5aa8e4ce2fe3f9a8c7da8dc9843144b47ff8b78ae2a10d2f4022e18d2a866e187de51182a01072b98a0426765332a0faef6a72525649917210b50278072cf2bef3d48813e5a2aafae153b2d0f84bfd93f23b71876fe230f216b608b14a57a74192a242d5de5580ab2abb3bebd0d40e543eb07ab94746297ec1b52731229fbae69c435e8e51c322c81326725bb6c232fea95ab0fd513ba3f99d69acba811a4d5a656ffac29f798c99ebfb69a064bcc825005ce54544fe8164b831a1ba880c2fa74a5de5f03d208fc61cf235b8134457eec5f44714ce8a6005b4f187b6847bbaf4ff1c6ec5d64012df639f7591caead5f6607b517776f6b5f26014df7f735d1063212f4135191f68e20d5e91605c9b464ebb4bca0fddaf05ac94d55d69ce9e1578ec10b972563a8073272dbcc73b55cb185589489f23602bed31a512af4494ff987e2364237a0d453f08514649b58605482cf984be0f3a4c677b50b03de487ef2a1f78494dd7cb16471691c57077869cdd8126ac131c35aff6916f0a3cd967c87880650920bfa3012ca2041faa537cb39fd4ed334a71dc707dc7dae7a6523e6a8e2401531fd195ba53e35182e22754a4105a35bc3c6a046f26b4e50cea24cb0e0c806f942ac434c8630cb5dd900333d02259882625d9a766afb2f9daea9cf32bb1a9e907a52f1e4348820a8ab19542b26525be2f69b0de9e092bcb9fa67544e46d6e707447a25499bce6a3c6548690bb9d186762e0faf5e25e54f2a033fd8eb5c8edcabc9412dbf188e886583b1af56771590e30c8a57b8f14ccdaf8be02e93e2c4adbdca0ba7e01b5f973ab788e46ef14cfe30d5c5457b3f898ed69491e83156c06ed14250a01c058660abbb7aa547a4f9f8eed0f89ab7e4550c93fcd808e45b591dfadfd169ec0f6d06cdb5ee45abb5128aa09bf8441250ce6c545c7431faee162699e3d484109a099b5e2d2ea94cc84bc92c9b41eb5c956c4b997a5eda4cd738eaa3110ee5c44e0c92096c6f7dda8aae5a11cc888778fc568c1255df1345bb3b36b69c090f747b6926a4c80013e255e295475ea4f9be464be43d4cae3e830ed15286efd852021a125936285246eea0220d3bc9a5266012114a6be78cbe25079fe06528463816362b7e1b4f9da6a9b4eec54d5cf0fd60d6a6d700d6dc16b4aca4f15d7a91d084a224b63f79926961e455359b9f04dce53137a21f1d1e2f94332f4be1ad2e9143310c52406c2b27f1ce9c0f0344b03e9a89900cccb4e927edfe139add8819bef8eb2ef6361d456f7d1dd99050fc03af5186f4774e8a7c362d0ab732d8d51b2c0f08621b5b8317cd1f88150dc3688e81eeafe873f9cc97de3654f900adb511d33f1856d870bc46b913a70daed5d6a5c65edeb51a69a515591f224c74e0414da74d1978aa0177257ffe1223561d8dfb9aa468ce573913ae7092dd61e190b4cf19bbef230c607182b454d635cdb5bbd2f8ebcede2ec62ac3f89bd29a4ece8beee1e9753a981a9300914e9a7d6348e3606998e844dfecad74b3e38f722c74882905c6f02337ba0846ac7e66f185f274f4d9f6097ed3874f45d3070fc5992c1e6c42c9a1d250505a02060f6f27d7866a9ae1aa1c07ea9e38c291bd63337740b93765ef7f2cb338949386243e378b4620bcb5e02b5b326030fa5a5c83874b970d0a982078c85181e09d1fd2e6cb812e56c5e7d84d9d3f788f4653866f7563b469693c4e84142b60e6e6baa4899e56a5e1d2d5f8a4ae7d6c910ee77f7c64e9f673b4f68607826c53a0be42adca064c0f68c30c32d356e043ac9a9b5259b1e96d086c0b93caf3bf0abf2628c620d6d53903a4992374412de950d9fa26650d6d703b0f8c5edccf4566397",
|
|
"output_hex": "0000000000000000000000000000000000000000000000000100000000000000004a00000000010002000000000000000000000000000000000000000000000002000000000000000000000000000000fe49000000000100ff4900000000010000000000000000000100000000000000ff490000000001000100000000000000004a00000000010000000000000000000000000000000000004a0000000001000100000000000000020000000000000000000000000000000200000000000000004a000000000100ff4900000000010000000000000000000000000000000000004a0000000001000100000000000000004a0000000001000300000000000000ff49000000000100004a000000000100fe49000000000100004a000000000100020000000000000002000000000000000100000000000000004a000000000100004a000000000100004a000000000100004a000000000100004a000000000100000000000000000000000000000000000100000000000000fe490000000001000000000000000000004a00000000010003000000000000000100000000000000004a000000000100020000000000000002000000000000000000000000000000fe490000000001000000000000000000000000000000000000000000000000000000000000000000004a00000000010001000000000000000000000000000000",
|
|
"output_sha256": "efe313290189a4b569e36708af02061c909919966fece5c7a91e2d320bc4a1a6"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "CenteredBinomial/q=PulsarQ/eta=4/i=1",
|
|
"input_hex": "2a264a0208303e7d41ae779767d5f6ce45f2347a1a37fa687ac1c46ac73356aba2a8c334d4d162c793ccb9ddc4df89e4b9181b1096e40f54ea756a26fe91fb8115ee084af44f71073f9225df20cb333c76727b9e7d9e4cf026738fd988a0e050592b36b4ab743a81abc7f19a3e0f2e9b7c64f535bb4c694fdb8e74334b52e856171b20b1a25ec2fcee0988134ddff621494ee4ef0a67683c0b69af438402987f44fc3e5c6902d8e9d1c93096f5f1af30fad5c766ce44783aaf825290105c7d4bb26ea1a52f4346fb19f2b0c380a265fbb6ac9a5fa16fdb2b8d14ec4b19ffc53f077b8ce78579e9308bc22956adb0022f918c1fed972fc745a5eccd3ae620f58f70b6c046cf9df9eacfa2bcff2cd66383b45daeadbbea610817d7f867e251144d6443ac8063ccf020ecabb859674392af438994ce5671e33aee2374d04ec8f939a25e0427fd0f171f107499324533964c32f656175eca500469f28466657811e6ee13410a6b6f7729474b97b5198f4778c3a8401eb9dd70c3ce7180fce22773f4e9287448950d7d2dea270ee276b03a552bdad2f24a0ce2a793594cabac9d9c32b8e095abf855c59b64eefbf1c285d0479b5b0a0d990da580143005f3c0073344b2688568ed2d00e118bd9372e57a1c492cad257f98d488a251dacdc230b7902cc671aa74f4b06d09d14f7ffe9d24fbf41e9d4c06d088bde7f113afdd82f62e9437b8d49c5ea04e871e5048119747dbf166d12e221524e0898ff6ac7f44a4f065f61b8b0f799ed9642796c0e8b0bc76462ca05667099bd1adf09b270f7439eefca0e0aa4361fbfeb19f8ec6c4e96976de62319f17536c521fd22518755935211f34d3c1f4216279a5bfb2ecac92750d4f3c7fc7a111923ed89fa8222096ec8720c05f050f1a07b3661944a43479dd6eecb7ce0c60fe8c645538d6331e2b64557b78c883d1939410d4fb9a313a5a20bdd13b195f8ef8abc8e2006a61bc3d5d77b5bb4cc0d5a448bf8bbcb608561be2523ea224ceda8f1b68d135cf300b4cc65e7e7cbe099d40071a03bb61c0acce5d2248a0982df662cff2771ca27e643e63ad465bd5791c3bac08e3b1762885d7117061381f57a71eb62fb3229453dd847eed523e3a0690929ecb44a7724e44b545bdb2eb65b96c175af8ed7e02dd51f69428f5f05bf65e1385fdc82393e482d0ace0e919d68a2c840a4187b631f596641768c37bc0896a0c35bd54fd3c0a16d35b79daf23d9b7561bffb5ce3ea02c13c2fba621589edb5308744b3e9179dd724f2612d75b38295954605b71bc0671c774a9ac5265740536cf804fdfb76061a184c9fdc91b96592d6f1236d846c6c424b78b57c3554b56b04a11a01870001e8133fd65c5670d87839678bd47e72a0f7d3c4852c4b9a4bba63d365019d60fbc473d6d453ef11f8334d3c8209921df95c5714667df01f24dc16542a1600024e4a8cdcf52347ce3f1e21c8493cdf751ceb9baf7dd28c9094b7590f2e53809a34e44c5799c8fac44d2b492231a37ff6ccabb9d1f6e8b305fde26959bbd6da03064313d792db1701c1108c1c9c10e5a4207e54da838da092c5a71cd7f0d758c2dc207a9b9baba87e83a83592723771ad05f547980a4250f325ddac33c7a91d538f05f53647c0377f0f34dbbebe535eee932e84626992f46ca64992ce9164fcd62064addcad0f6e4eb836b6a98eb9dda014a6f9914b027c292d2a1df24144f4fe73b4a7cc4f3997fc28e17bf713f230565bcefe9dd3f173d2a867132e0b933d3b931dfe97adc9893ae88b1e8e16031772151a7ae53b39d40dab9776c401f2f0783e797ad3c1e637439cd160b7b4df317d4ac9065aa3cad85cb33eb525b7aba281a32142d860aa9e320bfa1af43a372ac0481bcc62c0803079007f6ddb59f0f4463c4a3a1c5c3b90cef52a1a5013b9bd689abb85149e0a5746257dd6fd6a9637525798c6eb81e0a6f0b2e1d2ee0cbf8c60f31f4104b7204c0334da538af955f388d177c06f9c36589e247269ca9cf77c5a55d19ee0eb2e078548f7da9d62ea4f8559a544838d7187e41e37096326c6cc3bc436696f98c28b53f376b4ab8baa78b10538f557f575a151f4b9c66003b9c6321e31367e2992b4a97e4e7a4b78257cfa327cacd90207ca3cf8c4b953b5ba85f9dfbba9e76268b01aee027c1760e7b1e241a8bfc829dc1587bc58a6b68fab005c1cbdf89847f43a269fb32700919d3541667dd99815cfb2c789fb6652ff22739d6ed2b55fc30ca2e774e3880e4845c24c16c1a82a9f62a255fba19d5822a3bb69bba46732122f05f2d4ea72e3628106d04e57d0d157cb9ceae979661c393c85b604114412bc3eb563b6506edd460af09ef3c69916361c28f2efcbf4184133a2e9536edc5a7c0340ce0b2e0d8d07c673e2fb7ecb5ca3ecf4abceb6124e51ee2f98ca61ac79910eabb1a9f0c677ac4ee5906d26727e28aca0d3db224d556ace227a9716c3b1ef628e6d64e9ffb9ef3d376618cd209b2a4bb16f8382cc5fa2ad9d8470bfb82a38ab5f5159491dba1a52d0f297745d4c6a7e7bcfb407e4add609838ad1b6ad7990f7eb7341e634b702983f21aafd6294af19a26e6b2b42ac3161a07500801a668a90ea0214a2aeec043904568432284ea3674429dd64498033e3ff3b10103769d264938d10f874d014e0366ef2abdba59bfafc7591790fde32b378432da6faad1aa303ab9d3682c0c998f4cd6786d8c3c8183eb8016fa54a6052a22b94c95e81365912018abd5cbb15b7dde56c89831598bdb21542da87d77fdcbd4a4d39b4611ce1ced3269500170122ed8386ac1ecf9c8d4e96942b7776516a0be64cdb870c9947050dd57e1ffb80278251826fdd1fe36eed245cdea48bbf9ff5f88565f3fe6145c93dcc9787722d30851af69e0587ec48a215c313efabe8d183ad90491f4de67c936ad037b356faa2a846e56847080be8666a578f038cf838ad08d73aeb0eee926c406a343bf1119444ac14f14c20d98f00c521bc0b50148ebbd58a11dc18bb1dbc53bda5a994010bc4df4ef15d3dc76cecf5acde2b305b40ac854d9551d7de317af04733f6254ee8a63fa9bb4a81c2032855b08924c2553aa98c52c92bcf8d39fe5c17abe57a0dd18abdc4bd3527b498c05933dbb734855b4a23a34a559c2d292de144708bd119a3d7e731786afce75ccbd051e2967c7a979188d252dc3fe21952ed6045c5017f24f6a401b5d7db357e18d79b33a33a3c2802b98ce77014e79b3f93d73534a1771d90ca012aa4515c6f1acf9857e49fe0cbbd768c57936a309c94007dd465cd9e623bac532862be7feb3291ef796a6913e2a44578425ffa0cabb6d790d9ea74e4b46420c7650e9d0a47c135d3548a856bf10c8024a98a81ddec88ee96bb0ed15fd45ff3618946e06b2875c8639b805e3612d41b718d2f790713c9d57b199478c705a5a05efcaa61caae36f005e5e5c5a3dcab20147c78460947a21ea9aa1b43b27839366f62b6d66e9af8071528a4a508423d25a0c9b2ea379bc50173b48c076cee0e1bd22de9e86cbb2893f0fb6ea3aa34c9058787b4b86045e83bafce635f0bae6a8fed1c1f77e96bf3bb9906eb078f3a91c9af834f320e41f6f65a893805cf2396f5c36fbbfb9f5cddddff8376c872191fa794830f2a0f9a269302454570c4b9008da2b344b1861c36caf69822f6eaa00212326cad488982d25ae9b0bbce354ed4efe034816aecb50ac4ae2c80c3a748c9a0c4c4ebb6c676dc4d13f260a645db1b2e4ea64ba16ad6dd02eaad3628e693e0a189aa71001a6000f67cdd2a60bd5fbd5455b9141de2532de401bb11a78854accb6b770d09685be2b9a9648f5d83ea774852ec17321d2da60d5a083ed8ae572fee4190ef001c166cf2cd0f904ea60ffaf1efaad7e878079192edcf647b431488f5f7f6a8f3827b083b4644ac8bf9d8a92c51342e74b40f9d7c290668a49a45a9ad1a03e3bba7871d4e75d5d2bb469b109fd6fa458eda2611f531cfab21be687b5b3d3bdbd82c2f5aef24971cf4214477d14134fd8f768bfa71b3c55d67f40f6b55e8b458fae79ca4fecb28359ea74b430fac3fedb3f58536faaafeacea397362517853110a643acb2dd9261f5c1caa66bcb1db1f34fa4bc7dd07ee3ec2bedd4e6e80d66b0a6ff25c5df53cca3f4e82f5883732d923b0d16af8f404a7bce1952bd696f23ffe395ab33cf60069c244212d3ed636a8c1a5472a42c0efcb8b847c09bbb94bd35021d72cfcd891fcd70fedc246f6ed2eb095621028ea8c940ffa4fa888cf74b93408783b494dd1c12cfd04f20cde47c9c283e351cb9075baba1882cd613c722a67d6802c43b504d58a9572f530898815c99e741b65a30be2545d60aa13eb0403461950b8272d8fa8a4d6c44dacf949e17562f83d344f851c247a322bf8a93e5ee80f9bec9959f3380ea56d9bd393d924fbfe86b83ce9f6615aaf75d7138db69db0c844b68a86d26f4d8971ec3edf3c68c5fb21a3cd4641e656a31e8ae49c896fa9e2285f70341ecc57936b7a1abe7a1fc8255e9b0a84b23a177a73358c7dc1db128203057b446f988c7d31ef381682504d1d055dadfbd9080874f8e7335813d912ec5c22613c7d8bd12f8f97d731968d99df246d96407a4d9549214fb1b4a617549f6663463b372cb760f173591717ed4748d85cf45f6dfa83b5f314ee1a96570cd7c98ae4c0df458d401517f77102b0a5a9b6801e031b5d9df9378c52569dd52fe49b5b4cc3afffed42ee6318d9bab80a0ad691b94dcd88951631429e4587e8c109b748ad8ee31c905008432df435e72d913b45bdead058e436eda4b7e8a9a5d5f1f5638c44cad9c510dcf0883c8dcbc8921a0433aef5d49f38aec401ececefbb5dbace2a6ae527731a35721428f97daf095650532a63db9f0a0e43bbc2a74efe72a03d1ef8f933edabe55ef34cc4d76117fd48446ceb5ea67419a6be22d2ba998a3b0434b643f36bed91af643cc371df031eb0e961278505ff713836197dbef54cfa0d2ab5065a18bd7ca9cb135e27603e84cd493f920f7804e3982937c085ceefea1f6789f417365abc8fa185f349922dc48bbb8558ff77f98931efb60aa10d38c9f609cccbe18c749fd252fa9b719b928267058f1cc89c7a26474506036490ce78f8e7b460d0884fea2fc75c62d3a53efdd67046a85fc86286adea7b6f35cdfab2957b1326d529e1e186d07c61c7c86ae106fb3b2ce5539b23b187e7193cd74bc076c06c3874ce18a93d401cb071d45cd3a4d88b6ad34ceee32406cb4f7fc723d915ab5a0b507f35595e00f2906f1f49d90527d63e84667a960833c5d67d66f1e1a564e0d53002f51eed39d5722d47c51f4c0305be67b4a9e9355829ec488340303c930c3cef9a91075e4f9ce52020133304aa2d23e2f5c8035262ea0e44fb20b1f838fbf632a5025cd72b141f50cdcf20f4736899e15f2cc89bccc9ebe99707f9777f6972291e88da8e6858b7460a6c0397335bf883f474e1f09afe259f27427e722a4d99abe0a3ba8f38d5e68862b40e98a3b40bcbc1340106db88fa511bb9000926a8aa8e3445f67319dfe901ae4f600a32743f25a24a553f7ac6a79e5a841336e8532ba8f78771a67a16c12b988b0a711912b457ee75acbf71e943f7978761dce216b63acbcf54ea3552e0d9803184b91d4b416842e33cfa64babf69a64ceddf1f7107f4e79fa3dcb380a8971a8674276e88d0d03165cfc419307ff600fc950459297e68e211ef8735d8b23afbdb706967f3f944303f16b9bfcebd4ab066de",
|
|
"output_hex": "01000000000000000100000000000000010000000000000001000000000000000100000000000000ff490000000001000100000000000000000000000000000000000000000000000100000000000000000000000000000001000000000000000100000000000000004a000000000100ff4900000000010001000000000000000100000000000000fe49000000000100004a000000000100004a00000000010001000000000000000100000000000000ff49000000000100004a000000000100004a000000000100004a000000000100004a00000000010000000000000000000100000000000000000000000000000000000000000000000100000000000000004a000000000100004a0000000001000000000000000000004a000000000100ff49000000000100ff49000000000100004a000000000100010000000000000000000000000000000000000000000000004a0000000001000000000000000000004a00000000010001000000000000000100000000000000ff49000000000100004a00000000010000000000000000000200000000000000004a0000000001000000000000000000ff490000000001000400000000000000004a000000000100004a000000000100004a00000000010000000000000000000100000000000000004a000000000100004a000000000100004a0000000001000000000000000000",
|
|
"output_sha256": "1a8e9c1cd9e58afe043f7fe36d42254f05e86cdeba6ced85cc97f95452059292"
|
|
},
|
|
{
|
|
"header": {
|
|
"parameter_set": "math.sample.v1",
|
|
"modulus_id": "pulsar-q-0x1000000004a01",
|
|
"backend_id": "pure-go",
|
|
"hash_suite_id": "blake3-v1",
|
|
"implementation_name": "luxfi/math/sample",
|
|
"implementation_version": "v1.3.0"
|
|
},
|
|
"test": "CenteredBinomial/q=PulsarQ/eta=4/i=2",
|
|
"input_hex": "44454fb18b534694683ab7b70664e524044f6ecb5ea01fa30db0f07698a3e723a1f8e6e8595d2a3f524ced23f818c2541971ad3102bef0511b82a707221c5af4814ac32c0d57b963ee132310fba192bf42566c9635bfda0d83c12ba35551a1434d4517269263abd937b97ae9386f6db62ff90bd4742bf596d1a049c6fb0a1c9c27e7654fbae9a1a62659e800b725c3a803e351522e0edb80dcb77e73ecf68dcb01a62e986c752a2122820242df74f392f8566cee8c851310156f3228d8418383b53b03951d03ce75586991ab67fdde282c57e1e5f472a50ffd481a3a598ec068376045ca7c655cb8cad40ee7848a2605445cdb55c04f629ccf6ffea8771f94f60b2287547cf70799f2863abdfef1c9d157265bcabe30458ddbec269fbf647bbb191208b30a0b8c7ec9ed6bdbb3c72b58662255f080692eebcab913dd916ef3a456323ed708890128ae236489d9889173fc1c83c185352fe6954d3029081cdb6a848a92571256a36fb1bbe2bb8a614adf2b83e375c3fc024d1350ab44cc77e19a17cd35b53b79748584984d11d9105f55b5888c97a539d0c14371624a35222065784e3776e9da74d5a710ece9d43f1681e305099f71f12e799d64605c2fca6ec0e52c174c44e1235808e97142c6d5ab65d15e65fca25aec48bfca552e05b16628068480713239611ae2e302d51d2a6266d9658ff813018e3e3b46147bda8bbf2f4c414fb4be6656daa07cadb38bdbc664baa314b66b1af9e85be7e03565c305634afb42d5aa9e8eae93dd8937e17f4fa0d6e7d0977115c0fecb47426715615740b465521863c8fc1c71baaccde46c1bbb742742d04360ee157f99c515b554c5599a8417b2290cb6b1396ec7383cbc66e93f18f94ac3bc797bb7cf01d28162db247f8756d31c47a9b4fac925eac7d2005510168a06c2de9d04eabc53e2fd7a537819a15affd4d26dea7d5b4a2d21fc5f19851f933adf05738cc94722726d9d816d2460e1c3edd6630455370d6397e3097271987642c4cb10d3df2a8ba92ff68b5ecc99e4fcef7e90b3d409bea853526310a441db016d523124a1a912e6c46335125bcc473ba846a4c0e9a75f082d8dbe3c46af6b4e82465bce9ee281baad48ec71a4576455389c34ef91141018195839ba55c64b8e6bdb5abf85812f7110f6b292bd1220bbbd71f76f1233a28d7503874d761c956131212fcc9f1558ad82f8ee533d35a9e685be64aec427e31be8f0ffe126c17a26702d47d8e20965ae85520485a4040565c522c395c264e5f0aba96d75af18b8fb80f2b0e9fca0c67ed4cd214f6405a650c661a27b09a37ba4cfcd9d74a16ae7079d7902f9160421136ec0b9b8934b85fc512bb4d39bc425b82493bdee09a68d4163dcc587fa5c8bd553cfeb89a242795a8148b9bc2045c9ed2e43f8d4571db9506e6dd943989071d6bdd990ad93b5c2a868e22cd73b9b4aaf7ac557a7c93055fcad3e51c277108cc1f0903faf0bd4737ccef50c4dcd59c332ae35c3baf18857649feb1738ae090c4f574fc2c0e99abfb4217aaf922730b0b7200ea7b12b2a392bb7c5ba5af695355a06f3c0fd017d98c643e7d4d8fdf9366c7bb39c12362993c1c61528f87611e347b152eecf0ace1323d32453f420b4d7a27a85314b688c08552add6c305362b5bc438d39a834c9177eb38606c753430a9daedd77f384506429ef0a5a1575869ab1f67f0e75cb1391d0e62f1d6164648f41e7df71af6c5142ade0d5d1b325d8b2c80ea2c6aaf57acec4cad3f47bc073a86befe07afbb39e0a4861c4da4ab2c2a8f803d650bd608cb5280be5b8ffd7bbcd4acebbd33b97091b4c884179bf68f5a5807f810c7de9b28459c0057fb650c54f7830520b643891703b84898a26ec76e0e66420bd3bd12b73928a94cb57b9f9baa81cbd73df289f8fc55bbd26fac05f44e8cd47a68d2b998d2ef265db25bc70d6654d7a51f9e3172d662c6d6098881c745a0640e52133f6cc60ddba1ad8fb47992e021c8b25f17a6fb6bcf0bfe48e87d211ab7a698f1dde6dd4a18fd77c441b13417329bdf6d711291f889e8755e2cea7f19ec6c90475f882ff3c4b4a3285c70c3c2d2ca123c42ab033c1024c23f372cd4eaaac3da0bf4fba504667694712a72267af5b8e0c4e7d32d81ade77d646f5d2ff1e9dab5cf5c22f0168e9639d1ab4f1178c2ac6b6e6634ab8947cf092debfb28007c75b11215057888b83e9f4ba38282aba15eabf079cd0f4d29d0fd230b532e81436d19d8a9e8a7d1556adece92143057ef599768e34735cbf597fe3b83aef77cb73ecf489ac9fb43f88d7d897f9349d93256ceeedafaf419079ab9aa34c681f049cdc72cc830abcc830934cf22dd5d47ea31aa1c310d80ef973f9cf00434f6fee8bd30745fec05e71a17c1579dd482d152a20220c460e90b20663291806b9fdcd40c1ca804143aba6d83158e6bd857da87c45044592b61d98927feb7c1378c27ac5fbe0c5e289dc41ac5164508b8fc5bf4b817ac26cea6bb9248ce680d64b85b66b9e4436c04a9c762092f44ef930c17cd150739b3fabe061db9f6f6f7abe8393470bae169b72f3acfac7442af776070a5d77449520c27b4d162b50163418ff1129927b1d653312ffdc79c6cd14fccf542de2483028d2f3a1ddfbbd92a2431ec8227b3fbf19a932207abb226207284e2b89ec91d14e27e7d4fbcc60bb6f20962cfe60397723fe8741ad254086f1ba5dd4b2074f74543a355c4475566eef3db2cd7b04453d62849209713f18d3c17205091851866a21ec68e25ffa9a091b37deaac3490004fc2cbece1e7c7ef538b68cab549f0767837ef116292d74f7aecd285f0e81906c8c041241745a5923eadfcb4007234081c24df2253fd4de5247220ae91b0135bc938dc143c527b5eaab917716fb6b9753022f4769be2d6a837a3cb746a83de00abd3f34ad49a8fbac6703f657fdb9574acfe31c508dccb524d87e65b4eb013fa9bae9bdc9bbe409769d3b400686a24ac9ad382990216e8f7965e0c4334d548654bbebe03a9ecfa87edf72c044fbb4e3f39ca604176f2261319b6167117833205df8db769eb8ec0880de324fc98730121c24a1e17af6cc56fa3f183756f20f05abbf878864838b1af7f3989fe005d0195bbbe548cff6c9f1761486e820d30923cade2b65b6e7fd5ae87c1e146573d179a5896967f527b0e78d7cb6d994cbb44e2e49b3645982a4195baed6af69e5e59232cdea3c0c05257d01b58e2c2244e4fecd98814eaa1f6e3c6a1bd8cfac6986c0cd96736bb0a5972bed55c5ab60f2e7ac23e3116b711795e0951e2f873e21515379644fb9a77401facfe0ede61e0e5b815029fb82b8136bc9c5c566ebbc0fe1b1e820db4a5fbef49cc1de93c00f71dbf458add1e877fda4b10660169d8cec84541f2710e7799aa6047acb36f2e7b0eff634fa5a475eb3e7d8a335751cbad7bf00fbce276dfed1f739461a2dcc9aaa24e7348c005f2add12be141521c248e1aa9e2b9edcd7f9e2857315b607517ff9f5212bfd2aeedb0bff20fbc5bb4c85f46102c2617ccfa66c22394e2655278df218cbde0f0d1dcbe2e758bf0bbd2abd103102e9701a36834f706ffec6c5c5e377f69c0ed7a3a4d306ce5ad5054d066042254331f2184900d5b52ce271c8825422fabea604efea5a205b3a19a42dde58091afe275f4f0f919c4d0f27ea80b8e019f62a55a4677a50581fda6d2f18ba26c380c86c0b6ce79f49f75e354dbec4e45a467ae61a22eaf4f1e7cd472006f892ad11f25d857d0ea02375410e4749acd8d21850b3588788d03eafe8df21a1cba1d21d7963a246ce2914050e93683ea27636ceecc37491683a062b621efd55d8fc2d694b6789fd0e5789eb16dd917a8869b8bec8bc77ec6d77b098ba54e9d254ce11aa4aaf34ebd20a110da60e715c36b582b5374ccd51f0f2e7164147aa130086e8b6fbc12bdd9a125687de2a2e2c727cde58343677f3676f8fc08fd3dcccab2b5d33be8118fabbf5175df606b5f33741828a2b9195820489e350ffa2183f449629ddac2793796d6b7b99cb7fb3948beecdda420755bd4dcbb13380275fb7cde741803445762953f3ece54b932b920ff12db9ebae8b0ba05ea97ffae41741c159a5cbd09c012804ae6caa74272036404c63a14558fbb5afa2515f0d101448606ded8432e77bdad53963a6cd2837d10a592410db11dc9c2e495ea201d22cd5cb363876e89202500259d021cceb0e7b9c777859b331937e3f465ff7e3f7dde420cc01cc907640e908e974a764985ac407ecd254820573b89c2785bc2f2c39078b0349f1ddd439ee4c6f80d41f11feb3a102716b2a6d15782f07a288f71524aed5b4b7f93c0950f228d224e62eed435889a67872934da339eaf73fbc3fa936c62d27f8b49466e5fd0af97abb5219f33e4e0eaf5af1124b9da4853897badecb72534649aae829c1ccef7b1fb9d33beafc20178076f203cd627ba133453d3b4a0a2ebbf5cabbbb2b6e8b02eea6c5a384b821d9ba3e7f99258c45d7c77948682765a9b91c410e8f188e07b92999943d1ad1fc0c795e130d7317b7a951662348f88ff956c4370101ac0020474baa4b310d8db570cf910f6742aa9387de0572338a3d240dac6752abe802db42b2a8e59335ebb6cfd92f91479fefafec09732adbcef3972db6fc078d4b9ad5f3267a6d815109b787432957d804510f77b1541da75902b0204af9d42edd80d2767685daa29d9478d9bc14d483facd264947c99469bd9cdd54a6cd5f4ac3dbf0c38b8b79762f2f71611d3455dc235c7ebf3f3c499f14c907e0d3b65c1d0384ec6cca6151df9c3964cbe97b2d5e2ffa136b199f388cc2919bac5dbb17f74a333ebf916ac9c59c2f7b840891a0fe3eb60ef711aa71298590c5844b81835617a6a5ef1e58d71f5a4d071f7108d36fc53029884d27119f3a997202169e6cbba04e9190928a0b9cb0ca4120a332e9fedbff61e82ba440e985108113b979b6f690539b4ea70b86e39a6d1f0e8e2838df7619807dfa64ef1d424c6ebf93f6716a923933c60d1495e08df83bcc49129b9956c725fa3b86caf15509ede61e97efed66e6b29d4375cd7f9e110863f3a37348ed0222330071c4a22461587cfad5b552f9e68b572d4855fb1c188e04e6f5081b69d9335797b58eee188c25d62c6ca54546e5a30fe429eb657a3c329db9e8e9ca14e206b0b6848356e30777d7296c26fe329711a0ffe8b9a317b55475ee8c3584cef9135cb06a40f9c8c0690dd6bf6d25e1c8511e775e45d8a4e289c8674033163b4b90ef40cb4f7cc4b7913c33959bdb6fb6e38e60e0f07dba7d87f85a820652dbf804d86bf90dfc49a84262c50ba27da85d6461a490f6dfbb1efeb092c98dcb68e7e1eda0127d4a60dba97957111b8baf446012cdfc13a406a6e79ddc932d3967c7983044433d9e960480ae3a7551978a56e3eb45e8be3f30e71082e8c48681ff23d32b304a949f5e66a2576351341be1a03542de101c1173b50854d8f3dfde2763d6c323ea1ce40a00948e771f07c45f96196096f3fa268400c17eefb9e1fc92c2ab5482c7952d749daa9dfd096838b177cad310f0bc92ace8c30aadae6d791f18132be6e0358305546583b0988ad474194dfbd7044c24bd9184be6f203b0b23c08e5a3ec8c8c2c9653ca6f5db86131bb771d01ed8c97c578cc106bacf3921c7b1ae762906acc6b87049444d27699afa44aa377daeffb0dcc562a003023b856c88f98a3f53a04cb9c0bbd11bd5234fee9a9b4bbb7a888fd92c458398f015",
|
|
"output_hex": "000000000000000001000000000000000300000000000000ff49000000000100020000000000000000000000000000000100000000000000004a000000000100004a0000000001000000000000000000000000000000000000000000000000000200000000000000004a000000000100004a000000000100000000000000000001000000000000000300000000000000010000000000000001000000000000000100000000000000ff49000000000100030000000000000000000000000000000300000000000000fe49000000000100fd49000000000100004a000000000100004a000000000100000000000000000000000000000000000100000000000000004a000000000100fe49000000000100004a000000000100ff490000000001000000000000000000010000000000000001000000000000000200000000000000004a000000000100010000000000000000000000000000000100000000000000fe490000000001000000000000000000004a000000000100004a0000000001000100000000000000ff490000000001000100000000000000004a00000000010001000000000000000000000000000000fd49000000000100004a0000000001000200000000000000000000000000000001000000000000000300000000000000000000000000000001000000000000000000000000000000fe49000000000100",
|
|
"output_sha256": "3b1f680ece28c4c03e7faa453ab6e40220711cd0576da2edd517e990035d0a9e"
|
|
}
|
|
]
|
|
}
|