mirror of
https://gitee.com/dgflash/oops-plugin-framework.git
synced 2026-05-30 18:39:18 +08:00
替换security中的加密库为crypto-es,解决cc3.6.1 native加密库报错问题
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
* @LastEditors: dgflash
|
||||
* @LastEditTime: 2022-09-02 15:29:45
|
||||
*/
|
||||
import { ecs } from "../libs/ecs/ECS";
|
||||
import { ECSRootSystem } from "../libs/ecs/ECSSystem";
|
||||
import { LanguageManager } from "../libs/gui/language/Language";
|
||||
import { HttpRequest } from "../libs/network/HttpRequest";
|
||||
@@ -26,9 +27,9 @@ export class oops {
|
||||
/** 日志管理 */
|
||||
static log = Logger;
|
||||
/** 全局消息 */
|
||||
static message: MessageManager;
|
||||
static message: MessageManager = MessageManager.Instance;
|
||||
/** 本地存储 */
|
||||
static storage: StorageManager;
|
||||
static storage: StorageManager = new StorageManager();
|
||||
/** 游戏时间管理 */
|
||||
static timer: TimerManager;
|
||||
/** 游戏音乐管理 */
|
||||
@@ -45,7 +46,7 @@ export class oops {
|
||||
/** 多语言模块 */
|
||||
static language: LanguageManager;
|
||||
/** HTTP */
|
||||
static http: HttpRequest;
|
||||
static http: HttpRequest = new HttpRequest();
|
||||
/** ECS */
|
||||
static ecs: ECSRootSystem;
|
||||
static ecs: ECSRootSystem = new ecs.RootSystem();
|
||||
}
|
||||
@@ -39,9 +39,12 @@ export class Root extends Component {
|
||||
|
||||
onLoad() {
|
||||
console.log(`Oops Framework v${version}`);
|
||||
|
||||
this.init();
|
||||
config.init(this.run.bind(this));
|
||||
this.enabled = false;
|
||||
config.init(() => {
|
||||
this.enabled = true;
|
||||
this.init();
|
||||
this.run();
|
||||
});
|
||||
}
|
||||
|
||||
update(dt: number) {
|
||||
@@ -64,17 +67,13 @@ export class Root extends Component {
|
||||
}
|
||||
|
||||
protected init() {
|
||||
oops.message = MessageManager.Instance;
|
||||
oops.storage = new StorageManager();
|
||||
oops.language = new LanguageManager();
|
||||
oops.timer = new TimerManager(this);
|
||||
oops.audio = AudioManager.instance;
|
||||
oops.http = new HttpRequest();
|
||||
oops.game = new GameManager(this.game!);
|
||||
oops.gui = new LayerManager(this.gui!);
|
||||
this.initGui();
|
||||
|
||||
oops.ecs = new ecs.RootSystem();
|
||||
this.initEcsSystem();
|
||||
oops.ecs.init();
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { sys } from "cc";
|
||||
import { PREVIEW } from "cc/env";
|
||||
import { md5 } from "../../../libs/security/Md5";
|
||||
import { EncryptUtil } from "../../utils/EncryptUtil";
|
||||
|
||||
/** 本地存储 */
|
||||
@@ -15,8 +14,10 @@ export class StorageManager {
|
||||
* @param iv aes加密的iv
|
||||
*/
|
||||
init(key: string, iv: string) {
|
||||
this._key = md5(key);
|
||||
this._iv = md5(iv);
|
||||
EncryptUtil.initCrypto(key, iv);
|
||||
|
||||
this._key = EncryptUtil.md5(key);
|
||||
this._iv = EncryptUtil.md5(iv);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -41,7 +42,7 @@ export class StorageManager {
|
||||
return;
|
||||
}
|
||||
if (!PREVIEW) {
|
||||
key = md5(key);
|
||||
key = EncryptUtil.md5(key);
|
||||
}
|
||||
if (null == value) {
|
||||
console.warn("存储的值为空,则直接移除该存储");
|
||||
@@ -66,12 +67,7 @@ export class StorageManager {
|
||||
}
|
||||
|
||||
if (!PREVIEW && null != this._key && null != this._iv) {
|
||||
try {
|
||||
value = EncryptUtil.aesEncrypt(`${value}`, this._key, this._iv);
|
||||
}
|
||||
catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
value = EncryptUtil.aesEncrypt(`${value}`, this._key, this._iv);
|
||||
}
|
||||
sys.localStorage.setItem(key, value);
|
||||
}
|
||||
@@ -91,17 +87,12 @@ export class StorageManager {
|
||||
key = `${key}_${this._id}`;
|
||||
|
||||
if (!PREVIEW) {
|
||||
key = md5(key);
|
||||
key = EncryptUtil.md5(key);
|
||||
}
|
||||
|
||||
let str: string | null = sys.localStorage.getItem(key);
|
||||
if (null != str && '' !== str && !PREVIEW && null != this._key && null != this._iv) {
|
||||
try {
|
||||
str = EncryptUtil.aesDecrypt(str, this._key, this._iv);
|
||||
}
|
||||
catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
str = EncryptUtil.aesDecrypt(str, this._key, this._iv);
|
||||
}
|
||||
|
||||
if (null === str) {
|
||||
@@ -142,7 +133,7 @@ export class StorageManager {
|
||||
key = `${key}_${this._id}`;
|
||||
|
||||
if (!PREVIEW) {
|
||||
key = md5(key);
|
||||
key = EncryptUtil.md5(key);
|
||||
}
|
||||
sys.localStorage.removeItem(key);
|
||||
}
|
||||
|
||||
@@ -4,8 +4,34 @@
|
||||
* @LastEditors: dgflash
|
||||
* @LastEditTime: 2022-09-02 14:50:10
|
||||
*/
|
||||
/** Crypto加密 */
|
||||
|
||||
import CryptoES from "crypto-es";
|
||||
|
||||
/**
|
||||
* CryptoES 加密库封装
|
||||
* https://github.com/entronad/crypto-es
|
||||
*
|
||||
* 安装第三方库生效
|
||||
* npm install -g yarn
|
||||
* yarn add crypto-es
|
||||
*/
|
||||
export class EncryptUtil {
|
||||
private static key: string = null!;
|
||||
private static iv: CryptoES.lib.WordArray = null!;
|
||||
|
||||
/**
|
||||
* MD5加密
|
||||
* @param msg 加密信息
|
||||
*/
|
||||
static md5(msg: string): string {
|
||||
return CryptoES.MD5(msg).toString();
|
||||
}
|
||||
|
||||
static initCrypto(key: string, iv: string) {
|
||||
this.key = key;
|
||||
this.iv = CryptoES.enc.Hex.parse(iv);
|
||||
}
|
||||
|
||||
/**
|
||||
* AES 加密
|
||||
* @param msg 加密信息
|
||||
@@ -13,15 +39,14 @@ export class EncryptUtil {
|
||||
* @param iv aes加密的iv
|
||||
*/
|
||||
static aesEncrypt(msg: string, key: string, iv: string): string {
|
||||
//@ts-ignore
|
||||
let encrypt = CryptoJS.AES.encrypt(msg, key, {
|
||||
iv: iv,
|
||||
//@ts-ignore
|
||||
mode: CryptoJS.mode.CBC,
|
||||
//@ts-ignore
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
});
|
||||
return encrypt.toString();
|
||||
return CryptoES.AES.encrypt(
|
||||
msg,
|
||||
this.key,
|
||||
{
|
||||
iv: this.iv,
|
||||
format: this.JsonFormatter
|
||||
},
|
||||
).toString();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -31,15 +56,40 @@ export class EncryptUtil {
|
||||
* @param iv aes加密的iv
|
||||
*/
|
||||
static aesDecrypt(str: string, key: string, iv: string): string {
|
||||
//@ts-ignore
|
||||
let decrypt = CryptoJS.AES.decrypt(str, key, {
|
||||
iv: iv,
|
||||
//@ts-ignore
|
||||
mode: CryptoJS.mode.CBC,
|
||||
//@ts-ignore
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
});
|
||||
//@ts-ignore
|
||||
return CryptoJS.enc.Utf8.stringify(decrypt);
|
||||
const decrypted = CryptoES.AES.decrypt(
|
||||
str,
|
||||
this.key,
|
||||
{
|
||||
iv: this.iv,
|
||||
format: this.JsonFormatter
|
||||
},
|
||||
);
|
||||
return decrypted.toString(CryptoES.enc.Utf8);
|
||||
}
|
||||
|
||||
private static JsonFormatter = {
|
||||
stringify: function (cipherParams: any) {
|
||||
const jsonObj: any = { ct: cipherParams.ciphertext.toString(CryptoES.enc.Base64) };
|
||||
if (cipherParams.iv) {
|
||||
jsonObj.iv = cipherParams.iv.toString();
|
||||
}
|
||||
if (cipherParams.salt) {
|
||||
jsonObj.s = cipherParams.salt.toString();
|
||||
}
|
||||
return JSON.stringify(jsonObj);
|
||||
},
|
||||
parse: function (jsonStr) {
|
||||
const jsonObj = JSON.parse(jsonStr);
|
||||
const cipherParams = CryptoES.lib.CipherParams.create(
|
||||
{ ciphertext: CryptoES.enc.Base64.parse(jsonObj.ct) },
|
||||
);
|
||||
if (jsonObj.iv) {
|
||||
cipherParams.iv = CryptoES.enc.Hex.parse(jsonObj.iv)
|
||||
}
|
||||
if (jsonObj.s) {
|
||||
cipherParams.salt = CryptoES.enc.Hex.parse(jsonObj.s)
|
||||
}
|
||||
return cipherParams;
|
||||
},
|
||||
};
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"ver": "1.1.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "0a77218f-7668-4c01-b3cf-4783473463b6",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"compressionType": {},
|
||||
"isRemoteBundle": {}
|
||||
}
|
||||
}
|
||||
@@ -1,202 +0,0 @@
|
||||
export function md5(md5str: string) {
|
||||
var createMD5String = function (string: string) {
|
||||
var x = Array()
|
||||
var k, AA, BB, CC, DD, a, b, c, d
|
||||
var S11 = 7,
|
||||
S12 = 12,
|
||||
S13 = 17,
|
||||
S14 = 22
|
||||
var S21 = 5,
|
||||
S22 = 9,
|
||||
S23 = 14,
|
||||
S24 = 20
|
||||
var S31 = 4,
|
||||
S32 = 11,
|
||||
S33 = 16,
|
||||
S34 = 23
|
||||
var S41 = 6,
|
||||
S42 = 10,
|
||||
S43 = 15,
|
||||
S44 = 21
|
||||
string = uTF8Encode(string)
|
||||
x = convertToWordArray(string)
|
||||
a = 0x67452301
|
||||
b = 0xEFCDAB89
|
||||
c = 0x98BADCFE
|
||||
d = 0x10325476
|
||||
for (k = 0; k < x.length; k += 16) {
|
||||
AA = a
|
||||
BB = b
|
||||
CC = c
|
||||
DD = d
|
||||
a = FF(a, b, c, d, x[k + 0], S11, 0xD76AA478)
|
||||
d = FF(d, a, b, c, x[k + 1], S12, 0xE8C7B756)
|
||||
c = FF(c, d, a, b, x[k + 2], S13, 0x242070DB)
|
||||
b = FF(b, c, d, a, x[k + 3], S14, 0xC1BDCEEE)
|
||||
a = FF(a, b, c, d, x[k + 4], S11, 0xF57C0FAF)
|
||||
d = FF(d, a, b, c, x[k + 5], S12, 0x4787C62A)
|
||||
c = FF(c, d, a, b, x[k + 6], S13, 0xA8304613)
|
||||
b = FF(b, c, d, a, x[k + 7], S14, 0xFD469501)
|
||||
a = FF(a, b, c, d, x[k + 8], S11, 0x698098D8)
|
||||
d = FF(d, a, b, c, x[k + 9], S12, 0x8B44F7AF)
|
||||
c = FF(c, d, a, b, x[k + 10], S13, 0xFFFF5BB1)
|
||||
b = FF(b, c, d, a, x[k + 11], S14, 0x895CD7BE)
|
||||
a = FF(a, b, c, d, x[k + 12], S11, 0x6B901122)
|
||||
d = FF(d, a, b, c, x[k + 13], S12, 0xFD987193)
|
||||
c = FF(c, d, a, b, x[k + 14], S13, 0xA679438E)
|
||||
b = FF(b, c, d, a, x[k + 15], S14, 0x49B40821)
|
||||
a = GG(a, b, c, d, x[k + 1], S21, 0xF61E2562)
|
||||
d = GG(d, a, b, c, x[k + 6], S22, 0xC040B340)
|
||||
c = GG(c, d, a, b, x[k + 11], S23, 0x265E5A51)
|
||||
b = GG(b, c, d, a, x[k + 0], S24, 0xE9B6C7AA)
|
||||
a = GG(a, b, c, d, x[k + 5], S21, 0xD62F105D)
|
||||
d = GG(d, a, b, c, x[k + 10], S22, 0x2441453)
|
||||
c = GG(c, d, a, b, x[k + 15], S23, 0xD8A1E681)
|
||||
b = GG(b, c, d, a, x[k + 4], S24, 0xE7D3FBC8)
|
||||
a = GG(a, b, c, d, x[k + 9], S21, 0x21E1CDE6)
|
||||
d = GG(d, a, b, c, x[k + 14], S22, 0xC33707D6)
|
||||
c = GG(c, d, a, b, x[k + 3], S23, 0xF4D50D87)
|
||||
b = GG(b, c, d, a, x[k + 8], S24, 0x455A14ED)
|
||||
a = GG(a, b, c, d, x[k + 13], S21, 0xA9E3E905)
|
||||
d = GG(d, a, b, c, x[k + 2], S22, 0xFCEFA3F8)
|
||||
c = GG(c, d, a, b, x[k + 7], S23, 0x676F02D9)
|
||||
b = GG(b, c, d, a, x[k + 12], S24, 0x8D2A4C8A)
|
||||
a = HH(a, b, c, d, x[k + 5], S31, 0xFFFA3942)
|
||||
d = HH(d, a, b, c, x[k + 8], S32, 0x8771F681)
|
||||
c = HH(c, d, a, b, x[k + 11], S33, 0x6D9D6122)
|
||||
b = HH(b, c, d, a, x[k + 14], S34, 0xFDE5380C)
|
||||
a = HH(a, b, c, d, x[k + 1], S31, 0xA4BEEA44)
|
||||
d = HH(d, a, b, c, x[k + 4], S32, 0x4BDECFA9)
|
||||
c = HH(c, d, a, b, x[k + 7], S33, 0xF6BB4B60)
|
||||
b = HH(b, c, d, a, x[k + 10], S34, 0xBEBFBC70)
|
||||
a = HH(a, b, c, d, x[k + 13], S31, 0x289B7EC6)
|
||||
d = HH(d, a, b, c, x[k + 0], S32, 0xEAA127FA)
|
||||
c = HH(c, d, a, b, x[k + 3], S33, 0xD4EF3085)
|
||||
b = HH(b, c, d, a, x[k + 6], S34, 0x4881D05)
|
||||
a = HH(a, b, c, d, x[k + 9], S31, 0xD9D4D039)
|
||||
d = HH(d, a, b, c, x[k + 12], S32, 0xE6DB99E5)
|
||||
c = HH(c, d, a, b, x[k + 15], S33, 0x1FA27CF8)
|
||||
b = HH(b, c, d, a, x[k + 2], S34, 0xC4AC5665)
|
||||
a = II(a, b, c, d, x[k + 0], S41, 0xF4292244)
|
||||
d = II(d, a, b, c, x[k + 7], S42, 0x432AFF97)
|
||||
c = II(c, d, a, b, x[k + 14], S43, 0xAB9423A7)
|
||||
b = II(b, c, d, a, x[k + 5], S44, 0xFC93A039)
|
||||
a = II(a, b, c, d, x[k + 12], S41, 0x655B59C3)
|
||||
d = II(d, a, b, c, x[k + 3], S42, 0x8F0CCC92)
|
||||
c = II(c, d, a, b, x[k + 10], S43, 0xFFEFF47D)
|
||||
b = II(b, c, d, a, x[k + 1], S44, 0x85845DD1)
|
||||
a = II(a, b, c, d, x[k + 8], S41, 0x6FA87E4F)
|
||||
d = II(d, a, b, c, x[k + 15], S42, 0xFE2CE6E0)
|
||||
c = II(c, d, a, b, x[k + 6], S43, 0xA3014314)
|
||||
b = II(b, c, d, a, x[k + 13], S44, 0x4E0811A1)
|
||||
a = II(a, b, c, d, x[k + 4], S41, 0xF7537E82)
|
||||
d = II(d, a, b, c, x[k + 11], S42, 0xBD3AF235)
|
||||
c = II(c, d, a, b, x[k + 2], S43, 0x2AD7D2BB)
|
||||
b = II(b, c, d, a, x[k + 9], S44, 0xEB86D391)
|
||||
a = addUnsigned(a, AA)
|
||||
b = addUnsigned(b, BB)
|
||||
c = addUnsigned(c, CC)
|
||||
d = addUnsigned(d, DD)
|
||||
}
|
||||
var tempValue = wordToHex(a) + wordToHex(b) + wordToHex(c) + wordToHex(d)
|
||||
return tempValue.toLowerCase()
|
||||
}
|
||||
var rotateLeft = function (lValue: number, iShiftBits: number) {
|
||||
return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits))
|
||||
}
|
||||
var addUnsigned = function (lX: number, lY: number) {
|
||||
var lX4, lY4, lX8, lY8, lResult
|
||||
lX8 = (lX & 0x80000000)
|
||||
lY8 = (lY & 0x80000000)
|
||||
lX4 = (lX & 0x40000000)
|
||||
lY4 = (lY & 0x40000000)
|
||||
lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF)
|
||||
if (lX4 & lY4) return (lResult ^ 0x80000000 ^ lX8 ^ lY8)
|
||||
if (lX4 | lY4) {
|
||||
if (lResult & 0x40000000) return (lResult ^ 0xC0000000 ^ lX8 ^ lY8)
|
||||
else return (lResult ^ 0x40000000 ^ lX8 ^ lY8)
|
||||
} else {
|
||||
return (lResult ^ lX8 ^ lY8)
|
||||
}
|
||||
}
|
||||
var F = function (x: number, y: number, z: number) {
|
||||
return (x & y) | ((~x) & z)
|
||||
}
|
||||
var G = function (x: number, y: number, z: number) {
|
||||
return (x & z) | (y & (~z))
|
||||
}
|
||||
var H = function (x: number, y: number, z: number) {
|
||||
return (x ^ y ^ z)
|
||||
}
|
||||
var I = function (x: number, y: number, z: number) {
|
||||
return (y ^ (x | (~z)))
|
||||
}
|
||||
var FF = function (a: number, b: number, c: number, d: number, x: number, s: number, ac: number) {
|
||||
a = addUnsigned(a, addUnsigned(addUnsigned(F(b, c, d), x), ac))
|
||||
return addUnsigned(rotateLeft(a, s), b)
|
||||
}
|
||||
var GG = function (a: number, b: number, c: number, d: number, x: number, s: number, ac: number) {
|
||||
a = addUnsigned(a, addUnsigned(addUnsigned(G(b, c, d), x), ac))
|
||||
return addUnsigned(rotateLeft(a, s), b)
|
||||
}
|
||||
var HH = function (a: number, b: number, c: number, d: number, x: number, s: number, ac: number) {
|
||||
a = addUnsigned(a, addUnsigned(addUnsigned(H(b, c, d), x), ac))
|
||||
return addUnsigned(rotateLeft(a, s), b)
|
||||
}
|
||||
var II = function (a: number, b: number, c: number, d: number, x: number, s: number, ac: number) {
|
||||
a = addUnsigned(a, addUnsigned(addUnsigned(I(b, c, d), x), ac))
|
||||
return addUnsigned(rotateLeft(a, s), b)
|
||||
}
|
||||
var convertToWordArray = function (string: string) {
|
||||
var lWordCount
|
||||
var lMessageLength = string.length
|
||||
var lNumberOfWordsTempOne = lMessageLength + 8
|
||||
var lNumberOfWordsTempTwo = (lNumberOfWordsTempOne - (lNumberOfWordsTempOne % 64)) / 64
|
||||
var lNumberOfWords = (lNumberOfWordsTempTwo + 1) * 16
|
||||
var lWordArray = Array(lNumberOfWords - 1)
|
||||
var lBytePosition = 0
|
||||
var lByteCount = 0
|
||||
while (lByteCount < lMessageLength) {
|
||||
lWordCount = (lByteCount - (lByteCount % 4)) / 4
|
||||
lBytePosition = (lByteCount % 4) * 8
|
||||
lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount) << lBytePosition))
|
||||
lByteCount++
|
||||
}
|
||||
lWordCount = (lByteCount - (lByteCount % 4)) / 4
|
||||
lBytePosition = (lByteCount % 4) * 8
|
||||
lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition)
|
||||
lWordArray[lNumberOfWords - 2] = lMessageLength << 3
|
||||
lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29
|
||||
return lWordArray
|
||||
}
|
||||
var wordToHex = function (lValue: number) {
|
||||
var WordToHexValue = '',
|
||||
WordToHexValueTemp = '',
|
||||
lByte, lCount
|
||||
for (lCount = 0; lCount <= 3; lCount++) {
|
||||
lByte = (lValue >>> (lCount * 8)) & 255
|
||||
WordToHexValueTemp = '0' + lByte.toString(16)
|
||||
WordToHexValue = WordToHexValue + WordToHexValueTemp.substr(WordToHexValueTemp.length - 2, 2)
|
||||
}
|
||||
return WordToHexValue
|
||||
}
|
||||
var uTF8Encode = function (string: string) {
|
||||
string = string.toString().replace(/\x0d\x0a/g, '\x0a')
|
||||
var output = ''
|
||||
for (var n = 0; n < string.length; n++) {
|
||||
var c = string.charCodeAt(n)
|
||||
if (c < 128) {
|
||||
output += String.fromCharCode(c)
|
||||
} else if ((c > 127) && (c < 2048)) {
|
||||
output += String.fromCharCode((c >> 6) | 192)
|
||||
output += String.fromCharCode((c & 63) | 128)
|
||||
} else {
|
||||
output += String.fromCharCode((c >> 12) | 224)
|
||||
output += String.fromCharCode(((c >> 6) & 63) | 128)
|
||||
output += String.fromCharCode((c & 63) | 128)
|
||||
}
|
||||
}
|
||||
return output
|
||||
}
|
||||
return createMD5String(md5str)
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"ver": "4.0.23",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "0c84ecf9-5446-4322-8073-3e74289d8d1a",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
29
assets/libs/security/crypto-js.d.ts
vendored
29
assets/libs/security/crypto-js.d.ts
vendored
@@ -1,29 +0,0 @@
|
||||
export const global: any;
|
||||
declare global {
|
||||
|
||||
class WordArray { }
|
||||
|
||||
namespace CryptoJS {
|
||||
|
||||
namespace AES {
|
||||
export function encrypt(message: string, key: string, cfg: { iv: string, mode: mode, padding: pad }): WordArray;
|
||||
|
||||
export function decrypt(text: string, key: string, cfg: { iv: string, mode: mode, padding: pad }): WordArray;
|
||||
}
|
||||
|
||||
namespace enc {
|
||||
namespace Utf8 {
|
||||
export function parse(key: WordArray): string;
|
||||
export function stringify(word: WordArray): string;
|
||||
}
|
||||
}
|
||||
|
||||
export enum mode {
|
||||
CBC
|
||||
}
|
||||
|
||||
export enum pad {
|
||||
Pkcs7
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"ver": "4.0.23",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "3c1c0c1d-c9a4-4dd2-9249-254305a4c73b",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"ver": "4.0.23",
|
||||
"importer": "javascript",
|
||||
"imported": true,
|
||||
"uuid": "83485788-0873-4c9f-a03f-c9f9b5ee44ca",
|
||||
"files": [
|
||||
".js"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"isPlugin": true,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": false,
|
||||
"executionScope": "enclosed"
|
||||
}
|
||||
}
|
||||
2
assets/libs/security/jsencrypt.min.js
vendored
2
assets/libs/security/jsencrypt.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"ver": "4.0.23",
|
||||
"importer": "javascript",
|
||||
"imported": true,
|
||||
"uuid": "f941aa5d-a758-4dca-a86b-98de4e775c51",
|
||||
"files": [
|
||||
".js"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"dependencies": [],
|
||||
"isPlugin": true,
|
||||
"loadPluginInWeb": true,
|
||||
"loadPluginInNative": false
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user