diff options
Diffstat (limited to 'src/certtool-gaa.c')
-rw-r--r-- | src/certtool-gaa.c | 189 |
1 files changed, 120 insertions, 69 deletions
diff --git a/src/certtool-gaa.c b/src/certtool-gaa.c index 707ee10ed0..fac7e054ef 100644 --- a/src/certtool-gaa.c +++ b/src/certtool-gaa.c @@ -1,4 +1,4 @@ -/* File generated by GAA 1.6.2 +/* File generated by GAA 1.6.5 */ #define GAA_NO_WIN32 #line 1 "certtool.gaa" @@ -132,10 +132,12 @@ void gaa_help(void) printf("Certtool help\nUsage: certtool [options]\n"); __gaa_helpsingle('s', "generate-self-signed", "", "Generate a self-signed certificate."); __gaa_helpsingle('c', "generate-certificate", "", "Generate a signed certificate."); + __gaa_helpsingle(0, "generate-crl", "", "Generate a CRL."); __gaa_helpsingle('u', "update-certificate", "", "Update a signed certificate."); __gaa_helpsingle('p', "generate-privkey", "", "Generate a private key."); __gaa_helpsingle('q', "generate-request", "", "Generate a PKCS #10 certificate request."); __gaa_helpsingle('e', "verify-chain", "", "Verify a PEM encoded certificate chain. The last certificate in the chain must be a self signed one."); + __gaa_helpsingle(0, "verify-crl", "", "Verify a CRL."); __gaa_helpsingle(0, "generate-dh-params", "", "Generate PKCS #3 encoded Diffie Hellman parameters."); __gaa_helpsingle(0, "load-privkey", "FILE ", "Private key file to use."); __gaa_helpsingle(0, "load-request", "FILE ", "Certificate request file to use."); @@ -146,9 +148,11 @@ void gaa_help(void) __gaa_helpsingle('i', "certificate-info", "", "Print information on a certificate."); __gaa_helpsingle('l', "crl-info", "", "Print information on a CRL."); __gaa_helpsingle(0, "p12-info", "", "Print information on a PKCS #12 structure."); + __gaa_helpsingle(0, "p7-info", "", "Print information on a PKCS #7 structure."); __gaa_helpsingle('k', "key-info", "", "Print information on a private key."); __gaa_helpsingle(0, "to-p12", "", "Generate a PKCS #12 structure."); __gaa_helpsingle('8', "pkcs8", "", "Use PKCS #8 format for private keys."); + __gaa_helpsingle(0, "dsa", "", "Use DSA keys."); __gaa_helpsingle(0, "export-ciphers", "", "Use weak encryption algorithms."); __gaa_helpsingle(0, "inder", "", "Use DER format for input certificates and private keys."); __gaa_helpsingle(0, "outder", "", "Use DER format for output certificates and private keys."); @@ -173,33 +177,35 @@ typedef struct _gaainfo gaainfo; struct _gaainfo { -#line 81 "certtool.gaa" +#line 90 "certtool.gaa" int debug; -#line 78 "certtool.gaa" +#line 87 "certtool.gaa" char *infile; -#line 75 "certtool.gaa" +#line 84 "certtool.gaa" char *outfile; -#line 72 "certtool.gaa" +#line 81 "certtool.gaa" int bits; -#line 69 "certtool.gaa" +#line 78 "certtool.gaa" int outcert_format; -#line 66 "certtool.gaa" +#line 75 "certtool.gaa" int incert_format; -#line 63 "certtool.gaa" +#line 72 "certtool.gaa" int export; -#line 60 "certtool.gaa" +#line 69 "certtool.gaa" + int dsa; +#line 66 "certtool.gaa" int pkcs8; -#line 47 "certtool.gaa" +#line 51 "certtool.gaa" char *pass; -#line 44 "certtool.gaa" +#line 48 "certtool.gaa" char *ca; -#line 41 "certtool.gaa" +#line 45 "certtool.gaa" char *ca_privkey; -#line 38 "certtool.gaa" +#line 42 "certtool.gaa" char *cert; -#line 35 "certtool.gaa" +#line 39 "certtool.gaa" char *request; -#line 32 "certtool.gaa" +#line 36 "certtool.gaa" char *privkey; #line 17 "certtool.gaa" int action; @@ -257,7 +263,7 @@ int gaa_error = 0; #define GAA_MULTIPLE_OPTION 3 #define GAA_REST 0 -#define GAA_NB_OPTION 29 +#define GAA_NB_OPTION 33 #define GAAOPTID_copyright 1 #define GAAOPTID_version 2 #define GAAOPTID_help 3 @@ -268,25 +274,29 @@ int gaa_error = 0; #define GAAOPTID_outder 8 #define GAAOPTID_inder 9 #define GAAOPTID_export_ciphers 10 -#define GAAOPTID_pkcs8 11 -#define GAAOPTID_to_p12 12 -#define GAAOPTID_key_info 13 -#define GAAOPTID_p12_info 14 -#define GAAOPTID_crl_info 15 -#define GAAOPTID_certificate_info 16 -#define GAAOPTID_password 17 -#define GAAOPTID_load_ca_certificate 18 -#define GAAOPTID_load_ca_privkey 19 -#define GAAOPTID_load_certificate 20 -#define GAAOPTID_load_request 21 -#define GAAOPTID_load_privkey 22 -#define GAAOPTID_generate_dh_params 23 -#define GAAOPTID_verify_chain 24 -#define GAAOPTID_generate_request 25 -#define GAAOPTID_generate_privkey 26 -#define GAAOPTID_update_certificate 27 -#define GAAOPTID_generate_certificate 28 -#define GAAOPTID_generate_self_signed 29 +#define GAAOPTID_dsa 11 +#define GAAOPTID_pkcs8 12 +#define GAAOPTID_to_p12 13 +#define GAAOPTID_key_info 14 +#define GAAOPTID_p7_info 15 +#define GAAOPTID_p12_info 16 +#define GAAOPTID_crl_info 17 +#define GAAOPTID_certificate_info 18 +#define GAAOPTID_password 19 +#define GAAOPTID_load_ca_certificate 20 +#define GAAOPTID_load_ca_privkey 21 +#define GAAOPTID_load_certificate 22 +#define GAAOPTID_load_request 23 +#define GAAOPTID_load_privkey 24 +#define GAAOPTID_generate_dh_params 25 +#define GAAOPTID_verify_crl 26 +#define GAAOPTID_verify_chain 27 +#define GAAOPTID_generate_request 28 +#define GAAOPTID_generate_privkey 29 +#define GAAOPTID_update_certificate 30 +#define GAAOPTID_generate_crl 31 +#define GAAOPTID_generate_certificate 32 +#define GAAOPTID_generate_self_signed 33 #line 168 "gaa.skel" @@ -580,17 +590,21 @@ int gaa_get_option_num(char *str, int status) GAA_CHECK1STR("", GAAOPTID_outder); GAA_CHECK1STR("", GAAOPTID_inder); GAA_CHECK1STR("", GAAOPTID_export_ciphers); + GAA_CHECK1STR("", GAAOPTID_dsa); GAA_CHECK1STR("8", GAAOPTID_pkcs8); GAA_CHECK1STR("", GAAOPTID_to_p12); GAA_CHECK1STR("k", GAAOPTID_key_info); + GAA_CHECK1STR("", GAAOPTID_p7_info); GAA_CHECK1STR("", GAAOPTID_p12_info); GAA_CHECK1STR("l", GAAOPTID_crl_info); GAA_CHECK1STR("i", GAAOPTID_certificate_info); GAA_CHECK1STR("", GAAOPTID_generate_dh_params); + GAA_CHECK1STR("", GAAOPTID_verify_crl); GAA_CHECK1STR("e", GAAOPTID_verify_chain); GAA_CHECK1STR("q", GAAOPTID_generate_request); GAA_CHECK1STR("p", GAAOPTID_generate_privkey); GAA_CHECK1STR("u", GAAOPTID_update_certificate); + GAA_CHECK1STR("", GAAOPTID_generate_crl); GAA_CHECK1STR("c", GAAOPTID_generate_certificate); GAA_CHECK1STR("s", GAAOPTID_generate_self_signed); @@ -607,9 +621,11 @@ int gaa_get_option_num(char *str, int status) GAA_CHECKSTR("outder", GAAOPTID_outder); GAA_CHECKSTR("inder", GAAOPTID_inder); GAA_CHECKSTR("export-ciphers", GAAOPTID_export_ciphers); + GAA_CHECKSTR("dsa", GAAOPTID_dsa); GAA_CHECKSTR("pkcs8", GAAOPTID_pkcs8); GAA_CHECKSTR("to-p12", GAAOPTID_to_p12); GAA_CHECKSTR("key-info", GAAOPTID_key_info); + GAA_CHECKSTR("p7-info", GAAOPTID_p7_info); GAA_CHECKSTR("p12-info", GAAOPTID_p12_info); GAA_CHECKSTR("crl-info", GAAOPTID_crl_info); GAA_CHECKSTR("certificate-info", GAAOPTID_certificate_info); @@ -620,10 +636,12 @@ int gaa_get_option_num(char *str, int status) GAA_CHECKSTR("load-request", GAAOPTID_load_request); GAA_CHECKSTR("load-privkey", GAAOPTID_load_privkey); GAA_CHECKSTR("generate-dh-params", GAAOPTID_generate_dh_params); + GAA_CHECKSTR("verify-crl", GAAOPTID_verify_crl); GAA_CHECKSTR("verify-chain", GAAOPTID_verify_chain); GAA_CHECKSTR("generate-request", GAAOPTID_generate_request); GAA_CHECKSTR("generate-privkey", GAAOPTID_generate_privkey); GAA_CHECKSTR("update-certificate", GAAOPTID_update_certificate); + GAA_CHECKSTR("generate-crl", GAAOPTID_generate_crl); GAA_CHECKSTR("generate-certificate", GAAOPTID_generate_certificate); GAA_CHECKSTR("generate-self-signed", GAAOPTID_generate_self_signed); @@ -670,21 +688,21 @@ int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list) { case GAAOPTID_copyright: OK = 0; -#line 87 "certtool.gaa" +#line 96 "certtool.gaa" { print_license(); exit(0); ;}; return GAA_OK; break; case GAAOPTID_version: OK = 0; -#line 86 "certtool.gaa" +#line 95 "certtool.gaa" { certtool_version(); exit(0); ;}; return GAA_OK; break; case GAAOPTID_help: OK = 0; -#line 84 "certtool.gaa" +#line 93 "certtool.gaa" { gaa_help(); exit(0); ;}; return GAA_OK; @@ -694,7 +712,7 @@ int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list) GAA_TESTMOREARGS; GAA_FILL(GAATMP_debug.arg1, gaa_getint, GAATMP_debug.size1); gaa_index++; -#line 82 "certtool.gaa" +#line 91 "certtool.gaa" { gaaval->debug = GAATMP_debug.arg1 ;}; return GAA_OK; @@ -704,7 +722,7 @@ int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list) GAA_TESTMOREARGS; GAA_FILL(GAATMP_infile.arg1, gaa_getstr, GAATMP_infile.size1); gaa_index++; -#line 79 "certtool.gaa" +#line 88 "certtool.gaa" { gaaval->infile = GAATMP_infile.arg1 ;}; return GAA_OK; @@ -714,7 +732,7 @@ int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list) GAA_TESTMOREARGS; GAA_FILL(GAATMP_outfile.arg1, gaa_getstr, GAATMP_outfile.size1); gaa_index++; -#line 76 "certtool.gaa" +#line 85 "certtool.gaa" { gaaval->outfile = GAATMP_outfile.arg1 ;}; return GAA_OK; @@ -724,70 +742,84 @@ int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list) GAA_TESTMOREARGS; GAA_FILL(GAATMP_bits.arg1, gaa_getint, GAATMP_bits.size1); gaa_index++; -#line 73 "certtool.gaa" +#line 82 "certtool.gaa" { gaaval->bits = GAATMP_bits.arg1 ;}; return GAA_OK; break; case GAAOPTID_outder: OK = 0; -#line 70 "certtool.gaa" +#line 79 "certtool.gaa" { gaaval->outcert_format=1 ;}; return GAA_OK; break; case GAAOPTID_inder: OK = 0; -#line 67 "certtool.gaa" +#line 76 "certtool.gaa" { gaaval->incert_format=1 ;}; return GAA_OK; break; case GAAOPTID_export_ciphers: OK = 0; -#line 64 "certtool.gaa" +#line 73 "certtool.gaa" { gaaval->export=1 ;}; return GAA_OK; break; + case GAAOPTID_dsa: + OK = 0; +#line 70 "certtool.gaa" +{ gaaval->dsa=1 ;}; + + return GAA_OK; + break; case GAAOPTID_pkcs8: OK = 0; -#line 61 "certtool.gaa" +#line 67 "certtool.gaa" { gaaval->pkcs8=1 ;}; return GAA_OK; break; case GAAOPTID_to_p12: OK = 0; -#line 58 "certtool.gaa" +#line 64 "certtool.gaa" { gaaval->action = 8; ;}; return GAA_OK; break; case GAAOPTID_key_info: OK = 0; -#line 56 "certtool.gaa" +#line 62 "certtool.gaa" { gaaval->action = 6; ;}; return GAA_OK; break; + case GAAOPTID_p7_info: + OK = 0; +#line 60 "certtool.gaa" +{ gaaval->action = 12; ;}; + + return GAA_OK; + break; case GAAOPTID_p12_info: OK = 0; -#line 54 "certtool.gaa" +#line 58 "certtool.gaa" { gaaval->action = 9; ;}; return GAA_OK; break; case GAAOPTID_crl_info: OK = 0; -#line 52 "certtool.gaa" +#line 56 "certtool.gaa" { gaaval->action = 11; ;}; return GAA_OK; break; case GAAOPTID_certificate_info: OK = 0; -#line 50 "certtool.gaa" +#line 54 "certtool.gaa" { gaaval->action = 2; ;}; return GAA_OK; @@ -797,7 +829,7 @@ int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list) GAA_TESTMOREARGS; GAA_FILL(GAATMP_password.arg1, gaa_getstr, GAATMP_password.size1); gaa_index++; -#line 48 "certtool.gaa" +#line 52 "certtool.gaa" { gaaval->pass = GAATMP_password.arg1 ;}; return GAA_OK; @@ -807,7 +839,7 @@ int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list) GAA_TESTMOREARGS; GAA_FILL(GAATMP_load_ca_certificate.arg1, gaa_getstr, GAATMP_load_ca_certificate.size1); gaa_index++; -#line 45 "certtool.gaa" +#line 49 "certtool.gaa" { gaaval->ca = GAATMP_load_ca_certificate.arg1 ;}; return GAA_OK; @@ -817,7 +849,7 @@ int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list) GAA_TESTMOREARGS; GAA_FILL(GAATMP_load_ca_privkey.arg1, gaa_getstr, GAATMP_load_ca_privkey.size1); gaa_index++; -#line 42 "certtool.gaa" +#line 46 "certtool.gaa" { gaaval->ca_privkey = GAATMP_load_ca_privkey.arg1 ;}; return GAA_OK; @@ -827,7 +859,7 @@ int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list) GAA_TESTMOREARGS; GAA_FILL(GAATMP_load_certificate.arg1, gaa_getstr, GAATMP_load_certificate.size1); gaa_index++; -#line 39 "certtool.gaa" +#line 43 "certtool.gaa" { gaaval->cert = GAATMP_load_certificate.arg1 ;}; return GAA_OK; @@ -837,7 +869,7 @@ int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list) GAA_TESTMOREARGS; GAA_FILL(GAATMP_load_request.arg1, gaa_getstr, GAATMP_load_request.size1); gaa_index++; -#line 36 "certtool.gaa" +#line 40 "certtool.gaa" { gaaval->request = GAATMP_load_request.arg1 ;}; return GAA_OK; @@ -847,46 +879,60 @@ int gaa_try(int gaa_num, int gaa_index, gaainfo *gaaval, char *opt_list) GAA_TESTMOREARGS; GAA_FILL(GAATMP_load_privkey.arg1, gaa_getstr, GAATMP_load_privkey.size1); gaa_index++; -#line 33 "certtool.gaa" +#line 37 "certtool.gaa" { gaaval->privkey = GAATMP_load_privkey.arg1 ;}; return GAA_OK; break; case GAAOPTID_generate_dh_params: OK = 0; -#line 30 "certtool.gaa" +#line 34 "certtool.gaa" { gaaval->action=10; ;}; return GAA_OK; break; + case GAAOPTID_verify_crl: + OK = 0; +#line 32 "certtool.gaa" +{ gaaval->action=14; ;}; + + return GAA_OK; + break; case GAAOPTID_verify_chain: OK = 0; -#line 28 "certtool.gaa" +#line 30 "certtool.gaa" { gaaval->action=5; ;}; return GAA_OK; break; case GAAOPTID_generate_request: OK = 0; -#line 26 "certtool.gaa" +#line 28 "certtool.gaa" { gaaval->action=3; ;}; return GAA_OK; break; case GAAOPTID_generate_privkey: OK = 0; -#line 24 "certtool.gaa" +#line 26 "certtool.gaa" { gaaval->action=1; ;}; return GAA_OK; break; case GAAOPTID_update_certificate: OK = 0; -#line 22 "certtool.gaa" +#line 24 "certtool.gaa" { gaaval->action=7; ;}; return GAA_OK; break; + case GAAOPTID_generate_crl: + OK = 0; +#line 22 "certtool.gaa" +{ gaaval->action=13; ;}; + + return GAA_OK; + break; case GAAOPTID_generate_certificate: OK = 0; #line 20 "certtool.gaa" @@ -925,7 +971,7 @@ int gaa(int argc, char **argv, gaainfo *gaaval) if(inited == 0) { -#line 89 "certtool.gaa" +#line 98 "certtool.gaa" { gaaval->bits = 1024; gaaval->pkcs8 = 0; gaaval->privkey = NULL; gaaval->ca=NULL; gaaval->ca_privkey = NULL; gaaval->debug=1; gaaval->request = NULL; gaaval->infile = NULL; gaaval->outfile = NULL; gaaval->cert = NULL; gaaval->incert_format = 0; gaaval->outcert_format = 0; gaaval->action=-1; gaaval->pass = NULL; @@ -1048,7 +1094,8 @@ typedef struct gaastrnode gaa_str_node; int gaa_internal_get_next_str(FILE *file, gaa_str_node *tmp_str, int argc) { int pos_ini; - char a; + int a; + char ca; int i = 0, len = 0, newline = 0; if(argc == 1) { @@ -1056,7 +1103,8 @@ int gaa_internal_get_next_str(FILE *file, gaa_str_node *tmp_str, int argc) len = 2; } - if(fscanf(file,"%c", &a) != 1) return 0; + a = fgetc( file); + if (a == EOF) return 0; while(a == ' ' || a == 9 || a == '\n') { @@ -1065,7 +1113,8 @@ int gaa_internal_get_next_str(FILE *file, gaa_str_node *tmp_str, int argc) newline=1; len = 2; } - if(fscanf(file,"%c", &a) != 1) return 0; + a = fgetc( file); + if (a == EOF) return 0; } pos_ini = ftell(file) - 1; @@ -1074,7 +1123,8 @@ int gaa_internal_get_next_str(FILE *file, gaa_str_node *tmp_str, int argc) { len++; - if(fscanf(file,"%c", &a) != 1) a = ' '; + a = fgetc( file); + if(a==EOF) return 0; //a = ' '; } len += 1; @@ -1094,11 +1144,12 @@ int gaa_internal_get_next_str(FILE *file, gaa_str_node *tmp_str, int argc) fseek(file,pos_ini, SEEK_SET); do { - if(fscanf(file, "%c", &a) != 1) + if(fscanf(file, "%c", &ca) != 1) { i+=2; break; } + a = ca; tmp_str->str[i] = a; i++; } @@ -1125,7 +1176,7 @@ int gaa_file(char *name, gaainfo *gaaval) if((file = fopen(name, "r")) == NULL) { printf("Couldn't open '%s' configuration file for reading\n", name); - return 0; + return 1; } tmp_str = &first_str; |