| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
| |
As Drop is only implemented for UnauthenticatedDevice, it is relevant to
test whether it also works if we work on authenticated devices.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
| |
I removed the segfault note in the todo list when moving to libnitrokey
v3.3. Yet the commit fixing this issue -- 7a8550d -- is not part of
that version.
|
| |
|
|
|
|
|
|
| |
The problem with get_major_firmware_version is fixed as we now use
libnitrokey v3.3. Therefore the corresponding section in the readme can
be removed.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Since libnitrokey v3.3, we can also access the minor firmware version.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
The nitrokey-sys crate now has its own Git repository at
https://git.ireas.org/nitrokey-sys-rs/ to make maintenance easier.
|
|
|
|
| |
Add the readme to Cargo.toml so that it is displayed on crates.io.
|
| |
|
| |
|
|
|