mitmproxy/test/test_certutils.py

66 lines
2.0 KiB
Python
Raw Normal View History

2012-06-27 04:42:00 +00:00
import os
from netlib import certutils
import tutils
class TestCertStore:
def test_create_explicit(self):
with tutils.tmpdir() as d:
2014-03-04 01:12:58 +00:00
ca = certutils.CertStore.from_store(d, "test")
assert ca.get_cert("foo", [])
ca2 = certutils.CertStore.from_store(d, "test")
assert ca2.get_cert("foo", [])
assert ca.cert.get_serial_number() == ca2.cert.get_serial_number()
def test_create_tmp(self):
with tutils.tmpdir() as d:
2014-03-04 01:12:58 +00:00
ca = certutils.CertStore.from_store(d, "test")
assert ca.get_cert("foo.com", [])
assert ca.get_cert("foo.com", [])
assert ca.get_cert("*.foo.com", [])
2012-06-27 04:42:00 +00:00
class TestDummyCert:
def test_with_ca(self):
with tutils.tmpdir() as d:
2014-03-04 01:12:58 +00:00
ca = certutils.CertStore.from_store(d, "test")
r = certutils.dummy_cert(
2014-03-04 01:12:58 +00:00
ca.pkey,
ca.cert,
2012-06-27 04:42:00 +00:00
"foo.com",
["one.com", "two.com", "*.three.com"]
)
assert r.cn == "foo.com"
2012-06-27 04:42:00 +00:00
class TestSSLCert:
def test_simple(self):
2013-06-15 22:28:21 +00:00
c = certutils.SSLCert.from_pem(file(tutils.test_data.path("data/text_cert"), "rb").read())
2012-06-27 04:42:00 +00:00
assert c.cn == "google.com"
assert len(c.altnames) == 436
2013-06-15 22:28:21 +00:00
c = certutils.SSLCert.from_pem(file(tutils.test_data.path("data/text_cert_2"), "rb").read())
2012-06-27 04:42:00 +00:00
assert c.cn == "www.inode.co.nz"
assert len(c.altnames) == 2
assert c.digest("sha1")
assert c.notbefore
assert c.notafter
assert c.subject
assert c.keyinfo == ("RSA", 2048)
assert c.serial
assert c.issuer
assert c.to_pem()
2012-06-27 04:42:00 +00:00
c.has_expired
def test_err_broken_sans(self):
2013-06-15 22:28:21 +00:00
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
2012-06-27 04:42:00 +00:00
def test_der(self):
2013-06-15 22:28:21 +00:00
d = file(tutils.test_data.path("data/dercert"),"rb").read()
2012-06-27 04:42:00 +00:00
s = certutils.SSLCert.from_der(d)
assert s.cn