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);
GList *             spice_smartcard_manager_get_readers (SpiceSmartcardManager *manager);
gboolean            spice_smartcard_manager_insert_card (SpiceSmartcardManager *manager);
gboolean            spice_smartcard_manager_remove_card (SpiceSmartcardManager *manager);

gboolean            spice_smartcard_reader_is_software  (SpiceSmartcardReader *reader);
gboolean            spice_smartcard_reader_insert_card  (SpiceSmartcardReader *reader);
gboolean            spice_smartcard_reader_remove_card  (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_get_readers ()

GList *             spice_smartcard_manager_get_readers (SpiceSmartcardManager *manager);

manager: a SpiceSmartcardManager

Gets the list of smartcard readers that are currently available, they can be either software (emulated) readers, or hardware ones.

Returns :

a newly allocated list of SpiceSmartcardReader instances, or NULL if none were found. When no longer needed, the list must be freed after unreferencing its elements with g_boxed_free(). [element-type SpiceSmartcardReader][transfer full]

Since 0.20


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.

Since 0.20


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.

Since 0.20


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

spice_smartcard_reader_insert_card ()

gboolean            spice_smartcard_reader_insert_card  (SpiceSmartcardReader *reader);

Simulates insertion of a smartcard in the software smartcard reader reader. If reader is not a software smartcard reader, FALSE will be returned.

reader :

a SpiceSmartcardReader

Returns :

TRUE if insertion of a card was successfully simulated, FALSE otherwise

spice_smartcard_reader_remove_card ()

gboolean            spice_smartcard_reader_remove_card  (SpiceSmartcardReader *reader);

Simulates removal of a smartcard from the software smartcard reader reader. If reader is not a software smartcard reader, FALSE will be returned.

reader :

a SpiceSmartcardReader

Returns :

TRUE if removal of a card was successfully simulated, 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.