Skip to main content

Nitrokey Python SDK

Project description

Nitrokey Python SDK

The Nitrokey Python SDK can be used to use and configure Nitrokey devices.

Features

The SDK supports these devices and features:

  • Nitrokey 3
    • device and bootloader management (nitrokey.nk3)
    • admin app (nitrokey.trussed.admin_app)
    • provisioner app (nitrokey.trussed.provisioner_app)
    • secrets app (nitrokey.nk3.secrets_app)
  • Nitrokey Passkey
    • device and bootloader management (nitrokey.nkpk)
    • admin app (nitrokey.trussed.admin_app)
    • provisioner app (nitrokey.trussed.provisioner_app)

Installation

The Nitrokey Python SDK is released to the Python Package Index (PyPI) and can be installed with pip:

$ pip install nitrokey

The releases are also available as signed tags in the GitHub repository Nitrokey/nitrokey-sdk-py.

Getting Started

from nitrokey.nk3 import NK3
from nitrokey.nkpk import NKPK

print("Connected Nitrokey devices:")
for device in NK3.list():
    print(f"- {device.name} at {device.path}")
for device in NKPK.list():
    print(f"- {device.name} at {device.path}")

Compatibility

The Nitrokey Python SDK currently requires Python 3.9 or later. Support for old Python versions may be dropped in minor releases.

Related Projects

  • pynitrokey: A command line interface for the Nitrokey FIDO2, Nitrokey Start, Nitrokey 3 and NetHSM
  • nitrokey-app2: A graphical application to manage and use Nitrokey 3 devices
  • nethsm-sdk-py: A client-side Python SDK for NetHSM

Development

The following software is required for the development of the SDK:

  • Python 3.9 or newer
  • poetry
  • GNU Make
  • git

After checking out the source code from GitHub, you can install the SDK and its dev dependencies into a new virtual environment managed by poetry using make install:

$ git clone https://github.com/Nitrokey/nitrokey-sdk-py.git
$ cd nitrokey-sdk-py
$ make install

We use multiple checks and linters for this project. Use make check to run all required checks. Some problems can automatically be fixed by running make fix.

The SDK also includes minimal tests to ensure that it is installed and loaded correctly. Use make test to run these tests.

Dependency Management

We use poetry for dependency management. poetry maintains a lockfile with pinned dependency versions that is used for development environments and in CI. This lockfile includes the hash of the pyproject.toml file, so it needs to be updated if pyproject.toml is changed. These make targets can be used to invoke poetry for the most common tasks:

  • make install installs the SDK and its dependencies as specified in the lockfile (must be up-to-date)
  • make lock updates the lockfile without changing pinned dependency versions
  • make update bumps all dependencies, installs them and updates the lockfile

For more information, see poetry’s documentation on Managing depencies and Commands.

License

This software is fully open source.

All software, unless otherwise noted, is dual licensed under Apache 2.0 and MIT. You may use the software under the terms of either the Apache 2.0 license or MIT license.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

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

nitrokey-0.2.0rc1.tar.gz (115.2 kB view details)

Uploaded Source

Built Distribution

nitrokey-0.2.0rc1-py3-none-any.whl (161.1 kB view details)

Uploaded Python 3

File details

Details for the file nitrokey-0.2.0rc1.tar.gz.

File metadata

  • Download URL: nitrokey-0.2.0rc1.tar.gz
  • Upload date:
  • Size: 115.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.9 Linux/6.6.41

File hashes

Hashes for nitrokey-0.2.0rc1.tar.gz
Algorithm Hash digest
SHA256 96848b5665c3489b1627ac2849feff1cf36be5059f1563ac93aca075914f147c
MD5 137a938d06cdc348daef0d3f3dee0e6e
BLAKE2b-256 4ea1faa1e46f8a60e0253ae79eb57ae330b2352a95f477b357fac10bbb646089

See more details on using hashes here.

File details

Details for the file nitrokey-0.2.0rc1-py3-none-any.whl.

File metadata

  • Download URL: nitrokey-0.2.0rc1-py3-none-any.whl
  • Upload date:
  • Size: 161.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.9 Linux/6.6.41

File hashes

Hashes for nitrokey-0.2.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 5f3267c4989de80096a50bb17a9db04e91c4f47cd685bf8c9f66a2660a8d9b35
MD5 d537e9e089773790ad46ea14a9b8f083
BLAKE2b-256 ee2505c5ba62a2955f6242b65675c55adb33ee88b411f39e7e38167169add3c4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page