Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-pyhanko-certvalidator for 
openSUSE:Factory checked in at 2026-05-12 19:26:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyhanko-certvalidator (Old)
 and      /work/SRC/openSUSE:Factory/.python-pyhanko-certvalidator.new.1966 
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pyhanko-certvalidator"

Tue May 12 19:26:32 2026 rev:6 rq:1352322 version:0.31.1

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-pyhanko-certvalidator/python-pyhanko-certvalidator.changes
        2026-04-25 23:28:13.045576957 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-pyhanko-certvalidator.new.1966/python-pyhanko-certvalidator.changes
      2026-05-12 19:26:58.395845518 +0200
@@ -1,0 +2,12 @@
+Sun May 10 19:59:54 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 0.31.1:
+  * ML-DSA support.
+  * Always short-circuit OCSP fetching if no URLs.
+  * Tests and testability fixes for AdES TS handling.
+  * Get rid of unnecessary async marker on get_session() in the
+    aiohttp fetcher.
+  * Align default certs with certifi for aiohttp usage.
+- add certifi as test and suggested dependency
+
+-------------------------------------------------------------------

Old:
----
  pyhanko_certvalidator-0.30.2.tar.gz

New:
----
  pyhanko_certvalidator-0.31.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-pyhanko-certvalidator.spec ++++++
--- /var/tmp/diff_new_pack.SwsRsF/_old  2026-05-12 19:26:58.863864914 +0200
+++ /var/tmp/diff_new_pack.SwsRsF/_new  2026-05-12 19:26:58.863864914 +0200
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-pyhanko-certvalidator
-Version:        0.30.2
+Version:        0.31.1
 Release:        0
 Summary:        Validates X509 certificates and paths
 License:        MIT
@@ -31,7 +31,8 @@
 # SECTION test requirements
 BuildRequires:  %{python_module asn1crypto >= 1.5.1}
 BuildRequires:  %{python_module aiohttp >= 3.9}
-BuildRequires:  %{python_module cryptography >= 41.0.5}
+BuildRequires:  %{python_module certifi >= 2023.5.7}
+BuildRequires:  %{python_module cryptography >= 48.0.0}
 BuildRequires:  %{python_module freezegun >= 1.1.0}
 BuildRequires:  %{python_module oscrypto >= 1.1.0}
 BuildRequires:  %{python_module pytest-aiohttp >= 1.0.4}
@@ -42,11 +43,12 @@
 # /SECTION
 BuildRequires:  fdupes
 Requires:       python-asn1crypto >= 1.5.1
-Requires:       python-cryptography >= 41.0.5
+Requires:       python-cryptography >= 48.0.0
 Requires:       python-oscrypto >= 1.1.0
 Requires:       python-requests >= 2.31.0
 Requires:       python-uritools >= 3.0.1
 Suggests:       python-aiohttp >= 3.9
+Suggests:       python-certifi >= 2023.5.7
 Suggests:       python-freezegun >= 1.1.0
 BuildArch:      noarch
 %python_subpackages

++++++ pyhanko_certvalidator-0.30.2.tar.gz -> 
pyhanko_certvalidator-0.31.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyhanko_certvalidator-0.30.2/PKG-INFO 
new/pyhanko_certvalidator-0.31.1/PKG-INFO
--- old/pyhanko_certvalidator-0.30.2/PKG-INFO   2026-03-27 23:04:42.304559000 
+0100
+++ new/pyhanko_certvalidator-0.31.1/PKG-INFO   2026-05-06 01:58:40.581700000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: pyhanko-certvalidator
-Version: 0.30.2
+Version: 0.31.1
 Summary: Validates X.509 certificates and paths; forked from 
wbond/certvalidator
 Author-email: Matthias Valvekens <[email protected]>
 License-Expression: MIT
@@ -20,7 +20,7 @@
 License-File: LICENSE
 Requires-Dist: asn1crypto>=1.5.1
 Requires-Dist: oscrypto>=1.1.0
-Requires-Dist: cryptography>=41.0.5
+Requires-Dist: cryptography>=48.0.0
 Requires-Dist: uritools>=3.0.1
 Requires-Dist: requests>=2.31.0
 Provides-Extra: async-http
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pyhanko_certvalidator-0.30.2/pyproject.toml 
new/pyhanko_certvalidator-0.31.1/pyproject.toml
--- old/pyhanko_certvalidator-0.30.2/pyproject.toml     2026-03-27 
23:04:38.000000000 +0100
+++ new/pyhanko_certvalidator-0.31.1/pyproject.toml     2026-05-06 
01:58:36.000000000 +0200
@@ -31,11 +31,11 @@
 dependencies = [
     "asn1crypto>=1.5.1",
     "oscrypto>=1.1.0",
-    "cryptography>=41.0.5",
+    "cryptography>=48.0.0",
     "uritools>=3.0.1",
     "requests>=2.31.0",
 ]
-version = "0.30.2"
+version = "0.31.1"
 
 
 [project.readme]
@@ -51,10 +51,11 @@
 [dependency-groups]
 testing-base = [
     "pytest>=6.1.1",
-    "pytest-cov>=4.0,<7.1",
+    "pytest-cov>=4.0,<7.2",
     "freezegun>=1.1.0",
     "aiohttp>=3.9,<3.14",
     "pytest-aiohttp>=1.0.4,<1.2.0",
+    "certifi>=2023.5.7",
     "aiohttp>=3.9,<3.14",
 ]
 
@@ -85,6 +86,7 @@
 asyncio_mode = "strict"
 norecursedirs = "tests/legacy_live_tests"
 asyncio_default_fixture_loop_scope="function"
+strict = true
 
 [tool.coverage.report]
 exclude_lines = ["pragma: no cover", "pragma: nocover", "raise 
AssertionError", "raise NotImplementedError", "TYPE_CHECKING", "^\\s*\\.\\.\\."]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/asn1_types.py 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/asn1_types.py
--- old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/asn1_types.py    
2026-03-27 23:04:35.000000000 +0100
+++ new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/asn1_types.py    
2026-05-06 01:58:32.000000000 +0200
@@ -1,6 +1,6 @@
 from typing import Optional
 
-from asn1crypto import cms, core, x509
+from asn1crypto import algos, cms, core, keys, x509
 
 __all__ = [
     'AAControls',
@@ -97,3 +97,39 @@
 
 ext_map['1.3.6.1.5.5.7.1.4'] = 'audit_identity'
 ext_specs['audit_identity'] = core.OctetString
+
+
+def _pqc_setup():
+    sd_algo_map = algos.SignedDigestAlgorithmId._map
+    sd_algo_map['2.16.840.1.101.3.4.3.17'] = 'mldsa44'
+    sd_algo_map['2.16.840.1.101.3.4.3.18'] = 'mldsa65'
+    sd_algo_map['2.16.840.1.101.3.4.3.19'] = 'mldsa87'
+
+    sd_algo_reverse_map = algos.SignedDigestAlgorithmId._reverse_map
+    if sd_algo_reverse_map is not None:
+        sd_algo_reverse_map['mldsa44'] = '2.16.840.1.101.3.4.3.17'
+        sd_algo_reverse_map['mldsa65'] = '2.16.840.1.101.3.4.3.18'
+        sd_algo_reverse_map['mldsa87'] = '2.16.840.1.101.3.4.3.19'
+
+    key_algo_map = keys.PublicKeyAlgorithmId._map
+    key_algo_map['2.16.840.1.101.3.4.3.17'] = 'mldsa44'
+    key_algo_map['2.16.840.1.101.3.4.3.18'] = 'mldsa65'
+    key_algo_map['2.16.840.1.101.3.4.3.19'] = 'mldsa87'
+
+    key_algo_reverse_map = keys.PublicKeyAlgorithmId._reverse_map
+
+    if key_algo_reverse_map is not None:  # pragma: nocover
+        key_algo_reverse_map['mldsa44'] = '2.16.840.1.101.3.4.3.17'
+        key_algo_reverse_map['mldsa65'] = '2.16.840.1.101.3.4.3.18'
+        key_algo_reverse_map['mldsa87'] = '2.16.840.1.101.3.4.3.19'
+
+    def _public_key_spec_wrapped(public_key_info: keys.PublicKeyInfo):
+        try:
+            return public_key_info._public_key_spec()
+        except KeyError:
+            return core.OctetBitString, None
+
+    keys.PublicKeyInfo._spec_callbacks['public_key'] = _public_key_spec_wrapped
+
+
+_pqc_setup()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/fetchers/aiohttp_fetchers/cert_fetch_client.py
 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/fetchers/aiohttp_fetchers/cert_fetch_client.py
--- 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/fetchers/aiohttp_fetchers/cert_fetch_client.py
   2026-03-27 23:04:35.000000000 +0100
+++ 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/fetchers/aiohttp_fetchers/cert_fetch_client.py
   2026-05-06 01:58:32.000000000 +0200
@@ -54,7 +54,7 @@
                     permit_pem=self.permit_pem,
                     timeout=self.per_request_timeout,
                     user_agent=self.user_agent,
-                    session=await self.get_session(),
+                    session=self.get_session(),
                     url_origin_type=url_origin_type,
                 )
             except (ValueError, aiohttp.ClientError) as e:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/fetchers/aiohttp_fetchers/crl_client.py
 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/fetchers/aiohttp_fetchers/crl_client.py
--- 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/fetchers/aiohttp_fetchers/crl_client.py
  2026-03-27 23:04:35.000000000 +0100
+++ 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/fetchers/aiohttp_fetchers/crl_client.py
  2026-05-06 01:58:32.000000000 +0200
@@ -72,7 +72,7 @@
             return await _grab_crl(
                 url,
                 user_agent=self.user_agent,
-                session=await self.get_session(),
+                session=self.get_session(),
                 timeout=self.per_request_timeout,
             )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/fetchers/aiohttp_fetchers/ocsp_client.py
 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/fetchers/aiohttp_fetchers/ocsp_client.py
--- 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/fetchers/aiohttp_fetchers/ocsp_client.py
 2026-03-27 23:04:35.000000000 +0100
+++ 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/fetchers/aiohttp_fetchers/ocsp_client.py
 2026-05-06 01:58:32.000000000 +0200
@@ -80,7 +80,7 @@
             f"Fetching OCSP status for {target} from url(s) "
             f"{';'.join(ocsp_urls)}..."
         )
-        session = await self.get_session()
+        session = self.get_session()
         fetch_jobs = (
             _grab_ocsp(
                 ocsp_request,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/fetchers/aiohttp_fetchers/util.py
 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/fetchers/aiohttp_fetchers/util.py
--- 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/fetchers/aiohttp_fetchers/util.py
        2026-03-27 23:04:35.000000000 +0100
+++ 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/fetchers/aiohttp_fetchers/util.py
        2026-05-06 01:58:32.000000000 +0200
@@ -1,7 +1,9 @@
 import asyncio
+import ssl
 from typing import Any, Dict, Union
 
 import aiohttp
+import certifi
 
 from ..api import DEFAULT_USER_AGENT
 from ..common_utils import queue_fetch_task
@@ -9,14 +11,21 @@
 __all__ = ['AIOHttpMixin', 'LazySession']
 
 
+def _default_session():
+    ssl_context = ssl.create_default_context(cafile=certifi.where())
+    return aiohttp.ClientSession(
+        connector=aiohttp.TCPConnector(ssl=ssl_context)
+    )
+
+
 class LazySession:
     def __init__(self):
         self._session = None
 
-    async def get_session(self):
+    def get_session(self):
         session = self._session
         if session is None:
-            self._session = session = aiohttp.ClientSession()
+            self._session = session = _default_session()
         return session
 
     async def close(self):
@@ -39,10 +48,10 @@
         self.__result_events: Dict[Any, asyncio.Event] = {}
         super().__init__()
 
-    async def get_session(self) -> aiohttp.ClientSession:
+    def get_session(self) -> aiohttp.ClientSession:
         session = self._session
         if isinstance(session, LazySession):
-            return await session.get_session()
+            return session.get_session()
         else:
             return session
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/policy_decl.py 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/policy_decl.py
--- old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/policy_decl.py   
2026-03-27 23:04:35.000000000 +0100
+++ new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/policy_decl.py   
2026-05-06 01:58:32.000000000 +0200
@@ -576,7 +576,10 @@
         moment: Optional[datetime],
         public_key: Optional[keys.PublicKeyInfo],
     ) -> AlgorithmUsageConstraint:
-        algo_name = algo.signature_algo
+        try:
+            algo_name = algo.signature_algo
+        except ValueError:
+            algo_name = algo['algorithm'].native
         algo_allowed = algo_name not in self.weak_signature_algos
         is_rsa = algo_name.startswith('rsa')
         is_dsa = algo_name == 'dsa'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/revinfo/manager.py 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/revinfo/manager.py
--- 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/revinfo/manager.py   
    2026-03-27 23:04:35.000000000 +0100
+++ 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/revinfo/manager.py   
    2026-05-06 01:58:32.000000000 +0200
@@ -27,6 +27,7 @@
     OCSPContainer,
     sort_freshest_first,
 )
+from pyhanko_certvalidator.util import get_ocsp_urls
 
 
 class RevinfoManager:
@@ -264,7 +265,7 @@
             A list of :class:`OCSPContainer` objects
         """
 
-        if not self._fetchers:
+        if not self._fetchers or not get_ocsp_urls(cert):
             return self._ocsps
 
         fetchers = self._fetchers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/revinfo/validate_crl.py
 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/revinfo/validate_crl.py
--- 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/revinfo/validate_crl.py
  2026-03-27 23:04:35.000000000 +0100
+++ 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/revinfo/validate_crl.py
  2026-05-06 01:58:32.000000000 +0200
@@ -887,7 +887,7 @@
     return revoked_date, revoked_reason
 
 
-async def _classify_relevant_crls(
+def _classify_relevant_crls(
     certificate_lists: List[CRLContainer],
     poe_manager: POEManager,
     errs: _CRLErrs,
@@ -1022,7 +1022,7 @@
     (
         complete_lists_by_issuer,
         delta_lists_by_issuer,
-    ) = await _classify_relevant_crls(certificate_lists, poe_manager, errs)
+    ) = _classify_relevant_crls(certificate_lists, poe_manager, errs)
 
     # In the main loop, only complete CRLs are processed, so delta CRLs are
     # weeded out of the to-do list
@@ -1078,9 +1078,7 @@
     (
         extra_complete_lists_by_issuer,
         extra_delta_lists_by_issuer,
-    ) = await _classify_relevant_crls(
-        extra_certificate_lists, poe_manager, errs
-    )
+    ) = _classify_relevant_crls(extra_certificate_lists, poe_manager, errs)
 
     combined_deltas = {
         k: delta_lists_by_issuer.get(k, [])
@@ -1273,13 +1271,12 @@
     proc_state = proc_state or 
ValProcState(cert_path_stack=ConsList.sing(path))
     errs = _CRLErrs()
     candidate_crls = revinfo_manager.currently_available_crls()
-    classify_job = _classify_relevant_crls(
+    complete_lists_by_issuer, delta_lists_by_issuer = _classify_relevant_crls(
         candidate_crls,
         revinfo_manager.poe_manager,
         errs,
         control_time=control_time,
     )
-    complete_lists_by_issuer, delta_lists_by_issuer = await classify_job
 
     # In the main loop, only complete CRLs are processed, so delta CRLs are
     # weeded out of the to-do list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/sig_validate.py 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/sig_validate.py
--- old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/sig_validate.py  
2026-03-27 23:04:35.000000000 +0100
+++ new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/sig_validate.py  
2026-05-06 01:58:32.000000000 +0200
@@ -12,6 +12,7 @@
     ec,
     ed448,
     ed25519,
+    mldsa,
     padding,
     rsa,
 )
@@ -96,7 +97,7 @@
         signature_algorithm: algos.SignedDigestAlgorithm,
         context: SignatureValidationContext = SignatureValidationContext(),
     ):
-        return _validate_raw(
+        _validate_raw(
             signature,
             signed_data,
             public_key_info,
@@ -178,6 +179,15 @@
     elif sig_algo == 'ed448':
         assert isinstance(pub_key, ed448.Ed448PublicKey)
         pub_key.verify(signature, signed_data)
+    elif sig_algo == 'mldsa44':
+        assert isinstance(pub_key, mldsa.MLDSA44PublicKey)
+        pub_key.verify(signature, signed_data)
+    elif sig_algo == 'mldsa65':
+        assert isinstance(pub_key, mldsa.MLDSA65PublicKey)
+        pub_key.verify(signature, signed_data)
+    elif sig_algo == 'mldsa87':
+        assert isinstance(pub_key, mldsa.MLDSA87PublicKey)
+        pub_key.verify(signature, signed_data)
     else:
         raise AlgorithmNotSupported(
             f"Signature mechanism {sig_algo} is not supported."
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/util.py 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/util.py
--- old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/util.py  
2026-03-27 23:04:35.000000000 +0100
+++ new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/util.py  
2026-05-06 01:58:32.000000000 +0200
@@ -191,7 +191,7 @@
     return has_crl, has_ocsp
 
 
-def get_pyca_cryptography_hash(algorithm) -> Union[hashes.HashAlgorithm]:
+def get_pyca_cryptography_hash(algorithm) -> hashes.HashAlgorithm:
     if algorithm.lower() in ('shake256', 'shake256_len'):
         # force the output length to 64 bytes = 512 bits. We don't
         # support any other lengths because those can't be valid in CMS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/version.py 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/version.py
--- old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator/version.py       
2026-03-27 23:04:38.000000000 +0100
+++ new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator/version.py       
2026-05-06 01:58:36.000000000 +0200
@@ -1,2 +1,2 @@
-__version__ = '0.30.2'
-__version_info__ = (0, 30, 2)
+__version__ = '0.31.1'
+__version_info__ = (0, 31, 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator.egg-info/PKG-INFO 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator.egg-info/PKG-INFO
--- 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator.egg-info/PKG-INFO    
    2026-03-27 23:04:42.000000000 +0100
+++ 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator.egg-info/PKG-INFO    
    2026-05-06 01:58:40.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: pyhanko-certvalidator
-Version: 0.30.2
+Version: 0.31.1
 Summary: Validates X.509 certificates and paths; forked from 
wbond/certvalidator
 Author-email: Matthias Valvekens <[email protected]>
 License-Expression: MIT
@@ -20,7 +20,7 @@
 License-File: LICENSE
 Requires-Dist: asn1crypto>=1.5.1
 Requires-Dist: oscrypto>=1.1.0
-Requires-Dist: cryptography>=41.0.5
+Requires-Dist: cryptography>=48.0.0
 Requires-Dist: uritools>=3.0.1
 Requires-Dist: requests>=2.31.0
 Provides-Extra: async-http
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator.egg-info/requires.txt
 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator.egg-info/requires.txt
--- 
old/pyhanko_certvalidator-0.30.2/src/pyhanko_certvalidator.egg-info/requires.txt
    2026-03-27 23:04:42.000000000 +0100
+++ 
new/pyhanko_certvalidator-0.31.1/src/pyhanko_certvalidator.egg-info/requires.txt
    2026-05-06 01:58:40.000000000 +0200
@@ -1,6 +1,6 @@
 asn1crypto>=1.5.1
 oscrypto>=1.1.0
-cryptography>=41.0.5
+cryptography>=48.0.0
 uritools>=3.0.1
 requests>=2.31.0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pyhanko_certvalidator-0.30.2/tests/fixtures/nist_pkits/pkits.json 
new/pyhanko_certvalidator-0.31.1/tests/fixtures/nist_pkits/pkits.json
--- old/pyhanko_certvalidator-0.30.2/tests/fixtures/nist_pkits/pkits.json       
2026-03-27 23:04:35.000000000 +0100
+++ new/pyhanko_certvalidator-0.31.1/tests/fixtures/nist_pkits/pkits.json       
2026-05-06 01:58:32.000000000 +0200
@@ -2752,22 +2752,6 @@
     }
   },
   {
-    "id": "41303",
-    "name": "invalid_dn_nameconstraints_test3",
-    "cert": "InvalidDNnameConstraintsTest3EE.crt",
-    "other_certs": [
-      "nameConstraintsDN1CACert.crt"
-    ],
-    "crls": [
-      "nameConstraintsDN1CACRL.crl"
-    ],
-    "path_len": 3,
-    "error": {
-      "class": "PathValidationError",
-      "msg_regex": "The path could not be validated because not all names of 
the end-entity certificate are in the permitted namespace of the issuing 
authority."
-    }
-  },
-  {
     "id": "41304",
     "name": "valid_dn_nameconstraints_test4",
     "cert": "ValidDNnameConstraintsTest4EE.crt",

Reply via email to