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.2
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.2.tar.gz | 24.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| keyright-1.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 49.6 kB
Release files / keyright-1.1.2.tar.gz
| Download URL | keyright-1.1.2.tar.gz |
|---|---|
| Size | 24.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0164b8156f3bb0e2408146a3c40fc391175bd2c9ac2e5c24c9db4542a0ca20ae
|
|
BLAKE2b-256 checksum How to use checksums |
3ae03d120a874a3764cb070b29c7c0f54bb511b0c903e2b7a1976282d0a5650b
|
| 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.2-py3-none-any.whl
| Download URL | keyright-1.1.2-py3-none-any.whl |
|---|---|
| Size | 24.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bb8f9bb2561341cd7ae19d084baad0e1889409108bac12284646a182ca5dd97d
|
|
BLAKE2b-256 checksum How to use checksums |
1a6b05637664845805504fbeeef4492c168f2a8a1b6d3049a8f027b8cfaa3b15
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.10
|