pub struct VolumeHeader {
pub block_size: u32,
pub bytes_per_sector: u32,
pub physical_volume_size: u64,
pub metadata_block_numbers: [u64; 4],
pub key_data: [u8; 16],
pub physical_volume_identifier: [u8; 16],
}Expand description
The parsed physical volume header.
Fields§
§block_size: u32CoreStorage block size in bytes (typically 4096); the multiplier that turns a block number into a byte offset.
bytes_per_sector: u32Bytes per sector (typically 512); the AES-XTS unit for LV decryption.
physical_volume_size: u64Physical volume size in bytes (header offset 64).
metadata_block_numbers: [u64; 4]Metadata block numbers (header offset 104, 4 × u64). Multiply by
block_size for a byte offset.
key_data: [u8; 16]The 16-byte metadata XTS key1 (header offset 176, first 16 bytes of the 128-byte key data).
physical_volume_identifier: [u8; 16]The physical volume identifier (header offset 304, on-disk byte order) — the metadata XTS key2.
Implementations§
Source§impl VolumeHeader
impl VolumeHeader
Sourcepub fn parse(data: &[u8]) -> Result<Self, FileVaultError>
pub fn parse(data: &[u8]) -> Result<Self, FileVaultError>
Parse the 512-byte header from the start of a CoreStorage partition.
§Errors
FileVaultError::NotCoreStorageif the"CS"signature is absent.FileVaultError::UnsupportedEncryptionMethodif not AES-XTS-128.
Trait Implementations§
Source§impl Clone for VolumeHeader
impl Clone for VolumeHeader
Source§fn clone(&self) -> VolumeHeader
fn clone(&self) -> VolumeHeader
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for VolumeHeader
impl RefUnwindSafe for VolumeHeader
impl Send for VolumeHeader
impl Sync for VolumeHeader
impl Unpin for VolumeHeader
impl UnsafeUnpin for VolumeHeader
impl UnwindSafe for VolumeHeader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more