aes.js 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650
  1. ! function (t, n) {
  2. "object" == typeof exports ? module.exports = exports = n() : "function" == typeof define && define.amd ? define([], n) : t.CryptoJS = n()
  3. }(this, function () {
  4. var t = t || function (t, n) {
  5. var i = Object.create || function () {
  6. function t() {}
  7. return function (n) {
  8. var i;
  9. return t.prototype = n, i = new t, t.prototype = null, i
  10. }
  11. }(),
  12. e = {},
  13. r = e.lib = {},
  14. o = r.Base = function () {
  15. return {
  16. extend: function (t) {
  17. var n = i(this);
  18. return t && n.mixIn(t), n.hasOwnProperty("init") && this.init !== n.init || (n.init = function () {
  19. n.$super.init.apply(this, arguments)
  20. }), n.init.prototype = n, n.$super = this, n
  21. },
  22. create: function () {
  23. var t = this.extend();
  24. return t.init.apply(t, arguments), t
  25. },
  26. init: function () {},
  27. mixIn: function (t) {
  28. for (var n in t) t.hasOwnProperty(n) && (this[n] = t[n]);
  29. t.hasOwnProperty("toString") && (this.toString = t.toString)
  30. },
  31. clone: function () {
  32. return this.init.prototype.extend(this)
  33. }
  34. }
  35. }(),
  36. s = r.WordArray = o.extend({
  37. init: function (t, i) {
  38. t = this.words = t || [], i != n ? this.sigBytes = i : this.sigBytes = 4 * t.length
  39. },
  40. toString: function (t) {
  41. return (t || c).stringify(this)
  42. },
  43. concat: function (t) {
  44. var n = this.words,
  45. i = t.words,
  46. e = this.sigBytes,
  47. r = t.sigBytes;
  48. if (this.clamp(), e % 4)
  49. for (var o = 0; o < r; o++) {
  50. var s = i[o >>> 2] >>> 24 - o % 4 * 8 & 255;
  51. n[e + o >>> 2] |= s << 24 - (e + o) % 4 * 8
  52. } else
  53. for (var o = 0; o < r; o += 4) n[e + o >>> 2] = i[o >>> 2];
  54. return this.sigBytes += r, this
  55. },
  56. clamp: function () {
  57. var n = this.words,
  58. i = this.sigBytes;
  59. n[i >>> 2] &= 4294967295 << 32 - i % 4 * 8, n.length = t.ceil(i / 4)
  60. },
  61. clone: function () {
  62. var t = o.clone.call(this);
  63. return t.words = this.words.slice(0), t
  64. },
  65. random: function (n) {
  66. for (var i, e = [], r = function (n) {
  67. var n = n,
  68. i = 987654321,
  69. e = 4294967295;
  70. return function () {
  71. i = 36969 * (65535 & i) + (i >> 16) & e, n = 18e3 * (65535 & n) + (n >> 16) & e;
  72. var r = (i << 16) + n & e;
  73. return r /= 4294967296, r += .5, r * (t.random() > .5 ? 1 : -1)
  74. }
  75. }, o = 0; o < n; o += 4) {
  76. var a = r(4294967296 * (i || t.random()));
  77. i = 987654071 * a(), e.push(4294967296 * a() | 0)
  78. }
  79. return new s.init(e, n)
  80. }
  81. }),
  82. a = e.enc = {},
  83. c = a.Hex = {
  84. stringify: function (t) {
  85. for (var n = t.words, i = t.sigBytes, e = [], r = 0; r < i; r++) {
  86. var o = n[r >>> 2] >>> 24 - r % 4 * 8 & 255;
  87. e.push((o >>> 4).toString(16)), e.push((15 & o).toString(16))
  88. }
  89. return e.join("")
  90. },
  91. parse: function (t) {
  92. for (var n = t.length, i = [], e = 0; e < n; e += 2) i[e >>> 3] |= parseInt(t.substr(e, 2), 16) << 24 - e % 8 * 4;
  93. return new s.init(i, n / 2)
  94. }
  95. },
  96. u = a.Latin1 = {
  97. stringify: function (t) {
  98. for (var n = t.words, i = t.sigBytes, e = [], r = 0; r < i; r++) {
  99. var o = n[r >>> 2] >>> 24 - r % 4 * 8 & 255;
  100. e.push(String.fromCharCode(o))
  101. }
  102. return e.join("")
  103. },
  104. parse: function (t) {
  105. for (var n = t.length, i = [], e = 0; e < n; e++) i[e >>> 2] |= (255 & t.charCodeAt(e)) << 24 - e % 4 * 8;
  106. return new s.init(i, n)
  107. }
  108. },
  109. f = a.Utf8 = {
  110. stringify: function (t) {
  111. try {
  112. return decodeURIComponent(escape(u.stringify(t)))
  113. } catch (t) {
  114. throw new Error("Malformed UTF-8 data")
  115. }
  116. },
  117. parse: function (t) {
  118. return u.parse(unescape(encodeURIComponent(t)))
  119. }
  120. },
  121. h = r.BufferedBlockAlgorithm = o.extend({
  122. reset: function () {
  123. this._data = new s.init, this._nDataBytes = 0
  124. },
  125. _append: function (t) {
  126. "string" == typeof t && (t = f.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes
  127. },
  128. _process: function (n) {
  129. var i = this._data,
  130. e = i.words,
  131. r = i.sigBytes,
  132. o = this.blockSize,
  133. a = 4 * o,
  134. c = r / a;
  135. c = n ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0);
  136. var u = c * o,
  137. f = t.min(4 * u, r);
  138. if (u) {
  139. for (var h = 0; h < u; h += o) this._doProcessBlock(e, h);
  140. var p = e.splice(0, u);
  141. i.sigBytes -= f
  142. }
  143. return new s.init(p, f)
  144. },
  145. clone: function () {
  146. var t = o.clone.call(this);
  147. return t._data = this._data.clone(), t
  148. },
  149. _minBufferSize: 0
  150. }),
  151. p = (r.Hasher = h.extend({
  152. cfg: o.extend(),
  153. init: function (t) {
  154. this.cfg = this.cfg.extend(t), this.reset()
  155. },
  156. reset: function () {
  157. h.reset.call(this), this._doReset()
  158. },
  159. update: function (t) {
  160. return this._append(t), this._process(), this
  161. },
  162. finalize: function (t) {
  163. t && this._append(t);
  164. var n = this._doFinalize();
  165. return n
  166. },
  167. blockSize: 16,
  168. _createHelper: function (t) {
  169. return function (n, i) {
  170. return new t.init(i).finalize(n)
  171. }
  172. },
  173. _createHmacHelper: function (t) {
  174. return function (n, i) {
  175. return new p.HMAC.init(t, i).finalize(n)
  176. }
  177. }
  178. }), e.algo = {});
  179. return e
  180. }(Math);
  181. return t
  182. });
  183. //# sourceMappingURL=core.min.js.map
  184. ! function (e, t, i) {
  185. "object" == typeof exports ? module.exports = exports = t(require("./core.min"), require("./sha1.min"), require("./hmac.min")) : "function" == typeof define && define.amd ? define(["./core.min", "./sha1.min", "./hmac.min"], t) : t(e.CryptoJS)
  186. }(this, function (e) {
  187. return function () {
  188. var t = e,
  189. i = t.lib,
  190. r = i.Base,
  191. n = i.WordArray,
  192. o = t.algo,
  193. a = o.MD5,
  194. c = o.EvpKDF = r.extend({
  195. cfg: r.extend({
  196. keySize: 4,
  197. hasher: a,
  198. iterations: 1
  199. }),
  200. init: function (e) {
  201. this.cfg = this.cfg.extend(e)
  202. },
  203. compute: function (e, t) {
  204. for (var i = this.cfg, r = i.hasher.create(), o = n.create(), a = o.words, c = i.keySize, f = i.iterations; a.length < c;) {
  205. s && r.update(s);
  206. var s = r.update(e).finalize(t);
  207. r.reset();
  208. for (var u = 1; u < f; u++) s = r.finalize(s), r.reset();
  209. o.concat(s)
  210. }
  211. return o.sigBytes = 4 * c, o
  212. }
  213. });
  214. t.EvpKDF = function (e, t, i) {
  215. return c.create(i).compute(e, t)
  216. }
  217. }(), e.EvpKDF
  218. });
  219. //# sourceMappingURL=evpkdf.min.js.map
  220. ! function (r, e) {
  221. "object" == typeof exports ? module.exports = exports = e(require("./core.min")) : "function" == typeof define && define.amd ? define(["./core.min"], e) : e(r.CryptoJS)
  222. }(this, function (r) {
  223. return function () {
  224. function e(r, e, t) {
  225. for (var n = [], i = 0, o = 0; o < e; o++)
  226. if (o % 4) {
  227. var f = t[r.charCodeAt(o - 1)] << o % 4 * 2,
  228. c = t[r.charCodeAt(o)] >>> 6 - o % 4 * 2;
  229. n[i >>> 2] |= (f | c) << 24 - i % 4 * 8, i++
  230. } return a.create(n, i)
  231. }
  232. var t = r,
  233. n = t.lib,
  234. a = n.WordArray,
  235. i = t.enc;
  236. i.Base64 = {
  237. stringify: function (r) {
  238. var e = r.words,
  239. t = r.sigBytes,
  240. n = this._map;
  241. r.clamp();
  242. for (var a = [], i = 0; i < t; i += 3)
  243. for (var o = e[i >>> 2] >>> 24 - i % 4 * 8 & 255, f = e[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255, c = e[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255, s = o << 16 | f << 8 | c, h = 0; h < 4 && i + .75 * h < t; h++) a.push(n.charAt(s >>> 6 * (3 - h) & 63));
  244. var p = n.charAt(64);
  245. if (p)
  246. for (; a.length % 4;) a.push(p);
  247. return a.join("")
  248. },
  249. parse: function (r) {
  250. var t = r.length,
  251. n = this._map,
  252. a = this._reverseMap;
  253. if (!a) {
  254. a = this._reverseMap = [];
  255. for (var i = 0; i < n.length; i++) a[n.charCodeAt(i)] = i
  256. }
  257. var o = n.charAt(64);
  258. if (o) {
  259. var f = r.indexOf(o);
  260. f !== -1 && (t = f)
  261. }
  262. return e(r, t, a)
  263. },
  264. _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
  265. }
  266. }(), r.enc.Base64
  267. });
  268. //# sourceMappingURL=enc-base64.min.js.map
  269. ! function (e, t, r) {
  270. "object" == typeof exports ? module.exports = exports = t(require("./core.min"), require("./evpkdf.min")) : "function" == typeof define && define.amd ? define(["./core.min", "./evpkdf.min"], t) : t(e.CryptoJS)
  271. }(this, function (e) {
  272. e.lib.Cipher || function (t) {
  273. var r = e,
  274. i = r.lib,
  275. n = i.Base,
  276. c = i.WordArray,
  277. o = i.BufferedBlockAlgorithm,
  278. s = r.enc,
  279. a = (s.Utf8, s.Base64),
  280. f = r.algo,
  281. p = f.EvpKDF,
  282. d = i.Cipher = o.extend({
  283. cfg: n.extend(),
  284. createEncryptor: function (e, t) {
  285. return this.create(this._ENC_XFORM_MODE, e, t)
  286. },
  287. createDecryptor: function (e, t) {
  288. return this.create(this._DEC_XFORM_MODE, e, t)
  289. },
  290. init: function (e, t, r) {
  291. this.cfg = this.cfg.extend(r), this._xformMode = e, this._key = t, this.reset()
  292. },
  293. reset: function () {
  294. o.reset.call(this), this._doReset()
  295. },
  296. process: function (e) {
  297. return this._append(e), this._process()
  298. },
  299. finalize: function (e) {
  300. e && this._append(e);
  301. var t = this._doFinalize();
  302. return t
  303. },
  304. keySize: 4,
  305. ivSize: 4,
  306. _ENC_XFORM_MODE: 1,
  307. _DEC_XFORM_MODE: 2,
  308. _createHelper: function () {
  309. function e(e) {
  310. return "string" == typeof e ? B : x
  311. }
  312. return function (t) {
  313. return {
  314. encrypt: function (r, i, n) {
  315. return e(i).encrypt(t, r, i, n)
  316. },
  317. decrypt: function (r, i, n) {
  318. return e(i).decrypt(t, r, i, n)
  319. }
  320. }
  321. }
  322. }()
  323. }),
  324. h = (i.StreamCipher = d.extend({
  325. _doFinalize: function () {
  326. var e = this._process(!0);
  327. return e
  328. },
  329. blockSize: 1
  330. }), r.mode = {}),
  331. u = i.BlockCipherMode = n.extend({
  332. createEncryptor: function (e, t) {
  333. return this.Encryptor.create(e, t)
  334. },
  335. createDecryptor: function (e, t) {
  336. return this.Decryptor.create(e, t)
  337. },
  338. init: function (e, t) {
  339. this._cipher = e, this._iv = t
  340. }
  341. }),
  342. l = h.CBC = function () {
  343. function e(e, r, i) {
  344. var n = this._iv;
  345. if (n) {
  346. var c = n;
  347. this._iv = t
  348. } else var c = this._prevBlock;
  349. for (var o = 0; o < i; o++) e[r + o] ^= c[o]
  350. }
  351. var r = u.extend();
  352. return r.Encryptor = r.extend({
  353. processBlock: function (t, r) {
  354. var i = this._cipher,
  355. n = i.blockSize;
  356. e.call(this, t, r, n), i.encryptBlock(t, r), this._prevBlock = t.slice(r, r + n)
  357. }
  358. }), r.Decryptor = r.extend({
  359. processBlock: function (t, r) {
  360. var i = this._cipher,
  361. n = i.blockSize,
  362. c = t.slice(r, r + n);
  363. i.decryptBlock(t, r), e.call(this, t, r, n), this._prevBlock = c
  364. }
  365. }), r
  366. }(),
  367. _ = r.pad = {},
  368. v = _.Pkcs7 = {
  369. pad: function (e, t) {
  370. for (var r = 4 * t, i = r - e.sigBytes % r, n = i << 24 | i << 16 | i << 8 | i, o = [], s = 0; s < i; s += 4) o.push(n);
  371. var a = c.create(o, i);
  372. e.concat(a)
  373. },
  374. unpad: function (e) {
  375. var t = 255 & e.words[e.sigBytes - 1 >>> 2];
  376. e.sigBytes -= t
  377. }
  378. },
  379. y = (i.BlockCipher = d.extend({
  380. cfg: d.cfg.extend({
  381. mode: l,
  382. padding: v
  383. }),
  384. reset: function () {
  385. d.reset.call(this);
  386. var e = this.cfg,
  387. t = e.iv,
  388. r = e.mode;
  389. if (this._xformMode == this._ENC_XFORM_MODE) var i = r.createEncryptor;
  390. else {
  391. var i = r.createDecryptor;
  392. this._minBufferSize = 1
  393. }
  394. this._mode && this._mode.__creator == i ? this._mode.init(this, t && t.words) : (this._mode = i.call(r, this, t && t.words), this._mode.__creator = i)
  395. },
  396. _doProcessBlock: function (e, t) {
  397. this._mode.processBlock(e, t)
  398. },
  399. _doFinalize: function () {
  400. var e = this.cfg.padding;
  401. if (this._xformMode == this._ENC_XFORM_MODE) {
  402. e.pad(this._data, this.blockSize);
  403. var t = this._process(!0)
  404. } else {
  405. var t = this._process(!0);
  406. e.unpad(t)
  407. }
  408. return t
  409. },
  410. blockSize: 4
  411. }), i.CipherParams = n.extend({
  412. init: function (e) {
  413. this.mixIn(e)
  414. },
  415. toString: function (e) {
  416. return (e || this.formatter).stringify(this)
  417. }
  418. })),
  419. m = r.format = {},
  420. k = m.OpenSSL = {
  421. stringify: function (e) {
  422. var t = e.ciphertext,
  423. r = e.salt;
  424. if (r) var i = c.create([1398893684, 1701076831]).concat(r).concat(t);
  425. else var i = t;
  426. return i.toString(a)
  427. },
  428. parse: function (e) {
  429. var t = a.parse(e),
  430. r = t.words;
  431. if (1398893684 == r[0] && 1701076831 == r[1]) {
  432. var i = c.create(r.slice(2, 4));
  433. r.splice(0, 4), t.sigBytes -= 16
  434. }
  435. return y.create({
  436. ciphertext: t,
  437. salt: i
  438. })
  439. }
  440. },
  441. x = i.SerializableCipher = n.extend({
  442. cfg: n.extend({
  443. format: k
  444. }),
  445. encrypt: function (e, t, r, i) {
  446. i = this.cfg.extend(i);
  447. var n = e.createEncryptor(r, i),
  448. c = n.finalize(t),
  449. o = n.cfg;
  450. return y.create({
  451. ciphertext: c,
  452. key: r,
  453. iv: o.iv,
  454. algorithm: e,
  455. mode: o.mode,
  456. padding: o.padding,
  457. blockSize: e.blockSize,
  458. formatter: i.format
  459. })
  460. },
  461. decrypt: function (e, t, r, i) {
  462. i = this.cfg.extend(i), t = this._parse(t, i.format);
  463. var n = e.createDecryptor(r, i).finalize(t.ciphertext);
  464. return n
  465. },
  466. _parse: function (e, t) {
  467. return "string" == typeof e ? t.parse(e, this) : e
  468. }
  469. }),
  470. g = r.kdf = {},
  471. S = g.OpenSSL = {
  472. execute: function (e, t, r, i) {
  473. i || (i = c.random(8));
  474. var n = p.create({
  475. keySize: t + r
  476. }).compute(e, i),
  477. o = c.create(n.words.slice(t), 4 * r);
  478. return n.sigBytes = 4 * t, y.create({
  479. key: n,
  480. iv: o,
  481. salt: i
  482. })
  483. }
  484. },
  485. B = i.PasswordBasedCipher = x.extend({
  486. cfg: x.cfg.extend({
  487. kdf: S
  488. }),
  489. encrypt: function (e, t, r, i) {
  490. i = this.cfg.extend(i);
  491. var n = i.kdf.execute(r, e.keySize, e.ivSize);
  492. i.iv = n.iv;
  493. var c = x.encrypt.call(this, e, t, n.key, i);
  494. return c.mixIn(n), c
  495. },
  496. decrypt: function (e, t, r, i) {
  497. i = this.cfg.extend(i), t = this._parse(t, i.format);
  498. var n = i.kdf.execute(r, e.keySize, e.ivSize, t.salt);
  499. i.iv = n.iv;
  500. var c = x.decrypt.call(this, e, t, n.key, i);
  501. return c
  502. }
  503. })
  504. }()
  505. });
  506. //# sourceMappingURL=cipher-core.min.js.map
  507. ! function (e, i) {
  508. "object" == typeof exports ? module.exports = exports = i(require("./core.min")) : "function" == typeof define && define.amd ? define(["./core.min"], i) : i(e.CryptoJS)
  509. }(this, function (e) {
  510. ! function () {
  511. var i = e,
  512. t = i.lib,
  513. n = t.Base,
  514. s = i.enc,
  515. r = s.Utf8,
  516. o = i.algo;
  517. o.HMAC = n.extend({
  518. init: function (e, i) {
  519. e = this._hasher = new e.init, "string" == typeof i && (i = r.parse(i));
  520. var t = e.blockSize,
  521. n = 4 * t;
  522. i.sigBytes > n && (i = e.finalize(i)), i.clamp();
  523. for (var s = this._oKey = i.clone(), o = this._iKey = i.clone(), a = s.words, f = o.words, c = 0; c < t; c++) a[c] ^= 1549556828, f[c] ^= 909522486;
  524. s.sigBytes = o.sigBytes = n, this.reset()
  525. },
  526. reset: function () {
  527. var e = this._hasher;
  528. e.reset(), e.update(this._iKey)
  529. },
  530. update: function (e) {
  531. return this._hasher.update(e), this
  532. },
  533. finalize: function (e) {
  534. var i = this._hasher,
  535. t = i.finalize(e);
  536. i.reset();
  537. var n = i.finalize(this._oKey.clone().concat(t));
  538. return n
  539. }
  540. })
  541. }()
  542. });
  543. //# sourceMappingURL=hmac.min.js.map
  544. ! function (e, o, r) {
  545. "object" == typeof exports ? module.exports = exports = o(require("./core.min"), require("./cipher-core.min")) : "function" == typeof define && define.amd ? define(["./core.min", "./cipher-core.min"], o) : o(e.CryptoJS)
  546. }(this, function (e) {
  547. return e.mode.ECB = function () {
  548. var o = e.lib.BlockCipherMode.extend();
  549. return o.Encryptor = o.extend({
  550. processBlock: function (e, o) {
  551. this._cipher.encryptBlock(e, o)
  552. }
  553. }), o.Decryptor = o.extend({
  554. processBlock: function (e, o) {
  555. this._cipher.decryptBlock(e, o)
  556. }
  557. }), o
  558. }(), e.mode.ECB
  559. });
  560. //# sourceMappingURL=mode-ecb.min.js.map
  561. ! function (e, r, i) {
  562. "object" == typeof exports ? module.exports = exports = r(require("./core.min"), require("./cipher-core.min")) : "function" == typeof define && define.amd ? define(["./core.min", "./cipher-core.min"], r) : r(e.CryptoJS)
  563. }(this, function (e) {
  564. return e.pad.Pkcs7
  565. });
  566. //# sourceMappingURL=pad-pkcs7.min.js.map
  567. ! function (e, r, i) {
  568. "object" == typeof exports ? module.exports = exports = r(require("./core.min"), require("./enc-base64.min"), require("./md5.min"), require("./evpkdf.min"), require("./cipher-core.min")) : "function" == typeof define && define.amd ? define(["./core.min", "./enc-base64.min", "./md5.min", "./evpkdf.min", "./cipher-core.min"], r) : r(e.CryptoJS)
  569. }(this, function (e) {
  570. return function () {
  571. var r = e,
  572. i = r.lib,
  573. n = i.BlockCipher,
  574. o = r.algo,
  575. t = [],
  576. c = [],
  577. s = [],
  578. f = [],
  579. a = [],
  580. d = [],
  581. u = [],
  582. v = [],
  583. h = [],
  584. y = [];
  585. ! function () {
  586. for (var e = [], r = 0; r < 256; r++) r < 128 ? e[r] = r << 1 : e[r] = r << 1 ^ 283;
  587. for (var i = 0, n = 0, r = 0; r < 256; r++) {
  588. var o = n ^ n << 1 ^ n << 2 ^ n << 3 ^ n << 4;
  589. o = o >>> 8 ^ 255 & o ^ 99, t[i] = o, c[o] = i;
  590. var p = e[i],
  591. l = e[p],
  592. _ = e[l],
  593. k = 257 * e[o] ^ 16843008 * o;
  594. s[i] = k << 24 | k >>> 8, f[i] = k << 16 | k >>> 16, a[i] = k << 8 | k >>> 24, d[i] = k;
  595. var k = 16843009 * _ ^ 65537 * l ^ 257 * p ^ 16843008 * i;
  596. u[o] = k << 24 | k >>> 8, v[o] = k << 16 | k >>> 16, h[o] = k << 8 | k >>> 24, y[o] = k, i ? (i = p ^ e[e[e[_ ^ p]]], n ^= e[e[n]]) : i = n = 1
  597. }
  598. }();
  599. var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54],
  600. l = o.AES = n.extend({
  601. _doReset: function () {
  602. if (!this._nRounds || this._keyPriorReset !== this._key) {
  603. for (var e = this._keyPriorReset = this._key, r = e.words, i = e.sigBytes / 4, n = this._nRounds = i + 6, o = 4 * (n + 1), c = this._keySchedule = [], s = 0; s < o; s++)
  604. if (s < i) c[s] = r[s];
  605. else {
  606. var f = c[s - 1];
  607. s % i ? i > 6 && s % i == 4 && (f = t[f >>> 24] << 24 | t[f >>> 16 & 255] << 16 | t[f >>> 8 & 255] << 8 | t[255 & f]) : (f = f << 8 | f >>> 24, f = t[f >>> 24] << 24 | t[f >>> 16 & 255] << 16 | t[f >>> 8 & 255] << 8 | t[255 & f], f ^= p[s / i | 0] << 24), c[s] = c[s - i] ^ f
  608. } for (var a = this._invKeySchedule = [], d = 0; d < o; d++) {
  609. var s = o - d;
  610. if (d % 4) var f = c[s];
  611. else var f = c[s - 4];
  612. d < 4 || s <= 4 ? a[d] = f : a[d] = u[t[f >>> 24]] ^ v[t[f >>> 16 & 255]] ^ h[t[f >>> 8 & 255]] ^ y[t[255 & f]]
  613. }
  614. }
  615. },
  616. encryptBlock: function (e, r) {
  617. this._doCryptBlock(e, r, this._keySchedule, s, f, a, d, t)
  618. },
  619. decryptBlock: function (e, r) {
  620. var i = e[r + 1];
  621. e[r + 1] = e[r + 3], e[r + 3] = i, this._doCryptBlock(e, r, this._invKeySchedule, u, v, h, y, c);
  622. var i = e[r + 1];
  623. e[r + 1] = e[r + 3], e[r + 3] = i
  624. },
  625. _doCryptBlock: function (e, r, i, n, o, t, c, s) {
  626. for (var f = this._nRounds, a = e[r] ^ i[0], d = e[r + 1] ^ i[1], u = e[r + 2] ^ i[2], v = e[r + 3] ^ i[3], h = 4, y = 1; y < f; y++) {
  627. var p = n[a >>> 24] ^ o[d >>> 16 & 255] ^ t[u >>> 8 & 255] ^ c[255 & v] ^ i[h++],
  628. l = n[d >>> 24] ^ o[u >>> 16 & 255] ^ t[v >>> 8 & 255] ^ c[255 & a] ^ i[h++],
  629. _ = n[u >>> 24] ^ o[v >>> 16 & 255] ^ t[a >>> 8 & 255] ^ c[255 & d] ^ i[h++],
  630. k = n[v >>> 24] ^ o[a >>> 16 & 255] ^ t[d >>> 8 & 255] ^ c[255 & u] ^ i[h++];
  631. a = p, d = l, u = _, v = k
  632. }
  633. var p = (s[a >>> 24] << 24 | s[d >>> 16 & 255] << 16 | s[u >>> 8 & 255] << 8 | s[255 & v]) ^ i[h++],
  634. l = (s[d >>> 24] << 24 | s[u >>> 16 & 255] << 16 | s[v >>> 8 & 255] << 8 | s[255 & a]) ^ i[h++],
  635. _ = (s[u >>> 24] << 24 | s[v >>> 16 & 255] << 16 | s[a >>> 8 & 255] << 8 | s[255 & d]) ^ i[h++],
  636. k = (s[v >>> 24] << 24 | s[a >>> 16 & 255] << 16 | s[d >>> 8 & 255] << 8 | s[255 & u]) ^ i[h++];
  637. e[r] = p, e[r + 1] = l, e[r + 2] = _, e[r + 3] = k
  638. },
  639. keySize: 8
  640. });
  641. r.AES = n._createHelper(l)
  642. }(), e.AES
  643. });
  644. //# sourceMappingURL=aes.min.js.map
  645. ! function (e, n) {
  646. "object" == typeof exports ? module.exports = exports = n(require("./core.min")) : "function" == typeof define && define.amd ? define(["./core.min"], n) : n(e.CryptoJS)
  647. }(this, function (e) {
  648. return e.enc.Utf8
  649. });
  650. //# sourceMappingURL=enc-utf8.min.js.map