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

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

Issue 10383041: Add CryptoUtils class. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: 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
« lib/crypto/crypto.dart ('K') | « tests/lib/crypto/sha1_test.dart ('k') | no next file » | 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 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
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
OLDNEW
« lib/crypto/crypto.dart ('K') | « tests/lib/crypto/sha1_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698