Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -572,10 +572,10 @@ move-abstract-interpreter = { path = "external-crates/move/crates/move-abstract-
move-abstract-stack = { path = "external-crates/move/crates/move-abstract-stack" }
move-analyzer = { path = "external-crates/move/crates/move-analyzer" }

fastcrypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "b1ff61a2fcf20f689849ae270c93dc849c486d80" }
fastcrypto-tbls = { git = "https://github.com/MystenLabs/fastcrypto", rev = "b1ff61a2fcf20f689849ae270c93dc849c486d80" }
fastcrypto-zkp = { git = "https://github.com/MystenLabs/fastcrypto", rev = "b1ff61a2fcf20f689849ae270c93dc849c486d80", package = "fastcrypto-zkp" }
fastcrypto-vdf = { git = "https://github.com/MystenLabs/fastcrypto", rev = "b1ff61a2fcf20f689849ae270c93dc849c486d80", features = [
fastcrypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "3366c26a746b72707572c4f3f05915e20d5c16c2" }
fastcrypto-tbls = { git = "https://github.com/MystenLabs/fastcrypto", rev = "3366c26a746b72707572c4f3f05915e20d5c16c2" }
fastcrypto-zkp = { git = "https://github.com/MystenLabs/fastcrypto", rev = "3366c26a746b72707572c4f3f05915e20d5c16c2", package = "fastcrypto-zkp" }
fastcrypto-vdf = { git = "https://github.com/MystenLabs/fastcrypto", rev = "3366c26a746b72707572c4f3f05915e20d5c16c2", features = [
"experimental",
] }
passkey-types = { version = "0.2.0" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ module sui::vdf_tests {
#[test]
fun test_hash_to_input() {
let seed = b"seed";
let expected = x"bb0102ed9d7af1f184a7542c36ae40e7bf3cd3953dfdc1aab84c7137f33614a87a443be6b57eb28e33f661bbd7088c6fae16a4550997d05a1631ebf5ec886440ac82cdfbff978efe1d53c672e25374627a2e9cc15baaf19042a83044099ce13612ff2b0926fe2185a3920b34e607d580a8474c3ec6f3961303c76babfcbde4a2df5243784048649edd19cdd52fd0cfe5b304c6da8240e04d054c97fa6fe0799e711197d7b31c4a2f2e3984ae9cd4c6ea20e2190cec9ef8d32f3d03034fe90209d296ce18b5e8203ccbcfc05897dbede2cd84ebfe493a8d4f1f5f07e75a0dd61920dd8bb5fbca1db92f0d99572010f66034155c667dd9d2cb8ffece37cf3bfcfb712654cf99b07042903be494570a66cb9357ea33b4332e2117256cbbb9cab3a3c44b402c13b672f3e226073b96f604863b247f801acc9efb8d613fee7a648e0e3b5c4da791d8bdf5d097c254ed7ed885af0ab78535d0aedde4ad5817a5230372e64080caa56ada2debbf6ed8131c939b66d02fc49e3f188156ac49a88298fae6ad2f4efa068f613d522a4efacd5aa3dc84046684fa337f38238d51ec92a46aab01d00b95444f20f544d6fc38af9b6bd63a0654ba98aa7480c52a833a47c3466ff518c78717d7f72b04889e0ce64bff5d558291a0aaad673fe6958d5a4aadfefaa16eea8a4407a0930dd86c44d1ad97b464064bc8d17499d9248e729a75d8469223700f080ddafb981af5a12f08f5f2f09c96d69d4a17fb7bcce368fa4b88351db270186806cb75c79704083ccd2eae77a02efcd283a47f715ff24264c89c1a9f01fbcdb5c551f7607a20300cc85b41d131687632fbebf93226eb91d8136be471824f90d17e4ed4c0702c85345814b4095a0a7227d4836bfd5b284ffde26e7d03caf588c2f371255fbe439b1094d1dd4c7e0dadb53a546c6d406e2d106277cd22139aa71c91411537312fa216ea90d790d6c230ee7a9b743f559a2287acd1fd2b8dec38549bd625c33616ac96ef76eb12b327b4c49a87b4a46134c4e3829eaf0f1821847fdf9edf4c6d23b8a9ee7b6d95a98ba05e6dcaa921326a79b3d10fb2e407d095191c9f8afc2e64810109ff2bc1e34f999f6faac05c2b6295ee4799d0ce7b268c6bac3d3285116ed0b821d9463d05cb349ac309223123e176ec8f6898ef420e87e74aaabd3c247b2312ff7f49e90054af6f871c7e37c61986e3572ff201bc8b205f0924897b206ca9613216daa12fbbda5c668ae8eb26e717a5c813c965cc906bea52ab281c240b6d4bb65e097e7cc924bbdcc6efbd8e8c4366c65989c6f5ab2d5f1d1fe5ee7865e9f6d468d63d7f548a4e02507dbd18fefa777c5163c6d15bc36979de551d8cdc19601ee861c674bafa5f62bc203eea1c50e7c25c3db98063a0774c7c2dbfdcae651d6484f62c3970085fe8cd841d44c857edae7e5e413008060fe384df6773d4edbc211cccf33e0cd63dac177dc435395452b187d634d6581a5db81998ef64d43c3b64d7909a79abfc70981bc7bda06a3caf2273123568";
let expected = x"22267333dc4015f6f9bac320d7415760b2bb130a096d9c16b85d1c6e930a40df14e04f33ff121d2d7f0adad584d6f21790d800415a9b6a5e815270bfa2ab4aa0f40e5988eaaca821b007f863bbae63ffcdc9896fd05c65df02012b47d1d661485d078eb6020a3e6c85d24c9a11dc53b37582344898550a5bae1364c3f79a63f06c877e35190e020e23c668bd1a1e42c293b96d7f139d039c5cbf9792c379758c705b5cd282f9b3bac964f564ae7520dfa7465195428be86aec06e9d350a56cb15c85aad39bcf309fd7fc31a79992ecb842ddba1ad67cd01305d1b2d913877d3557844a21394bac443a329ba18b05f0816aa99f67c6ec88e9027d4978ba0d0e1d94a1d7aa3739443a8d04ca073c368416fdfa9d7e01e6d26a0f9442d5389a923ea9e740baf94c98d8d3fffa15c5cd440be43c9b61a684767798bcf87dcce303734df7491f4b77f4218c20a2b2e3b9dac7971ffdb83ea5141a57885e3be2f3425a21fd6eb2eded45f555fa03797662824e4eeb447c8f90ba9e8a02af9a1911c2e113632f36d42b7530b2694ff0160fada57cfde663c0dc34ab20af0e709656a09bfe8c8cb075b3d7afb6eb131a6fa1b1828fa7ae03c21f247e";
let actual = hash_to_input(&seed);
assert!(actual == expected, 0);

Expand All @@ -22,15 +22,15 @@ module sui::vdf_tests {
fun test_vdf_verify() {
let input_seed = x"2ef29e01809053dcfc89e7acad77e13c2bf03b5a9a0bbfea555a1423f1f1ae23";
let input_bytes = hash_to_input(&input_seed);
let input_bytes_expected = x"bc01009ed67199c633da0faa75a8ed0ff5c3ae7c278c79aad85953cdf86d57101b1ee941e5239b7d614e5b16eac269c460f16d57a12c75b52c48fac643a1c4918fab86805fe08fcd6b38093a17143cca7550fd018b8bc6871fb441b406bec7a7f3a61c3b2a5aa9daca5f9a6fa474b270688de643323de1acc8073a3418bc1681a614c1abb5fa56b61a7d6df4260547c9f613c5f0dbd7cb91a478ac94b1cce6b1f4784dc161ec3c85bf02cf99fd460b0b25a44d1990dacd1fe7a43b797611ea0210645fef3905f7e1accf97bd3b868a8a99d4a1a546e5a55e20f343fc2724829f1770591b50a73c93ec9b8c01ce1fa6b84eddd5a7ddd077110e21b8e058bf2fed2592a5449db177ec0e32595b20bda5779c2f346b01df8c0d277d9d3a7fe0a04e67b210be60334efdadb7abc5ac001b71509c2d487d9d26443527c1b8b02dfcffc50ef98020f569cdf6fffca5870b0e502493fceee35b79eed99e2c758a0aff4c86b2af0dd223e270ecf84eb7405fe35a9e37d6b080efa3c59806c2ceffa82f38502f9d37b6c298cf07534347cd9ee436406784bd7e0a57d380dd3923ddca13d86f3b2c83a135f125f9429a6802247a0e926b54144d74e4e8f66f0303cdc91843ce7e1fb9c6276c000512c0709c7fbfde2b80e66db77222447ef6b4da4a698e011c6de95ad88738aea465c158288a54223c7f7152577cc48691af57e2631e3224b7c94e2a4c5034db35bbf9e807753fa51da8798bf63b7e6ebd857ca4cf01fcab7a33e63fa89eb386e2ef98046c44491bdf8d62ede2af4ab79ccac88e404abb649b92f49c9f9abcf2216bb628e96400a75a66c12b6ff1c6dae498dd4183ad989921ebc6a1be73127741333671eb72cd25eabc69fecc3c50da06b4a3af155264d4e39e8c681b8c5555d4cab748ed15d119527820e01854fa203c2deba3a67620d47733919e8c71d659e60e86db69905ebdc4dbeda67f77291c2202b2116a05f227f963a97eb8c87104b2df349f01f251aa22bbd41541998ce755309b98d9597d7ee26b6acaef1869885c775e6ceb710c36c07e401e17a8ccb838e33f64e43e4db3491b5cef6e800c4e494610ab81a8b489263b86976160d7d0106cab79bf2a2fce5b01e8f9d1fb069a98e814c94f10d9917b7ea27209bc822b35741f56a9aeadb75a7eae6a8cbd7df08e079db64fd48655f42c24c14bb6c72e744206a3e15deee45cab74d589deb1055e0e69fe508a2ef356dc4e2caaaf89f44a520722490374eade8573429d0d6d16e3c681853f96759cc6e3ea3aaad55284282abd40686281ff944c6a507086143cf76d0f7f93b486d552fa4698656cff8a325fea84943333645b29ee11c99555b2076a09466f6e602db663e1bd45c523a12a7fcd2328d5139d14b25561b94f62f69d436c5d4c92b01ae3a91baa1b5781bd0bf2156e1d0042ab2cbc6e10f4389868fc41d05b19bfe3dfcaacb0478b3dce887da8435c9d49f457fd54e129133e5ce87c39acb9206213daec867fca35e6b612c523fb9fba959542a777ea74";
let input_bytes_expected = x"2300b094d4facc4b552df23714f5d09a6ddfde4f0d06163b7fda1fc022ebafa5be196f4d33fc3bce80649d3e64cb6d1497bf65f6b40ffcf5ca3211889b994019cf4dfa8697b0f69a70c5ee14ef438cf0e50b2f93786f506fde02412ad75a441ab785dbe34ce00cb829962e4216f964fb8c53852cc86e0977428322ef7d505e10c37260a9ebeb0cc66ddb59901556bc4a6fa9bc0f9d8159c3319f3a2e1781912000917a12054126a728b46dc6849cda81648e0f34200824a050fd1e01382bf4cfa17019ae2f6f48cfbe6e4ef84e1b00361ed6a4892e4b5db94e8847e0c7050637d668c5cbef08fc60fde9b5d68a02af4c5ed7f7ba99f3b68eb59fa2ea8a282b705124ec5577f166130a0c043823ea1a3fd495643dfbe8d294a9f034d91f8c8e76689a676ebe1ded776bdf7fd1e4050a84b8cead2e6adcd0ae7d12a6e221cb6579eb54911d3ce9739048924f3451c07b203ab811a9506d4d134b335eab6e84c49983f405f3d5b2040c522922e501086c19db5a82a4c7134a7cad5738bc884b382e4b3cfca0521a0e7eacd0d053855dcbb6fa897f122cc2b49df60d4d3424d37a01764b77b65b5f5472365ae3b82a3cb7f9f7a13d4a6ca100c4";
assert!(input_bytes == input_bytes_expected, 0);

let output_bytes = x"c001503be6eff558a40ba145da5aa9d1270367f32cde44c1601846cdd3d0911abce8ab6adb6b82682b45107545e9ae1efca44dd6f3ba8d95a687652b94f479f6b1a37156c44194d6bc5f266098b75251b12de6fa67de6aea14250c0481694db5f24db5e3c89da3354aafc10c4bd0371f9a175d1b5b193190c4c1089ed7a95dc07f1ce29021b55f3aaa7eb65725d61277f0996b783c005a919ba121d81f211f63d188ac525056235504fe4858765dc6498362d98e8540287a0ff78424c18de53abe46c0014f847bd49f599960fe3c3b7cfc571cd854c7d21b0e9984070f7e168c872a6e6480d8fd37d30602f57a237b83ae961e6a4acb94b78c32d04f06058bda037d6ad313c81f823db25c53c265b02a29008f727f95010c82b0cf8745e77a7f4000dac929ba83a4594482b4e6ff59c93a78df5c816f244914329c145e288fd3fd4800a1cc2df23f386112e569608e6de40ee65fe870960b4e3fee4bb188d8db0dd5df3c2384eb24a797eb20cf8524d563663ccde866a405e2713cfafdb760e50c77a797c10100a31fc5ca0a91aa788d5f5df17a1433f1a0e6e4da440ce935b1b48dc6868c8fc00d7ee725ce21797a6c4440af02570466081479e99eee1a5b509a3e1ac2e000ed386c35d9fadd130df2a292fa5f9aa2c195c48c9d11e58ac98c8dbd2169721ed2d2c9f5544de17deeaa9655360ed7baa46820f5e008af1e3f028d819dee3fee50ab55b266385dfc8f65f7f0c1b6149e5295bfefb83b14db3a30b2cefd1495ba4e5ae39d2b729f9644fc28764d03243fad3e61145ed83cbf2708b60c0b7cac7148";
let output_bytes = x"c001532225cbc82be245b2571c83babcc61ab86234465a7e91e000b14b1a3426cef72a90e5db733523ba5593200c35281b77156eaa978b7ad1c5eac1336ca8e74b1341ae072b9fd620d24ff33590903668ac6d5f53fb6ac32d7c0cd380c790418f68e64505aeb82f40d6e9bcf3642850c440bc458c0465965ce384c7d6d11570d3499e265a38e4e52580e54580fccd28b1dbb9d32a7bca5e59dc9d083c6c6642df20a160da447c78f2695d424984531a1de5a35cd13ba496cf9c0adec749d31d2bbfc001f2d872ba990524a2756e74224f1162bcbceafb2222a2ca19255511f775ceb74a4bc6a36848377201b62b3bc12332781e20097612005d642033866bca926d9242bb2d0a6d305b0e46e9715340b64012271d3fe2c614ab9dca9d2f81a18ba8f49b5b9945fd4b3af743d4c7f2ac0906266ae4c26915bfcbe9ec6a1a17420c442e3cb00422efb70467188e124a56e171004521360f2da80323a2b9d327c43931327a59a711986116333010e743d9ff1c3de811281e5eba84e49c33a78d60e27b065fc101008af0c8fa3fe81a2bbdcdbc3040727f3797121254d48b182ca4a4cd698f0523057b4b223a94253a75842fe823085e8a55b2cb639e4799256f03252ded38eb93a544ca93b89f72c358098b0badedda13de0d3c99c8a33e3b6fa4d894b4031e5400872453086b36cb28d02497c3e2f1e4c6a0b4344b4dc94f4b39481cef8ea05d170f0159f06d7ffcbc99e214d62a1297153a58c41d11dacae5b409b5e6023159897bb773e0a146b7785dc772bc2c61a75aa9b30765027fc1a36bf31113799d2644";
let proof_bytes = x"0101010180032cf35709e1301d02b40a0dbe3dadfe6ec1eeba8fb8060a1decd0c7a126ea3f27fadcad81435601b0e0abca5c89173ef639e5a88043aa29801e6799e430b509e479b57af981f9ddd48d3a8d5919f99258081557a08270bb441233c78030a01e03ec199b5e3eef5ccc9b1a3d4841cbe4ff529c22a8cd1b1b0075338d864e3890942df6b007d2c3e3a8ef1ce7490c6bbec5372adfcbf8704a1ffc9a69db8d9cdc54762f019036e450e457325eef74b794f3f16ff327d68079a5b9de49163d7323937374f8a785a8f9afe84d6a71b336e4de00f239ee3af1d7604a3985e610e1603bd0e1a4998e19fa0c8920ffd8d61b0a87eeee50ac7c03ff7c4708a34f3bc92fd0103758c954ee34032cee2c78ad8cdc79a35dbc810196b7bf6833e1c45c83b09c0d1b78bc6f8753e10770e7045b08d50b4aa16a75b27a096d5ec1331f1fd0a44e95a8737c20240c90307b5497d3470393c2a00da0649e86d13e820591296c644fc1eef9e7c6ca4967c5e19df3153cd7fbd598c271e11c10397349ddc8cc8452ec";
assert!(vdf_verify(&input_bytes, &output_bytes, &proof_bytes, 100), 1);

// Try with output from 101 iterations of the VDF instead
let other_output_bytes = x"c0015011855f4d75bbd3c52c439c8c94ac523090a0cfd3ce04132ea8091c7893fb173a9f5e305d515f5e94fd7a23697bd3a6fba9ebb80c7b9fcece3b42b83605c3b94207bcfd135d90e2ad1b0a2c98c2a0e57d7499cfa3ecddea4fd733c2e437a6d1e707ae2a38cca2c65daa08c1c26cb7078d5b05f9d721e457c94d0fd1c8793eac8370eb8167b47492444403ab9c1d1ff37d75c2c4ae2271a86e6af59f31d07243bd3134bcafcfb1716085eca27d248611732563df5832c35672880d69301869adc00106c9d5439af4d4dfa21e75e3966af4905b7cd97711bd217605043778626ed51be43a5d188356df1f260ed60a1f90b7ffbb7c3c416de92fdd8358480e5b938afd6143053b1736b316503d18b9e5b024299cbdbc17d9b1f825d97b74b3fb09d1ddab4fa60a420db4cc11b93c9166152c38f7ea175dee2293ce3fafc8fd271bae814bcef963bdcb0a1e0cf6404e6a0b63e44321c54041d2a704aaa4fa5836774499dcdc2e8255cb9f907a6c6edef5d7290e4fe2bc3307bb136da05c705ea16419fdc101008fdcd8a6d77bf0f7efed3258549419d564c91cd4682c6465105c966f1fbf73f11ee123f9f292d2d04c63adfc21e8146f108779e7e781424989393d8677e142f2b9c8115d98fc2a81d826bb252c0b3152f4cd290062ff583066f263ffa399da76159c4adb007cd8a1ba6f41f119909e9336a0d0205272101ab79753712ba031094f2be571929d4d0c478a5893f9673d593279ba6b92db14c23dff795d084e1bd913f32279c4c252afe11da7371945be9e9907ca6864cf3137364677c1b5757566";
let other_output_bytes = x"c0013f8fa1bc67da02c43b1dafb2dd576be9c301a6281f938f1ff96718ec46ed102344c5e207464a0a90da7a1a0d5a69b1942048596c1dee5a95199a8a7729616135687c0bcacd2bdcb039af9f362649575ca249f793110280d3f6700c199b1d37f8f58a8ad186d60e45f1ffa675f1a067cf706b110c1134c6b6af97a6920db607fa4eb2bdda161a9527d5503494dd3e3a492bce2289934f16cdda528ad3eee75528de240d60f0174d54c987e6849cc11285dca21eeee1d83645fca10a469f116f81c00105f1f6f5f7fcae2abae809e1f7570b3f7dade7724ef61bfcc96c025e205de5a6b3660b3dfc2a92ba83fa799fd9b509c8962d01400560ff9e2ad8ab8d55c1a072ed70297516e69d08245fbd9eb554796eeb249c7252303089ec9e136c6050ef24d425c14836071a517302721827da07273578215b903093b61ce3307c44dd2b66725129f382e28fe7931082aa06f8896ebb79c2828e63bd978f7a328bd2d324711e41f9e2e1c016fe625fb412526662c3f08ed1333061b12bdf4f71975b4b4a95c10100b52ed14a6b298e95644a48edcad1b15df4ef5fbbf3b8b4b3f61ed5e58bbadd660f23940313610b8c95614beb38e1df0888d7b3198fb07ee8d5c0a6bd8309109871aedd999f72fc73b5d1c0972331c9a77d6d28396ec00ea99c928a17ff418bf535678b1a9a87ce52f90b7d23bad0cf80f51357c92457e6d55b74e224f16bdec90f521b5db6c0d02d9d6b9eee0baceeda3037bc39ceee4112e29beb1815807c30539d85ed54cba13bacf381ff761fc95bcc6537ea26e25b249d3473b1ced85e9a";
let other_proof_bytes = x"0101010180032cf35709e1301d02b40a0dbe3dadfe6ec1eeba8fb8060a1decd0c7a126ea3f27fadcad81435601b0e0abca5c89173ef639e5a88043aa29801e6799e430b509e479b57af981f9ddd48d3a8d5919f99258081557a08270bb441233c78030a01e03ec199b5e3eef5ccc9b1a3d4841cbe4ff529c22a8cd1b1b0075338d864e3890942df6b007d2c3e3a8ef1ce7490c6bbec5372adfcbf8704a1ffc9a69db8d9cdc54762f019036e450e457325eef74b794f3f16ff327d68079a5b9de49163d7323937374f8a785a8f9afe84d6a71b336e4de00f239ee3af1d7604a3985e610e1603bd0e1a4998e19fa0c8920ffd8d61b0a87eeee50ac7c03ff7c4708a34f3bc92fd0103758c954ee34032cee2c78ad8cdc79a35dbc810196b7bf6833e1c45c83b09c0d1b78bc6f8753e10770e7045b08d50b4aa16a75b27a096d5ec1331f1fd0a44e95a8737c20240c90307b5497d3470393c2a00da0649e86d13e820591296c644fc1eef9e7c6ca4967c5e19df3153cd7fbd598c271e11c10397349ddc8cc8452ec";
assert!(!vdf_verify(&input_bytes, &other_output_bytes, &other_proof_bytes, 100), 2);
assert!(vdf_verify(&input_bytes, &other_output_bytes, &other_proof_bytes, 101), 3);
Expand Down
2 changes: 1 addition & 1 deletion crates/sui/src/keytool.rs
Original file line number Diff line number Diff line change
Expand Up @@ -951,7 +951,7 @@ impl KeyToolCommand {
)
.await
.unwrap();
let (_, aud) = parse_and_validate_jwt(&parsed_token).unwrap();
let (_, aud, _) = parse_and_validate_jwt(&parsed_token).unwrap();
let address_seed = gen_address_seed(user_salt, "sub", sub, &aud).unwrap();
let zk_login_inputs =
ZkLoginInputs::from_reader(reader, &address_seed.to_string()).unwrap();
Expand Down
2 changes: 1 addition & 1 deletion crates/sui/src/zklogin_commands_util.rs
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ pub async fn perform_zk_login_test_tx(
println!("ZkLogin inputs:");
println!("{:?}", serde_json::to_string(&reader).unwrap());

let (sub, aud) = parse_and_validate_jwt(parsed_token)?;
let (sub, aud, _) = parse_and_validate_jwt(parsed_token)?;
let address_seed = gen_address_seed(&user_salt, "sub", &sub, &aud)?;
let zk_login_inputs = ZkLoginInputs::from_reader(reader, &address_seed)?;

Expand Down
Loading
Loading