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,355 @@
1
+ import { HASH_SECURITY_CONSTANTS } from '../../utils/constants.js';
2
+ import { SecureRandom } from '../random/random-core.js';
3
+ import '../random/random-types.js';
4
+ import * as crypto from 'crypto';
5
+ import '../random/random-sources.js';
6
+ import 'nehonix-uri-processor';
7
+ import '../../utils/memory/index.js';
8
+ import '../../types.js';
9
+ import { HashStrength } from './hash-types.js';
10
+ import { HashUtils } from './hash-utils.js';
11
+ import { HashValidator } from './hash-validator.js';
12
+ import { HashAlgorithms } from '../../algorithms/hash-algorithms.js';
13
+ import { HashSecurity } from './hash-security.js';
14
+ import { HashAdvanced } from './hash-advanced.js';
15
+ import { HashEntropy } from './hash-entropy.js';
16
+
17
+ /* ---------------------------------------------------------------------------------------------
18
+ * Copyright (c) NEHONIX INC. All rights reserved.
19
+ * Licensed under the MIT License. See LICENSE in the project root for license information.
20
+ * -------------------------------------------------------------------------------------------
21
+ */
22
+ /**
23
+ * Military-grade hashing functionality with enhanced security features
24
+ * Modular architecture for maintainable and scalable hash operations
25
+ */
26
+ class Hash {
27
+ // ============================================================================
28
+ // PUBLIC API - Main hash functions
29
+ // ============================================================================
30
+ /**
31
+ * Create secure hash with military-grade security options
32
+ *
33
+ * IMPORTANT: This method automatically generates a random salt
34
+ * when no salt is provided, resulting in different hashes for the same input.
35
+ * This is designed for password hashing where randomness enhances security.
36
+ *
37
+ * For consistent hashes, either:
38
+ * - Provide a fixed salt parameter, or
39
+ * - Use Hash.create() method instead
40
+ *
41
+ * @param input - The input to hash
42
+ * @param salt - Salt for the hash (if not provided, random salt is auto-generated)
43
+ * @param options - Enhanced hashing options
44
+ * @returns The hash in the specified format
45
+ */
46
+ static createSecureHash(input, salt, options = {}) {
47
+ const { strength = HashStrength.GOOD, memoryHard = false, quantumResistant = false, timingSafe = false, validateInput = true, secureWipe = true, algorithm = "sha256", iterations = HASH_SECURITY_CONSTANTS.RECOMMENDED_ITERATIONS, pepper, outputFormat = "hex", } = options;
48
+ // Validate input if requested
49
+ if (validateInput) {
50
+ HashValidator.validateHashInput(input, options);
51
+ }
52
+ // Generate salt if not provided
53
+ let finalSalt = salt;
54
+ if (!finalSalt) {
55
+ const strengthConfig = HashUtils.getStrengthConfiguration(strength);
56
+ finalSalt = SecureRandom.getRandomBytes(strengthConfig.saltLength);
57
+ }
58
+ // Prepare enhanced options
59
+ const enhancedOptions = {
60
+ ...options,
61
+ algorithm,
62
+ iterations,
63
+ salt: finalSalt,
64
+ pepper,
65
+ outputFormat,
66
+ };
67
+ // Route to appropriate implementation based on options
68
+ if (memoryHard) {
69
+ return HashSecurity.memoryHardHash(input, {
70
+ ...enhancedOptions,
71
+ outputFormat: outputFormat === "buffer" ? "buffer" : "hex",
72
+ }).then((result) => {
73
+ Hash.handleSecureWipe(input, finalSalt, pepper, secureWipe, result);
74
+ return typeof result === "string"
75
+ ? result
76
+ : result.toString("hex");
77
+ });
78
+ }
79
+ if (quantumResistant) {
80
+ const result = HashSecurity.quantumResistantHash(input, {
81
+ ...enhancedOptions,
82
+ outputFormat: outputFormat,
83
+ });
84
+ return Hash.handleSecureWipe(input, finalSalt, pepper, secureWipe, result);
85
+ }
86
+ if (timingSafe) {
87
+ const result = HashSecurity.timingSafeHash(input, {
88
+ ...enhancedOptions,
89
+ outputFormat: outputFormat,
90
+ });
91
+ return Hash.handleSecureWipe(input, finalSalt, pepper, secureWipe, result);
92
+ }
93
+ // Standard secure hash
94
+ const result = HashAlgorithms.secureHash(input, {
95
+ ...enhancedOptions,
96
+ outputFormat: outputFormat,
97
+ });
98
+ return Hash.handleSecureWipe(input, finalSalt, pepper, secureWipe, result);
99
+ }
100
+ /**
101
+ * Verify hash with secure comparison
102
+ * @param input - Input to verify
103
+ * @param expectedHash - Expected hash value
104
+ * @param salt - Salt used in original hash
105
+ * @param options - Verification options
106
+ * @returns True if hash matches
107
+ */
108
+ static verifyHash(input, expectedHash, salt, options = {}) {
109
+ // For async operations, we need to handle them differently
110
+ // Force synchronous verification by disabling async features
111
+ const syncOptions = {
112
+ ...options,
113
+ memoryHard: false,
114
+ timingSafe: false, // Disable timing-safe for verification to avoid async
115
+ };
116
+ // Generate hash using the same method as createSecureHash
117
+ const computedHash = Hash.createSecureHash(input, salt, syncOptions);
118
+ // Convert both hashes to the same format for comparison
119
+ const expectedStr = typeof expectedHash === "string"
120
+ ? expectedHash
121
+ : expectedHash.toString("hex");
122
+ const computedStr = typeof computedHash === "string"
123
+ ? computedHash
124
+ : computedHash.toString();
125
+ // Use timing-safe comparison
126
+ return HashValidator.timingSafeEqual(computedStr, expectedStr);
127
+ }
128
+ /**
129
+ * Async verify hash with secure comparison
130
+ * @param input - Input to verify
131
+ * @param expectedHash - Expected hash value
132
+ * @param salt - Salt used in original hash
133
+ * @param options - Verification options
134
+ * @returns Promise resolving to true if hash matches
135
+ */
136
+ static async verifyHashAsync(input, expectedHash, salt, options = {}) {
137
+ // Generate hash using the same method as createSecureHash
138
+ const computedHash = await Hash.createSecureHash(input, salt, options);
139
+ // Convert both hashes to the same format for comparison
140
+ const expectedStr = typeof expectedHash === "string"
141
+ ? expectedHash
142
+ : expectedHash.toString("hex");
143
+ const computedStr = typeof computedHash === "string"
144
+ ? computedHash
145
+ : computedHash.toString("hex");
146
+ // Use timing-safe comparison
147
+ return HashValidator.timingSafeEqual(computedStr, expectedStr);
148
+ }
149
+ /**
150
+ * Enhanced scrypt key derivation
151
+ */
152
+ static deriveKeyScrypt(password, salt, keyLength = 32, options = {}) {
153
+ const { N = 32768, r = 8, p = 1, encoding = "hex", validateStrength = true, } = options;
154
+ // Validate password strength if requested
155
+ if (validateStrength && typeof password === "string") {
156
+ const strength = HashValidator.validatePasswordStrength(password);
157
+ if (!strength.isSecure) {
158
+ console.warn("Weak password detected:", strength.issues);
159
+ }
160
+ }
161
+ const passwordBuffer = HashUtils.toBuffer(password);
162
+ const saltBuffer = HashUtils.toBuffer(salt);
163
+ // Use Node.js scrypt
164
+ const crypto = require("crypto");
165
+ const derivedKey = crypto.scryptSync(passwordBuffer, saltBuffer, keyLength, {
166
+ N,
167
+ r,
168
+ p,
169
+ });
170
+ return HashUtils.formatOutput(derivedKey, encoding);
171
+ }
172
+ /**
173
+ * Standard PBKDF2 key derivation
174
+ *
175
+ * BEHAVIOR: Uses Node.js crypto.pbkdf2Sync for reliable, standard PBKDF2 implementation.
176
+ * Produces consistent results and is widely compatible.
177
+ * With crypto:
178
+ * @example
179
+ * crypto.pbkdf2Sync(
180
+ password,
181
+ salt,
182
+ iterations,
183
+ keyLength,
184
+ hashFunction
185
+ );
186
+ *
187
+ * @param password - Password to derive key from
188
+ * @param salt - Salt for the derivation
189
+ * @param iterations - Number of iterations (default: 100000)
190
+ * @param keyLength - Desired key length in bytes (default: 32)
191
+ * @param hashFunction - Hash function to use (default: "sha256")
192
+ * @param outputFormat - Output format (default: "hex")
193
+ * @returns PBKDF2 derived key
194
+ */
195
+ static pbkdf2(password, salt, iterations = 100000, keyLength = 32, hashFunction = "sha256", outputFormat = "hex") {
196
+ // const crypto = require("crypto");
197
+ const result = crypto.pbkdf2Sync(password, salt, iterations, keyLength, hashFunction);
198
+ switch (outputFormat) {
199
+ case "hex":
200
+ return result.toString("hex");
201
+ case "base64":
202
+ return result.toString("base64");
203
+ case "buffer":
204
+ return result;
205
+ default:
206
+ return result.toString("hex");
207
+ }
208
+ }
209
+ // ============================================================================
210
+ // PRIVATE HELPER METHODS
211
+ // ============================================================================
212
+ /**
213
+ * Handle secure wipe if requested
214
+ * IMPORTANT: Only wipe copies, not the original salt/pepper that might be needed for verification
215
+ */
216
+ static handleSecureWipe(input, salt, pepper, secureWipe, result) {
217
+ if (secureWipe) {
218
+ // Create copies for wiping to avoid destroying original data
219
+ let inputCopy = input;
220
+ let saltCopy = undefined;
221
+ let pepperCopy = undefined;
222
+ // Only create copies for buffers (strings are immutable anyway)
223
+ if (Buffer.isBuffer(salt) || salt instanceof Uint8Array) {
224
+ saltCopy = Buffer.from(salt);
225
+ }
226
+ if (pepper &&
227
+ (Buffer.isBuffer(pepper) || pepper instanceof Uint8Array)) {
228
+ pepperCopy = Buffer.from(pepper);
229
+ }
230
+ if (Buffer.isBuffer(input) || input instanceof Uint8Array) {
231
+ inputCopy = Buffer.from(input);
232
+ }
233
+ // Wipe the copies, not the originals
234
+ HashUtils.performSecureWipe(inputCopy, saltCopy, pepperCopy);
235
+ }
236
+ return result;
237
+ }
238
+ }
239
+ // ============================================================================
240
+ // KEY DERIVATION FUNCTIONS
241
+ // ============================================================================
242
+ /**
243
+ * Enhanced PBKDF2 key derivation
244
+ */
245
+ Hash.deriveKeyPBKDF2 = HashSecurity.memoryHardHash;
246
+ /**
247
+ * Enhanced Argon2 key derivation
248
+ */
249
+ Hash.deriveKeyArgon2 = HashSecurity.memoryHardHash;
250
+ // ============================================================================
251
+ // ADVANCED SECURITY FEATURES
252
+ // ============================================================================
253
+ /**
254
+ * Hardware Security Module (HSM) compatible hashing
255
+ */
256
+ Hash.hsmCompatibleHash = HashSecurity.hsmCompatibleHash;
257
+ /**
258
+ * Cryptographic agility hash
259
+ */
260
+ Hash.agilityHash = HashAdvanced.agilityHash;
261
+ /**
262
+ * Side-channel attack resistant hashing
263
+ */
264
+ Hash.sideChannelResistantHash = HashAdvanced.sideChannelResistantHash;
265
+ /**
266
+ * Real-time security monitoring
267
+ */
268
+ Hash.monitorHashSecurity = HashSecurity.monitorHashSecurity;
269
+ // ============================================================================
270
+ // ENTROPY AND ANALYSIS
271
+ // ============================================================================
272
+ /**
273
+ * Analyze hash entropy
274
+ */
275
+ Hash.analyzeHashEntropy = HashEntropy.analyzeHashEntropy;
276
+ /**
277
+ * Generate entropy report
278
+ */
279
+ Hash.generateEntropyReport = HashEntropy.generateEntropyReport;
280
+ /**
281
+ * Perform randomness tests
282
+ */
283
+ Hash.performRandomnessTests = HashEntropy.performRandomnessTests;
284
+ // ============================================================================
285
+ // VALIDATION AND UTILITIES
286
+ // ============================================================================
287
+ /**
288
+ * Validate password strength
289
+ */
290
+ Hash.validatePasswordStrength = HashValidator.validatePasswordStrength;
291
+ /**
292
+ * Timing-safe string comparison
293
+ */
294
+ Hash.timingSafeEqual = HashValidator.timingSafeEqual;
295
+ /**
296
+ * Validate salt quality
297
+ */
298
+ Hash.validateSalt = HashValidator.validateSalt;
299
+ // ============================================================================
300
+ // ADVANCED ALGORITHMS
301
+ // ============================================================================
302
+ /**
303
+ * Parallel hash processing
304
+ */
305
+ Hash.parallelHash = HashAdvanced.parallelHash;
306
+ /**
307
+ * Streaming hash for large data
308
+ */
309
+ Hash.createStreamingHash = HashAdvanced.createStreamingHash;
310
+ /**
311
+ * Merkle tree hash
312
+ */
313
+ Hash.merkleTreeHash = HashAdvanced.merkleTreeHash;
314
+ /**
315
+ * Incremental hash
316
+ */
317
+ Hash.incrementalHash = HashAdvanced.incrementalHash;
318
+ /**
319
+ * Hash chain
320
+ */
321
+ Hash.hashChain = HashAdvanced.hashChain;
322
+ // ============================================================================
323
+ // UTILITY FUNCTIONS
324
+ // ============================================================================
325
+ /**
326
+ * Format hash output
327
+ */
328
+ Hash.formatOutput = HashUtils.formatOutput;
329
+ /**
330
+ * Get strength configuration
331
+ */
332
+ Hash.getStrengthConfiguration = HashUtils.getStrengthConfiguration;
333
+ /**
334
+ * Get algorithm security level
335
+ */
336
+ Hash.getAlgorithmSecurityLevel = HashUtils.getAlgorithmSecurityLevel;
337
+ // ============================================================================
338
+ // LEGACY COMPATIBILITY (for backward compatibility)
339
+ // ============================================================================
340
+ /**
341
+ * Legacy secure hash method (for backward compatibility)
342
+ *
343
+ * BEHAVIOR: Produces consistent hashes for the same input (like CryptoJS).
344
+ * This method does NOT auto-generate random salts, ensuring deterministic results.
345
+ *
346
+ * For password hashing with auto-salt generation, use Hash.createSecureHash() instead.
347
+ */
348
+ Hash.create = HashAlgorithms.secureHash;
349
+ /**
350
+ * Legacy HMAC creation (for backward compatibility)
351
+ */
352
+ Hash.createSecureHMAC = HashAlgorithms.createSecureHMAC;
353
+
354
+ export { Hash };
355
+ //# sourceMappingURL=hash-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash-core.js","sources":["../../../../../../../mods/security/src/core/hash/hash-core.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,286 @@
1
+ import * as crypto from 'crypto';
2
+
3
+ /**
4
+ * Hash entropy analysis and quality assessment
5
+ */
6
+ class HashEntropy {
7
+ /**
8
+ * Advanced entropy analysis for hash quality assessment
9
+ * @param data - Data to analyze
10
+ * @returns Entropy analysis results
11
+ */
12
+ static analyzeHashEntropy(data) {
13
+ const buffer = Buffer.isBuffer(data) ? data : Buffer.from(data);
14
+ const recommendations = [];
15
+ // Shannon entropy calculation
16
+ const frequency = new Map();
17
+ for (const byte of buffer) {
18
+ frequency.set(byte, (frequency.get(byte) || 0) + 1);
19
+ }
20
+ let shannonEntropy = 0;
21
+ const length = buffer.length;
22
+ for (const count of frequency.values()) {
23
+ const probability = count / length;
24
+ shannonEntropy -= probability * Math.log2(probability);
25
+ }
26
+ // Min-entropy (worst-case entropy)
27
+ const maxFreq = Math.max(...frequency.values());
28
+ const minEntropy = -Math.log2(maxFreq / length);
29
+ // Compression ratio test
30
+ const compressed = crypto.createHash("sha256").update(buffer).digest();
31
+ const compressionRatio = compressed.length / buffer.length;
32
+ // Chi-square test for randomness
33
+ const expected = length / 256;
34
+ let chiSquare = 0;
35
+ for (let i = 0; i < 256; i++) {
36
+ const observed = frequency.get(i) || 0;
37
+ chiSquare += Math.pow(observed - expected, 2) / expected;
38
+ }
39
+ const randomnessScore = Math.max(0, 1 - chiSquare / (256 * 4));
40
+ // Quality assessment
41
+ let qualityGrade;
42
+ if (shannonEntropy > 7.8 && randomnessScore > 0.9) {
43
+ qualityGrade = "EXCELLENT";
44
+ }
45
+ else if (shannonEntropy > 7.5 && randomnessScore > 0.8) {
46
+ qualityGrade = "GOOD";
47
+ }
48
+ else if (shannonEntropy > 7.0 && randomnessScore > 0.6) {
49
+ qualityGrade = "FAIR";
50
+ }
51
+ else {
52
+ qualityGrade = "POOR";
53
+ recommendations.push("Consider using stronger entropy sources");
54
+ }
55
+ if (minEntropy < 6) {
56
+ recommendations.push("Min-entropy is low, consider additional randomization");
57
+ }
58
+ if (compressionRatio > 0.8) {
59
+ recommendations.push("Data shows patterns, consider additional mixing");
60
+ }
61
+ return {
62
+ shannonEntropy,
63
+ minEntropy,
64
+ compressionRatio,
65
+ randomnessScore,
66
+ qualityGrade,
67
+ recommendations,
68
+ };
69
+ }
70
+ /**
71
+ * Perform statistical randomness tests
72
+ * @param data - Data to test
73
+ * @returns Test results
74
+ */
75
+ static performRandomnessTests(data) {
76
+ // Monobit test (frequency of 1s and 0s in binary representation)
77
+ const monobitResult = HashEntropy.monobitTest(data);
78
+ // Runs test (sequences of consecutive identical bits)
79
+ const runsResult = HashEntropy.runsTest(data);
80
+ // Frequency test (distribution of byte values)
81
+ const frequencyResult = HashEntropy.frequencyTest(data);
82
+ // Serial test (correlation between consecutive bytes)
83
+ const serialResult = HashEntropy.serialTest(data);
84
+ // Calculate overall score
85
+ const scores = [
86
+ monobitResult.score,
87
+ runsResult.score,
88
+ frequencyResult.score,
89
+ serialResult.score,
90
+ ];
91
+ const overallScore = scores.reduce((sum, score) => sum + score, 0) / scores.length;
92
+ return {
93
+ monobitTest: monobitResult,
94
+ runsTest: runsResult,
95
+ frequencyTest: frequencyResult,
96
+ serialTest: serialResult,
97
+ overallScore,
98
+ };
99
+ }
100
+ /**
101
+ * Monobit test - checks balance of 0s and 1s
102
+ * @param data - Data to test
103
+ * @returns Test result
104
+ */
105
+ static monobitTest(data) {
106
+ let ones = 0;
107
+ let total = 0;
108
+ for (const byte of data) {
109
+ for (let i = 0; i < 8; i++) {
110
+ if ((byte >> i) & 1) {
111
+ ones++;
112
+ }
113
+ total++;
114
+ }
115
+ }
116
+ const ratio = ones / total;
117
+ const deviation = Math.abs(ratio - 0.5);
118
+ const score = Math.max(0, 1 - deviation * 4); // Scale deviation to 0-1
119
+ const passed = deviation < 0.1; // Within 10% of expected
120
+ return { passed, score };
121
+ }
122
+ /**
123
+ * Runs test - checks for proper distribution of runs
124
+ * @param data - Data to test
125
+ * @returns Test result
126
+ */
127
+ static runsTest(data) {
128
+ const bits = [];
129
+ // Convert to bit array
130
+ for (const byte of data) {
131
+ for (let i = 0; i < 8; i++) {
132
+ bits.push((byte >> i) & 1);
133
+ }
134
+ }
135
+ // Count runs
136
+ let runs = 1;
137
+ for (let i = 1; i < bits.length; i++) {
138
+ if (bits[i] !== bits[i - 1]) {
139
+ runs++;
140
+ }
141
+ }
142
+ // Expected number of runs
143
+ const n = bits.length;
144
+ const ones = bits.filter((bit) => bit === 1).length;
145
+ const expectedRuns = (2 * ones * (n - ones)) / n + 1;
146
+ const deviation = Math.abs(runs - expectedRuns) / expectedRuns;
147
+ const score = Math.max(0, 1 - deviation);
148
+ const passed = deviation < 0.2;
149
+ return { passed, score };
150
+ }
151
+ /**
152
+ * Frequency test - checks distribution of byte values
153
+ * @param data - Data to test
154
+ * @returns Test result
155
+ */
156
+ static frequencyTest(data) {
157
+ const frequency = new Array(256).fill(0);
158
+ for (const byte of data) {
159
+ frequency[byte]++;
160
+ }
161
+ const expected = data.length / 256;
162
+ let chiSquare = 0;
163
+ for (let i = 0; i < 256; i++) {
164
+ const observed = frequency[i];
165
+ chiSquare += Math.pow(observed - expected, 2) / expected;
166
+ }
167
+ // Normalize chi-square value
168
+ const normalizedChiSquare = chiSquare / (256 - 1);
169
+ const score = Math.max(0, 1 - normalizedChiSquare / 2);
170
+ const passed = normalizedChiSquare < 1.5;
171
+ return { passed, score };
172
+ }
173
+ /**
174
+ * Serial test - checks correlation between consecutive bytes
175
+ * @param data - Data to test
176
+ * @returns Test result
177
+ */
178
+ static serialTest(data) {
179
+ if (data.length < 2) {
180
+ return { passed: true, score: 1 };
181
+ }
182
+ const pairs = new Map();
183
+ for (let i = 0; i < data.length - 1; i++) {
184
+ const pair = `${data[i]}-${data[i + 1]}`;
185
+ pairs.set(pair, (pairs.get(pair) || 0) + 1);
186
+ }
187
+ const totalPairs = data.length - 1;
188
+ const expectedFreq = totalPairs / (256 * 256);
189
+ let chiSquare = 0;
190
+ // Check all possible pairs
191
+ for (let i = 0; i < 256; i++) {
192
+ for (let j = 0; j < 256; j++) {
193
+ const pair = `${i}-${j}`;
194
+ const observed = pairs.get(pair) || 0;
195
+ chiSquare +=
196
+ Math.pow(observed - expectedFreq, 2) / expectedFreq;
197
+ }
198
+ }
199
+ const normalizedChiSquare = chiSquare / (256 * 256 - 1);
200
+ const score = Math.max(0, 1 - normalizedChiSquare / 2);
201
+ const passed = normalizedChiSquare < 1.5;
202
+ return { passed, score };
203
+ }
204
+ /**
205
+ * Estimate entropy rate of data
206
+ * @param data - Data to analyze
207
+ * @returns Entropy rate in bits per byte
208
+ */
209
+ static estimateEntropyRate(data) {
210
+ if (data.length === 0)
211
+ return 0;
212
+ // Use compression-based entropy estimation
213
+ const compressed = crypto.createHash("sha256").update(data).digest();
214
+ const compressionRatio = compressed.length / data.length;
215
+ // Estimate entropy based on compression
216
+ const estimatedEntropy = 8 * (1 - compressionRatio);
217
+ // Also calculate Shannon entropy for comparison
218
+ const frequency = new Map();
219
+ for (const byte of data) {
220
+ frequency.set(byte, (frequency.get(byte) || 0) + 1);
221
+ }
222
+ let shannonEntropy = 0;
223
+ const length = data.length;
224
+ for (const count of frequency.values()) {
225
+ const probability = count / length;
226
+ shannonEntropy -= probability * Math.log2(probability);
227
+ }
228
+ // Return the more conservative estimate
229
+ return Math.min(estimatedEntropy, shannonEntropy);
230
+ }
231
+ /**
232
+ * Generate entropy quality report
233
+ * @param data - Data to analyze
234
+ * @returns Comprehensive entropy report
235
+ */
236
+ static generateEntropyReport(data) {
237
+ const analysis = HashEntropy.analyzeHashEntropy(data);
238
+ const randomnessTests = HashEntropy.performRandomnessTests(data);
239
+ const entropyRate = HashEntropy.estimateEntropyRate(data);
240
+ const recommendations = [...analysis.recommendations];
241
+ // Add recommendations based on randomness tests
242
+ if (!randomnessTests.monobitTest.passed) {
243
+ recommendations.push("Data fails monobit test - check bit balance");
244
+ }
245
+ if (!randomnessTests.runsTest.passed) {
246
+ recommendations.push("Data fails runs test - check for patterns");
247
+ }
248
+ if (!randomnessTests.frequencyTest.passed) {
249
+ recommendations.push("Data fails frequency test - improve byte distribution");
250
+ }
251
+ if (!randomnessTests.serialTest.passed) {
252
+ recommendations.push("Data fails serial test - reduce correlation");
253
+ }
254
+ // Determine overall grade
255
+ const scores = [
256
+ analysis.shannonEntropy / 8, // Normalize to 0-1
257
+ analysis.randomnessScore,
258
+ randomnessTests.overallScore,
259
+ entropyRate / 8, // Normalize to 0-1
260
+ ];
261
+ const overallScore = scores.reduce((sum, score) => sum + score, 0) / scores.length;
262
+ let overallGrade;
263
+ if (overallScore > 0.9) {
264
+ overallGrade = "EXCELLENT";
265
+ }
266
+ else if (overallScore > 0.8) {
267
+ overallGrade = "GOOD";
268
+ }
269
+ else if (overallScore > 0.6) {
270
+ overallGrade = "FAIR";
271
+ }
272
+ else {
273
+ overallGrade = "POOR";
274
+ }
275
+ return {
276
+ analysis,
277
+ randomnessTests,
278
+ entropyRate,
279
+ recommendations: [...new Set(recommendations)], // Remove duplicates
280
+ overallGrade,
281
+ };
282
+ }
283
+ }
284
+
285
+ export { HashEntropy };
286
+ //# sourceMappingURL=hash-entropy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash-entropy.js","sources":["../../../../../../../mods/security/src/core/hash/hash-entropy.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}