Skip to content

Add Rust test vectors for Type1, Type2, Type5 #60

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 2, 2025
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
8 changes: 7 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,14 @@ test_token:
test_type1:
TYPE1_ISSUANCE_TEST_VECTORS_IN=type1-issuance-test-vectors.json \
go test -v --count=1 ./tokens/type1/...
TYPE1_ISSUANCE_TEST_VECTORS_IN=type1-issuance-test-vectors.rust.json \
go test -v --count=1 ./tokens/type1/...

test_type2:
TYPE2_ISSUANCE_TEST_VECTORS_IN=type2-issuance-test-vectors.json \
go test -v --count=1 ./tokens/type2/...
TYPE2_ISSUANCE_TEST_VECTORS_IN=type2-issuance-test-vectors.rust.json \
go test -v --count=1 ./tokens/type2/...

test_type3:
TYPE3_ANON_ORIGIN_ID_TEST_VECTORS_IN=type3-anon-origin-id-test-vectors.json \
Expand All @@ -37,9 +41,11 @@ test_type3:
test_type5:
TYPE5_ISSUANCE_TEST_VECTORS_IN=type5-issuance-test-vectors.json \
go test -v --count=1 ./tokens/type5/...
TYPE5_ISSUANCE_TEST_VECTORS_IN=type5-issuance-test-vectors.rust.json \
go test -v --count=1 ./tokens/type5/...

test_typeBatched:
BATCHED_ISSUANCE_TEST_VECTORS_IN=batched-issuance-test-vectors.json \
go test -v --count=1 ./tokens/batched/...
BATCHED_ISSUANCE_TEST_VECTORS_IN=batched-issuance-test-vectors-rust.json \
BATCHED_ISSUANCE_TEST_VECTORS_IN=batched-issuance-test-vectors.rust.json \
go test -v --count=1 ./tokens/batched/...
96 changes: 0 additions & 96 deletions tokens/batched/batched-issuance-test-vectors-rust.json

This file was deleted.

52 changes: 52 additions & 0 deletions tokens/batched/batched-issuance-test-vectors.rust.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
[
{
"issuance": [
{
"type": "0001",
"skS": "9e19dad32d440b14a7674143e272c830dfb4d5de61eae63c76571570956a88bbe66577db033d3cf043d343208436d6da",
"pkS": "028ff446ea2e2fbd761a6ef7b1137bd59a760d6c65f3b82784cefc5843f9b9ed65cdcaaa90b293f4b0cb818a873ca17d15",
"token_challenge": "0001000b497373756572204e616d6520941de0bab199d9a3cd01d5f58529d5cc9b1ceac6614d92ff75a36241c96439b20005612c622c63",
"nonce": "b771dc02997c71738e631f7f52e1f786e9c80eb51e9ed54a1302fbf98f5b32c3",
"blind": "ccb1a833c28efff813ec2de76d4bd325874da893e8116d583ad3c648341398560a6a2c1b64c52b4ea9ea97b4e1f24e54",
"token": "0001b771dc02997c71738e631f7f52e1f786e9c80eb51e9ed54a1302fbf98f5b32c3c605cc17c7449af46256832938618c13b44148d3ba19c135c0e992dc15463a626b2e907957aaa5def3d775fa880539bed74e2c2f8fb63f80b64624844b9053737a28749068a0a33347af11be755343eb7e23bd1fb6b18539ae4ce776ead2c340e8ffc496583950c2672683568f78423b"
},
{
"type": "0002",
"skS": "2d2d2d2d2d424547494e2050524956415445204b45592d2d2d2d2d0a4d494945764149424144414e42676b71686b6947397730424151454641415343424b59776767536941674541416f4942415144312f78627745396c476a354a4c0a6736326e583844795035634864515739396531465a6d30673879724d51357742474b4746555a4f554246464f706c45774d4e726763764f6a6e55733351346e4c0a775a6932624530676235564c7a6754756b587a2f3243764742534661557374466176755855475777702f516e325a4f51316d58634562376257477463494539790a512f356e5962493934654e596b5071614635594a3871446a333447702f6865706a4a73586a45377154323631626159722f5839496e306b6441366c397542384c0a5276745a614e5677546d4445686e61625a7a7154416c517038763379424558736f63456d496d35336443634c6347494d6250387046747559624a6b75546e54480a366c3863446c2f586e764661535a5148464c516a6f793350764c426b3135706f5466526266306a2b6c4370537031353964673469522b756a625376344b6a48520a33733979394f563141674d42414145436767454161564134364c554771742b694f50503572784d65546c654d392b4e5166762b2f415a77564569736f596d52370a63446930525a676a2f78564f486361304d565a70446667496544354a796a482b317831646e4a4f472f57446e344a6b6c6f57446c7937346e46314a7738664e4b0a464d44315474566267364b5473302f426a68744c5a6b69756c63636e787a774a35786857334c6d466a6c716263766f32587976447a79527858727a38444f4c6c0a4b7a6c6a4d7169624d6f7953574d2b2f497a4d6f734c517a336c30674367424c49334e587559324c736e6f4b38426a314a484a3569674c3278622f456a4a796b0a59742f4b676b4b5167574e4a596252564646467035494139656c63515131667a66776a2f417276734a3858414c464943326c657343705a594d47776276455a410a54706774422f61576361534e484443732b4b724d6c716b6a6c35622b62584730344531515445374641514b42675144395773783233416e6e5531364f6f5a646a0a4d684137495361356b6434684d4d704c38454d4c4a74556947594c74747163695549534d48497a4f6563427a734e6f4a39447144474233766c6a4d6e514e73450a7266536c75426e3472747161594538696b3459376b55474e7771552b4e4f726a676e66586a676945624e712b4f363146474f304942376c594c41766e303736740a692f796e586254422b545a342b696e3778495952754e314151514b42675144346b4a3976726b5273756153474e5879497256706e484533466b444641346a4d410a384773354f7248782f48556a6d5547424863354f6e6568717975474b68415251556d64534c72574e3863785236504f684d576a76775730694c4d514572552f740a4c6b4f6e37636f2f6f39584c3165784f556273666c7a7666484c625375574a484c593943656a6e32484d523549417531626555684a3436384e4137594778516c0a45416c64447743594e514b426744785a63356a67677939714b587a364f76427a445843345464776f5265784d44665157304447493133346536355171545265630a62475a667170374957374a7a4c777a74387a346b385953506c3748432f696a594d7732436c4255727559444b62693944537464486d34446b47363538746e4c700a4d686a546957335a37435569572f79346d6b57756156543663502b513762757a4f385332536f646d454c61796947756a665867644f2f3742416f4741546c54640a4f636530586f4d655777454f447442366c6458776d4672356570594f4e72534e5263712b657944784656666473622f66335279634f744e57776c30614d756e560a443677536f506e625274446676694f68437a56736e414635674850527056415947427179797431707163507670547253656f4568614131586641375a3773356e0a7743356568375848494e6939643935362f376a456e594457554c6f763367497777546653477955436759422b6b77575a474e59707577584e76486a42646a4a6e0a62455a2f665952712f735278772b52556347546b665438566e355850614c457032726149642b52674c6c65777345704f77447753624a7868626a315051324f490a62744f716e476d31362b41434d556f7457343477524c723954694844793059444a7154734577326a4d34596c726b63386e6e77335748596a4e2b74474d7a646d0a687244433772415047576a46383439645476776546773d3d0a2d2d2d2d2d454e442050524956415445204b45592d2d2d2d2d0a",
"pkS": "30820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100f5ff16f013d9468f924b83ada75fc0f23f97077505bdf5ed45666d20f32acc439c0118a18551939404514ea6513030dae072f3a39d4b374389cbc198b66c4d206f954bce04ee917cffd82bc605215a52cb456afb975065b0a7f427d99390d665dc11bedb586b5c204f7243fe6761b23de1e35890fa9a179609f2a0e3df81a9fe17a98c9b178c4eea4f6eb56da62bfd7f489f491d03a97db81f0b46fb5968d5704e60c486769b673a93025429f2fdf20445eca1c126226e7774270b70620c6cff2916db986c992e4e74c7ea5f1c0e5fd79ef15a49940714b423a32dcfbcb064d79a684df45b7f48fe942a52a75e7d760e2247eba36d2bf82a31d1decf72f4e5750203010001",
"token_challenge": "0002000b497373756572204e616d652011510a693c9a5af2115e1d93646ec55d3696ce6627d8f595be05f0db23a7d5e40005612c622c63",
"nonce": "af2dc5bf9e3a6d3b4a625bac32e19061774901c937d97f9a48df381cd372c3a7",
"blind": "de888a141ab0adf0ff07e4cc929b6ac1a599e65c3ee6f4e2c602b0fcb47a08712c7f2ef6f3fc0fffd6572c66498cf044aaceac28c56dfba5faf36b5c74bb40aa76aba559f44203816512bcedee9d168e2bcca80c889fd74af02fe24c22eee7014443bbf4d304e47c9686db966aebbb5543a07b37036ed03d844202de9c3ee59c8a1ebea14c1e572f2aaed214f831e1faa269854ccff13e62f0f144dffc9b2e982b7632d8977f815f294aed7a5f544b038f7fbbe33fec777586174ceda91c7579da859563da8272fbd48dcb665c4342fb17249bf87846534cd60e224cec187f02e14b91bb68bce3a4b7c135286f104916dd2cf9dcea44797fd7057073a0cc69bd",
"salt": "6b94c56af3bb58084c07e08b3e7a848132fe707d09eafe25003f7a26c8535b04a7526f12ca1eb264d4b6e4015309196d",
"token": "0002af2dc5bf9e3a6d3b4a625bac32e19061774901c937d97f9a48df381cd372c3a726667f6916c5aea78f184c27002c95dd4ed283189a68224ad7f322ef706a3b58c19b7457b57865de3c54bd8b1860fed5ab4c868bbb324145f17f74e77c77be9538216d8140ca0c87bf4cd17077f1a82e6aedd2255051191f5006f10b06ec8db240ebfc98fd80a9c1bea8f3c00d38902c2cde357c40f098f0705605002afb9e80eea058602e5fc86b272b9bdac0d68c8034751dee5ef2c7e4ed5424e66b52ad16ba78b1153410ce94207b91646079b25df936c577d747aec615797bd9e96ba8dea30c7c3dbe4aa0f1b687fb865c36f197cb19df9f7c2457874185b869cd7428af0227baa64fe98e09ceb4a4f76bba48f67064161bd13c5390658eb0a1a135de3b27c408402aaf280d54a438d51756ec2585b5da29fcb1c8a005a747414874276c92996ec414a8ac4eff1c57cfea3b9010781d9aec15a32f1307f557581c6bf507"
}
],
"token_request": "4137000173039e6793ea9ad36c05b19247a450f78c9a6598f069579102c98723c534779461e54b5220d83d2c4f975a40d0a77de8498c000295a16b1f1b469884a38ef1c7e691ad0355ee59bb4ad462934dc15dac6294a57030fe83677e31c806c07ed9ca3450a26de0607c4596509a5c6128ff1e788f9b0fae40a130a0e022e5026fc34c44d6223525dfe181a603bed2ee58a91718e4550e65396d721768605adb7b82765ffd1769f1a3d2d5d62160025bc7c16803d0af81f969359160e11cc1862dcc2ad643a055daf7c94f9a5a351dce3e2f1da19b1d3270fa6b72d3f568952978404454a9022fa1d078478073a7615ffa6ebeda95621c14075986715e0b25ecee559b0e78e0074b297632f536faca4fba86e6f7d6062520dfa47283996ff2a297be0eea01cf4c37b575f64d9a65a5140f40d37a8223bc4c",
"token_response": "419701000102960715043dcddc055f5805a41e2fc119ee58cd8d0fd057fb9dd9d6b6adc97f5d3b6c46fe36cf6fdcbc73c6aa049a04bdc6d824fc505b2683b9d1b023324fb3a87282fbb7d8ac5f95611426bb1e9d37909b6304e19743c4c5276aa6c8182bc9f5b7ab71f31aa75bd0aa587f16ca093ab1ba1f7a170e1d16df59a598bb64e6a97fd8cca72a87ed8b2eaea501c7a1ef5ac001000297cfa38a3fab7aff07a6f1ad9c022692309c76aa657149afdac4cc4dce735b415ea30c9ba4b04f3320542e2c4f5af190af826ae264b6cf3abdd0a559cf8868ed5490ff9d21e04a8ae12eaa95adf28293e1b27425e02e2539caebf5849b281b2475084bdaa2bf368d7cb0e6126092540aa5511db0f507249be6af93e4c2745db6d6689eac80e499e2c54e392e17be76a4c3441e66bb5ba608a5b32f102ad434c691e82828946d1dd3587f68acde191f4d7933f3f5649ef5255e4f8b6a1fddc85974603e5c5ff87a9f6209f1aeb7b01919e751da5de3341ba8044f5419fb2fb6125b08a27ac0185a976d82ecb5fd6cc0508f96ff8290939e869641907cc8b60186"
},
{
"issuance": [
{
"type": "0002",
"skS": "2d2d2d2d2d424547494e2050524956415445204b45592d2d2d2d2d0a4d494945766749424144414e42676b71686b6947397730424151454641415343424b67776767536b41674541416f4942415143794231723031627043727969360a4238596c68415a544c51306c762f79416d4d4b346d6974445845744f654a7a6d4244556630324c696d775573477472637a6270367541466551796e49504134300a3642774859482b3254674f375745426b694b563776456e71673471727a7356785a7572337255496850475a717a654b47797035747651617741624b65436654590a5546485850346758696f587a556e39634a71694e707756343245475133584738736f716d4b777a5273665a7256474f7a4631734a55425964332f71365a327a660a6f5a64514f34325343544d587862346558344e536771535935593747494357767457364e6c71412b7132596b784a2b3855534f743941703477474a73355030360a717677564a4a7378574378556e6f6a66547845643948795948554a4d614e416c58344b6a79626b61513250496865765a4a473035694d4549627457694875596e0a3534577a376f4d4441674d424141454367674542414c42356c424e686a697175515676766574385465635758776847717435327555452f3447327a426e3744670a355038714b704d71307a6f3457793832533842586530524e424b597851386a47703371516e384138537a306e4a704865304b34587570726d7367727a624649560a50536e46304b50474c75694e584355426845304471337179783139507634546a37373943463236632f73582f5066744f7977744a4577716742302b635a356f320a454e48395a5176634d4e653869322b376a45775262463654306e6e4f752b735143343547495661634b594c41705a4c74305253343336486646314155505249660a2b4c794a323858555347494953496b716e753673797866444551534534556a7a355371674135646d58654c6f5076624369454a3270742b466d504b5649626c370a32776754592b496d37784b314551396432735a4666544f6a7437646e596954736f47626c376151657a3545436759454136484a434966306b2b43616b454c74330a4a724364334a4164787a674d2b7637764569624c4441542f5562792b674f6f454b3835613244624a4f6f474b66673276342f525837694c4e414c453635774d540a4774675077704e685431654451444c56486e7a715a6245495a703361745239386e596f4876634f7875716b36473379516d427754557662304e306936482f2f410a7661354363744745384e536c7858313869494c5676754f773569734367594541784246384b4e566e316746634172356c71306a537276686477385868696e45500a624134754e6a692b6654354673624961594745613079785877685a3167354136687764726932326f2b59544b696d64697a7a7647336850455a4232534464572b0a384272325476393076635133417a46634165435246347979795663367a674d714779723534695262522f6a65322b36793353775a625a7a5a76674956476a4c420a4674696863377a6c416f6b4367594179344138706355614f4b61627649706a4a6c773532482f546b6a5a674a74354b4c336f48436437574b4a6b3172326378660a36694a6f4146573677472b586431647742534c5a74445136577041527a394a3270614f4e617352356f5358512f3038324252456f674c3764397437506c62796f0a6e6e566a53316d7a435362327253545970677830744368766b544e726e59614a2f5948397232337861426d41534237686f674532626f396855514b42674668700a53674e6674364c596d685469706858476b4c6f315a4a4b532b46446c436e382f4a626474667667617a484b45545543496951415154734a47506c6446416839420a5355316c3958774f56515a7a2b43706157694a70353354396f49353867387a6857342f6a775643513266326d6c456145624f69686d54305243494d3943672b570a495866487a5346334a34636b36364b76384164745977493744696a7947662b6a54367051307a4f42416f4742414f474a70612b783237382f68527a5948414e6c0a5542426e4c755679453743797433396d632f6a36564a7766765a2f6173314e5133664a615551546330334b6347467363354c6338567a73567a336e69436a324d0a6431574356354c6a6c377763302f6743423863794774316555774f713258556d4c6d73365a53434f694b6c674a662f364178635a65764f316543344c46726e4b0a397a597955646e476a716d59436d4d3334756643455670370a2d2d2d2d2d454e442050524956415445204b45592d2d2d2d2d0a",
"pkS": "30820152303d06092a864886f70d01010a3030a00d300b0609608648016503040202a11a301806092a864886f70d010108300b0609608648016503040202a2030201300382010f003082010a0282010100b2075af4d5ba42af28ba07c6258406532d0d25bffc8098c2b89a2b435c4b4e789ce604351fd362e29b052c1adadccdba7ab8015e4329c83c0e34e81c07607fb64e03bb58406488a57bbc49ea838aabcec57166eaf7ad42213c666acde286ca9e6dbd06b001b29e09f4d85051d73f88178a85f3527f5c26a88da70578d84190dd71bcb28aa62b0cd1b1f66b5463b3175b0950161ddffaba676cdfa197503b8d92093317c5be1e5f835282a498e58ec62025afb56e8d96a03eab6624c49fbc5123adf40a78c0626ce4fd3aaafc15249b31582c549e88df4f111df47c981d424c68d0255f82a3c9b91a4363c885ebd9246d3988c1086ed5a21ee627e785b3ee83030203010001",
"token_challenge": "0002000b497373756572204e616d65000005612c622c63",
"nonce": "d0e02f3aab17957e678918b88bd107d001146822edecfa9286827f8cd2e887d0",
"blind": "8fbb53b0b61268491d30a0b56b8184746e211031462a112a4259cc29c948bbf9ea2bc5c1b395185e2f9f422235d55f37f4334f080d947a66e47e9e842b4e663cbf7b5d2e648c8e987db8b3ffba9ef991b7e4b25d1c2e3b1726226244690237d4c1599d50efac6571f7173a67f4c93d07ca5b91ceb31884ede2475f3fcd52eb72cb38ddf18e37563b8d4b1f1397f05df3e6d65bdc7f909f430208898463774230ab47124a987c776e8224ae9b835889e88ab306f1ef397e0538ab93f681e563a83432b120f4dcd336bfea0978fd6d1aa06dfe635a0a1c1729ced586054d304af479c408e564d50473d86d0c84a1c55ac1eefda6347898722e5b60e02d56a495dd",
"salt": "c8e1c6d9d2911d432872eed71b06bb197d29fc22d675bd348193bc1440a6b3d798943fa0b77b12f2efad68c08cffdc64",
"token": "0002d0e02f3aab17957e678918b88bd107d001146822edecfa9286827f8cd2e887d0201c8af95ce37c05aaa2acadc50fd6d8a825e992c5bebf2d617f0359cbb669d85847ee9ca05f3abc8de756db4181bb525ab806888d71f3313c37d63d50b05e2aa479db91b2e7175b49cc8c580bdf48541c252ee23754b999ccd309e3d51740be0da7f346689617a8421d47d5803b1b9e38dadbf6dd377f8553d86d5362124d154457f4318ecf67346cd553c684b3c4e56b20083e195c0f944c7fbd941dba0e0946d03d9750ce0be2470a9f3abc68185c93bc2e6dc2bcf84d61a50f96e9b229ef7308aac70b86e61c5bbfcff34eb2c23cfaab41c8775c38d6f095d56d4e43f3af8c8919dd6d11964038aac6245c7c7914a3e6c171cf262d67cf021f6c37621a6ca4f300d9141141ce8bc484dfbdc8d57572554b4424021014f7a07f5eeb9ef8c9827abd018f257cf1ac749e5d35dfcadab80abb9e2aaeaa76d4f1c2dfdd5ff7f5"
},
{
"type": "0001",
"skS": "79d090708ee7b744f1a764a345cf5ed372b0d12dbb02b8ede06dd649712e1091af235466040b350d5fd547ab3b23aad7",
"pkS": "02e26e2214b4307c84c9bcce7cf89d90a65ac201d5c6972f59e66afd3e4a543addfadd364bf8d5a503f66e3bfbc358138b",
"token_challenge": "0001000b497373756572204e616d6520f367e2f0d1744a7ebb63ec0e7d80be9d32314ed9c4d163894debca99cd02fcc30005612c622c63",
"nonce": "4e39a695d77cb30da3dd7853fab3d8ad903aed8507559a158df4b05510dd6db7",
"blind": "1b48f7d21eae4826dc45097a7265186cc3d5c809889fed2ae498dba33c34a630106f9551ae7ccd0471a1d89ed7c7c243",
"token": "00014e39a695d77cb30da3dd7853fab3d8ad903aed8507559a158df4b05510dd6db7a4daeb7e44acdc36c1556bb646f452343e6f33bf6c61340efe89e94d0026f245cc5ac4950d730cea0a8fef3f63d769d002fd4655e786156b2ea5a99e26aa0694a1b0b9bbff925e2fc7cc82fdbff60bddc4b4e0b0776d2a0f4085c7c914eb310891b1bda47deb869861c4f23de498a6ef"
}
],
"token_request": "413700022a1b4a45b6c832014f518cbf671f5069a9bffa7c98ed82d9df888a470cb60ef6f8951433a9d515304513313996bb5693f23d9be93e56ac59df72d7644604e316c6e779d178e91de907935b762f08a2516fcd2b32c5ec305bd96a44e420660d9fa6d1ed89050fcc538ca3a4afba2e1cb49c611b74918038c2231a4a0e85f7173260f31cd1ed6a0f3a3ec5c40d58833fb09e55c6191b7c0a3ed061dcc7d78ce972f7184bb8181010a650b36bba472938c8190b9cc2bc3df8436a425723d6230aa91d397ffd680e6ab12ea7586ca168c43790ece3d9eaac1a03a98132b70008eb6a9afcdb41a15a21fc59f5efff31e17b26c6c884a3f21f26ec8e46813753439fbb0a000194034f03b6b499800ef6c4ff5ae4e3ba6c71c8757e65c1f2533e84fbf1c04dc102100ee8717427f6833347f467311ea53acb",
"token_response": "4197010002198be0563250be6ba529e2b1acc30a3c4564019c227856609344adbd574be40d0b5ee9f0ba071711e6f10075ed83a3c530342ebcc7fd54a4421b93fd98e9cd61c27128bbceff0d1eeffd2e59523c7f101864ca97e2f889189263feb351499c0319a5a612d74a2650772c58e109ff7db789a9f10ef1ca409fa4541658b6e70128cc9ed23d0390b5ea529aeb4f017f099b6f0768a10a0d021abe578b85a289d22928ab51b4c07da71016a6a2e49c800a4dc0bc767ec2b02a1eba7baa94efcd582215a07201f5b1b9c5cade04bbeed6e82abf8235003bfb16f8d346112c3f865a4d6398571a5e6da96d6d810a6016433c258bb261c6da3824142f1b283a62038db901000102cd0c4e0dda07218612009f7402d1d4230449ef45e01a9d5a11424d49e3828d47331ad9a24ea960b3653e8a00f0b4ffaadc12d787feba11edfbb1dc171fe391f8a3c1980125f5c909fb3e1bdcc34b65d3b68261c0cd5e0fd521035173e0c6043701697c03cd73fab74694f53aaed84791a58ec78add1c7b754b4a5d25a7dfab21b27942dcfc732a4457dbdcede8a89886"
}
]
Loading