Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-SecretStorage for
openSUSE:Factory checked in at 2025-11-18 15:29:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-SecretStorage (Old)
and /work/SRC/openSUSE:Factory/.python-SecretStorage.new.2061 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-SecretStorage"
Tue Nov 18 15:29:41 2025 rev:20 rq:1318260 version:3.4.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-SecretStorage/python-SecretStorage.changes
2025-11-05 16:19:43.257650692 +0100
+++
/work/SRC/openSUSE:Factory/.python-SecretStorage.new.2061/python-SecretStorage.changes
2025-11-18 15:31:03.285188101 +0100
@@ -1,0 +2,7 @@
+Mon Nov 17 09:42:41 UTC 2025 - John Paul Adrian Glaubitz
<[email protected]>
+
+- Update to 3.4.1
+ * Make sure public key length is exactly 128 bytes [`#48`_].
+ This fixes ``Client public key size is invalid`` error from KWallet.
+
+-------------------------------------------------------------------
Old:
----
secretstorage-3.4.0.tar.gz
New:
----
secretstorage-3.4.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-SecretStorage.spec ++++++
--- /var/tmp/diff_new_pack.wleTyI/_old 2025-11-18 15:31:06.509323809 +0100
+++ /var/tmp/diff_new_pack.wleTyI/_new 2025-11-18 15:31:06.513323977 +0100
@@ -27,7 +27,7 @@
%endif
%{?sle15_python_module_pythons}
Name: python-SecretStorage%{psuffix}
-Version: 3.4.0
+Version: 3.4.1
Release: 0
Summary: Python bindings to FreeDesktoporg Secret Service API
License: BSD-3-Clause
++++++ secretstorage-3.4.0.tar.gz -> secretstorage-3.4.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/secretstorage-3.4.0/LICENSE
new/secretstorage-3.4.1/LICENSE
--- old/secretstorage-3.4.0/LICENSE 2025-09-09 18:41:55.000000000 +0200
+++ new/secretstorage-3.4.1/LICENSE 2025-11-11 12:30:06.000000000 +0100
@@ -1,4 +1,4 @@
-Copyright 2012-2018 Dmitry Shachnev <[email protected]>
+Copyright 2012-2025 Dmitry Shachnev <[email protected]>
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/secretstorage-3.4.0/PKG-INFO
new/secretstorage-3.4.1/PKG-INFO
--- old/secretstorage-3.4.0/PKG-INFO 2025-09-09 18:42:02.140015400 +0200
+++ new/secretstorage-3.4.1/PKG-INFO 2025-11-11 12:30:11.427642300 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: SecretStorage
-Version: 3.4.0
+Version: 3.4.1
Summary: Python bindings to FreeDesktop.org Secret Service API
Author-email: Dmitry Shachnev <[email protected]>
License-Expression: BSD-3-Clause
@@ -16,6 +16,7 @@
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/secretstorage-3.4.0/SecretStorage.egg-info/PKG-INFO
new/secretstorage-3.4.1/SecretStorage.egg-info/PKG-INFO
--- old/secretstorage-3.4.0/SecretStorage.egg-info/PKG-INFO 2025-09-09
18:42:02.000000000 +0200
+++ new/secretstorage-3.4.1/SecretStorage.egg-info/PKG-INFO 2025-11-11
12:30:11.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: SecretStorage
-Version: 3.4.0
+Version: 3.4.1
Summary: Python bindings to FreeDesktop.org Secret Service API
Author-email: Dmitry Shachnev <[email protected]>
License-Expression: BSD-3-Clause
@@ -16,6 +16,7 @@
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/secretstorage-3.4.0/changelog
new/secretstorage-3.4.1/changelog
--- old/secretstorage-3.4.0/changelog 2025-09-09 18:41:55.000000000 +0200
+++ new/secretstorage-3.4.1/changelog 2025-11-11 12:30:06.000000000 +0100
@@ -1,3 +1,11 @@
+SecretStorage 3.4.1, 2025-11-11
+===============================
+
+* Make sure public key length is exactly 128 bytes [`#48`_].
+ This fixes ``Client public key size is invalid`` error from KWallet.
+
+.. _`#48`: https://github.com/mitya57/secretstorage/issues/48
+
SecretStorage 3.4.0, 2025-09-09
===============================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/secretstorage-3.4.0/docs/conf.py
new/secretstorage-3.4.1/docs/conf.py
--- old/secretstorage-3.4.0/docs/conf.py 2025-09-09 18:41:55.000000000
+0200
+++ new/secretstorage-3.4.1/docs/conf.py 2025-11-11 12:30:06.000000000
+0100
@@ -25,7 +25,7 @@
# General information about the project.
project = 'SecretStorage'
-copyright = '2022, Dmitry Shachnev'
+copyright = '2025, Dmitry Shachnev'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
@@ -34,7 +34,7 @@
# The short X.Y version.
version = '3.4'
# The full version, including alpha/beta/rc tags.
-release = '3.4.0'
+release = '3.4.1'
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/secretstorage-3.4.0/pyproject.toml
new/secretstorage-3.4.1/pyproject.toml
--- old/secretstorage-3.4.0/pyproject.toml 2025-09-09 18:41:55.000000000
+0200
+++ new/secretstorage-3.4.1/pyproject.toml 2025-11-11 12:30:06.000000000
+0100
@@ -4,7 +4,7 @@
[project]
name = "SecretStorage"
-version = "3.4.0"
+version = "3.4.1"
description = "Python bindings to FreeDesktop.org Secret Service API"
authors = [{name = "Dmitry Shachnev", email = "[email protected]"}]
license = "BSD-3-Clause"
@@ -17,6 +17,7 @@
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
"Topic :: Security",
"Topic :: Software Development :: Libraries :: Python Modules",
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/secretstorage-3.4.0/secretstorage/__init__.py
new/secretstorage-3.4.1/secretstorage/__init__.py
--- old/secretstorage-3.4.0/secretstorage/__init__.py 2025-09-09
18:41:55.000000000 +0200
+++ new/secretstorage-3.4.1/secretstorage/__init__.py 2025-11-11
12:30:06.000000000 +0100
@@ -29,7 +29,7 @@
from secretstorage.item import Item
from secretstorage.util import add_match_rules
-__version_tuple__ = (3, 4, 0)
+__version_tuple__ = (3, 4, 1)
__version__ = '.'.join(map(str, __version_tuple__))
__all__ = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/secretstorage-3.4.0/secretstorage/dhcrypto.py
new/secretstorage-3.4.1/secretstorage/dhcrypto.py
--- old/secretstorage-3.4.0/secretstorage/dhcrypto.py 2025-09-09
18:41:55.000000000 +0200
+++ new/secretstorage-3.4.1/secretstorage/dhcrypto.py 2025-11-11
12:30:06.000000000 +0100
@@ -1,6 +1,6 @@
# SecretStorage module for Python
# Access passwords using the SecretService DBus API
-# Author: Dmitry Shachnev, 2014-2018
+# Author: Dmitry Shachnev, 2014-2025
# License: 3-clause BSD, see LICENSE file
'''This module contains needed classes, functions and constants
@@ -27,8 +27,10 @@
)
-def int_to_bytes(number: int) -> bytes:
- return number.to_bytes(math.ceil(number.bit_length() / 8), 'big')
+def int_to_bytes(number: int, length: int) -> bytes:
+ result = number.to_bytes(math.ceil(number.bit_length() / 8), 'big')
+ # Pad with zero bytes if needed.
+ return b'\x00' * (length - len(result)) + result
DH_PRIME_1024 = int.from_bytes(DH_PRIME_1024_BYTES, 'big')
@@ -46,9 +48,7 @@
def set_server_public_key(self, server_public_key: int) -> None:
common_secret_int = pow(server_public_key, self.my_private_key,
DH_PRIME_1024)
- common_secret = int_to_bytes(common_secret_int)
- # Prepend NULL bytes if needed
- common_secret = b'\x00' * (0x80 - len(common_secret)) + common_secret
+ common_secret = int_to_bytes(common_secret_int, 128)
# HKDF with null salt, empty info and SHA-256 hash
salt = b'\x00' * 0x20
pseudo_random_key = hmac.new(salt, common_secret, sha256).digest()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/secretstorage-3.4.0/secretstorage/util.py
new/secretstorage-3.4.1/secretstorage/util.py
--- old/secretstorage-3.4.0/secretstorage/util.py 2025-09-09
18:41:55.000000000 +0200
+++ new/secretstorage-3.4.1/secretstorage/util.py 2025-11-11
12:30:06.000000000 +0100
@@ -1,6 +1,6 @@
# SecretStorage module for Python
# Access passwords using the SecretService DBus API
-# Author: Dmitry Shachnev, 2013-2018
+# Author: Dmitry Shachnev, 2013-2025
# License: 3-clause BSD, see LICENSE file
"""This module provides some utility functions, but these shouldn't
@@ -102,7 +102,7 @@
output, result = service.call(
'OpenSession', 'sv',
ALGORITHM_DH,
- ('ay', int_to_bytes(session.my_public_key)))
+ ('ay', int_to_bytes(session.my_public_key, 128)))
except DBusErrorResponse as resp:
if resp.name != DBUS_NOT_SUPPORTED:
raise
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/secretstorage-3.4.0/tests/test_collection.py
new/secretstorage-3.4.1/tests/test_collection.py
--- old/secretstorage-3.4.0/tests/test_collection.py 2025-09-09
18:41:55.000000000 +0200
+++ new/secretstorage-3.4.1/tests/test_collection.py 2025-11-11
12:30:06.000000000 +0100
@@ -1,5 +1,5 @@
# Tests for SecretStorage
-# Author: Dmitry Shachnev, 2013-2018
+# Author: Dmitry Shachnev, 2013-2025
# License: 3-clause BSD, see LICENSE file
# This file tests the secretstorage.Collection class.
@@ -41,7 +41,7 @@
item.get_label()
def test_create_empty_item(self) -> None:
- item = self.collection.create_item('', {}, b'')
+ item = self.collection.create_item('Test', {}, b'')
item.delete()
def test_label(self) -> None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/secretstorage-3.4.0/tests/test_dhcrypto.py
new/secretstorage-3.4.1/tests/test_dhcrypto.py
--- old/secretstorage-3.4.0/tests/test_dhcrypto.py 2025-09-09
18:41:55.000000000 +0200
+++ new/secretstorage-3.4.1/tests/test_dhcrypto.py 2025-11-11
12:30:06.000000000 +0100
@@ -1,5 +1,5 @@
# Tests for SecretStorage
-# Author: Dmitry Shachnev, 2014-2016
+# Author: Dmitry Shachnev, 2014-2025
# License: 3-clause BSD, see LICENSE file
# This file tests the dhcrypto module.
@@ -14,6 +14,7 @@
between bytes and long."""
def test_int_to_bytes(self) -> None:
- self.assertEqual(int_to_bytes(1), b'\x01')
- self.assertEqual(int_to_bytes(258), b'\x01\x02')
- self.assertEqual(int_to_bytes(1 << 64), b'\x01' + b'\x00' * 8)
+ self.assertEqual(int_to_bytes(1, 1), b'\x01')
+ self.assertEqual(int_to_bytes(1, 2), b'\x00\x01')
+ self.assertEqual(int_to_bytes(258, 2), b'\x01\x02')
+ self.assertEqual(int_to_bytes(1 << 64, 9), b'\x01' + b'\x00' * 8)