fwupd/plugins/nitrokey
Richard Hughes cddf5b5b89 Only auto-add counterpart GUIDs when required
Doing this unconditionally means we accidentally 'bleed' one device mode into
another in a non-obvious way. For instance, a device might have two operating
modes with different GUIDs. If firmware is supplied for both modes in the same
cabinet archive then we might accidentally match the 'wrong' firmware when
the daemon has observed a mode switch and added the counterpart GUIDs.

We only really need the counterpart GUIDs when switching between Jabra, 8bitdo
and DFU devices where the DFU bootloader VID:PID is not manually tagged with
`CounterpartGuid` in a quirk file. In the general case lets keep it simple to
avoid difficult to find bugs.
2020-04-08 13:55:39 +01:00
..
fu-nitrokey-common.c Remove the unused Emacs indenting headers from all source files 2018-08-09 12:48:04 +01:00
fu-nitrokey-common.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-nitrokey-device.c Only auto-add counterpart GUIDs when required 2020-04-08 13:55:39 +01:00
fu-nitrokey-device.h nitrokey: Convert to use FuHidDevice 2020-03-28 12:46:03 +00:00
fu-plugin-nitrokey.c trivial: stop including fu-hash.h as part of fu-plugin-vfuncs.h 2019-11-25 09:29:46 +00:00
fu-self-test.c nitrokey: Correct Nitrokey Storage invalid firmware version read 2019-01-25 09:53:05 +00:00
lsusb.txt Add a nitrokey plugin 2017-11-13 16:25:46 +00:00
meson.build Convert libfwupdprivate to a shared library libfwupdplugin 2019-11-27 11:32:43 +00:00
nitrokey.quirk Add support for counterpart GUIDs 2018-08-30 16:55:41 +01:00
README.md trivial: Document the use of vendor-id in each plugin 2019-12-11 18:10:44 +00:00

Nitrokey Support

Introduction

This plugin is used to get the correct version number on Nitrokey storage devices. These devices have updatable firmware but so far no updates are available from the vendor.

The device is switched to a DFU bootloader only when the secret firmware pin is entered into the nitrokey-app tool. This cannot be automated.

GUID Generation

These devices use the standard USB DeviceInstanceId values, e.g.

  • USB\VID_20A0&PID_4109&REV_0001
  • USB\VID_20A0&PID_4109
  • USB\VID_20A0

Vendor ID Security

The vendor ID is set from the USB vendor, in this instance set to USB:0x20A0 in runtime mode and USB:0x03EB in bootloader mode.