diff --git a/src/tests/full_test.rs b/src/tests/full_test.rs index 1fbdb439..a6c51b58 100644 --- a/src/tests/full_test.rs +++ b/src/tests/full_test.rs @@ -282,792 +282,41 @@ pub struct TestVectorParameters { static STR_PASSWORD: &str = "password"; static STR_CREDENTIAL_IDENTIFIER: &str = "credential_identifier"; -// To regenerate these test vectors, run: -// cargo test --features curve25519 -- --nocapture generate_test_vectors -#[cfg(feature = "ristretto255")] -static TEST_VECTOR_RISTRETTO255: &str = r#" -{ - "client_s_pk": "26716bbe69e8a0f5af491ee125ebcf1ba570fded8429a5efe3a411572046f168", - "client_s_sk": "f4a4b1f3c2c54257b91a0d87db527505428cbee4b6139e653160d44418f2110c", - "client_e_pk": "6ef6b77b5640a9edc6f70c51498008113d616abcaecb93665184f960d109fe52", - "client_e_sk": "e2ea723e5c50da359eb157b61305ceba76e782def7900f49c4d6710255dab502", - "server_s_pk": "88a0a8d7d4af520eed596ed1ba0f559ef3938e0760ba4dc0edda61516f786c34", - "server_s_sk": "119d9d4d6a0d346b32bd098545374bb13d3c62292ee46244ad198388e33d7d0c", - "server_e_pk": "bc7cc5a25ae069bda90f1c7dd1171025ab795f27e45b78839f6991f29a56e052", - "server_e_sk": "5b7e3196121b14d54f326ad51849264aeaeef95ea4f4bfde96b31266df92200b", - "fake_sk": "45caf0bf77b445fedbac477bde6b4302122c29c572b8a4b0760e25c7ae992d0a", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "4c590eff6854bda8024117051aa86c838b5d37bf408714a6004c671e7f72fb03", - "oprf_seed": "77b3fa30df8c1a6cf848a3cd747f5e28dae23b522e80b9ed67d4d06f09f53136dbc44bbb511b56fec4de8780572bac59b2647c1a71f080e42e70e573f10c6e8a", - "masking_nonce": "586157850ffa2085e7f857a27b5c942f5419331ca8f9d7467dfd2825e1ec6a3cf85ec715b14eeaadc89615d07c8d49d6859940ff84649df740f97ecaef168f9b", - "envelope_nonce": "21946497a938b40c9bdeb84d286fc7e9b3ef1e6d150660bd2330e400eac5c5bc", - "client_nonce": "d49d84dcfdde7c09eecf7b6ddaab79c3269a9d2511ba72d01d363fae862b5a83", - "server_nonce": "1e5a5cc267d99866ea30678c1ee43c53400b78e4a27b7dcf2b4521667b78c3b3", - "context": "636f6e74657874", - "registration_request": "70815fce02606dcb4a45ac1b3e312e201501d5cada02691953297e982e1f9b32", - "registration_response": "9e2ae845f8f4bd555c4c8df2b5bcff75fa6d1f0650011c422ad349b8d16edc3788a0a8d7d4af520eed596ed1ba0f559ef3938e0760ba4dc0edda61516f786c34", - "registration_upload": "66723c5c39695106d654570842a1edab79711a36ea4f34f65078b8c35731ea494d10c64e8239e9ed8a476faf6a4df44dd60a58fb0036ef65d5241541c7ca87aa050a7ea198c68d490d02f23419d0e002c7819805f8c9a6517a062d67a2de8b4df4a4b1f3c2c54257b91a0d87db527505428cbee4b6139e653160d44418f2110cedf21caa38e4cfbef0a7e5254082231d0b0dd056ff9014f2fa313e2107925dd8e69e45c126b8dae8c00567da34d09c8658aa7acab6e2fcb43359b263b4642773", - "credential_request": "70815fce02606dcb4a45ac1b3e312e201501d5cada02691953297e982e1f9b32d49d84dcfdde7c09eecf7b6ddaab79c3269a9d2511ba72d01d363fae862b5a83306781008374dd7ae51f6ea634f742c5db39774daed51d781e1a2e155a804666", - "credential_response": "9e2ae845f8f4bd555c4c8df2b5bcff75fa6d1f0650011c422ad349b8d16edc37586157850ffa2085e7f857a27b5c942f5419331ca8f9d7467dfd2825e1ec6a3c0e282fab682070fe5f5eaac1c4c01607c753263d6089bec28cf159483d9d8d3bae87a9ae56d6234b34187cd59740eb5e1cbcfe14e048f04ddd020b223365877b175ec2778d8cb0b427ea592751b1456d7f0c7295bc35bc70803e1a69e9ef0039b805f52c349b47ac42896152b738cd2babd230633a30d005fbfdae4a62b168f55b7e3196121b14d54f326ad51849264aeaeef95ea4f4bfde96b31266df92200bfe12195f75aa85845eb390e4eec3ee3594370f9fde7f3864dac00fb5c967dd00f198994831bc346a4b558e0570302b653436f9ecba165dc1f2ac3137f0a0df68aa209353dbf8539a39a4f9d7ff289195b2df5c5e84cb8ff02bbe552c384009f1", - "credential_finalization": "5f944d84bb4b92fa2a2ae5719eb7f3c486f4dc3c9622d8b23b8512383b2e9be96ecf3540c7a343a519a447ddd74bf651602dbaa54e6b41e44d24fbe00e4888d3", - "client_registration_state": "4c590eff6854bda8024117051aa86c838b5d37bf408714a6004c671e7f72fb0370815fce02606dcb4a45ac1b3e312e201501d5cada02691953297e982e1f9b32", - "client_login_state": "4c590eff6854bda8024117051aa86c838b5d37bf408714a6004c671e7f72fb0370815fce02606dcb4a45ac1b3e312e201501d5cada02691953297e982e1f9b32d49d84dcfdde7c09eecf7b6ddaab79c3269a9d2511ba72d01d363fae862b5a83306781008374dd7ae51f6ea634f742c5db39774daed51d781e1a2e155a8046668d4d5de82f0c234b84eb97934b87f2d43960fae1b6bd5d3d6944caf5154d6308d49d84dcfdde7c09eecf7b6ddaab79c3269a9d2511ba72d01d363fae862b5a83", - "server_login_state": "30234f3b8cead1e011aa7dfeaae19b64913115daaa46f3cfd033c2a64fdd0a3959e62584463cf961b0471a6aff255eb0537edafef843dd59145ae1a96536b42476799bfed1b5332d0547740d550554fdf83b2fa13ef9850c8664a6932e7da165b629fb87a8993b3dca588a96199e5e5d5454e4597d60482390925ecece9f62fd87a6422c13f1ed7bc5b844ebb29f7b35a2230d9a4d798763d91feb7f2be228b6c46277fd8d9589066c3c656d7daf75c71ce257ff9c7b7c8d017cc5dc766858c1", - "password_file": "66723c5c39695106d654570842a1edab79711a36ea4f34f65078b8c35731ea494d10c64e8239e9ed8a476faf6a4df44dd60a58fb0036ef65d5241541c7ca87aa050a7ea198c68d490d02f23419d0e002c7819805f8c9a6517a062d67a2de8b4df4a4b1f3c2c54257b91a0d87db527505428cbee4b6139e653160d44418f2110cedf21caa38e4cfbef0a7e5254082231d0b0dd056ff9014f2fa313e2107925dd8e69e45c126b8dae8c00567da34d09c8658aa7acab6e2fcb43359b263b4642773", - "export_key": "f529f81953f783863c758dc677dc5673d39e3b17508c5ccff96a3bb8dc29b3d09966c6b8cb11afe53ac1784b3768d8789d47c85a300ec2431a4b48b63d0724fc", - "session_key": "87a6422c13f1ed7bc5b844ebb29f7b35a2230d9a4d798763d91feb7f2be228b6c46277fd8d9589066c3c656d7daf75c71ce257ff9c7b7c8d017cc5dc766858c1" -} -"#; - -#[cfg(feature = "ristretto255")] -static TEST_VECTOR_RISTRETTO255_P256: &str = r#" -{ - "client_s_pk": "96860d1458e14e8724abc569401bcd1b6bcfeddf09742103d760a6014804cc73", - "client_s_sk": "0daf879c98ee31788e0014af07cebe6ff594ea3c4f6e308abcc2bb878b8fa605", - "client_e_pk": "5a049d36bf732157b108dbfc9230a9e67fea0020f16035856c10ca81d8930f07", - "client_e_sk": "b1683ccba5ced8986407ca6f6047749a239418ebe1bde10c793db752e6980c06", - "server_s_pk": "12396a13fddef61cf0134aa4c2a6aaf3d1be57cb13ea4f4b9838d71fc54ee80c", - "server_s_sk": "0f383b8fc12a075e1625771cb0e5dbe415f11f5bf1782b890c72c079214db30d", - "server_e_pk": "922dc5a69f7cad85dd41191458f4964176c47dd563d02bfd49c3023329b3ec6c", - "server_e_sk": "02ea163c9f6e9178774981e0c1e85f15279bfedc3dda8e6d61d29a3a6cb7100c", - "fake_sk": "85dd0108f49dfba87cc20ddbf26e50fa2f75617eadd79f981166918dd46d0b07", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "0c4bce66bf65a8546ef873df3753d1d7be8b03c7117e4db915db6c39e8e2ba3c", - "oprf_seed": "189debd660e17b3e4bf4e867d341715e9106d1c8fe50f1c7494b844f84581520", - "masking_nonce": "cf06408b0fb43754f84212958c57c9f1f80ee9c286f09f4a8abb0df17a34f5c7fb0678eb323d4c08bf48261066876c41e552f0fa0597bcf72723745084074c33", - "envelope_nonce": "48485d8f1020b7a37c39b1d30b32a8e1627f090602bc6d252210feced34f5380", - "client_nonce": "2299b1cbada1e9f1aab6ae243db020674b38e3c3d9d48c09a77e68cb5a3dbc89", - "server_nonce": "e930041050fbfe8ee81dc9769d9b70ef4bc1aa214fcc816566a94c216dd25a1b", - "context": "636f6e74657874", - "registration_request": "03bd2e315c39a7f0262844c53d8474cf45ff0eb1702b583f190b902b80dd636211", - "registration_response": "0295b6e042acf53567b5e0c33f6ef78867387f97be9cfa032d63dd59b0a3bbe69612396a13fddef61cf0134aa4c2a6aaf3d1be57cb13ea4f4b9838d71fc54ee80c", - "registration_upload": "1cbf711b9e1dff7c2aaf72a2b6f1539575829b8810bfe226e24fbbefbcd2894dc919828b717bfe9b990b34447ae288e858d92188d447aeed5e567d22145b3d4c0daf879c98ee31788e0014af07cebe6ff594ea3c4f6e308abcc2bb878b8fa6052b8c9a902bbc1e1ebc7ddfe5bc8d8f0373643ebc8aa14068cfd59023c08a9c2b", - "credential_request": "03bd2e315c39a7f0262844c53d8474cf45ff0eb1702b583f190b902b80dd6362112299b1cbada1e9f1aab6ae243db020674b38e3c3d9d48c09a77e68cb5a3dbc898e49984d760ede86d52699fa452d5297c4939007ce7aa197374e1048a6035d46", - "credential_response": "0295b6e042acf53567b5e0c33f6ef78867387f97be9cfa032d63dd59b0a3bbe696cf06408b0fb43754f84212958c57c9f1f80ee9c286f09f4a8abb0df17a34f5c7537e2b0fddecff2140a12fff250cf71dc909d80397aef7ef4b127762dcfcc718c7023064997840e593afea87022470bdee8954a0640992403f8ec4a14b7c845d49010dae5bf99c6db15c34fb354c3c385c7dc45853ec9b1dcf9afab48281a8cb02ea163c9f6e9178774981e0c1e85f15279bfedc3dda8e6d61d29a3a6cb7100caa4daad8755b1ffb28695e317278215428bd4d1ecd969e62059a93fba1af40018caf3978ca1456277ec344116a4f189a32c91fd28c1d23cc7be0e80e10a57422", - "credential_finalization": "4db5e4b91877f7bcee7d63b015793559fc788e7196b3c53f34b63ff8bf9bb91d", - "client_registration_state": "0c4bce66bf65a8546ef873df3753d1d7be8b03c7117e4db915db6c39e8e2ba3c03bd2e315c39a7f0262844c53d8474cf45ff0eb1702b583f190b902b80dd636211", - "client_login_state": "0c4bce66bf65a8546ef873df3753d1d7be8b03c7117e4db915db6c39e8e2ba3c03bd2e315c39a7f0262844c53d8474cf45ff0eb1702b583f190b902b80dd6362112299b1cbada1e9f1aab6ae243db020674b38e3c3d9d48c09a77e68cb5a3dbc898e49984d760ede86d52699fa452d5297c4939007ce7aa197374e1048a6035d46f62b5e93fa459dcdf3ee17e3e2447f0809e85f15b17e46d06f8894baa3c0e20a2299b1cbada1e9f1aab6ae243db020674b38e3c3d9d48c09a77e68cb5a3dbc89", - "server_login_state": "3a31ecc4fdee405375e58df2e9f4fe25965859cb6173d7e6709fb24fd2698d53933d8bc443c8860da1d4096d8b2ea2a5c651d744a22da9b2c9f73ff0ad17fc0b5c0df6a11fedcc36dcd1173ab7e55f3f2627d399e464ec29671cee7566d6d912", - "password_file": "1cbf711b9e1dff7c2aaf72a2b6f1539575829b8810bfe226e24fbbefbcd2894dc919828b717bfe9b990b34447ae288e858d92188d447aeed5e567d22145b3d4c0daf879c98ee31788e0014af07cebe6ff594ea3c4f6e308abcc2bb878b8fa6052b8c9a902bbc1e1ebc7ddfe5bc8d8f0373643ebc8aa14068cfd59023c08a9c2b", - "export_key": "e785a045278a7fa931ef1f8910d0ba85dc3d6c7537dfe5a9f4bd7bfa317e1762", - "session_key": "5c0df6a11fedcc36dcd1173ab7e55f3f2627d399e464ec29671cee7566d6d912" -} -"#; - -#[cfg(feature = "ristretto255")] -static TEST_VECTOR_RISTRETTO255_P384: &str = r#" -{ - "client_s_pk": "4e2c60441878e85783c9800406ebd5e7e881dff80616d03b567947b82e5c7a57", - "client_s_sk": "dce2e0634b405f06caf29c1265fe223cb534535bb7c27cdf2e12f6291b39c00a", - "client_e_pk": "5e49aef294f9dce3c6522d66805d864337dc0fadfe88fe2e0f037c32c105a82d", - "client_e_sk": "dfb45d06440e1cbcdda340d9582de46237c44413f05b40339a6187115bfcc404", - "server_s_pk": "543f5a039f83eacc40c62fc5c5acecfd4650873dce4d6dbceb04a327baf86f2f", - "server_s_sk": "0c0d7c18c7ff0860f5d6648d5ebea2fec4a3cff45d436f3be5aa680608e7f605", - "server_e_pk": "e063a148282a82945d5ea35b9bcbc4fdacc175f73bee2ba4d0f72e7b3aec1338", - "server_e_sk": "a50f4953424642bcfc681fd4b6f8f9c71bd4a052bbc5f46047d22727da26af0b", - "fake_sk": "4305d00aa1b28f5fa20a4c939c97ce51150b948f87307191d5febc66ea2ea606", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "ebb318997438ae2f5e3238f03b75b975c15574221dc5366b28fd9f3401230420fbdaea1919df12380f986f7c6dcaee4d", - "oprf_seed": "f28b12958dfe452b0819cc0df743666cb27c9f7d5b07818de0c79b21bbc8a3987257a81a1c57c21bccebd2af0e6fbe94", - "masking_nonce": "cbe822a5e60816a19d6b707308876147e4c0be5436e0658802c88d257f9523f873c3c248f599aa0854a047ff227676b2ef036e847aad26113df99cf494ada455", - "envelope_nonce": "f5af3d4e880da0abaf85dfb4da5b7b23549c83c90bffbce20fc84d8a22014b00", - "client_nonce": "97cb195111c2bd433a1d1cafed854d9039936ae9559942cc701dafcb9dd51524", - "server_nonce": "4b15d916d5fb9bfc3e0a110dfcade484e4c98f6bebd9860f7b7956880a806efe", - "context": "636f6e74657874", - "registration_request": "0335ded8e0d44b32ef46a01d530365171b4a0656bc97362c731e5228c8d82cc66a7be5bbb4af2df2c69fab5946951bddba", - "registration_response": "037afbd911baaeaf20b8f81a323b9394b0483b622b92a02d19c6956b229264f645b2c82d42207a43c14445c9b77d5812d1543f5a039f83eacc40c62fc5c5acecfd4650873dce4d6dbceb04a327baf86f2f", - "registration_upload": "f0009445fd1d418db028788a28b21992786ad8b697a2a8baebe30547733f9143bdb7d21117484fed96d101d15e148c5a63623687e4844834c2d22a48913aaf0feeeb831dfb5ca91a91be5d2d7d46680fdce2e0634b405f06caf29c1265fe223cb534535bb7c27cdf2e12f6291b39c00a659cfc677db765aa62682b8095a1ab39dcd73ddbe49b668eb63f7bd5f4396f6e6b40ad646ebbb1af13b3589b73d69371", - "credential_request": "0335ded8e0d44b32ef46a01d530365171b4a0656bc97362c731e5228c8d82cc66a7be5bbb4af2df2c69fab5946951bddba97cb195111c2bd433a1d1cafed854d9039936ae9559942cc701dafcb9dd51524962707435be9a80153f6e4ec9ebc2440163ba73c232a418c958e25e77aa85863", - "credential_response": "037afbd911baaeaf20b8f81a323b9394b0483b622b92a02d19c6956b229264f645b2c82d42207a43c14445c9b77d5812d1cbe822a5e60816a19d6b707308876147e4c0be5436e0658802c88d257f9523f8020480a4ed9d375068b49232966147564a442f1dfe5cab652453c60a29d384863194bfb106012b50ca488869460200f16360b01a1337cfe3f03e118eb48bbba6ccd4c56eb181539277bc2b72f1dc15afabecd59885ca66fe42595382d085692bbd0278b83759deb8230883bf2c3181eea50f4953424642bcfc681fd4b6f8f9c71bd4a052bbc5f46047d22727da26af0b3405b452e6d6dabfe98ba19092987ebbfae106116b40a0f65dacbd709ac4f7756c3e6d1965246cca600fc88be6abd548299f728d756bc966b3021c2fb1a8c43a0b53a886a9594c93b3975536e59c71e1", - "credential_finalization": "4adf8d88cfd65aeec5b01e53cb0c791fba6239a7140994105b2d43c30d1921e9f3510d03c6f097f1d170cb7ae665e7cf", - "client_registration_state": "ebb318997438ae2f5e3238f03b75b975c15574221dc5366b28fd9f3401230420fbdaea1919df12380f986f7c6dcaee4d0335ded8e0d44b32ef46a01d530365171b4a0656bc97362c731e5228c8d82cc66a7be5bbb4af2df2c69fab5946951bddba", - "client_login_state": "ebb318997438ae2f5e3238f03b75b975c15574221dc5366b28fd9f3401230420fbdaea1919df12380f986f7c6dcaee4d0335ded8e0d44b32ef46a01d530365171b4a0656bc97362c731e5228c8d82cc66a7be5bbb4af2df2c69fab5946951bddba97cb195111c2bd433a1d1cafed854d9039936ae9559942cc701dafcb9dd51524962707435be9a80153f6e4ec9ebc2440163ba73c232a418c958e25e77aa85863dea54ac07a062a89450b947cd563d9b3c7bbec1460212b78c21d509f45f1310997cb195111c2bd433a1d1cafed854d9039936ae9559942cc701dafcb9dd51524", - "server_login_state": "ed32e9f19429767a8297ece379a7f2ca317543fa601f9d575577c4004a22240814814df482a466fb9456f2a8ea175f61d589b838e49246593d6fa7e2f41335961f0d890be0ff0f196d6c54b0ea909e9833cce7f57c20cdde215c23d0107bb32173700ee1021612393ecb5a619d95774b74ac82c7a2243ea01091aa34059bb6b93763af9e3270d17e15d31e2c36a22c1d", - "password_file": "f0009445fd1d418db028788a28b21992786ad8b697a2a8baebe30547733f9143bdb7d21117484fed96d101d15e148c5a63623687e4844834c2d22a48913aaf0feeeb831dfb5ca91a91be5d2d7d46680fdce2e0634b405f06caf29c1265fe223cb534535bb7c27cdf2e12f6291b39c00a659cfc677db765aa62682b8095a1ab39dcd73ddbe49b668eb63f7bd5f4396f6e6b40ad646ebbb1af13b3589b73d69371", - "export_key": "d610a300a933f98e70927f01cd97b7aead44e98b1405c40b42c15e25e20dc0ce237eca5cc623d2f7f185aa3db7846cf1", - "session_key": "73700ee1021612393ecb5a619d95774b74ac82c7a2243ea01091aa34059bb6b93763af9e3270d17e15d31e2c36a22c1d" -} -"#; - -#[cfg(feature = "ristretto255")] -static TEST_VECTOR_RISTRETTO255_P521: &str = r#" -{ - "client_s_pk": "2077405e985ad5bf0089c6b3dd78f85b36c1e01a67d3f36c8c0d0a1c5aac0938", - "client_s_sk": "9df2f24beaa7e529640b970ac597d6e3456ec9b7d36a2b890a97ab802ca90e05", - "client_e_pk": "78d7f3173e896f289a86d7c0180bf1bb8acc05d8ff615d643709e4aa410d697f", - "client_e_sk": "e8b675d6e47400715562781ba47471f4600c113ef313137e2ba04052af1fe301", - "server_s_pk": "ceb112c998aab8a83098be0e488827919ced0386595c4e598c088daab9500c0f", - "server_s_sk": "b3deb77be0f7431eb8c9658b7be5d2680629b69f605e72f4faeddc23e6ad3f06", - "server_e_pk": "8aa2e0e651a2ea09d6d648f3370307b142b5ac1076840983267af4d436febf6f", - "server_e_sk": "139a6f95f63c6e3cb8e461e442f6ec04e2aa1afe4279a7e4bce4f4a4bc9bc607", - "fake_sk": "b4b60e9eabe6239493fed00fe73cee20806fa99d602de5cf7eda5f0f715a8a0d", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "010c7b8374e35b248945cb1a86effd5884bec434ab18fe4ade26d9b558db0d38a1520fb5f644013595a21bf94e76a334aa31002779e40bf7e9e714d727262db38a17", - "oprf_seed": "c16596e94bd594eb328ee761e0a1887bd78fd720c7ca3c5c051372c99d81dc7876d942ea2ff06a350f923435a9c6f477e118f6d4d457435525453851d8d6c183", - "masking_nonce": "c9a63bd144989b19235a95f287bcec34b3205d56665cf1150e6f284176c08e35116524ea6c2fdcace39cec4da3a7cff8badb0ed2d7b69b09f60d17c0c975ab40", - "envelope_nonce": "d6bf1ed3a9a7a01117601c9ee895b920796c37277e88aae79e5c82283ba9b144", - "client_nonce": "9e338a60e944810d17531826051dc6e37924c212827139254b69a0c865dcd068", - "server_nonce": "c84b844b04286f186b2aeebc4103807f557787bdab9b0c753b6cc4f8bcce2ac9", - "context": "636f6e74657874", - "registration_request": "03013da5403d8197b44fb2511fc40b268d4a2a52a418fab3547a1faef30ca5b3f99e8656c431938a3ca130401081bcde4c283a222bc4750990c1a9780cb3a5b8b07604", - "registration_response": "03018762c323bed064ffa56ce959b15a7ecf460a2d683fa9a77a4a3a9d750bf078e00a2d2655adff6445095c9923d430748c18df1d58b6983b77e90f777cb7be43bf6bceb112c998aab8a83098be0e488827919ced0386595c4e598c088daab9500c0f", - "registration_upload": "9412c7cd4602e95843873e81641acb7d7d848f296e8bd13e2aabe2b6f765e057e57249cd9e4a3933b6e041ee23d5343de013c8125abad89b3cfab53b3d814acff0b7ad644545cb5577014c9563e9103ae0f945dabc9851ad8c5f619e6d1bd9d89df2f24beaa7e529640b970ac597d6e3456ec9b7d36a2b890a97ab802ca90e054a6eda0c3fd684af13828a9d98fcd636784bc6d73b969bd5cfc926e89846a14b8d71d342d5f573fb1c05a88849292c1bdf4d93577e7a2529ae169283dd4ea6d1", - "credential_request": "03013da5403d8197b44fb2511fc40b268d4a2a52a418fab3547a1faef30ca5b3f99e8656c431938a3ca130401081bcde4c283a222bc4750990c1a9780cb3a5b8b076049e338a60e944810d17531826051dc6e37924c212827139254b69a0c865dcd068544557ef4fc18374150778acd6c7ad3626ca7616858e4e523cdf7472acf1aa5a", - "credential_response": "03018762c323bed064ffa56ce959b15a7ecf460a2d683fa9a77a4a3a9d750bf078e00a2d2655adff6445095c9923d430748c18df1d58b6983b77e90f777cb7be43bf6bc9a63bd144989b19235a95f287bcec34b3205d56665cf1150e6f284176c08e35afaa80b5a0b5aae20ca99f6552c27341906a796b668b21882317fd46008d3e34b60ecec015fc91d71639d55f0070c4d2f748b152e72e1b17400b0dc266c188940b3c6c86fbe086ac2c28bef718ecb050c6c56317a71913fc5f193ccebc5a1d881302115f3589b7c1788d33c81f63d839012660e48f7b942ecf7e909899a0593f139a6f95f63c6e3cb8e461e442f6ec04e2aa1afe4279a7e4bce4f4a4bc9bc607166ebcf6d93a36e8e2c0069c0c90e07ce34b49863dfd94e4d7cfa0ff1591bb11cbcd464e2b09cb09e3ea01cbc45ace33f673029cfd0692f974b66441bd7daba26ff9e877ac26a8bebb00b281c5d6299f1a4da87da6ec2585dcffa4c0b0273b06", - "credential_finalization": "a7ea907ae7aef2265a82138a49d2c818f6bc5702989c2932a4336ab4138497f0aac9fcfc94edd4f686d8e693c11dd0351fb8c88514c93f2373f04f73bbf5bf94", - "client_registration_state": "010c7b8374e35b248945cb1a86effd5884bec434ab18fe4ade26d9b558db0d38a1520fb5f644013595a21bf94e76a334aa31002779e40bf7e9e714d727262db38a1703013da5403d8197b44fb2511fc40b268d4a2a52a418fab3547a1faef30ca5b3f99e8656c431938a3ca130401081bcde4c283a222bc4750990c1a9780cb3a5b8b07604", - "client_login_state": "010c7b8374e35b248945cb1a86effd5884bec434ab18fe4ade26d9b558db0d38a1520fb5f644013595a21bf94e76a334aa31002779e40bf7e9e714d727262db38a1703013da5403d8197b44fb2511fc40b268d4a2a52a418fab3547a1faef30ca5b3f99e8656c431938a3ca130401081bcde4c283a222bc4750990c1a9780cb3a5b8b076049e338a60e944810d17531826051dc6e37924c212827139254b69a0c865dcd068544557ef4fc18374150778acd6c7ad3626ca7616858e4e523cdf7472acf1aa5a10bf3935bdc04f2133d0eb17c6a84ff0d901431c95450328ba1692b5f80ea0049e338a60e944810d17531826051dc6e37924c212827139254b69a0c865dcd068", - "server_login_state": "1095ed5a9ff61d8633914d4f47003116b72b73738e274dcee2a8c5e71abb3365d19da34866a5ab3781e48fc340a0cbaf83872646ead0284eba6629b4a6591dbca924a83fe5c6b3cf0e7a9377f12af861ca7666c4506d91bed3093cb7ecec78e4dbf36aecdde558a819965ae22f2b82d3d26eb27bbd4b7ee679100ae4b228d7079871a24403fc269146c1600a6820334b444cacdac99c1217de12502bc15500b95bb77c290148aeaa71dcae5ef921773128b69f94e1d981cacea36e2898bc612a", - "password_file": "9412c7cd4602e95843873e81641acb7d7d848f296e8bd13e2aabe2b6f765e057e57249cd9e4a3933b6e041ee23d5343de013c8125abad89b3cfab53b3d814acff0b7ad644545cb5577014c9563e9103ae0f945dabc9851ad8c5f619e6d1bd9d89df2f24beaa7e529640b970ac597d6e3456ec9b7d36a2b890a97ab802ca90e054a6eda0c3fd684af13828a9d98fcd636784bc6d73b969bd5cfc926e89846a14b8d71d342d5f573fb1c05a88849292c1bdf4d93577e7a2529ae169283dd4ea6d1", - "export_key": "fa596949b4dd6d8ddf9d75f9298904422b034b9e9bbcbaa977e7cb70d93373cee465c92a0a2897aa60f166ec15706efd73dd00a0d53375e135cf8e760a659965", - "session_key": "9871a24403fc269146c1600a6820334b444cacdac99c1217de12502bc15500b95bb77c290148aeaa71dcae5ef921773128b69f94e1d981cacea36e2898bc612a" -} -"#; - -static TEST_VECTOR_P256: &str = r#" -{ - "client_s_pk": "02c2e8f49855c9f783a851dcefbd8987ce90d8e85cf191c7aa475950c771a1a392", - "client_s_sk": "5ae546ad6e00e6434492285305f0a087a2c0fd4c70d867c87e59aa18df7168d1", - "client_e_pk": "039f4ec8755bb55f7b815f08fdda9da51a05edbc22025a3d4f5ff7b6ddcdecf847", - "client_e_sk": "efaaaad9104f1eaf18014d70ac70a61073cb1cf471b02b89dc16f6a338c9aac5", - "server_s_pk": "03923edfe871973dc0e549692526eeed3967fec567cd4ccba30ea3696614e5c9d6", - "server_s_sk": "21cbcff4c92ceb1acade2eccf301c7defe655f55d7354d1326a1259de4f6afc9", - "server_e_pk": "037ae15922e04a5e1d288494176932c8b4defae649eae82dd40876e9bc5afe7236", - "server_e_sk": "6162bef0095725abad6b72a7e3e64599fc1b5df9064e7ce40766fb0ac7e7964e", - "fake_sk": "da212727cf2f6f38c536014c883c22c35cb9efc4a27228563d364ab4d12ec5fa", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "9d781bd63f99a84b819c99c7ce497e6288f9122834048945997f2d76147efde4", - "oprf_seed": "b09d533d8960cb471b05a36882927adbcbe7ef600ba74e1af31d1486230e8adf", - "masking_nonce": "2590367466a06ccc880d11398181d1c302144c05e4ac5a0528ef3336fc26e4f13e45edf9d43d0d4e9c6ec08536895968111c4d23f6f9ecc6734999e7466ae9c5", - "envelope_nonce": "aacb6bb400ab28256d2e54d9eca742857f6d5e29c92b7b0044c95215b6db4892", - "client_nonce": "27e8fe90451e2934e8dc358fe30ba07d15175e2c70a6fda88b1bab732e80c140", - "server_nonce": "fefe1c85ec03f03f8ab66d4037a661f677954cda1695765381fe56ee553275bf", - "context": "636f6e74657874", - "registration_request": "03493e2bda2f5ce79408178469ddb1424bd6880b796945caf97eca254091493c4f", - "registration_response": "03f66c48699b84e856f2110cb770c46c59fd75831d5fe0a4b1c164a2b13272798503923edfe871973dc0e549692526eeed3967fec567cd4ccba30ea3696614e5c9d6", - "registration_upload": "033975e189b8c31851993d7b38abf30c0fc666ab8fb93e5ad8581a035fbeb60283bf546c8d3d8f1759d16dd4db3653c45248c8420703beba195304e1f5600cded75ae546ad6e00e6434492285305f0a087a2c0fd4c70d867c87e59aa18df7168d107ed74db82d4ef8d7268bc2dbcb146681347aafd7ed9bb8e78399766d753688f", - "credential_request": "03493e2bda2f5ce79408178469ddb1424bd6880b796945caf97eca254091493c4f27e8fe90451e2934e8dc358fe30ba07d15175e2c70a6fda88b1bab732e80c140026a65dd93748b6d545fe24839cdcba11db412e3649d704e88a0a24b3600671a77", - "credential_response": "03f66c48699b84e856f2110cb770c46c59fd75831d5fe0a4b1c164a2b1327279852590367466a06ccc880d11398181d1c302144c05e4ac5a0528ef3336fc26e4f1fc2abe70c70551c2922019c4e8aa092a32492dd50e0be8aaa44913d2c7253c8255ffec37fd5612b651b7ac26e5f2aeebb0caeddae68e8dd49aa0ee522dce90900da3537d718ae15954a5b5c2678d6efa31c846f6bd46605b56fdf70a448c3143c46162bef0095725abad6b72a7e3e64599fc1b5df9064e7ce40766fb0ac7e7964e03f609f0b7575cf87465a11900d2ac4e91f8097f34c5668b974e55af50ae1ddf4895d3f8760cfd8699c9bf6ea54fdaaa7af049e2ec205505ab33fad7c0ce680c14", - "credential_finalization": "e6aa42333906d3294b5f6f153c746974bfbb3f9d6eee94fabff2757994ae0828", - "client_registration_state": "9d781bd63f99a84b819c99c7ce497e6288f9122834048945997f2d76147efde403493e2bda2f5ce79408178469ddb1424bd6880b796945caf97eca254091493c4f", - "client_login_state": "9d781bd63f99a84b819c99c7ce497e6288f9122834048945997f2d76147efde403493e2bda2f5ce79408178469ddb1424bd6880b796945caf97eca254091493c4f27e8fe90451e2934e8dc358fe30ba07d15175e2c70a6fda88b1bab732e80c140026a65dd93748b6d545fe24839cdcba11db412e3649d704e88a0a24b3600671a77d406726833e0a9451751dbb50af5764e45187906840cdfe814282d5aa0efa95527e8fe90451e2934e8dc358fe30ba07d15175e2c70a6fda88b1bab732e80c140", - "server_login_state": "dab1a874a0f1db74fa0c9526e6b55b2c4843f26d181b410278b76f1a5a65b0b960e1c6fa8b17cca50f4dc45d53a7f5ef975e31406b31418b87d2d9cab0991e2326ca86363e475842c54ce152c8075b5d633ce3d44f3123bccfbb9a444833f6ed", - "password_file": "033975e189b8c31851993d7b38abf30c0fc666ab8fb93e5ad8581a035fbeb60283bf546c8d3d8f1759d16dd4db3653c45248c8420703beba195304e1f5600cded75ae546ad6e00e6434492285305f0a087a2c0fd4c70d867c87e59aa18df7168d107ed74db82d4ef8d7268bc2dbcb146681347aafd7ed9bb8e78399766d753688f", - "export_key": "5b8816c59a360431bf7afe5d93644136617c2d25bd67673785cc593cc40b1e35", - "session_key": "26ca86363e475842c54ce152c8075b5d633ce3d44f3123bccfbb9a444833f6ed" -} -"#; - -static TEST_VECTOR_P256_P384: &str = r#" -{ - "client_s_pk": "0300ffa27e9e1c07e726f3446303fd6e169a824e938be7142c5d57c966c41f48cd", - "client_s_sk": "63bcffa26f32783271d78d3b84dbdefda3a4533bc11d7ce73de145c6a80ea659", - "client_e_pk": "03f46e7129db840987843f76ec3c1521c7c753740bcb22f00b37b2cf52a9dc5974", - "client_e_sk": "502bd0e6474522e6c0572f81e4d7ba6cb87430aa34bad5eb7509d0dd5f2aa01e", - "server_s_pk": "02ec3bb6cdaa17e7e0872a57e2c89e2647983bced0b86ffd0d7fcdfa304f90e03f", - "server_s_sk": "47965063ae881466b08ba9e96cf1fc48d6bfb7e23d0a6bac30498b114dfc5a54", - "server_e_pk": "0304fc747fa5640c258d4846be2f6529ad35d61782f3e45a48efd6d6dbd1cedf07", - "server_e_sk": "1bdbabc050b6f5d59d01b02a03d187b0954c8a9341b696cb60c49a8511ab9712", - "fake_sk": "cf19797c598f15e3cddc5e01388999e85ca49ef729dc2e8ac10d8f10ff59d2c7", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "ef8bb36f1ad0921181910a8a1a497e18c1192264c5389f4e2cdc270d322e0a0c9b74284ee2af3d476cc7893fe7597d01", - "oprf_seed": "1f9b1338fb64584fdd2ef104c15a15a75cd9b922dedcdc4037409c4dd69c5aee2ecada1652d380f3335352baf92974c0", - "masking_nonce": "889e0b260347814b97b922fca5c96f89e3974776f2d6486399d17f7634d90d3a7fe5cecf435269a054b3b24d968c20c586ead3fe3b529b7a129f2cd75bb11645", - "envelope_nonce": "df7b5518d79f0c5748cbe6ba671786680e895ab470e8a8399018ab4a245e308d", - "client_nonce": "ed8e76fe71017d89879ec9580cbee48e1dff47f05d52e4e7655ea65a813897a5", - "server_nonce": "92fd03780d2b4035ebe83915fe37fa650477ac7d20a8d83b553d43a569beb584", - "context": "636f6e74657874", - "registration_request": "03f98a111741a24c1ad90f15985ac345636e631cddde1d05dd8d7f5fc00e57483c5504f390e8bda613345aa89d3493bed0", - "registration_response": "029daa00653cd0b4f9ac0b9e5640e6c6b608543e02955a40de853bcc530f3180bdd52991e528e570e650a6c50d6ed06b5602ec3bb6cdaa17e7e0872a57e2c89e2647983bced0b86ffd0d7fcdfa304f90e03f", - "registration_upload": "020b1901303ffe1ea63379d6e310d39712521ca43609a8bcfa4db28866411355862282ab14133a5a1c095c9af7b4ffc61aa5371b3ed762a24f94448e6ca0bb87b7c0ce558dce762c73aeb6ba1f4b56681363bcffa26f32783271d78d3b84dbdefda3a4533bc11d7ce73de145c6a80ea659033f437455f7be8b3ed47fd871057beb6e30785364bb586c074c0c4b475d17129383f531042647448933a17914cc2b61", - "credential_request": "03f98a111741a24c1ad90f15985ac345636e631cddde1d05dd8d7f5fc00e57483c5504f390e8bda613345aa89d3493bed0ed8e76fe71017d89879ec9580cbee48e1dff47f05d52e4e7655ea65a813897a5027204ea166787e2d7766ae8101143be5283f79ba8107b33f8db03339d72970597", - "credential_response": "029daa00653cd0b4f9ac0b9e5640e6c6b608543e02955a40de853bcc530f3180bdd52991e528e570e650a6c50d6ed06b56889e0b260347814b97b922fca5c96f89e3974776f2d6486399d17f7634d90d3a68490a295fd49a787786c1db2bb1e31e38b56e8151e958f8770041746fb5496696be499beb470f04a2ea7074502918277c024cd785b534de8ced805918a2a0bce17eded3cf11e6fc2e54d67d641632fe1d2fb56bf641540c34a023d32913fa9eddfad0aadd9fddfbe1c9af4a96da04887b1bdbabc050b6f5d59d01b02a03d187b0954c8a9341b696cb60c49a8511ab971202d56b40e364d4947215d3befb46b114cedd8ae3f75f9d38767a7cc87315e3473d94ca79a51b45a5bdc935be80d9bf697d384ded48d5d5b9bdb85432e3d85ee5aba8729d55ec530313d28ca3208090ce11", - "credential_finalization": "6ab06573cb9bb92a5e4ae2c6623bffc5463f94b81c2d38c1416e4dce35c32e49d2225ac5957a9913e1badcab819f35af", - "client_registration_state": "ef8bb36f1ad0921181910a8a1a497e18c1192264c5389f4e2cdc270d322e0a0c9b74284ee2af3d476cc7893fe7597d0103f98a111741a24c1ad90f15985ac345636e631cddde1d05dd8d7f5fc00e57483c5504f390e8bda613345aa89d3493bed0", - "client_login_state": "ef8bb36f1ad0921181910a8a1a497e18c1192264c5389f4e2cdc270d322e0a0c9b74284ee2af3d476cc7893fe7597d0103f98a111741a24c1ad90f15985ac345636e631cddde1d05dd8d7f5fc00e57483c5504f390e8bda613345aa89d3493bed0ed8e76fe71017d89879ec9580cbee48e1dff47f05d52e4e7655ea65a813897a5027204ea166787e2d7766ae8101143be5283f79ba8107b33f8db03339d72970597de1f1c0591eaeacea4eaddf441e4f78007347895f79775d836aeef03269ef260ed8e76fe71017d89879ec9580cbee48e1dff47f05d52e4e7655ea65a813897a5", - "server_login_state": "4af2c9dc93a9681293550723eccabed75aec6fc72b688bca2c68d8bdd8fe21c66b94753b04b4f9b9d1dfb3661397ca712f8990baea7679888d3045640cf0f17c98a6704146f5e4f6cfa2c764532fa1bfe78bfdbda526213af50d2c6b8dbd83eeb78c21b07ad43485cacaa2bb6743962ea4d450fab27f9d3848b4d4f5a50ecea2ce3fcf3007867d8e708182d76f97ba2a", - "password_file": "020b1901303ffe1ea63379d6e310d39712521ca43609a8bcfa4db28866411355862282ab14133a5a1c095c9af7b4ffc61aa5371b3ed762a24f94448e6ca0bb87b7c0ce558dce762c73aeb6ba1f4b56681363bcffa26f32783271d78d3b84dbdefda3a4533bc11d7ce73de145c6a80ea659033f437455f7be8b3ed47fd871057beb6e30785364bb586c074c0c4b475d17129383f531042647448933a17914cc2b61", - "export_key": "f79bdebcf6534e9fbb727a295edb160e952a8bda27b0e1d3f2379ece6bde6fc5d0d4486e2a37ef41d2fd1d0fe1719fc9", - "session_key": "b78c21b07ad43485cacaa2bb6743962ea4d450fab27f9d3848b4d4f5a50ecea2ce3fcf3007867d8e708182d76f97ba2a" -} -"#; - -static TEST_VECTOR_P256_P521: &str = r#" -{ - "client_s_pk": "026ace2e49b33570703571fc51510894ac20a900fbec77b9384053bf6953d80f7a", - "client_s_sk": "93193996fc683bc53bc810c2e6347be88b58537175b40c9350d876327d834699", - "client_e_pk": "026000d38af4e10ca2ff27b6705b5088289e67a7665fa28a2461e002d1e3b2d171", - "client_e_sk": "ca36f9168931b0ef649e9096404d6c3937158e71ab3c7fc9d1072cc7103c8d4c", - "server_s_pk": "0380d85bc1efc536b509143d572de289762daf71860433451581ca32a62f709cdb", - "server_s_sk": "8fc0c570b66d932d9dea28dba6d0f2d81e88620bdc8f56508224a43d0024f011", - "server_e_pk": "02322cff1c6011018298628d2ecaca4f73ba1fc1c11233cf56e1524c948a29096b", - "server_e_sk": "2ba0d48065ff3610831535fb5b5f3ce1d153b7e4512cd2f8a59b343235fa911e", - "fake_sk": "1f034fa4e14f44ae1d40af052d1adef642f6e389680ee655cf42191a7aacff63", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "006c59fb00b2b9e8c0cca65798ff2509b47eb38da1ba33c06262e8430f3a905198b2f7cc1e7bb1211ca7503b17fb566843990798f8b6210eadc32699a12565348717", - "oprf_seed": "092cd0f16c4ad4c7ee1e6ab605f4008d3dae6cff6f4769791cbedb13945f9654ef854dc5e9b20ccd5fda5f94a71637f1948d217d19fd3891572db046753c943d", - "masking_nonce": "cee3d0942b4ea18897d4193c6f5b3d9b66681e29485c7187f7a4b1c7907461da52913d00dcd654803bc2b93b10bb0bfd4ecdb81a7895c7e63e3f6f75f2fdb5f3", - "envelope_nonce": "fb978c35cf73e93d041bad8ab733f7a8858ea749bef09d96c49da4e806d57792", - "client_nonce": "fdaac5db3c4711ef0735776dc16567b7319b4e86bcf21f547db420bbe3d01934", - "server_nonce": "ba8c5c8acdcc7205afe3fca2fee68359252ed71028be3a5e3f84c915ff7d26ad", - "context": "636f6e74657874", - "registration_request": "0300509a38e769a55f6ceb689b4459556992c37a6f7f89eef42a49d8d5c0f00e68af2f1c6b044e2237230b8366412800f9866f14165070a471248845ff6c6a480565fa", - "registration_response": "0200f35180d7f7dabb1be52925409fbb9678212f1193f5e256aef0c369a1db8820d97efab733d734504482443c9f562414e3681fd966f8195c75880bd3bb79a46db6120380d85bc1efc536b509143d572de289762daf71860433451581ca32a62f709cdb", - "registration_upload": "0318f78494899a7c291aaaedc7fbf05d19332aef15264174174cb734e922e7cc2390dc220ae3f36299752baf772327cdbd93d33894ba6236e9b2e3c2edf23e2664d73df7e901a5afde0ca7c808177469d12ac927f69c5b52a4aa7828f0ce106fce93193996fc683bc53bc810c2e6347be88b58537175b40c9350d876327d8346990cb18f0477ab23dcf468b9377f9772aa2f6328c32b8414fcba19a81cf61220f6f7e7cc321552abb3b2eda29a79500fb805fb1cf6abc02c0d633cc5393ad982e3", - "credential_request": "0300509a38e769a55f6ceb689b4459556992c37a6f7f89eef42a49d8d5c0f00e68af2f1c6b044e2237230b8366412800f9866f14165070a471248845ff6c6a480565fafdaac5db3c4711ef0735776dc16567b7319b4e86bcf21f547db420bbe3d0193402b9e5cffa20267c414487855a45878c37f1fb32523354c1939a2bb4e1d65ce19c", - "credential_response": "0200f35180d7f7dabb1be52925409fbb9678212f1193f5e256aef0c369a1db8820d97efab733d734504482443c9f562414e3681fd966f8195c75880bd3bb79a46db612cee3d0942b4ea18897d4193c6f5b3d9b66681e29485c7187f7a4b1c7907461da501d40c5438bade885fd9299d0ae51f131db73d1ff9f326bb02347a797910c20e0970b564f9cdb53f02a83cd8053ecf292bb4d55e8c6bef7f36fdc0e2ec4e7870195984eea5981b1d2adfc7de049964fbe0b1b81e0acacd58de67578364d3b7ac54e2dbb317351645fbee01b2e1a4423205766cf757b753f3b7dc71c283f3a286d2ba0d48065ff3610831535fb5b5f3ce1d153b7e4512cd2f8a59b343235fa911e02246522dbfcd7f638635e8ca6be8a8478bb099d3cfd5a84530e63511e2f7db261ed063eef80d616cde31cc32f1ad06ca519fbbd627955ec3559ad957204fd8e55498254852ef0b047af6f1c2ae0d67c5e5d764df846446eb6da09500252cb0991", - "credential_finalization": "7f5422d1964671bda089ef02f1c71bb491edcae1a03eb1076c09364eec7fddebf86a2fa7e029f8e50ec2bd0021dcbccdc26ca57b060af6c29165120223253924", - "client_registration_state": "006c59fb00b2b9e8c0cca65798ff2509b47eb38da1ba33c06262e8430f3a905198b2f7cc1e7bb1211ca7503b17fb566843990798f8b6210eadc32699a125653487170300509a38e769a55f6ceb689b4459556992c37a6f7f89eef42a49d8d5c0f00e68af2f1c6b044e2237230b8366412800f9866f14165070a471248845ff6c6a480565fa", - "client_login_state": "006c59fb00b2b9e8c0cca65798ff2509b47eb38da1ba33c06262e8430f3a905198b2f7cc1e7bb1211ca7503b17fb566843990798f8b6210eadc32699a125653487170300509a38e769a55f6ceb689b4459556992c37a6f7f89eef42a49d8d5c0f00e68af2f1c6b044e2237230b8366412800f9866f14165070a471248845ff6c6a480565fafdaac5db3c4711ef0735776dc16567b7319b4e86bcf21f547db420bbe3d0193402b9e5cffa20267c414487855a45878c37f1fb32523354c1939a2bb4e1d65ce19cf48ba9205760a2ccf7038a73aba91ae78f52e7b611563ca4df9f0b12369124c5fdaac5db3c4711ef0735776dc16567b7319b4e86bcf21f547db420bbe3d01934", - "server_login_state": "fde310fff92b130ee7f4f19d3bbc573726bf486a921a66a9fd5ae1d7ade3d832631cd04d0f63b0ad38854c4dd55f73c999aa8a3c7a5a4a5780174ac427cd690d56add666e24869df0f8356c662cf3b66c234d8318294ce5c46175db05fbc8d06ccd092c247a299685f603046ea43ce6dc0193a059a7c5e8ae3fd1a01eb2554b5862a1d39e424f021ba5a20c779b29ce8dc379eac186133ec9a5a74ceee9da4e0097f4fb6627a44241d699dfef7e43908a8a456740133bc14e3b5df98fb65613b", - "password_file": "0318f78494899a7c291aaaedc7fbf05d19332aef15264174174cb734e922e7cc2390dc220ae3f36299752baf772327cdbd93d33894ba6236e9b2e3c2edf23e2664d73df7e901a5afde0ca7c808177469d12ac927f69c5b52a4aa7828f0ce106fce93193996fc683bc53bc810c2e6347be88b58537175b40c9350d876327d8346990cb18f0477ab23dcf468b9377f9772aa2f6328c32b8414fcba19a81cf61220f6f7e7cc321552abb3b2eda29a79500fb805fb1cf6abc02c0d633cc5393ad982e3", - "export_key": "2f3130294835703f7412386eb2ff101c391a6d22ddf2e831f932da6e0d2cbcf40092276f4c23fe2edc54e45828acd762c9aeb451aeae3a70f9c1bf37a4dcd87a", - "session_key": "862a1d39e424f021ba5a20c779b29ce8dc379eac186133ec9a5a74ceee9da4e0097f4fb6627a44241d699dfef7e43908a8a456740133bc14e3b5df98fb65613b" -} -"#; - -#[cfg(feature = "ristretto255")] -static TEST_VECTOR_P256_RISTRETTO255: &str = r#" -{ - "client_s_pk": "026a80b08688346c0a5d884119239af863b0729ef14bf8b86b285b5751b6e2b067", - "client_s_sk": "8ea03094d56fdfd7937b9a4b8b89e2b09f8a2a493d6409d39dfec1f4612a4fdf", - "client_e_pk": "0326c437e32e7a5604807b24f92385cd732e6b70f70793fd59022d9470e6579622", - "client_e_sk": "4fe1d7f5159e429d35bb4d3c66ca20f50b133893f1e1712e89d9edd34c044612", - "server_s_pk": "02267105ddf0f2a9531a0875ab315f1c831766134af1b7e4ad9c4f298ce0536eea", - "server_s_sk": "8871c04d141df9881e3ef15210660112c164cc32867f3ec0bd67d68cbbd87424", - "server_e_pk": "03315305fc11f61944bc790a112f01e1020df7a830479618e7a42dd2204d30075b", - "server_e_sk": "225599a7b01f047bee6fba835c86f271410b786b3933cd7542abc8c58afb10f8", - "fake_sk": "61ea20ed0bde67756fe11072c5a8aa3103085a293d60bcbb0b5c5e09920d07d8", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "269627e7fb86bc28052c4538cd8a4a8cf30ed530196e0e2d99a8382a78c21f00", - "oprf_seed": "3abaf808e5435b5fb9929d98dc3060827fe627bbaefdaeb9205b9cdf2037a625ce8a687ab3f85c0a70629f94c1f23212f8d67b3dd0fc422c5f65a600350267b2", - "masking_nonce": "093ba9502b07a9a838f28bd2bfb9699315549db299ef6196fa32233acdfaabf9b97a0dd265db7ff52ca1b1f3fadedfa9dca26751b166972e6ab6569ff08ff5b5", - "envelope_nonce": "d7e0137e8adf2de3b00cd9e0c888f36ecba2ee18f92e51b7298fbaa654d286ba", - "client_nonce": "1186e18b135739cd36cde4a2dd72ce5d1c4a92a96da279ead6f54813f84d9d86", - "server_nonce": "9589f0bbec5cc2c68b98684158b8ef40f81f7f0fb8b2197e90d8e3666cfd1682", - "context": "636f6e74657874", - "registration_request": "f28816d64e1d4f17a0f36830ed92349d29de1e0444f21147a23d1952a4355573", - "registration_response": "7c734fdd7907d3aeef3fd17a8bb1d08642ab04f36c1eca4d8e6b10147c8a505f02267105ddf0f2a9531a0875ab315f1c831766134af1b7e4ad9c4f298ce0536eea", - "registration_upload": "03ce990fb3f9331bccd12eeadcf92f938dcf3acb07ec660c2936f8adc34554d7c7ecb4d45aa36908729dc4ca3e7c6e0a4a605fef0e7aa9c84de814e304a27dae2b8738f10785f2a1005d906a37f12b259b83a9f8406b6d6783180ba471e27393858ea03094d56fdfd7937b9a4b8b89e2b09f8a2a493d6409d39dfec1f4612a4fdfaa6224b035117cd28adba5aeba7c4733b66b44fa47052f2f50fd68b02360a769157fbd7e00af377f755d2ae0d1f6042eeb8e45c0c870eb7a985c8cd867aad53e", - "credential_request": "f28816d64e1d4f17a0f36830ed92349d29de1e0444f21147a23d1952a43555731186e18b135739cd36cde4a2dd72ce5d1c4a92a96da279ead6f54813f84d9d8603eb66e9a64dd24d6aa1a89dc0002e3e12f01b3dc6d9005bd72a03ef934377f23b", - "credential_response": "7c734fdd7907d3aeef3fd17a8bb1d08642ab04f36c1eca4d8e6b10147c8a505f093ba9502b07a9a838f28bd2bfb9699315549db299ef6196fa32233acdfaabf92bdd08e08a4ac46f690d1dc4ad05eb4323770753adbf0c354f7fe215200c3091b4342949f456fb3d0e2d6a59ce9da891930dde787b9b6943446bebf9b029a82e878e2ca9412df818403c9a8b817985f9697219d1319bd90b57793a64472995b72b0f15551d35c1f90db203b8dbfc3448fe35982b350349255b4d1a8bc100d0f280225599a7b01f047bee6fba835c86f271410b786b3933cd7542abc8c58afb10f8027a0c4c39a84d38b39f2b54c62c20b312fd37090e841337483b27047c143b94a1d57a81fed7757d80845053b83cb02890e60ec0f48d241965f752dbc826b88753d2d256b76e8c181f48d7c24351da7b2bad1c41790c20776db86c654bf48cb9ae", - "credential_finalization": "643a6547dc003d7caa81adadfb74be774853e0a422bf58fc61e5918a3dff35e9854b4150c73ddea93283deb6aa4216437fad406fdea480ec229fcdae3c83d6da", - "client_registration_state": "269627e7fb86bc28052c4538cd8a4a8cf30ed530196e0e2d99a8382a78c21f00f28816d64e1d4f17a0f36830ed92349d29de1e0444f21147a23d1952a4355573", - "client_login_state": "269627e7fb86bc28052c4538cd8a4a8cf30ed530196e0e2d99a8382a78c21f00f28816d64e1d4f17a0f36830ed92349d29de1e0444f21147a23d1952a43555731186e18b135739cd36cde4a2dd72ce5d1c4a92a96da279ead6f54813f84d9d8603eb66e9a64dd24d6aa1a89dc0002e3e12f01b3dc6d9005bd72a03ef934377f23bd8fabb81cc58414997e3c76aba160146183de4cc966657e5b1def258df81ff6b1186e18b135739cd36cde4a2dd72ce5d1c4a92a96da279ead6f54813f84d9d86", - "server_login_state": "13bab355577815ab29a0571bc571f6911d88f92cc64d6e930872674364b7400cacb5cab973263ca4da8687f36f894c06fb8939e96a7c6d1d4bed17dc1e00a12878b01cb72645993a5186b124808b8604a24b63aa3d934424dc78f9e56d02b506941b0af906d06edec7ab2eed07847fa424b5881e71282aa306d223902b37c354ed6f8a57a79a4433771a1b3aec9ab490df027ac3383a42cf7d09bed5c35e1dd1e092354e18d809935e1c19929906398286669f2603153de7026674823149fed0", - "password_file": "03ce990fb3f9331bccd12eeadcf92f938dcf3acb07ec660c2936f8adc34554d7c7ecb4d45aa36908729dc4ca3e7c6e0a4a605fef0e7aa9c84de814e304a27dae2b8738f10785f2a1005d906a37f12b259b83a9f8406b6d6783180ba471e27393858ea03094d56fdfd7937b9a4b8b89e2b09f8a2a493d6409d39dfec1f4612a4fdfaa6224b035117cd28adba5aeba7c4733b66b44fa47052f2f50fd68b02360a769157fbd7e00af377f755d2ae0d1f6042eeb8e45c0c870eb7a985c8cd867aad53e", - "export_key": "2fe20c906ff2656ba5c9c4bb313788f88395ef86281e4448462d5b1f5438d4afc91d2ccf9b8f340c0434db96a1996bc90cfa8a378c349c18e4291e793277e31f", - "session_key": "ed6f8a57a79a4433771a1b3aec9ab490df027ac3383a42cf7d09bed5c35e1dd1e092354e18d809935e1c19929906398286669f2603153de7026674823149fed0" -} -"#; - -static TEST_VECTOR_P384: &str = r#" -{ - "client_s_pk": "027ad019b16564c074d6f2ae68bdf20a738d7d2e9839a0abfa438a760d0c06c16048fcb8fd4f1dd115a7dfc3fea5f09b58", - "client_s_sk": "834a110fe6c0e7b6cea98c3bc534a928d6a842116774a1e01b513584405cd2e31970f765d7bf0db0ade9bf27fcd9cd0c", - "client_e_pk": "036a8b6a879e4b771b980f60263761fe7fe8ea7caf25f72093e4e7becaaea14a11a6acdc9ff156f0f9663623e17738a541", - "client_e_sk": "44760cfc351b43df634d788300fe8a21d3a1045654421a0c7db0e4def8a4f95f78900b61e9ceeff021f381270cdb5418", - "server_s_pk": "02f66681149226426db92504e9c0604e8f9fdbfc5f36f399e77d2a9b1383a00d693a04e3549bf909acbbd700162cefbca9", - "server_s_sk": "5dc037810ae1265de50fe0262b18f9f494866dfd9e8b10d7cd9126e513de0f3248510c8af60e8e61d875eb702610a010", - "server_e_pk": "0345d90f8c96cdec81eaaeb147250f54e25824b5fa9df6a333fa932cc73e3768228f3ba8b81a1480c1c8cd705775ea9761", - "server_e_sk": "c82bf9be4884f55e97240bb1fddf2c21cb9d44ea208a6448dcd0dfa25b4500b60990c58e8de1041a10068c8b1390353c", - "fake_sk": "c75ce826bfcfaa3328fbf6ca2060c5f80313048082da3bbe9b81654c4f6bdf87374e15ad49594315e973e0cd289c6bf9", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "bc8fd9384462ca535b97649453851e7d053165c1d813f88f168e91deadbd58ff2f1ce08628948d75db1ae9ddca1d5b97", - "oprf_seed": "b06de4f6d4a0dd8efe8afb46f51d197a3e098d0af21b52b4a5117d4980ca8fcd90c629400a43476271e89291d6618096", - "masking_nonce": "5469703e134b2b70a9ad0aad851cdd22038fce9291147198b87d5731ec1ab5000ebf49eacbb3b90e6ea84bc1ec0032b233b9edf505289298db7ef65720e1f2aa", - "envelope_nonce": "f4320d83faae12c799f3ceca6a84c4aabc9bc1896b11b217087a9b820c6ff075", - "client_nonce": "4edb4057671642bb7630028923812954abdd34f57bf6f62ad4f24568680bc0be", - "server_nonce": "aa49c4593ad1ff89776852ab9f555a68eba4b5d86c7ec7f39577cdb04684e24f", - "context": "636f6e74657874", - "registration_request": "0305632a043103148c0c50187844d031dc33aa81ab6b9d13919469b317703774ee3eea7c7b4b63445fb446ce2c4bde9173", - "registration_response": "03f878aaf28a28fbce8805a11b0feccf82233c46a75f7c8513c47a23bba92bced8f95d97c795c70a7755ac3c5b290a14a302f66681149226426db92504e9c0604e8f9fdbfc5f36f399e77d2a9b1383a00d693a04e3549bf909acbbd700162cefbca9", - "registration_upload": "03499599951aa81858e10fd6394610cdceee52195ca2f5eab241fb8a30d24f4f6ce3f33839c025bf5ebbc056d489e55797cab6175299333799ad308b718815a97d3326c82311f380dbc3d3f3bbb1c9922fa75b4eb2125fa386b75b610a07c2f639834a110fe6c0e7b6cea98c3bc534a928d6a842116774a1e01b513584405cd2e360093806a0701ac9820c29ac81ab66b91d12243b036b20309c2dab1a473869c03efadc490a20af8f3e5dec0f5643a621", - "credential_request": "0305632a043103148c0c50187844d031dc33aa81ab6b9d13919469b317703774ee3eea7c7b4b63445fb446ce2c4bde91734edb4057671642bb7630028923812954abdd34f57bf6f62ad4f24568680bc0be025cbaa73207a363589d904f9ccc29197ddad82e32580db1e4fcc26eaee9e202cb40e8b0a08b5d1f1240e835f9da08d0e2", - "credential_response": "03f878aaf28a28fbce8805a11b0feccf82233c46a75f7c8513c47a23bba92bced8f95d97c795c70a7755ac3c5b290a14a35469703e134b2b70a9ad0aad851cdd22038fce9291147198b87d5731ec1ab5003eff2203d3b86ee028fe1889fd24b6459a3ed00fda3cf90bfbb9508ce62367a185609ec407a7765a2cdfb9d4558c984bc3c235451a584c133ca70c57ef5573f3dcf29dfdce332106e53d4778331e8dcf4f807f3f13c41748fd251c5af002f64efc48cfbd7243d78ab451b9c9cc0dad4fca77583abe51538f2f42cb198cb698b7fccb9d44ea208a6448dcd0dfa25b4500b60990c58e8de1041a10068c8b1390353c021e31dcaffe65a256f1b32c8e91fda21d475a4b4fe06c961a6e23a7aca49214846a5d999db011e5de464859ee8d023cf96d3c35ef24a969602bc8b9346dc55a5a4fcb14aa9f42932986885a79317945d277e9601dc4ccdb5fee028f17fb33f14e", - "credential_finalization": "4d9dd316ad4c575ef6c6a26f90e72f26672d8740e03c9d8808c95449f3279ec8709c5d2f1fc1cf14270d3919ee952e86", - "client_registration_state": "bc8fd9384462ca535b97649453851e7d053165c1d813f88f168e91deadbd58ff2f1ce08628948d75db1ae9ddca1d5b970305632a043103148c0c50187844d031dc33aa81ab6b9d13919469b317703774ee3eea7c7b4b63445fb446ce2c4bde9173", - "client_login_state": "bc8fd9384462ca535b97649453851e7d053165c1d813f88f168e91deadbd58ff2f1ce08628948d75db1ae9ddca1d5b970305632a043103148c0c50187844d031dc33aa81ab6b9d13919469b317703774ee3eea7c7b4b63445fb446ce2c4bde91734edb4057671642bb7630028923812954abdd34f57bf6f62ad4f24568680bc0be025cbaa73207a363589d904f9ccc29197ddad82e32580db1e4fcc26eaee9e202cb40e8b0a08b5d1f1240e835f9da08d0e2e546cb8ed99c8d3ad4c1f32c4cf19ce4da1e2a13700df0a0a1eed43f251261f6e7edb92cb124f652241186604c5f1cdb4edb4057671642bb7630028923812954abdd34f57bf6f62ad4f24568680bc0be", - "server_login_state": "2e33ed0981c481b9141212ab38ca6e8ed1cbc132f8b96c70c2268b6b10aca88c38411cae2cf819b786922785bb2b7019e20c7da8c330d03e251b1fb4555995389964ad78cda9a6ea30c9b0e5b3733656c40cdf92f31ad08331baddf5c98a4ff6641618b739a79bd6a29f917505c30ca462b3d43b762fd7cfc8181fe439055f4f151e5ea1796bcc0f146305e9712c6376", - "password_file": "03499599951aa81858e10fd6394610cdceee52195ca2f5eab241fb8a30d24f4f6ce3f33839c025bf5ebbc056d489e55797cab6175299333799ad308b718815a97d3326c82311f380dbc3d3f3bbb1c9922fa75b4eb2125fa386b75b610a07c2f639834a110fe6c0e7b6cea98c3bc534a928d6a842116774a1e01b513584405cd2e360093806a0701ac9820c29ac81ab66b91d12243b036b20309c2dab1a473869c03efadc490a20af8f3e5dec0f5643a621", - "export_key": "4e00ea96339443ec9427a94d5ffc38faf7abfe49bc45f33a2b8893ca05266eb7c3d9dda533244384656e3595e589d4d0", - "session_key": "641618b739a79bd6a29f917505c30ca462b3d43b762fd7cfc8181fe439055f4f151e5ea1796bcc0f146305e9712c6376" -} -"#; - -static TEST_VECTOR_P384_P256: &str = r#" -{ - "client_s_pk": "03aa7fcc3a2b13ed9080a84f4c73ef1e8431cb0f981911d8e9b1bbf6d1b13a97c6b4230bfeb638d960f2deea221c699e80", - "client_s_sk": "e465935788fc3d6f16cdef00c912f9e032a6aa4d9452c86cbbf2549217f390b0a81faffdca2b752ec7bfdee0dbcda7a5", - "client_e_pk": "020c105b40758cf0d0c596644d387eaf598dc215652fb8c7ae3f9cab07b72ca87feb3385ede83ca6792df13959ca866650", - "client_e_sk": "a5c0e6f2080c4952fefdb7e50753942e8f46ed5dcd16925d976a6919d601721e7d2bd75f89b07e4a48cb7e9a5afdd450", - "server_s_pk": "0295c88cdbfefcacbab08754dd36b58abc72026e761a6e0337b4feee1392dd4dd0f2ac6817bb1e12df2c6020a790343695", - "server_s_sk": "82aaee1871a785361798e2b78179a333ae3c4da7fb8d537534e244f889c2bbc51f92c4505b24bef69dbb5028cf87653e", - "server_e_pk": "03363da7ae2f5ebf0ae9e3d98fe6c7ecc41fec55afa834959e71a61d848d850cf50f2636c877f78e8a7a3d525408dd79ef", - "server_e_sk": "a271eb33e9b9ec5f8bc797a66596bf477cbf8d4b7fbe69b18509dfe633f4159cbd3a5e92d3bd0fd2de81a7d9bb6499f5", - "fake_sk": "90574e2a941462615a8958064f02cfd2070ee0c2f12761eb77e70d6b5f5eb8417843b6812c89b6841ff7bdbbd2db33cc", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "48408a664deda29200696fdb750224da0210d17f45a0b59de34162e63b57b994", - "oprf_seed": "94b2ded5dc7b7bf787234c8deaa2107d2522b51125d2e58b331e36b6329ad4c1", - "masking_nonce": "2b7d2d7e3e856bb56a1b52b0e2caf2b166b72f3542dd96913979eec031ffe9dacce0484db3069adde7e122d145a993c31bb0f6f663c178e1f95fafc7a0be8a58", - "envelope_nonce": "e2476436fb2d0a4fbb17821008da5e16650a8fa03f68138b733a5d200e6c2983", - "client_nonce": "3bd63f9517a75441ea79144e4f6b050b815cb05211737902a074ae83c6aeb2f8", - "server_nonce": "cbbb2b55ef928799ec4007730505e0cf2189d5e60c5d914948d32e4a02ca4488", - "context": "636f6e74657874", - "registration_request": "0350999de8c8a3dfb259b5ce85966712c2989449758ac6ac14076c93c8abf3e656", - "registration_response": "03138b9a92582ac291858e1954b2dff11098c89fae57c2ff137400ba95b901a39a0295c88cdbfefcacbab08754dd36b58abc72026e761a6e0337b4feee1392dd4dd0f2ac6817bb1e12df2c6020a790343695", - "registration_upload": "03808b6fa408dc690f92e06196131aad15dff9164e10e11991d1cdcc763f979cfb4577cf766164fa6ffc75a67b13ac2a910b878ac6b600b274baa71d8eb97323ccf45443577c62faf1222bf0fe017d983ae465935788fc3d6f16cdef00c912f9e032a6aa4d9452c86cbbf2549217f390b0d55fc01d6e91ea395a9233165418b5584f38f31175083cccfae69578e85758b1", - "credential_request": "0350999de8c8a3dfb259b5ce85966712c2989449758ac6ac14076c93c8abf3e6563bd63f9517a75441ea79144e4f6b050b815cb05211737902a074ae83c6aeb2f802386993c958a9a14fc3a788d73f89fc932930a077c86d3222d9c40f07e3f0795d9f5c7191118978242bb722f72a082ac7", - "credential_response": "03138b9a92582ac291858e1954b2dff11098c89fae57c2ff137400ba95b901a39a2b7d2d7e3e856bb56a1b52b0e2caf2b166b72f3542dd96913979eec031ffe9da93db2760bead8c6834ed76bade81fe8cb849f92f957991ff9f41d1ecb7fa4eeb82acab5ba32fdbeff970a50986e16c069a230989b18a6d2488f096a52949a6e4c824f25e803253cd8498991c3707cb1ee9edc14c5b4b8b4d2e03b4059c075a785bcba61873a9d3994029e98580a55437d67cbf8d4b7fbe69b18509dfe633f4159cbd3a5e92d3bd0fd2de81a7d9bb6499f5039cf64cf96647d66faf21348683a4d80ee69fcbd8cb6545dc8a13aa52e226c77389c0f1a7bb2396bee9a6807ec566835041259eb94980ac4c5634dde99c9d0f5124e2653102170a34626f32907745e5c3", - "credential_finalization": "4fe1618a77247445239c7733cb0d25380fc728d86f5785fd08bbe13419fd94f5", - "client_registration_state": "48408a664deda29200696fdb750224da0210d17f45a0b59de34162e63b57b9940350999de8c8a3dfb259b5ce85966712c2989449758ac6ac14076c93c8abf3e656", - "client_login_state": "48408a664deda29200696fdb750224da0210d17f45a0b59de34162e63b57b9940350999de8c8a3dfb259b5ce85966712c2989449758ac6ac14076c93c8abf3e6563bd63f9517a75441ea79144e4f6b050b815cb05211737902a074ae83c6aeb2f802386993c958a9a14fc3a788d73f89fc932930a077c86d3222d9c40f07e3f0795d9f5c7191118978242bb722f72a082ac76bcd42cbe5150c7632326bf7b038ac8fd5cb09530c144cdfe798847035a7f14c82849c114e13883295de509a7a9a15d73bd63f9517a75441ea79144e4f6b050b815cb05211737902a074ae83c6aeb2f8", - "server_login_state": "882a3c1a309a19a32907ed72540b465f308380cb9adcb3e1d906d6e0c255f91de5ff8b87edbe0af9daa50908efb34a9a8da444ced5f1b0e2bfce8ffd4947e1e64d169ed4727febf302256f84ee462e2219c5217236da8749c8e3aec996eedf2e", - "password_file": "03808b6fa408dc690f92e06196131aad15dff9164e10e11991d1cdcc763f979cfb4577cf766164fa6ffc75a67b13ac2a910b878ac6b600b274baa71d8eb97323ccf45443577c62faf1222bf0fe017d983ae465935788fc3d6f16cdef00c912f9e032a6aa4d9452c86cbbf2549217f390b0d55fc01d6e91ea395a9233165418b5584f38f31175083cccfae69578e85758b1", - "export_key": "7c242005347a90ed8a263e0963f554d1c0fc2d0df3b3bdb4a818e94569da2cfa", - "session_key": "4d169ed4727febf302256f84ee462e2219c5217236da8749c8e3aec996eedf2e" -} -"#; - -static TEST_VECTOR_P384_P521: &str = r#" -{ - "client_s_pk": "02dc23c166e9c1c2ea87c53067b21851732c6c811263e0ac28b04f861bdf6081a422394ca7d0c6d415a0534cb98a5d4747", - "client_s_sk": "2a0f646176250a4d6887498f415a7ec9c6b092c335d32103403e898b473dd0177bdd82f503c3ef2803c546ceeecc5cf1", - "client_e_pk": "037f104792df13a5e246c880f00aebec597fa1abac9b8e3e64899ec7fe629e76df2304661a159d3caf57fda54983e0be7b", - "client_e_sk": "88b77b06bc2110a95518333ec327570dee30f3cbfa64346b131c7e3d58d9abf8a62b588e177bbb5bec46a9377e2f500e", - "server_s_pk": "0257d7c41727d03493a26bfae57854dd1666cc30f08f0ff7099f2b58e1c49fcdaa8166a8ad8504c9e5e006b0cfa5ae8281", - "server_s_sk": "777879b3ff36f640579c49b3f680c674146469636031c36eced7899363c3d66cdf454a279a44c29451ba135feaacbe38", - "server_e_pk": "03807129632d9e2fe5c773f3d0fc113d866bd92564f9141eafa48b0fd721b5bd1345e3fffa6425b5192944ab2b75635260", - "server_e_sk": "5fca049bdb6af2cb03ea00b8ff0e0b1f839e18ea72f694a044d37f646abee6281f5db9593daf6c6857b28ccf04bca3e9", - "fake_sk": "8ad1f7d0a103dd13be480c8ede075b673059bc90d7632e121ae9158123557e35f741749265a97a4e2f0503ff1195156c", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "0031e8f83991d28a26ce8cdbf484c0363ee16921eea7502d299bc633718ee36b0ae813f4d55f4da1972343e37706c188d591dae064bc028ee3cfe25e780de4dc405c", - "oprf_seed": "7277950cf320396a0e67fb283e5efe414e15ccfab8ccbdfd9442c162d4a2aeb21b867999769406e4c256fcadf04cfcb17253b1507dd7617366837140361489e2", - "masking_nonce": "0170bdf7e98f19ca70155ec1c00711f60a47e561d8080d969c34ac05a5883d213a9d07fc3d89a74ce2ee827e27f69fc923d1a007d8ca671de746e0e39423e186", - "envelope_nonce": "eb7c2a2b232f20f4315964b8fc9ef8f20b4966ceee71a2d24c8e3e8fe05d5c23", - "client_nonce": "3aee871b7936d5a50b740969203a9522dcb9c24135258bbf314b2bcd928f4fbd", - "server_nonce": "a24380e218dc0484ba08fb6a64232803eff6bf2e528de1865e2586686db55ba5", - "context": "636f6e74657874", - "registration_request": "0301332d4cfba4e2bfb676a6a22460f2bb754c03c96f28d446843da2b63fbecbe1fb5301a4aee34e47b1dd32db77baf80dba5959b5028ce91d09637d066b2fb440ba74", - "registration_response": "0201972451a45e34081e445b943ea7e6f2abb4b3241e0a3d3216c4e4805ddc95d8d3ac36ccac7c8afee4c75ccac8b311c1aa4287666548ce18834567eb30a9553672330257d7c41727d03493a26bfae57854dd1666cc30f08f0ff7099f2b58e1c49fcdaa8166a8ad8504c9e5e006b0cfa5ae8281", - "registration_upload": "03ea4d985d76b5068dcad073721659d276caf691ed1c6eb6cb74c55dfca1a682f9708d1cdb8fc1ec7ddf79f2e36a44f0ac209cf5e7526905af6a8d997f52d63f870a15753c147d897bd900d1903be25fa3bed7f876c5e853ea3cd16ac056bfdfc09a9cad88d0e0a68006e2a65b1dfe9af02a0f646176250a4d6887498f415a7ec9c6b092c335d32103403e898b473dd0179a2dba54122b5b5d2b0f834e679ffa3483779e5270466d8048a1e85ba42481e282889273ad5d16ee6fe3a6c1fa83d40231e9e5006790b9762d16b07a6eaaf60c", - "credential_request": "0301332d4cfba4e2bfb676a6a22460f2bb754c03c96f28d446843da2b63fbecbe1fb5301a4aee34e47b1dd32db77baf80dba5959b5028ce91d09637d066b2fb440ba743aee871b7936d5a50b740969203a9522dcb9c24135258bbf314b2bcd928f4fbd03f9068cc82fa7fc88da37d321306babf56a4272b4ee70e13d3bba2be104781e5fbaf79b90cd2eab4b59908e927da8a14b", - "credential_response": "0201972451a45e34081e445b943ea7e6f2abb4b3241e0a3d3216c4e4805ddc95d8d3ac36ccac7c8afee4c75ccac8b311c1aa4287666548ce18834567eb30a9553672330170bdf7e98f19ca70155ec1c00711f60a47e561d8080d969c34ac05a5883d215918dace90ddbef65d99a53aedb1ce2df2aed9694b64aaca2f4959e27c87c082062b8d106480363eb02a15cfbfd6c6a6847eb750c1f685b31f287ea2934fc7567b600856663482601c61129cb863577b0c21d2ad1853682d18d45f4700875d0b4ef48f695d7a4ed82d0a8458366d71021649c145bc8f3f8be12c744a8e9d97854b87c5f2e3a6b069b212e36a9490da9416839e18ea72f694a044d37f646abee6281f5db9593daf6c6857b28ccf04bca3e9031b5a7861fdbfd1c79a368c9ae7fc98cc524aafb7ea48bf413978496f106f6f2db0283ad17119492089c704091142aad4ce7f03eeeaae683708a4395cdcefbe53730c5f18b32ae731f5b17c2078ef56eb0690959ec470cdc43d424ed1724c0aca0251e98ca983ae9c4e9d8b193bec77a7", - "credential_finalization": "9232d499808e284090ebca851eec4e952840116d503d5b576c1903449dd5086db14f5e5d88e351b46bed850d11bf6ac619e008f1fd1e5bbed6b63cbae4d8f0e9", - "client_registration_state": "0031e8f83991d28a26ce8cdbf484c0363ee16921eea7502d299bc633718ee36b0ae813f4d55f4da1972343e37706c188d591dae064bc028ee3cfe25e780de4dc405c0301332d4cfba4e2bfb676a6a22460f2bb754c03c96f28d446843da2b63fbecbe1fb5301a4aee34e47b1dd32db77baf80dba5959b5028ce91d09637d066b2fb440ba74", - "client_login_state": "0031e8f83991d28a26ce8cdbf484c0363ee16921eea7502d299bc633718ee36b0ae813f4d55f4da1972343e37706c188d591dae064bc028ee3cfe25e780de4dc405c0301332d4cfba4e2bfb676a6a22460f2bb754c03c96f28d446843da2b63fbecbe1fb5301a4aee34e47b1dd32db77baf80dba5959b5028ce91d09637d066b2fb440ba743aee871b7936d5a50b740969203a9522dcb9c24135258bbf314b2bcd928f4fbd03f9068cc82fa7fc88da37d321306babf56a4272b4ee70e13d3bba2be104781e5fbaf79b90cd2eab4b59908e927da8a14b7b77699cc0b1845726ab79f2a2f72c7d222393bda6d035a561d70bf8789a49069dede29b2224ff7854f4bb0eabd39a493aee871b7936d5a50b740969203a9522dcb9c24135258bbf314b2bcd928f4fbd", - "server_login_state": "488b986871f89eda2f699cc3f5f56f053ffe04c5b8a96ace28cc5a97fde83caa63a31cfa816ca91d0999b5b11695cece9525dab7675a150c40ce8b99b82342f787cc3d40a791106e10c76bbd0a518d3f549f710ee58bf1a3854b924c89c43f32e961c922817a7982b3df5924159979ee830800d6546cb8869af9cbb691da7608c8504dd1f24b68d613966464335279551a81789e83859ee1d4ac3d72c22fd75673493507ea9ccc457f36e33ba7f9e0bb0b63dbafb163606f1cf5ae2d65892c91", - "password_file": "03ea4d985d76b5068dcad073721659d276caf691ed1c6eb6cb74c55dfca1a682f9708d1cdb8fc1ec7ddf79f2e36a44f0ac209cf5e7526905af6a8d997f52d63f870a15753c147d897bd900d1903be25fa3bed7f876c5e853ea3cd16ac056bfdfc09a9cad88d0e0a68006e2a65b1dfe9af02a0f646176250a4d6887498f415a7ec9c6b092c335d32103403e898b473dd0179a2dba54122b5b5d2b0f834e679ffa3483779e5270466d8048a1e85ba42481e282889273ad5d16ee6fe3a6c1fa83d40231e9e5006790b9762d16b07a6eaaf60c", - "export_key": "de6a72ca1a5767cf9c52b39aa00183cd1f930e1f9d826ccc5c20bf595e2823b6d6f27598dae2fc0173f64b8daf9cf6d24ac17a4e592edc7a045570a7b937b50c", - "session_key": "c8504dd1f24b68d613966464335279551a81789e83859ee1d4ac3d72c22fd75673493507ea9ccc457f36e33ba7f9e0bb0b63dbafb163606f1cf5ae2d65892c91" -} -"#; - -#[cfg(feature = "ristretto255")] -static TEST_VECTOR_P384_RISTRETTO255: &str = r#" -{ - "client_s_pk": "02c1d4d7d66aeb737564a1b854dd415b93cdc77c09652783d62947bac97d501bbb6a9fae15244f06b38f0f1c82a5585e5a", - "client_s_sk": "a0563c18fa5e065414411f2b7a05a42ccafffe6c3f820a453fdc5ec4bcbf75164646c3dda5ad48424c33342cd7e7e4df", - "client_e_pk": "02cfab78104a87ec00bbb5a59b9da3a2e8007ccf2b280129594f61f38702bdb9431f770201bda3cab38a583e907b686c16", - "client_e_sk": "5254f4ded1c5274d284bd01dd1eed07ec23ae9748857606282c6170d5a722058763367284abe9caf9389d942a523db5b", - "server_s_pk": "038b01c3863136ab24e59be966b61516c622bb2cbe4d615d598b692aec4584ccf03617949fa2eb768890b50f91316997f0", - "server_s_sk": "6dd0f63b233b2bd25288bce7b7c4128e595d7e7ae14a502151f17496d821b976f2ffc636ad02dab23786054c943a5248", - "server_e_pk": "0243dc3cd7669109cbe9dcd71c10c0df3c571603c90cb8f836471851c8c4e59b2b33df99a83e5f82b9997509b0937c5af7", - "server_e_sk": "0c6514cb587895583f71bea545cd793eb5c6c3a7b47af02bf7eec36995013ff5e62d020aebaa8584cd0c09db2a57c394", - "fake_sk": "bd88b0857965e266c8b9c070af374335ceed0a2588081b338128985d8e6d9ac5cf7dd28a4eab2ed92a8d1c5e40586667", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "945e750cc030ea56fb69fd959b1c869bbbd11598a55cca1c344680bb3af39e0c", - "oprf_seed": "6ede60508d189654155ebdf35e3e1f9ffac1b0a3a7c3af5623a16f0db771341826aed1298ce0a2c9458d810d0db29fb91d2220c58e5a4866ce8d26449d2ca5dd", - "masking_nonce": "581e546cc899d1aefb99c2b7444b66702b7e810f863303b3ae542cacee4e5fabf1b048c70e198d7f4ff92d9ef651e462ae64813d2a61dfb76834ab41ada048d4", - "envelope_nonce": "c1711624ac043ceaefff11d3e7cd8d0968ce5cd737edccffdf981b6e550eda63", - "client_nonce": "c45770702f6a169965cdc6bde6bd684ae0cca88beff84a10a10531c44881a251", - "server_nonce": "e22873960b1dce985b72c7aceca1211b0d62901a12ec24d5836bee01d0fa3069", - "context": "636f6e74657874", - "registration_request": "38f651deae743ceb93947f3b29c0b6a8bdca06cd2ddbf8bf4034f188eb21a341", - "registration_response": "9a35389a31de25ffdb70f4c76630c55089acf2b4f4de9543f59ece5ebe3a4626038b01c3863136ab24e59be966b61516c622bb2cbe4d615d598b692aec4584ccf03617949fa2eb768890b50f91316997f0", - "registration_upload": "037243f014bbdfa0dbbc3caa7333fcad50be492f2c08233f81a798fed8fabef6b4b400920800531dc9eb25d3af5d9f20a1ac1cb96ceb4f40c0dc2a86f9b3fd0cb869b697b95cef3ceb267219df86f74d143102a91ea5499b1beb4d184964722caef65d052c9527104424e0320809928391a0563c18fa5e065414411f2b7a05a42ccafffe6c3f820a453fdc5ec4bcbf75161189765050d2b8e8e288f7e7d4dae5a4d864e39de8dfe6b56d4ecd2f7aa1d73b970ef1d89e00dd468e92465676f11fcbb3ce89dfa165700034942a4120ac8c14", - "credential_request": "38f651deae743ceb93947f3b29c0b6a8bdca06cd2ddbf8bf4034f188eb21a341c45770702f6a169965cdc6bde6bd684ae0cca88beff84a10a10531c44881a25102ff65f91c0f286b9469d0f33463b70868e2693f8c511c92dba2e55689bbd298a440c2c6b0c831fe87dfb8ad6286460d1b", - "credential_response": "9a35389a31de25ffdb70f4c76630c55089acf2b4f4de9543f59ece5ebe3a4626581e546cc899d1aefb99c2b7444b66702b7e810f863303b3ae542cacee4e5fab6a5aae2fee1f37a48874d26eda94d6285d5002bcc0c070fccf0c7731f55ceca1b678e1c355d4d933992866bee7f9f28b43359b348e63292bc9ffbd5d41ff8f14d5398384c86920b882e92476b954d4481234fbc01021b0c5e78327bc170aa0278eec426b7cedddd0d6b3d807bc3d9f52f3fc3a40a425f5514200f16eb92e0d7c67530fb4f215bc3e6b14e95cd4f03cbd7eb5c6c3a7b47af02bf7eec36995013ff5e62d020aebaa8584cd0c09db2a57c3940241e8e3ea63ecb7374164f8713b915f2d563a18f99c13e855a82d8f2af5af048835e4146f56612b9fd4e67f823a70e48a19df97488e6d1b7ff3a0a1e949ed25aa4835d88ea7a44f5028e8ad58ca0203c0087439e22dd7aea4ce64d8fae6432bfcb601acd244fe9e44b392c69cfc116ad4", - "credential_finalization": "50f417b52847e0af257a96f03ec433bc1b202528727cd0d768247c7584d0e14879d9eff7a4a61c1b954f923c64b0c2fffb328cdba031b7be95b3dc49e23042d6", - "client_registration_state": "945e750cc030ea56fb69fd959b1c869bbbd11598a55cca1c344680bb3af39e0c38f651deae743ceb93947f3b29c0b6a8bdca06cd2ddbf8bf4034f188eb21a341", - "client_login_state": "945e750cc030ea56fb69fd959b1c869bbbd11598a55cca1c344680bb3af39e0c38f651deae743ceb93947f3b29c0b6a8bdca06cd2ddbf8bf4034f188eb21a341c45770702f6a169965cdc6bde6bd684ae0cca88beff84a10a10531c44881a25102ff65f91c0f286b9469d0f33463b70868e2693f8c511c92dba2e55689bbd298a440c2c6b0c831fe87dfb8ad6286460d1bd089e7b04a5bddab582c56c919ed4972e43ec70695d516b48b3d54f3a98a5c4b47e663fbc0691f3eaf2d33d7c6e951acc45770702f6a169965cdc6bde6bd684ae0cca88beff84a10a10531c44881a251", - "server_login_state": "ab1b5088cc404142917da8cb9f0460800e222acd0abb20a0411824bbb3a33530caa46508d6a4d6778394fa3a1c7dc7c922241761e84567b0900365479ca10cdcae0c9adf368396b41a0c857c52274c3705ea4cc35b3dce1c83cd6b17b75723a0a93996c25c33f2fd1d2367416c40743ca0019db466d62c64cf832670a5e4e2e0526b13f76de824546a13c404d9545a6d401c13d0034c9e4b748854eaf316b74c5df9c3dc2caa274f196b9bd5c0e2ebf9036ec462f72da000d8e9631490aa19e0", - "password_file": "037243f014bbdfa0dbbc3caa7333fcad50be492f2c08233f81a798fed8fabef6b4b400920800531dc9eb25d3af5d9f20a1ac1cb96ceb4f40c0dc2a86f9b3fd0cb869b697b95cef3ceb267219df86f74d143102a91ea5499b1beb4d184964722caef65d052c9527104424e0320809928391a0563c18fa5e065414411f2b7a05a42ccafffe6c3f820a453fdc5ec4bcbf75161189765050d2b8e8e288f7e7d4dae5a4d864e39de8dfe6b56d4ecd2f7aa1d73b970ef1d89e00dd468e92465676f11fcbb3ce89dfa165700034942a4120ac8c14", - "export_key": "9763c031678a1b0398640298c9b2ab1651c580ca573e77279fb8e5869fd2d728faf4eff799ff9f6da74452935afe513da1dbaee132514c79529cd48680fa9df7", - "session_key": "526b13f76de824546a13c404d9545a6d401c13d0034c9e4b748854eaf316b74c5df9c3dc2caa274f196b9bd5c0e2ebf9036ec462f72da000d8e9631490aa19e0" -} -"#; - -static TEST_VECTOR_P521: &str = r#" -{ - "client_s_pk": "020155aa12371618bbfd1842a86121ce860958ffea0436a2ce6c0f97554ee17ff6e1ae5a8d4bdb060a224099a611889d4bb660747008b607efc695faf0e47d5d7fa262", - "client_s_sk": "000b052eb9e91af4a983c94a21839f1f565d7529c5958fcebd88e69e1c8871a61ed62fe03a33f93fe330bbccc84a913a71e8c513589f3a0603504e0b8936b182758c", - "client_e_pk": "0200b131bbb6cf4ee2919a26657f81a3eb082f87e8bbae7f0c7db69e85998ada86566276c6b5fde667d5eeb24e603686037ef7a46be366c94c24418d4a81980bc89376", - "client_e_sk": "01a664e28301d34952eb4db292212baccaa619f40972d8c2e401f7c7098a846fc15734825316e262169f5aa4a09bc43177c3a40c9a5f7672e4a0b7ed555458e210ab", - "server_s_pk": "0300ee7ef7cf52e265ce20d90c67975f1efb0a77387df056c5b1b480ae18d91b9a55e9a74ab7627b604d31b4fa42883f9363235925ac2a62c54d362f17a728ad2ac61f", - "server_s_sk": "014198ae8ece980053ab7887cc30936bc4fa1d290578fa398e9cfe1e4cb755331eaa917684d1002501252eda0d887aa94b2af7c99bc36d68c33fa0862d9010d33fbf", - "server_e_pk": "02006e8c57a318b9c92ea17e87b97cce835ed35c728f6e087728c4b3a0dddd347b0d3ee527ecea378b6e759c2caff07467dbdd2441d2e68b7f51009c2ce86e020e9bfd", - "server_e_sk": "01fc737c87a13e2cbbaa050cf5bb8ef624d10967ed25fb40e880c269167e3d3befe2ff72a805d328c6b0065dd0c944c4258fe14d21db1d2a9d47b42f4e8335367fee", - "fake_sk": "01ee8fa2543f4f7ce8e211d82fe9f66bcca74c6dd53ce54676527961451187fa414338025dd16c68ca11a14908af7d85cb6e7f9fd7ea98346fd3beed337855c8ec99", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "01b7a8ba3629e56dce389fe4a722877cab9dcb743b67cd442f74943d1c6cc1e33ed1194b61ae564e9dc9ba3bba7f30e197ab13d71861562ffcf6033d8cb4c50ac6ec", - "oprf_seed": "48fdee5c8b37a08cdc6abcc261dba8d9f3966fc101bcc0bd7565c1c1b25afa4488a67e66e916b2780a0bc7272e626a2d08503ca15719fda9b2bdb3c4f3055cf7", - "masking_nonce": "ec4643526cd59dfa2c4cbadaaae4f34dc4b78dc743b1cba386511aabcf59e59c407e7c73aef7c6e3f3d775d6538b54755724a609a158dc684740f1cfb7bcc148", - "envelope_nonce": "e6969ee0b7772e728cdce7aca1f52195c225956011828f88210fbd3fe8492612", - "client_nonce": "5caae8941b62e5203209ce9a64e1941f0e6d1d337be32906a13219994f389f28", - "server_nonce": "86ff2e4db17a6762f2a3d48591976660d0c5909c6cb3ec7bd46815fa8c9a6473", - "context": "636f6e74657874", - "registration_request": "0300121f9200db627fd9ca835b4a6fda5cd00e7eb55bd832000f7a329449d36dcf8cf8ece478afea30686714f6bce5185731a85ae1fbc210905d371e839b0bd26e4737", - "registration_response": "0200f0b1f2d5422869e96e89ce40f8e55a7157f4eabaf23858e3363a9723eb08fdb9ca976bde1b9f464e7a0eb64f90ead29014202280982cab148888c3505b51fb25a40300ee7ef7cf52e265ce20d90c67975f1efb0a77387df056c5b1b480ae18d91b9a55e9a74ab7627b604d31b4fa42883f9363235925ac2a62c54d362f17a728ad2ac61f", - "registration_upload": "02008f24e782e033c63571a78a467a6cbbca70ce4983d8a4d8116fb7792d738de4748322a5afd2887f962b9ccac4cf830bbd150bea498ffebb258eeeb9455d0390bf03f2f3f8cdb75a04f061704def778d60d564a6a39cf1a729e7d3dd8056aced4509e1f2cbe01133af65786ac6818932f7f3de6428c434e724bf64100f787b794dac000b052eb9e91af4a983c94a21839f1f565d7529c5958fcebd88e69e1c8871a600e1801833baee4e01b62abf936de4d4c2818e6a986fe6a0f633d7b89ad66c113ef951a962eef5a43978822af88e72e0f47e2b670cf52fee5d0a1e68ee183bce", - "credential_request": "0300121f9200db627fd9ca835b4a6fda5cd00e7eb55bd832000f7a329449d36dcf8cf8ece478afea30686714f6bce5185731a85ae1fbc210905d371e839b0bd26e47375caae8941b62e5203209ce9a64e1941f0e6d1d337be32906a13219994f389f2802007c1d795656616c230601344adf544af781ef6929252c2af9863203ec353a090693d1a277f7ddce3d5bf41f9c5ed9ff5e8bed7d5022d165bdeb81942ccb5dff95a1", - "credential_response": "0200f0b1f2d5422869e96e89ce40f8e55a7157f4eabaf23858e3363a9723eb08fdb9ca976bde1b9f464e7a0eb64f90ead29014202280982cab148888c3505b51fb25a4ec4643526cd59dfa2c4cbadaaae4f34dc4b78dc743b1cba386511aabcf59e59cea5ad7bcae7fc6dc95c97a39bc5af2176e4682fda35a7aa20384f826d402a0d846d14b9af0fa1320d664f4b8cd9122f534db40a7a4be184261849d0f4e64e840d946b6b4663fea4423a65f50c7d5e85723a884beb44065e20c2d728d1829b6a30aa5cda90d25f9154dc9c3329da8e159b78fe4f7876ca9168aee94f9591e955b26926018f036d57f6368a0542e79e79812bfbcee40e58ca4ce0e261a62f4cd01cf8229ff72a805d328c6b0065dd0c944c4258fe14d21db1d2a9d47b42f4e8335367fee030089866b68c1fc74a3c2daabc34fd517dca403031f4ff8a73f7b558b12cb0763a0f9fc10a93ea888ce760187b06d39443bcece84ecea5760124254bcb5b2eb9e967d08874db8b8d9a85c803b4d39d2e286dfa260f549fddd67b409ff092a4196df9576c8b0311407d689cc4910fa8420a4f2e27a14f1c7472b54abd038cefaa919a5", - "credential_finalization": "d7000519bc6978e357af50f45f1d37fb69f692b9dcb203ed7a7f09baa29118209cd4a451e05f9026ece8b5587224f24844b3d750af1e7db3b6de3a16ab7b245b", - "client_registration_state": "01b7a8ba3629e56dce389fe4a722877cab9dcb743b67cd442f74943d1c6cc1e33ed1194b61ae564e9dc9ba3bba7f30e197ab13d71861562ffcf6033d8cb4c50ac6ec0300121f9200db627fd9ca835b4a6fda5cd00e7eb55bd832000f7a329449d36dcf8cf8ece478afea30686714f6bce5185731a85ae1fbc210905d371e839b0bd26e4737", - "client_login_state": "01b7a8ba3629e56dce389fe4a722877cab9dcb743b67cd442f74943d1c6cc1e33ed1194b61ae564e9dc9ba3bba7f30e197ab13d71861562ffcf6033d8cb4c50ac6ec0300121f9200db627fd9ca835b4a6fda5cd00e7eb55bd832000f7a329449d36dcf8cf8ece478afea30686714f6bce5185731a85ae1fbc210905d371e839b0bd26e47375caae8941b62e5203209ce9a64e1941f0e6d1d337be32906a13219994f389f2802007c1d795656616c230601344adf544af781ef6929252c2af9863203ec353a090693d1a277f7ddce3d5bf41f9c5ed9ff5e8bed7d5022d165bdeb81942ccb5dff95a1016a03332a991d286aba95f844108e3b4a04ebce4930ab1e3a6c9e4ba04fa45269d9331e6df8e0386c3ad1bfd94d40e0114db4400431f02ee79f6fd383ba439d8c005caae8941b62e5203209ce9a64e1941f0e6d1d337be32906a13219994f389f28", - "server_login_state": "3fd126cc014cb61682c923ec3faeb29c7a8fb786e8aa43908d08c80b2bc28f87bdc6f8f244c5abbc33ba0e7512e2e7b31bcda1bbd6666d963e26cf8451e4ae038395e053c36b2e1df8ec9f43c069a538c143ee5355ab9be3198edb3fe4281e95c0bf32965c7fb060f17f699c690380af797738c723905c17bac2b520779e915512843d221f80572d21f9d47c749ca4ff3936755986bb1c077654b70af2749377ad4f4206775badd6eca3afdf3ad86af7361dbf0ed705c58243d6830738b636d8", - "password_file": "02008f24e782e033c63571a78a467a6cbbca70ce4983d8a4d8116fb7792d738de4748322a5afd2887f962b9ccac4cf830bbd150bea498ffebb258eeeb9455d0390bf03f2f3f8cdb75a04f061704def778d60d564a6a39cf1a729e7d3dd8056aced4509e1f2cbe01133af65786ac6818932f7f3de6428c434e724bf64100f787b794dac000b052eb9e91af4a983c94a21839f1f565d7529c5958fcebd88e69e1c8871a600e1801833baee4e01b62abf936de4d4c2818e6a986fe6a0f633d7b89ad66c113ef951a962eef5a43978822af88e72e0f47e2b670cf52fee5d0a1e68ee183bce", - "export_key": "8e0148a4679af5c31898037cfe6e532afcad4594e7ea704612eb426f762d1c7a2a4f7eddf5fd7ed68f9c9ee9a4ebb35400d2436cbe7315f61476f0640dee8040", - "session_key": "12843d221f80572d21f9d47c749ca4ff3936755986bb1c077654b70af2749377ad4f4206775badd6eca3afdf3ad86af7361dbf0ed705c58243d6830738b636d8" -} -"#; - -static TEST_VECTOR_P521_P256: &str = r#" -{ - "client_s_pk": "020182baa8d1f1d343f3feaf4493612b6edb9f2e18ef1d1b65699b51fe803066b3f839187597f79ca9139c2a879bb1af46ab78fe93ef94973209e222e53d3816225bb6", - "client_s_sk": "013fbfb5d9393f0a48cf0f49c54c5fa7f2780c57f6db721f95b66221a316e562773da08bf65e59c9aaf36dcf189a3f417840c837735f22ffaa15384f1b19cfabaa5d", - "client_e_pk": "020039a0ced83ea05aab7b470b45a671cf0e748f5440587cd8da4542cb38b280bae966b6003892ebabdc8d0ca655df81d9dca19b9169f5bb44d71bc5064b6c5911833b", - "client_e_sk": "01d7ccfb79a2cb2e13f00382f4d955d33da9de96c159dc2af88ec93fc74a925636c4bd5fa5f1bef15b1aae09fe7c7f8d0e898229ba9c9a531cada38be48e32262532", - "server_s_pk": "0301ac8bee5225fddd19cff3bd04436aa7df133f4545fbc5ed749a5505edc7cc732e0351dbdf11656c2cd7acde6426af7d68daeb8a31c7ff80b6b05a48e12ba9b19eb0", - "server_s_sk": "00944509ef50cb9aea5215d8306249dced1d69dab13ed375cdf8ee2ef6be3e64267f237439d186e8b4444fa3d0c61e13752da61391888c6a70dc74e4034cb72a1494", - "server_e_pk": "03016dd431a0736eea405ea125a3223f0a421636f3e3f156fe5a38e39d3922225d460679739cfedb12256b20227c6f341c0d9a3d16596fb6ff000b9be83b052663f1e2", - "server_e_sk": "00dcbb9d0c3d25e71a1bee0a964e09b9bdc1dc8b9b8f3cb97cd3004386772db539445c597e0d808ddf180bd9bcbd2ef77d2277fe6b293692581a8c023d6aa3133349", - "fake_sk": "0016f89e8d435f9c2c96d55955f0a4199de9549e14baf76e7a367dd4f6bde39a52e03b7caa30e41f150341b7161f33d89bb6dbf253243e398e3214128698ca238ffb", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "6edd9450b0681cbec07aeef9c79e3fd64f3e176be77b60940dd837df02dcb5ea", - "oprf_seed": "d09d38303e409ac1a80ac7adce8d58b19d0f5f08ea3af40fa786b324612263af", - "masking_nonce": "900055de5a6d527a6c3eddd9f2ba88e16b47d242697a5adbfe5224b7c87807d695831d96ba4216d825a40016bcb9e296ad11a90d269233434652b00989328593", - "envelope_nonce": "8369de9ceba2e041220da2ea3426a7e212377ccfb9f1da3347534ae122285998", - "client_nonce": "7d1ef366c5c95c6522d1e87ee056fa887df54a0ab668a9cb1fe8c8ce4bcfb553", - "server_nonce": "7a24cbbe1f408c0690dc70d298a5495beb393bd07468813413eb7212f585d744", - "context": "636f6e74657874", - "registration_request": "023bcd9d71a366ceeb22d526e0dee0a13c2c888b3d677af6476c0570b8526ad05e", - "registration_response": "0310e8097b1bf7da801410b2ca15ec6c83436388eaaf1b3eabb21d2fb9cecbdc240301ac8bee5225fddd19cff3bd04436aa7df133f4545fbc5ed749a5505edc7cc732e0351dbdf11656c2cd7acde6426af7d68daeb8a31c7ff80b6b05a48e12ba9b19eb0", - "registration_upload": "0300d2be0c8b4dca1ee3605aba73fe5057fc76b915f02cd4940f5ee3961e619faec43ca148a4e0465c536c58091c1c7a40a957931d5642536a69c4a39b8d027fe74e3e49c969aa894bcce8a6d5ddefb24ce776426f19bf746185887d489f91e0c18ba0013fbfb5d9393f0a48cf0f49c54c5fa7f2780c57f6db721f95b66221a316e5623bd771e593cc00cb079b45a22281482a82fa1e509f8765c172655ac0e503567c", - "credential_request": "023bcd9d71a366ceeb22d526e0dee0a13c2c888b3d677af6476c0570b8526ad05e7d1ef366c5c95c6522d1e87ee056fa887df54a0ab668a9cb1fe8c8ce4bcfb553030069c0bad99332cb33fcc154081c12eb5c7451337b48efba8d579c182a07ee656ea0cf64cfc61391fa14d989405d7e35528a9aa6ceb36967629bf88268c807b8c67f", - "credential_response": "0310e8097b1bf7da801410b2ca15ec6c83436388eaaf1b3eabb21d2fb9cecbdc24900055de5a6d527a6c3eddd9f2ba88e16b47d242697a5adbfe5224b7c87807d6f1e4d1f50f7862c0a5510c5dfaf3d0f21e42e37bfbf04dbe2ac81fe534a772eae5c127a580db94f62eb07d676199488d6e2582e2e65e2dec62ff444dc2d3aa35822d75acbc2fcdd9d8dba1ac28eec39d97775e38599790f0ce52d65a396fc39b657b40f19860e558aeab25b3a7baa7e4e34323de625182c73d6dfbaffc0c098adf79e55c597e0d808ddf180bd9bcbd2ef77d2277fe6b293692581a8c023d6aa31333490301c4951544279766de203fc4c5308fbe41b392a69df5b4b962fb5601095055573cb74f4ca8fa7f1eaf5a5c6919adc01a6336488695df9474d182c92769e081ed412a0393d6f581fc178da588e441a69ad707708ebf29573164dbb490b4c1f8b77589", - "credential_finalization": "6321a88fae9cc76b5c03956b892f33c01e69b0d5f6a01653528610461ff93b18", - "client_registration_state": "6edd9450b0681cbec07aeef9c79e3fd64f3e176be77b60940dd837df02dcb5ea023bcd9d71a366ceeb22d526e0dee0a13c2c888b3d677af6476c0570b8526ad05e", - "client_login_state": "6edd9450b0681cbec07aeef9c79e3fd64f3e176be77b60940dd837df02dcb5ea023bcd9d71a366ceeb22d526e0dee0a13c2c888b3d677af6476c0570b8526ad05e7d1ef366c5c95c6522d1e87ee056fa887df54a0ab668a9cb1fe8c8ce4bcfb553030069c0bad99332cb33fcc154081c12eb5c7451337b48efba8d579c182a07ee656ea0cf64cfc61391fa14d989405d7e35528a9aa6ceb36967629bf88268c807b8c67f0029a4060ad4149ec5ab4feeb642c4326cc39f54ac8e29a572b775b88df12027aaae9cb0ab5b88f3bd7d65bd0b80067f82d26fe9f00be5f9a2a55a82473632eecdd67d1ef366c5c95c6522d1e87ee056fa887df54a0ab668a9cb1fe8c8ce4bcfb553", - "server_login_state": "5c264a1b5efafcd258e6793b0e4a790eb752ae433ba031e5a67b37a64d4c2677fed50421f78558ba63575242a72398dc58998c419f66397ebfe1c5e8fb0ac6d898bd7bf40ad735152b0212e7a2a6fc55a19daaf44f13010faa0b51bfe8bd4c57", - "password_file": "0300d2be0c8b4dca1ee3605aba73fe5057fc76b915f02cd4940f5ee3961e619faec43ca148a4e0465c536c58091c1c7a40a957931d5642536a69c4a39b8d027fe74e3e49c969aa894bcce8a6d5ddefb24ce776426f19bf746185887d489f91e0c18ba0013fbfb5d9393f0a48cf0f49c54c5fa7f2780c57f6db721f95b66221a316e5623bd771e593cc00cb079b45a22281482a82fa1e509f8765c172655ac0e503567c", - "export_key": "91005130b35221059cb711b2726792f10ba88b5965fffc7c6b57cb1d04fd0390", - "session_key": "98bd7bf40ad735152b0212e7a2a6fc55a19daaf44f13010faa0b51bfe8bd4c57" -} -"#; - -static TEST_VECTOR_P521_P384: &str = r#" -{ - "client_s_pk": "0301e2981ba6654ed87fe228ae49a686f7ad21799f6da8b202e1c95d981d845b4d43935049ebecb370aa00ad92cbb3160694d054bfe6d45ebfc68b645ef2022d032428", - "client_s_sk": "000e1920d2013da7400a842647c76e672f58bf23146499bdc6e1c4fa70a5b9a25410b714b0ae1536fb9887b0ee15b6fce92b4201d46c44c4e3fa22f3f1710ed8073e", - "client_e_pk": "0201cadf499cbb61681c17b050a5dd6b6f7f8559b4278d11f0f7f1fdd7cc5628599c98fd710491927af7557973a59ae60bc70a12e0dc7a0145904f9514f462941d063c", - "client_e_sk": "00207b5476bed0d74af4f358a04fb9d5b74ee30a7330502546a761cd8630e14361e880dd04a0a1d65fb0adb7eaff9baa23cff4f7dda34b3ff5373aa43eb1304a8775", - "server_s_pk": "0301d4634ee71dbfaafa69f71a1103ca520fd73b696292ece4b1078706b94b1d45348ca8ee8e5c60ee4d940696e4ed6e834c298ca1ec6b789a88ebfc619d63ec438ed8", - "server_s_sk": "01707da316a1fa1413a30154b8efcfd8cb142eddef4e9c2d3a77043b49264928dec7796c89f868b04c81c0d2bec3d1603b1583ac6e5058387b3c2cbee99a568ed6af", - "server_e_pk": "02012c3e707f880c4580d1fe1e8ad9f2c908697ddbf7913ee6332abfb28ec0a71ff1088d983797f5fad1a6b174701b956a30cc693e179424ee53b8d4f9fc91c9f1bd50", - "server_e_sk": "004e47c1a28e4046ca8ac23cb0c70c572214068f0f3989d914d6fd349f00feca6712488232e047727a445ec2221a7056fc37f349b09a362927595c962e7c7a60ce76", - "fake_sk": "016649635ebb4d55240a85c4c190ca6cec56c510e9c7d254fa1f869f5ac9e67c97af063159a5b582f501ee796d08691fc60ebd9bc0947e7e78f7b31a72b3c63097d8", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "681374559f5c5386b92d4aa207f12e336353e3e0600e85a16048de08cf22eaab844730d6c63bb43e86cbc77b7ca8a6a0", - "oprf_seed": "c8439e7af9a42c8c756c9c03e9949cf37b88dcf3722fed868f7899dbd2656ac133fdb5237869318ac4ed8c91c712ba02", - "masking_nonce": "bc823b98c29605995ceb0b66e274fe915521ca7fcf6afe3bd7dc158729d0f1a77b14d8af2bbb411e2d301f13dc9e0122841b701c0665dece6418581a2a3e8771", - "envelope_nonce": "9683c1ae991f7e8b3c3117cd7429354b3fda02010a0c8f595e365acf3a3111a1", - "client_nonce": "8ec5f2b36174b3008b229c8fb15c011c568491d865ea733ebade40f535d3d579", - "server_nonce": "45c91f66ee2fe153ba2cd8d9a146cb8148b9450f23d7dbae32fd3eeee306b859", - "context": "636f6e74657874", - "registration_request": "02aae92f0063848f8a6c15a4765cf20cf07a7e05bcbdb002417f7c805cab03637fa0ca81ad6586fd88eb50d31cf6665d33", - "registration_response": "02ced85d5e2d01d2952394ca46695245415fbdc44f1ea6b9414463dbacd515004112037351843705f2b5204043ae28a2a30301d4634ee71dbfaafa69f71a1103ca520fd73b696292ece4b1078706b94b1d45348ca8ee8e5c60ee4d940696e4ed6e834c298ca1ec6b789a88ebfc619d63ec438ed8", - "registration_upload": "0301f7c2ab43c80fd43d6b9e07c06ea3ecea60e7b9a06d2325e8448009cabc939960419e41250c299f812d18c40013cc8671b507fbe83cef2872618808b3b2ed52305691015c1b10e28e0009ccf42ed0c81f9e31e928352ef42a3c744702e57eea9ce669ae36924c62ed5eba6bc72e32adf46b000e1920d2013da7400a842647c76e672f58bf23146499bdc6e1c4fa70a5b9a2926feb2d5ee85af6dfd6362758ff965527da3eae39f26929ef1a0de46cc8f863a0a2de330bb13a12e0cec0053ba1d3d3", - "credential_request": "02aae92f0063848f8a6c15a4765cf20cf07a7e05bcbdb002417f7c805cab03637fa0ca81ad6586fd88eb50d31cf6665d338ec5f2b36174b3008b229c8fb15c011c568491d865ea733ebade40f535d3d5790300af1020d54af94e626a4dc7d4c1a63afa62cef4ade8a8c500408356b4f2021a80ef23070631847b65da0983c1ee2054abdb0d43a2ed27a3933aaf20808664e3a07b", - "credential_response": "02ced85d5e2d01d2952394ca46695245415fbdc44f1ea6b9414463dbacd515004112037351843705f2b5204043ae28a2a3bc823b98c29605995ceb0b66e274fe915521ca7fcf6afe3bd7dc158729d0f1a73b10a26544eb97528ce2ad0554c6e73f11c1bca2773a33b7ae48ef53b2395b9890797d8effe029e0f6f9daf55c061c585d99affae035af7c7e12ec64b83e31686e816582d8243e3c5c5d3159a045cf5ac949259dd6685f3441dc81b475c35ec91fb196a04299626f9e0c2422befab24d79f0c88996846c688497dd79a4d6a4a3f910dc8f47a3bb5f0f80b9b9dd076f7bf7c222488232e047727a445ec2221a7056fc37f349b09a362927595c962e7c7a60ce76030097ae93d1884e7be639d0acf69cd1d591896e84ce611bb965add4561074410d0569ae4bdcf2511df4fd64b539eca9fc6f258d3f9eeb192abae4dd8e7c1000ffda375b1c44fba2f97705dbc30c030fc40317c512f5c89b028832cc2d38b3bdf822fba386450bf354f7c10352dae67d07eb26", - "credential_finalization": "88f38af5fff39049d0601965907240210e4162216cff798a143dc30314f4f35baf58d2aa48477c32ef8702474c4e4c2f", - "client_registration_state": "681374559f5c5386b92d4aa207f12e336353e3e0600e85a16048de08cf22eaab844730d6c63bb43e86cbc77b7ca8a6a002aae92f0063848f8a6c15a4765cf20cf07a7e05bcbdb002417f7c805cab03637fa0ca81ad6586fd88eb50d31cf6665d33", - "client_login_state": "681374559f5c5386b92d4aa207f12e336353e3e0600e85a16048de08cf22eaab844730d6c63bb43e86cbc77b7ca8a6a002aae92f0063848f8a6c15a4765cf20cf07a7e05bcbdb002417f7c805cab03637fa0ca81ad6586fd88eb50d31cf6665d338ec5f2b36174b3008b229c8fb15c011c568491d865ea733ebade40f535d3d5790300af1020d54af94e626a4dc7d4c1a63afa62cef4ade8a8c500408356b4f2021a80ef23070631847b65da0983c1ee2054abdb0d43a2ed27a3933aaf20808664e3a07b00f6a95f4aacae683e385b0672cb75b6d55ef442150616cb369a43eeee346bb736bb98cf7b0ebaf0237adac36b6d02831beceeca1331cdabf05cbd332390cfdbd6138ec5f2b36174b3008b229c8fb15c011c568491d865ea733ebade40f535d3d579", - "server_login_state": "7568e421d1d6399c5ff0eece96c47e227f2f25c3127a75fb92571935e1ca6c7bd71bc300110b0943f9366144eecab1e59612fdfaf4f4965226aa01d18823514982bfc02dee80ea8c86b26d9965a9349cabd8e37b527b91c07c8dbb94216f73223c6ddd88017be41002076cc59df9e02212c598bf58092df79394bac4cc6b43c2a64f7946022d7267095ac23cbf9d720b", - "password_file": "0301f7c2ab43c80fd43d6b9e07c06ea3ecea60e7b9a06d2325e8448009cabc939960419e41250c299f812d18c40013cc8671b507fbe83cef2872618808b3b2ed52305691015c1b10e28e0009ccf42ed0c81f9e31e928352ef42a3c744702e57eea9ce669ae36924c62ed5eba6bc72e32adf46b000e1920d2013da7400a842647c76e672f58bf23146499bdc6e1c4fa70a5b9a2926feb2d5ee85af6dfd6362758ff965527da3eae39f26929ef1a0de46cc8f863a0a2de330bb13a12e0cec0053ba1d3d3", - "export_key": "abe2c7350c9375c089735fc9ed993ac86ab7717c3ff7537f84927c7e657814eb6cad33fdac22579b1da8a154473ac630", - "session_key": "3c6ddd88017be41002076cc59df9e02212c598bf58092df79394bac4cc6b43c2a64f7946022d7267095ac23cbf9d720b" -} -"#; - -#[cfg(feature = "ristretto255")] -static TEST_VECTOR_P521_RISTRETTO255: &str = r#" -{ - "client_s_pk": "0200c7b6ed4a01bc742f08c4ad459a1c322464b649f259deb4d8311891ce5c54cfa1743c3fd16510e1919b95d285e21edbb528d4a26ebea822bcb36fd0cb0d911a0838", - "client_s_sk": "01790ba2fd567457fc789f7d0f3d5c21628d1f26b1858c294784fe2856213584fcb61ce64f172131a400a5de979f757caa03d9bc46585a8d9c2ddc9aa1ba097008b3", - "client_e_pk": "02000922189ff2001f966be172afe232364a44c642088a413fa4d0c722036ecde062b27db553430170739b2c7344e4dc391353e963306c6762671dc5c81d41d487e979", - "client_e_sk": "00ad4ee167cb575d3acb092b242e33ba1251fab824577b15103e46889da450bdc61d30063f31204e55176e1fa7cb9e6da98580264dfae9af0a8b292622abcd9176d9", - "server_s_pk": "0200f7056f49bf9041e6ccfb53d8e004fa9877024d81ef4c8348cf203f1f428e72b40a981fbb14bfef555b18f5ba7449137c4779f927d326fa91c5b0f3618e51154db2", - "server_s_sk": "00f4aa9e4df91f18f49f1291ae705695c41c0ef78ef3304e1a06295611d992d744a152f58b6b21701f58a5bd58308fca939d558032ceddc666050314f49987f52f34", - "server_e_pk": "030095b5494431847efccf881a44a39b447497a5c42f780d31a842657046891e46c7be0a65b723fe58821a151252612c28fb6c6294a214a435b3fa63456d9933488fe8", - "server_e_sk": "0129217ee6b2fddbb1e1383b3e51e366756ea467d308228a4e42fb7d5c61b961ca9064335cb75b9199db2facdcd470421c2ab0861820c965c78cc9283ce81d54f713", - "fake_sk": "015a4348332316896d93e77dfe30c52d89dbb60feef92d058c0ac2caed874732378d0b12743ff3e7e124ccf8a8e8f8549dfd12ccc3b83337aa08d571e3d74bff25a6", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "78b1b0e414ff0620e08ce29ce7b3d0708ab8b714ce51b1462df445b330f0370e", - "oprf_seed": "a10339762c30be4b7c3505717c82e30124d20c30a0d301c256ab857e554d19bb3a2fba7cb7f63712c87d1b565087df3295f5c3c6999893ebd2d3cfbc5e4b7ac0", - "masking_nonce": "92e9d1e0cc4f4ba72324b4ea2f06f6566fb891966914bf1fb99deaaaf6ef3cd515e845dbd27aecd08804bef261f7ba1539891e392fdc531f5e8c5c339ebdc680", - "envelope_nonce": "3c4ce4e1ea8d26fea55c8f3831239e9a3f3049c6ef592af64fbe8588a3a334de", - "client_nonce": "4d3350751a212033cb9317d79f54ae7e212b1553cd995e70c80d6233a8135314", - "server_nonce": "2ea9b358507e234c094e51ba9b29b2d1c66475874f67e1b10d321a127f81972c", - "context": "636f6e74657874", - "registration_request": "20a8cb5f3c006a290efa87cffd278fb7a03d774a912c00314bffb45bdc349d57", - "registration_response": "de6934e30242b26558cca8bbb8305cadf2d520a0fc1ef31c35f7d0bc745bab170200f7056f49bf9041e6ccfb53d8e004fa9877024d81ef4c8348cf203f1f428e72b40a981fbb14bfef555b18f5ba7449137c4779f927d326fa91c5b0f3618e51154db2", - "registration_upload": "02019f2dad65bb7c8c3235e37fe8eeb6020e5cad87e2f457f6e6d5580f470c170a570cf9c483cb0409908ca9601cccbcc0268b26b1f0b2b60a1da13a84b8838b7276c9137de96ca93e3371f5c8123cd2e11f8722235cffb9474c5f30e77fd935d7a2798381ce6edc637bcc6dec6457674082a9b0c44c1319512f1a9f3bedf6c41303a601790ba2fd567457fc789f7d0f3d5c21628d1f26b1858c294784fe28562135847eb091d8d5dfe2ea6bb8d4cc6da8762a2af950cee871e1f013ab8901c7abf3b7add55f6362b3c4788a352a17f8ac0ffb34920f05c2acdfc2ab08ad1aa08db037", - "credential_request": "20a8cb5f3c006a290efa87cffd278fb7a03d774a912c00314bffb45bdc349d574d3350751a212033cb9317d79f54ae7e212b1553cd995e70c80d6233a8135314030140d3be5c6c945cd4d35fa7bc205b199b9e94842e3ba84027a8d3266956e7687802c967215813a79aee28d57c4027ec6839c16456eb09a99d34dda31e59ff803efe", - "credential_response": "de6934e30242b26558cca8bbb8305cadf2d520a0fc1ef31c35f7d0bc745bab1792e9d1e0cc4f4ba72324b4ea2f06f6566fb891966914bf1fb99deaaaf6ef3cd5a589e01bf0e72646180a9be9b8caf6bf1c40b1f0b8746bd6fb05e345ed03fa49763205ac7b08e844387ee87942d9479360a05cb6cf38d94773cef1ed341695f53933581b917c4691bc9c0c6d234f598c41d3c403706d8c745eafaef8e9e956781b73d50ccb6dcfcdb613cf9c12188f65ef28a76b4d4e5621176734efad29d16ea91dae77e2a368a9335f80a9fcbfefc7484302e6309639f17632d1ff61a441656a7e7864335cb75b9199db2facdcd470421c2ab0861820c965c78cc9283ce81d54f713030101d16abe47f16b8aa41aa523dbac0d829739631b2c86630d6be8af90e9d76d1a0244ad8e80ba6b51b5e4f2d83b3cf52574ae71ade7e2cc5ad2ac63b9841824b7c6bdd510d5b3430c79e790bf823376f58cf764edb1b756bb8a6b717c951b773d36bd2a7fa7cc5c041dc291c58243bfc49fe10724a39b4846fe8f9462ffb5cfc336", - "credential_finalization": "75bc6b1d874a12a54506e11ba8c39d7d276e3e35b78b9d672fe90dcb48954665c6b99c97f3cc58a2d0d564b021b103841189a216831be151626b9efe0aab7e7e", - "client_registration_state": "78b1b0e414ff0620e08ce29ce7b3d0708ab8b714ce51b1462df445b330f0370e20a8cb5f3c006a290efa87cffd278fb7a03d774a912c00314bffb45bdc349d57", - "client_login_state": "78b1b0e414ff0620e08ce29ce7b3d0708ab8b714ce51b1462df445b330f0370e20a8cb5f3c006a290efa87cffd278fb7a03d774a912c00314bffb45bdc349d574d3350751a212033cb9317d79f54ae7e212b1553cd995e70c80d6233a8135314030140d3be5c6c945cd4d35fa7bc205b199b9e94842e3ba84027a8d3266956e7687802c967215813a79aee28d57c4027ec6839c16456eb09a99d34dda31e59ff803efe01578726229c9f4c4a0b3d0514c2f9a297dcc14d0ee7e93f7ab5815256e8efdf2a62f9edd6019090e788a736dc6a6a2fee4a26cfd8151799d8872de94f973eac69ad4d3350751a212033cb9317d79f54ae7e212b1553cd995e70c80d6233a8135314", - "server_login_state": "b24a046effadb7b53b9082c4e21a02abbbc85ef966ad912655b089ed87b5f3ba582c3b085041edaef140c2a4d3cee3586dfbf782628ab368755c1d9f766b63f7db9619b9f3e0c367ed3bc38611efbdadaf17c25515b338a799eb0698e9eaef8d1bfd72bca9f8067f2c87686e4466e5be960b65262226794ab73c28d9bc806b294ab998031003c6c2bbffb8932f06b3f100e84de57c2e9411aab982f23c269cae5b26b0c2485f6ca0fb29005c1e274871c94c43b0cb68bd77dcd0423ef4f600f9", - "password_file": "02019f2dad65bb7c8c3235e37fe8eeb6020e5cad87e2f457f6e6d5580f470c170a570cf9c483cb0409908ca9601cccbcc0268b26b1f0b2b60a1da13a84b8838b7276c9137de96ca93e3371f5c8123cd2e11f8722235cffb9474c5f30e77fd935d7a2798381ce6edc637bcc6dec6457674082a9b0c44c1319512f1a9f3bedf6c41303a601790ba2fd567457fc789f7d0f3d5c21628d1f26b1858c294784fe28562135847eb091d8d5dfe2ea6bb8d4cc6da8762a2af950cee871e1f013ab8901c7abf3b7add55f6362b3c4788a352a17f8ac0ffb34920f05c2acdfc2ab08ad1aa08db037", - "export_key": "2f9cdc35a5ac32c81e8f204fb95669c1c03a5a67d7146c59d5bd9ddf0ac181c7f24d5b2fe964944279d4f098288de70ef8a45cef30f5a137ed9f4b2c57921178", - "session_key": "4ab998031003c6c2bbffb8932f06b3f100e84de57c2e9411aab982f23c269cae5b26b0c2485f6ca0fb29005c1e274871c94c43b0cb68bd77dcd0423ef4f600f9" -} -"#; - -#[cfg(feature = "curve25519")] -static TEST_VECTOR_CURVE25519_P256: &str = r#" -{ - "client_s_pk": "356d33885c60c90a4bca2ca9e758c72842016738cb29114efe5b363a77e60e18", - "client_s_sk": "98e74559a5af2af21de2f4caf01dd88232ee6a542e6bd2ed68b9dfa9ddf65e6f", - "client_e_pk": "d9a367a4aa1f2822a5e50d3616f8763bda41a0882f2d29d78e25db36594dd44a", - "client_e_sk": "f8ca80bc3fc0301986545adc309928a756d2aa1e79c6c617386a2ce9bc31da5c", - "server_s_pk": "fd69aa024b1896f5911c50d2990ec5075738a5a86a9722b9779eb3032eb74838", - "server_s_sk": "b06d35d129927c7427b2532656d7b33db7e6ff0070c630ab37a5022af8899b6d", - "server_e_pk": "05369b574ab94ef297688d377c4fb4693b80898733128ebce44ad6614290aa64", - "server_e_sk": "a02c5c8d35a1924823bd9ece4a67906211a29674355896061f2c72b63a806959", - "fake_sk": "48faf5b2e5852fa92c7e431eee79383886885e9b2fa0e5957728614af670c964", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "afde4969d9abad215bc2d476b968a4113ce39c8736da16e107e067abbb9343c9", - "oprf_seed": "1b55db8ba8bed7c6dffee2682971f938ae43f91898698c5f34a6c6dd64e69a19", - "masking_nonce": "da87388c66103598f4b49a44abc7ac2ebf6caad4db2e32e19fb59d845e9d9b820f7afe413703648d03501421f9d2e25bd38bf35bd0a5b7167927cebe237c3dad", - "envelope_nonce": "3c9f900ce6674b8ea3ee734678bd1e9397a1842392f2c79b3400434bee6934f4", - "client_nonce": "e1b52de2ccb8b8b9175bca18cac32ac5138717d2bdea57dd1e8182f71e98af8e", - "server_nonce": "d26610cea1112c2c57955b5e24242be031632dfd8ce1a018cc62ee653e5a8e33", - "context": "636f6e74657874", - "registration_request": "035741c014e89d5a10fd6f2b81e2cfc9f35e53222c619fb6fd20608843530b74ae", - "registration_response": "0264db058e5010d658021d7c1b972d626fa353712c83bf7a7500d4a9bc22e85358fd69aa024b1896f5911c50d2990ec5075738a5a86a9722b9779eb3032eb74838", - "registration_upload": "9dc1380a44873401d0dc181baecf898e9bc1f4bbcd75e7de3e28ef9f6b570479e059b27ad6ed0f9b240d9dde050aedbf30a5684e23dfe1af47f6bb75b240c74a98e74559a5af2af21de2f4caf01dd88232ee6a542e6bd2ed68b9dfa9ddf65e6f85396cff1f5d230d09bd9e662bd5a4d9594a32d2ab2b2f8a581542db82467f5e", - "credential_request": "035741c014e89d5a10fd6f2b81e2cfc9f35e53222c619fb6fd20608843530b74aee1b52de2ccb8b8b9175bca18cac32ac5138717d2bdea57dd1e8182f71e98af8ed9a367a4aa1f2822a5e50d3616f8763bda41a0882f2d29d78e25db36594dd44a", - "credential_response": "0264db058e5010d658021d7c1b972d626fa353712c83bf7a7500d4a9bc22e85358da87388c66103598f4b49a44abc7ac2ebf6caad4db2e32e19fb59d845e9d9b82aac713b4beab61312d2d57d98249f1a6e5e7c8bd435d704149679a381fe3c8da8b9b682af290e93422d1c52fa5cb94135823f8587b3c2a9056ab36845659ff2cad86ca029fd836b316471f1a42ee1a928331a4f7c1ec7aefc6429a13008c88bea02c5c8d35a1924823bd9ece4a67906211a29674355896061f2c72b63a806959606d4e3a19bfa8f940c87e5dc9e63ddf6c083d7406942c8c32e6bf7b35c504231d00490013365017c87b0c786f7d58e0bbe69c3c7f22f75e67c4a2ebf716c595", - "credential_finalization": "e9e0ec963e9096dcfcbed47fdf6ac5c0fa43103a11753d7f82652ea3d64a2657", - "client_registration_state": "afde4969d9abad215bc2d476b968a4113ce39c8736da16e107e067abbb9343c9035741c014e89d5a10fd6f2b81e2cfc9f35e53222c619fb6fd20608843530b74ae", - "client_login_state": "afde4969d9abad215bc2d476b968a4113ce39c8736da16e107e067abbb9343c9035741c014e89d5a10fd6f2b81e2cfc9f35e53222c619fb6fd20608843530b74aee1b52de2ccb8b8b9175bca18cac32ac5138717d2bdea57dd1e8182f71e98af8ed9a367a4aa1f2822a5e50d3616f8763bda41a0882f2d29d78e25db36594dd44af8ca80bc3fc0301986545adc309928a756d2aa1e79c6c617386a2ce9bc31da5ce1b52de2ccb8b8b9175bca18cac32ac5138717d2bdea57dd1e8182f71e98af8e", - "server_login_state": "f34318b0b8512ad4aed925465f80e25f3ca18b6ac57f0341beeaeda4ce944580d541e1e80e929cd4f2ce6e91c71a816e09833176a3a3e48801e9583b7da585535266262802364c33b9f4ebbf1e5fafe05b4beb6871bd197c5c3110d22404dd5b", - "password_file": "9dc1380a44873401d0dc181baecf898e9bc1f4bbcd75e7de3e28ef9f6b570479e059b27ad6ed0f9b240d9dde050aedbf30a5684e23dfe1af47f6bb75b240c74a98e74559a5af2af21de2f4caf01dd88232ee6a542e6bd2ed68b9dfa9ddf65e6f85396cff1f5d230d09bd9e662bd5a4d9594a32d2ab2b2f8a581542db82467f5e", - "export_key": "644446d460267013ccc320a626484f6d8b4fa773f1558c43eb0ddce656a53570", - "session_key": "5266262802364c33b9f4ebbf1e5fafe05b4beb6871bd197c5c3110d22404dd5b" -} -"#; - -#[cfg(feature = "curve25519")] -static TEST_VECTOR_CURVE25519_P384: &str = r#" -{ - "client_s_pk": "f94d2f4ed06a99e5dc09edb4ed4566a29cb6706243ad0665019b559932a93375", - "client_s_sk": "8034c5724cb6345b3534de5b1e44f6e4e97f5a98c3f5c7203f84aa370f00dd54", - "client_e_pk": "3a8ec2f554673ecf8c706759d6f24a3a068594f49e22769c763a3f712e289a22", - "client_e_sk": "60dac79209e340f068112840c69c681f458d55916af81521e3aac61058aed542", - "server_s_pk": "70dafba720cf8ed7c5001107f1679974c8dd53f51bb12c6362024bd46d294e6a", - "server_s_sk": "b0beb05237a893edeefad4bfb87d8a56d79120e2ef71ccf335fb36719822bf54", - "server_e_pk": "7e5ac26d2eece1e95a7db76a2c9b0f63119c59755bde71baa153b700d10afa09", - "server_e_sk": "004fb840dc8e2b4bf44cbce8bc9fb2439439ea8c81bf9299fe62a6a7eb133572", - "fake_sk": "a8b7f29cc8faa909eccd741c8a9c043adf30b76ceb29979015e4905aa8c98975", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "b448ff1079b9bb899acb01f271303e43a1db682c515780cff8ede88795ab7aae65af947df67425dacce97080a82d63ee", - "oprf_seed": "453a628c1033f01a8a7e289afd6a0701249eb387115e68dda5e9762815acc3c6890201190623466deb6ebcfa8d348c97", - "masking_nonce": "043b357b425f2fa9a3bcd694f4599838ade3d2a565f3debb64549400922f698bee9d14b0246b92eecf22aee99d9267643e33bf2e6d1985da0b12fb06a1acf102", - "envelope_nonce": "872593dc9342df3095eabdd5f238c27874e6bfdac3f7f2b413f396aa878dcc30", - "client_nonce": "5b11f9c0204aa46756eb81a3929a54e3723294459cb82b37694cf7c1b8c130c0", - "server_nonce": "2ed607c5c0d2cf6babe59b07b175eb2daca2c7b7f4f18ab8109edde08a2467db", - "context": "636f6e74657874", - "registration_request": "03840be924a75bf138c7d6ae38a34cee612df596e2e375482cdec3416bcee6e18ced4de0fb21325b54695724bcb2f6fb4b", - "registration_response": "037179bd08a76c2e668c9665df3a6b47d2753a6cd0d3cc84ceaccc8719f538a603a4704e4cc1e8c04dcb3e1f30fb69badd70dafba720cf8ed7c5001107f1679974c8dd53f51bb12c6362024bd46d294e6a", - "registration_upload": "036855719f79f2e7431c00616260933a2ead332dddc0d6a431945095f3abc62da8d6f332c5d8508850d33745ef81d4a87c7c684c6546aa31ce1084a279bbdc6d76b7c58c398d438e046e1e2b60ae9c9a8034c5724cb6345b3534de5b1e44f6e4e97f5a98c3f5c7203f84aa370f00dd5432cae335c0d7f1dd6abcce898bc8a7c7fe2ccc1e8b37accacd9f28f8a236f71979e28d47fe3ccaadb292fff9d4cc4c67", - "credential_request": "03840be924a75bf138c7d6ae38a34cee612df596e2e375482cdec3416bcee6e18ced4de0fb21325b54695724bcb2f6fb4b5b11f9c0204aa46756eb81a3929a54e3723294459cb82b37694cf7c1b8c130c03a8ec2f554673ecf8c706759d6f24a3a068594f49e22769c763a3f712e289a22", - "credential_response": "037179bd08a76c2e668c9665df3a6b47d2753a6cd0d3cc84ceaccc8719f538a603a4704e4cc1e8c04dcb3e1f30fb69badd043b357b425f2fa9a3bcd694f4599838ade3d2a565f3debb64549400922f698b817494112f8b8547a859357085e26d06cdb5cf3fc1d815fc35c158d0fd079bcee961df7356749be2fd54f310f89260a7cf67de23b12ef4b3a1f4f39f9454279602f6c32842f7618aa41cb16cd94c58490e2174641dcc05134e3d7806c5a0af9eacc7c53bf8aea591bb25a7ac9ae6307d004fb840dc8e2b4bf44cbce8bc9fb2439439ea8c81bf9299fe62a6a7eb133572891c828f84395e2fa18bddf2779342d51d87a6cc0382ff7b4f792ec1d25dc9110c60c54343806bb3fabf01c74cd948cb089a4f5841b43f85335ccfea5c6bac71b282f1fda62f6c49d11fc7da20ff4f08", - "credential_finalization": "e85722888bbf3939cee3510febedb204e6768dcdfb99d258754e5a9bbd7f8ea1a0d65a6dd28af223e94f334c5801a06c", - "client_registration_state": "b448ff1079b9bb899acb01f271303e43a1db682c515780cff8ede88795ab7aae65af947df67425dacce97080a82d63ee03840be924a75bf138c7d6ae38a34cee612df596e2e375482cdec3416bcee6e18ced4de0fb21325b54695724bcb2f6fb4b", - "client_login_state": "b448ff1079b9bb899acb01f271303e43a1db682c515780cff8ede88795ab7aae65af947df67425dacce97080a82d63ee03840be924a75bf138c7d6ae38a34cee612df596e2e375482cdec3416bcee6e18ced4de0fb21325b54695724bcb2f6fb4b5b11f9c0204aa46756eb81a3929a54e3723294459cb82b37694cf7c1b8c130c03a8ec2f554673ecf8c706759d6f24a3a068594f49e22769c763a3f712e289a2260dac79209e340f068112840c69c681f458d55916af81521e3aac61058aed5425b11f9c0204aa46756eb81a3929a54e3723294459cb82b37694cf7c1b8c130c0", - "server_login_state": "92be6961dc5d248b0724bd3f428e036d968756f0b7e0e551c5f4100294b1c8dffa147894e74b1e0229d8fdca0971a529d85fe7c10eba397a9499c59e8513c72df6687652590a36cf7bf3cc4a06d9ab452431ee154bf2a41542c6ec5c4f5de94db19f799a9ab8cf49cc4ecd52b35f6b7a01d454a8f5bc0f3853e43278463da212a614bb4a32b3c3bbb8ee2e9e284a5749", - "password_file": "036855719f79f2e7431c00616260933a2ead332dddc0d6a431945095f3abc62da8d6f332c5d8508850d33745ef81d4a87c7c684c6546aa31ce1084a279bbdc6d76b7c58c398d438e046e1e2b60ae9c9a8034c5724cb6345b3534de5b1e44f6e4e97f5a98c3f5c7203f84aa370f00dd5432cae335c0d7f1dd6abcce898bc8a7c7fe2ccc1e8b37accacd9f28f8a236f71979e28d47fe3ccaadb292fff9d4cc4c67", - "export_key": "7175fbd9eed61a7cb5b723faafec8c945733622a90c75a72ec262599cff1afeb0ddc1f30eadb69c71def535001ef5e99", - "session_key": "b19f799a9ab8cf49cc4ecd52b35f6b7a01d454a8f5bc0f3853e43278463da212a614bb4a32b3c3bbb8ee2e9e284a5749" -} -"#; - -#[cfg(feature = "curve25519")] -static TEST_VECTOR_CURVE25519_P521: &str = r#" -{ - "client_s_pk": "e51157b128e045e034080d6f9c94c9f072a811868291a2a8b0507acae07d3058", - "client_s_sk": "10a98984c3e92237cac31fbc8cfac6a5f66166856d5157f8cfb725bfb01bee6e", - "client_e_pk": "ca077bcb85913a6bed08f36b9359696117cb62d2777f75a616aba34175f7162f", - "client_e_sk": "68d7cd9f3f318e18c74318b413bd3af92515791777963d43bf01eb1d18e92b76", - "server_s_pk": "01dfaa80028e044c9a6dc05f413fa81a97930a2d61a3e3ac4c613c1ea5aa9f64", - "server_s_sk": "a81ff46e69e1ceb22e5ce01c2e210200517171f4bce98f17c8ee43d7e84eb170", - "server_e_pk": "9c08035f138efb307bc4c4a331fbee84fef3ba69a62180bc2e68a107502db601", - "server_e_sk": "b02d1a7b746c70154de464a6bbf7f569a3266069e5aecea208ebbb92f5259178", - "fake_sk": "6828deab22a289a2ea67fccf685a93a279e5657dde2a0eae1da09d0b76829c5b", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "00965609755b1559b7b8b9158b722ac11ac549325bbc7c3656acd6e685e26483cba4feecb8e36074a5923ad5710780ecb176983b10516eeef5baeb38f9077ea490c9", - "oprf_seed": "08d6d06353311921e6066c8c84609b2f7172db7502e14d85242d92cd3c2344fb279aacb4cb970d84b606bb949bc9d3e67288563160af407c9178a8107820ab2a", - "masking_nonce": "8424ee5aad2da9e0584d9f19a0ba632e6dc3a927cf1bff0a37751f7168f612fa693ddca55027759f806318d21f491a3b73607d613651658a8f6a16ab4a1705f5", - "envelope_nonce": "f0bf30325ce1abb9bb9c607101f4546039512a4314e339bcc899eca9c6eb7cde", - "client_nonce": "f25c48001a3ef1e57ff5f3d2ec5168afe86661d85273516854ce8587e505e7f4", - "server_nonce": "ad68f43c28f19ab84eef4978a127c049e75901a6168cf82a87e60fea541fc8eb", - "context": "636f6e74657874", - "registration_request": "020070e6e66baeedd725ce8a37d25220408ed517d6018d5700b06880024a10625d01545103b5152d8ffd36972ffaba91327a24b0e18177386244c3debec34c99100c63", - "registration_response": "020001cd25216f810dc534b095321323a2b9cfc7e098d482addfa9ce843042b45912a03837ee1469044f3b78aad65bb35704b66917b09a537eb531ad5b205cc05daa5101dfaa80028e044c9a6dc05f413fa81a97930a2d61a3e3ac4c613c1ea5aa9f64", - "registration_upload": "e6f7414e8521bef8d0e6d5f10a7b25d7e04ce56e3c11c16c515beb3b4e776f135ea1ccaef9ceaa480d3b3b04cf32570a502e7ce1efd33156a991c7135b980bd823b022a32cb83e6d02352cb72a3111a82a60148a1ba9444a4e9f317c5daa59e710a98984c3e92237cac31fbc8cfac6a5f66166856d5157f8cfb725bfb01bee6ed7a57577f895bd892134815176e2a42c90d3ad60d3a828bfe5b6cf839811872b5caba5f560b1d291078397dd26235512e2b1d37510973b9a0600839f15659ab0", - "credential_request": "020070e6e66baeedd725ce8a37d25220408ed517d6018d5700b06880024a10625d01545103b5152d8ffd36972ffaba91327a24b0e18177386244c3debec34c99100c63f25c48001a3ef1e57ff5f3d2ec5168afe86661d85273516854ce8587e505e7f4ca077bcb85913a6bed08f36b9359696117cb62d2777f75a616aba34175f7162f", - "credential_response": "020001cd25216f810dc534b095321323a2b9cfc7e098d482addfa9ce843042b45912a03837ee1469044f3b78aad65bb35704b66917b09a537eb531ad5b205cc05daa518424ee5aad2da9e0584d9f19a0ba632e6dc3a927cf1bff0a37751f7168f612fad03a8ec22437ff5a43c5a1a4f224a8b6dc4aaf2e1cdc61fd500b314277d6ceb693817163ec39b6d37d405775a4f1b1d3bcd52ff8a06b558444c70a881ec2670c1fed46bc0b381aa72b9426146136a1ebaae5b492ef43274e1576da6708e34620b0da07c776ec09ef3221e1b8b0d63c5167b34aa2249f3d03c1471f463f881574b02d1a7b746c70154de464a6bbf7f569a3266069e5aecea208ebbb92f5259178742563b32fb958454ff199f27c6a5f02d2e8fcb81f98de101f31ba1d6d5aec482c2b3d9f485b5cdbe0a5f3e44ba14b5ba2ba0e1346bf2de221c622e015288ab7f22d88edf1f925d459243ec6259cb91c018dc16855ebf9f19df48f905c5655cf", - "credential_finalization": "1080b9083ae9ff94e7f384172f05bced0220a598953be5079a6ebc6399fc2f4d54da019acd5bcd6939fb7053acc653be7834698e9d4bd613f0b0f2ca4f96af0d", - "client_registration_state": "00965609755b1559b7b8b9158b722ac11ac549325bbc7c3656acd6e685e26483cba4feecb8e36074a5923ad5710780ecb176983b10516eeef5baeb38f9077ea490c9020070e6e66baeedd725ce8a37d25220408ed517d6018d5700b06880024a10625d01545103b5152d8ffd36972ffaba91327a24b0e18177386244c3debec34c99100c63", - "client_login_state": "00965609755b1559b7b8b9158b722ac11ac549325bbc7c3656acd6e685e26483cba4feecb8e36074a5923ad5710780ecb176983b10516eeef5baeb38f9077ea490c9020070e6e66baeedd725ce8a37d25220408ed517d6018d5700b06880024a10625d01545103b5152d8ffd36972ffaba91327a24b0e18177386244c3debec34c99100c63f25c48001a3ef1e57ff5f3d2ec5168afe86661d85273516854ce8587e505e7f4ca077bcb85913a6bed08f36b9359696117cb62d2777f75a616aba34175f7162f68d7cd9f3f318e18c74318b413bd3af92515791777963d43bf01eb1d18e92b76f25c48001a3ef1e57ff5f3d2ec5168afe86661d85273516854ce8587e505e7f4", - "server_login_state": "a4326619610b42bb341c950aba574f951aa788323ef88c8116cf42237ba45a5ecbfd6c002910fb1dfb77d9e6d273ea5d8ba51c95bfd603f17871fdda3729433e95c8cf96afc48ca6be3005003066d6b0956ad9660eab5e3f41d26da4bc430a056ac685fab041bebe3aeac5f88806880038633c4bbf1038003776f522ec1225133304072e4a1005052f9c4f38d871c143d95b2ce387a12849601dcd547d87babf450019d9062da5a42afac06a34d3bd2635c640b5a75296253a4948b43ae86a31", - "password_file": "e6f7414e8521bef8d0e6d5f10a7b25d7e04ce56e3c11c16c515beb3b4e776f135ea1ccaef9ceaa480d3b3b04cf32570a502e7ce1efd33156a991c7135b980bd823b022a32cb83e6d02352cb72a3111a82a60148a1ba9444a4e9f317c5daa59e710a98984c3e92237cac31fbc8cfac6a5f66166856d5157f8cfb725bfb01bee6ed7a57577f895bd892134815176e2a42c90d3ad60d3a828bfe5b6cf839811872b5caba5f560b1d291078397dd26235512e2b1d37510973b9a0600839f15659ab0", - "export_key": "9cb234294ffb495fe5f70a9145c8701b3628d82164f2c9c353bd85d9b948912a6906498a66ddd75a7cc7273048bcc3fb2fbb4e67f3eeae43325653e6fb9afaf5", - "session_key": "3304072e4a1005052f9c4f38d871c143d95b2ce387a12849601dcd547d87babf450019d9062da5a42afac06a34d3bd2635c640b5a75296253a4948b43ae86a31" -} -"#; - -#[cfg(all(feature = "curve25519", feature = "ristretto255"))] -static TEST_VECTOR_CURVE25519_RISTRETTO255: &str = r#" -{ - "client_s_pk": "6f00b5a7c3400e5b3480e4ff963affa27a2e894bfc246da63404ab5dfcb12861", - "client_s_sk": "402429cb18f30b6e5e6c3c4a9fb95480d31e9490c96ec09038bad2a2bba70378", - "client_e_pk": "e5571e70f949d095f6f8385e0056abdf4182175d61f466a80d9ed8cbeb6da42d", - "client_e_sk": "68d89ca14f80c9cf0cbe905ccc3573999c5eefacde6a2373591f6316828e9c65", - "server_s_pk": "deafeb091131b492b8ad5af1aa10a3e95f503cc27f156daa5d612cf917b7512e", - "server_s_sk": "40e5d55900e9402b0bf311e604fc6574cfc1786a9024132fd617b5e1015b9d7e", - "server_e_pk": "40c97d16c9e95f8f7c7db8c9057afea8b3fccc06890e002ba36834e5271c3352", - "server_e_sk": "480173d0dc1d7cc60382fb0c3fca5814acac964ae0e4984f31d9f3aac2a62850", - "fake_sk": "50e9872b44d1595ab4478ce74d0e3b00666fd713ed5e1e5f172ef0bbf3014a6b", - "credential_identifier": "637265644964656e746966696572", - "id_u": "696455", - "id_s": "696453", - "password": "70617373776f7264", - "blinding_factor": "8a6a055fcb9a6b7d2ba698bbec4099dbbc6a35766b63b16c04731399657faa05", - "oprf_seed": "acd7d6bb5cbc48e3a5002158e14292e10fd0bbe27084b2ff2b917e8ae4cfe6901cbcc8eaffd83229cea4895e3aefb0456f14b887bd2077a5743cce5e86304c5c", - "masking_nonce": "8e287233c7add7f2d3b3faa6aece0bd88274c45431d1f20302bba6f281a75c5db416d615c291a870f6b2350d872543df723d719144fd5282f853711d1430f348", - "envelope_nonce": "32a0ece9a749a9982968975690b8cff5853da742018ddca972f5b2a64b368558", - "client_nonce": "e6763553592f4f197b5411ccc02eae73f45480f2695169b07477d7fa953d384a", - "server_nonce": "dc3e7e45e29129c8ce05ae2bbfde44c41ab01b976724f5e1fddc432d812390d4", - "context": "636f6e74657874", - "registration_request": "184bb0c06beba0eb813d28339db050e46b1d78ef51e0f715e246435b1f387030", - "registration_response": "c23d5b2943f63db89b026e555cd40be4e42679d748d6b773154b9734eb17f65ddeafeb091131b492b8ad5af1aa10a3e95f503cc27f156daa5d612cf917b7512e", - "registration_upload": "e44f23560d80e1ad23fcd321329069f44c7ecadbf5cd382642b9ab8d4660213ba69f7c5367f5e2662a2576b2c1c0284ba19da7de6db380081d6fb00126d69d143054ac49ac14a8a4422f72c205abee5f58917dcfb92932adbb7e1da5fa729278402429cb18f30b6e5e6c3c4a9fb95480d31e9490c96ec09038bad2a2bba7037886ea885ea9a847da454f4c1778e2d3cf693bed5995fcb60ea884675dd9acd5bbc5042fa6df3b87e7ea739fa8a9028097c5801348dba62a33b88b337030303639", - "credential_request": "184bb0c06beba0eb813d28339db050e46b1d78ef51e0f715e246435b1f387030e6763553592f4f197b5411ccc02eae73f45480f2695169b07477d7fa953d384ae5571e70f949d095f6f8385e0056abdf4182175d61f466a80d9ed8cbeb6da42d", - "credential_response": "c23d5b2943f63db89b026e555cd40be4e42679d748d6b773154b9734eb17f65d8e287233c7add7f2d3b3faa6aece0bd88274c45431d1f20302bba6f281a75c5decb46e775794d8612374cc354c24bb650bec4bae29d5ee748314a317a650176f02a606fbbd9565d62d0d82c8b989ed3c6cdca843b2c900591e661b76de3df23652ecea5aed831de1f3e68ee6a71953ada0ee5a0349f7a8469f0ea58113cc82e9a5f293cb03a74d05eb14d57ffe14b5a8dccc5b1fe8b5e31e8eec756ce7418d18480173d0dc1d7cc60382fb0c3fca5814acac964ae0e4984f31d9f3aac2a62850976c2d5a50e59e96708446af04c477438782bd8ab1be69ed331deb0f17a24c1ee2bdc5fedb0ecd1c2a842ace5d81b4ed0e93c89d883e7b8c59a3a3ca5f9c868eadb3d9835e09fd6bbbb45d91543c061cde3e3d94df2cc61f80993946065bc032", - "credential_finalization": "45929de91f8996598dbe7c65db1f445a62510e8a27ddcef0ae1bcb033f4b74d03f4beb4f83f46602a20152adf0aad3afa465d5b2346f31be62bcc9adac4b5aab", - "client_registration_state": "8a6a055fcb9a6b7d2ba698bbec4099dbbc6a35766b63b16c04731399657faa05184bb0c06beba0eb813d28339db050e46b1d78ef51e0f715e246435b1f387030", - "client_login_state": "8a6a055fcb9a6b7d2ba698bbec4099dbbc6a35766b63b16c04731399657faa05184bb0c06beba0eb813d28339db050e46b1d78ef51e0f715e246435b1f387030e6763553592f4f197b5411ccc02eae73f45480f2695169b07477d7fa953d384ae5571e70f949d095f6f8385e0056abdf4182175d61f466a80d9ed8cbeb6da42d68d89ca14f80c9cf0cbe905ccc3573999c5eefacde6a2373591f6316828e9c65e6763553592f4f197b5411ccc02eae73f45480f2695169b07477d7fa953d384a", - "server_login_state": "56f1f25910e0eca4e3d2d604b9cf8d3878138b4d89ef4966ae001cb5847f658f81850a6ee1aad03cf3864fa652ca9a7b04f02669d5a3e46f49641b8f188af27c06540e830a2f68264f3c7cb533f623b3fbef2ba87777f6909c20c42e911f26c92abdf474b4b1c9d591864a59b508a820b53ba819a0b14189e28b94302707cfe4164a6e3ec2dcba09aa66b70ee18c83ebbc9338aa0092d130051ad98a4bb931dd7bbc6ec93018ee8087435ac9f7171bb1b1b9fe022170963e39681129e2fe104b", - "password_file": "e44f23560d80e1ad23fcd321329069f44c7ecadbf5cd382642b9ab8d4660213ba69f7c5367f5e2662a2576b2c1c0284ba19da7de6db380081d6fb00126d69d143054ac49ac14a8a4422f72c205abee5f58917dcfb92932adbb7e1da5fa729278402429cb18f30b6e5e6c3c4a9fb95480d31e9490c96ec09038bad2a2bba7037886ea885ea9a847da454f4c1778e2d3cf693bed5995fcb60ea884675dd9acd5bbc5042fa6df3b87e7ea739fa8a9028097c5801348dba62a33b88b337030303639", - "export_key": "931b2394c380c1ae3a7e9cedaa9fc438fbc19e920fe74965813a7d4ee2c5cec8c13b144c826b259dd67a2507b3cf2e84f95d8e52dc2111050e7a91ee9d72be99", - "session_key": "164a6e3ec2dcba09aa66b70ee18c83ebbc9338aa0092d130051ad98a4bb931dd7bbc6ec93018ee8087435ac9f7171bb1b1b9fe022170963e39681129e2fe104b" -} -"#; - macro_rules! run_all { ($name:ident $(, $par:expr)*) => { + use super::full_test_vectors; + #[cfg(feature = "ristretto255")] - $name::(TEST_VECTOR_RISTRETTO255 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_RISTRETTO255 $(, $par)*)?; #[cfg(feature = "ristretto255")] - $name::(TEST_VECTOR_RISTRETTO255_P256 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_RISTRETTO255_P256 $(, $par)*)?; #[cfg(feature = "ristretto255")] - $name::(TEST_VECTOR_RISTRETTO255_P384 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_RISTRETTO255_P384 $(, $par)*)?; #[cfg(feature = "ristretto255")] - $name::(TEST_VECTOR_RISTRETTO255_P521 $(, $par)*)?; - $name::(TEST_VECTOR_P256 $(, $par)*)?; - $name::(TEST_VECTOR_P256_P384 $(, $par)*)?; - $name::(TEST_VECTOR_P256_P521 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_RISTRETTO255_P521 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_P256 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_P256_P384 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_P256_P521 $(, $par)*)?; #[cfg(feature = "ristretto255")] - $name::(TEST_VECTOR_P256_RISTRETTO255 $(, $par)*)?; - $name::(TEST_VECTOR_P384 $(, $par)*)?; - $name::(TEST_VECTOR_P384_P256 $(, $par)*)?; - $name::(TEST_VECTOR_P384_P521 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_P256_RISTRETTO255 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_P384 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_P384_P256 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_P384_P521 $(, $par)*)?; #[cfg(feature = "ristretto255")] - $name::(TEST_VECTOR_P384_RISTRETTO255 $(, $par)*)?; - $name::(TEST_VECTOR_P521 $(, $par)*)?; - $name::(TEST_VECTOR_P521_P256 $(, $par)*)?; - $name::(TEST_VECTOR_P521_P384 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_P384_RISTRETTO255 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_P521 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_P521_P256 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_P521_P384 $(, $par)*)?; #[cfg(feature = "ristretto255")] - $name::(TEST_VECTOR_P521_RISTRETTO255 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_P521_RISTRETTO255 $(, $par)*)?; #[cfg(feature = "curve25519")] - $name::(TEST_VECTOR_CURVE25519_P256 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_CURVE25519_P256 $(, $par)*)?; #[cfg(feature = "curve25519")] - $name::(TEST_VECTOR_CURVE25519_P384 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_CURVE25519_P384 $(, $par)*)?; #[cfg(feature = "curve25519")] - $name::(TEST_VECTOR_CURVE25519_P521 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_CURVE25519_P521 $(, $par)*)?; #[cfg(all(feature = "curve25519", feature = "ristretto255"))] - $name::(TEST_VECTOR_CURVE25519_RISTRETTO255 $(, $par)*)?; + $name::(full_test_vectors::TEST_VECTOR_CURVE25519_RISTRETTO255 $(, $par)*)?; }; } @@ -1115,122 +364,182 @@ fn populate_test_vectors(values: &Value) -> TestVectorParameters { fn stringify_test_vectors(p: &TestVectorParameters) -> String { let mut s = String::new(); s.push_str("{\n"); - s.push_str(format!("\"client_s_pk\": \"{}\",\n", hex::encode(&p.client_s_pk)).as_str()); - s.push_str(format!("\"client_s_sk\": \"{}\",\n", hex::encode(&p.client_s_sk)).as_str()); - s.push_str(format!("\"client_e_pk\": \"{}\",\n", hex::encode(&p.client_e_pk)).as_str()); - s.push_str(format!("\"client_e_sk\": \"{}\",\n", hex::encode(&p.client_e_sk)).as_str()); - s.push_str(format!("\"server_s_pk\": \"{}\",\n", hex::encode(&p.server_s_pk)).as_str()); - s.push_str(format!("\"server_s_sk\": \"{}\",\n", hex::encode(&p.server_s_sk)).as_str()); - s.push_str(format!("\"server_e_pk\": \"{}\",\n", hex::encode(&p.server_e_pk)).as_str()); - s.push_str(format!("\"server_e_sk\": \"{}\",\n", hex::encode(&p.server_e_sk)).as_str()); - s.push_str(format!("\"fake_sk\": \"{}\",\n", hex::encode(&p.fake_sk)).as_str()); s.push_str( format!( - "\"credential_identifier\": \"{}\",\n", + " \"client_s_pk\": \"{}\",\n", + hex::encode(&p.client_s_pk) + ) + .as_str(), + ); + s.push_str( + format!( + " \"client_s_sk\": \"{}\",\n", + hex::encode(&p.client_s_sk) + ) + .as_str(), + ); + s.push_str( + format!( + " \"client_e_pk\": \"{}\",\n", + hex::encode(&p.client_e_pk) + ) + .as_str(), + ); + s.push_str( + format!( + " \"client_e_sk\": \"{}\",\n", + hex::encode(&p.client_e_sk) + ) + .as_str(), + ); + s.push_str( + format!( + " \"server_s_pk\": \"{}\",\n", + hex::encode(&p.server_s_pk) + ) + .as_str(), + ); + s.push_str( + format!( + " \"server_s_sk\": \"{}\",\n", + hex::encode(&p.server_s_sk) + ) + .as_str(), + ); + s.push_str( + format!( + " \"server_e_pk\": \"{}\",\n", + hex::encode(&p.server_e_pk) + ) + .as_str(), + ); + s.push_str( + format!( + " \"server_e_sk\": \"{}\",\n", + hex::encode(&p.server_e_sk) + ) + .as_str(), + ); + s.push_str(format!(" \"fake_sk\": \"{}\",\n", hex::encode(&p.fake_sk)).as_str()); + s.push_str( + format!( + " \"credential_identifier\": \"{}\",\n", hex::encode(&p.credential_identifier) ) .as_str(), ); - s.push_str(format!("\"id_u\": \"{}\",\n", hex::encode(&p.id_u)).as_str()); - s.push_str(format!("\"id_s\": \"{}\",\n", hex::encode(&p.id_s)).as_str()); - s.push_str(format!("\"password\": \"{}\",\n", hex::encode(&p.password)).as_str()); + s.push_str(format!(" \"id_u\": \"{}\",\n", hex::encode(&p.id_u)).as_str()); + s.push_str(format!(" \"id_s\": \"{}\",\n", hex::encode(&p.id_s)).as_str()); + s.push_str(format!(" \"password\": \"{}\",\n", hex::encode(&p.password)).as_str()); s.push_str( format!( - "\"blinding_factor\": \"{}\",\n", + " \"blinding_factor\": \"{}\",\n", hex::encode(&p.blinding_factor) ) .as_str(), ); - s.push_str(format!("\"oprf_seed\": \"{}\",\n", hex::encode(&p.oprf_seed)).as_str()); + s.push_str(format!(" \"oprf_seed\": \"{}\",\n", hex::encode(&p.oprf_seed)).as_str()); s.push_str( format!( - "\"masking_nonce\": \"{}\",\n", + " \"masking_nonce\": \"{}\",\n", hex::encode(&p.masking_nonce) ) .as_str(), ); s.push_str( format!( - "\"envelope_nonce\": \"{}\",\n", + " \"envelope_nonce\": \"{}\",\n", hex::encode(&p.envelope_nonce) ) .as_str(), ); - s.push_str(format!("\"client_nonce\": \"{}\",\n", hex::encode(&p.client_nonce)).as_str()); - s.push_str(format!("\"server_nonce\": \"{}\",\n", hex::encode(&p.server_nonce)).as_str()); - s.push_str(format!("\"context\": \"{}\",\n", hex::encode(&p.context)).as_str()); s.push_str( format!( - "\"registration_request\": \"{}\",\n", + " \"client_nonce\": \"{}\",\n", + hex::encode(&p.client_nonce) + ) + .as_str(), + ); + s.push_str( + format!( + " \"server_nonce\": \"{}\",\n", + hex::encode(&p.server_nonce) + ) + .as_str(), + ); + s.push_str(format!(" \"context\": \"{}\",\n", hex::encode(&p.context)).as_str()); + s.push_str( + format!( + " \"registration_request\": \"{}\",\n", hex::encode(&p.registration_request) ) .as_str(), ); s.push_str( format!( - "\"registration_response\": \"{}\",\n", + " \"registration_response\": \"{}\",\n", hex::encode(&p.registration_response) ) .as_str(), ); s.push_str( format!( - "\"registration_upload\": \"{}\",\n", + " \"registration_upload\": \"{}\",\n", hex::encode(&p.registration_upload) ) .as_str(), ); s.push_str( format!( - "\"credential_request\": \"{}\",\n", + " \"credential_request\": \"{}\",\n", hex::encode(&p.credential_request) ) .as_str(), ); s.push_str( format!( - "\"credential_response\": \"{}\",\n", + " \"credential_response\": \"{}\",\n", hex::encode(&p.credential_response) ) .as_str(), ); s.push_str( format!( - "\"credential_finalization\": \"{}\",\n", + " \"credential_finalization\": \"{}\",\n", hex::encode(&p.credential_finalization) ) .as_str(), ); s.push_str( format!( - "\"client_registration_state\": \"{}\",\n", + " \"client_registration_state\": \"{}\",\n", hex::encode(&p.client_registration_state) ) .as_str(), ); s.push_str( format!( - "\"client_login_state\": \"{}\",\n", + " \"client_login_state\": \"{}\",\n", hex::encode(&p.client_login_state) ) .as_str(), ); s.push_str( format!( - "\"server_login_state\": \"{}\",\n", + " \"server_login_state\": \"{}\",\n", hex::encode(&p.server_login_state) ) .as_str(), ); s.push_str( format!( - "\"password_file\": \"{}\",\n", + " \"password_file\": \"{}\",\n", hex::encode(&p.password_file) ) .as_str(), ); - s.push_str(format!("\"export_key\": \"{}\",\n", hex::encode(&p.export_key)).as_str()); - s.push_str(format!("\"session_key\": \"{}\"\n", hex::encode(&p.session_key)).as_str()); + s.push_str(format!(" \"export_key\": \"{}\",\n", hex::encode(&p.export_key)).as_str()); + s.push_str(format!(" \"session_key\": \"{}\"\n", hex::encode(&p.session_key)).as_str()); s.push_str("}\n"); s } @@ -1469,103 +778,167 @@ where #[test] fn generate_test_vectors() -> Result<(), ProtocolError> { + let mut output = String::new(); + + output.push_str( + "// To regenerate these test vectors, run:\n// \ + FULL_TEST_VECTORS_FILE=src/tests/full_test_vectors.rs cargo test --features \ + ristretto255,curve25519 -- generate_test_vectors\n\n", + ); + #[cfg(feature = "ristretto255")] { let parameters = generate_parameters::()?; - println!("Ristretto255: {}", stringify_test_vectors(¶meters)); + output.push_str("#[cfg(feature = \"ristretto255\")]\n"); + output.push_str(&format!( + "pub static TEST_VECTOR_RISTRETTO255: &str = r#\"\n{}\"#;\n", + stringify_test_vectors(¶meters) + )); let parameters = generate_parameters::()?; - println!( - "Ristretto255 P-256: {}", + output.push_str("#[cfg(feature = \"ristretto255\")]\n"); + output.push_str(&format!( + "pub static TEST_VECTOR_RISTRETTO255_P256: &str = r#\"\n{}\"#;\n", stringify_test_vectors(¶meters) - ); + )); let parameters = generate_parameters::()?; - println!( - "Ristretto255 P-384: {}", + output.push_str("#[cfg(feature = \"ristretto255\")]\n"); + output.push_str(&format!( + "pub static TEST_VECTOR_RISTRETTO255_P384: &str = r#\"\n{}\"#;\n", stringify_test_vectors(¶meters) - ); + )); let parameters = generate_parameters::()?; - println!( - "Ristretto255 P-521: {}", + output.push_str("#[cfg(feature = \"ristretto255\")]\n"); + output.push_str(&format!( + "pub static TEST_VECTOR_RISTRETTO255_P521: &str = r#\"\n{}\"#;\n", stringify_test_vectors(¶meters) - ); + )); } let parameters = generate_parameters::()?; - println!("P-256: {}", stringify_test_vectors(¶meters)); + output.push_str(&format!( + "pub static TEST_VECTOR_P256: &str = r#\"\n{}\"#;\n", + stringify_test_vectors(¶meters) + )); let parameters = generate_parameters::()?; - println!("P-256 P-384: {}", stringify_test_vectors(¶meters)); + output.push_str(&format!( + "pub static TEST_VECTOR_P256_P384: &str = r#\"\n{}\"#;\n", + stringify_test_vectors(¶meters) + )); let parameters = generate_parameters::()?; - println!("P-256 P-521: {}", stringify_test_vectors(¶meters)); + output.push_str(&format!( + "pub static TEST_VECTOR_P256_P521: &str = r#\"\n{}\"#;\n", + stringify_test_vectors(¶meters) + )); #[cfg(feature = "ristretto255")] { let parameters = generate_parameters::()?; - println!( - "P-256 Ristretto255: {}", + output.push_str("#[cfg(feature = \"ristretto255\")]\n"); + output.push_str(&format!( + "pub static TEST_VECTOR_P256_RISTRETTO255: &str = r#\"\n{}\"#;\n", stringify_test_vectors(¶meters) - ); + )); } let parameters = generate_parameters::()?; - println!("P-384: {}", stringify_test_vectors(¶meters)); + output.push_str(&format!( + "pub static TEST_VECTOR_P384: &str = r#\"\n{}\"#;\n", + stringify_test_vectors(¶meters) + )); let parameters = generate_parameters::()?; - println!("P-384 P-256: {}", stringify_test_vectors(¶meters)); + output.push_str(&format!( + "pub static TEST_VECTOR_P384_P256: &str = r#\"\n{}\"#;\n", + stringify_test_vectors(¶meters) + )); let parameters = generate_parameters::()?; - println!("P-384 P-521: {}", stringify_test_vectors(¶meters)); + output.push_str(&format!( + "pub static TEST_VECTOR_P384_P521: &str = r#\"\n{}\"#;\n", + stringify_test_vectors(¶meters) + )); #[cfg(feature = "ristretto255")] { let parameters = generate_parameters::()?; - println!( - "P-384 Ristretto255: {}", + output.push_str("#[cfg(feature = \"ristretto255\")]\n"); + output.push_str(&format!( + "pub static TEST_VECTOR_P384_RISTRETTO255: &str = r#\"\n{}\"#;\n", stringify_test_vectors(¶meters) - ); + )); } let parameters = generate_parameters::()?; - println!("P-521: {}", stringify_test_vectors(¶meters)); + output.push_str(&format!( + "pub static TEST_VECTOR_P521: &str = r#\"\n{}\"#;\n", + stringify_test_vectors(¶meters) + )); let parameters = generate_parameters::()?; - println!("P-521 P-256: {}", stringify_test_vectors(¶meters)); + output.push_str(&format!( + "pub static TEST_VECTOR_P521_P256: &str = r#\"\n{}\"#;\n", + stringify_test_vectors(¶meters) + )); let parameters = generate_parameters::()?; - println!("P-521 P-384: {}", stringify_test_vectors(¶meters)); + output.push_str(&format!( + "pub static TEST_VECTOR_P521_P384: &str = r#\"\n{}\"#;\n", + stringify_test_vectors(¶meters) + )); #[cfg(feature = "ristretto255")] { let parameters = generate_parameters::()?; - println!( - "P-521 Ristretto255: {}", + output.push_str("#[cfg(feature = \"ristretto255\")]\n"); + output.push_str(&format!( + "pub static TEST_VECTOR_P521_RISTRETTO255: &str = r#\"\n{}\"#;\n", stringify_test_vectors(¶meters) - ); + )); } #[cfg(feature = "curve25519")] { let parameters = generate_parameters::()?; - println!("Curve25519 P-256: {}", stringify_test_vectors(¶meters)); + output.push_str("#[cfg(feature = \"curve25519\")]\n"); + output.push_str(&format!( + "pub static TEST_VECTOR_CURVE25519_P256: &str = r#\"\n{}\"#;\n", + stringify_test_vectors(¶meters) + )); let parameters = generate_parameters::()?; - println!("Curve25519 P-384: {}", stringify_test_vectors(¶meters)); + output.push_str("#[cfg(feature = \"curve25519\")]\n"); + output.push_str(&format!( + "pub static TEST_VECTOR_CURVE25519_P384: &str = r#\"\n{}\"#;\n", + stringify_test_vectors(¶meters) + )); let parameters = generate_parameters::()?; - println!("Curve25519 P-521: {}", stringify_test_vectors(¶meters)); + output.push_str("#[cfg(feature = \"curve25519\")]\n"); + output.push_str(&format!( + "pub static TEST_VECTOR_CURVE25519_P521: &str = r#\"\n{}\"#;\n", + stringify_test_vectors(¶meters) + )); + + #[cfg(feature = "ristretto255")] + { + let parameters = generate_parameters::()?; + output.push_str("#[cfg(all(feature = \"curve25519\", feature = \"ristretto255\"))]\n"); + output.push_str(&format!( + "pub static TEST_VECTOR_CURVE25519_RISTRETTO255: &str = r#\"\n{}\"#;\n", + stringify_test_vectors(¶meters) + )); + } } - #[cfg(all(feature = "curve25519", feature = "ristretto255"))] - { - let parameters = generate_parameters::()?; - println!( - "Curve25519 Ristretto255: {}", - stringify_test_vectors(¶meters) - ); + if let Ok(path) = std::env::var("FULL_TEST_VECTORS_FILE") { + std::fs::write(path, output).unwrap(); + } else { + println!("{output}"); } Ok(()) diff --git a/src/tests/full_test_vectors.rs b/src/tests/full_test_vectors.rs new file mode 100644 index 00000000..e64d813a --- /dev/null +++ b/src/tests/full_test_vectors.rs @@ -0,0 +1,734 @@ +// To regenerate these test vectors, run: +// FULL_TEST_VECTORS_FILE=src/tests/full_test_vectors.rs cargo test --features ristretto255,curve25519 -- generate_test_vectors + +#[cfg(feature = "ristretto255")] +pub static TEST_VECTOR_RISTRETTO255: &str = r#" +{ + "client_s_pk": "d6a043b1d674d363756f96b21ff4191129c07991763c1469eecdf3733cff6926", + "client_s_sk": "f49b1a77ab3fe91a02f2a086e91241c1c023644ebe421cab2e20921b7de9e807", + "client_e_pk": "c6559fc77ab8d296baa133793902cbc80b45c962d05d2b92de66b91d63b35853", + "client_e_sk": "10a0e21eba8b45225e197066b5f90b58ceac6accdeb5628a11426cd8132afe0c", + "server_s_pk": "28d7986a7383475f365215c2a81efae1fb9ba482aa85b327e664afd7764b2422", + "server_s_sk": "988b28961b3b221b0753689b19dd8d0a32c76d3d30c347c151494b8d6366770d", + "server_e_pk": "c2d782db2720803b091e707759890c54f2280617be43948b4eed8f3327892a31", + "server_e_sk": "3a39d795b6d8ff3d2fb03162dfa41a192c12c017cdae28deb4fd52e41f70a103", + "fake_sk": "eb0cc04551c768d6e27437dbe64e005629a139339397242a44b9a09d711fd500", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "b53ea94d427473439ff9fdafac6eefee0b4a499fb603cdd1e7b1ae287205390a", + "oprf_seed": "6eeb0a996d5331068afbc8013e0ef5f7063c66537a1e0f5b44041ed2475fb4a4ea4ed7b230d214c0e50a54454779802473b8a1dafb0489bcc7bc837ba9e452d3", + "masking_nonce": "5f6c815ddce6f2697572ba0808f325de4bf483f026bf45823ad66f148b31f540f6c92a7eb08ef75bdfa3841271867f2b80692529d5e6a4a3001aaa4439ce7582", + "envelope_nonce": "021e854562c3d8ebdf11cf900ba1b6e7735da9440f29b0b69485a0fddd4ed082", + "client_nonce": "981b0a31d29621cec11258a2a7b1da82fce25b4d729902297fcfba9a82b08e83", + "server_nonce": "ae377447c98bf8ac749fa4c6d91a42411577a0a1e03258ef2bb454a9289be5e3", + "context": "636f6e74657874", + "registration_request": "5e94b0f7cb1bb4e1a9f1c10f8ea41afe32b2faa87c50dc5c1400ef04c6417745", + "registration_response": "b67a287c644f55ee32c5d51c3034c68e0ec0294387465541bd19f04172c30f3d28d7986a7383475f365215c2a81efae1fb9ba482aa85b327e664afd7764b2422", + "registration_upload": "2028731496770bddbb35247a07dfe9fa9b73e86cf2c56d90f753ad2c6ef53e0b750ee0bead22b052cba7c7ba6c8f590a301001ad650cee7064bcaafb2d0e9636342e89d38cf553b30f79d120b3676786cd8f670968f3a65f414fdba740bda204f49b1a77ab3fe91a02f2a086e91241c1c023644ebe421cab2e20921b7de9e807a0758414eec03efe52e3bafae86fd78c4371db077bd4996aaf4e3344cc0cddc99dc65b87e7c53a0b7965471f073ca56cab0e9355031733a39500758a7c799a3f", + "credential_request": "5e94b0f7cb1bb4e1a9f1c10f8ea41afe32b2faa87c50dc5c1400ef04c6417745981b0a31d29621cec11258a2a7b1da82fce25b4d729902297fcfba9a82b08e83863406e2acd8af6f98c3790d068ccff9486469493a536549270759b4e039f12a", + "credential_response": "b67a287c644f55ee32c5d51c3034c68e0ec0294387465541bd19f04172c30f3d5f6c815ddce6f2697572ba0808f325de4bf483f026bf45823ad66f148b31f5402f8e180aae55013a2c7a54547101f4912836459b1ba4b714f40760ce4d5518681f04ee680cf3c0547fa1c5d5478ef98149e319b8ad0ab244590f2521c213f481ee037f972cd73df7ece6a4b352c81135050e916c8a65f29e4975b44ae8855c2a65efc04d0b729af0eee41ad5c0fa776e52f4133266a102096a022779ecf8f5523a39d795b6d8ff3d2fb03162dfa41a192c12c017cdae28deb4fd52e41f70a1034cca46bb825a3fe3c87adb90cc5d22450e469c3d3a11bf0d7aef2ae9b0f66120e8e5797987560187c0146c7823df9669cc13078f8b7be73391d7feef729e974840376703b4872c1c1b3d5bc99076e640f8e58223f0ab43d3714338af460be8cc", + "credential_finalization": "570ab61e18eda39c1891a516afadf2ed6295d6ba6d790ac019dd65305deb34a36aed489115ea84eb2f8a288c2a62356c6e266b2052a090c3d324edaefe8c3b29", + "client_registration_state": "b53ea94d427473439ff9fdafac6eefee0b4a499fb603cdd1e7b1ae287205390a5e94b0f7cb1bb4e1a9f1c10f8ea41afe32b2faa87c50dc5c1400ef04c6417745", + "client_login_state": "b53ea94d427473439ff9fdafac6eefee0b4a499fb603cdd1e7b1ae287205390a5e94b0f7cb1bb4e1a9f1c10f8ea41afe32b2faa87c50dc5c1400ef04c6417745981b0a31d29621cec11258a2a7b1da82fce25b4d729902297fcfba9a82b08e83863406e2acd8af6f98c3790d068ccff9486469493a536549270759b4e039f12a8031743506be1f2b88e734137de500af506a55d5d47891c6fff17d5edba3610b981b0a31d29621cec11258a2a7b1da82fce25b4d729902297fcfba9a82b08e83", + "server_login_state": "cc2ec1d912fc271c97e210b85813de5452cd3f60c79b588da9bef18da7e933d1f13dd8fe610e78764c3bd476192cf405bc89796f0b6c7cf42d80728d4f5101b81d5c4f8d60092e4981ad637e9de7e8f252d63ab04b76435771f7a8b9bf961288120242f7687294d064a59fe520a02131867d67a4ae0fa3a05f5bcefd2087c6665bfc6e94c3530a8552656da62961b7dc1ba11cfaf118b49b765ac4adf29109f6cfd5223279d3d64ea519fe68eacc913d60333e2ddf4f23403d6c4fe7ce79d75c", + "password_file": "2028731496770bddbb35247a07dfe9fa9b73e86cf2c56d90f753ad2c6ef53e0b750ee0bead22b052cba7c7ba6c8f590a301001ad650cee7064bcaafb2d0e9636342e89d38cf553b30f79d120b3676786cd8f670968f3a65f414fdba740bda204f49b1a77ab3fe91a02f2a086e91241c1c023644ebe421cab2e20921b7de9e807a0758414eec03efe52e3bafae86fd78c4371db077bd4996aaf4e3344cc0cddc99dc65b87e7c53a0b7965471f073ca56cab0e9355031733a39500758a7c799a3f", + "export_key": "f871b2cb40b1dbcbe0baa348d1687285d57932bf0ab54e0736bf51c2bb966bbf40af313b40964572ef335cfd34761c9a37a4c125e0217c9e73940c218a8be8b7", + "session_key": "5bfc6e94c3530a8552656da62961b7dc1ba11cfaf118b49b765ac4adf29109f6cfd5223279d3d64ea519fe68eacc913d60333e2ddf4f23403d6c4fe7ce79d75c" +} +"#; +#[cfg(feature = "ristretto255")] +pub static TEST_VECTOR_RISTRETTO255_P256: &str = r#" +{ + "client_s_pk": "2c5936c27e15aac8bc0fdcce59e4663f966ffc847744e7578b5e6d63ac2f847d", + "client_s_sk": "fc04be974d27e2964efc75451bd458fa6c290eb9bc15139e96e334fc38efa402", + "client_e_pk": "9a432ff647e655d1c46f955122bdd5a4b4c206fb33a7478b07ee7f669a391a23", + "client_e_sk": "46fc8784a9cca7bd512eb3996bcf10f957387b1cdbccbb9415a7dab4044f0f06", + "server_s_pk": "36f98bde13528f0737038ea0a30deaffcbe22268f919ad48b649ff1b5d6ae878", + "server_s_sk": "36247bbf0c79a349f503a46a0e79e19a77ed1ed3dedbabe160f06bb4da01b80b", + "server_e_pk": "5ef8da1b17639f9c8ce0e2c1f9af58102154d08d0ec07444f9c5c09de5476f1a", + "server_e_sk": "fcf7afd4c0c0e0e6a85771e989e21f7f404a613d7b0db001c88414f0ca2ace09", + "fake_sk": "c62f827eba6c7ba57b0a2448d4f8ea4cde4309056da5c30be95a8b8dae772e0a", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "d26f3e832cab1005c0c1f074bea2be8b67b901dde26d0e1be11cd9aa40a547c2", + "oprf_seed": "85926148e2a819337c7eafeb6b168fe73777b1692dc84a4554e67a4ace32ba2a", + "masking_nonce": "5f4f5ac37ad48ddf0f3d6605bf33ab450cd417c89416b75b7f0662ba3c195155ad1a9bd12e36f8150da14c01e8495ba664dd0a4241404d43907aa14308d926e3", + "envelope_nonce": "22420ba5ae9c2de9474ffa255355b97acbcef0823c378b904b87e2aafd225e47", + "client_nonce": "663f6d431fe2f74f20f969bcc4cb626d743a0ff0b645cc4079a79874d8322f5d", + "server_nonce": "badb098e1687c6ba608129aa8ac76972ae8934c5aee17075565cd52a52e1a231", + "context": "636f6e74657874", + "registration_request": "024f622d244513682cc660e4a7894ddffa2033eddbf106ec1b130de55a20ecd1f8", + "registration_response": "032a5c618498fff46d9e7169b465591f18099af30d70002df7959c266bd95b278336f98bde13528f0737038ea0a30deaffcbe22268f919ad48b649ff1b5d6ae878", + "registration_upload": "06e9bcd5b62b95f66601fe96999e9120fe147f74c6ec71916f903384f5898a41113fcbb34f44bda5638d66005b4f1cc7eed6587387137a712713d30d08b75b8afc04be974d27e2964efc75451bd458fa6c290eb9bc15139e96e334fc38efa4024a448ccbc658d4d854229a268387fb48fb9aebb2ce5c59df45057035d4ac80ad", + "credential_request": "024f622d244513682cc660e4a7894ddffa2033eddbf106ec1b130de55a20ecd1f8663f6d431fe2f74f20f969bcc4cb626d743a0ff0b645cc4079a79874d8322f5d82da77e5e5d6f10b37b6252f338f18baaa7cae341663461e671ec2cd23126e62", + "credential_response": "032a5c618498fff46d9e7169b465591f18099af30d70002df7959c266bd95b27835f4f5ac37ad48ddf0f3d6605bf33ab450cd417c89416b75b7f0662ba3c1951552f3cfd2e6fc4050aca4630256af1ea56177b7428361a531a64613ba329562eba0a12e0ae8699b05f060dcecd645f9fad6ff43dea3624013782da84e761512e8df24eb99a76cf02b70d5b8b570afa0438c341a91e7f741ad914af88e56463b802fcf7afd4c0c0e0e6a85771e989e21f7f404a613d7b0db001c88414f0ca2ace091a8c9c675551734584fba89b2c662ff3abeb19a11fdb373119a67d6b9e76781f15d9d9a849e8f68270cf00be0fb805fe6da2afae9aaa195b53061572b9459f37", + "credential_finalization": "aab8d88371e9b4387b5cce9c8d8b8bae6e3e13b89fd2965734daf11f98af993b", + "client_registration_state": "d26f3e832cab1005c0c1f074bea2be8b67b901dde26d0e1be11cd9aa40a547c2024f622d244513682cc660e4a7894ddffa2033eddbf106ec1b130de55a20ecd1f8", + "client_login_state": "d26f3e832cab1005c0c1f074bea2be8b67b901dde26d0e1be11cd9aa40a547c2024f622d244513682cc660e4a7894ddffa2033eddbf106ec1b130de55a20ecd1f8663f6d431fe2f74f20f969bcc4cb626d743a0ff0b645cc4079a79874d8322f5d82da77e5e5d6f10b37b6252f338f18baaa7cae341663461e671ec2cd23126e626ae8756e352339c9f58cc48ffa8b180a55be4aeb78a056311e94835f35f74208663f6d431fe2f74f20f969bcc4cb626d743a0ff0b645cc4079a79874d8322f5d", + "server_login_state": "a9d8309666b830e3960c103b261f634be0b96f8522173cdd10e8e65a76dd4da120a4ec19a1c038588f535dc9b85b21ff62df130c4302e9f1f7f77a670c8173d7489e2653deeddda09ee1c7fb446279a7ee29c2d715a42baec9ceeb1c25028d1a", + "password_file": "06e9bcd5b62b95f66601fe96999e9120fe147f74c6ec71916f903384f5898a41113fcbb34f44bda5638d66005b4f1cc7eed6587387137a712713d30d08b75b8afc04be974d27e2964efc75451bd458fa6c290eb9bc15139e96e334fc38efa4024a448ccbc658d4d854229a268387fb48fb9aebb2ce5c59df45057035d4ac80ad", + "export_key": "bb4a9f58e98bb65f6f1d53171775c32453557112ca83c933ae0e780a22255c2d", + "session_key": "489e2653deeddda09ee1c7fb446279a7ee29c2d715a42baec9ceeb1c25028d1a" +} +"#; +#[cfg(feature = "ristretto255")] +pub static TEST_VECTOR_RISTRETTO255_P384: &str = r#" +{ + "client_s_pk": "768090ad98afab25331f3911c2ec014b3ecfa05b8c73b722c2162a001b029b5f", + "client_s_sk": "bb43d8f37c29d0efb7accfbb4bd0d518c88a581ce36fbd332b788d35c062800c", + "client_e_pk": "9205ac25a9f4be1c6e512b6444c6f7e7324ea90b74ece074e9e2aefae1918605", + "client_e_sk": "484859c43e57745fd5b095e9d26c602dea29bc7db6f414926a8a08fc0ef13804", + "server_s_pk": "eae3f2788dc38c347558c50d1750e772cd3f75c9fa207092f55ec3f856204c12", + "server_s_sk": "bd1ff09a01e2c10eeb8ab632523be6662d7c85f0dc2f90166e49cdb6d8d1950f", + "server_e_pk": "7cac0524777b2b08054b7fc4ef5c007d02e827328b88c8f6e9fe096304b0d631", + "server_e_sk": "1fedd1779ceeb9b15dae96b7df7ab9835ca02d4e760f7251762b2e769d1dbd06", + "fake_sk": "fec38398686d3d280208f07198f1728fd645327bd3416d3153df1db0c657e102", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "6887afb9404a1ef1786bbb089c06d45893da598daf5b5a7836f180edc128bd1d46332caf4b87527b1d0649f6e9d67173", + "oprf_seed": "da74137259270eea581a7dff05a5cf44832f20c8bbf7442673094877b025178cdae981439499450b100357ab805f13a7", + "masking_nonce": "c22c3ff0c8a6a639d0d92584174a0ed068fad593147bec06493090aeb7c49a4645e55c5ca8dd3eb3b7961ac80e75ecf31f3a24a37369601df4d36af10321cc3b", + "envelope_nonce": "091440cb2962d8ae5b23fdf4db8fbd3660eabf1cfb68fed3a7ebde735796063f", + "client_nonce": "e6ba5980c7504ac6dc05fd184a716a365f5e0c877aedf777db36f673619b7be4", + "server_nonce": "bada6d2d6b3b3245292e2334daf71d97233ac113c535ee964278ae1da4d877f6", + "context": "636f6e74657874", + "registration_request": "02dc0d8c1ba2825f6ba06b35e61ce2ff69bca077ba67e0e191d51fa62c3eebec2e573006105f277deca85944d8e18d4fee", + "registration_response": "0299e7f51d823792ca403b292d144642b1af60877691d0f0aaa22173f903a93f7f9aea98d575144d7ac6ba32303943a33eeae3f2788dc38c347558c50d1750e772cd3f75c9fa207092f55ec3f856204c12", + "registration_upload": "f84224b871fd6bfce18418d7b5ab9ed6452a78d7bc1cfc14d03e1e1dfbebfa3fc530f098e2043ed692466e2285fe9cb7847a10654cda9ad8073da7a008e2b0f331812af74e32e51e22838b440deac348bb43d8f37c29d0efb7accfbb4bd0d518c88a581ce36fbd332b788d35c062800c620785f35e3115d89ae63a796183f16e80b54d72ad0b54ad28c9df1e12847f90515bf02554199d28cd24ed3eb377db88", + "credential_request": "02dc0d8c1ba2825f6ba06b35e61ce2ff69bca077ba67e0e191d51fa62c3eebec2e573006105f277deca85944d8e18d4feee6ba5980c7504ac6dc05fd184a716a365f5e0c877aedf777db36f673619b7be4a89c5cd424aab6eab11ae55afb266abf5ae6430d97517c69eda495df87264665", + "credential_response": "0299e7f51d823792ca403b292d144642b1af60877691d0f0aaa22173f903a93f7f9aea98d575144d7ac6ba32303943a33ec22c3ff0c8a6a639d0d92584174a0ed068fad593147bec06493090aeb7c49a4610d0dcacbd8524eec786fe94b26cd881a4f6d6081a6e1999f28a5cda68f3ff9ec213684dba356d0296ace9ce726f3894a1cc9ad0233246bbff6569b56b500d9279e6a7e5df44f201ff18cf519dc2b5a899509c12cd1c813cfd2cacf9b4b0e7cc03cebd6acc1e70dce4f2d69666648cf21fedd1779ceeb9b15dae96b7df7ab9835ca02d4e760f7251762b2e769d1dbd06c4b5865221e5ecd032cf7d77491347f996037f048fe897144058ddac5289fa6aedc2e024908398f8fe11d4a5d82b97c767f73dd468a327db9a63f184455673412b24e63d911013c2ab782f96395e7c68", + "credential_finalization": "3bae0c55ef8ebc1ca9abec19bb87aafe5614d5d43f4cc30039baba760a232b04a6b74cff16c02b25c8fea4371e5dd27b", + "client_registration_state": "6887afb9404a1ef1786bbb089c06d45893da598daf5b5a7836f180edc128bd1d46332caf4b87527b1d0649f6e9d6717302dc0d8c1ba2825f6ba06b35e61ce2ff69bca077ba67e0e191d51fa62c3eebec2e573006105f277deca85944d8e18d4fee", + "client_login_state": "6887afb9404a1ef1786bbb089c06d45893da598daf5b5a7836f180edc128bd1d46332caf4b87527b1d0649f6e9d6717302dc0d8c1ba2825f6ba06b35e61ce2ff69bca077ba67e0e191d51fa62c3eebec2e573006105f277deca85944d8e18d4feee6ba5980c7504ac6dc05fd184a716a365f5e0c877aedf777db36f673619b7be4a89c5cd424aab6eab11ae55afb266abf5ae6430d97517c69eda495df87264665a3eafb00f1a197717846c20ceb9efde682ca2d0be5a535bda56f08d903058401e6ba5980c7504ac6dc05fd184a716a365f5e0c877aedf777db36f673619b7be4", + "server_login_state": "97e3d8427ccefea9d09de9b7db09a806bed9dfd584f25eff11585d3354a247c73f5184f999aca8a7c30a51fe03635c4541d0549158aaf0ee736a6e582c06aa669da661038509cf5e614f3c153602ba5d158800df5746f68fbe47d0af8ff748906f404641ad26f8e64033bb4d130d4e87b9c68d4d4f9adee9e8695156dfbe1a0c4981e01334d1e2bfa6661cbdd9100c23", + "password_file": "f84224b871fd6bfce18418d7b5ab9ed6452a78d7bc1cfc14d03e1e1dfbebfa3fc530f098e2043ed692466e2285fe9cb7847a10654cda9ad8073da7a008e2b0f331812af74e32e51e22838b440deac348bb43d8f37c29d0efb7accfbb4bd0d518c88a581ce36fbd332b788d35c062800c620785f35e3115d89ae63a796183f16e80b54d72ad0b54ad28c9df1e12847f90515bf02554199d28cd24ed3eb377db88", + "export_key": "af7fa36e01e811a073f2ed6694eef0693549e212315d4d4e390c8741d79fa11807b2ae7049ace27ff7b11d8dc14ef2b9", + "session_key": "6f404641ad26f8e64033bb4d130d4e87b9c68d4d4f9adee9e8695156dfbe1a0c4981e01334d1e2bfa6661cbdd9100c23" +} +"#; +#[cfg(feature = "ristretto255")] +pub static TEST_VECTOR_RISTRETTO255_P521: &str = r#" +{ + "client_s_pk": "3ec5f881553f01ff7ce96b5f4927bc6412310681e673963893eb01e54f7c6a46", + "client_s_sk": "0a83a051a3a795bda5254a5b5baff59c60e9c73b4b6b42506aed1b7ba6687305", + "client_e_pk": "88882296ed61eee7f5b3620a6f3197821279ec98a40f82b0951747c3951bae27", + "client_e_sk": "fa5534b65e8b02a405c0853df2916598dc1de45b1984b648ab922f5fea4dd808", + "server_s_pk": "e07bf066f9fc12ef1c2c04ded532917f6b263bd29b33f2e9569e9b334350a061", + "server_s_sk": "4fca729e41a1292b86a442b60bbd0f30abab0899a6be7ae7bce74f4616ee640f", + "server_e_pk": "0e3d523b3921eb95ad975ddbd4eb1738f4ecc32b7afb2f1b317d97b4f2dcdf5c", + "server_e_sk": "64a742100962ee3bda1ad54c0568ec82a69504ababa369fa36fa23519fa0ad02", + "fake_sk": "478efb7616fe040c71069fa4c2228b3b96c7eb25fd2cfb1ddaf83fe035a50f02", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "007139e8faf79e8f5dbd45e2d80ea29ca58ccaf8608cdfdec07be94c7952c25573df5383d86e1b2e9f3230210bff1f118364684533afc460892cfe9214335a424a15", + "oprf_seed": "3489e790ca7870fcf0479d5ffbfdfae773f2e2120081cf7af2bc8c9f2c4e404f4a63461939382b2e30a20bb2397f045e2d97f1010eaff2e206454f396e8c78ba", + "masking_nonce": "a2e38d863b568c8772a1632b97643631940fb6a9dffdc278e68c6b136f7734a6f6a9ac5fefa324df7773992a09ab21233832edde82d82d23830f615c5d8b7dc8", + "envelope_nonce": "2678701c94313b49ad7bff458d5ec7151ceec2b8ff3a9a30cfaeb352d4e0c0d3", + "client_nonce": "39d47b6c6f67f257064688bbeeb743149db1b77d904729d6375789dea7ff39dc", + "server_nonce": "35c20c174a9a3c8752b21c79fa818307ee0bba3ee5f0a4b89a40b6fd0a47ef6c", + "context": "636f6e74657874", + "registration_request": "0201cf9843e7f94333f3449073e98b158ec1891121826547c59d1bb901ec81e299a58c73fb0f70dd2de88a19f8e9423a6cbb591a67dfffa9e20c18701ea0c69fd7c7aa", + "registration_response": "0200fc6b66f7d7c562a1ac091d15ff5b2a03a9cbd045ea3f2359b5509170deec00fd6f689650c343753ed0f85e6f059b71e2f6b02ea92b25dd09441c616a3c2c60f725e07bf066f9fc12ef1c2c04ded532917f6b263bd29b33f2e9569e9b334350a061", + "registration_upload": "9c190859b5b1bd02a91b3d965c9797e3229d8ee91c2945438a77f615344af409fa4e12b190676c2d85f49b11c3aea29f802954f17d7f6fc1450bfe7857f35b1089a8f1ee35c0741152efb3168feb7eeed986a007d75168194047ebdba0d4cd140a83a051a3a795bda5254a5b5baff59c60e9c73b4b6b42506aed1b7ba6687305a97389bd2b5a5cd5d903a867f7de0ac5b95dc77902dafa0f277de66d24eefb0fe5062602ae2e0fe8c8b972084c1d62c55117c3ced5cfabbc8c2196dcb88d0a1e", + "credential_request": "0201cf9843e7f94333f3449073e98b158ec1891121826547c59d1bb901ec81e299a58c73fb0f70dd2de88a19f8e9423a6cbb591a67dfffa9e20c18701ea0c69fd7c7aa39d47b6c6f67f257064688bbeeb743149db1b77d904729d6375789dea7ff39dcfa729271560dc7573f527cac6d6002c4523dfa4d3ea7545c81b0f29e8c2a677a", + "credential_response": "0200fc6b66f7d7c562a1ac091d15ff5b2a03a9cbd045ea3f2359b5509170deec00fd6f689650c343753ed0f85e6f059b71e2f6b02ea92b25dd09441c616a3c2c60f725a2e38d863b568c8772a1632b97643631940fb6a9dffdc278e68c6b136f7734a6b4f6b86b2d0a671b808945f462b9f9a1160781770cc3d6553678efbf19080fdd39e5ec0cda422cbf98dbc52fb48ddfb9302039e3a319666a06a40b86cc921ae7b445982c6bbe5d35b11bf54e1235c0fd59646e3e440f740156c70fb7b9349cf80391bb3e749efe159cb386c1da7f974598cb42a38b03d08c17da967260edc26a64a742100962ee3bda1ad54c0568ec82a69504ababa369fa36fa23519fa0ad020c1135c7efcebaa4d9e1072c1e4d2a31e346c3da157b332054b99234b5e72b7407726d1d174519568209139e41c63bfd1a481ac6e34beb88031209e8f915f20eef1325aee4727f11318f9ae459b1e95bebe8ec04b82a9b55684877d905b34b29", + "credential_finalization": "ab13c87dbd570c222a8336a30df5280fd2d915881ea86200708896da6dc9c133fa30cd18fe0dcc167306130a7c446448bd0f55e811782120cd08f688afac1c7f", + "client_registration_state": "007139e8faf79e8f5dbd45e2d80ea29ca58ccaf8608cdfdec07be94c7952c25573df5383d86e1b2e9f3230210bff1f118364684533afc460892cfe9214335a424a150201cf9843e7f94333f3449073e98b158ec1891121826547c59d1bb901ec81e299a58c73fb0f70dd2de88a19f8e9423a6cbb591a67dfffa9e20c18701ea0c69fd7c7aa", + "client_login_state": "007139e8faf79e8f5dbd45e2d80ea29ca58ccaf8608cdfdec07be94c7952c25573df5383d86e1b2e9f3230210bff1f118364684533afc460892cfe9214335a424a150201cf9843e7f94333f3449073e98b158ec1891121826547c59d1bb901ec81e299a58c73fb0f70dd2de88a19f8e9423a6cbb591a67dfffa9e20c18701ea0c69fd7c7aa39d47b6c6f67f257064688bbeeb743149db1b77d904729d6375789dea7ff39dcfa729271560dc7573f527cac6d6002c4523dfa4d3ea7545c81b0f29e8c2a677af9373ee1b2a070a70acb9800261d5b16e4f4bb559b50469ba78449a8580ae40539d47b6c6f67f257064688bbeeb743149db1b77d904729d6375789dea7ff39dc", + "server_login_state": "5ba0c81fb6befef903d98f188b6ce5732307439d9f2df12653a814dfde47630b77a2c72e035a8092539f03de8b47c87c72f735b2e48725d64f12f10ee4180c0cdc3c4aa65f4e21efc4b542848963ba03d105719450c619046b4318dfd2922f7b721dc5f84ce2883ca4c7c71692c4acd44b4ccf8fb588f195a8e6dbe81ecd38dcb50dbb1eeb7e8750d28ae0afb86ff9440e6395ddaec642eeceb32c41edd4752be218e630fb3298935e2f7bd1c5950a6cc0f85a3c1f1c62b10fdc278c0ae6fe51", + "password_file": "9c190859b5b1bd02a91b3d965c9797e3229d8ee91c2945438a77f615344af409fa4e12b190676c2d85f49b11c3aea29f802954f17d7f6fc1450bfe7857f35b1089a8f1ee35c0741152efb3168feb7eeed986a007d75168194047ebdba0d4cd140a83a051a3a795bda5254a5b5baff59c60e9c73b4b6b42506aed1b7ba6687305a97389bd2b5a5cd5d903a867f7de0ac5b95dc77902dafa0f277de66d24eefb0fe5062602ae2e0fe8c8b972084c1d62c55117c3ced5cfabbc8c2196dcb88d0a1e", + "export_key": "d1cefdfd2f4193f0be3c9907e025cd87e4333df753c846714137e0ca1ded82b5998152a83e96d38665cab22e5515083e6c2c81778a53e225572f948c032dbc98", + "session_key": "b50dbb1eeb7e8750d28ae0afb86ff9440e6395ddaec642eeceb32c41edd4752be218e630fb3298935e2f7bd1c5950a6cc0f85a3c1f1c62b10fdc278c0ae6fe51" +} +"#; +pub static TEST_VECTOR_P256: &str = r#" +{ + "client_s_pk": "026d6649b7178f964c5048a6f0429c7d589a942e8c197f5464bf1fe0fac0d64677", + "client_s_sk": "5bd9b97600d59b471ecf6ad6d7ca638f929662b0069d9e05ea5cb56d61dac2e6", + "client_e_pk": "0211ee98db37c675f10a6caeb9c1ab9f9768d49b29c984dd6dfe708959c48e72fe", + "client_e_sk": "24220ed02c26812c3f98dece8f60588d6822aeee900309d0276820b914a93d7f", + "server_s_pk": "03940f652ede59a2d42257cc91851c607a3fdf66e9f968696d1c68825a9c110232", + "server_s_sk": "76cf3543ad53cdb30cd01b115c35144d032c32d5760350bdd8b454db38166018", + "server_e_pk": "026f5d91c63db40baff495ca9c4b29d4174dc412716988ec147c1bbda5a744d84d", + "server_e_sk": "677bc20d57a91aceb390f4ff5fe28f69eaf1cd37a497e2c1b4f603ae97de438d", + "fake_sk": "9327627dc52e360a946ad8cfc4da6353187cbda453de935b87df3980d85170d5", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "32bc0493f9b70d7aa7ac96c63cf32c7f4ae57981cd7fa5a8cb23e5104749def8", + "oprf_seed": "b59186234633d896f54c7a8b7601881787e7662fcb4de654a321a636439c6465", + "masking_nonce": "15232d3cc0fd39475eeb33b1608499e3bb2b99e6da9c5404a9aa855e73e886758c3f5a3bded140f40fcfa07ee699fe6eba8a8d03e7ecb9cb67174f85cf697b2a", + "envelope_nonce": "fa1bccc26c9ca03a55b242427811243b25aba5e51c1a6f071e7caf6730f53a10", + "client_nonce": "547012ba987f5bd8abd9d3fd9047da0909ea182e14100107c727d93b343cdf77", + "server_nonce": "77bca1264f787a383e6a1ffcb322b45f54669736cac8aa2abb0ff9cc22e22950", + "context": "636f6e74657874", + "registration_request": "02389d83dbf22ff306b4f63d09ba38d31adf0ba36c53207b1ff1fe51bc2d80b6e3", + "registration_response": "0295e53a6a76048278beedda8d72148d4e9025a994f050d136bb8156e8aa6f520703940f652ede59a2d42257cc91851c607a3fdf66e9f968696d1c68825a9c110232", + "registration_upload": "036a93e7c8afa3503cf14512c2e88f1ea5547862244084c225eb56cbb4305c580cec4b54992ddc4a3c8e839688c4e5926d9aaab296103423546cf0b8ea5e5f8fd85bd9b97600d59b471ecf6ad6d7ca638f929662b0069d9e05ea5cb56d61dac2e6df1f1494cb22a47056995a179ca0319a4e7d72df5e557b236c235d7fdf8655b9", + "credential_request": "02389d83dbf22ff306b4f63d09ba38d31adf0ba36c53207b1ff1fe51bc2d80b6e3547012ba987f5bd8abd9d3fd9047da0909ea182e14100107c727d93b343cdf77033e0ab813e84ad26eb48dec1b37d30aed62967c37250b8bfb2c8ebb731b942576", + "credential_response": "0295e53a6a76048278beedda8d72148d4e9025a994f050d136bb8156e8aa6f520715232d3cc0fd39475eeb33b1608499e3bb2b99e6da9c5404a9aa855e73e886750af06496ffb6c9eaf778f5767695d2785da45fbfe7cb61f1d06114bfb648a2c53960f0699d91049a3169b7d207cc04be894c09157819a88d2d4b0b864a001499d362272a762fca3edc2d3eceb5e346ae168da76e6f66038548b37a353ddbac38d8677bc20d57a91aceb390f4ff5fe28f69eaf1cd37a497e2c1b4f603ae97de438d020aee612fb0d7e4ad61f4f3a9ba65b69e1e5fb5933f345f92897c9e65d6646e89db5dfc0a20d239c4634b72123f0c63e7f6ad366d1ba8eaab82af91e13bf0459e", + "credential_finalization": "e3a97fca78f1a8db0666e7178b1dc542c3a5f42a24ac9bcef560031eff8c7855", + "client_registration_state": "32bc0493f9b70d7aa7ac96c63cf32c7f4ae57981cd7fa5a8cb23e5104749def802389d83dbf22ff306b4f63d09ba38d31adf0ba36c53207b1ff1fe51bc2d80b6e3", + "client_login_state": "32bc0493f9b70d7aa7ac96c63cf32c7f4ae57981cd7fa5a8cb23e5104749def802389d83dbf22ff306b4f63d09ba38d31adf0ba36c53207b1ff1fe51bc2d80b6e3547012ba987f5bd8abd9d3fd9047da0909ea182e14100107c727d93b343cdf77033e0ab813e84ad26eb48dec1b37d30aed62967c37250b8bfb2c8ebb731b94257637b9f38dd3f7a2318b67510d255f80f2e5371b4a4050d8b466a44c5e1e8ade2e547012ba987f5bd8abd9d3fd9047da0909ea182e14100107c727d93b343cdf77", + "server_login_state": "933f4a1917bf3db648ae1a5f1da272fa61848f906b6d8c8d7f63032fd49df2e33241e21a682736cc884a3eeab8f2b87b2cc0f10cb1a9aefae88156dc5956cc824b9430d17148471508f73120e11077388cd62a45c524058c9b6223fc58c68f67", + "password_file": "036a93e7c8afa3503cf14512c2e88f1ea5547862244084c225eb56cbb4305c580cec4b54992ddc4a3c8e839688c4e5926d9aaab296103423546cf0b8ea5e5f8fd85bd9b97600d59b471ecf6ad6d7ca638f929662b0069d9e05ea5cb56d61dac2e6df1f1494cb22a47056995a179ca0319a4e7d72df5e557b236c235d7fdf8655b9", + "export_key": "fbb8b166502bd0eb29ee5c5f364e91dcf6683f5507b7aebd60b1b85de314b477", + "session_key": "4b9430d17148471508f73120e11077388cd62a45c524058c9b6223fc58c68f67" +} +"#; +pub static TEST_VECTOR_P256_P384: &str = r#" +{ + "client_s_pk": "03cbd864bc04eb167d5f13cc3c5da84b8dc1cfd9e8780ceadede8d57e7e1773876", + "client_s_sk": "6ba9229e2ecfe5149f4e944ac8cf682535ceb6cfc5a3b3dd0c9fc9db69addf7e", + "client_e_pk": "02561bb06e0dd78f4081bdb1e7fb48aecbcf2ad9a1434d524046985e764608a89e", + "client_e_sk": "0a6935fdd8b21ef947bc44ae0cafb06b704ac9e3a1ad57813943f0fc91202bb2", + "server_s_pk": "029b64c49fd5cdd6a1ff43df20faede257be6274a4f9cbbe60ed1bc0d8659b74c9", + "server_s_sk": "1d1861f83906eb5f5e87943656ab1affafce7a5ed88881896d87cb7081941bcd", + "server_e_pk": "023efc13b742df2ce0eabdbc4788e2e247e5e4f523e103d2ad41284c0ce4c91b6c", + "server_e_sk": "26ffaf2cd8f924b79bb55b6417ec9e02a3f1bdc0bf263e3c6461bb5f85b4831d", + "fake_sk": "d3005ae3eceef847948b304f8cee5b6f8b75d3104d7c8879690bb902d70e9552", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "a3d949a0032ea71a95c068f29c53711cf69b0e8fbb72415992e8f14ec09709105a2d59a7e4079d73c9f3257726015c7d", + "oprf_seed": "8e9e5a589d394572a6c29b2e3cf1473d8261691430621a2d34a9ee8117a0a4c2ea7a012f1438d5be846b39efcada4d51", + "masking_nonce": "3bc6e539a0c1a02120d96f7e983438f6248f6629293f2fb75d27bd94c94407a912f38d4082499f6b29d0d56f6406ac9a3ca31779af8409433e8b9cfbe31bd31e", + "envelope_nonce": "5c9d179fa2577c961dc64b5cf5cd1319ca09be2883902f60bd7903a8e7ddc24a", + "client_nonce": "c89aaee9129ea4460faf3a0c323a54137cb9e0edd109822797e3945ff52b0fd2", + "server_nonce": "2a95f07192fecaff6d1e534f8596e12c522ddfa918aeee3d25f43fae4f7b2cb0", + "context": "636f6e74657874", + "registration_request": "03b585caf05b0ad70d46ca18efd19b21876d865b9def6c94f4ff9bf30acbb481f398bdb5a54f20732b7d2597e974ed347f", + "registration_response": "02998072120b367a0d40718564e0b3623e3f3bce74eae64b6c15475636d61f76834ce638d96fdfadbb59d95b461b05e6d6029b64c49fd5cdd6a1ff43df20faede257be6274a4f9cbbe60ed1bc0d8659b74c9", + "registration_upload": "03a8b50133699562991945daf673f45d7b7c884f7999b14dacc528e9d46c227b1da0aed3e2331629c01def9b7c92085797773a9a61f0a6c8c459726f9d99538ff3700d811ed20da9e120fd55b9bc8dd1a06ba9229e2ecfe5149f4e944ac8cf682535ceb6cfc5a3b3dd0c9fc9db69addf7e78adaed61b67147eda44b208edbb6847b1bfd57d1493fc4196dcd9dd61d25023c1b8d863f88a9dfb5d157b53b7f8ac93", + "credential_request": "03b585caf05b0ad70d46ca18efd19b21876d865b9def6c94f4ff9bf30acbb481f398bdb5a54f20732b7d2597e974ed347fc89aaee9129ea4460faf3a0c323a54137cb9e0edd109822797e3945ff52b0fd20236f10f05b4bb276267115a8ef95ab1dc6fe2fff7a2fb92ea7e1776a7e1a18e4e", + "credential_response": "02998072120b367a0d40718564e0b3623e3f3bce74eae64b6c15475636d61f76834ce638d96fdfadbb59d95b461b05e6d63bc6e539a0c1a02120d96f7e983438f6248f6629293f2fb75d27bd94c94407a9907def346b6fbe45501e0b58d073cb9322fc133b06a6da2f535a616ccfeb82c07a87d552fe7a8d1f908fb398545e4e03d16986054c2e3116512c30306b281783ba0a5e592196b544f0ac4b70f593707a1d1883e5e610d64f2cf5376c52922b657d997ac0a86263821ee84c9e1b34ba27b426ffaf2cd8f924b79bb55b6417ec9e02a3f1bdc0bf263e3c6461bb5f85b4831d021dd005bca4782a86203f2c95bd1aa693b4fac596a569f124c84f17d8fb39e4ce3a6b6f40fd2a5ef54a382b0642aef9b39c2f2ca1c33ccf32bd217d740ab950fa5b5f8838cbd06eda46900eed205c7bb2", + "credential_finalization": "4ac73bdaba0709ab100e48c343ee888e57c97416804299f0be01c384357dbcb2cc7f657ff17bca11190412834b85e43a", + "client_registration_state": "a3d949a0032ea71a95c068f29c53711cf69b0e8fbb72415992e8f14ec09709105a2d59a7e4079d73c9f3257726015c7d03b585caf05b0ad70d46ca18efd19b21876d865b9def6c94f4ff9bf30acbb481f398bdb5a54f20732b7d2597e974ed347f", + "client_login_state": "a3d949a0032ea71a95c068f29c53711cf69b0e8fbb72415992e8f14ec09709105a2d59a7e4079d73c9f3257726015c7d03b585caf05b0ad70d46ca18efd19b21876d865b9def6c94f4ff9bf30acbb481f398bdb5a54f20732b7d2597e974ed347fc89aaee9129ea4460faf3a0c323a54137cb9e0edd109822797e3945ff52b0fd20236f10f05b4bb276267115a8ef95ab1dc6fe2fff7a2fb92ea7e1776a7e1a18e4ed54fefba34716d2b9c84714fca9b73f240f18686271d46c0bbfd21de5eb5ac49c89aaee9129ea4460faf3a0c323a54137cb9e0edd109822797e3945ff52b0fd2", + "server_login_state": "0e0f1ccd0ddbd88052090f3df1deedf6e27169ceff6521b2c418244a7ac62852797822d3e8a37973fba4f76f471f79587a1cbeaf4751663756c08fdc63b204ff109353d9b5fc2073e1067ce9f6f2fa7c8fab6d2f81515647ced372c96c4f3a337b96faec73c292ab9ac3017714131d87529698336fd8274500fcd773a07e90ff8ba923c9886b77289a3b769f7ef304bc", + "password_file": "03a8b50133699562991945daf673f45d7b7c884f7999b14dacc528e9d46c227b1da0aed3e2331629c01def9b7c92085797773a9a61f0a6c8c459726f9d99538ff3700d811ed20da9e120fd55b9bc8dd1a06ba9229e2ecfe5149f4e944ac8cf682535ceb6cfc5a3b3dd0c9fc9db69addf7e78adaed61b67147eda44b208edbb6847b1bfd57d1493fc4196dcd9dd61d25023c1b8d863f88a9dfb5d157b53b7f8ac93", + "export_key": "42abb2bbf4cff4235df593b0aabc1e53f86f5c52ada33661fde68834f3902d375f0e1cac9765501333dc7a49e307fc24", + "session_key": "7b96faec73c292ab9ac3017714131d87529698336fd8274500fcd773a07e90ff8ba923c9886b77289a3b769f7ef304bc" +} +"#; +pub static TEST_VECTOR_P256_P521: &str = r#" +{ + "client_s_pk": "0374a2415699b7f59d9f1c72b5290e3243723a88a442565e54da8088f64a28b84b", + "client_s_sk": "5176571a11403b257a1b968591fbb431809697d2549931bf65ca31abeb2f9448", + "client_e_pk": "02dafd7b6155d78c70eae504e67459bb31f341ce081a4b9bd22c53d65e014b04be", + "client_e_sk": "9ff043bf26771f7ecf12142c5b728a68565619f85e120233340f233b875729c8", + "server_s_pk": "03f2fd2b02028ce63fbd940adc4e24dd0b08249cfd1c160272fb9babe2956b6d6c", + "server_s_sk": "36f24ef2d7a8fb239a9e554fe7ed131c030fca6a261ad1c5d9b87e73db6865c5", + "server_e_pk": "03abf3b9f2fe0541053ba5e36eb955ad5406cef00eb0743484d262953797e99ad1", + "server_e_sk": "6f8552ec8be8f6d4c62b657501284f0e07c3748c4476aad9e55b75d8c643e2db", + "fake_sk": "80c55f22e37a597b7b785dd20f16fbf75980bb33e2ab002bd17e15351c8985e3", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "01f33db988d89fa3b31b464a820ff3cf34d30c860859cdf238fb6bbe9e8ff6848e43677f999ece6a16dabbf67ce9cd00971b17eb51209ce8cfb3d9f75cb3a65758cd", + "oprf_seed": "fd783a4323ded32aff58596aaca53fd4cf9749da29a6c5eda0db998d3a1179c813d96e7b5d7096bae3379af43e2519e240a10ba63515b4d44c9660277b2808c4", + "masking_nonce": "e68abf24f3cb691efda04622df61a031f2a9d7183025dc211d19b9fbb3f6c039985082334e9281e523f8658ed6fe7ba81ef2f5e3ce9eadee22800238101bf7e5", + "envelope_nonce": "cb104e5c5e156d1be494dbf45cb9fa3a64fad61bd4b368c5ea87af397d7fb5a7", + "client_nonce": "81428e363416c051b51011cd6eb34054025a06f2bfe828cee32c5c5854ceae58", + "server_nonce": "6d67ef4ac484eae1a92c46e88774c344ce15946049faa67223ca9d5d553af92c", + "context": "636f6e74657874", + "registration_request": "0301fbe9d771e82a751535cab2f013a2cfbc85576ba85524a077ac85449b25099f59d28585ef83440f052dcec219239d22617f2f3c2e5dea396839871767100b137edb", + "registration_response": "02012c2bac54c8d3a419b60b4446e38828ce5a6a132be72c0172564b74db0934693307cf3528e6ee7dfbf6f849d850de36da003abdcfe978459fe01d0c2f070ce66def03f2fd2b02028ce63fbd940adc4e24dd0b08249cfd1c160272fb9babe2956b6d6c", + "registration_upload": "03e1e41cec6d4de1ffe1f86eaa14571b77b7934114d4a27745643ad0075c38ed12df5e2ac154f412543bfe4ae8b2abaf90f2c9f65158b8d9dacea5abe8cfe6dbccd93ff2b4a1a5d280ba3aef136a8fb03380eaf87b1d1bebc12ff40d0902b7c8045176571a11403b257a1b968591fbb431809697d2549931bf65ca31abeb2f9448a678bb9f407a8b278089a9d61fa6373ac45f2caf5748e20745e8694fbe71935792023ec104488c11a0845912c304114acb076aaf859fccf3dcd4bb28164628c9", + "credential_request": "0301fbe9d771e82a751535cab2f013a2cfbc85576ba85524a077ac85449b25099f59d28585ef83440f052dcec219239d22617f2f3c2e5dea396839871767100b137edb81428e363416c051b51011cd6eb34054025a06f2bfe828cee32c5c5854ceae5803176cb60b3bd0a3d86dfc03dccba4efdd186d6189546a25b0c10edeff6156bbab", + "credential_response": "02012c2bac54c8d3a419b60b4446e38828ce5a6a132be72c0172564b74db0934693307cf3528e6ee7dfbf6f849d850de36da003abdcfe978459fe01d0c2f070ce66defe68abf24f3cb691efda04622df61a031f2a9d7183025dc211d19b9fbb3f6c0390ec44b2dcf1ba8238e2bbf1377c9288b38010d3bea15ab0c41d3f9af6b278e686f1881a0b2c2a14413ad34e6c3cd10acfe11ed015f586cb220b19e31f281be28259906acea1432222c3abd47dad024c0e41eedecaa770bc1675c4045af756debfd05fbd360536a167e28a813be118e883e6b89ce38578959c231fdf07260f3e7b86f8552ec8be8f6d4c62b657501284f0e07c3748c4476aad9e55b75d8c643e2db02f0ffe925d0ea1bbe21f9dfe8f63b8b41c5aea027a12d60bf630e515ae74352147424aa913a1ce5d081eff8425ca08e52131d588b4afca100542102ba2a8a31dcd018a3075fd17a9f171c48f3fd9782f962ba6ed5f473217f04ed774ce205e605", + "credential_finalization": "29d00bdf3671869c90d127e14cf80577f4e2eb322056dfcb39eeff72cca45e86646e04acd4098d711a7945ac09c229b5ad4232b7a35495fe2ee5f540e9ea9fd4", + "client_registration_state": "01f33db988d89fa3b31b464a820ff3cf34d30c860859cdf238fb6bbe9e8ff6848e43677f999ece6a16dabbf67ce9cd00971b17eb51209ce8cfb3d9f75cb3a65758cd0301fbe9d771e82a751535cab2f013a2cfbc85576ba85524a077ac85449b25099f59d28585ef83440f052dcec219239d22617f2f3c2e5dea396839871767100b137edb", + "client_login_state": "01f33db988d89fa3b31b464a820ff3cf34d30c860859cdf238fb6bbe9e8ff6848e43677f999ece6a16dabbf67ce9cd00971b17eb51209ce8cfb3d9f75cb3a65758cd0301fbe9d771e82a751535cab2f013a2cfbc85576ba85524a077ac85449b25099f59d28585ef83440f052dcec219239d22617f2f3c2e5dea396839871767100b137edb81428e363416c051b51011cd6eb34054025a06f2bfe828cee32c5c5854ceae5803176cb60b3bd0a3d86dfc03dccba4efdd186d6189546a25b0c10edeff6156bbaba0e2c5a3510f12dbdc385f3014e9728819accbab4ee45697124f6dd197b7c69081428e363416c051b51011cd6eb34054025a06f2bfe828cee32c5c5854ceae58", + "server_login_state": "392da27af7fd18bdfd81dfe3f5823c66f817cad71e64d9908c67038c0b4e4b0a47f4103bcbeb964cf4c45dac3e934445489652029a22f5bcbace0d1e382fe774ea8b3d0c0065f65abed7d8a165885a139106ff5c9617bf3c1eea0e35457c5a456c6147015b42d177b4074a1cb3eed3c31c9a24b0f0f3ffaf48d3413215ac5eb8d8432c0e8abd6d420797523d594c22005f168bfcd2b9a06f9e36e5c30f4d327fafd33b1abab9ccf31462be490a64be4044e17bede7a126bfa0ebfd74605864d5", + "password_file": "03e1e41cec6d4de1ffe1f86eaa14571b77b7934114d4a27745643ad0075c38ed12df5e2ac154f412543bfe4ae8b2abaf90f2c9f65158b8d9dacea5abe8cfe6dbccd93ff2b4a1a5d280ba3aef136a8fb03380eaf87b1d1bebc12ff40d0902b7c8045176571a11403b257a1b968591fbb431809697d2549931bf65ca31abeb2f9448a678bb9f407a8b278089a9d61fa6373ac45f2caf5748e20745e8694fbe71935792023ec104488c11a0845912c304114acb076aaf859fccf3dcd4bb28164628c9", + "export_key": "9d5bf614a1f6fa76bb69093bed5c57c419256aa5594475132bfa82185ba7f349ad9958c24b8581b7dd7057e01f6351f989c64deb734cd5fee613a0fea6db81b6", + "session_key": "d8432c0e8abd6d420797523d594c22005f168bfcd2b9a06f9e36e5c30f4d327fafd33b1abab9ccf31462be490a64be4044e17bede7a126bfa0ebfd74605864d5" +} +"#; +#[cfg(feature = "ristretto255")] +pub static TEST_VECTOR_P256_RISTRETTO255: &str = r#" +{ + "client_s_pk": "032480db39bd1625aa0051306e83af75eef01d4e25d9d4ff78cd921f185583cb35", + "client_s_sk": "75528dadb8cd87c4333e780c11258e96d01bdbe5027b98b133a64740fdc8ed37", + "client_e_pk": "036773eef5ed44e16ecce98db64c44a2e33f0c19ddfa4e956d10daf02e65a9f099", + "client_e_sk": "f5726f3f0185240d8a5c03cc9bc803cc94f087aca210f241a4a7e974bf05ac28", + "server_s_pk": "037b92aaff746f75c706bffe9a9d908808c7e3055e2796a5fcb18674d7ef675be9", + "server_s_sk": "eedb9aa316e42ffadc3d5160c99cd0ef2be71f75bfc9fed350eaa9ed925f5dbf", + "server_e_pk": "02062681918a8a4cbcf711a264e05b0997a412ed47b29d79fea102846c30a11af4", + "server_e_sk": "f337cf56e5cde5f135dd322d830a716cdc1128a7bbbff23311adffaa03212449", + "fake_sk": "9a6681ed464482bf8056eb6e01406ad88b89658543e00e6cdc6cc32b4134a2b2", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "fdfc8cba755b67092390f683931a083b5da549557a5fff43089cbbb68c1e5900", + "oprf_seed": "69d74463b0f1e8df2e38b079dafc49cbfd127d976759892b0d63b3d7eb9df3efcc82df5359f092d16f72edece4b196651ee93ba81991a7c958504c99a1f5aa6a", + "masking_nonce": "a0752a256bc8336411e3c641eceb08b811b7c598add4dca7bcff60cec1c4236f0489db0c6275b4f03867b9163ce1e146fafd4e01725a503064a19b65cfd6f539", + "envelope_nonce": "62de3069bdf5b1e87014c1cbe54bdc68ab08ec1286689bb0bb242f3cf37a6fa6", + "client_nonce": "d3427f13f2facb4036327c43072751790542a4d53ee651a7ba8300b17e803d47", + "server_nonce": "966b15a3fe16c3fa2fb15a0e7512289f7fd5ac1e44f0a98e9d5c2e90a9bf783f", + "context": "636f6e74657874", + "registration_request": "820b3c5660bcd4d4611c6b9f3d9d8df751189b1ceaa1806cfd3719b74609ce21", + "registration_response": "e28e76625a58ed0332a60cfc2c6ff51e851c74c189c5faa81a17a4923b7ca457037b92aaff746f75c706bffe9a9d908808c7e3055e2796a5fcb18674d7ef675be9", + "registration_upload": "030396f9bb2642a226a432310d0e6ca78bc02c218086e267e236f8f3b381d225c0b641d3db0db695506892077798726012a629181f72682721f989b84e19bc27b3870bb06829e7b16b75883533de6b23a9005ec66fa1c3d6a5a4d67f7e6ab7682575528dadb8cd87c4333e780c11258e96d01bdbe5027b98b133a64740fdc8ed371628b9681c9cae1d885a3f1afae39d1aeb7765094dbf23729024fb34fbea936c78b0c67890ae9a7957bcef92e46fda333608c00d165b1805fd003a8d88e1dbcc", + "credential_request": "820b3c5660bcd4d4611c6b9f3d9d8df751189b1ceaa1806cfd3719b74609ce21d3427f13f2facb4036327c43072751790542a4d53ee651a7ba8300b17e803d470297e9c02b6332c8e2086089988f8ab102b1a96a58be56a4069a580d61ac5cac78", + "credential_response": "e28e76625a58ed0332a60cfc2c6ff51e851c74c189c5faa81a17a4923b7ca457a0752a256bc8336411e3c641eceb08b811b7c598add4dca7bcff60cec1c4236fedf241557b767320208b97f768d997c351e119586727bd5e55c818b2b44e480c46c9f7a46a56230b4887b77ba3d410e275517ff5a35002432b2c1de19ccb04f4d1a1240bf5a6773c69ea36b24f1c356650dc5ddb7281c67fa2421edf35de9463847ac1c75d10df73dd25b584820c1d2cede56388b38ae31201ae8316fce5e7c262f337cf56e5cde5f135dd322d830a716cdc1128a7bbbff23311adffaa0321244903cd861b8b6c4f2838e74c1da0ad8e2361cc6221b27d10015cb254d3d8b0302a32372883145ac603f9d31adef1bf2b1bd7c5a1159041d5d7e2688bacbfa383e05d637fbb00a2f7e03a45721f0d52506c73c3a402172a31821432e287c9e367be8e", + "credential_finalization": "8a8673f0e8e6f755ed095bfbb283f94b22f7e5557a974cbd7294d3de7881e01d0bef8dcad89c61e2f1094e7249b1113c205720882c602586c911466c8c4c926e", + "client_registration_state": "fdfc8cba755b67092390f683931a083b5da549557a5fff43089cbbb68c1e5900820b3c5660bcd4d4611c6b9f3d9d8df751189b1ceaa1806cfd3719b74609ce21", + "client_login_state": "fdfc8cba755b67092390f683931a083b5da549557a5fff43089cbbb68c1e5900820b3c5660bcd4d4611c6b9f3d9d8df751189b1ceaa1806cfd3719b74609ce21d3427f13f2facb4036327c43072751790542a4d53ee651a7ba8300b17e803d470297e9c02b6332c8e2086089988f8ab102b1a96a58be56a4069a580d61ac5cac781b2579d4e7298e6d9ae0621e91f6d4aea451f781833d53c53bdc577615b0d7dbd3427f13f2facb4036327c43072751790542a4d53ee651a7ba8300b17e803d47", + "server_login_state": "67c4503aa4c603b4338953749abba8b58cdb01dd6add4b7877d612b487c26a5b4f710b7b87652a5e250231b030857bc746a01054c9439450829fd3716c9bc36c906bfb1e165bbd6d0a148c558f3d8fc2f26125635f6cc84fcd7d2ddaada9020fe00fad63d40de1136d62bf7958d9bee3b29a7ec06cb8603860dd76652de55e74e027948e17949f70a5990296eb1cba2b96ec65baa1b5f0ec2c42cae5ef4d4760740a9d4f32642911e83efc8d056704cec7e3457ed30b0938612db50901aa02d1", + "password_file": "030396f9bb2642a226a432310d0e6ca78bc02c218086e267e236f8f3b381d225c0b641d3db0db695506892077798726012a629181f72682721f989b84e19bc27b3870bb06829e7b16b75883533de6b23a9005ec66fa1c3d6a5a4d67f7e6ab7682575528dadb8cd87c4333e780c11258e96d01bdbe5027b98b133a64740fdc8ed371628b9681c9cae1d885a3f1afae39d1aeb7765094dbf23729024fb34fbea936c78b0c67890ae9a7957bcef92e46fda333608c00d165b1805fd003a8d88e1dbcc", + "export_key": "cac890efd6f2b6fe3182a477b91c4a856e812d9b5e43c78a219bd9be8cd39780366ae04bb1c33d3e5d2b986b019708e51362626b1b14d7ff95caec8d1b83c596", + "session_key": "e027948e17949f70a5990296eb1cba2b96ec65baa1b5f0ec2c42cae5ef4d4760740a9d4f32642911e83efc8d056704cec7e3457ed30b0938612db50901aa02d1" +} +"#; +pub static TEST_VECTOR_P384: &str = r#" +{ + "client_s_pk": "03c40952c81c793c89e38361435f6e5d27dc862726b68ced22c0d45c8b430f0abf932beeafe5a1f87b345db8c15d2d1e72", + "client_s_sk": "56bb70de2eca1933b622a35e6c2197366125748daa83cf3a2f30859ea0c72d8ddce27cb280ad7cb31703e40be5542f93", + "client_e_pk": "036678b1fb0e1a7c2d49349f25286f04809346e853ec24471a8524160ca5291d5cd70b65dc729002b01a7f8db6c1a69adc", + "client_e_sk": "2f43ffcb2e4fbac7008c3613032cd0077d52c56c1f0b7db4c94b2b5eec540bcf0969a32bef472b2fe8213d2f4aa8f116", + "server_s_pk": "03785dfec164aa20c715a0a84d37e3d3b348b145186229dfb29a64dffe7e84319a9ae052b3f6f87a3fb0ac2715db750eb8", + "server_s_sk": "4ccf06e23a108d44ee8b4697ec9f22e174f8ffc0fc214a330a5c5e81b0b12c54c7149f4f90db157c7ca80892448add8a", + "server_e_pk": "021a220a7587666bdd1ee9fa4bf6d61e06fb11111ca399b710fa6cc64e6cb782b0a75dcd2813951ac7fdf30f786d50efee", + "server_e_sk": "08f5664be7b6214737c0379ff61f7d7540234b00f24c6936f497bfa1ce378528da2ec589b5712005e9c657aa278002d5", + "fake_sk": "6ccbb9569b1db4584becd57a32cdb0775d28a661d28bebcf52eb6229242dcbe8e1e94f7ce765b11f4f1b11d458eafedd", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "a1944025eeb9ea60dbfacd66014c938a470dc9973f070f70ac326b0bd18452aec1b732f5cfe8fd180b6771dabd828017", + "oprf_seed": "816deebd78d07102f6eedb62797ae6b49c3d4e5c96db010722a53099247fc64b1324882de8ba69e4d293729ecce08754", + "masking_nonce": "f2bd60c6a305e8e09829b59d74139861c36f094a77636b0f88a834c4019a7e512040051d17ec7c3ec105ed35637e2be6c99b9ba0a85ec9bfbcdce98fc50c8d78", + "envelope_nonce": "8e1efbaed2ca2a2732929158a99f3608f285e3b0168adf58dc73e8702b51cac7", + "client_nonce": "4032b424e469c015e5066da8079f9f6a6a0681976003d3bd50928eb3f2b395d9", + "server_nonce": "5dd57351bd7ae6dd49614a499db806754085afb53f9be0e4f93011818bc4a3ab", + "context": "636f6e74657874", + "registration_request": "0225d4aa9cfa9cf93be792bc4a88696ef6daa91691f989b0a628d072b0dc58c9e0b27bfab64676615c5d4b3eeffc1cb8bc", + "registration_response": "021b1891b090d0f0bf05fb65510abf8f755b63dc7784641cd1027f263dab62921b21864f50ddb069d8ca8efeaa53b9ec1403785dfec164aa20c715a0a84d37e3d3b348b145186229dfb29a64dffe7e84319a9ae052b3f6f87a3fb0ac2715db750eb8", + "registration_upload": "03812cd12c92b921e4b654da32a8d71507e8ffa30f2ce7faa8c40071b8723a577a9a4b47a7cb394e080c0660fb67a3113827cd012e2bb91b0ea4a73c154aae489feb1e56da5316f2d4a35ee90868575cf2d52cbae338477be10ad442a11130e35256bb70de2eca1933b622a35e6c2197366125748daa83cf3a2f30859ea0c72d8ddd697115d42f82971449780f155fb827a36a554e7750ff06bc85624219e87d2564401dd41923efc0b39ed9779fc99305", + "credential_request": "0225d4aa9cfa9cf93be792bc4a88696ef6daa91691f989b0a628d072b0dc58c9e0b27bfab64676615c5d4b3eeffc1cb8bc4032b424e469c015e5066da8079f9f6a6a0681976003d3bd50928eb3f2b395d9036dfac5821a240dd83afc9b52a7e12a8e3904ac4b6d66126f49fc763e22472cb45c5d99b046645ce6ccc6792e5f82e5c1", + "credential_response": "021b1891b090d0f0bf05fb65510abf8f755b63dc7784641cd1027f263dab62921b21864f50ddb069d8ca8efeaa53b9ec14f2bd60c6a305e8e09829b59d74139861c36f094a77636b0f88a834c4019a7e51694e2c3c1460b4fdca1848ba8139d6bb561448ab805113e517c1a7f4001b3b573bccc485fd12cfea9609a05b76357a907a3d863da7e09427cd1d142464d770b18bec148fc31ad6cf204bf6a6b2223dff248f574574f5bacad78adc1b6b42e87a6c469c3bf66b73de9906cb67b9c748f39e4c3d216ae0424f5c4b62cf17741be59f40234b00f24c6936f497bfa1ce378528da2ec589b5712005e9c657aa278002d502acebbb97b3d3ad3e3916b018d761418878c010466a47616c1102d4a7b282c9c98c659bdf08be3a24d8c82724c817da6a3907b98d36153cc4c2efc39cd1a480f46d7d0eafaf61ae635557fb2ed447d1ad3b444ebbcf0257ff79ac7db2efa4cbe2", + "credential_finalization": "88aba77dbfd25733940231bbbab83fcfc433d20827876f6e07f01d87dc3fb9a0ac0ca53495c006448a470f374cc532c7", + "client_registration_state": "a1944025eeb9ea60dbfacd66014c938a470dc9973f070f70ac326b0bd18452aec1b732f5cfe8fd180b6771dabd8280170225d4aa9cfa9cf93be792bc4a88696ef6daa91691f989b0a628d072b0dc58c9e0b27bfab64676615c5d4b3eeffc1cb8bc", + "client_login_state": "a1944025eeb9ea60dbfacd66014c938a470dc9973f070f70ac326b0bd18452aec1b732f5cfe8fd180b6771dabd8280170225d4aa9cfa9cf93be792bc4a88696ef6daa91691f989b0a628d072b0dc58c9e0b27bfab64676615c5d4b3eeffc1cb8bc4032b424e469c015e5066da8079f9f6a6a0681976003d3bd50928eb3f2b395d9036dfac5821a240dd83afc9b52a7e12a8e3904ac4b6d66126f49fc763e22472cb45c5d99b046645ce6ccc6792e5f82e5c180ebf0df05651fb5fb1bdfbe8f85bc351e36274b766016868220b8b89356244c5174b59d01aa3bb3e38ce204cb22b64d4032b424e469c015e5066da8079f9f6a6a0681976003d3bd50928eb3f2b395d9", + "server_login_state": "ab17e7b7aef1f81f1f14e288464b00a6625f396edb8438f29369c628937609aad52ade6ef812feda9014b32f2b99821e0728f03c06585b5268098ea87a24a148a482e935ecf3ad1d9ad2429d7b0553e39db53a6e312cc844fa0cedfeb69f9e3c34aa4273f0771ec1f871d30e390285c29a2a18739dbdfde21c45d79804985b0b2b387c60bfa2f4098e5e1d4d0cb22468", + "password_file": "03812cd12c92b921e4b654da32a8d71507e8ffa30f2ce7faa8c40071b8723a577a9a4b47a7cb394e080c0660fb67a3113827cd012e2bb91b0ea4a73c154aae489feb1e56da5316f2d4a35ee90868575cf2d52cbae338477be10ad442a11130e35256bb70de2eca1933b622a35e6c2197366125748daa83cf3a2f30859ea0c72d8ddd697115d42f82971449780f155fb827a36a554e7750ff06bc85624219e87d2564401dd41923efc0b39ed9779fc99305", + "export_key": "e73ce2213bd381a4a724d9468863fe41984c364fa16286b89240d217b8ecc411364497e45b928170871e4f7ffdc51233", + "session_key": "34aa4273f0771ec1f871d30e390285c29a2a18739dbdfde21c45d79804985b0b2b387c60bfa2f4098e5e1d4d0cb22468" +} +"#; +pub static TEST_VECTOR_P384_P256: &str = r#" +{ + "client_s_pk": "02c36698072701a31eebbd6c8a8ee2ae1d12a280fff4bb7e6e1ce0d88d881da1da17d710c95a5993a0165f6ace25708267", + "client_s_sk": "f9914389feabaa730cfcb3482890b59d3dfc03c8bd2ee6bcb6c17d8cfeb9ea140e09d96c34cc9076c5b55b724a2b1506", + "client_e_pk": "02b79fde7e04ff715062a9d5e7f24abd17ab2355fc3e4c8b4505ab38c534b1b693c90e3cce5c12c4a9e77c5fb75db7fee7", + "client_e_sk": "30b946428eb8e4fd2e339589db02e3649e6d32442b712925bd23ed14f7378119adcf22fa53f355f21421c7839d4eef36", + "server_s_pk": "02a486fb5568d57968ba00f0a9e5b232a12dc767c4370fed22fdf9c2b608f6d73884f5e7ab00b073a993d5669dff694deb", + "server_s_sk": "facceddc852ec0e124a11189dec808f0974c212589eada330074a10a48d5bcdeb1a2b325c819e88679d34b853cea75fa", + "server_e_pk": "03e177d9b15bf217a157e2def5458e453bafae984c8f0de1686d08b2fdfeb3220d331438759678f0f9e9b15f5278606fe4", + "server_e_sk": "7ab8100a2d01e1b85b0aff26407a45560e8e051e13b89f2a1952c1f18a73d89a46a9111de89fbf0b977a33737e3b38e3", + "fake_sk": "0feb33d4bfa011c5c5c076f0900169c3ead3cbe8f76340ebd10df820fcaee25488fdeb2df80d593cfcc5e545ce8a5937", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "bae9bf66d7eaafa11672677f51771bc36f49d3dfee8e811caa3fd0e5ab637c47", + "oprf_seed": "7e0aa3ce5536aa0a9df9c4d28ace606d6967ab1aac71b395140d35f19e9823f6", + "masking_nonce": "402e1195754c924d4634c90d22765d9968c41a64253c8e636335a89947648b3f9df3410b7ec0056e486f26a87e81d0b9a52bec42c39363b97e6b4dd32cc274f1", + "envelope_nonce": "4c599844456177e264431d088a7219020b612461d5f588b407ec72e9ec6c6870", + "client_nonce": "9e1e7ccbb9a6bc27a6d809a073312cbb44b5f657a5b463e9795ef27fb3090786", + "server_nonce": "b098404a29627f752b27a853cc5e9600528b6f05558280592dd0b949f5b91fb9", + "context": "636f6e74657874", + "registration_request": "033366799ad63f073cce27b3181c2e397bb33e42972fa4775e77d626f53ad20e09", + "registration_response": "033d77f755d2008c0975eaa832c46d81cb92b0eeedf3f74b5cc331315372d943d402a486fb5568d57968ba00f0a9e5b232a12dc767c4370fed22fdf9c2b608f6d73884f5e7ab00b073a993d5669dff694deb", + "registration_upload": "0363faff28517af8ae3c1514a81776c2d3b151e0874debb84116be5050a28af23356d84578e3d24203e9b78ddceda8e96ab04580bcc5b84f249b825eaeeeca6c758fb2d7ff449fa65913a0c00e4feff980f9914389feabaa730cfcb3482890b59d3dfc03c8bd2ee6bcb6c17d8cfeb9ea1478ecf497a5a9bba512a26f61f76626686a06fd85d4a0ce72fcde7bdd7f250618", + "credential_request": "033366799ad63f073cce27b3181c2e397bb33e42972fa4775e77d626f53ad20e099e1e7ccbb9a6bc27a6d809a073312cbb44b5f657a5b463e9795ef27fb3090786021508b73c8a38055ae8748a6d413b6cdde5962e73a600ba49a3acda6487830ab59ab6f5c216e6b43c797ac38f2ca06479", + "credential_response": "033d77f755d2008c0975eaa832c46d81cb92b0eeedf3f74b5cc331315372d943d4402e1195754c924d4634c90d22765d9968c41a64253c8e636335a89947648b3f4af13f579dbc85cca0a6e845769e0b661d4607e4e53ca75b53f081338b939363ade21333c3215b1c36a0c609d08ba0eae2c0ab1a01d3e3ec69167f96c3fa8b3f688c8452e4f8f7c3ed83ca7657ecbeb07fb41a418e328411bf40a7a13c71150e118fdfa36b324c41761c4420570335f01f0e8e051e13b89f2a1952c1f18a73d89a46a9111de89fbf0b977a33737e3b38e303232dd04973543539b69e66812f8358bd6998ae6abfe622c9a6364eaa6ef0fabb66d0fa6b7ca67c1501fadb85ffab591f612f592cc8d97ca0d04b079fd4ab591ff1cda8e307df8a3a684898bc7e30ac20", + "credential_finalization": "f51fe3f8a6735d69f8faa6f1744aa86254a4243f20e8e7d4d793cf431935b304", + "client_registration_state": "bae9bf66d7eaafa11672677f51771bc36f49d3dfee8e811caa3fd0e5ab637c47033366799ad63f073cce27b3181c2e397bb33e42972fa4775e77d626f53ad20e09", + "client_login_state": "bae9bf66d7eaafa11672677f51771bc36f49d3dfee8e811caa3fd0e5ab637c47033366799ad63f073cce27b3181c2e397bb33e42972fa4775e77d626f53ad20e099e1e7ccbb9a6bc27a6d809a073312cbb44b5f657a5b463e9795ef27fb3090786021508b73c8a38055ae8748a6d413b6cdde5962e73a600ba49a3acda6487830ab59ab6f5c216e6b43c797ac38f2ca064790231ed8b559e9d072cd252ab79650bb5ab39f6d5e7b44e2c20fc5003016dca2c2291fc551993fb4dbf5ff99ec7f4d1479e1e7ccbb9a6bc27a6d809a073312cbb44b5f657a5b463e9795ef27fb3090786", + "server_login_state": "1f6f965ef97229b9526f14ae39b919c25742a81a402064b831b2b64f3fcb8a63d73e6db98887e8320bfb94c4a4ccd2575398e489d815e63559d712de995b3e7dfdb9d862f48841afbd5590b133b6eda767dc8dd28c11f5dd31df6de20ae4ca7f", + "password_file": "0363faff28517af8ae3c1514a81776c2d3b151e0874debb84116be5050a28af23356d84578e3d24203e9b78ddceda8e96ab04580bcc5b84f249b825eaeeeca6c758fb2d7ff449fa65913a0c00e4feff980f9914389feabaa730cfcb3482890b59d3dfc03c8bd2ee6bcb6c17d8cfeb9ea1478ecf497a5a9bba512a26f61f76626686a06fd85d4a0ce72fcde7bdd7f250618", + "export_key": "98c50520ebcb80853823e695a977bdd8ab5f6f0f57bc0cd10a0f30013230cc25", + "session_key": "fdb9d862f48841afbd5590b133b6eda767dc8dd28c11f5dd31df6de20ae4ca7f" +} +"#; +pub static TEST_VECTOR_P384_P521: &str = r#" +{ + "client_s_pk": "02a0371e768b0a5764644bba466302c25c711df37e05b2c1724cb6d287e00ed7e1bc2135d19a6af8f7b445f4517f7dd5b1", + "client_s_sk": "71d4628d1adc8d3590764dad20e3e8f2f18992791fb4915b26a450aa1ebd11bfbb05937fe8528f5de175034542996248", + "client_e_pk": "02003e4b258ad5bdc97468b6115d8ae227d4f08acf3b6914a9cc72bde23e6291c732ccc7685c060fc5b5368d400577fe80", + "client_e_sk": "e074630e8a6d5d4e71a5c4ba0f100629ac7d4a14ef20cc7e8119690e652afa073d720cd46fc2846faadffdb1259e05fa", + "server_s_pk": "02d167b949bcdc483e31130903230e95350ba49c673d2143301adcfe041c0af18b87c320e81bbe825ef5251609fee3858c", + "server_s_sk": "609faa41ec062f6edf4ef7b3cc1891e3b803b14bbaa193e0700116c59f1da29b4d423970e250dd33331dea2645a0b2d7", + "server_e_pk": "0303a5f95e0c9da90ba748fd4a738d2f09cddf9f1db765aeced8aed129465eb4c3142efcab041af20c14ab81a77f9b0fae", + "server_e_sk": "da60c091323074f23946874a19a05c742bb05b8443a8f128b1c87ef09a9fc5bd5f6e75818d399996f52073de2940e3e9", + "fake_sk": "2438d6e3e63b91eaf02a5c83bd788ed7d282b64f3ac2362e7f572b786e69f7a83b61e2a547dc8512dd73feee120de9e1", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "017be3d991752148ec3c7e03538e41cc189b8411702644408d79322474cb51327e2487b7dff94bc51e4621dc34a90d3debde0db91695fa3d763aa8e2a2044af0ca76", + "oprf_seed": "0bc1c532dcbd4afde40ea8ff68f1ca69cda1935a427c851ad1a4f3cec2f7612b75bfa990a66ae55d197c368b3f5275035bffe43c7ca951d87179f010d0cb1dce", + "masking_nonce": "8c90a71f7f83129ad49fc09a397d06d76cc99e50716950b2a08c675af788b5606afb756d3dada81fbccf67c02c54fce083d47a533f183b063952aa584f1c1c45", + "envelope_nonce": "c418de5790185fc40a261870af58da4318210a1118ea37b6e5859fa929d62b69", + "client_nonce": "153fca4bff14ab23034753e5f1e15042fe1a55a97f01b714da0a90b3ef57a426", + "server_nonce": "f974e1afb955dcda0a06df0320431a5e1295281374b6c232559c8e2f26bd186e", + "context": "636f6e74657874", + "registration_request": "03006ab0e72ece27e969d55642122c01ba7ec7cfc01d548a6307488463d3b644a8b662c2598db9e387a8ced564a0a23a486bd8ec729a7ece06e146725d6984d9626287", + "registration_response": "02012cd83468d883ca88ca5f5a26ccfcec821d82d499945a8f1ed16068ac0a75db2e573d41335ce38631060c0b48e4c6151f004bd7b072ab522fc7ae814c900973ddbd02d167b949bcdc483e31130903230e95350ba49c673d2143301adcfe041c0af18b87c320e81bbe825ef5251609fee3858c", + "registration_upload": "026be25cfcbd1912ab9649f291dbb2871e054ca2c4b9a6d89ec35ea720700d2ad0bdf0e912d964a7c831bae06061a73d7039b099d77d42053732435ac1610ffac7e0e3ba3085b57682594b692f39b2a5097bd731879a736fcdec93faddd998de2517e74e8d32903c6209e33f5e9e7512aa71d4628d1adc8d3590764dad20e3e8f2f18992791fb4915b26a450aa1ebd11bf18434380112c864ce924dc0c4447667ca9b8ac6f5e1fc326af0809130fbcc0df7a6a8e14ff21ed9eee907b407a3f7eacd0f9bdf59252414edfd68400f75ec2d0", + "credential_request": "03006ab0e72ece27e969d55642122c01ba7ec7cfc01d548a6307488463d3b644a8b662c2598db9e387a8ced564a0a23a486bd8ec729a7ece06e146725d6984d9626287153fca4bff14ab23034753e5f1e15042fe1a55a97f01b714da0a90b3ef57a426039b59d7bdd621303948c67fbc003c5998d579415cf0621b003710dccd512fbe4b3082cfc36806192448c3bee08f62f9c7", + "credential_response": "02012cd83468d883ca88ca5f5a26ccfcec821d82d499945a8f1ed16068ac0a75db2e573d41335ce38631060c0b48e4c6151f004bd7b072ab522fc7ae814c900973ddbd8c90a71f7f83129ad49fc09a397d06d76cc99e50716950b2a08c675af788b5609967cc77556a3a7d4e122edbea5f8374edc0f74d0b943fa6ead85906e37f80e50b5c55439e8723623b8a2eb51355b0ac8053fed7478b980847e2f33c0af8adc8a44a2fa32c055541b938ec055319472e2596f1e9bb331374d97a48699b9855ea282df46d6839bace4e53155b24847dcca1c633025ca98f6fd8acdbca743f6d987a9a1b1705ff052152b9c7abf5abb2df4f2bb05b8443a8f128b1c87ef09a9fc5bd5f6e75818d399996f52073de2940e3e9032b25d93e1c98076ec53ee29b94459057b5b13a24478c4999e1edb86511a1676f35dfd4f578246f07393721eb4c36ede182dda8173d062c5a59a7e52763963a65ddca01f4d24ea3858b551068982713bbe23271d41718934561719a557b70182add99e844a6ddfe531185b38c8e6610d6", + "credential_finalization": "9e737de250a038c36a979c569f59cf8619ee01a9262e33124060f5addcafdbd498db310343dc8fa18b07202316cfdafd13897406aaa421f8bcd803cf3c8dae5b", + "client_registration_state": "017be3d991752148ec3c7e03538e41cc189b8411702644408d79322474cb51327e2487b7dff94bc51e4621dc34a90d3debde0db91695fa3d763aa8e2a2044af0ca7603006ab0e72ece27e969d55642122c01ba7ec7cfc01d548a6307488463d3b644a8b662c2598db9e387a8ced564a0a23a486bd8ec729a7ece06e146725d6984d9626287", + "client_login_state": "017be3d991752148ec3c7e03538e41cc189b8411702644408d79322474cb51327e2487b7dff94bc51e4621dc34a90d3debde0db91695fa3d763aa8e2a2044af0ca7603006ab0e72ece27e969d55642122c01ba7ec7cfc01d548a6307488463d3b644a8b662c2598db9e387a8ced564a0a23a486bd8ec729a7ece06e146725d6984d9626287153fca4bff14ab23034753e5f1e15042fe1a55a97f01b714da0a90b3ef57a426039b59d7bdd621303948c67fbc003c5998d579415cf0621b003710dccd512fbe4b3082cfc36806192448c3bee08f62f9c741780b7133912112f09f3228e3e0f442785e109b92843a07d06b5fb12cf21b6cc019e760a7ff4ebe56885f9775f0a3aa153fca4bff14ab23034753e5f1e15042fe1a55a97f01b714da0a90b3ef57a426", + "server_login_state": "8db015300ff999b5d2b9049eed45a7ad644b4f8caa8ebd3e1be8a7e373baf85ff34b388956fa0c6739f20accd31132651ab745c2896ef2fda0ea8cb304c50b531b321438449053be61d18f405fe5c4fa0a937d7864bee03cbf528cec43ff03d9a77f38ad88ee755aa31b122456a88f5b4a6ff4943223ad0465d416f3b12c611aa00058543ef05cd5ceaf27bbfe5364498e53b23fdadaf93ce0badf66d55514d3f015729420bd6fa388ad13f1a10515555fd9cc5e2b67ce05812402e11af10317", + "password_file": "026be25cfcbd1912ab9649f291dbb2871e054ca2c4b9a6d89ec35ea720700d2ad0bdf0e912d964a7c831bae06061a73d7039b099d77d42053732435ac1610ffac7e0e3ba3085b57682594b692f39b2a5097bd731879a736fcdec93faddd998de2517e74e8d32903c6209e33f5e9e7512aa71d4628d1adc8d3590764dad20e3e8f2f18992791fb4915b26a450aa1ebd11bf18434380112c864ce924dc0c4447667ca9b8ac6f5e1fc326af0809130fbcc0df7a6a8e14ff21ed9eee907b407a3f7eacd0f9bdf59252414edfd68400f75ec2d0", + "export_key": "4ef19ee56c54f9d59fd96996dea0fa3c2414b1dabd878f814d90d308863d3ca5459e80f4c239b366b30051bb0bece59dbf87240936de3943bd0db17ff6d132ca", + "session_key": "a00058543ef05cd5ceaf27bbfe5364498e53b23fdadaf93ce0badf66d55514d3f015729420bd6fa388ad13f1a10515555fd9cc5e2b67ce05812402e11af10317" +} +"#; +#[cfg(feature = "ristretto255")] +pub static TEST_VECTOR_P384_RISTRETTO255: &str = r#" +{ + "client_s_pk": "0314f9d357d6afb8926b10277f4f13bddbe168567af638a296073b73507161ae380e6bfaf5880ec0b1c4608b6d8de18f48", + "client_s_sk": "f711ffcf6966735bdb8105239c13232bba56b5a56dd56b69733aa4728abc2b60c3e99fc10d9e59a43aadb08721845386", + "client_e_pk": "02f4f71ec3ef556e25f039325fd4933e557c5cfa1eac46c167012197c538df1bd069c0e44e6815aa09626a3617e4658d9c", + "client_e_sk": "f3e28c25122bcfac693576e6ce9216632d6566a65004e059a60ad143647bb357fd3c6f551239bca1301f96fc7bdcf0b0", + "server_s_pk": "03400c76139c7ab8d27ad2e43af8a0550b72f23f81d7eaccfb96ddb8f77d29055bde491c2587e28621cb61f086969f21a9", + "server_s_sk": "2f515dd296ca45795af4f35761b8e8d007c35564363c546eec4d4b7bb3629795ac7daa794c8841bf777b46fbba8a8cbb", + "server_e_pk": "032197036103094809a9795163ad06c33ca2a83964a587d76f3313a34e1b1f81c2cd25d8705996f008577c7c490b0a1224", + "server_e_sk": "de38c45d36d0ae5875b02d3428e415669d0649c6fea69847b9335cf8da18a568af027a150de428b5212a85242b5c6aca", + "fake_sk": "913d4af69e606d018ea4437e2fe348d0a192fbedf12a6ebf822f26eccaf60cd07c3f9796f7795ec9a47591a348914420", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "23ab6ff17f9fd5cd19cc63fa3e60b1d75ccd8312dd9f1a6f3b2229e9ac2bbd0d", + "oprf_seed": "71f7d1cc005421cda8fd65d3f641d533306c38e1c669985e06db1a7e98894627b2bb2f0b8177f15ac82fdc84876be745717ea6508ca63c2cf5ec9a3d93909e6c", + "masking_nonce": "40a6c6b3a75af79f3b0c750d11c7a0edbe92f0ac6b67b2b5b03e4af66e70df3b1545db040af16d8c7a3960114e3f1a1e99d15dc7624a0bd2bcbb5733c095cc7d", + "envelope_nonce": "56f9fe1f215f1af15f9ab336a3806c5addbd094bceec3ee695f101e1ecfd6bc1", + "client_nonce": "60f17b8487dc577271ad1a1441f677c72e5f36f507483580c47a2a74a26013f3", + "server_nonce": "43cd79ff99d988d58fa62b82379563eb6f09e4458d40222eb00a95d277bf77d7", + "context": "636f6e74657874", + "registration_request": "40bbeaed517df13c90cf5927141920c961900d9abd59f414729bebad7599dc2a", + "registration_response": "06c62063e567217264526da6a4d91c85e3724a2537fa0e4d0deeb043284a470603400c76139c7ab8d27ad2e43af8a0550b72f23f81d7eaccfb96ddb8f77d29055bde491c2587e28621cb61f086969f21a9", + "registration_upload": "0312b01b4c2afa22a2e2335e772d60780236e0d690e79cfc44263a2d15a87458f4c8a2fa891516017be2e16c47a237bc45bc5ab93c1d6a5d47c9f1ac893124f8dccad09b280a2000328e09040f58fa5193b3f5210b75f896ddbe707aa09e50081d975b9b8b9c665127e2690a5f87829bbbf711ffcf6966735bdb8105239c13232bba56b5a56dd56b69733aa4728abc2b602948508ace4aa9b91e6aad3ac2352c8fbd5c7d8c6a4255672fdb13846f2890c5ad25d39476e9989211a3f4bbac4b3a6d2b1faa6072faf4bc52059d7f5eb4f49d", + "credential_request": "40bbeaed517df13c90cf5927141920c961900d9abd59f414729bebad7599dc2a60f17b8487dc577271ad1a1441f677c72e5f36f507483580c47a2a74a26013f302b5ff876729c2b4bbb1068f72072b2fe107b038bea937e1f72fae4a19a485160f16d5a7f339f6f7fe848247efe8389bac", + "credential_response": "06c62063e567217264526da6a4d91c85e3724a2537fa0e4d0deeb043284a470640a6c6b3a75af79f3b0c750d11c7a0edbe92f0ac6b67b2b5b03e4af66e70df3bf1ddab09116550916f6d2f98118248875f32bb26f4a6306758af610bb09f6702f1db696e0be8ac9649e0a70a1bdbbcee5243802955385a5c3b2606c88ef2486d6560ef53ec1bed31797845b525de3268d0b75165e9a2834e115bff8259cc903a473bd9e635d7e63ce087b5922023ee95c4c3495e33c2ac5d3193187b2de9d37283ebf99eaf129a1c5441dc89979d3f915b9d0649c6fea69847b9335cf8da18a568af027a150de428b5212a85242b5c6aca0349c1784043d43520e7b08af6ab8e5cfad62da4117de63c014254e914e8db3d1d0b2377c4976a36582248c3521ecf53ed5194aeaa22eb260a9f0b046a1722067cb663ba75e4a1f724a3375c2ea47a3690407c988cb8f071280885f86fea866ba16f3fed76df2aa11fea210e06be14bac4", + "credential_finalization": "94ccd3330d6241023d0c29e8e2b1d75027dc83a1186346ff8ae75a5ea1bda604593b911d04d6e9f9ca63b938f0bfd50ecb9b93507e9ea2cb5f7b280afe5e2a52", + "client_registration_state": "23ab6ff17f9fd5cd19cc63fa3e60b1d75ccd8312dd9f1a6f3b2229e9ac2bbd0d40bbeaed517df13c90cf5927141920c961900d9abd59f414729bebad7599dc2a", + "client_login_state": "23ab6ff17f9fd5cd19cc63fa3e60b1d75ccd8312dd9f1a6f3b2229e9ac2bbd0d40bbeaed517df13c90cf5927141920c961900d9abd59f414729bebad7599dc2a60f17b8487dc577271ad1a1441f677c72e5f36f507483580c47a2a74a26013f302b5ff876729c2b4bbb1068f72072b2fe107b038bea937e1f72fae4a19a485160f16d5a7f339f6f7fe848247efe8389bac8d5639ca37d67416da9f26acd974c62a8113a20239436e2b8e6f08f40a181b6c7b9a41c97feac0b71dccada98c0a89cf60f17b8487dc577271ad1a1441f677c72e5f36f507483580c47a2a74a26013f3", + "server_login_state": "354dde669ce5f4adc6320eab7c7530fc3918872f21e8ea18e38d0e483bb927e6f0986513d0f889113eaccef10a3690dec5b22b42cf60247c1ecaa61adf9d47529cf0a183b40da19df48fcfc9eb11706fb60f285c56d30a84ba0fb5ad07a80d61fdbf01be0ed7c305c3b59724241adcf34ece9e0a588aaf18ebe9d8d8f7aaab8b5c2eeef3321034f90de228c184d569577be68f664453b33b562741a0c7ace277de1cc01ac3c09c425a4da36e8cb2a6136b683f7f47752a2902b2ecbe53dd1c39", + "password_file": "0312b01b4c2afa22a2e2335e772d60780236e0d690e79cfc44263a2d15a87458f4c8a2fa891516017be2e16c47a237bc45bc5ab93c1d6a5d47c9f1ac893124f8dccad09b280a2000328e09040f58fa5193b3f5210b75f896ddbe707aa09e50081d975b9b8b9c665127e2690a5f87829bbbf711ffcf6966735bdb8105239c13232bba56b5a56dd56b69733aa4728abc2b602948508ace4aa9b91e6aad3ac2352c8fbd5c7d8c6a4255672fdb13846f2890c5ad25d39476e9989211a3f4bbac4b3a6d2b1faa6072faf4bc52059d7f5eb4f49d", + "export_key": "edeb167db3d7b618b42da800abb47c06ba466811d75ddc9722c047204e3ab9130ce58d817d3545acc1638934572e148d4b698a7d88680c0a4480871b9da01429", + "session_key": "5c2eeef3321034f90de228c184d569577be68f664453b33b562741a0c7ace277de1cc01ac3c09c425a4da36e8cb2a6136b683f7f47752a2902b2ecbe53dd1c39" +} +"#; +pub static TEST_VECTOR_P521: &str = r#" +{ + "client_s_pk": "0301ac272ef216bb117a47df994c85e8eef3fbfcdb075393e09eda56c48704fb4048537f3625522ffa733828761f8590e8f75a1161de8253a8eebf8e6cba5bfa444054", + "client_s_sk": "016d95b5b12c5611719ce0349b28f4464c2e969eaa5e98ba80aeecbf003542c9a126a4bf154f35483fa3aa5ce2b376cf2695072b4fef6f9d6ff68a24b0883f90d17b", + "client_e_pk": "030069c00f2e761ea78c972aa21134766303eadfa3b37272bc6a1d247fcd1fae8b986eca28f57a9bb527ec867155143d4a13031a85424e4a3e8de9df9246e1f6d952fd", + "client_e_sk": "01c23a4244dc4aeabb1571d52d0eb8784995f84dec8e0355689428091252a53d889484074913c9161ea1879d13e6ecf37444eeb0d7f1cec9a1e088080d740e4217cc", + "server_s_pk": "02012ab5262d46bc1d0e91c17f87bde04d1395cc6763d7de5695cb6d6feff0e9b72f5535f3b985c580cfa04424ddea831fa615b10fb2c36fd75015f52c6c99f0e46ab6", + "server_s_sk": "01ee7b0fac4ce16e34e8bd492369a3ed1d46229c03760f86a9aa031103bf11a62e5354c2a3724e9e78bfc7197b42760336e0f4d4e46aaba53340c7bc2db2bb16208b", + "server_e_pk": "0301a5bdc18e80c7ed307bf414ce8a7b326d44b68fa31e269cf9a86f6f5278edc545472a2d0a106c351972afecbc71de6058c18937444fcab7860f3d521e486e03e0c6", + "server_e_sk": "0081ed43941ae5cf7d90bc69b075fff8ab2c82e12a360e184d121bffa9ec5fee0ef15da1c6b7039dd8e6b0cdbdef2b2f73f4ac5b7b6605ff53d62379b5a5a4ec8bbd", + "fake_sk": "0188f1aab49f0bcd97b425bd77ef992a9523396f5e2c068d56ec13f0cfb283f978ea4a13095a348993eee78ec07289b143c30355f2b0a1abb6694c52c499737b32f6", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "00f16830d5483907312b77a7bf11fdd5e89b0ec04bcc0e0edf92e427b5be418a7adbadd172f3720ef6c4aa19defbe9d930508360fd168e4f4897f3c5f28d0a8218e2", + "oprf_seed": "db27edb5c9b7892422cfdef6674dec2f5109268c8d926b9ce7820df3f34c7e31916a636322dd86b6ccf4e08491646ff15a8994a846bb15231bde86e357d684ba", + "masking_nonce": "48031a96c42563a3a96ed213a844dbffec89ac2b22da554345280eee0f9ff6db62519789d009027c61486da5743af3f22982b35adf5881c0419ff6d474ccb6e3", + "envelope_nonce": "85e5850da86392e111329ff98f1cffe841f1bf2c8f0737a658d6f3bac7265549", + "client_nonce": "cf8e1353de4a065825b73f5c09eebd1bfec51e4f9c614baed736aba2577bf2bf", + "server_nonce": "0d49bcbec5d6bf512da60c61c544421c26425c41023906c8c2c74ea7f4a6d8e0", + "context": "636f6e74657874", + "registration_request": "0201b8fadfe487f10e120b92827db81d72182adda22ad15f7a0762a234ec2ced90a784f720931d8d29a9d9fb46a6512ea58fb53cfaab2668c6814e2c32bc57f6a8f5b5", + "registration_response": "03009a86344213989715cc653d5d2b1f51bea3b65dbd8f75a85bd4e314937e87a620397861cf4c46599aafbf1f3e189324a8191be8eb6771669e5bdaaaa88e9abd0e7502012ab5262d46bc1d0e91c17f87bde04d1395cc6763d7de5695cb6d6feff0e9b72f5535f3b985c580cfa04424ddea831fa615b10fb2c36fd75015f52c6c99f0e46ab6", + "registration_upload": "02001674d47f17dd5ff7289736a90bf58ba49d3aa3bcdaaf5cea50645b2e2599a2663a506b352bcee71913e166e7f3ca7431c8ee447637cb9b7947e678f24c83c22929c8c087578915a393e6d1c7211f44dc840057c86c1b4faa84168e251a5e8cbb7aa4016bc00a0d43ef028931ccc2dcc27e4264f812cfe504366592ea4d0e9c9bab016d95b5b12c5611719ce0349b28f4464c2e969eaa5e98ba80aeecbf003542c9c89c88d13197723e24f664675babb4e81c59fbf286fb89e0918e50e7998c26baaf9005d0b2929354d7389387aaf9c9ab6bfd4ae5fa539e51f3076bc60dc37132", + "credential_request": "0201b8fadfe487f10e120b92827db81d72182adda22ad15f7a0762a234ec2ced90a784f720931d8d29a9d9fb46a6512ea58fb53cfaab2668c6814e2c32bc57f6a8f5b5cf8e1353de4a065825b73f5c09eebd1bfec51e4f9c614baed736aba2577bf2bf030054b1e4acbd549e91b1c382ade24d7295f316a84b714e81bd776edfa0fa34fc556bdf5ab53a934d2e4b11017a05bfd7c8e8114ab0cb120d00bdcf11681ac8c979a3", + "credential_response": "03009a86344213989715cc653d5d2b1f51bea3b65dbd8f75a85bd4e314937e87a620397861cf4c46599aafbf1f3e189324a8191be8eb6771669e5bdaaaa88e9abd0e7548031a96c42563a3a96ed213a844dbffec89ac2b22da554345280eee0f9ff6dbbbfd7b91f03273ff2c7058bee03d95f016a472be2820cbb65f0b61b9b4bd69cbf00f67845a15fe5be84671024c185b95eea589dbf8dc92fadf476fb521cd3f8067f07a1cef796b83bdd7b24506d02234b9d25e31c2ad4b126fded4c9f9dbc5a6e606b1601fb712bca220c73bbeaf4155ce3cbecfc8bf853c1373a7e942f1be4613458f88105111d0cda6a4c936b638354935a6dc1b0acfd15fc49fc5cbe65ee85ba3525da1c6b7039dd8e6b0cdbdef2b2f73f4ac5b7b6605ff53d62379b5a5a4ec8bbd0200d00d05d099d296429e30f7069f6b5debf08a483868f5db66dbb0f6a8cf8dd97137c4acbddb44f0805c40ae4680f8f40514729a4563cc0b362cceadeb341636f481807b3b40af047bca7d645e587e9c21ac24ca05c1a74bf6f83796e932bf18aa35ece9edfb80ffe71b0528a9e984ad4ff8fdd902f62dca1dc744848ec5d0cd4fb5", + "credential_finalization": "62b14fd47d654947ae72f558e3724673bdcb37d9de5350761d018b7911dd115c2fdf1a8a6c7b857b6ba00c2eb20c971d676c3fc22dfd4ffb03b829143b4f4d7b", + "client_registration_state": "00f16830d5483907312b77a7bf11fdd5e89b0ec04bcc0e0edf92e427b5be418a7adbadd172f3720ef6c4aa19defbe9d930508360fd168e4f4897f3c5f28d0a8218e20201b8fadfe487f10e120b92827db81d72182adda22ad15f7a0762a234ec2ced90a784f720931d8d29a9d9fb46a6512ea58fb53cfaab2668c6814e2c32bc57f6a8f5b5", + "client_login_state": "00f16830d5483907312b77a7bf11fdd5e89b0ec04bcc0e0edf92e427b5be418a7adbadd172f3720ef6c4aa19defbe9d930508360fd168e4f4897f3c5f28d0a8218e20201b8fadfe487f10e120b92827db81d72182adda22ad15f7a0762a234ec2ced90a784f720931d8d29a9d9fb46a6512ea58fb53cfaab2668c6814e2c32bc57f6a8f5b5cf8e1353de4a065825b73f5c09eebd1bfec51e4f9c614baed736aba2577bf2bf030054b1e4acbd549e91b1c382ade24d7295f316a84b714e81bd776edfa0fa34fc556bdf5ab53a934d2e4b11017a05bfd7c8e8114ab0cb120d00bdcf11681ac8c979a3001fe2be1447130dc1366fcbab829edeac7f9b4930b40cca97f1fefd8fed3f72a0049c8d18660e65906209a17d7ad7d9f75727b9b65dd8e78bc8f7842b83ac0fbb18cf8e1353de4a065825b73f5c09eebd1bfec51e4f9c614baed736aba2577bf2bf", + "server_login_state": "b2d2ec5c904fc54b11cdf5be630c26ff9ca2fcec629b8111bbb19850bca853df66c806259374b661b89422203c26c95386a43822b7ed6172460adeddd156bc3781c3b45d1d35d480f6c3944ffb8512b5d53ae0535675150d298f3f66a65ab9ff2db634af4c54e363c5512e60fc11cb7956ced457cf7dfb03400eaef831e6fd3062101d54a141ec635ed246d2f33b505ed5dcedf922e94f54009b2bd64a8b66881e0aa8d60b0800197b386559aa42761d9779141152af97ec5ebe20ed79b2b022", + "password_file": "02001674d47f17dd5ff7289736a90bf58ba49d3aa3bcdaaf5cea50645b2e2599a2663a506b352bcee71913e166e7f3ca7431c8ee447637cb9b7947e678f24c83c22929c8c087578915a393e6d1c7211f44dc840057c86c1b4faa84168e251a5e8cbb7aa4016bc00a0d43ef028931ccc2dcc27e4264f812cfe504366592ea4d0e9c9bab016d95b5b12c5611719ce0349b28f4464c2e969eaa5e98ba80aeecbf003542c9c89c88d13197723e24f664675babb4e81c59fbf286fb89e0918e50e7998c26baaf9005d0b2929354d7389387aaf9c9ab6bfd4ae5fa539e51f3076bc60dc37132", + "export_key": "1dd7c3f608d613c11abe61e8f43a203dafc16f59a2c3692134983a99a97f22b8f641309dfc9ad3c0072486a1797d0225c6b5056fc976364ea6ffd5af9e2cadb2", + "session_key": "62101d54a141ec635ed246d2f33b505ed5dcedf922e94f54009b2bd64a8b66881e0aa8d60b0800197b386559aa42761d9779141152af97ec5ebe20ed79b2b022" +} +"#; +pub static TEST_VECTOR_P521_P256: &str = r#" +{ + "client_s_pk": "0301a0ce8160eda344ff1547684b7926332f6ec6e93af8dea7e5e5e9ec088760184cd768232ff60b8933575fe4afb9b3973b956ededc06d2d3ada80235b1a428f9bf66", + "client_s_sk": "0002f3470047c232f0c224aee0b27430c4c21d1d43d12dbe04944259351a689f73d69f935d3a346942c4e7bb3a8ee7101699bf2b0bf001bf9a364c471f2a7ea39900", + "client_e_pk": "03019e5d15833da39f7d34cc9bcee1d28289ac7db444bf0c98652dba040d67bd94c3df9b96f7f7a6cff8a24ed22be23f80b47a91819728257d2e8a3f78a9e269003953", + "client_e_sk": "00f8e62052dd66905cd4f3dda4056a0287404cfd7113a9865dd1aa23ff755c58ebae5012d75dc0309749fc02d151193d033147e51ceb2922220b28dffea583a7e2ee", + "server_s_pk": "0300df926dfc148858a5c76e1db5b70be78bab8c626828159a58022889a35400db6042508a6fbc0dffc31cfbe249d45e6fda64eb4b3719c4e61fc5388cc23da8eb718b", + "server_s_sk": "015b05aaf1bb05ad9822ae7bb457b6234dd2ac9b6cbc780b7ca2731e61dc9019902dd2f672a64ea89c35bd228ac7c62b4414f151cc23c31ffa247b7151f7b94e47b7", + "server_e_pk": "03009c4a8a1ad2eceb98043d99bc5fb9b9cc81ab21679355cbe416d7dafae520ca1152325b68f4bb4777fe451469b6d5d4309c06b025fd04b4409838a351c96441e12a", + "server_e_sk": "00da2943c89b706e9658477015533e4ed1020bf65ae69bb411273a406ae573691a07d88049acc43714e4e7a047338157cedac081e20e2b3d42039bde4de65efeaf8f", + "fake_sk": "0004944a91c9b686f79e4db6690694ff0bd82f1ffe8b385316a0c74d9dc96865fd463744575db7de19502a0396b63d3116f612dc8921962f7a6c76b42a376139eae2", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "449ed586717d03f4af1d8ddc858d056b64f84ee71c5d8a72e00f108cef114af4", + "oprf_seed": "a4c2a9d0b899c9285ffd654f0d307703d51854b8695d8a12edd25b27547883fe", + "masking_nonce": "dedd5ff45fa27e1e5c6341c5849c614d318b42af977aa7631b918117ea49c58ea64bb5d2d315975120a941c147735551a86cf5651c9ac357663720a34b7cd8c8", + "envelope_nonce": "3cdb0ee9f01e0780b4e67fd7b537191983b569014328f6ce48db4a4373f499e1", + "client_nonce": "a529db6a1c39315bc3ebe96de3fde27e99527c1741f62ed3a600dc5b33902e78", + "server_nonce": "313140c4c0b759933a990331d941bb9ec5a285ac36e3884aac35d4da7b10965d", + "context": "636f6e74657874", + "registration_request": "027e891ba190fbf38e291c493b53786a05c5c3c58e35d2069254558a088a191ce6", + "registration_response": "038242b377ecba447163f3facff2ac1634db0567701c34b3ed4ed31449068c6bf10300df926dfc148858a5c76e1db5b70be78bab8c626828159a58022889a35400db6042508a6fbc0dffc31cfbe249d45e6fda64eb4b3719c4e61fc5388cc23da8eb718b", + "registration_upload": "030168f332465b24aff38d1470ea0c086cc3e4ec6709aafd196fd2bb32313d57eafdca9a783a711a468f20f43461ddc08dd94e1af251b40eadc7466824ee5dfa5bb5e8f0a8b2c28be83242f53ca5be794e34b421788c699867b000222205fb4bdcafff0002f3470047c232f0c224aee0b27430c4c21d1d43d12dbe04944259351a689fe2b41cb35894bf2e24a7f2f1f082ed1d0f786a9ac393f84957c52e42abb3d686", + "credential_request": "027e891ba190fbf38e291c493b53786a05c5c3c58e35d2069254558a088a191ce6a529db6a1c39315bc3ebe96de3fde27e99527c1741f62ed3a600dc5b33902e780200432e4cb2931e2caa9149ee372965b700b8bb5567aed489240747173d7125ea85a50cb5e2e094ef5a7671a87efabdace223330f7c67bc6b27b23e45be28824d84e0", + "credential_response": "038242b377ecba447163f3facff2ac1634db0567701c34b3ed4ed31449068c6bf1dedd5ff45fa27e1e5c6341c5849c614d318b42af977aa7631b918117ea49c58e64507a9b4d68fe1e3e8a9c745f03509bd41bd2b2542a126f149222e2c50094991d438e375d2019c7c4a47d699759db0212a74c63f2396b431de47f1e826382d2e5bdf187df4dbd7e833f1c308b3d258e612a5b2d8f14a26c66d926e4bbf22ea50ab654e142cb1da58673eef4b830d88ed03f2eba68b5940880b8e031f7f9ace972256ad88049acc43714e4e7a047338157cedac081e20e2b3d42039bde4de65efeaf8f02019e2cc60f44f9f11bcba8e670456ab8787a6fa344bcdf5a70dd6fdd011ebdf8c0278a8eaa589eee3653e1720000b91404f42a905b7356388f23e09f26502721c339940628525b910458e0c567307ce80cf1447572a565602d7018981df6ff97d917", + "credential_finalization": "547989bc6c5c831b4422e655c84f11a94bac353ae722cae887837e237d4753cf", + "client_registration_state": "449ed586717d03f4af1d8ddc858d056b64f84ee71c5d8a72e00f108cef114af4027e891ba190fbf38e291c493b53786a05c5c3c58e35d2069254558a088a191ce6", + "client_login_state": "449ed586717d03f4af1d8ddc858d056b64f84ee71c5d8a72e00f108cef114af4027e891ba190fbf38e291c493b53786a05c5c3c58e35d2069254558a088a191ce6a529db6a1c39315bc3ebe96de3fde27e99527c1741f62ed3a600dc5b33902e780200432e4cb2931e2caa9149ee372965b700b8bb5567aed489240747173d7125ea85a50cb5e2e094ef5a7671a87efabdace223330f7c67bc6b27b23e45be28824d84e0013ef2c1146a3443858d7af297d40857c6f386306e489145122b00f2c2c8216f924c709b02c4e71a740a7a393ac1f8390a3dbedfa242978cafbad03ce0f5f7486341a529db6a1c39315bc3ebe96de3fde27e99527c1741f62ed3a600dc5b33902e78", + "server_login_state": "16610d80711d47bd31c8bd21c2ab32cac86c1058ad61f72f32d744a275cdf076d9474dd66c05a6ae9d9ead11a5194d561e9f6d297b7a8b1b0916b5e6a3d59f808ce219db0c45a3d22f24130e8ff0dff53a5a106238651d3314a3f47405698e0a", + "password_file": "030168f332465b24aff38d1470ea0c086cc3e4ec6709aafd196fd2bb32313d57eafdca9a783a711a468f20f43461ddc08dd94e1af251b40eadc7466824ee5dfa5bb5e8f0a8b2c28be83242f53ca5be794e34b421788c699867b000222205fb4bdcafff0002f3470047c232f0c224aee0b27430c4c21d1d43d12dbe04944259351a689fe2b41cb35894bf2e24a7f2f1f082ed1d0f786a9ac393f84957c52e42abb3d686", + "export_key": "d8801785c22aa4818f125155573e3e6d4591a8423c8d7f08df60384ab6261c97", + "session_key": "8ce219db0c45a3d22f24130e8ff0dff53a5a106238651d3314a3f47405698e0a" +} +"#; +pub static TEST_VECTOR_P521_P384: &str = r#" +{ + "client_s_pk": "03005d59b4b8ab7d20185dadb0c83825a3e8db24e6881f146dac988fe13e8163a795d2ba96455de2c265975e5ebd64cc82f1dbf6cc4e8fce2fb1354c120980a0f583c3", + "client_s_sk": "00b5903be0f2babace61554a9a5c1a6c7f33f7bb3585ae99c081ffe66a4518a0bb6ad31308520debab0f2d85577feebb4544fb4d4e9a9a72ce1e7374301eeff82c62", + "client_e_pk": "02004d5c3cd877eba5bb6f486f5670ca5273c8f35997275d285710ad84bea6419baaf7a87a9b42fc63e999f08fc05da79357a9557da25c75cff61c320f6401ed56ca6d", + "client_e_sk": "01a36265524e19b64d82ff57eb83b2f70fa9857e043ad0ce76e10e36bf4389e46087c14abecaaa55f2a5748521a9e06bc4fd080e6c76a08a5d6f41f3410278b74ae9", + "server_s_pk": "0201afd697075bd6d1f3e87237f70dff3645c2dbf3015df1b6feb957408cfb4d75cbe86d0e78d87358fbb8930ba94ce59ac250b9767c606f4d8c1524168561decdb027", + "server_s_sk": "01c35934ac85d68d1b717bd91da06312b2b6b8ed8217b91ff3b9f11b008a3d1f8ef75a30a51988a76770c5a1d7a66761d1d3b3b204b2aa534024cf33fd618bc8c545", + "server_e_pk": "0201e764eef6e430361370121fcb55b3b0e61275b2db62e5bd1b0308cabdca0d81cd242f0d5362e08e784aea477cf0058ba43b0f61c76ec9a76b6fb6d57c80334893b0", + "server_e_sk": "00d1f335d42e20975ed15a848c4a869494e6259cb8d665aaa5754da7ad87077df1b110ddc9c6649088345aa077fbe73281f48287ddfa058e9ed007e882cc71fae4fa", + "fake_sk": "01de1b666f4011f82f37eb08d2bce88ae67b6bb1f64ed306f5295ce69276126835e15a93ee6602c83402f0dca9997ea997e746b55d3bc84016ef9f31c7e47028cd97", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "924098d24d80285efdc311105d876e4a92f0f712cec23fe48981632ffd4eca6fe16c4aa0d9f228eecd4ba9c2026a52d6", + "oprf_seed": "4f9977ac361ba262dc63f4a38b63beb6389f5293181f112b1aa31ba0dde8ebd70f4cc379d2f3bea09cdf4678459926a1", + "masking_nonce": "9c2fc0ab825db24eb36dbbace46dc996ea64334c5b0a163149b81c8410d18e47ce08a2524fcc9bd5450a07e5bc3e5f534c46bab4ef8a03a5d094eb86ed15a849", + "envelope_nonce": "743f2a8a2b9bfc371c8021ab23ae360488c0dedba0a28df3b82b4c73a4557382", + "client_nonce": "528a05ec29ed87cb0d50579662412b36166d7a2e102f13aafa7a6f22c33e31be", + "server_nonce": "23f71e25e4ded06473540dac9e655d620bfa0df0a1dc8f65570097efb2266bf1", + "context": "636f6e74657874", + "registration_request": "0332ca6455c32e88a7a0d522a55301d6e208f921687c5bfa1e7f6acd014489d39585b42d421538832f58a874189d47899c", + "registration_response": "027fadd117711dac952b7489e1b6577e105a5a282abc7b3f1f32c391406cd8315a5e205b3cd1f6ec9e1e689f09f3b0d3380201afd697075bd6d1f3e87237f70dff3645c2dbf3015df1b6feb957408cfb4d75cbe86d0e78d87358fbb8930ba94ce59ac250b9767c606f4d8c1524168561decdb027", + "registration_upload": "02004709f1b26ca5be79ea19569f4ff33abde901f149500fb87cafed54ee5b8f11ee74a1c50a5d7aca4065e43e578b5f927a8ab7e66773c17b591585d105136503da772e00fdc7565a2325828900ff265005b5894fdc6354c21c146c08bd053386d1bb0e1ef8539b80ad660eefeb1a6fbb814300b5903be0f2babace61554a9a5c1a6c7f33f7bb3585ae99c081ffe66a4518a01034897a4fc6bd1070f8611826a7633dd8b037062978a21a43b2c4fd6525baeb9a73c4bc59a21549e438dae9f34c70fc", + "credential_request": "0332ca6455c32e88a7a0d522a55301d6e208f921687c5bfa1e7f6acd014489d39585b42d421538832f58a874189d47899c528a05ec29ed87cb0d50579662412b36166d7a2e102f13aafa7a6f22c33e31be02018cd7a6dabfd1b3992710e6c788e94525551f28fe708d25de0a2b031c332f453bc0b46bec9096f1b9b2f623b6c1a1c8e0f5291b5b27bd784b9a50584243234d2738", + "credential_response": "027fadd117711dac952b7489e1b6577e105a5a282abc7b3f1f32c391406cd8315a5e205b3cd1f6ec9e1e689f09f3b0d3389c2fc0ab825db24eb36dbbace46dc996ea64334c5b0a163149b81c8410d18e47171fb715ddf3d98b55c91d9876845dfa2861df78ce5d60921f000b67a9528c4920fb42ff10ffca3aa143e5df8a65ae7aa2917c12acc2e9c51e08b1ac230060856cff5deed0c1bd0d3f402d3bccb2c81c44f2aff3ea15c3bbe2dd31c79c2b0119b70d4e3063d73bb56a1ece95a8bcc20d60341dbe0c8a4b3baa63f9c4632caf341439a3bd4bd0c9999061dff5efd3dcff65679810ddc9c6649088345aa077fbe73281f48287ddfa058e9ed007e882cc71fae4fa03015454ce19e26592c2260fbd2fd88df271f48d5a4379593fa4908d99a1c40972134494fdc4960c489eccc450564324df3a3b9c1f42aded579645912e87b2926960283c3f9d098f8ea503bd957042683e5d2dfcb5891701f331ecb9d36d63abfe8d18f688aca000c80bf985e37315040996cb", + "credential_finalization": "8f8293e813a58d76bcb0da8d4b5b35c85f9768f8b7074fc85921bb609a788e4fb8e2a4eacca1ab14992b690d8cc3043f", + "client_registration_state": "924098d24d80285efdc311105d876e4a92f0f712cec23fe48981632ffd4eca6fe16c4aa0d9f228eecd4ba9c2026a52d60332ca6455c32e88a7a0d522a55301d6e208f921687c5bfa1e7f6acd014489d39585b42d421538832f58a874189d47899c", + "client_login_state": "924098d24d80285efdc311105d876e4a92f0f712cec23fe48981632ffd4eca6fe16c4aa0d9f228eecd4ba9c2026a52d60332ca6455c32e88a7a0d522a55301d6e208f921687c5bfa1e7f6acd014489d39585b42d421538832f58a874189d47899c528a05ec29ed87cb0d50579662412b36166d7a2e102f13aafa7a6f22c33e31be02018cd7a6dabfd1b3992710e6c788e94525551f28fe708d25de0a2b031c332f453bc0b46bec9096f1b9b2f623b6c1a1c8e0f5291b5b27bd784b9a50584243234d2738013c26c8e3a1f260db227ea99a810c291aafcd02ed47f0694f4a610d4adb677753fb43b86ecfbcfe67397f2f56c3d6fc5a791032dac21b5cb223a77efeea54c685fd528a05ec29ed87cb0d50579662412b36166d7a2e102f13aafa7a6f22c33e31be", + "server_login_state": "5eef72ad870b3ac310ae95d05866172e6185b3f057850c285ed27d8d4da2a6f038ac7cf1d2e35e48ac670b405ea77bb1fdfa1752d367f7fd98a1222115aed323a70f5c0f8ae8b290f30a4799442d3a388ff3c51b8963ab7a5e5f3fbd08e90fcabe7c83348302b85146a483f241e46a58b1ab14c0baa9037a87db190d34b02afc37c1ef946e3e10641991604c6c42bfba", + "password_file": "02004709f1b26ca5be79ea19569f4ff33abde901f149500fb87cafed54ee5b8f11ee74a1c50a5d7aca4065e43e578b5f927a8ab7e66773c17b591585d105136503da772e00fdc7565a2325828900ff265005b5894fdc6354c21c146c08bd053386d1bb0e1ef8539b80ad660eefeb1a6fbb814300b5903be0f2babace61554a9a5c1a6c7f33f7bb3585ae99c081ffe66a4518a01034897a4fc6bd1070f8611826a7633dd8b037062978a21a43b2c4fd6525baeb9a73c4bc59a21549e438dae9f34c70fc", + "export_key": "81c736f26710d032fc36e0e21ba7689efee3795bed78795c621d44e9932d7e6075e8841c01a7ee7948a2d661faee79cf", + "session_key": "be7c83348302b85146a483f241e46a58b1ab14c0baa9037a87db190d34b02afc37c1ef946e3e10641991604c6c42bfba" +} +"#; +#[cfg(feature = "ristretto255")] +pub static TEST_VECTOR_P521_RISTRETTO255: &str = r#" +{ + "client_s_pk": "0201cd037838ae960fbd48ea76e873527d040d8dabe9a9445bb88627efdd0849a907570e652f1bfe6ff61bcf7e54a1546bec108330407e1ce5ee5ad1eb39674925495d", + "client_s_sk": "0104a7af2625b9ec8e7451bac2266887c0bd9c24a739bff696dceb84ce4171307596c13c65e43c56ee41628bafcd0d979a61dc27b59159284550930f63005356b5b2", + "client_e_pk": "020196a4c1b7c325eb9129e9545836b0d4a85f439f9130e635d6ffe0b68c4f97b373e7b5aea607399b689b45a0415c6c10e041bf47fad07d6d3cae161672a4da44e278", + "client_e_sk": "009c1ff13bb5d86197e2039ee6838181d09f0b746fc08fe7f54fc18b598a110be4cccb23eb97b0624b16dcfb638efe580b80f63fd27baeddc23228c7c7d3bfff1fa4", + "server_s_pk": "03009815393d2fc3601e91736797cc9c415fb3261adcf6085e022e0cae03c1779eac8bd675a4069b98cde3f543c2ebf0b4f6b32ac6ae53ac57415607566a95b8a3e649", + "server_s_sk": "00eabda27e1170fb87839c2dc6b697142b125f7420df9a56135c60d966161de5cd4f9a9c53b677859448d148c3645f98d2babb5b8cb6a9bcf2572dc96f0f91e993a0", + "server_e_pk": "0200d9801c42e8a430356feb85108e5953388feee7ed84f0b10253411d18609790192764d0f92139535cfed0f46cb2c6f1833dc4e6cee905290aadfbb4ff831a8aa770", + "server_e_sk": "0023ca357ca5a179e301a30937c86ce8ccd19ec100d80e096011887e686515ff5919fe79d920f5881fac770685930f7ba353a54aa930a3beffb771699002e318d26e", + "fake_sk": "01ada45073b2f3fc96545fc610677a2569923bfd5a88c4615ec7a7c70daef3585799fa9596c60a8b9e3358cb7e8300f44ae41bd3f6d170c7b93556041d273f051eec", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "12343d540ac451fbf0b6f625120432a1ea5bac2782297c53305fbfc3cc469308", + "oprf_seed": "44411d04d8fcb6263c68abb954f66ebdd6df648f5c04221d403f22cc375aab5c5c8a6b6801162f0df44d1e042f078fd40d34b1a232372de9758b02060d73fbef", + "masking_nonce": "6d2f11968ef51cf23bdb937111ac808026b3b8c38f7b19363931132456e8aa01deeb5a03171afeaa92fa4de9713b2a9ab73ae93f4ebeb5ec03fbc417d01c17a5", + "envelope_nonce": "35f2444f1007eb67843d026559b7b7953e655c51c46b913aca63cf0e05ba68ee", + "client_nonce": "06989e26843e4da1a092cf1b0c460a68217163ad4bb807042d7a0fa895027382", + "server_nonce": "9a23480ca4ebf9d7aed39f4a9690b16d87fc131020a050cc1d4843ae4b788c98", + "context": "636f6e74657874", + "registration_request": "ce6256b6c25f217c4e7729aae4c91bdf456ff3c287f872c893bbf44e7cae5e38", + "registration_response": "80f16c9bc6ce26458b5d0452852a4ccc4bef8f0342e0730a1791bfbe89a49a6203009815393d2fc3601e91736797cc9c415fb3261adcf6085e022e0cae03c1779eac8bd675a4069b98cde3f543c2ebf0b4f6b32ac6ae53ac57415607566a95b8a3e649", + "registration_upload": "02012616e7383893ecfc04c1a24fc691883465d33c97f3c10c93725fa616ec042af9a59ea2912adff108a8c1ebefb72cf5dae18c815459ebc3ec2f8f856f66dff3c7dfee2121b7d28c1ada838279c20758113368104f2ba8e8979ca1d5736f645fb0df4cd0beb5b21dcf22ee799182a3f1a3840362ae3fd7dda247114477b93addd49a0104a7af2625b9ec8e7451bac2266887c0bd9c24a739bff696dceb84ce417130bd0003cf32c000235d4e4945c423f1880a5892bd5f114e4d395b5d047630361898dabdecfec2c35db596766f607cb01ca9b8ec66204cf59ff1333b4017a33ed8", + "credential_request": "ce6256b6c25f217c4e7729aae4c91bdf456ff3c287f872c893bbf44e7cae5e3806989e26843e4da1a092cf1b0c460a68217163ad4bb807042d7a0fa8950273820300a8655a2d33b25fe7208f7676f81e280530ad34a945be7776e77f61111860e12b77ea9ae9ad25c00d91c2cb7a95839deb7369d526bda732973152d92a830c9eba33", + "credential_response": "80f16c9bc6ce26458b5d0452852a4ccc4bef8f0342e0730a1791bfbe89a49a626d2f11968ef51cf23bdb937111ac808026b3b8c38f7b19363931132456e8aa01c1d80b2da0ab89a9eb5e969340d6d084d984df72798679c7693ffb9e27928b24bad6fc4a5fd3b6fb02961886b3bfabe0a3bbd25085e46586ac08f4600bd20e3ab6034b1ebcc5df6b8897400aa3afb3f1419ea5c6c5dcaa71f927271ef8509dd3b3638168bf2b24a19bbe1be72c8cce09a068cddcc205837aa5c59ea1d18b35c6f1e55c64d57907886a00fc15cc5ce2692c27e78f2c68dee8f189c4238e1334f7f1a45afe79d920f5881fac770685930f7ba353a54aa930a3beffb771699002e318d26e020069218bda3ecb3771e3ceeb27e9cb06e54034e61e87ff59dc4cde30e9445e1e47d69c453e694d8ae3dc1b6d88dedbb0d1dbb4b86bc92f065002d743ab626a11d14acd33db7241e320da8288e7f92fe836b558d92c958597818524dca57e96637ce6524e187d5cdfd4b497613b7f7ffab8ecd192cf8b9af040092d781cf71bd58666", + "credential_finalization": "d2f28531d4b223548a9ba86f52548c99e198f9fa3437eaa90d0815761d6919fdb66cac85d9f6179a622648c3a695931db02cf699beb5949df4a02fe5939d59cc", + "client_registration_state": "12343d540ac451fbf0b6f625120432a1ea5bac2782297c53305fbfc3cc469308ce6256b6c25f217c4e7729aae4c91bdf456ff3c287f872c893bbf44e7cae5e38", + "client_login_state": "12343d540ac451fbf0b6f625120432a1ea5bac2782297c53305fbfc3cc469308ce6256b6c25f217c4e7729aae4c91bdf456ff3c287f872c893bbf44e7cae5e3806989e26843e4da1a092cf1b0c460a68217163ad4bb807042d7a0fa8950273820300a8655a2d33b25fe7208f7676f81e280530ad34a945be7776e77f61111860e12b77ea9ae9ad25c00d91c2cb7a95839deb7369d526bda732973152d92a830c9eba330081c9047844a2e8741c5dda5fca825a7383db3099e2f794902e22cc54d1b75cc99feb10223f7b9009633a5da467fda5fb071424942e1bedb50737800b2903757e0206989e26843e4da1a092cf1b0c460a68217163ad4bb807042d7a0fa895027382", + "server_login_state": "0093c453f98e618de8ca466ea821f6a35fdc46acbd0a8ce8b2792d95a2a3f60d94b22bed387285dc40ce1b98b2f6c0348dfcb9f00a349f2707f1c9e656eca2e7b511d749611682995c13c35f771e3de488ab0694322d94f88cc796343e62d59801376a9b3805818434680e90700d29c7b139f8845ded5aa9447a35657e427ee88158b44267368f68824d408a93255616a4cfbcb5663bf9285a1c7583760198e46dba4f2e6acf13b6763ab7f3e448914429163fce607745db6bf180e224a17e36", + "password_file": "02012616e7383893ecfc04c1a24fc691883465d33c97f3c10c93725fa616ec042af9a59ea2912adff108a8c1ebefb72cf5dae18c815459ebc3ec2f8f856f66dff3c7dfee2121b7d28c1ada838279c20758113368104f2ba8e8979ca1d5736f645fb0df4cd0beb5b21dcf22ee799182a3f1a3840362ae3fd7dda247114477b93addd49a0104a7af2625b9ec8e7451bac2266887c0bd9c24a739bff696dceb84ce417130bd0003cf32c000235d4e4945c423f1880a5892bd5f114e4d395b5d047630361898dabdecfec2c35db596766f607cb01ca9b8ec66204cf59ff1333b4017a33ed8", + "export_key": "ae0df6b2086c8088195760f77a72a01176b0df33023defa248ef0b05ba7bafe32f0db33c8850646f38553f50d88c8f875f22bdaa867e8542652016a4d7976df3", + "session_key": "8158b44267368f68824d408a93255616a4cfbcb5663bf9285a1c7583760198e46dba4f2e6acf13b6763ab7f3e448914429163fce607745db6bf180e224a17e36" +} +"#; +#[cfg(feature = "curve25519")] +pub static TEST_VECTOR_CURVE25519_P256: &str = r#" +{ + "client_s_pk": "1a96fad3e3094ef45ac10a4cf409190bb35f41471c16b7c4a4c4162939dcfe72", + "client_s_sk": "c0f7fe6763b38b33bb973b6b122ca7058be8731e95b4bf05af996f6156443e53", + "client_e_pk": "5ce5a31356df8a3e8f7873d3336667d971b55c41abd4a64fcb0fe807754ed86e", + "client_e_sk": "b0254290ee8552ba8d96c5425496f0b4b081e122eca4d4dd9cff27f2ef6a4b49", + "server_s_pk": "ce71d8bb1d8924dc1efc0596d07956efb7c0ace8bd45a87d6748bf3a4fbc0942", + "server_s_sk": "98e124643319ccacb07dc86f356d50869453043d78c26e360cd1411bfcf8ee43", + "server_e_pk": "280b4b66d774abb94797676e7b2960b00943cea5b20b1ea8fde7b35f1f229d64", + "server_e_sk": "1844bb38c913599314b2a7fe15deb808cf3fe4a9f14b1361f7888b1b7bb14d6f", + "fake_sk": "d86e8126378a6fcbb64668d5ba133100daf5cbe8da32ffe84172ae8f5c979977", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "7d496ac0400a24b35ed455d15ddbd3c03d913279127dc1b44cdc4448c6781f8c", + "oprf_seed": "62c16412dbc243855320599c0b433824d12103f6429718f6235192343c7c88a2", + "masking_nonce": "693de9e0bb9bdb6ed87ec472dc6b7f8b877c98c083fd0cf45b3f3fdbae4768da233e7c54e8567328f4e91e1decbef2660d552ee3363aed60a1000adf9c297728", + "envelope_nonce": "a6e13761548a18aab543f02b81bcee2a6379b9f202804a55b9bc962d7bfe41ff", + "client_nonce": "1c9f358508489e1768c8428459cca9a5d20b1562bf68fc76c4410884f895522c", + "server_nonce": "338454a421da7d2ad0f06ab71e82ccc4fbe667482e4ef3d8ed910d31625ae0b0", + "context": "636f6e74657874", + "registration_request": "03c8483f52a9986973d1f789f2b5f36fb8a0c29b37695de40bee1d26212404f586", + "registration_response": "02bdf9cc4676db0957a4c7d5ea07e6b3446f92586b6244f721886fffc6bd2d9abbce71d8bb1d8924dc1efc0596d07956efb7c0ace8bd45a87d6748bf3a4fbc0942", + "registration_upload": "56361bfaf0bb2fd6c79735be92c819949b3bb7da541b0752ef20678ef743d3303d33374ea38e309f765e02d66a1989dc29e6faab11e8c26997e69c14caa0f099c0f7fe6763b38b33bb973b6b122ca7058be8731e95b4bf05af996f6156443e53ab90b818b9cd312eafe20979334a79ef9d3dc21069ebab10db9d1dd3285f2894", + "credential_request": "03c8483f52a9986973d1f789f2b5f36fb8a0c29b37695de40bee1d26212404f5861c9f358508489e1768c8428459cca9a5d20b1562bf68fc76c4410884f895522c5ce5a31356df8a3e8f7873d3336667d971b55c41abd4a64fcb0fe807754ed86e", + "credential_response": "02bdf9cc4676db0957a4c7d5ea07e6b3446f92586b6244f721886fffc6bd2d9abb693de9e0bb9bdb6ed87ec472dc6b7f8b877c98c083fd0cf45b3f3fdbae4768da88c0eab8eba004861ce7530259768a4b9bb30ba0d9e47b1ac838b8d1da029542be6282fbe08a9c67940151075d813154210284f532c44d67069174485528ced0401163273a202c44bb8a7a73075a5433a128fb2e28eb6e95491f191f2158ffb91844bb38c913599314b2a7fe15deb808cf3fe4a9f14b1361f7888b1b7bb14d6fccae0d5e572f9455c302f26cbd2aa8bd8e5da125f4455eac2161b98ad8130808b9c08d9c6f8cb8e1655983b5e3a87ce5d2125b8b2753d8e2216aaeebc5590d5a", + "credential_finalization": "8318112ac3be1aa00782cec66088441b65cf4e925cb07afd012c4f73a5a1e853", + "client_registration_state": "7d496ac0400a24b35ed455d15ddbd3c03d913279127dc1b44cdc4448c6781f8c03c8483f52a9986973d1f789f2b5f36fb8a0c29b37695de40bee1d26212404f586", + "client_login_state": "7d496ac0400a24b35ed455d15ddbd3c03d913279127dc1b44cdc4448c6781f8c03c8483f52a9986973d1f789f2b5f36fb8a0c29b37695de40bee1d26212404f5861c9f358508489e1768c8428459cca9a5d20b1562bf68fc76c4410884f895522c5ce5a31356df8a3e8f7873d3336667d971b55c41abd4a64fcb0fe807754ed86eb0254290ee8552ba8d96c5425496f0b4b081e122eca4d4dd9cff27f2ef6a4b491c9f358508489e1768c8428459cca9a5d20b1562bf68fc76c4410884f895522c", + "server_login_state": "fc872543703c2bd2b342c9ac4c7d064b63cc85e1320e4c3afb94b83bba601e063c45775f9f07d9342afe4cc7e21d7dc2de7f6b33b077677ee1153219881478d5eb38b401fa7b5726713a2b584854bf95d9ca7c0b52d0a58a14b0fb4c5dc6fd7f", + "password_file": "56361bfaf0bb2fd6c79735be92c819949b3bb7da541b0752ef20678ef743d3303d33374ea38e309f765e02d66a1989dc29e6faab11e8c26997e69c14caa0f099c0f7fe6763b38b33bb973b6b122ca7058be8731e95b4bf05af996f6156443e53ab90b818b9cd312eafe20979334a79ef9d3dc21069ebab10db9d1dd3285f2894", + "export_key": "0961b56c68b784c50fb84969736123d7757c205e9e60f89fd03c26c44bb83348", + "session_key": "eb38b401fa7b5726713a2b584854bf95d9ca7c0b52d0a58a14b0fb4c5dc6fd7f" +} +"#; +#[cfg(feature = "curve25519")] +pub static TEST_VECTOR_CURVE25519_P384: &str = r#" +{ + "client_s_pk": "bf54c80aca11e224d0c572d0a960dff58b1b9c28b25ebd8d5903b097c9d7ad6f", + "client_s_sk": "a02a4a885dc2c0cd699fdd185d32d187c3dccb2517ca353a77c3e012da86df54", + "client_e_pk": "9ead6a79296f042bf72539b3812633e55c416a02b34ee570f662acaec176da2d", + "client_e_sk": "48bdea310d1ea26c69cafa0cea14495d63f567c829de2ad76530658e39871a6c", + "server_s_pk": "7d0d7a7aadba48bdcc301b18dbe01aed12be38fd91ac03e6208568d70fcfc302", + "server_s_sk": "50de2cebd9f6d3d91186db0d1324dc80ad4b4a1ab10ec3a96db6a8106647306b", + "server_e_pk": "1585da583e6fc3061aa50ffd45af4cd31b26afee048aae1ad3bc38914e59091e", + "server_e_sk": "00e2932a84c925da48e90f570777c065e7d3c4754bf01f1bdc285ca1fc0f0157", + "fake_sk": "68b38b11c45dbe80a1a30b83d5b846d464e9309e44331a7f2ca7fc37d1557b5c", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "5399b0b1878861d259fed59c5009a3f9f89b512b9b9e1e92b1557f4d7f83caa468821179909389344c061a7a5a3bea8a", + "oprf_seed": "f6f13eff4c511977ea30d73b531039b2c45c775a067be86a844af94e44dd9399bb3991f3aa06ee69e5349ef33d2166bb", + "masking_nonce": "9ad956db0615ee437f3d0a345fa86992cd4fb00fad80ef1ead55dc2246254e01d81bf9cc712f74e5335af9e137ed34feb040c2e13d1d9c1c08d388f6908c6ba5", + "envelope_nonce": "796f5d972f0d6c89b92d843d0552ffff2840fa8391202c43750037df8bbc66dd", + "client_nonce": "7bdac6e8c627029aa9fd949976f8ef93074958174759e4818805bada2f6f7372", + "server_nonce": "0a6fe11c5b4e313397b89be58210890b7441c2ddf30be2e834fb10330b1b7d8e", + "context": "636f6e74657874", + "registration_request": "0377e1b2e38be6dfb88a1af8595611ef9e262cf29ffe6d428f8b5742b80815b3f41ec385d1651f2f858ecdda2af39b0230", + "registration_response": "03bc1e18d34346aadca721342c0f39df6e5c06aac0890eba8e12c005429445564a74de752486627aa18ecc12b500892b097d0d7a7aadba48bdcc301b18dbe01aed12be38fd91ac03e6208568d70fcfc302", + "registration_upload": "92322225247b079d078a17a5a99720032b4051465ac27f1b6da27e58c67ea21906b1b3ebe04435f9effacf9a7fd5e060e40286206ee8fce3caf2a2cbf3ca69e5a3688804f96422057d0776499278fd4ca02a4a885dc2c0cd699fdd185d32d187c3dccb2517ca353a77c3e012da86df54268da0a40cba0de084213cbe5611e2aea54ccbafedb1e3e4c5c5ac9ccb3fc0d9b304866eb40c0d67ed4ee321fe7ab3e7", + "credential_request": "0377e1b2e38be6dfb88a1af8595611ef9e262cf29ffe6d428f8b5742b80815b3f41ec385d1651f2f858ecdda2af39b02307bdac6e8c627029aa9fd949976f8ef93074958174759e4818805bada2f6f73729ead6a79296f042bf72539b3812633e55c416a02b34ee570f662acaec176da2d", + "credential_response": "03bc1e18d34346aadca721342c0f39df6e5c06aac0890eba8e12c005429445564a74de752486627aa18ecc12b500892b099ad956db0615ee437f3d0a345fa86992cd4fb00fad80ef1ead55dc2246254e0104251c16857101c5a0b13a643123df3427adf30b852266f4d1bc4ee995dc61ae4a354bfcd64734ef2756bc0c09181dc72ed1dd615e925d4f70460243fb5d2898433b43cafa3517642f758b60ac1325bf8161aaea127f8cc2cf6ace6eeb033fbb684f09973a6ff516058dca6f46b8577800e2932a84c925da48e90f570777c065e7d3c4754bf01f1bdc285ca1fc0f0157292075030392c96da97c89bfd1490846ff20267443d99d600beeac452b21ab5af5f32dc5e7e1d330052117272058229fb26e2d6d44d5b73a1071815cf1b7add463fa4771859041b7c4c126a8e874a3fa", + "credential_finalization": "a2ab7490da04e55cf4e8e3962de0b443c1965cccc6efc7d59b89adf100f5da12d0bfddaaf220ba1a87245812ab4967a2", + "client_registration_state": "5399b0b1878861d259fed59c5009a3f9f89b512b9b9e1e92b1557f4d7f83caa468821179909389344c061a7a5a3bea8a0377e1b2e38be6dfb88a1af8595611ef9e262cf29ffe6d428f8b5742b80815b3f41ec385d1651f2f858ecdda2af39b0230", + "client_login_state": "5399b0b1878861d259fed59c5009a3f9f89b512b9b9e1e92b1557f4d7f83caa468821179909389344c061a7a5a3bea8a0377e1b2e38be6dfb88a1af8595611ef9e262cf29ffe6d428f8b5742b80815b3f41ec385d1651f2f858ecdda2af39b02307bdac6e8c627029aa9fd949976f8ef93074958174759e4818805bada2f6f73729ead6a79296f042bf72539b3812633e55c416a02b34ee570f662acaec176da2d48bdea310d1ea26c69cafa0cea14495d63f567c829de2ad76530658e39871a6c7bdac6e8c627029aa9fd949976f8ef93074958174759e4818805bada2f6f7372", + "server_login_state": "e3ae8d272ab84156ac38d3b3c7f57beed5b4fa30ad782affb49fc70577b3dc8fc2d24cfe42594306fda0254288712ab2e674e945a2762b03c5b10628b97bc981b7bd165a79f40a158d662fffc0b1200a702c538427ed4642e7ed3ba62718a31a9516cfb60cf517b96cb113a024c62d944db94ca4850e6f1820c88aa915f514b542b16fcdd1985468122df063ef4ea0db", + "password_file": "92322225247b079d078a17a5a99720032b4051465ac27f1b6da27e58c67ea21906b1b3ebe04435f9effacf9a7fd5e060e40286206ee8fce3caf2a2cbf3ca69e5a3688804f96422057d0776499278fd4ca02a4a885dc2c0cd699fdd185d32d187c3dccb2517ca353a77c3e012da86df54268da0a40cba0de084213cbe5611e2aea54ccbafedb1e3e4c5c5ac9ccb3fc0d9b304866eb40c0d67ed4ee321fe7ab3e7", + "export_key": "40025a0d7aa3c5ba736646fd0c2a2b9b5a7246a646a37963de9be40196a226ddbc4bd6d8a48845d9d2d277a5104f363a", + "session_key": "9516cfb60cf517b96cb113a024c62d944db94ca4850e6f1820c88aa915f514b542b16fcdd1985468122df063ef4ea0db" +} +"#; +#[cfg(feature = "curve25519")] +pub static TEST_VECTOR_CURVE25519_P521: &str = r#" +{ + "client_s_pk": "8c7675f5000557820bd0e437404ba6278c5384da8279cc596425548cb914ac57", + "client_s_sk": "70d7ecc1ed0cbb7f02b162cf0da3225a758dcb2753512e0deff916c78961b86c", + "client_e_pk": "b8f4f617a7f3a4719222bdbb1096aad48b9e3732735f5177638283f2065dac26", + "client_e_sk": "08eda37bacf42c8e7448f98aefe1dec7635545c8508ac1955f107cf651b1a843", + "server_s_pk": "70814fcd209a21e923c1b5151b87a12f3bc96a289556b77353a1af5f5cf2d845", + "server_s_sk": "c85a94538a76706fe9e32839a0c6d0d8fd6b5a9dccc55f2b1ecb54049b3eed52", + "server_e_pk": "559613be5ca5189525218f407b36d920f1ce34e51c79c6b08753828dbe8c4f0a", + "server_e_sk": "309b029031ea97144ba16fe90f02d19451311d27ea4f695329e332d1af8e4b5a", + "fake_sk": "a042f22e8c01e5d64fb642b24bf3f169675948cf3a7806de149424c49f205645", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "00690095b891138cddfb8a52a3e55b88b101c0074d0008306082230502078f00bdebe76165d0b454b5841880dc83eaa7d01703d7f07309fba75de239724a2bf451f0", + "oprf_seed": "3f044b9e5ef3eff9e3c973bae14437c75afc7ff0f4d136b259584c632551b1f256376ecbf8382b04e54776e3d1524457fa52115e8ed5c0db09386ddfa77ddee2", + "masking_nonce": "3d5ad79830929f212a97703969af257f02d9be0fdac663b5986cb70a822cbb04cbdec1f05b07dfa5f911e0ba72c5c7fa225381e141d8d97678517e598ea9743e", + "envelope_nonce": "72cd8f04ca894963eb3dcff6e22f36cd3e5e4779fcb09b501a4fd14f16903f73", + "client_nonce": "de7393872f824fbe6990b2a98bc1ace2afd7f7afa6758c776274c88a74cd9967", + "server_nonce": "5c9fc8f288e76766b0d8240f2a67c47b67c4362971364f899d4fe147e6998363", + "context": "636f6e74657874", + "registration_request": "030051c0b182c35451e964b0b7a1f6df39a52e1433fae085c3c18f219fcd532320ee6021cf4279d8ef4c2f57dd55d52b9b17f9032109dcc103b8f7da28d71746199062", + "registration_response": "0201fd4b361d870a5c6e3a1d2779a8e96687a3b41086cf610ff7a20f755a59ae14bd2e00c0c31ab59e8d3328dbfbe603e00dd1c45ffbf70d5bdccb9448e8722ec0b6f170814fcd209a21e923c1b5151b87a12f3bc96a289556b77353a1af5f5cf2d845", + "registration_upload": "25c58ef00283c9ca0b48f71b8ce59c8a13caee498bf7fe1abe32f6868f8cdd1b6f8bbe1a6d75666927ddc33d3c089d020af334a15dfa0198b58f179a7aa246e918435df3ba7c480fda2cff46b9042309378b2908e446becba50f526b738deeec70d7ecc1ed0cbb7f02b162cf0da3225a758dcb2753512e0deff916c78961b86cf01df294b08ab80e8f94a5ad66d2fbdeebfa350a66733c2adb109a86c7266fc32719fdf431718a08e2ff0ae78af82b1fad3c1d98a684910cee58ac77bd166aa1", + "credential_request": "030051c0b182c35451e964b0b7a1f6df39a52e1433fae085c3c18f219fcd532320ee6021cf4279d8ef4c2f57dd55d52b9b17f9032109dcc103b8f7da28d71746199062de7393872f824fbe6990b2a98bc1ace2afd7f7afa6758c776274c88a74cd9967b8f4f617a7f3a4719222bdbb1096aad48b9e3732735f5177638283f2065dac26", + "credential_response": "0201fd4b361d870a5c6e3a1d2779a8e96687a3b41086cf610ff7a20f755a59ae14bd2e00c0c31ab59e8d3328dbfbe603e00dd1c45ffbf70d5bdccb9448e8722ec0b6f13d5ad79830929f212a97703969af257f02d9be0fdac663b5986cb70a822cbb046649020f2be0df3cd41a08baa5d345a86927db5f4e61b33b1f7e108b9853176f3da47fba3f70bfd6009d837c48be17e42d095c0c47438b05bc9d278fffad3b55c92035c46d739839020323a3ef28168822fb6fcd146f6fc33ba46a2ade8a94f2d4486eb1baa31857b45f14a1a27764647e2b67d493910d2f78e052c88535ebc9309b029031ea97144ba16fe90f02d19451311d27ea4f695329e332d1af8e4b5a8145245bdcbf9c645bb79b9d3add22bebd67424d1d12a0e823985caab05c1d686b213f76b2894e3f50fa54b3df4e4d92582b269aa06e71dbe1bb6477cab15ace4a9722b1137f7909043c1158fc8c1d4f348ee637ea15f126e5752c620d978048", + "credential_finalization": "3d5e1371dd0ddac477cbbc7e75e214583db5505e85cfa1ea76d3e2de8c96b27cc61116114069f3399aeecdd792d280820d85a92fef90e4253a1dd53c0bcbbe6d", + "client_registration_state": "00690095b891138cddfb8a52a3e55b88b101c0074d0008306082230502078f00bdebe76165d0b454b5841880dc83eaa7d01703d7f07309fba75de239724a2bf451f0030051c0b182c35451e964b0b7a1f6df39a52e1433fae085c3c18f219fcd532320ee6021cf4279d8ef4c2f57dd55d52b9b17f9032109dcc103b8f7da28d71746199062", + "client_login_state": "00690095b891138cddfb8a52a3e55b88b101c0074d0008306082230502078f00bdebe76165d0b454b5841880dc83eaa7d01703d7f07309fba75de239724a2bf451f0030051c0b182c35451e964b0b7a1f6df39a52e1433fae085c3c18f219fcd532320ee6021cf4279d8ef4c2f57dd55d52b9b17f9032109dcc103b8f7da28d71746199062de7393872f824fbe6990b2a98bc1ace2afd7f7afa6758c776274c88a74cd9967b8f4f617a7f3a4719222bdbb1096aad48b9e3732735f5177638283f2065dac2608eda37bacf42c8e7448f98aefe1dec7635545c8508ac1955f107cf651b1a843de7393872f824fbe6990b2a98bc1ace2afd7f7afa6758c776274c88a74cd9967", + "server_login_state": "5daf49913d400832861831397d6e1d7272fe3825db8389accf18cdf08740dfdb2b902340651be542a2559840c8de1a65119b75e9d9c1fb556a548ae08d2f59292393718832369fa3350422797915b35b7dbb8db74a1def9d8bd06689803c2d7483b72daf8aad983893dc5087de4d61fe748ca3a2563df5608b0b2098fd60a2119270b6c59f1bbb20ea83b8387474aee9938eca7f168776b4b9c63a83d312c5f90847b62b6e844a11d956a98432a7686155ba5fb58dee69dab07788c5ed144e88", + "password_file": "25c58ef00283c9ca0b48f71b8ce59c8a13caee498bf7fe1abe32f6868f8cdd1b6f8bbe1a6d75666927ddc33d3c089d020af334a15dfa0198b58f179a7aa246e918435df3ba7c480fda2cff46b9042309378b2908e446becba50f526b738deeec70d7ecc1ed0cbb7f02b162cf0da3225a758dcb2753512e0deff916c78961b86cf01df294b08ab80e8f94a5ad66d2fbdeebfa350a66733c2adb109a86c7266fc32719fdf431718a08e2ff0ae78af82b1fad3c1d98a684910cee58ac77bd166aa1", + "export_key": "875abd6538fa552fb61da7976165f7365bfea52a6581a3494429bda2fa07f20f42b46978974936707039d06df37493303638f2e71057c0ae50e6ea3f98bd1555", + "session_key": "9270b6c59f1bbb20ea83b8387474aee9938eca7f168776b4b9c63a83d312c5f90847b62b6e844a11d956a98432a7686155ba5fb58dee69dab07788c5ed144e88" +} +"#; +#[cfg(all(feature = "curve25519", feature = "ristretto255"))] +pub static TEST_VECTOR_CURVE25519_RISTRETTO255: &str = r#" +{ + "client_s_pk": "bb0531d62b0f329cb3be296290f95dc06a6e8efd8f209b74b16d05e41c43c719", + "client_s_sk": "70099b04c0cd41ee6ee37cee642a0c554b745e2a6408fb3490de8cac46ec7a50", + "client_e_pk": "fd4778876ba3fe05513a4d449898c8503f0e39595656cbbd7a9cbf2b9e5f1d65", + "client_e_sk": "2011eba488479fc62f03b25adcc3f06920e6efc83b05d9bfb398e4e80a859b7f", + "server_s_pk": "8a457bab843d729f535ae39180fe227015ff13e66998059eb688c2e7906acd29", + "server_s_sk": "a0859ae4cfdd688fd5cbe29dbf8de7f8941f0068a1cfda7fef9fd887b8a79b77", + "server_e_pk": "1b967d759ce7f41a635945938d7f610eced5a6dce403096a8173b4e64d500c57", + "server_e_sk": "306d44e9d2d3e2c4cae42bf652909ee40fd4eba9f5137031283b4ed15c016b59", + "fake_sk": "0054cadbb66831990fd18e559940ffb438ed06d438f1fd258b15f8ae5b69a06f", + "credential_identifier": "637265644964656e746966696572", + "id_u": "696455", + "id_s": "696453", + "password": "70617373776f7264", + "blinding_factor": "1de51afc35b7195bce5c872f9ad646a718f6a3ea479ce682c6bd1d60819fb908", + "oprf_seed": "f6a664b3eb4f29b7d95f82a93626b9dcbc6b2689b5118552d7aa69d54dd434cc6ad7caf35499268d404c1f539041f703d88fd9c3e4925a34e02cae9102177550", + "masking_nonce": "4140b220c19fb23874d07609cdc2d441dc48adb0b65e9cf98e343f4656f9dd61b6ec545f9bab7d3eee66d4164a949fb33f1f84c91d4b9a855e29a1f5d23e146e", + "envelope_nonce": "b317cc8b24cba08401850dc2eb13b901c3f2a8f9b18a113a972c61941773f0d0", + "client_nonce": "2352ef610d55d21c6a770dc6bc3d06c019dad48f3c285e4bfe25474238f40d4b", + "server_nonce": "cea939e1b114b77c1e1eceea2d3480b32f6ab6b2391b24fe76e6590f4faf104c", + "context": "636f6e74657874", + "registration_request": "1cee5511897cda9a45075f0c03a26112d6e9f6a966bd143bf62e827df5fe1143", + "registration_response": "5603e87b25e10d565c0029e646722a1681e9e82c240b699bca5fed56e88c492a8a457bab843d729f535ae39180fe227015ff13e66998059eb688c2e7906acd29", + "registration_upload": "dec4ae8a7dcabb71ab4e7237afbff372de206b21f0955fa094837252133e190aca488ba486edb8499c3f256f727c1fa724a0c276ce3376016bcd065c7dcba3a9d435b6fb70d4fbe5032e77117515071014128542010ced5faaa042d1bb75380d70099b04c0cd41ee6ee37cee642a0c554b745e2a6408fb3490de8cac46ec7a50587072ba9b5469ec3f5ef0664db26b2260f03b1e547d415b9d1ef67629fb25dcc05d5df189d6301cd919e8d326a1337941617c9212db6a08d29f41930fa46313", + "credential_request": "1cee5511897cda9a45075f0c03a26112d6e9f6a966bd143bf62e827df5fe11432352ef610d55d21c6a770dc6bc3d06c019dad48f3c285e4bfe25474238f40d4bfd4778876ba3fe05513a4d449898c8503f0e39595656cbbd7a9cbf2b9e5f1d65", + "credential_response": "5603e87b25e10d565c0029e646722a1681e9e82c240b699bca5fed56e88c492a4140b220c19fb23874d07609cdc2d441dc48adb0b65e9cf98e343f4656f9dd614efffba8be193fc672e2c2ef8a62a81d3de4a0e9633473822dd00920a4fbb932d3f70d999b85435cbe6cf65a468c9427347b7de0803b3a3e872f2a3a70468471099c6fa086a2f9bcbc15fa7150a02e1539382b676d8d627a45db9f5ad147528075dd4d58f28b487536e3c514f8bb0daaf331dfaa170f5100afc674c0ee3dda7a306d44e9d2d3e2c4cae42bf652909ee40fd4eba9f5137031283b4ed15c016b595d910e8c7445a954fa55e151ef90fe252bfb80731004aaa6798f9ba967493376d45670c8a452b6bdc840ffcb9f1fc14b80dda0e7eb2bda8d1c11b68c487b0f3335625a60b6cd0b5235b3a75aad2995adce21baabbc625adc3ae64d556f270043", + "credential_finalization": "d1d99eda66832ff41b73e5e466cdbfa9fc999baa813b94750f4e794121e498836d1f1d94d16a1bcf9ed333555a845b6db9646240e99a118993c4e6860010ca39", + "client_registration_state": "1de51afc35b7195bce5c872f9ad646a718f6a3ea479ce682c6bd1d60819fb9081cee5511897cda9a45075f0c03a26112d6e9f6a966bd143bf62e827df5fe1143", + "client_login_state": "1de51afc35b7195bce5c872f9ad646a718f6a3ea479ce682c6bd1d60819fb9081cee5511897cda9a45075f0c03a26112d6e9f6a966bd143bf62e827df5fe11432352ef610d55d21c6a770dc6bc3d06c019dad48f3c285e4bfe25474238f40d4bfd4778876ba3fe05513a4d449898c8503f0e39595656cbbd7a9cbf2b9e5f1d652011eba488479fc62f03b25adcc3f06920e6efc83b05d9bfb398e4e80a859b7f2352ef610d55d21c6a770dc6bc3d06c019dad48f3c285e4bfe25474238f40d4b", + "server_login_state": "cc457dddd9c4c3c2bb9fa38ca96b3ff3a194cae6bb2901aa6ac45bda27d738e00897176280970f9ce67b3da8b132254b404569433bfd47a30c15d276adc4fde2a06a54190ae8838d022ca1827e6ad0c9c49345bdac2ea2e88e48815a9084b89d7b63baf3e84075fd1ec2afcc8556d85fd990c71291e9da0016af68959cd369dca8278579f1354fcdf8707d81c1569b2882bf264f3005a642f2fa96e59c1af912730d155071f0f9403bf13cd80ad16780977d633b14b8757b80925da330aa6de0", + "password_file": "dec4ae8a7dcabb71ab4e7237afbff372de206b21f0955fa094837252133e190aca488ba486edb8499c3f256f727c1fa724a0c276ce3376016bcd065c7dcba3a9d435b6fb70d4fbe5032e77117515071014128542010ced5faaa042d1bb75380d70099b04c0cd41ee6ee37cee642a0c554b745e2a6408fb3490de8cac46ec7a50587072ba9b5469ec3f5ef0664db26b2260f03b1e547d415b9d1ef67629fb25dcc05d5df189d6301cd919e8d326a1337941617c9212db6a08d29f41930fa46313", + "export_key": "1ef2c2e9f2cdbe12eddabf768f6723cfb5b9a5118ab75385d80b9ce62a92cc41b9332e3808a91b2a9e831e42a06678ff1793ee7479fff72e113f4f29af50e1a6", + "session_key": "a8278579f1354fcdf8707d81c1569b2882bf264f3005a642f2fa96e59c1af912730d155071f0f9403bf13cd80ad16780977d633b14b8757b80925da330aa6de0" +} +"#; diff --git a/src/tests/mod.rs b/src/tests/mod.rs index 0a87984c..54fe0630 100644 --- a/src/tests/mod.rs +++ b/src/tests/mod.rs @@ -7,6 +7,7 @@ // licenses. mod full_test; +mod full_test_vectors; pub mod mock_rng; mod opaque_vectors; mod parser;