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 2025-02-06 22:04:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyhanko-certvalidator (Old)
and /work/SRC/openSUSE:Factory/.python-pyhanko-certvalidator.new.2316
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyhanko-certvalidator"
Thu Feb 6 22:04:57 2025 rev:3 rq:1243431 version:0.26.5
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-pyhanko-certvalidator/python-pyhanko-certvalidator.changes
2024-11-13 15:30:02.137658926 +0100
+++
/work/SRC/openSUSE:Factory/.python-pyhanko-certvalidator.new.2316/python-pyhanko-certvalidator.changes
2025-02-06 22:06:29.284744447 +0100
@@ -1,0 +2,11 @@
+Wed Feb 5 13:26:06 UTC 2025 - John Paul Adrian Glaubitz
<[email protected]>
+
+- Update to 0.26.5
+ * Future-proofing against an upcoming `asn1crypto`
+ that is already being shipped in some distro
+ packages.
+ * Address some timing issues in tests.
+- Drop 5dd5ff95b7b104667eb4f39367eb4f4c00fcedd5.patch, merged upstream
+- Use Python 3.11 on SLE-15 by default
+
+-------------------------------------------------------------------
Old:
----
5dd5ff95b7b104667eb4f39367eb4f4c00fcedd5.patch
pyhanko-certvalidator-0.26.4.tar.gz
New:
----
pyhanko-certvalidator-0.26.5.tar.gz
BETA DEBUG BEGIN:
Old: * Address some timing issues in tests.
- Drop 5dd5ff95b7b104667eb4f39367eb4f4c00fcedd5.patch, merged upstream
- Use Python 3.11 on SLE-15 by default
BETA DEBUG END:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pyhanko-certvalidator.spec ++++++
--- /var/tmp/diff_new_pack.zsQ0jZ/_old 2025-02-06 22:06:29.936771315 +0100
+++ /var/tmp/diff_new_pack.zsQ0jZ/_new 2025-02-06 22:06:29.940771480 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-pyhanko-certvalidator
#
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,14 +16,14 @@
#
+%{?sle15_python_module_pythons}
Name: python-pyhanko-certvalidator
-Version: 0.26.4
+Version: 0.26.5
Release: 0
Summary: Validates X509 certificates and paths
License: MIT
URL: https://github.com/MatthiasValvekens/certvalidator
Source:
https://github.com/MatthiasValvekens/certvalidator/archive/refs/tags/v%{version}.tar.gz#/pyhanko-certvalidator-%{version}.tar.gz
-Patch0:
https://github.com/MatthiasValvekens/certvalidator/commit/5dd5ff95b7b104667eb4f39367eb4f4c00fcedd5.patch
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools >= 67.4}
BuildRequires: %{python_module wheel}
++++++ pyhanko-certvalidator-0.26.4.tar.gz ->
pyhanko-certvalidator-0.26.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/certvalidator-0.26.4/LICENSE
new/certvalidator-0.26.5/LICENSE
--- old/certvalidator-0.26.4/LICENSE 2024-11-12 00:50:08.000000000 +0100
+++ new/certvalidator-0.26.5/LICENSE 2024-11-17 15:41:58.000000000 +0100
@@ -1,3 +1,5 @@
+MIT License
+
Copyright (c) 2015-2018 Will Bond <[email protected]>
Copyright (c) 2020-2023 Matthias Valvekens <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/certvalidator-0.26.4/changelog.md
new/certvalidator-0.26.5/changelog.md
--- old/certvalidator-0.26.4/changelog.md 2024-11-12 00:50:08.000000000
+0100
+++ new/certvalidator-0.26.5/changelog.md 2024-11-17 15:41:58.000000000
+0100
@@ -1,5 +1,13 @@
# changelog
+
+## 0.26.5
+
+- Future-proofing against an upcoming `asn1crypto`
+ that is already being shipped in some distro
+ packages.
+- Address some timing issues in tests.
+
## 0.26.4
- Bump `aiohttp` requirement to `>=3.8,<3.11`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/certvalidator-0.26.4/pyhanko_certvalidator/revinfo/validate_crl.py
new/certvalidator-0.26.5/pyhanko_certvalidator/revinfo/validate_crl.py
--- old/certvalidator-0.26.4/pyhanko_certvalidator/revinfo/validate_crl.py
2024-11-12 00:50:08.000000000 +0100
+++ new/certvalidator-0.26.5/pyhanko_certvalidator/revinfo/validate_crl.py
2024-11-17 15:41:58.000000000 +0100
@@ -1329,16 +1329,12 @@
invalid or uses an unsupported algorithm
"""
- signature_algo = certificate_list['signature_algorithm'].signature_algo
- hash_algo = certificate_list['signature_algorithm'].hash_algo
-
try:
validate_sig(
signature=certificate_list['signature'].native,
signed_data=certificate_list['tbs_cert_list'].dump(),
public_key_info=public_key,
- sig_algo=signature_algo,
- hash_algo=hash_algo,
+ signed_digest_algorithm=certificate_list['signature_algorithm'],
parameters=certificate_list['signature_algorithm']['parameters'],
)
except PSSParameterMismatch as e:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/certvalidator-0.26.4/pyhanko_certvalidator/revinfo/validate_ocsp.py
new/certvalidator-0.26.5/pyhanko_certvalidator/revinfo/validate_ocsp.py
--- old/certvalidator-0.26.4/pyhanko_certvalidator/revinfo/validate_ocsp.py
2024-11-12 00:50:08.000000000 +0100
+++ new/certvalidator-0.26.5/pyhanko_certvalidator/revinfo/validate_ocsp.py
2024-11-17 15:41:58.000000000 +0100
@@ -376,19 +376,14 @@
if response is None:
return False
- # Determine what algorithm was used to sign the response
- signature_algo = response['signature_algorithm'].signature_algo
- hash_algo = response['signature_algorithm'].hash_algo
-
# Verify that the response was properly signed by the validated certificate
tbs_response = response['tbs_response_data']
try:
validate_sig(
signature=response['signature'].native,
signed_data=tbs_response.dump(),
+ signed_digest_algorithm=response['signature_algorithm'],
public_key_info=responder_key,
- sig_algo=signature_algo,
- hash_algo=hash_algo,
parameters=response['signature_algorithm']['parameters'],
)
return True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/certvalidator-0.26.4/pyhanko_certvalidator/util.py
new/certvalidator-0.26.5/pyhanko_certvalidator/util.py
--- old/certvalidator-0.26.4/pyhanko_certvalidator/util.py 2024-11-12
00:50:08.000000000 +0100
+++ new/certvalidator-0.26.5/pyhanko_certvalidator/util.py 2024-11-17
15:41:58.000000000 +0100
@@ -197,12 +197,13 @@
signature: bytes,
signed_data: bytes,
public_key_info: PublicKeyInfo,
- sig_algo: str,
- hash_algo: str,
+ signed_digest_algorithm: algos.SignedDigestAlgorithm,
parameters=None,
):
from .errors import DSAParametersUnavailable, PSSParameterMismatch
+ sig_algo = signed_digest_algorithm.signature_algo
+
if (
sig_algo == 'dsa'
and public_key_info['algorithm']['parameters'].native is None
@@ -227,10 +228,12 @@
pub_key = serialization.load_der_public_key(public_key_info.dump())
if sig_algo == 'rsassa_pkcs1v15':
+ hash_algo = signed_digest_algorithm.hash_algo
assert isinstance(pub_key, rsa.RSAPublicKey)
h = getattr(hashes, hash_algo.upper())()
pub_key.verify(signature, signed_data, padding.PKCS1v15(), h)
elif sig_algo == 'rsassa_pss':
+ hash_algo = signed_digest_algorithm.hash_algo
assert isinstance(pub_key, rsa.RSAPublicKey)
assert isinstance(parameters, algos.RSASSAPSSParams)
mga: algos.MaskGenAlgorithm = parameters['mask_gen_algorithm']
@@ -248,10 +251,12 @@
hash_spec = getattr(hashes, hash_algo.upper())()
pub_key.verify(signature, signed_data, pss_padding, hash_spec)
elif sig_algo == 'dsa':
+ hash_algo = signed_digest_algorithm.hash_algo
assert isinstance(pub_key, dsa.DSAPublicKey)
hash_spec = getattr(hashes, hash_algo.upper())()
pub_key.verify(signature, signed_data, hash_spec)
elif sig_algo == 'ecdsa':
+ hash_algo = signed_digest_algorithm.hash_algo
assert isinstance(pub_key, ec.EllipticCurvePublicKey)
hash_spec = getattr(hashes, hash_algo.upper())()
pub_key.verify(signature, signed_data, ec.ECDSA(hash_spec))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/certvalidator-0.26.4/pyhanko_certvalidator/validate.py
new/certvalidator-0.26.5/pyhanko_certvalidator/validate.py
--- old/certvalidator-0.26.4/pyhanko_certvalidator/validate.py 2024-11-12
00:50:08.000000000 +0100
+++ new/certvalidator-0.26.5/pyhanko_certvalidator/validate.py 2024-11-17
15:41:58.000000000 +0100
@@ -485,9 +485,6 @@
banned_since=digest_allowed.not_allowed_after,
)
- signature_algo = sd_algo.signature_algo
- hash_algo = attr_cert['signature_algorithm'].hash_algo
-
try:
validate_sig(
signature=attr_cert['signature'].native,
@@ -497,8 +494,7 @@
# validation algo)
# low-priority since this only affects DSA in practice
public_key_info=aa_cert.public_key,
- sig_algo=signature_algo,
- hash_algo=hash_algo,
+ signed_digest_algorithm=sd_algo,
parameters=attr_cert['signature_algorithm']['parameters'],
)
except PSSParameterMismatch:
@@ -983,8 +979,7 @@
signature=cert['signature_value'].native,
signed_data=cert['tbs_certificate'].dump(),
public_key_info=self.working_public_key,
- sig_algo=sd_algo.signature_algo,
- hash_algo=sd_algo.hash_algo,
+ signed_digest_algorithm=sd_algo,
parameters=cert['signature_algorithm']['parameters'],
)
except PSSParameterMismatch:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/certvalidator-0.26.4/pyhanko_certvalidator/version.py
new/certvalidator-0.26.5/pyhanko_certvalidator/version.py
--- old/certvalidator-0.26.4/pyhanko_certvalidator/version.py 2024-11-12
00:50:08.000000000 +0100
+++ new/certvalidator-0.26.5/pyhanko_certvalidator/version.py 2024-11-17
15:41:58.000000000 +0100
@@ -1,5 +1,5 @@
# coding: utf-8
-__version__ = '0.26.4'
-__version_info__ = (0, 26, 4)
+__version__ = '0.26.5'
+__version_info__ = (0, 26, 5)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/certvalidator-0.26.4/tests/test_certificate_validator.py
new/certvalidator-0.26.5/tests/test_certificate_validator.py
--- old/certvalidator-0.26.4/tests/test_certificate_validator.py
2024-11-12 00:50:08.000000000 +0100
+++ new/certvalidator-0.26.5/tests/test_certificate_validator.py
2024-11-17 15:41:58.000000000 +0100
@@ -4,6 +4,7 @@
import pytest
from asn1crypto.util import timezone
+from freezegun import freeze_time
from pyhanko_certvalidator import (
CertificateValidator,
@@ -94,6 +95,7 @@
await validator.async_validate_usage({'crl_sign'})
+@freeze_time('2022-05-01')
@pytest.mark.asyncio
async def test_certvalidator_with_params():
cert = load_nist_cert('ValidPolicyMappingTest12EE.crt')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/certvalidator-0.26.4/tests/test_policy_proc.py
new/certvalidator-0.26.5/tests/test_policy_proc.py
--- old/certvalidator-0.26.4/tests/test_policy_proc.py 2024-11-12
00:50:08.000000000 +0100
+++ new/certvalidator-0.26.5/tests/test_policy_proc.py 2024-11-17
15:41:58.000000000 +0100
@@ -1,7 +1,6 @@
-import os
-
import pytest
from asn1crypto import x509
+from freezegun import freeze_time
from pyhanko_certvalidator.authority import (
CertTrustAnchor,
@@ -49,6 +48,7 @@
assert tree.tree_base.value == expected_name
+@freeze_time('2022-05-01')
@pytest.mark.asyncio
async def test_validate_with_derived():
crt = load_nist_cert('nameConstraintsDN1CACert.crt')
@@ -64,6 +64,7 @@
await async_validate_path(context, path)
+@freeze_time('2022-05-01')
@pytest.mark.asyncio
async def test_validate_with_merged_permitted_subtrees():
crt = load_nist_cert('nameConstraintsDN1CACert.crt')
@@ -93,6 +94,7 @@
await async_validate_path(context, path, parameters=extra_params)
+@freeze_time('2022-05-01')
@pytest.mark.asyncio
async def test_validate_with_merged_excluded_subtrees():
crt = load_nist_cert('nameConstraintsDN3CACert.crt')
@@ -122,6 +124,7 @@
await async_validate_path(context, path, parameters=extra_params)
+@freeze_time('2022-05-01')
@pytest.mark.asyncio
async def test_validate_with_certless_root():
crt = load_nist_cert('nameConstraintsDN1CACert.crt')
@@ -154,6 +157,7 @@
await async_validate_path(context, path, parameters=extra_params)
+@freeze_time('2022-05-01')
@pytest.mark.asyncio
async def test_validate_with_certless_root_failure():
crt = load_nist_cert('nameConstraintsDN1CACert.crt')
@@ -186,6 +190,7 @@
await async_validate_path(context, path, parameters=extra_params)
+@freeze_time('2022-05-01')
@pytest.mark.asyncio
async def test_validate_empty_path_certless_root():
crt = load_nist_cert('nameConstraintsDN1CACert.crt')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/certvalidator-0.26.4/tests/test_validate.py
new/certvalidator-0.26.5/tests/test_validate.py
--- old/certvalidator-0.26.4/tests/test_validate.py 2024-11-12
00:50:08.000000000 +0100
+++ new/certvalidator-0.26.5/tests/test_validate.py 2024-11-17
15:41:58.000000000 +0100
@@ -9,6 +9,7 @@
import pytest
from asn1crypto import crl, ocsp, x509
from asn1crypto.util import timezone
+from freezegun import freeze_time
from pyhanko_certvalidator import PKIXValidationParams
from pyhanko_certvalidator.authority import Authority, CertTrustAnchor
@@ -617,6 +618,7 @@
return [PKITSTestCase.from_json(obj) for obj in cases]
+@freeze_time('2022-05-01')
@pytest.mark.parametrize(
'test_case', read_pkits_test_params(), ids=lambda case: str(case.test_info)
)
@@ -711,6 +713,7 @@
return [PKITSUserNoticeTestCase.from_json(obj) for obj in cases]
+@freeze_time('2022-05-01')
@pytest.mark.parametrize(
'test_case',
read_pkits_user_notice_test_params(),
@@ -741,6 +744,7 @@
assert qual_obj['qualifier']['explicit_text'].native == test_case.notice
+@freeze_time('2022-05-01')
def test_408020_cps_pointer_qualifier_test20():
cert = load_nist_cert('CPSPointerQualifierTest20EE.crt')
ca_certs = [load_nist_cert('TrustAnchorRootCertificate.crt')]