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());
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 public IEnumerable <Chromium.Login> GetLoginsBy(Chromium.LoginHeader by, object value) => GetLoginsBy(by, value, GetKey());