Merge pull request #15 from mhils/fix_binary_rw
always read files in binary mode
This commit is contained in:
commit
00cf889837
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue