Silence manual page generation commands.
[pwmd.git] / doc / pwmd.html
blob8378a2849af304e86af8ea1d8a8066da0068799f
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
2 <html>
3 <!-- Created on February 27, 2013 by texi2html 1.82
4 texi2html was written by:
5 Lionel Cons <Lionel.Cons@cern.ch> (original author)
6 Karl Berry <karl@freefriends.org>
7 Olaf Bachmann <obachman@mathematik.uni-kl.de>
8 and many others.
9 Maintained by: Many creative people.
10 Send bugs and suggestions to <texi2html-bug@nongnu.org>
11 -->
12 <head>
13 <title>PWMD Manual</title>
15 <meta name="description" content="PWMD Manual">
16 <meta name="keywords" content="PWMD Manual">
17 <meta name="resource-type" content="document">
18 <meta name="distribution" content="global">
19 <meta name="Generator" content="texi2html 1.82">
20 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
21 <style type="text/css">
22 <!--
23 a.summary-letter {text-decoration: none}
24 blockquote.smallquotation {font-size: smaller}
25 pre.display {font-family: serif}
26 pre.format {font-family: serif}
27 pre.menu-comment {font-family: serif}
28 pre.menu-preformatted {font-family: serif}
29 pre.smalldisplay {font-family: serif; font-size: smaller}
30 pre.smallexample {font-size: smaller}
31 pre.smallformat {font-family: serif; font-size: smaller}
32 pre.smalllisp {font-size: smaller}
33 span.roman {font-family:serif; font-weight:normal;}
34 span.sansserif {font-family:sans-serif; font-weight:normal;}
35 ul.toc {list-style: none}
36 -->
37 </style>
40 </head>
42 <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
44 <a name="Top"></a>
45 <table cellpadding="1" cellspacing="1" border="0">
46 <tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
47 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
48 <td valign="middle" align="left">[Index]</td>
49 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
50 </tr></table>
51 <h1 class="settitle">PWMD Manual</h1>
54 <table class="menu" border="0" cellspacing="0">
55 <tr><td align="left" valign="top"><a href="#Introduction">1. Overview of <code>pwmd</code></a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> Overview of pwmd.
56 </td></tr>
57 <tr><td align="left" valign="top"><a href="#Invoking">2. Invoking <code>pwmd</code></a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> Command line options.
58 </td></tr>
59 <tr><td align="left" valign="top"><a href="#Configuration">3. <code>pwmd</code> configuration file options</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> Configuration file options.
60 </td></tr>
61 <tr><td align="left" valign="top"><a href="#Commands">6. Protocol commands and their syntax</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> Protocol commands.
62 </td></tr>
63 <tr><td align="left" valign="top"><a href="#Status-Messages">37. Status messages and their meanings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> Status lines and their meaning.
64 </td></tr>
65 <tr><td align="left" valign="top"><a href="#Target-Attribute">38. The <code>target</code> attribute</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> A kind of symbolic link.
66 </td></tr>
67 <tr><td align="left" valign="top"><a href="#Signals">39. Recognized signals</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> Signals known to pwmd.
68 </td></tr>
69 <tr><td align="left" valign="top"><a href="#Concept-Index">Concept Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> Index of concepts.
70 </td></tr>
71 </table>
73 <hr size="1">
74 <a name="Introduction"></a>
75 <table cellpadding="1" cellspacing="1" border="0">
76 <tr><td valign="middle" align="left">[<a href="#Top" title="Previous section in reading order"> &lt; </a>]</td>
77 <td valign="middle" align="left">[<a href="#Invoking" title="Next section in reading order"> &gt; </a>]</td>
78 <td valign="middle" align="left"> &nbsp; </td>
79 <td valign="middle" align="left">[ &lt;&lt; ]</td>
80 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
81 <td valign="middle" align="left">[<a href="#Invoking" title="Next chapter"> &gt;&gt; </a>]</td>
82 <td valign="middle" align="left"> &nbsp; </td>
83 <td valign="middle" align="left"> &nbsp; </td>
84 <td valign="middle" align="left"> &nbsp; </td>
85 <td valign="middle" align="left"> &nbsp; </td>
86 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
87 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
88 <td valign="middle" align="left">[Index]</td>
89 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
90 </tr></table>
91 <a name="Overview-of-pwmd"></a>
92 <h1 class="chapter">1. Overview of <code>pwmd</code></h1>
99 <p><code>pwmd</code> or <em>Password Manager Daemon</em> is a server that
100 applications connect to and send commands to store and retrieve data
101 that is saved in an encrypted <abbr>XML</abbr> document.
102 </p>
103 <p>The server uses the Assuan protocol (See <a href="assuan.html#Implementation">(assuan)Implementation</a>) which
104 is the same used by <code>gpg-agent</code>, <code>pinentry</code> and
105 <code>scdaemon</code>. It also uses <cite>libgpg-error</cite> for error reporting with
106 the error source set as <var>GPG_ERR_SOURCE_USER_1</var>.
107 </p>
109 <p>The <abbr>XML</abbr> document uses the following <abbr>DTD</abbr>:
110 </p>
111 <table><tr><td>&nbsp;</td><td><pre class="example"> &lt;?xml version=&quot;1.0&quot;?&gt;
112 &lt;!DOCTYPE pwmd [
113 &lt;!ELEMENT pwmd (element*)&gt;
114 &lt;!ATTLIST element _name CDATA #REQUIRED&gt;
115 ]&gt;
116 </pre></td></tr></table>
118 <p>The <code>pwmd</code> element is the document root node while all other elements
119 of the document have the name <code>element</code> with an attribute <code>_name</code>
120 whose value uniquely identifies the element at the current element tree depth.
121 It is done this way to avoid <abbr>XML</abbr> parsing errors for commonly used
122 characters. A <abbr>URL</abbr> for example would be an invalid <abbr>XML</abbr> element
123 since the <abbr>URI</abbr> contains a &lsquo;<samp>:</samp>&rsquo; which is also the <abbr>XML</abbr>
124 namespace separator.
125 </p>
126 <p>As mentioned, an element name must be unique for the current element tree
127 depth. You cannot have two elements containing the same <code>_name</code> attribute
128 value. <code>pwmd</code> will stop searching for an element of an <em>element
129 path</em> at the first match then continue searching for the next element of the
130 element path beginning at the child node of the matched element.
131 </p>
132 <p>An <em>element path</em> is a &lt;TAB&gt; delimited character string where each
133 &lt;TAB&gt; separates each element in the path. For example, the element path
134 <code>a&lt;TAB&gt;b&lt;TAB&gt;c</code> has the following <abbr>XML</abbr> document structure:
135 </p>
136 <table><tr><td>&nbsp;</td><td><pre class="example"> &lt;pwmd&gt;
137 &lt;element _name=&quot;a&quot;&gt;
138 &lt;element _name=&quot;b&quot;&gt;
139 &lt;element _name=&quot;c&quot;&gt;
140 [... element value or content ...]
141 &lt;/element&gt;
142 &lt;/element&gt;
143 &lt;/element&gt;
144 &lt;/pwmd&gt;
145 </pre></td></tr></table>
147 <p>The only restriction of an element name is that it contain no whitespace
148 characters. It also cannot begin with a &lsquo;<samp>!</samp>&rsquo; since this character is
149 reserved for the <code>target</code> attribute. See section <a href="#Target-Attribute">The <code>target</code> attribute</a>.
150 </p>
151 <hr size="6">
152 <a name="Invoking"></a>
153 <table cellpadding="1" cellspacing="1" border="0">
154 <tr><td valign="middle" align="left">[<a href="#Introduction" title="Previous section in reading order"> &lt; </a>]</td>
155 <td valign="middle" align="left">[<a href="#Configuration" title="Next section in reading order"> &gt; </a>]</td>
156 <td valign="middle" align="left"> &nbsp; </td>
157 <td valign="middle" align="left">[<a href="#Introduction" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
158 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
159 <td valign="middle" align="left">[<a href="#Configuration" title="Next chapter"> &gt;&gt; </a>]</td>
160 <td valign="middle" align="left"> &nbsp; </td>
161 <td valign="middle" align="left"> &nbsp; </td>
162 <td valign="middle" align="left"> &nbsp; </td>
163 <td valign="middle" align="left"> &nbsp; </td>
164 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
165 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
166 <td valign="middle" align="left">[Index]</td>
167 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
168 </tr></table>
169 <a name="Invoking-pwmd"></a>
170 <h1 class="chapter">2. Invoking <code>pwmd</code></h1>
174 <p>When <code>pwmd</code> is started with the &lsquo;<samp>--use-agent</samp>&rsquo; command
175 line option then <code>pwmd</code> will use <code>gpg-agent</code> for key
176 generation, decryption, signing and caching of passphrases as the
177 default rather than symmetrically encrypted data files.
178 <code>gpg-agent</code> must be running prior to <code>pwmd</code> startup when
179 this option is enabled. The <code>GPG_AGENT_INFO</code> environment variable is
180 set by <code>gpg-agent</code> and <code>pwmd</code> uses this variable to
181 determine where the <code>gpg-agent</code> socket is listening for
182 connections.
183 </p>
184 <p>It is recommended to pass the &lsquo;<samp>--allow-preset-passphrase</samp>&rsquo;
185 command line option to <code>gpg-agent</code>. Doing so allows <code>pwmd</code>
186 cache pushing on startup. It is also recommended to pass the
187 &lsquo;<samp>--allow-loopback-pinentry</samp>&rsquo; to <code>gpg-agent</code>. This option allows
188 a passphrase to be inquired from <code>pwmd</code> when a <code>pinentry</code> is
189 unavailable to the client.
190 </p>
191 <a name="index-Running-pwmd"></a>
192 <p><code>pwmd</code> is executed as follows:
193 </p>
194 <table><tr><td>&nbsp;</td><td><pre class="example">pwmd <var>options</var> [ file1 ] [ &hellip; ]
195 </pre></td></tr></table>
197 <p>Non-option arguments are data files to cache on startup. When the data file
198 requires a passphrase for decryption a <code>pinentry</code> will prompt either
199 on the current <abbr>TTY</abbr> or from an X11 window when the <code>DISPLAY</code>
200 environment variable is set.
201 </p>
202 <a name="index-Options"></a>
203 <a name="index-Arguments"></a>
204 <p>The following command line options are supported:
205 </p>
206 <a name="index-Getting-help"></a>
207 <dl compact="compact">
208 <dt> &lsquo;<samp>--homedir directory</samp>&rsquo;</dt>
209 <dd><p>The root directory where pwmd will store its data and temporary files. The
210 default is &lsquo;<tt>~/.pwmd</tt>&rsquo;.
211 </p>
212 </dd>
213 <dt> &lsquo;<samp>--rcfile, -f rcfile</samp>&rsquo;</dt>
214 <dd><p>Specify an alternate configuration file. The default is
215 &lsquo;<tt>~/.pwmd/config</tt>&rsquo;.
216 </p>
217 </dd>
218 <dt> &lsquo;<samp>--use-agent</samp>&rsquo;</dt>
219 <dd><p>Enable the use of <code>gpg-agent</code> and add support for data files
220 encrypted with a keypair. Files previously handled by
221 <code>gpg-agent</code> when this option is not specified will no longer be
222 able to be opened and new data files are symmetrically or conventionally
223 encrypted and without a public and private key. If
224 specified, both data file types are supported.
225 </p>
226 </dd>
227 <dt> &lsquo;<samp>--import, -I filename</samp>&rsquo;</dt>
228 <dd><p>Imports an <abbr>XML</abbr> file. The <abbr>XML</abbr> file should be in conformance to
229 the <code>pwmd</code> <abbr>DTD</abbr> (see section <a href="#Introduction">Overview of <code>pwmd</code></a>). You
230 will be prompted for a passphrase to encrypt with. The output is written to
231 the filename specified with &lsquo;<samp>--outfile</samp>&rsquo;. To make use of the imported
232 data, place the output file in &lsquo;<tt>~/.pwmd/data</tt>&rsquo;.
233 </p>
234 </dd>
235 <dt> &lsquo;<samp>--keyparam S-expression</samp>&rsquo;</dt>
236 <dd><p>The key parameters to use when generating a new key pair while importing an
237 <abbr>XML</abbr> file or when converting a <em>version 2</em> data file. The argument
238 must be a valid S-expression (See <a href="gcrypt.html#S_002dexpressions">(gcrypt)S-expressions</a>).
239 </p>
240 </dd>
241 <dt> &lsquo;<samp>--keygrip hexstring</samp>&rsquo;</dt>
242 <dd><p>Specifies the hexadecimal encoded public key-grip to use for encryption when
243 importing or converting. When not specified a new key-pair will be created.
244 </p>
245 </dd>
246 <dt> &lsquo;<samp>--sign-keygrip hexstring</samp>&rsquo;</dt>
247 <dd><p>Specifies the hexadecimal encoded public key-grip to use for signing of the
248 data file when importing or converting. When not specified the generated
249 public key or the key specified with the &lsquo;<samp>--keygrip</samp>&rsquo; option will be
250 used.
251 </p>
252 </dd>
253 <dt> &lsquo;<samp>--passphrase-file, -k filename&quot;</samp>&rsquo;</dt>
254 <dd><p>Obtain the passphrase from the specified filename.
255 </p>
256 </dd>
257 <dt> &lsquo;<samp>--s2k-count iterations</samp>&rsquo;</dt>
258 <dd><p>The number of times to hash the passphrase when importing or converting. The
259 default is the gpg-agent calibrated value of the machine. When less than
260 &lsquo;<samp>65536</samp>&rsquo; the default will be used.
261 </p>
262 </dd>
263 <dt> &lsquo;<samp>--cipher-iterations iterations</samp>&rsquo;</dt>
264 <dd><p>The number of symmetric encryption iterations. The value is actually N+1. The
265 default is 0+1.
266 </p>
267 </dd>
268 <dt> &lsquo;<samp>--cipher algo</samp>&rsquo;</dt>
269 <dd><p>When importing, the cipher to use for data encryption. See the <var>cipher</var>
270 configuration parameter (see section <a href="#Configuration"><code>pwmd</code> configuration file options</a>) for available ciphers. The
271 default is &lsquo;<samp>aes256</samp>&rsquo;.
272 </p>
273 </dd>
274 <dt> &lsquo;<samp>--convert, -C filename</samp>&rsquo;</dt>
275 <dd><p>Converts a <code>pwmd</code> <em>version 2</em> data file to a <em>version 3</em>
276 data file. If encrypted, you will be prompted for a passphrase to use for
277 decryption unless &lsquo;<samp>--passphrase-file</samp>&rsquo; was specified. The converted data
278 file will be saved to the filename specified with &lsquo;<samp>--outfile</samp>&rsquo;. All
279 &lsquo;<samp>--import</samp>&rsquo; related options may also be used when converting.
280 </p>
281 </dd>
282 <dt> &lsquo;<samp>--disable-dump, -D</samp>&rsquo;</dt>
283 <dd><p>Disable the <code>XPATH</code>, <code>XPATHATTR</code>, <code>LIST</code> and <code>DUMP</code>
284 protocol commands (see section <a href="#Commands">Protocol commands and their syntax</a>). This overrides any
285 <var>disable_list_and_dump</var> configuration parameter (see section <a href="#Configuration"><code>pwmd</code> configuration file options</a>).
286 </p>
287 </dd>
288 <dt> &lsquo;<samp>--no-fork, -n</samp>&rsquo;</dt>
289 <dd><p>Run as a foreground process and do not fork into the background.
290 </p>
291 </dd>
292 <dt> &lsquo;<samp>--ignore</samp>&rsquo;</dt>
293 <dd><p>Ignore cache pushing failures on startup. By default, <code>pwmd</code> will exit
294 if an error occurred do to an invalid passphrase or other error.
295 </p>
296 </dd>
297 <dt> &lsquo;<samp>--debug-level keyword,keyword,...</samp>&rsquo;</dt>
298 <dd><p>Output libassuan See <a href="assuan.html#Top">(assuan)Top</a> protocol IO with the comma
299 separated list of output keywords. Valid keywords are: <code>init</code>,
300 <code>ctx</code>, <code>engine</code>, <code>data</code>, <code>sysio</code> and <code>control</code>.
301 </p>
302 </dd>
303 <dt> &lsquo;<samp>--version</samp>&rsquo;</dt>
304 <dd><p>Show the version, copyright and compile time features and exit.
305 </p>
306 </dd>
307 <dt> &lsquo;<samp>--help</samp>&rsquo; </dt>
308 <dd><p>Print a summary of options.
309 </p></dd>
310 </dl>
313 <hr size="6">
314 <a name="Configuration"></a>
315 <table cellpadding="1" cellspacing="1" border="0">
316 <tr><td valign="middle" align="left">[<a href="#Invoking" title="Previous section in reading order"> &lt; </a>]</td>
317 <td valign="middle" align="left">[<a href="#TLS" title="Next section in reading order"> &gt; </a>]</td>
318 <td valign="middle" align="left"> &nbsp; </td>
319 <td valign="middle" align="left">[<a href="#Invoking" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
320 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
321 <td valign="middle" align="left">[<a href="#TLS" title="Next chapter"> &gt;&gt; </a>]</td>
322 <td valign="middle" align="left"> &nbsp; </td>
323 <td valign="middle" align="left"> &nbsp; </td>
324 <td valign="middle" align="left"> &nbsp; </td>
325 <td valign="middle" align="left"> &nbsp; </td>
326 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
327 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
328 <td valign="middle" align="left">[Index]</td>
329 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
330 </tr></table>
331 <a name="pwmd-configuration-file-options"></a>
332 <h1 class="chapter">3. <code>pwmd</code> configuration file options</h1>
335 <p>If no configuration file is specified with the <code>pwmd</code> &lsquo;<samp>-f</samp>&rsquo;
336 command line option, <code>pwmd</code> will read &lsquo;<tt>~/.pwmd/config</tt>&rsquo; if it
337 exists, and if not, will use defaults. Blank lines and lines beginning with
338 &lsquo;<samp>#</samp>&rsquo; are ignored. Some parameters may have data file specific settings by
339 placing them in a file section. A file section is declared by surrounding the
340 filename with braces (i.e., &lsquo;<samp>[filename]</samp>&rsquo;). Global options may be
341 specified in a &lsquo;<samp>[global]</samp>&rsquo; section and are the default options for new or
342 unspecified files.
343 </p>
344 <p>A tilde &lt;~&gt; will be expanded to the home directory of the invoking user
345 when contained in a parameter whose value is a filename.
346 </p>
347 <a name="index-Reloading-the-configuration-file"></a>
348 <p>The configuration file can be reloaded by sending the <em>SIGHUP</em> signal to
349 a <code>pwmd</code> process.
350 </p>
351 <a name="index-Global-configuration-options"></a>
352 <p>The following options are only for use in the &lsquo;<samp>global</samp>&rsquo; section:
353 </p>
354 <dl compact="compact">
355 <dt> &lsquo;<samp>socket_path = /path/to/socket</samp>&rsquo;</dt>
356 <dd><p>Listen on the specified socket. The default is &lsquo;<tt>~/.pwmd/socket</tt>&rsquo;.
357 </p>
358 </dd>
359 <dt> &lsquo;<samp>socket_perms = octal_mode</samp>&rsquo;</dt>
360 <dd><p>Permissions to set after creating the socket. This will override any
361 <cite>umask(2)</cite> setting.
362 </p>
363 </dd>
364 <dt> &lsquo;<samp>allowed = user,@group,...</samp>&rsquo;</dt>
365 <dd><p>A comma separated list of local user names or group names allowed to connect
366 to the socket. Groups should be prefixed with a &lsquo;<samp>@</samp>&rsquo;. When not specified
367 only the invoking user may connect.
368 </p>
369 </dd>
370 <dt> &lsquo;<samp>disable_mlockall = boolean</samp>&rsquo;</dt>
371 <dd><p>When set to <var>false</var>, <cite>mlockall(2)</cite> will be called on startup. This
372 will use more physical memory but may also be more secure since no swapping to
373 disk will occur. The default is <var>true</var>.
374 </p>
375 </dd>
376 <dt> &lsquo;<samp>log_path = /path/to/logfile</samp>&rsquo;</dt>
377 <dd><p>Logs informational messages to the specified file. The default is
378 &lsquo;<tt>~/.pwmd/log</tt>&rsquo;.
379 </p>
380 </dd>
381 <dt> &lsquo;<samp>enable_logging = boolean</samp>&rsquo;</dt>
382 <dd><p>Enable or disable logging to <var>log_path</var>. The default is <code>false</code>.
383 </p>
384 </dd>
385 <dt> &lsquo;<samp>syslog = boolean</samp>&rsquo;</dt>
386 <dd><p>Enable logging to <cite>syslog(8)</cite> with facility <em>LOG_DAEMON</em> and priority
387 <em>LOG_INFO</em>. The default is <code>false</code>.
388 </p>
389 </dd>
390 <dt> &lsquo;<samp>log_level = level</samp>&rsquo;</dt>
391 <dd><p>When <code>0</code>, only connections and errors are logged. When <code>1</code>, client
392 commands are also logged. When <code>2</code>, the command arguments are also logged.
393 The default is <code>0</code>.
394 </p>
395 </dd>
396 <dt> &lsquo;<samp>use_agent = boolean</samp>&rsquo;</dt>
397 <dd><p>When true, enable <code>gpg-agent</code> support (see section <a href="#Invoking">Invoking <code>pwmd</code></a>).
398 </p>
399 </dd>
400 <dt> &lsquo;<samp>agent_env_file = filename</samp>&rsquo;</dt>
401 <dd><p>A file containing the <code>GPG_AGENT_INFO</code> environment variable and value as
402 output by the <code>gpg-agent</code> &lsquo;<samp>--write-env-file</samp>&rsquo; command line
403 option.
404 </p>
405 </dd>
406 <dt> &lsquo;<samp>kill_scd = boolean</samp>&rsquo;</dt>
407 <dd><p>Kill <code>scdaemon</code> after each <code>OPEN</code> (see section <a href="#OPEN">OPEN command</a>) or <code>SAVE</code>
408 (see section <a href="#SAVE">SAVE command</a>) command.
409 </p>
410 </dd>
411 <dt> &lsquo;<samp>disable_list_and_dump = boolean</samp>&rsquo;</dt>
412 <dd><p>When <code>true</code>, the <code>XPATH</code>, <code>XPATHATTR</code>, <code>LIST</code> and
413 <code>DUMP</code> protocol commands (see section <a href="#Commands">Protocol commands and their syntax</a>) will be disabled.
414 </p>
415 </dd>
416 <dt> &lsquo;<samp>cache_push = file1,file2</samp>&rsquo;</dt>
417 <dd><p>A comma separated list of filenames that will be pushed into the file cache
418 upon startup. <code>pwmd</code> will prompt for the passphrase for each file unless
419 specified with the <var>passphrase</var> or <var>passphrase_file</var> parameters in a
420 matching file section.
421 </p>
422 </dd>
423 <dt> &lsquo;<samp>priority = integer</samp>&rsquo;</dt>
424 <dd><p>The priority, or niceness, of the server. The default is inherited from the
425 parent process.
426 </p>
427 </dd>
428 <dt> &lsquo;<samp>cipher = algorithm</samp>&rsquo;</dt>
429 <dd><p>The default cipher to use for data encryption. The algorithm must be one of:
430 <code>aes128</code>, <code>aes192</code>, <code>aes256</code>, <code>serpent128</code>,
431 <code>serpent192</code>, <code>serpent256</code>, <code>camellia128</code>,
432 <code>camellia192</code>, <code>camellia256</code>, <code>3des</code>, <code>cast5</code>,
433 <code>blowfish</code>, <code>twofish128</code> or <code>twofish256</code>. The default is
434 <code>aes256</code>.
435 </p>
436 </dd>
437 <dt> &lsquo;<samp>cipher_iterations = integer</samp>&rsquo;</dt>
438 <dd><p>The number of times to encrypt the XML data. This differs from the
439 <var>s2k_count</var> parameter which specifies the number of times to hash the
440 passphrase used to encrypt the data. The default is 0 although 1 iteration is
441 still done.
442 </p>
443 </dd>
444 <dt> &lsquo;<samp>cipher_progress = integer</samp>&rsquo;</dt>
445 <dd><p>Send a progress message to the client after the specified amount of encryption
446 or decryption iterations have been done. The default is 2000.
447 </p>
448 </dd>
449 <dt> &lsquo;<samp>algo = algorithm</samp>&rsquo;</dt>
450 <dd><p>The default algorithm to use when generating a new key-pair. The default is
451 <code>rsa</code>.
452 </p>
453 </dd>
454 <dt> &lsquo;<samp>nbits = bits</samp>&rsquo;</dt>
455 <dd><p>The default number of bits to use when generating a new key-pair. The default
456 is <code>2048</code>.
457 </p>
458 </dd>
459 <dt> &lsquo;<samp>pinentry_path = /path/to/pinentry</samp>&rsquo;</dt>
460 <dd><p>The location of the <code>pinentry</code> binary. This program is used to
461 prompt for a passphrase when not using <code>gpg-agent</code>. The default
462 is specified at compile time.
463 </p>
464 </dd>
465 <dt> &lsquo;<samp>pinentry_timeout = seconds</samp>&rsquo;</dt>
466 <dd><p>The number of seconds to wait for a pinentry before giving up and
467 returning an error. This timeout value is used for both waiting for
468 another pinentry to complete and for the pinentry waiting for user input.
469 </p></dd>
470 </dl>
472 <a name="index-Data-file-configuration-options"></a>
473 <p>The following options are defaults for new files when specified in the
474 &lsquo;<samp>global</samp>&rsquo; section. When placed in a data file section they are options
475 specific to that data file only.
476 </p>
477 <dl compact="compact">
478 <dt> &lsquo;<samp>backup = boolean</samp>&rsquo;</dt>
479 <dd><p>Whether to create a backup of the data file when saving. The backup filename
480 has the &lsquo;<tt>.backup</tt>&rsquo; extension appended to the opened file. The default is
481 <code>true</code>.
482 </p>
483 </dd>
484 <dt> &lsquo;<samp>cache_timeout = seconds</samp>&rsquo;</dt>
485 <dd><p>The number of seconds to keep the cache entry for this file. If <code>-1</code>, the
486 cache entry is kept forever. If <code>0</code>, each time an encrypted file is
487 <code>OPEN</code>ed (see section <a href="#OPEN">OPEN command</a>) a passphrase will be required. The default
488 is <code>-1</code>.
489 </p>
490 </dd>
491 <dt> &lsquo;<samp>xfer_progress = bytes</samp>&rsquo;</dt>
492 <dd><p>Commands that send data lines to the client will also send the <code>XFER</code>
493 status message (see section <a href="#Status-Messages">Status messages and their meanings</a>) after the specified number of bytes
494 have been sent. The number of bytes is rounded to <var>ASSUAN_LINELENGTH</var> or
495 <code>1002</code> bytes. The default is <code>8196</code>.
496 </p>
497 </dd>
498 <dt> &lsquo;<samp>passphrase = string</samp>&rsquo;</dt>
499 <dd><p>The passphrase to use for this file. If specified in the &lsquo;<samp>global</samp>&rsquo; section
500 then &lsquo;<samp>global</samp>&rsquo; is treated as a data filename and not a default for other
501 files. Note that if a client changes the passphrase for this data file then
502 this value is not modified and will need to be updated.
503 </p>
504 </dd>
505 <dt> &lsquo;<samp>passphrase_file = /path/to/file</samp>&rsquo;</dt>
506 <dd><p>Same as the <var>passphrase</var> parameter above but obtains the passphrase from
507 the specified filename.
508 </p>
509 </dd>
510 <dt> &lsquo;<samp>recursion_depth = integer</samp>&rsquo;</dt>
511 <dd><p>The maximum number of times to resolve a <code>target</code> attribute for an
512 element in an element path (see section <a href="#Target-Attribute">The <code>target</code> attribute</a>). An error is returned
513 when this value is exceeded. The default is <code>100</code> but can be disabled by
514 setting to <code>0</code> (<em>not recommended</em>).
515 </p>
516 </dd>
517 </dl>
518 <table class="menu" border="0" cellspacing="0">
519 <tr><td align="left" valign="top"><a href="#TLS">4. Configuring remote connections over TLS.</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> Remote connections over TLS.
520 </td></tr>
521 <tr><td align="left" valign="top"><a href="#Pinentry">5. Pinentry configuration</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> Configuration file and defaults.
522 </td></tr>
523 </table>
525 <hr size="6">
526 <a name="TLS"></a>
527 <table cellpadding="1" cellspacing="1" border="0">
528 <tr><td valign="middle" align="left">[<a href="#Configuration" title="Previous section in reading order"> &lt; </a>]</td>
529 <td valign="middle" align="left">[<a href="#Pinentry" title="Next section in reading order"> &gt; </a>]</td>
530 <td valign="middle" align="left"> &nbsp; </td>
531 <td valign="middle" align="left">[<a href="#Configuration" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
532 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
533 <td valign="middle" align="left">[<a href="#Pinentry" title="Next chapter"> &gt;&gt; </a>]</td>
534 <td valign="middle" align="left"> &nbsp; </td>
535 <td valign="middle" align="left"> &nbsp; </td>
536 <td valign="middle" align="left"> &nbsp; </td>
537 <td valign="middle" align="left"> &nbsp; </td>
538 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
539 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
540 <td valign="middle" align="left">[Index]</td>
541 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
542 </tr></table>
543 <a name="Configuring-remote-connections-over-TLS_002e"></a>
544 <h1 class="chapter">4. Configuring remote connections over TLS.</h1>
545 <p>Remote connections can also be made to <code>pwmd</code> over <abbr>TLS</abbr>.
546 Authentication is done by using X509 client certificates that are signed with
547 the same Certificate Authority (<abbr>CA</abbr>) as the server certificate.
548 </p>
549 <p>The <abbr>CA</abbr> certificate is expected to be found in
550 &lsquo;<tt>~/.pwmd/ca-cert.pem</tt>&rsquo; while the <code>pwmd</code> server certificate and key
551 file should be put in &lsquo;<tt>~/.pwmd/server-cert.pem</tt>&rsquo; and
552 &lsquo;<tt>~/.pwmd/server-key.pem</tt>&rsquo;, respectively.
553 </p>
554 <p>See the documentation of <code>certtool</code> or <code>openssl</code> for details
555 on creating self-signed certificates.
556 </p>
557 <p>The following TLS configuration options are available:
558 </p>
559 <dl compact="compact">
560 <dt> &lsquo;<samp>enable_tcp = boolean</samp>&rsquo;</dt>
561 <dd><p>Whether to enable TCP/TLS server support. If enabled, both TCP and the local
562 unix domain socket will listen for connections. The default is
563 <code>false</code>.
564 </p>
565 </dd>
566 <dt> &lsquo;<samp>tcp_port = integer</samp>&rsquo;</dt>
567 <dd><p>The TCP port to listen on when <var>enable_tcp</var> is <code>true</code>. The default is
568 <code>6466</code>.
569 </p>
570 </dd>
571 <dt> &lsquo;<samp>tcp_bind = string</samp>&rsquo;</dt>
572 <dd><p>The internet protocol to listen with. Must be one of <code>ipv4</code>, <code>ipv6</code>
573 or <code>any</code> to listen for both IPv4 and IPv6 connections.
574 </p>
575 </dd>
576 <dt> &lsquo;<samp>tcp_interface = string</samp>&rsquo;</dt>
577 <dd><p>Only useful if running as root.
578 </p>
579 </dd>
580 <dt> &lsquo;<samp>tls_timeout = seconds</samp>&rsquo;</dt>
581 <dd><p>The number of seconds to wait for a read() or write() call on a
582 <abbr>TLS</abbr> client file descriptor to complete before returning an
583 error. The default is <var>300</var>.
584 </p>
585 <p>Note that the <code>SAVE</code> command (see section <a href="#SAVE">SAVE command</a>) may take a longer time
586 to complete than other commands since key generation may need to be done
587 or do to a large &lsquo;<samp>--cipher-iterations</samp>&rsquo; setting.
588 </p>
589 </dd>
590 <dt> &lsquo;<samp>keepalive_interval = seconds</samp>&rsquo;</dt>
591 <dd><p>Send a keepalive status message to an idle remote client. An idle
592 client is one who is not in a command. The purpose of this status
593 message is to disconnect a hung remote client and release any file mutex
594 locks so another client may open the same data file.
595 </p>
596 </dd>
597 <dt> &lsquo;<samp>tls_access = string[,string,...]</samp>&rsquo;</dt>
598 <dd><p>A comma separated list of client X509 certificate fingerprints in SHA-1
599 format that will be allowed to connect or open a file. If prefixed with
600 <code>!</code> then access is denied for the fingerprint. When <code>!</code> is
601 found by itself in the list it is treated as a default for remaining
602 fingerprints in the list. The <code>+</code> prefix behaves the same but
603 allows access.
604 </p>
605 <p>The access control is two fold: when the client connects its SHA-1
606 fingerprint is matched against the list of allowed fingerprints in the
607 &lsquo;<samp>global</samp>&rsquo; section. When allowed in the &lsquo;<samp>global</samp>&rsquo; section the
608 connection is established and the client may proceed to <code>OPEN</code>
609 (see section <a href="#OPEN">OPEN command</a>) a data file. During the <code>OPEN</code> command the
610 fingerprint is checked again in a &lsquo;<samp>filename</samp>&rsquo; section. When this
611 parameter is not found in a &lsquo;<samp>filename</samp>&rsquo; section then access is granted.
612 </p>
613 </dd>
614 <dt> &lsquo;<samp>tcp_require_key = boolean</samp>&rsquo;</dt>
615 <dd><p>When <code>true</code>, require the remote client to provide the key or passphrase
616 to open a data file even if the file is cached. Note that the cache entry is
617 cleared during the see section <a href="#OPEN">OPEN command</a> command and the passphrase will be retrieved
618 from the client via a server <em>INQUIRE</em>. This option is a default
619 for all files when specified in the &lsquo;<samp>global</samp>&rsquo; section. The default
620 is <code>false</code>.
621 </p>
622 </dd>
623 <dt> &lsquo;<samp>tcp_wait = integer</samp>&rsquo;</dt>
624 <dd><p>The time in tenths of a second to wait between TCP connections. Setting to 0
625 will disable waiting. The default is <code>3</code>.
626 </p>
627 </dd>
628 <dt> &lsquo;<samp>tls_cipher_suite = string</samp>&rsquo;</dt>
629 <dd><p>The GnuTLS cipher suite and protocol to use. See the GnuTLS documentation for
630 information about the format of this string. The default is <code>SECURE256</code>.
631 </p></dd>
632 </dl>
634 <hr size="6">
635 <a name="Pinentry"></a>
636 <table cellpadding="1" cellspacing="1" border="0">
637 <tr><td valign="middle" align="left">[<a href="#TLS" title="Previous section in reading order"> &lt; </a>]</td>
638 <td valign="middle" align="left">[<a href="#Commands" title="Next section in reading order"> &gt; </a>]</td>
639 <td valign="middle" align="left"> &nbsp; </td>
640 <td valign="middle" align="left">[<a href="#TLS" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
641 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
642 <td valign="middle" align="left">[<a href="#Commands" title="Next chapter"> &gt;&gt; </a>]</td>
643 <td valign="middle" align="left"> &nbsp; </td>
644 <td valign="middle" align="left"> &nbsp; </td>
645 <td valign="middle" align="left"> &nbsp; </td>
646 <td valign="middle" align="left"> &nbsp; </td>
647 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
648 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
649 <td valign="middle" align="left">[Index]</td>
650 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
651 </tr></table>
652 <a name="Pinentry-configuration"></a>
653 <h1 class="chapter">5. Pinentry configuration</h1>
655 <p>The <code>pinentry</code> program is used to prompt the user for passphrase
656 input or as a confirmation dialog; it needs to know where to prompt for
657 the input, beit from a terminal or an X11 display.
658 </p>
659 <p>It is the responsibility of the client to tell <code>pinentry</code> about
660 the terminal or X11 display before requiring the input. This is done by
661 using the <code>pwmd</code> see section <a href="#OPTION">OPTION command</a> protocol command. It need be
662 done only once per client connection. To avoid the use of
663 <code>pinentry</code> entirely, use the <code>OPTION</code> (see section <a href="#OPTION">OPTION command</a>)
664 &lsquo;<samp>--disable-pinentry</samp>&rsquo; protocol command.
665 </p>
666 <hr size="6">
667 <a name="Commands"></a>
668 <table cellpadding="1" cellspacing="1" border="0">
669 <tr><td valign="middle" align="left">[<a href="#Pinentry" title="Previous section in reading order"> &lt; </a>]</td>
670 <td valign="middle" align="left">[<a href="#AGENT" title="Next section in reading order"> &gt; </a>]</td>
671 <td valign="middle" align="left"> &nbsp; </td>
672 <td valign="middle" align="left">[<a href="#Pinentry" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
673 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
674 <td valign="middle" align="left">[<a href="#AGENT" title="Next chapter"> &gt;&gt; </a>]</td>
675 <td valign="middle" align="left"> &nbsp; </td>
676 <td valign="middle" align="left"> &nbsp; </td>
677 <td valign="middle" align="left"> &nbsp; </td>
678 <td valign="middle" align="left"> &nbsp; </td>
679 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
680 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
681 <td valign="middle" align="left">[Index]</td>
682 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
683 </tr></table>
684 <a name="Protocol-commands-and-their-syntax"></a>
685 <h1 class="chapter">6. Protocol commands and their syntax</h1>
686 <table class="menu" border="0" cellspacing="0">
687 <tr><td align="left" valign="top"><a href="#AGENT">7. AGENT command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
688 </td></tr>
689 <tr><td align="left" valign="top"><a href="#ATTR">8. ATTR command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
690 </td></tr>
691 <tr><td align="left" valign="top"><a href="#CACHETIMEOUT">9. CACHETIMEOUT command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
692 </td></tr>
693 <tr><td align="left" valign="top"><a href="#CLEARCACHE">10. CLEARCACHE command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
694 </td></tr>
695 <tr><td align="left" valign="top"><a href="#COPY">11. COPY command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
696 </td></tr>
697 <tr><td align="left" valign="top"><a href="#DELETE">12. DELETE command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
698 </td></tr>
699 <tr><td align="left" valign="top"><a href="#DUMP">13. DUMP command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
700 </td></tr>
701 <tr><td align="left" valign="top"><a href="#GET">14. GET command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
702 </td></tr>
703 <tr><td align="left" valign="top"><a href="#GETCONFIG">15. GETCONFIG command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
704 </td></tr>
705 <tr><td align="left" valign="top"><a href="#GETINFO">16. GETINFO command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
706 </td></tr>
707 <tr><td align="left" valign="top"><a href="#HELP">17. HELP command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
708 </td></tr>
709 <tr><td align="left" valign="top"><a href="#IMPORT">18. IMPORT command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
710 </td></tr>
711 <tr><td align="left" valign="top"><a href="#ISCACHED">19. ISCACHED command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
712 </td></tr>
713 <tr><td align="left" valign="top"><a href="#KEYGRIP">20. KEYGRIP command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
714 </td></tr>
715 <tr><td align="left" valign="top"><a href="#LIST">21. LIST command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
716 </td></tr>
717 <tr><td align="left" valign="top"><a href="#LOCK">22. LOCK command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
718 </td></tr>
719 <tr><td align="left" valign="top"><a href="#LS">23. LS command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
720 </td></tr>
721 <tr><td align="left" valign="top"><a href="#MOVE">24. MOVE command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
722 </td></tr>
723 <tr><td align="left" valign="top"><a href="#NOP">25. NOP command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
724 </td></tr>
725 <tr><td align="left" valign="top"><a href="#OPEN">26. OPEN command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
726 </td></tr>
727 <tr><td align="left" valign="top"><a href="#OPTION">27. OPTION command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
728 </td></tr>
729 <tr><td align="left" valign="top"><a href="#PASSWD">28. PASSWD command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
730 </td></tr>
731 <tr><td align="left" valign="top"><a href="#REALPATH">29. REALPATH command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
732 </td></tr>
733 <tr><td align="left" valign="top"><a href="#RENAME">30. RENAME command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
734 </td></tr>
735 <tr><td align="left" valign="top"><a href="#RESET">31. RESET command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
736 </td></tr>
737 <tr><td align="left" valign="top"><a href="#SAVE">32. SAVE command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
738 </td></tr>
739 <tr><td align="left" valign="top"><a href="#STORE">33. STORE command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
740 </td></tr>
741 <tr><td align="left" valign="top"><a href="#UNLOCK">34. UNLOCK command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
742 </td></tr>
743 <tr><td align="left" valign="top"><a href="#XPATH">35. XPATH command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
744 </td></tr>
745 <tr><td align="left" valign="top"><a href="#XPATHATTR">36. XPATHATTR command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
746 </td></tr>
747 </table>
748 <hr size="6">
749 <a name="AGENT"></a>
750 <table cellpadding="1" cellspacing="1" border="0">
751 <tr><td valign="middle" align="left">[<a href="#Commands" title="Previous section in reading order"> &lt; </a>]</td>
752 <td valign="middle" align="left">[<a href="#ATTR" title="Next section in reading order"> &gt; </a>]</td>
753 <td valign="middle" align="left"> &nbsp; </td>
754 <td valign="middle" align="left">[<a href="#Commands" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
755 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
756 <td valign="middle" align="left">[<a href="#ATTR" title="Next chapter"> &gt;&gt; </a>]</td>
757 <td valign="middle" align="left"> &nbsp; </td>
758 <td valign="middle" align="left"> &nbsp; </td>
759 <td valign="middle" align="left"> &nbsp; </td>
760 <td valign="middle" align="left"> &nbsp; </td>
761 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
762 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
763 <td valign="middle" align="left">[Index]</td>
764 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
765 </tr></table>
766 <a name="AGENT-command"></a>
767 <h1 class="chapter">7. AGENT command</h1>
768 <a name="index-AGENT-command"></a>
769 <p>Syntax:
770 </p><table><tr><td>&nbsp;</td><td><pre class="example">AGENT &lt;command&gt;
771 </pre></td></tr></table>
773 <p>Send a <code>gpg-agent</code> protocol <var>command</var> directly to the
774 <code>gpg-agent</code>.
775 </p>
777 <hr size="6">
778 <a name="ATTR"></a>
779 <table cellpadding="1" cellspacing="1" border="0">
780 <tr><td valign="middle" align="left">[<a href="#AGENT" title="Previous section in reading order"> &lt; </a>]</td>
781 <td valign="middle" align="left">[<a href="#CACHETIMEOUT" title="Next section in reading order"> &gt; </a>]</td>
782 <td valign="middle" align="left"> &nbsp; </td>
783 <td valign="middle" align="left">[<a href="#AGENT" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
784 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
785 <td valign="middle" align="left">[<a href="#CACHETIMEOUT" title="Next chapter"> &gt;&gt; </a>]</td>
786 <td valign="middle" align="left"> &nbsp; </td>
787 <td valign="middle" align="left"> &nbsp; </td>
788 <td valign="middle" align="left"> &nbsp; </td>
789 <td valign="middle" align="left"> &nbsp; </td>
790 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
791 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
792 <td valign="middle" align="left">[Index]</td>
793 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
794 </tr></table>
795 <a name="ATTR-command"></a>
796 <h1 class="chapter">8. ATTR command</h1>
797 <a name="index-ATTR-command"></a>
798 <p>Syntax:
799 </p><table><tr><td>&nbsp;</td><td><pre class="example">ATTR [--inquire] SET|GET|DELETE|LIST [&lt;attribute&gt;] [!]element[&lt;TAB&gt;[!]child[..]] ..
800 </pre></td></tr></table>
802 <dl compact="compact">
803 <dt> ATTR SET attribute [!]element[&lt;TAB&gt;[!]child[..]] [value]</dt>
804 <dd>
805 <p> Stores or updates an <var>attribute</var> name and optional <var>value</var> of an
806 element. When no <var>value</var> is specified any existing value will be removed.
807 </p>
808 </dd>
809 <dt> ATTR DELETE attribute [!]element[&lt;TAB&gt;[!]child[..]]</dt>
810 <dd>
811 <p> Removes an <var>attribute</var> from an element.
812 </p>
813 </dd>
814 <dt> ATTR LIST [!]element[&lt;TAB&gt;[!]child[..]]</dt>
815 <dd>
816 <p> Retrieves a newline separated list of attributes names and values
817 from the specified element. Each attribute name and value is space delimited.
818 </p>
819 </dd>
820 <dt> ATTR GET attribute [!]element[&lt;TAB&gt;[!]child[..]]</dt>
821 <dd>
822 <p> Retrieves the value of an <var>attribute</var> from an element.
823 </p></dd>
824 </dl>
826 <p>The <code>_name</code> attribute (case sensitive) cannot be removed nor modified.
827 Use the <code>DELETE</code> (see section <a href="#DELETE">DELETE command</a>) or <code>RENAME</code> (see section <a href="#RENAME">RENAME command</a>)
828 commands instead.
829 </p>
830 <p>The <code>_mtime</code> attribute is updated each time an element is modified by
831 either storing content, editing attributes or by deleting a child element.
832 The <code>_ctime</code> attribute is created for each new element in an element
833 path.
834 </p>
835 <p>When the &lsquo;<samp>--inquire</samp>&rsquo; option is passed then all remaining non-option
836 arguments are retrieved via a server <em>INQUIRE</em>.
837 </p>
838 <p>See section <a href="#Target-Attribute">The <code>target</code> attribute</a>, for details about this special attribute.
839 </p>
841 <hr size="6">
842 <a name="CACHETIMEOUT"></a>
843 <table cellpadding="1" cellspacing="1" border="0">
844 <tr><td valign="middle" align="left">[<a href="#ATTR" title="Previous section in reading order"> &lt; </a>]</td>
845 <td valign="middle" align="left">[<a href="#CLEARCACHE" title="Next section in reading order"> &gt; </a>]</td>
846 <td valign="middle" align="left"> &nbsp; </td>
847 <td valign="middle" align="left">[<a href="#ATTR" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
848 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
849 <td valign="middle" align="left">[<a href="#CLEARCACHE" title="Next chapter"> &gt;&gt; </a>]</td>
850 <td valign="middle" align="left"> &nbsp; </td>
851 <td valign="middle" align="left"> &nbsp; </td>
852 <td valign="middle" align="left"> &nbsp; </td>
853 <td valign="middle" align="left"> &nbsp; </td>
854 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
855 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
856 <td valign="middle" align="left">[Index]</td>
857 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
858 </tr></table>
859 <a name="CACHETIMEOUT-command"></a>
860 <h1 class="chapter">9. CACHETIMEOUT command</h1>
861 <a name="index-CACHETIMEOUT-command"></a>
862 <p>Syntax:
863 </p><table><tr><td>&nbsp;</td><td><pre class="example">CACHETIMEOUT &lt;filename&gt; &lt;seconds&gt;
864 </pre></td></tr></table>
866 <p>The time in <var>seconds</var> until <var>filename</var> will be removed from the
867 cache. <code>-1</code> will keep the cache entry forever, <code>0</code> will require
868 the passphrase for each <code>OPEN</code> or <code>SAVE</code> command (see section <a href="#OPEN">OPEN command</a>,
869 see section <a href="#SAVE">SAVE command</a>). See section <a href="#Configuration"><code>pwmd</code> configuration file options</a>, and the <code>cache_timeout</code>
870 parameter.
871 </p>
873 <hr size="6">
874 <a name="CLEARCACHE"></a>
875 <table cellpadding="1" cellspacing="1" border="0">
876 <tr><td valign="middle" align="left">[<a href="#CACHETIMEOUT" title="Previous section in reading order"> &lt; </a>]</td>
877 <td valign="middle" align="left">[<a href="#COPY" title="Next section in reading order"> &gt; </a>]</td>
878 <td valign="middle" align="left"> &nbsp; </td>
879 <td valign="middle" align="left">[<a href="#CACHETIMEOUT" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
880 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
881 <td valign="middle" align="left">[<a href="#COPY" title="Next chapter"> &gt;&gt; </a>]</td>
882 <td valign="middle" align="left"> &nbsp; </td>
883 <td valign="middle" align="left"> &nbsp; </td>
884 <td valign="middle" align="left"> &nbsp; </td>
885 <td valign="middle" align="left"> &nbsp; </td>
886 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
887 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
888 <td valign="middle" align="left">[Index]</td>
889 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
890 </tr></table>
891 <a name="CLEARCACHE-command"></a>
892 <h1 class="chapter">10. CLEARCACHE command</h1>
893 <a name="index-CLEARCACHE-command"></a>
894 <p>Syntax:
895 </p><table><tr><td>&nbsp;</td><td><pre class="example">CLEARCACHE [&lt;filename&gt;]
896 </pre></td></tr></table>
898 <p>Clears a file cache entry for all or the specified <var>filename</var>.
899 </p>
901 <hr size="6">
902 <a name="COPY"></a>
903 <table cellpadding="1" cellspacing="1" border="0">
904 <tr><td valign="middle" align="left">[<a href="#CLEARCACHE" title="Previous section in reading order"> &lt; </a>]</td>
905 <td valign="middle" align="left">[<a href="#DELETE" title="Next section in reading order"> &gt; </a>]</td>
906 <td valign="middle" align="left"> &nbsp; </td>
907 <td valign="middle" align="left">[<a href="#CLEARCACHE" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
908 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
909 <td valign="middle" align="left">[<a href="#DELETE" title="Next chapter"> &gt;&gt; </a>]</td>
910 <td valign="middle" align="left"> &nbsp; </td>
911 <td valign="middle" align="left"> &nbsp; </td>
912 <td valign="middle" align="left"> &nbsp; </td>
913 <td valign="middle" align="left"> &nbsp; </td>
914 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
915 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
916 <td valign="middle" align="left">[Index]</td>
917 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
918 </tr></table>
919 <a name="COPY-command"></a>
920 <h1 class="chapter">11. COPY command</h1>
921 <a name="index-COPY-command"></a>
922 <p>Syntax:
923 </p><table><tr><td>&nbsp;</td><td><pre class="example">COPY [--inquire] [!]source[&lt;TAB&gt;[!]child[..]] [!]dest[&lt;TAB&gt;[!]child[..]]
924 </pre></td></tr></table>
926 <p>Copies the entire element tree starting from the child node of the source
927 element, to the destination element path. If the destination element path
928 does not exist then it will be created; otherwise it is overwritten.
929 </p>
930 <p>Note that attributes from the source element are merged into the
931 destination element when the destination element path exists. When an
932 attribute of the same name exists in both the source and destination
933 elements then the destination attribute will be updated to the source
934 attribute value.
935 </p>
936 <p>When the &lsquo;<samp>--inquire</samp>&rsquo; option is passed then all remaining non-option
937 arguments are retrieved via a server <em>INQUIRE</em>.
938 </p>
940 <hr size="6">
941 <a name="DELETE"></a>
942 <table cellpadding="1" cellspacing="1" border="0">
943 <tr><td valign="middle" align="left">[<a href="#COPY" title="Previous section in reading order"> &lt; </a>]</td>
944 <td valign="middle" align="left">[<a href="#DUMP" title="Next section in reading order"> &gt; </a>]</td>
945 <td valign="middle" align="left"> &nbsp; </td>
946 <td valign="middle" align="left">[<a href="#COPY" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
947 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
948 <td valign="middle" align="left">[<a href="#DUMP" title="Next chapter"> &gt;&gt; </a>]</td>
949 <td valign="middle" align="left"> &nbsp; </td>
950 <td valign="middle" align="left"> &nbsp; </td>
951 <td valign="middle" align="left"> &nbsp; </td>
952 <td valign="middle" align="left"> &nbsp; </td>
953 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
954 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
955 <td valign="middle" align="left">[Index]</td>
956 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
957 </tr></table>
958 <a name="DELETE-command"></a>
959 <h1 class="chapter">12. DELETE command</h1>
960 <a name="index-DELETE-command"></a>
961 <p>Syntax:
962 </p><table><tr><td>&nbsp;</td><td><pre class="example">DELETE [--inquire] [!]element[&lt;TAB&gt;[!]child[..]]
963 </pre></td></tr></table>
965 <p>Removes the specified element path and all of its children. This may break
966 an element with a <code>target</code> attribute (see section <a href="#Target-Attribute">The <code>target</code> attribute</a>) that
967 refers to this element or any of its children.
968 </p>
969 <p>When the &lsquo;<samp>--inquire</samp>&rsquo; option is passed then all remaining non-option
970 arguments are retrieved via a server <em>INQUIRE</em>.
971 </p>
973 <hr size="6">
974 <a name="DUMP"></a>
975 <table cellpadding="1" cellspacing="1" border="0">
976 <tr><td valign="middle" align="left">[<a href="#DELETE" title="Previous section in reading order"> &lt; </a>]</td>
977 <td valign="middle" align="left">[<a href="#GET" title="Next section in reading order"> &gt; </a>]</td>
978 <td valign="middle" align="left"> &nbsp; </td>
979 <td valign="middle" align="left">[<a href="#DELETE" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
980 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
981 <td valign="middle" align="left">[<a href="#GET" title="Next chapter"> &gt;&gt; </a>]</td>
982 <td valign="middle" align="left"> &nbsp; </td>
983 <td valign="middle" align="left"> &nbsp; </td>
984 <td valign="middle" align="left"> &nbsp; </td>
985 <td valign="middle" align="left"> &nbsp; </td>
986 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
987 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
988 <td valign="middle" align="left">[Index]</td>
989 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
990 </tr></table>
991 <a name="DUMP-command"></a>
992 <h1 class="chapter">13. DUMP command</h1>
993 <a name="index-DUMP-command"></a>
994 <p>Syntax:
995 </p><table><tr><td>&nbsp;</td><td><pre class="example">DUMP
996 </pre></td></tr></table>
998 <p>Shows the in memory <abbr>XML</abbr> document with indenting. See section <a href="#XPATH">XPATH command</a>, for
999 dumping a specific node.
1000 </p>
1002 <hr size="6">
1003 <a name="GET"></a>
1004 <table cellpadding="1" cellspacing="1" border="0">
1005 <tr><td valign="middle" align="left">[<a href="#DUMP" title="Previous section in reading order"> &lt; </a>]</td>
1006 <td valign="middle" align="left">[<a href="#GETCONFIG" title="Next section in reading order"> &gt; </a>]</td>
1007 <td valign="middle" align="left"> &nbsp; </td>
1008 <td valign="middle" align="left">[<a href="#DUMP" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1009 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1010 <td valign="middle" align="left">[<a href="#GETCONFIG" title="Next chapter"> &gt;&gt; </a>]</td>
1011 <td valign="middle" align="left"> &nbsp; </td>
1012 <td valign="middle" align="left"> &nbsp; </td>
1013 <td valign="middle" align="left"> &nbsp; </td>
1014 <td valign="middle" align="left"> &nbsp; </td>
1015 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1016 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1017 <td valign="middle" align="left">[Index]</td>
1018 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1019 </tr></table>
1020 <a name="GET-command"></a>
1021 <h1 class="chapter">14. GET command</h1>
1022 <a name="index-GET-command"></a>
1023 <p>Syntax:
1024 </p><table><tr><td>&nbsp;</td><td><pre class="example">GET [--inquire] [!]element[&lt;TAB&gt;[!]child[..]]
1025 </pre></td></tr></table>
1027 <p>Retrieves the content of the specified element. The content is returned
1028 with a data response.
1029 </p>
1030 <p>When the &lsquo;<samp>--inquire</samp>&rsquo; option is passed then all remaining non-option
1031 arguments are retrieved via a server <em>INQUIRE</em>.
1032 </p>
1034 <hr size="6">
1035 <a name="GETCONFIG"></a>
1036 <table cellpadding="1" cellspacing="1" border="0">
1037 <tr><td valign="middle" align="left">[<a href="#GET" title="Previous section in reading order"> &lt; </a>]</td>
1038 <td valign="middle" align="left">[<a href="#GETINFO" title="Next section in reading order"> &gt; </a>]</td>
1039 <td valign="middle" align="left"> &nbsp; </td>
1040 <td valign="middle" align="left">[<a href="#GET" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1041 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1042 <td valign="middle" align="left">[<a href="#GETINFO" title="Next chapter"> &gt;&gt; </a>]</td>
1043 <td valign="middle" align="left"> &nbsp; </td>
1044 <td valign="middle" align="left"> &nbsp; </td>
1045 <td valign="middle" align="left"> &nbsp; </td>
1046 <td valign="middle" align="left"> &nbsp; </td>
1047 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1048 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1049 <td valign="middle" align="left">[Index]</td>
1050 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1051 </tr></table>
1052 <a name="GETCONFIG-command"></a>
1053 <h1 class="chapter">15. GETCONFIG command</h1>
1054 <a name="index-GETCONFIG-command"></a>
1055 <p>Syntax:
1056 </p><table><tr><td>&nbsp;</td><td><pre class="example">GETCONFIG [filename] &lt;parameter&gt;
1057 </pre></td></tr></table>
1059 <p>Returns the value of a <code>pwmd</code> configuration <var>parameter</var> with a
1060 data response. If no file has been opened then the value for <var>filename</var>
1061 or the default from the &lsquo;<samp>global</samp>&rsquo; section will be returned. If a file
1062 has been opened and no <var>filename</var> is specified, a value previously
1063 set with the <code>OPTION</code> command (see section <a href="#OPTION">OPTION command</a>) will be returned.
1064 </p>
1066 <hr size="6">
1067 <a name="GETINFO"></a>
1068 <table cellpadding="1" cellspacing="1" border="0">
1069 <tr><td valign="middle" align="left">[<a href="#GETCONFIG" title="Previous section in reading order"> &lt; </a>]</td>
1070 <td valign="middle" align="left">[<a href="#HELP" title="Next section in reading order"> &gt; </a>]</td>
1071 <td valign="middle" align="left"> &nbsp; </td>
1072 <td valign="middle" align="left">[<a href="#GETCONFIG" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1073 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1074 <td valign="middle" align="left">[<a href="#HELP" title="Next chapter"> &gt;&gt; </a>]</td>
1075 <td valign="middle" align="left"> &nbsp; </td>
1076 <td valign="middle" align="left"> &nbsp; </td>
1077 <td valign="middle" align="left"> &nbsp; </td>
1078 <td valign="middle" align="left"> &nbsp; </td>
1079 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1080 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1081 <td valign="middle" align="left">[Index]</td>
1082 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1083 </tr></table>
1084 <a name="GETINFO-command"></a>
1085 <h1 class="chapter">16. GETINFO command</h1>
1086 <a name="index-GETINFO-command"></a>
1087 <p>Syntax:
1088 </p><table><tr><td>&nbsp;</td><td><pre class="example">GETINFO [--data] CACHE | CLIENTS | PID | LAST_ERROR | VERSION
1089 </pre></td></tr></table>
1091 <p>Get server and other information: <var>cache</var> returns the number of cached
1092 documents via a status message. <var>clients</var> returns the number of
1093 connected clients via a status message. <var>pid</var> returns the process ID
1094 number of the server via a data response. <var>VERSION</var> returns the server
1095 version number and compile-time features with a data response with each
1096 being space delimited. <var>LAST_ERROR</var> returns a detailed description of
1097 the last failed command when available. See section <a href="#Status-Messages">Status messages and their meanings</a>.
1098 </p>
1099 <p>When the &lsquo;<samp>--data</samp>&rsquo; option is specified then the result will be sent
1100 via a data response rather than a status message.
1101 </p>
1103 <hr size="6">
1104 <a name="HELP"></a>
1105 <table cellpadding="1" cellspacing="1" border="0">
1106 <tr><td valign="middle" align="left">[<a href="#GETINFO" title="Previous section in reading order"> &lt; </a>]</td>
1107 <td valign="middle" align="left">[<a href="#IMPORT" title="Next section in reading order"> &gt; </a>]</td>
1108 <td valign="middle" align="left"> &nbsp; </td>
1109 <td valign="middle" align="left">[<a href="#GETINFO" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1110 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1111 <td valign="middle" align="left">[<a href="#IMPORT" title="Next chapter"> &gt;&gt; </a>]</td>
1112 <td valign="middle" align="left"> &nbsp; </td>
1113 <td valign="middle" align="left"> &nbsp; </td>
1114 <td valign="middle" align="left"> &nbsp; </td>
1115 <td valign="middle" align="left"> &nbsp; </td>
1116 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1117 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1118 <td valign="middle" align="left">[Index]</td>
1119 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1120 </tr></table>
1121 <a name="HELP-command"></a>
1122 <h1 class="chapter">17. HELP command</h1>
1123 <a name="index-HELP-command"></a>
1124 <p>Syntax:
1125 </p><table><tr><td>&nbsp;</td><td><pre class="example">HELP [&lt;COMMAND&gt;]
1126 </pre></td></tr></table>
1128 <p>Show available commands or command specific help text.
1129 </p>
1131 <hr size="6">
1132 <a name="IMPORT"></a>
1133 <table cellpadding="1" cellspacing="1" border="0">
1134 <tr><td valign="middle" align="left">[<a href="#HELP" title="Previous section in reading order"> &lt; </a>]</td>
1135 <td valign="middle" align="left">[<a href="#ISCACHED" title="Next section in reading order"> &gt; </a>]</td>
1136 <td valign="middle" align="left"> &nbsp; </td>
1137 <td valign="middle" align="left">[<a href="#HELP" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1138 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1139 <td valign="middle" align="left">[<a href="#ISCACHED" title="Next chapter"> &gt;&gt; </a>]</td>
1140 <td valign="middle" align="left"> &nbsp; </td>
1141 <td valign="middle" align="left"> &nbsp; </td>
1142 <td valign="middle" align="left"> &nbsp; </td>
1143 <td valign="middle" align="left"> &nbsp; </td>
1144 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1145 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1146 <td valign="middle" align="left">[Index]</td>
1147 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1148 </tr></table>
1149 <a name="IMPORT-command"></a>
1150 <h1 class="chapter">18. IMPORT command</h1>
1151 <a name="index-IMPORT-command"></a>
1152 <p>Syntax:
1153 </p><table><tr><td>&nbsp;</td><td><pre class="example">IMPORT &lt;content&gt;[&lt;TAB&gt;[!]element[&lt;TAB&gt;[!]child[..]]]
1154 </pre></td></tr></table>
1156 <p>This command uses a server <em>INQUIRE</em> to retrieve data from the client.
1157 </p>
1158 <p>Like the <code>STORE</code> command (see section <a href="#STORE">STORE command</a>), but the <var>content</var>
1159 argument is raw <abbr>XML</abbr> data. The content is created as a child of the
1160 specified element path and will overwrite an existing element of the same
1161 name. If an element of the element path does not exist then it will be
1162 created.
1163 </p>
1164 <p>The content must begin with an <abbr>XML</abbr> element node. See section <a href="#Introduction">Overview of <code>pwmd</code></a>,
1165 for details.
1166 </p>
1168 <hr size="6">
1169 <a name="ISCACHED"></a>
1170 <table cellpadding="1" cellspacing="1" border="0">
1171 <tr><td valign="middle" align="left">[<a href="#IMPORT" title="Previous section in reading order"> &lt; </a>]</td>
1172 <td valign="middle" align="left">[<a href="#KEYGRIP" title="Next section in reading order"> &gt; </a>]</td>
1173 <td valign="middle" align="left"> &nbsp; </td>
1174 <td valign="middle" align="left">[<a href="#IMPORT" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1175 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1176 <td valign="middle" align="left">[<a href="#KEYGRIP" title="Next chapter"> &gt;&gt; </a>]</td>
1177 <td valign="middle" align="left"> &nbsp; </td>
1178 <td valign="middle" align="left"> &nbsp; </td>
1179 <td valign="middle" align="left"> &nbsp; </td>
1180 <td valign="middle" align="left"> &nbsp; </td>
1181 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1182 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1183 <td valign="middle" align="left">[Index]</td>
1184 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1185 </tr></table>
1186 <a name="ISCACHED-command"></a>
1187 <h1 class="chapter">19. ISCACHED command</h1>
1188 <a name="index-ISCACHED-command"></a>
1189 <p>Syntax:
1190 </p><table><tr><td>&nbsp;</td><td><pre class="example">ISCACHED [--lock] &lt;filename&gt;
1191 </pre></td></tr></table>
1193 <p>An <em>OK</em> response is returned if the specified <var>filename</var> is found
1194 in the file cache. If not found in the cache but exists on the filesystem
1195 then <var>GPG_ERR_NO_DATA</var> is returned. Otherwise a filesystem error is
1196 returned.
1197 </p>
1198 <p>The &lsquo;<samp>lock</samp>&rsquo; option will lock the file mutex of <var>filename</var> when the
1199 file exists; it does not need to be opened nor cached.
1200 </p>
1202 <hr size="6">
1203 <a name="KEYGRIP"></a>
1204 <table cellpadding="1" cellspacing="1" border="0">
1205 <tr><td valign="middle" align="left">[<a href="#ISCACHED" title="Previous section in reading order"> &lt; </a>]</td>
1206 <td valign="middle" align="left">[<a href="#LIST" title="Next section in reading order"> &gt; </a>]</td>
1207 <td valign="middle" align="left"> &nbsp; </td>
1208 <td valign="middle" align="left">[<a href="#ISCACHED" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1209 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1210 <td valign="middle" align="left">[<a href="#LIST" title="Next chapter"> &gt;&gt; </a>]</td>
1211 <td valign="middle" align="left"> &nbsp; </td>
1212 <td valign="middle" align="left"> &nbsp; </td>
1213 <td valign="middle" align="left"> &nbsp; </td>
1214 <td valign="middle" align="left"> &nbsp; </td>
1215 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1216 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1217 <td valign="middle" align="left">[Index]</td>
1218 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1219 </tr></table>
1220 <a name="KEYGRIP-command"></a>
1221 <h1 class="chapter">20. KEYGRIP command</h1>
1222 <a name="index-KEYGRIP-command"></a>
1223 <p>Syntax:
1224 </p><table><tr><td>&nbsp;</td><td><pre class="example">KEYGRIP [--sign] &lt;filename&gt;
1225 </pre></td></tr></table>
1227 <p>Returns the hex encoded keygrip of the specified <var>filename</var> with a
1228 data response.
1229 </p>
1230 <p>When the &lsquo;<samp>--sign</samp>&rsquo; option is specified then the key used for signing
1231 of the specified <var>filename</var> will be returned.
1232 </p>
1233 <p>For symmetrically encrypted data files this command returns the error
1234 GPG_ERR_NOT_SUPPORTED.
1235 </p>
1237 <hr size="6">
1238 <a name="LIST"></a>
1239 <table cellpadding="1" cellspacing="1" border="0">
1240 <tr><td valign="middle" align="left">[<a href="#KEYGRIP" title="Previous section in reading order"> &lt; </a>]</td>
1241 <td valign="middle" align="left">[<a href="#LOCK" title="Next section in reading order"> &gt; </a>]</td>
1242 <td valign="middle" align="left"> &nbsp; </td>
1243 <td valign="middle" align="left">[<a href="#KEYGRIP" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1244 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1245 <td valign="middle" align="left">[<a href="#LOCK" title="Next chapter"> &gt;&gt; </a>]</td>
1246 <td valign="middle" align="left"> &nbsp; </td>
1247 <td valign="middle" align="left"> &nbsp; </td>
1248 <td valign="middle" align="left"> &nbsp; </td>
1249 <td valign="middle" align="left"> &nbsp; </td>
1250 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1251 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1252 <td valign="middle" align="left">[Index]</td>
1253 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1254 </tr></table>
1255 <a name="LIST-command"></a>
1256 <h1 class="chapter">21. LIST command</h1>
1257 <a name="index-LIST-command"></a>
1258 <p>Syntax:
1259 </p><table><tr><td>&nbsp;</td><td><pre class="example">LIST [--inquire] [--no-recurse] [--verbose] [--with-target] [--all] [[!]element[&lt;TAB&gt;[!]child[..]]]
1260 </pre></td></tr></table>
1262 <p>If no element path is given then a newline separated list of root elements
1263 is returned with a data response. If given, then all reachable elements
1264 of the specified element path are returned unless the &lsquo;<samp>--no-recurse</samp>&rsquo;
1265 option is specified. If specified, only the child elements of the element
1266 path are returned without recursing into grandchildren. Each resulting
1267 element is prefixed with the literal <code>!</code> character when the element
1268 contains no <code>target</code> attribute. See section <a href="#Target-Attribute">The <code>target</code> attribute</a>, for details.
1269 </p>
1270 <p>When the &lsquo;<samp>--verbose</samp>&rsquo; option is passed then each element path
1271 returned will have zero or more flags appened to it. These flags are
1272 delimited from the element path by a single space character. A flag itself
1273 is a single character. Flag <code>+</code> indicates that there are child nodes of
1274 the current element path. Flag <code>E</code> indicates that an element of an
1275 element path contained in a <var>target</var> attribute could not be found. Flag
1276 <code>O</code> indicates that a <var>target</var> attribute recursion limit was reached
1277 (see section <a href="#Configuration"><code>pwmd</code> configuration file options</a>). Flag <code>T</code> will append the resolved element path
1278 of the <var>target</var> attribute contained in the current element (see below).
1279 </p>
1280 <p>The &lsquo;<samp>--with-target</samp>&rsquo; option implies &lsquo;<samp>--verbose</samp>&rsquo; and will append
1281 an additional flag <code>T</code> followed by a single space then an element path.
1282 The appended element path is the resolved path (see section <a href="#REALPATH">REALPATH command</a>) of the
1283 current element when it contains a <var>target</var> attribute. When no
1284 <var>target</var> attribute is found then no flag will be appended.
1285 </p>
1286 <p>The &lsquo;<samp>--no-recurse</samp>&rsquo; option limits the amount of data returned to only
1287 the listing of children of the specified element path and not any
1288 grandchildren.
1289 </p>
1290 <p>The &lsquo;<samp>--all</samp>&rsquo; option lists the entire element tree for each root
1291 element. This option also implies option &lsquo;<samp>--verbose</samp>&rsquo;.
1292 </p>
1293 <p>When the &lsquo;<samp>--inquire</samp>&rsquo; option is passed then all remaining non-option
1294 arguments are retrieved via a server <em>INQUIRE</em>.
1295 </p>
1297 <hr size="6">
1298 <a name="LOCK"></a>
1299 <table cellpadding="1" cellspacing="1" border="0">
1300 <tr><td valign="middle" align="left">[<a href="#LIST" title="Previous section in reading order"> &lt; </a>]</td>
1301 <td valign="middle" align="left">[<a href="#LS" title="Next section in reading order"> &gt; </a>]</td>
1302 <td valign="middle" align="left"> &nbsp; </td>
1303 <td valign="middle" align="left">[<a href="#LIST" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1304 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1305 <td valign="middle" align="left">[<a href="#LS" title="Next chapter"> &gt;&gt; </a>]</td>
1306 <td valign="middle" align="left"> &nbsp; </td>
1307 <td valign="middle" align="left"> &nbsp; </td>
1308 <td valign="middle" align="left"> &nbsp; </td>
1309 <td valign="middle" align="left"> &nbsp; </td>
1310 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1311 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1312 <td valign="middle" align="left">[Index]</td>
1313 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1314 </tr></table>
1315 <a name="LOCK-command"></a>
1316 <h1 class="chapter">22. LOCK command</h1>
1317 <a name="index-LOCK-command"></a>
1318 <p>Syntax:
1319 </p><table><tr><td>&nbsp;</td><td><pre class="example">LOCK
1320 </pre></td></tr></table>
1322 <p>Locks the mutex associated with the opened file. This prevents other clients
1323 from sending commands to the same opened file until the client
1324 that sent this command either disconnects or sends the <code>UNLOCK</code>
1325 command. See section <a href="#UNLOCK">UNLOCK command</a>.
1326 </p>
1328 <hr size="6">
1329 <a name="LS"></a>
1330 <table cellpadding="1" cellspacing="1" border="0">
1331 <tr><td valign="middle" align="left">[<a href="#LOCK" title="Previous section in reading order"> &lt; </a>]</td>
1332 <td valign="middle" align="left">[<a href="#MOVE" title="Next section in reading order"> &gt; </a>]</td>
1333 <td valign="middle" align="left"> &nbsp; </td>
1334 <td valign="middle" align="left">[<a href="#LOCK" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1335 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1336 <td valign="middle" align="left">[<a href="#MOVE" title="Next chapter"> &gt;&gt; </a>]</td>
1337 <td valign="middle" align="left"> &nbsp; </td>
1338 <td valign="middle" align="left"> &nbsp; </td>
1339 <td valign="middle" align="left"> &nbsp; </td>
1340 <td valign="middle" align="left"> &nbsp; </td>
1341 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1342 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1343 <td valign="middle" align="left">[Index]</td>
1344 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1345 </tr></table>
1346 <a name="LS-command"></a>
1347 <h1 class="chapter">23. LS command</h1>
1348 <a name="index-LS-command"></a>
1349 <p>Syntax:
1350 </p><table><tr><td>&nbsp;</td><td><pre class="example">LS
1351 </pre></td></tr></table>
1353 <p>Lists the available data files stored in the data directory
1354 (&lsquo;<tt>~/.pwmd/data</tt>&rsquo;). The result is a newline separated list of filenames.
1355 </p>
1357 <hr size="6">
1358 <a name="MOVE"></a>
1359 <table cellpadding="1" cellspacing="1" border="0">
1360 <tr><td valign="middle" align="left">[<a href="#LS" title="Previous section in reading order"> &lt; </a>]</td>
1361 <td valign="middle" align="left">[<a href="#NOP" title="Next section in reading order"> &gt; </a>]</td>
1362 <td valign="middle" align="left"> &nbsp; </td>
1363 <td valign="middle" align="left">[<a href="#LS" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1364 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1365 <td valign="middle" align="left">[<a href="#NOP" title="Next chapter"> &gt;&gt; </a>]</td>
1366 <td valign="middle" align="left"> &nbsp; </td>
1367 <td valign="middle" align="left"> &nbsp; </td>
1368 <td valign="middle" align="left"> &nbsp; </td>
1369 <td valign="middle" align="left"> &nbsp; </td>
1370 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1371 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1372 <td valign="middle" align="left">[Index]</td>
1373 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1374 </tr></table>
1375 <a name="MOVE-command"></a>
1376 <h1 class="chapter">24. MOVE command</h1>
1377 <a name="index-MOVE-command"></a>
1378 <p>Syntax:
1379 </p><table><tr><td>&nbsp;</td><td><pre class="example">MOVE [--inquire] [!]source[&lt;TAB&gt;[!]child[..]] [[!]dest[&lt;TAB&gt;[!]child[..]]]
1380 </pre></td></tr></table>
1382 <p>Moves the source element path to the destination element path. If the
1383 destination is not specified then it will be moved to the root node of the
1384 document. If the destination is specified and exists then it will be
1385 overwritten; otherwise non-existing elements of the destination element
1386 path will be created.
1387 </p>
1388 <p>When the &lsquo;<samp>--inquire</samp>&rsquo; option is passed then all remaining non-option
1389 arguments are retrieved via a server <em>INQUIRE</em>.
1390 </p>
1392 <hr size="6">
1393 <a name="NOP"></a>
1394 <table cellpadding="1" cellspacing="1" border="0">
1395 <tr><td valign="middle" align="left">[<a href="#MOVE" title="Previous section in reading order"> &lt; </a>]</td>
1396 <td valign="middle" align="left">[<a href="#OPEN" title="Next section in reading order"> &gt; </a>]</td>
1397 <td valign="middle" align="left"> &nbsp; </td>
1398 <td valign="middle" align="left">[<a href="#MOVE" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1399 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1400 <td valign="middle" align="left">[<a href="#OPEN" title="Next chapter"> &gt;&gt; </a>]</td>
1401 <td valign="middle" align="left"> &nbsp; </td>
1402 <td valign="middle" align="left"> &nbsp; </td>
1403 <td valign="middle" align="left"> &nbsp; </td>
1404 <td valign="middle" align="left"> &nbsp; </td>
1405 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1406 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1407 <td valign="middle" align="left">[Index]</td>
1408 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1409 </tr></table>
1410 <a name="NOP-command"></a>
1411 <h1 class="chapter">25. NOP command</h1>
1412 <a name="index-NOP-command"></a>
1413 <p>Syntax:
1414 </p><table><tr><td>&nbsp;</td><td><pre class="example">NOP
1415 </pre></td></tr></table>
1417 <p>Does nothing. Always returns successfully.
1418 </p>
1420 <hr size="6">
1421 <a name="OPEN"></a>
1422 <table cellpadding="1" cellspacing="1" border="0">
1423 <tr><td valign="middle" align="left">[<a href="#NOP" title="Previous section in reading order"> &lt; </a>]</td>
1424 <td valign="middle" align="left">[<a href="#OPTION" title="Next section in reading order"> &gt; </a>]</td>
1425 <td valign="middle" align="left"> &nbsp; </td>
1426 <td valign="middle" align="left">[<a href="#NOP" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1427 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1428 <td valign="middle" align="left">[<a href="#OPTION" title="Next chapter"> &gt;&gt; </a>]</td>
1429 <td valign="middle" align="left"> &nbsp; </td>
1430 <td valign="middle" align="left"> &nbsp; </td>
1431 <td valign="middle" align="left"> &nbsp; </td>
1432 <td valign="middle" align="left"> &nbsp; </td>
1433 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1434 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1435 <td valign="middle" align="left">[Index]</td>
1436 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1437 </tr></table>
1438 <a name="OPEN-command"></a>
1439 <h1 class="chapter">26. OPEN command</h1>
1440 <a name="index-OPEN-command"></a>
1441 <p>Syntax:
1442 </p><table><tr><td>&nbsp;</td><td><pre class="example">OPEN [--lock] &lt;filename&gt; [&lt;passphrase&gt;]
1443 </pre></td></tr></table>
1445 <p>Opens <var>filename</var> using <var>passphrase</var>. When the filename is not
1446 found on the file-system then a new document will be created. If the file
1447 is found, it is looked for in the file cache. If cached and no
1448 <var>passphrase</var> was specified then the cached document is opened. When not
1449 cached, <cite>pinentry(1)</cite> will be used to retrieve the passphrase to use
1450 for decryption unless &lsquo;<samp>disable-pinentry</samp>&rsquo; (see section <a href="#OPTION">OPTION command</a>) was
1451 specified.
1452 </p>
1453 <p>When the &lsquo;<samp>--lock</samp>&rsquo; option is passed then the file mutex will be
1454 locked as if the <code>LOCK</code> command (see section <a href="#LOCK">LOCK command</a>) had been sent after the
1455 file has been opened.
1456 </p>
1458 <hr size="6">
1459 <a name="OPTION"></a>
1460 <table cellpadding="1" cellspacing="1" border="0">
1461 <tr><td valign="middle" align="left">[<a href="#OPEN" title="Previous section in reading order"> &lt; </a>]</td>
1462 <td valign="middle" align="left">[<a href="#PASSWD" title="Next section in reading order"> &gt; </a>]</td>
1463 <td valign="middle" align="left"> &nbsp; </td>
1464 <td valign="middle" align="left">[<a href="#OPEN" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1465 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1466 <td valign="middle" align="left">[<a href="#PASSWD" title="Next chapter"> &gt;&gt; </a>]</td>
1467 <td valign="middle" align="left"> &nbsp; </td>
1468 <td valign="middle" align="left"> &nbsp; </td>
1469 <td valign="middle" align="left"> &nbsp; </td>
1470 <td valign="middle" align="left"> &nbsp; </td>
1471 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1472 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1473 <td valign="middle" align="left">[Index]</td>
1474 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1475 </tr></table>
1476 <a name="OPTION-command"></a>
1477 <h1 class="chapter">27. OPTION command</h1>
1478 <a name="index-OPTION-command"></a>
1479 <p>Syntax:
1480 </p><table><tr><td>&nbsp;</td><td><pre class="example">OPTION &lt;NAME&gt;=&lt;VALUE&gt;
1481 </pre></td></tr></table>
1483 <p>Sets a client option <var>name</var> to <var>value</var>. The value for an option is
1484 kept for the duration of the connection.
1485 </p>
1486 <dl compact="compact">
1487 <dt> DISABLE-PINENTRY</dt>
1488 <dd><p> Disable use of <code>pinentry</code> for passphrase retrieval. When set, a
1489 server inquire is sent to the client to obtain the passphrase. This option
1490 may be set as needed before the see section <a href="#OPEN">OPEN command</a>, see section <a href="#PASSWD">PASSWD command</a>, and
1491 see section <a href="#SAVE">SAVE command</a> commands.
1492 </p>
1493 </dd>
1494 <dt> TTYNAME</dt>
1495 <dd><p> Passed to the <code>gpg-agent</code> and used for the <code>pinentry</code> dialog.
1496 </p>
1497 </dd>
1498 <dt> TTYTYPE</dt>
1499 <dd><p> Passed to the <code>gpg-agent</code> and used for the <code>pinentry</code> dialog.
1500 </p>
1501 </dd>
1502 <dt> DISPLAY</dt>
1503 <dd><p> Passed to the <code>gpg-agent</code> and used for the <code>pinentry</code> dialog.
1504 </p>
1505 </dd>
1506 <dt> PINENTRY-DESC</dt>
1507 <dd><p> Sets the description string of the <code>gpg-agent</code> and <code>pinentry</code> dialog.
1508 </p>
1509 </dd>
1510 <dt> PINENTRY-TITLE</dt>
1511 <dd><p> Sets the title string of the <code>gpg-agent</code> and <code>pinentry</code> dialog.
1512 </p>
1513 </dd>
1514 <dt> PINENTRY-PROMPT</dt>
1515 <dd><p> Sets the prompt string of the <code>gpg-agent</code> and <code>pinentry</code> dialog.
1516 </p>
1517 </dd>
1518 <dt> LC-CTYPE</dt>
1519 <dd><p> Passed to the <code>gpg-agent</code> and used for the <code>pinentry</code> dialog.
1520 </p>
1521 </dd>
1522 <dt> LC-MESSAGES</dt>
1523 <dd><p> Passed to the <code>gpg-agent</code> and used for the <code>pinentry</code> dialog.
1524 </p>
1525 </dd>
1526 <dt> NAME</dt>
1527 <dd><p> Associates the thread ID of the connection with the specified textual
1528 representation. Useful for debugging log messages.
1529 </p>
1530 </dd>
1531 <dt> LOCK-TIMEOUT</dt>
1532 <dd><p> When not <code>0</code>, the duration in tenths of a second to wait for the file
1533 mutex which has been locked by another thread to be released before returning
1534 an error. When <code>-1</code>, then an error will be returned immediately.
1535 </p></dd>
1536 </dl>
1539 <hr size="6">
1540 <a name="PASSWD"></a>
1541 <table cellpadding="1" cellspacing="1" border="0">
1542 <tr><td valign="middle" align="left">[<a href="#OPTION" title="Previous section in reading order"> &lt; </a>]</td>
1543 <td valign="middle" align="left">[<a href="#REALPATH" title="Next section in reading order"> &gt; </a>]</td>
1544 <td valign="middle" align="left"> &nbsp; </td>
1545 <td valign="middle" align="left">[<a href="#OPTION" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1546 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1547 <td valign="middle" align="left">[<a href="#REALPATH" title="Next chapter"> &gt;&gt; </a>]</td>
1548 <td valign="middle" align="left"> &nbsp; </td>
1549 <td valign="middle" align="left"> &nbsp; </td>
1550 <td valign="middle" align="left"> &nbsp; </td>
1551 <td valign="middle" align="left"> &nbsp; </td>
1552 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1553 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1554 <td valign="middle" align="left">[Index]</td>
1555 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1556 </tr></table>
1557 <a name="PASSWD-command"></a>
1558 <h1 class="chapter">28. PASSWD command</h1>
1559 <a name="index-PASSWD-command"></a>
1560 <p>Syntax:
1561 </p><table><tr><td>&nbsp;</td><td><pre class="example">PASSWD [--reset] [--s2k-count=N]
1562 </pre></td></tr></table>
1564 <p>Changes the passphrase of the secret key required to open the current
1565 file or the passphrase of a symmetrically encrypted data file. When the
1566 &lsquo;<samp>--reset</samp>&rsquo; option is passed then the cache entry for the current
1567 file will be reset and the passphrase, if any, will be required during the
1568 next <code>OPEN</code>. See section <a href="#OPEN">OPEN command</a>.
1569 </p>
1570 <p>The &lsquo;<samp>--s2k-count</samp>&rsquo; option sets number of hash iterations for a
1571 passphrase and must be either <code>0</code> to use the calibrated count of the
1572 machine (the default), or a value greater than or equal to <code>65536</code>.
1573 See section <a href="#SAVE">SAVE command</a>. This option has no effect for symmetrically encrypted data
1574 files.
1575 </p>
1577 <hr size="6">
1578 <a name="REALPATH"></a>
1579 <table cellpadding="1" cellspacing="1" border="0">
1580 <tr><td valign="middle" align="left">[<a href="#PASSWD" title="Previous section in reading order"> &lt; </a>]</td>
1581 <td valign="middle" align="left">[<a href="#RENAME" title="Next section in reading order"> &gt; </a>]</td>
1582 <td valign="middle" align="left"> &nbsp; </td>
1583 <td valign="middle" align="left">[<a href="#PASSWD" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1584 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1585 <td valign="middle" align="left">[<a href="#RENAME" title="Next chapter"> &gt;&gt; </a>]</td>
1586 <td valign="middle" align="left"> &nbsp; </td>
1587 <td valign="middle" align="left"> &nbsp; </td>
1588 <td valign="middle" align="left"> &nbsp; </td>
1589 <td valign="middle" align="left"> &nbsp; </td>
1590 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1591 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1592 <td valign="middle" align="left">[Index]</td>
1593 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1594 </tr></table>
1595 <a name="REALPATH-command"></a>
1596 <h1 class="chapter">29. REALPATH command</h1>
1597 <a name="index-REALPATH-command"></a>
1598 <p>Syntax:
1599 </p><table><tr><td>&nbsp;</td><td><pre class="example">REALPATH [--inquire] [!]element[&lt;TAB&gt;[!]child[..]]
1600 </pre></td></tr></table>
1602 <p>Resolves all <code>target</code> attributes of the specified element path and
1603 returns the result with a data response. See section <a href="#Target-Attribute">The <code>target</code> attribute</a>, for details.
1604 </p>
1605 <p>When the &lsquo;<samp>--inquire</samp>&rsquo; option is passed then all remaining non-option
1606 arguments are retrieved via a server <em>INQUIRE</em>.
1607 </p>
1609 <hr size="6">
1610 <a name="RENAME"></a>
1611 <table cellpadding="1" cellspacing="1" border="0">
1612 <tr><td valign="middle" align="left">[<a href="#REALPATH" title="Previous section in reading order"> &lt; </a>]</td>
1613 <td valign="middle" align="left">[<a href="#RESET" title="Next section in reading order"> &gt; </a>]</td>
1614 <td valign="middle" align="left"> &nbsp; </td>
1615 <td valign="middle" align="left">[<a href="#REALPATH" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1616 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1617 <td valign="middle" align="left">[<a href="#RESET" title="Next chapter"> &gt;&gt; </a>]</td>
1618 <td valign="middle" align="left"> &nbsp; </td>
1619 <td valign="middle" align="left"> &nbsp; </td>
1620 <td valign="middle" align="left"> &nbsp; </td>
1621 <td valign="middle" align="left"> &nbsp; </td>
1622 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1623 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1624 <td valign="middle" align="left">[Index]</td>
1625 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1626 </tr></table>
1627 <a name="RENAME-command"></a>
1628 <h1 class="chapter">30. RENAME command</h1>
1629 <a name="index-RENAME-command"></a>
1630 <p>Syntax:
1631 </p><table><tr><td>&nbsp;</td><td><pre class="example">RENAME [--inquire] [!]element[&lt;TAB&gt;[!]child[..]] &lt;value&gt;
1632 </pre></td></tr></table>
1634 <p>Renames the specified <var>element</var> to the new <var>value</var>. If an element of
1635 the same name as the <var>value</var> already exists it will be overwritten.
1636 </p>
1637 <p>When the &lsquo;<samp>--inquire</samp>&rsquo; option is passed then all remaining non-option
1638 arguments are retrieved via a server <em>INQUIRE</em>.
1639 </p>
1641 <hr size="6">
1642 <a name="RESET"></a>
1643 <table cellpadding="1" cellspacing="1" border="0">
1644 <tr><td valign="middle" align="left">[<a href="#RENAME" title="Previous section in reading order"> &lt; </a>]</td>
1645 <td valign="middle" align="left">[<a href="#SAVE" title="Next section in reading order"> &gt; </a>]</td>
1646 <td valign="middle" align="left"> &nbsp; </td>
1647 <td valign="middle" align="left">[<a href="#RENAME" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1648 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1649 <td valign="middle" align="left">[<a href="#SAVE" title="Next chapter"> &gt;&gt; </a>]</td>
1650 <td valign="middle" align="left"> &nbsp; </td>
1651 <td valign="middle" align="left"> &nbsp; </td>
1652 <td valign="middle" align="left"> &nbsp; </td>
1653 <td valign="middle" align="left"> &nbsp; </td>
1654 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1655 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1656 <td valign="middle" align="left">[Index]</td>
1657 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1658 </tr></table>
1659 <a name="RESET-command"></a>
1660 <h1 class="chapter">31. RESET command</h1>
1661 <a name="index-RESET-command"></a>
1662 <p>Syntax:
1663 </p><table><tr><td>&nbsp;</td><td><pre class="example">RESET
1664 </pre></td></tr></table>
1666 <p>Closes the currently opened file but keeps any previously set client options.
1667 </p>
1669 <hr size="6">
1670 <a name="SAVE"></a>
1671 <table cellpadding="1" cellspacing="1" border="0">
1672 <tr><td valign="middle" align="left">[<a href="#RESET" title="Previous section in reading order"> &lt; </a>]</td>
1673 <td valign="middle" align="left">[<a href="#STORE" title="Next section in reading order"> &gt; </a>]</td>
1674 <td valign="middle" align="left"> &nbsp; </td>
1675 <td valign="middle" align="left">[<a href="#RESET" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1676 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1677 <td valign="middle" align="left">[<a href="#STORE" title="Next chapter"> &gt;&gt; </a>]</td>
1678 <td valign="middle" align="left"> &nbsp; </td>
1679 <td valign="middle" align="left"> &nbsp; </td>
1680 <td valign="middle" align="left"> &nbsp; </td>
1681 <td valign="middle" align="left"> &nbsp; </td>
1682 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1683 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1684 <td valign="middle" align="left">[Index]</td>
1685 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1686 </tr></table>
1687 <a name="SAVE-command"></a>
1688 <h1 class="chapter">32. SAVE command</h1>
1689 <a name="index-SAVE-command"></a>
1690 <p>Syntax:
1691 </p><table><tr><td>&nbsp;</td><td><pre class="example">SAVE [--no-passphrase] [--reset] [--no-agent] [--s2k-count=N] [--cipher=&lt;algo&gt;] [--cipher-iterations=N] [--inquire-keyparam] [--keygrip=hexstring [--sign-keygrip=hexstring]]
1692 </pre></td></tr></table>
1694 <p>Writes the <abbr>XML</abbr> document to disk. The file written to is the file that
1695 was opened using the <code>OPEN</code> command (see section <a href="#OPEN">OPEN command</a>). If the file is a
1696 new one or the option &lsquo;<samp>--inquire-keyparam</samp>&rsquo; was passed, then a new
1697 keypair will be generated and a pinentry will be used to prompt for the
1698 passphrase to encrypt with unless the &lsquo;<samp>--no-passphrase</samp>&rsquo; option was
1699 passed, in which case the data file will not be passphrase protected.
1700 </p>
1701 <p>The &lsquo;<samp>--no-agent</samp>&rsquo; option disables use of <code>gpg-agent</code> for
1702 passphrase retrieval and caching of new files when <code>gpg-agent</code>
1703 use is enabled. The datafile will be symmetrically encrypted and will not
1704 use or generate any keypair.
1705 </p>
1706 <p>The &lsquo;<samp>--reset</samp>&rsquo; option will clear the cache entry for the current file
1707 and require a passphrase, if needed, before saving.
1708 </p>
1709 <p>The &lsquo;<samp>--cipher</samp>&rsquo; option can be used to encrypt the <abbr>XML</abbr> data to
1710 an alternate cipher. The default is <code>aes256</code>. See the Configuration
1711 (see section <a href="#Configuration"><code>pwmd</code> configuration file options</a>) for available ciphers.
1712 </p>
1713 <p>The &lsquo;<samp>--cipher-iterations</samp>&rsquo; option specifies the number of times to
1714 encrypt the XML data. The default is 0 although 1 iteration is still done.
1715 </p>
1716 <p>The &lsquo;<samp>--inquire-keyparam</samp>&rsquo; option will send a server <em>INQUIRE</em> to
1717 the client to obtain the key paramaters to use when generating a new
1718 keypair. The inquired data is expected to be an S-expression. If not
1719 specified then an &lsquo;<samp>RSA</samp>&rsquo; key of &lsquo;<samp>2048</samp>&rsquo; bits will be generated
1720 unless otherwise set in the configuration file (see section <a href="#Configuration"><code>pwmd</code> configuration file options</a>). Note
1721 that when this option is specified a new keypair will be generated
1722 reguardless if the file is a new one or not.
1723 </p>
1724 <p>You can encrypt the data file to a public key other than the one that it
1725 was originally encrypted with by passing the &lsquo;<samp>--keygrip</samp>&rsquo; option with
1726 the hex encoded keygrip of the public key as its argument. The keygrip may
1727 be of any key that <code>gpg-agent</code> knows about. The
1728 &lsquo;<samp>--sign-keygrip</samp>&rsquo; option may also be used to sign with an alternate
1729 secret key. This option may be needed when using a smartcard. This option
1730 has no effect with symmetrically encrypted data files.
1731 </p>
1732 <p>The &lsquo;<samp>--s2k-count</samp>&rsquo; option sets number of hash iterations for a
1733 passphrase. A value less-than <code>65536</code> will use the machine calibrated
1734 value which is the default. This setting only affects new files. To change
1735 the setting, use the <code>PASSWD</code> command (see section <a href="#PASSWD">PASSWD command</a>). This option
1736 has no effect with symmetrically encrypted data files.
1737 </p>
1739 <hr size="6">
1740 <a name="STORE"></a>
1741 <table cellpadding="1" cellspacing="1" border="0">
1742 <tr><td valign="middle" align="left">[<a href="#SAVE" title="Previous section in reading order"> &lt; </a>]</td>
1743 <td valign="middle" align="left">[<a href="#UNLOCK" title="Next section in reading order"> &gt; </a>]</td>
1744 <td valign="middle" align="left"> &nbsp; </td>
1745 <td valign="middle" align="left">[<a href="#SAVE" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1746 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1747 <td valign="middle" align="left">[<a href="#UNLOCK" title="Next chapter"> &gt;&gt; </a>]</td>
1748 <td valign="middle" align="left"> &nbsp; </td>
1749 <td valign="middle" align="left"> &nbsp; </td>
1750 <td valign="middle" align="left"> &nbsp; </td>
1751 <td valign="middle" align="left"> &nbsp; </td>
1752 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1753 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1754 <td valign="middle" align="left">[Index]</td>
1755 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1756 </tr></table>
1757 <a name="STORE-command"></a>
1758 <h1 class="chapter">33. STORE command</h1>
1759 <a name="index-STORE-command"></a>
1760 <p>Syntax:
1761 </p><table><tr><td>&nbsp;</td><td><pre class="example">STORE [!]element[&lt;TAB&gt;[!]child[..]]&lt;TAB&gt;[content]
1762 </pre></td></tr></table>
1764 <p>This command uses a server <em>INQUIRE</em> to retrieve data from the client.
1765 </p>
1766 <p>Creates a new element path or modifies the <var>content</var> of an existing
1767 element. If only a single element is specified then a new root element is
1768 created. Otherwise, elements are &lt;TAB&gt; delimited and the content will be
1769 set to the final &lt;TAB&gt; delimited element. If no <var>content</var> is
1770 specified after the final &lt;TAB&gt;, then the content of the element will
1771 be removed, or empty when creating a new element.
1772 </p>
1773 <p>The only restriction of an element name is that it not contain whitespace
1774 or begin with the literal element character <code>!</code> unless specifying a
1775 literal element (see section <a href="#Target-Attribute">The <code>target</code> attribute</a>). There is no whitespace between
1776 the &lt;TAB&gt; delimited elements. It is recommended that the content of an
1777 element be base64 encoded when it contains control or &lt;TAB&gt; characters
1778 to prevent <abbr>XML</abbr> parsing and <code>pwmd</code> syntax errors.
1779 </p>
1781 <hr size="6">
1782 <a name="UNLOCK"></a>
1783 <table cellpadding="1" cellspacing="1" border="0">
1784 <tr><td valign="middle" align="left">[<a href="#STORE" title="Previous section in reading order"> &lt; </a>]</td>
1785 <td valign="middle" align="left">[<a href="#XPATH" title="Next section in reading order"> &gt; </a>]</td>
1786 <td valign="middle" align="left"> &nbsp; </td>
1787 <td valign="middle" align="left">[<a href="#STORE" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1788 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1789 <td valign="middle" align="left">[<a href="#XPATH" title="Next chapter"> &gt;&gt; </a>]</td>
1790 <td valign="middle" align="left"> &nbsp; </td>
1791 <td valign="middle" align="left"> &nbsp; </td>
1792 <td valign="middle" align="left"> &nbsp; </td>
1793 <td valign="middle" align="left"> &nbsp; </td>
1794 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1795 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1796 <td valign="middle" align="left">[Index]</td>
1797 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1798 </tr></table>
1799 <a name="UNLOCK-command"></a>
1800 <h1 class="chapter">34. UNLOCK command</h1>
1801 <a name="index-UNLOCK-command"></a>
1802 <p>Syntax:
1803 </p><table><tr><td>&nbsp;</td><td><pre class="example">UNLOCK
1804 </pre></td></tr></table>
1806 <p>Unlocks the file mutex which was locked with the <code>LOCK</code> command or
1807 a commands&rsquo; &lsquo;<samp>--lock</samp>&rsquo; option (see section <a href="#LOCK">LOCK command</a>, see section <a href="#OPEN">OPEN command</a>,
1808 see section <a href="#ISCACHED">ISCACHED command</a>).
1809 </p>
1811 <hr size="6">
1812 <a name="XPATH"></a>
1813 <table cellpadding="1" cellspacing="1" border="0">
1814 <tr><td valign="middle" align="left">[<a href="#UNLOCK" title="Previous section in reading order"> &lt; </a>]</td>
1815 <td valign="middle" align="left">[<a href="#XPATHATTR" title="Next section in reading order"> &gt; </a>]</td>
1816 <td valign="middle" align="left"> &nbsp; </td>
1817 <td valign="middle" align="left">[<a href="#UNLOCK" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1818 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1819 <td valign="middle" align="left">[<a href="#XPATHATTR" title="Next chapter"> &gt;&gt; </a>]</td>
1820 <td valign="middle" align="left"> &nbsp; </td>
1821 <td valign="middle" align="left"> &nbsp; </td>
1822 <td valign="middle" align="left"> &nbsp; </td>
1823 <td valign="middle" align="left"> &nbsp; </td>
1824 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1825 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1826 <td valign="middle" align="left">[Index]</td>
1827 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1828 </tr></table>
1829 <a name="XPATH-command"></a>
1830 <h1 class="chapter">35. XPATH command</h1>
1831 <a name="index-XPATH-command"></a>
1832 <p>Syntax:
1833 </p><table><tr><td>&nbsp;</td><td><pre class="example">XPATH [--inquire] &lt;expression&gt;[&lt;TAB&gt;[value]]
1834 </pre></td></tr></table>
1836 <p>Evaluates an XPath <var>expression</var>. If no <var>value</var> argument is
1837 specified, it is assumed the expression is a request to return a result.
1838 Otherwise, the result is set to the <var>value</var> argument and the document is
1839 updated. If there is no <var>value</var> after the &lt;TAB&gt; character, the value
1840 is assumed to be empty and the document is updated. For example:
1841 <br>
1842 </p><table><tr><td>&nbsp;</td><td><pre class="example">XPATH //element[@_name='password']&lt;TAB&gt;
1843 </pre></td></tr></table>
1844 <br>
1845 <p>would clear the content of all <code>password</code> elements in the data file
1846 while leaving off the trailing &lt;TAB&gt; would return all <code>password</code>
1847 elements in <abbr>XML</abbr> format.
1848 </p>
1849 <p>When the &lsquo;<samp>--inquire</samp>&rsquo; option is passed then all remaining non-option
1850 arguments are retrieved via a server <em>INQUIRE</em>.
1851 </p>
1852 <p>See <a href="http://www.w3schools.com/xpath/xpath_syntax.asp">http://www.w3schools.com/xpath/xpath_syntax.asp</a> for <abbr>XPATH</abbr>
1853 expression syntax.
1854 </p>
1856 <hr size="6">
1857 <a name="XPATHATTR"></a>
1858 <table cellpadding="1" cellspacing="1" border="0">
1859 <tr><td valign="middle" align="left">[<a href="#XPATH" title="Previous section in reading order"> &lt; </a>]</td>
1860 <td valign="middle" align="left">[<a href="#Status-Messages" title="Next section in reading order"> &gt; </a>]</td>
1861 <td valign="middle" align="left"> &nbsp; </td>
1862 <td valign="middle" align="left">[<a href="#XPATH" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1863 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1864 <td valign="middle" align="left">[<a href="#Status-Messages" title="Next chapter"> &gt;&gt; </a>]</td>
1865 <td valign="middle" align="left"> &nbsp; </td>
1866 <td valign="middle" align="left"> &nbsp; </td>
1867 <td valign="middle" align="left"> &nbsp; </td>
1868 <td valign="middle" align="left"> &nbsp; </td>
1869 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1870 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1871 <td valign="middle" align="left">[Index]</td>
1872 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1873 </tr></table>
1874 <a name="XPATHATTR-command"></a>
1875 <h1 class="chapter">36. XPATHATTR command</h1>
1876 <a name="index-XPATHATTR-command"></a>
1877 <p>Syntax:
1878 </p><table><tr><td>&nbsp;</td><td><pre class="example">XPATHATTR [--inquire] SET|DELETE &lt;name&gt; &lt;expression&gt;[&lt;TAB&gt;[&lt;value&gt;]]
1879 </pre></td></tr></table>
1881 <p>Like the <code>XPATH</code> command (see section <a href="#XPATH">XPATH command</a>) but operates on element
1882 attributes and does not return a result. For the <var>SET</var> operation the
1883 <var>value</var> is optional but the field is required. If not specified then
1884 the attribute value will be empty. For example:
1885 <br>
1886 </p><table><tr><td>&nbsp;</td><td><pre class="example">XPATHATTR SET password //element[@_name='password']&lt;TAB&gt;
1887 </pre></td></tr></table>
1888 <br>
1889 <p>would create an <code>password</code> attribute for each <code>password</code> element
1890 found in the document. The attribute value will be empty but still exist.
1891 </p>
1892 <p>When the &lsquo;<samp>--inquire</samp>&rsquo; option is passed then all remaining non-option
1893 arguments are retrieved via a server <em>INQUIRE</em>.
1894 </p>
1895 <p>See <a href="http://www.w3schools.com/xpath/xpath_syntax.asp">http://www.w3schools.com/xpath/xpath_syntax.asp</a> for <abbr>XPATH</abbr>
1896 expression syntax.
1897 </p>
1900 <hr size="6">
1901 <a name="Status-Messages"></a>
1902 <table cellpadding="1" cellspacing="1" border="0">
1903 <tr><td valign="middle" align="left">[<a href="#XPATHATTR" title="Previous section in reading order"> &lt; </a>]</td>
1904 <td valign="middle" align="left">[<a href="#Target-Attribute" title="Next section in reading order"> &gt; </a>]</td>
1905 <td valign="middle" align="left"> &nbsp; </td>
1906 <td valign="middle" align="left">[<a href="#XPATHATTR" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1907 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1908 <td valign="middle" align="left">[<a href="#Target-Attribute" title="Next chapter"> &gt;&gt; </a>]</td>
1909 <td valign="middle" align="left"> &nbsp; </td>
1910 <td valign="middle" align="left"> &nbsp; </td>
1911 <td valign="middle" align="left"> &nbsp; </td>
1912 <td valign="middle" align="left"> &nbsp; </td>
1913 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1914 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1915 <td valign="middle" align="left">[Index]</td>
1916 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1917 </tr></table>
1918 <a name="Status-messages-and-their-meanings"></a>
1919 <h1 class="chapter">37. Status messages and their meanings</h1>
1920 <p>Some commands send status messages to inform the client about certain
1921 operations or as a progress indicator. Status messages begin with a
1922 <code>KEYWORD</code> followed by a status description for status messages that
1923 require it. What status messages are sent, when, and how often depend on
1924 configuration settings (see section <a href="#Configuration"><code>pwmd</code> configuration file options</a>). A status message sent from
1925 <code>gpg-agent</code> (See <a href="gnupg.html#Invoking-GPG_002dAGENT">(gnupg)Invoking GPG-AGENT</a>) is also forwarded to
1926 the client.
1927 </p>
1928 <table>
1929 <thead><tr><th width="20%">Message</th><th width="25%">Arguments</th><th width="55%">Description</th></tr></thead>
1930 <tr><td width="20%">CACHE
1931 <a name="index-CACHE"></a></td><td width="25%"><code>&lt;integer&gt;</code></td><td width="55%">The number of cached documents. Sent to each client after connecting
1932 (see section <a href="#GETINFO">GETINFO command</a>) and after every cache modification.</td></tr>
1933 <tr><td width="20%">CLIENTS
1934 <a name="index-CLIENTS"></a></td><td width="25%"><code>&lt;integer&gt;</code></td><td width="55%">The number of connected clients (see section <a href="#GETINFO">GETINFO command</a>). Sent to each client
1935 when another client either connects or disconnects.</td></tr>
1936 <tr><td width="20%">DECRYPT
1937 <a name="index-DECRYPT"></a></td><td width="25%"><code>n</code> <code>total</code></td><td width="55%">Sent to the current client during a decrypt operation. How often this
1938 status message is sent is determined by the <code>cipher_progress</code>
1939 (see section <a href="#Configuration"><code>pwmd</code> configuration file options</a>) setting.</td></tr>
1940 <tr><td width="20%">ENCRYPT
1941 <a name="index-ENCRYPT"></a></td><td width="25%"><code>n</code> <code>total</code></td><td width="55%">Sent to the current client during an encrypt operation. How often this
1942 status message is sent is determined by the <code>cipher_progress</code>
1943 (see section <a href="#Configuration"><code>pwmd</code> configuration file options</a>) setting.</td></tr>
1944 <tr><td width="20%">GENKEY
1945 <a name="index-GENKEY"></a></td><td width="25%"></td><td width="55%">Sent once to the current client just before generating a new key-pair.</td></tr>
1946 <tr><td width="20%">INQUIRE_MAXLEN
1947 <a name="index-INQUIRE_005fMAXLEN"></a></td><td width="25%"><code>&lt;bytes&gt;</code></td><td width="55%">Sent to the client from <code>gpg-agent</code> when inquiring data. This
1948 specifies the maximum number of bytes allowed for the client to send and
1949 should not be exceeded.</td></tr>
1950 <tr><td width="20%">KEEPALIVE
1951 <a name="index-KEEPALIVE"></a></td><td width="25%"></td><td width="55%">Sent to each idle client every <var>keepalive_interval</var>
1952 (see section <a href="#Configuration"><code>pwmd</code> configuration file options</a>) seconds.</td></tr>
1953 <tr><td width="20%">LOCKED
1954 <a name="index-LOCKED"></a></td><td width="25%"></td><td width="55%">Sent to the current client when another client is holding the lock for
1955 the mutex associated with a file.</td></tr>
1956 <tr><td width="20%">NEWFILE
1957 <a name="index-NEWFILE"></a></td><td width="25%"></td><td width="55%">Sent to the current client when the opened (see section <a href="#OPEN">OPEN command</a>) file does not
1958 exist on the file-system.</td></tr>
1959 <tr><td width="20%">XFER
1960 <a name="index-XFER"></a></td><td width="25%"><code>&lt;sent&gt; &lt;total&gt;</code></td><td width="55%">Sent to the current client when transferring data. It has two space
1961 delimited arguments. The first being the current amount of bytes transferred
1962 and the other being the total bytes to be transferred.</td></tr>
1963 </table>
1965 <hr size="6">
1966 <a name="Target-Attribute"></a>
1967 <table cellpadding="1" cellspacing="1" border="0">
1968 <tr><td valign="middle" align="left">[<a href="#Status-Messages" title="Previous section in reading order"> &lt; </a>]</td>
1969 <td valign="middle" align="left">[<a href="#Signals" title="Next section in reading order"> &gt; </a>]</td>
1970 <td valign="middle" align="left"> &nbsp; </td>
1971 <td valign="middle" align="left">[<a href="#Status-Messages" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
1972 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
1973 <td valign="middle" align="left">[<a href="#Signals" title="Next chapter"> &gt;&gt; </a>]</td>
1974 <td valign="middle" align="left"> &nbsp; </td>
1975 <td valign="middle" align="left"> &nbsp; </td>
1976 <td valign="middle" align="left"> &nbsp; </td>
1977 <td valign="middle" align="left"> &nbsp; </td>
1978 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
1979 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
1980 <td valign="middle" align="left">[Index]</td>
1981 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
1982 </tr></table>
1983 <a name="The-target-attribute"></a>
1984 <h1 class="chapter">38. The <code>target</code> attribute</h1>
1985 <a name="index-target-attribute"></a>
1986 <p>A <em>case sensitive</em> attribute named <code>target</code> is treated specially
1987 when found in each element of an element path. This attribute, like other
1988 element attributes, is created or modified with the <code>ATTR</code> command
1989 (see section <a href="#ATTR">ATTR command</a>). The value of this attribute is an existing element path
1990 somewhere in the document. If you are familiar with <abbr>XML</abbr> entities or
1991 maybe the <abbr>HTML</abbr> <code>id</code> or <code>target</code> attributes or a symbolic link
1992 in a file-system, you may find this attribute behaves similar to any of those.
1993 </p>
1994 <p>To create a <code>target</code> attribute use the following syntax:
1995 </p>
1996 <table><tr><td>&nbsp;</td><td><pre class="example">ATTR SET target [!]element[&lt;TAB&gt;[!]child[..]] [!]element[&lt;TAB&gt;[!]child[..]]
1997 </pre></td></tr></table>
1999 <p>Note the single space between the two element paths. The first element path is
2000 where the <code>target</code> attribute will be created. If the element path does
2001 not exist then it will be created. This is the only time the <code>ATTR</code>
2002 (see section <a href="#ATTR">ATTR command</a>) command will create elements. The attribute is created in the
2003 final element of the element path.
2004 </p>
2005 <p>The second element path is the destination of where you want the first element
2006 path to resolve to. When an element path is passed to a protocol command
2007 <code>pwmd</code> looks for a <code>target</code> attribute when resolving each element
2008 and if found, &quot;jumps&quot; to the attribute value and continues resolving any
2009 remaining elements. When you want to avoid the <code>target</code> attribute for
2010 any element of an element path then prefix the element with the literal
2011 element character &lsquo;<samp>!</samp>&rsquo;.
2012 </p>
2013 <p>When an element of a element path is removed that a <code>target</code> attribute
2014 resolves to then an error will occur. You may need to either update the
2015 <code>target</code> attribute value with a new element path or remove the attribute
2016 entirely. Remember that since the element contains the <code>target</code> attribute
2017 it will need to be prefixed with the literal element character &lsquo;<samp>!</samp>&rsquo; when
2018 specifying the element path. For example, to remove a <code>target</code>
2019 attribute for an element containing it:
2020 </p>
2021 <table><tr><td>&nbsp;</td><td><pre class="example">ATTR DELETE target path&lt;TAB&gt;to&lt;TAB&gt;!element
2022 </pre></td></tr></table>
2024 <p>Clients should be careful of creating <code>target</code> loops, or targets that
2025 resolve to themselves. See the <var>recursion_depth</var> (see section <a href="#Configuration"><code>pwmd</code> configuration file options</a>)
2026 configuration parameter for details.
2027 </p>
2028 <p>The <code>REALPATH</code> command (see section <a href="#REALPATH">REALPATH command</a>) can be used to show the element
2029 path after resolving all <code>target</code> attributes.
2030 </p>
2032 <hr size="6">
2033 <a name="Signals"></a>
2034 <table cellpadding="1" cellspacing="1" border="0">
2035 <tr><td valign="middle" align="left">[<a href="#Target-Attribute" title="Previous section in reading order"> &lt; </a>]</td>
2036 <td valign="middle" align="left">[<a href="#Concept-Index" title="Next section in reading order"> &gt; </a>]</td>
2037 <td valign="middle" align="left"> &nbsp; </td>
2038 <td valign="middle" align="left">[<a href="#Target-Attribute" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
2039 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
2040 <td valign="middle" align="left">[<a href="#Concept-Index" title="Next chapter"> &gt;&gt; </a>]</td>
2041 <td valign="middle" align="left"> &nbsp; </td>
2042 <td valign="middle" align="left"> &nbsp; </td>
2043 <td valign="middle" align="left"> &nbsp; </td>
2044 <td valign="middle" align="left"> &nbsp; </td>
2045 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
2046 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
2047 <td valign="middle" align="left">[Index]</td>
2048 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
2049 </tr></table>
2050 <a name="Recognized-signals"></a>
2051 <h1 class="chapter">39. Recognized signals</h1>
2053 <p>Sending the <em>SIGHUP</em> signal to a <code>pwmd</code> process will reload the
2054 configuration file and sending <em>SIGUSR1</em> will clear the entire file
2055 cache.
2056 </p>
2059 <hr size="6">
2060 <a name="Concept-Index"></a>
2061 <table cellpadding="1" cellspacing="1" border="0">
2062 <tr><td valign="middle" align="left">[<a href="#Signals" title="Previous section in reading order"> &lt; </a>]</td>
2063 <td valign="middle" align="left">[ &gt; ]</td>
2064 <td valign="middle" align="left"> &nbsp; </td>
2065 <td valign="middle" align="left">[<a href="#Signals" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
2066 <td valign="middle" align="left">[<a href="#Top" title="Up section"> Up </a>]</td>
2067 <td valign="middle" align="left">[ &gt;&gt; ]</td>
2068 <td valign="middle" align="left"> &nbsp; </td>
2069 <td valign="middle" align="left"> &nbsp; </td>
2070 <td valign="middle" align="left"> &nbsp; </td>
2071 <td valign="middle" align="left"> &nbsp; </td>
2072 <td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
2073 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
2074 <td valign="middle" align="left">[Index]</td>
2075 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
2076 </tr></table>
2077 <a name="Concept-Index-1"></a>
2078 <h1 class="unnumbered">Concept Index</h1>
2081 <hr size="6">
2082 <a name="SEC_Contents"></a>
2083 <table cellpadding="1" cellspacing="1" border="0">
2084 <tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
2085 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
2086 <td valign="middle" align="left">[Index]</td>
2087 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
2088 </tr></table>
2089 <h1>Table of Contents</h1>
2090 <div class="contents">
2092 <ul class="toc">
2093 <li><a name="toc-Overview-of-pwmd" href="#Introduction">1. Overview of <code>pwmd</code></a></li>
2094 <li><a name="toc-Invoking-pwmd" href="#Invoking">2. Invoking <code>pwmd</code></a></li>
2095 <li><a name="toc-pwmd-configuration-file-options" href="#Configuration">3. <code>pwmd</code> configuration file options</a></li>
2096 <li><a name="toc-Configuring-remote-connections-over-TLS_002e" href="#TLS">4. Configuring remote connections over TLS.</a></li>
2097 <li><a name="toc-Pinentry-configuration" href="#Pinentry">5. Pinentry configuration</a></li>
2098 <li><a name="toc-Protocol-commands-and-their-syntax" href="#Commands">6. Protocol commands and their syntax</a></li>
2099 <li><a name="toc-AGENT-command" href="#AGENT">7. AGENT command</a></li>
2100 <li><a name="toc-ATTR-command" href="#ATTR">8. ATTR command</a></li>
2101 <li><a name="toc-CACHETIMEOUT-command" href="#CACHETIMEOUT">9. CACHETIMEOUT command</a></li>
2102 <li><a name="toc-CLEARCACHE-command" href="#CLEARCACHE">10. CLEARCACHE command</a></li>
2103 <li><a name="toc-COPY-command" href="#COPY">11. COPY command</a></li>
2104 <li><a name="toc-DELETE-command" href="#DELETE">12. DELETE command</a></li>
2105 <li><a name="toc-DUMP-command" href="#DUMP">13. DUMP command</a></li>
2106 <li><a name="toc-GET-command" href="#GET">14. GET command</a></li>
2107 <li><a name="toc-GETCONFIG-command" href="#GETCONFIG">15. GETCONFIG command</a></li>
2108 <li><a name="toc-GETINFO-command" href="#GETINFO">16. GETINFO command</a></li>
2109 <li><a name="toc-HELP-command" href="#HELP">17. HELP command</a></li>
2110 <li><a name="toc-IMPORT-command" href="#IMPORT">18. IMPORT command</a></li>
2111 <li><a name="toc-ISCACHED-command" href="#ISCACHED">19. ISCACHED command</a></li>
2112 <li><a name="toc-KEYGRIP-command" href="#KEYGRIP">20. KEYGRIP command</a></li>
2113 <li><a name="toc-LIST-command" href="#LIST">21. LIST command</a></li>
2114 <li><a name="toc-LOCK-command" href="#LOCK">22. LOCK command</a></li>
2115 <li><a name="toc-LS-command" href="#LS">23. LS command</a></li>
2116 <li><a name="toc-MOVE-command" href="#MOVE">24. MOVE command</a></li>
2117 <li><a name="toc-NOP-command" href="#NOP">25. NOP command</a></li>
2118 <li><a name="toc-OPEN-command" href="#OPEN">26. OPEN command</a></li>
2119 <li><a name="toc-OPTION-command" href="#OPTION">27. OPTION command</a></li>
2120 <li><a name="toc-PASSWD-command" href="#PASSWD">28. PASSWD command</a></li>
2121 <li><a name="toc-REALPATH-command" href="#REALPATH">29. REALPATH command</a></li>
2122 <li><a name="toc-RENAME-command" href="#RENAME">30. RENAME command</a></li>
2123 <li><a name="toc-RESET-command" href="#RESET">31. RESET command</a></li>
2124 <li><a name="toc-SAVE-command" href="#SAVE">32. SAVE command</a></li>
2125 <li><a name="toc-STORE-command" href="#STORE">33. STORE command</a></li>
2126 <li><a name="toc-UNLOCK-command" href="#UNLOCK">34. UNLOCK command</a></li>
2127 <li><a name="toc-XPATH-command" href="#XPATH">35. XPATH command</a></li>
2128 <li><a name="toc-XPATHATTR-command" href="#XPATHATTR">36. XPATHATTR command</a></li>
2129 <li><a name="toc-Status-messages-and-their-meanings" href="#Status-Messages">37. Status messages and their meanings</a></li>
2130 <li><a name="toc-The-target-attribute" href="#Target-Attribute">38. The <code>target</code> attribute</a></li>
2131 <li><a name="toc-Recognized-signals" href="#Signals">39. Recognized signals</a></li>
2132 <li><a name="toc-Concept-Index-1" href="#Concept-Index">Concept Index</a></li>
2133 </ul>
2134 </div>
2135 <hr size="1">
2136 <a name="SEC_Overview"></a>
2137 <table cellpadding="1" cellspacing="1" border="0">
2138 <tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
2139 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
2140 <td valign="middle" align="left">[Index]</td>
2141 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
2142 </tr></table>
2143 <h1>Short Table of Contents</h1>
2144 <div class="shortcontents">
2145 <ul class="toc">
2146 <li><a name="stoc-Overview-of-pwmd" href="#Introduction">1. Overview of <code>pwmd</code></a></li>
2147 <li><a name="stoc-Invoking-pwmd" href="#Invoking">2. Invoking <code>pwmd</code></a></li>
2148 <li><a name="stoc-pwmd-configuration-file-options" href="#Configuration">3. <code>pwmd</code> configuration file options</a></li>
2149 <li><a name="stoc-Configuring-remote-connections-over-TLS_002e" href="#TLS">4. Configuring remote connections over TLS.</a></li>
2150 <li><a name="stoc-Pinentry-configuration" href="#Pinentry">5. Pinentry configuration</a></li>
2151 <li><a name="stoc-Protocol-commands-and-their-syntax" href="#Commands">6. Protocol commands and their syntax</a></li>
2152 <li><a name="stoc-AGENT-command" href="#AGENT">7. AGENT command</a></li>
2153 <li><a name="stoc-ATTR-command" href="#ATTR">8. ATTR command</a></li>
2154 <li><a name="stoc-CACHETIMEOUT-command" href="#CACHETIMEOUT">9. CACHETIMEOUT command</a></li>
2155 <li><a name="stoc-CLEARCACHE-command" href="#CLEARCACHE">10. CLEARCACHE command</a></li>
2156 <li><a name="stoc-COPY-command" href="#COPY">11. COPY command</a></li>
2157 <li><a name="stoc-DELETE-command" href="#DELETE">12. DELETE command</a></li>
2158 <li><a name="stoc-DUMP-command" href="#DUMP">13. DUMP command</a></li>
2159 <li><a name="stoc-GET-command" href="#GET">14. GET command</a></li>
2160 <li><a name="stoc-GETCONFIG-command" href="#GETCONFIG">15. GETCONFIG command</a></li>
2161 <li><a name="stoc-GETINFO-command" href="#GETINFO">16. GETINFO command</a></li>
2162 <li><a name="stoc-HELP-command" href="#HELP">17. HELP command</a></li>
2163 <li><a name="stoc-IMPORT-command" href="#IMPORT">18. IMPORT command</a></li>
2164 <li><a name="stoc-ISCACHED-command" href="#ISCACHED">19. ISCACHED command</a></li>
2165 <li><a name="stoc-KEYGRIP-command" href="#KEYGRIP">20. KEYGRIP command</a></li>
2166 <li><a name="stoc-LIST-command" href="#LIST">21. LIST command</a></li>
2167 <li><a name="stoc-LOCK-command" href="#LOCK">22. LOCK command</a></li>
2168 <li><a name="stoc-LS-command" href="#LS">23. LS command</a></li>
2169 <li><a name="stoc-MOVE-command" href="#MOVE">24. MOVE command</a></li>
2170 <li><a name="stoc-NOP-command" href="#NOP">25. NOP command</a></li>
2171 <li><a name="stoc-OPEN-command" href="#OPEN">26. OPEN command</a></li>
2172 <li><a name="stoc-OPTION-command" href="#OPTION">27. OPTION command</a></li>
2173 <li><a name="stoc-PASSWD-command" href="#PASSWD">28. PASSWD command</a></li>
2174 <li><a name="stoc-REALPATH-command" href="#REALPATH">29. REALPATH command</a></li>
2175 <li><a name="stoc-RENAME-command" href="#RENAME">30. RENAME command</a></li>
2176 <li><a name="stoc-RESET-command" href="#RESET">31. RESET command</a></li>
2177 <li><a name="stoc-SAVE-command" href="#SAVE">32. SAVE command</a></li>
2178 <li><a name="stoc-STORE-command" href="#STORE">33. STORE command</a></li>
2179 <li><a name="stoc-UNLOCK-command" href="#UNLOCK">34. UNLOCK command</a></li>
2180 <li><a name="stoc-XPATH-command" href="#XPATH">35. XPATH command</a></li>
2181 <li><a name="stoc-XPATHATTR-command" href="#XPATHATTR">36. XPATHATTR command</a></li>
2182 <li><a name="stoc-Status-messages-and-their-meanings" href="#Status-Messages">37. Status messages and their meanings</a></li>
2183 <li><a name="stoc-The-target-attribute" href="#Target-Attribute">38. The <code>target</code> attribute</a></li>
2184 <li><a name="stoc-Recognized-signals" href="#Signals">39. Recognized signals</a></li>
2185 <li><a name="stoc-Concept-Index-1" href="#Concept-Index">Concept Index</a></li>
2186 </ul>
2187 </div>
2188 <hr size="1">
2189 <a name="SEC_About"></a>
2190 <table cellpadding="1" cellspacing="1" border="0">
2191 <tr><td valign="middle" align="left">[<a href="#Top" title="Cover (top) of document">Top</a>]</td>
2192 <td valign="middle" align="left">[<a href="#SEC_Contents" title="Table of contents">Contents</a>]</td>
2193 <td valign="middle" align="left">[Index]</td>
2194 <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
2195 </tr></table>
2196 <h1>About This Document</h1>
2198 This document was generated by <em>me</em> on <em>February 27, 2013</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
2199 </p>
2201 The buttons in the navigation panels have the following meaning:
2202 </p>
2203 <table border="1">
2204 <tr>
2205 <th> Button </th>
2206 <th> Name </th>
2207 <th> Go to </th>
2208 <th> From 1.2.3 go to</th>
2209 </tr>
2210 <tr>
2211 <td align="center"> [ &lt; ] </td>
2212 <td align="center">Back</td>
2213 <td>Previous section in reading order</td>
2214 <td>1.2.2</td>
2215 </tr>
2216 <tr>
2217 <td align="center"> [ &gt; ] </td>
2218 <td align="center">Forward</td>
2219 <td>Next section in reading order</td>
2220 <td>1.2.4</td>
2221 </tr>
2222 <tr>
2223 <td align="center"> [ &lt;&lt; ] </td>
2224 <td align="center">FastBack</td>
2225 <td>Beginning of this chapter or previous chapter</td>
2226 <td>1</td>
2227 </tr>
2228 <tr>
2229 <td align="center"> [ Up ] </td>
2230 <td align="center">Up</td>
2231 <td>Up section</td>
2232 <td>1.2</td>
2233 </tr>
2234 <tr>
2235 <td align="center"> [ &gt;&gt; ] </td>
2236 <td align="center">FastForward</td>
2237 <td>Next chapter</td>
2238 <td>2</td>
2239 </tr>
2240 <tr>
2241 <td align="center"> [Top] </td>
2242 <td align="center">Top</td>
2243 <td>Cover (top) of document</td>
2244 <td> &nbsp; </td>
2245 </tr>
2246 <tr>
2247 <td align="center"> [Contents] </td>
2248 <td align="center">Contents</td>
2249 <td>Table of contents</td>
2250 <td> &nbsp; </td>
2251 </tr>
2252 <tr>
2253 <td align="center"> [Index] </td>
2254 <td align="center">Index</td>
2255 <td>Index</td>
2256 <td> &nbsp; </td>
2257 </tr>
2258 <tr>
2259 <td align="center"> [ ? ] </td>
2260 <td align="center">About</td>
2261 <td>About (help)</td>
2262 <td> &nbsp; </td>
2263 </tr>
2264 </table>
2267 where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure:
2268 </p>
2270 <ul>
2271 <li> 1. Section One
2272 <ul>
2273 <li>1.1 Subsection One-One
2274 <ul>
2275 <li>...</li>
2276 </ul>
2277 </li>
2278 <li>1.2 Subsection One-Two
2279 <ul>
2280 <li>1.2.1 Subsubsection One-Two-One</li>
2281 <li>1.2.2 Subsubsection One-Two-Two</li>
2282 <li>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp;
2283 <strong>&lt;== Current Position </strong></li>
2284 <li>1.2.4 Subsubsection One-Two-Four</li>
2285 </ul>
2286 </li>
2287 <li>1.3 Subsection One-Three
2288 <ul>
2289 <li>...</li>
2290 </ul>
2291 </li>
2292 <li>1.4 Subsection One-Four</li>
2293 </ul>
2294 </li>
2295 </ul>
2297 <hr size="1">
2299 <font size="-1">
2300 This document was generated by <em>me</em> on <em>February 27, 2013</em> using <a href="http://www.nongnu.org/texi2html/"><em>texi2html 1.82</em></a>.
2301 </font>
2302 <br>
2304 </p>
2305 </body>
2306 </html>