@naylence/advanced-security 0.3.5-test.101 → 0.3.5-test.102

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.
Files changed (127) hide show
  1. package/dist/browser/index.js +13385 -12988
  2. package/dist/browser/index.js.map +1 -1
  3. package/dist/cjs/browser.js +1 -0
  4. package/dist/cjs/browser.js.map +1 -1
  5. package/dist/cjs/naylence/fame/factory-manifest.js +14 -0
  6. package/dist/cjs/naylence/fame/factory-manifest.js.map +1 -1
  7. package/dist/cjs/naylence/fame/security/cert/browser-csr.js +103 -0
  8. package/dist/cjs/naylence/fame/security/cert/browser-csr.js.map +1 -0
  9. package/dist/cjs/naylence/fame/security/cert/ca-service-client.js +331 -24
  10. package/dist/cjs/naylence/fame/security/cert/ca-service-client.js.map +1 -1
  11. package/dist/cjs/naylence/fame/security/cert/ca-types.js +8 -0
  12. package/dist/cjs/naylence/fame/security/cert/ca-types.js.map +1 -1
  13. package/dist/cjs/naylence/fame/security/cert/csr-types.js +2 -0
  14. package/dist/cjs/naylence/fame/security/cert/csr-types.js.map +1 -0
  15. package/dist/cjs/naylence/fame/security/cert/default-ca-service.js +102 -1
  16. package/dist/cjs/naylence/fame/security/cert/default-ca-service.js.map +1 -1
  17. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager.js +240 -45
  18. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager.js.map +1 -1
  19. package/dist/cjs/naylence/fame/security/cert/index.js +4 -1
  20. package/dist/cjs/naylence/fame/security/cert/index.js.map +1 -1
  21. package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js +2 -5
  22. package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js.map +1 -1
  23. package/dist/cjs/naylence/fame/security/cert/node-ed25519-csr.js +156 -0
  24. package/dist/cjs/naylence/fame/security/cert/node-ed25519-csr.js.map +1 -0
  25. package/dist/cjs/naylence/fame/security/cert/oid-constants.js +7 -0
  26. package/dist/cjs/naylence/fame/security/cert/oid-constants.js.map +1 -0
  27. package/dist/cjs/naylence/fame/security/cert/trust-store/anchor-utils.js +119 -0
  28. package/dist/cjs/naylence/fame/security/cert/trust-store/anchor-utils.js.map +1 -0
  29. package/dist/cjs/naylence/fame/security/cert/trust-store/env-provider.js +123 -0
  30. package/dist/cjs/naylence/fame/security/cert/trust-store/env-provider.js.map +1 -0
  31. package/dist/cjs/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js +220 -0
  32. package/dist/cjs/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js.map +1 -0
  33. package/dist/cjs/naylence/fame/security/cert/trust-store/http-bundle-provider.js +411 -0
  34. package/dist/cjs/naylence/fame/security/cert/trust-store/http-bundle-provider.js.map +1 -0
  35. package/dist/cjs/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js +2 -0
  36. package/dist/cjs/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js.map +1 -0
  37. package/dist/cjs/naylence/fame/security/cert/trust-store/static-bundle-provider.js +37 -0
  38. package/dist/cjs/naylence/fame/security/cert/trust-store/static-bundle-provider.js.map +1 -0
  39. package/dist/cjs/naylence/fame/security/cert/trust-store/trust-store-provider.js +2 -0
  40. package/dist/cjs/naylence/fame/security/cert/trust-store/trust-store-provider.js.map +1 -0
  41. package/dist/cjs/naylence/fame/security/cert/util.js +1 -2
  42. package/dist/cjs/naylence/fame/security/cert/util.js.map +1 -1
  43. package/dist/cjs/version.js +2 -2
  44. package/dist/esm/browser.js +1 -0
  45. package/dist/esm/browser.js.map +1 -1
  46. package/dist/esm/naylence/fame/factory-manifest.js +14 -0
  47. package/dist/esm/naylence/fame/factory-manifest.js.map +1 -1
  48. package/dist/esm/naylence/fame/security/cert/browser-csr.js +103 -0
  49. package/dist/esm/naylence/fame/security/cert/browser-csr.js.map +1 -0
  50. package/dist/esm/naylence/fame/security/cert/ca-server.js +35 -0
  51. package/dist/esm/naylence/fame/security/cert/ca-server.js.map +1 -1
  52. package/dist/esm/naylence/fame/security/cert/ca-service-client.js +331 -24
  53. package/dist/esm/naylence/fame/security/cert/ca-service-client.js.map +1 -1
  54. package/dist/esm/naylence/fame/security/cert/ca-types.js +8 -0
  55. package/dist/esm/naylence/fame/security/cert/ca-types.js.map +1 -1
  56. package/dist/esm/naylence/fame/security/cert/csr-types.js +2 -0
  57. package/dist/esm/naylence/fame/security/cert/csr-types.js.map +1 -0
  58. package/dist/esm/naylence/fame/security/cert/default-ca-service.js +102 -1
  59. package/dist/esm/naylence/fame/security/cert/default-ca-service.js.map +1 -1
  60. package/dist/esm/naylence/fame/security/cert/default-certificate-manager.js +240 -45
  61. package/dist/esm/naylence/fame/security/cert/default-certificate-manager.js.map +1 -1
  62. package/dist/esm/naylence/fame/security/cert/index.js +4 -1
  63. package/dist/esm/naylence/fame/security/cert/index.js.map +1 -1
  64. package/dist/esm/naylence/fame/security/cert/internal-ca-service.js +2 -5
  65. package/dist/esm/naylence/fame/security/cert/internal-ca-service.js.map +1 -1
  66. package/dist/esm/naylence/fame/security/cert/node-ed25519-csr.js +156 -0
  67. package/dist/esm/naylence/fame/security/cert/node-ed25519-csr.js.map +1 -0
  68. package/dist/esm/naylence/fame/security/cert/oid-constants.js +7 -0
  69. package/dist/esm/naylence/fame/security/cert/oid-constants.js.map +1 -0
  70. package/dist/esm/naylence/fame/security/cert/trust-store/anchor-utils.js +119 -0
  71. package/dist/esm/naylence/fame/security/cert/trust-store/anchor-utils.js.map +1 -0
  72. package/dist/esm/naylence/fame/security/cert/trust-store/env-provider.js +123 -0
  73. package/dist/esm/naylence/fame/security/cert/trust-store/env-provider.js.map +1 -0
  74. package/dist/esm/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js +220 -0
  75. package/dist/esm/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js.map +1 -0
  76. package/dist/esm/naylence/fame/security/cert/trust-store/http-bundle-provider.js +411 -0
  77. package/dist/esm/naylence/fame/security/cert/trust-store/http-bundle-provider.js.map +1 -0
  78. package/dist/esm/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js +2 -0
  79. package/dist/esm/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js.map +1 -0
  80. package/dist/esm/naylence/fame/security/cert/trust-store/static-bundle-provider.js +37 -0
  81. package/dist/esm/naylence/fame/security/cert/trust-store/static-bundle-provider.js.map +1 -0
  82. package/dist/esm/naylence/fame/security/cert/trust-store/trust-store-provider.js +2 -0
  83. package/dist/esm/naylence/fame/security/cert/trust-store/trust-store-provider.js.map +1 -0
  84. package/dist/esm/naylence/fame/security/cert/util.js +1 -2
  85. package/dist/esm/naylence/fame/security/cert/util.js.map +1 -1
  86. package/dist/esm/version.js +2 -2
  87. package/dist/types/browser.d.ts +2 -0
  88. package/dist/types/browser.d.ts.map +1 -1
  89. package/dist/types/naylence/fame/factory-manifest.d.ts +2 -0
  90. package/dist/types/naylence/fame/factory-manifest.d.ts.map +1 -1
  91. package/dist/types/naylence/fame/security/cert/browser-csr.d.ts +9 -0
  92. package/dist/types/naylence/fame/security/cert/browser-csr.d.ts.map +1 -0
  93. package/dist/types/naylence/fame/security/cert/ca-server.d.ts.map +1 -1
  94. package/dist/types/naylence/fame/security/cert/ca-service-client.d.ts.map +1 -1
  95. package/dist/types/naylence/fame/security/cert/ca-types.d.ts +32 -0
  96. package/dist/types/naylence/fame/security/cert/ca-types.d.ts.map +1 -1
  97. package/dist/types/naylence/fame/security/cert/csr-types.d.ts +5 -0
  98. package/dist/types/naylence/fame/security/cert/csr-types.d.ts.map +1 -0
  99. package/dist/types/naylence/fame/security/cert/default-ca-service.d.ts +2 -1
  100. package/dist/types/naylence/fame/security/cert/default-ca-service.d.ts.map +1 -1
  101. package/dist/types/naylence/fame/security/cert/default-certificate-manager.d.ts +33 -1
  102. package/dist/types/naylence/fame/security/cert/default-certificate-manager.d.ts.map +1 -1
  103. package/dist/types/naylence/fame/security/cert/index.d.ts +5 -1
  104. package/dist/types/naylence/fame/security/cert/index.d.ts.map +1 -1
  105. package/dist/types/naylence/fame/security/cert/internal-ca-service.d.ts +0 -3
  106. package/dist/types/naylence/fame/security/cert/internal-ca-service.d.ts.map +1 -1
  107. package/dist/types/naylence/fame/security/cert/node-ed25519-csr.d.ts +9 -0
  108. package/dist/types/naylence/fame/security/cert/node-ed25519-csr.d.ts.map +1 -0
  109. package/dist/types/naylence/fame/security/cert/oid-constants.d.ts +7 -0
  110. package/dist/types/naylence/fame/security/cert/oid-constants.d.ts.map +1 -0
  111. package/dist/types/naylence/fame/security/cert/trust-store/anchor-utils.d.ts +12 -0
  112. package/dist/types/naylence/fame/security/cert/trust-store/anchor-utils.d.ts.map +1 -0
  113. package/dist/types/naylence/fame/security/cert/trust-store/env-provider.d.ts +7 -0
  114. package/dist/types/naylence/fame/security/cert/trust-store/env-provider.d.ts.map +1 -0
  115. package/dist/types/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.d.ts +9 -0
  116. package/dist/types/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.d.ts.map +1 -0
  117. package/dist/types/naylence/fame/security/cert/trust-store/http-bundle-provider.d.ts +31 -0
  118. package/dist/types/naylence/fame/security/cert/trust-store/http-bundle-provider.d.ts.map +1 -0
  119. package/dist/types/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.d.ts +2 -0
  120. package/dist/types/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.d.ts.map +1 -0
  121. package/dist/types/naylence/fame/security/cert/trust-store/static-bundle-provider.d.ts +13 -0
  122. package/dist/types/naylence/fame/security/cert/trust-store/static-bundle-provider.d.ts.map +1 -0
  123. package/dist/types/naylence/fame/security/cert/trust-store/trust-store-provider.d.ts +37 -0
  124. package/dist/types/naylence/fame/security/cert/trust-store/trust-store-provider.d.ts.map +1 -0
  125. package/dist/types/naylence/fame/security/cert/util.d.ts.map +1 -1
  126. package/dist/types/version.d.ts +1 -1
  127. package/package.json +8 -5
@@ -4,6 +4,8 @@
4
4
  * Wraps InternalCAService (CASigningService) with automatic credential
5
5
  * loading from environment variables and test CA fallback.
6
6
  */
7
+ import { sha256 } from "@noble/hashes/sha256.js";
8
+ import { X509Certificate } from "@peculiar/x509";
7
9
  import { CAService } from "./ca-types.js";
8
10
  import { CASigningService, createTestCA } from "./internal-ca-service.js";
9
11
  /**
@@ -133,7 +135,7 @@ export class DefaultCAService extends CAService {
133
135
  }
134
136
  // Node.js environment
135
137
  try {
136
- const fs = await import("fs/promises");
138
+ const fs = await import("node:fs/promises");
137
139
  const stats = await fs.stat(filePath);
138
140
  if (stats.isFile()) {
139
141
  return await fs.readFile(filePath, "utf-8");
@@ -259,5 +261,104 @@ export class DefaultCAService extends CAService {
259
261
  throw error;
260
262
  }
261
263
  }
264
+ async getTrustBundle() {
265
+ const credentials = await this.getCACredentials();
266
+ const rootCandidates = [];
267
+ if (credentials.rootCaCertPem) {
268
+ rootCandidates.push(credentials.rootCaCertPem);
269
+ }
270
+ if (credentials.signingCertPem) {
271
+ rootCandidates.push(credentials.signingCertPem);
272
+ }
273
+ if (credentials.intermediateChainPem) {
274
+ rootCandidates.push(...this.parseCertificateChain(credentials.intermediateChainPem));
275
+ }
276
+ if (rootCandidates.length === 0) {
277
+ return null;
278
+ }
279
+ const roots = buildTrustBundleRoots(rootCandidates);
280
+ if (roots.length === 0) {
281
+ return null;
282
+ }
283
+ const issuedAt = new Date().toISOString();
284
+ const validUntil = computeEarliestExpiry(roots);
285
+ const version = computeBundleVersion(roots);
286
+ return {
287
+ version,
288
+ issuedAt,
289
+ validUntil,
290
+ roots,
291
+ };
292
+ }
293
+ }
294
+ function normalizeCertificatePem(pem) {
295
+ const trimmed = pem.trim();
296
+ return trimmed.endsWith("\n") ? trimmed : `${trimmed}\n`;
297
+ }
298
+ function analyseCertificate(pem) {
299
+ try {
300
+ const cert = new X509Certificate(pem);
301
+ const details = cert;
302
+ const notBefore = details.notBefore instanceof Date
303
+ ? details.notBefore.toISOString()
304
+ : undefined;
305
+ const notAfter = details.notAfter instanceof Date
306
+ ? details.notAfter.toISOString()
307
+ : undefined;
308
+ return {
309
+ notBefore,
310
+ notAfter,
311
+ };
312
+ }
313
+ catch {
314
+ return {};
315
+ }
316
+ }
317
+ function buildTrustBundleRoots(candidates) {
318
+ const seen = new Set();
319
+ const roots = [];
320
+ for (const candidate of candidates) {
321
+ if (!candidate) {
322
+ continue;
323
+ }
324
+ const normalized = normalizeCertificatePem(candidate);
325
+ if (seen.has(normalized)) {
326
+ continue;
327
+ }
328
+ seen.add(normalized);
329
+ const metadata = analyseCertificate(normalized);
330
+ roots.push({
331
+ pem: normalized,
332
+ ...metadata,
333
+ });
334
+ }
335
+ return roots;
336
+ }
337
+ function computeEarliestExpiry(roots) {
338
+ let earliest = null;
339
+ for (const root of roots) {
340
+ if (!root.notAfter) {
341
+ continue;
342
+ }
343
+ const timestamp = Date.parse(root.notAfter);
344
+ if (Number.isNaN(timestamp)) {
345
+ continue;
346
+ }
347
+ if (earliest === null || timestamp < earliest) {
348
+ earliest = timestamp;
349
+ }
350
+ }
351
+ return earliest === null ? null : new Date(earliest).toISOString();
352
+ }
353
+ function computeBundleVersion(roots) {
354
+ const encoder = new TextEncoder();
355
+ const serialized = roots.map((root) => root.pem).join("\n");
356
+ const digest = sha256(encoder.encode(serialized));
357
+ const hex = Array.from(digest)
358
+ .map((byte) => byte.toString(16).padStart(2, "0"))
359
+ .join("");
360
+ const versionHex = hex.slice(0, 12);
361
+ const value = Number.parseInt(versionHex, 16);
362
+ return Number.isNaN(value) ? 1 : Math.max(1, value);
262
363
  }
263
364
  //# sourceMappingURL=default-ca-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"default-ca-service.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/default-ca-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default-ca-service.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/default-ca-service.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import { SigningMaterial } from "@naylence/core";
2
- import { AuthInjectionStrategyFactory, getLogger, SigningConfigClass, } from "@naylence/runtime/node";
2
+ import { AuthInjectionStrategyFactory, getLogger, SigningConfigClass, } from "@naylence/runtime";
3
3
  import { CAServiceClient, } from "./ca-service-client.js";
4
4
  import { CertificateRequestError } from "./ca-types.js";
5
5
  import { GRANT_PURPOSE_CA_SIGN } from "./grants.js";
6
6
  import { validateJwkX5cCertificate } from "./util.js";
7
+ import { createEd25519CsrFromPem } from "./node-ed25519-csr.js";
7
8
  const logger = getLogger("naylence.fame.security.cert.default_certificate_manager");
8
9
  const ENV_VAR_FAME_CA_CERTS = "FAME_CA_CERTS";
9
10
  const CONNECTION_GRANTS_CAMEL = "connectionGrants";
@@ -18,6 +19,10 @@ export class DefaultCertificateManager {
18
19
  this.caServiceUrl = options.caServiceUrl ?? null;
19
20
  this.cryptoProviderOverride =
20
21
  options.cryptoProvider ?? options.crypto_provider ?? null;
22
+ this.certificateMaterialResolver = normalizeCertificateMaterialResolver(options.certificateMaterial ?? null);
23
+ this.trustStorePemResolver = normalizeTrustStorePemResolver(options.trustStorePem ?? null);
24
+ this.certificatePersistenceHook =
25
+ normalizeCertificatePersistenceHook(options.persistCertificateMaterial ?? null);
21
26
  }
22
27
  setSigning(signing) {
23
28
  this.signing = normalizeSigningConfig(signing);
@@ -134,11 +139,14 @@ export class DefaultCertificateManager {
134
139
  });
135
140
  }
136
141
  }
142
+ if (!material) {
143
+ material = await this.resolveCertificateMaterialFromInjectedSources(cryptoProvider, nodeId);
144
+ }
137
145
  if (!material) {
138
146
  logger.debug("attempting_certificate_resolution_from_environment", {
139
147
  system_id: nodeId,
140
148
  });
141
- material = await resolveCertificateMaterial();
149
+ material = await resolveCertificateMaterialFromEnvironment();
142
150
  }
143
151
  if (!material) {
144
152
  logger.warning("certificate_material_not_found", {
@@ -148,7 +156,7 @@ export class DefaultCertificateManager {
148
156
  });
149
157
  return false;
150
158
  }
151
- const stored = storeCertificateMaterial(cryptoProvider, material);
159
+ const stored = await this.storeCertificateMaterial(cryptoProvider, material, nodeId);
152
160
  if (!stored) {
153
161
  logger.warning("certificate_storage_not_supported", {
154
162
  system_id: nodeId,
@@ -232,6 +240,49 @@ export class DefaultCertificateManager {
232
240
  });
233
241
  return true;
234
242
  }
243
+ async resolveCertificateMaterialFromInjectedSources(provider, nodeId) {
244
+ const providerMaterial = await this.resolveCertificateMaterialFromProvider(provider, nodeId);
245
+ if (providerMaterial) {
246
+ logger.debug("certificate_material_resolved_from_provider", {
247
+ system_id: nodeId,
248
+ });
249
+ return providerMaterial;
250
+ }
251
+ if (this.certificateMaterialResolver) {
252
+ try {
253
+ const material = await this.certificateMaterialResolver();
254
+ if (material) {
255
+ logger.debug("certificate_material_resolved_from_options", {
256
+ system_id: nodeId,
257
+ });
258
+ return material;
259
+ }
260
+ }
261
+ catch (error) {
262
+ logger.debug("certificate_material_option_resolution_failed", {
263
+ system_id: nodeId,
264
+ error: error instanceof Error ? error.message : String(error),
265
+ });
266
+ }
267
+ }
268
+ return null;
269
+ }
270
+ async resolveCertificateMaterialFromProvider(provider, nodeId) {
271
+ if (typeof provider.resolveCertificateMaterial !== "function") {
272
+ return null;
273
+ }
274
+ try {
275
+ const material = await provider.resolveCertificateMaterial();
276
+ return normalizeCertificateMaterial(material ?? null);
277
+ }
278
+ catch (error) {
279
+ logger.debug("provider_certificate_material_resolution_failed", {
280
+ system_id: nodeId,
281
+ error: error instanceof Error ? error.message : String(error),
282
+ });
283
+ return null;
284
+ }
285
+ }
235
286
  getCaSignGrant(connectionGrants) {
236
287
  if (!Array.isArray(connectionGrants)) {
237
288
  return null;
@@ -279,22 +330,8 @@ export class DefaultCertificateManager {
279
330
  const logicals = Array.isArray(welcomeFrame.acceptedLogicals)
280
331
  ? welcomeFrame.acceptedLogicals.filter((value) => typeof value === "string")
281
332
  : [];
282
- if (typeof provider.createCsr !== "function") {
283
- logger.warning("crypto_provider_missing_create_csr", {
284
- node_id: nodeId,
285
- });
286
- return null;
287
- }
288
- let csrPem;
289
- try {
290
- const result = provider.createCsr(nodeId, physicalPath, logicals);
291
- csrPem = typeof result === "string" ? result : await result;
292
- }
293
- catch (error) {
294
- logger.error("csr_generation_failed", {
295
- node_id: nodeId,
296
- error: error instanceof Error ? error.message : String(error),
297
- });
333
+ const csrPem = await this.buildCertificateSigningRequest(provider, nodeId, physicalPath, logicals);
334
+ if (!csrPem) {
298
335
  return null;
299
336
  }
300
337
  const caServiceUrl = options?.caServiceUrl ?? this.caServiceUrl ?? grant.url;
@@ -376,11 +413,11 @@ export class DefaultCertificateManager {
376
413
  return AuthInjectionStrategyFactory.createAuthInjectionStrategy(normalizedConfig);
377
414
  }
378
415
  async validateProviderCertificate(provider, nodeId) {
379
- const trustStorePem = await resolveTrustStorePem();
416
+ const { pem: trustStorePem, reason } = await this.resolveTrustStorePemValue(provider, nodeId);
380
417
  if (!trustStorePem) {
381
418
  logger.error("trust_anchor_validation_failed", {
382
419
  node_id: nodeId,
383
- reason: `${ENV_VAR_FAME_CA_CERTS}_not_set`,
420
+ reason: reason ?? "trust_store_unavailable",
384
421
  });
385
422
  return false;
386
423
  }
@@ -448,6 +485,125 @@ export class DefaultCertificateManager {
448
485
  return false;
449
486
  }
450
487
  }
488
+ async resolveTrustStorePemValue(provider, nodeId) {
489
+ const providerPem = await this.resolveTrustStorePemFromProvider(provider, nodeId);
490
+ if (providerPem) {
491
+ logger.debug("trust_store_resolved_from_provider", {
492
+ node_id: nodeId,
493
+ });
494
+ return { pem: providerPem };
495
+ }
496
+ if (this.trustStorePemResolver) {
497
+ try {
498
+ const pem = await this.trustStorePemResolver();
499
+ const normalized = normalizePemOrNull(pem);
500
+ if (normalized) {
501
+ logger.debug("trust_store_resolved_from_options", {
502
+ node_id: nodeId,
503
+ });
504
+ return { pem: normalized };
505
+ }
506
+ }
507
+ catch (error) {
508
+ logger.debug("trust_store_option_resolution_failed", {
509
+ node_id: nodeId,
510
+ error: error instanceof Error ? error.message : String(error),
511
+ });
512
+ }
513
+ }
514
+ const envPem = await resolveTrustStorePemFromEnvironment();
515
+ return {
516
+ pem: envPem,
517
+ reason: envPem ? undefined : `${ENV_VAR_FAME_CA_CERTS}_not_set`,
518
+ };
519
+ }
520
+ async resolveTrustStorePemFromProvider(provider, nodeId) {
521
+ if (typeof provider.resolveTrustStorePem !== "function") {
522
+ return null;
523
+ }
524
+ try {
525
+ const pem = await provider.resolveTrustStorePem();
526
+ return normalizePemOrNull(pem);
527
+ }
528
+ catch (error) {
529
+ logger.debug("provider_trust_store_resolution_failed", {
530
+ node_id: nodeId,
531
+ error: error instanceof Error ? error.message : String(error),
532
+ });
533
+ return null;
534
+ }
535
+ }
536
+ async storeCertificateMaterial(provider, material, nodeId) {
537
+ let stored = false;
538
+ if (typeof provider.storeSignedCertificate === "function") {
539
+ try {
540
+ await provider.storeSignedCertificate(material.certificatePem, material.certificateChainPem);
541
+ stored = true;
542
+ }
543
+ catch (error) {
544
+ logger.warning("failed_to_store_certificate", {
545
+ error: error instanceof Error ? error.message : String(error),
546
+ });
547
+ }
548
+ }
549
+ const persistenceHooks = [];
550
+ if (typeof provider.persistSignedCertificate === "function") {
551
+ persistenceHooks.push((hookMaterial, context) => provider.persistSignedCertificate(hookMaterial, context));
552
+ }
553
+ if (this.certificatePersistenceHook) {
554
+ persistenceHooks.push(this.certificatePersistenceHook);
555
+ }
556
+ for (const hook of persistenceHooks) {
557
+ try {
558
+ await hook(material, { nodeId });
559
+ stored = true;
560
+ }
561
+ catch (error) {
562
+ logger.debug("certificate_persistence_hook_failed", {
563
+ node_id: nodeId,
564
+ error: error instanceof Error ? error.message : String(error),
565
+ });
566
+ }
567
+ }
568
+ return stored;
569
+ }
570
+ async buildCertificateSigningRequest(provider, nodeId, physicalPath, logicals) {
571
+ const trimmedPath = physicalPath.trim();
572
+ if (!trimmedPath) {
573
+ logger.warning("certificate_request_missing_physical_path", {
574
+ node_id: nodeId,
575
+ });
576
+ return null;
577
+ }
578
+ const pemSource = provider;
579
+ const privateKeyPem = pemSource.signingPrivatePem?.trim() ?? "";
580
+ const publicKeyPem = pemSource.signingPublicPem?.trim() ?? "";
581
+ if (!privateKeyPem || !publicKeyPem) {
582
+ logger.error("crypto_provider_missing_signing_material", {
583
+ node_id: nodeId,
584
+ has_private: Boolean(privateKeyPem),
585
+ has_public: Boolean(publicKeyPem),
586
+ });
587
+ return null;
588
+ }
589
+ const sanitizedLogicals = logicals.filter((value) => typeof value === "string" && value.trim().length > 0);
590
+ try {
591
+ const { csrPem } = await createEd25519CsrFromPem({
592
+ privateKeyPem,
593
+ publicKeyPem,
594
+ commonName: nodeId,
595
+ logicals: sanitizedLogicals,
596
+ });
597
+ return csrPem;
598
+ }
599
+ catch (error) {
600
+ logger.error("csr_generation_failed", {
601
+ node_id: nodeId,
602
+ error: error instanceof Error ? error.message : String(error),
603
+ });
604
+ return null;
605
+ }
606
+ }
451
607
  }
452
608
  function normalizeSigningConfig(value) {
453
609
  if (value instanceof SigningConfigClass) {
@@ -458,7 +614,49 @@ function normalizeSigningConfig(value) {
458
614
  }
459
615
  return new SigningConfigClass();
460
616
  }
461
- async function resolveCertificateMaterial() {
617
+ function normalizeCertificateMaterial(material) {
618
+ if (!material) {
619
+ return null;
620
+ }
621
+ const certificatePem = normalizePemOrNull(material.certificatePem);
622
+ if (!certificatePem) {
623
+ return null;
624
+ }
625
+ const certificateChainPem = normalizePemOrNull(material.certificateChainPem ?? null);
626
+ return {
627
+ certificatePem,
628
+ certificateChainPem,
629
+ };
630
+ }
631
+ function normalizeCertificateMaterialResolver(source) {
632
+ if (!source) {
633
+ return null;
634
+ }
635
+ if (typeof source === "function") {
636
+ return async () => normalizeCertificateMaterial(await source());
637
+ }
638
+ const normalized = normalizeCertificateMaterial(source);
639
+ return normalized ? async () => normalized : null;
640
+ }
641
+ function normalizeTrustStorePemResolver(source) {
642
+ if (!source) {
643
+ return null;
644
+ }
645
+ if (typeof source === "function") {
646
+ return async () => normalizePemOrNull(await source());
647
+ }
648
+ const normalized = normalizePemOrNull(source);
649
+ return normalized ? async () => normalized : null;
650
+ }
651
+ function normalizeCertificatePersistenceHook(hook) {
652
+ if (!hook) {
653
+ return null;
654
+ }
655
+ return async (material, context) => {
656
+ await hook(material, context);
657
+ };
658
+ }
659
+ async function resolveCertificateMaterialFromEnvironment() {
462
660
  const certificatePem = await resolvePemFromEnvironment("FAME_NODE_CERT_PEM", "FAME_NODE_CERT_FILE");
463
661
  if (!certificatePem) {
464
662
  return null;
@@ -474,8 +672,9 @@ async function resolvePemFromEnvironment(envVar, fileVar) {
474
672
  return null;
475
673
  }
476
674
  const inlineValue = process.env?.[envVar];
477
- if (inlineValue && inlineValue.trim().length > 0) {
478
- return normalizePem(inlineValue);
675
+ const inline = normalizePemOrNull(inlineValue ?? null);
676
+ if (inline) {
677
+ return inline;
479
678
  }
480
679
  const filePath = process.env?.[fileVar];
481
680
  if (!filePath || filePath.trim().length === 0) {
@@ -490,7 +689,7 @@ async function resolvePemFromEnvironment(envVar, fileVar) {
490
689
  try {
491
690
  const fs = await import("node:fs/promises");
492
691
  const content = await fs.readFile(filePath, "utf8");
493
- return normalizePem(content);
692
+ return normalizePemOrNull(content);
494
693
  }
495
694
  catch (error) {
496
695
  logger.warning("failed_to_read_certificate_file", {
@@ -503,6 +702,13 @@ async function resolvePemFromEnvironment(envVar, fileVar) {
503
702
  function normalizePem(value) {
504
703
  return value.replace(/\r/g, "").trim();
505
704
  }
705
+ function normalizePemOrNull(value) {
706
+ if (!value) {
707
+ return null;
708
+ }
709
+ const normalized = normalizePem(value);
710
+ return normalized.length > 0 ? normalized : null;
711
+ }
506
712
  function hasProcessEnv() {
507
713
  return typeof process !== "undefined" && !!process?.env;
508
714
  }
@@ -534,21 +740,6 @@ function providerHasCertificate(provider) {
534
740
  }
535
741
  return false;
536
742
  }
537
- function storeCertificateMaterial(provider, material) {
538
- if (typeof provider.storeSignedCertificate !== "function") {
539
- return false;
540
- }
541
- try {
542
- provider.storeSignedCertificate(material.certificatePem, material.certificateChainPem);
543
- return true;
544
- }
545
- catch (error) {
546
- logger.warning("failed_to_store_certificate", {
547
- error: error instanceof Error ? error.message : String(error),
548
- });
549
- return false;
550
- }
551
- }
552
743
  function readFrameValue(frame, ...keys) {
553
744
  const record = frame;
554
745
  for (const key of keys) {
@@ -603,7 +794,7 @@ function normalizeAuthConfig(candidate) {
603
794
  }
604
795
  return normalized;
605
796
  }
606
- async function resolveTrustStorePem() {
797
+ async function resolveTrustStorePemFromEnvironment() {
607
798
  if (!hasProcessEnv()) {
608
799
  return null;
609
800
  }
@@ -611,8 +802,9 @@ async function resolveTrustStorePem() {
611
802
  if (!rawValue || rawValue.trim().length === 0) {
612
803
  return null;
613
804
  }
614
- if (rawValue.trim().startsWith("-----BEGIN")) {
615
- return rawValue.replace(/\r/g, "").trim();
805
+ const trimmed = rawValue.trim();
806
+ if (trimmed.startsWith("-----BEGIN")) {
807
+ return normalizePem(trimmed);
616
808
  }
617
809
  if (!isNodeProcess()) {
618
810
  logger.debug("trust_store_file_unavailable_in_browser", {
@@ -620,11 +812,14 @@ async function resolveTrustStorePem() {
620
812
  });
621
813
  return null;
622
814
  }
623
- const filePath = rawValue.trim();
815
+ const filePath = trimmed;
816
+ if (!filePath) {
817
+ return null;
818
+ }
624
819
  try {
625
820
  const fs = await import("node:fs/promises");
626
821
  const content = await fs.readFile(filePath, "utf8");
627
- return content.replace(/\r/g, "").trim();
822
+ return normalizePemOrNull(content);
628
823
  }
629
824
  catch (error) {
630
825
  logger.error("failed_to_read_trust_store", {