twonly-app-dependencies/hashlib/test/compare/compare_sha224_test.dart
2026-02-07 23:12:41 +01:00

62 lines
1.9 KiB
Dart

// Copyright (c) 2023, Sudipto Chandra
// All rights reserved. Check LICENSE file for details.
// ignore_for_file: library_annotations
@Tags(['vm-only'])
import 'package:crypto/crypto.dart' as crypto;
import 'package:hashlib/codecs.dart';
import 'package:hashlib/hashlib.dart';
import 'package:hashlib/random.dart';
import 'package:test/test.dart';
void main() {
group('SHA-224 comparison', () {
test('against known implementations', () {
for (int i = 0; i < 100; ++i) {
final data = randomBytes(i);
expect(
toHex(sha224.convert(data).bytes),
toHex(crypto.sha224.convert(data).bytes),
reason: 'Message: "${String.fromCharCodes(data)}" [${data.length}]',
);
}
});
test('run in parallel', () async {
await Future.wait(List.generate(10, (i) => i).map((i) async {
final data = randomBytes(i);
expect(
toHex(sha224.convert(data).bytes),
toHex(crypto.sha224.convert(data).bytes),
reason: 'Message: "${String.fromCharCodes(data)}" [${data.length}]',
);
}));
});
group('SHA-256 comparison', () {
test('against known implementations', () {
for (int i = 0; i < 100; ++i) {
final data = randomBytes(i);
expect(
toHex(sha256.convert(data).bytes),
toHex(crypto.sha256.convert(data).bytes),
reason: 'Message: "${String.fromCharCodes(data)}" [${data.length}]',
);
}
});
test('run in parallel', () async {
await Future.wait(List.generate(10, (i) => i).map((i) async {
final data = randomBytes(i);
expect(
toHex(sha256.convert(data).bytes),
toHex(crypto.sha256.convert(data).bytes),
reason: 'Message: "${String.fromCharCodes(data)}" [${data.length}]',
);
}));
});
});
});
}