| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
This patch adds the otp commands to the README and describes them in the
nitrocli(1) man page.
|
|
|
|
|
|
| |
This change adds a new section for acknowledgments surrounding the
program to the README. Robin Krahl (robinkrahl @ Github) has been a
great help with respect to recent developments.
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the past we have used the 'devel' branch for more or less early
development work that includes the occasional rebase to fix up mistakes
and keep the history clean. That is a non-starter when it comes to
tagging signed releases, which we have introduced recently.
Hence, there is no point in diverging from what the rest of the world is
doing by using a branch name other than 'master' as the main development
vehicle.
By now we have introduced two dependencies on the branch name into the
code base, which this change fixes up.
|
|
|
|
|
|
|
|
|
|
|
| |
This change adds another two badges to the repository. The first one
simply lists the most recent version of the crate as published on
crates.io. The second one states the minimum version of rustc that is
required for building. We have recently switched to using Rust 2018 and
with that we have a requirement for version 1.31 of the toolchain. In
the future the hope is that now that we have a proper CI/CD pipeline
based off of Docker images we should be able to build on past versions
of Rust, even if they are not used during development.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change adds a configuration file for the Gitlab CI/CD pipeline to
the repository. This file (directly or indirectly) controls the
environment in which to build, what exactly to build, and ultimately
would also be used to define what tests to run.
With the pipeline in place the change also adds a badge indicating the
status of the build on the project's front page.
The following other CI services have been evaluated or tested and found
to be insufficient for the needs at hand:
- Travis CI: Does not support configuration in a directory other than
the repository root
- Cirrus CI: Has the same problem
- Semaphore: Does not support Rust
- Circle CI: Does not support Rust
- Google Cloud Build: Pretty much strictly a paid service
|
|
|
|
|
|
| |
This change adds a link to the nitrocli package for Arch Linux to the
README. The package is currently available in the Arch User Repository
(AUR).
|
|
|
|
|
|
|
|
|
|
| |
In order for users to decide whether an update of the program is
justified (or, to potentially help in identifying changes that resulted
in a regression), it is often a good idea to provide a brief summary of
all the changes that went into a particular release.
With this change we add a change log for the program to the repository.
Through a bit of code archeology the log stretches back to the initial
release.
|
|
|
|
|
|
|
|
|
|
|
| |
In the past the Nitrokey Storage device reported wrong CRC values for
certain commands, e.g., the closing of an encrypted volume. This problem
was tracked by issue 32: Nitrokey/nitrokey-storage-firmware#32
Firmware version 0.47 includes a fix for the problem. With this change
we remove the workaround for the incorrect CRC from nitrocli. By doing
so, we require the Nitrokey Storage to be running firmware 0.47 or
higher to be properly usable.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The nitrokey-storage-firmware package defines an array of four byte
values to hold information about the firmware version. libnitrokey uses
a similar definition but overlays it with some more semantically
meaningful information by putting it into a union:
union {
uint8_t VersionInfo_au8[4];
struct {
uint8_t __unused;
uint8_t major;
uint8_t __unused2;
uint8_t minor;
} versionInfo;
};
In order to derive the firmware version representation for nitrocli we
used the same major/minor version definition as libnitrokey. This
definition, however, is wrong or at least not in line with how the
firmware is versioned officially.
This change reworks the way we interpret the version information
reported by the Nitrokey Storage device. Like the firmware, we treat the
first byte as the major version and the second one as the minor version.
The remaining two bytes seem to represent the build number and an
internal version according to usage of those fields in
nitrokey-storage-firmware but we ignore both to keep the reported string
similar to that of the nitrokey-app.
|
|
|
|
|
|
|
|
|
|
| |
We currently unconditionally use gpg-agent to enter the PIN to use when
opening the encrypted volume. The agent has the advantage of caching the
password for us so that subsequent invocations against the same cache
entry can be served without user interaction.
For various reasons, however, it can be desirable to have the ability to
remove this entry from the cache. This change introduces a new command
'clear' that achieves precisely this task.
|
|
|
|
|
|
|
|
|
|
|
| |
The nitrokey supports a status command that instructs it to report
details about itself. This data includes general useful information such
as the current version of the firmware being installed along with more
contextual bits such as the number of remaining retries for the user
and admin PINs or whether the different volumes (unencrypted, encrypted,
hidden) are writable.
This change introduces the 'status' command line option that can be used
to retrieve this information from the nitrokey and to display it.
|
|
With this change we assemble a HID feature report and send it to the
nitrokey device. Feature reports are the objects used for sending
commands to the nitrokey. We create two different reports for
opening and closing of the encrypted volume.
|