Пример #1
0
        private void AuthenticateToServer(Fido2AuthenticationResponse fido2AuthenticationResponse)
        {
            string Tag = "AuthenticateToServer";

            if (!fido2AuthenticationResponse.IsSuccess)
            {
                log.Error(Tag, GetString(Resource.String.authn_fail), fido2AuthenticationResponse);
                return;
            }

            IFidoServer fidoServer = new FidoServerSimulator();

            if (fidoServer == null)
            {
                log.Error(Tag, GetString(Resource.String.connect_server_err));
                return;
            }

            ServerAssertionResultRequest request = ServerUtils.ConvertToServerAssertionResultRequest(fido2AuthenticationResponse.AuthenticatorAssertionResponse);

            ServerResponse response = fidoServer.GetAssertionResult(request);

            if (!ServerStatus.Ok.Equals(response.GetStatus()))
            {
                log.Error(Tag, GetString(Resource.String.authn_fail) + response.GetErrorMessage());
                return;
            }
            Log.Info(Tag, GetString(Resource.String.authn_success));
        }
Пример #2
0
        protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);
            if (resultCode != Result.Ok)
            {
                ShowToast("Unknown error.");
                return;
            }
            switch (requestCode)
            {
            case Fido2ClientCommon.RegistrationRequest:
            {
                Fido2RegistrationResponse fido2RegistrationResponse = fido2Client.GetFido2RegistrationResponse(data);
                RegisterToServer(fido2RegistrationResponse);
                log.Info(Tag, "fido2RegistrationResponse", fido2RegistrationResponse);
            }
            break;

            case Fido2ClientCommon.AuthenticationRequest:
            {
                Fido2AuthenticationResponse fido2AuthenticationResponse = fido2Client.GetFido2AuthenticationResponse(data);
                if (fido2AuthenticationResponse.AuthenticatorAssertionResponse == null || fido2AuthenticationResponse.AuthenticatorAssertionResponse.Signature == null)
                {
                    break;
                }
                AuthenticateToServer(fido2AuthenticationResponse);
                log.Info(Tag, "fido2AuthenticationResponse", fido2AuthenticationResponse);
            }
            break;

            default:
                break;
            }
        }