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');
|
||
|
};
|
||
|
|