/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to mandos-keygen.xml

Several memory leaks detected by valgrind fixed
A bugg fixed that could cause seg fault.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<?xml version="1.0" encoding="UTF-8"?>
2
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3
3
        "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
 
4
<!ENTITY VERSION "1.0">
4
5
<!ENTITY COMMANDNAME "mandos-keygen">
5
 
<!ENTITY TIMESTAMP "2019-07-18">
6
 
<!ENTITY % common SYSTEM "common.ent">
7
 
%common;
 
6
<!ENTITY TIMESTAMP "2008-09-03">
8
7
]>
9
8
 
10
9
<refentry xmlns:xi="http://www.w3.org/2001/XInclude">
12
11
    <title>Mandos Manual</title>
13
12
    <!-- NWalsh’s docbook scripts use this to generate the footer: -->
14
13
    <productname>Mandos</productname>
15
 
    <productnumber>&version;</productnumber>
 
14
    <productnumber>&VERSION;</productnumber>
16
15
    <date>&TIMESTAMP;</date>
17
16
    <authorgroup>
18
17
      <author>
19
18
        <firstname>Björn</firstname>
20
19
        <surname>Påhlsson</surname>
21
20
        <address>
22
 
          <email>belorn@recompile.se</email>
 
21
          <email>belorn@fukt.bsnet.se</email>
23
22
        </address>
24
23
      </author>
25
24
      <author>
26
25
        <firstname>Teddy</firstname>
27
26
        <surname>Hogeborn</surname>
28
27
        <address>
29
 
          <email>teddy@recompile.se</email>
 
28
          <email>teddy@fukt.bsnet.se</email>
30
29
        </address>
31
30
      </author>
32
31
    </authorgroup>
33
32
    <copyright>
34
33
      <year>2008</year>
35
 
      <year>2009</year>
36
 
      <year>2010</year>
37
 
      <year>2011</year>
38
 
      <year>2012</year>
39
 
      <year>2013</year>
40
 
      <year>2014</year>
41
 
      <year>2015</year>
42
 
      <year>2016</year>
43
 
      <year>2017</year>
44
 
      <year>2018</year>
45
 
      <year>2019</year>
46
34
      <holder>Teddy Hogeborn</holder>
47
35
      <holder>Björn Påhlsson</holder>
48
36
    </copyright>
49
37
    <xi:include href="legalnotice.xml"/>
50
38
  </refentryinfo>
51
 
  
 
39
 
52
40
  <refmeta>
53
41
    <refentrytitle>&COMMANDNAME;</refentrytitle>
54
42
    <manvolnum>8</manvolnum>
60
48
      Generate key and password for Mandos client and server.
61
49
    </refpurpose>
62
50
  </refnamediv>
63
 
  
 
51
 
64
52
  <refsynopsisdiv>
65
53
    <cmdsynopsis>
66
54
      <command>&COMMANDNAME;</command>
127
115
        <replaceable>TIME</replaceable></option></arg>
128
116
      </group>
129
117
      <sbr/>
130
 
      <group>
131
 
        <arg choice="plain"><option>--tls-keytype
132
 
        <replaceable>KEYTYPE</replaceable></option></arg>
133
 
        <arg choice="plain"><option>-T
134
 
        <replaceable>KEYTYPE</replaceable></option></arg>
135
 
      </group>
136
 
      <sbr/>
137
 
      <group>
138
 
        <arg choice="plain"><option>--force</option></arg>
139
 
        <arg choice="plain"><option>-f</option></arg>
140
 
      </group>
 
118
      <arg><option>--force</option></arg>
141
119
    </cmdsynopsis>
142
120
    <cmdsynopsis>
143
121
      <command>&COMMANDNAME;</command>
144
122
      <group choice="req">
145
123
        <arg choice="plain"><option>--password</option></arg>
146
124
        <arg choice="plain"><option>-p</option></arg>
147
 
        <arg choice="plain"><option>--passfile
148
 
        <replaceable>FILE</replaceable></option></arg>
149
 
        <arg choice="plain"><option>-F</option>
150
 
        <replaceable>FILE</replaceable></arg>
151
125
      </group>
152
126
      <sbr/>
153
127
      <group>
163
137
        <arg choice="plain"><option>-n
164
138
        <replaceable>NAME</replaceable></option></arg>
165
139
      </group>
166
 
      <group>
167
 
        <arg choice="plain"><option>--no-ssh</option></arg>
168
 
        <arg choice="plain"><option>-S</option></arg>
169
 
      </group>
170
140
    </cmdsynopsis>
171
141
    <cmdsynopsis>
172
142
      <command>&COMMANDNAME;</command>
188
158
    <title>DESCRIPTION</title>
189
159
    <para>
190
160
      <command>&COMMANDNAME;</command> is a program to generate the
191
 
      TLS and OpenPGP keys used by
192
 
      <citerefentry><refentrytitle>mandos-client</refentrytitle>
193
 
      <manvolnum>8mandos</manvolnum></citerefentry>.  The keys are
194
 
      normally written to /etc/keys/mandos for later installation into
195
 
      the initrd image, but this, and most other things, can be
196
 
      changed with command line options.
 
161
      OpenPGP key used by
 
162
      <citerefentry><refentrytitle>password-request</refentrytitle>
 
163
      <manvolnum>8mandos</manvolnum></citerefentry>.  The key is
 
164
      normally written to /etc/mandos for later installation into the
 
165
      initrd image, but this, and most other things, can be changed
 
166
      with command line options.
197
167
    </para>
198
168
    <para>
199
169
      This program can also be used with the
200
 
      <option>--password</option> or <option>--passfile</option>
201
 
      options to generate a ready-made section for
202
 
      <filename>clients.conf</filename> (see
 
170
      <option>--password</option> option to generate a ready-made
 
171
      section for <filename>clients.conf</filename> (see
203
172
      <citerefentry><refentrytitle>mandos-clients.conf</refentrytitle>
204
173
      <manvolnum>5</manvolnum></citerefentry>).
205
174
    </para>
228
197
          </para>
229
198
        </listitem>
230
199
      </varlistentry>
231
 
      
 
200
 
232
201
      <varlistentry>
233
202
        <term><option>--dir
234
203
        <replaceable>DIRECTORY</replaceable></option></term>
236
205
        <replaceable>DIRECTORY</replaceable></option></term>
237
206
        <listitem>
238
207
          <para>
239
 
            Target directory for key files.  Default is <filename
240
 
            class="directory">/etc/keys/mandos</filename>.
 
208
            Target directory for key files.  Default is
 
209
            <filename>/etc/mandos</filename>.
241
210
          </para>
242
211
        </listitem>
243
212
      </varlistentry>
244
 
      
 
213
 
245
214
      <varlistentry>
246
215
        <term><option>--type
247
216
        <replaceable>TYPE</replaceable></option></term>
249
218
        <replaceable>TYPE</replaceable></option></term>
250
219
        <listitem>
251
220
          <para>
252
 
            OpenPGP key type.  Default is <quote>RSA</quote>.
 
221
            Key type.  Default is <quote>DSA</quote>.
253
222
          </para>
254
223
        </listitem>
255
224
      </varlistentry>
256
 
      
 
225
 
257
226
      <varlistentry>
258
227
        <term><option>--length
259
228
        <replaceable>BITS</replaceable></option></term>
261
230
        <replaceable>BITS</replaceable></option></term>
262
231
        <listitem>
263
232
          <para>
264
 
            OpenPGP key length in bits.  Default is 4096.
 
233
            Key length in bits.  Default is 2048.
265
234
          </para>
266
235
        </listitem>
267
236
      </varlistentry>
268
 
      
 
237
 
269
238
      <varlistentry>
270
239
        <term><option>--subtype
271
240
        <replaceable>KEYTYPE</replaceable></option></term>
273
242
        <replaceable>KEYTYPE</replaceable></option></term>
274
243
        <listitem>
275
244
          <para>
276
 
            OpenPGP subkey type.  Default is <quote>RSA</quote>
 
245
            Subkey type.  Default is <quote>ELG-E</quote> (Elgamal
 
246
            encryption-only).
277
247
          </para>
278
248
        </listitem>
279
249
      </varlistentry>
280
 
      
 
250
 
281
251
      <varlistentry>
282
252
        <term><option>--sublength
283
253
        <replaceable>BITS</replaceable></option></term>
285
255
        <replaceable>BITS</replaceable></option></term>
286
256
        <listitem>
287
257
          <para>
288
 
            OpenPGP subkey length in bits.  Default is 4096.
 
258
            Subkey length in bits.  Default is 2048.
289
259
          </para>
290
260
        </listitem>
291
261
      </varlistentry>
292
 
      
 
262
 
293
263
      <varlistentry>
294
264
        <term><option>--email
295
265
        <replaceable>ADDRESS</replaceable></option></term>
301
271
          </para>
302
272
        </listitem>
303
273
      </varlistentry>
304
 
      
 
274
 
305
275
      <varlistentry>
306
276
        <term><option>--comment
307
277
        <replaceable>TEXT</replaceable></option></term>
309
279
        <replaceable>TEXT</replaceable></option></term>
310
280
        <listitem>
311
281
          <para>
312
 
            Comment field for key.  Default is empty.
 
282
            Comment field for key.  The default value is
 
283
            <quote><literal>Mandos client key</literal></quote>.
313
284
          </para>
314
285
        </listitem>
315
286
      </varlistentry>
316
 
      
 
287
 
317
288
      <varlistentry>
318
289
        <term><option>--expire
319
290
        <replaceable>TIME</replaceable></option></term>
327
298
          </para>
328
299
        </listitem>
329
300
      </varlistentry>
330
 
      
331
 
      <varlistentry>
332
 
        <term><option>--tls-keytype
333
 
        <replaceable>KEYTYPE</replaceable></option></term>
334
 
        <term><option>-T
335
 
        <replaceable>KEYTYPE</replaceable></option></term>
336
 
        <listitem>
337
 
          <para>
338
 
            TLS key type.  Default is <quote>ed25519</quote>
339
 
          </para>
340
 
        </listitem>
341
 
      </varlistentry>
342
 
      
 
301
 
343
302
      <varlistentry>
344
303
        <term><option>--force</option></term>
345
304
        <term><option>-f</option></term>
355
314
        <listitem>
356
315
          <para>
357
316
            Prompt for a password and encrypt it with the key already
358
 
            present in either <filename>/etc/keys/mandos</filename> or
359
 
            the directory specified with the <option>--dir</option>
 
317
            present in either <filename>/etc/mandos</filename> or the
 
318
            directory specified with the <option>--dir</option>
360
319
            option.  Outputs, on standard output, a section suitable
361
320
            for inclusion in <citerefentry><refentrytitle
362
321
            >mandos-clients.conf</refentrytitle><manvolnum
363
322
            >8</manvolnum></citerefentry>.  The host name or the name
364
323
            specified with the <option>--name</option> option is used
365
324
            for the section header.  All other options are ignored,
366
 
            and no key is created.  Note: white space is stripped from
367
 
            the beginning and from the end of the password; See <xref
368
 
            linkend="bugs"/>.
369
 
          </para>
370
 
        </listitem>
371
 
      </varlistentry>
372
 
      <varlistentry>
373
 
        <term><option>--passfile
374
 
        <replaceable>FILE</replaceable></option></term>
375
 
        <term><option>-F
376
 
        <replaceable>FILE</replaceable></option></term>
377
 
        <listitem>
378
 
          <para>
379
 
            The same as <option>--password</option>, but read from
380
 
            <replaceable>FILE</replaceable>, not the terminal, and
381
 
            white space is not stripped from the password in any way.
382
 
          </para>
383
 
        </listitem>
384
 
      </varlistentry>
385
 
      <varlistentry>
386
 
        <term><option>--no-ssh</option></term>
387
 
        <term><option>-S</option></term>
388
 
        <listitem>
389
 
          <para>
390
 
            When <option>--password</option> or
391
 
            <option>--passfile</option> is given, this option will
392
 
            prevent <command>&COMMANDNAME;</command> from calling
393
 
            <command>ssh-keyscan</command> to get an SSH fingerprint
394
 
            for this host and, if successful, output suitable config
395
 
            options to use this fingerprint as a
396
 
            <option>checker</option> option in the output.  This is
397
 
            otherwise the default behavior.
 
325
            and no key is created.
398
326
          </para>
399
327
        </listitem>
400
328
      </varlistentry>
401
329
    </variablelist>
402
330
  </refsect1>
403
 
  
 
331
 
404
332
  <refsect1 id="overview">
405
333
    <title>OVERVIEW</title>
406
334
    <xi:include href="overview.xml"/>
407
335
    <para>
408
 
      This program is a small utility to generate new TLS and OpenPGP
409
 
      keys for new Mandos clients, and to generate sections for
410
 
      inclusion in <filename>clients.conf</filename> on the server.
 
336
      This program is a small utility to generate new OpenPGP keys for
 
337
      new Mandos clients, and to generate sections for inclusion in
 
338
      <filename>clients.conf</filename> on the server.
411
339
    </para>
412
340
  </refsect1>
413
 
  
 
341
 
414
342
  <refsect1 id="exit_status">
415
343
    <title>EXIT STATUS</title>
416
344
    <para>
436
364
    </variablelist>
437
365
  </refsect1>
438
366
  
439
 
  <refsect1 id="files">
 
367
  <refsect1 id="file">
440
368
    <title>FILES</title>
441
369
    <para>
442
370
      Use the <option>--dir</option> option to change where
445
373
    </para>
446
374
    <variablelist>
447
375
      <varlistentry>
448
 
        <term><filename>/etc/keys/mandos/seckey.txt</filename></term>
 
376
        <term><filename>/etc/mandos/seckey.txt</filename></term>
449
377
        <listitem>
450
378
          <para>
451
379
            OpenPGP secret key file which will be created or
454
382
        </listitem>
455
383
      </varlistentry>
456
384
      <varlistentry>
457
 
        <term><filename>/etc/keys/mandos/pubkey.txt</filename></term>
 
385
        <term><filename>/etc/mandos/pubkey.txt</filename></term>
458
386
        <listitem>
459
387
          <para>
460
388
            OpenPGP public key file which will be created or
463
391
        </listitem>
464
392
      </varlistentry>
465
393
      <varlistentry>
466
 
        <term><filename>/etc/keys/mandos/tls-privkey.pem</filename></term>
467
 
        <listitem>
468
 
          <para>
469
 
            Private key file which will be created or overwritten.
470
 
          </para>
471
 
        </listitem>
472
 
      </varlistentry>
473
 
      <varlistentry>
474
 
        <term><filename>/etc/keys/mandos/tls-pubkey.pem</filename></term>
475
 
        <listitem>
476
 
          <para>
477
 
            Public key file which will be created or overwritten.
478
 
          </para>
479
 
        </listitem>
480
 
      </varlistentry>
481
 
      <varlistentry>
482
 
        <term><filename class="directory">/tmp</filename></term>
 
394
        <term><filename>/tmp</filename></term>
483
395
        <listitem>
484
396
          <para>
485
397
            Temporary files will be written here if
489
401
      </varlistentry>
490
402
    </variablelist>
491
403
  </refsect1>
492
 
  
493
 
  <refsect1 id="bugs">
494
 
    <title>BUGS</title>
495
 
    <para>
496
 
      The <option>--password</option>/<option>-p</option> option
497
 
      strips white space from the start and from the end of the
498
 
      password before using it.  If this is a problem, use the
499
 
      <option>--passfile</option> option instead, which does not do
500
 
      this.
501
 
    </para>
502
 
    <xi:include href="bugs.xml"/>
503
 
  </refsect1>
504
 
  
 
404
 
 
405
<!--   <refsect1 id="bugs"> -->
 
406
<!--     <title>BUGS</title> -->
 
407
<!--     <para> -->
 
408
<!--     </para> -->
 
409
<!--   </refsect1> -->
 
410
 
505
411
  <refsect1 id="example">
506
412
    <title>EXAMPLE</title>
507
413
    <informalexample>
526
432
    </informalexample>
527
433
    <informalexample>
528
434
      <para>
529
 
        Prompt for a password, encrypt it with the keys in <filename
530
 
        class="directory">/etc/keys/mandos</filename> and output a
531
 
        section suitable for <filename>clients.conf</filename>.
 
435
        Prompt for a password, encrypt it with the key in
 
436
        <filename>/etc/mandos</filename> and output a section suitable
 
437
        for <filename>clients.conf</filename>.
532
438
      </para>
533
439
      <para>
534
440
        <userinput>&COMMANDNAME; --password</userinput>
536
442
    </informalexample>
537
443
    <informalexample>
538
444
      <para>
539
 
        Prompt for a password, encrypt it with the keys in the
 
445
        Prompt for a password, encrypt it with the key in the
540
446
        <filename>client-key</filename> directory and output a section
541
447
        suitable for <filename>clients.conf</filename>.
542
448
      </para>
548
454
      </para>
549
455
    </informalexample>
550
456
  </refsect1>
551
 
  
 
457
 
552
458
  <refsect1 id="security">
553
459
    <title>SECURITY</title>
554
460
    <para>
563
469
      <manvolnum>8</manvolnum></citerefentry>.
564
470
    </para>
565
471
  </refsect1>
566
 
  
 
472
 
567
473
  <refsect1 id="see_also">
568
474
    <title>SEE ALSO</title>
569
475
    <para>
570
 
      <citerefentry><refentrytitle>intro</refentrytitle>
571
 
      <manvolnum>8mandos</manvolnum></citerefentry>,
572
476
      <citerefentry><refentrytitle>gpg</refentrytitle>
573
477
      <manvolnum>1</manvolnum></citerefentry>,
574
478
      <citerefentry><refentrytitle>mandos-clients.conf</refentrytitle>
575
479
      <manvolnum>5</manvolnum></citerefentry>,
576
480
      <citerefentry><refentrytitle>mandos</refentrytitle>
577
481
      <manvolnum>8</manvolnum></citerefentry>,
578
 
      <citerefentry><refentrytitle>mandos-client</refentrytitle>
579
 
      <manvolnum>8mandos</manvolnum></citerefentry>,
580
 
      <citerefentry><refentrytitle>ssh-keyscan</refentrytitle>
581
 
      <manvolnum>1</manvolnum></citerefentry>
 
482
      <citerefentry><refentrytitle>password-request</refentrytitle>
 
483
      <manvolnum>8mandos</manvolnum></citerefentry>
582
484
    </para>
583
485
  </refsect1>
584
486