Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pyspnego for openSUSE:Factory
checked in at 2026-09-04 12:38:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pyspnego (Old)
and /work/SRC/openSUSE:Factory/.python-pyspnego.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyspnego"
Fri Sep 4 12:38:08 2026 rev:22 rq:1375442 version:0.12.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pyspnego/python-pyspnego.changes
2026-03-05 17:32:05.904810849 +0100
+++
/work/SRC/openSUSE:Factory/.python-pyspnego.new.1265/python-pyspnego.changes
2026-09-04 12:38:40.786937976 +0200
@@ -1,0 +2,11 @@
+Tue Sep 1 14:24:42 UTC 2026 - Martin Hauke <[email protected]>
+
+- Update to version 0.12.2
+ * Fix up NTLM single host data unpacking to be less strict
+ making it compatible with newer Windows versions.
+ * Use canoncial Kerberos client principal from kinit operation,
+ this avoid issues around not being able to find TGT in cache
+ during Kerberos authentication.
+ * Use canonical client principal when initializing kinit ccache.
+
+-------------------------------------------------------------------
Old:
----
pyspnego-0.12.1.tar.gz
New:
----
pyspnego-0.12.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pyspnego.spec ++++++
--- /var/tmp/diff_new_pack.FqbNRN/_old 2026-09-04 12:38:41.487962602 +0200
+++ /var/tmp/diff_new_pack.FqbNRN/_new 2026-09-04 12:38:41.489962672 +0200
@@ -23,7 +23,7 @@
%endif
%{?sle15_python_module_pythons}
Name: python-pyspnego
-Version: 0.12.1
+Version: 0.12.2
Release: 0
Summary: Python SPNEGO authentication library
License: MIT
++++++ pyspnego-0.12.1.tar.gz -> pyspnego-0.12.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/.github/workflows/ci.yml
new/pyspnego-0.12.2/.github/workflows/ci.yml
--- old/pyspnego-0.12.1/.github/workflows/ci.yml 2026-03-02
20:15:11.000000000 +0100
+++ new/pyspnego-0.12.2/.github/workflows/ci.yml 2026-08-26
07:00:47.000000000 +0200
@@ -25,7 +25,7 @@
name: build sdist and universal wheel
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v6
+ - uses: actions/checkout@v7
- name: build sdist and universal wheel
run: |
@@ -58,8 +58,8 @@
- '3.12'
- '3.13'
- '3.14'
+ - '3.15-dev'
python-arch:
- - x86
- x64
- arm64
gssapi-provider:
@@ -69,15 +69,11 @@
exclude:
- os: ubuntu-latest
- python-arch: x86
- - os: ubuntu-latest
python-arch: arm64
- os: ubuntu-latest
gssapi-provider: sspi
- os: macOS-15-intel
- python-arch: x86
- - os: macOS-15-intel
python-arch: arm64
- os: macOS-15-intel
gssapi-provider: mit
@@ -85,8 +81,6 @@
gssapi-provider: sspi
- os: macOS-latest
- python-arch: x86
- - os: macOS-latest
python-arch: x64
- os: macOS-latest
python-version: 3.9
@@ -103,9 +97,9 @@
gssapi-provider: heimdal
steps:
- - uses: actions/checkout@v6
+ - uses: actions/checkout@v7
- - uses: actions/setup-python@v6
+ - uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.python-arch }}
@@ -151,7 +145,7 @@
- name: Upload Coverage to codecov
if: always()
- uses: codecov/codecov-action@v5
+ uses: codecov/codecov-action@v7
with:
files: ./coverage.xml
flags: ${{ steps.os.outputs.name }},py${{ matrix.python-version }},${{
matrix.python-arch }},${{ matrix.gssapi-provider }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/.pre-commit-config.yaml
new/pyspnego-0.12.2/.pre-commit-config.yaml
--- old/pyspnego-0.12.1/.pre-commit-config.yaml 2026-03-02 20:15:11.000000000
+0100
+++ new/pyspnego-0.12.2/.pre-commit-config.yaml 2026-08-26 07:00:47.000000000
+0200
@@ -1,13 +1,11 @@
repos:
-- repo: https://github.com/psf/black
- rev: 25.1.0
+- repo: https://github.com/astral-sh/ruff-pre-commit
+ rev: v0.16.4
hooks:
- - id: black
-
-- repo: https://github.com/PyCQA/isort
- rev: 6.0.1
- hooks:
- - id: isort
+ - id: ruff-check
+ args:
+ - --fix
+ - id: ruff-format
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.17.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/CHANGELOG.md
new/pyspnego-0.12.2/CHANGELOG.md
--- old/pyspnego-0.12.1/CHANGELOG.md 2026-03-02 20:15:11.000000000 +0100
+++ new/pyspnego-0.12.2/CHANGELOG.md 2026-08-26 07:00:47.000000000 +0200
@@ -1,5 +1,10 @@
# Changelog
+## 0.12.2 - 2026-08-26
+
+* Fix up NTLM single host data unpacking to be less strict making it
compatible with newer Windows versions
+* Use canoncial Kerberos client principal from `kinit` operation, this avoid
issues around not being able to find TGT in cache during Kerberos authentication
+
## 0.12.1 - 2026-03-03
* Fix NTLM challenge parser when the `TargetInfo` contains extra data for
`Single_Host_Data`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/build_helpers/lib.sh
new/pyspnego-0.12.2/build_helpers/lib.sh
--- old/pyspnego-0.12.1/build_helpers/lib.sh 2026-03-02 20:15:11.000000000
+0100
+++ new/pyspnego-0.12.2/build_helpers/lib.sh 2026-08-26 07:00:47.000000000
+0200
@@ -73,8 +73,8 @@
echo "::group::Running Sanity Checks"
fi
- python -m black . --check
- python -m isort . --check-only
+ python -m ruff check .
+ python -m ruff format . --check
python -m mypy .
if [ x"${GITHUB_ACTIONS}" = "xtrue" ]; then
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/pyproject.toml
new/pyspnego-0.12.2/pyproject.toml
--- old/pyspnego-0.12.1/pyproject.toml 2026-03-02 20:15:11.000000000 +0100
+++ new/pyspnego-0.12.2/pyproject.toml 2026-08-26 07:00:47.000000000 +0200
@@ -23,11 +23,12 @@
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
- "Programming Language :: Python :: 3.14"
+ "Programming Language :: Python :: 3.14",
+ "Programming Language :: Python :: 3.15"
]
dependencies = [
"cryptography",
- "sspilib >= 0.3.0; sys_platform == 'win32'" # Introduces KeytabCredential
+ "sspilib >= 0.5.0; sys_platform == 'win32'" # Retrieve canonicalized
principal in cred.client
]
dynamic = ["version"]
@@ -56,26 +57,20 @@
[tool.setuptools.package-data]
spnego = ["py.typed"]
-[tool.black]
+[tool.ruff]
line-length = 120
-include = '\.pyi?$'
-exclude = '''
-/(
- \.git
- | \.hg
- | \.mypy_cache
- | \.tox
- | \.venv
- | _build
- | buck-out
- | build
- | dist
- | tests/integration/collections
-)/
-'''
+extend-exclude = [
+ "*.md",
+ "tests/integration/collections",
+]
+
+[tool.ruff.lint]
+select = [
+ "I", # isort
+]
-[tool.isort]
-profile = "black"
+[tool.ruff.lint.isort]
+known-first-party = ["spnego"]
[tool.mypy]
exclude = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/requirements-test.txt
new/pyspnego-0.12.2/requirements-test.txt
--- old/pyspnego-0.12.1/requirements-test.txt 2026-03-02 20:15:11.000000000
+0100
+++ new/pyspnego-0.12.2/requirements-test.txt 2026-08-26 07:00:47.000000000
+0200
@@ -1,9 +1,8 @@
-black == 25.1.0
gssapi >= 1.5.0 ; sys_platform != 'win32'
k5test ; sys_platform != 'win32'
krb5 ; sys_platform != 'win32'
-isort == 6.0.1
mypy == 1.17.1
+ruff == 0.16.4
pre-commit
pytest
pytest-cov
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/src/spnego/__main__.py
new/pyspnego-0.12.2/src/spnego/__main__.py
--- old/pyspnego-0.12.1/src/spnego/__main__.py 2026-03-02 20:15:11.000000000
+0100
+++ new/pyspnego-0.12.2/src/spnego/__main__.py 2026-08-26 07:00:47.000000000
+0200
@@ -112,7 +112,6 @@
info = []
for av_id, raw_value in target_info.items():
-
if av_id == AvId.eol:
value = None
elif av_id in text_values:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/src/spnego/_credssp_structures.py
new/pyspnego-0.12.2/src/spnego/_credssp_structures.py
--- old/pyspnego-0.12.1/src/spnego/_credssp_structures.py 2026-03-02
20:15:11.000000000 +0100
+++ new/pyspnego-0.12.2/src/spnego/_credssp_structures.py 2026-08-26
07:00:47.000000000 +0200
@@ -259,9 +259,7 @@
1: TSPasswordCreds,
2: TSSmartCardCreds,
6: TSRemoteGuardCreds,
- }.get(
- cred_type
- )
+ }.get(cred_type)
if not cred_class:
raise ValueError("Unknown credType %s in TSCredentials, cannot
unpack" % cred_type)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/src/spnego/_gss.py
new/pyspnego-0.12.2/src/spnego/_gss.py
--- old/pyspnego-0.12.1/src/spnego/_gss.py 2026-03-02 20:15:11.000000000
+0100
+++ new/pyspnego-0.12.2/src/spnego/_gss.py 2026-08-26 07:00:47.000000000
+0200
@@ -46,9 +46,8 @@
try:
import gssapi
import krb5
- from gssapi.raw import ChannelBindings, GSSError
+ from gssapi.raw import ChannelBindings, GSSError,
inquire_sec_context_by_oid, set_cred_option
from gssapi.raw import exceptions as gss_errors
- from gssapi.raw import inquire_sec_context_by_oid, set_cred_option
except ImportError as e:
GSSAPI_IMP_ERR = str(e)
HAS_GSSAPI = False
@@ -246,7 +245,7 @@
cred = krb5.get_init_creds_password(ctx, princ, init_opt,
password=password)
mem_ccache = krb5.cc_new_unique(ctx, b"MEMORY")
- krb5.cc_initialize(ctx, mem_ccache, princ)
+ krb5.cc_initialize(ctx, mem_ccache, cred.client)
krb5.cc_store_cred(ctx, mem_ccache, cred)
return _gss_acquire_cred_from_ccache(mem_ccache, None)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/src/spnego/_kerberos.py
new/pyspnego-0.12.2/src/spnego/_kerberos.py
--- old/pyspnego-0.12.1/src/spnego/_kerberos.py 2026-03-02 20:15:11.000000000
+0100
+++ new/pyspnego-0.12.2/src/spnego/_kerberos.py 2026-08-26 07:00:47.000000000
+0200
@@ -760,7 +760,6 @@
class KerberosV5Msg(metaclass=_KerberosMsgType):
-
MESSAGE_TYPE = KerberosMessageType.unknown
PVNO = 5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/src/spnego/_ntlm.py
new/pyspnego-0.12.2/src/spnego/_ntlm.py
--- old/pyspnego-0.12.1/src/spnego/_ntlm.py 2026-03-02 20:15:11.000000000
+0100
+++ new/pyspnego-0.12.2/src/spnego/_ntlm.py 2026-08-26 07:00:47.000000000
+0200
@@ -567,7 +567,7 @@
if channel_bindings:
if AvId.channel_bindings not in target_info:
raise BadBindingsError(
- context_msg="Acceptor bindings specified but not
present in initiator " "response"
+ context_msg="Acceptor bindings specified but not
present in initiator response"
)
expected_bindings = target_info[AvId.channel_bindings]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/src/spnego/_version.py
new/pyspnego-0.12.2/src/spnego/_version.py
--- old/pyspnego-0.12.1/src/spnego/_version.py 2026-03-02 20:15:11.000000000
+0100
+++ new/pyspnego-0.12.2/src/spnego/_version.py 2026-08-26 07:00:47.000000000
+0200
@@ -1,4 +1,4 @@
# Copyright: (c) 2020, Jordan Borean (@jborean93) <[email protected]>
# MIT License (see LICENSE or https://opensource.org/licenses/MIT)
-__version__ = "0.12.1"
+__version__ = "0.12.2"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/tests/_ntlm_raw/test_crypto.py
new/pyspnego-0.12.2/tests/_ntlm_raw/test_crypto.py
--- old/pyspnego-0.12.1/tests/_ntlm_raw/test_crypto.py 2026-03-02
20:15:11.000000000 +0100
+++ new/pyspnego-0.12.2/tests/_ntlm_raw/test_crypto.py 2026-08-26
07:00:47.000000000 +0200
@@ -75,8 +75,7 @@
#
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/a9dc740e-e12f-4fdd-8f2b-61a471731a14
assert (
- actual_nt ==
b"\x67\xc4\x30\x11\xf3\x02\x98\xa2\xad\x35\xec\xe6\x4f\x16\x33\x1c"
- b"\x44\xbd\xbe\xd9\x27\x84\x1f\x94"
+ actual_nt ==
b"\x67\xc4\x30\x11\xf3\x02\x98\xa2\xad\x35\xec\xe6\x4f\x16\x33\x1c\x44\xbd\xbe\xd9\x27\x84\x1f\x94"
)
#
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/859a18d1-d7b2-4e98-a261-5b38cdf4b11d
@@ -103,14 +102,12 @@
#
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/a9dc740e-e12f-4fdd-8f2b-61a471731a14
assert (
- actual_nt ==
b"\x67\xc4\x30\x11\xf3\x02\x98\xa2\xad\x35\xec\xe6\x4f\x16\x33\x1c"
- b"\x44\xbd\xbe\xd9\x27\x84\x1f\x94"
+ actual_nt ==
b"\x67\xc4\x30\x11\xf3\x02\x98\xa2\xad\x35\xec\xe6\x4f\x16\x33\x1c\x44\xbd\xbe\xd9\x27\x84\x1f\x94"
)
#
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/859a18d1-d7b2-4e98-a261-5b38cdf4b11d
assert (
- actual_lm ==
b"\x98\xde\xf7\xb8\x7f\x88\xaa\x5d\xaf\xe2\xdf\x77\x96\x88\xa1\x72"
- b"\xde\xf1\x1c\x7d\x5c\xcd\xef\x13"
+ actual_lm ==
b"\x98\xde\xf7\xb8\x7f\x88\xaa\x5d\xaf\xe2\xdf\x77\x96\x88\xa1\x72\xde\xf1\x1c\x7d\x5c\xcd\xef\x13"
)
assert actual_kek ==
b"\xe5\x2c\xac\x67\x41\x9a\x9a\x22\x00\x00\x00\x00\x00\x00\x00\x00"
@@ -133,14 +130,12 @@
#
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/a9dc740e-e12f-4fdd-8f2b-61a471731a14
assert (
- actual_nt ==
b"\x67\xc4\x30\x11\xf3\x02\x98\xa2\xad\x35\xec\xe6\x4f\x16\x33\x1c"
- b"\x44\xbd\xbe\xd9\x27\x84\x1f\x94"
+ actual_nt ==
b"\x67\xc4\x30\x11\xf3\x02\x98\xa2\xad\x35\xec\xe6\x4f\x16\x33\x1c\x44\xbd\xbe\xd9\x27\x84\x1f\x94"
)
#
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/859a18d1-d7b2-4e98-a261-5b38cdf4b11d
assert (
- actual_lm ==
b"\x98\xde\xf7\xb8\x7f\x88\xaa\x5d\xaf\xe2\xdf\x77\x96\x88\xa1\x72"
- b"\xde\xf1\x1c\x7d\x5c\xcd\xef\x13"
+ actual_lm ==
b"\x98\xde\xf7\xb8\x7f\x88\xaa\x5d\xaf\xe2\xdf\x77\x96\x88\xa1\x72\xde\xf1\x1c\x7d\x5c\xcd\xef\x13"
)
assert actual_kek ==
b"\xb0\x9e\x37\x9f\x7f\xbe\xcb\x1e\xaf\x0a\xfd\xcb\x03\x83\xc8\xa0"
@@ -160,8 +155,7 @@
#
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/becc1601-9c97-4553-aef7-7053d3db5883
assert (
- actual_nt ==
b"\x75\x37\xf8\x03\xae\x36\x71\x28\xca\x45\x82\x04\xbd\xe7\xca\xf8"
- b"\x1e\x97\xed\x26\x83\x26\x72\x32"
+ actual_nt ==
b"\x75\x37\xf8\x03\xae\x36\x71\x28\xca\x45\x82\x04\xbd\xe7\xca\xf8\x1e\x97\xed\x26\x83\x26\x72\x32"
)
#
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/63725b2b-21fc-4977-9b56-2b3e65f7be76
@@ -209,8 +203,7 @@
#
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/7e2b35f9-fe90-49fb-8c9d-30639a899160
assert (
- actual_lm ==
b"\x86\xc3\x50\x97\xac\x9c\xec\x10\x25\x54\x76\x4a\x57\xcc\xcc\x19"
- b"\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
+ actual_lm ==
b"\x86\xc3\x50\x97\xac\x9c\xec\x10\x25\x54\x76\x4a\x57\xcc\xcc\x19\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa"
)
#
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/54973495-20d2-49e8-9925-c399a403ed4a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/tests/_ntlm_raw/test_messages.py
new/pyspnego-0.12.2/tests/_ntlm_raw/test_messages.py
--- old/pyspnego-0.12.1/tests/_ntlm_raw/test_messages.py 2026-03-02
20:15:11.000000000 +0100
+++ new/pyspnego-0.12.2/tests/_ntlm_raw/test_messages.py 2026-08-26
07:00:47.000000000 +0200
@@ -959,9 +959,7 @@
assert actual.domain_name == TEST_USER_DOM
assert actual.user_name == TEST_USER
assert actual.workstation == TEST_WORKSTATION_NAME
- assert (
- actual.encrypted_random_session_key ==
b"\x51\x88\x22\xb1\xb3\xf3\x50\xc8" b"\x95\x86\x82\xec\xbb\x3e\x3c\xb7"
- )
+ assert actual.encrypted_random_session_key ==
b"\x51\x88\x22\xb1\xb3\xf3\x50\xc8\x95\x86\x82\xec\xbb\x3e\x3c\xb7"
assert actual.flags == 3800072757
assert actual.mic is None
assert actual.version == messages.Version(5, 1, 2600)
@@ -1035,9 +1033,7 @@
assert actual.domain_name == TEST_USER_DOM
assert actual.user_name == TEST_USER
assert actual.workstation == TEST_WORKSTATION_NAME
- assert (
- actual.encrypted_random_session_key ==
b"\xc5\xda\xd2\x54\x4f\xc9\x79\x90" b"\x94\xce\x1c\xe9\x0b\xc9\xd0\x3e"
- )
+ assert actual.encrypted_random_session_key ==
b"\xc5\xda\xd2\x54\x4f\xc9\x79\x90\x94\xce\x1c\xe9\x0b\xc9\xd0\x3e"
assert actual.flags == 3800597045
assert actual.mic is None
assert actual.version == messages.Version(5, 1, 2600)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/tests/_ntlm_raw/test_security.py
new/pyspnego-0.12.2/tests/_ntlm_raw/test_security.py
--- old/pyspnego-0.12.1/tests/_ntlm_raw/test_security.py 2026-03-02
20:15:11.000000000 +0100
+++ new/pyspnego-0.12.2/tests/_ntlm_raw/test_security.py 2026-08-26
07:00:47.000000000 +0200
@@ -38,7 +38,7 @@
b_data = to_bytes("Plaintext", encoding="utf-16-le")
actual_msg, actual_signature = seal(TEST_NTLMV1_FLAGS, seal_handle,
sign_key, 0, b_data)
- assert actual_msg ==
b"\x56\xfe\x04\xd8\x61\xf9\x31\x9a\xf0\xd7\x23\x8a\x2e\x3b\x4d\x45" b"\x7f\xb8"
+ assert actual_msg ==
b"\x56\xfe\x04\xd8\x61\xf9\x31\x9a\xf0\xd7\x23\x8a\x2e\x3b\x4d\x45\x7f\xb8"
# The docs example seems to keep the random pad in the signature even
though the actual function definition sets
# that to 0x00000000. Assert the actual working implementation that has
been tested against MS servers.
@@ -61,7 +61,7 @@
b_data = to_bytes("Plaintext", encoding="utf-16-le")
actual_msg, actual_signature = seal(TEST_NTLMV1_CLIENT_CHALLENGE_FLAGS,
seal_handle, sign_key, 0, b_data)
- assert actual_msg ==
b"\xa0\x23\x72\xf6\x53\x02\x73\xf3\xaa\x1e\xb9\x01\x90\xce\x52\x00" b"\xc9\x9d"
+ assert actual_msg ==
b"\xa0\x23\x72\xf6\x53\x02\x73\xf3\xaa\x1e\xb9\x01\x90\xce\x52\x00\xc9\x9d"
assert actual_signature ==
b"\x01\x00\x00\x00\xff\x2a\xeb\x52\xf6\x81\x79\x3a\x00\x00\x00\x00"
@@ -82,7 +82,7 @@
b_data = to_bytes("Plaintext", encoding="utf-16-le")
actual_msg, actual_signature = seal(flags, seal_handle, sign_key, 0,
b_data)
- assert actual_msg ==
b"\x54\xe5\x01\x65\xbf\x19\x36\xdc\x99\x60\x20\xc1\x81\x1b\x0f\x06" b"\xfb\x5f"
+ assert actual_msg ==
b"\x54\xe5\x01\x65\xbf\x19\x36\xdc\x99\x60\x20\xc1\x81\x1b\x0f\x06\xfb\x5f"
assert actual_signature ==
b"\x01\x00\x00\x00\x7f\xb3\x8e\xc5\xc5\x5d\x49\x76\x00\x00\x00\x00"
@@ -98,7 +98,7 @@
b_data = to_bytes("Plaintext", encoding="utf-16-le")
actual_msg, actual_signature = seal(flags, seal_handle, sign_key, 0,
b_data)
- assert actual_msg ==
b"\x54\xe5\x01\x65\xbf\x19\x36\xdc\x99\x60\x20\xc1\x81\x1b\x0f\x06" b"\xfb\x5f"
+ assert actual_msg ==
b"\x54\xe5\x01\x65\xbf\x19\x36\xdc\x99\x60\x20\xc1\x81\x1b\x0f\x06\xfb\x5f"
assert actual_signature ==
b"\x01\x00\x00\x00\x70\x35\x28\x51\xf2\x56\x43\x09\x00\x00\x00\x00"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/tests/conftest.py
new/pyspnego-0.12.2/tests/conftest.py
--- old/pyspnego-0.12.1/tests/conftest.py 2026-03-02 20:15:11.000000000
+0100
+++ new/pyspnego-0.12.2/tests/conftest.py 2026-08-26 07:00:47.000000000
+0200
@@ -64,7 +64,7 @@
else:
domain = "Dȫm̈Ąiᴞ"
- tmp_creds = os.path.join(to_text(tmpdir), "pÿspᴞӛgӫ TÈ$" ".creds")
+ tmp_creds = os.path.join(to_text(tmpdir), "pÿspᴞӛgӫ TÈ$.creds")
with open(tmp_creds, mode="wb") as fd:
fd.write(to_bytes("%s:%s:%s" % (domain, username, password)))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/tests/test_asn1.py
new/pyspnego-0.12.2/tests/test_asn1.py
--- old/pyspnego-0.12.1/tests/test_asn1.py 2026-03-02 20:15:11.000000000
+0100
+++ new/pyspnego-0.12.2/tests/test_asn1.py 2026-08-26 07:00:47.000000000
+0200
@@ -104,7 +104,7 @@
def test_extract_asn1_tlv_invalid_universal_class():
expected = (
- "Invalid ASN.1 OCTET STRING tags, actual tag class TagClass.universal
and tag number " "TypeTagNumber.integer"
+ "Invalid ASN.1 OCTET STRING tags, actual tag class TagClass.universal
and tag number TypeTagNumber.integer"
)
with pytest.raises(ValueError, match=re.escape(expected)):
asn1.extract_asn1_tlv(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/tests/test_channel_bindings.py
new/pyspnego-0.12.2/tests/test_channel_bindings.py
--- old/pyspnego-0.12.1/tests/test_channel_bindings.py 2026-03-02
20:15:11.000000000 +0100
+++ new/pyspnego-0.12.2/tests/test_channel_bindings.py 2026-08-26
07:00:47.000000000 +0200
@@ -25,7 +25,7 @@
def test_channel_bindings_none_pack():
actual = cb.GssChannelBindings().pack()
- assert actual == b"\x00\x00\x00\x00\x00\x00\x00\x00"
b"\x00\x00\x00\x00\x00\x00\x00\x00" b"\x00\x00\x00\x00"
+ assert actual ==
b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
def test_channel_bindings_unpack():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/tests/test_ntlm.py
new/pyspnego-0.12.2/tests/test_ntlm.py
--- old/pyspnego-0.12.1/tests/test_ntlm.py 2026-03-02 20:15:11.000000000
+0100
+++ new/pyspnego-0.12.2/tests/test_ntlm.py 2026-08-26 07:00:47.000000000
+0200
@@ -46,7 +46,7 @@
def test_get_credential_file_env_var_missing_file(tmpdir, monkeypatch):
- tmp_creds = os.path.join(to_text(tmpdir), "pÿspᴞӛgӫ TÈ$" ".creds")
+ tmp_creds = os.path.join(to_text(tmpdir), "pÿspᴞӛgӫ TÈ$.creds")
monkeypatch.setenv("NTLM_USER_FILE", tmp_creds)
@@ -55,7 +55,7 @@
def test_get_credential_file(tmpdir, monkeypatch):
- tmp_creds = os.path.join(to_text(tmpdir), "pÿspᴞӛgӫ TÈ$" ".creds")
+ tmp_creds = os.path.join(to_text(tmpdir), "pÿspᴞӛgӫ TÈ$.creds")
with open(tmp_creds, mode="wb") as fd:
fd.write(b"data")
@@ -135,7 +135,7 @@
],
)
def test_get_credential_from_file(line, username, domain, lm_hash, nt_hash,
input, tmpdir, monkeypatch):
- tmp_creds = os.path.join(to_text(tmpdir), "pÿspᴞӛgӫ TÈ$" ".creds")
+ tmp_creds = os.path.join(to_text(tmpdir), "pÿspᴞӛgӫ TÈ$.creds")
monkeypatch.setenv("NTLM_USER_FILE", tmp_creds)
with open(tmp_creds, mode="wb") as fd:
fd.write(to_bytes(line))
@@ -148,14 +148,12 @@
def test_get_credential_from_file_no_matches(tmpdir, monkeypatch):
- tmp_creds = os.path.join(to_text(tmpdir), "pÿspᴞӛgӫ TÈ$" ".creds")
+ tmp_creds = os.path.join(to_text(tmpdir), "pÿspᴞӛgӫ TÈ$.creds")
monkeypatch.setenv("NTLM_USER_FILE", tmp_creds)
with open(tmp_creds, mode="wb") as fd:
fd.write(b"domain:username:password")
- with pytest.raises(
- SpnegoError, match="Failed to find any matching credential in
NTLM_USER_FILE " "credential store."
- ):
+ with pytest.raises(SpnegoError, match="Failed to find any matching
credential in NTLM_USER_FILE credential store."):
ntlm._NTLMCredential(CredentialCache("fake\\username"))
@@ -425,7 +423,7 @@
n = ntlm.NTLMProxy("user", "pass")
with pytest.raises(
SpnegoError,
- match="Neither NEGOTIATE_OEM or NEGOTIATE_UNICODE flags were set,
cannot derive " "encoding for text fields",
+ match="Neither NEGOTIATE_OEM or NEGOTIATE_UNICODE flags were set,
cannot derive encoding for text fields",
):
n._step_accept_negotiate(negotiate.tobytes())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/pyspnego-0.12.1/tests/test_spnego.py
new/pyspnego-0.12.2/tests/test_spnego.py
--- old/pyspnego-0.12.1/tests/test_spnego.py 2026-03-02 20:15:11.000000000
+0100
+++ new/pyspnego-0.12.2/tests/test_spnego.py 2026-08-26 07:00:47.000000000
+0200
@@ -19,10 +19,7 @@
(GSSMech.kerberos.value,
b"\x30\x0b\x06\x09\x2a\x86\x48\x86\xf7\x12\x01\x02\x02"),
(
[GSSMech.kerberos.value, GSSMech.ntlm.value],
- b"\x30\x17\x06\x09\x2a\x86\x48\x86"
- b"\xf7\x12\x01\x02\x02\x06\x0a\x2b"
- b"\x06\x01\x04\x01\x82\x37\x02\x02"
- b"\x0a",
+
b"\x30\x17\x06\x09\x2a\x86\x48\x86\xf7\x12\x01\x02\x02\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x02\x02\x0a",
),
],
)