Fixing key sizes and removing serialization (#144)
This commit is contained in:
+7
-8
@@ -6,10 +6,12 @@
|
||||
use crate::{
|
||||
errors::{utils::check_slice_size_atleast, InternalPakeError, PakeError, ProtocolError},
|
||||
hash::Hash,
|
||||
keypair::Key,
|
||||
serialization::{serialize, tokenize},
|
||||
};
|
||||
use digest::Digest;
|
||||
use generic_array::{typenum::Unsigned, GenericArray};
|
||||
use generic_bytes::SizedBytes;
|
||||
use hkdf::Hkdf;
|
||||
use hmac::{Hmac, Mac, NewMac};
|
||||
use rand::{CryptoRng, RngCore};
|
||||
@@ -168,9 +170,8 @@ impl<D: Hash> Envelope<D> {
|
||||
server_s_pk: &[u8],
|
||||
optional_ids: Option<(Vec<u8>, Vec<u8>)>,
|
||||
) -> Result<(Self, GenericArray<u8, <D as Digest>::OutputSize>), InternalPakeError> {
|
||||
let plaintext = serialize(&client_s_sk, 2);
|
||||
let aad = construct_aad(server_s_pk, &optional_ids);
|
||||
Self::seal_raw(rng, key, &plaintext, &aad, mode_from_ids(&optional_ids))
|
||||
Self::seal_raw(rng, key, &client_s_sk, &aad, mode_from_ids(&optional_ids))
|
||||
}
|
||||
|
||||
/// Uses a key to convert the plaintext into an envelope, authenticated by the aad field.
|
||||
@@ -239,15 +240,13 @@ impl<D: Hash> Envelope<D> {
|
||||
let aad = construct_aad(server_s_pk, optional_ids);
|
||||
let opened = self.open_raw(key, &aad)?;
|
||||
|
||||
let (client_s_sk, remainder) = tokenize(&opened.plaintext, 2)
|
||||
.map_err(|_| InternalPakeError::UnexpectedEnvelopeContentsError)?;
|
||||
if !remainder.is_empty() {
|
||||
// Should not have anything else in plaintext
|
||||
if opened.plaintext.len() != <Key as SizedBytes>::Len::to_usize() {
|
||||
// Plaintext should consist of a single key
|
||||
return Err(InternalPakeError::UnexpectedEnvelopeContentsError);
|
||||
}
|
||||
|
||||
Ok(OpenedEnvelope {
|
||||
client_s_sk,
|
||||
client_s_sk: opened.plaintext,
|
||||
export_key: opened.export_key,
|
||||
})
|
||||
}
|
||||
@@ -300,7 +299,7 @@ fn construct_aad(server_s_pk: &[u8], optional_ids: &Option<(Vec<u8>, Vec<u8>)>)
|
||||
.iter()
|
||||
.flat_map(|(l, r)| [serialize(l, 2), serialize(r, 2)].concat())
|
||||
.collect();
|
||||
[serialize(server_s_pk, 2), ids].concat()
|
||||
[server_s_pk.to_vec(), ids].concat()
|
||||
}
|
||||
|
||||
pub(crate) fn mode_from_ids(optional_ids: &Option<(Vec<u8>, Vec<u8>)>) -> InnerEnvelopeMode {
|
||||
|
||||
+27
-29
@@ -15,7 +15,6 @@ use crate::{
|
||||
group::Group,
|
||||
key_exchange::traits::{KeyExchange, ToBytes},
|
||||
keypair::{Key, KeyPair, SizedBytesExt},
|
||||
serialization::{serialize, tokenize},
|
||||
};
|
||||
use generic_array::{typenum::Unsigned, GenericArray};
|
||||
use generic_bytes::SizedBytes;
|
||||
@@ -60,28 +59,25 @@ pub struct RegistrationResponse<CS: CipherSuite> {
|
||||
impl<CS: CipherSuite> RegistrationResponse<CS> {
|
||||
/// Serialization into bytes
|
||||
pub fn serialize(&self) -> Vec<u8> {
|
||||
let mut registration_response: Vec<u8> = Vec::new();
|
||||
registration_response.extend_from_slice(&self.beta.to_arr());
|
||||
registration_response.extend_from_slice(&serialize(&self.server_s_pk, 2));
|
||||
registration_response
|
||||
[self.beta.to_arr().to_vec(), self.server_s_pk.clone()].concat()
|
||||
}
|
||||
|
||||
/// Deserialization from bytes
|
||||
pub fn deserialize(input: &[u8]) -> Result<Self, ProtocolError> {
|
||||
let elem_len = <CS::Group as Group>::ElemLen::to_usize();
|
||||
let checked_slice = check_slice_size_atleast(&input, elem_len, "second_message_bytes")?;
|
||||
let key_len = <Key as SizedBytes>::Len::to_usize();
|
||||
let checked_slice =
|
||||
check_slice_size(&input, elem_len + key_len, "registration_response_bytes")?;
|
||||
|
||||
// Check that the message is actually containing an element of the
|
||||
// correct subgroup
|
||||
let arr = GenericArray::from_slice(&checked_slice[..elem_len]);
|
||||
let beta = CS::Group::from_element_slice(arr)?;
|
||||
|
||||
let (server_s_pk, remainder) = tokenize(&checked_slice[elem_len..], 2)?;
|
||||
if !remainder.is_empty() {
|
||||
return Err(PakeError::SerializationError.into());
|
||||
}
|
||||
|
||||
Ok(Self { server_s_pk, beta })
|
||||
Ok(Self {
|
||||
server_s_pk: checked_slice[elem_len..].to_vec(),
|
||||
beta,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,16 +94,20 @@ pub struct RegistrationUpload<CS: CipherSuite> {
|
||||
impl<CS: CipherSuite> RegistrationUpload<CS> {
|
||||
/// Serialization into bytes
|
||||
pub fn serialize(&self) -> Vec<u8> {
|
||||
let mut message: Vec<u8> = Vec::new();
|
||||
message.extend_from_slice(&serialize(&self.client_s_pk.to_arr(), 2));
|
||||
message.extend_from_slice(&self.envelope.serialize());
|
||||
message
|
||||
[
|
||||
self.client_s_pk.to_arr().to_vec(),
|
||||
self.envelope.serialize(),
|
||||
]
|
||||
.concat()
|
||||
}
|
||||
|
||||
/// Deserialization from bytes
|
||||
pub fn deserialize(input: &[u8]) -> Result<Self, ProtocolError> {
|
||||
let (client_s_pk, remainder) = tokenize(&input, 2)?;
|
||||
let (envelope, remainder) = Envelope::<CS::Hash>::deserialize(&remainder)?;
|
||||
let key_len = <Key as SizedBytes>::Len::to_usize();
|
||||
|
||||
let checked_slice = check_slice_size_atleast(&input, key_len, "registration_upload_bytes")?;
|
||||
|
||||
let (envelope, remainder) = Envelope::<CS::Hash>::deserialize(&checked_slice[key_len..])?;
|
||||
|
||||
if !remainder.is_empty() {
|
||||
return Err(PakeError::SerializationError.into());
|
||||
@@ -115,7 +115,9 @@ impl<CS: CipherSuite> RegistrationUpload<CS> {
|
||||
|
||||
Ok(Self {
|
||||
envelope,
|
||||
client_s_pk: KeyPair::<CS::Group>::check_public_key(Key::from_bytes(&client_s_pk)?)?,
|
||||
client_s_pk: KeyPair::<CS::Group>::check_public_key(Key::from_bytes(
|
||||
&checked_slice[..key_len],
|
||||
)?)?,
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -185,7 +187,7 @@ impl<CS: CipherSuite> CredentialResponse<CS> {
|
||||
) -> Vec<u8> {
|
||||
[
|
||||
&beta.to_arr(),
|
||||
&serialize(&server_s_pk.to_arr().to_vec(), 2)[..],
|
||||
&server_s_pk.to_arr()[..],
|
||||
&envelope.to_bytes(),
|
||||
]
|
||||
.concat()
|
||||
@@ -194,8 +196,9 @@ impl<CS: CipherSuite> CredentialResponse<CS> {
|
||||
/// Deserialization from bytes
|
||||
pub fn deserialize(input: &[u8]) -> Result<Self, ProtocolError> {
|
||||
let elem_len = <CS::Group as Group>::ElemLen::to_usize();
|
||||
let key_len = <Key as SizedBytes>::Len::to_usize();
|
||||
let checked_slice =
|
||||
check_slice_size_atleast(input, elem_len, "login_second_message_bytes")?;
|
||||
check_slice_size_atleast(input, elem_len + key_len, "login_second_message_bytes")?;
|
||||
|
||||
// Check that the message is actually containing an element of the
|
||||
// correct subgroup
|
||||
@@ -203,16 +206,11 @@ impl<CS: CipherSuite> CredentialResponse<CS> {
|
||||
let arr = GenericArray::from_slice(beta_bytes);
|
||||
let beta = CS::Group::from_element_slice(arr)?;
|
||||
|
||||
let (serialized_server_s_pk, remainder) = tokenize(&checked_slice[elem_len..], 2)?;
|
||||
let sized_server_s_pk = check_slice_size(
|
||||
&serialized_server_s_pk[..],
|
||||
<Key as SizedBytes>::Len::to_usize(),
|
||||
"server_s_pk in credential_response",
|
||||
)?;
|
||||
let unchecked_server_s_pk = Key::from_bytes(sized_server_s_pk)?;
|
||||
let unchecked_server_s_pk = Key::from_bytes(&checked_slice[elem_len..elem_len + key_len])?;
|
||||
let server_s_pk = KeyPair::<CS::Group>::check_public_key(unchecked_server_s_pk)?;
|
||||
|
||||
let (envelope, remainder) = Envelope::<CS::Hash>::deserialize(&remainder)?;
|
||||
let (envelope, remainder) =
|
||||
Envelope::<CS::Hash>::deserialize(&checked_slice[elem_len + key_len..])?;
|
||||
|
||||
let ke2_message_size = CS::KeyExchange::ke2_message_size();
|
||||
let checked_remainder =
|
||||
|
||||
+11
-19
@@ -96,7 +96,7 @@ fn server_registration_roundtrip() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn register_first_message_roundtrip() {
|
||||
fn registration_request_roundtrip() {
|
||||
let pt = random_ristretto_point();
|
||||
let pt_bytes = pt.to_arr().to_vec();
|
||||
|
||||
@@ -109,18 +109,15 @@ fn register_first_message_roundtrip() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn register_second_message_roundtrip() {
|
||||
fn registration_response_roundtrip() {
|
||||
let pt = random_ristretto_point();
|
||||
let beta_bytes = pt.to_arr();
|
||||
let mut rng = OsRng;
|
||||
let skp = Default::generate_random_keypair(&mut rng);
|
||||
let pubkey_bytes = skp.public().to_arr();
|
||||
|
||||
let pubkey_length: usize = pubkey_bytes.len();
|
||||
|
||||
let mut input = Vec::new();
|
||||
input.extend_from_slice(beta_bytes.as_slice());
|
||||
input.extend_from_slice(&pubkey_length.to_be_bytes()[std::mem::size_of::<usize>() - 2..]);
|
||||
input.extend_from_slice(&pubkey_bytes.as_slice());
|
||||
|
||||
let r2 = RegistrationResponse::<Default>::deserialize(input.as_slice()).unwrap();
|
||||
@@ -129,7 +126,7 @@ fn register_second_message_roundtrip() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn register_third_message_roundtrip() {
|
||||
fn registration_upload_roundtrip() {
|
||||
let mut rng = OsRng;
|
||||
let skp = Default::generate_random_keypair(&mut rng);
|
||||
let pubkey_bytes = skp.public().to_arr();
|
||||
@@ -150,10 +147,7 @@ fn register_third_message_roundtrip() {
|
||||
.unwrap();
|
||||
let envelope_bytes = envelope.serialize();
|
||||
|
||||
let pubkey_length: usize = pubkey_bytes.len();
|
||||
|
||||
let mut input = Vec::new();
|
||||
input.extend_from_slice(&pubkey_length.to_be_bytes()[std::mem::size_of::<usize>() - 2..]);
|
||||
input.extend_from_slice(&pubkey_bytes[..]);
|
||||
input.extend_from_slice(&envelope_bytes);
|
||||
|
||||
@@ -163,7 +157,7 @@ fn register_third_message_roundtrip() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn login_first_message_roundtrip() {
|
||||
fn credential_request_roundtrip() {
|
||||
let mut rng = OsRng;
|
||||
let alpha = random_ristretto_point();
|
||||
let alpha_bytes = alpha.to_arr().to_vec();
|
||||
@@ -192,14 +186,13 @@ fn login_first_message_roundtrip() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn login_second_message_roundtrip() {
|
||||
fn credential_response_roundtrip() {
|
||||
let pt = random_ristretto_point();
|
||||
let pt_bytes = pt.to_arr().to_vec();
|
||||
|
||||
let mut rng = OsRng;
|
||||
let skp = Default::generate_random_keypair(&mut rng);
|
||||
let pubkey_bytes = skp.public().to_arr();
|
||||
let pubkey_length: usize = pubkey_bytes.len();
|
||||
|
||||
let mut key = [0u8; 32];
|
||||
rng.fill_bytes(&mut key);
|
||||
@@ -235,7 +228,6 @@ fn login_second_message_roundtrip() {
|
||||
|
||||
let mut input = Vec::new();
|
||||
input.extend_from_slice(pt_bytes.as_slice());
|
||||
input.extend_from_slice(&pubkey_length.to_be_bytes()[std::mem::size_of::<usize>() - 2..]);
|
||||
input.extend_from_slice(&pubkey_bytes.as_slice());
|
||||
input.extend_from_slice(&envelope.serialize());
|
||||
input.extend_from_slice(&ke2m[..]);
|
||||
@@ -358,32 +350,32 @@ fn test_i2osp_os2ip(bytes in vec(any::<u8>(), 0..std::mem::size_of::<usize>()))
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_nocrash_register_first_message(bytes in vec(any::<u8>(), 0..200)) {
|
||||
fn test_nocrash_registration_request(bytes in vec(any::<u8>(), 0..200)) {
|
||||
RegistrationRequest::<Default>::deserialize(&bytes[..]).map_or(true, |_| true);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_nocrash_register_second_message(bytes in vec(any::<u8>(), 0..200)) {
|
||||
fn test_nocrash_registration_response(bytes in vec(any::<u8>(), 0..200)) {
|
||||
RegistrationResponse::<Default>::deserialize(&bytes[..]).map_or(true, |_| true);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_nocrash_register_third_message(bytes in vec(any::<u8>(), 0..200)) {
|
||||
fn test_nocrash_registration_upload(bytes in vec(any::<u8>(), 0..200)) {
|
||||
RegistrationUpload::<Default>::deserialize(&bytes[..]).map_or(true, |_| true);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_nocrash_login_first_message(bytes in vec(any::<u8>(), 0..500)) {
|
||||
fn test_nocrash_credential_request(bytes in vec(any::<u8>(), 0..500)) {
|
||||
CredentialRequest::<Default>::deserialize(&bytes[..]).map_or(true, |_| true);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_nocrash_login_second_message(bytes in vec(any::<u8>(), 0..500)) {
|
||||
fn test_nocrash_credential_response(bytes in vec(any::<u8>(), 0..500)) {
|
||||
CredentialResponse::<Default>::deserialize(&bytes[..]).map_or(true, |_| true);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_nocrash_login_third_message(bytes in vec(any::<u8>(), 0..500)) {
|
||||
fn test_nocrash_credential_finalization(bytes in vec(any::<u8>(), 0..500)) {
|
||||
CredentialFinalization::<Default>::deserialize(&bytes[..]).map_or(true, |_| true);
|
||||
}
|
||||
|
||||
|
||||
+26
-26
@@ -68,37 +68,37 @@ pub struct TestVectorParameters {
|
||||
|
||||
static TEST_VECTOR: &str = r#"
|
||||
{
|
||||
"client_s_pk": "88a330a73dd4b166307c5efc6e7a0a30d9b36ff6cc13cdb7f4e9adb9308a7637",
|
||||
"client_s_sk": "a3f2becb1604e524d414d75e34d69b1984403715f4fb64dbecdf94ee67c56007",
|
||||
"client_e_pk": "782e5d1fba5fc5127f56d026a0796320670260a58007b0c7b8e2c4591a6c2441",
|
||||
"client_e_sk": "117dbea41b3a73f38af6ec5e94f4addcb157fafd01db5640a782cbd205af1c01",
|
||||
"server_s_pk": "ce16950ab0939c9827479b7f7c94662f2aad8149a47260b4e9a36f3013472924",
|
||||
"server_s_sk": "7731db9c827d8d2736dcec7900e635d05b8eb024ba03398be7b3e14380983a07",
|
||||
"server_e_pk": "f8f1a6de4b3708baec68ea94f47b9577f3d36458e82e36f431ba8ce77e2d2e11",
|
||||
"server_e_sk": "f7b415289b0e0f043465d9bf5d6f93393b042aa6f45eb74c1ed29e63484dd705",
|
||||
"client_s_pk": "c83bbe77d4bae020134fa3e75eb8e21f52bbcab7149d0d921af52c6a3edc6706",
|
||||
"client_s_sk": "e0f252dc3506125ac25b9cf57c0f5104070e3990f432a319c801d47c25eff209",
|
||||
"client_e_pk": "1a28a68246a6149c429e8ebe57dccbb764d9ff7a6b094727dbd863ec3b553b3a",
|
||||
"client_e_sk": "3eb9867c6b0d0031f2fcab920598be82d526df916fab71d81842ced65a800008",
|
||||
"server_s_pk": "b0240feaab8cefa1ed162c0f175243893681bae36a7a67a73881d3ae2345b811",
|
||||
"server_s_sk": "37c93770d27945246edcb124c47d5fae83a9cd9e47c72cf681460ccc8cd4d70b",
|
||||
"server_e_pk": "2a442437b58a4ed0a39a954d8f775e08d8d94f9554fe35618fa703d2fef7a66f",
|
||||
"server_e_sk": "79ff8259a71fabb27d0c267677639bec741e7dbe72240c54eb70513eca5a8306",
|
||||
"id_u": "696455",
|
||||
"id_s": "696453",
|
||||
"password": "70617373776f7264",
|
||||
"blinding_factor": "7691a5530384fae7ce5d118b770900b38d523d0ea62f7328410718cdc26a5707",
|
||||
"oprf_key": "c66dc3992fbcbb969647fe94390db974c4a5c6c46457373f28385c8898e9fb07",
|
||||
"envelope_nonce": "a2c8292a03df900668a81badb1003c80bacbb9a4776228997a264d58e7b2a2c6",
|
||||
"client_nonce": "d54b0fb476f66a3c5ac93647c462590431594e63f8b21aeb371cb0f835841a40",
|
||||
"server_nonce": "458b1ca0d48d3d04e6a21127db53ae4208cd5c6ae0aa6b0e2db3146022725c45",
|
||||
"blinding_factor": "3912c0df0f2b3b659da47803bdd94492084e5aa9b6f75d2966ed69aff57db001",
|
||||
"oprf_key": "14a29db285876949dc997d4257a85ff53f9676a40c5c5428e20cd2e5b2ce9105",
|
||||
"envelope_nonce": "08c8ea116a059f708b598cfba38664423bf00ecae224c22b2c4fe9d7c04f69f1",
|
||||
"client_nonce": "e44552fcf7e2b872e80d9c0213adeba9e41c43c668f73e08aaa43f4fa7747e0e",
|
||||
"server_nonce": "03bfe3d1ba36d894fda7fcdf02da7dd16b043e1a08d82b662a9cdcd65a621336",
|
||||
"info1": "696e666f31",
|
||||
"einfo2": "65696e666f32",
|
||||
"registration_request": "86115e7b95618fbd5015765d2f212494d5d68e770b96da153d0bb9a00bc5f54d",
|
||||
"registration_response": "42538263dcf753f1255c85eb66b558c32bd593f3787d284eb126787393d586330020ce16950ab0939c9827479b7f7c94662f2aad8149a47260b4e9a36f3013472924",
|
||||
"registration_upload": "002088a330a73dd4b166307c5efc6e7a0a30d9b36ff6cc13cdb7f4e9adb9308a763702a2c8292a03df900668a81badb1003c80bacbb9a4776228997a264d58e7b2a2c60022fe0b9953fd5e784a3f47ed9b1ea1a33a39231dff88e930edebd1d437b850972a2a1c51bcf77483a4315eeb5db1cb61e7dbd874194f893daaf32006de7502a0e33860cadcfec6e038662e8484e9f488efa1f336bf10a125409d20bce6a6cb22a70d8e",
|
||||
"credential_request": "86115e7b95618fbd5015765d2f212494d5d68e770b96da153d0bb9a00bc5f54dd54b0fb476f66a3c5ac93647c462590431594e63f8b21aeb371cb0f835841a400005696e666f31782e5d1fba5fc5127f56d026a0796320670260a58007b0c7b8e2c4591a6c2441",
|
||||
"credential_response": "42538263dcf753f1255c85eb66b558c32bd593f3787d284eb126787393d586330020ce16950ab0939c9827479b7f7c94662f2aad8149a47260b4e9a36f301347292402a2c8292a03df900668a81badb1003c80bacbb9a4776228997a264d58e7b2a2c60022fe0b9953fd5e784a3f47ed9b1ea1a33a39231dff88e930edebd1d437b850972a2a1c51bcf77483a4315eeb5db1cb61e7dbd874194f893daaf32006de7502a0e33860cadcfec6e038662e8484e9f488efa1f336bf10a125409d20bce6a6cb22a70d8e458b1ca0d48d3d04e6a21127db53ae4208cd5c6ae0aa6b0e2db3146022725c45f8f1a6de4b3708baec68ea94f47b9577f3d36458e82e36f431ba8ce77e2d2e110006ded053c5cfa292afbc005f84f965ca179800aba13974d7c96ae5c386207bc631dc9f70030ebdbf19503e40d45944d0bdc7cb01d3d44701a582d12a2a807648b6763b7c8b7ca4",
|
||||
"credential_finalization": "afa7239945acc304e0c40a6a9e594d7978aaff24565a44fcb5bc62b577211e854be9cb3f55261f1e34a8ebac192f98625ec59d54ce5c64346e1f9afa18facda3",
|
||||
"client_registration_state": "7691a5530384fae7ce5d118b770900b38d523d0ea62f7328410718cdc26a570770617373776f7264",
|
||||
"client_login_state": "7691a5530384fae7ce5d118b770900b38d523d0ea62f7328410718cdc26a5707006786115e7b95618fbd5015765d2f212494d5d68e770b96da153d0bb9a00bc5f54dd54b0fb476f66a3c5ac93647c462590431594e63f8b21aeb371cb0f835841a400005696e666f31782e5d1fba5fc5127f56d026a0796320670260a58007b0c7b8e2c4591a6c24410040117dbea41b3a73f38af6ec5e94f4addcb157fafd01db5640a782cbd205af1c01d54b0fb476f66a3c5ac93647c462590431594e63f8b21aeb371cb0f835841a4070617373776f7264",
|
||||
"server_registration_state": "c66dc3992fbcbb969647fe94390db974c4a5c6c46457373f28385c8898e9fb07",
|
||||
"server_login_state": "e05749068700eec7d07c4e2e6e5e63336e41cc1f3c0ddf3c635b46c6d53deffed876378fc1eb32dcfd1d7e35a63c52e638c0b8da7977269143be95f88024ab0735fac1d0b2dce50a5c19e6500c73aa055fabff9f548720dd1cacaa21566b7afde7a9b97fbc4da0482aaf2063c627926bbeeab98356b151881973460c4fad531f13721b6f004e8f73c8d2010df34700717c74350c9275fb29991f6296c85f7d1dd931f784f47ccd6bc2866423cc200fb3872a1cb29a47088b6f6750432e3f6c72",
|
||||
"password_file": "c66dc3992fbcbb969647fe94390db974c4a5c6c46457373f28385c8898e9fb0788a330a73dd4b166307c5efc6e7a0a30d9b36ff6cc13cdb7f4e9adb9308a763702a2c8292a03df900668a81badb1003c80bacbb9a4776228997a264d58e7b2a2c60022fe0b9953fd5e784a3f47ed9b1ea1a33a39231dff88e930edebd1d437b850972a2a1c51bcf77483a4315eeb5db1cb61e7dbd874194f893daaf32006de7502a0e33860cadcfec6e038662e8484e9f488efa1f336bf10a125409d20bce6a6cb22a70d8e",
|
||||
"export_key": "aa2cdeaa4281a834bda57d4fff88702cba1a22d556790e812bdfd408162ba3b6a17305c576ea9549523592470ef3047aa8ace4be71f92d71f0b5cc6465dfc9e4",
|
||||
"session_key": "13721b6f004e8f73c8d2010df34700717c74350c9275fb29991f6296c85f7d1dd931f784f47ccd6bc2866423cc200fb3872a1cb29a47088b6f6750432e3f6c72"
|
||||
"registration_request": "d6ebc1daf688bf812ca6ab0cbb797ba165aa2670c285f531ef7cd438c7b10f49",
|
||||
"registration_response": "8c7c3b570fcfb533ce06b36e428be0b7504cbeda53ef17abda7149efdf6fa51bb0240feaab8cefa1ed162c0f175243893681bae36a7a67a73881d3ae2345b811",
|
||||
"registration_upload": "c83bbe77d4bae020134fa3e75eb8e21f52bbcab7149d0d921af52c6a3edc67060208c8ea116a059f708b598cfba38664423bf00ecae224c22b2c4fe9d7c04f69f10020c87927d29c345906f2017ee54d959c2859cd49a2017ed0213d10ef42189de3ba17c334967d8f41e7f1b7f0bb2bfaa478a741f8c3395edde2154f04b415e64b36cc2d21aacdf2d9e25dd63073476537d3bff44b93d7c0e239062610c457ab2298",
|
||||
"credential_request": "d6ebc1daf688bf812ca6ab0cbb797ba165aa2670c285f531ef7cd438c7b10f49e44552fcf7e2b872e80d9c0213adeba9e41c43c668f73e08aaa43f4fa7747e0e0005696e666f311a28a68246a6149c429e8ebe57dccbb764d9ff7a6b094727dbd863ec3b553b3a",
|
||||
"credential_response": "8c7c3b570fcfb533ce06b36e428be0b7504cbeda53ef17abda7149efdf6fa51bb0240feaab8cefa1ed162c0f175243893681bae36a7a67a73881d3ae2345b8110208c8ea116a059f708b598cfba38664423bf00ecae224c22b2c4fe9d7c04f69f10020c87927d29c345906f2017ee54d959c2859cd49a2017ed0213d10ef42189de3ba17c334967d8f41e7f1b7f0bb2bfaa478a741f8c3395edde2154f04b415e64b36cc2d21aacdf2d9e25dd63073476537d3bff44b93d7c0e239062610c457ab229803bfe3d1ba36d894fda7fcdf02da7dd16b043e1a08d82b662a9cdcd65a6213362a442437b58a4ed0a39a954d8f775e08d8d94f9554fe35618fa703d2fef7a66f00064901d7e2dd4e743653346e3f049210c1353005640e5eec45b1123519b0601fa378b2cd74ea81a7d92e62298c80517db7f5deee19d7558004b6566c50264f6665cdae5dcc7913",
|
||||
"credential_finalization": "9b2c7dc06e635a6f121df9e1781ddca3551757e181ed0585494a20f71b098b26faafa4943c931b7af582d28fd791934026d69583255a604a08f3913436dddec9",
|
||||
"client_registration_state": "3912c0df0f2b3b659da47803bdd94492084e5aa9b6f75d2966ed69aff57db00170617373776f7264",
|
||||
"client_login_state": "3912c0df0f2b3b659da47803bdd94492084e5aa9b6f75d2966ed69aff57db0010067d6ebc1daf688bf812ca6ab0cbb797ba165aa2670c285f531ef7cd438c7b10f49e44552fcf7e2b872e80d9c0213adeba9e41c43c668f73e08aaa43f4fa7747e0e0005696e666f311a28a68246a6149c429e8ebe57dccbb764d9ff7a6b094727dbd863ec3b553b3a00403eb9867c6b0d0031f2fcab920598be82d526df916fab71d81842ced65a800008e44552fcf7e2b872e80d9c0213adeba9e41c43c668f73e08aaa43f4fa7747e0e70617373776f7264",
|
||||
"server_registration_state": "14a29db285876949dc997d4257a85ff53f9676a40c5c5428e20cd2e5b2ce9105",
|
||||
"server_login_state": "cee1e837a695fc63287e3896a1305455ba06c553bb2253dce4295dacd25a2a6e7c6da523db352db9c3fafa6dd753ed5b060c9650176650ede7ecd85c52c4c6c63dae7f5c960b0e87f57fee3604ae36664bb514ca3a0e861f96124f12bf30002a3818ee21fe38e800c8a694dcbd0158a6a47496297b062fa1a4ce3c4971a00b042cbb870c351ba904f64d183f1cdc755bcab82ed00cf090bd73c1862423503cb1b66dda9fb369d22ac2fdc76b578db8b25e84a45bfe030702d704d354f8efaa27",
|
||||
"password_file": "14a29db285876949dc997d4257a85ff53f9676a40c5c5428e20cd2e5b2ce9105c83bbe77d4bae020134fa3e75eb8e21f52bbcab7149d0d921af52c6a3edc67060208c8ea116a059f708b598cfba38664423bf00ecae224c22b2c4fe9d7c04f69f10020c87927d29c345906f2017ee54d959c2859cd49a2017ed0213d10ef42189de3ba17c334967d8f41e7f1b7f0bb2bfaa478a741f8c3395edde2154f04b415e64b36cc2d21aacdf2d9e25dd63073476537d3bff44b93d7c0e239062610c457ab2298",
|
||||
"export_key": "dec7b035715f5a7cc3cc205d190a2fce6ce81a6c643e644689a6516aed5b35c7fa31babe78edb1845d6ab092784feeae7ed11919dfcd90077b15e43e69a878ea",
|
||||
"session_key": "2cbb870c351ba904f64d183f1cdc755bcab82ed00cf090bd73c1862423503cb1b66dda9fb369d22ac2fdc76b578db8b25e84a45bfe030702d704d354f8efaa27"
|
||||
}
|
||||
"#;
|
||||
|
||||
|
||||
+184
-180
@@ -62,196 +62,200 @@ pub struct TestVectorParameters {
|
||||
|
||||
static TEST_VECTORS: &[&str] = &[
|
||||
r#"
|
||||
Group: ristretto255
|
||||
EnvelopeMode: 01
|
||||
OPRF: 0001
|
||||
SlowHash: Identity
|
||||
Hash: SHA512
|
||||
server_nonce: 0ef5dc5c619b5a58eecb1c8fba63ae5e723e059552bb067bc460efd
|
||||
910ff58af
|
||||
oprf_key: 5ed895206bfc53316d307b23e46ecc6623afb3086da74189a416012be03
|
||||
7e50b
|
||||
SlowHash: Identity
|
||||
EnvelopeMode: 01
|
||||
Group: ristretto255
|
||||
Nh: 64
|
||||
Npk: 32
|
||||
Nsk: 32
|
||||
password: 436f7272656374486f72736542617474657279537461706c65
|
||||
blind_login: ed8366feb6b1d05d1f46acb727061e43aadfafe9c10e5a64e7518d63
|
||||
e3263503
|
||||
server_private_keyshare: ac56b748ee205ea817e823697857b4b40ad758328074
|
||||
6897e9eb9192636db704
|
||||
client_nonce: d0298cebb277efb5af53932af6bb10180b2ac35e5f69b55ad4c4191
|
||||
4d579add6
|
||||
server_info: 6772656574696e677320616c696365
|
||||
envelope_nonce: 8dee75c66f14d8b891c6ba66f1ff8d27ab595186789ca5edf46dd
|
||||
427b6effb95
|
||||
client_private_key: 8bcb0b70dac18de24eef12e737d6b28724d3e37774e0b092f
|
||||
9f70b255defaf04
|
||||
client_public_key: 360e716c676cfe4d9968d1a352ed3faf17603863e0a7aa1905
|
||||
df6ea129343b09
|
||||
server_private_key: f3a0829898a89239dce29ccc98ec8b449a34b255ba1e6f944
|
||||
829d18e0d589b0f
|
||||
server_public_key: 66e130c6eb5b41f851b235b03a0eafeaa883f64147bc62cb74
|
||||
9c22c762389c3c
|
||||
client_info: 68656c6c6f20626f62
|
||||
client_private_keyshare: 46244633cd475d25f3db6a6eb8304e2fe02e2a006805
|
||||
3efee984e49b7f4ff60e
|
||||
envelope_nonce: 9a87511fa84547961a5467f96caba559fb15f3a203146e4041bb4
|
||||
b2179e83594
|
||||
server_keyshare: a83ddbb1abf9e8e8c73fe39d3c18da434dd3f6fd52f01279028f
|
||||
086126893d7f
|
||||
blind_registration: c604c785ada70d77a5256ae21767de8c3304115237d262134
|
||||
f5e46e512cf8e03
|
||||
client_public_key: dec9d1223019c1aaaaac7397355016f8ea099b949fb5bcf5de
|
||||
3b9b0b1b298301
|
||||
client_private_key: f141e91e7006c583b615261f9d13e1807d811f6d108bbbab8
|
||||
f44ab092c8cb206
|
||||
client_keyshare: e00213e806c74d73509c68860d75620d09665f1a5030e485ff85
|
||||
172d8ea54f54
|
||||
server_public_key: 3881fefba6d687143ecaaec0d8658eb7fa247555f05fedb075
|
||||
7866d49ea9883e
|
||||
server_private_key: bc778d1c50714f8f2e7d1378650b5aaf8d61c003f07081ad3
|
||||
93317506168c004
|
||||
auth_key: 974ae6360db0593766490b4a95592552ae08fd3e611af028d82be4bde95
|
||||
b39e2c5a68818fa5ca6be687fb7ec5f26d7c178fd81f7b61056959e88d339a13f560d
|
||||
server_mac_key: cc7ee1c4d12a2693dc6358b91a1a97bb4e0bffab50bd19aa4a169
|
||||
9584ed540baea9fa95f2139a0c9aa4d763be5eb5d7984acfecec65363f690c8058e09
|
||||
5e96f7
|
||||
envelope: 019a87511fa84547961a5467f96caba559fb15f3a203146e4041bb4b217
|
||||
9e83594002262a8d608d300886f5a2bd8b9abe76da19af847755fda0541a1729bfd57
|
||||
e94fbd79be8c03267be7f578b1a017eaff6f23a667f378ac41c516591d04681db9556
|
||||
09ac4a200b398d0ea88faaa4a74f0291f462119a5cd51491c0935171d75a6421c4b62
|
||||
prk: c2b586d349c6b573c59d85656958218a187862bd8ae2e06bf3e1e5500182b87d
|
||||
44e5bb443e6593076934730f9a38a13c5d79f037d9e3e351dbc57f943ac23f29
|
||||
client_mac_key: b2b2cb96dd005f8b4f52e3bcd9a8258ec39503b371d882ff99e08
|
||||
7f9860aebfadab51fef9c7edb64318fe3b1bda1250bfd77edd98e8e18a7350ad09b8a
|
||||
08c45c
|
||||
pseudorandom_pad: 628827493a1ef8699fa86eac8df8f0b27b783af440b715ca1ad
|
||||
914b9fce06331cbb8
|
||||
handshake_encrypt_key: e5a1bc0dffdf22ba837cef7df4db164acc56eab7ba6796
|
||||
e1a7caab9fce21485560a20f64b217f1c0ebea53b1bde1006860fa9907ca3b8ff1a48
|
||||
0803664c30458
|
||||
handshake_secret: 994ae04565986a5b3783488b3e299670a69f55274a6344d6afe
|
||||
665907dd66750f594e59b40effb99806630766a74bd5bde6a45d26fc4f017d1b73a41
|
||||
4f523502
|
||||
registration_response: 1867301bcc67bdf8e640b7d6edcbe2a65488446417b50d
|
||||
30cdba66ccb379e57200203881fefba6d687143ecaaec0d8658eb7fa247555f05fedb
|
||||
0757866d49ea9883e
|
||||
export_key: 93c48fa650a6c2b9fddc27c9697be2f259b0083515b650a7b1520af92
|
||||
e631c85946fb811b22d636d137ef97380bf9322606b5d97452ca262e9136284d23467
|
||||
76
|
||||
registration_upload: 0020dec9d1223019c1aaaaac7397355016f8ea099b949fb5
|
||||
bcf5de3b9b0b1b298301019a87511fa84547961a5467f96caba559fb15f3a203146e4
|
||||
041bb4b2179e83594002262a8d608d300886f5a2bd8b9abe76da19af847755fda0541
|
||||
a1729bfd57e94fbd79be8c03267be7f578b1a017eaff6f23a667f378ac41c516591d0
|
||||
4681db955609ac4a200b398d0ea88faaa4a74f0291f462119a5cd51491c0935171d75
|
||||
a6421c4b62
|
||||
registration_request: 241b621c417c0705b5ea7a8b7cdd5039fd61e6b63effe2a
|
||||
44418164c4d49003e
|
||||
session_key: f058bc490684af7833743104168cabe0357ffb648fd0104aae507d59
|
||||
b9dfdde1a26ab0dc6f7d03a2ea4feb2d2aea04bfc9a1fbd89e309362082c13edc1598
|
||||
f97
|
||||
KE3: 290e6fd07a3c225810e88234402879e0d6ed0791f8a3446cf80ac4fbd7e23afc
|
||||
3b539d926edc9983edacee08c285e82c46b48cb055c983d3cc2c629586dfe99d
|
||||
KE2: e83812f06568d57b8cdfdcc90fe91454e21bd25dd2a1c32dd1599a2e4a4b6c35
|
||||
00203881fefba6d687143ecaaec0d8658eb7fa247555f05fedb0757866d49ea9883e0
|
||||
19a87511fa84547961a5467f96caba559fb15f3a203146e4041bb4b2179e835940022
|
||||
62a8d608d300886f5a2bd8b9abe76da19af847755fda0541a1729bfd57e94fbd79be8
|
||||
c03267be7f578b1a017eaff6f23a667f378ac41c516591d04681db955609ac4a200b3
|
||||
98d0ea88faaa4a74f0291f462119a5cd51491c0935171d75a6421c4b620ef5dc5c619
|
||||
b5a58eecb1c8fba63ae5e723e059552bb067bc460efd910ff58afa83ddbb1abf9e8e8
|
||||
c73fe39d3c18da434dd3f6fd52f01279028f086126893d7f000ffa4ba765e84dd8080
|
||||
c061267b2604326ed135cef21f36407f3bc15609f9693c8eedbe73f2bf8c22c84b295
|
||||
b3181b074ced2cc9f66a4776401336b7b43d50bed3188593e9e8fb310ff9e6660e44e
|
||||
d2f
|
||||
KE1: b68e0e356f8490fa9c3bed952e16cc02db21eda686b3c484f3d9d912caa41f76
|
||||
d0298cebb277efb5af53932af6bb10180b2ac35e5f69b55ad4c41914d579add600096
|
||||
8656c6c6f20626f62e00213e806c74d73509c68860d75620d09665f1a5030e485ff85
|
||||
172d8ea54f54
|
||||
server_info: 6772656574696e677320616c696365
|
||||
server_nonce: 1b42bc94d7f3844a0a284d377fbbe2bdef574d386c9f8b5ead7b7e1
|
||||
5b151b939
|
||||
client_nonce: 4b6737c0bb603516ffaad7af55446a4d179187eba9e1b987aabe2be
|
||||
05397b701
|
||||
server_keyshare: 5214e3ddc73db786480b79fa2da787f2080b82cbe922c2a9592b
|
||||
44597d9a702e
|
||||
client_keyshare: a4084c7296b1a3d5a5e4a24358750489575acfd8fcfa6e787492
|
||||
b98265a5e651
|
||||
server_private_keyshare: c4d002aa4cfcf281657cf36fe562bc60d9133e0e72a7
|
||||
4432f685b2b6a4b42a0c
|
||||
client_private_keyshare: de2e98f422bf7b99be19f7da7cac62f1599d35a225ec
|
||||
6340149a0aaff3102003
|
||||
blind_registration: 7e5bcbf82a46109ee0d24e9bcab41fc830a6ce8b82fc1e921
|
||||
3a043b743b95800
|
||||
blind_login: c4d5a15f0d5ffc354e340454ec779f575e4573a3886ab5e57e4da298
|
||||
4bdd5306
|
||||
oprf_key: 080d0a4d352de92672ab709b1ae1888cb48dfabc2d6ca5b914b335512fe
|
||||
70508
|
||||
auth_key: 89f76086c4a22a1f9d6c0ab4c7f5b2b4602d756267f8ba7a27aaac1c624
|
||||
8ec621e16e7935af1b1fa38ca0c389b8e563b8c7e0daa6cfbbc2ad53ea40e006ac243
|
||||
prk: 159cb43f6d84d9423771010ff0223015870856ac20601876d6d02a9298bd7ec0
|
||||
ef656d6537420e5d26d768454089389618c6f52c5865c855f2b2684c33c2a225
|
||||
pseudorandom_pad: dc07da9e15679d4defb299284a029be4878469c905071f2b3d7
|
||||
08de16c0b1f6e
|
||||
envelope: 018dee75c66f14d8b891c6ba66f1ff8d27ab595186789ca5edf46dd427b
|
||||
6effb95002057ccd1eecfa610afa15d8bcf7dd42963a3578abe71e7afb9c48786c431
|
||||
e4b06ac6906d20d50ea18fe30a05152ac17f34d49cb00567f1cc37d2c7951e00a6c3b
|
||||
dec25eed743d642c859f48425ecfd695ea27ffe9ee7df6232a8e0bf0b30c774bc
|
||||
handshake_secret: c7c26c98fe5b164538ce0991e6dc2a3d7e50f78ee4ffac5dc66
|
||||
48252fc43e10d3574040202417a2199d20841352ec63a25d22dd4e1f33630f2a02836
|
||||
a9c6f0ce
|
||||
handshake_encrypt_key: acb381928b2928e92b8780a7ab446e81f1b39545a1a287
|
||||
bc33693882c5bb202cca4418aa416d955a2309f7663656c48fe63a261c62afa6fbd76
|
||||
90b031e6d6cc5
|
||||
server_mac_key: 4f45b1d86815c029d3bca5bf453d693f12bee45a0a71014ab0873
|
||||
0939eb529ab2b532275887aaa6853866e1fe8ae67a34d555c94726128beb37f4debd9
|
||||
009407
|
||||
client_mac_key: ce95ecfcbed2348997e4ef4f232e8448e94f7bfefb9b135a12390
|
||||
05963c2b6a415a760cb85b44df0da423e32d110e00c42251cb6e7cb19c512a17e28ad
|
||||
bc6fa3
|
||||
registration_request: ec9027daa5e9a901d641286a7ded51364142936ac7636e1
|
||||
42e3f4368b4bd8124
|
||||
registration_response: 8867d7c8c2c576a6322d49d46078ea32f479aed917c70a
|
||||
636d3ada4397ea1c0e66e130c6eb5b41f851b235b03a0eafeaa883f64147bc62cb749
|
||||
c22c762389c3c
|
||||
registration_upload: 360e716c676cfe4d9968d1a352ed3faf17603863e0a7aa19
|
||||
05df6ea129343b09018dee75c66f14d8b891c6ba66f1ff8d27ab595186789ca5edf46
|
||||
dd427b6effb95002057ccd1eecfa610afa15d8bcf7dd42963a3578abe71e7afb9c487
|
||||
86c431e4b06ac6906d20d50ea18fe30a05152ac17f34d49cb00567f1cc37d2c7951e0
|
||||
0a6c3bdec25eed743d642c859f48425ecfd695ea27ffe9ee7df6232a8e0bf0b30c774
|
||||
bc
|
||||
KE1: e06a32011e1b1704eb686b263e5d132fff4e9f6429cd93b98db107485006792c
|
||||
4b6737c0bb603516ffaad7af55446a4d179187eba9e1b987aabe2be05397b70100096
|
||||
8656c6c6f20626f62a4084c7296b1a3d5a5e4a24358750489575acfd8fcfa6e787492
|
||||
b98265a5e651
|
||||
KE2: 66f6b5fa1a4eb6bd7a0c93ed2639a31cba0d02e2df744003641d5a30a4a12364
|
||||
66e130c6eb5b41f851b235b03a0eafeaa883f64147bc62cb749c22c762389c3c018de
|
||||
e75c66f14d8b891c6ba66f1ff8d27ab595186789ca5edf46dd427b6effb95002057cc
|
||||
d1eecfa610afa15d8bcf7dd42963a3578abe71e7afb9c48786c431e4b06ac6906d20d
|
||||
50ea18fe30a05152ac17f34d49cb00567f1cc37d2c7951e00a6c3bdec25eed743d642
|
||||
c859f48425ecfd695ea27ffe9ee7df6232a8e0bf0b30c774bc1b42bc94d7f3844a0a2
|
||||
84d377fbbe2bdef574d386c9f8b5ead7b7e15b151b9395214e3ddc73db786480b79fa
|
||||
2da787f2080b82cbe922c2a9592b44597d9a702e000ff048b3a462ab243936a4ef2de
|
||||
87dd0bcd3e7d7f12004b59dc8edeff2885f9dbafa60a55d1d31397b0dd25944ea8b63
|
||||
842d77720aec60e0708b24cc9a311d424f3880b3ac84a68adc7b5947d5266ec5
|
||||
KE3: 17ace8fa7c3956f1ea6684fae1bae259e0d8d78214b235e8646904576c17fc43
|
||||
b7a8eeb6b21b8ee94a31cc075717e8c0b25e8803837238055236ae908010a8e3
|
||||
export_key: 13af620bbf9cf45da6d4223500d2a9c79b28478d7548cfd52e3708ffc
|
||||
4d9ddffa9c7735e1958751efbd68c79df6c451ccc48b41dda1748b585c2b5fd7d7f82
|
||||
64
|
||||
session_key: 0b51348833b30bfeceab9d13888111c2fcf9c93b6689e1d6c601a26c
|
||||
a29aa25e19949955ec7d056fce67c24d0fb1b53ea47e27e7966fc267379c3d0c9a738
|
||||
f54
|
||||
"#,
|
||||
r#"
|
||||
Group: ristretto255
|
||||
EnvelopeMode: 02
|
||||
OPRF: 0001
|
||||
SlowHash: Identity
|
||||
Hash: SHA512
|
||||
server_nonce: 2bf0d250ba1b4ee89929fcb6f91c521551ad52cdd6ef1ab438cc024
|
||||
e94d6a8c9
|
||||
oprf_key: 89c61a42c8191a5ca41f2fe959843d333bcf43173b7de4c5c119e0e0d8b
|
||||
0e707
|
||||
SlowHash: Identity
|
||||
EnvelopeMode: 02
|
||||
Group: ristretto255
|
||||
Nh: 64
|
||||
Npk: 32
|
||||
Nsk: 32
|
||||
client_identity: 20fa92f2e4b7ea5b5e677ac4930ff3b93b0043481ab70bc613b2
|
||||
e16a6dde6b05
|
||||
server_identity: eae9dfa6b8348d34418c32d385e1eac99efbce1af320901f7c8e
|
||||
de8d6d272c65
|
||||
password: 436f7272656374486f72736542617474657279537461706c65
|
||||
blind_login: e6d0f1d89ad552e383d6c6f4e8598cc3037d6e274d22da3089e7afbd
|
||||
4171ea02
|
||||
server_private_keyshare: 7447dd29f57e61d9a67e25cf840b359b605e54eb8bc6
|
||||
67fcd7fe18fdb47a0100
|
||||
client_nonce: c1162f56eb58419746bb66e1113d401edb0302d894ee962f7e79ae1
|
||||
2821bdefd
|
||||
server_info: 6772656574696e677320616c696365
|
||||
server_identity: 3881fefba6d687143ecaaec0d8658eb7fa247555f05fedb07578
|
||||
66d49ea9883e
|
||||
envelope_nonce: 54cd539b090014c3ac095611ba067be43c8592ddcbcf234f36569
|
||||
8f964ed836f
|
||||
client_private_key: dc70a99bbabf1ebe98b192e93cedceb9c0164e95b891bd8bc
|
||||
81721b83d66b00b
|
||||
client_public_key: 20fa92f2e4b7ea5b5e677ac4930ff3b93b0043481ab70bc613
|
||||
b2e16a6dde6b05
|
||||
server_private_key: 709687a36c94592ab76579f42ce1be6961f0700496e71df80
|
||||
6ebd5320554720d
|
||||
server_public_key: eae9dfa6b8348d34418c32d385e1eac99efbce1af320901f7c
|
||||
8ede8d6d272c65
|
||||
client_info: 68656c6c6f20626f62
|
||||
client_private_keyshare: b08950a66fc7f2845f3c0e8f6027a8cd843103c560a2
|
||||
0e8390457c9a705d1304
|
||||
envelope_nonce: 6757226024757abf5c42c9d4451a31c90317bcf54741bb9d9e426
|
||||
41aab0d0fbd
|
||||
server_public_key: 3881fefba6d687143ecaaec0d8658eb7fa247555f05fedb075
|
||||
7866d49ea9883e
|
||||
client_identity: dec9d1223019c1aaaaac7397355016f8ea099b949fb5bcf5de3b
|
||||
9b0b1b298301
|
||||
blind_registration: 019cbd1d7420292528f8cdd62f339fdabb602f04a95dac9db
|
||||
cec831b8c681a09
|
||||
client_public_key: dec9d1223019c1aaaaac7397355016f8ea099b949fb5bcf5de
|
||||
3b9b0b1b298301
|
||||
client_private_key: f141e91e7006c583b615261f9d13e1807d811f6d108bbbab8
|
||||
f44ab092c8cb206
|
||||
client_keyshare: 9a5fd96f24fea1d99183cfdbaf559a5eb8083ebba2b066bc5d1e
|
||||
b511896a5417
|
||||
server_keyshare: 1a6074e0cc3d156865ebecbe371777078d7eccd6ceddae09bec2
|
||||
65d77f3d0301
|
||||
server_private_key: bc778d1c50714f8f2e7d1378650b5aaf8d61c003f07081ad3
|
||||
93317506168c004
|
||||
auth_key: 8c66139db274252b21b83791f53883406d057b19f75637f9d891d1d982d
|
||||
ceab86549900fdd3952d3d16ed6c874b15de2229f5d0b6c09e1b42dbb3bb985884e6f
|
||||
server_mac_key: 64b39a39691023fceb04e5c13c40d50fc4ca5a71d0315e30e86f9
|
||||
116a4c7edc91398745186155e2ceee26f82c48939c24299263eb1c88644a17536196f
|
||||
981207
|
||||
envelope: 026757226024757abf5c42c9d4451a31c90317bcf54741bb9d9e42641aa
|
||||
b0d0fbd0022b82a0432f3d9c24998d3c74e4b824ea7b835067fedb21d21fafec27968
|
||||
09853e0d5da9109493ed080c98752f92ecd39353d785a84c63f623920b24f2683f76a
|
||||
c44ecd0a289b260507d90773502ef3e3fa03ab2e4a6cc54c15eca358ab8ebfc097cb8
|
||||
prk: cfd0673e7df8668da7873319036876c00d3ca13920318352336cd2a6f9a0b6be
|
||||
f69a5ad94f42bcf506d7014444fd59b35270131c9383c11199a3cb60c086ffbf
|
||||
client_mac_key: 106910daa6f98b40af2b99c6e277be37d57cdee8e623e08c04a91
|
||||
ce77817338976bd9d91c70aa094e7132338c0b86312315a2648dd8be36f46dc85066b
|
||||
d789fc
|
||||
pseudorandom_pad: b80af5731ac7b24f5d50715b6d9dd3b459b57bfef2df0daa415
|
||||
54d3dc300a9b2bf5b
|
||||
handshake_encrypt_key: 62c52174d46d3ddcb34849d0706b0c08ecbc5b5add858e
|
||||
d74d037f6696e2fc8fa772ad8871b104f6cddbc72f4b478ef35cc662c1ae5c303fc03
|
||||
92c288ca87a16
|
||||
handshake_secret: 5c2dc6c992daa89f2d881a3f0fd56e88a633330134efbe3910f
|
||||
e7f7c521f0c98f70439acbb0dd3d3ebba735d26ccbdf92299dc95042c4dbd628d3e89
|
||||
83828712
|
||||
registration_response: 088ac01ebf5700f0c96bc2988509343cb7e2dd6f0df820
|
||||
d0fb807faa11a26f5600203881fefba6d687143ecaaec0d8658eb7fa247555f05fedb
|
||||
0757866d49ea9883e
|
||||
export_key: 12114bfdd23ba4c7c9abedf72cf068f5bf14a6e8c39c28eb536fe46f3
|
||||
80fa2276328f15fe89f1147462d84c3114bc734bbbc6acaa240f33d3e230d10c563d1
|
||||
8b
|
||||
registration_upload: 0020dec9d1223019c1aaaaac7397355016f8ea099b949fb5
|
||||
bcf5de3b9b0b1b298301026757226024757abf5c42c9d4451a31c90317bcf54741bb9
|
||||
d9e42641aab0d0fbd0022b82a0432f3d9c24998d3c74e4b824ea7b835067fedb21d21
|
||||
fafec2796809853e0d5da9109493ed080c98752f92ecd39353d785a84c63f623920b2
|
||||
4f2683f76ac44ecd0a289b260507d90773502ef3e3fa03ab2e4a6cc54c15eca358ab8
|
||||
ebfc097cb8
|
||||
registration_request: c8d2e9ba503bf3f8821226653314427edb1ec8a3ecc94a5
|
||||
dfbbe33d59d07b645
|
||||
session_key: 818d3e379a3ffef7b2707ca760d4b47c91daaa1d67131305116318bf
|
||||
43266da203b890129a9117da5e1214c537989c3b91cc71549280b55d27e9594e80856
|
||||
eba
|
||||
KE3: 3944b13ec8812a9fc9206b215afd6b8f81af4ba85fee2d3ac9c55e088d18f5a0
|
||||
126c423ac44a1992703d4c68b9784abf2862f80726e1c5d0677e61453f72a108
|
||||
KE2: 5079b16709b195b3b63257b419efb752bd0603170160fa72b828ce9ff9209c0c
|
||||
00203881fefba6d687143ecaaec0d8658eb7fa247555f05fedb0757866d49ea9883e0
|
||||
26757226024757abf5c42c9d4451a31c90317bcf54741bb9d9e42641aab0d0fbd0022
|
||||
b82a0432f3d9c24998d3c74e4b824ea7b835067fedb21d21fafec2796809853e0d5da
|
||||
9109493ed080c98752f92ecd39353d785a84c63f623920b24f2683f76ac44ecd0a289
|
||||
b260507d90773502ef3e3fa03ab2e4a6cc54c15eca358ab8ebfc097cb82bf0d250ba1
|
||||
b4ee89929fcb6f91c521551ad52cdd6ef1ab438cc024e94d6a8c91a6074e0cc3d1568
|
||||
65ebecbe371777078d7eccd6ceddae09bec265d77f3d0301000fba6a857cb74713bd0
|
||||
fd39f363bcc71a6f30218ca78126c553840bb4207237a2379fd803a6e6a25fb77806f
|
||||
0b05eb477322931cffcad25ac5e78571ac0d2f56627ddb1a136121bea8c01d869266a
|
||||
435
|
||||
KE1: 7024ca0d5423176294fbb9ca968d8ce3fc879a231f1ceef69e672c89e02ded59
|
||||
c1162f56eb58419746bb66e1113d401edb0302d894ee962f7e79ae12821bdefd00096
|
||||
8656c6c6f20626f629a5fd96f24fea1d99183cfdbaf559a5eb8083ebba2b066bc5d1e
|
||||
b511896a5417
|
||||
server_info: 6772656574696e677320616c696365
|
||||
server_nonce: 539290dde2ab6046896ff9dfda5d149f5ffbdc7ce165dffaa1c1b03
|
||||
4a1af27df
|
||||
client_nonce: ef2e5f21761e7c387a770e6ab729fd31203c29acb18b146da3ba2a7
|
||||
02cf905ac
|
||||
server_keyshare: 96a9587e233e67f2397f10fec6355b68102534f1f1b115b4ddf7
|
||||
485840efcd7c
|
||||
client_keyshare: 54f35db3a52fb0cf2a97918a6987993231d227e28711eaef19a3
|
||||
e5033632611a
|
||||
server_private_keyshare: 6650d64df70618a878504ce73dcca27b1af125c67e48
|
||||
1e7bd49d0b24709b200f
|
||||
client_private_keyshare: ebb01c59f99bc955df622548e247f7ef180732909ff3
|
||||
c5f87ff8c7867b8be704
|
||||
blind_registration: 308f1d3fa1fea402f3c90b04601274050a3c6f467387c2f48
|
||||
878823949b0e109
|
||||
blind_login: 141e21373228a44b09d4c00da9a6bbaf9a5e54a1687c07f327833643
|
||||
4245510b
|
||||
oprf_key: b7126967aa0cb69c311b71343843ea041bae30e2bde41b548b8fbd8bced
|
||||
97604
|
||||
auth_key: 8e7357bf9c0d2a846452cdd3956d454365df0d307d619cc57e0eefa1aef
|
||||
31b94e7eaee4402c13f0e508cbcdcc87e9cd1b18e08a258ae185bf74646379468ad0f
|
||||
prk: b4d69d383cf93c3ea746a668b55de501a574a0aad0a7062e56d5f9942b5dcdf4
|
||||
7109fb186261a209e7bdd20cde44c15a6095afc36f402cf1e2108783f11b8302
|
||||
pseudorandom_pad: 1b83a29b29d86d9959b18621522ba3c639cd262236f124d5da5
|
||||
75817ade23ffd
|
||||
envelope: 0254cd539b090014c3ac095611ba067be43c8592ddcbcf234f365698f96
|
||||
4ed836f0020c7f30b0093677327c10014c86ec66d7ff9db68b78e60995e124079af90
|
||||
848ff6ef0b9e59e3d41ccbe83e08cfaec1124d3e557b8b7ffe4225e5a1f40bee6c077
|
||||
6238028b6ab6c331534b35afde8806e7e4fb73b2eb255aa1484e6b5b608a3c3ac
|
||||
handshake_secret: fd4ce6630386646324016ff5e8aff286e8325666ced7df3a39b
|
||||
cfa200ec5c0d501505af4150439b14101ed540cc58c15e9ed0c6e8d0ae03c1758727a
|
||||
bd2a20cd
|
||||
handshake_encrypt_key: 9f13439e483065b0657dd575c30b56382e3fc9adec8e3a
|
||||
171e3448ad13cb74be64af7968fb6109a3661124fcef29dd3e29f350f6095cdb97dd3
|
||||
df2fda07c5273
|
||||
server_mac_key: 70ac95f82f1936b945bd29dcafe19d17e9fd06f27eea1893ed1ad
|
||||
af7ec596afe478125413cfd510406a8e93ffba72792c432a7cc93b1176c7ac3326882
|
||||
6b5e60
|
||||
client_mac_key: c0d5bfd0367a6a09c1b07a61703d2b4cc41e47a2e3a1372472c93
|
||||
5a0b531f2f0902a038496768deadf5f8cb867c0b59df48682619f4e9a0c7c909ac0d2
|
||||
cce2a4
|
||||
registration_request: 3c8b89966e261a5aaf7aeb6dcdd94c87ce311bf197221b8
|
||||
7ef44632d58f18a05
|
||||
registration_response: caf9243d7ef3e267815632bf79c85a27a23f218a438815
|
||||
2a523f6a310949807beae9dfa6b8348d34418c32d385e1eac99efbce1af320901f7c8
|
||||
ede8d6d272c65
|
||||
registration_upload: 20fa92f2e4b7ea5b5e677ac4930ff3b93b0043481ab70bc6
|
||||
13b2e16a6dde6b050254cd539b090014c3ac095611ba067be43c8592ddcbcf234f365
|
||||
698f964ed836f0020c7f30b0093677327c10014c86ec66d7ff9db68b78e60995e1240
|
||||
79af90848ff6ef0b9e59e3d41ccbe83e08cfaec1124d3e557b8b7ffe4225e5a1f40be
|
||||
e6c0776238028b6ab6c331534b35afde8806e7e4fb73b2eb255aa1484e6b5b608a3c3
|
||||
ac
|
||||
KE1: 8261a1efd78bea73faf256a23c200d729259886530fa43b875c1ca124b09bc7e
|
||||
ef2e5f21761e7c387a770e6ab729fd31203c29acb18b146da3ba2a702cf905ac00096
|
||||
8656c6c6f20626f6254f35db3a52fb0cf2a97918a6987993231d227e28711eaef19a3
|
||||
e5033632611a
|
||||
KE2: fa1f33a43a03123ebe35345ef93aa23b57ea8bfbee7022b05a179d60768ba02e
|
||||
eae9dfa6b8348d34418c32d385e1eac99efbce1af320901f7c8ede8d6d272c650254c
|
||||
d539b090014c3ac095611ba067be43c8592ddcbcf234f365698f964ed836f0020c7f3
|
||||
0b0093677327c10014c86ec66d7ff9db68b78e60995e124079af90848ff6ef0b9e59e
|
||||
3d41ccbe83e08cfaec1124d3e557b8b7ffe4225e5a1f40bee6c0776238028b6ab6c33
|
||||
1534b35afde8806e7e4fb73b2eb255aa1484e6b5b608a3c3ac539290dde2ab6046896
|
||||
ff9dfda5d149f5ffbdc7ce165dffaa1c1b034a1af27df96a9587e233e67f2397f10fe
|
||||
c6355b68102534f1f1b115b4ddf7485840efcd7c000f32cb65026f996c3838716d302
|
||||
454eee577a049edb36c5d06f9faf4a2eced065c07f4db4767bf3482bdf4014177b963
|
||||
4f5f419bcb0606835bd417de4b4a2425c7f32faa49c4395aab6192d75d34e9fa
|
||||
KE3: 734742138587e8553944a16f7e3f12554c54e96d7361e90c909e5de518267c46
|
||||
676e3b514c68564c6dd60194860f7f425d816042fcf00c0b15ede703216f5fe4
|
||||
export_key: 5e373cf62e2e1ee77b527e514eeb2844d69285401b5a27a7dfe8fb889
|
||||
7a56190acfa179f68368ed3bc2068ab05de63670e691a0bbfde9d4bed6e1b57ae008a
|
||||
ec
|
||||
session_key: fa3156746b8a70e812aeff1dc50e7587dcc31acb0bf1705827918768
|
||||
c3e9dbbd893de24e890c341aed9c75a1bef6fbe36f150a2da706ec989013238c3fd94
|
||||
2a1
|
||||
"#,
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user