예제 #1
0
        private void RegisterToServer(Fido2RegistrationResponse fido2RegistrationResponse)
        {
            string Tag = "RegisterToServer";

            if (!fido2RegistrationResponse.IsSuccess)
            {
                log.Error(Tag, GetString(Resource.String.reg_fail), fido2RegistrationResponse);
                return;
            }
            IFidoServer fidoServer = new FidoServerSimulator();

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

            ServerAttestationResultRequest request = ServerUtils.ConvertToServerAttestationResultRequest(fido2RegistrationResponse.AuthenticatorAttestationResponse);

            ServerResponse response = fidoServer.GetAttestationResult(request);

            if (!ServerStatus.Ok.Equals(response.GetStatus()))
            {
                log.Error(Tag, GetString(Resource.String.reg_fail) + response.GetErrorMessage());
                return;
            }
            GetRegInfo(fidoServer);
            log.Info(Tag, GetString(Resource.String.reg_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;
            }
        }