diff options
Diffstat (limited to 'monitor/josef_reader.py')
| -rwxr-xr-x | monitor/josef_reader.py | 136 |
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 + + + + + + |
