Exemple #1
0
        public UwpHidDeviceInformation([NotNull] UwpHidDeviceFactory factory, [NotNull] DeviceInformation deviceInformation)
        {
            if (factory == null)
            {
                throw new ArgumentNullException(nameof(factory));
            }
            if (deviceInformation == null)
            {
                throw new ArgumentNullException(nameof(deviceInformation));
            }

            this.factory           = factory;
            this.deviceInformation = deviceInformation;
        }
 async void U2fClicked(object sender, RoutedEventArgs e)
 {
     textBox.Text = "";
     var hidFactory = new UwpHidDeviceFactory(Dispatcher);
     var u2FFactory = new U2FHidKeyFactory(hidFactory);
     var u2FDevices = await u2FFactory.FindAllAsync();
     
     var sb = new StringBuilder();
     foreach (var device in u2FDevices)
     {
         sb.AppendLine($"{device.Product} (By {device.Manufacturer})");
     }
     textBox.Text = sb.ToString();
 }
        public UwpHidDeviceInformation([NotNull] UwpHidDeviceFactory factory, [NotNull] DeviceInformation deviceInformation)
        {
            if (factory == null)
            {
                throw new ArgumentNullException(nameof(factory));
            }
            if (deviceInformation == null)
            {
                throw new ArgumentNullException(nameof(deviceInformation));
            }

            this.factory = factory;
            this.deviceInformation = deviceInformation;
        }
        async void EnrollClicked(object sender, RoutedEventArgs e)
        {
            var keyDict = new ConcurrentDictionary<IKeyId, bool>();
            textBox.Text = "";
            var hidFactory = new UwpHidDeviceFactory(Dispatcher);
            var keyFactory = new U2FHidKeyFactory(hidFactory);

            var dataStore = new InMemoryServerDataStore(new GuidSessionIdGenerator());
            var server = new U2FServerReferenceImpl(
                new ChallengeGenerator(),
                dataStore,
                new BouncyCastleServerCrypto(),
                new[] { "http://example.com", "https://example.com" });

            var myClient = new U2FClient(
                new DummySender("http://example.com", new JObject()),
                keyFactory);

            var signRequests = server.GetSignRequests("vbfox", "http://example.com");
            var regRequest = server.GetRegistrationRequest("vbfox", "http://example.com");
            var cts = new CancellationTokenSource(TimeSpan.FromMinutes(10));

            textBox.Text += "Register...\r\n";
            var x = await myClient.Register(new[] { regRequest }, signRequests, cts.Token);
            textBox.Text += "Register done, sending to server\r\n";

            var serverResp = server.ProcessRegistrationResponse(x, ToUnixTimeMilliseconds(SystemClock.Instance.Now));
            textBox.Text += "Server OK\r\n";
            textBox.Text += $"{serverResp}\r\n";
        }