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

Side by Side Diff: lib/crypto/sha256.dart

Issue 10170027: Implement HMAC support in lib/crypto. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address first round of review comments. 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
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 // The SHA256 hasher is used to compute an SHA256 message digest. 5 // The SHA256 hasher is used to compute an SHA256 message digest.
6 class _SHA256 extends _SHACryptoHashBase implements SHA256 { 6 class _SHA256 extends _SHAHashBase implements SHA256 {
7 // Construct a SHA256 hasher object. 7 // Construct a SHA256 hasher object.
8 _SHA256() : _w = new List(64), super(16, 8) { 8 _SHA256() : _w = new List(64), super(16, 8) {
9 // Initial value of the hash parts. First 32 bits of the fractional parts 9 // Initial value of the hash parts. First 32 bits of the fractional parts
10 // of the square roots of the first 8 prime numbers. 10 // of the square roots of the first 8 prime numbers.
11 _h[0] = 0x6a09e667; 11 _h[0] = 0x6a09e667;
12 _h[1] = 0xbb67ae85; 12 _h[1] = 0xbb67ae85;
13 _h[2] = 0x3c6ef372; 13 _h[2] = 0x3c6ef372;
14 _h[3] = 0xa54ff53a; 14 _h[3] = 0xa54ff53a;
15 _h[4] = 0x510e527f; 15 _h[4] = 0x510e527f;
16 _h[5] = 0x9b05688c; 16 _h[5] = 0x9b05688c;
17 _h[6] = 0x1f83d9ab; 17 _h[6] = 0x1f83d9ab;
18 _h[7] = 0x5be0cd19; 18 _h[7] = 0x5be0cd19;
19 } 19 }
20 20
21 // Returns a new instance of this Hash.
22 SHA256 newInstance() {
23 return new SHA256();
24 }
25
21 // Table of round constants. First 32 bits of the fractional 26 // Table of round constants. First 32 bits of the fractional
22 // parts of the cube roots of the first 64 prime numbers. 27 // parts of the cube roots of the first 64 prime numbers.
23 static final List<int> _K = 28 static final List<int> _K =
24 const [ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 29 const [ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,
25 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 30 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,
26 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 31 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,
27 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 32 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
28 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 33 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,
29 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 34 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,
30 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 35 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 _h[2] = _add32(c, _h[2]); 94 _h[2] = _add32(c, _h[2]);
90 _h[3] = _add32(d, _h[3]); 95 _h[3] = _add32(d, _h[3]);
91 _h[4] = _add32(e, _h[4]); 96 _h[4] = _add32(e, _h[4]);
92 _h[5] = _add32(f, _h[5]); 97 _h[5] = _add32(f, _h[5]);
93 _h[6] = _add32(g, _h[6]); 98 _h[6] = _add32(g, _h[6]);
94 _h[7] = _add32(h, _h[7]); 99 _h[7] = _add32(h, _h[7]);
95 } 100 }
96 101
97 List<int> _w; 102 List<int> _w;
98 } 103 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698