@naylence/advanced-security 0.3.6 → 0.3.7-test.112
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.cjs +9864 -0
- package/dist/browser/index.mjs +9811 -0
- package/dist/cjs/advanced-security-isomorphic.js +82 -0
- package/dist/cjs/advanced-security-isomorphic.js.map +1 -0
- package/dist/cjs/browser.js +24 -5
- package/dist/cjs/browser.js.map +1 -1
- package/dist/cjs/index.js +1 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/install-env.js +2 -0
- package/dist/cjs/install-env.js.map +1 -0
- package/dist/cjs/naylence/fame/factory-manifest.js +19 -4
- package/dist/cjs/naylence/fame/factory-manifest.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/browser-csr.js +103 -0
- package/dist/cjs/naylence/fame/security/cert/browser-csr.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/ca-server-cli.js +30 -0
- package/dist/cjs/naylence/fame/security/cert/ca-server-cli.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/ca-server.js +223 -0
- package/dist/cjs/naylence/fame/security/cert/ca-server.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/ca-service-client.js +340 -39
- 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 +7 -11
- package/dist/cjs/naylence/fame/security/cert/ca-service-factory.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/ca-types.js +10 -7
- package/dist/cjs/naylence/fame/security/cert/ca-types.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/csr-types.js +2 -0
- package/dist/cjs/naylence/fame/security/cert/csr-types.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/default-ca-service-factory.js +6 -10
- 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 +130 -66
- 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 +12 -16
- 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 +262 -122
- package/dist/cjs/naylence/fame/security/cert/default-certificate-manager.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/grants.js +1 -4
- package/dist/cjs/naylence/fame/security/cert/grants.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/index.js +16 -50
- package/dist/cjs/naylence/fame/security/cert/index.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js +77 -123
- package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js.map +1 -1
- package/dist/cjs/naylence/fame/security/cert/node-ed25519-csr.js +156 -0
- package/dist/cjs/naylence/fame/security/cert/node-ed25519-csr.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/oid-constants.js +7 -0
- package/dist/cjs/naylence/fame/security/cert/oid-constants.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/anchor-utils.js +119 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/anchor-utils.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.js +82 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/env-provider.js +168 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/env-provider.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js +257 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/http-bundle-provider.js +497 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/http-bundle-provider.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js +2 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.js +61 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/static-bundle-provider.js +44 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/static-bundle-provider.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/trust-store-provider-factory.js +40 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/trust-store-provider-factory.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/trust-store-provider.js +2 -0
- package/dist/cjs/naylence/fame/security/cert/trust-store/trust-store-provider.js.map +1 -0
- package/dist/cjs/naylence/fame/security/cert/util.js +25 -30
- 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 +10 -14
- 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 +59 -48
- 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 +2 -7
- 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 +10 -14
- 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 +7 -11
- 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 +7 -11
- 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 +19 -23
- 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 +9 -15
- package/dist/cjs/naylence/fame/security/encryption/encryption-manager-registry.js.map +1 -1
- package/dist/cjs/naylence/fame/security/encryption/index.js +6 -15
- package/dist/cjs/naylence/fame/security/encryption/index.js.map +1 -1
- package/dist/cjs/naylence/fame/security/encryption/sealed/index.js +2 -7
- 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 +8 -12
- 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 +26 -30
- package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js.map +1 -1
- package/dist/cjs/naylence/fame/security/index.js +5 -10
- package/dist/cjs/naylence/fame/security/index.js.map +1 -1
- package/dist/cjs/naylence/fame/security/keys/index.js +2 -8
- package/dist/cjs/naylence/fame/security/keys/index.js.map +1 -1
- package/dist/cjs/naylence/fame/security/keys/x5c-key-manager-factory.js +9 -13
- 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 +16 -52
- 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 +220 -68
- 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 +6 -43
- 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 +14 -12
- 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 +72 -125
- package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/aft-helper.js +8 -13
- 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 +12 -16
- 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 +10 -14
- package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/aft-model.js +6 -14
- package/dist/cjs/naylence/fame/stickiness/aft-model.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js +12 -16
- 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 +13 -18
- package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/aft-signer.js +23 -30
- package/dist/cjs/naylence/fame/stickiness/aft-signer.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/aft-utils.js +3 -8
- package/dist/cjs/naylence/fame/stickiness/aft-utils.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/aft-verifier.js +21 -28
- package/dist/cjs/naylence/fame/stickiness/aft-verifier.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/index.js +10 -39
- package/dist/cjs/naylence/fame/stickiness/index.js.map +1 -1
- package/dist/cjs/naylence/fame/stickiness/stickiness-mode.js +3 -7
- package/dist/cjs/naylence/fame/stickiness/stickiness-mode.js.map +1 -1
- package/dist/cjs/naylence/fame/welcome/advanced-welcome-service-factory.js +14 -18
- package/dist/cjs/naylence/fame/welcome/advanced-welcome-service-factory.js.map +1 -1
- package/dist/cjs/naylence/fame/welcome/advanced-welcome-service.js +14 -18
- package/dist/cjs/naylence/fame/welcome/advanced-welcome-service.js.map +1 -1
- package/dist/cjs/naylence/fame/welcome/index.js +2 -8
- package/dist/cjs/naylence/fame/welcome/index.js.map +1 -1
- package/dist/cjs/node.js +11 -0
- package/dist/cjs/node.js.map +1 -0
- package/dist/cjs/plugin.js +8 -10
- package/dist/cjs/plugin.js.map +1 -1
- package/dist/cjs/version.js +8 -0
- package/dist/cjs/version.js.map +1 -0
- package/dist/esm/advanced-security-isomorphic.js +82 -0
- package/dist/esm/advanced-security-isomorphic.js.map +1 -0
- package/dist/esm/browser.js +24 -2
- package/dist/esm/browser.js.map +1 -1
- package/dist/esm/index.js +1 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/install-env.js +2 -0
- package/dist/esm/install-env.js.map +1 -0
- package/dist/esm/naylence/fame/factory-manifest.js +18 -0
- package/dist/esm/naylence/fame/factory-manifest.js.map +1 -1
- package/dist/esm/naylence/fame/security/cert/browser-csr.js +103 -0
- package/dist/esm/naylence/fame/security/cert/browser-csr.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/ca-server-cli.js +30 -0
- package/dist/esm/naylence/fame/security/cert/ca-server-cli.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/ca-server.js +87 -17
- package/dist/esm/naylence/fame/security/cert/ca-server.js.map +1 -1
- package/dist/esm/naylence/fame/security/cert/ca-service-client.js +331 -24
- package/dist/esm/naylence/fame/security/cert/ca-service-client.js.map +1 -1
- package/dist/esm/naylence/fame/security/cert/ca-types.js +8 -0
- package/dist/esm/naylence/fame/security/cert/ca-types.js.map +1 -1
- package/dist/esm/naylence/fame/security/cert/csr-types.js +2 -0
- package/dist/esm/naylence/fame/security/cert/csr-types.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/default-ca-service.js +102 -1
- package/dist/esm/naylence/fame/security/cert/default-ca-service.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 +241 -64
- package/dist/esm/naylence/fame/security/cert/default-certificate-manager.js.map +1 -1
- package/dist/esm/naylence/fame/security/cert/index.js +7 -1
- package/dist/esm/naylence/fame/security/cert/index.js.map +1 -1
- package/dist/esm/naylence/fame/security/cert/internal-ca-service.js +3 -6
- package/dist/esm/naylence/fame/security/cert/internal-ca-service.js.map +1 -1
- package/dist/esm/naylence/fame/security/cert/node-ed25519-csr.js +156 -0
- package/dist/esm/naylence/fame/security/cert/node-ed25519-csr.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/oid-constants.js +7 -0
- package/dist/esm/naylence/fame/security/cert/oid-constants.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/anchor-utils.js +119 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/anchor-utils.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.js +82 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/env-provider.js +168 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/env-provider.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js +257 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/http-bundle-provider.js +497 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/http-bundle-provider.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js +2 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.js +61 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/static-bundle-provider.js +44 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/static-bundle-provider.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/trust-store-provider-factory.js +40 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/trust-store-provider-factory.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/trust-store-provider.js +2 -0
- package/dist/esm/naylence/fame/security/cert/trust-store/trust-store-provider.js.map +1 -0
- package/dist/esm/naylence/fame/security/cert/util.js +2 -3
- package/dist/esm/naylence/fame/security/cert/util.js.map +1 -1
- package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager.js +27 -12
- 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 +214 -26
- package/dist/esm/naylence/fame/security/register-advanced-security-factories.js.map +1 -1
- package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js +6 -0
- package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js.map +1 -1
- package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier.js +43 -59
- package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier.js.map +1 -1
- package/dist/esm/node.js +11 -0
- package/dist/esm/node.js.map +1 -0
- package/dist/esm/plugin.js +2 -0
- package/dist/esm/plugin.js.map +1 -1
- package/dist/esm/version.js +8 -0
- package/dist/esm/version.js.map +1 -0
- package/dist/node/index.cjs +9855 -0
- package/dist/node/index.mjs +9800 -0
- package/dist/node/node.cjs +10139 -0
- package/dist/node/node.mjs +10046 -0
- package/dist/types/advanced-security-isomorphic.d.ts +24 -0
- package/dist/types/advanced-security-isomorphic.d.ts.map +1 -0
- package/dist/types/browser.d.ts +18 -1
- package/dist/types/browser.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/install-env.d.ts +3 -0
- package/dist/types/install-env.d.ts.map +1 -0
- package/dist/types/naylence/fame/factory-manifest.d.ts +3 -1
- package/dist/types/naylence/fame/factory-manifest.d.ts.map +1 -1
- package/dist/types/naylence/fame/security/cert/browser-csr.d.ts +9 -0
- package/dist/types/naylence/fame/security/cert/browser-csr.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/ca-server-cli.d.ts +3 -0
- package/dist/types/naylence/fame/security/cert/ca-server-cli.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/ca-server.d.ts +2 -2
- package/dist/types/naylence/fame/security/cert/ca-server.d.ts.map +1 -1
- package/dist/types/naylence/fame/security/cert/ca-service-client.d.ts.map +1 -1
- package/dist/types/naylence/fame/security/cert/ca-types.d.ts +32 -0
- package/dist/types/naylence/fame/security/cert/ca-types.d.ts.map +1 -1
- package/dist/types/naylence/fame/security/cert/csr-types.d.ts +5 -0
- package/dist/types/naylence/fame/security/cert/csr-types.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/default-ca-service.d.ts +2 -1
- package/dist/types/naylence/fame/security/cert/default-ca-service.d.ts.map +1 -1
- package/dist/types/naylence/fame/security/cert/default-certificate-manager-factory.d.ts +1 -1
- 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 +32 -0
- package/dist/types/naylence/fame/security/cert/default-certificate-manager.d.ts.map +1 -1
- package/dist/types/naylence/fame/security/cert/index.d.ts +9 -1
- package/dist/types/naylence/fame/security/cert/index.d.ts.map +1 -1
- package/dist/types/naylence/fame/security/cert/internal-ca-service.d.ts +0 -3
- package/dist/types/naylence/fame/security/cert/internal-ca-service.d.ts.map +1 -1
- package/dist/types/naylence/fame/security/cert/node-ed25519-csr.d.ts +9 -0
- package/dist/types/naylence/fame/security/cert/node-ed25519-csr.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/oid-constants.d.ts +7 -0
- package/dist/types/naylence/fame/security/cert/oid-constants.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/anchor-utils.d.ts +12 -0
- package/dist/types/naylence/fame/security/cert/trust-store/anchor-utils.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.d.ts +29 -0
- package/dist/types/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/env-provider.d.ts +7 -0
- package/dist/types/naylence/fame/security/cert/trust-store/env-provider.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.d.ts +9 -0
- package/dist/types/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/http-bundle-provider.d.ts +35 -0
- package/dist/types/naylence/fame/security/cert/trust-store/http-bundle-provider.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.d.ts +2 -0
- package/dist/types/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.d.ts +23 -0
- package/dist/types/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/static-bundle-provider.d.ts +15 -0
- package/dist/types/naylence/fame/security/cert/trust-store/static-bundle-provider.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/trust-store-provider-factory.d.ts +28 -0
- package/dist/types/naylence/fame/security/cert/trust-store/trust-store-provider-factory.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/trust-store/trust-store-provider.d.ts +43 -0
- package/dist/types/naylence/fame/security/cert/trust-store/trust-store-provider.d.ts.map +1 -0
- package/dist/types/naylence/fame/security/cert/util.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/naylence/fame/security/signing/eddsa-envelope-verifier-factory.d.ts.map +1 -1
- package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier.d.ts +5 -0
- package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier.d.ts.map +1 -1
- package/dist/types/node.d.ts +11 -0
- package/dist/types/node.d.ts.map +1 -0
- package/dist/types/plugin.d.ts.map +1 -1
- package/dist/types/version.d.ts +6 -0
- package/dist/types/version.d.ts.map +1 -0
- package/package.json +88 -15
- package/dist/browser/index.js +0 -25070
- package/dist/browser/index.js.map +0 -1
|
@@ -1,52 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
Object.defineProperty(exports, "DefaultCertificateManager", { enumerable: true, get: function () { return default_certificate_manager_js_1.DefaultCertificateManager; } });
|
|
11
|
-
var default_certificate_manager_factory_js_1 = require("./default-certificate-manager-factory.js");
|
|
12
|
-
Object.defineProperty(exports, "DefaultCertificateManagerFactory", { enumerable: true, get: function () { return default_certificate_manager_factory_js_1.DefaultCertificateManagerFactory; } });
|
|
13
|
-
Object.defineProperty(exports, "DEFAULT_CERTIFICATE_MANAGER_FACTORY_META", { enumerable: true, get: function () { return default_certificate_manager_factory_js_1.FACTORY_META; } });
|
|
1
|
+
export { validateJwkX5cCertificate, publicKeyFromX5c, } from "./util.js";
|
|
2
|
+
export { GRANT_PURPOSE_CA_SIGN } from "./grants.js";
|
|
3
|
+
export { createEd25519CsrFromPem, } from "./node-ed25519-csr.js";
|
|
4
|
+
export { createEd25519Csr, } from "./browser-csr.js";
|
|
5
|
+
export { DefaultCertificateManager, } from "./default-certificate-manager.js";
|
|
6
|
+
export { DefaultCertificateManagerFactory, FACTORY_META as DEFAULT_CERTIFICATE_MANAGER_FACTORY_META, } from "./default-certificate-manager-factory.js";
|
|
7
|
+
export { TrustStoreProviderFactory, NullTrustStoreProvider, TRUST_STORE_PROVIDER_FACTORY_BASE_TYPE, } from "./trust-store/trust-store-provider-factory.js";
|
|
8
|
+
export { EnvTrustStoreProviderFactory, FACTORY_META as ENV_TRUST_STORE_PROVIDER_FACTORY_META, } from "./trust-store/node-trust-store-provider-factory.js";
|
|
9
|
+
export { BrowserTrustStoreProviderFactory, FACTORY_META as BROWSER_TRUST_STORE_PROVIDER_FACTORY_META, } from "./trust-store/browser-trust-store-provider-factory.js";
|
|
14
10
|
// Certificate Authority (CA) types and services
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
Object.defineProperty(exports, "ENV_VAR_FAME_CA_SERVICE_URL", { enumerable: true, get: function () { return ca_service_client_js_1.ENV_VAR_FAME_CA_SERVICE_URL; } });
|
|
23
|
-
var internal_ca_service_js_1 = require("./internal-ca-service.js");
|
|
24
|
-
Object.defineProperty(exports, "CASigningService", { enumerable: true, get: function () { return internal_ca_service_js_1.CASigningService; } });
|
|
25
|
-
Object.defineProperty(exports, "SID_OID", { enumerable: true, get: function () { return internal_ca_service_js_1.SID_OID; } });
|
|
26
|
-
Object.defineProperty(exports, "LOGICALS_OID", { enumerable: true, get: function () { return internal_ca_service_js_1.LOGICALS_OID; } });
|
|
27
|
-
Object.defineProperty(exports, "NODE_ID_OID", { enumerable: true, get: function () { return internal_ca_service_js_1.NODE_ID_OID; } });
|
|
28
|
-
Object.defineProperty(exports, "createTestCA", { enumerable: true, get: function () { return internal_ca_service_js_1.createTestCA; } });
|
|
29
|
-
Object.defineProperty(exports, "extractSpiffeIdFromCert", { enumerable: true, get: function () { return internal_ca_service_js_1.extractSpiffeIdFromCert; } });
|
|
30
|
-
Object.defineProperty(exports, "extractSidFromCert", { enumerable: true, get: function () { return internal_ca_service_js_1.extractSidFromCert; } });
|
|
31
|
-
Object.defineProperty(exports, "extractNodeIdFromCert", { enumerable: true, get: function () { return internal_ca_service_js_1.extractNodeIdFromCert; } });
|
|
32
|
-
Object.defineProperty(exports, "extractLogicalHostsFromCert", { enumerable: true, get: function () { return internal_ca_service_js_1.extractLogicalHostsFromCert; } });
|
|
33
|
-
Object.defineProperty(exports, "extractSidFromSpiffeId", { enumerable: true, get: function () { return internal_ca_service_js_1.extractSidFromSpiffeId; } });
|
|
34
|
-
Object.defineProperty(exports, "verifyCertSidIntegrity", { enumerable: true, get: function () { return internal_ca_service_js_1.verifyCertSidIntegrity; } });
|
|
35
|
-
var default_ca_service_js_1 = require("./default-ca-service.js");
|
|
36
|
-
Object.defineProperty(exports, "DefaultCAService", { enumerable: true, get: function () { return default_ca_service_js_1.DefaultCAService; } });
|
|
37
|
-
Object.defineProperty(exports, "ENV_FAME_CA_CERT_FILE", { enumerable: true, get: function () { return default_ca_service_js_1.ENV_FAME_CA_CERT_FILE; } });
|
|
38
|
-
Object.defineProperty(exports, "ENV_FAME_CA_CERT_PEM", { enumerable: true, get: function () { return default_ca_service_js_1.ENV_FAME_CA_CERT_PEM; } });
|
|
39
|
-
Object.defineProperty(exports, "ENV_FAME_CA_KEY_FILE", { enumerable: true, get: function () { return default_ca_service_js_1.ENV_FAME_CA_KEY_FILE; } });
|
|
40
|
-
Object.defineProperty(exports, "ENV_FAME_CA_KEY_PEM", { enumerable: true, get: function () { return default_ca_service_js_1.ENV_FAME_CA_KEY_PEM; } });
|
|
41
|
-
Object.defineProperty(exports, "ENV_FAME_INTERMEDIATE_CHAIN_FILE", { enumerable: true, get: function () { return default_ca_service_js_1.ENV_FAME_INTERMEDIATE_CHAIN_FILE; } });
|
|
42
|
-
Object.defineProperty(exports, "ENV_FAME_INTERMEDIATE_CHAIN_PEM", { enumerable: true, get: function () { return default_ca_service_js_1.ENV_FAME_INTERMEDIATE_CHAIN_PEM; } });
|
|
43
|
-
Object.defineProperty(exports, "ENV_FAME_SIGNING_CERT_FILE", { enumerable: true, get: function () { return default_ca_service_js_1.ENV_FAME_SIGNING_CERT_FILE; } });
|
|
44
|
-
Object.defineProperty(exports, "ENV_FAME_SIGNING_CERT_PEM", { enumerable: true, get: function () { return default_ca_service_js_1.ENV_FAME_SIGNING_CERT_PEM; } });
|
|
45
|
-
Object.defineProperty(exports, "ENV_FAME_SIGNING_KEY_FILE", { enumerable: true, get: function () { return default_ca_service_js_1.ENV_FAME_SIGNING_KEY_FILE; } });
|
|
46
|
-
Object.defineProperty(exports, "ENV_FAME_SIGNING_KEY_PEM", { enumerable: true, get: function () { return default_ca_service_js_1.ENV_FAME_SIGNING_KEY_PEM; } });
|
|
47
|
-
var ca_service_factory_js_1 = require("./ca-service-factory.js");
|
|
48
|
-
Object.defineProperty(exports, "CAServiceFactory", { enumerable: true, get: function () { return ca_service_factory_js_1.CAServiceFactory; } });
|
|
49
|
-
Object.defineProperty(exports, "CA_SERVICE_FACTORY_BASE_TYPE", { enumerable: true, get: function () { return ca_service_factory_js_1.CA_SERVICE_FACTORY_BASE_TYPE; } });
|
|
50
|
-
var default_ca_service_factory_js_1 = require("./default-ca-service-factory.js");
|
|
51
|
-
Object.defineProperty(exports, "DefaultCAServiceFactory", { enumerable: true, get: function () { return default_ca_service_factory_js_1.DefaultCAServiceFactory; } });
|
|
11
|
+
export { CAService, CertificateRequestError, } from "./ca-types.js";
|
|
12
|
+
export { CAServiceClient, extractCertificateInfo, formatCertificateInfo, ENV_VAR_FAME_CA_SERVICE_URL, } from "./ca-service-client.js";
|
|
13
|
+
export { CASigningService, createTestCA, extractSpiffeIdFromCert, extractSidFromCert, extractNodeIdFromCert, extractLogicalHostsFromCert, extractSidFromSpiffeId, verifyCertSidIntegrity, } from "./internal-ca-service.js";
|
|
14
|
+
export { SID_OID, LOGICALS_OID, NODE_ID_OID } from "./oid-constants.js";
|
|
15
|
+
export { DefaultCAService, ENV_FAME_CA_CERT_FILE, ENV_FAME_CA_CERT_PEM, ENV_FAME_CA_KEY_FILE, ENV_FAME_CA_KEY_PEM, ENV_FAME_INTERMEDIATE_CHAIN_FILE, ENV_FAME_INTERMEDIATE_CHAIN_PEM, ENV_FAME_SIGNING_CERT_FILE, ENV_FAME_SIGNING_CERT_PEM, ENV_FAME_SIGNING_KEY_FILE, ENV_FAME_SIGNING_KEY_PEM, } from "./default-ca-service.js";
|
|
16
|
+
export { CAServiceFactory, CA_SERVICE_FACTORY_BASE_TYPE, } from "./ca-service-factory.js";
|
|
17
|
+
export { DefaultCAServiceFactory, } from "./default-ca-service-factory.js";
|
|
52
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EAGzB,gBAAgB,GAEjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EACL,uBAAuB,GAExB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,yBAAyB,GAG1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,gCAAgC,EAChC,YAAY,IAAI,wCAAwC,GAEzD,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,sCAAsC,GAGvC,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACL,4BAA4B,EAC5B,YAAY,IAAI,qCAAqC,GAEtD,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EACL,gCAAgC,EAChC,YAAY,IAAI,yCAAyC,GAE1D,MAAM,uDAAuD,CAAC;AAE/D,gDAAgD;AAChD,OAAO,EAIL,SAAS,EACT,uBAAuB,GAExB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EAGrB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,gBAAgB,EAEhB,YAAY,EACZ,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EACL,gBAAgB,EAEhB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,gCAAgC,EAChC,+BAA+B,EAC/B,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,gBAAgB,EAEhB,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,uBAAuB,GAExB,MAAM,iCAAiC,CAAC"}
|
|
@@ -1,61 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Certificate Authority signing service for node certificates.
|
|
4
3
|
*
|
|
5
4
|
* Provides in-process API for issuing certificates with node physical
|
|
6
5
|
* and host-like logical address information using SPIFFE-compliant identities.
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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");
|
|
55
|
-
// Certificate extension OIDs (using placeholder PEN)
|
|
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";
|
|
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";
|
|
12
|
+
import { LOGICALS_OID, NODE_ID_OID, SID_OID } from "./oid-constants.js";
|
|
59
13
|
const ED25519_OID = "1.3.101.112";
|
|
60
14
|
let x509ModulePromise = null;
|
|
61
15
|
let cryptoPromise = null;
|
|
@@ -65,7 +19,8 @@ let subtleCryptoPromise = null;
|
|
|
65
19
|
*/
|
|
66
20
|
async function loadX509Module() {
|
|
67
21
|
if (!x509ModulePromise) {
|
|
68
|
-
x509ModulePromise =
|
|
22
|
+
x509ModulePromise = import("@peculiar/x509")
|
|
23
|
+
.then((mod) => {
|
|
69
24
|
if (mod && typeof mod.X509Certificate === "function") {
|
|
70
25
|
return mod;
|
|
71
26
|
}
|
|
@@ -85,7 +40,7 @@ async function ensureCrypto() {
|
|
|
85
40
|
if (!cryptoPromise) {
|
|
86
41
|
if (typeof process !== "undefined" &&
|
|
87
42
|
typeof process.versions?.node === "string") {
|
|
88
|
-
cryptoPromise =
|
|
43
|
+
cryptoPromise = import("node:crypto").then((cryptoModule) => {
|
|
89
44
|
const webcrypto = cryptoModule
|
|
90
45
|
.webcrypto;
|
|
91
46
|
if (!webcrypto || !webcrypto.subtle) {
|
|
@@ -147,7 +102,7 @@ function toArrayBuffer(view) {
|
|
|
147
102
|
return new Uint8Array(view).buffer;
|
|
148
103
|
}
|
|
149
104
|
function serializeAsn(value) {
|
|
150
|
-
return
|
|
105
|
+
return AsnConvert.serialize(value);
|
|
151
106
|
}
|
|
152
107
|
function hexToArrayBuffer(hex) {
|
|
153
108
|
const normalized = hex.length % 2 === 0 ? hex : `0${hex}`;
|
|
@@ -165,26 +120,26 @@ async function createEd25519Certificate(options) {
|
|
|
165
120
|
const issuerName = cloneName(options.issuer);
|
|
166
121
|
const subjectName = cloneName(options.subject);
|
|
167
122
|
const subjectSpki = await subtle.exportKey("spki", options.subjectPublicKey);
|
|
168
|
-
const subjectPublicKeyInfo =
|
|
169
|
-
subjectPublicKeyInfo.algorithm = new
|
|
123
|
+
const subjectPublicKeyInfo = AsnConvert.parse(subjectSpki, SubjectPublicKeyInfo);
|
|
124
|
+
subjectPublicKeyInfo.algorithm = new AlgorithmIdentifier({
|
|
170
125
|
algorithm: ED25519_OID,
|
|
171
126
|
});
|
|
172
|
-
const signatureAlgorithm = new
|
|
127
|
+
const signatureAlgorithm = new AlgorithmIdentifier({
|
|
173
128
|
algorithm: ED25519_OID,
|
|
174
129
|
});
|
|
175
130
|
const extensions = options.extensions?.length
|
|
176
|
-
? new
|
|
131
|
+
? new Extensions(options.extensions.map((ext) => new Extension({
|
|
177
132
|
extnID: ext.type,
|
|
178
133
|
critical: ext.critical,
|
|
179
|
-
extnValue: new
|
|
134
|
+
extnValue: new OctetString(ext.value),
|
|
180
135
|
})))
|
|
181
136
|
: undefined;
|
|
182
|
-
const tbsCertificate = new
|
|
183
|
-
version:
|
|
137
|
+
const tbsCertificate = new TBSCertificate({
|
|
138
|
+
version: Version.v3,
|
|
184
139
|
serialNumber: hexToArrayBuffer(serialHex),
|
|
185
140
|
signature: signatureAlgorithm,
|
|
186
141
|
issuer: issuerName,
|
|
187
|
-
validity: new
|
|
142
|
+
validity: new Validity({
|
|
188
143
|
notBefore: options.notBefore,
|
|
189
144
|
notAfter: options.notAfter,
|
|
190
145
|
}),
|
|
@@ -192,15 +147,15 @@ async function createEd25519Certificate(options) {
|
|
|
192
147
|
subjectPublicKeyInfo,
|
|
193
148
|
extensions,
|
|
194
149
|
});
|
|
195
|
-
const tbsDer =
|
|
150
|
+
const tbsDer = AsnConvert.serialize(tbsCertificate);
|
|
196
151
|
const signature = await subtle.sign("Ed25519", options.signingKey, tbsDer);
|
|
197
|
-
const certificate = new
|
|
152
|
+
const certificate = new Certificate({
|
|
198
153
|
tbsCertificate,
|
|
199
154
|
signatureAlgorithm,
|
|
200
155
|
signatureValue: signature,
|
|
201
156
|
});
|
|
202
157
|
certificate.tbsCertificateRaw = tbsDer;
|
|
203
|
-
return
|
|
158
|
+
return AsnConvert.serialize(certificate);
|
|
204
159
|
}
|
|
205
160
|
function derToPem(der, label) {
|
|
206
161
|
const base64 = bufferToBase64(der);
|
|
@@ -231,10 +186,10 @@ const OID_COMMON_NAME = "2.5.4.3";
|
|
|
231
186
|
const OID_ORGANIZATIONAL_UNIT = "2.5.4.11";
|
|
232
187
|
const OID_ORGANIZATION = "2.5.4.10";
|
|
233
188
|
function createRelativeDistinguishedName(oid, value) {
|
|
234
|
-
return new
|
|
235
|
-
new
|
|
189
|
+
return new RelativeDistinguishedName([
|
|
190
|
+
new AttributeTypeAndValue({
|
|
236
191
|
type: oid,
|
|
237
|
-
value: new
|
|
192
|
+
value: new AttributeValue({ utf8String: value }),
|
|
238
193
|
}),
|
|
239
194
|
]);
|
|
240
195
|
}
|
|
@@ -248,56 +203,56 @@ function buildCertificateName(commonName, organization, organizationalUnit) {
|
|
|
248
203
|
if (organization) {
|
|
249
204
|
rdns.push(createRelativeDistinguishedName(OID_ORGANIZATION, organization));
|
|
250
205
|
}
|
|
251
|
-
return new
|
|
206
|
+
return new Name(rdns);
|
|
252
207
|
}
|
|
253
208
|
function cloneName(name) {
|
|
254
|
-
return
|
|
209
|
+
return AsnConvert.parse(AsnConvert.serialize(name), Name);
|
|
255
210
|
}
|
|
256
211
|
function getCertificateIdentity(cert) {
|
|
257
|
-
const parsed =
|
|
212
|
+
const parsed = AsnConvert.parse(cert.rawData, Certificate);
|
|
258
213
|
return {
|
|
259
214
|
name: cloneName(parsed.tbsCertificate.subject),
|
|
260
|
-
subjectPublicKeyInfo:
|
|
215
|
+
subjectPublicKeyInfo: AsnConvert.serialize(parsed.tbsCertificate.subjectPublicKeyInfo),
|
|
261
216
|
};
|
|
262
217
|
}
|
|
263
218
|
async function buildCaExtensions(subjectPublicKey, issuerPublicKey, options) {
|
|
264
219
|
const extensions = [];
|
|
265
|
-
const basicConstraints = new
|
|
220
|
+
const basicConstraints = new BasicConstraints({ cA: true });
|
|
266
221
|
if (options.pathLength !== null && options.pathLength !== undefined) {
|
|
267
222
|
basicConstraints.pathLenConstraint = options.pathLength;
|
|
268
223
|
}
|
|
269
224
|
extensions.push({
|
|
270
|
-
type:
|
|
225
|
+
type: id_ce_basicConstraints,
|
|
271
226
|
critical: true,
|
|
272
227
|
value: serializeAsn(basicConstraints),
|
|
273
228
|
});
|
|
274
|
-
const keyUsageFlags =
|
|
275
|
-
|
|
276
|
-
|
|
229
|
+
const keyUsageFlags = KeyUsageFlags.digitalSignature |
|
|
230
|
+
KeyUsageFlags.keyCertSign |
|
|
231
|
+
KeyUsageFlags.cRLSign;
|
|
277
232
|
extensions.push({
|
|
278
|
-
type:
|
|
233
|
+
type: id_ce_keyUsage,
|
|
279
234
|
critical: true,
|
|
280
|
-
value: serializeAsn(new
|
|
235
|
+
value: serializeAsn(new X509KeyUsage(keyUsageFlags)),
|
|
281
236
|
});
|
|
282
237
|
const subjectKeyId = await computeKeyIdentifier(subjectPublicKey);
|
|
283
238
|
extensions.push({
|
|
284
|
-
type:
|
|
239
|
+
type: id_ce_subjectKeyIdentifier,
|
|
285
240
|
critical: false,
|
|
286
|
-
value: serializeAsn(new
|
|
241
|
+
value: serializeAsn(new SubjectKeyIdentifier(subjectKeyId)),
|
|
287
242
|
});
|
|
288
243
|
const authorityKeyId = await computeKeyIdentifier(issuerPublicKey);
|
|
289
244
|
extensions.push({
|
|
290
|
-
type:
|
|
245
|
+
type: id_ce_authorityKeyIdentifier,
|
|
291
246
|
critical: false,
|
|
292
|
-
value: serializeAsn(new
|
|
293
|
-
keyIdentifier: new
|
|
247
|
+
value: serializeAsn(new AuthorityKeyIdentifier({
|
|
248
|
+
keyIdentifier: new KeyIdentifier(authorityKeyId),
|
|
294
249
|
})),
|
|
295
250
|
});
|
|
296
251
|
if (options.permittedDnsDomains?.length) {
|
|
297
|
-
const permittedSubtrees = new
|
|
298
|
-
const constraints = new
|
|
252
|
+
const permittedSubtrees = new GeneralSubtrees(options.permittedDnsDomains.map((domain) => new GeneralSubtree({ base: new GeneralName({ dNSName: domain }) })));
|
|
253
|
+
const constraints = new NameConstraints({ permittedSubtrees });
|
|
299
254
|
extensions.push({
|
|
300
|
-
type:
|
|
255
|
+
type: id_ce_nameConstraints,
|
|
301
256
|
critical: true,
|
|
302
257
|
value: serializeAsn(constraints),
|
|
303
258
|
});
|
|
@@ -307,51 +262,51 @@ async function buildCaExtensions(subjectPublicKey, issuerPublicKey, options) {
|
|
|
307
262
|
async function buildLeafExtensions(publicKey, nodeSid, nodeId, spiffeId, logicalHosts, issuerPublicKey) {
|
|
308
263
|
const extensions = [];
|
|
309
264
|
extensions.push({
|
|
310
|
-
type:
|
|
265
|
+
type: id_ce_subjectAltName,
|
|
311
266
|
critical: false,
|
|
312
|
-
value: serializeAsn(new
|
|
313
|
-
new
|
|
267
|
+
value: serializeAsn(new SubjectAlternativeName([
|
|
268
|
+
new GeneralName({ uniformResourceIdentifier: spiffeId }),
|
|
314
269
|
])),
|
|
315
270
|
});
|
|
316
|
-
const keyUsageFlags =
|
|
271
|
+
const keyUsageFlags = KeyUsageFlags.digitalSignature;
|
|
317
272
|
extensions.push({
|
|
318
|
-
type:
|
|
273
|
+
type: id_ce_keyUsage,
|
|
319
274
|
critical: true,
|
|
320
|
-
value: serializeAsn(new
|
|
275
|
+
value: serializeAsn(new X509KeyUsage(keyUsageFlags)),
|
|
321
276
|
});
|
|
322
277
|
extensions.push({
|
|
323
|
-
type:
|
|
278
|
+
type: id_ce_extKeyUsage,
|
|
324
279
|
critical: false,
|
|
325
|
-
value: serializeAsn(new
|
|
280
|
+
value: serializeAsn(new ExtendedKeyUsage([id_kp_clientAuth, id_kp_serverAuth])),
|
|
326
281
|
});
|
|
327
282
|
const subjectKeyId = await computeKeyIdentifier(publicKey);
|
|
328
283
|
extensions.push({
|
|
329
|
-
type:
|
|
284
|
+
type: id_ce_subjectKeyIdentifier,
|
|
330
285
|
critical: false,
|
|
331
|
-
value: serializeAsn(new
|
|
286
|
+
value: serializeAsn(new SubjectKeyIdentifier(subjectKeyId)),
|
|
332
287
|
});
|
|
333
288
|
const authorityKeyId = await computeKeyIdentifier(issuerPublicKey);
|
|
334
289
|
extensions.push({
|
|
335
|
-
type:
|
|
290
|
+
type: id_ce_authorityKeyIdentifier,
|
|
336
291
|
critical: false,
|
|
337
|
-
value: serializeAsn(new
|
|
338
|
-
keyIdentifier: new
|
|
292
|
+
value: serializeAsn(new AuthorityKeyIdentifier({
|
|
293
|
+
keyIdentifier: new KeyIdentifier(authorityKeyId),
|
|
339
294
|
})),
|
|
340
295
|
});
|
|
341
296
|
extensions.push({
|
|
342
|
-
type:
|
|
297
|
+
type: SID_OID,
|
|
343
298
|
critical: false,
|
|
344
299
|
value: toArrayBuffer(new TextEncoder().encode(nodeSid)),
|
|
345
300
|
});
|
|
346
301
|
extensions.push({
|
|
347
|
-
type:
|
|
302
|
+
type: NODE_ID_OID,
|
|
348
303
|
critical: false,
|
|
349
304
|
value: toArrayBuffer(new TextEncoder().encode(nodeId)),
|
|
350
305
|
});
|
|
351
306
|
if (logicalHosts.length) {
|
|
352
307
|
const logicalsJson = JSON.stringify(logicalHosts);
|
|
353
308
|
extensions.push({
|
|
354
|
-
type:
|
|
309
|
+
type: LOGICALS_OID,
|
|
355
310
|
critical: false,
|
|
356
311
|
value: toArrayBuffer(new TextEncoder().encode(logicalsJson)),
|
|
357
312
|
});
|
|
@@ -364,7 +319,7 @@ async function buildLeafExtensions(publicKey, nodeSid, nodeId, spiffeId, logical
|
|
|
364
319
|
* Issues SPIFFE-compliant node certificates with Fame-specific extensions
|
|
365
320
|
* for physical paths and logical addresses.
|
|
366
321
|
*/
|
|
367
|
-
class CASigningService extends
|
|
322
|
+
export class CASigningService extends CAService {
|
|
368
323
|
constructor(options) {
|
|
369
324
|
super();
|
|
370
325
|
this.rootCertPem = options.rootCertPem;
|
|
@@ -437,14 +392,14 @@ class CASigningService extends ca_types_js_1.CAService {
|
|
|
437
392
|
async issueCertificate(csr) {
|
|
438
393
|
// Parse PKCS#10 CSR to extract SubjectPublicKeyInfo
|
|
439
394
|
const csrDer = pemToDer(csr.csrPem);
|
|
440
|
-
const certRequest =
|
|
395
|
+
const certRequest = AsnConvert.parse(csrDer, CertificationRequest);
|
|
441
396
|
const subjectPublicKeyInfo = certRequest.certificationRequestInfo.subjectPKInfo;
|
|
442
397
|
// Convert SubjectPublicKeyInfo to PEM format
|
|
443
|
-
const publicKeyDer =
|
|
398
|
+
const publicKeyDer = AsnConvert.serialize(subjectPublicKeyInfo);
|
|
444
399
|
const publicKeyPem = derToPem(publicKeyDer, "PUBLIC KEY");
|
|
445
400
|
// Determine node SID and physical path (mirrors Python logic)
|
|
446
401
|
const physicalPath = csr.physicalPath || `/unknown/${csr.requesterId}`;
|
|
447
|
-
const nodeSid =
|
|
402
|
+
const nodeSid = secureDigest(physicalPath);
|
|
448
403
|
const logicals = csr.logicals || [];
|
|
449
404
|
// Issue the certificate (short-lived: 1 day)
|
|
450
405
|
const certificatePem = await this.signNodeCert(publicKeyPem, csr.requesterId, // Use requesterId as node_id
|
|
@@ -452,7 +407,7 @@ class CASigningService extends ca_types_js_1.CAService {
|
|
|
452
407
|
undefined);
|
|
453
408
|
// Parse certificate to get expiration
|
|
454
409
|
const certDer = pemToDer(certificatePem);
|
|
455
|
-
const cert =
|
|
410
|
+
const cert = AsnConvert.parse(certDer, Certificate);
|
|
456
411
|
const notAfter = cert.tbsCertificate.validity.notAfter.getTime();
|
|
457
412
|
const expiresAt = new Date(notAfter).toISOString();
|
|
458
413
|
return {
|
|
@@ -476,13 +431,13 @@ class CASigningService extends ca_types_js_1.CAService {
|
|
|
476
431
|
await this.ensureSigningMaterials();
|
|
477
432
|
const signingCert = this.getSigningCertificate();
|
|
478
433
|
const signingKey = this.getSigningKey();
|
|
479
|
-
const expectedSid =
|
|
434
|
+
const expectedSid = secureDigest(physicalPath);
|
|
480
435
|
if (expectedSid !== nodeSid) {
|
|
481
436
|
throw new Error("Provided SID does not match the computed SID for the physical path");
|
|
482
437
|
}
|
|
483
438
|
const logicalHosts = logicals ?? [];
|
|
484
439
|
for (const logical of logicalHosts) {
|
|
485
|
-
const [valid, error] =
|
|
440
|
+
const [valid, error] = validateHostLogical(logical);
|
|
486
441
|
if (!valid) {
|
|
487
442
|
throw new Error(`Invalid logical host '${logical}': ${error ?? "unknown error"}`);
|
|
488
443
|
}
|
|
@@ -496,7 +451,7 @@ class CASigningService extends ca_types_js_1.CAService {
|
|
|
496
451
|
const spiffeId = `spiffe://${spiffeTrustDomain}/nodes/${nodeSid}`;
|
|
497
452
|
const extensions = await buildLeafExtensions(publicKey, nodeSid, nodeId, spiffeId, logicalHosts, issuerIdentity.subjectPublicKeyInfo);
|
|
498
453
|
const issuerName = issuerIdentity.name;
|
|
499
|
-
const subjectName = new
|
|
454
|
+
const subjectName = new Name([]); // SPIFFE X.509-SVIDs require an empty subject DN
|
|
500
455
|
const certDer = await createEd25519Certificate({
|
|
501
456
|
subject: subjectName,
|
|
502
457
|
issuer: issuerName,
|
|
@@ -546,7 +501,6 @@ class CASigningService extends ca_types_js_1.CAService {
|
|
|
546
501
|
return derToPem(certDer, "CERTIFICATE");
|
|
547
502
|
}
|
|
548
503
|
}
|
|
549
|
-
exports.CASigningService = CASigningService;
|
|
550
504
|
/**
|
|
551
505
|
* Create a test root CA for development/testing.
|
|
552
506
|
*
|
|
@@ -554,7 +508,7 @@ exports.CASigningService = CASigningService;
|
|
|
554
508
|
*
|
|
555
509
|
* @returns Tuple of [rootCertPem, rootKeyPem]
|
|
556
510
|
*/
|
|
557
|
-
async function createTestCA() {
|
|
511
|
+
export async function createTestCA() {
|
|
558
512
|
const subtle = await getSubtleCrypto();
|
|
559
513
|
await ensureCrypto();
|
|
560
514
|
const keyPair = await subtle.generateKey({
|
|
@@ -588,7 +542,7 @@ async function createTestCA() {
|
|
|
588
542
|
* @param certPem - Certificate in PEM format
|
|
589
543
|
* @returns SPIFFE ID string or null if not found
|
|
590
544
|
*/
|
|
591
|
-
async function extractSpiffeIdFromCert(certPem) {
|
|
545
|
+
export async function extractSpiffeIdFromCert(certPem) {
|
|
592
546
|
const x509 = await loadX509Module();
|
|
593
547
|
if (!x509) {
|
|
594
548
|
throw new Error("@peculiar/x509 module not available");
|
|
@@ -612,7 +566,7 @@ async function extractSpiffeIdFromCert(certPem) {
|
|
|
612
566
|
* @param certPem - Certificate in PEM format
|
|
613
567
|
* @returns SID bytes or null if not found
|
|
614
568
|
*/
|
|
615
|
-
async function extractSidFromCert(certPem) {
|
|
569
|
+
export async function extractSidFromCert(certPem) {
|
|
616
570
|
const x509 = await loadX509Module();
|
|
617
571
|
if (!x509) {
|
|
618
572
|
throw new Error("@peculiar/x509 module not available");
|
|
@@ -620,7 +574,7 @@ async function extractSidFromCert(certPem) {
|
|
|
620
574
|
try {
|
|
621
575
|
const certDer = pemToDer(certPem);
|
|
622
576
|
const cert = new x509.X509Certificate(certDer);
|
|
623
|
-
const sidExtension = cert.getExtension(
|
|
577
|
+
const sidExtension = cert.getExtension(SID_OID);
|
|
624
578
|
if (sidExtension) {
|
|
625
579
|
return new Uint8Array(sidExtension);
|
|
626
580
|
}
|
|
@@ -637,7 +591,7 @@ async function extractSidFromCert(certPem) {
|
|
|
637
591
|
* @param certPem - Certificate in PEM format
|
|
638
592
|
* @returns Node ID string or null if not found
|
|
639
593
|
*/
|
|
640
|
-
async function extractNodeIdFromCert(certPem) {
|
|
594
|
+
export async function extractNodeIdFromCert(certPem) {
|
|
641
595
|
const x509 = await loadX509Module();
|
|
642
596
|
if (!x509) {
|
|
643
597
|
throw new Error("@peculiar/x509 module not available");
|
|
@@ -645,7 +599,7 @@ async function extractNodeIdFromCert(certPem) {
|
|
|
645
599
|
try {
|
|
646
600
|
const certDer = pemToDer(certPem);
|
|
647
601
|
const cert = new x509.X509Certificate(certDer);
|
|
648
|
-
const nodeIdExtension = cert.getExtension(
|
|
602
|
+
const nodeIdExtension = cert.getExtension(NODE_ID_OID);
|
|
649
603
|
if (nodeIdExtension) {
|
|
650
604
|
const decoder = new TextDecoder();
|
|
651
605
|
return decoder.decode(nodeIdExtension);
|
|
@@ -663,7 +617,7 @@ async function extractNodeIdFromCert(certPem) {
|
|
|
663
617
|
* @param certPem - Certificate in PEM format
|
|
664
618
|
* @returns List of logical host addresses, empty if none found
|
|
665
619
|
*/
|
|
666
|
-
async function extractLogicalHostsFromCert(certPem) {
|
|
620
|
+
export async function extractLogicalHostsFromCert(certPem) {
|
|
667
621
|
const x509 = await loadX509Module();
|
|
668
622
|
if (!x509) {
|
|
669
623
|
throw new Error("@peculiar/x509 module not available");
|
|
@@ -671,7 +625,7 @@ async function extractLogicalHostsFromCert(certPem) {
|
|
|
671
625
|
try {
|
|
672
626
|
const certDer = pemToDer(certPem);
|
|
673
627
|
const cert = new x509.X509Certificate(certDer);
|
|
674
|
-
const logicalsExtension = cert.getExtension(
|
|
628
|
+
const logicalsExtension = cert.getExtension(LOGICALS_OID);
|
|
675
629
|
if (logicalsExtension) {
|
|
676
630
|
const decoder = new TextDecoder();
|
|
677
631
|
const jsonStr = decoder.decode(logicalsExtension);
|
|
@@ -690,7 +644,7 @@ async function extractLogicalHostsFromCert(certPem) {
|
|
|
690
644
|
* @param spiffeId - SPIFFE ID in format spiffe://trust-domain/nodes/<sid>
|
|
691
645
|
* @returns SID string (base62-encoded) or null if not a valid node SPIFFE ID
|
|
692
646
|
*/
|
|
693
|
-
function extractSidFromSpiffeId(spiffeId) {
|
|
647
|
+
export function extractSidFromSpiffeId(spiffeId) {
|
|
694
648
|
if (!spiffeId.startsWith("spiffe://")) {
|
|
695
649
|
return null;
|
|
696
650
|
}
|
|
@@ -708,7 +662,7 @@ function extractSidFromSpiffeId(spiffeId) {
|
|
|
708
662
|
* @param physicalPath - The expected physical path to verify against
|
|
709
663
|
* @returns True if SID matches computed hash of physical path, False otherwise
|
|
710
664
|
*/
|
|
711
|
-
async function verifyCertSidIntegrity(certPem, physicalPath) {
|
|
665
|
+
export async function verifyCertSidIntegrity(certPem, physicalPath) {
|
|
712
666
|
const sidBytes = await extractSidFromCert(certPem);
|
|
713
667
|
if (!sidBytes) {
|
|
714
668
|
return false;
|