public async Task <IActionResult> WindowsHello(WindowsHelloViewModel model, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (!ModelState.IsValid) { return(RedirectToAction(nameof(Login))); } var user = await _userManager.FindByIdAsync(model.UserId); if (user?.PublicKey == null) { return(RedirectToAction(nameof(Login))); } var authenticator = new FidoAuthenticator(user.PublicKey, HttpContext.Session.GetString("Challenge")); if (!authenticator.ValidateSignature(model.Signature, model.AuthenticatorData, model.ClientData)) { return(RedirectToAction(nameof(Login))); } await _signInManager.SignInAsync(user, false); return(RedirectToLocal(returnUrl)); }
static void Main() { var v = FidoAuthenticator.validateSignature(pk, d, a, s, challenge) ? "verified" : "unverified"; Console.WriteLine(v); }