sha224.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*
  2. CryptoJS v3.0.2
  3. code.google.com/p/crypto-js
  4. (c) 2009-2012 by Jeff Mott. All rights reserved.
  5. code.google.com/p/crypto-js/wiki/License
  6. */
  7. (function () {
  8. // Shortcuts
  9. var C = CryptoJS;
  10. var C_lib = C.lib;
  11. var WordArray = C_lib.WordArray;
  12. var C_algo = C.algo;
  13. var SHA256 = C_algo.SHA256;
  14. /**
  15. * SHA-224 hash algorithm.
  16. */
  17. var SHA224 = C_algo.SHA224 = SHA256.extend({
  18. _doReset: function () {
  19. this._hash = WordArray.create([
  20. 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
  21. 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4
  22. ]);
  23. },
  24. _doFinalize: function () {
  25. SHA256._doFinalize.call(this);
  26. this._hash.sigBytes -= 4;
  27. }
  28. });
  29. /**
  30. * Shortcut function to the hasher's object interface.
  31. *
  32. * @param {WordArray|string} message The message to hash.
  33. *
  34. * @return {WordArray} The hash.
  35. *
  36. * @static
  37. *
  38. * @example
  39. *
  40. * var hash = CryptoJS.SHA224('message');
  41. * var hash = CryptoJS.SHA224(wordArray);
  42. */
  43. C.SHA224 = SHA256._createHelper(SHA224);
  44. /**
  45. * Shortcut function to the HMAC's object interface.
  46. *
  47. * @param {WordArray|string} message The message to hash.
  48. * @param {WordArray|string} key The secret key.
  49. *
  50. * @return {WordArray} The HMAC.
  51. *
  52. * @static
  53. *
  54. * @example
  55. *
  56. * var hmac = CryptoJS.HmacSHA224(message, key);
  57. */
  58. C.HmacSHA224 = SHA256._createHmacHelper(SHA224);
  59. }());