Chromium Code Reviews| 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 "package:expect/expect.dart"; | 8 import "package:unittest/unittest.dart"; |
| 9 import "package:crypto/crypto.dart"; | 9 import "package:crypto/crypto.dart"; |
| 10 | 10 |
| 11 part 'sha256_long_test_vectors.dart'; | 11 part 'sha256_long_test_vectors.dart'; |
| 12 part 'sha256_short_test_vectors.dart'; | 12 part 'sha256_short_test_vectors.dart'; |
| 13 | 13 |
| 14 List<int> createTestArr(int len) { | 14 |
| 15 var arr = new List<int>(len); | 15 void main() { |
| 16 for (var i = 0; i < len; i++) { | 16 test('expected values', _testExpectedValues); |
| 17 arr[i] = i; | 17 test('invalid use', _testInvalidUse); |
| 18 } | 18 test('repeated digest', _testRepeatedDigest); |
| 19 return arr; | 19 test('long inputs', |
| 20 () => _testStandardVectors(sha256_long_inputs, sha256_long_mds)); | |
| 21 test('short inputs', | |
| 22 () => _testStandardVectors(sha256_short_inputs, sha256_short_mds)); | |
| 20 } | 23 } |
| 21 | 24 |
| 22 void test() { | 25 void _testExpectedValues() { |
| 23 final expected_values = const [ | 26 final expected_values = const [ |
|
Søren Gjesse
2014/02/18 07:41:38
expected_values -> expectedValues
kevmoo
2014/02/18 14:23:27
Done.
| |
| 24 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', | 27 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', |
| 25 '6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d', | 28 '6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d', |
| 26 'b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2', | 29 'b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2', |
| 27 'ae4b3280e56e2faf83f414a6e3dabe9d5fbe18976544c05fed121accb85b53fc', | 30 'ae4b3280e56e2faf83f414a6e3dabe9d5fbe18976544c05fed121accb85b53fc', |
| 28 '054edec1d0211f624fed0cbca9d4f9400b0e491c43742af2c5b0abebf0c990d8', | 31 '054edec1d0211f624fed0cbca9d4f9400b0e491c43742af2c5b0abebf0c990d8', |
| 29 '08bb5e5d6eaac1049ede0893d30ed022b1a4d9b5b48db414871f51c9cb35283d', | 32 '08bb5e5d6eaac1049ede0893d30ed022b1a4d9b5b48db414871f51c9cb35283d', |
| 30 '17e88db187afd62c16e5debf3e6527cd006bc012bc90b51a810cd80c2d511f43', | 33 '17e88db187afd62c16e5debf3e6527cd006bc012bc90b51a810cd80c2d511f43', |
| 31 '57355ac3303c148f11aef7cb179456b9232cde33a818dfda2c2fcb9325749a6b', | 34 '57355ac3303c148f11aef7cb179456b9232cde33a818dfda2c2fcb9325749a6b', |
| 32 '8a851ff82ee7048ad09ec3847f1ddf44944104d2cbd17ef4e3db22c6785a0d45', | 35 '8a851ff82ee7048ad09ec3847f1ddf44944104d2cbd17ef4e3db22c6785a0d45', |
| 33 'f8348e0b1df00833cbbbd08f07abdecc10c0efb78829d7828c62a7f36d0cc549', | 36 'f8348e0b1df00833cbbbd08f07abdecc10c0efb78829d7828c62a7f36d0cc549', |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 273 '552a69d052ae2980aa92ef44b4a8752fc585d70127d9df1ac53137e266786e4d', | 276 '552a69d052ae2980aa92ef44b4a8752fc585d70127d9df1ac53137e266786e4d', |
| 274 '369d7da16156c5e2c0d519cdbab3996a7249e20d3e48c36a3a873e987190bd89', | 277 '369d7da16156c5e2c0d519cdbab3996a7249e20d3e48c36a3a873e987190bd89', |
| 275 'ef67e0723230f6c535ff556e45ca2174e1e97deed306e9e87f1b65579076ec06', | 278 'ef67e0723230f6c535ff556e45ca2174e1e97deed306e9e87f1b65579076ec06', |
| 276 '2cb1e75cd7505a2783769276f30b122cb136fbbd03300510b71a7196ca670b37', | 279 '2cb1e75cd7505a2783769276f30b122cb136fbbd03300510b71a7196ca670b37', |
| 277 '1211b6885890be48f89934ec5246f1ce3cfff46c626cfcd686d5fdce9b1fb830', | 280 '1211b6885890be48f89934ec5246f1ce3cfff46c626cfcd686d5fdce9b1fb830', |
| 278 'd6a8bdb01e763fb64f3a02512e7be905679a5add6bb408f8750d679d17cad92f', | 281 'd6a8bdb01e763fb64f3a02512e7be905679a5add6bb408f8750d679d17cad92f', |
| 279 '3f8591112c6bbe5c963965954e293108b7208ed2af893e500d859368c654eabe' ]; | 282 '3f8591112c6bbe5c963965954e293108b7208ed2af893e500d859368c654eabe' ]; |
| 280 | 283 |
| 281 for (var i = 0; i < expected_values.length; i++) { | 284 for (var i = 0; i < expected_values.length; i++) { |
| 282 var hash = new SHA256(); | 285 var hash = new SHA256(); |
| 283 hash.add(createTestArr(i)); | 286 hash.add(new List<int>.generate(i, (j) => j, growable: false)); |
| 284 var d = hash.close(); | 287 var d = hash.close(); |
| 285 Expect.equals(expected_values[i], CryptoUtils.bytesToHex(d), '$i'); | 288 expect(expected_values[i], CryptoUtils.bytesToHex(d), reason: '$i'); |
| 286 } | 289 } |
| 287 } | 290 } |
| 288 | 291 |
| 289 void testInvalidUse() { | 292 void _testInvalidUse() { |
| 290 var sha = new SHA256(); | 293 var sha = new SHA256(); |
| 291 sha.close(); | 294 sha.close(); |
| 292 Expect.throws(() => sha.add([0]), (e) => e is StateError); | 295 expect(() => sha.add([0]), throwsStateError); |
| 293 } | 296 } |
| 294 | 297 |
| 295 void testRepeatedDigest() { | 298 void _testRepeatedDigest() { |
| 296 var sha = new SHA256(); | 299 var sha = new SHA256(); |
| 297 var digest = sha.close(); | 300 var digest = sha.close(); |
| 298 Expect.listEquals(digest, sha.close()); | 301 expect(digest, sha.close()); |
| 299 } | 302 } |
| 300 | 303 |
| 301 void testStandardVectors(inputs, mds) { | 304 void _testStandardVectors(inputs, mds) { |
| 302 for (var i = 0; i < inputs.length; i++) { | 305 for (var i = 0; i < inputs.length; i++) { |
| 303 var hash = new SHA256(); | 306 var hash = new SHA256(); |
| 304 hash.add(inputs[i]); | 307 hash.add(inputs[i]); |
| 305 var d = hash.close(); | 308 var d = hash.close(); |
| 306 Expect.equals(mds[i], CryptoUtils.bytesToHex(d), '$i'); | 309 expect(mds[i], CryptoUtils.bytesToHex(d), reason: '$i'); |
| 307 } | 310 } |
| 308 } | 311 } |
| 309 | |
| 310 void main() { | |
| 311 test(); | |
| 312 testInvalidUse(); | |
| 313 testRepeatedDigest(); | |
| 314 testStandardVectors(sha256_long_inputs, sha256_long_mds); | |
| 315 testStandardVectors(sha256_short_inputs, sha256_short_mds); | |
| 316 } | |
| 317 | |
| OLD | NEW |