pub enum BdeError {
Io(Error),
NotBitLocker {
signature: [u8; 8],
},
NoValidMetadata {
offsets: [u64; 3],
},
UnsupportedEncryptionMethod {
method: u16,
},
NoPasswordProtector {
found: Vec<u16>,
},
MissingKeyMaterial {
what: &'static str,
},
AuthenticationFailed {
what: &'static str,
},
MalformedKeyContainer {
what: &'static str,
got: usize,
need: usize,
},
}Expand description
An error decoding or unlocking a BitLocker (BDE) volume.
Variants§
Io(Error)
An I/O error reading the underlying volume.
NotBitLocker
The volume header carries neither a BitLocker -FVE-FS- signature nor a
BitLocker To Go MSWIN4.1 signature. The offending bytes at offset 3 are
included so the caller can identify what was actually there.
NoValidMetadata
No FVE metadata block carried a valid -FVE-FS- block-header signature at
any of the three candidate offsets read from the volume header.
UnsupportedEncryptionMethod
The volume’s encryption method is not one this build decrypts. The raw method value is included.
NoPasswordProtector
The metadata carries no password-protected VMK (protection type 0x2000),
so unlock_with_password cannot proceed. The protector types that were
present are listed to guide the examiner toward the right unlock path.
MissingKeyMaterial
The password-protected VMK is missing its stretch key or AES-CCM key entry, so the VMK cannot be derived. Names which part is absent.
AuthenticationFailed
The AES-CCM authentication tag did not verify — for a password unlock this means the supplied password is wrong; for FVEK it means the VMK is wrong.
MalformedKeyContainer
A decrypted key container was shorter than the fixed layout requires, or a key field ran past the end of the plaintext.
Trait Implementations§
Source§impl Error for BdeError
impl Error for BdeError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()