@naylence/advanced-security 0.3.7-test.113 → 0.3.7-test.114

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. package/package.json +1 -1
  2. package/dist/browser/index.cjs +0 -9879
  3. package/dist/browser/index.mjs +0 -9826
  4. package/dist/cjs/advanced-security-isomorphic.js +0 -97
  5. package/dist/cjs/advanced-security-isomorphic.js.map +0 -1
  6. package/dist/cjs/browser.js +0 -25
  7. package/dist/cjs/browser.js.map +0 -1
  8. package/dist/cjs/index.js +0 -2
  9. package/dist/cjs/index.js.map +0 -1
  10. package/dist/cjs/install-env.js +0 -2
  11. package/dist/cjs/install-env.js.map +0 -1
  12. package/dist/cjs/naylence/fame/factory-manifest.js +0 -39
  13. package/dist/cjs/naylence/fame/factory-manifest.js.map +0 -1
  14. package/dist/cjs/naylence/fame/security/cert/browser-csr.js +0 -103
  15. package/dist/cjs/naylence/fame/security/cert/browser-csr.js.map +0 -1
  16. package/dist/cjs/naylence/fame/security/cert/ca-server-cli.js +0 -30
  17. package/dist/cjs/naylence/fame/security/cert/ca-server-cli.js.map +0 -1
  18. package/dist/cjs/naylence/fame/security/cert/ca-server.js +0 -223
  19. package/dist/cjs/naylence/fame/security/cert/ca-server.js.map +0 -1
  20. package/dist/cjs/naylence/fame/security/cert/ca-service-client.js +0 -585
  21. package/dist/cjs/naylence/fame/security/cert/ca-service-client.js.map +0 -1
  22. package/dist/cjs/naylence/fame/security/cert/ca-service-factory.js +0 -61
  23. package/dist/cjs/naylence/fame/security/cert/ca-service-factory.js.map +0 -1
  24. package/dist/cjs/naylence/fame/security/cert/ca-types.js +0 -39
  25. package/dist/cjs/naylence/fame/security/cert/ca-types.js.map +0 -1
  26. package/dist/cjs/naylence/fame/security/cert/csr-types.js +0 -2
  27. package/dist/cjs/naylence/fame/security/cert/csr-types.js.map +0 -1
  28. package/dist/cjs/naylence/fame/security/cert/default-ca-service-factory.js +0 -66
  29. package/dist/cjs/naylence/fame/security/cert/default-ca-service-factory.js.map +0 -1
  30. package/dist/cjs/naylence/fame/security/cert/default-ca-service.js +0 -364
  31. package/dist/cjs/naylence/fame/security/cert/default-ca-service.js.map +0 -1
  32. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager-factory.js +0 -73
  33. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager-factory.js.map +0 -1
  34. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager.js +0 -815
  35. package/dist/cjs/naylence/fame/security/cert/default-certificate-manager.js.map +0 -1
  36. package/dist/cjs/naylence/fame/security/cert/grants.js +0 -2
  37. package/dist/cjs/naylence/fame/security/cert/grants.js.map +0 -1
  38. package/dist/cjs/naylence/fame/security/cert/index.js +0 -18
  39. package/dist/cjs/naylence/fame/security/cert/index.js.map +0 -1
  40. package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js +0 -741
  41. package/dist/cjs/naylence/fame/security/cert/internal-ca-service.js.map +0 -1
  42. package/dist/cjs/naylence/fame/security/cert/node-ed25519-csr.js +0 -156
  43. package/dist/cjs/naylence/fame/security/cert/node-ed25519-csr.js.map +0 -1
  44. package/dist/cjs/naylence/fame/security/cert/oid-constants.js +0 -7
  45. package/dist/cjs/naylence/fame/security/cert/oid-constants.js.map +0 -1
  46. package/dist/cjs/naylence/fame/security/cert/trust-store/anchor-utils.js +0 -119
  47. package/dist/cjs/naylence/fame/security/cert/trust-store/anchor-utils.js.map +0 -1
  48. package/dist/cjs/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.js +0 -82
  49. package/dist/cjs/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.js.map +0 -1
  50. package/dist/cjs/naylence/fame/security/cert/trust-store/env-provider.js +0 -168
  51. package/dist/cjs/naylence/fame/security/cert/trust-store/env-provider.js.map +0 -1
  52. package/dist/cjs/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js +0 -257
  53. package/dist/cjs/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js.map +0 -1
  54. package/dist/cjs/naylence/fame/security/cert/trust-store/http-bundle-provider.js +0 -497
  55. package/dist/cjs/naylence/fame/security/cert/trust-store/http-bundle-provider.js.map +0 -1
  56. package/dist/cjs/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js +0 -2
  57. package/dist/cjs/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js.map +0 -1
  58. package/dist/cjs/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.js +0 -61
  59. package/dist/cjs/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.js.map +0 -1
  60. package/dist/cjs/naylence/fame/security/cert/trust-store/static-bundle-provider.js +0 -44
  61. package/dist/cjs/naylence/fame/security/cert/trust-store/static-bundle-provider.js.map +0 -1
  62. package/dist/cjs/naylence/fame/security/cert/trust-store/trust-store-provider-factory.js +0 -40
  63. package/dist/cjs/naylence/fame/security/cert/trust-store/trust-store-provider-factory.js.map +0 -1
  64. package/dist/cjs/naylence/fame/security/cert/trust-store/trust-store-provider.js +0 -2
  65. package/dist/cjs/naylence/fame/security/cert/trust-store/trust-store-provider.js.map +0 -1
  66. package/dist/cjs/naylence/fame/security/cert/util.js +0 -515
  67. package/dist/cjs/naylence/fame/security/cert/util.js.map +0 -1
  68. package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js +0 -85
  69. package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js.map +0 -1
  70. package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager.js +0 -743
  71. package/dist/cjs/naylence/fame/security/encryption/channel/channel-encryption-manager.js.map +0 -1
  72. package/dist/cjs/naylence/fame/security/encryption/channel/index.js +0 -3
  73. package/dist/cjs/naylence/fame/security/encryption/channel/index.js.map +0 -1
  74. package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager-factory.js +0 -113
  75. package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager-factory.js.map +0 -1
  76. package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager.js +0 -321
  77. package/dist/cjs/naylence/fame/security/encryption/composite-encryption-manager.js.map +0 -1
  78. package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager-factory.js +0 -53
  79. package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager-factory.js.map +0 -1
  80. package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager.js +0 -278
  81. package/dist/cjs/naylence/fame/security/encryption/default-secure-channel-manager.js.map +0 -1
  82. package/dist/cjs/naylence/fame/security/encryption/encryption-manager-registry.js +0 -167
  83. package/dist/cjs/naylence/fame/security/encryption/encryption-manager-registry.js.map +0 -1
  84. package/dist/cjs/naylence/fame/security/encryption/index.js +0 -7
  85. package/dist/cjs/naylence/fame/security/encryption/index.js.map +0 -1
  86. package/dist/cjs/naylence/fame/security/encryption/sealed/index.js +0 -3
  87. package/dist/cjs/naylence/fame/security/encryption/sealed/index.js.map +0 -1
  88. package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js +0 -82
  89. package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js.map +0 -1
  90. package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js +0 -542
  91. package/dist/cjs/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js.map +0 -1
  92. package/dist/cjs/naylence/fame/security/index.js +0 -6
  93. package/dist/cjs/naylence/fame/security/index.js.map +0 -1
  94. package/dist/cjs/naylence/fame/security/keys/index.js +0 -3
  95. package/dist/cjs/naylence/fame/security/keys/index.js.map +0 -1
  96. package/dist/cjs/naylence/fame/security/keys/x5c-key-manager-factory.js +0 -36
  97. package/dist/cjs/naylence/fame/security/keys/x5c-key-manager-factory.js.map +0 -1
  98. package/dist/cjs/naylence/fame/security/keys/x5c-key-manager.js +0 -405
  99. package/dist/cjs/naylence/fame/security/keys/x5c-key-manager.js.map +0 -1
  100. package/dist/cjs/naylence/fame/security/register-advanced-security-factories.js +0 -283
  101. package/dist/cjs/naylence/fame/security/register-advanced-security-factories.js.map +0 -1
  102. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-signer-factory.js +0 -34
  103. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-signer-factory.js.map +0 -1
  104. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js +0 -33
  105. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js.map +0 -1
  106. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier.js +0 -189
  107. package/dist/cjs/naylence/fame/security/signing/eddsa-envelope-verifier.js.map +0 -1
  108. package/dist/cjs/naylence/fame/stickiness/aft-helper.js +0 -72
  109. package/dist/cjs/naylence/fame/stickiness/aft-helper.js.map +0 -1
  110. package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js +0 -65
  111. package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js.map +0 -1
  112. package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js +0 -447
  113. package/dist/cjs/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js.map +0 -1
  114. package/dist/cjs/naylence/fame/stickiness/aft-model.js +0 -54
  115. package/dist/cjs/naylence/fame/stickiness/aft-model.js.map +0 -1
  116. package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js +0 -50
  117. package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js.map +0 -1
  118. package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager.js +0 -203
  119. package/dist/cjs/naylence/fame/stickiness/aft-replica-stickiness-manager.js.map +0 -1
  120. package/dist/cjs/naylence/fame/stickiness/aft-signer.js +0 -147
  121. package/dist/cjs/naylence/fame/stickiness/aft-signer.js.map +0 -1
  122. package/dist/cjs/naylence/fame/stickiness/aft-utils.js +0 -90
  123. package/dist/cjs/naylence/fame/stickiness/aft-utils.js.map +0 -1
  124. package/dist/cjs/naylence/fame/stickiness/aft-verifier.js +0 -290
  125. package/dist/cjs/naylence/fame/stickiness/aft-verifier.js.map +0 -1
  126. package/dist/cjs/naylence/fame/stickiness/index.js +0 -11
  127. package/dist/cjs/naylence/fame/stickiness/index.js.map +0 -1
  128. package/dist/cjs/naylence/fame/stickiness/stickiness-mode.js +0 -24
  129. package/dist/cjs/naylence/fame/stickiness/stickiness-mode.js.map +0 -1
  130. package/dist/cjs/naylence/fame/welcome/advanced-welcome-service-factory.js +0 -93
  131. package/dist/cjs/naylence/fame/welcome/advanced-welcome-service-factory.js.map +0 -1
  132. package/dist/cjs/naylence/fame/welcome/advanced-welcome-service.js +0 -212
  133. package/dist/cjs/naylence/fame/welcome/advanced-welcome-service.js.map +0 -1
  134. package/dist/cjs/naylence/fame/welcome/index.js +0 -3
  135. package/dist/cjs/naylence/fame/welcome/index.js.map +0 -1
  136. package/dist/cjs/node.js +0 -11
  137. package/dist/cjs/node.js.map +0 -1
  138. package/dist/cjs/plugin.js +0 -39
  139. package/dist/cjs/plugin.js.map +0 -1
  140. package/dist/cjs/version.js +0 -8
  141. package/dist/cjs/version.js.map +0 -1
  142. package/dist/esm/advanced-security-isomorphic.js +0 -97
  143. package/dist/esm/advanced-security-isomorphic.js.map +0 -1
  144. package/dist/esm/browser.js +0 -25
  145. package/dist/esm/browser.js.map +0 -1
  146. package/dist/esm/index.js +0 -2
  147. package/dist/esm/index.js.map +0 -1
  148. package/dist/esm/install-env.js +0 -2
  149. package/dist/esm/install-env.js.map +0 -1
  150. package/dist/esm/naylence/fame/factory-manifest.js +0 -39
  151. package/dist/esm/naylence/fame/factory-manifest.js.map +0 -1
  152. package/dist/esm/naylence/fame/security/cert/browser-csr.js +0 -103
  153. package/dist/esm/naylence/fame/security/cert/browser-csr.js.map +0 -1
  154. package/dist/esm/naylence/fame/security/cert/ca-server-cli.js +0 -30
  155. package/dist/esm/naylence/fame/security/cert/ca-server-cli.js.map +0 -1
  156. package/dist/esm/naylence/fame/security/cert/ca-server.js +0 -223
  157. package/dist/esm/naylence/fame/security/cert/ca-server.js.map +0 -1
  158. package/dist/esm/naylence/fame/security/cert/ca-service-client.js +0 -585
  159. package/dist/esm/naylence/fame/security/cert/ca-service-client.js.map +0 -1
  160. package/dist/esm/naylence/fame/security/cert/ca-service-factory.js +0 -61
  161. package/dist/esm/naylence/fame/security/cert/ca-service-factory.js.map +0 -1
  162. package/dist/esm/naylence/fame/security/cert/ca-types.js +0 -39
  163. package/dist/esm/naylence/fame/security/cert/ca-types.js.map +0 -1
  164. package/dist/esm/naylence/fame/security/cert/csr-types.js +0 -2
  165. package/dist/esm/naylence/fame/security/cert/csr-types.js.map +0 -1
  166. package/dist/esm/naylence/fame/security/cert/default-ca-service-factory.js +0 -66
  167. package/dist/esm/naylence/fame/security/cert/default-ca-service-factory.js.map +0 -1
  168. package/dist/esm/naylence/fame/security/cert/default-ca-service.js +0 -364
  169. package/dist/esm/naylence/fame/security/cert/default-ca-service.js.map +0 -1
  170. package/dist/esm/naylence/fame/security/cert/default-certificate-manager-factory.js +0 -73
  171. package/dist/esm/naylence/fame/security/cert/default-certificate-manager-factory.js.map +0 -1
  172. package/dist/esm/naylence/fame/security/cert/default-certificate-manager.js +0 -815
  173. package/dist/esm/naylence/fame/security/cert/default-certificate-manager.js.map +0 -1
  174. package/dist/esm/naylence/fame/security/cert/grants.js +0 -2
  175. package/dist/esm/naylence/fame/security/cert/grants.js.map +0 -1
  176. package/dist/esm/naylence/fame/security/cert/index.js +0 -18
  177. package/dist/esm/naylence/fame/security/cert/index.js.map +0 -1
  178. package/dist/esm/naylence/fame/security/cert/internal-ca-service.js +0 -741
  179. package/dist/esm/naylence/fame/security/cert/internal-ca-service.js.map +0 -1
  180. package/dist/esm/naylence/fame/security/cert/node-ed25519-csr.js +0 -156
  181. package/dist/esm/naylence/fame/security/cert/node-ed25519-csr.js.map +0 -1
  182. package/dist/esm/naylence/fame/security/cert/oid-constants.js +0 -7
  183. package/dist/esm/naylence/fame/security/cert/oid-constants.js.map +0 -1
  184. package/dist/esm/naylence/fame/security/cert/trust-store/anchor-utils.js +0 -119
  185. package/dist/esm/naylence/fame/security/cert/trust-store/anchor-utils.js.map +0 -1
  186. package/dist/esm/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.js +0 -82
  187. package/dist/esm/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.js.map +0 -1
  188. package/dist/esm/naylence/fame/security/cert/trust-store/env-provider.js +0 -168
  189. package/dist/esm/naylence/fame/security/cert/trust-store/env-provider.js.map +0 -1
  190. package/dist/esm/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js +0 -257
  191. package/dist/esm/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.js.map +0 -1
  192. package/dist/esm/naylence/fame/security/cert/trust-store/http-bundle-provider.js +0 -497
  193. package/dist/esm/naylence/fame/security/cert/trust-store/http-bundle-provider.js.map +0 -1
  194. package/dist/esm/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js +0 -2
  195. package/dist/esm/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.js.map +0 -1
  196. package/dist/esm/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.js +0 -61
  197. package/dist/esm/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.js.map +0 -1
  198. package/dist/esm/naylence/fame/security/cert/trust-store/static-bundle-provider.js +0 -44
  199. package/dist/esm/naylence/fame/security/cert/trust-store/static-bundle-provider.js.map +0 -1
  200. package/dist/esm/naylence/fame/security/cert/trust-store/trust-store-provider-factory.js +0 -40
  201. package/dist/esm/naylence/fame/security/cert/trust-store/trust-store-provider-factory.js.map +0 -1
  202. package/dist/esm/naylence/fame/security/cert/trust-store/trust-store-provider.js +0 -2
  203. package/dist/esm/naylence/fame/security/cert/trust-store/trust-store-provider.js.map +0 -1
  204. package/dist/esm/naylence/fame/security/cert/util.js +0 -515
  205. package/dist/esm/naylence/fame/security/cert/util.js.map +0 -1
  206. package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js +0 -85
  207. package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.js.map +0 -1
  208. package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager.js +0 -743
  209. package/dist/esm/naylence/fame/security/encryption/channel/channel-encryption-manager.js.map +0 -1
  210. package/dist/esm/naylence/fame/security/encryption/channel/index.js +0 -3
  211. package/dist/esm/naylence/fame/security/encryption/channel/index.js.map +0 -1
  212. package/dist/esm/naylence/fame/security/encryption/composite-encryption-manager-factory.js +0 -113
  213. package/dist/esm/naylence/fame/security/encryption/composite-encryption-manager-factory.js.map +0 -1
  214. package/dist/esm/naylence/fame/security/encryption/composite-encryption-manager.js +0 -321
  215. package/dist/esm/naylence/fame/security/encryption/composite-encryption-manager.js.map +0 -1
  216. package/dist/esm/naylence/fame/security/encryption/default-secure-channel-manager-factory.js +0 -53
  217. package/dist/esm/naylence/fame/security/encryption/default-secure-channel-manager-factory.js.map +0 -1
  218. package/dist/esm/naylence/fame/security/encryption/default-secure-channel-manager.js +0 -278
  219. package/dist/esm/naylence/fame/security/encryption/default-secure-channel-manager.js.map +0 -1
  220. package/dist/esm/naylence/fame/security/encryption/encryption-manager-registry.js +0 -167
  221. package/dist/esm/naylence/fame/security/encryption/encryption-manager-registry.js.map +0 -1
  222. package/dist/esm/naylence/fame/security/encryption/index.js +0 -7
  223. package/dist/esm/naylence/fame/security/encryption/index.js.map +0 -1
  224. package/dist/esm/naylence/fame/security/encryption/sealed/index.js +0 -3
  225. package/dist/esm/naylence/fame/security/encryption/sealed/index.js.map +0 -1
  226. package/dist/esm/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js +0 -82
  227. package/dist/esm/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.js.map +0 -1
  228. package/dist/esm/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js +0 -542
  229. package/dist/esm/naylence/fame/security/encryption/sealed/x25519-encryption-manager.js.map +0 -1
  230. package/dist/esm/naylence/fame/security/index.js +0 -6
  231. package/dist/esm/naylence/fame/security/index.js.map +0 -1
  232. package/dist/esm/naylence/fame/security/keys/index.js +0 -3
  233. package/dist/esm/naylence/fame/security/keys/index.js.map +0 -1
  234. package/dist/esm/naylence/fame/security/keys/x5c-key-manager-factory.js +0 -36
  235. package/dist/esm/naylence/fame/security/keys/x5c-key-manager-factory.js.map +0 -1
  236. package/dist/esm/naylence/fame/security/keys/x5c-key-manager.js +0 -405
  237. package/dist/esm/naylence/fame/security/keys/x5c-key-manager.js.map +0 -1
  238. package/dist/esm/naylence/fame/security/register-advanced-security-factories.js +0 -283
  239. package/dist/esm/naylence/fame/security/register-advanced-security-factories.js.map +0 -1
  240. package/dist/esm/naylence/fame/security/signing/eddsa-envelope-signer-factory.js +0 -34
  241. package/dist/esm/naylence/fame/security/signing/eddsa-envelope-signer-factory.js.map +0 -1
  242. package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js +0 -33
  243. package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier-factory.js.map +0 -1
  244. package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier.js +0 -189
  245. package/dist/esm/naylence/fame/security/signing/eddsa-envelope-verifier.js.map +0 -1
  246. package/dist/esm/naylence/fame/stickiness/aft-helper.js +0 -72
  247. package/dist/esm/naylence/fame/stickiness/aft-helper.js.map +0 -1
  248. package/dist/esm/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js +0 -65
  249. package/dist/esm/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.js.map +0 -1
  250. package/dist/esm/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js +0 -447
  251. package/dist/esm/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.js.map +0 -1
  252. package/dist/esm/naylence/fame/stickiness/aft-model.js +0 -54
  253. package/dist/esm/naylence/fame/stickiness/aft-model.js.map +0 -1
  254. package/dist/esm/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js +0 -50
  255. package/dist/esm/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.js.map +0 -1
  256. package/dist/esm/naylence/fame/stickiness/aft-replica-stickiness-manager.js +0 -203
  257. package/dist/esm/naylence/fame/stickiness/aft-replica-stickiness-manager.js.map +0 -1
  258. package/dist/esm/naylence/fame/stickiness/aft-signer.js +0 -147
  259. package/dist/esm/naylence/fame/stickiness/aft-signer.js.map +0 -1
  260. package/dist/esm/naylence/fame/stickiness/aft-utils.js +0 -90
  261. package/dist/esm/naylence/fame/stickiness/aft-utils.js.map +0 -1
  262. package/dist/esm/naylence/fame/stickiness/aft-verifier.js +0 -290
  263. package/dist/esm/naylence/fame/stickiness/aft-verifier.js.map +0 -1
  264. package/dist/esm/naylence/fame/stickiness/index.js +0 -11
  265. package/dist/esm/naylence/fame/stickiness/index.js.map +0 -1
  266. package/dist/esm/naylence/fame/stickiness/stickiness-mode.js +0 -24
  267. package/dist/esm/naylence/fame/stickiness/stickiness-mode.js.map +0 -1
  268. package/dist/esm/naylence/fame/welcome/advanced-welcome-service-factory.js +0 -93
  269. package/dist/esm/naylence/fame/welcome/advanced-welcome-service-factory.js.map +0 -1
  270. package/dist/esm/naylence/fame/welcome/advanced-welcome-service.js +0 -212
  271. package/dist/esm/naylence/fame/welcome/advanced-welcome-service.js.map +0 -1
  272. package/dist/esm/naylence/fame/welcome/index.js +0 -3
  273. package/dist/esm/naylence/fame/welcome/index.js.map +0 -1
  274. package/dist/esm/node.js +0 -11
  275. package/dist/esm/node.js.map +0 -1
  276. package/dist/esm/plugin.js +0 -39
  277. package/dist/esm/plugin.js.map +0 -1
  278. package/dist/esm/version.js +0 -8
  279. package/dist/esm/version.js.map +0 -1
  280. package/dist/node/index.cjs +0 -9870
  281. package/dist/node/index.mjs +0 -9815
  282. package/dist/node/node.cjs +0 -10154
  283. package/dist/node/node.mjs +0 -10061
  284. package/dist/types/advanced-security-isomorphic.d.ts +0 -24
  285. package/dist/types/advanced-security-isomorphic.d.ts.map +0 -1
  286. package/dist/types/browser.d.ts +0 -19
  287. package/dist/types/browser.d.ts.map +0 -1
  288. package/dist/types/index.d.ts +0 -2
  289. package/dist/types/index.d.ts.map +0 -1
  290. package/dist/types/install-env.d.ts +0 -3
  291. package/dist/types/install-env.d.ts.map +0 -1
  292. package/dist/types/naylence/fame/factory-manifest.d.ts +0 -11
  293. package/dist/types/naylence/fame/factory-manifest.d.ts.map +0 -1
  294. package/dist/types/naylence/fame/security/cert/browser-csr.d.ts +0 -9
  295. package/dist/types/naylence/fame/security/cert/browser-csr.d.ts.map +0 -1
  296. package/dist/types/naylence/fame/security/cert/ca-server-cli.d.ts +0 -3
  297. package/dist/types/naylence/fame/security/cert/ca-server-cli.d.ts.map +0 -1
  298. package/dist/types/naylence/fame/security/cert/ca-server.d.ts +0 -19
  299. package/dist/types/naylence/fame/security/cert/ca-server.d.ts.map +0 -1
  300. package/dist/types/naylence/fame/security/cert/ca-service-client.d.ts +0 -75
  301. package/dist/types/naylence/fame/security/cert/ca-service-client.d.ts.map +0 -1
  302. package/dist/types/naylence/fame/security/cert/ca-service-factory.d.ts +0 -43
  303. package/dist/types/naylence/fame/security/cert/ca-service-factory.d.ts.map +0 -1
  304. package/dist/types/naylence/fame/security/cert/ca-types.d.ts +0 -129
  305. package/dist/types/naylence/fame/security/cert/ca-types.d.ts.map +0 -1
  306. package/dist/types/naylence/fame/security/cert/csr-types.d.ts +0 -5
  307. package/dist/types/naylence/fame/security/cert/csr-types.d.ts.map +0 -1
  308. package/dist/types/naylence/fame/security/cert/default-ca-service-factory.d.ts +0 -55
  309. package/dist/types/naylence/fame/security/cert/default-ca-service-factory.d.ts.map +0 -1
  310. package/dist/types/naylence/fame/security/cert/default-ca-service.d.ts +0 -85
  311. package/dist/types/naylence/fame/security/cert/default-ca-service.d.ts.map +0 -1
  312. package/dist/types/naylence/fame/security/cert/default-certificate-manager-factory.d.ts +0 -25
  313. package/dist/types/naylence/fame/security/cert/default-certificate-manager-factory.d.ts.map +0 -1
  314. package/dist/types/naylence/fame/security/cert/default-certificate-manager.d.ts +0 -70
  315. package/dist/types/naylence/fame/security/cert/default-certificate-manager.d.ts.map +0 -1
  316. package/dist/types/naylence/fame/security/cert/grants.d.ts +0 -2
  317. package/dist/types/naylence/fame/security/cert/grants.d.ts.map +0 -1
  318. package/dist/types/naylence/fame/security/cert/index.d.ts +0 -19
  319. package/dist/types/naylence/fame/security/cert/index.d.ts.map +0 -1
  320. package/dist/types/naylence/fame/security/cert/internal-ca-service.d.ts +0 -129
  321. package/dist/types/naylence/fame/security/cert/internal-ca-service.d.ts.map +0 -1
  322. package/dist/types/naylence/fame/security/cert/node-ed25519-csr.d.ts +0 -9
  323. package/dist/types/naylence/fame/security/cert/node-ed25519-csr.d.ts.map +0 -1
  324. package/dist/types/naylence/fame/security/cert/oid-constants.d.ts +0 -7
  325. package/dist/types/naylence/fame/security/cert/oid-constants.d.ts.map +0 -1
  326. package/dist/types/naylence/fame/security/cert/trust-store/anchor-utils.d.ts +0 -12
  327. package/dist/types/naylence/fame/security/cert/trust-store/anchor-utils.d.ts.map +0 -1
  328. package/dist/types/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.d.ts +0 -29
  329. package/dist/types/naylence/fame/security/cert/trust-store/browser-trust-store-provider-factory.d.ts.map +0 -1
  330. package/dist/types/naylence/fame/security/cert/trust-store/env-provider.d.ts +0 -7
  331. package/dist/types/naylence/fame/security/cert/trust-store/env-provider.d.ts.map +0 -1
  332. package/dist/types/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.d.ts +0 -9
  333. package/dist/types/naylence/fame/security/cert/trust-store/fame-ca-certs-parser.d.ts.map +0 -1
  334. package/dist/types/naylence/fame/security/cert/trust-store/http-bundle-provider.d.ts +0 -35
  335. package/dist/types/naylence/fame/security/cert/trust-store/http-bundle-provider.d.ts.map +0 -1
  336. package/dist/types/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.d.ts +0 -2
  337. package/dist/types/naylence/fame/security/cert/trust-store/http-signed-bundle-provider.d.ts.map +0 -1
  338. package/dist/types/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.d.ts +0 -23
  339. package/dist/types/naylence/fame/security/cert/trust-store/node-trust-store-provider-factory.d.ts.map +0 -1
  340. package/dist/types/naylence/fame/security/cert/trust-store/static-bundle-provider.d.ts +0 -15
  341. package/dist/types/naylence/fame/security/cert/trust-store/static-bundle-provider.d.ts.map +0 -1
  342. package/dist/types/naylence/fame/security/cert/trust-store/trust-store-provider-factory.d.ts +0 -28
  343. package/dist/types/naylence/fame/security/cert/trust-store/trust-store-provider-factory.d.ts.map +0 -1
  344. package/dist/types/naylence/fame/security/cert/trust-store/trust-store-provider.d.ts +0 -43
  345. package/dist/types/naylence/fame/security/cert/trust-store/trust-store-provider.d.ts.map +0 -1
  346. package/dist/types/naylence/fame/security/cert/util.d.ts +0 -25
  347. package/dist/types/naylence/fame/security/cert/util.d.ts.map +0 -1
  348. package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.d.ts +0 -29
  349. package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager-factory.d.ts.map +0 -1
  350. package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager.d.ts +0 -51
  351. package/dist/types/naylence/fame/security/encryption/channel/channel-encryption-manager.d.ts.map +0 -1
  352. package/dist/types/naylence/fame/security/encryption/channel/index.d.ts +0 -3
  353. package/dist/types/naylence/fame/security/encryption/channel/index.d.ts.map +0 -1
  354. package/dist/types/naylence/fame/security/encryption/composite-encryption-manager-factory.d.ts +0 -32
  355. package/dist/types/naylence/fame/security/encryption/composite-encryption-manager-factory.d.ts.map +0 -1
  356. package/dist/types/naylence/fame/security/encryption/composite-encryption-manager.d.ts +0 -52
  357. package/dist/types/naylence/fame/security/encryption/composite-encryption-manager.d.ts.map +0 -1
  358. package/dist/types/naylence/fame/security/encryption/default-secure-channel-manager-factory.d.ts +0 -23
  359. package/dist/types/naylence/fame/security/encryption/default-secure-channel-manager-factory.d.ts.map +0 -1
  360. package/dist/types/naylence/fame/security/encryption/default-secure-channel-manager.d.ts +0 -37
  361. package/dist/types/naylence/fame/security/encryption/default-secure-channel-manager.d.ts.map +0 -1
  362. package/dist/types/naylence/fame/security/encryption/encryption-manager-registry.d.ts +0 -34
  363. package/dist/types/naylence/fame/security/encryption/encryption-manager-registry.d.ts.map +0 -1
  364. package/dist/types/naylence/fame/security/encryption/index.d.ts +0 -7
  365. package/dist/types/naylence/fame/security/encryption/index.d.ts.map +0 -1
  366. package/dist/types/naylence/fame/security/encryption/sealed/index.d.ts +0 -3
  367. package/dist/types/naylence/fame/security/encryption/sealed/index.d.ts.map +0 -1
  368. package/dist/types/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.d.ts +0 -28
  369. package/dist/types/naylence/fame/security/encryption/sealed/x25519-encryption-manager-factory.d.ts.map +0 -1
  370. package/dist/types/naylence/fame/security/encryption/sealed/x25519-encryption-manager.d.ts +0 -43
  371. package/dist/types/naylence/fame/security/encryption/sealed/x25519-encryption-manager.d.ts.map +0 -1
  372. package/dist/types/naylence/fame/security/index.d.ts +0 -6
  373. package/dist/types/naylence/fame/security/index.d.ts.map +0 -1
  374. package/dist/types/naylence/fame/security/keys/index.d.ts +0 -3
  375. package/dist/types/naylence/fame/security/keys/index.d.ts.map +0 -1
  376. package/dist/types/naylence/fame/security/keys/x5c-key-manager-factory.d.ts +0 -19
  377. package/dist/types/naylence/fame/security/keys/x5c-key-manager-factory.d.ts.map +0 -1
  378. package/dist/types/naylence/fame/security/keys/x5c-key-manager.d.ts +0 -39
  379. package/dist/types/naylence/fame/security/keys/x5c-key-manager.d.ts.map +0 -1
  380. package/dist/types/naylence/fame/security/register-advanced-security-factories.d.ts +0 -8
  381. package/dist/types/naylence/fame/security/register-advanced-security-factories.d.ts.map +0 -1
  382. package/dist/types/naylence/fame/security/signing/eddsa-envelope-signer-factory.d.ts +0 -20
  383. package/dist/types/naylence/fame/security/signing/eddsa-envelope-signer-factory.d.ts.map +0 -1
  384. package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier-factory.d.ts +0 -21
  385. package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier-factory.d.ts.map +0 -1
  386. package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier.d.ts +0 -22
  387. package/dist/types/naylence/fame/security/signing/eddsa-envelope-verifier.d.ts.map +0 -1
  388. package/dist/types/naylence/fame/stickiness/aft-helper.d.ts +0 -29
  389. package/dist/types/naylence/fame/stickiness/aft-helper.d.ts.map +0 -1
  390. package/dist/types/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.d.ts +0 -25
  391. package/dist/types/naylence/fame/stickiness/aft-load-balancer-stickiness-manager-factory.d.ts.map +0 -1
  392. package/dist/types/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.d.ts +0 -33
  393. package/dist/types/naylence/fame/stickiness/aft-load-balancer-stickiness-manager.d.ts.map +0 -1
  394. package/dist/types/naylence/fame/stickiness/aft-model.d.ts +0 -33
  395. package/dist/types/naylence/fame/stickiness/aft-model.d.ts.map +0 -1
  396. package/dist/types/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.d.ts +0 -23
  397. package/dist/types/naylence/fame/stickiness/aft-replica-stickiness-manager-factory.d.ts.map +0 -1
  398. package/dist/types/naylence/fame/stickiness/aft-replica-stickiness-manager.d.ts +0 -31
  399. package/dist/types/naylence/fame/stickiness/aft-replica-stickiness-manager.d.ts.map +0 -1
  400. package/dist/types/naylence/fame/stickiness/aft-signer.d.ts +0 -55
  401. package/dist/types/naylence/fame/stickiness/aft-signer.d.ts.map +0 -1
  402. package/dist/types/naylence/fame/stickiness/aft-utils.d.ts +0 -4
  403. package/dist/types/naylence/fame/stickiness/aft-utils.d.ts.map +0 -1
  404. package/dist/types/naylence/fame/stickiness/aft-verifier.d.ts +0 -50
  405. package/dist/types/naylence/fame/stickiness/aft-verifier.d.ts.map +0 -1
  406. package/dist/types/naylence/fame/stickiness/index.d.ts +0 -15
  407. package/dist/types/naylence/fame/stickiness/index.d.ts.map +0 -1
  408. package/dist/types/naylence/fame/stickiness/stickiness-mode.d.ts +0 -7
  409. package/dist/types/naylence/fame/stickiness/stickiness-mode.d.ts.map +0 -1
  410. package/dist/types/naylence/fame/welcome/advanced-welcome-service-factory.d.ts +0 -21
  411. package/dist/types/naylence/fame/welcome/advanced-welcome-service-factory.d.ts.map +0 -1
  412. package/dist/types/naylence/fame/welcome/advanced-welcome-service.d.ts +0 -21
  413. package/dist/types/naylence/fame/welcome/advanced-welcome-service.d.ts.map +0 -1
  414. package/dist/types/naylence/fame/welcome/index.d.ts +0 -3
  415. package/dist/types/naylence/fame/welcome/index.d.ts.map +0 -1
  416. package/dist/types/node.d.ts +0 -11
  417. package/dist/types/node.d.ts.map +0 -1
  418. package/dist/types/plugin.d.ts +0 -11
  419. package/dist/types/plugin.d.ts.map +0 -1
  420. package/dist/types/version.d.ts +0 -6
  421. package/dist/types/version.d.ts.map +0 -1
@@ -1,40 +0,0 @@
1
- import { AbstractResourceFactory, createDefaultResource, createResource, } from "@naylence/factory";
2
- const DEFAULT_UNCONFIGURED_MESSAGE = "Trust store is not configured. Set FAME_CA_CERTS to a PEM value, a file path, a data URI, or an HTTPS bundle URL.";
3
- export const TRUST_STORE_PROVIDER_FACTORY_BASE_TYPE = "TrustStoreProviderFactory";
4
- export class TrustStoreProviderFactory extends AbstractResourceFactory {
5
- createUnconfiguredProvider(reason) {
6
- return new NullTrustStoreProvider(reason ?? DEFAULT_UNCONFIGURED_MESSAGE);
7
- }
8
- static async createTrustStoreProvider(config, options = {}) {
9
- const { dependencies, factoryArgs, ...restOptions } = options;
10
- const mergedFactoryArgs = [
11
- ...(dependencies ? [dependencies] : []),
12
- ...(factoryArgs ?? []),
13
- ];
14
- const creationOptions = {
15
- ...restOptions,
16
- factoryArgs: mergedFactoryArgs,
17
- };
18
- if (config) {
19
- const instance = await createResource(TRUST_STORE_PROVIDER_FACTORY_BASE_TYPE, config, creationOptions);
20
- return instance ?? new NullTrustStoreProvider();
21
- }
22
- const instance = await createDefaultResource(TRUST_STORE_PROVIDER_FACTORY_BASE_TYPE, null, creationOptions);
23
- return instance ?? new NullTrustStoreProvider();
24
- }
25
- }
26
- export class NullTrustStoreProvider {
27
- constructor(reason = DEFAULT_UNCONFIGURED_MESSAGE) {
28
- this.reason = reason;
29
- }
30
- async getTrustStorePem() {
31
- throw new Error(this.reason);
32
- }
33
- async getRoots() {
34
- return [];
35
- }
36
- async initialize() {
37
- // No-op for the placeholder provider.
38
- }
39
- }
40
- //# sourceMappingURL=trust-store-provider-factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trust-store-provider-factory.js","sourceRoot":"","sources":["../../../../../../../src/naylence/fame/security/cert/trust-store/trust-store-provider-factory.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAmB3B,MAAM,4BAA4B,GAChC,mHAAmH,CAAC;AAEtH,MAAM,CAAC,MAAM,sCAAsC,GAAG,2BAA2B,CAAC;AAElF,MAAM,OAAgB,yBAEpB,SAAQ,uBAA8C;IAM5C,0BAA0B,CAAC,MAAe;QAClD,OAAO,IAAI,sBAAsB,CAAC,MAAM,IAAI,4BAA4B,CAAC,CAAC;IAC5E,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAG1C,MAA2C,EAC3C,UAA2C,EAAE;QAE7C,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;QAC9D,MAAM,iBAAiB,GAAG;YACxB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;SACvB,CAAC;QAEF,MAAM,eAAe,GAA0B;YAC7C,GAAG,WAAW;YACd,WAAW,EAAE,iBAAiB;SAC/B,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,MAAM,cAAc,CACnC,sCAAsC,EACtC,MAAM,EACN,eAAe,CAChB,CAAC;YACF,OAAO,QAAQ,IAAI,IAAI,sBAAsB,EAAE,CAAC;QAClD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAC1C,sCAAsC,EACtC,IAAI,EACJ,eAAe,CAChB,CAAC;QAEF,OAAO,QAAQ,IAAI,IAAI,sBAAsB,EAAE,CAAC;IAClD,CAAC;CACF;AAED,MAAM,OAAO,sBAAsB;IAGjC,YAAmB,SAAiB,4BAA4B;QAC9D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC3B,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,sCAAsC;IACxC,CAAC;CACF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=trust-store-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trust-store-provider.js","sourceRoot":"","sources":["../../../../../../../src/naylence/fame/security/cert/trust-store/trust-store-provider.ts"],"names":[],"mappings":""}
@@ -1,515 +0,0 @@
1
- import { AsnConvert } from "@peculiar/asn1-schema";
2
- import { Certificate, NameConstraints, SubjectAlternativeName, id_ce_nameConstraints, id_ce_subjectAltName, } from "@peculiar/asn1-x509";
3
- import { sha256, sha512 } from "@noble/hashes/sha2.js";
4
- import { etc as edEtc, verify as ed25519Verify } from "@noble/ed25519";
5
- import { getLogger } from "@naylence/runtime/node";
6
- const logger = getLogger("naylence.fame.security.cert.util");
7
- const CACHE_LIMIT = 512;
8
- const OID_ED25519 = "1.3.101.112";
9
- const textEncoder = new TextEncoder();
10
- const trustCache = new Map();
11
- export function publicKeyFromX5c(x5c, options = {}) {
12
- if (!Array.isArray(x5c) || x5c.length === 0) {
13
- throw new Error("Empty certificate chain");
14
- }
15
- const callId = generateCallId();
16
- const enforceNameConstraints = options.enforceNameConstraints ?? true;
17
- const trustStorePem = normalizeTrustStoreOption(options.trustStorePem ?? null);
18
- const returnCertificate = options.returnCertificate ?? false;
19
- const { parsed, chainBytes } = parseCertificateChain(x5c);
20
- logger.debug("public_key_from_x5c_called", {
21
- call_id: callId,
22
- x5c_count: parsed.length,
23
- enforce_name_constraints: enforceNameConstraints,
24
- has_trust_store: Boolean(trustStorePem),
25
- return_cert: returnCertificate,
26
- });
27
- let cacheKey = null;
28
- if (!returnCertificate) {
29
- cacheKey = buildCacheKey(chainBytes, trustStorePem, enforceNameConstraints);
30
- const cached = getCachedPublicKey(cacheKey);
31
- if (cached) {
32
- logger.debug("certificate_cache_hit", {
33
- call_id: callId,
34
- cache_key: cacheKey,
35
- });
36
- return cached;
37
- }
38
- logger.debug("certificate_cache_miss", {
39
- call_id: callId,
40
- cache_key: cacheKey,
41
- });
42
- }
43
- const validation = validateCertificateChain(parsed, enforceNameConstraints, trustStorePem);
44
- if (cacheKey) {
45
- setCachedPublicKey(cacheKey, validation.publicKey, validation.notAfter);
46
- }
47
- if (returnCertificate) {
48
- return {
49
- publicKey: validation.publicKey.slice(),
50
- certificate: validation.certificate,
51
- };
52
- }
53
- return validation.publicKey.slice();
54
- }
55
- export function validateJwkX5cCertificate(options) {
56
- const { jwk, trustStorePem = null, enforceNameConstraints = true, strict = true, } = options;
57
- if (!jwk || typeof jwk !== "object") {
58
- const error = "Invalid JWK object";
59
- if (strict) {
60
- throw new Error(error);
61
- }
62
- return { isValid: false, error };
63
- }
64
- const x5c = jwk.x5c;
65
- if (x5c === undefined) {
66
- return { isValid: true };
67
- }
68
- if (!Array.isArray(x5c) ||
69
- x5c.length === 0 ||
70
- x5c.some((entry) => typeof entry !== "string")) {
71
- const error = "Invalid x5c field in JWK";
72
- if (strict) {
73
- throw new Error(error);
74
- }
75
- return { isValid: false, error };
76
- }
77
- try {
78
- publicKeyFromX5c(x5c, {
79
- trustStorePem,
80
- enforceNameConstraints,
81
- });
82
- return { isValid: true };
83
- }
84
- catch (error) {
85
- const message = error instanceof Error ? error.message : String(error ?? "unknown");
86
- const normalized = `Certificate validation failed: ${message}`;
87
- if (strict) {
88
- throw new Error(normalized);
89
- }
90
- return { isValid: false, error: normalized };
91
- }
92
- }
93
- function validateCertificateChain(parsed, enforceNameConstraints, trustStorePem) {
94
- const leaf = parsed[0];
95
- const nowMs = Date.now();
96
- const notBefore = leaf.certificate.tbsCertificate.validity.notBefore.getTime();
97
- const notAfter = leaf.certificate.tbsCertificate.validity.notAfter.getTime();
98
- const notBeforeMs = notBefore.getTime();
99
- const notAfterMs = notAfter.getTime();
100
- if (nowMs < notBeforeMs || nowMs > notAfterMs) {
101
- throw new Error(`Certificate is not currently valid (notBefore: ${notBefore.toISOString()}, notAfter: ${notAfter.toISOString()}, now: ${new Date(nowMs).toISOString()})`);
102
- }
103
- const issuers = parsed.slice(1);
104
- if (enforceNameConstraints && issuers.length > 0) {
105
- const leafUris = extractUrisFromCert(leaf.certificate);
106
- validateNameConstraints(issuers, leafUris);
107
- }
108
- if (trustStorePem) {
109
- validateTrustAnchor(parsed, trustStorePem);
110
- }
111
- validateChainContinuity(parsed);
112
- const publicKey = leaf.subjectPublicKey.slice();
113
- return {
114
- publicKey,
115
- certificate: leaf.certificate,
116
- notAfter,
117
- };
118
- }
119
- function parseCertificateChain(x5c) {
120
- const parsed = [];
121
- const derChunks = [];
122
- for (let index = 0; index < x5c.length; index += 1) {
123
- const entry = x5c[index];
124
- if (typeof entry !== "string" || entry.trim().length === 0) {
125
- throw new Error(`Invalid certificate at index ${index}`);
126
- }
127
- let der;
128
- try {
129
- der = decodeBase64(entry);
130
- }
131
- catch (error) {
132
- const reason = error instanceof Error ? error.message : String(error);
133
- throw new Error(`Failed to decode certificate at index ${index}: ${reason}`);
134
- }
135
- let certificate;
136
- try {
137
- certificate = AsnConvert.parse(der, Certificate);
138
- }
139
- catch (error) {
140
- const reason = error instanceof Error ? error.message : String(error);
141
- throw new Error(`Failed to parse certificate at index ${index}: ${reason}`);
142
- }
143
- parsed.push(createParsedCertificate(certificate, der));
144
- derChunks.push(der);
145
- }
146
- return { parsed, chainBytes: concatBytes(derChunks) };
147
- }
148
- function createParsedCertificate(certificate, raw) {
149
- return {
150
- raw,
151
- certificate,
152
- serialNumber: toHex(new Uint8Array(certificate.tbsCertificate.serialNumber)).toUpperCase(),
153
- subjectName: serializeName(certificate.tbsCertificate.subject),
154
- issuerName: serializeName(certificate.tbsCertificate.issuer),
155
- subjectPublicKey: new Uint8Array(certificate.tbsCertificate.subjectPublicKeyInfo.subjectPublicKey).slice(),
156
- };
157
- }
158
- function extractUrisFromCert(cert) {
159
- const extension = findExtension(cert, id_ce_subjectAltName);
160
- if (!extension) {
161
- return [];
162
- }
163
- const subjectAlternativeName = AsnConvert.parse(extension.extnValue.buffer, SubjectAlternativeName);
164
- const uris = [];
165
- for (const generalName of subjectAlternativeName) {
166
- if (generalName.uniformResourceIdentifier) {
167
- uris.push(generalName.uniformResourceIdentifier);
168
- }
169
- }
170
- return uris;
171
- }
172
- function validateNameConstraints(issuers, leafUris) {
173
- for (const issuer of issuers) {
174
- const extension = findExtension(issuer.certificate, id_ce_nameConstraints);
175
- if (!extension) {
176
- continue;
177
- }
178
- const constraints = AsnConvert.parse(extension.extnValue.buffer, NameConstraints);
179
- if (!constraints.permittedSubtrees) {
180
- continue;
181
- }
182
- const permittedUris = collectPermittedUris(Array.from(constraints.permittedSubtrees));
183
- if (permittedUris.length === 0) {
184
- continue;
185
- }
186
- for (const uri of leafUris) {
187
- const allowed = permittedUris.some((prefix) => uri.startsWith(prefix));
188
- if (!allowed) {
189
- throw new Error(`URI '${uri}' violates name constraints - not in permitted subtrees: ${permittedUris.join(", ")}`);
190
- }
191
- }
192
- }
193
- }
194
- function collectPermittedUris(subtrees) {
195
- const uris = [];
196
- for (const subtree of subtrees) {
197
- if (subtree.base.uniformResourceIdentifier &&
198
- subtree.base.uniformResourceIdentifier.length > 0) {
199
- uris.push(subtree.base.uniformResourceIdentifier);
200
- }
201
- }
202
- return uris;
203
- }
204
- function validateTrustAnchor(chain, trustStorePem) {
205
- const trustedCerts = parseTrustStore(trustStorePem);
206
- if (trustedCerts.length === 0) {
207
- throw new Error("No valid certificates found in trust store");
208
- }
209
- logger.debug("trust_anchor_validation_start", {
210
- chain_length: chain.length,
211
- trust_store_cert_count: trustedCerts.length,
212
- });
213
- const chainInfo = chain.map((cert, index) => `[${index}] ${cert.subjectName} (Serial: ${cert.serialNumber})`);
214
- const trustedInfo = trustedCerts.map((cert, index) => `[${index}] ${cert.subjectName} (Serial: ${cert.serialNumber})`);
215
- logger.debug("certificate_chain_validation", {
216
- chain_certificates: chainInfo,
217
- trust_store_certificates: trustedInfo,
218
- });
219
- // Strategy 1: direct trust (exact certificate match)
220
- for (let i = 0; i < chain.length; i += 1) {
221
- const cert = chain[i];
222
- const match = trustedCerts.find((trusted) => trusted.serialNumber === cert.serialNumber &&
223
- namesEqual(trusted.certificate.tbsCertificate.subject, cert.certificate.tbsCertificate.subject));
224
- if (match) {
225
- logger.debug("certificate_chain_trust_validation_passed", {
226
- matching_serial: match.serialNumber,
227
- validation_strategy: `direct_trust_cert_${i}`,
228
- });
229
- return;
230
- }
231
- }
232
- const leaf = chain[0];
233
- // Strategy 2: leaf issuer in trust store
234
- for (const trusted of trustedCerts) {
235
- if (namesEqual(trusted.certificate.tbsCertificate.subject, leaf.certificate.tbsCertificate.issuer) &&
236
- trusted.serialNumber !== leaf.serialNumber) {
237
- verifyCertificateSignature(leaf.certificate, trusted.certificate);
238
- logger.debug("certificate_chain_trust_validation_passed", {
239
- matching_serial: trusted.serialNumber,
240
- validation_strategy: "leaf_issuer_trust",
241
- });
242
- return;
243
- }
244
- }
245
- // Strategy 3: any intermediate issuer in trust store
246
- for (let index = 1; index < chain.length; index += 1) {
247
- const intermediate = chain[index];
248
- for (const trusted of trustedCerts) {
249
- if (namesEqual(trusted.certificate.tbsCertificate.subject, intermediate.certificate.tbsCertificate.issuer) &&
250
- trusted.serialNumber !== intermediate.serialNumber) {
251
- verifyCertificateSignature(intermediate.certificate, trusted.certificate);
252
- logger.debug("certificate_chain_trust_validation_passed", {
253
- matching_serial: trusted.serialNumber,
254
- validation_strategy: `intermediate_issuer_trust_cert_${index}`,
255
- });
256
- return;
257
- }
258
- }
259
- }
260
- logger.warning("certificate_chain_trust_validation_failed", {
261
- leaf_subject: leaf.subjectName,
262
- leaf_issuer: leaf.issuerName,
263
- leaf_serial: leaf.serialNumber,
264
- trusted_certificates: trustedInfo,
265
- chain_certificates: chainInfo,
266
- reason: "no_matching_trust_anchor",
267
- });
268
- throw new Error("Certificate chain is not rooted in a trusted anchor");
269
- }
270
- function parseTrustStore(trustStorePem) {
271
- const normalized = normalizePem(trustStorePem);
272
- const blocks = extractPemBlocks(normalized);
273
- const parsed = [];
274
- for (const block of blocks) {
275
- try {
276
- const der = decodeBase64(block);
277
- const certificate = AsnConvert.parse(der, Certificate);
278
- parsed.push(createParsedCertificate(certificate, der));
279
- }
280
- catch (error) {
281
- const reason = error instanceof Error ? error.message : String(error);
282
- logger.debug("trust_store_certificate_parse_failed", { reason });
283
- }
284
- }
285
- return parsed;
286
- }
287
- function extractPemBlocks(pem) {
288
- const blocks = [];
289
- const regex = /-----BEGIN CERTIFICATE-----([\s\S]*?)-----END CERTIFICATE-----/gu;
290
- let match;
291
- // eslint-disable-next-line no-cond-assign
292
- while ((match = regex.exec(pem)) !== null) {
293
- const body = match[1] ?? "";
294
- blocks.push(body.replace(/\s+/gu, ""));
295
- }
296
- return blocks;
297
- }
298
- function validateChainContinuity(chain) {
299
- if (chain.length <= 1) {
300
- return;
301
- }
302
- logger.debug("validating_chain_continuity", { chain_length: chain.length });
303
- for (let index = 0; index < chain.length - 1; index += 1) {
304
- const cert = chain[index];
305
- const issuer = chain[index + 1];
306
- if (!namesEqual(cert.certificate.tbsCertificate.issuer, issuer.certificate.tbsCertificate.subject)) {
307
- logger.warning("certificate_chain_continuity_failed", {
308
- cert_index: index,
309
- cert_subject: cert.subjectName,
310
- cert_issuer: cert.issuerName,
311
- expected_issuer_subject: issuer.subjectName,
312
- reason: "issuer_name_mismatch",
313
- });
314
- throw new Error(`Certificate chain continuity broken: certificate at index ${index} issuer does not match next certificate subject`);
315
- }
316
- try {
317
- verifyCertificateSignature(cert.certificate, issuer.certificate);
318
- logger.debug("chain_continuity_verification_success", {
319
- cert_index: index,
320
- cert_serial: cert.serialNumber,
321
- issuer_serial: issuer.serialNumber,
322
- });
323
- }
324
- catch (error) {
325
- const reason = error instanceof Error ? error.message : String(error);
326
- logger.warning("certificate_chain_continuity_failed", {
327
- cert_index: index,
328
- cert_subject: cert.subjectName,
329
- issuer_subject: issuer.subjectName,
330
- cert_serial: cert.serialNumber,
331
- issuer_serial: issuer.serialNumber,
332
- error: reason,
333
- reason: "signature_verification_failed",
334
- });
335
- throw new Error(`Certificate chain continuity broken: certificate at index ${index} was not signed by certificate at index ${index + 1}: ${reason}`);
336
- }
337
- }
338
- logger.debug("chain_continuity_validation_passed", {
339
- chain_length: chain.length,
340
- });
341
- }
342
- function verifyCertificateSignature(certificate, issuer) {
343
- ensureEd25519Support();
344
- const signatureAlgorithm = certificate.signatureAlgorithm.algorithm;
345
- const issuerAlgorithm = issuer.tbsCertificate.subjectPublicKeyInfo.algorithm.algorithm;
346
- if (signatureAlgorithm !== OID_ED25519 || issuerAlgorithm !== OID_ED25519) {
347
- throw new Error(`Unsupported signature algorithm (certificate: ${signatureAlgorithm}, issuer: ${issuerAlgorithm})`);
348
- }
349
- const signatureBytes = new Uint8Array(certificate.signatureValue);
350
- const tbsBytes = new Uint8Array(AsnConvert.serialize(certificate.tbsCertificate));
351
- const issuerKey = new Uint8Array(issuer.tbsCertificate.subjectPublicKeyInfo.subjectPublicKey);
352
- if (issuerKey.length !== 32) {
353
- throw new Error("Issuer Ed25519 public key must be 32 bytes");
354
- }
355
- const valid = ed25519Verify(signatureBytes, tbsBytes, issuerKey);
356
- if (!valid) {
357
- throw new Error("Certificate signature verification failed");
358
- }
359
- }
360
- function ensureEd25519Support() {
361
- const etcPatch = edEtc;
362
- if (!etcPatch.sha512) {
363
- etcPatch.sha512 = (message) => sha512(message);
364
- }
365
- if (!etcPatch.sha512Sync) {
366
- etcPatch.sha512Sync = (...messages) => {
367
- if (messages.length === 1) {
368
- return sha512(messages[0]);
369
- }
370
- const combined = edEtc.concatBytes(...messages);
371
- return sha512(combined);
372
- };
373
- }
374
- }
375
- function findExtension(certificate, oid) {
376
- const extensions = certificate.tbsCertificate.extensions;
377
- if (!extensions) {
378
- return null;
379
- }
380
- for (const extension of extensions) {
381
- if (extension.extnID === oid) {
382
- return extension;
383
- }
384
- }
385
- return null;
386
- }
387
- function namesEqual(a, b) {
388
- const left = new Uint8Array(AsnConvert.serialize(a));
389
- const right = new Uint8Array(AsnConvert.serialize(b));
390
- if (left.length !== right.length) {
391
- return false;
392
- }
393
- for (let i = 0; i < left.length; i += 1) {
394
- if (left[i] !== right[i]) {
395
- return false;
396
- }
397
- }
398
- return true;
399
- }
400
- function serializeName(name) {
401
- const rdns = Array.from(name);
402
- return rdns
403
- .map((rdn) => Array.from(rdn)
404
- .map((attr) => `${oidToLabel(attr.type)}=${attr.value.toString()}`)
405
- .join("+"))
406
- .join(",");
407
- }
408
- function oidToLabel(oid) {
409
- switch (oid) {
410
- case "2.5.4.3":
411
- return "CN";
412
- case "2.5.4.6":
413
- return "C";
414
- case "2.5.4.7":
415
- return "L";
416
- case "2.5.4.8":
417
- return "ST";
418
- case "2.5.4.10":
419
- return "O";
420
- case "2.5.4.11":
421
- return "OU";
422
- default:
423
- return oid;
424
- }
425
- }
426
- function concatBytes(chunks) {
427
- const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
428
- const result = new Uint8Array(totalLength);
429
- let offset = 0;
430
- for (const chunk of chunks) {
431
- result.set(chunk, offset);
432
- offset += chunk.length;
433
- }
434
- return result;
435
- }
436
- function decodeBase64(input) {
437
- if (typeof Buffer !== "undefined") {
438
- const normalized = input.replace(/\s+/gu, "");
439
- return new Uint8Array(Buffer.from(normalized, "base64"));
440
- }
441
- if (typeof atob === "function") {
442
- const normalized = input.replace(/\s+/gu, "");
443
- const binary = atob(normalized);
444
- const bytes = new Uint8Array(binary.length);
445
- for (let i = 0; i < binary.length; i += 1) {
446
- bytes[i] = binary.charCodeAt(i);
447
- }
448
- return bytes;
449
- }
450
- throw new Error("No base64 decoder available in this environment");
451
- }
452
- function toHex(data) {
453
- return Array.from(data)
454
- .map((byte) => byte.toString(16).padStart(2, "0"))
455
- .join("");
456
- }
457
- function buildCacheKey(chainBytes, trustStorePem, enforceNameConstraints) {
458
- const chainHash = toHex(sha256(chainBytes));
459
- const trustHash = trustStorePem
460
- ? toHex(sha256(textEncoder.encode(trustStorePem)))
461
- : "no-trust";
462
- const constraintFlag = enforceNameConstraints ? "nc1" : "nc0";
463
- return `${chainHash}|${trustHash}|${constraintFlag}`;
464
- }
465
- function getCachedPublicKey(cacheKey) {
466
- const entry = trustCache.get(cacheKey);
467
- if (!entry) {
468
- return null;
469
- }
470
- if (Date.now() > entry.expiresAt) {
471
- trustCache.delete(cacheKey);
472
- logger.debug("certificate_cache_expired", { cache_key: cacheKey });
473
- return null;
474
- }
475
- return entry.value.slice();
476
- }
477
- function setCachedPublicKey(cacheKey, value, notAfter) {
478
- while (trustCache.size >= CACHE_LIMIT) {
479
- const firstKey = trustCache.keys().next().value;
480
- if (firstKey === undefined) {
481
- break;
482
- }
483
- trustCache.delete(firstKey);
484
- logger.debug("certificate_cache_evicted", { cache_key: firstKey });
485
- }
486
- trustCache.set(cacheKey, {
487
- value: value.slice(),
488
- expiresAt: notAfter.getTime(),
489
- });
490
- logger.debug("certificate_cache_stored", {
491
- cache_key: cacheKey,
492
- expires_at: notAfter.toISOString(),
493
- cache_size: trustCache.size,
494
- });
495
- }
496
- function normalizeTrustStoreOption(value) {
497
- if (!value) {
498
- return null;
499
- }
500
- const trimmed = value.trim();
501
- if (trimmed.length === 0) {
502
- return null;
503
- }
504
- if (!trimmed.includes("-----BEGIN CERTIFICATE-----")) {
505
- throw new Error("trustStorePem must contain PEM-encoded certificates when provided");
506
- }
507
- return normalizePem(trimmed);
508
- }
509
- function normalizePem(pem) {
510
- return pem.replace(/\r/gu, "").trim();
511
- }
512
- function generateCallId() {
513
- return Math.random().toString(36).slice(2, 10);
514
- }
515
- //# sourceMappingURL=util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../../../src/naylence/fame/security/cert/util.ts"],"names":[],"mappings":"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"}