@hxa-rn/react-native-quick-crypto 1.1.0-beta.1

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 (1236) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +171 -0
  3. package/dist/commonjs/argon2.js +39 -0
  4. package/dist/commonjs/argon2.js.map +1 -0
  5. package/dist/commonjs/blake3.js +106 -0
  6. package/dist/commonjs/blake3.js.map +1 -0
  7. package/dist/commonjs/certificate.js +35 -0
  8. package/dist/commonjs/certificate.js.map +1 -0
  9. package/dist/commonjs/cipher.js +202 -0
  10. package/dist/commonjs/cipher.js.map +1 -0
  11. package/dist/commonjs/constants.js +32 -0
  12. package/dist/commonjs/constants.js.map +1 -0
  13. package/dist/commonjs/dh-groups.js +29 -0
  14. package/dist/commonjs/dh-groups.js.map +1 -0
  15. package/dist/commonjs/dhKeyPair.js +113 -0
  16. package/dist/commonjs/dhKeyPair.js.map +1 -0
  17. package/dist/commonjs/diffie-hellman.js +155 -0
  18. package/dist/commonjs/diffie-hellman.js.map +1 -0
  19. package/dist/commonjs/dsa.js +96 -0
  20. package/dist/commonjs/dsa.js.map +1 -0
  21. package/dist/commonjs/ec.js +368 -0
  22. package/dist/commonjs/ec.js.map +1 -0
  23. package/dist/commonjs/ecdh.js +114 -0
  24. package/dist/commonjs/ecdh.js.map +1 -0
  25. package/dist/commonjs/ed.js +395 -0
  26. package/dist/commonjs/ed.js.map +1 -0
  27. package/dist/commonjs/expo-plugin/@types.js +2 -0
  28. package/dist/commonjs/expo-plugin/@types.js.map +1 -0
  29. package/dist/commonjs/expo-plugin/withRNQC.js +25 -0
  30. package/dist/commonjs/expo-plugin/withRNQC.js.map +1 -0
  31. package/dist/commonjs/expo-plugin/withSodiumAndroid.js +25 -0
  32. package/dist/commonjs/expo-plugin/withSodiumAndroid.js.map +1 -0
  33. package/dist/commonjs/expo-plugin/withSodiumIos.js +23 -0
  34. package/dist/commonjs/expo-plugin/withSodiumIos.js.map +1 -0
  35. package/dist/commonjs/expo-plugin/withXCode.js +51 -0
  36. package/dist/commonjs/expo-plugin/withXCode.js.map +1 -0
  37. package/dist/commonjs/hash.js +241 -0
  38. package/dist/commonjs/hash.js.map +1 -0
  39. package/dist/commonjs/hkdf.js +81 -0
  40. package/dist/commonjs/hkdf.js.map +1 -0
  41. package/dist/commonjs/hmac.js +121 -0
  42. package/dist/commonjs/hmac.js.map +1 -0
  43. package/dist/commonjs/index.js +358 -0
  44. package/dist/commonjs/index.js.map +1 -0
  45. package/dist/commonjs/keys/classes.js +272 -0
  46. package/dist/commonjs/keys/classes.js.map +1 -0
  47. package/dist/commonjs/keys/generateKeyPair.js +156 -0
  48. package/dist/commonjs/keys/generateKeyPair.js.map +1 -0
  49. package/dist/commonjs/keys/index.js +327 -0
  50. package/dist/commonjs/keys/index.js.map +1 -0
  51. package/dist/commonjs/keys/publicCipher.js +165 -0
  52. package/dist/commonjs/keys/publicCipher.js.map +1 -0
  53. package/dist/commonjs/keys/signVerify.js +225 -0
  54. package/dist/commonjs/keys/signVerify.js.map +1 -0
  55. package/dist/commonjs/keys/utils.js +123 -0
  56. package/dist/commonjs/keys/utils.js.map +1 -0
  57. package/dist/commonjs/mldsa.js +74 -0
  58. package/dist/commonjs/mldsa.js.map +1 -0
  59. package/dist/commonjs/mlkem.js +224 -0
  60. package/dist/commonjs/mlkem.js.map +1 -0
  61. package/dist/commonjs/pbkdf2.js +106 -0
  62. package/dist/commonjs/pbkdf2.js.map +1 -0
  63. package/dist/commonjs/prime.js +96 -0
  64. package/dist/commonjs/prime.js.map +1 -0
  65. package/dist/commonjs/random.js +233 -0
  66. package/dist/commonjs/random.js.map +1 -0
  67. package/dist/commonjs/rsa.js +207 -0
  68. package/dist/commonjs/rsa.js.map +1 -0
  69. package/dist/commonjs/scrypt.js +98 -0
  70. package/dist/commonjs/scrypt.js.map +1 -0
  71. package/dist/commonjs/specs/v1/NativeQuickCrypto.js +17 -0
  72. package/dist/commonjs/specs/v1/NativeQuickCrypto.js.map +1 -0
  73. package/dist/commonjs/specs/v1/argon2.nitro.js +6 -0
  74. package/dist/commonjs/specs/v1/argon2.nitro.js.map +1 -0
  75. package/dist/commonjs/specs/v1/blake3.nitro.js +6 -0
  76. package/dist/commonjs/specs/v1/blake3.nitro.js.map +1 -0
  77. package/dist/commonjs/specs/v1/certificate.nitro.js +6 -0
  78. package/dist/commonjs/specs/v1/certificate.nitro.js.map +1 -0
  79. package/dist/commonjs/specs/v1/cipher.nitro.js +6 -0
  80. package/dist/commonjs/specs/v1/cipher.nitro.js.map +1 -0
  81. package/dist/commonjs/specs/v1/dhKeyPair.nitro.js +6 -0
  82. package/dist/commonjs/specs/v1/dhKeyPair.nitro.js.map +1 -0
  83. package/dist/commonjs/specs/v1/diffie-hellman.nitro.js +6 -0
  84. package/dist/commonjs/specs/v1/diffie-hellman.nitro.js.map +1 -0
  85. package/dist/commonjs/specs/v1/dsaKeyPair.nitro.js +6 -0
  86. package/dist/commonjs/specs/v1/dsaKeyPair.nitro.js.map +1 -0
  87. package/dist/commonjs/specs/v1/ecKeyPair.nitro.js +6 -0
  88. package/dist/commonjs/specs/v1/ecKeyPair.nitro.js.map +1 -0
  89. package/dist/commonjs/specs/v1/ecdh.nitro.js +6 -0
  90. package/dist/commonjs/specs/v1/ecdh.nitro.js.map +1 -0
  91. package/dist/commonjs/specs/v1/edKeyPair.nitro.js +6 -0
  92. package/dist/commonjs/specs/v1/edKeyPair.nitro.js.map +1 -0
  93. package/dist/commonjs/specs/v1/hash.nitro.js +6 -0
  94. package/dist/commonjs/specs/v1/hash.nitro.js.map +1 -0
  95. package/dist/commonjs/specs/v1/hkdf.nitro.js +6 -0
  96. package/dist/commonjs/specs/v1/hkdf.nitro.js.map +1 -0
  97. package/dist/commonjs/specs/v1/hmac.nitro.js +6 -0
  98. package/dist/commonjs/specs/v1/hmac.nitro.js.map +1 -0
  99. package/dist/commonjs/specs/v1/keyObjectHandle.nitro.js +6 -0
  100. package/dist/commonjs/specs/v1/keyObjectHandle.nitro.js.map +1 -0
  101. package/dist/commonjs/specs/v1/kmac.nitro.js +6 -0
  102. package/dist/commonjs/specs/v1/kmac.nitro.js.map +1 -0
  103. package/dist/commonjs/specs/v1/mlDsaKeyPair.nitro.js +6 -0
  104. package/dist/commonjs/specs/v1/mlDsaKeyPair.nitro.js.map +1 -0
  105. package/dist/commonjs/specs/v1/mlKemKeyPair.nitro.js +6 -0
  106. package/dist/commonjs/specs/v1/mlKemKeyPair.nitro.js.map +1 -0
  107. package/dist/commonjs/specs/v1/pbkdf2.nitro.js +6 -0
  108. package/dist/commonjs/specs/v1/pbkdf2.nitro.js.map +1 -0
  109. package/dist/commonjs/specs/v1/prime.nitro.js +6 -0
  110. package/dist/commonjs/specs/v1/prime.nitro.js.map +1 -0
  111. package/dist/commonjs/specs/v1/random.nitro.js +6 -0
  112. package/dist/commonjs/specs/v1/random.nitro.js.map +1 -0
  113. package/dist/commonjs/specs/v1/rsaCipher.nitro.js +6 -0
  114. package/dist/commonjs/specs/v1/rsaCipher.nitro.js.map +1 -0
  115. package/dist/commonjs/specs/v1/rsaKeyPair.nitro.js +6 -0
  116. package/dist/commonjs/specs/v1/rsaKeyPair.nitro.js.map +1 -0
  117. package/dist/commonjs/specs/v1/scrypt.nitro.js +6 -0
  118. package/dist/commonjs/specs/v1/scrypt.nitro.js.map +1 -0
  119. package/dist/commonjs/specs/v1/sign.nitro.js +6 -0
  120. package/dist/commonjs/specs/v1/sign.nitro.js.map +1 -0
  121. package/dist/commonjs/specs/v1/utils.nitro.js +6 -0
  122. package/dist/commonjs/specs/v1/utils.nitro.js.map +1 -0
  123. package/dist/commonjs/specs/v1/x509certificate.nitro.js +6 -0
  124. package/dist/commonjs/specs/v1/x509certificate.nitro.js.map +1 -0
  125. package/dist/commonjs/subtle.js +1811 -0
  126. package/dist/commonjs/subtle.js.map +1 -0
  127. package/dist/commonjs/utils/cipher.js +64 -0
  128. package/dist/commonjs/utils/cipher.js.map +1 -0
  129. package/dist/commonjs/utils/conversion.js +181 -0
  130. package/dist/commonjs/utils/conversion.js.map +1 -0
  131. package/dist/commonjs/utils/errors.js +14 -0
  132. package/dist/commonjs/utils/errors.js.map +1 -0
  133. package/dist/commonjs/utils/hashnames.js +122 -0
  134. package/dist/commonjs/utils/hashnames.js.map +1 -0
  135. package/dist/commonjs/utils/index.js +83 -0
  136. package/dist/commonjs/utils/index.js.map +1 -0
  137. package/dist/commonjs/utils/noble.js +82 -0
  138. package/dist/commonjs/utils/noble.js.map +1 -0
  139. package/dist/commonjs/utils/timingSafeEqual.js +24 -0
  140. package/dist/commonjs/utils/timingSafeEqual.js.map +1 -0
  141. package/dist/commonjs/utils/types.js +55 -0
  142. package/dist/commonjs/utils/types.js.map +1 -0
  143. package/dist/commonjs/utils/validation.js +98 -0
  144. package/dist/commonjs/utils/validation.js.map +1 -0
  145. package/dist/commonjs/x509certificate.js +193 -0
  146. package/dist/commonjs/x509certificate.js.map +1 -0
  147. package/dist/module/argon2.js +32 -0
  148. package/dist/module/argon2.js.map +1 -0
  149. package/dist/module/blake3.js +96 -0
  150. package/dist/module/blake3.js.map +1 -0
  151. package/dist/module/certificate.js +28 -0
  152. package/dist/module/certificate.js.map +1 -0
  153. package/dist/module/cipher.js +194 -0
  154. package/dist/module/cipher.js.map +1 -0
  155. package/dist/module/constants.js +26 -0
  156. package/dist/module/constants.js.map +1 -0
  157. package/dist/module/dh-groups.js +23 -0
  158. package/dist/module/dh-groups.js.map +1 -0
  159. package/dist/module/dhKeyPair.js +104 -0
  160. package/dist/module/dhKeyPair.js.map +1 -0
  161. package/dist/module/diffie-hellman.js +147 -0
  162. package/dist/module/diffie-hellman.js.map +1 -0
  163. package/dist/module/dsa.js +87 -0
  164. package/dist/module/dsa.js.map +1 -0
  165. package/dist/module/ec.js +354 -0
  166. package/dist/module/ec.js.map +1 -0
  167. package/dist/module/ecdh.js +106 -0
  168. package/dist/module/ecdh.js.map +1 -0
  169. package/dist/module/ed.js +383 -0
  170. package/dist/module/ed.js.map +1 -0
  171. package/dist/module/expo-plugin/@types.js +2 -0
  172. package/dist/module/expo-plugin/@types.js.map +1 -0
  173. package/dist/module/expo-plugin/withRNQC.js +19 -0
  174. package/dist/module/expo-plugin/withRNQC.js.map +1 -0
  175. package/dist/module/expo-plugin/withSodiumAndroid.js +18 -0
  176. package/dist/module/expo-plugin/withSodiumAndroid.js.map +1 -0
  177. package/dist/module/expo-plugin/withSodiumIos.js +15 -0
  178. package/dist/module/expo-plugin/withSodiumIos.js.map +1 -0
  179. package/dist/module/expo-plugin/withXCode.js +44 -0
  180. package/dist/module/expo-plugin/withXCode.js.map +1 -0
  181. package/dist/module/hash.js +230 -0
  182. package/dist/module/hash.js.map +1 -0
  183. package/dist/module/hkdf.js +73 -0
  184. package/dist/module/hkdf.js.map +1 -0
  185. package/dist/module/hmac.js +114 -0
  186. package/dist/module/hmac.js.map +1 -0
  187. package/dist/module/index.js +134 -0
  188. package/dist/module/index.js.map +1 -0
  189. package/dist/module/keys/classes.js +261 -0
  190. package/dist/module/keys/classes.js.map +1 -0
  191. package/dist/module/keys/generateKeyPair.js +148 -0
  192. package/dist/module/keys/generateKeyPair.js.map +1 -0
  193. package/dist/module/keys/index.js +190 -0
  194. package/dist/module/keys/index.js.map +1 -0
  195. package/dist/module/keys/publicCipher.js +156 -0
  196. package/dist/module/keys/publicCipher.js.map +1 -0
  197. package/dist/module/keys/signVerify.js +213 -0
  198. package/dist/module/keys/signVerify.js.map +1 -0
  199. package/dist/module/keys/utils.js +112 -0
  200. package/dist/module/keys/utils.js.map +1 -0
  201. package/dist/module/mldsa.js +66 -0
  202. package/dist/module/mldsa.js.map +1 -0
  203. package/dist/module/mlkem.js +214 -0
  204. package/dist/module/mlkem.js.map +1 -0
  205. package/dist/module/pbkdf2.js +98 -0
  206. package/dist/module/pbkdf2.js.map +1 -0
  207. package/dist/module/prime.js +87 -0
  208. package/dist/module/prime.js.map +1 -0
  209. package/dist/module/random.js +220 -0
  210. package/dist/module/random.js.map +1 -0
  211. package/dist/module/rsa.js +197 -0
  212. package/dist/module/rsa.js.map +1 -0
  213. package/dist/module/scrypt.js +91 -0
  214. package/dist/module/scrypt.js.map +1 -0
  215. package/dist/module/specs/v1/NativeQuickCrypto.js +13 -0
  216. package/dist/module/specs/v1/NativeQuickCrypto.js.map +1 -0
  217. package/dist/module/specs/v1/argon2.nitro.js +2 -0
  218. package/dist/module/specs/v1/argon2.nitro.js.map +1 -0
  219. package/dist/module/specs/v1/blake3.nitro.js +2 -0
  220. package/dist/module/specs/v1/blake3.nitro.js.map +1 -0
  221. package/dist/module/specs/v1/certificate.nitro.js +2 -0
  222. package/dist/module/specs/v1/certificate.nitro.js.map +1 -0
  223. package/dist/module/specs/v1/cipher.nitro.js +2 -0
  224. package/dist/module/specs/v1/cipher.nitro.js.map +1 -0
  225. package/dist/module/specs/v1/dhKeyPair.nitro.js +2 -0
  226. package/dist/module/specs/v1/dhKeyPair.nitro.js.map +1 -0
  227. package/dist/module/specs/v1/diffie-hellman.nitro.js +2 -0
  228. package/dist/module/specs/v1/diffie-hellman.nitro.js.map +1 -0
  229. package/dist/module/specs/v1/dsaKeyPair.nitro.js +2 -0
  230. package/dist/module/specs/v1/dsaKeyPair.nitro.js.map +1 -0
  231. package/dist/module/specs/v1/ecKeyPair.nitro.js +2 -0
  232. package/dist/module/specs/v1/ecKeyPair.nitro.js.map +1 -0
  233. package/dist/module/specs/v1/ecdh.nitro.js +2 -0
  234. package/dist/module/specs/v1/ecdh.nitro.js.map +1 -0
  235. package/dist/module/specs/v1/edKeyPair.nitro.js +2 -0
  236. package/dist/module/specs/v1/edKeyPair.nitro.js.map +1 -0
  237. package/dist/module/specs/v1/hash.nitro.js +2 -0
  238. package/dist/module/specs/v1/hash.nitro.js.map +1 -0
  239. package/dist/module/specs/v1/hkdf.nitro.js +2 -0
  240. package/dist/module/specs/v1/hkdf.nitro.js.map +1 -0
  241. package/dist/module/specs/v1/hmac.nitro.js +2 -0
  242. package/dist/module/specs/v1/hmac.nitro.js.map +1 -0
  243. package/dist/module/specs/v1/keyObjectHandle.nitro.js +2 -0
  244. package/dist/module/specs/v1/keyObjectHandle.nitro.js.map +1 -0
  245. package/dist/module/specs/v1/kmac.nitro.js +2 -0
  246. package/dist/module/specs/v1/kmac.nitro.js.map +1 -0
  247. package/dist/module/specs/v1/mlDsaKeyPair.nitro.js +2 -0
  248. package/dist/module/specs/v1/mlDsaKeyPair.nitro.js.map +1 -0
  249. package/dist/module/specs/v1/mlKemKeyPair.nitro.js +2 -0
  250. package/dist/module/specs/v1/mlKemKeyPair.nitro.js.map +1 -0
  251. package/dist/module/specs/v1/pbkdf2.nitro.js +2 -0
  252. package/dist/module/specs/v1/pbkdf2.nitro.js.map +1 -0
  253. package/dist/module/specs/v1/prime.nitro.js +2 -0
  254. package/dist/module/specs/v1/prime.nitro.js.map +1 -0
  255. package/dist/module/specs/v1/random.nitro.js +2 -0
  256. package/dist/module/specs/v1/random.nitro.js.map +1 -0
  257. package/dist/module/specs/v1/rsaCipher.nitro.js +2 -0
  258. package/dist/module/specs/v1/rsaCipher.nitro.js.map +1 -0
  259. package/dist/module/specs/v1/rsaKeyPair.nitro.js +2 -0
  260. package/dist/module/specs/v1/rsaKeyPair.nitro.js.map +1 -0
  261. package/dist/module/specs/v1/scrypt.nitro.js +2 -0
  262. package/dist/module/specs/v1/scrypt.nitro.js.map +1 -0
  263. package/dist/module/specs/v1/sign.nitro.js +2 -0
  264. package/dist/module/specs/v1/sign.nitro.js.map +1 -0
  265. package/dist/module/specs/v1/utils.nitro.js +2 -0
  266. package/dist/module/specs/v1/utils.nitro.js.map +1 -0
  267. package/dist/module/specs/v1/x509certificate.nitro.js +2 -0
  268. package/dist/module/specs/v1/x509certificate.nitro.js.map +1 -0
  269. package/dist/module/subtle.js +1803 -0
  270. package/dist/module/subtle.js.map +1 -0
  271. package/dist/module/utils/cipher.js +54 -0
  272. package/dist/module/utils/cipher.js.map +1 -0
  273. package/dist/module/utils/conversion.js +146 -0
  274. package/dist/module/utils/conversion.js.map +1 -0
  275. package/dist/module/utils/errors.js +8 -0
  276. package/dist/module/utils/errors.js.map +1 -0
  277. package/dist/module/utils/hashnames.js +118 -0
  278. package/dist/module/utils/hashnames.js.map +1 -0
  279. package/dist/module/utils/index.js +8 -0
  280. package/dist/module/utils/index.js.map +1 -0
  281. package/dist/module/utils/noble.js +74 -0
  282. package/dist/module/utils/noble.js.map +1 -0
  283. package/dist/module/utils/timingSafeEqual.js +18 -0
  284. package/dist/module/utils/timingSafeEqual.js.map +1 -0
  285. package/dist/module/utils/types.js +55 -0
  286. package/dist/module/utils/types.js.map +1 -0
  287. package/dist/module/utils/validation.js +85 -0
  288. package/dist/module/utils/validation.js.map +1 -0
  289. package/dist/module/x509certificate.js +186 -0
  290. package/dist/module/x509certificate.js.map +1 -0
  291. package/dist/typescript/argon2.d.ts +15 -0
  292. package/dist/typescript/blake3.d.ts +32 -0
  293. package/dist/typescript/certificate.d.ts +7 -0
  294. package/dist/typescript/cipher.d.ts +74 -0
  295. package/dist/typescript/constants.d.ts +20 -0
  296. package/dist/typescript/dh-groups.d.ts +4 -0
  297. package/dist/typescript/dhKeyPair.d.ts +18 -0
  298. package/dist/typescript/diffie-hellman.d.ts +17 -0
  299. package/dist/typescript/dsa.d.ts +18 -0
  300. package/dist/typescript/ec.d.ts +23 -0
  301. package/dist/typescript/ecdh.d.ts +18 -0
  302. package/dist/typescript/ed.d.ts +46 -0
  303. package/dist/typescript/hash.d.ts +125 -0
  304. package/dist/typescript/hkdf.d.ts +21 -0
  305. package/dist/typescript/hmac.d.ts +65 -0
  306. package/dist/typescript/index.d.ts +224 -0
  307. package/dist/typescript/keys/classes.d.ts +85 -0
  308. package/dist/typescript/keys/generateKeyPair.d.ts +5 -0
  309. package/dist/typescript/keys/index.d.ts +23 -0
  310. package/dist/typescript/keys/publicCipher.d.ts +22 -0
  311. package/dist/typescript/keys/signVerify.d.ts +34 -0
  312. package/dist/typescript/keys/utils.d.ts +33 -0
  313. package/dist/typescript/mldsa.d.ts +17 -0
  314. package/dist/typescript/mlkem.d.ts +29 -0
  315. package/dist/typescript/pbkdf2.d.ts +11 -0
  316. package/dist/typescript/prime.d.ts +18 -0
  317. package/dist/typescript/random.d.ts +26 -0
  318. package/dist/typescript/rsa.d.ts +19 -0
  319. package/dist/typescript/scrypt.d.ts +17 -0
  320. package/dist/typescript/specs/v1/NativeQuickCrypto.d.ts +17 -0
  321. package/dist/typescript/specs/v1/argon2.nitro.d.ts +8 -0
  322. package/dist/typescript/specs/v1/blake3.nitro.d.ts +14 -0
  323. package/dist/typescript/specs/v1/certificate.nitro.d.ts +9 -0
  324. package/dist/typescript/specs/v1/cipher.nitro.d.ts +37 -0
  325. package/dist/typescript/specs/v1/dhKeyPair.nitro.d.ts +13 -0
  326. package/dist/typescript/specs/v1/diffie-hellman.nitro.d.ts +17 -0
  327. package/dist/typescript/specs/v1/dsaKeyPair.nitro.d.ts +12 -0
  328. package/dist/typescript/specs/v1/ecKeyPair.nitro.d.ts +20 -0
  329. package/dist/typescript/specs/v1/ecdh.nitro.d.ts +14 -0
  330. package/dist/typescript/specs/v1/edKeyPair.nitro.d.ts +16 -0
  331. package/dist/typescript/specs/v1/hash.nitro.d.ts +12 -0
  332. package/dist/typescript/specs/v1/hkdf.nitro.d.ts +8 -0
  333. package/dist/typescript/specs/v1/hmac.nitro.d.ts +9 -0
  334. package/dist/typescript/specs/v1/keyObjectHandle.nitro.d.ts +17 -0
  335. package/dist/typescript/specs/v1/kmac.nitro.d.ts +9 -0
  336. package/dist/typescript/specs/v1/mlDsaKeyPair.nitro.d.ts +15 -0
  337. package/dist/typescript/specs/v1/mlKemKeyPair.nitro.d.ts +17 -0
  338. package/dist/typescript/specs/v1/pbkdf2.nitro.d.ts +8 -0
  339. package/dist/typescript/specs/v1/prime.nitro.d.ts +10 -0
  340. package/dist/typescript/specs/v1/random.nitro.d.ts +8 -0
  341. package/dist/typescript/specs/v1/rsaCipher.nitro.d.ts +53 -0
  342. package/dist/typescript/specs/v1/rsaKeyPair.nitro.d.ts +19 -0
  343. package/dist/typescript/specs/v1/scrypt.nitro.d.ts +8 -0
  344. package/dist/typescript/specs/v1/sign.nitro.d.ts +18 -0
  345. package/dist/typescript/specs/v1/utils.nitro.d.ts +9 -0
  346. package/dist/typescript/specs/v1/x509certificate.nitro.d.ts +33 -0
  347. package/dist/typescript/subtle.d.ts +31 -0
  348. package/dist/typescript/utils/cipher.d.ts +6 -0
  349. package/dist/typescript/utils/conversion.d.ts +29 -0
  350. package/dist/typescript/utils/errors.d.ts +6 -0
  351. package/dist/typescript/utils/hashnames.d.ts +12 -0
  352. package/dist/typescript/utils/index.d.ts +7 -0
  353. package/dist/typescript/utils/noble.d.ts +18 -0
  354. package/dist/typescript/utils/timingSafeEqual.d.ts +2 -0
  355. package/dist/typescript/utils/types.d.ts +294 -0
  356. package/dist/typescript/utils/validation.d.ts +12 -0
  357. package/dist/typescript/x509certificate.d.ts +63 -0
  358. package/harmony/quick_crypto/LICENSE +21 -0
  359. package/harmony/quick_crypto/NOTICE +33 -0
  360. package/harmony/quick_crypto/OAT.xml +38 -0
  361. package/harmony/quick_crypto/build-profile.json5 +16 -0
  362. package/harmony/quick_crypto/deps/blake3/blake3.c +650 -0
  363. package/harmony/quick_crypto/deps/blake3/blake3.h +86 -0
  364. package/harmony/quick_crypto/deps/blake3/blake3_avx2.c +326 -0
  365. package/harmony/quick_crypto/deps/blake3/blake3_avx512.c +1388 -0
  366. package/harmony/quick_crypto/deps/blake3/blake3_dispatch.c +332 -0
  367. package/harmony/quick_crypto/deps/blake3/blake3_impl.h +333 -0
  368. package/harmony/quick_crypto/deps/blake3/blake3_neon.c +366 -0
  369. package/harmony/quick_crypto/deps/blake3/blake3_portable.c +160 -0
  370. package/harmony/quick_crypto/deps/blake3/blake3_sse2.c +566 -0
  371. package/harmony/quick_crypto/deps/blake3/blake3_sse41.c +560 -0
  372. package/harmony/quick_crypto/deps/blake3/example.c +36 -0
  373. package/harmony/quick_crypto/deps/blake3/example_tbb.c +57 -0
  374. package/harmony/quick_crypto/deps/blake3/main.c +166 -0
  375. package/harmony/quick_crypto/deps/fastpbkdf2/fastpbkdf2.c +356 -0
  376. package/harmony/quick_crypto/deps/fastpbkdf2/fastpbkdf2.h +68 -0
  377. package/harmony/quick_crypto/deps/ncrypto/include/dh-primes.h +67 -0
  378. package/harmony/quick_crypto/deps/ncrypto/include/ncrypto/aead.h +137 -0
  379. package/harmony/quick_crypto/deps/ncrypto/include/ncrypto/version.h +14 -0
  380. package/harmony/quick_crypto/deps/ncrypto/include/ncrypto.h +1752 -0
  381. package/harmony/quick_crypto/deps/ncrypto/src/aead.cpp +302 -0
  382. package/harmony/quick_crypto/deps/ncrypto/src/engine.cpp +93 -0
  383. package/harmony/quick_crypto/deps/ncrypto/src/ncrypto.cpp +5331 -0
  384. package/harmony/quick_crypto/deps/simdutf/include/simdutf/avx512.h +79 -0
  385. package/harmony/quick_crypto/deps/simdutf/include/simdutf/base64_implementation.h +158 -0
  386. package/harmony/quick_crypto/deps/simdutf/include/simdutf/base64_tables.h +887 -0
  387. package/harmony/quick_crypto/deps/simdutf/include/simdutf/common_defs.h +186 -0
  388. package/harmony/quick_crypto/deps/simdutf/include/simdutf/compiler_check.h +50 -0
  389. package/harmony/quick_crypto/deps/simdutf/include/simdutf/constexpr_ptr.h +138 -0
  390. package/harmony/quick_crypto/deps/simdutf/include/simdutf/encoding_types.h +189 -0
  391. package/harmony/quick_crypto/deps/simdutf/include/simdutf/error.h +126 -0
  392. package/harmony/quick_crypto/deps/simdutf/include/simdutf/implementation.h +7081 -0
  393. package/harmony/quick_crypto/deps/simdutf/include/simdutf/internal/isadetection.h +325 -0
  394. package/harmony/quick_crypto/deps/simdutf/include/simdutf/portability.h +285 -0
  395. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/ascii.h +86 -0
  396. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/atomic_util.h +105 -0
  397. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/base64.h +911 -0
  398. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/latin1.h +26 -0
  399. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/latin1_to_utf16/latin1_to_utf16.h +52 -0
  400. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/latin1_to_utf32/latin1_to_utf32.h +27 -0
  401. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/latin1_to_utf8/latin1_to_utf8.h +191 -0
  402. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/swap_bytes.h +35 -0
  403. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf16.h +226 -0
  404. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf16_to_latin1/utf16_to_latin1.h +108 -0
  405. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf16_to_latin1/valid_utf16_to_latin1.h +40 -0
  406. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf16_to_utf32/utf16_to_utf32.h +86 -0
  407. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf16_to_utf32/valid_utf16_to_utf32.h +44 -0
  408. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf16_to_utf8/utf16_to_utf8.h +295 -0
  409. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf16_to_utf8/valid_utf16_to_utf8.h +91 -0
  410. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf32.h +82 -0
  411. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf32_to_latin1/utf32_to_latin1.h +68 -0
  412. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf32_to_latin1/valid_utf32_to_latin1.h +67 -0
  413. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf32_to_utf16/utf32_to_utf16.h +84 -0
  414. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf32_to_utf16/valid_utf32_to_utf16.h +44 -0
  415. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf32_to_utf8/utf32_to_utf8.h +142 -0
  416. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf32_to_utf8/valid_utf32_to_utf8.h +72 -0
  417. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf8.h +326 -0
  418. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf8_to_latin1/utf8_to_latin1.h +225 -0
  419. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf8_to_latin1/valid_utf8_to_latin1.h +87 -0
  420. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf8_to_utf16/utf8_to_utf16.h +342 -0
  421. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf8_to_utf16/valid_utf8_to_utf16.h +106 -0
  422. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf8_to_utf32/utf8_to_utf32.h +299 -0
  423. package/harmony/quick_crypto/deps/simdutf/include/simdutf/scalar/utf8_to_utf32/valid_utf8_to_utf32.h +83 -0
  424. package/harmony/quick_crypto/deps/simdutf/include/simdutf/simdutf_version.h +26 -0
  425. package/harmony/quick_crypto/deps/simdutf/include/simdutf.h +26 -0
  426. package/harmony/quick_crypto/deps/simdutf/include/simdutf_c.h +342 -0
  427. package/harmony/quick_crypto/deps/simdutf/src/CMakeLists.txt +78 -0
  428. package/harmony/quick_crypto/deps/simdutf/src/arm64/arm_base64.cpp +791 -0
  429. package/harmony/quick_crypto/deps/simdutf/src/arm64/arm_convert_latin1_to_utf16.cpp +24 -0
  430. package/harmony/quick_crypto/deps/simdutf/src/arm64/arm_convert_latin1_to_utf32.cpp +24 -0
  431. package/harmony/quick_crypto/deps/simdutf/src/arm64/arm_convert_latin1_to_utf8.cpp +70 -0
  432. package/harmony/quick_crypto/deps/simdutf/src/arm64/arm_convert_utf16_to_latin1.cpp +61 -0
  433. package/harmony/quick_crypto/deps/simdutf/src/arm64/arm_convert_utf16_to_utf32.cpp +185 -0
  434. package/harmony/quick_crypto/deps/simdutf/src/arm64/arm_convert_utf16_to_utf8.cpp +780 -0
  435. package/harmony/quick_crypto/deps/simdutf/src/arm64/arm_convert_utf32_to_latin1.cpp +60 -0
  436. package/harmony/quick_crypto/deps/simdutf/src/arm64/arm_convert_utf32_to_utf16.cpp +208 -0
  437. package/harmony/quick_crypto/deps/simdutf/src/arm64/arm_convert_utf32_to_utf8.cpp +505 -0
  438. package/harmony/quick_crypto/deps/simdutf/src/arm64/arm_convert_utf8_to_latin1.cpp +69 -0
  439. package/harmony/quick_crypto/deps/simdutf/src/arm64/arm_convert_utf8_to_utf16.cpp +313 -0
  440. package/harmony/quick_crypto/deps/simdutf/src/arm64/arm_convert_utf8_to_utf32.cpp +179 -0
  441. package/harmony/quick_crypto/deps/simdutf/src/arm64/arm_find.cpp +199 -0
  442. package/harmony/quick_crypto/deps/simdutf/src/arm64/arm_utf16fix.cpp +185 -0
  443. package/harmony/quick_crypto/deps/simdutf/src/arm64/arm_validate_utf16.cpp +165 -0
  444. package/harmony/quick_crypto/deps/simdutf/src/arm64/arm_validate_utf32le.cpp +65 -0
  445. package/harmony/quick_crypto/deps/simdutf/src/arm64/implementation.cpp +1442 -0
  446. package/harmony/quick_crypto/deps/simdutf/src/encoding_types.cpp +67 -0
  447. package/harmony/quick_crypto/deps/simdutf/src/error.cpp +3 -0
  448. package/harmony/quick_crypto/deps/simdutf/src/fallback/implementation.cpp +589 -0
  449. package/harmony/quick_crypto/deps/simdutf/src/generic/ascii_validation.h +50 -0
  450. package/harmony/quick_crypto/deps/simdutf/src/generic/base64.h +233 -0
  451. package/harmony/quick_crypto/deps/simdutf/src/generic/base64lengths.h +63 -0
  452. package/harmony/quick_crypto/deps/simdutf/src/generic/buf_block_reader.h +109 -0
  453. package/harmony/quick_crypto/deps/simdutf/src/generic/find.h +75 -0
  454. package/harmony/quick_crypto/deps/simdutf/src/generic/utf16/change_endianness.h +24 -0
  455. package/harmony/quick_crypto/deps/simdutf/src/generic/utf16/count_code_points_bytemask.h +58 -0
  456. package/harmony/quick_crypto/deps/simdutf/src/generic/utf16/to_well_formed.h +93 -0
  457. package/harmony/quick_crypto/deps/simdutf/src/generic/utf16/utf32_length_from_utf16.h +15 -0
  458. package/harmony/quick_crypto/deps/simdutf/src/generic/utf16/utf8_length_from_utf16.h +35 -0
  459. package/harmony/quick_crypto/deps/simdutf/src/generic/utf16/utf8_length_from_utf16_bytemask.h +199 -0
  460. package/harmony/quick_crypto/deps/simdutf/src/generic/utf16.h +73 -0
  461. package/harmony/quick_crypto/deps/simdutf/src/generic/utf32.h +136 -0
  462. package/harmony/quick_crypto/deps/simdutf/src/generic/utf8/utf16_length_from_utf8_bytemask.h +53 -0
  463. package/harmony/quick_crypto/deps/simdutf/src/generic/utf8.h +92 -0
  464. package/harmony/quick_crypto/deps/simdutf/src/generic/utf8_to_latin1/utf8_to_latin1.h +316 -0
  465. package/harmony/quick_crypto/deps/simdutf/src/generic/utf8_to_latin1/valid_utf8_to_latin1.h +78 -0
  466. package/harmony/quick_crypto/deps/simdutf/src/generic/utf8_to_utf16/utf8_to_utf16.h +332 -0
  467. package/harmony/quick_crypto/deps/simdutf/src/generic/utf8_to_utf16/valid_utf8_to_utf16.h +74 -0
  468. package/harmony/quick_crypto/deps/simdutf/src/generic/utf8_to_utf32/utf8_to_utf32.h +318 -0
  469. package/harmony/quick_crypto/deps/simdutf/src/generic/utf8_to_utf32/valid_utf8_to_utf32.h +42 -0
  470. package/harmony/quick_crypto/deps/simdutf/src/generic/utf8_validation/utf8_lookup4_algorithm.h +223 -0
  471. package/harmony/quick_crypto/deps/simdutf/src/generic/utf8_validation/utf8_validator.h +84 -0
  472. package/harmony/quick_crypto/deps/simdutf/src/generic/validate_utf16.h +164 -0
  473. package/harmony/quick_crypto/deps/simdutf/src/generic/validate_utf32.h +99 -0
  474. package/harmony/quick_crypto/deps/simdutf/src/haswell/avx2_base64.cpp +837 -0
  475. package/harmony/quick_crypto/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf16.cpp +28 -0
  476. package/harmony/quick_crypto/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf32.cpp +20 -0
  477. package/harmony/quick_crypto/deps/simdutf/src/haswell/avx2_convert_latin1_to_utf8.cpp +83 -0
  478. package/harmony/quick_crypto/deps/simdutf/src/haswell/avx2_convert_utf16_to_latin1.cpp +83 -0
  479. package/harmony/quick_crypto/deps/simdutf/src/haswell/avx2_convert_utf16_to_utf32.cpp +210 -0
  480. package/harmony/quick_crypto/deps/simdutf/src/haswell/avx2_convert_utf16_to_utf8.cpp +602 -0
  481. package/harmony/quick_crypto/deps/simdutf/src/haswell/avx2_convert_utf32_to_latin1.cpp +116 -0
  482. package/harmony/quick_crypto/deps/simdutf/src/haswell/avx2_convert_utf32_to_utf16.cpp +164 -0
  483. package/harmony/quick_crypto/deps/simdutf/src/haswell/avx2_convert_utf32_to_utf8.cpp +569 -0
  484. package/harmony/quick_crypto/deps/simdutf/src/haswell/avx2_convert_utf8_to_latin1.cpp +60 -0
  485. package/harmony/quick_crypto/deps/simdutf/src/haswell/avx2_convert_utf8_to_utf16.cpp +195 -0
  486. package/harmony/quick_crypto/deps/simdutf/src/haswell/avx2_convert_utf8_to_utf32.cpp +135 -0
  487. package/harmony/quick_crypto/deps/simdutf/src/haswell/avx2_utf16fix.cpp +173 -0
  488. package/harmony/quick_crypto/deps/simdutf/src/haswell/avx2_validate_utf16.cpp +17 -0
  489. package/harmony/quick_crypto/deps/simdutf/src/haswell/implementation.cpp +1447 -0
  490. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_ascii_validation.inl.cpp +19 -0
  491. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_base64.inl.cpp +630 -0
  492. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_common.inl.cpp +37 -0
  493. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf16.inl.cpp +36 -0
  494. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf32.inl.cpp +23 -0
  495. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_convert_latin1_to_utf8.inl.cpp +107 -0
  496. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_convert_utf16_to_latin1.inl.cpp +103 -0
  497. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_convert_utf16_to_utf32.inl.cpp +136 -0
  498. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_convert_utf16_to_utf8.inl.cpp +206 -0
  499. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_convert_utf32_to_latin1.inl.cpp +74 -0
  500. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_convert_utf32_to_utf16.inl.cpp +338 -0
  501. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_convert_utf32_to_utf8.inl.cpp +574 -0
  502. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_convert_utf8_to_latin1.inl.cpp +104 -0
  503. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_convert_utf8_to_utf16.inl.cpp +75 -0
  504. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_convert_valid_utf8_to_latin1.inl.cpp +69 -0
  505. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_find.inl.cpp +146 -0
  506. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_from_utf8.inl.cpp +266 -0
  507. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_from_valid_utf8.inl.cpp +136 -0
  508. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_macros.inl.cpp +143 -0
  509. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_utf16fix.cpp +138 -0
  510. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_utf32_validation.inl.cpp +63 -0
  511. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_utf8_common.inl.cpp +753 -0
  512. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_utf8_length_from_utf16.inl.cpp +269 -0
  513. package/harmony/quick_crypto/deps/simdutf/src/icelake/icelake_utf8_validation.inl.cpp +116 -0
  514. package/harmony/quick_crypto/deps/simdutf/src/icelake/implementation.cpp +1903 -0
  515. package/harmony/quick_crypto/deps/simdutf/src/implementation.cpp +2526 -0
  516. package/harmony/quick_crypto/deps/simdutf/src/lasx/implementation.cpp +1531 -0
  517. package/harmony/quick_crypto/deps/simdutf/src/lasx/lasx_base64.cpp +695 -0
  518. package/harmony/quick_crypto/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf16.cpp +76 -0
  519. package/harmony/quick_crypto/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf32.cpp +55 -0
  520. package/harmony/quick_crypto/deps/simdutf/src/lasx/lasx_convert_latin1_to_utf8.cpp +65 -0
  521. package/harmony/quick_crypto/deps/simdutf/src/lasx/lasx_convert_utf16_to_latin1.cpp +64 -0
  522. package/harmony/quick_crypto/deps/simdutf/src/lasx/lasx_convert_utf16_to_utf32.cpp +183 -0
  523. package/harmony/quick_crypto/deps/simdutf/src/lasx/lasx_convert_utf16_to_utf8.cpp +550 -0
  524. package/harmony/quick_crypto/deps/simdutf/src/lasx/lasx_convert_utf32_to_latin1.cpp +73 -0
  525. package/harmony/quick_crypto/deps/simdutf/src/lasx/lasx_convert_utf32_to_utf16.cpp +218 -0
  526. package/harmony/quick_crypto/deps/simdutf/src/lasx/lasx_convert_utf32_to_utf8.cpp +589 -0
  527. package/harmony/quick_crypto/deps/simdutf/src/lasx/lasx_convert_utf8_to_latin1.cpp +72 -0
  528. package/harmony/quick_crypto/deps/simdutf/src/lasx/lasx_convert_utf8_to_utf16.cpp +296 -0
  529. package/harmony/quick_crypto/deps/simdutf/src/lasx/lasx_convert_utf8_to_utf32.cpp +190 -0
  530. package/harmony/quick_crypto/deps/simdutf/src/lasx/lasx_find.cpp +64 -0
  531. package/harmony/quick_crypto/deps/simdutf/src/lasx/lasx_validate_utf16.cpp +13 -0
  532. package/harmony/quick_crypto/deps/simdutf/src/lasx/lasx_validate_utf32le.cpp +84 -0
  533. package/harmony/quick_crypto/deps/simdutf/src/lsx/implementation.cpp +1417 -0
  534. package/harmony/quick_crypto/deps/simdutf/src/lsx/lsx_base64.cpp +675 -0
  535. package/harmony/quick_crypto/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf16.cpp +39 -0
  536. package/harmony/quick_crypto/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf32.cpp +27 -0
  537. package/harmony/quick_crypto/deps/simdutf/src/lsx/lsx_convert_latin1_to_utf8.cpp +56 -0
  538. package/harmony/quick_crypto/deps/simdutf/src/lsx/lsx_convert_utf16_to_latin1.cpp +64 -0
  539. package/harmony/quick_crypto/deps/simdutf/src/lsx/lsx_convert_utf16_to_utf32.cpp +133 -0
  540. package/harmony/quick_crypto/deps/simdutf/src/lsx/lsx_convert_utf16_to_utf8.cpp +518 -0
  541. package/harmony/quick_crypto/deps/simdutf/src/lsx/lsx_convert_utf32_to_latin1.cpp +66 -0
  542. package/harmony/quick_crypto/deps/simdutf/src/lsx/lsx_convert_utf32_to_utf16.cpp +155 -0
  543. package/harmony/quick_crypto/deps/simdutf/src/lsx/lsx_convert_utf32_to_utf8.cpp +459 -0
  544. package/harmony/quick_crypto/deps/simdutf/src/lsx/lsx_convert_utf8_to_latin1.cpp +75 -0
  545. package/harmony/quick_crypto/deps/simdutf/src/lsx/lsx_convert_utf8_to_utf16.cpp +291 -0
  546. package/harmony/quick_crypto/deps/simdutf/src/lsx/lsx_convert_utf8_to_utf32.cpp +179 -0
  547. package/harmony/quick_crypto/deps/simdutf/src/lsx/lsx_find.cpp +60 -0
  548. package/harmony/quick_crypto/deps/simdutf/src/lsx/lsx_validate_utf16.cpp +13 -0
  549. package/harmony/quick_crypto/deps/simdutf/src/lsx/lsx_validate_utf32le.cpp +68 -0
  550. package/harmony/quick_crypto/deps/simdutf/src/ppc64/implementation.cpp +992 -0
  551. package/harmony/quick_crypto/deps/simdutf/src/ppc64/ppc64_base64.cpp +480 -0
  552. package/harmony/quick_crypto/deps/simdutf/src/ppc64/ppc64_base64_internal_tests.cpp +401 -0
  553. package/harmony/quick_crypto/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf16.cpp +12 -0
  554. package/harmony/quick_crypto/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf32.cpp +12 -0
  555. package/harmony/quick_crypto/deps/simdutf/src/ppc64/ppc64_convert_latin1_to_utf8.cpp +149 -0
  556. package/harmony/quick_crypto/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_latin1.cpp +67 -0
  557. package/harmony/quick_crypto/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_utf32.cpp +87 -0
  558. package/harmony/quick_crypto/deps/simdutf/src/ppc64/ppc64_convert_utf16_to_utf8.cpp +296 -0
  559. package/harmony/quick_crypto/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_latin1.cpp +57 -0
  560. package/harmony/quick_crypto/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_utf16.cpp +117 -0
  561. package/harmony/quick_crypto/deps/simdutf/src/ppc64/ppc64_convert_utf32_to_utf8.cpp +166 -0
  562. package/harmony/quick_crypto/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_latin1.cpp +69 -0
  563. package/harmony/quick_crypto/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_utf16.cpp +211 -0
  564. package/harmony/quick_crypto/deps/simdutf/src/ppc64/ppc64_convert_utf8_to_utf32.cpp +153 -0
  565. package/harmony/quick_crypto/deps/simdutf/src/ppc64/ppc64_utf16_to_utf8_tables.h +1011 -0
  566. package/harmony/quick_crypto/deps/simdutf/src/ppc64/ppc64_utf8_length_from_latin1.cpp +37 -0
  567. package/harmony/quick_crypto/deps/simdutf/src/ppc64/ppc64_validate_utf16.cpp +19 -0
  568. package/harmony/quick_crypto/deps/simdutf/src/ppc64/templates.cpp +91 -0
  569. package/harmony/quick_crypto/deps/simdutf/src/rvv/implementation.cpp +138 -0
  570. package/harmony/quick_crypto/deps/simdutf/src/rvv/rvv_find.cpp +27 -0
  571. package/harmony/quick_crypto/deps/simdutf/src/rvv/rvv_helpers.inl.cpp +23 -0
  572. package/harmony/quick_crypto/deps/simdutf/src/rvv/rvv_latin1_to.inl.cpp +71 -0
  573. package/harmony/quick_crypto/deps/simdutf/src/rvv/rvv_length_from.inl.cpp +164 -0
  574. package/harmony/quick_crypto/deps/simdutf/src/rvv/rvv_utf16_to.inl.cpp +399 -0
  575. package/harmony/quick_crypto/deps/simdutf/src/rvv/rvv_utf16fix.cpp +110 -0
  576. package/harmony/quick_crypto/deps/simdutf/src/rvv/rvv_utf32_to.inl.cpp +307 -0
  577. package/harmony/quick_crypto/deps/simdutf/src/rvv/rvv_utf8_to.inl.cpp +435 -0
  578. package/harmony/quick_crypto/deps/simdutf/src/rvv/rvv_validate.inl.cpp +275 -0
  579. package/harmony/quick_crypto/deps/simdutf/src/simdutf/arm64/begin.h +2 -0
  580. package/harmony/quick_crypto/deps/simdutf/src/simdutf/arm64/bitmanipulation.h +34 -0
  581. package/harmony/quick_crypto/deps/simdutf/src/simdutf/arm64/end.h +2 -0
  582. package/harmony/quick_crypto/deps/simdutf/src/simdutf/arm64/implementation.h +307 -0
  583. package/harmony/quick_crypto/deps/simdutf/src/simdutf/arm64/intrinsics.h +10 -0
  584. package/harmony/quick_crypto/deps/simdutf/src/simdutf/arm64/simd.h +547 -0
  585. package/harmony/quick_crypto/deps/simdutf/src/simdutf/arm64/simd16-inl.h +403 -0
  586. package/harmony/quick_crypto/deps/simdutf/src/simdutf/arm64/simd32-inl.h +129 -0
  587. package/harmony/quick_crypto/deps/simdutf/src/simdutf/arm64/simd64-inl.h +28 -0
  588. package/harmony/quick_crypto/deps/simdutf/src/simdutf/arm64.h +43 -0
  589. package/harmony/quick_crypto/deps/simdutf/src/simdutf/fallback/begin.h +1 -0
  590. package/harmony/quick_crypto/deps/simdutf/src/simdutf/fallback/bitmanipulation.h +13 -0
  591. package/harmony/quick_crypto/deps/simdutf/src/simdutf/fallback/end.h +1 -0
  592. package/harmony/quick_crypto/deps/simdutf/src/simdutf/fallback/implementation.h +331 -0
  593. package/harmony/quick_crypto/deps/simdutf/src/simdutf/fallback.h +42 -0
  594. package/harmony/quick_crypto/deps/simdutf/src/simdutf/haswell/begin.h +15 -0
  595. package/harmony/quick_crypto/deps/simdutf/src/simdutf/haswell/bitmanipulation.h +35 -0
  596. package/harmony/quick_crypto/deps/simdutf/src/simdutf/haswell/end.h +13 -0
  597. package/harmony/quick_crypto/deps/simdutf/src/simdutf/haswell/implementation.h +338 -0
  598. package/harmony/quick_crypto/deps/simdutf/src/simdutf/haswell/intrinsics.h +67 -0
  599. package/harmony/quick_crypto/deps/simdutf/src/simdutf/haswell/simd.h +363 -0
  600. package/harmony/quick_crypto/deps/simdutf/src/simdutf/haswell/simd16-inl.h +261 -0
  601. package/harmony/quick_crypto/deps/simdutf/src/simdutf/haswell/simd32-inl.h +111 -0
  602. package/harmony/quick_crypto/deps/simdutf/src/simdutf/haswell/simd64-inl.h +34 -0
  603. package/harmony/quick_crypto/deps/simdutf/src/simdutf/haswell.h +63 -0
  604. package/harmony/quick_crypto/deps/simdutf/src/simdutf/icelake/begin.h +14 -0
  605. package/harmony/quick_crypto/deps/simdutf/src/simdutf/icelake/bitmanipulation.h +44 -0
  606. package/harmony/quick_crypto/deps/simdutf/src/simdutf/icelake/end.h +12 -0
  607. package/harmony/quick_crypto/deps/simdutf/src/simdutf/icelake/implementation.h +346 -0
  608. package/harmony/quick_crypto/deps/simdutf/src/simdutf/icelake/intrinsics.h +138 -0
  609. package/harmony/quick_crypto/deps/simdutf/src/simdutf/icelake/simd.h +17 -0
  610. package/harmony/quick_crypto/deps/simdutf/src/simdutf/icelake/simd16-inl.h +90 -0
  611. package/harmony/quick_crypto/deps/simdutf/src/simdutf/icelake/simd32-inl.h +47 -0
  612. package/harmony/quick_crypto/deps/simdutf/src/simdutf/icelake.h +81 -0
  613. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lasx/begin.h +8 -0
  614. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lasx/bitmanipulation.h +25 -0
  615. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lasx/end.h +8 -0
  616. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lasx/implementation.h +310 -0
  617. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lasx/intrinsics.h +319 -0
  618. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lasx/simd.h +551 -0
  619. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lasx/simd16-inl.h +234 -0
  620. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lasx/simd32-inl.h +74 -0
  621. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lasx/simd64-inl.h +52 -0
  622. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lasx.h +49 -0
  623. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lsx/begin.h +2 -0
  624. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lsx/bitmanipulation.h +25 -0
  625. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lsx/end.h +2 -0
  626. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lsx/implementation.h +309 -0
  627. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lsx/intrinsics.h +196 -0
  628. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lsx/simd.h +421 -0
  629. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lsx/simd16-inl.h +242 -0
  630. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lsx/simd32-inl.h +69 -0
  631. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lsx/simd64-inl.h +50 -0
  632. package/harmony/quick_crypto/deps/simdutf/src/simdutf/lsx.h +52 -0
  633. package/harmony/quick_crypto/deps/simdutf/src/simdutf/ppc64/begin.h +1 -0
  634. package/harmony/quick_crypto/deps/simdutf/src/simdutf/ppc64/bitmanipulation.h +29 -0
  635. package/harmony/quick_crypto/deps/simdutf/src/simdutf/ppc64/end.h +1 -0
  636. package/harmony/quick_crypto/deps/simdutf/src/simdutf/ppc64/implementation.h +348 -0
  637. package/harmony/quick_crypto/deps/simdutf/src/simdutf/ppc64/intrinsics.h +19 -0
  638. package/harmony/quick_crypto/deps/simdutf/src/simdutf/ppc64/simd.h +177 -0
  639. package/harmony/quick_crypto/deps/simdutf/src/simdutf/ppc64/simd16-inl.h +327 -0
  640. package/harmony/quick_crypto/deps/simdutf/src/simdutf/ppc64/simd32-inl.h +247 -0
  641. package/harmony/quick_crypto/deps/simdutf/src/simdutf/ppc64/simd8-inl.h +618 -0
  642. package/harmony/quick_crypto/deps/simdutf/src/simdutf/ppc64.h +40 -0
  643. package/harmony/quick_crypto/deps/simdutf/src/simdutf/rvv/begin.h +7 -0
  644. package/harmony/quick_crypto/deps/simdutf/src/simdutf/rvv/end.h +7 -0
  645. package/harmony/quick_crypto/deps/simdutf/src/simdutf/rvv/implementation.h +321 -0
  646. package/harmony/quick_crypto/deps/simdutf/src/simdutf/rvv/intrinsics.h +131 -0
  647. package/harmony/quick_crypto/deps/simdutf/src/simdutf/rvv.h +41 -0
  648. package/harmony/quick_crypto/deps/simdutf/src/simdutf/westmere/begin.h +8 -0
  649. package/harmony/quick_crypto/deps/simdutf/src/simdutf/westmere/bitmanipulation.h +37 -0
  650. package/harmony/quick_crypto/deps/simdutf/src/simdutf/westmere/end.h +8 -0
  651. package/harmony/quick_crypto/deps/simdutf/src/simdutf/westmere/implementation.h +338 -0
  652. package/harmony/quick_crypto/deps/simdutf/src/simdutf/westmere/intrinsics.h +38 -0
  653. package/harmony/quick_crypto/deps/simdutf/src/simdutf/westmere/simd.h +379 -0
  654. package/harmony/quick_crypto/deps/simdutf/src/simdutf/westmere/simd16-inl.h +242 -0
  655. package/harmony/quick_crypto/deps/simdutf/src/simdutf/westmere/simd32-inl.h +151 -0
  656. package/harmony/quick_crypto/deps/simdutf/src/simdutf/westmere/simd64-inl.h +33 -0
  657. package/harmony/quick_crypto/deps/simdutf/src/simdutf/westmere.h +59 -0
  658. package/harmony/quick_crypto/deps/simdutf/src/simdutf.cpp +152 -0
  659. package/harmony/quick_crypto/deps/simdutf/src/simdutf_c.cpp +525 -0
  660. package/harmony/quick_crypto/deps/simdutf/src/tables/utf16_to_utf8_tables.h +768 -0
  661. package/harmony/quick_crypto/deps/simdutf/src/tables/utf32_to_utf16_tables.h +53 -0
  662. package/harmony/quick_crypto/deps/simdutf/src/tables/utf8_to_utf16_tables.h +826 -0
  663. package/harmony/quick_crypto/deps/simdutf/src/westmere/implementation.cpp +1479 -0
  664. package/harmony/quick_crypto/deps/simdutf/src/westmere/internal/loader.cpp +7 -0
  665. package/harmony/quick_crypto/deps/simdutf/src/westmere/internal/write_v_u16_11bits_to_utf8.cpp +66 -0
  666. package/harmony/quick_crypto/deps/simdutf/src/westmere/sse_base64.cpp +672 -0
  667. package/harmony/quick_crypto/deps/simdutf/src/westmere/sse_convert_latin1_to_utf16.cpp +21 -0
  668. package/harmony/quick_crypto/deps/simdutf/src/westmere/sse_convert_latin1_to_utf32.cpp +31 -0
  669. package/harmony/quick_crypto/deps/simdutf/src/westmere/sse_convert_latin1_to_utf8.cpp +71 -0
  670. package/harmony/quick_crypto/deps/simdutf/src/westmere/sse_convert_utf16_to_latin1.cpp +70 -0
  671. package/harmony/quick_crypto/deps/simdutf/src/westmere/sse_convert_utf16_to_utf32.cpp +206 -0
  672. package/harmony/quick_crypto/deps/simdutf/src/westmere/sse_convert_utf16_to_utf8.cpp +504 -0
  673. package/harmony/quick_crypto/deps/simdutf/src/westmere/sse_convert_utf32_to_latin1.cpp +82 -0
  674. package/harmony/quick_crypto/deps/simdutf/src/westmere/sse_convert_utf32_to_utf16.cpp +209 -0
  675. package/harmony/quick_crypto/deps/simdutf/src/westmere/sse_convert_utf32_to_utf8.cpp +589 -0
  676. package/harmony/quick_crypto/deps/simdutf/src/westmere/sse_convert_utf8_to_latin1.cpp +58 -0
  677. package/harmony/quick_crypto/deps/simdutf/src/westmere/sse_convert_utf8_to_utf16.cpp +197 -0
  678. package/harmony/quick_crypto/deps/simdutf/src/westmere/sse_convert_utf8_to_utf32.cpp +141 -0
  679. package/harmony/quick_crypto/deps/simdutf/src/westmere/sse_utf16fix.cpp +82 -0
  680. package/harmony/quick_crypto/deps/simdutf/src/westmere/sse_validate_utf16.cpp +17 -0
  681. package/harmony/quick_crypto/hvigorfile.ts +2 -0
  682. package/harmony/quick_crypto/index.ets +1 -0
  683. package/harmony/quick_crypto/oh-package.json5 +14 -0
  684. package/harmony/quick_crypto/src/main/cpp/CMakeLists.txt +296 -0
  685. package/harmony/quick_crypto/src/main/cpp/QuickCryptoOnLoad.cpp +211 -0
  686. package/harmony/quick_crypto/src/main/cpp/QuickCryptoOnLoad.hpp +16 -0
  687. package/harmony/quick_crypto/src/main/cpp/QuickCryptoPackage.h +50 -0
  688. package/harmony/quick_crypto/src/main/cpp/cpp/argon2/HybridArgon2.cpp +103 -0
  689. package/harmony/quick_crypto/src/main/cpp/cpp/argon2/HybridArgon2.hpp +32 -0
  690. package/harmony/quick_crypto/src/main/cpp/cpp/blake3/HybridBlake3.cpp +118 -0
  691. package/harmony/quick_crypto/src/main/cpp/cpp/blake3/HybridBlake3.hpp +35 -0
  692. package/harmony/quick_crypto/src/main/cpp/cpp/certificate/HybridCertificate.cpp +42 -0
  693. package/harmony/quick_crypto/src/main/cpp/cpp/certificate/HybridCertificate.hpp +16 -0
  694. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/CCMCipher.cpp +202 -0
  695. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/CCMCipher.hpp +26 -0
  696. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/ChaCha20Cipher.cpp +99 -0
  697. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/ChaCha20Cipher.hpp +25 -0
  698. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/ChaCha20Poly1305Cipher.cpp +170 -0
  699. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/ChaCha20Poly1305Cipher.hpp +29 -0
  700. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/GCMCipher.cpp +68 -0
  701. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/GCMCipher.hpp +14 -0
  702. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/HybridCipher.cpp +415 -0
  703. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/HybridCipher.hpp +74 -0
  704. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/HybridCipherFactory.hpp +119 -0
  705. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/HybridRsaCipher.cpp +440 -0
  706. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/HybridRsaCipher.hpp +33 -0
  707. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/OCBCipher.cpp +55 -0
  708. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/OCBCipher.hpp +19 -0
  709. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/XChaCha20Poly1305Cipher.cpp +163 -0
  710. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/XChaCha20Poly1305Cipher.hpp +42 -0
  711. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/XSalsa20Cipher.cpp +65 -0
  712. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/XSalsa20Cipher.hpp +33 -0
  713. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/XSalsa20Poly1305Cipher.cpp +147 -0
  714. package/harmony/quick_crypto/src/main/cpp/cpp/cipher/XSalsa20Poly1305Cipher.hpp +41 -0
  715. package/harmony/quick_crypto/src/main/cpp/cpp/dh/HybridDhKeyPair.cpp +179 -0
  716. package/harmony/quick_crypto/src/main/cpp/cpp/dh/HybridDhKeyPair.hpp +37 -0
  717. package/harmony/quick_crypto/src/main/cpp/cpp/dh/HybridDiffieHellman.cpp +501 -0
  718. package/harmony/quick_crypto/src/main/cpp/cpp/dh/HybridDiffieHellman.hpp +42 -0
  719. package/harmony/quick_crypto/src/main/cpp/cpp/dsa/HybridDsaKeyPair.cpp +128 -0
  720. package/harmony/quick_crypto/src/main/cpp/cpp/dsa/HybridDsaKeyPair.hpp +32 -0
  721. package/harmony/quick_crypto/src/main/cpp/cpp/ec/HybridEcKeyPair.cpp +479 -0
  722. package/harmony/quick_crypto/src/main/cpp/cpp/ec/HybridEcKeyPair.hpp +49 -0
  723. package/harmony/quick_crypto/src/main/cpp/cpp/ecdh/HybridECDH.cpp +228 -0
  724. package/harmony/quick_crypto/src/main/cpp/cpp/ecdh/HybridECDH.hpp +43 -0
  725. package/harmony/quick_crypto/src/main/cpp/cpp/ed25519/HybridEdKeyPair.cpp +404 -0
  726. package/harmony/quick_crypto/src/main/cpp/cpp/ed25519/HybridEdKeyPair.hpp +71 -0
  727. package/harmony/quick_crypto/src/main/cpp/cpp/hash/HybridHash.cpp +207 -0
  728. package/harmony/quick_crypto/src/main/cpp/cpp/hash/HybridHash.hpp +43 -0
  729. package/harmony/quick_crypto/src/main/cpp/cpp/hkdf/HybridHkdf.cpp +96 -0
  730. package/harmony/quick_crypto/src/main/cpp/cpp/hkdf/HybridHkdf.hpp +28 -0
  731. package/harmony/quick_crypto/src/main/cpp/cpp/hmac/HybridHmac.cpp +104 -0
  732. package/harmony/quick_crypto/src/main/cpp/cpp/hmac/HybridHmac.hpp +32 -0
  733. package/harmony/quick_crypto/src/main/cpp/cpp/keys/HybridKeyObjectHandle.cpp +891 -0
  734. package/harmony/quick_crypto/src/main/cpp/cpp/keys/HybridKeyObjectHandle.hpp +58 -0
  735. package/harmony/quick_crypto/src/main/cpp/cpp/keys/KeyObjectData.cpp +284 -0
  736. package/harmony/quick_crypto/src/main/cpp/cpp/keys/KeyObjectData.hpp +73 -0
  737. package/harmony/quick_crypto/src/main/cpp/cpp/keys/node.h +5 -0
  738. package/harmony/quick_crypto/src/main/cpp/cpp/kmac/HybridKmac.cpp +83 -0
  739. package/harmony/quick_crypto/src/main/cpp/cpp/kmac/HybridKmac.hpp +31 -0
  740. package/harmony/quick_crypto/src/main/cpp/cpp/mldsa/HybridMlDsaKeyPair.cpp +255 -0
  741. package/harmony/quick_crypto/src/main/cpp/cpp/mldsa/HybridMlDsaKeyPair.hpp +49 -0
  742. package/harmony/quick_crypto/src/main/cpp/cpp/mlkem/HybridMlKemKeyPair.cpp +319 -0
  743. package/harmony/quick_crypto/src/main/cpp/cpp/mlkem/HybridMlKemKeyPair.hpp +48 -0
  744. package/harmony/quick_crypto/src/main/cpp/cpp/pbkdf2/HybridPbkdf2.cpp +51 -0
  745. package/harmony/quick_crypto/src/main/cpp/cpp/pbkdf2/HybridPbkdf2.hpp +24 -0
  746. package/harmony/quick_crypto/src/main/cpp/cpp/prime/HybridPrime.cpp +81 -0
  747. package/harmony/quick_crypto/src/main/cpp/cpp/prime/HybridPrime.hpp +20 -0
  748. package/harmony/quick_crypto/src/main/cpp/cpp/random/HybridRandom.cpp +48 -0
  749. package/harmony/quick_crypto/src/main/cpp/cpp/random/HybridRandom.hpp +32 -0
  750. package/harmony/quick_crypto/src/main/cpp/cpp/rsa/HybridRsaKeyPair.cpp +154 -0
  751. package/harmony/quick_crypto/src/main/cpp/cpp/rsa/HybridRsaKeyPair.hpp +43 -0
  752. package/harmony/quick_crypto/src/main/cpp/cpp/scrypt/HybridScrypt.cpp +62 -0
  753. package/harmony/quick_crypto/src/main/cpp/cpp/scrypt/HybridScrypt.hpp +28 -0
  754. package/harmony/quick_crypto/src/main/cpp/cpp/sign/HybridSignHandle.cpp +266 -0
  755. package/harmony/quick_crypto/src/main/cpp/cpp/sign/HybridSignHandle.hpp +36 -0
  756. package/harmony/quick_crypto/src/main/cpp/cpp/sign/HybridVerifyHandle.cpp +227 -0
  757. package/harmony/quick_crypto/src/main/cpp/cpp/sign/HybridVerifyHandle.hpp +36 -0
  758. package/harmony/quick_crypto/src/main/cpp/cpp/sign/SignUtils.hpp +91 -0
  759. package/harmony/quick_crypto/src/main/cpp/cpp/utils/HybridUtils.cpp +197 -0
  760. package/harmony/quick_crypto/src/main/cpp/cpp/utils/HybridUtils.hpp +17 -0
  761. package/harmony/quick_crypto/src/main/cpp/cpp/utils/Macros.hpp +68 -0
  762. package/harmony/quick_crypto/src/main/cpp/cpp/utils/QuickCryptoUtils.cpp +44 -0
  763. package/harmony/quick_crypto/src/main/cpp/cpp/utils/QuickCryptoUtils.hpp +114 -0
  764. package/harmony/quick_crypto/src/main/cpp/cpp/utils/base64.h +309 -0
  765. package/harmony/quick_crypto/src/main/cpp/cpp/x509/HybridX509Certificate.cpp +174 -0
  766. package/harmony/quick_crypto/src/main/cpp/cpp/x509/HybridX509Certificate.hpp +51 -0
  767. package/harmony/quick_crypto/src/main/cpp/generated/RNOH/generated/BaseQuickCryptoPackage.h +72 -0
  768. package/harmony/quick_crypto/src/main/cpp/generated/RNOH/generated/dummy.cpp +2 -0
  769. package/harmony/quick_crypto/src/main/cpp/generated/RNOH/generated/turbo_modules/QuickCrypto.cpp +16 -0
  770. package/harmony/quick_crypto/src/main/cpp/generated/RNOH/generated/turbo_modules/QuickCrypto.h +16 -0
  771. package/harmony/quick_crypto/src/main/cpp/generated/react/renderer/components/quick_crypto/ComponentDescriptors.h +24 -0
  772. package/harmony/quick_crypto/src/main/cpp/generated/react/renderer/components/quick_crypto/EventEmitters.cpp +16 -0
  773. package/harmony/quick_crypto/src/main/cpp/generated/react/renderer/components/quick_crypto/EventEmitters.h +17 -0
  774. package/harmony/quick_crypto/src/main/cpp/generated/react/renderer/components/quick_crypto/Props.cpp +19 -0
  775. package/harmony/quick_crypto/src/main/cpp/generated/react/renderer/components/quick_crypto/Props.h +18 -0
  776. package/harmony/quick_crypto/src/main/cpp/generated/react/renderer/components/quick_crypto/ShadowNodes.cpp +17 -0
  777. package/harmony/quick_crypto/src/main/cpp/generated/react/renderer/components/quick_crypto/ShadowNodes.h +23 -0
  778. package/harmony/quick_crypto/src/main/cpp/generated/react/renderer/components/quick_crypto/States.cpp +16 -0
  779. package/harmony/quick_crypto/src/main/cpp/generated/react/renderer/components/quick_crypto/States.h +19 -0
  780. package/harmony/quick_crypto/src/main/cpp/nitro/HarmonyDispatcher.h +84 -0
  781. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/AnyMap.hpp +216 -0
  782. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/ArrayBuffer.hpp +157 -0
  783. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/AssertPromiseState.hpp +34 -0
  784. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/BorrowingReference.hpp +223 -0
  785. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/BoxedHybridObject.hpp +36 -0
  786. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/CachedProp.hpp +44 -0
  787. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/CallInvokerDispatcher.hpp +38 -0
  788. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/CountTrailingOptionals.hpp +64 -0
  789. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/Dispatcher.hpp +83 -0
  790. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/FastVectorCopy.hpp +45 -0
  791. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/FutureType.hpp +28 -0
  792. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/HybridFunction.hpp +269 -0
  793. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/HybridNitroModulesProxy.hpp +52 -0
  794. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/HybridObject.hpp +152 -0
  795. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/HybridObjectPrototype.hpp +93 -0
  796. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/HybridObjectRegistry.hpp +53 -0
  797. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/InstallNitro.hpp +41 -0
  798. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/InstanceMethod.hpp +23 -0
  799. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/IsSharedPtrTo.hpp +27 -0
  800. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSCallback.hpp +132 -0
  801. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSICache.hpp +123 -0
  802. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSIConverter+AnyMap.hpp +86 -0
  803. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSIConverter+ArrayBuffer.hpp +96 -0
  804. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSIConverter+Date.hpp +83 -0
  805. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSIConverter+Exception.hpp +59 -0
  806. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSIConverter+Function.hpp +92 -0
  807. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSIConverter+HostObject.hpp +73 -0
  808. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSIConverter+NativeState.hpp +93 -0
  809. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSIConverter+Null.hpp +38 -0
  810. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSIConverter+Optional.hpp +50 -0
  811. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSIConverter+Promise.hpp +112 -0
  812. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSIConverter+Tuple.hpp +93 -0
  813. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSIConverter+UnorderedMap.hpp +70 -0
  814. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSIConverter+Variant.hpp +67 -0
  815. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSIConverter+Vector.hpp +69 -0
  816. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSIConverter.hpp +197 -0
  817. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/JSIHelpers.hpp +52 -0
  818. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/NitroDefines.hpp +73 -0
  819. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/NitroHash.hpp +61 -0
  820. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/NitroLogger.hpp +69 -0
  821. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/NitroTypeInfo.hpp +66 -0
  822. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/Null.hpp +42 -0
  823. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/ObjectUtils.hpp +94 -0
  824. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/Promise.hpp +324 -0
  825. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/PromiseType.hpp +44 -0
  826. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/PropNameIDCache.hpp +24 -0
  827. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/Prototype.hpp +182 -0
  828. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/PrototypeChain.hpp +78 -0
  829. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/ReferenceState.hpp +40 -0
  830. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/ThreadPool.hpp +66 -0
  831. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/ThreadUtils.hpp +31 -0
  832. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/TypeIndex.hpp +29 -0
  833. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/WeakReference+Owning.hpp +33 -0
  834. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModules/WeakReference.hpp +102 -0
  835. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModulesTurboModule.cpp +92 -0
  836. package/harmony/quick_crypto/src/main/cpp/nitro/NitroModulesTurboModule.h +74 -0
  837. package/harmony/quick_crypto/src/main/cpp/nitro/platform/ThreadUtils.cpp +60 -0
  838. package/harmony/quick_crypto/src/main/cpp/nitro/shared/AnyMap.cpp +202 -0
  839. package/harmony/quick_crypto/src/main/cpp/nitro/shared/AnyMap.hpp +216 -0
  840. package/harmony/quick_crypto/src/main/cpp/nitro/shared/ArrayBuffer.cpp +125 -0
  841. package/harmony/quick_crypto/src/main/cpp/nitro/shared/ArrayBuffer.hpp +157 -0
  842. package/harmony/quick_crypto/src/main/cpp/nitro/shared/AssertPromiseState.hpp +34 -0
  843. package/harmony/quick_crypto/src/main/cpp/nitro/shared/BorrowingReference.hpp +223 -0
  844. package/harmony/quick_crypto/src/main/cpp/nitro/shared/BoxedHybridObject.cpp +30 -0
  845. package/harmony/quick_crypto/src/main/cpp/nitro/shared/BoxedHybridObject.hpp +36 -0
  846. package/harmony/quick_crypto/src/main/cpp/nitro/shared/CachedProp.hpp +44 -0
  847. package/harmony/quick_crypto/src/main/cpp/nitro/shared/CallInvokerDispatcher.hpp +38 -0
  848. package/harmony/quick_crypto/src/main/cpp/nitro/shared/CountTrailingOptionals.hpp +64 -0
  849. package/harmony/quick_crypto/src/main/cpp/nitro/shared/Dispatcher.cpp +71 -0
  850. package/harmony/quick_crypto/src/main/cpp/nitro/shared/Dispatcher.hpp +83 -0
  851. package/harmony/quick_crypto/src/main/cpp/nitro/shared/FastVectorCopy.hpp +45 -0
  852. package/harmony/quick_crypto/src/main/cpp/nitro/shared/FutureType.hpp +28 -0
  853. package/harmony/quick_crypto/src/main/cpp/nitro/shared/HybridFunction.hpp +269 -0
  854. package/harmony/quick_crypto/src/main/cpp/nitro/shared/HybridNitroModulesProxy.cpp +92 -0
  855. package/harmony/quick_crypto/src/main/cpp/nitro/shared/HybridNitroModulesProxy.hpp +52 -0
  856. package/harmony/quick_crypto/src/main/cpp/nitro/shared/HybridObject.cpp +107 -0
  857. package/harmony/quick_crypto/src/main/cpp/nitro/shared/HybridObject.hpp +152 -0
  858. package/harmony/quick_crypto/src/main/cpp/nitro/shared/HybridObjectPrototype.cpp +113 -0
  859. package/harmony/quick_crypto/src/main/cpp/nitro/shared/HybridObjectPrototype.hpp +93 -0
  860. package/harmony/quick_crypto/src/main/cpp/nitro/shared/HybridObjectRegistry.cpp +105 -0
  861. package/harmony/quick_crypto/src/main/cpp/nitro/shared/HybridObjectRegistry.hpp +53 -0
  862. package/harmony/quick_crypto/src/main/cpp/nitro/shared/InstallNitro.cpp +29 -0
  863. package/harmony/quick_crypto/src/main/cpp/nitro/shared/InstallNitro.hpp +41 -0
  864. package/harmony/quick_crypto/src/main/cpp/nitro/shared/InstanceMethod.hpp +23 -0
  865. package/harmony/quick_crypto/src/main/cpp/nitro/shared/IsSharedPtrTo.hpp +27 -0
  866. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSCallback.hpp +132 -0
  867. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSICache.cpp +66 -0
  868. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSICache.hpp +123 -0
  869. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSIConverter+AnyMap.hpp +86 -0
  870. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSIConverter+ArrayBuffer.hpp +96 -0
  871. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSIConverter+Date.hpp +83 -0
  872. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSIConverter+Exception.hpp +59 -0
  873. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSIConverter+Function.hpp +92 -0
  874. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSIConverter+HostObject.hpp +73 -0
  875. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSIConverter+NativeState.hpp +93 -0
  876. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSIConverter+Null.hpp +38 -0
  877. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSIConverter+Optional.hpp +50 -0
  878. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSIConverter+Promise.hpp +112 -0
  879. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSIConverter+Tuple.hpp +93 -0
  880. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSIConverter+UnorderedMap.hpp +70 -0
  881. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSIConverter+Variant.hpp +67 -0
  882. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSIConverter+Vector.hpp +69 -0
  883. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSIConverter.hpp +197 -0
  884. package/harmony/quick_crypto/src/main/cpp/nitro/shared/JSIHelpers.hpp +52 -0
  885. package/harmony/quick_crypto/src/main/cpp/nitro/shared/NitroDefines.hpp +73 -0
  886. package/harmony/quick_crypto/src/main/cpp/nitro/shared/NitroHash.hpp +61 -0
  887. package/harmony/quick_crypto/src/main/cpp/nitro/shared/NitroLogger.hpp +69 -0
  888. package/harmony/quick_crypto/src/main/cpp/nitro/shared/NitroTypeInfo.cpp +80 -0
  889. package/harmony/quick_crypto/src/main/cpp/nitro/shared/NitroTypeInfo.hpp +66 -0
  890. package/harmony/quick_crypto/src/main/cpp/nitro/shared/Null.hpp +42 -0
  891. package/harmony/quick_crypto/src/main/cpp/nitro/shared/ObjectUtils.cpp +172 -0
  892. package/harmony/quick_crypto/src/main/cpp/nitro/shared/ObjectUtils.hpp +94 -0
  893. package/harmony/quick_crypto/src/main/cpp/nitro/shared/Promise.cpp +136 -0
  894. package/harmony/quick_crypto/src/main/cpp/nitro/shared/Promise.hpp +324 -0
  895. package/harmony/quick_crypto/src/main/cpp/nitro/shared/PromiseType.hpp +44 -0
  896. package/harmony/quick_crypto/src/main/cpp/nitro/shared/Prototype.hpp +182 -0
  897. package/harmony/quick_crypto/src/main/cpp/nitro/shared/PrototypeChain.hpp +78 -0
  898. package/harmony/quick_crypto/src/main/cpp/nitro/shared/ReferenceState.hpp +40 -0
  899. package/harmony/quick_crypto/src/main/cpp/nitro/shared/ThreadPool.cpp +99 -0
  900. package/harmony/quick_crypto/src/main/cpp/nitro/shared/ThreadPool.hpp +66 -0
  901. package/harmony/quick_crypto/src/main/cpp/nitro/shared/ThreadUtils.hpp +31 -0
  902. package/harmony/quick_crypto/src/main/cpp/nitro/shared/TypeIndex.hpp +29 -0
  903. package/harmony/quick_crypto/src/main/cpp/nitro/shared/WeakReference+Owning.hpp +33 -0
  904. package/harmony/quick_crypto/src/main/cpp/nitro/shared/WeakReference.hpp +102 -0
  905. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/AsymmetricKeyType.hpp +128 -0
  906. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/CipherArgs.hpp +101 -0
  907. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/CipherInfo.hpp +104 -0
  908. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridArgon2Spec.cpp +22 -0
  909. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridArgon2Spec.hpp +66 -0
  910. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridBlake3Spec.cpp +28 -0
  911. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridBlake3Spec.hpp +74 -0
  912. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridCertificateSpec.cpp +23 -0
  913. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridCertificateSpec.hpp +64 -0
  914. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridCipherFactorySpec.cpp +21 -0
  915. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridCipherFactorySpec.hpp +67 -0
  916. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridCipherSpec.cpp +29 -0
  917. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridCipherSpec.hpp +78 -0
  918. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridDhKeyPairSpec.cpp +27 -0
  919. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridDhKeyPairSpec.hpp +69 -0
  920. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridDiffieHellmanSpec.cpp +31 -0
  921. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridDiffieHellmanSpec.hpp +72 -0
  922. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridDsaKeyPairSpec.cpp +26 -0
  923. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridDsaKeyPairSpec.hpp +68 -0
  924. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridECDHSpec.cpp +28 -0
  925. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridECDHSpec.hpp +70 -0
  926. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridEcKeyPairSpec.cpp +30 -0
  927. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridEcKeyPairSpec.hpp +76 -0
  928. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridEdKeyPairSpec.cpp +30 -0
  929. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridEdKeyPairSpec.hpp +74 -0
  930. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridHashSpec.cpp +26 -0
  931. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridHashSpec.hpp +74 -0
  932. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridHkdfSpec.cpp +22 -0
  933. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridHkdfSpec.hpp +65 -0
  934. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridHmacSpec.cpp +23 -0
  935. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridHmacSpec.hpp +66 -0
  936. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridKeyObjectHandleSpec.cpp +30 -0
  937. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridKeyObjectHandleSpec.hpp +98 -0
  938. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridKmacSpec.cpp +23 -0
  939. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridKmacSpec.hpp +66 -0
  940. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridMlDsaKeyPairSpec.cpp +29 -0
  941. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridMlDsaKeyPairSpec.hpp +72 -0
  942. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridMlKemKeyPairSpec.cpp +31 -0
  943. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridMlKemKeyPairSpec.hpp +74 -0
  944. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridPbkdf2Spec.cpp +22 -0
  945. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridPbkdf2Spec.hpp +65 -0
  946. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridPrimeSpec.cpp +24 -0
  947. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridPrimeSpec.hpp +67 -0
  948. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridRandomSpec.cpp +22 -0
  949. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridRandomSpec.hpp +64 -0
  950. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridRsaCipherSpec.cpp +25 -0
  951. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridRsaCipherSpec.hpp +71 -0
  952. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridRsaKeyPairSpec.cpp +29 -0
  953. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridRsaKeyPairSpec.hpp +75 -0
  954. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridScryptSpec.cpp +22 -0
  955. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridScryptSpec.hpp +64 -0
  956. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridSignHandleSpec.cpp +23 -0
  957. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridSignHandleSpec.hpp +69 -0
  958. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridUtilsSpec.cpp +23 -0
  959. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridUtilsSpec.hpp +65 -0
  960. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridVerifyHandleSpec.cpp +23 -0
  961. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridVerifyHandleSpec.hpp +69 -0
  962. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridX509CertificateHandleSpec.cpp +46 -0
  963. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/HybridX509CertificateHandleSpec.hpp +96 -0
  964. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/JWK.hpp +177 -0
  965. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/JWKkty.hpp +88 -0
  966. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/JWKuse.hpp +76 -0
  967. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/KFormatType.hpp +63 -0
  968. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/KeyDetail.hpp +108 -0
  969. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/KeyEncoding.hpp +64 -0
  970. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/KeyObject.hpp +83 -0
  971. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/KeyType.hpp +63 -0
  972. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/KeyUsage.hpp +116 -0
  973. package/harmony/quick_crypto/src/main/cpp/nitrogen/shared/NamedCurve.hpp +80 -0
  974. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/README.md +11 -0
  975. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/__DECC_INCLUDE_EPILOGUE.H +22 -0
  976. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/__DECC_INCLUDE_PROLOGUE.H +26 -0
  977. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/aes.h +111 -0
  978. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/asn1.h +1134 -0
  979. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/asn1.h.in +967 -0
  980. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/asn1err.h +142 -0
  981. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/asn1t.h +946 -0
  982. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/asn1t.h.in +923 -0
  983. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/async.h +104 -0
  984. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/asyncerr.h +29 -0
  985. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/bio.h +1022 -0
  986. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/bio.h.in +999 -0
  987. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/bioerr.h +72 -0
  988. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/blowfish.h +78 -0
  989. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/bn.h +590 -0
  990. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/bnerr.h +47 -0
  991. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/buffer.h +62 -0
  992. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/buffererr.h +25 -0
  993. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/byteorder.h +339 -0
  994. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/camellia.h +117 -0
  995. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/cast.h +71 -0
  996. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/cmac.h +52 -0
  997. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/cmp.h +727 -0
  998. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/cmp.h.in +584 -0
  999. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/cmp_util.h +56 -0
  1000. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/cmperr.h +134 -0
  1001. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/cms.h +520 -0
  1002. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/cms.h.in +422 -0
  1003. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/cmserr.h +129 -0
  1004. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/comp.h +98 -0
  1005. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/comp.h.in +76 -0
  1006. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/comperr.h +38 -0
  1007. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/conf.h +214 -0
  1008. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/conf.h.in +177 -0
  1009. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/conf_api.h +46 -0
  1010. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/conferr.h +52 -0
  1011. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/configuration.h +224 -0
  1012. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/configuration.h.in +75 -0
  1013. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/conftypes.h +44 -0
  1014. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/core.h +236 -0
  1015. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/core_dispatch.h +1156 -0
  1016. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/core_names.h +584 -0
  1017. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/core_names.h.in +129 -0
  1018. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/core_object.h +41 -0
  1019. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/crmf.h +278 -0
  1020. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/crmf.h.in +207 -0
  1021. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/crmferr.h +57 -0
  1022. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/crypto.h +614 -0
  1023. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/crypto.h.in +591 -0
  1024. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/cryptoerr.h +56 -0
  1025. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/cryptoerr_legacy.h +1466 -0
  1026. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ct.h +573 -0
  1027. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ct.h.in +525 -0
  1028. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/cterr.h +45 -0
  1029. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/decoder.h +133 -0
  1030. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/decodererr.h +28 -0
  1031. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/des.h +211 -0
  1032. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/dh.h +339 -0
  1033. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/dherr.h +59 -0
  1034. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/dsa.h +280 -0
  1035. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/dsaerr.h +44 -0
  1036. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/dtls1.h +57 -0
  1037. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/e_os2.h +310 -0
  1038. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/e_ostime.h +38 -0
  1039. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ebcdic.h +39 -0
  1040. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ec.h +1588 -0
  1041. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ecdh.h +10 -0
  1042. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ecdsa.h +10 -0
  1043. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ecerr.h +104 -0
  1044. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/encoder.h +124 -0
  1045. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/encodererr.h +28 -0
  1046. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/engine.h +833 -0
  1047. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/engineerr.h +63 -0
  1048. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/err.h +512 -0
  1049. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/err.h.in +501 -0
  1050. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ess.h +128 -0
  1051. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ess.h.in +81 -0
  1052. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/esserr.h +32 -0
  1053. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/evp.h +2345 -0
  1054. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/evperr.h +148 -0
  1055. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/fips_names.h +50 -0
  1056. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/fipskey.h +41 -0
  1057. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/fipskey.h.in +40 -0
  1058. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/hmac.h +62 -0
  1059. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/hpke.h +169 -0
  1060. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/http.h +119 -0
  1061. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/httperr.h +56 -0
  1062. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/idea.h +82 -0
  1063. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/indicator.h +31 -0
  1064. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/kdf.h +142 -0
  1065. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/kdferr.h +16 -0
  1066. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/lhash.h +398 -0
  1067. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/lhash.h.in +373 -0
  1068. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/macros.h +361 -0
  1069. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/md2.h +56 -0
  1070. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/md4.h +63 -0
  1071. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/md5.h +62 -0
  1072. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/mdc2.h +55 -0
  1073. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ml_kem.h +31 -0
  1074. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/modes.h +219 -0
  1075. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/obj_mac.h +6695 -0
  1076. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/objects.h +184 -0
  1077. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/objectserr.h +28 -0
  1078. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ocsp.h +483 -0
  1079. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ocsp.h.in +387 -0
  1080. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ocsperr.h +53 -0
  1081. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/opensslconf.h +17 -0
  1082. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/opensslv.h +109 -0
  1083. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/opensslv.h.in +108 -0
  1084. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ossl_typ.h +16 -0
  1085. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/param_build.h +63 -0
  1086. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/params.h +166 -0
  1087. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/pem.h +548 -0
  1088. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/pem2.h +19 -0
  1089. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/pemerr.h +59 -0
  1090. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/pkcs12.h +372 -0
  1091. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/pkcs12.h.in +349 -0
  1092. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/pkcs12err.h +46 -0
  1093. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/pkcs7.h +430 -0
  1094. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/pkcs7.h.in +359 -0
  1095. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/pkcs7err.h +63 -0
  1096. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/prov_ssl.h +38 -0
  1097. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/proverr.h +171 -0
  1098. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/provider.h +94 -0
  1099. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/quic.h +75 -0
  1100. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/rand.h +131 -0
  1101. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/randerr.h +70 -0
  1102. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/rc2.h +68 -0
  1103. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/rc4.h +47 -0
  1104. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/rc5.h +79 -0
  1105. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ripemd.h +59 -0
  1106. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/rsa.h +615 -0
  1107. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/rsaerr.h +107 -0
  1108. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/safestack.h +320 -0
  1109. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/safestack.h.in +250 -0
  1110. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/seed.h +113 -0
  1111. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/self_test.h +116 -0
  1112. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/sha.h +139 -0
  1113. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/srp.h +285 -0
  1114. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/srp.h.in +214 -0
  1115. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/srtp.h +68 -0
  1116. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ssl.h +2940 -0
  1117. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ssl.h.in +2893 -0
  1118. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ssl2.h +30 -0
  1119. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ssl3.h +358 -0
  1120. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/sslerr.h +382 -0
  1121. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/sslerr_legacy.h +467 -0
  1122. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/stack.h +92 -0
  1123. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/store.h +379 -0
  1124. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/storeerr.h +49 -0
  1125. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/symhacks.h +39 -0
  1126. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/thread.h +31 -0
  1127. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/tls1.h +1226 -0
  1128. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/trace.h +321 -0
  1129. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ts.h +522 -0
  1130. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/tserr.h +67 -0
  1131. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/txt_db.h +63 -0
  1132. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/types.h +248 -0
  1133. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ui.h +407 -0
  1134. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/ui.h.in +384 -0
  1135. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/uierr.h +38 -0
  1136. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/whrlpool.h +62 -0
  1137. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/x509.h +1304 -0
  1138. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/x509.h.in +1110 -0
  1139. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/x509_acert.h +294 -0
  1140. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/x509_acert.h.in +199 -0
  1141. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/x509_vfy.h +921 -0
  1142. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/x509_vfy.h.in +824 -0
  1143. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/x509err.h +70 -0
  1144. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/x509v3.h +1968 -0
  1145. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/x509v3.h.in +1367 -0
  1146. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/include/openssl/x509v3err.h +97 -0
  1147. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/lib/libcrypto.a +0 -0
  1148. package/harmony/quick_crypto/src/main/cpp/third_party/openssl/lib/libssl.a +0 -0
  1149. package/harmony/quick_crypto/src/main/ets/QuickCryptoTurboModule.ts +14 -0
  1150. package/harmony/quick_crypto/src/main/ets/QuickCryptoTurboModulesFactory.ets +26 -0
  1151. package/harmony/quick_crypto/src/main/ets/generated/index.ets +5 -0
  1152. package/harmony/quick_crypto/src/main/ets/generated/ts.ts +5 -0
  1153. package/harmony/quick_crypto/src/main/ets/generated/turboModules/QuickCrypto.ts +14 -0
  1154. package/harmony/quick_crypto/src/main/ets/generated/turboModules/ts.ts +5 -0
  1155. package/harmony/quick_crypto/src/main/ets/nitro/Logger.ts +58 -0
  1156. package/harmony/quick_crypto/src/main/ets/nitro/NitroModulesModule.ts +134 -0
  1157. package/harmony/quick_crypto/src/main/module.json5 +13 -0
  1158. package/harmony/quick_crypto/src/main/resources/base/element/string.json +8 -0
  1159. package/harmony/quick_crypto/src/main/resources/en_US/element/string.json +8 -0
  1160. package/harmony/quick_crypto/src/main/resources/zh_CN/element/string.json +8 -0
  1161. package/harmony/quick_crypto.har +0 -0
  1162. package/package.json +87 -0
  1163. package/src/argon2.ts +83 -0
  1164. package/src/blake3.ts +124 -0
  1165. package/src/certificate.ts +41 -0
  1166. package/src/cipher.ts +373 -0
  1167. package/src/constants.ts +32 -0
  1168. package/src/dh-groups.ts +27 -0
  1169. package/src/dhKeyPair.ts +156 -0
  1170. package/src/diffie-hellman.ts +195 -0
  1171. package/src/dsa.ts +129 -0
  1172. package/src/ec.ts +557 -0
  1173. package/src/ecdh.ts +132 -0
  1174. package/src/ed.ts +526 -0
  1175. package/src/expo-plugin/@types.ts +7 -0
  1176. package/src/expo-plugin/withRNQC.ts +23 -0
  1177. package/src/expo-plugin/withSodiumAndroid.ts +24 -0
  1178. package/src/expo-plugin/withSodiumIos.ts +25 -0
  1179. package/src/expo-plugin/withXCode.ts +55 -0
  1180. package/src/hash.ts +320 -0
  1181. package/src/hkdf.ts +147 -0
  1182. package/src/hmac.ts +140 -0
  1183. package/src/index.ts +144 -0
  1184. package/src/keys/classes.ts +332 -0
  1185. package/src/keys/generateKeyPair.ts +212 -0
  1186. package/src/keys/index.ts +298 -0
  1187. package/src/keys/publicCipher.ts +250 -0
  1188. package/src/keys/signVerify.ts +318 -0
  1189. package/src/keys/utils.ts +190 -0
  1190. package/src/mldsa.ts +125 -0
  1191. package/src/mlkem.ts +350 -0
  1192. package/src/pbkdf2.ts +183 -0
  1193. package/src/prime.ts +134 -0
  1194. package/src/random.ts +334 -0
  1195. package/src/rsa.ts +311 -0
  1196. package/src/scrypt.ts +134 -0
  1197. package/src/specs/v1/.gitkeep +1 -0
  1198. package/src/specs/v1/NativeQuickCrypto.ts +19 -0
  1199. package/src/specs/v1/argon2.nitro.ts +29 -0
  1200. package/src/specs/v1/blake3.nitro.ts +12 -0
  1201. package/src/specs/v1/certificate.nitro.ts +8 -0
  1202. package/src/specs/v1/cipher.nitro.ts +39 -0
  1203. package/src/specs/v1/dhKeyPair.nitro.ts +14 -0
  1204. package/src/specs/v1/diffie-hellman.nitro.ts +16 -0
  1205. package/src/specs/v1/dsaKeyPair.nitro.ts +13 -0
  1206. package/src/specs/v1/ecKeyPair.nitro.ts +40 -0
  1207. package/src/specs/v1/ecdh.nitro.ts +12 -0
  1208. package/src/specs/v1/edKeyPair.nitro.ts +43 -0
  1209. package/src/specs/v1/hash.nitro.ts +10 -0
  1210. package/src/specs/v1/hkdf.nitro.ts +19 -0
  1211. package/src/specs/v1/hmac.nitro.ts +7 -0
  1212. package/src/specs/v1/keyObjectHandle.nitro.ts +39 -0
  1213. package/src/specs/v1/kmac.nitro.ts +12 -0
  1214. package/src/specs/v1/mlDsaKeyPair.nitro.ts +29 -0
  1215. package/src/specs/v1/mlKemKeyPair.nitro.ts +32 -0
  1216. package/src/specs/v1/pbkdf2.nitro.ts +18 -0
  1217. package/src/specs/v1/prime.nitro.ts +18 -0
  1218. package/src/specs/v1/random.nitro.ts +14 -0
  1219. package/src/specs/v1/rsaCipher.nitro.ts +82 -0
  1220. package/src/specs/v1/rsaKeyPair.nitro.ts +33 -0
  1221. package/src/specs/v1/scrypt.nitro.ts +23 -0
  1222. package/src/specs/v1/sign.nitro.ts +31 -0
  1223. package/src/specs/v1/utils.nitro.ts +7 -0
  1224. package/src/specs/v1/x509certificate.nitro.ts +38 -0
  1225. package/src/specs/v2/.gitkeep +1 -0
  1226. package/src/subtle.ts +2922 -0
  1227. package/src/utils/cipher.ts +60 -0
  1228. package/src/utils/conversion.ts +194 -0
  1229. package/src/utils/errors.ts +15 -0
  1230. package/src/utils/hashnames.ts +129 -0
  1231. package/src/utils/index.ts +7 -0
  1232. package/src/utils/noble.ts +85 -0
  1233. package/src/utils/timingSafeEqual.ts +23 -0
  1234. package/src/utils/types.ts +547 -0
  1235. package/src/utils/validation.ts +130 -0
  1236. package/src/x509certificate.ts +277 -0
@@ -0,0 +1,1811 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Subtle = void 0;
7
+ exports.isCryptoKeyPair = isCryptoKeyPair;
8
+ exports.subtle = void 0;
9
+ var _safeBuffer = require("safe-buffer");
10
+ var _utils = require("./utils");
11
+ var _keys = require("./keys");
12
+ var _conversion = require("./utils/conversion");
13
+ var _argon = require("./argon2");
14
+ var _errors = require("./utils/errors");
15
+ var _hashnames = require("./utils/hashnames");
16
+ var _validation = require("./utils/validation");
17
+ var _hash = require("./hash");
18
+ var _reactNativeNitroModules = require("react-native-nitro-modules");
19
+ var _pbkdf = require("./pbkdf2");
20
+ var _ec = require("./ec");
21
+ var _rsa = require("./rsa");
22
+ var _random = require("./random");
23
+ var _hmac = require("./hmac");
24
+ var _timingSafeEqual = require("./utils/timingSafeEqual");
25
+ var _signVerify = require("./keys/signVerify");
26
+ var _ed = require("./ed");
27
+ var _mldsa = require("./mldsa");
28
+ var _mlkem = require("./mlkem");
29
+ var _hkdf = require("./hkdf");
30
+ /* eslint-disable @typescript-eslint/no-unused-vars */
31
+ // Temporary enums that need to be defined
32
+ var KWebCryptoKeyFormat = /*#__PURE__*/function (KWebCryptoKeyFormat) {
33
+ KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatRaw"] = 0] = "kWebCryptoKeyFormatRaw";
34
+ KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatSPKI"] = 1] = "kWebCryptoKeyFormatSPKI";
35
+ KWebCryptoKeyFormat[KWebCryptoKeyFormat["kWebCryptoKeyFormatPKCS8"] = 2] = "kWebCryptoKeyFormatPKCS8";
36
+ return KWebCryptoKeyFormat;
37
+ }(KWebCryptoKeyFormat || {});
38
+ var CipherOrWrapMode = /*#__PURE__*/function (CipherOrWrapMode) {
39
+ CipherOrWrapMode[CipherOrWrapMode["kWebCryptoCipherEncrypt"] = 0] = "kWebCryptoCipherEncrypt";
40
+ CipherOrWrapMode[CipherOrWrapMode["kWebCryptoCipherDecrypt"] = 1] = "kWebCryptoCipherDecrypt";
41
+ return CipherOrWrapMode;
42
+ }(CipherOrWrapMode || {}); // Placeholder functions that need to be implemented
43
+ function hasAnyNotIn(usages, allowed) {
44
+ return usages.some(usage => !allowed.includes(usage));
45
+ }
46
+ function normalizeAlgorithm(algorithm, _operation) {
47
+ if (typeof algorithm === 'string') {
48
+ return {
49
+ name: algorithm
50
+ };
51
+ }
52
+ return algorithm;
53
+ }
54
+ function getAlgorithmName(name, length) {
55
+ switch (name) {
56
+ case 'AES-CBC':
57
+ return `A${length}CBC`;
58
+ case 'AES-CTR':
59
+ return `A${length}CTR`;
60
+ case 'AES-GCM':
61
+ return `A${length}GCM`;
62
+ case 'AES-KW':
63
+ return `A${length}KW`;
64
+ case 'AES-OCB':
65
+ return `A${length}OCB`;
66
+ case 'ChaCha20-Poly1305':
67
+ return 'C20P';
68
+ default:
69
+ return `${name}${length}`;
70
+ }
71
+ }
72
+
73
+ // Placeholder implementations for missing functions
74
+ function ecExportKey(key, format) {
75
+ const keyObject = key.keyObject;
76
+ if (format === KWebCryptoKeyFormat.kWebCryptoKeyFormatRaw) {
77
+ return (0, _conversion.bufferLikeToArrayBuffer)(keyObject.handle.exportKey());
78
+ } else if (format === KWebCryptoKeyFormat.kWebCryptoKeyFormatSPKI) {
79
+ const exported = keyObject.export({
80
+ format: 'der',
81
+ type: 'spki'
82
+ });
83
+ return (0, _conversion.bufferLikeToArrayBuffer)(exported);
84
+ } else if (format === KWebCryptoKeyFormat.kWebCryptoKeyFormatPKCS8) {
85
+ const exported = keyObject.export({
86
+ format: 'der',
87
+ type: 'pkcs8'
88
+ });
89
+ return (0, _conversion.bufferLikeToArrayBuffer)(exported);
90
+ } else {
91
+ throw new Error(`Unsupported EC export format: ${format}`);
92
+ }
93
+ }
94
+ function rsaExportKey(key, format) {
95
+ const keyObject = key.keyObject;
96
+ if (format === KWebCryptoKeyFormat.kWebCryptoKeyFormatSPKI) {
97
+ // Export public key in SPKI format
98
+ const exported = keyObject.export({
99
+ format: 'der',
100
+ type: 'spki'
101
+ });
102
+ return (0, _conversion.bufferLikeToArrayBuffer)(exported);
103
+ } else if (format === KWebCryptoKeyFormat.kWebCryptoKeyFormatPKCS8) {
104
+ // Export private key in PKCS8 format
105
+ const exported = keyObject.export({
106
+ format: 'der',
107
+ type: 'pkcs8'
108
+ });
109
+ return (0, _conversion.bufferLikeToArrayBuffer)(exported);
110
+ } else {
111
+ throw new Error(`Unsupported RSA export format: ${format}`);
112
+ }
113
+ }
114
+ async function rsaCipher(mode, key, data, algorithm) {
115
+ const rsaParams = algorithm;
116
+
117
+ // Validate key type matches operation
118
+ const expectedType = mode === CipherOrWrapMode.kWebCryptoCipherEncrypt ? 'public' : 'private';
119
+ if (key.type !== expectedType) {
120
+ throw (0, _errors.lazyDOMException)('The requested operation is not valid for the provided key', 'InvalidAccessError');
121
+ }
122
+
123
+ // Get hash algorithm from key
124
+ const hashAlgorithm = (0, _hashnames.normalizeHashName)(key.algorithm.hash);
125
+
126
+ // Prepare label (optional)
127
+ const label = rsaParams.label ? (0, _conversion.bufferLikeToArrayBuffer)(rsaParams.label) : undefined;
128
+
129
+ // Create RSA cipher instance
130
+ const rsaCipherModule = _reactNativeNitroModules.NitroModules.createHybridObject('RsaCipher');
131
+
132
+ // RSA-OAEP padding constant = 4
133
+ const RSA_PKCS1_OAEP_PADDING = 4;
134
+ if (mode === CipherOrWrapMode.kWebCryptoCipherEncrypt) {
135
+ // Encrypt with public key
136
+ return rsaCipherModule.encrypt(key.keyObject.handle, data, RSA_PKCS1_OAEP_PADDING, hashAlgorithm, label);
137
+ } else {
138
+ // Decrypt with private key
139
+ return rsaCipherModule.decrypt(key.keyObject.handle, data, RSA_PKCS1_OAEP_PADDING, hashAlgorithm, label);
140
+ }
141
+ }
142
+ async function aesCipher(mode, key, data, algorithm) {
143
+ const {
144
+ name
145
+ } = algorithm;
146
+ switch (name) {
147
+ case 'AES-CTR':
148
+ return aesCtrCipher(mode, key, data, algorithm);
149
+ case 'AES-CBC':
150
+ return aesCbcCipher(mode, key, data, algorithm);
151
+ case 'AES-GCM':
152
+ return aesGcmCipher(mode, key, data, algorithm);
153
+ case 'AES-OCB':
154
+ return aesOcbCipher(mode, key, data, algorithm);
155
+ default:
156
+ throw (0, _errors.lazyDOMException)(`Unsupported AES algorithm: ${name}`, 'NotSupportedError');
157
+ }
158
+ }
159
+ async function aesCtrCipher(mode, key, data, algorithm) {
160
+ // Validate counter and length
161
+ if (!algorithm.counter || algorithm.counter.byteLength !== 16) {
162
+ throw (0, _errors.lazyDOMException)('AES-CTR algorithm.counter must be 16 bytes', 'OperationError');
163
+ }
164
+ if (algorithm.length < 1 || algorithm.length > 128) {
165
+ throw (0, _errors.lazyDOMException)('AES-CTR algorithm.length must be between 1 and 128', 'OperationError');
166
+ }
167
+
168
+ // Get cipher type based on key length
169
+ const keyLength = key.algorithm.length;
170
+ const cipherType = `aes-${keyLength}-ctr`;
171
+
172
+ // Create cipher
173
+ const factory = _reactNativeNitroModules.NitroModules.createHybridObject('CipherFactory');
174
+ const cipher = factory.createCipher({
175
+ isCipher: mode === CipherOrWrapMode.kWebCryptoCipherEncrypt,
176
+ cipherType,
177
+ cipherKey: (0, _conversion.bufferLikeToArrayBuffer)(key.keyObject.export()),
178
+ iv: (0, _conversion.bufferLikeToArrayBuffer)(algorithm.counter)
179
+ });
180
+
181
+ // Process data
182
+ const updated = cipher.update(data);
183
+ const final = cipher.final();
184
+
185
+ // Concatenate results
186
+ const result = new Uint8Array(updated.byteLength + final.byteLength);
187
+ result.set(new Uint8Array(updated), 0);
188
+ result.set(new Uint8Array(final), updated.byteLength);
189
+ return result.buffer;
190
+ }
191
+ async function aesCbcCipher(mode, key, data, algorithm) {
192
+ // Validate IV
193
+ const iv = (0, _conversion.bufferLikeToArrayBuffer)(algorithm.iv);
194
+ if (iv.byteLength !== 16) {
195
+ throw (0, _errors.lazyDOMException)('algorithm.iv must contain exactly 16 bytes', 'OperationError');
196
+ }
197
+
198
+ // Get cipher type based on key length
199
+ const keyLength = key.algorithm.length;
200
+ const cipherType = `aes-${keyLength}-cbc`;
201
+
202
+ // Create cipher
203
+ const factory = _reactNativeNitroModules.NitroModules.createHybridObject('CipherFactory');
204
+ const cipher = factory.createCipher({
205
+ isCipher: mode === CipherOrWrapMode.kWebCryptoCipherEncrypt,
206
+ cipherType,
207
+ cipherKey: (0, _conversion.bufferLikeToArrayBuffer)(key.keyObject.export()),
208
+ iv
209
+ });
210
+
211
+ // Process data
212
+ const updated = cipher.update(data);
213
+ const final = cipher.final();
214
+
215
+ // Concatenate results
216
+ const result = new Uint8Array(updated.byteLength + final.byteLength);
217
+ result.set(new Uint8Array(updated), 0);
218
+ result.set(new Uint8Array(final), updated.byteLength);
219
+ return result.buffer;
220
+ }
221
+ async function aesAeadCipher(mode, key, data, config, additionalData, tagLength = 128) {
222
+ if (!config.validTagLengths.includes(tagLength)) {
223
+ throw (0, _errors.lazyDOMException)(`${tagLength} is not a valid ${config.algorithmName} tag length`, 'OperationError');
224
+ }
225
+ const tagByteLength = tagLength / 8;
226
+ const keyLength = key.algorithm.length;
227
+ const cipherType = `aes-${keyLength}-${config.cipherSuffix}`;
228
+ const factory = _reactNativeNitroModules.NitroModules.createHybridObject('CipherFactory');
229
+ const cipher = factory.createCipher({
230
+ isCipher: mode === CipherOrWrapMode.kWebCryptoCipherEncrypt,
231
+ cipherType,
232
+ cipherKey: (0, _conversion.bufferLikeToArrayBuffer)(key.keyObject.export()),
233
+ iv: config.iv,
234
+ authTagLen: tagByteLength
235
+ });
236
+ let processData;
237
+ if (mode === CipherOrWrapMode.kWebCryptoCipherDecrypt) {
238
+ const dataView = new Uint8Array(data);
239
+ if (dataView.byteLength < tagByteLength) {
240
+ throw (0, _errors.lazyDOMException)('The provided data is too small.', 'OperationError');
241
+ }
242
+ const ciphertextLength = dataView.byteLength - tagByteLength;
243
+ processData = dataView.slice(0, ciphertextLength).buffer;
244
+ const authTag = dataView.slice(ciphertextLength).buffer;
245
+ cipher.setAuthTag(authTag);
246
+ } else {
247
+ processData = data;
248
+ }
249
+ if (additionalData) {
250
+ cipher.setAAD((0, _conversion.bufferLikeToArrayBuffer)(additionalData));
251
+ }
252
+ const updated = cipher.update(processData);
253
+ const final = cipher.final();
254
+ if (mode === CipherOrWrapMode.kWebCryptoCipherEncrypt) {
255
+ const tag = cipher.getAuthTag();
256
+ const result = new Uint8Array(updated.byteLength + final.byteLength + tag.byteLength);
257
+ result.set(new Uint8Array(updated), 0);
258
+ result.set(new Uint8Array(final), updated.byteLength);
259
+ result.set(new Uint8Array(tag), updated.byteLength + final.byteLength);
260
+ return result.buffer;
261
+ } else {
262
+ const result = new Uint8Array(updated.byteLength + final.byteLength);
263
+ result.set(new Uint8Array(updated), 0);
264
+ result.set(new Uint8Array(final), updated.byteLength);
265
+ return result.buffer;
266
+ }
267
+ }
268
+ async function aesGcmCipher(mode, key, data, algorithm) {
269
+ return aesAeadCipher(mode, key, data, {
270
+ algorithmName: 'AES-GCM',
271
+ validTagLengths: [32, 64, 96, 104, 112, 120, 128],
272
+ cipherSuffix: 'gcm',
273
+ iv: (0, _conversion.bufferLikeToArrayBuffer)(algorithm.iv)
274
+ }, algorithm.additionalData, algorithm.tagLength);
275
+ }
276
+ async function aesOcbCipher(mode, key, data, algorithm) {
277
+ const ivBuffer = (0, _conversion.bufferLikeToArrayBuffer)(algorithm.iv);
278
+ if (ivBuffer.byteLength < 1 || ivBuffer.byteLength > 15) {
279
+ throw (0, _errors.lazyDOMException)('AES-OCB algorithm.iv must be between 1 and 15 bytes', 'OperationError');
280
+ }
281
+ return aesAeadCipher(mode, key, data, {
282
+ algorithmName: 'AES-OCB',
283
+ validTagLengths: [64, 96, 128],
284
+ cipherSuffix: 'ocb',
285
+ iv: ivBuffer
286
+ }, algorithm.additionalData, algorithm.tagLength);
287
+ }
288
+ async function aesKwCipher(mode, key, data) {
289
+ const isWrap = mode === CipherOrWrapMode.kWebCryptoCipherEncrypt;
290
+
291
+ // AES-KW requires input to be a multiple of 8 bytes (64 bits)
292
+ if (data.byteLength % 8 !== 0) {
293
+ throw (0, _errors.lazyDOMException)(`AES-KW input length must be a multiple of 8 bytes, got ${data.byteLength}`, 'OperationError');
294
+ }
295
+
296
+ // AES-KW requires at least 16 bytes of input (128 bits)
297
+ if (isWrap && data.byteLength < 16) {
298
+ throw (0, _errors.lazyDOMException)(`AES-KW input must be at least 16 bytes, got ${data.byteLength}`, 'OperationError');
299
+ }
300
+
301
+ // Get cipher type based on key length
302
+ const keyLength = key.algorithm.length;
303
+ // Use aes*-wrap for both operations (matching Node.js)
304
+ const cipherType = `aes${keyLength}-wrap`;
305
+
306
+ // Export key material
307
+ const exportedKey = key.keyObject.export();
308
+ const cipherKey = (0, _conversion.bufferLikeToArrayBuffer)(exportedKey);
309
+
310
+ // AES-KW uses a default IV as specified in RFC 3394
311
+ const defaultWrapIV = new Uint8Array([0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6]);
312
+ const factory = _reactNativeNitroModules.NitroModules.createHybridObject('CipherFactory');
313
+ const cipher = factory.createCipher({
314
+ isCipher: isWrap,
315
+ cipherType,
316
+ cipherKey,
317
+ iv: defaultWrapIV.buffer // RFC 3394 default IV for AES-KW
318
+ });
319
+
320
+ // Process data
321
+ const updated = cipher.update(data);
322
+ const final = cipher.final();
323
+
324
+ // Concatenate results
325
+ const result = new Uint8Array(updated.byteLength + final.byteLength);
326
+ result.set(new Uint8Array(updated), 0);
327
+ result.set(new Uint8Array(final), updated.byteLength);
328
+ return result.buffer;
329
+ }
330
+ async function chaCha20Poly1305Cipher(mode, key, data, algorithm) {
331
+ const {
332
+ iv,
333
+ additionalData,
334
+ tagLength = 128
335
+ } = algorithm;
336
+
337
+ // Validate IV (must be 12 bytes for ChaCha20-Poly1305)
338
+ const ivBuffer = (0, _conversion.bufferLikeToArrayBuffer)(iv);
339
+ if (!ivBuffer || ivBuffer.byteLength !== 12) {
340
+ throw (0, _errors.lazyDOMException)('ChaCha20-Poly1305 IV must be exactly 12 bytes', 'OperationError');
341
+ }
342
+
343
+ // Validate tag length (only 128-bit supported)
344
+ if (tagLength !== 128) {
345
+ throw (0, _errors.lazyDOMException)('ChaCha20-Poly1305 only supports 128-bit auth tags', 'NotSupportedError');
346
+ }
347
+ const tagByteLength = 16; // 128 bits = 16 bytes
348
+
349
+ // Create cipher using existing ChaCha20-Poly1305 implementation
350
+ const factory = _reactNativeNitroModules.NitroModules.createHybridObject('CipherFactory');
351
+ const cipher = factory.createCipher({
352
+ isCipher: mode === CipherOrWrapMode.kWebCryptoCipherEncrypt,
353
+ cipherType: 'chacha20-poly1305',
354
+ cipherKey: (0, _conversion.bufferLikeToArrayBuffer)(key.keyObject.export()),
355
+ iv: ivBuffer,
356
+ authTagLen: tagByteLength
357
+ });
358
+ let processData;
359
+ let authTag;
360
+ if (mode === CipherOrWrapMode.kWebCryptoCipherDecrypt) {
361
+ // For decryption, extract auth tag from end of data
362
+ const dataView = new Uint8Array(data);
363
+ if (dataView.byteLength < tagByteLength) {
364
+ throw (0, _errors.lazyDOMException)('The provided data is too small.', 'OperationError');
365
+ }
366
+
367
+ // Split data and tag
368
+ const ciphertextLength = dataView.byteLength - tagByteLength;
369
+ processData = dataView.slice(0, ciphertextLength).buffer;
370
+ authTag = dataView.slice(ciphertextLength).buffer;
371
+
372
+ // Set auth tag for verification
373
+ cipher.setAuthTag(authTag);
374
+ } else {
375
+ processData = data;
376
+ }
377
+
378
+ // Set additional authenticated data if provided
379
+ if (additionalData) {
380
+ cipher.setAAD((0, _conversion.bufferLikeToArrayBuffer)(additionalData));
381
+ }
382
+
383
+ // Process data
384
+ const updated = cipher.update(processData);
385
+ const final = cipher.final();
386
+ if (mode === CipherOrWrapMode.kWebCryptoCipherEncrypt) {
387
+ // For encryption, append auth tag to result
388
+ const tag = cipher.getAuthTag();
389
+ const result = new Uint8Array(updated.byteLength + final.byteLength + tag.byteLength);
390
+ result.set(new Uint8Array(updated), 0);
391
+ result.set(new Uint8Array(final), updated.byteLength);
392
+ result.set(new Uint8Array(tag), updated.byteLength + final.byteLength);
393
+ return result.buffer;
394
+ } else {
395
+ // For decryption, just concatenate plaintext
396
+ const result = new Uint8Array(updated.byteLength + final.byteLength);
397
+ result.set(new Uint8Array(updated), 0);
398
+ result.set(new Uint8Array(final), updated.byteLength);
399
+ return result.buffer;
400
+ }
401
+ }
402
+ async function aesGenerateKey(algorithm, extractable, keyUsages) {
403
+ const {
404
+ length
405
+ } = algorithm;
406
+ const name = algorithm.name;
407
+ if (!name) {
408
+ throw (0, _errors.lazyDOMException)('Algorithm name is required', 'OperationError');
409
+ }
410
+
411
+ // Validate key length
412
+ if (![128, 192, 256].includes(length)) {
413
+ throw (0, _errors.lazyDOMException)(`Invalid AES key length: ${length}. Must be 128, 192, or 256.`, 'OperationError');
414
+ }
415
+
416
+ // Validate usages
417
+ const validUsages = ['encrypt', 'decrypt', 'wrapKey', 'unwrapKey'];
418
+ if (hasAnyNotIn(keyUsages, validUsages)) {
419
+ throw (0, _errors.lazyDOMException)(`Unsupported key usage for ${name}`, 'SyntaxError');
420
+ }
421
+
422
+ // Generate random key bytes
423
+ const keyBytes = new Uint8Array(length / 8);
424
+ (0, _random.getRandomValues)(keyBytes);
425
+
426
+ // Create secret key
427
+ const keyObject = (0, _keys.createSecretKey)(keyBytes);
428
+
429
+ // Construct algorithm object with guaranteed name
430
+ const keyAlgorithm = {
431
+ name,
432
+ length
433
+ };
434
+ return new _keys.CryptoKey(keyObject, keyAlgorithm, keyUsages, extractable);
435
+ }
436
+ async function hmacGenerateKey(algorithm, extractable, keyUsages) {
437
+ // Validate usages
438
+ if (hasAnyNotIn(keyUsages, ['sign', 'verify'])) {
439
+ throw (0, _errors.lazyDOMException)('Unsupported key usage for HMAC key', 'SyntaxError');
440
+ }
441
+
442
+ // Get hash algorithm
443
+ const hash = algorithm.hash;
444
+ if (!hash) {
445
+ throw (0, _errors.lazyDOMException)('HMAC algorithm requires a hash parameter', 'TypeError');
446
+ }
447
+ const hashName = (0, _hashnames.normalizeHashName)(hash);
448
+
449
+ // Determine key length
450
+ let length = algorithm.length;
451
+ if (length === undefined) {
452
+ // Use hash output length as default key length
453
+ switch (hashName) {
454
+ case 'SHA-1':
455
+ length = 160;
456
+ break;
457
+ case 'SHA-256':
458
+ length = 256;
459
+ break;
460
+ case 'SHA-384':
461
+ length = 384;
462
+ break;
463
+ case 'SHA-512':
464
+ length = 512;
465
+ break;
466
+ default:
467
+ length = 256;
468
+ // Default to 256 bits
469
+ }
470
+ }
471
+ if (length === 0) {
472
+ throw (0, _errors.lazyDOMException)('Zero-length key is not supported', 'OperationError');
473
+ }
474
+
475
+ // Generate random key bytes
476
+ const keyBytes = new Uint8Array(Math.ceil(length / 8));
477
+ (0, _random.getRandomValues)(keyBytes);
478
+
479
+ // Create secret key
480
+ const keyObject = (0, _keys.createSecretKey)(keyBytes);
481
+
482
+ // Construct algorithm object with hash normalized to { name: string } format per WebCrypto spec
483
+ const webCryptoHashName = (0, _hashnames.normalizeHashName)(hash, _hashnames.HashContext.WebCrypto);
484
+ const keyAlgorithm = {
485
+ name: 'HMAC',
486
+ hash: {
487
+ name: webCryptoHashName
488
+ },
489
+ length
490
+ };
491
+ return new _keys.CryptoKey(keyObject, keyAlgorithm, keyUsages, extractable);
492
+ }
493
+ async function kmacGenerateKey(algorithm, extractable, keyUsages) {
494
+ const {
495
+ name
496
+ } = algorithm;
497
+ if (hasAnyNotIn(keyUsages, ['sign', 'verify'])) {
498
+ throw (0, _errors.lazyDOMException)(`Unsupported key usage for ${name} key`, 'SyntaxError');
499
+ }
500
+ const defaultLength = name === 'KMAC128' ? 128 : 256;
501
+ const length = algorithm.length ?? defaultLength;
502
+ if (length === 0) {
503
+ throw (0, _errors.lazyDOMException)('Zero-length key is not supported', 'OperationError');
504
+ }
505
+ const keyBytes = new Uint8Array(Math.ceil(length / 8));
506
+ (0, _random.getRandomValues)(keyBytes);
507
+ const keyObject = (0, _keys.createSecretKey)(keyBytes);
508
+ const keyAlgorithm = {
509
+ name: name,
510
+ length
511
+ };
512
+ return new _keys.CryptoKey(keyObject, keyAlgorithm, keyUsages, extractable);
513
+ }
514
+ function kmacSignVerify(key, data, algorithm, signature) {
515
+ const {
516
+ name
517
+ } = algorithm;
518
+ const defaultLength = name === 'KMAC128' ? 256 : 512;
519
+ const outputLengthBits = algorithm.length ?? defaultLength;
520
+ if (outputLengthBits % 8 !== 0) {
521
+ throw (0, _errors.lazyDOMException)('KMAC output length must be a multiple of 8', 'OperationError');
522
+ }
523
+ const outputLengthBytes = outputLengthBits / 8;
524
+ const keyData = key.keyObject.export();
525
+ const kmac = _reactNativeNitroModules.NitroModules.createHybridObject('Kmac');
526
+ let customizationBuffer;
527
+ if (algorithm.customization !== undefined) {
528
+ customizationBuffer = (0, _conversion.bufferLikeToArrayBuffer)(algorithm.customization);
529
+ }
530
+ kmac.createKmac(name, (0, _conversion.bufferLikeToArrayBuffer)(keyData), outputLengthBytes, customizationBuffer);
531
+ kmac.update((0, _conversion.bufferLikeToArrayBuffer)(data));
532
+ const computed = kmac.digest();
533
+ if (signature === undefined) {
534
+ return computed;
535
+ }
536
+ const sigBuffer = (0, _conversion.bufferLikeToArrayBuffer)(signature);
537
+ if (computed.byteLength !== sigBuffer.byteLength) {
538
+ return false;
539
+ }
540
+ return (0, _timingSafeEqual.timingSafeEqual)(new Uint8Array(computed), new Uint8Array(sigBuffer));
541
+ }
542
+ async function kmacImportKey(algorithm, format, data, extractable, keyUsages) {
543
+ const {
544
+ name
545
+ } = algorithm;
546
+ if (hasAnyNotIn(keyUsages, ['sign', 'verify'])) {
547
+ throw (0, _errors.lazyDOMException)(`Unsupported key usage for ${name} key`, 'SyntaxError');
548
+ }
549
+ let keyObject;
550
+ if (format === 'jwk') {
551
+ const jwk = data;
552
+ if (!jwk || typeof jwk !== 'object') {
553
+ throw (0, _errors.lazyDOMException)('Invalid keyData', 'DataError');
554
+ }
555
+ if (jwk.kty !== 'oct') {
556
+ throw (0, _errors.lazyDOMException)('Invalid JWK format for KMAC key', 'DataError');
557
+ }
558
+ const expectedAlg = name === 'KMAC128' ? 'K128' : 'K256';
559
+ if (jwk.alg !== undefined && jwk.alg !== expectedAlg) {
560
+ throw (0, _errors.lazyDOMException)('JWK "alg" does not match the requested algorithm', 'DataError');
561
+ }
562
+ const handle = _reactNativeNitroModules.NitroModules.createHybridObject('KeyObjectHandle');
563
+ const keyType = handle.initJwk(jwk, undefined);
564
+ if (keyType === undefined || keyType !== 0) {
565
+ throw (0, _errors.lazyDOMException)('Failed to import KMAC JWK', 'DataError');
566
+ }
567
+ keyObject = new _keys.SecretKeyObject(handle);
568
+ } else if (format === 'raw' || format === 'raw-secret') {
569
+ keyObject = (0, _keys.createSecretKey)(data);
570
+ } else {
571
+ throw (0, _errors.lazyDOMException)(`Unable to import ${name} key with format ${format}`, 'NotSupportedError');
572
+ }
573
+ const exported = keyObject.export();
574
+ const keyLength = exported.byteLength * 8;
575
+ if (keyLength === 0) {
576
+ throw (0, _errors.lazyDOMException)('Zero-length key is not supported', 'DataError');
577
+ }
578
+ if (algorithm.length !== undefined && algorithm.length !== keyLength) {
579
+ throw (0, _errors.lazyDOMException)('Invalid key length', 'DataError');
580
+ }
581
+ const keyAlgorithm = {
582
+ name: name,
583
+ length: keyLength
584
+ };
585
+ return new _keys.CryptoKey(keyObject, keyAlgorithm, keyUsages, extractable);
586
+ }
587
+ function rsaImportKey(format, data, algorithm, extractable, keyUsages) {
588
+ const {
589
+ name
590
+ } = algorithm;
591
+
592
+ // Validate usages
593
+ let checkSet;
594
+ switch (name) {
595
+ case 'RSASSA-PKCS1-v1_5':
596
+ case 'RSA-PSS':
597
+ checkSet = ['sign', 'verify'];
598
+ break;
599
+ case 'RSA-OAEP':
600
+ checkSet = ['encrypt', 'decrypt', 'wrapKey', 'unwrapKey'];
601
+ break;
602
+ default:
603
+ throw new Error(`Unsupported RSA algorithm: ${name}`);
604
+ }
605
+ if (hasAnyNotIn(keyUsages, checkSet)) {
606
+ throw new Error(`Unsupported key usage for ${name}`);
607
+ }
608
+ let keyObject;
609
+ if (format === 'jwk') {
610
+ const jwk = data;
611
+
612
+ // Validate JWK
613
+ if (jwk.kty !== 'RSA') {
614
+ throw new Error('Invalid JWK format for RSA key');
615
+ }
616
+ const handle = _reactNativeNitroModules.NitroModules.createHybridObject('KeyObjectHandle');
617
+ const keyType = handle.initJwk(jwk, undefined);
618
+ if (keyType === undefined) {
619
+ throw new Error('Failed to import RSA JWK');
620
+ }
621
+
622
+ // Create the appropriate KeyObject based on type
623
+ if (keyType === 1) {
624
+ keyObject = new _keys.PublicKeyObject(handle);
625
+ } else if (keyType === 2) {
626
+ keyObject = new _keys.PrivateKeyObject(handle);
627
+ } else {
628
+ throw new Error('Unexpected key type from RSA JWK import');
629
+ }
630
+ } else if (format === 'spki') {
631
+ const keyData = (0, _conversion.bufferLikeToArrayBuffer)(data);
632
+ keyObject = _keys.KeyObject.createKeyObject('public', keyData, _utils.KFormatType.DER, _utils.KeyEncoding.SPKI);
633
+ } else if (format === 'pkcs8') {
634
+ const keyData = (0, _conversion.bufferLikeToArrayBuffer)(data);
635
+ keyObject = _keys.KeyObject.createKeyObject('private', keyData, _utils.KFormatType.DER, _utils.KeyEncoding.PKCS8);
636
+ } else {
637
+ throw new Error(`Unsupported format for RSA import: ${format}`);
638
+ }
639
+
640
+ // Get the modulus length from the key and add it to the algorithm
641
+ const keyDetails = keyObject.asymmetricKeyDetails;
642
+
643
+ // Convert publicExponent number to big-endian byte array
644
+ let publicExponentBytes;
645
+ if (keyDetails !== null && keyDetails !== void 0 && keyDetails.publicExponent) {
646
+ const exp = keyDetails.publicExponent;
647
+ // Convert number to big-endian bytes
648
+ const bytes = [];
649
+ let value = exp;
650
+ while (value > 0) {
651
+ bytes.unshift(value & 0xff);
652
+ value = Math.floor(value / 256);
653
+ }
654
+ publicExponentBytes = new Uint8Array(bytes.length > 0 ? bytes : [0]);
655
+ }
656
+
657
+ // Normalize hash to { name: string } format per WebCrypto spec
658
+ const hashName = (0, _hashnames.normalizeHashName)(algorithm.hash, _hashnames.HashContext.WebCrypto);
659
+ const normalizedHash = {
660
+ name: hashName
661
+ };
662
+ const algorithmWithDetails = {
663
+ ...algorithm,
664
+ modulusLength: keyDetails === null || keyDetails === void 0 ? void 0 : keyDetails.modulusLength,
665
+ publicExponent: publicExponentBytes,
666
+ hash: normalizedHash
667
+ };
668
+ return new _keys.CryptoKey(keyObject, algorithmWithDetails, keyUsages, extractable);
669
+ }
670
+ async function hmacImportKey(algorithm, format, data, extractable, keyUsages) {
671
+ // Validate usages
672
+ if (hasAnyNotIn(keyUsages, ['sign', 'verify'])) {
673
+ throw new Error('Unsupported key usage for an HMAC key');
674
+ }
675
+ let keyObject;
676
+ if (format === 'jwk') {
677
+ const jwk = data;
678
+
679
+ // Validate JWK
680
+ if (!jwk || typeof jwk !== 'object') {
681
+ throw new Error('Invalid keyData');
682
+ }
683
+ if (jwk.kty !== 'oct') {
684
+ throw new Error('Invalid JWK format for HMAC key');
685
+ }
686
+
687
+ // Validate key length if specified
688
+ if (algorithm.length !== undefined) {
689
+ if (!jwk.k) {
690
+ throw new Error('JWK missing key data');
691
+ }
692
+ // Decode to check length
693
+ const decoded = _safeBuffer.Buffer.from(jwk.k, 'base64');
694
+ const keyBitLength = decoded.length * 8;
695
+ if (algorithm.length === 0) {
696
+ throw new Error('Zero-length key is not supported');
697
+ }
698
+ if (algorithm.length !== keyBitLength) {
699
+ throw new Error('Invalid key length');
700
+ }
701
+ }
702
+ const handle = _reactNativeNitroModules.NitroModules.createHybridObject('KeyObjectHandle');
703
+ const keyType = handle.initJwk(jwk, undefined);
704
+ if (keyType === undefined || keyType !== 0) {
705
+ throw new Error('Failed to import HMAC JWK');
706
+ }
707
+ keyObject = new _keys.SecretKeyObject(handle);
708
+ } else if (format === 'raw') {
709
+ keyObject = (0, _keys.createSecretKey)(data);
710
+ } else {
711
+ throw new Error(`Unable to import HMAC key with format ${format}`);
712
+ }
713
+
714
+ // Normalize hash to { name: string } format per WebCrypto spec
715
+ const hashName = (0, _hashnames.normalizeHashName)(algorithm.hash, _hashnames.HashContext.WebCrypto);
716
+ const normalizedAlgorithm = {
717
+ ...algorithm,
718
+ name: 'HMAC',
719
+ hash: {
720
+ name: hashName
721
+ }
722
+ };
723
+ return new _keys.CryptoKey(keyObject, normalizedAlgorithm, keyUsages, extractable);
724
+ }
725
+ async function aesImportKey(algorithm, format, data, extractable, keyUsages) {
726
+ const {
727
+ name,
728
+ length
729
+ } = algorithm;
730
+
731
+ // Validate usages
732
+ const validUsages = ['encrypt', 'decrypt', 'wrapKey', 'unwrapKey'];
733
+ if (hasAnyNotIn(keyUsages, validUsages)) {
734
+ throw new Error(`Unsupported key usage for ${name}`);
735
+ }
736
+ let keyObject;
737
+ let actualLength;
738
+ if (format === 'jwk') {
739
+ const jwk = data;
740
+
741
+ // Validate JWK
742
+ if (jwk.kty !== 'oct') {
743
+ throw new Error('Invalid JWK format for AES key');
744
+ }
745
+ const handle = _reactNativeNitroModules.NitroModules.createHybridObject('KeyObjectHandle');
746
+ const keyType = handle.initJwk(jwk, undefined);
747
+ if (keyType === undefined || keyType !== 0) {
748
+ throw new Error('Failed to import AES JWK');
749
+ }
750
+ keyObject = new _keys.SecretKeyObject(handle);
751
+
752
+ // Get actual key length from imported key
753
+ const exported = keyObject.export();
754
+ actualLength = exported.byteLength * 8;
755
+ } else if (format === 'raw') {
756
+ const keyData = (0, _conversion.bufferLikeToArrayBuffer)(data);
757
+ actualLength = keyData.byteLength * 8;
758
+
759
+ // Validate key length
760
+ if (![128, 192, 256].includes(actualLength)) {
761
+ throw new Error('Invalid AES key length');
762
+ }
763
+ keyObject = (0, _keys.createSecretKey)(keyData);
764
+ } else {
765
+ throw new Error(`Unsupported format for AES import: ${format}`);
766
+ }
767
+
768
+ // Validate length if specified
769
+ if (length !== undefined && length !== actualLength) {
770
+ throw new Error(`Key length mismatch: expected ${length}, got ${actualLength}`);
771
+ }
772
+ return new _keys.CryptoKey(keyObject, {
773
+ name,
774
+ length: actualLength
775
+ }, keyUsages, extractable);
776
+ }
777
+ function edImportKey(format, data, algorithm, extractable, keyUsages) {
778
+ const {
779
+ name
780
+ } = algorithm;
781
+
782
+ // Validate usages
783
+ const isX = name === 'X25519' || name === 'X448';
784
+ const allowedUsages = isX ? ['deriveKey', 'deriveBits'] : ['sign', 'verify'];
785
+ if (hasAnyNotIn(keyUsages, allowedUsages)) {
786
+ throw (0, _errors.lazyDOMException)(`Unsupported key usage for ${name} key`, 'SyntaxError');
787
+ }
788
+ let keyObject;
789
+ if (format === 'spki') {
790
+ // Import public key
791
+ const keyData = (0, _conversion.bufferLikeToArrayBuffer)(data);
792
+ keyObject = _keys.KeyObject.createKeyObject('public', keyData, _utils.KFormatType.DER, _utils.KeyEncoding.SPKI);
793
+ } else if (format === 'pkcs8') {
794
+ // Import private key
795
+ const keyData = (0, _conversion.bufferLikeToArrayBuffer)(data);
796
+ keyObject = _keys.KeyObject.createKeyObject('private', keyData, _utils.KFormatType.DER, _utils.KeyEncoding.PKCS8);
797
+ } else if (format === 'raw') {
798
+ // Raw format - public key only for Ed keys
799
+ const keyData = (0, _conversion.bufferLikeToArrayBuffer)(data);
800
+ const handle = _reactNativeNitroModules.NitroModules.createHybridObject('KeyObjectHandle');
801
+ // For raw Ed keys, we need to create them differently
802
+ // Raw public keys are just the key bytes
803
+ handle.init(1, keyData); // 1 = public key type
804
+ keyObject = new _keys.PublicKeyObject(handle);
805
+ } else if (format === 'jwk') {
806
+ const jwkData = data;
807
+ const handle = _reactNativeNitroModules.NitroModules.createHybridObject('KeyObjectHandle');
808
+ const keyType = handle.initJwk(jwkData);
809
+ if (keyType === undefined) {
810
+ throw (0, _errors.lazyDOMException)('Invalid JWK data', 'DataError');
811
+ }
812
+ if (keyType === _utils.KeyType.PRIVATE) {
813
+ keyObject = new _keys.PrivateKeyObject(handle);
814
+ } else {
815
+ keyObject = new _keys.PublicKeyObject(handle);
816
+ }
817
+ } else {
818
+ throw (0, _errors.lazyDOMException)(`Unsupported format for ${name} import: ${format}`, 'NotSupportedError');
819
+ }
820
+ return new _keys.CryptoKey(keyObject, {
821
+ name
822
+ }, keyUsages, extractable);
823
+ }
824
+ function pqcImportKeyObject(format, data, name) {
825
+ if (format === 'spki') {
826
+ return _keys.KeyObject.createKeyObject('public', (0, _conversion.bufferLikeToArrayBuffer)(data), _utils.KFormatType.DER, _utils.KeyEncoding.SPKI);
827
+ } else if (format === 'pkcs8') {
828
+ return _keys.KeyObject.createKeyObject('private', (0, _conversion.bufferLikeToArrayBuffer)(data), _utils.KFormatType.DER, _utils.KeyEncoding.PKCS8);
829
+ } else if (format === 'raw') {
830
+ const handle = _reactNativeNitroModules.NitroModules.createHybridObject('KeyObjectHandle');
831
+ if (!handle.initPqcRaw(name, (0, _conversion.bufferLikeToArrayBuffer)(data), true)) {
832
+ throw (0, _errors.lazyDOMException)(`Failed to import ${name} raw public key`, 'DataError');
833
+ }
834
+ return new _keys.PublicKeyObject(handle);
835
+ } else if (format === 'raw-seed') {
836
+ const handle = _reactNativeNitroModules.NitroModules.createHybridObject('KeyObjectHandle');
837
+ if (!handle.initPqcRaw(name, (0, _conversion.bufferLikeToArrayBuffer)(data), false)) {
838
+ throw (0, _errors.lazyDOMException)(`Failed to import ${name} raw seed`, 'DataError');
839
+ }
840
+ return new _keys.PrivateKeyObject(handle);
841
+ }
842
+ throw (0, _errors.lazyDOMException)(`Unsupported format for ${name} import: ${format}`, 'NotSupportedError');
843
+ }
844
+ function mldsaImportKey(format, data, algorithm, extractable, keyUsages) {
845
+ const {
846
+ name
847
+ } = algorithm;
848
+ const isPublicFormat = format === 'spki' || format === 'raw';
849
+ if (hasAnyNotIn(keyUsages, isPublicFormat ? ['verify'] : ['sign'])) {
850
+ throw (0, _errors.lazyDOMException)(`Unsupported key usage for ${name} key`, 'SyntaxError');
851
+ }
852
+ return new _keys.CryptoKey(pqcImportKeyObject(format, data, name), {
853
+ name
854
+ }, keyUsages, extractable);
855
+ }
856
+ function mlkemImportKey(format, data, algorithm, extractable, keyUsages) {
857
+ const {
858
+ name
859
+ } = algorithm;
860
+ const isPublicFormat = format === 'spki' || format === 'raw';
861
+ const allowedUsages = isPublicFormat ? ['encapsulateBits', 'encapsulateKey'] : ['decapsulateBits', 'decapsulateKey'];
862
+ if (hasAnyNotIn(keyUsages, allowedUsages)) {
863
+ throw (0, _errors.lazyDOMException)(`Unsupported key usage for ${name} key`, 'SyntaxError');
864
+ }
865
+ return new _keys.CryptoKey(pqcImportKeyObject(format, data, name), {
866
+ name
867
+ }, keyUsages, extractable);
868
+ }
869
+ const exportKeySpki = async key => {
870
+ switch (key.algorithm.name) {
871
+ case 'RSASSA-PKCS1-v1_5':
872
+ // Fall through
873
+ case 'RSA-PSS':
874
+ // Fall through
875
+ case 'RSA-OAEP':
876
+ if (key.type === 'public') {
877
+ return rsaExportKey(key, KWebCryptoKeyFormat.kWebCryptoKeyFormatSPKI);
878
+ }
879
+ break;
880
+ case 'ECDSA':
881
+ // Fall through
882
+ case 'ECDH':
883
+ if (key.type === 'public') {
884
+ return ecExportKey(key, KWebCryptoKeyFormat.kWebCryptoKeyFormatSPKI);
885
+ }
886
+ break;
887
+ case 'Ed25519':
888
+ // Fall through
889
+ case 'Ed448':
890
+ // Fall through
891
+ case 'X25519':
892
+ // Fall through
893
+ case 'X448':
894
+ if (key.type === 'public') {
895
+ // Export Ed/X key in SPKI DER format
896
+ return (0, _conversion.bufferLikeToArrayBuffer)(key.keyObject.handle.exportKey(_utils.KFormatType.DER, _utils.KeyEncoding.SPKI));
897
+ }
898
+ break;
899
+ case 'ML-DSA-44':
900
+ // Fall through
901
+ case 'ML-DSA-65':
902
+ // Fall through
903
+ case 'ML-DSA-87':
904
+ if (key.type === 'public') {
905
+ // Export ML-DSA key in SPKI DER format
906
+ return (0, _conversion.bufferLikeToArrayBuffer)(key.keyObject.handle.exportKey(_utils.KFormatType.DER, _utils.KeyEncoding.SPKI));
907
+ }
908
+ break;
909
+ case 'ML-KEM-512':
910
+ // Fall through
911
+ case 'ML-KEM-768':
912
+ // Fall through
913
+ case 'ML-KEM-1024':
914
+ if (key.type === 'public') {
915
+ return (0, _conversion.bufferLikeToArrayBuffer)(key.keyObject.handle.exportKey(_utils.KFormatType.DER, _utils.KeyEncoding.SPKI));
916
+ }
917
+ break;
918
+ }
919
+ throw new Error(`Unable to export a spki ${key.algorithm.name} ${key.type} key`);
920
+ };
921
+ const exportKeyPkcs8 = async key => {
922
+ switch (key.algorithm.name) {
923
+ case 'RSASSA-PKCS1-v1_5':
924
+ // Fall through
925
+ case 'RSA-PSS':
926
+ // Fall through
927
+ case 'RSA-OAEP':
928
+ if (key.type === 'private') {
929
+ return rsaExportKey(key, KWebCryptoKeyFormat.kWebCryptoKeyFormatPKCS8);
930
+ }
931
+ break;
932
+ case 'ECDSA':
933
+ // Fall through
934
+ case 'ECDH':
935
+ if (key.type === 'private') {
936
+ return ecExportKey(key, KWebCryptoKeyFormat.kWebCryptoKeyFormatPKCS8);
937
+ }
938
+ break;
939
+ case 'Ed25519':
940
+ // Fall through
941
+ case 'Ed448':
942
+ // Fall through
943
+ case 'X25519':
944
+ // Fall through
945
+ case 'X448':
946
+ if (key.type === 'private') {
947
+ // Export Ed/X key in PKCS8 DER format
948
+ return (0, _conversion.bufferLikeToArrayBuffer)(key.keyObject.handle.exportKey(_utils.KFormatType.DER, _utils.KeyEncoding.PKCS8));
949
+ }
950
+ break;
951
+ case 'ML-DSA-44':
952
+ // Fall through
953
+ case 'ML-DSA-65':
954
+ // Fall through
955
+ case 'ML-DSA-87':
956
+ if (key.type === 'private') {
957
+ // Export ML-DSA key in PKCS8 DER format
958
+ return (0, _conversion.bufferLikeToArrayBuffer)(key.keyObject.handle.exportKey(_utils.KFormatType.DER, _utils.KeyEncoding.PKCS8));
959
+ }
960
+ break;
961
+ case 'ML-KEM-512':
962
+ // Fall through
963
+ case 'ML-KEM-768':
964
+ // Fall through
965
+ case 'ML-KEM-1024':
966
+ if (key.type === 'private') {
967
+ return (0, _conversion.bufferLikeToArrayBuffer)(key.keyObject.handle.exportKey(_utils.KFormatType.DER, _utils.KeyEncoding.PKCS8));
968
+ }
969
+ break;
970
+ }
971
+ throw new Error(`Unable to export a pkcs8 ${key.algorithm.name} ${key.type} key`);
972
+ };
973
+ const exportKeyRaw = key => {
974
+ switch (key.algorithm.name) {
975
+ case 'ECDSA':
976
+ // Fall through
977
+ case 'ECDH':
978
+ if (key.type === 'public') {
979
+ return ecExportKey(key, KWebCryptoKeyFormat.kWebCryptoKeyFormatRaw);
980
+ }
981
+ break;
982
+ case 'Ed25519':
983
+ // Fall through
984
+ case 'Ed448':
985
+ // Fall through
986
+ case 'X25519':
987
+ // Fall through
988
+ case 'X448':
989
+ if (key.type === 'public') {
990
+ const exported = key.keyObject.handle.exportKey();
991
+ return (0, _conversion.bufferLikeToArrayBuffer)(exported);
992
+ }
993
+ break;
994
+ case 'ML-KEM-512':
995
+ // Fall through
996
+ case 'ML-KEM-768':
997
+ // Fall through
998
+ case 'ML-KEM-1024':
999
+ // Fall through
1000
+ case 'ML-DSA-44':
1001
+ // Fall through
1002
+ case 'ML-DSA-65':
1003
+ // Fall through
1004
+ case 'ML-DSA-87':
1005
+ if (key.type === 'public') {
1006
+ const exported = key.keyObject.handle.exportKey();
1007
+ return (0, _conversion.bufferLikeToArrayBuffer)(exported);
1008
+ }
1009
+ break;
1010
+ case 'AES-CTR':
1011
+ // Fall through
1012
+ case 'AES-CBC':
1013
+ // Fall through
1014
+ case 'AES-GCM':
1015
+ // Fall through
1016
+ case 'AES-KW':
1017
+ // Fall through
1018
+ case 'AES-OCB':
1019
+ // Fall through
1020
+ case 'ChaCha20-Poly1305':
1021
+ // Fall through
1022
+ case 'HMAC':
1023
+ // Fall through
1024
+ case 'KMAC128':
1025
+ // Fall through
1026
+ case 'KMAC256':
1027
+ {
1028
+ const exported = key.keyObject.export();
1029
+ // Convert Buffer to ArrayBuffer
1030
+ return exported.buffer.slice(exported.byteOffset, exported.byteOffset + exported.byteLength);
1031
+ }
1032
+ }
1033
+ throw (0, _errors.lazyDOMException)(`Unable to export a raw ${key.algorithm.name} ${key.type} key`, 'InvalidAccessError');
1034
+ };
1035
+ const exportKeyJWK = key => {
1036
+ const jwk = key.keyObject.handle.exportJwk({
1037
+ key_ops: key.usages,
1038
+ ext: key.extractable
1039
+ }, true);
1040
+ switch (key.algorithm.name) {
1041
+ case 'RSASSA-PKCS1-v1_5':
1042
+ jwk.alg = (0, _hashnames.normalizeHashName)(key.algorithm.hash, _hashnames.HashContext.JwkRsa);
1043
+ return jwk;
1044
+ case 'RSA-PSS':
1045
+ jwk.alg = (0, _hashnames.normalizeHashName)(key.algorithm.hash, _hashnames.HashContext.JwkRsaPss);
1046
+ return jwk;
1047
+ case 'RSA-OAEP':
1048
+ jwk.alg = (0, _hashnames.normalizeHashName)(key.algorithm.hash, _hashnames.HashContext.JwkRsaOaep);
1049
+ return jwk;
1050
+ case 'HMAC':
1051
+ jwk.alg = (0, _hashnames.normalizeHashName)(key.algorithm.hash, _hashnames.HashContext.JwkHmac);
1052
+ return jwk;
1053
+ case 'KMAC128':
1054
+ jwk.alg = 'K128';
1055
+ return jwk;
1056
+ case 'KMAC256':
1057
+ jwk.alg = 'K256';
1058
+ return jwk;
1059
+ case 'ECDSA':
1060
+ // Fall through
1061
+ case 'ECDH':
1062
+ jwk.crv ||= key.algorithm.namedCurve;
1063
+ return jwk;
1064
+ case 'Ed25519':
1065
+ // Fall through
1066
+ case 'Ed448':
1067
+ // Fall through
1068
+ case 'X25519':
1069
+ // Fall through
1070
+ case 'X448':
1071
+ return jwk;
1072
+ case 'AES-CTR':
1073
+ // Fall through
1074
+ case 'AES-CBC':
1075
+ // Fall through
1076
+ case 'AES-GCM':
1077
+ // Fall through
1078
+ case 'AES-KW':
1079
+ // Fall through
1080
+ case 'AES-OCB':
1081
+ // Fall through
1082
+ case 'ChaCha20-Poly1305':
1083
+ if (key.algorithm.length === undefined) {
1084
+ throw (0, _errors.lazyDOMException)(`Algorithm ${key.algorithm.name} missing required length property`, 'InvalidAccessError');
1085
+ }
1086
+ jwk.alg = getAlgorithmName(key.algorithm.name, key.algorithm.length);
1087
+ return jwk;
1088
+ default:
1089
+ // Fall through
1090
+ }
1091
+ throw (0, _errors.lazyDOMException)(`JWK export not yet supported: ${key.algorithm.name}`, 'NotSupportedError');
1092
+ };
1093
+ const importGenericSecretKey = async ({
1094
+ name,
1095
+ length
1096
+ }, format, keyData, extractable, keyUsages) => {
1097
+ if (extractable) {
1098
+ throw new Error(`${name} keys are not extractable`);
1099
+ }
1100
+ if (hasAnyNotIn(keyUsages, ['deriveKey', 'deriveBits'])) {
1101
+ throw new Error(`Unsupported key usage for a ${name} key`);
1102
+ }
1103
+ switch (format) {
1104
+ case 'raw':
1105
+ {
1106
+ if (hasAnyNotIn(keyUsages, ['deriveKey', 'deriveBits'])) {
1107
+ throw new Error(`Unsupported key usage for a ${name} key`);
1108
+ }
1109
+ const checkLength = typeof keyData === 'string' || _safeBuffer.Buffer.isBuffer(keyData) ? keyData.length * 8 : keyData.byteLength * 8;
1110
+ if (length !== undefined && length !== checkLength) {
1111
+ throw new Error('Invalid key length');
1112
+ }
1113
+ const keyObject = (0, _keys.createSecretKey)(keyData);
1114
+ return new _keys.CryptoKey(keyObject, {
1115
+ name
1116
+ }, keyUsages, false);
1117
+ }
1118
+ }
1119
+ throw new Error(`Unable to import ${name} key with format ${format}`);
1120
+ };
1121
+ const hkdfImportKey = async (format, keyData, algorithm, extractable, keyUsages) => {
1122
+ const {
1123
+ name
1124
+ } = algorithm;
1125
+ if (hasAnyNotIn(keyUsages, ['deriveKey', 'deriveBits'])) {
1126
+ throw new Error(`Unsupported key usage for a ${name} key`);
1127
+ }
1128
+ switch (format) {
1129
+ case 'raw':
1130
+ {
1131
+ const keyObject = (0, _keys.createSecretKey)(keyData);
1132
+ return new _keys.CryptoKey(keyObject, {
1133
+ name
1134
+ }, keyUsages, extractable);
1135
+ }
1136
+ default:
1137
+ throw new Error(`Unable to import ${name} key with format ${format}`);
1138
+ }
1139
+ };
1140
+ const checkCryptoKeyPairUsages = pair => {
1141
+ if (pair.privateKey && pair.privateKey instanceof _keys.CryptoKey && pair.privateKey.keyUsages && pair.privateKey.keyUsages.length > 0) {
1142
+ return;
1143
+ }
1144
+ throw (0, _errors.lazyDOMException)('Usages cannot be empty when creating a key.', 'SyntaxError');
1145
+ };
1146
+ function argon2DeriveBits(algorithm, baseKey, length) {
1147
+ if (length === 0 || length % 8 !== 0) {
1148
+ throw (0, _errors.lazyDOMException)('Invalid Argon2 derived key length', 'OperationError');
1149
+ }
1150
+ if (length < 32) {
1151
+ throw (0, _errors.lazyDOMException)('Argon2 derived key length must be at least 32 bits', 'OperationError');
1152
+ }
1153
+ const {
1154
+ nonce,
1155
+ parallelism,
1156
+ memory,
1157
+ passes,
1158
+ secretValue,
1159
+ associatedData
1160
+ } = algorithm;
1161
+ const tagLength = length / 8;
1162
+ const message = baseKey.keyObject.export();
1163
+ const algName = algorithm.name.toLowerCase();
1164
+ const result = (0, _argon.argon2Sync)(algName, {
1165
+ message,
1166
+ nonce: nonce ?? new Uint8Array(0),
1167
+ parallelism: parallelism ?? 1,
1168
+ tagLength,
1169
+ memory: memory ?? 65536,
1170
+ passes: passes ?? 3,
1171
+ secret: secretValue,
1172
+ associatedData,
1173
+ version: algorithm.version
1174
+ });
1175
+ return (0, _conversion.bufferLikeToArrayBuffer)(result);
1176
+ }
1177
+
1178
+ // Type guard to check if result is CryptoKeyPair
1179
+ function isCryptoKeyPair(result) {
1180
+ return 'publicKey' in result && 'privateKey' in result;
1181
+ }
1182
+ function hmacSignVerify(key, data, signature) {
1183
+ // Get hash algorithm from key
1184
+ const hashName = (0, _hashnames.normalizeHashName)(key.algorithm.hash);
1185
+
1186
+ // Export the secret key material
1187
+ const keyData = key.keyObject.export();
1188
+
1189
+ // Create HMAC and compute digest
1190
+ const hmac = (0, _hmac.createHmac)(hashName, keyData);
1191
+ hmac.update((0, _conversion.bufferLikeToArrayBuffer)(data));
1192
+ const computed = hmac.digest();
1193
+ if (signature === undefined) {
1194
+ // Sign operation - return the HMAC as ArrayBuffer
1195
+ return computed.buffer.slice(computed.byteOffset, computed.byteOffset + computed.byteLength);
1196
+ }
1197
+ const sigBuffer = (0, _conversion.bufferLikeToArrayBuffer)(signature);
1198
+ const computedBuffer = computed.buffer.slice(computed.byteOffset, computed.byteOffset + computed.byteLength);
1199
+ if (computedBuffer.byteLength !== sigBuffer.byteLength) {
1200
+ return false;
1201
+ }
1202
+ return (0, _timingSafeEqual.timingSafeEqual)(new Uint8Array(computedBuffer), new Uint8Array(sigBuffer));
1203
+ }
1204
+ function rsaSignVerify(key, data, padding, signature, saltLength) {
1205
+ // Get hash algorithm from key
1206
+ const hashName = (0, _hashnames.normalizeHashName)(key.algorithm.hash);
1207
+
1208
+ // Determine RSA padding constant
1209
+ const RSA_PKCS1_PADDING = 1;
1210
+ const RSA_PKCS1_PSS_PADDING = 6;
1211
+ const paddingValue = padding === 'pss' ? RSA_PKCS1_PSS_PADDING : RSA_PKCS1_PADDING;
1212
+ if (signature === undefined) {
1213
+ // Sign operation
1214
+ const signer = (0, _signVerify.createSign)(hashName);
1215
+ signer.update(data);
1216
+ const sig = signer.sign({
1217
+ key: key,
1218
+ padding: paddingValue,
1219
+ saltLength
1220
+ });
1221
+ return sig.buffer.slice(sig.byteOffset, sig.byteOffset + sig.byteLength);
1222
+ }
1223
+
1224
+ // Verify operation
1225
+ const verifier = (0, _signVerify.createVerify)(hashName);
1226
+ verifier.update(data);
1227
+ return verifier.verify({
1228
+ key: key,
1229
+ padding: paddingValue,
1230
+ saltLength
1231
+ }, signature);
1232
+ }
1233
+ function edSignVerify(key, data, signature) {
1234
+ const isSign = signature === undefined;
1235
+ const expectedKeyType = isSign ? 'private' : 'public';
1236
+ if (key.type !== expectedKeyType) {
1237
+ throw (0, _errors.lazyDOMException)(`Key must be a ${expectedKeyType} key`, 'InvalidAccessError');
1238
+ }
1239
+
1240
+ // Get curve type from algorithm name (Ed25519 or Ed448)
1241
+ const algorithmName = key.algorithm.name;
1242
+ const curveType = algorithmName.toLowerCase();
1243
+
1244
+ // Create Ed instance with the curve
1245
+ const ed = new _ed.Ed(curveType, {});
1246
+
1247
+ // Export raw key bytes (exportKey with no format returns raw for Ed keys)
1248
+ const rawKey = key.keyObject.handle.exportKey();
1249
+ const dataBuffer = (0, _conversion.bufferLikeToArrayBuffer)(data);
1250
+ if (isSign) {
1251
+ // Sign operation - use raw private key
1252
+ const sig = ed.signSync(dataBuffer, rawKey);
1253
+ return sig;
1254
+ } else {
1255
+ // Verify operation - use raw public key
1256
+ const signatureBuffer = (0, _conversion.bufferLikeToArrayBuffer)(signature);
1257
+ return ed.verifySync(signatureBuffer, dataBuffer, rawKey);
1258
+ }
1259
+ }
1260
+ function mldsaSignVerify(key, data, signature) {
1261
+ const isSign = signature === undefined;
1262
+ const expectedKeyType = isSign ? 'private' : 'public';
1263
+ if (key.type !== expectedKeyType) {
1264
+ throw (0, _errors.lazyDOMException)(`Key must be a ${expectedKeyType} key`, 'InvalidAccessError');
1265
+ }
1266
+ const dataBuffer = (0, _conversion.bufferLikeToArrayBuffer)(data);
1267
+ if (isSign) {
1268
+ const signer = (0, _signVerify.createSign)('');
1269
+ signer.update(dataBuffer);
1270
+ const sig = signer.sign({
1271
+ key: key
1272
+ });
1273
+ return sig.buffer.slice(sig.byteOffset, sig.byteOffset + sig.byteLength);
1274
+ } else {
1275
+ const signatureBuffer = (0, _conversion.bufferLikeToArrayBuffer)(signature);
1276
+ const verifier = (0, _signVerify.createVerify)('');
1277
+ verifier.update(dataBuffer);
1278
+ return verifier.verify({
1279
+ key: key
1280
+ }, signatureBuffer);
1281
+ }
1282
+ }
1283
+ const signVerify = (algorithm, key, data, signature) => {
1284
+ const usage = signature === undefined ? 'sign' : 'verify';
1285
+ algorithm = normalizeAlgorithm(algorithm, usage);
1286
+ if (!key.usages.includes(usage) || algorithm.name !== key.algorithm.name) {
1287
+ throw (0, _errors.lazyDOMException)(`Unable to use this key to ${usage}`, 'InvalidAccessError');
1288
+ }
1289
+ switch (algorithm.name) {
1290
+ case 'ECDSA':
1291
+ return (0, _ec.ecdsaSignVerify)(key, data, algorithm, signature);
1292
+ case 'HMAC':
1293
+ return hmacSignVerify(key, data, signature);
1294
+ case 'RSASSA-PKCS1-v1_5':
1295
+ return rsaSignVerify(key, data, 'pkcs1', signature);
1296
+ case 'RSA-PSS':
1297
+ return rsaSignVerify(key, data, 'pss', signature, algorithm.saltLength);
1298
+ case 'Ed25519':
1299
+ case 'Ed448':
1300
+ return edSignVerify(key, data, signature);
1301
+ case 'ML-DSA-44':
1302
+ case 'ML-DSA-65':
1303
+ case 'ML-DSA-87':
1304
+ return mldsaSignVerify(key, data, signature);
1305
+ case 'KMAC128':
1306
+ case 'KMAC256':
1307
+ return kmacSignVerify(key, data, algorithm, signature);
1308
+ }
1309
+ throw (0, _errors.lazyDOMException)(`Unrecognized algorithm name '${algorithm.name}' for '${usage}'`, 'NotSupportedError');
1310
+ };
1311
+ const cipherOrWrap = async (mode, algorithm, key, data, op) => {
1312
+ if (key.algorithm.name !== algorithm.name || !key.usages.includes(op)) {
1313
+ throw (0, _errors.lazyDOMException)('The requested operation is not valid for the provided key', 'InvalidAccessError');
1314
+ }
1315
+ (0, _validation.validateMaxBufferLength)(data, 'data');
1316
+ switch (algorithm.name) {
1317
+ case 'RSA-OAEP':
1318
+ return rsaCipher(mode, key, data, algorithm);
1319
+ case 'AES-CTR':
1320
+ // Fall through
1321
+ case 'AES-CBC':
1322
+ // Fall through
1323
+ case 'AES-GCM':
1324
+ // Fall through
1325
+ case 'AES-OCB':
1326
+ return aesCipher(mode, key, data, algorithm);
1327
+ case 'AES-KW':
1328
+ return aesKwCipher(mode, key, data);
1329
+ case 'ChaCha20-Poly1305':
1330
+ return chaCha20Poly1305Cipher(mode, key, data, algorithm);
1331
+ }
1332
+ };
1333
+ const SUPPORTED_ALGORITHMS = {
1334
+ encrypt: new Set(['RSA-OAEP', 'AES-CTR', 'AES-CBC', 'AES-GCM', 'AES-OCB', 'ChaCha20-Poly1305']),
1335
+ decrypt: new Set(['RSA-OAEP', 'AES-CTR', 'AES-CBC', 'AES-GCM', 'AES-OCB', 'ChaCha20-Poly1305']),
1336
+ sign: new Set(['RSASSA-PKCS1-v1_5', 'RSA-PSS', 'ECDSA', 'HMAC', 'KMAC128', 'KMAC256', 'Ed25519', 'Ed448', 'ML-DSA-44', 'ML-DSA-65', 'ML-DSA-87']),
1337
+ verify: new Set(['RSASSA-PKCS1-v1_5', 'RSA-PSS', 'ECDSA', 'HMAC', 'KMAC128', 'KMAC256', 'Ed25519', 'Ed448', 'ML-DSA-44', 'ML-DSA-65', 'ML-DSA-87']),
1338
+ digest: new Set(['SHA-1', 'SHA-256', 'SHA-384', 'SHA-512', 'SHA3-256', 'SHA3-384', 'SHA3-512', 'cSHAKE128', 'cSHAKE256']),
1339
+ generateKey: new Set(['RSASSA-PKCS1-v1_5', 'RSA-PSS', 'RSA-OAEP', 'ECDSA', 'ECDH', 'Ed25519', 'Ed448', 'X25519', 'X448', 'AES-CTR', 'AES-CBC', 'AES-GCM', 'AES-KW', 'AES-OCB', 'ChaCha20-Poly1305', 'HMAC', 'KMAC128', 'KMAC256', 'ML-DSA-44', 'ML-DSA-65', 'ML-DSA-87', 'ML-KEM-512', 'ML-KEM-768', 'ML-KEM-1024']),
1340
+ importKey: new Set(['RSASSA-PKCS1-v1_5', 'RSA-PSS', 'RSA-OAEP', 'ECDSA', 'ECDH', 'Ed25519', 'Ed448', 'X25519', 'X448', 'AES-CTR', 'AES-CBC', 'AES-GCM', 'AES-KW', 'AES-OCB', 'ChaCha20-Poly1305', 'HMAC', 'KMAC128', 'KMAC256', 'HKDF', 'PBKDF2', 'Argon2d', 'Argon2i', 'Argon2id', 'ML-DSA-44', 'ML-DSA-65', 'ML-DSA-87', 'ML-KEM-512', 'ML-KEM-768', 'ML-KEM-1024']),
1341
+ exportKey: new Set(['RSASSA-PKCS1-v1_5', 'RSA-PSS', 'RSA-OAEP', 'ECDSA', 'ECDH', 'Ed25519', 'Ed448', 'X25519', 'X448', 'AES-CTR', 'AES-CBC', 'AES-GCM', 'AES-KW', 'AES-OCB', 'ChaCha20-Poly1305', 'HMAC', 'KMAC128', 'KMAC256', 'ML-DSA-44', 'ML-DSA-65', 'ML-DSA-87', 'ML-KEM-512', 'ML-KEM-768', 'ML-KEM-1024']),
1342
+ deriveBits: new Set(['PBKDF2', 'HKDF', 'ECDH', 'X25519', 'X448', 'Argon2d', 'Argon2i', 'Argon2id']),
1343
+ wrapKey: new Set(['AES-CTR', 'AES-CBC', 'AES-GCM', 'AES-KW', 'AES-OCB', 'ChaCha20-Poly1305', 'RSA-OAEP']),
1344
+ unwrapKey: new Set(['AES-CTR', 'AES-CBC', 'AES-GCM', 'AES-KW', 'AES-OCB', 'ChaCha20-Poly1305', 'RSA-OAEP']),
1345
+ encapsulateBits: new Set(['ML-KEM-512', 'ML-KEM-768', 'ML-KEM-1024']),
1346
+ decapsulateBits: new Set(['ML-KEM-512', 'ML-KEM-768', 'ML-KEM-1024']),
1347
+ encapsulateKey: new Set(['ML-KEM-512', 'ML-KEM-768', 'ML-KEM-1024']),
1348
+ decapsulateKey: new Set(['ML-KEM-512', 'ML-KEM-768', 'ML-KEM-1024'])
1349
+ };
1350
+ const ASYMMETRIC_ALGORITHMS = new Set(['RSASSA-PKCS1-v1_5', 'RSA-PSS', 'RSA-OAEP', 'ECDSA', 'ECDH', 'Ed25519', 'Ed448', 'X25519', 'X448', 'ML-DSA-44', 'ML-DSA-65', 'ML-DSA-87', 'ML-KEM-512', 'ML-KEM-768', 'ML-KEM-1024']);
1351
+ class Subtle {
1352
+ static supports(operation, algorithm, _lengthOrAdditionalAlgorithm) {
1353
+ let normalizedAlgorithm;
1354
+ try {
1355
+ normalizedAlgorithm = normalizeAlgorithm(algorithm, operation === 'getPublicKey' ? 'exportKey' : operation);
1356
+ } catch {
1357
+ return false;
1358
+ }
1359
+ const name = normalizedAlgorithm.name;
1360
+ if (operation === 'getPublicKey') {
1361
+ return ASYMMETRIC_ALGORITHMS.has(name);
1362
+ }
1363
+ if (operation === 'deriveKey') {
1364
+ var _SUPPORTED_ALGORITHMS;
1365
+ // deriveKey decomposes to deriveBits + importKey of additional algorithm
1366
+ if (!((_SUPPORTED_ALGORITHMS = SUPPORTED_ALGORITHMS.deriveBits) !== null && _SUPPORTED_ALGORITHMS !== void 0 && _SUPPORTED_ALGORITHMS.has(name))) return false;
1367
+ if (_lengthOrAdditionalAlgorithm != null) {
1368
+ try {
1369
+ var _SUPPORTED_ALGORITHMS2;
1370
+ const additionalAlg = normalizeAlgorithm(_lengthOrAdditionalAlgorithm, 'importKey');
1371
+ return ((_SUPPORTED_ALGORITHMS2 = SUPPORTED_ALGORITHMS.importKey) === null || _SUPPORTED_ALGORITHMS2 === void 0 ? void 0 : _SUPPORTED_ALGORITHMS2.has(additionalAlg.name)) ?? false;
1372
+ } catch {
1373
+ return false;
1374
+ }
1375
+ }
1376
+ return true;
1377
+ }
1378
+ const supported = SUPPORTED_ALGORITHMS[operation];
1379
+ if (!supported) return false;
1380
+ return supported.has(name);
1381
+ }
1382
+ async decrypt(algorithm, key, data) {
1383
+ const normalizedAlgorithm = normalizeAlgorithm(algorithm, 'decrypt');
1384
+ return cipherOrWrap(CipherOrWrapMode.kWebCryptoCipherDecrypt, normalizedAlgorithm, key, (0, _conversion.bufferLikeToArrayBuffer)(data), 'decrypt');
1385
+ }
1386
+ async digest(algorithm, data) {
1387
+ const normalizedAlgorithm = normalizeAlgorithm(algorithm, 'digest');
1388
+ return (0, _hash.asyncDigest)(normalizedAlgorithm, data);
1389
+ }
1390
+ async deriveBits(algorithm, baseKey, length) {
1391
+ // Allow either deriveBits OR deriveKey usage (WebCrypto spec allows both)
1392
+ if (!baseKey.keyUsages.includes('deriveBits') && !baseKey.keyUsages.includes('deriveKey')) {
1393
+ throw new Error('baseKey does not have deriveBits or deriveKey usage');
1394
+ }
1395
+ if (baseKey.algorithm.name !== algorithm.name) throw new Error('Key algorithm mismatch');
1396
+ switch (algorithm.name) {
1397
+ case 'PBKDF2':
1398
+ return (0, _pbkdf.pbkdf2DeriveBits)(algorithm, baseKey, length);
1399
+ case 'X25519':
1400
+ // Fall through
1401
+ case 'X448':
1402
+ return (0, _ed.xDeriveBits)(algorithm, baseKey, length);
1403
+ case 'ECDH':
1404
+ return (0, _ec.ecDeriveBits)(algorithm, baseKey, length);
1405
+ case 'HKDF':
1406
+ return (0, _hkdf.hkdfDeriveBits)(algorithm, baseKey, length);
1407
+ case 'Argon2d':
1408
+ case 'Argon2i':
1409
+ case 'Argon2id':
1410
+ return argon2DeriveBits(algorithm, baseKey, length);
1411
+ }
1412
+ throw new Error(`'subtle.deriveBits()' for ${algorithm.name} is not implemented.`);
1413
+ }
1414
+ async deriveKey(algorithm, baseKey, derivedKeyAlgorithm, extractable, keyUsages) {
1415
+ // Validate baseKey usage
1416
+ if (!baseKey.usages.includes('deriveKey') && !baseKey.usages.includes('deriveBits')) {
1417
+ throw (0, _errors.lazyDOMException)('baseKey does not have deriveKey or deriveBits usage', 'InvalidAccessError');
1418
+ }
1419
+
1420
+ // Calculate required key length
1421
+ const length = getKeyLength(derivedKeyAlgorithm);
1422
+
1423
+ // Step 1: Derive bits
1424
+ let derivedBits;
1425
+ if (baseKey.algorithm.name !== algorithm.name) throw new Error('Key algorithm mismatch');
1426
+ switch (algorithm.name) {
1427
+ case 'PBKDF2':
1428
+ derivedBits = await (0, _pbkdf.pbkdf2DeriveBits)(algorithm, baseKey, length);
1429
+ break;
1430
+ case 'X25519':
1431
+ // Fall through
1432
+ case 'X448':
1433
+ derivedBits = await (0, _ed.xDeriveBits)(algorithm, baseKey, length);
1434
+ break;
1435
+ case 'ECDH':
1436
+ derivedBits = await (0, _ec.ecDeriveBits)(algorithm, baseKey, length);
1437
+ break;
1438
+ case 'HKDF':
1439
+ derivedBits = (0, _hkdf.hkdfDeriveBits)(algorithm, baseKey, length);
1440
+ break;
1441
+ case 'Argon2d':
1442
+ case 'Argon2i':
1443
+ case 'Argon2id':
1444
+ derivedBits = argon2DeriveBits(algorithm, baseKey, length);
1445
+ break;
1446
+ default:
1447
+ throw new Error(`'subtle.deriveKey()' for ${algorithm.name} is not implemented.`);
1448
+ }
1449
+
1450
+ // Step 2: Import as key
1451
+ return this.importKey('raw', derivedBits, derivedKeyAlgorithm, extractable, keyUsages);
1452
+ }
1453
+ async encrypt(algorithm, key, data) {
1454
+ const normalizedAlgorithm = normalizeAlgorithm(algorithm, 'encrypt');
1455
+ return cipherOrWrap(CipherOrWrapMode.kWebCryptoCipherEncrypt, normalizedAlgorithm, key, (0, _conversion.bufferLikeToArrayBuffer)(data), 'encrypt');
1456
+ }
1457
+ async exportKey(format, key) {
1458
+ if (!key.extractable) throw new Error('key is not extractable');
1459
+ if (format === 'raw-seed') {
1460
+ const pqcAlgos = ['ML-KEM-512', 'ML-KEM-768', 'ML-KEM-1024', 'ML-DSA-44', 'ML-DSA-65', 'ML-DSA-87'];
1461
+ if (!pqcAlgos.includes(key.algorithm.name)) {
1462
+ throw (0, _errors.lazyDOMException)('raw-seed export only supported for PQC keys', 'NotSupportedError');
1463
+ }
1464
+ if (key.type !== 'private') {
1465
+ throw (0, _errors.lazyDOMException)('raw-seed export requires a private key', 'InvalidAccessError');
1466
+ }
1467
+ return (0, _conversion.bufferLikeToArrayBuffer)(key.keyObject.handle.exportKey());
1468
+ }
1469
+
1470
+ // Note: 'raw-seed' is handled above; do NOT normalize it here
1471
+ if (format === 'raw-secret' || format === 'raw-public') format = 'raw';
1472
+ switch (format) {
1473
+ case 'spki':
1474
+ return await exportKeySpki(key);
1475
+ case 'pkcs8':
1476
+ return await exportKeyPkcs8(key);
1477
+ case 'jwk':
1478
+ return exportKeyJWK(key);
1479
+ case 'raw':
1480
+ return exportKeyRaw(key);
1481
+ }
1482
+ }
1483
+ async wrapKey(format, key, wrappingKey, wrapAlgorithm) {
1484
+ // Validate wrappingKey usage
1485
+ if (!wrappingKey.usages.includes('wrapKey')) {
1486
+ throw (0, _errors.lazyDOMException)('wrappingKey does not have wrapKey usage', 'InvalidAccessError');
1487
+ }
1488
+
1489
+ // Step 1: Export the key
1490
+ const exported = await this.exportKey(format, key);
1491
+
1492
+ // Step 2: Convert to ArrayBuffer if JWK
1493
+ let keyData;
1494
+ if (format === 'jwk') {
1495
+ const jwkString = JSON.stringify(exported);
1496
+ const buffer = _safeBuffer.Buffer.from(jwkString, 'utf8');
1497
+
1498
+ // For AES-KW, pad to multiple of 8 bytes (accounting for null terminator)
1499
+ if (wrapAlgorithm.name === 'AES-KW') {
1500
+ const length = buffer.length;
1501
+ // Add 1 for null terminator, then pad to multiple of 8
1502
+ const paddedLength = Math.ceil((length + 1) / 8) * 8;
1503
+ const paddedBuffer = _safeBuffer.Buffer.alloc(paddedLength);
1504
+ buffer.copy(paddedBuffer);
1505
+ // Null terminator for JSON string (remaining bytes are already zeros from alloc)
1506
+ paddedBuffer.writeUInt8(0, length);
1507
+ keyData = (0, _conversion.bufferLikeToArrayBuffer)(paddedBuffer);
1508
+ } else {
1509
+ keyData = (0, _conversion.bufferLikeToArrayBuffer)(buffer);
1510
+ }
1511
+ } else {
1512
+ keyData = exported;
1513
+ }
1514
+
1515
+ // Step 3: Encrypt the exported key
1516
+ return cipherOrWrap(CipherOrWrapMode.kWebCryptoCipherEncrypt, wrapAlgorithm, wrappingKey, keyData, 'wrapKey');
1517
+ }
1518
+ async unwrapKey(format, wrappedKey, unwrappingKey, unwrapAlgorithm, unwrappedKeyAlgorithm, extractable, keyUsages) {
1519
+ // Validate unwrappingKey usage
1520
+ if (!unwrappingKey.usages.includes('unwrapKey')) {
1521
+ throw (0, _errors.lazyDOMException)('unwrappingKey does not have unwrapKey usage', 'InvalidAccessError');
1522
+ }
1523
+
1524
+ // Step 1: Decrypt the wrapped key
1525
+ const decrypted = await cipherOrWrap(CipherOrWrapMode.kWebCryptoCipherDecrypt, unwrapAlgorithm, unwrappingKey, (0, _conversion.bufferLikeToArrayBuffer)(wrappedKey), 'unwrapKey');
1526
+
1527
+ // Step 2: Convert to appropriate format
1528
+ let keyData;
1529
+ if (format === 'jwk') {
1530
+ const buffer = _safeBuffer.Buffer.from(decrypted);
1531
+ // For AES-KW, the data may be padded - find the null terminator
1532
+ let jwkString;
1533
+ if (unwrapAlgorithm.name === 'AES-KW') {
1534
+ // Find the null terminator (if present) to get the original string
1535
+ const nullIndex = buffer.indexOf(0);
1536
+ if (nullIndex !== -1) {
1537
+ jwkString = buffer.toString('utf8', 0, nullIndex);
1538
+ } else {
1539
+ // No null terminator, try to parse the whole buffer
1540
+ jwkString = buffer.toString('utf8').trim();
1541
+ }
1542
+ } else {
1543
+ jwkString = buffer.toString('utf8');
1544
+ }
1545
+ keyData = JSON.parse(jwkString);
1546
+ } else {
1547
+ keyData = decrypted;
1548
+ }
1549
+
1550
+ // Step 3: Import the key
1551
+ return this.importKey(format, keyData, unwrappedKeyAlgorithm, extractable, keyUsages);
1552
+ }
1553
+ async generateKey(algorithm, extractable, keyUsages) {
1554
+ algorithm = normalizeAlgorithm(algorithm, 'generateKey');
1555
+ let result;
1556
+ switch (algorithm.name) {
1557
+ case 'RSASSA-PKCS1-v1_5':
1558
+ // Fall through
1559
+ case 'RSA-PSS':
1560
+ // Fall through
1561
+ case 'RSA-OAEP':
1562
+ result = await (0, _rsa.rsa_generateKeyPair)(algorithm, extractable, keyUsages);
1563
+ break;
1564
+ case 'ECDSA':
1565
+ // Fall through
1566
+ case 'ECDH':
1567
+ result = await (0, _ec.ec_generateKeyPair)(algorithm.name, algorithm.namedCurve, extractable, keyUsages);
1568
+ checkCryptoKeyPairUsages(result);
1569
+ break;
1570
+ case 'AES-CTR':
1571
+ // Fall through
1572
+ case 'AES-CBC':
1573
+ // Fall through
1574
+ case 'AES-GCM':
1575
+ // Fall through
1576
+ case 'AES-KW':
1577
+ // Fall through
1578
+ case 'AES-OCB':
1579
+ result = await aesGenerateKey(algorithm, extractable, keyUsages);
1580
+ break;
1581
+ case 'ChaCha20-Poly1305':
1582
+ {
1583
+ const length = algorithm.length ?? 256;
1584
+ if (length !== 256) {
1585
+ throw (0, _errors.lazyDOMException)('ChaCha20-Poly1305 only supports 256-bit keys', 'NotSupportedError');
1586
+ }
1587
+ result = await aesGenerateKey({
1588
+ name: 'ChaCha20-Poly1305',
1589
+ length: 256
1590
+ }, extractable, keyUsages);
1591
+ break;
1592
+ }
1593
+ case 'HMAC':
1594
+ result = await hmacGenerateKey(algorithm, extractable, keyUsages);
1595
+ break;
1596
+ case 'KMAC128':
1597
+ // Fall through
1598
+ case 'KMAC256':
1599
+ result = await kmacGenerateKey(algorithm, extractable, keyUsages);
1600
+ break;
1601
+ case 'Ed25519':
1602
+ // Fall through
1603
+ case 'Ed448':
1604
+ result = await (0, _ed.ed_generateKeyPairWebCrypto)(algorithm.name.toLowerCase(), extractable, keyUsages);
1605
+ checkCryptoKeyPairUsages(result);
1606
+ break;
1607
+ case 'ML-DSA-44':
1608
+ // Fall through
1609
+ case 'ML-DSA-65':
1610
+ // Fall through
1611
+ case 'ML-DSA-87':
1612
+ result = await (0, _mldsa.mldsa_generateKeyPairWebCrypto)(algorithm.name, extractable, keyUsages);
1613
+ checkCryptoKeyPairUsages(result);
1614
+ break;
1615
+ case 'X25519':
1616
+ // Fall through
1617
+ case 'X448':
1618
+ result = await (0, _ed.x_generateKeyPairWebCrypto)(algorithm.name.toLowerCase(), extractable, keyUsages);
1619
+ checkCryptoKeyPairUsages(result);
1620
+ break;
1621
+ case 'ML-KEM-512':
1622
+ // Fall through
1623
+ case 'ML-KEM-768':
1624
+ // Fall through
1625
+ case 'ML-KEM-1024':
1626
+ result = await (0, _mlkem.mlkem_generateKeyPairWebCrypto)(algorithm.name, extractable, keyUsages);
1627
+ checkCryptoKeyPairUsages(result);
1628
+ break;
1629
+ default:
1630
+ throw new Error(`'subtle.generateKey()' is not implemented for ${algorithm.name}.
1631
+ Unrecognized algorithm name`);
1632
+ }
1633
+ return result;
1634
+ }
1635
+ async getPublicKey(key, keyUsages) {
1636
+ if (key.type === 'secret') {
1637
+ throw (0, _errors.lazyDOMException)('key must be a private key', 'NotSupportedError');
1638
+ }
1639
+ if (key.type !== 'private') {
1640
+ throw (0, _errors.lazyDOMException)('key must be a private key', 'InvalidAccessError');
1641
+ }
1642
+ const publicKeyObject = (0, _keys.createPublicKey)(key.keyObject);
1643
+ return publicKeyObject.toCryptoKey(key.algorithm, true, keyUsages);
1644
+ }
1645
+ async importKey(format, data, algorithm, extractable, keyUsages) {
1646
+ // Note: 'raw-seed' is NOT normalized — PQC import functions handle it directly
1647
+ if (format === 'raw-secret' || format === 'raw-public') format = 'raw';
1648
+ const normalizedAlgorithm = normalizeAlgorithm(algorithm, 'importKey');
1649
+ let result;
1650
+ switch (normalizedAlgorithm.name) {
1651
+ case 'RSASSA-PKCS1-v1_5':
1652
+ // Fall through
1653
+ case 'RSA-PSS':
1654
+ // Fall through
1655
+ case 'RSA-OAEP':
1656
+ result = rsaImportKey(format, data, normalizedAlgorithm, extractable, keyUsages);
1657
+ break;
1658
+ case 'ECDSA':
1659
+ // Fall through
1660
+ case 'ECDH':
1661
+ result = (0, _ec.ecImportKey)(format, data, normalizedAlgorithm, extractable, keyUsages);
1662
+ break;
1663
+ case 'HMAC':
1664
+ result = await hmacImportKey(normalizedAlgorithm, format, data, extractable, keyUsages);
1665
+ break;
1666
+ case 'KMAC128':
1667
+ // Fall through
1668
+ case 'KMAC256':
1669
+ result = await kmacImportKey(normalizedAlgorithm, format, data, extractable, keyUsages);
1670
+ break;
1671
+ case 'AES-CTR':
1672
+ // Fall through
1673
+ case 'AES-CBC':
1674
+ // Fall through
1675
+ case 'AES-GCM':
1676
+ // Fall through
1677
+ case 'AES-KW':
1678
+ // Fall through
1679
+ case 'AES-OCB':
1680
+ // Fall through
1681
+ case 'ChaCha20-Poly1305':
1682
+ result = await aesImportKey(normalizedAlgorithm, format, data, extractable, keyUsages);
1683
+ break;
1684
+ case 'PBKDF2':
1685
+ case 'Argon2d':
1686
+ case 'Argon2i':
1687
+ case 'Argon2id':
1688
+ result = await importGenericSecretKey(normalizedAlgorithm, format, data, extractable, keyUsages);
1689
+ break;
1690
+ case 'HKDF':
1691
+ result = await hkdfImportKey(format, data, normalizedAlgorithm, extractable, keyUsages);
1692
+ break;
1693
+ case 'X25519':
1694
+ // Fall through
1695
+ case 'X448':
1696
+ // Fall through
1697
+ case 'Ed25519':
1698
+ // Fall through
1699
+ case 'Ed448':
1700
+ result = edImportKey(format, data, normalizedAlgorithm, extractable, keyUsages);
1701
+ break;
1702
+ case 'ML-DSA-44':
1703
+ // Fall through
1704
+ case 'ML-DSA-65':
1705
+ // Fall through
1706
+ case 'ML-DSA-87':
1707
+ result = mldsaImportKey(format, data, normalizedAlgorithm, extractable, keyUsages);
1708
+ break;
1709
+ case 'ML-KEM-512':
1710
+ // Fall through
1711
+ case 'ML-KEM-768':
1712
+ // Fall through
1713
+ case 'ML-KEM-1024':
1714
+ result = mlkemImportKey(format, data, normalizedAlgorithm, extractable, keyUsages);
1715
+ break;
1716
+ default:
1717
+ throw new Error(`"subtle.importKey()" is not implemented for ${normalizedAlgorithm.name}`);
1718
+ }
1719
+ if ((result.type === 'secret' || result.type === 'private') && result.usages.length === 0) {
1720
+ throw new Error(`Usages cannot be empty when importing a ${result.type} key.`);
1721
+ }
1722
+ return result;
1723
+ }
1724
+ async sign(algorithm, key, data) {
1725
+ return signVerify(normalizeAlgorithm(algorithm, 'sign'), key, data);
1726
+ }
1727
+ async verify(algorithm, key, signature, data) {
1728
+ return signVerify(normalizeAlgorithm(algorithm, 'verify'), key, data, signature);
1729
+ }
1730
+ _encapsulateCore(algorithm, key) {
1731
+ const normalizedAlgorithm = normalizeAlgorithm(algorithm, 'encapsulateBits');
1732
+ if (key.algorithm.name !== normalizedAlgorithm.name) {
1733
+ throw (0, _errors.lazyDOMException)('Key algorithm mismatch', 'InvalidAccessError');
1734
+ }
1735
+ const variant = normalizedAlgorithm.name;
1736
+ const mlkem = new _mlkem.MlKem(variant);
1737
+ const keyData = key.keyObject.handle.exportKey(_utils.KFormatType.DER, _utils.KeyEncoding.SPKI);
1738
+ mlkem.setPublicKey((0, _conversion.bufferLikeToArrayBuffer)(keyData), _utils.KFormatType.DER, _utils.KeyEncoding.SPKI);
1739
+ return mlkem.encapsulateSync();
1740
+ }
1741
+ _decapsulateCore(algorithm, key, ciphertext) {
1742
+ const normalizedAlgorithm = normalizeAlgorithm(algorithm, 'decapsulateBits');
1743
+ if (key.algorithm.name !== normalizedAlgorithm.name) {
1744
+ throw (0, _errors.lazyDOMException)('Key algorithm mismatch', 'InvalidAccessError');
1745
+ }
1746
+ const variant = normalizedAlgorithm.name;
1747
+ const mlkem = new _mlkem.MlKem(variant);
1748
+ const keyData = key.keyObject.handle.exportKey(_utils.KFormatType.DER, _utils.KeyEncoding.PKCS8);
1749
+ mlkem.setPrivateKey((0, _conversion.bufferLikeToArrayBuffer)(keyData), _utils.KFormatType.DER, _utils.KeyEncoding.PKCS8);
1750
+ return mlkem.decapsulateSync((0, _conversion.bufferLikeToArrayBuffer)(ciphertext));
1751
+ }
1752
+ async encapsulateBits(algorithm, key) {
1753
+ if (!key.usages.includes('encapsulateBits')) {
1754
+ throw (0, _errors.lazyDOMException)('Key does not have encapsulateBits usage', 'InvalidAccessError');
1755
+ }
1756
+ return this._encapsulateCore(algorithm, key);
1757
+ }
1758
+ async encapsulateKey(algorithm, key, sharedKeyAlgorithm, extractable, usages) {
1759
+ if (!key.usages.includes('encapsulateKey')) {
1760
+ throw (0, _errors.lazyDOMException)('Key does not have encapsulateKey usage', 'InvalidAccessError');
1761
+ }
1762
+ const {
1763
+ sharedKey,
1764
+ ciphertext
1765
+ } = this._encapsulateCore(algorithm, key);
1766
+ const importedKey = await this.importKey('raw', sharedKey, sharedKeyAlgorithm, extractable, usages);
1767
+ return {
1768
+ key: importedKey,
1769
+ ciphertext
1770
+ };
1771
+ }
1772
+ async decapsulateBits(algorithm, key, ciphertext) {
1773
+ if (!key.usages.includes('decapsulateBits')) {
1774
+ throw (0, _errors.lazyDOMException)('Key does not have decapsulateBits usage', 'InvalidAccessError');
1775
+ }
1776
+ return this._decapsulateCore(algorithm, key, ciphertext);
1777
+ }
1778
+ async decapsulateKey(algorithm, key, ciphertext, sharedKeyAlgorithm, extractable, usages) {
1779
+ if (!key.usages.includes('decapsulateKey')) {
1780
+ throw (0, _errors.lazyDOMException)('Key does not have decapsulateKey usage', 'InvalidAccessError');
1781
+ }
1782
+ const sharedKey = this._decapsulateCore(algorithm, key, ciphertext);
1783
+ return this.importKey('raw', sharedKey, sharedKeyAlgorithm, extractable, usages);
1784
+ }
1785
+ }
1786
+ exports.Subtle = Subtle;
1787
+ const subtle = exports.subtle = new Subtle();
1788
+ function getKeyLength(algorithm) {
1789
+ const name = algorithm.name;
1790
+ switch (name) {
1791
+ case 'AES-CTR':
1792
+ case 'AES-CBC':
1793
+ case 'AES-GCM':
1794
+ case 'AES-KW':
1795
+ case 'AES-OCB':
1796
+ case 'ChaCha20-Poly1305':
1797
+ return algorithm.length || 256;
1798
+ case 'HMAC':
1799
+ {
1800
+ const hmacAlg = algorithm;
1801
+ return hmacAlg.length || 256;
1802
+ }
1803
+ case 'KMAC128':
1804
+ return algorithm.length || 128;
1805
+ case 'KMAC256':
1806
+ return algorithm.length || 256;
1807
+ default:
1808
+ throw (0, _errors.lazyDOMException)(`Cannot determine key length for ${name}`, 'NotSupportedError');
1809
+ }
1810
+ }
1811
+ //# sourceMappingURL=subtle.js.map