| 'use strict'; |
| |
| var utils = require('../utils'); |
| |
| var SHA512 = require('./512'); |
| |
| function SHA384() { |
| if (!(this instanceof SHA384)) |
| return new SHA384(); |
| |
| SHA512.call(this); |
| this.h = [ |
| 0xcbbb9d5d, 0xc1059ed8, |
| 0x629a292a, 0x367cd507, |
| 0x9159015a, 0x3070dd17, |
| 0x152fecd8, 0xf70e5939, |
| 0x67332667, 0xffc00b31, |
| 0x8eb44a87, 0x68581511, |
| 0xdb0c2e0d, 0x64f98fa7, |
| 0x47b5481d, 0xbefa4fa4 ]; |
| } |
| utils.inherits(SHA384, SHA512); |
| module.exports = SHA384; |
| |
| SHA384.blockSize = 1024; |
| SHA384.outSize = 384; |
| SHA384.hmacStrength = 192; |
| SHA384.padLength = 128; |
| |
| SHA384.prototype._digest = function digest(enc) { |
| if (enc === 'hex') |
| return utils.toHex32(this.h.slice(0, 12), 'big'); |
| else |
| return utils.split32(this.h.slice(0, 12), 'big'); |
| }; |