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,884 @@
1
+ import * as crypto from 'crypto';
2
+ import { BufferState, MemoryProtectionLevel } from '../types/secure-memory.js';
3
+ import { BUFFER_SECURITY_CONSTANTS } from '../const/buffer.const.js';
4
+ import { ensureLibrariesInitialized, nobleHashes, sodium, libraryStatus } from '../types/secure-mem.type.js';
5
+
6
+ /**
7
+ * This module provides military-grade utilities for securely handling sensitive data in memory:
8
+ * - Secure buffers with advanced protection against memory dumps and swapping
9
+ * - Multiple encryption layers for data at rest in memory
10
+ * - Hardware-level security features when available
11
+ * - Protection against cold boot attacks and memory forensics
12
+ * - Canary tokens for tamper detection
13
+ * - Memory fragmentation and obfuscation techniques
14
+ * - Quantum-resistant security measures
15
+ * - Side-channel attack resistance
16
+ */
17
+ /**
18
+ * @author Seth Eleazar
19
+ *
20
+ * @license MIT
21
+ * @description Enhanced Secure Memory Management Module
22
+ * Enhanced secure buffer with military-grade protection
23
+ * Features multiple layers of security including encryption, obfuscation, and tamper detection
24
+ */
25
+ class SecureBuffer {
26
+ /**
27
+ * Creates a new enhanced secure buffer with military-grade protection
28
+ *
29
+ * @param size - Size of the buffer in bytes
30
+ * @param fill - Optional value to fill the buffer with
31
+ * @param options - Security options
32
+ */
33
+ constructor(size, fill, options = {}) {
34
+ this.fragments = [];
35
+ this.encryptionKey = null;
36
+ this.nonce = null;
37
+ this.canaryTokens = [];
38
+ this.canaryPositions = []; // Track where canaries are embedded
39
+ this.obfuscationMask = null;
40
+ this.state = BufferState.UNINITIALIZED;
41
+ this.accessCount = 0;
42
+ this.lastAccess = Date.now();
43
+ this.lockTimer = null;
44
+ this.checksum = null;
45
+ this.originalSize = size;
46
+ this.options = {
47
+ protectionLevel: options.protectionLevel || MemoryProtectionLevel.ENHANCED,
48
+ enableEncryption: options.enableEncryption ?? true,
49
+ enableFragmentation: options.enableFragmentation ?? true,
50
+ enableCanaries: options.enableCanaries ?? true,
51
+ enableObfuscation: options.enableObfuscation ?? true,
52
+ autoLock: options.autoLock ?? true,
53
+ lockTimeout: options.lockTimeout || 300000, // 5 minutes
54
+ quantumSafe: options.quantumSafe || false,
55
+ };
56
+ this.protectionLevel = this.options.protectionLevel;
57
+ // Initialize synchronously without waiting for optional libraries
58
+ this.initializeSecureBuffer(size, fill);
59
+ this.registerFinalizer();
60
+ this.setupAutoLock();
61
+ // Initialize libraries asynchronously in background (non-blocking)
62
+ ensureLibrariesInitialized().catch(() => {
63
+ // Ignore errors - libraries are optional
64
+ });
65
+ }
66
+ /**
67
+ * Initialize the secure buffer with enhanced protection
68
+ */
69
+ initializeSecureBuffer(size, fill) {
70
+ // Generate encryption key if encryption is enabled
71
+ if (this.options.enableEncryption) {
72
+ this.encryptionKey = this.generateSecureKey(BUFFER_SECURITY_CONSTANTS.ENCRYPTION_KEY_SIZE);
73
+ this.nonce = this.generateSecureKey(BUFFER_SECURITY_CONSTANTS.NONCE_SIZE);
74
+ }
75
+ // Create fragments if fragmentation is enabled
76
+ if (this.options.enableFragmentation &&
77
+ size > BUFFER_SECURITY_CONSTANTS.FRAGMENT_SIZE) {
78
+ this.createFragments(size, fill);
79
+ }
80
+ else {
81
+ // Single fragment for small buffers
82
+ this.fragments = [new Uint8Array(size)];
83
+ if (fill !== undefined) {
84
+ this.fragments[0].fill(fill);
85
+ }
86
+ }
87
+ // Generate canary tokens if enabled
88
+ if (this.options.enableCanaries) {
89
+ this.generateCanaryTokens();
90
+ }
91
+ // Create obfuscation mask if enabled
92
+ if (this.options.enableObfuscation) {
93
+ this.obfuscationMask = this.generateSecureKey(size);
94
+ }
95
+ // Calculate initial checksum
96
+ this.updateChecksum();
97
+ this.state = BufferState.ACTIVE;
98
+ }
99
+ /**
100
+ * Setup automatic locking mechanism
101
+ */
102
+ setupAutoLock() {
103
+ if (this.options.autoLock) {
104
+ this.resetLockTimer();
105
+ }
106
+ }
107
+ /**
108
+ * Reset the auto-lock timer
109
+ */
110
+ resetLockTimer() {
111
+ if (this.lockTimer) {
112
+ clearTimeout(this.lockTimer);
113
+ }
114
+ this.lockTimer = setTimeout(() => {
115
+ this.lock();
116
+ }, this.options.lockTimeout);
117
+ }
118
+ /**
119
+ * Generate a cryptographically secure key
120
+ */
121
+ generateSecureKey(size) {
122
+ // Try to use libsodium if available and properly initialized
123
+ if (sodium && libraryStatus.sodium) {
124
+ try {
125
+ return sodium.randombytes_buf(size);
126
+ }
127
+ catch (error) {
128
+ console.warn("libsodium randombytes_buf failed:", error.message);
129
+ }
130
+ }
131
+ // Fallback to Node.js crypto
132
+ try {
133
+ return new Uint8Array(crypto.randomBytes(size));
134
+ }
135
+ catch (e) {
136
+ console.warn("crypto.randomBytes failed:", e.message);
137
+ // Ultimate fallback
138
+ const key = new Uint8Array(size);
139
+ for (let i = 0; i < size; i++) {
140
+ key[i] = Math.floor(Math.random() * 256);
141
+ }
142
+ return key;
143
+ }
144
+ }
145
+ /**
146
+ * Create memory fragments for enhanced security
147
+ */
148
+ createFragments(size, fill) {
149
+ const fragmentCount = Math.min(Math.ceil(size / BUFFER_SECURITY_CONSTANTS.FRAGMENT_SIZE), BUFFER_SECURITY_CONSTANTS.MAX_FRAGMENTS);
150
+ this.fragments = [];
151
+ let remaining = size;
152
+ for (let i = 0; i < fragmentCount; i++) {
153
+ const fragmentSize = Math.min(remaining, BUFFER_SECURITY_CONSTANTS.FRAGMENT_SIZE);
154
+ const fragment = new Uint8Array(fragmentSize);
155
+ if (fill !== undefined) {
156
+ fragment.fill(fill);
157
+ }
158
+ this.fragments.push(fragment);
159
+ remaining -= fragmentSize;
160
+ if (remaining <= 0)
161
+ break;
162
+ }
163
+ }
164
+ /**
165
+ * Generate canary tokens for tamper detection and embed them in memory
166
+ */
167
+ generateCanaryTokens() {
168
+ const canaryCount = Math.max(2, Math.min(8, Math.ceil(this.fragments.length / 4)));
169
+ this.canaryTokens = [];
170
+ this.canaryPositions = [];
171
+ for (let i = 0; i < canaryCount; i++) {
172
+ const canary = this.generateSecureKey(BUFFER_SECURITY_CONSTANTS.CANARY_SIZE);
173
+ this.canaryTokens.push(canary);
174
+ // Embed canary in memory around fragments
175
+ this.embedCanaryInMemory(canary, i);
176
+ }
177
+ }
178
+ /**
179
+ * Embed canary tokens in memory around buffer fragments
180
+ */
181
+ embedCanaryInMemory(canary, index) {
182
+ if (this.fragments.length === 0)
183
+ return;
184
+ // Calculate position to embed canary
185
+ // Distribute canaries evenly around fragments
186
+ const fragmentIndex = index % this.fragments.length;
187
+ const fragment = this.fragments[fragmentIndex];
188
+ // Create a new fragment with canary embedded
189
+ // Format: [canary_prefix][original_data][canary_suffix]
190
+ const canaryPrefix = canary.slice(0, Math.floor(canary.length / 2));
191
+ const canarySuffix = canary.slice(Math.floor(canary.length / 2));
192
+ const newFragment = new Uint8Array(canaryPrefix.length + fragment.length + canarySuffix.length);
193
+ // Embed canary around the data
194
+ newFragment.set(canaryPrefix, 0);
195
+ newFragment.set(fragment, canaryPrefix.length);
196
+ newFragment.set(canarySuffix, canaryPrefix.length + fragment.length);
197
+ // Replace the original fragment
198
+ this.fragments[fragmentIndex] = newFragment;
199
+ // Track the position for verification
200
+ this.canaryPositions.push(fragmentIndex);
201
+ }
202
+ /**
203
+ * Helper method to compare two Uint8Arrays for equality
204
+ */
205
+ arraysEqual(a, b) {
206
+ if (a.length !== b.length)
207
+ return false;
208
+ for (let i = 0; i < a.length; i++) {
209
+ if (a[i] !== b[i])
210
+ return false;
211
+ }
212
+ return true;
213
+ }
214
+ /**
215
+ * Get the unencrypted buffer by combining fragments (extracting data from canary-embedded fragments)
216
+ */
217
+ getUnencryptedBuffer() {
218
+ if (this.fragments.length === 0) {
219
+ return new Uint8Array(0);
220
+ }
221
+ const extractedFragments = [];
222
+ // Extract actual data from fragments, removing embedded canaries
223
+ for (let i = 0; i < this.fragments.length; i++) {
224
+ const fragment = this.fragments[i];
225
+ // Check if this fragment has embedded canaries
226
+ const canaryIndex = this.canaryPositions.indexOf(i);
227
+ if (canaryIndex >= 0 && canaryIndex < this.canaryTokens.length) {
228
+ // This fragment has embedded canaries, extract the original data
229
+ const canary = this.canaryTokens[canaryIndex];
230
+ const canaryPrefix = canary.slice(0, Math.floor(canary.length / 2));
231
+ const canarySuffix = canary.slice(Math.floor(canary.length / 2));
232
+ // Extract the original data between the canaries
233
+ const originalDataStart = canaryPrefix.length;
234
+ const originalDataEnd = fragment.length - canarySuffix.length;
235
+ const originalData = fragment.slice(originalDataStart, originalDataEnd);
236
+ extractedFragments.push(originalData);
237
+ }
238
+ else {
239
+ // No canaries in this fragment, use as-is
240
+ extractedFragments.push(fragment);
241
+ }
242
+ }
243
+ // Calculate total size of extracted data
244
+ const totalSize = extractedFragments.reduce((sum, fragment) => sum + fragment.length, 0);
245
+ const result = new Uint8Array(totalSize);
246
+ // Combine extracted fragments
247
+ let offset = 0;
248
+ for (const fragment of extractedFragments) {
249
+ result.set(fragment, offset);
250
+ offset += fragment.length;
251
+ }
252
+ return result;
253
+ }
254
+ /**
255
+ * Lock the buffer to prevent access
256
+ */
257
+ lock() {
258
+ if (this.state === BufferState.DESTROYED) {
259
+ throw new Error("Cannot lock destroyed buffer");
260
+ }
261
+ this.state = BufferState.LOCKED;
262
+ // Encrypt fragments if encryption is enabled
263
+ if (this.options.enableEncryption && this.encryptionKey && this.nonce) {
264
+ this.encryptFragments();
265
+ }
266
+ }
267
+ /**
268
+ * Unlock the buffer to allow access
269
+ */
270
+ unlock() {
271
+ if (this.state === BufferState.DESTROYED) {
272
+ throw new Error("Cannot unlock destroyed buffer");
273
+ }
274
+ // Decrypt fragments if they were encrypted
275
+ if (this.options.enableEncryption && this.encryptionKey && this.nonce) {
276
+ this.decryptFragments();
277
+ }
278
+ this.state = BufferState.ACTIVE;
279
+ this.resetLockTimer();
280
+ }
281
+ /**
282
+ * Check if buffer is locked
283
+ */
284
+ isLocked() {
285
+ return this.state === BufferState.LOCKED;
286
+ }
287
+ /**
288
+ * Check if buffer is destroyed
289
+ */
290
+ isDestroyed() {
291
+ return this.state === BufferState.DESTROYED;
292
+ }
293
+ /**
294
+ * Verify buffer integrity using canary tokens and checksum
295
+ */
296
+ verifyIntegrity() {
297
+ if (this.state === BufferState.DESTROYED) {
298
+ return false;
299
+ }
300
+ // Verify canary tokens
301
+ if (this.options.enableCanaries && this.canaryTokens.length > 0) {
302
+ // Verify embedded canaries in memory fragments
303
+ for (let i = 0; i < this.canaryTokens.length; i++) {
304
+ const canary = this.canaryTokens[i];
305
+ const fragmentIndex = this.canaryPositions[i];
306
+ if (fragmentIndex >= this.fragments.length) {
307
+ this.state = BufferState.CORRUPTED;
308
+ return false;
309
+ }
310
+ const fragment = this.fragments[fragmentIndex];
311
+ const canaryPrefix = canary.slice(0, Math.floor(canary.length / 2));
312
+ const canarySuffix = canary.slice(Math.floor(canary.length / 2));
313
+ // Verify prefix canary
314
+ const fragmentPrefix = fragment.slice(0, canaryPrefix.length);
315
+ if (!this.arraysEqual(fragmentPrefix, canaryPrefix)) {
316
+ this.state = BufferState.CORRUPTED;
317
+ return false;
318
+ }
319
+ // Verify suffix canary
320
+ const fragmentSuffix = fragment.slice(fragment.length - canarySuffix.length);
321
+ if (!this.arraysEqual(fragmentSuffix, canarySuffix)) {
322
+ this.state = BufferState.CORRUPTED;
323
+ return false;
324
+ }
325
+ }
326
+ }
327
+ // Verify checksum
328
+ if (this.checksum) {
329
+ const currentData = this.getUnencryptedBuffer();
330
+ const currentChecksum = new Uint8Array(32);
331
+ try {
332
+ if (nobleHashes && nobleHashes.sha256) {
333
+ const hash = new Uint8Array(nobleHashes.sha256(currentData));
334
+ currentChecksum.set(hash);
335
+ }
336
+ else {
337
+ const hash = crypto.createHash("sha256");
338
+ hash.update(currentData);
339
+ currentChecksum.set(new Uint8Array(hash.digest()));
340
+ }
341
+ }
342
+ catch (e) {
343
+ // Simple checksum fallback
344
+ for (let i = 0; i < currentData.length; i++) {
345
+ currentChecksum[i % 32] ^= currentData[i];
346
+ }
347
+ }
348
+ // Constant-time comparison
349
+ let diff = 0;
350
+ for (let i = 0; i < Math.min(this.checksum.length, currentChecksum.length); i++) {
351
+ diff |= this.checksum[i] ^ currentChecksum[i];
352
+ }
353
+ if (diff !== 0) {
354
+ this.state = BufferState.CORRUPTED;
355
+ return false;
356
+ }
357
+ }
358
+ return true;
359
+ }
360
+ /**
361
+ * Encrypt fragments using ChaCha20-Poly1305 or AES-GCM
362
+ */
363
+ encryptFragments() {
364
+ if (!this.encryptionKey || !this.nonce) {
365
+ return;
366
+ }
367
+ try {
368
+ // Try to use libsodium for ChaCha20-Poly1305
369
+ if (sodium && libraryStatus.sodium && this.options.quantumSafe) {
370
+ try {
371
+ for (let i = 0; i < this.fragments.length; i++) {
372
+ const encrypted = sodium.crypto_aead_chacha20poly1305_ietf_encrypt(this.fragments[i], null, null, this.nonce, this.encryptionKey);
373
+ this.fragments[i] = new Uint8Array(encrypted);
374
+ }
375
+ return;
376
+ }
377
+ catch (sodiumError) {
378
+ console.warn("libsodium encryption failed:", sodiumError.message);
379
+ }
380
+ }
381
+ // Fallback to AES-GCM with proper IV
382
+ for (let i = 0; i < this.fragments.length; i++) {
383
+ try {
384
+ // Use createCipheriv instead of deprecated createCipher
385
+ const iv = crypto.randomBytes(12); // 96-bit IV for GCM
386
+ const cipher = crypto.createCipheriv("aes-256-gcm", this.encryptionKey, iv);
387
+ const encrypted = Buffer.concat([
388
+ iv, // Prepend IV
389
+ cipher.update(this.fragments[i]),
390
+ cipher.final(),
391
+ cipher.getAuthTag(), // Append auth tag
392
+ ]);
393
+ this.fragments[i] = new Uint8Array(encrypted);
394
+ }
395
+ catch (cipherError) {
396
+ console.warn(`Fragment ${i} encryption failed:`, cipherError.message);
397
+ }
398
+ }
399
+ }
400
+ catch (e) {
401
+ console.warn("Fragment encryption failed:", e.message);
402
+ }
403
+ }
404
+ /**
405
+ * Decrypt fragments
406
+ */
407
+ decryptFragments() {
408
+ if (!this.encryptionKey || !this.nonce) {
409
+ return;
410
+ }
411
+ try {
412
+ // Try to use libsodium for ChaCha20-Poly1305
413
+ if (sodium && libraryStatus.sodium && this.options.quantumSafe) {
414
+ try {
415
+ for (let i = 0; i < this.fragments.length; i++) {
416
+ const decrypted = sodium.crypto_aead_chacha20poly1305_ietf_decrypt(null, this.fragments[i], null, this.nonce, this.encryptionKey);
417
+ this.fragments[i] = new Uint8Array(decrypted);
418
+ }
419
+ return;
420
+ }
421
+ catch (sodiumError) {
422
+ console.warn("libsodium decryption failed:", sodiumError.message);
423
+ }
424
+ }
425
+ // Fallback to AES-GCM with proper IV extraction
426
+ for (let i = 0; i < this.fragments.length; i++) {
427
+ try {
428
+ const fragment = this.fragments[i];
429
+ if (fragment.length < 12 + 16) {
430
+ // IV + auth tag minimum
431
+ console.warn(`Fragment ${i} too small for decryption`);
432
+ continue;
433
+ }
434
+ // Extract IV, ciphertext, and auth tag
435
+ const iv = fragment.slice(0, 12);
436
+ const authTagStart = fragment.length - 16;
437
+ const ciphertext = fragment.slice(12, authTagStart);
438
+ const authTag = fragment.slice(authTagStart);
439
+ // Use createDecipheriv instead of deprecated createDecipher
440
+ const decipher = crypto.createDecipheriv("aes-256-gcm", this.encryptionKey, iv);
441
+ decipher.setAuthTag(authTag);
442
+ const decrypted = Buffer.concat([
443
+ decipher.update(ciphertext),
444
+ decipher.final(),
445
+ ]);
446
+ this.fragments[i] = new Uint8Array(decrypted);
447
+ }
448
+ catch (cipherError) {
449
+ console.warn(`Fragment ${i} decryption failed:`, cipherError.message);
450
+ }
451
+ }
452
+ }
453
+ catch (e) {
454
+ console.warn("Fragment decryption failed:", e.message);
455
+ }
456
+ }
457
+ /**
458
+ * Sets data directly in fragments (private method for initialization)
459
+ *
460
+ * @param data - Data to set in the fragments
461
+ */
462
+ setDataInFragments(data) {
463
+ if (this.fragments.length === 1) {
464
+ // Single fragment - copy data directly
465
+ this.fragments[0].set(data);
466
+ }
467
+ else {
468
+ // Multiple fragments - distribute data across fragments
469
+ let offset = 0;
470
+ for (let i = 0; i < this.fragments.length && offset < data.length; i++) {
471
+ const fragment = this.fragments[i];
472
+ const copyLength = Math.min(fragment.length, data.length - offset);
473
+ fragment.set(data.subarray(offset, offset + copyLength));
474
+ offset += copyLength;
475
+ }
476
+ }
477
+ }
478
+ /**
479
+ * Creates a secure buffer from existing data
480
+ *
481
+ * @param data - Data to store in the secure buffer
482
+ * @param options - Security options
483
+ * @returns A new secure buffer containing the data
484
+ */
485
+ static from(data, options = {}) {
486
+ let buffer;
487
+ if (typeof data === "string") {
488
+ buffer = new TextEncoder().encode(data);
489
+ }
490
+ else if (Array.isArray(data)) {
491
+ buffer = new Uint8Array(data);
492
+ }
493
+ else {
494
+ buffer = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
495
+ }
496
+ const secureBuffer = new SecureBuffer(buffer.length, undefined, options);
497
+ // Set data directly in fragments instead of using getBuffer()
498
+ secureBuffer.setDataInFragments(buffer);
499
+ secureBuffer.updateChecksum();
500
+ return secureBuffer;
501
+ }
502
+ /**
503
+ * Gets the underlying buffer (decrypted if necessary)
504
+ * Throws if the buffer has been destroyed or locked
505
+ *
506
+ * @returns The underlying buffer
507
+ */
508
+ getBuffer() {
509
+ if (this.isDestroyed()) {
510
+ throw new Error("Buffer has been destroyed");
511
+ }
512
+ if (this.isLocked()) {
513
+ throw new Error("Buffer is locked - call unlock() first");
514
+ }
515
+ this.accessCount++;
516
+ this.lastAccess = Date.now();
517
+ this.resetLockTimer();
518
+ // Verify integrity before access
519
+ if (!this.verifyIntegrity()) {
520
+ throw new Error("Buffer integrity check failed - possible tampering detected");
521
+ }
522
+ return this.getUnencryptedBuffer();
523
+ }
524
+ /**
525
+ * Gets the length of the buffer
526
+ *
527
+ * @returns The length of the buffer in bytes
528
+ */
529
+ length() {
530
+ return this.originalSize;
531
+ }
532
+ /**
533
+ * Copies data to another buffer
534
+ *
535
+ * @param target - Target buffer
536
+ * @param targetStart - Start position in the target buffer
537
+ * @param sourceStart - Start position in this buffer
538
+ * @param sourceEnd - End position in this buffer
539
+ * @returns Number of bytes copied
540
+ */
541
+ copy(target, targetStart = 0, sourceStart = 0, sourceEnd = this.originalSize) {
542
+ if (this.isDestroyed()) {
543
+ throw new Error("Buffer has been destroyed");
544
+ }
545
+ if (this.isLocked()) {
546
+ throw new Error("Buffer is locked - call unlock() first");
547
+ }
548
+ const sourceBuffer = this.getBuffer();
549
+ const sourceLength = Math.min(sourceEnd - sourceStart, sourceBuffer.length - sourceStart);
550
+ const targetLength = Math.min(sourceLength, target.length - targetStart);
551
+ for (let i = 0; i < targetLength; i++) {
552
+ target[targetStart + i] = sourceBuffer[sourceStart + i];
553
+ }
554
+ return targetLength;
555
+ }
556
+ /**
557
+ * Fills the buffer with the specified value
558
+ *
559
+ * @param value - Value to fill the buffer with
560
+ * @param start - Start position
561
+ * @param end - End position
562
+ * @returns This buffer
563
+ */
564
+ fill(value, start = 0, end = this.originalSize) {
565
+ if (this.isDestroyed()) {
566
+ throw new Error("Buffer has been destroyed");
567
+ }
568
+ if (this.isLocked()) {
569
+ throw new Error("Buffer is locked - call unlock() first");
570
+ }
571
+ // Fill fragments directly
572
+ let currentPos = 0;
573
+ for (const fragment of this.fragments) {
574
+ const fragmentStart = Math.max(0, start - currentPos);
575
+ const fragmentEnd = Math.min(fragment.length, end - currentPos);
576
+ if (fragmentStart < fragmentEnd) {
577
+ for (let i = fragmentStart; i < fragmentEnd; i++) {
578
+ fragment[i] = value;
579
+ }
580
+ }
581
+ currentPos += fragment.length;
582
+ if (currentPos >= end)
583
+ break;
584
+ }
585
+ this.updateChecksum();
586
+ return this;
587
+ }
588
+ /**
589
+ * Compares this buffer with another buffer using constant-time comparison
590
+ *
591
+ * @param otherBuffer - Buffer to compare with
592
+ * @returns True if the buffers are equal, false otherwise
593
+ */
594
+ equals(otherBuffer) {
595
+ if (this.isDestroyed()) {
596
+ throw new Error("Buffer has been destroyed");
597
+ }
598
+ if (this.isLocked()) {
599
+ throw new Error("Buffer is locked - call unlock() first");
600
+ }
601
+ const thisBuffer = this.getBuffer();
602
+ const other = typeof otherBuffer === "object" &&
603
+ otherBuffer &&
604
+ otherBuffer.constructor &&
605
+ otherBuffer.constructor.name === "SecureBuffer"
606
+ ? otherBuffer.getBuffer()
607
+ : otherBuffer;
608
+ if (thisBuffer.length !== other.length) {
609
+ return false;
610
+ }
611
+ // Constant-time comparison to prevent timing attacks
612
+ let diff = 0;
613
+ // Ensure other is a Uint8Array
614
+ const otherArray = other;
615
+ for (let i = 0; i < thisBuffer.length; i++) {
616
+ diff |= thisBuffer[i] ^ otherArray[i];
617
+ }
618
+ return diff === 0;
619
+ }
620
+ /**
621
+ * Destroys the buffer by securely wiping its contents
622
+ * After calling this method, the buffer can no longer be used
623
+ */
624
+ destroy() {
625
+ if (this.state === BufferState.DESTROYED) {
626
+ return; // Already destroyed
627
+ }
628
+ // Clear auto-lock timer
629
+ if (this.lockTimer) {
630
+ clearTimeout(this.lockTimer);
631
+ this.lockTimer = null;
632
+ }
633
+ // Securely wipe all fragments
634
+ for (const fragment of this.fragments) {
635
+ secureWipe(fragment, 0, fragment.length, 3);
636
+ }
637
+ // Wipe encryption keys
638
+ if (this.encryptionKey) {
639
+ secureWipe(this.encryptionKey, 0, this.encryptionKey.length, 3);
640
+ this.encryptionKey = null;
641
+ }
642
+ if (this.nonce) {
643
+ secureWipe(this.nonce, 0, this.nonce.length, 3);
644
+ this.nonce = null;
645
+ }
646
+ // Wipe canary tokens
647
+ for (const canary of this.canaryTokens) {
648
+ secureWipe(canary, 0, canary.length, 3);
649
+ }
650
+ this.canaryTokens = [];
651
+ // Wipe obfuscation mask
652
+ if (this.obfuscationMask) {
653
+ secureWipe(this.obfuscationMask, 0, this.obfuscationMask.length, 3);
654
+ this.obfuscationMask = null;
655
+ }
656
+ // Wipe checksum
657
+ if (this.checksum) {
658
+ secureWipe(this.checksum, 0, this.checksum.length, 3);
659
+ this.checksum = null;
660
+ }
661
+ // Clear fragments array
662
+ this.fragments = [];
663
+ this.state = BufferState.DESTROYED;
664
+ }
665
+ /**
666
+ * Get security statistics and information
667
+ */
668
+ getSecurityInfo() {
669
+ return {
670
+ protectionLevel: this.protectionLevel,
671
+ isEncrypted: this.options.enableEncryption && !!this.encryptionKey,
672
+ isFragmented: this.options.enableFragmentation && this.fragments.length > 1,
673
+ hasCanaries: this.options.enableCanaries && this.canaryTokens.length > 0,
674
+ isObfuscated: this.options.enableObfuscation && !!this.obfuscationMask,
675
+ accessCount: this.accessCount,
676
+ lastAccess: this.lastAccess,
677
+ fragmentCount: this.fragments.length,
678
+ state: this.state,
679
+ };
680
+ }
681
+ /**
682
+ * Clone the secure buffer with the same protection settings
683
+ */
684
+ clone() {
685
+ if (this.isDestroyed()) {
686
+ throw new Error("Cannot clone destroyed buffer");
687
+ }
688
+ const data = this.getBuffer();
689
+ return SecureBuffer.from(data, this.options);
690
+ }
691
+ /**
692
+ * Resize the buffer (creates a new buffer with copied data)
693
+ */
694
+ resize(newSize) {
695
+ if (this.isDestroyed()) {
696
+ throw new Error("Cannot resize destroyed buffer");
697
+ }
698
+ if (newSize < 0) {
699
+ throw new Error("Buffer size cannot be negative");
700
+ }
701
+ const currentData = this.getBuffer();
702
+ const newBuffer = new SecureBuffer(newSize, 0, this.options);
703
+ if (newSize > 0) {
704
+ const copyLength = Math.min(currentData.length, newSize);
705
+ const targetBuffer = newBuffer.getBuffer();
706
+ for (let i = 0; i < copyLength; i++) {
707
+ targetBuffer[i] = currentData[i];
708
+ }
709
+ newBuffer.updateChecksum();
710
+ }
711
+ return newBuffer;
712
+ }
713
+ /**
714
+ * Update the checksum after buffer modification
715
+ */
716
+ updateChecksum() {
717
+ if (this.state === BufferState.DESTROYED) {
718
+ return;
719
+ }
720
+ const data = this.getUnencryptedBuffer();
721
+ // Use SHA-256 for checksum
722
+ try {
723
+ if (nobleHashes && nobleHashes.sha256) {
724
+ this.checksum = new Uint8Array(nobleHashes.sha256(data));
725
+ }
726
+ else {
727
+ const hash = crypto.createHash("sha256");
728
+ hash.update(data);
729
+ this.checksum = new Uint8Array(hash.digest());
730
+ }
731
+ }
732
+ catch (e) {
733
+ // Simple checksum fallback
734
+ this.checksum = new Uint8Array(32);
735
+ for (let i = 0; i < data.length; i++) {
736
+ this.checksum[i % 32] ^= data[i];
737
+ }
738
+ }
739
+ }
740
+ /**
741
+ * Registers a finalizer to clean up the buffer when it's garbage collected
742
+ * This is a best-effort approach as JavaScript doesn't guarantee finalization
743
+ */
744
+ registerFinalizer() {
745
+ // Use FinalizationRegistry if available (modern environments)
746
+ if (typeof globalThis.FinalizationRegistry !== "undefined") {
747
+ try {
748
+ const FinalizationRegistry = globalThis
749
+ .FinalizationRegistry;
750
+ const registry = new FinalizationRegistry((heldValue) => {
751
+ // Clean up fragments if they still exist
752
+ if (heldValue.fragments) {
753
+ for (const fragment of heldValue.fragments) {
754
+ if (fragment && fragment.length > 0) {
755
+ for (let i = 0; i < fragment.length; i++) {
756
+ fragment[i] = 0;
757
+ }
758
+ }
759
+ }
760
+ }
761
+ });
762
+ registry.register(this, { fragments: this.fragments });
763
+ return;
764
+ }
765
+ catch (e) {
766
+ // Fall back to timeout approach
767
+ }
768
+ }
769
+ // Fallback timeout-based approach for older environments
770
+ const fragmentRefs = this.fragments.slice(); // Create a copy of references
771
+ setTimeout(() => {
772
+ // This will only run if the original object is garbage collected
773
+ // but the timeout reference is still alive
774
+ for (const fragment of fragmentRefs) {
775
+ if (fragment && fragment.length > 0) {
776
+ for (let i = 0; i < fragment.length; i++) {
777
+ fragment[i] = 0;
778
+ }
779
+ }
780
+ }
781
+ }, 30000); // Check after 30 seconds
782
+ }
783
+ }
784
+ /**
785
+ * Securely wipes a section of memory
786
+ *
787
+ * This implementation follows recommendations from security standards
788
+ * for secure data deletion, using multiple overwrite patterns to ensure
789
+ * data cannot be recovered even with advanced forensic techniques.
790
+ *
791
+ * @param buffer - Buffer to wipe
792
+ * @param start - Start position
793
+ * @param end - End position
794
+ * @param passes - Number of overwrite passes (default: 3)
795
+ */
796
+ function secureWipe(buffer, start = 0, end = buffer.length, passes = 3) {
797
+ if (!buffer || buffer.length === 0) {
798
+ return;
799
+ }
800
+ // Ensure bounds are valid
801
+ start = Math.max(0, Math.min(start, buffer.length));
802
+ end = Math.max(start, Math.min(end, buffer.length));
803
+ // Ensure passes is at least 1
804
+ passes = Math.max(1, passes);
805
+ // Get a cryptographically secure random source if available
806
+ let getRandomByte;
807
+ try {
808
+ // Try to use crypto.getRandomValues in browser
809
+ if (typeof window !== "undefined" &&
810
+ window.crypto &&
811
+ window.crypto.getRandomValues) {
812
+ const randomBuffer = new Uint8Array(1);
813
+ getRandomByte = () => {
814
+ window.crypto.getRandomValues(randomBuffer);
815
+ return randomBuffer[0];
816
+ };
817
+ }
818
+ // Try to use Node.js crypto module
819
+ else if (typeof require === "function") {
820
+ try {
821
+ // const crypto = require("crypto");
822
+ getRandomByte = () => crypto.randomBytes(1)[0];
823
+ }
824
+ catch (e) {
825
+ // Fallback to Math.random if crypto is not available
826
+ getRandomByte = () => Math.floor(Math.random() * 256);
827
+ }
828
+ }
829
+ // Fallback to Math.random
830
+ else {
831
+ getRandomByte = () => Math.floor(Math.random() * 256);
832
+ }
833
+ }
834
+ catch (e) {
835
+ // Final fallback
836
+ getRandomByte = () => Math.floor(Math.random() * 256);
837
+ }
838
+ // DoD 5220.22-M inspired wiping patterns
839
+ const patterns = [
840
+ 0x00, // All zeros
841
+ 0xff, // All ones
842
+ 0x55, // Alternating 01010101
843
+ 0xaa, // Alternating 10101010
844
+ 0x92, // Pseudo-random
845
+ 0x49, // Pseudo-random
846
+ 0x24, // Pseudo-random
847
+ 0x6d, // Pseudo-random
848
+ 0xb6, // Pseudo-random
849
+ 0xdb, // Pseudo-random
850
+ ];
851
+ // Perform the wipes
852
+ for (let pass = 0; pass < passes; pass++) {
853
+ // Use a different pattern for each pass, cycling through the available patterns
854
+ const patternIndex = pass % patterns.length;
855
+ const pattern = patterns[patternIndex];
856
+ // Fill the buffer with the pattern
857
+ for (let i = start; i < end; i++) {
858
+ // Use volatile to prevent compiler optimizations from removing this code
859
+ // This is a JavaScript approximation of the volatile keyword in C/C++
860
+ buffer[i] = pattern;
861
+ // Add a small delay every 1024 bytes to prevent optimization
862
+ if (i % 1024 === 0) {
863
+ // Force the JavaScript engine to actually perform the write
864
+ // by reading the value back and using it
865
+ const dummy = buffer[i];
866
+ if (dummy === undefined) {
867
+ // This condition will never be true, but the compiler doesn't know that
868
+ buffer[i] = getRandomByte();
869
+ }
870
+ }
871
+ }
872
+ }
873
+ // Final pass with cryptographically secure random data
874
+ for (let i = start; i < end; i++) {
875
+ buffer[i] = getRandomByte();
876
+ }
877
+ // Final zero pass
878
+ for (let i = start; i < end; i++) {
879
+ buffer[i] = 0x00;
880
+ }
881
+ }
882
+
883
+ export { SecureBuffer, secureWipe };
884
+ //# sourceMappingURL=secure-memory.js.map