@naylence/advanced-security 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +33 -0
- package/NOTICE +5 -0
- package/README.md +101 -0
- package/dist/browser/index.js +157043 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/cjs/browser.js +6 -0
- package/dist/cjs/browser.js.map +1 -0
- package/dist/cjs/index.js +7 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/naylence/fame/factory-manifest.js +24 -0
- package/dist/cjs/naylence/fame/factory-manifest.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/ca-service-client.js +284 -0
- package/dist/cjs/naylence/fame/security/cert/ca-service-client.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/ca-service-factory.js +65 -0
- package/dist/cjs/naylence/fame/security/cert/ca-service-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/ca-types.js +36 -0
- package/dist/cjs/naylence/fame/security/cert/ca-types.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/default-ca-service-factory.js +70 -0
- package/dist/cjs/naylence/fame/security/cert/default-ca-service-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/default-ca-service.js +270 -0
- package/dist/cjs/naylence/fame/security/cert/default-ca-service.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/default-certificate-manager-factory.js +77 -0
- package/dist/cjs/naylence/fame/security/cert/default-certificate-manager-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/default-certificate-manager.js +675 -0
- package/dist/cjs/naylence/fame/security/cert/default-certificate-manager.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/grants.js +5 -0
- package/dist/cjs/naylence/fame/security/cert/grants.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/index.js +52 -0
- package/dist/cjs/naylence/fame/security/cert/index.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js +793 -0
- package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/util.js +120 -0
- package/dist/cjs/naylence/fame/security/cert/util.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js +89 -0
- package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager.js +732 -0
- package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/channel/index.js +8 -0
- package/dist/cjs/naylence/fame/security/encryption/channel/index.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager-factory.js +117 -0
- package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager.js +325 -0
- package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager-factory.js +57 -0
- package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager.js +282 -0
- package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/encryption-manager-registry.js +173 -0
- package/dist/cjs/naylence/fame/security/encryption/encryption-manager-registry.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/index.js +16 -0
- package/dist/cjs/naylence/fame/security/encryption/index.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/sealed/index.js +8 -0
- package/dist/cjs/naylence/fame/security/encryption/sealed/index.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js +86 -0
- package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js +546 -0
- package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js.map +1 -0
- package/dist/cjs/naylence/fame/security/index.js +11 -0
- package/dist/cjs/naylence/fame/security/index.js.map +1 -0
- package/dist/cjs/naylence/fame/security/keys/index.js +9 -0
- package/dist/cjs/naylence/fame/security/keys/index.js.map +1 -0
- package/dist/cjs/naylence/fame/security/keys/x5c-key-manager-factory.js +40 -0
- package/dist/cjs/naylence/fame/security/keys/x5c-key-manager-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/keys/x5c-key-manager.js +441 -0
- package/dist/cjs/naylence/fame/security/keys/x5c-key-manager.js.map +1 -0
- package/dist/cjs/naylence/fame/security/register-advanced-security-factories.js +131 -0
- package/dist/cjs/naylence/fame/security/register-advanced-security-factories.js.map +1 -0
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-signer-factory.js +71 -0
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-signer-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js +31 -0
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier.js +176 -0
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-helper.js +77 -0
- package/dist/cjs/naylence/fame/stickiness/aft-helper.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js +69 -0
- package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js +451 -0
- package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-model.js +62 -0
- package/dist/cjs/naylence/fame/stickiness/aft-model.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js +54 -0
- package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager.js +208 -0
- package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-signer.js +154 -0
- package/dist/cjs/naylence/fame/stickiness/aft-signer.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-utils.js +95 -0
- package/dist/cjs/naylence/fame/stickiness/aft-utils.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/aft-verifier.js +297 -0
- package/dist/cjs/naylence/fame/stickiness/aft-verifier.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/index.js +40 -0
- package/dist/cjs/naylence/fame/stickiness/index.js.map +1 -0
- package/dist/cjs/naylence/fame/stickiness/stickiness-mode.js +28 -0
- package/dist/cjs/naylence/fame/stickiness/stickiness-mode.js.map +1 -0
- package/dist/cjs/naylence/fame/welcome/advanced-welcome-service-factory.js +97 -0
- package/dist/cjs/naylence/fame/welcome/advanced-welcome-service-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/welcome/advanced-welcome-service.js +216 -0
- package/dist/cjs/naylence/fame/welcome/advanced-welcome-service.js.map +1 -0
- package/dist/cjs/naylence/fame/welcome/index.js +9 -0
- package/dist/cjs/naylence/fame/welcome/index.js.map +1 -0
- package/dist/cjs/plugin.js +41 -0
- package/dist/cjs/plugin.js.map +1 -0
- package/dist/esm/browser.js +3 -0
- package/dist/esm/browser.js.map +1 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/naylence/fame/factory-manifest.js +21 -0
- package/dist/esm/naylence/fame/factory-manifest.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/ca-server.js +153 -0
- package/dist/esm/naylence/fame/security/cert/ca-server.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/ca-service-client.js +278 -0
- package/dist/esm/naylence/fame/security/cert/ca-service-client.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/ca-service-factory.js +61 -0
- package/dist/esm/naylence/fame/security/cert/ca-service-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/ca-types.js +31 -0
- package/dist/esm/naylence/fame/security/cert/ca-types.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/default-ca-service-factory.js +66 -0
- package/dist/esm/naylence/fame/security/cert/default-ca-service-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/default-ca-service.js +233 -0
- package/dist/esm/naylence/fame/security/cert/default-ca-service.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/default-certificate-manager-factory.js +73 -0
- package/dist/esm/naylence/fame/security/cert/default-certificate-manager-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/default-certificate-manager.js +638 -0
- package/dist/esm/naylence/fame/security/cert/default-certificate-manager.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/grants.js +2 -0
- package/dist/esm/naylence/fame/security/cert/grants.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/index.js +12 -0
- package/dist/esm/naylence/fame/security/cert/index.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/internal-ca-service.js +750 -0
- package/dist/esm/naylence/fame/security/cert/internal-ca-service.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/util.js +116 -0
- package/dist/esm/naylence/fame/security/cert/util.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js +85 -0
- package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager.js +728 -0
- package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/channel/index.js +3 -0
- package/dist/esm/naylence/fame/security/encryption/channel/index.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/composite-encryption-manager-factory.js +113 -0
- package/dist/esm/naylence/fame/security/encryption/composite-encryption-manager-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/composite-encryption-manager.js +321 -0
- package/dist/esm/naylence/fame/security/encryption/composite-encryption-manager.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/default-secure-channel-manager-factory.js +53 -0
- package/dist/esm/naylence/fame/security/encryption/default-secure-channel-manager-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/default-secure-channel-manager.js +278 -0
- package/dist/esm/naylence/fame/security/encryption/default-secure-channel-manager.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/encryption-manager-registry.js +167 -0
- package/dist/esm/naylence/fame/security/encryption/encryption-manager-registry.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/index.js +7 -0
- package/dist/esm/naylence/fame/security/encryption/index.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/sealed/index.js +3 -0
- package/dist/esm/naylence/fame/security/encryption/sealed/index.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js +82 -0
- package/dist/esm/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js +542 -0
- package/dist/esm/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js.map +1 -0
- package/dist/esm/naylence/fame/security/index.js +6 -0
- package/dist/esm/naylence/fame/security/index.js.map +1 -0
- package/dist/esm/naylence/fame/security/keys/index.js +3 -0
- package/dist/esm/naylence/fame/security/keys/index.js.map +1 -0
- package/dist/esm/naylence/fame/security/keys/x5c-key-manager-factory.js +36 -0
- package/dist/esm/naylence/fame/security/keys/x5c-key-manager-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/keys/x5c-key-manager.js +405 -0
- package/dist/esm/naylence/fame/security/keys/x5c-key-manager.js.map +1 -0
- package/dist/esm/naylence/fame/security/register-advanced-security-factories.js +95 -0
- package/dist/esm/naylence/fame/security/register-advanced-security-factories.js.map +1 -0
- package/dist/esm/naylence/fame/security/signing/eddsa-envelope-signer-factory.js +34 -0
- package/dist/esm/naylence/fame/security/signing/eddsa-envelope-signer-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js +27 -0
- package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier.js +172 -0
- package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-helper.js +72 -0
- package/dist/esm/naylence/fame/stickiness/aft-helper.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js +65 -0
- package/dist/esm/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js +447 -0
- package/dist/esm/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-model.js +54 -0
- package/dist/esm/naylence/fame/stickiness/aft-model.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js +50 -0
- package/dist/esm/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-replica-stickiness-manager.js +203 -0
- package/dist/esm/naylence/fame/stickiness/aft-replica-stickiness-manager.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-signer.js +147 -0
- package/dist/esm/naylence/fame/stickiness/aft-signer.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-utils.js +90 -0
- package/dist/esm/naylence/fame/stickiness/aft-utils.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/aft-verifier.js +290 -0
- package/dist/esm/naylence/fame/stickiness/aft-verifier.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/index.js +11 -0
- package/dist/esm/naylence/fame/stickiness/index.js.map +1 -0
- package/dist/esm/naylence/fame/stickiness/stickiness-mode.js +24 -0
- package/dist/esm/naylence/fame/stickiness/stickiness-mode.js.map +1 -0
- package/dist/esm/naylence/fame/welcome/advanced-welcome-service-factory.js +93 -0
- package/dist/esm/naylence/fame/welcome/advanced-welcome-service-factory.js.map +1 -0
- package/dist/esm/naylence/fame/welcome/advanced-welcome-service.js +212 -0
- package/dist/esm/naylence/fame/welcome/advanced-welcome-service.js.map +1 -0
- package/dist/esm/naylence/fame/welcome/index.js +3 -0
- package/dist/esm/naylence/fame/welcome/index.js.map +1 -0
- package/dist/esm/plugin.js +37 -0
- package/dist/esm/plugin.js.map +1 -0
- package/dist/types/browser.d.ts +2 -0
- package/dist/types/browser.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/naylence/fame/factory-manifest.d.ts +9 -0
- package/dist/types/naylence/fame/factory-manifest.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/ca-server.d.ts +19 -0
- package/dist/types/naylence/fame/security/cert/ca-server.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/ca-service-client.d.ts +75 -0
- package/dist/types/naylence/fame/security/cert/ca-service-client.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/ca-service-factory.d.ts +43 -0
- package/dist/types/naylence/fame/security/cert/ca-service-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/ca-types.d.ts +97 -0
- package/dist/types/naylence/fame/security/cert/ca-types.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/default-ca-service-factory.d.ts +55 -0
- package/dist/types/naylence/fame/security/cert/default-ca-service-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/default-ca-service.d.ts +84 -0
- package/dist/types/naylence/fame/security/cert/default-ca-service.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/default-certificate-manager-factory.d.ts +25 -0
- package/dist/types/naylence/fame/security/cert/default-certificate-manager-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/default-certificate-manager.d.ts +38 -0
- package/dist/types/naylence/fame/security/cert/default-certificate-manager.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/grants.d.ts +2 -0
- package/dist/types/naylence/fame/security/cert/grants.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/index.d.ts +11 -0
- package/dist/types/naylence/fame/security/cert/index.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/internal-ca-service.d.ts +132 -0
- package/dist/types/naylence/fame/security/cert/internal-ca-service.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/util.d.ts +35 -0
- package/dist/types/naylence/fame/security/cert/util.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.d.ts +29 -0
- package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager.d.ts +51 -0
- package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/channel/index.d.ts +3 -0
- package/dist/types/naylence/fame/security/encryption/channel/index.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/composite-encryption-manager-factory.d.ts +32 -0
- package/dist/types/naylence/fame/security/encryption/composite-encryption-manager-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/composite-encryption-manager.d.ts +52 -0
- package/dist/types/naylence/fame/security/encryption/composite-encryption-manager.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/default-secure-channel-manager-factory.d.ts +23 -0
- package/dist/types/naylence/fame/security/encryption/default-secure-channel-manager-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/default-secure-channel-manager.d.ts +37 -0
- package/dist/types/naylence/fame/security/encryption/default-secure-channel-manager.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/encryption-manager-registry.d.ts +34 -0
- package/dist/types/naylence/fame/security/encryption/encryption-manager-registry.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/index.d.ts +7 -0
- package/dist/types/naylence/fame/security/encryption/index.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/sealed/index.d.ts +3 -0
- package/dist/types/naylence/fame/security/encryption/sealed/index.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.d.ts +28 -0
- package/dist/types/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/encryption/sealed/x25519-encryption-manager.d.ts +43 -0
- package/dist/types/naylence/fame/security/encryption/sealed/x25519-encryption-manager.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/index.d.ts +6 -0
- package/dist/types/naylence/fame/security/index.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/keys/index.d.ts +3 -0
- package/dist/types/naylence/fame/security/keys/index.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/keys/x5c-key-manager-factory.d.ts +19 -0
- package/dist/types/naylence/fame/security/keys/x5c-key-manager-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/keys/x5c-key-manager.d.ts +39 -0
- package/dist/types/naylence/fame/security/keys/x5c-key-manager.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/register-advanced-security-factories.d.ts +8 -0
- package/dist/types/naylence/fame/security/register-advanced-security-factories.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/signing/eddsa-envelope-signer-factory.d.ts +20 -0
- package/dist/types/naylence/fame/security/signing/eddsa-envelope-signer-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier-factory.d.ts +21 -0
- package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier.d.ts +17 -0
- package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-helper.d.ts +29 -0
- package/dist/types/naylence/fame/stickiness/aft-helper.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.d.ts +25 -0
- package/dist/types/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.d.ts +33 -0
- package/dist/types/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-model.d.ts +33 -0
- package/dist/types/naylence/fame/stickiness/aft-model.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.d.ts +23 -0
- package/dist/types/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-replica-stickiness-manager.d.ts +31 -0
- package/dist/types/naylence/fame/stickiness/aft-replica-stickiness-manager.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-signer.d.ts +55 -0
- package/dist/types/naylence/fame/stickiness/aft-signer.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-utils.d.ts +4 -0
- package/dist/types/naylence/fame/stickiness/aft-utils.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/aft-verifier.d.ts +50 -0
- package/dist/types/naylence/fame/stickiness/aft-verifier.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/index.d.ts +15 -0
- package/dist/types/naylence/fame/stickiness/index.d.ts.map +1 -0
- package/dist/types/naylence/fame/stickiness/stickiness-mode.d.ts +7 -0
- package/dist/types/naylence/fame/stickiness/stickiness-mode.d.ts.map +1 -0
- package/dist/types/naylence/fame/welcome/advanced-welcome-service-factory.d.ts +21 -0
- package/dist/types/naylence/fame/welcome/advanced-welcome-service-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/welcome/advanced-welcome-service.d.ts +21 -0
- package/dist/types/naylence/fame/welcome/advanced-welcome-service.d.ts.map +1 -0
- package/dist/types/naylence/fame/welcome/index.d.ts +3 -0
- package/dist/types/naylence/fame/welcome/index.d.ts.map +1 -0
- package/dist/types/plugin.d.ts +11 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/package.json +130 -0
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Certificate client for requesting certificates from a CA signing service.
|
|
3
|
+
*
|
|
4
|
+
* Provides async HTTP client to request certificates from the CA signing service.
|
|
5
|
+
*/
|
|
6
|
+
import { CertificateRequestError } from "./ca-types.js";
|
|
7
|
+
// Simple logger for now - TODO: integrate with runtime logging
|
|
8
|
+
const logger = {
|
|
9
|
+
debug: (_event, _meta) => {
|
|
10
|
+
// console.log(`[DEBUG] ${event}`, meta);
|
|
11
|
+
},
|
|
12
|
+
error: (_event, _meta) => {
|
|
13
|
+
console.error(`[ERROR] ${_event}`, _meta);
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
export const ENV_VAR_FAME_CA_SERVICE_URL = "FAME_CA_SERVICE_URL";
|
|
17
|
+
/**
|
|
18
|
+
* Extract certificate information from a PEM certificate.
|
|
19
|
+
*
|
|
20
|
+
* Uses node-forge to parse X.509 certificates and extract metadata.
|
|
21
|
+
*
|
|
22
|
+
* @param _certPem - Certificate in PEM format (prefixed with underscore as currently unused)
|
|
23
|
+
* @returns Certificate information object
|
|
24
|
+
*/
|
|
25
|
+
export function extractCertificateInfo(_certPem) {
|
|
26
|
+
try {
|
|
27
|
+
// TODO: Implement using node-forge or similar library
|
|
28
|
+
// For now, return a placeholder
|
|
29
|
+
return {
|
|
30
|
+
subject: "TODO: Parse certificate",
|
|
31
|
+
issuer: "TODO: Parse certificate",
|
|
32
|
+
serialNumber: "TODO",
|
|
33
|
+
validFrom: new Date().toISOString(),
|
|
34
|
+
validUntil: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000).toISOString(),
|
|
35
|
+
status: "unknown",
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
return {
|
|
40
|
+
subject: "",
|
|
41
|
+
issuer: "",
|
|
42
|
+
serialNumber: "",
|
|
43
|
+
validFrom: "",
|
|
44
|
+
validUntil: "",
|
|
45
|
+
status: "unknown",
|
|
46
|
+
error: `Failed to parse certificate: ${error}`,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Format certificate information in human-readable format.
|
|
52
|
+
*
|
|
53
|
+
* @param certPem - Certificate in PEM format
|
|
54
|
+
* @param certType - Type description for logging (e.g., "Certificate", "CA Certificate")
|
|
55
|
+
* @returns Formatted string with certificate details
|
|
56
|
+
*/
|
|
57
|
+
export function formatCertificateInfo(certPem, certType = "Certificate") {
|
|
58
|
+
const info = extractCertificateInfo(certPem);
|
|
59
|
+
if (info.error) {
|
|
60
|
+
return `=== ${certType} Information ===\n${info.error}`;
|
|
61
|
+
}
|
|
62
|
+
const lines = [
|
|
63
|
+
`=== ${certType} Information ===`,
|
|
64
|
+
`Subject: ${info.subject}`,
|
|
65
|
+
`Issuer: ${info.issuer}`,
|
|
66
|
+
`Serial Number: ${info.serialNumber}`,
|
|
67
|
+
`Valid From: ${info.validFrom}`,
|
|
68
|
+
`Valid Until: ${info.validUntil}`,
|
|
69
|
+
];
|
|
70
|
+
if (info.subjectAlternativeNames && info.subjectAlternativeNames.length > 0) {
|
|
71
|
+
lines.push(`Subject Alternative Names: ${info.subjectAlternativeNames.join(", ")}`);
|
|
72
|
+
}
|
|
73
|
+
if (info.spiffeId) {
|
|
74
|
+
lines.push(`SPIFFE ID: ${info.spiffeId}`);
|
|
75
|
+
}
|
|
76
|
+
if (info.nodeSid) {
|
|
77
|
+
lines.push(`Node SID: ${info.nodeSid}`);
|
|
78
|
+
}
|
|
79
|
+
if (info.nodeId) {
|
|
80
|
+
lines.push(`Node ID: ${info.nodeId}`);
|
|
81
|
+
}
|
|
82
|
+
if (info.logicalHosts && info.logicalHosts.length > 0) {
|
|
83
|
+
lines.push(`Logical Hosts: ${info.logicalHosts.join(", ")}`);
|
|
84
|
+
}
|
|
85
|
+
// Add validity status
|
|
86
|
+
if (info.status === "valid" && info.daysRemaining !== undefined) {
|
|
87
|
+
if (info.daysRemaining > 0) {
|
|
88
|
+
lines.push(`Status: Valid (${info.daysRemaining} days remaining)`);
|
|
89
|
+
}
|
|
90
|
+
else if (info.hoursRemaining !== undefined && info.hoursRemaining > 0) {
|
|
91
|
+
if (info.minutesRemaining !== undefined && info.minutesRemaining > 0) {
|
|
92
|
+
lines.push(`Status: Valid (${info.hoursRemaining} hours, ${info.minutesRemaining} minutes remaining)`);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
lines.push(`Status: Valid (${info.hoursRemaining} hours remaining)`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else if (info.minutesRemaining !== undefined) {
|
|
99
|
+
lines.push(`Status: Valid (${info.minutesRemaining} minutes remaining)`);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else if (info.status === "expired") {
|
|
103
|
+
lines.push("Status: Expired");
|
|
104
|
+
}
|
|
105
|
+
else if (info.status === "not_yet_valid") {
|
|
106
|
+
lines.push("Status: Not yet valid");
|
|
107
|
+
}
|
|
108
|
+
return lines.join("\n");
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Client for requesting certificates from a CA signing service.
|
|
112
|
+
*/
|
|
113
|
+
export class CAServiceClient {
|
|
114
|
+
/**
|
|
115
|
+
* Create a new CA service client.
|
|
116
|
+
*
|
|
117
|
+
* @param connectionGrant - HTTP connection grant with CA service URL
|
|
118
|
+
* @param timeoutSeconds - Request timeout in seconds (default: 30)
|
|
119
|
+
*/
|
|
120
|
+
constructor(connectionGrant, timeoutSeconds = 30.0) {
|
|
121
|
+
this.authHeader = null;
|
|
122
|
+
if (!connectionGrant || typeof connectionGrant.url !== "string") {
|
|
123
|
+
throw new Error("connectionGrant must have a valid url property");
|
|
124
|
+
}
|
|
125
|
+
this.connectionGrant = connectionGrant;
|
|
126
|
+
this.timeoutSeconds = timeoutSeconds;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Set the authorization header for outbound requests.
|
|
130
|
+
*
|
|
131
|
+
* @param authHeader - Authorization header value (e.g., "Bearer token")
|
|
132
|
+
*/
|
|
133
|
+
setAuthHeader(authHeader) {
|
|
134
|
+
this.authHeader = authHeader;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Request a certificate from the CA service.
|
|
138
|
+
*
|
|
139
|
+
* @param csrPem - Certificate Signing Request in PEM format
|
|
140
|
+
* @param requesterId - ID of the node requesting the certificate
|
|
141
|
+
* @param physicalPath - Physical path for the node (optional)
|
|
142
|
+
* @param logicals - Logicals the node will serve (optional)
|
|
143
|
+
* @returns Tuple of [certificatePem, certificateChainPem]
|
|
144
|
+
* @throws {CertificateRequestError} If the request fails
|
|
145
|
+
*/
|
|
146
|
+
async requestCertificate(csrPem, requesterId, physicalPath, logicals) {
|
|
147
|
+
const requestData = {
|
|
148
|
+
csr_pem: csrPem,
|
|
149
|
+
requester_id: requesterId,
|
|
150
|
+
physical_path: physicalPath,
|
|
151
|
+
logicals: logicals || [],
|
|
152
|
+
};
|
|
153
|
+
const url = `${this.connectionGrant.url.replace(/\/$/, "")}/sign`;
|
|
154
|
+
logger.debug("requesting_certificate", {
|
|
155
|
+
requester_id: requesterId,
|
|
156
|
+
ca_service_url: url,
|
|
157
|
+
physical_path: physicalPath,
|
|
158
|
+
logicals,
|
|
159
|
+
});
|
|
160
|
+
// Prepare headers
|
|
161
|
+
const headers = {
|
|
162
|
+
"Content-Type": "application/json",
|
|
163
|
+
};
|
|
164
|
+
if (this.authHeader) {
|
|
165
|
+
headers["Authorization"] = this.authHeader;
|
|
166
|
+
}
|
|
167
|
+
try {
|
|
168
|
+
// Create abort controller for timeout
|
|
169
|
+
const controller = new AbortController();
|
|
170
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeoutSeconds * 1000);
|
|
171
|
+
try {
|
|
172
|
+
const response = await fetch(url, {
|
|
173
|
+
method: "POST",
|
|
174
|
+
headers,
|
|
175
|
+
body: JSON.stringify(requestData),
|
|
176
|
+
signal: controller.signal,
|
|
177
|
+
});
|
|
178
|
+
clearTimeout(timeoutId);
|
|
179
|
+
if (response.ok) {
|
|
180
|
+
const result = await response.json();
|
|
181
|
+
const certificatePem = result.certificate_pem;
|
|
182
|
+
const certificateChainPem = result.certificate_chain_pem || certificatePem;
|
|
183
|
+
logger.debug("certificate_request_successful", {
|
|
184
|
+
requester_id: requesterId,
|
|
185
|
+
expires_at: result.expires_at,
|
|
186
|
+
});
|
|
187
|
+
// Extract and log certificate information with structured logging
|
|
188
|
+
const certInfo = extractCertificateInfo(certificatePem);
|
|
189
|
+
logger.debug("certificate_details", {
|
|
190
|
+
requester_id: requesterId,
|
|
191
|
+
certificate_type: "issued_certificate",
|
|
192
|
+
...certInfo,
|
|
193
|
+
});
|
|
194
|
+
// If we have a separate certificate chain, also log its details
|
|
195
|
+
if (certificateChainPem !== certificatePem) {
|
|
196
|
+
// Extract individual certificates from the chain
|
|
197
|
+
const chainCerts = certificateChainPem
|
|
198
|
+
.split("-----END CERTIFICATE-----\n")
|
|
199
|
+
.slice(0, -1);
|
|
200
|
+
for (let i = 0; i < chainCerts.length; i++) {
|
|
201
|
+
const certBlock = chainCerts[i];
|
|
202
|
+
if (certBlock && certBlock.trim()) {
|
|
203
|
+
const certPemBlock = certBlock + "-----END CERTIFICATE-----\n";
|
|
204
|
+
if (i === 0) {
|
|
205
|
+
// First cert in chain is usually the issued certificate
|
|
206
|
+
if (certPemBlock.trim() !== certificatePem.trim()) {
|
|
207
|
+
const chainCertInfo = extractCertificateInfo(certPemBlock);
|
|
208
|
+
logger.debug("certificate_chain_details", {
|
|
209
|
+
requester_id: requesterId,
|
|
210
|
+
certificate_type: "certificate_chain",
|
|
211
|
+
chain_index: i,
|
|
212
|
+
...chainCertInfo,
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
// Subsequent certs are intermediate/root CAs
|
|
218
|
+
const caCertInfo = extractCertificateInfo(certPemBlock);
|
|
219
|
+
logger.debug("certificate_chain_details", {
|
|
220
|
+
requester_id: requesterId,
|
|
221
|
+
certificate_type: "ca_certificate",
|
|
222
|
+
chain_index: i,
|
|
223
|
+
...caCertInfo,
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return [certificatePem, certificateChainPem];
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
let errorDetail = "Unknown error";
|
|
233
|
+
try {
|
|
234
|
+
const bodyText = await response.text();
|
|
235
|
+
try {
|
|
236
|
+
const errorData = JSON.parse(bodyText);
|
|
237
|
+
errorDetail = errorData.detail || bodyText;
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
errorDetail = bodyText;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
catch {
|
|
244
|
+
// Body read failed entirely
|
|
245
|
+
errorDetail = `HTTP ${response.status}`;
|
|
246
|
+
}
|
|
247
|
+
logger.error("certificate_request_failed", {
|
|
248
|
+
requester_id: requesterId,
|
|
249
|
+
status_code: response.status,
|
|
250
|
+
error: errorDetail,
|
|
251
|
+
});
|
|
252
|
+
throw new CertificateRequestError(`Certificate request failed (HTTP ${response.status}): ${errorDetail}`);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
finally {
|
|
256
|
+
clearTimeout(timeoutId);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
catch (error) {
|
|
260
|
+
if (error instanceof CertificateRequestError) {
|
|
261
|
+
throw error;
|
|
262
|
+
}
|
|
263
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
264
|
+
logger.error("certificate_request_timeout", {
|
|
265
|
+
requester_id: requesterId,
|
|
266
|
+
timeout_seconds: this.timeoutSeconds,
|
|
267
|
+
});
|
|
268
|
+
throw new CertificateRequestError(`Certificate request timed out after ${this.timeoutSeconds} seconds`);
|
|
269
|
+
}
|
|
270
|
+
logger.error("certificate_request_network_error", {
|
|
271
|
+
requester_id: requesterId,
|
|
272
|
+
error: String(error),
|
|
273
|
+
});
|
|
274
|
+
throw new CertificateRequestError(`Network error requesting certificate: ${error}`);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
//# sourceMappingURL=ca-service-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ca-service-client.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/ca-service-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory pattern for creating CA service instances.
|
|
3
|
+
*
|
|
4
|
+
* Provides a unified way to create CAService implementations from configuration.
|
|
5
|
+
*/
|
|
6
|
+
import { AbstractResourceFactory, createDefaultResource, createResource, } from "@naylence/factory";
|
|
7
|
+
/**
|
|
8
|
+
* Factory for creating CAService instances.
|
|
9
|
+
*
|
|
10
|
+
* Supports multiple CAService implementations through the factory pattern.
|
|
11
|
+
*/
|
|
12
|
+
export class CAServiceFactory extends AbstractResourceFactory {
|
|
13
|
+
/**
|
|
14
|
+
* Create a CAService instance from configuration.
|
|
15
|
+
*
|
|
16
|
+
* @param config - Optional CAService configuration or dictionary
|
|
17
|
+
* @param options - Additional creation options
|
|
18
|
+
* @returns Configured CAService instance
|
|
19
|
+
*/
|
|
20
|
+
static async createCAService(config, options) {
|
|
21
|
+
if (!config) {
|
|
22
|
+
// Use default CA service
|
|
23
|
+
const service = await createDefaultResource("CAServiceFactory", config, options);
|
|
24
|
+
if (!service) {
|
|
25
|
+
throw new Error("No default CA service factory registered");
|
|
26
|
+
}
|
|
27
|
+
return service;
|
|
28
|
+
}
|
|
29
|
+
if (typeof config === "object" && !("type" in config)) {
|
|
30
|
+
// No type specified, use default
|
|
31
|
+
const service = await createDefaultResource("CAServiceFactory", config, options);
|
|
32
|
+
if (!service) {
|
|
33
|
+
throw new Error("No default CA service factory registered");
|
|
34
|
+
}
|
|
35
|
+
return service;
|
|
36
|
+
}
|
|
37
|
+
// Create from specific type
|
|
38
|
+
const configObj = config instanceof Object && "type" in config
|
|
39
|
+
? config
|
|
40
|
+
: { type: "CAService", ...config };
|
|
41
|
+
const service = await createResource("CAServiceFactory", configObj, options);
|
|
42
|
+
if (!service) {
|
|
43
|
+
throw new Error(`Failed to create CA service of type "${configObj.type}"`);
|
|
44
|
+
}
|
|
45
|
+
return service;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Base type for CA service factories.
|
|
50
|
+
*/
|
|
51
|
+
export const CA_SERVICE_FACTORY_BASE_TYPE = "CAServiceFactory";
|
|
52
|
+
/**
|
|
53
|
+
* Factory metadata for CAServiceFactory.
|
|
54
|
+
*/
|
|
55
|
+
export const FACTORY_META = {
|
|
56
|
+
factoryId: "CAServiceFactory",
|
|
57
|
+
factoryType: CAServiceFactory,
|
|
58
|
+
resourceType: "CAService",
|
|
59
|
+
description: "Factory for creating Certificate Authority (CA) service instances",
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=ca-service-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ca-service-factory.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/ca-service-factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAU3B;;;;GAIG;AACH,MAAM,OAAgB,gBAEpB,SAAQ,uBAAqC;IAC7C;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAC1B,MAAkD,EAClD,OAA+B;QAE/B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,yBAAyB;YACzB,MAAM,OAAO,GAAG,MAAM,qBAAqB,CACzC,kBAAkB,EAClB,MAAM,EACN,OAAO,CACR,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,OAAoB,CAAC;QAC9B,CAAC;QAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC;YACtD,iCAAiC;YACjC,MAAM,OAAO,GAAG,MAAM,qBAAqB,CACzC,kBAAkB,EAClB,MAAM,EACN,OAAO,CACR,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,OAAoB,CAAC;QAC9B,CAAC;QAED,4BAA4B;QAC5B,MAAM,SAAS,GACb,MAAM,YAAY,MAAM,IAAI,MAAM,IAAI,MAAM;YAC1C,CAAC,CAAE,MAA0B;YAC7B,CAAC,CAAE,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,EAAsB,CAAC;QAE5D,MAAM,OAAO,GAAG,MAAM,cAAc,CAClC,kBAAkB,EAClB,SAAS,EACT,OAAO,CACR,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,wCAAwC,SAAS,CAAC,IAAI,GAAG,CAC1D,CAAC;QACJ,CAAC;QACD,OAAO,OAAoB,CAAC;IAC9B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,kBAAkB,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS,EAAE,kBAAkB;IAC7B,WAAW,EAAE,gBAAgB;IAC7B,YAAY,EAAE,WAAW;IACzB,WAAW,EACT,mEAAmE;CACtE,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Certificate Authority (CA) types and interfaces.
|
|
3
|
+
*
|
|
4
|
+
* Provides type definitions for CA service operations, certificate signing requests,
|
|
5
|
+
* and certificate issuance responses.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Abstract CA signing service interface.
|
|
9
|
+
*
|
|
10
|
+
* Defines the contract for certificate authority services that can issue
|
|
11
|
+
* certificates from certificate signing requests.
|
|
12
|
+
*/
|
|
13
|
+
export class CAService {
|
|
14
|
+
/**
|
|
15
|
+
* Optional authorizer for request authentication.
|
|
16
|
+
*/
|
|
17
|
+
get authorizer() {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Error thrown when a certificate request fails.
|
|
23
|
+
*/
|
|
24
|
+
export class CertificateRequestError extends Error {
|
|
25
|
+
constructor(message) {
|
|
26
|
+
super(message);
|
|
27
|
+
this.name = "CertificateRequestError";
|
|
28
|
+
Object.setPrototypeOf(this, CertificateRequestError.prototype);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=ca-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ca-types.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/ca-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyCH;;;;;GAKG;AACH,MAAM,OAAgB,SAAS;IAC7B;;OAEG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;CAWF;AAED;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;CACF"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory for creating DefaultCAService instances.
|
|
3
|
+
*
|
|
4
|
+
* Provides the default CA service implementation with environment variable support.
|
|
5
|
+
*/
|
|
6
|
+
import { AbstractResourceFactory } from "@naylence/factory";
|
|
7
|
+
import { DefaultCAService } from "./default-ca-service.js";
|
|
8
|
+
/**
|
|
9
|
+
* Factory metadata for DefaultCAServiceFactory.
|
|
10
|
+
*/
|
|
11
|
+
export const FACTORY_META = {
|
|
12
|
+
base: "CAServiceFactory",
|
|
13
|
+
key: "DefaultCAService",
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Normalize configuration from snake_case or camelCase to standard format.
|
|
17
|
+
*/
|
|
18
|
+
function normalizeConfig(config) {
|
|
19
|
+
if (!config) {
|
|
20
|
+
return { type: "DefaultCAService" };
|
|
21
|
+
}
|
|
22
|
+
const { type: _ignoredType, ...rest } = config;
|
|
23
|
+
return {
|
|
24
|
+
...rest,
|
|
25
|
+
type: "DefaultCAService",
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Factory for creating DefaultCAService instances.
|
|
30
|
+
*/
|
|
31
|
+
export class DefaultCAServiceFactory extends AbstractResourceFactory {
|
|
32
|
+
constructor() {
|
|
33
|
+
super(...arguments);
|
|
34
|
+
this.type = "DefaultCAService";
|
|
35
|
+
this.isDefault = true;
|
|
36
|
+
this.priority = 100;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Create a DefaultCAService instance.
|
|
40
|
+
*
|
|
41
|
+
* @param config - DefaultCAService configuration
|
|
42
|
+
* @returns Configured DefaultCAService instance
|
|
43
|
+
*/
|
|
44
|
+
async create(config, ..._factoryArgs) {
|
|
45
|
+
const normalizedConfig = normalizeConfig(config);
|
|
46
|
+
// Extract configuration with snake_case fallbacks
|
|
47
|
+
const caCertPem = normalizedConfig.caCertPem ?? normalizedConfig.ca_cert_pem;
|
|
48
|
+
const caKeyPem = normalizedConfig.caKeyPem ?? normalizedConfig.ca_key_pem;
|
|
49
|
+
const intermediateChainPem = normalizedConfig.intermediateChainPem ??
|
|
50
|
+
normalizedConfig.intermediate_chain_pem;
|
|
51
|
+
const signingCertPem = normalizedConfig.signingCertPem ?? normalizedConfig.signing_cert_pem;
|
|
52
|
+
const signingKeyPem = normalizedConfig.signingKeyPem ?? normalizedConfig.signing_key_pem;
|
|
53
|
+
// TODO: Create authorizer from config when AuthorizerFactory is available
|
|
54
|
+
const authorizer = undefined;
|
|
55
|
+
return new DefaultCAService({
|
|
56
|
+
caCertPem,
|
|
57
|
+
caKeyPem,
|
|
58
|
+
intermediateChainPem,
|
|
59
|
+
signingCertPem,
|
|
60
|
+
signingKeyPem,
|
|
61
|
+
authorizer,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
export default DefaultCAServiceFactory;
|
|
66
|
+
//# sourceMappingURL=default-ca-service-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-ca-service-factory.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/default-ca-service-factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAG5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAgC3D;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,kBAAkB;IACxB,GAAG,EAAE,kBAAkB;CACf,CAAC;AAEX;;GAEG;AACH,SAAS,eAAe,CACtB,MAAgE;IAEhE,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,MAAiC,CAAC;IAC1E,OAAO;QACL,GAAG,IAAI;QACP,IAAI,EAAE,kBAAkB;KACC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,uBAG5C;IAHD;;QAIkB,SAAI,GAAG,kBAAkB,CAAC;QAC1B,cAAS,GAAG,IAAI,CAAC;QACjB,aAAQ,GAAG,GAAG,CAAC;IAsCjC,CAAC;IApCC;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CACjB,MAAgE,EAChE,GAAG,YAAuB;QAE1B,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAEjD,kDAAkD;QAClD,MAAM,SAAS,GACb,gBAAgB,CAAC,SAAS,IAAI,gBAAgB,CAAC,WAAW,CAAC;QAC7D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,IAAI,gBAAgB,CAAC,UAAU,CAAC;QAC1E,MAAM,oBAAoB,GACxB,gBAAgB,CAAC,oBAAoB;YACrC,gBAAgB,CAAC,sBAAsB,CAAC;QAC1C,MAAM,cAAc,GAClB,gBAAgB,CAAC,cAAc,IAAI,gBAAgB,CAAC,gBAAgB,CAAC;QACvE,MAAM,aAAa,GACjB,gBAAgB,CAAC,aAAa,IAAI,gBAAgB,CAAC,eAAe,CAAC;QAErE,0EAA0E;QAC1E,MAAM,UAAU,GAA2B,SAAS,CAAC;QAErD,OAAO,IAAI,gBAAgB,CAAC;YAC1B,SAAS;YACT,QAAQ;YACR,oBAAoB;YACpB,cAAc;YACd,aAAa;YACb,UAAU;SACX,CAAC,CAAC;IACL,CAAC;CACF;AAED,eAAe,uBAAuB,CAAC"}
|