xypriss-security 2.1.11 → 2.1.13

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.
@@ -51,15 +51,54 @@ export declare class Keys {
51
51
  */
52
52
  static rsaDecrypt(privateKey: string, encryptedHex: string): Promise<string>;
53
53
  /**
54
- * Encrypt a large file using high-performance chunked encryption.
55
- * Moved from EncryptionService for low-level core access.
54
+ * Encrypts a large file using high-performance, hardware-accelerated chunking.
55
+ *
56
+ * @description
57
+ * Processes files via a native encryption bridge using derived keys (PBKDF2).
58
+ * Implements a staging strategy to ensure data integrity: ciphertext is
59
+ * finalized with a 32-byte salt header before an atomic move to the target path.
60
+ *
61
+ * @param {string} inputPath - Absolute path to the source file.
62
+ * @param {string} outputPath - Target destination for the encrypted data.
63
+ * @param {string} key - Raw passphrase for cryptographic derivation.
64
+ * @param {object} [options={}] - Encryption parameters.
65
+ * @param {string} [options.algorithm="aes-256-gcm"] - Selection of the cipher suite.
66
+ * @param {number} [options.keyDerivationIterations=100000] - Cost factor for PBKDF2.
67
+ * @param {boolean} [options.quantumSafe=false] - If true, enforces Post-Quantum resistant ciphers.
68
+ *
69
+ * @throws {Error | SystemError} On bridge failure, I/O exhaustion, or permission issues.
70
+ * @returns {Promise<void>}
71
+ *
72
+ * @example
73
+ * await Cipher.crypto.encryptFile('./data.zip', './data.vault', 'secret-key');
56
74
  */
57
75
  static encryptFile(inputPath: string, outputPath: string, key: string, options?: any): Promise<void>;
58
76
  /**
59
- * Decrypt a large file.
60
- * Moved from EncryptionService for low-level core access.
77
+ * Decrypts a large file using PBKDF2 key derivation and a secure bridge.
78
+ *
79
+ * @description
80
+ * This method extracts a 32-byte salt from the input file header, derives a 256-bit key
81
+ * (100,000 iterations), and performs decryption via temporary staging files to
82
+ * ensure data integrity. The final output is moved atomically.
83
+ *
84
+ * @param {string} inputPath - Absolute path to the encrypted source file.
85
+ * @param {string} outputPath - Destination path for the decrypted plaintext.
86
+ * @param {string} key - The raw passphrase used for key derivation.
87
+ *
88
+ * @throws {Error} If the salt extraction fails or the decryption bridge returns an error.
89
+ * @throws {SystemError} If disk space is insufficient for temp files or if file moves fail.
90
+ *
91
+ * @returns {Promise<void>} Resolves once the file is successfully decrypted and moved to `outputPath`.
92
+ *
93
+ * @example
94
+ * await Cipher.crypto.decryptFile('./vault.enc', './vault.txt', 'super-secret-key');
61
95
  */
62
96
  static decryptFile(inputPath: string, outputPath: string, key: string): Promise<void>;
97
+ /**
98
+ * Moves a file atomically from src to dest.
99
+ * Handles EXDEV errors for cross-partition moves.
100
+ */
101
+ private static moveFileAtomic;
63
102
  }
64
103
  /**
65
104
  * Generates a high-entropy 4096-bit RSA key pair.
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/core/keys.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAKhD,qBAAa,IAAI;IACf;;;;;;;OAOG;WACiB,SAAS,CAC3B,KAAK,EAAE,MAAM,GAAG,UAAU,EAC1B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,MAAM,CAAC;IAuClB;;;OAGG;WACiB,kBAAkB,IAAI,OAAO,CAAC;QAChD,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAIF;;;;;OAKG;WACiB,OAAO,CACzB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC;IAIlB;;;;;;OAMG;WACiB,SAAS,CAC3B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC;IAInB;;;;;OAKG;WACiB,UAAU,CAC5B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC;IAIlB;;;;;OAKG;WACiB,UAAU,CAC5B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC;IAIlB;;;OAGG;WACiB,WAAW,CAC7B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,GAAQ,GAChB,OAAO,CAAC,IAAI,CAAC;IAgDhB;;;OAGG;WACiB,WAAW,CAC7B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC;CA6BjB;AAID;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,gCAA0B,CAAC;AAE1D;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,qBAAe,CAAC;AAEpC;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,uBAAiB,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,wBAAkB,CAAC;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,wBAAkB,CAAC;AAE1C;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,uBAAiB,CAAC"}
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/core/keys.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAKhD,qBAAa,IAAI;IACf;;;;;;;OAOG;WACiB,SAAS,CAC3B,KAAK,EAAE,MAAM,GAAG,UAAU,EAC1B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,MAAM,CAAC;IAuClB;;;OAGG;WACiB,kBAAkB,IAAI,OAAO,CAAC;QAChD,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAIF;;;;;OAKG;WACiB,OAAO,CACzB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC;IAIlB;;;;;;OAMG;WACiB,SAAS,CAC3B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC;IAInB;;;;;OAKG;WACiB,UAAU,CAC5B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC;IAIlB;;;;;OAKG;WACiB,UAAU,CAC5B,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC;IAIlB;;;;;;;;;;;;;;;;;;;;;OAqBG;WACiB,WAAW,CAC7B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,GAAQ,GAChB,OAAO,CAAC,IAAI,CAAC;IA2DhB;;;;;;;;;;;;;;;;;;;OAmBG;WACiB,WAAW,CAC7B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC;IAkDhB;;;OAGG;mBACkB,cAAc;CAmBpC;AAID;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,gCAA0B,CAAC;AAE1D;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,qBAAe,CAAC;AAEpC;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,uBAAiB,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,wBAAkB,CAAC;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,wBAAkB,CAAC;AAE1C;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,uBAAiB,CAAC"}
@@ -83,61 +83,151 @@ class Keys {
83
83
  return bridge_1.Bridge.rsaDecrypt(privateKey, encryptedHex);
84
84
  }
85
85
  /**
86
- * Encrypt a large file using high-performance chunked encryption.
87
- * Moved from EncryptionService for low-level core access.
86
+ * Encrypts a large file using high-performance, hardware-accelerated chunking.
87
+ *
88
+ * @description
89
+ * Processes files via a native encryption bridge using derived keys (PBKDF2).
90
+ * Implements a staging strategy to ensure data integrity: ciphertext is
91
+ * finalized with a 32-byte salt header before an atomic move to the target path.
92
+ *
93
+ * @param {string} inputPath - Absolute path to the source file.
94
+ * @param {string} outputPath - Target destination for the encrypted data.
95
+ * @param {string} key - Raw passphrase for cryptographic derivation.
96
+ * @param {object} [options={}] - Encryption parameters.
97
+ * @param {string} [options.algorithm="aes-256-gcm"] - Selection of the cipher suite.
98
+ * @param {number} [options.keyDerivationIterations=100000] - Cost factor for PBKDF2.
99
+ * @param {boolean} [options.quantumSafe=false] - If true, enforces Post-Quantum resistant ciphers.
100
+ *
101
+ * @throws {Error | SystemError} On bridge failure, I/O exhaustion, or permission issues.
102
+ * @returns {Promise<void>}
103
+ *
104
+ * @example
105
+ * await Cipher.crypto.encryptFile('./data.zip', './data.vault', 'secret-key');
88
106
  */
89
107
  static async encryptFile(inputPath, outputPath, key, options = {}) {
90
108
  const fs = require("fs");
91
- const { algorithm = "aes-256-gcm", keyDerivationIterations = 100000, quantumSafe = false, } = options;
92
- const SALT_LENGTH = 32;
93
- const salt = Random_1.Random.getRandomBytes(SALT_LENGTH);
94
- // Derive key using internal logic
95
- const derivedKeyHex = await bridge_1.Bridge.pbkdf2(key, salt.toUint8Array(), keyDerivationIterations, 32, "sha256");
96
- const derivedKey = Buffer.from(derivedKeyHex, "hex");
97
- const algoTarget = algorithm === "chacha20-poly1305" || quantumSafe ? "chacha20" : "aes";
98
- const tempPath = `${outputPath}.tmp`;
99
- const result = bridge_1.Bridge.encryptFile(inputPath, tempPath, derivedKey, algoTarget);
100
- if (result !== "OK")
101
- throw new Error(result);
102
- // Final file: Salt (32) + Encrypted Data
103
- const saltBuffer = Buffer.from(salt.toUint8Array());
104
- const finalOut = fs.createWriteStream(outputPath);
105
- finalOut.write(saltBuffer);
106
- const tempIn = fs.createReadStream(tempPath);
107
- await new Promise((resolve, reject) => {
108
- tempIn.pipe(finalOut);
109
- tempIn.on("end", resolve);
110
- tempIn.on("error", reject);
111
- });
112
- fs.unlinkSync(tempPath);
109
+ const os = require("os");
110
+ const path = require("path");
111
+ const { pipeline: pl } = require("stream");
112
+ const { promisify: pr } = require("util");
113
+ const pipelineAsync = pr(pl);
114
+ const id = Math.random().toString(36).substring(7);
115
+ const tmpDir = os.tmpdir();
116
+ const goTempPath = path.join(tmpDir, `xy-enc-${id}.go.tmp`);
117
+ const finalTempPath = path.join(tmpDir, `xy-enc-${id}.out.tmp`);
118
+ try {
119
+ const { algorithm = "aes-256-gcm", keyDerivationIterations = 100000, quantumSafe = false, } = options;
120
+ const SALT_LENGTH = 32;
121
+ const salt = Random_1.Random.getRandomBytes(SALT_LENGTH);
122
+ const derivedKeyHex = await bridge_1.Bridge.pbkdf2(key, salt.toUint8Array(), keyDerivationIterations, 32, "sha256");
123
+ const derivedKey = Buffer.from(derivedKeyHex, "hex");
124
+ const algoTarget = algorithm === "chacha20-poly1305" || quantumSafe ? "chacha20" : "aes";
125
+ // 1. Encrypt input into a temporary Go output file
126
+ const result = bridge_1.Bridge.encryptFile(inputPath, goTempPath, derivedKey, algoTarget);
127
+ if (result !== "OK")
128
+ throw new Error(result);
129
+ // 2. Combine Salt + Go Output into finalTempPath
130
+ fs.writeFileSync(finalTempPath, Buffer.from(salt.toUint8Array()));
131
+ const finalOut = fs.createWriteStream(finalTempPath, { flags: "a" });
132
+ const goTempIn = fs.createReadStream(goTempPath);
133
+ await pipelineAsync(goTempIn, finalOut);
134
+ // 3. Atomically move to final output
135
+ await this.moveFileAtomic(finalTempPath, outputPath);
136
+ }
137
+ catch (error) {
138
+ if (fs.existsSync(finalTempPath))
139
+ fs.unlinkSync(finalTempPath);
140
+ throw error;
141
+ }
142
+ finally {
143
+ if (fs.existsSync(goTempPath))
144
+ fs.unlinkSync(goTempPath);
145
+ }
113
146
  }
114
147
  /**
115
- * Decrypt a large file.
116
- * Moved from EncryptionService for low-level core access.
148
+ * Decrypts a large file using PBKDF2 key derivation and a secure bridge.
149
+ *
150
+ * @description
151
+ * This method extracts a 32-byte salt from the input file header, derives a 256-bit key
152
+ * (100,000 iterations), and performs decryption via temporary staging files to
153
+ * ensure data integrity. The final output is moved atomically.
154
+ *
155
+ * @param {string} inputPath - Absolute path to the encrypted source file.
156
+ * @param {string} outputPath - Destination path for the decrypted plaintext.
157
+ * @param {string} key - The raw passphrase used for key derivation.
158
+ *
159
+ * @throws {Error} If the salt extraction fails or the decryption bridge returns an error.
160
+ * @throws {SystemError} If disk space is insufficient for temp files or if file moves fail.
161
+ *
162
+ * @returns {Promise<void>} Resolves once the file is successfully decrypted and moved to `outputPath`.
163
+ *
164
+ * @example
165
+ * await Cipher.crypto.decryptFile('./vault.enc', './vault.txt', 'super-secret-key');
117
166
  */
118
167
  static async decryptFile(inputPath, outputPath, key) {
119
168
  const fs = require("fs");
120
- const fd = fs.openSync(inputPath, "r");
169
+ const os = require("os");
170
+ const path = require("path");
171
+ const { pipeline: pl2 } = require("stream");
172
+ const { promisify: pr2 } = require("util");
173
+ const pipelineAsync2 = pr2(pl2);
121
174
  const SALT_LENGTH = 32;
122
- const salt = Buffer.alloc(SALT_LENGTH);
123
- fs.readSync(fd, salt, 0, SALT_LENGTH, 0);
124
- fs.closeSync(fd);
125
- const derivedKeyHex = await bridge_1.Bridge.pbkdf2(key, salt, 100000, 32, "sha256");
126
- const derivedKey = Buffer.from(derivedKeyHex, "hex");
127
- const tempInPath = `${inputPath}.nosalt.tmp`;
128
- const finalInStream = fs.createReadStream(inputPath, {
129
- start: SALT_LENGTH,
130
- });
131
- const tempOutStream = fs.createWriteStream(tempInPath);
132
- await new Promise((resolve, reject) => {
133
- finalInStream.pipe(tempOutStream);
134
- finalInStream.on("end", resolve);
135
- finalInStream.on("error", reject);
136
- });
137
- const result = bridge_1.Bridge.decryptFile(tempInPath, outputPath, derivedKey);
138
- if (result !== "OK")
139
- throw new Error(result);
140
- fs.unlinkSync(tempInPath);
175
+ const id = Math.random().toString(36).substring(7);
176
+ const tmpDir = os.tmpdir();
177
+ const tempInPath = path.join(tmpDir, `xy-dec-${id}.in.tmp`);
178
+ const tempOutPath = path.join(tmpDir, `xy-dec-${id}.out.tmp`);
179
+ try {
180
+ const fd = fs.openSync(inputPath, "r");
181
+ const salt = Buffer.alloc(SALT_LENGTH);
182
+ fs.readSync(fd, salt, 0, SALT_LENGTH, 0);
183
+ fs.closeSync(fd);
184
+ const derivedKeyHex = await bridge_1.Bridge.pbkdf2(key, salt, 100000, 32, "sha256");
185
+ const derivedKey = Buffer.from(derivedKeyHex, "hex");
186
+ // 1. Prepare input for Go (remove salt) into tempInPath
187
+ const finalInStream = fs.createReadStream(inputPath, {
188
+ start: SALT_LENGTH,
189
+ });
190
+ const tempOutInStream = fs.createWriteStream(tempInPath);
191
+ await pipelineAsync2(finalInStream, tempOutInStream);
192
+ // 2. Decrypt from tempInPath to tempOutPath
193
+ const result = bridge_1.Bridge.decryptFile(tempInPath, tempOutPath, derivedKey);
194
+ if (result !== "OK")
195
+ throw new Error(result);
196
+ // 3. Atomically move to final output
197
+ await this.moveFileAtomic(tempOutPath, outputPath);
198
+ }
199
+ catch (error) {
200
+ if (fs.existsSync(tempOutPath))
201
+ fs.unlinkSync(tempOutPath);
202
+ throw error;
203
+ }
204
+ finally {
205
+ if (fs.existsSync(tempInPath))
206
+ fs.unlinkSync(tempInPath);
207
+ }
208
+ }
209
+ /**
210
+ * Moves a file atomically from src to dest.
211
+ * Handles EXDEV errors for cross-partition moves.
212
+ */
213
+ static async moveFileAtomic(src, dest) {
214
+ const fs = require("fs");
215
+ try {
216
+ // Fast path: rename (on same partition)
217
+ if (fs.existsSync(dest) && src !== dest)
218
+ fs.unlinkSync(dest);
219
+ fs.renameSync(src, dest);
220
+ }
221
+ catch (error) {
222
+ // Fallback path: copy + unlink (cross-partition)
223
+ if (error.code === "EXDEV") {
224
+ fs.copyFileSync(src, dest);
225
+ fs.unlinkSync(src);
226
+ }
227
+ else {
228
+ throw error;
229
+ }
230
+ }
141
231
  }
142
232
  }
143
233
  exports.Keys = Keys;
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/core/keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/core/keys.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "xypriss-security",
3
- "version": "2.1.11",
3
+ "version": "2.1.13",
4
4
  "description": "Advanced High-Performance Security Framework. Military-grade encryption, post-quantum resilience, and fortified data structures.",
5
5
  "author": {
6
6
  "name": "NEHONIX",
7
7
  "url": "https://nehonix.com"
8
8
  },
9
+ "main": "dist/src/index.js",
10
+ "types": "dist/src/index.d.ts",
9
11
  "files": [
10
12
  "dist",
11
13
  "scripts"
12
14
  ],
13
- "main": "dist/src/index.js",
14
- "types": "dist/src/index.d.ts",
15
15
  "scripts": {
16
- "build": "xfpm run build:ts",
16
+ "build": "xfpm run build:ts",
17
+ "build:all": "npm run build \u0026\u0026 npm run build:release",
17
18
  "build:core": "node scripts/build-core.js",
18
- "build:ts": "rimraf dist && tsc && mkdir -p dist/src/mods && cp src/mods/*.txt dist/src/mods/",
19
19
  "build:release": "bash scripts/release-build.sh",
20
- "build:all": "npm run build && npm run build:release",
20
+ "build:ts": "rimraf dist \u0026\u0026 tsc \u0026\u0026 mkdir -p dist/src/mods \u0026\u0026 cp src/mods/*.txt dist/src/mods/",
21
21
  "postinstall": "node scripts/build-core.js",
22
22
  "prepublishOnly": "npm run build",
23
23
  "test": "bun run lib/test_ultra_robust.ts"
@@ -33,6 +33,7 @@
33
33
  "@types/node": "^25.4.0",
34
34
  "bun": "^1.3.10",
35
35
  "rimraf": "^5.0.10",
36
- "typescript": "^5.9.3"
36
+ "typescript": "^5.9.3",
37
+ "xypriss": "^9.4.7"
37
38
  }
38
- }
39
+ }