async void EnrollClicked(object sender, RoutedEventArgs e) { try { ActionstextBox.Text = ""; 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(EnrollUserName.Text, EnrollAppId.Text); var regRequest = server.GetRegistrationRequest(EnrollUserName.Text, EnrollAppId.Text); var cts = new CancellationTokenSource(TimeSpan.FromMinutes(1)); ActionstextBox.Text += "Register...\r\n"; var x = await myClient.Register(new[] { regRequest }, signRequests, cts.Token); ActionstextBox.Text += "Register done, sending to server\r\n"; var serverResp = server.ProcessRegistrationResponse(x, ToUnixTimeMilliseconds(SystemClock.Instance.Now)); ActionstextBox.Text += "Server OK\r\n"; ActionstextBox.Text += $"{serverResp}\r\n"; } catch (Exception exception) { ActionstextBox.Text += "\r\n\r\n" + exception.ToString(); } }
private static async Task TestNew2() { var hidFactory = Win32HidDeviceFactory.Instance; var keyFactory = new U2FHidKeyFactory(hidFactory); var dataStore = new InMemoryServerDataStore(new GuidSessionIdGenerator()); LoadDataStore(dataStore); 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); Console.WriteLine("Register or Sign ? (r/s)"); var mode = Console.ReadLine(); if (mode == "s") { var signRequests = server.GetSignRequests("vbfox", "http://example.com"); Console.WriteLine("Sign requests obtained ({0})", signRequests.Count); var cts = new CancellationTokenSource(TimeSpan.FromMinutes(10)); var x = await myClient.Sign(signRequests, cts.Token); Console.WriteLine("Signature done {0}", x); if (x != null) { var serverResp = server.ProcessSignResponse(x); Console.WriteLine("Server ok: {0}", serverResp); SaveDataStore(dataStore); } } else if (mode == "r") { var signRequests = server.GetSignRequests("vbfox", "http://example.com"); var regRequest = server.GetRegistrationRequest("vbfox", "http://example.com"); var cts = new CancellationTokenSource(TimeSpan.FromMinutes(10)); var x = await myClient.Register(new[] { regRequest }, signRequests, cts.Token); Console.WriteLine("Authentication done {0}", x); if (x != null) { var serverResp = server.ProcessRegistrationResponse(x, ToUnixTimeMilliseconds(SystemClock.Instance.Now)); Console.WriteLine("Server ok: {0}", serverResp); SaveDataStore(dataStore); } } else { Console.WriteLine("???"); } Console.ReadLine(); return; }
public virtual void TestGetRegistrationRequest() { var u2FServer = new U2FServerReferenceImpl(mockChallengeGenerator.Object, mockDataStore.Object, crypto, TRUSTED_DOMAINS); var registrationRequest = u2FServer.GetRegistrationRequest(ACCOUNT_NAME, APP_ID_ENROLL); var expected = new RegisterRequest("U2F_V2", SERVER_CHALLENGE_ENROLL_BASE64, APP_ID_ENROLL, SESSION_ID); Check.That(registrationRequest).IsEqualTo(expected); }
public virtual void TestGetRegistrationRequest() { var u2FServer = new U2FServerReferenceImpl(mockChallengeGenerator.Object, mockDataStore.Object, crypto, TRUSTED_DOMAINS); var registrationRequest = u2FServer.GetRegistrationRequest(ACCOUNT_NAME, APP_ID_ENROLL); var expected = new RegisterRequest("U2F_V2", SERVER_CHALLENGE_ENROLL_BASE64, APP_ID_ENROLL, SESSION_ID); Check.That(registrationRequest).IsEqualTo(expected); }
private static async Task TestNew2() { var hidFactory = Win32HidDeviceFactory.Instance; var keyFactory = new U2FHidKeyFactory(hidFactory); var dataStore = new InMemoryServerDataStore(new GuidSessionIdGenerator()); LoadDataStore(dataStore); 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); Console.WriteLine("Register or Sign ? (r/s)"); var mode = Console.ReadLine(); if (mode == "s") { var signRequests = server.GetSignRequests("vbfox", "http://example.com"); Console.WriteLine("Sign requests obtained ({0})", signRequests.Count); var cts = new CancellationTokenSource(TimeSpan.FromMinutes(10)); var x = await myClient.Sign(signRequests, cts.Token); Console.WriteLine("Signature done {0}", x); if (x != null) { var serverResp = server.ProcessSignResponse(x); Console.WriteLine("Server ok: {0}", serverResp); SaveDataStore(dataStore); } } else if (mode == "r") { var signRequests = server.GetSignRequests("vbfox", "http://example.com"); var regRequest = server.GetRegistrationRequest("vbfox", "http://example.com"); var cts = new CancellationTokenSource(TimeSpan.FromMinutes(10)); var x = await myClient.Register(new[] { regRequest }, signRequests, cts.Token); Console.WriteLine("Authentication done {0}", x); if (x != null) { var serverResp = server.ProcessRegistrationResponse(x, ToUnixTimeMilliseconds(SystemClock.Instance.Now)); Console.WriteLine("Server ok: {0}", serverResp); SaveDataStore(dataStore); } } else { Console.WriteLine("???"); } Console.ReadLine(); return; }
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"; }