xypriss 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (570) hide show
  1. package/README.md +187 -84
  2. package/dist/cjs/ServerFactory.js +1 -1
  3. package/dist/cjs/cache/SecureCacheAdapter.js +2 -2
  4. package/dist/cjs/cluster/cluster-manager.js +1 -1
  5. package/dist/cjs/cluster/index.js +30 -30
  6. package/dist/cjs/cluster/modules/AutoScaler.js +2 -2
  7. package/dist/cjs/cluster/modules/ClusterPersistenceManager.js +3 -3
  8. package/dist/cjs/cluster/modules/HealthMonitor.js +2 -2
  9. package/dist/cjs/cluster/modules/IPCManager.js +2 -2
  10. package/dist/cjs/cluster/modules/MetricsCollector.js +1 -1
  11. package/dist/cjs/cluster/modules/WorkerManager.js +2 -2
  12. package/dist/cjs/encryption/EncryptionService.js +12 -12
  13. package/dist/cjs/encryption/EncryptionService.js.map +1 -1
  14. package/dist/cjs/index.js +1 -1
  15. package/dist/cjs/middleware/safe-json-middleware.js +1 -1
  16. package/dist/cjs/mods/security/src/algorithms/hash-algorithms.js +727 -0
  17. package/dist/cjs/mods/security/src/algorithms/hash-algorithms.js.map +1 -0
  18. package/dist/cjs/mods/security/src/algorithms/registry.js +83 -0
  19. package/dist/cjs/mods/security/src/algorithms/registry.js.map +1 -0
  20. package/dist/cjs/mods/security/src/components/attestation.js +1065 -0
  21. package/dist/cjs/mods/security/src/components/attestation.js.map +1 -0
  22. package/dist/cjs/mods/security/src/components/cache/FastLRU.js +323 -0
  23. package/dist/cjs/mods/security/src/components/cache/FastLRU.js.map +1 -0
  24. package/dist/cjs/mods/security/src/components/cache/UFSIMC.js +1131 -0
  25. package/dist/cjs/mods/security/src/components/cache/UFSIMC.js.map +1 -0
  26. package/dist/cjs/mods/security/src/components/cache/cacheSys.js +624 -0
  27. package/dist/cjs/mods/security/src/components/cache/cacheSys.js.map +1 -0
  28. package/dist/cjs/mods/security/src/components/cache/cacheSys.utils.js +136 -0
  29. package/dist/cjs/mods/security/src/components/cache/cacheSys.utils.js.map +1 -0
  30. package/dist/cjs/mods/security/src/components/cache/config/cache.config.js +39 -0
  31. package/dist/cjs/mods/security/src/components/cache/config/cache.config.js.map +1 -0
  32. package/dist/cjs/mods/security/src/components/cache/index.js +459 -0
  33. package/dist/cjs/mods/security/src/components/cache/index.js.map +1 -0
  34. package/dist/cjs/mods/security/src/components/cache/useCache.js +243 -0
  35. package/dist/cjs/mods/security/src/components/cache/useCache.js.map +1 -0
  36. package/dist/cjs/mods/security/src/components/canary-tokens.js +351 -0
  37. package/dist/cjs/mods/security/src/components/canary-tokens.js.map +1 -0
  38. package/dist/cjs/mods/security/src/components/entropy-augmentation.js +478 -0
  39. package/dist/cjs/mods/security/src/components/entropy-augmentation.js.map +1 -0
  40. package/dist/cjs/mods/security/src/components/fortified-function/UFA/ultra-fast-allocator.js +338 -0
  41. package/dist/cjs/mods/security/src/components/fortified-function/UFA/ultra-fast-allocator.js.map +1 -0
  42. package/dist/cjs/mods/security/src/components/fortified-function/UFA/ultra-fast-cache.js +536 -0
  43. package/dist/cjs/mods/security/src/components/fortified-function/UFA/ultra-fast-cache.js.map +1 -0
  44. package/dist/cjs/mods/security/src/components/fortified-function/UFA/ultra-fast-engine.js +631 -0
  45. package/dist/cjs/mods/security/src/components/fortified-function/UFA/ultra-fast-engine.js.map +1 -0
  46. package/dist/cjs/mods/security/src/components/fortified-function/const/exec.const.js +18 -0
  47. package/dist/cjs/mods/security/src/components/fortified-function/const/exec.const.js.map +1 -0
  48. package/dist/cjs/mods/security/src/components/fortified-function/core/fortified-config.js +356 -0
  49. package/dist/cjs/mods/security/src/components/fortified-function/core/fortified-config.js.map +1 -0
  50. package/dist/cjs/mods/security/src/components/fortified-function/core/fortified-function-core.js +520 -0
  51. package/dist/cjs/mods/security/src/components/fortified-function/core/fortified-function-core.js.map +1 -0
  52. package/dist/cjs/mods/security/src/components/fortified-function/core/fortified-logger.js +246 -0
  53. package/dist/cjs/mods/security/src/components/fortified-function/core/fortified-logger.js.map +1 -0
  54. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/api-manager.js +189 -0
  55. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/api-manager.js.map +1 -0
  56. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/cache-manager.js +107 -0
  57. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/cache-manager.js.map +1 -0
  58. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/execution-context.js +105 -0
  59. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/execution-context.js.map +1 -0
  60. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/execution-engine.js +127 -0
  61. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/execution-engine.js.map +1 -0
  62. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/execution-router.js +93 -0
  63. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/execution-router.js.map +1 -0
  64. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/memory-manager.js +147 -0
  65. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/memory-manager.js.map +1 -0
  66. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/security-manager.js +102 -0
  67. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/security-manager.js.map +1 -0
  68. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/stats-manager.js +159 -0
  69. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/stats-manager.js.map +1 -0
  70. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/timing-manager.js +125 -0
  71. package/dist/cjs/mods/security/src/components/fortified-function/core/mods/timing-manager.js.map +1 -0
  72. package/dist/cjs/mods/security/src/components/fortified-function/engines/analytics-engine.js +370 -0
  73. package/dist/cjs/mods/security/src/components/fortified-function/engines/analytics-engine.js.map +1 -0
  74. package/dist/cjs/mods/security/src/components/fortified-function/engines/execution-engine.js +402 -0
  75. package/dist/cjs/mods/security/src/components/fortified-function/engines/execution-engine.js.map +1 -0
  76. package/dist/cjs/mods/security/src/components/fortified-function/index.js +172 -0
  77. package/dist/cjs/mods/security/src/components/fortified-function/index.js.map +1 -0
  78. package/dist/cjs/mods/security/src/components/fortified-function/performance/performance-monitor.js +240 -0
  79. package/dist/cjs/mods/security/src/components/fortified-function/performance/performance-monitor.js.map +1 -0
  80. package/dist/cjs/mods/security/src/components/fortified-function/performance/performance-timer.js +188 -0
  81. package/dist/cjs/mods/security/src/components/fortified-function/performance/performance-timer.js.map +1 -0
  82. package/dist/cjs/mods/security/src/components/fortified-function/security/security-handler.js +253 -0
  83. package/dist/cjs/mods/security/src/components/fortified-function/security/security-handler.js.map +1 -0
  84. package/dist/cjs/mods/security/src/components/fortified-function/serializer/safe-serializer.js +350 -0
  85. package/dist/cjs/mods/security/src/components/fortified-function/serializer/safe-serializer.js.map +1 -0
  86. package/dist/cjs/mods/security/src/components/fortified-function/smart-cache.js +693 -0
  87. package/dist/cjs/mods/security/src/components/fortified-function/smart-cache.js.map +1 -0
  88. package/dist/cjs/mods/security/src/components/fortified-function/types/types.js +16 -0
  89. package/dist/cjs/mods/security/src/components/fortified-function/types/types.js.map +1 -0
  90. package/dist/cjs/mods/security/src/components/fortified-function/utils/utils.js +68 -0
  91. package/dist/cjs/mods/security/src/components/fortified-function/utils/utils.js.map +1 -0
  92. package/dist/cjs/mods/security/src/components/memory-hard.js +922 -0
  93. package/dist/cjs/mods/security/src/components/memory-hard.js.map +1 -0
  94. package/dist/cjs/mods/security/src/components/post-quantum.js +323 -0
  95. package/dist/cjs/mods/security/src/components/post-quantum.js.map +1 -0
  96. package/dist/cjs/mods/security/src/components/runtime-verification.js +645 -0
  97. package/dist/cjs/mods/security/src/components/runtime-verification.js.map +1 -0
  98. package/dist/cjs/mods/security/src/components/secure-array/core/secure-array-core.js +1572 -0
  99. package/dist/cjs/mods/security/src/components/secure-array/core/secure-array-core.js.map +1 -0
  100. package/dist/cjs/mods/security/src/components/secure-array/crypto/ArrayCryptoHandler.js +330 -0
  101. package/dist/cjs/mods/security/src/components/secure-array/crypto/ArrayCryptoHandler.js.map +1 -0
  102. package/dist/cjs/mods/security/src/components/secure-array/events/event-manager.js +270 -0
  103. package/dist/cjs/mods/security/src/components/secure-array/events/event-manager.js.map +1 -0
  104. package/dist/cjs/mods/security/src/components/secure-array/index.js +66 -0
  105. package/dist/cjs/mods/security/src/components/secure-array/index.js.map +1 -0
  106. package/dist/cjs/mods/security/src/components/secure-array/metadata/metadata-manager.js +331 -0
  107. package/dist/cjs/mods/security/src/components/secure-array/metadata/metadata-manager.js.map +1 -0
  108. package/dist/cjs/mods/security/src/components/secure-array/serialization/ArraySerializationHandler.js +390 -0
  109. package/dist/cjs/mods/security/src/components/secure-array/serialization/ArraySerializationHandler.js.map +1 -0
  110. package/dist/cjs/mods/security/src/components/secure-array/types/index.js +87 -0
  111. package/dist/cjs/mods/security/src/components/secure-array/types/index.js.map +1 -0
  112. package/dist/cjs/mods/security/src/components/secure-array/utils/id-generator.js +80 -0
  113. package/dist/cjs/mods/security/src/components/secure-array/utils/id-generator.js.map +1 -0
  114. package/dist/cjs/mods/security/src/components/secure-array/utils/validation.js +275 -0
  115. package/dist/cjs/mods/security/src/components/secure-array/utils/validation.js.map +1 -0
  116. package/dist/cjs/mods/security/src/components/secure-memory.js +906 -0
  117. package/dist/cjs/mods/security/src/components/secure-memory.js.map +1 -0
  118. package/dist/cjs/mods/security/src/components/secure-object/core/secure-object-core.js +1605 -0
  119. package/dist/cjs/mods/security/src/components/secure-object/core/secure-object-core.js.map +1 -0
  120. package/dist/cjs/mods/security/src/components/secure-object/encryption/crypto-handler.js +362 -0
  121. package/dist/cjs/mods/security/src/components/secure-object/encryption/crypto-handler.js.map +1 -0
  122. package/dist/cjs/mods/security/src/components/secure-object/encryption/sensitive-keys.js +206 -0
  123. package/dist/cjs/mods/security/src/components/secure-object/encryption/sensitive-keys.js.map +1 -0
  124. package/dist/cjs/mods/security/src/components/secure-object/events/event-manager.js +197 -0
  125. package/dist/cjs/mods/security/src/components/secure-object/events/event-manager.js.map +1 -0
  126. package/dist/cjs/mods/security/src/components/secure-object/index.js +67 -0
  127. package/dist/cjs/mods/security/src/components/secure-object/index.js.map +1 -0
  128. package/dist/cjs/mods/security/src/components/secure-object/metadata/metadata-manager.js +183 -0
  129. package/dist/cjs/mods/security/src/components/secure-object/metadata/metadata-manager.js.map +1 -0
  130. package/dist/cjs/mods/security/src/components/secure-object/serialization/serialization-handler.js +197 -0
  131. package/dist/cjs/mods/security/src/components/secure-object/serialization/serialization-handler.js.map +1 -0
  132. package/dist/cjs/mods/security/src/components/secure-object/utils/id-generator.js +64 -0
  133. package/dist/cjs/mods/security/src/components/secure-object/utils/id-generator.js.map +1 -0
  134. package/dist/cjs/mods/security/src/components/secure-object/utils/validation.js +239 -0
  135. package/dist/cjs/mods/security/src/components/secure-object/utils/validation.js.map +1 -0
  136. package/dist/cjs/mods/security/src/components/secure-serialization.js +772 -0
  137. package/dist/cjs/mods/security/src/components/secure-serialization.js.map +1 -0
  138. package/dist/cjs/mods/security/src/components/secure-string/advanced/entropy-analyzer.js +308 -0
  139. package/dist/cjs/mods/security/src/components/secure-string/advanced/entropy-analyzer.js.map +1 -0
  140. package/dist/cjs/mods/security/src/components/secure-string/advanced/performance-monitor.js +335 -0
  141. package/dist/cjs/mods/security/src/components/secure-string/advanced/performance-monitor.js.map +1 -0
  142. package/dist/cjs/mods/security/src/components/secure-string/advanced/quantum-safe.js +245 -0
  143. package/dist/cjs/mods/security/src/components/secure-string/advanced/quantum-safe.js.map +1 -0
  144. package/dist/cjs/mods/security/src/components/secure-string/buffer/buffer-manager.js +205 -0
  145. package/dist/cjs/mods/security/src/components/secure-string/buffer/buffer-manager.js.map +1 -0
  146. package/dist/cjs/mods/security/src/components/secure-string/core/secure-string-core.js +788 -0
  147. package/dist/cjs/mods/security/src/components/secure-string/core/secure-string-core.js.map +1 -0
  148. package/dist/cjs/mods/security/src/components/secure-string/crypto/crypto-operations.js +319 -0
  149. package/dist/cjs/mods/security/src/components/secure-string/crypto/crypto-operations.js.map +1 -0
  150. package/dist/cjs/mods/security/src/components/secure-string/operations/comparison-operations.js +221 -0
  151. package/dist/cjs/mods/security/src/components/secure-string/operations/comparison-operations.js.map +1 -0
  152. package/dist/cjs/mods/security/src/components/secure-string/operations/string-operations.js +234 -0
  153. package/dist/cjs/mods/security/src/components/secure-string/operations/string-operations.js.map +1 -0
  154. package/dist/cjs/mods/security/src/components/secure-string/types/index.js +41 -0
  155. package/dist/cjs/mods/security/src/components/secure-string/types/index.js.map +1 -0
  156. package/dist/cjs/mods/security/src/components/secure-string/validation/string-validator.js +334 -0
  157. package/dist/cjs/mods/security/src/components/secure-string/validation/string-validator.js.map +1 -0
  158. package/dist/cjs/mods/security/src/components/side-channel.js +146 -0
  159. package/dist/cjs/mods/security/src/components/side-channel.js.map +1 -0
  160. package/dist/cjs/mods/security/src/components/tamper-evident-logging.js +391 -0
  161. package/dist/cjs/mods/security/src/components/tamper-evident-logging.js.map +1 -0
  162. package/dist/cjs/mods/security/src/const/buffer.const.js +15 -0
  163. package/dist/cjs/mods/security/src/const/buffer.const.js.map +1 -0
  164. package/dist/cjs/mods/security/src/core/crypto.js +722 -0
  165. package/dist/cjs/mods/security/src/core/crypto.js.map +1 -0
  166. package/dist/cjs/mods/security/src/core/hash/hash-advanced.js +388 -0
  167. package/dist/cjs/mods/security/src/core/hash/hash-advanced.js.map +1 -0
  168. package/dist/cjs/mods/security/src/core/hash/hash-core.js +376 -0
  169. package/dist/cjs/mods/security/src/core/hash/hash-core.js.map +1 -0
  170. package/dist/cjs/mods/security/src/core/hash/hash-entropy.js +307 -0
  171. package/dist/cjs/mods/security/src/core/hash/hash-entropy.js.map +1 -0
  172. package/dist/cjs/mods/security/src/core/hash/hash-security.js +372 -0
  173. package/dist/cjs/mods/security/src/core/hash/hash-security.js.map +1 -0
  174. package/dist/cjs/mods/security/src/core/hash/hash-types.js +16 -0
  175. package/dist/cjs/mods/security/src/core/hash/hash-types.js.map +1 -0
  176. package/dist/cjs/mods/security/src/core/hash/hash-utils.js +328 -0
  177. package/dist/cjs/mods/security/src/core/hash/hash-utils.js.map +1 -0
  178. package/dist/cjs/mods/security/src/core/hash/hash-validator.js +312 -0
  179. package/dist/cjs/mods/security/src/core/hash/hash-validator.js.map +1 -0
  180. package/dist/cjs/mods/security/src/core/hash.js +25 -0
  181. package/dist/cjs/mods/security/src/core/hash.js.map +1 -0
  182. package/dist/cjs/mods/security/src/core/keys/algorithms/mods/Argon2Algo.js +135 -0
  183. package/dist/cjs/mods/security/src/core/keys/algorithms/mods/Argon2Algo.js.map +1 -0
  184. package/dist/cjs/mods/security/src/core/keys/algorithms/mods/PBKDF2Algo.js +293 -0
  185. package/dist/cjs/mods/security/src/core/keys/algorithms/mods/PBKDF2Algo.js.map +1 -0
  186. package/dist/cjs/mods/security/src/core/keys/algorithms/mods/ScryptAlgo.js +317 -0
  187. package/dist/cjs/mods/security/src/core/keys/algorithms/mods/ScryptAlgo.js.map +1 -0
  188. package/dist/cjs/mods/security/src/core/keys/keys-core.js +201 -0
  189. package/dist/cjs/mods/security/src/core/keys/keys-core.js.map +1 -0
  190. package/dist/cjs/mods/security/src/core/keys/keys-logger.js +234 -0
  191. package/dist/cjs/mods/security/src/core/keys/keys-logger.js.map +1 -0
  192. package/dist/cjs/mods/security/src/core/keys/keys-types.js +65 -0
  193. package/dist/cjs/mods/security/src/core/keys/keys-types.js.map +1 -0
  194. package/dist/cjs/mods/security/src/core/keys/keys-utils.js +322 -0
  195. package/dist/cjs/mods/security/src/core/keys/keys-utils.js.map +1 -0
  196. package/dist/cjs/mods/security/src/core/keys.js +136 -0
  197. package/dist/cjs/mods/security/src/core/keys.js.map +1 -0
  198. package/dist/cjs/mods/security/src/core/password/index.js +122 -0
  199. package/dist/cjs/mods/security/src/core/password/index.js.map +1 -0
  200. package/dist/cjs/mods/security/src/core/password/password-algorithms.js +397 -0
  201. package/dist/cjs/mods/security/src/core/password/password-algorithms.js.map +1 -0
  202. package/dist/cjs/mods/security/src/core/password/password-core.js +294 -0
  203. package/dist/cjs/mods/security/src/core/password/password-core.js.map +1 -0
  204. package/dist/cjs/mods/security/src/core/password/password-generator.js +365 -0
  205. package/dist/cjs/mods/security/src/core/password/password-generator.js.map +1 -0
  206. package/dist/cjs/mods/security/src/core/password/password-migration.js +237 -0
  207. package/dist/cjs/mods/security/src/core/password/password-migration.js.map +1 -0
  208. package/dist/cjs/mods/security/src/core/password/password-security.js +534 -0
  209. package/dist/cjs/mods/security/src/core/password/password-security.js.map +1 -0
  210. package/dist/cjs/mods/security/src/core/password/password-types.js +39 -0
  211. package/dist/cjs/mods/security/src/core/password/password-types.js.map +1 -0
  212. package/dist/cjs/mods/security/src/core/password/password-utils.js +651 -0
  213. package/dist/cjs/mods/security/src/core/password/password-utils.js.map +1 -0
  214. package/dist/cjs/mods/security/src/core/password/swlist.js +1122 -0
  215. package/dist/cjs/mods/security/src/core/password/swlist.js.map +1 -0
  216. package/dist/cjs/mods/security/src/core/random/random-core.js +328 -0
  217. package/dist/cjs/mods/security/src/core/random/random-core.js.map +1 -0
  218. package/dist/cjs/mods/security/src/core/random/random-crypto.js +339 -0
  219. package/dist/cjs/mods/security/src/core/random/random-crypto.js.map +1 -0
  220. package/dist/cjs/mods/security/src/core/random/random-entropy.js +388 -0
  221. package/dist/cjs/mods/security/src/core/random/random-entropy.js.map +1 -0
  222. package/dist/cjs/mods/security/src/core/random/random-generators.js +344 -0
  223. package/dist/cjs/mods/security/src/core/random/random-generators.js.map +1 -0
  224. package/dist/cjs/mods/security/src/core/random/random-sources.js +426 -0
  225. package/dist/cjs/mods/security/src/core/random/random-sources.js.map +1 -0
  226. package/dist/cjs/mods/security/src/core/random/random-tokens.js +309 -0
  227. package/dist/cjs/mods/security/src/core/random/random-tokens.js.map +1 -0
  228. package/dist/cjs/mods/security/src/core/random/random-types.js +36 -0
  229. package/dist/cjs/mods/security/src/core/random/random-types.js.map +1 -0
  230. package/dist/cjs/mods/security/src/core/validators.js +200 -0
  231. package/dist/cjs/mods/security/src/core/validators.js.map +1 -0
  232. package/dist/cjs/mods/security/src/helpers/Uint8Array.js +335 -0
  233. package/dist/cjs/mods/security/src/helpers/Uint8Array.js.map +1 -0
  234. package/dist/cjs/mods/security/src/helpers/createEnu.js +27 -0
  235. package/dist/cjs/mods/security/src/helpers/createEnu.js.map +1 -0
  236. package/dist/cjs/mods/security/src/index.js +417 -0
  237. package/dist/cjs/mods/security/src/index.js.map +1 -0
  238. package/dist/cjs/mods/security/src/types/global.js +51 -0
  239. package/dist/cjs/mods/security/src/types/global.js.map +1 -0
  240. package/dist/cjs/mods/security/src/types/secure-mem.type.js +100 -0
  241. package/dist/cjs/mods/security/src/types/secure-mem.type.js.map +1 -0
  242. package/dist/cjs/mods/security/src/types/secure-memory.js +20 -0
  243. package/dist/cjs/mods/security/src/types/secure-memory.js.map +1 -0
  244. package/dist/cjs/mods/security/src/types.js +63 -0
  245. package/dist/cjs/mods/security/src/types.js.map +1 -0
  246. package/dist/cjs/mods/security/src/utils/CryptoAlgorithmUtils.js +71 -0
  247. package/dist/cjs/mods/security/src/utils/CryptoAlgorithmUtils.js.map +1 -0
  248. package/dist/cjs/mods/security/src/utils/constants.js +111 -0
  249. package/dist/cjs/mods/security/src/utils/constants.js.map +1 -0
  250. package/dist/cjs/mods/security/src/utils/dataConverter.js +74 -0
  251. package/dist/cjs/mods/security/src/utils/dataConverter.js.map +1 -0
  252. package/dist/cjs/mods/security/src/utils/encoding.js +290 -0
  253. package/dist/cjs/mods/security/src/utils/encoding.js.map +1 -0
  254. package/dist/cjs/mods/security/src/utils/errorHandler.js +140 -0
  255. package/dist/cjs/mods/security/src/utils/errorHandler.js.map +1 -0
  256. package/dist/cjs/mods/security/src/utils/memory/config-manager.js +282 -0
  257. package/dist/cjs/mods/security/src/utils/memory/config-manager.js.map +1 -0
  258. package/dist/cjs/mods/security/src/utils/memory/event-manager.js +277 -0
  259. package/dist/cjs/mods/security/src/utils/memory/event-manager.js.map +1 -0
  260. package/dist/cjs/mods/security/src/utils/memory/index.js +162 -0
  261. package/dist/cjs/mods/security/src/utils/memory/index.js.map +1 -0
  262. package/dist/cjs/mods/security/src/utils/memory/memory-manager.js +888 -0
  263. package/dist/cjs/mods/security/src/utils/memory/memory-manager.js.map +1 -0
  264. package/dist/cjs/mods/security/src/utils/memory/memory-pool.js +356 -0
  265. package/dist/cjs/mods/security/src/utils/memory/memory-pool.js.map +1 -0
  266. package/dist/cjs/mods/security/src/utils/memory/reference-tracker.js +376 -0
  267. package/dist/cjs/mods/security/src/utils/memory/reference-tracker.js.map +1 -0
  268. package/dist/cjs/mods/security/src/utils/memory/types.js +56 -0
  269. package/dist/cjs/mods/security/src/utils/memory/types.js.map +1 -0
  270. package/dist/cjs/mods/security/src/utils/patterns.js +127 -0
  271. package/dist/cjs/mods/security/src/utils/patterns.js.map +1 -0
  272. package/dist/cjs/mods/security/src/utils/performanceMonitor.js +249 -0
  273. package/dist/cjs/mods/security/src/utils/performanceMonitor.js.map +1 -0
  274. package/dist/cjs/mods/security/src/utils/stats.js +182 -0
  275. package/dist/cjs/mods/security/src/utils/stats.js.map +1 -0
  276. package/dist/cjs/security-middleware.js +15 -15
  277. package/dist/cjs/server/components/fastapi/UltraFastRequestProcessor.js +1 -1
  278. package/dist/cjs/server/components/fastapi/console/ConsoleInterceptor.js +23 -23
  279. package/dist/cjs/server/components/fastapi/middlewares/MiddlewareAPI.js +1 -1
  280. package/dist/cjs/server/optimization/RequestPreCompiler.js +1 -1
  281. package/dist/cjs/server/plugins/PluginRegistry.js +1 -1
  282. package/dist/cjs/server/plugins/core/CachePlugin.js +7 -7
  283. package/dist/cjs/server/plugins/core/PerformancePlugin.js +2 -2
  284. package/dist/cjs/server/plugins/core/SecurityPlugin.js +10 -10
  285. package/dist/cjs/smart-routes.js +1 -1
  286. package/dist/esm/ServerFactory.js +1 -1
  287. package/dist/esm/cache/SecureCacheAdapter.js +2 -2
  288. package/dist/esm/cluster/cluster-manager.js +1 -1
  289. package/dist/esm/cluster/index.js +30 -30
  290. package/dist/esm/cluster/modules/AutoScaler.js +2 -2
  291. package/dist/esm/cluster/modules/ClusterPersistenceManager.js +3 -3
  292. package/dist/esm/cluster/modules/HealthMonitor.js +2 -2
  293. package/dist/esm/cluster/modules/IPCManager.js +2 -2
  294. package/dist/esm/cluster/modules/MetricsCollector.js +1 -1
  295. package/dist/esm/cluster/modules/WorkerManager.js +2 -2
  296. package/dist/esm/encryption/EncryptionService.js +12 -12
  297. package/dist/esm/encryption/EncryptionService.js.map +1 -1
  298. package/dist/esm/index.js +1 -1
  299. package/dist/esm/middleware/safe-json-middleware.js +1 -1
  300. package/dist/esm/mods/security/src/algorithms/hash-algorithms.js +705 -0
  301. package/dist/esm/mods/security/src/algorithms/hash-algorithms.js.map +1 -0
  302. package/dist/esm/mods/security/src/algorithms/registry.js +81 -0
  303. package/dist/esm/mods/security/src/algorithms/registry.js.map +1 -0
  304. package/dist/esm/mods/security/src/components/attestation.js +1059 -0
  305. package/dist/esm/mods/security/src/components/attestation.js.map +1 -0
  306. package/dist/esm/mods/security/src/components/cache/FastLRU.js +320 -0
  307. package/dist/esm/mods/security/src/components/cache/FastLRU.js.map +1 -0
  308. package/dist/esm/mods/security/src/components/cache/UFSIMC.js +1109 -0
  309. package/dist/esm/mods/security/src/components/cache/UFSIMC.js.map +1 -0
  310. package/dist/esm/mods/security/src/components/cache/cacheSys.js +622 -0
  311. package/dist/esm/mods/security/src/components/cache/cacheSys.js.map +1 -0
  312. package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js +111 -0
  313. package/dist/esm/mods/security/src/components/cache/cacheSys.utils.js.map +1 -0
  314. package/dist/esm/mods/security/src/components/cache/config/cache.config.js +36 -0
  315. package/dist/esm/mods/security/src/components/cache/config/cache.config.js.map +1 -0
  316. package/dist/esm/mods/security/src/components/cache/index.js +449 -0
  317. package/dist/esm/mods/security/src/components/cache/index.js.map +1 -0
  318. package/dist/esm/mods/security/src/components/cache/useCache.js +240 -0
  319. package/dist/esm/mods/security/src/components/cache/useCache.js.map +1 -0
  320. package/dist/esm/mods/security/src/components/canary-tokens.js +346 -0
  321. package/dist/esm/mods/security/src/components/canary-tokens.js.map +1 -0
  322. package/dist/esm/mods/security/src/components/entropy-augmentation.js +476 -0
  323. package/dist/esm/mods/security/src/components/entropy-augmentation.js.map +1 -0
  324. package/dist/esm/mods/security/src/components/fortified-function/UFA/ultra-fast-allocator.js +336 -0
  325. package/dist/esm/mods/security/src/components/fortified-function/UFA/ultra-fast-allocator.js.map +1 -0
  326. package/dist/esm/mods/security/src/components/fortified-function/UFA/ultra-fast-cache.js +534 -0
  327. package/dist/esm/mods/security/src/components/fortified-function/UFA/ultra-fast-cache.js.map +1 -0
  328. package/dist/esm/mods/security/src/components/fortified-function/UFA/ultra-fast-engine.js +629 -0
  329. package/dist/esm/mods/security/src/components/fortified-function/UFA/ultra-fast-engine.js.map +1 -0
  330. package/dist/esm/mods/security/src/components/fortified-function/const/exec.const.js +11 -0
  331. package/dist/esm/mods/security/src/components/fortified-function/const/exec.const.js.map +1 -0
  332. package/dist/esm/mods/security/src/components/fortified-function/core/fortified-config.js +351 -0
  333. package/dist/esm/mods/security/src/components/fortified-function/core/fortified-config.js.map +1 -0
  334. package/dist/esm/mods/security/src/components/fortified-function/core/fortified-function-core.js +518 -0
  335. package/dist/esm/mods/security/src/components/fortified-function/core/fortified-function-core.js.map +1 -0
  336. package/dist/esm/mods/security/src/components/fortified-function/core/fortified-logger.js +243 -0
  337. package/dist/esm/mods/security/src/components/fortified-function/core/fortified-logger.js.map +1 -0
  338. package/dist/esm/mods/security/src/components/fortified-function/core/mods/api-manager.js +187 -0
  339. package/dist/esm/mods/security/src/components/fortified-function/core/mods/api-manager.js.map +1 -0
  340. package/dist/esm/mods/security/src/components/fortified-function/core/mods/cache-manager.js +105 -0
  341. package/dist/esm/mods/security/src/components/fortified-function/core/mods/cache-manager.js.map +1 -0
  342. package/dist/esm/mods/security/src/components/fortified-function/core/mods/execution-context.js +103 -0
  343. package/dist/esm/mods/security/src/components/fortified-function/core/mods/execution-context.js.map +1 -0
  344. package/dist/esm/mods/security/src/components/fortified-function/core/mods/execution-engine.js +125 -0
  345. package/dist/esm/mods/security/src/components/fortified-function/core/mods/execution-engine.js.map +1 -0
  346. package/dist/esm/mods/security/src/components/fortified-function/core/mods/execution-router.js +91 -0
  347. package/dist/esm/mods/security/src/components/fortified-function/core/mods/execution-router.js.map +1 -0
  348. package/dist/esm/mods/security/src/components/fortified-function/core/mods/memory-manager.js +145 -0
  349. package/dist/esm/mods/security/src/components/fortified-function/core/mods/memory-manager.js.map +1 -0
  350. package/dist/esm/mods/security/src/components/fortified-function/core/mods/security-manager.js +100 -0
  351. package/dist/esm/mods/security/src/components/fortified-function/core/mods/security-manager.js.map +1 -0
  352. package/dist/esm/mods/security/src/components/fortified-function/core/mods/stats-manager.js +157 -0
  353. package/dist/esm/mods/security/src/components/fortified-function/core/mods/stats-manager.js.map +1 -0
  354. package/dist/esm/mods/security/src/components/fortified-function/core/mods/timing-manager.js +123 -0
  355. package/dist/esm/mods/security/src/components/fortified-function/core/mods/timing-manager.js.map +1 -0
  356. package/dist/esm/mods/security/src/components/fortified-function/engines/analytics-engine.js +368 -0
  357. package/dist/esm/mods/security/src/components/fortified-function/engines/analytics-engine.js.map +1 -0
  358. package/dist/esm/mods/security/src/components/fortified-function/engines/execution-engine.js +400 -0
  359. package/dist/esm/mods/security/src/components/fortified-function/engines/execution-engine.js.map +1 -0
  360. package/dist/esm/mods/security/src/components/fortified-function/index.js +165 -0
  361. package/dist/esm/mods/security/src/components/fortified-function/index.js.map +1 -0
  362. package/dist/esm/mods/security/src/components/fortified-function/performance/performance-monitor.js +238 -0
  363. package/dist/esm/mods/security/src/components/fortified-function/performance/performance-monitor.js.map +1 -0
  364. package/dist/esm/mods/security/src/components/fortified-function/performance/performance-timer.js +186 -0
  365. package/dist/esm/mods/security/src/components/fortified-function/performance/performance-timer.js.map +1 -0
  366. package/dist/esm/mods/security/src/components/fortified-function/security/security-handler.js +251 -0
  367. package/dist/esm/mods/security/src/components/fortified-function/security/security-handler.js.map +1 -0
  368. package/dist/esm/mods/security/src/components/fortified-function/serializer/safe-serializer.js +344 -0
  369. package/dist/esm/mods/security/src/components/fortified-function/serializer/safe-serializer.js.map +1 -0
  370. package/dist/esm/mods/security/src/components/fortified-function/smart-cache.js +691 -0
  371. package/dist/esm/mods/security/src/components/fortified-function/smart-cache.js.map +1 -0
  372. package/dist/esm/mods/security/src/components/fortified-function/types/types.js +14 -0
  373. package/dist/esm/mods/security/src/components/fortified-function/types/types.js.map +1 -0
  374. package/dist/esm/mods/security/src/components/fortified-function/utils/utils.js +66 -0
  375. package/dist/esm/mods/security/src/components/fortified-function/utils/utils.js.map +1 -0
  376. package/dist/esm/mods/security/src/components/memory-hard.js +919 -0
  377. package/dist/esm/mods/security/src/components/memory-hard.js.map +1 -0
  378. package/dist/esm/mods/security/src/components/post-quantum.js +316 -0
  379. package/dist/esm/mods/security/src/components/post-quantum.js.map +1 -0
  380. package/dist/esm/mods/security/src/components/runtime-verification.js +643 -0
  381. package/dist/esm/mods/security/src/components/runtime-verification.js.map +1 -0
  382. package/dist/esm/mods/security/src/components/secure-array/core/secure-array-core.js +1570 -0
  383. package/dist/esm/mods/security/src/components/secure-array/core/secure-array-core.js.map +1 -0
  384. package/dist/esm/mods/security/src/components/secure-array/crypto/ArrayCryptoHandler.js +328 -0
  385. package/dist/esm/mods/security/src/components/secure-array/crypto/ArrayCryptoHandler.js.map +1 -0
  386. package/dist/esm/mods/security/src/components/secure-array/events/event-manager.js +268 -0
  387. package/dist/esm/mods/security/src/components/secure-array/events/event-manager.js.map +1 -0
  388. package/dist/esm/mods/security/src/components/secure-array/index.js +61 -0
  389. package/dist/esm/mods/security/src/components/secure-array/index.js.map +1 -0
  390. package/dist/esm/mods/security/src/components/secure-array/metadata/metadata-manager.js +329 -0
  391. package/dist/esm/mods/security/src/components/secure-array/metadata/metadata-manager.js.map +1 -0
  392. package/dist/esm/mods/security/src/components/secure-array/serialization/ArraySerializationHandler.js +388 -0
  393. package/dist/esm/mods/security/src/components/secure-array/serialization/ArraySerializationHandler.js.map +1 -0
  394. package/dist/esm/mods/security/src/components/secure-array/types/index.js +84 -0
  395. package/dist/esm/mods/security/src/components/secure-array/types/index.js.map +1 -0
  396. package/dist/esm/mods/security/src/components/secure-array/utils/id-generator.js +78 -0
  397. package/dist/esm/mods/security/src/components/secure-array/utils/id-generator.js.map +1 -0
  398. package/dist/esm/mods/security/src/components/secure-array/utils/validation.js +273 -0
  399. package/dist/esm/mods/security/src/components/secure-array/utils/validation.js.map +1 -0
  400. package/dist/esm/mods/security/src/components/secure-memory.js +884 -0
  401. package/dist/esm/mods/security/src/components/secure-memory.js.map +1 -0
  402. package/dist/esm/mods/security/src/components/secure-object/core/secure-object-core.js +1603 -0
  403. package/dist/esm/mods/security/src/components/secure-object/core/secure-object-core.js.map +1 -0
  404. package/dist/esm/mods/security/src/components/secure-object/encryption/crypto-handler.js +360 -0
  405. package/dist/esm/mods/security/src/components/secure-object/encryption/crypto-handler.js.map +1 -0
  406. package/dist/esm/mods/security/src/components/secure-object/encryption/sensitive-keys.js +203 -0
  407. package/dist/esm/mods/security/src/components/secure-object/encryption/sensitive-keys.js.map +1 -0
  408. package/dist/esm/mods/security/src/components/secure-object/events/event-manager.js +195 -0
  409. package/dist/esm/mods/security/src/components/secure-object/events/event-manager.js.map +1 -0
  410. package/dist/esm/mods/security/src/components/secure-object/index.js +63 -0
  411. package/dist/esm/mods/security/src/components/secure-object/index.js.map +1 -0
  412. package/dist/esm/mods/security/src/components/secure-object/metadata/metadata-manager.js +181 -0
  413. package/dist/esm/mods/security/src/components/secure-object/metadata/metadata-manager.js.map +1 -0
  414. package/dist/esm/mods/security/src/components/secure-object/serialization/serialization-handler.js +195 -0
  415. package/dist/esm/mods/security/src/components/secure-object/serialization/serialization-handler.js.map +1 -0
  416. package/dist/esm/mods/security/src/components/secure-object/utils/id-generator.js +62 -0
  417. package/dist/esm/mods/security/src/components/secure-object/utils/id-generator.js.map +1 -0
  418. package/dist/esm/mods/security/src/components/secure-object/utils/validation.js +237 -0
  419. package/dist/esm/mods/security/src/components/secure-object/utils/validation.js.map +1 -0
  420. package/dist/esm/mods/security/src/components/secure-serialization.js +769 -0
  421. package/dist/esm/mods/security/src/components/secure-serialization.js.map +1 -0
  422. package/dist/esm/mods/security/src/components/secure-string/advanced/entropy-analyzer.js +306 -0
  423. package/dist/esm/mods/security/src/components/secure-string/advanced/entropy-analyzer.js.map +1 -0
  424. package/dist/esm/mods/security/src/components/secure-string/advanced/performance-monitor.js +333 -0
  425. package/dist/esm/mods/security/src/components/secure-string/advanced/performance-monitor.js.map +1 -0
  426. package/dist/esm/mods/security/src/components/secure-string/advanced/quantum-safe.js +243 -0
  427. package/dist/esm/mods/security/src/components/secure-string/advanced/quantum-safe.js.map +1 -0
  428. package/dist/esm/mods/security/src/components/secure-string/buffer/buffer-manager.js +203 -0
  429. package/dist/esm/mods/security/src/components/secure-string/buffer/buffer-manager.js.map +1 -0
  430. package/dist/esm/mods/security/src/components/secure-string/core/secure-string-core.js +786 -0
  431. package/dist/esm/mods/security/src/components/secure-string/core/secure-string-core.js.map +1 -0
  432. package/dist/esm/mods/security/src/components/secure-string/crypto/crypto-operations.js +298 -0
  433. package/dist/esm/mods/security/src/components/secure-string/crypto/crypto-operations.js.map +1 -0
  434. package/dist/esm/mods/security/src/components/secure-string/operations/comparison-operations.js +219 -0
  435. package/dist/esm/mods/security/src/components/secure-string/operations/comparison-operations.js.map +1 -0
  436. package/dist/esm/mods/security/src/components/secure-string/operations/string-operations.js +232 -0
  437. package/dist/esm/mods/security/src/components/secure-string/operations/string-operations.js.map +1 -0
  438. package/dist/esm/mods/security/src/components/secure-string/types/index.js +37 -0
  439. package/dist/esm/mods/security/src/components/secure-string/types/index.js.map +1 -0
  440. package/dist/esm/mods/security/src/components/secure-string/validation/string-validator.js +332 -0
  441. package/dist/esm/mods/security/src/components/secure-string/validation/string-validator.js.map +1 -0
  442. package/dist/esm/mods/security/src/components/side-channel.js +142 -0
  443. package/dist/esm/mods/security/src/components/side-channel.js.map +1 -0
  444. package/dist/esm/mods/security/src/components/tamper-evident-logging.js +389 -0
  445. package/dist/esm/mods/security/src/components/tamper-evident-logging.js.map +1 -0
  446. package/dist/esm/mods/security/src/const/buffer.const.js +13 -0
  447. package/dist/esm/mods/security/src/const/buffer.const.js.map +1 -0
  448. package/dist/esm/mods/security/src/core/crypto.js +720 -0
  449. package/dist/esm/mods/security/src/core/crypto.js.map +1 -0
  450. package/dist/esm/mods/security/src/core/hash/hash-advanced.js +367 -0
  451. package/dist/esm/mods/security/src/core/hash/hash-advanced.js.map +1 -0
  452. package/dist/esm/mods/security/src/core/hash/hash-core.js +355 -0
  453. package/dist/esm/mods/security/src/core/hash/hash-core.js.map +1 -0
  454. package/dist/esm/mods/security/src/core/hash/hash-entropy.js +286 -0
  455. package/dist/esm/mods/security/src/core/hash/hash-entropy.js.map +1 -0
  456. package/dist/esm/mods/security/src/core/hash/hash-security.js +351 -0
  457. package/dist/esm/mods/security/src/core/hash/hash-security.js.map +1 -0
  458. package/dist/esm/mods/security/src/core/hash/hash-types.js +16 -0
  459. package/dist/esm/mods/security/src/core/hash/hash-types.js.map +1 -0
  460. package/dist/esm/mods/security/src/core/hash/hash-utils.js +307 -0
  461. package/dist/esm/mods/security/src/core/hash/hash-utils.js.map +1 -0
  462. package/dist/esm/mods/security/src/core/hash/hash-validator.js +310 -0
  463. package/dist/esm/mods/security/src/core/hash/hash-validator.js.map +1 -0
  464. package/dist/esm/mods/security/src/core/hash.js +9 -0
  465. package/dist/esm/mods/security/src/core/hash.js.map +1 -0
  466. package/dist/esm/mods/security/src/core/keys/algorithms/mods/Argon2Algo.js +133 -0
  467. package/dist/esm/mods/security/src/core/keys/algorithms/mods/Argon2Algo.js.map +1 -0
  468. package/dist/esm/mods/security/src/core/keys/algorithms/mods/PBKDF2Algo.js +272 -0
  469. package/dist/esm/mods/security/src/core/keys/algorithms/mods/PBKDF2Algo.js.map +1 -0
  470. package/dist/esm/mods/security/src/core/keys/algorithms/mods/ScryptAlgo.js +296 -0
  471. package/dist/esm/mods/security/src/core/keys/algorithms/mods/ScryptAlgo.js.map +1 -0
  472. package/dist/esm/mods/security/src/core/keys/keys-core.js +199 -0
  473. package/dist/esm/mods/security/src/core/keys/keys-core.js.map +1 -0
  474. package/dist/esm/mods/security/src/core/keys/keys-logger.js +231 -0
  475. package/dist/esm/mods/security/src/core/keys/keys-logger.js.map +1 -0
  476. package/dist/esm/mods/security/src/core/keys/keys-types.js +63 -0
  477. package/dist/esm/mods/security/src/core/keys/keys-types.js.map +1 -0
  478. package/dist/esm/mods/security/src/core/keys/keys-utils.js +316 -0
  479. package/dist/esm/mods/security/src/core/keys/keys-utils.js.map +1 -0
  480. package/dist/esm/mods/security/src/core/keys.js +134 -0
  481. package/dist/esm/mods/security/src/core/keys.js.map +1 -0
  482. package/dist/esm/mods/security/src/core/password/index.js +110 -0
  483. package/dist/esm/mods/security/src/core/password/index.js.map +1 -0
  484. package/dist/esm/mods/security/src/core/password/password-algorithms.js +395 -0
  485. package/dist/esm/mods/security/src/core/password/password-algorithms.js.map +1 -0
  486. package/dist/esm/mods/security/src/core/password/password-core.js +292 -0
  487. package/dist/esm/mods/security/src/core/password/password-core.js.map +1 -0
  488. package/dist/esm/mods/security/src/core/password/password-generator.js +363 -0
  489. package/dist/esm/mods/security/src/core/password/password-generator.js.map +1 -0
  490. package/dist/esm/mods/security/src/core/password/password-migration.js +235 -0
  491. package/dist/esm/mods/security/src/core/password/password-migration.js.map +1 -0
  492. package/dist/esm/mods/security/src/core/password/password-security.js +532 -0
  493. package/dist/esm/mods/security/src/core/password/password-security.js.map +1 -0
  494. package/dist/esm/mods/security/src/core/password/password-types.js +34 -0
  495. package/dist/esm/mods/security/src/core/password/password-types.js.map +1 -0
  496. package/dist/esm/mods/security/src/core/password/password-utils.js +630 -0
  497. package/dist/esm/mods/security/src/core/password/password-utils.js.map +1 -0
  498. package/dist/esm/mods/security/src/core/password/swlist.js +1120 -0
  499. package/dist/esm/mods/security/src/core/password/swlist.js.map +1 -0
  500. package/dist/esm/mods/security/src/core/random/random-core.js +326 -0
  501. package/dist/esm/mods/security/src/core/random/random-core.js.map +1 -0
  502. package/dist/esm/mods/security/src/core/random/random-crypto.js +337 -0
  503. package/dist/esm/mods/security/src/core/random/random-crypto.js.map +1 -0
  504. package/dist/esm/mods/security/src/core/random/random-entropy.js +367 -0
  505. package/dist/esm/mods/security/src/core/random/random-entropy.js.map +1 -0
  506. package/dist/esm/mods/security/src/core/random/random-generators.js +323 -0
  507. package/dist/esm/mods/security/src/core/random/random-generators.js.map +1 -0
  508. package/dist/esm/mods/security/src/core/random/random-sources.js +405 -0
  509. package/dist/esm/mods/security/src/core/random/random-sources.js.map +1 -0
  510. package/dist/esm/mods/security/src/core/random/random-tokens.js +307 -0
  511. package/dist/esm/mods/security/src/core/random/random-tokens.js.map +1 -0
  512. package/dist/esm/mods/security/src/core/random/random-types.js +27 -0
  513. package/dist/esm/mods/security/src/core/random/random-types.js.map +1 -0
  514. package/dist/esm/mods/security/src/core/validators.js +198 -0
  515. package/dist/esm/mods/security/src/core/validators.js.map +1 -0
  516. package/dist/esm/mods/security/src/helpers/Uint8Array.js +333 -0
  517. package/dist/esm/mods/security/src/helpers/Uint8Array.js.map +1 -0
  518. package/dist/esm/mods/security/src/helpers/createEnu.js +25 -0
  519. package/dist/esm/mods/security/src/helpers/createEnu.js.map +1 -0
  520. package/dist/esm/mods/security/src/index.js +373 -0
  521. package/dist/esm/mods/security/src/index.js.map +1 -0
  522. package/dist/esm/mods/security/src/types/global.js +49 -0
  523. package/dist/esm/mods/security/src/types/global.js.map +1 -0
  524. package/dist/esm/mods/security/src/types/secure-mem.type.js +96 -0
  525. package/dist/esm/mods/security/src/types/secure-mem.type.js.map +1 -0
  526. package/dist/esm/mods/security/src/types/secure-memory.js +20 -0
  527. package/dist/esm/mods/security/src/types/secure-memory.js.map +1 -0
  528. package/dist/esm/mods/security/src/types.js +63 -0
  529. package/dist/esm/mods/security/src/types.js.map +1 -0
  530. package/dist/esm/mods/security/src/utils/CryptoAlgorithmUtils.js +69 -0
  531. package/dist/esm/mods/security/src/utils/CryptoAlgorithmUtils.js.map +1 -0
  532. package/dist/esm/mods/security/src/utils/constants.js +105 -0
  533. package/dist/esm/mods/security/src/utils/constants.js.map +1 -0
  534. package/dist/esm/mods/security/src/utils/dataConverter.js +72 -0
  535. package/dist/esm/mods/security/src/utils/dataConverter.js.map +1 -0
  536. package/dist/esm/mods/security/src/utils/encoding.js +279 -0
  537. package/dist/esm/mods/security/src/utils/encoding.js.map +1 -0
  538. package/dist/esm/mods/security/src/utils/errorHandler.js +137 -0
  539. package/dist/esm/mods/security/src/utils/errorHandler.js.map +1 -0
  540. package/dist/esm/mods/security/src/utils/memory/config-manager.js +280 -0
  541. package/dist/esm/mods/security/src/utils/memory/config-manager.js.map +1 -0
  542. package/dist/esm/mods/security/src/utils/memory/event-manager.js +275 -0
  543. package/dist/esm/mods/security/src/utils/memory/event-manager.js.map +1 -0
  544. package/dist/esm/mods/security/src/utils/memory/index.js +141 -0
  545. package/dist/esm/mods/security/src/utils/memory/index.js.map +1 -0
  546. package/dist/esm/mods/security/src/utils/memory/memory-manager.js +886 -0
  547. package/dist/esm/mods/security/src/utils/memory/memory-manager.js.map +1 -0
  548. package/dist/esm/mods/security/src/utils/memory/memory-pool.js +354 -0
  549. package/dist/esm/mods/security/src/utils/memory/memory-pool.js.map +1 -0
  550. package/dist/esm/mods/security/src/utils/memory/reference-tracker.js +374 -0
  551. package/dist/esm/mods/security/src/utils/memory/reference-tracker.js.map +1 -0
  552. package/dist/esm/mods/security/src/utils/memory/types.js +56 -0
  553. package/dist/esm/mods/security/src/utils/memory/types.js.map +1 -0
  554. package/dist/esm/mods/security/src/utils/patterns.js +124 -0
  555. package/dist/esm/mods/security/src/utils/patterns.js.map +1 -0
  556. package/dist/esm/mods/security/src/utils/performanceMonitor.js +246 -0
  557. package/dist/esm/mods/security/src/utils/performanceMonitor.js.map +1 -0
  558. package/dist/esm/mods/security/src/utils/stats.js +180 -0
  559. package/dist/esm/mods/security/src/utils/stats.js.map +1 -0
  560. package/dist/esm/security-middleware.js +15 -15
  561. package/dist/esm/server/components/fastapi/UltraFastRequestProcessor.js +1 -1
  562. package/dist/esm/server/components/fastapi/console/ConsoleInterceptor.js +23 -23
  563. package/dist/esm/server/components/fastapi/middlewares/MiddlewareAPI.js +1 -1
  564. package/dist/esm/server/optimization/RequestPreCompiler.js +1 -1
  565. package/dist/esm/server/plugins/PluginRegistry.js +1 -1
  566. package/dist/esm/server/plugins/core/CachePlugin.js +7 -7
  567. package/dist/esm/server/plugins/core/PerformancePlugin.js +2 -2
  568. package/dist/esm/server/plugins/core/SecurityPlugin.js +10 -10
  569. package/dist/esm/smart-routes.js +1 -1
  570. package/package.json +2 -2
@@ -0,0 +1,772 @@
1
+ 'use strict';
2
+
3
+ var hashCore = require('../core/hash/hash-core.js');
4
+ require('../core/hash/hash-types.js');
5
+ require('crypto');
6
+ var encoding = require('../utils/encoding.js');
7
+ require('../core/hash/hash-security.js');
8
+ require('../core/hash/hash-advanced.js');
9
+ require('../algorithms/hash-algorithms.js');
10
+ var randomCore = require('../core/random/random-core.js');
11
+ require('../core/random/random-types.js');
12
+ require('../core/random/random-sources.js');
13
+ require('nehonix-uri-processor');
14
+ require('../utils/memory/index.js');
15
+ require('../types.js');
16
+
17
+ /**
18
+ * Secure Serialization Module
19
+ *
20
+ * This module provides secure methods for serializing and deserializing data,
21
+ * protecting against prototype pollution, object injection, and other
22
+ * serialization-related vulnerabilities.
23
+ */
24
+ /**
25
+ * Securely serializes data
26
+ *
27
+ * @param data - Data to serialize
28
+ * @param options - Serialization options
29
+ * @returns Serialization result
30
+ */
31
+ function secureSerialize(data, options = {}) {
32
+ // Set default options
33
+ const opts = {
34
+ sign: options.sign !== false,
35
+ encrypt: options.encrypt || false,
36
+ includeTimestamp: options.includeTimestamp !== false,
37
+ includeNonce: options.includeNonce !== false,
38
+ validateTypes: options.validateTypes !== false,
39
+ allowedClasses: options.allowedClasses || [],
40
+ };
41
+ // Generate keys if needed
42
+ const signKey = options.signKey || encoding.bufferToHex(randomCore.SecureRandom.getRandomBytes(32));
43
+ const encryptKey = options.encryptKey || encoding.bufferToHex(randomCore.SecureRandom.getRandomBytes(32));
44
+ // Create metadata
45
+ const metadata = {};
46
+ if (opts.includeTimestamp) {
47
+ metadata.timestamp = Date.now();
48
+ }
49
+ if (opts.includeNonce) {
50
+ metadata.nonce = encoding.bufferToHex(randomCore.SecureRandom.getRandomBytes(16));
51
+ }
52
+ // Prepare the data for serialization
53
+ const preparedData = prepareForSerialization(data, opts.validateTypes, opts.allowedClasses);
54
+ // Create the payload
55
+ const payload = {
56
+ data: preparedData,
57
+ metadata,
58
+ };
59
+ // Serialize the payload
60
+ let serialized = JSON.stringify(payload);
61
+ // Encrypt if requested
62
+ if (opts.encrypt) {
63
+ if (!options.encryptKey) {
64
+ throw new Error("Encryption key is required when encrypt is true");
65
+ }
66
+ serialized = encryptData(serialized, encryptKey);
67
+ }
68
+ // Create the result
69
+ const result = {
70
+ data: serialized,
71
+ };
72
+ // Add metadata to the result
73
+ if (opts.includeTimestamp) {
74
+ result.timestamp = metadata.timestamp;
75
+ }
76
+ if (opts.includeNonce) {
77
+ result.nonce = metadata.nonce;
78
+ }
79
+ // Sign if requested
80
+ if (opts.sign) {
81
+ result.signature = signData(serialized, signKey);
82
+ }
83
+ return result;
84
+ }
85
+ /**
86
+ * Securely deserializes data
87
+ *
88
+ * @param serialized - Serialized data
89
+ * @param options - Deserialization options
90
+ * @returns Deserialization result
91
+ */
92
+ function secureDeserialize(serialized, options = {}) {
93
+ // Set default options
94
+ const opts = {
95
+ verifySignature: options.verifySignature !== false,
96
+ decrypt: options.decrypt || false,
97
+ validateTimestamp: options.validateTimestamp !== false,
98
+ maxAge: options.maxAge || 3600000, // 1 hour
99
+ validateTypes: options.validateTypes !== false,
100
+ allowedClasses: options.allowedClasses || [],
101
+ };
102
+ // Verify signature if requested
103
+ let validSignature = undefined;
104
+ if (opts.verifySignature) {
105
+ if (!options.signKey) {
106
+ throw new Error("Signature key is required when verifySignature is true");
107
+ }
108
+ if (!serialized.signature) {
109
+ throw new Error("Signature is missing from serialized data");
110
+ }
111
+ validSignature = verifySignature(serialized.data, serialized.signature, options.signKey);
112
+ if (!validSignature) {
113
+ throw new Error("Invalid signature");
114
+ }
115
+ }
116
+ // Decrypt if requested
117
+ let dataString = serialized.data;
118
+ if (opts.decrypt) {
119
+ if (!options.decryptKey) {
120
+ throw new Error("Decryption key is required when decrypt is true");
121
+ }
122
+ dataString = decryptData(dataString, options.decryptKey);
123
+ }
124
+ // Parse the data
125
+ let payload;
126
+ try {
127
+ payload = JSON.parse(dataString);
128
+ }
129
+ catch (e) {
130
+ throw new Error(`Failed to parse serialized data: ${e.message}`);
131
+ }
132
+ // Validate the payload structure
133
+ if (!payload || typeof payload !== "object") {
134
+ throw new Error("Invalid payload structure");
135
+ }
136
+ if (!("data" in payload)) {
137
+ throw new Error("Missing data in payload");
138
+ }
139
+ // Validate timestamp if requested
140
+ let validTimestamp = undefined;
141
+ let timestamp = undefined;
142
+ let age = undefined;
143
+ if (opts.validateTimestamp) {
144
+ if (!payload.metadata || !payload.metadata.timestamp) {
145
+ throw new Error("Timestamp is missing from payload");
146
+ }
147
+ timestamp = payload.metadata.timestamp;
148
+ const now = Date.now();
149
+ age = now - timestamp;
150
+ validTimestamp = age <= opts.maxAge;
151
+ if (!validTimestamp) {
152
+ throw new Error(`Data is too old (${age}ms, max ${opts.maxAge}ms)`);
153
+ }
154
+ }
155
+ // Deserialize the data
156
+ const deserializedData = deserializeData(payload.data, opts.validateTypes, opts.allowedClasses);
157
+ // Create the result
158
+ const result = {
159
+ data: deserializedData,
160
+ };
161
+ // Add metadata to the result
162
+ if (validSignature !== undefined) {
163
+ result.validSignature = validSignature;
164
+ }
165
+ if (validTimestamp !== undefined) {
166
+ result.validTimestamp = validTimestamp;
167
+ }
168
+ if (timestamp !== undefined) {
169
+ result.timestamp = timestamp;
170
+ }
171
+ if (age !== undefined) {
172
+ result.age = age;
173
+ }
174
+ return result;
175
+ }
176
+ /**
177
+ * Prepares data for serialization
178
+ *
179
+ * @param data - Data to prepare
180
+ * @param validateTypes - Whether to validate object types
181
+ * @param allowedClasses - Allowed classes for serialization
182
+ * @returns Prepared data
183
+ */
184
+ function prepareForSerialization(data, validateTypes, allowedClasses) {
185
+ // Handle null and undefined
186
+ if (data === null || data === undefined) {
187
+ return { type: "null", value: null };
188
+ }
189
+ // Handle primitive types
190
+ if (typeof data === "string" ||
191
+ typeof data === "number" ||
192
+ typeof data === "boolean") {
193
+ return { type: typeof data, value: data };
194
+ }
195
+ // Handle Date
196
+ if (data instanceof Date) {
197
+ return { type: "date", value: data.toISOString() };
198
+ }
199
+ // Handle RegExp
200
+ if (data instanceof RegExp) {
201
+ return {
202
+ type: "regexp",
203
+ value: {
204
+ pattern: data.source,
205
+ flags: data.flags,
206
+ },
207
+ };
208
+ }
209
+ // Handle Uint8Array
210
+ if (data instanceof Uint8Array) {
211
+ return { type: "uint8array", value: encoding.bufferToHex(data) };
212
+ }
213
+ // Handle Array
214
+ if (Array.isArray(data)) {
215
+ return {
216
+ type: "array",
217
+ value: data.map((item) => prepareForSerialization(item, validateTypes, allowedClasses)),
218
+ };
219
+ }
220
+ // Handle Object
221
+ if (typeof data === "object") {
222
+ const constructor = data.constructor?.name || "Object";
223
+ // Validate class if requested
224
+ if (validateTypes &&
225
+ constructor !== "Object" &&
226
+ !allowedClasses.includes(constructor)) {
227
+ throw new Error(`Class ${constructor} is not allowed for serialization`);
228
+ }
229
+ const result = {};
230
+ for (const key in data) {
231
+ if (Object.prototype.hasOwnProperty.call(data, key)) {
232
+ result[key] = prepareForSerialization(data[key], validateTypes, allowedClasses);
233
+ }
234
+ }
235
+ return {
236
+ type: "object",
237
+ class: constructor,
238
+ value: result,
239
+ };
240
+ }
241
+ // Handle unsupported types
242
+ return { type: "unsupported", value: String(data) };
243
+ }
244
+ /**
245
+ * Deserializes data
246
+ *
247
+ * @param data - Data to deserialize
248
+ * @param validateTypes - Whether to validate object types
249
+ * @param allowedClasses - Allowed classes for deserialization
250
+ * @returns Deserialized data
251
+ */
252
+ function deserializeData(data, validateTypes, allowedClasses) {
253
+ // Validate data structure
254
+ if (!data || typeof data !== "object" || !("type" in data)) {
255
+ throw new Error("Invalid data structure for deserialization");
256
+ }
257
+ const { type, value } = data;
258
+ // Handle null
259
+ if (type === "null") {
260
+ return null;
261
+ }
262
+ // Handle primitive types
263
+ if (type === "string" || type === "number" || type === "boolean") {
264
+ return value;
265
+ }
266
+ // Handle Date
267
+ if (type === "date") {
268
+ return new Date(value);
269
+ }
270
+ // Handle RegExp
271
+ if (type === "regexp") {
272
+ return new RegExp(value.pattern, value.flags);
273
+ }
274
+ // Handle Uint8Array
275
+ if (type === "uint8array") {
276
+ return encoding.hexToBuffer(value);
277
+ }
278
+ // Handle Array
279
+ if (type === "array") {
280
+ return value.map((item) => deserializeData(item, validateTypes, allowedClasses));
281
+ }
282
+ // Handle Object
283
+ if (type === "object") {
284
+ const className = data.class || "Object";
285
+ // Validate class if requested
286
+ if (validateTypes &&
287
+ className !== "Object" &&
288
+ !allowedClasses.includes(className)) {
289
+ throw new Error(`Class ${className} is not allowed for deserialization`);
290
+ }
291
+ const result = {};
292
+ for (const key in value) {
293
+ if (Object.prototype.hasOwnProperty.call(value, key)) {
294
+ result[key] = deserializeData(value[key], validateTypes, allowedClasses);
295
+ }
296
+ }
297
+ return result;
298
+ }
299
+ // Handle unsupported types
300
+ if (type === "unsupported") {
301
+ return value;
302
+ }
303
+ throw new Error(`Unsupported type: ${type}`);
304
+ }
305
+ /**
306
+ * Signs data
307
+ *
308
+ * @param data - Data to sign
309
+ * @param key - Key to use for signing
310
+ * @returns Signature
311
+ */
312
+ function signData(data, key) {
313
+ return hashCore.Hash.create(data, {
314
+ salt: key,
315
+ algorithm: "sha256",
316
+ iterations: 1000,
317
+ outputFormat: "hex",
318
+ });
319
+ }
320
+ /**
321
+ * Verifies a signature
322
+ *
323
+ * @param data - Data to verify
324
+ * @param signature - Signature to verify
325
+ * @param key - Key to use for verification
326
+ * @returns True if the signature is valid
327
+ */
328
+ function verifySignature(data, signature, key) {
329
+ const expectedSignature = signData(data, key);
330
+ return expectedSignature === signature;
331
+ }
332
+ /**
333
+ * Encrypts data using AES-GCM
334
+ *
335
+ * @param data - Data to encrypt
336
+ * @param key - Key to use for encryption (hex encoded)
337
+ * @returns Encrypted data (hex encoded)
338
+ */
339
+ function encryptData(data, key) {
340
+ try {
341
+ // Convert data to bytes
342
+ const dataBytes = new TextEncoder().encode(data);
343
+ // Generate a random IV (Initialization Vector)
344
+ const iv = randomCore.SecureRandom.getRandomBytes(12); // 96 bits for AES-GCM
345
+ // Derive encryption key from the provided key
346
+ const keyBytes = encoding.hexToBuffer(key);
347
+ const derivedKey = hashCore.Hash.create(keyBytes, {
348
+ algorithm: "sha256",
349
+ outputFormat: "buffer",
350
+ });
351
+ // Use our own implementation since Web Crypto API is async
352
+ // and our interface is synchronous
353
+ return encryptWithAesGcm(dataBytes, derivedKey, iv);
354
+ }
355
+ catch (error) {
356
+ console.error("Encryption error:", error);
357
+ throw new Error(`Failed to encrypt data: ${error.message}`);
358
+ }
359
+ }
360
+ // Web Crypto API implementation removed since we're using a synchronous interface
361
+ /**
362
+ * Encrypts data using a proper AES-GCM implementation
363
+ *
364
+ * @param data - Data to encrypt
365
+ * @param key - Encryption key
366
+ * @param iv - Initialization vector
367
+ * @returns Encrypted data (hex encoded)
368
+ */
369
+ function encryptWithAesGcm(data, key, iv) {
370
+ try {
371
+ // Try to use Node.js crypto if available
372
+ if (typeof require === "function") {
373
+ const nodeCrypto = require("crypto");
374
+ if (typeof nodeCrypto.createCipheriv === "function") {
375
+ // Use Node.js crypto for AES-GCM
376
+ const cipher = nodeCrypto.createCipheriv("aes-256-gcm", key.slice(0, 32), // Use first 32 bytes for AES-256
377
+ iv);
378
+ // Encrypt the data
379
+ const encrypted = Buffer.concat([
380
+ cipher.update(Buffer.from(data)),
381
+ cipher.final(),
382
+ ]);
383
+ // Get the authentication tag
384
+ const authTag = cipher.getAuthTag();
385
+ // Combine IV, encrypted data, and authentication tag
386
+ const result = new Uint8Array(iv.length + encrypted.length + authTag.length);
387
+ result.set(iv, 0);
388
+ result.set(new Uint8Array(encrypted), iv.length);
389
+ result.set(new Uint8Array(authTag), iv.length + encrypted.length);
390
+ return encoding.bufferToHex(result);
391
+ }
392
+ }
393
+ }
394
+ catch (e) {
395
+ console.warn("Node.js crypto AES-GCM failed:", e);
396
+ // Fall back to aes-js implementation
397
+ }
398
+ try {
399
+ // Use aes-js library
400
+ const aesJs = require("aes-js");
401
+ // Prepare the key (must be 16, 24, or 32 bytes)
402
+ const aesKey = key.slice(0, 32); // Use first 32 bytes for AES-256
403
+ // Create AES counter mode for encryption (we'll implement GCM on top of CTR)
404
+ const aesCtr = new aesJs.ModeOfOperation.ctr(aesKey, new aesJs.Counter(iv));
405
+ // Encrypt the data
406
+ const encrypted = aesCtr.encrypt(data);
407
+ // For GCM, we need to compute a GHASH of the ciphertext and AAD
408
+ // This is a simplified GHASH implementation
409
+ const ghash = computeGHash(encrypted, aesKey, iv);
410
+ // Combine IV, encrypted data, and authentication tag
411
+ const result = new Uint8Array(iv.length + encrypted.length + ghash.length);
412
+ result.set(iv, 0);
413
+ result.set(encrypted, iv.length);
414
+ result.set(ghash, iv.length + encrypted.length);
415
+ return encoding.bufferToHex(result);
416
+ }
417
+ catch (e) {
418
+ console.warn("aes-js implementation failed:", e);
419
+ // Fall back to our own implementation
420
+ }
421
+ // If all else fails, use our own implementation
422
+ console.warn("Using fallback AES-GCM implementation");
423
+ // Implement AES-GCM from scratch
424
+ // 1. Use AES in CTR mode for encryption
425
+ const aesKey = key.slice(0, 32); // Use first 32 bytes for AES-256
426
+ const counter = new Uint8Array(16);
427
+ counter.set(iv, 0);
428
+ counter[15] = 1; // Start counter at 1 for GCM
429
+ // Encrypt using AES-CTR
430
+ const encrypted = new Uint8Array(data.length);
431
+ let counterBlock = aesEncryptBlock(counter, aesKey);
432
+ for (let i = 0; i < data.length; i++) {
433
+ // Update counter and generate new keystream block when needed
434
+ if (i > 0 && i % 16 === 0) {
435
+ incrementCounter(counter);
436
+ counterBlock = aesEncryptBlock(counter, aesKey);
437
+ }
438
+ // XOR data with keystream
439
+ encrypted[i] = data[i] ^ counterBlock[i % 16];
440
+ }
441
+ // 2. Compute GHASH for authentication
442
+ const authTag = computeGCMTag(encrypted, aesKey, iv);
443
+ // 3. Combine IV, encrypted data, and authentication tag
444
+ const result = new Uint8Array(iv.length + encrypted.length + authTag.length);
445
+ result.set(iv, 0);
446
+ result.set(encrypted, iv.length);
447
+ result.set(authTag, iv.length + encrypted.length);
448
+ return encoding.bufferToHex(result);
449
+ }
450
+ /**
451
+ * Encrypts a single AES block
452
+ *
453
+ * @param block - 16-byte block to encrypt
454
+ * @param key - AES key
455
+ * @returns Encrypted block
456
+ */
457
+ function aesEncryptBlock(block, key) {
458
+ try {
459
+ // Try to use Node.js crypto if available
460
+ if (typeof require === "function") {
461
+ const crypto = require("crypto");
462
+ if (typeof crypto.createCipheriv === "function") {
463
+ const cipher = crypto.createCipheriv("aes-256-ecb", key.slice(0, 32), Buffer.alloc(0));
464
+ cipher.setAutoPadding(false);
465
+ return new Uint8Array(Buffer.concat([
466
+ cipher.update(Buffer.from(block)),
467
+ cipher.final(),
468
+ ]));
469
+ }
470
+ }
471
+ }
472
+ catch (e) {
473
+ // Fall back to our implementation
474
+ }
475
+ try {
476
+ // Try to use aes-js if available
477
+ const aesJs = require("aes-js");
478
+ const aesEcb = new aesJs.ModeOfOperation.ecb(key.slice(0, 32));
479
+ return new Uint8Array(aesEcb.encrypt(block));
480
+ }
481
+ catch (e) {
482
+ // Fall back to our implementation
483
+ }
484
+ // If all else fails, use a secure hash as a substitute
485
+ // This is not ideal but better than nothing
486
+ const combinedData = new Uint8Array(block.length + key.length);
487
+ combinedData.set(block, 0);
488
+ combinedData.set(key, block.length);
489
+ const hash = hashCore.Hash.create(combinedData, {
490
+ algorithm: "sha256",
491
+ outputFormat: "buffer",
492
+ });
493
+ return hash.slice(0, 16);
494
+ }
495
+ /**
496
+ * Increments a counter for AES-CTR mode
497
+ *
498
+ * @param counter - Counter to increment (modified in place)
499
+ */
500
+ function incrementCounter(counter) {
501
+ for (let i = counter.length - 1; i >= 0; i--) {
502
+ if (++counter[i] !== 0) {
503
+ break;
504
+ }
505
+ }
506
+ }
507
+ /**
508
+ * Computes the authentication tag for AES-GCM
509
+ *
510
+ * @param ciphertext - Encrypted data
511
+ * @param key - Encryption key
512
+ * @param iv - Initialization vector
513
+ * @returns Authentication tag
514
+ */
515
+ function computeGCMTag(ciphertext, key, iv, aad = new Uint8Array(0)) {
516
+ // Full GCM implementation with proper GHASH computation and authentication
517
+ // Step 1: Generate the hash subkey H by encrypting a zero block with AES
518
+ const zeroBlock = new Uint8Array(16);
519
+ const hashSubkey = aesEncryptBlock(zeroBlock, key);
520
+ // Step 2: Compute GHASH of AAD and ciphertext
521
+ const ghashResult = computeGHash(ciphertext, hashSubkey, aad);
522
+ // Step 3: Generate the initial counter block for GCTR
523
+ let j0;
524
+ if (iv.length === 12) {
525
+ // Standard 96-bit IV
526
+ j0 = new Uint8Array(16);
527
+ j0.set(iv, 0);
528
+ j0[15] = 1; // Set the counter to 1
529
+ }
530
+ else {
531
+ // Non-standard IV length, hash it
532
+ j0 = computeGHash(iv, hashSubkey);
533
+ }
534
+ // Step 4: Encrypt the GHASH result with GCTR using J0
535
+ const tag = new Uint8Array(16);
536
+ const j0Encrypted = aesEncryptBlock(j0, key);
537
+ // XOR the GHASH result with the encrypted J0 to get the authentication tag
538
+ for (let i = 0; i < 16; i++) {
539
+ tag[i] = ghashResult[i] ^ j0Encrypted[i];
540
+ }
541
+ return tag;
542
+ }
543
+ /**
544
+ * Compute GHASH function for GCM authentication
545
+ */
546
+ function computeGHash(data, hashSubkey, aad = new Uint8Array(0)) {
547
+ // Initialize the hash to zero
548
+ let hash = new Uint8Array(16);
549
+ // Process AAD first
550
+ if (aad.length > 0) {
551
+ hash = processGHashBlocks(aad, hash, hashSubkey);
552
+ }
553
+ // Process ciphertext
554
+ if (data.length > 0) {
555
+ hash = processGHashBlocks(data, hash, hashSubkey);
556
+ }
557
+ // Process the length block (AAD length || ciphertext length)
558
+ const lengthBlock = new Uint8Array(16);
559
+ const view = new DataView(lengthBlock.buffer);
560
+ view.setBigUint64(0, BigInt(aad.length * 8), false); // AAD length in bits
561
+ view.setBigUint64(8, BigInt(data.length * 8), false); // Ciphertext length in bits
562
+ // Final GHASH operation with length block
563
+ hash = gfMultiply(xorBlocks(hash, lengthBlock), hashSubkey);
564
+ return hash;
565
+ }
566
+ /**
567
+ * Process blocks for GHASH computation
568
+ */
569
+ function processGHashBlocks(data, initialHash, hashSubkey) {
570
+ let hash = new Uint8Array(initialHash);
571
+ // Process complete 16-byte blocks
572
+ for (let i = 0; i < data.length; i += 16) {
573
+ const block = new Uint8Array(16);
574
+ const remainingBytes = Math.min(16, data.length - i);
575
+ block.set(data.slice(i, i + remainingBytes), 0);
576
+ // GHASH operation: hash = (hash XOR block) * H
577
+ hash = gfMultiply(xorBlocks(hash, block), hashSubkey);
578
+ }
579
+ return hash;
580
+ }
581
+ /**
582
+ * Galois Field multiplication for GHASH
583
+ */
584
+ function gfMultiply(a, b) {
585
+ const result = new Uint8Array(16);
586
+ const v = new Uint8Array(b);
587
+ for (let i = 0; i < 16; i++) {
588
+ for (let j = 0; j < 8; j++) {
589
+ if ((a[i] & (1 << (7 - j))) !== 0) {
590
+ xorInPlace(result, v);
591
+ }
592
+ // Shift v right by 1 bit
593
+ const carry = v[15] & 1;
594
+ for (let k = 15; k > 0; k--) {
595
+ v[k] = (v[k] >>> 1) | ((v[k - 1] & 1) << 7);
596
+ }
597
+ v[0] = v[0] >>> 1;
598
+ // If there was a carry, XOR with the reduction polynomial
599
+ if (carry) {
600
+ v[0] ^= 0xe1; // Reduction polynomial for GF(2^128)
601
+ }
602
+ }
603
+ }
604
+ return result;
605
+ }
606
+ /**
607
+ * XOR two blocks in place
608
+ */
609
+ function xorInPlace(a, b) {
610
+ for (let i = 0; i < Math.min(a.length, b.length); i++) {
611
+ a[i] ^= b[i];
612
+ }
613
+ }
614
+ /**
615
+ * XOR two blocks and return result
616
+ */
617
+ function xorBlocks(a, b) {
618
+ const result = new Uint8Array(Math.max(a.length, b.length));
619
+ for (let i = 0; i < result.length; i++) {
620
+ result[i] = (a[i] || 0) ^ (b[i] || 0);
621
+ }
622
+ return result;
623
+ }
624
+ // Note: The generateKeyStream and generateAuthTag functions have been replaced
625
+ // with more secure implementations: computeGHash, aesEncryptBlock, incrementCounter, and computeGCMTag
626
+ /**
627
+ * Decrypts data
628
+ *
629
+ * @param data - Data to decrypt (hex encoded)
630
+ * @param key - Key to use for decryption (hex encoded)
631
+ * @returns Decrypted data
632
+ */
633
+ function decryptData(data, key) {
634
+ try {
635
+ // Convert data to bytes
636
+ const dataBytes = encoding.hexToBuffer(data);
637
+ // Extract IV, ciphertext, and authentication tag
638
+ if (dataBytes.length < 28) {
639
+ // 12 (IV) + 16 (minimum auth tag)
640
+ throw new Error("Invalid encrypted data format");
641
+ }
642
+ const iv = dataBytes.slice(0, 12);
643
+ const authTagLength = 16;
644
+ const ciphertext = dataBytes.slice(12, dataBytes.length - authTagLength);
645
+ const authTag = dataBytes.slice(dataBytes.length - authTagLength);
646
+ // Derive decryption key from the provided key
647
+ const keyBytes = encoding.hexToBuffer(key);
648
+ const derivedKey = hashCore.Hash.create(keyBytes, {
649
+ algorithm: "sha256",
650
+ outputFormat: "buffer",
651
+ });
652
+ // Decrypt the data
653
+ const decrypted = decryptWithAesGcm(ciphertext, derivedKey, iv, authTag);
654
+ return new TextDecoder().decode(decrypted);
655
+ }
656
+ catch (error) {
657
+ console.error("Decryption error:", error);
658
+ throw new Error(`Failed to decrypt data: ${error.message}`);
659
+ }
660
+ }
661
+ /**
662
+ * Decrypts data using a proper AES-GCM implementation
663
+ *
664
+ * @param data - Encrypted data
665
+ * @param key - Decryption key
666
+ * @param iv - Initialization vector
667
+ * @param authTag - Authentication tag
668
+ * @returns Decrypted data
669
+ */
670
+ function decryptWithAesGcm(data, key, iv, authTag) {
671
+ try {
672
+ // Try to use Node.js crypto if available
673
+ if (typeof require === "function") {
674
+ const nodeCrypto = require("crypto");
675
+ if (typeof nodeCrypto.createDecipheriv === "function") {
676
+ // Use Node.js crypto for AES-GCM
677
+ const decipher = nodeCrypto.createDecipheriv("aes-256-gcm", key.slice(0, 32), // Use first 32 bytes for AES-256
678
+ iv);
679
+ // Set the authentication tag
680
+ decipher.setAuthTag(Buffer.from(authTag));
681
+ // Decrypt the data
682
+ try {
683
+ const decrypted = Buffer.concat([
684
+ decipher.update(Buffer.from(data)),
685
+ decipher.final(),
686
+ ]);
687
+ return new Uint8Array(decrypted);
688
+ }
689
+ catch (e) {
690
+ throw new Error("Authentication tag mismatch - data may be corrupted or tampered with");
691
+ }
692
+ }
693
+ }
694
+ }
695
+ catch (e) {
696
+ console.warn("Node.js crypto AES-GCM decryption failed:", e);
697
+ // Fall back to aes-js implementation
698
+ }
699
+ try {
700
+ // Use aes-js library
701
+ const aesJs = require("aes-js");
702
+ // Prepare the key (must be 16, 24, or 32 bytes)
703
+ const aesKey = key.slice(0, 32); // Use first 32 bytes for AES-256
704
+ // Create AES counter mode for decryption (we'll implement GCM on top of CTR)
705
+ const aesCtr = new aesJs.ModeOfOperation.ctr(aesKey, new aesJs.Counter(iv));
706
+ // Decrypt the data
707
+ const decrypted = aesCtr.decrypt(data);
708
+ // Verify the authentication tag
709
+ const expectedTag = computeGHash(decrypted, aesKey, iv);
710
+ // Constant-time comparison of the authentication tags
711
+ let tagMatch = true;
712
+ if (authTag.length !== expectedTag.length) {
713
+ tagMatch = false;
714
+ }
715
+ else {
716
+ let diff = 0;
717
+ for (let i = 0; i < authTag.length; i++) {
718
+ diff |= authTag[i] ^ expectedTag[i];
719
+ }
720
+ tagMatch = diff === 0;
721
+ }
722
+ if (!tagMatch) {
723
+ throw new Error("Authentication tag mismatch - data may be corrupted or tampered with");
724
+ }
725
+ return decrypted;
726
+ }
727
+ catch (e) {
728
+ console.warn("aes-js decryption failed:", e);
729
+ // Fall back to our own implementation
730
+ }
731
+ // If all else fails, use our own implementation
732
+ console.warn("Using fallback AES-GCM decryption implementation");
733
+ // 1. Use AES in CTR mode for decryption
734
+ const aesKey = key.slice(0, 32); // Use first 32 bytes for AES-256
735
+ const counter = new Uint8Array(16);
736
+ counter.set(iv, 0);
737
+ counter[15] = 1; // Start counter at 1 for GCM
738
+ // Decrypt using AES-CTR
739
+ const decrypted = new Uint8Array(data.length);
740
+ let counterBlock = aesEncryptBlock(counter, aesKey);
741
+ for (let i = 0; i < data.length; i++) {
742
+ // Update counter and generate new keystream block when needed
743
+ if (i > 0 && i % 16 === 0) {
744
+ incrementCounter(counter);
745
+ counterBlock = aesEncryptBlock(counter, aesKey);
746
+ }
747
+ // XOR data with keystream
748
+ decrypted[i] = data[i] ^ counterBlock[i % 16];
749
+ }
750
+ // 2. Verify the authentication tag
751
+ const expectedTag = computeGCMTag(decrypted, aesKey, iv);
752
+ // Constant-time comparison of the authentication tags
753
+ let tagMatch = true;
754
+ if (authTag.length !== expectedTag.length) {
755
+ tagMatch = false;
756
+ }
757
+ else {
758
+ let diff = 0;
759
+ for (let i = 0; i < authTag.length; i++) {
760
+ diff |= authTag[i] ^ expectedTag[i];
761
+ }
762
+ tagMatch = diff === 0;
763
+ }
764
+ if (!tagMatch) {
765
+ throw new Error("Authentication tag mismatch - data may be corrupted or tampered with");
766
+ }
767
+ return decrypted;
768
+ }
769
+
770
+ exports.secureDeserialize = secureDeserialize;
771
+ exports.secureSerialize = secureSerialize;
772
+ //# sourceMappingURL=secure-serialization.js.map