09eb1fbd1784044fb1b4fb6afb205b1f546f1d73
[profile/ivi/gsignond.git] / docs / html / GSignondStorageManager.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>GSignondStorageManager</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="gsignond API Reference Manual">
8 <link rel="up" href="ch05.html" title="GSignond API for writing platform adaptation extensions">
9 <link rel="prev" href="gsignond-GSignondSecurityContext.html" title="GSignondSecurityContext">
10 <link rel="next" href="GSignondSecretStorage.html" title="GSignondSecretStorage">
11 <meta name="generator" content="GTK-Doc V1.19.1 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
16 <td width="100%" align="left">
17 <a href="#" class="shortcut">Top</a>
18                    | 
19                   <a href="#GSignondStorageManager.description" class="shortcut">Description</a>
20                    | 
21                   <a href="#GSignondStorageManager.object-hierarchy" class="shortcut">Object Hierarchy</a>
22                    | 
23                   <a href="#GSignondStorageManager.properties" class="shortcut">Properties</a>
24 </td>
25 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
26 <td><a accesskey="u" href="ch05.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
27 <td><a accesskey="p" href="gsignond-GSignondSecurityContext.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
28 <td><a accesskey="n" href="GSignondSecretStorage.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
29 </tr></table>
30 <div class="refentry">
31 <a name="GSignondStorageManager"></a><div class="titlepage"></div>
32 <div class="refnamediv"><table width="100%"><tr>
33 <td valign="top">
34 <h2><span class="refentrytitle"><a name="GSignondStorageManager.top_of_page"></a>GSignondStorageManager</span></h2>
35 <p>GSignondStorageManager — manages encrypted disk storage for storing the secret database</p>
36 </td>
37 <td valign="top" align="right"></td>
38 </tr></table></div>
39 <div class="refsynopsisdiv">
40 <a name="GSignondStorageManager.synopsis"></a><h2>Synopsis</h2>
41 <pre class="synopsis">
42 #include &lt;gsignond/gsignond-plugin-interface.h&gt;
43
44 struct              <a class="link" href="GSignondStorageManager.html#GSignondStorageManager-struct" title="struct GSignondStorageManager">GSignondStorageManager</a>;
45 struct              <a class="link" href="GSignondStorageManager.html#GSignondStorageManagerClass" title="struct GSignondStorageManagerClass">GSignondStorageManagerClass</a>;
46 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-delete-storage" title="gsignond_storage_manager_delete_storage ()">gsignond_storage_manager_delete_storage</a>
47                                                         (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);
48 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-filesystem-is-mounted" title="gsignond_storage_manager_filesystem_is_mounted ()">gsignond_storage_manager_filesystem_is_mounted</a>
49                                                         (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);
50 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-initialize-storage" title="gsignond_storage_manager_initialize_storage ()">gsignond_storage_manager_initialize_storage</a>
51                                                         (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);
52 const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-mount-filesystem" title="gsignond_storage_manager_mount_filesystem ()">gsignond_storage_manager_mount_filesystem</a>
53                                                         (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);
54 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-storage-is-initialized" title="gsignond_storage_manager_storage_is_initialized ()">gsignond_storage_manager_storage_is_initialized</a>
55                                                         (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);
56 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-unmount-filesystem" title="gsignond_storage_manager_unmount_filesystem ()">gsignond_storage_manager_unmount_filesystem</a>
57                                                         (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);
58 </pre>
59 </div>
60 <div class="refsect1">
61 <a name="GSignondStorageManager.object-hierarchy"></a><h2>Object Hierarchy</h2>
62 <pre class="synopsis">
63   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
64    +----GSignondStorageManager
65 </pre>
66 </div>
67 <div class="refsect1">
68 <a name="GSignondStorageManager.properties"></a><h2>Properties</h2>
69 <pre class="synopsis">
70   "<a class="link" href="GSignondStorageManager.html#GSignondStorageManager--config" title='The "config" property'>config</a>"                   <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>*       : Read / Write / Construct Only
71 </pre>
72 </div>
73 <div class="refsect1">
74 <a name="GSignondStorageManager.description"></a><h2>Description</h2>
75 <p>
76 <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> manages encrypted disk storage for storing the
77 databases. The default implementation maintains a simple per-user
78 directory accessible only to root and gsignond group, but gSSO can be
79 configured to use a custom extension that provides a subclassed
80 implementation of <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a>
81 (see <a class="link" href="GSignondExtension.html" title="GSignondExtension"><span class="type">GSignondExtension</span></a> for instructions and pointers to examples).
82 </p>
83 </div>
84 <div class="refsect1">
85 <a name="GSignondStorageManager.details"></a><h2>Details</h2>
86 <div class="refsect2">
87 <a name="GSignondStorageManager-struct"></a><h3>struct GSignondStorageManager</h3>
88 <pre class="programlisting">struct GSignondStorageManager;</pre>
89 <p>
90 Opaque <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> data structure.
91 </p>
92 </div>
93 <hr>
94 <div class="refsect2">
95 <a name="GSignondStorageManagerClass"></a><h3>struct GSignondStorageManagerClass</h3>
96 <pre class="programlisting">struct GSignondStorageManagerClass {
97     GObjectClass parent_class;
98
99     gboolean (*initialize_storage) (GSignondStorageManager *self);
100     gboolean (*delete_storage) (GSignondStorageManager *self);
101     gboolean (*storage_is_initialized) (GSignondStorageManager *self);
102     const gchar * (*mount_filesystem) (GSignondStorageManager *self);
103     gboolean (*unmount_filesystem) (GSignondStorageManager *self);
104     gboolean (*filesystem_is_mounted) (GSignondStorageManager *self);
105 };
106 </pre>
107 <p>
108 <a class="link" href="GSignondStorageManager.html#GSignondStorageManagerClass" title="struct GSignondStorageManagerClass"><span class="type">GSignondStorageManagerClass</span></a> class containing pointers to class methods.
109 </p>
110 <div class="variablelist"><table border="0">
111 <col align="left" valign="top">
112 <tbody>
113 <tr>
114 <td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="GSignondStorageManagerClass.parent-class"></a>parent_class</code></em>;</span></p></td>
115 <td>parent class.</td>
116 </tr>
117 <tr>
118 <td><p><span class="term"><em class="structfield"><code><a name="GSignondStorageManagerClass.initialize-storage"></a>initialize_storage</code></em> ()</span></p></td>
119 <td>an implementation of <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-initialize-storage" title="gsignond_storage_manager_initialize_storage ()"><code class="function">gsignond_storage_manager_initialize_storage()</code></a>
120 </td>
121 </tr>
122 <tr>
123 <td><p><span class="term"><em class="structfield"><code><a name="GSignondStorageManagerClass.delete-storage"></a>delete_storage</code></em> ()</span></p></td>
124 <td>an implementation of <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-delete-storage" title="gsignond_storage_manager_delete_storage ()"><code class="function">gsignond_storage_manager_delete_storage()</code></a>
125 </td>
126 </tr>
127 <tr>
128 <td><p><span class="term"><em class="structfield"><code><a name="GSignondStorageManagerClass.storage-is-initialized"></a>storage_is_initialized</code></em> ()</span></p></td>
129 <td>an implementation of <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-storage-is-initialized" title="gsignond_storage_manager_storage_is_initialized ()"><code class="function">gsignond_storage_manager_storage_is_initialized()</code></a>
130 </td>
131 </tr>
132 <tr>
133 <td><p><span class="term"><em class="structfield"><code><a name="GSignondStorageManagerClass.mount-filesystem"></a>mount_filesystem</code></em> ()</span></p></td>
134 <td>an implementation of <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-mount-filesystem" title="gsignond_storage_manager_mount_filesystem ()"><code class="function">gsignond_storage_manager_mount_filesystem()</code></a>
135 </td>
136 </tr>
137 <tr>
138 <td><p><span class="term"><em class="structfield"><code><a name="GSignondStorageManagerClass.unmount-filesystem"></a>unmount_filesystem</code></em> ()</span></p></td>
139 <td>an implementation of <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-unmount-filesystem" title="gsignond_storage_manager_unmount_filesystem ()"><code class="function">gsignond_storage_manager_unmount_filesystem()</code></a>
140 </td>
141 </tr>
142 <tr>
143 <td><p><span class="term"><em class="structfield"><code><a name="GSignondStorageManagerClass.filesystem-is-mounted"></a>filesystem_is_mounted</code></em> ()</span></p></td>
144 <td>an implementation of <a class="link" href="GSignondStorageManager.html#gsignond-storage-manager-filesystem-is-mounted" title="gsignond_storage_manager_filesystem_is_mounted ()"><code class="function">gsignond_storage_manager_filesystem_is_mounted()</code></a>
145 </td>
146 </tr>
147 </tbody>
148 </table></div>
149 </div>
150 <hr>
151 <div class="refsect2">
152 <a name="gsignond-storage-manager-delete-storage"></a><h3>gsignond_storage_manager_delete_storage ()</h3>
153 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gsignond_storage_manager_delete_storage
154                                                         (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
155 <p>
156 Destroys all the encryption keys and wipes the storage. <a class="link" href="gsignond-Utility-functions.html#gsignond-wipe-directory" title="gsignond_wipe_directory ()"><code class="function">gsignond_wipe_directory()</code></a>
157 is typically used for the latter.
158 </p>
159 <div class="variablelist"><table border="0">
160 <col align="left" valign="top">
161 <tbody>
162 <tr>
163 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
164 <td>object instance.</td>
165 </tr>
166 <tr>
167 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
168 <td>success?</td>
169 </tr>
170 </tbody>
171 </table></div>
172 </div>
173 <hr>
174 <div class="refsect2">
175 <a name="gsignond-storage-manager-filesystem-is-mounted"></a><h3>gsignond_storage_manager_filesystem_is_mounted ()</h3>
176 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gsignond_storage_manager_filesystem_is_mounted
177                                                         (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
178 <p>
179 Checks if the encrypted storage filesystem is currently mounted.
180 </p>
181 <div class="variablelist"><table border="0">
182 <col align="left" valign="top">
183 <tbody>
184 <tr>
185 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
186 <td>object instance.</td>
187 </tr>
188 <tr>
189 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
190 <td>filesystem is currently mounted?</td>
191 </tr>
192 </tbody>
193 </table></div>
194 </div>
195 <hr>
196 <div class="refsect2">
197 <a name="gsignond-storage-manager-initialize-storage"></a><h3>gsignond_storage_manager_initialize_storage ()</h3>
198 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gsignond_storage_manager_initialize_storage
199                                                         (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
200 <p>
201 Initialize encryption storage. This means making sure that the 
202 necessary directories exist and are accessible.
203 </p>
204 <div class="variablelist"><table border="0">
205 <col align="left" valign="top">
206 <tbody>
207 <tr>
208 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
209 <td>object instance.</td>
210 </tr>
211 <tr>
212 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
213 <td>success?</td>
214 </tr>
215 </tbody>
216 </table></div>
217 </div>
218 <hr>
219 <div class="refsect2">
220 <a name="gsignond-storage-manager-mount-filesystem"></a><h3>gsignond_storage_manager_mount_filesystem ()</h3>
221 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       gsignond_storage_manager_mount_filesystem
222                                                         (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
223 <p>
224 Mounts an encrypted storage and returns the filesystem path of the storage
225 mount point. This path will be used to access the secret database via
226 <a class="link" href="GSignondSecretStorage.html" title="GSignondSecretStorage"><span class="type">GSignondSecretStorage</span></a>.
227 </p>
228 <p>
229 The default implemenation does nothing, and immediately returns the path for the 
230 secret database.
231 </p>
232 <div class="variablelist"><table border="0">
233 <col align="left" valign="top">
234 <tbody>
235 <tr>
236 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
237 <td>object instance.</td>
238 </tr>
239 <tr>
240 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
241 <td>path of the storage mount point. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
242 </td>
243 </tr>
244 </tbody>
245 </table></div>
246 </div>
247 <hr>
248 <div class="refsect2">
249 <a name="gsignond-storage-manager-storage-is-initialized"></a><h3>gsignond_storage_manager_storage_is_initialized ()</h3>
250 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gsignond_storage_manager_storage_is_initialized
251                                                         (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
252 <p>
253 Checks if the storage has been initialized.
254 </p>
255 <div class="variablelist"><table border="0">
256 <col align="left" valign="top">
257 <tbody>
258 <tr>
259 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
260 <td>object instance.</td>
261 </tr>
262 <tr>
263 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
264 <td>storage has been initialized?</td>
265 </tr>
266 </tbody>
267 </table></div>
268 </div>
269 <hr>
270 <div class="refsect2">
271 <a name="gsignond-storage-manager-unmount-filesystem"></a><h3>gsignond_storage_manager_unmount_filesystem ()</h3>
272 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gsignond_storage_manager_unmount_filesystem
273                                                         (<em class="parameter"><code><a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager"><span class="type">GSignondStorageManager</span></a> *self</code></em>);</pre>
274 <p>
275 Unmounts a previously mounted encrypted storage filesystem.
276 </p>
277 <div class="variablelist"><table border="0">
278 <col align="left" valign="top">
279 <tbody>
280 <tr>
281 <td><p><span class="term"><em class="parameter"><code>self</code></em> :</span></p></td>
282 <td>object instance.</td>
283 </tr>
284 <tr>
285 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
286 <td>success?</td>
287 </tr>
288 </tbody>
289 </table></div>
290 </div>
291 </div>
292 <div class="refsect1">
293 <a name="GSignondStorageManager.property-details"></a><h2>Property Details</h2>
294 <div class="refsect2">
295 <a name="GSignondStorageManager--config"></a><h3>The <code class="literal">"config"</code> property</h3>
296 <pre class="programlisting">  "config"                   <a class="link" href="GSignondConfig.html" title="GSignondConfig"><span class="type">GSignondConfig</span></a>*       : Read / Write / Construct Only</pre>
297 <p>Configuration object.</p>
298 </div>
299 </div>
300 </div>
301 <div class="footer">
302 <hr>
303           Generated by GTK-Doc V1.19.1</div>
304 </body>
305 </html>