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)); }
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; } }