manpagez: man pages & more
html files: gp11
Home | html | info | man

GP11Slot

GP11Slot — Represents a PKCS11 slot that can contain a token.

Object Hierarchy

  GObject
   +----GP11Slot

Properties

  "handle"                   gulong                : Read / Write / Construct Only
  "module"                   GP11Module*           : Read / Write / Construct Only

Description

A PKCS11 slot can contain a token. As an example, a slot might be a card reader, and the token the card. If the PKCS11 module is not a hardware driver, often the slot and token are equivalent.

Details

GP11MechanismInfo

typedef struct {
	gulong min_key_size;
	gulong max_key_size;
	gulong flags;
} GP11MechanismInfo;

Represents information about a PKCS11 mechanism.

This is analogous to a CK_MECHANISM_INFO structure.

When you're done with this structure it should be released with gp11_mechanism_info_free().

gulong min_key_size;

The minimum key size that can be used with this mechanism.

gulong max_key_size;

The maximum key size that can be used with this mechanism.

gulong flags;

Various PKCS11 flags that apply to this mechanism.

gp11_mechanism_info_free ()

void                gp11_mechanism_info_free            (GP11MechanismInfo *mech_info);

Free the GP11MechanismInfo and associated resources.

mech_info :

The mechanism info to free, or NULL.

GP11Mechanisms

typedef GArray GP11Mechanisms;

A set of GP11MechanismInfo structures.


gp11_mechanisms_length()

#define gp11_mechanisms_length(a)  	((a)->len)

Get the number of GP11MechanismInfo in the set.

a :

A GP11Mechanisms set.

Returns :

The number in the set.

gp11_mechanisms_at()

#define gp11_mechanisms_at(a, i) 	(g_array_index(a, CK_MECHANISM_TYPE, i))

Get a specific GP11MechanismInfo in a the set.

a :

A GP11Mechanisms set.

i :

The index of a GP11MechanismInfo.

Returns :

The GP11MechanismInfo.

gp11_mechanisms_free()

#define gp11_mechanisms_free(a)         (g_array_free(a, TRUE))

Free a GP11Mechanisms set.

a :

A GP11Mechanisms set.

gp11_mechanisms_check ()

gboolean            gp11_mechanisms_check               (GP11Mechanisms *mechanisms,
                                                         ...);

Check whether all the mechanism types are in the list.

The arguments should be a list of CKM_XXX mechanism types. The last argument should be GP11_INVALID.

mechanisms :

A list of mechanisms, perhaps retrieved from gp11_slot_get_mechanisms().

... :

A list of mechanism types followed by GP11_INVALID.

Returns :

Whether the mechanism is in the list or not.

GP11Slot

typedef struct _GP11Slot GP11Slot;

Represents a PKCS11 slot.


gp11_slot_equal ()

gboolean            gp11_slot_equal                     (gconstpointer slot1,
                                                         gconstpointer slot2);

Checks equality of two slots. Two GP11Slot objects can point to the same underlying PKCS11 slot.

slot1 :

A pointer to the first GP11Slot

slot2 :

A pointer to the second GP11Slot

Returns :

TRUE if slot1 and slot2 are equal. FALSE if either is not a GP11Slot.

gp11_slot_hash ()

guint               gp11_slot_hash                      (gconstpointer slot);

Create a hash value for the GP11Slot.

This function is intended for easily hashing a GP11Slot to add to a GHashTable or similar data structure.

slot :

A pointer to a GP11Slot

Returns :

An integer that can be used as a hash value, or 0 if invalid.

gp11_slot_get_module ()

GP11Module*         gp11_slot_get_module                (GP11Slot *self);

Get the module that this slot is on.

self :

The slot to get the module for.

Returns :

The module, you must unreference this after you're done with it.

gp11_slot_get_handle ()

CK_SLOT_ID          gp11_slot_get_handle                (GP11Slot *self);

Get the raw PKCS11 handle of a slot.

self :

The slot to get the handle of.

Returns :

The raw handle.

gp11_slot_get_info ()

GP11SlotInfo*       gp11_slot_get_info                  (GP11Slot *self);

Get the information for this slot.

self :

The slot to get info for.

Returns :

The slot information. When done, use gp11_slot_info_free() to release it.

gp11_slot_get_token_info ()

GP11TokenInfo*      gp11_slot_get_token_info            (GP11Slot *self);

Get the token information for this slot.

self :

The slot to get info for.

Returns :

The token information. When done, use gp11_token_info_free() to release it.

gp11_slot_get_mechanisms ()

GP11Mechanisms*     gp11_slot_get_mechanisms            (GP11Slot *self);

Get the available mechanisms for this slot.

self :

The slot to get mechanisms for.

Returns :

A list of the mechanisms for this slot. Use gp11_mechanisms_free() when done with this.

gp11_slot_get_mechanism_info ()

GP11MechanismInfo*  gp11_slot_get_mechanism_info        (GP11Slot *self,
                                                         gulong mech_type);

Get information for the specified mechanism.

self :

The slot to get mechanism info from.

mech_type :

The mechanisms type to get info for.

Returns :

The mechanism information, or NULL if failed. Use gp11_mechanism_info_free() when done with it.

gp11_slot_has_flags ()

gboolean            gp11_slot_has_flags                 (GP11Slot *self,
                                                         gulong flags);

Check if the PKCS11 slot has the given flags.

self :

The GP11Slot object.

flags :

The flags to check.

Returns :

Whether one or more flags exist.

gp11_slot_open_session ()

GP11Session*        gp11_slot_open_session              (GP11Slot *self,
                                                         gulong flags,
                                                         GError **err);

Open a session on the slot. If the 'auto reuse' setting is set, then this may be a recycled session with the same flags.

This call may block for an indefinite period.

self :

The slot ot open a session on.

flags :

The flags to open a session with.

err :

A location to return an error, or NULL.

Returns :

A new session or NULL if an error occurs.

gp11_slot_open_session_full ()

GP11Session*        gp11_slot_open_session_full         (GP11Slot *self,
                                                         gulong flags,
                                                         gpointer app_data,
                                                         CK_NOTIFY notify,
                                                         GCancellable *cancellable,
                                                         GError **err);

Open a session on the slot. If the 'auto reuse' setting is set, then this may be a recycled session with the same flags.

This call may block for an indefinite period.

self :

The slot to open a session on.

flags :

The flags to open a session with.

app_data :

Application data for notification callback.

notify :

PKCS11 notification callback.

cancellable :

Optional cancellation object, or NULL.

err :

A location to return an error, or NULL.

Returns :

A new session or NULL if an error occurs.

gp11_slot_open_session_async ()

void                gp11_slot_open_session_async        (GP11Slot *self,
                                                         gulong flags,
                                                         gpointer app_data,
                                                         CK_NOTIFY notify,
                                                         GCancellable *cancellable,
                                                         GAsyncReadyCallback callback,
                                                         gpointer user_data);

Open a session on the slot. If the 'auto reuse' setting is set, then this may be a recycled session with the same flags.

This call will return immediately and complete asynchronously.

self :

The slot to open a session on.

flags :

The flags to open a session with.

app_data :

Application data for notification callback.

notify :

PKCS11 notification callback.

cancellable :

Optional cancellation object, or NULL.

callback :

Called when the operation completes.

user_data :

Data to pass to the callback.

gp11_slot_open_session_finish ()

GP11Session*        gp11_slot_open_session_finish       (GP11Slot *self,
                                                         GAsyncResult *result,
                                                         GError **err);

Get the result of an open session operation. If the 'auto reuse' setting is set, then this may be a recycled session with the same flags.

self :

The slot to open a session on.

result :

The result passed to the callback.

err :

A location to return an error or NULL.

Returns :

The new session or NULL if an error occurs.

GP11SlotInfo

typedef struct {
	gchar *slot_description;
	gchar *manufacturer_id;
	gulong flags;
	guint8 hardware_version_major;
	guint8 hardware_version_minor;
	guint8 firmware_version_major;
	guint8 firmware_version_minor;
} GP11SlotInfo;

Represents information about a PKCS11 slot.

This is analogous to a CK_SLOT_INFO structure, but the strings are far more usable.

When you're done with this structure it should be released with gp11_slot_info_free().

gchar *slot_description;

Description of the slot.

gchar *manufacturer_id;

The manufacturer of this slot.

gulong flags;

Various PKCS11 flags that apply to this slot.

guint8 hardware_version_major;

The major version of the hardware.

guint8 hardware_version_minor;

The minor version of the hardware.

guint8 firmware_version_major;

The major version of the firmware.

guint8 firmware_version_minor;

The minor version of the firmware.

gp11_slot_info_free ()

void                gp11_slot_info_free                 (GP11SlotInfo *slot_info);

Free the GP11SlotInfo and associated resources.

slot_info :

The slot info to free, or NULL.

GP11TokenInfo

typedef struct {
	gchar *label;
	gchar *manufacturer_id;
	gchar *model;
	gchar *serial_number;
	gulong flags;
	glong max_session_count;
	glong session_count;
	glong max_rw_session_count;
	glong rw_session_count;
	glong max_pin_len;
	glong min_pin_len;
	glong total_public_memory;
	glong free_public_memory;
	glong total_private_memory;
	glong free_private_memory;
	guint8 hardware_version_major;
	guint8 hardware_version_minor;
	guint8 firmware_version_major;
	guint8 firmware_version_minor;
	gint64 utc_time;
} GP11TokenInfo;

Represents information about a PKCS11 token.

This is analogous to a CK_TOKEN_INFO structure, but the strings are far more usable.

When you're done with this structure it should be released with gp11_token_info_free().

gchar *label;

The displayable token label.

gchar *manufacturer_id;

The manufacturer of this slot.

gchar *model;

The token model number as a string.

gchar *serial_number;

The token serial number as a string.

gulong flags;

Various PKCS11 flags that apply to this token.

glong max_session_count;

The maximum number of sessions allowed on this token.

glong session_count;

The number of sessions open on this token.

glong max_rw_session_count;

The maximum number of read/write sessions allowed on this token.

glong rw_session_count;

The number of sessions open on this token.

glong max_pin_len;

The maximum length of a PIN for locking this token.

glong min_pin_len;

The minimum length of a PIN for locking this token.

glong total_public_memory;

The total amount of memory on this token for storing public objects.

glong free_public_memory;

The available amount of memory on this token for storing public objects.

glong total_private_memory;

The total amount of memory on this token for storing private objects.

glong free_private_memory;

The available amount of memory on this token for storing private objects.

guint8 hardware_version_major;

The major version of the hardware.

guint8 hardware_version_minor;

The minor version of the hardware.

guint8 firmware_version_major;

The major version of the firmware.

guint8 firmware_version_minor;

The minor version of the firmware.

gint64 utc_time;

If the token has a hardware clock, this is set to the number of seconds since the epoch.

gp11_token_info_free ()

void                gp11_token_info_free                (GP11TokenInfo *token_info);

Free the GP11TokenInfo and associated resources.

token_info :

The token info to free, or NULL.

Property Details

The "handle" property

  "handle"                   gulong                : Read / Write / Construct Only

The raw CK_SLOT_ID handle of this slot.


The "module" property

  "module"                   GP11Module*           : Read / Write / Construct Only

The PKCS11 object that this slot is a part of.

© manpagez.com 2000-2017
Individual documents may contain additional copyright information.