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,1065 @@
1
+ 'use strict';
2
+
3
+ var randomCore = require('../core/random/random-core.js');
4
+ require('../core/random/random-types.js');
5
+ require('crypto');
6
+ require('../core/random/random-sources.js');
7
+ require('nehonix-uri-processor');
8
+ var encoding = require('../utils/encoding.js');
9
+ require('../utils/memory/index.js');
10
+ require('../types.js');
11
+ var hashCore = require('../core/hash/hash-core.js');
12
+ require('../core/hash/hash-types.js');
13
+ require('../core/hash/hash-security.js');
14
+ require('../core/hash/hash-advanced.js');
15
+ require('../algorithms/hash-algorithms.js');
16
+ var sideChannel = require('./side-channel.js');
17
+
18
+ /* ---------------------------------------------------------------------------------------------
19
+ * Copyright (c) NEHONIX INC. All rights reserved.
20
+ * Licensed under the MIT License. See LICENSE in the project root for license information.
21
+ * -------------------------------------------------------------------------------------------
22
+ */
23
+ /**
24
+ * Cryptographic Attestation Module
25
+ *
26
+ * This module provides functionality for creating and verifying cryptographic
27
+ * attestations, which are signed statements that can prove the authenticity
28
+ * and integrity of data or the environment.
29
+ *
30
+ * Attestations can be used to verify the integrity of the library itself,
31
+ * prove the authenticity of generated tokens, or validate the security
32
+ * of the runtime environment.
33
+ */
34
+ /**
35
+ * Generates a key pair for attestation using asymmetric cryptography
36
+ *
37
+ * @returns Object containing public and private keys
38
+ */
39
+ function generateAttestationKey() {
40
+ try {
41
+ // Try to use Node.js crypto module if available
42
+ if (typeof require === "function") {
43
+ try {
44
+ const crypto = require("crypto");
45
+ // Generate an RSA key pair
46
+ const { publicKey, privateKey } = crypto.generateKeyPairSync("rsa", {
47
+ modulusLength: 2048,
48
+ publicKeyEncoding: {
49
+ type: "spki",
50
+ format: "pem",
51
+ },
52
+ privateKeyEncoding: {
53
+ type: "pkcs8",
54
+ format: "pem",
55
+ },
56
+ });
57
+ return {
58
+ publicKey,
59
+ privateKey,
60
+ };
61
+ }
62
+ catch (e) {
63
+ console.warn("Node.js crypto generateKeyPairSync not available:", e);
64
+ // Fall back to browser implementation or other fallbacks
65
+ }
66
+ }
67
+ // Try to use Web Crypto API if available (browser environment)
68
+ if (typeof window !== "undefined" &&
69
+ window.crypto &&
70
+ window.crypto.subtle) {
71
+ // Since Web Crypto API is async and our API is sync, we need to use a workaround
72
+ // This is not ideal but allows us to maintain compatibility
73
+ // Create a synchronous wrapper around the async Web Crypto API
74
+ const generateKeyPairSync = () => {
75
+ // Use a synchronous XMLHttpRequest to block until we have a result
76
+ const xhr = new XMLHttpRequest();
77
+ let result = null;
78
+ let error = null;
79
+ // Generate the key pair
80
+ window.crypto.subtle
81
+ .generateKey({
82
+ name: "RSASSA-PKCS1-v1_5",
83
+ modulusLength: 2048,
84
+ publicExponent: new Uint8Array([0x01, 0x00, 0x01]), // 65537
85
+ hash: { name: "SHA-256" },
86
+ }, true, // extractable
87
+ ["sign", "verify"])
88
+ .then((keyPair) => {
89
+ // Export the public key
90
+ return window.crypto.subtle
91
+ .exportKey("spki", keyPair.publicKey)
92
+ .then((publicKeyBuffer) => {
93
+ // Convert to base64
94
+ const publicKeyBase64 = encoding.bufferToBase64(new Uint8Array(publicKeyBuffer));
95
+ const publicKeyPem = `-----BEGIN PUBLIC KEY-----\n${publicKeyBase64}\n-----END PUBLIC KEY-----`;
96
+ // Export the private key
97
+ return window.crypto.subtle
98
+ .exportKey("pkcs8", keyPair.privateKey)
99
+ .then((privateKeyBuffer) => {
100
+ // Convert to base64
101
+ const privateKeyBase64 = encoding.bufferToBase64(new Uint8Array(privateKeyBuffer));
102
+ const privateKeyPem = `-----BEGIN PRIVATE KEY-----\n${privateKeyBase64}\n-----END PRIVATE KEY-----`;
103
+ result = {
104
+ publicKey: publicKeyPem,
105
+ privateKey: privateKeyPem,
106
+ };
107
+ });
108
+ });
109
+ })
110
+ .catch((err) => {
111
+ error = err;
112
+ });
113
+ // Wait for the result (blocking)
114
+ xhr.open("GET", "data:text/plain;charset=utf-8,", false);
115
+ const startTime = Date.now();
116
+ const maxWaitTime = 10000; // 10 seconds timeout
117
+ while (result === null && error === null) {
118
+ // Check for timeout
119
+ if (Date.now() - startTime > maxWaitTime) {
120
+ throw new Error("Key generation timed out");
121
+ }
122
+ // Poll every 100ms
123
+ try {
124
+ xhr.send(null);
125
+ }
126
+ catch (e) {
127
+ // Ignore errors from the XHR
128
+ }
129
+ }
130
+ // Check for errors
131
+ if (error) {
132
+ throw error;
133
+ }
134
+ // Return the result
135
+ if (result) {
136
+ return result;
137
+ }
138
+ throw new Error("Key generation failed with no result");
139
+ };
140
+ // Call our synchronous wrapper
141
+ return generateKeyPairSync();
142
+ }
143
+ }
144
+ catch (e) {
145
+ console.warn("Asymmetric key generation failed:", e);
146
+ // Fall back to a simpler implementation
147
+ }
148
+ // Fallback to a simpler implementation using HMAC-like approach
149
+ console.warn("Using fallback symmetric key generation (less secure)");
150
+ const keyBytes = randomCore.SecureRandom.getRandomBytes(32);
151
+ const key = encoding.bufferToHex(keyBytes);
152
+ return {
153
+ publicKey: key,
154
+ privateKey: key,
155
+ };
156
+ }
157
+ /**
158
+ * Creates an attestation for the given data
159
+ *
160
+ * @param data - Data to attest
161
+ * @param options - Attestation options
162
+ * @returns Attestation string
163
+ */
164
+ function createAttestation(data, options = {}) {
165
+ // Generate or use provided key
166
+ const key = options.key || generateAttestationKey().privateKey;
167
+ // Prepare the data
168
+ let dataString;
169
+ if (typeof data === "string") {
170
+ dataString = data;
171
+ }
172
+ else if (data instanceof Uint8Array) {
173
+ dataString = encoding.bufferToHex(data);
174
+ }
175
+ else {
176
+ dataString = JSON.stringify(data);
177
+ }
178
+ // Create the attestation payload
179
+ const payload = {
180
+ data: dataString,
181
+ iat: Date.now(),
182
+ nonce: encoding.bufferToHex(randomCore.SecureRandom.getRandomBytes(16)),
183
+ };
184
+ // Add expiration if provided
185
+ if (options.expiresIn) {
186
+ payload.exp = payload.iat + options.expiresIn;
187
+ }
188
+ // Add claims if provided
189
+ if (options.claims) {
190
+ payload.claims = options.claims;
191
+ }
192
+ // Add environment information if enabled
193
+ if (options.includeEnvironment !== false) {
194
+ payload.env = getEnvironmentInfo();
195
+ }
196
+ // Serialize the payload
197
+ const serializedPayload = JSON.stringify(payload);
198
+ // Sign the payload
199
+ const signature = signPayload(serializedPayload, key);
200
+ // Combine payload and signature
201
+ const attestation = {
202
+ payload: encoding.bufferToBase64(new TextEncoder().encode(serializedPayload)),
203
+ signature,
204
+ };
205
+ return JSON.stringify(attestation);
206
+ }
207
+ /**
208
+ * Verifies an attestation
209
+ *
210
+ * @param attestation - Attestation to verify
211
+ * @param options - Verification options
212
+ * @returns Verification result
213
+ */
214
+ function verifyAttestation(attestation, options) {
215
+ try {
216
+ // Parse the attestation
217
+ const parsed = JSON.parse(attestation);
218
+ if (!parsed.payload || !parsed.signature) {
219
+ return {
220
+ valid: false,
221
+ reason: "Invalid attestation format",
222
+ };
223
+ }
224
+ // Decode the payload
225
+ const payloadBytes = encoding.base64ToBuffer(parsed.payload);
226
+ const serializedPayload = new TextDecoder().decode(payloadBytes);
227
+ const payload = JSON.parse(serializedPayload);
228
+ // Verify the signature
229
+ const signatureValid = verifySignature(serializedPayload, parsed.signature, options.key);
230
+ if (!signatureValid) {
231
+ return {
232
+ valid: false,
233
+ reason: "Invalid signature",
234
+ };
235
+ }
236
+ // Verify expiration if enabled
237
+ if (options.verifyExpiration !== false && payload.exp) {
238
+ if (Date.now() > payload.exp) {
239
+ return {
240
+ valid: false,
241
+ reason: "Attestation expired",
242
+ claims: payload.claims,
243
+ environment: payload.env,
244
+ expiresAt: payload.exp,
245
+ };
246
+ }
247
+ }
248
+ // Verify environment if enabled
249
+ if (options.verifyEnvironment && payload.env) {
250
+ const currentEnv = getEnvironmentInfo();
251
+ // Check critical environment properties
252
+ if (payload.env.userAgent !== currentEnv.userAgent) {
253
+ return {
254
+ valid: false,
255
+ reason: "Environment mismatch: userAgent",
256
+ claims: payload.claims,
257
+ environment: payload.env,
258
+ expiresAt: payload.exp,
259
+ };
260
+ }
261
+ if (payload.env.platform !== currentEnv.platform) {
262
+ return {
263
+ valid: false,
264
+ reason: "Environment mismatch: platform",
265
+ claims: payload.claims,
266
+ environment: payload.env,
267
+ expiresAt: payload.exp,
268
+ };
269
+ }
270
+ }
271
+ // Verify required claims if provided
272
+ if (options.requiredClaims && payload.claims) {
273
+ for (const [key, value] of Object.entries(options.requiredClaims)) {
274
+ if (!payload.claims[key] ||
275
+ !deepEqual(payload.claims[key], value)) {
276
+ return {
277
+ valid: false,
278
+ reason: `Required claim mismatch: ${key}`,
279
+ claims: payload.claims,
280
+ environment: payload.env,
281
+ expiresAt: payload.exp,
282
+ };
283
+ }
284
+ }
285
+ }
286
+ // All verifications passed
287
+ return {
288
+ valid: true,
289
+ claims: payload.claims,
290
+ environment: payload.env,
291
+ expiresAt: payload.exp,
292
+ };
293
+ }
294
+ catch (e) {
295
+ return {
296
+ valid: false,
297
+ reason: `Verification error: ${e.message}`,
298
+ };
299
+ }
300
+ }
301
+ /**
302
+ * Creates an attestation for the library itself
303
+ * This can be used to verify the integrity of the library
304
+ *
305
+ * @param options - Attestation options
306
+ * @returns Attestation string
307
+ */
308
+ function createLibraryAttestation(options = {}) {
309
+ // Get library information
310
+ const libraryInfo = {
311
+ name: "XyPrissSecurity",
312
+ version: "1.0.0",
313
+ buildId: "20250520-1",
314
+ hash: getLibraryHash(),
315
+ };
316
+ // Create attestation with library info as claims
317
+ return createAttestation("library-attestation", {
318
+ ...options,
319
+ claims: {
320
+ ...options.claims,
321
+ library: libraryInfo,
322
+ },
323
+ });
324
+ }
325
+ /**
326
+ * Verifies a library attestation
327
+ *
328
+ * @param attestation - Attestation to verify
329
+ * @param options - Verification options
330
+ * @returns Verification result
331
+ */
332
+ function verifyLibraryAttestation(attestation, options) {
333
+ // Verify the attestation
334
+ const result = verifyAttestation(attestation, options);
335
+ if (!result.valid) {
336
+ return result;
337
+ }
338
+ // Check that it's a library attestation
339
+ if (!result.claims?.library) {
340
+ return {
341
+ valid: false,
342
+ reason: "Not a library attestation",
343
+ claims: result.claims,
344
+ environment: result.environment,
345
+ expiresAt: result.expiresAt,
346
+ };
347
+ }
348
+ // Verify the library hash if possible
349
+ const currentHash = getLibraryHash();
350
+ if (currentHash &&
351
+ result.claims.library.hash &&
352
+ currentHash !== result.claims.library.hash) {
353
+ return {
354
+ valid: false,
355
+ reason: "Library hash mismatch",
356
+ claims: result.claims,
357
+ environment: result.environment,
358
+ expiresAt: result.expiresAt,
359
+ };
360
+ }
361
+ return result;
362
+ }
363
+ /**
364
+ * Signs a payload using the provided key
365
+ *
366
+ * @param payload - Payload to sign
367
+ * @param key - Key to use for signing (private key for asymmetric, or symmetric key)
368
+ * @returns Signature
369
+ */
370
+ function signPayload(payload, key) {
371
+ // Convert payload to bytes
372
+ const payloadBytes = new TextEncoder().encode(payload);
373
+ try {
374
+ // Check if the key looks like a PEM-encoded private key (asymmetric)
375
+ const isPemKey = key.includes("-----BEGIN") && key.includes("KEY-----");
376
+ if (isPemKey) {
377
+ // Try to use Node.js crypto module if available
378
+ if (typeof require === "function") {
379
+ try {
380
+ const crypto = require("crypto");
381
+ // Create a sign object
382
+ const sign = crypto.createSign("SHA256");
383
+ // Update with the payload
384
+ sign.update(payloadBytes);
385
+ // Sign the payload
386
+ const signature = sign.sign(key, "hex");
387
+ return signature;
388
+ }
389
+ catch (e) {
390
+ console.warn("Node.js crypto signing failed:", e);
391
+ // Fall back to browser implementation or other fallbacks
392
+ }
393
+ }
394
+ // Try to use Web Crypto API if available (browser environment)
395
+ if (typeof window !== "undefined" &&
396
+ window.crypto &&
397
+ window.crypto.subtle) {
398
+ // Since Web Crypto API is async and our API is sync, we need to use a workaround
399
+ // Create a synchronous wrapper around the async Web Crypto API
400
+ const signSync = (data, privateKey) => {
401
+ // Use a synchronous XMLHttpRequest to block until we have a result
402
+ const xhr = new XMLHttpRequest();
403
+ let result = null;
404
+ let error = null;
405
+ // Parse the PEM private key
406
+ const pemHeader = "-----BEGIN PRIVATE KEY-----";
407
+ const pemFooter = "-----END PRIVATE KEY-----";
408
+ const pemContents = privateKey
409
+ .substring(privateKey.indexOf(pemHeader) + pemHeader.length, privateKey.indexOf(pemFooter))
410
+ .replace(/\s/g, "");
411
+ // Convert from base64 to binary
412
+ const binaryDerString = atob(pemContents);
413
+ const binaryDer = new Uint8Array(binaryDerString.length);
414
+ for (let i = 0; i < binaryDerString.length; i++) {
415
+ binaryDer[i] = binaryDerString.charCodeAt(i);
416
+ }
417
+ // Import the private key
418
+ window.crypto.subtle
419
+ .importKey("pkcs8", binaryDer, {
420
+ name: "RSASSA-PKCS1-v1_5",
421
+ hash: { name: "SHA-256" },
422
+ }, false, ["sign"])
423
+ .then((cryptoKey) => {
424
+ // Sign the data
425
+ // Create a proper ArrayBuffer to avoid type issues
426
+ const buffer = new ArrayBuffer(data.length);
427
+ const view = new Uint8Array(buffer);
428
+ view.set(data);
429
+ return window.crypto.subtle.sign({ name: "RSASSA-PKCS1-v1_5" }, cryptoKey, buffer);
430
+ })
431
+ .then((signatureBuffer) => {
432
+ // Convert to hex
433
+ result = encoding.bufferToHex(new Uint8Array(signatureBuffer));
434
+ })
435
+ .catch((err) => {
436
+ error = err;
437
+ });
438
+ // Wait for the result (blocking)
439
+ xhr.open("GET", "data:text/plain;charset=utf-8,", false);
440
+ const startTime = Date.now();
441
+ const maxWaitTime = 10000; // 10 seconds timeout
442
+ while (result === null && error === null) {
443
+ // Check for timeout
444
+ if (Date.now() - startTime > maxWaitTime) {
445
+ throw new Error("Signing operation timed out");
446
+ }
447
+ // Poll every 100ms
448
+ try {
449
+ xhr.send(null);
450
+ }
451
+ catch (e) {
452
+ // Ignore errors from the XHR
453
+ }
454
+ }
455
+ // Check for errors
456
+ if (error) {
457
+ throw error;
458
+ }
459
+ // Return the result
460
+ if (result) {
461
+ return result;
462
+ }
463
+ throw new Error("Signing operation failed with no result");
464
+ };
465
+ // Call our synchronous wrapper
466
+ return signSync(payloadBytes, key);
467
+ }
468
+ }
469
+ }
470
+ catch (e) {
471
+ console.warn("Asymmetric signing failed:", e);
472
+ // Fall back to a simpler implementation
473
+ }
474
+ // Fallback to a simpler implementation using HMAC-like approach
475
+ console.warn("Using fallback symmetric signing (less secure)");
476
+ // Convert key to bytes if it's a string
477
+ const keyBytes = typeof key === "string" ? encoding.hexToBuffer(key) : key;
478
+ // Create a signature using a keyed hash
479
+ const signature = hashCore.Hash.create(payloadBytes, {
480
+ salt: keyBytes,
481
+ algorithm: "sha256",
482
+ iterations: 1000,
483
+ outputFormat: "hex",
484
+ });
485
+ return signature;
486
+ }
487
+ /**
488
+ * Verifies a signature
489
+ *
490
+ * @param payload - Payload that was signed
491
+ * @param signature - Signature to verify
492
+ * @param key - Key to use for verification (public key for asymmetric, or symmetric key)
493
+ * @returns True if the signature is valid
494
+ */
495
+ function verifySignature(payload, signature, key) {
496
+ // Convert payload to bytes
497
+ const payloadBytes = new TextEncoder().encode(payload);
498
+ try {
499
+ // Check if the key looks like a PEM-encoded public key (asymmetric)
500
+ const isPemKey = key.includes("-----BEGIN") && key.includes("KEY-----");
501
+ if (isPemKey) {
502
+ // Try to use Node.js crypto module if available
503
+ if (typeof require === "function") {
504
+ try {
505
+ const crypto = require("crypto");
506
+ // Create a verify object
507
+ const verify = crypto.createVerify("SHA256");
508
+ // Update with the payload
509
+ verify.update(payloadBytes);
510
+ // Verify the signature
511
+ return verify.verify(key, signature, "hex");
512
+ }
513
+ catch (e) {
514
+ console.warn("Node.js crypto verification failed:", e);
515
+ // Fall back to browser implementation or other fallbacks
516
+ }
517
+ }
518
+ // Try to use Web Crypto API if available (browser environment)
519
+ if (typeof window !== "undefined" &&
520
+ window.crypto &&
521
+ window.crypto.subtle) {
522
+ // Since Web Crypto API is async and our API is sync, we need to use a workaround
523
+ // Create a synchronous wrapper around the async Web Crypto API
524
+ const verifySync = (data, sig, publicKey) => {
525
+ // Use a synchronous XMLHttpRequest to block until we have a result
526
+ const xhr = new XMLHttpRequest();
527
+ let result = null;
528
+ let error = null;
529
+ // Parse the PEM public key
530
+ const pemHeader = "-----BEGIN PUBLIC KEY-----";
531
+ const pemFooter = "-----END PUBLIC KEY-----";
532
+ const pemContents = publicKey
533
+ .substring(publicKey.indexOf(pemHeader) + pemHeader.length, publicKey.indexOf(pemFooter))
534
+ .replace(/\s/g, "");
535
+ // Convert from base64 to binary
536
+ const binaryDerString = atob(pemContents);
537
+ const binaryDer = new Uint8Array(binaryDerString.length);
538
+ for (let i = 0; i < binaryDerString.length; i++) {
539
+ binaryDer[i] = binaryDerString.charCodeAt(i);
540
+ }
541
+ // Convert signature from hex to binary
542
+ const signatureBytes = encoding.hexToBuffer(sig);
543
+ // Create a proper ArrayBuffer for the signature to avoid type issues
544
+ const signatureBuffer = new ArrayBuffer(signatureBytes.length);
545
+ const signatureView = new Uint8Array(signatureBuffer);
546
+ signatureView.set(signatureBytes);
547
+ // Import the public key
548
+ window.crypto.subtle
549
+ .importKey("spki", binaryDer, {
550
+ name: "RSASSA-PKCS1-v1_5",
551
+ hash: { name: "SHA-256" },
552
+ }, false, ["verify"])
553
+ .then((cryptoKey) => {
554
+ // Create a proper ArrayBuffer to avoid type issues
555
+ const buffer = new ArrayBuffer(data.length);
556
+ const view = new Uint8Array(buffer);
557
+ view.set(data);
558
+ // Verify the signature
559
+ return window.crypto.subtle.verify({ name: "RSASSA-PKCS1-v1_5" }, cryptoKey, signatureBuffer, buffer);
560
+ })
561
+ .then((isValid) => {
562
+ result = isValid;
563
+ })
564
+ .catch((err) => {
565
+ error = err;
566
+ });
567
+ // Wait for the result (blocking)
568
+ xhr.open("GET", "data:text/plain;charset=utf-8,", false);
569
+ const startTime = Date.now();
570
+ const maxWaitTime = 10000; // 10 seconds timeout
571
+ while (result === null && error === null) {
572
+ // Check for timeout
573
+ if (Date.now() - startTime > maxWaitTime) {
574
+ throw new Error("Verification operation timed out");
575
+ }
576
+ // Poll every 100ms
577
+ try {
578
+ xhr.send(null);
579
+ }
580
+ catch (e) {
581
+ // Ignore errors from the XHR
582
+ }
583
+ }
584
+ // Check for errors
585
+ if (error) {
586
+ console.warn("Web Crypto verification error:", error);
587
+ return false;
588
+ }
589
+ // Return the result
590
+ return result === true;
591
+ };
592
+ // Call our synchronous wrapper
593
+ return verifySync(payloadBytes, signature, key);
594
+ }
595
+ }
596
+ }
597
+ catch (e) {
598
+ console.warn("Asymmetric verification failed:", e);
599
+ // Fall back to a simpler implementation
600
+ }
601
+ // Fallback to a simpler implementation using HMAC-like approach
602
+ console.warn("Using fallback symmetric verification (less secure)");
603
+ // Compute the expected signature
604
+ const expectedSignature = signPayload(payload, key);
605
+ // Compare in constant time to prevent timing attacks
606
+ return sideChannel.constantTimeEqual(signature, expectedSignature);
607
+ }
608
+ /**
609
+ * Gets information about the current environment
610
+ *
611
+ * @returns Environment information
612
+ */
613
+ function getEnvironmentInfo() {
614
+ const info = {
615
+ timestamp: Date.now(),
616
+ };
617
+ // Browser environment
618
+ if (typeof window !== "undefined") {
619
+ info.userAgent = window.navigator.userAgent;
620
+ // Use userAgentData instead of deprecated platform if available
621
+ info.platform =
622
+ window.navigator.userAgentData?.platform ||
623
+ // Fallback to derived info from userAgent
624
+ (window.navigator.userAgent.indexOf("Win") !== -1
625
+ ? "Windows"
626
+ : window.navigator.userAgent.indexOf("Mac") !== -1
627
+ ? "MacOS"
628
+ : window.navigator.userAgent.indexOf("Linux") !== -1
629
+ ? "Linux"
630
+ : "Unknown");
631
+ info.language = window.navigator.language;
632
+ info.cookiesEnabled = window.navigator.cookieEnabled;
633
+ if (window.screen) {
634
+ info.screenWidth = window.screen.width;
635
+ info.screenHeight = window.screen.height;
636
+ info.colorDepth = window.screen.colorDepth;
637
+ }
638
+ info.timezoneOffset = new Date().getTimezoneOffset();
639
+ info.origin = window.location.origin;
640
+ }
641
+ // Node.js environment
642
+ if (typeof process !== "undefined") {
643
+ info.nodeVersion = process.version;
644
+ info.platform = process.platform;
645
+ info.arch = process.arch;
646
+ if (process.env) {
647
+ info.nodeEnv = process.env.NODE_ENV;
648
+ }
649
+ }
650
+ return info;
651
+ }
652
+ /**
653
+ * Gets a hash of the library code
654
+ * This computes a hash of the critical library components
655
+ *
656
+ * @returns Hash of the library code
657
+ */
658
+ function getLibraryHash() {
659
+ try {
660
+ // Try to use Node.js fs module to read actual files if available
661
+ if (typeof require === "function") {
662
+ try {
663
+ const fs = require("fs");
664
+ const path = require("path");
665
+ const crypto = require("crypto");
666
+ // Define the core modules to hash
667
+ const coreModules = [
668
+ "core/crypto.ts",
669
+ "core/hash.ts",
670
+ "core/keys.ts",
671
+ "core/random.ts",
672
+ "core/validators.ts",
673
+ ];
674
+ // Define the security modules to hash
675
+ const securityModules = [
676
+ "security/attestation.ts",
677
+ "security/canary-tokens.ts",
678
+ "security/entropy-augmentation.ts",
679
+ "security/memory-hard.ts",
680
+ "security/post-quantum.ts",
681
+ "security/secure-memory.ts",
682
+ "security/secure-serialization.ts",
683
+ "security/side-channel.ts",
684
+ ];
685
+ // Define the utility modules to hash
686
+ const utilityModules = [
687
+ "utils/constants.ts",
688
+ "utils/encoding.ts",
689
+ "utils/stats.ts",
690
+ "utils/testing.ts",
691
+ ];
692
+ // Combine all modules
693
+ const allModules = [
694
+ ...coreModules,
695
+ ...securityModules,
696
+ ...utilityModules,
697
+ ];
698
+ // Create a hash object
699
+ const hash = crypto.createHash("sha256");
700
+ // Try to find the src directory
701
+ let srcDir = "";
702
+ const possiblePaths = [
703
+ "src",
704
+ "../src",
705
+ "../../src",
706
+ path.resolve(__dirname, "../"),
707
+ path.resolve(__dirname, "../../src"),
708
+ path.resolve(process.cwd(), "src"),
709
+ ];
710
+ for (const possiblePath of possiblePaths) {
711
+ try {
712
+ if (fs.existsSync(possiblePath) &&
713
+ fs.statSync(possiblePath).isDirectory()) {
714
+ // Check if this directory contains our expected files
715
+ if (fs.existsSync(path.join(possiblePath, "core")) ||
716
+ fs.existsSync(path.join(possiblePath, "security"))) {
717
+ srcDir = possiblePath;
718
+ break;
719
+ }
720
+ }
721
+ }
722
+ catch (e) {
723
+ // Ignore errors and try the next path
724
+ }
725
+ }
726
+ if (!srcDir) {
727
+ throw new Error("Could not find src directory");
728
+ }
729
+ // Read and hash each file
730
+ for (const module of allModules) {
731
+ try {
732
+ const filePath = path.join(srcDir, module);
733
+ if (fs.existsSync(filePath)) {
734
+ const content = fs.readFileSync(filePath, "utf8");
735
+ // Update the hash with the file content
736
+ hash.update(`${module}:${content}`);
737
+ }
738
+ }
739
+ catch (e) {
740
+ console.warn(`Error reading file ${module}:`, e);
741
+ // Continue with other files
742
+ }
743
+ }
744
+ // Get the final hash
745
+ return hash.digest("hex");
746
+ }
747
+ catch (e) {
748
+ console.warn("Error using Node.js fs to compute library hash:", e);
749
+ // Fall back to the module hash approach
750
+ }
751
+ }
752
+ // If we can't read the actual files, use the module hash approach
753
+ // Create a buffer to hold the critical components
754
+ const components = [];
755
+ // Add core module hashes
756
+ components.push(getModuleHash("crypto"));
757
+ components.push(getModuleHash("hash"));
758
+ components.push(getModuleHash("keys"));
759
+ components.push(getModuleHash("random"));
760
+ components.push(getModuleHash("validators"));
761
+ // Add security module hashes
762
+ components.push(getModuleHash("attestation"));
763
+ components.push(getModuleHash("canary-tokens"));
764
+ components.push(getModuleHash("entropy-augmentation"));
765
+ components.push(getModuleHash("memory-hard"));
766
+ components.push(getModuleHash("post-quantum"));
767
+ components.push(getModuleHash("secure-memory"));
768
+ components.push(getModuleHash("secure-serialization"));
769
+ components.push(getModuleHash("side-channel"));
770
+ // Add utility module hashes
771
+ components.push(getModuleHash("constants"));
772
+ components.push(getModuleHash("encoding"));
773
+ components.push(getModuleHash("stats"));
774
+ components.push(getModuleHash("testing"));
775
+ // Combine all hashes
776
+ const combinedHash = hashCore.Hash.create(components.join("|"), {
777
+ algorithm: "sha256",
778
+ outputFormat: "hex",
779
+ });
780
+ return combinedHash;
781
+ }
782
+ catch (e) {
783
+ console.warn("Error computing library hash:", e);
784
+ // Fallback to a fixed value if we can't compute the hash
785
+ return "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";
786
+ }
787
+ }
788
+ /**
789
+ * Gets a hash of a specific module
790
+ *
791
+ * @param moduleName - Name of the module to hash
792
+ * @returns Hash of the module
793
+ */
794
+ function getModuleHash(moduleName) {
795
+ try {
796
+ // Try to use Node.js fs module to read the actual module file if available
797
+ if (typeof require === "function") {
798
+ try {
799
+ const fs = require("fs");
800
+ const path = require("path");
801
+ const crypto = require("crypto");
802
+ // Map module name to file path
803
+ let filePath = "";
804
+ // Determine the file path based on the module name
805
+ if (["crypto", "hash", "keys", "random", "validators"].includes(moduleName)) {
806
+ filePath = `core/${moduleName}.ts`;
807
+ }
808
+ else if ([
809
+ "attestation",
810
+ "canary-tokens",
811
+ "entropy-augmentation",
812
+ "memory-hard",
813
+ "post-quantum",
814
+ "secure-memory",
815
+ "secure-serialization",
816
+ "side-channel",
817
+ ].includes(moduleName)) {
818
+ filePath = `security/${moduleName}.ts`;
819
+ }
820
+ else if (["constants", "encoding", "stats", "testing"].includes(moduleName)) {
821
+ filePath = `utils/${moduleName}.ts`;
822
+ }
823
+ else {
824
+ throw new Error(`Unknown module: ${moduleName}`);
825
+ }
826
+ // Try to find the src directory
827
+ let srcDir = "";
828
+ const possiblePaths = [
829
+ "src",
830
+ "../src",
831
+ "../../src",
832
+ path.resolve(__dirname, "../"),
833
+ path.resolve(__dirname, "../../src"),
834
+ path.resolve(process.cwd(), "src"),
835
+ ];
836
+ for (const possiblePath of possiblePaths) {
837
+ try {
838
+ if (fs.existsSync(possiblePath) &&
839
+ fs.statSync(possiblePath).isDirectory()) {
840
+ // Check if this directory contains our expected files
841
+ if (fs.existsSync(path.join(possiblePath, "core")) ||
842
+ fs.existsSync(path.join(possiblePath, "security"))) {
843
+ srcDir = possiblePath;
844
+ break;
845
+ }
846
+ }
847
+ }
848
+ catch (e) {
849
+ // Ignore errors and try the next path
850
+ }
851
+ }
852
+ if (!srcDir) {
853
+ throw new Error("Could not find src directory");
854
+ }
855
+ // Read the file
856
+ const fullPath = path.join(srcDir, filePath);
857
+ if (fs.existsSync(fullPath)) {
858
+ const content = fs.readFileSync(fullPath, "utf8");
859
+ // Create a hash of the file content
860
+ const hash = crypto.createHash("sha256");
861
+ hash.update(`${filePath}:${content}`);
862
+ return hash.digest("hex");
863
+ }
864
+ else {
865
+ throw new Error(`File not found: ${fullPath}`);
866
+ }
867
+ }
868
+ catch (e) {
869
+ console.warn(`Error reading module file for ${moduleName}:`, e);
870
+ // Fall back to the simplified approach
871
+ }
872
+ }
873
+ // If we can't read the actual file, use a more sophisticated fallback approach
874
+ // that still provides some real information about the module
875
+ // Create a representation of the module based on its expected structure and features
876
+ let moduleRepresentation = "";
877
+ // Add module name
878
+ moduleRepresentation += `module:${moduleName};`;
879
+ // Add module version from package.json if available
880
+ let version = "1.0.0"; // Default version
881
+ if (typeof require === "function") {
882
+ try {
883
+ const path = require("path");
884
+ const fs = require("fs");
885
+ // Try to find package.json
886
+ const possiblePaths = [
887
+ "package.json",
888
+ "../package.json",
889
+ "../../package.json",
890
+ path.resolve(__dirname, "../package.json"),
891
+ path.resolve(__dirname, "../../package.json"),
892
+ path.resolve(process.cwd(), "package.json"),
893
+ ];
894
+ for (const possiblePath of possiblePaths) {
895
+ try {
896
+ if (fs.existsSync(possiblePath)) {
897
+ const packageJson = JSON.parse(fs.readFileSync(possiblePath, "utf8"));
898
+ if (packageJson.version) {
899
+ version = packageJson.version;
900
+ break;
901
+ }
902
+ }
903
+ }
904
+ catch (e) {
905
+ // Ignore errors and try the next path
906
+ }
907
+ }
908
+ }
909
+ catch (e) {
910
+ // Ignore errors and use default version
911
+ }
912
+ }
913
+ moduleRepresentation += `version:${version};`;
914
+ // Add a timestamp to detect changes
915
+ moduleRepresentation += `timestamp:${Date.now()};`;
916
+ // Add module-specific data based on our knowledge of the codebase
917
+ switch (moduleName) {
918
+ case "crypto":
919
+ moduleRepresentation +=
920
+ "class:XyPrissSecurity;methods:encrypt,decrypt,hash,sign,verify,generateSecureToken,generateAPIKey,generateJWTSecret,generateSessionToken,generateTOTPSecret,calculatePasswordStrength,runSecurityTests,getStats,middleware,constantTimeEqual,secureModPow,faultResistantEqual,deriveKeyMemoryHard,deriveKeyBalloon,generateQuantumResistantKeypair,quantumResistantSign,quantumResistantVerify,generateRingLweKeypair,ringLweEncrypt,ringLweDecrypt,createSecureBuffer,createSecureString,createSecureObject,secureWipe,createCanaryToken,createCanaryObject,createCanaryFunction,triggerCanaryToken,verifyRuntimeSecurity,createTamperEvidentLogger;";
921
+ break;
922
+ case "hash":
923
+ moduleRepresentation +=
924
+ "class:Hash;methods:secureHash,sha256,sha512,sha3,blake3,hmac,pbkdf2;algorithms:sha256,sha512,sha3-256,sha3-512,blake3;features:salt,pepper,iterations,outputFormat;";
925
+ break;
926
+ case "keys":
927
+ moduleRepresentation +=
928
+ "class:Keys;methods:deriveKey,pbkdf2,scrypt,argon2;algorithms:pbkdf2,scrypt,argon2;features:salt,iterations,keyLength,hashFunction;implementations:node-crypto,pbkdf2-lib,scrypt-js,argon2-package,pure-js;";
929
+ break;
930
+ case "random":
931
+ moduleRepresentation +=
932
+ "class:SecureRandom;methods:getRandomBytes,getRandomString,getRandomNumber,getRandomBits,getRandomInt,getRandomFloat,getRandomBoolean,getRandomElement,getRandomSubset,shuffle;entropy:high;sources:crypto.getRandomValues,crypto.randomBytes,Math.random;features:entropyPool,entropyCollection;";
933
+ break;
934
+ case "validators":
935
+ moduleRepresentation +=
936
+ "class:Validators;methods:validateString,validateNumber,validateInteger,validateBoolean,validateObject,validateArray,validateFunction,validateBuffer,validateAlgorithm,validateIterations,validateKeyLength,validateSalt;";
937
+ break;
938
+ case "attestation":
939
+ moduleRepresentation +=
940
+ "functions:generateAttestationKey,createAttestation,verifyAttestation,createLibraryAttestation,verifyLibraryAttestation,signPayload,verifySignature,getEnvironmentInfo,getLibraryHash,getModuleHash;features:asymmetricCrypto,environmentDetection,libraryIntegrity;";
941
+ break;
942
+ case "canary-tokens":
943
+ moduleRepresentation +=
944
+ "functions:createCanaryToken,triggerCanaryToken,createCanaryObject,createCanaryFunction;features:tokenGeneration,objectProxies,functionWrapping,callbackNotification,contextCollection;";
945
+ break;
946
+ case "entropy-augmentation":
947
+ moduleRepresentation +=
948
+ "class:EntropyAugmentation;methods:collectEntropy,addToEntropyPool,getEntropyBytes,collectSystemEntropy,collectBrowserEntropy,collectPerformanceEntropy,collectDeviceEntropy,collectNetworkEntropy;sources:system,browser,performance,device,network;";
949
+ break;
950
+ case "memory-hard":
951
+ moduleRepresentation +=
952
+ "functions:deriveKeyMemoryHard,deriveKeyBalloon;algorithms:argon2id,balloon;features:memoryCost,timeCost,parallelism;";
953
+ break;
954
+ case "post-quantum":
955
+ moduleRepresentation +=
956
+ "functions:lamportSign,lamportVerify,generateLamportKeyPair,ringLweEncrypt,ringLweDecrypt,generateRingLweKeyPair,kyberEncapsulate,kyberDecapsulate,generateKyberKeyPair;algorithms:lamport,ringLWE,kyber;features:hashBased,latticeBased,keyEncapsulation;";
957
+ break;
958
+ case "secure-memory":
959
+ moduleRepresentation +=
960
+ "classes:SecureBuffer,SecureString,SecureObject;methods:from,getBuffer,equals,destroy,toString,length,append,clear,set,get,getAll,setAll,has,delete;features:autoZeroing,explicitClearing,constantTimeComparison;";
961
+ break;
962
+ case "secure-serialization":
963
+ moduleRepresentation +=
964
+ "functions:secureSerialize,secureDeserialize,createSecureReviver,validateSchema,sanitizeObject;features:schemaValidation,typeChecking,prototypeProtection,circularReferenceHandling;";
965
+ break;
966
+ case "side-channel":
967
+ moduleRepresentation +=
968
+ "functions:constantTimeEqual,secureModPow,faultResistantEqual,maskedAccess,timeResistantCompare;features:timingAttackProtection,faultInjectionProtection,cacheSideChannelProtection;";
969
+ break;
970
+ case "constants":
971
+ moduleRepresentation +=
972
+ "constants:SECURITY_DEFAULTS,ERROR_MESSAGES,CHARSETS;values:PBKDF2_ITERATIONS,SCRYPT_COST,ARGON2_ITERATIONS,KEY_LENGTH,SALT_LENGTH,TOKEN_LENGTH,PASSWORD_MIN_LENGTH,PASSWORD_MIN_ENTROPY;";
973
+ break;
974
+ case "encoding":
975
+ moduleRepresentation +=
976
+ "functions:bufferToHex,hexToBuffer,bufferToBase64,base64ToBuffer,bufferToBase58,base58ToBuffer,bufferToUtf8,utf8ToBuffer;features:noDepencencies,browserCompatible;";
977
+ break;
978
+ case "stats":
979
+ moduleRepresentation +=
980
+ "class:StatsTracker;methods:getInstance,trackTokenGeneration,trackHashComputation,trackKeyDerivation,getStats,resetStats;features:singleton,operationCounting,timingMeasurement,entropyTracking;";
981
+ break;
982
+ case "testing":
983
+ moduleRepresentation +=
984
+ "functions:runSecurityTests,testTokenUniqueness,testDistribution,testHashConsistency;features:randomnessTests,hashingTests,timingAttackTests;";
985
+ break;
986
+ default:
987
+ moduleRepresentation += "type:unknown;";
988
+ }
989
+ // Add information about the module's dependencies
990
+ const dependencies = {
991
+ crypto: ["random", "hash", "keys", "validators"],
992
+ hash: ["encoding", "constants", "stats"],
993
+ keys: [
994
+ "random",
995
+ "hash",
996
+ "encoding",
997
+ "constants",
998
+ "stats",
999
+ "validators",
1000
+ ],
1001
+ random: ["encoding", "constants", "stats"],
1002
+ validators: ["constants"],
1003
+ attestation: ["random", "hash", "encoding", "side-channel"],
1004
+ "canary-tokens": ["random", "hash"],
1005
+ "entropy-augmentation": ["random"],
1006
+ "memory-hard": ["random", "hash", "encoding"],
1007
+ "post-quantum": ["random", "hash", "encoding"],
1008
+ "secure-memory": ["random"],
1009
+ "secure-serialization": ["hash"],
1010
+ "side-channel": ["random"],
1011
+ constants: [],
1012
+ encoding: [],
1013
+ stats: ["constants"],
1014
+ testing: ["random", "hash", "stats"],
1015
+ };
1016
+ if (dependencies[moduleName]) {
1017
+ moduleRepresentation += `dependencies:${dependencies[moduleName].join(",")};`;
1018
+ }
1019
+ // Hash the module representation
1020
+ return hashCore.Hash.create(moduleRepresentation, {
1021
+ algorithm: "sha256",
1022
+ outputFormat: "hex",
1023
+ });
1024
+ }
1025
+ catch (e) {
1026
+ console.warn(`Error computing hash for module ${moduleName}:`, e);
1027
+ // Fallback to a fixed value if we can't compute the hash
1028
+ return `${moduleName}-default-hash-${Date.now()}`;
1029
+ }
1030
+ }
1031
+ /**
1032
+ * Deep equality check for objects
1033
+ *
1034
+ * @param a - First object
1035
+ * @param b - Second object
1036
+ * @returns True if the objects are deeply equal
1037
+ */
1038
+ function deepEqual(a, b) {
1039
+ if (a === b)
1040
+ return true;
1041
+ if (typeof a !== "object" ||
1042
+ a === null ||
1043
+ typeof b !== "object" ||
1044
+ b === null) {
1045
+ return false;
1046
+ }
1047
+ const keysA = Object.keys(a);
1048
+ const keysB = Object.keys(b);
1049
+ if (keysA.length !== keysB.length)
1050
+ return false;
1051
+ for (const key of keysA) {
1052
+ if (!keysB.includes(key))
1053
+ return false;
1054
+ if (!deepEqual(a[key], b[key]))
1055
+ return false;
1056
+ }
1057
+ return true;
1058
+ }
1059
+
1060
+ exports.createAttestation = createAttestation;
1061
+ exports.createLibraryAttestation = createLibraryAttestation;
1062
+ exports.generateAttestationKey = generateAttestationKey;
1063
+ exports.verifyAttestation = verifyAttestation;
1064
+ exports.verifyLibraryAttestation = verifyLibraryAttestation;
1065
+ //# sourceMappingURL=attestation.js.map