signon  8.58
CryptoManager Class Reference

Encrypted file system manager. More...

#include <crypto-manager.h>

List of all members.

Public Types

enum  FileSystemType { Ext2 = 0, Ext3, Ext4 }
 Supported encrypted partion filesystem type. More...

Public Member Functions

bool initialize (const QVariantMap &configuration)
 CryptoManager (QObject *parent=0)
 Constructs a CryptoManager object with the given parent.
 ~CryptoManager ()
 Destroys a CryptoManager object.
bool setupFileSystem ()
 Sets up an encrypted file system.
bool deleteFileSystem ()
 Deletes the encrypted file system.
bool mountFileSystem ()
 Mounts the encrypted file system.
bool unmountFileSystem ()
 Unmounts the encrypted file system.
QString fileSystemMountPath () const
QStringList backupFiles () const
bool encryptionKeyInUse (const SignOn::Key &key)
bool addEncryptionKey (const SignOn::Key &key, const SignOn::Key &existingKey)
 Adds an encryption key to one of the available keyslots of the LUKS partition's header.
bool removeEncryptionKey (const SignOn::Key &key, const SignOn::Key &remainingKey)
 Releases an existing used keyslot in the LUKS partition's header.

Detailed Description

Encrypted file system manager.

Uses cryptsetup and LUKS.

Definition at line 45 of file crypto-manager.h.


Member Enumeration Documentation

Supported encrypted partion filesystem type.

Enumerator:
Ext2 
Ext3 
Ext4 

Definition at line 70 of file crypto-manager.h.


Constructor & Destructor Documentation

CryptoManager::CryptoManager ( QObject *  parent = 0)

Constructs a CryptoManager object with the given parent.

Parameters:
parent

Definition at line 82 of file crypto-manager.cpp.

References BLAME, and CryptsetupHandler::loadDmMod().

Destroys a CryptoManager object.

Definition at line 97 of file crypto-manager.cpp.

References unmountFileSystem().


Member Function Documentation

bool CryptoManager::addEncryptionKey ( const SignOn::Key &  key,
const SignOn::Key &  existingKey 
)

Adds an encryption key to one of the available keyslots of the LUKS partition's header.

Use the `keyTag` parameter in order to store and keep track of the key.

See also:
isEncryptionKey(const SignOn::Key &key)
Parameters:
keyThe key to be added/set.
existingKeyAn already existing key.
Returns:
true, if succeeded, false otherwise.

Definition at line 437 of file crypto-manager.cpp.

References CryptsetupHandler::addKeySlot(), and TRACE.

QStringList CryptoManager::backupFiles ( ) const
Returns:
the list of files which need to be backed up.

Definition at line 399 of file crypto-manager.cpp.

Deletes the encrypted file system.

Returns:
true, if successful, false otherwise.
Warning:
use this carefully, this will lead to data loss.
Todo:
finish implemetation.

Definition at line 383 of file crypto-manager.cpp.

References unmountFileSystem().

bool CryptoManager::encryptionKeyInUse ( const SignOn::Key &  key)
Attention:
if the file system is not mounted and the encryption key can access it, this method will cause the file system to be mounted.
Returns:
whether the key `key` is occupying a keyslot in the encrypted file system.

Definition at line 470 of file crypto-manager.cpp.

References mountFileSystem().

Returns:
the path of the mounted file system.

Definition at line 394 of file crypto-manager.cpp.

bool CryptoManager::initialize ( const QVariantMap &  configuration)

Definition at line 102 of file crypto-manager.cpp.

References TRACE.

bool CryptoManager::removeEncryptionKey ( const SignOn::Key &  key,
const SignOn::Key &  remainingKey 
)

Releases an existing used keyslot in the LUKS partition's header.

Parameters:
keyThe key to be removed.
remainingKeyAnother valid key
Attention:
The system cannot remain keyless.
Returns:
true, if succeeded, false otherwise.

Definition at line 455 of file crypto-manager.cpp.

References CryptsetupHandler::removeKeySlot(), and TRACE.

Sets up an encrypted file system.

This method is to be called only at the file system creation/formatting. Use mountFileSystem() on subsequent uses. This method handles also the mounting so when using it, a call to mountFileSystem() is not necessary.

Returns:
true, if successful, false otherwise.
Warning:
this method will always format the file system, use carefully.

Definition at line 175 of file crypto-manager.cpp.

References BLAME, CryptsetupHandler::closeFile(), PartitionHandler::createPartitionFile(), DEVICE_MAPPER_DIR, LosetupHandler::findAvailableDevice(), CryptsetupHandler::formatFile(), PartitionHandler::formatPartitionFile(), CryptsetupHandler::loadDmMod(), CryptsetupHandler::openFile(), LosetupHandler::setupDevice(), TRACE, and unmountFileSystem().

Unmounts the encrypted file system.

Returns:
true, if successful, false otherwise.

Definition at line 345 of file crypto-manager.cpp.

References CryptsetupHandler::closeFile(), LosetupHandler::releaseDevice(), and TRACE.

Referenced by deleteFileSystem(), mountFileSystem(), setupFileSystem(), and ~CryptoManager().


The documentation for this class was generated from the following files: