![]() |
![]() |
![]() |
Gck Library Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties |
struct GckMechanismInfo; GckMechanismInfo * gck_mechanism_info_copy (GckMechanismInfo *mech_info
); void gck_mechanism_info_free (GckMechanismInfo *mech_info
); #define gck_mechanisms_length (a) #define gck_mechanisms_at (a, i) gboolean gck_mechanisms_check (GArray *mechanisms
,...
); enum GckSessionOptions; struct GckSlot; gboolean gck_slot_equal (gconstpointer slot1
,gconstpointer slot2
); guint gck_slot_hash (gconstpointer slot
); GckModule * gck_slot_get_module (GckSlot *self
); gulong gck_slot_get_handle (GckSlot *self
); GckSlotInfo * gck_slot_get_info (GckSlot *self
); gboolean gck_slot_match (GckSlot *self
,GckUriData *uri
); GckTokenInfo * gck_slot_get_token_info (GckSlot *self
); GArray * gck_slot_get_mechanisms (GckSlot *self
); GckMechanismInfo * gck_slot_get_mechanism_info (GckSlot *self
,gulong mech_type
); gboolean gck_slot_has_flags (GckSlot *self
,gulong flags
); GckEnumerator * gck_slot_enumerate_objects (GckSlot *self
,GckAttributes *match
,GckSessionOptions options
); GckEnumerator * gck_slots_enumerate_objects (GList *slots
,GckAttributes *match
,GckSessionOptions options
); GckSession * gck_slot_open_session (GckSlot *self
,GckSessionOptions options
,GCancellable *cancellable
,GError **error
); GckSession * gck_slot_open_session_full (GckSlot *self
,GckSessionOptions options
,gulong pkcs11_flags
,gpointer app_data
,CK_NOTIFY notify
,GCancellable *cancellable
,GError **error
); void gck_slot_open_session_full_async (GckSlot *self
,GckSessionOptions options
,gulong pkcs11_flags
,gpointer app_data
,CK_NOTIFY notify
,GCancellable *cancellable
,GAsyncReadyCallback callback
,gpointer user_data
); void gck_slot_open_session_async (GckSlot *self
,GckSessionOptions options
,GCancellable *cancellable
,GAsyncReadyCallback callback
,gpointer user_data
); GckSession * gck_slot_open_session_finish (GckSlot *self
,GAsyncResult *result
,GError **error
); GckSlot * gck_slot_from_handle (GckModule *module
,gulong slot_id
); struct GckSlotInfo; GckSlotInfo * gck_slot_info_copy (GckSlotInfo *slot_info
); void gck_slot_info_free (GckSlotInfo *slot_info
); struct GckTokenInfo; GckTokenInfo * gck_token_info_copy (GckTokenInfo *token_info
); void gck_token_info_free (GckTokenInfo *token_info
);
GBoxed +----GckMechanismInfo
GObject +----GckSlot
GBoxed +----GckSlotInfo
GBoxed +----GckTokenInfo
"handle" gulong : Read / Write / Construct Only "module" GckModule* : Read / Write / Construct Only
A PKCS11 slot can contain a token. As an example, a slot might be a card reader, and the token the card. If the PKCS#11 module is not a hardware driver, often the slot and token are equivalent.
struct GckMechanismInfo { gulong min_key_size; gulong max_key_size; gulong flags; };
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
gck_mechanism_info_free()
.
GckMechanismInfo * gck_mechanism_info_copy (GckMechanismInfo *mech_info
);
Make a copy of the mechanism info.
|
a mechanism info |
Returns : |
a newly allocated copy mechanism info. [transfer full] |
void gck_mechanism_info_free (GckMechanismInfo *mech_info
);
Free the GckMechanismInfo and associated resources.
|
The mechanism info to free, or NULL. |
#define gck_mechanisms_length(a) ((a)->len)
Get the number of GckMechanismInfo in the set.
|
A GckMechanisms set. |
Returns : |
The number in the set. |
#define gck_mechanisms_at(a, i) (g_array_index (a, CK_MECHANISM_TYPE, i))
Get a specific mechanism in a the set.
|
A GckMechanisms set. |
|
The index of a mechanism |
Returns : |
the mechanism |
gboolean gck_mechanisms_check (GArray *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 GCK_INVALID.
|
A list of mechanisms, perhaps retrieved from gck_slot_get_mechanisms() . |
|
A list of mechanism types followed by GCK_INVALID. |
Returns : |
Whether the mechanism is in the list or not. |
typedef enum { GCK_SESSION_READ_ONLY = 0, GCK_SESSION_READ_WRITE = 1 << 1, GCK_SESSION_LOGIN_USER = 1 << 2, GCK_SESSION_AUTHENTICATE = 1 << 3, } GckSessionOptions;
Options for creating sessions.
gboolean gck_slot_equal (gconstpointer slot1
,gconstpointer slot2
);
Checks equality of two slots. Two GckSlot objects can point to the same underlying PKCS#11 slot.
guint gck_slot_hash (gconstpointer slot
);
Create a hash value for the GckSlot.
This function is intended for easily hashing a GckSlot to add to a GHashTable or similar data structure.
|
a pointer to a GckSlot. [type Gck.Slot] |
Returns : |
An integer that can be used as a hash value, or 0 if invalid. |
GckModule * gck_slot_get_module (GckSlot *self
);
Get the module that this slot is on.
|
The slot to get the module for. |
Returns : |
The module, you must unreference this after you're done with it. [transfer full] |
gulong gck_slot_get_handle (GckSlot *self
);
Get the raw PKCS#11 handle of a slot.
|
The slot to get the handle of. |
Returns : |
the raw CK_SLOT_ID handle |
GckSlotInfo * gck_slot_get_info (GckSlot *self
);
Get the information for this slot.
|
The slot to get info for. |
Returns : |
the slot information, when done, use gck_slot_info_free()
to release it. [transfer full]
|
gboolean gck_slot_match (GckSlot *self
,GckUriData *uri
);
Check whether the PKCS#11 URI matches the slot
|
the slot to match |
|
the uri to match against the slot |
Returns : |
whether the URI matches or not |
GckTokenInfo * gck_slot_get_token_info (GckSlot *self
);
Get the token information for this slot.
|
The slot to get info for. |
Returns : |
the token information; when done, use gck_token_info_free()
to release it. [transfer full]
|
GArray * gck_slot_get_mechanisms (GckSlot *self
);
Get the available mechanisms for this slot.
|
The slot to get mechanisms for. |
Returns : |
a list of the mechanisms for this slot, which should
be freed with g_array_free() . [transfer full]
|
GckMechanismInfo * gck_slot_get_mechanism_info (GckSlot *self
,gulong mech_type
);
Get information for the specified mechanism.
|
The slot to get mechanism info from. |
|
The mechanisms type to get info for. |
Returns : |
the mechanism information, or NULL if failed; use
gck_mechanism_info_free() when done with it. [transfer full]
|
gboolean gck_slot_has_flags (GckSlot *self
,gulong flags
);
Check if the PKCS11 slot has the given flags.
|
The GckSlot object. |
|
The flags to check. |
Returns : |
Whether one or more flags exist. |
GckEnumerator * gck_slot_enumerate_objects (GckSlot *self
,GckAttributes *match
,GckSessionOptions options
);
Setup an enumerator for listing matching objects on the slot.
If the match
GckAttributes is floating, it is consumed.
This call will not block but will return an enumerator immediately.
|
a GckSlot to enumerate objects on |
|
attributes that the objects must match, or empty for all objects |
|
options for opening a session |
Returns : |
a new enumerator. [transfer full] |
GckEnumerator * gck_slots_enumerate_objects (GList *slots
,GckAttributes *match
,GckSessionOptions options
);
Setup an enumerator for listing matching objects on the slots.
If the match
GckAttributes is floating, it is consumed.
This call will not block but will return an enumerator immediately.
|
a list of GckSlot to enumerate objects on. [element-type Gck.Slot] |
|
attributes that the objects must match, or empty for all objects |
|
options for opening a session |
Returns : |
a new enumerator. [transfer full] |
GckSession * gck_slot_open_session (GckSlot *self
,GckSessionOptions options
,GCancellable *cancellable
,GError **error
);
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.
|
The slot ot open a session on. |
|
The GckSessionOptions to open a session with. |
|
An optional cancellation object, or NULL . |
|
A location to return an error, or NULL . |
Returns : |
a new session or NULL if an error occurs. [transfer full]
|
GckSession * gck_slot_open_session_full (GckSlot *self
,GckSessionOptions options
,gulong pkcs11_flags
,gpointer app_data
,CK_NOTIFY notify
,GCancellable *cancellable
,GError **error
);
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.
|
The slot to open a session on. |
|
The options to open the new session with. |
|
Additional raw PKCS#11 flags. |
|
Application data for notification callback. |
|
PKCS#11 notification callback. |
|
Optional cancellation object, or NULL. |
|
A location to return an error, or NULL. |
Returns : |
a new session or NULL if an error occurs. [transfer full]
|
void gck_slot_open_session_full_async (GckSlot *self
,GckSessionOptions options
,gulong pkcs11_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.
|
The slot to open a session on. |
|
Options to open the new session with. |
|
Additional raw PKCS#11 flags. |
|
Application data for notification callback. |
|
PKCS#11 notification callback. |
|
Optional cancellation object, or NULL. |
|
Called when the operation completes. |
|
Data to pass to the callback. |
void gck_slot_open_session_async (GckSlot *self
,GckSessionOptions options
,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.
|
The slot to open a session on. |
|
The options to open the new session with. |
|
Optional cancellation object, or NULL. |
|
Called when the operation completes. |
|
Data to pass to the callback. |
GckSession * gck_slot_open_session_finish (GckSlot *self
,GAsyncResult *result
,GError **error
);
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.
|
The slot to open a session on. |
|
The result passed to the callback. |
|
A location to return an error or NULL. |
Returns : |
the new session or NULL if an error occurs. [transfer full]
|
GckSlot * gck_slot_from_handle (GckModule *module
,gulong slot_id
);
Create a new GckSlot object for a raw PKCS#11 handle.
|
The module that this slot is on. |
|
The raw PKCS#11 handle or slot id of this slot. |
Returns : |
The new GckSlot object. [transfer full] |
struct GckSlotInfo { gchar *slot_description; gchar *manufacturer_id; gulong flags; guint8 hardware_version_major; guint8 hardware_version_minor; guint8 firmware_version_major; guint8 firmware_version_minor; };
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
gck_slot_info_free()
.
gchar * |
Description of the slot. |
gchar * |
The manufacturer of this slot. |
gulong |
Various PKCS11 flags that apply to this slot. |
guint8 |
The major version of the hardware. |
guint8 |
The minor version of the hardware. |
guint8 |
The major version of the firmware. |
guint8 |
The minor version of the firmware. |
GckSlotInfo * gck_slot_info_copy (GckSlotInfo *slot_info
);
Make a copy of the slot info.
|
a slot info |
Returns : |
a newly allocated copy slot info. [transfer full] |
void gck_slot_info_free (GckSlotInfo *slot_info
);
Free the GckSlotInfo and associated resources.
|
The slot info to free, or NULL. |
struct GckTokenInfo { 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; };
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
gck_token_info_free()
.
gchar * |
The displayable token label. |
gchar * |
The manufacturer of this slot. |
gchar * |
The token model number as a string. |
gchar * |
The token serial number as a string. |
gulong |
Various PKCS11 flags that apply to this token. |
glong |
The maximum number of sessions allowed on this token. |
glong |
The number of sessions open on this token. |
glong |
The maximum number of read/write sessions allowed on this token. |
glong |
The number of sessions open on this token. |
glong |
The maximum length of a PIN for locking this token. |
glong |
The minimum length of a PIN for locking this token. |
glong |
The total amount of memory on this token for storing public objects. |
glong |
The available amount of memory on this token for storing public objects. |
glong |
The total amount of memory on this token for storing private objects. |
glong |
The available amount of memory on this token for storing private objects. |
guint8 |
The major version of the hardware. |
guint8 |
The minor version of the hardware. |
guint8 |
The major version of the firmware. |
guint8 |
The minor version of the firmware. |
gint64 |
If the token has a hardware clock, this is set to the number of seconds since the epoch. |
GckTokenInfo * gck_token_info_copy (GckTokenInfo *token_info
);
Make a copy of the token info.
|
a token info |
Returns : |
a newly allocated copy token info. [transfer full] |
void gck_token_info_free (GckTokenInfo *token_info
);
Free the GckTokenInfo and associated resources.
|
The token info to free, or NULL. |