Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
P11SAK(1)			  openCryptoki			       P11SAK(1)

NAME
     p11sak - generate and list token keys in an openCryptoki token repository.

SYNOPSIS
     p11sak command [ARGS] [OPTIONS]

     p11sak --help|-h

DESCRIPTION
     p11sak  can be used to generate, list and delete the token keys in an open-
     Cryptoki token repository.  The utility provides a flexible key  management
     tool  in  openCryptoki  to list and generate symmetric (DES; 3DES, AES) and
     asymetric (RSA, EC) keys.	This tool is especially capable of  a  well  de-
     fined listing of keys with their PKCS #11 attributes.

COMMANDS
     The  p11sak  tool	can operate in three modes: when command generate-key is
     specified, it operates in the mode to generate a token key in the openCryp-
     toki token repository.  If command list-key is given,  it	lists  the  keys
     specified in the arguments.  If command remove-key is given, it removes the
     keys specified in the arguments.

   generate-key
     Use the generate-key|gen-key|gen command and key argument to generate a to-
     ken  key  with  the  respective [ARGS] and [OPTIONS].  The --help|-h option
     will show the arguments and options available.

   list-key
     Use the list-key|ls-key|ls command and key  argument  to  list  token  keys
     given  the respective [ARGS] and [OPTIONS].  The --help|-h option will show
     the arguments and options available.

   remove-key
     Use the remove-key|rm-key|rm command and key argument to delete token  keys
     given  the respective [ARGS] and [OPTIONS].  The --help|-h option will show
     the arguments and options available.

   Generating DES/3DES keys
     p11sak generate-key|gen-key|gen des|3des --slot SLOTID  --pin  PIN  --label
     LABEL --attr [PMRLSEDGVWUAXNT] --help | -h

     Use  the  generate-key command with the des|3des key argument to generate a
     DES or 3DES key. The --slot SLOTID and --pin PIN options  are  required  to
     set  the  token  to SLOTID and the token PIN. The --label option allows the
     user to set the LABEL attribute of the key and --attr [PMRLSEDGVWUAXNT] can
     be used to set the binary attributes of the key (see below for detailed de-
     scription of the attributes).

   Generating AES keys
     p11sak generate-key|gen-key|gen aes 128|192|256  --slot  SLOTID  --pin  PIN
     --label LABEL --attr [PMRLSEDGVWUAXNT] --help | -h

     Use the generate-key aes 128|192|256 command and key argument to generate a
     AES  key  with  128, 192 or 256 bit length, respectively. The --slot SLOTID
     and --pin PIN options are required to set the token to SLOTID and the token
     PIN. The --label option allows the user to set the LABEL attribute  of  the
     key  and  --attr [PMRLSEDGVWUAXNT] can be used to set the binary attributes
     of the key (see below for detailed description of the attributes).

   Generating RSA keys
     p11sak generate-key|gen-key|gen rsa 1024|2048|4096 --slot SLOTID --pin  PIN
     --label LABEL --exponent EXP --attr [PMRLSEDGVWUAXNT] --help | -h

     Use  the generate-key rsa 1024|2048|4096 command and key argument to gener-
     ate a 1024, 2048 or 4096 bit RSA key, respectively. The --slot  SLOTID  and
     --pin  PIN  options  are  required to set the token to SLOTID and the token
     PIN. The --label option allows the user to set the LABEL attribute  of  the
     key  and  --attr [PMRLSEDGVWUAXNT] can be used to set the binary attributes
     of the key (see below for detailed description of the attributes). Further-
     more, the --exponent EXP options allows the user to  specify  the	exponent
     used  for	generating the RSA key. The default is set to 65537 according to
     the PKCS #11 standard.

   Generating EC keys
     p11sak generate-key|gen-key|gen ec CURVE --slot SLOTID  --pin  PIN  --label
     LABEL --attr [PMRLSEDGVWUAXNT] --help | -h

     Use  the  generate-key  ec CURVE command and key argument to generate an EC
     key, where CURVE specifies the eliptic curve used to create the EC key. The
     following arguments  can  be  used  for  respective  curves:  prime256v1  |
     prime192  | secp224 | secp384r1 | secp521r1 | secp265k1 | brainpoolP160r1 |
     brainpoolP160t1 | brainpoolP192r1 |  brainpoolP192t1  |  brainpoolP224r1  |
     brainpoolP224t1  |  brainpoolP256r1  |  brainpoolP256t1 | brainpoolP320r1 |
     brainpoolP320t1 | brainpoolP384r1 |  brainpoolP384t1  |  brainpoolP512r1  |
     brainpoolP512t1 | curve25519 | curve448 | ed25519 | ed448

     Note:  not  all  curves  will be supported by all tokens and key generation
     will fail when the specified CURVE is not supported. The --slot SLOTID  and
     --pin  PIN  options  are  required to set the token to SLOTID and the token
     PIN. The --label option allows the user to set the LABEL attribute  of  the
     key  and  --attr [PMRLSEDGVWUAXNT] can be used to set the binary attributes
     of the key (see below for detailed description of the attributes).

   Generating IBM Dilithium keys
     p11sak generate-key|gen-key|gen ibm-dilithium VERSION --slot  SLOTID  --pin
     PIN --label LABEL --attr [MRLSEDGVWUAXNT] --help | -h

     Use the generate-key ibm-dilithium VERSION command and key argument to gen-
     erate  an IBM Dilithium key, where VERSION specifies the version of the IBM
     Dilithium keypair. The following arguments can be used for respective keys:
     r2_65

     The --slot SLOTID and --pin PIN options are required to set  the  token  to
     SLOTID and the token PIN. The --label option allows the user to set the LA-
     BEL attribute of the key and --attr [MRLSEDGVWUAXNT] can be used to set the
     binary attributes of the key (see below for detailed description of the at-
     tributes).

   Listing symmetric and asymmetric keys
     p11sak   list-key|ls-key|ls   des|3des|aes|rsa|ec|ibm-dilithium|public|pri-
     vate|secret|all --slot SLOTID --pin PIN --label LABEL --long | -l --help  |
     -h

     Use  the list-key | ls-key | ls command and key argument to list DES, 3DES,
     AES, RSA, EC, or IBM Dilithium keys, respectively. Public, private, secret,
     or all keys can also be listed irrespective of key type.

   Deleting symmetric and asymmetric keys
     p11sak remove-key|rm-key|rm des|3des|aes|rsa|ec|ibm-dilithium --slot SLOTID
     --pin PIN --label LABEL --force | -f --help | -h

     Use the remove-key | rm-key | rm command and key argument	to  delete  DES,
     3DES,  AES, RSA, EC, or IBM Dilithium keys, respectively. All specified ci-
     pher keys will be prompted to be deleted unless a	specific  key  with  the
     --label LABEL argument is selected. The user will be promted to confirm the
     deletion of the key. To suppress the promt, use the --force | -f option.

ARGS
   des | 3des | aes | rsa | ec | ibm-dilithium | public | private | secret | all

     selects  the  respective  symmetric  or  asymetric  key  to be generated or
     listed. The public|private|secret|all argument can only be  used  with  the
     list-key command to list either public, private, secret, or all keys.

   128|192|256
     the  aes  argument  has to be followed by either 128, 192 or 256 to set the
     respective key bit length of the AES key.

   1024|2048|4096
     the rsa argument has to be followed by either 1024, 2048 or 4096 to set the
     respective key bit length of the RSA key.

   prime256v1 | prime192 | secp224 | secp384r1 | secp521r1 | secp265k1 |  brain-
     poolP160r1  |  brainpoolP160t1 | brainpoolP192r1 | brainpoolP192t1 | brain-
     poolP224r1 | brainpoolP224t1 | brainpoolP256r1 | brainpoolP256t1  |  brain-
     poolP320r1  |  brainpoolP320t1 | brainpoolP384r1 | brainpoolP384t1 | brain-
     poolP512r1 | brainpoolP512t1 | curve25519 | curve448 | ed25519 | ed448
     the ec argument has to be followed by either of these CURVE to  select  the
     EC curve used to generate the key.

OPTIONS
   --slot SLOTID
     sets the token to SLOTID

   --pin PIN
     sets the token PIN to PIN

     Alternatively  the PKCS11_USER_PIN environment variable may be used to pro-
     vide the token PIN.

   --force-pin-prompt
     enforce p11sak to prompt for the token PIN (regardless if it has been spec-
     ified elsewhere)

   --label LABEL
     sets the key label attribute to LABEL

   --exponent EXP
     sets the RSA exponent to EXP

   --attr [P M R L S E D G V W U A X N T]
     sets the binary attributes of a key.

     Note: not all binary attributes are applicable to	all  keys  and	will  be
     omitted if not applicable.

     The  attributes  are  set to FALSE by default and switched to TRUE when the
     letter that is associated with the given binary attribute is specified. The
     following letters are associated with the respective CK_ATTRIBUTE:

     * P - CKA_PRIVATE

     * M - CKA_MODIFIABLE

     * R - CKA_DERIVE

     * L - CKA_LOCAL

     * S - CKA_SENSITIVE

     * E - CKA_ENCRYPT

     * D - CKA_DECRYPT

     * G - CKA_SIGN

     * V - CKA_VERIFY

     * W - CKA_WRAP

     * U - CKA_UNWRAP

     * A - CKA_ALWAYS_SENSITIVE

     * X - CKA_EXTRACTABLE

     * N - CKA_NEVER_EXTRACTABLE

     * * - if in p11sak_defined_attrs.conf additional attributes are defined.

     CKA_TOKEN and CKA_PRIVATE are set by default to TRUE.  For multiple attrib-
     utes, combine the letters in a string without white space, e. g. 'MlD'.  An
     uppercase letter means true, while an lowercase letter equals false.   From
     Example above: CKA_MODIFIABLE=true, CKA_LOCAL=false, CKA_DECRYPT=true

     For asymmetric keys a user can set different custom attributes for the pub-
     lic  and the private key.	The separator is the symbol ":". The defined at-
     tributes in front of the separator are set for the public key and	the  at-
     tributes  defined after the separator are set for the private key. When the
     separator is not in the string, the defined attribute set is used for  pub-
     lic  and  private	key. To set a configuration for only the public key, the
     string has to end with the separator and respectively, to use a  configura-
     tion for the private key only, the string has to start with the separator.

   --long | -l
     prints  the  list-key output in long format. If omitted, the output is in a
     short, tabular format.

   --force | -f
     to be used with the remove-key command to suppress the  promt  whether  the
     user wants to delete the specified keys.

   --help | -h
     prints help for the usage of p11sak and/or the respective command.

FILES
   /usr/local/etc/opencryptoki/p11sak_defined_attrs.conf
     In  the  output  config file a user can define additional attributes, which
     are not mentioned in the PKCS#11 standard. A custom  filepath  can  be  set
     with an environment variable.

ENVIRONMENT VARIABLES
   P11SAK_DEFAULT_CONF_FILE
     A custom path for p11sak_defined_attrs.conf can be set with the environment
     variable  P11SAK_DEFAULT_CONF_FILE.  If  none is set p11sak will first look
     for the file in the user directory, followed by the  standard  installation
     path.

   PKCS11_USER_PIN
     The   token   PIN	 can   be   specified	via   the  environment	variable
     PKCS11_USER_PIN.  If nothing is set and the option --pin is not  specified,
     p11sak will prompt for the token PIN interactively.

EXIT STATUS
     p11sak returns various error codes on fail:

   CKR_ARGUMENTS_BAD (0x00000007):
     The p11sak_defined_attrs.conf is not found.

   CKR_DATA_INVALID (0x00000020):
     The p11sak_defined_attrs.conf cannot be parsed or syntax is invalid.

   CKR_ATTRIBUTE_TYPE_INVALID (0x00000012):
     A given attribute type cannot be set for this key.

SEE ALSO
     p11sak_defined_attrs.conf(5)

3.19.0				    May 2020			       P11SAK(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=p11sak&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help