purecrypto 0.6.5

A pure-Rust cryptography toolkit with no foreign-code dependencies, from constant-time primitives up to keys, X.509 and TLS.
Documentation
type ExtractVec = (&'static str, &'static str);
type HashVec = (&'static str, u32, &'static [&'static str], &'static str);
type PrfVec = (&'static str, &'static str, usize, &'static str);
type EncVec = (
    &'static str,
    &'static str,
    &'static [&'static str],
    usize,
    &'static str,
    &'static str,
);

const EXTRACT: &[ExtractVec] = &[
    ("", "b32811423377f52d7862286ee1a72ee540524380fda1724a6f25d7978c6fd3244a6caf0498812673c5e05ef583825100"),
    ("54686973206973206120737472696e67", "d912a63984871adca67ab2839b56db5a457ed7ac01ab0ce5de9779519e419a317380cc9f6db43ff2a3ffb1147ba806a6"),
    ("54686973206973206120737472696e67206f66206174206c6561737420656967", "aa9ca3ade6ab14ece6be4014747d782e078461d285e8720e8be115a98ec31e6227812e81eeafe7f745f69de80a050bf8"),
    ("54686973206973206120737472696e67206f66206174206c65617374206569676874792063686172616374657273746f", "54686973206973206120737472696e67206f66206174206c65617374206569676874792063686172616374657273746f"),
];
// (k, tau_bits, [data...], v)
const HASH: &[HashVec] = &[
    ("0195ac997ea05f07c44207431e30bacb3f800d67358ba2c5968c1891eb506e893a7982199658221a03baa89ccc2b85d5", 21, &["1fa7981eae7f3fe470ae40e446db83c185511c8754716df8747c5c38d8bd620d6f5950b4d24ed96d2d"], "5442bff1597f8d3f3f01f5f825667663"),
    ("28387659a10fbc0fa7e15d8e3ef664cdeb90773146d54313d14236d0606f3ffd8b30779f8f16ede2d29c36c6cb9387a5", 100, &["0d2245050601b46a76d218ce8463a206752542770e3dfe661e3050d838134ae4115bb5d5eea0d7157dace4798a9afd88c3023a65cfd1e97e78e7300a6b46ff1ab96f5b00ef06b1319d63df5c4566","3e5565b05113b45a0752f3d8eda31d068b5ae3796f410725d31cc2921dc8acbe862afa7bb56dbf93fd0b838433807ad9263e32786a8bbf"], "8b776042ebe197299bf29ea1643387ec"),
    ("337bfd1b656e3b1da5b20a33386fb113753155afe17351cc132c53feeb0da12290f43179d483268f8909ee4fe6dfc87d", 227, &["fc20d98a6d29f504c8b7faad81417bca699d46c1ee0730c09c1317e5d6f60779fe71f0a6e8dc1d9a23c4e6163ab6d8ba4a9d4ad85e4ca3b8a59b2efa4470","9054143ef7544d294f946fec6c29cf9eb23a2ea193f0c5248bfb","f656ae556730c097761c78433954a5"], "c98e5656e928484a99e33964c6c89a26"),
    ("fc1973335311c1d8f640f87575a0e00cf911f59c9a414455b14a5de8788c51f97c0aa1aca886f0589ff43ba8adfe4cd3", 125, &["a501043c37bb761e272b8eaa7d2749b0f3f2c12de6b18f7aa3b2a0eb51aee0e86035f83c0f3b25","6ea2427331ddc8df64bd41e6d92143a1187490dd6dd48249f324cf421f14088acf53ce5a42291a4c99814f1e81845ef3e58f850e6ee408c39e335b835d9f782a07da179482d38b9dbb29d2ac0db9bfeddc96c8694033362b7ef3078f8387","83132c0f339f2b87d57537e68935e2a33fb6718faea673bffdfbe6baac651f8e9f2a7bcfaf7469f75cbd1ed9f3","5eec38da1b"], "0201941ed189dc7905afb511ed6271dc"),
    ("abc22e1cf189d810e346c6e502366b045b9486d12edf99f6a27b8168ea1d62db291abafdb7b64bf5f853e73982076cb4", 18, &["6ea2197ec9bba733ab2505c6f3ef4ddf38670eb6c69e1923a7aba3d3e0395e1de1c85b9be8990ad2bed35b58a09281d7e616f75073eb806e046544","29fb13f551a58ab816f896ff940a8108","4f18a3b6e9cc0cba308bddf4e76c41f1ae81c41dfe152626939d98e08d9a53a67af31460cdb8bcece07f5f89f257f151d84b6d8df2f7c9da97caeded468f2bdbca158121a7fc1a34082347b320ab446e1d8c2a98c430","6cd7ac9b3eefe9bc9f9b2a5c4807c33dc6e1584b129af65e48da9d7d1b597af480111b156bd89d0a4dccd880d2a421","d89595d1a7213f48b77b0769344bf131356831d567c48a2f79beef0f53a7a9ebc880cd318b9a886e46188052feb3d50b91901d777f1b0e6842aa97574ba4481fbd92710c1206026b"], "8233bcad26261b285b1d31574af2426c"),
    ("c9645ad7a273c3d5f15daaf3b36690126e8c05de2b9c5399633280909c51da9a63ea36d9a5212bc4ccc65d66d62d7d85", 478, &["b261adc2","148611bbe1f1f9b2081d037ca697ff052208bb109fa15825a0438da4587d78d6dff454e50cfa8defcc3e0d87822b934a","b1fc3228014852c43381bb6d59ac7204d25f4fce2078a3df9fa2b5a0e82b0675b759539c1215ab00398087f231e88be21a0f5f676ae20b5cfa122cc7b33cbf503755cf227455e760436d67956e","69bc4df512b748900d0f90","fa164c8c36694ae18a490da9de4da7a36f1fb63d36bec7","dbc2c84e95337590348aa53ab9bc44808025c7049052cfdfbaf46fc0fe346b406d11e230959ceb597ecdbcad37b447591b60d43577643aff2610cfc83f104e61159b37caf72deac23a2bcb0559eb66317981a0511c3893c7a7b846ae"], "2eca9ab640466fc523c548a3ac6e2792"),
];
// (k, delta, tau_bytes, r)
const PRF: &[PrfVec] = &[
    ("7497dcc7f88c4fe80e7c6872b56c7fa63b822f560c711c78762b246462c9302376aff0a8a4eb43c39e8b03aa7f70d255", "7c5adb92e7da20b1e0b7b858c1cf07db", 31, "c38eda88131d204627828ab60516aa5328113b8f17daf7f9d348f2377c6034"),
    ("0c691eafe08522f1f853df074ee87a0c712bb5184a92af64c08de0d667038abfc81d509fc58faea76238d7e5c382cc6d", "d761c87ce1bad3baae688edebfc2baa4", 25, "2a4ac0c2c386744dd72946c8f6ce78215d6f8176781d6102fe"),
    ("85022d5cc63901d5839fa19cc398d2da8b1a90f5745b322dbd5a6441fe3f3ca331da305716402fcc55b19f86f57e1914", "26e9e4b48349973219bd78edefbcfd99", 30, "36d2337e2993c940190af3829f8d764d0fe2286c12af99bf6cf231a477a5"),
    ("a15b7bb8494122d6fcb9f16c6c935882e04170d0cadf1266a4dff6a0fd3cc02de03e386a1284e561959b0eef3bc55058", "0a798a0b4b92f172aa1e9546886cad39", 16, "7b156501f550bbc8837f308334b97852"),
    ("f268bea9de69058f44c334c3657db9c631dd18572be6de39dbf62cae7579f3f42ba62a73b18710c754cb05bb02de4cb5", "5e0fd72fc60be675f59f0d36d6e019c9", 22, "ab4240a60b42adedb47a0f86a9a5bb0c3166a7201cd3"),
    ("fb3ec3d443f5d7abb51c11f19a5afaa8979e5054ef08d1878a7fe4e41a5009c7a4fb0903c63f5cbc214eac3888e962ad", "ce76025885e35349071b3b5962bb97b7", 20, "2158199a9095d620dbe4772fea74660127133f65"),
];
// ENC_NO_AD: (k, nonce, [ad...], tau_bytes, m, c)
const ENC_NO_AD: &[EncVec] = &[
    ("ec6dc9fb5e68dbc2a7615c67baf5b8e472953b84918f1e0c4e01cf43387535d292c4be5657849d84246c7253a3252577", "05ef180b20d561bf6024a4ecf725fc17", &[], 0, "82ed7abbe93cb1a7ec2d1072f591c058237ff54fc4d44d86cb07c0620675b56b", "8adacd91e46ed69d6c7396c0933eb4d5c125b202875e496cb32f49fb3304e489"),
    ("f2ff1296e30225f15f8c6154acf68ef058babb7c4d149d39c3593ef0a28b0f1adbcc82f1a1c94753a5531d834468a88a", "98905f44c2221ce9d852c52f96a1c5a9", &[], 16, "f1b900f6d143a289ce0b3bf4cd598702709bf424ba8c0ef1144261480cc5c442", "ccc8a68697e372e34400c1546d2e9d38b5a027f73e3e6c4d54c0505a60a3f0d49dbf164ea0301c7d7520777e70c24bfa"),
    ("676a82c183ea6e3303be10693f1795b61e3be366091eb605fc4d8e03f762d7660af2036b7c533beba77ce14bd87aaecc", "55086ac62373cf148c92f4d47586e0ad", &[], 0, "7641ec24b140201105f2631fffbcd221c30d0e75b6eb091849dbebbd7d7ec43f96e576c58a786173c0871934cee04202b0ff23b5ef42f32de5bf1bc34f5179c7d183b24ff16d7462bcc61d8d473401ba7df55a234bd89e99a789f668b6318248ab97a12df95dc45607a059b8e4b3b2ada6d189324a49adc91f93453900a0d20320cb8a9285f092a0c77dfbd2dc0902a4df9793ce5119a0c3207d538fe49e952d01092761a25ddf0b578e9d44cbb6bac52994c143196a28921fb3dcddc2b0928855c7c1647e33610cdd81b789da3c0f86ad1073a688daccbabe795bd13e681eddd93256ddf96a937393e5b0499a1d7744df8cbd35cf59db75ae57a97c61e03d4250ebcb24970e3b7f31a75c73f9c2a96a6c7bb14ea44111faf4f3b8ce7c326ab04c7adeaaa1560604fbd6de083c7064eed797bd00a28d0c8b1c4e0ee214dfe9994a85af8f2f95b41a7b5f64bc5bfbf702573f768c6dd6bd28d2b1a794cfddd4cbec5fc85f6d9f50f8a71224772c12ad8162dcbc729caa570254fad0ad353d27281a85bc5dbc0cbc145c2deee4508d90f1cc43073c81dee3c6eee50c6ee8a332c43475457a6e34b481c7d668f05838a75b3f193dc77bd65951375387250959b3dab7140b349cc583b68dff04ebae9d53be2535aa96e90fad2bf332c7ddb43a5f156dc588a16bf14ad3646443e711acd3c11c5ffc431307ab3bdb35fd6739af961f", "f0e727399bd4909141dabd62795c3fd78db2f44ebfc36a64ef49177e9241e53d5c886fea1bb775ed8004aaff21bc079b524bd1dcd45aaba4a205cb414d882304e5b04ca6523b6aae847de8629a45c6bf105c1c0e243d311b1d83d7d0c74a23c875489e7f7c5b7a48488653c3cd139079cda3852dfbef07ed1079d0d77aa994c4ee0a9f517df557988672ac91681d63cbf5459cea3fa1b769c56c592eb3761a734cbbef5de5990c69708cbae0723cb8c15dd7d2004c5957b6a2417ea5edd44433db3a05ac69ca567e9eff7749394bc6746a32d5eac88341b26fd3a2ee7b732e42109d757c5592caaa780374cc89ac0df9f5a54bedd7b6574b8d2e9df54b317706b4162a2ee8f33d82f8cce8ef2c8fe3bf47c1d47f98baec521fedd6d44532529382cb3e7a5aa32fa26520401a97d64f4b396a9fc2bd9d6c4ecb8d9bf7fde7ec751dcc59ee2cac4c59557a4c48b202540931ae0f9dfce1bbb2a52d1729d3d4bb1c41b12d616e5a77da91f161da92fe1db671bff11900c3fbbd0601b746e3c59a888c20fba97b12de37ca82cf8a31e8ef715fcb06ef1067e325a5697d75ea68ebfce816c59adfc3a07597a0b708b3c3354ca71eb0cb72d8d6e9fb88f5d2e7efd33271fa27c16403d69b8a15ae5bb2ceddd6296e2386efcd7115e2d5f3862ad2062490bcae93cf90ba0f7883e12671871d18f19d65e86984d35b1c5868ee0c07fe41"),
    ("ba3f9ae059cebb8f149e69d54c2d4b9475df9eee521dc17791648a0376a888acf320c74c4dc88c40432a2fa6a91aad8e", "5460f94e8ed9abe67872c8e4f179caab", &[], 16, "d48ad86d43eafd98e51d8b3c756578963507d679c09e00b38c01fe0f0032544f1308712a3fcd84707a70d9cc4f9e86c39ddd3cb007340744c51095276f43a98e81b058d48a98ea7faef981f9700f8423e3f5bc28b19993e7cc0fbc49c88ec18a4fe01d89fff0ab22dec9c10fd74846c51798808935f317ffb5608627a6518d0b16fd6f7a21ad809fabd13dc33cc546698b9051da9d092c6c95b607f379b6b75c8e2e1ca3310b68377aaecb6acda8060a56b3d59b55ed51676a70861b61dbda3c30d06a9bbc8da0c2f58d790e7c50561d8fc754bcfd945e0b39c02b472186299303a976781fa810c9d832c833e22cc2a04c20be2b01a70d78ce672b9a8b78032cb99fa5ad0657d868a8f39f84ccc5e3202b6eac7e9b522b672cdaa493044b030a9c6726c93c862281d3799b00c2772764ca1c7d4fbad8859994a71683a3acbeafb15ee4f07cd8a4b647c4cd88968a6b55c5c12c0608f67c3949a3e4b14b2ff3257ebe0d019ad621f8161ff4e9146418225adc5c158c5e1e4d8ec4095e7c65366dc34415fb7ba5b54096ac8642d9e31f0334e1b2bc4717580b6ec41abf327c02df0dd5be6d572efcbe5dcf0327d1bcb18c6a42d7f52e6d34361b7531aa020f8620e3a7a26f6579fd4716b5c4dca0701ace1154bc158d891761c7e21752ce773a7e1bf06ddd4e85c0ede2c9b097128f6d17251a726cd572a266211c9e38e0ed310f", "ba152b2913372575652d57b6c1212c7dc6c019ee597cbbd55f2d736e8600a1ac9de72489bc74656e3404fe00cafd3d5532876b89d73ef797fb4c6e21b3f8f160351c27155d4bbdffbe45946d41d5f3fb644986e514e91e7d49e5797a5a90fed869f90caaea3dd32abf555142b62c69f2c9376fdbbb9da486081f9cdcde77e58dd9563030700efad2f4f47cb37f55edbd39abd1bd39e9a14d623e1fd6e9965cf8dfd605d85bfb3552827cb54e0ce1329dece0ec323197a0578f899df193cc2c8f877c56574133b98e19ac8866e023b646fbc4f7d371eef13a5e454d8690f0127e6f3310bbbe60e1147509104d3aa1369d14258b11301483d31a74ff7701fa2533cad60197e8fe14d6a50ce0c0cb34a6a95a52f144aa29c844ca74fc5ce9ae0df2957a2c55eda19c5132cb9a9b76aea3054af83b54bb7dee6d51300e093d471abb6c8ef4519849054622959d816861bc0a149ed3af07821ed87c16c3d80c428601a997e37655d1b38626d513a76beeb0a32dc3952334190db6a99117dcf50bf3138ee191fcb30dcf6c29dfa26bc02ff4f250184c441169c7b3c40003444636c78f5af2e9452eee1e4a591993e045f798e81fed0a7f47318186fda7975cad650dc482f088df1c92e43b6f0a45859d641813d7a26397bb5b4d2bf9e8293dcab87292ecf7c4dd773e6b755017dcb666a1a191e83f2d339de293fc53d8fb99246a29ed79ec7ac10a0e07285e03ab5928e360b3"),
];
// ENC_16K: (k, nonce, [ad...], tau_bytes, m, c)
const ENC_16K: &[EncVec] = &[
    ("76c50c0782679d1612bb5cda4a421ea8", "e5cd1186a3287c0d718b4a0fb8cf2960", &[], 0, "941f52468958600280c979761c1b714178b343524de4ef613fe0af32d3053fac", "b961586b8481ed3f803f3d2d0c52998018cc59b8b79041d6ff0cee5f8ca49ef8"),
    ("4a0aac50f6578832b02cb99032258482", "5c2b639ecf3bc07c4613f0582535d85e", &[], 16, "76bbe998284c91ec55b4b5ed72cd9dfafd728ab635fe8e0fba3dc232d9ba16fb", "bc432ee691dde8d69de6ecee9fe87287ae82a225b7729571b2e95fdd38bb0e12ed5b7af1a137e8816c9a47c9927bac78"),
    ("442707fa4b3fad1b7a5d419e73f360b4", "84d96e64cbbe4e91958c127ec56f8836", &[], 0, "db2fee3d21dd0b0d669e1eeb909f2aba4db72a75a19c6ddd5c1e5648bb3c89c218d6c3788d2a4cd1ab34a856c0bffadafca263fc8078f155696614ff3978ec498337689e0072021852adcb52e4c02814649112a2f4c5f2130fd78678d37dd800e5c6555f11e3d90307a8ee0d1c58cbc852316ac93df0dc3ec6d767481e28f866e3f9f0546920e18e2237f5b331f55a5d3ba11b3c6e0ac5a2b5fbc77daab8794a9be63692906fa4ba8ffb40a5cbf7a0e0419d4e972e9047e516fe8bdd55f5de736249ed6f658c4d324c15ff1ce414c16ab50e717ba82f0352651ac3c6f68e188a5006b170edc9e5692f0ef16a7c8f03826836109c1e5ac16ccb1bfdf4fa8c377e5280cb4482cab1fea334a66bfc16bf182aa674d1006e47dc536c54dd77f1c6d03391bde0dbb7e20a0e2e8d3ea9a409707622e051ec9521990f086c78e507758e9cbb824a70668ef45efec5fdc9618848083fac3ecfe27a1f15a9eda20a3f6232285ee94da640b17f09b98da69069a6888258cf71c588caedec4083bcc0864cc094ad4b3bb58162c93d4a28726f0a2308c46faa3793ae13325338dbbcdb2e329470a1720fc708fbb1c8a485e30b8cd57d1f35238af1feee328e2b952a78bd2502a6298bfce1de305e785f16e3aa40bba0bc78d6bf127d6c5c191d4635dc073eece372d0ce42e8823ccea28c2ad9421bcaa21b9b645f87be2dceef723a7231d889", "b8939dd6d80b066bad7120947d50660f1cea33b10bd8ba44a305eb841e361129d7a118dfae411c2a604db7013437f3f84fc48546af3701f5f1eaac41ba9f50e3e782be71a6ab06ef61bf57c2cf0cd4ad2e896659aa7fadd91858e2a0dce6a7f3d7dca8ae56e89999bdc2aa03ad7927cb99700046b2152b777f6d39e8eba7f26a81c8c3977ae1fb45dfc4d2d9cadd31fd7b3e7c02783fa6652f6b6b843813c8b7e1c8cb2cb44dc1eba31639f91884db88daa45f70f931938a5764c926243298573c485a67b2b34aa0f54dfef482f859c2cb48845ce7f1c7d28a7e7a139e27a49829898c3a79f5e88f1da96b1d8b3af77068a024021bb20081dae72abe20ea871c4684195e480bf8065064e7c34e031a05f5900c565212a1028136b283c8dee4b91f1f70382030569d457344e5a889ce49eb90f868f2cac64276e889ed985249ce3acba63d8b6aa324b145279698db71685b3172d025480ee7b11ef75d5c736bd32f99649f776e4d8d9b2cdf994ac985d65a04ea172b63b20a6ba905f9c104314f566361bed20a0be26c85d6d883f803f4b252c026a8e41e9fb969a4f5ad242713c914c332e7a088677cdde89e729880acc6590af9d526144288a818a4d887b7ad558225ee0c54514b8e0d73de34ec04edeb7caf3b5fc33179419d774cbd5856295915e1128d537565eeb9caec46fcb1d306788df189359c36dd094e22749b56bf"),
    ("5ea597d99223b510bd9179f7a112e894", "14e5b84f1ec9a1fd71d08da31929a8f6", &[], 16, "b5342fad850d6efe4273fab6b35f4c250b5a62f7216684edcfb1babe5228db46ee2f941fbe0c0eec13099f553d7c9f63c84f37f66fdbcbf013c8910523fbdc8fb02cf45390b21be958eed3fb1f6c7b1e3ac2ca04139bf5951f32e53755ec2ad0f880c46598871ecb391a1336f02d4e630f4592764e9930fba5044342f95648da9a7918db8aeeac7e762c817aae2d7ce636319834443b3ed84eba9882861560765d5d3d71884a34b5a05a664faf4662e8e52bde2f1eb4613dc841c8a9e217f97a7b4fad46c6c15afd12068d3585d3687f999b183e322ab154fa9590c277a8ade78c7364fc433b43d91bff994e133fed451e40db24b23657831f242d7dcd807bf6866f9ec63627663f5230d0f3c9fdc2518c3d31857f003a66263faad64268e30e9cded2dd3fc2b9acebe0a977219274806bc7cc53547758144e0b4a35da7dcef890f8cf39fffe4b7a0bfd57ef306aa9717144487e71135b2be7a9ecad93b4ab027b16c1a35b46e974120611ebf3c47fa206398bc72c969d94e62d4c25671fafb80bdfff4cce1f2e7be768223fa4d2506a4af08db0c9bf4ef9d8e7bbad81007785289d395b706ccae2f80acad67ca39eac77a7b202c6f6626a831d500eb1d057cbaa4c6d23c6bf9dace5dbb0eb3f3ab8da4c058d8dbf153c0e30f69080337fc02068d2c1a312bb1bb4c55ba505372ea9ae445d4b7fae6a2db31a014c5f28eeb323", "8a703082bcdadb468dd6b874ce2367030fa9e61aa0b3913d83813e4eff44bf514093188c262f82bc579c6f72cd881771ac34906e94d615ac06883d6a23a88d730cbd44f4e9a5888dee15b6f13dc7f998b7232ff662032cab3b95b5deba6bbe2bdefd25f5d7ce918147b88bc35da60c73f23446d0399fa2a9b83960873ffb79c16525869bcff9f1dde9eafda8d5c88ec0b74f259a8ad3728cd8fbc00be25fc3fac1a23481b7b62ebe3e117c5d4873a8f83930007baea9342c6b128f363a98dc56ff874719dfc07426475f6dafb768cafb42467522a22ddb5e6bcea1ebcc5b54f591aee5b5a60e429e608167f4514e469ae99b564090125fa72b1bc97786de3e22dcaa37671e798c552513c78e67c0c4261b612b7dab7812d63c59bf22c0246c2d89782e6b169e0fa6d3bf4735cfa2568fb1a815a2f3bba93dfac25ae008fbfbaac261a75aa865c7a3ba03791b61dd7ac5eff17c6ab8385c61529dd75d150f71fa46c34215f26f73b7ed05fe856bd63ac2114e6abfc57049dc72f8d1d95917e23955cd2d4673ac093e86f6bba4b8e2ab25d9bd14d5090436a55719af4e5883aba5953bcca55f95fa4d021d885483375fcfe741b5c636afae464a9b670cadc1cf26918ccb9315a91b391c0222870d286a08c7535f7d32d524fa09f4161c0c6e35d694cccf0655b012e701335e9c2e101bd75f53cd94854950ed1c1d7e92a9e9131dc9af5fe0738e0531a589721124cb5c7d"),
];
// ENC_33AD: (k, nonce, [ad...], tau_bytes, m, c)
const ENC_33AD: &[EncVec] = &[
    ("9adf7a023fbc4e663695f627a8d5b5c45f6752e375d19e11a669e6b949347d0cf5e0e2516ee285af365224976afa60be", "799de3d90fbd6fed93b5f96cf9f4e852", &["d6e278e0c6ede09d302d6fde09de77711a9a02fc8a049fb34a5e3f00c1cfc336d0"], 0, "efea7ecfa45f51b52ce038cf6c0704392c2211bfca17a36284f63a902b37f0ab", "fa862e94a2954f8a0dee1f56cbbbda322e2a82f11f321e07594e79e1c8bcd535"),
    ("85ee018bb3692c0831893ea7f4dd5336baa2842963f8c15c740de1e207001885e1ae75c05550a6f265f305908297b078", "7ed2c2d22198108f04ce72a9be5021f9", &["64c8788672276b4daa72f5b6bc738027959d44ed363db940d5ad561a06c1a2cfb2"], 16, "b9c497e08e50b810f1b04ae848201e558ca72ede656752a04b1a2497e9e19e53", "19a8873d9b06f98f4c38603ea0e8173f5b55deff868ff2a52a0b899b1bafc249e36eea521bd755a17772000aa7c695a0"),
    ("371f5784c090cbdb371b59877c09b1bbea59d232af63ecdfc2deffa4b3f468d0a9c212a211bded82109def470079e4dc", "4d6d5d5c62d7f6341d2eba174ee44c1a", &["0d280b5a9681c8132495e763229142d3bd7545bab2aed48f0e54c9d539184c4fd3"], 0, "ec67a132e66f22c58714eb8a052b2acf8bef7d5a2df8252910ff93bc31c85350a49f0ea6d221b4af25a03d53d942ff9e0571c486a1d4fe56191328f2d4b8eba7df739af0cc86e11d4ff170703f112ab81d6e340ff227ad0843642b73ac048c3d39033a29f867f7984bd33a655b6dfec6b2a7d5f7ffa4d4628682bfacbc8b00b58c48464573f93cb330f5a10e79ac8aaedbb6cba9304b7e302c0d99b7da1d04d4766cd60cd8478641ebae2fc1fe1d4af0691e11ab112230f7b3af0d4b3227cdfa049ecec93b14aed46619c7a2f9e3d3c7005a650ea9804ea36050dc106721b04d97b07c24253f5be7e69227aa6ad07a2510029e6a7e89c76679ab641f7e48353ed78c0fc1276a6c859ff8c31017680ac385d0ee52ebe7cc99e609bda4f7fce31906d0e39beca5216b98a76ddf8ce424a9551c45a3163069875dd1d3ecea29a81444d986499888e647472536f9d555828996e890a9fd73eb1de784c21fae7689c2e71a367b61ea4e75f0302f425353129ccf3697481ac95406df9e508010753566b6f3344d1eaadd0a25e42f82463f61962e5be60b849f2b861bd673674afdefca432e715f48afe0c78852909ce99a86ed6f4302d5c74a6a2aa7ed9d60a982ca89003ad6c332ca9666e235d91dd4d1850cd855eb6a5e9d79ba974368056ec1e930474f0c8f17212dcff25e1ac2bbc0c51c7112da982063222be19566ad57f7d1f0", "8627e0a71da96589f935b196d8907abb89af1727ad826b2d73456144e493f9d4b3bb274d304a6d11c4768fe2214e0bb7722447f2489c68a0803782a2bb3cd49b120d1aa65483a674e5ad2a60cfd09e41f30f253b89bcfe9d5a3b234b3025e7062194dc9dde829fe1c3146981cc56d99f5449c6dc18b7b8410592692145db478ce1ee46630ba88fdebd5b8fb4b0359bb681a38e3f9c85fcdfe5312213bdc22f8bb8a0ddaf61d0b10a67c33301eb3ef32eb5ae161b92f4b5760657ce16f1e05d7a4b240dcbd0ea943e8b12835c39f67c7533444cb30b1fac31049a12c91d8086703b2d769642b9222ac6dcb604eb8925085e1c671292b99ba1e2a6ee7b3c381140eed5d89a4ed136ad5073820979cb878d01912f5380a2b430574cf39ac9e46472bdd3815d37cf1373b1b5c93fbfcadcdb78cdf42de6c94285d6fb45335d9480828e2fc33a29c0e43b4acbf82e439ad551efdb55f223659a1830774285270560e1dea44270b8ba2dde78239b84395f672c4c3e3b016c96cf2277828bd42a898804820569e2fac14dcf68508ac3c981f09ed8b3e042ff32fa36d54fb42c1d13b8d6b143589ebe7ea8477565b13773949e282f39df7b089a51a8c76a99324caceffd6de2e77a340058a0e797806fdf668c4888320daa064af5eeff22d04dfbe8b4913453775b5dad0dc8acb75536526276722b9ea44a6213b47e9769958f805625be"),
    ("e48df0c195622f05087636ce24d93db117196dc7ef496e346973ca15c01279a75654d18ae49540f2f0068a2432962f33", "3036cfecc8920266be9684febb207eea", &["4111b7d73c096e0bc8daed5003879dee897443681ece7a0b5a9b217c561367c842"], 16, "ca3ce8f6e097b15f57ffcbb0d9c6203a80626164a3ebbaf4532eaf37196bf5107c7af06d90fa157abcb73547045b1027b91c48bf8c38713d580aa8d93ed941ae0302a007908191f1626a4c1b68d45693c9647e16504dc1d28b94924c7ac7050ecdf407dfce8531db36efdf59a4bd53a7d5a2673e36a2d5cc00ae3f5ff5d60e80b8a6f17366a85e13ee5e3eecf2d66da9d46bbedc745d2b4418250e1b384d6088b9e66f396f44284402889908f3c920bca1871661738cb48913a617cc21397db5c5100703c5cb58f140e2d006cb44136baabae1b029be09e1f353ef40d887fb5ad7e66b130df1fd4da5a5b6790ccf615b4b11a930f391601a2bab8e31dfba0ef9ca8bb6dd0ec26c9dd283a5dc19820a89615b1478d506d356da8cd1e731d7ae25ce986becfb3f3534d80c33b94a59e5dea9d3411d9d1528c0f9b16bb62fa1d15ef8401058a12b9824ed759caddbeb5cbcc0c0fc17e7533b26f7f13cefe9e202953fd324339328aed86dfc36dd29e189695deb7dd5185e83b474958d9167a5c62d97816154c019aaff5a05839e33689de23e5a237ed35cbea6c9197ca9747596ab9836f1f83567353945e0648807f5bc14cd507883249b04693e7775e3bd6e0e34eeac401e30767b2bff1843119c4acf8c15cc6b9528b973b49829eb8b40aff4441656f149bdf6b026947320d2e56e164ccff26e5a381f9d4b76680d541e962654", "01330eca754ff5df1f4bf5b688c5217ce01dfefeeb7b702969b733595b99a08e2acae3ddb8402272fb995d86a0481df28002e573d86ff82e5afca42b1154a9d5cc983395175afa6c88315d822918af0e027ffcf36b8b3afeea4dd6ed725e63ff5b5494df9955121700e7b91859dd1607e595ecec216fc4960717e8d9a460cd1d3dec82ff4da34df3413bee3abfe522e761bdd5bab4fbb94e9fc5deec0a65d4a83cde7fdf87c128393ad08a99ba51890b3ad9072c5652d11b087f7a711ae0a0d6d1916ded8f75a0a6cb516fe8c112cd5749de40a813053c5da7665be8aaa31475c0c71288ec86dc8536ad089a8acf068b80742b465cd4447ee4e102eefd7642e1fccab682d37c0071bd0901e48b40ad64a8e8b7b7a14eb05f29cb7543467ceefb1a4fba6d00bc01b83651f812b09a3286213b7367a31c5beaea50055f789e9d19312bab3a240554ec7ef22da3083ae58d1de518fee8380641ce0c73b52ee842a2c848db929abd5e7e22db1eb1174a8372754aa799813650fbb6a29229d43c0b79e292b89b82257cd4fca08cef98ec9e84342373929ce6ce6fe36243b2ee6db73ed54194be9a477ac0ab686faf0cf0ca6b6a4c3d3693c39021e8584cded07a22ad2d3072a84ed5966c22794754736e9eddcac9b9579c58c10cbd3325a8b2d1a4e5b72dfd531c97b17af1194981a181e96125005997d4d8227aaec1686a5e5167d67655a3699d4a1080075bae71bfd53f26"),
];
// ENC_MAIN: (k, nonce, [ad...], tau_bytes, m, c) -- spread of lengths
const ENC_MAIN: &[EncVec] = &[
    ("d5f0930775590fecd03d3647aee643c9570470347711c1d9223b235e8785480c129dd5f94ba4b65e965be29e3105bcb6", "836c115e5468a8dfa61682953e6624c0", &["18453b9af27fbc1b731d","","004049ce8bf11e4a5bd89262934f6f"], 0, "", ""),
    ("bca303d3e03bc59a7bfea4b82594ffb8aaada3587695d3511701ca682d697fcf6a31aadce27bcf5af3c0116f9c6e0074", "23e61b1c45414be99cff481871b7bb02", &["e0b6dcb20178e0c00a3e","","c4e211e8f4f43f2f25e4a05add78b7"], 16, "", "e78dfde6449ae4016a19cf4b25289b55"),
    ("77adeb01d75d4af09b2a9812b1344da69e6ef090973291678f56df2d244e68fd270c40f0bc2f39d1e994a94c7bd7b687", "dfd45ad5a2be21b64c2953aeb2317b93", &["251dff82b0f705c5f6dc","","5aa30e167d58e070384183def8e046"], 0, "59", "53"),
    ("fd4bbedf38d1f2fc046abfb9425096a2af60d0b537493f57cfdf99a8ec48337e967528f0868f159565c09ec6a5df2e86", "a69df05bf5bb61d2e649aa180af8ae00", &["55ce9a9516ccc45e428f","","2d21278f95fe9fa1ecdaa98d379ebf"], 16, "0c", "452c1df04ff289cc7d413b4846c0e86ac4"),
    ("afc167f3cb82dfc8bda74c91fbf3c36a0552668db62e61f4eeb51ac2893ab28849abefc657361d0e9e24915e41c3e273", "7cad786f60063a7d8eff8700683d329e", &["6459b8acb22a25018ab5","","ab0ad1ab5b1062f43931cdcc2c563b"], 0, "66bb", "82e9"),
    ("420d7549b6bbf92df91b8d0664ce03dbedb5e7322011b2bceac84162784c4a714206e9c2a1e7983c83ad86c49648d2d1", "79b07244a372982474d5f82ecb330f96", &["bcbbedf421852f3ee92b","","bb15643863e4daf1ce80e0f7240edb"], 16, "40ed", "1da2d050a3da862f19b8bb8dc7d6519a1b8b"),
    ("82637d90ee44b41cce02c0d167bf9706344e6d08df31d96ebfebe78bf94694c97a8d030c530e5e85c4116cf6d6da0282", "166f9a90675926cbcfbcec88dda31333", &["ddd259597ab0b4adef22","","5b3a7cd3b656a53b0bac9f96027853"], 0, "9576ce9a5def3fa3ad8679b918d383", "ae283ac9b58a791ea8c46791ed654e"),
    ("c3be64fbd3d0059cd5a68b0526c7e1d04ede3e67d76715bc107d2d752cdfde9c3e141d417324c91e468d7fa11dd1a3a8", "bbe0ce6859fd840ebea27897729c4228", &["d049632ef4cb9fa7be47","","0b7bb890a0fadf9f77200047b4e261"], 16, "50812349bce817b9f266bf6ed66f2f", "177e5471d3605260a2f1cab2b1d337e83eed867df63460e56806a9e516d928"),
    ("42179784686ecaba5d7f83e2a61d1c309a9a956dd73ac7ec90e55ba5b720b5732f63d5b0ea10e7685ea19c81d7d3177e", "ce2f5d48730ee39ca4237b3066632b27", &["2172b558698675f11e17","","ae417e99a4c211bbf94a866932fbc5"], 0, "c9f603129f8348e9d23860ff374a309f", "e79a7b58c8444e2841de4c08184a59ef"),
    ("cd57a8dab118d8c7f2e4a9970114ccbea108d61594ec6005e33e6f614dc5d83c8ebb50acb3eee28d7925ee6656af68b5", "cdc9e98f877beeb6a543a13d6fcbf598", &["754cc82e3d00fcb30a6b","","328d1a0876a75e3115b61d5c9f95b5"], 16, "78f0d2da7b9fce761b16a1e8613e20d9", "d790fd542e3223f3888408ded2d14b8fe118a3224e222a3d3714cf90622abcd8"),
    ("3ee60a67800f2b8b91fd42e6b731274d13918e6f0b8af5aa8b0e191dd11a79e15101e06554bdef4ad689df0f01bf8c15", "3f89758a35cdeea8a4bfc48f29d3a97b", &["20b1b387825a05e172fd","","39279b5d93549738f155aecec89c94"], 0, "f3205210bae125eb6ac00987ac02f0363d", "183e50ca23daaf51894f340330d6ee3218"),
    ("a2a40098df6380bdd78c6160aa11da223cded8c88834a0dbcc6ba1bac9979adba2fe15ce44968b53d246832dbc0efd7d", "a9c7e338072a1b5a9a8a2ad8ec1f6ae3", &["3c7d01e61e15be3d0b98","","60f8a5e645b848ae3b3675d341d157"], 16, "615204ab51205e3f142fa29497a8b03a1b", "907e15b198727d910bb4d88422653ad2619d0c4c15c9168c6fc24509c09d8e694d"),
    ("1d7d29ea833c89e7559bb7e8cedc0aabba082fdfa5ec944fed73adb1bfa224eefa1cd1ab5b5e195c32aa5dc9733775f0", "a8f70688e45f1ca3db4e8084970fedfa", &["aa825c6c56ab4a759a39","","8ed2fe1c4a49750a3443ae80646c9f"], 0, "055188d06c2cac0bdba86615e35c04ea227f003a3578baa74662daecc0fd4e", "8be3f77a2caf031f039c57076e65309db48878ea39cce912cf8a86b827fb51"),
    ("b276bcd25b6286b0d0acb459475a45f0f6b6e9aa08b3a39322102d34281d9efbe86459d41b80849edc640d2683a9f95b", "093a50f3bde3fe540606294d1f126d72", &["d4a9fdd3bc8e1c62a56e","","4976d46690cce7683972c6f12befc5"], 16, "a32691f0b79ef07ac4d9167f0105db7a159f6f66c7e589e0aa0ef1df0d7c76", "d0d245254b36c8b4532586a7ac2895c43d53515fdb6eaf8c26f37bc8419e44f304ab9fb5bfe26f89e107f31e43f3af"),
    ("253c19c05918f0836ed02771c5653e3f8b6f5b47fa31664857dfd8271735b0f6649272d8f693cb64712f139a8747e351", "f233e1c03a20f792d82edd77e8e2e499", &["4288b58ade6cde290aae","","3c21eaef429f88eb04b31e4f92fa24"], 0, "4f332edc137ebfea5160a863f7f4773c1ad0a010921d8c0571539f239c2facb5", "e5a64dfef66575019eb57f67dd64d9889647ad962a318428f436bca90d8d9863"),
    ("991c5b55694fe3a5017e8bc483537d70bcf3e85c70025c48155e24aa834fbddcec212ae88f4f3e442c44c18aad8bdd5f", "b544eee714a89a0d01ec71e7d2436193", &["f099cdd182807ba122ee","","a4654126b2f68f696dbf189260f075"], 16, "22b82a604719de10679f92a67cb95f9ac7850240b53acbbaeb3009d4a96bdc8a", "772005986a8336d7f3cb1d0aec49fa89fc64693da551d766763c82480d03ca9973f3b577093f380a71d7b4e2a5ce904e"),
    ("0fcd3f3fe1b46dccae5ac88f6fc51e1fdf1ef395b6a3c8f4f05e1926563dfd620667581f82e74f3d8eb3a872ff7c7a04", "f61e329581163188ee9955827c8dd1e1", &["3f09b1b2bdd9c65a2eb9","","0b012c663c91c9b175ca27a5508e55"], 0, "32947af20a24fda325ac95f8de18681fcff2b4d7e77f8747bafeffb637a2c99c72", "9e4be8b824732deabfb7645ba8a933285f2280431cbe3acc77436fcbf513d13efe"),
    ("f98b2669a0e53bf20774a31c2486f1954db58cbdf6346cc0fedf2f7351d2815e082b168bcc64e609431fbb0c17711a27", "310382a1adc4a0364156ef4d64dfa598", &["f9adf36e976c3222b5de","","cd30cc9b51e3831fe90549e2efd159"], 16, "702f82692eb72c09e9f9385246665421a8011a8fb1a88c82144e46798d478771d0", "357e9c2c6b75a34a26d530d3a07b322ded8178faa4a2dc5f0a5dcf37622a420f18e48b86e3115f21b6d5628091dc40e7e1"),
    ("c0cfc7d7c74533cea87e120bde8116f76a16d0db6b95a0aea92d771853e4c643a6c7e5b0c1848d38008b5623618410a3", "515adf7ad10b15cd64f95821149d8e01", &["e316fdd121eaa0ebcc04","","772fe84147dcca8c019004fe0c64ba"], 0, "3b8f43546790c72822d7bd71bce34b58f36c0ff95c26fc16440912a8ec2e04a2c7dc7f956f35467cd20f2760995c8f", "ec99215bc7346592a5f9660e41904f842bd6b96423c9b3a29b3d3cabfb760d9a915683717988e4eb74df10502fb0f3"),
    ("65f1da160ba33040db4b462d1dcd9c990bc7b54a73f51c05105b7be32e03fb73d527a8b4ac378ea62efd21ae95f33955", "ed7607931e659fb54b466cf8b99a8147", &["3d95d72f5e147f86bc4c","","1920d6e2f0fc8556ac4fe9aebd9af3"], 16, "ef6d51df8894317748bfc86c24b08d7dc8eaabe78603c720646ae71df14004c64bc7f1abda5045803c9097b94c37fd", "a561ee1c524507ce74f2b7b927cddc80bbdcf3f93dc322d978ac0e9d4e4b4859b2f5d3841bb6e8f26ad8d3a9734e37ae7e8e60d167b1dbd7b86019bc706263"),
    ("6f0b07b0d93310171c74f3801c448dc86f5c713a00bc0338b56ecb70a96eed01b959fcec6a67e61d8c79d3349afd1cde", "94dddbd146c919bcfd6703d199fa888e", &["8bcd531d1665527f9d6e","","77df3d553a01ddc6e6e8ed8500b66b"], 0, "d94ce53c66035cb5b606c8a1d533d763e67cbc406389b9a8c251875c11dbb34b5b7411d18e7e3b0f5bd134440df15483", "3dfd4652958b7e75c638f6b32f82d849786227c09952b0381f003346daadd7e23596a6ce08a3dd06b5770759a313a212"),
    ("c7693060364df8d7358909112aea7dbcf48ab9727abd874548d7061f1de31c78bc79328a2fee4ae1826f3f15ae11b345", "5320c73d6c9cb3fe298caf712acc2430", &["cd483f7cf1c84b618938","","c9164ede9ef2bb288609dccf4972a7"], 16, "d8f32921c40796a22733cd044db09722f138fc76fbb7a9d298c9676ec5d92337721ee3e66e09f6208ba4f30d28ecd6c9", "ed847f8b0382059e103c56bbb6c9e475aeae845d2dc172244626ee639eb49c2cf1a82911551cefb1abb8aa6d56742af0c3d72b98d6bf6fae2c27fc935d4a5791"),
];