summaryrefslogtreecommitdiff
path: root/monitor/josef_reader.py
diff options
context:
space:
mode:
Diffstat (limited to 'monitor/josef_reader.py')
-rwxr-xr-xmonitor/josef_reader.py136
1 files changed, 79 insertions, 57 deletions
diff --git a/monitor/josef_reader.py b/monitor/josef_reader.py
index c2653c1..736fb3d 100755
--- a/monitor/josef_reader.py
+++ b/monitor/josef_reader.py
@@ -3,7 +3,10 @@
import sys
from josef_lib import *
+import leveldb
import argparse
+import json
+from josef_leveldb import *
from datetime import datetime as dt
@@ -25,69 +28,88 @@ monitored_domains = [
+if args.domain:
+ db = db_open()
+ raw = db_lookup_domain(db, args.domain)
+else:
+ print "No domain selected!"
+ sys.exit()
+
cur_time = dt.now()
count_valid = 0
count_all = 0
-f = open("output/cert_data.json")
-for line in f:
- tmp = json.loads(line)
- try:
- success = True
- not_after_time = dt.strptime(tmp["not_after"], "%b %d %H:%M:%S %Y GMT")
- not_before_time = dt.strptime(tmp["not_before"], "%b %d %H:%M:%S %Y GMT")
-
- if args.domain:
- if args.domain in tmp["subject"].split("CN=")[1] or \
- args.domain in tmp["SAN"]:
- pass
- else:
- success = False
- else:
- print "No domain selected!"
- sys.exit()
-
- if args.log:
- if args.log in tmp["log"]:
- pass
- else:
- success = False
-
- if cur_time > not_after_time:
- expired = True
- elif cur_time < not_before_time:
- expired = True
- else:
- expired = False
+for item in raw:
+ # print item + '}', type(item)
+ try:
+ entry = json.loads((item + '}').replace("'", '"'))
+ except:
+ print (item + '}').replace("'", '"')
+ # print entry, type(entry)
+ success = True
+ not_after_time = dt.strptime(entry["not_after"], "%b %d %H:%M:%S %Y GMT")
+ not_before_time = dt.strptime(entry["not_before"], "%b %d %H:%M:%S %Y GMT")
+
- # Exclude expired
- if args.exclude_expired and expired:
+ if args.log:
+ if args.log in entry["log"]:
+ pass
+ else:
success = False
-
-
- # Set count matches
- if success:
- count_all += 1
- if not expired:
- count_valid += 1
-
- # Print matching
- if success:
- s = tmp["subject"].split("CN=")[1] + \
- " certified by " + tmp["issuer"].split("CN=")[1] + \
- " (" + tmp["log"] + ") "
- if expired:
- print "(NOT VALID) " + s
- else:
- print "(VALID) " + s
-
+ if cur_time > not_after_time:
+ expired = True
+ elif cur_time < not_before_time:
+ expired = True
+ else:
+ expired = False
+
+ # Exclude expired
+ if args.exclude_expired and expired:
+ success = False
+
+
+ # Set count matches
+ if success:
+ count_all += 1
+ if not expired:
+ count_valid += 1
+
+ # Print matching
+ if success:
+ s = entry["subject"].split("CN=")[1] + \
+ " certified by " + entry["issuer"].split("CN=")[1] + \
+ " (" + entry["log"] + ") "
+ if expired:
+ print "(NOT VALID) " + s
+ else:
+ print "(VALID) " + s
- except:
- pass
-f.close()
print str(count_all) + " matches found."
-# if count_valid == 0:
-# print "No matching certificates found."
-# else:
-# print str(count_valid) + " of " + str(count_all) + " certs valid. (" + str(int(float(count_valid)/float(count_all)*100)) + "%)"
+
+
+# print res
+# print "Found " + str(len(res)) + " results"
+# print db.Get("wush.net")
+# print db.Get("wush.net")
+
+# f = open("output/cert_data.json")
+# max_count = 1
+# for line in f:
+# # print max_count
+# # try:
+# tmp = json.loads(line)
+# # print tmp
+# # d = tmp["subject"].split("CN=")[1]
+# db_add_cert(tmp)
+# # print d
+
+# max_count -= 1
+# if max_count == 0:
+# break
+
+
+
+
+
+