125
125
void gaa_help(void)
127
printf("GNU TLS test server\nUsage: gnutls-serv [options]\n\n\n");
127
printf("GnuTLS test server\nUsage: gnutls-serv [options]\n\n\n");
128
128
__gaa_helpsingle('d', "debug", "integer ", "Enable debugging");
129
__gaa_helpsingle('g', "generate", "", "Generate Diffie-Hellman Parameters.");
129
__gaa_helpsingle('g', "generate", "", "Generate Diffie-Hellman and RSA-EXPORT Parameters.");
130
130
__gaa_helpsingle('p', "port", "integer ", "The port to connect to.");
131
131
__gaa_helpsingle('q', "quiet", "", "Suppress some messages.");
132
132
__gaa_helpsingle(0, "nodb", "", "Does not use the resume database.");
133
__gaa_helpsingle(0, "noticket", "", "Does not issue session tickets.");
133
134
__gaa_helpsingle(0, "http", "", "Act as an HTTP Server.");
134
135
__gaa_helpsingle(0, "echo", "", "Act as an Echo Server.");
135
136
__gaa_helpsingle(0, "dhparams", "FILE ", "DH params file to use.");
337
340
#define GAAOPTID_dhparams 29
338
341
#define GAAOPTID_echo 30
339
342
#define GAAOPTID_http 31
340
#define GAAOPTID_nodb 32
341
#define GAAOPTID_quiet 33
342
#define GAAOPTID_port 34
343
#define GAAOPTID_generate 35
344
#define GAAOPTID_debug 36
343
#define GAAOPTID_noticket 32
344
#define GAAOPTID_nodb 33
345
#define GAAOPTID_quiet 34
346
#define GAAOPTID_port 35
347
#define GAAOPTID_generate 36
348
#define GAAOPTID_debug 37
346
350
#line 168 "gaa.skel"
508
static char gaa_getchar(char *arg)
512
printf("Option %s: '%s' isn't an character\n", gaa_current_option, arg);
505
518
static char* gaa_getstr(char *arg)
522
static float gaa_getfloat(char *arg)
526
if(sscanf(arg, "%f%c", &tmp, &a) < 1)
528
printf("Option %s: '%s' isn't a float number\n", gaa_current_option, arg);
510
533
/* option structures */
512
535
struct GAAOPTION_priority
723
746
GAA_CHECK1STR("", GAAOPTID_x509fmtder);
724
747
GAA_CHECK1STR("", GAAOPTID_echo);
725
748
GAA_CHECK1STR("", GAAOPTID_http);
749
GAA_CHECK1STR("", GAAOPTID_noticket);
726
750
GAA_CHECK1STR("", GAAOPTID_nodb);
727
751
GAA_CHECK1STR("q", GAAOPTID_quiet);
728
752
GAA_CHECK1STR("g", GAAOPTID_generate);
761
785
GAA_CHECKSTR("dhparams", GAAOPTID_dhparams);
762
786
GAA_CHECKSTR("echo", GAAOPTID_echo);
763
787
GAA_CHECKSTR("http", GAAOPTID_http);
788
GAA_CHECKSTR("noticket", GAAOPTID_noticket);
764
789
GAA_CHECKSTR("nodb", GAAOPTID_nodb);
765
790
GAA_CHECKSTR("quiet", GAAOPTID_quiet);
766
791
GAA_CHECKSTR("port", GAAOPTID_port);
947
972
GAA_TESTMOREARGS;
948
973
GAA_FILL(GAATMP_pskpasswd.arg1, gaa_getstr, GAATMP_pskpasswd.size1);
951
976
{ gaaval->psk_passwd = GAATMP_pskpasswd.arg1 ;};
955
980
case GAAOPTID_disable_client_cert:
958
983
{ gaaval->disable_client_cert = 1 ;};
962
987
case GAAOPTID_require_cert:
965
990
{ gaaval->require_cert = 1 ;};
1148
1180
int gaa(int argc, char **argv, gaainfo *gaaval)
1150
1182
int tmp1, tmp2;
1153
1184
char *opt_list;
1157
1186
GAAargv = argv;
1158
1187
GAAargc = argc;
1160
1189
opt_list = (char*) gaa_malloc(GAA_NB_OPTION + 1);
1162
for(l = 0; l < GAA_NB_OPTION + 1; l++)
1191
for(i = 0; i < GAA_NB_OPTION + 1; i++)
1164
1193
/* initialization */
1165
1194
if(inited == 0)
1168
#line 122 "serv.gaa"
1197
#line 125 "serv.gaa"
1169
1198
{ gaaval->generate=0; gaaval->port=5556; gaaval->http=0; gaaval->ciphers=NULL;
1170
1199
gaaval->kx=NULL; gaaval->comp=NULL; gaaval->macs=NULL; gaaval->ctype=NULL; gaaval->nciphers=0;
1171
gaaval->nkx=0; gaaval->ncomp=0; gaaval->nmacs=0; gaaval->nctype = 0; gaaval->nodb = 0;
1200
gaaval->nkx=0; gaaval->ncomp=0; gaaval->nmacs=0; gaaval->nctype = 0; gaaval->nodb = 0; gaaval->noticket = 0;
1172
1201
gaaval->x509_cafile = NULL; gaaval->pgp_keyfile=NULL; gaaval->pgp_certfile=NULL;
1173
1202
gaaval->x509_keyfile=NULL; gaaval->x509_certfile=NULL; gaaval->x509_crlfile = NULL;
1174
1203
gaaval->x509_dsakeyfile=NULL; gaaval->x509_dsacertfile=NULL;
1187
1216
gaa_arg_used = gaa_malloc(argc * sizeof(char));
1190
for(l = 1; l < argc; l++)
1191
gaa_arg_used[l] = 0;
1192
for(l = 1; l < argc; l++)
1219
for(i = 1; i < argc; i++)
1220
gaa_arg_used[i] = 0;
1221
for(i = 1; i < argc; i++)
1194
if(gaa_arg_used[l] == 0)
1223
if(gaa_arg_used[i] == 0)
1197
tmp1 = gaa_is_an_argument(GAAargv[l]);
1226
tmp1 = gaa_is_an_argument(GAAargv[i]);
1200
1229
case GAA_WORD_OPTION:
1202
1231
case GAA_LETTER_OPTION:
1204
tmp2 = gaa_get_option_num(argv[l]+j, tmp1);
1233
tmp2 = gaa_get_option_num(argv[i]+j, tmp1);
1205
1234
if(tmp2 == GAA_ERROR_NOMATCH)
1207
printf("Invalid option '%s'\n", argv[l]+j);
1236
printf("Invalid option '%s'\n", argv[i]+j);
1210
switch(gaa_try(tmp2, l+1, gaaval, opt_list))
1239
switch(gaa_try(tmp2, i+1, gaaval, opt_list))
1212
1241
case GAA_ERROR_NOTENOUGH_ARGS:
1213
1242
printf("'%s': not enough arguments\n",gaa_current_option);
1221
1250
printf("Unknown error\n");
1223
gaa_arg_used[l] = 1;
1252
gaa_arg_used[i] = 1;
1225
1254
case GAA_MULTIPLE_OPTION:
1226
for(j = 1; j < strlen(argv[l]); j++)
1255
for(j = 1; j < strlen(argv[i]); j++)
1228
tmp2 = gaa_get_option_num(argv[l]+j, tmp1);
1257
tmp2 = gaa_get_option_num(argv[i]+j, tmp1);
1229
1258
if(tmp2 == GAA_ERROR_NOMATCH)
1231
printf("Invalid option '%c'\n", *(argv[l]+j));
1260
printf("Invalid option '%c'\n", *(argv[i]+j));
1234
switch(gaa_try(tmp2, l+1, gaaval, opt_list))
1263
switch(gaa_try(tmp2, i+1, gaaval, opt_list))
1236
1265
case GAA_ERROR_NOTENOUGH_ARGS:
1237
1266
printf("'%s': not enough arguments\n",gaa_current_option);