1 .\"Modified from man(1) of FreeBSD, the NetBSD mdoc.template, and mdoc.samples.
3 .\"man mdoc.samples for a complete listing of options
4 .\"man mdoc for the short list of editing options
5 .Dd Tue May 06 2003 \" DATE
6 .Dt security 1 \" Program name and manual section number
8 .Sh NAME \" Section Header - required - don't modify
10 .\" The following lines are read in generating the apropos(man -k) database. Use only key
11 .\" words here as the database is built based on the words here and in the .ND line.
12 .\" Use .Nm macro to designate other names for the documented program.
13 .Nd Command line interface to keychains and Security.framework
14 .Sh SYNOPSIS \" Section Header - required - don't modify
16 .Op Fl hilqv \" [-hilqv]
17 .Op Fl p Ar prompt \" [-p prompt]
18 .Op Ar command \" [command]
19 .Op Ar command_options \" [command_options]
20 .Op Ar command_args \" [command_args]
21 .Sh DESCRIPTION \" Section Header - required - don't modify
22 A simple command line interface which lets you administer Keychains,
23 manipulate keys and certificates, and do just about anything the
24 Security framework is capable of from the command line. New commands
25 are constantly being added over time.
31 supplied and report if anything went wrong.
39 will enter interactive mode and allow the user to enter multiple commands on stdin. When EOF is read from stdin
43 Here is a complete list of the options available:
44 .Bl -tag -width -indent
46 If no arguments are specified show a list of all commands. If arguments are provided show usage for each the specified commands. This options is basically the same as the
52 in interactive mode. A prompt
57 will be displayed and the user will be able to type commands on stdin until an EOF is encountered.
62 .Dl "/usr/bin/leaks -nocontext"
63 on itself to see if the command(s) you executed leaks.
65 This option implies the
67 option but changes the default prompt to the argument specified instead.
78 .Sh "SECURITY COMMAND SUMMARY"
80 provides a rich variety of commands
84 , each of which often has a wealth of options, to allow access to
85 the broad functionality provided by the Security framework. However,
86 you don't have to master every detail for
90 Here are brief descriptions of all the
94 .Bl -tag -width find-internet-password -compact
96 Show all commands. Or show usage for a command.
98 Display or manipulate the keychain search list.
99 .It Nm default-keychain
100 Display or set the default keychain.
101 .It Nm login-keychain
102 Display or set the login keychain.
103 .It Nm create-keychain
104 Create keychains and add them to the search list.
105 .It Nm delete-keychain
106 Delete keychains and remove them from the search list.
108 Lock the specified keychain.
109 .It Nm unlock-keychain
110 Unlock the specified keychain.
111 .It Nm set-keychain-settings
112 Set Nm settings for a keychain.
113 .It Nm show-keychain-info
114 Show the settings for keychain.
116 Dump the contents of one or more keychains.
117 .It Nm create-keypair
118 Create an assymetric keypair.
119 .It Nm add-internet-password
120 Add an internet password item.
121 .It Nm add-certificates
122 Add certificates to a keychain.
123 .It Nm find-internet-password
124 Find an internet password item.
125 .It Nm find-certificate
126 Find a certificate item.
128 Create an db using the DL.
130 Import item(s) into a keychain.
132 Export item(s) from a keychain.
134 Install (or re-install) the MDS database.
140 .Sh "COMMON COMMAND OPTIONS"
141 This section describes the
143 that are available across all
146 .Bl -tag -width -indent
148 Show a usage message for the specified command. This option is
149 basically the same as the
153 .Sh "SECURITY COMMANDS"
154 Here (finally) are details on all the
156 commands and the options each accepts.
161 .Bl -item -offset -indent
162 Show all commands. Or show usage for a command.
167 .Op Fl d Ar user Ns | Ns Ar system Ns | Ns Ar common
168 .Op Fl s Op Ar keychain...
169 .Bl -item -offset -indent
170 Display or set the keychain search list.
173 .Bl -tag -compact -width -indent
174 .It Fl d Ar user Ns | Ns Ar system Ns | Ns Ar common
175 Specify the preferences domain to be used.
177 Set the search list to the specified keychains
183 .Op Fl d Ar user Ns | Ns Ar system Ns | Ns Ar common
184 .Op Fl s Op Ar keychain
185 .Bl -item -offset -indent
186 Display or set the default keychain.
189 .Bl -tag -compact -width -indent
190 .It Fl d Ar user Ns | Ns Ar system Ns | Ns Ar common
191 Specify the preferences domain to be used.
193 Set the default keychain to the specified
195 Unset it if no keychain is specified.
201 .Op Fl d Ar user Ns | Ns Ar system Ns | Ns Ar common
202 .Op Fl s Op Ar keychain
203 .Bl -item -offset -indent
204 Display or set the login keychain.
207 .Bl -tag -compact -width -indent
208 .It Fl d Ar user Ns | Ns Ar system Ns | Ns Ar common
209 Specify the preferences domain to be used.
211 Set the login keychain to the specified
213 Unset it if no keychain is specified.
221 .Bl -item -offset -indent
222 Create keychains and add them to the search list. if no keychains are specified the user is prompted for one.
225 .Bl -tag -compact -width -indent-indent
227 Prompt the user for a password using the SecurityAgent.
231 as the password for the keychains being created.
238 are specified the user is prompted for a password.
244 .Bl -item -offset -indent
245 Delete keychains and remove them from the search list.
250 .Op Fl a Ns | Ns Ar keychain
251 .Bl -item -offset -indent
254 \&. Or the default is none is specified. If the
256 options is specified all keychains are locked.
263 .Bl -item -offset -indent
266 \&. Or the default is none is specified.
269 .Nm set-keychain-settings
273 .Bl -item -offset -indent
276 \&. Or the default is none is specified.
277 .Bl -tag -compact -width -indent-indent
279 Lock keychain when the system sleeps
281 Lock keychain after certain period of time specified using
285 Automatically lock keychain after
287 seconds of inactivity.
291 .Nm show-keychain-info
293 .Bl -item -offset -indent
294 Show the settings for keychain.
299 .Bl -item -offset -indent
300 Dump the contents of one or more keychains.
301 .Bl -tag -compact -width -indent-indent
305 Dump cleartext data of items.
307 Interactive acl editing mode.
309 Dump raw (possibly ciphertext) data of items.
317 .Op Fl f Ar from_date
322 .Op Fl A Ns | Ns Fl T Ar app1:app2:...
323 .Bl -item -offset -indent
324 Create an assymetric keypair.
327 .Nm add-internet-password
329 .Op Fl a Ar account_name
330 .Op Fl d Ar security_domain
334 .Op Fl s Ar server_name
335 .Op Fl t Ar authentication_type
336 .Op Fl w Ar password_data
338 .Bl -item -offset -indent
339 Add an internet password item.
346 .Bl -item -offset -indent
347 Add certficates contained in the specified
349 to the default keychain. The files must contain one DER encoded X509 certificate each.
350 .Bl -tag -compact -width -indent-indent
354 rather than the default keychain.
358 .Nm find-internet-password
360 .Op Fl a Ar account_name
361 .Op Fl d Ar security_domain
365 .Op Fl s Ar server_name
366 .Op Fl t Ar authentication_type
368 .Bl -item -offset -indent
369 Find an internet password item.
374 .Op Fl e Ar email_address
376 .Bl -item -offset -indent
377 Find a certificate item. If no
379 arguments are provided,
381 will search the default search list.
384 .Bl -tag -compact -width -indent-indent
386 Find all matching certificates, not just the first one.
387 .It Fl g Ar dl Ns | Ns Ar cspdl
388 Use the AppleDL (default) or AppleCspDL
389 .It Fl e Ar email_address
390 Match on "email_address" when searching.
392 Show the email addresses in the certificate.
394 Output certificate in pem form. The default is to dump the attributes and keychain the cert is in.
398 .Bl -tag -width -indent
399 .Dl security> find-certificate -a -p > allcerts.pem
400 Exports all certificates from all keychains into a pem file called allcerts.pem.
401 .Dl security> find-certificate -a -e me@foo.com -p > certs.pem
402 Exports all certificates from all keychains with the email address
403 mb@foo.com into a pem file called certs.pem.
409 .Op Fl g Ar dl Ns | Ns Ar cspdl
412 .Bl -item -offset -indent
413 Create an db using the DL. If
417 will prompt the user to type a name.
420 .Bl -tag -compact -width -indent-indent
423 .It Fl g Ar dl Ns | Ns Ar cspdl
424 Use the AppleDL (default) or AppleCspDL
426 Set the file permissions to
430 Force using openparams argument
432 Force using version 0 openparams
436 .Bl -tag -width -indent
437 .Dl security> create-db -m 0644 test.db
438 .Dl security> create-db -g cspdl -a test2.db
440 .\"new import/export commands.
445 .Op Fl t Ar item_type
446 .Op Fl f Ar item_format
448 .Op Fl p Ar item_format
449 .Op Fl P Ar passphrase
451 .Bl -item -offset -indent
452 Export one or more items from a keychain to one of a number of external representations. If
454 isn't provided, items will be exported from the user's default keychain.
457 .Bl -tag -compact -width -indent-indent
459 Specify keychain from which item(s) will be exported.
460 .It Fl t Ar item_type
461 Specify the type of items to export. Possible types are certs, allKeys, pubKeys, privKeys, identities, and all. The default is all. An identity consists of both a certificate and the corresponding provate key.
462 .It Fl f Ar item_format
463 Specify the format of the exported data. Possible formats are openssl, bsafe, pkcs7, pkcs8, pkcs12, x509, and pemseq. The default is pemseq if more than one item is being exported. The default is openssl if one key is being exported. The default is x509 if one certificate is being exported.
465 Specifies that private keys are to be wrapped on export.
467 Specifies that PEM armour is to be applied to the output data.
468 .It Fl P Ar passphrase
469 Specify the wrapping passphrase immediately. The default is to obtain a secure passphrase via GUI.
471 Write the output data to
473 \&. Default is to write data to stdout.
477 .Bl -tag -width -indent
478 .Dl security> export -k login.keychain -t certs -o /tmp/certs.pem
479 .Dl security> export -k newcert.keychain -t identities -f pkcs12 -o /tmp/mycerts.p12
487 .Op Fl t Ar item_type
488 .Op Fl f Ar item_format
490 .Op Fl P Ar passphrase
491 .Bl -item -offset -indent
492 Import one or more items from
494 \& into a keychain. If
496 isn't provided, items will be imported into the user's default keychain.
499 .Bl -tag -compact -width -indent-indent
501 Specify keychain into which item(s) will be imported.
502 .It Fl t Ar item_type
503 Specify the type of items to import. Possible types are cert, pub, priv, session, cert, and agg. Pub, priv, and session refer to keys; agg is one of the aggregate types (pkcs12 and PEM sequence). The command can often figure out what item_type an item contains based in the filename and/or item_format.
504 .It Fl f Ar item_format
505 Specify the format of the exported data. Possible formats are openssl, bsafe, raw, pkcs7, pkcs8, pkcs12, x509, and pemseq. The command can often figure out what format an item is in based in the filename and/or item_type.
507 Specifies that private keys are wrapped and must be unwrapped on import.
508 .It Fl P Ar passphrase
509 Specify the unwrapping passphrase immediately. The default is to obtain a secure passphrase via GUI.
513 .Bl -tag -width -indent
514 .Dl security> import /tmp/certs.pem -k
515 .Dl security> import /tmp/mycerts.p12 -t agg -k newcert.keychain
516 .Dl security> import /tmp/mycerts.p12 -f pkcs12 -k newcert.keychain
518 .\"end of new import/export commands.
521 .Bl -item -offset -indent
522 Install (or re-install) the Module Directory Services (MDS) database. This is a system tool which is not normally used by users. There are no options.
530 .Op Fl exclude Ar symbol
531 .Bl -item -offset -indent
534 on this proccess. This is to help find memory leaks after running
538 .Bl -tag -compact -width -indent-indent
540 Use a stricter algorithm (See
544 Withhold the hex dumps of the leaked memory.
546 Don't show stack traces of leaked memory.
547 .It Fl exclude Ar symbol
548 Ignore leaks called from
554 .Sh ENVIRONMENT \" May not be needed
555 .Bl -tag -width -indent
556 .It Ev MallocStackLogging
561 option it's probably a good idea to set this environment variable before
563 is started. Doing so will allow leaks to display symbolic backtraces.
566 .Bl -tag -width -indent
567 .It Pa ~/Library/Preferences/com.apple.security.plist
569 Propertylist file containing the current users default keychain and keychain search list.
570 .It Pa /Library/Preferences/com.apple.security.plist
572 Propertylist file containing the system default keychain and keychain search list. This is used by processes started at boottime, or those requesting to use the system search domain, such as system daemons.
573 .It Pa /Library/Preferences/com.apple.security-common.plist
575 Propertylist file containing the a common keychain search list which is appended to every users searchlist and to the system search list as well.
578 .\" List links in ascending order by section, alphabetically within a section.
579 .\" Please do not reference files that do not exist without filing a bug report
582 .\" .Xr systemkeychain 8
585 was first introduced in Mac OS X version 10.3
587 .An "Michael Brouwer"
590 still needs a lot more commands before it can be considered complete.
591 In particular it should someday supersede both the