/ SecurityTool / macOS / security.1
security.1
   1  .\"Modified from man(1) of FreeBSD, the NetBSD mdoc.template, and mdoc.samples.
   2  .\"See Also:
   3  .\"man mdoc.samples for a complete listing of options
   4  .\"man mdoc for the short list of editing options
   5  .Dd March 15, 2017       \" DATE 
   6  .Dt security 1           \" Program name and manual section number 
   7  .Os Darwin
   8  .Sh NAME                 \" Section Header - required - don't modify 
   9  .Nm security
  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
  15  .Nm
  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.
  25  .Pp
  26  By default
  27  .Nm
  28  will execute the
  29  .Ar command
  30  supplied and report if anything went wrong.
  31  .Pp
  32  If the
  33  .Fl i
  34  or
  35  .Fl p
  36  options are provided,
  37  .Nm
  38  will enter interactive mode and allow the user to enter multiple commands on stdin.  When EOF is read from stdin
  39  .Nm
  40  will exit.
  41  .Pp
  42  Here is a complete list of the options available:
  43  .Bl -tag -width -indent
  44  .It Fl h
  45  If no arguments are specified, show a list of all commands.  If arguments are provided, show usage for each the specified commands.  This option is essentially the same as the
  46  .Nm help
  47  command.
  48  .It Fl i
  49  Run
  50  .Nm
  51  in interactive mode.  A prompt 
  52  .Po
  53  .Li security>
  54  by default
  55  .Pc
  56  will be displayed and the user will be able to type commands on stdin until an EOF is encountered.
  57  .It Fl l
  58  Before
  59  .Nm
  60  exits, run
  61  .Dl "/usr/bin/leaks -nocontext"
  62  on itself to see if the command(s) you executed had any leaks.
  63  .It Fl p Ar prompt
  64  This option implies the
  65  .Fl i
  66  option but changes the default prompt to the argument specified instead.
  67  .It Fl q
  68  Will make
  69  .Nm
  70  less verbose.
  71  .It Fl v
  72  Will make
  73  .Nm
  74  more verbose.
  75  .El                      \" Ends the list
  76  .Pp
  77  .Sh "SECURITY COMMAND SUMMARY"
  78  .Nm
  79  provides a rich variety of commands
  80  .Po Ar command
  81  in the
  82  .Sx SYNOPSIS Pc Ns
  83  , each of which often has a wealth of options, to allow access to
  84  the broad functionality provided by the Security framework.  However,
  85  you don't have to master every detail for
  86  .Nm
  87  to be useful to you.
  88  .Pp
  89  Here are brief descriptions of all the
  90  .Nm
  91  commands:
  92  .Pp
  93  .Bl -tag -width user-trust-settings-enable -compact
  94  .It Nm help
  95  Show all commands, or show usage for a command.
  96  .It Nm list-keychains
  97  Display or manipulate the keychain search list.
  98  .It Nm default-keychain
  99  Display or set the default keychain.
 100  .It Nm login-keychain
 101  Display or set the login keychain.
 102  .It Nm create-keychain
 103  Create keychains.
 104  .It Nm delete-keychain
 105  Delete keychains and remove them from the search list.
 106  .It Nm lock-keychain
 107  Lock the specified keychain.
 108  .It Nm unlock-keychain
 109  Unlock the specified keychain.
 110  .It Nm set-keychain-settings
 111  Set settings for a keychain.
 112  .It Nm set-keychain-password
 113  Set password for a keychain.
 114  .It Nm show-keychain-info
 115  Show the settings for keychain.
 116  .It Nm dump-keychain
 117  Dump the contents of one or more keychains.
 118  .It Nm create-keypair
 119  Create an asymmetric key pair.
 120  .It Nm add-generic-password
 121  Add a generic password item.
 122  .It Nm add-internet-password
 123  Add an internet password item.
 124  .It Nm add-certificates
 125  Add certificates to a keychain.
 126  .It Nm find-generic-password
 127  Find a generic password item.
 128  .It Nm delete-generic-password
 129  Delete a generic password item.
 130  .It Nm set-generic-password-partition-list
 131  Set the partition list of a generic password item.
 132  .It Nm find-internet-password
 133  Find an internet password item.
 134  .It Nm delete-internet-password
 135  Delete an internet password item.
 136  .It Nm set-internet-password-partition-list
 137  Set the partition list of a internet password item.
 138  .It Nm find-key
 139  Find keys in the keychain
 140  .It Nm set-key-partition-list
 141  Set the partition list of a key.
 142  .It Nm find-certificate
 143  Find a certificate item.
 144  .It Nm find-identity
 145  Find an identity (certificate + private key).
 146  .It Nm delete-certificate
 147  Delete a certificate from a keychain.
 148  .It Nm delete-identity
 149  Delete a certificate and its private key from a keychain.
 150  .It Nm set-identity-preference
 151  Set the preferred identity to use for a service.
 152  .It Nm get-identity-preference
 153  Get the preferred identity to use for a service.
 154  .It Nm create-db
 155  Create a db using the DL.
 156  .It Nm export
 157  Export items from a keychain.
 158  .It Nm import
 159  Import items into a keychain.
 160  .It Nm cms
 161  Encode or decode CMS messages.
 162  .It Nm install-mds
 163  Install (or re-install) the MDS database.
 164  .It Nm add-trusted-cert
 165  Add trusted certificate(s).
 166  .It Nm remove-trusted-cert
 167  Remove trusted certificate(s).
 168  .It Nm dump-trust-settings
 169  Display contents of trust settings.
 170  .It Nm user-trust-settings-enable
 171  Display or manipulate user-level trust settings.
 172  .It Nm trust-settings-export
 173  Export trust settings.
 174  .It Nm trust-settings-import
 175  Import trust settings.
 176  .It Nm verify-cert
 177  Verify certificate(s).
 178  .It Nm authorize
 179  Perform authorization operations.
 180  .It Nm authorizationdb
 181  Make changes to the authorization policy database.
 182  .It Nm execute-with-privileges
 183  Execute tool with privileges.
 184  .It Nm leaks
 185  Run
 186  .Pa /usr/bin/leaks
 187  on this process.
 188  .It Nm smartcards
 189  Enable, disable or list disabled smartcard tokens.
 190  .It Nm list-smartcards
 191  Display available smartcards.
 192  .It Nm export-smartcard
 193  Export/display items from a smartcard.
 194  .It Nm error
 195  Display a descriptive message for the given error code(s).
 196  .El
 197  .Sh "COMMON COMMAND OPTIONS"
 198  This section describes the
 199  .Ar command_options
 200  that are available across all
 201  .Nm
 202  commands.
 203  .Bl -tag -width -indent
 204  .It Fl h
 205  Show a usage message for the specified command.  This option is
 206  essentially the same as the
 207  .Ar help
 208  command.
 209  .El
 210  .Sh "SECURITY COMMANDS"
 211  Here (finally) are details on all the
 212  .Nm
 213  commands and the options each accepts.
 214  .Bl -item
 215  .It
 216  .Nm help
 217  .Op Fl h
 218  .Bl -item -offset -indent
 219  Show all commands, or show usage for a command.
 220  .El
 221  .It
 222  .Nm list-keychains
 223  .Op Fl h
 224  .Op Fl d Ar user Ns | Ns Ar system Ns | Ns Ar common Ns | Ns Ar dynamic
 225  .Op Fl s Op Ar keychain...
 226  .Bl -item -offset -indent
 227  Display or manipulate the keychain search list.
 228  .It
 229  .Bl -tag -compact -width -indent
 230  .It Fl d Ar user Ns | Ns Ar system Ns | Ns Ar common Ns | Ns Ar dynamic
 231  Use the specified preference domain.
 232  .It Fl s
 233  Set the search list to the specified keychains.
 234  .El
 235  .El
 236  .It
 237  .Nm default-keychain
 238  .Op Fl h
 239  .Op Fl d Ar user Ns | Ns Ar system Ns | Ns Ar common Ns | Ns Ar dynamic
 240  .Op Fl s Op Ar keychain
 241  .Bl -item -offset -indent
 242  Display or set the default keychain.
 243  .It
 244  .Bl -tag -compact -width -indent
 245  .It Fl d Ar user Ns | Ns Ar system Ns | Ns Ar common Ns | Ns Ar dynamic
 246  Use the specified preference domain.
 247  .It Fl s
 248  Set the default keychain to the specified
 249  .Ar keychain Ns .
 250  Unset it if no keychain is specified.
 251  .El
 252  .El
 253  .It
 254  .Nm login-keychain
 255  .Op Fl h
 256  .Op Fl d Ar user Ns | Ns Ar system Ns | Ns Ar common Ns | Ns Ar dynamic
 257  .Op Fl s Op Ar keychain
 258  .Bl -item -offset -indent
 259  Display or set the login keychain.
 260  .It
 261  .Bl -tag -compact -width -indent
 262  .It Fl d Ar user Ns | Ns Ar system Ns | Ns Ar common Ns | Ns Ar dynamic
 263  Use the specified preference domain.
 264  .It Fl s
 265  Set the login keychain to the specified
 266  .Ar keychain Ns .
 267  Unset it if no keychain is specified.
 268  .El
 269  .El
 270  .It
 271  .Nm create-keychain
 272  .Op Fl hP
 273  .Op Fl p Ar password
 274  .Op Ar keychain...
 275  .Bl -item -offset -indent
 276  Create keychains.
 277  .It  
 278  .Bl -tag -compact -width -indent-indent
 279  .It Fl P
 280  Prompt the user for a password using the SecurityAgent.
 281  .It Fl p Ar password
 282  Use
 283  .Ar password
 284  as the password for the keychains being created.
 285  .El
 286  .It
 287  If neither
 288  .Fl P
 289  or
 290  .Fl p Ar password
 291  are specified, the user is prompted for a password on the command line. Use
 292  of the -p option is insecure.
 293  .El
 294  .It
 295  .Nm delete-keychain
 296  .Op Fl h
 297  .Op Ar keychain...
 298  .Bl -item -offset -indent
 299  Delete keychains and remove them from the search list.
 300  .El
 301  .It
 302  .Nm lock-keychain
 303  .Op Fl h
 304  .Op Fl a Ns | Ns Ar keychain
 305  .Bl -item -offset -indent
 306  Lock
 307  .Ar keychain Ns
 308  \&, or the default keychain if none is specified.  If the
 309  .Fl a
 310  option is specified, all keychains are locked.
 311  .El
 312  .It
 313  .Nm unlock-keychain
 314  .Op Fl hu
 315  .Op Fl p Ar password
 316  .Op Ar keychain
 317  .Bl -item -offset -indent
 318  Unlock
 319  .Ar keychain Ns
 320  \&, or the default keychain if none is specified.
 321  .El
 322  .It
 323  .Nm set-keychain-settings
 324  .Op Fl hlu
 325  .Op Fl t Ar timeout
 326  .Op Ar keychain
 327  .Bl -item -offset -indent
 328  Set settings for
 329  .Ar keychain Ns
 330  \&, or the default keychain if none is specified.
 331  .It
 332  .Bl -tag -compact -width -indent-indent
 333  .It Fl l 
 334  Lock keychain when the system sleeps.
 335  .It Fl u 
 336  Lock keychain after timeout interval.
 337  .It Fl t Ar timeout
 338  Specify
 339  .Ar timeout
 340  interval in seconds (omitting this option specifies "no timeout").
 341  .El
 342  .El
 343  .It
 344  .Nm set-keychain-password
 345  .Op Fl h
 346  .Op Fl o Ar oldPassword
 347  .Op Fl p Ar newPassword
 348  .Op Ar keychain
 349  .Bl -item -offset -indent
 350  Set password for
 351  .Ar keychain Ns
 352  \&, or the default keychain if none is specified.
 353  .It
 354  .Bl -tag -compact -width -indent-indent
 355  .It Fl o Ar oldPassword
 356  Old keychain password (if not provided, will prompt)
 357  .It Fl p Ar newPassword
 358  New keychain password (if not provided, will prompt)
 359  .El
 360  .El
 361  .It
 362  .Nm show-keychain-info
 363  .Op Fl h
 364  .Op Ar keychain
 365  .Bl -item -offset -indent
 366  Show the settings for
 367  .Ar keychain Ns
 368  \&.
 369  .El
 370  .It
 371  .Nm dump-keychain
 372  .Op Fl adhir
 373  .Bl -item -offset -indent
 374  Dump the contents of one or more keychains.
 375  .It
 376  .Bl -tag -compact -width -indent-indent
 377  .It Fl a
 378  Dump access control list of items
 379  .It Fl d
 380  Dump (decrypted) data of items
 381  .It Fl i
 382  Interactive access control list editing mode
 383  .It Fl r
 384  Dump raw (encrypted) data of items
 385  .El
 386  .El
 387  .It
 388  .Nm create-keypair
 389  .Op Fl h
 390  .Op Fl a Ar alg
 391  .Op Fl s Ar size
 392  .Op Fl f Ar date
 393  .Op Fl t Ar date
 394  .Op Fl d Ar days
 395  .Op Fl k Ar keychain
 396  .Op Fl A Ns | Ns Fl T Ar appPath
 397  .Op Ar name
 398  .Bl -item -offset -indent
 399  Create an asymmetric key pair.
 400  .It
 401  .Bl -tag -compact -width -indent-indent
 402  .It Fl a Ar alg
 403  Use 
 404  .Ar alg
 405  as the algorithm, can be rsa, dh, dsa or fee (default rsa)
 406  .It Fl s Ar size
 407  Specify the keysize in bits (default 512)
 408  .It Fl f Ar date
 409  Make a key valid from the specified date (ex: "13/11/10 3:30pm")
 410  .It Fl t Ar date
 411  Make a key valid to the specified date
 412  .It Fl d Ar days
 413  Make a key valid for the number of days specified from today
 414  .It Fl k Ar keychain
 415  Use the specified keychain rather than the default
 416  .It Fl A
 417  Allow any application to access this key without warning (insecure, not recommended!)
 418  .It Fl T Ar appPath
 419  Specify an application which may access this key (multiple
 420  .Fl T Ns
 421  \& options are allowed)
 422  .El
 423  .El
 424  .It
 425  .Nm add-generic-password
 426  .Op Fl h
 427  .Op Fl a Ar account
 428  .Op Fl s Ar service
 429  .Op Fl w Ar password
 430  .Op Ar options...
 431  .Op Ar keychain
 432  .Bl -item -offset -indent
 433  Add a generic password item.
 434  .It
 435  .Bl -tag -compact -width -indent-indent
 436  .It Fl a Ar account
 437  Specify account name (required)
 438  .It Fl c Ar creator
 439  Specify item creator (optional four-character code)
 440  .It Fl C Ar type
 441  Specify item type (optional four-character code)
 442  .It Fl D Ar kind
 443  Specify kind (default is "application password")
 444  .It Fl G Ar value
 445  Specify generic attribute value (optional)
 446  .It Fl j Ar comment
 447  Specify comment string (optional)
 448  .It Fl l Ar label
 449  Specify label (if omitted, service name is used as default label)
 450  .It Fl s Ar service
 451  Specify service name (required)
 452  .It Fl p Ar password
 453  Specify password to be added (legacy option, equivalent to
 454  .Fl w Ns
 455  \&)
 456  .It Fl w Ar password
 457  Specify password to be added. Put at end of command to be prompted (recommended)
 458  .It Fl A
 459  Allow any application to access this item without warning (insecure, not recommended!)
 460  .It Fl T Ar appPath
 461  Specify an application which may access this item (multiple
 462  .Fl T Ns
 463  \& options are allowed)
 464  .It Fl U
 465  Update item if it already exists (if omitted, the item cannot already exist)
 466  .It Fl X Ar password
 467  Specify password data to be added as a hexadecimal string
 468  .El
 469  .It
 470  .Bl -item
 471  By default, the application which creates an item is trusted to access its data without warning.  You can remove this default access by explicitly specifying an empty app pathname: 
 472  .Fl T Ns
 473  \& "". If no keychain is specified, the password is added to the default keychain.
 474  .El
 475  .El
 476  .It
 477  .Nm add-internet-password
 478  .Op Fl h
 479  .Op Fl a Ar account
 480  .Op Fl s Ar server
 481  .Op Fl w Ar password
 482  .Op Ar options...
 483  .Op Ar keychain
 484  .Bl -item -offset -indent
 485  Add an internet password item.
 486  .It
 487  .Bl -tag -compact -width -indent-indent
 488  .It Fl a Ar account
 489  Specify account name (required)
 490  .It Fl c Ar creator
 491  Specify item creator (optional four-character code)
 492  .It Fl C Ar type
 493  Specify item type (optional four-character code)
 494  .It Fl d Ar domain
 495  Specify security domain string (optional)
 496  .It Fl D Ar kind
 497  Specify kind (default is "application password")
 498  .It Fl j Ar comment
 499  Specify comment string (optional)
 500  .It Fl l Ar label
 501  Specify label (if omitted, service name is used as default label)
 502  .It Fl p Ar path
 503  Specify path string (optional)
 504  .It Fl P Ar port
 505  Specify port number (optional)
 506  .It Fl r Ar protocol
 507  Specify protocol (optional four-character SecProtocolType, e.g. "http", "ftp ")
 508  .It Fl s Ar server
 509  Specify server name (required)
 510  .It Fl t Ar authenticationType
 511  Specify authentication type (as a four-character SecAuthenticationType, default is "dflt")
 512  .It Fl w Ar password
 513  Specify password to be added. Put at end of command to be prompted (recommended)
 514  .It Fl A
 515  Allow any application to access this item without warning (insecure, not recommended!)
 516  .It Fl T Ar appPath
 517  Specify an application which may access this item (multiple
 518  .Fl T Ns
 519  \& options are allowed)
 520  .It Fl U
 521  Update item if it already exists (if omitted, the item cannot already exist)
 522  .It Fl X Ar password
 523  Specify password data to be added as a hexadecimal string
 524  .El
 525  .It
 526  .Bl -item
 527  By default, the application which creates an item is trusted to access its data without warning.  You can remove this default access by explicitly specifying an empty app pathname: 
 528  .Fl T Ns
 529  \& "". If no keychain is specified, the password is added to the default keychain.
 530  .El
 531  .El
 532  .It
 533  .Nm add-certificates
 534  .Op Fl h
 535  .Op Fl k Ar keychain
 536  .Ar file...
 537  .Bl -item -offset -indent
 538  Add certficates contained in the specified
 539  .Ar files
 540  to the default keychain.  The files must contain one DER encoded X509 certificate each.
 541  .Bl -tag -compact -width -indent-indent
 542  .It Fl k Ar keychain
 543  Use
 544  .Ar keychain
 545  rather than the default keychain.
 546  .El
 547  .El
 548  .It
 549  .Nm find-generic-password
 550  .Op Fl h
 551  .Op Fl a Ar account
 552  .Op Fl s Ar service
 553  .Op Fl Ar options...
 554  .Op Fl g
 555  .Op Fl Ar keychain...
 556  .Bl -item -offset -indent
 557  Find a generic password item.
 558  .It
 559  .Bl -tag -compact -width -indent-indent
 560  .It Fl a Ar account
 561  Match account string
 562  .It Fl c Ar creator
 563  Match creator (four-character code)
 564  .It Fl C Ar type
 565  Match type (four-character code)
 566  .It Fl D Ar kind
 567  Match kind string
 568  .It Fl G Ar value
 569  Match value string (generic attribute)
 570  .It Fl j Ar comment
 571  Match comment string
 572  .It Fl l Ar label
 573  Match label string
 574  .It Fl s Ar service
 575  Match service string
 576  .It Fl g
 577  Display the password for the item found
 578  .It Fl w
 579  Display the password(only) for the item found
 580  .El
 581  .El
 582  .It
 583  .Nm delete-generic-password
 584  .Op Fl h
 585  .Op Fl a Ar account
 586  .Op Fl s Ar service
 587  .Op Fl Ar options...
 588  .Op Fl Ar keychain...
 589  .Bl -item -offset -indent
 590  Delete a generic password item.
 591  .It
 592  .Bl -tag -compact -width -indent-indent
 593  .It Fl a Ar account
 594  Match account string
 595  .It Fl c Ar creator
 596  Match creator (four-character code)
 597  .It Fl C Ar type
 598  Match type (four-character code)
 599  .It Fl D Ar kind
 600  Match kind string
 601  .It Fl G Ar value
 602  Match value string (generic attribute)
 603  .It Fl j Ar comment
 604  Match comment string
 605  .It Fl l Ar label
 606  Match label string
 607  .It Fl s Ar service
 608  Match service string
 609  .El
 610  .El
 611  .It
 612  .Nm delete-internet-password
 613  .Op Fl h
 614  .Op Fl a Ar account
 615  .Op Fl s Ar server
 616  .Op Ar options...
 617  .Op Ar keychain...
 618  .Bl -item -offset -indent
 619  Delete an internet password item.
 620  .It
 621  .Bl -tag -compact -width -indent-indent
 622  .It Fl a Ar account
 623  Match account string
 624  .It Fl c Ar creator
 625  Match creator (four-character code)
 626  .It Fl C Ar type
 627  Match type (four-character code)
 628  .It Fl d Ar securityDomain
 629  Match securityDomain string
 630  .It Fl D Ar kind
 631  Match kind string
 632  .It Fl j Ar comment
 633  Match comment string
 634  .It Fl l Ar label
 635  Match label string
 636  .It Fl p Ar path
 637  Match path string
 638  .It Fl P Ar port
 639  Match port number
 640  .It Fl r Ar protocol
 641  Match protocol (four-character code)
 642  .It Fl s Ar server
 643  Match server string
 644  .It Fl t Ar authenticationType
 645  Match authenticationType (four-character code)
 646  .El
 647  .El
 648  .It
 649  .Nm find-internet-password
 650  .Op Fl h
 651  .Op Fl a Ar account
 652  .Op Fl s Ar server
 653  .Op Ar options...
 654  .Op Fl g
 655  .Op Ar keychain...
 656  .Bl -item -offset -indent
 657  Find an internet password item.
 658  .It
 659  .Bl -tag -compact -width -indent-indent
 660  .It Fl a Ar account
 661  Match account string
 662  .It Fl c Ar creator
 663  Match creator (four-character code)
 664  .It Fl C Ar type
 665  Match type (four-character code)
 666  .It Fl d Ar securityDomain
 667  Match securityDomain string
 668  .It Fl D Ar kind
 669  Match kind string
 670  .It Fl j Ar comment
 671  Match comment string
 672  .It Fl l Ar label
 673  Match label string
 674  .It Fl p Ar path
 675  Match path string
 676  .It Fl P Ar port
 677  Match port number
 678  .It Fl r Ar protocol
 679  Match protocol (four-character code)
 680  .It Fl s Ar server
 681  Match server string
 682  .It Fl t Ar authenticationType
 683  Match authenticationType (four-character code)
 684  .It Fl g
 685  Display the password for the item found
 686  .It Fl w
 687  Display the password(only) for the item found
 688  .El
 689  .El
 690  .It
 691  .Nm find-key
 692  .Op Ar options...
 693  .Op Ar keychain...
 694  .Bl -item -offset -indent
 695  Search the keychain for keys.
 696  .It
 697  .Bl -tag -compact -width -indent-indent
 698  .It Fl a Ar application-label
 699  Match "application label" string
 700  .It Fl c Ar creator
 701  Match creator (four-character code)
 702  .It Fl d
 703  Match keys that can decrypt
 704  .It Fl D Ar description
 705  Match "description" string
 706  .It Fl e
 707  Match keys that can encrypt
 708  .It Fl j Ar comment
 709  Match comment string
 710  .It Fl l Ar label
 711  Match label string
 712  .It Fl r
 713  Match keys that can derive
 714  .It Fl s
 715  Match keys that can sign
 716  .It Fl t Ar type
 717  Type of key to find: one of "symmetric", "public", or "private"
 718  .It Fl u
 719  Match keys that can unwrap
 720  .It Fl v
 721  Match keys that can verify
 722  .It Fl w
 723  Match keys that can wrap
 724  .El
 725  .El
 726  .It
 727  .Nm set-generic-password-partition-list
 728  .Op Fl a Ar account
 729  .Op Fl s Ar service
 730  .Op Fl S Ar <partition list (comma separated)>
 731  .Op Fl k Ar <keychain password>
 732  .Op Ar options...
 733  .Op Ar keychain
 734  .Bl -item -offset -indent
 735  Sets the "partition list" for a generic password. The "partition list" is an extra parameter in the ACL which limits access to the item based on an application's code signature. You must present the keychain's password to change a partition list.
 736  .It
 737  .Bl -tag -compact -width -indent-indent
 738  .It Fl S Ar partition-list
 739  Comma-separated partition list. See output of "security dump-keychain" for examples.
 740  .It Fl k Ar password
 741  Password for keychain
 742  .It Fl a Ar account
 743  Match account string
 744  .It Fl c Ar creator
 745  Match creator (four-character code)
 746  .It Fl C Ar type
 747  Match type (four-character code)
 748  .It Fl D Ar kind
 749  Match kind string
 750  .It Fl G Ar value
 751  Match value string (generic attribute)
 752  .It Fl j Ar comment
 753  Match comment string
 754  .It Fl l Ar label
 755  Match label string
 756  .It Fl s Ar service
 757  Match service string
 758  .El
 759  .El
 760  .It
 761  .Nm set-internet-password-partition-list
 762  .Op Fl a Ar account
 763  .Op Fl s Ar server
 764  .Op Fl S Ar <partition list (comma separated)>
 765  .Op Fl k Ar <keychain password>
 766  .Op Ar options...
 767  .Op Ar keychain
 768  .Bl -item -offset -indent
 769  Sets the "partition list" for an internet password. The "partition list" is an extra parameter in the ACL which limits access to the item based on an application's code signature. You must present the keychain's password to change a partition list.
 770  .It
 771  .Bl -tag -compact -width -indent-indent
 772  .It Fl S Ar partition-list
 773  Comma-separated partition list. See output of "security dump-keychain" for examples.
 774  .It Fl k Ar password
 775  Password for keychain
 776  .It Fl a Ar account
 777  Match account string
 778  .It Fl c Ar creator
 779  Match creator (four-character code)
 780  .It Fl C Ar type
 781  Match type (four-character code)
 782  .It Fl d Ar securityDomain
 783  Match securityDomain string
 784  .It Fl D Ar kind
 785  Match kind string
 786  .It Fl j Ar comment
 787  Match comment string
 788  .It Fl l Ar label
 789  Match label string
 790  .It Fl p Ar path
 791  Match path string
 792  .It Fl P Ar port
 793  Match port number
 794  .It Fl r Ar protocol
 795  Match protocol (four-character code)
 796  .It Fl s Ar server
 797  Match server string
 798  .It Fl t Ar authenticationType
 799  Match authenticationType (four-character code)
 800  .El
 801  .El
 802  .It
 803  .Nm set-key-partition-list
 804  .Op Fl S Ar <partition list (comma separated)>
 805  .Op Fl k Ar <keychain password>
 806  .Op Ar options...
 807  .Op Ar keychain
 808  .Bl -item -offset -indent
 809  Sets the "partition list" for a key. The "partition list" is an extra parameter in the ACL which limits access to the key based on an application's code signature. You must present the keychain's password to change a partition list. If you'd like to run /usr/bin/codesign with the key, "apple:" must be an element of the partition list.
 810  .It
 811  .Bl -tag -compact -width -indent-indent
 812  .It Fl S Ar partition-list
 813  Comma-separated partition list. See output of "security dump-keychain" for examples.
 814  .It Fl k Ar password
 815  Password for keychain
 816  .It Fl a Ar application-label
 817  Match "application label" string
 818  .It Fl c Ar creator
 819  Match creator (four-character code)
 820  .It Fl d
 821  Match keys that can decrypt
 822  .It Fl D Ar description
 823  Match "description" string
 824  .It Fl e
 825  Match keys that can encrypt
 826  .It Fl j Ar comment
 827  Match comment string
 828  .It Fl l Ar label
 829  Match label string
 830  .It Fl r
 831  Match keys that can derive
 832  .It Fl s
 833  Match keys that can sign
 834  .It Fl t Ar type
 835  Type of key to find: one of "symmetric", "public", or "private"
 836  .It Fl u
 837  Match keys that can unwrap
 838  .It Fl v
 839  Match keys that can verify
 840  .It Fl w
 841  Match keys that can wrap
 842  .El
 843  .El
 844  .It
 845  .Nm find-certificate
 846  .Op Fl h
 847  .Op Fl a
 848  .Op Fl c Ar name
 849  .Op Fl e Ar emailAddress
 850  .Op Fl m
 851  .Op Fl p
 852  .Op Fl Z
 853  .Op Ar keychain...
 854  .Bl -item -offset -indent
 855  Find a certificate item.  If no
 856  .Ar keychain Ns
 857  \& arguments are provided, the default search list is used.
 858  .It
 859  Options:
 860  .Bl -tag -compact -width -indent-indent
 861  .It Fl a
 862  Find all matching certificates, not just the first one
 863  .It Fl c Ar name
 864  Match on
 865  .Ar name Ns
 866  \& when searching (optional)
 867  .It Fl e Ar emailAddress
 868  Match on
 869  .Ar emailAddress Ns
 870  \& when searching (optional)
 871  .It Fl m
 872  Show the email addresses in the certificate
 873  .It Fl p
 874  Output certificate in pem format.  Default is to dump the attributes and keychain the cert is in.
 875  .It Fl Z
 876  Print SHA-256 (and SHA-1) hash of the certificate
 877  .El
 878  .It
 879  .Sy Examples
 880  .Bl -tag -width -indent
 881  .It security> find-certificate -a -p > allcerts.pem
 882  Exports all certificates from all keychains into a pem file called allcerts.pem.
 883  .It security> find-certificate -a -e me@foo.com -p > certs.pem
 884  Exports all certificates from all keychains with the email address
 885  me@foo.com into a pem file called certs.pem.
 886  .It security> find-certificate -a -c MyName -Z login.keychain | grep ^SHA-256
 887  Print the SHA-256 hash of every certificate in 'login.keychain' whose common name includes 'MyName'
 888  .El
 889  .El
 890  .It
 891  .Nm find-identity
 892  .Op Fl h
 893  .Op Fl p Ar policy
 894  .Op Fl s Ar string
 895  .Op Fl v
 896  .Op Ar keychain...
 897  .Bl -item -offset -indent
 898  Find an identity (certificate + private key) satisfying a given policy. If no
 899  .Ar policy Ns
 900  \& arguments are provided, the X.509 basic policy is assumed. If no
 901  .Ar keychain Ns
 902  \& arguments are provided, the default search list is used.
 903  .It
 904  Options:
 905  .Bl -tag -compact -width -indent-indent
 906  .It Fl p Ar policy
 907  Specify
 908  .Ar policy Ns
 909  \& to evaluate (multiple -p options are allowed). Supported policies:
 910  basic, ssl-client, ssl-server, smime, eap, ipsec, ichat, codesigning,
 911  sys-default, sys-kerberos-kdc
 912  .It Fl s Ar string
 913  Specify optional policy-specific
 914  .Ar string Ns
 915  \& (e.g. a DNS hostname for SSL, or RFC822 email address for S/MIME)
 916  .It Fl v
 917  Show valid identities only (default is to show all identities)
 918  .El
 919  .It
 920  .Sy Examples
 921  .Bl -tag -width -indent
 922  .It security> find-identity -v -p ssl-client
 923  Display valid identities that can be used for SSL client authentication
 924  .It security> find-identity -p ssl-server -s www.domain.com
 925  Display identities for a SSL server running on the host 'www.domain.com'
 926  .It security> find-identity -p smime -s user@domain.com
 927  Display identities that can be used to sign a message from 'user@domain.com'
 928  .El
 929  .El
 930  .It
 931  .Nm delete-certificate
 932  .Op Fl h
 933  .Op Fl c Ar name
 934  .Op Fl Z Ar hash
 935  .Op Fl t
 936  .Op Ar keychain...
 937  .Bl -item -offset -indent
 938  Delete a certificate from a keychain.  If no
 939  .Ar keychain Ns
 940  \& arguments are provided, the default search list is used.
 941  .It
 942  .Bl -tag -compact -width -indent-indent
 943  .It Fl c Ar name
 944  Specify certificate to delete by its common name
 945  .It Fl Z Ar hash
 946  Specify certificate to delete by its SHA-256 (or SHA-1) hash
 947  .It Fl t
 948  Also delete user trust settings for this certificate
 949  .El
 950  .It
 951  The certificate to be deleted must be uniquely specified either by a
 952  string found in its common name, or by its SHA-256 (or SHA-1) hash.
 953  .El
 954  .It
 955  .Nm delete-identity
 956  .Op Fl h
 957  .Op Fl c Ar name
 958  .Op Fl Z Ar hash
 959  .Op Fl t
 960  .Op Ar keychain...
 961  .Bl -item -offset -indent
 962  Delete a certificate and its private key from a keychain.  If no
 963  .Ar keychain Ns
 964  \& arguments are provided, the default search list is used.
 965  .It
 966  .Bl -tag -compact -width -indent-indent
 967  .It Fl c Ar name
 968  Specify certificate to delete by its common name
 969  .It Fl Z Ar hash
 970  Specify certificate to delete by its SHA-256 (or SHA-1) hash
 971  .It Fl t
 972  Also delete user trust settings for this identity certificate
 973  .El
 974  .It
 975  The identity to be deleted must be uniquely specified either by a
 976  string found in its common name, or by its SHA-256 (or SHA-1) hash.
 977  .El
 978  .It
 979  .Nm set-identity-preference
 980  .Op Fl h
 981  .Op Fl n
 982  .Op Fl c Ar identity
 983  .Op Fl s Ar service
 984  .Op Fl u Ar keyUsage
 985  .Op Fl Z Ar hash
 986  .Op Ar keychain...
 987  .Bl -item -offset -indent
 988  Set the preferred identity to use for a service.
 989  .It
 990  .Bl -tag -compact -width -indent-indent
 991  .It Fl n
 992  Specify no identity (clears existing preference for the given service)
 993  .It Fl c Ar identity
 994  Specify identity by common name of the certificate
 995  .It Fl s Ar service
 996  Specify service (may be a URL, RFC822 email address, DNS host, or other name) for which this identity is to be preferred
 997  .It Fl u Ar keyUsage
 998  Specify key usage (optional)
 999  .It Fl Z Ar hash
1000  Specify identity by SHA-256 (or SHA-1) hash of certificate (optional)
1001  .El
1002  .It
1003  The identity is located by searching the specified keychain(s) for a certificate whose common name contains
1004  the given identity string. If no keychains are specified to search, the default search list is used. Different
1005  identity preferences can be set for individual key usages. You can differentiate between two identities which contain
1006  the same string by providing a SHA-256 (or SHA-1) hash of the certificate in addition to, or instead of, the name.
1007  .It
1008  .Sy PARTIAL PATHS AND WILDCARDS
1009  .It
1010  Prior to 10.5.4, identity preferences for SSL/TLS client authentication could only be set on a per-URL basis. The
1011  URL being visited had to match the service name exactly for the preference to be in effect.
1012  .It
1013  In 10.5.4, it became possible to specify identity preferences on a per-server basis, by using
1014  a service name with a partial path URL to match more specific paths on the same server. For
1015  example, if an identity preference for "https://www.apache-ssl.org/" exists, it will be in effect for
1016  "https://www.apache-ssl.org/cgi/cert-export", and so on. Note that partial path URLs must end with a trailing
1017  slash character.
1018  .It
1019  Starting with 10.6, it is possible to specify identity preferences on a per-domain
1020  basis, by using the wildcard character '*' as the leftmost component of the service name. Unlike SSL wildcards,
1021  an identity preference wildcard can match more than one subdomain. For example, an identity preference for
1022  the name "*.army.mil" will match "server1.subdomain1.army.mil" or "server2.subdomain2.army.mil". Likewise,
1023  a preference for "*.mil" will match both "server.army.mil" and "server.navy.mil".
1024  .It
1025  .Sy KEY USAGE CODES
1026  .It
1027  .Bl -tag -width -indent
1028       0 - preference is in effect for all possible key usages (default)
1029       1 - encryption only
1030       2 - decryption only
1031       4 - signing only
1032       8 - signature verification only
1033      16 - signing with message recovery only
1034      32 - signature verification with message recovery only
1035      64 - key wrapping only
1036     128 - key unwrapping only
1037     256 - key derivation only
1038  .It  To specify more than one usage, add values together.
1039  .El
1040  .El
1041  .It
1042  .Nm get-identity-preference
1043  .Op Fl h
1044  .Op Fl s Ar service
1045  .Op Fl u Ar keyUsage
1046  .Op Fl p
1047  .Op Fl c
1048  .Op Fl Z
1049  .Bl -item -offset -indent
1050  Get the preferred identity to use for a service.
1051  .It
1052  .Bl -tag -compact -width -indent-indent
1053  .It Fl s Ar service
1054  Specify service (may be a URL, RFC822 email address, DNS host, or other name)
1055  .It Fl u Ar keyUsage
1056  Specify key usage (optional)
1057  .It Fl p
1058  Output identity certificate in pem format
1059  .It Fl c
1060  Print common name of the preferred identity certificate
1061  .It Fl Z
1062  Print SHA-256 (and SHA-1) hash of the preferred identity certificate
1063  .El
1064  .El
1065  .It
1066  .Nm create-db
1067  .Op Fl aho0
1068  .Op Fl g Ar dl Ns | Ns Ar cspdl
1069  .Op Fl m Ar mode
1070  .Op Ar name
1071  .Bl -item -offset -indent
1072  Create a db using the DL.  If
1073  .Ar name
1074  isn't provided
1075  .Nm
1076  will prompt the user to type a name.
1077  .It
1078  Options:
1079  .Bl -tag -compact -width -indent-indent
1080  .It Fl a
1081  Turn off autocommit
1082  .It Fl g Ar dl Ns | Ns Ar cspdl
1083  Use the AppleDL (default) or AppleCspDL
1084  .It Fl m Ar mode
1085  Set the file permissions to
1086  .Ar mode Ns
1087  \&.
1088  .It Fl o
1089  Force using openparams argument
1090  .It Fl 0
1091  Force using version 0 openparams
1092  .El
1093  .It
1094  .Sy Examples
1095  .Bl -tag -width -indent
1096  .It security> create-db -m 0644 test.db
1097  .It security> create-db -g cspdl -a test2.db
1098  .El
1099  .\"new import/export commands.
1100  .El
1101  .It
1102  .Nm export
1103  .Op Fl k Ar keychain
1104  .Op Fl t Ar type
1105  .Op Fl f Ar format
1106  .Op Fl w
1107  .Op Fl p Ar format
1108  .Op Fl P Ar passphrase
1109  .Op Fl o Ar outfile
1110  .Bl -item -offset -indent
1111  Export one or more items from a keychain to one of a number of external representations.  If
1112  .Ar keychain
1113  isn't provided, items will be exported from the user's default keychain.
1114  .It
1115  Options:
1116  .Bl -tag -compact -width -indent-indent
1117  .It Fl k Ar keychain
1118  Specify keychain from which item(s) will be exported. 
1119  .It Fl t Ar type
1120  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 private key.
1121  .It Fl f Ar format
1122  Specify the format of the exported data. Possible formats are openssl, bsafe, pkcs7, pkcs8, pkcs12, x509, openssh1, openssh2, 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.
1123  .It Fl w
1124  Specifies that private keys are to be wrapped on export. 
1125  .It Fl p 
1126  Specifies that PEM armour is to be applied to the output data.
1127  .It Fl P Ar passphrase
1128  Specify the wrapping passphrase immediately. The default is to obtain a secure passphrase via GUI.
1129  .It Fl o Ar outfile
1130  Write the output data to 
1131  .Ar outfile Ns
1132  \&. Default is to write data to stdout. 
1133  .El
1134  .It
1135  .Sy Examples
1136  .Bl -tag -width -indent
1137  .It security> export -k login.keychain -t certs -o /tmp/certs.pem
1138  .It security> export -k newcert.keychain -t identities -f pkcs12 -o /tmp/mycerts.p12
1139  .El
1140  .\"marker.
1141  .El
1142  .It
1143  .Nm import
1144  inputfile
1145  .Op Fl k Ar keychain
1146  .Op Fl t Ar type
1147  .Op Fl f Ar format
1148  .Op Fl w
1149  .Op Fl P Ar passphrase
1150  .Op Ar options...
1151  .Bl -item -offset -indent
1152  Import one or more items from 
1153  .Ar inputfile Ns
1154  \& into a keychain. If
1155  .Ar keychain
1156  isn't provided, items will be imported into the user's default keychain.
1157  .It
1158  Options:
1159  .Bl -tag -compact -width -indent-indent
1160  .It Fl k Ar keychain
1161  Specify keychain into which item(s) will be imported. 
1162  .It Fl t Ar type
1163  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.
1164  .It Fl f Ar format
1165  Specify the format of the exported data. Possible formats are openssl, bsafe, raw, pkcs7, pkcs8, pkcs12, x509, openssh1, openssh2, and pemseq. The command can often figure out what format an item is in based in the filename and/or item_type. 
1166  .It Fl w
1167  Specify that private keys are wrapped and must be unwrapped on import.
1168  .It Fl x
1169  Specify that private keys are non-extractable after being imported.
1170  .It Fl P Ar passphrase
1171  Specify the unwrapping passphrase immediately. The default is to obtain a secure passphrase via GUI.
1172  .It Fl a Ar attrName Ar attrValue
1173  Specify optional extended attribute name and value. Can be used multiple times. This is only valid when importing keys.
1174  .It Fl A
1175  Allow any application to access the imported key without warning (insecure, not recommended!)
1176  .It Fl T Ar appPath
1177  Specify an application which may access the imported key (multiple
1178  .Fl T Ns
1179  \& options are allowed)
1180  .El
1181  .It
1182  .Sy Examples
1183  .Bl -tag -width -indent
1184  .It security> import /tmp/certs.pem -k 
1185  .It security> import /tmp/mycerts.p12 -t agg -k newcert.keychain
1186  .It security> import /tmp/mycerts.p12 -f pkcs12 -k newcert.keychain
1187  .El
1188  .\"end of new import/export commands.
1189  .El
1190  .It
1191  .Nm cms
1192  .Op Fl C Ns | Ns Fl D Ns | Ns Fl E Ns | Ns Fl S
1193  .Op Ar options...
1194  .Bl -item -offset -indent
1195  Encode or decode CMS messages.  
1196  .Bl -tag -compact -width -indent-indent
1197  .It Fl C
1198  create a CMS encrypted message
1199  .It Fl D
1200  decode a CMS message
1201  .It Fl E
1202  create a CMS enveloped message
1203  .It Fl S
1204  create a CMS signed message
1205  .El
1206  .It
1207  Decoding options:
1208  .Bl -tag -compact -width -indent-indent
1209  .It Fl c Ar content
1210  use this detached content file
1211  .It Fl h Ar level
1212  generate email headers with info about CMS message (output
1213  .Ar level Ns
1214  \& >= 0)
1215  .It Fl n
1216  suppress output of content
1217  .El
1218  .It
1219  Encoding options:
1220  .Bl -tag -compact -width -indent-indent
1221  .It Fl r Ar id,...
1222  create envelope for comma-delimited list of recipients, where id can be a certificate nickname or email address
1223  .It Fl G
1224  include a signing time attribute
1225  .It Fl H Ar hash
1226  hash = MD2|MD4|MD5|SHA1|SHA256|SHA384|SHA512 (default: SHA1)
1227  .It Fl N Ar nick
1228  use certificate named "nick" for signing
1229  .It Fl P
1230  include a SMIMECapabilities attribute
1231  .It Fl T
1232  do not include content in CMS message
1233  .It Fl Y Ar nick
1234  include an EncryptionKeyPreference attribute with certificate (use "NONE" to omit)
1235  .It Fl Z Ar hash
1236  find a certificate by subject key ID
1237  .El
1238  .It
1239  Common options:
1240  .Bl -tag -compact -width -indent-indent
1241  .It Fl e Ar envelope
1242  specify envelope file (valid with
1243  .Fl D Ns
1244  \& or
1245  .Fl E Ns
1246  \&)
1247  .It Fl k Ar keychain
1248  specify keychain to use
1249  .It Fl i Ar infile
1250  use infile as source of data (default: stdin)
1251  .It Fl o Ar outfile
1252  use outfile as destination of data (default: stdout)
1253  .It Fl p Ar password
1254  use password as key db password (default: prompt)
1255  .It Fl s
1256  pass data a single byte at a time to CMS
1257  .It Fl u Ar certusage
1258  set type of certificate usage (default: certUsageEmailSigner)
1259  .It Fl v
1260  print debugging information
1261  .El
1262  .It
1263  Cert usage codes:
1264                    0 - certUsageSSLClient
1265                    1 - certUsageSSLServer
1266                    2 - certUsageSSLServerWithStepUp
1267                    3 - certUsageSSLCA
1268                    4 - certUsageEmailSigner
1269                    5 - certUsageEmailRecipient
1270                    6 - certUsageObjectSigner
1271                    7 - certUsageUserCertImport
1272                    8 - certUsageVerifyCA
1273                    9 - certUsageProtectedObjectSigner
1274                   10 - certUsageStatusResponder
1275                   11 - certUsageAnyCA
1276  .It
1277  .El
1278  .It
1279  .Nm install-mds
1280  .Bl -item -offset -indent
1281  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.
1282  .El
1283  .It
1284  .Nm add-trusted-cert
1285  .Op Fl d
1286  .Op Fl r Ar resultType
1287  .Op Fl p Ar policy
1288  .Op Fl a Ar appPath
1289  .Op Fl s Ar policyString
1290  .Op Fl e Ar allowedError
1291  .Op Fl u Ar keyUsage
1292  .Op Fl k Ar keychain
1293  .Op Fl i Ar settingsFileIn
1294  .Op Fl o Ar settingsFileOut
1295  certFile
1296  .Bl -item -offset -indent
1297  Add certificate (in DER or PEM format) from  
1298  .Ar certFile Ns
1299  \& to per-user or local Admin Trust Settings. When modifying per-user Trust Settings, user authentication is required via an authentication dialog. When modifying admin Trust Settings, the process must be running as root, or admin authentication is required.
1300  .It
1301  Options:
1302  .Bl -tag -compact -width -indent-indent
1303  .It Fl d
1304  Add to admin cert store; default is user.
1305  .It Fl r Ar resultType
1306  resultType = trustRoot|trustAsRoot|deny|unspecified; default is trustRoot.
1307  .It Fl p Ar policy
1308  Specify policy constraint (ssl, smime, codeSign, IPSec, basic, swUpdate, pkgSign, eap, macappstore, appleID, timestamping).
1309  .It Fl a Ar appPath
1310  Specify application constraint.
1311  .It Fl s Ar policyString
1312  Specify policy-specific string.
1313  .It Fl e Ar allowedError
1314  Specify allowed error (an integer value, or one of: certExpired, hostnameMismatch)
1315  .It Fl u Ar keyUsage
1316  Specify key usage, an integer.
1317  .It Fl k Ar keychain
1318  Specify keychain to which cert is added.
1319  .It Fl i Ar settingsFileIn
1320  Input trust settings file; default is user domain.
1321  .It Fl o Ar settingsFileOut
1322  Output trust settings file; default is user domain.
1323  .El
1324  .It
1325  .Sy Key usage codes:
1326      -1 - Any
1327       1 - Sign
1328       2 - Encrypt/Decrypt Data
1329       4 - Encrypt/Decrypt Key
1330       8 - Sign certificate
1331      16 - Sign revocation
1332      32 - Key exchange
1333      To specify more than one usage, add values together (except -1 - Any).
1334  .It
1335  .Sy Examples
1336  .Bl -tag -width -indent
1337  .Dl security> add-trusted-cert /tmp/cert.der
1338  .Dl security> add-trusted-cert -d .tmp/cert.der
1339  .El
1340  .\"marker.
1341  .It
1342  .Nm remove-trusted-cert
1343  .Op Fl d
1344  certFile
1345  .Bl -item -offset -indent
1346  Remove certificate (in DER or PEM format) in  
1347  .Ar certFile Ns
1348  \& from per-user or local Admin Trust Settings. When modifying per-user Trust Settings, user authentication is required via an authentication dialog. When modifying admin Trust Settings, the process must be running as root, or admin authentication is required. 
1349  .It
1350  Options:
1351  .Bl -tag -compact -width -indent-indent
1352  .It Fl d
1353  Remove from admin cert store; default is user. 
1354  .El
1355  .\"marker.
1356  .El
1357  .It
1358  .Nm dump-trust-settings
1359  .Op Fl s
1360  .Op Fl d
1361  .Bl -item -offset -indent
1362  Display Trust Settings. 
1363  .It
1364  Options:
1365  .Bl -tag -compact -width -indent-indent
1366  .It Fl s
1367  Display trusted system certs; default is user. 
1368  .It Fl d
1369  Display trusted admin certs; default is user. 
1370  .El
1371  .\"marker.
1372  .El
1373  .It
1374  .Nm user-trust-settings-enable
1375  .Op Fl d
1376  .Op Fl e
1377  .Bl -item -offset -indent
1378  Display or manipulate user-level Trust Settings. With no arguments, shows the current state of the user-level Trust Settings enable. Otherwise enables or disables user-level Trust Settings. 
1379  .It
1380  Options:
1381  .Bl -tag -compact -width -indent-indent
1382  .It Fl d
1383  Disable user-level Trust Settings. 
1384  .It Fl e
1385  Enable user-level Trust Settings. 
1386  .El
1387  .\"marker.
1388  .El
1389  .It
1390  .Nm trust-settings-export
1391  .Op Fl s
1392  .Op Fl d
1393  settings_file
1394  .Bl -item -offset -indent
1395  Export Trust Settings to the specified file.
1396  .It
1397  Options:
1398  .Bl -tag -compact -width -indent-indent
1399  .It Fl s
1400  Export system Trust Settings; default is user.
1401  .It Fl d
1402  Export admin Trust Settings; default is user.
1403  .El
1404  .\"marker.
1405  .El
1406  .It
1407  .Nm trust-settings-import
1408  .Op Fl d
1409  settings_file
1410  .Bl -item -offset -indent
1411  Import Trust Settings from the specified file. When modifying per-user Trust Settings, user authentication is required via an authentication dialog. When modifying admin Trust Settings, the process must be running as root, or admin authentication is required.
1412  .It
1413  Options:
1414  .Bl -tag -compact -width -indent-indent
1415  .It Fl d
1416  Import admin Trust Settings; default is user.
1417  .El
1418  .\"marker.
1419  .El
1420  .It
1421  .Nm verify-cert
1422  .Op Fl c Ar certFile
1423  .Op Fl r Ar rootCertFile
1424  .Op Fl p Ar policy
1425  .Op Fl C
1426  .Op Fl d Ar date
1427  .Op Fl k Ar keychain
1428  .Op Fl n Ar name
1429  .Op Fl N
1430  .Op Fl L
1431  .Op Fl l
1432  .Op Fl e Ar emailAddress
1433  .Op Fl s Ar sslHost
1434  .Op Fl q
1435  .Op Fl R Ar revCheckOption
1436  .Op Fl P
1437  .Op Fl t
1438  .Op Fl v
1439  .Op Ar url
1440  .Bl -item -offset -indent
1441  Verify one or more certificates. If a direct URL argument is provided, a TLS connection is attempted and the certificate presented by that server is evaluated according to standard SSL server policy; other certificates or policy options will be ignored in this case.
1442  .It
1443  Options:
1444  .Bl -tag -compact -width -indent-indent
1445  .It Fl c Ar certFile
1446  Certificate to verify, in DER or PEM format. Can be specified more than once; leaf certificate has to be specified first.
1447  .It Fl r Ar rootCertFile
1448  Root certificate, in DER or PEM format. Can be specified more than once. If not specified, the system anchor certificates are used. If one root certificate is specified, and zero (non-root) certificates are specified, the root certificate is verified against itself.
1449  .It Fl p Ar policy
1450  Specify verification policy (ssl, smime, codeSign, IPSec, basic, swUpdate, pkgSign, eap, appleID, macappstore, timestamping). Default is basic.
1451  .It Fl C
1452  Specify this evaluation is for client usage, if the verification policy (e.g. ssl) distinguishes between client and server usage. Default is server usage.
1453  .It Fl d Ar date
1454  Date to set for verification. Specified in the format of YYYY-MM-DD-hh:mm:ss (time optional). e.g: 2016-04-25-15:59:59 for April 25, 2016 at 3:59:59 pm in GMT
1455  .It Fl k Ar keychain
1456  Keychain to search for intermediate CA certificates. Can be specified multiple times. Default is the current user's keychain search list.
1457  .It Fl n Ar name
1458  Specify a name to be verified, e.g. the SSL host name for the ssl policy, or RFC822 email address for the smime policy. For backward compatibility, if the -n option is provided without an argument, it will be interpreted as equivalent to -N.
1459  .It Fl N
1460  Avoid searching any keychains.
1461  .It Fl L
1462  Use local certificates only. If an issuing CA certificate is missing, this option will avoid accessing the network to fetch it.
1463  .It Fl l
1464  Specifies that the leaf certificate is a CA cert. By default, a leaf certificate with a Basic Constraints extension with the CA bit set fails verification.
1465  .It Fl e Ar emailAddress
1466  Specify email address for the smime policy. (This option is deprecated; use -n instead.)
1467  .It Fl s Ar sslHost
1468  Specify SSL host name for the ssl policy. (This option is deprecated; use -n instead.)
1469  .It Fl q
1470  Quiet, no stdout or stderr.
1471  .It Fl R Ar revCheckOption
1472  Specify a revocation checking option for this evaluation (ocsp, crl, require, offline). Can be specified multiple times; e.g. to enable revocation checking via either OCSP or CRL methods and require a positive response, use "-R ocsp -R crl -R require". The offline option will consult previously cached responses, but will not make a request to a revocation server.
1473  .It Fl P
1474  Output the constructed certificate chain in PEM format.
1475  .It Fl t
1476  Output certificate contents as text.
1477  .It Fl v
1478  Specify verbose output, including per-certificate trust results.
1479  .El
1480  .It
1481  .Sy Examples
1482  .Bl -tag -width -indent
1483  .It security> verify-cert -c applestore0.cer -c applestore1.cer -p ssl -n store.apple.com
1484  .It security> verify-cert -r serverbasic.crt
1485  .It security> verify-cert -v https://www.apple.com
1486  .El
1487  .\"marker.
1488  .El
1489  .It
1490  .Nm authorize
1491  .Op Fl updPiew
1492  .Op Ar right...
1493  .Bl -item -offset -indent
1494  Authorize requested right(s).  The extend-rights flag will be passed by default.
1495  .It
1496  Options:
1497  .Bl -tag -compact -width -indent-indent
1498  .It Fl u
1499  Allow user interaction.
1500  .It Fl p
1501  Allow returning partial rights.
1502  .It Fl d
1503  Destroy acquired rights.
1504  .It Fl P
1505  Pre-authorize rights only.
1506  .It Fl l
1507  Operate authorization in least privileged mode.
1508  .It Fl i
1509  Internalize authref passed on stdin.
1510  .It Fl e
1511  Externalize authref to stdout
1512  .It Fl w
1513  Wait while holding AuthorizationRef until stdout is closed. This will allow client to read externalized AuthorizationRef from pipe.
1514  .El
1515  .It
1516  .Sy Examples
1517  .Bl -tag -width -indent
1518  .It security> security authorize -ud my-right
1519  Basic authorization of my-right.
1520  .It security> security -q authorize -uew my-right | security -q authorize -i my-right
1521  Authorizing a right and passing it to another command as a way to add authorization to shell scripts.
1522  .El
1523  .El
1524  .It
1525  .Nm authorizationdb
1526  .Ar read <right-name>
1527  .It
1528  .Nm authorizationdb
1529  .Ar write <right-name> [allow|deny|<rulename>]
1530  .It
1531  .Nm authorizationdb
1532  .Ar remove <right-name>
1533  .Bl -item -offset -indent
1534  Read/Modify authorization policy database. Without a rulename write will read a dictionary as a plist from stdin.
1535  .It
1536  .Sy Examples
1537  .Bl -tag -width -indent
1538  .It security> security authorizationdb read system.privilege.admin > /tmp/aewp-def
1539  Read definition of system.privilege.admin right.
1540  .It security> security authorizationdb write system.preferences < /tmp/aewp-def
1541  Set system.preferences to definition of system.privilege.admin right.
1542  .It security> security authorizationdb write system.preferences authenticate-admin
1543  Every change to preferences requires an Admin user to authenticate.
1544  .El
1545  .El
1546  .It
1547  .Nm execute-with-privileges
1548  .Ar <program> 
1549  .Op Ar args...
1550  .Bl -item -offset -indent
1551  Execute tool with privileges. 
1552  On success stdin will be read and forwarded to the tool.
1553  .El
1554  .It
1555  .Nm leaks
1556  .Op Fl h
1557  .Op Fl cycles
1558  .Op Fl nocontext
1559  .Op Fl nostacks
1560  .Op Fl exclude Ar symbol
1561  .Bl -item -offset -indent
1562  Run
1563  .Li /usr/bin/leaks
1564  on this process.  This can help find memory leaks after running
1565  certain commands.
1566  .It
1567  Options:
1568  .Bl -tag -compact -width -indent-indent
1569  .It Fl cycles
1570  Use a stricter algorithm (See
1571  .Xr leaks 1
1572  for details).
1573  .It Fl nocontext
1574  Withhold the hex dumps of the leaked memory.
1575  .It Fl nostacks
1576  Don't show stack traces of leaked memory.
1577  .It Fl exclude Ar symbol
1578  Ignore leaks called from
1579  .Ar symbol Ns .
1580  .El
1581  .El
1582  .It
1583  .Nm smartcards
1584  .Ar token
1585  .Op Fl l
1586  .Op Fl e Ar token
1587  .Op Fl d Ar token
1588  .Bl -item -offset -indent
1589  Enable, disable or list disabled smartcard tokens.
1590  .It
1591  Options:
1592  .Bl -tag -compact -width -indent-indent
1593  .It Fl l
1594  List disabled smartcard tokens.
1595  .It Fl e Ar token
1596  Enable smartcard token.
1597  .It Fl d Ar token
1598  Disable smartcard token.
1599  .El
1600  .It
1601  .Sy To list tokens available in the system
1602  .It
1603  .Bl -tag -compact -width -indent
1604  .It pluginkit -m -p com.apple.ctk-tokens
1605  .El
1606  .It
1607  .Sy Examples
1608  .It
1609  .Bl -tag -compact -width -indent
1610  .It security smartcards token -l
1611  .It security smartcards token -d com.apple.CryptoTokenKit.pivtoken
1612  .It security smartcards token -e com.apple.CryptoTokenKit.pivtoken
1613  .El
1614  .El
1615  .It
1616  .Nm list-smartcards
1617  .Bl -item -offset -indent
1618  Display
1619  .Ar id Ns
1620  s of available smartcards.
1621  .El
1622  .It
1623  .Nm export-smartcard
1624  .Ar token
1625  .Op Fl i Ar id
1626  .Op Fl t Ar certs Ns | Ns Ar privKeys Ns | Ns Ar identities Ns | Ns Ar all
1627  .Op Fl e Ar exportPath
1628  .Bl -item -offset -indent
1629  Export/display items from a smartcard. If
1630  .Ar id
1631  isn't provided, items from all smartcards will be displayed.
1632  .It
1633  Options:
1634  .Bl -tag -compact -width -indent-indent
1635  .It Fl i Ar id
1636  Export/display items from token specified by token
1637  .Ar id Ns
1638  , available
1639  .Ar id Ns
1640  s can be listed by list-smartcards command.
1641  .It Fl t Ar certs Ns | Ns Ar privKeys Ns | Ns Ar identities Ns | Ns Ar all
1642  Display items of the specified type (Default:
1643  .Ar all Ns
1644  )
1645  .It Fl e Ar exportPath
1646  Specify path to export certificates and public keys. If
1647  .Ar exportPath Ns
1648   is specified screen output is suppressed. This option cannot be combined with -t option.
1649  .El
1650  .El
1651  .It
1652  .Nm error
1653  .Op Fl h
1654  .Op Ar <error code(s)...>
1655  .Bl -item -offset -indent
1656  Display an error string for the given security-related error code.
1657  The error can be in decimal or hex, e.g. 1234 or 0x1234. Multiple
1658  errors can be separated by spaces.
1659  .El
1660  .El
1661  .El
1662  .Sh ENVIRONMENT      \" May not be needed
1663  .Bl -tag -width -indent
1664  .It Ev MallocStackLogging
1665  When using the
1666  .Nm leaks
1667  command or the
1668  .Fl l
1669  option it's probably a good idea to set this environment variable before
1670  .Nm
1671  is started.  Doing so will allow leaks to display symbolic backtraces.
1672  .El                      
1673  .Sh FILES
1674  .Bl -tag -width -indent
1675  .It Pa ~/Library/Preferences/com.apple.security.plist
1676  .Pp
1677  Property list file containing the current user's default keychain and keychain search list.
1678  .It Pa /Library/Preferences/com.apple.security.plist
1679  .Pp
1680  Property list file containing the system default keychain and keychain search list.  This is used by processes started at boot time, or those requesting to use the system search domain, such as system daemons.
1681  .It Pa /Library/Preferences/com.apple.security-common.plist
1682  .Pp
1683  Property list file containing the common keychain search list, which is appended to every user's search list and to the system search list.
1684  .El
1685  .Sh SEE ALSO 
1686  .\" List links in ascending order by section, alphabetically within a section.
1687  .\" Please do not reference files that do not exist without filing a bug report
1688  .Xr certtool 1 ,
1689  .Xr leaks 1 ,
1690  .Xr pluginkit 8
1691  .\" .Xr systemkeychain 8 
1692  .Sh HISTORY
1693  .Nm
1694  was first introduced in Mac OS X version 10.3.
1695  .Sh BUGS
1696  .Nm
1697  still needs more commands before it can be considered complete.
1698  In particular, it should someday supersede both the
1699  .Li certtool
1700  and
1701  .Li systemkeychain
1702  commands.