const hash = require('kana-hash'); function Tripcode(algo, salt) { this.algo = algo || hash.Kana.ALGO_DEFAULT; this.salt = salt ? new hash.Kana(salt) : hash.Salt.Default; } Tripcode.Algorithm = { Default: hash.Kana.ALGO_DEFAULT, Crc32: hash.Kana.ALGO_CRC32, Crc64: hash.Kana.ALGO_CRC64, Sha256: hash.Kana.ALGO_SHA256, Sha256T: hash.Kana.ALGO_SHA256_TRUNCATED, }; Tripcode.make = (algo, salt) => { return new Tripcode(algo,salt); }; Object.freeze(Tripcode.Algorithm); const TC = Tripcode.prototype; TC.hash = function(a, b, c) { console.log("what are these?:"); if (a) { // Insecure return "!" +new hash.Kana(this.algo, hash.Salt.Default).once(a); } else if (b) { // Secure return "!!" +new hash.Kana(this.algo, this.salt).once(b); } }; TC.setSalt = function(salt) { if (salt) this.salt = new hash.Salt(salt); else if(salt === true) this.salt = hash.Salt.Default; else if (salt === false) this.salt = hash.Salt.None; return this.salt; }; module.exports = Tripcode;