Skip to content
Snippets Groups Projects
Commit b09130b9 authored by Jonas Olausson's avatar Jonas Olausson
Browse files

removed path manipulation

parent 5d5920c1
Branches master
No related tags found
No related merge requests found
No preview for this file type
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#include <assert.h> #include <assert.h>
#include <time.h> #include <time.h>
#include <openssl/asn1_mac.h> #include <openssl/asn1_mac.h>
#define DEBUG 0
const ASN1_TIME *X509_get0_notBefore(const X509 *x); const ASN1_TIME *X509_get0_notBefore(const X509 *x);
char** str_split(const char* a_str, const char a_delim); char** str_split(const char* a_str, const char a_delim);
char* concat(char *s1, char *s2); char* concat(char *s1, char *s2);
...@@ -43,12 +43,11 @@ char *str_slice_to_end(const char *str, int begin); ...@@ -43,12 +43,11 @@ char *str_slice_to_end(const char *str, int begin);
int main(int argc, char **argv){ int main(int argc, char **argv){
int LINE_BUFFER=100; int LINE_BUFFER=100;
char line[LINE_BUFFER]; char line[LINE_BUFFER];
FILE *csv_input = fopen(argv[1], "r");
FILE *csv_input = fopen(concat("./sample_certs/",argv[1]), "r");
FILE *csv_output = fopen("output_test.csv" ,"w"); FILE *csv_output = fopen("output_test.csv" ,"w");
//for each line in the csv file, process each certificate //for each line in the csv file, process each certificate
OpenSSL_add_all_algorithms(); OpenSSL_add_all_algorithms();
ERR_load_BIO_strings(); ERR_load_BIO_strings();
...@@ -57,7 +56,10 @@ int main(int argc, char **argv){ ...@@ -57,7 +56,10 @@ int main(int argc, char **argv){
int n = 0; int n = 0;
while (fgets(line, LINE_BUFFER, csv_input) != NULL){ while (fgets(line, LINE_BUFFER, csv_input) != NULL){
if(DEBUG){
printf("CSV LINE # %d\n", n); printf("CSV LINE # %d\n", n);
}
BIO *certificate_bio = NULL; BIO *certificate_bio = NULL;
X509 *cert = NULL; X509 *cert = NULL;
X509_NAME *cert_issuer = NULL; X509_NAME *cert_issuer = NULL;
...@@ -65,16 +67,18 @@ int main(int argc, char **argv){ ...@@ -65,16 +67,18 @@ int main(int argc, char **argv){
STACK_OF(X509_EXTENSION) * ext_list; STACK_OF(X509_EXTENSION) * ext_list;
certificate_bio = BIO_new(BIO_s_file()); certificate_bio = BIO_new(BIO_s_file());
//here we are able to access each line //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, ','); char **csv_row_elements = str_split(line, ',');
if(DEBUG){
printf("\tFILE: %s\n",csv_row_elements[0]); printf("\tFILE: %s\n",csv_row_elements[0]);
printf("\tURL: %s\n",csv_row_elements[1]); printf("\tURL: %s\n",csv_row_elements[1]);
}
char *certificate_file = csv_row_elements[0];
char *certificate_file = concat("./sample_certs/", csv_row_elements[0]);
const char *url = csv_row_elements[1]; const char *url = csv_row_elements[1];
//for some reason splitting keeps mututating the original string //for some reason splitting keeps mututating the original string
...@@ -86,32 +90,30 @@ int main(int argc, char **argv){ ...@@ -86,32 +90,30 @@ int main(int argc, char **argv){
fprintf(stderr, "Error in reading cert BIO filename"); fprintf(stderr, "Error in reading cert BIO filename");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
//load certiifcate //load certiifcate
if (!(cert = PEM_read_bio_X509(certificate_bio, NULL, 0, NULL))){ if (!(cert = PEM_read_bio_X509(certificate_bio, NULL, 0, NULL))){
fprintf(stderr, "Error in loading certificate"); fprintf(stderr, "Error in loading certificate");
exit(EXIT_FAILURE); 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))); if(DEBUG){
// printf ("\tBASIC CONSTRAINT: %s\n",get_basic_constraints(cert));
// // printf ("\tKEY USAGE: %s\n",get_key_usage(cert)); printf ("\tBASIC CONSTRAINT VALIDATION: %d\n",validate_basic_constraints(get_basic_constraints(cert)));
// printf ("\tKEY USAGE VALIDATION: %d\n",validate_key_usage(get_key_usage(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 BITS: %d\n",get_public_key_length(cert));
// printf ("\tKEY LENGTH VALIDATION: %d\n",validate_key_length(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 compared to Current: %s\n",compare_not_before(cert)); printf("\tNOT BEFORE VALIDATION %d\n", validate_not_before(cert));
// // printf ("\tNot After compared to Current: %s\n",compare_not_after(cert)); printf("\tNOT AFTER VALIDATION %d\n", validate_not_after(cert));
// printf("\tNOT BEFORE VALIDATION %d\n", validate_not_before(cert)); printf ("\tCommon Name: %s\n",get_domain_name(cert));
// printf("\tNOT AFTER VALIDATION %d\n", validate_not_after(cert)); printf("\tCOMMON NAME AND SAN VALIDATION %d\n", validate_CN_and_SAN(url, cert));
// // printf ("\tCommon Name: %s\n",get_domain_name(cert)); printf ("%d", 0 || 1);
// printf("FINAL VALIDATION %d\n", validate_certificate(url, cert));
// printf("\tCOMMON NAME AND SAN VALIDATION %d\n", validate_CN_and_SAN(url, cert)); printf("\t%s\n", unchanged_url);
// 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,", csv_row_elements[0]);
fprintf(csv_output,"%s,", unchanged_url); fprintf(csv_output,"%s,", unchanged_url);
fprintf(csv_output,"%d\n", validate_certificate(url, cert)); fprintf(csv_output,"%d\n", validate_certificate(url, cert));
...@@ -376,7 +378,6 @@ int validate_basic_constraints(char* basic_constraints){ ...@@ -376,7 +378,6 @@ int validate_basic_constraints(char* basic_constraints){
} }
return 0; return 0;
} }
int validate_wildcard_string(const char *hostname, char*hostname_with_wildcard){ int validate_wildcard_string(const char *hostname, char*hostname_with_wildcard){
...@@ -467,7 +468,6 @@ int validate_certificate(const char *url, X509 *cert){ ...@@ -467,7 +468,6 @@ int validate_certificate(const char *url, X509 *cert){
return 0; return 0;
} }
} }
int find_first_instanceof(const char *str, char delim){ int find_first_instanceof(const char *str, char delim){
int i; int i;
for (i=0;i<=strlen(str);i++){ for (i=0;i<=strlen(str);i++){
...@@ -478,13 +478,8 @@ int find_first_instanceof(const char *str, char delim){ ...@@ -478,13 +478,8 @@ int find_first_instanceof(const char *str, char delim){
} }
return -1; return -1;
} }
char *str_slice_to_end(const char *str, int begin){ char *str_slice_to_end(const char *str, int begin){
char *tmp = (char *)str; char *tmp = (char *)str;
tmp = (tmp+=begin+1); tmp = (tmp+=begin+1);
printf("\tSLICE: %s\n",tmp);
return tmp; return tmp;
} }
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment