From 6c43a10887f5d99e89c0a842b42fee2a2ec20108 Mon Sep 17 00:00:00 2001
From: neeserg <n.parajuli@student.unimelb.edu.au>
Date: Thu, 24 May 2018 00:22:45 +1000
Subject: [PATCH] bits checker done

---
 .DS_Store        | Bin 0 -> 8196 bytes
 certexample      | Bin 14584 -> 15212 bytes
 certexample.c    |  53 ++++++++++++++++++++++++++++++++++++++++++-----
 helper_checker.c |  26 -----------------------
 4 files changed, 48 insertions(+), 31 deletions(-)
 create mode 100644 .DS_Store

diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..d5e0a6428dc8765cd85a6dbeeffa32ba01fd23f1
GIT binary patch
literal 8196
zcmZQzU|@7AO)+F(kYHe7;9!8z0^AH(0Z1N%F(jFwA}k>D7#IW?7;+d=8R8j|8B!UF
zpmL+sXb6mkz-S1JhQMeDjE2DA3IRrlb2xC+`w-btax?@+LtsRP0H}OWfVAxy9H4Xq
zga%15FfuTJy8w&~44^ImIE)y<{Qw4#97rpO25AM+Agv6HAQspRuvP{}s8&XBHw2_l
z0BR0cI|C!wW{@~oI|C!wW(EdEh;{}>sLhPf9ttBwI|Cy`I|C!wcCeA7#ApbNh5%X!
zfU*w{Loq`lLoP!BO8>otp*X3$xF9JfKZ${X;Z#yVPG)h5fx&e~CT12^Hg*mUE)FhU
zuGrv={PN(E#FEltr^KRY5HBFHBqIsR4$05YfwL2n!ZK6K;{`;V^Ycm)GxJi5K+1zN
zQ&N)>i(<kv^HTE5o$^cbQi{RmKqWXhI5{}u1thDhbq$RzbQFwCO=@)%s?98nbrejD
z&1!2oImA^BZ9NlmE32w&YU^e}d<ZKj82BN4I60evfdQwFbBfEHAwFiB1oQC?n2$NR
zxFtP2y}059gvv5g%l!*VGV}9_!%~ZiGxPJ}1^A0I^2<Gw^Ya3VQbF?J$@w{@xp~F$
z0)okjImx9ti6yCyIXS_ZRjI`hC8-r9AXZdyeo=`tSYbqFa(*62EM7pMv^X^=H7Bto
zvn<smu_U!vfRS@GkEpDYnzn(dm7VhyUOs*SE+H<F@UqO}%%q&u(DKZbl8ng2;^fr4
zl+3*JsLYhqypqhc%+w-IK}H?Uki5j))GK1*5(1J^k}|k-aR?}LM3g3F7M5m~R6^{K
zmsI2w*vb);l30@Jo1X$QF$F9mDKDwY!4VA-cP>gzEJ;ndBEZMbtF9r*6;hm8l`4?P
z!3h@8(dFU_$<EA65h&(_h!`4iNrvVmCZ*;Gq;PV86`7fHNrsm}LQ=pRDrhalB^i;N
zpPQSSS5nN$0kPIW(uqUh1V<dmVxPp~690nKJdoYu5@Ig$l9G`iamSRD)D#X54rK=o
zNVJ2!uk2s|;c+r>Fi0}!F*q=IFvKvVG88aWGW0O?G4wOcW>~_ohG7%K9){x#Cm2pM
zoME`gaEsv)!wZH_44)akGJIqB&&a{Z$;i#f!zjt9#Hh@u!f3!~$!N#u!05>6#OTc!
zz!=0B%oxHL%b3iV%9zHO&RD=$!C1vu%~-?O%Gk%)&p3f`CgUu|IgE1|*D!8n+|PJ`
z@gU<N#?y=!7;i$H#{{k77<?dn7|D2xK+1*YRi;R6DObwH)op-M?oA$0aupO377>+G
z*3dOFw{d_+D_T4vrzdbSf}|60`hlenaAcw;NHK8<NhxVASzHM_G&3(HwSohb69m|=
zNQz5{$ty@n34jt32bim(DkUYrB(Rl(1C&W5xwNEoI0X_p1en2GDSa+O4uKR-0ah@V
z%Y@5}Q=phrfCbEzvgESn5b)*{U;`UvE6v3vz`)4~=5VS?adB{xo)8x?tY+B7aE#$J
z!$pQ`4EGowGkjq9$;ima&M3$z&M3hs%_zet$EePz$*9e!!>G$>#%RH4#c0iF!|2NB
z#^}N5$>_}(!WhaJ&KSWM#hA>P0#1sVj75yajHQfaj1`QHjLnQK@FY2raTeoz#ubpH
z22X$<5I&4#T!}9MmIW8(<>cq3gBy1+Eu-`x4gqF}+ay5!e^&+uT;u-`Rior+2#kin
zunYl47MEZbCp_ggsILv`PbWaV4{D%*y5o$XemO)RNC~KG59&{VXlQpFtN^4HBnIw^
XGcquMv<}=rz-awHTK_}S@kpisyFu$L

literal 0
HcmV?d00001

diff --git a/certexample b/certexample
index 7c7b8043af04b11a7e9263c9c231912791aca2dd..846f93a4a6f291f1bcb633c3917453db801a64b4 100755
GIT binary patch
literal 15212
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
SX$hXcj8ClqPi8{$Ap-y;KtTln

literal 14584
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

diff --git a/certexample.c b/certexample.c
index ab97ebb..fdda0bf 100644
--- a/certexample.c
+++ b/certexample.c
@@ -7,6 +7,8 @@
 #include <openssl/bio.h>
 #include <openssl/pem.h>
 #include <openssl/err.h>
+#include <openssl/rsa.h>
+#include <openssl/evp.h>
 #include <stdio.h>
 #include <string.h>
 
@@ -15,14 +17,14 @@ int check_san_valid(X509* cert, char* URL, int in_host);
 int check_if_url_valid(char* URL, char* domain);
 int check_name_valid(X509* cert,  char* URL);
 void printTime(X509* cert);
-
+int check_public_key(X509 *cert);
 
 int main()
 {
 
     char* URL = "mega.google.com";
 
-    const char test_cert_example[] = "./cert-file2.pem";
+    const char test_cert_example[] = "./sample_certs/testtwo.crt";
     BIO *certificate_bio = NULL;
     X509 *cert = NULL;
     X509_CINF *cert_inf = NULL;
@@ -64,6 +66,7 @@ int main()
     }
 
     printTime(cert);
+    check_public_key(cert);
 
     //*********************
     // End of Example code
@@ -78,7 +81,14 @@ int main()
 
 void printTime(X509* cert){
   ASN1_TIME *after = X509_get_notBefore(cert);
-  printf("%s\n", after->data);
+
+  int day;
+  int sec;
+
+  ASN1_TIME_diff(&day, &sec, after, NULL);
+
+  printf("%d -- %d\n", day, sec);
+
   BUF_MEM *bptr = NULL;
     char *buf = NULL;
 
@@ -100,6 +110,17 @@ void printTime(X509* cert){
     BIO_free_all(bio);
     free(buf);
 
+
+    ASN1_TIME *tm;
+ time_t t;
+ BIO *b;
+ t = time(NULL);
+ tm = ASN1_TIME_adj(NULL, t, 0, 0);
+ b = BIO_new_fp(stdout, BIO_NOCLOSE);
+ ASN1_TIME_print(b, tm);
+ ASN1_STRING_free(tm);
+ BIO_free(b);
+
 }
 
 int check_name_valid(X509* cert,  char* URL){
@@ -119,9 +140,13 @@ int check_san_valid(X509* cert,  char* URL, int in_host){
       return 1;
     }
     X509_EXTENSION *ex = X509_get_ext(cert, X509_get_ext_by_NID(cert, NID_subject_alt_name, -1));
+    if (ex == NULL)
+    {
+        return 0;
+    }
     ASN1_OBJECT *obj = X509_EXTENSION_get_object(ex);
-    char buff[1024];
-    OBJ_obj2txt(buff, 1024, obj, 0);
+    char buff[2048];
+    OBJ_obj2txt(buff, 2048, obj, 0);
     printf("Extension:%s\n", buff);
 
     BUF_MEM *bptr = NULL;
@@ -189,4 +214,22 @@ else
 return 0;
 
 
+}
+
+
+
+
+int check_public_key(X509 *cert){
+  EVP_PKEY *key = X509_get_pubkey(cert);
+  RSA *rsa = NULL;
+
+  if ((rsa = EVP_PKEY_get1_RSA(key)) == NULL)
+  {
+      return 0;
+  }
+   if(8*RSA_size(rsa)==2048){
+    return 1;
+   }
+
+  return 1;
 }
\ No newline at end of file
diff --git a/helper_checker.c b/helper_checker.c
index af8b66c..a9d6b98 100644
--- a/helper_checker.c
+++ b/helper_checker.c
@@ -12,29 +12,3 @@ int main(int argc, char const *argv[])
 	return 0;
 }
 
-int check_if_url_valid(char* URL, char* domain){
-if (domain[0] == '*'){
-	char* domain_1 = domain+1;
-	char *sub_url = strstr(URL, domain_1);
-
-	if (sub_url == NULL)
-	{
-		return 0;
-	}
-
-	else{
-		return (strcmp(sub_url, domain_1) == 0);
-	}
-
-}
-else
-{
-	return (strcmp(URL, domain) == 0);
-
-
-}
-
-return 0;
-
-
-}
\ No newline at end of file
-- 
GitLab