mirror of
https://github.com/mozilla/cipherscan.git
synced 2024-12-26 04:33:42 +01:00
parsing of signature algorithm and key size
add parsing of signature algorithm and key size from the individual results, report summary
This commit is contained in:
parent
b6b9a1a364
commit
863441a179
@ -13,6 +13,8 @@ cipherstats = defaultdict(int)
|
||||
pfsstats = defaultdict(int)
|
||||
protocolstats = defaultdict(int)
|
||||
handshakestats = defaultdict(int)
|
||||
keysize = defaultdict(int)
|
||||
sigalg = defaultdict(int)
|
||||
total = 0
|
||||
for r,d,flist in os.walk(path):
|
||||
|
||||
@ -20,6 +22,10 @@ for r,d,flist in os.walk(path):
|
||||
|
||||
""" initialize variables for stats of the current site """
|
||||
temppfsstats = {}
|
||||
tempkeystats = {}
|
||||
tempecckeystats = {}
|
||||
tempdsakeystats = {}
|
||||
tempsigstats = {}
|
||||
ciphertypes = 0
|
||||
AESGCM = False
|
||||
AES = False
|
||||
@ -87,6 +93,17 @@ for r,d,flist in os.walk(path):
|
||||
DHE = True
|
||||
temppfsstats[entry['pfs']] = 1
|
||||
|
||||
""" save the key size """
|
||||
if 'ECDSA' in entry['cipher']:
|
||||
tempecckeystats[entry['pubkey'][0]] = 1
|
||||
elif 'DSS' in entry['cipher']:
|
||||
tempdsakeystats[entry['pubkey'][0]] = 1
|
||||
else:
|
||||
tempkeystats[entry['pubkey'][0]] = 1
|
||||
|
||||
""" save key signatures size """
|
||||
tempsigstats[entry['sigalg'][0]] = 1
|
||||
|
||||
""" store the versions of TLS supported """
|
||||
for protocol in entry['protocols']:
|
||||
if protocol == 'SSLv2':
|
||||
@ -109,6 +126,16 @@ for r,d,flist in os.walk(path):
|
||||
for s in temppfsstats:
|
||||
pfsstats[s] += 1
|
||||
|
||||
for s in tempkeystats:
|
||||
keysize['RSA ' + s] += 1
|
||||
for s in tempecckeystats:
|
||||
keysize['ECDSA ' + s] += 1
|
||||
for s in tempdsakeystats:
|
||||
keysize['DSA ' + s] += 1
|
||||
|
||||
for s in tempsigstats:
|
||||
sigalg[s] += 1
|
||||
|
||||
""" store cipher stats """
|
||||
if AESGCM:
|
||||
cipherstats['AES-GCM'] += 1
|
||||
@ -192,6 +219,18 @@ for stat in sorted(pfsstats):
|
||||
pfspercent = round(pfsstats[stat] / handshakestats['DHE'] * 100, 4)
|
||||
sys.stdout.write(stat.ljust(25) + " " + str(pfsstats[stat]).ljust(10) + str(percent).ljust(9) + str(pfspercent) + "\n")
|
||||
|
||||
print("\nCertificate sig alg Count Percent ")
|
||||
print("-------------------------+---------+--------")
|
||||
for stat in sorted(sigalg):
|
||||
percent = round(sigalg[stat] / total * 100, 4)
|
||||
sys.stdout.write(stat.ljust(25) + " " + str(sigalg[stat]).ljust(10) + str(percent).ljust(9) + "\n")
|
||||
|
||||
print("\nCertificate key size Count Percent ")
|
||||
print("-------------------------+---------+--------")
|
||||
for stat in sorted(keysize):
|
||||
percent = round(keysize[stat] / total * 100, 4)
|
||||
sys.stdout.write(stat.ljust(25) + " " + str(keysize[stat]).ljust(10) + str(percent).ljust(9) + "\n")
|
||||
|
||||
print("\nSupported Protocols Count Percent")
|
||||
print("-------------------------+---------+-------")
|
||||
for stat in sorted(protocolstats):
|
||||
|
Loading…
Reference in New Issue
Block a user