Milan Broz
b5fbd682f2
Move fcntl.h to internal defines and check for O_CLOEXEC.
2020-02-21 10:10:11 +01:00
Vojtech Trefny
d98cc3bb6c
bitlk: Do not allow activation of EOW and unknown devices
...
We currently do not support these BITLK devices.
2020-01-30 09:57:43 +01:00
Vojtech Trefny
9697f17b9d
bitlk: Do not allow to activate devices in an unknown state
...
According to Dislocker, two unknown numbers in the FVE metadata
indicate "state" of the BITLK device. We were able to identify
only one of the states and we shouldn't allow activating devices
in other states for now.
2020-01-30 09:57:43 +01:00
Vojtech Trefny
ce3a9d172d
bitlk: Fix reading metadata entries total length
...
FVE metadata header contains size of the header itself + size of
the metadata entries so we need to take this value and substract
48 (length of the FVE metadata header).
2020-01-30 09:57:39 +01:00
Vojtěch Trefný
61f5dcb11e
Return correct data offset for BITLK in crypt_get_data_offset
...
First part of the encrypted data will be always directly after
the header.
Fixes : #518
2020-01-17 14:02:12 +01:00
Milan Broz
48906f354e
Remove EOL in debug message.
2020-01-12 12:30:36 +01:00
Milan Broz
165e6c234c
Fix some error and debug messages.
...
Use BITLK as format name.
Avoid using doesn't -> does not.
2020-01-11 22:10:59 +01:00
Vojtěch Trefný
3720b66d00
bitlk: Fix getting FVEK for AES-CBC 128 bit with Elephant
...
For this 128 bit Elephant the key data is 512 bit (2 * 156 bit,
same as for 256 bit Elephant) so we need to adjust reading the
key to not include the empty "parts" of the key.
2020-01-05 17:07:15 +01:00
Milan Broz
864bbc5472
Fix string leak in BITLK attribute name handling.
2020-01-03 13:44:57 +01:00
Milan Broz
080566a1fd
Update copyright year.
2020-01-03 13:04:55 +01:00
jbit
d7667e9e6e
bitlk: Support for name strings in VMK metadata
2020-01-02 08:54:19 +00:00
Milan Broz
71a1698bf2
Add bitlk.c to translation.
2019-12-31 11:16:01 +01:00
Milan Broz
eee46ef2f4
Detect support for BitLocker EBOIV and Elephant diffuser.
...
If kernel is missing support, print a more friendly error.
2019-12-30 21:53:06 +01:00
Vojtěch Trefný
3c189b4183
bitlk: Fix displaying key length in bitlkDump
2019-12-30 21:53:06 +01:00
Vojtěch Trefný
fd5ab0edf7
bitlk: Add Smart Card protected VMKs
...
Test image protected with smart card is included.
2019-12-30 21:53:06 +01:00
Vojtěch Trefný
420387a7a5
bitlk: Ignore unknown metadata entries for unsupported VMKs
...
VMKs (keyslots) protected with a smart card or TPM have some
additional metadata entries that are currently unkwnon. We can
safely ignore these because we don't support unlocking the device
using these VMKs so we should still be able to parse the metadata
and unlock the device using other VMKs like the recovery password.
2019-12-30 21:53:06 +01:00
Vojtech Trefny
834059ddfa
Do not hardcode number of DM segments for BitLocker devices
...
Sometimes there is no gap between the metadata so we don't want to
create a dm-crypt segment there.
2019-12-30 21:53:06 +01:00
Vojtěch Trefný
5ec2fbcd38
Allow empty passphrases when opening BitLocker devices
...
It's probably not possible to create a BitLocker device with an
empty passphrase but we want to support it. And it's definitely
better to ask for the passphrase again instead of returning
ENOMEM.
2019-12-30 21:53:06 +01:00
Vojtěch Trefný
b43429e684
Fix parsing BitLocker metadata on Big Endian architectures
2019-12-30 21:53:06 +01:00
Vojtěch Trefný
97e39f0744
Fix displaying error for not supported BitLocker key decryption
...
'crypt_bitlk_decrypt_key' can also fail because of wrong
passphrase and other reasons.
2019-12-30 21:53:06 +01:00
Vojtěch Trefný
fad592b512
Fix open on devices with no supported VMKs
2019-12-30 21:53:06 +01:00
Milan Broz
c802269ea3
Bitlk: fix some additional gcc warnings.
2019-12-30 21:53:06 +01:00
Milan Broz
06268963fb
Bitlk: clean up some inlcudes and warnings.
2019-12-30 21:53:06 +01:00
Milan Broz
025e4d9fc6
Fix bitlk test on older systems.
2019-12-30 21:53:06 +01:00
Milan Broz
b2774d57ba
Bitlk: Propagare errno from key decryption.
2019-12-30 21:53:06 +01:00
Milan Broz
79019b1ced
Bitlk: Move crypt key handling to crypto backend.
2019-12-30 21:53:06 +01:00
Vojtěch Trefný
bc87140b5b
Do not declare control variables in for loops
...
C89 doesn't like this.
2019-12-30 21:53:06 +01:00
Vojtěch Trefný
1c5251069b
Define UUID_STR_LEN not defined in older versions of libuuid
2019-12-30 21:53:06 +01:00
Vojtěch Trefný
a9e32c55c0
Fix parsing BitLocker metadata from latest Windows
...
Newest version added a new metadata entry to the recovery
passphrase protected VMK containing two new timestamps. We are
ignoring these for now.
2019-12-30 21:53:06 +01:00
Vojtěch Trefný
a494228407
Do not try to activate partially decrypted BitLocker devices
2019-12-30 21:53:06 +01:00
Vojtěch Trefný
9932b5fc5c
Do not try to activate BitLocker devices with diffuser
...
The CBC mode with Elephant Diffuser is currently not supported
by DM crypt.
2019-12-30 21:53:06 +01:00
Vojtěch Trefný
966ba44a33
Add support for opening of BitLocker devices
...
It's now possible to open/activate the device using passphrase or
recovery passphrase. Support is limited to devices using encryption
modes supported in the DM crypt module (AES-XTS and AES-CBC).
2019-12-30 21:53:06 +01:00
Vojtěch Trefný
62c872eb49
Add support for parsing BitLocker metadata
...
Currently only support for metadata version 2 is implemented.
2019-12-30 21:53:06 +01:00
Milan Broz
434fee2e13
Add empty template for BITLK device type.
...
Also add DM_ZERO type for multi-segment mapping.
2019-12-30 21:53:06 +01:00