private static void ResetSecureSecret(
            TLPasswordSettings passwordSettings, TLPassword passwordBase, TLString password,
            TLAuthorizationForm authorizationForm, IList <TLSecureValue> secureValues,
            IMTProtoService mtProtoService, IStateService stateService, INavigationService navigationService)
        {
            var passwordSettings83 = passwordSettings as TLPasswordSettings83;

            if (passwordSettings83 == null)
            {
                return;
            }

            var password84 = passwordBase as TLPassword84;

            if (password84 == null)
            {
                return;
            }

            var newSecureSettings = new TLSecureSecretSettings
            {
                SecureAlgo     = new TLSecurePasswordKdfAlgoUnknown(),
                SecureSecret   = TLString.Empty,
                SecureSecretId = new TLLong(0)
            };

            var newSettings = new TLPasswordInputSettings83
            {
                Flags             = new TLInt(0),
                NewSecureSettings = newSecureSettings,
            };

            mtProtoService.GetPasswordAsync(
                resul1 =>
            {
                var srpParams = resul1 as IPasswordSRPParams;
                if (srpParams == null)
                {
                    return;
                }

                var currentPasswordHash = passwordBase.CurrentPasswordHash ?? TLString.Empty;
                mtProtoService.UpdatePasswordSettingsAsync(SRP.GetCheck(currentPasswordHash, srpParams.SRPId, srpParams.SRPB, srpParams.CurrentAlgo), newSettings,
                                                           result2 =>
                {
                    passwordSettings83.SecureSettings = newSettings.NewSecureSettings;

                    NavigateToPassportCommon(
                        passwordSettings83, passwordBase, password,
                        authorizationForm, secureValues,
                        mtProtoService, stateService, navigationService);
                },
                                                           error2 => { });
            },
                error1 => { });
        }
示例#2
0
        public override void DeserializeBody(BinaryReader br)
        {
            Flags = br.ReadInt32();
            if ((Flags & 1) != 0)
            {
                NewAlgo = (TLAbsPasswordKdfAlgo)ObjectUtils.DeserializeObject(br);
            }
            else
            {
                NewAlgo = null;
            }

            if ((Flags & 1) != 0)
            {
                NewPasswordHash = BytesUtil.Deserialize(br);
            }
            else
            {
                NewPasswordHash = null;
            }

            if ((Flags & 1) != 0)
            {
                Hint = StringUtil.Deserialize(br);
            }
            else
            {
                Hint = null;
            }

            if ((Flags & 2) != 0)
            {
                Email = StringUtil.Deserialize(br);
            }
            else
            {
                Email = null;
            }

            if ((Flags & 4) != 0)
            {
                NewSecureSettings = (TLSecureSecretSettings)ObjectUtils.DeserializeObject(br);
            }
            else
            {
                NewSecureSettings = null;
            }
        }
示例#3
0
        public override void DeserializeBody(BinaryReader br)
        {
            Flags = br.ReadInt32();
            if ((Flags & 1) != 0)
            {
                Email = StringUtil.Deserialize(br);
            }
            else
            {
                Email = null;
            }

            if ((Flags & 2) != 0)
            {
                SecureSettings = (TLSecureSecretSettings)ObjectUtils.DeserializeObject(br);
            }
            else
            {
                SecureSettings = null;
            }
        }