You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1379 lines
360 KiB
1379 lines
360 KiB
3 years ago
|
{
|
||
|
"errors": [
|
||
|
"./lib/jsbn/rsa.ts\n[tsl] ERROR in /home/corax/source/jsencrypt/lib/jsbn/rsa.ts(11,10)\n TS6133: 'linebrk' is declared but its value is never read.",
|
||
|
"./lib/jsbn/rsa.ts\n[tsl] ERROR in /home/corax/source/jsencrypt/lib/jsbn/rsa.ts(21,10)\n TS6133: 'byte2Hex' is declared but its value is never read."
|
||
|
],
|
||
|
"warnings": [],
|
||
|
"version": "3.10.0",
|
||
|
"hash": "aec46fc65c33ce497959",
|
||
|
"time": 1411,
|
||
|
"publicPath": "",
|
||
|
"assetsByChunkName": {
|
||
|
"main": "bundle.js"
|
||
|
},
|
||
|
"assets": [
|
||
|
{
|
||
|
"name": "bundle.js",
|
||
|
"size": 541848,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"chunkNames": [
|
||
|
"main"
|
||
|
],
|
||
|
"emitted": true,
|
||
|
"isOverSizeLimit": true
|
||
|
}
|
||
|
],
|
||
|
"filteredAssets": 0,
|
||
|
"entrypoints": {
|
||
|
"main": {
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [
|
||
|
"bundle.js"
|
||
|
],
|
||
|
"isOverSizeLimit": true
|
||
|
}
|
||
|
},
|
||
|
"chunks": [
|
||
|
{
|
||
|
"id": 0,
|
||
|
"rendered": true,
|
||
|
"initial": true,
|
||
|
"entry": true,
|
||
|
"extraAsync": false,
|
||
|
"size": 158532,
|
||
|
"names": [
|
||
|
"main"
|
||
|
],
|
||
|
"files": [
|
||
|
"bundle.js"
|
||
|
],
|
||
|
"hash": "b6a3b215b0fe567a1af4",
|
||
|
"parents": [],
|
||
|
"modules": [
|
||
|
{
|
||
|
"id": 0,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/jsbn.ts",
|
||
|
"name": "./lib/jsbn/jsbn.ts",
|
||
|
"index": 5,
|
||
|
"index2": 3,
|
||
|
"size": 46027,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"issuerId": 4,
|
||
|
"issuerName": "./src/jsencrypt.js",
|
||
|
"profile": {
|
||
|
"factory": 48,
|
||
|
"building": 944,
|
||
|
"dependencies": 1
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 4,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"module": "./src/jsencrypt.js",
|
||
|
"moduleName": "./src/jsencrypt.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../lib/jsbn/jsbn",
|
||
|
"loc": "5:0-45"
|
||
|
},
|
||
|
{
|
||
|
"moduleId": 7,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/rsa.ts",
|
||
|
"module": "./lib/jsbn/rsa.ts",
|
||
|
"moduleName": "./lib/jsbn/rsa.ts",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "./jsbn",
|
||
|
"loc": "4:0-49"
|
||
|
},
|
||
|
{
|
||
|
"moduleId": 12,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/lib/jsrsasign/asn1-1.0.js",
|
||
|
"module": "./lib/jsrsasign/asn1-1.0.js",
|
||
|
"moduleName": "./lib/jsrsasign/asn1-1.0.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../jsbn/jsbn",
|
||
|
"loc": "4:0-40"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"BigInteger",
|
||
|
"parseBigInt"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"BigInteger",
|
||
|
"Classic",
|
||
|
"Montgomery",
|
||
|
"nbi",
|
||
|
"parseBigInt",
|
||
|
"intAt",
|
||
|
"nbv",
|
||
|
"nbits"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 2,
|
||
|
"source": "// Copyright (c) 2005 Tom Wu\n// All Rights Reserved.\n// See \"LICENSE\" for details.\n// Basic JavaScript BN library - subset useful for RSA encryption.\nimport { cbit, int2char, lbit, op_and, op_andnot, op_or, op_xor } from \"./util\";\n// Bits per digit\nvar dbits;\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = ((canary & 0xffffff) == 0xefcafe);\n//#region\nvar lowprimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997];\nvar lplim = (1 << 26) / lowprimes[lowprimes.length - 1];\n//#endregion\n// (public) Constructor\nvar BigInteger = /** @class */ (function () {\n function BigInteger(a, b, c) {\n if (a != null)\n if (\"number\" == typeof a)\n this.fromNumber(a, b, c);\n else if (b == null && \"string\" != typeof a)\n this.fromString(a, 256);\n else\n this.fromString(a, b);\n }\n //#region PUBLIC\n // BigInteger.prototype.toString = bnToString;\n // (public) return string representation in given radix\n BigInteger.prototype.toString = function (b) {\n if (this.s < 0) {\n return \"-\" + this.negate().toString(b);\n }\n var k;\n if (b == 16)\n k = 4;\n else if (b == 8)\n k = 3;\n else if (b == 2)\n k = 1;\n else if (b == 32)\n k = 5;\n else if (b == 4)\n k = 2;\n else\n return this.toRadix(b);\n var km = (1 << k) - 1, d, m = false, r = \"\", i = this.t;\n var p = this.DB - (i * this.DB) % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & ((1 << p) - 1)) << (k - p);\n d |= this[--i] >> (p += this.DB - k);\n }\n else {\n d = (this[i] >> (p -= k)) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0)\n m = true;\n if (m)\n r += int2char(d);\n }\n }\n return m ? r : \"0\";\n };\n // BigInteger.prototype.negate = bnNegate;\n // (public) -this\n BigInteger.prototype.negate = function () { var r = nbi(); BigInteger.ZERO.subTo(this, r); return r; };\n // BigInteger.prototype.abs = bnAbs;\n // (public) |this|\n BigInteger.prototype.abs = function () { return (this.s < 0) ? this.negate() : this; };\n // BigInteger.prototype.compareTo = bnCompareTo;\n // (public) return + if this > a, - if this < a, 0 if equal\n BigInteger.prototype.compareTo = function (a) {\n var r = this.s - a.s;\n if (r != 0)\n return r;\n var i = this.t;\n r = i - a.t;\n if (r != 0)\n return (this.s < 0) ? -r : r;\n while (--i >= 0)\n if ((r = this[i] - a[i]) != 0)\n return r;\n return 0;\n };\n // BigInteger.prototype.bitLength = bnBitLength;\n // (public) return the number of bits in \"this\"\n BigInte
|
||
|
},
|
||
|
{
|
||
|
"id": 1,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/util.ts",
|
||
|
"name": "./lib/jsbn/util.ts",
|
||
|
"index": 6,
|
||
|
"index2": 2,
|
||
|
"size": 1045,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/base64.ts",
|
||
|
"issuerId": 2,
|
||
|
"issuerName": "./lib/jsbn/base64.ts",
|
||
|
"profile": {
|
||
|
"factory": 156,
|
||
|
"building": 20
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 0,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/jsbn.ts",
|
||
|
"module": "./lib/jsbn/jsbn.ts",
|
||
|
"moduleName": "./lib/jsbn/jsbn.ts",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "./util",
|
||
|
"loc": "5:0-80"
|
||
|
},
|
||
|
{
|
||
|
"moduleId": 2,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/base64.ts",
|
||
|
"module": "./lib/jsbn/base64.ts",
|
||
|
"moduleName": "./lib/jsbn/base64.ts",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "./util",
|
||
|
"loc": "1:0-34"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"cbit",
|
||
|
"int2char",
|
||
|
"lbit",
|
||
|
"op_and",
|
||
|
"op_andnot",
|
||
|
"op_or",
|
||
|
"op_xor"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"int2char",
|
||
|
"op_and",
|
||
|
"op_or",
|
||
|
"op_xor",
|
||
|
"op_andnot",
|
||
|
"lbit",
|
||
|
"cbit"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 3,
|
||
|
"source": "var BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\nexport function int2char(n) {\n return BI_RM.charAt(n);\n}\n//#region BIT_OPERATIONS\n// (public) this & a\nexport function op_and(x, y) {\n return x & y;\n}\n// (public) this | a\nexport function op_or(x, y) {\n return x | y;\n}\n// (public) this ^ a\nexport function op_xor(x, y) {\n return x ^ y;\n}\n// (public) this & ~a\nexport function op_andnot(x, y) {\n return x & ~y;\n}\n// return index of lowest 1-bit in x, x < 2^31\nexport function lbit(x) {\n if (x == 0)\n return -1;\n var r = 0;\n if ((x & 0xffff) == 0) {\n x >>= 16;\n r += 16;\n }\n if ((x & 0xff) == 0) {\n x >>= 8;\n r += 8;\n }\n if ((x & 0xf) == 0) {\n x >>= 4;\n r += 4;\n }\n if ((x & 3) == 0) {\n x >>= 2;\n r += 2;\n }\n if ((x & 1) == 0)\n ++r;\n return r;\n}\n// return number of 1 bits in x\nexport function cbit(x) {\n var r = 0;\n while (x != 0) {\n x &= x - 1;\n ++r;\n }\n return r;\n}\n//#endregion BIT_OPERATIONS \n"
|
||
|
},
|
||
|
{
|
||
|
"id": 2,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/base64.ts",
|
||
|
"name": "./lib/jsbn/base64.ts",
|
||
|
"index": 12,
|
||
|
"index2": 10,
|
||
|
"size": 1966,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"issuerId": 4,
|
||
|
"issuerName": "./src/jsencrypt.js",
|
||
|
"profile": {
|
||
|
"factory": 48,
|
||
|
"building": 789
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 4,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"module": "./src/jsencrypt.js",
|
||
|
"moduleName": "./src/jsencrypt.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../lib/jsbn/base64",
|
||
|
"loc": "7:0-43"
|
||
|
},
|
||
|
{
|
||
|
"moduleId": 4,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"module": "./src/jsencrypt.js",
|
||
|
"moduleName": "./src/jsencrypt.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../lib/jsbn/base64",
|
||
|
"loc": "8:0-44"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"b64tohex",
|
||
|
"hex2b64"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"hex2b64",
|
||
|
"b64tohex",
|
||
|
"b64toBA"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 2,
|
||
|
"source": "import { int2char } from \"./util\";\nvar b64map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar b64pad = \"=\";\nexport function hex2b64(h) {\n var i;\n var c;\n var ret = \"\";\n for (i = 0; i + 3 <= h.length; i += 3) {\n c = parseInt(h.substring(i, i + 3), 16);\n ret += b64map.charAt(c >> 6) + b64map.charAt(c & 63);\n }\n if (i + 1 == h.length) {\n c = parseInt(h.substring(i, i + 1), 16);\n ret += b64map.charAt(c << 2);\n }\n else if (i + 2 == h.length) {\n c = parseInt(h.substring(i, i + 2), 16);\n ret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4);\n }\n while ((ret.length & 3) > 0)\n ret += b64pad;\n return ret;\n}\n// convert a base64 string to hex\nexport function b64tohex(s) {\n var ret = \"\";\n var i;\n var k = 0; // b64 state, 0-3\n var slop;\n for (i = 0; i < s.length; ++i) {\n if (s.charAt(i) == b64pad)\n break;\n var v = b64map.indexOf(s.charAt(i));\n if (v < 0)\n continue;\n if (k == 0) {\n ret += int2char(v >> 2);\n slop = v & 3;\n k = 1;\n }\n else if (k == 1) {\n ret += int2char((slop << 2) | (v >> 4));\n slop = v & 0xf;\n k = 2;\n }\n else if (k == 2) {\n ret += int2char(slop);\n ret += int2char(v >> 2);\n slop = v & 3;\n k = 3;\n }\n else {\n ret += int2char((slop << 2) | (v >> 4));\n ret += int2char(v & 0xf);\n k = 0;\n }\n }\n if (k == 1)\n ret += int2char(slop << 2);\n return ret;\n}\n// convert a base64 string to a byte/number array\nexport function b64toBA(s) {\n //piggyback on b64tohex for now, optimize later\n var h = b64tohex(s);\n var i;\n var a = new Array();\n for (i = 0; 2 * i < h.length; ++i) {\n a[i] = parseInt(h.substring(2 * i, 2 * i + 2), 16);\n }\n return a;\n}\n"
|
||
|
},
|
||
|
{
|
||
|
"id": 3,
|
||
|
"identifier": "/home/corax/source/jsencrypt/test/test.rsa.js",
|
||
|
"name": "./test/test.rsa.js",
|
||
|
"index": 0,
|
||
|
"index2": 12,
|
||
|
"size": 12539,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": null,
|
||
|
"issuerId": null,
|
||
|
"issuerName": null,
|
||
|
"profile": {
|
||
|
"factory": 16,
|
||
|
"building": 17
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [],
|
||
|
"usedExports": true,
|
||
|
"providedExports": [],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 0,
|
||
|
"source": "import {JSEncrypt} from \"../src/jsencrypt\";\n\nvar keySizes = [128, 256, 512, 1024, 2048];\n\nvar pbkeys = [\n \"-----BEGIN PUBLIC KEY-----\\n\" +\n \"MCwwDQYJKoZIhvcNAQEBBQADGwAwGAIRAMfE82X6tlpNK7Bxbhg6nEECAwEAAQ==\\n\" +\n \"-----END PUBLIC KEY-----\",\n \"-----BEGIN PUBLIC KEY-----\\n\" +\n \"MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAMLw0mRGv5KF+P0LsgNvfrM5AJdVBWqr\\n\" +\n \"Q6Bf2gES5gwPAgMBAAE=\\n\" +\n \"-----END PUBLIC KEY-----\",\n \"-----BEGIN PUBLIC KEY-----\\n\" +\n \"MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKEpu21RDTXxEly55HdkVV9SlFL3Hgpl\\n\" +\n \"i6+IohAsnaqFnApsKi1R7fAd3tBLmeHV2tlxYIogtxpzfpcc+QBVDx8CAwEAAQ==\\n\" +\n \"-----END PUBLIC KEY-----\",\n \"-----BEGIN PUBLIC KEY-----\\n\" +\n \"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5LO5xVlO9g4PL1xdWudnihIAP\\n\" +\n \"bMsixr396bIbBIwKBul98UWQ3UALbqByq2bXVuoIbl48UokxOVstenGCyyo026NF\\n\" +\n \"h3Fg6Cnvj9ptvbmqk2i3eTOBrt+e26Z1sepsnQL5OojiVIbrWwS6v1pFCXpnnLLv\\n\" +\n \"yy6GPt/kftbhazH3oQIDAQAB\\n\" +\n \"-----END PUBLIC KEY-----\",\n \"-----BEGIN PUBLIC KEY-----\\n\" +\n \"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtKrsFSnzYl19m5wTwYdu\\n\" +\n \"/r1UVZJV+zkAFud6+XTInAy8HbCR9n59H9+54P+Af/fUE6rvEPc4H09Z63vQzIGM\\n\" +\n \"iL6GlqzMmptv/KRDIhj7Mk3MXomvEVfUsXrz5IpO0lf6NSeGhz4PGZUkHZ30VRx3\\n\" +\n \"Jd/a0KIhgftZHxzmMsh8iB/n781B18pCP2eOPTF+5gRCaW+0fVPBlb/mBlg8MJrd\\n\" +\n \"ScGCAReQ9NfTq8slJ0aO1NWaaRRANPQcCMljnTIK1ssyXBaSHKfoWeGx141mWMRx\\n\" +\n \"/LxyZ13Zc3lqgmICiKFqMrQl5UeV1IUXYpj5hO9f60LGpZVHDqqo/JdF3+VAheaf\\n\" +\n \"QwIDAQAB\\n\" +\n \"-----END PUBLIC KEY-----\"\n];\n\nvar prkeys = [\n \"-----BEGIN RSA PRIVATE KEY-----\\n\" +\n \"MGMCAQACEQDHxPNl+rZaTSuwcW4YOpxBAgMBAAECEQCqk6mhsmpyv17fK1dPeD3h\\n\" +\n \"AgkA9Lo1aGRom0sCCQDQ+JpqE6KDIwIJAKstyIfBnA3rAggOsWwqCTdkAQIIOP95\\n\" +\n \"RV9y2iQ=\\n\" +\n \"-----END RSA PRIVATE KEY-----\\n\",\n \"-----BEGIN RSA PRIVATE KEY-----\\n\" +\n \"MIGqAgEAAiEAwvDSZEa/koX4/QuyA29+szkAl1UFaqtDoF/aARLmDA8CAwEAAQIh\\n\" +\n \"AME2Z5Ez/hR/7PUBboKxM2U7hSaavytvocBdQjLvOUWhAhEA8HgiLHRk9KjJ2hp0\\n\" +\n \"5q3BfQIRAM+H7dYUXRnKXjYoqiKueXsCEGnaaCirf/lXB6vzs3wMBr0CEHT2Xwzw\\n\" +\n \"nSgT7dUIRhsVylECEFQRGFtZcKRmL8lqTBwECWI=\\n\" +\n \"-----END RSA PRIVATE KEY-----\\n\",\n \"-----BEGIN RSA PRIVATE KEY-----\\n\" +\n \"MIIBOQIBAAJBAKEpu21RDTXxEly55HdkVV9SlFL3Hgpli6+IohAsnaqFnApsKi1R\\n\" +\n \"7fAd3tBLmeHV2tlxYIogtxpzfpcc+QBVDx8CAwEAAQJAFn0VS07JEiLelhPWfpaA\\n\" +\n \"lzmVuvICvh6nXEormygupBGiIPSXfIsTFid26yxt9wu4JHeRF0lq+Ozo55XpBQED\\n\" +\n \"4QIhAM0E7ikuEa2bDsR2hQJhIz3SvzzyhE5dJcqFjRtKtMQvAiEAyT0C0gUyqCdN\\n\" +\n \"YuRON1T7FUffarMdQXR+8tgRkhoCeBECID+ZKfAoVF+QXDJhub0VOQNyntRfPt+4\\n\" +\n \"UYLTjwRKVm0NAiBuOCtuSoiHTxd0naU1aycmbboxn67bZeoOKkfdZL+LcQIgK6Xh\\n\" +\n \"1wb9I/sNYv9ByJEGBNJRwtUEZrk5babLEdkUq90=\\n\" +\n \"-----END RSA PRIVATE KEY-----\\n\",\n \"-----BEGIN RSA PRIVATE KEY-----\\n\" +\n \"MIICXgIBAAKBgQC5LO5xVlO9g4PL1xdWudnihIAPbMsixr396bIbBIwKBul98UWQ\\n\" +\n \"3UALbqByq2bXVuoIbl48UokxOVstenGCyyo026NFh3Fg6Cnvj9ptvbmqk2i3eTOB\\n\" +\n \"rt+e26Z1sepsnQL5OojiVIbrWwS6v1pFCXpnnLLvyy6GPt/kftbhazH3oQIDAQAB\\n\" +\n \"AoGAA+EiGbPCS10e/L1D2uhH3UwDVs9jrhXV0yT7Oz+sI2WjrKTKXU+VUOf/aoeW\\n\" +\n \"vvouKwEM7lyYTTSzaU+AY0oYVzv7HN9hWoVwi0NoPpd4V1RFfFb4+4DmXh+NZS7E\\n\" +\n \"DX9+WY435Yc9Qj7uHoc8EoRk3QfWaZTXd69b/9tS4Yy/tnECQQDxHsSe7Qxd+6tf\\n\" +\n \"/f4eO+bENCxIMbPU8GPWQCvq9eT9Av2I0LTTchmlhG1TSatq62zq+Unef8M/IOBs\\n\" +\n \"j5z3issdAkEAxJpYiuAVXulViUOLdS3QX72owIQLxpFBAKQ9cPTafqc47ms4Swy2\\n\" +\n \"FCa4MZfTJXrDX5pur+PNeP/ce6xZN5DzVQJBAJI1kgy8uU8UGKswnTNAJ4K6EFAG\\n\" +\n \"s4Ff82orp3XmfWBeu9aGl9/PxHV1g8WJWoSPFZC2cXCWEJLrIKszun7wjpECQQCs\\n\" +\n \"Z+mjh1RWUepHn+rozE9B1jDo+iLVc8V8CYszxhThIkWjlnTcI358d2PpYYmxAVHZ\\n\" +\n \"QbU1G2CxbjZsYbwvJTatAkEAspmMlIyKWgrQkLJ4rbPespMJCGe6VYharl1Qc5CF\\n\" +\n \"/2SgKSCuLfhA/Cur0nO3dxt6XJijk/r3+j+8L/m+wqud+A==\\n\" +\n \"-----END RSA PRIVATE KEY-----\\n\",\n \"-----BEGIN RSA PRIVATE KEY-----\\n\" +\n \"MIIEpAIBAAKCAQEAtKrsFSnzYl19m5wTwYdu/r1UVZJV+zkAFud6+XTInAy8HbCR\\n\" +\n \"9n59H9+54P+Af/fUE6rvEPc4H09Z63vQzIGMiL6GlqzMmptv/KRDIhj7Mk3MXomv\
|
||
|
},
|
||
|
{
|
||
|
"id": 4,
|
||
|
"identifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"name": "./src/jsencrypt.js",
|
||
|
"index": 1,
|
||
|
"index2": 11,
|
||
|
"size": 16124,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/test/test.rsa.js",
|
||
|
"issuerId": 3,
|
||
|
"issuerName": "./test/test.rsa.js",
|
||
|
"profile": {
|
||
|
"factory": 2,
|
||
|
"building": 11
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 3,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/test/test.rsa.js",
|
||
|
"module": "./test/test.rsa.js",
|
||
|
"moduleName": "./test/test.rsa.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../src/jsencrypt",
|
||
|
"loc": "1:0-43"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"JSEncrypt"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"JSEncrypt"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 1,
|
||
|
"source": "import {ASN1} from \"../lib/asn1js/asn1\";\nimport {RSAKey} from \"../lib/jsbn/rsa\";\nimport {Base64} from \"../lib/asn1js/base64\";\nimport {Hex} from \"../lib/asn1js/hex\";\nimport {parseBigInt} from \"../lib/jsbn/jsbn\";\nimport {KJUR} from \"../lib/jsrsasign/asn1-1.0\";\nimport {hex2b64} from \"../lib/jsbn/base64\";\nimport {b64tohex} from \"../lib/jsbn/base64\";\n\n/**\n * Retrieve the hexadecimal value (as a string) of the current ASN.1 element\n * @returns {string}\n * @public\n */\nASN1.prototype.getHexStringValue = function () {\n var hexString = this.toHexString();\n var offset = this.header * 2;\n var length = this.length * 2;\n return hexString.substr(offset, length);\n};\n\n/**\n * Method to parse a pem encoded string containing both a public or private key.\n * The method will translate the pem encoded string in a der encoded string and\n * will parse private key and public key parameters. This method accepts public key\n * in the rsaencryption pkcs #1 format (oid: 1.2.840.113549.1.1.1).\n *\n * @todo Check how many rsa formats use the same format of pkcs #1.\n *\n * The format is defined as:\n * PublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * PublicKey BIT STRING\n * }\n * Where AlgorithmIdentifier is:\n * AlgorithmIdentifier ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm\n * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)\n * }\n * and PublicKey is a SEQUENCE encapsulated in a BIT STRING\n * RSAPublicKey ::= SEQUENCE {\n * modulus INTEGER, -- n\n * publicExponent INTEGER -- e\n * }\n * it's possible to examine the structure of the keys obtained from openssl using\n * an asn.1 dumper as the one used here to parse the components: http://lapo.it/asn1js/\n * @argument {string} pem the pem encoded string, can include the BEGIN/END header/footer\n * @private\n */\nRSAKey.prototype.parseKey = function (pem) {\n try {\n var modulus = 0;\n var public_exponent = 0;\n var reHex = /^\\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\\s*)+$/;\n var der = reHex.test(pem) ? Hex.decode(pem) : Base64.unarmor(pem);\n var asn1 = ASN1.decode(der);\n\n //Fixes a bug with OpenSSL 1.0+ private keys\n if(asn1.sub.length === 3){\n asn1 = asn1.sub[2].sub[0];\n }\n if (asn1.sub.length === 9) {\n\n // Parse the private key.\n modulus = asn1.sub[1].getHexStringValue(); //bigint\n this.n = parseBigInt(modulus, 16);\n\n public_exponent = asn1.sub[2].getHexStringValue(); //int\n this.e = parseInt(public_exponent, 16);\n\n var private_exponent = asn1.sub[3].getHexStringValue(); //bigint\n this.d = parseBigInt(private_exponent, 16);\n\n var prime1 = asn1.sub[4].getHexStringValue(); //bigint\n this.p = parseBigInt(prime1, 16);\n\n var prime2 = asn1.sub[5].getHexStringValue(); //bigint\n this.q = parseBigInt(prime2, 16);\n\n var exponent1 = asn1.sub[6].getHexStringValue(); //bigint\n this.dmp1 = parseBigInt(exponent1, 16);\n\n var exponent2 = asn1.sub[7].getHexStringValue(); //bigint\n this.dmq1 = parseBigInt(exponent2, 16);\n\n var coefficient = asn1.sub[8].getHexStringValue(); //bigint\n this.coeff = parseBigInt(coefficient, 16);\n\n }\n else if (asn1.sub.length === 2) {\n\n // Parse the public key.\n var bit_string = asn1.sub[1];\n var sequence = bit_string.sub[0];\n\n modulus = sequence.sub[0].getHexStringValue();\n this.n = parseBigInt(modulus, 16);\n public_exponent = sequence.sub[1].getHexStringValue();\n this.e = parseInt(public_exponent, 16);\n\n }\n else {\n return false;\n }\n return true;\n }\n catch (ex) {\n return false;\n }\n};\n\n/**\n * Translate rsa parameters in a hex encoded string representing the rsa key.\n *\n * The translation follow the ASN.1 notation :\n * RSAPrivateKey ::= SEQUENCE {\n * version Version,\n * modulus INTEGER, -- n\n * publicExponent INTEGER, -- e\n * privateExp
|
||
|
},
|
||
|
{
|
||
|
"id": 5,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/asn1js/asn1.ts",
|
||
|
"name": "./lib/asn1js/asn1.ts",
|
||
|
"index": 2,
|
||
|
"index2": 1,
|
||
|
"size": 19813,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"issuerId": 4,
|
||
|
"issuerName": "./src/jsencrypt.js",
|
||
|
"profile": {
|
||
|
"factory": 33,
|
||
|
"building": 707
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 4,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"module": "./src/jsencrypt.js",
|
||
|
"moduleName": "./src/jsencrypt.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../lib/asn1js/asn1",
|
||
|
"loc": "1:0-40"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"ASN1"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"Stream",
|
||
|
"ASN1"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 2,
|
||
|
"source": "// ASN.1 JavaScript decoder\n// Copyright (c) 2008-2014 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\n/*global oids */\nimport { Int10 } from \"./int10\";\nvar ellipsis = \"\\u2026\";\nvar reTimeS = /^(\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nvar reTimeL = /^(\\d\\d\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nfunction stringCut(str, len) {\n if (str.length > len) {\n str = str.substring(0, len) + ellipsis;\n }\n return str;\n}\nvar Stream = /** @class */ (function () {\n function Stream(enc, pos) {\n this.hexDigits = \"0123456789ABCDEF\";\n if (enc instanceof Stream) {\n this.enc = enc.enc;\n this.pos = enc.pos;\n }\n else {\n // enc should be an array or a binary string\n this.enc = enc;\n this.pos = pos;\n }\n }\n Stream.prototype.get = function (pos) {\n if (pos === undefined) {\n pos = this.pos++;\n }\n if (pos >= this.enc.length) {\n throw new Error(\"Requesting byte offset \" + pos + \" on a stream of length \" + this.enc.length);\n }\n return (\"string\" === typeof this.enc) ? this.enc.charCodeAt(pos) : this.enc[pos];\n };\n Stream.prototype.hexByte = function (b) {\n return this.hexDigits.charAt((b >> 4) & 0xF) + this.hexDigits.charAt(b & 0xF);\n };\n Stream.prototype.hexDump = function (start, end, raw) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += this.hexByte(this.get(i));\n if (raw !== true) {\n switch (i & 0xF) {\n case 0x7:\n s += \" \";\n break;\n case 0xF:\n s += \"\\n\";\n break;\n default:\n s += \" \";\n }\n }\n }\n return s;\n };\n Stream.prototype.isASCII = function (start, end) {\n for (var i = start; i < end; ++i) {\n var c = this.get(i);\n if (c < 32 || c > 176) {\n return false;\n }\n }\n return true;\n };\n Stream.prototype.parseStringISO = function (start, end) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += String.fromCharCode(this.get(i));\n }\n return s;\n };\n Stream.prototype.parseStringUTF = function (start, end) {\n var s = \"\";\n for (var i = start; i < end;) {\n var c = this.get(i++);\n if (c < 128) {\n s += String.fromCharCode(c);\n }\n else if ((c > 191) && (c < 224)) {\n s += String.fromCharCode(((c & 0x1F) << 6) | (this.get(i++) & 0x3F));\n }\n else {\n s += String.fromCharCode(((c & 0x0F) << 12) | ((this.get(i++) & 0x3F) << 6) | (this.get(i++) & 0x3F));\n }\n }\n return s;\n };\n Str
|
||
|
},
|
||
|
{
|
||
|
"id": 6,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/asn1js/int10.ts",
|
||
|
"name": "./lib/asn1js/int10.ts",
|
||
|
"index": 3,
|
||
|
"index2": 0,
|
||
|
"size": 2793,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/asn1js/asn1.ts",
|
||
|
"issuerId": 5,
|
||
|
"issuerName": "./lib/asn1js/asn1.ts",
|
||
|
"profile": {
|
||
|
"factory": 253,
|
||
|
"building": 30
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 5,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/asn1js/asn1.ts",
|
||
|
"module": "./lib/asn1js/asn1.ts",
|
||
|
"moduleName": "./lib/asn1js/asn1.ts",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "./int10",
|
||
|
"loc": "16:0-32"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"Int10"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"Int10"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 3,
|
||
|
"source": "// Big integer base-10 printing library\n// Copyright (c) 2014 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar max = 10000000000000; // biggest integer that can still fit 2^53 when multiplied by 256\nvar Int10 = /** @class */ (function () {\n function Int10(value) {\n this.buf = [+value || 0];\n }\n Int10.prototype.mulAdd = function (m, c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] * m + c;\n if (t < max) {\n c = 0;\n }\n else {\n c = 0 | (t / max);\n t -= c * max;\n }\n b[i] = t;\n }\n if (c > 0) {\n b[i] = c;\n }\n };\n Int10.prototype.sub = function (c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] - c;\n if (t < 0) {\n t += max;\n c = 1;\n }\n else {\n c = 0;\n }\n b[i] = t;\n }\n while (b[b.length - 1] === 0) {\n b.pop();\n }\n };\n Int10.prototype.toString = function (base) {\n if ((base || 10) != 10) {\n throw new Error(\"only base 10 is supported\");\n }\n var b = this.buf;\n var s = b[b.length - 1].toString();\n for (var i = b.length - 2; i >= 0; --i) {\n s += (max + b[i]).toString().substring(1);\n }\n return s;\n };\n Int10.prototype.valueOf = function () {\n var b = this.buf;\n var v = 0;\n for (var i = b.length - 1; i >= 0; --i) {\n v = v * max + b[i];\n }\n return v;\n };\n Int10.prototype.simplify = function () {\n var b = this.buf;\n return (b.length == 1) ? b[0] : this;\n };\n return Int10;\n}());\nexport { Int10 };\n"
|
||
|
},
|
||
|
{
|
||
|
"id": 7,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/rsa.ts",
|
||
|
"name": "./lib/jsbn/rsa.ts",
|
||
|
"index": 4,
|
||
|
"index2": 6,
|
||
|
"size": 7707,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"issuerId": 4,
|
||
|
"issuerName": "./src/jsencrypt.js",
|
||
|
"profile": {
|
||
|
"factory": 48,
|
||
|
"building": 780,
|
||
|
"dependencies": 0
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 2,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 4,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"module": "./src/jsencrypt.js",
|
||
|
"moduleName": "./src/jsencrypt.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../lib/jsbn/rsa",
|
||
|
"loc": "2:0-39"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"RSAKey"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"RSAKey"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 2,
|
||
|
"source": "// Depends on jsbn.js and rng.js\n// Version 1.1: support utf-8 encoding in pkcs1pad2\n// convert a (hex) string to a bignum object\nimport { BigInteger, parseBigInt } from \"./jsbn\";\nimport { SecureRandom } from \"./rng\";\nfunction linebrk(s, n) {\n var ret = \"\";\n var i = 0;\n while (i + n < s.length) {\n ret += s.substring(i, i + n) + \"\\n\";\n i += n;\n }\n return ret + s.substring(i, s.length);\n}\nfunction byte2Hex(b) {\n if (b < 0x10)\n return \"0\" + b.toString(16);\n else\n return b.toString(16);\n}\n// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint\nfunction pkcs1pad2(s, n) {\n if (n < s.length + 11) {\n console.error(\"Message too long for RSA\");\n return null;\n }\n var ba = new Array();\n var i = s.length - 1;\n while (i >= 0 && n > 0) {\n var c = s.charCodeAt(i--);\n if (c < 128) {\n ba[--n] = c;\n }\n else if ((c > 127) && (c < 2048)) {\n ba[--n] = (c & 63) | 128;\n ba[--n] = (c >> 6) | 192;\n }\n else {\n ba[--n] = (c & 63) | 128;\n ba[--n] = ((c >> 6) & 63) | 128;\n ba[--n] = (c >> 12) | 224;\n }\n }\n ba[--n] = 0;\n var rng = new SecureRandom();\n var x = new Array();\n while (n > 2) {\n x[0] = 0;\n while (x[0] == 0)\n rng.nextBytes(x);\n ba[--n] = x[0];\n }\n ba[--n] = 2;\n ba[--n] = 0;\n return new BigInteger(ba);\n}\n// \"empty\" RSA key constructor\nvar RSAKey = /** @class */ (function () {\n function RSAKey() {\n this.n = null;\n this.e = 0;\n this.d = null;\n this.p = null;\n this.q = null;\n this.dmp1 = null;\n this.dmq1 = null;\n this.coeff = null;\n }\n //#region PROTECTED\n // protected\n // RSAKey.prototype.doPublic = RSADoPublic;\n // Perform raw public operation on \"x\": return x^e (mod n)\n RSAKey.prototype.doPublic = function (x) {\n return x.modPowInt(this.e, this.n);\n };\n // RSAKey.prototype.doPrivate = RSADoPrivate;\n // Perform raw private operation on \"x\": return x^d (mod n)\n RSAKey.prototype.doPrivate = function (x) {\n if (this.p == null || this.q == null)\n return x.modPow(this.d, this.n);\n // TODO: re-calculate any missing CRT params\n var xp = x.mod(this.p).modPow(this.dmp1, this.p);\n var xq = x.mod(this.q).modPow(this.dmq1, this.q);\n while (xp.compareTo(xq) < 0)\n xp = xp.add(this.p);\n return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);\n };\n //#endregion PROTECTED\n //#region PUBLIC\n // RSAKey.prototype.setPublic = RSASetPublic;\n // Set the public key fields N and e from hex strings\n RSAKey.prototype.setPublic = function (N, E) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = parseBigInt(N, 16);\n this.e = parseInt(E, 16);\n }\n else\n console.error(\"Invalid RSA public key\");\n };\n // RSAKey.prototype.encrypt = RSAEncrypt;\n // Return the PKCS#1 RSA encryption of \"text\" as an even-length hex string\n RSAKey.prototype.encrypt = function (text) {\n var m = pkcs1pad2(text, (this.n.bitLength() + 7) >> 3);\n if (m == null)\n return null;\n var c = this.doPublic(m);\n if (c == null)\n return null;\n var h = c.toString(16);\n if ((h.length & 1) == 0)\n return h;\n else\n return \"0\" + h;\n };\n // RSAKey.prototype.setPrivate = RSASetPrivate;\n // Set the private key fields N, e, and d from hex strings\n RSAKey.prototype.setPrivate = function (N, E, D) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = parseBigInt(N, 16);\n this.e = parseInt(E, 16);\n this.d = parseBigInt(D, 16);\n }\n
|
||
|
},
|
||
|
{
|
||
|
"id": 8,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/rng.ts",
|
||
|
"name": "./lib/jsbn/rng.ts",
|
||
|
"index": 7,
|
||
|
"index2": 5,
|
||
|
"size": 2618,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/rsa.ts",
|
||
|
"issuerId": 7,
|
||
|
"issuerName": "./lib/jsbn/rsa.ts",
|
||
|
"profile": {
|
||
|
"factory": 165,
|
||
|
"building": 16
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 7,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/rsa.ts",
|
||
|
"module": "./lib/jsbn/rsa.ts",
|
||
|
"moduleName": "./lib/jsbn/rsa.ts",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "./rng",
|
||
|
"loc": "5:0-37"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"SecureRandom"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"SecureRandom"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 3,
|
||
|
"source": "// Random number generator - requires a PRNG backend, e.g. prng4.js\nimport { prng_newstate, rng_psize } from \"./prng4\";\nvar rng_state;\nvar rng_pool;\nvar rng_pptr;\n// Initialize the pool with junk if needed.\nif (rng_pool == null) {\n rng_pool = [];\n rng_pptr = 0;\n var t = void 0;\n if (window.crypto && window.crypto.getRandomValues) {\n // Extract entropy (2048 bits) from RNG if available\n var z = new Uint32Array(256);\n window.crypto.getRandomValues(z);\n for (t = 0; t < z.length; ++t) {\n rng_pool[rng_pptr++] = z[t] & 255;\n }\n }\n // Use mouse events for entropy, if we do not have enough entropy by the time\n // we need it, entropy will be generated by Math.random.\n var onMouseMoveListener_1 = function (ev) {\n this.count = this.count || 0;\n if (this.count >= 256 || rng_pptr >= rng_psize) {\n if (window.removeEventListener) {\n window.removeEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.detachEvent) {\n window.detachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n return;\n }\n try {\n var mouseCoordinates = ev.x + ev.y;\n rng_pool[rng_pptr++] = mouseCoordinates & 255;\n this.count += 1;\n }\n catch (e) {\n // Sometimes Firefox will deny permission to access event properties for some reason. Ignore.\n }\n };\n if (window.addEventListener) {\n window.addEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.attachEvent) {\n window.attachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n}\nfunction rng_get_byte() {\n if (rng_state == null) {\n rng_state = prng_newstate();\n // At this point, we may not have collected enough entropy. If not, fall back to Math.random\n while (rng_pptr < rng_psize) {\n var random = Math.floor(65536 * Math.random());\n rng_pool[rng_pptr++] = random & 255;\n }\n rng_state.init(rng_pool);\n for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) {\n rng_pool[rng_pptr] = 0;\n }\n rng_pptr = 0;\n }\n // TODO: allow reseeding after first request\n return rng_state.next();\n}\nvar SecureRandom = /** @class */ (function () {\n function SecureRandom() {\n }\n SecureRandom.prototype.nextBytes = function (ba) {\n for (var i = 0; i < ba.length; ++i) {\n ba[i] = rng_get_byte();\n }\n };\n return SecureRandom;\n}());\nexport { SecureRandom };\n"
|
||
|
},
|
||
|
{
|
||
|
"id": 9,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/prng4.ts",
|
||
|
"name": "./lib/jsbn/prng4.ts",
|
||
|
"index": 8,
|
||
|
"index2": 4,
|
||
|
"size": 1320,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/rng.ts",
|
||
|
"issuerId": 8,
|
||
|
"issuerName": "./lib/jsbn/rng.ts",
|
||
|
"profile": {
|
||
|
"factory": 14,
|
||
|
"building": 4
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 8,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/rng.ts",
|
||
|
"module": "./lib/jsbn/rng.ts",
|
||
|
"moduleName": "./lib/jsbn/rng.ts",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "./prng4",
|
||
|
"loc": "2:0-51"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"prng_newstate",
|
||
|
"rng_psize"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"Arcfour",
|
||
|
"prng_newstate",
|
||
|
"rng_psize"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 4,
|
||
|
"source": "// prng4.js - uses Arcfour as a PRNG\nvar Arcfour = /** @class */ (function () {\n function Arcfour() {\n this.i = 0;\n this.j = 0;\n this.S = [];\n }\n //Arcfour.prototype.init = ARC4init;\n // Initialize arcfour context from key, an array of ints, each from [0..255]\n Arcfour.prototype.init = function (key) {\n var i, j, t;\n for (i = 0; i < 256; ++i)\n this.S[i] = i;\n j = 0;\n for (i = 0; i < 256; ++i) {\n j = (j + this.S[i] + key[i % key.length]) & 255;\n t = this.S[i];\n this.S[i] = this.S[j];\n this.S[j] = t;\n }\n this.i = 0;\n this.j = 0;\n };\n // Arcfour.prototype.next = ARC4next;\n Arcfour.prototype.next = function () {\n var t;\n this.i = (this.i + 1) & 255;\n this.j = (this.j + this.S[this.i]) & 255;\n t = this.S[this.i];\n this.S[this.i] = this.S[this.j];\n this.S[this.j] = t;\n return this.S[(t + this.S[this.i]) & 255];\n };\n return Arcfour;\n}());\nexport { Arcfour };\n// Plug in your RNG constructor here\nexport function prng_newstate() {\n return new Arcfour();\n}\n// Pool size must be a multiple of 4 and greater than 32.\n// An array of bytes the size of the pool will be passed to init()\nexport var rng_psize = 256;\n"
|
||
|
},
|
||
|
{
|
||
|
"id": 10,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/asn1js/base64.ts",
|
||
|
"name": "./lib/asn1js/base64.ts",
|
||
|
"index": 9,
|
||
|
"index2": 7,
|
||
|
"size": 2887,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"issuerId": 4,
|
||
|
"issuerName": "./src/jsencrypt.js",
|
||
|
"profile": {
|
||
|
"factory": 47,
|
||
|
"building": 703
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 4,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"module": "./src/jsencrypt.js",
|
||
|
"moduleName": "./src/jsencrypt.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../lib/asn1js/base64",
|
||
|
"loc": "3:0-44"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"Base64"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"Base64"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 2,
|
||
|
"source": "// Base64 JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nexport var Base64 = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\", ignore = \"= \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = [];\n for (i = 0; i < 64; ++i)\n decoder[b64.charAt(i)] = i;\n for (i = 0; i < ignore.length; ++i)\n decoder[ignore.charAt(i)] = -1;\n }\n var out = [];\n var bits = 0, char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == '=')\n break;\n c = decoder[c];\n if (c == -1)\n continue;\n if (c === undefined)\n throw 'Illegal character at offset ' + i;\n bits |= c;\n if (++char_count >= 4) {\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n out[out.length] = bits & 0xFF;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 6;\n }\n }\n switch (char_count) {\n case 1:\n throw \"Base64 encoding incomplete: at least 2 bits missing\";\n case 2:\n out[out.length] = (bits >> 10);\n break;\n case 3:\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n break;\n }\n return out;\n },\n re: /-----BEGIN [^-]+-----([A-Za-z0-9+\\/=\\s]+)-----END [^-]+-----|begin-base64[^\\n]+\\n([A-Za-z0-9+\\/=\\s]+)====/,\n unarmor: function (a) {\n var m = Base64.re.exec(a);\n if (m) {\n if (m[1])\n a = m[1];\n else if (m[2])\n a = m[2];\n else\n throw \"RegExp out of sync\";\n }\n return Base64.decode(a);\n }\n};\n"
|
||
|
},
|
||
|
{
|
||
|
"id": 11,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/asn1js/hex.ts",
|
||
|
"name": "./lib/asn1js/hex.ts",
|
||
|
"index": 10,
|
||
|
"index2": 8,
|
||
|
"size": 2303,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"issuerId": 4,
|
||
|
"issuerName": "./src/jsencrypt.js",
|
||
|
"profile": {
|
||
|
"factory": 48,
|
||
|
"building": 747
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 4,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"module": "./src/jsencrypt.js",
|
||
|
"moduleName": "./src/jsencrypt.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../lib/asn1js/hex",
|
||
|
"loc": "4:0-38"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"Hex"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"Hex"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 2,
|
||
|
"source": "// Hex JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nexport var Hex = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var hex = \"0123456789ABCDEF\";\n var ignore = \" \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = {};\n for (i = 0; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n hex = hex.toLowerCase();\n for (i = 10; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 2) {\n out[out.length] = bits;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 4;\n }\n }\n if (char_count) {\n throw new Error(\"Hex encoding incomplete: 4 bits missing\");\n }\n return out;\n }\n};\n"
|
||
|
},
|
||
|
{
|
||
|
"id": 12,
|
||
|
"identifier": "/home/corax/source/jsencrypt/lib/jsrsasign/asn1-1.0.js",
|
||
|
"name": "./lib/jsrsasign/asn1-1.0.js",
|
||
|
"index": 11,
|
||
|
"index2": 9,
|
||
|
"size": 41390,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"issuerId": 4,
|
||
|
"issuerName": "./src/jsencrypt.js",
|
||
|
"profile": {
|
||
|
"factory": 4,
|
||
|
"building": 26,
|
||
|
"dependencies": 18
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 4,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"module": "./src/jsencrypt.js",
|
||
|
"moduleName": "./src/jsencrypt.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../lib/jsrsasign/asn1-1.0",
|
||
|
"loc": "6:0-47"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"KJUR"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"JSX",
|
||
|
"KJUR"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 2,
|
||
|
"source": "/*! asn1-1.0.2.js (c) 2013 Kenji Urushima | kjur.github.com/jsrsasign/license\n */\n\nimport {BigInteger} from \"../jsbn/jsbn\";\nexport const JSX = {};\nJSX.env = JSX.env || {};\n\nconst L = JSX, OP = Object.prototype, FUNCTION_TOSTRING = '[object Function]',ADD = [\"toString\", \"valueOf\"];\n\nJSX.env.parseUA = function(agent) {\n\n var numberify = function(s) {\n var c = 0;\n return parseFloat(s.replace(/\\./g, function() {\n return (c++ == 1) ? '' : '.';\n }));\n },\n\n nav = navigator,\n o = {\n ie: 0,\n opera: 0,\n gecko: 0,\n webkit: 0,\n chrome: 0,\n mobile: null,\n air: 0,\n ipad: 0,\n iphone: 0,\n ipod: 0,\n ios: null,\n android: 0,\n webos: 0,\n caja: nav && nav.cajaVersion,\n secure: false,\n os: null\n\n },\n\n ua = agent || (navigator && navigator.userAgent),\n loc = window && window.location,\n href = loc && loc.href,\n m;\n\n o.secure = href && (href.toLowerCase().indexOf(\"https\") === 0);\n\n if (ua) {\n\n if ((/windows|win32/i).test(ua)) {\n o.os = 'windows';\n } else if ((/macintosh/i).test(ua)) {\n o.os = 'macintosh';\n } else if ((/rhino/i).test(ua)) {\n o.os = 'rhino';\n }\n if ((/KHTML/).test(ua)) {\n o.webkit = 1;\n }\n m = ua.match(/AppleWebKit\\/([^\\s]*)/);\n if (m && m[1]) {\n o.webkit = numberify(m[1]);\n if (/ Mobile\\//.test(ua)) {\n o.mobile = 'Apple'; // iPhone or iPod Touch\n m = ua.match(/OS ([^\\s]*)/);\n if (m && m[1]) {\n m = numberify(m[1].replace('_', '.'));\n }\n o.ios = m;\n o.ipad = o.ipod = o.iphone = 0;\n m = ua.match(/iPad|iPod|iPhone/);\n if (m && m[0]) {\n o[m[0].toLowerCase()] = o.ios;\n }\n } else {\n m = ua.match(/NokiaN[^\\/]*|Android \\d\\.\\d|webOS\\/\\d\\.\\d/);\n if (m) {\n o.mobile = m[0];\n }\n if (/webOS/.test(ua)) {\n o.mobile = 'WebOS';\n m = ua.match(/webOS\\/([^\\s]*);/);\n if (m && m[1]) {\n o.webos = numberify(m[1]);\n }\n }\n if (/ Android/.test(ua)) {\n o.mobile = 'Android';\n m = ua.match(/Android ([^\\s]*);/);\n if (m && m[1]) {\n o.android = numberify(m[1]);\n }\n }\n }\n m = ua.match(/Chrome\\/([^\\s]*)/);\n if (m && m[1]) {\n o.chrome = numberify(m[1]); // Chrome\n } else {\n m = ua.match(/AdobeAIR\\/([^\\s]*)/);\n if (m) {\n o.air = m[0]; // Adobe AIR 1.0 or better\n }\n }\n }\n if (!o.webkit) {\n m = ua.match(/Opera[\\s\\/]([^\\s]*)/);\n if (m && m[1]) {\n o.opera = numberify(m[1]);\n m = ua.match(/Version\\/([^\\s]*)/);\n if (m && m[1]) {\n o.opera = numberify(m[1]); // opera 10+\n }\n m = ua.match(/Opera Mini[^;]*/);\n if (m) {\n o.mobile = m[0]; // ex: Opera Mini/2.0.4509/1316\n }\n } else { // not opera or webkit\n m = ua.match(/MSIE\\s([^;]*)/);\n if (m && m[1]) {\n o.ie = numberify(m[1]);\n } else { // not opera, webkit, or ie\n m = ua.match(/Gecko\\/([^\\s]*)/);\n if (m) {\n o.gecko = 1; // Gecko detected, look for revision\n m = ua.match(/rv:([^\\s\\)]*)/);\n
|
||
|
}
|
||
|
],
|
||
|
"filteredModules": 0,
|
||
|
"origins": [
|
||
|
{
|
||
|
"moduleId": 3,
|
||
|
"module": "/home/corax/source/jsencrypt/test/test.rsa.js",
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/test/test.rsa.js",
|
||
|
"moduleName": "./test/test.rsa.js",
|
||
|
"loc": "",
|
||
|
"name": "main",
|
||
|
"reasons": []
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"modules": [
|
||
|
{
|
||
|
"id": 0,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/jsbn.ts",
|
||
|
"name": "./lib/jsbn/jsbn.ts",
|
||
|
"index": 5,
|
||
|
"index2": 3,
|
||
|
"size": 46027,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"issuerId": 4,
|
||
|
"issuerName": "./src/jsencrypt.js",
|
||
|
"profile": {
|
||
|
"factory": 48,
|
||
|
"building": 944,
|
||
|
"dependencies": 1
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 4,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"module": "./src/jsencrypt.js",
|
||
|
"moduleName": "./src/jsencrypt.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../lib/jsbn/jsbn",
|
||
|
"loc": "5:0-45"
|
||
|
},
|
||
|
{
|
||
|
"moduleId": 7,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/rsa.ts",
|
||
|
"module": "./lib/jsbn/rsa.ts",
|
||
|
"moduleName": "./lib/jsbn/rsa.ts",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "./jsbn",
|
||
|
"loc": "4:0-49"
|
||
|
},
|
||
|
{
|
||
|
"moduleId": 12,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/lib/jsrsasign/asn1-1.0.js",
|
||
|
"module": "./lib/jsrsasign/asn1-1.0.js",
|
||
|
"moduleName": "./lib/jsrsasign/asn1-1.0.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../jsbn/jsbn",
|
||
|
"loc": "4:0-40"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"BigInteger",
|
||
|
"parseBigInt"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"BigInteger",
|
||
|
"Classic",
|
||
|
"Montgomery",
|
||
|
"nbi",
|
||
|
"parseBigInt",
|
||
|
"intAt",
|
||
|
"nbv",
|
||
|
"nbits"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 2,
|
||
|
"source": "// Copyright (c) 2005 Tom Wu\n// All Rights Reserved.\n// See \"LICENSE\" for details.\n// Basic JavaScript BN library - subset useful for RSA encryption.\nimport { cbit, int2char, lbit, op_and, op_andnot, op_or, op_xor } from \"./util\";\n// Bits per digit\nvar dbits;\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = ((canary & 0xffffff) == 0xefcafe);\n//#region\nvar lowprimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997];\nvar lplim = (1 << 26) / lowprimes[lowprimes.length - 1];\n//#endregion\n// (public) Constructor\nvar BigInteger = /** @class */ (function () {\n function BigInteger(a, b, c) {\n if (a != null)\n if (\"number\" == typeof a)\n this.fromNumber(a, b, c);\n else if (b == null && \"string\" != typeof a)\n this.fromString(a, 256);\n else\n this.fromString(a, b);\n }\n //#region PUBLIC\n // BigInteger.prototype.toString = bnToString;\n // (public) return string representation in given radix\n BigInteger.prototype.toString = function (b) {\n if (this.s < 0) {\n return \"-\" + this.negate().toString(b);\n }\n var k;\n if (b == 16)\n k = 4;\n else if (b == 8)\n k = 3;\n else if (b == 2)\n k = 1;\n else if (b == 32)\n k = 5;\n else if (b == 4)\n k = 2;\n else\n return this.toRadix(b);\n var km = (1 << k) - 1, d, m = false, r = \"\", i = this.t;\n var p = this.DB - (i * this.DB) % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & ((1 << p) - 1)) << (k - p);\n d |= this[--i] >> (p += this.DB - k);\n }\n else {\n d = (this[i] >> (p -= k)) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0)\n m = true;\n if (m)\n r += int2char(d);\n }\n }\n return m ? r : \"0\";\n };\n // BigInteger.prototype.negate = bnNegate;\n // (public) -this\n BigInteger.prototype.negate = function () { var r = nbi(); BigInteger.ZERO.subTo(this, r); return r; };\n // BigInteger.prototype.abs = bnAbs;\n // (public) |this|\n BigInteger.prototype.abs = function () { return (this.s < 0) ? this.negate() : this; };\n // BigInteger.prototype.compareTo = bnCompareTo;\n // (public) return + if this > a, - if this < a, 0 if equal\n BigInteger.prototype.compareTo = function (a) {\n var r = this.s - a.s;\n if (r != 0)\n return r;\n var i = this.t;\n r = i - a.t;\n if (r != 0)\n return (this.s < 0) ? -r : r;\n while (--i >= 0)\n if ((r = this[i] - a[i]) != 0)\n return r;\n return 0;\n };\n // BigInteger.prototype.bitLength = bnBitLength;\n // (public) return the number of bits in \"this\"\n BigInteger.
|
||
|
},
|
||
|
{
|
||
|
"id": 1,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/util.ts",
|
||
|
"name": "./lib/jsbn/util.ts",
|
||
|
"index": 6,
|
||
|
"index2": 2,
|
||
|
"size": 1045,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/base64.ts",
|
||
|
"issuerId": 2,
|
||
|
"issuerName": "./lib/jsbn/base64.ts",
|
||
|
"profile": {
|
||
|
"factory": 156,
|
||
|
"building": 20
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 0,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/jsbn.ts",
|
||
|
"module": "./lib/jsbn/jsbn.ts",
|
||
|
"moduleName": "./lib/jsbn/jsbn.ts",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "./util",
|
||
|
"loc": "5:0-80"
|
||
|
},
|
||
|
{
|
||
|
"moduleId": 2,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/base64.ts",
|
||
|
"module": "./lib/jsbn/base64.ts",
|
||
|
"moduleName": "./lib/jsbn/base64.ts",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "./util",
|
||
|
"loc": "1:0-34"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"cbit",
|
||
|
"int2char",
|
||
|
"lbit",
|
||
|
"op_and",
|
||
|
"op_andnot",
|
||
|
"op_or",
|
||
|
"op_xor"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"int2char",
|
||
|
"op_and",
|
||
|
"op_or",
|
||
|
"op_xor",
|
||
|
"op_andnot",
|
||
|
"lbit",
|
||
|
"cbit"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 3,
|
||
|
"source": "var BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\nexport function int2char(n) {\n return BI_RM.charAt(n);\n}\n//#region BIT_OPERATIONS\n// (public) this & a\nexport function op_and(x, y) {\n return x & y;\n}\n// (public) this | a\nexport function op_or(x, y) {\n return x | y;\n}\n// (public) this ^ a\nexport function op_xor(x, y) {\n return x ^ y;\n}\n// (public) this & ~a\nexport function op_andnot(x, y) {\n return x & ~y;\n}\n// return index of lowest 1-bit in x, x < 2^31\nexport function lbit(x) {\n if (x == 0)\n return -1;\n var r = 0;\n if ((x & 0xffff) == 0) {\n x >>= 16;\n r += 16;\n }\n if ((x & 0xff) == 0) {\n x >>= 8;\n r += 8;\n }\n if ((x & 0xf) == 0) {\n x >>= 4;\n r += 4;\n }\n if ((x & 3) == 0) {\n x >>= 2;\n r += 2;\n }\n if ((x & 1) == 0)\n ++r;\n return r;\n}\n// return number of 1 bits in x\nexport function cbit(x) {\n var r = 0;\n while (x != 0) {\n x &= x - 1;\n ++r;\n }\n return r;\n}\n//#endregion BIT_OPERATIONS \n"
|
||
|
},
|
||
|
{
|
||
|
"id": 2,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/base64.ts",
|
||
|
"name": "./lib/jsbn/base64.ts",
|
||
|
"index": 12,
|
||
|
"index2": 10,
|
||
|
"size": 1966,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"issuerId": 4,
|
||
|
"issuerName": "./src/jsencrypt.js",
|
||
|
"profile": {
|
||
|
"factory": 48,
|
||
|
"building": 789
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 4,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"module": "./src/jsencrypt.js",
|
||
|
"moduleName": "./src/jsencrypt.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../lib/jsbn/base64",
|
||
|
"loc": "7:0-43"
|
||
|
},
|
||
|
{
|
||
|
"moduleId": 4,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"module": "./src/jsencrypt.js",
|
||
|
"moduleName": "./src/jsencrypt.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../lib/jsbn/base64",
|
||
|
"loc": "8:0-44"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"b64tohex",
|
||
|
"hex2b64"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"hex2b64",
|
||
|
"b64tohex",
|
||
|
"b64toBA"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 2,
|
||
|
"source": "import { int2char } from \"./util\";\nvar b64map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar b64pad = \"=\";\nexport function hex2b64(h) {\n var i;\n var c;\n var ret = \"\";\n for (i = 0; i + 3 <= h.length; i += 3) {\n c = parseInt(h.substring(i, i + 3), 16);\n ret += b64map.charAt(c >> 6) + b64map.charAt(c & 63);\n }\n if (i + 1 == h.length) {\n c = parseInt(h.substring(i, i + 1), 16);\n ret += b64map.charAt(c << 2);\n }\n else if (i + 2 == h.length) {\n c = parseInt(h.substring(i, i + 2), 16);\n ret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4);\n }\n while ((ret.length & 3) > 0)\n ret += b64pad;\n return ret;\n}\n// convert a base64 string to hex\nexport function b64tohex(s) {\n var ret = \"\";\n var i;\n var k = 0; // b64 state, 0-3\n var slop;\n for (i = 0; i < s.length; ++i) {\n if (s.charAt(i) == b64pad)\n break;\n var v = b64map.indexOf(s.charAt(i));\n if (v < 0)\n continue;\n if (k == 0) {\n ret += int2char(v >> 2);\n slop = v & 3;\n k = 1;\n }\n else if (k == 1) {\n ret += int2char((slop << 2) | (v >> 4));\n slop = v & 0xf;\n k = 2;\n }\n else if (k == 2) {\n ret += int2char(slop);\n ret += int2char(v >> 2);\n slop = v & 3;\n k = 3;\n }\n else {\n ret += int2char((slop << 2) | (v >> 4));\n ret += int2char(v & 0xf);\n k = 0;\n }\n }\n if (k == 1)\n ret += int2char(slop << 2);\n return ret;\n}\n// convert a base64 string to a byte/number array\nexport function b64toBA(s) {\n //piggyback on b64tohex for now, optimize later\n var h = b64tohex(s);\n var i;\n var a = new Array();\n for (i = 0; 2 * i < h.length; ++i) {\n a[i] = parseInt(h.substring(2 * i, 2 * i + 2), 16);\n }\n return a;\n}\n"
|
||
|
},
|
||
|
{
|
||
|
"id": 3,
|
||
|
"identifier": "/home/corax/source/jsencrypt/test/test.rsa.js",
|
||
|
"name": "./test/test.rsa.js",
|
||
|
"index": 0,
|
||
|
"index2": 12,
|
||
|
"size": 12539,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": null,
|
||
|
"issuerId": null,
|
||
|
"issuerName": null,
|
||
|
"profile": {
|
||
|
"factory": 16,
|
||
|
"building": 17
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [],
|
||
|
"usedExports": true,
|
||
|
"providedExports": [],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 0,
|
||
|
"source": "import {JSEncrypt} from \"../src/jsencrypt\";\n\nvar keySizes = [128, 256, 512, 1024, 2048];\n\nvar pbkeys = [\n \"-----BEGIN PUBLIC KEY-----\\n\" +\n \"MCwwDQYJKoZIhvcNAQEBBQADGwAwGAIRAMfE82X6tlpNK7Bxbhg6nEECAwEAAQ==\\n\" +\n \"-----END PUBLIC KEY-----\",\n \"-----BEGIN PUBLIC KEY-----\\n\" +\n \"MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAMLw0mRGv5KF+P0LsgNvfrM5AJdVBWqr\\n\" +\n \"Q6Bf2gES5gwPAgMBAAE=\\n\" +\n \"-----END PUBLIC KEY-----\",\n \"-----BEGIN PUBLIC KEY-----\\n\" +\n \"MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKEpu21RDTXxEly55HdkVV9SlFL3Hgpl\\n\" +\n \"i6+IohAsnaqFnApsKi1R7fAd3tBLmeHV2tlxYIogtxpzfpcc+QBVDx8CAwEAAQ==\\n\" +\n \"-----END PUBLIC KEY-----\",\n \"-----BEGIN PUBLIC KEY-----\\n\" +\n \"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5LO5xVlO9g4PL1xdWudnihIAP\\n\" +\n \"bMsixr396bIbBIwKBul98UWQ3UALbqByq2bXVuoIbl48UokxOVstenGCyyo026NF\\n\" +\n \"h3Fg6Cnvj9ptvbmqk2i3eTOBrt+e26Z1sepsnQL5OojiVIbrWwS6v1pFCXpnnLLv\\n\" +\n \"yy6GPt/kftbhazH3oQIDAQAB\\n\" +\n \"-----END PUBLIC KEY-----\",\n \"-----BEGIN PUBLIC KEY-----\\n\" +\n \"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtKrsFSnzYl19m5wTwYdu\\n\" +\n \"/r1UVZJV+zkAFud6+XTInAy8HbCR9n59H9+54P+Af/fUE6rvEPc4H09Z63vQzIGM\\n\" +\n \"iL6GlqzMmptv/KRDIhj7Mk3MXomvEVfUsXrz5IpO0lf6NSeGhz4PGZUkHZ30VRx3\\n\" +\n \"Jd/a0KIhgftZHxzmMsh8iB/n781B18pCP2eOPTF+5gRCaW+0fVPBlb/mBlg8MJrd\\n\" +\n \"ScGCAReQ9NfTq8slJ0aO1NWaaRRANPQcCMljnTIK1ssyXBaSHKfoWeGx141mWMRx\\n\" +\n \"/LxyZ13Zc3lqgmICiKFqMrQl5UeV1IUXYpj5hO9f60LGpZVHDqqo/JdF3+VAheaf\\n\" +\n \"QwIDAQAB\\n\" +\n \"-----END PUBLIC KEY-----\"\n];\n\nvar prkeys = [\n \"-----BEGIN RSA PRIVATE KEY-----\\n\" +\n \"MGMCAQACEQDHxPNl+rZaTSuwcW4YOpxBAgMBAAECEQCqk6mhsmpyv17fK1dPeD3h\\n\" +\n \"AgkA9Lo1aGRom0sCCQDQ+JpqE6KDIwIJAKstyIfBnA3rAggOsWwqCTdkAQIIOP95\\n\" +\n \"RV9y2iQ=\\n\" +\n \"-----END RSA PRIVATE KEY-----\\n\",\n \"-----BEGIN RSA PRIVATE KEY-----\\n\" +\n \"MIGqAgEAAiEAwvDSZEa/koX4/QuyA29+szkAl1UFaqtDoF/aARLmDA8CAwEAAQIh\\n\" +\n \"AME2Z5Ez/hR/7PUBboKxM2U7hSaavytvocBdQjLvOUWhAhEA8HgiLHRk9KjJ2hp0\\n\" +\n \"5q3BfQIRAM+H7dYUXRnKXjYoqiKueXsCEGnaaCirf/lXB6vzs3wMBr0CEHT2Xwzw\\n\" +\n \"nSgT7dUIRhsVylECEFQRGFtZcKRmL8lqTBwECWI=\\n\" +\n \"-----END RSA PRIVATE KEY-----\\n\",\n \"-----BEGIN RSA PRIVATE KEY-----\\n\" +\n \"MIIBOQIBAAJBAKEpu21RDTXxEly55HdkVV9SlFL3Hgpli6+IohAsnaqFnApsKi1R\\n\" +\n \"7fAd3tBLmeHV2tlxYIogtxpzfpcc+QBVDx8CAwEAAQJAFn0VS07JEiLelhPWfpaA\\n\" +\n \"lzmVuvICvh6nXEormygupBGiIPSXfIsTFid26yxt9wu4JHeRF0lq+Ozo55XpBQED\\n\" +\n \"4QIhAM0E7ikuEa2bDsR2hQJhIz3SvzzyhE5dJcqFjRtKtMQvAiEAyT0C0gUyqCdN\\n\" +\n \"YuRON1T7FUffarMdQXR+8tgRkhoCeBECID+ZKfAoVF+QXDJhub0VOQNyntRfPt+4\\n\" +\n \"UYLTjwRKVm0NAiBuOCtuSoiHTxd0naU1aycmbboxn67bZeoOKkfdZL+LcQIgK6Xh\\n\" +\n \"1wb9I/sNYv9ByJEGBNJRwtUEZrk5babLEdkUq90=\\n\" +\n \"-----END RSA PRIVATE KEY-----\\n\",\n \"-----BEGIN RSA PRIVATE KEY-----\\n\" +\n \"MIICXgIBAAKBgQC5LO5xVlO9g4PL1xdWudnihIAPbMsixr396bIbBIwKBul98UWQ\\n\" +\n \"3UALbqByq2bXVuoIbl48UokxOVstenGCyyo026NFh3Fg6Cnvj9ptvbmqk2i3eTOB\\n\" +\n \"rt+e26Z1sepsnQL5OojiVIbrWwS6v1pFCXpnnLLvyy6GPt/kftbhazH3oQIDAQAB\\n\" +\n \"AoGAA+EiGbPCS10e/L1D2uhH3UwDVs9jrhXV0yT7Oz+sI2WjrKTKXU+VUOf/aoeW\\n\" +\n \"vvouKwEM7lyYTTSzaU+AY0oYVzv7HN9hWoVwi0NoPpd4V1RFfFb4+4DmXh+NZS7E\\n\" +\n \"DX9+WY435Yc9Qj7uHoc8EoRk3QfWaZTXd69b/9tS4Yy/tnECQQDxHsSe7Qxd+6tf\\n\" +\n \"/f4eO+bENCxIMbPU8GPWQCvq9eT9Av2I0LTTchmlhG1TSatq62zq+Unef8M/IOBs\\n\" +\n \"j5z3issdAkEAxJpYiuAVXulViUOLdS3QX72owIQLxpFBAKQ9cPTafqc47ms4Swy2\\n\" +\n \"FCa4MZfTJXrDX5pur+PNeP/ce6xZN5DzVQJBAJI1kgy8uU8UGKswnTNAJ4K6EFAG\\n\" +\n \"s4Ff82orp3XmfWBeu9aGl9/PxHV1g8WJWoSPFZC2cXCWEJLrIKszun7wjpECQQCs\\n\" +\n \"Z+mjh1RWUepHn+rozE9B1jDo+iLVc8V8CYszxhThIkWjlnTcI358d2PpYYmxAVHZ\\n\" +\n \"QbU1G2CxbjZsYbwvJTatAkEAspmMlIyKWgrQkLJ4rbPespMJCGe6VYharl1Qc5CF\\n\" +\n \"/2SgKSCuLfhA/Cur0nO3dxt6XJijk/r3+j+8L/m+wqud+A==\\n\" +\n \"-----END RSA PRIVATE KEY-----\\n\",\n \"-----BEGIN RSA PRIVATE KEY-----\\n\" +\n \"MIIEpAIBAAKCAQEAtKrsFSnzYl19m5wTwYdu/r1UVZJV+zkAFud6+XTInAy8HbCR\\n\" +\n \"9n59H9+54P+Af/fUE6rvEPc4H09Z63vQzIGMiL6GlqzMmptv/KRDIhj7Mk3MXomv\\n\"
|
||
|
},
|
||
|
{
|
||
|
"id": 4,
|
||
|
"identifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"name": "./src/jsencrypt.js",
|
||
|
"index": 1,
|
||
|
"index2": 11,
|
||
|
"size": 16124,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/test/test.rsa.js",
|
||
|
"issuerId": 3,
|
||
|
"issuerName": "./test/test.rsa.js",
|
||
|
"profile": {
|
||
|
"factory": 2,
|
||
|
"building": 11
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 3,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/test/test.rsa.js",
|
||
|
"module": "./test/test.rsa.js",
|
||
|
"moduleName": "./test/test.rsa.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../src/jsencrypt",
|
||
|
"loc": "1:0-43"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"JSEncrypt"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"JSEncrypt"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 1,
|
||
|
"source": "import {ASN1} from \"../lib/asn1js/asn1\";\nimport {RSAKey} from \"../lib/jsbn/rsa\";\nimport {Base64} from \"../lib/asn1js/base64\";\nimport {Hex} from \"../lib/asn1js/hex\";\nimport {parseBigInt} from \"../lib/jsbn/jsbn\";\nimport {KJUR} from \"../lib/jsrsasign/asn1-1.0\";\nimport {hex2b64} from \"../lib/jsbn/base64\";\nimport {b64tohex} from \"../lib/jsbn/base64\";\n\n/**\n * Retrieve the hexadecimal value (as a string) of the current ASN.1 element\n * @returns {string}\n * @public\n */\nASN1.prototype.getHexStringValue = function () {\n var hexString = this.toHexString();\n var offset = this.header * 2;\n var length = this.length * 2;\n return hexString.substr(offset, length);\n};\n\n/**\n * Method to parse a pem encoded string containing both a public or private key.\n * The method will translate the pem encoded string in a der encoded string and\n * will parse private key and public key parameters. This method accepts public key\n * in the rsaencryption pkcs #1 format (oid: 1.2.840.113549.1.1.1).\n *\n * @todo Check how many rsa formats use the same format of pkcs #1.\n *\n * The format is defined as:\n * PublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * PublicKey BIT STRING\n * }\n * Where AlgorithmIdentifier is:\n * AlgorithmIdentifier ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm\n * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)\n * }\n * and PublicKey is a SEQUENCE encapsulated in a BIT STRING\n * RSAPublicKey ::= SEQUENCE {\n * modulus INTEGER, -- n\n * publicExponent INTEGER -- e\n * }\n * it's possible to examine the structure of the keys obtained from openssl using\n * an asn.1 dumper as the one used here to parse the components: http://lapo.it/asn1js/\n * @argument {string} pem the pem encoded string, can include the BEGIN/END header/footer\n * @private\n */\nRSAKey.prototype.parseKey = function (pem) {\n try {\n var modulus = 0;\n var public_exponent = 0;\n var reHex = /^\\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\\s*)+$/;\n var der = reHex.test(pem) ? Hex.decode(pem) : Base64.unarmor(pem);\n var asn1 = ASN1.decode(der);\n\n //Fixes a bug with OpenSSL 1.0+ private keys\n if(asn1.sub.length === 3){\n asn1 = asn1.sub[2].sub[0];\n }\n if (asn1.sub.length === 9) {\n\n // Parse the private key.\n modulus = asn1.sub[1].getHexStringValue(); //bigint\n this.n = parseBigInt(modulus, 16);\n\n public_exponent = asn1.sub[2].getHexStringValue(); //int\n this.e = parseInt(public_exponent, 16);\n\n var private_exponent = asn1.sub[3].getHexStringValue(); //bigint\n this.d = parseBigInt(private_exponent, 16);\n\n var prime1 = asn1.sub[4].getHexStringValue(); //bigint\n this.p = parseBigInt(prime1, 16);\n\n var prime2 = asn1.sub[5].getHexStringValue(); //bigint\n this.q = parseBigInt(prime2, 16);\n\n var exponent1 = asn1.sub[6].getHexStringValue(); //bigint\n this.dmp1 = parseBigInt(exponent1, 16);\n\n var exponent2 = asn1.sub[7].getHexStringValue(); //bigint\n this.dmq1 = parseBigInt(exponent2, 16);\n\n var coefficient = asn1.sub[8].getHexStringValue(); //bigint\n this.coeff = parseBigInt(coefficient, 16);\n\n }\n else if (asn1.sub.length === 2) {\n\n // Parse the public key.\n var bit_string = asn1.sub[1];\n var sequence = bit_string.sub[0];\n\n modulus = sequence.sub[0].getHexStringValue();\n this.n = parseBigInt(modulus, 16);\n public_exponent = sequence.sub[1].getHexStringValue();\n this.e = parseInt(public_exponent, 16);\n\n }\n else {\n return false;\n }\n return true;\n }\n catch (ex) {\n return false;\n }\n};\n\n/**\n * Translate rsa parameters in a hex encoded string representing the rsa key.\n *\n * The translation follow the ASN.1 notation :\n * RSAPrivateKey ::= SEQUENCE {\n * version Version,\n * modulus INTEGER, -- n\n * publicExponent INTEGER, -- e\n * privateExponen
|
||
|
},
|
||
|
{
|
||
|
"id": 5,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/asn1js/asn1.ts",
|
||
|
"name": "./lib/asn1js/asn1.ts",
|
||
|
"index": 2,
|
||
|
"index2": 1,
|
||
|
"size": 19813,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"issuerId": 4,
|
||
|
"issuerName": "./src/jsencrypt.js",
|
||
|
"profile": {
|
||
|
"factory": 33,
|
||
|
"building": 707
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 4,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"module": "./src/jsencrypt.js",
|
||
|
"moduleName": "./src/jsencrypt.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../lib/asn1js/asn1",
|
||
|
"loc": "1:0-40"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"ASN1"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"Stream",
|
||
|
"ASN1"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 2,
|
||
|
"source": "// ASN.1 JavaScript decoder\n// Copyright (c) 2008-2014 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\n/*global oids */\nimport { Int10 } from \"./int10\";\nvar ellipsis = \"\\u2026\";\nvar reTimeS = /^(\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nvar reTimeL = /^(\\d\\d\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nfunction stringCut(str, len) {\n if (str.length > len) {\n str = str.substring(0, len) + ellipsis;\n }\n return str;\n}\nvar Stream = /** @class */ (function () {\n function Stream(enc, pos) {\n this.hexDigits = \"0123456789ABCDEF\";\n if (enc instanceof Stream) {\n this.enc = enc.enc;\n this.pos = enc.pos;\n }\n else {\n // enc should be an array or a binary string\n this.enc = enc;\n this.pos = pos;\n }\n }\n Stream.prototype.get = function (pos) {\n if (pos === undefined) {\n pos = this.pos++;\n }\n if (pos >= this.enc.length) {\n throw new Error(\"Requesting byte offset \" + pos + \" on a stream of length \" + this.enc.length);\n }\n return (\"string\" === typeof this.enc) ? this.enc.charCodeAt(pos) : this.enc[pos];\n };\n Stream.prototype.hexByte = function (b) {\n return this.hexDigits.charAt((b >> 4) & 0xF) + this.hexDigits.charAt(b & 0xF);\n };\n Stream.prototype.hexDump = function (start, end, raw) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += this.hexByte(this.get(i));\n if (raw !== true) {\n switch (i & 0xF) {\n case 0x7:\n s += \" \";\n break;\n case 0xF:\n s += \"\\n\";\n break;\n default:\n s += \" \";\n }\n }\n }\n return s;\n };\n Stream.prototype.isASCII = function (start, end) {\n for (var i = start; i < end; ++i) {\n var c = this.get(i);\n if (c < 32 || c > 176) {\n return false;\n }\n }\n return true;\n };\n Stream.prototype.parseStringISO = function (start, end) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += String.fromCharCode(this.get(i));\n }\n return s;\n };\n Stream.prototype.parseStringUTF = function (start, end) {\n var s = \"\";\n for (var i = start; i < end;) {\n var c = this.get(i++);\n if (c < 128) {\n s += String.fromCharCode(c);\n }\n else if ((c > 191) && (c < 224)) {\n s += String.fromCharCode(((c & 0x1F) << 6) | (this.get(i++) & 0x3F));\n }\n else {\n s += String.fromCharCode(((c & 0x0F) << 12) | ((this.get(i++) & 0x3F) << 6) | (this.get(i++) & 0x3F));\n }\n }\n return s;\n };\n Stream.
|
||
|
},
|
||
|
{
|
||
|
"id": 6,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/asn1js/int10.ts",
|
||
|
"name": "./lib/asn1js/int10.ts",
|
||
|
"index": 3,
|
||
|
"index2": 0,
|
||
|
"size": 2793,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/asn1js/asn1.ts",
|
||
|
"issuerId": 5,
|
||
|
"issuerName": "./lib/asn1js/asn1.ts",
|
||
|
"profile": {
|
||
|
"factory": 253,
|
||
|
"building": 30
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 5,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/asn1js/asn1.ts",
|
||
|
"module": "./lib/asn1js/asn1.ts",
|
||
|
"moduleName": "./lib/asn1js/asn1.ts",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "./int10",
|
||
|
"loc": "16:0-32"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"Int10"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"Int10"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 3,
|
||
|
"source": "// Big integer base-10 printing library\n// Copyright (c) 2014 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar max = 10000000000000; // biggest integer that can still fit 2^53 when multiplied by 256\nvar Int10 = /** @class */ (function () {\n function Int10(value) {\n this.buf = [+value || 0];\n }\n Int10.prototype.mulAdd = function (m, c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] * m + c;\n if (t < max) {\n c = 0;\n }\n else {\n c = 0 | (t / max);\n t -= c * max;\n }\n b[i] = t;\n }\n if (c > 0) {\n b[i] = c;\n }\n };\n Int10.prototype.sub = function (c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] - c;\n if (t < 0) {\n t += max;\n c = 1;\n }\n else {\n c = 0;\n }\n b[i] = t;\n }\n while (b[b.length - 1] === 0) {\n b.pop();\n }\n };\n Int10.prototype.toString = function (base) {\n if ((base || 10) != 10) {\n throw new Error(\"only base 10 is supported\");\n }\n var b = this.buf;\n var s = b[b.length - 1].toString();\n for (var i = b.length - 2; i >= 0; --i) {\n s += (max + b[i]).toString().substring(1);\n }\n return s;\n };\n Int10.prototype.valueOf = function () {\n var b = this.buf;\n var v = 0;\n for (var i = b.length - 1; i >= 0; --i) {\n v = v * max + b[i];\n }\n return v;\n };\n Int10.prototype.simplify = function () {\n var b = this.buf;\n return (b.length == 1) ? b[0] : this;\n };\n return Int10;\n}());\nexport { Int10 };\n"
|
||
|
},
|
||
|
{
|
||
|
"id": 7,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/rsa.ts",
|
||
|
"name": "./lib/jsbn/rsa.ts",
|
||
|
"index": 4,
|
||
|
"index2": 6,
|
||
|
"size": 7707,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"issuerId": 4,
|
||
|
"issuerName": "./src/jsencrypt.js",
|
||
|
"profile": {
|
||
|
"factory": 48,
|
||
|
"building": 780,
|
||
|
"dependencies": 0
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 2,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 4,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"module": "./src/jsencrypt.js",
|
||
|
"moduleName": "./src/jsencrypt.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../lib/jsbn/rsa",
|
||
|
"loc": "2:0-39"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"RSAKey"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"RSAKey"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 2,
|
||
|
"source": "// Depends on jsbn.js and rng.js\n// Version 1.1: support utf-8 encoding in pkcs1pad2\n// convert a (hex) string to a bignum object\nimport { BigInteger, parseBigInt } from \"./jsbn\";\nimport { SecureRandom } from \"./rng\";\nfunction linebrk(s, n) {\n var ret = \"\";\n var i = 0;\n while (i + n < s.length) {\n ret += s.substring(i, i + n) + \"\\n\";\n i += n;\n }\n return ret + s.substring(i, s.length);\n}\nfunction byte2Hex(b) {\n if (b < 0x10)\n return \"0\" + b.toString(16);\n else\n return b.toString(16);\n}\n// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint\nfunction pkcs1pad2(s, n) {\n if (n < s.length + 11) {\n console.error(\"Message too long for RSA\");\n return null;\n }\n var ba = new Array();\n var i = s.length - 1;\n while (i >= 0 && n > 0) {\n var c = s.charCodeAt(i--);\n if (c < 128) {\n ba[--n] = c;\n }\n else if ((c > 127) && (c < 2048)) {\n ba[--n] = (c & 63) | 128;\n ba[--n] = (c >> 6) | 192;\n }\n else {\n ba[--n] = (c & 63) | 128;\n ba[--n] = ((c >> 6) & 63) | 128;\n ba[--n] = (c >> 12) | 224;\n }\n }\n ba[--n] = 0;\n var rng = new SecureRandom();\n var x = new Array();\n while (n > 2) {\n x[0] = 0;\n while (x[0] == 0)\n rng.nextBytes(x);\n ba[--n] = x[0];\n }\n ba[--n] = 2;\n ba[--n] = 0;\n return new BigInteger(ba);\n}\n// \"empty\" RSA key constructor\nvar RSAKey = /** @class */ (function () {\n function RSAKey() {\n this.n = null;\n this.e = 0;\n this.d = null;\n this.p = null;\n this.q = null;\n this.dmp1 = null;\n this.dmq1 = null;\n this.coeff = null;\n }\n //#region PROTECTED\n // protected\n // RSAKey.prototype.doPublic = RSADoPublic;\n // Perform raw public operation on \"x\": return x^e (mod n)\n RSAKey.prototype.doPublic = function (x) {\n return x.modPowInt(this.e, this.n);\n };\n // RSAKey.prototype.doPrivate = RSADoPrivate;\n // Perform raw private operation on \"x\": return x^d (mod n)\n RSAKey.prototype.doPrivate = function (x) {\n if (this.p == null || this.q == null)\n return x.modPow(this.d, this.n);\n // TODO: re-calculate any missing CRT params\n var xp = x.mod(this.p).modPow(this.dmp1, this.p);\n var xq = x.mod(this.q).modPow(this.dmq1, this.q);\n while (xp.compareTo(xq) < 0)\n xp = xp.add(this.p);\n return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);\n };\n //#endregion PROTECTED\n //#region PUBLIC\n // RSAKey.prototype.setPublic = RSASetPublic;\n // Set the public key fields N and e from hex strings\n RSAKey.prototype.setPublic = function (N, E) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = parseBigInt(N, 16);\n this.e = parseInt(E, 16);\n }\n else\n console.error(\"Invalid RSA public key\");\n };\n // RSAKey.prototype.encrypt = RSAEncrypt;\n // Return the PKCS#1 RSA encryption of \"text\" as an even-length hex string\n RSAKey.prototype.encrypt = function (text) {\n var m = pkcs1pad2(text, (this.n.bitLength() + 7) >> 3);\n if (m == null)\n return null;\n var c = this.doPublic(m);\n if (c == null)\n return null;\n var h = c.toString(16);\n if ((h.length & 1) == 0)\n return h;\n else\n return \"0\" + h;\n };\n // RSAKey.prototype.setPrivate = RSASetPrivate;\n // Set the private key fields N, e, and d from hex strings\n RSAKey.prototype.setPrivate = function (N, E, D) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = parseBigInt(N, 16);\n this.e = parseInt(E, 16);\n this.d = parseBigInt(D, 16);\n }\n el
|
||
|
},
|
||
|
{
|
||
|
"id": 8,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/rng.ts",
|
||
|
"name": "./lib/jsbn/rng.ts",
|
||
|
"index": 7,
|
||
|
"index2": 5,
|
||
|
"size": 2618,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/rsa.ts",
|
||
|
"issuerId": 7,
|
||
|
"issuerName": "./lib/jsbn/rsa.ts",
|
||
|
"profile": {
|
||
|
"factory": 165,
|
||
|
"building": 16
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 7,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/rsa.ts",
|
||
|
"module": "./lib/jsbn/rsa.ts",
|
||
|
"moduleName": "./lib/jsbn/rsa.ts",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "./rng",
|
||
|
"loc": "5:0-37"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"SecureRandom"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"SecureRandom"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 3,
|
||
|
"source": "// Random number generator - requires a PRNG backend, e.g. prng4.js\nimport { prng_newstate, rng_psize } from \"./prng4\";\nvar rng_state;\nvar rng_pool;\nvar rng_pptr;\n// Initialize the pool with junk if needed.\nif (rng_pool == null) {\n rng_pool = [];\n rng_pptr = 0;\n var t = void 0;\n if (window.crypto && window.crypto.getRandomValues) {\n // Extract entropy (2048 bits) from RNG if available\n var z = new Uint32Array(256);\n window.crypto.getRandomValues(z);\n for (t = 0; t < z.length; ++t) {\n rng_pool[rng_pptr++] = z[t] & 255;\n }\n }\n // Use mouse events for entropy, if we do not have enough entropy by the time\n // we need it, entropy will be generated by Math.random.\n var onMouseMoveListener_1 = function (ev) {\n this.count = this.count || 0;\n if (this.count >= 256 || rng_pptr >= rng_psize) {\n if (window.removeEventListener) {\n window.removeEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.detachEvent) {\n window.detachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n return;\n }\n try {\n var mouseCoordinates = ev.x + ev.y;\n rng_pool[rng_pptr++] = mouseCoordinates & 255;\n this.count += 1;\n }\n catch (e) {\n // Sometimes Firefox will deny permission to access event properties for some reason. Ignore.\n }\n };\n if (window.addEventListener) {\n window.addEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.attachEvent) {\n window.attachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n}\nfunction rng_get_byte() {\n if (rng_state == null) {\n rng_state = prng_newstate();\n // At this point, we may not have collected enough entropy. If not, fall back to Math.random\n while (rng_pptr < rng_psize) {\n var random = Math.floor(65536 * Math.random());\n rng_pool[rng_pptr++] = random & 255;\n }\n rng_state.init(rng_pool);\n for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) {\n rng_pool[rng_pptr] = 0;\n }\n rng_pptr = 0;\n }\n // TODO: allow reseeding after first request\n return rng_state.next();\n}\nvar SecureRandom = /** @class */ (function () {\n function SecureRandom() {\n }\n SecureRandom.prototype.nextBytes = function (ba) {\n for (var i = 0; i < ba.length; ++i) {\n ba[i] = rng_get_byte();\n }\n };\n return SecureRandom;\n}());\nexport { SecureRandom };\n"
|
||
|
},
|
||
|
{
|
||
|
"id": 9,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/prng4.ts",
|
||
|
"name": "./lib/jsbn/prng4.ts",
|
||
|
"index": 8,
|
||
|
"index2": 4,
|
||
|
"size": 1320,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/rng.ts",
|
||
|
"issuerId": 8,
|
||
|
"issuerName": "./lib/jsbn/rng.ts",
|
||
|
"profile": {
|
||
|
"factory": 14,
|
||
|
"building": 4
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 8,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/jsbn/rng.ts",
|
||
|
"module": "./lib/jsbn/rng.ts",
|
||
|
"moduleName": "./lib/jsbn/rng.ts",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "./prng4",
|
||
|
"loc": "2:0-51"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"prng_newstate",
|
||
|
"rng_psize"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"Arcfour",
|
||
|
"prng_newstate",
|
||
|
"rng_psize"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 4,
|
||
|
"source": "// prng4.js - uses Arcfour as a PRNG\nvar Arcfour = /** @class */ (function () {\n function Arcfour() {\n this.i = 0;\n this.j = 0;\n this.S = [];\n }\n //Arcfour.prototype.init = ARC4init;\n // Initialize arcfour context from key, an array of ints, each from [0..255]\n Arcfour.prototype.init = function (key) {\n var i, j, t;\n for (i = 0; i < 256; ++i)\n this.S[i] = i;\n j = 0;\n for (i = 0; i < 256; ++i) {\n j = (j + this.S[i] + key[i % key.length]) & 255;\n t = this.S[i];\n this.S[i] = this.S[j];\n this.S[j] = t;\n }\n this.i = 0;\n this.j = 0;\n };\n // Arcfour.prototype.next = ARC4next;\n Arcfour.prototype.next = function () {\n var t;\n this.i = (this.i + 1) & 255;\n this.j = (this.j + this.S[this.i]) & 255;\n t = this.S[this.i];\n this.S[this.i] = this.S[this.j];\n this.S[this.j] = t;\n return this.S[(t + this.S[this.i]) & 255];\n };\n return Arcfour;\n}());\nexport { Arcfour };\n// Plug in your RNG constructor here\nexport function prng_newstate() {\n return new Arcfour();\n}\n// Pool size must be a multiple of 4 and greater than 32.\n// An array of bytes the size of the pool will be passed to init()\nexport var rng_psize = 256;\n"
|
||
|
},
|
||
|
{
|
||
|
"id": 10,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/asn1js/base64.ts",
|
||
|
"name": "./lib/asn1js/base64.ts",
|
||
|
"index": 9,
|
||
|
"index2": 7,
|
||
|
"size": 2887,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"issuerId": 4,
|
||
|
"issuerName": "./src/jsencrypt.js",
|
||
|
"profile": {
|
||
|
"factory": 47,
|
||
|
"building": 703
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 4,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"module": "./src/jsencrypt.js",
|
||
|
"moduleName": "./src/jsencrypt.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../lib/asn1js/base64",
|
||
|
"loc": "3:0-44"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"Base64"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"Base64"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 2,
|
||
|
"source": "// Base64 JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nexport var Base64 = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\", ignore = \"= \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = [];\n for (i = 0; i < 64; ++i)\n decoder[b64.charAt(i)] = i;\n for (i = 0; i < ignore.length; ++i)\n decoder[ignore.charAt(i)] = -1;\n }\n var out = [];\n var bits = 0, char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == '=')\n break;\n c = decoder[c];\n if (c == -1)\n continue;\n if (c === undefined)\n throw 'Illegal character at offset ' + i;\n bits |= c;\n if (++char_count >= 4) {\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n out[out.length] = bits & 0xFF;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 6;\n }\n }\n switch (char_count) {\n case 1:\n throw \"Base64 encoding incomplete: at least 2 bits missing\";\n case 2:\n out[out.length] = (bits >> 10);\n break;\n case 3:\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n break;\n }\n return out;\n },\n re: /-----BEGIN [^-]+-----([A-Za-z0-9+\\/=\\s]+)-----END [^-]+-----|begin-base64[^\\n]+\\n([A-Za-z0-9+\\/=\\s]+)====/,\n unarmor: function (a) {\n var m = Base64.re.exec(a);\n if (m) {\n if (m[1])\n a = m[1];\n else if (m[2])\n a = m[2];\n else\n throw \"RegExp out of sync\";\n }\n return Base64.decode(a);\n }\n};\n"
|
||
|
},
|
||
|
{
|
||
|
"id": 11,
|
||
|
"identifier": "/home/corax/source/jsencrypt/node_modules/ts-loader/index.js??ref--0-0!/home/corax/source/jsencrypt/lib/asn1js/hex.ts",
|
||
|
"name": "./lib/asn1js/hex.ts",
|
||
|
"index": 10,
|
||
|
"index2": 8,
|
||
|
"size": 2303,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"issuerId": 4,
|
||
|
"issuerName": "./src/jsencrypt.js",
|
||
|
"profile": {
|
||
|
"factory": 48,
|
||
|
"building": 747
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 4,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"module": "./src/jsencrypt.js",
|
||
|
"moduleName": "./src/jsencrypt.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../lib/asn1js/hex",
|
||
|
"loc": "4:0-38"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"Hex"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"Hex"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 2,
|
||
|
"source": "// Hex JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini <lapo@lapo.it>\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nexport var Hex = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var hex = \"0123456789ABCDEF\";\n var ignore = \" \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = {};\n for (i = 0; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n hex = hex.toLowerCase();\n for (i = 10; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 2) {\n out[out.length] = bits;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 4;\n }\n }\n if (char_count) {\n throw new Error(\"Hex encoding incomplete: 4 bits missing\");\n }\n return out;\n }\n};\n"
|
||
|
},
|
||
|
{
|
||
|
"id": 12,
|
||
|
"identifier": "/home/corax/source/jsencrypt/lib/jsrsasign/asn1-1.0.js",
|
||
|
"name": "./lib/jsrsasign/asn1-1.0.js",
|
||
|
"index": 11,
|
||
|
"index2": 9,
|
||
|
"size": 41390,
|
||
|
"cacheable": true,
|
||
|
"built": true,
|
||
|
"optional": false,
|
||
|
"prefetched": false,
|
||
|
"chunks": [
|
||
|
0
|
||
|
],
|
||
|
"assets": [],
|
||
|
"issuer": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"issuerId": 4,
|
||
|
"issuerName": "./src/jsencrypt.js",
|
||
|
"profile": {
|
||
|
"factory": 4,
|
||
|
"building": 26,
|
||
|
"dependencies": 18
|
||
|
},
|
||
|
"failed": false,
|
||
|
"errors": 0,
|
||
|
"warnings": 0,
|
||
|
"reasons": [
|
||
|
{
|
||
|
"moduleId": 4,
|
||
|
"moduleIdentifier": "/home/corax/source/jsencrypt/src/jsencrypt.js",
|
||
|
"module": "./src/jsencrypt.js",
|
||
|
"moduleName": "./src/jsencrypt.js",
|
||
|
"type": "harmony import",
|
||
|
"userRequest": "../lib/jsrsasign/asn1-1.0",
|
||
|
"loc": "6:0-47"
|
||
|
}
|
||
|
],
|
||
|
"usedExports": [
|
||
|
"KJUR"
|
||
|
],
|
||
|
"providedExports": [
|
||
|
"JSX",
|
||
|
"KJUR"
|
||
|
],
|
||
|
"optimizationBailout": [],
|
||
|
"depth": 2,
|
||
|
"source": "/*! asn1-1.0.2.js (c) 2013 Kenji Urushima | kjur.github.com/jsrsasign/license\n */\n\nimport {BigInteger} from \"../jsbn/jsbn\";\nexport const JSX = {};\nJSX.env = JSX.env || {};\n\nconst L = JSX, OP = Object.prototype, FUNCTION_TOSTRING = '[object Function]',ADD = [\"toString\", \"valueOf\"];\n\nJSX.env.parseUA = function(agent) {\n\n var numberify = function(s) {\n var c = 0;\n return parseFloat(s.replace(/\\./g, function() {\n return (c++ == 1) ? '' : '.';\n }));\n },\n\n nav = navigator,\n o = {\n ie: 0,\n opera: 0,\n gecko: 0,\n webkit: 0,\n chrome: 0,\n mobile: null,\n air: 0,\n ipad: 0,\n iphone: 0,\n ipod: 0,\n ios: null,\n android: 0,\n webos: 0,\n caja: nav && nav.cajaVersion,\n secure: false,\n os: null\n\n },\n\n ua = agent || (navigator && navigator.userAgent),\n loc = window && window.location,\n href = loc && loc.href,\n m;\n\n o.secure = href && (href.toLowerCase().indexOf(\"https\") === 0);\n\n if (ua) {\n\n if ((/windows|win32/i).test(ua)) {\n o.os = 'windows';\n } else if ((/macintosh/i).test(ua)) {\n o.os = 'macintosh';\n } else if ((/rhino/i).test(ua)) {\n o.os = 'rhino';\n }\n if ((/KHTML/).test(ua)) {\n o.webkit = 1;\n }\n m = ua.match(/AppleWebKit\\/([^\\s]*)/);\n if (m && m[1]) {\n o.webkit = numberify(m[1]);\n if (/ Mobile\\//.test(ua)) {\n o.mobile = 'Apple'; // iPhone or iPod Touch\n m = ua.match(/OS ([^\\s]*)/);\n if (m && m[1]) {\n m = numberify(m[1].replace('_', '.'));\n }\n o.ios = m;\n o.ipad = o.ipod = o.iphone = 0;\n m = ua.match(/iPad|iPod|iPhone/);\n if (m && m[0]) {\n o[m[0].toLowerCase()] = o.ios;\n }\n } else {\n m = ua.match(/NokiaN[^\\/]*|Android \\d\\.\\d|webOS\\/\\d\\.\\d/);\n if (m) {\n o.mobile = m[0];\n }\n if (/webOS/.test(ua)) {\n o.mobile = 'WebOS';\n m = ua.match(/webOS\\/([^\\s]*);/);\n if (m && m[1]) {\n o.webos = numberify(m[1]);\n }\n }\n if (/ Android/.test(ua)) {\n o.mobile = 'Android';\n m = ua.match(/Android ([^\\s]*);/);\n if (m && m[1]) {\n o.android = numberify(m[1]);\n }\n }\n }\n m = ua.match(/Chrome\\/([^\\s]*)/);\n if (m && m[1]) {\n o.chrome = numberify(m[1]); // Chrome\n } else {\n m = ua.match(/AdobeAIR\\/([^\\s]*)/);\n if (m) {\n o.air = m[0]; // Adobe AIR 1.0 or better\n }\n }\n }\n if (!o.webkit) {\n m = ua.match(/Opera[\\s\\/]([^\\s]*)/);\n if (m && m[1]) {\n o.opera = numberify(m[1]);\n m = ua.match(/Version\\/([^\\s]*)/);\n if (m && m[1]) {\n o.opera = numberify(m[1]); // opera 10+\n }\n m = ua.match(/Opera Mini[^;]*/);\n if (m) {\n o.mobile = m[0]; // ex: Opera Mini/2.0.4509/1316\n }\n } else { // not opera or webkit\n m = ua.match(/MSIE\\s([^;]*)/);\n if (m && m[1]) {\n o.ie = numberify(m[1]);\n } else { // not opera, webkit, or ie\n m = ua.match(/Gecko\\/([^\\s]*)/);\n if (m) {\n o.gecko = 1; // Gecko detected, look for revision\n m = ua.match(/rv:([^\\s\\)]*)/);\n
|
||
|
}
|
||
|
],
|
||
|
"filteredModules": 0,
|
||
|
"children": []
|
||
|
}
|