diff options
author | Aldo Cortesi <aldo@corte.si> | 2013-06-15 15:35:36 -0700 |
---|---|---|
committer | Aldo Cortesi <aldo@corte.si> | 2013-06-15 15:35:36 -0700 |
commit | 00cf88983765fd15d18825789d5c1befc7dbc840 (patch) | |
tree | 5024eacdd4161af81086b4f7084b6c4acb989fd6 | |
parent | 698f6f198d4ee35f51fe86d34bdb9986349fd702 (diff) | |
parent | c9ab1c60b5d43f0b4d645c751350b16e9e562b55 (diff) | |
download | mitmproxy-00cf88983765fd15d18825789d5c1befc7dbc840.tar.gz mitmproxy-00cf88983765fd15d18825789d5c1befc7dbc840.tar.bz2 mitmproxy-00cf88983765fd15d18825789d5c1befc7dbc840.zip |
Merge pull request #15 from mhils/fix_binary_rw
always read files in binary mode
-rw-r--r-- | netlib/certutils.py | 12 | ||||
-rw-r--r-- | test/test_certutils.py | 12 |
2 files changed, 12 insertions, 12 deletions
diff --git a/netlib/certutils.py b/netlib/certutils.py index f18318f6..4c06eb8f 100644 --- a/netlib/certutils.py +++ b/netlib/certutils.py @@ -48,23 +48,23 @@ def dummy_ca(path): key, ca = create_ca() # Dump the CA plus private key - f = open(path, "w") + f = open(path, "wb") f.write(OpenSSL.crypto.dump_privatekey(OpenSSL.crypto.FILETYPE_PEM, key)) f.write(OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_PEM, ca)) f.close() # Dump the certificate in PEM format - f = open(os.path.join(dirname, basename + "-cert.pem"), "w") + f = open(os.path.join(dirname, basename + "-cert.pem"), "wb") f.write(OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_PEM, ca)) f.close() # Create a .cer file with the same contents for Android - f = open(os.path.join(dirname, basename + "-cert.cer"), "w") + f = open(os.path.join(dirname, basename + "-cert.cer"), "wb") f.write(OpenSSL.crypto.dump_certificate(OpenSSL.crypto.FILETYPE_PEM, ca)) f.close() # Dump the certificate in PKCS12 format for Windows devices - f = open(os.path.join(dirname, basename + "-cert.p12"), "w") + f = open(os.path.join(dirname, basename + "-cert.p12"), "wb") p12 = OpenSSL.crypto.PKCS12() p12.set_certificate(ca) p12.set_privatekey(key) @@ -88,7 +88,7 @@ def dummy_cert(fp, ca, commonname, sans): ss.append("DNS: %s"%i) ss = ", ".join(ss) - raw = file(ca, "r").read() + raw = file(ca, "rb").read() ca = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, raw) key = OpenSSL.crypto.load_privatekey(OpenSSL.crypto.FILETYPE_PEM, raw) @@ -165,7 +165,7 @@ class CertStore: if os.path.exists(certpath): return certpath elif cacert: - f = open(certpath, "w") + f = open(certpath, "wb") dummy_cert(f, cacert, commonname, sans) return certpath diff --git a/test/test_certutils.py b/test/test_certutils.py index f57f8f6d..b335e946 100644 --- a/test/test_certutils.py +++ b/test/test_certutils.py @@ -54,22 +54,22 @@ class TestDummyCert: assert certutils.dummy_ca(cacert) p = os.path.join(d, "foo") certutils.dummy_cert( - file(p, "w"), + file(p, "wb"), cacert, "foo.com", ["one.com", "two.com", "*.three.com"] ) - assert file(p).read() + assert file(p,"rb").read() class TestSSLCert: def test_simple(self): - c = certutils.SSLCert.from_pem(file(tutils.test_data.path("data/text_cert"), "r").read()) + c = certutils.SSLCert.from_pem(file(tutils.test_data.path("data/text_cert"), "rb").read()) assert c.cn == "google.com" assert len(c.altnames) == 436 - c = certutils.SSLCert.from_pem(file(tutils.test_data.path("data/text_cert_2"), "r").read()) + c = certutils.SSLCert.from_pem(file(tutils.test_data.path("data/text_cert_2"), "rb").read()) assert c.cn == "www.inode.co.nz" assert len(c.altnames) == 2 assert c.digest("sha1") @@ -83,11 +83,11 @@ class TestSSLCert: c.has_expired def test_err_broken_sans(self): - c = certutils.SSLCert.from_pem(file(tutils.test_data.path("data/text_cert_weird1"), "r").read()) + c = certutils.SSLCert.from_pem(file(tutils.test_data.path("data/text_cert_weird1"), "rb").read()) # This breaks unless we ignore a decoding error. c.altnames def test_der(self): - d = file(tutils.test_data.path("data/dercert")).read() + d = file(tutils.test_data.path("data/dercert"),"rb").read() s = certutils.SSLCert.from_der(d) assert s.cn |