summaryrefslogtreecommitdiff
path: root/README.md
blob: ff4f3b915034eb3f16a91f4765d607b37b2b4af4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# nitrokey-rs

A libnitrokey wrapper for Rust providing access to Nitrokey devices.

[Documentation][]

```toml
[dependencies]
nitrokey = "0.1.0"
```

## 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][].

[Documentation]: https://docs.rs/nitrokey
[`libnitrokey`]: https://github.com/nitrokey/libnitrokey
[nitrokey-rs-dev@ireas.org]: mailto:nitrokey-rs-dev@ireas.org
[pull request #114]: https://github.com/Nitrokey/libnitrokey/pull/114
[MIT license]: https://opensource.org/licenses/MIT
[LGPL-3.0]: https://opensource.org/licenses/lgpl-3.0.html