pixel-react 1.14.87 → 1.14.89
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -75
- package/lib/_virtual/index10.js +2 -2
- package/lib/_virtual/index11.js +2 -2
- package/lib/_virtual/index12.js +2 -2
- package/lib/_virtual/index9.js +2 -2
- package/lib/assets/icons/dataset_list.svg.js +1 -1
- package/lib/assets/icons/dataset_list.svg.js.map +1 -1
- package/lib/assets/icons/spinner.svg.js +1 -1
- package/lib/assets/icons/spinner.svg.js.map +1 -1
- package/lib/components/Chip/Chip.js +1 -1
- package/lib/components/Chip/Chip.js.map +1 -1
- package/lib/components/NLPInput/components/NlpDropDown/NlpDropdown.js +9 -0
- package/lib/components/NLPInput/components/NlpDropDown/NlpDropdown.js.map +1 -1
- package/lib/components/Select/Select.js +3 -2
- package/lib/components/Select/Select.js.map +1 -1
- package/lib/index.cjs +1362 -6766
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/node_modules/js-beautify/js/src/css/beautifier.js +1 -1
- package/lib/node_modules/js-beautify/js/src/css/index.js +1 -1
- package/lib/node_modules/js-beautify/js/src/css/options.js +1 -1
- package/lib/node_modules/js-beautify/js/src/html/beautifier.js +1 -1
- package/lib/node_modules/js-beautify/js/src/html/index.js +1 -1
- package/lib/node_modules/js-beautify/js/src/html/options.js +1 -1
- package/lib/node_modules/js-beautify/js/src/html/tokenizer.js +1 -1
- package/lib/node_modules/js-beautify/js/src/javascript/index.js +1 -1
- package/lib/node_modules/js-beautify/js/src/javascript/tokenizer.js +1 -1
- package/lib/node_modules/libphonenumber-js/es6/AsYouType.js +6 -8
- package/lib/node_modules/libphonenumber-js/es6/AsYouType.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/es6/AsYouTypeFormatter.complete.js +4 -4
- package/lib/node_modules/libphonenumber-js/es6/AsYouTypeFormatter.complete.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/es6/AsYouTypeFormatter.js +4 -4
- package/lib/node_modules/libphonenumber-js/es6/AsYouTypeFormatter.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/es6/AsYouTypeParser.js +41 -28
- package/lib/node_modules/libphonenumber-js/es6/AsYouTypeParser.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/es6/AsYouTypeState.js +21 -17
- package/lib/node_modules/libphonenumber-js/es6/AsYouTypeState.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/es6/PhoneNumber.js +1 -1
- package/lib/node_modules/libphonenumber-js/es6/PhoneNumber.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/es6/format.js +50 -91
- package/lib/node_modules/libphonenumber-js/es6/format.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js +39 -6
- package/lib/node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js +13 -10
- package/lib/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js +10 -8
- package/lib/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js +15 -5
- package/lib/node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js +2 -2
- package/lib/node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js +30 -8
- package/lib/node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js +4 -4
- package/lib/node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/es6/isPossible.js +4 -4
- package/lib/node_modules/libphonenumber-js/es6/isPossible.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/es6/metadata.js +1 -1
- package/lib/node_modules/libphonenumber-js/es6/metadata.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/es6/parse.js +9 -7
- package/lib/node_modules/libphonenumber-js/es6/parse.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js +7 -7
- package/lib/node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js.map +1 -1
- package/lib/node_modules/libphonenumber-js/metadata.min.json.js +11 -11
- package/lib/node_modules/libphonenumber-js/metadata.min.json.js.map +1 -1
- package/lib/node_modules/prop-types/index.js +1 -1
- package/lib/node_modules/react-day-picker/dist/esm/DayPicker.js +33 -21
- package/lib/node_modules/react-day-picker/dist/esm/DayPicker.js.map +1 -1
- package/lib/node_modules/react-day-picker/dist/esm/classes/DateLib.js +41 -0
- package/lib/node_modules/react-day-picker/dist/esm/classes/DateLib.js.map +1 -1
- package/lib/node_modules/react-day-picker/dist/esm/formatters/formatCaption.js +3 -2
- package/lib/node_modules/react-day-picker/dist/esm/formatters/formatCaption.js.map +1 -1
- package/lib/node_modules/react-day-picker/dist/esm/labels/labelGrid.js +3 -2
- package/lib/node_modules/react-day-picker/dist/esm/labels/labelGrid.js.map +1 -1
- package/lib/node_modules/react-hook-form/dist/index.esm.js +60 -38
- package/lib/node_modules/react-hook-form/dist/index.esm.js.map +1 -1
- package/lib/node_modules/react-virtuoso/dist/index.js +397 -397
- package/lib/node_modules/react-virtuoso/dist/index.js.map +1 -1
- package/lib/node_modules/ua-parser-js/src/ua-parser.js +85 -71
- package/lib/node_modules/ua-parser-js/src/ua-parser.js.map +1 -1
- package/lib/styles.css +1 -1
- package/lib/styles.css.map +1 -1
- package/lib/utils/getEncryptedData/getEncryptedData.d.ts +1 -1
- package/lib/utils/getEncryptedData/getEncryptedData.js +17 -8
- package/lib/utils/getEncryptedData/getEncryptedData.js.map +1 -1
- package/package.json +106 -107
- package/lib/node_modules/jsencrypt/lib/JSEncrypt.js +0 -246
- package/lib/node_modules/jsencrypt/lib/JSEncrypt.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/JSEncryptRSAKey.js +0 -325
- package/lib/node_modules/jsencrypt/lib/JSEncryptRSAKey.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/index.js +0 -6
- package/lib/node_modules/jsencrypt/lib/index.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/asn1js/asn1.js +0 -570
- package/lib/node_modules/jsencrypt/lib/lib/asn1js/asn1.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/asn1js/base64.js +0 -88
- package/lib/node_modules/jsencrypt/lib/lib/asn1js/base64.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/asn1js/hex.js +0 -66
- package/lib/node_modules/jsencrypt/lib/lib/asn1js/hex.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/asn1js/int10.js +0 -87
- package/lib/node_modules/jsencrypt/lib/lib/asn1js/int10.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/base64.js +0 -65
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/base64.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/jsbn.js +0 -1700
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/jsbn.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/prng4.js +0 -48
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/prng4.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/rng.js +0 -77
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/rng.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/rsa.js +0 -415
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/rsa.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/sha256.js +0 -307
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/sha256.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/util.js +0 -61
- package/lib/node_modules/jsencrypt/lib/lib/jsbn/util.js.map +0 -1
- package/lib/node_modules/jsencrypt/lib/lib/jsrsasign/asn1-1.0.js +0 -1559
- package/lib/node_modules/jsencrypt/lib/lib/jsrsasign/asn1-1.0.js.map +0 -1
@@ -1,415 +0,0 @@
|
|
1
|
-
import { BigInteger, parseBigInt, nbi } from './jsbn.js';
|
2
|
-
import { SecureRandom } from './rng.js';
|
3
|
-
import { rstr_sha256 } from './sha256.js';
|
4
|
-
|
5
|
-
// Depends on jsbn.js and rng.js
|
6
|
-
// Version 1.1: support utf-8 encoding in pkcs1pad2
|
7
|
-
// convert a (hex) string to a bignum object
|
8
|
-
// function linebrk(s,n) {
|
9
|
-
// var ret = "";
|
10
|
-
// var i = 0;
|
11
|
-
// while(i + n < s.length) {
|
12
|
-
// ret += s.substring(i,i+n) + "\n";
|
13
|
-
// i += n;
|
14
|
-
// }
|
15
|
-
// return ret + s.substring(i,s.length);
|
16
|
-
// }
|
17
|
-
// function byte2Hex(b) {
|
18
|
-
// if(b < 0x10)
|
19
|
-
// return "0" + b.toString(16);
|
20
|
-
// else
|
21
|
-
// return b.toString(16);
|
22
|
-
// }
|
23
|
-
function pkcs1pad1(s, n) {
|
24
|
-
if (n < s.length + 22) {
|
25
|
-
console.error("Message too long for RSA");
|
26
|
-
return null;
|
27
|
-
}
|
28
|
-
var len = n - s.length - 6;
|
29
|
-
var filler = "";
|
30
|
-
for (var f = 0; f < len; f += 2) {
|
31
|
-
filler += "ff";
|
32
|
-
}
|
33
|
-
var m = "0001" + filler + "00" + s;
|
34
|
-
return parseBigInt(m, 16);
|
35
|
-
}
|
36
|
-
// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint
|
37
|
-
function pkcs1pad2(s, n) {
|
38
|
-
if (n < s.length + 11) {
|
39
|
-
// TODO: fix for utf-8
|
40
|
-
console.error("Message too long for RSA");
|
41
|
-
return null;
|
42
|
-
}
|
43
|
-
var ba = [];
|
44
|
-
var i = s.length - 1;
|
45
|
-
while (i >= 0 && n > 0) {
|
46
|
-
var c = s.charCodeAt(i--);
|
47
|
-
if (c < 128) {
|
48
|
-
// encode using utf-8
|
49
|
-
ba[--n] = c;
|
50
|
-
} else if (c > 127 && c < 2048) {
|
51
|
-
ba[--n] = c & 63 | 128;
|
52
|
-
ba[--n] = c >> 6 | 192;
|
53
|
-
} else {
|
54
|
-
ba[--n] = c & 63 | 128;
|
55
|
-
ba[--n] = c >> 6 & 63 | 128;
|
56
|
-
ba[--n] = c >> 12 | 224;
|
57
|
-
}
|
58
|
-
}
|
59
|
-
ba[--n] = 0;
|
60
|
-
var rng = new SecureRandom();
|
61
|
-
var x = [];
|
62
|
-
while (n > 2) {
|
63
|
-
// random non-zero pad
|
64
|
-
x[0] = 0;
|
65
|
-
while (x[0] == 0) {
|
66
|
-
rng.nextBytes(x);
|
67
|
-
}
|
68
|
-
ba[--n] = x[0];
|
69
|
-
}
|
70
|
-
ba[--n] = 2;
|
71
|
-
ba[--n] = 0;
|
72
|
-
return new BigInteger(ba);
|
73
|
-
}
|
74
|
-
// PKCS#1 (OAEP) mask generation function, using SHA-256
|
75
|
-
function oaep_mgf1_arr(seed, len, hashFunc) {
|
76
|
-
var mask = "",
|
77
|
-
i = 0;
|
78
|
-
while (mask.length < len) {
|
79
|
-
mask += hashFunc(String.fromCharCode.apply(String, seed.concat([(i & 0xff000000) >> 24, (i & 0x00ff0000) >> 16, (i & 0x0000ff00) >> 8, i & 0x000000ff])));
|
80
|
-
i += 1;
|
81
|
-
}
|
82
|
-
return mask;
|
83
|
-
}
|
84
|
-
var SHA256_SIZE = 32;
|
85
|
-
// PKCS#1 (OAEP) pad input string s to n bytes, and return a BigInteger
|
86
|
-
function oaep_pad(s, n) {
|
87
|
-
var hashLen = SHA256_SIZE;
|
88
|
-
var hashFunc = rstr_sha256;
|
89
|
-
if (s.length + 2 * hashLen + 2 > n) {
|
90
|
-
throw "Message too long for RSA";
|
91
|
-
}
|
92
|
-
var PS = "",
|
93
|
-
i;
|
94
|
-
for (i = 0; i < n - s.length - 2 * hashLen - 2; i += 1) {
|
95
|
-
PS += "\x00";
|
96
|
-
}
|
97
|
-
var DB = hashFunc("") + PS + "\x01" + s,
|
98
|
-
seed = new Array(hashLen);
|
99
|
-
new SecureRandom().nextBytes(seed);
|
100
|
-
var dbMask = oaep_mgf1_arr(seed, DB.length, hashFunc),
|
101
|
-
maskedDB = [];
|
102
|
-
for (i = 0; i < DB.length; i += 1) {
|
103
|
-
maskedDB[i] = DB.charCodeAt(i) ^ dbMask.charCodeAt(i);
|
104
|
-
}
|
105
|
-
var seedMask = oaep_mgf1_arr(maskedDB, seed.length, hashFunc),
|
106
|
-
maskedSeed = [0];
|
107
|
-
for (i = 0; i < seed.length; i += 1) {
|
108
|
-
maskedSeed[i + 1] = seed[i] ^ seedMask.charCodeAt(i);
|
109
|
-
}
|
110
|
-
return new BigInteger(maskedSeed.concat(maskedDB));
|
111
|
-
}
|
112
|
-
// "empty" RSA key constructor
|
113
|
-
var RSAKey = /** @class */function () {
|
114
|
-
function RSAKey() {
|
115
|
-
this.n = null;
|
116
|
-
this.e = 0;
|
117
|
-
this.d = null;
|
118
|
-
this.p = null;
|
119
|
-
this.q = null;
|
120
|
-
this.dmp1 = null;
|
121
|
-
this.dmq1 = null;
|
122
|
-
this.coeff = null;
|
123
|
-
}
|
124
|
-
//#region PROTECTED
|
125
|
-
// protected
|
126
|
-
// RSAKey.prototype.doPublic = RSADoPublic;
|
127
|
-
// Perform raw public operation on "x": return x^e (mod n)
|
128
|
-
RSAKey.prototype.doPublic = function (x) {
|
129
|
-
return x.modPowInt(this.e, this.n);
|
130
|
-
};
|
131
|
-
// RSAKey.prototype.doPrivate = RSADoPrivate;
|
132
|
-
// Perform raw private operation on "x": return x^d (mod n)
|
133
|
-
RSAKey.prototype.doPrivate = function (x) {
|
134
|
-
if (this.p == null || this.q == null) {
|
135
|
-
return x.modPow(this.d, this.n);
|
136
|
-
}
|
137
|
-
// TODO: re-calculate any missing CRT params
|
138
|
-
var xp = x.mod(this.p).modPow(this.dmp1, this.p);
|
139
|
-
var xq = x.mod(this.q).modPow(this.dmq1, this.q);
|
140
|
-
while (xp.compareTo(xq) < 0) {
|
141
|
-
xp = xp.add(this.p);
|
142
|
-
}
|
143
|
-
return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);
|
144
|
-
};
|
145
|
-
//#endregion PROTECTED
|
146
|
-
//#region PUBLIC
|
147
|
-
// RSAKey.prototype.setPublic = RSASetPublic;
|
148
|
-
// Set the public key fields N and e from hex strings
|
149
|
-
RSAKey.prototype.setPublic = function (N, E) {
|
150
|
-
if (N != null && E != null && N.length > 0 && E.length > 0) {
|
151
|
-
this.n = parseBigInt(N, 16);
|
152
|
-
this.e = parseInt(E, 16);
|
153
|
-
} else {
|
154
|
-
console.error("Invalid RSA public key");
|
155
|
-
}
|
156
|
-
};
|
157
|
-
// RSAKey.prototype.encrypt = RSAEncrypt;
|
158
|
-
// Return the PKCS#1 RSA encryption of "text" as an even-length hex string
|
159
|
-
RSAKey.prototype.encrypt = function (text, paddingFunction) {
|
160
|
-
if (typeof paddingFunction === 'undefined') {
|
161
|
-
paddingFunction = pkcs1pad2;
|
162
|
-
}
|
163
|
-
var maxLength = this.n.bitLength() + 7 >> 3;
|
164
|
-
var m = paddingFunction(text, maxLength);
|
165
|
-
if (m == null) {
|
166
|
-
return null;
|
167
|
-
}
|
168
|
-
var c = this.doPublic(m);
|
169
|
-
if (c == null) {
|
170
|
-
return null;
|
171
|
-
}
|
172
|
-
var h = c.toString(16);
|
173
|
-
var length = h.length;
|
174
|
-
// fix zero before result
|
175
|
-
for (var i = 0; i < maxLength * 2 - length; i++) {
|
176
|
-
h = "0" + h;
|
177
|
-
}
|
178
|
-
return h;
|
179
|
-
};
|
180
|
-
// RSAKey.prototype.setPrivate = RSASetPrivate;
|
181
|
-
// Set the private key fields N, e, and d from hex strings
|
182
|
-
RSAKey.prototype.setPrivate = function (N, E, D) {
|
183
|
-
if (N != null && E != null && N.length > 0 && E.length > 0) {
|
184
|
-
this.n = parseBigInt(N, 16);
|
185
|
-
this.e = parseInt(E, 16);
|
186
|
-
this.d = parseBigInt(D, 16);
|
187
|
-
} else {
|
188
|
-
console.error("Invalid RSA private key");
|
189
|
-
}
|
190
|
-
};
|
191
|
-
// RSAKey.prototype.setPrivateEx = RSASetPrivateEx;
|
192
|
-
// Set the private key fields N, e, d and CRT params from hex strings
|
193
|
-
RSAKey.prototype.setPrivateEx = function (N, E, D, P, Q, DP, DQ, C) {
|
194
|
-
if (N != null && E != null && N.length > 0 && E.length > 0) {
|
195
|
-
this.n = parseBigInt(N, 16);
|
196
|
-
this.e = parseInt(E, 16);
|
197
|
-
this.d = parseBigInt(D, 16);
|
198
|
-
this.p = parseBigInt(P, 16);
|
199
|
-
this.q = parseBigInt(Q, 16);
|
200
|
-
this.dmp1 = parseBigInt(DP, 16);
|
201
|
-
this.dmq1 = parseBigInt(DQ, 16);
|
202
|
-
this.coeff = parseBigInt(C, 16);
|
203
|
-
} else {
|
204
|
-
console.error("Invalid RSA private key");
|
205
|
-
}
|
206
|
-
};
|
207
|
-
// RSAKey.prototype.generate = RSAGenerate;
|
208
|
-
// Generate a new random private key B bits long, using public expt E
|
209
|
-
RSAKey.prototype.generate = function (B, E) {
|
210
|
-
var rng = new SecureRandom();
|
211
|
-
var qs = B >> 1;
|
212
|
-
this.e = parseInt(E, 16);
|
213
|
-
var ee = new BigInteger(E, 16);
|
214
|
-
for (;;) {
|
215
|
-
for (;;) {
|
216
|
-
this.p = new BigInteger(B - qs, 1, rng);
|
217
|
-
if (this.p.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) {
|
218
|
-
break;
|
219
|
-
}
|
220
|
-
}
|
221
|
-
for (;;) {
|
222
|
-
this.q = new BigInteger(qs, 1, rng);
|
223
|
-
if (this.q.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) {
|
224
|
-
break;
|
225
|
-
}
|
226
|
-
}
|
227
|
-
if (this.p.compareTo(this.q) <= 0) {
|
228
|
-
var t = this.p;
|
229
|
-
this.p = this.q;
|
230
|
-
this.q = t;
|
231
|
-
}
|
232
|
-
var p1 = this.p.subtract(BigInteger.ONE);
|
233
|
-
var q1 = this.q.subtract(BigInteger.ONE);
|
234
|
-
var phi = p1.multiply(q1);
|
235
|
-
if (phi.gcd(ee).compareTo(BigInteger.ONE) == 0) {
|
236
|
-
this.n = this.p.multiply(this.q);
|
237
|
-
this.d = ee.modInverse(phi);
|
238
|
-
this.dmp1 = this.d.mod(p1);
|
239
|
-
this.dmq1 = this.d.mod(q1);
|
240
|
-
this.coeff = this.q.modInverse(this.p);
|
241
|
-
break;
|
242
|
-
}
|
243
|
-
}
|
244
|
-
};
|
245
|
-
// RSAKey.prototype.decrypt = RSADecrypt;
|
246
|
-
// Return the PKCS#1 RSA decryption of "ctext".
|
247
|
-
// "ctext" is an even-length hex string and the output is a plain string.
|
248
|
-
RSAKey.prototype.decrypt = function (ctext) {
|
249
|
-
var c = parseBigInt(ctext, 16);
|
250
|
-
var m = this.doPrivate(c);
|
251
|
-
if (m == null) {
|
252
|
-
return null;
|
253
|
-
}
|
254
|
-
return pkcs1unpad2(m, this.n.bitLength() + 7 >> 3);
|
255
|
-
};
|
256
|
-
// Generate a new random private key B bits long, using public expt E
|
257
|
-
RSAKey.prototype.generateAsync = function (B, E, callback) {
|
258
|
-
var rng = new SecureRandom();
|
259
|
-
var qs = B >> 1;
|
260
|
-
this.e = parseInt(E, 16);
|
261
|
-
var ee = new BigInteger(E, 16);
|
262
|
-
var rsa = this;
|
263
|
-
// These functions have non-descript names because they were originally for(;;) loops.
|
264
|
-
// I don't know about cryptography to give them better names than loop1-4.
|
265
|
-
var loop1 = function () {
|
266
|
-
var loop4 = function () {
|
267
|
-
if (rsa.p.compareTo(rsa.q) <= 0) {
|
268
|
-
var t = rsa.p;
|
269
|
-
rsa.p = rsa.q;
|
270
|
-
rsa.q = t;
|
271
|
-
}
|
272
|
-
var p1 = rsa.p.subtract(BigInteger.ONE);
|
273
|
-
var q1 = rsa.q.subtract(BigInteger.ONE);
|
274
|
-
var phi = p1.multiply(q1);
|
275
|
-
if (phi.gcd(ee).compareTo(BigInteger.ONE) == 0) {
|
276
|
-
rsa.n = rsa.p.multiply(rsa.q);
|
277
|
-
rsa.d = ee.modInverse(phi);
|
278
|
-
rsa.dmp1 = rsa.d.mod(p1);
|
279
|
-
rsa.dmq1 = rsa.d.mod(q1);
|
280
|
-
rsa.coeff = rsa.q.modInverse(rsa.p);
|
281
|
-
setTimeout(function () {
|
282
|
-
callback();
|
283
|
-
}, 0); // escape
|
284
|
-
} else {
|
285
|
-
setTimeout(loop1, 0);
|
286
|
-
}
|
287
|
-
};
|
288
|
-
var loop3 = function () {
|
289
|
-
rsa.q = nbi();
|
290
|
-
rsa.q.fromNumberAsync(qs, 1, rng, function () {
|
291
|
-
rsa.q.subtract(BigInteger.ONE).gcda(ee, function (r) {
|
292
|
-
if (r.compareTo(BigInteger.ONE) == 0 && rsa.q.isProbablePrime(10)) {
|
293
|
-
setTimeout(loop4, 0);
|
294
|
-
} else {
|
295
|
-
setTimeout(loop3, 0);
|
296
|
-
}
|
297
|
-
});
|
298
|
-
});
|
299
|
-
};
|
300
|
-
var loop2 = function () {
|
301
|
-
rsa.p = nbi();
|
302
|
-
rsa.p.fromNumberAsync(B - qs, 1, rng, function () {
|
303
|
-
rsa.p.subtract(BigInteger.ONE).gcda(ee, function (r) {
|
304
|
-
if (r.compareTo(BigInteger.ONE) == 0 && rsa.p.isProbablePrime(10)) {
|
305
|
-
setTimeout(loop3, 0);
|
306
|
-
} else {
|
307
|
-
setTimeout(loop2, 0);
|
308
|
-
}
|
309
|
-
});
|
310
|
-
});
|
311
|
-
};
|
312
|
-
setTimeout(loop2, 0);
|
313
|
-
};
|
314
|
-
setTimeout(loop1, 0);
|
315
|
-
};
|
316
|
-
RSAKey.prototype.sign = function (text, digestMethod, digestName) {
|
317
|
-
var header = getDigestHeader(digestName);
|
318
|
-
var digest = header + digestMethod(text).toString();
|
319
|
-
var maxLength = this.n.bitLength() / 4;
|
320
|
-
var m = pkcs1pad1(digest, maxLength);
|
321
|
-
if (m == null) {
|
322
|
-
return null;
|
323
|
-
}
|
324
|
-
var c = this.doPrivate(m);
|
325
|
-
if (c == null) {
|
326
|
-
return null;
|
327
|
-
}
|
328
|
-
var h = c.toString(16);
|
329
|
-
var length = h.length;
|
330
|
-
// fix zero before result
|
331
|
-
for (var i = 0; i < maxLength - length; i++) {
|
332
|
-
h = "0" + h;
|
333
|
-
}
|
334
|
-
return h;
|
335
|
-
};
|
336
|
-
RSAKey.prototype.verify = function (text, signature, digestMethod) {
|
337
|
-
var c = parseBigInt(signature, 16);
|
338
|
-
var m = this.doPublic(c);
|
339
|
-
if (m == null) {
|
340
|
-
return null;
|
341
|
-
}
|
342
|
-
var unpadded = m.toString(16).replace(/^1f+00/, "");
|
343
|
-
var digest = removeDigestHeader(unpadded);
|
344
|
-
return digest == digestMethod(text).toString();
|
345
|
-
};
|
346
|
-
return RSAKey;
|
347
|
-
}();
|
348
|
-
// Undo PKCS#1 (type 2, random) padding and, if valid, return the plaintext
|
349
|
-
function pkcs1unpad2(d, n) {
|
350
|
-
var b = d.toByteArray();
|
351
|
-
var i = 0;
|
352
|
-
while (i < b.length && b[i] == 0) {
|
353
|
-
++i;
|
354
|
-
}
|
355
|
-
if (b.length - i != n - 1 || b[i] != 2) {
|
356
|
-
return null;
|
357
|
-
}
|
358
|
-
++i;
|
359
|
-
while (b[i] != 0) {
|
360
|
-
if (++i >= b.length) {
|
361
|
-
return null;
|
362
|
-
}
|
363
|
-
}
|
364
|
-
var ret = "";
|
365
|
-
while (++i < b.length) {
|
366
|
-
var c = b[i] & 255;
|
367
|
-
if (c < 128) {
|
368
|
-
// utf-8 decode
|
369
|
-
ret += String.fromCharCode(c);
|
370
|
-
} else if (c > 191 && c < 224) {
|
371
|
-
ret += String.fromCharCode((c & 31) << 6 | b[i + 1] & 63);
|
372
|
-
++i;
|
373
|
-
} else {
|
374
|
-
ret += String.fromCharCode((c & 15) << 12 | (b[i + 1] & 63) << 6 | b[i + 2] & 63);
|
375
|
-
i += 2;
|
376
|
-
}
|
377
|
-
}
|
378
|
-
return ret;
|
379
|
-
}
|
380
|
-
// https://tools.ietf.org/html/rfc3447#page-43
|
381
|
-
var DIGEST_HEADERS = {
|
382
|
-
md2: "3020300c06082a864886f70d020205000410",
|
383
|
-
md5: "3020300c06082a864886f70d020505000410",
|
384
|
-
sha1: "3021300906052b0e03021a05000414",
|
385
|
-
sha224: "302d300d06096086480165030402040500041c",
|
386
|
-
sha256: "3031300d060960864801650304020105000420",
|
387
|
-
sha384: "3041300d060960864801650304020205000430",
|
388
|
-
sha512: "3051300d060960864801650304020305000440",
|
389
|
-
ripemd160: "3021300906052b2403020105000414"
|
390
|
-
};
|
391
|
-
function getDigestHeader(name) {
|
392
|
-
return DIGEST_HEADERS[name] || "";
|
393
|
-
}
|
394
|
-
function removeDigestHeader(str) {
|
395
|
-
for (var name_1 in DIGEST_HEADERS) {
|
396
|
-
if (DIGEST_HEADERS.hasOwnProperty(name_1)) {
|
397
|
-
var header = DIGEST_HEADERS[name_1];
|
398
|
-
var len = header.length;
|
399
|
-
if (str.substring(0, len) == header) {
|
400
|
-
return str.substring(len);
|
401
|
-
}
|
402
|
-
}
|
403
|
-
}
|
404
|
-
return str;
|
405
|
-
}
|
406
|
-
// Return the PKCS#1 RSA encryption of "text" as a Base64-encoded string
|
407
|
-
// function RSAEncryptB64(text) {
|
408
|
-
// var h = this.encrypt(text);
|
409
|
-
// if(h) return hex2b64(h); else return null;
|
410
|
-
// }
|
411
|
-
// public
|
412
|
-
// RSAKey.prototype.encrypt_b64 = RSAEncryptB64;
|
413
|
-
|
414
|
-
export { RSAKey, oaep_pad };
|
415
|
-
//# sourceMappingURL=rsa.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"rsa.js","sources":["../../../../../../node_modules/jsencrypt/lib/lib/jsbn/rsa.js"],"sourcesContent":["// 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, nbi, parseBigInt } from \"./jsbn\";\nimport { SecureRandom } from \"./rng\";\nimport { rstr_sha256 } from './sha256';\n// function 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// }\n// function byte2Hex(b) {\n// if(b < 0x10)\n// return \"0\" + b.toString(16);\n// else\n// return b.toString(16);\n// }\nfunction pkcs1pad1(s, n) {\n if (n < s.length + 22) {\n console.error(\"Message too long for RSA\");\n return null;\n }\n var len = n - s.length - 6;\n var filler = \"\";\n for (var f = 0; f < len; f += 2) {\n filler += \"ff\";\n }\n var m = \"0001\" + filler + \"00\" + s;\n return parseBigInt(m, 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) { // TODO: fix for utf-8\n console.error(\"Message too long for RSA\");\n return null;\n }\n var ba = [];\n var i = s.length - 1;\n while (i >= 0 && n > 0) {\n var c = s.charCodeAt(i--);\n if (c < 128) { // encode using utf-8\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 = [];\n while (n > 2) { // random non-zero pad\n x[0] = 0;\n while (x[0] == 0) {\n rng.nextBytes(x);\n }\n ba[--n] = x[0];\n }\n ba[--n] = 2;\n ba[--n] = 0;\n return new BigInteger(ba);\n}\n// PKCS#1 (OAEP) mask generation function, using SHA-256\nfunction oaep_mgf1_arr(seed, len, hashFunc) {\n var mask = \"\", i = 0;\n while (mask.length < len) {\n mask += hashFunc(String.fromCharCode.apply(String, seed.concat([\n (i & 0xff000000) >> 24,\n (i & 0x00ff0000) >> 16,\n (i & 0x0000ff00) >> 8,\n i & 0x000000ff,\n ])));\n i += 1;\n }\n return mask;\n}\nvar SHA256_SIZE = 32;\n// PKCS#1 (OAEP) pad input string s to n bytes, and return a BigInteger\nexport function oaep_pad(s, n) {\n var hashLen = SHA256_SIZE;\n var hashFunc = rstr_sha256;\n if (s.length + 2 * hashLen + 2 > n) {\n throw \"Message too long for RSA\";\n }\n var PS = \"\", i;\n for (i = 0; i < n - s.length - 2 * hashLen - 2; i += 1) {\n PS += \"\\x00\";\n }\n var DB = hashFunc(\"\") + PS + \"\\x01\" + s, seed = new Array(hashLen);\n new SecureRandom().nextBytes(seed);\n var dbMask = oaep_mgf1_arr(seed, DB.length, hashFunc), maskedDB = [];\n for (i = 0; i < DB.length; i += 1) {\n maskedDB[i] = DB.charCodeAt(i) ^ dbMask.charCodeAt(i);\n }\n var seedMask = oaep_mgf1_arr(maskedDB, seed.length, hashFunc), maskedSeed = [0];\n for (i = 0; i < seed.length; i += 1) {\n maskedSeed[i + 1] = seed[i] ^ seedMask.charCodeAt(i);\n }\n return new BigInteger(maskedSeed.concat(maskedDB));\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 }\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 }\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 };\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, paddingFunction) {\n if (typeof paddingFunction === 'undefined') {\n paddingFunction = pkcs1pad2;\n }\n var maxLength = (this.n.bitLength() + 7) >> 3;\n var m = paddingFunction(text, maxLength);\n if (m == null) {\n return null;\n }\n var c = this.doPublic(m);\n if (c == null) {\n return null;\n }\n var h = c.toString(16);\n var length = h.length;\n // fix zero before result\n for (var i = 0; i < maxLength * 2 - length; i++) {\n h = \"0\" + h;\n }\n return 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 else {\n console.error(\"Invalid RSA private key\");\n }\n };\n // RSAKey.prototype.setPrivateEx = RSASetPrivateEx;\n // Set the private key fields N, e, d and CRT params from hex strings\n RSAKey.prototype.setPrivateEx = function (N, E, D, P, Q, DP, DQ, C) {\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 this.p = parseBigInt(P, 16);\n this.q = parseBigInt(Q, 16);\n this.dmp1 = parseBigInt(DP, 16);\n this.dmq1 = parseBigInt(DQ, 16);\n this.coeff = parseBigInt(C, 16);\n }\n else {\n console.error(\"Invalid RSA private key\");\n }\n };\n // RSAKey.prototype.generate = RSAGenerate;\n // Generate a new random private key B bits long, using public expt E\n RSAKey.prototype.generate = function (B, E) {\n var rng = new SecureRandom();\n var qs = B >> 1;\n this.e = parseInt(E, 16);\n var ee = new BigInteger(E, 16);\n for (;;) {\n for (;;) {\n this.p = new BigInteger(B - qs, 1, rng);\n if (this.p.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) {\n break;\n }\n }\n for (;;) {\n this.q = new BigInteger(qs, 1, rng);\n if (this.q.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) {\n break;\n }\n }\n if (this.p.compareTo(this.q) <= 0) {\n var t = this.p;\n this.p = this.q;\n this.q = t;\n }\n var p1 = this.p.subtract(BigInteger.ONE);\n var q1 = this.q.subtract(BigInteger.ONE);\n var phi = p1.multiply(q1);\n if (phi.gcd(ee).compareTo(BigInteger.ONE) == 0) {\n this.n = this.p.multiply(this.q);\n this.d = ee.modInverse(phi);\n this.dmp1 = this.d.mod(p1);\n this.dmq1 = this.d.mod(q1);\n this.coeff = this.q.modInverse(this.p);\n break;\n }\n }\n };\n // RSAKey.prototype.decrypt = RSADecrypt;\n // Return the PKCS#1 RSA decryption of \"ctext\".\n // \"ctext\" is an even-length hex string and the output is a plain string.\n RSAKey.prototype.decrypt = function (ctext) {\n var c = parseBigInt(ctext, 16);\n var m = this.doPrivate(c);\n if (m == null) {\n return null;\n }\n return pkcs1unpad2(m, (this.n.bitLength() + 7) >> 3);\n };\n // Generate a new random private key B bits long, using public expt E\n RSAKey.prototype.generateAsync = function (B, E, callback) {\n var rng = new SecureRandom();\n var qs = B >> 1;\n this.e = parseInt(E, 16);\n var ee = new BigInteger(E, 16);\n var rsa = this;\n // These functions have non-descript names because they were originally for(;;) loops.\n // I don't know about cryptography to give them better names than loop1-4.\n var loop1 = function () {\n var loop4 = function () {\n if (rsa.p.compareTo(rsa.q) <= 0) {\n var t = rsa.p;\n rsa.p = rsa.q;\n rsa.q = t;\n }\n var p1 = rsa.p.subtract(BigInteger.ONE);\n var q1 = rsa.q.subtract(BigInteger.ONE);\n var phi = p1.multiply(q1);\n if (phi.gcd(ee).compareTo(BigInteger.ONE) == 0) {\n rsa.n = rsa.p.multiply(rsa.q);\n rsa.d = ee.modInverse(phi);\n rsa.dmp1 = rsa.d.mod(p1);\n rsa.dmq1 = rsa.d.mod(q1);\n rsa.coeff = rsa.q.modInverse(rsa.p);\n setTimeout(function () { callback(); }, 0); // escape\n }\n else {\n setTimeout(loop1, 0);\n }\n };\n var loop3 = function () {\n rsa.q = nbi();\n rsa.q.fromNumberAsync(qs, 1, rng, function () {\n rsa.q.subtract(BigInteger.ONE).gcda(ee, function (r) {\n if (r.compareTo(BigInteger.ONE) == 0 && rsa.q.isProbablePrime(10)) {\n setTimeout(loop4, 0);\n }\n else {\n setTimeout(loop3, 0);\n }\n });\n });\n };\n var loop2 = function () {\n rsa.p = nbi();\n rsa.p.fromNumberAsync(B - qs, 1, rng, function () {\n rsa.p.subtract(BigInteger.ONE).gcda(ee, function (r) {\n if (r.compareTo(BigInteger.ONE) == 0 && rsa.p.isProbablePrime(10)) {\n setTimeout(loop3, 0);\n }\n else {\n setTimeout(loop2, 0);\n }\n });\n });\n };\n setTimeout(loop2, 0);\n };\n setTimeout(loop1, 0);\n };\n RSAKey.prototype.sign = function (text, digestMethod, digestName) {\n var header = getDigestHeader(digestName);\n var digest = header + digestMethod(text).toString();\n var maxLength = this.n.bitLength() / 4;\n var m = pkcs1pad1(digest, maxLength);\n if (m == null) {\n return null;\n }\n var c = this.doPrivate(m);\n if (c == null) {\n return null;\n }\n var h = c.toString(16);\n var length = h.length;\n // fix zero before result\n for (var i = 0; i < maxLength - length; i++) {\n h = \"0\" + h;\n }\n return h;\n };\n RSAKey.prototype.verify = function (text, signature, digestMethod) {\n var c = parseBigInt(signature, 16);\n var m = this.doPublic(c);\n if (m == null) {\n return null;\n }\n var unpadded = m.toString(16).replace(/^1f+00/, \"\");\n var digest = removeDigestHeader(unpadded);\n return digest == digestMethod(text).toString();\n };\n return RSAKey;\n}());\nexport { RSAKey };\n// Undo PKCS#1 (type 2, random) padding and, if valid, return the plaintext\nfunction pkcs1unpad2(d, n) {\n var b = d.toByteArray();\n var i = 0;\n while (i < b.length && b[i] == 0) {\n ++i;\n }\n if (b.length - i != n - 1 || b[i] != 2) {\n return null;\n }\n ++i;\n while (b[i] != 0) {\n if (++i >= b.length) {\n return null;\n }\n }\n var ret = \"\";\n while (++i < b.length) {\n var c = b[i] & 255;\n if (c < 128) { // utf-8 decode\n ret += String.fromCharCode(c);\n }\n else if ((c > 191) && (c < 224)) {\n ret += String.fromCharCode(((c & 31) << 6) | (b[i + 1] & 63));\n ++i;\n }\n else {\n ret += String.fromCharCode(((c & 15) << 12) | ((b[i + 1] & 63) << 6) | (b[i + 2] & 63));\n i += 2;\n }\n }\n return ret;\n}\n// https://tools.ietf.org/html/rfc3447#page-43\nvar DIGEST_HEADERS = {\n md2: \"3020300c06082a864886f70d020205000410\",\n md5: \"3020300c06082a864886f70d020505000410\",\n sha1: \"3021300906052b0e03021a05000414\",\n sha224: \"302d300d06096086480165030402040500041c\",\n sha256: \"3031300d060960864801650304020105000420\",\n sha384: \"3041300d060960864801650304020205000430\",\n sha512: \"3051300d060960864801650304020305000440\",\n ripemd160: \"3021300906052b2403020105000414\"\n};\nfunction getDigestHeader(name) {\n return DIGEST_HEADERS[name] || \"\";\n}\nfunction removeDigestHeader(str) {\n for (var name_1 in DIGEST_HEADERS) {\n if (DIGEST_HEADERS.hasOwnProperty(name_1)) {\n var header = DIGEST_HEADERS[name_1];\n var len = header.length;\n if (str.substring(0, len) == header) {\n return str.substring(len);\n }\n }\n }\n return str;\n}\n// Return the PKCS#1 RSA encryption of \"text\" as a Base64-encoded string\n// function RSAEncryptB64(text) {\n// var h = this.encrypt(text);\n// if(h) return hex2b64(h); else return null;\n// }\n// public\n// RSAKey.prototype.encrypt_b64 = RSAEncryptB64;\n"],"names":["pkcs1pad1","s","n","length","console","error","len","filler","f","m","parseBigInt","pkcs1pad2","ba","i","c","charCodeAt","rng","SecureRandom","x","nextBytes","BigInteger","oaep_mgf1_arr","seed","hashFunc","mask","String","fromCharCode","apply","concat","SHA256_SIZE","oaep_pad","hashLen","rstr_sha256","PS","DB","Array","dbMask","maskedDB","seedMask","maskedSeed","RSAKey","e","d","p","q","dmp1","dmq1","coeff","prototype","doPublic","modPowInt","doPrivate","modPow","xp","mod","xq","compareTo","add","subtract","multiply","setPublic","N","E","parseInt","encrypt","text","paddingFunction","maxLength","bitLength","h","toString","setPrivate","D","setPrivateEx","P","Q","DP","DQ","C","generate","B","qs","ee","ONE","gcd","isProbablePrime","t","p1","q1","phi","modInverse","decrypt","ctext","pkcs1unpad2","generateAsync","callback","rsa","loop1","loop4","setTimeout","loop3","nbi","fromNumberAsync","gcda","r","loop2","sign","digestMethod","digestName","header","getDigestHeader","digest","verify","signature","unpadded","replace","removeDigestHeader","b","toByteArray","ret","DIGEST_HEADERS","md2","md5","sha1","sha224","sha256","sha384","sha512","ripemd160","name","str","name_1","hasOwnProperty","substring"],"mappings":"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","x_google_ignoreList":[0]}
|