Chromium Code Reviews| Index: sdk/lib/crypto/hmac.dart |
| diff --git a/sdk/lib/crypto/hmac.dart b/sdk/lib/crypto/hmac.dart |
| index c73bd8fec54e03bf95eef3b41e2282991d2d4d8c..21ebeeca43bb2c2e955eb5c4f509f161d621ecb3 100644 |
| --- a/sdk/lib/crypto/hmac.dart |
| +++ b/sdk/lib/crypto/hmac.dart |
| @@ -49,6 +49,20 @@ class _HMAC implements HMAC { |
| return _hash.update(padding).update(innerHash).digest(); |
| } |
| + bool verify(List<int> digest) { |
| + var computedDigest = this.digest(); |
| + if (digest.length != computedDigest.length) { |
| + throw new ArgumentError( |
| + 'Invalid digest size: ${digest.length} in HMAC.verify.' |
|
Anders Johnsen
2012/11/22 11:34:33
Insert '\n' or ' ' at end
Mads Ager (google)
2012/11/22 11:48:38
Done.
|
| + 'Expected: ${_hash.blockSize}.'); |
| + } |
| + int result = 0; |
| + for (var i = 0; i < digest.length; i++) { |
| + result |= digest[i] ^ computedDigest[i]; |
| + } |
| + return result == 0; |
| + } |
| + |
| // HMAC internal state. |
| Hash _hash; |
| List<int> _key; |