Add test for longfilename
This commit is contained in:
parent
7bdfcd6ca8
commit
6918998222
|
@ -46,14 +46,14 @@ mod test {
|
||||||
use super::FilenameCipher;
|
use super::FilenameCipher;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_encrypt() {
|
fn test_encrypt_short_name() {
|
||||||
let master_key = base64::decode("9gtUW9XiiefEgEXEkbONI6rnUsd2yh5UZZLG0V8Bxgk=").unwrap();
|
let master_key = base64::decode("9gtUW9XiiefEgEXEkbONI6rnUsd2yh5UZZLG0V8Bxgk=").unwrap();
|
||||||
let dir_iv = base64::decode("6ysCeWOp2euF1x39gth8KQ==").unwrap();
|
let dir_iv = base64::decode("6ysCeWOp2euF1x39gth8KQ==").unwrap();
|
||||||
|
|
||||||
let decoder = FilenameCipher::new(&master_key).expect("Failed to get file decoder");
|
let filename_cipher = FilenameCipher::new(&master_key).expect("Failed to get file decoder");
|
||||||
let dir_decoder = decoder.get_cipher_for_dir(&dir_iv);
|
let dir_cipher = filename_cipher.get_cipher_for_dir(&dir_iv);
|
||||||
|
|
||||||
let encoded = dir_decoder
|
let encoded = dir_cipher
|
||||||
.encrypt_filename("7.mp4")
|
.encrypt_filename("7.mp4")
|
||||||
.expect("Failed to encrypt filename");
|
.expect("Failed to encrypt filename");
|
||||||
|
|
||||||
|
@ -64,17 +64,78 @@ mod test {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_decrypt() {
|
fn test_decrypt_short_name() {
|
||||||
let master_key = base64::decode("9gtUW9XiiefEgEXEkbONI6rnUsd2yh5UZZLG0V8Bxgk=").unwrap();
|
let master_key = base64::decode("9gtUW9XiiefEgEXEkbONI6rnUsd2yh5UZZLG0V8Bxgk=").unwrap();
|
||||||
let dir_iv = base64::decode("6ysCeWOp2euF1x39gth8KQ==").unwrap();
|
let dir_iv = base64::decode("6ysCeWOp2euF1x39gth8KQ==").unwrap();
|
||||||
|
|
||||||
let decoder = FilenameCipher::new(&master_key).expect("Failed to get file decoder");
|
let filename_cipher = FilenameCipher::new(&master_key).expect("Failed to get file decoder");
|
||||||
let dir_decoder = decoder.get_cipher_for_dir(&dir_iv);
|
let dir_cipher = filename_cipher.get_cipher_for_dir(&dir_iv);
|
||||||
|
|
||||||
let decrypted = dir_decoder
|
let decrypted = dir_cipher
|
||||||
.decode_filename("vTBajRt-yCpxB7Sly0E7lQ")
|
.decode_filename("vTBajRt-yCpxB7Sly0E7lQ")
|
||||||
.expect("Failed to decrypt filename");
|
.expect("Failed to decrypt filename");
|
||||||
|
|
||||||
assert_eq!(decrypted, "7.mp4");
|
assert_eq!(decrypted, "7.mp4");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_encrypt_long_name() {
|
||||||
|
let master_key = base64::decode("9gtUW9XiiefEgEXEkbONI6rnUsd2yh5UZZLG0V8Bxgk=").unwrap();
|
||||||
|
let dir_iv = base64::decode("6ysCeWOp2euF1x39gth8KQ==").unwrap();
|
||||||
|
|
||||||
|
let filename_cipher = FilenameCipher::new(&master_key).expect("Failed to get file decoder");
|
||||||
|
let dir_cipher = filename_cipher.get_cipher_for_dir(&dir_iv);
|
||||||
|
|
||||||
|
let name = dir_cipher
|
||||||
|
.encrypt_filename(
|
||||||
|
"€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€",
|
||||||
|
)
|
||||||
|
.expect("Failed to encrypt filename");
|
||||||
|
|
||||||
|
match name {
|
||||||
|
EncodedFilename::LongFilename(l) => {
|
||||||
|
assert_eq!(
|
||||||
|
l.filename(),
|
||||||
|
"gocryptfs.longname.Bf_foqgr7ZUrPHk6BQo4HYk_V3w0II2V9QiOIWCDDlw"
|
||||||
|
);
|
||||||
|
assert_eq!(l.filename_content(), "Z-XRQNP2Hc_fggKCpeyJX1i8N-8CSFPchvJiT-1H0aNOL-1_GK1TqmADcKFgFdH96ScIQIH-2hUN6lQ1ruv38ubFbDLzOdIjo50C7IIYK84XPZe_-AeGhkGP6kyvvZMvPYBt81PHjD69ZoHFG-ylpazmq71BKx2UrXOXj2dBkWVbZxnSGaKtx7ii8FSFwAfQZYEmMKIr03GU5MnxpP4u44USgenDCRVn-01F5uxjHfyidSqLYn8OIi-lpaw6jgNc5zbV5U-4yKmdLZ8opV7lMTtw0p6h2BQLrrLDjI_Gbgc");
|
||||||
|
}
|
||||||
|
EncodedFilename::ShortFilename(s) => {
|
||||||
|
panic!("This should be a long filename, got \"{}\"", s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_decrypt_long_name() {
|
||||||
|
let master_key = base64::decode("9gtUW9XiiefEgEXEkbONI6rnUsd2yh5UZZLG0V8Bxgk=").unwrap();
|
||||||
|
let dir_iv = base64::decode("6ysCeWOp2euF1x39gth8KQ==").unwrap();
|
||||||
|
|
||||||
|
let filename_cipher = FilenameCipher::new(&master_key).expect("Failed to get file decoder");
|
||||||
|
let dir_cipher = filename_cipher.get_cipher_for_dir(&dir_iv);
|
||||||
|
|
||||||
|
let name = EncodedFilename::from("Z-XRQNP2Hc_fggKCpeyJX1i8N-8CSFPchvJiT-1H0aNOL-1_GK1TqmADcKFgFdH96ScIQIH-2hUN6lQ1ruv38ubFbDLzOdIjo50C7IIYK84XPZe_-AeGhkGP6kyvvZMvPYBt81PHjD69ZoHFG-ylpazmq71BKx2UrXOXj2dBkWVbZxnSGaKtx7ii8FSFwAfQZYEmMKIr03GU5MnxpP4u44USgenDCRVn-01F5uxjHfyidSqLYn8OIi-lpaw6jgNc5zbV5U-4yKmdLZ8opV7lMTtw0p6h2BQLrrLDjI_Gbgc".to_string());
|
||||||
|
|
||||||
|
match &name {
|
||||||
|
EncodedFilename::LongFilename(l) => {
|
||||||
|
assert_eq!(
|
||||||
|
l.filename(),
|
||||||
|
"gocryptfs.longname.Bf_foqgr7ZUrPHk6BQo4HYk_V3w0II2V9QiOIWCDDlw"
|
||||||
|
);
|
||||||
|
assert_eq!(l.filename_content(), "Z-XRQNP2Hc_fggKCpeyJX1i8N-8CSFPchvJiT-1H0aNOL-1_GK1TqmADcKFgFdH96ScIQIH-2hUN6lQ1ruv38ubFbDLzOdIjo50C7IIYK84XPZe_-AeGhkGP6kyvvZMvPYBt81PHjD69ZoHFG-ylpazmq71BKx2UrXOXj2dBkWVbZxnSGaKtx7ii8FSFwAfQZYEmMKIr03GU5MnxpP4u44USgenDCRVn-01F5uxjHfyidSqLYn8OIi-lpaw6jgNc5zbV5U-4yKmdLZ8opV7lMTtw0p6h2BQLrrLDjI_Gbgc");
|
||||||
|
}
|
||||||
|
EncodedFilename::ShortFilename(s) => {
|
||||||
|
panic!("This should be a long filename, got \"{}\"", s)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let decrypted = dir_cipher
|
||||||
|
.decode_filename(name)
|
||||||
|
.expect("Failed to decrypt filename");
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
decrypted,
|
||||||
|
"€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue