Usage Guide

Le SDK Nitrokey Python prend actuellement en charge les dispositifs Nitrokey 3 (nitrokey.nk3.NK3) et Nitrokey Passe-partout (nitrokey.nkpk.NKPK). Les deux appareils sont basés sur la même plateforme, Trussed, et partagent donc la même classe de base nitrokey.trussed.TrussedDevice.

Les appareils trussés peuvent être redémarrés en mode bootloader qui est utilisé pour appliquer les mises à jour du firmware. Les dispositifs en mode bootloader sont accessibles en utilisant nitrokey.nk3.NK3Bootloader et nitrokey.nkpk.NKPKBootloader (classe de base nitrokey.trussed.TrussedBootloader).

Listing and Opening Devices

Utilisez la fonction nitrokey.trussed.TrussedDevice.list() pour lister et ouvrir tous les périphériques connectés: :

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}")

Si vous connaissez le chemin du périphérique, utilisez plutôt nitrokey.trussed.TrussedDevice.open(): :

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

path = "/dev/hidraw1"
device = NK3.open(path)
if device is not None:
    print(f"Found {device.name} at {path}")
device = NKPK.open(path)
if device is not None:
    print(f"Found {device.name} at {path}")

Des fonctions similaires sont disponibles pour nitrokey.nk3.NK3Bootloader et nitrokey.nkpk.NKPKBootloader. Pour lister à la fois les périphériques normaux et les périphériques bootloader, utilisez nitrokey.nk3.list() et nitrokey.nkpk.list().

Note

Actuellement, les périphériques retournés par nitrokey.trussed.TrussedDevice.list(), nitrokey.nk3.list() et nitrokey.nkpk.list() ne sont valides que jusqu’au prochain appel à l’une de ces fonctions. Voir issue 31 pour plus d’informations.

Using Applications

Le kit de développement logiciel Nitrokey Python prend en charge ces applications pour tous les dispositifs Trussed :

The Nitrokey 3 also provides these applications:

Pour plus d’informations, voir la référence API des classes d’application.