diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..5f247629b71b4d2242da4cdbedbc396f19d77c6a --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +Author: Neeserg Parajuli +Student num: 582811 + +Program: + +This program gets a path to a csv file, that contains (path to a certificate, url) and +makes sure the certificate is still valid for that URL. + + +Instructions: + +1) type in make clean then make in the command prompt +2) type in ./certcheck [path to csv] (make sure path to certificate stored in the csv is relative to the +directory of the certcheck program) +3) check the output file. + + +Files: +certcheck.c is the main file that controls that stands as proxy between csv_handler and validater +validater.c validates a certificate +csv_handler reads csv data to memory and writes a csv file diff --git a/certcheck b/certcheck index d8dbebe22f899b4cfa546095163278ef20f6e1cf..dd2bd1939093d1b05f2976abee12c7ad1f42f048 100755 Binary files a/certcheck and b/certcheck differ diff --git a/certcheck.c b/certcheck.c index 16ebfcddd4ed8966a73ae128bab02730c2e34498..7aeb082e9a727aec18f82a05758911797f0da475 100644 --- a/certcheck.c +++ b/certcheck.c @@ -9,7 +9,9 @@ int main(int argc, char const *argv[]) { + +//Check if enough arguements was provided from the command line. if (argc < 2) { printf("Not enough input parameter"); @@ -17,18 +19,18 @@ int main(int argc, char const *argv[]) } - + // retrieve a linked list of url and its correponding certificate head* new = load_csv(argv[1]); node* nd = new->start; - +//loop through and check for the validity of each certificate while(nd !=NULL){ nd-> valid = validate_certificate(nd->filename, nd->url); nd = nd->next; } - +//output the linked list to a output file output_csv("output.csv" ,new); - +//cleanup delete_list(new); return 0; diff --git a/csv_handler.c b/csv_handler.c index e9dd6fcdde4d0b61451b1d220cbed66b5499b8a8..bf136ed4de8bf6b802b12accb144da3851b743dd 100644 --- a/csv_handler.c +++ b/csv_handler.c @@ -1,6 +1,6 @@ #include "csv_handler.h" - +//loads the csv file into the linked list head *load_csv(const char *filepath){ FILE* file = fopen(filepath, "r"); char line [EXPECTED_LINE_LENGTH]; @@ -42,7 +42,7 @@ head *load_csv(const char *filepath){ } - +//inserts the value in the next node or the current node if it is the start node *insert(node* nd, char* url, char* filename, int valid){ if (nd == NULL){ nd = (node *) malloc(sizeof(*(nd->next))); @@ -67,7 +67,7 @@ node *insert(node* nd, char* url, char* filename, int valid){ return NULL; } - +//cleanup the linked list void delete_list(head* hd){ if (hd == NULL) { @@ -102,4 +102,4 @@ void output_csv(char* filepath, head* hd){ } fclose(file); -} \ No newline at end of file +} diff --git a/csv_handler.h b/csv_handler.h index f8cfd3e563c99e7352595380ca81b2688a57eaaf..4d199a38e621eb618d68fd737070b72c78bed4a3 100644 --- a/csv_handler.h +++ b/csv_handler.h @@ -8,7 +8,7 @@ #define EXPECTED_LINE_LENGTH 1024 typedef struct NODE node; - +//Node that stores the url and filename specified in the csv file struct NODE { char* url; @@ -16,18 +16,20 @@ struct NODE int valid; node* next; }; - +//stores the start of the linked list typedef struct { node* start; } head; - +//loads the data into the linked list head *load_csv(const char *filename); - +//inserts data into the next node or start node node *insert(node* nd, char* url, char* filename, int valid); +//cleans up the list void delete_list(head* hd); +//dumps the content of the linked list into a output file void output_csv(char* filepath, head* hd); -#endif \ No newline at end of file +#endif diff --git a/sample_certs/output_explanation.csv b/sample_certs/output_explanation.csv deleted file mode 100644 index 4cc2b40186e99ec980632f39b12f093598034d9a..0000000000000000000000000000000000000000 --- a/sample_certs/output_explanation.csv +++ /dev/null @@ -1,13 +0,0 @@ -testone.crt,www.example.com,0,Invalid because key size is too small (1024 bits instead of >=2048) -testtwo.crt,www.mydomain.com,1,Valid correct key size; valid dates; not a CA; server authentication; domain matches Common Name -testthree.crt,www.test.com,0,Invalid valid from date - date is in the future -testfour.crt,www.oldsite.com,0,Invalid - certificate has expired - valid to date in the past -testfive.crt,www.unimelb.com,0,Invalid - extended key usage is only for client authentication -testsix.crt,www.codetest.com,0,Invalid - extended key usage is code signing only -testseven.crt,www.example.com,1,Valid - all correct - domain matches through Common Name wildcard -testeight.crt,www.comp30023.com,1,Valid - all correct - domain matches Common Name -testnine.crt,www.certtest.com,1,Valid - all correct - domain matches Common Name -testten.crt,www.victoria.com,1,Valid - all correct - tests multiple extended key usage -testeleven.crt,freeca.com,0,Invalid - marked as a CA -testtwo.crt,www.example.com,0,Invalid - domain does not match Common Name -testseven.crt,example.com,0,Invalid - wildcard Common Name requires subdomain diff --git a/sample_certs/sample_input.csv b/sample_certs/sample_input.csv deleted file mode 100644 index 7c8d9046d8c67e6ad8a4762ef990822128436fc0..0000000000000000000000000000000000000000 --- a/sample_certs/sample_input.csv +++ /dev/null @@ -1,13 +0,0 @@ -testone.crt,www.example.com -testtwo.crt,www.mydomain.com -testthree.crt,www.test.com -testfour.crt,www.oldsite.com -testfive.crt,www.unimelb.com -testsix.crt,www.codetest.com -testseven.crt,www.example.com -testeight.crt,www.comp30023.com -testnine.crt,www.certtest.com -testten.crt,www.victoria.com -testeleven.crt,freeca.com -testtwo.crt,www.example.com -testseven.crt,example.com diff --git a/sample_certs/sample_output.csv b/sample_certs/sample_output.csv deleted file mode 100644 index 7b25d86d602b3f7f1458ff4dff09f48859ffb099..0000000000000000000000000000000000000000 --- a/sample_certs/sample_output.csv +++ /dev/null @@ -1,13 +0,0 @@ -testone.crt,www.example.com,0 -testtwo.crt,www.mydomain.com,1 -testthree.crt,www.test.com,0 -testfour.crt,www.oldsite.com,0 -testfive.crt,www.unimelb.com,0 -testsix.crt,www.codetest.com,0 -testseven.crt,www.example.com,1 -testeight.crt,www.comp30023.com,1 -testnine.crt,www.certtest.com,1 -testten.crt,www.victoria.com,1 -testeleven.crt,freeca.com,0 -testtwo.crt,www.example.com,0 -testseven.crt,example.com,0 diff --git a/sample_certs/testeight.crt b/sample_certs/testeight.crt deleted file mode 100644 index 03d81da9623328871fc9c08bc483d40e13eeeea1..0000000000000000000000000000000000000000 --- a/sample_certs/testeight.crt +++ /dev/null @@ -1,31 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFbDCCAtSgAwIBAgIJANLPJEg9cV1AMA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV -BAYTAkFVMREwDwYDVQQIEwhWaWN0b3JpYTEQMA4GA1UEChMHVW5pTWVsYjEMMAoG -A1UECxMDQ0lTMRYwFAYDVQQDEw1Bc3NpZ25tZW50MkNBMCIYDzIwMTcwMTAxMDAw -MTAxWhgPMjAxOTEyMzEyMzU5NTlaMHoxCzAJBgNVBAYTAkFVMREwDwYDVQQIEwhW -aWN0b3JpYTESMBAGA1UEBxMJTWVsYm91cm5lMRAwDgYDVQQKEwdVbmlNZWxiMRYw -FAYDVQQLFA1DT01QMzAwMjNfQ0lTMRowGAYDVQQDExF3d3cuY29tcDMwMDIzLmNv -bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK263cMkg0lxJOKponDe -+jOVmGMFCV7gyiaJeqlcsxFyTQni81nCQfctZteKUypln74nA83C2UgzghB/PNqt -VD7i+/3JSXOkelLI5SOeEgMukUOnrhXkMu75j7hpGYHToHEvJzdhKH+YzaCx8IfE -JJL7BovQJn3XbDo1i+AQDonOxqD8PsAIuNDK0DAiaXCM25cAYbw3vyJAbfgnrlTR -5N+6q2Kg3OdT4kJpDvnoe2iWISznaGiKnDkAaBCms+UbuDUmu4yLJK3w7w47DN/4 -GcMnoZuCTUh44MTSZls/dtYVfXau+AWpTRCNq9kLHg8oPtu11nFifM8J6eWF+CvB -4skCAwEAAaOBkjCBjzAJBgNVHRMEAjAAMB0GA1UdDgQWBBR0qnBO/IRsOX9ab0KT -91zYqRoURDAfBgNVHSMEGDAWgBQMV5bB/KSnVaWio6bMv7IKFIw9hDALBgNVHQ8E -BAMCAygwEwYDVR0lBAwwCgYIKwYBBQUHAwEwIAYDVR0RBBkwF4IVd2VibWFpbC5j -b21wMzAwMjMuY29tMA0GCSqGSIb3DQEBBQUAA4ICgQBNUF/OJEv8J4D26ocTkjXI -eygAdgI5fJwt3YAhjrR8Jaq+WJ47ugxVwiJm3ExB6lb622wpGWLh3aWWZxiJJxki -Q/wPtouJS2PH3nFho3WAUSetZbTfuvyFFZBLtBYEYxzcCXJ4lYl+z7ReaG6c/4WG -spaaAE2FSL0SQwP+E/PFBz/lLkBpG+hVRBYofFW+iPVOL+y4kfWwNwl3mnLAA0ai -fm7qNlhAZ/Jaoo0ETFZ7iVpEcZQ3bsHyd9aHHqLsni0IvupDJvS7OoAvJDCnlH0v -Qp5dz5OEB00kzzzeRIEmS16aUO8atKsJMeSV8moZasLObDm2rS6aPGDytXRC+hs2 -0enYhShlDkCcdx4qybJ6KqPv7CTmCtCjD9c9jNxRq96cMom+eiPUhuUqUFoksVze -sFSTjR2JnoHim4bI9Qp46MGfBKOoXvkU3iI0TiWJUWAFNuGUWoWB0OrgrWgeeBNo -+idLDS43YQjeyRY33Gd9NS4a7ZgEfsKfhBGDoDceAXkGnWQNZun6pm036hQQfLiV -NfvTa3WuV0iRoYDPF129Ta3OPimebga9p2P3PrD53twmlGkUToV/9/dF08pmipc7 -6ZEIFbnFv+296U5XDmeeMI4X3g+QTxM4bSCGjMAZkrsOAdVsmATn8oa+V0+Yw0ck -9L1Cd4bpi/ei9ewNr2RM+wKJbEirNYyNA4KroZzIwqHlM9fsOCYypmWu/P525BbC -l2iSMSq1MGJAI8wrvGeJAaxwIOkrz113bNrrIsN/LQtLLgKIddhYnMtUXH84azLy -UC2Azbic1ImiNGmWzooTWB1Esh1r3elGnEv6vhUXeTbp2/Ny0LCvW6A+bO4j4mkr ------END CERTIFICATE----- diff --git a/sample_certs/testeleven.crt b/sample_certs/testeleven.crt deleted file mode 100644 index 5d4fd839fa32da3fd7314fee2685a64ac673e19f..0000000000000000000000000000000000000000 --- a/sample_certs/testeleven.crt +++ /dev/null @@ -1,31 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFWjCCAsKgAwIBAgIJANLPJEg9cV1MMA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV -BAYTAkFVMREwDwYDVQQIEwhWaWN0b3JpYTEQMA4GA1UEChMHVW5pTWVsYjEMMAoG -A1UECxMDQ0lTMRYwFAYDVQQDEw1Bc3NpZ25tZW50MkNBMCIYDzIwMTcwMTAxMDAw -MTAxWhgPMjAxOTEyMzEyMzU5NTlaMHMxCzAJBgNVBAYTAkFVMREwDwYDVQQIEwhW -aWN0b3JpYTESMBAGA1UEBxMJTWVsYm91cm5lMRAwDgYDVQQKEwdVbmlNZWxiMRYw -FAYDVQQLFA1DT01QMzAwMjNfQ0lTMRMwEQYDVQQDEwpmcmVlY2EuY29tMIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3HGq1IAgg58VrtX7BBlcHAeBdLsc -XfY18lKgfCFcnbT3YSILD/FAXEarrPe3lidR0jcF2LKqFs6gWo0e7SuCcPUbTgtH -7NYlCquwJPgNjr+fIdLp6vdQYCWlYX08E28CmPaegdvxziJO3JBeeWLfLbkurJNm -PPxLwObHvxyDO9W3jjvScQ3M6TCz7A6SQoF52KKP7ZQcm/+rjlqBgkAuActqI9UX -uf7Fp/27OpbPVkmQd0k3jDqC20jbPIHwUEpD0vd4oLfjX2Tjo2hFclKxv/Rk/NLF -n2qFPzXkVsGYtD3l8fMl7PpPfFCx0heh4GHWJlbs5Nz0GXWEK++hZp8kiQIDAQAB -o4GHMIGEMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFNIqu+hvtyd/HO88uxsPV6bH -ESgDMB8GA1UdIwQYMBaAFAxXlsH8pKdVpaKjpsy/sgoUjD2EMAsGA1UdDwQEAwID -KDAnBgNVHSUEIDAeBggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMDMA0GCSqG -SIb3DQEBBQUAA4ICgQBywUcFlDbNMf8tOYcKeysIZGrVtGsDxuxs/wgPp5rYkw2o -9BcUL7bzTj84to4makEt6OCXoAwQWDBhiW+b50LR5mtVIkNKJh0yXwAeqO7uSIS+ -Z/UuFT78N88ZJMmJpaxqstG3A3jkUGHdRD0MbeAgBJylU+y7R1Is5RMcADItnZEy -BOo653arLq82gu3N26F6cbh3YJdQgp9T/1iaUyeIfosboce+N/N9WR3p0LyiX4uU -Ohotp3XStdU0Ma9Ep77SsBDbXMSgNYiR9HPdcToH/GH7qWBJezMlvm0qUhLVhKY/ -gXFlZp4ovKSFCvkc72QPxKx7CJ08wsBkbfK0vhoMGkyiYpEOSyzIggW9/drOOV0j -t+NaJjZ42hN9C3U0ko5cF5sKrIMaj7ojbQj97nlJQoWTsqefvFW0WU+RxDCJwBEf -kEhjPwGMIOgNHcdwpN2PWpV1hfmkCnAPOmA5xlZgxhyM4nHJKfpcKuyL3x43QKN9 -X8JsJfh1WgEDaZVc1aHHzY1HlWEui8ykcpekhLwpFXPVhQDyymB47zM7D2nLhfu0 -yz+Orzmcv2Kmap1H3oCVxYLtdZ9CIeRtK++lbfjdG5JIxpSfJPRO0jxfjc3OzF7m -cMT/65RLFOSIcMHRFvItKVfhE+psfM8IyMwn+qSjdfMlBSE+PArlzlre1T9Bl0I/ -4FegVYSYxxD1ZsACv1yFYPjw/AWxe37k5jTVsqF1seSRO63AyhH+x0vJ1kgZpZV7 -txS8tGDUJ6kjFch+GBU4VMDKZNbJM02s06OGPZHw/cj6lVt0gbeBk9zKeu6ydWie -bM/sod5KTx6TW8hIOgi/P+RKv32YRFR3hh6jmLW0 ------END CERTIFICATE----- diff --git a/sample_certs/testfive.crt b/sample_certs/testfive.crt deleted file mode 100644 index 5ce0a062014a5d842727890c03f7ba1ec30b63cc..0000000000000000000000000000000000000000 --- a/sample_certs/testfive.crt +++ /dev/null @@ -1,31 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFRjCCAq6gAwIBAgIJANLPJEg9cV1GMA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV -BAYTAkFVMREwDwYDVQQIEwhWaWN0b3JpYTEQMA4GA1UEChMHVW5pTWVsYjEMMAoG -A1UECxMDQ0lTMRYwFAYDVQQDEw1Bc3NpZ25tZW50MkNBMCIYDzIwMTcwMTAxMDAw -MTAxWhgPMjAxOTEyMzEyMzU5NTlaMHgxCzAJBgNVBAYTAkFVMREwDwYDVQQIEwhW -aWN0b3JpYTESMBAGA1UEBxMJTWVsYm91cm5lMRAwDgYDVQQKEwdVbmlNZWxiMRYw -FAYDVQQLFA1DT01QMzAwMjNfQ0lTMRgwFgYDVQQDEw93d3cudW5pbWVsYi5jb20w -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYjix4eOOpHzVkxv9Fip2h -ekOeoERk+o92/gNaaZ3mW+y7vrWhNWd4tg0VxA1sau3CrCCIsxrFu9rDKpNz1bUJ -YGY/w3Yll8mrk4VSJhjDCCmudxIaT4cV/WqzvRK7zc5lSw6SoQzU5NEj4UB+Hghz -rLyiDK/zG75XuPg2Lb6rTuqY4OoUig/AKIDVyPfPNb5MMWFcNLzjgDAYJEea1lU2 -aUQ0xUXFAmCZwy/bPb6WIQuEf26C4ltGiG74y2kdYpsfYbu46ozA0w0QHKLKUC1Q -th/4amh7bzIEtG2w47BISMyTsrb/JrLFM4vVgB1WR47LgNSeedqcbBackRmMHRH7 -AgMBAAGjbzBtMAkGA1UdEwQCMAAwHQYDVR0OBBYEFI6PNxbv9flPs0sS33lQMqSf -Qo65MB8GA1UdIwQYMBaAFAxXlsH8pKdVpaKjpsy/sgoUjD2EMAsGA1UdDwQEAwID -KDATBgNVHSUEDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOCAoEASb6G7m7a -WqAi0dkVpSdTPKm1rN+alvxacX3P3GWaS1KGs/yXdxsRHl6vLHNUymCdBE/JFRlA -k8R5U8ye9T1SNnjfhILhnyGGf3ct4Po8W6NVu6kBsTYK233Wd2VRB7NDdURpSv+A -9RgHwItZKM62u+nk2UgjDkWLP5Dn+VQSc2HkZBbvgXECtRlAAQv2vdIqQishlNWm -XKxd2kgkoB/QXcbq2n8099Btd8v1+dS9d4RSv+S5FYe7i2UyQ49gQ7CMegwnfVH8 -qzztHYrM1TahjpsuUu4TeRHJXta/3ooQduZoVwusRparn8fS7kRrEpKoyw7+oWCu -prTIdxRcfRw0mJFxdu73DPVLi4JRqFVyVOTQBneIhtbonBZ2ee2qDOunbSZRtJ+g -H8kgMlV4i7/JnjgLxuBsm2v59G9m9eqzDqyyByLbtxus6w6u76v2mQU9Awww/B53 -Dgde0tZjWv6yR+osddeWkXBfA48sRs0s8oNpfvsx1bbyTwA5qy6Q94c6WG61ZVzG -GepfISrxES/Ek1/vDMa7M73p5Zy5/c0cprAykaqa+heZF85+kvSEq6s7AwbuH+gl -3qd52sKQ6/JikiMehrdHoT1A4FvAGCviK0jKzFPtb6m65heKCM8syuujrdtXVWE1 -cLaCMRxErk4u5iwLEK+kdjJDFrpN2/adDYre2LBPMY0XOTK1Oyu4hwrEmY+HkDPf -lZrYol/t7NYPjYVb/0+UkaVYnbLdIYYyWWa3aQ1uIaZrqUbm5dDXYs7pt8lHLdyv -hkrInrq+J3EGY+5EN39gRKtZrxJnBRJUAr7GSHZH9uTLLa0XP9UXdKUX8V2T6E9h -EVSwQoW1tUaeAA== ------END CERTIFICATE----- diff --git a/sample_certs/testfour.crt b/sample_certs/testfour.crt deleted file mode 100644 index 9dfe4cad9fa81cb24bfc2645ab64cc4ae332307a..0000000000000000000000000000000000000000 --- a/sample_certs/testfour.crt +++ /dev/null @@ -1,31 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFRjCCAq6gAwIBAgIJANLPJEg9cV1FMA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV -BAYTAkFVMREwDwYDVQQIEwhWaWN0b3JpYTEQMA4GA1UEChMHVW5pTWVsYjEMMAoG -A1UECxMDQ0lTMRYwFAYDVQQDEw1Bc3NpZ25tZW50MkNBMCIYDzIwMTcwMTAxMDAw -MTAxWhgPMjAxNzEyMzEyMzU5NTlaMHgxCzAJBgNVBAYTAkFVMREwDwYDVQQIEwhW -aWN0b3JpYTESMBAGA1UEBxMJTWVsYm91cm5lMRAwDgYDVQQKEwdVbmlNZWxiMRYw -FAYDVQQLFA1DT01QMzAwMjNfQ0lTMRgwFgYDVQQDEw93d3cub2xkc2l0ZS5jb20w -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCf1YaCWTYhaepM1It+rh8j -rx68pMj1AyQkTJQ68PSiPAiNd6sIbPNRy08wjsHC9UZi/yxLtknA47vYiA2iRE+i -3ipny0TyP16kTEbfb83sqJprgmhShj4HZESsXK8khgXohp47sFRln0yZVsB9OPzG -32+ez4vMf8+5V+LklIgwl5XwP4+nsPtPo8vbhyO5n7XlV845eHwJDvBS4I7k4Y5A -XgmazR3C+Jkme1LWHLGKcbqVwjcvTXuQm396sOYC0Z/QjlK1sNuZ92882AH6Re5k -p+O4YIp8G5Rc7Oggw7xcSDMD/eDdDXUAEr6H/ql5WoKnOc40aq9rPZhlI+2x6iUd -AgMBAAGjbzBtMAkGA1UdEwQCMAAwHQYDVR0OBBYEFEc+yOVofbJrOjRLIWrOm2Vd -ydK5MB8GA1UdIwQYMBaAFAxXlsH8pKdVpaKjpsy/sgoUjD2EMAsGA1UdDwQEAwID -KDATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQUFAAOCAoEAKUDuUOoy -pVaimpJovD5jcnKWioJQwLm6kh/CiVI0GSc76qzUpPmMAjG1D43QPiHb8pH3y3PV -qSoaYC00St7bcgi55IaNK4o+aJ8bJWgGNnW59565Nam6nWIRkeklJkP1BoGNLKFP -W77zeJyLOlITUSTRDSa161MjxvbUR+HbJfoGi61aSMSNxOgJH1CNZQgXAgNm+5K0 -0+wYYpYQU9ttWud91+faz6U8EHTAXGhtptNoQxbJAkP2Ze8HwUEbTslKbPMk73oo -haom8aArdRP8GFjo2bfdS4m+fJekULx8NEmYCCWeOlXjnDjEeTZv6sBtRW6mpmG1 -2z4cLQVlH9PUIptDL088S/pHfBOKhQ47oVnTaF3rcKSXTS+IXylFTZBCQerIgGVD -5AJaiBj6qEFTAqdZ6R1mCd41avTT7y05V43do0n3BKuVczNEM0AyoiLr/vmLbTLF -jxu8G4U9u6xYWAM3isycICc3xnFNsaUQDXBeSw6toY59y49MKkZYLW4/TwEQlfiX -vEW2yuyc4n7I00YyasY2MxKNYSs/560/PqiQOKLZDe4+dt0OOUmOskSqOONDe9nP -xmm4xTPAYkkuLYYnq8vLb5MEaXpd16Vde7ke3ZbJBct9PYPu5GsziLXCfkLccQ4T -G/t004Zi2N2gJfDq1IUegxZm8Fjso3jZlmQB6WYZIVdbBn+dtRB8jhoUcYokxSFi -lbLEJibFsajjBDu/br+f70o/m8z7cYDVLS3PKRmevNi/eJRqRyoR+IKHp1egEu7n -sYekxJnHnMBpZcjxrqCsO5FEOT4wK1YSHRTC/SxZhBgMBft8WTQSn5B3xyZKhOIz -GdjC3Np7X9vXSg== ------END CERTIFICATE----- diff --git a/sample_certs/testnine.crt b/sample_certs/testnine.crt deleted file mode 100644 index 73567174c469e147548cae4d0db49237fb5df3fa..0000000000000000000000000000000000000000 --- a/sample_certs/testnine.crt +++ /dev/null @@ -1,32 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFjjCCAvagAwIBAgIJANLPJEg9cV1BMA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV -BAYTAkFVMREwDwYDVQQIEwhWaWN0b3JpYTEQMA4GA1UEChMHVW5pTWVsYjEMMAoG -A1UECxMDQ0lTMRYwFAYDVQQDEw1Bc3NpZ25tZW50MkNBMCIYDzIwMTcwMTAxMDAw -MTAxWhgPMjAxOTEyMzEyMzU5NTlaMHkxCzAJBgNVBAYTAkFVMREwDwYDVQQIEwhW -aWN0b3JpYTESMBAGA1UEBxMJTWVsYm91cm5lMRAwDgYDVQQKEwdVbmlNZWxiMRYw -FAYDVQQLFA1DT01QMzAwMjNfQ0lTMRkwFwYDVQQDExB3d3cuY2VydHRlc3QuY29t -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmIaPRWUkBQc/Lhm/1bt6 -zIF1mIRXPPWDp9MJl9kQTbXRs9bXMkiq4QCns+5Ms3KWgld4nMUuUOu+KBR2ohcP -FWb/gFhiaUtWkCVO9yJLxolKxPtVgkhCjIoa5VN3qQt9th0P2mBl3WMjFNWTP9VZ -MKKH5QZbMtGIxxWmyLjwYl4/DUluOvXVqDCxY+2HjjbtikXsRKIoham4d9kC7mQx -yI6FAgYXeEYEM7/jIoTfwEq0MMnxt3FrV9k6heuOONl9cFukaIxYyvafWl86DwtI -xz9B+SHsV52eRo4PhpbGyXzV6gyrJDD9bQju+twweiNJrxy2zVGq/ERbkAkHju5+ -tQIDAQABo4G1MIGyMAkGA1UdEwQCMAAwHQYDVR0OBBYEFL4zq8xDPbZthqo0FGXS -I+3pVsEZMB8GA1UdIwQYMBaAFAxXlsH8pKdVpaKjpsy/sgoUjD2EMAsGA1UdDwQE -AwIDKDATBgNVHSUEDDAKBggrBgEFBQcDATBDBgNVHREEPDA6gg4qLmNlcnR0ZXN0 -LmNvbYIRd3d3LmNvbXAzMDAyMy5jb22CFXdlYm1haWwuY29tcDMwMDIzLmNvbTAN -BgkqhkiG9w0BAQUFAAOCAoEAJuc6Ux+UyR4zOyxBM6kl4Xcct2JW9bmVVBxc2i+Y -9TXhrak582PkyDdhYfP40gjAHTrwZLmFJtWh3NvqXval12VPufRXmrcgZsWrjA7w -qwGtGPycKVHEipu348uG6nYA7D7SlOTo+5HZXpnws4W1YT43B3NeAgSO27s92KQW -G9TOHoqShv5v+HjjZlSa8zlDKChYdGyaSvCOZPYaBRNoLCcMD77/P+HRNFwAYw/E -KowTnv8rr5vMyMPE8W+6Qpa+7rivejQJ84fJKdeLFzrEBxm+e33cO1cOqx91h1Bw -OuqNzZxJpsBZATP+cFiSiAP9TLPkxkQEDnJCKOMAADQ0oeVZb4OYoXRXZi1LoUho -sdX1Q13Op2DjZbVgnqVHwiZy/iVCy1tYtxPtThy8SEWaYtj9m6xzn4yTc4ePunJf -T98jPYupneTfTfPajtsfUCVIxsNXgmPaYiY44v1Of9y8IhWl/bhvmjs6k/67wq9W -M9+OaDAlIPX4dslqeqhB50aJIfiRhFVGxVkiKGOuYgBKCWirNZ00CCWDskwTdlRU -CNftq91/kSLFZHr5Gr6Me4YBa72c6KBf4JmQthybzvfi2TcDEACZiFshaaTiJzjE -inxAyn2VaOEEYsu2tHjudtNgFkmXERHwKt6ie2QGmoZWCPmEkTgWHptN50rGWmKd -lAEqoxzC/c5dldBSwFHawh7MAZa65NXmVGuplDhmFVrPPSllpBgi9mZ05ujs9BWq -uqd7aIfRIsQHLSW/cnFwhfxQzmL3RhM/a55F7L3g7hH5Jdh8nnfsziP7g72Mrm5E -CB3IfvEHhCE+OlOKd8DgdTtmDpIAPEPEOE6irqFCYS+5lw== ------END CERTIFICATE----- diff --git a/sample_certs/testone.crt b/sample_certs/testone.crt deleted file mode 100644 index a5b43c5d67121e4f337aa456bc54699ed8e54b12..0000000000000000000000000000000000000000 --- a/sample_certs/testone.crt +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEwjCCAiqgAwIBAgIJANLPJEg9cV0+MA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV -BAYTAkFVMREwDwYDVQQIEwhWaWN0b3JpYTEQMA4GA1UEChMHVW5pTWVsYjEMMAoG -A1UECxMDQ0lTMRYwFAYDVQQDEw1Bc3NpZ25tZW50MkNBMCIYDzIwMTcwMTAxMDAw -MTAxWhgPMjAxOTEyMzEyMzU5NTlaMHgxCzAJBgNVBAYTAkFVMREwDwYDVQQIEwhW -aWN0b3JpYTESMBAGA1UEBxMJTWVsYm91cm5lMRAwDgYDVQQKEwdVbmlNZWxiMRYw -FAYDVQQLFA1DT01QMzAwMjNfQ0lTMRgwFgYDVQQDEw93d3cuZXhhbXBsZS5jb20w -gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALFy8795o9plD5FC4e5Cw6txHCbA -ipSVT1lQWgdRzcdOOMo9va0xB1K48o2TdbAIX2w8GJztuTq8P+JVkZn+T7GsTzSE -x9bVh6Qsa/jlSQlqiwFZ6Y9rH4MU9zinvtbIArGm68A0dI2dlR2+Bc5yJ+zxWqt8 -+H+OMJ6MPIGcmFT3AgMBAAGjbzBtMAkGA1UdEwQCMAAwHQYDVR0OBBYEFI6ED+hI -u9eor9qhYdIiU5gC18z9MB8GA1UdIwQYMBaAFAxXlsH8pKdVpaKjpsy/sgoUjD2E -MAsGA1UdDwQEAwIDKDATBgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQUF -AAOCAoEAhkZGzNiYBNELcOU/eBZJNOEgL1Nymh2NDU1ykec34pA+pQg0WWS1oG3z -MwzQ4SiHnNzpQHChXeBtUq0wKupDwOqS3aKlqHcgIxomj9OXZDdyErh6JPYvcDk0 -gn1E73M6FNGz61sb1cLvVxOJsntrXYM14+xeVcc7Kb6KER9b+FZZZuGV3YzvDPz9 -ljFNBeHyudDMd5Fg/FogJV231rNZBNHJBQ0+mbuSbt/90q8iMz/AN8s5mToY+o5I -EJHBtbQTR/OKr3FCyNASxYRP2vtHqSLDpjwt5e8SEhN0mRKedrGnTbc2634yCF8d -7egdHA3kJCeZZ2wmkA8RTcjxNZyjQoGfSbRzgVrAh9824l6MpZ2++Ao7YOxyisEm -MrB9VCDyBNsqxTkB+wUcqjhJw+fRupzlp5XaR4xVYdjy4N27O9SdFHIq/88WfyLb -tSzdWpSibgbqFrWudjyCPv1x1x386XG0JbdbYBuuhuKEFy80xiMHse5ocVT7UbQf -jT0PDMR1FhF7exw6CXN08RCyhF7VYheOwY45Dq2wsnUG0Eyev/4GYutJvOIHj7XI -PHqkyqV8JQivqHAvCozFRVMdno5JdJ4tHrstk7u7kxeeCWSPARN5yh2ABg/0wq3u -5EmgdEQ0F6eWzbPbLlffUrozqb1OME5lBRDcGJXnQ+Vvi43tUQevmRbSeBCZHkBC -vB2ib39CKWWmDtm1PSqyMFFLhSRqstXHXHw/6t5M8qvBjudiCYhi7W1TIvrpoThU -HTxNytNxYwkfJ1lH9SQCd5YpVKp8ytRF6mpJc4TlgsrtG5rruEc5sxQ1c2ttPy0/ -QsVZf7HT3bFSKg9+0qs1aQUBjzz1cg== ------END CERTIFICATE----- diff --git a/sample_certs/testseven.crt b/sample_certs/testseven.crt deleted file mode 100644 index 8d9699f8bfc7bd52b404e5168295b56222d2e232..0000000000000000000000000000000000000000 --- a/sample_certs/testseven.crt +++ /dev/null @@ -1,31 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFRDCCAqygAwIBAgIJANLPJEg9cV0/MA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV -BAYTAkFVMREwDwYDVQQIEwhWaWN0b3JpYTEQMA4GA1UEChMHVW5pTWVsYjEMMAoG -A1UECxMDQ0lTMRYwFAYDVQQDEw1Bc3NpZ25tZW50MkNBMCIYDzIwMTcwMTAxMDAw -MTAxWhgPMjAxOTEyMzEyMzU5NTlaMHYxCzAJBgNVBAYTAkFVMREwDwYDVQQIEwhW -aWN0b3JpYTESMBAGA1UEBxMJTWVsYm91cm5lMRAwDgYDVQQKEwdVbmlNZWxiMRYw -FAYDVQQLFA1DT01QMzAwMjNfQ0lTMRYwFAYDVQQDFA0qLmV4YW1wbGUuY29tMIIB -IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyyeHU6Bwg74DpCVBrHxIEsIB -YoumFehqWR20t1xV5h1TkZTJu+JloKBTgI5GFpii63f0lo34x0HpuxR4/iOh1CFN -dd1nODkze5fn2Ga6FlZFAjcPOIiWdb4Jr9BxqVWOhuB6HxE/xWRa5fmPmbgQKQCQ -P3ykPJamOw4k3NvVCwrMD4CnOH8JXJxtoQXqrUnXRMqWexEOH5meOA4w3rdNAX7a -8RpA8SyCpWtnqWOjz5a8OjSagxxfHrSvKreynaQX+I4mbqW/ZSIkDTXFpkypBSOF -oI3x0vMaXdwjn+77+YA6y8Qab56BJmUli1w0KIyUbVptJg54y+i2uCNvEcVDjwID -AQABo28wbTAJBgNVHRMEAjAAMB0GA1UdDgQWBBRi15HxCd4t4v4HVgGwUiG5z/ou -cjAfBgNVHSMEGDAWgBQMV5bB/KSnVaWio6bMv7IKFIw9hDALBgNVHQ8EBAMCAygw -EwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEFBQADggKBAGETAP9CkJZD -9z9rU/Vdi+QQg3yryb520IuSCEun/CRtAz5p68jCvhZAIv5uZ9100GX4MH1b0s+y -7SXckCgReA4PbIjtXC+khi4whhIe2L2Y8UNj1LIsxWgNZ/+4jfgor3i+/7pM5Xxl -pAVrXe28NnRr04peHUhEMxSHeCOiKKtcLnug0YMFlF0oxqTbdAJULATBiVlL8ZU/ -3uDX7athIC2NmtA5OLV1hiHxmm2Ji6+QHGYT9ye7AL260ZpBav791g98MFGW5Urm -w1rapcHIvZ8HqUia10FNh60yyYwGFLuvZtqwG2Bju4KAETl2dSalypiRjrhugB+X -jaFzSPO7vphBqjWAg2GEC2TyurBMvbvnWRNX2xX9voELtFV+Sbv48YeXqPXrqM40 -UpfBC3z+cW85w9873/nTs7pEMwE8dEpe+qdk7YWDXNY3QFrwbqsndWi9FUet4uc4 -E/25FRPmOxWMw5xTPU1fRwZds3ReGgPq8NASkZILbDvcmcfI09ZtoC+HsgC2/Viu -tAIdVNKq1LPfrlesLBar5boZrA5av+NYbg2mBr1mu5NI+4p53304D9ezQnefZsnT -Q+j9v9UeiHFzeo1VICroRle5vRvIS4mmdcu+zrYCi+bgIV7EY0u0Kvh9JCXO0Ui+ -hkIeWyH9czd44LnWWBfRVvJwAykcCpbSYHwSLAY6xy1jBcW/kx3IAFVffF8XGAtc -3w5CBa99rV2AW6PYILupZ/WpxopOREheYdmuO16L6D2ay8GrEc6GzZBGgl4sROhu -W3vn1jb3vx50l9isPBxhWjpjXuHsQ2Rm0GcgFA4CcB6iyuR9ElLo5kOjODiyEkrb -gjWx6j23/o8= ------END CERTIFICATE----- diff --git a/sample_certs/testsix.crt b/sample_certs/testsix.crt deleted file mode 100644 index fcb6a4fe4040c0a36966bf1e52161c5c38d053f3..0000000000000000000000000000000000000000 --- a/sample_certs/testsix.crt +++ /dev/null @@ -1,31 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFRzCCAq+gAwIBAgIJANLPJEg9cV1CMA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV -BAYTAkFVMREwDwYDVQQIEwhWaWN0b3JpYTEQMA4GA1UEChMHVW5pTWVsYjEMMAoG -A1UECxMDQ0lTMRYwFAYDVQQDEw1Bc3NpZ25tZW50MkNBMCIYDzIwMTcwMTAxMDAw -MTAxWhgPMjAxOTEyMzEyMzU5NTlaMHkxCzAJBgNVBAYTAkFVMREwDwYDVQQIEwhW -aWN0b3JpYTESMBAGA1UEBxMJTWVsYm91cm5lMRAwDgYDVQQKEwdVbmlNZWxiMRYw -FAYDVQQLFA1DT01QMzAwMjNfQ0lTMRkwFwYDVQQDExB3d3cuY29kZXRlc3QuY29t -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA43PvUMjt/2hRz9XemCxX -ab5aIt+7eZCz1SlwoaFwYEBdL6Z/nAtgu4OoRGULwQKNmYG4wRkpYvoF9PsF3ZiR -01nBkBkzer4Zf54d7heLZFiCauroXvtckdjNHWsxmN1hvcb4+R4SFIlyHgXu6h9p -gumI89yQoIITyY6hEWPE8BhvSt3Kt4dpHQSpa9yoilf25h48yTM0oq5PjcQ/UgBC -dHrDMB6nRVKzeysZvrDaSviDJ9D2YP7rQUFd7xQSRJf++tFf9nx7jaKZ147y/94p -4aNfT12adws/Pa38C/oulJlYnzduTRnuwGQULjv8j6EabdNjiKUkjcRM1UzqPY89 -mQIDAQABo28wbTAJBgNVHRMEAjAAMB0GA1UdDgQWBBQIOphWyK1fnDU2k2pzWGC7 -Ty+YNzAfBgNVHSMEGDAWgBQMV5bB/KSnVaWio6bMv7IKFIw9hDALBgNVHQ8EBAMC -AygwEwYDVR0lBAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcNAQEFBQADggKBALYPA6cc -8bQmBsUloPDH6qIQlh9V17ZYVca5Vz9ZByVEH8QjtRBWW6yN2Vopk+n7fbb4UMon -hEwk4bREDvxcZy6AI0kkKhhlFk7Xamt4Rq+DeAUB4vcGGgqkWVhYPDmGeanV7uIm -5QNEGMCeeg2xwQboW6QpoDIsPfVkLphkwD5hESIrSPuOwz397FXXghYaRJS+xurO -6pFLxRYSe6/XYG4E6M1wuadPbuFP5rrHcyFJuosGf340ahYv/uOo0lpMhkwLZ1OM -9VmlREFNgACSJjG9YVahG/Cm6a5gh373tmkVUBTj7dJUgBk1N1dufiEvHxxd8iuF -Jk4h1QlerKulaY/ZR8ptFkR/exVmB+POC/qexebaI7KOme+dx4Id0X3gpYXk56TM -N58GGNGRHAbpnzUHq2X1tv2J3dEvWkv9F/ad6y0qkkC5cqgna87cBk3h/sU9wYzg -lsGvKPHfegxCoTF03Sbus5+zmf9ieA8lNczbKFL61dCBNSKnjm+IKQHuPQ7I6Zqv -O+at1XSX3FvuseJwfhzMF07yNXbGOQEiLQBBaoNt22F7Mi9jcvGaAtUt6dLkw3Je -XQ+aC293zSdn6jnF+qDp296qPmjqQT+pUEvfAWWQXXuXeB9XyI/IrelKH3/i2+a9 -I5F1+SWt2Ii0PYaESCYciTylZNwDextjytRKTA0NQtd0i/fNl44svh7pwQiv2rf9 -DU6M81LLh8dTeh7BMFc8++5Y+P74bh7oplbQ3KF3GCRS/UjhGNBFDweNW8j0qrDJ -zdmqV6hzOYuXJDG+FKwiB1YZe8RHbRzUfK4gQnLc341v5mZ3sULG/oGEW1flu6ff -KwBvkF9tRoNwknU= ------END CERTIFICATE----- diff --git a/sample_certs/testten.crt b/sample_certs/testten.crt deleted file mode 100644 index ea6634601eaceb554a3e35807c8bd25e655c53dd..0000000000000000000000000000000000000000 --- a/sample_certs/testten.crt +++ /dev/null @@ -1,31 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFXTCCAsWgAwIBAgIJANLPJEg9cV1JMA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV -BAYTAkFVMREwDwYDVQQIEwhWaWN0b3JpYTEQMA4GA1UEChMHVW5pTWVsYjEMMAoG -A1UECxMDQ0lTMRYwFAYDVQQDEw1Bc3NpZ25tZW50MkNBMCIYDzIwMTcwMTAxMDAw -MTAxWhgPMjAxOTEyMzEyMzU5NTlaMHkxCzAJBgNVBAYTAkFVMREwDwYDVQQIEwhW -aWN0b3JpYTESMBAGA1UEBxMJTWVsYm91cm5lMRAwDgYDVQQKEwdVbmlNZWxiMRYw -FAYDVQQLFA1DT01QMzAwMjNfQ0lTMRkwFwYDVQQDExB3d3cudmljdG9yaWEuY29t -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmBXAPjqojPUGQQpKhuJm -P8y9hsulRsNmsPyXkuCeXTkQV/Dw0X/8G7WXnVAX47uF7KYhY5hnS2GY5gsAhN1h -vTfHpMO2Pc/e7UjHBr8lyffZ6AH/gEqKRMh3Ru6fEBs4cYCZJZ7X/DfsQ+NTSbgb -auiTcVW3yezatmJ3WjDKw8jJDFR+GrHf2AHzbaxLFdUTpFzPJ3wdVqLvkiUdfW9N -xtZazlymCR3onPJ8CYOtSerpXRRqrSk8i9IefEnbVcI9V6RtQkIpJdt50V3MOowV -tre3yEnBsDrNLr9zEByFMztAzJ404NqDEEchAlf4EdX2iJeX9yC1xH1VMJf9Mf05 -ywIDAQABo4GEMIGBMAkGA1UdEwQCMAAwHQYDVR0OBBYEFH7yy52fPxVu7dViut5t -VDorOwW5MB8GA1UdIwQYMBaAFAxXlsH8pKdVpaKjpsy/sgoUjD2EMAsGA1UdDwQE -AwIDKDAnBgNVHSUEIDAeBggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMDMA0G -CSqGSIb3DQEBBQUAA4ICgQC19RH1P1Y2V/aHXwqrebQy7rPQs2bdFMo0GKeDdeBE -Ck8+XzFgVOSh+AWFiqcFBy13N+hK/lLRB9dMYwxzJ7SXoyDX1zedC1a7SnPwv8Z9 -xlJPHDxLuzJVPATGRNSsntvFKr9WdghthnESl8he5LqIWScPtem55+BgTWQ+ANRJ -7kKlLtCvzygX+c8xonN6ckRJMfaKhDos2RQxzdwd1xfry2ErpeNhIweHWEM6QTIt -7g7VTHGVZlESjjzEb6EkyALEentZ9HTN2CRSKwrZ0/TUofhQ3ir562vdsRjJZ66W -2JxczSkoC1clA+tKkvDBgx/PQrB7OkK7UxCKeYrTikdD8QShJg+gfTYyAcqBQHcl -waqZDoUr8TPjbpVJjd1o0bIMCh0iptGAUgMre7DZ+u9XmqUMU7NBorx4YzyB7tRB -n/pHVZv1rSxSASnTgK2VE2xa7YRqB/sqbcpyzK/kal+TBJHC7aJ1JNSBRlippvep -SMUJZpnxbh4TSKdAT9/FwvAim6N3B/NckhwNIr7wjbKNIww48DezKSkUZKkhceFX -UJ858hTJKD4MU1MiG05IOpCpbP7mCyq2cZevE5qGLnZIPI0RMfDDccH2mNdD6kC2 -dMagppT3vJV/gyVEezekQ1Xae/jQCekyA/zUZJWdaedBKFZ/7BmvqgvZ5XSDDJBG -myKs9WrJYxewPwDNkKbkiqxZ4FQyWsyPLSex4OUdqD4tcucuhpLZ4ubFbhTbZOMV -r3K9aRzxR+nAhTgzhQf6BbxELDGqe3cI102DvxlW6oPkInLOSWENs1ngEZ29zedu -AOZFn51xzkot5IRiMozPkPzU3wEc1C3Nmyi/eVsLpr9y ------END CERTIFICATE----- diff --git a/sample_certs/testthree.crt b/sample_certs/testthree.crt deleted file mode 100644 index 9e9b6b4000aff9d7ea12e65dbbd3d7fd1434f1b8..0000000000000000000000000000000000000000 --- a/sample_certs/testthree.crt +++ /dev/null @@ -1,31 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFQzCCAqugAwIBAgIJANLPJEg9cV1EMA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV -BAYTAkFVMREwDwYDVQQIEwhWaWN0b3JpYTEQMA4GA1UEChMHVW5pTWVsYjEMMAoG -A1UECxMDQ0lTMRYwFAYDVQQDEw1Bc3NpZ25tZW50MkNBMCIYDzIwMTkwMTAxMDAw -MTAxWhgPMjAxOTEyMzEyMzU5NTlaMHUxCzAJBgNVBAYTAkFVMREwDwYDVQQIEwhW -aWN0b3JpYTESMBAGA1UEBxMJTWVsYm91cm5lMRAwDgYDVQQKEwdVbmlNZWxiMRYw -FAYDVQQLFA1DT01QMzAwMjNfQ0lTMRUwEwYDVQQDEwx3d3cudGVzdC5jb20wggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZRWvgzcME/J2drVExUBw8D/e0 -I1VZrJuhcqrsMtYfN6rHU4+Ornu4nJN/wVlgYOUCfL8dD9XksUdwNRqQECXh4PNH -xOJwKVPtkH2U8YB1nHDs6EaAKkyPSafe51CDzNq2YrQF6LAR2hLL2GFMrkzSe7m8 -ZTVXRxAdeRLAs58S+SGjOw9Rt9B2D0VSuYp/MWruCNYKf1x95VG+oQw2YlJ29Oyu -mdz2cFQLoK2pOU+Tl10/03kNxKZY5KUuwWZ2sANgfY68qr1H2bqVwRRF/HP5V1zF -6yl+az4tFSrIr/xoSJdZQ5tRMa5fTGQHKeBnrTi6BdCegaswBjiiEkAjnPcTAgMB -AAGjbzBtMAkGA1UdEwQCMAAwHQYDVR0OBBYEFNmH8PR113PRvTUHd/oOT13+XWzo -MB8GA1UdIwQYMBaAFAxXlsH8pKdVpaKjpsy/sgoUjD2EMAsGA1UdDwQEAwIDKDAT -BgNVHSUEDDAKBggrBgEFBQcDATANBgkqhkiG9w0BAQUFAAOCAoEAo2irIFAbNnnd -KKVyhbBv39NelaXG7pAPS+Gbzzmt948/XsAj80aXUF9jPCucs8XzFS4+5iLPQ3VB -vt8RO34M8ZjzI4JrKDMB8okOgSB48w4rdtdXQLkALmAsYmYfjlpcfYlHEgNptHrB -k2OiDIl+7Aa3mxHLNZhOtsiymwojRGExd5bBFedrOXhDcp18KIqT4Wa9QlBuxGM3 -YdQ/Ri7U+XHptdbtTog1jwgWjbHjGFlU/5mANgrC+tUvOxXlch+xRlTCHGbxCXhm -nriZoYjyC73cqDc7dq+utNB20mEpAvg4xQfVhxy66JXhI8+f8pMvJDpGH/LB8IzS -nYlTaSDKRm4onPobWzaSLo0QALYZD3IJl/fERc3CfvGz4e8brYMsvChG+Zab1xkN -GZUDoKe2bXQxt5g/9BWWwxqVukDAuX550d1NVFflrmDpzGrZEQOKTS+rVuWhYUzt -EKPC0s5bcglOwP8GGPrtHNc4IHqWnGWHlCLhyEC0gKIWTxVi7T5SCQCmHMUsfzXG -Kf3LVeT4SVlcM5KUvqynXYjZMre2GuD1wxhsTC5GuEra7Z49DPq+chlmAEdwWalZ -ocemAXuYa31qd4dqKtKigZ3ZVyaCuvzHbl4r0eyYo2NVsCXzn0siMdaavCtfhN7T -xWPn1M8yAtkpaQpbitiJuuwYX1dUZYHgLUAZy/RFhVCuALGWduTSZADE60TiLzx7 -ZrSpjMcd4m2/Yg7p9eFSS+2StJG9Q6iGBDze/Dxficd+JnGd30Pd2IvGXUevIrub -BevpJy61plrutJiSuVSmWO3BCKgTW/qsmwLStOHDXLXU77w+IF4bb/P5pAxs2Bu3 -L9RAYufbLw== ------END CERTIFICATE----- diff --git a/sample_certs/testtwo.crt b/sample_certs/testtwo.crt deleted file mode 100644 index fe1e529a80d58917793ae37df81566f1c91ef085..0000000000000000000000000000000000000000 --- a/sample_certs/testtwo.crt +++ /dev/null @@ -1,31 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFRzCCAq+gAwIBAgIJANLPJEg9cV1DMA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV -BAYTAkFVMREwDwYDVQQIEwhWaWN0b3JpYTEQMA4GA1UEChMHVW5pTWVsYjEMMAoG -A1UECxMDQ0lTMRYwFAYDVQQDEw1Bc3NpZ25tZW50MkNBMCIYDzIwMTcwMTAxMDAw -MTAxWhgPMjAxOTEyMzEyMzU5NTlaMHkxCzAJBgNVBAYTAkFVMREwDwYDVQQIEwhW -aWN0b3JpYTESMBAGA1UEBxMJTWVsYm91cm5lMRAwDgYDVQQKEwdVbmlNZWxiMRYw -FAYDVQQLFA1DT01QMzAwMjNfQ0lTMRkwFwYDVQQDExB3d3cubXlkb21haW4uY29t -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoGxCykz5LLOZNCPa4+zl -qbs5kbUSEZupuN3p9w5gSeAlTwkrD1byHfAdakJMihtgVn3LQEOt7deiD1ikn8/K -oxMxoPTkrktGpg/I9z75vsEhpd6n6PBMv3dxGuZNklEbVBvOlR4Pqulh23vXsxfT -L08eVFGt3DxXM5IwqW6e8tuPKHW3Y/RsBiLfaIzKY7GVx2tz/CeGDaQSiXYrGzOS -faWwpdfIyOct1nbvZx3ecc8ntUzrVVXiQ1FQiDjFOchD67ehyR3vs9FMSO31GIXB -iCdE7CSsisvP4vdLbCCUqz/r6H1PrIMWyYJ0OcbMo48+wgrHRpEH755dg/IlKMcP -mwIDAQABo28wbTAJBgNVHRMEAjAAMB0GA1UdDgQWBBS1YDNTEnqdmYfLjkRmd2bJ -BhIxZTAfBgNVHSMEGDAWgBQMV5bB/KSnVaWio6bMv7IKFIw9hDALBgNVHQ8EBAMC -AygwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEFBQADggKBAAuaaeQW -CHJdsecgrtljV40v8M3+6sZSk/nACkr4x5C9ny0LKdrdQqcg9k3PBlgJm9Ru2qb0 -CWtmEMcz/4qH5bcxZqCoRwOf0Wgvso4PrVInnIf5gN6daMN5WV8LS06czAYRvT6s -G0E5Y10nH+281LcYalo/nAIgwmHD4EdzgMouy6JlBq98RcIXf9MicbpombFYUZ8W -6d366X9Lcu9VU0Jkvybg45ORTirOJnmC3QA2J198tpdC7O+3kTDJ+KrWyAx+bjjT -SakOQeJ/6LjYjojQPvcrNyZQMGeqd5YrDcQHJi19hqY1s04R/X9U9j/e9iJr1+YM -QeIr8uF8+YQY16vusG7r+rQDQyDvnmO0x/v+0opGFgRifajsMMxrCmBStYYLUT+r -vcTEcA9aQ1BDyOeEsHXegbPzjaBsAsS5Oo5m/AA/gu094mR2NRmDxmRH4VKCUE0o -jPhlLqOV1xN/zOId67xpr79MqLTWCUcvkZ3pRGC+PnUzg09l99FpuhE2qbkfsd7P -9mpE7vqko/t3H1tZGuiRz0WfnPn7qNONYP2UhaW/UPiSOWJcVyv4wu2wu5ILF2K5 -bJ0bgwyVtrMcS7O1cYhKBkyq6RJpT8DecIoQMVBAuG36wJKCvI/hCOWoedgqz7NO -B0ji7DlZrICYIoCrbBM44QhbaWOjGQY7KVMxmYRv6/RTC/9Ms+B0owZFvQzuJWx2 -hgc0+JYEkJzRbxTOubPWZ+dPN46DHPL1tUIgdzizPmaqUxqW1B9kzVIq4Er7MUYA -a5bw7QhpQ169u5zOU0DPPdngil5O/Z4U0Nb18NqKRk9ALwDWvBakPRsUN++qQIVV -QSUOoSOywEhq3yA= ------END CERTIFICATE----- diff --git a/sample_certs/testscript.sh b/textscript.sh similarity index 100% rename from sample_certs/testscript.sh rename to textscript.sh diff --git a/validater.c b/validater.c index 0547c1e59e8f7ac7ef9ddeb17b1e39af045f31c7..f39c56f44c865dc9b5bcef827ce3c15e38671794 100644 --- a/validater.c +++ b/validater.c @@ -1,29 +1,34 @@ #include "headers.h" int validate_certificate(char* filename, char* URL){ +// loadf certificate from file X509* cert = load_cert(filename); +//check if url is the common name of the certificate int in_host = check_name_valid(cert, URL); + +//check the if the url is in the SAN list given that its not already the common name if (!check_san_valid(cert, URL, in_host)) { printf("SAN \n"); X509_free(cert); return 0; } - +//check the expiry date if (!check_time(cert)) { printf("time\n"); X509_free(cert); return 0; } - +//check if the RSA key is 2048 bits if (!check_public_key(cert)) { printf("PKEY\n"); X509_free(cert); return 0; } +//check if CA:FALSE if (!check_constraint(cert)) { @@ -31,14 +36,14 @@ int validate_certificate(char* filename, char* URL){ X509_free(cert); return 0; } - +//check if the usage TLS is webserver authentication if (!check_ext_key(cert)) { printf("ext key\n"); X509_free(cert); return 0; } - +//clean up X509_free(cert); return 1; @@ -47,8 +52,6 @@ int validate_certificate(char* filename, char* URL){ X509 *load_cert(char * filename){ BIO *certificate_bio = NULL; X509 *cert = NULL; - X509_CINF *cert_inf = NULL; - STACK_OF(X509_EXTENSION) * ext_list; //initialise openSSL OpenSSL_add_all_algorithms(); @@ -64,13 +67,14 @@ X509 *load_cert(char * filename){ fprintf(stderr, "Error in reading cert BIO filename"); return NULL; } + //Retrieve the certificate from the bio if (!(cert = PEM_read_bio_X509(certificate_bio, NULL, 0, NULL))) { fprintf(stderr, "Error in loading certificate"); return NULL; } - + //clean up BIO_free_all(certificate_bio); return cert; } @@ -80,10 +84,13 @@ X509 *load_cert(char * filename){ int check_name_valid(X509* cert, char* URL){ + //retrive the name from the certificate X509_NAME *cert_issuer = X509_get_subject_name(cert); char subj_cn[256] = "Issuer CN NOT FOUND"; + //retrieve nthe name as string X509_NAME_get_text_by_NID(cert_issuer, NID_commonName, subj_cn, 256); - if (check_if_url_valid(URL, subj_cn)) + //check if url is same as common name + if (check_if_url_valid(URL, subj_cn)) { return 1; } @@ -96,14 +103,17 @@ int check_name_valid(X509* cert, char* URL){ int check_san_valid(X509* cert, char* URL, int in_host){ + //dont proceed if the name is the common name if (in_host){ return 1; } + //get SAN from the extension X509_EXTENSION *ex = X509_get_ext(cert, X509_get_ext_by_NID(cert, NID_subject_alt_name, -1)); if (ex == NULL) { return 0; } + // load extension info on the bio and the retrieve extension information BUF_MEM *bptr = NULL; char *buf = NULL; @@ -119,10 +129,9 @@ int check_san_valid(X509* cert, char* URL, int in_host){ buf = (char *)malloc((bptr->length + 1) * sizeof(char)); memcpy(buf, bptr->data, bptr->length); buf[bptr->length] = '\0'; - printf("%s\n", buf); - //Can print or parse value char *tok = strtok(buf, ", "); + //check if the url matches any SANs listed in the extension while (tok !=NULL){ if (check_if_url_valid(URL, tok+4)){ BIO_free_all(bio); @@ -175,6 +184,7 @@ return 0; int check_time(X509* cert){ + //gets the expiry date ASN1_TIME *after = X509_get_notAfter(cert); if (after == NULL) { @@ -183,21 +193,21 @@ int check_time(X509* cert){ int day; int sec; - + //function to that measures the difference between the two dates ASN1_TIME_diff(&day, &sec, NULL, after); if (day < 0 || sec <0) { return 0; } - + //gets the starting date ASN1_TIME *before = X509_get_notBefore(cert); if (before == NULL) { return 0; } - + ASN1_TIME_diff(&day, &sec, before, NULL); if (day < 0 || sec <0) @@ -216,13 +226,15 @@ int check_time(X509* cert){ int check_public_key(X509 *cert){ + //gets the public key in EVP_pkey format EVP_PKEY *key = X509_get_pubkey(cert); RSA *rsa = NULL; - + //gets the rsa and checks if it is there if ((rsa = EVP_PKEY_get1_RSA(key)) == NULL) { return 0; } + // checks if the rsa is 2048 bits if(8*RSA_size(rsa)==2048){ return 1; } @@ -232,6 +244,7 @@ int check_public_key(X509 *cert){ int check_constraint(X509 *cert){ +//gets the basic constraints stored in extension X509_EXTENSION *ex = X509_get_ext(cert, X509_get_ext_by_NID(cert, NID_basic_constraints, -1)); if (ex == NULL) { @@ -253,7 +266,7 @@ int check_constraint(X509 *cert){ buf = (char *)malloc((bptr->length + 1) * sizeof(char)); memcpy(buf, bptr->data, bptr->length); buf[bptr->length] = '\0'; - + // checks if this constarins is in the list char* point = strstr(buf, "CA:FALSE"); int cond = (point != NULL); BIO_free_all(bio); @@ -264,6 +277,7 @@ int check_constraint(X509 *cert){ int check_ext_key(X509 *cert){ +//gets the extended key usage from the extension X509_EXTENSION *ex = X509_get_ext(cert, X509_get_ext_by_NID(cert, NID_ext_key_usage, -1)); if (ex == NULL) { @@ -284,7 +298,7 @@ int check_ext_key(X509 *cert){ buf = (char *)malloc((bptr->length + 1) * sizeof(char)); memcpy(buf, bptr->data, bptr->length); buf[bptr->length] = '\0'; - + // checks if this usage is in the list char* point = strstr(buf, "TLS Web Server Authentication"); int cond = (point != NULL); BIO_free_all(bio);