AccountPassword.deserialize constructor

AccountPassword.deserialize(
  1. BinaryReader reader
)

Deserialize.

Implementation

factory AccountPassword.deserialize(BinaryReader reader) {
  // Read [AccountPassword] fields.
  final flags = reader.readInt32();
  final hasRecovery = (flags & 1) != 0;
  final hasSecureValues = (flags & 2) != 0;
  final hasPassword = (flags & 4) != 0;
  final hasCurrentAlgoField = (flags & 4) != 0;
  final currentAlgo =
      hasCurrentAlgoField ? reader.readObject() as PasswordKdfAlgoBase : null;
  final hasSrpBField = (flags & 4) != 0;
  final srpB = hasSrpBField ? reader.readBytes() : null;
  final hasSrpIdField = (flags & 4) != 0;
  final srpId = hasSrpIdField ? reader.readInt64() : null;
  final hasHintField = (flags & 8) != 0;
  final hint = hasHintField ? reader.readString() : null;
  final hasEmailUnconfirmedPatternField = (flags & 16) != 0;
  final emailUnconfirmedPattern =
      hasEmailUnconfirmedPatternField ? reader.readString() : null;
  final newAlgo = reader.readObject() as PasswordKdfAlgoBase;
  final newSecureAlgo = reader.readObject() as SecurePasswordKdfAlgoBase;
  final secureRandom = reader.readBytes();
  final hasPendingResetDateField = (flags & 32) != 0;
  final pendingResetDate =
      hasPendingResetDateField ? reader.readDateTime() : null;
  final hasLoginEmailPatternField = (flags & 64) != 0;
  final loginEmailPattern =
      hasLoginEmailPatternField ? reader.readString() : null;

  // Construct [AccountPassword] object.
  final returnValue = AccountPassword(
    hasRecovery: hasRecovery,
    hasSecureValues: hasSecureValues,
    hasPassword: hasPassword,
    currentAlgo: currentAlgo,
    srpB: srpB,
    srpId: srpId,
    hint: hint,
    emailUnconfirmedPattern: emailUnconfirmedPattern,
    newAlgo: newAlgo,
    newSecureAlgo: newSecureAlgo,
    secureRandom: secureRandom,
    pendingResetDate: pendingResetDate,
    loginEmailPattern: loginEmailPattern,
  );

  // Now return the deserialized [AccountPassword].
  return returnValue;
}