#{

#include <config.h>
#include <common.h>

void serv_version(void);

#}

helpnode "GnuTLS test server\nUsage: gnutls-serv [options]\n\n"

#int debug;
option (d, debug) INT "integer" { $debug = $1 } "Enable debugging" 

#int generate;
option (g, generate) { $generate = 1 } "Generate Diffie-Hellman and RSA-EXPORT Parameters."

#int port;
option (p, port) INT "integer" { $port = $1 } "The port to connect to."

#int quiet;
option (q, quiet) { $quiet = 1 } "Suppress some messages."

#int nodb;
option (nodb) { $nodb = 1 } "Does not use the resume database."

#int noticket;
option (noticket) { $noticket = 1 } "Does not issue session tickets."

#int http;
option (http) { $http = 1 } "Act as an HTTP Server."
option (echo) { $http = 0 } "Act as an Echo Server."

#char *dh_params_file;
option (dhparams) STR "FILE" { $dh_params_file = $1 } "DH params file to use."

#int fmtder;
option (x509fmtder) { $fmtder = 1 } "Use DER format for certificates"

#char *x509_cafile;
option (x509cafile) STR "FILE" { $x509_cafile = $1 } "Certificate file or PKCS #11 URL to use."

#char *x509_crlfile;
option (x509crlfile) STR "FILE" { $x509_crlfile = $1 } "CRL file to use."

#char *pgp_keyring;
option (pgpkeyring) STR "FILE" { $pgp_keyring = $1 } "PGP Key ring file to use."

#char *pgp_keyfile;
option (pgpkeyfile) STR "FILE" { $pgp_keyfile = $1 } "PGP Key file to use."

#char *pgp_certfile;
option (pgpcertfile) STR "FILE" { $pgp_certfile = $1 } "PGP Public Key (certificate) file to use."

#char *pgp_subkey;
option (pgpsubkey) STR "HEX|auto" { $pgp_subkey = $1 } "PGP subkey to use."

#char *x509_keyfile;
option (x509keyfile) STR "FILE" { $x509_keyfile = $1 } "X.509 key file or PKCS #11 URL to use."

#char *x509_certfile;
option (x509certfile) STR "FILE" { $x509_certfile = $1 } "X.509 Certificate file or PKCS #11 URL to use."

#char *x509_dsakeyfile;
option (x509dsakeyfile) STR "FILE" { $x509_dsakeyfile = $1 } "Alternative X.509 key file to use."

#char *x509_dsacertfile;
option (x509dsacertfile) STR "FILE" { $x509_dsacertfile = $1 } "Alternative X.509 certificate file to use."

#int require_cert;
option (r, require-cert) { $require_cert = 1 } "Require a valid certificate."

#int disable_client_cert;
option (a, disable-client-cert) { $disable_client_cert = 1 } "Disable request for a client certificate."

#char *psk_passwd;
option (pskpasswd) STR "FILE" { $psk_passwd = $1 } "PSK password file to use."

#char *psk_hint;
option (pskhint) STR "HINT" { $psk_hint = $1 } "PSK identity hint to use."

#char *srp_passwd;
option (srppasswd) STR "FILE" { $srp_passwd = $1 } "SRP password file to use."

#char *srp_passwd_conf;
option (srppasswdconf) STR "FILE" { $srp_passwd_conf = $1 } "SRP password conf file to use."

#char *opaque_prf_input;
option (opaque-prf-input) STR "DATA" { $opaque_prf_input = $1 } "Use Opaque PRF Input DATA."

#char *priorities;
option (priority) STR "PRIORITY STRING" { $priorities = $1 } "Priorities string."

option (l, list) { print_list(0); exit(0); } "Print a list of the supported algorithms  and modes."
option (h, help) { gaa_help(); exit(0); } "prints this help"

option (v, version) { serv_version(); exit(0); } "prints the program's version number"

INCOMP ra

init { $generate=0; $port=5556; $http=0; $nodb = 0; $noticket = 0;
	$x509_cafile = NULL; $pgp_keyfile=NULL; $pgp_certfile=NULL;
	$x509_keyfile=NULL; $x509_certfile=NULL; $x509_crlfile = NULL;
	$x509_dsakeyfile=NULL; $x509_dsacertfile=NULL; 
	$srp_passwd=NULL; $srp_passwd_conf=NULL; $quiet = 0;
	$pgp_keyring=NULL; $fmtder = 0;
	$disable_client_cert = 0; $priorities = NULL;
	$dh_params_file=NULL; $debug=0; $require_cert = 0; $psk_passwd = 0;
	$opaque_prf_input=NULL; $pgp_subkey = NULL;}
