diff options
Diffstat (limited to 'src/device.rs')
-rw-r--r-- | src/device.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/device.rs b/src/device.rs index ea732e6..31f4293 100644 --- a/src/device.rs +++ b/src/device.rs @@ -4,9 +4,29 @@ use usb_device::bus::{UsbBus, UsbBusAllocator}; use usb_device::device::{UsbDevice, UsbDeviceBuilder, UsbVidPid}; +use crate::hid::{HidDevice, Protocol, Subclass}; + const VID_CLAY_LOGIC: u16 = 0x20a0; const PID_NITROKEY_PRO: u16 = 0x4108; +pub struct Nitrokey {} + +impl Nitrokey { + pub fn new() -> Self { + Nitrokey {} + } +} + +impl HidDevice for Nitrokey { + fn subclass(&self) -> Subclass { + Subclass::BootInterface + } + + fn protocol(&self) -> Protocol { + Protocol::Keyboard + } +} + pub fn create_usb_device<B: UsbBus>(alloc: &UsbBusAllocator<B>) -> UsbDevice<'_, B> { UsbDeviceBuilder::new(alloc, UsbVidPid(VID_CLAY_LOGIC, PID_NITROKEY_PRO)) .manufacturer("Nitrokey/ntw") |