You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.1 KiB
42 lines
1.1 KiB
2 years ago
|
import { inherits as inherits$0 } from "util";
|
||
|
import Sha256 from "./sha256";
|
||
|
import Hash from "./hash";
|
||
|
/**
|
||
|
* A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
|
||
|
* in FIPS 180-2
|
||
|
* Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.
|
||
|
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
|
||
|
*
|
||
|
*/
|
||
|
var inherits = { inherits: inherits$0 }.inherits;
|
||
|
var W = new Array(64);
|
||
|
function Sha224() {
|
||
|
this.init();
|
||
|
this._w = W; // new Array(64)
|
||
|
Hash.call(this, 64, 56);
|
||
|
}
|
||
|
inherits(Sha224, Sha256);
|
||
|
Sha224.prototype.init = function () {
|
||
|
this._a = 0xc1059ed8;
|
||
|
this._b = 0x367cd507;
|
||
|
this._c = 0x3070dd17;
|
||
|
this._d = 0xf70e5939;
|
||
|
this._e = 0xffc00b31;
|
||
|
this._f = 0x68581511;
|
||
|
this._g = 0x64f98fa7;
|
||
|
this._h = 0xbefa4fa4;
|
||
|
return this;
|
||
|
};
|
||
|
Sha224.prototype._hash = function () {
|
||
|
var H = Buffer.allocUnsafe(28);
|
||
|
H.writeInt32BE(this._a, 0);
|
||
|
H.writeInt32BE(this._b, 4);
|
||
|
H.writeInt32BE(this._c, 8);
|
||
|
H.writeInt32BE(this._d, 12);
|
||
|
H.writeInt32BE(this._e, 16);
|
||
|
H.writeInt32BE(this._f, 20);
|
||
|
H.writeInt32BE(this._g, 24);
|
||
|
return H;
|
||
|
};
|
||
|
export default Sha224;
|