All tests passing for HashMap implementation
This commit is contained in:
parent
69e4579450
commit
369d830bca
|
@ -225,10 +225,9 @@ impl TryFrom<Vec<u8>> for EncryptedBucket {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize)]
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
struct K {
|
||||
encbucket: EncryptedBucket,
|
||||
vec: Vec<u8>,
|
||||
}
|
||||
|
||||
|
||||
|
@ -340,21 +339,14 @@ impl BridgeTable {
|
|||
encbucket: &EncryptedBucket,
|
||||
) -> Result<Bucket, aead::Error> {
|
||||
// Set the nonce and the key
|
||||
println!("Trying to decrypt");
|
||||
let k = K {
|
||||
encbucket: *encbucket,
|
||||
vec: (0x20..0x30).collect(),
|
||||
};
|
||||
println!("Made EncryptedBucket");
|
||||
let nonce = GenericArray::from_slice(&k.vec[0..12]);
|
||||
println!("got nonce: {:?}", nonce);
|
||||
let nonce = GenericArray::from_slice(&k.encbucket.0[0..12]);
|
||||
let aeskey = GenericArray::from_slice(key);
|
||||
println!("got aeskey: {:?}", aeskey);
|
||||
// Decrypt
|
||||
let cipher = Aes128Gcm::new(aeskey);
|
||||
println!("got cipher");
|
||||
let plaintext: Vec<u8> = cipher.decrypt(nonce,k.vec[12..].as_ref())?;
|
||||
println!("got plaintext {:?}", plaintext);
|
||||
let plaintext: Vec<u8> = cipher.decrypt(nonce,k.encbucket.0[12..].as_ref())?;
|
||||
// Convert the plaintext bytes to an array of BridgeLines
|
||||
Ok(BridgeLine::bucket_decode(
|
||||
plaintext.as_slice().try_into().unwrap(),
|
||||
|
@ -408,9 +400,7 @@ mod tests {
|
|||
btable.encrypt_table(today, &reachability_priv);
|
||||
// Try to decrypt a 1-bridge bucket
|
||||
let key7 = btable.keys[&7u32];
|
||||
println!("Got Key");
|
||||
let bucket7 = btable.decrypt_bucket_id(7, &key7)?;
|
||||
println!("Decrypted");
|
||||
println!("bucket 7 = {:?}", bucket7);
|
||||
// Try to decrypt a 3-bridge bucket
|
||||
let key24 = btable.keys[&24u32];
|
||||
|
|
|
@ -727,7 +727,7 @@ fn test_update_bridge() {
|
|||
#[test]
|
||||
fn test_bridge_replace() {
|
||||
// Create 3 open invitation buckets and 3 spare buckets
|
||||
let cases = vec!["not found", "available", "unallocated", "spare", "failed"];
|
||||
let cases = vec!["not found", "available", "unallocated", "failed", "spare"];
|
||||
for case in cases {
|
||||
let mut th: TestHarness;
|
||||
if case != "failed" {
|
||||
|
@ -738,7 +738,10 @@ fn test_bridge_replace() {
|
|||
|
||||
// Randomly select a bridge to replace
|
||||
let table_size = th.ba.bridge_table.buckets.len();
|
||||
let num = rand::thread_rng().gen_range(0, table_size - 1) as u32;
|
||||
let mut num = 100000;
|
||||
while !th.ba.bridge_table.buckets.contains_key(&num) {
|
||||
num = rand::thread_rng().gen_range(0, th.ba.bridge_table.counter) as u32;
|
||||
};
|
||||
let replaceable_bucket = th.ba.bridge_table.buckets.get(&num).unwrap().clone();
|
||||
let replacement_bridge = &replaceable_bucket[0];
|
||||
assert!(
|
||||
|
@ -864,8 +867,9 @@ fn test_bridge_replace() {
|
|||
.is_none(),
|
||||
"Replacement bridge still marked as reachable"
|
||||
);
|
||||
// Remove a spare bucket to replace bridge, buckets decrease by 1
|
||||
assert!(
|
||||
table_size == th.ba.bridge_table.buckets.len(),
|
||||
(table_size -1) == th.ba.bridge_table.buckets.len(),
|
||||
"Number of buckets changed size"
|
||||
);
|
||||
assert!(
|
||||
|
|
Loading…
Reference in New Issue