cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
218 lines (217 loc) • 9.62 kB
JavaScript
import { __exports as des } from "../../../../_virtual/des.mjs";
(function(exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor)
descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps)
_defineProperties(Constructor.prototype, protoProps);
if (staticProps)
_defineProperties(Constructor, staticProps);
return Constructor;
}
var PC2 = [13, 16, 10, 23, 0, 4, 2, 27, 14, 5, 20, 9, 22, 18, 11, 3, 25, 7, 15, 6, 26, 19, 12, 1, 40, 51, 30, 36, 46, 54, 29, 39, 50, 44, 32, 47, 43, 48, 38, 55, 33, 52, 45, 41, 49, 35, 28, 31], totrot = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];
var z = 0;
var a, b, c, d, e, f;
a = 1 << 16;
b = 1 << 24;
c = a | b;
d = 1 << 2;
e = 1 << 10;
f = d | e;
var SP1 = [c | e, z | z, a | z, c | f, c | d, a | f, z | d, a | z, z | e, c | e, c | f, z | e, b | f, c | d, b | z, z | d, z | f, b | e, b | e, a | e, a | e, c | z, c | z, b | f, a | d, b | d, b | d, a | d, z | z, z | f, a | f, b | z, a | z, c | f, z | d, c | z, c | e, b | z, b | z, z | e, c | d, a | z, a | e, b | d, z | e, z | d, b | f, a | f, c | f, a | d, c | z, b | f, b | d, z | f, a | f, c | e, z | f, b | e, b | e, z | z, a | d, a | e, z | z, c | d];
a = 1 << 20;
b = 1 << 31;
c = a | b;
d = 1 << 5;
e = 1 << 15;
f = d | e;
var SP2 = [c | f, b | e, z | e, a | f, a | z, z | d, c | d, b | f, b | d, c | f, c | e, b | z, b | e, a | z, z | d, c | d, a | e, a | d, b | f, z | z, b | z, z | e, a | f, c | z, a | d, b | d, z | z, a | e, z | f, c | e, c | z, z | f, z | z, a | f, c | d, a | z, b | f, c | z, c | e, z | e, c | z, b | e, z | d, c | f, a | f, z | d, z | e, b | z, z | f, c | e, a | z, b | d, a | d, b | f, b | d, a | d, a | e, z | z, b | e, z | f, b | z, c | d, c | f, a | e];
a = 1 << 17;
b = 1 << 27;
c = a | b;
d = 1 << 3;
e = 1 << 9;
f = d | e;
var SP3 = [z | f, c | e, z | z, c | d, b | e, z | z, a | f, b | e, a | d, b | d, b | d, a | z, c | f, a | d, c | z, z | f, b | z, z | d, c | e, z | e, a | e, c | z, c | d, a | f, b | f, a | e, a | z, b | f, z | d, c | f, z | e, b | z, c | e, b | z, a | d, z | f, a | z, c | e, b | e, z | z, z | e, a | d, c | f, b | e, b | d, z | e, z | z, c | d, b | f, a | z, b | z, c | f, z | d, a | f, a | e, b | d, c | z, b | f, z | f, c | z, a | f, z | d, c | d, a | e];
a = 1 << 13;
b = 1 << 23;
c = a | b;
d = 1 << 0;
e = 1 << 7;
f = d | e;
var SP4 = [c | d, a | f, a | f, z | e, c | e, b | f, b | d, a | d, z | z, c | z, c | z, c | f, z | f, z | z, b | e, b | d, z | d, a | z, b | z, c | d, z | e, b | z, a | d, a | e, b | f, z | d, a | e, b | e, a | z, c | e, c | f, z | f, b | e, b | d, c | z, c | f, z | f, z | z, z | z, c | z, a | e, b | e, b | f, z | d, c | d, a | f, a | f, z | e, c | f, z | f, z | d, a | z, b | d, a | d, c | e, b | f, a | d, a | e, b | z, c | d, z | e, b | z, a | z, c | e];
a = 1 << 25;
b = 1 << 30;
c = a | b;
d = 1 << 8;
e = 1 << 19;
f = d | e;
var SP5 = [z | d, a | f, a | e, c | d, z | e, z | d, b | z, a | e, b | f, z | e, a | d, b | f, c | d, c | e, z | f, b | z, a | z, b | e, b | e, z | z, b | d, c | f, c | f, a | d, c | e, b | d, z | z, c | z, a | f, a | z, c | z, z | f, z | e, c | d, z | d, a | z, b | z, a | e, c | d, b | f, a | d, b | z, c | e, a | f, b | f, z | d, a | z, c | e, c | f, z | f, c | z, c | f, a | e, z | z, b | e, c | z, z | f, a | d, b | d, z | e, z | z, b | e, a | f, b | d];
a = 1 << 22;
b = 1 << 29;
c = a | b;
d = 1 << 4;
e = 1 << 14;
f = d | e;
var SP6 = [b | d, c | z, z | e, c | f, c | z, z | d, c | f, a | z, b | e, a | f, a | z, b | d, a | d, b | e, b | z, z | f, z | z, a | d, b | f, z | e, a | e, b | f, z | d, c | d, c | d, z | z, a | f, c | e, z | f, a | e, c | e, b | z, b | e, z | d, c | d, a | e, c | f, a | z, z | f, b | d, a | z, b | e, b | z, z | f, b | d, c | f, a | e, c | z, a | f, c | e, z | z, c | d, z | d, z | e, c | z, a | f, z | e, a | d, b | f, z | z, c | e, b | z, a | d, b | f];
a = 1 << 21;
b = 1 << 26;
c = a | b;
d = 1 << 1;
e = 1 << 11;
f = d | e;
var SP7 = [a | z, c | d, b | f, z | z, z | e, b | f, a | f, c | e, c | f, a | z, z | z, b | d, z | d, b | z, c | d, z | f, b | e, a | f, a | d, b | e, b | d, c | z, c | e, a | d, c | z, z | e, z | f, c | f, a | e, z | d, b | z, a | e, b | z, a | e, a | z, b | f, b | f, c | d, c | d, z | d, a | d, b | z, b | e, a | z, c | e, z | f, a | f, c | e, z | f, b | d, c | f, c | z, a | e, z | z, z | d, c | f, z | z, a | f, c | z, z | e, b | d, b | e, z | e, a | d];
a = 1 << 18;
b = 1 << 28;
c = a | b;
d = 1 << 6;
e = 1 << 12;
f = d | e;
var SP8 = [b | f, z | e, a | z, c | f, b | z, b | f, z | d, b | z, a | d, c | z, c | f, a | e, c | e, a | f, z | e, z | d, c | z, b | d, b | e, z | f, a | e, a | d, c | d, c | e, z | f, z | z, z | z, c | d, b | d, b | e, a | f, a | z, a | f, a | z, c | e, z | e, z | d, c | d, z | e, a | f, b | e, z | d, b | d, c | z, c | d, b | z, a | z, b | f, z | z, c | f, a | d, b | d, c | z, b | e, b | f, z | z, c | f, a | e, a | e, z | f, z | f, a | d, b | z, c | e];
var DES = /* @__PURE__ */ function() {
function DES2(password) {
_classCallCheck(this, DES2);
this.keys = [];
var pc1m = [], pcr = [], kn = [];
for (var j = 0, l = 56; j < 56; ++j, l -= 8) {
l += l < -5 ? 65 : l < -3 ? 31 : l < -1 ? 63 : l === 27 ? 35 : 0;
var m = l & 7;
pc1m[j] = (password[l >>> 3] & 1 << m) !== 0 ? 1 : 0;
}
for (var i = 0; i < 16; ++i) {
var _m = i << 1;
var n = _m + 1;
kn[_m] = kn[n] = 0;
for (var o = 28; o < 59; o += 28) {
for (var _j = o - 28; _j < o; ++_j) {
var _l = _j + totrot[i];
pcr[_j] = _l < o ? pc1m[_l] : pc1m[_l - 28];
}
}
for (var _j2 = 0; _j2 < 24; ++_j2) {
if (pcr[PC2[_j2]] !== 0) {
kn[_m] |= 1 << 23 - _j2;
}
if (pcr[PC2[_j2 + 24]] !== 0) {
kn[n] |= 1 << 23 - _j2;
}
}
}
for (var _i = 0, rawi = 0, KnLi = 0; _i < 16; ++_i) {
var raw0 = kn[rawi++];
var raw1 = kn[rawi++];
this.keys[KnLi] = (raw0 & 16515072) << 6;
this.keys[KnLi] |= (raw0 & 4032) << 10;
this.keys[KnLi] |= (raw1 & 16515072) >>> 10;
this.keys[KnLi] |= (raw1 & 4032) >>> 6;
++KnLi;
this.keys[KnLi] = (raw0 & 258048) << 12;
this.keys[KnLi] |= (raw0 & 63) << 16;
this.keys[KnLi] |= (raw1 & 258048) >>> 4;
this.keys[KnLi] |= raw1 & 63;
++KnLi;
}
}
_createClass(DES2, [{
key: "enc8",
value: function enc8(text) {
var b2 = text.slice();
var i = 0, l, r, x;
l = b2[i++] << 24 | b2[i++] << 16 | b2[i++] << 8 | b2[i++];
r = b2[i++] << 24 | b2[i++] << 16 | b2[i++] << 8 | b2[i++];
x = (l >>> 4 ^ r) & 252645135;
r ^= x;
l ^= x << 4;
x = (l >>> 16 ^ r) & 65535;
r ^= x;
l ^= x << 16;
x = (r >>> 2 ^ l) & 858993459;
l ^= x;
r ^= x << 2;
x = (r >>> 8 ^ l) & 16711935;
l ^= x;
r ^= x << 8;
r = r << 1 | r >>> 31 & 1;
x = (l ^ r) & 2863311530;
l ^= x;
r ^= x;
l = l << 1 | l >>> 31 & 1;
for (var _i2 = 0, keysi = 0; _i2 < 8; ++_i2) {
x = r << 28 | r >>> 4;
x ^= this.keys[keysi++];
var fval = SP7[x & 63];
fval |= SP5[x >>> 8 & 63];
fval |= SP3[x >>> 16 & 63];
fval |= SP1[x >>> 24 & 63];
x = r ^ this.keys[keysi++];
fval |= SP8[x & 63];
fval |= SP6[x >>> 8 & 63];
fval |= SP4[x >>> 16 & 63];
fval |= SP2[x >>> 24 & 63];
l ^= fval;
x = l << 28 | l >>> 4;
x ^= this.keys[keysi++];
fval = SP7[x & 63];
fval |= SP5[x >>> 8 & 63];
fval |= SP3[x >>> 16 & 63];
fval |= SP1[x >>> 24 & 63];
x = l ^ this.keys[keysi++];
fval |= SP8[x & 63];
fval |= SP6[x >>> 8 & 63];
fval |= SP4[x >>> 16 & 63];
fval |= SP2[x >>> 24 & 63];
r ^= fval;
}
r = r << 31 | r >>> 1;
x = (l ^ r) & 2863311530;
l ^= x;
r ^= x;
l = l << 31 | l >>> 1;
x = (l >>> 8 ^ r) & 16711935;
r ^= x;
l ^= x << 8;
x = (l >>> 2 ^ r) & 858993459;
r ^= x;
l ^= x << 2;
x = (r >>> 16 ^ l) & 65535;
l ^= x;
r ^= x << 16;
x = (r >>> 4 ^ l) & 252645135;
l ^= x;
r ^= x << 4;
x = [r, l];
for (i = 0; i < 8; i++) {
b2[i] = (x[i >>> 2] >>> 8 * (3 - i % 4)) % 256;
if (b2[i] < 0) {
b2[i] += 256;
}
}
return b2;
}
}, {
key: "encrypt",
value: function encrypt(t) {
return this.enc8(t.slice(0, 8)).concat(this.enc8(t.slice(8, 16)));
}
}]);
return DES2;
}();
exports["default"] = DES;
})(des);