A libnitrokey wrapper for Rust providing access to Nitrokey devices.
toml
[dependencies]
nitrokey = "0.1.0"
In order to use this crate, a [libnitrokey
][] installation is required
(both development headers and library). The crate is developed using version
3.2, but any newer version should work too.
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.
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).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.
For bug reports, patches, feature requests or other messages, please send a mail to nitrokey-rs-dev@ireas.org.
This project is licensed under the MIT License. libnitrokey
is licensed
under the LGPL-3.0.