aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Introduce DeviceWrapper to abstract over devicesRobin Krahl2018-05-28
| | | | | | | DeviceWrapper abstracts over the supported devices. It implements the traits that are implemented by all supported devices. The previous UnauthenticatedDevice is renamed to Pro to prepare Storage support. connect_model is moved to Pro::connect.
* Move the authenticate methods to a new Authenticate traitRobin Krahl2018-05-22
|
* Improve log level documentationRobin Krahl2018-05-22
| | | | | | Now, the documentation clearly states the purpose of each log level. Also, the documentation for set_log_level is corrected: libnitrokey always prints to stderr.
* Remove set_debug calls in the tests and update documentationRobin Krahl2018-05-22
| | | | | | | Since libnitrokey v3.3, libnitrokey no long has debugging output enabled per default. Therefore, a corresponding note can be removed from the crate documentation and the set_debug calls can be removed from the tests.
* Add an example for setting the current timeRobin Krahl2018-05-22
| | | | | The example uses the chrono crate and can therefore not be executed, but at least it shows how to set the Nitrokey device to the current time.
* Improve OtpSlotData constructor / builderRobin Krahl2018-05-22
| | | | | Firstly, use Into<String> instead of String::from(&str). Secondly, add methods to set the two arguments not set in the constructor.
* Restructure code by functionalityRobin Krahl2018-05-22
| | | | | | | | | | | | | | | In future versions, we want to support not only the Nitrokey Pro, but also the Nitrokey Storage. This requires a better code layout. This patch introduces two main changes: First, the OTP-specific methods are moved from the Device trait and the AdminAuthenticatedDevice struct to the functionality-based traits ConfigureOtp and GenerateOtp. This will hopefully make it easier to integrate the Nitrokey Storage. Secondly, the code is split into separate modules. These modules are currently all private and re-exported in the lib module, but we can consider making them public in the future.
* Correct formattingRobin Krahl2018-05-22
|
* Fix example for change_user_pin and change_admin_pinRobin Krahl2018-05-22
|
* Extend test case for drop() with authenticated devicesRobin Krahl2018-05-22
| | | | | As Drop is only implemented for UnauthenticatedDevice, it is relevant to test whether it also works if we work on authenticated devices.
* Use drop() instead of disconnect()Robin Krahl2018-05-22
| | | | | | | | Previously, the user had to explicitly call diconnect() to terminate the connection to the Nitrokey. Now NK_logout() is called automatically once the device is out of scope as UnauthenticatedDevice implements Drop. AdminAuthenticatedDevice and UserAuthenticatedDevice do not have to implement Drop, as it will be called recursively.
* Activate tests for unauthorized OTP code generationRobin Krahl2018-05-22
| | | | | | | In a previous commit, we changed get_string_result to only free the string if the operation was successful. Therefore we can re-enable the tests in hotp_pin and totp_pin that cause failing OTP code generation commands.
* Add support for change_admin_pin and change_user_pinRobin Krahl2018-05-22
|
* Add support for erase_hotp_slot and erase_totp_slotRobin Krahl2018-05-22
|
* Correct invalid slot handlingRobin Krahl2018-05-22
| | | | | | | | | | | While the Nitrokey device would generate a WrongSlot error, libnitrokey catches these errors and raises an InvalidSlotException with error code 201. This patch matches this error code to CommandError::InvalidSlot, corrects the documentation and adds test cases. To be able to test a failing OTP generation command, we have to adapt get_string_result to free the string only if successful. This is due to the segfault issue in libnitrokey v3.3 (see todo list).
* Refactor test casesRobin Krahl2018-05-21
|
* Use NK_login_enum instead of NK_loginRobin Krahl2018-05-21
| | | | | | NK_login used a string to identify the model to connect to. Since libnitrokey v3.3, we can use NK_login_enum together with an enum value as a more type-safe alternative.
* Add get_minor_firmware_version to DeviceRobin Krahl2018-05-21
| | | | Since libnitrokey v3.3, we can also access the minor firmware version.
* Update nitrokey-sys dependency to v3.3.0Robin Krahl2018-05-21
| | | | | | | Now libnitrokey v3.3 is compiled from source, fixing the problems with older libnitrokey versions (freeing strings, firmware version getter). Also, bindgen is no longer a build dependency. This makes the build process a lot faster.
* Initial commitRobin Krahl2018-05-19