public IEnumerable <Chromium.Login> GetAllChromiumLoginsBy(Chromium.LoginHeader by, object value) { List <Chromium.Login> logins = new List <Chromium.Login>(); // Add Logins to list: logins.AddRange(CG.GetLoginsBy(by, value)); logins.AddRange(BG.GetLoginsBy(by, value)); logins.AddRange(VG.GetLoginsBy(by, value)); logins.AddRange(OG.GetLoginsBy(by, value)); logins.AddRange(OGG.GetLoginsBy(by, value)); logins.AddRange(EG.GetLoginsBy(by, value)); return(logins); }
public Tuple <IEnumerable <Chromium.Login>, IEnumerable <Firefox.Login> > GetAllLoginsByChromium(Chromium.LoginHeader by, object value) => new Tuple <IEnumerable <Chromium.Login>, IEnumerable <Firefox.Login> >(GetAllChromiumLoginsBy(by, value), FG.GetLogins());
public IEnumerable <Chromium.Login> GetLoginsBy(Chromium.LoginHeader by, object value, byte[] key) { List <Chromium.Login> password = new List <Chromium.Login>(); if (value == null) { throw new ArgumentNullException("value"); // throw a ArgumentNullException if value was not defined } if (!LoginsExist()) { throw new LoginDatabaseNotFoundException(ChromiumBrowserLoginDataPath); // throw a LoginDatabaseNotFoundException if the Login DB was not found } // Copy the database to a temporary location because it could be already in use string tempFile = GetTempFileName(); File.Copy(ChromiumBrowserLoginDataPath, tempFile); using (var conn = new System.Data.SQLite.SQLiteConnection($"Data Source={tempFile};pooling=false")) using (var cmd = conn.CreateCommand()) { cmd.CommandText = $"{LoginCommandText} WHERE {by} = '{value}'"; conn.Open(); using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { // Store retrieved information: password.Add(new Chromium.Login() { OriginUrl = reader.GetString(0), ActionUrl = reader.GetString(1), UsernameElement = reader.GetString(2), UsernameValue = reader.GetString(3), PasswordElement = reader.GetString(4), PasswordValue = DecryptWithKey((byte[])reader[5], key, 3), SubmitElement = reader.GetString(6), SignonRealm = reader.GetString(7), DateCreated = reader.GetInt64(8), IsBlacklistedByUser = reader.GetBoolean(9), Scheme = reader.GetInt32(10), PasswordType = reader.GetInt32(11), TimesUsed = reader.GetInt32(12), FormData = DecryptWithKey((byte[])reader[13], key, 3), DisplayName = reader.GetString(14), IconUrl = reader.GetString(15), FederationUrl = reader.GetString(16), SkipZeroClick = reader.GetInt32(17), GenerationUploadStatus = reader.GetInt32(18), PossibleUsernamePairs = DecryptWithKey((byte[])reader[19], key, 3), Id = reader.GetInt32(20), DateLastUsed = reader.GetInt64(21), MovingBlockedFor = DecryptWithKey((byte[])reader[22], key, 3), DatePasswordModified = reader.GetInt64(23), }); } } conn.Close(); } File.Delete(tempFile); return(password); }
public IEnumerable <Chromium.Login> GetLoginsBy(Chromium.LoginHeader by, object value) => GetLoginsBy(by, value, GetKey());