summaryrefslogtreecommitdiff
path: root/src/certtool-gaa.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/certtool-gaa.c')
-rw-r--r--src/certtool-gaa.c189
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;