Test large inputs for sha1 and sha256, also remove unused import.
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//1348823004 .
diff --git a/lib/src/hash_base.dart b/lib/src/hash_base.dart
index b77b26d..a8d6ed3 100644
--- a/lib/src/hash_base.dart
+++ b/lib/src/hash_base.dart
@@ -4,7 +4,6 @@
library crypto.hash_base;
-import 'dart:math' as math;
import 'dart:typed_data';
import 'hash.dart';
diff --git a/test/sha1_test.dart b/test/sha1_test.dart
index a531b99..2bba41a 100644
--- a/test/sha1_test.dart
+++ b/test/sha1_test.dart
@@ -7,6 +7,7 @@
import "package:crypto/crypto.dart";
import "package:test/test.dart";
+import 'very_long_input.dart';
part 'sha1_long_test_vectors.dart';
part 'sha1_short_test_vectors.dart';
@@ -21,6 +22,10 @@
test('short inputs', () {
_testStandardVectors(sha1_short_inputs, sha1_short_mds);
});
+ test('input bit length greater than 32 bits', () {
+ veryLongInput(
+ new SHA1(), 1000000000, '1dd775261d7abab0b66910acc1d827a2c3799eaf');
+ });
}
void _testExpectedValues() {
diff --git a/test/sha256_test.dart b/test/sha256_test.dart
index a9c9360..52a5e7e 100644
--- a/test/sha256_test.dart
+++ b/test/sha256_test.dart
@@ -7,6 +7,7 @@
import "package:test/test.dart";
import "package:crypto/crypto.dart";
+import 'very_long_input.dart';
part 'sha256_long_test_vectors.dart';
part 'sha256_short_test_vectors.dart';
@@ -19,6 +20,10 @@
() => _testStandardVectors(sha256_long_inputs, sha256_long_mds));
test('short inputs',
() => _testStandardVectors(sha256_short_inputs, sha256_short_mds));
+ test('input bit length greater than 32 bits', () {
+ veryLongInput(new SHA256(), 1000000000,
+ 'bc17f06f9d9b5f6f79ca189a1772b1a3a38d6e40c45bec50f9c4f28144efddca');
+ });
}
void _testExpectedValues() {
diff --git a/test/very_long_input.dart b/test/very_long_input.dart
new file mode 100644
index 0000000..b3e72b3
--- /dev/null
+++ b/test/very_long_input.dart
@@ -0,0 +1,14 @@
+library very_long_input_test;
+
+import 'package:crypto/crypto.dart';
+import 'package:test/test.dart';
+
+veryLongInput(digester, int byteLength, String verify) {
+ var nullCharacter = '\u0000'.codeUnitAt(0);
+ var input = [nullCharacter];
+ for (var i = 0; i < byteLength; i++) {
+ digester.add(input);
+ }
+ var d = digester.close();
+ expect(CryptoUtils.bytesToHex(d), verify);
+}