nitrokey 0.1.1

Bindings to libnitrokey for communication with Nitrokey devices
Documentation

nitrokey-rs

A libnitrokey wrapper for Rust providing access to Nitrokey devices.

Documentation

[dependencies]
nitrokey = "0.1.1"

Compatibility

The required libnitrokey version is built from source. The host system must provide libhidapi-libusb0 in the default library search path.

As I only have access to a Nitrokey Pro, this crate only provides support for the Nitrokey Pro methods. If you want to contribute for the Nitrokey Storage, please send a mail to nitrokey-rs-dev@ireas.org.

Unsupported Functions

The following functions provided by libnitrokey are deliberately not supported by nitrokey-rs:

  • NK_get_time(). This method is useless as it will always cause a timestamp error on the device (see pull request #114 for libnitrokey for details).
  • NK_get_status(). This method only provides a string representation of data that can be accessed by other methods (firmware version, seriel number, configuration).

Tests

The default test suite assumes that no Nitrokey device is connected and only performs minor sanity checks. There is another test suite that assumes that a Nitrokey Pro is connected (admin password 12345678, user password 123456). To execute this test suite, run cargo test --no-default-features --features test-pro -- --test-threads 1. Note that this test suite might lock your stick if you have different passwords!

The totp and totp_pin tests can occasionally fail due to bad timing. Also make sure to run the tests sequentially (--test-threads 1), otherwise they might interfere.

The get_major_firmware_version test will fail for newer libnitrokey versions as it relies on buggy behavior in version 3.2.

Contact

For bug reports, patches, feature requests or other messages, please send a mail to nitrokey-rs-dev@ireas.org.

License

This project is licensed under the MIT License. libnitrokey is licensed under the LGPL-3.0.