Generated.
[gnutls.git] / src / certtool-gaa.c
blob9f9c5243f5524659d1f76dc8515a07512d454418
1 /* File generated by GAA 1.6.6
2 */
3 #define GAA_NO_WIN32
4 #line 1 "certtool.gaa"
7 /* C declarations */
9 #include <config.h>
10 #ifdef _WIN32
11 # include <io.h>
12 #endif
14 #include "certtool-common.h"
16 #include <stdio.h>
17 #include <string.h>
18 #include <stdlib.h>
20 #ifndef GAA_NO_WIN32
21 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(WINDOWS)
22 #define GAA_WIN32
23 #endif
24 #endif
26 static void* gaa_malloc( size_t size) {
27 void* ret;
28 ret = malloc(size);
29 if (ret==NULL) {
30 fprintf(stderr, "gaa: could not allocate memory");
31 exit(1);
33 return ret;
36 static void __gaa_helpsingle(char short_name, char *name,
37 char *arg_desc, char *opt_help)
39 int col1, col3, col4, tabsize = 3, curr;
40 int i;
42 col1 = 5; /* Default values */
43 col3 = 30;
44 col4 = 70;
46 curr = 0;
47 for(i = 0; i < col1; i++)
49 printf(" ");
50 curr++;
52 if(short_name)
54 if(name && *name)
56 printf("-%c, ", short_name);
57 curr += 4;
59 else
61 printf("-%c ", short_name);
62 curr += 3;
65 if(name && *name)
67 printf("--%s ", name);
68 curr += 3 + strlen(name);
70 if(arg_desc && *arg_desc)
72 printf("%s ", arg_desc);
73 curr += 1 + strlen(arg_desc);
75 if(curr >= col3)
77 printf("\n");
78 curr = 0;
80 if(opt_help) /* let's print the option's help body */
82 const char *str = opt_help;
83 while(*str)
85 while(curr < col3)
87 printf(" ");
88 curr++;
90 switch(*str)
92 case '\n':
93 printf("\n");
94 curr = 0;
95 break;
96 case '\t':
99 printf(" ");
100 curr++;
102 while((curr - col3) % tabsize != 0 && curr < col4);
103 case ' ':
104 if(*str == ' ')
106 curr++;
107 printf(" ");
109 for(i = 1; str[i] && str[i] != ' ' && str[i] != '\n'
110 && str[i] != '\t'; i++);
111 if(curr + i - 1 >= col4)
112 curr = col4;
113 break;
114 default:
115 printf("%c", *str);
116 curr++;
118 if(curr >= col4)
120 printf("\n");
121 curr = 0;
123 str++;
126 printf("\n");
129 void gaa_help(void)
131 printf("Certtool help\nUsage: certtool [options]\n");
132 __gaa_helpsingle('s', "generate-self-signed", "", "Generate a self-signed certificate.");
133 __gaa_helpsingle('c', "generate-certificate", "", "Generate a signed certificate.");
134 __gaa_helpsingle(0, "generate-proxy", "", "Generate a proxy certificate.");
135 __gaa_helpsingle(0, "generate-crl", "", "Generate a CRL.");
136 __gaa_helpsingle('u', "update-certificate", "", "Update a signed certificate.");
137 __gaa_helpsingle('p', "generate-privkey", "", "Generate a private key.");
138 __gaa_helpsingle('q', "generate-request", "", "Generate a PKCS #10 certificate request.");
139 __gaa_helpsingle('e', "verify-chain", "", "Verify a PEM encoded certificate chain. The last certificate in the chain must be a self signed one.");
140 __gaa_helpsingle(0, "verify-crl", "", "Verify a CRL.");
141 __gaa_helpsingle(0, "generate-dh-params", "", "Generate PKCS #3 encoded Diffie-Hellman parameters.");
142 __gaa_helpsingle(0, "get-dh-params", "", "Get the included PKCS #3 encoded Diffie-Hellman parameters.");
143 __gaa_helpsingle(0, "load-privkey", "FILE ", "Private key file to use.");
144 __gaa_helpsingle(0, "load-request", "FILE ", "Certificate request file to use.");
145 __gaa_helpsingle(0, "load-certificate", "FILE ", "Certificate file to use.");
146 __gaa_helpsingle(0, "load-ca-privkey", "FILE ", "Certificate authority's private key file to use.");
147 __gaa_helpsingle(0, "load-ca-certificate", "FILE ", "Certificate authority's certificate file to use.");
148 __gaa_helpsingle(0, "password", "PASSWORD ", "Password to use.");
149 __gaa_helpsingle('i', "certificate-info", "", "Print information on a certificate.");
150 __gaa_helpsingle(0, "pgp-certificate-info", "", "Print information on a OpenPGP certificate.");
151 __gaa_helpsingle(0, "pgp-ring-info", "", "Print information on a keyring structure.");
152 __gaa_helpsingle('l', "crl-info", "", "Print information on a CRL.");
153 __gaa_helpsingle(0, "crq-info", "", "Print information on a Certificate Request.");
154 __gaa_helpsingle(0, "no-crq-extensions", "", "Do not use extensions in certificate requests.");
155 __gaa_helpsingle(0, "p12-info", "", "Print information on a PKCS #12 structure.");
156 __gaa_helpsingle(0, "p7-info", "", "Print information on a PKCS #7 structure.");
157 __gaa_helpsingle(0, "smime-to-p7", "", "Convert S/MIME to PKCS #7 structure.");
158 __gaa_helpsingle('k', "key-info", "", "Print information on a private key.");
159 __gaa_helpsingle(0, "pgp-key-info", "", "Print information on a OpenPGP private key.");
160 __gaa_helpsingle(0, "fix-key", "", "Regenerate the parameters in a private key.");
161 __gaa_helpsingle(0, "v1", "", "Generate an X.509 version 1 certificate (no extensions).");
162 __gaa_helpsingle(0, "to-p12", "", "Generate a PKCS #12 structure.");
163 __gaa_helpsingle(0, "to-p8", "", "Generate a PKCS #8 key structure.");
164 __gaa_helpsingle('8', "pkcs8", "", "Use PKCS #8 format for private keys.");
165 __gaa_helpsingle(0, "dsa", "", "Use DSA keys.");
166 __gaa_helpsingle(0, "hash", "STR ", "Hash algorithm to use for signing (MD5,SHA1,RMD160,SHA256,SHA384,SHA512).");
167 __gaa_helpsingle(0, "export-ciphers", "", "Use weak encryption algorithms.");
168 __gaa_helpsingle(0, "inder", "", "Use DER format for input certificates and private keys.");
169 __gaa_helpsingle(0, "inraw", "", "Use RAW/DER format for input certificates and private keys.");
170 __gaa_helpsingle(0, "outder", "", "Use DER format for output certificates and private keys.");
171 __gaa_helpsingle(0, "outraw", "", "Use RAW/DER format for output certificates and private keys.");
172 __gaa_helpsingle(0, "bits", "BITS ", "specify the number of bits for key generation.");
173 __gaa_helpsingle(0, "disable-quick-random", "", "Use /dev/random for key generationg, thus increasing the quality of randomness used.");
174 __gaa_helpsingle(0, "outfile", "FILE ", "Output file.");
175 __gaa_helpsingle(0, "infile", "FILE ", "Input file.");
176 __gaa_helpsingle(0, "template", "FILE ", "Template file to use for non interactive operation.");
177 __gaa_helpsingle(0, "pkcs-cipher", "CIPHER ", "Cipher to use for pkcs operations (3des,aes-128,aes-192,aes-256,rc2-40).");
178 __gaa_helpsingle('d', "debug", "LEVEL ", "specify the debug level. Default is 1.");
179 __gaa_helpsingle('h', "help", "", "shows this help text");
180 __gaa_helpsingle('v', "version", "", "shows the program's version");
182 #line 100 "gaa.skel"
184 /* Copy of C area */
186 #line 104 "gaa.skel"
187 /* GAA HEADER */
188 #ifndef GAA_HEADER_POKY
189 #define GAA_HEADER_POKY
191 typedef struct _gaainfo gaainfo;
193 struct _gaainfo
195 #line 131 "certtool.gaa"
196 int debug;
197 #line 127 "certtool.gaa"
198 char *pkcs_cipher;
199 #line 124 "certtool.gaa"
200 char *template;
201 #line 121 "certtool.gaa"
202 char *infile;
203 #line 118 "certtool.gaa"
204 char *outfile;
205 #line 115 "certtool.gaa"
206 int quick_random;
207 #line 112 "certtool.gaa"
208 int bits;
209 #line 108 "certtool.gaa"
210 int outcert_format;
211 #line 104 "certtool.gaa"
212 int incert_format;
213 #line 101 "certtool.gaa"
214 int export;
215 #line 98 "certtool.gaa"
216 char *hash;
217 #line 95 "certtool.gaa"
218 int dsa;
219 #line 92 "certtool.gaa"
220 int pkcs8;
221 #line 85 "certtool.gaa"
222 int v1_cert;
223 #line 82 "certtool.gaa"
224 int fix_key;
225 #line 67 "certtool.gaa"
226 int crq_extensions;
227 #line 54 "certtool.gaa"
228 char *pass;
229 #line 51 "certtool.gaa"
230 char *ca;
231 #line 48 "certtool.gaa"
232 char *ca_privkey;
233 #line 45 "certtool.gaa"
234 char *cert;
235 #line 42 "certtool.gaa"
236 char *request;
237 #line 39 "certtool.gaa"
238 char *privkey;
239 #line 17 "certtool.gaa"
240 int action;
241 #line 16 "certtool.gaa"
242 int privkey_op;
244 #line 114 "gaa.skel"
247 #ifdef __cplusplus
248 extern "C"
250 #endif
252 int gaa(int argc, char *argv[], gaainfo *gaaval);
254 void gaa_help(void);
256 int gaa_file(const char *name, gaainfo *gaaval);
258 #ifdef __cplusplus
260 #endif
263 #endif
265 #line 135 "gaa.skel"
267 /* C declarations */
269 #define GAAERROR(x) \
271 gaa_error = 1; \
272 return x; \
275 static char *gaa_current_option;
276 static int gaa_error = 0;
278 /* Generated by gaa */
280 #include <string.h>
281 #include <stdlib.h>
284 #define GAA_OK -1
286 #define GAA_ERROR_NOMATCH 0
287 #define GAA_ERROR_NOTENOUGH_ARGS 1
288 #define GAA_ERROR_INVALID_ARG 2
289 #define GAA_ERROR_UNKNOWN 3
291 #define GAA_NOT_AN_OPTION 0
292 #define GAA_WORD_OPTION 1
293 #define GAA_LETTER_OPTION 2
294 #define GAA_MULTIPLE_OPTION 3
296 #define GAA_REST 0
297 #define GAA_NB_OPTION 49
298 #define GAAOPTID_version 1
299 #define GAAOPTID_help 2
300 #define GAAOPTID_debug 3
301 #define GAAOPTID_pkcs_cipher 4
302 #define GAAOPTID_template 5
303 #define GAAOPTID_infile 6
304 #define GAAOPTID_outfile 7
305 #define GAAOPTID_disable_quick_random 8
306 #define GAAOPTID_bits 9
307 #define GAAOPTID_outraw 10
308 #define GAAOPTID_outder 11
309 #define GAAOPTID_inraw 12
310 #define GAAOPTID_inder 13
311 #define GAAOPTID_export_ciphers 14
312 #define GAAOPTID_hash 15
313 #define GAAOPTID_dsa 16
314 #define GAAOPTID_pkcs8 17
315 #define GAAOPTID_to_p8 18
316 #define GAAOPTID_to_p12 19
317 #define GAAOPTID_v1 20
318 #define GAAOPTID_fix_key 21
319 #define GAAOPTID_pgp_key_info 22
320 #define GAAOPTID_key_info 23
321 #define GAAOPTID_smime_to_p7 24
322 #define GAAOPTID_p7_info 25
323 #define GAAOPTID_p12_info 26
324 #define GAAOPTID_no_crq_extensions 27
325 #define GAAOPTID_crq_info 28
326 #define GAAOPTID_crl_info 29
327 #define GAAOPTID_pgp_ring_info 30
328 #define GAAOPTID_pgp_certificate_info 31
329 #define GAAOPTID_certificate_info 32
330 #define GAAOPTID_password 33
331 #define GAAOPTID_load_ca_certificate 34
332 #define GAAOPTID_load_ca_privkey 35
333 #define GAAOPTID_load_certificate 36
334 #define GAAOPTID_load_request 37
335 #define GAAOPTID_load_privkey 38
336 #define GAAOPTID_get_dh_params 39
337 #define GAAOPTID_generate_dh_params 40
338 #define GAAOPTID_verify_crl 41
339 #define GAAOPTID_verify_chain 42
340 #define GAAOPTID_generate_request 43
341 #define GAAOPTID_generate_privkey 44
342 #define GAAOPTID_update_certificate 45
343 #define GAAOPTID_generate_crl 46
344 #define GAAOPTID_generate_proxy 47
345 #define GAAOPTID_generate_certificate 48
346 #define GAAOPTID_generate_self_signed 49
348 #line 168 "gaa.skel"
350 #define GAA_CHECK1STR(a,b) \
351 if(a[0] == str[0]) \
353 gaa_current_option = a; \
354 return b; \
357 #define GAA_CHECKSTR(a,b) \
358 if(strcmp(a,str) == 0) \
360 gaa_current_option = a; \
361 return b; \
364 #define GAA_TESTMOREARGS \
365 if(!OK) \
367 while((gaa_last_non_option != gaa_index) && (gaa_arg_used[gaa_index] == 1)) \
368 gaa_index++; \
369 if(gaa_last_non_option == gaa_index) \
370 return GAA_ERROR_NOTENOUGH_ARGS; \
373 #define GAA_TESTMOREOPTIONALARGS \
374 if(!OK) \
376 while((gaa_last_non_option != gaa_index) && (gaa_arg_used[gaa_index] == 1)) \
377 gaa_index++; \
378 if(gaa_last_non_option == gaa_index) \
379 OK = 1; \
382 #define GAA_FILL_2ARGS(target, func) \
383 target = func(GAAargv[gaa_index]); \
384 gaa_arg_used[gaa_index] = 1; \
385 if(gaa_error == 1) \
387 gaa_error = 0; \
388 return GAA_ERROR_INVALID_ARG; \
393 #define GAA_FILL(target, func, num) \
394 if(!OK) \
396 target = func(GAAargv[gaa_index]); \
397 gaa_arg_used[gaa_index] = 1; \
398 if(gaa_error == 1) \
400 gaa_error = 0; \
401 return GAA_ERROR_INVALID_ARG; \
403 num = 1; \
405 else \
407 num = 0; \
410 #define GAA_LIST_FILL(target, func, type ,num) \
411 if(!OK) \
413 num = 0; \
414 target = NULL; \
415 if ( gaa_last_non_option - gaa_index > 0) \
416 target = gaa_malloc((gaa_last_non_option - gaa_index) * sizeof(type));\
417 for(; gaa_index < gaa_last_non_option; gaa_index++) \
419 if(gaa_arg_used[gaa_index] == 0) \
421 GAA_FILL_2ARGS(target[num], func); \
422 num++; \
425 if(num == 0) \
426 return GAA_ERROR_NOTENOUGH_ARGS; \
429 #define GAA_OPTIONALLIST_FILL(target, func, type ,num) \
430 if(!OK) \
432 num = 0; \
433 target = NULL; \
434 if ( gaa_last_non_option - gaa_index > 0) \
435 target = gaa_malloc((gaa_last_non_option - gaa_index) * sizeof(type));\
436 for(; gaa_index < gaa_last_non_option; gaa_index++) \
438 if(gaa_arg_used[gaa_index] == 0) \
440 GAA_FILL_2ARGS(target[num], func); \
441 num++; \
446 #define GAA_OBLIGAT(str) \
447 k = 0; \
448 for(i = 0; i < strlen(str); i++) \
450 j = gaa_get_option_num(str + i, GAA_LETTER_OPTION); \
451 if(j == GAA_ERROR_NOMATCH) \
453 printf("Error: invalid 'obligat' set\n"); \
454 exit(-1); \
456 if(opt_list[j] == 1) \
457 k = 1; \
459 if(k == 0) \
461 if(strlen(str) == 1) \
462 printf("You must give the -%s option\n", str); \
463 else \
464 printf("You must give at least one option of '%s'\n", str); \
465 return 0; \
468 #define GAA_INCOMP(str) \
469 k = 0; \
470 for(i = 0; i < strlen(str); i++) \
472 j = gaa_get_option_num(str + i, GAA_LETTER_OPTION); \
473 if(j == GAA_ERROR_NOMATCH) \
475 printf("Error: invalid 'obligat' set\n"); \
476 exit(-1); \
478 if(opt_list[j] == 1) \
479 k++; \
481 if(k > 1) \
483 printf("The options '%s' are incompatible\n", str); \
484 return 0; \
488 static char **GAAargv;
489 static int GAAargc;
490 static char *gaa_arg_used;
491 static int gaa_processing_file = 0;
492 static int inited = 0;
494 static int gaa_getint(char *arg)
496 int tmp;
497 char a;
498 if(sscanf(arg, "%d%c", &tmp, &a) < 1)
500 printf("Option %s: '%s' isn't an integer\n", gaa_current_option, arg);
501 GAAERROR(-1);
503 return tmp;
506 static char gaa_getchar(char *arg)
508 if(strlen(arg) != 1)
510 printf("Option %s: '%s' isn't an character\n", gaa_current_option, arg);
511 GAAERROR(-1);
513 return arg[0];
516 static char* gaa_getstr(char *arg)
518 return arg;
520 static float gaa_getfloat(char *arg)
522 float tmp;
523 char a;
524 if(sscanf(arg, "%f%c", &tmp, &a) < 1)
526 printf("Option %s: '%s' isn't a float number\n", gaa_current_option, arg);
527 GAAERROR(-1);
529 return tmp;
531 /* option structures */
533 struct GAAOPTION_debug
535 int arg1;
536 int size1;
539 struct GAAOPTION_pkcs_cipher
541 char* arg1;
542 int size1;
545 struct GAAOPTION_template
547 char* arg1;
548 int size1;
551 struct GAAOPTION_infile
553 char* arg1;
554 int size1;
557 struct GAAOPTION_outfile
559 char* arg1;
560 int size1;
563 struct GAAOPTION_bits
565 int arg1;
566 int size1;
569 struct GAAOPTION_hash
571 char* arg1;
572 int size1;
575 struct GAAOPTION_password
577 char* arg1;
578 int size1;
581 struct GAAOPTION_load_ca_certificate
583 char* arg1;
584 int size1;
587 struct GAAOPTION_load_ca_privkey
589 char* arg1;
590 int size1;
593 struct GAAOPTION_load_certificate
595 char* arg1;
596 int size1;
599 struct GAAOPTION_load_request
601 char* arg1;
602 int size1;
605 struct GAAOPTION_load_privkey
607 char* arg1;
608 int size1;
611 #line 349 "gaa.skel"
612 static int gaa_is_an_argument(char *str)
614 #ifdef GAA_WIN32
615 if(str[0] == '/' && str[1] != 0)
616 return GAA_MULTIPLE_OPTION;
617 #endif
618 if(str[0] != '-')
619 return GAA_NOT_AN_OPTION;
620 if(str[1] == 0)
621 return GAA_NOT_AN_OPTION;
622 if(str[1] == '-')
624 if(str[2] != 0)
625 return GAA_WORD_OPTION;
626 else
627 return GAA_NOT_AN_OPTION;
629 if(str[2] == 0)
630 return GAA_LETTER_OPTION;
631 else
632 return GAA_MULTIPLE_OPTION;
635 static int gaa_get_option_num(char *str, int status)
637 switch(status)
639 case GAA_LETTER_OPTION:
640 GAA_CHECK1STR("d", GAAOPTID_debug);
641 GAA_CHECK1STR("", GAAOPTID_pkcs_cipher);
642 GAA_CHECK1STR("", GAAOPTID_template);
643 GAA_CHECK1STR("", GAAOPTID_infile);
644 GAA_CHECK1STR("", GAAOPTID_outfile);
645 GAA_CHECK1STR("", GAAOPTID_bits);
646 GAA_CHECK1STR("", GAAOPTID_hash);
647 GAA_CHECK1STR("", GAAOPTID_password);
648 GAA_CHECK1STR("", GAAOPTID_load_ca_certificate);
649 GAA_CHECK1STR("", GAAOPTID_load_ca_privkey);
650 GAA_CHECK1STR("", GAAOPTID_load_certificate);
651 GAA_CHECK1STR("", GAAOPTID_load_request);
652 GAA_CHECK1STR("", GAAOPTID_load_privkey);
653 case GAA_MULTIPLE_OPTION:
654 #line 375 "gaa.skel"
655 GAA_CHECK1STR("v", GAAOPTID_version);
656 GAA_CHECK1STR("h", GAAOPTID_help);
657 GAA_CHECK1STR("", GAAOPTID_disable_quick_random);
658 GAA_CHECK1STR("", GAAOPTID_outraw);
659 GAA_CHECK1STR("", GAAOPTID_outder);
660 GAA_CHECK1STR("", GAAOPTID_inraw);
661 GAA_CHECK1STR("", GAAOPTID_inder);
662 GAA_CHECK1STR("", GAAOPTID_export_ciphers);
663 GAA_CHECK1STR("", GAAOPTID_dsa);
664 GAA_CHECK1STR("8", GAAOPTID_pkcs8);
665 GAA_CHECK1STR("", GAAOPTID_to_p8);
666 GAA_CHECK1STR("", GAAOPTID_to_p12);
667 GAA_CHECK1STR("", GAAOPTID_v1);
668 GAA_CHECK1STR("", GAAOPTID_fix_key);
669 GAA_CHECK1STR("", GAAOPTID_pgp_key_info);
670 GAA_CHECK1STR("k", GAAOPTID_key_info);
671 GAA_CHECK1STR("", GAAOPTID_smime_to_p7);
672 GAA_CHECK1STR("", GAAOPTID_p7_info);
673 GAA_CHECK1STR("", GAAOPTID_p12_info);
674 GAA_CHECK1STR("", GAAOPTID_no_crq_extensions);
675 GAA_CHECK1STR("", GAAOPTID_crq_info);
676 GAA_CHECK1STR("l", GAAOPTID_crl_info);
677 GAA_CHECK1STR("", GAAOPTID_pgp_ring_info);
678 GAA_CHECK1STR("", GAAOPTID_pgp_certificate_info);
679 GAA_CHECK1STR("i", GAAOPTID_certificate_info);
680 GAA_CHECK1STR("", GAAOPTID_get_dh_params);
681 GAA_CHECK1STR("", GAAOPTID_generate_dh_params);
682 GAA_CHECK1STR("", GAAOPTID_verify_crl);
683 GAA_CHECK1STR("e", GAAOPTID_verify_chain);
684 GAA_CHECK1STR("q", GAAOPTID_generate_request);
685 GAA_CHECK1STR("p", GAAOPTID_generate_privkey);
686 GAA_CHECK1STR("u", GAAOPTID_update_certificate);
687 GAA_CHECK1STR("", GAAOPTID_generate_crl);
688 GAA_CHECK1STR("", GAAOPTID_generate_proxy);
689 GAA_CHECK1STR("c", GAAOPTID_generate_certificate);
690 GAA_CHECK1STR("s", GAAOPTID_generate_self_signed);
692 #line 277 "gaa.skel"
693 break;
694 case GAA_WORD_OPTION:
695 GAA_CHECKSTR("version", GAAOPTID_version);
696 GAA_CHECKSTR("help", GAAOPTID_help);
697 GAA_CHECKSTR("debug", GAAOPTID_debug);
698 GAA_CHECKSTR("pkcs-cipher", GAAOPTID_pkcs_cipher);
699 GAA_CHECKSTR("template", GAAOPTID_template);
700 GAA_CHECKSTR("infile", GAAOPTID_infile);
701 GAA_CHECKSTR("outfile", GAAOPTID_outfile);
702 GAA_CHECKSTR("disable-quick-random", GAAOPTID_disable_quick_random);
703 GAA_CHECKSTR("bits", GAAOPTID_bits);
704 GAA_CHECKSTR("outraw", GAAOPTID_outraw);
705 GAA_CHECKSTR("outder", GAAOPTID_outder);
706 GAA_CHECKSTR("inraw", GAAOPTID_inraw);
707 GAA_CHECKSTR("inder", GAAOPTID_inder);
708 GAA_CHECKSTR("export-ciphers", GAAOPTID_export_ciphers);
709 GAA_CHECKSTR("hash", GAAOPTID_hash);
710 GAA_CHECKSTR("dsa", GAAOPTID_dsa);
711 GAA_CHECKSTR("pkcs8", GAAOPTID_pkcs8);
712 GAA_CHECKSTR("to-p8", GAAOPTID_to_p8);
713 GAA_CHECKSTR("to-p12", GAAOPTID_to_p12);
714 GAA_CHECKSTR("v1", GAAOPTID_v1);
715 GAA_CHECKSTR("fix-key", GAAOPTID_fix_key);
716 GAA_CHECKSTR("pgp-key-info", GAAOPTID_pgp_key_info);
717 GAA_CHECKSTR("key-info", GAAOPTID_key_info);
718 GAA_CHECKSTR("smime-to-p7", GAAOPTID_smime_to_p7);
719 GAA_CHECKSTR("p7-info", GAAOPTID_p7_info);
720 GAA_CHECKSTR("p12-info", GAAOPTID_p12_info);
721 GAA_CHECKSTR("no-crq-extensions", GAAOPTID_no_crq_extensions);
722 GAA_CHECKSTR("crq-info", GAAOPTID_crq_info);
723 GAA_CHECKSTR("crl-info", GAAOPTID_crl_info);
724 GAA_CHECKSTR("pgp-ring-info", GAAOPTID_pgp_ring_info);
725 GAA_CHECKSTR("pgp-certificate-info", GAAOPTID_pgp_certificate_info);
726 GAA_CHECKSTR("certificate-info", GAAOPTID_certificate_info);
727 GAA_CHECKSTR("password", GAAOPTID_password);
728 GAA_CHECKSTR("load-ca-certificate", GAAOPTID_load_ca_certificate);
729 GAA_CHECKSTR("load-ca-privkey", GAAOPTID_load_ca_privkey);
730 GAA_CHECKSTR("load-certificate", GAAOPTID_load_certificate);
731 GAA_CHECKSTR("load-request", GAAOPTID_load_request);
732 GAA_CHECKSTR("load-privkey", GAAOPTID_load_privkey);
733 GAA_CHECKSTR("get-dh-params", GAAOPTID_get_dh_params);
734 GAA_CHECKSTR("generate-dh-params", GAAOPTID_generate_dh_params);
735 GAA_CHECKSTR("verify-crl", GAAOPTID_verify_crl);
736 GAA_CHECKSTR("verify-chain", GAAOPTID_verify_chain);
737 GAA_CHECKSTR("generate-request", GAAOPTID_generate_request);
738 GAA_CHECKSTR("generate-privkey", GAAOPTID_generate_privkey);
739 GAA_CHECKSTR("update-certificate", GAAOPTID_update_certificate);
740 GAA_CHECKSTR("generate-crl", GAAOPTID_generate_crl);
741 GAA_CHECKSTR("generate-proxy", GAAOPTID_generate_proxy);
742 GAA_CHECKSTR("generate-certificate", GAAOPTID_generate_certificate);
743 GAA_CHECKSTR("generate-self-signed", GAAOPTID_generate_self_signed);
745 #line 281 "gaa.skel"
746 break;
747 default: break;
749 return GAA_ERROR_NOMATCH;
752 static int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list)
754 int OK = 0;
755 int gaa_last_non_option;
756 struct GAAOPTION_debug GAATMP_debug;
757 struct GAAOPTION_pkcs_cipher GAATMP_pkcs_cipher;
758 struct GAAOPTION_template GAATMP_template;
759 struct GAAOPTION_infile GAATMP_infile;
760 struct GAAOPTION_outfile GAATMP_outfile;
761 struct GAAOPTION_bits GAATMP_bits;
762 struct GAAOPTION_hash GAATMP_hash;
763 struct GAAOPTION_password GAATMP_password;
764 struct GAAOPTION_load_ca_certificate GAATMP_load_ca_certificate;
765 struct GAAOPTION_load_ca_privkey GAATMP_load_ca_privkey;
766 struct GAAOPTION_load_certificate GAATMP_load_certificate;
767 struct GAAOPTION_load_request GAATMP_load_request;
768 struct GAAOPTION_load_privkey GAATMP_load_privkey;
770 #line 393 "gaa.skel"
771 #ifdef GAA_REST_EXISTS
772 struct GAAREST GAAREST_tmp;
773 #endif
775 opt_list[gaa_num] = 1;
777 for(gaa_last_non_option = gaa_index;
778 (gaa_last_non_option != GAAargc) && (gaa_is_an_argument(GAAargv[gaa_last_non_option]) == GAA_NOT_AN_OPTION);
779 gaa_last_non_option++);
781 if(gaa_num == GAA_REST)
783 gaa_index = 1;
784 gaa_last_non_option = GAAargc;
787 switch(gaa_num)
789 case GAAOPTID_version:
790 OK = 0;
791 #line 136 "certtool.gaa"
792 { certtool_version(); exit(0); ;};
794 return GAA_OK;
795 break;
796 case GAAOPTID_help:
797 OK = 0;
798 #line 134 "certtool.gaa"
799 { gaa_help(); exit(0); ;};
801 return GAA_OK;
802 break;
803 case GAAOPTID_debug:
804 OK = 0;
805 GAA_TESTMOREARGS;
806 GAA_FILL(GAATMP_debug.arg1, gaa_getint, GAATMP_debug.size1);
807 gaa_index++;
808 #line 132 "certtool.gaa"
809 { gaaval->debug = GAATMP_debug.arg1 ;};
811 return GAA_OK;
812 break;
813 case GAAOPTID_pkcs_cipher:
814 OK = 0;
815 GAA_TESTMOREARGS;
816 GAA_FILL(GAATMP_pkcs_cipher.arg1, gaa_getstr, GAATMP_pkcs_cipher.size1);
817 gaa_index++;
818 #line 128 "certtool.gaa"
819 { gaaval->pkcs_cipher = GAATMP_pkcs_cipher.arg1 ;};
821 return GAA_OK;
822 break;
823 case GAAOPTID_template:
824 OK = 0;
825 GAA_TESTMOREARGS;
826 GAA_FILL(GAATMP_template.arg1, gaa_getstr, GAATMP_template.size1);
827 gaa_index++;
828 #line 125 "certtool.gaa"
829 { gaaval->template = GAATMP_template.arg1 ;};
831 return GAA_OK;
832 break;
833 case GAAOPTID_infile:
834 OK = 0;
835 GAA_TESTMOREARGS;
836 GAA_FILL(GAATMP_infile.arg1, gaa_getstr, GAATMP_infile.size1);
837 gaa_index++;
838 #line 122 "certtool.gaa"
839 { gaaval->infile = GAATMP_infile.arg1 ;};
841 return GAA_OK;
842 break;
843 case GAAOPTID_outfile:
844 OK = 0;
845 GAA_TESTMOREARGS;
846 GAA_FILL(GAATMP_outfile.arg1, gaa_getstr, GAATMP_outfile.size1);
847 gaa_index++;
848 #line 119 "certtool.gaa"
849 { gaaval->outfile = GAATMP_outfile.arg1 ;};
851 return GAA_OK;
852 break;
853 case GAAOPTID_disable_quick_random:
854 OK = 0;
855 #line 116 "certtool.gaa"
856 { gaaval->quick_random = 0; ;};
858 return GAA_OK;
859 break;
860 case GAAOPTID_bits:
861 OK = 0;
862 GAA_TESTMOREARGS;
863 GAA_FILL(GAATMP_bits.arg1, gaa_getint, GAATMP_bits.size1);
864 gaa_index++;
865 #line 113 "certtool.gaa"
866 { gaaval->bits = GAATMP_bits.arg1 ;};
868 return GAA_OK;
869 break;
870 case GAAOPTID_outraw:
871 OK = 0;
872 #line 110 "certtool.gaa"
873 { gaaval->outcert_format=1 ;};
875 return GAA_OK;
876 break;
877 case GAAOPTID_outder:
878 OK = 0;
879 #line 109 "certtool.gaa"
880 { gaaval->outcert_format=1 ;};
882 return GAA_OK;
883 break;
884 case GAAOPTID_inraw:
885 OK = 0;
886 #line 106 "certtool.gaa"
887 { gaaval->incert_format=1 ;};
889 return GAA_OK;
890 break;
891 case GAAOPTID_inder:
892 OK = 0;
893 #line 105 "certtool.gaa"
894 { gaaval->incert_format=1 ;};
896 return GAA_OK;
897 break;
898 case GAAOPTID_export_ciphers:
899 OK = 0;
900 #line 102 "certtool.gaa"
901 { gaaval->export=1 ;};
903 return GAA_OK;
904 break;
905 case GAAOPTID_hash:
906 OK = 0;
907 GAA_TESTMOREARGS;
908 GAA_FILL(GAATMP_hash.arg1, gaa_getstr, GAATMP_hash.size1);
909 gaa_index++;
910 #line 99 "certtool.gaa"
911 { gaaval->hash = GAATMP_hash.arg1 ;};
913 return GAA_OK;
914 break;
915 case GAAOPTID_dsa:
916 OK = 0;
917 #line 96 "certtool.gaa"
918 { gaaval->dsa=1 ;};
920 return GAA_OK;
921 break;
922 case GAAOPTID_pkcs8:
923 OK = 0;
924 #line 93 "certtool.gaa"
925 { gaaval->pkcs8=1 ;};
927 return GAA_OK;
928 break;
929 case GAAOPTID_to_p8:
930 OK = 0;
931 #line 90 "certtool.gaa"
932 { gaaval->action = ACTION_GENERATE_PKCS8; ;};
934 return GAA_OK;
935 break;
936 case GAAOPTID_to_p12:
937 OK = 0;
938 #line 88 "certtool.gaa"
939 { gaaval->action = ACTION_TO_PKCS12; ;};
941 return GAA_OK;
942 break;
943 case GAAOPTID_v1:
944 OK = 0;
945 #line 86 "certtool.gaa"
946 { gaaval->v1_cert = 1; ;};
948 return GAA_OK;
949 break;
950 case GAAOPTID_fix_key:
951 OK = 0;
952 #line 83 "certtool.gaa"
953 { gaaval->privkey_op=1; gaaval->fix_key = 1; ;};
955 return GAA_OK;
956 break;
957 case GAAOPTID_pgp_key_info:
958 OK = 0;
959 #line 80 "certtool.gaa"
960 { gaaval->privkey_op=1; gaaval->action = ACTION_PGP_PRIVKEY_INFO; ;};
962 return GAA_OK;
963 break;
964 case GAAOPTID_key_info:
965 OK = 0;
966 #line 78 "certtool.gaa"
967 { gaaval->privkey_op=1; gaaval->action = ACTION_PRIVKEY_INFO; ;};
969 return GAA_OK;
970 break;
971 case GAAOPTID_smime_to_p7:
972 OK = 0;
973 #line 74 "certtool.gaa"
974 { gaaval->action = ACTION_SMIME_TO_P7; ;};
976 return GAA_OK;
977 break;
978 case GAAOPTID_p7_info:
979 OK = 0;
980 #line 72 "certtool.gaa"
981 { gaaval->action = ACTION_P7_INFO; ;};
983 return GAA_OK;
984 break;
985 case GAAOPTID_p12_info:
986 OK = 0;
987 #line 70 "certtool.gaa"
988 { gaaval->action = ACTION_PKCS12_INFO; ;};
990 return GAA_OK;
991 break;
992 case GAAOPTID_no_crq_extensions:
993 OK = 0;
994 #line 68 "certtool.gaa"
995 { gaaval->crq_extensions = 0; ;};
997 return GAA_OK;
998 break;
999 case GAAOPTID_crq_info:
1000 OK = 0;
1001 #line 65 "certtool.gaa"
1002 { gaaval->action = ACTION_REQUEST; ;};
1004 return GAA_OK;
1005 break;
1006 case GAAOPTID_crl_info:
1007 OK = 0;
1008 #line 63 "certtool.gaa"
1009 { gaaval->action = ACTION_CRL_INFO; ;};
1011 return GAA_OK;
1012 break;
1013 case GAAOPTID_pgp_ring_info:
1014 OK = 0;
1015 #line 61 "certtool.gaa"
1016 { gaaval->action = ACTION_RING_INFO; ;};
1018 return GAA_OK;
1019 break;
1020 case GAAOPTID_pgp_certificate_info:
1021 OK = 0;
1022 #line 59 "certtool.gaa"
1023 { gaaval->action = ACTION_PGP_INFO; ;};
1025 return GAA_OK;
1026 break;
1027 case GAAOPTID_certificate_info:
1028 OK = 0;
1029 #line 57 "certtool.gaa"
1030 { gaaval->action = ACTION_CERT_INFO; ;};
1032 return GAA_OK;
1033 break;
1034 case GAAOPTID_password:
1035 OK = 0;
1036 GAA_TESTMOREARGS;
1037 GAA_FILL(GAATMP_password.arg1, gaa_getstr, GAATMP_password.size1);
1038 gaa_index++;
1039 #line 55 "certtool.gaa"
1040 { gaaval->pass = GAATMP_password.arg1 ;};
1042 return GAA_OK;
1043 break;
1044 case GAAOPTID_load_ca_certificate:
1045 OK = 0;
1046 GAA_TESTMOREARGS;
1047 GAA_FILL(GAATMP_load_ca_certificate.arg1, gaa_getstr, GAATMP_load_ca_certificate.size1);
1048 gaa_index++;
1049 #line 52 "certtool.gaa"
1050 { gaaval->ca = GAATMP_load_ca_certificate.arg1 ;};
1052 return GAA_OK;
1053 break;
1054 case GAAOPTID_load_ca_privkey:
1055 OK = 0;
1056 GAA_TESTMOREARGS;
1057 GAA_FILL(GAATMP_load_ca_privkey.arg1, gaa_getstr, GAATMP_load_ca_privkey.size1);
1058 gaa_index++;
1059 #line 49 "certtool.gaa"
1060 { gaaval->ca_privkey = GAATMP_load_ca_privkey.arg1 ;};
1062 return GAA_OK;
1063 break;
1064 case GAAOPTID_load_certificate:
1065 OK = 0;
1066 GAA_TESTMOREARGS;
1067 GAA_FILL(GAATMP_load_certificate.arg1, gaa_getstr, GAATMP_load_certificate.size1);
1068 gaa_index++;
1069 #line 46 "certtool.gaa"
1070 { gaaval->cert = GAATMP_load_certificate.arg1 ;};
1072 return GAA_OK;
1073 break;
1074 case GAAOPTID_load_request:
1075 OK = 0;
1076 GAA_TESTMOREARGS;
1077 GAA_FILL(GAATMP_load_request.arg1, gaa_getstr, GAATMP_load_request.size1);
1078 gaa_index++;
1079 #line 43 "certtool.gaa"
1080 { gaaval->request = GAATMP_load_request.arg1 ;};
1082 return GAA_OK;
1083 break;
1084 case GAAOPTID_load_privkey:
1085 OK = 0;
1086 GAA_TESTMOREARGS;
1087 GAA_FILL(GAATMP_load_privkey.arg1, gaa_getstr, GAATMP_load_privkey.size1);
1088 gaa_index++;
1089 #line 40 "certtool.gaa"
1090 { gaaval->privkey = GAATMP_load_privkey.arg1 ;};
1092 return GAA_OK;
1093 break;
1094 case GAAOPTID_get_dh_params:
1095 OK = 0;
1096 #line 37 "certtool.gaa"
1097 { gaaval->action=ACTION_GET_DH; ;};
1099 return GAA_OK;
1100 break;
1101 case GAAOPTID_generate_dh_params:
1102 OK = 0;
1103 #line 36 "certtool.gaa"
1104 { gaaval->action=ACTION_GENERATE_DH; ;};
1106 return GAA_OK;
1107 break;
1108 case GAAOPTID_verify_crl:
1109 OK = 0;
1110 #line 34 "certtool.gaa"
1111 { gaaval->action=ACTION_VERIFY_CRL; ;};
1113 return GAA_OK;
1114 break;
1115 case GAAOPTID_verify_chain:
1116 OK = 0;
1117 #line 32 "certtool.gaa"
1118 { gaaval->action=ACTION_VERIFY_CHAIN; ;};
1120 return GAA_OK;
1121 break;
1122 case GAAOPTID_generate_request:
1123 OK = 0;
1124 #line 30 "certtool.gaa"
1125 { gaaval->action=ACTION_GENERATE_REQUEST; ;};
1127 return GAA_OK;
1128 break;
1129 case GAAOPTID_generate_privkey:
1130 OK = 0;
1131 #line 28 "certtool.gaa"
1132 { gaaval->privkey_op=1; gaaval->action=ACTION_GENERATE_PRIVKEY; ;};
1134 return GAA_OK;
1135 break;
1136 case GAAOPTID_update_certificate:
1137 OK = 0;
1138 #line 26 "certtool.gaa"
1139 { gaaval->action=ACTION_UPDATE_CERTIFICATE; ;};
1141 return GAA_OK;
1142 break;
1143 case GAAOPTID_generate_crl:
1144 OK = 0;
1145 #line 24 "certtool.gaa"
1146 { gaaval->action=ACTION_GENERATE_CRL; ;};
1148 return GAA_OK;
1149 break;
1150 case GAAOPTID_generate_proxy:
1151 OK = 0;
1152 #line 22 "certtool.gaa"
1153 { gaaval->action=ACTION_GENERATE_PROXY; ;};
1155 return GAA_OK;
1156 break;
1157 case GAAOPTID_generate_certificate:
1158 OK = 0;
1159 #line 20 "certtool.gaa"
1160 { gaaval->action=ACTION_GENERATE_CERTIFICATE; ;};
1162 return GAA_OK;
1163 break;
1164 case GAAOPTID_generate_self_signed:
1165 OK = 0;
1166 #line 18 "certtool.gaa"
1167 { gaaval->action=ACTION_SELF_SIGNED; ;};
1169 return GAA_OK;
1170 break;
1172 #line 413 "gaa.skel"
1173 default: break;
1175 return GAA_ERROR_UNKNOWN;
1178 int gaa(int argc, char **argv, gaainfo *gaaval)
1180 int tmp1, tmp2;
1181 int i, j;
1182 char *opt_list;
1184 GAAargv = argv;
1185 GAAargc = argc;
1187 opt_list = (char*) gaa_malloc(GAA_NB_OPTION + 1);
1189 for(i = 0; i < GAA_NB_OPTION + 1; i++)
1190 opt_list[i] = 0;
1191 /* initialization */
1192 if(inited == 0)
1195 #line 138 "certtool.gaa"
1196 { gaaval->bits = 2048; gaaval->pkcs8 = 0; gaaval->privkey = NULL; gaaval->ca=NULL; gaaval->ca_privkey = NULL;
1197 gaaval->debug=1; gaaval->request = NULL; gaaval->infile = NULL; gaaval->outfile = NULL; gaaval->cert = NULL;
1198 gaaval->incert_format = 0; gaaval->outcert_format = 0; gaaval->action=-1; gaaval->pass = NULL; gaaval->v1_cert = 0;
1199 gaaval->export = 0; gaaval->template = NULL; gaaval->hash=NULL; gaaval->fix_key = 0; gaaval->quick_random=1;
1200 gaaval->privkey_op = 0; gaaval->pkcs_cipher = "3des"; gaaval->crq_extensions=1; ;};
1203 inited = 1;
1204 #line 438 "gaa.skel"
1205 gaa_arg_used = NULL;
1207 if (argc > 0) {
1208 gaa_arg_used = gaa_malloc(argc * sizeof(char));
1211 for(i = 1; i < argc; i++)
1212 gaa_arg_used[i] = 0;
1213 for(i = 1; i < argc; i++)
1215 if(gaa_arg_used[i] == 0)
1217 j = 0;
1218 tmp1 = gaa_is_an_argument(GAAargv[i]);
1219 switch(tmp1)
1221 case GAA_WORD_OPTION:
1222 j++;
1223 case GAA_LETTER_OPTION:
1224 j++;
1225 tmp2 = gaa_get_option_num(argv[i]+j, tmp1);
1226 if(tmp2 == GAA_ERROR_NOMATCH)
1228 printf("Invalid option '%s'\n", argv[i]+j);
1229 return 0;
1231 switch(gaa_try(tmp2, i+1, gaaval, opt_list))
1233 case GAA_ERROR_NOTENOUGH_ARGS:
1234 printf("'%s': not enough arguments\n",gaa_current_option);
1235 return 0;
1236 case GAA_ERROR_INVALID_ARG:
1237 printf("Invalid arguments\n");
1238 return 0;
1239 case GAA_OK:
1240 break;
1241 default:
1242 printf("Unknown error\n");
1244 gaa_arg_used[i] = 1;
1245 break;
1246 case GAA_MULTIPLE_OPTION:
1247 for(j = 1; j < strlen(argv[i]); j++)
1249 tmp2 = gaa_get_option_num(argv[i]+j, tmp1);
1250 if(tmp2 == GAA_ERROR_NOMATCH)
1252 printf("Invalid option '%c'\n", *(argv[i]+j));
1253 return 0;
1255 switch(gaa_try(tmp2, i+1, gaaval, opt_list))
1257 case GAA_ERROR_NOTENOUGH_ARGS:
1258 printf("'%s': not enough arguments\n",gaa_current_option);
1259 return 0;
1260 case GAA_ERROR_INVALID_ARG:
1261 printf("Invalid arguments\n");
1262 return 0;
1263 case GAA_OK:
1264 break;
1265 default:
1266 printf("Unknown error\n");
1269 gaa_arg_used[i] = 1;
1270 break;
1271 default: break;
1275 if(gaa_processing_file == 0)
1278 #line 507 "gaa.skel"
1279 #ifdef GAA_REST_EXISTS
1280 switch(gaa_try(GAA_REST, 1, gaaval, opt_list))
1282 case GAA_ERROR_NOTENOUGH_ARGS:
1283 printf("Rest: not enough arguments\n");
1284 return 0;
1285 case GAA_ERROR_INVALID_ARG:
1286 printf("Invalid arguments\n");
1287 return 0;
1288 case GAA_OK:
1289 break;
1290 default:
1291 printf("Unknown error\n");
1293 #endif
1295 for(i = 1; i < argc; i++)
1297 if(gaa_arg_used[i] == 0)
1299 printf("Too many arguments\n");
1300 return 0;
1303 free(gaa_arg_used);
1304 free(opt_list);
1305 return -1;
1308 struct gaastrnode
1310 char *str;
1311 struct gaastrnode *next;
1314 typedef struct gaastrnode gaa_str_node;
1316 static int gaa_internal_get_next_str(FILE *file, gaa_str_node *tmp_str, int argc)
1318 int pos_ini;
1319 int a;
1320 int i = 0, len = 0, newline = 0;
1322 if(argc == 1) {
1323 newline = 1;
1324 len = 2;
1327 a = fgetc( file);
1328 if (a == EOF) return 0;
1330 while(a == ' ' || a == 9 || a == '\n')
1332 if(a == '\n')
1334 newline=1;
1335 len = 2;
1337 a = fgetc( file);
1338 if (a == EOF) return 0;
1341 pos_ini = ftell(file) - 1;
1343 while(a != ' ' && a != 9 && a != '\n')
1346 len++;
1347 a = fgetc( file);
1348 if(a==EOF) return 0; //a = ' ';
1351 len += 1;
1352 tmp_str->str = gaa_malloc((len) * sizeof(char));
1354 if(newline == 1)
1356 tmp_str->str[0] = '-';
1357 tmp_str->str[1] = '-';
1358 i = 2;
1360 else
1362 i = 0;
1365 fseek(file,pos_ini, SEEK_SET);
1368 a = fgetc( file);
1370 if (a == EOF) {
1371 i+=2;
1372 break;
1374 tmp_str->str[i] = a;
1375 i++;
1377 while(a != ' ' && a != 9 && a != '\n' && i < len);
1379 tmp_str->str[i - 1] = 0;
1381 fseek(file,- 1, SEEK_CUR);
1382 /* printf("%d\n", ftell(file)); */
1384 return -1;
1387 int gaa_file(const char *name, gaainfo *gaaval)
1389 gaa_str_node *first_str, **tmp_str, *tmp_str2;
1390 int rval, i;
1391 char **argv;
1392 int argc = 0;
1393 FILE *file;
1395 gaa_processing_file = 1;
1397 if((file = fopen(name, "r")) == NULL)
1399 printf("Couldn't open '%s' configuration file for reading\n", name);
1400 return 1;
1403 tmp_str = &first_str;
1406 argc++;
1407 *tmp_str = gaa_malloc(sizeof(gaa_str_node));
1409 (*tmp_str)->str = NULL;
1410 (*tmp_str)->next = NULL;
1412 rval = gaa_internal_get_next_str(file, *tmp_str, argc);
1413 tmp_str = &((*tmp_str)->next);
1415 while(rval == -1);
1417 if(rval == 1)
1418 return 0;
1420 argv = gaa_malloc((1 + argc) * sizeof(char*));
1422 tmp_str2 = first_str;
1423 argv[0] = "cfg";
1424 for(i = 1; i < argc; i++)
1426 argv[i] = tmp_str2->str;
1427 tmp_str2 = tmp_str2->next;
1430 rval = gaa(argc, argv, gaaval);
1431 gaa_processing_file = 0;
1432 return rval;