mirror of https://gitee.com/stylefeng/guns
commit
e2ff82b918
@ -0,0 +1,520 @@
|
||||
/*
|
||||
CryptoJS v3.1.2
|
||||
code.google.com/p/crypto-js
|
||||
(c) 2009-2013 by Jeff Mott. All rights reserved.
|
||||
code.google.com/p/crypto-js/wiki/License
|
||||
*/
|
||||
var CryptoJS = CryptoJS || function (u, p) {
|
||||
var d = {}, l = d.lib = {}, s = function () {
|
||||
}, t = l.Base = {
|
||||
extend: function (a) {
|
||||
s.prototype = this;
|
||||
var c = new s;
|
||||
a && c.mixIn(a);
|
||||
c.hasOwnProperty("init") || (c.init = function () {
|
||||
c.$super.init.apply(this, arguments)
|
||||
});
|
||||
c.init.prototype = c;
|
||||
c.$super = this;
|
||||
return c
|
||||
}, create: function () {
|
||||
var a = this.extend();
|
||||
a.init.apply(a, arguments);
|
||||
return a
|
||||
}, init: function () {
|
||||
}, mixIn: function (a) {
|
||||
for (var c in a) a.hasOwnProperty(c) && (this[c] = a[c]);
|
||||
a.hasOwnProperty("toString") && (this.toString = a.toString)
|
||||
}, clone: function () {
|
||||
return this.init.prototype.extend(this)
|
||||
}
|
||||
},
|
||||
r = l.WordArray = t.extend({
|
||||
init: function (a, c) {
|
||||
a = this.words = a || [];
|
||||
this.sigBytes = c != p ? c : 4 * a.length
|
||||
}, toString: function (a) {
|
||||
return (a || v).stringify(this)
|
||||
}, concat: function (a) {
|
||||
var c = this.words, e = a.words, j = this.sigBytes;
|
||||
a = a.sigBytes;
|
||||
this.clamp();
|
||||
if (j % 4) for (var k = 0; k < a; k++) c[j + k >>> 2] |= (e[k >>> 2] >>> 24 - 8 * (k % 4) & 255) << 24 - 8 * ((j + k) % 4); else if (65535 < e.length) for (k = 0; k < a; k += 4) c[j + k >>> 2] = e[k >>> 2]; else c.push.apply(c, e);
|
||||
this.sigBytes += a;
|
||||
return this
|
||||
}, clamp: function () {
|
||||
var a = this.words, c = this.sigBytes;
|
||||
a[c >>> 2] &= 4294967295 <<
|
||||
32 - 8 * (c % 4);
|
||||
a.length = u.ceil(c / 4)
|
||||
}, clone: function () {
|
||||
var a = t.clone.call(this);
|
||||
a.words = this.words.slice(0);
|
||||
return a
|
||||
}, random: function (a) {
|
||||
for (var c = [], e = 0; e < a; e += 4) c.push(4294967296 * u.random() | 0);
|
||||
return new r.init(c, a)
|
||||
}
|
||||
}), w = d.enc = {}, v = w.Hex = {
|
||||
stringify: function (a) {
|
||||
var c = a.words;
|
||||
a = a.sigBytes;
|
||||
for (var e = [], j = 0; j < a; j++) {
|
||||
var k = c[j >>> 2] >>> 24 - 8 * (j % 4) & 255;
|
||||
e.push((k >>> 4).toString(16));
|
||||
e.push((k & 15).toString(16))
|
||||
}
|
||||
return e.join("")
|
||||
}, parse: function (a) {
|
||||
for (var c = a.length, e = [], j = 0; j < c; j += 2) e[j >>> 3] |= parseInt(a.substr(j,
|
||||
2), 16) << 24 - 4 * (j % 8);
|
||||
return new r.init(e, c / 2)
|
||||
}
|
||||
}, b = w.Latin1 = {
|
||||
stringify: function (a) {
|
||||
var c = a.words;
|
||||
a = a.sigBytes;
|
||||
for (var e = [], j = 0; j < a; j++) e.push(String.fromCharCode(c[j >>> 2] >>> 24 - 8 * (j % 4) & 255));
|
||||
return e.join("")
|
||||
}, parse: function (a) {
|
||||
for (var c = a.length, e = [], j = 0; j < c; j++) e[j >>> 2] |= (a.charCodeAt(j) & 255) << 24 - 8 * (j % 4);
|
||||
return new r.init(e, c)
|
||||
}
|
||||
}, x = w.Utf8 = {
|
||||
stringify: function (a) {
|
||||
try {
|
||||
return decodeURIComponent(escape(b.stringify(a)))
|
||||
} catch (c) {
|
||||
throw Error("Malformed UTF-8 data");
|
||||
}
|
||||
}, parse: function (a) {
|
||||
return b.parse(unescape(encodeURIComponent(a)))
|
||||
}
|
||||
},
|
||||
q = l.BufferedBlockAlgorithm = t.extend({
|
||||
reset: function () {
|
||||
this._data = new r.init;
|
||||
this._nDataBytes = 0
|
||||
}, _append: function (a) {
|
||||
"string" == typeof a && (a = x.parse(a));
|
||||
this._data.concat(a);
|
||||
this._nDataBytes += a.sigBytes
|
||||
}, _process: function (a) {
|
||||
var c = this._data, e = c.words, j = c.sigBytes, k = this.blockSize, b = j / (4 * k), b = a ? u.ceil(b) : u.max((b | 0) - this._minBufferSize, 0);
|
||||
a = b * k;
|
||||
j = u.min(4 * a, j);
|
||||
if (a) {
|
||||
for (var q = 0; q < a; q += k) this._doProcessBlock(e, q);
|
||||
q = e.splice(0, a);
|
||||
c.sigBytes -= j
|
||||
}
|
||||
return new r.init(q, j)
|
||||
}, clone: function () {
|
||||
var a = t.clone.call(this);
|
||||
a._data = this._data.clone();
|
||||
return a
|
||||
}, _minBufferSize: 0
|
||||
});
|
||||
l.Hasher = q.extend({
|
||||
cfg: t.extend(), init: function (a) {
|
||||
this.cfg = this.cfg.extend(a);
|
||||
this.reset()
|
||||
}, reset: function () {
|
||||
q.reset.call(this);
|
||||
this._doReset()
|
||||
}, update: function (a) {
|
||||
this._append(a);
|
||||
this._process();
|
||||
return this
|
||||
}, finalize: function (a) {
|
||||
a && this._append(a);
|
||||
return this._doFinalize()
|
||||
}, blockSize: 16, _createHelper: function (a) {
|
||||
return function (b, e) {
|
||||
return (new a.init(e)).finalize(b)
|
||||
}
|
||||
}, _createHmacHelper: function (a) {
|
||||
return function (b, e) {
|
||||
return (new n.HMAC.init(a,
|
||||
e)).finalize(b)
|
||||
}
|
||||
}
|
||||
});
|
||||
var n = d.algo = {};
|
||||
return d
|
||||
}(Math);
|
||||
(function () {
|
||||
var u = CryptoJS, p = u.lib.WordArray;
|
||||
u.enc.Base64 = {
|
||||
stringify: function (d) {
|
||||
var l = d.words, p = d.sigBytes, t = this._map;
|
||||
d.clamp();
|
||||
d = [];
|
||||
for (var r = 0; r < p; r += 3) for (var w = (l[r >>> 2] >>> 24 - 8 * (r % 4) & 255) << 16 | (l[r + 1 >>> 2] >>> 24 - 8 * ((r + 1) % 4) & 255) << 8 | l[r + 2 >>> 2] >>> 24 - 8 * ((r + 2) % 4) & 255, v = 0; 4 > v && r + 0.75 * v < p; v++) d.push(t.charAt(w >>> 6 * (3 - v) & 63));
|
||||
if (l = t.charAt(64)) for (; d.length % 4;) d.push(l);
|
||||
return d.join("")
|
||||
}, parse: function (d) {
|
||||
var l = d.length, s = this._map, t = s.charAt(64);
|
||||
t && (t = d.indexOf(t), -1 != t && (l = t));
|
||||
for (var t = [], r = 0, w = 0; w <
|
||||
l; w++) if (w % 4) {
|
||||
var v = s.indexOf(d.charAt(w - 1)) << 2 * (w % 4), b = s.indexOf(d.charAt(w)) >>> 6 - 2 * (w % 4);
|
||||
t[r >>> 2] |= (v | b) << 24 - 8 * (r % 4);
|
||||
r++
|
||||
}
|
||||
return p.create(t, r)
|
||||
}, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
|
||||
}
|
||||
})();
|
||||
(function (u) {
|
||||
function p(b, n, a, c, e, j, k) {
|
||||
b = b + (n & a | ~n & c) + e + k;
|
||||
return (b << j | b >>> 32 - j) + n
|
||||
}
|
||||
|
||||
function d(b, n, a, c, e, j, k) {
|
||||
b = b + (n & c | a & ~c) + e + k;
|
||||
return (b << j | b >>> 32 - j) + n
|
||||
}
|
||||
|
||||
function l(b, n, a, c, e, j, k) {
|
||||
b = b + (n ^ a ^ c) + e + k;
|
||||
return (b << j | b >>> 32 - j) + n
|
||||
}
|
||||
|
||||
function s(b, n, a, c, e, j, k) {
|
||||
b = b + (a ^ (n | ~c)) + e + k;
|
||||
return (b << j | b >>> 32 - j) + n
|
||||
}
|
||||
|
||||
for (var t = CryptoJS, r = t.lib, w = r.WordArray, v = r.Hasher, r = t.algo, b = [], x = 0; 64 > x; x++) b[x] = 4294967296 * u.abs(u.sin(x + 1)) | 0;
|
||||
r = r.MD5 = v.extend({
|
||||
_doReset: function () {
|
||||
this._hash = new w.init([1732584193, 4023233417, 2562383102, 271733878])
|
||||
},
|
||||
_doProcessBlock: function (q, n) {
|
||||
for (var a = 0; 16 > a; a++) {
|
||||
var c = n + a, e = q[c];
|
||||
q[c] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360
|
||||
}
|
||||
var a = this._hash.words, c = q[n + 0], e = q[n + 1], j = q[n + 2], k = q[n + 3], z = q[n + 4], r = q[n + 5], t = q[n + 6], w = q[n + 7], v = q[n + 8], A = q[n + 9], B = q[n + 10], C = q[n + 11], u = q[n + 12], D = q[n + 13], E = q[n + 14], x = q[n + 15], f = a[0], m = a[1], g = a[2], h = a[3], f = p(f, m, g, h, c, 7, b[0]), h = p(h, f, m, g, e, 12, b[1]), g = p(g, h, f, m, j, 17, b[2]), m = p(m, g, h, f, k, 22, b[3]), f = p(f, m, g, h, z, 7, b[4]), h = p(h, f, m, g, r, 12, b[5]), g = p(g, h, f, m, t, 17, b[6]), m = p(m, g, h, f, w, 22, b[7]),
|
||||
f = p(f, m, g, h, v, 7, b[8]), h = p(h, f, m, g, A, 12, b[9]), g = p(g, h, f, m, B, 17, b[10]), m = p(m, g, h, f, C, 22, b[11]), f = p(f, m, g, h, u, 7, b[12]), h = p(h, f, m, g, D, 12, b[13]), g = p(g, h, f, m, E, 17, b[14]), m = p(m, g, h, f, x, 22, b[15]), f = d(f, m, g, h, e, 5, b[16]), h = d(h, f, m, g, t, 9, b[17]), g = d(g, h, f, m, C, 14, b[18]), m = d(m, g, h, f, c, 20, b[19]), f = d(f, m, g, h, r, 5, b[20]), h = d(h, f, m, g, B, 9, b[21]), g = d(g, h, f, m, x, 14, b[22]), m = d(m, g, h, f, z, 20, b[23]), f = d(f, m, g, h, A, 5, b[24]), h = d(h, f, m, g, E, 9, b[25]), g = d(g, h, f, m, k, 14, b[26]), m = d(m, g, h, f, v, 20, b[27]), f = d(f, m, g, h, D, 5, b[28]), h = d(h, f,
|
||||
m, g, j, 9, b[29]), g = d(g, h, f, m, w, 14, b[30]), m = d(m, g, h, f, u, 20, b[31]), f = l(f, m, g, h, r, 4, b[32]), h = l(h, f, m, g, v, 11, b[33]), g = l(g, h, f, m, C, 16, b[34]), m = l(m, g, h, f, E, 23, b[35]), f = l(f, m, g, h, e, 4, b[36]), h = l(h, f, m, g, z, 11, b[37]), g = l(g, h, f, m, w, 16, b[38]), m = l(m, g, h, f, B, 23, b[39]), f = l(f, m, g, h, D, 4, b[40]), h = l(h, f, m, g, c, 11, b[41]), g = l(g, h, f, m, k, 16, b[42]), m = l(m, g, h, f, t, 23, b[43]), f = l(f, m, g, h, A, 4, b[44]), h = l(h, f, m, g, u, 11, b[45]), g = l(g, h, f, m, x, 16, b[46]), m = l(m, g, h, f, j, 23, b[47]), f = s(f, m, g, h, c, 6, b[48]), h = s(h, f, m, g, w, 10, b[49]), g = s(g, h, f, m,
|
||||
E, 15, b[50]), m = s(m, g, h, f, r, 21, b[51]), f = s(f, m, g, h, u, 6, b[52]), h = s(h, f, m, g, k, 10, b[53]), g = s(g, h, f, m, B, 15, b[54]), m = s(m, g, h, f, e, 21, b[55]), f = s(f, m, g, h, v, 6, b[56]), h = s(h, f, m, g, x, 10, b[57]), g = s(g, h, f, m, t, 15, b[58]), m = s(m, g, h, f, D, 21, b[59]), f = s(f, m, g, h, z, 6, b[60]), h = s(h, f, m, g, C, 10, b[61]), g = s(g, h, f, m, j, 15, b[62]), m = s(m, g, h, f, A, 21, b[63]);
|
||||
a[0] = a[0] + f | 0;
|
||||
a[1] = a[1] + m | 0;
|
||||
a[2] = a[2] + g | 0;
|
||||
a[3] = a[3] + h | 0
|
||||
}, _doFinalize: function () {
|
||||
var b = this._data, n = b.words, a = 8 * this._nDataBytes, c = 8 * b.sigBytes;
|
||||
n[c >>> 5] |= 128 << 24 - c % 32;
|
||||
var e = u.floor(a /
|
||||
4294967296);
|
||||
n[(c + 64 >>> 9 << 4) + 15] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360;
|
||||
n[(c + 64 >>> 9 << 4) + 14] = (a << 8 | a >>> 24) & 16711935 | (a << 24 | a >>> 8) & 4278255360;
|
||||
b.sigBytes = 4 * (n.length + 1);
|
||||
this._process();
|
||||
b = this._hash;
|
||||
n = b.words;
|
||||
for (a = 0; 4 > a; a++) c = n[a], n[a] = (c << 8 | c >>> 24) & 16711935 | (c << 24 | c >>> 8) & 4278255360;
|
||||
return b
|
||||
}, clone: function () {
|
||||
var b = v.clone.call(this);
|
||||
b._hash = this._hash.clone();
|
||||
return b
|
||||
}
|
||||
});
|
||||
t.MD5 = v._createHelper(r);
|
||||
t.HmacMD5 = v._createHmacHelper(r)
|
||||
})(Math);
|
||||
(function () {
|
||||
var u = CryptoJS, p = u.lib, d = p.Base, l = p.WordArray, p = u.algo, s = p.EvpKDF = d.extend({
|
||||
cfg: d.extend({keySize: 4, hasher: p.MD5, iterations: 1}), init: function (d) {
|
||||
this.cfg = this.cfg.extend(d)
|
||||
}, compute: function (d, r) {
|
||||
for (var p = this.cfg, s = p.hasher.create(), b = l.create(), u = b.words, q = p.keySize, p = p.iterations; u.length < q;) {
|
||||
n && s.update(n);
|
||||
var n = s.update(d).finalize(r);
|
||||
s.reset();
|
||||
for (var a = 1; a < p; a++) n = s.finalize(n), s.reset();
|
||||
b.concat(n)
|
||||
}
|
||||
b.sigBytes = 4 * q;
|
||||
return b
|
||||
}
|
||||
});
|
||||
u.EvpKDF = function (d, l, p) {
|
||||
return s.create(p).compute(d,
|
||||
l)
|
||||
}
|
||||
})();
|
||||
CryptoJS.lib.Cipher || function (u) {
|
||||
var p = CryptoJS, d = p.lib, l = d.Base, s = d.WordArray, t = d.BufferedBlockAlgorithm, r = p.enc.Base64, w = p.algo.EvpKDF, v = d.Cipher = t.extend({
|
||||
cfg: l.extend(), createEncryptor: function (e, a) {
|
||||
return this.create(this._ENC_XFORM_MODE, e, a)
|
||||
}, createDecryptor: function (e, a) {
|
||||
return this.create(this._DEC_XFORM_MODE, e, a)
|
||||
}, init: function (e, a, b) {
|
||||
this.cfg = this.cfg.extend(b);
|
||||
this._xformMode = e;
|
||||
this._key = a;
|
||||
this.reset()
|
||||
}, reset: function () {
|
||||
t.reset.call(this);
|
||||
this._doReset()
|
||||
}, process: function (e) {
|
||||
this._append(e);
|
||||
return this._process()
|
||||
},
|
||||
finalize: function (e) {
|
||||
e && this._append(e);
|
||||
return this._doFinalize()
|
||||
}, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function (e) {
|
||||
return {
|
||||
encrypt: function (b, k, d) {
|
||||
return ("string" == typeof k ? c : a).encrypt(e, b, k, d)
|
||||
}, decrypt: function (b, k, d) {
|
||||
return ("string" == typeof k ? c : a).decrypt(e, b, k, d)
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
d.StreamCipher = v.extend({
|
||||
_doFinalize: function () {
|
||||
return this._process(!0)
|
||||
}, blockSize: 1
|
||||
});
|
||||
var b = p.mode = {}, x = function (e, a, b) {
|
||||
var c = this._iv;
|
||||
c ? this._iv = u : c = this._prevBlock;
|
||||
for (var d = 0; d < b; d++) e[a + d] ^=
|
||||
c[d]
|
||||
}, q = (d.BlockCipherMode = l.extend({
|
||||
createEncryptor: function (e, a) {
|
||||
return this.Encryptor.create(e, a)
|
||||
}, createDecryptor: function (e, a) {
|
||||
return this.Decryptor.create(e, a)
|
||||
}, init: function (e, a) {
|
||||
this._cipher = e;
|
||||
this._iv = a
|
||||
}
|
||||
})).extend();
|
||||
q.Encryptor = q.extend({
|
||||
processBlock: function (e, a) {
|
||||
var b = this._cipher, c = b.blockSize;
|
||||
x.call(this, e, a, c);
|
||||
b.encryptBlock(e, a);
|
||||
this._prevBlock = e.slice(a, a + c)
|
||||
}
|
||||
});
|
||||
q.Decryptor = q.extend({
|
||||
processBlock: function (e, a) {
|
||||
var b = this._cipher, c = b.blockSize, d = e.slice(a, a + c);
|
||||
b.decryptBlock(e, a);
|
||||
x.call(this,
|
||||
e, a, c);
|
||||
this._prevBlock = d
|
||||
}
|
||||
});
|
||||
b = b.CBC = q;
|
||||
q = (p.pad = {}).Pkcs7 = {
|
||||
pad: function (a, b) {
|
||||
for (var c = 4 * b, c = c - a.sigBytes % c, d = c << 24 | c << 16 | c << 8 | c, l = [], n = 0; n < c; n += 4) l.push(d);
|
||||
c = s.create(l, c);
|
||||
a.concat(c)
|
||||
}, unpad: function (a) {
|
||||
a.sigBytes -= a.words[a.sigBytes - 1 >>> 2] & 255
|
||||
}
|
||||
};
|
||||
d.BlockCipher = v.extend({
|
||||
cfg: v.cfg.extend({mode: b, padding: q}), reset: function () {
|
||||
v.reset.call(this);
|
||||
var a = this.cfg, b = a.iv, a = a.mode;
|
||||
if (this._xformMode == this._ENC_XFORM_MODE) var c = a.createEncryptor; else c = a.createDecryptor, this._minBufferSize = 1;
|
||||
this._mode = c.call(a,
|
||||
this, b && b.words)
|
||||
}, _doProcessBlock: function (a, b) {
|
||||
this._mode.processBlock(a, b)
|
||||
}, _doFinalize: function () {
|
||||
var a = this.cfg.padding;
|
||||
if (this._xformMode == this._ENC_XFORM_MODE) {
|
||||
a.pad(this._data, this.blockSize);
|
||||
var b = this._process(!0)
|
||||
} else b = this._process(!0), a.unpad(b);
|
||||
return b
|
||||
}, blockSize: 4
|
||||
});
|
||||
var n = d.CipherParams = l.extend({
|
||||
init: function (a) {
|
||||
this.mixIn(a)
|
||||
}, toString: function (a) {
|
||||
return (a || this.formatter).stringify(this)
|
||||
}
|
||||
}), b = (p.format = {}).OpenSSL = {
|
||||
stringify: function (a) {
|
||||
var b = a.ciphertext;
|
||||
a = a.salt;
|
||||
return (a ? s.create([1398893684,
|
||||
1701076831]).concat(a).concat(b) : b).toString(r)
|
||||
}, parse: function (a) {
|
||||
a = r.parse(a);
|
||||
var b = a.words;
|
||||
if (1398893684 == b[0] && 1701076831 == b[1]) {
|
||||
var c = s.create(b.slice(2, 4));
|
||||
b.splice(0, 4);
|
||||
a.sigBytes -= 16
|
||||
}
|
||||
return n.create({ciphertext: a, salt: c})
|
||||
}
|
||||
}, a = d.SerializableCipher = l.extend({
|
||||
cfg: l.extend({format: b}), encrypt: function (a, b, c, d) {
|
||||
d = this.cfg.extend(d);
|
||||
var l = a.createEncryptor(c, d);
|
||||
b = l.finalize(b);
|
||||
l = l.cfg;
|
||||
return n.create({ciphertext: b, key: c, iv: l.iv, algorithm: a, mode: l.mode, padding: l.padding, blockSize: a.blockSize, formatter: d.format})
|
||||
},
|
||||
decrypt: function (a, b, c, d) {
|
||||
d = this.cfg.extend(d);
|
||||
b = this._parse(b, d.format);
|
||||
return a.createDecryptor(c, d).finalize(b.ciphertext)
|
||||
}, _parse: function (a, b) {
|
||||
return "string" == typeof a ? b.parse(a, this) : a
|
||||
}
|
||||
}), p = (p.kdf = {}).OpenSSL = {
|
||||
execute: function (a, b, c, d) {
|
||||
d || (d = s.random(8));
|
||||
a = w.create({keySize: b + c}).compute(a, d);
|
||||
c = s.create(a.words.slice(b), 4 * c);
|
||||
a.sigBytes = 4 * b;
|
||||
return n.create({key: a, iv: c, salt: d})
|
||||
}
|
||||
}, c = d.PasswordBasedCipher = a.extend({
|
||||
cfg: a.cfg.extend({kdf: p}), encrypt: function (b, c, d, l) {
|
||||
l = this.cfg.extend(l);
|
||||
d = l.kdf.execute(d,
|
||||
b.keySize, b.ivSize);
|
||||
l.iv = d.iv;
|
||||
b = a.encrypt.call(this, b, c, d.key, l);
|
||||
b.mixIn(d);
|
||||
return b
|
||||
}, decrypt: function (b, c, d, l) {
|
||||
l = this.cfg.extend(l);
|
||||
c = this._parse(c, l.format);
|
||||
d = l.kdf.execute(d, b.keySize, b.ivSize, c.salt);
|
||||
l.iv = d.iv;
|
||||
return a.decrypt.call(this, b, c, d.key, l)
|
||||
}
|
||||
})
|
||||
}();
|
||||
(function () {
|
||||
for (var u = CryptoJS, p = u.lib.BlockCipher, d = u.algo, l = [], s = [], t = [], r = [], w = [], v = [], b = [], x = [], q = [], n = [], a = [], c = 0; 256 > c; c++) a[c] = 128 > c ? c << 1 : c << 1 ^ 283;
|
||||
for (var e = 0, j = 0, c = 0; 256 > c; c++) {
|
||||
var k = j ^ j << 1 ^ j << 2 ^ j << 3 ^ j << 4, k = k >>> 8 ^ k & 255 ^ 99;
|
||||
l[e] = k;
|
||||
s[k] = e;
|
||||
var z = a[e], F = a[z], G = a[F], y = 257 * a[k] ^ 16843008 * k;
|
||||
t[e] = y << 24 | y >>> 8;
|
||||
r[e] = y << 16 | y >>> 16;
|
||||
w[e] = y << 8 | y >>> 24;
|
||||
v[e] = y;
|
||||
y = 16843009 * G ^ 65537 * F ^ 257 * z ^ 16843008 * e;
|
||||
b[k] = y << 24 | y >>> 8;
|
||||
x[k] = y << 16 | y >>> 16;
|
||||
q[k] = y << 8 | y >>> 24;
|
||||
n[k] = y;
|
||||
e ? (e = z ^ a[a[a[G ^ z]]], j ^= a[a[j]]) : e = j = 1
|
||||
}
|
||||
var H = [0, 1, 2, 4, 8,
|
||||
16, 32, 64, 128, 27, 54], d = d.AES = p.extend({
|
||||
_doReset: function () {
|
||||
for (var a = this._key, c = a.words, d = a.sigBytes / 4, a = 4 * ((this._nRounds = d + 6) + 1), e = this._keySchedule = [], j = 0; j < a; j++) if (j < d) e[j] = c[j]; else {
|
||||
var k = e[j - 1];
|
||||
j % d ? 6 < d && 4 == j % d && (k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255]) : (k = k << 8 | k >>> 24, k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255], k ^= H[j / d | 0] << 24);
|
||||
e[j] = e[j - d] ^ k
|
||||
}
|
||||
c = this._invKeySchedule = [];
|
||||
for (d = 0; d < a; d++) j = a - d, k = d % 4 ? e[j] : e[j - 4], c[d] = 4 > d || 4 >= j ? k : b[l[k >>> 24]] ^ x[l[k >>> 16 & 255]] ^ q[l[k >>>
|
||||
8 & 255]] ^ n[l[k & 255]]
|
||||
}, encryptBlock: function (a, b) {
|
||||
this._doCryptBlock(a, b, this._keySchedule, t, r, w, v, l)
|
||||
}, decryptBlock: function (a, c) {
|
||||
var d = a[c + 1];
|
||||
a[c + 1] = a[c + 3];
|
||||
a[c + 3] = d;
|
||||
this._doCryptBlock(a, c, this._invKeySchedule, b, x, q, n, s);
|
||||
d = a[c + 1];
|
||||
a[c + 1] = a[c + 3];
|
||||
a[c + 3] = d
|
||||
}, _doCryptBlock: function (a, b, c, d, e, j, l, f) {
|
||||
for (var m = this._nRounds, g = a[b] ^ c[0], h = a[b + 1] ^ c[1], k = a[b + 2] ^ c[2], n = a[b + 3] ^ c[3], p = 4, r = 1; r < m; r++) var q = d[g >>> 24] ^ e[h >>> 16 & 255] ^ j[k >>> 8 & 255] ^ l[n & 255] ^ c[p++], s = d[h >>> 24] ^ e[k >>> 16 & 255] ^ j[n >>> 8 & 255] ^ l[g & 255] ^ c[p++], t =
|
||||
d[k >>> 24] ^ e[n >>> 16 & 255] ^ j[g >>> 8 & 255] ^ l[h & 255] ^ c[p++], n = d[n >>> 24] ^ e[g >>> 16 & 255] ^ j[h >>> 8 & 255] ^ l[k & 255] ^ c[p++], g = q, h = s, k = t;
|
||||
q = (f[g >>> 24] << 24 | f[h >>> 16 & 255] << 16 | f[k >>> 8 & 255] << 8 | f[n & 255]) ^ c[p++];
|
||||
s = (f[h >>> 24] << 24 | f[k >>> 16 & 255] << 16 | f[n >>> 8 & 255] << 8 | f[g & 255]) ^ c[p++];
|
||||
t = (f[k >>> 24] << 24 | f[n >>> 16 & 255] << 16 | f[g >>> 8 & 255] << 8 | f[h & 255]) ^ c[p++];
|
||||
n = (f[n >>> 24] << 24 | f[g >>> 16 & 255] << 16 | f[h >>> 8 & 255] << 8 | f[k & 255]) ^ c[p++];
|
||||
a[b] = q;
|
||||
a[b + 1] = s;
|
||||
a[b + 2] = t;
|
||||
a[b + 3] = n
|
||||
}, keySize: 8
|
||||
});
|
||||
u.AES = p._createHelper(d)
|
||||
})();
|
||||
|
||||
|
||||
CryptoJS.mode.CFB = (function () {
|
||||
var CFB = CryptoJS.lib.BlockCipherMode.extend();
|
||||
|
||||
CFB.Encryptor = CFB.extend({
|
||||
processBlock: function (words, offset) {
|
||||
// Shortcuts
|
||||
var cipher = this._cipher;
|
||||
var blockSize = cipher.blockSize;
|
||||
|
||||
generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
|
||||
|
||||
// Remember this block to use with next block
|
||||
this._prevBlock = words.slice(offset, offset + blockSize);
|
||||
}
|
||||
});
|
||||
|
||||
CFB.Decryptor = CFB.extend({
|
||||
processBlock: function (words, offset) {
|
||||
// Shortcuts
|
||||
var cipher = this._cipher;
|
||||
var blockSize = cipher.blockSize;
|
||||
|
||||
// Remember this block to use with next block
|
||||
var thisBlock = words.slice(offset, offset + blockSize);
|
||||
|
||||
generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);
|
||||
|
||||
// This block becomes the previous block
|
||||
this._prevBlock = thisBlock;
|
||||
}
|
||||
});
|
||||
|
||||
function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {
|
||||
// Shortcut
|
||||
var iv = this._iv;
|
||||
|
||||
// Generate keystream
|
||||
if (iv) {
|
||||
var keystream = iv.slice(0);
|
||||
|
||||
// Remove IV for subsequent blocks
|
||||
this._iv = undefined;
|
||||
} else {
|
||||
var keystream = this._prevBlock;
|
||||
}
|
||||
cipher.encryptBlock(keystream, 0);
|
||||
|
||||
// Encrypt
|
||||
for (var i = 0; i < blockSize; i++) {
|
||||
words[offset + i] ^= keystream[i];
|
||||
}
|
||||
}
|
||||
|
||||
return CFB;
|
||||
}());
|
@ -0,0 +1,19 @@
|
||||
/*
|
||||
CryptoJS v3.1.2
|
||||
code.google.com/p/crypto-js
|
||||
(c) 2009-2013 by Jeff Mott. All rights reserved.
|
||||
code.google.com/p/crypto-js/wiki/License
|
||||
*/
|
||||
var CryptoJS=CryptoJS||function(s,p){var m={},l=m.lib={},n=function(){},r=l.Base={extend:function(b){n.prototype=this;var h=new n;b&&h.mixIn(b);h.hasOwnProperty("init")||(h.init=function(){h.$super.init.apply(this,arguments)});h.init.prototype=h;h.$super=this;return h},create:function(){var b=this.extend();b.init.apply(b,arguments);return b},init:function(){},mixIn:function(b){for(var h in b)b.hasOwnProperty(h)&&(this[h]=b[h]);b.hasOwnProperty("toString")&&(this.toString=b.toString)},clone:function(){return this.init.prototype.extend(this)}},
|
||||
q=l.WordArray=r.extend({init:function(b,h){b=this.words=b||[];this.sigBytes=h!=p?h:4*b.length},toString:function(b){return(b||t).stringify(this)},concat:function(b){var h=this.words,a=b.words,j=this.sigBytes;b=b.sigBytes;this.clamp();if(j%4)for(var g=0;g<b;g++)h[j+g>>>2]|=(a[g>>>2]>>>24-8*(g%4)&255)<<24-8*((j+g)%4);else if(65535<a.length)for(g=0;g<b;g+=4)h[j+g>>>2]=a[g>>>2];else h.push.apply(h,a);this.sigBytes+=b;return this},clamp:function(){var b=this.words,h=this.sigBytes;b[h>>>2]&=4294967295<<
|
||||
32-8*(h%4);b.length=s.ceil(h/4)},clone:function(){var b=r.clone.call(this);b.words=this.words.slice(0);return b},random:function(b){for(var h=[],a=0;a<b;a+=4)h.push(4294967296*s.random()|0);return new q.init(h,b)}}),v=m.enc={},t=v.Hex={stringify:function(b){var a=b.words;b=b.sigBytes;for(var g=[],j=0;j<b;j++){var k=a[j>>>2]>>>24-8*(j%4)&255;g.push((k>>>4).toString(16));g.push((k&15).toString(16))}return g.join("")},parse:function(b){for(var a=b.length,g=[],j=0;j<a;j+=2)g[j>>>3]|=parseInt(b.substr(j,
|
||||
2),16)<<24-4*(j%8);return new q.init(g,a/2)}},a=v.Latin1={stringify:function(b){var a=b.words;b=b.sigBytes;for(var g=[],j=0;j<b;j++)g.push(String.fromCharCode(a[j>>>2]>>>24-8*(j%4)&255));return g.join("")},parse:function(b){for(var a=b.length,g=[],j=0;j<a;j++)g[j>>>2]|=(b.charCodeAt(j)&255)<<24-8*(j%4);return new q.init(g,a)}},u=v.Utf8={stringify:function(b){try{return decodeURIComponent(escape(a.stringify(b)))}catch(g){throw Error("Malformed UTF-8 data");}},parse:function(b){return a.parse(unescape(encodeURIComponent(b)))}},
|
||||
g=l.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new q.init;this._nDataBytes=0},_append:function(b){"string"==typeof b&&(b=u.parse(b));this._data.concat(b);this._nDataBytes+=b.sigBytes},_process:function(b){var a=this._data,g=a.words,j=a.sigBytes,k=this.blockSize,m=j/(4*k),m=b?s.ceil(m):s.max((m|0)-this._minBufferSize,0);b=m*k;j=s.min(4*b,j);if(b){for(var l=0;l<b;l+=k)this._doProcessBlock(g,l);l=g.splice(0,b);a.sigBytes-=j}return new q.init(l,j)},clone:function(){var b=r.clone.call(this);
|
||||
b._data=this._data.clone();return b},_minBufferSize:0});l.Hasher=g.extend({cfg:r.extend(),init:function(b){this.cfg=this.cfg.extend(b);this.reset()},reset:function(){g.reset.call(this);this._doReset()},update:function(b){this._append(b);this._process();return this},finalize:function(b){b&&this._append(b);return this._doFinalize()},blockSize:16,_createHelper:function(b){return function(a,g){return(new b.init(g)).finalize(a)}},_createHmacHelper:function(b){return function(a,g){return(new k.HMAC.init(b,
|
||||
g)).finalize(a)}}});var k=m.algo={};return m}(Math);
|
||||
(function(s){function p(a,k,b,h,l,j,m){a=a+(k&b|~k&h)+l+m;return(a<<j|a>>>32-j)+k}function m(a,k,b,h,l,j,m){a=a+(k&h|b&~h)+l+m;return(a<<j|a>>>32-j)+k}function l(a,k,b,h,l,j,m){a=a+(k^b^h)+l+m;return(a<<j|a>>>32-j)+k}function n(a,k,b,h,l,j,m){a=a+(b^(k|~h))+l+m;return(a<<j|a>>>32-j)+k}for(var r=CryptoJS,q=r.lib,v=q.WordArray,t=q.Hasher,q=r.algo,a=[],u=0;64>u;u++)a[u]=4294967296*s.abs(s.sin(u+1))|0;q=q.MD5=t.extend({_doReset:function(){this._hash=new v.init([1732584193,4023233417,2562383102,271733878])},
|
||||
_doProcessBlock:function(g,k){for(var b=0;16>b;b++){var h=k+b,w=g[h];g[h]=(w<<8|w>>>24)&16711935|(w<<24|w>>>8)&4278255360}var b=this._hash.words,h=g[k+0],w=g[k+1],j=g[k+2],q=g[k+3],r=g[k+4],s=g[k+5],t=g[k+6],u=g[k+7],v=g[k+8],x=g[k+9],y=g[k+10],z=g[k+11],A=g[k+12],B=g[k+13],C=g[k+14],D=g[k+15],c=b[0],d=b[1],e=b[2],f=b[3],c=p(c,d,e,f,h,7,a[0]),f=p(f,c,d,e,w,12,a[1]),e=p(e,f,c,d,j,17,a[2]),d=p(d,e,f,c,q,22,a[3]),c=p(c,d,e,f,r,7,a[4]),f=p(f,c,d,e,s,12,a[5]),e=p(e,f,c,d,t,17,a[6]),d=p(d,e,f,c,u,22,a[7]),
|
||||
c=p(c,d,e,f,v,7,a[8]),f=p(f,c,d,e,x,12,a[9]),e=p(e,f,c,d,y,17,a[10]),d=p(d,e,f,c,z,22,a[11]),c=p(c,d,e,f,A,7,a[12]),f=p(f,c,d,e,B,12,a[13]),e=p(e,f,c,d,C,17,a[14]),d=p(d,e,f,c,D,22,a[15]),c=m(c,d,e,f,w,5,a[16]),f=m(f,c,d,e,t,9,a[17]),e=m(e,f,c,d,z,14,a[18]),d=m(d,e,f,c,h,20,a[19]),c=m(c,d,e,f,s,5,a[20]),f=m(f,c,d,e,y,9,a[21]),e=m(e,f,c,d,D,14,a[22]),d=m(d,e,f,c,r,20,a[23]),c=m(c,d,e,f,x,5,a[24]),f=m(f,c,d,e,C,9,a[25]),e=m(e,f,c,d,q,14,a[26]),d=m(d,e,f,c,v,20,a[27]),c=m(c,d,e,f,B,5,a[28]),f=m(f,c,
|
||||
d,e,j,9,a[29]),e=m(e,f,c,d,u,14,a[30]),d=m(d,e,f,c,A,20,a[31]),c=l(c,d,e,f,s,4,a[32]),f=l(f,c,d,e,v,11,a[33]),e=l(e,f,c,d,z,16,a[34]),d=l(d,e,f,c,C,23,a[35]),c=l(c,d,e,f,w,4,a[36]),f=l(f,c,d,e,r,11,a[37]),e=l(e,f,c,d,u,16,a[38]),d=l(d,e,f,c,y,23,a[39]),c=l(c,d,e,f,B,4,a[40]),f=l(f,c,d,e,h,11,a[41]),e=l(e,f,c,d,q,16,a[42]),d=l(d,e,f,c,t,23,a[43]),c=l(c,d,e,f,x,4,a[44]),f=l(f,c,d,e,A,11,a[45]),e=l(e,f,c,d,D,16,a[46]),d=l(d,e,f,c,j,23,a[47]),c=n(c,d,e,f,h,6,a[48]),f=n(f,c,d,e,u,10,a[49]),e=n(e,f,c,d,
|
||||
C,15,a[50]),d=n(d,e,f,c,s,21,a[51]),c=n(c,d,e,f,A,6,a[52]),f=n(f,c,d,e,q,10,a[53]),e=n(e,f,c,d,y,15,a[54]),d=n(d,e,f,c,w,21,a[55]),c=n(c,d,e,f,v,6,a[56]),f=n(f,c,d,e,D,10,a[57]),e=n(e,f,c,d,t,15,a[58]),d=n(d,e,f,c,B,21,a[59]),c=n(c,d,e,f,r,6,a[60]),f=n(f,c,d,e,z,10,a[61]),e=n(e,f,c,d,j,15,a[62]),d=n(d,e,f,c,x,21,a[63]);b[0]=b[0]+c|0;b[1]=b[1]+d|0;b[2]=b[2]+e|0;b[3]=b[3]+f|0},_doFinalize:function(){var a=this._data,k=a.words,b=8*this._nDataBytes,h=8*a.sigBytes;k[h>>>5]|=128<<24-h%32;var l=s.floor(b/
|
||||
4294967296);k[(h+64>>>9<<4)+15]=(l<<8|l>>>24)&16711935|(l<<24|l>>>8)&4278255360;k[(h+64>>>9<<4)+14]=(b<<8|b>>>24)&16711935|(b<<24|b>>>8)&4278255360;a.sigBytes=4*(k.length+1);this._process();a=this._hash;k=a.words;for(b=0;4>b;b++)h=k[b],k[b]=(h<<8|h>>>24)&16711935|(h<<24|h>>>8)&4278255360;return a},clone:function(){var a=t.clone.call(this);a._hash=this._hash.clone();return a}});r.MD5=t._createHelper(q);r.HmacMD5=t._createHmacHelper(q)})(Math);
|
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@
|
||||
window.sm4=function(r){function n(e){if(t[e])return t[e].exports;var o=t[e]={i:e,l:!1,exports:{}};return r[e].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var t={};return n.m=r,n.c=t,n.d=function(r,t,e){n.o(r,t)||Object.defineProperty(r,t,{configurable:!1,enumerable:!0,get:e})},n.n=function(r){var t=r&&r.__esModule?function(){return r.default}:function(){return r};return n.d(t,"a",t),t},n.o=function(r,n){return Object.prototype.hasOwnProperty.call(r,n)},n.p="",n(n.s=8)}({8:function(r,n,t){"use strict";function e(r){if(Array.isArray(r)){for(var n=0,t=Array(r.length);n<r.length;n++)t[n]=r[n];return t}return Array.from(r)}function o(r){for(var n=[],t=0,e=r.length;t<e;t+=2)n.push(parseInt(r.substr(t,2),16));return n}function u(r){return r.map(function(r){return r=r.toString(16),1===r.length?"0"+r:r}).join("")}function i(r){for(var n=[],t=0,e=r.length;t<e;t++){var o=r.codePointAt(t);if(o<=127)n.push(o);else if(o<=2047)n.push(192|o>>>6),n.push(128|63&o);else if(o<=55295||o>=57344&&o<=65535)n.push(224|o>>>12),n.push(128|o>>>6&63),n.push(128|63&o);else{if(!(o>=65536&&o<=1114111))throw n.push(o),new Error("input is not supported");t++,n.push(240|o>>>18&28),n.push(128|o>>>12&63),n.push(128|o>>>6&63),n.push(128|63&o)}}return n}function f(r){for(var n=[],t=0,e=r.length;t<e;t++)r[t]>=240&&r[t]<=247?(n.push(String.fromCodePoint(((7&r[t])<<18)+((63&r[t+1])<<12)+((63&r[t+2])<<6)+(63&r[t+3]))),t+=3):r[t]>=224&&r[t]<=239?(n.push(String.fromCodePoint(((15&r[t])<<12)+((63&r[t+1])<<6)+(63&r[t+2]))),t+=2):r[t]>=192&&r[t]<=223?(n.push(String.fromCodePoint(((31&r[t])<<6)+(63&r[t+1]))),t++):n.push(String.fromCodePoint(r[t]));return n.join("")}function s(r,n){return r<<n|r>>>32-n}function a(r){return(255&w[r>>>24&255])<<24|(255&w[r>>>16&255])<<16|(255&w[r>>>8&255])<<8|255&w[255&r]}function p(r){return r^s(r,2)^s(r,10)^s(r,18)^s(r,24)}function c(r){return r^s(r,13)^s(r,23)}function h(r,n,t){for(var e=new Array(4),o=new Array(4),u=0;u<4;u++)o[0]=255&r[0+4*u],o[1]=255&r[1+4*u],o[2]=255&r[2+4*u],o[3]=255&r[3+4*u],e[u]=o[0]<<24|o[1]<<16|o[2]<<8|o[3];for(var i,f=0;f<32;f+=4)i=e[1]^e[2]^e[3]^t[f+0],e[0]^=p(a(i)),i=e[2]^e[3]^e[0]^t[f+1],e[1]^=p(a(i)),i=e[3]^e[0]^e[1]^t[f+2],e[2]^=p(a(i)),i=e[0]^e[1]^e[2]^t[f+3],e[3]^=p(a(i));for(var s=0;s<16;s+=4)n[s]=e[3-s/4]>>>24&255,n[s+1]=e[3-s/4]>>>16&255,n[s+2]=e[3-s/4]>>>8&255,n[s+3]=255&e[3-s/4]}function l(r,n,t){for(var e=new Array(4),o=new Array(4),u=0;u<4;u++)o[0]=255&r[0+4*u],o[1]=255&r[1+4*u],o[2]=255&r[2+4*u],o[3]=255&r[3+4*u],e[u]=o[0]<<24|o[1]<<16|o[2]<<8|o[3];e[0]^=2746333894,e[1]^=1453994832,e[2]^=1736282519,e[3]^=2993693404;for(var i,f=0;f<32;f+=4)i=e[1]^e[2]^e[3]^A[f+0],n[f+0]=e[0]^=c(a(i)),i=e[2]^e[3]^e[0]^A[f+1],n[f+1]=e[1]^=c(a(i)),i=e[3]^e[0]^e[1]^A[f+2],n[f+2]=e[2]^=c(a(i)),i=e[0]^e[1]^e[2]^A[f+3],n[f+3]=e[3]^=c(a(i));if(t===g)for(var s,p=0;p<16;p++)s=n[p],n[p]=n[31-p],n[31-p]=s}function v(r,n,t){var s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=s.padding,p=void 0===a?"pkcs#5":a,c=(s.mode,s.output),v=void 0===c?"string":c;if("string"==typeof n&&(n=o(n)),16!==n.length)throw new Error("key is invalid");if(r="string"==typeof r?t!==g?i(r):o(r):[].concat(e(r)),"pkcs#5"===p&&t!==g)for(var w=y-r.length%y,A=0;A<w;A++)r.push(w);var m=new Array(d);l(n,m,t);for(var P=[],x=r.length,b=0;x>=y;){var S=r.slice(b,b+16),j=new Array(16);h(S,j,m);for(var k=0;k<y;k++)P[b+k]=j[k];x-=y,b+=y}if("pkcs#5"===p&&t===g){var C=P[P.length-1];P.splice(P.length-C,C)}return"array"!==v?t!==g?u(P):f(P):P}var g=0,d=32,y=16,w=[214,144,233,254,204,225,61,183,22,182,20,194,40,251,44,5,43,103,154,118,42,190,4,195,170,68,19,38,73,134,6,153,156,66,80,244,145,239,152,122,51,84,11,67,237,207,172,98,228,179,28,169,201,8,232,149,128,223,148,250,117,143,63,166,71,7,167,252,243,115,23,186,131,89,60,25,230,133,79,168,104,107,129,178,113,100,218,139,248,235,15,75,112,86,157,53,30,36,14,94,99,88,209,162,37,34,124,59,1,33,120,135,212,0,70,87,159,211,39,82,76,54,2,231,160,196,200,158,234,191,138,210,64,199,56,181,163,247,242,206,249,97,21,161,224,174,93,164,155,52,26,85,173,147,50,48,245,140,177,227,29,246,226,46,130,102,202,96,192,41,35,171,13,83,78,111,213,219,55,69,222,253,142,47,3,255,106,114,109,108,91,81,141,27,175,146,187,221,188,127,17,217,92,65,31,16,90,216,10,193,49,136,165,205,123,189,45,116,208,18,184,229,180,176,137,105,151,74,12,150,119,126,101,185,241,9,197,110,198,132,24,240,125,236,58,220,77,32,121,238,95,62,215,203,57,72],A=[462357,472066609,943670861,1415275113,1886879365,2358483617,2830087869,3301692121,3773296373,4228057617,404694573,876298825,1347903077,1819507329,2291111581,2762715833,3234320085,3705924337,4177462797,337322537,808926789,1280531041,1752135293,2223739545,2695343797,3166948049,3638552301,4110090761,269950501,741554753,1213159005,1684763257];r.exports={encrypt:function(r,n,t){return v(r,n,1,t)},decrypt:function(r,n,t){return v(r,n,0,t)}}}});
|
Loading…
Reference in new issue