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

Unified Diff: pkg/crypto/lib/src/hash_utils.dart

Issue 23619068: pkg/crypto: tighten up (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/crypto/lib/crypto.dart ('k') | pkg/crypto/lib/src/hmac.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/crypto/lib/src/hash_utils.dart
diff --git a/pkg/crypto/lib/src/hash_utils.dart b/pkg/crypto/lib/src/hash_utils.dart
index 713dbb9d2cd0ce6f8475bb1de5a87de16eb3ea73..84df9d0e4826edde02f9764f52f43423bcbab6a6 100644
--- a/pkg/crypto/lib/src/hash_utils.dart
+++ b/pkg/crypto/lib/src/hash_utils.dart
@@ -22,16 +22,17 @@ int _rotl32(int val, int shift) {
// Base class encapsulating common behavior for cryptographic hash
// functions.
abstract class _HashBase implements Hash {
- _HashBase(int this._chunkSizeInWords,
- int this._digestSizeInWords,
+ _HashBase(int chunkSizeInWords,
+ int digestSizeInWords,
bool this._bigEndianWords)
- : _pendingData = [] {
- _currentChunk = new List(_chunkSizeInWords);
- _h = new List(_digestSizeInWords);
- }
+ : _pendingData = [],
+ _currentChunk = new List(chunkSizeInWords),
+ _h = new List(digestSizeInWords),
+ _chunkSizeInWords = chunkSizeInWords,
+ _digestSizeInWords = digestSizeInWords;
// Update the hasher with more data.
- add(List<int> data) {
+ void add(List<int> data) {
if (_digestCalled) {
throw new StateError(
'Hash update method called after digest was retrieved');
@@ -58,18 +59,15 @@ abstract class _HashBase implements Hash {
return _chunkSizeInWords * _BYTES_PER_WORD;
}
- // Create a fresh instance of this Hash.
- newInstance();
-
// One round of the hash computation.
- _updateHash(List<int> m);
+ void _updateHash(List<int> m);
// Helper methods.
- _add32(x, y) => (x + y) & _MASK_32;
- _roundUp(val, n) => (val + n - 1) & -n;
+ int _add32(x, y) => (x + y) & _MASK_32;
+ int _roundUp(val, n) => (val + n - 1) & -n;
// Compute the final result as a list of bytes from the hash words.
- _resultAsBytes() {
+ List<int> _resultAsBytes() {
var result = [];
for (var i = 0; i < _h.length; i++) {
result.addAll(_wordToBytes(_h[i]));
@@ -78,7 +76,7 @@ abstract class _HashBase implements Hash {
}
// Converts a list of bytes to a chunk of 32-bit words.
- _bytesToChunk(List<int> data, int dataIndex) {
+ void _bytesToChunk(List<int> data, int dataIndex) {
assert((data.length - dataIndex) >= (_chunkSizeInWords * _BYTES_PER_WORD));
for (var wordIndex = 0; wordIndex < _chunkSizeInWords; wordIndex++) {
@@ -96,7 +94,7 @@ abstract class _HashBase implements Hash {
}
// Convert a 32-bit word to four bytes.
- _wordToBytes(int word) {
+ List<int> _wordToBytes(int word) {
List<int> bytes = new List(_BYTES_PER_WORD);
bytes[0] = (word >> (_bigEndianWords ? 24 : 0)) & _MASK_8;
bytes[1] = (word >> (_bigEndianWords ? 16 : 8)) & _MASK_8;
@@ -107,7 +105,7 @@ abstract class _HashBase implements Hash {
// Iterate through data updating the hash computation for each
// chunk.
- _iterate() {
+ void _iterate() {
var len = _pendingData.length;
var chunkSizeInBytes = _chunkSizeInWords * _BYTES_PER_WORD;
if (len >= chunkSizeInBytes) {
@@ -122,7 +120,7 @@ abstract class _HashBase implements Hash {
// Finalize the data. Add a 1 bit to the end of the message. Expand with
// 0 bits and add the length of the message.
- _finalizeData() {
+ void _finalizeData() {
_pendingData.add(0x80);
var contentsLength = _lengthInBytes + 9;
var chunkSizeInBytes = _chunkSizeInWords * _BYTES_PER_WORD;
@@ -148,7 +146,7 @@ abstract class _HashBase implements Hash {
final bool _bigEndianWords;
int _lengthInBytes = 0;
List<int> _pendingData;
- List<int> _currentChunk;
- List<int> _h;
+ final List<int> _currentChunk;
+ final List<int> _h;
bool _digestCalled = false;
}
« no previous file with comments | « pkg/crypto/lib/crypto.dart ('k') | pkg/crypto/lib/src/hmac.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698