clearEncryptedEntries function
Clears all encrypted entries from cache.
This iterates through all entries and removes those with _encrypted flag. Useful for recovery when key is lost.
Implementation
Future<void> clearEncryptedEntries(PVCache cache) async {
// Get all keys
final allKeys = await cache.iterKeys();
// Check each entry for encryption flag
for (final key in allKeys) {
// Read metadata directly from storage to check encryption flag
final bridge = PVBridge();
final db = await bridge.getDatabaseForType(
cache.metadataStorageType,
heavy: cache.heavy,
env: cache.env,
);
final storeName = cache.metadataNameFunction!(cache.env);
final store = bridge.getStore(storeName, cache.metadataStorageType);
final metadata = await store.record(key).get(db);
if (metadata?['_encrypted'] == true) {
await cache.delete(key);
}
}
}