| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
Use DEPRECATED macro on noop calls for NK Storage v0.51+
Update Travis CI config
Fixes #182
|
| |
|
|\
| |
| |
| |
| |
| | |
Return serial number as uint32_t
Fixes #174
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch adds the get_serial_number_as_u32 method to NitrokeyManager.
It returns the serial number as a 32-bit unsigned integer. Previously,
we only returned it as a string generated from the integer value,
get_serial_number.
While get_serial_number returns an empty string if no device is
connected and "NA" if an unknown model is connected, the new method
throws a DeviceNotConnected exception in the first case and returns zero
in the second case as we cannot express the three states in one integer
return value.
|
|\ \
| | |
| | |
| | |
| | |
| | | |
Support Librem Key
Fixes #163
|
| | |
| | |
| | |
| | |
| | | |
Remove the change to keep binary compatibility.
Use the vendor_id field from the dev description.
|
| |/ |
|
|/ |
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Fixes: https://github.com/Nitrokey/libnitrokey/issues/129
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The SetTime command supports two modes: set the time without checking
the currently set time, or verify that the currently set time is not
zero and not larger than the new time (see cmd_set_time(uint8_t*,
uint8_t*) in src/keyboard/report_protocol.c, lines 678--710, in the
Nitrokey Pro firmware).
NitrokeyManager called these two modes set_time(uint64_t) and
get_time(uint64_t), which is highly misleading -- the command does never
get the time. Furthermore, the get_time method per default calls the
command with the time zero, which will always result in an error.
The C API has the methods NK_totp_set_time(uint64_t) and
NK_totp_get_time(). NK_totp_get_time() calls get_time(uint64_t) with
the time zero, leading to an error, and is therefore useless.
This patch proposes a new wording. While it would make sense to call
the first mode “reset” and the second mode “set”, this would break
compatibility. Therefore, new methods set_time_soft(uint64_t) and
NK_totp_set_time_soft(uint64_t) are introduced to represent the
difference between a hard and a soft setting of the time.
The old methods, get_time(uint64_t) and NK_totp_get_time(), are not
removed but marked as deprecated. They should be removed in an upcoming
major release.
|
|
|
|
| |
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
|
|
|
|
|
|
|
| |
CMake generates version.h from version.h.in and sets the major and minor
version as specified in CMakeLists.txt and the current git version as
returned by `git describe --always`. These values are also added to the
C API as NK_get{_major,_minor,}_library_version.
|
|
|
|
|
|
|
| |
All functions returning duplicated C-strings, which needs to be deallocated on caller side, are typed char* instead of const char*
Issue #110
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
|
|\
| |
| |
| | |
Fixes #102
|
| |
| |
| |
| | |
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
|
| |
| |
| |
| | |
Signed-off-by: Szczepan Zalega <szczepan@nitrokey.com>
|
|/
|
|
|
|
|
| |
Identifying the model to connect to by the first character of a string
is not intuitive. This patch adds an overload for the connect function
that accepts a device::DeviceModel enum value, providing a cleaner
interface.
|
|
|