Skip to main content

Python wrapper for license-management-core (License-Management.com client)

Project description

hymmalm — Python wrapper

Python (ctypes) binding for license-management-core. All licensing behavior — JWS verification, status rules, machine fingerprint, REST flow, retry policy, clock-tamper resistance — lives in the native hymmalm library; this package only marshals. See the repository root README for the architecture.

Usage

from hymmalm import LicenseClient, LicenseStatus

client = LicenseClient(
    product_id="PRD_01KWWPEPM0N070BDAHJ7G09RGV",
    client_api_key="PUB_...",                    # never a MST_ key
    jwks_json=open("signingkeys.json").read(),   # GET /api/signingkeys.json
    license_path="~/.myapp/license.lic",
)

status = client.check()                          # trial bootstrap on first run
if status == LicenseStatus.INVALID_TRIAL:
    client.activate(input("Receipt code: "))

Offline verification only (no network, e.g. checking a provisioned file):

import hymmalm
status = hymmalm.verify(jws_string, jwks_json)

Installing

pip install hymmalm

Release wheels bundle the native library per platform (manylinux x86_64 / aarch64, macOS arm64 / x86_64, Windows x64) — nothing else to install.

From a source checkout (or the sdist), build the core once (cmake -S . -B build && cmake --build build at the repo root) and either place libhymmalm.so / libhymmalm.dylib / hymmalm.dll next to the hymmalm package, on the loader path, or point HYMMALM_LIB at the full path.

Publishing

CI publishes to PyPI on v* release tags (the pypi job): it drops each platform's freshly built library into the package, builds a py3-none-<platform> wheel per OS/arch (linux wheels retagged and vetted by auditwheel), plus a pure sdist, and uploads with PYPI_API_TOKEN.

Tests

cd wrappers/python
HYMMALM_LIB=$PWD/../../build/libhymmalm.so python -m unittest discover -s tests -v

tests/test_vectors.py replays the same signed vectors as the C suite; tests/test_flow.py runs the full client flow (trial → activate → offline cache → deactivate, plus error classification) against a local mock API.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hymmalm-0.1.2.tar.gz (8.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

hymmalm-0.1.2-py3-none-win_amd64.whl (44.5 kB view details)

Uploaded Python 3Windows x86-64

hymmalm-0.1.2-py3-none-manylinux_2_34_x86_64.whl (48.9 kB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

hymmalm-0.1.2-py3-none-manylinux_2_34_aarch64.whl (47.5 kB view details)

Uploaded Python 3manylinux: glibc 2.34+ ARM64

hymmalm-0.1.2-py3-none-macosx_11_0_arm64.whl (39.8 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

hymmalm-0.1.2-py3-none-macosx_10_15_x86_64.whl (40.3 kB view details)

Uploaded Python 3macOS 10.15+ x86-64

File details

Details for the file hymmalm-0.1.2.tar.gz.

File metadata

  • Download URL: hymmalm-0.1.2.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for hymmalm-0.1.2.tar.gz
Algorithm Hash digest
SHA256 bfdfadd6e2f319f335abe9b803d30d0a62ca5790e567f5b1b4cf26cc2e591c36
MD5 29b15eb6b133f7ecdba92b75c0ce0536
BLAKE2b-256 3923d3efffb49bf9dd10647499a4a7b92fb31f93efd6a034c37574838195fc51

See more details on using hashes here.

File details

Details for the file hymmalm-0.1.2-py3-none-win_amd64.whl.

File metadata

  • Download URL: hymmalm-0.1.2-py3-none-win_amd64.whl
  • Upload date:
  • Size: 44.5 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for hymmalm-0.1.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 56e894a5c0086230214c5bb10d6195946362596694961418e4f88f439d78d312
MD5 369c1bfeab8571b7913d43b1e0b92fac
BLAKE2b-256 bb58d5a694380342cfbfbc53cce0184ad70fa7d81ddd1c8c33112093ce6c1895

See more details on using hashes here.

File details

Details for the file hymmalm-0.1.2-py3-none-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for hymmalm-0.1.2-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 7423dc2085b4dc058fb052f7a56d98fc7a664045d382354c3fea1932ffdf581f
MD5 d79246287afd97bda32b95864e4821c9
BLAKE2b-256 5ac1776605e61aa8708ab247ef978eb40c4922105f18a640e8cb98c78648bdab

See more details on using hashes here.

File details

Details for the file hymmalm-0.1.2-py3-none-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for hymmalm-0.1.2-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 9af5c24ad40182be45c2e6c47abf3436d7c7caf577d4c1a3412aaef41de445e7
MD5 51a95caa619550c7f75b7da9a9ca7be0
BLAKE2b-256 e4deedfb6a07ba043d114a0548308a76a0309015e60575ae0df1ad816a4fcfb3

See more details on using hashes here.

File details

Details for the file hymmalm-0.1.2-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hymmalm-0.1.2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 73017ef05ab1c23855a216ec43f391d7481332db0470b8f6a839e03a1e62e2e4
MD5 51d4a754f3b253f5ef68784a1fbf20e2
BLAKE2b-256 7663786560ab3b93129a52dbe2e69043ed3725f2dfe67b34a5d07d20ce343c6d

See more details on using hashes here.

File details

Details for the file hymmalm-0.1.2-py3-none-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for hymmalm-0.1.2-py3-none-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 7ce8f62814de167c7aa565862fb86dcc65ac675fd838c45fe7d2301ef6dbcbc6
MD5 e65d10d2c89c43f4b6eabcf230a363d7
BLAKE2b-256 63c48cea52fe3af024243862019270c742ddd25d4257ef32dda07d668a8b0d1b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page