| 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 test. | 5 // Library tag to allow dartium to run the test. |
| 6 #library('sha1_test'); | 6 #library('sha1_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('sha1_long_test_vectors.dart'); | 11 #source('sha1_long_test_vectors.dart'); |
| 12 #source('sha1_short_test_vectors.dart'); | 12 #source('sha1_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 "da39a3ee5e6b4b0d3255bfef95601890afd80709", | 24 "da39a3ee5e6b4b0d3255bfef95601890afd80709", |
| 33 "5ba93c9db0cff93f52b521d7420e43f6eda2784f", | 25 "5ba93c9db0cff93f52b521d7420e43f6eda2784f", |
| 34 "3f29546453678b855931c174a97d6c0894b8f546", | 26 "3f29546453678b855931c174a97d6c0894b8f546", |
| 35 "0c7a623fd2bbc05b06423be359e4021d36e721ad", | 27 "0c7a623fd2bbc05b06423be359e4021d36e721ad", |
| 36 "a02a05b025b928c039cf1ae7e8ee04e7c190c0db", | 28 "a02a05b025b928c039cf1ae7e8ee04e7c190c0db", |
| 37 "1cf251472d59f8fadeb3ab258e90999d8491be19", | 29 "1cf251472d59f8fadeb3ab258e90999d8491be19", |
| 38 "868460d98d09d8bbb93d7b6cdd15cc7fbec676b9", | 30 "868460d98d09d8bbb93d7b6cdd15cc7fbec676b9", |
| 39 "6dc86f11b8cdbe879bf8ba3832499c2f93c729ba", | 31 "6dc86f11b8cdbe879bf8ba3832499c2f93c729ba", |
| (...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 536 "d64a178d4759b796ec0e77626cf19257c28292fc", | 528 "d64a178d4759b796ec0e77626cf19257c28292fc", |
| 537 "6ae457f71b1cd60b1810fd4379c90bb38154568f", | 529 "6ae457f71b1cd60b1810fd4379c90bb38154568f", |
| 538 "063623280f208df296895ccd867dab8a73cf174d", | 530 "063623280f208df296895ccd867dab8a73cf174d", |
| 539 "7a8b8c9aa0591603cf08e94ec2ae6a6350cbb8a2", | 531 "7a8b8c9aa0591603cf08e94ec2ae6a6350cbb8a2", |
| 540 "20c4232d3066c41e211eefe2834db78a8c083ea4", | 532 "20c4232d3066c41e211eefe2834db78a8c083ea4", |
| 541 "82fdf2cccc77ab556aa35557d0923b162d1b98cf", | 533 "82fdf2cccc77ab556aa35557d0923b162d1b98cf", |
| 542 "3dce8306f3c1810d5d81ed5ebb0ccea947277a61", | 534 "3dce8306f3c1810d5d81ed5ebb0ccea947277a61", |
| 543 "11bca5b61fc1f6d59078ec5354bc6d9adecc0c5d", | 535 "11bca5b61fc1f6d59078ec5354bc6d9adecc0c5d", |
| 544 ]; | 536 ]; |
| 545 for (var i = 0; i < expected_values.length; i++) { | 537 for (var i = 0; i < expected_values.length; i++) { |
| 546 Expect.equals(expected_values[i], | 538 var digest = new SHA1().update(createTestArr(i)).digest(); |
| 547 digestToString(new SHA1().update(createTestArr(i)).digest())); | 539 Expect.equals(expected_values[i], CryptoUtils.bytesToHex(digest)); |
| 548 } | 540 } |
| 549 } | 541 } |
| 550 | 542 |
| 551 void testInvalidUse() { | 543 void testInvalidUse() { |
| 552 var sha = new SHA1(); | 544 var sha = new SHA1(); |
| 553 sha.digest(); | 545 sha.digest(); |
| 554 Expect.throws(() => sha.update([0]), (e) => e is HashException); | 546 Expect.throws(() => sha.update([0]), (e) => e is HashException); |
| 555 } | 547 } |
| 556 | 548 |
| 557 void testRepeatedDigest() { | 549 void testRepeatedDigest() { |
| 558 var sha = new SHA1(); | 550 var sha = new SHA1(); |
| 559 var digest = sha.digest(); | 551 var digest = sha.digest(); |
| 560 Expect.listEquals(digest, sha.digest()); | 552 Expect.listEquals(digest, sha.digest()); |
| 561 } | 553 } |
| 562 | 554 |
| 563 void testStandardVectors(inputs, mds) { | 555 void testStandardVectors(inputs, mds) { |
| 564 for (var i = 0; i < inputs.length; i++) { | 556 for (var i = 0; i < inputs.length; i++) { |
| 565 var d = new SHA1().update(inputs[i]).digest(); | 557 var d = new SHA1().update(inputs[i]).digest(); |
| 566 Expect.equals(mds[i], digestToString(d), '$i'); | 558 Expect.equals(mds[i], CryptoUtils.bytesToHex(d), '$i'); |
| 567 } | 559 } |
| 568 } | 560 } |
| 569 | 561 |
| 570 void main() { | 562 void main() { |
| 571 test(); | 563 test(); |
| 572 testInvalidUse(); | 564 testInvalidUse(); |
| 573 testRepeatedDigest(); | 565 testRepeatedDigest(); |
| 574 testStandardVectors(sha1_long_inputs, sha1_long_mds); | 566 testStandardVectors(sha1_long_inputs, sha1_long_mds); |
| 575 testStandardVectors(sha1_short_inputs, sha1_short_mds); | 567 testStandardVectors(sha1_short_inputs, sha1_short_mds); |
| 576 } | 568 } |
| OLD | NEW |