From 7758385ac15e02d06c89db684fd75846a130c318 Mon Sep 17 00:00:00 2001 From: Henrik Nordstrom Date: Wed, 16 Feb 2011 15:49:54 +0100 Subject: [PATCH] Extract common SSL certificate option processing --- libmproxy/utils.py | 18 +++++++++++++++++- mitmdump | 7 +------ mitmplayback | 42 ++++-------------------------------------- mitmproxy | 16 ++-------------- mitmrecord | 41 ++--------------------------------------- 5 files changed, 26 insertions(+), 98 deletions(-) diff --git a/libmproxy/utils.py b/libmproxy/utils.py index ffa3216ae..7172b4db4 100644 --- a/libmproxy/utils.py +++ b/libmproxy/utils.py @@ -510,5 +510,21 @@ def certificate_option_group(parser): ) parser.add_option_group(group) - +def process_certificate_option_group(options): + if options.cert is not None: + options.cert = os.path.expanduser(options.cert) + if not os.path.exists(options.cert): + print >> sys.stderr, "Creating bogus certificate at %s"%options.cert + utils.make_bogus_cert(options.cert) + if options.cacert is not None: + options.cacert = os.path.expanduser(options.cacert) + if not os.path.exists(options.cacert): + print >> sys.stderr, "Creating bogus CA certificate at %s"%options.cacert + utils.make_bogus_cert(options.cacert, newca=True, commonName="Dummy CA") + if options.certpath is not None: + options.certpath = os.path.expanduser(options.certpath) + elif options.cacert is not None: + options.certpath = os.path.dirname(options.cacert) + if options.cache is not None: + options.cache = os.path.expanduser(options.cache) diff --git a/mitmdump b/mitmdump index ee00bd924..2d379f378 100755 --- a/mitmdump +++ b/mitmdump @@ -43,12 +43,7 @@ if __name__ == '__main__': if options.quiet: options.verbose = 0 - options.cert = os.path.expanduser(options.cert) - options.certpath = os.path.expanduser(options.certpath) - - if not os.path.exists(options.cert): - print >> sys.stderr, "Creating bogus certificate at %s"%options.cert - utils.make_bogus_cert(options.cert) + utils.process_certificate_option_group(options) proxy.config = proxy.Config( certfile = options.cert, diff --git a/mitmplayback b/mitmplayback index 9d4fe11a0..6a98d49f0 100755 --- a/mitmplayback +++ b/mitmplayback @@ -30,29 +30,7 @@ if __name__ == '__main__': version="%%prog %s"%VERSION, ) - parser.add_option( - "--cert", action="store", - type = "str", dest="cert", default="~/.mitmproxy/default.pem", - help = "SSL certificate file." - ) - - parser.add_option( - "-c", "--cacert", action="store", - type = "str", dest="cacert", default="~/.mitmproxy/ca.pem", - help = "SSL CA certificate file." - ) - - parser.add_option( - "--certpath", action="store", - type = "str", dest="certpath", default=None, - help = "SSL certificate store path." - ) - - parser.add_option( - "--ciphers", action="store", - type = "str", dest="ciphers", default=None, - help = "SSL ciphers." - ) + utils.certificate_option_group(parser) parser.add_option( "-p", "--port", action="store", @@ -78,23 +56,11 @@ if __name__ == '__main__': if options.quiet: options.verbose = 0 - if options.cert is not None: - options.cert = os.path.expanduser(options.cert) - if not os.path.exists(options.cert): - print >> sys.stderr, "Creating bogus certificate at %s"%options.cert - utils.make_bogus_cert(options.cert) - if options.cacert is not None: - options.cacert = os.path.expanduser(options.cacert) - if not os.path.exists(options.cacert): - print >> sys.stderr, "Creating bogus CA certificate at %s"%options.cacert - utils.make_bogus_cert(options.cacert, newca=True, commonName="Dummy CA") - if options.certpath is not None: - options.certpath = os.path.expanduser(options.certpath) - elif options.cacert is not None: - options.certpath = os.path.dirname(options.cacert) + utils.process_certificate_option_group(options) + if options.cache is not None: options.cache = os.path.expanduser(options.cache) - + proxy.config = proxy.Config( certfile = options.cert, certpath = options.certpath, diff --git a/mitmproxy b/mitmproxy index c9d52d79f..28ff1051d 100755 --- a/mitmproxy +++ b/mitmproxy @@ -85,20 +85,8 @@ if __name__ == '__main__': options, args = parser.parse_args() - if options.cert is not None: - options.cert = os.path.expanduser(options.cert) - if not os.path.exists(options.cert): - print >> sys.stderr, "Creating bogus certificate at %s"%options.cert - utils.make_bogus_cert(options.cert) - if options.cacert is not None: - options.cacert = os.path.expanduser(options.cacert) - if not os.path.exists(options.cacert): - print >> sys.stderr, "Creating bogus CA certificate at %s"%options.cacert - utils.make_bogus_cert(options.cacert, newca=True, commonName="Dummy CA") - if options.certpath is not None: - options.certpath = os.path.expanduser(options.certpath) - elif options.cacert is not None: - options.certpath = os.path.dirname(options.cacert) + utils.process_certificate_option_group(options) + if options.cache is not None: options.cache = os.path.expanduser(options.cache) diff --git a/mitmrecord b/mitmrecord index 1f81633c5..528658347 100755 --- a/mitmrecord +++ b/mitmrecord @@ -29,29 +29,7 @@ if __name__ == '__main__': version="%%prog %s"%VERSION, ) - parser.add_option( - "--cert", action="store", - type = "str", dest="cert", default="~/.mitmproxy/default.pem", - help = "SSL certificate file." - ) - - parser.add_option( - "-c", "--cacert", action="store", - type = "str", dest="cacert", default="~/.mitmproxy/ca.pem", - help = "SSL CA certificate file." - ) - - parser.add_option( - "--certpath", action="store", - type = "str", dest="certpath", default=None, - help = "SSL certificate store path." - ) - - parser.add_option( - "--ciphers", action="store", - type = "str", dest="ciphers", default=None, - help = "SSL ciphers." - ) + utils.certificate_option_group(parser) parser.add_option( "-p", "--port", action="store", @@ -83,22 +61,7 @@ if __name__ == '__main__': if options.quiet: options.verbose = 0 - if options.cert is not None: - options.cert = os.path.expanduser(options.cert) - if not os.path.exists(options.cert): - print >> sys.stderr, "Creating bogus certificate at %s"%options.cert - utils.make_bogus_cert(options.cert) - if options.cacert is not None: - options.cacert = os.path.expanduser(options.cacert) - if not os.path.exists(options.cacert): - print >> sys.stderr, "Creating bogus CA certificate at %s"%options.cacert - utils.make_bogus_cert(options.cacert, newca=True, commonName="Dummy CA") - if options.certpath is not None: - options.certpath = os.path.expanduser(options.certpath) - elif options.cacert is not None: - options.certpath = os.path.dirname(options.cacert) - if options.cache is not None: - options.cache = os.path.expanduser(options.cache) + utils.process_certificate_option_group(options) proxy.config = proxy.Config( certfile = options.cert,