| 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 // TODO(ager): Replace with "dart:crypto" when ready. | 8 // TODO(ager): Replace with "dart:crypto" when ready. |
| 9 #import("../../../lib/crypto/crypto.dart"); | 9 #import("../../../lib/crypto/crypto.dart"); |
| 10 | 10 |
| 11 #source('sha256_long_test_vectors.dart'); | 11 #source('sha256_long_test_vectors.dart'); |
| 12 #source('sha256_short_test_vectors.dart'); | 12 #source('sha256_short_test_vectors.dart'); |
| 13 | 13 |
| 14 List<int> createTestArr(int len) { | 14 List<int> createTestArr(int len) { |
| 15 var arr = new List<int>(len); | 15 var arr = new List<int>(len); |
| 16 for (var i = 0; i < len; i++) { | 16 for (var i = 0; i < len; i++) { |
| 17 arr[i] = i; | 17 arr[i] = i; |
| 18 } | 18 } |
| 19 return arr; | 19 return arr; |
| 20 } | 20 } |
| 21 | 21 |
| 22 String digestToString(List<int> digest) { | |
| 23 var buf = new StringBuffer(); | |
| 24 for (var part in digest) { | |
| 25 buf.add("${(part < 16) ? "0" : ""}${part.toRadixString(16).toLowerCase()}"); | |
| 26 } | |
| 27 return buf.toString(); | |
| 28 } | |
| 29 | |
| 30 void test() { | 22 void test() { |
| 31 final expected_values = const [ | 23 final expected_values = const [ |
| 32 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', | 24 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', |
| 33 '6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d', | 25 '6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d', |
| 34 'b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2', | 26 'b413f47d13ee2fe6c845b2ee141af81de858df4ec549a58b7970bb96645bc8d2', |
| 35 'ae4b3280e56e2faf83f414a6e3dabe9d5fbe18976544c05fed121accb85b53fc', | 27 'ae4b3280e56e2faf83f414a6e3dabe9d5fbe18976544c05fed121accb85b53fc', |
| 36 '054edec1d0211f624fed0cbca9d4f9400b0e491c43742af2c5b0abebf0c990d8', | 28 '054edec1d0211f624fed0cbca9d4f9400b0e491c43742af2c5b0abebf0c990d8', |
| 37 '08bb5e5d6eaac1049ede0893d30ed022b1a4d9b5b48db414871f51c9cb35283d', | 29 '08bb5e5d6eaac1049ede0893d30ed022b1a4d9b5b48db414871f51c9cb35283d', |
| 38 '17e88db187afd62c16e5debf3e6527cd006bc012bc90b51a810cd80c2d511f43', | 30 '17e88db187afd62c16e5debf3e6527cd006bc012bc90b51a810cd80c2d511f43', |
| 39 '57355ac3303c148f11aef7cb179456b9232cde33a818dfda2c2fcb9325749a6b', | 31 '57355ac3303c148f11aef7cb179456b9232cde33a818dfda2c2fcb9325749a6b', |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 '552a69d052ae2980aa92ef44b4a8752fc585d70127d9df1ac53137e266786e4d', | 273 '552a69d052ae2980aa92ef44b4a8752fc585d70127d9df1ac53137e266786e4d', |
| 282 '369d7da16156c5e2c0d519cdbab3996a7249e20d3e48c36a3a873e987190bd89', | 274 '369d7da16156c5e2c0d519cdbab3996a7249e20d3e48c36a3a873e987190bd89', |
| 283 'ef67e0723230f6c535ff556e45ca2174e1e97deed306e9e87f1b65579076ec06', | 275 'ef67e0723230f6c535ff556e45ca2174e1e97deed306e9e87f1b65579076ec06', |
| 284 '2cb1e75cd7505a2783769276f30b122cb136fbbd03300510b71a7196ca670b37', | 276 '2cb1e75cd7505a2783769276f30b122cb136fbbd03300510b71a7196ca670b37', |
| 285 '1211b6885890be48f89934ec5246f1ce3cfff46c626cfcd686d5fdce9b1fb830', | 277 '1211b6885890be48f89934ec5246f1ce3cfff46c626cfcd686d5fdce9b1fb830', |
| 286 'd6a8bdb01e763fb64f3a02512e7be905679a5add6bb408f8750d679d17cad92f', | 278 'd6a8bdb01e763fb64f3a02512e7be905679a5add6bb408f8750d679d17cad92f', |
| 287 '3f8591112c6bbe5c963965954e293108b7208ed2af893e500d859368c654eabe' ]; | 279 '3f8591112c6bbe5c963965954e293108b7208ed2af893e500d859368c654eabe' ]; |
| 288 | 280 |
| 289 for (var i = 0; i < expected_values.length; i++) { | 281 for (var i = 0; i < expected_values.length; i++) { |
| 290 var d = new SHA256().update(createTestArr(i)).digest(); | 282 var d = new SHA256().update(createTestArr(i)).digest(); |
| 291 Expect.equals(expected_values[i], digestToString(d), '$i'); | 283 Expect.equals(expected_values[i], CryptoUtils.digestToHex(d), '$i'); |
| 292 } | 284 } |
| 293 } | 285 } |
| 294 | 286 |
| 295 void testInvalidUse() { | 287 void testInvalidUse() { |
| 296 var sha = new SHA256(); | 288 var sha = new SHA256(); |
| 297 sha.digest(); | 289 sha.digest(); |
| 298 Expect.throws(() => sha.update([0]), (e) => e is HashException); | 290 Expect.throws(() => sha.update([0]), (e) => e is HashException); |
| 299 } | 291 } |
| 300 | 292 |
| 301 void testRepeatedDigest() { | 293 void testRepeatedDigest() { |
| 302 var sha = new SHA256(); | 294 var sha = new SHA256(); |
| 303 var digest = sha.digest(); | 295 var digest = sha.digest(); |
| 304 Expect.listEquals(digest, sha.digest()); | 296 Expect.listEquals(digest, sha.digest()); |
| 305 } | 297 } |
| 306 | 298 |
| 307 void testStandardVectors(inputs, mds) { | 299 void testStandardVectors(inputs, mds) { |
| 308 for (var i = 0; i < inputs.length; i++) { | 300 for (var i = 0; i < inputs.length; i++) { |
| 309 var d = new SHA256().update(inputs[i]).digest(); | 301 var d = new SHA256().update(inputs[i]).digest(); |
| 310 Expect.equals(mds[i], digestToString(d), '$i'); | 302 Expect.equals(mds[i], CryptoUtils.digestToHex(d), '$i'); |
| 311 } | 303 } |
| 312 } | 304 } |
| 313 | 305 |
| 314 void main() { | 306 void main() { |
| 315 test(); | 307 test(); |
| 316 testInvalidUse(); | 308 testInvalidUse(); |
| 317 testRepeatedDigest(); | 309 testRepeatedDigest(); |
| 318 testStandardVectors(sha256_long_inputs, sha256_long_mds); | 310 testStandardVectors(sha256_long_inputs, sha256_long_mds); |
| 319 testStandardVectors(sha256_short_inputs, sha256_short_mds); | 311 testStandardVectors(sha256_short_inputs, sha256_short_mds); |
| 320 } | 312 } |
| 321 | 313 |
| OLD | NEW |