v0.7.5
CLI: the global device selector is now --device
The global flag that selects a key by its friendly name was renamed:
keyroostctl --name mykey fido info # ≤ 0.7.4
keyroostctl --device mykey fido info # 0.7.5+
--name collided with the --name option of the fingerprint
subcommands (fido fingerprint-enroll / fingerprint-rename),
where it names the fingerprint. No compatibility alias is provided — an
alias would recreate the exact collision the rename fixes.
Under the fingerprint subcommands, --name still parses — it means the
fingerprint's label, not the device. A script that passes the old global
spelling there won't error; it will name the fingerprint instead. Everywhere else
the old spelling fails loudly with an "unexpected argument" error.
OATH: partial listings are now reported
oath list prints a stderr warning when the key holds
entries that could not be decoded (written by another tool, or with a non-UTF-8
name) — previously they were silently omitted. The stdout / --json
output format is unchanged, so scripts that only read stdout are unaffected.
Library (crates.io) API changes
For consumers of the published crates — CLI and GUI users are unaffected.
| Crate | Change |
|---|---|
keyroost-oath |
parse_list returns Listing { credentials, skipped }
instead of Vec<CredentialInfo>; skipped > 0
means the listing is partial. |
keyroost-transport |
OathSession::list returns oath::Listing;
TransportError::AuthFailed.tries_remaining is now
Option<u8> (None = the card gave no count —
don't render it as 0). |
keyroost-piv |
pad_pin (and the VERIFY / CHANGE / UNBLOCK builders using it)
asserts a 6–8 byte PIN instead of silently truncating longer input. Validate
length before calling, as the in-tree transport does. |
keyroost-ctap |
The CtapTransport trait gains read_timeout() (a
default impl is provided, so existing implementations keep compiling).
reset() and the bio-enroll operations now restore the
caller's timeout rather than the crate default. |
v0.6.0 — command names moved under molto / fido
The Molto2 and FIDO commands were nested under molto and
fido groups. The old flat names were removed — update scripts as
follows:
| Old (≤ 0.5.x) | New (0.6.0+) |
|---|---|
keyroostctl info | keyroostctl molto info |
keyroostctl set-seed … | keyroostctl molto seed … |
keyroostctl set-title … | keyroostctl molto title … |
keyroostctl configure … | keyroostctl molto config … |
keyroostctl sync-time … | keyroostctl molto sync-time … |
keyroostctl set-customer-key … | keyroostctl molto customer-key … |
keyroostctl import … | keyroostctl molto import … |
keyroostctl import-file … | keyroostctl molto import-file … |
keyroostctl factory-reset … | keyroostctl molto reset … |
keyroostctl fido-info | keyroostctl fido info |
keyroostctl fido-reset … | keyroostctl fido reset … |
keyroostctl fido-pin-set … | keyroostctl fido pin-set … |
keyroostctl fido-pin-change … | keyroostctl fido pin-change … |
keyroostctl fido-pin-retries | keyroostctl fido pin-retries |
keyroostctl fido-creds-list … | keyroostctl fido creds-list … |
keyroostctl fido-creds-metadata … | keyroostctl fido creds-metadata … |
keyroostctl fido-creds-delete … | keyroostctl fido creds-delete … |
keyroostctl manpage > x.1 | keyroostctl manpage ./man |
The customer-key flags (--key, --key-ascii,
--key-env, --key-ascii-env) moved under
molto — e.g. keyroostctl molto customer-key --key-env K.
The piv, oath, openpgp, otp,
key-name, list, doctor, and
completions commands were unchanged.