in protocol/src/private_id/partner.rs [139:183]
fn create_id_map(&self, partner: TPayload, company: TPayload, na_val: Option<&str>) {
match (
self.permutation.clone().read(),
self.plain_data.clone().read(),
self.id_map.clone().write(),
) {
(Ok(pm), Ok(plain_data), Ok(mut id_map)) => {
let mut partner_encrypt = self
.ec_cipher
.to_points_encrypt(&partner, &self.private_keys.1);
undo_permute(&pm, &mut partner_encrypt);
for (k, v) in self
.ec_cipher
.to_bytes(&partner_encrypt)
.iter()
.zip(plain_data.get_plain_keys().iter())
{
let record = plain_data.get_record_with_keys(k.to_string(), v);
id_map.push(record);
}
for k in self
.ec_cipher
.to_bytes(
&self
.ec_cipher
.to_points_encrypt(&company, &self.private_keys.1),
)
.iter()
{
let record = plain_data.get_empty_record_with_key(
k.to_string(),
na_val.map(String::from).as_ref(),
);
id_map.push(record);
}
if !plain_data.headers.is_empty() {
id_map.insert(0, plain_data.headers.clone());
}
}
_ => panic!("Cannot make v"),
}
}