31 lines
		
	
	
		
			670 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			670 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
var utils = require('../utils');
 | 
						|
var SHA256 = require('./256');
 | 
						|
 | 
						|
function SHA224() {
 | 
						|
  if (!(this instanceof SHA224))
 | 
						|
    return new SHA224();
 | 
						|
 | 
						|
  SHA256.call(this);
 | 
						|
  this.h = [
 | 
						|
    0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
 | 
						|
    0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];
 | 
						|
}
 | 
						|
utils.inherits(SHA224, SHA256);
 | 
						|
module.exports = SHA224;
 | 
						|
 | 
						|
SHA224.blockSize = 512;
 | 
						|
SHA224.outSize = 224;
 | 
						|
SHA224.hmacStrength = 192;
 | 
						|
SHA224.padLength = 64;
 | 
						|
 | 
						|
SHA224.prototype._digest = function digest(enc) {
 | 
						|
  // Just truncate output
 | 
						|
  if (enc === 'hex')
 | 
						|
    return utils.toHex32(this.h.slice(0, 7), 'big');
 | 
						|
  else
 | 
						|
    return utils.split32(this.h.slice(0, 7), 'big');
 | 
						|
};
 | 
						|
 |