GSignondStorageManager

GSignondStorageManager — manages encrypted disk storage for storing the secret database

Synopsis

#include <gsignond/gsignond-plugin-interface.h>

struct              GSignondStorageManager;
struct              GSignondStorageManagerClass;
gboolean            gsignond_storage_manager_delete_storage
                                                        (GSignondStorageManager *self);
gboolean            gsignond_storage_manager_filesystem_is_mounted
                                                        (GSignondStorageManager *self);
gboolean            gsignond_storage_manager_initialize_storage
                                                        (GSignondStorageManager *self);
const gchar *       gsignond_storage_manager_mount_filesystem
                                                        (GSignondStorageManager *self);
gboolean            gsignond_storage_manager_storage_is_initialized
                                                        (GSignondStorageManager *self);
gboolean            gsignond_storage_manager_unmount_filesystem
                                                        (GSignondStorageManager *self);

Object Hierarchy

  GObject
   +----GSignondStorageManager

Properties

  "config"                   GSignondConfig*       : Read / Write / Construct Only

Description

GSignondStorageManager manages encrypted disk storage for storing the databases. The default implementation maintains a simple per-user directory accessible only to root and gsignond group, but gSSO can be configured to use a custom extension that provides a subclassed implementation of GSignondStorageManager (see GSignondExtension for instructions and pointers to examples).

Details

struct GSignondStorageManager

struct GSignondStorageManager;

Opaque GSignondStorageManager data structure.


struct GSignondStorageManagerClass

struct GSignondStorageManagerClass {
    GObjectClass parent_class;

    gboolean (*initialize_storage) (GSignondStorageManager *self);
    gboolean (*delete_storage) (GSignondStorageManager *self);
    gboolean (*storage_is_initialized) (GSignondStorageManager *self);
    const gchar * (*mount_filesystem) (GSignondStorageManager *self);
    gboolean (*unmount_filesystem) (GSignondStorageManager *self);
    gboolean (*filesystem_is_mounted) (GSignondStorageManager *self);
};

GSignondStorageManagerClass class containing pointers to class methods.

GObjectClass parent_class;

parent class.

initialize_storage ()

an implementation of gsignond_storage_manager_initialize_storage()

delete_storage ()

an implementation of gsignond_storage_manager_delete_storage()

storage_is_initialized ()

an implementation of gsignond_storage_manager_storage_is_initialized()

mount_filesystem ()

an implementation of gsignond_storage_manager_mount_filesystem()

unmount_filesystem ()

an implementation of gsignond_storage_manager_unmount_filesystem()

filesystem_is_mounted ()

an implementation of gsignond_storage_manager_filesystem_is_mounted()

gsignond_storage_manager_delete_storage ()

gboolean            gsignond_storage_manager_delete_storage
                                                        (GSignondStorageManager *self);

Destroys all the encryption keys and wipes the storage. gsignond_wipe_directory() is typically used for the latter.

self :

object instance.

Returns :

success?

gsignond_storage_manager_filesystem_is_mounted ()

gboolean            gsignond_storage_manager_filesystem_is_mounted
                                                        (GSignondStorageManager *self);

Checks if the encrypted storage filesystem is currently mounted.

self :

object instance.

Returns :

filesystem is currently mounted?

gsignond_storage_manager_initialize_storage ()

gboolean            gsignond_storage_manager_initialize_storage
                                                        (GSignondStorageManager *self);

Initialize encryption storage. This means making sure that the necessary directories exist and are accessible.

self :

object instance.

Returns :

success?

gsignond_storage_manager_mount_filesystem ()

const gchar *       gsignond_storage_manager_mount_filesystem
                                                        (GSignondStorageManager *self);

Mounts an encrypted storage and returns the filesystem path of the storage mount point. This path will be used to access the secret database via GSignondSecretStorage.

The default implemenation does nothing, and immediately returns the path for the secret database.

self :

object instance.

Returns :

path of the storage mount point. [transfer none]

gsignond_storage_manager_storage_is_initialized ()

gboolean            gsignond_storage_manager_storage_is_initialized
                                                        (GSignondStorageManager *self);

Checks if the storage has been initialized.

self :

object instance.

Returns :

storage has been initialized?

gsignond_storage_manager_unmount_filesystem ()

gboolean            gsignond_storage_manager_unmount_filesystem
                                                        (GSignondStorageManager *self);

Unmounts a previously mounted encrypted storage filesystem.

self :

object instance.

Returns :

success?

Property Details

The "config" property

  "config"                   GSignondConfig*       : Read / Write / Construct Only

Configuration object.