cryptsetup
2.4.3
About: cryptsetup is a utility used to conveniently setup disk encryption based on the dm-crypt kernel module. These include plain dm-crypt volumes, LUKS volumes, loop-AES and TrueCrypt compatible format.
![]() ![]() |
#include <stddef.h>
#include <stdint.h>
#include <stdbool.h>
Go to the source code of this file.
Data Structures | |
struct | bitlk_vmk |
struct | bitlk_fvek |
struct | bitlk_metadata |
Macros | |
#define | BITLK_NONCE_SIZE 12 |
#define | BITLK_SALT_SIZE 16 |
#define | BITLK_VMK_MAC_TAG_SIZE 16 |
#define | BITLK_STATE_NORMAL 0x0004 |
Functions | |
int | BITLK_read_sb (struct crypt_device *cd, struct bitlk_metadata *params) |
int | BITLK_dump (struct crypt_device *cd, struct device *device, struct bitlk_metadata *params) |
int | BITLK_get_volume_key (struct crypt_device *cd, const char *password, size_t passwordLen, const struct bitlk_metadata *params, struct volume_key **open_fvek_key) |
int | BITLK_activate_by_passphrase (struct crypt_device *cd, const char *name, const char *password, size_t passwordLen, const struct bitlk_metadata *params, uint32_t flags) |
int | BITLK_activate_by_volume_key (struct crypt_device *cd, const char *name, const char *volume_key, size_t volume_key_size, const struct bitlk_metadata *params, uint32_t flags) |
void | BITLK_bitlk_fvek_free (struct bitlk_fvek *fvek) |
void | BITLK_bitlk_vmk_free (struct bitlk_vmk *vmk) |
void | BITLK_bitlk_metadata_free (struct bitlk_metadata *params) |
enum BITLKEncryptionType |
enum BITLKFVEEntryType |
enum BITLKFVEEntryValue |
enum BITLKVMKProtection |
int BITLK_activate_by_passphrase | ( | struct crypt_device * | cd, |
const char * | name, | ||
const char * | password, | ||
size_t | passwordLen, | ||
const struct bitlk_metadata * | params, | ||
uint32_t | flags | ||
) |
Definition at line 1408 of file bitlk.c.
References _activate(), _activate_check(), BITLK_get_volume_key(), crypt_free_volume_key(), name, and NULL.
Referenced by _activate_by_passphrase().
int BITLK_activate_by_volume_key | ( | struct crypt_device * | cd, |
const char * | name, | ||
const char * | volume_key, | ||
size_t | volume_key_size, | ||
const struct bitlk_metadata * | params, | ||
uint32_t | flags | ||
) |
Definition at line 1436 of file bitlk.c.
References _activate(), _activate_check(), crypt_alloc_volume_key(), crypt_free_volume_key(), name, and NULL.
Referenced by crypt_activate_by_volume_key().
void BITLK_bitlk_fvek_free | ( | struct bitlk_fvek * | fvek | ) |
Definition at line 432 of file bitlk.c.
References crypt_free_volume_key(), and bitlk_fvek::vk.
Referenced by BITLK_bitlk_metadata_free().
void BITLK_bitlk_metadata_free | ( | struct bitlk_metadata * | params | ) |
Definition at line 457 of file bitlk.c.
References BITLK_bitlk_fvek_free(), BITLK_bitlk_vmk_free(), bitlk_metadata::description, bitlk_metadata::fvek, bitlk_metadata::guid, and bitlk_metadata::vmks.
Referenced by crypt_free_type().
void BITLK_bitlk_vmk_free | ( | struct bitlk_vmk * | vmk | ) |
Definition at line 441 of file bitlk.c.
References crypt_free_volume_key(), bitlk_vmk::guid, bitlk_vmk::name, bitlk_vmk::next, NULL, and bitlk_vmk::vk.
Referenced by BITLK_bitlk_metadata_free(), and BITLK_read_sb().
int BITLK_dump | ( | struct crypt_device * | cd, |
struct device * | device, | ||
struct bitlk_metadata * | params | ||
) |
Definition at line 759 of file bitlk.c.
References BITLK_FVE_METADATA_SIZE, bitlk_metadata::cipher, bitlk_metadata::cipher_mode, bitlk_metadata::creation_time, bitlk_metadata::description, device_path(), bitlk_metadata::fvek, get_vmk_protection_string(), bitlk_vmk::guid, bitlk_metadata::guid, hexprint(), bitlk_metadata::key_size, volume_key::keylength, log_std, bitlk_metadata::metadata_offset, bitlk_metadata::metadata_version, bitlk_vmk::name, bitlk_vmk::next, volume_key::next, NULL, bitlk_vmk::protection, bitlk_vmk::salt, bitlk_metadata::sector_size, bitlk_metadata::togo, bitlk_vmk::vk, bitlk_fvek::vk, bitlk_metadata::vmks, bitlk_metadata::volume_header_offset, and bitlk_metadata::volume_header_size.
Referenced by crypt_dump().
int BITLK_get_volume_key | ( | struct crypt_device * | cd, |
const char * | password, | ||
size_t | passwordLen, | ||
const struct bitlk_metadata * | params, | ||
struct volume_key ** | open_fvek_key | ||
) |
Definition at line 1119 of file bitlk.c.
References bitlk_kdf(), BITLK_NONCE_SIZE, BITLK_PROTECTION_PASSPHRASE, BITLK_PROTECTION_RECOVERY_PASSPHRASE, BITLK_PROTECTION_STARTUP_KEY, BITLK_VMK_MAC_TAG_SIZE, crypt_free_volume_key(), decrypt_key(), bitlk_metadata::fvek, get_recovery_key(), get_startup_key(), get_vmk_protection_string(), volume_key::key, volume_key::keylength, log_dbg, bitlk_vmk::mac_tag, bitlk_fvek::mac_tag, bitlk_vmk::next, bitlk_vmk::nonce, bitlk_fvek::nonce, NULL, bitlk_vmk::protection, bitlk_vmk::salt, bitlk_vmk::vk, bitlk_fvek::vk, and bitlk_metadata::vmks.
Referenced by BITLK_activate_by_passphrase(), and crypt_volume_key_get().
int BITLK_read_sb | ( | struct crypt_device * | cd, |
struct bitlk_metadata * | params | ||
) |
Definition at line 469 of file bitlk.c.
References _, BITLK_bitlk_vmk_free(), BITLK_BOOTCODE_V1, BITLK_BOOTCODE_V2, BITLK_ENCRYPTION_TYPE_EOW, BITLK_ENCRYPTION_TYPE_NORMAL, BITLK_ENCRYPTION_TYPE_UNKNOWN, BITLK_ENTRY_HEADER_LEN, BITLK_ENTRY_TYPE_DESCRIPTION, BITLK_ENTRY_TYPE_FVEK, BITLK_ENTRY_TYPE_VMK, BITLK_ENTRY_TYPE_VOLUME_HEADER, BITLK_FVE_METADATA_HEADER_LEN, BITLK_FVE_METADATA_HEADERS_LEN, BITLK_GUID_EOW, BITLK_GUID_NORMAL, BITLK_HEADER_METADATA_OFFSET, BITLK_HEADER_METADATA_OFFSET_TOGO, BITLK_NONCE_SIZE, BITLK_SIGNATURE, BITLK_SIGNATURE_TOGO, BITLK_STATE_NORMAL, BITLK_VMK_HEADER_LEN, BITLK_VMK_MAC_TAG_SIZE, bitlk_signature::boot_code, bitlk_metadata::cipher, bitlk_metadata::cipher_mode, convert_to_utf8(), bitlk_fve_metadata::creation_time, bitlk_metadata::creation_time, crypt_alloc_volume_key(), crypt_data_device(), crypt_metadata_device(), bitlk_fve_metadata::curr_state, bitlk_metadata::description, device_alignment(), device_block_size(), device_open(), device_path(), bitlk_fve_metadata::encryption, filetime_to_unixtime(), bitlk_superblock::fve_offset, bitlk_fve_metadata::fve_version, bitlk_metadata::fvek, get_bitlk_type_string(), get_vmk_protection(), bitlk_superblock::guid, bitlk_fve_metadata::guid, bitlk_entry_vmk::guid, bitlk_vmk::guid, bitlk_metadata::guid, guid_to_string(), bitlk_metadata::key_size, le16_to_cpu, le32_to_cpu, le64_to_cpu, log_dbg, log_err, bitlk_fvek::mac_tag, bitlk_metadata::metadata_offset, bitlk_fve_metadata::metadata_size, bitlk_metadata::metadata_version, bitlk_vmk::name, bitlk_vmk::next, bitlk_fve_metadata::next_state, bitlk_fvek::nonce, NULL, bitlk_entry_header_block::offset, parse_vmk_entry(), bitlk_entry_vmk::protection, bitlk_vmk::protection, read_lseek_blockwise(), bitlk_signature::sector_size, bitlk_metadata::sector_size, SECTOR_SIZE, bitlk_signature::signature, bitlk_fve_metadata::signature, bitlk_entry_header_block::size, bitlk_metadata::state, bitlk_metadata::togo, bitlk_metadata::type, UUID_STR_LEN, bitlk_fvek::vk, bitlk_metadata::vmks, bitlk_metadata::volume_header_offset, and bitlk_metadata::volume_header_size.
Referenced by _crypt_load_bitlk().