From b09130b92e71a98dccc0a5c399ae33435fe2579c Mon Sep 17 00:00:00 2001 From: Jonas Olausson <j.olausson@student.unimelb.edu.au> Date: Wed, 23 May 2018 20:18:44 +1000 Subject: [PATCH] removed path manipulation --- certexample | Bin 16292 -> 16292 bytes certexample.c | 71 ++++++++---------- .../sample_input.csv => sample_input.csv | 0 ...nput_single.csv => sample_input_single.csv | 0 .../sample_output.csv => sample_output.csv | 0 sample_certs/testeight.crt => testeight.crt | 0 sample_certs/testeleven.crt => testeleven.crt | 0 sample_certs/testfive.crt => testfive.crt | 0 sample_certs/testfour.crt => testfour.crt | 0 sample_certs/testnine.crt => testnine.crt | 0 sample_certs/testone.crt => testone.crt | 0 sample_certs/testseven.crt => testseven.crt | 0 sample_certs/testsix.crt => testsix.crt | 0 sample_certs/testten.crt => testten.crt | 0 sample_certs/testthree.crt => testthree.crt | 0 sample_certs/testtwo.crt => testtwo.crt | 0 16 files changed, 33 insertions(+), 38 deletions(-) rename sample_certs/sample_input.csv => sample_input.csv (100%) rename sample_certs/sample_input_single.csv => sample_input_single.csv (100%) rename sample_certs/sample_output.csv => sample_output.csv (100%) rename sample_certs/testeight.crt => testeight.crt (100%) rename sample_certs/testeleven.crt => testeleven.crt (100%) rename sample_certs/testfive.crt => testfive.crt (100%) rename sample_certs/testfour.crt => testfour.crt (100%) rename sample_certs/testnine.crt => testnine.crt (100%) rename sample_certs/testone.crt => testone.crt (100%) rename sample_certs/testseven.crt => testseven.crt (100%) rename sample_certs/testsix.crt => testsix.crt (100%) rename sample_certs/testten.crt => testten.crt (100%) rename sample_certs/testthree.crt => testthree.crt (100%) rename sample_certs/testtwo.crt => testtwo.crt (100%) diff --git a/certexample b/certexample index d1746d435261cd0a4018b32bfe4e346b2ad4dafd..adcbba2d1dfb87c18b47852663885bcac745763a 100755 GIT binary patch delta 2916 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 delta 3122 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 diff --git a/certexample.c b/certexample.c index b997503..2f40704 100644 --- a/certexample.c +++ b/certexample.c @@ -15,7 +15,7 @@ #include <assert.h> #include <time.h> #include <openssl/asn1_mac.h> - +#define DEBUG 0 const ASN1_TIME *X509_get0_notBefore(const X509 *x); char** str_split(const char* a_str, const char a_delim); char* concat(char *s1, char *s2); @@ -43,12 +43,11 @@ char *str_slice_to_end(const char *str, int begin); int main(int argc, char **argv){ + int LINE_BUFFER=100; char line[LINE_BUFFER]; - - FILE *csv_input = fopen(concat("./sample_certs/",argv[1]), "r"); + FILE *csv_input = fopen(argv[1], "r"); FILE *csv_output = fopen("output_test.csv" ,"w"); - //for each line in the csv file, process each certificate OpenSSL_add_all_algorithms(); ERR_load_BIO_strings(); @@ -57,7 +56,10 @@ int main(int argc, char **argv){ int n = 0; while (fgets(line, LINE_BUFFER, csv_input) != NULL){ - printf("CSV LINE # %d\n", n); + if(DEBUG){ + printf("CSV LINE # %d\n", n); + } + BIO *certificate_bio = NULL; X509 *cert = NULL; X509_NAME *cert_issuer = NULL; @@ -65,16 +67,18 @@ int main(int argc, char **argv){ STACK_OF(X509_EXTENSION) * ext_list; certificate_bio = BIO_new(BIO_s_file()); //here we are able to access each line - line[strlen(line)-1] = '\0'; + //get rid of newline + line[strlen(line)-1] = '\0'; char **csv_row_elements = str_split(line, ','); - printf("\tFILE: %s\n",csv_row_elements[0]); - printf("\tURL: %s\n",csv_row_elements[1]); - + if(DEBUG){ + printf("\tFILE: %s\n",csv_row_elements[0]); + printf("\tURL: %s\n",csv_row_elements[1]); + } - char *certificate_file = concat("./sample_certs/", csv_row_elements[0]); + char *certificate_file = csv_row_elements[0]; const char *url = csv_row_elements[1]; //for some reason splitting keeps mututating the original string @@ -86,32 +90,30 @@ int main(int argc, char **argv){ fprintf(stderr, "Error in reading cert BIO filename"); exit(EXIT_FAILURE); } - //load certiifcate if (!(cert = PEM_read_bio_X509(certificate_bio, NULL, 0, NULL))){ fprintf(stderr, "Error in loading certificate"); exit(EXIT_FAILURE); } - // printf ("\tBASIC CONSTRAINT: %s\n",get_basic_constraints(cert)); - // printf ("\tBASIC CONSTRAINT VALIDATION: %d\n",validate_basic_constraints(get_basic_constraints(cert))); - // - // // printf ("\tKEY USAGE: %s\n",get_key_usage(cert)); - // printf ("\tKEY USAGE VALIDATION: %d\n",validate_key_usage(get_key_usage(cert))); - // - // // printf ("\tKEY LENGTH BITS: %d\n",get_public_key_length(cert)); - // - // printf ("\tKEY LENGTH VALIDATION: %d\n",validate_key_length(get_public_key_length(cert))); - // - // // printf ("\tNot Before compared to Current: %s\n",compare_not_before(cert)); - // // printf ("\tNot After compared to Current: %s\n",compare_not_after(cert)); - // printf("\tNOT BEFORE VALIDATION %d\n", validate_not_before(cert)); - // printf("\tNOT AFTER VALIDATION %d\n", validate_not_after(cert)); - // // printf ("\tCommon Name: %s\n",get_domain_name(cert)); - // - // printf("\tCOMMON NAME AND SAN VALIDATION %d\n", validate_CN_and_SAN(url, cert)); - // printf ("%d", 0 || 1); - // printf("FINAL VALIDATION %d\n", validate_certificate(url, cert)); - // printf("\t%s\n", unchanged_url); + + if(DEBUG){ + printf ("\tBASIC CONSTRAINT: %s\n",get_basic_constraints(cert)); + printf ("\tBASIC CONSTRAINT VALIDATION: %d\n",validate_basic_constraints(get_basic_constraints(cert))); + printf ("\tKEY USAGE: %s\n",get_key_usage(cert)); + printf ("\tKEY USAGE VALIDATION: %d\n",validate_key_usage(get_key_usage(cert))); + printf ("\tKEY LENGTH BITS: %d\n",get_public_key_length(cert)); + printf ("\tKEY LENGTH VALIDATION: %d\n",validate_key_length(get_public_key_length(cert))); + printf ("\tNot Before compared to Current: %s\n",compare_not_before(cert)); + printf ("\tNot After compared to Current: %s\n",compare_not_after(cert)); + printf("\tNOT BEFORE VALIDATION %d\n", validate_not_before(cert)); + printf("\tNOT AFTER VALIDATION %d\n", validate_not_after(cert)); + printf ("\tCommon Name: %s\n",get_domain_name(cert)); + printf("\tCOMMON NAME AND SAN VALIDATION %d\n", validate_CN_and_SAN(url, cert)); + printf ("%d", 0 || 1); + printf("FINAL VALIDATION %d\n", validate_certificate(url, cert)); + printf("\t%s\n", unchanged_url); + } + fprintf(csv_output,"%s,", csv_row_elements[0]); fprintf(csv_output,"%s,", unchanged_url); fprintf(csv_output,"%d\n", validate_certificate(url, cert)); @@ -376,7 +378,6 @@ int validate_basic_constraints(char* basic_constraints){ } return 0; } - int validate_wildcard_string(const char *hostname, char*hostname_with_wildcard){ @@ -467,7 +468,6 @@ int validate_certificate(const char *url, X509 *cert){ return 0; } } - int find_first_instanceof(const char *str, char delim){ int i; for (i=0;i<=strlen(str);i++){ @@ -478,13 +478,8 @@ int find_first_instanceof(const char *str, char delim){ } return -1; } - - char *str_slice_to_end(const char *str, int begin){ char *tmp = (char *)str; - tmp = (tmp+=begin+1); - - printf("\tSLICE: %s\n",tmp); return tmp; } diff --git a/sample_certs/sample_input.csv b/sample_input.csv similarity index 100% rename from sample_certs/sample_input.csv rename to sample_input.csv diff --git a/sample_certs/sample_input_single.csv b/sample_input_single.csv similarity index 100% rename from sample_certs/sample_input_single.csv rename to sample_input_single.csv diff --git a/sample_certs/sample_output.csv b/sample_output.csv similarity index 100% rename from sample_certs/sample_output.csv rename to sample_output.csv diff --git a/sample_certs/testeight.crt b/testeight.crt similarity index 100% rename from sample_certs/testeight.crt rename to testeight.crt diff --git a/sample_certs/testeleven.crt b/testeleven.crt similarity index 100% rename from sample_certs/testeleven.crt rename to testeleven.crt diff --git a/sample_certs/testfive.crt b/testfive.crt similarity index 100% rename from sample_certs/testfive.crt rename to testfive.crt diff --git a/sample_certs/testfour.crt b/testfour.crt similarity index 100% rename from sample_certs/testfour.crt rename to testfour.crt diff --git a/sample_certs/testnine.crt b/testnine.crt similarity index 100% rename from sample_certs/testnine.crt rename to testnine.crt diff --git a/sample_certs/testone.crt b/testone.crt similarity index 100% rename from sample_certs/testone.crt rename to testone.crt diff --git a/sample_certs/testseven.crt b/testseven.crt similarity index 100% rename from sample_certs/testseven.crt rename to testseven.crt diff --git a/sample_certs/testsix.crt b/testsix.crt similarity index 100% rename from sample_certs/testsix.crt rename to testsix.crt diff --git a/sample_certs/testten.crt b/testten.crt similarity index 100% rename from sample_certs/testten.crt rename to testten.crt diff --git a/sample_certs/testthree.crt b/testthree.crt similarity index 100% rename from sample_certs/testthree.crt rename to testthree.crt diff --git a/sample_certs/testtwo.crt b/testtwo.crt similarity index 100% rename from sample_certs/testtwo.crt rename to testtwo.crt -- GitLab