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.3.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.3-py3-none-win_amd64.whl (44.5 kB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.34+ x86-64

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

Uploaded Python 3manylinux: glibc 2.34+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

hymmalm-0.1.3-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.3.tar.gz.

File metadata

  • Download URL: hymmalm-0.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 dfadbe4eab6fba8a330c732aac4c206b6353e80ed7b3318a9c35889f362c9d3a
MD5 ee6cf924192268eb4c825778a006dc37
BLAKE2b-256 156f38b95074c0a78fb666f35f68e9b2bccc7e65dcabd44c1bbc0105c6bc3ccc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hymmalm-0.1.3-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.3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 18b8589805238882b7320db79f2f7bb3e008ac7e4dd25f68539877e59e50a0aa
MD5 364414bbcc80786769e666231d011b6e
BLAKE2b-256 b6caa6f661bade784740bc3c4d2efe4bc9d84da64898ae04d05a956cc46914fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hymmalm-0.1.3-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 eb9fe2e787831f0135fc28bc4039e32576ad0364ef954b40faaea73ef3d58b90
MD5 7184980bc53bb5fcea44151fd8303855
BLAKE2b-256 557ba0b99b2d11e37b9be8e30962da4ce27efc021bbfa5a4336d358e16c2b5a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hymmalm-0.1.3-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 133bcf2b2ee2c73ed06a54ec091fe2ac628d6324d0513cfbf31a37440b3d0f31
MD5 01a26cb1aa6bc3dc432a731f01da4b9d
BLAKE2b-256 3a40ba7b6541f1b4424f23fe0863b8a22adabc51f27f39383bd6e2b8fcfd3b95

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hymmalm-0.1.3-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f11a3b74c9e102bff52d61914316d1989e75ec6d0f192c6e9d0d221eba6d70f0
MD5 98ab7fb549f8d6abd690d4b63fe1cc33
BLAKE2b-256 dc6fa9b68ad3b385c235fd4acef1990bf32cf6dbc882099a1c6c2751a501d4bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hymmalm-0.1.3-py3-none-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 de8dd742df64c3fd8342238e5a7224753d9d473b4ba7f4c06cb9a5595e6f6f04
MD5 8f7105d2754870d2fa777c625a2f80da
BLAKE2b-256 98d77cd9bcab7af304658cb20c6d655bcfad3dc7042894938e8a5b5e675948d9

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