Sync usage with man page.
[netbsd-mini2440.git] / crypto / external / bsd / netpgp / dist / src / netpgpkeys / netpgpkeys.1
blobc17dbfabbe977001a647711e8f9685cb1cd312f3
1 .\" $NetBSD: netpgpkeys.1,v 1.3 2009/12/05 07:35:30 agc Exp $
2 .\"
3 .\" Copyright (c) 2009 The NetBSD Foundation, Inc.
4 .\" All rights reserved.
5 .\"
6 .\" This manual page is derived from software contributed to
7 .\" The NetBSD Foundation by Alistair Crooks (agc@NetBSD.org).
8 .\"
9 .\" Redistribution and use in source and binary forms, with or without
10 .\" modification, are permitted provided that the following conditions
11 .\" are met:
12 .\" 1. Redistributions of source code must retain the above copyright
13 .\"    notice, this list of conditions and the following disclaimer.
14 .\" 2. Redistributions in binary form must reproduce the above copyright
15 .\"    notice, this list of conditions and the following disclaimer in the
16 .\"    documentation and/or other materials provided with the distribution.
17 .\"
18 .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19 .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20 .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21 .\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22 .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28 .\" POSSIBILITY OF SUCH DAMAGE.
29 .\"
30 .Dd December 4, 2009
31 .Dt NETPGPKEYS 1
32 .Os
33 .Sh NAME
34 .Nm netpgpkeys
35 .Nd PGP key management utility
36 .Sh SYNOPSIS
37 .Nm
38 .Fl Fl export-key
39 .Op options
40 .Ar file ...
41 .Nm
42 .Fl Fl find-key
43 .Op options
44 .Ar file ...
45 .Nm
46 .Fl Fl generate-key
47 .Op options
48 .Ar file ...
49 .Nm
50 .Fl Fl import-key
51 .Op options
52 .Ar file ...
53 .Nm
54 .Fl Fl list-keys
55 .Op options
56 .Ar file ...
57 .Nm
58 .Fl Fl version
59 .Pp
60 where the options for all commands are:
61 .Pp
62 .Op Fl Fl coredumps
63 .br
64 .Op Fl Fl homedir Ns = Ns Ar home-directory
65 .br
66 .Op Fl Fl keyring Ns = Ns Ar keyring
67 .br
68 .Op Fl Fl ssh-keys
69 .br
70 .Op Fl Fl userid Ns = Ns Ar userid
71 .br
72 .Op Fl Fl verbose
73 .Sh DESCRIPTION
74 At the present time, the
75 .Nm
76 utility is still under development.
77 Whilst the signing and verification, encryption and
78 decryption parts of
79 .Xr netpgp 1
80 are considered mature,
81 .Nm
82 needs more work.
83 Other key management utilities should be used in preference
84 to this one.
85 .Pp
86 The
87 .Nm
88 command is used for all forms of PGP key management,
89 from generation of new keys to propagation of public
90 keys to key servers, and import of new public
91 keys from other identities.
92 .Pp
93 The
94 .Xr netpgp 1
95 utility should be used for file management and transformation - encryption,
96 decryption,
97 signing and verification of files.
98 .Pp
99 For signing and encryption, a unique identity is needed.
100 This identity is made up of a private and public key.
101 The public key part is made available and known to everyone.
102 The private key is kept secret, and known only to the user
103 who created the identity.
104 The secret key is protected with a passphrase.
106 In rough terms, a digital signature
107 is a digest of a file's contents,
108 encrypted with the user's private key.
109 Since together, the private and public keys identify the user
110 uniquely, the signature can be used to identify the exact version
111 of the file, and any changes made to the file will mean that the
112 signature no longer matches.
114 As a corollary, the file can be transformed using a user's public key,
115 into text such that the contents can only be viewed by someone
116 with the corresponding private key.
117 This is called encryption.
121 utility can be used to generate a new key-pair for a user.
122 As mentioned before,
123 this key is in two parts, the public key (which is known
124 by other people) and the private key.
126 The other use of
128 is to maintain keyrings.
129 Key and keyring management commands available are:
130 .Fl Fl export-key ,
131 .Fl Fl find-key ,
132 .Fl Fl generate-key ,
133 .Fl Fl import-key ,
135 .Fl Fl list-keys .
136 Keyrings are collections of public keys belonging to other users.
137 By using other means of identification, it is possible to establish
138 the bona fides of other users.
139 Once trust has been established, the public key of the other
140 user will be signed.
141 The other user's public key can be added to our keyring.
142 The other user will add our public key to their keyring.
144 Keys can be listed, exported (i.e. made available to others),
145 and imported (i.e. users who have signed our public key).
147 Key and keyring management can be done with the
148 following commands:
149 .Bl -tag -width Ar
150 .It Fl Fl export-key
151 Display the current public key in a format suitable for export.
152 This can be used to place the keyring on one of the
153 public key servers, for example.
154 .It Fl Fl find-key
155 Find the appropriate public key from the current keyring.
156 If no keyring is provided, the user's public keyring is used.
157 .It Fl Fl generate-key
158 This command is used to generate a new public and private key pair.
159 The user id is taken from the command line, and the user will be
160 prompted to provide a suitable pass phrase.
161 .It Fl Fl import-key
162 Import a public key as retrieved from one of the public key servers.
163 This is in the form of a file which has previously been
164 retrieved from elsewhere.
165 .It Fl Fl list-keys
166 List all the public keys in the current keyring.
167 If no keyring is provided, the user's public keyring is used.
168 .It Fl Fl version
169 Print the version information from the
170 .Xr libnetpgp 3
171 library.
174 In addition to one of the preceding commands, a number of qualifiers
175 or options may be given.
176 .Bl -tag -width Ar
177 .It Fl Fl homedir Ar home-directory
178 Keyrings are normally located, for historical reasons, within
179 the user's home directory in a subdirectory called
180 .Dq Pa .gnupg
181 and this option specifies an alternative location in which to
182 find that sub-directory.
183 .It Fl Fl keyring Ar keyring
184 This option specifies an alternative keyring to be used.
185 All keyring operations will be relative to this alternative keyring.
186 .It Fl Fl numbits Ar numbits
187 specifies the number of bits to be used when generating a key.
188 The default number of bits is 2048.
189 This is considered the absolute
190 minimum which should be chosen at the time of writing (2009).
191 Due to advances in computing power every year, this number should
192 be reviewed, and increased when it becomes easier to factor 2048
193 bit numbers.
194 .It Fl Fl userid Ar userid
195 This option specifies the user identity to be used for all operations.
196 This identity can either be in the form of the full name, or as an
197 email address.
198 Care should be exercised with these ways of specifying the user identity,
199 since the
201 utility has no way of verifying that an email address is valid, or
202 that a key belongs to a certain individual.
203 The trust for a signed key is given by the other signers of that key.
204 The 16 hexadecimal digit user identity should be used when specifying
205 user identities - email addresses and names are provided as aliases.
206 .It Fl Fl pass-fd Ns = Ns Ar fd
207 This option is intended for the use of external programs which may
208 like to use the
209 .Xr libnetpgp 3
210 library through the
212 interface, but have their own ways of retrieving and caching
213 the passphrase for the secret key.
214 In this case, the
216 utility will read a line of text from the file descriptor
217 passed to it in the command line argument, rather than
218 using its own methods of retrieving the passphrase from
219 the user.
220 .It Fl Fl verbose
221 This option can be used to view information during
222 the process of the
224 requests.
225 .It Fl Fl ssh-keys
226 specifies that the public and private keys should be taken
227 from the
228 .Xr ssh 1
229 host key files, usually found in
230 .Pa /etc/ssh/ssh_host_rsa_key
232 .Pa /etc/ssh/ssh_host_rsa_key.pub
233 for the private and public host keys.
234 .It Fl Fl coredumps
235 in normal processing,
236 if an error occurs, the contents of memory are saved to disk, and can
237 be read using tools to analyse behaviour.
238 Unfortunately this can disclose information to people viewing
239 the core dump, such as secret keys, and passphrases protecting
240 those keys.
241 In normal operation,
243 will turn off the ability to save core dumps on persistent storage,
244 but selecting this option will allow core dumps to be written to disk.
245 This option should be used wisely, and any core dumps should
246 be deleted in a secure manner when no longer needed.
248 .Sh PASS PHRASES
249 The pass phrase cannot be changed by
251 once it has been chosen, and will
252 be used for the life of the key, so a wise choice is advised.
253 The pass phrase should not be an easily guessable word or phrase,
254 or related to information that can be gained through
255 .Dq social engineering
256 using search engines, or other public information retrieval methods.
258 .Xr getpass 3
259 will be used to obtain the pass phrase from the user if it is
260 needed,
261 such as during signing or encryption, or key generation,
262 so that any secret information cannot be viewed by other users
263 using the
264 .Xr ps 1
266 .Xr top 1
267 commands, or by looking over the shoulder at the screen.
269 Since the public and private key pair can be used to verify
270 a person's identity, and since identity theft can have
271 far-reaching consequences, users are strongly encouraged to
272 enter their pass phrases only when prompted by the application.
273 .Sh RETURN VALUES
276 utility will return 0 for success,
277 1 if the file's signature does not match what was expected,
278 or 2 if any other error occurs.
279 .Sh SEE ALSO
280 .Xr netpgp 1 ,
281 .Xr ssh 1 ,
282 .Xr getpass 3 ,
283 .\" .Xr libbz2 3 ,
284 .Xr libnetpgp 3 ,
285 .Xr ssl 3 ,
286 .Xr zlib 3
287 .Sh STANDARDS
290 utility is designed to conform to IETF RFC 4880.
291 .Sh HISTORY
294 command first appeared in
295 .Nx 6.0 .
296 .Sh AUTHORS
297 .An -nosplit
298 .An Ben Laurie ,
299 .An Rachel Willmer ,
300 and overhauled and rewritten by
301 .An Alistair Crooks Aq agc@NetBSD.org .
302 This manual page was also written by
303 .An Alistair Crooks .