|
|
@@ -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];
|