@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.
- package/dist/browser/index.js +3438 -1058
- package/dist/browser/index.js.map +1 -1
- package/dist/cjs/browser.js +5 -18
- package/dist/cjs/browser.js.map +1 -1
- package/dist/cjs/index.js +6 -5
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/naylence/fame/factory-manifest.js +4 -1
- package/dist/cjs/naylence/fame/factory-manifest.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/ca-service-client.js +15 -9
- package/dist/cjs/naylence/fame/security/cert/ca-service-client.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/ca-service-factory.js +11 -7
- package/dist/cjs/naylence/fame/security/cert/ca-service-factory.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/ca-types.js +7 -2
- package/dist/cjs/naylence/fame/security/cert/ca-types.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/default-ca-service-factory.js +10 -6
- package/dist/cjs/naylence/fame/security/cert/default-ca-service-factory.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/default-ca-service.js +66 -29
- package/dist/cjs/naylence/fame/security/cert/default-ca-service.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/default-certificate-manager-factory.js +16 -12
- package/dist/cjs/naylence/fame/security/cert/default-certificate-manager-factory.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/default-certificate-manager.js +59 -22
- package/dist/cjs/naylence/fame/security/cert/default-certificate-manager.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/grants.js +4 -1
- package/dist/cjs/naylence/fame/security/cert/grants.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/index.js +50 -10
- package/dist/cjs/naylence/fame/security/cert/index.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js +122 -79
- package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/util.js +30 -26
- package/dist/cjs/naylence/fame/security/cert/util.js.map +1 -1
- package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js +14 -10
- package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js.map +1 -1
- package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager.js +48 -59
- package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager.js.map +1 -1
- package/dist/cjs/naylence/fame/security/encryption/channel/index.js +7 -2
- package/dist/cjs/naylence/fame/security/encryption/channel/index.js.map +1 -1
- package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager-factory.js +14 -10
- package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager-factory.js.map +1 -1
- package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager.js +11 -7
- package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager.js.map +1 -1
- package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager-factory.js +11 -7
- package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager-factory.js.map +1 -1
- package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager.js +23 -19
- package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager.js.map +1 -1
- package/dist/cjs/naylence/fame/security/encryption/encryption-manager-registry.js +15 -9
- package/dist/cjs/naylence/fame/security/encryption/encryption-manager-registry.js.map +1 -1
- package/dist/cjs/naylence/fame/security/encryption/index.js +15 -6
- package/dist/cjs/naylence/fame/security/encryption/index.js.map +1 -1
- package/dist/cjs/naylence/fame/security/encryption/sealed/index.js +7 -2
- package/dist/cjs/naylence/fame/security/encryption/sealed/index.js.map +1 -1
- package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js +12 -8
- package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js.map +1 -1
- package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js +30 -26
- package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js.map +1 -1
- package/dist/cjs/naylence/fame/security/index.js +10 -5
- package/dist/cjs/naylence/fame/security/index.js.map +1 -1
- package/dist/cjs/naylence/fame/security/keys/index.js +8 -2
- package/dist/cjs/naylence/fame/security/keys/index.js.map +1 -1
- package/dist/cjs/naylence/fame/security/keys/x5c-key-manager-factory.js +13 -9
- package/dist/cjs/naylence/fame/security/keys/x5c-key-manager-factory.js.map +1 -1
- package/dist/cjs/naylence/fame/security/keys/x5c-key-manager.js +52 -16
- package/dist/cjs/naylence/fame/security/keys/x5c-key-manager.js.map +1 -1
- package/dist/cjs/naylence/fame/security/register-advanced-security-factories.js +45 -36
- package/dist/cjs/naylence/fame/security/register-advanced-security-factories.js.map +1 -1
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-signer-factory.js +43 -6
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-signer-factory.js.map +1 -1
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js +12 -8
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js.map +1 -1
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier.js +70 -33
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/aft-helper.js +13 -8
- package/dist/cjs/naylence/fame/stickiness/aft-helper.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js +16 -12
- package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js +14 -10
- package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/aft-model.js +14 -6
- package/dist/cjs/naylence/fame/stickiness/aft-model.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js +16 -12
- package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager.js +18 -13
- package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/aft-signer.js +30 -23
- package/dist/cjs/naylence/fame/stickiness/aft-signer.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/aft-utils.js +8 -3
- package/dist/cjs/naylence/fame/stickiness/aft-utils.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/aft-verifier.js +28 -21
- package/dist/cjs/naylence/fame/stickiness/aft-verifier.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/index.js +39 -10
- package/dist/cjs/naylence/fame/stickiness/index.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/stickiness-mode.js +7 -3
- package/dist/cjs/naylence/fame/stickiness/stickiness-mode.js.map +1 -1
- package/dist/cjs/naylence/fame/welcome/advanced-welcome-service-factory.js +18 -14
- package/dist/cjs/naylence/fame/welcome/advanced-welcome-service-factory.js.map +1 -1
- package/dist/cjs/naylence/fame/welcome/advanced-welcome-service.js +18 -14
- package/dist/cjs/naylence/fame/welcome/advanced-welcome-service.js.map +1 -1
- package/dist/cjs/naylence/fame/welcome/index.js +8 -2
- package/dist/cjs/naylence/fame/welcome/index.js.map +1 -1
- package/dist/cjs/plugin.js +10 -8
- package/dist/cjs/plugin.js.map +1 -1
- package/dist/esm/browser.js +2 -18
- package/dist/esm/browser.js.map +1 -1
- package/dist/esm/index.js +0 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/naylence/fame/security/cert/default-certificate-manager-factory.js +2 -2
- package/dist/esm/naylence/fame/security/cert/default-certificate-manager-factory.js.map +1 -1
- package/dist/esm/naylence/fame/security/cert/default-certificate-manager.js +1 -1
- package/dist/esm/naylence/fame/security/cert/default-certificate-manager.js.map +1 -1
- package/dist/esm/naylence/fame/security/cert/internal-ca-service.js +1 -1
- package/dist/esm/naylence/fame/security/cert/internal-ca-service.js.map +1 -1
- package/dist/esm/naylence/fame/security/cert/util.js +1 -1
- package/dist/esm/naylence/fame/security/cert/util.js.map +1 -1
- package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager.js +12 -27
- package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager.js.map +1 -1
- package/dist/esm/naylence/fame/security/register-advanced-security-factories.js +1 -28
- package/dist/esm/naylence/fame/security/register-advanced-security-factories.js.map +1 -1
- package/dist/esm/plugin.js +0 -2
- package/dist/esm/plugin.js.map +1 -1
- package/dist/types/browser.d.ts +1 -17
- package/dist/types/browser.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/naylence/fame/security/cert/default-certificate-manager-factory.d.ts +3 -3
- package/dist/types/naylence/fame/security/cert/default-certificate-manager-factory.d.ts.map +1 -1
- package/dist/types/naylence/fame/security/cert/default-certificate-manager.d.ts +1 -1
- package/dist/types/naylence/fame/security/cert/default-certificate-manager.d.ts.map +1 -1
- package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager.d.ts.map +1 -1
- package/dist/types/naylence/fame/security/register-advanced-security-factories.d.ts.map +1 -1
- package/dist/types/plugin.d.ts.map +1 -1
- package/package.json +6 -6
- package/dist/cjs/version.js +0 -8
- package/dist/cjs/version.js.map +0 -1
- package/dist/esm/version.js +0 -8
- package/dist/esm/version.js.map +0 -1
- package/dist/types/version.d.ts +0 -6
- 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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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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"}
|