AccessCORE License SDK
One licensing decision across multiple languages.
Own product · Multi-language licensing SDK
Core & decisions › Shared core
Signing and verification share one Rust core
AccessCORE License SDK embeds license verification and entitlement enforcement in software products. A Rust core owns the token format, signatures, expiry, grace periods, machine binding, features, and quotas; thin language bindings consume its results.
Java, Python, and Go share decision semantics down to refusal message keys. AccessCORE License Studio uses the same core for issuance, keeping the issuer’s format and the product’s verification rules aligned.
The SDK is an embedded library rather than a standalone administration interface. A product attaches enforcement to its APIs, services, and interface, while Studio handles sales, contracts, and issuing operations.
Activation & lifecycle › Online activation
Bind each activation response to its request and machine
After a product key is entered, the SDK hashes machine identifiers and builds a request with a one-time nonce. The application’s HTTP client sends it to the server, which checks the contract and seat allowance before returning a signed token and activation credentials.
The response is checked for its signature, request nonce, and machine match before it is stored and applied to the gate. These checks distinguish replayed responses and responses for other machines. Pending approval, exhausted seats, suspension, and revocation have separate outcomes.
Subsequent requests use the activation secret to compute HMAC-SHA256 over the exact transmitted body. The application sends the headers and body prepared by the SDK through its own HTTP client.
Language integration › Java
dev.accesscore:license-sdkServer integration for Java 17 and later
- Binding
- JNA · Jackson
- Adapters
- Spring · Servlet · JAX-RS · Reactor
- Package
- JAR with bundled native cores
Java calls the native core through JNA and exchanges data using Jackson. The JAR bundles platform cores and selects the appropriate library at load time. Java 17 or later is required.
Implement LicenseStore and ProductIdentity and embed public verification keys. LicenseEnforcementFilter controls unlicensed requests, while @RequiresFeature and quota checks protect the actual controllers and services.
Framework adapters are selected for Spring, Jakarta Servlet, JAX-RS, or Reactor as applicable. The artifact is available as dev.accesscore:license-sdk in GitHub Packages or as a release JAR; registry access requires read:packages permission.
Security & distribution › Platforms
Rust → C ABI → Java / Python / GoNative cores bundled for each supported platform
- Linux
- x86_64 · ARM64 / glibc
- macOS
- Intel · Apple Silicon
- Windows
- x86_64
- musl
- Linux x86_64 · Java/Python
Public distribution contains a Java JAR, Python wheel, Go module, and prebuilt native cores. Targets include Linux x86_64 and ARM64, Intel and Apple Silicon macOS, and Windows x86_64. Java and Python additionally support Linux x86_64 with musl.
Java and Python load shared libraries, while Go links static libraries. C ABI headers and binaries also support custom bindings in other languages. These artifacts do not imply browser JavaScript or WebAssembly support.
Choose the artifact for the language version, operating system, CPU, and build environment. The distribution repository provides runtime binaries, bindings, documentation, and shared conformance vectors rather than the Rust core’s source.
