Exemple #1
0
        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);
        }
Exemple #3
0
        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);
        }