]> git.codecow.com Git - Monocypher.git/commitdiff
Overhauled TIS-CI test suite
authorLoup Vaillant <loup@loup-vaillant.fr>
Sat, 7 Nov 2020 23:51:31 +0000 (00:51 +0100)
committerLoup Vaillant <loup@loup-vaillant.fr>
Sat, 7 Nov 2020 23:51:31 +0000 (00:51 +0100)
tests/gen-tis-config.sh
tests/tis-ci-vectors.h
tests/tis-ci.c
tis.config

index d9339a1008abec98117c26f4266fe44dd6afb3c5..a5e44aa8b4a788486b1d5d1ca7e26e68605db324 100755 (executable)
@@ -57,30 +57,30 @@ TIS_CONFIG=$DIR/../tis.config
 echo "// auto generated with tests/gen-tis-config.sh" > $TIS_CONFIG
 echo "[" >> $TIS_CONFIG
 
-for entry_point in \
-    "p1305"              \
-    "blake2b"            \
-    "verify"             \
-    "wipe"               \
-    "lock_unlock"        \
-    "argon"              \
-    "key_exchange"       \
-    "sign_check"         \
-    "from_eddsa"         \
-    "hidden"             \
-    "hchacha"            \
-    "chacha"             \
-    "xchacha"            \
-    "ietf_chacha"        \
-    "chacha_ctr"         \
-    "xchacha_ctr"        \
-    "ietf_chacha_ctr"    \
-    "x25519"             \
-    "dirty"              \
-    "inverse"            \
-    "sha512"             \
-    "hmac"               \
-    "sign_check_ed25519"
+for entry_point in      \
+    "v_chacha20"        \
+    "v_ietf_chacha20"   \
+    "v_hchacha20"       \
+    "v_xchacha20"       \
+    "v_poly1305"        \
+    "v_aead_ietf"       \
+    "v_blake2b"         \
+    "v_sha512"          \
+    "v_hmac_sha512"     \
+    "v_argon2i"         \
+    "v_key_exchange"    \
+    "v_edDSA"           \
+    "v_ed_25519"        \
+    "v_ed_25519_check"  \
+    "v_elligator_dir"   \
+    "v_elligator_inv"   \
+    "p_from_eddsa"      \
+    "p_from_ed25519"    \
+    "p_elligator_x25519"\
+    "p_x25519_inverse"  \
+    "p_verify16"        \
+    "p_verify32"        \
+    "p_verify64"
 do
     for platform in   \
         "sparc_64"    \
@@ -108,6 +108,7 @@ do
         echo ', "files"          :'                                >> $TIS_CONFIG
         echo '  [ "src/monocypher.c"'                              >> $TIS_CONFIG
         echo '  , "src/optional/monocypher-ed25519.c"'             >> $TIS_CONFIG
+        echo '  , "tests/utils.c"'                                 >> $TIS_CONFIG
         echo '  , "tests/tis-ci.c"'                                >> $TIS_CONFIG
         echo '  ]'                                                 >> $TIS_CONFIG
         echo ', "compilation_cmd": "-Isrc -Isrc/optional -Itests"' >> $TIS_CONFIG
index 4309a64e64e09da7baa3ba17e806d57621ac4d96..1966c14c233ddd0afcf6faed562e36c6b83aaff9 100644 (file)
@@ -376,523 +376,6 @@ static const char *edDSA_vectors[]={
   "0bfa8d629fe89bd9591f20575144f0445958fd3574179ec4a9b6ee85787c23d69b4f009d3ed3bd2bb62226638602b95bc4719a1d2c60afb07ed95c959628ff0c",
 };
 static size_t nb_edDSA_vectors=12;
-static const char *edDSA_pk_vectors[]={
-  "e4e4c4054fe35a75d9c0f679ad8770d8227e68e4c1e68ce67ee88e6be251a207",
-  "61435d557c6bedda3b9d652b98982c227ffedb203fc2357cabe8075508f4e6f0",
-  "48b3753cff3a6d990163e6b60da1e4e5d6a2df78c16c96a52d4fb01ea4ecf70e",
-  "e32afb6bafb838c01969252af32692be5562a11d52013f9a36343f5632cb60e6",
-  "81ac001b08d6577bd91ce991c4c45c46bc84d5465fc9139bf17042ae7313181f",
-  "a1e81b4fb64b9d0c00c952b616fe12b0b2ee6b71876137d23a5d17a5bc1fd61c",
-  "7afb217bd1eceeac1e133aaa9edb441fa88ea3ae0eaa06cb9911b6d218570f92",
-  "0ecf0f4a86f6ae7919280766151ff1412b77e784329ee4fa354054af8f5f5019",
-  "4a70a7e992b43e0b18578e892e954c40a51abdb5a85d300c32f391c45d6ef4db",
-  "f0d2732aecb3106e06307e680c9e4d821904fd2610c050f243203e31fffefbc4",
-  "043ddcf4214f24ea6ef6b181071f299aa254a4606ab6a058e0c6fb5598218db7",
-  "65d1dca8bb0ce3e3b9b4a7c6f3a200b6e48988ff0e098c142b481aa162428586",
-  "1deb473f7d04c152e7e857736715dc7b788aca39a3c96a878019e8999c815c57",
-  "cc01f65fd61ece99115f990f2328cd30fd2484db91a457c7b0027d01db729d12",
-  "23dbfbde05e6c71f118afc0dedb5b9f8dea398b2d764bca68dfc023a9821939d",
-  "4e8d3035dac14a39b024823ea2f58fa6165548b8d6065d4c0761b1cdecd21423",
-  "389e38a072cf1b413bb1517c3fe83abebb1cdf3a218abb1b0c01da64c24f59ee",
-  "3716cdf8772ed7354e5ca6739561b691b24d18c0c8351d991e1a2a7f8e96aabc",
-  "d19cfb8cb3940aba546f0be57895e2cc869fe55aab069c5abcf9e7ba6444a846",
-  "0fa0f708fe46cf703cfdeacbbb7c725e74e826cdcbfa2b165b29e0ce1ec67585",
-  "e5d73f1c8c5376c1220ff3d9d53eeb65cc53599f40d6c8348c353b0017265523",
-  "d196dd6fa73aefc891d3a4684bb15da1d7ba0a63517d1b8ef4223fa52fb03227",
-  "6cddcd1879ca1f04b35f91adab70b81f504035fc169964a5ae985e6c11b0b7bb",
-  "35a0e02a48b062589396b7e26610c4adf2f8c8136471736d72091cdeebc0c510",
-  "18a51fd77fbffd722aa220efdd8947ca5a5c7fb1c2ebdb9ad1f603801ff22e80",
-  "052e83a137fbb5f8dc0ac742c3e889c95a10a6fad270e260aa00d28dde6d838b",
-  "314f716af9c22022fa159dbb4b4d3153f999b20ab4769eb1d01c057c5295ed04",
-  "b831c0cc7fe596a15c96350e28f93a728c59841ad489a315fffdc679617eacdc",
-  "2b4536561dce32478b113adb5b605cac75bcfcacb5e3e811b78e72e398fdd118",
-  "78cfdeeaa02669a944318695bccf51d1edf510da5e69bbb0954a8f3e97e5cdc5",
-  "bf04c6a7ed0756a3533e3dca02109e1830b739210bd8bffe6a8a542980bd73e9",
-  "2bfb050d73759b28f7aa5b1c82bae754d3815ddd86f944339f9a97750b85a218",
-  "ca43cdd4eb7173476862df6d2458d6c74739a0ad2169b9c89edd74e16fbcecc7",
-  "1df12227db10438b6d9e6591bbbc47e3884834233cb740ea7f9f4a62ac195642",
-  "48c25dc338041fc34af0f1bda20eaf3fff7b372aa801eb98a1298bc610280737",
-  "5cba15882130f8f682afdf116f8f56344bcffb856561a8275303496b333f5002",
-  "50831c8cb43cd6822bf3f6fae0801cb6c843d8066b07346635365fb7d6ee54e5",
-  "b600ab324d70d2372f3ba5a0d8bdd8b8e797f780b642bd56e69a18db74c389bc",
-  "c9cd6f05d76b2bd4caec8d80b58235cb4268543ab0eb865a948cc5b5f6e31f05",
-  "06dd9864592a574547a1c585c7a96fc6f2df2c6157503bbce7d41a6b1e547c78",
-  "f8146bd9495acc459d6d200005ee72c3bc3e4ae3badfd79adfe46b2ae1045f78",
-  "ac032ed6ae741ad0e50b9678ccfe0596adb81c7abc92ff54117d121c537a3a0f",
-  "382e04c969df1a2d6a963a79c58401770a383248b5d70bb4adedcbe520fed634",
-  "4525e1ee801b4def3f3405c46be458d678f8c6ee70bb4edfe0e2a18c94b75279",
-  "f513b8c2ea6ab37fe633ba7302a5db6c2aa209e24478fa1bd6f6ffabe98555e0",
-  "71539fb289a3c319fe8ee1b507f9eab389db6ec76101d7945b9267ea39b99124",
-  "34342cbec07364c54d1e407e282ef08edbfdbde936c9d42df58ae15889f5c939",
-  "ea8a201d3e9ab4c5c2890636d6f9b1ac56dff69d668de1e62d65a0519e5207a0",
-  "a3087eaeac1f2a58e2c2763d01b55744c4a65f4db93adff0078c63f090fb607a",
-  "fd7f547a60d95bdac97526fc8e197814f684230b94f9ce2b41c81f0b2206cfff",
-  "90c87defd622e5f55977877cec9ed88312b0411228540cd6dde6e84cd2da59b1",
-  "d32c29618431e16a228d7b9cd687903fd9269b1e77458be667e91b5b453c6192",
-  "871db119e3298e3c12fe8200a47eddf049c971cd99f694e3b2a5e25fa37aedf0",
-  "e86cdd876b6e06fd5a91c926620320ef093b0dcb5fd5ae5c7e14cbb692b10026",
-  "1bf32e7c679a3187e22a635d301ce98ad000ca301049f2e891e403250c3358fc",
-  "c963db9fd5282589b1c0dbb73c2caaa3562a7a728e2002c6a89081cd6fa78d12",
-  "2030b227bb96e93b88f419afe9f9d660e013761228051ec5a8f0c093b33fc60e",
-  "ef6cee0b249791f0764413eb3c75120246d694780cea169536696bf0f47dded5",
-  "2cd7a9c845434e95d4319d79d1bdaa8f73853fbd9958e9ffc23a0ecbb7b48dbb",
-  "9f5eb1be97b3b88f2737329b52c180d42830059b4e5ebe3bf21b8feb16064f89",
-  "a63672d582bb83d92249800324cbc9a6e5b37d36887e7c79093f58ef8f1a0015",
-  "889d8062cc19c91ea877922ccd55c8d5e8582fc336fc93c2b5a5634693f8ad38",
-  "85321bfee1714260dd6130cc768d20b14d3850f0eec0f8f349110e751c16cdb5",
-  "2e4dca8c5ec8059cb0c14cf683e4207b56f351f345a404b127c60ca873e75a2b",
-  "ed05516df17479937d942c90eb1fb1813062bd3f3f6b7668cd8fd3afce0cc752",
-  "9fcbbac9a4e3d0090537632c54e9fd164a737aba763aa66a82c336bc7f8dd92b",
-  "9b87dfc58eceb951e1e53d9e94793329199c42d004bc0f0dab3adf0cd702e99e",
-  "eb4361924466917300c4c08351fc8bed54da9fa8860933df83323f1775d9016c",
-  "fa5ef6e59d3b201680f8e2d5a4ef7f23f1b6a8e102670a3829a995ae23fbc3a5",
-  "f95d73d48393f6dc5ada78654987ca0534b184a014cd7a68ab502b38bdb01406",
-  "639e028cd2b5f71bb90c7a1e4a8a05017d26e3afc3a88541f6c3f45d71f8a3cc",
-  "6597da560b71cbbd10295eeefce3e0fc69a1cdb9899f24590b8eb573c81a5c42",
-  "31a063ea4aad1b4d00db6f5228e9b9b1561a7f61812b8b79e6af4292580d02ea",
-  "23d65ea5e73aeeead958d168461de72480f37c5e6711ef79749b8e980f2d10fa",
-  "4f6266d04244303304510272e383eaa51a8ea7099a74bafa3375b210653a0d2f",
-  "5ccf35417ff34c1dad9cd04afab0564b66ef8935fecf7964350c2e35f784f6ee",
-  "40b15afd725cf5065066be1cb803dc158865ed8d7cca72dcf2b7c6b5d0d045bf",
-  "b61a7a8e9a2cd32429c1715a2cc5137157c1fd394862ef9adf4eb6bf6e6a610f",
-  "32b063d3da484ba1843e071b61c49ce7f30ba18a4f7ef2730ecd785494839966",
-  "68cb2f91bf0880679eca49d61545fea68a82fc05092592578c59d1b95628914e",
-  "f593168e17311913753c59593fc66cb664c1572251132fc28bf37fd8e96f2327",
-  "55ac1eaf328afe90e2699112ec42e3238e0acc13641b42da273d735c66738a39",
-  "cf7948a1126fd37175a91f483d6b3ad92308df7e6daa8bf3efde75f80ad72a49",
-  "bdb3a742039e1248ad16e863f5a575ab4c8be685799b5fdc68d7553aac8ea282",
-  "ae0794009e21ad33fa4141fe5fa79fed12f6a20f51614dc130f45598e92549b1",
-  "529e524ce37699943a4b3e6afd35bedbc76c8582225686ab6510bd8c981e9506",
-  "13ed6185724507e7fa5a7e8a75b2c7a3ad700919f36a46ea0ffa680857e30188",
-  "28c47bd54ffa337bb58d3ab1d709da636cebd33ba9b4e93c269a0e34bd89c1c0",
-  "f8a03c7c4b6c11bc39aececec26687233682d31887277028e2fd286f2654c681",
-  "d740c0626b2c75c77ce513fd77bdb85021ee2ca5f98920d061b1d869d6a81b2b",
-  "efd9e7ed6b340874e897337d4dcc672811a6cf4b69086e0a57c266424dc1d10e",
-  "5fce81476c3c41b9ab13d6636849ca71d64908c010e9b3cd5d398d63e81d3a88",
-  "cbaf0c822cce9e4f17b19e0ece39c180a4c756c03c19900280ff6cdebe5174d5",
-  "6d07c27c3835ca3b485c3ab8ed7475e00a02eedaae25839acb75621ba82ed690",
-  "07c6e0860c38c3537176c58965b74a56c52b3151bb8a149cf4f82158d57c823f",
-  "27a7eae885de3d1f7b979751c2355d0c070fcab12cb962bf19d688b6f4c6b45a",
-  "3a90c6b427912226ff604d9abee1fb8c8d35530a0cd5808e53e308ac580f7318",
-  "a604bffcaae7649a321468750db7bb38909e5d87dde407e115480df91f2c6096",
-  "fe2ab2a4933b5d90db718aa3440fbe9ba17f09716219bdffc93a189e410a6a3e",
-  "693a95f904c43229abb46788a3c58d246c91b37ea289876e0d9d0b49f89c6b7f",
-  "6477fbb05c7c35956c3c0c5f342355fa0850307998642501c025e3873ebac3cc",
-  "39cf3f5c576b693a8583423080226235adf55f1ac34cd5d37ab67b8a71e7c55b",
-  "d749d8379ae6d830f785ec104897bd723d34ad20c9d36bfe371df46aebc6d459",
-  "d646fa225e9a394d77703479725ea493b95209a43612e1206ef58e9bac75cfcd",
-  "5d490a770bee4dd0be6a5a0b5e95645c7dcbc03c27010df3320fe75b0a3ecc89",
-  "a6b009225026af9062b0b565c5fc91d0300ed298a8eab5f3195b648fe549cf46",
-  "83ad94217e80348fd0f3f54e54b95bb548dc2225a264443732b41b861590358d",
-  "e7bc4aa737b35c4e8cd56a3cbe0bf9cf5f3deb1dfa8325c76df5c7080b8c36f7",
-  "543894006b73f3d70fc04b15d0c2a5dfa650be5044fb5061811b866be7f9d623",
-  "f215f9b35970c2844ac02710fa0c281b8973429d2a8a89410f4a806ee5aa8d6d",
-  "fcb077ee19421610aeb263c57faef00662d424c07a7aa5005068b262251c0667",
-  "4aa26c42a9a0fdebd16a0f4e56cf291be8abb8b8e69db83fa6ba1acf95ecfca8",
-  "a4e2e4b12f5df7f509564517887e370b425fabab1ce9e733ab2911b42074414e",
-  "9d1d54af4639f12fa41ec3bae688711769b47a78be1fd0fe35c331c417717614",
-  "387d7247fa5055489bbd4b7d4de256de723566c1c2d3ecee8c10e7d98233dbef",
-  "794f6e26daf5a8f0e104a9d069603474fba599213ceb9db344a8145fb206f436",
-  "90494951ec91a843f6701f8216a7326b241fd57f32e09976de4054797b9aee82",
-  "4137f6d789f979138cb20fe94647e52b48847c15f78d7b2c940b9366a3cc0df5",
-  "0e0de381d02852ac13f511918267b7037330e60ba1c5875a0275f8ccc75cbe98",
-  "a875da298a9d84b225b62089165cfc725962b47adcea42f3135cda7d62a1d770",
-  "7c12457eb5614f87f1fdc40118906d02c602059d48ae05ae62d3d607d6bf63c6",
-  "7f02ec8508e263d7be8b1b116417faad6432c17be14cb1cb1b29d898423523e8",
-  "760b802483b0e3aaa9dd4f79c6c5e93e6b51da45018c6bde108f81f9abfa2364",
-  "932aae2ccb95d59c1bf56a2a0f04b246960a71eade6e95e1b107b379ff43ac52",
-  "0b83cfe3fed34bcf6640bf0baf647dafe9bc99acee972b5a152efa3e69e50f34",
-  "dadfbbed5841c9df7bfb801ed49faee7141ace1a34556b2bf1e38ad039034e29",
-  "3bc12887fec8e70db73b4b48dce564d83786aca4c6b7e224163ea928771fde37",
-  "eea5829ea584d5a4ffeeb2430ccf260c3d9bd8a9975f73ac72e8bfe276a3d1f0",
-  "78c453b35d98deced812fc5685843565b73d097601d3558278bd9d7327de5fda",
-  "d6cf25b18ed73ec0200f17841aa07ea500202244ade1621fecd1b3039a21c403",
-  "a2b842050b370e837ef811a496169d5ff768878766c08c45561fdc2aad6469c1",
-  "50d847e161de393fdd6aaa292f836c6c3f7d0b03a1cab6d8454a2d9431b0a4fb",
-  "1380c3d3f873c7233c541ea4c43824ecd8bf7e11ac8486208fb685218d46736e",
-  "c4bfd0c4c1caec19f32749252a3b987ea8292cfed7391a92385472f0135b65aa",
-  "51103d1fae0e8e368f25480ee7328381c2f8b252a18a29c44dbfbb62cbe6c3df",
-  "fe93ae148dabd46a9f1181740c287e8e3cbe57df0433f7c502917bea11bb516d",
-  "d4db55378734d8110b8f20f1d1ada6ddd4da48fb09c06580eb46bbc5ca62bfab",
-  "4c6120d3f301d8b11003ec95525e104382dfb594181b1ea15c07a2c4c31f41dc",
-  "40b184271b73b710d40cb63435042c9b526d1e5c3a77bfc516a2bcb4cc27ecae",
-  "c82ebc133d00527cfd257f80890c5c1d69d31b360b61c40b19175af2e8578311",
-  "b3451318590c84e311dd1e876f527d81ec81df06c7e426b729aebb02be30c846",
-  "f4fd190484241f532be73f6f39f4ae205211c62a97c8dae42dc4f1d0669f90a9",
-  "eb228490df4a0e6c688aaaa6bf05d14428335f2652926bfdfe32dfd789173ba8",
-  "d287c2e74428453a416bcc3cec8fe38ff8182bf68e6845b01f11da320b3ae3f2",
-  "60fa0114802ee333d7c49ccaad8108db470c882514716592e57aba26bb75049b",
-  "5dff8939cf19af7b5ee4d95dd7e3d25ab74949e6284ba12c73c36614c195acb7",
-  "75db088bd1a89c6a67fb76b96c987478bfba2449a607f3cca1c911d3b7d9cb97",
-  "92f707c5d1374591ba249c28f01cb0d4673ab32f35b6bc8fa32e62c4b3a66fbf",
-  "2bcd84b0246189c7820032e031949f1e97e8ad5eb5a75cc805900850969de48e",
-  "a1a855475e51f4261091d4014c61e20702e22e22b42e45cf0587582ac0d76cc3",
-  "74267873d65e0d67482d1c6f9a22450bff02814b8626a89534495c3bc3c8897a",
-  "ff1865021226294f566ff7d625eba6ddc3d598caaae2ee27d05e97b97792dfb9",
-  "096fbc2f9e50fda78ee3c8b0fb60231ae56bd39693b1d8b941a67930374e15f0",
-  "80312e9d0b93130c725a3c67c70029ecc42991f509beeda27ea7c64352362e23",
-  "01ee35b10ac1efa06855ef67ece02508dd34fdceaaa36cb3077fe500b4456393",
-  "ee2956ff74cda685b2b00d8cb5c38e2851da3c206702d698f4239bc23388c0a8",
-  "bcbba82e7c959bd047d2fe2e1044ad7540d3bf8f7c974fc17e106d9380da192d",
-  "c491d5099a5c7de687a92909d067b2bcd6357a92af097647e17c55f5aa3f0354",
-  "19f4e861b0517aed05a5e9b942a93a505a036478ae8c8c9b0108744f2e1c7714",
-  "e4474a3d402f9d5fad217e34cb89d9051070a87fa7a433b8887fcc1751a83365",
-  "8a52102e2903352b5ec66cbed7474a91d7ca3f49fdc859b3e1705e1e05b12478",
-  "01a06befdc0a728f6258755e92b832d06e843df0e2e4c4224130327f256b1334",
-  "9849fcae816135f8ff7c83156a36aebdd8b11b679e1325659890870da65bd4c7",
-  "905a4dfda367114d369cdf9443cf42e12242e1fc2080cf4fd90fb7491d46a0a5",
-  "90ceb7351cdf29dbda3e68c2d64c04c7da7340fd622e6be14bd10d4003b8cf7e",
-  "45d7a0039e19f3d1619bc1d2dea637c9e0a7801f3613b3e2956c1f1201bd60d8",
-  "956bc847cfb0dea015d884f5761e9dfb9b2cfc2a8b40325a2aa92e5bd6515817",
-  "4eab74ddaf52b56040e445aec7e0875dc3eb145857700bb3191b60fa5393287b",
-  "db7d15af98806caa934e8d0afce8ebbd10dc6d1640c16e76852d1db3973e24f2",
-  "003ebcb734dc145dad536908755cbf0caac829401bdc97d6a43aa28abc265513",
-  "291ebbffe52b6f25fdd62b431e541dcadd579abd5cd7be379c524dbe47232c47",
-  "b07b5348518b32c77a0f456da5e7c61e0860a896381544cf81c17ad81ec30f57",
-  "eddcbd450394c5060827a9a731a0517dc6b255592332bce1fc9ae2f61bf3ce74",
-  "28eea4e6ab2724cb18fe35902d91d7cd40d6fc77e0e08fb72d52186c6fb8e13b",
-  "53afade89b2baad6bd288c25aaefe631c151ca3b56bcb710b118784e65a1f1d1",
-  "8e26fd757cd4710cbfd5998c0bef7fca8eaff61d035e2f49b44e5301a0833fb6",
-  "964af9a24f53e3bcfe779241591e2c385be3b579780c5cc0c490bc2ed9f06e12",
-  "1533e90e8e5980cf472935b0c697e58ab4c0856b6199ba99d05e9332ca23e593",
-  "9c52d57da020389a30134a40ddbf13e716a1f84335380b528cd7b6d29fbb5d7f",
-  "3d9b886bb4411e2266b2ea2fe4ae6e380e463cdddbe3b6b3bbc21b45028e5bf2",
-  "97699f3c6d9284e1ef22fa05ad1f6ab799f2ed1a1d0611de572c0e8623d674bd",
-  "238b5f14b447912c81c4aec6b35a7c8cf3f6045ce852bff8a27c3a1b0022afe1",
-  "a96a328d9e179da1fd76e4b13eec6395d59a1a93ba5c994f7e9a80661effa97a",
-  "7de969f3d7eaace217c2cba9220cc50e3f9af47dd5703cf219e9f3fb382ba4f2",
-  "e75b059d2cedf8d9224b405a04ef7c020c268f61b89ee014a883b1440fa88185",
-  "2031acafbc5fc699dd57c0152a1626f25bf078b93f7c00ee12cb20eea74691e8",
-  "a41ab15d234025d4a38e598a7ecca8265efe918cdf1e775cd5f6f6f52cb16d96",
-  "99386d410ac9c14c3f95fe63f0fa38b17d47611872dc738c8234f0bd38742110",
-  "312c210b4fbcb4499b3686f738211179959b2f3736ccc5924bd36dd63beae511",
-  "f2a4c03c988e75452b7ced9e523f5c1ab8d257727ff45d37d2c7c7a52cb20ffe",
-  "f735d4e5763e85585bae920e4c71a044b8526746ddbce27b53fffd4ef780db4b",
-  "37642015da132a4b265ec94198bdfd20493c4798be35e3fb541858b8d0fbfe8c",
-  "f9b8e57564807df84a1d2143003c7c31c1ecfb0fa02c0a88f9b13f45f06f30ca",
-  "c04b3054cc518efc0f7e26fbe3515198c207ccc5e391da5b70d9dcc68c451b55",
-  "463cba3d090f62651ef12368bee0db5fba7b79b95fb51289e4ba9be86c19cb70",
-  "37b4e65b7eb1c542ef3beff23c46185a49c5efa7051924f8897aaea218381d59",
-  "0d200c182251f5a9cafbc17c4bdacb3411651e4088dec905251ae93c89986006",
-  "9ebc8c813fb82d8721652a4fac2e31a356a66c50de1d4b11a09fd4ebe3409454",
-  "1d340da02e519a254e109592caae83d46aad5dd4338e034f0660693ea9e6914e",
-  "9550301b4827c4eb8c1f22b9e79617df00278e05221f12fcde713a09c7fff80e",
-  "5cd890b165ef0445d3b75055261be279f706e768c06e84609c209e30b0ae7db5",
-  "ef674f662937e404063b189b175528500729f755fbdd31d62ee32e1cdf996098",
-  "23593bda8350a670efd7fcdab3145aa4bd7806d48bd4498766cfdfa2d5031946",
-  "0a759df30ada9a577e700e499a5eb7a486dc010ebfd85fce2729be92dd2955c6",
-  "762482e3ad1b54ffdc4562b6e36ec978ccbf232a2eca3d35fb566db7ee6b8fff",
-  "ab3b142a8d7b05897fbedbc70fb58ddece134b374cf9221e3f54a0a4620c6dfc",
-  "371b0ba868f33aebcf194101bdfa0961c7ddd429060fa4b01720b34d76871dee",
-  "c1ca3bf6b46ac16602bff139b9f3847bab36cdf43269d7b38d3ec6a1300c76ec",
-  "23ca891e5af07c3e5c47a168e79af48f32db9e030908f5a5e8f7e84012298e52",
-  "4757b3571bb47ba9107d7add62d87a7a53f0512f6149319712a0810563f52da6",
-  "fd3dd6717692faf16c4f99e70d330ebbea8aba24b90ad8eb4de580a38bfd9def",
-  "f213ac5efa0bc243d6d64007c50dbedbc7cccdf177c44a582c67f6e9d1f15003",
-  "e5f7f603f81d849a967f5b7143e05f5a383ac8bea7db30184286d998cfb4cf7d",
-  "85a664c0fa056862e1f29cd14cab2c73323e06a6130bc1df4cbcba1d02b6f7ad",
-  "fd3206bfec72099cf4e4c345b9ddd9df951bbde96979906b794b8440985bf8c8",
-  "8a335c17ab3ce4d564ddd8aa3a707a309dda7f4f4fe692e466a15d450ac01d49",
-  "5c9fc34bf3b7633130b5341dc0560406d0f4ab5110a8ab1417e4127d459157b5",
-  "6888f2744f7239bbdbcce21f0569afd0472b8d5aebcd598e0d52a9a9229076e7",
-  "8b20256edf901d5a8bc0f71f6898a6b1d0818edb2f561d3219752a709abaa318",
-  "17e90033853bbf98f4c824ad6ef10f5f206350b99908727b391beb704a4cfc1e",
-  "b5f0c69568656661fbcd3bca40b22c6574a8c44ff79b74301860f7e6f0088fcc",
-  "bcb626ce87f1ccd730e6563bb9a7699d1f4f68afe248a3812f36fa999153328b",
-  "98211323ed6d1e0fe3204f3ba8359b261aa32ce404b148a0503c64d45f623882",
-  "22c07308f887645d8c2097d5271cf47ecd6684ed212d3ba147bfd26bf3284df5",
-  "96fce921032289e9e686d8f207c5b4e7273feadd17d02148810c33e07dc7d92b",
-  "20ee30695b8af845ab943b3ed3e854ef360be812572e1162f9d5879a901d9b29",
-  "6b034b4c953b7e0900da7170bbca5c72ebbb007959720860a69357ca495148fa",
-  "2b159ea4b38a259708f88c7f72dc894c791f833fdb28c2ddbb4e3c9ca8fcfb6c",
-  "a1e5924ab091d3fb4996c3efc3c48b123a08998c55223a940e3fa0bbe1b1f4bf",
-  "72d5bdf37a6bec432f525eca307d37586cd70426cb9914416b27c450009c5802",
-  "2ec798c3209c6cde322b5b08a73544e078286a8e5b7177019b72dcbe98d2a128",
-  "79d6bb726c064cad4f783eee8fa14bf1cb3211091a2ce527394e0bda41476e1a",
-  "0bfaffbefbae3482ef5c14f431f77f3e43945bc0efadbc0dd9dc4686c134894f",
-  "6a56664f778318f1a05da732df3a2fe4a71ef3b1212d0044d12f90b1a577ff4e",
-  "4c95123ac0e5b6d86b33ce74523855bcd60d8445a3e016719ce101d243ad2179",
-  "96e91f5eed917a50d57d6b47322d8eee5dc920b5a46d642ad506585e3f9d7232",
-  "4c2d9dbc6c77dc52ca03826aaf44f42bb4c89bc3a53c5909ce6dc030503f283e",
-  "823b8745722f3926d9cda64fd5a4b6094f2041643965980707de01ac4a65b8a4",
-  "acdf979faae02102a723e2b75c1c07cd70d404233aa680e5b8fe1a239b77cf2d",
-  "47edc1dde233fd23d91062eedc69e88ce860b349825d1e205561a50238ac28fa",
-  "aeb71797e433c16ed303017030b2d85b786d6e10575413f99f91166f0ecd1b77",
-  "d1ab6372ac47e2a6b52c7ecf58651f7f1c0b9c4c7fedf6ab66f7957d5e2168c1",
-  "11fd28e591ab241bf1c45e8e227198f40656f8aee7eae6b907d09175ad13cb86",
-  "5453eadcee6295d034570556dcaf182661023eb165c1ef152d662ed887f27afc",
-  "d2e8f8ee91baea792e7f1b5f34df1dce48dcc14fb9a59c3fdbde4c7b5e13732d",
-  "f2a2434039e118fc602b0ed7e2940d38b74081d30cb7ec40d61f9bf6e8caec60",
-  "0c50d5432e8d0433627b4a47dc7ce5c26937436810571dbc64cc154d04cf6f45",
-  "072ee3879391deb8315d0d88e1fa09e0eb98e73907403ba763d3a7cec6446d30",
-  "f4199886a44103fab0e3ba0b4ff1e4cca0d3c315616723ebafd8527058028c84",
-  "a88cc6918d7de0275e5f0ebde51226f5e0c5de0575366c4259a8f642c5bf0f79",
-  "83faf3105c5918fb42bf378dea589d8f5b05a339d08b74916120897d08831cf7",
-  "76a0034536ecebdae774892c2dee41b0ef6ed2db8613b70e48a52658af4a4ef0",
-  "2dedf9f483723249c67d8f06291c9ce9d78a0d7e6c41ab93484806e2fdd50feb",
-  "f6101b36babe74fda5b25a1b68f98f0bfcc50071c5ec77b30ed3e4cd42e91d7d",
-  "a2b1cc52c7d4865989bf581f72ee0a13718f11c9866b0ad634619d00288ffdc7",
-  "e8a22e3811ce58b486a797ee0c5ccb841b1620f4ab4c92fdfb7906778deaa2d4",
-  "9e7d02ac92b307e8e913819afa1ad6d5f246a6f9cd262e75328129f5b377cfef",
-  "5550bd26596879febb33d9ede51efb3d406de0ea72cea5a73ca6bad3acb82c19",
-  "a963cd1281bcc6eaa6a3708b6fd5ef4817649808468eecb37e4963af6e0bf17f",
-  "9a2836cfb61d76e0143b85749300516b72a3aebaf03a2b1ebd38e06a023a6f4e",
-  "7c72d9947280f5c974ff04857caecab06a943ad08083d00c9615a1ed2a6dfc3d",
-  "115c8aaa68043bc1205e20ae6772871cd3be871af1fba2f23f821cef565e5c44",
-  "fdb39208befae935f52f0a407dc2d404134b9505c03445b5ec78c136f67e0be4",
-  "fdcf7256d1b110bb9362a05035a343046919e0f722d29d641241eb1bffd57a2d",
-  "fcc4db1f9fb8db6e6c7d1805207fe948ebec80600d19c370ef832becbcf620b8",
-  "4d2a03bbb9cbce6b9c912dd335929375346f98f6e29d58922c8f4b575ac14b1b",
-  "1b361deacda4f13b475180d430d29d7ff7bd6a14946f345d8003aaef1daaef4f",
-  "e1e593eece82956989cf5cb1b7f17f35cfad2aeadc3bc2025762a32851feea68",
-  "e0ae1cf3d5da8a64db80f5db190aa68bcbb2eef64aae76a358d84aafe4c96d67",
-  "ebc8b5c15a3cdce7bbbc24cd71cd89d786b73e5a4d3698b0ec041baeb893f1de",
-  "6d0c8806b8b98ab4f5dfebc907b00cb7deee6e150ca070310590d1ee4af09ebe",
-  "a8b8cc3f9a8a1a95c2d274457d7bd380fbd87af847b92d495db5ccccbbceff57",
-  "bd0deeb31191b969bdf988c56c63324a8e5df51cca62bb9c672b34bb045042b9",
-  "ae6e6a28e1cb9a01a2e27fbefef8be352027663c8ebee4050c217888e9116b95",
-  "bc13fbadcb9bbb5681e5a0fec473d91d5febe6e5022ea3b3bb22e771e272c812",
-  "2e6fdb65ba21cd6e815a52067a846d4ea794f399401d66e23d38f00767d7c322",
-  "53c90416bc34853ef6786874bba70022d2ff26d0a5b4db38875ee0ebbfa442d8",
-  "65b5397e627fa154e0cc0fffefa5cd58a85fb95e02b20b4b1c20c54d1619e1f1",
-  "b309c69df48c6ae089f454f7d1a52ca8b7232aa99d15a983404bd44a4aa58b82",
-  "d319d43f26e48f47bd76da35e750abf0661658442b54ddccb6cd7eb0ce9dde95",
-  "48fbca32ec758a3b09ebd2a19e6d91ae56abbd7ab08d7b9998e0524c0ee2fa3b",
-  "f4aeeb2e4818eb5f2e1600fc688d2e47275724b2fdb75a365acbcb81f6e7949d",
-  "d45b2b05b6fc10c8bdd035cc3de1a0991f74336361a2d2bd75525fbc38d5a264",
-  "91a04615c0f5fd363ff54d06fe8b366e6df1ab7d949a7fc13ba8ae49fcd2e397",
-  "ddd593e46478b3bd78b24e250f6116058a0bf14880bde4df9e170bc1590855eb",
-  "64ca02c7f7cab87969921880562aafdb444184a92df741704d00d0368e655e70",
-  "67006ba52228a00bb5af87f47b56e3dd6921fff684bf6cbfe8979eed86abaaea",
-  "cb66b8cbb3c16830d6fb7d448db043bbfaec6237810a551a033f42ad446b988a",
-  "fc8f6c4fafc93026ab11fa3a13caac5a283f6e47aa3ab549fac4300c2148725b",
-  "47ea29b8a68353403712f6e8ea87e004098bf5f232fc77bd4da9797800a04815",
-  "57150b81d430b95c8afdb7b4bf88972eb4c7721d4985dcd46d901d489f6f2931",
-  "5779a1e811c58f07a34deff827896be458de30b77c9eecf015d1bc05bc71c252",
-  "16ce526870ca6e57bdb0f73535a14f9bf3c80d2123a3daf48f70b443328e19aa",
-  "5e4bf5eb20b95668c3cfd7a2a21297b1fb2d39ef5229207fedf2cdb029400a7b",
-  "1a8f929c1ca86c87291597553f6a63d360fcf8399d8e92d4bd25fac41aea164b",
-  "a16ae36afb36d5fe9868f1865757761b62246907ae544dbb3a9fc67ac19c7261",
-  "afef2ffa5183b5172f77b87aaa90a9d45636607fdc8f6b94773385b5458adad7",
-  "3643243ee91773d3f825f378d38a60e1c03f2ec3ef3d90a95a40487e2cf017ec",
-  "41a5f003e837b7f8ab91332f6c23835edfe0a4d1a5b3bce04ab20de79cbad530",
-  "f1f3f46e5ba0da0b5b089b0afb8f4535f47a929ac0e7514d93db5ebc331ff4c3",
-  "dd119654375e0c1bf2050a255dcef0124a5210ad907eaf8e77bad80d6c15f0cc",
-  "232872a83cceb3834f3457c1e0fee2f1e67dbea0b1fcd24f8b2009b6332127dd",
-  "ad32c74cc38d21f216bd925d32437f06e4199b57607c085a857d34bd1709e8cf",
-  "7f7be347a8bcb0f290c943929d7d91bdde41f6e1f3c1070eeaf2c0feca3359b6",
-  "dcce9726c037f8970712a0adadaa4c114600c233a9c4b73ce9e195243635a03b",
-  "e78662875575bf44947230bbd7a8657e955f223c080706a1d69ae70792002aa4",
-  "eafccb71ad4b0d71d4fe4f127eee5a2472c65bae8c3364390cd8e46bd60105d1",
-  "20aa2506eb9bb85f43fb1240458436abb60c1d72945cd865297bee4dae8107f8",
-  "ee22437da7b3bf96a1cd27feae60bb7d5f21de3deec7570cde3a7a4dfe7bdfdf",
-  "9ad1b2f30b1390f8f8d10365d6ddf13ef4aacab3512067875c70544cc193a7a6",
-  "bb1aaa898a52d62f930bf0884aee0bcda2e20e12c9dae28c5e92e2386c646573",
-  "91e280d93056ff87b6c07efe5391b44c30c02224f6eeb1272bc2dc11374de9fc",
-  "7fd0e51db2c14941b6475ed8a4dc036ff1b4690bdc6c01b13174628b4dccff3c",
-  "81d925a82990e1054be3a4e05b1790ed4d3a4021b28ebae6ba3a88dba2f8ac7b",
-  "58371edd3b6c6025b9fb0003d3178ee27fe39dfcc45146d36c6549db86708fa1",
-  "efcd20d2f5b6a4952edce7c81fbdf958de266ddc26a43eebb2bd65ff5af47414",
-  "1316d856cb302a2a0ae9aa77aee392c1d6b23f04413e8f6c7a24f6670220b51a",
-  "cf867d402dfec96fb639fc6c6b2c063c2354d1c14ed4469b22a30d0a2a541167",
-  "d197391eea2b138151ad322248042441e1cc5dda2130bf0b8c0a509fec652bf2",
-  "7a96f5a1f5b2efb5625747fd779b70b2e697a47507da7a666f3c6e261f93f6ce",
-  "8b42aa7a96e5533f09d639dc2844d3c5075acdc0f811262dc75464efe854a452",
-  "131e6c2ff2624d12e2d51da7f3acbb821dc6e2c4900208ac6aae090d1ae6cc93",
-  "7af5cff406ddd444f67fffee65693df0c339eb741f279b8f404d8404cb140962",
-  "6f9285aec3841b1af0e5e65180663f55b5df6dbb82f95933735345c21bee42ca",
-  "416dc4524f6c9951a6ed15f8ddc353f6c62cd74c486676b76ae0dec664a11ca2",
-  "8e567e44cf38f908769ec674f13d68eef17dc63ea02534035d5bc37a56d7e1b0",
-  "d558d336a6be373502a950c011f95611503dbdca56c40cf46b49ae56ac8ec5e4",
-  "379f9289639b406111761f752b51caad2bf74e36acbcd7af0f64907f10015206",
-  "8ee150d66315a2980c9cf76b6d3e9d20e21c0232b3c641b65645e0fc6c393042",
-  "90ae07ab7bde2c25f9dfd9faeab980f310db44f82c71359b8cd5401c9e631b5b",
-  "2cec7644b1ba5596499e6d80d3fececb256ded8b176fd7439fb2709bfeba3d9c",
-  "6497dc62001f10f8dbcd7f2edbf26ac9f14cbd2200bcbde693fb5cccf7418418",
-  "c83e8eb7bef16e45c7e83ff6184cb8315b48a3f0276259d080d2c80271e82e04",
-  "63048f94836172ea66239835dd1acc3a1207ab0aa3c0adb3581b048c4535b590",
-  "d0b6d0dd60397a832f5f532920e013aaee79a33d13abdb34da37762f1ff95e60",
-  "b7edcb9916db6dc329d74f0eef3ba0019909d0b6f03c5f7f23858abea8c42a88",
-  "481e1604d2e5dfcf0d9943ae21d6efab804755197bff9f24eee982b0f9089288",
-  "ccaa15c0412931193d24f878eacd9ef45195df8b25f62cc52e7e02a4aae6afd8",
-  "cf7b4570ac320b344f4f70f31f530c2312db5b7241651d361a91f7986db3922a",
-  "c984af0670b5f6ea2de234491495a6037d6294498d3af9acb94fce77a2a41e93",
-  "abcd660b88d14c1c1601492321379521c1e4274d661113338c8a5b98d6c12d98",
-  "befb83a64bb6a06543ea82c72f99b2875092debfa91a2e247f9580f8d5663c98",
-  "5f1b73d5b3d7592b2d0ea7be0181ae20d09d6051782c35c8537a597818b5a830",
-  "54a827f316d8ec2285e68cf3ced983f928fd96683d4f952e673c99f7058b926f",
-  "0366e11674609c76ac98ef283275808cbb4d5e72de3a5444c2b8881a2a3cd689",
-  "203c733dd8c6e64559b567eca78dcd14967a9cd8676d169cb858cfbf8aa819e1",
-  "0f796ba5285867fb7b6a87ff3d8dbdfbc434d109c22c62e80a39df767d2afc2c",
-  "f6c2656068a8c9565e1d9b091f25f534f8cdfb749a0220d7ec65d442e4ee884d",
-  "58dabe76ff82e4419fec4ef2126c9dcd4726a91c3b525f98c9b2c32aab6e55c5",
-  "20d3cc31efc0c5c62aee0ea714184720590a4a374d89819b6c1902f1b18f5e9f",
-  "f0f1db70d3a8d51083490b684bcc0f49adb27898b8f58698a2b22545b183d689",
-  "c6826048052fcb7c3d0e1d8dd5886e0e06715a5c6861fe23fcc9a3c8c1391d9a",
-  "b3a239f532e332a6f99d654a0a9d84cf9299b07cc568d564062711b0c8435798",
-  "65e2ed426228b581bc7931e318e802f311ef41b7ccc3de67e96300b5cd1c587e",
-  "890fe87843f7f3428c26e8dd48df0727c064ddcd94cab3e29c2b9fe1175b3287",
-  "237a0b1f513ef795948217f0b0a291591d53f3931aa81a4d25a1d75943c0600d",
-  "05b1f7ca3e6f495d6e2df58bd88a8976b885d8565edccc7a039a5dd8e858e99c",
-  "ad0b4bfd750bc807b1c124f0df4e4cdd9429f402388f1d3058e56050e09b36f6",
-  "93802f4756f3d767f85b4aacbf00690b28214178f7b83baa12d28fd82932072d",
-  "ed1f3193808e7d38d9bcae268e280617d04ee77eb56141535e6f1cba5ac16a29",
-  "eb724a6d2f62be30c6e2e14a8e158783fc7a1765e7102eebf2139a049b90f2d7",
-  "a5b1f41e6df13e1760e4258aac79d5c09c88234c287a5fbfad77b32085899919",
-  "3f32c35cd63c7bcc57a43217aab969a45f773a75d7616e3271ab1487efab5625",
-  "366514679aa9245517934ccae87870a6c0b4252c77fa4611d2a5dff381df1b73",
-  "d8430a25e86804ad1e6f88fd687d5fe8b64b33f92fe33434582ee23f2eb03a46",
-  "571e1a2f396036766995173d66542bfc4a00457fda30c08afd23583a8342468d",
-  "ebd0e52a0f256623d96b2fc86c59c482cd27bb21f7b33126ff6454ba6873cbb8",
-  "5008abead8579226ce62928e2734c5f3eb5e958d7a3a9558cfbbd509b453e50a",
-  "a46ff45937e5f0c485c88631147283987321c85d4a447015bdb4c7921a6e927b",
-  "15484287e0d6f540c3d4171da746ba7bb28d82836d6d8560d96f2982cfcc0edf",
-  "6c8b7f7e40a17eb87f1874b7c50225d8544a01cc2cf0ed8c30c3dcf2ca6ff3ef",
-  "6eca4cbfaa66ea24b2d93accdffc1d9524604668ed33949963875c5a4a59c46d",
-  "75798ff9253562ecba3e7e42a43c6fd74a3c4330ea178daafa0532305e8356f1",
-  "0579d849eaddac0ec5197c279defee32b7209bf4f20014ff1874d746afb4e883",
-  "aa5f91ca91dcda75d7167e1585e0211eb3b78e6be0cf50209ab6747b4a24c053",
-  "ebe5cc3ca3168c45ee25061537f9240ee6b07450854596ca0fd9c55ca13406ed",
-  "e6df480d88d5ff17b9857c19236db2406c155a8c98b6b574791dc5cb8dd5a210",
-  "3a796f23055aefb2babc17db50676d4b0a9f2ffe7d2f9f3c59b30b86ebbdf23d",
-  "f5836cf89c9343d70eacd5538c1c341a1028d399c5c8cc1d327d2f29f4866c18",
-  "3ff412a93cadc50218058e18747daa639f8e54555dcb433acb5f0302403864a1",
-  "3c93f300046831f9e71cbfd6087c8f26a64fc13f9e93ab1c799636da82cab6bf",
-  "93c51690d4c0c9c43319727c714aba6ac28f0513369b28920b349bc53ad3343e",
-  "3b7674c2580ce76d1309f9b2688ab50a07edf1c6c681a859efc3fd9b475615af",
-  "3354655f697137101786ad7e29fd84683ddca5aea027a2b8dcaa2984f9efa2f5",
-  "9463680ddc0ca0d1f5a8184be4516fb7e590f94c9ae106be7ab14a8176a21017",
-  "021e5db87973b95075fe572f04c279ce2f71d97418204cb80548bad41d0af60d",
-  "6b5402d5c8bb94a5f9f27ca17dd93be940ceb0c952faf67687a2384d215e0d1b",
-  "ca8d7c3f6a9dc7cbb97810b65b6c7855c9ff8119d033f6b19eeda1dc02a95e10",
-  "237dc0c310db83b58eec2debfa66da64279a951e3773fa7b35b5599f8639f929",
-  "3daf4bc05ad5af29fac24c41af87a15781f05eb726e938fad3aeeb69ac1be717",
-  "407a0bf295f3bfcf6bd6e19e726f83d24ca36d3d5b4b65c40ce0f9cb0bdec3d7",
-  "080e4dbf91ee5acd99fac998d77d2376ce7247a9f4813ce65bd381dbc0545427",
-  "44b4ff3742eb0257374e8483ec971f759dcc2da7ef6d0cde3286c7435c0cb2cf",
-  "882977a9d921bf2bf85025a1edac96a1ae00a72c3e802861f26ed32f9f35716d",
-  "860ebb95a2e5cc9c84b56d268a2c9728f2b9fb3be22e53bb4bfe514628afa349",
-  "3fb3a1fcca25c5e77a71772e522490b103b26842a777f619b94ff2eef3a2eccf",
-  "d317a360e5d99e54db70ce595766ca96e8becfb72f9561ca947217326a12eb25",
-  "e377f8aff6282a9267e3d7e45c806cc0c6fc3b4d3d76e223bd491fb26216fb44",
-  "737713e56fe50b17f2dd767d55d6ff2cee08ea2732f1df61cda96ba9781871e7",
-  "f6354a862930394bab05a1e7d1f2932f96d95a5d12acabd36e0dfc4ea45d4bff",
-  "d4aa41c8434e57b47edf32f6cf6ed1bed6c383e898df44d84558837a0178af8b",
-  "175c85a85fd70e5ae0b9befb736cac33a9a2066b4a89792922f9c8df1b5dc58d",
-  "11417eda347fc40c678121bf0067eb4677a84f442fac0f3ada2412a69794c521",
-  "a1145a1c82cf00552ca1044978e28cd8f7e8b0e32cf15b0576a156baaeff2269",
-  "b769a9e4a3b0c80bba876e96ac0eeb9194cb23669cfe964d087f33f4366d4bdd",
-  "fec605b53fddf0ef02744362dcc2f463a2b64584a19dd487283a3a92c2177a15",
-  "721907f828f383c11bb6d956d64db4a8eaad21ac20d2c31fc52f08d756be446b",
-  "32782c3303c9497c7e5d96f483d3405d9f4421f899847fa11037d8fc35dd8cff",
-  "99946eac6d721d1b7598e1885eb0a089df1aa5e23b4b4224ebb8706a840f4984",
-  "acfcad902f8930d3ae665159d929113788a6ea7a74d94f904aae3a4cae341b1e",
-  "5407f672c42a12647eaa40f68782a86df8b53cb4e085f2a9be284edf3162eb16",
-  "de1009712430ec685b3d066f613f1e5220dd0b1eb54eb7d8158011311f4f48df",
-  "8338507f71c2c87975460cb1fbbd22c492e33d287f473ed1c93610b296dcb46d",
-  "a6d6445eb3c5a1df3429ed867fbf063c68253f5d2ed45f51b90f557bf0829bc1",
-  "117bd4fa0ce4364edf02323d529462b874424c89f4aa5493126c981ce4da505a",
-  "8fe10db7d6af90269862ca26bbcaff53e6be23f41fe8a264ab93627f20e441f5",
-  "b4a8f5d1714a64a98f6dff9caf1410d0a0f9787346e9571695a9d515a4867b90",
-  "5e4b59c2af72b86a2f9c01abedbcbe2a4a1b07977607e3c187250abf7724f315",
-  "90c2e73427e6f95dbc70b01a0775526b4f24a2fea197e3525e92be2b3579efc9",
-  "fcd037d0943e92b071bd99c0ac093b5630a322807120db7e5c431e51e98d683d",
-  "3a012663ec9a810fb889cc987959851a24b8101cb04f9160ff8a907959bbd89f",
-  "9bc5b88edc00db6f9112146457721a131720831b0e52248ec3af10a6622a87a4",
-  "f237afadf0a1a14443bcc64342b44bc4da190d96931e06e00923bef26c5eea7a",
-  "b8cc768e2cc84085d1d76ad4c817f5dc73cfcd8cb19f06dd58af8e740abe7685",
-  "de689a9710357a02100f73426a45750cbfb8a693faf88eeb7bad833a4b38018c",
-  "be46dd77469c14de7fc95a3415b3ab8f985eabe2c4075886fc0afb7a4c37bb1f",
-  "e1c45901ececb6d364f8ef359e965182519720439ab244e99052b578676d355a",
-  "eda7e06f09414f007b832d1d7acbf8b24724da63d1534c57f44fd64c34d5bbbf",
-  "aed76b12dea0af678de09cbc4d42b10215ba20904d891d117c98df85ba5aa65a",
-  "4ff50706263a21bb0bdab1917b60da3301e12fc88d7b1a6aaec529f34e6518a8",
-  "cea73d737b507818829539c021ef99b73533f747a7cb8b8d6ace43a0258f0bae",
-  "616b951f246ba44f7e950f10bb175b046763e3ee8926e95e8618dfdbc7d63dcd",
-  "f606ac7b059ba616ec1e952227f31cf0a83dcb66613c012cdea2a3776961f0ef",
-  "f17d398eb6c6f0f1e224c6afa9dcddbf2094d3bbd281d3a56218c016538a5814",
-  "d398712051b7e7b8500ecbd030d2c6a0012b8eaeeabbcc0d6f1e03f4acf709b3",
-  "35ad64b490c65406a2a230b2295acf9efef9ab4ecc0de1572e8d45a61a5ce22f",
-  "bde30f4e8aa3ebb0e8f75158be727463e25d2b3f02db5cf3342581ce7279c118",
-  "f905291b77c9d4e4d332139785a1ed38a93fe2a9c1bb96078b10def48cabc1fd",
-  "bb8b0d496b610c2d51967d12821cf86d796b7cd7ad2cbd5c0f165b232f281464",
-  "d1e54c9f3d7d77df2f0382e1f87b3274dfcf15120d4b696d047c26db37320467",
-  "e48f0b0d2577542ad3465bf6c063435390470388a27d938b113c74cf1d962c86",
-  "88bd048aa545c0a39ffc3742add69df631c6a20203d59b0c0dbaa9a7b64d99c3",
-  "4f2971a0b18808649f978cc94de8b8f70fa5cf3ec0bad1a92499b68660c1fd2f",
-  "bb1bccf29a16ec541802bd2e9cf0a243865ac525e80df6b9f657c8153549030a",
-  "809bb26aee29f93ab4484694506fae71d307ac45239a431f3f51285aba0dbd3a",
-  "bc94884508cdcb24995a2bdb0175709d7cd360945659ab02997489a179650b9b",
-  "fdae0231c4a1fc14b21ba2f1c27548d4c259544e80b94696da838ad6186b2ea2",
-  "865cb6c884bf48ce4ae2089701e542374750e0b8ed234d18f0fcb4e1a8f8417f",
-  "9f4ba15b559b66c1023163a2cbbc0cf936c35a51b8f04f3625445ca0569ef9e4",
-  "453adf7b1b6a9c7ae5b5925f03b344a1e9b1993c9e26e6a9dafe2dcb34c80f3e",
-  "33f8367b7499ad7792e8e812caa0b08f2c564a2312e245d3aa426cbfa50da001",
-  "48b9842203be210e49984256edbe6c78422fe6e729c871e195f7c03bd655809a",
-  "d1840f16e5bc6e7e20eff239faa70d448396d5a7fa8ed70da83ba36c4804d590",
-  "d4d2c2343bfc0d67e138d03585d288829e2828bd62445f2d267ccac61719c645",
-  "7b74044249093231cccb78b7a4cc8dd33f2297bdd3da373651ccedc453fce6d9",
-  "5431c093dd91a10f4995dadd46dd193b0fc82197106028c6d6f25b23af5e6940",
-  "a6fcae9de27cbc2c2afbf517a09b240375d37712d0a0de733d553fe23ee72357",
-  "a4cb89a4cbc39683112759ac26c2dc3cdcfd528d060d8873817e45488eec6c97",
-  "89393dc9a345ea4dd7abe3e2d2eaa99cef622b37581649b70e4523ce8229d13c",
-  "1b2a0baf5b389bfed5be0546152b2c0d802e0f1f22634f5f681ad34d499f535a",
-  "dc6f67dbcd5bbc132c6a4b47f1f2796e505e05509cbf5753949bb488e3f99c01",
-  "64252e144a2e4b0597ce0b2a7f7f629a0045b0584facc8d414d0b85465dc4ed9",
-  "4ce4ffe4585e9d3fe906b66807ef3c4bb06c8a04e8e17dde16e40f873ab8a219",
-  "d00af2de8a83ab23520d8e2cc563352b93c9290952a14a5f9d5e5ff62481daf3",
-  "6ab33d45513b7013624e01e15f616a3436caa8813c863a13eb85e06a973f9520",
-  "45583e5eae28e10f5f72ff419a3af1896028f5081980cb1f965ea9ad2cd84ba6",
-  "4b265c9f76496407bdd1bd16b7f6ea3e97f3346e63d5e05f9896b1821e3dbe38",
-  "462a813402aed601bb37e2790a5ed2c7019133d36b3b10d3286ea01437df4bf6",
-  "2a8849e3e27e05c8572140297d86473e720d62e6c7ef1766e4aff8313c688b6b",
-  "bb9e553c553381d0533333c7b830615d6d5c148d617f7eb488f12a5fc28db091",
-  "91667b20ccfc055f0d7917eff1c713f3712d948055a3139e6d758a308322503f",
-  "651eb2292d163c9462d9e748f3853057de4c536325fd0bd7b82e677ecd113c05",
-  "4f28977329a2153bd6a8c1d47e8877a4abfcef83cdff4daa74845384d8bdcac0",
-  "15cb7f2be4859c4234a46fb8a9e142a529d5bdb93bd6ec1ae5cb19b01b507d54",
-  "50bddc4bfa7cdc185d3b2528559936510bfe814ae162eaddf609992f6796654a",
-  "c30f9dea01461ec16cd74f749209d5d40e3f9ab10abb1e69b4ae0d4635095baa",
-  "59a66323292142ca499c44cb95bc308c10d44aa534066efb413fbd7e622fb2a2",
-  "d947618edf68ef10d372c867c6cdbf1935948bb222b85b7e3e1b9b048775ab58",
-  "366b20439156728d7753c598106508878bbf4467d9c7812ea686683580365a50",
-  "e268e840b3f5af78661a3d5a3fbcf6eeadb50e059f226a906c94df839f1b3281",
-  "12a608f8188541bd9076e9055e03f3dea310bf993e1380df8dcfaf8c4ad00e07",
-  "6c95c367f94913388cd1419c15f0fb948d7dd255114d8bb078a055b668419217",
-  "f2ffa791060273fa3bdf46fc7ee7af85a4345e08c53b3f0a6d6def54a00f815d",
-  "33e9457a884380697735888d43ad3c1e5d3117f7a416ef4bc0efbf68f4c645dd",
-  "37c42239bded5c0489c1cb0bbf793150d914760d8c07c9cf31fab19d6a123c98",
-  "427605641ce60e39a058642bf48f2bf780d2fe348647442ceb44fb1548460aaa",
-  "a12f07c1217f06abd9535677358a8a1cfd8b648caa005f1083704ce3f8b59b41",
-  "ea8c399cdd6478215c55d1893dbe7a5da51f142a49d712fb0e2b237133bc8355",
-  "cb02e3bf567c51e7d0703d633d2be0ff613152d76412f55be2f0d07743a2c8cb",
-  "a39e68134fc8bdc0370bafd8f30a3415b920dd346043601d95cd519ba4cf8ffd",
-  "01a2bb324feedff52ed4c1275b6a404f4fb37b8edda7066336ab2c059b4f8e82",
-  "78d763ad991b53af60ba495c6b31e99e6cbfe949ed045f37cdd33cf356eb6b60",
-  "0ea67e93e3dc8362b35af1b4d1698aa0125bc8282e690e3e5e9c9bfa18012063",
-  "81561bc32546fd79cd01560c14214754146413d47043cb3ca57f5e606fbf97ef",
-  "be9a756db4457db34a6430c729fbc754c9d026c3c68ea3ea555839f6e4b3cf63",
-  "c53caa3aadd9b1c0123fb45c1d6dc7db0b8f44fd30620fae8f3817fb6433994c",
-  "be602a38ee80b9aaa37e751a32f5242852598bc1879bcb66d784e17f91f4dc12",
-  "6d7272c6b9c3c460077c43771c246e2679dcdfe171955207be50793f17c65364",
-  "b15974c5ef8df9fcfb878cfe34abb6abe952edcb924cb4c3ef75f1140a79ca08",
-  "ae54bbd8359a6abc441c73a8cc6ac43a436fbd1c24f693c8c0ffe01f99604729",
-  "4c75a2aabcaa8b58fd8440047e81f82d0f07a682c304b18fab7b9f176c6140f7",
-  "8605f8b84bfc181d6db6cc835f1504d7b6e4a266b5db83253798188019f92f20",
-  "2f396f59cf8770deef599ad14e40880ec073744e59cba04a8c083931b4ce8971",
-  "ea1a04147666d59a6fcc34d100d7c4c415ee46f7677fd8abc36d082064693e10",
-  "87a66038e3b1788757ee7c79a1621beafd2a5164b1156e824c314f3699268f9f",
-  "662578a71a663880fca9bd80dea03dbd01d2a7e0e8a75cde1fec1f9db810d9a8",
-  "c78351f9000801242357aec46f9b66504175cbdce4518043f585ed00fad1ab91",
-  "5e157bed795e96c73ae9151485508de345b8db1b24a328f251eb755a5f3f6251",
-  "b0a3f0eb756f7753f3f151bd2275a5e3ab2f76639ba42bb3ef12fbcbc7a61830",
-  "e0ef1e7808c06a1424e94db12fb887259fd3498c55a24cd0501525876e18a1c6",
-  "c5634df3121a2bc17793c2907e9627add882a914dedfef3ca0e4c0270a8762de",
-  "c79b244dc04b2a0aac724550eb61d16170cd74695ad0dd540ebcf9363c013b49",
-  "0000000000000000000000000000000000000000000000000000000000000000",
-  "19d3d919475deed4696b5d13018151d1af88b2bd3bcff048b45031c1f36d1858",
-};
-static size_t nb_edDSA_pk_vectors=514;
 static const char *ed_25519_vectors[]={
   "e4e4c4054fe35a75d9c0f679ad8770d8227e68e4c1e68ce67ee88e6be251a207",
   "53bbbdb18a3aba5405f4d61f2535bfd9f4b448280f975f7f31968025ddeff96f",
@@ -908,557 +391,46 @@ static const char *ed_25519_vectors[]={
   "428bda84b67e78d45c5531e194d1caee74b6242417c0237d34132546f7c0e70d8af611ef57248e0437241f5c3592063b5d13b94b78fadc39cf9a703a6920660a",
 };
 static size_t nb_ed_25519_vectors=12;
-static const char *ed_25519_pk_vectors[]={
-  "e4e4c4054fe35a75d9c0f679ad8770d8227e68e4c1e68ce67ee88e6be251a207",
-  "53bbbdb18a3aba5405f4d61f2535bfd9f4b448280f975f7f31968025ddeff96f",
-  "48b3753cff3a6d990163e6b60da1e4e5d6a2df78c16c96a52d4fb01ea4ecf70e",
-  "f22a7c011642569003249f49f26d49b6a94dfa6f055b06af1b4e9c6268caf1e5",
-  "81ac001b08d6577bd91ce991c4c45c46bc84d5465fc9139bf17042ae7313181f",
-  "7d24b5f007663dbfe9478d9ee5fdfbfd8ddef5a3708f117550188bcf77d1c742",
-  "7afb217bd1eceeac1e133aaa9edb441fa88ea3ae0eaa06cb9911b6d218570f92",
-  "38b60e878df393f9accc3c4c194150189e1287fc1a62b71baab0f292711ec4d6",
-  "4a70a7e992b43e0b18578e892e954c40a51abdb5a85d300c32f391c45d6ef4db",
-  "b495151163701e190698d910e1282eaef7ad04289b8a7815f5a7a7e7e8090b9c",
-  "043ddcf4214f24ea6ef6b181071f299aa254a4606ab6a058e0c6fb5598218db7",
-  "5a13a71c1d0224c83cb14724f432c8bd788b2335cd85999283d42853f79c5669",
-  "1deb473f7d04c152e7e857736715dc7b788aca39a3c96a878019e8999c815c57",
-  "ab2532c740aa51d40bf30a95aa5bdc8885dbcc93bdc8ed80617573a31cd607b2",
-  "23dbfbde05e6c71f118afc0dedb5b9f8dea398b2d764bca68dfc023a9821939d",
-  "1ec414c4df4ffbee641cb4da5c0de9c24c20b36efc08079509feb6454589e0e4",
-  "389e38a072cf1b413bb1517c3fe83abebb1cdf3a218abb1b0c01da64c24f59ee",
-  "8363fc3b0d1c341b880f6baa5110c82378e422b2742a5d53877c9fb706fa8ffc",
-  "d19cfb8cb3940aba546f0be57895e2cc869fe55aab069c5abcf9e7ba6444a846",
-  "c9ead10ab1223df9b779f6dc3cc36917364cbfe5f31c89646118dbc966bb9b88",
-  "e5d73f1c8c5376c1220ff3d9d53eeb65cc53599f40d6c8348c353b0017265523",
-  "d079b9a0a79b3b64ddd02ff1693edd4d491a237ee319e8db925474719662fce5",
-  "6cddcd1879ca1f04b35f91adab70b81f504035fc169964a5ae985e6c11b0b7bb",
-  "a839f6c37308da70def6c077fccf2b987466ffc04bb32be39f879f243fda7948",
-  "18a51fd77fbffd722aa220efdd8947ca5a5c7fb1c2ebdb9ad1f603801ff22e80",
-  "fe34db456927658d8b3112ecaf76af99c5e4e23663bf289d1e81ff8745c308e0",
-  "314f716af9c22022fa159dbb4b4d3153f999b20ab4769eb1d01c057c5295ed04",
-  "53f87b8775ec6b6aa4920e98be462915f4885a8a111976e19acc9bd7043fe1c7",
-  "2b4536561dce32478b113adb5b605cac75bcfcacb5e3e811b78e72e398fdd118",
-  "5713919e0f20801e76e6b1b0b9f9831f44e3b7950a7c43a15a8ee3f23c2dff1d",
-  "bf04c6a7ed0756a3533e3dca02109e1830b739210bd8bffe6a8a542980bd73e9",
-  "5753ca1546b5fe4cc3ee4f4c1e581a5b68cbb5f21450446d7ef9c7cded809473",
-  "ca43cdd4eb7173476862df6d2458d6c74739a0ad2169b9c89edd74e16fbcecc7",
-  "d2487356626048ef9d7dc0ff5cc4ed5dcdb7c99253a7f4914a7e921196513efb",
-  "48c25dc338041fc34af0f1bda20eaf3fff7b372aa801eb98a1298bc610280737",
-  "a7cc16503e8074db177fedad9fc1840e62a34dd1a1f4e23bcb771f2fc3400bcc",
-  "50831c8cb43cd6822bf3f6fae0801cb6c843d8066b07346635365fb7d6ee54e5",
-  "38bfc0b57ba86490aa2f41a3209e360ea4df055f22c07c7f54326d36780f42f6",
-  "c9cd6f05d76b2bd4caec8d80b58235cb4268543ab0eb865a948cc5b5f6e31f05",
-  "ae40d161b76411b671e7dd0eab81ad5b55aa5cae2ebf456bb7c344f3d06c3dda",
-  "f8146bd9495acc459d6d200005ee72c3bc3e4ae3badfd79adfe46b2ae1045f78",
-  "a5b84fce49a9d76e34b2bc14deda21edad09434402b408a62a1d5d1c860633ad",
-  "382e04c969df1a2d6a963a79c58401770a383248b5d70bb4adedcbe520fed634",
-  "726d80243c7acac1a61b54f3a6137dd3eed070138e26b0f33648a5e17570095f",
-  "f513b8c2ea6ab37fe633ba7302a5db6c2aa209e24478fa1bd6f6ffabe98555e0",
-  "23c8e634139ff7b8288c11ae9539542b0ab13232ce299b5f89d2e4c3e3cb2a33",
-  "34342cbec07364c54d1e407e282ef08edbfdbde936c9d42df58ae15889f5c939",
-  "d150707a35ede0fb773627d7b1f014d0a025785bb091bfa0427119408456a03e",
-  "a3087eaeac1f2a58e2c2763d01b55744c4a65f4db93adff0078c63f090fb607a",
-  "2bcd89200a7d42545d1a409b2f6eb3dd69a3d4913ff2e8c11816f6b418313053",
-  "90c87defd622e5f55977877cec9ed88312b0411228540cd6dde6e84cd2da59b1",
-  "4942b3fb67b4595346ecd22e7e94fd3663b010ad83a7b1705b5ba9cfa8841edb",
-  "871db119e3298e3c12fe8200a47eddf049c971cd99f694e3b2a5e25fa37aedf0",
-  "3f1fd80ea23a4ddf52134b52e258842cd3215ad124294de134ed544a503dd205",
-  "1bf32e7c679a3187e22a635d301ce98ad000ca301049f2e891e403250c3358fc",
-  "4dcd55cf138098820e648b9379c5b641428255e182b1b2215517f807df4a1023",
-  "2030b227bb96e93b88f419afe9f9d660e013761228051ec5a8f0c093b33fc60e",
-  "adad2e6b275bcca461f386148ab85e0d148d0085a3843bbfe52f037ccfe867ec",
-  "2cd7a9c845434e95d4319d79d1bdaa8f73853fbd9958e9ffc23a0ecbb7b48dbb",
-  "7f868beb9995404be620bfa4a56ec2def275c7152cf07717e4f22abe9fd71ac1",
-  "a63672d582bb83d92249800324cbc9a6e5b37d36887e7c79093f58ef8f1a0015",
-  "543414ff6db2706808409bf0af07a617fb4435959faae2feba7dff28dab54f6b",
-  "85321bfee1714260dd6130cc768d20b14d3850f0eec0f8f349110e751c16cdb5",
-  "174e046b2ce712fd83cc3da697934057528ad6961762e4e2a19966923a8f16f7",
-  "ed05516df17479937d942c90eb1fb1813062bd3f3f6b7668cd8fd3afce0cc752",
-  "8542946cda8bc9a413172cbf99b08d88aee80f392c093ffbc8ef8c204a1520f3",
-  "9b87dfc58eceb951e1e53d9e94793329199c42d004bc0f0dab3adf0cd702e99e",
-  "dacf204dd841c9aaef6005b05449f14aa2199137459e328eaf5988df9f6f640f",
-  "fa5ef6e59d3b201680f8e2d5a4ef7f23f1b6a8e102670a3829a995ae23fbc3a5",
-  "502a0433336599a3c8684c6c9290e57ede64b5f6405a89ec9730b49f4e93d5fc",
-  "639e028cd2b5f71bb90c7a1e4a8a05017d26e3afc3a88541f6c3f45d71f8a3cc",
-  "1fcee968c4809fc291daa6c21f1334f99c38380ff164574364477286547191be",
-  "31a063ea4aad1b4d00db6f5228e9b9b1561a7f61812b8b79e6af4292580d02ea",
-  "106cde0881bd6aa434980eea804ddb633eb030106fa6d507ebfce5d505f220d2",
-  "4f6266d04244303304510272e383eaa51a8ea7099a74bafa3375b210653a0d2f",
-  "74b2159ca1ab18e3afcfc7a3f9c74e1478ed5d815a4314e981c615042dc2e058",
-  "40b15afd725cf5065066be1cb803dc158865ed8d7cca72dcf2b7c6b5d0d045bf",
-  "cebefc9758b1a8de3be61d86b221bc8e2e2a247e50a6cc241db9b32c9a6e4b1e",
-  "32b063d3da484ba1843e071b61c49ce7f30ba18a4f7ef2730ecd785494839966",
-  "35b5c7b9f849151f036280665df4325de4de93e9d36dc6a33391e7bcd37d81af",
-  "f593168e17311913753c59593fc66cb664c1572251132fc28bf37fd8e96f2327",
-  "99b3976f0df5ce9b7d4de45434bc221380f271c682869e4af0abdc2af96c939e",
-  "cf7948a1126fd37175a91f483d6b3ad92308df7e6daa8bf3efde75f80ad72a49",
-  "d565f00aad5317ff1364907b7807c611b827500b4093ebc3656aecc07f8cd69c",
-  "ae0794009e21ad33fa4141fe5fa79fed12f6a20f51614dc130f45598e92549b1",
-  "011175dfcc4f4260d91409c8edc67ed2b69a2c45d3a231dd083bf0d61e229d63",
-  "13ed6185724507e7fa5a7e8a75b2c7a3ad700919f36a46ea0ffa680857e30188",
-  "448526c6c2a52dcd2f59347bfcb0113ab491dfda432e217a12e01026f428566e",
-  "f8a03c7c4b6c11bc39aececec26687233682d31887277028e2fd286f2654c681",
-  "67fe691542be47199b53645582de66f0e1d4d0ca4f5462df61034e47fe1a50e6",
-  "efd9e7ed6b340874e897337d4dcc672811a6cf4b69086e0a57c266424dc1d10e",
-  "26a7391ea1bc76e531067fd79e9b1dd47af422c7ae2e733aee9727531670446c",
-  "cbaf0c822cce9e4f17b19e0ece39c180a4c756c03c19900280ff6cdebe5174d5",
-  "63a6869a9881781c292e5f6f5d7b622b95ceade42e7c53cfe1ff20b8acf016bd",
-  "07c6e0860c38c3537176c58965b74a56c52b3151bb8a149cf4f82158d57c823f",
-  "12d721ec17ea77d1ed22bc49d7d0c7fa651097eacc660fe7be505030e19538f1",
-  "3a90c6b427912226ff604d9abee1fb8c8d35530a0cd5808e53e308ac580f7318",
-  "0b7ed8d93835fbdb12a3ec4037dbd164673171c466824eb060d2310fc278a91d",
-  "fe2ab2a4933b5d90db718aa3440fbe9ba17f09716219bdffc93a189e410a6a3e",
-  "f1d360cc95624478f8c5d85b72e581ddeed2b14935753cb0d9b7f849f7620bee",
-  "6477fbb05c7c35956c3c0c5f342355fa0850307998642501c025e3873ebac3cc",
-  "2b6d39d077a6d04d09e37738be18d84025ed31c935e190e5076f1acfc62e0828",
-  "d749d8379ae6d830f785ec104897bd723d34ad20c9d36bfe371df46aebc6d459",
-  "0dfb9e4cf6f8d0b52ab69742214430916a17d7040f826c225a26a17ad1580e7a",
-  "5d490a770bee4dd0be6a5a0b5e95645c7dcbc03c27010df3320fe75b0a3ecc89",
-  "2ce9e9510bb3efea80e88b5399be7fcf1807604a083f9622b3ad08f8b7125d73",
-  "83ad94217e80348fd0f3f54e54b95bb548dc2225a264443732b41b861590358d",
-  "bfe0c4b2a09674034b3c04e12ed4120f6cc29e1e0e8e76ebc43ef604f1fa290a",
-  "543894006b73f3d70fc04b15d0c2a5dfa650be5044fb5061811b866be7f9d623",
-  "aa5d721d03219e455abe6e681c141105b41397bccf59255274a40d9181676369",
-  "fcb077ee19421610aeb263c57faef00662d424c07a7aa5005068b262251c0667",
-  "27505bb71582d479a8546923a523558455c03c28f70c425ab0edc60daae8222e",
-  "a4e2e4b12f5df7f509564517887e370b425fabab1ce9e733ab2911b42074414e",
-  "5beea8de2d45e2e7cff2886d2721a0efaefc9483d30d9a86d179b3b5799fa5e5",
-  "387d7247fa5055489bbd4b7d4de256de723566c1c2d3ecee8c10e7d98233dbef",
-  "936c12d019f6d994a9df8d9252fe404ab29a59ce5702bfa174e4bfcf90af0373",
-  "90494951ec91a843f6701f8216a7326b241fd57f32e09976de4054797b9aee82",
-  "f098b2d5730e8d12ee29e20c4b41bf2da358fdf40ae83f0e88d6712229f0526d",
-  "0e0de381d02852ac13f511918267b7037330e60ba1c5875a0275f8ccc75cbe98",
-  "b513400b1271e6030edb3eedf8b2159447bafd8b00905bf93c914987b5191c27",
-  "7c12457eb5614f87f1fdc40118906d02c602059d48ae05ae62d3d607d6bf63c6",
-  "e70fa251a0bd9a536335135a3b7011011a2c7a0166a22703423425d5597fb504",
-  "760b802483b0e3aaa9dd4f79c6c5e93e6b51da45018c6bde108f81f9abfa2364",
-  "b26750c3178ca222abf590286c51dab754318cc8c8845938ccc3a5b34b2b2514",
-  "0b83cfe3fed34bcf6640bf0baf647dafe9bc99acee972b5a152efa3e69e50f34",
-  "7400fb7aaf977543fd3a76aa0f3eb11ae5264798ae8dcf58ea8d92d3750a0926",
-  "3bc12887fec8e70db73b4b48dce564d83786aca4c6b7e224163ea928771fde37",
-  "069f524e22a6ed2261bcca50746c9c37ec4d42831f65ebc748665c2ad30c34f8",
-  "78c453b35d98deced812fc5685843565b73d097601d3558278bd9d7327de5fda",
-  "08a92bdee8d41fb3053181a1dee201928a2f86a536386251e833e2762b1d6859",
-  "a2b842050b370e837ef811a496169d5ff768878766c08c45561fdc2aad6469c1",
-  "2b79b8522ded9550fe802f2ddd02d2bd0c18e2ae23fe07a83ff354f8fe8c4c6e",
-  "1380c3d3f873c7233c541ea4c43824ecd8bf7e11ac8486208fb685218d46736e",
-  "0fb9513522cc648eea69d11f68171030cc7708d0781aedf60362ed16e0be642c",
-  "51103d1fae0e8e368f25480ee7328381c2f8b252a18a29c44dbfbb62cbe6c3df",
-  "0144ab99fbd7a2a498bad8472e04870af0e6238c93b4b018eddb63bb74e9b291",
-  "d4db55378734d8110b8f20f1d1ada6ddd4da48fb09c06580eb46bbc5ca62bfab",
-  "c0ea4c6a28f445a3c7cf047fc318fea4c0e76678cc409fe5bffef5a83278899c",
-  "40b184271b73b710d40cb63435042c9b526d1e5c3a77bfc516a2bcb4cc27ecae",
-  "28ab2e5021652da1d89d1155b42d29fd802ca0d65ddeca5caec9cb27c0ecb975",
-  "b3451318590c84e311dd1e876f527d81ec81df06c7e426b729aebb02be30c846",
-  "80d6095a39008ee9900dfbd92bcfed78331dcd23f260cf3323c09a7a9346cb5c",
-  "eb228490df4a0e6c688aaaa6bf05d14428335f2652926bfdfe32dfd789173ba8",
-  "2b3b6205aaf96190798c61e4237f7d4ef19534ffbc9cef24034df9e6dcd76819",
-  "60fa0114802ee333d7c49ccaad8108db470c882514716592e57aba26bb75049b",
-  "d05707c6e40b652ddd3b63fbab68c0c1826ccc73efa1544869d440cf2c745969",
-  "75db088bd1a89c6a67fb76b96c987478bfba2449a607f3cca1c911d3b7d9cb97",
-  "a62b65f3221f2f93f48e126b754a4be2265626638940dae5bc569acb1f0d518f",
-  "2bcd84b0246189c7820032e031949f1e97e8ad5eb5a75cc805900850969de48e",
-  "582c10273ebdd2888262a0ee39556ef673445a3038ca3f88eae7723316301d2d",
-  "74267873d65e0d67482d1c6f9a22450bff02814b8626a89534495c3bc3c8897a",
-  "70c3e5bae4cfcf02ab6112d8f9ea97041620f7137e7da185a3f8dd913419ac2b",
-  "096fbc2f9e50fda78ee3c8b0fb60231ae56bd39693b1d8b941a67930374e15f0",
-  "1d62e8fc4d4efbb9581b77b6aeaabcebabb0efbd5ee2a79613b3cdff683f6e2f",
-  "01ee35b10ac1efa06855ef67ece02508dd34fdceaaa36cb3077fe500b4456393",
-  "aa1208e9dee3d6c3d078f78321778cc39e4484e0e89bd7d73bddecb740577723",
-  "bcbba82e7c959bd047d2fe2e1044ad7540d3bf8f7c974fc17e106d9380da192d",
-  "0fe09b4229735d940d0e7610f0e93f7b664b877e2724434525921ae156ae381c",
-  "19f4e861b0517aed05a5e9b942a93a505a036478ae8c8c9b0108744f2e1c7714",
-  "02a515c053491a17088989634a491306225e3a93684498bc2c09abc577d9e1a4",
-  "8a52102e2903352b5ec66cbed7474a91d7ca3f49fdc859b3e1705e1e05b12478",
-  "d2b8d72acb9e01b6597a1b74b6f34c81a99a722c5714ca7f5c0f7d2e38b87131",
-  "9849fcae816135f8ff7c83156a36aebdd8b11b679e1325659890870da65bd4c7",
-  "e5813e3a057616cf2a279fab372424e1af47b0bee9a5493333fd4100e86062d3",
-  "90ceb7351cdf29dbda3e68c2d64c04c7da7340fd622e6be14bd10d4003b8cf7e",
-  "15f8000a15c3eaabc68b44b988840cca6f3cd3378fb15dc7a72411420bf3a1be",
-  "956bc847cfb0dea015d884f5761e9dfb9b2cfc2a8b40325a2aa92e5bd6515817",
-  "bf88302bd3e046b1ee74e0eb77a9d05a2a1d0ee7c3afc21d628f6ba4dc8ab1fa",
-  "db7d15af98806caa934e8d0afce8ebbd10dc6d1640c16e76852d1db3973e24f2",
-  "1d3fccf183db35d8fea5a4d75508debc70b53798efe5eef24b660505ca079022",
-  "291ebbffe52b6f25fdd62b431e541dcadd579abd5cd7be379c524dbe47232c47",
-  "cc386ed64c36ebb95cc207f52f61e0469060e06414cd9a50649aa541b553b190",
-  "eddcbd450394c5060827a9a731a0517dc6b255592332bce1fc9ae2f61bf3ce74",
-  "e9bad53743ef86fd7598b99e74314bfc8395e2bd0e6a338dd7cc01aed60f053a",
-  "53afade89b2baad6bd288c25aaefe631c151ca3b56bcb710b118784e65a1f1d1",
-  "9e6ed3f9258d1ed81c6f18b17d2e47033ced0dd58e6823b62b2f2d30ee90bc71",
-  "964af9a24f53e3bcfe779241591e2c385be3b579780c5cc0c490bc2ed9f06e12",
-  "080a4cf959e6395c02b198211143599d1b80e22a4708ca6dbb19d872304cc777",
-  "9c52d57da020389a30134a40ddbf13e716a1f84335380b528cd7b6d29fbb5d7f",
-  "69bb0ef73287f5eb7af8400f1cdc9bdaae6f5b2aafd72a0225c6dd85f43f3106",
-  "97699f3c6d9284e1ef22fa05ad1f6ab799f2ed1a1d0611de572c0e8623d674bd",
-  "e27d699f6692c5042051156f38466820108f058fce10a79e17cdafd8d0d6d000",
-  "a96a328d9e179da1fd76e4b13eec6395d59a1a93ba5c994f7e9a80661effa97a",
-  "034622ddf04a3b68cc088e1177ce6d1848ec02504b57bd716527e36eb07acf28",
-  "e75b059d2cedf8d9224b405a04ef7c020c268f61b89ee014a883b1440fa88185",
-  "ae9dff5ed72901d77b0269a51375cda0cdf480ac06aba412afcee29240b0ae58",
-  "a41ab15d234025d4a38e598a7ecca8265efe918cdf1e775cd5f6f6f52cb16d96",
-  "b698024d4ca9b4fb21ab3a7e6681c6d2610a0bf9ee5b21a1743248c669f4f9b8",
-  "312c210b4fbcb4499b3686f738211179959b2f3736ccc5924bd36dd63beae511",
-  "8073ed6b425f8b3ca720732ede4f556f28d9852182908c2c611bcb0f2935bdd5",
-  "f735d4e5763e85585bae920e4c71a044b8526746ddbce27b53fffd4ef780db4b",
-  "eb0407363ac0cd93a64119bda180e7bf6f63c648fdb109a890b5d2a7bc9afd9a",
-  "f9b8e57564807df84a1d2143003c7c31c1ecfb0fa02c0a88f9b13f45f06f30ca",
-  "452d41a3186132bcc2750d4dde554485ba03f73533091bc513d1e130b8116ee1",
-  "463cba3d090f62651ef12368bee0db5fba7b79b95fb51289e4ba9be86c19cb70",
-  "4db6c0eebe0421af666b1e7dceb09a24403ebe5594355c8e8b421e09daba6562",
-  "0d200c182251f5a9cafbc17c4bdacb3411651e4088dec905251ae93c89986006",
-  "cef71b70fe313e0c0b69927af0bddbb6bf186e55c89d470d5fd594257f0450f6",
-  "1d340da02e519a254e109592caae83d46aad5dd4338e034f0660693ea9e6914e",
-  "ae6c7aaef0933d7b19c9eafd50958c2b69024d2d1f44c8b3f03987343adbc9bf",
-  "5cd890b165ef0445d3b75055261be279f706e768c06e84609c209e30b0ae7db5",
-  "36bc895a0c800195e1c023cc5545da013534c50530a8e03a33e6c28b681fe7e0",
-  "23593bda8350a670efd7fcdab3145aa4bd7806d48bd4498766cfdfa2d5031946",
-  "d20b420e60b4a8f24784090b678356a755dd4f6fdd617192b5942585c5c14bf4",
-  "762482e3ad1b54ffdc4562b6e36ec978ccbf232a2eca3d35fb566db7ee6b8fff",
-  "d781679903ec64fb1e6f7a48415d819a523bb5effcf6f77429d75bc96f2fd428",
-  "371b0ba868f33aebcf194101bdfa0961c7ddd429060fa4b01720b34d76871dee",
-  "1fc42ea7f1eac4b1d7cece9cb881c80bc2735430ac3fd14c4fb282fa59c2bbcb",
-  "23ca891e5af07c3e5c47a168e79af48f32db9e030908f5a5e8f7e84012298e52",
-  "191331c6370ff999ef4732b6ac96181ad0cafca795ba36a5d9a0d2210fcdb848",
-  "fd3dd6717692faf16c4f99e70d330ebbea8aba24b90ad8eb4de580a38bfd9def",
-  "11f34a4a24476dde3922f4a23f10c376234c3d2eb8cf51121a6d06ab7da8c4f6",
-  "e5f7f603f81d849a967f5b7143e05f5a383ac8bea7db30184286d998cfb4cf7d",
-  "f8726d4cd7e4431aa2bae3840b3cb8d6498311aa3c56af9d3abbda72e3317236",
-  "fd3206bfec72099cf4e4c345b9ddd9df951bbde96979906b794b8440985bf8c8",
-  "dd3d8c6f4566b360fa705435fc4ea58af36e058fb3280b1ea7f1ba188e340913",
-  "5c9fc34bf3b7633130b5341dc0560406d0f4ab5110a8ab1417e4127d459157b5",
-  "97d466bcfbe849d59aafd99b78d28101c287ea9b6a59a1470ab98770b58ed908",
-  "8b20256edf901d5a8bc0f71f6898a6b1d0818edb2f561d3219752a709abaa318",
-  "4d26b341b31fa39f26772d557e6d1971849e0ecd945feba1bf4dcb2d3865e72d",
-  "b5f0c69568656661fbcd3bca40b22c6574a8c44ff79b74301860f7e6f0088fcc",
-  "e60667a0dfa1223f8376cb5787282259853bb1185d31e43bc6f58a9ef10fb7ae",
-  "98211323ed6d1e0fe3204f3ba8359b261aa32ce404b148a0503c64d45f623882",
-  "4c66a3906567dce680dbf51e69a4c42f6cc62e4a7adaec5129d87dbd3e201f16",
-  "96fce921032289e9e686d8f207c5b4e7273feadd17d02148810c33e07dc7d92b",
-  "687d6c1c8697bcf02b2f4b594882e5b54a1132a7af7eb497efd945c632ad6efd",
-  "6b034b4c953b7e0900da7170bbca5c72ebbb007959720860a69357ca495148fa",
-  "0661394815367d924f2474598a37f58e5e663bb8aef81eb4a38adc6af54a72aa",
-  "a1e5924ab091d3fb4996c3efc3c48b123a08998c55223a940e3fa0bbe1b1f4bf",
-  "7592f64b6003ffee0458c6c81bf991bae85e0cd9e6fb6e2dc65232c2cece1a5b",
-  "2ec798c3209c6cde322b5b08a73544e078286a8e5b7177019b72dcbe98d2a128",
-  "69b6f6ad947b500c3f8a81df8ba3555637c1f1faa08ca4e4a5644448df984dfe",
-  "0bfaffbefbae3482ef5c14f431f77f3e43945bc0efadbc0dd9dc4686c134894f",
-  "50528759ad1b7606368159d87e2451fbad03b29f2a9c4d3fa04054f6d1f78ed3",
-  "4c95123ac0e5b6d86b33ce74523855bcd60d8445a3e016719ce101d243ad2179",
-  "ad0da3762d87447c4798b13d795d0c7543fb98c93e1d990b121097ae576336bf",
-  "4c2d9dbc6c77dc52ca03826aaf44f42bb4c89bc3a53c5909ce6dc030503f283e",
-  "3f392297f93135c5b959555a854ab5d1b3c2b1df34a608f449c0df0dbd834501",
-  "acdf979faae02102a723e2b75c1c07cd70d404233aa680e5b8fe1a239b77cf2d",
-  "6ba56fcae960a0b100a55ebc9379fce033f0db845c3bd829d0694049637bb4fc",
-  "aeb71797e433c16ed303017030b2d85b786d6e10575413f99f91166f0ecd1b77",
-  "fc2b93cb585a26b8a7af66704bc18307565857b600a5d59f98126c3b865514cd",
-  "11fd28e591ab241bf1c45e8e227198f40656f8aee7eae6b907d09175ad13cb86",
-  "7ec97553fbaaedf2e3f69f632fa69fe92efaaf7975552812a307d70b29b79bb3",
-  "d2e8f8ee91baea792e7f1b5f34df1dce48dcc14fb9a59c3fdbde4c7b5e13732d",
-  "0d59575f887eb0c74457800380f9263a695736d0f18d7f91b42fcf927d2b362a",
-  "0c50d5432e8d0433627b4a47dc7ce5c26937436810571dbc64cc154d04cf6f45",
-  "dcba37138885120e3bf3b496e99d74b06353e7af18a0cfa58bcb08929875be97",
-  "f4199886a44103fab0e3ba0b4ff1e4cca0d3c315616723ebafd8527058028c84",
-  "2e1f39da729c303c62671092507a925b24807e9d7fc468de26504e78c9653a8f",
-  "83faf3105c5918fb42bf378dea589d8f5b05a339d08b74916120897d08831cf7",
-  "5281e940b3b4c3172222cad9a58aed7757a135d9ed9a6eec50ff299fcf11166a",
-  "2dedf9f483723249c67d8f06291c9ce9d78a0d7e6c41ab93484806e2fdd50feb",
-  "f09ffe7b9d6cd4e84034df44369f982b406335b4fd5d2ed2607e2444ce228126",
-  "a2b1cc52c7d4865989bf581f72ee0a13718f11c9866b0ad634619d00288ffdc7",
-  "8018fc8dde9d94a2f8f497294324c28499413176e997968b1c36bc4c052ec6c6",
-  "9e7d02ac92b307e8e913819afa1ad6d5f246a6f9cd262e75328129f5b377cfef",
-  "4e7a7755ca08e1060696f95a2c1817fb8941accc3e3a6ece93663800d9c93222",
-  "a963cd1281bcc6eaa6a3708b6fd5ef4817649808468eecb37e4963af6e0bf17f",
-  "f5872242d66515e0e3215b024fadf4b0bd5c2439832facae9d85c0845d8c1bd6",
-  "7c72d9947280f5c974ff04857caecab06a943ad08083d00c9615a1ed2a6dfc3d",
-  "a7e196224492ba61100aa988aef2afd8c8650eb4395b8e4d296f8d63b823e4a1",
-  "fdb39208befae935f52f0a407dc2d404134b9505c03445b5ec78c136f67e0be4",
-  "9883fb6a58410b2342aae6ee5704fc4e2df31fbbf166917d9b7f8481a1e20310",
-  "fcc4db1f9fb8db6e6c7d1805207fe948ebec80600d19c370ef832becbcf620b8",
-  "48e19f0d0374a3ffa1387a382ffd0f80aea351bd7ef36ca39e956f4270cc7380",
-  "1b361deacda4f13b475180d430d29d7ff7bd6a14946f345d8003aaef1daaef4f",
-  "f6afecb30908e6503be4a5bf7cbd9f2677a755280465d70d1b110b4051bec7df",
-  "e0ae1cf3d5da8a64db80f5db190aa68bcbb2eef64aae76a358d84aafe4c96d67",
-  "bb2b89b661220cffb40db59ec3a4b1a6141fffcd29fd92f886696d6fdd837ec5",
-  "6d0c8806b8b98ab4f5dfebc907b00cb7deee6e150ca070310590d1ee4af09ebe",
-  "e896bbc95976db0382e3703759e7528fd118de08956c22e7032b1cf201f6a78c",
-  "bd0deeb31191b969bdf988c56c63324a8e5df51cca62bb9c672b34bb045042b9",
-  "d4d3554845ec716f2ecbd7315d580f9dd4aa5a703f4131dc5e8797d96eb33670",
-  "bc13fbadcb9bbb5681e5a0fec473d91d5febe6e5022ea3b3bb22e771e272c812",
-  "17e99a70419b47ac1c0ee4ae3fa632bf240e9ece3e4cc233fec3dff1572eb8af",
-  "53c90416bc34853ef6786874bba70022d2ff26d0a5b4db38875ee0ebbfa442d8",
-  "79a3b9d810a6f2c6b3936ec9018649a440aeed752d364dfa60c25774191d5d02",
-  "b309c69df48c6ae089f454f7d1a52ca8b7232aa99d15a983404bd44a4aa58b82",
-  "11eb596eec467aeb5e7adfeeca5024a8383f8765903d4d1d9eac9f47f6452f65",
-  "48fbca32ec758a3b09ebd2a19e6d91ae56abbd7ab08d7b9998e0524c0ee2fa3b",
-  "1b94d1ad50f960cf766a0136bbea1852ed1c5f7458893b8ddfba569aa5adae55",
-  "d45b2b05b6fc10c8bdd035cc3de1a0991f74336361a2d2bd75525fbc38d5a264",
-  "4724061aea34d4a0658ce518402a57692a637d47d616ba3400ab4b2ad9300aa1",
-  "ddd593e46478b3bd78b24e250f6116058a0bf14880bde4df9e170bc1590855eb",
-  "73ff1bc2934407c30596837aabb49b0a8f0e4ba43d3efd05fd8ca5c26c848400",
-  "67006ba52228a00bb5af87f47b56e3dd6921fff684bf6cbfe8979eed86abaaea",
-  "43c8292483783635223c62e6ce1dee571bcdc120afe80db6d2e7a4903ff6762b",
-  "fc8f6c4fafc93026ab11fa3a13caac5a283f6e47aa3ab549fac4300c2148725b",
-  "11e642abde3e7a848fe4eb1128f8416b4fe9b936368a35a03a620b21a26277e0",
-  "57150b81d430b95c8afdb7b4bf88972eb4c7721d4985dcd46d901d489f6f2931",
-  "4bbd2923acead56a9c5da0c3d45f21e0805d8df5ff62ffea1224ffd6c1617f34",
-  "16ce526870ca6e57bdb0f73535a14f9bf3c80d2123a3daf48f70b443328e19aa",
-  "7bf173ebc2004f64efd0b3e02e112b18230282fabcb9205246d9c205d3452ba8",
-  "1a8f929c1ca86c87291597553f6a63d360fcf8399d8e92d4bd25fac41aea164b",
-  "226301a3b3640415a00bf108eb585aa2097120f1e93460ae2d628079b90dba85",
-  "afef2ffa5183b5172f77b87aaa90a9d45636607fdc8f6b94773385b5458adad7",
-  "d0984dc0b109befb5e5aa8e81962e9ccbafacc042e15c291678f79fc8716bb57",
-  "41a5f003e837b7f8ab91332f6c23835edfe0a4d1a5b3bce04ab20de79cbad530",
-  "bec456730562d093ce94cbbf4df2d02b8811c24abfd0158762d9a6c7f9438d2f",
-  "dd119654375e0c1bf2050a255dcef0124a5210ad907eaf8e77bad80d6c15f0cc",
-  "ff032200326dddc05b38ec9e9582022cfc8ee4b40c9a14decdad151299d0ec39",
-  "ad32c74cc38d21f216bd925d32437f06e4199b57607c085a857d34bd1709e8cf",
-  "51b3ff893918be7123d2943c609aa0866478e211aebf1995a67affa642196c96",
-  "dcce9726c037f8970712a0adadaa4c114600c233a9c4b73ce9e195243635a03b",
-  "f6c7ad90a203d6b9db0fa4c6de0e8471d5f95c8afde55b605d98f78c9b38f148",
-  "eafccb71ad4b0d71d4fe4f127eee5a2472c65bae8c3364390cd8e46bd60105d1",
-  "0b26f57422da7ff41de6ce42b8247284f0be7cedb31913bc4ac0156ac64ed888",
-  "ee22437da7b3bf96a1cd27feae60bb7d5f21de3deec7570cde3a7a4dfe7bdfdf",
-  "560603c2cda72da02e6ad36273386e75e8ef0400aa55ec4e70a6708fd7c50060",
-  "bb1aaa898a52d62f930bf0884aee0bcda2e20e12c9dae28c5e92e2386c646573",
-  "453d2330983395862986a5611cba09514a164947a9f9961a4ef79520c4923c53",
-  "7fd0e51db2c14941b6475ed8a4dc036ff1b4690bdc6c01b13174628b4dccff3c",
-  "f4ff13fb442de264deb84c2cbddc1eeeffe52d7dd04c7041e43c6bfca040a805",
-  "58371edd3b6c6025b9fb0003d3178ee27fe39dfcc45146d36c6549db86708fa1",
-  "f8feb953781760593f76e7b21e0fb58a4c2cd53557b4960a5391f35d99bcf875",
-  "1316d856cb302a2a0ae9aa77aee392c1d6b23f04413e8f6c7a24f6670220b51a",
-  "01285bb9a18ee89bf51872472bc14d000fd06f4526fdd606d2d1b1bc162e7dda",
-  "d197391eea2b138151ad322248042441e1cc5dda2130bf0b8c0a509fec652bf2",
-  "42789b8c2a376f503124fd6237f9ae1bcf03ec58abb80b5e8cb8ec245de66549",
-  "8b42aa7a96e5533f09d639dc2844d3c5075acdc0f811262dc75464efe854a452",
-  "c0cd1bf21ceaccc1324c0362e5936b62b5e36f2bdcf2c6f336e40ab5750659b6",
-  "7af5cff406ddd444f67fffee65693df0c339eb741f279b8f404d8404cb140962",
-  "2a15ef6fdbbd4f194acf27f6b2f8c3728bd61a219e3bbb9074bd91394c6d658e",
-  "416dc4524f6c9951a6ed15f8ddc353f6c62cd74c486676b76ae0dec664a11ca2",
-  "549e2dc5ca8431a7277235d7f3de68aa6ccfe1ab0aaaa891de7d97a3a8e77586",
-  "d558d336a6be373502a950c011f95611503dbdca56c40cf46b49ae56ac8ec5e4",
-  "02d89ad2984c52eddcfa64b6566d73de4b26efa52a6da6b4ab2484a5d3ea94c6",
-  "8ee150d66315a2980c9cf76b6d3e9d20e21c0232b3c641b65645e0fc6c393042",
-  "52cceb6684f617a5ef21c7748118ff20c18101bee68b49fcf90a5a9c4af9f41d",
-  "2cec7644b1ba5596499e6d80d3fececb256ded8b176fd7439fb2709bfeba3d9c",
-  "3e94f4a1e63c499acb2c7b6d6a17130a600a5a5c1fb04d9e2211c92e95bf371d",
-  "c83e8eb7bef16e45c7e83ff6184cb8315b48a3f0276259d080d2c80271e82e04",
-  "11c6168f6a215f4070dc4624f20f68eb4707adc0cfd67a8034b2282accb34956",
-  "d0b6d0dd60397a832f5f532920e013aaee79a33d13abdb34da37762f1ff95e60",
-  "8241162e5e833dab1dcad9d1a231ea20ed94266aab5d3b7a22db39b5aab0cb1b",
-  "481e1604d2e5dfcf0d9943ae21d6efab804755197bff9f24eee982b0f9089288",
-  "8fc2e8c5395b04ea8735f6783f1f8a70b7673b334b7e48363432ad6d88e4b6a7",
-  "cf7b4570ac320b344f4f70f31f530c2312db5b7241651d361a91f7986db3922a",
-  "a43f03466ff5a0a1f00becf2d0139cd3e26a55219fb236c8213249e879754707",
-  "abcd660b88d14c1c1601492321379521c1e4274d661113338c8a5b98d6c12d98",
-  "ed45a64a4e0042ea4a69d15923474ef1847d68c0d96c99dc6f02f60d17da11e1",
-  "5f1b73d5b3d7592b2d0ea7be0181ae20d09d6051782c35c8537a597818b5a830",
-  "122e01e18a1af0326d413951762c57a570af6607343c394294ae8809d51fc269",
-  "0366e11674609c76ac98ef283275808cbb4d5e72de3a5444c2b8881a2a3cd689",
-  "b6350edd1ddb16936d264416ee78f60d7523bf7b0065a9a5dfb65fdc84ee73f1",
-  "0f796ba5285867fb7b6a87ff3d8dbdfbc434d109c22c62e80a39df767d2afc2c",
-  "6749c47ac2c948985279fcc70a15b8a9b2b0f09514c6a764306f6269bc1f883e",
-  "58dabe76ff82e4419fec4ef2126c9dcd4726a91c3b525f98c9b2c32aab6e55c5",
-  "0af5764851a0ef9c9a4810a62ab1197543fa871eb95a9915d3620f5c4ad04fd9",
-  "f0f1db70d3a8d51083490b684bcc0f49adb27898b8f58698a2b22545b183d689",
-  "f7deb7f17371944add7cedb61914362119cf3b88095669a20968d822e9135db3",
-  "b3a239f532e332a6f99d654a0a9d84cf9299b07cc568d564062711b0c8435798",
-  "daa0c0aea85fa595058868e49c74b0bf16a4ba7e735905bb196ff68ab72b1f24",
-  "890fe87843f7f3428c26e8dd48df0727c064ddcd94cab3e29c2b9fe1175b3287",
-  "83e011a4564b4d002e438eabb9ec9db098e0fb9910827cf20142bf3f87238656",
-  "05b1f7ca3e6f495d6e2df58bd88a8976b885d8565edccc7a039a5dd8e858e99c",
-  "109ebbf35461586574a481391d366bd0bec1ae2374203fdc63a05f0d9d307ef2",
-  "93802f4756f3d767f85b4aacbf00690b28214178f7b83baa12d28fd82932072d",
-  "e6bac71a49d8ce7800e817dadba4ea5fd93033524b84fadab60c5173ab786798",
-  "eb724a6d2f62be30c6e2e14a8e158783fc7a1765e7102eebf2139a049b90f2d7",
-  "bab721cc2c3d255dc614e06ca43f2c06d676c68c96dbe2dca46ec7197276882d",
-  "3f32c35cd63c7bcc57a43217aab969a45f773a75d7616e3271ab1487efab5625",
-  "a490988bb903135e4b3545ea9600b42d788ca207d7aa976f0e925b221c729034",
-  "d8430a25e86804ad1e6f88fd687d5fe8b64b33f92fe33434582ee23f2eb03a46",
-  "4bef75794d8e5cb766fab64d24072190fc40d46acef80959657243294be20d53",
-  "ebd0e52a0f256623d96b2fc86c59c482cd27bb21f7b33126ff6454ba6873cbb8",
-  "850ab02f93b7e1834ed8a168f8ff1ae1c2c9d49b4b2ba0bf4a410636fbe6f256",
-  "a46ff45937e5f0c485c88631147283987321c85d4a447015bdb4c7921a6e927b",
-  "49524de7dd368d1c07ffec9475b3bce3732e25363c08abf87c1577aae9a03738",
-  "6c8b7f7e40a17eb87f1874b7c50225d8544a01cc2cf0ed8c30c3dcf2ca6ff3ef",
-  "1c67efcbe5fe1285d005e7259feac1c5cb1c5d05d098da076ae38aa726dd6075",
-  "75798ff9253562ecba3e7e42a43c6fd74a3c4330ea178daafa0532305e8356f1",
-  "5cd446b3e849b2bab718cb72c1015d77dc961f333508cbad83ce97d464496d3e",
-  "aa5f91ca91dcda75d7167e1585e0211eb3b78e6be0cf50209ab6747b4a24c053",
-  "20f75721c00bf75f0209598fcdb7248265baf5ae266f1bf608457a093240093c",
-  "e6df480d88d5ff17b9857c19236db2406c155a8c98b6b574791dc5cb8dd5a210",
-  "366d3e83216a9d9258610cbefc18fd110f5986d3f4f844593cb6f864a45897d2",
-  "f5836cf89c9343d70eacd5538c1c341a1028d399c5c8cc1d327d2f29f4866c18",
-  "11b1e0b5756a41cc030cbfe37830fcb16b9220dc671258f79812e343a8234403",
-  "3c93f300046831f9e71cbfd6087c8f26a64fc13f9e93ab1c799636da82cab6bf",
-  "11416f2a0275bbb98dad50edf10deea3146e48ce0803b80d1590809a9801f5d2",
-  "3b7674c2580ce76d1309f9b2688ab50a07edf1c6c681a859efc3fd9b475615af",
-  "082d9922234ce1f49c52f5a7799281fae289784af65feceb48328c1cfd3a843a",
-  "9463680ddc0ca0d1f5a8184be4516fb7e590f94c9ae106be7ab14a8176a21017",
-  "ca95f5f0dee52414dc58f70d9f85d9fca0bcca59806213d56cc53226f83a634b",
-  "6b5402d5c8bb94a5f9f27ca17dd93be940ceb0c952faf67687a2384d215e0d1b",
-  "88e2faeb3014446cedb72c76096015e420215c5131f6e64f22406f906e6a26a5",
-  "237dc0c310db83b58eec2debfa66da64279a951e3773fa7b35b5599f8639f929",
-  "e934fa692a4750873f3188c912fc2a289798c6c6948b0ab1f55b37461af7336f",
-  "407a0bf295f3bfcf6bd6e19e726f83d24ca36d3d5b4b65c40ce0f9cb0bdec3d7",
-  "5728ccd9e738956f37be20d3efbda7acf06ea0e71d8ac76e788ba5cb9977c693",
-  "44b4ff3742eb0257374e8483ec971f759dcc2da7ef6d0cde3286c7435c0cb2cf",
-  "49fe91caf503a5ada99277a7684363824386c5f80425f342590600aa4316eaf6",
-  "860ebb95a2e5cc9c84b56d268a2c9728f2b9fb3be22e53bb4bfe514628afa349",
-  "7fee47220303f74fdc615b0685d02de532ae4d0b23bf0b2413956b87e4ea2eb7",
-  "d317a360e5d99e54db70ce595766ca96e8becfb72f9561ca947217326a12eb25",
-  "62ac20c15e37606c4587b8cf3b81e70da8335c88aab2fd10b93a8196585a5627",
-  "737713e56fe50b17f2dd767d55d6ff2cee08ea2732f1df61cda96ba9781871e7",
-  "77e7da98ee00daf11409c8579ec5c798df7e4dbd17514659ebc452448e4d31a1",
-  "d4aa41c8434e57b47edf32f6cf6ed1bed6c383e898df44d84558837a0178af8b",
-  "c0f47efe6d21c7212fa5958bb0b5521fd47d3379ebd1601458ab8c9063cdac2d",
-  "11417eda347fc40c678121bf0067eb4677a84f442fac0f3ada2412a69794c521",
-  "0489b6d16001734c0ca98a10ef930a5f47cb40612f228fe814295e881b88b8e7",
-  "b769a9e4a3b0c80bba876e96ac0eeb9194cb23669cfe964d087f33f4366d4bdd",
-  "bb953b1cac030999ed458b941f6fec8bc8d7f5822fc28525c606e01d389f5981",
-  "721907f828f383c11bb6d956d64db4a8eaad21ac20d2c31fc52f08d756be446b",
-  "2f3341f4fb0e6fbb1743a4bb56eee68840c2ff9400511407fba0be8e6a077c7b",
-  "99946eac6d721d1b7598e1885eb0a089df1aa5e23b4b4224ebb8706a840f4984",
-  "173bf46dfba43b6aa17a6b2a2641abf34e67f9c847ac277f7bf678dedc62650a",
-  "5407f672c42a12647eaa40f68782a86df8b53cb4e085f2a9be284edf3162eb16",
-  "a8d3ec62456cadfd4d10613541281066dcf9ead5dabaf16ae73b7e962869647d",
-  "8338507f71c2c87975460cb1fbbd22c492e33d287f473ed1c93610b296dcb46d",
-  "9ebb25d5be85548d8492cbb42c2ff76ea861752a98f5abe0f6cfed3c5ebf02f4",
-  "117bd4fa0ce4364edf02323d529462b874424c89f4aa5493126c981ce4da505a",
-  "224deef8c7b036a043556684cbcd6db7f967ee98038af89f486c7edf2be8ab17",
-  "b4a8f5d1714a64a98f6dff9caf1410d0a0f9787346e9571695a9d515a4867b90",
-  "bbbc6a422e1e585a4a3632b24b89924def2ad27c1b0d388e0b12912a3504a8cd",
-  "90c2e73427e6f95dbc70b01a0775526b4f24a2fea197e3525e92be2b3579efc9",
-  "8863e23ada8255282ebccacb91bdf7e74728a9e1ac4a27afb5129e4a621f897e",
-  "3a012663ec9a810fb889cc987959851a24b8101cb04f9160ff8a907959bbd89f",
-  "190d9e4fa057fbc8fb8e631d7fa13192c24fbe7ed2b0879ccdea039845f0c422",
-  "f237afadf0a1a14443bcc64342b44bc4da190d96931e06e00923bef26c5eea7a",
-  "3a717e28e6d39aac854457a415caf57819ec8be62b44e4e584c320c53b63213b",
-  "de689a9710357a02100f73426a45750cbfb8a693faf88eeb7bad833a4b38018c",
-  "266c46691006cd155d9365b05c4825807fa432c94e1f6cc2cf09447a519203e1",
-  "e1c45901ececb6d364f8ef359e965182519720439ab244e99052b578676d355a",
-  "8143cb05f9d767c2d85e486a881d71212be2a78ad4e75d60c25b044d30d8a579",
-  "aed76b12dea0af678de09cbc4d42b10215ba20904d891d117c98df85ba5aa65a",
-  "3085e3add4f29a4f7cfe59680d8ef45a9fbcb254f22caa81b679d19a9fb250ef",
-  "cea73d737b507818829539c021ef99b73533f747a7cb8b8d6ace43a0258f0bae",
-  "0dc06e684b19449de249e4e5c32ea0229d80e609c9322609b0426348b777ea59",
-  "f606ac7b059ba616ec1e952227f31cf0a83dcb66613c012cdea2a3776961f0ef",
-  "920d2b689387f7a1b9d44d68983e76bcbabc503654adfc124ec19e1b0ce0d331",
-  "d398712051b7e7b8500ecbd030d2c6a0012b8eaeeabbcc0d6f1e03f4acf709b3",
-  "31387fb82f616355a09e46573eab1233858d4abc04a13be2c2c29b14f280c028",
-  "bde30f4e8aa3ebb0e8f75158be727463e25d2b3f02db5cf3342581ce7279c118",
-  "0693a0749326b6821eaf3411f456499f64b1bae54e01d3f7c2e42d9c09085326",
-  "bb8b0d496b610c2d51967d12821cf86d796b7cd7ad2cbd5c0f165b232f281464",
-  "969ca1ae931b34deb8346ac95d6853a362760c19bab84322c573e124974b88cf",
-  "e48f0b0d2577542ad3465bf6c063435390470388a27d938b113c74cf1d962c86",
-  "bbadb4df56fe6809a7aa4be1b3f7f9cb49da17a41c418e39102848f2d8d07a6d",
-  "4f2971a0b18808649f978cc94de8b8f70fa5cf3ec0bad1a92499b68660c1fd2f",
-  "ebbf2c1fcfb6e4873e0040663601563e3531f8f2ff6032e0a3ac06cd520bd680",
-  "809bb26aee29f93ab4484694506fae71d307ac45239a431f3f51285aba0dbd3a",
-  "05f462cfa6fb45a297ffb6f12ed1da576addd66d9c45f6bf30a854a957f5e803",
-  "fdae0231c4a1fc14b21ba2f1c27548d4c259544e80b94696da838ad6186b2ea2",
-  "430d27998d51e0774e3af2e0b10b29f222da571cf8f54b061c5c83d0d9f48cfa",
-  "9f4ba15b559b66c1023163a2cbbc0cf936c35a51b8f04f3625445ca0569ef9e4",
-  "ac81371e0b632eac1729561d6c10c6cc52734bf783d82f25ceea07fdec466bc8",
-  "33f8367b7499ad7792e8e812caa0b08f2c564a2312e245d3aa426cbfa50da001",
-  "0d35e71fd9cf17898fdae4aa5ff983e78d75a4724fe5c6cd09c2eaa05849e060",
-  "d1840f16e5bc6e7e20eff239faa70d448396d5a7fa8ed70da83ba36c4804d590",
-  "57518bd911f3719b7e02ba13841b3de511e177e6fb7faa3f0405bc667e3fdfec",
-  "7b74044249093231cccb78b7a4cc8dd33f2297bdd3da373651ccedc453fce6d9",
-  "524acbaebdb87fcd9dfeb1fb8edb90cc13db67b57f307bcf4d6c61890eb1c235",
-  "a6fcae9de27cbc2c2afbf517a09b240375d37712d0a0de733d553fe23ee72357",
-  "d7cfc429dab6d6d2572780fee203ebbe04fdf527c9d49ef267fa6065238b555d",
-  "89393dc9a345ea4dd7abe3e2d2eaa99cef622b37581649b70e4523ce8229d13c",
-  "8b507ed7dbd773594c651ab1c2496684b30d3e0b291acf528c7bd55bf960bca5",
-  "dc6f67dbcd5bbc132c6a4b47f1f2796e505e05509cbf5753949bb488e3f99c01",
-  "b062fcbc7e07be3fa9ec6a17716194de9cdb9aa6fa04fce19d96ab3e064406e6",
-  "4ce4ffe4585e9d3fe906b66807ef3c4bb06c8a04e8e17dde16e40f873ab8a219",
-  "55e5cd64d1cf96ce1243496b194fb283e457a0630e5a31e13b8bca2f47949956",
-  "6ab33d45513b7013624e01e15f616a3436caa8813c863a13eb85e06a973f9520",
-  "0635239c7d231ead46108e2b4a1951ba31c1844232c5d819b6065704c0af8279",
-  "4b265c9f76496407bdd1bd16b7f6ea3e97f3346e63d5e05f9896b1821e3dbe38",
-  "eb8a6dc35daa3c5592a646b74e2e1267b1570dcf1b61c3e297a09a6aac7552d5",
-  "2a8849e3e27e05c8572140297d86473e720d62e6c7ef1766e4aff8313c688b6b",
-  "d836c66dabd6fc193bfba98a061a1eb58458ff129f912f07a3dbf3244dd8ae2c",
-  "91667b20ccfc055f0d7917eff1c713f3712d948055a3139e6d758a308322503f",
-  "790c22f5700d052ad149bb0d96788ab3b3b49d2ef2b6268f54095b96174f9790",
-  "4f28977329a2153bd6a8c1d47e8877a4abfcef83cdff4daa74845384d8bdcac0",
-  "7d695518fbbc0ecb1678e8114673eea6a58b4ee60787839e96644124cfb77c82",
-  "50bddc4bfa7cdc185d3b2528559936510bfe814ae162eaddf609992f6796654a",
-  "032bfcac588034362fea4cca94113b039bae0d07660b364fdf2e7ef293bbaaeb",
-  "59a66323292142ca499c44cb95bc308c10d44aa534066efb413fbd7e622fb2a2",
-  "de0a390bb1f5fea9c385020193ae349ac43726f15f7a733e001e6c6b9911efff",
-  "366b20439156728d7753c598106508878bbf4467d9c7812ea686683580365a50",
-  "d61b4b5e3d4e9274757e0d1e3552ff89ae9bbfaad1b47fc54e3ffb405a99f3ab",
-  "12a608f8188541bd9076e9055e03f3dea310bf993e1380df8dcfaf8c4ad00e07",
-  "a8c9597cf77938624cb46e6410bef52434d13df92f6aee949839efb108bdb7fc",
-  "f2ffa791060273fa3bdf46fc7ee7af85a4345e08c53b3f0a6d6def54a00f815d",
-  "e8b992e6ce4ea00f275248476273b953884ef681fb12387331f5ccfecc010cac",
-  "37c42239bded5c0489c1cb0bbf793150d914760d8c07c9cf31fab19d6a123c98",
-  "f7e2c2d88fd369b85129c19cb7ad8f86266b984ab264417faa2fa571f6bf834d",
-  "a12f07c1217f06abd9535677358a8a1cfd8b648caa005f1083704ce3f8b59b41",
-  "ddb59ef90fb4704202ec8efead569dfaba1350f9a473f4d2765c8a9d4a6affff",
-  "cb02e3bf567c51e7d0703d633d2be0ff613152d76412f55be2f0d07743a2c8cb",
-  "961e3c187762743b1b4ffdbb7a6c939133896bf151dbcfa4e5fb80f9f03a669e",
-  "01a2bb324feedff52ed4c1275b6a404f4fb37b8edda7066336ab2c059b4f8e82",
-  "6f7e54d38ea699d88cff8c2240b35a4d3c9d313ecccb481e79a69373ec605e50",
-  "0ea67e93e3dc8362b35af1b4d1698aa0125bc8282e690e3e5e9c9bfa18012063",
-  "169a63cfdb573a852338db6a499cb4da8c777971f8edb4503acbce227dfef7a3",
-  "be9a756db4457db34a6430c729fbc754c9d026c3c68ea3ea555839f6e4b3cf63",
-  "c2d516fef1dad9bd45b1c50243fbaf0dd5c4d6b9d213d14c54a537594ed258dc",
-  "be602a38ee80b9aaa37e751a32f5242852598bc1879bcb66d784e17f91f4dc12",
-  "2c0155e25b280a47814a0daed1bfd272ee491bf4c534c2f6e34a44a6dfdf12b0",
-  "b15974c5ef8df9fcfb878cfe34abb6abe952edcb924cb4c3ef75f1140a79ca08",
-  "3a6ec81ecb7a615ccc30228f6e525b7eeb21290fbb72813dced8bd461dafe049",
-  "4c75a2aabcaa8b58fd8440047e81f82d0f07a682c304b18fab7b9f176c6140f7",
-  "d71243ad41222f01b6850410e8588edb619c2d8ad6afd60acd62ca5e019ec2b6",
-  "2f396f59cf8770deef599ad14e40880ec073744e59cba04a8c083931b4ce8971",
-  "148e1ffee07ccf4bbe9917c146b7b4c7ba367e908c2dd0c1b97de89ffe87fb58",
-  "87a66038e3b1788757ee7c79a1621beafd2a5164b1156e824c314f3699268f9f",
-  "fed1d77409d4f244ae85ec0d40d13bf422e877afcf2bd05d2fdc84d88a1a8999",
-  "c78351f9000801242357aec46f9b66504175cbdce4518043f585ed00fad1ab91",
-  "9ae2d14e10bd8af465a583756a589d95a17b2c488257d0c8c2184d4cba4e9d6a",
-  "b0a3f0eb756f7753f3f151bd2275a5e3ab2f76639ba42bb3ef12fbcbc7a61830",
-  "eb2cd0d41e3abb301f750ed5b78663ca1481af483a25a834c3aaeaded3242bbb",
-  "c5634df3121a2bc17793c2907e9627add882a914dedfef3ca0e4c0270a8762de",
-  "ffe0274ff1365910cb029ac53272047e530b29694da9b786d7ef3742a826c035",
-  "0000000000000000000000000000000000000000000000000000000000000000",
-  "3b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29",
-};
-//static size_t nb_ed_25519_pk_vectors=514;
-//static const char *ed_25519_check_vectors[]={
-//};
-static size_t nb_ed_25519_check_vectors=0;
-static const char *x25519_vectors[]={
-  "e4e4c4054fe35a75d9c0f679ad8770d8227e68e4c1e68ce67ee88e6be251a207",
-  "6531e5010ab797ec0dc3c7038a94cbfcbb8ff1d1aad061b802b3c3232a42b352",
-  "600e94ef1d60878dd40c330704b7648bdd32901bbfdbdef0e59e600229384642",
-  "48b3753cff3a6d990163e6b60da1e4e5d6a2df78c16c96a52d4fb01ea4ecf70e",
-  "e5410cf8d4524fe8b010158cf7c541420e996b6b1378d4ed88deaaee29263b12",
-  "600e94ef1d60878dd40c330704b7648bdd32901bbfdbdef0e59e600229384642",
-  "81ac001b08d6577bd91ce991c4c45c46bc84d5465fc9139bf17042ae7313181f",
-  "5ecdfb70882e4436211fce2ba0bc692577ce0192e28570bb9142d941d0f46a1b",
-  "c4ff19938f4c26e71b38c32ff1ab8765298cfc1dd6e9ddc2aed6db115a138862",
-  "7afb217bd1eceeac1e133aaa9edb441fa88ea3ae0eaa06cb9911b6d218570f92",
-  "3330782567c7b3dcd9c952dce1077e47864ede3dbdacc4d61ed2b382fd992577",
-  "c4ff19938f4c26e71b38c32ff1ab8765298cfc1dd6e9ddc2aed6db115a138862",
-  "4a70a7e992b43e0b18578e892e954c40a51abdb5a85d300c32f391c45d6ef4db",
-  "c39d634523dcacd6e054c3ee16a8a0bb52fafeb13eacb395784b1de4087ab964",
-  "8778d5677aab0ff0f72e3f42a8d5cd6861e052a5e8f42ff8539b9d60ea66fd54",
-  "043ddcf4214f24ea6ef6b181071f299aa254a4606ab6a058e0c6fb5598218db7",
-  "8760965fd7d80f5dfdda223b34c430d6da89370f221b75ce97165110028aa372",
-  "8778d5677aab0ff0f72e3f42a8d5cd6861e052a5e8f42ff8539b9d60ea66fd54",
+static const char *ed_25519_check_vectors[]={
+  "7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa",
+  "202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60",
+  "7bdc3f9919a05f1d5db4a3ada896094f6871c1f37afc75db82ec3147d84d6f237b7e5ecc26b59cfea0c7eaf1052dc427b0f724615be9c3d3e01356c65b9b5109",
+  "00",
+  "7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa",
+  "ffffffffffffffffffffffffffffffff",
+  "5dbd7360e55aa38e855d6ad48c34bd35b7871628508906861a7c4776765ed7d1e13d910faabd689ec8618b78295c8ab8f0e19c8b4b43eb8685778499e943ae04",
+  "00",
+  "7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa",
+  "3f",
+  "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+  "ff",
 };
-static size_t nb_x25519_vectors=18;
+static size_t nb_ed_25519_check_vectors=12;
 static const char *x25519_pk_vectors[]={
   "e4e4c4054fe35a75d9c0f679ad8770d8227e68e4c1e68ce67ee88e6be251a207",
   "e5410cf8d4524fe8b010158cf7c541420e996b6b1378d4ed88deaaee29263b12",
   "0000000000000000000000000000000000000000000000000000000000000000",
   "2fe57da347cd62431528daac5fbb290730fff684afc4cfc2ed90995f58cb3b74",
 };
-//static size_t nb_x25519_pk_vectors=4;
-//static const char *key_exchange_vectors[]={
-//};
-static size_t nb_key_exchange_vectors=0;
+static size_t nb_x25519_pk_vectors=4;
+static const char *key_exchange_vectors[]={
+  "a546e36bf0527c9d3b16154b82465edd62144c0ac1fc5a18506a2244ba449ac4",
+  "e6db6867583030db3594c1a424b15f7c726624ec26b3353b10a903a6d0ab1c4c",
+  "c7328db7e9756741bf3eb4f082c5bc57c58c77a5be31df0a02340cf235f81828",
+  "4b66e9d4d1b4673c5ad22691957d6af5c11b6421e0ea01d42ca4169e7918ba0d",
+  "e5210f12786811d3f4b7959d0538ae2c31dbe7106fc03c3efc4cd549c715a493",
+  "85041b68835411fbec93a848d3f97816c28b4a778f8e4793bb6b68b8573cbe2d",
+  "77076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c2a",
+  "de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4f",
+  "8e47ca376bdc7e59d2ced8107ceb2c27f4a80e8575f996baffb1a869ffcd5179",
+  "5dab087e624a8a4b79e17f8b83800ee66f3bb1292618b6fd1c2f8b27ff88e0eb",
+  "8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a",
+  "8e47ca376bdc7e59d2ced8107ceb2c27f4a80e8575f996baffb1a869ffcd5179",
+  "0900000000000000000000000000000000000000000000000000000000000000",
+  "0900000000000000000000000000000000000000000000000000000000000000",
+  "a60c2a7a4be7a39b1208f7cb7305c0caa711174f425d932b86b201896251f452",
+};
+static size_t nb_key_exchange_vectors=15;
 static const char *elligator_inv_vectors[]={
   "2920d46f2f37b04d00ff73df4115fda3876810c2144e94a7e6d0c09290ff7359",
   "d5",
index f3a9819074a90d8f95b90b5f7b225484350b7d09..bb5fb0abc4f1863e11603de535f283fd2c066a1c 100644 (file)
@@ -54,6 +54,8 @@
 #include "utils.h"
 #include "tis-ci-vectors.h"
 #include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 
 #define ARRAY(name, size)                               \
     u8 name[size];                                      \
@@ -112,206 +114,301 @@ static void xchacha20(vector_reader *reader)
     }
 }
 
-void p1305(void) {
-    ARRAY(mac, 16);
-    ARRAY(key, 32);
-    ARRAY(in,  64);
-    for(size_t i = 0; i < 64; i++)
-        crypto_poly1305(mac, in, i, key);
-}
-
-void blake2b(void) {
-    ARRAY(hash, 64);
-    ARRAY(key,  64);
-    ARRAY(in,   64);
-
-    for(size_t h = 1; h < 64; h += 8)
-        for(size_t k = 0; k < 64; k += 8)
-            for(size_t i = 0; i < 64; i += 8)
-                crypto_blake2b_general(hash, h, key, k, in, i);
-}
-
-void verify(void) {
-    ARRAY(a, 64);
-    ARRAY(b, 64);
-    crypto_verify16(a, b);
-    crypto_verify32(a, b);
-    crypto_verify64(a, b);
-}
-
-void wipe(void) {
-    ARRAY(a, 64);
-    for(size_t i = 0; i < 64; i++)
-        crypto_wipe(a, i);
-}
-
-void lock_unlock(void) {
-    ARRAY(mac,   16);
-    ARRAY(enc,   64);
-    ARRAY(txt,   64);
-    ARRAY(key,   33);
-    ARRAY(nonce, 25);
-    for(size_t i = 0; i < 64; i++) {
-        crypto_lock  (mac, enc, key, nonce, txt, i);
-        crypto_unlock(txt, key, nonce, mac, enc, i);
-    }
-}
-
-void argon(void) {
-    ARRAY(hash, 16);
-    ARRAY(wrk,  16384); // 16 * 1024
-    ARRAY(pwd,  16);
-    ARRAY(key,  16);
-    ARRAY(slt,  16);
-    ARRAY(ad,   16);
-    crypto_argon2i_general(hash, 16, wrk, 16, 3, pwd, 16, slt, 16, key, 16, ad, 16);
+static void poly1305(vector_reader *reader)
+{
+    vector key = next_input(reader);
+    vector msg = next_input(reader);
+    vector out = next_output(reader);
+    crypto_poly1305(out.buf, msg.buf, msg.size, key.buf);
 }
 
-void key_exchange(void) {
-    ARRAY(shd, 32);
-    ARRAY(key, 32);
-    // crypto_key_exchange_public_key is crypto_x25519_public_key
-    crypto_key_exchange(shd, key, key);
+static void aead_ietf(vector_reader *reader)
+{
+    vector key   = next_input(reader);
+    vector nonce = next_input(reader);
+    vector ad    = next_input(reader);
+    vector text  = next_input(reader);
+    vector out   = next_output(reader);
+    crypto_lock_aead(out.buf, out.buf + 16, key.buf, nonce.buf,
+                     ad.buf, ad.size, text.buf, text.size);
 }
 
-void sign_check(void) {
-    ARRAY(hash, 64);
-    ARRAY(key,  32);
-    ARRAY(pub,  32);
-    ARRAY(in,   32);
-    crypto_sign_public_key(pub, key);
-    crypto_sign(hash, key, pub, in, 32);
-    crypto_check(hash, pub, in, 32);
+static void blake2b(vector_reader *reader)
+{
+    vector msg = next_input(reader);
+    vector key = next_input(reader);
+    vector out = next_output(reader);
+    crypto_blake2b_general(out.buf, out.size,
+                           key.buf, key.size,
+                           msg.buf, msg.size);
 }
 
-void from_eddsa(void) {
-    ARRAY(shr, 32);
-    ARRAY(key, 32);
-    ARRAY(pub, 32);
-    crypto_from_eddsa_private(shr, key);
-    crypto_sign_public_key(pub, key);
-    crypto_from_eddsa_public(shr, pub);
+static void sha512(vector_reader *reader)
+{
+    vector in  = next_input(reader);
+    vector out = next_output(reader);
+    crypto_sha512(out.buf, in.buf, in.size);
 }
 
-void hidden(void) {
-    ARRAY(key, 32);
-    ARRAY(pub, 32);
-    ARRAY(hdn, 32);
-    crypto_x25519_public_key(pub, key);
-    crypto_curve_to_hidden(hdn, pub, 77);
-    crypto_hidden_to_curve(pub, hdn);
-    crypto_hidden_key_pair(hdn, key, pub);
+static void hmac_sha512(vector_reader *reader)
+{
+    vector key = next_input(reader);
+    vector msg = next_input(reader);
+    vector out = next_output(reader);
+    crypto_hmac_sha512(out.buf, key.buf, key.size, msg.buf, msg.size);
 }
 
-void hchacha(void) {
-    ARRAY(out, 32);
-    ARRAY(key, 32);
-    ARRAY(in,  16);
-    crypto_hchacha20(out, key, in);
+static void argon2i(vector_reader *reader)
+{
+    u64    nb_blocks     = load64_le(next_input(reader).buf);
+    u64    nb_iterations = load64_le(next_input(reader).buf);
+    vector password      = next_input(reader);
+    vector salt          = next_input(reader);
+    vector key           = next_input(reader);
+    vector ad            = next_input(reader);
+    vector out           = next_output(reader);
+    void  *work_area     = alloc(nb_blocks * 1024);
+    crypto_argon2i_general(out.buf, (u32)out.size,
+                           work_area, (u32)nb_blocks, (u32)nb_iterations,
+                           password.buf, (u32)password.size,
+                           salt    .buf, (u32)salt    .size,
+                           key     .buf, (u32)key     .size,
+                           ad      .buf, (u32)ad      .size);
+    free(work_area);
 }
 
-void chacha(void) {
-    ARRAY(out,   64);
-    ARRAY(in,    64);
-    ARRAY(key,   32);
-    ARRAY(nonce, 8);
-    for(size_t i = 0; i < 64; i++)
-        crypto_chacha20(out, in, i, key, nonce);
+static void key_exchange(vector_reader *reader)
+{
+    vector secret_key = next_input(reader);
+    vector public_key = next_input(reader);
+    vector out        = next_output(reader);
+    crypto_key_exchange(out.buf, secret_key.buf, public_key.buf);
 }
 
-void xchacha(void) {
-    ARRAY(out,   64);
-    ARRAY(in,    64);
-    ARRAY(key,   32);
-    ARRAY(nonce, 24);
-    for(size_t i = 0; i < 64; i++)
-        crypto_xchacha20(out, in, i, key, nonce);
+static void edDSA(vector_reader *reader)
+{
+    vector secret_k = next_input(reader);
+    vector public_k = next_input(reader);
+    vector msg      = next_input(reader);
+    vector out      = next_output(reader);
+    u8     out2[64];
+
+    // Sign with cached public key, then by reconstructing the key
+    crypto_sign(out.buf, secret_k.buf, public_k.buf, msg.buf, msg.size);
+    crypto_sign(out2   , secret_k.buf, 0           , msg.buf, msg.size);
+    // Compare signatures (must be the same)
+    if (memcmp(out.buf, out2, out.size)) {
+        printf("FAILURE: reconstructing public key"
+               " yields different signature\n");
+        exit(1);
+    }
 }
 
-void ietf_chacha(void) {
-    ARRAY(out,   64);
-    ARRAY(in,    64);
-    ARRAY(key,   32);
-    ARRAY(nonce, 12);
-    for(size_t i = 0; i < 64; i++)
-        crypto_ietf_chacha20(out, in, i, key, nonce);
+static void ed_25519(vector_reader *reader)
+{
+    vector secret_k = next_input(reader);
+    vector public_k = next_input(reader);
+    vector msg      = next_input(reader);
+    vector out      = next_output(reader);
+    u8     out2[64];
+
+    // Sign with cached public key, then by reconstructing the key
+    crypto_ed25519_sign(out.buf, secret_k.buf, public_k.buf, msg.buf, msg.size);
+    crypto_ed25519_sign(out2   , secret_k.buf, 0           , msg.buf, msg.size);
+    // Compare signatures (must be the same)
+    if (memcmp(out.buf, out2, out.size)) {
+        printf("FAILURE: reconstructing public key"
+               " yields different signature\n");
+        exit(1);
+    }
 }
 
-void chacha_ctr(void) {
-    ARRAY(out,   64);
-    ARRAY(in,    64);
-    ARRAY(key,   32);
-    ARRAY(nonce, 8);
-    for(size_t i = 0; i < 64; i++)
-        crypto_chacha20_ctr(out, in, i, key, nonce, 777);
+static void ed_25519_check(vector_reader *reader)
+{
+    vector public_k = next_input(reader);
+    vector msg      = next_input(reader);
+    vector sig      = next_input(reader);
+    vector out      = next_output(reader);
+    out.buf[0] = (u8)crypto_ed25519_check(sig.buf, public_k.buf,
+                                           msg.buf, msg.size);
 }
 
-void xchacha_ctr(void) {
-    ARRAY(out,   64);
-    ARRAY(in,    64);
-    ARRAY(key,   32);
-    ARRAY(nonce, 24);
-    for(size_t i = 0; i < 64; i++)
-        crypto_xchacha20_ctr(out, in, i, key, nonce, 777);
+static void elligator_dir(vector_reader *reader)
+{
+    vector in  = next_input(reader);
+    vector out = next_output(reader);
+    crypto_hidden_to_curve(out.buf, in.buf);
 }
 
-void ietf_chacha_ctr(void) {
-    ARRAY(out,   64);
-    ARRAY(in,    64);
-    ARRAY(key,   32);
-    ARRAY(nonce, 12);
-    for(size_t i = 0; i < 64; i++)
-        crypto_ietf_chacha20_ctr(out, in, i, key, nonce, 777);
+static void elligator_inv(vector_reader *reader)
+{
+    vector point   = next_input(reader);
+    u8     tweak   = next_input(reader).buf[0];
+    u8     failure = next_input(reader).buf[0];
+    vector out     = next_output(reader);
+    int    check   = crypto_curve_to_hidden(out.buf, point.buf, tweak);
+    if ((u8)check != failure) {
+        printf("Elligator inverse map: failure mismatch\n");
+        exit(1);
+    }
+    if (check) {
+        out.buf[0] = 0;
+    }
 }
 
-void x25519(void) {
-    ARRAY(key, 32);
-    ARRAY(pub, 32);
-    ARRAY(shr, 32);
-    key[0] = 0;
-    crypto_x25519_public_key(pub, key);
-    crypto_x25519(shr, key, pub);
+static int p_from_eddsa()
+{
+    int status = 0;
+    FOR (i, 0, 3) {
+        RANDOM_INPUT(ed_private, 32);
+        u8 ed_public[32];  crypto_sign_public_key   (ed_public, ed_private);
+        u8 x_private[32];  crypto_from_eddsa_private(x_private, ed_private);
+        u8 x_public1[32];  crypto_from_eddsa_public (x_public1, ed_public);
+        u8 x_public2[32];  crypto_x25519_public_key (x_public2, x_private);
+        status |= memcmp(x_public1, x_public2, 32);
+    }
+    printf("%s: from_eddsa\n", status != 0 ? "FAILED" : "OK");
+    return status;
 }
 
-void dirty(void) {
-    ARRAY(key, 32);
-    ARRAY(pub, 32);
-    crypto_x25519_dirty_small(pub, key);
-    crypto_x25519_dirty_fast (pub, key);
+static int p_from_ed25519()
+{
+    int status = 0;
+    FOR (i, 0, 3) {
+        RANDOM_INPUT(ed_private, 32);
+        u8 ed_public[32];  crypto_ed25519_public_key  (ed_public, ed_private);
+        u8 x_private[32];  crypto_from_ed25519_private(x_private, ed_private);
+        u8 x_public1[32];  crypto_from_ed25519_public (x_public1, ed_public);
+        u8 x_public2[32];  crypto_x25519_public_key   (x_public2, x_private);
+        status |= memcmp(x_public1, x_public2, 32);
+    }
+    printf("%s: from_ed25519\n", status != 0 ? "FAILED" : "OK");
+    return status;
 }
 
-void inverse(void) {
-    ARRAY(key, 32);
-    ARRAY(pub, 32);
-    ARRAY(bld, 32);
-    crypto_x25519_public_key(pub, key);
-    crypto_x25519_inverse(bld, key, pub);
+static int p_elligator_x25519()
+{
+    int status = 0;
+    int i = 0;
+    while (i < 2) {
+        RANDOM_INPUT(sk1, 32);
+        RANDOM_INPUT(sk2, 32);
+        u8 skc [32];  memcpy(skc, sk1, 32);  skc[0] &= 248;
+        u8 pks [32];  crypto_x25519_dirty_small(pks , sk1);
+        u8 pksc[32];  crypto_x25519_dirty_small(pksc, skc);
+        u8 pkf [32];  crypto_x25519_dirty_fast (pkf , sk1);
+        u8 pkfc[32];  crypto_x25519_dirty_fast (pkfc, skc);
+        u8 pk1 [32];  crypto_x25519_public_key (pk1 , sk1);
+
+        // Both dirty functions behave the same
+        status |= memcmp(pks, pkf, 32);
+
+        // Dirty functions behave cleanly if we clear the 3 msb first
+        status |= memcmp(pksc, pk1, 32);
+        status |= memcmp(pkfc, pk1, 32);
+
+        // Dirty functions behave the same as the clean one if the lsb
+        // are 0, differently if it is not
+        if ((sk1[0] & 7) == 0) { status |= memcmp(pk1, pkf, 32);      }
+        else                   { status |= memcmp(pk1, pkf, 32) == 0; }
+
+        // Maximise tweak diversity.
+        // We want to set the bits 1 (sign) and 6-7 (padding)
+        u8 tweak = (u8)((i & 1) + (i << 5));
+        u8 r[32];
+        if (crypto_curve_to_hidden(r, pkf, tweak)) {
+            continue; // retry untill success (doesn't increment the tweak)
+        }
+        // Verify that the tweak's msb are copied to the representative
+        status |= (tweak >> 6) ^ (r[31] >> 6);
+
+        // Round trip
+        u8 pkr[32];  crypto_hidden_to_curve(pkr, r);
+        status |= memcmp(pkr, pkf, 32);
+
+        // Dirty and safe keys are compatible
+        u8 e1 [32];  crypto_x25519(e1, sk2, pk1);
+        u8 e2 [32];  crypto_x25519(e2, sk2, pkr);
+        status |= memcmp(e1, e2, 32);
+        i += 3;
+    }
+    printf("%s: elligator x25519\n", status != 0 ? "FAILED" : "OK");
+    return status;
 }
 
-void sha512(void) {
-    ARRAY(hash,  64);
-    ARRAY(in  , 128);
-    for(size_t i = 0; i < 128; i++)
-        crypto_sha512(hash, in, i);
-}
+static int p_x25519_inverse()
+{
+    int status = 0;
+    RANDOM_INPUT(b, 32);
+    u8 base[32];  // random point (cofactor is cleared).
+    crypto_x25519_public_key(base, b);
+    // check round trip
+    FOR (i, 0, 2) {
+        RANDOM_INPUT(sk, 32);
+        u8 pk   [32];
+        u8 blind[32];
+        crypto_x25519(pk, sk, base);
+        crypto_x25519_inverse(blind, sk, pk);
+        status |= memcmp(blind, base, 32);
+    }
 
-void hmac(void) {
-    ARRAY(hash, 64);
-    ARRAY(key , 64);
-    ARRAY(in  , 64);
-    for(size_t i = 0; i < 64; i++)
-        crypto_hmac_sha512(hash, key, 64, in, i);
+    // check cofactor clearing
+    // (Multiplying by a low order point yields zero
+    u8 low_order[4][32] = {
+        {0}, {1},
+        {0x5f, 0x9c, 0x95, 0xbc, 0xa3, 0x50, 0x8c, 0x24,
+         0xb1, 0xd0, 0xb1, 0x55, 0x9c, 0x83, 0xef, 0x5b,
+         0x04, 0x44, 0x5c, 0xc4, 0x58, 0x1c, 0x8e, 0x86,
+         0xd8, 0x22, 0x4e, 0xdd, 0xd0, 0x9f, 0x11, 0x57,},
+        {0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae,
+         0x16, 0x56, 0xe3, 0xfa, 0xf1, 0x9f, 0xc4, 0x6a,
+         0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32, 0xb1, 0xfd,
+         0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8, 0x00,},
+    };
+    u8 zero[32] = {0};
+    FOR (i, 0, 3) {
+        u8 blind[32];
+        RANDOM_INPUT(sk, 32);
+        crypto_x25519_inverse(blind, sk, low_order[i%4]);
+        status |= memcmp(blind, zero, 32);
+    }
+    printf("%s: x25519_inverse\n", status != 0 ? "FAILED" : "OK");
+    return status;
 }
 
-void sign_check_ed25519(void) {
-    ARRAY(hash, 64);
-    ARRAY(key,  32);
-    ARRAY(pub,  32);
-    ARRAY(in,   32);
-    crypto_ed25519_public_key(pub, key);
-    crypto_ed25519_sign(hash, key, pub, in, 32);
-    crypto_ed25519_check(hash, pub, in, 32);
+static int p_verify(size_t size, int (*compare)(const u8*, const u8*))
+{
+    int status = 0;
+    u8 a[64]; // size <= 64
+    u8 b[64]; // size <= 64
+    FOR (i, 0, 2) {
+        FOR (j, 0, 2) {
+            // Set every byte to the chosen value, then compare
+            FOR (k, 0, size) {
+                a[k] = (u8)i;
+                b[k] = (u8)j;
+            }
+            int cmp = compare(a, b);
+            status |= (i == j ? cmp : ~cmp);
+            // Set only two bytes to the chosen value, then compare
+            FOR (k, 0, size / 2) {
+                FOR (l, 0, size) {
+                    a[l] = 0;
+                    b[l] = 0;
+                }
+                a[k] = (u8)i; a[k + size/2 - 1] = (u8)i;
+                b[k] = (u8)j; b[k + size/2 - 1] = (u8)j;
+                cmp = compare(a, b);
+                status |= (i == j ? cmp : ~cmp);
+            }
+        }
+    }
+    printf("%s: crypto_verify%zu\n", status != 0 ? "FAILED" : "OK", size);
+    return status;
 }
+static int p_verify16(){ return p_verify(16, crypto_verify16); }
+static int p_verify32(){ return p_verify(32, crypto_verify32); }
+static int p_verify64(){ return p_verify(64, crypto_verify64); }
 
 #define TEST(name)                                                      \
     int v_##name() {                                                    \
@@ -322,6 +419,18 @@ TEST(chacha20)
 TEST(ietf_chacha20)
 TEST(hchacha20)
 TEST(xchacha20)
+TEST(poly1305)
+TEST(aead_ietf)
+TEST(blake2b)
+TEST(sha512)
+TEST(hmac_sha512)
+TEST(argon2i)
+TEST(key_exchange)
+TEST(edDSA)
+TEST(ed_25519)
+TEST(ed_25519_check)
+TEST(elligator_dir)
+TEST(elligator_inv)
 
 int main(void) {
     int status = 0;
@@ -329,28 +438,24 @@ int main(void) {
     status |= v_ietf_chacha20 ();
     status |= v_hchacha20     ();
     status |= v_xchacha20     ();
-    p1305();
-    blake2b();
-    verify();
-    wipe();
-    lock_unlock();
-    argon();
-    key_exchange();
-    sign_check();
-    from_eddsa();
-    hidden();
-    hchacha();
-    chacha();
-    xchacha();
-    ietf_chacha();
-    chacha_ctr();
-    xchacha_ctr();
-    ietf_chacha_ctr();
-    x25519();
-    dirty();
-    inverse();
-    sha512();
-    hmac();
-    sign_check_ed25519();
+    status |= v_poly1305      ();
+    status |= v_aead_ietf     ();
+    status |= v_blake2b       ();
+    status |= v_sha512        ();
+    status |= v_hmac_sha512   ();
+    status |= v_argon2i       ();
+    status |= v_key_exchange  ();
+    status |= v_edDSA         ();
+    status |= v_ed_25519      ();
+    status |= v_ed_25519_check();
+    status |= v_elligator_dir ();
+    status |= v_elligator_inv ();
+    status |= p_from_eddsa      ();
+    status |= p_from_ed25519    ();
+    status |= p_elligator_x25519();
+    status |= p_x25519_inverse  ();
+    status |= p_verify16        ();
+    status |= p_verify32        ();
+    status |= p_verify64        ();
     return status;
 }
index 7f8ad154f2ac93eda444febc9a688180a95ab9c7..6f88787e0f3155d0d30b016214c33c91db6c1935 100644 (file)
 , "raw_options"    : { "-no-results" : "true" }
 , "main"           : "v_xchacha20"
 },
-{ "name"           : "p1305 - sparc_64"
+{ "name"           : "v_poly1305 - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - sparc_32"
+{ "name"           : "v_poly1305 - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - x86_32"
+{ "name"           : "v_poly1305 - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - x86_64"
+{ "name"           : "v_poly1305 - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - x86_16"
+{ "name"           : "v_poly1305 - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - x86_16_huge"
+{ "name"           : "v_poly1305 - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - x86_win32"
+{ "name"           : "v_poly1305 - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - x86_win64"
+{ "name"           : "v_poly1305 - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - armeb_eabi"
+{ "name"           : "v_poly1305 - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - arm_eabi"
+{ "name"           : "v_poly1305 - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - aarch64"
+{ "name"           : "v_poly1305 - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - aarch64eb"
+{ "name"           : "v_poly1305 - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - rv64ifdq"
+{ "name"           : "v_poly1305 - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - rv32ifdq"
+{ "name"           : "v_poly1305 - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - mips_o32"
+{ "name"           : "v_poly1305 - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - mips_n32"
+{ "name"           : "v_poly1305 - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - mips_64"
+{ "name"           : "v_poly1305 - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - mipsel_64"
+{ "name"           : "v_poly1305 - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - mipsel_n32"
+{ "name"           : "v_poly1305 - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "p1305 - apple_ppc_32"
+{ "name"           : "v_poly1305 - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "p1305"
+, "main"           : "v_poly1305"
 },
-{ "name"           : "blake2b - sparc_64"
+{ "name"           : "v_aead_ietf - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - sparc_32"
+{ "name"           : "v_aead_ietf - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - x86_32"
+{ "name"           : "v_aead_ietf - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - x86_64"
+{ "name"           : "v_aead_ietf - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - x86_16"
+{ "name"           : "v_aead_ietf - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - x86_16_huge"
+{ "name"           : "v_aead_ietf - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - x86_win32"
+{ "name"           : "v_aead_ietf - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - x86_win64"
+{ "name"           : "v_aead_ietf - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - armeb_eabi"
+{ "name"           : "v_aead_ietf - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - arm_eabi"
+{ "name"           : "v_aead_ietf - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - aarch64"
+{ "name"           : "v_aead_ietf - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - aarch64eb"
+{ "name"           : "v_aead_ietf - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - rv64ifdq"
+{ "name"           : "v_aead_ietf - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - rv32ifdq"
+{ "name"           : "v_aead_ietf - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - mips_o32"
+{ "name"           : "v_aead_ietf - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - mips_n32"
+{ "name"           : "v_aead_ietf - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - mips_64"
+{ "name"           : "v_aead_ietf - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - mipsel_64"
+{ "name"           : "v_aead_ietf - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - mipsel_n32"
+{ "name"           : "v_aead_ietf - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "blake2b - apple_ppc_32"
+{ "name"           : "v_aead_ietf - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "blake2b"
+, "main"           : "v_aead_ietf"
 },
-{ "name"           : "verify - sparc_64"
+{ "name"           : "v_blake2b - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - sparc_32"
+{ "name"           : "v_blake2b - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - x86_32"
+{ "name"           : "v_blake2b - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - x86_64"
+{ "name"           : "v_blake2b - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - x86_16"
+{ "name"           : "v_blake2b - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - x86_16_huge"
+{ "name"           : "v_blake2b - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - x86_win32"
+{ "name"           : "v_blake2b - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - x86_win64"
+{ "name"           : "v_blake2b - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - armeb_eabi"
+{ "name"           : "v_blake2b - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - arm_eabi"
+{ "name"           : "v_blake2b - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - aarch64"
+{ "name"           : "v_blake2b - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - aarch64eb"
+{ "name"           : "v_blake2b - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - rv64ifdq"
+{ "name"           : "v_blake2b - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - rv32ifdq"
+{ "name"           : "v_blake2b - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - mips_o32"
+{ "name"           : "v_blake2b - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - mips_n32"
+{ "name"           : "v_blake2b - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - mips_64"
+{ "name"           : "v_blake2b - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - mipsel_64"
+{ "name"           : "v_blake2b - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - mipsel_n32"
+{ "name"           : "v_blake2b - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "verify - apple_ppc_32"
+{ "name"           : "v_blake2b - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "verify"
+, "main"           : "v_blake2b"
 },
-{ "name"           : "wipe - sparc_64"
+{ "name"           : "v_sha512 - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - sparc_32"
+{ "name"           : "v_sha512 - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - x86_32"
+{ "name"           : "v_sha512 - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - x86_64"
+{ "name"           : "v_sha512 - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - x86_16"
+{ "name"           : "v_sha512 - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - x86_16_huge"
+{ "name"           : "v_sha512 - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - x86_win32"
+{ "name"           : "v_sha512 - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - x86_win64"
+{ "name"           : "v_sha512 - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - armeb_eabi"
+{ "name"           : "v_sha512 - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - arm_eabi"
+{ "name"           : "v_sha512 - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - aarch64"
+{ "name"           : "v_sha512 - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - aarch64eb"
+{ "name"           : "v_sha512 - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - rv64ifdq"
+{ "name"           : "v_sha512 - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - rv32ifdq"
+{ "name"           : "v_sha512 - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - mips_o32"
+{ "name"           : "v_sha512 - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - mips_n32"
+{ "name"           : "v_sha512 - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - mips_64"
+{ "name"           : "v_sha512 - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - mipsel_64"
+{ "name"           : "v_sha512 - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - mipsel_n32"
+{ "name"           : "v_sha512 - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "wipe - apple_ppc_32"
+{ "name"           : "v_sha512 - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "wipe"
+, "main"           : "v_sha512"
 },
-{ "name"           : "lock_unlock - sparc_64"
+{ "name"           : "v_hmac_sha512 - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - sparc_32"
+{ "name"           : "v_hmac_sha512 - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - x86_32"
+{ "name"           : "v_hmac_sha512 - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - x86_64"
+{ "name"           : "v_hmac_sha512 - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - x86_16"
+{ "name"           : "v_hmac_sha512 - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - x86_16_huge"
+{ "name"           : "v_hmac_sha512 - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - x86_win32"
+{ "name"           : "v_hmac_sha512 - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - x86_win64"
+{ "name"           : "v_hmac_sha512 - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - armeb_eabi"
+{ "name"           : "v_hmac_sha512 - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - arm_eabi"
+{ "name"           : "v_hmac_sha512 - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - aarch64"
+{ "name"           : "v_hmac_sha512 - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - aarch64eb"
+{ "name"           : "v_hmac_sha512 - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - rv64ifdq"
+{ "name"           : "v_hmac_sha512 - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - rv32ifdq"
+{ "name"           : "v_hmac_sha512 - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - mips_o32"
+{ "name"           : "v_hmac_sha512 - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - mips_n32"
+{ "name"           : "v_hmac_sha512 - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - mips_64"
+{ "name"           : "v_hmac_sha512 - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - mipsel_64"
+{ "name"           : "v_hmac_sha512 - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - mipsel_n32"
+{ "name"           : "v_hmac_sha512 - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "lock_unlock - apple_ppc_32"
+{ "name"           : "v_hmac_sha512 - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "lock_unlock"
+, "main"           : "v_hmac_sha512"
 },
-{ "name"           : "argon - sparc_64"
+{ "name"           : "v_argon2i - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - sparc_32"
+{ "name"           : "v_argon2i - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - x86_32"
+{ "name"           : "v_argon2i - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - x86_64"
+{ "name"           : "v_argon2i - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - x86_16"
+{ "name"           : "v_argon2i - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - x86_16_huge"
+{ "name"           : "v_argon2i - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - x86_win32"
+{ "name"           : "v_argon2i - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - x86_win64"
+{ "name"           : "v_argon2i - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - armeb_eabi"
+{ "name"           : "v_argon2i - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - arm_eabi"
+{ "name"           : "v_argon2i - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - aarch64"
+{ "name"           : "v_argon2i - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - aarch64eb"
+{ "name"           : "v_argon2i - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - rv64ifdq"
+{ "name"           : "v_argon2i - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - rv32ifdq"
+{ "name"           : "v_argon2i - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - mips_o32"
+{ "name"           : "v_argon2i - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - mips_n32"
+{ "name"           : "v_argon2i - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - mips_64"
+{ "name"           : "v_argon2i - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - mipsel_64"
+{ "name"           : "v_argon2i - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - mipsel_n32"
+{ "name"           : "v_argon2i - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "argon - apple_ppc_32"
+{ "name"           : "v_argon2i - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "argon"
+, "main"           : "v_argon2i"
 },
-{ "name"           : "key_exchange - sparc_64"
+{ "name"           : "v_key_exchange - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - sparc_32"
+{ "name"           : "v_key_exchange - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - x86_32"
+{ "name"           : "v_key_exchange - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - x86_64"
+{ "name"           : "v_key_exchange - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - x86_16"
+{ "name"           : "v_key_exchange - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - x86_16_huge"
+{ "name"           : "v_key_exchange - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - x86_win32"
+{ "name"           : "v_key_exchange - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - x86_win64"
+{ "name"           : "v_key_exchange - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - armeb_eabi"
+{ "name"           : "v_key_exchange - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - arm_eabi"
+{ "name"           : "v_key_exchange - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - aarch64"
+{ "name"           : "v_key_exchange - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - aarch64eb"
+{ "name"           : "v_key_exchange - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - rv64ifdq"
+{ "name"           : "v_key_exchange - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - rv32ifdq"
+{ "name"           : "v_key_exchange - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - mips_o32"
+{ "name"           : "v_key_exchange - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - mips_n32"
+{ "name"           : "v_key_exchange - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - mips_64"
+{ "name"           : "v_key_exchange - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - mipsel_64"
+{ "name"           : "v_key_exchange - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - mipsel_n32"
+{ "name"           : "v_key_exchange - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "key_exchange - apple_ppc_32"
+{ "name"           : "v_key_exchange - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "key_exchange"
+, "main"           : "v_key_exchange"
 },
-{ "name"           : "sign_check - sparc_64"
+{ "name"           : "v_edDSA - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - sparc_32"
+{ "name"           : "v_edDSA - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - x86_32"
+{ "name"           : "v_edDSA - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - x86_64"
+{ "name"           : "v_edDSA - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - x86_16"
+{ "name"           : "v_edDSA - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - x86_16_huge"
+{ "name"           : "v_edDSA - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - x86_win32"
+{ "name"           : "v_edDSA - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - x86_win64"
+{ "name"           : "v_edDSA - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - armeb_eabi"
+{ "name"           : "v_edDSA - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - arm_eabi"
+{ "name"           : "v_edDSA - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - aarch64"
+{ "name"           : "v_edDSA - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - aarch64eb"
+{ "name"           : "v_edDSA - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - rv64ifdq"
+{ "name"           : "v_edDSA - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - rv32ifdq"
+{ "name"           : "v_edDSA - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - mips_o32"
+{ "name"           : "v_edDSA - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - mips_n32"
+{ "name"           : "v_edDSA - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - mips_64"
+{ "name"           : "v_edDSA - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - mipsel_64"
+{ "name"           : "v_edDSA - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - mipsel_n32"
+{ "name"           : "v_edDSA - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "sign_check - apple_ppc_32"
+{ "name"           : "v_edDSA - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check"
+, "main"           : "v_edDSA"
 },
-{ "name"           : "from_eddsa - sparc_64"
+{ "name"           : "v_ed_25519 - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - sparc_32"
+{ "name"           : "v_ed_25519 - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - x86_32"
+{ "name"           : "v_ed_25519 - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - x86_64"
+{ "name"           : "v_ed_25519 - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - x86_16"
+{ "name"           : "v_ed_25519 - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - x86_16_huge"
+{ "name"           : "v_ed_25519 - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - x86_win32"
+{ "name"           : "v_ed_25519 - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - x86_win64"
+{ "name"           : "v_ed_25519 - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - armeb_eabi"
+{ "name"           : "v_ed_25519 - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - arm_eabi"
+{ "name"           : "v_ed_25519 - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - aarch64"
+{ "name"           : "v_ed_25519 - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - aarch64eb"
+{ "name"           : "v_ed_25519 - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - rv64ifdq"
+{ "name"           : "v_ed_25519 - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - rv32ifdq"
+{ "name"           : "v_ed_25519 - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - mips_o32"
+{ "name"           : "v_ed_25519 - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - mips_n32"
+{ "name"           : "v_ed_25519 - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - mips_64"
+{ "name"           : "v_ed_25519 - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - mipsel_64"
+{ "name"           : "v_ed_25519 - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - mipsel_n32"
+{ "name"           : "v_ed_25519 - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "from_eddsa - apple_ppc_32"
+{ "name"           : "v_ed_25519 - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "from_eddsa"
+, "main"           : "v_ed_25519"
 },
-{ "name"           : "hidden - sparc_64"
+{ "name"           : "v_ed_25519_check - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - sparc_32"
+{ "name"           : "v_ed_25519_check - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - x86_32"
+{ "name"           : "v_ed_25519_check - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - x86_64"
+{ "name"           : "v_ed_25519_check - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - x86_16"
+{ "name"           : "v_ed_25519_check - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - x86_16_huge"
+{ "name"           : "v_ed_25519_check - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - x86_win32"
+{ "name"           : "v_ed_25519_check - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - x86_win64"
+{ "name"           : "v_ed_25519_check - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - armeb_eabi"
+{ "name"           : "v_ed_25519_check - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - arm_eabi"
+{ "name"           : "v_ed_25519_check - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - aarch64"
+{ "name"           : "v_ed_25519_check - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - aarch64eb"
+{ "name"           : "v_ed_25519_check - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - rv64ifdq"
+{ "name"           : "v_ed_25519_check - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - rv32ifdq"
+{ "name"           : "v_ed_25519_check - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - mips_o32"
+{ "name"           : "v_ed_25519_check - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - mips_n32"
+{ "name"           : "v_ed_25519_check - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - mips_64"
+{ "name"           : "v_ed_25519_check - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - mipsel_64"
+{ "name"           : "v_ed_25519_check - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - mipsel_n32"
+{ "name"           : "v_ed_25519_check - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hidden - apple_ppc_32"
+{ "name"           : "v_ed_25519_check - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hidden"
+, "main"           : "v_ed_25519_check"
 },
-{ "name"           : "hchacha - sparc_64"
+{ "name"           : "v_elligator_dir - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - sparc_32"
+{ "name"           : "v_elligator_dir - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - x86_32"
+{ "name"           : "v_elligator_dir - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - x86_64"
+{ "name"           : "v_elligator_dir - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - x86_16"
+{ "name"           : "v_elligator_dir - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - x86_16_huge"
+{ "name"           : "v_elligator_dir - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - x86_win32"
+{ "name"           : "v_elligator_dir - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - x86_win64"
+{ "name"           : "v_elligator_dir - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - armeb_eabi"
+{ "name"           : "v_elligator_dir - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - arm_eabi"
+{ "name"           : "v_elligator_dir - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - aarch64"
+{ "name"           : "v_elligator_dir - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - aarch64eb"
+{ "name"           : "v_elligator_dir - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - rv64ifdq"
+{ "name"           : "v_elligator_dir - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - rv32ifdq"
+{ "name"           : "v_elligator_dir - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - mips_o32"
+{ "name"           : "v_elligator_dir - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - mips_n32"
+{ "name"           : "v_elligator_dir - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - mips_64"
+{ "name"           : "v_elligator_dir - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - mipsel_64"
+{ "name"           : "v_elligator_dir - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - mipsel_n32"
+{ "name"           : "v_elligator_dir - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "hchacha - apple_ppc_32"
+{ "name"           : "v_elligator_dir - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hchacha"
+, "main"           : "v_elligator_dir"
 },
-{ "name"           : "chacha - sparc_64"
+{ "name"           : "v_elligator_inv - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - sparc_32"
+{ "name"           : "v_elligator_inv - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - x86_32"
+{ "name"           : "v_elligator_inv - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - x86_64"
+{ "name"           : "v_elligator_inv - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - x86_16"
+{ "name"           : "v_elligator_inv - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - x86_16_huge"
+{ "name"           : "v_elligator_inv - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - x86_win32"
+{ "name"           : "v_elligator_inv - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - x86_win64"
+{ "name"           : "v_elligator_inv - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - armeb_eabi"
+{ "name"           : "v_elligator_inv - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - arm_eabi"
+{ "name"           : "v_elligator_inv - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - aarch64"
+{ "name"           : "v_elligator_inv - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - aarch64eb"
+{ "name"           : "v_elligator_inv - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - rv64ifdq"
+{ "name"           : "v_elligator_inv - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - rv32ifdq"
+{ "name"           : "v_elligator_inv - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - mips_o32"
+{ "name"           : "v_elligator_inv - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - mips_n32"
+{ "name"           : "v_elligator_inv - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - mips_64"
+{ "name"           : "v_elligator_inv - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - mipsel_64"
+{ "name"           : "v_elligator_inv - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - mipsel_n32"
+{ "name"           : "v_elligator_inv - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "chacha - apple_ppc_32"
+{ "name"           : "v_elligator_inv - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha"
+, "main"           : "v_elligator_inv"
 },
-{ "name"           : "xchacha - sparc_64"
+{ "name"           : "p_from_eddsa - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - sparc_32"
+{ "name"           : "p_from_eddsa - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - x86_32"
+{ "name"           : "p_from_eddsa - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - x86_64"
+{ "name"           : "p_from_eddsa - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - x86_16"
+{ "name"           : "p_from_eddsa - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - x86_16_huge"
+{ "name"           : "p_from_eddsa - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - x86_win32"
+{ "name"           : "p_from_eddsa - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - x86_win64"
+{ "name"           : "p_from_eddsa - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - armeb_eabi"
+{ "name"           : "p_from_eddsa - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - arm_eabi"
+{ "name"           : "p_from_eddsa - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - aarch64"
+{ "name"           : "p_from_eddsa - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - aarch64eb"
+{ "name"           : "p_from_eddsa - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - rv64ifdq"
+{ "name"           : "p_from_eddsa - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - rv32ifdq"
+{ "name"           : "p_from_eddsa - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - mips_o32"
+{ "name"           : "p_from_eddsa - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - mips_n32"
+{ "name"           : "p_from_eddsa - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - mips_64"
+{ "name"           : "p_from_eddsa - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - mipsel_64"
+{ "name"           : "p_from_eddsa - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - mipsel_n32"
+{ "name"           : "p_from_eddsa - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "xchacha - apple_ppc_32"
+{ "name"           : "p_from_eddsa - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha"
+, "main"           : "p_from_eddsa"
 },
-{ "name"           : "ietf_chacha - sparc_64"
+{ "name"           : "p_from_ed25519 - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - sparc_32"
+{ "name"           : "p_from_ed25519 - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - x86_32"
+{ "name"           : "p_from_ed25519 - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - x86_64"
+{ "name"           : "p_from_ed25519 - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - x86_16"
+{ "name"           : "p_from_ed25519 - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - x86_16_huge"
+{ "name"           : "p_from_ed25519 - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - x86_win32"
+{ "name"           : "p_from_ed25519 - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - x86_win64"
+{ "name"           : "p_from_ed25519 - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - armeb_eabi"
+{ "name"           : "p_from_ed25519 - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - arm_eabi"
+{ "name"           : "p_from_ed25519 - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - aarch64"
+{ "name"           : "p_from_ed25519 - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - aarch64eb"
+{ "name"           : "p_from_ed25519 - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - rv64ifdq"
+{ "name"           : "p_from_ed25519 - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - rv32ifdq"
+{ "name"           : "p_from_ed25519 - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - mips_o32"
+{ "name"           : "p_from_ed25519 - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - mips_n32"
+{ "name"           : "p_from_ed25519 - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - mips_64"
+{ "name"           : "p_from_ed25519 - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - mipsel_64"
+{ "name"           : "p_from_ed25519 - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - mipsel_n32"
+{ "name"           : "p_from_ed25519 - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "ietf_chacha - apple_ppc_32"
+{ "name"           : "p_from_ed25519 - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha"
+, "main"           : "p_from_ed25519"
 },
-{ "name"           : "chacha_ctr - sparc_64"
+{ "name"           : "p_elligator_x25519 - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - sparc_32"
+{ "name"           : "p_elligator_x25519 - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - x86_32"
+{ "name"           : "p_elligator_x25519 - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - x86_64"
+{ "name"           : "p_elligator_x25519 - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - x86_16"
+{ "name"           : "p_elligator_x25519 - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - x86_16_huge"
+{ "name"           : "p_elligator_x25519 - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - x86_win32"
+{ "name"           : "p_elligator_x25519 - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - x86_win64"
+{ "name"           : "p_elligator_x25519 - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - armeb_eabi"
+{ "name"           : "p_elligator_x25519 - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - arm_eabi"
+{ "name"           : "p_elligator_x25519 - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - aarch64"
+{ "name"           : "p_elligator_x25519 - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - aarch64eb"
+{ "name"           : "p_elligator_x25519 - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - rv64ifdq"
+{ "name"           : "p_elligator_x25519 - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - rv32ifdq"
+{ "name"           : "p_elligator_x25519 - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - mips_o32"
+{ "name"           : "p_elligator_x25519 - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - mips_n32"
+{ "name"           : "p_elligator_x25519 - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - mips_64"
+{ "name"           : "p_elligator_x25519 - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - mipsel_64"
+{ "name"           : "p_elligator_x25519 - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - mipsel_n32"
+{ "name"           : "p_elligator_x25519 - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "chacha_ctr - apple_ppc_32"
+{ "name"           : "p_elligator_x25519 - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "chacha_ctr"
+, "main"           : "p_elligator_x25519"
 },
-{ "name"           : "xchacha_ctr - sparc_64"
+{ "name"           : "p_x25519_inverse - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - sparc_32"
+{ "name"           : "p_x25519_inverse - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - x86_32"
+{ "name"           : "p_x25519_inverse - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - x86_64"
+{ "name"           : "p_x25519_inverse - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - x86_16"
+{ "name"           : "p_x25519_inverse - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - x86_16_huge"
+{ "name"           : "p_x25519_inverse - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - x86_win32"
+{ "name"           : "p_x25519_inverse - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - x86_win64"
+{ "name"           : "p_x25519_inverse - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - armeb_eabi"
+{ "name"           : "p_x25519_inverse - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - arm_eabi"
+{ "name"           : "p_x25519_inverse - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - aarch64"
+{ "name"           : "p_x25519_inverse - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - aarch64eb"
+{ "name"           : "p_x25519_inverse - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - rv64ifdq"
+{ "name"           : "p_x25519_inverse - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - rv32ifdq"
+{ "name"           : "p_x25519_inverse - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - mips_o32"
+{ "name"           : "p_x25519_inverse - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - mips_n32"
+{ "name"           : "p_x25519_inverse - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - mips_64"
+{ "name"           : "p_x25519_inverse - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - mipsel_64"
+{ "name"           : "p_x25519_inverse - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - mipsel_n32"
+{ "name"           : "p_x25519_inverse - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "xchacha_ctr - apple_ppc_32"
+{ "name"           : "p_x25519_inverse - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "xchacha_ctr"
+, "main"           : "p_x25519_inverse"
 },
-{ "name"           : "ietf_chacha_ctr - sparc_64"
+{ "name"           : "p_verify16 - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - sparc_32"
+{ "name"           : "p_verify16 - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - x86_32"
+{ "name"           : "p_verify16 - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - x86_64"
+{ "name"           : "p_verify16 - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - x86_16"
+{ "name"           : "p_verify16 - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - x86_16_huge"
+{ "name"           : "p_verify16 - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - x86_win32"
+{ "name"           : "p_verify16 - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - x86_win64"
+{ "name"           : "p_verify16 - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - armeb_eabi"
+{ "name"           : "p_verify16 - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - arm_eabi"
+{ "name"           : "p_verify16 - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - aarch64"
+{ "name"           : "p_verify16 - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - aarch64eb"
+{ "name"           : "p_verify16 - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - rv64ifdq"
+{ "name"           : "p_verify16 - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - rv32ifdq"
+{ "name"           : "p_verify16 - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - mips_o32"
+{ "name"           : "p_verify16 - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - mips_n32"
+{ "name"           : "p_verify16 - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - mips_64"
+{ "name"           : "p_verify16 - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - mipsel_64"
+{ "name"           : "p_verify16 - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - mipsel_n32"
+{ "name"           : "p_verify16 - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "ietf_chacha_ctr - apple_ppc_32"
+{ "name"           : "p_verify16 - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "ietf_chacha_ctr"
+, "main"           : "p_verify16"
 },
-{ "name"           : "x25519 - sparc_64"
+{ "name"           : "p_verify32 - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - sparc_32"
+{ "name"           : "p_verify32 - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - x86_32"
+{ "name"           : "p_verify32 - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - x86_64"
+{ "name"           : "p_verify32 - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - x86_16"
+{ "name"           : "p_verify32 - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - x86_16_huge"
+{ "name"           : "p_verify32 - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - x86_win32"
+{ "name"           : "p_verify32 - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - x86_win64"
+{ "name"           : "p_verify32 - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - armeb_eabi"
+{ "name"           : "p_verify32 - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - arm_eabi"
+{ "name"           : "p_verify32 - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - aarch64"
+{ "name"           : "p_verify32 - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - aarch64eb"
+{ "name"           : "p_verify32 - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - rv64ifdq"
+{ "name"           : "p_verify32 - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - rv32ifdq"
+{ "name"           : "p_verify32 - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - mips_o32"
+{ "name"           : "p_verify32 - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - mips_n32"
+{ "name"           : "p_verify32 - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - mips_64"
+{ "name"           : "p_verify32 - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - mipsel_64"
+{ "name"           : "p_verify32 - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - mipsel_n32"
+{ "name"           : "p_verify32 - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "x25519 - apple_ppc_32"
+{ "name"           : "p_verify32 - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "x25519"
+, "main"           : "p_verify32"
 },
-{ "name"           : "dirty - sparc_64"
+{ "name"           : "p_verify64 - sparc_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - sparc_32"
+{ "name"           : "p_verify64 - sparc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "sparc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - x86_32"
+{ "name"           : "p_verify64 - x86_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - x86_64"
+{ "name"           : "p_verify64 - x86_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - x86_16"
+{ "name"           : "p_verify64 - x86_16"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - x86_16_huge"
+{ "name"           : "p_verify64 - x86_16_huge"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_16_huge"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - x86_win32"
+{ "name"           : "p_verify64 - x86_win32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - x86_win64"
+{ "name"           : "p_verify64 - x86_win64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "x86_win64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - armeb_eabi"
+{ "name"           : "p_verify64 - armeb_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "armeb_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - arm_eabi"
+{ "name"           : "p_verify64 - arm_eabi"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "arm_eabi"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - aarch64"
+{ "name"           : "p_verify64 - aarch64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - aarch64eb"
+{ "name"           : "p_verify64 - aarch64eb"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "aarch64eb"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - rv64ifdq"
+{ "name"           : "p_verify64 - rv64ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv64ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - rv32ifdq"
+{ "name"           : "p_verify64 - rv32ifdq"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "rv32ifdq"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - mips_o32"
+{ "name"           : "p_verify64 - mips_o32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_o32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - mips_n32"
+{ "name"           : "p_verify64 - mips_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - mips_64"
+{ "name"           : "p_verify64 - mips_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mips_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - mipsel_64"
+{ "name"           : "p_verify64 - mipsel_64"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_64"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - mipsel_n32"
+{ "name"           : "p_verify64 - mipsel_n32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "mipsel_n32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
+, "main"           : "p_verify64"
 },
-{ "name"           : "dirty - apple_ppc_32"
+{ "name"           : "p_verify64 - apple_ppc_32"
 , "files"          :
   [ "src/monocypher.c"
   , "src/optional/monocypher-ed25519.c"
 , "compilation_cmd": "-Isrc -Isrc/optional -Itests"
 , "machdep"        : "apple_ppc_32"
 , "raw_options"    : { "-no-results" : "true" }
-, "main"           : "dirty"
-},
-{ "name"           : "inverse - sparc_64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "sparc_64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - sparc_32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "sparc_32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - x86_32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - x86_64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - x86_16"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_16"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - x86_16_huge"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_16_huge"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - x86_win32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_win32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - x86_win64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_win64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - armeb_eabi"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "armeb_eabi"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - arm_eabi"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "arm_eabi"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - aarch64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "aarch64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - aarch64eb"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "aarch64eb"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - rv64ifdq"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "rv64ifdq"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - rv32ifdq"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "rv32ifdq"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - mips_o32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mips_o32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - mips_n32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mips_n32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - mips_64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mips_64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - mipsel_64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mipsel_64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - mipsel_n32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mipsel_n32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "inverse - apple_ppc_32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "apple_ppc_32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "inverse"
-},
-{ "name"           : "sha512 - sparc_64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "sparc_64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - sparc_32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "sparc_32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - x86_32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - x86_64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - x86_16"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_16"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - x86_16_huge"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_16_huge"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - x86_win32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_win32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - x86_win64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_win64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - armeb_eabi"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "armeb_eabi"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - arm_eabi"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "arm_eabi"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - aarch64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "aarch64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - aarch64eb"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "aarch64eb"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - rv64ifdq"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "rv64ifdq"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - rv32ifdq"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "rv32ifdq"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - mips_o32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mips_o32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - mips_n32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mips_n32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - mips_64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mips_64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - mipsel_64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mipsel_64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - mipsel_n32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mipsel_n32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "sha512 - apple_ppc_32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "apple_ppc_32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sha512"
-},
-{ "name"           : "hmac - sparc_64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "sparc_64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - sparc_32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "sparc_32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - x86_32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - x86_64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - x86_16"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_16"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - x86_16_huge"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_16_huge"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - x86_win32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_win32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - x86_win64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_win64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - armeb_eabi"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "armeb_eabi"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - arm_eabi"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "arm_eabi"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - aarch64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "aarch64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - aarch64eb"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "aarch64eb"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - rv64ifdq"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "rv64ifdq"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - rv32ifdq"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "rv32ifdq"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - mips_o32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mips_o32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - mips_n32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mips_n32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - mips_64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mips_64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - mipsel_64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mipsel_64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - mipsel_n32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mipsel_n32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "hmac - apple_ppc_32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "apple_ppc_32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "hmac"
-},
-{ "name"           : "sign_check_ed25519 - sparc_64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "sparc_64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - sparc_32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "sparc_32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - x86_32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - x86_64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - x86_16"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_16"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - x86_16_huge"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_16_huge"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - x86_win32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_win32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - x86_win64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "x86_win64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - armeb_eabi"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "armeb_eabi"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - arm_eabi"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "arm_eabi"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - aarch64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "aarch64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - aarch64eb"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "aarch64eb"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - rv64ifdq"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "rv64ifdq"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - rv32ifdq"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "rv32ifdq"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - mips_o32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mips_o32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - mips_n32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mips_n32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - mips_64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mips_64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - mipsel_64"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mipsel_64"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - mipsel_n32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "mipsel_n32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
-},
-{ "name"           : "sign_check_ed25519 - apple_ppc_32"
-, "files"          :
-  [ "src/monocypher.c"
-  , "src/optional/monocypher-ed25519.c"
-  , "tests/utils.c"
-  , "tests/tis-ci.c"
-  ]
-, "compilation_cmd": "-Isrc -Isrc/optional -Itests"
-, "machdep"        : "apple_ppc_32"
-, "raw_options"    : { "-no-results" : "true" }
-, "main"           : "sign_check_ed25519"
+, "main"           : "p_verify64"
 }
 ]