The CLV1 protocol is now publicRead the spec

Docs · Reference

Downloads

Every SDK as one file your project installs, and the C library and command line tool for Windows and Linux, each with its SHA-256 to check before use

SDKs

JavaScript · Node.js, Electron

Version 0.1.0

Node.js 20 or later

clavisauh-sdk-js-0.1.0.tgz59 KB

SHA-256 3ad4956aeda16eab27e338541ca925c003aed448a00eb7d8c1b3ee458b39bf05

Install

npm install ./clavisauh-sdk-js-0.1.0.tgz

Python

Version 0.1.0

Python 3.9 or later

clavisauh-0.1.0-py3-none-any.whl17 KB

SHA-256 71956a9e347c9864bd433adf5d56345b54f7c066bf467e53417a79dad48cd568

Install

# in your virtual environment (python -m venv .venv)
pip install clavisauh-0.1.0-py3-none-any.whl

C# · .NET

Version 0.1.0

.NET 8 or later

ClavisAuh.0.1.0.nupkg37 KB

SHA-256 7c05fcec2668643fc70e005d6e01eea0f0a7a079b6cb9fdc8e4830bd04dec579

Install

<!-- nuget.config, next to your .csproj; ClavisAuh.0.1.0.nupkg goes in its packages folder -->
<configuration>
  <packageSources>
    <add key="clavisauh" value="packages" />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
</configuration>
dotnet add package ClavisAuh --version 0.1.0

C++

Version 0.1.0

C++17, CMake 3.21, libsodium, libcurl, nlohmann-json

clavisauh-cpp-0.1.0.zip21 KB

SHA-256 099e52bb04d76b4981a843c9680ffd26b8e110ca46757cc66d87e65e684ea46b

Install

# unpack: unzip clavisauh-cpp-0.1.0.zip   (Windows PowerShell: Expand-Archive clavisauh-cpp-0.1.0.zip .)
# CMakeLists.txt, with the zip unpacked beside it
add_subdirectory(clavisauh-cpp-0.1.0 clavisauh)
target_link_libraries(your_app PRIVATE clavisauh::clavisauh)

Go

Version 1.0.0

Go 1.23 or later, standard library only

clavisauh-go-1.0.0.zip19 KB

SHA-256 5e8e25fcb418a133507c17bd750f4ba1411721885dec739d6f5e0e28813de28b

Install

# unpack: unzip clavisauh-go-1.0.0.zip   (Windows PowerShell: Expand-Archive clavisauh-go-1.0.0.zip .)
# in your module's folder (a new program: go mod init <name> first)
go mod edit -require=clavisauh@v0.0.0 -replace=clavisauh=./clavisauh-go-1.0.0

Rust

Version 1.0.0

Rust 1.80 or later

clavisauh-rust-1.0.0.zip29 KB

SHA-256 d32ff847a507cf46db5bf8e9af7d9c47935eafae511a5b35acfb5e2d46aa4d83

Install

# unpack: unzip clavisauh-rust-1.0.0.zip   (Windows PowerShell: Expand-Archive clavisauh-rust-1.0.0.zip .)
# in your crate's folder
cargo add --path clavisauh-rust-1.0.0

Java · Kotlin

Version 1.0.0

JDK 17 or later, nothing else

clavisauh-1.0.0.jar59 KB

SHA-256 ff91082b55306128b1c78b5ef1189dfdac12c0a0056f5775e48490f932fbdf1a

Install

# pick one of the three ways
# a source file, no build tool
java -cp clavisauh-1.0.0.jar K1Key.java

# Maven: install the jar once, then depend on clavisauh:clavisauh:1.0.0
mvn install:install-file -Dfile=clavisauh-1.0.0.jar -DgroupId=clavisauh -DartifactId=clavisauh -Dversion=1.0.0 -Dpackaging=jar

// Gradle (Kotlin DSL), with the jar in libs/
implementation(files("libs/clavisauh-1.0.0.jar"))

C library and command line tool

C library · Windows x64

Version 1.0.0

Windows 10 or later, one file that needs only Windows's own DLLs

clavis-c-1.0.0-windows-x64.zip758 KB

SHA-256 2d7b345769c58a5afbdf8682e0db019fe3b10a1042da041862060ee0826976d4

Install

Expand-Archive clavis-c-1.0.0-windows-x64.zip .
# clavis-c-1.0.0-windows-x64\clavis.dll goes next to your program

C library · Linux x64

Version 1.0.0

glibc 2.32 or later, with libsodium and libcurl from the system (Debian, Ubuntu: apt install libsodium23 libcurl4)

clavis-c-1.0.0-linux-x64.tar.gz168 KB

SHA-256 6e720f8db139cabcf7df88a3eac178a7cfc1f49d0aef36a0a51a0f5cf30ad161

Install

tar -xzf clavis-c-1.0.0-linux-x64.tar.gz
# clavis-c-1.0.0-linux-x64/libclavis.so: load it by path, or put the folder on LD_LIBRARY_PATH

Command line tool · Windows x64

Version 1.0.0

Windows 10 or later, one file that needs only Windows's own DLLs

clavis-cli-1.0.0-windows-x64.zip762 KB

SHA-256 59cf6ad3e92c867f32008116ded25ebc1564fb70d1e88ab739e69927ee0091a1

Install

Expand-Archive clavis-cli-1.0.0-windows-x64.zip .
.\clavis-cli-1.0.0-windows-x64\clavis.exe version

Command line tool · Linux x64

Version 1.0.0

glibc 2.34 or later, with libsodium and libcurl from the system (Debian, Ubuntu: apt install libsodium23 libcurl4)

clavis-cli-1.0.0-linux-x64.tar.gz166 KB

SHA-256 30ba4e19ecbdf45c29ac24c320e0137cd0bdd5e62f3227b06cb1a3582a856f14

Install

tar -xzf clavis-cli-1.0.0-linux-x64.tar.gz
./clavis-cli-1.0.0-linux-x64/clavis version

Compatibility test

CLV1.1 test vectors

Version 1.1

For your own client: keys, signed strings, signatures, an offline token and a manifest, with the results every official SDK reaches

clv1.1-test-vectors.json4 KB

SHA-256 16ca22d4000fd5cfebcd79c7818687ebc7aa89919b59a2fc9e42ac7dd82d9ae3

How to use them

Check a download

Compare the file's SHA-256 with the one above, or check them all at once against SHA256SUMS

Windows (PowerShell)

(Get-FileHash <the file you downloaded> -Algorithm SHA256).Hash.ToLower()

Linux

sha256sum -c SHA256SUMS --ignore-missing

macOS

shasum -a 256 <the file you downloaded>

A copy of this page could list its own hashes. SHA256SUMS is signed with a key that never leaves our machine, so this check also works if you got here by a wrong link. Save the key below as clavisauh-release.pub, it never changes, then: SHA256SUMS.sig

-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEASwfDaETBKkFkf3Kg7ml3/aw+TsmxoBZQ+XNzHPpqUHQ=
-----END PUBLIC KEY-----
openssl pkeyutl -verify -pubin -inkey clavisauh-release.pub -rawin -in SHA256SUMS -sigfile SHA256SUMS.sig

Not there yet

  • npm, PyPI, NuGet, crates.io and Maven Central: the guides will show both ways once the packages are published
  • macOS and ARM builds of the C library and the command line tool
  • A code signature on the Windows files: SmartScreen may ask before the first run

How can we help?

Frequently asked

What is ClavisAUH?

A licensing and authentication service for desktop software: license keys, device binding, end-user sign-in and signed responses. All run from one dashboard

Why can't a cracker fake your server?

The SDK only trusts answers signed with your app's private key. That key never leaves our servers, so a fake server can't sign and gets rejected

What ends up in my binary?

Your app id and public key. Nothing secret, because each device makes its own key pair on first run

Does it work offline?

Yes. Every plan gets a signed offline token for 7 days, and your app checks it locally. Premium lets you choose how long. A revoked license can keep working offline for that time, unless Online-Only Mode is on

Which languages are supported?

JavaScript and TypeScript today. C++, C# and Python are next, on the same open protocol

Is Basic really free?

Yes. No time limit, no card. Move to Premium when you need more

Get in touch