| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change introduces support for discovering and executing
user-provided extensions to the program. Extensions are useful for
allowing users to provide additional functionality on top of the
nitrocli proper. Implementation wise we stick to an approach similar to
git or cargo subcommands in nature: we search the directories listed in
the PATH environment variable for a file that starts with "nitrocli-",
followed by the extension name. This file is then executed. It is
assumed that the extension recognizes (or at least not prohibits) the
following arguments: --nitrocli (providing the path to the nitrocli
binary), --model (with the model passed to the main program), and
--verbosity (the verbosity level).
|
|
|
|
|
|
|
|
|
| |
This change updates the structopt crate to version 0.3.21. We need this
version as it fixes a compilation error [0] when using the
external_subcommand enum variant annotation provided by the crate with
certain versions of Rust.
[0]: https://github.com/TeXitoi/structopt/issues/447
|
|
|
|
|
|
| |
This patch updates the nitrokey dependency to version 0.8.0 and applies
all breaking changes (Config fields renaming, DeviceWrapper and Model
non-exhaustiveness, changed Display implementation for Model).
|
|
|
|
|
| |
This patch uses the progressing crate to display a progress bar for the
fill command if the output is printed to a TTY.
|
|
|
|
|
|
| |
This patch adds the is_tty field to the Context struct that indicates
whether stdout is a TTY. This allows us to use TTY features like moving
the cursor in our output.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change bumps the version of the crate to 0.3.5. The following
notable changes have been made since 0.3.4:
- Added support for configuration files
- Added support for configuration files that can be used to set
default values for some arguments
- Added toml dependency in version 0.5.6
- Added serde dependency in version 1.0.114
- Added envy dependency in version 0.4.2
- Added merge dependency in version 0.1.0
- Added directories dependency in version 3.0.1
- Reworked connection handling for multiple attached Nitrokey devices:
- Fail if multiple attached devices match the filter options (or no filter
options are set)
- Added --serial-number option that restricts the serial number of the
device to connect to
- Added --usb-path option that restricts the USB path of the device to
connect to
- Bumped structopt dependency to 0.3.17
|
|
|
|
|
|
|
|
|
|
| |
This change updates the structopt crate to version 0.3.17. We need this
version as it fixes a compilation error [0] when using the
external_subcommand enum variant annotation provided by the crate. This
functionality will be used in a follow up change that enables usage of
user provided extensions.
[0]: https://github.com/TeXitoi/structopt/issues/424
|
|
|
|
|
|
|
|
|
| |
This patch uses the directories crate to query the appropriate path for
the configuration files. For Linux, paths according to the XDG Base
Directory Specification are used.
Note that directories does not yet support the XDG_CONFIG_DIRS variable
for system-wide configuration files. Therefore we only use a user
configuration file.
|
|
|
|
|
|
|
|
| |
This patch uses the envy crate to parse the environment. A variable
NITROCLI_KEY can be used to overwrite the configuration for *key*. This
has the side effect that the NITROCLI_NO_CACHE variable is evaluated as
a boolean variable (instead of only checking whether it is set). We
also accept two new variables, NITROCLI_MODEL and NITROCLI_VERBOSITY.
|
|
|
|
|
|
|
|
|
| |
This patch implements basic configuration handling that reads a
configuration file and stores the parsed data in the ExecCtx and RunCtx
structs. It supports three configuration items:
- model (previously only --model)
- no_cache (previously only NITROCLI_NO_CACHE)
- verbosity (previously only --verbose)
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change bumps the version of the crate to 0.3.4. The following
notable changes have been made since 0.3.3:
- Changed default OTP format from hex to base32
- Improved error reporting format and fidelity
- Added anyhow dependency in version 1.0.32
- Updated minimum required Rust version to 1.42.0
- Bumped nitrokey dependency to 0.7.1
- Bumped proc-macro2 dependency to 1.0.19
- Bumped syn dependency to 1.0.36
|
|
|
|
|
| |
This change updates the syn dependency we consume to 1.0.36 and
proc-macro2 to 1.0.19.
|
|
|
|
|
|
|
|
|
|
|
| |
This patch changes our error handling approach from the ground up:
instead of having a globally used Error enum that contains variants for
all possible errors, we now use anyhow's Error type. This approach is
more dynamic (and not statically typed), but it allows for more fine
grained error messages and overall more user-friendly error reporting.
Overall it also is a net simplification. While we have one dynamic cast
now, in order to be able to handle erroneous password/PIN entries
correctly, that is considered a reasonable compromise.
|
|
|
|
|
|
|
|
|
| |
This change updates the nitrokey dependency we consume to 0.7.1. With
this version the crate's Error type got reworked slightly, allowing it
to implement Sync and Send. It furthermore no longer duplicates
information available through the source() method in its Display
implementation. Both these changes will enable us to switch over to
using the anyhow crate for error handling in nitrocli in the future.
|
|
|
|
| |
This change updates the nitrokey-test development dependency to 0.4.0.
|
|
|
|
|
|
|
|
|
|
|
| |
This change bumps the version of the crate to 0.3.3. The following
notable changes have been made since 0.3.2:
- Added bash completion support via shell-complete utility program
- Updated minimum required Rust version to 1.40.0
- Converted Cargo.lock to new lock file format
- Bumped libc dependency to 0.2.69
- Bumped structopt dependency to 0.3.13
- Bumped various transitive dependencies to most recent versions
|
|
|
|
|
|
|
|
|
| |
Since version 1.38.0 of Rust, Cargo has built in support for a new lock
file format that aims at reducing merge conflicts of unrelated changes.
Given that we require an even more recent version of Rust, it seems safe
to switch over to this new format (which by now is the default for new
projects anyway).
This patch changes the format of Cargo.lock accordingly.
|
|
|
|
|
| |
This change updates transitive dependencies of the nitrokey crate to
their most recent versions.
|
|
|
|
|
| |
This change updates the regex crate to version 1.3.7. Transitive
dependencies are updated as well.
|
|
|
|
|
| |
This change updates the structopt crate to version 0.3.13. Transitive
dependencies are updated as well.
|
|
|
|
| |
This change updates the libc crate to version 0.2.69.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change bumps the version of the crate to 0.3.2. The following
notable changes have been made since 0.3.1:
- Added the list command that lists all attached Nitrokey devices
- Reworked argument handling:
- Added structopt dependency in version 0.3.7
- Replaced argparse with structopt
- Removed argparse dependency
- Made the --verbose and --model options global
- Removed vendored dependencies and moved source code into repository
root
- Bumped nitrokey dependency to 0.6.0
- Bumped quote dependency to 1.0.3
- Bumped syn dependency to 1.0.14
|
|
|
|
| |
This change updates the quote crate to version 1.0.3.
|
|
|
|
| |
This change updates the syn crate to version 1.0.14.
|
|
|
|
|
|
| |
nitrokey 0.6.0 introduced the SerialNumber struct (instead of
representing serial numbers as strings). We no longer have to manually
format the serial number as SerialNumber implements Display.
|
|
|
|
|
|
| |
This change updates the version of the nitrokey crate that we use to
0.5.1. As part of that, it replaces occurrences of Storage::get_status
with Storage::get_storage_status as the method has been renamed.
|
|
|
|
|
|
| |
As we have replaced argparse with structopt, we no longer need it as a
dependency. This patch removes the dependency from Cargo.toml and
deletes the included copy.
|
|
|
|
|
| |
This patch series replaces argparse with structopt in the argument
handling code. As a first step, we need structopt as a dependency.
|
|
Now that all vendored dependencies have been removed, this change moves
the program's source code from the nitrocli/ directory into the root of
the repository.
|