libstorage-ng
Loading...
Searching...
No Matches
storage::Encryption Class Reference

An encryption layer on a blk device. More...

#include <Encryption.h>

Inheritance diagram for storage::Encryption:
[legend]
Collaboration diagram for storage::Encryption:
[legend]

Public Member Functions

EncryptionType get_type () const
 Get the encryption type.
void set_type (EncryptionType type)
 Set the encryption type.
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.
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.
const std::string & get_cipher () const
 Get the cipher.
void set_cipher (const std::string &cipher)
 Set the cipher.
unsigned int get_key_size () const
 Get the key size in bytes.
void set_key_size (unsigned int key_size)
 Set the key size in bytes.
const std::string & get_pbkdf () const
 Get the PBKDF (of the first used keyslot).
void set_pbkdf (const std::string &pbkdf)
 Set the PBKDF.
const std::string & get_integrity () const
 Get the integrity.
void set_integrity (const std::string &integrity)
 Set the integrity.
MountByType get_mount_by () const
 Get the mount-by method.
void set_mount_by (MountByType mount_by)
 Set the mount-by method.
void set_default_mount_by ()
 Set the mount-by method to the global default, see Storage::get_default_mount_by().
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.
BlkDeviceget_blk_device ()
 Return underlying blk device.
const BlkDeviceget_blk_device () const
 Return underlying blk device.
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.
Impl & get_impl ()
const Impl & get_impl () const
virtual Encryptionclone () const override
 Encryption (Impl *impl)
Public Member Functions inherited from storage::BlkDevice
const std::string & get_name () const
void set_name (const std::string &name)
const Regionget_region () const
void set_region (const Region &region)
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.
std::string get_size_string () const
 Returns the size of the block device as a localised string.
const Topologyget_topology () const
 Get the topology.
void set_topology (const Topology &topology)
 Set the topology.
bool is_active () const
bool is_read_only () const
 Return whether the block device is read-only.
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.
const std::vector< std::string > & get_udev_ids () const
 Return the names of the udev by-id links of the blk device.
bool is_usable_as_blk_device () const
 Checks whether the blk device is in general usable as a blk device.
RemoveInfo detect_remove_info () const
 Check whether the device can be removed.
const std::string & get_dm_table_name () const
 Return device-mapper table name (dm-table-name for short).
void set_dm_table_name (const std::string &dm_table_name)
 Set the device-mapper table name (dm-table-name for short).
BlkFilesystemcreate_blk_filesystem (FsType fs_type)
 Creates a block filesystem on the block device.
bool has_blk_filesystem () const
 Return whether the block device has a block filesystem.
BlkFilesystemget_blk_filesystem ()
 Return the block filesystem of the block device.
const BlkFilesystemget_blk_filesystem () const
 Return the block filesystem of the block device.
BlkFilesystemcreate_filesystem (FsType fs_type) ST_DEPRECATED
 Creates a block filesystem on the block device.
bool has_filesystem () const ST_DEPRECATED
 Return whether the block device has a block filesystem.
BlkFilesystemget_filesystem () ST_DEPRECATED
 Return the block filesystem of the block device.
const BlkFilesystemget_filesystem () const ST_DEPRECATED
 Return the block filesystem of the block device.
Encryptioncreate_encryption (const std::string &dm_table_name) ST_DEPRECATED
 Creates an encryption device on the blk device.
Encryptioncreate_encryption (const std::string &dm_table_name, EncryptionType type)
 Creates an encryption device on the blk device.
void remove_encryption ()
 Removes an encryption device on the blk device.
bool has_encryption () const
 Return whether the block device has an Encryption.
Encryptionget_encryption ()
 Return the Encryption of the block device.
const Encryptionget_encryption () const
 Return the Encryption of the block device.
Bcachecreate_bcache (const std::string &name)
 Creates a Bcache on the blk device.
bool has_bcache () const
 Return whether the block device has a BCache.
Bcacheget_bcache ()
 Return the Bcache of the block device.
const Bcacheget_bcache () const
 Return the Bcache of the block device.
BcacheCsetcreate_bcache_cset ()
 Creates a BcacheCset on the blk device.
bool has_bcache_cset () const
 Return whether the block device has a BcacheCset.
BcacheCsetget_bcache_cset ()
 Return the BcacheCset of the block device.
const BcacheCsetget_bcache_cset () const
 Return the BcacheCset of the block device.
std::vector< MountByTypepossible_mount_bys () const
 Returns the possible mount-by methods to reference the block device.
Impl & get_impl ()
const Impl & get_impl () const
Public Member Functions inherited from storage::Device
sid_t get_sid () const
 Return the storage id (sid) of the device.
bool operator== (const Device &rhs) const
bool operator!= (const Device &rhs) const
Devicecopy_to_devicegraph (Devicegraph *devicegraph) const
 Copies the device to the devicegraph.
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.
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.
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.
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.
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.
Devicegraphget_devicegraph ()
 Return the devicegraph the device belongs to.
const Devicegraphget_devicegraph () const
 Return the devicegraph the device belongs to.
Impl & get_impl ()
const Impl & get_impl () const
void save (xmlNode *node) const ST_DEPRECATED

Static Public Member Functions

static Encryptioncreate (Devicegraph *devicegraph, const std::string &name)
 Create a device of type Encryption.
static Encryptionload (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.
Static Public Member Functions inherited from storage::BlkDevice
static std::vector< BlkDevice * > get_all (Devicegraph *devicegraph)
 Get all BlkDevices.
static std::vector< const BlkDevice * > get_all (const Devicegraph *devicegraph)
 Get all BlkDevices.
static BlkDevicefind_by_name (Devicegraph *devicegraph, const std::string &name)
 Find a block device by its name.
static const BlkDevicefind_by_name (const Devicegraph *devicegraph, const std::string &name)
 Find a block device by its name.
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.
static BlkDevicefind_by_any_name (Devicegraph *devicegraph, const std::string &name) ST_DEPRECATED
 Find a block device by any name including any symbolic links in /dev.
static BlkDevicefind_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.
static const BlkDevicefind_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.
static const BlkDevicefind_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.
static bool compare_by_dm_table_name (const BlkDevice *lhs, const BlkDevice *rhs)
 Compare (less than) two BlkDevices by DM table name.
Static Public Member Functions inherited from storage::Device
static std::vector< Device * > get_all (Devicegraph *devicegraph)
 Get all Devices.
static std::vector< const Device * > get_all (const Devicegraph *devicegraph)
 Get all Devices.
static bool compare_by_sid (const Device *lhs, const Device *rhs)
 Compare (less than) two Devices by sid.
static bool compare_by_name (const Device *lhs, const Device *rhs)
 Compare (less than) two Devices by name.

Additional Inherited Members

Protected Member Functions inherited from storage::BlkDevice
 BlkDevice (Impl *impl)
Protected Member Functions inherited from storage::Device
 Device (Impl *impl)
void create (Devicegraph *devicegraph) ST_DEPRECATED
 Create a device in the devicegraph.
void load (Devicegraph *devicegraph) ST_DEPRECATED

Detailed Description

An encryption layer on a blk device.

Member Function Documentation

◆ clone()

virtual Encryption * storage::Encryption::clone ( ) const
overridevirtual

Implements storage::Device.

◆ create()

Encryption * storage::Encryption::create ( Devicegraph * devicegraph,
const std::string & name )
static

Create a device of type Encryption.

Usually this function is not called directly. Instead BlkDevice::create_encryption() is called.

See also
Device::create(Devicegraph*)

◆ get_all()

std::vector< const Encryption * > storage::Encryption::get_all ( const Devicegraph * devicegraph)
static

Get all Encryption objects of the devicegraph.

◆ get_blk_device() [1/2]

BlkDevice * storage::Encryption::get_blk_device ( )

Return underlying blk device.

Exceptions
Exception

◆ get_blk_device() [2/2]

const BlkDevice * storage::Encryption::get_blk_device ( ) const

Return underlying blk device.

Exceptions
Exception

◆ get_cipher()

const std::string & storage::Encryption::get_cipher ( ) const

Get the cipher.

Currently only supported for LUKS.

◆ get_integrity()

const std::string & storage::Encryption::get_integrity ( ) const

Get the integrity.

For now we only expect AEAD.

Currently only supported for LUKS2 (experimental).

◆ get_key_size()

unsigned int storage::Encryption::get_key_size ( ) const

Get the key size in bytes.

Currently only supported for LUKS.

◆ get_mount_by()

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.

◆ get_pbkdf()

const std::string & storage::Encryption::get_pbkdf ( ) const

Get the PBKDF (of the first used keyslot).

Currently only supported for LUKS2.

◆ set_cipher()

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.

◆ set_default_mount_by()

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.

◆ set_integrity()

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).

◆ set_key_file()

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.

See also
set_use_key_file_in_commit(bool)

◆ set_key_size()

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.

◆ set_mount_by()

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.

◆ set_open_options()

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.

◆ set_pbkdf()

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.

◆ set_type()

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.

◆ set_use_key_file_in_commit()

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.


The documentation for this class was generated from the following file:
  • /home/abuild/rpmbuild/BUILD/libstorage-ng-4.5.253-build/libstorage-ng-4.5.253/storage/Devices/Encryption.h