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

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 (136) hide show
  1. package/dist/browser/index.js +3438 -1058
  2. package/dist/browser/index.js.map +1 -1
  3. package/dist/cjs/browser.js +5 -18
  4. package/dist/cjs/browser.js.map +1 -1
  5. package/dist/cjs/index.js +6 -5
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/naylence/fame/factory-manifest.js +4 -1
  8. package/dist/cjs/naylence/fame/factory-manifest.js.map +1 -1
  9. package/dist/cjs/naylence/fame/security/cert/ca-service-client.js +15 -9
  10. package/dist/cjs/naylence/fame/security/cert/ca-service-client.js.map +1 -1
  11. package/dist/cjs/naylence/fame/security/cert/ca-service-factory.js +11 -7
  12. package/dist/cjs/naylence/fame/security/cert/ca-service-factory.js.map +1 -1
  13. package/dist/cjs/naylence/fame/security/cert/ca-types.js +7 -2
  14. package/dist/cjs/naylence/fame/security/cert/ca-types.js.map +1 -1
  15. package/dist/cjs/naylence/fame/security/cert/default-ca-service-factory.js +10 -6
  16. package/dist/cjs/naylence/fame/security/cert/default-ca-service-factory.js.map +1 -1
  17. package/dist/cjs/naylence/fame/security/cert/default-ca-service.js +66 -29
  18. package/dist/cjs/naylence/fame/security/cert/default-ca-service.js.map +1 -1
  19. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager-factory.js +16 -12
  20. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager-factory.js.map +1 -1
  21. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager.js +59 -22
  22. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager.js.map +1 -1
  23. package/dist/cjs/naylence/fame/security/cert/grants.js +4 -1
  24. package/dist/cjs/naylence/fame/security/cert/grants.js.map +1 -1
  25. package/dist/cjs/naylence/fame/security/cert/index.js +50 -10
  26. package/dist/cjs/naylence/fame/security/cert/index.js.map +1 -1
  27. package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js +122 -79
  28. package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js.map +1 -1
  29. package/dist/cjs/naylence/fame/security/cert/util.js +30 -26
  30. package/dist/cjs/naylence/fame/security/cert/util.js.map +1 -1
  31. package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js +14 -10
  32. package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js.map +1 -1
  33. package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager.js +48 -59
  34. package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager.js.map +1 -1
  35. package/dist/cjs/naylence/fame/security/encryption/channel/index.js +7 -2
  36. package/dist/cjs/naylence/fame/security/encryption/channel/index.js.map +1 -1
  37. package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager-factory.js +14 -10
  38. package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager-factory.js.map +1 -1
  39. package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager.js +11 -7
  40. package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager.js.map +1 -1
  41. package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager-factory.js +11 -7
  42. package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager-factory.js.map +1 -1
  43. package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager.js +23 -19
  44. package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager.js.map +1 -1
  45. package/dist/cjs/naylence/fame/security/encryption/encryption-manager-registry.js +15 -9
  46. package/dist/cjs/naylence/fame/security/encryption/encryption-manager-registry.js.map +1 -1
  47. package/dist/cjs/naylence/fame/security/encryption/index.js +15 -6
  48. package/dist/cjs/naylence/fame/security/encryption/index.js.map +1 -1
  49. package/dist/cjs/naylence/fame/security/encryption/sealed/index.js +7 -2
  50. package/dist/cjs/naylence/fame/security/encryption/sealed/index.js.map +1 -1
  51. package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js +12 -8
  52. package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js.map +1 -1
  53. package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js +30 -26
  54. package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js.map +1 -1
  55. package/dist/cjs/naylence/fame/security/index.js +10 -5
  56. package/dist/cjs/naylence/fame/security/index.js.map +1 -1
  57. package/dist/cjs/naylence/fame/security/keys/index.js +8 -2
  58. package/dist/cjs/naylence/fame/security/keys/index.js.map +1 -1
  59. package/dist/cjs/naylence/fame/security/keys/x5c-key-manager-factory.js +13 -9
  60. package/dist/cjs/naylence/fame/security/keys/x5c-key-manager-factory.js.map +1 -1
  61. package/dist/cjs/naylence/fame/security/keys/x5c-key-manager.js +52 -16
  62. package/dist/cjs/naylence/fame/security/keys/x5c-key-manager.js.map +1 -1
  63. package/dist/cjs/naylence/fame/security/register-advanced-security-factories.js +45 -36
  64. package/dist/cjs/naylence/fame/security/register-advanced-security-factories.js.map +1 -1
  65. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-signer-factory.js +43 -6
  66. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-signer-factory.js.map +1 -1
  67. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js +12 -8
  68. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js.map +1 -1
  69. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier.js +70 -33
  70. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier.js.map +1 -1
  71. package/dist/cjs/naylence/fame/stickiness/aft-helper.js +13 -8
  72. package/dist/cjs/naylence/fame/stickiness/aft-helper.js.map +1 -1
  73. package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js +16 -12
  74. package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js.map +1 -1
  75. package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js +14 -10
  76. package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js.map +1 -1
  77. package/dist/cjs/naylence/fame/stickiness/aft-model.js +14 -6
  78. package/dist/cjs/naylence/fame/stickiness/aft-model.js.map +1 -1
  79. package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js +16 -12
  80. package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js.map +1 -1
  81. package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager.js +18 -13
  82. package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager.js.map +1 -1
  83. package/dist/cjs/naylence/fame/stickiness/aft-signer.js +30 -23
  84. package/dist/cjs/naylence/fame/stickiness/aft-signer.js.map +1 -1
  85. package/dist/cjs/naylence/fame/stickiness/aft-utils.js +8 -3
  86. package/dist/cjs/naylence/fame/stickiness/aft-utils.js.map +1 -1
  87. package/dist/cjs/naylence/fame/stickiness/aft-verifier.js +28 -21
  88. package/dist/cjs/naylence/fame/stickiness/aft-verifier.js.map +1 -1
  89. package/dist/cjs/naylence/fame/stickiness/index.js +39 -10
  90. package/dist/cjs/naylence/fame/stickiness/index.js.map +1 -1
  91. package/dist/cjs/naylence/fame/stickiness/stickiness-mode.js +7 -3
  92. package/dist/cjs/naylence/fame/stickiness/stickiness-mode.js.map +1 -1
  93. package/dist/cjs/naylence/fame/welcome/advanced-welcome-service-factory.js +18 -14
  94. package/dist/cjs/naylence/fame/welcome/advanced-welcome-service-factory.js.map +1 -1
  95. package/dist/cjs/naylence/fame/welcome/advanced-welcome-service.js +18 -14
  96. package/dist/cjs/naylence/fame/welcome/advanced-welcome-service.js.map +1 -1
  97. package/dist/cjs/naylence/fame/welcome/index.js +8 -2
  98. package/dist/cjs/naylence/fame/welcome/index.js.map +1 -1
  99. package/dist/cjs/plugin.js +10 -8
  100. package/dist/cjs/plugin.js.map +1 -1
  101. package/dist/esm/browser.js +2 -18
  102. package/dist/esm/browser.js.map +1 -1
  103. package/dist/esm/index.js +0 -2
  104. package/dist/esm/index.js.map +1 -1
  105. package/dist/esm/naylence/fame/security/cert/default-certificate-manager-factory.js +2 -2
  106. package/dist/esm/naylence/fame/security/cert/default-certificate-manager-factory.js.map +1 -1
  107. package/dist/esm/naylence/fame/security/cert/default-certificate-manager.js +1 -1
  108. package/dist/esm/naylence/fame/security/cert/default-certificate-manager.js.map +1 -1
  109. package/dist/esm/naylence/fame/security/cert/internal-ca-service.js +1 -1
  110. package/dist/esm/naylence/fame/security/cert/internal-ca-service.js.map +1 -1
  111. package/dist/esm/naylence/fame/security/cert/util.js +1 -1
  112. package/dist/esm/naylence/fame/security/cert/util.js.map +1 -1
  113. package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager.js +12 -27
  114. package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager.js.map +1 -1
  115. package/dist/esm/naylence/fame/security/register-advanced-security-factories.js +1 -28
  116. package/dist/esm/naylence/fame/security/register-advanced-security-factories.js.map +1 -1
  117. package/dist/esm/plugin.js +0 -2
  118. package/dist/esm/plugin.js.map +1 -1
  119. package/dist/types/browser.d.ts +1 -17
  120. package/dist/types/browser.d.ts.map +1 -1
  121. package/dist/types/index.d.ts +0 -1
  122. package/dist/types/index.d.ts.map +1 -1
  123. package/dist/types/naylence/fame/security/cert/default-certificate-manager-factory.d.ts +3 -3
  124. package/dist/types/naylence/fame/security/cert/default-certificate-manager-factory.d.ts.map +1 -1
  125. package/dist/types/naylence/fame/security/cert/default-certificate-manager.d.ts +1 -1
  126. package/dist/types/naylence/fame/security/cert/default-certificate-manager.d.ts.map +1 -1
  127. package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager.d.ts.map +1 -1
  128. package/dist/types/naylence/fame/security/register-advanced-security-factories.d.ts.map +1 -1
  129. package/dist/types/plugin.d.ts.map +1 -1
  130. package/package.json +6 -6
  131. package/dist/cjs/version.js +0 -8
  132. package/dist/cjs/version.js.map +0 -1
  133. package/dist/esm/version.js +0 -8
  134. package/dist/esm/version.js.map +0 -1
  135. package/dist/types/version.d.ts +0 -6
  136. package/dist/types/version.d.ts.map +0 -1
@@ -1,18 +1,61 @@
1
+ "use strict";
1
2
  /**
2
3
  * Certificate Authority signing service for node certificates.
3
4
  *
4
5
  * Provides in-process API for issuing certificates with node physical
5
6
  * and host-like logical address information using SPIFFE-compliant identities.
6
7
  */
7
- import { AsnConvert, OctetString } from "@peculiar/asn1-schema";
8
- import { AlgorithmIdentifier, AttributeTypeAndValue, AttributeValue, AuthorityKeyIdentifier, BasicConstraints, Certificate, Extension, Extensions, ExtendedKeyUsage, GeneralName, GeneralSubtree, GeneralSubtrees, KeyIdentifier, KeyUsage as X509KeyUsage, KeyUsageFlags, Name, NameConstraints, RelativeDistinguishedName, SubjectAlternativeName, SubjectPublicKeyInfo, SubjectKeyIdentifier, TBSCertificate, Validity, Version, id_ce_authorityKeyIdentifier, id_ce_basicConstraints, id_ce_extKeyUsage, id_ce_keyUsage, id_ce_nameConstraints, id_ce_subjectAltName, id_ce_subjectKeyIdentifier, id_kp_clientAuth, id_kp_serverAuth, } from "@peculiar/asn1-x509";
9
- import { CertificationRequest } from "@peculiar/asn1-csr";
10
- import { secureDigest, validateHostLogical } from "@naylence/runtime/node";
11
- import { CAService } from "./ca-types.js";
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.CASigningService = exports.NODE_ID_OID = exports.LOGICALS_OID = exports.SID_OID = void 0;
43
+ exports.createTestCA = createTestCA;
44
+ exports.extractSpiffeIdFromCert = extractSpiffeIdFromCert;
45
+ exports.extractSidFromCert = extractSidFromCert;
46
+ exports.extractNodeIdFromCert = extractNodeIdFromCert;
47
+ exports.extractLogicalHostsFromCert = extractLogicalHostsFromCert;
48
+ exports.extractSidFromSpiffeId = extractSidFromSpiffeId;
49
+ exports.verifyCertSidIntegrity = verifyCertSidIntegrity;
50
+ const asn1_schema_1 = require("@peculiar/asn1-schema");
51
+ const asn1_x509_1 = require("@peculiar/asn1-x509");
52
+ const asn1_csr_1 = require("@peculiar/asn1-csr");
53
+ const runtime_1 = require("@naylence/runtime");
54
+ const ca_types_js_1 = require("./ca-types.js");
12
55
  // Certificate extension OIDs (using placeholder PEN)
13
- export const SID_OID = "1.3.6.1.4.1.58530.1";
14
- export const LOGICALS_OID = "1.3.6.1.4.1.58530.2";
15
- export const NODE_ID_OID = "1.3.6.1.4.1.58530.4";
56
+ exports.SID_OID = "1.3.6.1.4.1.58530.1";
57
+ exports.LOGICALS_OID = "1.3.6.1.4.1.58530.2";
58
+ exports.NODE_ID_OID = "1.3.6.1.4.1.58530.4";
16
59
  const ED25519_OID = "1.3.101.112";
17
60
  let x509ModulePromise = null;
18
61
  let cryptoPromise = null;
@@ -22,8 +65,7 @@ let subtleCryptoPromise = null;
22
65
  */
23
66
  async function loadX509Module() {
24
67
  if (!x509ModulePromise) {
25
- x509ModulePromise = import("@peculiar/x509")
26
- .then((mod) => {
68
+ x509ModulePromise = Promise.resolve().then(() => __importStar(require("@peculiar/x509"))).then((mod) => {
27
69
  if (mod && typeof mod.X509Certificate === "function") {
28
70
  return mod;
29
71
  }
@@ -43,7 +85,7 @@ async function ensureCrypto() {
43
85
  if (!cryptoPromise) {
44
86
  if (typeof process !== "undefined" &&
45
87
  typeof process.versions?.node === "string") {
46
- cryptoPromise = import("crypto").then((cryptoModule) => {
88
+ cryptoPromise = Promise.resolve().then(() => __importStar(require("crypto"))).then((cryptoModule) => {
47
89
  const webcrypto = cryptoModule
48
90
  .webcrypto;
49
91
  if (!webcrypto || !webcrypto.subtle) {
@@ -105,7 +147,7 @@ function toArrayBuffer(view) {
105
147
  return new Uint8Array(view).buffer;
106
148
  }
107
149
  function serializeAsn(value) {
108
- return AsnConvert.serialize(value);
150
+ return asn1_schema_1.AsnConvert.serialize(value);
109
151
  }
110
152
  function hexToArrayBuffer(hex) {
111
153
  const normalized = hex.length % 2 === 0 ? hex : `0${hex}`;
@@ -123,26 +165,26 @@ async function createEd25519Certificate(options) {
123
165
  const issuerName = cloneName(options.issuer);
124
166
  const subjectName = cloneName(options.subject);
125
167
  const subjectSpki = await subtle.exportKey("spki", options.subjectPublicKey);
126
- const subjectPublicKeyInfo = AsnConvert.parse(subjectSpki, SubjectPublicKeyInfo);
127
- subjectPublicKeyInfo.algorithm = new AlgorithmIdentifier({
168
+ const subjectPublicKeyInfo = asn1_schema_1.AsnConvert.parse(subjectSpki, asn1_x509_1.SubjectPublicKeyInfo);
169
+ subjectPublicKeyInfo.algorithm = new asn1_x509_1.AlgorithmIdentifier({
128
170
  algorithm: ED25519_OID,
129
171
  });
130
- const signatureAlgorithm = new AlgorithmIdentifier({
172
+ const signatureAlgorithm = new asn1_x509_1.AlgorithmIdentifier({
131
173
  algorithm: ED25519_OID,
132
174
  });
133
175
  const extensions = options.extensions?.length
134
- ? new Extensions(options.extensions.map((ext) => new Extension({
176
+ ? new asn1_x509_1.Extensions(options.extensions.map((ext) => new asn1_x509_1.Extension({
135
177
  extnID: ext.type,
136
178
  critical: ext.critical,
137
- extnValue: new OctetString(ext.value),
179
+ extnValue: new asn1_schema_1.OctetString(ext.value),
138
180
  })))
139
181
  : undefined;
140
- const tbsCertificate = new TBSCertificate({
141
- version: Version.v3,
182
+ const tbsCertificate = new asn1_x509_1.TBSCertificate({
183
+ version: asn1_x509_1.Version.v3,
142
184
  serialNumber: hexToArrayBuffer(serialHex),
143
185
  signature: signatureAlgorithm,
144
186
  issuer: issuerName,
145
- validity: new Validity({
187
+ validity: new asn1_x509_1.Validity({
146
188
  notBefore: options.notBefore,
147
189
  notAfter: options.notAfter,
148
190
  }),
@@ -150,15 +192,15 @@ async function createEd25519Certificate(options) {
150
192
  subjectPublicKeyInfo,
151
193
  extensions,
152
194
  });
153
- const tbsDer = AsnConvert.serialize(tbsCertificate);
195
+ const tbsDer = asn1_schema_1.AsnConvert.serialize(tbsCertificate);
154
196
  const signature = await subtle.sign("Ed25519", options.signingKey, tbsDer);
155
- const certificate = new Certificate({
197
+ const certificate = new asn1_x509_1.Certificate({
156
198
  tbsCertificate,
157
199
  signatureAlgorithm,
158
200
  signatureValue: signature,
159
201
  });
160
202
  certificate.tbsCertificateRaw = tbsDer;
161
- return AsnConvert.serialize(certificate);
203
+ return asn1_schema_1.AsnConvert.serialize(certificate);
162
204
  }
163
205
  function derToPem(der, label) {
164
206
  const base64 = bufferToBase64(der);
@@ -189,10 +231,10 @@ const OID_COMMON_NAME = "2.5.4.3";
189
231
  const OID_ORGANIZATIONAL_UNIT = "2.5.4.11";
190
232
  const OID_ORGANIZATION = "2.5.4.10";
191
233
  function createRelativeDistinguishedName(oid, value) {
192
- return new RelativeDistinguishedName([
193
- new AttributeTypeAndValue({
234
+ return new asn1_x509_1.RelativeDistinguishedName([
235
+ new asn1_x509_1.AttributeTypeAndValue({
194
236
  type: oid,
195
- value: new AttributeValue({ utf8String: value }),
237
+ value: new asn1_x509_1.AttributeValue({ utf8String: value }),
196
238
  }),
197
239
  ]);
198
240
  }
@@ -206,56 +248,56 @@ function buildCertificateName(commonName, organization, organizationalUnit) {
206
248
  if (organization) {
207
249
  rdns.push(createRelativeDistinguishedName(OID_ORGANIZATION, organization));
208
250
  }
209
- return new Name(rdns);
251
+ return new asn1_x509_1.Name(rdns);
210
252
  }
211
253
  function cloneName(name) {
212
- return AsnConvert.parse(AsnConvert.serialize(name), Name);
254
+ return asn1_schema_1.AsnConvert.parse(asn1_schema_1.AsnConvert.serialize(name), asn1_x509_1.Name);
213
255
  }
214
256
  function getCertificateIdentity(cert) {
215
- const parsed = AsnConvert.parse(cert.rawData, Certificate);
257
+ const parsed = asn1_schema_1.AsnConvert.parse(cert.rawData, asn1_x509_1.Certificate);
216
258
  return {
217
259
  name: cloneName(parsed.tbsCertificate.subject),
218
- subjectPublicKeyInfo: AsnConvert.serialize(parsed.tbsCertificate.subjectPublicKeyInfo),
260
+ subjectPublicKeyInfo: asn1_schema_1.AsnConvert.serialize(parsed.tbsCertificate.subjectPublicKeyInfo),
219
261
  };
220
262
  }
221
263
  async function buildCaExtensions(subjectPublicKey, issuerPublicKey, options) {
222
264
  const extensions = [];
223
- const basicConstraints = new BasicConstraints({ cA: true });
265
+ const basicConstraints = new asn1_x509_1.BasicConstraints({ cA: true });
224
266
  if (options.pathLength !== null && options.pathLength !== undefined) {
225
267
  basicConstraints.pathLenConstraint = options.pathLength;
226
268
  }
227
269
  extensions.push({
228
- type: id_ce_basicConstraints,
270
+ type: asn1_x509_1.id_ce_basicConstraints,
229
271
  critical: true,
230
272
  value: serializeAsn(basicConstraints),
231
273
  });
232
- const keyUsageFlags = KeyUsageFlags.digitalSignature |
233
- KeyUsageFlags.keyCertSign |
234
- KeyUsageFlags.cRLSign;
274
+ const keyUsageFlags = asn1_x509_1.KeyUsageFlags.digitalSignature |
275
+ asn1_x509_1.KeyUsageFlags.keyCertSign |
276
+ asn1_x509_1.KeyUsageFlags.cRLSign;
235
277
  extensions.push({
236
- type: id_ce_keyUsage,
278
+ type: asn1_x509_1.id_ce_keyUsage,
237
279
  critical: true,
238
- value: serializeAsn(new X509KeyUsage(keyUsageFlags)),
280
+ value: serializeAsn(new asn1_x509_1.KeyUsage(keyUsageFlags)),
239
281
  });
240
282
  const subjectKeyId = await computeKeyIdentifier(subjectPublicKey);
241
283
  extensions.push({
242
- type: id_ce_subjectKeyIdentifier,
284
+ type: asn1_x509_1.id_ce_subjectKeyIdentifier,
243
285
  critical: false,
244
- value: serializeAsn(new SubjectKeyIdentifier(subjectKeyId)),
286
+ value: serializeAsn(new asn1_x509_1.SubjectKeyIdentifier(subjectKeyId)),
245
287
  });
246
288
  const authorityKeyId = await computeKeyIdentifier(issuerPublicKey);
247
289
  extensions.push({
248
- type: id_ce_authorityKeyIdentifier,
290
+ type: asn1_x509_1.id_ce_authorityKeyIdentifier,
249
291
  critical: false,
250
- value: serializeAsn(new AuthorityKeyIdentifier({
251
- keyIdentifier: new KeyIdentifier(authorityKeyId),
292
+ value: serializeAsn(new asn1_x509_1.AuthorityKeyIdentifier({
293
+ keyIdentifier: new asn1_x509_1.KeyIdentifier(authorityKeyId),
252
294
  })),
253
295
  });
254
296
  if (options.permittedDnsDomains?.length) {
255
- const permittedSubtrees = new GeneralSubtrees(options.permittedDnsDomains.map((domain) => new GeneralSubtree({ base: new GeneralName({ dNSName: domain }) })));
256
- const constraints = new NameConstraints({ permittedSubtrees });
297
+ const permittedSubtrees = new asn1_x509_1.GeneralSubtrees(options.permittedDnsDomains.map((domain) => new asn1_x509_1.GeneralSubtree({ base: new asn1_x509_1.GeneralName({ dNSName: domain }) })));
298
+ const constraints = new asn1_x509_1.NameConstraints({ permittedSubtrees });
257
299
  extensions.push({
258
- type: id_ce_nameConstraints,
300
+ type: asn1_x509_1.id_ce_nameConstraints,
259
301
  critical: true,
260
302
  value: serializeAsn(constraints),
261
303
  });
@@ -265,51 +307,51 @@ async function buildCaExtensions(subjectPublicKey, issuerPublicKey, options) {
265
307
  async function buildLeafExtensions(publicKey, nodeSid, nodeId, spiffeId, logicalHosts, issuerPublicKey) {
266
308
  const extensions = [];
267
309
  extensions.push({
268
- type: id_ce_subjectAltName,
310
+ type: asn1_x509_1.id_ce_subjectAltName,
269
311
  critical: false,
270
- value: serializeAsn(new SubjectAlternativeName([
271
- new GeneralName({ uniformResourceIdentifier: spiffeId }),
312
+ value: serializeAsn(new asn1_x509_1.SubjectAlternativeName([
313
+ new asn1_x509_1.GeneralName({ uniformResourceIdentifier: spiffeId }),
272
314
  ])),
273
315
  });
274
- const keyUsageFlags = KeyUsageFlags.digitalSignature;
316
+ const keyUsageFlags = asn1_x509_1.KeyUsageFlags.digitalSignature;
275
317
  extensions.push({
276
- type: id_ce_keyUsage,
318
+ type: asn1_x509_1.id_ce_keyUsage,
277
319
  critical: true,
278
- value: serializeAsn(new X509KeyUsage(keyUsageFlags)),
320
+ value: serializeAsn(new asn1_x509_1.KeyUsage(keyUsageFlags)),
279
321
  });
280
322
  extensions.push({
281
- type: id_ce_extKeyUsage,
323
+ type: asn1_x509_1.id_ce_extKeyUsage,
282
324
  critical: false,
283
- value: serializeAsn(new ExtendedKeyUsage([id_kp_clientAuth, id_kp_serverAuth])),
325
+ value: serializeAsn(new asn1_x509_1.ExtendedKeyUsage([asn1_x509_1.id_kp_clientAuth, asn1_x509_1.id_kp_serverAuth])),
284
326
  });
285
327
  const subjectKeyId = await computeKeyIdentifier(publicKey);
286
328
  extensions.push({
287
- type: id_ce_subjectKeyIdentifier,
329
+ type: asn1_x509_1.id_ce_subjectKeyIdentifier,
288
330
  critical: false,
289
- value: serializeAsn(new SubjectKeyIdentifier(subjectKeyId)),
331
+ value: serializeAsn(new asn1_x509_1.SubjectKeyIdentifier(subjectKeyId)),
290
332
  });
291
333
  const authorityKeyId = await computeKeyIdentifier(issuerPublicKey);
292
334
  extensions.push({
293
- type: id_ce_authorityKeyIdentifier,
335
+ type: asn1_x509_1.id_ce_authorityKeyIdentifier,
294
336
  critical: false,
295
- value: serializeAsn(new AuthorityKeyIdentifier({
296
- keyIdentifier: new KeyIdentifier(authorityKeyId),
337
+ value: serializeAsn(new asn1_x509_1.AuthorityKeyIdentifier({
338
+ keyIdentifier: new asn1_x509_1.KeyIdentifier(authorityKeyId),
297
339
  })),
298
340
  });
299
341
  extensions.push({
300
- type: SID_OID,
342
+ type: exports.SID_OID,
301
343
  critical: false,
302
344
  value: toArrayBuffer(new TextEncoder().encode(nodeSid)),
303
345
  });
304
346
  extensions.push({
305
- type: NODE_ID_OID,
347
+ type: exports.NODE_ID_OID,
306
348
  critical: false,
307
349
  value: toArrayBuffer(new TextEncoder().encode(nodeId)),
308
350
  });
309
351
  if (logicalHosts.length) {
310
352
  const logicalsJson = JSON.stringify(logicalHosts);
311
353
  extensions.push({
312
- type: LOGICALS_OID,
354
+ type: exports.LOGICALS_OID,
313
355
  critical: false,
314
356
  value: toArrayBuffer(new TextEncoder().encode(logicalsJson)),
315
357
  });
@@ -322,7 +364,7 @@ async function buildLeafExtensions(publicKey, nodeSid, nodeId, spiffeId, logical
322
364
  * Issues SPIFFE-compliant node certificates with Fame-specific extensions
323
365
  * for physical paths and logical addresses.
324
366
  */
325
- export class CASigningService extends CAService {
367
+ class CASigningService extends ca_types_js_1.CAService {
326
368
  constructor(options) {
327
369
  super();
328
370
  this.rootCertPem = options.rootCertPem;
@@ -395,14 +437,14 @@ export class CASigningService extends CAService {
395
437
  async issueCertificate(csr) {
396
438
  // Parse PKCS#10 CSR to extract SubjectPublicKeyInfo
397
439
  const csrDer = pemToDer(csr.csrPem);
398
- const certRequest = AsnConvert.parse(csrDer, CertificationRequest);
440
+ const certRequest = asn1_schema_1.AsnConvert.parse(csrDer, asn1_csr_1.CertificationRequest);
399
441
  const subjectPublicKeyInfo = certRequest.certificationRequestInfo.subjectPKInfo;
400
442
  // Convert SubjectPublicKeyInfo to PEM format
401
- const publicKeyDer = AsnConvert.serialize(subjectPublicKeyInfo);
443
+ const publicKeyDer = asn1_schema_1.AsnConvert.serialize(subjectPublicKeyInfo);
402
444
  const publicKeyPem = derToPem(publicKeyDer, "PUBLIC KEY");
403
445
  // Determine node SID and physical path (mirrors Python logic)
404
446
  const physicalPath = csr.physicalPath || `/unknown/${csr.requesterId}`;
405
- const nodeSid = secureDigest(physicalPath);
447
+ const nodeSid = (0, runtime_1.secureDigest)(physicalPath);
406
448
  const logicals = csr.logicals || [];
407
449
  // Issue the certificate (short-lived: 1 day)
408
450
  const certificatePem = await this.signNodeCert(publicKeyPem, csr.requesterId, // Use requesterId as node_id
@@ -410,7 +452,7 @@ export class CASigningService extends CAService {
410
452
  undefined);
411
453
  // Parse certificate to get expiration
412
454
  const certDer = pemToDer(certificatePem);
413
- const cert = AsnConvert.parse(certDer, Certificate);
455
+ const cert = asn1_schema_1.AsnConvert.parse(certDer, asn1_x509_1.Certificate);
414
456
  const notAfter = cert.tbsCertificate.validity.notAfter.getTime();
415
457
  const expiresAt = new Date(notAfter).toISOString();
416
458
  return {
@@ -434,13 +476,13 @@ export class CASigningService extends CAService {
434
476
  await this.ensureSigningMaterials();
435
477
  const signingCert = this.getSigningCertificate();
436
478
  const signingKey = this.getSigningKey();
437
- const expectedSid = secureDigest(physicalPath);
479
+ const expectedSid = (0, runtime_1.secureDigest)(physicalPath);
438
480
  if (expectedSid !== nodeSid) {
439
481
  throw new Error("Provided SID does not match the computed SID for the physical path");
440
482
  }
441
483
  const logicalHosts = logicals ?? [];
442
484
  for (const logical of logicalHosts) {
443
- const [valid, error] = validateHostLogical(logical);
485
+ const [valid, error] = (0, runtime_1.validateHostLogical)(logical);
444
486
  if (!valid) {
445
487
  throw new Error(`Invalid logical host '${logical}': ${error ?? "unknown error"}`);
446
488
  }
@@ -454,7 +496,7 @@ export class CASigningService extends CAService {
454
496
  const spiffeId = `spiffe://${spiffeTrustDomain}/nodes/${nodeSid}`;
455
497
  const extensions = await buildLeafExtensions(publicKey, nodeSid, nodeId, spiffeId, logicalHosts, issuerIdentity.subjectPublicKeyInfo);
456
498
  const issuerName = issuerIdentity.name;
457
- const subjectName = new Name([]); // SPIFFE X.509-SVIDs require an empty subject DN
499
+ const subjectName = new asn1_x509_1.Name([]); // SPIFFE X.509-SVIDs require an empty subject DN
458
500
  const certDer = await createEd25519Certificate({
459
501
  subject: subjectName,
460
502
  issuer: issuerName,
@@ -504,6 +546,7 @@ export class CASigningService extends CAService {
504
546
  return derToPem(certDer, "CERTIFICATE");
505
547
  }
506
548
  }
549
+ exports.CASigningService = CASigningService;
507
550
  /**
508
551
  * Create a test root CA for development/testing.
509
552
  *
@@ -511,7 +554,7 @@ export class CASigningService extends CAService {
511
554
  *
512
555
  * @returns Tuple of [rootCertPem, rootKeyPem]
513
556
  */
514
- export async function createTestCA() {
557
+ async function createTestCA() {
515
558
  const subtle = await getSubtleCrypto();
516
559
  await ensureCrypto();
517
560
  const keyPair = await subtle.generateKey({
@@ -545,7 +588,7 @@ export async function createTestCA() {
545
588
  * @param certPem - Certificate in PEM format
546
589
  * @returns SPIFFE ID string or null if not found
547
590
  */
548
- export async function extractSpiffeIdFromCert(certPem) {
591
+ async function extractSpiffeIdFromCert(certPem) {
549
592
  const x509 = await loadX509Module();
550
593
  if (!x509) {
551
594
  throw new Error("@peculiar/x509 module not available");
@@ -569,7 +612,7 @@ export async function extractSpiffeIdFromCert(certPem) {
569
612
  * @param certPem - Certificate in PEM format
570
613
  * @returns SID bytes or null if not found
571
614
  */
572
- export async function extractSidFromCert(certPem) {
615
+ async function extractSidFromCert(certPem) {
573
616
  const x509 = await loadX509Module();
574
617
  if (!x509) {
575
618
  throw new Error("@peculiar/x509 module not available");
@@ -577,7 +620,7 @@ export async function extractSidFromCert(certPem) {
577
620
  try {
578
621
  const certDer = pemToDer(certPem);
579
622
  const cert = new x509.X509Certificate(certDer);
580
- const sidExtension = cert.getExtension(SID_OID);
623
+ const sidExtension = cert.getExtension(exports.SID_OID);
581
624
  if (sidExtension) {
582
625
  return new Uint8Array(sidExtension);
583
626
  }
@@ -594,7 +637,7 @@ export async function extractSidFromCert(certPem) {
594
637
  * @param certPem - Certificate in PEM format
595
638
  * @returns Node ID string or null if not found
596
639
  */
597
- export async function extractNodeIdFromCert(certPem) {
640
+ async function extractNodeIdFromCert(certPem) {
598
641
  const x509 = await loadX509Module();
599
642
  if (!x509) {
600
643
  throw new Error("@peculiar/x509 module not available");
@@ -602,7 +645,7 @@ export async function extractNodeIdFromCert(certPem) {
602
645
  try {
603
646
  const certDer = pemToDer(certPem);
604
647
  const cert = new x509.X509Certificate(certDer);
605
- const nodeIdExtension = cert.getExtension(NODE_ID_OID);
648
+ const nodeIdExtension = cert.getExtension(exports.NODE_ID_OID);
606
649
  if (nodeIdExtension) {
607
650
  const decoder = new TextDecoder();
608
651
  return decoder.decode(nodeIdExtension);
@@ -620,7 +663,7 @@ export async function extractNodeIdFromCert(certPem) {
620
663
  * @param certPem - Certificate in PEM format
621
664
  * @returns List of logical host addresses, empty if none found
622
665
  */
623
- export async function extractLogicalHostsFromCert(certPem) {
666
+ async function extractLogicalHostsFromCert(certPem) {
624
667
  const x509 = await loadX509Module();
625
668
  if (!x509) {
626
669
  throw new Error("@peculiar/x509 module not available");
@@ -628,7 +671,7 @@ export async function extractLogicalHostsFromCert(certPem) {
628
671
  try {
629
672
  const certDer = pemToDer(certPem);
630
673
  const cert = new x509.X509Certificate(certDer);
631
- const logicalsExtension = cert.getExtension(LOGICALS_OID);
674
+ const logicalsExtension = cert.getExtension(exports.LOGICALS_OID);
632
675
  if (logicalsExtension) {
633
676
  const decoder = new TextDecoder();
634
677
  const jsonStr = decoder.decode(logicalsExtension);
@@ -647,7 +690,7 @@ export async function extractLogicalHostsFromCert(certPem) {
647
690
  * @param spiffeId - SPIFFE ID in format spiffe://trust-domain/nodes/<sid>
648
691
  * @returns SID string (base62-encoded) or null if not a valid node SPIFFE ID
649
692
  */
650
- export function extractSidFromSpiffeId(spiffeId) {
693
+ function extractSidFromSpiffeId(spiffeId) {
651
694
  if (!spiffeId.startsWith("spiffe://")) {
652
695
  return null;
653
696
  }
@@ -665,7 +708,7 @@ export function extractSidFromSpiffeId(spiffeId) {
665
708
  * @param physicalPath - The expected physical path to verify against
666
709
  * @returns True if SID matches computed hash of physical path, False otherwise
667
710
  */
668
- export async function verifyCertSidIntegrity(certPem, physicalPath) {
711
+ async function verifyCertSidIntegrity(certPem, physicalPath) {
669
712
  const sidBytes = await extractSidFromCert(certPem);
670
713
  if (!sidBytes) {
671
714
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"internal-ca-service.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/internal-ca-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internal-ca-service.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/internal-ca-service.ts"],"names":[],"mappings":"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"}