libstorage-ng
|
An encryption layer on a blk device. More...
#include <Encryption.h>
Public Member Functions | |
EncryptionType | get_type () const |
Get the encryption type. | |
void | set_type (EncryptionType type) |
Set the encryption type. More... | |
const std::string & | get_password () const |
Get the encryption password. | |
void | set_password (const std::string &password) |
Set the encryption password. | |
const std::string & | get_key_file () const |
Get the key file. | |
void | set_key_file (const std::string &key_file) |
Set the key file. More... | |
bool | is_use_key_file_in_commit () const |
Get whether the key file is used in commit. | |
void | set_use_key_file_in_commit (bool use_key_file_in_commit) |
Set whether the key file is used in commit. More... | |
const std::string & | get_cipher () const |
Get the cipher. More... | |
void | set_cipher (const std::string &cipher) |
Set the cipher. More... | |
unsigned int | get_key_size () const |
Get the key size in bytes. More... | |
void | set_key_size (unsigned int key_size) |
Set the key size in bytes. More... | |
const std::string & | get_pbkdf () const |
Get the PBKDF (of the first used keyslot). More... | |
void | set_pbkdf (const std::string &pbkdf) |
Set the PBKDF. More... | |
const std::string & | get_integrity () const |
Get the integrity. More... | |
void | set_integrity (const std::string &integrity) |
Set the integrity. More... | |
MountByType | get_mount_by () const |
Get the mount-by method. More... | |
void | set_mount_by (MountByType mount_by) |
Set the mount-by method. More... | |
void | set_default_mount_by () |
Set the mount-by method to the global default, see Storage::get_default_mount_by(). More... | |
const std::vector< std::string > & | get_crypt_options () const |
Get options (fourth field) in /etc/crypttab. | |
void | set_crypt_options (const std::vector< std::string > &crypt_options) |
Set options (fourth field) in /etc/crypttab. | |
bool | is_in_etc_crypttab () const |
Query whether the LUKS device is present (probed devicegraph) or will be present (staging devicegraph) in /etc/crypttab. | |
void | set_in_etc_crypttab (bool in_etc_crypttab) |
Set whether the LUKS device will be present in /etc/crypttab. | |
BlkDevice * | get_blk_device () |
Return underlying blk device. More... | |
const BlkDevice * | get_blk_device () const |
Return underlying blk device. More... | |
const std::string & | get_open_options () const |
Get extra options for open calls. | |
void | set_open_options (const std::string &open_options) |
Set extra options for open calls. More... | |
Impl & | get_impl () |
const Impl & | get_impl () const |
virtual Encryption * | clone () const override |
Encryption (Impl *impl) | |
![]() | |
const std::string & | get_name () const |
void | set_name (const std::string &name) |
const Region & | get_region () const |
void | set_region (const Region ®ion) |
unsigned long long | get_size () const |
Returns the size of the block device. | |
void | set_size (unsigned long long size) |
Set the size of the block device. More... | |
std::string | get_size_string () const |
Returns the size of the block device as a localised string. More... | |
const Topology & | get_topology () const |
Get the topology. | |
void | set_topology (const Topology &topology) |
Set the topology. More... | |
bool | is_active () const |
bool | is_read_only () const |
Return whether the block device is read-only. More... | |
const std::string & | get_sysfs_name () const |
const std::string & | get_sysfs_path () const |
const std::vector< std::string > & | get_udev_paths () const |
Return the names of the udev by-path links of the blk device. More... | |
const std::vector< std::string > & | get_udev_ids () const |
Return the names of the udev by-id links of the blk device. More... | |
bool | is_usable_as_blk_device () const |
Checks whether the blk device is in general usable as a blk device. More... | |
RemoveInfo | detect_remove_info () const |
Check whether the device can be removed. More... | |
const std::string & | get_dm_table_name () const |
Return device-mapper table name (dm-table-name for short). More... | |
void | set_dm_table_name (const std::string &dm_table_name) |
Set the device-mapper table name (dm-table-name for short). More... | |
BlkFilesystem * | create_blk_filesystem (FsType fs_type) |
Creates a block filesystem on the block device. More... | |
bool | has_blk_filesystem () const |
Return whether the block device has a block filesystem. | |
BlkFilesystem * | get_blk_filesystem () |
Return the block filesystem of the block device. More... | |
const BlkFilesystem * | get_blk_filesystem () const |
Return the block filesystem of the block device. More... | |
BlkFilesystem * | create_filesystem (FsType fs_type) ST_DEPRECATED |
Creates a block filesystem on the block device. More... | |
bool | has_filesystem () const ST_DEPRECATED |
Return whether the block device has a block filesystem. More... | |
BlkFilesystem * | get_filesystem () ST_DEPRECATED |
Return the block filesystem of the block device. More... | |
const BlkFilesystem * | get_filesystem () const ST_DEPRECATED |
Return the block filesystem of the block device. More... | |
Encryption * | create_encryption (const std::string &dm_table_name) ST_DEPRECATED |
Creates an encryption device on the blk device. More... | |
Encryption * | create_encryption (const std::string &dm_table_name, EncryptionType type) |
Creates an encryption device on the blk device. More... | |
void | remove_encryption () |
Removes an encryption device on the blk device. More... | |
bool | has_encryption () const |
Return whether the block device has an Encryption. | |
Encryption * | get_encryption () |
Return the Encryption of the block device. More... | |
const Encryption * | get_encryption () const |
Return the Encryption of the block device. More... | |
Bcache * | create_bcache (const std::string &name) |
Creates a Bcache on the blk device. More... | |
bool | has_bcache () const |
Return whether the block device has a BCache. | |
Bcache * | get_bcache () |
Return the Bcache of the block device. More... | |
const Bcache * | get_bcache () const |
Return the Bcache of the block device. More... | |
BcacheCset * | create_bcache_cset () |
Creates a BcacheCset on the blk device. More... | |
bool | has_bcache_cset () const |
Return whether the block device has a BcacheCset. | |
BcacheCset * | get_bcache_cset () |
Return the BcacheCset of the block device. More... | |
const BcacheCset * | get_bcache_cset () const |
Return the BcacheCset of the block device. More... | |
std::vector< MountByType > | possible_mount_bys () const |
Returns the possible mount-by methods to reference the block device. More... | |
Impl & | get_impl () |
const Impl & | get_impl () const |
![]() | |
sid_t | get_sid () const |
Return the storage id (sid) of the device. More... | |
bool | operator== (const Device &rhs) const |
bool | operator!= (const Device &rhs) const |
Device * | copy_to_devicegraph (Devicegraph *devicegraph) const |
Copies the device to the devicegraph. More... | |
bool | exists_in_devicegraph (const Devicegraph *devicegraph) const |
Checks if the device exists in the devicegraph. | |
bool | exists_in_probed () const |
Checks if the device exists in the probed devicegraph. | |
bool | exists_in_staging () const |
Checks if the device exists in the staging devicegraph. | |
bool | exists_in_system () const |
Checks if the device exists in the system devicegraph. | |
std::string | get_displayname () const |
ResizeInfo | detect_resize_info () const |
Detect the resize info of the device. More... | |
bool | has_children () const |
size_t | num_children () const |
bool | has_parents () const |
size_t | num_parents () const |
std::vector< Device * > | get_children () |
std::vector< const Device * > | get_children () const |
std::vector< Device * > | get_children (View view) |
Get all children of the device. | |
std::vector< const Device * > | get_children (View view) const |
Get all children of the device. More... | |
std::vector< Device * > | get_parents () |
std::vector< const Device * > | get_parents () const |
std::vector< Device * > | get_parents (View view) |
Get all parents of the device. | |
std::vector< const Device * > | get_parents (View view) const |
Get all parents of the device. More... | |
std::vector< Device * > | get_siblings (bool itself) |
std::vector< const Device * > | get_siblings (bool itself) const |
std::vector< Device * > | get_descendants (bool itself) |
std::vector< const Device * > | get_descendants (bool itself) const |
std::vector< Device * > | get_descendants (bool itself, View view) |
std::vector< const Device * > | get_descendants (bool itself, View view) const |
std::vector< Device * > | get_ancestors (bool itself) |
std::vector< const Device * > | get_ancestors (bool itself) const |
std::vector< Device * > | get_leaves (bool itself) |
std::vector< const Device * > | get_leaves (bool itself) const |
std::vector< Device * > | get_roots (bool itself) |
std::vector< const Device * > | get_roots (bool itself) const |
std::vector< Holder * > | get_in_holders () |
std::vector< const Holder * > | get_in_holders () const |
std::vector< Holder * > | get_out_holders () |
std::vector< const Holder * > | get_out_holders () const |
void | remove_descendants () ST_DEPRECATED |
void | remove_descendants (View view) |
Remove all descendants of the device. More... | |
const std::map< std::string, std::string > & | get_userdata () const |
Return the userdata of the device. | |
void | set_userdata (const std::map< std::string, std::string > &userdata) |
Set the userdata of the device. | |
std::string | get_name_sort_key () const |
Get a sort-key based on the device name. More... | |
Devicegraph * | get_devicegraph () |
Return the devicegraph the device belongs to. | |
const Devicegraph * | get_devicegraph () const |
Return the devicegraph the device belongs to. More... | |
Impl & | get_impl () |
const Impl & | get_impl () const |
void | save (xmlNode *node) const ST_DEPRECATED |
Static Public Member Functions | |
static Encryption * | create (Devicegraph *devicegraph, const std::string &name) |
Create a device of type Encryption. More... | |
static Encryption * | load (Devicegraph *devicegraph, const xmlNode *node) |
static std::vector< Encryption * > | get_all (Devicegraph *devicegraph) |
Get all Encryption objects of the devicegraph. | |
static std::vector< const Encryption * > | get_all (const Devicegraph *devicegraph) |
Get all Encryption objects of the devicegraph. More... | |
![]() | |
static std::vector< BlkDevice * > | get_all (Devicegraph *devicegraph) |
Get all BlkDevices. | |
static std::vector< const BlkDevice * > | get_all (const Devicegraph *devicegraph) |
Get all BlkDevices. More... | |
static BlkDevice * | find_by_name (Devicegraph *devicegraph, const std::string &name) |
Find a block device by its name. More... | |
static const BlkDevice * | find_by_name (const Devicegraph *devicegraph, const std::string &name) |
Find a block device by its name. More... | |
static bool | exists_by_any_name (const Devicegraph *devicegraph, const std::string &name, SystemInfo &system_info) |
Check if a block device by any name including any symbolic links in /dev. More... | |
static BlkDevice * | find_by_any_name (Devicegraph *devicegraph, const std::string &name) ST_DEPRECATED |
Find a block device by any name including any symbolic links in /dev. More... | |
static BlkDevice * | find_by_any_name (Devicegraph *devicegraph, const std::string &name, SystemInfo &system_info) |
Find a block device by any name including any symbolic links in /dev. More... | |
static const BlkDevice * | find_by_any_name (const Devicegraph *devicegraph, const std::string &name) ST_DEPRECATED |
Find a block device by any name including any symbolic links in /dev. More... | |
static const BlkDevice * | find_by_any_name (const Devicegraph *devicegraph, const std::string &name, SystemInfo &system_info) |
Find a block device by any name including any symbolic links in /dev. More... | |
static bool | compare_by_dm_table_name (const BlkDevice *lhs, const BlkDevice *rhs) |
Compare (less than) two BlkDevices by DM table name. More... | |
![]() | |
static std::vector< Device * > | get_all (Devicegraph *devicegraph) |
Get all Devices. | |
static std::vector< const Device * > | get_all (const Devicegraph *devicegraph) |
Get all Devices. More... | |
static bool | compare_by_sid (const Device *lhs, const Device *rhs) |
Compare (less than) two Devices by sid. More... | |
static bool | compare_by_name (const Device *lhs, const Device *rhs) |
Compare (less than) two Devices by name. More... | |
Additional Inherited Members | |
![]() | |
BlkDevice (Impl *impl) | |
![]() | |
Device (Impl *impl) | |
void | create (Devicegraph *devicegraph) ST_DEPRECATED |
Create a device in the devicegraph. More... | |
void | load (Devicegraph *devicegraph) ST_DEPRECATED |
An encryption layer on a blk device.
|
static |
Create a device of type Encryption.
Usually this function is not called directly. Instead BlkDevice::create_encryption() is called.
|
static |
Get all Encryption objects of the devicegraph.
BlkDevice* storage::Encryption::get_blk_device | ( | ) |
Return underlying blk device.
Exception |
const BlkDevice* storage::Encryption::get_blk_device | ( | ) | const |
Return underlying blk device.
Exception |
const std::string& storage::Encryption::get_cipher | ( | ) | const |
Get the cipher.
Currently only supported for LUKS.
const std::string& storage::Encryption::get_integrity | ( | ) | const |
Get the integrity.
For now we only expect AEAD.
Currently only supported for LUKS2 (experimental).
unsigned int storage::Encryption::get_key_size | ( | ) | const |
Get the key size in bytes.
Currently only supported for LUKS.
MountByType storage::Encryption::get_mount_by | ( | ) | const |
Get the mount-by method.
For encrypted devices the mount-by method defines the name used for the second parameter in /etc/crypttab.
const std::string& storage::Encryption::get_pbkdf | ( | ) | const |
Get the PBKDF (of the first used keyslot).
Currently only supported for LUKS2.
void storage::Encryption::set_cipher | ( | const std::string & | cipher | ) |
Set the cipher.
If the cipher is empty the default of cryptsetup will be used during creation.
Currently only supported for LUKS.
void storage::Encryption::set_default_mount_by | ( | ) |
Set the mount-by method to the global default, see Storage::get_default_mount_by().
For encrypted devices the mount-by method defines the name used for the second parameter in /etc/crypttab.
void storage::Encryption::set_integrity | ( | const std::string & | integrity | ) |
Set the integrity.
If the integrity is set, this will restrict the number of allowed cipher algorithms. Also the expected value is "aead" or empty string. Technically this can be replaced as a boolean flag, but we maintain a string in case of future new options. The value is only used during creation.
Currently only supported for LUKS2 (experimental).
void storage::Encryption::set_key_file | ( | const std::string & | key_file | ) |
Set the key file.
Usually the key file is inserted in /etc/crypttab and used in commit.
When accessing the key file the rootprefix is not used. The key file is not created by libstorage-ng. Thus the key file can be a special device, e.g. /dev/urandom for swap.
void storage::Encryption::set_key_size | ( | unsigned int | key_size | ) |
Set the key size in bytes.
If the key size is zero the default of cryptsetup will be used during creation.
Currently only supported for LUKS.
void storage::Encryption::set_mount_by | ( | MountByType | mount_by | ) |
Set the mount-by method.
For encrypted devices the mount-by method defines the name used for the second parameter in /etc/crypttab.
void storage::Encryption::set_open_options | ( | const std::string & | open_options | ) |
Set extra options for open calls.
The options are injected as-is to the command so must be properly quoted.
void storage::Encryption::set_pbkdf | ( | const std::string & | pbkdf | ) |
Set the PBKDF.
Only used during creation. If empty the default of cryptsetup will be used.
Currently only supported for LUKS2.
void storage::Encryption::set_type | ( | EncryptionType | type | ) |
Set the encryption type.
So far only LUKS1, LUKS2 and PLAIN are allowed but it is not supported to switch between LUKS and PLAIN.
void storage::Encryption::set_use_key_file_in_commit | ( | bool | use_key_file_in_commit | ) |
Set whether the key file is used in commit.
Default is true. The key file must also be set to be used. If set to false the password must be set.