ctaphid 0.3.1

Rust implementation of the CTAPHID protocol
Documentation
<!---
Copyright (C) 2021-2022 Robin Krahl <robin.krahl@ireas.org>
SPDX-License-Identifier: CC0-1.0
-->

# v0.3.1 (2022-08-05)

This releases fixes the docs.rs build.

- Fix docs.rs build.

# v0.3.0 (2022-08-05)

This release mostly contains improvements that make it easier to use this
crate.

- Re-export `ctaphid-types` as `types`.
- Make error types `Send` and `Sync`.
- Remove hidapi backend selection features.
- Add `DeviceInfo::path` function.
- Add more log messages.

# v0.2.0 (2022-07-31)

This release adds support for the CBOR, LOCK and MSG commands, simplifies the
device handling and improves the stability of the crate.

- Move the CTAPHID data structures into the ctaphid-types crate.
- Fix `Error` descriptions.
- Add `is_known_device` function for identifying known CTAPHID devices by their
  vendor and product ID.
- Simplify device handling.  To properly discover CTAPHID devices, we would
  have to read the usage page from the HID descriptor.  This is currently not
  working reliably with hidapi.  Until this is fixed, users should manually
  select an appropriate `hidapi::HidDevice` and construct a `ctaphid::Device`
  from it.
  - Remove the `DeviceInfo` and `Devices` structs and the `list` function.
- Make `Device` generic over `HidDevice` implementations, for example
  `hidapi::HidDevice`.
  - Make `hidapi` dependency optional.
- Improve init command handling:
  - Parse init response and expose all fields in the `Device` struct.
  - Use random nonce to request a channel.
  - Wait until a response with a matching nonce is received.
- Ignore packets on the wrong channel.
- Add timeout for receiving response packets.
- Add support for these CTAPHID commands:
  - CBOR
  - KEEPALIVE
  - LOCK
  - MSG
- Check if the CBOR, MSG and WINK commands are supported before executing them.

# v0.1.1 (2021-10-17)

This patch releases adds features to select the hidapi backend.

# v0.1.0 (2021-10-17)

Initial release with support for the ping, wink, error and vendor-specific
commands and partial support for the init command.