xypriss 5.2.0 → 5.2.2

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.
@@ -19,6 +19,7 @@ require('../utils/memory/index.js');
19
19
  var randomTokens = require('./random/random-tokens.js');
20
20
  var validators = require('./validators.js');
21
21
  var securityMiddleware = require('../../../../src/middleware/security-middleware.js');
22
+ var crypto_utils = require('../utils/crypto.utils.js');
22
23
  var sideChannel = require('../components/side-channel.js');
23
24
  var memoryHard = require('../components/memory-hard.js');
24
25
  var postQuantum = require('../components/post-quantum.js');
@@ -730,7 +731,48 @@ class XyPrissSecurity {
730
731
  mdlw.getMiddleware()(req, res, next);
731
732
  };
732
733
  }
734
+ /**
735
+ * Encrypts data using the CryptoUtils class.
736
+ *
737
+ * @public
738
+ * @param {string} text - The plaintext string to encrypt
739
+ * @param {...ConstructorParameters<typeof CryptoUtils>} args - Arguments to pass to the CryptoUtils constructor
740
+ *
741
+ * @returns {string} The encrypted string in format "IV:ENCRYPTED_DATA"
742
+ *
743
+ * @throws {Error} If validation fails or encryption operation encounters an error
744
+ *
745
+ * @example
746
+ * ```typescript
747
+ * const encrypted = encrypt('my-plaintext-data', 'my-32-character-key-here!!!!');
748
+ * ```
749
+ */
750
+ static encrypt(text, ...args) {
751
+ const crypto = new crypto_utils.CryptoUtils(...args);
752
+ return crypto.encrypt(text);
753
+ }
754
+ /**
755
+ * Decrypts data that was encrypted using the encrypt method.
756
+ *
757
+ * @public
758
+ * @param {string} text - The encrypted string in format "IV:ENCRYPTED_DATA"
759
+ * @param {...ConstructorParameters<typeof CryptoUtils>} args - Arguments to pass to the CryptoUtils constructor
760
+ *
761
+ * @returns {string} The decrypted plaintext string
762
+ *
763
+ * @throws {Error} If validation fails or decryption operation encounters an error
764
+ *
765
+ * @example
766
+ * ```typescript
767
+ * const decrypted = decrypt(encryptedText, 'my-32-character-key-here!!!!');
768
+ * ```
769
+ */
770
+ static decrypt(text, ...args) {
771
+ const crypto = new crypto_utils.CryptoUtils(...args);
772
+ return crypto.decrypt(text);
773
+ }
733
774
  }
775
+ XyPrissSecurity.Utils = crypto_utils.CryptoUtils;
734
776
  XyPrissSecurity.middleware({});
735
777
 
736
778
  exports.XyPrissSecurity = XyPrissSecurity;
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.js","sources":["../../../../../../mods/security/src/core/crypto.ts"],"sourcesContent":[null],"names":["SECURITY_DEFAULTS","Validators","SecurityLevel","RandomTokens","bufferDataConverter","stringToBuffer","encoding","Hash","SecureRandom","HashAlgorithm","bufferToBase32","Keys","StatsTracker","constantTimeEqual","argon2Derive","balloonDerive","lamportGenerateKeypair","lamportSign","lamportVerify","SecureBuffer","SecureString","SecureObject","secureWipe","EntropyPool","createCanary","createCanaryObject","createCanaryFunction","createAttestation","attestation","verifyAttestation","createLibraryAttestation","verifyLibraryAttestation","verifyRuntimeSecurity","secureSerialize","secureDeserialize","TamperEvidentLogger","LogLevel","secureModPow","faultResistantEqual","ringLweGenerateKeypair","ringLweEncrypt","ringLweDecrypt","triggerCanary","SecurityMiddleware","Logger"],"mappings":"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"}
1
+ {"version":3,"file":"crypto.js","sources":["../../../../../../mods/security/src/core/crypto.ts"],"sourcesContent":[null],"names":["SECURITY_DEFAULTS","Validators","SecurityLevel","RandomTokens","bufferDataConverter","stringToBuffer","encoding","Hash","SecureRandom","HashAlgorithm","bufferToBase32","Keys","StatsTracker","constantTimeEqual","argon2Derive","balloonDerive","lamportGenerateKeypair","lamportSign","lamportVerify","SecureBuffer","SecureString","SecureObject","secureWipe","EntropyPool","createCanary","createCanaryObject","createCanaryFunction","createAttestation","attestation","verifyAttestation","createLibraryAttestation","verifyLibraryAttestation","verifyRuntimeSecurity","secureSerialize","secureDeserialize","TamperEvidentLogger","LogLevel","secureModPow","faultResistantEqual","ringLweGenerateKeypair","ringLweEncrypt","ringLweDecrypt","triggerCanary","SecurityMiddleware","Logger","CryptoUtils"],"mappings":"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"}
@@ -378,6 +378,40 @@ passwordCore.PasswordManager.getInstance();
378
378
  function fObject(...args) {
379
379
  return index$2.createSecureObject(...args);
380
380
  }
381
+ /**
382
+ * Securely encrypts data using the CryptoUtils class.
383
+ *
384
+ * @public
385
+ * @param {string} text - The plaintext string to encrypt
386
+ * @param {...ConstructorParameters<typeof CryptoUtils>} args - Arguments to pass to the CryptoUtils constructor
387
+ *
388
+ * @returns {string} The encrypted string in format "IV:ENCRYPTED_DATA"
389
+ *
390
+ * @throws {Error} If validation fails or encryption operation encounters an error
391
+ *
392
+ * @example
393
+ * ```typescript
394
+ * const encrypted = encrypt('my-plaintext-data', 'my-32-character-key-here!!!!');
395
+ * ```
396
+ */
397
+ crypto.XyPrissSecurity.encrypt;
398
+ /**
399
+ * Securely decrypts data using the CryptoUtils class.
400
+ *
401
+ * @public
402
+ * @param {string} encryptedText - The encrypted string in format "IV:ENCRYPTED_DATA"
403
+ * @param {...ConstructorParameters<typeof CryptoUtils>} args - Arguments to pass to the CryptoUtils constructor
404
+ *
405
+ * @returns {string} The decrypted string
406
+ *
407
+ * @throws {Error} If validation fails or decryption operation encounters an error
408
+ *
409
+ * @example
410
+ * ```typescript
411
+ * const decrypted = decrypt('IV:my-encrypted-data', 'my-32-character-key-here!!!!');
412
+ * ```
413
+ */
414
+ crypto.XyPrissSecurity.decrypt;
381
415
 
382
416
  exports.XyPriss = crypto.XyPrissSecurity;
383
417
  exports.XyPrissSecurity = crypto.XyPrissSecurity;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../mods/security/src/index.ts"],"sourcesContent":[null],"names":["XyPrissSecurity","SecureRandom","Hash","PasswordManager","fObjectUtils.createSecureObject"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BiF;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgKG;AAyVgCA,sBAAe,CAAC,oBAAoB;AA2KvE;;;;;;;;;;;;;;;AAeG;AAEH;AAC8BC,uBAAY,CAAC,eAAe;AAE1D;AACkCA,uBAAY,CAAC,mBAAmB;AAmBlE;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AAEH;AACgCC,aAAI,CAAC,iBAAiB;AAEtD;AACgCA,aAAI,CAAC,iBAAiB;AAEtD;AAC0BA,aAAI,CAAC,WAAW;AAyL1C;;;;;;;;;;;;;;;;;;;;AAoBG;AACeC,4BAAe,CAAC,WAAW,GAAG;AA0EhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEG;AACa,SAAA,OAAO,CACnB,GAAG,IAA2D,EAAA;AAE9D,IAAA,OAAOC,0BAA+B,CAAI,GAAG,IAAI,CAAC,CAAC;AACvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../mods/security/src/index.ts"],"sourcesContent":[null],"names":["XyPrissSecurity","SecureRandom","Hash","PasswordManager","fObjectUtils.createSecureObject"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BiF;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgKG;AAyVgCA,sBAAe,CAAC,oBAAoB;AA2KvE;;;;;;;;;;;;;;;AAeG;AAEH;AAC8BC,uBAAY,CAAC,eAAe;AAE1D;AACkCA,uBAAY,CAAC,mBAAmB;AAmBlE;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AAEH;AACgCC,aAAI,CAAC,iBAAiB;AAEtD;AACgCA,aAAI,CAAC,iBAAiB;AAEtD;AAC0BA,aAAI,CAAC,WAAW;AAyL1C;;;;;;;;;;;;;;;;;;;;AAoBG;AACeC,4BAAe,CAAC,WAAW,GAAG;AA0EhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEG;AACa,SAAA,OAAO,CACnB,GAAG,IAA2D,EAAA;AAE9D,IAAA,OAAOC,0BAA+B,CAAI,GAAG,IAAI,CAAC,CAAC;AACvD,CAAC;AAqiBG;;;;;;;;;;;;;;;AAeG;AACgBJ,sBAAe,CAAC,QAAQ;AAE/C;;;;;;;;;;;;;;;AAeG;AACoBA,sBAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,386 @@
1
+ 'use strict';
2
+
3
+ var crypto = require('crypto');
4
+ var reliantType = require('reliant-type');
5
+
6
+ /***************************************************************************
7
+ * XyPrissSecurity - Ex fortify2-js is an Advanced JavaScript Security Library designed for XyPriss
8
+ *
9
+ * This file contains the main entry point for the XyPrissSecurity library.
10
+ *
11
+ * @author Nehonix
12
+ * @license MIT
13
+ *
14
+ * Copyright (c) 2025 Nehonix. All rights reserved.
15
+ *
16
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
17
+ * of this software and associated documentation files (the "Software"), to deal
18
+ * in the Software without restriction, including without limitation the rights
19
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
20
+ * copies of the Software, and to permit persons to whom the Software is
21
+ * furnished to do so, subject to the following conditions:
22
+ *
23
+ * The above copyright notice and this permission notice shall be included in all
24
+ * copies or substantial portions of the Software.
25
+ *
26
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
27
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
28
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
29
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
30
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
31
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
32
+ * SOFTWARE.
33
+ ***************************************************************************** */
34
+ /**
35
+ * Cryptographic utility class for AES-256-CBC encryption and decryption.
36
+ *
37
+ * This class provides secure encryption and decryption functionality using the
38
+ * Advanced Encryption Standard (AES) with 256-bit keys in Cipher Block Chaining (CBC) mode.
39
+ *
40
+ * @class CryptoUtils
41
+ * @since 0.2.14
42
+ *
43
+ * @security
44
+ * - Uses AES-256-CBC, a FIPS-approved encryption algorithm
45
+ * - Generates cryptographically secure random IVs for each encryption operation
46
+ * - Validates all inputs before processing
47
+ * - Requires 32-byte (256-bit) encryption keys
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * import { CryptoUtils } from './crypto.utils';
52
+ *
53
+ * const crypto = new CryptoUtils('your-32-character-secret-key!!');
54
+ * const encrypted = crypto.encrypt('sensitive data');
55
+ * const decrypted = crypto.decrypt(encrypted);
56
+ * ```
57
+ */
58
+ /**
59
+ * Schema for encryption input validation.
60
+ */
61
+ const schm = reliantType.Interface({
62
+ text: "string",
63
+ ENCRYPTION_KEY: "string(32,32)",
64
+ ALGORITHM: "string",
65
+ IV_LENGTH: "number(16, 16)",
66
+ });
67
+ function isValideInput(inp) {
68
+ if (inp.t === "encrypt") {
69
+ const vld = schm.safeParse(inp.d);
70
+ if (!vld.success) {
71
+ throw new Error(vld.errors[0].code +
72
+ ":" +
73
+ vld.errors[0].message +
74
+ "::" +
75
+ vld.errors[0].path);
76
+ }
77
+ return true;
78
+ }
79
+ /**
80
+ * Schema for decryption input validation (IV_LENGTH not required).
81
+ */
82
+ const sc2 = reliantType.Mod.omit(schm, ["IV_LENGTH"]);
83
+ const vld = sc2.safeParse(inp.d);
84
+ if (!vld.success) {
85
+ throw new Error(vld.errors[0].code +
86
+ ":" +
87
+ vld.errors[0].message +
88
+ "::" +
89
+ vld.errors[0].path);
90
+ }
91
+ return true;
92
+ }
93
+ // ============================================================================
94
+ // Constants
95
+ // ============================================================================
96
+ /**
97
+ * Default encryption algorithm.
98
+ * AES-256-CBC provides strong security with good performance.
99
+ */
100
+ const DEFAULT_ALGORITHM = "aes-256-cbc";
101
+ /**
102
+ * Required length for AES-256 encryption keys in bytes.
103
+ * AES-256 requires exactly 32 bytes (256 bits).
104
+ */
105
+ const REQUIRED_KEY_LENGTH = 32;
106
+ /**
107
+ * Length of the Initialization Vector (IV) in bytes.
108
+ * For AES with CBC mode, IV must be 16 bytes (128 bits).
109
+ */
110
+ const DEFAULT_IV_LENGTH = 16;
111
+ /**
112
+ * Delimiter used to separate IV from encrypted data in the output string.
113
+ */
114
+ const IV_SEPARATOR = ":";
115
+ // ============================================================================
116
+ // CryptoUtils Class
117
+ // ============================================================================
118
+ /**
119
+ * Cryptographic utility class for AES-256-CBC encryption and decryption.
120
+ *
121
+ * This class provides secure encryption and decryption functionality using the
122
+ * Advanced Encryption Standard (AES) with 256-bit keys in Cipher Block Chaining (CBC) mode.
123
+ *
124
+ * @class CryptoUtils
125
+ * @since 1.0.0
126
+ *
127
+ * @security
128
+ * - Uses AES-256-CBC, a FIPS-approved encryption algorithm
129
+ * - Generates cryptographically secure random IVs for each encryption operation
130
+ * - Validates all inputs before processing
131
+ * - Requires 32-byte (256-bit) encryption keys
132
+ *
133
+ * @example
134
+ * ```typescript
135
+ * import { CryptoUtils } from './crypto.utils';
136
+ *
137
+ * const crypto = new CryptoUtils('your-32-character-secret-key!!');
138
+ * const encrypted = crypto.encrypt('sensitive data');
139
+ * const decrypted = crypto.decrypt(encrypted);
140
+ * ```
141
+ */
142
+ class CryptoUtils {
143
+ /**
144
+ * Creates a new CryptoUtils instance.
145
+ *
146
+ * @param {string} [encryptionKey] - The 32-character encryption key.
147
+ * Defaults to process.env.ENC_SECRET_KEY if not provided.
148
+ * @param {SupportedAlgorithm} [algorithm='aes-256-cbc'] - The encryption algorithm to use
149
+ * @param {number} [ivLength=16] - The length of the Initialization Vector in bytes
150
+ *
151
+ * @throws {Error} If encryption key is not exactly 32 characters
152
+ */
153
+ constructor(encryptionKey = process.env.ENC_SECRET_KEY, algorithm = DEFAULT_ALGORITHM, ivLength = DEFAULT_IV_LENGTH) {
154
+ // this.validateEncryptionKey(encryptionKey);
155
+ this.encryptionKey = encryptionKey;
156
+ this.algorithm = algorithm;
157
+ this.ivLength = ivLength;
158
+ }
159
+ // /**
160
+ // * Validates input parameters for encryption or decryption operations.
161
+ // *
162
+ // * @private
163
+ // */
164
+ // private isValidInput(input: {
165
+ // d:
166
+ // | typeof schm.types
167
+ // | Omit<typeof schm.types, "IV_LENGTH">;
168
+ // t: OperationType;
169
+ // }): boolean {
170
+ // const schema =
171
+ // input.t === "encrypt" ? schm : Mod.omit(schm, ["IV_LENGTH"]);
172
+ // const validation = schema.safeParse(input.d);
173
+ // if (!validation.success) {
174
+ // const error = validation.errors[0];
175
+ // throw new Error(
176
+ // `Validation Error [${error.code}]: ${error.message} at path: ${error.path}`
177
+ // );
178
+ // }
179
+ // return true;
180
+ // }
181
+ /**
182
+ * Validates the format of encrypted text.
183
+ *
184
+ * @private
185
+ */
186
+ validateEncryptedFormat(encryptedText) {
187
+ const parts = encryptedText.split(IV_SEPARATOR);
188
+ if (parts.length !== 2) {
189
+ throw new Error(`Invalid encrypted data format. Expected format: "IV${IV_SEPARATOR}ENCRYPTED_DATA"`);
190
+ }
191
+ const [ivHex, encryptedHex] = parts;
192
+ if (!ivHex || !encryptedHex) {
193
+ throw new Error("Encrypted data contains empty components");
194
+ }
195
+ const hexRegex = /^[0-9a-fA-F]+$/;
196
+ if (!hexRegex.test(ivHex)) {
197
+ throw new Error("IV component is not a valid hexadecimal string");
198
+ }
199
+ if (!hexRegex.test(encryptedHex)) {
200
+ throw new Error("Encrypted data component is not a valid hexadecimal string");
201
+ }
202
+ if (ivHex.length !== DEFAULT_IV_LENGTH * 2) {
203
+ throw new Error(`Invalid IV length. Expected ${DEFAULT_IV_LENGTH * 2} hex characters, got ${ivHex.length}`);
204
+ }
205
+ }
206
+ /**
207
+ * Securely checks if an encryption key is valid.
208
+ *
209
+ * @private
210
+ */
211
+ validateEncryptionKey(key) {
212
+ if (!key) {
213
+ throw new Error("Encryption key is required. Please provide a valid 32-character key.");
214
+ }
215
+ if (key.length !== REQUIRED_KEY_LENGTH) {
216
+ throw new Error(`Encryption key must be exactly ${REQUIRED_KEY_LENGTH} characters long. ` +
217
+ `Received: ${key.length} characters`);
218
+ }
219
+ }
220
+ /**
221
+ * Encrypts plaintext data using AES-256-CBC encryption.
222
+ *
223
+ * @public
224
+ * @param {string} text - The plaintext string to encrypt
225
+ *
226
+ * @returns {string} The encrypted data in format "IV:ENCRYPTED_DATA"
227
+ *
228
+ * @throws {Error} If validation fails or encryption operation encounters an error
229
+ *
230
+ * @example
231
+ * ```typescript
232
+ * const crypto = new CryptoUtils('my-32-character-key-here!!!!');
233
+ * const encrypted = crypto.encrypt('sensitive data');
234
+ * ```
235
+ */
236
+ encrypt(text) {
237
+ isValideInput({
238
+ d: {
239
+ ALGORITHM: this.algorithm,
240
+ ENCRYPTION_KEY: this.encryptionKey,
241
+ IV_LENGTH: this.ivLength,
242
+ text,
243
+ },
244
+ t: "encrypt",
245
+ });
246
+ try {
247
+ const iv = crypto.randomBytes(this.ivLength);
248
+ const cipher = crypto.createCipheriv(this.algorithm, Buffer.from(this.encryptionKey), iv);
249
+ let encrypted = cipher.update(text, "utf8", "hex");
250
+ encrypted += cipher.final("hex");
251
+ return `${iv.toString("hex")}${IV_SEPARATOR}${encrypted}`;
252
+ }
253
+ catch (error) {
254
+ throw new Error(`Encryption failed: ${error instanceof Error ? error.message : String(error)}`);
255
+ }
256
+ }
257
+ /**
258
+ * Decrypts data that was encrypted using the encrypt method.
259
+ *
260
+ * @public
261
+ * @param {string} encryptedText - The encrypted string in format "IV:ENCRYPTED_DATA"
262
+ *
263
+ * @returns {string} The decrypted plaintext string
264
+ *
265
+ * @throws {Error} If validation fails or decryption operation encounters an error
266
+ *
267
+ * @example
268
+ * ```typescript
269
+ * const crypto = new CryptoUtils('my-32-character-key-here!!!!');
270
+ * const decrypted = crypto.decrypt(encryptedText);
271
+ * ```
272
+ */
273
+ decrypt(encryptedText) {
274
+ isValideInput({
275
+ d: {
276
+ text: encryptedText,
277
+ ENCRYPTION_KEY: this.encryptionKey,
278
+ ALGORITHM: this.algorithm,
279
+ },
280
+ t: "decrypt",
281
+ });
282
+ this.validateEncryptedFormat(encryptedText);
283
+ try {
284
+ const parts = encryptedText.split(IV_SEPARATOR);
285
+ const [ivHex, encryptedHex] = parts;
286
+ const iv = Buffer.from(ivHex, "hex");
287
+ const encrypted = encryptedHex;
288
+ const decipher = crypto.createDecipheriv(this.algorithm, Buffer.from(this.encryptionKey), iv);
289
+ let decrypted = decipher.update(encrypted, "hex", "utf8");
290
+ decrypted += decipher.final("utf8");
291
+ return decrypted;
292
+ }
293
+ catch (error) {
294
+ throw new Error(`Decryption failed: ${error instanceof Error ? error.message : String(error)}. ` +
295
+ `This may indicate incorrect key, corrupted data, or data tampering.`);
296
+ }
297
+ }
298
+ /**
299
+ * Generates a cryptographically secure random encryption key.
300
+ *
301
+ * @public
302
+ * @static
303
+ * @returns {string} A 32-character hexadecimal string
304
+ *
305
+ * @example
306
+ * ```typescript
307
+ * const newKey = CryptoUtils.generateEncryptionKey();
308
+ * const crypto = new CryptoUtils(newKey);
309
+ * ```
310
+ */
311
+ static generateEncryptionKey() {
312
+ return crypto.randomBytes(REQUIRED_KEY_LENGTH / 2).toString("hex");
313
+ }
314
+ /**
315
+ * Type guard to check if a string is a valid encrypted text format.
316
+ *
317
+ * @public
318
+ * @static
319
+ * @param {string} text - The text to check
320
+ * @returns {boolean} True if the text appears to be in valid encrypted format
321
+ *
322
+ * @example
323
+ * ```typescript
324
+ * if (CryptoUtils.isEncryptedFormat(text)) {
325
+ * const decrypted = crypto.decrypt(text);
326
+ * }
327
+ * ```
328
+ */
329
+ static isEncryptedFormat(text) {
330
+ try {
331
+ const parts = text.split(IV_SEPARATOR);
332
+ if (parts.length !== 2) {
333
+ return false;
334
+ }
335
+ const [ivHex, encryptedHex] = parts;
336
+ if (!ivHex || !encryptedHex) {
337
+ return false;
338
+ }
339
+ const hexRegex = /^[0-9a-fA-F]+$/;
340
+ if (!hexRegex.test(ivHex) || !hexRegex.test(encryptedHex)) {
341
+ return false;
342
+ }
343
+ if (ivHex.length !== DEFAULT_IV_LENGTH * 2) {
344
+ return false;
345
+ }
346
+ return true;
347
+ }
348
+ catch {
349
+ return false;
350
+ }
351
+ }
352
+ /**
353
+ * Gets the current encryption key.
354
+ *
355
+ * @public
356
+ * @returns {string} The encryption key
357
+ */
358
+ getEncryptionKey() {
359
+ return this.encryptionKey;
360
+ }
361
+ /**
362
+ * Gets the current algorithm.
363
+ *
364
+ * @public
365
+ * @returns {SupportedAlgorithm} The encryption algorithm
366
+ */
367
+ getAlgorithm() {
368
+ return this.algorithm;
369
+ }
370
+ /**
371
+ * Gets the current IV length.
372
+ *
373
+ * @public
374
+ * @returns {number} The IV length in bytes
375
+ */
376
+ getIvLength() {
377
+ return this.ivLength;
378
+ }
379
+ }
380
+
381
+ exports.CryptoUtils = CryptoUtils;
382
+ exports.DEFAULT_ALGORITHM = DEFAULT_ALGORITHM;
383
+ exports.DEFAULT_IV_LENGTH = DEFAULT_IV_LENGTH;
384
+ exports.IV_SEPARATOR = IV_SEPARATOR;
385
+ exports.REQUIRED_KEY_LENGTH = REQUIRED_KEY_LENGTH;
386
+ //# sourceMappingURL=crypto.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.utils.js","sources":["../../../../../../mods/security/src/utils/crypto.utils.ts"],"sourcesContent":[null],"names":["Interface","Mod"],"mappings":"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"}