python-nss-ng 1.2.1__tar.gz → 1.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. python_nss_ng-1.2.2/.git_archival.txt +4 -0
  2. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/PKG-INFO +1 -1
  3. python_nss_ng-1.2.2/_version.txt +1 -0
  4. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/pyproject.toml +0 -6
  5. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/__init__.py +2 -1
  6. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/nss_context.py +2 -0
  7. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/secure_logging.py +1 -6
  8. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/uv.lock +0 -4
  9. python_nss_ng-1.2.1/.git_archival.txt +0 -4
  10. python_nss_ng-1.2.1/_version.txt +0 -1
  11. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/.clangd +0 -0
  12. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/CONTRIBUTING.md +0 -0
  13. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/LICENSE +0 -0
  14. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/LICENSE.gpl +0 -0
  15. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/LICENSE.lgpl +0 -0
  16. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/LICENSE.mpl +0 -0
  17. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/LICENSES/Apache-2.0.txt +0 -0
  18. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/LICENSES/MPL-2.0.txt +0 -0
  19. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/MANIFEST.in +0 -0
  20. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/Makefile +0 -0
  21. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/QUICKSTART.md +0 -0
  22. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/README.md +0 -0
  23. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/REUSE.toml +0 -0
  24. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/SECURITY.md +0 -0
  25. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/doc/ChangeLog +0 -0
  26. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/doc/MAKEFILE_MIGRATION.md +0 -0
  27. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/doc/MANYLINUX_CONFIG.md +0 -0
  28. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/doc/MIGRATION.md +0 -0
  29. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/doc/MUTATION_TESTING.md +0 -0
  30. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/doc/TESTING.md +0 -0
  31. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/doc/examples/cert_dump.py +0 -0
  32. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/doc/examples/cert_trust.py +0 -0
  33. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/doc/examples/httplib_example.py +0 -0
  34. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/doc/examples/pbkdf2_example.py +0 -0
  35. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/doc/examples/ssl_cipher_info.py +0 -0
  36. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/doc/examples/ssl_example.py +0 -0
  37. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/doc/examples/ssl_version_range.py +0 -0
  38. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/doc/examples/verify_cert.py +0 -0
  39. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/doc/examples/verify_server.py +0 -0
  40. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/doc/get_api +0 -0
  41. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/meson.build +0 -0
  42. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/pyrightconfig.json +0 -0
  43. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/scripts/README.md +0 -0
  44. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/scripts/meson-version.py +0 -0
  45. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/scripts/run-all-tests.sh +0 -0
  46. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/NSPRerrs.h +0 -0
  47. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/SECerrs.h +0 -0
  48. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/SSLerrs.h +0 -0
  49. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/deprecations.py +0 -0
  50. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/io.pyi +0 -0
  51. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/nss.pyi +0 -0
  52. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/py_nspr_common.h +0 -0
  53. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/py_nspr_error.c +0 -0
  54. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/py_nspr_error.h +0 -0
  55. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/py_nspr_io.c +0 -0
  56. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/py_nspr_io.h +0 -0
  57. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/py_nss.c +0 -0
  58. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/py_nss.h +0 -0
  59. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/py_shared_doc.h +0 -0
  60. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/py_ssl.c +0 -0
  61. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/py_ssl.h +0 -0
  62. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/py_traceback.h +0 -0
  63. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/src/ssl.pyi +0 -0
  64. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/conftest.py +0 -0
  65. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/exceptions.py +0 -0
  66. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/run_tests +0 -0
  67. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/setup_certs.py +0 -0
  68. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_cert_components.py +0 -0
  69. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_cert_request.py +0 -0
  70. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_certificate_advanced.py +0 -0
  71. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_cipher.py +0 -0
  72. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_client_server.py +0 -0
  73. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_deprecations.py +0 -0
  74. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_digest.py +0 -0
  75. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_documentation_accuracy.py +0 -0
  76. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_examples.py +0 -0
  77. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_misc.py +0 -0
  78. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_performance.py +0 -0
  79. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_pkcs12.py +0 -0
  80. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_platform_specific.py +0 -0
  81. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_property_based.py +0 -0
  82. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_secure_logging.py +0 -0
  83. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_security.py +0 -0
  84. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_thread_safety.py +0 -0
  85. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_type_hints.py +0 -0
  86. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_util.py +0 -0
  87. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_zzz_error_messages.py +0 -0
  88. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_zzz_integration.py +0 -0
  89. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_zzz_nonexistent_certs.py +0 -0
  90. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_zzz_nss_context.py +0 -0
  91. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/test_zzz_ocsp.py +0 -0
  92. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/test/util.py +0 -0
  93. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/typings/nss/__init__.pyi +0 -0
  94. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/typings/nss/error.pyi +0 -0
  95. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/typings/nss/io.pyi +0 -0
  96. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/typings/nss/nss.pyi +0 -0
  97. {python_nss_ng-1.2.1 → python_nss_ng-1.2.2}/typings/nss/ssl.pyi +0 -0
@@ -0,0 +1,4 @@
1
+ node: 4d19efef4853c086fe11b35c259d6c27b2e02655
2
+ node-date: 2026-07-22T14:08:02+01:00
3
+ describe-name: v1.2.2
4
+ ref-names: grafted, HEAD, tag: v1.2.2, origin/main, origin/HEAD
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-nss-ng
3
- Version: 1.2.1
3
+ Version: 1.2.2
4
4
  Summary: Python bindings for Network Security Services (NSS) and Netscape Portable Runtime (NSPR)
5
5
  Keywords: nss,nspr,cryptography,ssl,tls,pki,x509,security
6
6
  Author-Email: John Dennis <jdennis@redhat.com>, Matthew Watkins <mwatkins@linuxfoundation.org>
@@ -0,0 +1 @@
1
+ 1.2.2
@@ -319,9 +319,3 @@ before-all = "yum install -y nss-devel nspr-devel pkg-config || apt-get update &
319
319
 
320
320
  [tool.cibuildwheel.macos]
321
321
  before-all = "brew install nss nspr pkg-config"
322
-
323
- [tool.uv]
324
- # Supply-chain cooldown: do not resolve anything published in the last
325
- # 7 days (rolling window; uv records it as a relative span in uv.lock).
326
- # Requires uv >= 0.9.17 for the relative-duration ("7 days") form.
327
- exclude-newer = "7 days"
@@ -4,6 +4,8 @@
4
4
  # SPDX-License-Identifier: MPL-2.0
5
5
  # SPDX-FileCopyrightText: Copyright (c) 2010-2025 python-nss-ng contributors
6
6
 
7
+ # aislop-ignore-file ai-slop/unused-import -- "import" lines flagged here are RST code examples inside a documentation string, not real imports (ruff F401 validates the real ones)
8
+
7
9
  import sys
8
10
  from importlib.metadata import PackageNotFoundError
9
11
  from importlib.metadata import version as _pkg_version
@@ -154,7 +156,6 @@ Things All NSS programs must do
154
156
 
155
157
  - Import the NSS/NSPR modules::
156
158
 
157
- from nss.error import NSPRError
158
159
  import nss.io as io
159
160
  import nss.nss as nss
160
161
  import nss.ssl as ssl
@@ -29,6 +29,8 @@ import logging
29
29
  from collections.abc import Callable, Generator
30
30
  from typing import Any
31
31
 
32
+ # aislop-ignore-file ai-slop/hallucinated-import -- "nss" is this package's own compiled C-extension module (built from py_nss.c)
33
+
32
34
  logger = logging.getLogger(__name__)
33
35
 
34
36
 
@@ -127,7 +127,6 @@ def check_message_safety(message: str) -> LogSensitivity:
127
127
  """
128
128
  message_lower = message.lower()
129
129
 
130
- # Check for forbidden patterns
131
130
  for pattern in FORBIDDEN_LOG_PATTERNS:
132
131
  if pattern in message_lower:
133
132
  return LogSensitivity.SENSITIVE
@@ -272,7 +271,6 @@ def log_exception_safely(
272
271
  # Log only the exception type and context
273
272
  msg = f"{context}: {exc_type} occurred (details redacted for security)"
274
273
  elif sensitivity == LogSensitivity.REDACTED:
275
- # Log with redaction
276
274
  msg = f"{context}: {exc_type}: {redact_message(exc_message)}"
277
275
  else:
278
276
  # Safe to log
@@ -329,23 +327,20 @@ class SecureExceptionHandler:
329
327
 
330
328
  def __exit__(self, exc_type, exc_val, exc_tb):
331
329
  if exc_type is not None:
332
- # Log the exception securely
330
+
333
331
  def logger_fn(msg: str) -> None:
334
332
  self.logger.log(self.log_level, msg)
335
333
 
336
334
  log_exception_safely(logger_fn, exc_val, self.context)
337
335
 
338
- # Return False to re-raise, True to suppress
339
336
  return not self.reraise
340
337
  return None
341
338
 
342
339
 
343
340
  # Example usage patterns
344
341
  if __name__ == "__main__":
345
- # Configure logging
346
342
  logging.basicConfig(level=logging.DEBUG)
347
343
 
348
- # Create secure logger
349
344
  logger = get_secure_logger(__name__)
350
345
 
351
346
  # Safe logging
@@ -9,10 +9,6 @@ resolution-markers = [
9
9
  "python_full_version < '3.12'",
10
10
  ]
11
11
 
12
- [options]
13
- exclude-newer = "0001-01-01T00:00:00Z" # This has no effect and is included for backwards compatibility when using relative exclude-newer values.
14
- exclude-newer-span = "P7D"
15
-
16
12
  [[package]]
17
13
  name = "ast-serialize"
18
14
  version = "0.3.0"
@@ -1,4 +0,0 @@
1
- node: 0dedcdfba5bdf88fee5c42918949cb6403738886
2
- node-date: 2026-06-30T09:23:01-06:00
3
- describe-name: v1.2.1
4
- ref-names: grafted, HEAD, tag: v1.2.1, origin/main, origin/HEAD
@@ -1 +0,0 @@
1
- 1.2.1
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes