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.
25 lines
718 B
25 lines
718 B
import { inherits as inherits$0 } from "util";
|
|
import MD5 from "./md5.js";
|
|
import RIPEMD160 from "../ripemd160";
|
|
import sha from "../sha/index.js";
|
|
import Base from "../cipher-base";
|
|
var inherits = { inherits: inherits$0 }.inherits;
|
|
function Hash(hash) {
|
|
Base.call(this, 'digest');
|
|
this._hash = hash;
|
|
}
|
|
inherits(Hash, Base);
|
|
Hash.prototype._update = function (data) {
|
|
this._hash.update(data);
|
|
};
|
|
Hash.prototype._final = function () {
|
|
return this._hash.digest();
|
|
};
|
|
export default (function createHash(alg) {
|
|
alg = alg.toLowerCase();
|
|
if (alg === 'md5')
|
|
return new MD5();
|
|
if (alg === 'rmd160' || alg === 'ripemd160')
|
|
return new RIPEMD160();
|
|
return new Hash(sha(alg));
|
|
});
|
|
|