-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Prevent iterating over the same ienumerable set twice * Trim and lower the username before doing the distinct operation as it's trimmed and lowered on the server side anyway. * Ensure that the entry returned by the username checker actually has the same username, not just the same domain. * For a username breach, if all entities with that username have been updated more rencently than the breach, skip that breach. * Display the breach description and the compromised data classs on the BreachEntriesDialog for each entry. * Added a combined breach checker that runs through all the breach checkers and returns all results at once.
- Loading branch information
1 parent
f17a409
commit 0c1ba7a
Showing
13 changed files
with
255 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.Linq; | ||
using System.Windows.Forms; | ||
using KeePassLib; | ||
using System.Net.Http; | ||
using Newtonsoft.Json; | ||
using KeePass.Plugins; | ||
using System.Threading.Tasks; | ||
using System.Drawing; | ||
using KeePassExtensions; | ||
using System.Threading; | ||
|
||
namespace HaveIBeenPwned.BreachCheckers | ||
{ | ||
public class CombinedChecker : BaseChecker | ||
{ | ||
BaseChecker[] checkers; | ||
|
||
public CombinedChecker(HttpClient httpClient, IPluginHost pluginHost) | ||
: base(httpClient, pluginHost) | ||
{ | ||
checkers = new BaseChecker[] | ||
{ | ||
new CloudbleedSite.CloudbleedSiteChecker(httpClient, pluginHost), | ||
new HaveIBeenPwnedSite.HaveIBeenPwnedSiteChecker(httpClient, pluginHost), | ||
new HaveIBeenPwnedPassword.HaveIBeenPwnedPasswordChecker(httpClient, pluginHost), | ||
new HaveIBeenPwnedUsername.HaveIBeenPwnedUsernameChecker(httpClient, pluginHost) | ||
}; | ||
} | ||
|
||
public override Image BreachLogo | ||
{ | ||
get { return Resources.hibp.ToBitmap(); } | ||
} | ||
|
||
public override string BreachTitle | ||
{ | ||
get { return "Combined Checker"; } | ||
} | ||
|
||
public async override Task<List<BreachedEntry>> CheckGroup(PwGroup group, bool expireEntries, bool oldEntriesOnly, bool ignoreDeleted, bool ignoreExpired, IProgress<ProgressItem> progressIndicator, Func<bool> canContinue) | ||
{ | ||
var results = new List<BreachedEntry>(); | ||
|
||
foreach (var checker in checkers) | ||
{ | ||
if (!canContinue()) | ||
{ | ||
break; | ||
} | ||
|
||
var r = await checker.CheckGroup(group, expireEntries, oldEntriesOnly, ignoreDeleted, ignoreExpired, progressIndicator, canContinue); | ||
results.AddRange(r); | ||
} | ||
|
||
return results; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.