verify static method

Future<bool> verify(
  1. String key, {
  2. UStorageBucket bucket = UStorageBucket.support,
})

Re-checks integrity: every AEAD tag for vault entries, or the stored SHA-256 otherwise.

Implementation

static Future<bool> verify(String key, {UStorageBucket bucket = UStorageBucket.support}) async {
  await _ensure();
  final UStorageEntry? entry = _live(key, bucket);
  if (entry == null) return false;
  if (bucket == UStorageBucket.vault) return (await vaultKeys).verify(_pathFor(bucket, key));
  if (entry.sha256 == null) return true;
  final UHasher hasher = UHasher(UHashAlgorithm.sha256);
  await for (final Uint8List chunk in _backend.read(_pathFor(bucket, key))) {
    hasher.add(chunk);
  }
  return hasher.closeHex() == entry.sha256;
}