Spice Smartcard Manager

Spice Smartcard Manager — smartcard management

Stability Level

Stable, unless otherwise indicated

Synopsis

#include <smartcard-manager.h>

struct              SpiceSmartcardManager;
struct              SpiceSmartcardManagerClass;
                    SpiceSmartcardReader;

SpiceSmartcardManager * spice_smartcard_manager_get     (void);
gboolean            spice_smartcard_manager_insert_card (SpiceSmartcardManager *manager);
gboolean            spice_smartcard_manager_remove_card (SpiceSmartcardManager *manager);

gboolean            spice_smartcard_reader_is_software  (SpiceSmartcardReader *reader);

Object Hierarchy

  GObject
   +----SpiceSmartcardManager

Signals

  "card-inserted"                                  : Run First
  "card-removed"                                   : Run First
  "reader-added"                                   : Run First
  "reader-removed"                                 : Run First

Description

SpiceSmartcardManager monitors smartcard reader plugging/unplugging, and smartcard insertions/removals. It also provides methods to handle software smartcards (to emulate a smartcard reader/smartcard on the guest using 3 certificates available to the client).

Details

struct SpiceSmartcardManager

struct SpiceSmartcardManager;

struct SpiceSmartcardManagerClass

struct SpiceSmartcardManagerClass {
    GObjectClass parent_class;
    /* signals */
    void (*reader_added)(SpiceSmartcardManager *manager, SpiceSmartcardReader *reader);
    void (*reader_removed)(SpiceSmartcardManager *manager, SpiceSmartcardReader *reader);
    void (*card_inserted)(SpiceSmartcardManager *manager, SpiceSmartcardReader *reader);
    void (*card_removed)(SpiceSmartcardManager *manager, SpiceSmartcardReader *reader );
};

SpiceSmartcardReader

typedef struct _SpiceSmartcardReader SpiceSmartcardReader;

spice_smartcard_manager_get ()

SpiceSmartcardManager * spice_smartcard_manager_get     (void);

SpiceSmartcardManager is a singleton, use this function to get a pointer to it. A new SpiceSmartcardManager instance will be created the first time this function is called

Returns :

a weak reference to the SpiceSmartcardManager. [transfer none]

spice_smartcard_manager_insert_card ()

gboolean            spice_smartcard_manager_insert_card (SpiceSmartcardManager *manager);

Simulates the insertion of a smartcard in the guest. Valid certificates must have been set in "smartcard-certificates" for software smartcard support to work. At the moment, only one software smartcard reader is supported, that's why there is no parameter to indicate which reader to insert the card in.

manager :

a SpiceSmartcardManager

Returns :

TRUE if smartcard insertion was successfully simulated, FALSE if this failed, or if software smartcard support isn't enabled.

spice_smartcard_manager_remove_card ()

gboolean            spice_smartcard_manager_remove_card (SpiceSmartcardManager *manager);

Simulates the removal of a smartcard in the guest. At the moment, only one software smartcard reader is supported, that's why there is no parameter to indicate which reader to insert the card in.

manager :

a SpiceSmartcardManager

Returns :

TRUE if smartcard removal was successfully simulated, FALSE if this failed, or if software smartcard support isn't enabled.

spice_smartcard_reader_is_software ()

gboolean            spice_smartcard_reader_is_software  (SpiceSmartcardReader *reader);

Tests if reader is a software (emulated) smartcard reader.

reader :

a SpiceSmartcardReader

Returns :

TRUE if reader is a software (emulated) smartcard reader, FALSE otherwise

Signal Details

The "card-inserted" signal

void                user_function                      (SpiceSmartcardManager *manager,
                                                        VReader               *vreader,
                                                        gpointer               user_data)      : Run First

The "card-inserted" signal is emitted whenever a smartcard is inserted in a reader

manager :

the SpiceSmartcardManager that emitted the signal

vreader :

VReader boxed object corresponding to the reader a new card was inserted in

user_data :

user data set when the signal handler was connected.

The "card-removed" signal

void                user_function                      (SpiceSmartcardManager *manager,
                                                        VReader               *vreader,
                                                        gpointer               user_data)      : Run First

The "card-removed" signal is emitted whenever a smartcard was removed from a reader.

manager :

the SpiceSmartcardManager that emitted the signal

vreader :

VReader boxed object corresponding to the reader a card was removed from

user_data :

user data set when the signal handler was connected.

The "reader-added" signal

void                user_function                      (SpiceSmartcardManager *manager,
                                                        VReader               *vreader,
                                                        gpointer               user_data)      : Run First

The "reader-added" signal is emitted whenever a new smartcard reader (software or hardware) has been plugged in.

manager :

the SpiceSmartcardManager that emitted the signal

vreader :

VReader boxed object corresponding to the added reader

user_data :

user data set when the signal handler was connected.

The "reader-removed" signal

void                user_function                      (SpiceSmartcardManager *manager,
                                                        VReader               *vreader,
                                                        gpointer               user_data)      : Run First

The "reader-removed" signal is emitted whenever a smartcard reader (software or hardware) has been removed.

manager :

the SpiceSmartcardManager that emitted the signal

vreader :

VReader boxed object corresponding to the removed reader

user_data :

user data set when the signal handler was connected.