Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pyjwkest for openSUSE:Factory
checked in at 2026-04-10 21:28:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyjwkest (Old)
and /work/SRC/openSUSE:Factory/.python-pyjwkest.new.21863 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyjwkest"
Fri Apr 10 21:28:41 2026 rev:5 rq:1345841 version:1.4.4
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyjwkest/python-pyjwkest.changes
2023-09-06 18:58:14.799672886 +0200
+++
/work/SRC/openSUSE:Factory/.python-pyjwkest.new.21863/python-pyjwkest.changes
2026-04-10 21:28:44.846339359 +0200
@@ -1,0 +2,11 @@
+Fri Apr 10 13:38:14 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 1.4.4:
+ * Raise proper exception when failing to deserialize an EC key
+ * Fix deprecated API for array tostring and tobytes
+ * Add pyproject.toml
+ * Fix logging instance
+ * Add maintainance warning
+- drop py39-tobytes.patch (upstream)
+
+-------------------------------------------------------------------
Old:
----
py39-tobytes.patch
pyjwkest-1.4.2-gh.tar.gz
New:
----
pyjwkest-1.4.4-gh.tar.gz
----------(Old B)----------
Old: * Add maintainance warning
- drop py39-tobytes.patch (upstream)
----------(Old E)----------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pyjwkest.spec ++++++
--- /var/tmp/diff_new_pack.xo1qQf/_old 2026-04-10 21:28:45.786378327 +0200
+++ /var/tmp/diff_new_pack.xo1qQf/_new 2026-04-10 21:28:45.790378493 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-pyjwkest
#
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,18 +16,13 @@
#
-%define commit 9ed11b406911dde70b281b2473a976ec88afd1a9
Name: python-pyjwkest
-Version: 1.4.2
+Version: 1.4.4
Release: 0
Summary: Python implementation of JWT, JWE, JWS and JWK
License: Apache-2.0
-URL: https://github.com//IdentityPython/pyjwkest
-#Source:
https://files.pythonhosted.org/packages/source/p/pyjwkest/pyjwkest-%%{version}.tar.gz
-# 1.4.2, released on PyPI is untagged on GitHub, but we need the tests
-Source:
https://github.com/IdentityPython/pyjwkest/archive/%{commit}.tar.gz#/pyjwkest-%{version}-gh.tar.gz
-# PATCH-FIX-OPENSUSE (upstream is unmaintained) -- py 3.9 compatibility. Works
for all of py3.
-Patch0: py39-tobytes.patch
+URL: https://github.com/IdentityPython/pyjwkest
+Source:
https://github.com/IdentityPython/pyjwkest/archive/refs/tags/v%{version}.tar.gz#/pyjwkest-%{version}-gh.tar.gz
Patch1: remove-future-requirement.patch
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
@@ -38,7 +33,7 @@
Requires: python-requests
Requires: python-six
Requires(post): update-alternatives
-Requires(postun):update-alternatives
+Requires(postun): update-alternatives
BuildArch: noarch
BuildRequires: %{python_module pycryptodomex}
BuildRequires: %{python_module pytest}
@@ -53,7 +48,7 @@
Note: This library is NOT actively maintained anymore.
%prep
-%autosetup -p1 -n pyjwkest-%{commit}
+%autosetup -p1 -n pyjwkest-%{version}
# https://github.com/rohe/pyjwkest/pull/1
chmod a+x script/gen_symkey.py
sed -i '1 {s:^#!:#!/usr/bin/env python:}' script/gen_symkey.py
++++++ pyjwkest-1.4.2-gh.tar.gz -> pyjwkest-1.4.4-gh.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyjwkest-9ed11b406911dde70b281b2473a976ec88afd1a9/CHANGELOG.md
new/pyjwkest-1.4.4/CHANGELOG.md
--- old/pyjwkest-9ed11b406911dde70b281b2473a976ec88afd1a9/CHANGELOG.md
1970-01-01 01:00:00.000000000 +0100
+++ new/pyjwkest-1.4.4/CHANGELOG.md 2025-10-04 14:29:01.000000000 +0200
@@ -0,0 +1,11 @@
+# Changelog
+
+
+## 1.4.4 (2025-10-04)
+
+- Add changelog
+- Raise proper exception when failing to deserialize an EC key
+- Fix deprecated API for array tostring and tobytes
+- Add pyproject.toml
+- Fix logging instance
+- Add maintainance warning
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyjwkest-9ed11b406911dde70b281b2473a976ec88afd1a9/README.rst
new/pyjwkest-1.4.4/README.rst
--- old/pyjwkest-9ed11b406911dde70b281b2473a976ec88afd1a9/README.rst
2019-06-27 20:23:07.000000000 +0200
+++ new/pyjwkest-1.4.4/README.rst 2025-10-04 14:29:01.000000000 +0200
@@ -1,3 +1,8 @@
+NOTE!! This library is **NOT** actively maintained anymore.
+
+If someone wants to take over the responsibility of maintaining it,
+contact me (https://github.com/rohe).
+
pyjwkest
========
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyjwkest-9ed11b406911dde70b281b2473a976ec88afd1a9/pyproject.toml
new/pyjwkest-1.4.4/pyproject.toml
--- old/pyjwkest-9ed11b406911dde70b281b2473a976ec88afd1a9/pyproject.toml
1970-01-01 01:00:00.000000000 +0100
+++ new/pyjwkest-1.4.4/pyproject.toml 2025-10-04 14:29:01.000000000 +0200
@@ -0,0 +1,4 @@
+[build-system]
+# XXX: If your project needs other packages to build properly, add them to
this list.
+requires = ["setuptools >= 64"]
+build-backend = "setuptools.build_meta"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyjwkest-9ed11b406911dde70b281b2473a976ec88afd1a9/src/jwkest/__init__.py
new/pyjwkest-1.4.4/src/jwkest/__init__.py
---
old/pyjwkest-9ed11b406911dde70b281b2473a976ec88afd1a9/src/jwkest/__init__.py
2019-06-27 20:23:07.000000000 +0200
+++ new/pyjwkest-1.4.4/src/jwkest/__init__.py 2025-10-04 14:29:01.000000000
+0200
@@ -14,7 +14,7 @@
from binascii import unhexlify
-__version__ = "1.4.2"
+__version__ = "1.4.4"
logger = logging.getLogger(__name__)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyjwkest-9ed11b406911dde70b281b2473a976ec88afd1a9/src/jwkest/jwk.py
new/pyjwkest-1.4.4/src/jwkest/jwk.py
--- old/pyjwkest-9ed11b406911dde70b281b2473a976ec88afd1a9/src/jwkest/jwk.py
2019-06-27 20:23:07.000000000 +0200
+++ new/pyjwkest-1.4.4/src/jwkest/jwk.py 2025-10-04 14:29:01.000000000
+0200
@@ -1,30 +1,29 @@
import base64
import binascii
import hashlib
-import re
-import logging
import json
+import logging
+import re
import sys
-import six
-
from binascii import a2b_base64
+import six
from Cryptodome.PublicKey import RSA
-from Cryptodome.PublicKey.RSA import importKey
from Cryptodome.PublicKey.RSA import RsaKey
+from Cryptodome.PublicKey.RSA import importKey
from Cryptodome.Util.asn1 import DerSequence
-
+from jwkest.ecc import ECCException
from requests import request
+from jwkest import JWKESTException
+from jwkest import UnknownAlgorithm
from jwkest import as_bytes
from jwkest import as_unicode
+from jwkest import b64d
+from jwkest import b64e
from jwkest import base64_to_long
from jwkest import base64url_to_long
from jwkest import long_to_base64
-from jwkest import JWKESTException
-from jwkest import b64d
-from jwkest import b64e
-from jwkest import UnknownAlgorithm
from jwkest.ecc import NISTEllipticCurve
from jwkest.jwt import b2s_conv
@@ -245,7 +244,7 @@
required = ['kty']
def __init__(self, kty="", alg="", use="", kid="", key=None, x5c=None,
- x5t="", x5u="", **kwargs):
+ x5t="", x5u="", **kwargs):
self.key = key
self.extra_args = kwargs
@@ -420,8 +419,8 @@
required = ['kty', 'n', 'e']
def __init__(self, kty="RSA", alg="", use="", kid="", key=None,
- x5c=None, x5t="", x5u="", n="", e="", d="", p="", q="",
- dp="", dq="", di="", qi="", **kwargs):
+ x5c=None, x5t="", x5u="", n="", e="", d="", p="", q="",
+ dp="", dq="", di="", qi="", **kwargs):
Key.__init__(self, kty, alg, use, kid, key, x5c, x5t, x5u, **kwargs)
self.n = n
self.e = e
@@ -568,7 +567,7 @@
required = ['crv', 'key', 'x', 'y']
def __init__(self, kty="EC", alg="", use="", kid="", key=None,
- crv="", x="", y="", d="", curve=None, **kwargs):
+ crv="", x="", y="", d="", curve=None, **kwargs):
Key.__init__(self, kty, alg, use, kid, key, **kwargs)
self.crv = crv
self.x = x
@@ -603,7 +602,12 @@
except ValueError as err:
raise DeSerializationNotPossible("%s" % err)
- self.curve = NISTEllipticCurve.by_name(self.crv)
+ try:
+ self.curve = NISTEllipticCurve.by_name(self.crv)
+ except ECCException as err:
+ logger.warning(err)
+ raise DeSerializationNotPossible(err)
+
if self.d:
try:
if isinstance(self.d, six.string_types):
@@ -669,7 +673,7 @@
required = ['k', 'kty']
def __init__(self, kty="oct", alg="", use="", kid="", key=None,
- x5c=None, x5t="", x5u="", k="", mtrl="", **kwargs):
+ x5c=None, x5t="", x5u="", k="", mtrl="", **kwargs):
Key.__init__(self, kty, alg, use, kid, as_bytes(key), x5c, x5t, x5u,
**kwargs)
self.k = k
@@ -797,7 +801,12 @@
def load_dict(self, dikt):
for kspec in dikt["keys"]:
- self._keys.append(keyrep(kspec))
+ try:
+ _key = keyrep(kspec)
+ except ECCException as err:
+ logger.warning(err)
+ else:
+ self._keys.append(_key)
def load_jwks(self, jwks):
"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyjwkest-9ed11b406911dde70b281b2473a976ec88afd1a9/src/jwkest/jwt.py
new/pyjwkest-1.4.4/src/jwkest/jwt.py
--- old/pyjwkest-9ed11b406911dde70b281b2473a976ec88afd1a9/src/jwkest/jwt.py
2019-06-27 20:23:07.000000000 +0200
+++ new/pyjwkest-1.4.4/src/jwkest/jwt.py 2025-10-04 14:29:01.000000000
+0200
@@ -82,7 +82,7 @@
else:
headers = {'alg': 'none'}
- logging.debug('JWT header: {}'.format(headers))
+ logger.debug('JWT header: {}'.format(headers))
if not parts:
return ".".join([a.decode() for a in self.b64part])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/pyjwkest-9ed11b406911dde70b281b2473a976ec88afd1a9/tests/test_4_jwe.py
new/pyjwkest-1.4.4/tests/test_4_jwe.py
--- old/pyjwkest-9ed11b406911dde70b281b2473a976ec88afd1a9/tests/test_4_jwe.py
2019-06-27 20:23:07.000000000 +0200
+++ new/pyjwkest-1.4.4/tests/test_4_jwe.py 2025-10-04 14:29:01.000000000
+0200
@@ -25,7 +25,7 @@
def intarr2bytes(arr):
- return array.array('B', arr).tostring()
+ return array.array('B', arr).tobytes()
def bytes2intarr(bts):