From f7a151b1adaf5d2aa67fc7540734dbd6470da92e Mon Sep 17 00:00:00 2001
From: neeserg <n.parajuli@student.unimelb.edu.au>
Date: Thu, 24 May 2018 18:49:36 +1000
Subject: [PATCH] passes all test, but not taking input form command line

---
 certexample            | Bin 14776 -> 19360 bytes
 certexample.c          |  27 +++++-----
 csv_handler.c          | 110 +++++++++++++++++++++++++++++++++++++++++
 csv_handler.h          |  33 +++++++++++++
 helper_checker.c       |  11 +++--
 output.csv             |  13 +++++
 output_explanation.csv |  13 +++++
 sample_input.csv       |  13 +++++
 sample_output.csv      |  13 +++++
 testeight.crt          |  31 ++++++++++++
 testeleven.crt         |  31 ++++++++++++
 testfive.crt           |  31 ++++++++++++
 testfour.crt           |  31 ++++++++++++
 testnine.crt           |  32 ++++++++++++
 testone.crt            |  28 +++++++++++
 testseven.crt          |  31 ++++++++++++
 testsix.crt            |  31 ++++++++++++
 testten.crt            |  31 ++++++++++++
 testthree.crt          |  31 ++++++++++++
 testtwo.crt            |  31 ++++++++++++
 20 files changed, 554 insertions(+), 18 deletions(-)
 create mode 100644 csv_handler.c
 create mode 100644 csv_handler.h
 create mode 100644 output.csv
 create mode 100644 output_explanation.csv
 create mode 100644 sample_input.csv
 create mode 100644 sample_output.csv
 create mode 100644 testeight.crt
 create mode 100644 testeleven.crt
 create mode 100644 testfive.crt
 create mode 100644 testfour.crt
 create mode 100644 testnine.crt
 create mode 100644 testone.crt
 create mode 100644 testseven.crt
 create mode 100644 testsix.crt
 create mode 100644 testten.crt
 create mode 100644 testthree.crt
 create mode 100644 testtwo.crt

diff --git a/certexample b/certexample
index 2ea29dbca7ad1eaeebd9e98a82c350f58bed7196..082ae97c1f32709ad96cb93d5069221a17e32515 100755
GIT binary patch
literal 19360
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

delta 6303
zcmZ25opDF;1PLJqJ_iO6fRGFfKMW^oEpud%1&J{*z-R^r1+V}k0|Nsah$ROi7#JAj
z5+DpHEx-)n8cY^sln{g}l7LD|$W69lj8iO-f~YBwg4hY8Yaqf5HIsKT2Eg<pESN0C
zlqFe_w{wBr0i%cnVSeeBlb%dwV%@<^3=9lPljkytb0{$|Fj#)-mYIB!QD*WDCXdMt
z%o39=m<<^3OjcwTXZ!&oCvRZ(m@L3jF?j(?0^_;KjI8C1+d$%sAHn2t5IOk+s|4dK
zFiU|=g7NC)KsJ4@$BYaNf(%j&3W}S%*!D9{_UDjPE6LAhC@v`~E-7NjP0dX%sAR}Z
z%*n}5W+*O6Ni8a3NGmVOEJ>Zbkt5QD0pv^u24)5(1{MZpFwMjOf(&316mB3M6Os%o
zR2@hU8v_#q^W<1gX+<t31_l8J1_qJLOkM^CRt8Zhzf>xd6J);p<e8lE_1aKT1??<0
zkPVg)>luE?Lm~_miBKVMuq!A+#92Xs2^N765(*G;b_NCpP~<~I85k6h#93g13=9k!
z5b=5jkOq)pFgXK=1XvtoIZWIFNgSjHChmYF&H)o-U|{e-66Zt`4?q&<VyH*RL?B6U
zBZL_eki>bA#50h@`H;j5ki_|s#4C`*LGc2X0@>eyBq0PAg%BM`;=&LiFgXE9Tm&ov
zA!Z<ni$a9J<N_pdF|Y`PSfP*r@joay#UWx~as!eE39tx+*nuQ22@wL52av>}c@`{w
z0!dsNECL}eAjIn#WFTT-@&-bJ0a~zt#UCJvL(2-V_zNU)d9VnC_<$r1DUTrHKaj)~
z!9t+$2PKx~Hyj?_tbc_S7(7}Jl(4>d&B(yu(R_sCFjy7Cf74IG3Jm{MzX&TZ@XI?e
z{8t6>GeD9rAN>FS|G(-hVFiW^P{MzC0nC2{;)62I%L8EkEf61+d0%b-^Dlw;ETHgz
zxd1G13M2r^2rnmq`G-J!PzHF}0Os!k@j)^5vH;BA1mc4d{L2I|e-(%iO6V^G!2CrZ
zJ{JQ6!%GJ+e-?-jO4lz9!2C%dJ`c$MFBQN7T_6EokOl!TzX`+#CG3|BV15;d4@%H4
zKl}svxCq1tCFGY6!2B!_Ul64K0+^o!;)Bxj%L8D36o?N>$1gX4`9UClJtzUcTmTmE
z0ttW;?#l^az7vQKO0X{*z<etZACyjC7J&IiAU-I4zDxk~wLpAOx_lV`<|~2tp!E3C
z0nC>I@j>bEr2&{PB&@(tp8-mLFBQN7OhO6_X%j$^3c`kOJv%SPd2~MVXnyh`AjI?d
zfdWYf29M(h8Nk%>Z+s36FWmqA|NkY8U*3g*VTZV40z;^Wu7F|!gGciZK9A0)Wzsu9
zCV`TaVC;U7#Qz6r{PHazL5A4F{PGTB3~72Wfqftap&pIz1QaJ*3#gcYxc?vU%QM6t
zhS<<xTPUQ!z)&g}>e2c1Mc)7a|6`A_#tA7fFn$J^#jsyMZt`RSZCj7yt{+;!j&%L8
z5JY!}{_yB_{ov7g&7<@93sA~$Jy624f1{)W!wbg0|Np<{+P@vd{`%+t|H(Rn5yA&R
zyeWVF|M%#2{Q=Sw@ptlcL0RFWAn_C=agD!|j|<Ayp8|=SAc_C@^Z!5C@2|6AMm%I?
zU}!y1D!czYNHIH-;?r=&b}+?;>`=wGL5gqvMz~}iT(KZbarfk8A$^J4zyJS#vF*?Q
z|1ShV#2=8J&f_nhOkO3Vpi&I7uJu5vsz*1gxqt$LN9Vy^pjN;>P?p{Q0%XaC$?t>|
z?aqO<xqk3yuKmCOR{n+`q8yY^Aj-L=92j1t!rdX@(e3&I6i80LC;JLpGrCUh6wYF@
z`Zf8hur-tJ@5x3Y9zv6U{{P>3$fMi!1SAfWe^2fa(cnD!^Z$R4&Wn@xipVNE|N8&G
z^+2hdM>nemAH-5na)nr`0kU-A<i8?POlrR-ONvU1a{dB`$_0;Z29M?gj39H^eopoj
zRbUL6oFytFH2nuy{>45QDF+6S?6b);M0Ju*LWMyhe}DY{zXKEmug$@#_JdO9i|Jrj
zx!&+-uD!ufx(1STj=z|Ir11zyBS^7Fx9^V>4`Uux4F(2=64n>iKmY%qY$zx?*;-7Q
zasA|YF%`L2KS18%pK^eI+kw~89^Ii2AOQwWjAth=6iZ>U_&%9k+=ubi<PdS)pgZ6H
z|37&cl*T=p-za!=*1mwKKmJ1LJ1DqZKX@E>{Q<EYl&Fut@Pdf{@My06!BEN$Nq9=I
z<Pr0I@?~+wEC-Ly+7l@r-7H|IdUU$}FgyT?kX@kCZC^O37U(?w;`3M3h-!uy{lKHS
z_5njF7ue{Rf}q;rxa$qD8;-la0MRcrzkwWg{DtB7$@@fPR2F{&`5GLV9b8x=lkxlH
ze<G3`Z6JNUp*JSWi;C7~f;io-H<02q?JLM!S5P3_@aP65wi_PZ9vqM`IR}cxEpSaB
z*%uy+7mhJ7faLeNLu20Q+yDQau2*0&84NNKnrPd<{{P=xdxZfUKlKOD<MZcNq{zS@
zgmus$Ec=2Qglr(^b-EG}gljmzfc$#=#g?z&FjV^r4?}KFtYO&l6&!|~AP>R9@D0ci
z)G&Pc8DuWLFf<350M>*ah5^tpJPPs_A`GvAjD&_E*B7KP48RD(nlGR*L=^On;f`UB
zo&Oy}9YcJ2Ro}5FFob&a>VoKC&(3e2omYJ{pL&2=BnSU8zu5n2@_zYHYd!tq#N2|M
z)cEAoqLO0$lGNgo;?%O#JiX+i5{B~fa=p|Fu)JP!elA0pqmQQxgQp*ao~*C1zMg@B
zQJUEr)O7+?=?gyo|9^skfnmbu|Nmz&Ffg=z`Tzd|0|UdQFaQ4wFfuUkeEa|3fRTaW
z%eVjk0~i??u73ajzkrc};rP%0|0ggqF!=uZ|9=A`1B2S{|Nk#AGBEV~{{R02BLf5H
z-~aywm>3v96}SPY_4EJ#{|XSz$S}E2QHklpr^%ZX_1G?a`2YU_<K$<GN=kj7|Nr*^
z<sU~rfi@;*UN$Co9(E1}aI-Llfq`My=gC@1a!gmgO!iWeW191Ia+Z=DQ|!0NT}pCH
z`adSGQj%ku`eX7bB{?R)pOarH$vI8=`Tu_{s7Qku$Xvk)G7(gKr!X=weEfx7-i3jI
zp@orwA>z;EQ_4=9XBZh68vgwM&$L-lg`1J<0<`zLfp0RGo|)4JZb+9D)La5NzC;qj
z2em#xd{}Q3RD6T@pmrLF2DL^&G>6>eCOthyj>#MK<Qd&3U(_>zbz?w*1yZpC$^f;G
zKzvZk4@867KOowI6JjGwoMW=1zP|Dd4v6Ug|Nrwrs-T82e1P%;I2<M`s^l_D$R$j^
z$S7K`#sg7r2BqDgbQqLQgVJSCx(!NCgVM{O^foAc3`$>v($ApuHz>`<3$afOLhCT7
zK^P2XP}&Vjhe7EyC|$<uFj?5ZcJc}%p2-gwStdIeUSQ;yENCQd7y$J$$h$Di%)r3_
z3ksMRh-PNsWZ;<WXe7$a#b5!Vjky_MQ3;ZVVP*y%1_7v(VPYVfnSqz#!{miVqV;?X
zu<;O(I1Dp0@H4=Y0!$1<GcyP<G(eLGh!4Ze41x@>Q4N?Fh-PLGV)y_Z^#Ji<n3+Ks
zGLiynw!;KLG&6$;0|#{U1jL77W(H9P0j%O;46xA_m|76c%peZ$`Gfc{%*-IczyR$$
zfyC561PC)TNHQ=$hXg=;7-j|!fK2{m>|T#%Jt&JXG4L@MKywsK2Pmt6#0${G^%y|I
z5_}9B(8NLcm61V;K?7<#D9eM)3I-2AAc8{+BnZM)P=jDu86*b6ZD0+cfSvrv#BOqc
z3(I5~6OqXZrYyRQ3_=VHvXCSTQVPPCz{;@%>*S9n;`R4HO0dN0N3br`Km;je2RmCB
zBl0Am;;@1Qq!xs=89~D<n331R3>tZp6vBuM6VT|CXE-ARgAfBB1E>cBG6q&IOkjqH
z!xA$ru+pLGE5#w62N$Re3=E}{7n+GPwt&eQAd@9mK~<WIKvaT46J*0)kgQ=MSQax=
zJOhjKF{B7WbUg%VVPIhR4${RaI@!=%oKX`@dVtAFFgXcCO0HvqxY<<*qW2Rxs2CXb
zfn-^4FflMFOuon{%=iVwH<X6@(1{<S+6t=LfEhGOhsc(&u_^n>ffnM7abU7w@<R)8
z$u4HlI2vX$pAJ^D15927k%ph3cI}0R#Z9QM{(|gcl4JmN=%7MiigU7~rMRIi3j>27
zlOzKNG$Dhf7#J9|SRnocbvHp`sUU)Zfx!x-i!lmJ7J*2~E~v_Bq7Xl(K~>HM%kF0Z
zxnByy_R}C)#^+%2H;9xJW`w9TKywNI<U}iRLp4^2d;UOefu#v^R!~TS#ycS+fUvsG
z8>EXd9z;r3vw}><41p%F>{O`9H3AU#gWJ;#3=H!@vPwswvY`Gp$YbEv0s{ks3E0=5
z0(`QU&85v+wyBJh7uijn9A>|1vW!F1WIiXh$vYg5PoC@;F!{S<@#Z$CX^fi{Tof1?
zJtjN4>I-tPL2Tmy4YDvWFt|@{bk!GxRVM*ZZ@5i9=&H{Jt4wBaO#bC+#>oM#d^sjt
zx|s{Xs$vV!=nDe_!w#m&O>TNzu!`ja_vBq}W<s#~M1Tk62?mA-jFXw%^|(GjE4UB5
zldas%;G^sepjH|K149w_<R*7LE?A{fA~|`NyO|)YE@=Q2rVI=W?<O;P=nKMX64<zT
z&16RpeL+|~@&VfR5SiTQVZaG1l;tMx@-T<-IOHb(LhuCSCR=&J<s{@LS9zLqLPv#v
z$WPwoX)XY(5ny9%lNr7Ax!~1-;$$l?GcMSGv4G;_Dla=G0maF?yzH1>8chD>Whd$Z
o8jE0HV7LJdI?&*r!DL@=Z4Cu&NHCoQ4T(XRU=o^r!E6u#05p;Qz5oCK

diff --git a/certexample.c b/certexample.c
index c329938..9244f92 100644
--- a/certexample.c
+++ b/certexample.c
@@ -5,22 +5,23 @@
 
 
 #include "headers.h"
-
+#include "csv_handler.h"
 
 int main()
 {
- char* filename = "./sample_certs/testseven.crt";
- char* url = "www.example.com";
-
- if (validate_certificate(filename, url))
- {
- 	printf("VALID\n");
- }
-
- else{
- 	printf("INVALID\n");
- }
-    
+ 
+    head* new = load_csv("sample_input.csv");
+
+    node* nd = new->start;
+
+    while(nd !=NULL){
+    	nd-> valid = validate_certificate(nd->filename, nd->url);
+    	nd = nd->next;
+    }
+
+    output_csv("output.csv" ,new);
+
+    delete_list(new);
 
 }
 
diff --git a/csv_handler.c b/csv_handler.c
new file mode 100644
index 0000000..c2372d6
--- /dev/null
+++ b/csv_handler.c
@@ -0,0 +1,110 @@
+#include "csv_handler.h"
+
+
+head *load_csv(char *filepath){
+    FILE* file = fopen(filepath, "r");
+    char line [EXPECTED_LINE_LENGTH];
+    head* new = NULL;
+    new = (head*) malloc(sizeof(*new));
+    new -> start = NULL;
+    node* nd = new->start;
+    while(fgets(line, EXPECTED_LINE_LENGTH, file)){
+
+        if (nd == NULL)
+        {
+            char *tmp = strdup(line);
+            char* tok = strtok(tmp, ",");
+            char* filename = strdup(tok);
+            printf("%s\n", filename);
+            tok = strtok(NULL, ",");
+            char* url = strdup(tok);
+            url[strlen(url)-1] = '\0';
+            printf("%s\n", url);
+            new -> start = insert(new->start, url, filename, 0);
+            nd = new -> start;
+            free(tmp);
+        }
+        else{
+            char *tmp = strdup(line);
+            char* tok = strtok(tmp, ",");
+            char* filename = strdup(tok);
+            printf("%s\n", filename);
+            tok = strtok(NULL, ",");
+            char* url = strdup(tok);
+            url[strlen(url)-1] = '\0';
+            printf("%s\n", url);
+            nd = insert(nd, url, filename, 0);
+            free(tmp);
+        }
+        
+    }
+
+    fclose(file);
+
+    return new;
+
+}
+
+
+
+node *insert(node* nd, char* url, char* filename, int valid){
+    if (nd == NULL){
+        nd = (node *) malloc(sizeof(*(nd->next)));
+        nd->url = url;
+        nd->filename = filename;
+        nd-> next = NULL;
+
+        return nd;
+
+    }
+
+    else{
+        node* temp = nd->next;
+        nd->next = (node *)malloc(sizeof(*(nd->next)));
+        (nd->next)->url = url;
+        (nd->next)->filename = filename;
+        (nd->next)-> next = temp;
+
+        return nd->next; 
+    }
+
+    return NULL;
+}
+
+
+void delete_list(head* hd){
+    if (hd == NULL)
+    {
+        return;
+    }
+
+    else if(hd->start == NULL){
+        free(hd);
+        return;
+    }
+
+    else{
+        node* temp = (hd->start)->next;
+        free(hd->start->url);
+        free(hd->start->filename);
+        free(hd->start);
+        hd->start = temp;
+        delete_list(hd);
+        return;
+    }
+}
+
+
+void output_csv(char* filepath, head* hd){
+    FILE* file = fopen(filepath, "w");
+
+    node *start = hd->start;
+
+    while(start != NULL){
+        printf("hhe\n");
+        fprintf(file, "%s,%s,%d\n", start->filename, start->url, start->valid);
+        start = start->next;
+    }
+
+    fclose(file);
+}
\ No newline at end of file
diff --git a/csv_handler.h b/csv_handler.h
new file mode 100644
index 0000000..43a5eae
--- /dev/null
+++ b/csv_handler.h
@@ -0,0 +1,33 @@
+#ifndef CSV_HANDLER
+#define CSV_HANDLER
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#define EXPECTED_LINE_LENGTH 1024
+typedef struct NODE node;
+
+
+struct NODE
+{
+	char* url;
+	char* filename;
+	int valid;
+	node* next;
+};
+
+typedef struct
+{
+    node* start;
+} head;
+
+head *load_csv(char *filename);
+
+node *insert(node* nd, char* url, char* filename, int valid);
+void delete_list(head* hd);
+void output_csv(char* filepath, head* hd);
+
+
+
+#endif
\ No newline at end of file
diff --git a/helper_checker.c b/helper_checker.c
index 1e1d09f..0547c1e 100644
--- a/helper_checker.c
+++ b/helper_checker.c
@@ -254,11 +254,12 @@ int check_constraint(X509 *cert){
     memcpy(buf, bptr->data, bptr->length);
     buf[bptr->length] = '\0';
 
-    int cond = strcmp(buf, "CA:FALSE");
+    char* point = strstr(buf, "CA:FALSE");
+    int cond = (point != NULL);
     BIO_free_all(bio);
     free(buf);
 
-    return cond == 0;
+    return cond;
 }
 
 
@@ -284,11 +285,11 @@ int check_ext_key(X509 *cert){
     memcpy(buf, bptr->data, bptr->length);
     buf[bptr->length] = '\0';
 
-    int cond = strcmp(buf, "TLS Web Server Authentication");
-
+    char* point = strstr(buf, "TLS Web Server Authentication");
+    int cond = (point != NULL);
     BIO_free_all(bio);
     free(buf);
 
-    return cond == 0;
+    return cond;
 }
 
diff --git a/output.csv b/output.csv
new file mode 100644
index 0000000..7b25d86
--- /dev/null
+++ b/output.csv
@@ -0,0 +1,13 @@
+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/output_explanation.csv b/output_explanation.csv
new file mode 100644
index 0000000..4cc2b40
--- /dev/null
+++ b/output_explanation.csv
@@ -0,0 +1,13 @@
+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_input.csv b/sample_input.csv
new file mode 100644
index 0000000..7c8d904
--- /dev/null
+++ b/sample_input.csv
@@ -0,0 +1,13 @@
+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_output.csv b/sample_output.csv
new file mode 100644
index 0000000..7b25d86
--- /dev/null
+++ b/sample_output.csv
@@ -0,0 +1,13 @@
+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/testeight.crt b/testeight.crt
new file mode 100644
index 0000000..03d81da
--- /dev/null
+++ b/testeight.crt
@@ -0,0 +1,31 @@
+-----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/testeleven.crt b/testeleven.crt
new file mode 100644
index 0000000..5d4fd83
--- /dev/null
+++ b/testeleven.crt
@@ -0,0 +1,31 @@
+-----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/testfive.crt b/testfive.crt
new file mode 100644
index 0000000..5ce0a06
--- /dev/null
+++ b/testfive.crt
@@ -0,0 +1,31 @@
+-----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/testfour.crt b/testfour.crt
new file mode 100644
index 0000000..9dfe4ca
--- /dev/null
+++ b/testfour.crt
@@ -0,0 +1,31 @@
+-----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/testnine.crt b/testnine.crt
new file mode 100644
index 0000000..7356717
--- /dev/null
+++ b/testnine.crt
@@ -0,0 +1,32 @@
+-----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/testone.crt b/testone.crt
new file mode 100644
index 0000000..a5b43c5
--- /dev/null
+++ b/testone.crt
@@ -0,0 +1,28 @@
+-----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/testseven.crt b/testseven.crt
new file mode 100644
index 0000000..8d9699f
--- /dev/null
+++ b/testseven.crt
@@ -0,0 +1,31 @@
+-----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/testsix.crt b/testsix.crt
new file mode 100644
index 0000000..fcb6a4f
--- /dev/null
+++ b/testsix.crt
@@ -0,0 +1,31 @@
+-----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/testten.crt b/testten.crt
new file mode 100644
index 0000000..ea66346
--- /dev/null
+++ b/testten.crt
@@ -0,0 +1,31 @@
+-----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/testthree.crt b/testthree.crt
new file mode 100644
index 0000000..9e9b6b4
--- /dev/null
+++ b/testthree.crt
@@ -0,0 +1,31 @@
+-----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/testtwo.crt b/testtwo.crt
new file mode 100644
index 0000000..fe1e529
--- /dev/null
+++ b/testtwo.crt
@@ -0,0 +1,31 @@
+-----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-----
-- 
GitLab