summaryrefslogtreecommitdiffstats
path: root/doc/invoke-tpmtool.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/invoke-tpmtool.texi')
-rw-r--r--doc/invoke-tpmtool.texi203
1 files changed, 203 insertions, 0 deletions
diff --git a/doc/invoke-tpmtool.texi b/doc/invoke-tpmtool.texi
new file mode 100644
index 0000000..053a2a1
--- /dev/null
+++ b/doc/invoke-tpmtool.texi
@@ -0,0 +1,203 @@
+@node tpmtool Invocation
+@subsection Invoking tpmtool
+@pindex tpmtool
+
+Program that allows handling cryptographic data from the TPM chip.
+
+@anchor{tpmtool usage}
+@subsubheading tpmtool help/usage (@option{-?})
+@cindex tpmtool help
+
+The text printed is the same whether selected with the @code{help} option
+(@option{--help}) or the @code{more-help} option (@option{--more-help}). @code{more-help} will print
+the usage text by passing it through a pager program.
+@code{more-help} is disabled on platforms without a working
+@code{fork(2)} function. The @code{PAGER} environment variable is
+used to select the program, defaulting to @file{more}. Both will exit
+with a status code of 0.
+
+@exampleindent 0
+@example
+tpmtool - GnuTLS TPM tool
+Usage: tpmtool [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
+
+None:
+
+ -d, --debug=num Enable debugging
+ - it must be in the range:
+ 0 to 9999
+ --infile=file Input file
+ - file must pre-exist
+ --outfile=str Output file
+ --generate-rsa Generate an RSA private-public key pair
+ --register Any generated key will be registered in the TPM
+ - requires the option 'generate-rsa'
+ --signing Any generated key will be a signing key
+ - prohibits the option 'legacy'
+ - requires the option 'generate-rsa'
+ --legacy Any generated key will be a legacy key
+ - prohibits the option 'signing'
+ - requires the option 'generate-rsa'
+ --user Any registered key will be a user key
+ - prohibits the option 'system'
+ - requires the option 'register'
+ --system Any registered key will be a system key
+ - prohibits the option 'user'
+ - requires the option 'register'
+ --pubkey=str Prints the public key of the provided key
+ --list Lists all stored keys in the TPM
+ --delete=str Delete the key identified by the given URL (UUID)
+ --test-sign=str Tests the signature operation of the provided object
+ --sec-param=str Specify the security level [low, legacy, medium, high, ultra]
+ --bits=num Specify the number of bits for key generate
+ --inder Use the DER format for keys
+ --outder Use DER format for output keys
+ --srk-well-known SRK has well known password (20 bytes of zeros)
+
+Version, usage and configuration options:
+
+ -v, --version[=arg] output version information and exit
+ -h, --help display extended usage information and exit
+ -!, --more-help extended usage information passed thru pager
+
+Options are specified by doubled hyphens and their name or by a single
+hyphen and the flag character.
+
+Program that allows handling cryptographic data from the TPM chip.
+
+Please send bug reports to: <bugs@@gnutls.org>
+
+@end example
+@exampleindent 4
+
+@subsubheading debug option (-d).
+@anchor{tpmtool debug}
+
+This is the ``enable debugging'' option.
+This option takes a ArgumentType.NUMBER argument.
+Specifies the debug level.
+@subsubheading generate-rsa option.
+@anchor{tpmtool generate-rsa}
+
+This is the ``generate an rsa private-public key pair'' option.
+Generates an RSA private-public key pair in the TPM chip.
+The key may be stored in file system and protected by a PIN, or stored (registered)
+in the TPM chip flash.
+@subsubheading user option.
+@anchor{tpmtool user}
+
+This is the ``any registered key will be a user key'' option.
+
+@noindent
+This option has some usage constraints. It:
+@itemize @bullet
+@item
+must not appear in combination with any of the following options:
+system.
+@item
+must appear in combination with the following options:
+register.
+@end itemize
+
+The generated key will be stored in a user specific persistent storage.
+@subsubheading system option.
+@anchor{tpmtool system}
+
+This is the ``any registered key will be a system key'' option.
+
+@noindent
+This option has some usage constraints. It:
+@itemize @bullet
+@item
+must not appear in combination with any of the following options:
+user.
+@item
+must appear in combination with the following options:
+register.
+@end itemize
+
+The generated key will be stored in system persistent storage.
+@subsubheading test-sign option.
+@anchor{tpmtool test-sign}
+
+This is the ``tests the signature operation of the provided object'' option.
+This option takes a ArgumentType.STRING argument @file{url}.
+It can be used to test the correct operation of the signature operation.
+This operation will sign and verify the signed data.
+@subsubheading sec-param option.
+@anchor{tpmtool sec-param}
+
+This is the ``specify the security level [low, legacy, medium, high, ultra]'' option.
+This option takes a ArgumentType.STRING argument @file{Security parameter}.
+This is alternative to the bits option. Note however that the
+values allowed by the TPM chip are quantized and given values may be rounded up.
+@subsubheading inder option.
+@anchor{tpmtool inder}
+
+This is the ``use the der format for keys'' option.
+The input files will be assumed to be in the portable
+DER format of TPM. The default format is a custom format used by various
+TPM tools
+@subsubheading outder option.
+@anchor{tpmtool outder}
+
+This is the ``use der format for output keys'' option.
+The output will be in the TPM portable DER format.
+@subsubheading version option (-v).
+@anchor{tpmtool version}
+
+This is the ``output version information and exit'' option.
+This option takes a ArgumentType.KEYWORD argument.
+Output version of program and exit. The default mode is `v', a simple
+version. The `c' mode will print copyright information and `n' will
+print the full copyright notice.
+@subsubheading help option (-h).
+@anchor{tpmtool help}
+
+This is the ``display extended usage information and exit'' option.
+Display usage information and exit.
+@subsubheading more-help option (-!).
+@anchor{tpmtool more-help}
+
+This is the ``extended usage information passed thru pager'' option.
+Pass the extended usage information through a pager.
+@anchor{tpmtool exit status}
+@subsubheading tpmtool exit status
+
+One of the following exit values will be returned:
+@table @samp
+@item 0 (EXIT_SUCCESS)
+Successful program execution.
+@item 1 (EXIT_FAILURE)
+The operation failed or the command syntax was not valid.
+@end table
+@anchor{tpmtool See Also}
+@subsubheading tpmtool See Also
+ p11tool (1), certtool (1)
+@anchor{tpmtool Examples}
+@subsubheading tpmtool Examples
+To generate a key that is to be stored in file system use:
+@example
+$ tpmtool --generate-rsa --bits 2048 --outfile tpmkey.pem
+@end example
+
+To generate a key that is to be stored in TPM's flash use:
+@example
+$ tpmtool --generate-rsa --bits 2048 --register --user
+@end example
+
+To get the public key of a TPM key use:
+@example
+$ tpmtool --pubkey tpmkey:uuid=58ad734b-bde6-45c7-89d8-756a55ad1891;storage=user \
+ --outfile pubkey.pem
+@end example
+
+or if the key is stored in the file system:
+@example
+$ tpmtool --pubkey tpmkey:file=tmpkey.pem --outfile pubkey.pem
+@end example
+
+To list all keys stored in TPM use:
+@example
+$ tpmtool --list
+@end example