Show the approximate signature count

Signed-off-by: Tad <tad@spotco.us>
This commit is contained in:
Tad 2023-12-25 14:10:40 -05:00
parent 6de29e5a40
commit a323b45373
No known key found for this signature in database
GPG key ID: B286E9F57A07424B
2 changed files with 9 additions and 2 deletions

View file

@ -50,6 +50,7 @@ class Database {
public static BloomFilter<String> signaturesMD5 = null; public static BloomFilter<String> signaturesMD5 = null;
public static BloomFilter<String> signaturesSHA1 = null; public static BloomFilter<String> signaturesSHA1 = null;
public static BloomFilter<String> signaturesSHA256 = null; public static BloomFilter<String> signaturesSHA256 = null;
public static long signaturesCount = 0;
private static final DateFormat dateFormat = DateFormat.getDateInstance(); private static final DateFormat dateFormat = DateFormat.getDateInstance();
@ -64,7 +65,10 @@ class Database {
} }
public static boolean isDatabaseLoaded() { public static boolean isDatabaseLoaded() {
return areDatabasesAvailable() && !isDatabaseLoading(); return areDatabasesAvailable() && !isDatabaseLoading()
&& signaturesMD5 != null && signaturesMD5.approximateElementCount() > 0
&& signaturesSHA1 != null && signaturesSHA1.approximateElementCount() > 0
&& signaturesSHA256 != null && signaturesSHA256.approximateElementCount() > 0;
} }
public static boolean isDatabaseLoading() { public static boolean isDatabaseLoading() {
@ -122,14 +126,17 @@ class Database {
case "hypatia-md5-bloom.bin": case "hypatia-md5-bloom.bin":
Log.d("Hypatia", "Processing md5"); Log.d("Hypatia", "Processing md5");
signaturesMD5 = BloomFilter.readFrom(databaseLoading, Funnels.stringFunnel(StandardCharsets.US_ASCII)); signaturesMD5 = BloomFilter.readFrom(databaseLoading, Funnels.stringFunnel(StandardCharsets.US_ASCII));
signaturesCount += signaturesMD5.approximateElementCount();
break; break;
case "hypatia-sha1-bloom.bin": case "hypatia-sha1-bloom.bin":
Log.d("Hypatia", "Processing sha1"); Log.d("Hypatia", "Processing sha1");
signaturesSHA1 = BloomFilter.readFrom(databaseLoading, Funnels.stringFunnel(StandardCharsets.US_ASCII)); signaturesSHA1 = BloomFilter.readFrom(databaseLoading, Funnels.stringFunnel(StandardCharsets.US_ASCII));
signaturesCount += signaturesSHA1.approximateElementCount();
break; break;
case "hypatia-sha256-bloom.bin": case "hypatia-sha256-bloom.bin":
Log.d("Hypatia", "Processing sha256"); Log.d("Hypatia", "Processing sha256");
signaturesSHA256 = BloomFilter.readFrom(databaseLoading, Funnels.stringFunnel(StandardCharsets.US_ASCII)); signaturesSHA256 = BloomFilter.readFrom(databaseLoading, Funnels.stringFunnel(StandardCharsets.US_ASCII));
signaturesCount += signaturesSHA256.approximateElementCount();
break; break;
} }
databaseLoading.close(); databaseLoading.close();

View file

@ -184,7 +184,7 @@ class MalwareScanner extends AsyncTask<HashSet<File>, Object, String> {
} }
} }
if (Database.isDatabaseLoaded()) { if (Database.isDatabaseLoaded()) {
publishProgress("\t" + context.getString(R.string.main_database_loaded, "?") + "\n", true); publishProgress("\t" + context.getString(R.string.main_database_loaded, String.valueOf(Database.signaturesCount)) + "\n", true);
//Perform a self-test //Perform a self-test
if (Database.selfTest()) { if (Database.selfTest()) {