sha384.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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_x64 = C.x64;
  11. var X64Word = C_x64.Word;
  12. var X64WordArray = C_x64.WordArray;
  13. var C_algo = C.algo;
  14. var SHA512 = C_algo.SHA512;
  15. /**
  16. * SHA-384 hash algorithm.
  17. */
  18. var SHA384 = C_algo.SHA384 = SHA512.extend({
  19. _doReset: function () {
  20. this._hash = X64WordArray.create([
  21. X64Word.create(0xcbbb9d5d, 0xc1059ed8), X64Word.create(0x629a292a, 0x367cd507),
  22. X64Word.create(0x9159015a, 0x3070dd17), X64Word.create(0x152fecd8, 0xf70e5939),
  23. X64Word.create(0x67332667, 0xffc00b31), X64Word.create(0x8eb44a87, 0x68581511),
  24. X64Word.create(0xdb0c2e0d, 0x64f98fa7), X64Word.create(0x47b5481d, 0xbefa4fa4)
  25. ]);
  26. },
  27. _doFinalize: function () {
  28. SHA512._doFinalize.call(this);
  29. this._hash.sigBytes -= 16;
  30. }
  31. });
  32. /**
  33. * Shortcut function to the hasher's object interface.
  34. *
  35. * @param {WordArray|string} message The message to hash.
  36. *
  37. * @return {WordArray} The hash.
  38. *
  39. * @static
  40. *
  41. * @example
  42. *
  43. * var hash = CryptoJS.SHA384('message');
  44. * var hash = CryptoJS.SHA384(wordArray);
  45. */
  46. C.SHA384 = SHA512._createHelper(SHA384);
  47. /**
  48. * Shortcut function to the HMAC's object interface.
  49. *
  50. * @param {WordArray|string} message The message to hash.
  51. * @param {WordArray|string} key The secret key.
  52. *
  53. * @return {WordArray} The HMAC.
  54. *
  55. * @static
  56. *
  57. * @example
  58. *
  59. * var hmac = CryptoJS.HmacSHA384(message, key);
  60. */
  61. C.HmacSHA384 = SHA512._createHmacHelper(SHA384);
  62. }());