/// <summary> /// Verifies the assertion response from the browser/authr to assert existing credentials and authenticate a user. /// </summary> /// <returns></returns> public async Task <AssertionVerificationResult> MakeAssertionAsync(AuthenticatorAssertionRawResponse assertionResponse, AssertionOptions originalOptions, byte[] storedPublicKey, uint storedSignatureCounter, IsUserHandleOwnerOfCredentialIdAsync isUserHandleOwnerOfCredentialIdCallback, byte[] requestTokenBindingId = null) { var parsedResponse = AuthenticatorAssertionResponse.Parse(assertionResponse); var result = await parsedResponse.VerifyAsync(originalOptions, Config.Origin, storedPublicKey, storedSignatureCounter, isUserHandleOwnerOfCredentialIdCallback, requestTokenBindingId); return(result); }
internal static AuthenticatorAssertionResponse Parse(AuthenticatorAssertionRawResponse rawResponse) { var response = new AuthenticatorAssertionResponse(rawResponse.Response.ClientDataJson) { // we will need to access raw in Verify() Raw = rawResponse, AuthenticatorData = rawResponse.Response.AuthenticatorData, Signature = rawResponse.Response.Signature, UserHandle = rawResponse.Response.UserHandle }; return(response); }