Skip to content

Commit 07f8048

Browse files
kevinlewihuitseeker
authored andcommitted
Updating to keep in sync with issue 62 fix in spec (facebook#61)
1 parent 0fc3448 commit 07f8048

File tree

3 files changed

+30
-36
lines changed

3 files changed

+30
-36
lines changed

src/opaque.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ impl<CS: CipherSuite> LoginSecondMessage<CS> {
398398
pub fn serialize(&self) -> Vec<u8> {
399399
let mut credential_response: Vec<u8> = Vec::new();
400400
credential_response.extend_from_slice(&serialize(&self.beta.to_arr(), 2));
401-
credential_response.extend_from_slice(&serialize(&self.envelope.to_bytes(), 2));
401+
credential_response.extend_from_slice(&self.envelope.to_bytes());
402402

403403
let mut output: Vec<u8> = Vec::new();
404404
output.push(ProtocolMessageType::from(self) as u8 + 1);
@@ -414,12 +414,7 @@ impl<CS: CipherSuite> LoginSecondMessage<CS> {
414414
}
415415

416416
let (data, ke2m) = tokenize(input[1..].to_vec(), 3)?;
417-
let (beta_bytes, remainder) = tokenize(data, 2)?;
418-
let (envelope_bytes, remainder) = tokenize(remainder, 2)?;
419-
420-
if !remainder.is_empty() {
421-
return Err(PakeError::SerializationError.into());
422-
}
417+
let (beta_bytes, envelope_bytes) = tokenize(data, 2)?;
423418

424419
let concatenated = [&beta_bytes[..], &envelope_bytes[..], &ke2m[..]].concat();
425420
Self::try_from(&concatenated[..])

src/serialization/tests.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,14 +249,13 @@ fn login_second_message_roundtrip() {
249249

250250
let ke2m: Vec<u8> = [&server_nonce[..], &server_e_kp.public(), &mac[..]].concat();
251251

252-
let total_length_without_ke2m: usize = pt_bytes.len() + envelope.to_bytes().len() + 4;
252+
let total_length_without_ke2m: usize = pt_bytes.len() + envelope.to_bytes().len() + 2;
253253

254254
let mut input = Vec::new();
255255
input.extend_from_slice(&[ProtocolMessageType::CredentialResponse as u8 + 1]);
256256
input.extend_from_slice(&total_length_without_ke2m.to_be_bytes()[8 - 3..]);
257257
input.extend_from_slice(&pt_bytes.len().to_be_bytes()[8 - 2..]);
258258
input.extend_from_slice(pt_bytes.as_slice());
259-
input.extend_from_slice(&envelope.to_bytes().len().to_be_bytes()[8 - 2..]);
260259
input.extend_from_slice(&envelope.to_bytes());
261260
input.extend_from_slice(&ke2m[..]);
262261

src/tests/opaque_ke_test.rs

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -64,35 +64,35 @@ pub struct TestVectorParameters {
6464

6565
static TEST_VECTOR: &str = r#"
6666
{
67-
"client_s_pk": "db67c19dde3ff9df4226c638056bf740811d6136b41d81a9995a29d8ae4da74a",
68-
"client_s_sk": "c0580c0dcfba5b38e3bf7dd110bd5025c319678b30c8baecaf9c2ef3c959f253",
69-
"client_e_pk": "c3a4413191704cbe3ee1cc8293a565e260a3cbadfdb091bc00e953b33883c363",
70-
"client_e_sk": "18be455fafb4cbe97a7531c2fc4ff2ce9b7bfc0119b0fcd7660443ddd0ec4068",
71-
"server_s_pk": "2d3e373aaa1b3fb0df397789b671ca33f1b880bcc5ebc89b9e390b5ebb720e1d",
72-
"server_s_sk": "48bb316e50d6c93a6d4a95eba0652ab147eb422c7207bc780ebd47f952a8f164",
73-
"server_e_pk": "6bcb8d80d0fcf242e4ed4d414375d66a696d1bfe220af29681c89835444b9d7b",
74-
"server_e_sk": "b88df6767ae031eb77be76b66ad467bea6ff26a41db963ff3b4db81ed6c72452",
67+
"client_s_pk": "6c3f4c134a1697cda1d494cef349e99117aaedecb6792c3aeab06fc1da5f463d",
68+
"client_s_sk": "98f628dfaed00892809f1ff24f44eddb933ca593eeb88c532827249c3fdae56d",
69+
"client_e_pk": "b20d78da45e7d91fb9185be968ba20c680bfb735e5dbdec36c2aefdb261d6903",
70+
"client_e_sk": "88f058f4de21fc364603318edce30931a60fe78f7953722e3214203c02d52a79",
71+
"server_s_pk": "511b18e0a82493d9b0d7988f5a7e2d05fe6886cb26e9813d476e3fe6d3ca1349",
72+
"server_s_sk": "e00d089a96b19c74f77dcc6079277ba18b2dd1f603d0bc5c46664d4fe5c2867a",
73+
"server_e_pk": "98e12670ffd22a9a827d74bfa5ac44c9f83cb52b477b1ab201a589a8fd643674",
74+
"server_e_sk": "080f051060d51c9f1406e7cf5d9ac3212d8ba3829ca94fdd7c8f43e80fa8b278",
7575
"password": "70617373776f7264",
76-
"blinding_factor_raw": "7235ed80e9335579c8fbda9e61e8c92358b53267f33d14002cf1ee8e4a452190706c642cda5611d54aba2d8aebe91c20d230ce350d6bc76ccde2bbe3c3b38af3",
77-
"blinding_factor": "ccfacfd5e65693b9ea7b1bbe8c61d83e20bc67a54465d0659573f2801a474b0a",
76+
"blinding_factor_raw": "3def40a264b30c15dfcafc8d52cbe309d2d08e015d516b515f17cf98443bb39d6d164e9bd391303d890697b38dc59ee7e9ec196682528a078d51983ab18c227b",
77+
"blinding_factor": "d315d7e6c81d5398c015af3d55ded87f0979dfdb28b6f222ee8699905fd41e0a",
7878
"pepper": "706570706572",
79-
"oprf_key": "44f6b4ad762943517e400ce878e0c1409573ee98d96c14e5a507e601788c2207",
80-
"envelope_nonce": "ed0eb006204e163097595826da4f4e8df648fdcb54feef22cefbbdd1c9e85038",
81-
"client_nonce": "774cd501736601475cea7a382cb1d38b34c574baab82c0e87cbe3dcf9de3d0a6",
82-
"server_nonce": "a627d3525b162594be0c134ccf5fd4cab719e37ec945e70a128d66abb3bb58c4",
83-
"r1": "010000240000002060ebaf93d439cd229e8fd843b9cd2656d40cba15981f04464c9842f98557f30b",
84-
"r2": "020000280020ab7af6fd8628eded06289ccf85ad8e2f4bc8d584129b923cdc6a2865300a8f6a000001010103",
85-
"r3": "030000aeed0eb006204e163097595826da4f4e8df648fdcb54feef22cefbbdd1c9e85038002358a913a1bcdee339dde801af723f204f5cdc9335e0256eed49a4b36a226a1a062ddc9500230300202d3e373aaa1b3fb0df397789b671ca33f1b880bcc5ebc89b9e390b5ebb720e1d0020a2eb1b19e25b90e0089e543dd391ca362f05d01fa6d521d00c35312755c665f00020db67c19dde3ff9df4226c638056bf740811d6136b41d81a9995a29d8ae4da74a",
86-
"l1": "040000240000002060ebaf93d439cd229e8fd843b9cd2656d40cba15981f04464c9842f98557f30b774cd501736601475cea7a382cb1d38b34c574baab82c0e87cbe3dcf9de3d0a6c3a4413191704cbe3ee1cc8293a565e260a3cbadfdb091bc00e953b33883c363",
87-
"l2": "050000b00020ab7af6fd8628eded06289ccf85ad8e2f4bc8d584129b923cdc6a2865300a8f6a008ced0eb006204e163097595826da4f4e8df648fdcb54feef22cefbbdd1c9e85038002358a913a1bcdee339dde801af723f204f5cdc9335e0256eed49a4b36a226a1a062ddc9500230300202d3e373aaa1b3fb0df397789b671ca33f1b880bcc5ebc89b9e390b5ebb720e1d0020a2eb1b19e25b90e0089e543dd391ca362f05d01fa6d521d00c35312755c665f0b88df6767ae031eb77be76b66ad467bea6ff26a41db963ff3b4db81ed6c724526bcb8d80d0fcf242e4ed4d414375d66a696d1bfe220af29681c89835444b9d7b3a1f7e046c1460ed3a47fff7be87b5670d568a1bab2ae7f5b7ee70ff99c3d21d",
88-
"l3": "28b18759b0f5977c607170b7ceb1b5d75bffbc185991ae001c0fded87f826d89",
89-
"client_registration_state": "00000000ccfacfd5e65693b9ea7b1bbe8c61d83e20bc67a54465d0659573f2801a474b0a70617373776f7264",
90-
"client_login_state": "00000000ccfacfd5e65693b9ea7b1bbe8c61d83e20bc67a54465d0659573f2801a474b0a18be455fafb4cbe97a7531c2fc4ff2ce9b7bfc0119b0fcd7660443ddd0ec4068774cd501736601475cea7a382cb1d38b34c574baab82c0e87cbe3dcf9de3d0a68d5a62ba390f1ee0419616e1a135e609ad248c7a3ee7edf4fb90f575148758d070617373776f7264",
91-
"server_registration_state": "44f6b4ad762943517e400ce878e0c1409573ee98d96c14e5a507e601788c2207",
92-
"server_login_state": "14e5fe977591bb71f1e2bcd0542d26023c818048a257781fe276a3e8f9e0be4d58075843e2050013c815c6ef3d015a4ef1294543225832281adec71e1a92fa32a783f8c52f881f276f1c780f21b3fcb4eb36b75daea84b3bb9f7ce0699842864",
93-
"password_file": "44f6b4ad762943517e400ce878e0c1409573ee98d96c14e5a507e601788c2207db67c19dde3ff9df4226c638056bf740811d6136b41d81a9995a29d8ae4da74aed0eb006204e163097595826da4f4e8df648fdcb54feef22cefbbdd1c9e85038002358a913a1bcdee339dde801af723f204f5cdc9335e0256eed49a4b36a226a1a062ddc9500230300202d3e373aaa1b3fb0df397789b671ca33f1b880bcc5ebc89b9e390b5ebb720e1d0020a2eb1b19e25b90e0089e543dd391ca362f05d01fa6d521d00c35312755c665f0",
94-
"export_key": "48e39aeec42923ada9a239b231ff290efb1d4d01ccec8cd820a42dde10ff0d09",
95-
"shared_secret": "a783f8c52f881f276f1c780f21b3fcb4eb36b75daea84b3bb9f7ce0699842864"
79+
"oprf_key": "75e559c8cc7a81642e61b77651bc61b71d3eb7d8b6cd9ca13d8532cb684d5405",
80+
"envelope_nonce": "3048ea382aa7357dbcd480047c884b717c4fea3ca627f2c498001b2a46e015da",
81+
"client_nonce": "47b20166a022bb319ba9a09d5c328b6e2d6cc5813018f7dd5b53f380f914e79f",
82+
"server_nonce": "1bf2cc47738524a83c995122a44c7832be18b48b606897d71fc942e8ec6d9b2e",
83+
"r1": "01000024000000204df6277df3ee67e084af0d24e27a6567b75589dc887d5acbe5e5830dc8dc7eb0",
84+
"r2": "0200002800208d04d78807ed18542f65707f964d96089a322a8bb06dad269cb7a4bee8c20b57000001010103",
85+
"r3": "030000ae3048ea382aa7357dbcd480047c884b717c4fea3ca627f2c498001b2a46e015da0023469a6c15d59bc2b9cf07e4e37138292e58070a34eb76f8cb5e3015c542b8e96346482f0023030020511b18e0a82493d9b0d7988f5a7e2d05fe6886cb26e9813d476e3fe6d3ca13490020b3fc2eb3ffc0ddfa3b9d94a33874d297263cb768077f128e7ec798b03c5c7ba300206c3f4c134a1697cda1d494cef349e99117aaedecb6792c3aeab06fc1da5f463d",
86+
"l1": "04000024000000204df6277df3ee67e084af0d24e27a6567b75589dc887d5acbe5e5830dc8dc7eb047b20166a022bb319ba9a09d5c328b6e2d6cc5813018f7dd5b53f380f914e79fb20d78da45e7d91fb9185be968ba20c680bfb735e5dbdec36c2aefdb261d6903",
87+
"l2": "050000ae00208d04d78807ed18542f65707f964d96089a322a8bb06dad269cb7a4bee8c20b573048ea382aa7357dbcd480047c884b717c4fea3ca627f2c498001b2a46e015da0023469a6c15d59bc2b9cf07e4e37138292e58070a34eb76f8cb5e3015c542b8e96346482f0023030020511b18e0a82493d9b0d7988f5a7e2d05fe6886cb26e9813d476e3fe6d3ca13490020b3fc2eb3ffc0ddfa3b9d94a33874d297263cb768077f128e7ec798b03c5c7ba3080f051060d51c9f1406e7cf5d9ac3212d8ba3829ca94fdd7c8f43e80fa8b27898e12670ffd22a9a827d74bfa5ac44c9f83cb52b477b1ab201a589a8fd64367476b2f0458ade73668e3aaab6e1cd7d48dacc702b9a49147d8431a18e649f814e",
88+
"l3": "ed9d2f5af8d30d7927458a6d10f309ae6f49792d5e86d12f5e163a980f49c7ff",
89+
"client_registration_state": "00000000d315d7e6c81d5398c015af3d55ded87f0979dfdb28b6f222ee8699905fd41e0a70617373776f7264",
90+
"client_login_state": "00000000d315d7e6c81d5398c015af3d55ded87f0979dfdb28b6f222ee8699905fd41e0a88f058f4de21fc364603318edce30931a60fe78f7953722e3214203c02d52a7947b20166a022bb319ba9a09d5c328b6e2d6cc5813018f7dd5b53f380f914e79f2e9c4b0c4bc9bdd4fca317dab50240fb32c31f9ec3742ec610a7e5016ad88de570617373776f7264",
91+
"server_registration_state": "75e559c8cc7a81642e61b77651bc61b71d3eb7d8b6cd9ca13d8532cb684d5405",
92+
"server_login_state": "54a3c257ad6e5406be86e9f983bcb25a50dcdaf8c8bd6928f17ea8b001db400c02b16899d3fe648ef86fb914dba9892d09df4a449f6f077e3ad903c01e309d6fd8e21fc482f3d3a396b8c1f5587e00806c860e5a2b82f0da989333ce870ee1ee",
93+
"password_file": "75e559c8cc7a81642e61b77651bc61b71d3eb7d8b6cd9ca13d8532cb684d54056c3f4c134a1697cda1d494cef349e99117aaedecb6792c3aeab06fc1da5f463d3048ea382aa7357dbcd480047c884b717c4fea3ca627f2c498001b2a46e015da0023469a6c15d59bc2b9cf07e4e37138292e58070a34eb76f8cb5e3015c542b8e96346482f0023030020511b18e0a82493d9b0d7988f5a7e2d05fe6886cb26e9813d476e3fe6d3ca13490020b3fc2eb3ffc0ddfa3b9d94a33874d297263cb768077f128e7ec798b03c5c7ba3",
94+
"export_key": "90f9b6ec1edd53a60a9be4f744950befecf5bbfbd973702082fa031aa192bb5a",
95+
"shared_secret": "d8e21fc482f3d3a396b8c1f5587e00806c860e5a2b82f0da989333ce870ee1ee"
9696
}
9797
"#;
9898

0 commit comments

Comments
 (0)