lycheex-system 1.2.0 → 1.3.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/dist/index.d.ts CHANGED
@@ -55,6 +55,10 @@ export declare class SystemConfigClient {
55
55
  * 配置系统
56
56
  */
57
57
  configure(configCode?: string): Promise<ConfigResult>;
58
+ /**
59
+ * 验证License文件并提取数据
60
+ */
61
+ private verifyAndExtractLicenseData;
58
62
  /**
59
63
  * 检查状态
60
64
  */
@@ -67,13 +71,6 @@ export declare class SystemConfigClient {
67
71
  * 在线检查
68
72
  */
69
73
  checkOnline(): Promise<StatusResult>;
70
- /**
71
- * 停用配置
72
- */
73
- disable(reason?: string): Promise<{
74
- success: boolean;
75
- error?: string;
76
- }>;
77
74
  /**
78
75
  * 生成机器码 - 包含实例唯一性防止批量部署
79
76
  */
@@ -115,7 +112,7 @@ export declare class SystemConfigClient {
115
112
  */
116
113
  private removeConfigFile;
117
114
  /**
118
- * 解密配置文件 - RSA签名验证 + 文件完整性验证
115
+ * 解密配置文件 - 已验证的license数据
119
116
  */
120
117
  private decryptConfigFile;
121
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,oBAAoB,CAAsE;gBAEtF,MAAM,GAAE,YAAiB;IAMrC;;OAEG;YACW,aAAa;IA2B3B;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IA2BrC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKjD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAmC3C;;OAEG;IACG,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAmD3D;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IAoB1C;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;IA2B3C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IAsC1C;;OAEG;IACG,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA6B7E;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAyB5C;;OAEG;YACW,sBAAsB;IAuBpC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,cAAc;IA2BtB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAchC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IA6B5C;;OAEG;YACW,cAAc;IAoD5B;;OAEG;YACW,cAAc;IAiE5B;;OAEG;YACW,gBAAgB;IAQ9B;;OAEG;YACW,iBAAiB;CAgFhC;AAMD,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,oBAAoB,CACyC;gBAEzD,MAAM,GAAE,YAAiB;IAQrC;;OAEG;YACW,aAAa;IAiC3B;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAqCrC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAKjD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAuC3C;;OAEG;IACG,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA4D3D;;OAEG;YACW,2BAA2B;IAoFzC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IAoB1C;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;IA6B3C;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;IA0C1C;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IA6B5C;;OAEG;YACW,sBAAsB;IAwBpC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAmB3B;;OAEG;IACH,OAAO,CAAC,cAAc;IA2BtB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAchC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IA6B5C;;OAEG;YACW,cAAc;IAqD5B;;OAEG;YACW,cAAc;IA4D5B;;OAEG;YACW,gBAAgB;IAQ9B;;OAEG;YACW,iBAAiB;CAKhC;AAMD,eAAe,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -40,7 +40,7 @@ exports.SystemConfigClient = void 0;
40
40
  /**
41
41
  * 系统配置客户端 - 设备管理和配置验证
42
42
  */
43
- const { machineId } = require('node-machine-id');
43
+ const { machineId } = require("node-machine-id");
44
44
  const si = __importStar(require("systeminformation"));
45
45
  const fs = __importStar(require("fs"));
46
46
  const path = __importStar(require("path"));
@@ -52,35 +52,37 @@ class SystemConfigClient {
52
52
  constructor(config = {}) {
53
53
  this.serverPublicKey = null;
54
54
  this.serverUrl = null;
55
- this.defaultDecryptionKey = 'RAU9ZYEIZSG67RSMGGHF8DL069GGXUT8MOUO0FDEZHK94XP74MZD1386JPWRE7T7';
55
+ this.defaultDecryptionKey = "RAU9ZYEIZSG67RSMGGHF8DL069GGXUT8MOUO0FDEZHK94XP74MZD1386JPWRE7T7";
56
56
  this.config = config;
57
- this.configFilePath = config.configFilePath || path.join(process.cwd(), 'License');
58
- this.publicKeyPath = config.publicKeyPath || path.join(process.cwd(), '.public_key.pem');
57
+ this.configFilePath =
58
+ config.configFilePath || path.join(process.cwd(), "License");
59
+ this.publicKeyPath =
60
+ config.publicKeyPath || path.join(process.cwd(), ".public_key.pem");
59
61
  }
60
62
  /**
61
63
  * 读取和解析.env文件
62
64
  */
63
65
  async loadEnvConfig() {
64
- const envPath = this.config.envPath || path.join(process.cwd(), '.env');
66
+ const envPath = this.config.envPath || path.join(process.cwd(), ".env");
65
67
  try {
66
- const envContent = await fs.promises.readFile(envPath, 'utf8');
68
+ const envContent = await fs.promises.readFile(envPath, "utf8");
67
69
  const envConfig = {};
68
- envContent.split('\n').forEach(line => {
70
+ envContent.split("\n").forEach((line) => {
69
71
  const trimmedLine = line.trim();
70
- if (trimmedLine && !trimmedLine.startsWith('#')) {
71
- const [key, ...valueParts] = trimmedLine.split('=');
72
+ if (trimmedLine && !trimmedLine.startsWith("#")) {
73
+ const [key, ...valueParts] = trimmedLine.split("=");
72
74
  if (key && valueParts.length > 0) {
73
- envConfig[key.trim()] = valueParts.join('=').trim();
75
+ envConfig[key.trim()] = valueParts.join("=").trim();
74
76
  }
75
77
  }
76
78
  });
77
79
  return {
78
80
  activationCode: envConfig.ACTIVATION_CODE,
79
- activationServer: envConfig.ACTIVATION_SERVER
81
+ activationServer: envConfig.ACTIVATION_SERVER,
80
82
  };
81
83
  }
82
84
  catch (error) {
83
- console.warn('Failed to read .env file:', error instanceof Error ? error.message : 'Unknown error');
85
+ console.warn("Failed to read .env file:", error instanceof Error ? error.message : "Unknown error");
84
86
  return {};
85
87
  }
86
88
  }
@@ -99,16 +101,16 @@ class SystemConfigClient {
99
101
  // 从.env文件读取加密的服务器URL
100
102
  const envConfig = await this.loadEnvConfig();
101
103
  if (!envConfig.activationServer) {
102
- throw new Error('ACTIVATION_SERVER not found in .env file and no serverUrl provided in config');
104
+ throw new Error("ACTIVATION_SERVER not found in .env file and no serverUrl provided in config");
103
105
  }
104
106
  try {
105
107
  const decryptionKey = this.config.decryptionKey || this.defaultDecryptionKey;
106
108
  this.serverUrl = device_utils_1.CryptoUtils.decrypt(envConfig.activationServer, decryptionKey);
107
- console.log('🔓 Decrypted server URL successfully');
109
+ console.log("🔓 Decrypted server URL successfully");
108
110
  return this.serverUrl;
109
111
  }
110
112
  catch (error) {
111
- throw new Error(`Failed to decrypt ACTIVATION_SERVER: ${error instanceof Error ? error.message : 'Unknown error'}`);
113
+ throw new Error(`Failed to decrypt ACTIVATION_SERVER: ${error instanceof Error ? error.message : "Unknown error"}`);
112
114
  }
113
115
  }
114
116
  /**
@@ -127,7 +129,7 @@ class SystemConfigClient {
127
129
  }
128
130
  // 尝试从本地文件读取
129
131
  try {
130
- const publicKey = await fs.promises.readFile(this.publicKeyPath, 'utf8');
132
+ const publicKey = await fs.promises.readFile(this.publicKeyPath, "utf8");
131
133
  this.serverPublicKey = publicKey;
132
134
  return publicKey;
133
135
  }
@@ -137,16 +139,16 @@ class SystemConfigClient {
137
139
  try {
138
140
  const serverUrl = await this.getServerUrl();
139
141
  const response = await axios_1.default.get(`${serverUrl}/api/public-key`, {
140
- timeout: this.config.timeout || 30000
142
+ timeout: this.config.timeout || 30000,
141
143
  });
142
144
  if (response.data.success) {
143
145
  this.serverPublicKey = response.data.publicKey;
144
146
  // 保存到本地文件
145
- await fs.promises.writeFile(this.publicKeyPath, this.serverPublicKey, 'utf8');
147
+ await fs.promises.writeFile(this.publicKeyPath, this.serverPublicKey, "utf8");
146
148
  return this.serverPublicKey;
147
149
  }
148
150
  else {
149
- throw new Error('Failed to get public key from server');
151
+ throw new Error("Failed to get public key from server");
150
152
  }
151
153
  }
152
154
  catch (error) {
@@ -163,7 +165,7 @@ class SystemConfigClient {
163
165
  if (!envConfigCode) {
164
166
  return {
165
167
  success: false,
166
- error: 'Config code not provided and ACTIVATION_CODE not found in .env file'
168
+ error: "Config code not provided and ACTIVATION_CODE not found in .env file",
167
169
  };
168
170
  }
169
171
  configCode = envConfigCode;
@@ -176,33 +178,96 @@ class SystemConfigClient {
176
178
  const response = await axios_1.default.post(`${serverUrl}/api/activate`, {
177
179
  licenseCode: configCode,
178
180
  machineCode,
179
- machineInfo
181
+ machineInfo,
180
182
  }, {
181
- timeout: this.config.timeout || 30000
183
+ timeout: this.config.timeout || 30000,
182
184
  });
183
185
  if (response.data.success) {
184
- // 保存配置文件
185
- await this.saveConfigFile(response.data.data.licenseFile);
186
+ // 验证并保存配置文件
187
+ const licenseFile = response.data.data.licenseFile;
188
+ const verifiedData = await this.verifyAndExtractLicenseData(licenseFile);
189
+ await this.saveConfigFile(verifiedData);
186
190
  return {
187
191
  success: true,
188
192
  configId: response.data.data.activationId,
189
- expiresAt: new Date(response.data.data.expiresAt)
193
+ expiresAt: new Date(response.data.data.expiresAt),
190
194
  };
191
195
  }
192
196
  else {
193
197
  return {
194
198
  success: false,
195
- error: response.data.message
199
+ error: response.data.message,
196
200
  };
197
201
  }
198
202
  }
199
203
  catch (error) {
200
204
  return {
201
205
  success: false,
202
- error: error.message || 'Activation failed'
206
+ error: error.message || "Activation failed",
203
207
  };
204
208
  }
205
209
  }
210
+ /**
211
+ * 验证License文件并提取数据
212
+ */
213
+ async verifyAndExtractLicenseData(licenseFile) {
214
+ if (licenseFile.header?.version !== "2.0") {
215
+ throw new Error("Unsupported license file version");
216
+ }
217
+ const { payload, signature, integrity } = licenseFile;
218
+ if (!payload || !signature) {
219
+ throw new Error("Invalid license file structure");
220
+ }
221
+ // 第一层验证:文件完整性验证
222
+ if (integrity && this.serverPublicKey) {
223
+ console.log("🔍 Performing file integrity verification...");
224
+ // 重建基础license文件进行哈希计算
225
+ const baseLicense = {
226
+ header: licenseFile.header,
227
+ payload: licenseFile.payload,
228
+ signature: licenseFile.signature,
229
+ };
230
+ const licenseString = JSON.stringify(baseLicense, null, 2);
231
+ const calculatedHash = crypto
232
+ .createHash("sha256")
233
+ .update(licenseString, "utf8")
234
+ .digest("hex");
235
+ if (calculatedHash !== integrity.fileHash) {
236
+ throw new Error("File integrity check failed: hash mismatch");
237
+ }
238
+ // 验证完整性签名
239
+ const integrityData = {
240
+ fileHash: integrity.fileHash,
241
+ timestamp: licenseFile.header.timestamp,
242
+ version: licenseFile.header.version,
243
+ };
244
+ const integrityValid = crypto.verify("sha256", Buffer.from(JSON.stringify(integrityData)), {
245
+ key: this.serverPublicKey,
246
+ padding: crypto.constants.RSA_PKCS1_PSS_PADDING,
247
+ }, Buffer.from(integrity.signature, "base64"));
248
+ if (!integrityValid) {
249
+ throw new Error("File integrity signature verification failed");
250
+ }
251
+ console.log("✅ File integrity verification passed");
252
+ }
253
+ // Base64解码
254
+ const decodedPayload = Buffer.from(payload, "base64").toString("utf8");
255
+ const licenseData = JSON.parse(decodedPayload);
256
+ // 第二层验证:RSA签名验证(对原始payload数据)
257
+ if (this.serverPublicKey) {
258
+ console.log("🔍 Performing RSA signature verification...");
259
+ const isValid = crypto.verify("sha256", Buffer.from(decodedPayload), {
260
+ key: this.serverPublicKey,
261
+ padding: crypto.constants.RSA_PKCS1_PSS_PADDING,
262
+ }, Buffer.from(signature, "base64"));
263
+ if (!isValid) {
264
+ throw new Error("RSA signature verification failed");
265
+ }
266
+ console.log("✅ RSA signature verification passed");
267
+ }
268
+ console.log("🛡️ All security verifications passed");
269
+ return licenseData;
270
+ }
206
271
  /**
207
272
  * 检查状态
208
273
  */
@@ -221,7 +286,7 @@ class SystemConfigClient {
221
286
  catch (error) {
222
287
  return {
223
288
  valid: false,
224
- error: error.message || 'Validation failed'
289
+ error: error.message || "Validation failed",
225
290
  };
226
291
  }
227
292
  }
@@ -231,22 +296,22 @@ class SystemConfigClient {
231
296
  async checkOffline() {
232
297
  const configFile = await this.readConfigFile();
233
298
  if (!configFile) {
234
- return { valid: false, error: 'Config file not found' };
299
+ return { valid: false, error: "Config file not found" };
235
300
  }
236
301
  const configData = await this.decryptConfigFile(configFile);
237
302
  const currentMachineCode = await this.generateMachineCode();
238
303
  if (configData.machineCode !== currentMachineCode) {
239
- return { valid: false, error: 'Machine code mismatch' };
304
+ return { valid: false, error: "Machine code mismatch" };
240
305
  }
241
306
  const expiresAt = new Date(configData.expiresAt);
242
307
  if (new Date() > expiresAt) {
243
- return { valid: false, error: 'Config expired' };
308
+ return { valid: false, error: "Config expired" };
244
309
  }
245
310
  const remainingDays = Math.ceil((expiresAt.getTime() - new Date().getTime()) / (1000 * 60 * 60 * 24));
246
311
  return {
247
312
  valid: true,
248
313
  expiresAt,
249
- remainingDays
314
+ remainingDays,
250
315
  };
251
316
  }
252
317
  /**
@@ -256,68 +321,38 @@ class SystemConfigClient {
256
321
  try {
257
322
  const configFile = await this.readConfigFile();
258
323
  if (!configFile) {
259
- return { valid: false, error: 'Config file not found' };
324
+ return { valid: false, error: "Config file not found" };
260
325
  }
261
326
  const configData = await this.decryptConfigFile(configFile);
262
327
  const machineCode = await this.generateMachineCode();
263
328
  const serverUrl = await this.getServerUrl();
264
329
  const response = await axios_1.default.post(`${serverUrl}/api/validate`, {
265
330
  activationId: configData.activationId,
266
- machineCode
331
+ machineCode,
267
332
  }, {
268
- timeout: this.config.timeout || 30000
333
+ timeout: this.config.timeout || 30000,
269
334
  });
270
335
  if (response.data.success && response.data.data.valid) {
271
336
  return {
272
337
  valid: true,
273
338
  expiresAt: new Date(response.data.data.expiresAt),
274
- remainingDays: response.data.data.remainingDays
339
+ remainingDays: response.data.data.remainingDays,
275
340
  };
276
341
  }
277
342
  else {
278
343
  return {
279
344
  valid: false,
280
- error: response.data.message || 'Online check failed'
345
+ error: response.data.message || "Online check failed",
281
346
  };
282
347
  }
283
348
  }
284
349
  catch (error) {
285
350
  return {
286
351
  valid: false,
287
- error: error.message || 'Online check failed'
352
+ error: error.message || "Online check failed",
288
353
  };
289
354
  }
290
355
  }
291
- /**
292
- * 停用配置
293
- */
294
- async disable(reason) {
295
- try {
296
- const configFile = await this.readConfigFile();
297
- if (!configFile) {
298
- return { success: false, error: 'Config file not found' };
299
- }
300
- const configData = await this.decryptConfigFile(configFile);
301
- const machineCode = await this.generateMachineCode();
302
- const serverUrl = await this.getServerUrl();
303
- const response = await axios_1.default.post(`${serverUrl}/api/deactivate`, {
304
- activationId: configData.activationId,
305
- machineCode,
306
- reason
307
- });
308
- if (response.data.success) {
309
- // 删除本地配置文件
310
- await this.removeConfigFile();
311
- return { success: true };
312
- }
313
- else {
314
- return { success: false, error: response.data.message };
315
- }
316
- }
317
- catch (error) {
318
- return { success: false, error: error.message || 'Disable failed' };
319
- }
320
- }
321
356
  /**
322
357
  * 生成机器码 - 包含实例唯一性防止批量部署
323
358
  */
@@ -327,16 +362,17 @@ class SystemConfigClient {
327
362
  const combinedData = {
328
363
  hardware: hardwareFingerprint,
329
364
  instance: instanceIdentity,
330
- timestamp: this.getInstallationTimestamp()
365
+ timestamp: this.getInstallationTimestamp(),
331
366
  };
332
367
  const dataString = JSON.stringify(combinedData, Object.keys(combinedData).sort());
333
- const machineCode = crypto.createHash('sha256')
368
+ const machineCode = crypto
369
+ .createHash("sha256")
334
370
  .update(dataString)
335
- .digest('hex')
371
+ .digest("hex")
336
372
  .substring(0, 32);
337
- console.log('🔧 Machine code generated:');
373
+ console.log("🔧 Machine code generated:");
338
374
  console.log(`📁 Directory: ${instanceIdentity.workingDirectory}`);
339
- console.log(`🐳 Container: ${instanceIdentity.containerId || 'host'}`);
375
+ console.log(`🐳 Container: ${instanceIdentity.containerId || "host"}`);
340
376
  console.log(`🔖 Instance: ${instanceIdentity.instanceName}`);
341
377
  console.log(`🆔 Code: ${machineCode}`);
342
378
  return machineCode;
@@ -349,18 +385,19 @@ class SystemConfigClient {
349
385
  const [cpu, osInfo, system] = await Promise.all([
350
386
  si.cpu(),
351
387
  si.osInfo(),
352
- si.system()
388
+ si.system(),
353
389
  ]);
354
390
  const hardwareInfo = {
355
391
  machineId: deviceId,
356
392
  cpu: `${cpu.manufacturer}-${cpu.brand}-${cpu.cores}`,
357
393
  os: `${osInfo.platform}-${osInfo.arch}-${osInfo.distro}`,
358
394
  system: `${system.manufacturer}-${system.model}`,
359
- networkInterfaces: this.getNetworkFingerprint()
395
+ networkInterfaces: this.getNetworkFingerprint(),
360
396
  };
361
- return crypto.createHash('sha256')
397
+ return crypto
398
+ .createHash("sha256")
362
399
  .update(JSON.stringify(hardwareInfo))
363
- .digest('hex')
400
+ .digest("hex")
364
401
  .substring(0, 16);
365
402
  }
366
403
  /**
@@ -370,12 +407,12 @@ class SystemConfigClient {
370
407
  const identity = {
371
408
  workingDirectory: process.cwd(),
372
409
  containerId: this.getContainerId(),
373
- instanceName: this.config.instanceId || process.env.INSTANCE_ID || 'default',
374
- listenPort: parseInt(process.env.PORT || '') || undefined
410
+ instanceName: this.config.instanceId || process.env.INSTANCE_ID || "default",
411
+ listenPort: parseInt(process.env.PORT || "") || undefined,
375
412
  };
376
413
  // 生成实例UUID
377
- const instanceData = `${identity.workingDirectory}-${identity.containerId || 'host'}-${identity.instanceName}`;
378
- const namespace = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
414
+ const instanceData = `${identity.workingDirectory}-${identity.containerId || "host"}-${identity.instanceName}`;
415
+ const namespace = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
379
416
  identity.instanceUUID = (0, uuid_1.v5)(instanceData, namespace);
380
417
  return identity;
381
418
  }
@@ -388,16 +425,16 @@ class SystemConfigClient {
388
425
  return process.env.CONTAINER_ID;
389
426
  }
390
427
  // 检查 /.dockerenv 文件
391
- if (fs.existsSync('/.dockerenv')) {
392
- const os = require('os');
428
+ if (fs.existsSync("/.dockerenv")) {
429
+ const os = require("os");
393
430
  const hostname = os.hostname();
394
431
  if (hostname.length === 12 && /^[a-f0-9]+$/.test(hostname)) {
395
432
  return hostname;
396
433
  }
397
434
  }
398
435
  // 读取 /proc/self/cgroup (Linux)
399
- if (fs.existsSync('/proc/self/cgroup')) {
400
- const cgroup = fs.readFileSync('/proc/self/cgroup', 'utf8');
436
+ if (fs.existsSync("/proc/self/cgroup")) {
437
+ const cgroup = fs.readFileSync("/proc/self/cgroup", "utf8");
401
438
  const containerMatch = cgroup.match(/\/docker\/([a-f0-9]{64})/);
402
439
  if (containerMatch) {
403
440
  return containerMatch[1].substring(0, 12);
@@ -409,32 +446,32 @@ class SystemConfigClient {
409
446
  * 获取网络接口指纹
410
447
  */
411
448
  getNetworkFingerprint() {
412
- const os = require('os');
449
+ const os = require("os");
413
450
  const interfaces = os.networkInterfaces();
414
451
  const macs = [];
415
452
  Object.values(interfaces).forEach((iface) => {
416
453
  if (iface) {
417
454
  iface.forEach((config) => {
418
- if (config.mac && config.mac !== '00:00:00:00:00:00') {
455
+ if (config.mac && config.mac !== "00:00:00:00:00:00") {
419
456
  macs.push(config.mac);
420
457
  }
421
458
  });
422
459
  }
423
460
  });
424
- return macs.sort().join('-');
461
+ return macs.sort().join("-");
425
462
  }
426
463
  /**
427
464
  * 获取首次安装时间戳(持久化)
428
465
  */
429
466
  getInstallationTimestamp() {
430
- const os = require('os');
431
- const timestampFile = path.join(os.tmpdir(), '.lycheex-install-time');
467
+ const os = require("os");
468
+ const timestampFile = path.join(os.tmpdir(), ".lycheex-install-time");
432
469
  if (fs.existsSync(timestampFile)) {
433
- const timestamp = fs.readFileSync(timestampFile, 'utf8');
470
+ const timestamp = fs.readFileSync(timestampFile, "utf8");
434
471
  return parseInt(timestamp);
435
472
  }
436
473
  const now = Date.now();
437
- fs.writeFileSync(timestampFile, now.toString(), 'utf8');
474
+ fs.writeFileSync(timestampFile, now.toString(), "utf8");
438
475
  return now;
439
476
  }
440
477
  /**
@@ -445,7 +482,7 @@ class SystemConfigClient {
445
482
  const [cpu, osInfo, mem] = await Promise.all([
446
483
  si.cpu(),
447
484
  si.osInfo(),
448
- si.mem()
485
+ si.mem(),
449
486
  ]);
450
487
  return {
451
488
  os: `${osInfo.platform} ${osInfo.release}`,
@@ -453,18 +490,18 @@ class SystemConfigClient {
453
490
  memory: `${Math.round(mem.total / 1024 / 1024 / 1024)}GB`,
454
491
  platform: osInfo.platform,
455
492
  arch: osInfo.arch,
456
- nodeVersion: process.version
493
+ nodeVersion: process.version,
457
494
  };
458
495
  }
459
496
  catch (error) {
460
- const os = require('os');
497
+ const os = require("os");
461
498
  return {
462
499
  os: `${os.platform()} ${os.release()}`,
463
500
  cpu: os.cpus()[0].model,
464
501
  memory: `${Math.round(os.totalmem() / 1024 / 1024 / 1024)}GB`,
465
502
  platform: os.platform(),
466
503
  arch: os.arch(),
467
- nodeVersion: process.version
504
+ nodeVersion: process.version,
468
505
  };
469
506
  }
470
507
  }
@@ -477,40 +514,41 @@ class SystemConfigClient {
477
514
  const machineCode = await this.generateMachineCode();
478
515
  // 生成加密密钥(结合机器码和默认密钥)
479
516
  const keyMaterial = `${this.defaultDecryptionKey}-${machineCode}`;
480
- const encryptionKey = crypto.createHash('sha256')
517
+ const encryptionKey = crypto
518
+ .createHash("sha256")
481
519
  .update(keyMaterial)
482
520
  .digest();
483
521
  // 生成随机初始化向量
484
522
  const iv = crypto.randomBytes(16);
485
523
  // 创建加密器
486
- const cipher = crypto.createCipheriv('aes-256-cbc', encryptionKey, iv);
524
+ const cipher = crypto.createCipheriv("aes-256-cbc", encryptionKey, iv);
487
525
  // 加密数据
488
526
  const jsonData = JSON.stringify(configFile);
489
527
  const encrypted = Buffer.concat([
490
- cipher.update(jsonData, 'utf8'),
491
- cipher.final()
528
+ cipher.update(jsonData, "utf8"),
529
+ cipher.final(),
492
530
  ]);
493
531
  // 生成HMAC用于完整性验证
494
- const hmac = crypto.createHmac('sha256', encryptionKey);
532
+ const hmac = crypto.createHmac("sha256", encryptionKey);
495
533
  hmac.update(encrypted);
496
534
  const authTag = hmac.digest();
497
535
  // 组合最终的加密文件格式
498
536
  // [魔术字节(4)] [版本(1)] [IV(16)] [认证标签(32)] [加密数据]
499
- const magicBytes = Buffer.from('SYCF', 'utf8'); // System Config File
537
+ const magicBytes = Buffer.from("SYCF", "utf8"); // System Config File
500
538
  const version = Buffer.from([0x01]); // 版本1
501
539
  const encryptedFile = Buffer.concat([
502
540
  magicBytes,
503
541
  version,
504
542
  iv,
505
543
  authTag,
506
- encrypted
544
+ encrypted,
507
545
  ]);
508
546
  // 保存为二进制文件
509
547
  await fs.promises.writeFile(this.configFilePath, encryptedFile);
510
- console.log('🔐 配置文件已加密保存');
548
+ console.log("🔐 配置文件已加密保存");
511
549
  }
512
550
  catch (error) {
513
- console.error('保存加密配置文件失败:', error);
551
+ console.error("保存加密配置文件失败:", error);
514
552
  throw error;
515
553
  }
516
554
  }
@@ -522,14 +560,14 @@ class SystemConfigClient {
522
560
  // 读取二进制文件
523
561
  const encryptedFile = await fs.promises.readFile(this.configFilePath);
524
562
  // 验证文件格式
525
- const magicBytes = encryptedFile.slice(0, 4).toString('utf8');
526
- if (magicBytes !== 'SYCF') {
527
- throw new Error('Invalid config file format');
563
+ const magicBytes = encryptedFile.slice(0, 4).toString("utf8");
564
+ if (magicBytes !== "SYCF") {
565
+ throw new Error("Invalid config file format");
528
566
  }
529
567
  // 读取版本
530
568
  const version = encryptedFile[4];
531
569
  if (version !== 0x01) {
532
- throw new Error('Unsupported config file version');
570
+ throw new Error("Unsupported config file version");
533
571
  }
534
572
  // 提取各部分
535
573
  const iv = encryptedFile.slice(5, 21);
@@ -539,37 +577,28 @@ class SystemConfigClient {
539
577
  const machineCode = await this.generateMachineCode();
540
578
  // 生成解密密钥
541
579
  const keyMaterial = `${this.defaultDecryptionKey}-${machineCode}`;
542
- const decryptionKey = crypto.createHash('sha256')
580
+ const decryptionKey = crypto
581
+ .createHash("sha256")
543
582
  .update(keyMaterial)
544
583
  .digest();
545
584
  // 验证HMAC
546
- const hmac = crypto.createHmac('sha256', decryptionKey);
585
+ const hmac = crypto.createHmac("sha256", decryptionKey);
547
586
  hmac.update(encrypted);
548
587
  const calculatedTag = hmac.digest();
549
588
  if (!authTag.equals(calculatedTag)) {
550
- throw new Error('Config file integrity check failed');
589
+ throw new Error("Config file integrity check failed");
551
590
  }
552
591
  // 解密数据
553
- const decipher = crypto.createDecipheriv('aes-256-cbc', decryptionKey, iv);
592
+ const decipher = crypto.createDecipheriv("aes-256-cbc", decryptionKey, iv);
554
593
  const decrypted = Buffer.concat([
555
594
  decipher.update(encrypted),
556
- decipher.final()
595
+ decipher.final(),
557
596
  ]);
558
597
  // 解析JSON
559
- const jsonData = decrypted.toString('utf8');
598
+ const jsonData = decrypted.toString("utf8");
560
599
  return JSON.parse(jsonData);
561
600
  }
562
601
  catch (error) {
563
- // 如果是新格式解密失败,尝试读取旧格式(向后兼容)
564
- if (error.message === 'Invalid config file format') {
565
- try {
566
- const data = await fs.promises.readFile(this.configFilePath, 'utf8');
567
- return JSON.parse(data);
568
- }
569
- catch {
570
- return null;
571
- }
572
- }
573
602
  return null;
574
603
  }
575
604
  }
@@ -585,62 +614,12 @@ class SystemConfigClient {
585
614
  }
586
615
  }
587
616
  /**
588
- * 解密配置文件 - RSA签名验证 + 文件完整性验证
617
+ * 解密配置文件 - 已验证的license数据
589
618
  */
590
619
  async decryptConfigFile(configFile) {
591
- if (configFile.header?.version !== '2.0') {
592
- throw new Error('Unsupported config file version');
593
- }
594
- const { payload, signature, integrity } = configFile;
595
- if (!payload || !signature) {
596
- throw new Error('Invalid config file structure');
597
- }
598
- // 第一层验证:文件完整性验证
599
- if (integrity && this.serverPublicKey) {
600
- console.log('🔍 Performing file integrity verification...');
601
- // 重建基础license文件进行哈希计算
602
- const baseLicense = {
603
- header: configFile.header,
604
- payload: configFile.payload,
605
- signature: configFile.signature
606
- };
607
- const licenseString = JSON.stringify(baseLicense, null, 2);
608
- const calculatedHash = require('crypto').createHash('sha256').update(licenseString, 'utf8').digest('hex');
609
- if (calculatedHash !== integrity.fileHash) {
610
- throw new Error('File integrity check failed: hash mismatch');
611
- }
612
- // 验证完整性签名
613
- const integrityData = {
614
- fileHash: integrity.fileHash,
615
- timestamp: configFile.header.timestamp,
616
- version: configFile.header.version
617
- };
618
- const integrityValid = require('crypto').verify('sha256', Buffer.from(JSON.stringify(integrityData)), {
619
- key: this.serverPublicKey,
620
- padding: require('crypto').constants.RSA_PKCS1_PSS_PADDING
621
- }, Buffer.from(integrity.signature, 'base64'));
622
- if (!integrityValid) {
623
- throw new Error('File integrity signature verification failed');
624
- }
625
- console.log('✅ File integrity verification passed');
626
- }
627
- // Base64解码
628
- const decodedPayload = Buffer.from(payload, 'base64').toString('utf8');
629
- const licenseData = JSON.parse(decodedPayload);
630
- // 第二层验证:RSA签名验证(对原始payload数据)
631
- if (this.serverPublicKey) {
632
- console.log('🔍 Performing RSA signature verification...');
633
- const isValid = require('crypto').verify('sha256', Buffer.from(decodedPayload), {
634
- key: this.serverPublicKey,
635
- padding: require('crypto').constants.RSA_PKCS1_PSS_PADDING
636
- }, Buffer.from(signature, 'base64'));
637
- if (!isValid) {
638
- throw new Error('RSA signature verification failed');
639
- }
640
- console.log('✅ RSA signature verification passed');
641
- }
642
- console.log('🛡️ All security verifications passed');
643
- return licenseData;
620
+ // 现在configFile是从readConfigFile()中AES解密得到的已验证license数据
621
+ // 不需要再次进行RSA验证,因为在保存时已经验证过了
622
+ return configFile;
644
623
  }
645
624
  }
646
625
  exports.SystemConfigClient = SystemConfigClient;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lycheex-system",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "System configuration and device management utilities",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",