OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 // Library tag to allow Dartium to run the tests. | 5 // Library tag to allow Dartium to run the tests. |
6 library sha256_test; | 6 library sha256_test; |
7 | 7 |
8 import 'dart:crypto'; | 8 import 'dart:crypto'; |
9 | 9 |
10 part 'sha256_long_test_vectors.dart'; | 10 part 'sha256_long_test_vectors.dart'; |
11 part 'sha256_short_test_vectors.dart'; | 11 part 'sha256_short_test_vectors.dart'; |
12 | 12 |
13 List<int> createTestArr(int len) { | 13 List<int> createTestArr(int len) { |
14 var arr = new List<int>(len); | 14 var arr = new List<int>.fixedLength(len); |
15 for (var i = 0; i < len; i++) { | 15 for (var i = 0; i < len; i++) { |
16 arr[i] = i; | 16 arr[i] = i; |
17 } | 17 } |
18 return arr; | 18 return arr; |
19 } | 19 } |
20 | 20 |
21 void test() { | 21 void test() { |
22 final expected_values = const [ | 22 final expected_values = const [ |
23 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', | 23 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', |
24 '6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d', | 24 '6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d', |
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 'c6fefe1bfbe6f5364bf0e40447ffca27fde55f1cd815e1fa3bafb46a41c91749', | 271 'c6fefe1bfbe6f5364bf0e40447ffca27fde55f1cd815e1fa3bafb46a41c91749', |
272 '552a69d052ae2980aa92ef44b4a8752fc585d70127d9df1ac53137e266786e4d', | 272 '552a69d052ae2980aa92ef44b4a8752fc585d70127d9df1ac53137e266786e4d', |
273 '369d7da16156c5e2c0d519cdbab3996a7249e20d3e48c36a3a873e987190bd89', | 273 '369d7da16156c5e2c0d519cdbab3996a7249e20d3e48c36a3a873e987190bd89', |
274 'ef67e0723230f6c535ff556e45ca2174e1e97deed306e9e87f1b65579076ec06', | 274 'ef67e0723230f6c535ff556e45ca2174e1e97deed306e9e87f1b65579076ec06', |
275 '2cb1e75cd7505a2783769276f30b122cb136fbbd03300510b71a7196ca670b37', | 275 '2cb1e75cd7505a2783769276f30b122cb136fbbd03300510b71a7196ca670b37', |
276 '1211b6885890be48f89934ec5246f1ce3cfff46c626cfcd686d5fdce9b1fb830', | 276 '1211b6885890be48f89934ec5246f1ce3cfff46c626cfcd686d5fdce9b1fb830', |
277 'd6a8bdb01e763fb64f3a02512e7be905679a5add6bb408f8750d679d17cad92f', | 277 'd6a8bdb01e763fb64f3a02512e7be905679a5add6bb408f8750d679d17cad92f', |
278 '3f8591112c6bbe5c963965954e293108b7208ed2af893e500d859368c654eabe' ]; | 278 '3f8591112c6bbe5c963965954e293108b7208ed2af893e500d859368c654eabe' ]; |
279 | 279 |
280 for (var i = 0; i < expected_values.length; i++) { | 280 for (var i = 0; i < expected_values.length; i++) { |
281 var d = new SHA256().update(createTestArr(i)).digest(); | 281 var hash = new SHA256(); |
| 282 hash.add(createTestArr(i)); |
| 283 var d = hash.close(); |
282 Expect.equals(expected_values[i], CryptoUtils.bytesToHex(d), '$i'); | 284 Expect.equals(expected_values[i], CryptoUtils.bytesToHex(d), '$i'); |
283 } | 285 } |
284 } | 286 } |
285 | 287 |
286 void testInvalidUse() { | 288 void testInvalidUse() { |
287 var sha = new SHA256(); | 289 var sha = new SHA256(); |
288 sha.digest(); | 290 sha.close(); |
289 Expect.throws(() => sha.update([0]), (e) => e is HashException); | 291 Expect.throws(() => sha.add([0]), (e) => e is HashException); |
290 } | 292 } |
291 | 293 |
292 void testRepeatedDigest() { | 294 void testRepeatedDigest() { |
293 var sha = new SHA256(); | 295 var sha = new SHA256(); |
294 var digest = sha.digest(); | 296 var digest = sha.close(); |
295 Expect.listEquals(digest, sha.digest()); | 297 Expect.listEquals(digest, sha.close()); |
296 } | 298 } |
297 | 299 |
298 void testStandardVectors(inputs, mds) { | 300 void testStandardVectors(inputs, mds) { |
299 for (var i = 0; i < inputs.length; i++) { | 301 for (var i = 0; i < inputs.length; i++) { |
300 var d = new SHA256().update(inputs[i]).digest(); | 302 var hash = new SHA256(); |
| 303 hash.add(inputs[i]); |
| 304 var d = hash.close(); |
301 Expect.equals(mds[i], CryptoUtils.bytesToHex(d), '$i'); | 305 Expect.equals(mds[i], CryptoUtils.bytesToHex(d), '$i'); |
302 } | 306 } |
303 } | 307 } |
304 | 308 |
305 void main() { | 309 void main() { |
306 test(); | 310 test(); |
307 testInvalidUse(); | 311 testInvalidUse(); |
308 testRepeatedDigest(); | 312 testRepeatedDigest(); |
309 testStandardVectors(sha256_long_inputs, sha256_long_mds); | 313 testStandardVectors(sha256_long_inputs, sha256_long_mds); |
310 testStandardVectors(sha256_short_inputs, sha256_short_mds); | 314 testStandardVectors(sha256_short_inputs, sha256_short_mds); |
311 } | 315 } |
312 | 316 |
OLD | NEW |