pub enum BdeError {
Io(Error),
NotBitLocker {
signature: [u8; 8],
},
NoValidMetadata {
offsets: [u64; 3],
},
UnsupportedEncryptionMethod {
method: u16,
},
UnvalidatedEncryptionMethod {
method: u16,
},
NoUnlockProtector {
protector: &'static str,
found: Vec<u16>,
},
InvalidRecoveryPassword {
reason: &'static str,
},
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 encryption-method value is not one of the six defined BitLocker
ciphers (0x8000–0x8005). The raw value is included.
UnvalidatedEncryptionMethod
The encryption method is a recognized BitLocker cipher but this build has
no oracle-validated decrypt for it yet (AES-256-CBC 0x8003, or AES-XTS
0x8004/0x8005, or AES-256-CBC + diffuser 0x8001). It is refused
rather than decrypted by construction. The raw value is named.
NoUnlockProtector
The metadata carries no VMK for the protector the caller tried to unlock
with (password 0x2000 or recovery password 0x0800). The protector
types that were present are listed to guide the examiner toward the
right unlock path.
Fields
InvalidRecoveryPassword
The supplied recovery password is not a valid 48-digit BitLocker recovery key (wrong group count, a non-digit, a failed divisible-by-11 checksum, or an out-of-range group). The specific reason is named.
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()