Blob Blame History Raw
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GckSlot: Gck Library Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="Gck Library Reference Manual">
<link rel="up" href="reference.html" title="PKCS#11 GObject Bindings">
<link rel="prev" href="GckModule.html" title="GckModule">
<link rel="next" href="GckSession.html" title="GckSession">
<meta name="generator" content="GTK-Doc V1.27.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#GckSlot.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#GckSlot.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
                  <a href="#GckSlot.properties" class="shortcut">Properties</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="GckModule.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GckSession.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GckSlot"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GckSlot.top_of_page"></a>GckSlot</span></h2>
<p>GckSlot — Represents a PKCS#11 slot that can contain a token.</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GckSlot.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a class="link" href="GckSlot.html#GckMechanismInfo"><span class="returnvalue">GckMechanismInfo</span></a> *
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-mechanism-info-copy" title="gck_mechanism_info_copy ()">gck_mechanism_info_copy</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-mechanism-info-free" title="gck_mechanism_info_free ()">gck_mechanism_info_free</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-mechanisms-length" title="gck_mechanisms_length()">gck_mechanisms_length</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-mechanisms-at" title="gck_mechanisms_at()">gck_mechanisms_at</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-mechanisms-check" title="gck_mechanisms_check ()">gck_mechanisms_check</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-equal" title="gck_slot_equal ()">gck_slot_equal</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">guint</span>
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-hash" title="gck_slot_hash ()">gck_slot_hash</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GckModule.html" title="GckModule"><span class="returnvalue">GckModule</span></a> *
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-get-module" title="gck_slot_get_module ()">gck_slot_get_module</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gulong</span>
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-get-handle" title="gck_slot_get_handle ()">gck_slot_get_handle</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GckSlot.html#GckSlotInfo"><span class="returnvalue">GckSlotInfo</span></a> *
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-get-info" title="gck_slot_get_info ()">gck_slot_get_info</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-match" title="gck_slot_match ()">gck_slot_match</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GckSlot.html#GckTokenInfo"><span class="returnvalue">GckTokenInfo</span></a> *
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-get-token-info" title="gck_slot_get_token_info ()">gck_slot_get_token_info</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GArray</span> *
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-get-mechanisms" title="gck_slot_get_mechanisms ()">gck_slot_get_mechanisms</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GckSlot.html#GckMechanismInfo"><span class="returnvalue">GckMechanismInfo</span></a> *
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-get-mechanism-info" title="gck_slot_get_mechanism_info ()">gck_slot_get_mechanism_info</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-has-flags" title="gck_slot_has_flags ()">gck_slot_has_flags</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GckEnumerator.html" title="GckEnumerator"><span class="returnvalue">GckEnumerator</span></a> *
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-enumerate-objects" title="gck_slot_enumerate_objects ()">gck_slot_enumerate_objects</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GckEnumerator.html" title="GckEnumerator"><span class="returnvalue">GckEnumerator</span></a> *
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slots-enumerate-objects" title="gck_slots_enumerate_objects ()">gck_slots_enumerate_objects</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GckSession.html" title="GckSession"><span class="returnvalue">GckSession</span></a> *
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-open-session" title="gck_slot_open_session ()">gck_slot_open_session</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GckSession.html" title="GckSession"><span class="returnvalue">GckSession</span></a> *
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-open-session-full" title="gck_slot_open_session_full ()">gck_slot_open_session_full</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-open-session-full-async" title="gck_slot_open_session_full_async ()">gck_slot_open_session_full_async</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-open-session-async" title="gck_slot_open_session_async ()">gck_slot_open_session_async</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GckSession.html" title="GckSession"><span class="returnvalue">GckSession</span></a> *
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-open-session-finish" title="gck_slot_open_session_finish ()">gck_slot_open_session_finish</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GckSlot.html" title="GckSlot"><span class="returnvalue">GckSlot</span></a> *
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-from-handle" title="gck_slot_from_handle ()">gck_slot_from_handle</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GckSlot.html#GckSlotInfo"><span class="returnvalue">GckSlotInfo</span></a> *
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-info-copy" title="gck_slot_info_copy ()">gck_slot_info_copy</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-slot-info-free" title="gck_slot_info_free ()">gck_slot_info_free</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GckSlot.html#GckTokenInfo"><span class="returnvalue">GckTokenInfo</span></a> *
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-token-info-copy" title="gck_token_info_copy ()">gck_token_info_copy</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GckSlot.html#gck-token-info-free" title="gck_token_info_free ()">gck_token_info_free</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GckSlot.properties"></a><h2>Properties</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="properties_type">
<col width="300px" class="properties_name">
<col width="200px" class="properties_flags">
</colgroup>
<tbody>
<tr>
<td class="property_type"><span class="type">gulong</span></td>
<td class="property_name"><a class="link" href="GckSlot.html#GckSlot--handle" title="The “handle” property">handle</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
<tr>
<td class="property_type">
<a class="link" href="GckModule.html" title="GckModule"><span class="type">GckModule</span></a> *</td>
<td class="property_name"><a class="link" href="GckSlot.html#GckSlot--module" title="The “module” property">module</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
</tbody>
</table></div>
</div>
<a name="GckMechanismInfo"></a><a name="GckSlotInfo"></a><a name="GckTokenInfo"></a><div class="refsect1">
<a name="GckSlot.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GckSlot.html#GckMechanismInfo-struct" title="struct GckMechanismInfo">GckMechanismInfo</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GckSlot.html#GckSessionOptions" title="enum GckSessionOptions">GckSessionOptions</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GckSlot.html#GckSlot-struct" title="struct GckSlot">GckSlot</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GckSlot.html#GckSlotInfo-struct" title="struct GckSlotInfo">GckSlotInfo</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GckSlot.html#GckTokenInfo-struct" title="struct GckTokenInfo">GckTokenInfo</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GckSlot.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    <a href="/home/dueno/jhbuild/install/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
    <span class="lineart">├──</span> GckMechanismInfo
    <span class="lineart">├──</span> GckSlotInfo
    <span class="lineart">╰──</span> GckTokenInfo
    GObject
    <span class="lineart">╰──</span> GckSlot
</pre>
</div>
<div class="refsect1">
<a name="GckSlot.description"></a><h2>Description</h2>
<p>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.</p>
</div>
<div class="refsect1">
<a name="GckSlot.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="gck-mechanism-info-copy"></a><h3>gck_mechanism_info_copy ()</h3>
<pre class="programlisting"><a class="link" href="GckSlot.html#GckMechanismInfo"><span class="returnvalue">GckMechanismInfo</span></a> *
gck_mechanism_info_copy (<em class="parameter"><code><a class="link" href="GckSlot.html#GckMechanismInfo"><span class="type">GckMechanismInfo</span></a> *mech_info</code></em>);</pre>
<p>Make a copy of the mechanism info.</p>
<div class="refsect3">
<a name="gck-mechanism-info-copy.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>mech_info</p></td>
<td class="parameter_description"><p>a mechanism info</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-mechanism-info-copy.returns"></a><h4>Returns</h4>
<p>a newly allocated copy mechanism info. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-mechanism-info-free"></a><h3>gck_mechanism_info_free ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gck_mechanism_info_free (<em class="parameter"><code><a class="link" href="GckSlot.html#GckMechanismInfo"><span class="type">GckMechanismInfo</span></a> *mech_info</code></em>);</pre>
<p>Free the GckMechanismInfo and associated resources.</p>
<div class="refsect3">
<a name="gck-mechanism-info-free.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>mech_info</p></td>
<td class="parameter_description"><p>The mechanism info to free, or NULL.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-mechanisms-length"></a><h3>gck_mechanisms_length()</h3>
<pre class="programlisting">#define             gck_mechanisms_length(a)                ((a)-&gt;len)
</pre>
<p>Get the number of GckMechanismInfo in the set.</p>
<div class="refsect3">
<a name="gck-mechanisms-length.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>a</p></td>
<td class="parameter_description"><p>A GckMechanisms set.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-mechanisms-length.returns"></a><h4>Returns</h4>
<p> The number in the set.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-mechanisms-at"></a><h3>gck_mechanisms_at()</h3>
<pre class="programlisting">#define             gck_mechanisms_at(a, i)                 (g_array_index (a, CK_MECHANISM_TYPE, i))
</pre>
<p>Get a specific mechanism in a the set.</p>
<div class="refsect3">
<a name="gck-mechanisms-at.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>a</p></td>
<td class="parameter_description"><p>A GckMechanisms set.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>i</p></td>
<td class="parameter_description"><p>The index of a mechanism</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-mechanisms-at.returns"></a><h4>Returns</h4>
<p> the mechanism</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-mechanisms-check"></a><h3>gck_mechanisms_check ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gck_mechanisms_check (<em class="parameter"><code><span class="type">GArray</span> *mechanisms</code></em>,
                      <em class="parameter"><code>...</code></em>);</pre>
<p>Check whether all the mechanism types are in the list.</p>
<p>The arguments should be a list of CKM_XXX mechanism types. The last argument
should be GCK_INVALID.</p>
<div class="refsect3">
<a name="gck-mechanisms-check.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>mechanisms</p></td>
<td class="parameter_description"><p>A list of mechanisms, perhaps
retrieved from <a class="link" href="GckSlot.html#gck-slot-get-mechanisms" title="gck_slot_get_mechanisms ()"><code class="function">gck_slot_get_mechanisms()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> ulong]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>...</p></td>
<td class="parameter_description"><p>A list of mechanism types followed by GCK_INVALID.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-mechanisms-check.returns"></a><h4>Returns</h4>
<p> Whether the mechanism is in the list or not.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-equal"></a><h3>gck_slot_equal ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gck_slot_equal (<em class="parameter"><code><span class="type">gconstpointer</span> slot1</code></em>,
                <em class="parameter"><code><span class="type">gconstpointer</span> slot2</code></em>);</pre>
<p>Checks equality of two slots. Two GckSlot objects can point to the same
underlying PKCS#11 slot.</p>
<div class="refsect3">
<a name="gck-slot-equal.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>slot1</p></td>
<td class="parameter_description"><p>a pointer to the first <a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gck.Slot]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>slot2</p></td>
<td class="parameter_description"><p>a pointer to the second <a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gck.Slot]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-slot-equal.returns"></a><h4>Returns</h4>
<p> TRUE if slot1 and slot2 are equal. FALSE if either is not a GckSlot.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-hash"></a><h3>gck_slot_hash ()</h3>
<pre class="programlisting"><span class="returnvalue">guint</span>
gck_slot_hash (<em class="parameter"><code><span class="type">gconstpointer</span> slot</code></em>);</pre>
<p>Create a hash value for the GckSlot.</p>
<p>This function is intended for easily hashing a GckSlot to add to
a GHashTable or similar data structure.</p>
<div class="refsect3">
<a name="gck-slot-hash.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>slot</p></td>
<td class="parameter_description"><p>a pointer to a <a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gck.Slot]</span></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-slot-hash.returns"></a><h4>Returns</h4>
<p> An integer that can be used as a hash value, or 0 if invalid.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-get-module"></a><h3>gck_slot_get_module ()</h3>
<pre class="programlisting"><a class="link" href="GckModule.html" title="GckModule"><span class="returnvalue">GckModule</span></a> *
gck_slot_get_module (<em class="parameter"><code><a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a> *self</code></em>);</pre>
<p>Get the module that this slot is on.</p>
<div class="refsect3">
<a name="gck-slot-get-module.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>The slot to get the module for.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-slot-get-module.returns"></a><h4>Returns</h4>
<p>The module, you must unreference this after
you're done with it. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-get-handle"></a><h3>gck_slot_get_handle ()</h3>
<pre class="programlisting"><span class="returnvalue">gulong</span>
gck_slot_get_handle (<em class="parameter"><code><a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a> *self</code></em>);</pre>
<p>Get the raw PKCS#11 handle of a slot.</p>
<div class="refsect3">
<a name="gck-slot-get-handle.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>The slot to get the handle of.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-slot-get-handle.returns"></a><h4>Returns</h4>
<p> the raw CK_SLOT_ID handle</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-get-info"></a><h3>gck_slot_get_info ()</h3>
<pre class="programlisting"><a class="link" href="GckSlot.html#GckSlotInfo"><span class="returnvalue">GckSlotInfo</span></a> *
gck_slot_get_info (<em class="parameter"><code><a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a> *self</code></em>);</pre>
<p>Get the information for this slot.</p>
<div class="refsect3">
<a name="gck-slot-get-info.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>The slot to get info for.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-slot-get-info.returns"></a><h4>Returns</h4>
<p>the slot information, when done, use <a class="link" href="GckSlot.html#gck-slot-info-free" title="gck_slot_info_free ()"><code class="function">gck_slot_info_free()</code></a>
to release it. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-match"></a><h3>gck_slot_match ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gck_slot_match (<em class="parameter"><code><a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a> *self</code></em>,
                <em class="parameter"><code><a class="link" href="gck-PKCS11-URIs.html#GckUriData"><span class="type">GckUriData</span></a> *uri</code></em>);</pre>
<p>Check whether the PKCS#11 URI matches the slot</p>
<div class="refsect3">
<a name="gck-slot-match.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>the slot to match</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>uri</p></td>
<td class="parameter_description"><p>the uri to match against the slot</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-slot-match.returns"></a><h4>Returns</h4>
<p> whether the URI matches or not</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-get-token-info"></a><h3>gck_slot_get_token_info ()</h3>
<pre class="programlisting"><a class="link" href="GckSlot.html#GckTokenInfo"><span class="returnvalue">GckTokenInfo</span></a> *
gck_slot_get_token_info (<em class="parameter"><code><a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a> *self</code></em>);</pre>
<p>Get the token information for this slot.</p>
<div class="refsect3">
<a name="gck-slot-get-token-info.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>The slot to get info for.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-slot-get-token-info.returns"></a><h4>Returns</h4>
<p>the token information; when done, use <a class="link" href="GckSlot.html#gck-token-info-free" title="gck_token_info_free ()"><code class="function">gck_token_info_free()</code></a>
to release it. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-get-mechanisms"></a><h3>gck_slot_get_mechanisms ()</h3>
<pre class="programlisting"><span class="returnvalue">GArray</span> *
gck_slot_get_mechanisms (<em class="parameter"><code><a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a> *self</code></em>);</pre>
<p>Get the available mechanisms for this slot.</p>
<div class="refsect3">
<a name="gck-slot-get-mechanisms.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>The slot to get mechanisms for.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-slot-get-mechanisms.returns"></a><h4>Returns</h4>
<p>a list of the mechanisms
for this slot, which should be freed with <code class="function">g_array_free()</code>. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> ulong]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-get-mechanism-info"></a><h3>gck_slot_get_mechanism_info ()</h3>
<pre class="programlisting"><a class="link" href="GckSlot.html#GckMechanismInfo"><span class="returnvalue">GckMechanismInfo</span></a> *
gck_slot_get_mechanism_info (<em class="parameter"><code><a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a> *self</code></em>,
                             <em class="parameter"><code><span class="type">gulong</span> mech_type</code></em>);</pre>
<p>Get information for the specified mechanism.</p>
<div class="refsect3">
<a name="gck-slot-get-mechanism-info.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>The slot to get mechanism info from.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>mech_type</p></td>
<td class="parameter_description"><p>The mechanisms type to get info for.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-slot-get-mechanism-info.returns"></a><h4>Returns</h4>
<p>the mechanism information, or NULL if failed; use
<a class="link" href="GckSlot.html#gck-mechanism-info-free" title="gck_mechanism_info_free ()"><code class="function">gck_mechanism_info_free()</code></a> when done with it. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-has-flags"></a><h3>gck_slot_has_flags ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gck_slot_has_flags (<em class="parameter"><code><a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a> *self</code></em>,
                    <em class="parameter"><code><span class="type">gulong</span> flags</code></em>);</pre>
<p>Check if the PKCS11 slot has the given flags.</p>
<div class="refsect3">
<a name="gck-slot-has-flags.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>The GckSlot object.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>flags</p></td>
<td class="parameter_description"><p>The flags to check.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-slot-has-flags.returns"></a><h4>Returns</h4>
<p> Whether one or more flags exist.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-enumerate-objects"></a><h3>gck_slot_enumerate_objects ()</h3>
<pre class="programlisting"><a class="link" href="GckEnumerator.html" title="GckEnumerator"><span class="returnvalue">GckEnumerator</span></a> *
gck_slot_enumerate_objects (<em class="parameter"><code><a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a> *self</code></em>,
                            <em class="parameter"><code><a class="link" href="GckAttributes.html" title="GckAttributes"><span class="type">GckAttributes</span></a> *match</code></em>,
                            <em class="parameter"><code><a class="link" href="GckSlot.html#GckSessionOptions" title="enum GckSessionOptions"><span class="type">GckSessionOptions</span></a> options</code></em>);</pre>
<p>Setup an enumerator for listing matching objects on the slot.</p>
<p>If the <em class="parameter"><code>match</code></em>
 <a class="link" href="GckAttributes.html" title="GckAttributes"><span class="type">GckAttributes</span></a> is floating, it is consumed.</p>
<p>This call will not block but will return an enumerator immediately.</p>
<div class="refsect3">
<a name="gck-slot-enumerate-objects.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a> to enumerate objects on</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>match</p></td>
<td class="parameter_description"><p>attributes that the objects must match, or empty for all objects</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>options</p></td>
<td class="parameter_description"><p>options for opening a session</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-slot-enumerate-objects.returns"></a><h4>Returns</h4>
<p>a new enumerator. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slots-enumerate-objects"></a><h3>gck_slots_enumerate_objects ()</h3>
<pre class="programlisting"><a class="link" href="GckEnumerator.html" title="GckEnumerator"><span class="returnvalue">GckEnumerator</span></a> *
gck_slots_enumerate_objects (<em class="parameter"><code><span class="type">GList</span> *slots</code></em>,
                             <em class="parameter"><code><a class="link" href="GckAttributes.html" title="GckAttributes"><span class="type">GckAttributes</span></a> *match</code></em>,
                             <em class="parameter"><code><a class="link" href="GckSlot.html#GckSessionOptions" title="enum GckSessionOptions"><span class="type">GckSessionOptions</span></a> options</code></em>);</pre>
<p>Setup an enumerator for listing matching objects on the slots.</p>
<p>If the <em class="parameter"><code>match</code></em>
 <a class="link" href="GckAttributes.html" title="GckAttributes"><span class="type">GckAttributes</span></a> is floating, it is consumed.</p>
<p>This call will not block but will return an enumerator immediately.</p>
<div class="refsect3">
<a name="gck-slots-enumerate-objects.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>slots</p></td>
<td class="parameter_description"><p>a list of <a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a> to enumerate objects on. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gck.Slot]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>match</p></td>
<td class="parameter_description"><p>attributes that the objects must match, or empty for all objects</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>options</p></td>
<td class="parameter_description"><p>options for opening a session</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-slots-enumerate-objects.returns"></a><h4>Returns</h4>
<p>a new enumerator. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-open-session"></a><h3>gck_slot_open_session ()</h3>
<pre class="programlisting"><a class="link" href="GckSession.html" title="GckSession"><span class="returnvalue">GckSession</span></a> *
gck_slot_open_session (<em class="parameter"><code><a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a> *self</code></em>,
                       <em class="parameter"><code><a class="link" href="GckSlot.html#GckSessionOptions" title="enum GckSessionOptions"><span class="type">GckSessionOptions</span></a> options</code></em>,
                       <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                       <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>Open a session on the slot. If the 'auto reuse' setting is set,
then this may be a recycled session with the same flags.</p>
<p>This call may block for an indefinite period.</p>
<div class="refsect3">
<a name="gck-slot-open-session.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>The slot ot open a session on.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>options</p></td>
<td class="parameter_description"><p>The <a class="link" href="GckSlot.html#GckSessionOptions" title="enum GckSessionOptions"><span class="type">GckSessionOptions</span></a> to open a session with.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>An optional cancellation object, or <code class="literal">NULL</code>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>A location to return an error, or <code class="literal">NULL</code>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-slot-open-session.returns"></a><h4>Returns</h4>
<p>a new session or <code class="literal">NULL</code> if an error occurs. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-open-session-full"></a><h3>gck_slot_open_session_full ()</h3>
<pre class="programlisting"><a class="link" href="GckSession.html" title="GckSession"><span class="returnvalue">GckSession</span></a> *
gck_slot_open_session_full (<em class="parameter"><code><a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a> *self</code></em>,
                            <em class="parameter"><code><a class="link" href="GckSlot.html#GckSessionOptions" title="enum GckSessionOptions"><span class="type">GckSessionOptions</span></a> options</code></em>,
                            <em class="parameter"><code><span class="type">gulong</span> pkcs11_flags</code></em>,
                            <em class="parameter"><code><span class="type">gpointer</span> app_data</code></em>,
                            <em class="parameter"><code><a class="link" href="pkcs11-links.html#CK-NOTIFY:CAPS"><span class="type">CK_NOTIFY</span></a> notify</code></em>,
                            <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                            <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>Open a session on the slot. If the 'auto reuse' setting is set,
then this may be a recycled session with the same flags.</p>
<p>This call may block for an indefinite period.</p>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="gck-slot-open-session-full.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>The slot to open a session on.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>options</p></td>
<td class="parameter_description"><p>The options to open the new session with.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pkcs11_flags</p></td>
<td class="parameter_description"><p>Additional raw PKCS#11 flags.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>app_data</p></td>
<td class="parameter_description"><p>Application data for notification callback.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>notify</p></td>
<td class="parameter_description"><p>PKCS#11 notification callback.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>Optional cancellation object, or NULL.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>A location to return an error, or NULL.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-slot-open-session-full.returns"></a><h4>Returns</h4>
<p>a new session or <code class="literal">NULL</code> if an error occurs. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-open-session-full-async"></a><h3>gck_slot_open_session_full_async ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gck_slot_open_session_full_async (<em class="parameter"><code><a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a> *self</code></em>,
                                  <em class="parameter"><code><a class="link" href="GckSlot.html#GckSessionOptions" title="enum GckSessionOptions"><span class="type">GckSessionOptions</span></a> options</code></em>,
                                  <em class="parameter"><code><span class="type">gulong</span> pkcs11_flags</code></em>,
                                  <em class="parameter"><code><span class="type">gpointer</span> app_data</code></em>,
                                  <em class="parameter"><code><a class="link" href="pkcs11-links.html#CK-NOTIFY:CAPS"><span class="type">CK_NOTIFY</span></a> notify</code></em>,
                                  <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                                  <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
                                  <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<p>Open a session on the slot. If the 'auto reuse' setting is set,
then this may be a recycled session with the same flags.</p>
<p>This call will return immediately and complete asynchronously.</p>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="gck-slot-open-session-full-async.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>The slot to open a session on.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>options</p></td>
<td class="parameter_description"><p>Options to open the new session with.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pkcs11_flags</p></td>
<td class="parameter_description"><p>Additional raw PKCS#11 flags.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>app_data</p></td>
<td class="parameter_description"><p>Application data for notification callback.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>notify</p></td>
<td class="parameter_description"><p>PKCS#11 notification callback.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>Optional cancellation object, or NULL.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>Called when the operation completes.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>Data to pass to the callback.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-open-session-async"></a><h3>gck_slot_open_session_async ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gck_slot_open_session_async (<em class="parameter"><code><a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a> *self</code></em>,
                             <em class="parameter"><code><a class="link" href="GckSlot.html#GckSessionOptions" title="enum GckSessionOptions"><span class="type">GckSessionOptions</span></a> options</code></em>,
                             <em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
                             <em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
                             <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<p>Open a session on the slot. If the 'auto reuse' setting is set,
then this may be a recycled session with the same flags.</p>
<p>This call will return immediately and complete asynchronously.</p>
<div class="refsect3">
<a name="gck-slot-open-session-async.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>The slot to open a session on.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>options</p></td>
<td class="parameter_description"><p>The options to open the new session with.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>Optional cancellation object, or NULL.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>Called when the operation completes.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>Data to pass to the callback.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-open-session-finish"></a><h3>gck_slot_open_session_finish ()</h3>
<pre class="programlisting"><a class="link" href="GckSession.html" title="GckSession"><span class="returnvalue">GckSession</span></a> *
gck_slot_open_session_finish (<em class="parameter"><code><a class="link" href="GckSlot.html" title="GckSlot"><span class="type">GckSlot</span></a> *self</code></em>,
                              <em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>,
                              <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>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.</p>
<div class="refsect3">
<a name="gck-slot-open-session-finish.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>The slot to open a session on.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>result</p></td>
<td class="parameter_description"><p>The result passed to the callback.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>A location to return an error or NULL.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-slot-open-session-finish.returns"></a><h4>Returns</h4>
<p>the new session or <code class="literal">NULL</code> if an error occurs. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-from-handle"></a><h3>gck_slot_from_handle ()</h3>
<pre class="programlisting"><a class="link" href="GckSlot.html" title="GckSlot"><span class="returnvalue">GckSlot</span></a> *
gck_slot_from_handle (<em class="parameter"><code><a class="link" href="GckModule.html" title="GckModule"><span class="type">GckModule</span></a> *module</code></em>,
                      <em class="parameter"><code><span class="type">gulong</span> slot_id</code></em>);</pre>
<p>Create a new GckSlot object for a raw PKCS#11 handle.</p>
<div class="refsect3">
<a name="gck-slot-from-handle.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>The module that this slot is on.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>slot_id</p></td>
<td class="parameter_description"><p>The raw PKCS#11 handle or slot id of this slot.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-slot-from-handle.returns"></a><h4>Returns</h4>
<p>The new GckSlot object. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-info-copy"></a><h3>gck_slot_info_copy ()</h3>
<pre class="programlisting"><a class="link" href="GckSlot.html#GckSlotInfo"><span class="returnvalue">GckSlotInfo</span></a> *
gck_slot_info_copy (<em class="parameter"><code><a class="link" href="GckSlot.html#GckSlotInfo"><span class="type">GckSlotInfo</span></a> *slot_info</code></em>);</pre>
<p>Make a copy of the slot info.</p>
<div class="refsect3">
<a name="gck-slot-info-copy.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>slot_info</p></td>
<td class="parameter_description"><p>a slot info</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-slot-info-copy.returns"></a><h4>Returns</h4>
<p>a newly allocated copy slot info. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-slot-info-free"></a><h3>gck_slot_info_free ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gck_slot_info_free (<em class="parameter"><code><a class="link" href="GckSlot.html#GckSlotInfo"><span class="type">GckSlotInfo</span></a> *slot_info</code></em>);</pre>
<p>Free the GckSlotInfo and associated resources.</p>
<div class="refsect3">
<a name="gck-slot-info-free.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>slot_info</p></td>
<td class="parameter_description"><p>The slot info to free, or NULL.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-token-info-copy"></a><h3>gck_token_info_copy ()</h3>
<pre class="programlisting"><a class="link" href="GckSlot.html#GckTokenInfo"><span class="returnvalue">GckTokenInfo</span></a> *
gck_token_info_copy (<em class="parameter"><code><a class="link" href="GckSlot.html#GckTokenInfo"><span class="type">GckTokenInfo</span></a> *token_info</code></em>);</pre>
<p>Make a copy of the token info.</p>
<div class="refsect3">
<a name="gck-token-info-copy.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>token_info</p></td>
<td class="parameter_description"><p>a token info</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gck-token-info-copy.returns"></a><h4>Returns</h4>
<p>a newly allocated copy token info. </p>
<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gck-token-info-free"></a><h3>gck_token_info_free ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gck_token_info_free (<em class="parameter"><code><a class="link" href="GckSlot.html#GckTokenInfo"><span class="type">GckTokenInfo</span></a> *token_info</code></em>);</pre>
<p>Free the GckTokenInfo and associated resources.</p>
<div class="refsect3">
<a name="gck-token-info-free.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>token_info</p></td>
<td class="parameter_description"><p>The token info to free, or NULL.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="GckSlot.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GckMechanismInfo-struct"></a><h3>struct GckMechanismInfo</h3>
<pre class="programlisting">struct GckMechanismInfo {
	gulong min_key_size;
	gulong max_key_size;
	gulong flags;
};
</pre>
<p>Represents information about a PKCS11 mechanism.</p>
<p>This is analogous to a CK_MECHANISM_INFO structure.</p>
<p>When you're done with this structure it should be released with
<a class="link" href="GckSlot.html#gck-mechanism-info-free" title="gck_mechanism_info_free ()"><code class="function">gck_mechanism_info_free()</code></a>.</p>
<div class="refsect3">
<a name="GckMechanismInfo.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><span class="type">gulong</span> <em class="structfield"><code><a name="GckMechanismInfo-struct.min-key-size"></a>min_key_size</code></em>;</p></td>
<td class="struct_member_description"><p>The minimum key size that can be used with this mechanism.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gulong</span> <em class="structfield"><code><a name="GckMechanismInfo-struct.max-key-size"></a>max_key_size</code></em>;</p></td>
<td class="struct_member_description"><p>The maximum key size that can be used with this mechanism.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gulong</span> <em class="structfield"><code><a name="GckMechanismInfo-struct.flags"></a>flags</code></em>;</p></td>
<td class="struct_member_description"><p>Various PKCS11 flags that apply to this mechanism.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GckSessionOptions"></a><h3>enum GckSessionOptions</h3>
<p>Options for creating sessions.</p>
<div class="refsect3">
<a name="GckSessionOptions.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GCK-SESSION-READ-ONLY:CAPS"></a>GCK_SESSION_READ_ONLY</p></td>
<td class="enum_member_description">
<p>Open session as read only</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GCK-SESSION-READ-WRITE:CAPS"></a>GCK_SESSION_READ_WRITE</p></td>
<td class="enum_member_description">
<p>Open sessions as read/write</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GCK-SESSION-LOGIN-USER:CAPS"></a>GCK_SESSION_LOGIN_USER</p></td>
<td class="enum_member_description">
<p>Login as user on new sessions</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GCK-SESSION-AUTHENTICATE:CAPS"></a>GCK_SESSION_AUTHENTICATE</p></td>
<td class="enum_member_description">
<p>Authenticate as necessary</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GckSlot-struct"></a><h3>struct GckSlot</h3>
<pre class="programlisting">struct GckSlot;</pre>
<p>Represents a PKCS11 slot.</p>
</div>
<hr>
<div class="refsect2">
<a name="GckSlotInfo-struct"></a><h3>struct GckSlotInfo</h3>
<pre class="programlisting">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;
};
</pre>
<p>Represents information about a PKCS11 slot.</p>
<p>This is analogous to a CK_SLOT_INFO structure, but the
strings are far more usable.</p>
<p>When you're done with this structure it should be released with
<a class="link" href="GckSlot.html#gck-slot-info-free" title="gck_slot_info_free ()"><code class="function">gck_slot_info_free()</code></a>.</p>
<div class="refsect3">
<a name="GckSlotInfo.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><span class="type">gchar</span> *<em class="structfield"><code><a name="GckSlotInfo-struct.slot-description"></a>slot_description</code></em>;</p></td>
<td class="struct_member_description"><p>Description of the slot.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gchar</span> *<em class="structfield"><code><a name="GckSlotInfo-struct.manufacturer-id"></a>manufacturer_id</code></em>;</p></td>
<td class="struct_member_description"><p>The manufacturer of this slot.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gulong</span> <em class="structfield"><code><a name="GckSlotInfo-struct.flags"></a>flags</code></em>;</p></td>
<td class="struct_member_description"><p>Various PKCS11 flags that apply to this slot.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="GckSlotInfo-struct.hardware-version-major"></a>hardware_version_major</code></em>;</p></td>
<td class="struct_member_description"><p>The major version of the hardware.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="GckSlotInfo-struct.hardware-version-minor"></a>hardware_version_minor</code></em>;</p></td>
<td class="struct_member_description"><p>The minor version of the hardware.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="GckSlotInfo-struct.firmware-version-major"></a>firmware_version_major</code></em>;</p></td>
<td class="struct_member_description"><p>The major version of the firmware.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="GckSlotInfo-struct.firmware-version-minor"></a>firmware_version_minor</code></em>;</p></td>
<td class="struct_member_description"><p>The minor version of the firmware.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GckTokenInfo-struct"></a><h3>struct GckTokenInfo</h3>
<pre class="programlisting">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;
};
</pre>
<p>Represents information about a PKCS11 token.</p>
<p>This is analogous to a CK_TOKEN_INFO structure, but the
strings are far more usable.</p>
<p>When you're done with this structure it should be released with
<a class="link" href="GckSlot.html#gck-token-info-free" title="gck_token_info_free ()"><code class="function">gck_token_info_free()</code></a>.</p>
<div class="refsect3">
<a name="GckTokenInfo.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><span class="type">gchar</span> *<em class="structfield"><code><a name="GckTokenInfo-struct.label"></a>label</code></em>;</p></td>
<td class="struct_member_description"><p>The displayable token label.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gchar</span> *<em class="structfield"><code><a name="GckTokenInfo-struct.manufacturer-id"></a>manufacturer_id</code></em>;</p></td>
<td class="struct_member_description"><p>The manufacturer of this slot.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gchar</span> *<em class="structfield"><code><a name="GckTokenInfo-struct.model"></a>model</code></em>;</p></td>
<td class="struct_member_description"><p>The token model number as a string.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gchar</span> *<em class="structfield"><code><a name="GckTokenInfo-struct.serial-number"></a>serial_number</code></em>;</p></td>
<td class="struct_member_description"><p>The token serial number as a string.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gulong</span> <em class="structfield"><code><a name="GckTokenInfo-struct.flags"></a>flags</code></em>;</p></td>
<td class="struct_member_description"><p>Various PKCS11 flags that apply to this token.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">glong</span> <em class="structfield"><code><a name="GckTokenInfo-struct.max-session-count"></a>max_session_count</code></em>;</p></td>
<td class="struct_member_description"><p>The maximum number of sessions allowed on this token.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">glong</span> <em class="structfield"><code><a name="GckTokenInfo-struct.session-count"></a>session_count</code></em>;</p></td>
<td class="struct_member_description"><p>The number of sessions open on this token.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">glong</span> <em class="structfield"><code><a name="GckTokenInfo-struct.max-rw-session-count"></a>max_rw_session_count</code></em>;</p></td>
<td class="struct_member_description"><p>The maximum number of read/write sessions allowed on this token.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">glong</span> <em class="structfield"><code><a name="GckTokenInfo-struct.rw-session-count"></a>rw_session_count</code></em>;</p></td>
<td class="struct_member_description"><p>The number of sessions open on this token.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">glong</span> <em class="structfield"><code><a name="GckTokenInfo-struct.max-pin-len"></a>max_pin_len</code></em>;</p></td>
<td class="struct_member_description"><p>The maximum length of a PIN for locking this token.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">glong</span> <em class="structfield"><code><a name="GckTokenInfo-struct.min-pin-len"></a>min_pin_len</code></em>;</p></td>
<td class="struct_member_description"><p>The minimum length of a PIN for locking this token.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">glong</span> <em class="structfield"><code><a name="GckTokenInfo-struct.total-public-memory"></a>total_public_memory</code></em>;</p></td>
<td class="struct_member_description"><p>The total amount of memory on this token for storing public objects.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">glong</span> <em class="structfield"><code><a name="GckTokenInfo-struct.free-public-memory"></a>free_public_memory</code></em>;</p></td>
<td class="struct_member_description"><p>The available amount of memory on this token for storing public objects.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">glong</span> <em class="structfield"><code><a name="GckTokenInfo-struct.total-private-memory"></a>total_private_memory</code></em>;</p></td>
<td class="struct_member_description"><p>The total amount of memory on this token for storing private objects.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">glong</span> <em class="structfield"><code><a name="GckTokenInfo-struct.free-private-memory"></a>free_private_memory</code></em>;</p></td>
<td class="struct_member_description"><p>The available amount of memory on this token for storing private objects.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="GckTokenInfo-struct.hardware-version-major"></a>hardware_version_major</code></em>;</p></td>
<td class="struct_member_description"><p>The major version of the hardware.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="GckTokenInfo-struct.hardware-version-minor"></a>hardware_version_minor</code></em>;</p></td>
<td class="struct_member_description"><p>The minor version of the hardware.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="GckTokenInfo-struct.firmware-version-major"></a>firmware_version_major</code></em>;</p></td>
<td class="struct_member_description"><p>The major version of the firmware.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">guint8</span> <em class="structfield"><code><a name="GckTokenInfo-struct.firmware-version-minor"></a>firmware_version_minor</code></em>;</p></td>
<td class="struct_member_description"><p>The minor version of the firmware.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gint64</span> <em class="structfield"><code><a name="GckTokenInfo-struct.utc-time"></a>utc_time</code></em>;</p></td>
<td class="struct_member_description"><p>If the token has a hardware clock, this is set to the number of seconds since the epoch.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="GckSlot.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GckSlot--handle"></a><h3>The <code class="literal">“handle”</code> property</h3>
<pre class="programlisting">  “handle”                   <span class="type">gulong</span></pre>
<p>The raw CK_SLOT_ID handle of this slot.</p>
<p>Flags: Read / Write / Construct Only</p>
</div>
<hr>
<div class="refsect2">
<a name="GckSlot--module"></a><h3>The <code class="literal">“module”</code> property</h3>
<pre class="programlisting">  “module”                   <a class="link" href="GckModule.html" title="GckModule"><span class="type">GckModule</span></a> *</pre>
<p>The PKCS11 object that this slot is a part of.</p>
<p>Flags: Read / Write / Construct Only</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.27.1</div>
</body>
</html>