node-opcua-crypto 4.16.0 → 4.17.0
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/LICENSE +1 -1
- package/README.md +1 -1
- package/dist/{chunk-XPM4YIBT.mjs → chunk-CQ5JIXZF.mjs} +39 -38
- package/dist/chunk-CQ5JIXZF.mjs.map +1 -0
- package/dist/{chunk-F5EAPW2U.mjs → chunk-EURHGMEG.mjs} +846 -660
- package/dist/chunk-EURHGMEG.mjs.map +1 -0
- package/dist/{common-CFr95Map.d.mts → common-DxHkx4Pv.d.mts} +2 -2
- package/dist/{common-CFr95Map.d.ts → common-DxHkx4Pv.d.ts} +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +919 -726
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/source/index.d.mts +2 -2
- package/dist/source/index.d.ts +2 -2
- package/dist/source/index.js +873 -681
- package/dist/source/index.js.map +1 -1
- package/dist/source/index.mjs +1 -1
- package/dist/source/index_web.d.mts +17 -17
- package/dist/source/index_web.d.ts +17 -17
- package/dist/source/index_web.js +873 -681
- package/dist/source/index_web.js.map +1 -1
- package/dist/source/index_web.mjs +1 -1
- package/dist/source_nodejs/index.d.mts +11 -11
- package/dist/source_nodejs/index.d.ts +11 -11
- package/dist/source_nodejs/index.js +298 -309
- package/dist/source_nodejs/index.js.map +1 -1
- package/dist/source_nodejs/index.mjs +2 -2
- package/package.json +5 -6
- package/dist/chunk-F5EAPW2U.mjs.map +0 -1
- package/dist/chunk-XPM4YIBT.mjs.map +0 -1
|
@@ -47,31 +47,24 @@ __export(source_nodejs_exports, {
|
|
|
47
47
|
});
|
|
48
48
|
module.exports = __toCommonJS(source_nodejs_exports);
|
|
49
49
|
|
|
50
|
-
// source_nodejs/
|
|
51
|
-
var import_assert5 = __toESM(require("assert"));
|
|
50
|
+
// source_nodejs/generate_private_key_filename.ts
|
|
52
51
|
var import_node_fs = __toESM(require("fs"));
|
|
53
|
-
var
|
|
54
|
-
var import_crypto = require("crypto");
|
|
55
|
-
|
|
56
|
-
// source/crypto_utils.ts
|
|
57
|
-
var import_constants = __toESM(require("constants"));
|
|
58
|
-
var import_assert4 = __toESM(require("assert"));
|
|
59
|
-
var import_hexy = __toESM(require("hexy"));
|
|
52
|
+
var import_jsrsasign3 = __toESM(require("jsrsasign"));
|
|
60
53
|
|
|
61
|
-
// source/
|
|
62
|
-
var
|
|
63
|
-
|
|
64
|
-
};
|
|
54
|
+
// source/common.ts
|
|
55
|
+
var import_node_crypto = __toESM(require("crypto"));
|
|
56
|
+
var KeyObjectOrig = import_node_crypto.default.KeyObject;
|
|
57
|
+
var { createPrivateKey: createPrivateKeyFromNodeJSCrypto } = import_node_crypto.default;
|
|
65
58
|
|
|
66
59
|
// source/crypto_explore_certificate.ts
|
|
67
|
-
var
|
|
60
|
+
var import_node_assert4 = __toESM(require("assert"));
|
|
68
61
|
|
|
69
62
|
// source/asn1.ts
|
|
70
|
-
var
|
|
63
|
+
var import_node_assert = __toESM(require("assert"));
|
|
71
64
|
function readTag(buf, pos) {
|
|
72
65
|
const start = pos;
|
|
73
66
|
if (buf.length <= pos) {
|
|
74
|
-
throw new Error(
|
|
67
|
+
throw new Error(`Invalid position : buf.length=${buf.length} pos=${pos}`);
|
|
75
68
|
}
|
|
76
69
|
const tag = buf.readUInt8(pos);
|
|
77
70
|
pos += 1;
|
|
@@ -88,38 +81,18 @@ function readTag(buf, pos) {
|
|
|
88
81
|
return { start, tag, position: pos, length };
|
|
89
82
|
}
|
|
90
83
|
|
|
91
|
-
// source/
|
|
92
|
-
var
|
|
84
|
+
// source/crypto_utils.ts
|
|
85
|
+
var import_node_assert2 = __toESM(require("assert"));
|
|
86
|
+
var import_node_constants = __toESM(require("constants"));
|
|
87
|
+
var import_node_crypto2 = require("crypto");
|
|
88
|
+
var import_jsrsasign = __toESM(require("jsrsasign"));
|
|
93
89
|
|
|
94
|
-
// source/
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
const block_info = readTag(certificateChain, 0);
|
|
99
|
-
const length = block_info.position + block_info.length;
|
|
100
|
-
const der_certificate = certificateChain.subarray(0, length);
|
|
101
|
-
certificate_chain.push(der_certificate);
|
|
102
|
-
certificateChain = certificateChain.subarray(length);
|
|
103
|
-
} while (certificateChain.length > 0);
|
|
104
|
-
return certificate_chain;
|
|
105
|
-
}
|
|
106
|
-
function combine_der(certificates) {
|
|
107
|
-
for (const cert of certificates) {
|
|
108
|
-
const b = split_der(cert);
|
|
109
|
-
let sum = 0;
|
|
110
|
-
b.forEach((block) => {
|
|
111
|
-
const block_info = readTag(block, 0);
|
|
112
|
-
(0, import_assert3.default)(block_info.position + block_info.length === block.length);
|
|
113
|
-
sum += block.length;
|
|
114
|
-
});
|
|
115
|
-
(0, import_assert3.default)(sum === cert.length);
|
|
116
|
-
}
|
|
117
|
-
return Buffer.concat(certificates);
|
|
118
|
-
}
|
|
90
|
+
// source/buffer_utils.ts
|
|
91
|
+
var createFastUninitializedBuffer = Buffer.allocUnsafe ? Buffer.allocUnsafe : (size) => {
|
|
92
|
+
return new Buffer(size);
|
|
93
|
+
};
|
|
119
94
|
|
|
120
95
|
// source/crypto_utils.ts
|
|
121
|
-
var import_jsrsasign = __toESM(require("jsrsasign"));
|
|
122
|
-
var { hexy } = import_hexy.default;
|
|
123
96
|
var PEM_REGEX = /^(-----BEGIN (.*)-----\r?\n([/+=a-zA-Z0-9\r\n]*)\r?\n-----END \2-----\r?\n?)/gm;
|
|
124
97
|
var PEM_TYPE_REGEX = /^(-----BEGIN (.*)-----)/m;
|
|
125
98
|
function identifyPemType(rawKey) {
|
|
@@ -134,192 +107,103 @@ function removeTrailingLF(str) {
|
|
|
134
107
|
return tmp;
|
|
135
108
|
}
|
|
136
109
|
function toPem(raw_key, pem) {
|
|
137
|
-
(0,
|
|
138
|
-
(0,
|
|
110
|
+
(0, import_node_assert2.default)(raw_key, "expecting a key");
|
|
111
|
+
(0, import_node_assert2.default)(typeof pem === "string");
|
|
139
112
|
let pemType = identifyPemType(raw_key);
|
|
140
113
|
if (pemType) {
|
|
141
114
|
return Buffer.isBuffer(raw_key) ? removeTrailingLF(raw_key.toString("utf8")) : removeTrailingLF(raw_key);
|
|
142
115
|
} else {
|
|
143
116
|
pemType = pem;
|
|
144
|
-
(0,
|
|
117
|
+
(0, import_node_assert2.default)(["CERTIFICATE REQUEST", "CERTIFICATE", "RSA PRIVATE KEY", "PUBLIC KEY", "X509 CRL"].indexOf(pemType) >= 0);
|
|
145
118
|
let b = raw_key.toString("base64");
|
|
146
|
-
let str =
|
|
119
|
+
let str = `-----BEGIN ${pemType}-----
|
|
120
|
+
`;
|
|
147
121
|
while (b.length) {
|
|
148
|
-
str += b.substring(0, 64)
|
|
122
|
+
str += `${b.substring(0, 64)}
|
|
123
|
+
`;
|
|
149
124
|
b = b.substring(64);
|
|
150
125
|
}
|
|
151
|
-
str +=
|
|
126
|
+
str += `-----END ${pemType}-----`;
|
|
152
127
|
return str;
|
|
153
128
|
}
|
|
154
129
|
}
|
|
155
130
|
function convertPEMtoDER(raw_key) {
|
|
156
131
|
let match;
|
|
157
|
-
let
|
|
132
|
+
let _pemType;
|
|
158
133
|
let base64str;
|
|
159
134
|
const parts = [];
|
|
160
135
|
PEM_REGEX.lastIndex = 0;
|
|
161
|
-
|
|
162
|
-
|
|
136
|
+
match = PEM_REGEX.exec(raw_key);
|
|
137
|
+
while (match !== null) {
|
|
138
|
+
_pemType = match[2];
|
|
163
139
|
base64str = match[3];
|
|
164
140
|
base64str = base64str.replace(/\r?\n/g, "");
|
|
165
141
|
parts.push(Buffer.from(base64str, "base64"));
|
|
142
|
+
match = PEM_REGEX.exec(raw_key);
|
|
166
143
|
}
|
|
167
144
|
return combine_der(parts);
|
|
168
145
|
}
|
|
169
|
-
var RSA_PKCS1_OAEP_PADDING =
|
|
170
|
-
var RSA_PKCS1_PADDING =
|
|
171
|
-
(0,
|
|
172
|
-
(0,
|
|
146
|
+
var RSA_PKCS1_OAEP_PADDING = import_node_constants.default.RSA_PKCS1_OAEP_PADDING;
|
|
147
|
+
var RSA_PKCS1_PADDING = import_node_constants.default.RSA_PKCS1_PADDING;
|
|
148
|
+
(0, import_node_assert2.default)(4 /* RSA_PKCS1_OAEP_PADDING */ === import_node_constants.default.RSA_PKCS1_OAEP_PADDING);
|
|
149
|
+
(0, import_node_assert2.default)(1 /* RSA_PKCS1_PADDING */ === import_node_constants.default.RSA_PKCS1_PADDING);
|
|
173
150
|
|
|
174
|
-
//
|
|
175
|
-
var
|
|
176
|
-
function _readPemFile(filename) {
|
|
177
|
-
(0, import_assert5.default)(typeof filename === "string");
|
|
178
|
-
return removeTrailingLF(import_node_fs.default.readFileSync(filename, "utf-8"));
|
|
179
|
-
}
|
|
180
|
-
function _readPemOrDerFileAsDER(filename) {
|
|
181
|
-
if (filename.match(/.*\.der/)) {
|
|
182
|
-
return import_node_fs.default.readFileSync(filename);
|
|
183
|
-
}
|
|
184
|
-
const raw_key = _readPemFile(filename);
|
|
185
|
-
return convertPEMtoDER(raw_key);
|
|
186
|
-
}
|
|
187
|
-
function readCertificate(filename) {
|
|
188
|
-
return _readPemOrDerFileAsDER(filename);
|
|
189
|
-
}
|
|
190
|
-
function readPublicKey(filename) {
|
|
191
|
-
if (filename.match(/.*\.der/)) {
|
|
192
|
-
const der = import_node_fs.default.readFileSync(filename);
|
|
193
|
-
return (0, import_crypto.createPublicKey)(der);
|
|
194
|
-
} else {
|
|
195
|
-
const raw_key = _readPemFile(filename);
|
|
196
|
-
return (0, import_crypto.createPublicKey)(raw_key);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
function myCreatePrivateKey(rawKey) {
|
|
200
|
-
if (!import_crypto.createPrivateKey || process.env.NO_CREATE_PRIVATEKEY) {
|
|
201
|
-
if (Buffer.isBuffer(rawKey)) {
|
|
202
|
-
const pemKey = toPem(rawKey, "PRIVATE KEY");
|
|
203
|
-
(0, import_assert5.default)(["RSA PRIVATE KEY", "PRIVATE KEY"].indexOf(identifyPemType(pemKey)) >= 0);
|
|
204
|
-
return { hidden: pemKey };
|
|
205
|
-
}
|
|
206
|
-
return { hidden: ensureTrailingLF(rawKey) };
|
|
207
|
-
}
|
|
208
|
-
const backup = process.env.OPENSSL_CONF;
|
|
209
|
-
process.env.OPENSSL_CONF = "/dev/null";
|
|
210
|
-
const retValue = (0, import_crypto.createPrivateKey)(rawKey);
|
|
211
|
-
process.env.OPENSSL_CONF = backup;
|
|
212
|
-
return { hidden: retValue };
|
|
213
|
-
}
|
|
214
|
-
function ensureTrailingLF(str) {
|
|
215
|
-
return str.match(/\n$/) ? str : str + "\n";
|
|
216
|
-
}
|
|
217
|
-
function readPrivateKey(filename) {
|
|
218
|
-
if (filename.match(/.*\.der/)) {
|
|
219
|
-
const der = import_node_fs.default.readFileSync(filename);
|
|
220
|
-
return myCreatePrivateKey(der);
|
|
221
|
-
} else {
|
|
222
|
-
const raw_key = _readPemFile(filename);
|
|
223
|
-
return myCreatePrivateKey(raw_key);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
function readCertificatePEM(filename) {
|
|
227
|
-
return _readPemFile(filename);
|
|
228
|
-
}
|
|
229
|
-
function readPublicKeyPEM(filename) {
|
|
230
|
-
return _readPemFile(filename);
|
|
231
|
-
}
|
|
232
|
-
function readPrivateKeyPEM(filename) {
|
|
233
|
-
return _readPemFile(filename);
|
|
234
|
-
}
|
|
235
|
-
var _g_certificate_store = "";
|
|
236
|
-
function setCertificateStore(store) {
|
|
237
|
-
const old_store = _g_certificate_store;
|
|
238
|
-
_g_certificate_store = store;
|
|
239
|
-
return old_store;
|
|
240
|
-
}
|
|
241
|
-
function getCertificateStore() {
|
|
242
|
-
if (!_g_certificate_store) {
|
|
243
|
-
_g_certificate_store = import_node_path.default.join(__dirname, "../../certificates/");
|
|
244
|
-
}
|
|
245
|
-
return _g_certificate_store;
|
|
246
|
-
}
|
|
247
|
-
function readPrivateRsaKey(filename) {
|
|
248
|
-
if (!import_crypto.createPrivateKey) {
|
|
249
|
-
throw new Error("createPrivateKey is not supported in this environment");
|
|
250
|
-
}
|
|
251
|
-
if (filename.substring(0, 1) !== "." && !import_node_fs.default.existsSync(filename)) {
|
|
252
|
-
filename = import_node_path.default.join(getCertificateStore(), filename);
|
|
253
|
-
}
|
|
254
|
-
const content = import_node_fs.default.readFileSync(filename, "utf8");
|
|
255
|
-
const sshKey = import_sshpk.default.parsePrivateKey(content, "auto");
|
|
256
|
-
const key = sshKey.toString("pkcs1");
|
|
257
|
-
const hidden = (0, import_crypto.createPrivateKey)({ format: "pem", type: "pkcs1", key });
|
|
258
|
-
return { hidden };
|
|
259
|
-
}
|
|
260
|
-
function readPublicRsaKey(filename) {
|
|
261
|
-
if (filename.substring(0, 1) !== "." && !import_node_fs.default.existsSync(filename)) {
|
|
262
|
-
filename = import_node_path.default.join(getCertificateStore(), filename);
|
|
263
|
-
}
|
|
264
|
-
const content = import_node_fs.default.readFileSync(filename, "utf-8");
|
|
265
|
-
const sshKey = import_sshpk.default.parseKey(content, "ssh");
|
|
266
|
-
const key = sshKey.toString("pkcs1");
|
|
267
|
-
return (0, import_crypto.createPublicKey)({ format: "pem", type: "pkcs1", key });
|
|
268
|
-
}
|
|
151
|
+
// source/directory_name.ts
|
|
152
|
+
var import_node_assert3 = __toESM(require("assert"));
|
|
269
153
|
|
|
270
|
-
//
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
154
|
+
// source/crypto_explore_certificate.ts
|
|
155
|
+
function split_der(certificateChain) {
|
|
156
|
+
const certificate_chain = [];
|
|
157
|
+
do {
|
|
158
|
+
const block_info = readTag(certificateChain, 0);
|
|
159
|
+
const length = block_info.position + block_info.length;
|
|
160
|
+
const der_certificate = certificateChain.subarray(0, length);
|
|
161
|
+
certificate_chain.push(der_certificate);
|
|
162
|
+
certificateChain = certificateChain.subarray(length);
|
|
163
|
+
} while (certificateChain.length > 0);
|
|
164
|
+
return certificate_chain;
|
|
279
165
|
}
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
166
|
+
function combine_der(certificates) {
|
|
167
|
+
for (const cert of certificates) {
|
|
168
|
+
const b = split_der(cert);
|
|
169
|
+
let sum = 0;
|
|
170
|
+
b.forEach((block) => {
|
|
171
|
+
const block_info = readTag(block, 0);
|
|
172
|
+
(0, import_node_assert4.default)(block_info.position + block_info.length === block.length);
|
|
173
|
+
sum += block.length;
|
|
174
|
+
});
|
|
175
|
+
(0, import_node_assert4.default)(sum === cert.length);
|
|
287
176
|
}
|
|
288
|
-
|
|
289
|
-
return convertPEMtoDER(raw_crl);
|
|
177
|
+
return Buffer.concat(certificates);
|
|
290
178
|
}
|
|
291
179
|
|
|
292
|
-
// source_nodejs/generate_private_key_filename.ts
|
|
293
|
-
var import_node_fs4 = __toESM(require("fs"));
|
|
294
|
-
|
|
295
|
-
// source/explore_private_key.ts
|
|
296
|
-
var doDebug = !!process.env.DEBUG;
|
|
297
|
-
|
|
298
|
-
// source/common.ts
|
|
299
|
-
var import_crypto2 = __toESM(require("crypto"));
|
|
300
|
-
var KeyObjectOrig = import_crypto2.default.KeyObject;
|
|
301
|
-
var { createPrivateKey: createPrivateKeyFromNodeJSCrypto } = import_crypto2.default;
|
|
302
|
-
|
|
303
180
|
// source/crypto_utils2.ts
|
|
304
|
-
var
|
|
181
|
+
var import_node_assert5 = __toESM(require("assert"));
|
|
305
182
|
var import_jsrsasign2 = __toESM(require("jsrsasign"));
|
|
306
183
|
|
|
307
184
|
// source/derived_keys.ts
|
|
308
|
-
var
|
|
185
|
+
var import_node_assert7 = __toESM(require("assert"));
|
|
186
|
+
var import_node_crypto3 = require("crypto");
|
|
309
187
|
|
|
310
188
|
// source/explore_certificate.ts
|
|
311
|
-
var
|
|
189
|
+
var import_node_assert6 = __toESM(require("assert"));
|
|
190
|
+
|
|
191
|
+
// source/explore_private_key.ts
|
|
192
|
+
var doDebug = !!process.env.DEBUG;
|
|
193
|
+
|
|
194
|
+
// source/verify_certificate_signature.ts
|
|
195
|
+
var import_node_crypto4 = require("crypto");
|
|
312
196
|
|
|
313
197
|
// source/x509/_crypto.ts
|
|
314
|
-
var
|
|
198
|
+
var import_node_crypto5 = __toESM(require("crypto"));
|
|
315
199
|
var import_webcrypto = require("@peculiar/webcrypto");
|
|
316
|
-
var
|
|
200
|
+
var x509 = __toESM(require("@peculiar/x509"));
|
|
317
201
|
var x5092 = __toESM(require("@peculiar/x509"));
|
|
318
202
|
var doDebug2 = false;
|
|
319
203
|
var _crypto;
|
|
320
204
|
var ignoreCrypto = process.env.IGNORE_SUBTLE_FROM_CRYPTO;
|
|
321
205
|
if (typeof window === "undefined") {
|
|
322
|
-
_crypto =
|
|
206
|
+
_crypto = import_node_crypto5.default;
|
|
323
207
|
if (!_crypto?.subtle || ignoreCrypto) {
|
|
324
208
|
_crypto = new import_webcrypto.Crypto();
|
|
325
209
|
doDebug2 && console.warn("using @peculiar/webcrypto");
|
|
@@ -333,7 +217,7 @@ if (typeof window === "undefined") {
|
|
|
333
217
|
x509.cryptoProvider.set(crypto);
|
|
334
218
|
}
|
|
335
219
|
function getCrypto() {
|
|
336
|
-
return _crypto || crypto ||
|
|
220
|
+
return _crypto || crypto || import_node_crypto5.default;
|
|
337
221
|
}
|
|
338
222
|
|
|
339
223
|
// source/x509/create_key_pair.ts
|
|
@@ -494,7 +378,7 @@ var BufferSourceConverter = class _BufferSourceConverter {
|
|
|
494
378
|
}
|
|
495
379
|
};
|
|
496
380
|
var STRING_TYPE = "string";
|
|
497
|
-
var HEX_REGEX = /^[0-9a-f]+$/i;
|
|
381
|
+
var HEX_REGEX = /^[0-9a-f\s]+$/i;
|
|
498
382
|
var BASE64_REGEX = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;
|
|
499
383
|
var BASE64URL_REGEX = /^[a-zA-Z0-9-_]+$/;
|
|
500
384
|
var Utf8Converter = class {
|
|
@@ -942,19 +826,19 @@ var BIT_STRING_NAME = "BIT STRING";
|
|
|
942
826
|
function HexBlock(BaseClass) {
|
|
943
827
|
var _a2;
|
|
944
828
|
return _a2 = class Some extends BaseClass {
|
|
945
|
-
constructor(...args) {
|
|
946
|
-
var _a3;
|
|
947
|
-
super(...args);
|
|
948
|
-
const params = args[0] || {};
|
|
949
|
-
this.isHexOnly = (_a3 = params.isHexOnly) !== null && _a3 !== void 0 ? _a3 : false;
|
|
950
|
-
this.valueHexView = params.valueHex ? BufferSourceConverter.toUint8Array(params.valueHex) : EMPTY_VIEW;
|
|
951
|
-
}
|
|
952
829
|
get valueHex() {
|
|
953
830
|
return this.valueHexView.slice().buffer;
|
|
954
831
|
}
|
|
955
832
|
set valueHex(value) {
|
|
956
833
|
this.valueHexView = new Uint8Array(value);
|
|
957
834
|
}
|
|
835
|
+
constructor(...args) {
|
|
836
|
+
var _b;
|
|
837
|
+
super(...args);
|
|
838
|
+
const params = args[0] || {};
|
|
839
|
+
this.isHexOnly = (_b = params.isHexOnly) !== null && _b !== void 0 ? _b : false;
|
|
840
|
+
this.valueHexView = params.valueHex ? BufferSourceConverter.toUint8Array(params.valueHex) : EMPTY_VIEW;
|
|
841
|
+
}
|
|
958
842
|
fromBER(inputBuffer, inputOffset, inputLength) {
|
|
959
843
|
const view = inputBuffer instanceof ArrayBuffer ? new Uint8Array(inputBuffer) : inputBuffer;
|
|
960
844
|
if (!checkBufferParams(this, view, inputOffset, inputLength)) {
|
|
@@ -989,12 +873,6 @@ function HexBlock(BaseClass) {
|
|
|
989
873
|
}, _a2.NAME = "hexBlock", _a2;
|
|
990
874
|
}
|
|
991
875
|
var LocalBaseBlock = class {
|
|
992
|
-
constructor({ blockLength = 0, error = EMPTY_STRING, warnings = [], valueBeforeDecode = EMPTY_VIEW } = {}) {
|
|
993
|
-
this.blockLength = blockLength;
|
|
994
|
-
this.error = error;
|
|
995
|
-
this.warnings = warnings;
|
|
996
|
-
this.valueBeforeDecodeView = BufferSourceConverter.toUint8Array(valueBeforeDecode);
|
|
997
|
-
}
|
|
998
876
|
static blockName() {
|
|
999
877
|
return this.NAME;
|
|
1000
878
|
}
|
|
@@ -1004,6 +882,12 @@ var LocalBaseBlock = class {
|
|
|
1004
882
|
set valueBeforeDecode(value) {
|
|
1005
883
|
this.valueBeforeDecodeView = new Uint8Array(value);
|
|
1006
884
|
}
|
|
885
|
+
constructor({ blockLength = 0, error = EMPTY_STRING, warnings = [], valueBeforeDecode = EMPTY_VIEW } = {}) {
|
|
886
|
+
this.blockLength = blockLength;
|
|
887
|
+
this.error = error;
|
|
888
|
+
this.warnings = warnings;
|
|
889
|
+
this.valueBeforeDecodeView = BufferSourceConverter.toUint8Array(valueBeforeDecode);
|
|
890
|
+
}
|
|
1007
891
|
toJSON() {
|
|
1008
892
|
return {
|
|
1009
893
|
blockName: this.constructor.NAME,
|
|
@@ -1016,10 +900,10 @@ var LocalBaseBlock = class {
|
|
|
1016
900
|
};
|
|
1017
901
|
LocalBaseBlock.NAME = "baseBlock";
|
|
1018
902
|
var ValueBlock = class extends LocalBaseBlock {
|
|
1019
|
-
fromBER(
|
|
903
|
+
fromBER(_inputBuffer, _inputOffset, _inputLength) {
|
|
1020
904
|
throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'");
|
|
1021
905
|
}
|
|
1022
|
-
toBER(
|
|
906
|
+
toBER(_sizeOnly, _writer) {
|
|
1023
907
|
throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'");
|
|
1024
908
|
}
|
|
1025
909
|
};
|
|
@@ -1360,7 +1244,9 @@ var BaseBlock = class extends LocalBaseBlock {
|
|
|
1360
1244
|
return Convert.ToHex(this.toBER());
|
|
1361
1245
|
}
|
|
1362
1246
|
onAsciiEncoding() {
|
|
1363
|
-
|
|
1247
|
+
const name = this.constructor.NAME;
|
|
1248
|
+
const value = Convert.ToHex(this.valueBlock.valueBeforeDecodeView);
|
|
1249
|
+
return `${name} : ${value}`;
|
|
1364
1250
|
}
|
|
1365
1251
|
isEqual(other) {
|
|
1366
1252
|
if (this === other) {
|
|
@@ -1376,6 +1262,7 @@ var BaseBlock = class extends LocalBaseBlock {
|
|
|
1376
1262
|
};
|
|
1377
1263
|
BaseBlock.NAME = "BaseBlock";
|
|
1378
1264
|
function prepareIndefiniteForm(baseBlock) {
|
|
1265
|
+
var _a2;
|
|
1379
1266
|
if (baseBlock instanceof typeStore.Constructed) {
|
|
1380
1267
|
for (const value of baseBlock.valueBlock.value) {
|
|
1381
1268
|
if (prepareIndefiniteForm(value)) {
|
|
@@ -1383,21 +1270,21 @@ function prepareIndefiniteForm(baseBlock) {
|
|
|
1383
1270
|
}
|
|
1384
1271
|
}
|
|
1385
1272
|
}
|
|
1386
|
-
return !!baseBlock.lenBlock.isIndefiniteForm;
|
|
1273
|
+
return !!((_a2 = baseBlock.lenBlock) === null || _a2 === void 0 ? void 0 : _a2.isIndefiniteForm);
|
|
1387
1274
|
}
|
|
1388
1275
|
var BaseStringBlock = class extends BaseBlock {
|
|
1389
|
-
constructor({ value = EMPTY_STRING, ...parameters } = {}, stringValueBlockType) {
|
|
1390
|
-
super(parameters, stringValueBlockType);
|
|
1391
|
-
if (value) {
|
|
1392
|
-
this.fromString(value);
|
|
1393
|
-
}
|
|
1394
|
-
}
|
|
1395
1276
|
getValue() {
|
|
1396
1277
|
return this.valueBlock.value;
|
|
1397
1278
|
}
|
|
1398
1279
|
setValue(value) {
|
|
1399
1280
|
this.valueBlock.value = value;
|
|
1400
1281
|
}
|
|
1282
|
+
constructor({ value = EMPTY_STRING, ...parameters } = {}, stringValueBlockType) {
|
|
1283
|
+
super(parameters, stringValueBlockType);
|
|
1284
|
+
if (value) {
|
|
1285
|
+
this.fromString(value);
|
|
1286
|
+
}
|
|
1287
|
+
}
|
|
1401
1288
|
fromBER(inputBuffer, inputOffset, inputLength) {
|
|
1402
1289
|
const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, this.lenBlock.isIndefiniteForm ? inputLength : this.lenBlock.length);
|
|
1403
1290
|
if (resultOffset === -1) {
|
|
@@ -1756,10 +1643,10 @@ _a$v = Constructed;
|
|
|
1756
1643
|
})();
|
|
1757
1644
|
Constructed.NAME = "CONSTRUCTED";
|
|
1758
1645
|
var LocalEndOfContentValueBlock = class extends ValueBlock {
|
|
1759
|
-
fromBER(inputBuffer, inputOffset,
|
|
1646
|
+
fromBER(inputBuffer, inputOffset, _inputLength) {
|
|
1760
1647
|
return inputOffset;
|
|
1761
1648
|
}
|
|
1762
|
-
toBER(
|
|
1649
|
+
toBER(_sizeOnly) {
|
|
1763
1650
|
return EMPTY_BUFFER;
|
|
1764
1651
|
}
|
|
1765
1652
|
};
|
|
@@ -1820,17 +1707,6 @@ _a$t = Null;
|
|
|
1820
1707
|
})();
|
|
1821
1708
|
Null.NAME = "NULL";
|
|
1822
1709
|
var LocalBooleanValueBlock = class extends HexBlock(ValueBlock) {
|
|
1823
|
-
constructor({ value, ...parameters } = {}) {
|
|
1824
|
-
super(parameters);
|
|
1825
|
-
if (parameters.valueHex) {
|
|
1826
|
-
this.valueHexView = BufferSourceConverter.toUint8Array(parameters.valueHex);
|
|
1827
|
-
} else {
|
|
1828
|
-
this.valueHexView = new Uint8Array(1);
|
|
1829
|
-
}
|
|
1830
|
-
if (value) {
|
|
1831
|
-
this.value = value;
|
|
1832
|
-
}
|
|
1833
|
-
}
|
|
1834
1710
|
get value() {
|
|
1835
1711
|
for (const octet of this.valueHexView) {
|
|
1836
1712
|
if (octet > 0) {
|
|
@@ -1842,6 +1718,17 @@ var LocalBooleanValueBlock = class extends HexBlock(ValueBlock) {
|
|
|
1842
1718
|
set value(value) {
|
|
1843
1719
|
this.valueHexView[0] = value ? 255 : 0;
|
|
1844
1720
|
}
|
|
1721
|
+
constructor({ value, ...parameters } = {}) {
|
|
1722
|
+
super(parameters);
|
|
1723
|
+
if (parameters.valueHex) {
|
|
1724
|
+
this.valueHexView = BufferSourceConverter.toUint8Array(parameters.valueHex);
|
|
1725
|
+
} else {
|
|
1726
|
+
this.valueHexView = new Uint8Array(1);
|
|
1727
|
+
}
|
|
1728
|
+
if (value) {
|
|
1729
|
+
this.value = value;
|
|
1730
|
+
}
|
|
1731
|
+
}
|
|
1845
1732
|
fromBER(inputBuffer, inputOffset, inputLength) {
|
|
1846
1733
|
const inputView = BufferSourceConverter.toUint8Array(inputBuffer);
|
|
1847
1734
|
if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {
|
|
@@ -1868,17 +1755,17 @@ var LocalBooleanValueBlock = class extends HexBlock(ValueBlock) {
|
|
|
1868
1755
|
LocalBooleanValueBlock.NAME = "BooleanValueBlock";
|
|
1869
1756
|
var _a$s;
|
|
1870
1757
|
var Boolean = class extends BaseBlock {
|
|
1871
|
-
constructor(parameters = {}) {
|
|
1872
|
-
super(parameters, LocalBooleanValueBlock);
|
|
1873
|
-
this.idBlock.tagClass = 1;
|
|
1874
|
-
this.idBlock.tagNumber = 1;
|
|
1875
|
-
}
|
|
1876
1758
|
getValue() {
|
|
1877
1759
|
return this.valueBlock.value;
|
|
1878
1760
|
}
|
|
1879
1761
|
setValue(value) {
|
|
1880
1762
|
this.valueBlock.value = value;
|
|
1881
1763
|
}
|
|
1764
|
+
constructor(parameters = {}) {
|
|
1765
|
+
super(parameters, LocalBooleanValueBlock);
|
|
1766
|
+
this.idBlock.tagClass = 1;
|
|
1767
|
+
this.idBlock.tagNumber = 1;
|
|
1768
|
+
}
|
|
1882
1769
|
onAsciiEncoding() {
|
|
1883
1770
|
return `${this.constructor.NAME} : ${this.getValue}`;
|
|
1884
1771
|
}
|
|
@@ -1936,7 +1823,7 @@ var LocalOctetStringValueBlock = class extends HexBlock(LocalConstructedValueBlo
|
|
|
1936
1823
|
};
|
|
1937
1824
|
LocalOctetStringValueBlock.NAME = "OctetStringValueBlock";
|
|
1938
1825
|
var _a$r;
|
|
1939
|
-
var OctetString = class
|
|
1826
|
+
var OctetString = class extends BaseBlock {
|
|
1940
1827
|
constructor({ idBlock = {}, lenBlock = {}, ...parameters } = {}) {
|
|
1941
1828
|
var _b, _c;
|
|
1942
1829
|
(_b = parameters.isConstructed) !== null && _b !== void 0 ? _b : parameters.isConstructed = !!((_c = parameters.value) === null || _c === void 0 ? void 0 : _c.length);
|
|
@@ -1974,7 +1861,7 @@ var OctetString = class _OctetString extends BaseBlock {
|
|
|
1974
1861
|
this.valueBlock.value = [asn.result];
|
|
1975
1862
|
}
|
|
1976
1863
|
}
|
|
1977
|
-
} catch
|
|
1864
|
+
} catch {
|
|
1978
1865
|
}
|
|
1979
1866
|
}
|
|
1980
1867
|
return super.fromBER(inputBuffer, inputOffset, inputLength);
|
|
@@ -1983,7 +1870,9 @@ var OctetString = class _OctetString extends BaseBlock {
|
|
|
1983
1870
|
if (this.valueBlock.isConstructed || this.valueBlock.value && this.valueBlock.value.length) {
|
|
1984
1871
|
return Constructed.prototype.onAsciiEncoding.call(this);
|
|
1985
1872
|
}
|
|
1986
|
-
|
|
1873
|
+
const name = this.constructor.NAME;
|
|
1874
|
+
const value = Convert.ToHex(this.valueBlock.valueHexView);
|
|
1875
|
+
return `${name} : ${value}`;
|
|
1987
1876
|
}
|
|
1988
1877
|
getValue() {
|
|
1989
1878
|
if (!this.idBlock.isConstructed) {
|
|
@@ -1991,7 +1880,7 @@ var OctetString = class _OctetString extends BaseBlock {
|
|
|
1991
1880
|
}
|
|
1992
1881
|
const array = [];
|
|
1993
1882
|
for (const content of this.valueBlock.value) {
|
|
1994
|
-
if (content instanceof
|
|
1883
|
+
if (content instanceof _a$r) {
|
|
1995
1884
|
array.push(content.valueBlock.valueHexView);
|
|
1996
1885
|
}
|
|
1997
1886
|
}
|
|
@@ -2061,7 +1950,7 @@ var LocalBitStringValueBlock = class extends HexBlock(LocalConstructedValueBlock
|
|
|
2061
1950
|
this.value = [asn.result];
|
|
2062
1951
|
}
|
|
2063
1952
|
}
|
|
2064
|
-
} catch
|
|
1953
|
+
} catch {
|
|
2065
1954
|
}
|
|
2066
1955
|
}
|
|
2067
1956
|
this.valueHexView = intBuffer.subarray(1);
|
|
@@ -2076,7 +1965,9 @@ var LocalBitStringValueBlock = class extends HexBlock(LocalConstructedValueBlock
|
|
|
2076
1965
|
return new ArrayBuffer(this.valueHexView.byteLength + 1);
|
|
2077
1966
|
}
|
|
2078
1967
|
if (!this.valueHexView.byteLength) {
|
|
2079
|
-
|
|
1968
|
+
const empty = new Uint8Array(1);
|
|
1969
|
+
empty[0] = 0;
|
|
1970
|
+
return empty.buffer;
|
|
2080
1971
|
}
|
|
2081
1972
|
const retView = new Uint8Array(this.valueHexView.length + 1);
|
|
2082
1973
|
retView[0] = this.unusedBits;
|
|
@@ -2126,7 +2017,9 @@ var BitString = class extends BaseBlock {
|
|
|
2126
2017
|
bits.push(byte.toString(2).padStart(8, "0"));
|
|
2127
2018
|
}
|
|
2128
2019
|
const bitsStr = bits.join("");
|
|
2129
|
-
|
|
2020
|
+
const name = this.constructor.NAME;
|
|
2021
|
+
const value = bitsStr.substring(0, bitsStr.length - this.valueBlock.unusedBits);
|
|
2022
|
+
return `${name} : ${value}`;
|
|
2130
2023
|
}
|
|
2131
2024
|
}
|
|
2132
2025
|
};
|
|
@@ -2223,16 +2116,6 @@ function viewSub(first, second) {
|
|
|
2223
2116
|
return firstViewCopy.slice();
|
|
2224
2117
|
}
|
|
2225
2118
|
var LocalIntegerValueBlock = class extends HexBlock(ValueBlock) {
|
|
2226
|
-
constructor({ value, ...parameters } = {}) {
|
|
2227
|
-
super(parameters);
|
|
2228
|
-
this._valueDec = 0;
|
|
2229
|
-
if (parameters.valueHex) {
|
|
2230
|
-
this.setValueHex();
|
|
2231
|
-
}
|
|
2232
|
-
if (value !== void 0) {
|
|
2233
|
-
this.valueDec = value;
|
|
2234
|
-
}
|
|
2235
|
-
}
|
|
2236
2119
|
setValueHex() {
|
|
2237
2120
|
if (this.valueHexView.length >= 4) {
|
|
2238
2121
|
this.warnings.push("Too big Integer for decoding, hex only");
|
|
@@ -2245,6 +2128,16 @@ var LocalIntegerValueBlock = class extends HexBlock(ValueBlock) {
|
|
|
2245
2128
|
}
|
|
2246
2129
|
}
|
|
2247
2130
|
}
|
|
2131
|
+
constructor({ value, ...parameters } = {}) {
|
|
2132
|
+
super(parameters);
|
|
2133
|
+
this._valueDec = 0;
|
|
2134
|
+
if (parameters.valueHex) {
|
|
2135
|
+
this.setValueHex();
|
|
2136
|
+
}
|
|
2137
|
+
if (value !== void 0) {
|
|
2138
|
+
this.valueDec = value;
|
|
2139
|
+
}
|
|
2140
|
+
}
|
|
2248
2141
|
set valueDec(v) {
|
|
2249
2142
|
this._valueDec = v;
|
|
2250
2143
|
this.isHexOnly = false;
|
|
@@ -2357,7 +2250,7 @@ LocalIntegerValueBlock.NAME = "IntegerValueBlock";
|
|
|
2357
2250
|
});
|
|
2358
2251
|
})();
|
|
2359
2252
|
var _a$o;
|
|
2360
|
-
var Integer = class
|
|
2253
|
+
var Integer = class extends BaseBlock {
|
|
2361
2254
|
constructor(parameters = {}) {
|
|
2362
2255
|
super(parameters, LocalIntegerValueBlock);
|
|
2363
2256
|
this.idBlock.tagClass = 1;
|
|
@@ -2387,18 +2280,16 @@ var Integer = class _Integer extends BaseBlock {
|
|
|
2387
2280
|
}
|
|
2388
2281
|
writer.write(view);
|
|
2389
2282
|
}
|
|
2390
|
-
const res = new
|
|
2391
|
-
valueHex: writer.final()
|
|
2392
|
-
});
|
|
2283
|
+
const res = new _a$o({ valueHex: writer.final() });
|
|
2393
2284
|
return res;
|
|
2394
2285
|
}
|
|
2395
2286
|
convertToDER() {
|
|
2396
|
-
const integer = new
|
|
2287
|
+
const integer = new _a$o({ valueHex: this.valueBlock.valueHexView });
|
|
2397
2288
|
integer.valueBlock.toDER();
|
|
2398
2289
|
return integer;
|
|
2399
2290
|
}
|
|
2400
2291
|
convertFromDER() {
|
|
2401
|
-
return new
|
|
2292
|
+
return new _a$o({
|
|
2402
2293
|
valueHex: this.valueBlock.valueHexView[0] === 0 ? this.valueBlock.valueHexView.subarray(1) : this.valueBlock.valueHexView
|
|
2403
2294
|
});
|
|
2404
2295
|
}
|
|
@@ -2661,17 +2552,17 @@ var LocalObjectIdentifierValueBlock = class extends ValueBlock {
|
|
|
2661
2552
|
LocalObjectIdentifierValueBlock.NAME = "ObjectIdentifierValueBlock";
|
|
2662
2553
|
var _a$m;
|
|
2663
2554
|
var ObjectIdentifier = class extends BaseBlock {
|
|
2664
|
-
constructor(parameters = {}) {
|
|
2665
|
-
super(parameters, LocalObjectIdentifierValueBlock);
|
|
2666
|
-
this.idBlock.tagClass = 1;
|
|
2667
|
-
this.idBlock.tagNumber = 6;
|
|
2668
|
-
}
|
|
2669
2555
|
getValue() {
|
|
2670
2556
|
return this.valueBlock.toString();
|
|
2671
2557
|
}
|
|
2672
2558
|
setValue(value) {
|
|
2673
2559
|
this.valueBlock.fromString(value);
|
|
2674
2560
|
}
|
|
2561
|
+
constructor(parameters = {}) {
|
|
2562
|
+
super(parameters, LocalObjectIdentifierValueBlock);
|
|
2563
|
+
this.idBlock.tagClass = 1;
|
|
2564
|
+
this.idBlock.tagNumber = 6;
|
|
2565
|
+
}
|
|
2675
2566
|
onAsciiEncoding() {
|
|
2676
2567
|
return `${this.constructor.NAME} : ${this.valueBlock.toString() || "empty"}`;
|
|
2677
2568
|
}
|
|
@@ -2791,7 +2682,7 @@ var LocalRelativeObjectIdentifierValueBlock = class extends ValueBlock {
|
|
|
2791
2682
|
}
|
|
2792
2683
|
return resultOffset;
|
|
2793
2684
|
}
|
|
2794
|
-
toBER(sizeOnly,
|
|
2685
|
+
toBER(sizeOnly, _writer) {
|
|
2795
2686
|
const retBuffers = [];
|
|
2796
2687
|
for (let i = 0; i < this.value.length; i++) {
|
|
2797
2688
|
const valueBuf = this.value[i].toBER(sizeOnly);
|
|
@@ -2853,17 +2744,17 @@ var LocalRelativeObjectIdentifierValueBlock = class extends ValueBlock {
|
|
|
2853
2744
|
LocalRelativeObjectIdentifierValueBlock.NAME = "RelativeObjectIdentifierValueBlock";
|
|
2854
2745
|
var _a$l;
|
|
2855
2746
|
var RelativeObjectIdentifier = class extends BaseBlock {
|
|
2856
|
-
constructor(parameters = {}) {
|
|
2857
|
-
super(parameters, LocalRelativeObjectIdentifierValueBlock);
|
|
2858
|
-
this.idBlock.tagClass = 1;
|
|
2859
|
-
this.idBlock.tagNumber = 13;
|
|
2860
|
-
}
|
|
2861
2747
|
getValue() {
|
|
2862
2748
|
return this.valueBlock.toString();
|
|
2863
2749
|
}
|
|
2864
2750
|
setValue(value) {
|
|
2865
2751
|
this.valueBlock.fromString(value);
|
|
2866
2752
|
}
|
|
2753
|
+
constructor(parameters = {}) {
|
|
2754
|
+
super(parameters, LocalRelativeObjectIdentifierValueBlock);
|
|
2755
|
+
this.idBlock.tagClass = 1;
|
|
2756
|
+
this.idBlock.tagNumber = 13;
|
|
2757
|
+
}
|
|
2867
2758
|
onAsciiEncoding() {
|
|
2868
2759
|
return `${this.constructor.NAME} : ${this.valueBlock.toString() || "empty"}`;
|
|
2869
2760
|
}
|
|
@@ -3260,7 +3151,8 @@ var GeneralizedTime = class extends UTCTime {
|
|
|
3260
3151
|
this.millisecond = inputDate.getUTCMilliseconds();
|
|
3261
3152
|
}
|
|
3262
3153
|
toDate() {
|
|
3263
|
-
|
|
3154
|
+
const utcDate = Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, this.millisecond);
|
|
3155
|
+
return new Date(utcDate);
|
|
3264
3156
|
}
|
|
3265
3157
|
fromString(inputString) {
|
|
3266
3158
|
let isUTC = false;
|
|
@@ -3509,28 +3401,28 @@ var Repeated = class extends Any {
|
|
|
3509
3401
|
}
|
|
3510
3402
|
};
|
|
3511
3403
|
var RawData = class {
|
|
3512
|
-
constructor({ data = EMPTY_VIEW } = {}) {
|
|
3513
|
-
this.dataView = BufferSourceConverter.toUint8Array(data);
|
|
3514
|
-
}
|
|
3515
3404
|
get data() {
|
|
3516
3405
|
return this.dataView.slice().buffer;
|
|
3517
3406
|
}
|
|
3518
3407
|
set data(value) {
|
|
3519
3408
|
this.dataView = BufferSourceConverter.toUint8Array(value);
|
|
3520
3409
|
}
|
|
3410
|
+
constructor({ data = EMPTY_VIEW } = {}) {
|
|
3411
|
+
this.dataView = BufferSourceConverter.toUint8Array(data);
|
|
3412
|
+
}
|
|
3521
3413
|
fromBER(inputBuffer, inputOffset, inputLength) {
|
|
3522
3414
|
const endLength = inputOffset + inputLength;
|
|
3523
3415
|
this.dataView = BufferSourceConverter.toUint8Array(inputBuffer).subarray(inputOffset, endLength);
|
|
3524
3416
|
return endLength;
|
|
3525
3417
|
}
|
|
3526
|
-
toBER(
|
|
3418
|
+
toBER(_sizeOnly) {
|
|
3527
3419
|
return this.dataView.slice().buffer;
|
|
3528
3420
|
}
|
|
3529
3421
|
};
|
|
3530
3422
|
function compareSchema(root, inputData, inputSchema) {
|
|
3531
3423
|
if (inputSchema instanceof Choice) {
|
|
3532
|
-
for (
|
|
3533
|
-
const result = compareSchema(root, inputData,
|
|
3424
|
+
for (const element of inputSchema.value) {
|
|
3425
|
+
const result = compareSchema(root, inputData, element);
|
|
3534
3426
|
if (result.verified) {
|
|
3535
3427
|
return {
|
|
3536
3428
|
verified: true,
|
|
@@ -3541,9 +3433,7 @@ function compareSchema(root, inputData, inputSchema) {
|
|
|
3541
3433
|
{
|
|
3542
3434
|
const _result = {
|
|
3543
3435
|
verified: false,
|
|
3544
|
-
result: {
|
|
3545
|
-
error: "Wrong values for Choice type"
|
|
3546
|
-
}
|
|
3436
|
+
result: { error: "Wrong values for Choice type" }
|
|
3547
3437
|
};
|
|
3548
3438
|
if (inputSchema.hasOwnProperty(NAME))
|
|
3549
3439
|
_result.name = inputSchema.name;
|
|
@@ -3689,9 +3579,7 @@ function compareSchema(root, inputData, inputSchema) {
|
|
|
3689
3579
|
let admission = 0;
|
|
3690
3580
|
let result = {
|
|
3691
3581
|
verified: false,
|
|
3692
|
-
result: {
|
|
3693
|
-
error: "Unknown error"
|
|
3694
|
-
}
|
|
3582
|
+
result: { error: "Unknown error" }
|
|
3695
3583
|
};
|
|
3696
3584
|
let maxLength = inputSchema.valueBlock.value.length;
|
|
3697
3585
|
if (maxLength > 0) {
|
|
@@ -3940,10 +3828,7 @@ var AsnSchemaStorage = class {
|
|
|
3940
3828
|
}
|
|
3941
3829
|
}
|
|
3942
3830
|
createDefault(target) {
|
|
3943
|
-
const schema = {
|
|
3944
|
-
type: AsnTypeTypes.Sequence,
|
|
3945
|
-
items: {}
|
|
3946
|
-
};
|
|
3831
|
+
const schema = { type: AsnTypeTypes.Sequence, items: {} };
|
|
3947
3832
|
const parentSchema = this.findParentSchema(target);
|
|
3948
3833
|
if (parentSchema) {
|
|
3949
3834
|
Object.assign(schema, parentSchema);
|
|
@@ -3985,26 +3870,14 @@ var AsnSchemaStorage = class {
|
|
|
3985
3870
|
const Container = item.repeated === "set" ? Set : Sequence;
|
|
3986
3871
|
asn1Item = new Container({
|
|
3987
3872
|
name: "",
|
|
3988
|
-
value: [
|
|
3989
|
-
new Repeated({
|
|
3990
|
-
name,
|
|
3991
|
-
value: asn1Item
|
|
3992
|
-
})
|
|
3993
|
-
]
|
|
3873
|
+
value: [new Repeated({ name, value: asn1Item })]
|
|
3994
3874
|
});
|
|
3995
3875
|
}
|
|
3996
3876
|
if (item.context !== null && item.context !== void 0) {
|
|
3997
3877
|
if (item.implicit) {
|
|
3998
3878
|
if (typeof item.type === "number" || isConvertible(item.type)) {
|
|
3999
3879
|
const Container = item.repeated ? Constructed : Primitive;
|
|
4000
|
-
asn1Value.push(new Container({
|
|
4001
|
-
name,
|
|
4002
|
-
optional,
|
|
4003
|
-
idBlock: {
|
|
4004
|
-
tagClass: 3,
|
|
4005
|
-
tagNumber: item.context
|
|
4006
|
-
}
|
|
4007
|
-
}));
|
|
3880
|
+
asn1Value.push(new Container({ name, optional, idBlock: { tagClass: 3, tagNumber: item.context } }));
|
|
4008
3881
|
} else {
|
|
4009
3882
|
this.cache(item.type);
|
|
4010
3883
|
const isRepeated = !!item.repeated;
|
|
@@ -4013,20 +3886,14 @@ var AsnSchemaStorage = class {
|
|
|
4013
3886
|
asn1Value.push(new Constructed({
|
|
4014
3887
|
name: !isRepeated ? name : "",
|
|
4015
3888
|
optional,
|
|
4016
|
-
idBlock: {
|
|
4017
|
-
tagClass: 3,
|
|
4018
|
-
tagNumber: item.context
|
|
4019
|
-
},
|
|
3889
|
+
idBlock: { tagClass: 3, tagNumber: item.context },
|
|
4020
3890
|
value
|
|
4021
3891
|
}));
|
|
4022
3892
|
}
|
|
4023
3893
|
} else {
|
|
4024
3894
|
asn1Value.push(new Constructed({
|
|
4025
3895
|
optional,
|
|
4026
|
-
idBlock: {
|
|
4027
|
-
tagClass: 3,
|
|
4028
|
-
tagNumber: item.context
|
|
4029
|
-
},
|
|
3896
|
+
idBlock: { tagClass: 3, tagNumber: item.context },
|
|
4030
3897
|
value: [asn1Item]
|
|
4031
3898
|
}));
|
|
4032
3899
|
}
|
|
@@ -4064,20 +3931,142 @@ var AsnSchemaStorage = class {
|
|
|
4064
3931
|
var schemaStorage = new AsnSchemaStorage();
|
|
4065
3932
|
|
|
4066
3933
|
// source_nodejs/generate_private_key_filename.ts
|
|
4067
|
-
var import_jsrsasign3 = __toESM(require("jsrsasign"));
|
|
4068
3934
|
async function generatePrivateKeyFile(privateKeyFilename, modulusLength) {
|
|
4069
3935
|
const keys = await generateKeyPair(modulusLength);
|
|
4070
3936
|
const privateKeyPem = await privateKeyToPEM(keys.privateKey);
|
|
4071
|
-
await
|
|
3937
|
+
await import_node_fs.default.promises.writeFile(privateKeyFilename, privateKeyPem.privPem, "utf-8");
|
|
4072
3938
|
privateKeyPem.privPem = "";
|
|
4073
3939
|
privateKeyPem.privDer = new ArrayBuffer(0);
|
|
4074
3940
|
}
|
|
4075
3941
|
async function generatePrivateKeyFileAlternate(privateKeyFilename, modulusLength) {
|
|
4076
3942
|
const kp = import_jsrsasign3.default.KEYUTIL.generateKeypair("RSA", modulusLength);
|
|
4077
3943
|
const prv = kp.prvKeyObj;
|
|
4078
|
-
const
|
|
3944
|
+
const _pub = kp.pubKeyObj;
|
|
4079
3945
|
const prvpem = import_jsrsasign3.default.KEYUTIL.getPEM(prv, "PKCS8PRV");
|
|
4080
|
-
await
|
|
3946
|
+
await import_node_fs.default.promises.writeFile(privateKeyFilename, prvpem, "utf-8");
|
|
3947
|
+
}
|
|
3948
|
+
|
|
3949
|
+
// source_nodejs/read.ts
|
|
3950
|
+
var import_node_assert8 = __toESM(require("assert"));
|
|
3951
|
+
var import_node_crypto6 = require("crypto");
|
|
3952
|
+
var import_node_fs2 = __toESM(require("fs"));
|
|
3953
|
+
var import_node_path = __toESM(require("path"));
|
|
3954
|
+
var import_sshpk = __toESM(require("sshpk"));
|
|
3955
|
+
function _readPemFile(filename) {
|
|
3956
|
+
(0, import_node_assert8.default)(typeof filename === "string");
|
|
3957
|
+
return removeTrailingLF(import_node_fs2.default.readFileSync(filename, "utf-8"));
|
|
3958
|
+
}
|
|
3959
|
+
function _readPemOrDerFileAsDER(filename) {
|
|
3960
|
+
if (filename.match(/.*\.der/)) {
|
|
3961
|
+
return import_node_fs2.default.readFileSync(filename);
|
|
3962
|
+
}
|
|
3963
|
+
const raw_key = _readPemFile(filename);
|
|
3964
|
+
return convertPEMtoDER(raw_key);
|
|
3965
|
+
}
|
|
3966
|
+
function readCertificate(filename) {
|
|
3967
|
+
return _readPemOrDerFileAsDER(filename);
|
|
3968
|
+
}
|
|
3969
|
+
function readPublicKey(filename) {
|
|
3970
|
+
if (filename.match(/.*\.der/)) {
|
|
3971
|
+
const der = import_node_fs2.default.readFileSync(filename);
|
|
3972
|
+
return (0, import_node_crypto6.createPublicKey)(der);
|
|
3973
|
+
} else {
|
|
3974
|
+
const raw_key = _readPemFile(filename);
|
|
3975
|
+
return (0, import_node_crypto6.createPublicKey)(raw_key);
|
|
3976
|
+
}
|
|
3977
|
+
}
|
|
3978
|
+
function myCreatePrivateKey(rawKey) {
|
|
3979
|
+
if (!import_node_crypto6.createPrivateKey || process.env.NO_CREATE_PRIVATEKEY) {
|
|
3980
|
+
if (Buffer.isBuffer(rawKey)) {
|
|
3981
|
+
const pemKey = toPem(rawKey, "PRIVATE KEY");
|
|
3982
|
+
(0, import_node_assert8.default)(["RSA PRIVATE KEY", "PRIVATE KEY"].indexOf(identifyPemType(pemKey)) >= 0);
|
|
3983
|
+
return { hidden: pemKey };
|
|
3984
|
+
}
|
|
3985
|
+
return { hidden: ensureTrailingLF(rawKey) };
|
|
3986
|
+
}
|
|
3987
|
+
const backup = process.env.OPENSSL_CONF;
|
|
3988
|
+
process.env.OPENSSL_CONF = "/dev/null";
|
|
3989
|
+
const retValue = (0, import_node_crypto6.createPrivateKey)(rawKey);
|
|
3990
|
+
process.env.OPENSSL_CONF = backup;
|
|
3991
|
+
return { hidden: retValue };
|
|
3992
|
+
}
|
|
3993
|
+
function ensureTrailingLF(str) {
|
|
3994
|
+
return str.match(/\n$/) ? str : `${str}
|
|
3995
|
+
`;
|
|
3996
|
+
}
|
|
3997
|
+
function readPrivateKey(filename) {
|
|
3998
|
+
if (filename.match(/.*\.der/)) {
|
|
3999
|
+
const der = import_node_fs2.default.readFileSync(filename);
|
|
4000
|
+
return myCreatePrivateKey(der);
|
|
4001
|
+
} else {
|
|
4002
|
+
const raw_key = _readPemFile(filename);
|
|
4003
|
+
return myCreatePrivateKey(raw_key);
|
|
4004
|
+
}
|
|
4005
|
+
}
|
|
4006
|
+
function readCertificatePEM(filename) {
|
|
4007
|
+
return _readPemFile(filename);
|
|
4008
|
+
}
|
|
4009
|
+
function readPublicKeyPEM(filename) {
|
|
4010
|
+
return _readPemFile(filename);
|
|
4011
|
+
}
|
|
4012
|
+
function readPrivateKeyPEM(filename) {
|
|
4013
|
+
return _readPemFile(filename);
|
|
4014
|
+
}
|
|
4015
|
+
var _g_certificate_store = "";
|
|
4016
|
+
function setCertificateStore(store) {
|
|
4017
|
+
const old_store = _g_certificate_store;
|
|
4018
|
+
_g_certificate_store = store;
|
|
4019
|
+
return old_store;
|
|
4020
|
+
}
|
|
4021
|
+
function getCertificateStore() {
|
|
4022
|
+
if (!_g_certificate_store) {
|
|
4023
|
+
_g_certificate_store = import_node_path.default.join(__dirname, "../../certificates/");
|
|
4024
|
+
}
|
|
4025
|
+
return _g_certificate_store;
|
|
4026
|
+
}
|
|
4027
|
+
function readPrivateRsaKey(filename) {
|
|
4028
|
+
if (!import_node_crypto6.createPrivateKey) {
|
|
4029
|
+
throw new Error("createPrivateKey is not supported in this environment");
|
|
4030
|
+
}
|
|
4031
|
+
if (filename.substring(0, 1) !== "." && !import_node_fs2.default.existsSync(filename)) {
|
|
4032
|
+
filename = import_node_path.default.join(getCertificateStore(), filename);
|
|
4033
|
+
}
|
|
4034
|
+
const content = import_node_fs2.default.readFileSync(filename, "utf8");
|
|
4035
|
+
const sshKey = import_sshpk.default.parsePrivateKey(content, "auto");
|
|
4036
|
+
const key = sshKey.toString("pkcs1");
|
|
4037
|
+
const hidden = (0, import_node_crypto6.createPrivateKey)({ format: "pem", type: "pkcs1", key });
|
|
4038
|
+
return { hidden };
|
|
4039
|
+
}
|
|
4040
|
+
function readPublicRsaKey(filename) {
|
|
4041
|
+
if (filename.substring(0, 1) !== "." && !import_node_fs2.default.existsSync(filename)) {
|
|
4042
|
+
filename = import_node_path.default.join(getCertificateStore(), filename);
|
|
4043
|
+
}
|
|
4044
|
+
const content = import_node_fs2.default.readFileSync(filename, "utf-8");
|
|
4045
|
+
const sshKey = import_sshpk.default.parseKey(content, "ssh");
|
|
4046
|
+
const key = sshKey.toString("pkcs1");
|
|
4047
|
+
return (0, import_node_crypto6.createPublicKey)({ format: "pem", type: "pkcs1", key });
|
|
4048
|
+
}
|
|
4049
|
+
|
|
4050
|
+
// source_nodejs/read_certificate_revocation_list.ts
|
|
4051
|
+
var import_node_fs3 = __toESM(require("fs"));
|
|
4052
|
+
async function readCertificateRevocationList(filename) {
|
|
4053
|
+
const crl = await import_node_fs3.default.promises.readFile(filename);
|
|
4054
|
+
if (crl[0] === 48 && crl[1] === 130) {
|
|
4055
|
+
return crl;
|
|
4056
|
+
}
|
|
4057
|
+
const raw_crl = crl.toString();
|
|
4058
|
+
return convertPEMtoDER(raw_crl);
|
|
4059
|
+
}
|
|
4060
|
+
|
|
4061
|
+
// source_nodejs/read_certificate_signing_request.ts
|
|
4062
|
+
var import_node_fs4 = __toESM(require("fs"));
|
|
4063
|
+
async function readCertificateSigningRequest(filename) {
|
|
4064
|
+
const csr = await import_node_fs4.default.promises.readFile(filename);
|
|
4065
|
+
if (csr[0] === 48 && csr[1] === 130) {
|
|
4066
|
+
return csr;
|
|
4067
|
+
}
|
|
4068
|
+
const raw_crl = csr.toString();
|
|
4069
|
+
return convertPEMtoDER(raw_crl);
|
|
4081
4070
|
}
|
|
4082
4071
|
// Annotate the CommonJS export names for ESM import in node:
|
|
4083
4072
|
0 && (module.exports = {
|
|
@@ -4102,7 +4091,7 @@ pvtsutils/build/index.es.js:
|
|
|
4102
4091
|
(*!
|
|
4103
4092
|
* MIT License
|
|
4104
4093
|
*
|
|
4105
|
-
* Copyright (c) 2017-
|
|
4094
|
+
* Copyright (c) 2017-2024 Peculiar Ventures, LLC
|
|
4106
4095
|
*
|
|
4107
4096
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4108
4097
|
* of this software and associated documentation files (the "Software"), to deal
|