From 5e57093ff961341411594b41f558256c15007ff3 Mon Sep 17 00:00:00 2001 From: Neeserg Parajuli <neesergp@student.unimelb.edu.au> Date: Thu, 24 May 2018 11:39:56 +0000 Subject: [PATCH] final draft --- README.md | 21 +++++++++ certcheck | Bin 19384 -> 19384 bytes certcheck.c | 10 +++-- csv_handler.c | 8 ++-- csv_handler.h | 12 ++--- sample_certs/output_explanation.csv | 13 ------ sample_certs/sample_input.csv | 13 ------ sample_certs/sample_output.csv | 13 ------ sample_certs/testeight.crt | 31 ------------- sample_certs/testeleven.crt | 31 ------------- sample_certs/testfive.crt | 31 ------------- sample_certs/testfour.crt | 31 ------------- sample_certs/testnine.crt | 32 -------------- sample_certs/testone.crt | 28 ------------ sample_certs/testseven.crt | 31 ------------- sample_certs/testsix.crt | 31 ------------- sample_certs/testten.crt | 31 ------------- sample_certs/testthree.crt | 31 ------------- sample_certs/testtwo.crt | 31 ------------- sample_certs/testscript.sh => textscript.sh | 0 validater.c | 46 +++++++++++++------- 21 files changed, 68 insertions(+), 407 deletions(-) create mode 100644 README.md delete mode 100644 sample_certs/output_explanation.csv delete mode 100644 sample_certs/sample_input.csv delete mode 100644 sample_certs/sample_output.csv delete mode 100644 sample_certs/testeight.crt delete mode 100644 sample_certs/testeleven.crt delete mode 100644 sample_certs/testfive.crt delete mode 100644 sample_certs/testfour.crt delete mode 100644 sample_certs/testnine.crt delete mode 100644 sample_certs/testone.crt delete mode 100644 sample_certs/testseven.crt delete mode 100644 sample_certs/testsix.crt delete mode 100644 sample_certs/testten.crt delete mode 100644 sample_certs/testthree.crt delete mode 100644 sample_certs/testtwo.crt rename sample_certs/testscript.sh => textscript.sh (100%) diff --git a/README.md b/README.md new file mode 100644 index 0000000..5f24762 --- /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 GIT binary patch delta 1851 zcmdlnopHx>#t9cVT~rvrz-8ji{el9DU^at*q63&AFnJ~8Z4uc|D>uGb$n;gH`xWnk z+lq_Y&2L+5p21Yb%ORlPz~FKG;DX6g0-qRFCi4oGG1^aV5p-enntW2Qj?rhbhma<Z zkAefkevol5KK_{;C?qm@qR;|HpUFnTnv6c1V}zBN82u(Uh*~iQOx`V;$oPD+te6DX zdL{;j)&r#q`x7SHi>YzFW`S~3C+CZ)aZO<bb7l8uO`b2N%ykyV&7XWmOqolS9V%Nr z`KOp^y@E$)?F*0Nt{*^7@Hp=J14O@g@$LWr7mvUH|NlY{L`Z)B|KFqY_zS}yAlmhV zM|bE8k8alw9-S9=F*7hQ?8{+bU;rst08-d`pj6ePoArvM0)t2A!Cguq1&j;~4EsA2 z92j2w{r>;|4v;0UqdmG^BR=c|v3G%peINp4%I|MrYkqh%*ZyDto7D+5O9pP%YLHo* z;AROxoOAqzKS*!4>yOF25~hrcCOb=HF`7?aCn3SeGx@lLGGo@{*Am8z^CrtniaJmD z^8bJ5A&+j?6P?#U))s)YcDg?BXs&(0P|5{%<jZ761_qDgt{1>=JMQ`dM8CN91?0fv zFXSedOUl+4eEt8w^+2hdM>p$HafqL#;qE*Ea_76R|Nny=h~!spXov-aq<TXyfTTge z2{M0QF;vnFB-!nH!K0hOqxk?M$dSxot6f3Cf5D?0<Za^%9^D=s9^I}lJUY*Tlx&3S z0!hE{V7zdQfdM4H?+GYDb{>DBKRHNBNBPlbu&Z8x^r(IL|9=N4l3tsGRY6kZgUJh} z#MD+IseAhw8hakyzCThtjCoWw7#J8zSYNbEzAI(T_+ql8v<jo~WIJgYMzP7!(kYCN zlMhJyGJXCy`JlAeWK|h4M%BqSGLn+spFkn#`T>^WAl^UzqIq(jj4b2S$vrY2LVrF$ z<7WpXe(rploGqup<@6Dx_4tdfPm|}$$*A1<2oHTj5v-vf^=a~5IZ31aAbpUKet{9v zi$Id7A)WtWvWC2ZiY&;bU>Q(oK7fbjgMH7Tp(*`wa*n(VZ|nzfa6SM9=fcSXa$<~D zlhx&n1k2x}dLw*tmYgQn-uDn+uzm#jLOJ{c+!t$vu=?Wa<U4XwhE^a;aCt%&BnfsZ zJh{A@tS+ypJOeI)?uQRhKTMmPEicP=;~l~aGVdn~%88n9egFUe$;15e436QBVUC^u z9YY;Me0o*=_!JmIJ$iLPbg*aVH_y(iKAKNGn%{7E9Q@1tV)^EG@_vl<6W;v)56Uqg z-a%5$v-ki13otS;^ndvO-++;ULGJVa{{f5)3}-+8|6jn!z!3H2|NjY$3=DU_{Qtj! zk%2+{+yDO;7#SG8fBXOc10w^&jqm^e3otP-?ECruzX1~igUhe~{{xs97-WC{|6jnw zz|j2r|NjY03=AB9|Nq~>#4vfcqA8=n<d2H_j0+|!DycJ`o9wA1&lo;AQ%Roj*yK(n zdB)JmE0yFK4^2L)B+sZi`K6M)qWzcu{~v&Ip(CF_8<R6H8`Etbb`AyxP|>5p$iVP_ zvZk`U;(@RK|33re7nmyMhm0U)AXO=h3=D0PGnM5T-%RdQmS<c#d8M*E<Lk*MmE{=& zHosIB=bBugqA*D>fKg;~px%5IMv=)Mjl>xhCVw;%Wfo)*n5<|l&bVQ+qOs^^KVu;# zMu*9XrtXXalUJJVXB3#6X{OI8F?pt0Jma~^Kh5+dMHC>F5y;6P{Fae{L5P8mfqk;0 z`F_q95)j#ElQ}KsGb(IeX~E9O7&3XIWjy18$%0n#jJlHxt==<Eo}6fXobkbCO`Cjf uMxn_w-Ss(P=88<d=x)xb0JTM7vY>}KC!zuj^f2e#0Id!;Y@X<$&I|y<E99gA delta 1815 zcmdlnopHx>#t9cVQ&bqhAZ6ms{elLHU^at+q63&=FnJ~8ZINH|c`yE3>)!Qb{e)_> zjSOY2zk=><p21Yb%VD74z~FKG;DO0f0-qRNCi4oGF~(1B5p-e9ntW2QjxlGlhma;u zj)DWjevol5KK_{;C?qm@qR;}yoXJMQnv6M{V}zBN81p7Kh*~igOx`V;$oPJ;te6DX zb|waf)&r#q`x_?Pi>Yz_XMu8CC+CZ)ajjqlb7l8;O`b2N%=Hk)?Vo%`Oqt7)9V$C} z@=r0-dIOKn+8Z9nU0;Bl;Bnmb1C;&&qF+4t_W%Ej+u#5Hf1w5<1i%0P@6mbuh2{?s z?fSx_JM@M}x9ba!&WpR485kJ$<uEWXfE3ICDQrDZs_N0rdPY)#!K3rwE+voxMg|6k z{VNn47+!q+{{R0Dh6Dx%hS$*`Gj@V3+yx@`fe4T(pTB{v`QXu9`+)&$RwL9b8Ms-e zL1wK2n*}mT0Av(MuRBO@x9f+=tP-Y-vnE?hWJ&3N{r}&icj||K|Nnb*w_X5Io!3BW zB_{8eP-aY;{8+*`aup*3gGaaPiCzEy|Np-)6zZRjFaQ5{9s-F&bYy@`?{t0O(Omn0 zp_FR}$i*-7L0XTyUI1}mA^PIn7my#0zYv?8FDa{>@%8`z)&r$-9^I^a#Ua5W4fo0m zkXN2fUN0%d=so$Aq>QK@$idyN7d*NdJem(Mf}HyM^W@)>3XCf!%ScIxfdqO!gM8!q zVjqj5132iVC)-KsxSfLvgOmt;`Tu_hDBxe4gH=IN+ZnLKTyJ<Z*WO?#UE|U1`T?YP zDw4*VlQ&37FcwTcDP_%gWiqR@3ZwjFEom7>rpfNoDU7<4*GT&^-k<zSTGv?c^Z)-R z4~KemKJ{pRqu|k5`vMjZ=AS_Rcm3dT+!dUpVD{usj*^jOY@A#n<01Is12lAZKtlJ# z<cl(zTzVftI*-37`!u;zPR8!UM|jZ5ieL>oH;`4`t}l>M5;rvdR!@$Tl@aL!nTQ&m z(UbdR6&X1vZ;+MbVuywx`^U)<@-ph4AHX5|02C^{AO8REc0J?K?fWCe!<a`^gMope zg!P5m$N&E)Pn1!gY%9khnEW2q7tWKz<TSZfzK8hY;|Gv0?43WreKA7_t1k{hti|RF zwGWfyWu-+qAu5oQ#kF^n`(+iFT0TtPC@aA!0QE@I<ZyXe-Xrf2{@|G0C@<!`@I5HD z()9S{TR>@*fnVN*fx$7{G0d^^zhkIlh)=Jo9-jh3s7J3Zhz|Db{N~wt)khN)xf~t` z|1!U5-+WHqkFmbs&Hw+Pg5$zFP+n$WIQIVke*s1YhWroz{~IteF#P-U|9=1@1H;<S z|Nj>-GB8+u`Tu_cBLl<UFaQ5<U}RwU{`LR=3ycg5_rLxB|ACQ#;lTI*{{@&B7&iU< z|KEU#fx+U}|Nj9@3=D$5|Nk#wVqhr${r~?2CI*H-fByg9z{D_lwxTJcz~qaH`iu>e z8I{x-*G<+`l4mrZ?5QNrxNLH!l02j7<W41d#zm7?D#<glPClt5uPFZo;${X%K7lqS zXI?g@$2{yD3=E(mMTL=p;rV1vWqHLFU;qFA1j;ioRm^W0LCQd?QWzN+swR6X%QHTh zoT)6&ICFBRvOMGc$t#uR8C^D?R2Ju&q!++wvN=$1J`1DC<c~(;j1H4O8i_IsG8jx& zG!|#PFj>)9bhDqa5EEm<<U~_<MuW*KP4_bzOwKgZXVjTI(=49x(d3_I`jRFJkctKz zOAHJQZy6aFgc$f3_$ND>@8|p=0g?SQnbTrEqr>Kv7VM0S8Iw0!#xow6ENB(a=s3C1 z>OJG~$%)p-8DDJHw8`gYG@3lqU7r(XuF2$!?&h2hP+J@(3woGyA}Y5)4|C27(5mjj J=7}Ea%mC=g+XVms diff --git a/certcheck.c b/certcheck.c index 16ebfcd..7aeb082 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 e9dd6fc..bf136ed 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 f8cfd3e..4d199a3 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 4cc2b40..0000000 --- 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 7c8d904..0000000 --- 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 7b25d86..0000000 --- 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 03d81da..0000000 --- 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 5d4fd83..0000000 --- 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 5ce0a06..0000000 --- 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 9dfe4ca..0000000 --- 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 7356717..0000000 --- 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 a5b43c5..0000000 --- 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 8d9699f..0000000 --- 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 fcb6a4f..0000000 --- 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 ea66346..0000000 --- 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 9e9b6b4..0000000 --- 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 fe1e529..0000000 --- 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 0547c1e..f39c56f 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); -- GitLab