| Commit message (Collapse) | Author | Age |
... | |
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add Status structure, and a general command for using it as a result.
Usable to limit calls to the device, when multiple status fields are
required at given time.
Tested on Nitrokey Pro v0.7 and v0.10.
Run offline tests as well (C++ and Python).
Fixes #155
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
For naming consistency, this patch adds the NK_get_status_as_string
function to replace NK_status and marks NK_status as deprecated.
|
|/
|
|
|
|
|
|
|
| |
Currently, the C API provides access to the device status using the
NK_get_{major,minor}_firmware_version, NK_device_serial_number and
NK_read_config functions. Each function sends a command to the device,
although the data is returned in a single response. This patch adds a
NK_status struct and a NK_get_status function that provide access to
this data with a single command.
|
|\
| |
| |
| |
| |
| |
| | |
Add firmware export stress tests for Fedora 29 and macOS 10.13+
Tested on Nitrokey Storage v0.53
Fixes #151
|
| |
| |
| |
| | |
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
|
| |
| |
| |
| | |
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
|
| |
| |
| |
| | |
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
|
| |
| |
| |
| | |
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
|
| | |
|
| |
| |
| |
| | |
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
|
|/
|
|
|
|
|
|
| |
Export the firmware multiple times, and test its size.
Hardcoded device set to /dev/sde1
Related: https://github.com/Nitrokey/nitrokey-app/issues/399
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
|
|\
| |
| |
| |
| |
| | |
Generate documentation for C API using Doxygen
Fixes #148
|
| | |
|
| |
| |
| |
| |
| | |
The main page contains a reference to the header containing all
functions of the C API and a short example of how to use it.
|
| |
| |
| |
| |
| |
| | |
Doxygen does not include top-level functions unless the file is
documented. Therefore we have to add a \file doc comment so that the
functions show up in the Doxygen output.
|
| |
| |
| |
| |
| |
| |
| | |
Doxygen is used generate the C API documentation. The Doxygen
configuration is stored in the Doxygen.in file (that is processed by
CMake). To generate the documentation, run make doc in the build
directory.
|
|\ \
| | |
| | |
| | |
| | |
| | | |
Return uint8_t from version getters
Fixes #149
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The firmware version parts returned by the Nitrokey devices are uint8_t
values. This is part of the public API as part of the NK_storage_status
struct. For consistency with this API, this patch changes the functions
NK_get_major_firmware_version and NK_get_minor_firmware_version to
return uint8_t instead of int.
|
|\ \ \
| |/ /
|/| |
| | |
| | |
| | | |
Export PWS slot count in C API
Fixes #152
|
|/ /
| |
| |
| |
| |
| |
| | |
The C++ API already defines the number of slots in device_proto.h. This
patch adds it to the C API. It is especially important to have this
constant in the C API as it is the length of the array returned by
NK_get_password_safe_slot_status.
|
|\ \
| | |
| | |
| | |
| | |
| | | |
Correct README - links to header files
Fixes #146
|
| | |
| | |
| | |
| | | |
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
|
|/ / |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Multiple PR's merged and tested as a whole
Platform:
Pro v0.7
Storage v0.53
Fedora 29
Run Python tests
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | | |
Improve support for multiple devices
Fixes #138
|
| | | |
| | | |
| | | |
| | | |
| | | | |
As we cannot test this function properly in Python (due to missing
struct definitions), we test it in the C++ test suite.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
As we cannot read the output of NK_list_devices in the Python tests at
the moment, this test case uses NK_list_devices_by_cpuID instead.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Unfortunately, I cannot test more as the current ffi implementation does
not allow me to import struct definitions. Without the definition for
the NK_device_info struct, I cannot inspect the result of the
NK_list_devices function.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
NK_list_devices corresponds to NitrokeyManager::list_devices. It
returns a linked list of NK_device_info, which has to be freed using the
NK_free_device_info function.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
For easier handling, we should use a std::string instead of
std::wstring for the serial number in DeviceInfo. For the conversion, I
assume that the serial number is valid UTF-8. As it should be
alphanumeric and ASCII only, this should be true.
|
| | | |
| | | |
| | | |
| | | | |
NK_connect_with_path corresponds to NitrokeyManager::connect_with_path.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The current test case is renamed to “Use Storage API” as it queries the
storage status. The new test case, “Use API”, lists all connected
devices and prints their model, path and serial number.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously, Stick20 was hardcoded in connect_with_path. Now we first
use hid_enumerate to find out the model on that path, then we connect to
that model.
We also could have added the model as a parameter to connect_with_path.
Yet we cannot directly check the model after connecting, so this would
be error-prone.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The current test case is renamed to “List Storage devices” as it also
displays the SD card ID. The new test case, “List devices”, lists all
connected devices and prints their model, path and serial number.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
The method makes it easier to create a std::shared_ptr<Device> from a
model enum instance.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Device::enumerate does not need any instance data, therefore it is made
static. Note that this not only changes the public API by making the
method static. We also return all connected Nitrokey devices instead of
only Storage devices.
The NitrokeyManager method list_devices_by_cpuID is changed to check the
device type so that they still only return Storage devices. The
list_device method now returns both Storage and Pro devices.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Option<T> is a simple replacement for std::optional, which was
introduced in C++17. It stores a value that can be present or absent.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In the previous commit, we changed the return value of Device::enumerate
to std::vector<DeviceInfo>. Now we change Nitrokey::list_devices to
also return DeviceInfo instances.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The return type of Device::enumerate is changed from
std::vector<std::string> to std::vector<DeviceInfo> to expose the
additional information contained in the DeviceInfo struct.
|
| | |/
| | |
| | |
| | |
| | |
| | | |
This is a preparation for a future patch that will change the enumerate
method to return a vector of DeviceInfo instances instead of a vector of
strings.
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | | |
Add NK_get_SD_usage_data function to C API
Fixes #145
|
| | |/
| | |
| | |
| | |
| | |
| | | |
The NK_get_SD_usage_data function returns the minimum and maximum write
level for the SD card. This function cannot be tested due to the
missing struct support in the Python tests.
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | | |
Return -2 if an error occured in NK_get_progress_bar_value
Fixes #143
|