public void PingSendCorrectBytes() { // Setup var scenario = HidScenario.Build(); BytesHolder holder = null; scenario.Write(report => { var sizeHi = report.Data.Array[report.Data.Offset + 5]; var sizeLo = report.Data.Array[report.Data.Offset + 6]; var size = (sizeHi << 8) | sizeLo; holder = new BytesHolder(size); AssertWriteInitPacket(report.Data, TestChannel, U2FHidCommand.Ping, holder); }); scenario.Read(() => new HidInputReport(BuildInitPacket(TestChannel, U2FHidCommand.Ping, holder))); var hid = CreateHidMock(); var device = new U2FHidKey(hid.Object, false); InitDevice(hid, device); scenario.Run(hid); // Act device.Ping().Wait(); // Assert scenario.End(); }
public override void ChannelRead(IChannelHandlerContext context, object message) { BytesHolder buffer = message as BytesHolder; var data = buffer.Bytes; var transportMessage = _transportMessageDecoder.Decode(data); context.FireChannelRead(transportMessage); }
static U2FHidDeviceInfo InitDevice(Mock <IHidDevice> hid, U2FHidKey device) { // Setup var scenario = HidScenario.Build(); var nonce = new BytesHolder(8); scenario.Write(report => AssertWriteInitPacket(report.Data, 0xffffffff, U2FHidCommand.Init, nonce)); scenario.Read(() => new HidInputReport(BuildInitPacket( 0xffffffff, U2FHidCommand.Init, nonce, (uint)TestChannel, (byte)1, (byte)2, (byte)3, (byte)4, (byte)U2FDeviceCapabilities.Wink))); scenario.Run(hid); var init = device.InitAsync().Result; scenario.End(); return(init); }