### Test cases for arithmetic mod 2^255 - 19. -*-conf-*- ###-------------------------------------------------------------------------- test add ## Some easy things, mostly to test loading and storing. x 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20 y 0000000000000000000000000000000000000000000000000000000000000000 z 0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20 x ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f y 0000000000000000000000000000000000000000000000000000000000000000 z ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f x edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f y 0000000000000000000000000000000000000000000000000000000000000000 z 0000000000000000000000000000000000000000000000000000000000000000 ## Random tests. x bb8cd45b6185ee8ca34c4d7560425fd5c2fc22871113c6427198e8f9439a8523 y 98f16cc5e44b7228b7f3b6ed91930d68bba5071157d19259c48034d2817e30d5 z 667e412146d160b55a400463f2d56c3d7ea22a9868e4589c35191dccc518b678 x 8ef938a7b07a668c234c2c5bb65115b8e2e22a3703cda51c70e7a56a075d4f34 y 1f3cd4bf4f768058c4de1aa5aeb90e227338e308c7a0a199050ca1c38d1e034c z c0350d6700f1e6e4e72a4700650b24da551b0e40ca6d47b675f3462e957b5200 x 8b2c4678fd4f8b7254eea925e4da8d472db7f97d349d1b2134ced884b747ea7d y 58dca7954f843b7e4dc56b048903e7728df66ef6824f29932b2f568c995ddf2c z f608ee0d4dd4c6f0a1b3152a6dde74babaad6874b7ec44b45ffd2e1151a5c92a x 9cd64f0cf439bccd224f7a789396b9f888998d1ba9759c93a5d6a27f45db0e67 y 12f724a127052612081e27e3915db9a540de9b64c566edc313914ad94424464e z c1cd74ad1b3fe2df2a6da15b25f4729ec97729806edc8957b967ed588aff5435 x 82e59fa9703b2557303665fe24e3d46259da974d78155f05c6b8891f92fc808d y 98a073ec62baf1354b681a3c78d62df1698ed5077dbe2bd68ba4a6e0233e3447 z 2d861396d3f5168d7b9e7f3a9db90254c3686d55f5d38adb515d3000b63ab554 x 686ceca221d0f4c6d98287e97c506085064e7b172672b88ee555dd0308bfd309 y 60adc3675be5e6c2921a74b5b8b24b0a26341a19567dae713a720786bc72df16 z c819b00a7db5db896c9dfb9e3503ac8f2c8295307cef660020c8e489c431b320 x a50a5b82d2451ed9a5844585712202a6dc0e0230501d57b8c00f4bd4771aed9e y 98d71b8b140aea02ad47d9b19e47d2a03257adc1d5c47611adc667652b78c87c z 63e2760de74f08dc52cc1e37106ad4460f66aff125e2cdc96dd6b239a392b51b x 1637e3eb4c5d173b8cba29bdb13b930f48ae0599e354819f8ae0cf70f0f7b61b y ffeef1767df70de7a4a75864c03935d7934c6cf5228b9c3000813ed0e55447e2 z 2826d562ca542522316282217275c8e6dbfa718e06e01dd08a610e41d64cfe7d x 9e8bf571c45bc5f37c9126e70498698978903b94d9c6712baef91894ab924fda y 480f68f8ee644bfb64e3fa514eaf16aea6368da6813802c4c3e6ce8f6540dfa3 z 0c9b5d6ab3c010efe1742139534780371fc7c83a5bff73ef71e0e72311d32e7e x df9bdbd478bd1ec1ff078cdc76f2a5fcdc52f0198ba412e0b5a10e664b175dad y 080bc47bd2fb2ba3be6a07a02162f76020479f2cc6469c6766df23acf9517896 z 0da79f504bb94a64be72937c98549d5dfd998f4651ebae471c8132124569d543 x b6dd223f5d8a3dc5dd6f7a0679173ff656303017a17f17f4086fd4ecd3a23020 y 560d827aad23c26fddbfd16c3514a9b518a4586d6e3c5739860743662b14f4b4 z 1feba4b90aaeff34bb2f4c73ae2be8ab6fd488840fbc6e2d8f761753ffb62455 x 1d59691a670c40143ca7f7e693389ab64a911b17a2fe4368fba9097b40864162 y cb42d3ba12a8b90ef1622ea09241d3157c515043040914356d6d99b95089fa07 z e89b3cd579b4f9222d0a2687267a6dccc6e26b5aa607589d6817a334910f3c6a x 82b48877e9c8c18edb52db3e1417d894e572a8edd84335d93c642158f2a926e0 y 93c6a39c1ef97f318c3b13bf8e77bea653b2eb130bdf43b00a0e0e40a362e819 z 287b2c1408c241c0678eeefda28e963b39259401e422798947722f98950c0f7a x a6137481c5b9b8bcb3c87f3868c5f812da71aeb21c5ce18a508773120ea4f659 y 812eacdc5a8eb2e8fde0c23a19c2e33466d754ab3109d28ff48fb41dab8066e2 z 4d42205e20486ba5b1a942738187dc474049035e4e65b31a45172830b9245d3c x 598fb4096a7054e317e66bc9633d56dfcaeabc31a7bbc9da13074b242edeca09 y 929b1bddd55c99b06b99a3ffbac5adc1d28823cb8354adcfea60b7a87fe32039 z eb2ad0e63fcded93837f0fc91e0304a19d73e0fc2a1077aafe6702cdadc1eb42 x c42183d915267e655409326b1b77a042d8918feefd75dd3d18551f398ef426e7 y e3729a6110686ffa57d1c69284a60fb36173148a89b1810d04614f03c8f90084 z cd941d3b268eed5facdaf8fd9f1db0f53905a47887275f4b1cb66e3c56ee276b x 67b8b7ea7e7f9f52d686f906589c919b293bff6d3127e7ac581dc1630af7bcc1 y 99d18d2190ef0da148b843c014fea3efea59f9adbb28fa38407191fcc24e029c z 268a450c0f6fadf31e3f3dc76c9a358b1495f81bed4fe1e5988e5260cd45bf5d x bc3422b79e01234fefd3637a19bfb2dd0a83bf2071b27bf5389918a50e579294 y b665dffe064aceffaabba94697cf27054d016427ebaf68858c5250cc5c1b770f z 859a01b6a54bf14e9a8f0dc1b08edae2578423485c62e47ac5eb68716b720924 x d419cbfd5514d9cffa1765b9f273fd7492000a3d110586ed0b8137760a2e808e y bcb52f423917c074464b2078d1c3f883fb793b02411b8b13c08266d17658a499 z b6cffa3f8f2b994441638531c437f6f88d7a453f52201101cc039e4781862428 x 2f7eb8051d16a52b797e2618881bd0857eb205bf97e581e09680f86308f7e082 y 9ceda63b29c3bfedbb6f3f0be2f3f2bd285bb9d21620c3edde69629b00b1c3cd z f16b5f4146d9641935ee65236a0fc343a70dbf91ae0545ce75ea5aff08a8a450 ###-------------------------------------------------------------------------- test sub x dfb53b4ff67c742728c564d50ae20e3e3617804478a95e511d37ff4dcf04fa3f y 9bc2006bb07dcf7bf0b461e7599e3c3cbfcdf6b6f41fc1db2219767ce9c43bcd z 1ef33ae445ffa4ab371003eeb043d2017749898d83899d75fa1d89d1e53fbe72 x 432ec65076c94af41e054a43f64fe4eecb23f50a303fd38e0172e4e846e67394 y 3642c84c5f5fcd5a0f3f2e37114beb8e7b614c39d354f1b32fe7e9cc918da5c8 z faebfd03176a7d990fc61b0ce504f95f50c2a8d15ceae1dad18afa1bb558ce4b x 1725a986c03d9d53346ab2064545ba90ab38191e19ded9ecc2f44d422ab04150 y 11a20caef0239e4ffb5ab2f7d3576633a0d4a08c78a02f35765fafff5398c48b z f3829cd8cf19ff03390f000f71ed535d0b647891a03daab74c959e42d6177d44 x ec5d5cdfc8183f9aa3d47634d16427c3a399e2166bfa4ddfecbc911e5f33ceba y 649f8e29c483765c4232c369fd0e50a0026eac306eb4bd6924e7b4d7d3f73e26 z 9bbecdb50495c83d61a2b3cad355d722a12b36e6fc459075c8d5dc468b3b8f14 x cc9927c331884612d8fab9a2262ad0db38f55e0cc587e45b972ea8b1f504450d y 30c5c9f8d5491a350051bbc6bb78e568d98061b43cb1797cd3d7454e8a7aa1bf z 76d45dca5b3e2cddd7a9fedb6ab1ea725f74fd5788d66adfc35662636b8aa34d x 662bc96da214e50f13e07a15b8e0b78f512c744a66975b2170ba28079ca7d03b y 84b072295dca0abef806ec5c1e594179dc5e9eb172c178af1902a42ea7a3728e z cf7a5644454ada511ad98eb89987761675cdd598f3d5e27156b884d8f4035e2d x ed6f947157492eccc5fb1d0542593d58a47e2d87355dc0378e65376163fcf457 y cb27e06c5ebf42a61caadd4fb222799772aaef31487bf61ac84c15f58af265d3 z 0f48b404f989eb25a95140b58f36c4c031d43d55ede1c91cc618226cd8098f04 x 33c2fc57d8ffc29e6d670cfc4e25b695320055cf443ade53f49f6c23c452f644 y 3814860ccbb4391894c107961170d3af1594988a7972b97d0fb2169631b216fa z d5ad764b0d4b8986d9a504663db5e2e51c6cbc44cbc724d6e4ed558d92a0df4a x d0fd0d5e73be5c534aa37645aecc49b202fadb30733f16d0de719a70bec2c751 y 910c7b4d317397cff70c91e5bf8ec42ba1700b0866adbbfe99b7fbb2c46c7093 z 2cf19210424bc5835296e55fee3d85866189d0280d925ad144ba9ebdf955573e x e0f8130d6b0125e824b254ed57edc59455a8a4704a3f14a4ae8dbf8721595468 y 4e4f69af6f85742068ad70225e8850c85aef3d3fb3ba3b52c2be979db4eb979d z 7fa9aa5dfb7bb0c7bc04e4caf96475ccfab866319784d851ecce27ea6c6dbc4a x 204d5f69ebab4597d2aa9295ecc2959480a2ab0b225674cc8a147cf7c1e59717 y 3abdd29c94819ec7507673bd5cc4fb267fcb17c1509abd5e462b46b012f815a8 z c08f8ccc562aa7cf81341fd88ffe996d01d7934ad1bbb66d44e93547afed816f x e2d75c74060aee615b6cfc815c8618f826b07c4987e10f20d27ff74eab3ac7d0 y 7a06b32d284b5faedb91dac8e94cb7f76c678bad81ed78ac4e75eb9edd8d11e9 z 55d1a946debe8eb37fda21b972396100ba48f19b05f49673830a0cb0cdacb567 x 8d50b0573b0bb945bf128e1a9a37c151e991581673cf6295db5a6223d428ac9d y 47ca477794fdf378f3486355b5348960ee957470b8c74d62199ac48b4478c4ca z 338668e0a60dc5cccbc92ac5e40238f1fafbe3a5ba071533c2c09d978fb0e752 x b66b49190a99456aaac5c33beaec423a3fa79a84df0f00122aed29151185ceef y 13c06f7941743bfa261845d99772fd0d5f1a8258aeda53b161505ed8bdca1bc8 z a3abd99fc8240a7083ad7e62527a452ce08c182c3135ac60c89ccb3c53bab227 x 44ac89bb8d4de1a8756b00401236ea4e316a2fe637f6e5f052576da70c29c4ea y 05dd39ac32768d899b80ed10279aa10d6316d60ab2d061e877dc5f21ce8e1140 z 52cf4f0f5bd7531fdaea122feb9b4841ce5359db85258408db7a0d863e9ab22a x ef0f6c7f56ff22260c66d583f79c7f581181d3a0f3167c93786bb6c89de4372c y be934afeffaf5e6755a92e6606ffd054627dbe1b18ad6ae543363a01da605512 z 317c2181564fc4beb6bca61df19dae03af031585db6911ae34357cc7c383e219 x 773e0db8f86c5182b5f51d10376f42cde275dac6a646ab1cab065760e045107e y 3f92ddafdfe67d357b4f9b61807bcb8b0f1f6c2dacba27902f48fc15a31db606 z 38ac2f081986d34c3aa682aeb6f37641d3566e99fa8b838c7bbe5a4a3d285a77 x 34860a848d0afb20e43f4a36b3c8941f5821864216da9cb3ce1a11f056565a3d y 9dfed86048acd45ec0009c1ba3b20a1ba645ec141070fd8ae41d25e159bbce9f z 84873123455e26c2233fae1a10168a04b2db992d066a9f28eafceb0efd9a8b1d x 854ba91672ae1b8f6c29395dcfa4f3514ed97dc2c9e1e419f926825619fac55b y 7a700653ad355caf17f89045ecfb3ee821194b54048e55d8eed41fea2b0a22ab z f8daa2c3c478bfdf5431a817e3a8b4692cc0326ec5538f410a52626cedefa330 x 0c66b3d8c3916940b70d381d232ba8aecfe27e3ae63fa6cbb287216708f224f0 y 477186656245c4083dff93a95c6e5deb707916e52cd74abbd522743c24c53088 z c5f42c73614ca5377a0ea473c6bc4ac35e696855b9685b10dd64ad2ae42cf467 ###-------------------------------------------------------------------------- test condswap x 14e55571df646a69a8280bf8dbf8e9afc15bf5558bb8b8236ebcaa19a96053bd y 8bef5021598a8175565e1f2b522ed1c4306fef4e0e973b50d3a03db1fcf11a43 m 0xffffffff xx 8bef5021598a8175565e1f2b522ed1c4306fef4e0e973b50d3a03db1fcf11a43 yy 27e55571df646a69a8280bf8dbf8e9afc15bf5558bb8b8236ebcaa19a960533d x 53d8c54864e18f8fc742b2cb996f1d7595122ca9c90de9f49485cf5a5ef05058 y 9aa95be655b6704a3dd482e8424f82d17443ae26ab41092fad95df9cac678787 m 0x00000000 xx 53d8c54864e18f8fc742b2cb996f1d7595122ca9c90de9f49485cf5a5ef05058 yy ada95be655b6704a3dd482e8424f82d17443ae26ab41092fad95df9cac678707 x 8c7b4ffbf50edf7edcf8d69b67796de38b56a5d4e3a9fb2201354cca0b1b7c57 y 856e707988c37e59fc6689d024b98bc01b71034484ba194ec7f45106267cb7f6 m 0xffffffff xx 986e707988c37e59fc6689d024b98bc01b71034484ba194ec7f45106267cb776 yy 8c7b4ffbf50edf7edcf8d69b67796de38b56a5d4e3a9fb2201354cca0b1b7c57 x c8cb24a636f6d8f2c045c8441b21314884a71d55c73d4ef7ad65620ac0d86616 y 02b47be53df7c8521d57589256e69b8bbeb1e838d84c090287c04a25d5c08e1a m 0x00000000 xx c8cb24a636f6d8f2c045c8441b21314884a71d55c73d4ef7ad65620ac0d86616 yy 02b47be53df7c8521d57589256e69b8bbeb1e838d84c090287c04a25d5c08e1a x 7d96f47612fb7135edfa71dd4526d8b4c944d74ddf004e1653d3af52485168b4 y a4e83162602d20cf71a279c1071038ecf94f38be11ad1191927b3f480d393e1d m 0x00000000 xx 9096f47612fb7135edfa71dd4526d8b4c944d74ddf004e1653d3af5248516834 yy a4e83162602d20cf71a279c1071038ecf94f38be11ad1191927b3f480d393e1d x c3a3d4462091b36bd6fd494e70c3166478be0a65bca7f7361246c52dda402981 y 62d0ae1abbe5cb909328f59e71330269e4f2b1d3c664e7f1f0780e0a4774c262 m 0xffffffff xx 62d0ae1abbe5cb909328f59e71330269e4f2b1d3c664e7f1f0780e0a4774c262 yy d6a3d4462091b36bd6fd494e70c3166478be0a65bca7f7361246c52dda402901 x 38c9b0d92be50270e29cc3181952e745cbf21c8d145ae0c0a6e59f25394ea59c y caf4896a2d3666200741d817ee1dac661652b9a1741ea966d5ed7cbc4c76217a m 0x00000000 xx 4bc9b0d92be50270e29cc3181952e745cbf21c8d145ae0c0a6e59f25394ea51c yy caf4896a2d3666200741d817ee1dac661652b9a1741ea966d5ed7cbc4c76217a x d637a72affa4112bbccd2878208ce34fae442e97175e1b39f43c00b14d312a2b y 76209f8b1f152ba7e1e6294f707831021eb2ac03872ed3774ab8fc5e6a0e864f m 0x00000000 xx d637a72affa4112bbccd2878208ce34fae442e97175e1b39f43c00b14d312a2b yy 76209f8b1f152ba7e1e6294f707831021eb2ac03872ed3774ab8fc5e6a0e864f x 12f3bd417fb3860b2a4fd04eb1c51c558a4c5a3dcc1ac457654a45a3cd45b0d4 y 46f802836c7bde099775f3fb4f5f6345364a7e158bae9e16c4c99aee0cfa5e42 m 0xffffffff xx 46f802836c7bde099775f3fb4f5f6345364a7e158bae9e16c4c99aee0cfa5e42 yy 25f3bd417fb3860b2a4fd04eb1c51c558a4c5a3dcc1ac457654a45a3cd45b054 x bf1809201f83a34cb07aa2e2372516631ba0513e600956e6702903e9084770c4 y 414bbc77d13d7b4e706acc07406e8d624f2485463f9948d81b72268c1e086a14 m 0xffffffff xx 414bbc77d13d7b4e706acc07406e8d624f2485463f9948d81b72268c1e086a14 yy d21809201f83a34cb07aa2e2372516631ba0513e600956e6702903e908477044 x bb8703f2ddaaaaa6ad19219684b1bde576b38bbe9065178b24c1bc55563fe525 y 1cb3ca7846a3c584b1bc05b25ee91d4779ab9ac64ecef0fcbaea8d311b55d618 m 0xffffffff xx 1cb3ca7846a3c584b1bc05b25ee91d4779ab9ac64ecef0fcbaea8d311b55d618 yy bb8703f2ddaaaaa6ad19219684b1bde576b38bbe9065178b24c1bc55563fe525 x a07c7110c32e362864a42cd2f371ff420bfd442d291cc15ec079d642b5c85bdf y 497fa7867fcd0617c4cd765aa6f46b89390744b5b57d11ab732153e075fcb607 m 0xffffffff xx 497fa7867fcd0617c4cd765aa6f46b89390744b5b57d11ab732153e075fcb607 yy b37c7110c32e362864a42cd2f371ff420bfd442d291cc15ec079d642b5c85b5f x 10fddb7f48015b394512257da026938b67f65dd0a84dace51417d68da003a913 y ebd6706b7cd2ee2d97848ee1adaa990d8ddbfad48e43f51d7ef843fa7597410c m 0xffffffff xx ebd6706b7cd2ee2d97848ee1adaa990d8ddbfad48e43f51d7ef843fa7597410c yy 10fddb7f48015b394512257da026938b67f65dd0a84dace51417d68da003a913 x 1dd835e2173b936a91da37b3aa11e848e4497964a9a78ea929a19105eb981a24 y 3e6f1ab7d5c460dfb7ad1926c60b64a8dd48ed0115b0655a6d8619666b8c8dde m 0xffffffff xx 516f1ab7d5c460dfb7ad1926c60b64a8dd48ed0115b0655a6d8619666b8c8d5e yy 1dd835e2173b936a91da37b3aa11e848e4497964a9a78ea929a19105eb981a24 x c4541b1380e796a333d88affdccb4d2bc68bc5a1b3890ef2fc1a2c38dbcac725 y 6f6338ad8dc0562bc02e307743b81013ffff6c135fdf8603f9956b7f94eb55fa m 0xffffffff xx 826338ad8dc0562bc02e307743b81013ffff6c135fdf8603f9956b7f94eb557a yy c4541b1380e796a333d88affdccb4d2bc68bc5a1b3890ef2fc1a2c38dbcac725 x d71f16494f041d1547e5dd9ed539e6b9c1506cebb66f6424e6c7aaf6d0ace080 y 78c1e6cc0b6f64e161def3b2ede7465f21f6afe61299e9a3c52b1a7a080b9b26 m 0x00000000 xx ea1f16494f041d1547e5dd9ed539e6b9c1506cebb66f6424e6c7aaf6d0ace000 yy 78c1e6cc0b6f64e161def3b2ede7465f21f6afe61299e9a3c52b1a7a080b9b26 x 4d90838ab9cc0a79f4e2aa6a860bf8cfbce5f834aab428d4a06f8ef4a2da582a y 53124b302e7675ea5784e2e7d9fdecb38d9c8be158312dd81c51757bafb79b42 m 0x00000000 xx 4d90838ab9cc0a79f4e2aa6a860bf8cfbce5f834aab428d4a06f8ef4a2da582a yy 53124b302e7675ea5784e2e7d9fdecb38d9c8be158312dd81c51757bafb79b42 x c8e764092ea695b0dd8f0ecbca5a4e02096c821b0f5cd57de8e3e50d8b2a40db y db7fb38dfede5259a584dbcc697f259ce380110636e301acb308bf687449110e m 0x00000000 xx dbe764092ea695b0dd8f0ecbca5a4e02096c821b0f5cd57de8e3e50d8b2a405b yy db7fb38dfede5259a584dbcc697f259ce380110636e301acb308bf687449110e x 34cf8e55b3d2494362a87a24907fbdab61cb4f452ef5a889a1aa40a22be6d976 y 679c6d6f6dca1b71bb098e3854c63ffb8ddb76f1a1cb246ce956fd71d6477c20 m 0x00000000 xx 34cf8e55b3d2494362a87a24907fbdab61cb4f452ef5a889a1aa40a22be6d976 yy 679c6d6f6dca1b71bb098e3854c63ffb8ddb76f1a1cb246ce956fd71d6477c20 x 9638ab322ced065068f98597cc61fc2bd846b5849dc39a881209b8efcbc95eec y 32922ff2b62e968417225b765f2787387c8a42fcab1dbec3815298f53813a8cd m 0xffffffff xx 45922ff2b62e968417225b765f2787387c8a42fcab1dbec3815298f53813a84d yy a938ab322ced065068f98597cc61fc2bd846b5849dc39a881209b8efcbc95e6c ###-------------------------------------------------------------------------- test mulconst x 8d517a8804d934ae93388e1d59748c3c22866d7be6cec58a357ec43f6dd029db a -319312 z 3f2fea85c9195f2246f4f6fd2e8d5de95c5065edbea45a174bc0d1ef3db4aa54 x 1b5d6a6c9cdd0dabd126e5f5ee2513f3d27c56dd3aad89c882fe9fd2d38a93b9 a 499342 z dd310555966ebe7f409dcce2933f91af8e14c8909f78e4f113606789dd7f504b x 9e03b44e93743e0cf5768f65bd3c0f255e001de330d5e1a863d6e4dbb11748a9 a -284189 z 6e8c7f8d0f1476cf2603f5702fe8e8bba5c01e86b6e008ac72987fdd6721183c x 9cc65e302736aab9bf02dd451c216ac3dd2066af299d7f6bb361eb3b36777f74 a -15738 z 8c067e5dccdafaf56301050be17b8895c07e7f13572bbc5ce1af8b5be043d91b x 7f36ff91ed165c6ee44aca261dc09e3e124c2ed8167064c20d9b84fa226e2555 a 423857 z dc7415db1ab5e5a5658d089ced49bf97718bccc55e2f15b83a28157cbe47e559 x e8852c80db69c7e55d476ed00ca7c0735052f7f72f81198a57236feb89a5903c a -140934 z 4923ee40bb01314c2fe9f2f87d0743823311b2d9265219eb7a6de5fdfd09a308 x 505ef65d294b77e260757bc867199c4b0922b5022dfd6a1fe7478ea27ec102c5 a -307893 z b14d72c991a0bfc22b1b95934bbe589b6a4a1f9c76a89d7012f8cb03379a8844 x e410c260dc8c1838f3e9658ae586425039b373ee2ab88c750a51853b012af0af a 471420 z 42ae337a920ee1b83768cbf0750f524cf1f9e98b99f195e869785f90a2356756 x e2d181914b54175190462d11402717f42efa37967b2fe0bc4433fd4c862fd646 a 492178 z 4c6e1ba6896d2d661fbf99b77f63e3095d3341f04bf258dc3e4f51e39c68f576 x 9cdda0d7da106ef5cfb34774f48308b64953e92869dab0ba804927080509d8a2 a -312149 z 4e75e56793563268480efaf6232ad702bc5aef6246bd44e3499ff437810b523b x 9dac4442858b8dcc324464911e6f23ed046e42612e8105dc3aa2b9eccea15dc8 a -88818 z ce52a0897600a05383df0a0b99a451f0d5568146b4323392fc164153715ecb0a x c9f92ceffa7027ffa71e64b714c36b28a6a18c3608f8170d11d51acbee3c62ba a -259755 z 89582517069925572219b2eec2a25029e8e1c78772ca8c50bf23220d02740763 x 8f8bcf28f4920465680c8e15befba4ebd23c1e27b71c224c98461f69caf76eb1 a -430350 z e96b93f0aab6ca70f7d2c1121110efc320aff34e1ec693d7bf17bce1a756d622 x 6f4d413a27388fe84a2585e809927bd470ba1b0dc749ae6e2dfa100617a5a7db a 11486 z 1cf1f5bd0770d949ee36df858e5842805d121722de30d2ef6bc2b82d021fc14b x e1d05a072d1ab70d895969271f44b7c9d1654171836cf234724d2f90434c04e6 a 8057 z e32b3c792cd3b6a770eaa2627ff8de8895873d73d734b961646fbce0643a443d x d8564ee3ff02c80f0bf3e9cdfce42cd8ac1012ad8ea74f8c0f5754b5775a8de5 a -304373 z 884266ea43a6a9b72d113b437dae63c664ef53884c893212fd864412f4e5e457 x bf66769ee0cf873764524e760ee654e8d5090aa774f2e96144d945f8da37af19 a -159091 z d7438999b3bdb99a46e2f3dc8492cbaf52b0a19c651cc382c384940861bccb6b x 72b7d02b1fe23adea87696864c0a9f0466db85e39db397f0eb428a50e277aa2a a -521654 z a611bd153336e178a7f3d912adc2fb39b342132458faeedbdb0a35973efae23e x ff5c39d4b7fff86810a7a3b14a58bc01e6ecf062116adaa78dac0d1bd3f6039b a -140759 z eb9e32bf7d027cda198048da50aa79a11bc99f3b37a219a2104c78f4affb584f x a6f1f7f30e3f9e5467f180f92d2c94165fd9427d0c7d383b9077ca9a7e50dac5 a -317637 z 56a32847c50bc9609db9796e1650fbe97524aacea746d3cf285f0f2fced01a49 ###-------------------------------------------------------------------------- test mul ## Easy multiplication. x 0500000c00003800006000004000000009000006000048000090000040000000 y 070000180000200000e00000800200000400000c000030000090000080020000 z de200094610090df0020fe0180270700650d00dc2a00f84100e0340040570000 ## Random tests. x adcc6f10734dae2273304a6aa493ee8f96e05f2402341c0d997dce58ea57ff6f y df3c8d5bb6380fa278d4ff2994c7865bcc146596d3c3126242f0dc3509b57449 z 5ee2615b75a40367ced4ed4bf1578d13e7afa4d415f38f802b7e7b374365b627 x 054bc4d5e9b78b068fd20645eeb1f03aef2e89a1f56cb50e5f1170a86529526a y f976ffa1d1b4a33d0fd866528897cea3eaffdc75e31aa65450a62ff765fe7985 z 0210280745f6c29a04433f07f880bfd2eddd758d82996e79c65de817c30e7309 x e361c6fedbbe081b7cd683d23a2bf0ac889806be7230b56d9398959713a300ec y c8121e53d78c2e9ba2ba7f51b7cb15cec970a63b4a642ac470aa1f2145f07bd0 z b48bb1c7ddd26cd9e5a2cb73bb3885dbe4a47e03886d4dfd59e5729d544d566a x 463158a2077f931567d45e19deb4454a2ae77045db70a2c078e160ebdb74fd94 y 3f311e3f8d225016448fbce3fbfbe84002736e3b0d5a90f57d705ede8706008f z 44cd97e25c20ae2fe2ef4f2630981a1fe54c79ebd904bc40e39d9fa615ffa76c x 1c73fca52556e01204d4b957a01d1049f2247c8666d90c1d3703cff16a38c8bf y e9afa0cc85577ec7eb1ac66d87260d5f3659936ff88cde8bd1c3fa1d499e8bcb z 0979a8baf734c86a4f57ae400b7790c4985fba3088cb1b265dfc7a66c794121b x 6e2bab74e427b1a44f0cb181f9dedd6fed43cfd395d3708c4ae8fd2137215eb6 y ef400834f2dad8763a1a5a58a37d1b36a78873860e4dac808d3166f13724942c z 0d481adbce7bd82ebc5a3e5ed7a492e78a032ebf211a5bd2371c528c77954936 x cb3575b41d9521da5c85c6438af14903a8d6d9c3857aa8e101e5295fb277de7b y 9f76715d2ae3c8ca182406553d3481fc36d67727ca2d51f5db37940aa3208d8d z 0b2fa619265bd424b9e20d38bf4552ad63de8ab552166080d099edea5fbadf7f x abd66cf3b20dc4c5a866f1a3b965f794a726f96dd00f576d16ead66eea3a1177 y 97f70fc92e0cda0e010f2a9d7608c33db954af18bc18ad55bf66e7d91ae31abd z dcbb2cf34274971ef030827865b093a00761de3da90e46f00e18d0fd934a2b7f x 3b3c96ff9be8e17e0a0d3979ea5e5623fff5fa18914151abf79fe66639beef06 y 1d29c361677805f1dd2b839e025e56208a10c0b8d9f2a8c490b0a892c0e27080 z 0050873016bc67023d0c479fffa56a5a70512f9864d00b0a3e951f1e85c8b412 x b263d4a71b6d963e0a972819e5e5805b9522f142d3c0ff2738c51cce31e9f0d5 y 64f3fbcff2195c297292df3e1cf900aae457e09864c5a6248ea21ef8efd557d9 z 7e6f6f511cbf2743c0fc1c6431243908606cb257d20f8a8a0885e6ecd000e811 x 0df0497e1e01dbcc4a48d4865127d9cc31a9a0a56e90cc31619e65c1521b2369 y 9277f0c6a5bcd7c7ed8dcf7182795f67a12e856b126d09966689834c43aada47 z 798d270ae34aa2452694b4ff74049a6a5169d71c85bd1a9ac59625e9298cdf1b x 1dc64bef2189eb5349f5a8983c1854a40141a5390ea4bf8535a15aa71d0289b7 y fb59dc9b08f9163881b10020ce040da296ed8c1a9a935c27ca0047a4d7f6342b z 9fc23104cefd3014a469e6d3a0631338eaf91e24994ecd50bfc0b4547317317e x 975b108909e87803af98af9425d2a982865b6cc9c144985b32fe5bb842702e24 y a69e9130dc40be50e827dc50dac05bf900946cf67ec35f1bb1705001314e4fcb z 12d042e50d0cff7b43a5ede61ce827a99619bf84995d488fe9eb56a8de769164 x 39c0db5a4b161c368b0f71c7e8ef97dddc444e4a33181e0743519f2a879ae04f y d3cc45ff509ed45998bd5f218408ad51f7457b35e8ad69d5431f174047d7c6e5 z 96b877604f52782ff2a5b1a12d7db642371ca993b648c4971cbf593213503219 x f8c6715e4a327cbbdbb08d74121619abc73dc421d7267029e39b50c1510d2045 y 63870a83cad4c1c64195ae7b92f3b19c830f35f1a3186815565d846c787c7ffc z 286a0b8c6681a7b79a5f85426fb60819b7bd349e93c1e11943c41c8dfd57d00f x 49c9bcaf5434b8205a348df290a96da27df084f34047efbf91cf544057a50bde y 54269f8b23c05b94c9c1cd74eae88d9227af12a6fb337548eb93c2a88a75a8a5 z 1e3dcab5d7361f00e70198b52e8fb6d1fba74abd79d99480527f6711b21b833b x c7212b43ff0d10fc52d3a2a7e15bb9cf53856f7ce33b79df89e1d13f95a94511 y 5213ec20bd054491a5485f665075835da609ad4f3dc005744f061480862ee602 z e136339fa01067c6c0823a7ebe2f84d917600e244a9883191900bb95a3b59764 x a15d62c6308448f1f70602f43be1825696d228eb170bed55322a21d2b1afa915 y 58afe65bc8adbe22807026aa1b0d68af330bca268fdc054406aa41c820960e71 z 996c597e0a024c2ff0ffe289d8c7270e4ea1d38e294d7210eddeb2c0725a1305 x ea233ae033ca93034bc8fd8ea3c0625bbb15b00265264fdd61f62cc808b505fe y 09e12ef9b3426991f7119c2e8349278342ed0072317c4ec7ab24561b61396b39 z 1fd72191fe9f00b0cca6a635d14904bd0c1e0ccd1275e84ad0b7bde134866e2a x fe1fd3da05524af4ccd538f1d2ede09582101fc2a47c2e63758a546bed6cc5ec y 523346406ef3df6ac9a455d0d2e7f732ad01c88245b07a888cc21c40fce11a76 z de6cac8fdc878d9c4eda6b78f8b629ecf776980e49fed56bab936fc03924f44e ###-------------------------------------------------------------------------- test sqr x 4dc87ad85abe8938634492ce2ea10bf48dc4aa2fa37a6a0fde3e5a01e90dde2b z 346297c756d77b8ea312ddc455223f4577aea2a2e8d944cb24adb487de143b46 x a33aed91165d7fd13a543760d3915c1b5d411a21895cde81b2f3640b87550cc9 z f923e49da9d5f45e23a782f911fac1a6c2e67cbbc7b03ee4675a0c5fbec03641 x a1406e453db6c92ef808295d1919c5bb2491c0ce6d5326d276c57e57943e0acc z 18425bbd92149991c4545e65495af0e6372289e9a32649c127122243204bdd73 x 70a56b8484234ed002a68c8d535a4e527a61c360f7d4ee5b4970c8ace1e12de0 z bed1c435139f151d0650577e03c32428f63cdb7bc1920110b5fdbb27f08cb200 x 86c3236a6194f1585b4dbeb09d0247fb7d3ae08063ccf9fc4fde70fc23735710 z 9b6509acadd5d31c4c843e91cec78be00aec4fdf7d86132965bd6f62f078f711 x 0e5e83c51a8c091673425c38785e0aa1d74c7261a035a891bf734cca8c8a3db3 z 4efe5029e99438835a8a45d0180b8de357eac82ba9dd8e127baac0d758dfca1d x 31c39a5afc33f8a8d3c570b9dc5389bea6fdaaeeb44cd7524f6c445b9583a34c z 359b7c8791cc87aa8b3c799c9d4d7e1f4062a4f64436d8c01071597e8c262127 x 5a06203c15d6c1db6ea0fcf468a1e3f09d68c4a0f64c3d7e30e70290545e708e z 07f8b435ea322bedf613458b1eb420f1d6bc96741d69695899bd40f7eca6f72a x b1973433646474167b791b326827641260fb33d6a2c96d4e963a6b091f824505 z 52a62396dbbceead62912f8adfed2707fc25edb51aac19b2a274c246f1209f26 x 96b157d71e107168fac206dd63007f10f4ae1225b0761c470ee18ecdb4fff20b z 84ba2a84b156437cdcc39ecc8b1ad01bba934d8dfb7d504b9f2442db0ad01167 x 6167d77675e19785960c28df551b458e41dfd0dfe5e56e785b7367997d5eb0a6 z 79a558436af4310d3eaee93f9a7cab72bd817fdf59d267e2c530ba8d667a005c x fb4b2ab08db932ce10dd62639aabbb266f9ce775fb5a5e0875864f18a3ee506c z a6013661f2f0ab875739836039bff6bff4c993aefdda43dccecf4c404b9a612a x ea26bcf0bfc3e15d4df7ddbcac8b5b9e9a7215d74196d77c9e0524e861c6aeb4 z 113e06861e3d338618695f4713464cea536c8019da77ff0dd9946f3b860df062 x b67b1ffffec757ef147e86cf60898c5dac515f080f43f4e120017caab4eee5ee z 7d9748a1ff6ca9cdebeb3dd6668522767afb9ebf1c680fe7fb3f5848f7222036 x c122016f17f12e53f9ac031719fe428c826217b2b757ae44f2f33d1b8b1bb553 z dc068d032b97c98eea6dd6c8bc42e9a0a6250c81a36a8f64615489e191287c72 x 1266ff0654c08e6183cd6c3cc760cc5c88d1f49b918f2f8f587b3edd4adea513 z f07f17fadb2e2dbd282d296fe5a15cc5c2baf6b45f5fd5dc4692f252039bc862 x 4c4dd9c6e46fb2c096388583f2a0c969245452b23f16ea43e15064c45357ccef z 5127fd4415a84115997b8b3ebe88a590efde9f8b53a43e86b1a4d60782c91025 x 095d149c2616212e5f770f133e719d285a8bc888414271296684e732feb5473f z d8038bee551cac14d1c610bbc0960d943b01526072c589bc913ab51fd47bc848 x ad55f9f916d62bb13ceb1461b99e82d76b860c084ca408dd4a18f154b907754a z e5c86ee6350c9ab736229f3f53e2ab852641bb8a62fdda609444df377e9ca04a x 2e4976f45acc671e38add93aa6a89669cdc9874975879b3134dd37c633c9eb14 z c6513f1a11346d33b05ad65eca13f11125cf70bdcdd6e666a8a7b9c5b6098429 ###-------------------------------------------------------------------------- test inv x 344ff33a2bc801f861bd13575797da35352c8164808d27f51ea7ca46931b2b1f z 07f678dfeef071b038d692bf825cb4e75bc1934bd3a6e3dfea99e78bdaeecf3a x 670097e2fbbecf6516e949d98f6d722d3f732c33bfb4e62512f9d28d94546b64 z b2f5cbcd7d8c996ed33a813b1aa39c36f5826b436867bd89b4ce43a156c1e96b x 234f3bd8760cdc8ae7fac9457da418cd082e42906ffe59a13e52185a7845e61c z 7488ff9231e4819684148e16ebc25440732ffe7d211eb3d3263db1af9f1d0513 x 22a39a35b1cabc6dfecd1b898593070f0c81bbd04b4b20f43a9c7c14b5dfe967 z 892024fdbc8937b9b3aef794f57b8ed8517510b6de3f6088987b1310c1dc7932 x d850c118c69198268826d05650958c6bed55b181090cf1c96493ecc4635a913f z 7aeae1b0dc5211f374872e78da8f225325f3f33f9c42bfdeff25d425dff7710f x 33ccdc0e39f7cd0a61782c87ac089eb7bbcabce4dd222f05088d3d6332efe959 z 668f87e23239e965c80740d4daa9c913609388f291c11f950684f45e689a061d x 7c06f93b2f66001c74073b8ba7536049738e89b0a0d859a8a73710de3fadcf79 z 52df0aa24bb4a7474e6ed9852ba542c1f4c5219372a7b5d60988890e2955491e x 9a0ce9ff4026bd58abcf8a128dbc55a19c446005834a143634452821d5f9f0ee z 79eaa93b6287705c0ba564c31bab1854c7f4354845be065c4bf94d38a7a8b421 x a13a127490bd3443fdba99baf61d113f3aadd6966c9732cd16348f9fbed32e0e z 67290b25e6bd7328dd804309a6203c02a75657f593c7e66e48c9192524e5b87b x 35f7ac3eaa36c4ed338388fe7eda61cf237eff6ddc0847cb0c95255bbaef8ddc z 4950601d2cfe75eb9c4524e2f40f404fe82d0014c916dc43d9416cd2e274992d x 8a058593035986da3a19e63dacaf40fb3db4cf382205fc4e4802e0ff0c61c8d6 z 6a23b743dc2fa4a4132780cf6edfed4c219760f3b31343b08710ea18d2c0fc43 x a10d03234e700ec92270b6105fdb787d8edd3f960fdd78ea2e169f49dc708d45 z 101dad1720604d0b093831baaa97fd0701ce773b9c1be1db0403533ad4376c0a x 52d3b9e030a5ed574f7f9489c47e73f78ef88a39b570045f9ef73c9a3e65f425 z 83da3e088dbc9a3cbe06496c5a52edc8d7abcbb8a0f839361762137b119d961a x 9928b5f14ec80a036479d7b08c128e601db880daebef36adde6fbd1f50f82629 z 8dcaa9a2439b77cbe44928ac2877e09755c505f58df4d0ffb9b23fc256b12779 x 5a956523956f8ace6166ea6cb3c7421f8d1142d26084a81d615f00d578e03448 z 658a3ee24ec5b5f1d2d12614e535247c9f2f259131b00f654e09b4517c63ea09 x 157492cd38a07802351ca0d1a5615d5c5f254692acce930fb6be351e9a52f088 z 32fec1eab85ddf8d27a437876e7f5a07f012b02e7971869811c3c31230204164 x 2d07c109c332847567621ef4338e149b99c5bc3bf6e50943695da7fed5d8141e z a81472d28a8235bff43ad5cc012d52e95ece3dbc5ba2962dc54cf9e7f81bee04 x 7e172f6c03415e83d4671e0191151d49e5257651ba73848254e68fad0a095c50 z 1a8efdc57ae9d39ffa64afbc5d2dc1f25a29d365ac3dee0d8529977c14aa4415 x 1934546e37b0bac80319fa7f2f86c18e83de8da830b9d0b5019c26768974eda4 z ffe55479771f20518d8fc6491055368b5dcce9b4e193d19897f1e116b9cdf946 x 90324ccfe0e34e9b08db1862be3bc17798a8581ee097be76545e3bf9d586a2e6 z 0f5ccf4920d617c9b4f7fe6e2c9e95e89b5516555d5e3f5f9900485451d7425f ###-------------------------------------------------------------------------- test xdh ## These are from Daniel J. Bernstein, `Cryptography in NaCl', 2009-03-10, ## https://cr.yp.to/highspeed/naclcrypto-20090310.pdf k 77076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c2a X 0900000000000000000000000000000000000000000000000000000000000000 Z 8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a k 5dab087e624a8a4b79e17f8b83800ee66f3bb1292618b6fd1c2f8b27ff88e0eb X 0900000000000000000000000000000000000000000000000000000000000000 Z de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4f k 77076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c2a X de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4f Z 4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742 k 5dab087e624a8a4b79e17f8b83800ee66f3bb1292618b6fd1c2f8b27ff88e0eb X 8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a Z 4a5d9d5ba4ce2de1728e3bf480350f25e07e21c947d19e3376f09b3c1e161742 ## These tests are from RFC7748. k a546e36bf0527c9d3b16154b82465edd62144c0ac1fc5a18506a2244ba449ac4 X e6db6867583030db3594c1a424b15f7c726624ec26b3353b10a903a6d0ab1c4c Z c3da55379de9c6908e94ea4df28d084f32eccf03491c71f754b4075577a28552 k 4b66e9d4d1b4673c5ad22691957d6af5c11b6421e0ea01d42ca4169e7918ba0d X e5210f12786811d3f4b7959d0538ae2c31dbe7106fc03c3efc4cd549c715a493 Z 95cbde9476e8907d7aade45cb4b873f88b595a68799fa152e6f8f7647aac7957 ###-------------------------------------------------------------------------- test xdh-mct ## These tests are from RFC7748. k 0900000000000000000000000000000000000000000000000000000000000000 X 0900000000000000000000000000000000000000000000000000000000000000 n 1 Z 422c8e7a6227d7bca1350b3e2bb7279f7897b87bb6854b783c60e80311ae3079 k 0900000000000000000000000000000000000000000000000000000000000000 X 0900000000000000000000000000000000000000000000000000000000000000 n 1000 Z 684cf59ba83309552800ef566f2f4d3c1c3887c49360e3875f2eb94d99532c51 ## This one takes aaaaages. ##k 0900000000000000000000000000000000000000000000000000000000000000 ##X 0900000000000000000000000000000000000000000000000000000000000000 ##n 1000000 ##Z 7c3911e0ab2586fd864497297e575e6f3bc601c0883c30df5f4dd2d24f665424