mirror of
https://github.com/adulau/crl-monitor.git
synced 2024-11-21 17:47:09 +00:00
Dump X509 certificates from ssldump pcap tool
This commit is contained in:
parent
f5a7a68a4c
commit
65f283253e
1 changed files with 36 additions and 0 deletions
36
bin/x509/pcap-sslcert.py
Normal file
36
bin/x509/pcap-sslcert.py
Normal file
|
@ -0,0 +1,36 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Tool to parse output of ssldump (not compiled with OpenSSL) to dump raw certificate
|
||||
#
|
||||
# Software is free software released under the GNU General Public License version 3 and later
|
||||
#
|
||||
# Copyright (c) 2015 Alexandre Dulaunoy - a@foo.be
|
||||
|
||||
import fileinput
|
||||
import re
|
||||
import binascii
|
||||
import OpenSSL
|
||||
|
||||
cert = None
|
||||
certstring = ""
|
||||
|
||||
for l in fileinput.input():
|
||||
if re.match('^\s+Certificate\s*$', l):
|
||||
cert = True
|
||||
continue
|
||||
elif re.match('^\S+', l):
|
||||
cert = None
|
||||
|
||||
if (cert is True):
|
||||
certstring += l.rstrip('\n')
|
||||
|
||||
if ((cert is None) and (len(certstring) > 0)):
|
||||
y = re.sub(" ", "", certstring).split('=')
|
||||
a = y[1].split('certificate')[0]
|
||||
dercert = binascii.unhexlify(a)
|
||||
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_ASN1, dercert)
|
||||
fp = x509.digest('sha1').replace(':','').lower()
|
||||
print OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_PEM, x509)
|
||||
certstring = ""
|
||||
y = ""
|
Loading…
Reference in a new issue