| var inherits = require('inherits') |
| var SHA512 = require('./sha512') |
| var Hash = require('./hash') |
| var Buffer = require('safe-buffer').Buffer |
| |
| var W = new Array(160) |
| |
| function Sha384 () { |
| this.init() |
| this._w = W |
| |
| Hash.call(this, 128, 112) |
| } |
| |
| inherits(Sha384, SHA512) |
| |
| Sha384.prototype.init = function () { |
| this._ah = 0xcbbb9d5d |
| this._bh = 0x629a292a |
| this._ch = 0x9159015a |
| this._dh = 0x152fecd8 |
| this._eh = 0x67332667 |
| this._fh = 0x8eb44a87 |
| this._gh = 0xdb0c2e0d |
| this._hh = 0x47b5481d |
| |
| this._al = 0xc1059ed8 |
| this._bl = 0x367cd507 |
| this._cl = 0x3070dd17 |
| this._dl = 0xf70e5939 |
| this._el = 0xffc00b31 |
| this._fl = 0x68581511 |
| this._gl = 0x64f98fa7 |
| this._hl = 0xbefa4fa4 |
| |
| return this |
| } |
| |
| Sha384.prototype._hash = function () { |
| var H = Buffer.allocUnsafe(48) |
| |
| function writeInt64BE (h, l, offset) { |
| H.writeInt32BE(h, offset) |
| H.writeInt32BE(l, offset + 4) |
| } |
| |
| writeInt64BE(this._ah, this._al, 0) |
| writeInt64BE(this._bh, this._bl, 8) |
| writeInt64BE(this._ch, this._cl, 16) |
| writeInt64BE(this._dh, this._dl, 24) |
| writeInt64BE(this._eh, this._el, 32) |
| writeInt64BE(this._fh, this._fl, 40) |
| |
| return H |
| } |
| |
| module.exports = Sha384 |