36 lines
		
	
	
		
			768 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			768 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'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');
 | 
						|
};
 |