Move get_real_size to rustcryptfs-lib
This commit is contained in:
parent
77e78a5112
commit
86eba12b5a
|
@ -69,4 +69,33 @@ impl ContentEnc {
|
||||||
|
|
||||||
return Ok(buf.to_vec());
|
return Ok(buf.to_vec());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_real_size(encrypted_size: u64) -> u64 {
|
||||||
|
if encrypted_size == 0 {
|
||||||
|
0
|
||||||
|
} else {
|
||||||
|
let x = (encrypted_size - 50) / 4128;
|
||||||
|
|
||||||
|
let y = (encrypted_size - 50) - x * 4128;
|
||||||
|
x * 4096 + y
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod test {
|
||||||
|
use super::ContentEnc;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_get_real_size() {
|
||||||
|
assert_eq!(0, ContentEnc::get_real_size(0));
|
||||||
|
|
||||||
|
for real_size in 1..4096 * 4 + 1 {
|
||||||
|
let nbr_full_blocks = real_size / 4096;
|
||||||
|
let encrypted_size =
|
||||||
|
18 + nbr_full_blocks * (4096 + 32) + real_size - nbr_full_blocks * 4096 + 32;
|
||||||
|
|
||||||
|
assert_eq!(real_size, ContentEnc::get_real_size(encrypted_size));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ use std::{
|
||||||
};
|
};
|
||||||
|
|
||||||
use fuser::{FileAttr, FileType, Filesystem, FUSE_ROOT_ID};
|
use fuser::{FileAttr, FileType, Filesystem, FUSE_ROOT_ID};
|
||||||
use rustcryptfs_lib::GocryptFs;
|
use rustcryptfs_lib::{content_enc::ContentEnc, GocryptFs};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
error::Result,
|
error::Result,
|
||||||
|
@ -49,17 +49,6 @@ impl EncryptedFs {
|
||||||
fuser::mount2(self, mountpoint, &[]).unwrap();
|
fuser::mount2(self, mountpoint, &[]).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_real_size(size: u64) -> u64 {
|
|
||||||
if size == 0 {
|
|
||||||
0
|
|
||||||
} else {
|
|
||||||
let x = (size - 50) / 4128;
|
|
||||||
|
|
||||||
let y = (size - 50) - x * 4128;
|
|
||||||
x * 4096 + y
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn get_file_type(file_type: StdFileType) -> FileType {
|
fn get_file_type(file_type: StdFileType) -> FileType {
|
||||||
if file_type.is_file() {
|
if file_type.is_file() {
|
||||||
FileType::RegularFile
|
FileType::RegularFile
|
||||||
|
@ -93,7 +82,7 @@ impl EncryptedFs {
|
||||||
let file_type = Self::get_file_type(meta.file_type());
|
let file_type = Self::get_file_type(meta.file_type());
|
||||||
|
|
||||||
let file_size = if meta.is_file() {
|
let file_size = if meta.is_file() {
|
||||||
EncryptedFs::get_real_size(meta.size())
|
ContentEnc::get_real_size(meta.size())
|
||||||
} else {
|
} else {
|
||||||
meta.size()
|
meta.size()
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue