@node psktool Invocation
@subsubsection Invoking psktool
@pindex psktool
@ignore
#  -*- buffer-read-only: t -*- vi: set ro:
#
# DO NOT EDIT THIS FILE   (invoke-psktool.texi)
#
# It has been AutoGen-ed
# From the definitions    ../src/psktool-args.def
# and the template file   agtexi-cmd.tpl
@end ignore


Program  that generates random keys for use with TLS-PSK. The
keys are stored in hexadecimal format in a key file.

This section was generated by @strong{AutoGen},
using the @code{agtexi-cmd} template and the option descriptions for the @code{psktool} program.
This software is released under the GNU General Public License, version 3 or later.


@anchor{psktool usage}
@subsubheading psktool help/usage (@option{--help})
@cindex psktool help

This is the automatically generated usage text for psktool.

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
psktool - GnuTLS PSK tool
Usage:  psktool [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...

   -d, --debug=num            Enable debugging
                                - it must be in the range:
                                  0 to 9999
   -s, --keysize=num          Specify the key size in bytes (default is 32-bytes or 256-bits)
                                - it must be in the range:
                                  0 to 512
   -u, --username=str         Specify the username to use
   -p, --pskfile=str          Specify a pre-shared key file
   -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 generates random keys for use with TLS-PSK.  The keys are
stored in hexadecimal format in a key file.

@end example
@exampleindent 4

@anchor{psktool debug}
@subsubheading debug option (-d)

This is the ``enable debugging'' option.
This option takes a number argument.
Specifies the debug level.
@anchor{psktool pskfile}
@subsubheading pskfile option (-p)

This is the ``specify a pre-shared key file'' option.
This option takes a string argument.
This option will specify the pre-shared key file to store the generated keys.
@anchor{psktool passwd}
@subsubheading passwd option

This is an alias for the @code{pskfile} option,
@pxref{psktool pskfile, the pskfile option documentation}.

@anchor{psktool exit status}
@subsubheading psktool 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{psktool See Also}
@subsubheading psktool See Also
    gnutls-cli-debug (1), gnutls-serv (1), srptool (1), certtool (1)
@anchor{psktool Examples}
@subsubheading psktool Examples
To add a user 'psk_identity' in @file{keys.psk} for use with GnuTLS run:
@example
$ ./psktool -u psk_identity -p keys.psk
Generating a random key for user 'psk_identity'
Key stored to keys.psk
$ cat keys.psk
psk_identity:88f3824b3e5659f52d00e959bacab954b6540344
$
@end example

This command will create @file{keys.psk} if it does not exist
and will add user 'psk_identity'.
