cryptnox-id-cli 1.0.2__tar.gz → 1.0.3__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 (85) hide show
  1. cryptnox_id_cli-1.0.3/COMMERCIAL.md +85 -0
  2. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/PKG-INFO +4 -4
  3. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/pyproject.toml +5 -5
  4. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/__init__.py +1 -1
  5. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli.egg-info/PKG-INFO +4 -4
  6. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli.egg-info/SOURCES.txt +1 -0
  7. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/LICENSE +0 -0
  8. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/README.md +0 -0
  9. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/setup.cfg +0 -0
  10. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/__main__.py +0 -0
  11. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/__init__.py +0 -0
  12. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/fido/__init__.py +0 -0
  13. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/fido/authdata.py +0 -0
  14. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/fido/constants.py +0 -0
  15. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/fido/ctap.py +0 -0
  16. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/fido/errors.py +0 -0
  17. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/fido/pinproto.py +0 -0
  18. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/genuine/__init__.py +0 -0
  19. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/genuine/constants.py +0 -0
  20. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/genuine/genuine.py +0 -0
  21. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/genuine/verify.py +0 -0
  22. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/mifare/__init__.py +0 -0
  23. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/mifare/desfire.py +0 -0
  24. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/mifare/ev2.py +0 -0
  25. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/piv/__init__.py +0 -0
  26. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/piv/admin.py +0 -0
  27. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/piv/apt.py +0 -0
  28. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/piv/constants.py +0 -0
  29. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/piv/keyimport.py +0 -0
  30. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/piv/objects.py +0 -0
  31. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/piv/perso.py +0 -0
  32. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/piv/piv.py +0 -0
  33. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/piv/preperso.py +0 -0
  34. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/piv/profiles.py +0 -0
  35. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/applets/piv/slots.py +0 -0
  36. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/cli/__init__.py +0 -0
  37. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/cli/commands/__init__.py +0 -0
  38. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/cli/commands/apdu.py +0 -0
  39. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/cli/commands/doctor.py +0 -0
  40. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/cli/commands/factory.py +0 -0
  41. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/cli/commands/fido.py +0 -0
  42. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/cli/commands/genuine.py +0 -0
  43. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/cli/commands/info.py +0 -0
  44. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/cli/commands/mifare.py +0 -0
  45. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/cli/commands/piv.py +0 -0
  46. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/cli/commands/readers.py +0 -0
  47. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/cli/commands/report.py +0 -0
  48. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/cli/commands/shell.py +0 -0
  49. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/cli/context.py +0 -0
  50. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/cli/dryrun.py +0 -0
  51. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/cli/main.py +0 -0
  52. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/crypto/__init__.py +0 -0
  53. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/crypto/attestation.py +0 -0
  54. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/crypto/csr.py +0 -0
  55. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/crypto/piv_objects.py +0 -0
  56. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/crypto/x509util.py +0 -0
  57. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/output/__init__.py +0 -0
  58. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/output/render.py +0 -0
  59. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/secrets/__init__.py +0 -0
  60. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/secrets/redaction.py +0 -0
  61. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/secrets/resolver.py +0 -0
  62. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/state/__init__.py +0 -0
  63. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/state/detector.py +0 -0
  64. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/state/model.py +0 -0
  65. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/transport/__init__.py +0 -0
  66. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/transport/apdu.py +0 -0
  67. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/transport/elevation.py +0 -0
  68. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/transport/errors.py +0 -0
  69. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/transport/pcsc.py +0 -0
  70. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/transport/scp02.py +0 -0
  71. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/transport/scp03.py +0 -0
  72. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/trust/__init__.py +0 -0
  73. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/trust/genuine/cryptnox-attestation-ca.pem +0 -0
  74. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/trust/genuine/cryptnox-dlt-cards-ca.pem +0 -0
  75. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/trust/genuine/cryptnox-genuineness-ca.pem +0 -0
  76. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/trust/genuine/cryptnox-intermediate-ca-2.pem +0 -0
  77. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/trust/genuine/cryptnox-intermediate-ca.pem +0 -0
  78. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/trust/genuine/cryptnox-root-ca.pem +0 -0
  79. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/util/__init__.py +0 -0
  80. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/util/hexutil.py +0 -0
  81. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli/util/tlv.py +0 -0
  82. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli.egg-info/dependency_links.txt +0 -0
  83. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli.egg-info/entry_points.txt +0 -0
  84. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli.egg-info/requires.txt +0 -0
  85. {cryptnox_id_cli-1.0.2 → cryptnox_id_cli-1.0.3}/src/cryptnox_id_cli.egg-info/top_level.txt +0 -0
@@ -0,0 +1,85 @@
1
+ <p align="center">
2
+ <img src="https://github.com/user-attachments/assets/6ce54a27-8fb6-48e6-9d1f-da144f43425a"/>
3
+ </p>
4
+
5
+ <h3 align="center">cryptnox-id-cli</h3>
6
+ <p align="center">Commercial license</p>
7
+
8
+ <br/>
9
+ <br/>
10
+
11
+ # Commercial license
12
+
13
+ `cryptnox-id-cli` is distributed under a dual-licensing model:
14
+
15
+ - **GNU LGPLv3**
16
+ - **Commercial license**
17
+
18
+ The following sections define the applicable licensing conditions.
19
+
20
+ ---
21
+
22
+ ## When a commercial license is required
23
+
24
+ A commercial license is required in the following situations:
25
+
26
+ - When the SDK is used in a manner that does not comply with the terms of the LGPLv3
27
+ - When the SDK is bundled, embedded, or distributed in conditions that prevent users from replacing or updating the library
28
+ - When modifications to the SDK are made and the publisher does not wish to release these modifications as required under the LGPLv3
29
+ - When a proprietary licensing framework, commercial guarantees, or dedicated support are required
30
+
31
+ For standard Python usage through regular imports, the LGPLv3 terms generally permit integration into proprietary software, provided all conditions of the license are strictly met.
32
+
33
+ ---
34
+
35
+ ## Scope of the commercial license
36
+
37
+ The commercial license provides the following rights:
38
+
39
+ - Use of `cryptnox-id-cli` without any obligation imposed by the LGPLv3
40
+ - Distribution or embedding of the SDK under any technical, commercial, or contractual conditions
41
+ - Internal modification of the SDK without publication requirements
42
+ - Exemption from all obligations related to library replacement, user relinking, or source availability
43
+ - Access to optional contractual services such as support, maintenance, or warranties
44
+
45
+ ---
46
+
47
+ ## Use under LGPLv3
48
+
49
+ The SDK may be used under the LGPLv3 provided that:
50
+
51
+ - The terms of the LGPLv3 are fully respected
52
+ - The SDK remains a distinct and replaceable component within the application
53
+ - Copyright, notices, and license terms are preserved
54
+ - Modifications to the SDK itself are published in accordance with the license
55
+
56
+ These conditions apply to both open-source and proprietary software.
57
+
58
+ ---
59
+
60
+ ## Dual-licensing summary
61
+
62
+ | License type | Permitted use | Obligations |
63
+ |------------------------|-------------------------------------------------------------|----------------------------------------------|
64
+ | **LGPLv3** | Integration via standard Python imports, including proprietary software | Compliance with all LGPLv3 terms |
65
+ | **Commercial license** | Any use outside the scope of the LGPLv3 | No LGPL obligations |
66
+
67
+ ---
68
+
69
+ ## Obtaining a commercial license
70
+
71
+ For pricing, terms, or a commercial agreement, please contact: **contact@cryptnox.com**
72
+
73
+ Please include:
74
+
75
+ - Company name
76
+ - Project description
77
+ - Distribution model
78
+ - Estimated usage or volume (optional)
79
+
80
+ ---
81
+
82
+ ## Legal notice
83
+
84
+ Any use of the SDK outside the scope of the LGPLv3 requires a commercial license.
85
+ The commercial license provides an alternative legal basis that supersedes LGPL obligations for the licensed use case.
@@ -1,20 +1,19 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cryptnox-id-cli
3
- Version: 1.0.2
3
+ Version: 1.0.3
4
4
  Summary: Polished CLI for the Cryptnox multi-applet smartcard (PIV / FIDO2 / MIFARE DESFire EV2)
5
5
  Author: Cryptnox
6
- License: LGPL-3.0-or-later
6
+ License-Expression: LGPL-3.0-or-later OR LicenseRef-Commercial
7
7
  Project-URL: Homepage, https://cryptnox.com/
8
8
  Project-URL: Documentation, https://docs.cryptnox.com/cryptnox-id-cli/
9
9
  Project-URL: Repository, https://github.com/cryptnox/cryptnox-id-cli
10
10
  Project-URL: Issues, https://github.com/cryptnox/cryptnox-id-cli/issues
11
11
  Project-URL: Changelog, https://github.com/cryptnox/cryptnox-id-cli/blob/main/CHANGELOG.md
12
12
  Keywords: smartcard,pcsc,piv,fido2,ctap,desfire,openfips201
13
- Classifier: Development Status :: 4 - Beta
13
+ Classifier: Development Status :: 5 - Production/Stable
14
14
  Classifier: Environment :: Console
15
15
  Classifier: Intended Audience :: Developers
16
16
  Classifier: Intended Audience :: System Administrators
17
- Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
18
17
  Classifier: Operating System :: Microsoft :: Windows
19
18
  Classifier: Operating System :: POSIX :: Linux
20
19
  Classifier: Operating System :: MacOS :: MacOS X
@@ -30,6 +29,7 @@ Classifier: Typing :: Typed
30
29
  Requires-Python: >=3.10
31
30
  Description-Content-Type: text/markdown
32
31
  License-File: LICENSE
32
+ License-File: COMMERCIAL.md
33
33
  Requires-Dist: pyscard>=2.0
34
34
  Requires-Dist: click>=8.1
35
35
  Requires-Dist: rich>=13.0
@@ -1,22 +1,22 @@
1
1
  [build-system]
2
- requires = ["setuptools>=68", "wheel"]
2
+ requires = ["setuptools>=77"]
3
3
  build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "cryptnox-id-cli"
7
- version = "1.0.2"
7
+ version = "1.0.3"
8
8
  description = "Polished CLI for the Cryptnox multi-applet smartcard (PIV / FIDO2 / MIFARE DESFire EV2)"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
11
- license = { text = "LGPL-3.0-or-later" }
11
+ license = "LGPL-3.0-or-later OR LicenseRef-Commercial"
12
+ license-files = ["LICENSE", "COMMERCIAL.md"]
12
13
  authors = [{ name = "Cryptnox" }]
13
14
  keywords = ["smartcard", "pcsc", "piv", "fido2", "ctap", "desfire", "openfips201"]
14
15
  classifiers = [
15
- "Development Status :: 4 - Beta",
16
+ "Development Status :: 5 - Production/Stable",
16
17
  "Environment :: Console",
17
18
  "Intended Audience :: Developers",
18
19
  "Intended Audience :: System Administrators",
19
- "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)",
20
20
  "Operating System :: Microsoft :: Windows",
21
21
  "Operating System :: POSIX :: Linux",
22
22
  "Operating System :: MacOS :: MacOS X",
@@ -14,7 +14,7 @@ including EV3 Secure Dynamic Messaging, and read-only genuineness/attestation
14
14
  verification.
15
15
  """
16
16
 
17
- __version__ = "1.0.2"
17
+ __version__ = "1.0.3"
18
18
 
19
19
  #: Primary console command name. Single source of truth for every user-facing
20
20
  #: render of the CLI's name (usage/version, prompt, banner, messages). The
@@ -1,20 +1,19 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cryptnox-id-cli
3
- Version: 1.0.2
3
+ Version: 1.0.3
4
4
  Summary: Polished CLI for the Cryptnox multi-applet smartcard (PIV / FIDO2 / MIFARE DESFire EV2)
5
5
  Author: Cryptnox
6
- License: LGPL-3.0-or-later
6
+ License-Expression: LGPL-3.0-or-later OR LicenseRef-Commercial
7
7
  Project-URL: Homepage, https://cryptnox.com/
8
8
  Project-URL: Documentation, https://docs.cryptnox.com/cryptnox-id-cli/
9
9
  Project-URL: Repository, https://github.com/cryptnox/cryptnox-id-cli
10
10
  Project-URL: Issues, https://github.com/cryptnox/cryptnox-id-cli/issues
11
11
  Project-URL: Changelog, https://github.com/cryptnox/cryptnox-id-cli/blob/main/CHANGELOG.md
12
12
  Keywords: smartcard,pcsc,piv,fido2,ctap,desfire,openfips201
13
- Classifier: Development Status :: 4 - Beta
13
+ Classifier: Development Status :: 5 - Production/Stable
14
14
  Classifier: Environment :: Console
15
15
  Classifier: Intended Audience :: Developers
16
16
  Classifier: Intended Audience :: System Administrators
17
- Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
18
17
  Classifier: Operating System :: Microsoft :: Windows
19
18
  Classifier: Operating System :: POSIX :: Linux
20
19
  Classifier: Operating System :: MacOS :: MacOS X
@@ -30,6 +29,7 @@ Classifier: Typing :: Typed
30
29
  Requires-Python: >=3.10
31
30
  Description-Content-Type: text/markdown
32
31
  License-File: LICENSE
32
+ License-File: COMMERCIAL.md
33
33
  Requires-Dist: pyscard>=2.0
34
34
  Requires-Dist: click>=8.1
35
35
  Requires-Dist: rich>=13.0
@@ -1,3 +1,4 @@
1
+ COMMERCIAL.md
1
2
  LICENSE
2
3
  README.md
3
4
  pyproject.toml
File without changes