[pypy-commit] pypy stdlib-2.7.9: Fix an issue in cert_store_stats()

amauryfa noreply at buildbot.pypy.org
Sun Feb 1 19:34:03 CET 2015


Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: stdlib-2.7.9
Changeset: r75629:1c34bb5d8133
Date: 2015-01-31 23:02 +0100
http://bitbucket.org/pypy/pypy/changeset/1c34bb5d8133/

Log:	Fix an issue in cert_store_stats()

diff --git a/pypy/module/_ssl/interp_ssl.py b/pypy/module/_ssl/interp_ssl.py
--- a/pypy/module/_ssl/interp_ssl.py
+++ b/pypy/module/_ssl/interp_ssl.py
@@ -1353,7 +1353,8 @@
             obj = libssl_sk_X509_OBJECT_value(store[0].c_objs, i)
             if intmask(obj.c_type) == X509_LU_X509:
                 counters['x509'] += 1
-                if libssl_pypy_X509_OBJECT_data_x509(obj):
+                if libssl_X509_check_ca(
+                        libssl_pypy_X509_OBJECT_data_x509(obj)):
                     counters['x509_ca'] += 1
             elif intmask(obj.c_type) == X509_LU_CRL:
                 counters['crl'] += 1
diff --git a/pypy/module/_ssl/test/test_ssl.py b/pypy/module/_ssl/test/test_ssl.py
--- a/pypy/module/_ssl/test/test_ssl.py
+++ b/pypy/module/_ssl/test/test_ssl.py
@@ -344,6 +344,15 @@
         assert certs[0]['crlDistributionPoints'] == (
             'https://www.cacert.org/revoke.crl',)
 
+    def test_cert_store_stats(self):
+        import _ssl
+        ctx = _ssl._SSLContext(_ssl.PROTOCOL_TLSv1)
+        assert ctx.cert_store_stats() == {'x509_ca': 0, 'crl': 0, 'x509': 0}
+        ctx.load_cert_chain(self.keycert)
+        assert ctx.cert_store_stats() == {'x509_ca': 0, 'crl': 0, 'x509': 0}
+        ctx.load_verify_locations(self.keycert)
+        assert ctx.cert_store_stats() == {'x509_ca': 0, 'crl': 0, 'x509': 1}
+
     def test_load_dh_params(self):
         import _ssl
         ctx = _ssl._SSLContext(_ssl.PROTOCOL_TLSv1)


More information about the pypy-commit mailing list