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 part of crypto; | 5 part of crypto; |
6 | 6 |
7 /** | 7 /** |
8 * SHA1 hash function implementation. | 8 * SHA1 hash function implementation. |
9 */ | 9 */ |
10 class SHA1 extends _HashBase { | 10 class SHA1 extends _HashBase { |
11 final List<int> _w; | 11 final Uint32List _w; |
12 | 12 |
13 // Construct a SHA1 hasher object. | 13 // Construct a SHA1 hasher object. |
14 SHA1() : _w = new List(80), super(16, 5, true) { | 14 SHA1() : _w = new Uint32List(80), super(16, 5, true) { |
15 _h[0] = 0x67452301; | 15 _h[0] = 0x67452301; |
16 _h[1] = 0xEFCDAB89; | 16 _h[1] = 0xEFCDAB89; |
17 _h[2] = 0x98BADCFE; | 17 _h[2] = 0x98BADCFE; |
18 _h[3] = 0x10325476; | 18 _h[3] = 0x10325476; |
19 _h[4] = 0xC3D2E1F0; | 19 _h[4] = 0xC3D2E1F0; |
20 } | 20 } |
21 | 21 |
22 // Returns a new instance of this Hash. | 22 // Returns a new instance of this Hash. |
23 SHA1 newInstance() { | 23 SHA1 newInstance() { |
24 return new SHA1(); | 24 return new SHA1(); |
25 } | 25 } |
26 | 26 |
27 // Compute one iteration of the SHA1 algorithm with a chunk of | 27 // Compute one iteration of the SHA1 algorithm with a chunk of |
28 // 16 32-bit pieces. | 28 // 16 32-bit pieces. |
29 void _updateHash(List<int> m) { | 29 void _updateHash(Uint32List m) { |
30 assert(m.length == 16); | 30 assert(m.length == 16); |
31 | 31 |
32 var a = _h[0]; | 32 var a = _h[0]; |
33 var b = _h[1]; | 33 var b = _h[1]; |
34 var c = _h[2]; | 34 var c = _h[2]; |
35 var d = _h[3]; | 35 var d = _h[3]; |
36 var e = _h[4]; | 36 var e = _h[4]; |
37 | 37 |
38 for (var i = 0; i < 80; i++) { | 38 for (var i = 0; i < 80; i++) { |
39 if (i < 16) { | 39 if (i < 16) { |
(...skipping 20 matching lines...) Expand all Loading... |
60 a = t & _MASK_32; | 60 a = t & _MASK_32; |
61 } | 61 } |
62 | 62 |
63 _h[0] = _add32(a, _h[0]); | 63 _h[0] = _add32(a, _h[0]); |
64 _h[1] = _add32(b, _h[1]); | 64 _h[1] = _add32(b, _h[1]); |
65 _h[2] = _add32(c, _h[2]); | 65 _h[2] = _add32(c, _h[2]); |
66 _h[3] = _add32(d, _h[3]); | 66 _h[3] = _add32(d, _h[3]); |
67 _h[4] = _add32(e, _h[4]); | 67 _h[4] = _add32(e, _h[4]); |
68 } | 68 } |
69 } | 69 } |
OLD | NEW |