Kaydet (Commit) c2d65e1e authored tarafından Christian Heimes's avatar Christian Heimes

Issue #17134: check certs of CA and ROOT system store

üst 50c48b89
...@@ -536,21 +536,22 @@ class BasicSocketTests(unittest.TestCase): ...@@ -536,21 +536,22 @@ class BasicSocketTests(unittest.TestCase):
self.assertRaises(TypeError, ssl.enum_certificates) self.assertRaises(TypeError, ssl.enum_certificates)
self.assertRaises(WindowsError, ssl.enum_certificates, "") self.assertRaises(WindowsError, ssl.enum_certificates, "")
names = set() trust_oids = set()
ca = ssl.enum_certificates("CA") for storename in ("CA", "ROOT"):
self.assertIsInstance(ca, list) store = ssl.enum_certificates(storename)
for element in ca: self.assertIsInstance(store, list)
self.assertIsInstance(element, tuple) for element in store:
self.assertEqual(len(element), 3) self.assertIsInstance(element, tuple)
cert, enc, trust = element self.assertEqual(len(element), 3)
self.assertIsInstance(cert, bytes) cert, enc, trust = element
self.assertIn(enc, {"x509_asn", "pkcs_7_asn"}) self.assertIsInstance(cert, bytes)
self.assertIsInstance(trust, (set, bool)) self.assertIn(enc, {"x509_asn", "pkcs_7_asn"})
if isinstance(trust, set): self.assertIsInstance(trust, (set, bool))
names.update(trust) if isinstance(trust, set):
trust_oids.update(trust)
serverAuth = "1.3.6.1.5.5.7.3.1" serverAuth = "1.3.6.1.5.5.7.3.1"
self.assertIn(serverAuth, names) self.assertIn(serverAuth, trust_oids)
@unittest.skipUnless(sys.platform == "win32", "Windows specific") @unittest.skipUnless(sys.platform == "win32", "Windows specific")
def test_enum_crls(self): def test_enum_crls(self):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment