aboutsummaryrefslogtreecommitdiff
path: root/src/device.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/device.rs')
-rw-r--r--src/device.rs20
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")