Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(199)

Side by Side Diff: tests/lib/crypto/sha1_test.dart

Issue 10383041: Add CryptoUtils class. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address comment. Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tests/lib/crypto/hmac_sha256_test.dart ('k') | tests/lib/crypto/sha256_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 }
OLDNEW
« no previous file with comments | « tests/lib/crypto/hmac_sha256_test.dart ('k') | tests/lib/crypto/sha256_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698