visaljs 0.0.2 → 0.0.3

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 (1007) hide show
  1. package/cli.js +393 -62
  2. package/node/include/js_node.h +28 -5
  3. package/node/include/js_uv.h +36 -0
  4. package/node/prelude/crypto.js +7 -10
  5. package/node/prelude/dns.js +99 -0
  6. package/node/prelude/dns_promises.js +10 -0
  7. package/node/prelude/http.js +1039 -195
  8. package/node/prelude/internal/crypto/asym.js +39 -12
  9. package/node/prelude/internal/crypto/dh_groups.js +12 -0
  10. package/node/prelude/internal/crypto/diffiehellman.js +354 -0
  11. package/node/prelude/internal/crypto/hash.js +1 -1
  12. package/node/prelude/internal/crypto/key_type.js +3 -0
  13. package/node/prelude/internal/crypto/keys.js +39 -9
  14. package/node/prelude/internal/http_agent.js +249 -0
  15. package/node/prelude/internal/net.js +33 -0
  16. package/node/prelude/internal/socketaddress.js +249 -0
  17. package/node/prelude/internal/tls/common.js +306 -0
  18. package/node/prelude/internal/tls/wrap.js +1217 -0
  19. package/node/prelude/internal/tls/x509.js +394 -0
  20. package/node/prelude/net.js +1083 -50
  21. package/node/prelude/stream.js +6 -0
  22. package/node/prelude/tls.js +141 -0
  23. package/node/prelude/util.js +5 -2
  24. package/node/prelude/util_types.js +85 -0
  25. package/node/src/host_http.c +268 -270
  26. package/node/src/host_loop.c +84 -0
  27. package/node/src/host_net.c +495 -0
  28. package/node/src/host_sys.c +16 -0
  29. package/package.json +1 -1
  30. package/runtime/include/js_builtins.h +16 -0
  31. package/runtime/include/js_console.h +2 -0
  32. package/runtime/include/js_core.def +23 -0
  33. package/runtime/include/js_crypto.h +23 -0
  34. package/runtime/include/js_generator.h +2 -3
  35. package/runtime/include/js_promise.h +0 -2
  36. package/runtime/src/async_iter.c +4 -1
  37. package/runtime/src/boringssl_support.cc +34 -0
  38. package/runtime/src/builtin_table.c +8 -0
  39. package/runtime/src/components.c +10 -0
  40. package/runtime/src/console.c +6 -18
  41. package/runtime/src/core_all.c +1 -0
  42. package/runtime/src/crypto_asym.c +450 -241
  43. package/runtime/src/crypto_bn.c +91 -0
  44. package/runtime/src/crypto_cipher.c +153 -75
  45. package/runtime/src/crypto_hash.c +68 -53
  46. package/runtime/src/crypto_internal.h +55 -26
  47. package/runtime/src/crypto_pkey.c +198 -61
  48. package/runtime/src/crypto_subtle.c +42 -16
  49. package/runtime/src/crypto_tls.c +678 -0
  50. package/runtime/src/generator.c +8 -1
  51. package/runtime/src/global.c +2 -4
  52. package/runtime/src/internal.h +0 -1
  53. package/runtime/src/jobs.c +2 -1
  54. package/runtime/src/promise.c +4 -1
  55. package/runtime/src/tls_roots.gen.h +3215 -0
  56. package/runtime/src/util_types.c +52 -0
  57. package/runtime/src/weak.c +2 -1
  58. package/runtime/third_party/boringssl/LICENSE +238 -0
  59. package/runtime/third_party/boringssl/README.md +46 -0
  60. package/runtime/third_party/boringssl/VERSION +1 -0
  61. package/runtime/third_party/boringssl/crypto/aes/aes.cc +44 -0
  62. package/runtime/third_party/boringssl/crypto/armv8_feature_parsing.h +67 -0
  63. package/runtime/third_party/boringssl/crypto/asn1/a_bitstr.cc +297 -0
  64. package/runtime/third_party/boringssl/crypto/asn1/a_bool.cc +50 -0
  65. package/runtime/third_party/boringssl/crypto/asn1/a_d2i_fp.cc +47 -0
  66. package/runtime/third_party/boringssl/crypto/asn1/a_dup.cc +42 -0
  67. package/runtime/third_party/boringssl/crypto/asn1/a_gentm.cc +130 -0
  68. package/runtime/third_party/boringssl/crypto/asn1/a_i2d_fp.cc +44 -0
  69. package/runtime/third_party/boringssl/crypto/asn1/a_int.cc +467 -0
  70. package/runtime/third_party/boringssl/crypto/asn1/a_mbstr.cc +242 -0
  71. package/runtime/third_party/boringssl/crypto/asn1/a_object.cc +191 -0
  72. package/runtime/third_party/boringssl/crypto/asn1/a_octet.cc +32 -0
  73. package/runtime/third_party/boringssl/crypto/asn1/a_strex.cc +411 -0
  74. package/runtime/third_party/boringssl/crypto/asn1/a_strnid.cc +208 -0
  75. package/runtime/third_party/boringssl/crypto/asn1/a_time.cc +248 -0
  76. package/runtime/third_party/boringssl/crypto/asn1/a_type.cc +467 -0
  77. package/runtime/third_party/boringssl/crypto/asn1/a_utctm.cc +128 -0
  78. package/runtime/third_party/boringssl/crypto/asn1/asn1_lib.cc +453 -0
  79. package/runtime/third_party/boringssl/crypto/asn1/asn1_par.cc +61 -0
  80. package/runtime/third_party/boringssl/crypto/asn1/asn_pack.cc +56 -0
  81. package/runtime/third_party/boringssl/crypto/asn1/f_int.cc +63 -0
  82. package/runtime/third_party/boringssl/crypto/asn1/f_string.cc +52 -0
  83. package/runtime/third_party/boringssl/crypto/asn1/internal.h +430 -0
  84. package/runtime/third_party/boringssl/crypto/asn1/posix_time.cc +244 -0
  85. package/runtime/third_party/boringssl/crypto/asn1/tasn_dec.cc +611 -0
  86. package/runtime/third_party/boringssl/crypto/asn1/tasn_enc.cc +348 -0
  87. package/runtime/third_party/boringssl/crypto/asn1/tasn_fre.cc +163 -0
  88. package/runtime/third_party/boringssl/crypto/asn1/tasn_new.cc +274 -0
  89. package/runtime/third_party/boringssl/crypto/asn1/tasn_typ.cc +92 -0
  90. package/runtime/third_party/boringssl/crypto/asn1/tasn_utl.cc +218 -0
  91. package/runtime/third_party/boringssl/crypto/base64/base64.cc +433 -0
  92. package/runtime/third_party/boringssl/crypto/bcm_support.h +62 -0
  93. package/runtime/third_party/boringssl/crypto/bio/bio.cc +715 -0
  94. package/runtime/third_party/boringssl/crypto/bio/bio_mem.cc +260 -0
  95. package/runtime/third_party/boringssl/crypto/bio/connect.cc +463 -0
  96. package/runtime/third_party/boringssl/crypto/bio/errno.cc +52 -0
  97. package/runtime/third_party/boringssl/crypto/bio/fd.cc +193 -0
  98. package/runtime/third_party/boringssl/crypto/bio/file.cc +283 -0
  99. package/runtime/third_party/boringssl/crypto/bio/hexdump.cc +154 -0
  100. package/runtime/third_party/boringssl/crypto/bio/internal.h +128 -0
  101. package/runtime/third_party/boringssl/crypto/bio/pair.cc +426 -0
  102. package/runtime/third_party/boringssl/crypto/bio/printf.cc +59 -0
  103. package/runtime/third_party/boringssl/crypto/bio/socket.cc +210 -0
  104. package/runtime/third_party/boringssl/crypto/bio/socket_helper.cc +179 -0
  105. package/runtime/third_party/boringssl/crypto/blake2/blake2.cc +173 -0
  106. package/runtime/third_party/boringssl/crypto/bn/bn_asn1.cc +57 -0
  107. package/runtime/third_party/boringssl/crypto/bn/convert.cc +409 -0
  108. package/runtime/third_party/boringssl/crypto/bn/div.cc +102 -0
  109. package/runtime/third_party/boringssl/crypto/bn/exponentiation.cc +168 -0
  110. package/runtime/third_party/boringssl/crypto/bn/sqrt.cc +93 -0
  111. package/runtime/third_party/boringssl/crypto/buf/buf.cc +119 -0
  112. package/runtime/third_party/boringssl/crypto/bytestring/asn1_compat.cc +54 -0
  113. package/runtime/third_party/boringssl/crypto/bytestring/ber.cc +268 -0
  114. package/runtime/third_party/boringssl/crypto/bytestring/cbb.cc +787 -0
  115. package/runtime/third_party/boringssl/crypto/bytestring/cbs.cc +977 -0
  116. package/runtime/third_party/boringssl/crypto/bytestring/internal.h +134 -0
  117. package/runtime/third_party/boringssl/crypto/bytestring/unicode.cc +156 -0
  118. package/runtime/third_party/boringssl/crypto/chacha/chacha.cc +226 -0
  119. package/runtime/third_party/boringssl/crypto/chacha/internal.h +103 -0
  120. package/runtime/third_party/boringssl/crypto/cipher/derive_key.cc +106 -0
  121. package/runtime/third_party/boringssl/crypto/cipher/e_aesctrhmac.cc +294 -0
  122. package/runtime/third_party/boringssl/crypto/cipher/e_aeseax.cc +351 -0
  123. package/runtime/third_party/boringssl/crypto/cipher/e_aesgcmsiv.cc +918 -0
  124. package/runtime/third_party/boringssl/crypto/cipher/e_chacha20poly1305.cc +404 -0
  125. package/runtime/third_party/boringssl/crypto/cipher/e_des.cc +214 -0
  126. package/runtime/third_party/boringssl/crypto/cipher/e_null.cc +55 -0
  127. package/runtime/third_party/boringssl/crypto/cipher/e_rc2.cc +432 -0
  128. package/runtime/third_party/boringssl/crypto/cipher/e_rc4.cc +56 -0
  129. package/runtime/third_party/boringssl/crypto/cipher/e_tls.cc +615 -0
  130. package/runtime/third_party/boringssl/crypto/cipher/get_cipher.cc +85 -0
  131. package/runtime/third_party/boringssl/crypto/cipher/internal.h +399 -0
  132. package/runtime/third_party/boringssl/crypto/cipher/tls_cbc.cc +476 -0
  133. package/runtime/third_party/boringssl/crypto/cms/cms.cc +178 -0
  134. package/runtime/third_party/boringssl/crypto/conf/conf.cc +637 -0
  135. package/runtime/third_party/boringssl/crypto/conf/internal.h +54 -0
  136. package/runtime/third_party/boringssl/crypto/cpu_aarch64_apple.cc +76 -0
  137. package/runtime/third_party/boringssl/crypto/cpu_aarch64_fuchsia.cc +58 -0
  138. package/runtime/third_party/boringssl/crypto/cpu_aarch64_linux.cc +66 -0
  139. package/runtime/third_party/boringssl/crypto/cpu_aarch64_openbsd.cc +45 -0
  140. package/runtime/third_party/boringssl/crypto/cpu_aarch64_sysreg.cc +66 -0
  141. package/runtime/third_party/boringssl/crypto/cpu_aarch64_win.cc +52 -0
  142. package/runtime/third_party/boringssl/crypto/cpu_arm_freebsd.cc +55 -0
  143. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.cc +173 -0
  144. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.h +141 -0
  145. package/runtime/third_party/boringssl/crypto/cpu_intel.cc +287 -0
  146. package/runtime/third_party/boringssl/crypto/crypto.cc +152 -0
  147. package/runtime/third_party/boringssl/crypto/curve25519/asm/x25519-asm-arm.S +2124 -0
  148. package/runtime/third_party/boringssl/crypto/curve25519/cpace.cc +227 -0
  149. package/runtime/third_party/boringssl/crypto/curve25519/curve25519.cc +2436 -0
  150. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_64_adx.cc +18 -0
  151. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_tables.h +3264 -0
  152. package/runtime/third_party/boringssl/crypto/curve25519/internal.h +202 -0
  153. package/runtime/third_party/boringssl/crypto/curve25519/spake25519.cc +532 -0
  154. package/runtime/third_party/boringssl/crypto/des/des.cc +837 -0
  155. package/runtime/third_party/boringssl/crypto/des/internal.h +144 -0
  156. package/runtime/third_party/boringssl/crypto/dh/dh_asn1.cc +109 -0
  157. package/runtime/third_party/boringssl/crypto/dh/params.cc +411 -0
  158. package/runtime/third_party/boringssl/crypto/digest/digest_extra.cc +361 -0
  159. package/runtime/third_party/boringssl/crypto/dsa/dsa.cc +922 -0
  160. package/runtime/third_party/boringssl/crypto/dsa/dsa_asn1.cc +306 -0
  161. package/runtime/third_party/boringssl/crypto/dsa/internal.h +56 -0
  162. package/runtime/third_party/boringssl/crypto/ec/ec_asn1.cc +542 -0
  163. package/runtime/third_party/boringssl/crypto/ec/ec_derive.cc +94 -0
  164. package/runtime/third_party/boringssl/crypto/ec/hash_to_curve.cc +773 -0
  165. package/runtime/third_party/boringssl/crypto/ec/internal.h +114 -0
  166. package/runtime/third_party/boringssl/crypto/ecdh/ecdh.cc +75 -0
  167. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.cc +337 -0
  168. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_p1363.cc +54 -0
  169. package/runtime/third_party/boringssl/crypto/engine/engine.cc +95 -0
  170. package/runtime/third_party/boringssl/crypto/err/err.cc +820 -0
  171. package/runtime/third_party/boringssl/crypto/err/internal.h +45 -0
  172. package/runtime/third_party/boringssl/crypto/evp/evp.cc +454 -0
  173. package/runtime/third_party/boringssl/crypto/evp/evp_asn1.cc +439 -0
  174. package/runtime/third_party/boringssl/crypto/evp/evp_ctx.cc +541 -0
  175. package/runtime/third_party/boringssl/crypto/evp/evp_kem.cc +101 -0
  176. package/runtime/third_party/boringssl/crypto/evp/internal.h +427 -0
  177. package/runtime/third_party/boringssl/crypto/evp/p_dh.cc +326 -0
  178. package/runtime/third_party/boringssl/crypto/evp/p_dsa.cc +333 -0
  179. package/runtime/third_party/boringssl/crypto/evp/p_ec.cc +736 -0
  180. package/runtime/third_party/boringssl/crypto/evp/p_ed25519.cc +359 -0
  181. package/runtime/third_party/boringssl/crypto/evp/p_hkdf.cc +204 -0
  182. package/runtime/third_party/boringssl/crypto/evp/p_mldsa.cc +549 -0
  183. package/runtime/third_party/boringssl/crypto/evp/p_mlkem.cc +510 -0
  184. package/runtime/third_party/boringssl/crypto/evp/p_rsa.cc +1185 -0
  185. package/runtime/third_party/boringssl/crypto/evp/p_x25519.cc +371 -0
  186. package/runtime/third_party/boringssl/crypto/evp/p_xwing.cc +300 -0
  187. package/runtime/third_party/boringssl/crypto/evp/pbkdf.cc +105 -0
  188. package/runtime/third_party/boringssl/crypto/evp/print.cc +287 -0
  189. package/runtime/third_party/boringssl/crypto/evp/scrypt.cc +218 -0
  190. package/runtime/third_party/boringssl/crypto/evp/sign.cc +95 -0
  191. package/runtime/third_party/boringssl/crypto/ex_data.cc +140 -0
  192. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes.cc.inc +208 -0
  193. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes_nohw.cc.inc +1279 -0
  194. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cbc.cc.inc +132 -0
  195. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cfb.cc.inc +168 -0
  196. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ctr.cc.inc +102 -0
  197. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm.cc.inc +614 -0
  198. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm_nohw.cc.inc +304 -0
  199. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/internal.h +590 -0
  200. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/key_wrap.cc.inc +211 -0
  201. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.cc.inc +97 -0
  202. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ofb.cc.inc +55 -0
  203. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm.cc +288 -0
  204. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm_interface.h +953 -0
  205. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/add.cc.inc +276 -0
  206. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +573 -0
  207. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bn.cc.inc +377 -0
  208. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bytes.cc.inc +230 -0
  209. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/cmp.cc.inc +161 -0
  210. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/ctx.cc.inc +127 -0
  211. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div.cc.inc +738 -0
  212. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div_extra.cc.inc +90 -0
  213. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.cc.inc +743 -0
  214. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd.cc.inc +281 -0
  215. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd_extra.cc.inc +327 -0
  216. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/generic.cc.inc +579 -0
  217. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/internal.h +810 -0
  218. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/jacobi.cc.inc +101 -0
  219. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery.cc.inc +408 -0
  220. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery_inv.cc.inc +179 -0
  221. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/mul.cc.inc +347 -0
  222. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/prime.cc.inc +931 -0
  223. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/random.cc.inc +261 -0
  224. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.cc.inc +144 -0
  225. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.h +109 -0
  226. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/shift.cc.inc +317 -0
  227. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/sqrt.cc.inc +370 -0
  228. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/aead.cc.inc +619 -0
  229. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/cipher.cc.inc +837 -0
  230. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.cc.inc +1240 -0
  231. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aesccm.cc.inc +440 -0
  232. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/internal.h +461 -0
  233. package/runtime/third_party/boringssl/crypto/fipsmodule/cmac/cmac.cc.inc +293 -0
  234. package/runtime/third_party/boringssl/crypto/fipsmodule/delocate.h +95 -0
  235. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/check.cc.inc +198 -0
  236. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/dh.cc.inc +401 -0
  237. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/internal.h +63 -0
  238. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digest.cc.inc +221 -0
  239. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digests.cc.inc +184 -0
  240. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/internal.h +72 -0
  241. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/md32_common.h +166 -0
  242. package/runtime/third_party/boringssl/crypto/fipsmodule/digestsign/digestsign.cc.inc +230 -0
  243. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/builtin_curves.h +277 -0
  244. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec.cc.inc +1024 -0
  245. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_key.cc.inc +536 -0
  246. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.cc.inc +379 -0
  247. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/felem.cc.inc +250 -0
  248. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/internal.h +752 -0
  249. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/oct.cc.inc +174 -0
  250. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz-table.h +9502 -0
  251. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.cc.inc +740 -0
  252. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.h +207 -0
  253. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256.cc.inc +578 -0
  254. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256_table.h +297 -0
  255. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/scalar.cc.inc +184 -0
  256. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple.cc.inc +246 -0
  257. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.cc.inc +274 -0
  258. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/util.cc.inc +258 -0
  259. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/wnaf.cc.inc +224 -0
  260. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdh/ecdh.cc.inc +91 -0
  261. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +288 -0
  262. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/internal.h +57 -0
  263. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/internal.h +38 -0
  264. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/jitter.cc.inc +487 -0
  265. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/sha512.cc.inc +329 -0
  266. package/runtime/third_party/boringssl/crypto/fipsmodule/fips_shared_support.cc +28 -0
  267. package/runtime/third_party/boringssl/crypto/fipsmodule/hkdf/hkdf.cc.inc +114 -0
  268. package/runtime/third_party/boringssl/crypto/fipsmodule/hmac/hmac.cc.inc +218 -0
  269. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/internal.h +165 -0
  270. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/keccak.cc.inc +647 -0
  271. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/fips_known_values.inc +1345 -0
  272. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/mldsa.cc.inc +3323 -0
  273. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/fips_known_values.inc +411 -0
  274. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/mlkem.cc.inc +1856 -0
  275. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/android_entropy_client.cc.inc +82 -0
  276. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/ctrdrbg.cc.inc +401 -0
  277. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/internal.h +99 -0
  278. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/rand.cc.inc +486 -0
  279. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/internal.h +167 -0
  280. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/padding.cc.inc +371 -0
  281. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa.cc.inc +996 -0
  282. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.cc.inc +1000 -0
  283. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/fips.cc.inc +129 -0
  284. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/self_check.cc.inc +1093 -0
  285. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/internal.h +112 -0
  286. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +330 -0
  287. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/internal.h +205 -0
  288. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha1.cc.inc +404 -0
  289. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha256.cc.inc +315 -0
  290. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha512.cc.inc +473 -0
  291. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/address.h +144 -0
  292. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fips_known_values.inc +674 -0
  293. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.cc.inc +179 -0
  294. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.h +48 -0
  295. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.cc.inc +164 -0
  296. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.h +58 -0
  297. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/params.h +178 -0
  298. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +690 -0
  299. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.cc.inc +326 -0
  300. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.h +71 -0
  301. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.cc.inc +172 -0
  302. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.h +40 -0
  303. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/internal.h +33 -0
  304. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/kdf.cc.inc +180 -0
  305. package/runtime/third_party/boringssl/crypto/fuzzer_mode.cc +30 -0
  306. package/runtime/third_party/boringssl/crypto/hpke/hpke.cc +1514 -0
  307. package/runtime/third_party/boringssl/crypto/hrss/asm/poly_rq_mul.S +8489 -0
  308. package/runtime/third_party/boringssl/crypto/hrss/hrss.cc +2189 -0
  309. package/runtime/third_party/boringssl/crypto/hrss/internal.h +64 -0
  310. package/runtime/third_party/boringssl/crypto/internal.h +1767 -0
  311. package/runtime/third_party/boringssl/crypto/lhash/internal.h +222 -0
  312. package/runtime/third_party/boringssl/crypto/lhash/lhash.cc +312 -0
  313. package/runtime/third_party/boringssl/crypto/md4/md4.cc +207 -0
  314. package/runtime/third_party/boringssl/crypto/md5/internal.h +34 -0
  315. package/runtime/third_party/boringssl/crypto/md5/md5.cc +255 -0
  316. package/runtime/third_party/boringssl/crypto/mem.cc +577 -0
  317. package/runtime/third_party/boringssl/crypto/mem_internal.h +706 -0
  318. package/runtime/third_party/boringssl/crypto/mldsa/mldsa.cc +296 -0
  319. package/runtime/third_party/boringssl/crypto/mlkem/mlkem.cc +108 -0
  320. package/runtime/third_party/boringssl/crypto/obj/obj.cc +494 -0
  321. package/runtime/third_party/boringssl/crypto/obj/obj_dat.h +11722 -0
  322. package/runtime/third_party/boringssl/crypto/obj/obj_xref.cc +83 -0
  323. package/runtime/third_party/boringssl/crypto/params_internal.h +30 -0
  324. package/runtime/third_party/boringssl/crypto/pem/internal.h +135 -0
  325. package/runtime/third_party/boringssl/crypto/pem/pem_all.cc +153 -0
  326. package/runtime/third_party/boringssl/crypto/pem/pem_info.cc +250 -0
  327. package/runtime/third_party/boringssl/crypto/pem/pem_lib.cc +707 -0
  328. package/runtime/third_party/boringssl/crypto/pem/pem_oth.cc +45 -0
  329. package/runtime/third_party/boringssl/crypto/pem/pem_pk8.cc +211 -0
  330. package/runtime/third_party/boringssl/crypto/pem/pem_pkey.cc +147 -0
  331. package/runtime/third_party/boringssl/crypto/pem/pem_x509.cc +25 -0
  332. package/runtime/third_party/boringssl/crypto/pem/pem_xaux.cc +25 -0
  333. package/runtime/third_party/boringssl/crypto/pkcs7/internal.h +67 -0
  334. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7.cc +198 -0
  335. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7_x509.cc +527 -0
  336. package/runtime/third_party/boringssl/crypto/pkcs8/internal.h +98 -0
  337. package/runtime/third_party/boringssl/crypto/pkcs8/p5_pbev2.cc +286 -0
  338. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8.cc +473 -0
  339. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8_x509.cc +1328 -0
  340. package/runtime/third_party/boringssl/crypto/poly1305/internal.h +54 -0
  341. package/runtime/third_party/boringssl/crypto/poly1305/poly1305.cc +315 -0
  342. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm.cc +294 -0
  343. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm_asm.S +2017 -0
  344. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_vec.cc +853 -0
  345. package/runtime/third_party/boringssl/crypto/pool/internal.h +95 -0
  346. package/runtime/third_party/boringssl/crypto/pool/pool.cc +282 -0
  347. package/runtime/third_party/boringssl/crypto/rand/deterministic.cc +58 -0
  348. package/runtime/third_party/boringssl/crypto/rand/fork_detect.cc +222 -0
  349. package/runtime/third_party/boringssl/crypto/rand/forkunsafe.cc +44 -0
  350. package/runtime/third_party/boringssl/crypto/rand/getentropy.cc +53 -0
  351. package/runtime/third_party/boringssl/crypto/rand/internal.h +67 -0
  352. package/runtime/third_party/boringssl/crypto/rand/ios.cc +35 -0
  353. package/runtime/third_party/boringssl/crypto/rand/rand.cc +79 -0
  354. package/runtime/third_party/boringssl/crypto/rand/trusty.cc +39 -0
  355. package/runtime/third_party/boringssl/crypto/rand/urandom.cc +149 -0
  356. package/runtime/third_party/boringssl/crypto/rand/windows.cc +91 -0
  357. package/runtime/third_party/boringssl/crypto/rc4/rc4.cc +56 -0
  358. package/runtime/third_party/boringssl/crypto/refcount.cc +49 -0
  359. package/runtime/third_party/boringssl/crypto/rsa/internal.h +51 -0
  360. package/runtime/third_party/boringssl/crypto/rsa/rsa_asn1.cc +404 -0
  361. package/runtime/third_party/boringssl/crypto/rsa/rsa_crypt.cc +530 -0
  362. package/runtime/third_party/boringssl/crypto/rsa/rsa_extra.cc +30 -0
  363. package/runtime/third_party/boringssl/crypto/rsa/rsa_print.cc +25 -0
  364. package/runtime/third_party/boringssl/crypto/sha/sha1.cc +55 -0
  365. package/runtime/third_party/boringssl/crypto/sha/sha256.cc +89 -0
  366. package/runtime/third_party/boringssl/crypto/sha/sha512.cc +106 -0
  367. package/runtime/third_party/boringssl/crypto/siphash/siphash.cc +81 -0
  368. package/runtime/third_party/boringssl/crypto/slhdsa/slhdsa.cc +167 -0
  369. package/runtime/third_party/boringssl/crypto/spake2plus/internal.h +204 -0
  370. package/runtime/third_party/boringssl/crypto/spake2plus/spake2plus.cc +501 -0
  371. package/runtime/third_party/boringssl/crypto/stack/stack.cc +462 -0
  372. package/runtime/third_party/boringssl/crypto/thread.cc +68 -0
  373. package/runtime/third_party/boringssl/crypto/thread_none.cc +48 -0
  374. package/runtime/third_party/boringssl/crypto/thread_pthread.cc +138 -0
  375. package/runtime/third_party/boringssl/crypto/thread_win.cc +227 -0
  376. package/runtime/third_party/boringssl/crypto/trust_token/internal.h +405 -0
  377. package/runtime/third_party/boringssl/crypto/trust_token/pmbtoken.cc +1672 -0
  378. package/runtime/third_party/boringssl/crypto/trust_token/trust_token.cc +701 -0
  379. package/runtime/third_party/boringssl/crypto/trust_token/voprf.cc +1266 -0
  380. package/runtime/third_party/boringssl/crypto/x509/a_digest.cc +52 -0
  381. package/runtime/third_party/boringssl/crypto/x509/a_sign.cc +100 -0
  382. package/runtime/third_party/boringssl/crypto/x509/a_verify.cc +77 -0
  383. package/runtime/third_party/boringssl/crypto/x509/algorithm.cc +167 -0
  384. package/runtime/third_party/boringssl/crypto/x509/asn1_gen.cc +540 -0
  385. package/runtime/third_party/boringssl/crypto/x509/by_dir.cc +301 -0
  386. package/runtime/third_party/boringssl/crypto/x509/by_file.cc +226 -0
  387. package/runtime/third_party/boringssl/crypto/x509/i2d_pr.cc +37 -0
  388. package/runtime/third_party/boringssl/crypto/x509/internal.h +697 -0
  389. package/runtime/third_party/boringssl/crypto/x509/name_print.cc +187 -0
  390. package/runtime/third_party/boringssl/crypto/x509/policy.cc +686 -0
  391. package/runtime/third_party/boringssl/crypto/x509/rsa_pss.cc +187 -0
  392. package/runtime/third_party/boringssl/crypto/x509/t_crl.cc +106 -0
  393. package/runtime/third_party/boringssl/crypto/x509/t_req.cc +206 -0
  394. package/runtime/third_party/boringssl/crypto/x509/t_x509.cc +292 -0
  395. package/runtime/third_party/boringssl/crypto/x509/t_x509a.cc +81 -0
  396. package/runtime/third_party/boringssl/crypto/x509/v3_akey.cc +174 -0
  397. package/runtime/third_party/boringssl/crypto/x509/v3_akeya.cc +31 -0
  398. package/runtime/third_party/boringssl/crypto/x509/v3_alt.cc +636 -0
  399. package/runtime/third_party/boringssl/crypto/x509/v3_bcons.cc +96 -0
  400. package/runtime/third_party/boringssl/crypto/x509/v3_bitst.cc +100 -0
  401. package/runtime/third_party/boringssl/crypto/x509/v3_conf.cc +369 -0
  402. package/runtime/third_party/boringssl/crypto/x509/v3_cpols.cc +417 -0
  403. package/runtime/third_party/boringssl/crypto/x509/v3_crld.cc +471 -0
  404. package/runtime/third_party/boringssl/crypto/x509/v3_enum.cc +74 -0
  405. package/runtime/third_party/boringssl/crypto/x509/v3_extku.cc +97 -0
  406. package/runtime/third_party/boringssl/crypto/x509/v3_genn.cc +238 -0
  407. package/runtime/third_party/boringssl/crypto/x509/v3_ia5.cc +83 -0
  408. package/runtime/third_party/boringssl/crypto/x509/v3_info.cc +162 -0
  409. package/runtime/third_party/boringssl/crypto/x509/v3_int.cc +83 -0
  410. package/runtime/third_party/boringssl/crypto/x509/v3_lib.cc +349 -0
  411. package/runtime/third_party/boringssl/crypto/x509/v3_ncons.cc +798 -0
  412. package/runtime/third_party/boringssl/crypto/x509/v3_ocsp.cc +92 -0
  413. package/runtime/third_party/boringssl/crypto/x509/v3_pcons.cc +102 -0
  414. package/runtime/third_party/boringssl/crypto/x509/v3_pmaps.cc +110 -0
  415. package/runtime/third_party/boringssl/crypto/x509/v3_prn.cc +183 -0
  416. package/runtime/third_party/boringssl/crypto/x509/v3_purp.cc +580 -0
  417. package/runtime/third_party/boringssl/crypto/x509/v3_skey.cc +128 -0
  418. package/runtime/third_party/boringssl/crypto/x509/v3_utl.cc +1311 -0
  419. package/runtime/third_party/boringssl/crypto/x509/x509.cc +47 -0
  420. package/runtime/third_party/boringssl/crypto/x509/x509_att.cc +188 -0
  421. package/runtime/third_party/boringssl/crypto/x509/x509_cmp.cc +243 -0
  422. package/runtime/third_party/boringssl/crypto/x509/x509_d2.cc +66 -0
  423. package/runtime/third_party/boringssl/crypto/x509/x509_def.cc +42 -0
  424. package/runtime/third_party/boringssl/crypto/x509/x509_ext.cc +161 -0
  425. package/runtime/third_party/boringssl/crypto/x509/x509_lu.cc +570 -0
  426. package/runtime/third_party/boringssl/crypto/x509/x509_mtc.cc +598 -0
  427. package/runtime/third_party/boringssl/crypto/x509/x509_obj.cc +169 -0
  428. package/runtime/third_party/boringssl/crypto/x509/x509_req.cc +248 -0
  429. package/runtime/third_party/boringssl/crypto/x509/x509_set.cc +166 -0
  430. package/runtime/third_party/boringssl/crypto/x509/x509_trs.cc +123 -0
  431. package/runtime/third_party/boringssl/crypto/x509/x509_txt.cc +147 -0
  432. package/runtime/third_party/boringssl/crypto/x509/x509_v3.cc +249 -0
  433. package/runtime/third_party/boringssl/crypto/x509/x509_vfy.cc +1531 -0
  434. package/runtime/third_party/boringssl/crypto/x509/x509_vpm.cc +449 -0
  435. package/runtime/third_party/boringssl/crypto/x509/x509cset.cc +222 -0
  436. package/runtime/third_party/boringssl/crypto/x509/x509name.cc +377 -0
  437. package/runtime/third_party/boringssl/crypto/x509/x509rset.cc +55 -0
  438. package/runtime/third_party/boringssl/crypto/x509/x509spki.cc +91 -0
  439. package/runtime/third_party/boringssl/crypto/x509/x_algor.cc +223 -0
  440. package/runtime/third_party/boringssl/crypto/x509/x_all.cc +352 -0
  441. package/runtime/third_party/boringssl/crypto/x509/x_attrib.cc +61 -0
  442. package/runtime/third_party/boringssl/crypto/x509/x_crl.cc +325 -0
  443. package/runtime/third_party/boringssl/crypto/x509/x_exten.cc +42 -0
  444. package/runtime/third_party/boringssl/crypto/x509/x_name.cc +407 -0
  445. package/runtime/third_party/boringssl/crypto/x509/x_pubkey.cc +199 -0
  446. package/runtime/third_party/boringssl/crypto/x509/x_req.cc +80 -0
  447. package/runtime/third_party/boringssl/crypto/x509/x_sig.cc +51 -0
  448. package/runtime/third_party/boringssl/crypto/x509/x_spki.cc +44 -0
  449. package/runtime/third_party/boringssl/crypto/x509/x_x509.cc +495 -0
  450. package/runtime/third_party/boringssl/crypto/x509/x_x509a.cc +169 -0
  451. package/runtime/third_party/boringssl/crypto/xwing/xwing.cc +257 -0
  452. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-apple.S +1326 -0
  453. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-linux.S +1327 -0
  454. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-apple.S +1252 -0
  455. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-linux.S +1253 -0
  456. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-apple.S +873 -0
  457. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-linux.S +885 -0
  458. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-apple.S +2490 -0
  459. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-linux.S +2530 -0
  460. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-apple.S +2413 -0
  461. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-linux.S +2397 -0
  462. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv7-linux.S +784 -0
  463. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-apple.S +792 -0
  464. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-linux.S +786 -0
  465. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-win.S +798 -0
  466. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-apple.S +2912 -0
  467. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-linux.S +2907 -0
  468. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-win.S +2915 -0
  469. package/runtime/third_party/boringssl/gen/bcm/armv4-mont-linux.S +932 -0
  470. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-apple.S +1440 -0
  471. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-linux.S +1440 -0
  472. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-win.S +1446 -0
  473. package/runtime/third_party/boringssl/gen/bcm/bn-586-apple.S +530 -0
  474. package/runtime/third_party/boringssl/gen/bcm/bn-586-linux.S +540 -0
  475. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-apple.S +88 -0
  476. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-linux.S +87 -0
  477. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-win.S +87 -0
  478. package/runtime/third_party/boringssl/gen/bcm/bsaes-armv7-linux.S +1520 -0
  479. package/runtime/third_party/boringssl/gen/bcm/co-586-apple.S +1256 -0
  480. package/runtime/third_party/boringssl/gen/bcm/co-586-linux.S +1264 -0
  481. package/runtime/third_party/boringssl/gen/bcm/ghash-armv4-linux.S +242 -0
  482. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-apple.S +337 -0
  483. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-linux.S +335 -0
  484. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-win.S +341 -0
  485. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-apple.S +288 -0
  486. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-linux.S +292 -0
  487. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-apple.S +426 -0
  488. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-linux.S +425 -0
  489. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-apple.S +322 -0
  490. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-linux.S +328 -0
  491. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-apple.S +1134 -0
  492. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-linux.S +1129 -0
  493. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv7-linux.S +244 -0
  494. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-apple.S +567 -0
  495. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-linux.S +563 -0
  496. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-win.S +571 -0
  497. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-apple.S +1744 -0
  498. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-linux.S +1725 -0
  499. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-win.S +1765 -0
  500. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-apple.S +4544 -0
  501. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-linux.S +4600 -0
  502. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-apple.S +310 -0
  503. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-linux.S +310 -0
  504. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-win.S +310 -0
  505. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-apple.S +321 -0
  506. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-linux.S +335 -0
  507. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-apple.S +58 -0
  508. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-linux.S +57 -0
  509. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-apple.S +1756 -0
  510. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-linux.S +1751 -0
  511. package/runtime/third_party/boringssl/gen/bcm/sha1-586-apple.S +3782 -0
  512. package/runtime/third_party/boringssl/gen/bcm/sha1-586-linux.S +3788 -0
  513. package/runtime/third_party/boringssl/gen/bcm/sha1-armv4-large-linux.S +1479 -0
  514. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-apple.S +1219 -0
  515. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-linux.S +1218 -0
  516. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-win.S +1222 -0
  517. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-apple.S +5454 -0
  518. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-linux.S +5450 -0
  519. package/runtime/third_party/boringssl/gen/bcm/sha256-586-apple.S +5593 -0
  520. package/runtime/third_party/boringssl/gen/bcm/sha256-586-linux.S +5599 -0
  521. package/runtime/third_party/boringssl/gen/bcm/sha256-armv4-linux.S +2840 -0
  522. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-apple.S +1195 -0
  523. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-linux.S +1194 -0
  524. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-win.S +1198 -0
  525. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-apple.S +4173 -0
  526. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-linux.S +4170 -0
  527. package/runtime/third_party/boringssl/gen/bcm/sha512-586-apple.S +2406 -0
  528. package/runtime/third_party/boringssl/gen/bcm/sha512-586-linux.S +2410 -0
  529. package/runtime/third_party/boringssl/gen/bcm/sha512-armv4-linux.S +1857 -0
  530. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-apple.S +1598 -0
  531. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-linux.S +1597 -0
  532. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-win.S +1601 -0
  533. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-apple.S +2979 -0
  534. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-linux.S +2978 -0
  535. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv7-linux.S +1225 -0
  536. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-apple.S +1238 -0
  537. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-linux.S +1220 -0
  538. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-win.S +1256 -0
  539. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-apple.S +680 -0
  540. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-linux.S +706 -0
  541. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-apple.S +1146 -0
  542. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-linux.S +1133 -0
  543. package/runtime/third_party/boringssl/gen/bcm/x86-mont-apple.S +216 -0
  544. package/runtime/third_party/boringssl/gen/bcm/x86-mont-linux.S +218 -0
  545. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-apple.S +1238 -0
  546. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-linux.S +1237 -0
  547. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-apple.S +3644 -0
  548. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-linux.S +3628 -0
  549. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_64_win_asm.inc +325 -0
  550. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_win_asm.inc +325 -0
  551. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-apple.S +3113 -0
  552. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-linux.S +3091 -0
  553. package/runtime/third_party/boringssl/gen/crypto/chacha-armv4-linux.S +1450 -0
  554. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-apple.S +1969 -0
  555. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-linux.S +1967 -0
  556. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-win.S +1973 -0
  557. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-apple.S +957 -0
  558. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-linux.S +961 -0
  559. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-apple.S +1608 -0
  560. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-linux.S +1611 -0
  561. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-apple.S +3010 -0
  562. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-linux.S +3008 -0
  563. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-win.S +3014 -0
  564. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-apple.S +8903 -0
  565. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-linux.S +8940 -0
  566. package/runtime/third_party/boringssl/gen/crypto/err_data.cc +1578 -0
  567. package/runtime/third_party/boringssl/gen/crypto/md5-586-apple.S +684 -0
  568. package/runtime/third_party/boringssl/gen/crypto/md5-586-linux.S +686 -0
  569. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-apple.S +690 -0
  570. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-linux.S +695 -0
  571. package/runtime/third_party/boringssl/include/openssl/aead.h +650 -0
  572. package/runtime/third_party/boringssl/include/openssl/aes.h +173 -0
  573. package/runtime/third_party/boringssl/include/openssl/arm_arch.h +24 -0
  574. package/runtime/third_party/boringssl/include/openssl/asm_base.h +219 -0
  575. package/runtime/third_party/boringssl/include/openssl/asn1.h +2002 -0
  576. package/runtime/third_party/boringssl/include/openssl/asn1_mac.h +18 -0
  577. package/runtime/third_party/boringssl/include/openssl/asn1t.h +584 -0
  578. package/runtime/third_party/boringssl/include/openssl/base.h +548 -0
  579. package/runtime/third_party/boringssl/include/openssl/base64.h +156 -0
  580. package/runtime/third_party/boringssl/include/openssl/bio.h +1061 -0
  581. package/runtime/third_party/boringssl/include/openssl/blake2.h +63 -0
  582. package/runtime/third_party/boringssl/include/openssl/blowfish.h +58 -0
  583. package/runtime/third_party/boringssl/include/openssl/bn.h +986 -0
  584. package/runtime/third_party/boringssl/include/openssl/buf.h +95 -0
  585. package/runtime/third_party/boringssl/include/openssl/buffer.h +18 -0
  586. package/runtime/third_party/boringssl/include/openssl/bytestring.h +798 -0
  587. package/runtime/third_party/boringssl/include/openssl/cast.h +91 -0
  588. package/runtime/third_party/boringssl/include/openssl/chacha.h +47 -0
  589. package/runtime/third_party/boringssl/include/openssl/cipher.h +819 -0
  590. package/runtime/third_party/boringssl/include/openssl/cmac.h +91 -0
  591. package/runtime/third_party/boringssl/include/openssl/cms.h +147 -0
  592. package/runtime/third_party/boringssl/include/openssl/conf.h +136 -0
  593. package/runtime/third_party/boringssl/include/openssl/configuration.h +18 -0
  594. package/runtime/third_party/boringssl/include/openssl/cpu.h +18 -0
  595. package/runtime/third_party/boringssl/include/openssl/crypto.h +235 -0
  596. package/runtime/third_party/boringssl/include/openssl/ctrdrbg.h +116 -0
  597. package/runtime/third_party/boringssl/include/openssl/curve25519.h +309 -0
  598. package/runtime/third_party/boringssl/include/openssl/des.h +134 -0
  599. package/runtime/third_party/boringssl/include/openssl/dh.h +336 -0
  600. package/runtime/third_party/boringssl/include/openssl/digest.h +399 -0
  601. package/runtime/third_party/boringssl/include/openssl/dsa.h +392 -0
  602. package/runtime/third_party/boringssl/include/openssl/dtls1.h +16 -0
  603. package/runtime/third_party/boringssl/include/openssl/e_os2.h +18 -0
  604. package/runtime/third_party/boringssl/include/openssl/ec.h +530 -0
  605. package/runtime/third_party/boringssl/include/openssl/ec_key.h +358 -0
  606. package/runtime/third_party/boringssl/include/openssl/ecdh.h +67 -0
  607. package/runtime/third_party/boringssl/include/openssl/ecdsa.h +242 -0
  608. package/runtime/third_party/boringssl/include/openssl/engine.h +109 -0
  609. package/runtime/third_party/boringssl/include/openssl/err.h +416 -0
  610. package/runtime/third_party/boringssl/include/openssl/evp.h +1645 -0
  611. package/runtime/third_party/boringssl/include/openssl/evp_errors.h +66 -0
  612. package/runtime/third_party/boringssl/include/openssl/ex_data.h +117 -0
  613. package/runtime/third_party/boringssl/include/openssl/hkdf.h +68 -0
  614. package/runtime/third_party/boringssl/include/openssl/hmac.h +151 -0
  615. package/runtime/third_party/boringssl/include/openssl/hpke.h +456 -0
  616. package/runtime/third_party/boringssl/include/openssl/hrss.h +108 -0
  617. package/runtime/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  618. package/runtime/third_party/boringssl/include/openssl/kdf.h +92 -0
  619. package/runtime/third_party/boringssl/include/openssl/lhash.h +18 -0
  620. package/runtime/third_party/boringssl/include/openssl/md4.h +73 -0
  621. package/runtime/third_party/boringssl/include/openssl/md5.h +67 -0
  622. package/runtime/third_party/boringssl/include/openssl/mem.h +215 -0
  623. package/runtime/third_party/boringssl/include/openssl/mldsa.h +486 -0
  624. package/runtime/third_party/boringssl/include/openssl/mlkem.h +222 -0
  625. package/runtime/third_party/boringssl/include/openssl/nid.h +5561 -0
  626. package/runtime/third_party/boringssl/include/openssl/obj.h +225 -0
  627. package/runtime/third_party/boringssl/include/openssl/obj_mac.h +18 -0
  628. package/runtime/third_party/boringssl/include/openssl/objects.h +18 -0
  629. package/runtime/third_party/boringssl/include/openssl/opensslconf.h +108 -0
  630. package/runtime/third_party/boringssl/include/openssl/opensslv.h +18 -0
  631. package/runtime/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
  632. package/runtime/third_party/boringssl/include/openssl/params.h +42 -0
  633. package/runtime/third_party/boringssl/include/openssl/pem.h +769 -0
  634. package/runtime/third_party/boringssl/include/openssl/pkcs12.h +18 -0
  635. package/runtime/third_party/boringssl/include/openssl/pkcs7.h +239 -0
  636. package/runtime/third_party/boringssl/include/openssl/pkcs8.h +267 -0
  637. package/runtime/third_party/boringssl/include/openssl/poly1305.h +52 -0
  638. package/runtime/third_party/boringssl/include/openssl/pool.h +137 -0
  639. package/runtime/third_party/boringssl/include/openssl/posix_time.h +51 -0
  640. package/runtime/third_party/boringssl/include/openssl/prefix_symbols.h +8000 -0
  641. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_S.h +633 -0
  642. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_c.h +329 -0
  643. package/runtime/third_party/boringssl/include/openssl/rand.h +138 -0
  644. package/runtime/third_party/boringssl/include/openssl/rc4.h +54 -0
  645. package/runtime/third_party/boringssl/include/openssl/ripemd.h +71 -0
  646. package/runtime/third_party/boringssl/include/openssl/rsa.h +893 -0
  647. package/runtime/third_party/boringssl/include/openssl/safestack.h +16 -0
  648. package/runtime/third_party/boringssl/include/openssl/service_indicator.h +19 -0
  649. package/runtime/third_party/boringssl/include/openssl/sha.h +108 -0
  650. package/runtime/third_party/boringssl/include/openssl/sha2.h +201 -0
  651. package/runtime/third_party/boringssl/include/openssl/siphash.h +37 -0
  652. package/runtime/third_party/boringssl/include/openssl/slhdsa.h +250 -0
  653. package/runtime/third_party/boringssl/include/openssl/span.h +376 -0
  654. package/runtime/third_party/boringssl/include/openssl/srtp.h +18 -0
  655. package/runtime/third_party/boringssl/include/openssl/ssl.h +7211 -0
  656. package/runtime/third_party/boringssl/include/openssl/ssl3.h +171 -0
  657. package/runtime/third_party/boringssl/include/openssl/stack.h +688 -0
  658. package/runtime/third_party/boringssl/include/openssl/target.h +246 -0
  659. package/runtime/third_party/boringssl/include/openssl/thread.h +114 -0
  660. package/runtime/third_party/boringssl/include/openssl/time.h +22 -0
  661. package/runtime/third_party/boringssl/include/openssl/tls1.h +263 -0
  662. package/runtime/third_party/boringssl/include/openssl/tls_prf.h +47 -0
  663. package/runtime/third_party/boringssl/include/openssl/trust_token.h +349 -0
  664. package/runtime/third_party/boringssl/include/openssl/type_check.h +37 -0
  665. package/runtime/third_party/boringssl/include/openssl/types.h +18 -0
  666. package/runtime/third_party/boringssl/include/openssl/x509.h +5404 -0
  667. package/runtime/third_party/boringssl/include/openssl/x509_vfy.h +18 -0
  668. package/runtime/third_party/boringssl/include/openssl/x509v3.h +63 -0
  669. package/runtime/third_party/boringssl/include/openssl/x509v3_errors.h +84 -0
  670. package/runtime/third_party/boringssl/include/openssl/xwing.h +115 -0
  671. package/runtime/third_party/boringssl/sources.json +696 -0
  672. package/runtime/third_party/boringssl/ssl/bio_ssl.cc +196 -0
  673. package/runtime/third_party/boringssl/ssl/d1_both.cc +1137 -0
  674. package/runtime/third_party/boringssl/ssl/d1_lib.cc +245 -0
  675. package/runtime/third_party/boringssl/ssl/d1_pkt.cc +322 -0
  676. package/runtime/third_party/boringssl/ssl/d1_srtp.cc +128 -0
  677. package/runtime/third_party/boringssl/ssl/dtls_method.cc +216 -0
  678. package/runtime/third_party/boringssl/ssl/dtls_record.cc +586 -0
  679. package/runtime/third_party/boringssl/ssl/encrypted_client_hello.cc +1110 -0
  680. package/runtime/third_party/boringssl/ssl/extensions.cc +5368 -0
  681. package/runtime/third_party/boringssl/ssl/handoff.cc +625 -0
  682. package/runtime/third_party/boringssl/ssl/handshake.cc +694 -0
  683. package/runtime/third_party/boringssl/ssl/handshake_client.cc +1958 -0
  684. package/runtime/third_party/boringssl/ssl/handshake_server.cc +1875 -0
  685. package/runtime/third_party/boringssl/ssl/internal.h +4506 -0
  686. package/runtime/third_party/boringssl/ssl/s3_both.cc +555 -0
  687. package/runtime/third_party/boringssl/ssl/s3_lib.cc +88 -0
  688. package/runtime/third_party/boringssl/ssl/s3_pkt.cc +396 -0
  689. package/runtime/third_party/boringssl/ssl/ssl_aead_ctx.cc +416 -0
  690. package/runtime/third_party/boringssl/ssl/ssl_asn1.cc +851 -0
  691. package/runtime/third_party/boringssl/ssl/ssl_buffer.cc +304 -0
  692. package/runtime/third_party/boringssl/ssl/ssl_cert.cc +723 -0
  693. package/runtime/third_party/boringssl/ssl/ssl_cipher.cc +1762 -0
  694. package/runtime/third_party/boringssl/ssl/ssl_credential.cc +913 -0
  695. package/runtime/third_party/boringssl/ssl/ssl_file.cc +375 -0
  696. package/runtime/third_party/boringssl/ssl/ssl_key_share.cc +445 -0
  697. package/runtime/third_party/boringssl/ssl/ssl_lib.cc +4132 -0
  698. package/runtime/third_party/boringssl/ssl/ssl_privkey.cc +973 -0
  699. package/runtime/third_party/boringssl/ssl/ssl_session.cc +1273 -0
  700. package/runtime/third_party/boringssl/ssl/ssl_stat.cc +162 -0
  701. package/runtime/third_party/boringssl/ssl/ssl_transcript.cc +224 -0
  702. package/runtime/third_party/boringssl/ssl/ssl_versions.cc +436 -0
  703. package/runtime/third_party/boringssl/ssl/ssl_x509.cc +1229 -0
  704. package/runtime/third_party/boringssl/ssl/t1_enc.cc +266 -0
  705. package/runtime/third_party/boringssl/ssl/tls13_both.cc +764 -0
  706. package/runtime/third_party/boringssl/ssl/tls13_client.cc +1325 -0
  707. package/runtime/third_party/boringssl/ssl/tls13_enc.cc +746 -0
  708. package/runtime/third_party/boringssl/ssl/tls13_server.cc +1623 -0
  709. package/runtime/third_party/boringssl/ssl/tls_method.cc +266 -0
  710. package/runtime/third_party/boringssl/ssl/tls_record.cc +524 -0
  711. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_mul.S +178 -0
  712. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_square.S +146 -0
  713. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_mul.S +177 -0
  714. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_sqr.S +166 -0
  715. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_bareminimum.c.inc +47 -0
  716. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_platform.c.inc +137 -0
  717. package/runtime/third_party/boringssl/third_party/fiat/curve25519_32.h +1571 -0
  718. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64.h +978 -0
  719. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_adx.h +700 -0
  720. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_msvc.h +1281 -0
  721. package/runtime/third_party/boringssl/third_party/fiat/p256_32.h +4760 -0
  722. package/runtime/third_party/boringssl/third_party/fiat/p256_64.h +1984 -0
  723. package/runtime/third_party/boringssl/third_party/fiat/p256_64_msvc.h +1939 -0
  724. package/runtime/third_party/boringssl/third_party/fiat/p256_field.c.inc +26 -0
  725. package/runtime/third_party/boringssl/third_party/fiat/p256_field_32.br.c.inc +71 -0
  726. package/runtime/third_party/boringssl/third_party/fiat/p256_field_64.br.c.inc +84 -0
  727. package/runtime/third_party/boringssl/third_party/fiat/p256_point.br.c.inc +112 -0
  728. package/runtime/third_party/v8-ieee754/README.md +2 -1
  729. package/runtime/third_party/v8-ieee754/convert.py +4 -0
  730. package/runtime/third_party/v8-ieee754/ieee754.c +1 -1
  731. package/runtime/third_party/bearssl/LICENSE.txt +0 -21
  732. package/runtime/third_party/bearssl/README.txt +0 -136
  733. package/runtime/third_party/bearssl/VERSION +0 -1
  734. package/runtime/third_party/bearssl/inc/bearssl.h +0 -183
  735. package/runtime/third_party/bearssl/inc/bearssl_aead.h +0 -1059
  736. package/runtime/third_party/bearssl/inc/bearssl_block.h +0 -2618
  737. package/runtime/third_party/bearssl/inc/bearssl_ec.h +0 -967
  738. package/runtime/third_party/bearssl/inc/bearssl_hash.h +0 -1346
  739. package/runtime/third_party/bearssl/inc/bearssl_hmac.h +0 -241
  740. package/runtime/third_party/bearssl/inc/bearssl_kdf.h +0 -284
  741. package/runtime/third_party/bearssl/inc/bearssl_pem.h +0 -294
  742. package/runtime/third_party/bearssl/inc/bearssl_prf.h +0 -150
  743. package/runtime/third_party/bearssl/inc/bearssl_rand.h +0 -397
  744. package/runtime/third_party/bearssl/inc/bearssl_rsa.h +0 -1655
  745. package/runtime/third_party/bearssl/inc/bearssl_ssl.h +0 -4296
  746. package/runtime/third_party/bearssl/inc/bearssl_x509.h +0 -1474
  747. package/runtime/third_party/bearssl/src/aead/ccm.c +0 -346
  748. package/runtime/third_party/bearssl/src/aead/eax.c +0 -525
  749. package/runtime/third_party/bearssl/src/aead/gcm.c +0 -318
  750. package/runtime/third_party/bearssl/src/codec/ccopy.c +0 -44
  751. package/runtime/third_party/bearssl/src/codec/dec16be.c +0 -38
  752. package/runtime/third_party/bearssl/src/codec/dec16le.c +0 -38
  753. package/runtime/third_party/bearssl/src/codec/dec32be.c +0 -38
  754. package/runtime/third_party/bearssl/src/codec/dec32le.c +0 -38
  755. package/runtime/third_party/bearssl/src/codec/dec64be.c +0 -38
  756. package/runtime/third_party/bearssl/src/codec/dec64le.c +0 -38
  757. package/runtime/third_party/bearssl/src/codec/enc16be.c +0 -38
  758. package/runtime/third_party/bearssl/src/codec/enc16le.c +0 -38
  759. package/runtime/third_party/bearssl/src/codec/enc32be.c +0 -38
  760. package/runtime/third_party/bearssl/src/codec/enc32le.c +0 -38
  761. package/runtime/third_party/bearssl/src/codec/enc64be.c +0 -38
  762. package/runtime/third_party/bearssl/src/codec/enc64le.c +0 -38
  763. package/runtime/third_party/bearssl/src/codec/pemdec.c +0 -526
  764. package/runtime/third_party/bearssl/src/codec/pemdec.t0 +0 -314
  765. package/runtime/third_party/bearssl/src/codec/pemenc.c +0 -173
  766. package/runtime/third_party/bearssl/src/config.h +0 -247
  767. package/runtime/third_party/bearssl/src/ec/ec_all_m15.c +0 -121
  768. package/runtime/third_party/bearssl/src/ec/ec_all_m31.c +0 -171
  769. package/runtime/third_party/bearssl/src/ec/ec_c25519_i15.c +0 -398
  770. package/runtime/third_party/bearssl/src/ec/ec_c25519_i31.c +0 -390
  771. package/runtime/third_party/bearssl/src/ec/ec_c25519_m15.c +0 -1478
  772. package/runtime/third_party/bearssl/src/ec/ec_c25519_m31.c +0 -800
  773. package/runtime/third_party/bearssl/src/ec/ec_c25519_m62.c +0 -605
  774. package/runtime/third_party/bearssl/src/ec/ec_c25519_m64.c +0 -831
  775. package/runtime/third_party/bearssl/src/ec/ec_curve25519.c +0 -46
  776. package/runtime/third_party/bearssl/src/ec/ec_default.c +0 -36
  777. package/runtime/third_party/bearssl/src/ec/ec_keygen.c +0 -86
  778. package/runtime/third_party/bearssl/src/ec/ec_p256_m15.c +0 -2124
  779. package/runtime/third_party/bearssl/src/ec/ec_p256_m31.c +0 -1469
  780. package/runtime/third_party/bearssl/src/ec/ec_p256_m62.c +0 -1765
  781. package/runtime/third_party/bearssl/src/ec/ec_p256_m64.c +0 -1781
  782. package/runtime/third_party/bearssl/src/ec/ec_prime_i15.c +0 -824
  783. package/runtime/third_party/bearssl/src/ec/ec_prime_i31.c +0 -826
  784. package/runtime/third_party/bearssl/src/ec/ec_pubkey.c +0 -85
  785. package/runtime/third_party/bearssl/src/ec/ec_secp256r1.c +0 -51
  786. package/runtime/third_party/bearssl/src/ec/ec_secp384r1.c +0 -57
  787. package/runtime/third_party/bearssl/src/ec/ec_secp521r1.c +0 -64
  788. package/runtime/third_party/bearssl/src/ec/ecdsa_atr.c +0 -134
  789. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_asn1.c +0 -36
  790. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_raw.c +0 -36
  791. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_asn1.c +0 -36
  792. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_raw.c +0 -36
  793. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_bits.c +0 -47
  794. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_asn1.c +0 -45
  795. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_raw.c +0 -174
  796. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_asn1.c +0 -48
  797. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_raw.c +0 -166
  798. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_bits.c +0 -47
  799. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_asn1.c +0 -45
  800. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_raw.c +0 -173
  801. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_asn1.c +0 -48
  802. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_raw.c +0 -165
  803. package/runtime/third_party/bearssl/src/ec/ecdsa_rta.c +0 -121
  804. package/runtime/third_party/bearssl/src/hash/dig_oid.c +0 -84
  805. package/runtime/third_party/bearssl/src/hash/dig_size.c +0 -50
  806. package/runtime/third_party/bearssl/src/hash/ghash_ctmul.c +0 -345
  807. package/runtime/third_party/bearssl/src/hash/ghash_ctmul32.c +0 -251
  808. package/runtime/third_party/bearssl/src/hash/ghash_ctmul64.c +0 -154
  809. package/runtime/third_party/bearssl/src/hash/ghash_pclmul.c +0 -389
  810. package/runtime/third_party/bearssl/src/hash/ghash_pwr8.c +0 -411
  811. package/runtime/third_party/bearssl/src/hash/md5.c +0 -208
  812. package/runtime/third_party/bearssl/src/hash/md5sha1.c +0 -141
  813. package/runtime/third_party/bearssl/src/hash/mgf1.c +0 -56
  814. package/runtime/third_party/bearssl/src/hash/multihash.c +0 -166
  815. package/runtime/third_party/bearssl/src/hash/sha1.c +0 -191
  816. package/runtime/third_party/bearssl/src/hash/sha2big.c +0 -285
  817. package/runtime/third_party/bearssl/src/hash/sha2small.c +0 -341
  818. package/runtime/third_party/bearssl/src/inner.h +0 -2577
  819. package/runtime/third_party/bearssl/src/int/i15_add.c +0 -46
  820. package/runtime/third_party/bearssl/src/int/i15_bitlen.c +0 -44
  821. package/runtime/third_party/bearssl/src/int/i15_decmod.c +0 -124
  822. package/runtime/third_party/bearssl/src/int/i15_decode.c +0 -56
  823. package/runtime/third_party/bearssl/src/int/i15_decred.c +0 -100
  824. package/runtime/third_party/bearssl/src/int/i15_encode.c +0 -56
  825. package/runtime/third_party/bearssl/src/int/i15_fmont.c +0 -59
  826. package/runtime/third_party/bearssl/src/int/i15_iszero.c +0 -39
  827. package/runtime/third_party/bearssl/src/int/i15_moddiv.c +0 -465
  828. package/runtime/third_party/bearssl/src/int/i15_modpow.c +0 -50
  829. package/runtime/third_party/bearssl/src/int/i15_modpow2.c +0 -160
  830. package/runtime/third_party/bearssl/src/int/i15_montmul.c +0 -184
  831. package/runtime/third_party/bearssl/src/int/i15_mulacc.c +0 -61
  832. package/runtime/third_party/bearssl/src/int/i15_muladd.c +0 -173
  833. package/runtime/third_party/bearssl/src/int/i15_ninv15.c +0 -38
  834. package/runtime/third_party/bearssl/src/int/i15_reduce.c +0 -66
  835. package/runtime/third_party/bearssl/src/int/i15_rshift.c +0 -47
  836. package/runtime/third_party/bearssl/src/int/i15_sub.c +0 -46
  837. package/runtime/third_party/bearssl/src/int/i15_tmont.c +0 -36
  838. package/runtime/third_party/bearssl/src/int/i31_add.c +0 -46
  839. package/runtime/third_party/bearssl/src/int/i31_bitlen.c +0 -44
  840. package/runtime/third_party/bearssl/src/int/i31_decmod.c +0 -124
  841. package/runtime/third_party/bearssl/src/int/i31_decode.c +0 -57
  842. package/runtime/third_party/bearssl/src/int/i31_decred.c +0 -103
  843. package/runtime/third_party/bearssl/src/int/i31_encode.c +0 -79
  844. package/runtime/third_party/bearssl/src/int/i31_fmont.c +0 -60
  845. package/runtime/third_party/bearssl/src/int/i31_iszero.c +0 -39
  846. package/runtime/third_party/bearssl/src/int/i31_moddiv.c +0 -488
  847. package/runtime/third_party/bearssl/src/int/i31_modpow.c +0 -65
  848. package/runtime/third_party/bearssl/src/int/i31_modpow2.c +0 -160
  849. package/runtime/third_party/bearssl/src/int/i31_montmul.c +0 -127
  850. package/runtime/third_party/bearssl/src/int/i31_mulacc.c +0 -74
  851. package/runtime/third_party/bearssl/src/int/i31_muladd.c +0 -157
  852. package/runtime/third_party/bearssl/src/int/i31_ninv31.c +0 -39
  853. package/runtime/third_party/bearssl/src/int/i31_reduce.c +0 -66
  854. package/runtime/third_party/bearssl/src/int/i31_rshift.c +0 -47
  855. package/runtime/third_party/bearssl/src/int/i31_sub.c +0 -46
  856. package/runtime/third_party/bearssl/src/int/i31_tmont.c +0 -36
  857. package/runtime/third_party/bearssl/src/int/i32_add.c +0 -51
  858. package/runtime/third_party/bearssl/src/int/i32_bitlen.c +0 -44
  859. package/runtime/third_party/bearssl/src/int/i32_decmod.c +0 -77
  860. package/runtime/third_party/bearssl/src/int/i32_decode.c +0 -63
  861. package/runtime/third_party/bearssl/src/int/i32_decred.c +0 -107
  862. package/runtime/third_party/bearssl/src/int/i32_div32.c +0 -56
  863. package/runtime/third_party/bearssl/src/int/i32_encode.c +0 -72
  864. package/runtime/third_party/bearssl/src/int/i32_fmont.c +0 -60
  865. package/runtime/third_party/bearssl/src/int/i32_iszero.c +0 -39
  866. package/runtime/third_party/bearssl/src/int/i32_modpow.c +0 -65
  867. package/runtime/third_party/bearssl/src/int/i32_montmul.c +0 -69
  868. package/runtime/third_party/bearssl/src/int/i32_mulacc.c +0 -56
  869. package/runtime/third_party/bearssl/src/int/i32_muladd.c +0 -138
  870. package/runtime/third_party/bearssl/src/int/i32_ninv32.c +0 -39
  871. package/runtime/third_party/bearssl/src/int/i32_reduce.c +0 -66
  872. package/runtime/third_party/bearssl/src/int/i32_sub.c +0 -51
  873. package/runtime/third_party/bearssl/src/int/i32_tmont.c +0 -36
  874. package/runtime/third_party/bearssl/src/int/i62_modpow2.c +0 -493
  875. package/runtime/third_party/bearssl/src/kdf/hkdf.c +0 -107
  876. package/runtime/third_party/bearssl/src/kdf/shake.c +0 -590
  877. package/runtime/third_party/bearssl/src/mac/hmac.c +0 -122
  878. package/runtime/third_party/bearssl/src/mac/hmac_ct.c +0 -193
  879. package/runtime/third_party/bearssl/src/rand/aesctr_drbg.c +0 -206
  880. package/runtime/third_party/bearssl/src/rand/hmac_drbg.c +0 -157
  881. package/runtime/third_party/bearssl/src/rand/sysrng.c +0 -252
  882. package/runtime/third_party/bearssl/src/rsa/rsa_default_keygen.c +0 -38
  883. package/runtime/third_party/bearssl/src/rsa/rsa_default_modulus.c +0 -36
  884. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_decrypt.c +0 -38
  885. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_encrypt.c +0 -38
  886. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_sign.c +0 -38
  887. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_vrfy.c +0 -38
  888. package/runtime/third_party/bearssl/src/rsa/rsa_default_priv.c +0 -38
  889. package/runtime/third_party/bearssl/src/rsa/rsa_default_privexp.c +0 -36
  890. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_sign.c +0 -38
  891. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_vrfy.c +0 -38
  892. package/runtime/third_party/bearssl/src/rsa/rsa_default_pub.c +0 -38
  893. package/runtime/third_party/bearssl/src/rsa/rsa_default_pubexp.c +0 -36
  894. package/runtime/third_party/bearssl/src/rsa/rsa_i15_keygen.c +0 -583
  895. package/runtime/third_party/bearssl/src/rsa/rsa_i15_modulus.c +0 -99
  896. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_decrypt.c +0 -41
  897. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_encrypt.c +0 -44
  898. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_sign.c +0 -37
  899. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_vrfy.c +0 -43
  900. package/runtime/third_party/bearssl/src/rsa/rsa_i15_priv.c +0 -209
  901. package/runtime/third_party/bearssl/src/rsa/rsa_i15_privexp.c +0 -320
  902. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_sign.c +0 -40
  903. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_vrfy.c +0 -44
  904. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pub.c +0 -113
  905. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pubexp.c +0 -152
  906. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen.c +0 -37
  907. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen_inner.c +0 -608
  908. package/runtime/third_party/bearssl/src/rsa/rsa_i31_modulus.c +0 -99
  909. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_decrypt.c +0 -41
  910. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_encrypt.c +0 -44
  911. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_sign.c +0 -37
  912. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_vrfy.c +0 -43
  913. package/runtime/third_party/bearssl/src/rsa/rsa_i31_priv.c +0 -203
  914. package/runtime/third_party/bearssl/src/rsa/rsa_i31_privexp.c +0 -318
  915. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_sign.c +0 -40
  916. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_vrfy.c +0 -44
  917. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pub.c +0 -106
  918. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pubexp.c +0 -152
  919. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_decrypt.c +0 -41
  920. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_encrypt.c +0 -44
  921. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_sign.c +0 -37
  922. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_vrfy.c +0 -43
  923. package/runtime/third_party/bearssl/src/rsa/rsa_i32_priv.c +0 -160
  924. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_sign.c +0 -40
  925. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_vrfy.c +0 -44
  926. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pub.c +0 -77
  927. package/runtime/third_party/bearssl/src/rsa/rsa_i62_keygen.c +0 -57
  928. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_decrypt.c +0 -61
  929. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_encrypt.c +0 -64
  930. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_sign.c +0 -57
  931. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_vrfy.c +0 -63
  932. package/runtime/third_party/bearssl/src/rsa/rsa_i62_priv.c +0 -223
  933. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_sign.c +0 -60
  934. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_vrfy.c +0 -64
  935. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pub.c +0 -125
  936. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_pad.c +0 -112
  937. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_unpad.c +0 -145
  938. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_pad.c +0 -100
  939. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_unpad.c +0 -121
  940. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_pad.c +0 -106
  941. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_unpad.c +0 -121
  942. package/runtime/third_party/bearssl/src/rsa/rsa_ssl_decrypt.c +0 -52
  943. package/runtime/third_party/bearssl/src/settings.c +0 -306
  944. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcdec.c +0 -69
  945. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcenc.c +0 -67
  946. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctr.c +0 -84
  947. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctrcbc.c +0 -142
  948. package/runtime/third_party/bearssl/src/symcipher/aes_big_dec.c +0 -254
  949. package/runtime/third_party/bearssl/src/symcipher/aes_big_enc.c +0 -157
  950. package/runtime/third_party/bearssl/src/symcipher/aes_common.c +0 -112
  951. package/runtime/third_party/bearssl/src/symcipher/aes_ct.c +0 -328
  952. package/runtime/third_party/bearssl/src/symcipher/aes_ct64.c +0 -398
  953. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcdec.c +0 -104
  954. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcenc.c +0 -81
  955. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctr.c +0 -114
  956. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctrcbc.c +0 -433
  957. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_dec.c +0 -159
  958. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_enc.c +0 -115
  959. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcdec.c +0 -111
  960. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcenc.c +0 -91
  961. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctr.c +0 -116
  962. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctrcbc.c +0 -422
  963. package/runtime/third_party/bearssl/src/symcipher/aes_ct_dec.c +0 -170
  964. package/runtime/third_party/bearssl/src/symcipher/aes_ct_enc.c +0 -112
  965. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8.c +0 -445
  966. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcdec.c +0 -670
  967. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcenc.c +0 -417
  968. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctr.c +0 -717
  969. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctrcbc.c +0 -946
  970. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcdec.c +0 -69
  971. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcenc.c +0 -67
  972. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctr.c +0 -84
  973. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctrcbc.c +0 -142
  974. package/runtime/third_party/bearssl/src/symcipher/aes_small_dec.c +0 -176
  975. package/runtime/third_party/bearssl/src/symcipher/aes_small_enc.c +0 -129
  976. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni.c +0 -240
  977. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcdec.c +0 -223
  978. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcenc.c +0 -122
  979. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctr.c +0 -211
  980. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctrcbc.c +0 -596
  981. package/runtime/third_party/bearssl/src/symcipher/chacha20_ct.c +0 -106
  982. package/runtime/third_party/bearssl/src/symcipher/chacha20_sse2.c +0 -237
  983. package/runtime/third_party/bearssl/src/symcipher/des_ct.c +0 -411
  984. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcdec.c +0 -87
  985. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcenc.c +0 -69
  986. package/runtime/third_party/bearssl/src/symcipher/des_support.c +0 -166
  987. package/runtime/third_party/bearssl/src/symcipher/des_tab.c +0 -310
  988. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcdec.c +0 -85
  989. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcenc.c +0 -67
  990. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul.c +0 -260
  991. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul32.c +0 -297
  992. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmulq.c +0 -475
  993. package/runtime/third_party/bearssl/src/symcipher/poly1305_i15.c +0 -221
  994. package/runtime/third_party/bearssl/src/x509/asn1.t0 +0 -757
  995. package/runtime/third_party/bearssl/src/x509/asn1enc.c +0 -93
  996. package/runtime/third_party/bearssl/src/x509/encode_ec_pk8der.c +0 -110
  997. package/runtime/third_party/bearssl/src/x509/encode_ec_rawder.c +0 -161
  998. package/runtime/third_party/bearssl/src/x509/encode_rsa_pk8der.c +0 -97
  999. package/runtime/third_party/bearssl/src/x509/encode_rsa_rawder.c +0 -96
  1000. package/runtime/third_party/bearssl/src/x509/skey_decoder.c +0 -653
  1001. package/runtime/third_party/bearssl/src/x509/skey_decoder.t0 +0 -376
  1002. package/runtime/third_party/bearssl/src/x509/x509_decoder.c +0 -776
  1003. package/runtime/third_party/bearssl/src/x509/x509_decoder.t0 +0 -324
  1004. package/runtime/third_party/bearssl/src/x509/x509_knownkey.c +0 -105
  1005. package/runtime/third_party/bearssl/src/x509/x509_minimal.c +0 -1722
  1006. package/runtime/third_party/bearssl/src/x509/x509_minimal.t0 +0 -1526
  1007. package/runtime/third_party/bearssl/src/x509/x509_minimal_full.c +0 -59
@@ -1,5 +1,5 @@
1
1
  /* crypto_internal.h — the crypto primitives (ADR 0018), runtime-private: what Web Crypto (the
2
- * crypto component) and node:crypto's host primitives share. BearSSL is reached only through
2
+ * crypto component) and node:crypto's host primitives share. BoringSSL is reached only through
3
3
  * the crypto*.c files, behind these. */
4
4
  #ifndef JS_CRYPTO_INTERNAL_H
5
5
  #define JS_CRYPTO_INTERNAL_H
@@ -8,17 +8,37 @@
8
8
  #include <stddef.h>
9
9
  #include <stdint.h>
10
10
 
11
- #include "bearssl.h"
11
+ #include <openssl/aes.h>
12
+ #include <openssl/des.h>
13
+ #include <openssl/md5.h>
14
+ #include <openssl/sha.h>
15
+
12
16
  #include "js_object.h"
13
17
 
14
18
  /* ---- Hashes ---------------------------------------------------------------------------------- */
15
19
 
16
20
  typedef enum JSHashKind {
17
- JS_HASH_BEARSSL, /* a BearSSL hash class */
18
- JS_HASH_SHA512T, /* SHA-512/t: SHA-512 with its own IV, truncated */
19
- JS_HASH_KECCAK, /* SHA-3 and SHAKE (crypto_hash.c's Keccak) */
21
+ JS_HASH_BORINGSSL, /* one of BoringSSL's (MD5, SHA-1, SHA-2, MD5+SHA-1) */
22
+ JS_HASH_SHA512T, /* SHA-512/t: SHA-512 with its own IV, truncated */
23
+ JS_HASH_KECCAK, /* SHA-3 and SHAKE (crypto_hash.c's Keccak) */
20
24
  } JSHashKind;
21
25
 
26
+ /* BoringSSL's hash contexts (plain structs: a copy is a copy of the hash) */
27
+ typedef union JSHashState {
28
+ MD5_CTX md5;
29
+ SHA_CTX sha1;
30
+ SHA256_CTX sha256;
31
+ SHA512_CTX sha512;
32
+ struct { MD5_CTX md5; SHA_CTX sha1; } md5sha1;
33
+ } JSHashState;
34
+
35
+ /* A BoringSSL hash: its functions over JSHashState */
36
+ typedef struct JSHashImpl {
37
+ void (*init)(JSHashState *s);
38
+ void (*update)(JSHashState *s, const void *p, size_t n);
39
+ void (*final)(JSHashState *s, uint8_t *out);
40
+ } JSHashImpl;
41
+
22
42
  typedef struct JSHashAlg {
23
43
  const char *name; /* Node's canonical name: "sha256" */
24
44
  const char *web; /* Web Crypto's: "SHA-256", or NULL */
@@ -26,10 +46,10 @@ typedef struct JSHashAlg {
26
46
  bool xof; /* SHAKE: any output length */
27
47
  uint16_t out_len; /* digest bytes (SHAKE: the default output length) */
28
48
  uint16_t block_len; /* HMAC's block (Keccak: the rate) */
29
- const br_hash_class *br; /* JS_HASH_BEARSSL */
49
+ const JSHashImpl *impl; /* JS_HASH_BORINGSSL */
30
50
  const uint64_t *iv; /* JS_HASH_SHA512T */
31
51
  uint8_t suffix; /* JS_HASH_KECCAK: 0x06 SHA-3, 0x1F SHAKE */
32
- /* the DER of its AlgorithmIdentifier's OID (PKCS#1 v1.5 signatures), or NULL */
52
+ /* its OID (PKCS#1 v1.5 signatures' DigestInfo): the length, then the bytes; or NULL */
33
53
  const unsigned char *oid;
34
54
  } JSHashAlg;
35
55
 
@@ -42,8 +62,8 @@ typedef struct JSKeccak {
42
62
  typedef struct JSHashCtx {
43
63
  const JSHashAlg *alg;
44
64
  union {
45
- br_hash_compat_context br;
46
- JSKeccak keccak;
65
+ JSHashState hash;
66
+ JSKeccak keccak;
47
67
  } u;
48
68
  } JSHashCtx;
49
69
 
@@ -136,12 +156,9 @@ typedef struct JSCipherCtx {
136
156
  bool encrypt, padding;
137
157
  uint8_t state; /* JS_CIPHER_INIT, … */
138
158
  uint8_t blk; /* the block cipher's block: 16, or 8 for DES */
139
- union { const br_block_cbcenc_class *vtable; br_aes_gen_cbcenc_keys aes; br_des_gen_cbcenc_keys des; } enc;
140
- union { const br_block_cbcdec_class *vtable; br_aes_gen_cbcdec_keys aes; br_des_gen_cbcdec_keys des; } dec;
141
- br_aes_gen_ctr_keys ctr; /* GCM's */
142
- br_aes_gen_ctrcbc_keys ctrcbc; /* CCM's */
143
- br_gcm_context gcm;
144
- br_ccm_context ccm;
159
+ AES_KEY aes_enc, aes_dec;
160
+ DES_key_schedule des[3];
161
+ struct evp_cipher_ctx_st *gcm; /* BoringSSL's GCM (an EVP_CIPHER_CTX) */
145
162
  uint8_t key[32]; /* ChaCha20's */
146
163
  uint8_t iv[16]; /* the chaining value, counter or feedback register; key wrap's IV */
147
164
  uint8_t nonce[16]; /* CCM's and ChaCha20's */
@@ -175,7 +192,7 @@ bool js_aes_ctr_masked(const uint8_t *key, size_t key_len, const uint8_t counter
175
192
 
176
193
  /* ---- Random bytes ------------------------------------------------------------------------------ */
177
194
 
178
- /* Cryptographically secure: an HMAC_DRBG (SHA-256) seeded from the system's entropy. */
195
+ /* Cryptographically secure: BoringSSL's RAND_bytes (the system's entropy, then its DRBG). */
179
196
  void js_crypto_random(void *out, size_t n);
180
197
 
181
198
  /* Constant time over n bytes: whether they're equal. */
@@ -185,12 +202,20 @@ bool js_crypto_equal(const uint8_t *a, const uint8_t *b, size_t n);
185
202
 
186
203
  typedef enum JSKeyType { JS_KEY_SECRET, JS_KEY_PUBLIC, JS_KEY_PRIVATE } JSKeyType;
187
204
 
188
- typedef enum JSAsymKind { JS_ASYM_NONE, JS_ASYM_RSA, JS_ASYM_RSA_PSS, JS_ASYM_EC, JS_ASYM_X25519 } JSAsymKind;
205
+ typedef enum JSAsymKind {
206
+ JS_ASYM_NONE, JS_ASYM_RSA, JS_ASYM_RSA_PSS, JS_ASYM_EC, JS_ASYM_X25519, JS_ASYM_ED25519, JS_ASYM_DH, JS_ASYM_DSA,
207
+ } JSAsymKind;
208
+
209
+ /* The curves, by their TLS group numbers (Ed25519 by its signature scheme's) */
210
+ enum { JS_EC_P256 = 23, JS_EC_P384 = 24, JS_EC_P521 = 25, JS_EC_X25519 = 29, JS_EC_ED25519 = 0x0807 };
189
211
 
190
212
  /* The parts of an asymmetric key, by index: RSA's integers (big-endian, minimal), an EC or X25519
191
213
  * key's public point (uncompressed for EC) and private scalar. */
192
214
  enum { JS_RSA_N, JS_RSA_E, JS_RSA_D, JS_RSA_P, JS_RSA_Q, JS_RSA_DP, JS_RSA_DQ, JS_RSA_QI, JS_KEY_PARTS };
193
215
  enum { JS_EC_PUB, JS_EC_PRIV };
216
+ /* finite-field Diffie-Hellman's and DSA's: the parameters, then the keys */
217
+ enum { JS_DH_P, JS_DH_G, JS_DH_PUB, JS_DH_PRIV };
218
+ enum { JS_DSA_P, JS_DSA_Q, JS_DSA_G, JS_DSA_PUB, JS_DSA_PRIV };
194
219
 
195
220
  typedef struct JSKeyPart {
196
221
  uint8_t *p;
@@ -206,7 +231,7 @@ typedef struct JSKeyData {
206
231
  uint8_t *bytes; /* a secret key's */
207
232
  size_t len;
208
233
  JSKeyPart part[JS_KEY_PARTS];
209
- int curve; /* EC and X25519: BR_EC_* */
234
+ int curve; /* EC and X25519: JS_EC_* */
210
235
  /* RSA-PSS keys restricted to parameters (their AlgorithmIdentifier has them) */
211
236
  bool pss_params;
212
237
  const JSHashAlg *pss_hash, *pss_mgf1;
@@ -226,24 +251,22 @@ enum { JS_KEY_ENC_SPKI, JS_KEY_ENC_PKCS1, JS_KEY_ENC_PKCS8, JS_KEY_ENC_SEC1, JS_
226
251
  int js_key_parse_der(JSContext *ctx, const uint8_t *p, size_t n, int enc, bool priv, JSValue *out);
227
252
  int js_key_export_der(const JSKeyData *k, int enc, JSBytesOut *o);
228
253
  /* A key from its parts (RSA's integers; EC's uncompressed point and scalar; X25519's): only the
229
- * public ones when !priv; an EC curve as BR_EC_*. */
254
+ * public ones when !priv; an EC curve as JS_EC_*. */
230
255
  int js_key_from_parts(JSContext *ctx, int kind, bool priv, int curve, const JSKeyPart parts[JS_KEY_PARTS], JSValue *out);
231
256
  int js_ec_curve_by_jwk(const char *crv);
232
257
  /* The public key of a private one (a new handle). */
233
258
  JSValue js_key_public(JSContext *ctx, JSValue private_key);
234
- /* New private keys: 0, or an error code (5: parameters BearSSL rejects). */
259
+ /* New private keys: 0, or an error code (5: parameters BoringSSL rejects). */
235
260
  int js_key_generate_rsa(JSContext *ctx, bool pss, uint32_t bits, uint32_t e, JSValue *out);
236
261
  int js_key_generate_ec(JSContext *ctx, int curve, JSValue *out);
262
+ /* DSA parameters of L and N bits, and a key: 0, or an error code. */
263
+ int js_key_generate_dsa(JSContext *ctx, uint32_t l, uint32_t n, JSValue *out);
237
264
  const char *js_ec_curve_jwk(int curve);
238
- /* An EC or X25519 private scalar in BearSSL's byte order (out: the scalar's length). */
239
- void js_ec_scalar_for_bearssl(const JSKeyData *k, uint8_t *out);
240
- /* A cryptographically secure PRNG for BearSSL's key generation (crypto_hash.c's DRBG). */
241
- const br_prng_class **js_crypto_prng(void);
242
265
 
243
266
  /* Web Crypto's key algorithms */
244
267
  typedef enum JSWebAlg {
245
268
  JS_WEB_HMAC = 1, JS_WEB_PBKDF2, JS_WEB_HKDF, JS_WEB_AES_CTR, JS_WEB_AES_CBC, JS_WEB_AES_GCM, JS_WEB_AES_KW,
246
- JS_WEB_RSASSA, JS_WEB_RSA_PSS, JS_WEB_RSA_OAEP, JS_WEB_ECDSA, JS_WEB_ECDH, JS_WEB_X25519,
269
+ JS_WEB_RSASSA, JS_WEB_RSA_PSS, JS_WEB_RSA_OAEP, JS_WEB_ECDSA, JS_WEB_ECDH, JS_WEB_X25519, JS_WEB_ED25519,
247
270
  } JSWebAlg;
248
271
 
249
272
  /* KeyUsage, as bits in this order */
@@ -277,9 +300,13 @@ enum { JS_RSA_PUBLIC_ENCRYPT, JS_RSA_PRIVATE_DECRYPT, JS_RSA_PRIVATE_ENCRYPT, JS
277
300
  /* why an operation failed (each one of Node's errors) */
278
301
  enum {
279
302
  JS_ASYM_ERR_KEY_TYPE = 1, JS_ASYM_ERR_DIGEST, JS_ASYM_ERR_FAILED, JS_ASYM_ERR_SALT, JS_ASYM_ERR_TOO_LARGE, JS_ASYM_ERR_TOO_SMALL,
280
- JS_ASYM_ERR_OAEP, JS_ASYM_ERR_PADDING, JS_ASYM_ERR_POINT, JS_ASYM_ERR_CURVE,
303
+ JS_ASYM_ERR_OAEP, JS_ASYM_ERR_PADDING, JS_ASYM_ERR_POINT, JS_ASYM_ERR_CURVE, JS_ASYM_ERR_UNSUPPORTED,
281
304
  };
282
305
 
306
+ /* Ed25519 signs messages, not digests: a 64-byte signature. 0, or an error. */
307
+ int js_ed25519_sign(const JSKeyData *k, const uint8_t *msg, size_t n, uint8_t sig[64]);
308
+ int js_ed25519_verify(const JSKeyData *k, const uint8_t *msg, size_t n, const uint8_t *sig, size_t sig_len, bool *valid);
309
+
283
310
  /* A signature of a digest (alg->out_len bytes) into out (malloc'd). 0, or an error. */
284
311
  int js_asym_sign(const JSKeyData *k, const JSHashAlg *h, const uint8_t *digest, int padding, long salt_len, bool p1363,
285
312
  JSBytesOut *out);
@@ -290,6 +317,8 @@ int js_rsa_crypt(const JSKeyData *k, int op, int padding, const JSHashAlg *oaep_
290
317
  /* The shared secret of a private key and a peer's point (any encoding for EC). */
291
318
  int js_ecdh(const JSKeyData *k, const uint8_t *peer, size_t peer_len, uint8_t *secret, size_t *secret_len);
292
319
  int js_ec_curve_by_name(const char *name);
320
+ /* A private scalar's public point (EC: uncompressed) or X25519's public value: false when it isn't one. */
321
+ bool js_ec_public_of(int curve, const uint8_t *scalar, size_t n, uint8_t *out, size_t *out_len);
293
322
  size_t js_ec_field_size(int curve);
294
323
  bool js_ec_point_uncompressed(int curve, const uint8_t *in, size_t n, uint8_t *out);
295
324
  size_t js_ec_point_format(int curve, const uint8_t *point, int format, uint8_t *out);
@@ -1,11 +1,19 @@
1
1
  /* Asymmetric keys (ADR 0018): RSA, RSA-PSS, EC (P-256, P-384, P-521) and X25519 keys in the key
2
2
  * record (crypto_internal.h), their DER encodings (SPKI, PKCS#8, PKCS#1, SEC1, and the public key
3
3
  * of an X.509 certificate) with a small DER reader and writer of our own, and their generation on
4
- * BearSSL. node:crypto's KeyObject is built on the primitives at the end; Web Crypto's keys share
4
+ * BoringSSL. node:crypto's KeyObject is built on the primitives at the end; Web Crypto's keys share
5
5
  * the record. PEM and JWK are the prelude's (base64 in JS), over the DER and the parts here. */
6
6
  #include <stdlib.h>
7
7
  #include <string.h>
8
8
 
9
+ #include <openssl/bn.h>
10
+ #include <openssl/curve25519.h>
11
+ #include <openssl/ec.h>
12
+ #include <openssl/ec_key.h>
13
+ #include <openssl/err.h>
14
+ #include <openssl/nid.h>
15
+ #include <openssl/rsa.h>
16
+
9
17
  #include "builtins_util.h"
10
18
  #include "crypto_internal.h"
11
19
  #include "internal.h"
@@ -145,18 +153,21 @@ static const uint8_t OID_RSA_PSS[] = { 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01,
145
153
  static const uint8_t OID_MGF1[] = { 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x08 };
146
154
  static const uint8_t OID_EC[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01 };
147
155
  static const uint8_t OID_X25519[] = { 0x2B, 0x65, 0x6E };
156
+ static const uint8_t OID_ED25519[] = { 0x2B, 0x65, 0x70 };
157
+ static const uint8_t OID_DH[] = { 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x03, 0x01 };
158
+ static const uint8_t OID_DSA[] = { 0x2A, 0x86, 0x48, 0xCE, 0x38, 0x04, 0x01 };
148
159
 
149
160
  static const struct {
150
- int curve; /* BR_EC_* */
161
+ int curve; /* JS_EC_* */
151
162
  const char *name; /* Node's (OpenSSL's) */
152
163
  const char *jwk; /* JWK's crv */
153
164
  uint8_t size; /* bytes of a coordinate or scalar */
154
165
  uint8_t oid_len;
155
166
  const uint8_t *oid;
156
167
  } CURVES[] = {
157
- { BR_EC_secp256r1, "prime256v1", "P-256", 32, 8, (const uint8_t *)"\x2A\x86\x48\xCE\x3D\x03\x01\x07" },
158
- { BR_EC_secp384r1, "secp384r1", "P-384", 48, 5, (const uint8_t *)"\x2B\x81\x04\x00\x22" },
159
- { BR_EC_secp521r1, "secp521r1", "P-521", 66, 5, (const uint8_t *)"\x2B\x81\x04\x00\x23" },
168
+ { JS_EC_P256, "prime256v1", "P-256", 32, 8, (const uint8_t *)"\x2A\x86\x48\xCE\x3D\x03\x01\x07" },
169
+ { JS_EC_P384, "secp384r1", "P-384", 48, 5, (const uint8_t *)"\x2B\x81\x04\x00\x22" },
170
+ { JS_EC_P521, "secp521r1", "P-521", 66, 5, (const uint8_t *)"\x2B\x81\x04\x00\x23" },
160
171
  };
161
172
 
162
173
  static int curve_index(int curve) {
@@ -186,7 +197,7 @@ static const JSHashAlg *hash_by_oid(Der oid) {
186
197
  enum {
187
198
  KEY_ERR_DECODE = 1, /* not a key the decoder takes: "DECODER routines::unsupported" */
188
199
  KEY_ERR_TAG, /* bad DER: "asn1 encoding routines::wrong tag" */
189
- KEY_ERR_KEY_TYPE, /* a key type BearSSL doesn't have (Ed25519, DSA, …) */
200
+ KEY_ERR_KEY_TYPE, /* a key type not provided (Ed25519, DSA, …) */
190
201
  KEY_ERR_ENCODING, /* an encoding the key's type can't have (pkcs1 of an EC key) */
191
202
  KEY_ERR_GENERATE, /* parameters key generation rejects */
192
203
  };
@@ -204,23 +215,34 @@ static void set_part_fixed(JSKeyData *k, int i, const uint8_t *p, size_t n, size
204
215
  js_key_part_set(&k->part[i], buf, size);
205
216
  }
206
217
 
207
- /* A private scalar as BearSSL takes it: X25519's reversed (BearSSL reads Curve25519 scalars
208
- * big-endian; RFC 7748, OpenSSL and Node keep them little-endian, as the key record does). */
209
- void js_ec_scalar_for_bearssl(const JSKeyData *k, uint8_t *out) {
210
- const JSKeyPart *x = &k->part[JS_EC_PRIV];
211
- for (size_t i = 0; i < x->n; i++) out[i] = k->curve == BR_EC_curve25519 ? x->p[x->n - 1 - i] : x->p[i];
218
+ /* A finite-field key's public value from the private one: y = g^x mod p */
219
+ static bool ff_compute_pub(JSKeyData *k) {
220
+ bool dh = k->kind == JS_ASYM_DH;
221
+ const JSKeyPart *p = &k->part[dh ? JS_DH_P : JS_DSA_P], *g = &k->part[dh ? JS_DH_G : JS_DSA_G], *x = &k->part[dh ? JS_DH_PRIV : JS_DSA_PRIV];
222
+ if (!p->p || !g->p || !x->p) return false;
223
+ BIGNUM *bp = BN_bin2bn(p->p, p->n, NULL), *bg = BN_bin2bn(g->p, g->n, NULL), *bx = BN_bin2bn(x->p, x->n, NULL), *y = BN_new();
224
+ BN_CTX *bc = BN_CTX_new();
225
+ bool ok = bp && bg && bx && y && bc && BN_is_odd(bp) && BN_mod_exp_mont_consttime(y, bg, bx, bp, bc, NULL);
226
+ if (ok) {
227
+ size_t n = BN_num_bytes(y);
228
+ uint8_t *buf = malloc(n ? n : 1);
229
+ if (!buf) js_fatal("out of memory in crypto");
230
+ if (n == 0) buf[0] = 0, n = 1;
231
+ else BN_bn2bin(y, buf);
232
+ js_key_part_set(&k->part[dh ? JS_DH_PUB : JS_DSA_PUB], buf, n);
233
+ free(buf);
234
+ }
235
+ BN_free(bp), BN_free(bg), BN_clear_free(bx), BN_free(y), BN_CTX_free(bc);
236
+ ERR_clear_error();
237
+ return ok;
212
238
  }
213
239
 
214
- /* The EC public point from the private scalar. */
240
+ /* The EC public point (or X25519 public value) from the private scalar. */
215
241
  static bool ec_compute_pub(JSKeyData *k) {
216
- uint8_t scalar[66];
217
- js_ec_scalar_for_bearssl(k, scalar);
218
- br_ec_private_key sk = { k->curve, scalar, k->part[JS_EC_PRIV].n };
219
- uint8_t pub[BR_EC_KBUF_PUB_MAX_SIZE];
220
- br_ec_public_key pk;
221
- size_t n = br_ec_compute_pub(br_ec_get_default(), &pk, pub, &sk);
222
- if (!n) return false;
223
- js_key_part_set(&k->part[JS_EC_PUB], pk.q, pk.qlen);
242
+ uint8_t pub[133];
243
+ size_t n;
244
+ if (!js_ec_public_of(k->curve, k->part[JS_EC_PRIV].p, k->part[JS_EC_PRIV].n, pub, &n)) return false;
245
+ js_key_part_set(&k->part[JS_EC_PUB], pub, n);
224
246
  return true;
225
247
  }
226
248
 
@@ -263,7 +285,21 @@ static int algorithm_identifier(JSKeyData *k, Der alg_seq) {
263
285
  if (k->curve < 0) return KEY_ERR_KEY_TYPE;
264
286
  } else if (der_oid_is(oid, OID_X25519, sizeof OID_X25519)) {
265
287
  k->kind = JS_ASYM_X25519;
266
- k->curve = BR_EC_curve25519;
288
+ k->curve = JS_EC_X25519;
289
+ } else if (der_oid_is(oid, OID_ED25519, sizeof OID_ED25519)) {
290
+ k->kind = JS_ASYM_ED25519;
291
+ k->curve = JS_EC_ED25519;
292
+ } else if (der_oid_is(oid, OID_DH, sizeof OID_DH) || der_oid_is(oid, OID_DSA, sizeof OID_DSA)) {
293
+ /* DHParameter (PKCS#3: p, g[, privateValueLength]) or Dss-Parms (p, q, g) */
294
+ bool dh = oid.n == sizeof OID_DH;
295
+ Der params, v;
296
+ k->kind = dh ? JS_ASYM_DH : JS_ASYM_DSA;
297
+ if (!der_expect(&alg_seq, DER_SEQ, &params)) return KEY_ERR_TAG;
298
+ int n = dh ? 2 : 3;
299
+ for (int i = 0; i < n; i++) {
300
+ if (!der_uint(&params, &v)) return KEY_ERR_TAG;
301
+ set_part(k, i, v);
302
+ }
267
303
  } else {
268
304
  return KEY_ERR_KEY_TYPE;
269
305
  }
@@ -320,7 +356,13 @@ static int spki(JSKeyData *k, Der in) {
320
356
  if (!der_expect(&seq, DER_BIT_STRING, &bits) || bits.n < 1 || bits.p[0] != 0) return KEY_ERR_TAG;
321
357
  Der key = { bits.p + 1, bits.n - 1 };
322
358
  if (k->kind == JS_ASYM_RSA || k->kind == JS_ASYM_RSA_PSS) return rsa_public(k, key);
323
- if (k->kind == JS_ASYM_X25519 && key.n != 32) return KEY_ERR_TAG;
359
+ if (k->kind == JS_ASYM_DH || k->kind == JS_ASYM_DSA) {
360
+ Der y;
361
+ if (!der_uint(&key, &y)) return KEY_ERR_TAG;
362
+ set_part(k, k->kind == JS_ASYM_DH ? JS_DH_PUB : JS_DSA_PUB, y);
363
+ return 0;
364
+ }
365
+ if ((k->kind == JS_ASYM_X25519 || k->kind == JS_ASYM_ED25519) && key.n != 32) return KEY_ERR_TAG;
324
366
  if (k->kind == JS_ASYM_EC && (key.n != 1 + 2u * CURVES[curve_index(k->curve)].size || key.p[0] != 4)) return KEY_ERR_TAG;
325
367
  js_key_part_set(&k->part[JS_EC_PUB], key.p, key.n);
326
368
  return 0;
@@ -340,6 +382,13 @@ static int pkcs8(JSKeyData *k, Der in) {
340
382
  return rsa_private(k, priv);
341
383
  case JS_ASYM_EC:
342
384
  return ec_private(k, priv);
385
+ case JS_ASYM_DH:
386
+ case JS_ASYM_DSA: {
387
+ Der x;
388
+ if (!der_uint(&priv, &x)) return KEY_ERR_TAG;
389
+ set_part(k, k->kind == JS_ASYM_DH ? JS_DH_PRIV : JS_DSA_PRIV, x);
390
+ return ff_compute_pub(k) ? 0 : KEY_ERR_TAG;
391
+ }
343
392
  default: {
344
393
  Der scalar;
345
394
  if (!der_expect(&priv, DER_OCTET_STRING, &scalar) || scalar.n != 32) return KEY_ERR_TAG;
@@ -409,6 +458,18 @@ static void w_algorithm(JSBytesOut *o, const JSKeyData *k) {
409
458
  w_tlv(&a, DER_OID, CURVES[ci].oid, CURVES[ci].oid_len);
410
459
  break;
411
460
  }
461
+ case JS_ASYM_ED25519:
462
+ w_tlv(&a, DER_OID, OID_ED25519, sizeof OID_ED25519);
463
+ break;
464
+ case JS_ASYM_DH:
465
+ case JS_ASYM_DSA: {
466
+ bool dh = k->kind == JS_ASYM_DH;
467
+ JSBytesOut p = { 0 };
468
+ w_tlv(&a, DER_OID, dh ? OID_DH : OID_DSA, dh ? sizeof OID_DH : sizeof OID_DSA);
469
+ for (int i = 0; i < (dh ? 2 : 3); i++) w_uint(&p, k->part[i].p, k->part[i].n);
470
+ w_wrap(&a, DER_SEQ, &p);
471
+ break;
472
+ }
412
473
  default:
413
474
  w_tlv(&a, DER_OID, OID_X25519, sizeof OID_X25519);
414
475
  break;
@@ -456,6 +517,8 @@ static void w_spki(JSBytesOut *o, const JSKeyData *k) {
456
517
  static const uint8_t unused = 0;
457
518
  w_raw(&key, &unused, 1);
458
519
  if (k->kind == JS_ASYM_RSA || k->kind == JS_ASYM_RSA_PSS) w_rsa_public(&key, k);
520
+ else if (k->kind == JS_ASYM_DH) w_uint(&key, k->part[JS_DH_PUB].p, k->part[JS_DH_PUB].n);
521
+ else if (k->kind == JS_ASYM_DSA) w_uint(&key, k->part[JS_DSA_PUB].p, k->part[JS_DSA_PUB].n);
459
522
  else w_raw(&key, k->part[JS_EC_PUB].p, k->part[JS_EC_PUB].n);
460
523
  w_tlv(&s, DER_BIT_STRING, key.p, key.n);
461
524
  free(key.p);
@@ -468,13 +531,15 @@ static void w_pkcs8(JSBytesOut *o, const JSKeyData *k) {
468
531
  w_algorithm(&s, k);
469
532
  if (k->kind == JS_ASYM_RSA || k->kind == JS_ASYM_RSA_PSS) w_rsa_private(&priv, k);
470
533
  else if (k->kind == JS_ASYM_EC) w_ec_private(&priv, k, false);
534
+ else if (k->kind == JS_ASYM_DH) w_uint(&priv, k->part[JS_DH_PRIV].p, k->part[JS_DH_PRIV].n);
535
+ else if (k->kind == JS_ASYM_DSA) w_uint(&priv, k->part[JS_DSA_PRIV].p, k->part[JS_DSA_PRIV].n);
471
536
  else w_tlv(&priv, DER_OCTET_STRING, k->part[JS_EC_PRIV].p, k->part[JS_EC_PRIV].n);
472
537
  w_wrap(&s, DER_OCTET_STRING, &priv);
473
538
  w_wrap(o, DER_SEQ, &s);
474
539
  }
475
540
 
476
- /* BearSSL's limit on RSA moduli (its private BR_MAX_RSA_SIZE) */
477
- #define RSA_MAX_BITS 4096
541
+ /* the largest RSA key generated (OpenSSL's limit) */
542
+ #define RSA_MAX_BITS 16384
478
543
 
479
544
  /* ---- The handle's primitives -------------------------------------------------------------------- */
480
545
 
@@ -551,7 +616,7 @@ PRIMITIVE(js_crypto_key_export) {
551
616
  return r;
552
617
  }
553
618
 
554
- static const char *const KINDS[] = { NULL, "rsa", "rsa-pss", "ec", "x25519" };
619
+ static const char *const KINDS[] = { NULL, "rsa", "rsa-pss", "ec", "x25519", "ed25519", "dh", "dsa" };
555
620
 
556
621
  /* cryptoKeyInfo(handle): [type, asymmetricKeyType, namedCurve, pss], pss [hash, mgf1, salt] or null. */
557
622
  PRIMITIVE(js_crypto_key_info) {
@@ -595,16 +660,17 @@ int js_key_from_parts(JSContext *ctx, int kind, bool priv, int curve, const JSKe
595
660
  *out = js_object_value(&k->obj);
596
661
  for (int i = 0; i < JS_KEY_PARTS; i++)
597
662
  if (parts[i].p) js_key_part_set(&k->part[i], parts[i].p, parts[i].n);
598
- if (kind == JS_ASYM_RSA) {
663
+ if (kind == JS_ASYM_RSA || kind == JS_ASYM_DH || kind == JS_ASYM_DSA) {
599
664
  for (int i = 0; i < JS_KEY_PARTS; i++) { /* minimal integers */
600
665
  JSKeyPart *pt = &k->part[i];
601
666
  size_t z = 0;
602
667
  while (pt->p && z + 1 < pt->n && pt->p[z] == 0) z++;
603
668
  if (z) memmove(pt->p, pt->p + z, pt->n -= z);
604
669
  }
670
+ if (kind != JS_ASYM_RSA && priv && !k->part[kind == JS_ASYM_DH ? JS_DH_PUB : JS_DSA_PUB].p && !ff_compute_pub(k)) return KEY_ERR_TAG;
605
671
  return 0;
606
672
  }
607
- k->curve = kind == JS_ASYM_X25519 ? BR_EC_curve25519 : curve;
673
+ k->curve = kind == JS_ASYM_X25519 ? JS_EC_X25519 : kind == JS_ASYM_ED25519 ? JS_EC_ED25519 : curve;
608
674
  if (kind == JS_ASYM_EC) {
609
675
  int ci = curve_index(curve);
610
676
  if (ci < 0) return KEY_ERR_KEY_TYPE;
@@ -643,7 +709,8 @@ PRIMITIVE(js_crypto_key_from_parts) {
643
709
  size_t n;
644
710
  if (js_buffer_source_bytes(v, &p, &n)) got[i].p = p, got[i].n = n;
645
711
  }
646
- int k = strcmp(kind, "rsa") == 0 ? JS_ASYM_RSA : strcmp(kind, "x25519") == 0 ? JS_ASYM_X25519 : JS_ASYM_EC;
712
+ int k = strcmp(kind, "rsa") == 0 ? JS_ASYM_RSA : strcmp(kind, "x25519") == 0 ? JS_ASYM_X25519 : strcmp(kind, "ed25519") == 0 ? JS_ASYM_ED25519
713
+ : strcmp(kind, "dh") == 0 ? JS_ASYM_DH : strcmp(kind, "dsa") == 0 ? JS_ASYM_DSA : JS_ASYM_EC;
647
714
  JSValue key;
648
715
  int e = js_key_from_parts(ctx, k, js_truthy(ARG(1)), js_ec_curve_by_jwk(curve), got, &key);
649
716
  return e ? js_int32(e) : key;
@@ -658,6 +725,9 @@ JSValue js_key_public(JSContext *ctx, JSValue private_key) {
658
725
  if (src->kind == JS_ASYM_RSA || src->kind == JS_ASYM_RSA_PSS) {
659
726
  js_key_part_set(&k->part[JS_RSA_N], src->part[JS_RSA_N].p, src->part[JS_RSA_N].n);
660
727
  js_key_part_set(&k->part[JS_RSA_E], src->part[JS_RSA_E].p, src->part[JS_RSA_E].n);
728
+ } else if (src->kind == JS_ASYM_DH || src->kind == JS_ASYM_DSA) { /* the parameters and the public key */
729
+ int n = src->kind == JS_ASYM_DH ? JS_DH_PRIV : JS_DSA_PRIV;
730
+ for (int i = 0; i < n; i++) js_key_part_set(&k->part[i], src->part[i].p, src->part[i].n);
661
731
  } else {
662
732
  js_key_part_set(&k->part[JS_EC_PUB], src->part[JS_EC_PUB].p, src->part[JS_EC_PUB].n);
663
733
  }
@@ -704,52 +774,111 @@ PRIMITIVE(js_crypto_key_secret_bytes) {
704
774
 
705
775
  int js_key_generate_rsa(JSContext *ctx, bool pss, uint32_t bits, uint32_t e, JSValue *out) {
706
776
  if (bits < 512 || bits > RSA_MAX_BITS || e < 3 || !(e & 1)) return KEY_ERR_GENERATE;
707
- uint8_t *kpriv = malloc(BR_RSA_KBUF_PRIV_SIZE(RSA_MAX_BITS)), *kpub = malloc(BR_RSA_KBUF_PUB_SIZE(RSA_MAX_BITS));
708
- uint8_t *d = malloc(RSA_MAX_BITS / 8);
709
- if (!kpriv || !kpub || !d) js_fatal("out of memory in crypto");
710
- br_rsa_private_key sk;
711
- br_rsa_public_key pk;
712
- bool ok = br_rsa_keygen_get_default()(js_crypto_prng(), &sk, kpriv, &pk, kpub, bits, e);
713
- size_t dn = ok ? br_rsa_compute_privexp_get_default()(d, &sk, e) : 0;
777
+ RSA *r = RSA_new();
778
+ BIGNUM *be = BN_new();
714
779
  int err = KEY_ERR_GENERATE;
715
- if (ok && dn) {
780
+ if (r && be && BN_set_word(be, e) && RSA_generate_key_ex(r, (int)bits, be, NULL)) {
716
781
  JSKeyData *k = js_new_asym_key(ctx, JS_KEY_PRIVATE, pss ? JS_ASYM_RSA_PSS : JS_ASYM_RSA);
717
- const uint8_t *parts[8] = { pk.n, pk.e, d, sk.p, sk.q, sk.dp, sk.dq, sk.iq };
718
- size_t lens[8] = { pk.nlen, pk.elen, dn, sk.plen, sk.qlen, sk.dplen, sk.dqlen, sk.iqlen };
782
+ const BIGNUM *parts[8] = {
783
+ RSA_get0_n(r), RSA_get0_e(r), RSA_get0_d(r), RSA_get0_p(r), RSA_get0_q(r), RSA_get0_dmp1(r), RSA_get0_dmq1(r), RSA_get0_iqmp(r),
784
+ };
785
+ uint8_t *buf = malloc(RSA_MAX_BITS / 8 + 1);
786
+ if (!buf) js_fatal("out of memory in crypto");
719
787
  for (int i = 0; i < 8; i++) {
720
- const uint8_t *p = parts[i];
721
- size_t n = lens[i];
722
- while (n > 1 && p[0] == 0) p++, n--;
723
- js_key_part_set(&k->part[i], p, n);
788
+ size_t n = BN_bn2bin(parts[i], buf);
789
+ if (n == 0) buf[0] = 0, n = 1;
790
+ js_key_part_set(&k->part[i], buf, n);
724
791
  }
792
+ memset(buf, 0, RSA_MAX_BITS / 8 + 1);
793
+ free(buf);
725
794
  *out = js_object_value(&k->obj);
726
795
  err = 0;
727
796
  }
728
- memset(kpriv, 0, BR_RSA_KBUF_PRIV_SIZE(RSA_MAX_BITS));
729
- memset(d, 0, RSA_MAX_BITS / 8);
730
- free(kpriv), free(kpub), free(d);
797
+ BN_free(be);
798
+ RSA_free(r);
799
+ ERR_clear_error();
731
800
  return err;
732
801
  }
733
802
 
734
803
  int js_key_generate_ec(JSContext *ctx, int curve, JSValue *out) {
735
- uint8_t kbuf[BR_EC_KBUF_PRIV_MAX_SIZE];
736
- br_ec_private_key sk;
737
- if (curve != BR_EC_curve25519 && curve_index(curve) < 0) return KEY_ERR_GENERATE;
738
- if (!br_ec_keygen(js_crypto_prng(), br_ec_get_default(), &sk, kbuf, curve)) return KEY_ERR_GENERATE;
739
- JSKeyData *k = js_new_asym_key(ctx, JS_KEY_PRIVATE, curve == BR_EC_curve25519 ? JS_ASYM_X25519 : JS_ASYM_EC);
804
+ if (curve != JS_EC_X25519 && curve != JS_EC_ED25519 && curve_index(curve) < 0) return KEY_ERR_GENERATE;
805
+ JSKeyData *k = js_new_asym_key(ctx, JS_KEY_PRIVATE, curve == JS_EC_X25519 ? JS_ASYM_X25519 : curve == JS_EC_ED25519 ? JS_ASYM_ED25519 : JS_ASYM_EC);
740
806
  k->curve = curve;
741
- if (curve == BR_EC_curve25519) { /* stored little-endian (js_ec_scalar_for_bearssl) */
742
- for (size_t i = 0; i < sk.xlen / 2; i++) {
743
- unsigned char t = sk.x[i];
744
- sk.x[i] = sk.x[sk.xlen - 1 - i];
745
- sk.x[sk.xlen - 1 - i] = t;
807
+ if (curve == JS_EC_ED25519) {
808
+ uint8_t pub[32], priv[64];
809
+ ED25519_keypair(pub, priv);
810
+ js_key_part_set(&k->part[JS_EC_PRIV], priv, 32); /* the seed */
811
+ js_key_part_set(&k->part[JS_EC_PUB], pub, 32);
812
+ memset(priv, 0, sizeof priv);
813
+ *out = js_object_value(&k->obj);
814
+ return 0;
815
+ }
816
+ if (curve == JS_EC_X25519) {
817
+ uint8_t pub[32], priv[32];
818
+ X25519_keypair(pub, priv);
819
+ js_key_part_set(&k->part[JS_EC_PRIV], priv, 32);
820
+ js_key_part_set(&k->part[JS_EC_PUB], pub, 32);
821
+ memset(priv, 0, sizeof priv);
822
+ *out = js_object_value(&k->obj);
823
+ return 0;
824
+ }
825
+ int nid = curve == JS_EC_P256 ? NID_X9_62_prime256v1 : curve == JS_EC_P384 ? NID_secp384r1 : NID_secp521r1;
826
+ EC_KEY *key = EC_KEY_new_by_curve_name(nid);
827
+ int err = KEY_ERR_GENERATE;
828
+ if (key && EC_KEY_generate_key(key)) {
829
+ size_t fs = CURVES[curve_index(curve)].size;
830
+ uint8_t priv[66];
831
+ BN_bn2bin_padded(priv, fs, EC_KEY_get0_private_key(key));
832
+ js_key_part_set(&k->part[JS_EC_PRIV], priv, fs);
833
+ memset(priv, 0, sizeof priv);
834
+ if (ec_compute_pub(k)) {
835
+ *out = js_object_value(&k->obj);
836
+ err = 0;
746
837
  }
747
838
  }
748
- js_key_part_set(&k->part[JS_EC_PRIV], sk.x, sk.xlen);
749
- memset(kbuf, 0, sizeof kbuf);
750
- if (!ec_compute_pub(k)) return KEY_ERR_GENERATE;
751
- *out = js_object_value(&k->obj);
752
- return 0;
839
+ EC_KEY_free(key);
840
+ ERR_clear_error();
841
+ return err;
842
+ }
843
+
844
+ /* DSA parameters of L and N bits (q prime of N bits, p prime of L bits with q dividing p − 1, g of
845
+ * order q), then a key: any (L, N), as OpenSSL's divisorLength allows */
846
+ int js_key_generate_dsa(JSContext *ctx, uint32_t l, uint32_t n, JSValue *out) {
847
+ if (l < 512 || l > 10000 || n < 160 || n >= l) return KEY_ERR_GENERATE;
848
+ BIGNUM *q = BN_new(), *q2 = BN_new(), *one = BN_new(), *p = BN_new(), *e = BN_new(), *g = BN_new(), *h = BN_new(), *x = BN_new();
849
+ BN_CTX *bc = BN_CTX_new();
850
+ bool ok = q && q2 && one && p && e && g && h && x && bc && BN_one(one) &&
851
+ BN_generate_prime_ex(q, (int)n, 0, NULL, NULL, NULL) && BN_lshift1(q2, q) &&
852
+ BN_generate_prime_ex(p, (int)l, 0, q2, one, NULL); /* p ≡ 1 (mod 2q) */
853
+ /* g = h^((p − 1)/q) mod p for the first h from 2 that gives more than 1 */
854
+ ok = ok && BN_sub(e, p, one) && BN_div(e, NULL, e, q, bc);
855
+ for (unsigned w = 2; ok; w++) {
856
+ ok = BN_set_word(h, w) && BN_mod_exp_mont(g, h, e, p, bc, NULL);
857
+ if (ok && !BN_is_one(g)) break;
858
+ }
859
+ /* x in [1, q − 1] */
860
+ ok = ok && BN_rand_range_ex(x, 1, q);
861
+ int err = KEY_ERR_GENERATE;
862
+ if (ok) {
863
+ JSKeyData *k = js_new_asym_key(ctx, JS_KEY_PRIVATE, JS_ASYM_DSA);
864
+ const BIGNUM *parts[4] = { p, q, g, NULL };
865
+ parts[3] = x;
866
+ int idx[4] = { JS_DSA_P, JS_DSA_Q, JS_DSA_G, JS_DSA_PRIV };
867
+ uint8_t *buf = malloc(l / 8 + 2);
868
+ if (!buf) js_fatal("out of memory in crypto");
869
+ for (int i = 0; i < 4; i++) {
870
+ size_t len = BN_bn2bin(parts[i], buf);
871
+ js_key_part_set(&k->part[idx[i]], buf, len);
872
+ }
873
+ free(buf);
874
+ if (ff_compute_pub(k)) {
875
+ *out = js_object_value(&k->obj);
876
+ err = 0;
877
+ }
878
+ }
879
+ BN_free(q), BN_free(q2), BN_free(one), BN_free(p), BN_free(e), BN_free(g), BN_free(h), BN_clear_free(x), BN_CTX_free(bc);
880
+ ERR_clear_error();
881
+ return err;
753
882
  }
754
883
 
755
884
  /* cryptoKeyGenerate(kind, sizeOrCurve, publicExponent, pss): a private key handle, or
@@ -760,6 +889,12 @@ PRIMITIVE(js_crypto_key_generate) {
760
889
  if (!js_is_string(ARG(0))) return js_throw_type_error(ctx, "cryptoKeyGenerate: bad arguments");
761
890
  js_view_to_utf8(js_string_view(ctx, ARG(0)), kind, sizeof kind - 1);
762
891
  JSValue key;
892
+ if (strcmp(kind, "dsa") == 0) { /* (L, N) */
893
+ double l = js_is_number(ARG(1)) ? js_as_number(ARG(1)) : 0, n = js_is_number(ARG(2)) ? js_as_number(ARG(2)) : 0;
894
+ if (l < 0 || l > 10000 || n < 0 || n > 10000) return js_int32(KEY_ERR_GENERATE);
895
+ int err = js_key_generate_dsa(ctx, (uint32_t)l, (uint32_t)n, &key);
896
+ return err ? js_int32(err) : key;
897
+ }
763
898
  if (strcmp(kind, "rsa") == 0 || strcmp(kind, "rsa-pss") == 0) {
764
899
  double bits = js_is_number(ARG(1)) ? js_as_number(ARG(1)) : 0, e = js_is_number(ARG(2)) ? js_as_number(ARG(2)) : 65537;
765
900
  if (bits < 0 || bits > RSA_MAX_BITS || e < 0 || e > 4294967295.0) return js_int32(KEY_ERR_GENERATE);
@@ -781,7 +916,9 @@ PRIMITIVE(js_crypto_key_generate) {
781
916
  }
782
917
  int curve = -1;
783
918
  if (strcmp(kind, "x25519") == 0) {
784
- curve = BR_EC_curve25519;
919
+ curve = JS_EC_X25519;
920
+ } else if (strcmp(kind, "ed25519") == 0) {
921
+ curve = JS_EC_ED25519;
785
922
  } else {
786
923
  char name[24] = "";
787
924
  if (js_is_string(ARG(1))) js_view_to_utf8(js_string_view(ctx, ARG(1)), name, sizeof name - 1);