Skip to main content

Client application for Tillitis TKey hardware ML-DSA signer

Project description

keylet -- Client library for Tillitis TKey

keylet on GitHub keylet on PyPI keylet documentation

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

keylet-0.2.0.tar.gz (53.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

keylet-0.2.0-py3-none-any.whl (55.2 kB view details)

Uploaded Python 3

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

Hashes for keylet-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b42dd4d6e8b0b96e3b26e90a56aa357f82b550d84f570b10d3b4a0fdfdce87c5
MD5 9a82fdabcbe70fc9b0aaa27e5f13d6e5
BLAKE2b-256 f6d1db1ab7795d1c519302704fa824946cf6c2e1103f37ae24251ea9bf8d2ebb

See more details on using hashes here.

Provenance

The following attestation bundles were made for keylet-0.2.0.tar.gz:

Publisher: release.yml on jku/keylet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for keylet-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 874d193686cac8611cc2be252686488fb5aa17b60c0adedac0bc4c98af2921d1
MD5 e5281d696241b2a1b2b389b4e1fc2432
BLAKE2b-256 ce34c28df942aecad3ebeabccd5024b2dc41314edf8ecbd9a7969385da35eec3

See more details on using hashes here.

Provenance

The following attestation bundles were made for keylet-0.2.0-py3-none-any.whl:

Publisher: release.yml on jku/keylet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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