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

Uploaded Python 3Windows x86-64

hymmalm-0.1.4-py3-none-manylinux_2_34_x86_64.whl (49.2 kB view details)

Uploaded Python 3manylinux: glibc 2.34+ x86-64

hymmalm-0.1.4-py3-none-manylinux_2_34_aarch64.whl (48.1 kB view details)

Uploaded Python 3manylinux: glibc 2.34+ ARM64

hymmalm-0.1.4-py3-none-macosx_11_0_arm64.whl (38.4 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

hymmalm-0.1.4-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.4.tar.gz.

File metadata

  • Download URL: hymmalm-0.1.4.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.4.tar.gz
Algorithm Hash digest
SHA256 57e345332a5fe157a66a0a9edd361a0ce1e6f4429785eb21a6044376f52772e7
MD5 6d01023ed9d923d55d90e59828f35d4a
BLAKE2b-256 ad181973ebe85d0501dbc21ea16e1ff3f0a95c4b5814643c3a2a6a9441259ec9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hymmalm-0.1.4-py3-none-win_amd64.whl
  • Upload date:
  • Size: 43.0 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.4-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 c254bee39732aa239309baffd3cf557072ae8aba9191fd16ddf3bbbba96c7e0f
MD5 1967cbe728a974a6b52f2342da00a78b
BLAKE2b-256 06eedd8961ff45c849c6f0a2eb2867fd12cfb904d559a987b477b9ef4ed8138f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hymmalm-0.1.4-py3-none-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 9576ac1b4d9b6efed872a3736507b073f534808dc1274a6fd6527a06ba63a605
MD5 aadaa6b091aa594f35263dce8d02d3f7
BLAKE2b-256 30d6f6b7ca6dc079c1dfdc3e2d88d9a7e6b765698c8ff44e6630bc76997819df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hymmalm-0.1.4-py3-none-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 6b73753e6d54fad3a0df6d92948ce94f5d823ae7a82828e36208868b26fb1851
MD5 10482f6d20a63906fb50682ad18a5183
BLAKE2b-256 7d46240340602f3af576f478c61edd766e888b34fd7516fc876feb66c3324d0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hymmalm-0.1.4-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d8556e855e534012aacbaa02abfbcc10e7e1db1253fdea4008239b97dc8bef3f
MD5 47cd6de1031af53d88505c58be176dbf
BLAKE2b-256 1ac5230f2f64ec35e91efa400bd45c18483c1ffa8c5f0d8ad35a3fb04f7403dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hymmalm-0.1.4-py3-none-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 86bea98603933d30c677fa7f13640ec40a2d3ecb390dde9af96f2c0cf40cdd44
MD5 fec79c76e0f253288d1f627e2d6bec76
BLAKE2b-256 df11d0bab1b242849f3a65831a60b6b9ab210fbf13e721ae4f9c02506ea4064f

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