fa54fe1e |
1 | .\" -*-nroff-*- |
2 | .de VS |
3 | .sp 1 |
4 | .RS |
5 | .nf |
6 | .ft B |
7 | .. |
8 | .de VE |
9 | .ft R |
10 | .fi |
11 | .RE |
12 | .sp 1 |
13 | .. |
14 | .ie t \{\ |
15 | . if \n(.g \{\ |
16 | . fam P |
17 | . \} |
18 | .\} |
19 | .de hP |
20 | .IP |
21 | .ft B |
22 | \h'-\w'\\$1\ 'u'\\$1\ \c |
23 | .ft P |
24 | .. |
25 | .ie t .ds o \(bu |
26 | .el .ds o o |
27 | .TH catsign 1 "17 March 2005" "Straylight/Edgeware" "Catacomb cryptographic library" |
28 | .SH NAME |
29 | catsign \- sign and verify messages |
30 | .SH SYNOPSIS |
31 | .B catsign |
32 | .RB [ \-k |
33 | .IR keyring ] |
34 | .I command |
35 | .PP |
36 | where |
37 | .I command |
38 | is one of: |
39 | .PP |
40 | .B help |
41 | .RI [ command ...] |
42 | .br |
43 | .B show |
44 | .RI [ item ...] |
45 | .br |
46 | .B sign |
47 | .RB [ \-adt ] |
48 | .RB [ \-k |
49 | .IR tag ] |
50 | .RB [ \-f |
51 | .IR format ] |
52 | .RB [ \-o |
53 | .IR output ] |
54 | .RI [ file ] |
55 | .br |
56 | .B verify |
57 | .RB [ \-aquv ] |
58 | .RB [ \-k |
59 | .IR tag ] |
60 | .RB [ \-f |
61 | .IR format ] |
62 | .br |
63 | |
64 | .RB [ \-o |
65 | .IR output ] |
66 | .RI [ file |
67 | .RI [ message ]] |
68 | .br |
69 | .B info |
70 | .RB [ \-a ] |
71 | .RB [ \-f |
72 | .IR format ] |
73 | .RI [ file ] |
74 | .br |
75 | .B format |
76 | .RB [ \-auABDET ] |
77 | .RB [ \-f |
78 | .IR format ] |
79 | .RB [ \-F |
80 | .IR format ] |
81 | .br |
82 | |
83 | .RB [ \-m |
84 | .IR file ] |
85 | .RB [ \-o |
86 | .IR output ] |
87 | .RI [ file |
88 | .RI [ message ]] |
89 | .br |
90 | .B encode |
91 | .RB [ \-f |
92 | .IR format ] |
93 | .RB [ \-b |
94 | .IR boundary ] |
95 | .RB [ \-o |
96 | .IR output ] |
97 | .RI [ file ] |
98 | .br |
99 | .B decode |
100 | .RB [ \-f |
101 | .IR format ] |
102 | .RB [ \-b |
103 | .IR boundary ] |
104 | .RB [ \-o |
105 | .IR output ] |
106 | .RI [ file ] |
107 | .SH "DESCRIPTION" |
108 | The |
109 | .B catsign |
110 | command signs and verifies messages. It also works as a simple PEM |
111 | encoder and decoder. It provides a number of subcommands, by which the |
112 | various operations may be carried out. |
113 | .SS "Global options" |
114 | Before the command name, |
115 | .I "global options" |
116 | may be given. The following global options are supported: |
117 | .TP |
118 | .BR "\-h, \-\-help " [ \fIcommand ...] |
119 | Writes a brief summary of |
120 | .BR catsign 's |
121 | various options to standard output, and returns a successful exit |
122 | status. With command names, gives help on those commands. |
123 | .TP |
124 | .B "\-v, \-\-version" |
125 | Writes the program's version number to standard output, and returns a |
126 | successful exit status. |
127 | .TP |
128 | .B "\-u, \-\-usage" |
129 | Writes a very terse command line summary to standard output, and returns |
130 | a successful exit status. |
131 | .TP |
132 | .BI "\-k, \-\-keyring " file |
133 | Names the keyring file which |
134 | .B key |
135 | is to process. The default keyring, used if this option doesn't specify |
136 | one, is the file named |
137 | .B keyring |
138 | in the current directory. See |
139 | .BR key (1) |
140 | and |
141 | .BR keyring (5) |
142 | for more details about keyring files. |
143 | .SH "KEY SETUP" |
144 | Algorithms to be used with a particular key are described by attributes |
145 | on the key, or its type. The |
146 | .B catsign |
147 | command deals with signing keys. (Note that |
148 | .B catsign |
149 | uses signing keys in the same way as |
150 | .BR catcrypt (1).) |
151 | .PP |
152 | A |
153 | .I sigalgspec |
154 | has the form |
155 | .IR sig \c |
156 | .RB [ / \c |
157 | .IR hash ]. |
158 | If a |
159 | .B sig |
160 | attribute is present on the key, then it must have this form; otherwise, |
161 | the key's type must have the form |
162 | .BI ccsig- \c |
163 | .IR sigalgspec . |
164 | Algorithm selections are taken from appropriately-named attributes, or, |
165 | failing that, from the |
166 | .IR sigalgspec . |
167 | .PP |
168 | The signature algorithm is chosen according to the setting of |
169 | .I sig |
170 | as follows. Run |
171 | .B catsign show sig |
172 | for a list of supported signature algorithms. |
173 | .TP |
174 | .B rsapkcs1 |
175 | This is almost the same as the RSASSA-PKCS1-v1_5 algorithm described in |
176 | RFC3447; the difference is that the hash is left bare rather than being |
177 | wrapped in a DER-encoded |
178 | .B DigestInfo |
179 | structure. This doesn't affect security since the key can only be used |
180 | with the one hash function anyway, and dropping the DER wrapping permits |
181 | rapid adoption of new hash functions. Regardless, use of this algorithm |
182 | is not recommended, since the padding method has been shown vulnerable |
183 | to attack. Use the |
184 | .B rsa |
185 | algorithm of the |
186 | .B key add |
187 | command (see |
188 | .BR key (1)) |
189 | to generate the key. |
190 | .TP |
191 | .B rsapss |
192 | This is the RSASSA-PSS algorithm described in RFC3447. It is the |
193 | preferred RSA-based signature scheme. Use the |
194 | .B rsa |
195 | algorithm of the |
196 | .B key add |
197 | command (see |
198 | .BR key (1)) |
199 | to generate the key. |
200 | .TP |
201 | .B dsa |
202 | This is the DSA algorithm described in FIPS180-1 and FIPS180-2. Use the |
203 | .B dsa |
204 | algorithm of the |
205 | .B key add |
206 | command (see |
207 | .BR key (1)) |
208 | to generate the key. |
209 | .TP |
210 | .B ecdsa |
211 | This is the ECDSA algorithm described in ANSI X9.62 and FIPS180-2. Use |
212 | the |
213 | .B ec |
214 | algorithm of the |
215 | .B key add |
216 | command (see |
217 | .BR key (1)) |
218 | to generate the key. |
219 | .TP |
220 | .B kcdsa |
221 | This is the revised KCDSA (Korean Certificate-based Digital Signature |
222 | Algorithm) described in |
223 | .I The Revised Version of KCDSA |
224 | .RB ( http://dasan.sejong.ac.kr/~chlim/pub/kcdsa1.ps ). |
225 | Use the |
226 | .B dh |
227 | algorithm of the |
228 | .B key add |
229 | command with the |
230 | .B \-LS |
231 | options (see |
232 | .BR key (1)) |
233 | to generate the key. |
234 | .TP |
235 | .B eckcdsa |
236 | This is an unofficial elliptic-curve analogue of the KCDSA algorithm. |
237 | Use the |
238 | .B ec |
239 | algorithm of the |
240 | .B key add |
241 | command (see |
242 | .BR key (1)) |
243 | to generate the key. |
244 | .PP |
245 | As well as the signature algorithm itself, a hash function is used. |
246 | This is taken from the |
247 | .B hash |
248 | attribute on the key, or, failing that, from the |
249 | .I hash |
250 | specified in the |
251 | .IR sigalgspec , |
252 | or, if that is absent, determined by the signature algorithm as follows. |
253 | .hP \*o |
254 | For |
255 | .BR rsapkcs1 , |
256 | .BR rsapss , |
257 | .BR dsa , |
258 | and |
259 | .BR ecdsa , |
260 | the default hash function is |
261 | .BR sha . |
262 | .hP \*o |
263 | For |
264 | .BR kcdsa |
265 | and |
266 | .BR eckcdsa , |
267 | the default hash function is |
268 | .BR has160 . |
269 | .PP |
270 | Run |
271 | .B catsign show hash |
272 | for a list of supported hash functions. |
273 | .SH "ENCODINGS" |
274 | Two encodings for the ciphertext are supported. |
275 | .TP |
276 | .B binary |
277 | The raw format, which has the benefit of being smaller, but needs to be |
278 | attached to mail messages and generally handled with care. |
279 | .TP |
280 | .B pem |
281 | PEM-encapsulated Base-64 encoded text. This format can be included |
282 | directly in email and picked out again automatically; but there is a |
283 | 4-to-3 data expansion as a result. |
284 | .SH "SIGNATURE FORMATS" |
285 | There are two basic signature formats understood by |
286 | .BR catsign . |
287 | .hP \*o |
288 | Embedded signatures include (embed) the message they sign; hence they're |
289 | complete in and of themselves. The |
290 | .B catsign |
291 | program extracts the message during signature verification. |
292 | .hP \*o |
293 | Detached signatures are separate from the messages they sign, and both |
294 | the original file and the signature are required for a successful |
295 | verification. |
296 | .PP |
297 | Another important distinction is whether the message data is considered |
298 | to be plain text or raw binary data. |
299 | .hP \*o |
300 | When dealing with plain text, |
301 | .B catsign |
302 | allows a limited quantity of leeway in the messages it processes. It |
303 | ignores trailing whitespace on a line, including stray carriage-returns, |
304 | which may appear if Windows boxes have had their way with the data. It |
305 | also appends a final newline if there wasn't one before. In embedded |
306 | signatures, the text is left unencoded, so that the message is readable. |
307 | .hP \*o |
308 | Binary files are preserved completely, and no variation whatever is |
309 | permitted. |
310 | .PP |
311 | The |
312 | .VS |
313 | catsign format |
314 | .VE |
315 | command can convert between detached and embedded signatures; it cannot |
316 | convert between binary and text mode signatures. (The data actually |
317 | signed includes a flag saying whether the message is textual. The |
318 | rationale here is that what looks like an ASCII space before a newline |
319 | may be devastatingly significant in a binary data file, and if a message |
320 | is signed as raw binary then no changes whatever should be allowed.) |
321 | .SH "COMMAND REFERENCE" |
322 | .SS help |
323 | The |
324 | .B help |
325 | command behaves exactly as the |
326 | .B \-\-help |
327 | option. With no arguments, it shows an overview of |
328 | .BR catsign 's |
329 | options; with arguments, it describes the named subcommands. |
330 | .SS show |
331 | The |
332 | .B show |
333 | command prints various lists of tokens understood by |
334 | .BR catsign . |
335 | With no arguments, it prints all of the lists; with arguments, it prints |
336 | just the named lists, in order. The recognized lists can be enumerated |
337 | using the |
338 | .VS |
339 | catsign show list |
340 | .VE |
341 | command. The lists are as follows. |
342 | .TP |
343 | .B list |
344 | The lists which can be enumerated by the |
345 | .B show |
346 | command. |
347 | .TP |
348 | .B sig |
349 | The signature algorithms which can be used in a signing key's |
350 | .B sig |
351 | attribute. |
352 | .TP |
353 | .B hash |
354 | The hash functions which can be used in a key's |
355 | .B hash |
356 | attribute. |
357 | .TP |
358 | .B enc |
359 | The encodings which can be applied to encrypted messages; see |
360 | .B ENCODINGS |
361 | above. |
362 | .SS sign |
363 | The |
364 | .B sign |
365 | command signs a message and writes out an appropriately-encoded |
366 | signature. By default, it reads a message from standard input and |
367 | writes the signature to standard output. If a filename argument is |
368 | given, this file is read instead. |
369 | .PP |
370 | The following options are recognized. |
371 | .TP |
372 | .B "\-a, \-\-armour" |
373 | Produce ASCII-armoured output. This is equivalent to specifying |
374 | .BR "\-f pem" . |
375 | The variant spelling |
376 | .B "\-\-armor" |
377 | is also accepted. |
378 | .TP |
379 | .B "\-b, \-\-binary" |
380 | Read and sign the input as binary data. The default is to treat the |
381 | input as text. |
382 | .TP |
383 | .B "\-d, \-\-detach" |
384 | Produce a detached signature. The default is to produce a signature |
385 | with embedded message. |
386 | .TP |
387 | .BI "\-f, \-\-format " format |
388 | Produce output encoded according to |
389 | .IR format . |
390 | .TP |
391 | .BI "\-k, \-\-key " tag |
392 | Use the signing key named |
393 | .I tag |
394 | in the current keyring; the default key is |
395 | .BR ccsig . |
396 | .TP |
397 | .BI "\-o, \-\-ouptut " file |
398 | Write output to |
399 | .I file |
400 | rather than to standard output. |
401 | .TP |
402 | .B "\-t, \-\-text" |
403 | Read and sign the input as text. This is the default. |
404 | .SS verify |
405 | The |
406 | .B verify |
407 | command checks a signature's validity, producing as output information |
408 | about the signature and the signed message. |
409 | .PP |
410 | The first non-option argument is the name of the file containing the |
411 | signature data; this may be omitted or |
412 | .RB ` \- ' |
413 | to indicate that the signature be read from standard input. The second |
414 | non-option argument, if any, is the name of the file to read the message |
415 | from, if the signature is detached. An error is reported if a message |
416 | file is specified but the signature contains an embedded message |
417 | already; if the signature is detached but no filename is given, then the |
418 | message is expected on stdin (immediately after the signature, if any). |
419 | .TP |
420 | .B "\-a, \-\-armour" |
421 | Read ASCII-armoured input. This is equivalent to specifying |
422 | .BR "\-f pem" . |
423 | The variant spelling |
424 | .B "\-\-armor" |
425 | is also accepted. |
426 | .TP |
427 | .B "\-b, \-\-buffer" |
428 | Buffer the message until the signature is verified. This is forced on |
429 | if output is to stdout, but is always available as an option. |
430 | .TP |
431 | .BI "\-f, \-\-format " format |
432 | Read input encoded according to |
433 | .IR format . |
434 | .TP |
435 | .B "\-v, \-\-verbose" |
436 | Produce more verbose messages. See below for the messages produced |
437 | during decryption. The default verbosity level is 1. (Currently this |
438 | is the most verbose setting. This might not be the case always.) |
21aac40c |
439 | .TP |
fa54fe1e |
440 | .B "\-q, \-\-quiet" |
441 | Produce fewer messages. |
442 | .TP |
443 | .BI "\-k, \-\-key " tag |
444 | Usually |
445 | .B catsign |
446 | uses the signature header to work out which key to use to verify a |
447 | signature. Using this option causes verification to fail unless the |
448 | signature header specifies the key named |
449 | .IR tag . |
450 | .TP |
451 | .B "\-u, \-\-utc" |
452 | Show the datestamp in the signature in UTC rather than (your) local |
453 | time. The synonym |
454 | .B \-\-gmt |
455 | is also accepted. |
456 | .TP |
457 | .BI "\-o, \-\-output " file |
458 | Write the verified message to |
459 | .IR file . |
460 | The file is written in text or binary |
461 | mode as appropriate. The default is to write the message to standard |
462 | output unless verifying a detached signature, in which case nothing is |
463 | written. |
464 | .PP |
465 | Output is written to standard output in a machine-readable format. |
466 | Major problems cause the program to write a diagnostic to standard error |
467 | and exit nonzero as usual. The quantity of output varies depending on |
468 | the verbosity level and whether the message is also being written to |
469 | standard output. Output lines begin with a keyword: |
470 | .TP |
471 | .BI "FAIL " reason |
472 | An error prevented verification. The program will exit nonzero. |
473 | .TP |
474 | .BI "WARN " reason |
475 | .B catsign |
476 | encountered a situation which may or may not invalidate the |
477 | verification. |
478 | .TP |
479 | .BI "OK " message |
480 | Verification was successful. This is only produced if the message is |
481 | being sent somewhere other than standard output. |
482 | .TP |
483 | .B "DATA" |
484 | The message follows, starting just after the next newline character or |
485 | sequence. This is only produced if the message is being written to |
486 | standard output. |
487 | .TP |
488 | .BI "INFO " note |
489 | Any other information. |
490 | .PP |
491 | The information written at the various verbosity levels is as follows. |
492 | .hP 0. |
493 | No output. Watch the exit status. |
494 | .hP 1. |
495 | All messages. |
496 | .PP |
497 | .B Warning! |
498 | All output written has been checked for authenticity. However, output |
499 | can fail madway through for many reasons, and the resulting message may |
500 | therefore be truncated. Don't rely on the output being complete until |
4224d0b9 |
501 | .B OK |
502 | is printed or |
fa54fe1e |
503 | .B catsign verify |
504 | exits successfully. |
505 | .SS info |
506 | The |
507 | .B info |
508 | command analyses a signature without verifying it, and prints |
509 | interesting information about it. This might be useful for diagnostic |
510 | purposes. No keys are needed for this operation, though you get more |
511 | useful information if you have them. |
512 | .PP |
513 | If a non-option argument is given, and it is not |
514 | .RB ` \- ', |
515 | then it is taken to name the file containing the signature to parse; |
516 | otherwise a signature is read from standard input. |
517 | .PP |
518 | The following options are recognized. |
519 | .TP |
520 | .B "\-a, \-\-armour" |
521 | Read ASCII-armoured input. This is equivalent to specifying |
522 | .BR "\-f pem" . |
523 | The variant spelling |
524 | .B "\-\-armor" |
525 | is also accepted. |
526 | .TP |
527 | .BI "\-f, \-\-format " format |
528 | Read input encoded according to |
529 | .IR format . |
530 | .TP |
531 | .B "\-u, \-\-utc" |
532 | Show the datestamp in the signature in UTC rather than (your) local |
533 | time. The synonym |
534 | .B \-\-gmt |
535 | is also accepted. |
536 | .PP |
537 | A description of the signature block is produced on standard output; it |
538 | is mostly machine-readable. The first word on each line explains what |
539 | kind of output it is. |
540 | .TP |
541 | .BI "BAD " message |
542 | The signature data is invalid and cannot be parsed. |
543 | .TP |
544 | .BI "WARN " message |
545 | Something is wrong with the data, but isn't fatal. |
546 | .TP |
547 | .BI "NOTE " message |
548 | An environmental problem means that the information isn't as helpful as |
549 | it might be. For example, the keyring file can't be opened, so we don't |
550 | know whether the verification key is there. |
551 | .TP |
552 | .BI "INFO flags " flags |
553 | Describes the flags set in the signature header. The |
554 | .I flags |
555 | are a list of flags, one per word, preceded by a |
556 | .RB ` ! ' |
557 | if the flag is clear. |
558 | .TP |
559 | .BI "INFO expected-flags " flags |
560 | If the PEM boundary string didn't match the actual signature data then |
561 | this line is output, listing the expected flags and their settings. |
562 | Problems with boundary mismatches can be resolved using the |
563 | .B format |
564 | command. |
565 | .TP |
566 | .BI "INFO date " yyyy "\-" mm "\-" dd " " hh ":" mm ":" ss " " tz |
567 | Signature was (allegedly!) made at the given time and date. If the |
568 | .B \-u |
569 | option was given, this will be in UTC. |
570 | .TP |
571 | .BI "INFO key " tag |
572 | Signature was (allegedly!) made using the key |
573 | .IR tag , |
574 | which is present in the current keyring. |
575 | .TP |
576 | .BI "INFO unknown-key " keyid |
577 | Signature was (allegedly!) made using the key with id |
578 | .IR keyid |
579 | which is not in the current keyring (or the keyring wasn't found). |
580 | .SS format |
581 | The |
582 | .B format |
583 | command translates signatures between the various supported formats. |
584 | This is a (slightly) more complex operation than re-encoding, though it |
585 | does not require any cryptographic operations. |
586 | .PP |
587 | The first non-option argument is the name of the file containing the |
588 | signature data; this may be omitted or |
589 | .RB ` \- ' |
590 | to indicate that the signature be read from standard input. The second |
591 | non-option argument, if any, is the name of the file to read the message |
592 | from, if the signature is detached. An error is reported if a message |
593 | file is specified but the signature contains an embedded message |
594 | already; if the signature is detached but no filename is given, then the |
595 | message is expected on stdin (immediately after the signature, if any). |
596 | .PP |
597 | The options follow a rough convention: options describing the input |
598 | format are lower-case and options specifying the output format are |
599 | upper-case. The following options are recognized. |
0ac1f186 |
600 | .TP |
601 | .BI "\-a, \-\-armour-in" |
fa54fe1e |
602 | Read ASCII-armoured input. This is equivalent to specifying |
603 | .BR "\-f pem" . |
604 | The variant spelling |
605 | .B "\-\-armor" |
606 | is also accepted. |
0ac1f186 |
607 | .TP |
608 | .BI "\-A, \-\-armour-out" |
fa54fe1e |
609 | Produce ASCII-armoured output. This is equivalent to specifying |
610 | .BR "\-F pem" . |
611 | The variant spelling |
612 | .B "\-\-armor-out" |
613 | is also accepted. |
614 | .TP |
615 | .B "\-D, \-\-detach" |
616 | Produce a detached signature. This may be used to detach a signature |
617 | from an embedded message. |
618 | .TP |
619 | .B "\-E, \-\-embed" |
620 | Produce a signature with embedded message. This may be used to |
621 | reattach a message to its detached signature. |
622 | .TP |
623 | .BI "\-f, \-\-format-in " format |
624 | Read input encoded according to |
625 | .IR format . |
626 | .TP |
627 | .BI "\-F, \-\-format-out " format |
628 | Produce output encoded according to |
629 | .IR format . |
630 | .TP |
631 | .BI "\-m, \-\-message " file |
632 | Write the message to |
633 | .IR file . |
634 | If |
635 | .I file |
636 | is |
637 | .RB ` \- ' |
638 | then write the message to standard output. Don't send the message and |
639 | signature to the same place because it doesn't work. |
640 | .TP |
641 | .BI "\-o, \-\-output " file |
642 | Write the signature to |
643 | .IR file . |
644 | If no |
645 | .B \-m |
646 | or |
647 | .B \-o |
648 | option is given, a signature is written to standard output. |
e1cba07d |
649 | .SS "encode" |
650 | The |
651 | .B encode |
652 | command encodes an input file according to one of the encodings |
653 | described above in |
654 | .BR ENCODINGS . |
655 | The input is read from the |
656 | .I file |
657 | given on the command line, or from standard input if none is specified. |
658 | Options provided are: |
659 | .TP |
660 | .BI "\-f, \-\-format " format |
661 | Produce output in |
662 | .IR format . |
663 | Run |
65802cb1 |
664 | .B catsign show enc |
e1cba07d |
665 | for a list of encoding formats. |
666 | .TP |
667 | .BI "\-b, \-\-boundary " label |
668 | Set the PEM boundary string to |
669 | .IR label ; |
670 | i.e., assuming we're encoding in PEM format, the output will have |
671 | .BI "\-\-\-\-\-BEGIN " label "\-\-\-\-\-" |
672 | at the top and |
673 | .BI "\-\-\-\-\-END " label "\-\-\-\-\-" |
674 | at the bottom. The default |
675 | .I label |
676 | is |
677 | .BR MESSAGE . |
678 | .TP |
679 | .BI "\-o, \-\-output " file |
680 | Write output to |
681 | .I file |
682 | instead of to standard output. |
683 | .SS "decode" |
684 | The |
685 | .B decode |
686 | command decodes an input file encoded according to one of the encodings |
687 | described above in |
688 | .BR ENCODINGS . |
689 | The input is read from the |
690 | .I file |
691 | given on the command line, or from standard input if none is specified. |
692 | Options provided are: |
693 | .TP |
694 | .BI "\-f, \-\-format " format |
695 | Decode input in |
696 | .IR format . |
697 | Run |
65802cb1 |
698 | .B catsign show enc |
e1cba07d |
699 | for a list of encoding formats. |
700 | .TP |
701 | .BI "\-b, \-\-boundary " label |
702 | Set the PEM boundary string to |
703 | .IR label ; |
704 | i.e., assuming we're encoding in PEM format, start processing input |
705 | between |
706 | .BI "\-\-\-\-\-BEGIN " label "\-\-\-\-\-" |
707 | and |
708 | .BI "\-\-\-\-\-END " label "\-\-\-\-\-" |
709 | lines. Without this option, |
65802cb1 |
710 | .B catsign |
e1cba07d |
711 | will start reading at the first plausible boundary string, and continue |
712 | processing until it reaches the matching end boundary. |
713 | .TP |
714 | .BI "\-o, \-\-output " file |
715 | Write output to |
716 | .I file |
717 | instead of to standard output. |
fa54fe1e |
718 | .SH "BUGS" |
719 | The trailing-whitespace deletion doesn't work for more than 32K of |
720 | whitespace. I don't think this is a big problem, really. |
721 | .PP |
722 | The |
723 | .B format |
724 | command does something unhelpful if message and signature are sent to |
725 | the same file. |
726 | .SH "SEE ALSO" |
727 | .BR key (1), |
728 | .BR catcrypt (1), |
729 | .BR dsig (1), |
730 | .BR hashsum (1), |
731 | .BR keyring (5). |
732 | .SH AUTHOR |
f387fcb1 |
733 | Mark Wooding, <mdw@distorted.org.uk> |