keyright (Python)
Python client SDK for Keyright — offline and online software-license validation with
full parity to the .NET reference client and the language-independent spec (docs/license-format.md).
Install
pip install keyright
Offline validation (full client)
from keyright import KeyrightClient, KeyrightOptions
client = KeyrightClient.initialize(KeyrightOptions(
product="nebula",
public_key_base64=EMBEDDED_PUBLIC_KEY, # base64 SubjectPublicKeyInfo
# optional: additional_public_keys_base64=[...], key rotation (FR-22)
# optional: revocation_list_json=..., offline revocation (FR-44)
))
info, source = client.validate()
if info.is_valid:
print(info.status_badge, info.entitlements.is_enabled("advanced"))
Features: license-source precedence (explicit string/file, KEYRIGHT_LICENSE env, config, default path),
node-locking (FR-31/32), entitlements (FR-60, is_enabled/get_limit), key rotation (FR-22), offline
revocation lists (FR-44), trials from first activation + clock-tamper detection (FR-50/52), and localized
messages (message(verdict, locale)).
Online activation
info = client.activate("LIC-....") # verifies + caches a signed lease; offline until the grace window ends
Stateless verify (no node-lock/state)
from keyright import verify, message
verdict = verify(license_dict, public_key_b64, expected_product="nebula") # "valid" | "expired" | ...
print(message(verdict, "fr"))
CLI
keyright-verify <license.json> <pubkey-b64-file> <now-iso> [product] [locale]
Release files for keyright 1.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| keyright-1.1.3.tar.gz | 26.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| keyright-1.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 51.5 kB
Release files / keyright-1.1.3.tar.gz
| Download URL | keyright-1.1.3.tar.gz |
|---|---|
| Size | 26.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
45f83ea931b5e866eec139022449fc1317ff579ff8fbb71e25eb4efe5b00d130
|
|
BLAKE2b-256 checksum How to use checksums |
f9457cc98ad0b4573e820468c3c574aef565c74fbb8f626a03fda599b30a2463
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|
Release files / keyright-1.1.3-py3-none-any.whl
| Download URL | keyright-1.1.3-py3-none-any.whl |
|---|---|
| Size | 25.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
364d242f78e1db1d0b8bfa9ccea2f2d45f4ee2f9e938c71b66bfdd94344e6dea
|
|
BLAKE2b-256 checksum How to use checksums |
42a7c13c708354369db2c5f72d17cf55550603ff953897bb9ff61bcd4dc09885
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|