Client application for Tillitis TKey hardware ML-DSA signer
Project description
keylet -- Client library for Tillitis TKey
Keylet is a Python client library and CLI tool for the Tillitis TKey security token, and implements a ML-DSA / Ed25519 signer application for TKey.
Installation
pip install keylet
CLI Usage
The package installs a keylet command-line tool forsigning and verification. This is primarily a test/demo application for the library.
# Sign without a passphrase, then verify
$ keylet sign README.md
$ keylet verify README.md
# Get public key, sign with a passphrase, and verify using the saved public key
$ keylet --passphrase hunter2 pubkey --output pub.key
$ keylet --passphrase hunter2 sign README.md
$ keylet verify --pubkey pub.key README.md
# When using keylet long-term, remember to specify device app digest (keylet default
# app version may change, but you will need a specific application to keep using the
# same key)
$ keylet --passphrase hunter2 --digest 186bcf6 sign README.md
Library Usage
from keylet import TKeySign, SignApp
# Load the default embedded ML-DSA signer
app = SignApp.load_mldsa()
digest = app.digest
# Initialize the signer with a passphrase
with TKeySign(app=app, secret="hunter2") as signer:
# Sign a payload
signature = signer.sign(b"my payload")
In long-term use, the device app digest should be used to ensure the same application is always used for a specific key:
# Load application with a digest stored earlier
app = SignApp.load_mldsa(digest=digest)
# Initialize the signer with a passphrase
with TKeySign(app=app, secret="hunter2") as signer:
# Sign a payload
signature = signer.sign(b"my payload")
See the API Reference for more details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file keylet-0.2.0.tar.gz.
File metadata
- Download URL: keylet-0.2.0.tar.gz
- Upload date:
- Size: 53.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b42dd4d6e8b0b96e3b26e90a56aa357f82b550d84f570b10d3b4a0fdfdce87c5
|
|
| MD5 |
9a82fdabcbe70fc9b0aaa27e5f13d6e5
|
|
| BLAKE2b-256 |
f6d1db1ab7795d1c519302704fa824946cf6c2e1103f37ae24251ea9bf8d2ebb
|
Provenance
The following attestation bundles were made for keylet-0.2.0.tar.gz:
Publisher:
release.yml on jku/keylet
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
keylet-0.2.0.tar.gz -
Subject digest:
b42dd4d6e8b0b96e3b26e90a56aa357f82b550d84f570b10d3b4a0fdfdce87c5 - Sigstore transparency entry: 2007112587
- Sigstore integration time:
-
Permalink:
jku/keylet@f9a115d0ed466647a3dc265ac54c1f9301a0bd68 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/jku
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f9a115d0ed466647a3dc265ac54c1f9301a0bd68 -
Trigger Event:
push
-
Statement type:
File details
Details for the file keylet-0.2.0-py3-none-any.whl.
File metadata
- Download URL: keylet-0.2.0-py3-none-any.whl
- Upload date:
- Size: 55.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
874d193686cac8611cc2be252686488fb5aa17b60c0adedac0bc4c98af2921d1
|
|
| MD5 |
e5281d696241b2a1b2b389b4e1fc2432
|
|
| BLAKE2b-256 |
ce34c28df942aecad3ebeabccd5024b2dc41314edf8ecbd9a7969385da35eec3
|
Provenance
The following attestation bundles were made for keylet-0.2.0-py3-none-any.whl:
Publisher:
release.yml on jku/keylet
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
keylet-0.2.0-py3-none-any.whl -
Subject digest:
874d193686cac8611cc2be252686488fb5aa17b60c0adedac0bc4c98af2921d1 - Sigstore transparency entry: 2007112658
- Sigstore integration time:
-
Permalink:
jku/keylet@f9a115d0ed466647a3dc265ac54c1f9301a0bd68 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/jku
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f9a115d0ed466647a3dc265ac54c1f9301a0bd68 -
Trigger Event:
push
-
Statement type: