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.
@@ -47,31 +47,24 @@ __export(source_nodejs_exports, {
47
47
  });
48
48
  module.exports = __toCommonJS(source_nodejs_exports);
49
49
 
50
- // source_nodejs/read.ts
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 import_node_path = __toESM(require("path"));
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/buffer_utils.ts
62
- var createFastUninitializedBuffer = Buffer.allocUnsafe ? Buffer.allocUnsafe : (size) => {
63
- return new Buffer(size);
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 import_assert3 = __toESM(require("assert"));
60
+ var import_node_assert4 = __toESM(require("assert"));
68
61
 
69
62
  // source/asn1.ts
70
- var import_assert = __toESM(require("assert"));
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("Invalid position : buf.length=" + buf.length + " pos =" + pos);
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/directory_name.ts
92
- var import_assert2 = __toESM(require("assert"));
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/crypto_explore_certificate.ts
95
- function split_der(certificateChain) {
96
- const certificate_chain = [];
97
- do {
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, import_assert4.default)(raw_key, "expecting a key");
138
- (0, import_assert4.default)(typeof pem === "string");
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, import_assert4.default)(["CERTIFICATE REQUEST", "CERTIFICATE", "RSA PRIVATE KEY", "PUBLIC KEY", "X509 CRL"].indexOf(pemType) >= 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 = "-----BEGIN " + pemType + "-----\n";
119
+ let str = `-----BEGIN ${pemType}-----
120
+ `;
147
121
  while (b.length) {
148
- str += b.substring(0, 64) + "\n";
122
+ str += `${b.substring(0, 64)}
123
+ `;
149
124
  b = b.substring(64);
150
125
  }
151
- str += "-----END " + pemType + "-----";
126
+ str += `-----END ${pemType}-----`;
152
127
  return str;
153
128
  }
154
129
  }
155
130
  function convertPEMtoDER(raw_key) {
156
131
  let match;
157
- let pemType;
132
+ let _pemType;
158
133
  let base64str;
159
134
  const parts = [];
160
135
  PEM_REGEX.lastIndex = 0;
161
- while ((match = PEM_REGEX.exec(raw_key)) !== null) {
162
- pemType = match[2];
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 = import_constants.default.RSA_PKCS1_OAEP_PADDING;
170
- var RSA_PKCS1_PADDING = import_constants.default.RSA_PKCS1_PADDING;
171
- (0, import_assert4.default)(4 /* RSA_PKCS1_OAEP_PADDING */ === import_constants.default.RSA_PKCS1_OAEP_PADDING);
172
- (0, import_assert4.default)(1 /* RSA_PKCS1_PADDING */ === import_constants.default.RSA_PKCS1_PADDING);
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
- // source_nodejs/read.ts
175
- var import_sshpk = __toESM(require("sshpk"));
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
- // source_nodejs/read_certificate_revocation_list.ts
271
- var import_node_fs2 = __toESM(require("fs"));
272
- async function readCertificateRevocationList(filename) {
273
- const crl = await import_node_fs2.default.promises.readFile(filename);
274
- if (crl[0] === 48 && crl[1] === 130) {
275
- return crl;
276
- }
277
- const raw_crl = crl.toString();
278
- return convertPEMtoDER(raw_crl);
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
- // source_nodejs/read_certificate_signing_request.ts
282
- var import_node_fs3 = __toESM(require("fs"));
283
- async function readCertificateSigningRequest(filename) {
284
- const csr = await import_node_fs3.default.promises.readFile(filename);
285
- if (csr[0] === 48 && csr[1] === 130) {
286
- return csr;
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
- const raw_crl = csr.toString();
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 import_assert6 = __toESM(require("assert"));
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 import_assert8 = __toESM(require("assert"));
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 import_assert7 = __toESM(require("assert"));
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 x509 = __toESM(require("@peculiar/x509"));
198
+ var import_node_crypto5 = __toESM(require("crypto"));
315
199
  var import_webcrypto = require("@peculiar/webcrypto");
316
- var import_crypto3 = __toESM(require("crypto"));
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 = import_crypto3.default;
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 || require("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(inputBuffer, inputOffset, inputLength) {
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(sizeOnly, writer) {
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
- return `${this.constructor.NAME} : ${Convert.ToHex(this.valueBlock.valueBeforeDecodeView)}`;
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, inputLength) {
1646
+ fromBER(inputBuffer, inputOffset, _inputLength) {
1760
1647
  return inputOffset;
1761
1648
  }
1762
- toBER(sizeOnly) {
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 _OctetString extends BaseBlock {
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 (e) {
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
- return `${this.constructor.NAME} : ${Convert.ToHex(this.valueBlock.valueHexView)}`;
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 _OctetString) {
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 (e) {
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
- return EMPTY_BUFFER;
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
- return `${this.constructor.NAME} : ${bitsStr.substring(0, bitsStr.length - this.valueBlock.unusedBits)}`;
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 _Integer extends BaseBlock {
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 _Integer({
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 _Integer({ valueHex: this.valueBlock.valueHexView });
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 _Integer({
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, writer) {
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
- return new Date(Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, this.millisecond));
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(sizeOnly) {
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 (let j = 0; j < inputSchema.value.length; j++) {
3533
- const result = compareSchema(root, inputData, inputSchema.value[j]);
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 import_node_fs4.default.promises.writeFile(privateKeyFilename, privateKeyPem.privPem, "utf-8");
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 pub = kp.pubKeyObj;
3944
+ const _pub = kp.pubKeyObj;
4079
3945
  const prvpem = import_jsrsasign3.default.KEYUTIL.getPEM(prv, "PKCS8PRV");
4080
- await import_node_fs4.default.promises.writeFile(privateKeyFilename, prvpem, "utf-8");
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-2022 Peculiar Ventures, LLC
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