visaljs 0.0.1 → 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 (1008) hide show
  1. package/README.md +17 -1
  2. package/cli.js +565 -75
  3. package/node/include/js_node.h +28 -5
  4. package/node/include/js_uv.h +36 -0
  5. package/node/prelude/crypto.js +7 -10
  6. package/node/prelude/dns.js +99 -0
  7. package/node/prelude/dns_promises.js +10 -0
  8. package/node/prelude/http.js +1039 -195
  9. package/node/prelude/internal/crypto/asym.js +39 -12
  10. package/node/prelude/internal/crypto/dh_groups.js +12 -0
  11. package/node/prelude/internal/crypto/diffiehellman.js +354 -0
  12. package/node/prelude/internal/crypto/hash.js +1 -1
  13. package/node/prelude/internal/crypto/key_type.js +3 -0
  14. package/node/prelude/internal/crypto/keys.js +39 -9
  15. package/node/prelude/internal/http_agent.js +249 -0
  16. package/node/prelude/internal/net.js +33 -0
  17. package/node/prelude/internal/socketaddress.js +249 -0
  18. package/node/prelude/internal/tls/common.js +306 -0
  19. package/node/prelude/internal/tls/wrap.js +1217 -0
  20. package/node/prelude/internal/tls/x509.js +394 -0
  21. package/node/prelude/net.js +1083 -50
  22. package/node/prelude/stream.js +6 -0
  23. package/node/prelude/tls.js +141 -0
  24. package/node/prelude/util.js +5 -2
  25. package/node/prelude/util_types.js +85 -0
  26. package/node/src/host_http.c +268 -270
  27. package/node/src/host_loop.c +84 -0
  28. package/node/src/host_net.c +495 -0
  29. package/node/src/host_sys.c +16 -0
  30. package/package.json +1 -1
  31. package/runtime/include/js_builtins.h +16 -0
  32. package/runtime/include/js_console.h +2 -0
  33. package/runtime/include/js_core.def +23 -0
  34. package/runtime/include/js_crypto.h +23 -0
  35. package/runtime/include/js_generator.h +2 -3
  36. package/runtime/include/js_promise.h +0 -2
  37. package/runtime/src/async_iter.c +4 -1
  38. package/runtime/src/boringssl_support.cc +34 -0
  39. package/runtime/src/builtin_table.c +8 -0
  40. package/runtime/src/components.c +10 -0
  41. package/runtime/src/console.c +6 -18
  42. package/runtime/src/core_all.c +1 -0
  43. package/runtime/src/crypto_asym.c +450 -241
  44. package/runtime/src/crypto_bn.c +91 -0
  45. package/runtime/src/crypto_cipher.c +153 -75
  46. package/runtime/src/crypto_hash.c +68 -53
  47. package/runtime/src/crypto_internal.h +55 -26
  48. package/runtime/src/crypto_pkey.c +198 -61
  49. package/runtime/src/crypto_subtle.c +42 -16
  50. package/runtime/src/crypto_tls.c +678 -0
  51. package/runtime/src/generator.c +8 -1
  52. package/runtime/src/global.c +2 -4
  53. package/runtime/src/internal.h +0 -1
  54. package/runtime/src/jobs.c +2 -1
  55. package/runtime/src/promise.c +4 -1
  56. package/runtime/src/tls_roots.gen.h +3215 -0
  57. package/runtime/src/util_types.c +52 -0
  58. package/runtime/src/weak.c +2 -1
  59. package/runtime/third_party/boringssl/LICENSE +238 -0
  60. package/runtime/third_party/boringssl/README.md +46 -0
  61. package/runtime/third_party/boringssl/VERSION +1 -0
  62. package/runtime/third_party/boringssl/crypto/aes/aes.cc +44 -0
  63. package/runtime/third_party/boringssl/crypto/armv8_feature_parsing.h +67 -0
  64. package/runtime/third_party/boringssl/crypto/asn1/a_bitstr.cc +297 -0
  65. package/runtime/third_party/boringssl/crypto/asn1/a_bool.cc +50 -0
  66. package/runtime/third_party/boringssl/crypto/asn1/a_d2i_fp.cc +47 -0
  67. package/runtime/third_party/boringssl/crypto/asn1/a_dup.cc +42 -0
  68. package/runtime/third_party/boringssl/crypto/asn1/a_gentm.cc +130 -0
  69. package/runtime/third_party/boringssl/crypto/asn1/a_i2d_fp.cc +44 -0
  70. package/runtime/third_party/boringssl/crypto/asn1/a_int.cc +467 -0
  71. package/runtime/third_party/boringssl/crypto/asn1/a_mbstr.cc +242 -0
  72. package/runtime/third_party/boringssl/crypto/asn1/a_object.cc +191 -0
  73. package/runtime/third_party/boringssl/crypto/asn1/a_octet.cc +32 -0
  74. package/runtime/third_party/boringssl/crypto/asn1/a_strex.cc +411 -0
  75. package/runtime/third_party/boringssl/crypto/asn1/a_strnid.cc +208 -0
  76. package/runtime/third_party/boringssl/crypto/asn1/a_time.cc +248 -0
  77. package/runtime/third_party/boringssl/crypto/asn1/a_type.cc +467 -0
  78. package/runtime/third_party/boringssl/crypto/asn1/a_utctm.cc +128 -0
  79. package/runtime/third_party/boringssl/crypto/asn1/asn1_lib.cc +453 -0
  80. package/runtime/third_party/boringssl/crypto/asn1/asn1_par.cc +61 -0
  81. package/runtime/third_party/boringssl/crypto/asn1/asn_pack.cc +56 -0
  82. package/runtime/third_party/boringssl/crypto/asn1/f_int.cc +63 -0
  83. package/runtime/third_party/boringssl/crypto/asn1/f_string.cc +52 -0
  84. package/runtime/third_party/boringssl/crypto/asn1/internal.h +430 -0
  85. package/runtime/third_party/boringssl/crypto/asn1/posix_time.cc +244 -0
  86. package/runtime/third_party/boringssl/crypto/asn1/tasn_dec.cc +611 -0
  87. package/runtime/third_party/boringssl/crypto/asn1/tasn_enc.cc +348 -0
  88. package/runtime/third_party/boringssl/crypto/asn1/tasn_fre.cc +163 -0
  89. package/runtime/third_party/boringssl/crypto/asn1/tasn_new.cc +274 -0
  90. package/runtime/third_party/boringssl/crypto/asn1/tasn_typ.cc +92 -0
  91. package/runtime/third_party/boringssl/crypto/asn1/tasn_utl.cc +218 -0
  92. package/runtime/third_party/boringssl/crypto/base64/base64.cc +433 -0
  93. package/runtime/third_party/boringssl/crypto/bcm_support.h +62 -0
  94. package/runtime/third_party/boringssl/crypto/bio/bio.cc +715 -0
  95. package/runtime/third_party/boringssl/crypto/bio/bio_mem.cc +260 -0
  96. package/runtime/third_party/boringssl/crypto/bio/connect.cc +463 -0
  97. package/runtime/third_party/boringssl/crypto/bio/errno.cc +52 -0
  98. package/runtime/third_party/boringssl/crypto/bio/fd.cc +193 -0
  99. package/runtime/third_party/boringssl/crypto/bio/file.cc +283 -0
  100. package/runtime/third_party/boringssl/crypto/bio/hexdump.cc +154 -0
  101. package/runtime/third_party/boringssl/crypto/bio/internal.h +128 -0
  102. package/runtime/third_party/boringssl/crypto/bio/pair.cc +426 -0
  103. package/runtime/third_party/boringssl/crypto/bio/printf.cc +59 -0
  104. package/runtime/third_party/boringssl/crypto/bio/socket.cc +210 -0
  105. package/runtime/third_party/boringssl/crypto/bio/socket_helper.cc +179 -0
  106. package/runtime/third_party/boringssl/crypto/blake2/blake2.cc +173 -0
  107. package/runtime/third_party/boringssl/crypto/bn/bn_asn1.cc +57 -0
  108. package/runtime/third_party/boringssl/crypto/bn/convert.cc +409 -0
  109. package/runtime/third_party/boringssl/crypto/bn/div.cc +102 -0
  110. package/runtime/third_party/boringssl/crypto/bn/exponentiation.cc +168 -0
  111. package/runtime/third_party/boringssl/crypto/bn/sqrt.cc +93 -0
  112. package/runtime/third_party/boringssl/crypto/buf/buf.cc +119 -0
  113. package/runtime/third_party/boringssl/crypto/bytestring/asn1_compat.cc +54 -0
  114. package/runtime/third_party/boringssl/crypto/bytestring/ber.cc +268 -0
  115. package/runtime/third_party/boringssl/crypto/bytestring/cbb.cc +787 -0
  116. package/runtime/third_party/boringssl/crypto/bytestring/cbs.cc +977 -0
  117. package/runtime/third_party/boringssl/crypto/bytestring/internal.h +134 -0
  118. package/runtime/third_party/boringssl/crypto/bytestring/unicode.cc +156 -0
  119. package/runtime/third_party/boringssl/crypto/chacha/chacha.cc +226 -0
  120. package/runtime/third_party/boringssl/crypto/chacha/internal.h +103 -0
  121. package/runtime/third_party/boringssl/crypto/cipher/derive_key.cc +106 -0
  122. package/runtime/third_party/boringssl/crypto/cipher/e_aesctrhmac.cc +294 -0
  123. package/runtime/third_party/boringssl/crypto/cipher/e_aeseax.cc +351 -0
  124. package/runtime/third_party/boringssl/crypto/cipher/e_aesgcmsiv.cc +918 -0
  125. package/runtime/third_party/boringssl/crypto/cipher/e_chacha20poly1305.cc +404 -0
  126. package/runtime/third_party/boringssl/crypto/cipher/e_des.cc +214 -0
  127. package/runtime/third_party/boringssl/crypto/cipher/e_null.cc +55 -0
  128. package/runtime/third_party/boringssl/crypto/cipher/e_rc2.cc +432 -0
  129. package/runtime/third_party/boringssl/crypto/cipher/e_rc4.cc +56 -0
  130. package/runtime/third_party/boringssl/crypto/cipher/e_tls.cc +615 -0
  131. package/runtime/third_party/boringssl/crypto/cipher/get_cipher.cc +85 -0
  132. package/runtime/third_party/boringssl/crypto/cipher/internal.h +399 -0
  133. package/runtime/third_party/boringssl/crypto/cipher/tls_cbc.cc +476 -0
  134. package/runtime/third_party/boringssl/crypto/cms/cms.cc +178 -0
  135. package/runtime/third_party/boringssl/crypto/conf/conf.cc +637 -0
  136. package/runtime/third_party/boringssl/crypto/conf/internal.h +54 -0
  137. package/runtime/third_party/boringssl/crypto/cpu_aarch64_apple.cc +76 -0
  138. package/runtime/third_party/boringssl/crypto/cpu_aarch64_fuchsia.cc +58 -0
  139. package/runtime/third_party/boringssl/crypto/cpu_aarch64_linux.cc +66 -0
  140. package/runtime/third_party/boringssl/crypto/cpu_aarch64_openbsd.cc +45 -0
  141. package/runtime/third_party/boringssl/crypto/cpu_aarch64_sysreg.cc +66 -0
  142. package/runtime/third_party/boringssl/crypto/cpu_aarch64_win.cc +52 -0
  143. package/runtime/third_party/boringssl/crypto/cpu_arm_freebsd.cc +55 -0
  144. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.cc +173 -0
  145. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.h +141 -0
  146. package/runtime/third_party/boringssl/crypto/cpu_intel.cc +287 -0
  147. package/runtime/third_party/boringssl/crypto/crypto.cc +152 -0
  148. package/runtime/third_party/boringssl/crypto/curve25519/asm/x25519-asm-arm.S +2124 -0
  149. package/runtime/third_party/boringssl/crypto/curve25519/cpace.cc +227 -0
  150. package/runtime/third_party/boringssl/crypto/curve25519/curve25519.cc +2436 -0
  151. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_64_adx.cc +18 -0
  152. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_tables.h +3264 -0
  153. package/runtime/third_party/boringssl/crypto/curve25519/internal.h +202 -0
  154. package/runtime/third_party/boringssl/crypto/curve25519/spake25519.cc +532 -0
  155. package/runtime/third_party/boringssl/crypto/des/des.cc +837 -0
  156. package/runtime/third_party/boringssl/crypto/des/internal.h +144 -0
  157. package/runtime/third_party/boringssl/crypto/dh/dh_asn1.cc +109 -0
  158. package/runtime/third_party/boringssl/crypto/dh/params.cc +411 -0
  159. package/runtime/third_party/boringssl/crypto/digest/digest_extra.cc +361 -0
  160. package/runtime/third_party/boringssl/crypto/dsa/dsa.cc +922 -0
  161. package/runtime/third_party/boringssl/crypto/dsa/dsa_asn1.cc +306 -0
  162. package/runtime/third_party/boringssl/crypto/dsa/internal.h +56 -0
  163. package/runtime/third_party/boringssl/crypto/ec/ec_asn1.cc +542 -0
  164. package/runtime/third_party/boringssl/crypto/ec/ec_derive.cc +94 -0
  165. package/runtime/third_party/boringssl/crypto/ec/hash_to_curve.cc +773 -0
  166. package/runtime/third_party/boringssl/crypto/ec/internal.h +114 -0
  167. package/runtime/third_party/boringssl/crypto/ecdh/ecdh.cc +75 -0
  168. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.cc +337 -0
  169. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_p1363.cc +54 -0
  170. package/runtime/third_party/boringssl/crypto/engine/engine.cc +95 -0
  171. package/runtime/third_party/boringssl/crypto/err/err.cc +820 -0
  172. package/runtime/third_party/boringssl/crypto/err/internal.h +45 -0
  173. package/runtime/third_party/boringssl/crypto/evp/evp.cc +454 -0
  174. package/runtime/third_party/boringssl/crypto/evp/evp_asn1.cc +439 -0
  175. package/runtime/third_party/boringssl/crypto/evp/evp_ctx.cc +541 -0
  176. package/runtime/third_party/boringssl/crypto/evp/evp_kem.cc +101 -0
  177. package/runtime/third_party/boringssl/crypto/evp/internal.h +427 -0
  178. package/runtime/third_party/boringssl/crypto/evp/p_dh.cc +326 -0
  179. package/runtime/third_party/boringssl/crypto/evp/p_dsa.cc +333 -0
  180. package/runtime/third_party/boringssl/crypto/evp/p_ec.cc +736 -0
  181. package/runtime/third_party/boringssl/crypto/evp/p_ed25519.cc +359 -0
  182. package/runtime/third_party/boringssl/crypto/evp/p_hkdf.cc +204 -0
  183. package/runtime/third_party/boringssl/crypto/evp/p_mldsa.cc +549 -0
  184. package/runtime/third_party/boringssl/crypto/evp/p_mlkem.cc +510 -0
  185. package/runtime/third_party/boringssl/crypto/evp/p_rsa.cc +1185 -0
  186. package/runtime/third_party/boringssl/crypto/evp/p_x25519.cc +371 -0
  187. package/runtime/third_party/boringssl/crypto/evp/p_xwing.cc +300 -0
  188. package/runtime/third_party/boringssl/crypto/evp/pbkdf.cc +105 -0
  189. package/runtime/third_party/boringssl/crypto/evp/print.cc +287 -0
  190. package/runtime/third_party/boringssl/crypto/evp/scrypt.cc +218 -0
  191. package/runtime/third_party/boringssl/crypto/evp/sign.cc +95 -0
  192. package/runtime/third_party/boringssl/crypto/ex_data.cc +140 -0
  193. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes.cc.inc +208 -0
  194. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes_nohw.cc.inc +1279 -0
  195. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cbc.cc.inc +132 -0
  196. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cfb.cc.inc +168 -0
  197. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ctr.cc.inc +102 -0
  198. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm.cc.inc +614 -0
  199. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm_nohw.cc.inc +304 -0
  200. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/internal.h +590 -0
  201. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/key_wrap.cc.inc +211 -0
  202. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.cc.inc +97 -0
  203. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ofb.cc.inc +55 -0
  204. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm.cc +288 -0
  205. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm_interface.h +953 -0
  206. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/add.cc.inc +276 -0
  207. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +573 -0
  208. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bn.cc.inc +377 -0
  209. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bytes.cc.inc +230 -0
  210. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/cmp.cc.inc +161 -0
  211. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/ctx.cc.inc +127 -0
  212. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div.cc.inc +738 -0
  213. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div_extra.cc.inc +90 -0
  214. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.cc.inc +743 -0
  215. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd.cc.inc +281 -0
  216. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd_extra.cc.inc +327 -0
  217. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/generic.cc.inc +579 -0
  218. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/internal.h +810 -0
  219. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/jacobi.cc.inc +101 -0
  220. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery.cc.inc +408 -0
  221. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery_inv.cc.inc +179 -0
  222. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/mul.cc.inc +347 -0
  223. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/prime.cc.inc +931 -0
  224. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/random.cc.inc +261 -0
  225. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.cc.inc +144 -0
  226. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.h +109 -0
  227. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/shift.cc.inc +317 -0
  228. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/sqrt.cc.inc +370 -0
  229. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/aead.cc.inc +619 -0
  230. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/cipher.cc.inc +837 -0
  231. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.cc.inc +1240 -0
  232. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aesccm.cc.inc +440 -0
  233. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/internal.h +461 -0
  234. package/runtime/third_party/boringssl/crypto/fipsmodule/cmac/cmac.cc.inc +293 -0
  235. package/runtime/third_party/boringssl/crypto/fipsmodule/delocate.h +95 -0
  236. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/check.cc.inc +198 -0
  237. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/dh.cc.inc +401 -0
  238. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/internal.h +63 -0
  239. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digest.cc.inc +221 -0
  240. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digests.cc.inc +184 -0
  241. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/internal.h +72 -0
  242. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/md32_common.h +166 -0
  243. package/runtime/third_party/boringssl/crypto/fipsmodule/digestsign/digestsign.cc.inc +230 -0
  244. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/builtin_curves.h +277 -0
  245. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec.cc.inc +1024 -0
  246. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_key.cc.inc +536 -0
  247. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.cc.inc +379 -0
  248. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/felem.cc.inc +250 -0
  249. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/internal.h +752 -0
  250. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/oct.cc.inc +174 -0
  251. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz-table.h +9502 -0
  252. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.cc.inc +740 -0
  253. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.h +207 -0
  254. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256.cc.inc +578 -0
  255. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256_table.h +297 -0
  256. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/scalar.cc.inc +184 -0
  257. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple.cc.inc +246 -0
  258. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.cc.inc +274 -0
  259. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/util.cc.inc +258 -0
  260. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/wnaf.cc.inc +224 -0
  261. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdh/ecdh.cc.inc +91 -0
  262. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +288 -0
  263. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/internal.h +57 -0
  264. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/internal.h +38 -0
  265. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/jitter.cc.inc +487 -0
  266. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/sha512.cc.inc +329 -0
  267. package/runtime/third_party/boringssl/crypto/fipsmodule/fips_shared_support.cc +28 -0
  268. package/runtime/third_party/boringssl/crypto/fipsmodule/hkdf/hkdf.cc.inc +114 -0
  269. package/runtime/third_party/boringssl/crypto/fipsmodule/hmac/hmac.cc.inc +218 -0
  270. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/internal.h +165 -0
  271. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/keccak.cc.inc +647 -0
  272. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/fips_known_values.inc +1345 -0
  273. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/mldsa.cc.inc +3323 -0
  274. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/fips_known_values.inc +411 -0
  275. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/mlkem.cc.inc +1856 -0
  276. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/android_entropy_client.cc.inc +82 -0
  277. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/ctrdrbg.cc.inc +401 -0
  278. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/internal.h +99 -0
  279. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/rand.cc.inc +486 -0
  280. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/internal.h +167 -0
  281. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/padding.cc.inc +371 -0
  282. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa.cc.inc +996 -0
  283. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.cc.inc +1000 -0
  284. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/fips.cc.inc +129 -0
  285. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/self_check.cc.inc +1093 -0
  286. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/internal.h +112 -0
  287. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +330 -0
  288. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/internal.h +205 -0
  289. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha1.cc.inc +404 -0
  290. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha256.cc.inc +315 -0
  291. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha512.cc.inc +473 -0
  292. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/address.h +144 -0
  293. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fips_known_values.inc +674 -0
  294. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.cc.inc +179 -0
  295. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.h +48 -0
  296. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.cc.inc +164 -0
  297. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.h +58 -0
  298. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/params.h +178 -0
  299. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +690 -0
  300. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.cc.inc +326 -0
  301. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.h +71 -0
  302. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.cc.inc +172 -0
  303. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.h +40 -0
  304. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/internal.h +33 -0
  305. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/kdf.cc.inc +180 -0
  306. package/runtime/third_party/boringssl/crypto/fuzzer_mode.cc +30 -0
  307. package/runtime/third_party/boringssl/crypto/hpke/hpke.cc +1514 -0
  308. package/runtime/third_party/boringssl/crypto/hrss/asm/poly_rq_mul.S +8489 -0
  309. package/runtime/third_party/boringssl/crypto/hrss/hrss.cc +2189 -0
  310. package/runtime/third_party/boringssl/crypto/hrss/internal.h +64 -0
  311. package/runtime/third_party/boringssl/crypto/internal.h +1767 -0
  312. package/runtime/third_party/boringssl/crypto/lhash/internal.h +222 -0
  313. package/runtime/third_party/boringssl/crypto/lhash/lhash.cc +312 -0
  314. package/runtime/third_party/boringssl/crypto/md4/md4.cc +207 -0
  315. package/runtime/third_party/boringssl/crypto/md5/internal.h +34 -0
  316. package/runtime/third_party/boringssl/crypto/md5/md5.cc +255 -0
  317. package/runtime/third_party/boringssl/crypto/mem.cc +577 -0
  318. package/runtime/third_party/boringssl/crypto/mem_internal.h +706 -0
  319. package/runtime/third_party/boringssl/crypto/mldsa/mldsa.cc +296 -0
  320. package/runtime/third_party/boringssl/crypto/mlkem/mlkem.cc +108 -0
  321. package/runtime/third_party/boringssl/crypto/obj/obj.cc +494 -0
  322. package/runtime/third_party/boringssl/crypto/obj/obj_dat.h +11722 -0
  323. package/runtime/third_party/boringssl/crypto/obj/obj_xref.cc +83 -0
  324. package/runtime/third_party/boringssl/crypto/params_internal.h +30 -0
  325. package/runtime/third_party/boringssl/crypto/pem/internal.h +135 -0
  326. package/runtime/third_party/boringssl/crypto/pem/pem_all.cc +153 -0
  327. package/runtime/third_party/boringssl/crypto/pem/pem_info.cc +250 -0
  328. package/runtime/third_party/boringssl/crypto/pem/pem_lib.cc +707 -0
  329. package/runtime/third_party/boringssl/crypto/pem/pem_oth.cc +45 -0
  330. package/runtime/third_party/boringssl/crypto/pem/pem_pk8.cc +211 -0
  331. package/runtime/third_party/boringssl/crypto/pem/pem_pkey.cc +147 -0
  332. package/runtime/third_party/boringssl/crypto/pem/pem_x509.cc +25 -0
  333. package/runtime/third_party/boringssl/crypto/pem/pem_xaux.cc +25 -0
  334. package/runtime/third_party/boringssl/crypto/pkcs7/internal.h +67 -0
  335. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7.cc +198 -0
  336. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7_x509.cc +527 -0
  337. package/runtime/third_party/boringssl/crypto/pkcs8/internal.h +98 -0
  338. package/runtime/third_party/boringssl/crypto/pkcs8/p5_pbev2.cc +286 -0
  339. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8.cc +473 -0
  340. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8_x509.cc +1328 -0
  341. package/runtime/third_party/boringssl/crypto/poly1305/internal.h +54 -0
  342. package/runtime/third_party/boringssl/crypto/poly1305/poly1305.cc +315 -0
  343. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm.cc +294 -0
  344. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm_asm.S +2017 -0
  345. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_vec.cc +853 -0
  346. package/runtime/third_party/boringssl/crypto/pool/internal.h +95 -0
  347. package/runtime/third_party/boringssl/crypto/pool/pool.cc +282 -0
  348. package/runtime/third_party/boringssl/crypto/rand/deterministic.cc +58 -0
  349. package/runtime/third_party/boringssl/crypto/rand/fork_detect.cc +222 -0
  350. package/runtime/third_party/boringssl/crypto/rand/forkunsafe.cc +44 -0
  351. package/runtime/third_party/boringssl/crypto/rand/getentropy.cc +53 -0
  352. package/runtime/third_party/boringssl/crypto/rand/internal.h +67 -0
  353. package/runtime/third_party/boringssl/crypto/rand/ios.cc +35 -0
  354. package/runtime/third_party/boringssl/crypto/rand/rand.cc +79 -0
  355. package/runtime/third_party/boringssl/crypto/rand/trusty.cc +39 -0
  356. package/runtime/third_party/boringssl/crypto/rand/urandom.cc +149 -0
  357. package/runtime/third_party/boringssl/crypto/rand/windows.cc +91 -0
  358. package/runtime/third_party/boringssl/crypto/rc4/rc4.cc +56 -0
  359. package/runtime/third_party/boringssl/crypto/refcount.cc +49 -0
  360. package/runtime/third_party/boringssl/crypto/rsa/internal.h +51 -0
  361. package/runtime/third_party/boringssl/crypto/rsa/rsa_asn1.cc +404 -0
  362. package/runtime/third_party/boringssl/crypto/rsa/rsa_crypt.cc +530 -0
  363. package/runtime/third_party/boringssl/crypto/rsa/rsa_extra.cc +30 -0
  364. package/runtime/third_party/boringssl/crypto/rsa/rsa_print.cc +25 -0
  365. package/runtime/third_party/boringssl/crypto/sha/sha1.cc +55 -0
  366. package/runtime/third_party/boringssl/crypto/sha/sha256.cc +89 -0
  367. package/runtime/third_party/boringssl/crypto/sha/sha512.cc +106 -0
  368. package/runtime/third_party/boringssl/crypto/siphash/siphash.cc +81 -0
  369. package/runtime/third_party/boringssl/crypto/slhdsa/slhdsa.cc +167 -0
  370. package/runtime/third_party/boringssl/crypto/spake2plus/internal.h +204 -0
  371. package/runtime/third_party/boringssl/crypto/spake2plus/spake2plus.cc +501 -0
  372. package/runtime/third_party/boringssl/crypto/stack/stack.cc +462 -0
  373. package/runtime/third_party/boringssl/crypto/thread.cc +68 -0
  374. package/runtime/third_party/boringssl/crypto/thread_none.cc +48 -0
  375. package/runtime/third_party/boringssl/crypto/thread_pthread.cc +138 -0
  376. package/runtime/third_party/boringssl/crypto/thread_win.cc +227 -0
  377. package/runtime/third_party/boringssl/crypto/trust_token/internal.h +405 -0
  378. package/runtime/third_party/boringssl/crypto/trust_token/pmbtoken.cc +1672 -0
  379. package/runtime/third_party/boringssl/crypto/trust_token/trust_token.cc +701 -0
  380. package/runtime/third_party/boringssl/crypto/trust_token/voprf.cc +1266 -0
  381. package/runtime/third_party/boringssl/crypto/x509/a_digest.cc +52 -0
  382. package/runtime/third_party/boringssl/crypto/x509/a_sign.cc +100 -0
  383. package/runtime/third_party/boringssl/crypto/x509/a_verify.cc +77 -0
  384. package/runtime/third_party/boringssl/crypto/x509/algorithm.cc +167 -0
  385. package/runtime/third_party/boringssl/crypto/x509/asn1_gen.cc +540 -0
  386. package/runtime/third_party/boringssl/crypto/x509/by_dir.cc +301 -0
  387. package/runtime/third_party/boringssl/crypto/x509/by_file.cc +226 -0
  388. package/runtime/third_party/boringssl/crypto/x509/i2d_pr.cc +37 -0
  389. package/runtime/third_party/boringssl/crypto/x509/internal.h +697 -0
  390. package/runtime/third_party/boringssl/crypto/x509/name_print.cc +187 -0
  391. package/runtime/third_party/boringssl/crypto/x509/policy.cc +686 -0
  392. package/runtime/third_party/boringssl/crypto/x509/rsa_pss.cc +187 -0
  393. package/runtime/third_party/boringssl/crypto/x509/t_crl.cc +106 -0
  394. package/runtime/third_party/boringssl/crypto/x509/t_req.cc +206 -0
  395. package/runtime/third_party/boringssl/crypto/x509/t_x509.cc +292 -0
  396. package/runtime/third_party/boringssl/crypto/x509/t_x509a.cc +81 -0
  397. package/runtime/third_party/boringssl/crypto/x509/v3_akey.cc +174 -0
  398. package/runtime/third_party/boringssl/crypto/x509/v3_akeya.cc +31 -0
  399. package/runtime/third_party/boringssl/crypto/x509/v3_alt.cc +636 -0
  400. package/runtime/third_party/boringssl/crypto/x509/v3_bcons.cc +96 -0
  401. package/runtime/third_party/boringssl/crypto/x509/v3_bitst.cc +100 -0
  402. package/runtime/third_party/boringssl/crypto/x509/v3_conf.cc +369 -0
  403. package/runtime/third_party/boringssl/crypto/x509/v3_cpols.cc +417 -0
  404. package/runtime/third_party/boringssl/crypto/x509/v3_crld.cc +471 -0
  405. package/runtime/third_party/boringssl/crypto/x509/v3_enum.cc +74 -0
  406. package/runtime/third_party/boringssl/crypto/x509/v3_extku.cc +97 -0
  407. package/runtime/third_party/boringssl/crypto/x509/v3_genn.cc +238 -0
  408. package/runtime/third_party/boringssl/crypto/x509/v3_ia5.cc +83 -0
  409. package/runtime/third_party/boringssl/crypto/x509/v3_info.cc +162 -0
  410. package/runtime/third_party/boringssl/crypto/x509/v3_int.cc +83 -0
  411. package/runtime/third_party/boringssl/crypto/x509/v3_lib.cc +349 -0
  412. package/runtime/third_party/boringssl/crypto/x509/v3_ncons.cc +798 -0
  413. package/runtime/third_party/boringssl/crypto/x509/v3_ocsp.cc +92 -0
  414. package/runtime/third_party/boringssl/crypto/x509/v3_pcons.cc +102 -0
  415. package/runtime/third_party/boringssl/crypto/x509/v3_pmaps.cc +110 -0
  416. package/runtime/third_party/boringssl/crypto/x509/v3_prn.cc +183 -0
  417. package/runtime/third_party/boringssl/crypto/x509/v3_purp.cc +580 -0
  418. package/runtime/third_party/boringssl/crypto/x509/v3_skey.cc +128 -0
  419. package/runtime/third_party/boringssl/crypto/x509/v3_utl.cc +1311 -0
  420. package/runtime/third_party/boringssl/crypto/x509/x509.cc +47 -0
  421. package/runtime/third_party/boringssl/crypto/x509/x509_att.cc +188 -0
  422. package/runtime/third_party/boringssl/crypto/x509/x509_cmp.cc +243 -0
  423. package/runtime/third_party/boringssl/crypto/x509/x509_d2.cc +66 -0
  424. package/runtime/third_party/boringssl/crypto/x509/x509_def.cc +42 -0
  425. package/runtime/third_party/boringssl/crypto/x509/x509_ext.cc +161 -0
  426. package/runtime/third_party/boringssl/crypto/x509/x509_lu.cc +570 -0
  427. package/runtime/third_party/boringssl/crypto/x509/x509_mtc.cc +598 -0
  428. package/runtime/third_party/boringssl/crypto/x509/x509_obj.cc +169 -0
  429. package/runtime/third_party/boringssl/crypto/x509/x509_req.cc +248 -0
  430. package/runtime/third_party/boringssl/crypto/x509/x509_set.cc +166 -0
  431. package/runtime/third_party/boringssl/crypto/x509/x509_trs.cc +123 -0
  432. package/runtime/third_party/boringssl/crypto/x509/x509_txt.cc +147 -0
  433. package/runtime/third_party/boringssl/crypto/x509/x509_v3.cc +249 -0
  434. package/runtime/third_party/boringssl/crypto/x509/x509_vfy.cc +1531 -0
  435. package/runtime/third_party/boringssl/crypto/x509/x509_vpm.cc +449 -0
  436. package/runtime/third_party/boringssl/crypto/x509/x509cset.cc +222 -0
  437. package/runtime/third_party/boringssl/crypto/x509/x509name.cc +377 -0
  438. package/runtime/third_party/boringssl/crypto/x509/x509rset.cc +55 -0
  439. package/runtime/third_party/boringssl/crypto/x509/x509spki.cc +91 -0
  440. package/runtime/third_party/boringssl/crypto/x509/x_algor.cc +223 -0
  441. package/runtime/third_party/boringssl/crypto/x509/x_all.cc +352 -0
  442. package/runtime/third_party/boringssl/crypto/x509/x_attrib.cc +61 -0
  443. package/runtime/third_party/boringssl/crypto/x509/x_crl.cc +325 -0
  444. package/runtime/third_party/boringssl/crypto/x509/x_exten.cc +42 -0
  445. package/runtime/third_party/boringssl/crypto/x509/x_name.cc +407 -0
  446. package/runtime/third_party/boringssl/crypto/x509/x_pubkey.cc +199 -0
  447. package/runtime/third_party/boringssl/crypto/x509/x_req.cc +80 -0
  448. package/runtime/third_party/boringssl/crypto/x509/x_sig.cc +51 -0
  449. package/runtime/third_party/boringssl/crypto/x509/x_spki.cc +44 -0
  450. package/runtime/third_party/boringssl/crypto/x509/x_x509.cc +495 -0
  451. package/runtime/third_party/boringssl/crypto/x509/x_x509a.cc +169 -0
  452. package/runtime/third_party/boringssl/crypto/xwing/xwing.cc +257 -0
  453. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-apple.S +1326 -0
  454. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-linux.S +1327 -0
  455. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-apple.S +1252 -0
  456. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-linux.S +1253 -0
  457. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-apple.S +873 -0
  458. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-linux.S +885 -0
  459. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-apple.S +2490 -0
  460. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-linux.S +2530 -0
  461. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-apple.S +2413 -0
  462. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-linux.S +2397 -0
  463. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv7-linux.S +784 -0
  464. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-apple.S +792 -0
  465. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-linux.S +786 -0
  466. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-win.S +798 -0
  467. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-apple.S +2912 -0
  468. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-linux.S +2907 -0
  469. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-win.S +2915 -0
  470. package/runtime/third_party/boringssl/gen/bcm/armv4-mont-linux.S +932 -0
  471. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-apple.S +1440 -0
  472. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-linux.S +1440 -0
  473. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-win.S +1446 -0
  474. package/runtime/third_party/boringssl/gen/bcm/bn-586-apple.S +530 -0
  475. package/runtime/third_party/boringssl/gen/bcm/bn-586-linux.S +540 -0
  476. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-apple.S +88 -0
  477. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-linux.S +87 -0
  478. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-win.S +87 -0
  479. package/runtime/third_party/boringssl/gen/bcm/bsaes-armv7-linux.S +1520 -0
  480. package/runtime/third_party/boringssl/gen/bcm/co-586-apple.S +1256 -0
  481. package/runtime/third_party/boringssl/gen/bcm/co-586-linux.S +1264 -0
  482. package/runtime/third_party/boringssl/gen/bcm/ghash-armv4-linux.S +242 -0
  483. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-apple.S +337 -0
  484. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-linux.S +335 -0
  485. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-win.S +341 -0
  486. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-apple.S +288 -0
  487. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-linux.S +292 -0
  488. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-apple.S +426 -0
  489. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-linux.S +425 -0
  490. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-apple.S +322 -0
  491. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-linux.S +328 -0
  492. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-apple.S +1134 -0
  493. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-linux.S +1129 -0
  494. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv7-linux.S +244 -0
  495. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-apple.S +567 -0
  496. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-linux.S +563 -0
  497. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-win.S +571 -0
  498. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-apple.S +1744 -0
  499. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-linux.S +1725 -0
  500. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-win.S +1765 -0
  501. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-apple.S +4544 -0
  502. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-linux.S +4600 -0
  503. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-apple.S +310 -0
  504. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-linux.S +310 -0
  505. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-win.S +310 -0
  506. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-apple.S +321 -0
  507. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-linux.S +335 -0
  508. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-apple.S +58 -0
  509. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-linux.S +57 -0
  510. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-apple.S +1756 -0
  511. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-linux.S +1751 -0
  512. package/runtime/third_party/boringssl/gen/bcm/sha1-586-apple.S +3782 -0
  513. package/runtime/third_party/boringssl/gen/bcm/sha1-586-linux.S +3788 -0
  514. package/runtime/third_party/boringssl/gen/bcm/sha1-armv4-large-linux.S +1479 -0
  515. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-apple.S +1219 -0
  516. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-linux.S +1218 -0
  517. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-win.S +1222 -0
  518. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-apple.S +5454 -0
  519. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-linux.S +5450 -0
  520. package/runtime/third_party/boringssl/gen/bcm/sha256-586-apple.S +5593 -0
  521. package/runtime/third_party/boringssl/gen/bcm/sha256-586-linux.S +5599 -0
  522. package/runtime/third_party/boringssl/gen/bcm/sha256-armv4-linux.S +2840 -0
  523. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-apple.S +1195 -0
  524. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-linux.S +1194 -0
  525. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-win.S +1198 -0
  526. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-apple.S +4173 -0
  527. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-linux.S +4170 -0
  528. package/runtime/third_party/boringssl/gen/bcm/sha512-586-apple.S +2406 -0
  529. package/runtime/third_party/boringssl/gen/bcm/sha512-586-linux.S +2410 -0
  530. package/runtime/third_party/boringssl/gen/bcm/sha512-armv4-linux.S +1857 -0
  531. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-apple.S +1598 -0
  532. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-linux.S +1597 -0
  533. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-win.S +1601 -0
  534. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-apple.S +2979 -0
  535. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-linux.S +2978 -0
  536. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv7-linux.S +1225 -0
  537. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-apple.S +1238 -0
  538. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-linux.S +1220 -0
  539. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-win.S +1256 -0
  540. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-apple.S +680 -0
  541. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-linux.S +706 -0
  542. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-apple.S +1146 -0
  543. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-linux.S +1133 -0
  544. package/runtime/third_party/boringssl/gen/bcm/x86-mont-apple.S +216 -0
  545. package/runtime/third_party/boringssl/gen/bcm/x86-mont-linux.S +218 -0
  546. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-apple.S +1238 -0
  547. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-linux.S +1237 -0
  548. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-apple.S +3644 -0
  549. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-linux.S +3628 -0
  550. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_64_win_asm.inc +325 -0
  551. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_win_asm.inc +325 -0
  552. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-apple.S +3113 -0
  553. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-linux.S +3091 -0
  554. package/runtime/third_party/boringssl/gen/crypto/chacha-armv4-linux.S +1450 -0
  555. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-apple.S +1969 -0
  556. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-linux.S +1967 -0
  557. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-win.S +1973 -0
  558. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-apple.S +957 -0
  559. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-linux.S +961 -0
  560. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-apple.S +1608 -0
  561. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-linux.S +1611 -0
  562. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-apple.S +3010 -0
  563. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-linux.S +3008 -0
  564. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-win.S +3014 -0
  565. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-apple.S +8903 -0
  566. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-linux.S +8940 -0
  567. package/runtime/third_party/boringssl/gen/crypto/err_data.cc +1578 -0
  568. package/runtime/third_party/boringssl/gen/crypto/md5-586-apple.S +684 -0
  569. package/runtime/third_party/boringssl/gen/crypto/md5-586-linux.S +686 -0
  570. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-apple.S +690 -0
  571. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-linux.S +695 -0
  572. package/runtime/third_party/boringssl/include/openssl/aead.h +650 -0
  573. package/runtime/third_party/boringssl/include/openssl/aes.h +173 -0
  574. package/runtime/third_party/boringssl/include/openssl/arm_arch.h +24 -0
  575. package/runtime/third_party/boringssl/include/openssl/asm_base.h +219 -0
  576. package/runtime/third_party/boringssl/include/openssl/asn1.h +2002 -0
  577. package/runtime/third_party/boringssl/include/openssl/asn1_mac.h +18 -0
  578. package/runtime/third_party/boringssl/include/openssl/asn1t.h +584 -0
  579. package/runtime/third_party/boringssl/include/openssl/base.h +548 -0
  580. package/runtime/third_party/boringssl/include/openssl/base64.h +156 -0
  581. package/runtime/third_party/boringssl/include/openssl/bio.h +1061 -0
  582. package/runtime/third_party/boringssl/include/openssl/blake2.h +63 -0
  583. package/runtime/third_party/boringssl/include/openssl/blowfish.h +58 -0
  584. package/runtime/third_party/boringssl/include/openssl/bn.h +986 -0
  585. package/runtime/third_party/boringssl/include/openssl/buf.h +95 -0
  586. package/runtime/third_party/boringssl/include/openssl/buffer.h +18 -0
  587. package/runtime/third_party/boringssl/include/openssl/bytestring.h +798 -0
  588. package/runtime/third_party/boringssl/include/openssl/cast.h +91 -0
  589. package/runtime/third_party/boringssl/include/openssl/chacha.h +47 -0
  590. package/runtime/third_party/boringssl/include/openssl/cipher.h +819 -0
  591. package/runtime/third_party/boringssl/include/openssl/cmac.h +91 -0
  592. package/runtime/third_party/boringssl/include/openssl/cms.h +147 -0
  593. package/runtime/third_party/boringssl/include/openssl/conf.h +136 -0
  594. package/runtime/third_party/boringssl/include/openssl/configuration.h +18 -0
  595. package/runtime/third_party/boringssl/include/openssl/cpu.h +18 -0
  596. package/runtime/third_party/boringssl/include/openssl/crypto.h +235 -0
  597. package/runtime/third_party/boringssl/include/openssl/ctrdrbg.h +116 -0
  598. package/runtime/third_party/boringssl/include/openssl/curve25519.h +309 -0
  599. package/runtime/third_party/boringssl/include/openssl/des.h +134 -0
  600. package/runtime/third_party/boringssl/include/openssl/dh.h +336 -0
  601. package/runtime/third_party/boringssl/include/openssl/digest.h +399 -0
  602. package/runtime/third_party/boringssl/include/openssl/dsa.h +392 -0
  603. package/runtime/third_party/boringssl/include/openssl/dtls1.h +16 -0
  604. package/runtime/third_party/boringssl/include/openssl/e_os2.h +18 -0
  605. package/runtime/third_party/boringssl/include/openssl/ec.h +530 -0
  606. package/runtime/third_party/boringssl/include/openssl/ec_key.h +358 -0
  607. package/runtime/third_party/boringssl/include/openssl/ecdh.h +67 -0
  608. package/runtime/third_party/boringssl/include/openssl/ecdsa.h +242 -0
  609. package/runtime/third_party/boringssl/include/openssl/engine.h +109 -0
  610. package/runtime/third_party/boringssl/include/openssl/err.h +416 -0
  611. package/runtime/third_party/boringssl/include/openssl/evp.h +1645 -0
  612. package/runtime/third_party/boringssl/include/openssl/evp_errors.h +66 -0
  613. package/runtime/third_party/boringssl/include/openssl/ex_data.h +117 -0
  614. package/runtime/third_party/boringssl/include/openssl/hkdf.h +68 -0
  615. package/runtime/third_party/boringssl/include/openssl/hmac.h +151 -0
  616. package/runtime/third_party/boringssl/include/openssl/hpke.h +456 -0
  617. package/runtime/third_party/boringssl/include/openssl/hrss.h +108 -0
  618. package/runtime/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  619. package/runtime/third_party/boringssl/include/openssl/kdf.h +92 -0
  620. package/runtime/third_party/boringssl/include/openssl/lhash.h +18 -0
  621. package/runtime/third_party/boringssl/include/openssl/md4.h +73 -0
  622. package/runtime/third_party/boringssl/include/openssl/md5.h +67 -0
  623. package/runtime/third_party/boringssl/include/openssl/mem.h +215 -0
  624. package/runtime/third_party/boringssl/include/openssl/mldsa.h +486 -0
  625. package/runtime/third_party/boringssl/include/openssl/mlkem.h +222 -0
  626. package/runtime/third_party/boringssl/include/openssl/nid.h +5561 -0
  627. package/runtime/third_party/boringssl/include/openssl/obj.h +225 -0
  628. package/runtime/third_party/boringssl/include/openssl/obj_mac.h +18 -0
  629. package/runtime/third_party/boringssl/include/openssl/objects.h +18 -0
  630. package/runtime/third_party/boringssl/include/openssl/opensslconf.h +108 -0
  631. package/runtime/third_party/boringssl/include/openssl/opensslv.h +18 -0
  632. package/runtime/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
  633. package/runtime/third_party/boringssl/include/openssl/params.h +42 -0
  634. package/runtime/third_party/boringssl/include/openssl/pem.h +769 -0
  635. package/runtime/third_party/boringssl/include/openssl/pkcs12.h +18 -0
  636. package/runtime/third_party/boringssl/include/openssl/pkcs7.h +239 -0
  637. package/runtime/third_party/boringssl/include/openssl/pkcs8.h +267 -0
  638. package/runtime/third_party/boringssl/include/openssl/poly1305.h +52 -0
  639. package/runtime/third_party/boringssl/include/openssl/pool.h +137 -0
  640. package/runtime/third_party/boringssl/include/openssl/posix_time.h +51 -0
  641. package/runtime/third_party/boringssl/include/openssl/prefix_symbols.h +8000 -0
  642. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_S.h +633 -0
  643. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_c.h +329 -0
  644. package/runtime/third_party/boringssl/include/openssl/rand.h +138 -0
  645. package/runtime/third_party/boringssl/include/openssl/rc4.h +54 -0
  646. package/runtime/third_party/boringssl/include/openssl/ripemd.h +71 -0
  647. package/runtime/third_party/boringssl/include/openssl/rsa.h +893 -0
  648. package/runtime/third_party/boringssl/include/openssl/safestack.h +16 -0
  649. package/runtime/third_party/boringssl/include/openssl/service_indicator.h +19 -0
  650. package/runtime/third_party/boringssl/include/openssl/sha.h +108 -0
  651. package/runtime/third_party/boringssl/include/openssl/sha2.h +201 -0
  652. package/runtime/third_party/boringssl/include/openssl/siphash.h +37 -0
  653. package/runtime/third_party/boringssl/include/openssl/slhdsa.h +250 -0
  654. package/runtime/third_party/boringssl/include/openssl/span.h +376 -0
  655. package/runtime/third_party/boringssl/include/openssl/srtp.h +18 -0
  656. package/runtime/third_party/boringssl/include/openssl/ssl.h +7211 -0
  657. package/runtime/third_party/boringssl/include/openssl/ssl3.h +171 -0
  658. package/runtime/third_party/boringssl/include/openssl/stack.h +688 -0
  659. package/runtime/third_party/boringssl/include/openssl/target.h +246 -0
  660. package/runtime/third_party/boringssl/include/openssl/thread.h +114 -0
  661. package/runtime/third_party/boringssl/include/openssl/time.h +22 -0
  662. package/runtime/third_party/boringssl/include/openssl/tls1.h +263 -0
  663. package/runtime/third_party/boringssl/include/openssl/tls_prf.h +47 -0
  664. package/runtime/third_party/boringssl/include/openssl/trust_token.h +349 -0
  665. package/runtime/third_party/boringssl/include/openssl/type_check.h +37 -0
  666. package/runtime/third_party/boringssl/include/openssl/types.h +18 -0
  667. package/runtime/third_party/boringssl/include/openssl/x509.h +5404 -0
  668. package/runtime/third_party/boringssl/include/openssl/x509_vfy.h +18 -0
  669. package/runtime/third_party/boringssl/include/openssl/x509v3.h +63 -0
  670. package/runtime/third_party/boringssl/include/openssl/x509v3_errors.h +84 -0
  671. package/runtime/third_party/boringssl/include/openssl/xwing.h +115 -0
  672. package/runtime/third_party/boringssl/sources.json +696 -0
  673. package/runtime/third_party/boringssl/ssl/bio_ssl.cc +196 -0
  674. package/runtime/third_party/boringssl/ssl/d1_both.cc +1137 -0
  675. package/runtime/third_party/boringssl/ssl/d1_lib.cc +245 -0
  676. package/runtime/third_party/boringssl/ssl/d1_pkt.cc +322 -0
  677. package/runtime/third_party/boringssl/ssl/d1_srtp.cc +128 -0
  678. package/runtime/third_party/boringssl/ssl/dtls_method.cc +216 -0
  679. package/runtime/third_party/boringssl/ssl/dtls_record.cc +586 -0
  680. package/runtime/third_party/boringssl/ssl/encrypted_client_hello.cc +1110 -0
  681. package/runtime/third_party/boringssl/ssl/extensions.cc +5368 -0
  682. package/runtime/third_party/boringssl/ssl/handoff.cc +625 -0
  683. package/runtime/third_party/boringssl/ssl/handshake.cc +694 -0
  684. package/runtime/third_party/boringssl/ssl/handshake_client.cc +1958 -0
  685. package/runtime/third_party/boringssl/ssl/handshake_server.cc +1875 -0
  686. package/runtime/third_party/boringssl/ssl/internal.h +4506 -0
  687. package/runtime/third_party/boringssl/ssl/s3_both.cc +555 -0
  688. package/runtime/third_party/boringssl/ssl/s3_lib.cc +88 -0
  689. package/runtime/third_party/boringssl/ssl/s3_pkt.cc +396 -0
  690. package/runtime/third_party/boringssl/ssl/ssl_aead_ctx.cc +416 -0
  691. package/runtime/third_party/boringssl/ssl/ssl_asn1.cc +851 -0
  692. package/runtime/third_party/boringssl/ssl/ssl_buffer.cc +304 -0
  693. package/runtime/third_party/boringssl/ssl/ssl_cert.cc +723 -0
  694. package/runtime/third_party/boringssl/ssl/ssl_cipher.cc +1762 -0
  695. package/runtime/third_party/boringssl/ssl/ssl_credential.cc +913 -0
  696. package/runtime/third_party/boringssl/ssl/ssl_file.cc +375 -0
  697. package/runtime/third_party/boringssl/ssl/ssl_key_share.cc +445 -0
  698. package/runtime/third_party/boringssl/ssl/ssl_lib.cc +4132 -0
  699. package/runtime/third_party/boringssl/ssl/ssl_privkey.cc +973 -0
  700. package/runtime/third_party/boringssl/ssl/ssl_session.cc +1273 -0
  701. package/runtime/third_party/boringssl/ssl/ssl_stat.cc +162 -0
  702. package/runtime/third_party/boringssl/ssl/ssl_transcript.cc +224 -0
  703. package/runtime/third_party/boringssl/ssl/ssl_versions.cc +436 -0
  704. package/runtime/third_party/boringssl/ssl/ssl_x509.cc +1229 -0
  705. package/runtime/third_party/boringssl/ssl/t1_enc.cc +266 -0
  706. package/runtime/third_party/boringssl/ssl/tls13_both.cc +764 -0
  707. package/runtime/third_party/boringssl/ssl/tls13_client.cc +1325 -0
  708. package/runtime/third_party/boringssl/ssl/tls13_enc.cc +746 -0
  709. package/runtime/third_party/boringssl/ssl/tls13_server.cc +1623 -0
  710. package/runtime/third_party/boringssl/ssl/tls_method.cc +266 -0
  711. package/runtime/third_party/boringssl/ssl/tls_record.cc +524 -0
  712. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_mul.S +178 -0
  713. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_square.S +146 -0
  714. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_mul.S +177 -0
  715. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_sqr.S +166 -0
  716. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_bareminimum.c.inc +47 -0
  717. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_platform.c.inc +137 -0
  718. package/runtime/third_party/boringssl/third_party/fiat/curve25519_32.h +1571 -0
  719. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64.h +978 -0
  720. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_adx.h +700 -0
  721. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_msvc.h +1281 -0
  722. package/runtime/third_party/boringssl/third_party/fiat/p256_32.h +4760 -0
  723. package/runtime/third_party/boringssl/third_party/fiat/p256_64.h +1984 -0
  724. package/runtime/third_party/boringssl/third_party/fiat/p256_64_msvc.h +1939 -0
  725. package/runtime/third_party/boringssl/third_party/fiat/p256_field.c.inc +26 -0
  726. package/runtime/third_party/boringssl/third_party/fiat/p256_field_32.br.c.inc +71 -0
  727. package/runtime/third_party/boringssl/third_party/fiat/p256_field_64.br.c.inc +84 -0
  728. package/runtime/third_party/boringssl/third_party/fiat/p256_point.br.c.inc +112 -0
  729. package/runtime/third_party/v8-ieee754/README.md +2 -1
  730. package/runtime/third_party/v8-ieee754/convert.py +4 -0
  731. package/runtime/third_party/v8-ieee754/ieee754.c +1 -1
  732. package/runtime/third_party/bearssl/LICENSE.txt +0 -21
  733. package/runtime/third_party/bearssl/README.txt +0 -136
  734. package/runtime/third_party/bearssl/VERSION +0 -1
  735. package/runtime/third_party/bearssl/inc/bearssl.h +0 -183
  736. package/runtime/third_party/bearssl/inc/bearssl_aead.h +0 -1059
  737. package/runtime/third_party/bearssl/inc/bearssl_block.h +0 -2618
  738. package/runtime/third_party/bearssl/inc/bearssl_ec.h +0 -967
  739. package/runtime/third_party/bearssl/inc/bearssl_hash.h +0 -1346
  740. package/runtime/third_party/bearssl/inc/bearssl_hmac.h +0 -241
  741. package/runtime/third_party/bearssl/inc/bearssl_kdf.h +0 -284
  742. package/runtime/third_party/bearssl/inc/bearssl_pem.h +0 -294
  743. package/runtime/third_party/bearssl/inc/bearssl_prf.h +0 -150
  744. package/runtime/third_party/bearssl/inc/bearssl_rand.h +0 -397
  745. package/runtime/third_party/bearssl/inc/bearssl_rsa.h +0 -1655
  746. package/runtime/third_party/bearssl/inc/bearssl_ssl.h +0 -4296
  747. package/runtime/third_party/bearssl/inc/bearssl_x509.h +0 -1474
  748. package/runtime/third_party/bearssl/src/aead/ccm.c +0 -346
  749. package/runtime/third_party/bearssl/src/aead/eax.c +0 -525
  750. package/runtime/third_party/bearssl/src/aead/gcm.c +0 -318
  751. package/runtime/third_party/bearssl/src/codec/ccopy.c +0 -44
  752. package/runtime/third_party/bearssl/src/codec/dec16be.c +0 -38
  753. package/runtime/third_party/bearssl/src/codec/dec16le.c +0 -38
  754. package/runtime/third_party/bearssl/src/codec/dec32be.c +0 -38
  755. package/runtime/third_party/bearssl/src/codec/dec32le.c +0 -38
  756. package/runtime/third_party/bearssl/src/codec/dec64be.c +0 -38
  757. package/runtime/third_party/bearssl/src/codec/dec64le.c +0 -38
  758. package/runtime/third_party/bearssl/src/codec/enc16be.c +0 -38
  759. package/runtime/third_party/bearssl/src/codec/enc16le.c +0 -38
  760. package/runtime/third_party/bearssl/src/codec/enc32be.c +0 -38
  761. package/runtime/third_party/bearssl/src/codec/enc32le.c +0 -38
  762. package/runtime/third_party/bearssl/src/codec/enc64be.c +0 -38
  763. package/runtime/third_party/bearssl/src/codec/enc64le.c +0 -38
  764. package/runtime/third_party/bearssl/src/codec/pemdec.c +0 -526
  765. package/runtime/third_party/bearssl/src/codec/pemdec.t0 +0 -314
  766. package/runtime/third_party/bearssl/src/codec/pemenc.c +0 -173
  767. package/runtime/third_party/bearssl/src/config.h +0 -247
  768. package/runtime/third_party/bearssl/src/ec/ec_all_m15.c +0 -121
  769. package/runtime/third_party/bearssl/src/ec/ec_all_m31.c +0 -171
  770. package/runtime/third_party/bearssl/src/ec/ec_c25519_i15.c +0 -398
  771. package/runtime/third_party/bearssl/src/ec/ec_c25519_i31.c +0 -390
  772. package/runtime/third_party/bearssl/src/ec/ec_c25519_m15.c +0 -1478
  773. package/runtime/third_party/bearssl/src/ec/ec_c25519_m31.c +0 -800
  774. package/runtime/third_party/bearssl/src/ec/ec_c25519_m62.c +0 -605
  775. package/runtime/third_party/bearssl/src/ec/ec_c25519_m64.c +0 -831
  776. package/runtime/third_party/bearssl/src/ec/ec_curve25519.c +0 -46
  777. package/runtime/third_party/bearssl/src/ec/ec_default.c +0 -36
  778. package/runtime/third_party/bearssl/src/ec/ec_keygen.c +0 -86
  779. package/runtime/third_party/bearssl/src/ec/ec_p256_m15.c +0 -2124
  780. package/runtime/third_party/bearssl/src/ec/ec_p256_m31.c +0 -1469
  781. package/runtime/third_party/bearssl/src/ec/ec_p256_m62.c +0 -1765
  782. package/runtime/third_party/bearssl/src/ec/ec_p256_m64.c +0 -1781
  783. package/runtime/third_party/bearssl/src/ec/ec_prime_i15.c +0 -824
  784. package/runtime/third_party/bearssl/src/ec/ec_prime_i31.c +0 -826
  785. package/runtime/third_party/bearssl/src/ec/ec_pubkey.c +0 -85
  786. package/runtime/third_party/bearssl/src/ec/ec_secp256r1.c +0 -51
  787. package/runtime/third_party/bearssl/src/ec/ec_secp384r1.c +0 -57
  788. package/runtime/third_party/bearssl/src/ec/ec_secp521r1.c +0 -64
  789. package/runtime/third_party/bearssl/src/ec/ecdsa_atr.c +0 -134
  790. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_asn1.c +0 -36
  791. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_raw.c +0 -36
  792. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_asn1.c +0 -36
  793. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_raw.c +0 -36
  794. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_bits.c +0 -47
  795. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_asn1.c +0 -45
  796. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_raw.c +0 -174
  797. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_asn1.c +0 -48
  798. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_raw.c +0 -166
  799. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_bits.c +0 -47
  800. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_asn1.c +0 -45
  801. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_raw.c +0 -173
  802. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_asn1.c +0 -48
  803. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_raw.c +0 -165
  804. package/runtime/third_party/bearssl/src/ec/ecdsa_rta.c +0 -121
  805. package/runtime/third_party/bearssl/src/hash/dig_oid.c +0 -84
  806. package/runtime/third_party/bearssl/src/hash/dig_size.c +0 -50
  807. package/runtime/third_party/bearssl/src/hash/ghash_ctmul.c +0 -345
  808. package/runtime/third_party/bearssl/src/hash/ghash_ctmul32.c +0 -251
  809. package/runtime/third_party/bearssl/src/hash/ghash_ctmul64.c +0 -154
  810. package/runtime/third_party/bearssl/src/hash/ghash_pclmul.c +0 -389
  811. package/runtime/third_party/bearssl/src/hash/ghash_pwr8.c +0 -411
  812. package/runtime/third_party/bearssl/src/hash/md5.c +0 -208
  813. package/runtime/third_party/bearssl/src/hash/md5sha1.c +0 -141
  814. package/runtime/third_party/bearssl/src/hash/mgf1.c +0 -56
  815. package/runtime/third_party/bearssl/src/hash/multihash.c +0 -166
  816. package/runtime/third_party/bearssl/src/hash/sha1.c +0 -191
  817. package/runtime/third_party/bearssl/src/hash/sha2big.c +0 -285
  818. package/runtime/third_party/bearssl/src/hash/sha2small.c +0 -341
  819. package/runtime/third_party/bearssl/src/inner.h +0 -2577
  820. package/runtime/third_party/bearssl/src/int/i15_add.c +0 -46
  821. package/runtime/third_party/bearssl/src/int/i15_bitlen.c +0 -44
  822. package/runtime/third_party/bearssl/src/int/i15_decmod.c +0 -124
  823. package/runtime/third_party/bearssl/src/int/i15_decode.c +0 -56
  824. package/runtime/third_party/bearssl/src/int/i15_decred.c +0 -100
  825. package/runtime/third_party/bearssl/src/int/i15_encode.c +0 -56
  826. package/runtime/third_party/bearssl/src/int/i15_fmont.c +0 -59
  827. package/runtime/third_party/bearssl/src/int/i15_iszero.c +0 -39
  828. package/runtime/third_party/bearssl/src/int/i15_moddiv.c +0 -465
  829. package/runtime/third_party/bearssl/src/int/i15_modpow.c +0 -50
  830. package/runtime/third_party/bearssl/src/int/i15_modpow2.c +0 -160
  831. package/runtime/third_party/bearssl/src/int/i15_montmul.c +0 -184
  832. package/runtime/third_party/bearssl/src/int/i15_mulacc.c +0 -61
  833. package/runtime/third_party/bearssl/src/int/i15_muladd.c +0 -173
  834. package/runtime/third_party/bearssl/src/int/i15_ninv15.c +0 -38
  835. package/runtime/third_party/bearssl/src/int/i15_reduce.c +0 -66
  836. package/runtime/third_party/bearssl/src/int/i15_rshift.c +0 -47
  837. package/runtime/third_party/bearssl/src/int/i15_sub.c +0 -46
  838. package/runtime/third_party/bearssl/src/int/i15_tmont.c +0 -36
  839. package/runtime/third_party/bearssl/src/int/i31_add.c +0 -46
  840. package/runtime/third_party/bearssl/src/int/i31_bitlen.c +0 -44
  841. package/runtime/third_party/bearssl/src/int/i31_decmod.c +0 -124
  842. package/runtime/third_party/bearssl/src/int/i31_decode.c +0 -57
  843. package/runtime/third_party/bearssl/src/int/i31_decred.c +0 -103
  844. package/runtime/third_party/bearssl/src/int/i31_encode.c +0 -79
  845. package/runtime/third_party/bearssl/src/int/i31_fmont.c +0 -60
  846. package/runtime/third_party/bearssl/src/int/i31_iszero.c +0 -39
  847. package/runtime/third_party/bearssl/src/int/i31_moddiv.c +0 -488
  848. package/runtime/third_party/bearssl/src/int/i31_modpow.c +0 -65
  849. package/runtime/third_party/bearssl/src/int/i31_modpow2.c +0 -160
  850. package/runtime/third_party/bearssl/src/int/i31_montmul.c +0 -127
  851. package/runtime/third_party/bearssl/src/int/i31_mulacc.c +0 -74
  852. package/runtime/third_party/bearssl/src/int/i31_muladd.c +0 -157
  853. package/runtime/third_party/bearssl/src/int/i31_ninv31.c +0 -39
  854. package/runtime/third_party/bearssl/src/int/i31_reduce.c +0 -66
  855. package/runtime/third_party/bearssl/src/int/i31_rshift.c +0 -47
  856. package/runtime/third_party/bearssl/src/int/i31_sub.c +0 -46
  857. package/runtime/third_party/bearssl/src/int/i31_tmont.c +0 -36
  858. package/runtime/third_party/bearssl/src/int/i32_add.c +0 -51
  859. package/runtime/third_party/bearssl/src/int/i32_bitlen.c +0 -44
  860. package/runtime/third_party/bearssl/src/int/i32_decmod.c +0 -77
  861. package/runtime/third_party/bearssl/src/int/i32_decode.c +0 -63
  862. package/runtime/third_party/bearssl/src/int/i32_decred.c +0 -107
  863. package/runtime/third_party/bearssl/src/int/i32_div32.c +0 -56
  864. package/runtime/third_party/bearssl/src/int/i32_encode.c +0 -72
  865. package/runtime/third_party/bearssl/src/int/i32_fmont.c +0 -60
  866. package/runtime/third_party/bearssl/src/int/i32_iszero.c +0 -39
  867. package/runtime/third_party/bearssl/src/int/i32_modpow.c +0 -65
  868. package/runtime/third_party/bearssl/src/int/i32_montmul.c +0 -69
  869. package/runtime/third_party/bearssl/src/int/i32_mulacc.c +0 -56
  870. package/runtime/third_party/bearssl/src/int/i32_muladd.c +0 -138
  871. package/runtime/third_party/bearssl/src/int/i32_ninv32.c +0 -39
  872. package/runtime/third_party/bearssl/src/int/i32_reduce.c +0 -66
  873. package/runtime/third_party/bearssl/src/int/i32_sub.c +0 -51
  874. package/runtime/third_party/bearssl/src/int/i32_tmont.c +0 -36
  875. package/runtime/third_party/bearssl/src/int/i62_modpow2.c +0 -493
  876. package/runtime/third_party/bearssl/src/kdf/hkdf.c +0 -107
  877. package/runtime/third_party/bearssl/src/kdf/shake.c +0 -590
  878. package/runtime/third_party/bearssl/src/mac/hmac.c +0 -122
  879. package/runtime/third_party/bearssl/src/mac/hmac_ct.c +0 -193
  880. package/runtime/third_party/bearssl/src/rand/aesctr_drbg.c +0 -206
  881. package/runtime/third_party/bearssl/src/rand/hmac_drbg.c +0 -157
  882. package/runtime/third_party/bearssl/src/rand/sysrng.c +0 -252
  883. package/runtime/third_party/bearssl/src/rsa/rsa_default_keygen.c +0 -38
  884. package/runtime/third_party/bearssl/src/rsa/rsa_default_modulus.c +0 -36
  885. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_decrypt.c +0 -38
  886. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_encrypt.c +0 -38
  887. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_sign.c +0 -38
  888. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_vrfy.c +0 -38
  889. package/runtime/third_party/bearssl/src/rsa/rsa_default_priv.c +0 -38
  890. package/runtime/third_party/bearssl/src/rsa/rsa_default_privexp.c +0 -36
  891. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_sign.c +0 -38
  892. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_vrfy.c +0 -38
  893. package/runtime/third_party/bearssl/src/rsa/rsa_default_pub.c +0 -38
  894. package/runtime/third_party/bearssl/src/rsa/rsa_default_pubexp.c +0 -36
  895. package/runtime/third_party/bearssl/src/rsa/rsa_i15_keygen.c +0 -583
  896. package/runtime/third_party/bearssl/src/rsa/rsa_i15_modulus.c +0 -99
  897. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_decrypt.c +0 -41
  898. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_encrypt.c +0 -44
  899. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_sign.c +0 -37
  900. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_vrfy.c +0 -43
  901. package/runtime/third_party/bearssl/src/rsa/rsa_i15_priv.c +0 -209
  902. package/runtime/third_party/bearssl/src/rsa/rsa_i15_privexp.c +0 -320
  903. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_sign.c +0 -40
  904. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_vrfy.c +0 -44
  905. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pub.c +0 -113
  906. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pubexp.c +0 -152
  907. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen.c +0 -37
  908. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen_inner.c +0 -608
  909. package/runtime/third_party/bearssl/src/rsa/rsa_i31_modulus.c +0 -99
  910. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_decrypt.c +0 -41
  911. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_encrypt.c +0 -44
  912. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_sign.c +0 -37
  913. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_vrfy.c +0 -43
  914. package/runtime/third_party/bearssl/src/rsa/rsa_i31_priv.c +0 -203
  915. package/runtime/third_party/bearssl/src/rsa/rsa_i31_privexp.c +0 -318
  916. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_sign.c +0 -40
  917. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_vrfy.c +0 -44
  918. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pub.c +0 -106
  919. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pubexp.c +0 -152
  920. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_decrypt.c +0 -41
  921. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_encrypt.c +0 -44
  922. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_sign.c +0 -37
  923. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_vrfy.c +0 -43
  924. package/runtime/third_party/bearssl/src/rsa/rsa_i32_priv.c +0 -160
  925. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_sign.c +0 -40
  926. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_vrfy.c +0 -44
  927. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pub.c +0 -77
  928. package/runtime/third_party/bearssl/src/rsa/rsa_i62_keygen.c +0 -57
  929. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_decrypt.c +0 -61
  930. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_encrypt.c +0 -64
  931. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_sign.c +0 -57
  932. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_vrfy.c +0 -63
  933. package/runtime/third_party/bearssl/src/rsa/rsa_i62_priv.c +0 -223
  934. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_sign.c +0 -60
  935. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_vrfy.c +0 -64
  936. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pub.c +0 -125
  937. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_pad.c +0 -112
  938. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_unpad.c +0 -145
  939. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_pad.c +0 -100
  940. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_unpad.c +0 -121
  941. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_pad.c +0 -106
  942. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_unpad.c +0 -121
  943. package/runtime/third_party/bearssl/src/rsa/rsa_ssl_decrypt.c +0 -52
  944. package/runtime/third_party/bearssl/src/settings.c +0 -306
  945. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcdec.c +0 -69
  946. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcenc.c +0 -67
  947. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctr.c +0 -84
  948. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctrcbc.c +0 -142
  949. package/runtime/third_party/bearssl/src/symcipher/aes_big_dec.c +0 -254
  950. package/runtime/third_party/bearssl/src/symcipher/aes_big_enc.c +0 -157
  951. package/runtime/third_party/bearssl/src/symcipher/aes_common.c +0 -112
  952. package/runtime/third_party/bearssl/src/symcipher/aes_ct.c +0 -328
  953. package/runtime/third_party/bearssl/src/symcipher/aes_ct64.c +0 -398
  954. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcdec.c +0 -104
  955. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcenc.c +0 -81
  956. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctr.c +0 -114
  957. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctrcbc.c +0 -433
  958. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_dec.c +0 -159
  959. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_enc.c +0 -115
  960. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcdec.c +0 -111
  961. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcenc.c +0 -91
  962. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctr.c +0 -116
  963. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctrcbc.c +0 -422
  964. package/runtime/third_party/bearssl/src/symcipher/aes_ct_dec.c +0 -170
  965. package/runtime/third_party/bearssl/src/symcipher/aes_ct_enc.c +0 -112
  966. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8.c +0 -445
  967. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcdec.c +0 -670
  968. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcenc.c +0 -417
  969. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctr.c +0 -717
  970. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctrcbc.c +0 -946
  971. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcdec.c +0 -69
  972. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcenc.c +0 -67
  973. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctr.c +0 -84
  974. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctrcbc.c +0 -142
  975. package/runtime/third_party/bearssl/src/symcipher/aes_small_dec.c +0 -176
  976. package/runtime/third_party/bearssl/src/symcipher/aes_small_enc.c +0 -129
  977. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni.c +0 -240
  978. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcdec.c +0 -223
  979. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcenc.c +0 -122
  980. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctr.c +0 -211
  981. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctrcbc.c +0 -596
  982. package/runtime/third_party/bearssl/src/symcipher/chacha20_ct.c +0 -106
  983. package/runtime/third_party/bearssl/src/symcipher/chacha20_sse2.c +0 -237
  984. package/runtime/third_party/bearssl/src/symcipher/des_ct.c +0 -411
  985. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcdec.c +0 -87
  986. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcenc.c +0 -69
  987. package/runtime/third_party/bearssl/src/symcipher/des_support.c +0 -166
  988. package/runtime/third_party/bearssl/src/symcipher/des_tab.c +0 -310
  989. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcdec.c +0 -85
  990. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcenc.c +0 -67
  991. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul.c +0 -260
  992. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul32.c +0 -297
  993. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmulq.c +0 -475
  994. package/runtime/third_party/bearssl/src/symcipher/poly1305_i15.c +0 -221
  995. package/runtime/third_party/bearssl/src/x509/asn1.t0 +0 -757
  996. package/runtime/third_party/bearssl/src/x509/asn1enc.c +0 -93
  997. package/runtime/third_party/bearssl/src/x509/encode_ec_pk8der.c +0 -110
  998. package/runtime/third_party/bearssl/src/x509/encode_ec_rawder.c +0 -161
  999. package/runtime/third_party/bearssl/src/x509/encode_rsa_pk8der.c +0 -97
  1000. package/runtime/third_party/bearssl/src/x509/encode_rsa_rawder.c +0 -96
  1001. package/runtime/third_party/bearssl/src/x509/skey_decoder.c +0 -653
  1002. package/runtime/third_party/bearssl/src/x509/skey_decoder.t0 +0 -376
  1003. package/runtime/third_party/bearssl/src/x509/x509_decoder.c +0 -776
  1004. package/runtime/third_party/bearssl/src/x509/x509_decoder.t0 +0 -324
  1005. package/runtime/third_party/bearssl/src/x509/x509_knownkey.c +0 -105
  1006. package/runtime/third_party/bearssl/src/x509/x509_minimal.c +0 -1722
  1007. package/runtime/third_party/bearssl/src/x509/x509_minimal.t0 +0 -1526
  1008. package/runtime/third_party/bearssl/src/x509/x509_minimal_full.c +0 -59
@@ -0,0 +1,1446 @@
1
+ // This file is generated from a similarly-named Perl script in the BoringSSL
2
+ // source tree. Do not edit by hand.
3
+
4
+ #include <openssl/asm_base.h>
5
+
6
+ #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_AARCH64) && defined(_WIN32)
7
+ .text
8
+
9
+ .globl bn_mul_mont_words
10
+
11
+ .def bn_mul_mont_words
12
+ .type 32
13
+ .endef
14
+ .align 5
15
+ bn_mul_mont_words:
16
+ AARCH64_SIGN_LINK_REGISTER
17
+ tst x5,#7
18
+ b.eq Lsqr8x_mont
19
+ tst x5,#3
20
+ b.eq Lmul4x_mont
21
+ Lmul_mont:
22
+ stp x29,x30,[sp,#-64]!
23
+ add x29,sp,#0
24
+ stp x19,x20,[sp,#16]
25
+ stp x21,x22,[sp,#32]
26
+ stp x23,x24,[sp,#48]
27
+
28
+ ldr x9,[x2],#8 // bp[0]
29
+ sub x22,sp,x5,lsl#3
30
+ ldp x7,x8,[x1],#16 // ap[0..1]
31
+ lsl x5,x5,#3
32
+ ldr x4,[x4] // *n0
33
+ and x22,x22,#-16 // ABI says so
34
+ ldp x13,x14,[x3],#16 // np[0..1]
35
+
36
+ mul x6,x7,x9 // ap[0]*bp[0]
37
+ sub x21,x5,#16 // j=num-2
38
+ umulh x7,x7,x9
39
+ mul x10,x8,x9 // ap[1]*bp[0]
40
+ umulh x11,x8,x9
41
+
42
+ mul x15,x6,x4 // "tp[0]"*n0
43
+ // This can allocate at most 8 * BN_MONTGOMERY_MAX_WORDS on the stack,
44
+ // or 2 KiB. This fits well within a page, so it is not necessary to
45
+ // fault pages in the correct order.
46
+ mov sp,x22 // alloca
47
+
48
+ // (*) mul x12,x13,x15 // np[0]*m1
49
+ umulh x13,x13,x15
50
+ mul x16,x14,x15 // np[1]*m1
51
+ // (*) adds x12,x12,x6 // discarded
52
+ // (*) As for removal of first multiplication and addition
53
+ // instructions. The outcome of first addition is
54
+ // guaranteed to be zero, which leaves two computationally
55
+ // significant outcomes: it either carries or not. Then
56
+ // question is when does it carry? Is there alternative
57
+ // way to deduce it? If you follow operations, you can
58
+ // observe that condition for carry is quite simple:
59
+ // x6 being non-zero. So that carry can be calculated
60
+ // by adding -1 to x6. That's what next instruction does.
61
+ subs xzr,x6,#1 // (*)
62
+ umulh x17,x14,x15
63
+ adc x13,x13,xzr
64
+ cbz x21,L1st_skip
65
+
66
+ L1st:
67
+ ldr x8,[x1],#8
68
+ adds x6,x10,x7
69
+ sub x21,x21,#8 // j--
70
+ adc x7,x11,xzr
71
+
72
+ ldr x14,[x3],#8
73
+ adds x12,x16,x13
74
+ mul x10,x8,x9 // ap[j]*bp[0]
75
+ adc x13,x17,xzr
76
+ umulh x11,x8,x9
77
+
78
+ adds x12,x12,x6
79
+ mul x16,x14,x15 // np[j]*m1
80
+ adc x13,x13,xzr
81
+ umulh x17,x14,x15
82
+ str x12,[x22],#8 // tp[j-1]
83
+ cbnz x21,L1st
84
+
85
+ L1st_skip:
86
+ adds x6,x10,x7
87
+ sub x1,x1,x5 // rewind x1
88
+ adc x7,x11,xzr
89
+
90
+ adds x12,x16,x13
91
+ sub x3,x3,x5 // rewind x3
92
+ adc x13,x17,xzr
93
+
94
+ adds x12,x12,x6
95
+ sub x20,x5,#8 // i=num-1
96
+ adcs x13,x13,x7
97
+
98
+ adc x19,xzr,xzr // upmost overflow bit
99
+ stp x12,x13,[x22]
100
+
101
+ Louter:
102
+ ldr x9,[x2],#8 // bp[i]
103
+ ldp x7,x8,[x1],#16
104
+ ldr x23,[sp] // tp[0]
105
+ add x22,sp,#8
106
+
107
+ mul x6,x7,x9 // ap[0]*bp[i]
108
+ sub x21,x5,#16 // j=num-2
109
+ umulh x7,x7,x9
110
+ ldp x13,x14,[x3],#16
111
+ mul x10,x8,x9 // ap[1]*bp[i]
112
+ adds x6,x6,x23
113
+ umulh x11,x8,x9
114
+ adc x7,x7,xzr
115
+
116
+ mul x15,x6,x4
117
+ sub x20,x20,#8 // i--
118
+
119
+ // (*) mul x12,x13,x15 // np[0]*m1
120
+ umulh x13,x13,x15
121
+ mul x16,x14,x15 // np[1]*m1
122
+ // (*) adds x12,x12,x6
123
+ subs xzr,x6,#1 // (*)
124
+ umulh x17,x14,x15
125
+ cbz x21,Linner_skip
126
+
127
+ Linner:
128
+ ldr x8,[x1],#8
129
+ adc x13,x13,xzr
130
+ ldr x23,[x22],#8 // tp[j]
131
+ adds x6,x10,x7
132
+ sub x21,x21,#8 // j--
133
+ adc x7,x11,xzr
134
+
135
+ adds x12,x16,x13
136
+ ldr x14,[x3],#8
137
+ adc x13,x17,xzr
138
+
139
+ mul x10,x8,x9 // ap[j]*bp[i]
140
+ adds x6,x6,x23
141
+ umulh x11,x8,x9
142
+ adc x7,x7,xzr
143
+
144
+ mul x16,x14,x15 // np[j]*m1
145
+ adds x12,x12,x6
146
+ umulh x17,x14,x15
147
+ str x12,[x22,#-16] // tp[j-1]
148
+ cbnz x21,Linner
149
+
150
+ Linner_skip:
151
+ ldr x23,[x22],#8 // tp[j]
152
+ adc x13,x13,xzr
153
+ adds x6,x10,x7
154
+ sub x1,x1,x5 // rewind x1
155
+ adc x7,x11,xzr
156
+
157
+ adds x12,x16,x13
158
+ sub x3,x3,x5 // rewind x3
159
+ adcs x13,x17,x19
160
+ adc x19,xzr,xzr
161
+
162
+ adds x6,x6,x23
163
+ adc x7,x7,xzr
164
+
165
+ adds x12,x12,x6
166
+ adcs x13,x13,x7
167
+ adc x19,x19,xzr // upmost overflow bit
168
+ stp x12,x13,[x22,#-16]
169
+
170
+ cbnz x20,Louter
171
+
172
+ // Final step. We see if result is larger than modulus, and
173
+ // if it is, subtract the modulus. But comparison implies
174
+ // subtraction. So we subtract modulus, see if it borrowed,
175
+ // and conditionally copy original value.
176
+ ldr x23,[sp] // tp[0]
177
+ add x22,sp,#8
178
+ ldr x14,[x3],#8 // np[0]
179
+ subs x21,x5,#8 // j=num-1 and clear borrow
180
+ mov x1,x0
181
+ Lsub:
182
+ sbcs x8,x23,x14 // tp[j]-np[j]
183
+ ldr x23,[x22],#8
184
+ sub x21,x21,#8 // j--
185
+ ldr x14,[x3],#8
186
+ str x8,[x1],#8 // rp[j]=tp[j]-np[j]
187
+ cbnz x21,Lsub
188
+
189
+ sbcs x8,x23,x14
190
+ sbcs x19,x19,xzr // did it borrow?
191
+ str x8,[x1],#8 // rp[num-1]
192
+
193
+ ldr x23,[sp] // tp[0]
194
+ add x22,sp,#8
195
+ ldr x8,[x0],#8 // rp[0]
196
+ sub x5,x5,#8 // num--
197
+ nop
198
+ Lcond_copy:
199
+ sub x5,x5,#8 // num--
200
+ csel x14,x23,x8,lo // did it borrow?
201
+ ldr x23,[x22],#8
202
+ ldr x8,[x0],#8
203
+ str xzr,[x22,#-16] // wipe tp
204
+ str x14,[x0,#-16]
205
+ cbnz x5,Lcond_copy
206
+
207
+ csel x14,x23,x8,lo
208
+ str xzr,[x22,#-8] // wipe tp
209
+ str x14,[x0,#-8]
210
+
211
+ ldp x19,x20,[x29,#16]
212
+ mov sp,x29
213
+ ldp x21,x22,[x29,#32]
214
+ // No return value
215
+ ldp x23,x24,[x29,#48]
216
+ ldr x29,[sp],#64
217
+ AARCH64_VALIDATE_LINK_REGISTER
218
+ ret
219
+ .def Lsqr8x_mont
220
+ .type 32
221
+ .endef
222
+ .align 5
223
+ Lsqr8x_mont:
224
+ // Not adding AARCH64_SIGN_LINK_REGISTER here because .Lsqr8x_mont is jumped to
225
+ // only from bn_mul_mont_words which has already signed the return address.
226
+ cmp x1,x2
227
+ b.ne Lmul4x_mont
228
+
229
+ stp x29,x30,[sp,#-128]!
230
+ add x29,sp,#0
231
+ stp x19,x20,[sp,#16]
232
+ stp x21,x22,[sp,#32]
233
+ stp x23,x24,[sp,#48]
234
+ stp x25,x26,[sp,#64]
235
+ stp x27,x28,[sp,#80]
236
+ stp x0,x3,[sp,#96] // offload rp and np
237
+
238
+ ldp x6,x7,[x1,#8*0]
239
+ ldp x8,x9,[x1,#8*2]
240
+ ldp x10,x11,[x1,#8*4]
241
+ ldp x12,x13,[x1,#8*6]
242
+
243
+ // This can allocate at most 16 * BN_MONTGOMERY_MAX_WORDS on the stack,
244
+ // or 4 KiB. The fixed allocation above pushes to just above a page. On
245
+ // Windows, we must ensure new pages are first accessed in order. See
246
+ // https://learn.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=msvc-170#stack
247
+ //
248
+ // The order is correct, but precariously so: the code above access as
249
+ // low as [sp,#16]. This leaves a jump of 16 + 4096 = 4112 bytes. If
250
+ // [sp,#16] were at page boundary, those 4112 bytes would span two
251
+ // pages. If [x2] were the next access, we would skip a guard page.
252
+ //
253
+ // Fortunately, the first access is [x2,#8*8], at .Lsqr8x_zero_start.
254
+ // We jump at most 4112 - 64 = 4048 bytes, less than a page. If any of
255
+ // this changes, we must insert a no-op access or call __chkstk.
256
+ sub x2,sp,x5,lsl#4
257
+ lsl x5,x5,#3
258
+ ldr x4,[x4] // *n0
259
+ mov sp,x2 // alloca
260
+ sub x27,x5,#8*8
261
+ b Lsqr8x_zero_start
262
+
263
+ Lsqr8x_zero:
264
+ sub x27,x27,#8*8
265
+ stp xzr,xzr,[x2,#8*0]
266
+ stp xzr,xzr,[x2,#8*2]
267
+ stp xzr,xzr,[x2,#8*4]
268
+ stp xzr,xzr,[x2,#8*6]
269
+ Lsqr8x_zero_start:
270
+ stp xzr,xzr,[x2,#8*8]
271
+ stp xzr,xzr,[x2,#8*10]
272
+ stp xzr,xzr,[x2,#8*12]
273
+ stp xzr,xzr,[x2,#8*14]
274
+ add x2,x2,#8*16
275
+ cbnz x27,Lsqr8x_zero
276
+
277
+ add x3,x1,x5
278
+ add x1,x1,#8*8
279
+ mov x19,xzr
280
+ mov x20,xzr
281
+ mov x21,xzr
282
+ mov x22,xzr
283
+ mov x23,xzr
284
+ mov x24,xzr
285
+ mov x25,xzr
286
+ mov x26,xzr
287
+ mov x2,sp
288
+ str x4,[x29,#112] // offload n0
289
+
290
+ // Multiply everything but a[i]*a[i]
291
+ .align 4
292
+ Lsqr8x_outer_loop:
293
+ // a[1]a[0] (i)
294
+ // a[2]a[0]
295
+ // a[3]a[0]
296
+ // a[4]a[0]
297
+ // a[5]a[0]
298
+ // a[6]a[0]
299
+ // a[7]a[0]
300
+ // a[2]a[1] (ii)
301
+ // a[3]a[1]
302
+ // a[4]a[1]
303
+ // a[5]a[1]
304
+ // a[6]a[1]
305
+ // a[7]a[1]
306
+ // a[3]a[2] (iii)
307
+ // a[4]a[2]
308
+ // a[5]a[2]
309
+ // a[6]a[2]
310
+ // a[7]a[2]
311
+ // a[4]a[3] (iv)
312
+ // a[5]a[3]
313
+ // a[6]a[3]
314
+ // a[7]a[3]
315
+ // a[5]a[4] (v)
316
+ // a[6]a[4]
317
+ // a[7]a[4]
318
+ // a[6]a[5] (vi)
319
+ // a[7]a[5]
320
+ // a[7]a[6] (vii)
321
+
322
+ mul x14,x7,x6 // lo(a[1..7]*a[0]) (i)
323
+ mul x15,x8,x6
324
+ mul x16,x9,x6
325
+ mul x17,x10,x6
326
+ adds x20,x20,x14 // t[1]+lo(a[1]*a[0])
327
+ mul x14,x11,x6
328
+ adcs x21,x21,x15
329
+ mul x15,x12,x6
330
+ adcs x22,x22,x16
331
+ mul x16,x13,x6
332
+ adcs x23,x23,x17
333
+ umulh x17,x7,x6 // hi(a[1..7]*a[0])
334
+ adcs x24,x24,x14
335
+ umulh x14,x8,x6
336
+ adcs x25,x25,x15
337
+ umulh x15,x9,x6
338
+ adcs x26,x26,x16
339
+ umulh x16,x10,x6
340
+ stp x19,x20,[x2],#8*2 // t[0..1]
341
+ adc x19,xzr,xzr // t[8]
342
+ adds x21,x21,x17 // t[2]+lo(a[1]*a[0])
343
+ umulh x17,x11,x6
344
+ adcs x22,x22,x14
345
+ umulh x14,x12,x6
346
+ adcs x23,x23,x15
347
+ umulh x15,x13,x6
348
+ adcs x24,x24,x16
349
+ mul x16,x8,x7 // lo(a[2..7]*a[1]) (ii)
350
+ adcs x25,x25,x17
351
+ mul x17,x9,x7
352
+ adcs x26,x26,x14
353
+ mul x14,x10,x7
354
+ adc x19,x19,x15
355
+
356
+ mul x15,x11,x7
357
+ adds x22,x22,x16
358
+ mul x16,x12,x7
359
+ adcs x23,x23,x17
360
+ mul x17,x13,x7
361
+ adcs x24,x24,x14
362
+ umulh x14,x8,x7 // hi(a[2..7]*a[1])
363
+ adcs x25,x25,x15
364
+ umulh x15,x9,x7
365
+ adcs x26,x26,x16
366
+ umulh x16,x10,x7
367
+ adcs x19,x19,x17
368
+ umulh x17,x11,x7
369
+ stp x21,x22,[x2],#8*2 // t[2..3]
370
+ adc x20,xzr,xzr // t[9]
371
+ adds x23,x23,x14
372
+ umulh x14,x12,x7
373
+ adcs x24,x24,x15
374
+ umulh x15,x13,x7
375
+ adcs x25,x25,x16
376
+ mul x16,x9,x8 // lo(a[3..7]*a[2]) (iii)
377
+ adcs x26,x26,x17
378
+ mul x17,x10,x8
379
+ adcs x19,x19,x14
380
+ mul x14,x11,x8
381
+ adc x20,x20,x15
382
+
383
+ mul x15,x12,x8
384
+ adds x24,x24,x16
385
+ mul x16,x13,x8
386
+ adcs x25,x25,x17
387
+ umulh x17,x9,x8 // hi(a[3..7]*a[2])
388
+ adcs x26,x26,x14
389
+ umulh x14,x10,x8
390
+ adcs x19,x19,x15
391
+ umulh x15,x11,x8
392
+ adcs x20,x20,x16
393
+ umulh x16,x12,x8
394
+ stp x23,x24,[x2],#8*2 // t[4..5]
395
+ adc x21,xzr,xzr // t[10]
396
+ adds x25,x25,x17
397
+ umulh x17,x13,x8
398
+ adcs x26,x26,x14
399
+ mul x14,x10,x9 // lo(a[4..7]*a[3]) (iv)
400
+ adcs x19,x19,x15
401
+ mul x15,x11,x9
402
+ adcs x20,x20,x16
403
+ mul x16,x12,x9
404
+ adc x21,x21,x17
405
+
406
+ mul x17,x13,x9
407
+ adds x26,x26,x14
408
+ umulh x14,x10,x9 // hi(a[4..7]*a[3])
409
+ adcs x19,x19,x15
410
+ umulh x15,x11,x9
411
+ adcs x20,x20,x16
412
+ umulh x16,x12,x9
413
+ adcs x21,x21,x17
414
+ umulh x17,x13,x9
415
+ stp x25,x26,[x2],#8*2 // t[6..7]
416
+ adc x22,xzr,xzr // t[11]
417
+ adds x19,x19,x14
418
+ mul x14,x11,x10 // lo(a[5..7]*a[4]) (v)
419
+ adcs x20,x20,x15
420
+ mul x15,x12,x10
421
+ adcs x21,x21,x16
422
+ mul x16,x13,x10
423
+ adc x22,x22,x17
424
+
425
+ umulh x17,x11,x10 // hi(a[5..7]*a[4])
426
+ adds x20,x20,x14
427
+ umulh x14,x12,x10
428
+ adcs x21,x21,x15
429
+ umulh x15,x13,x10
430
+ adcs x22,x22,x16
431
+ mul x16,x12,x11 // lo(a[6..7]*a[5]) (vi)
432
+ adc x23,xzr,xzr // t[12]
433
+ adds x21,x21,x17
434
+ mul x17,x13,x11
435
+ adcs x22,x22,x14
436
+ umulh x14,x12,x11 // hi(a[6..7]*a[5])
437
+ adc x23,x23,x15
438
+
439
+ umulh x15,x13,x11
440
+ adds x22,x22,x16
441
+ mul x16,x13,x12 // lo(a[7]*a[6]) (vii)
442
+ adcs x23,x23,x17
443
+ umulh x17,x13,x12 // hi(a[7]*a[6])
444
+ adc x24,xzr,xzr // t[13]
445
+ adds x23,x23,x14
446
+ sub x27,x3,x1 // done yet?
447
+ adc x24,x24,x15
448
+
449
+ adds x24,x24,x16
450
+ sub x14,x3,x5 // rewound ap
451
+ adc x25,xzr,xzr // t[14]
452
+ add x25,x25,x17
453
+
454
+ cbz x27,Lsqr8x_outer_break
455
+
456
+ mov x4,x6
457
+ ldp x6,x7,[x2,#8*0]
458
+ ldp x8,x9,[x2,#8*2]
459
+ ldp x10,x11,[x2,#8*4]
460
+ ldp x12,x13,[x2,#8*6]
461
+ adds x19,x19,x6
462
+ adcs x20,x20,x7
463
+ ldp x6,x7,[x1,#8*0]
464
+ adcs x21,x21,x8
465
+ adcs x22,x22,x9
466
+ ldp x8,x9,[x1,#8*2]
467
+ adcs x23,x23,x10
468
+ adcs x24,x24,x11
469
+ ldp x10,x11,[x1,#8*4]
470
+ adcs x25,x25,x12
471
+ mov x0,x1
472
+ adcs x26,xzr,x13
473
+ ldp x12,x13,[x1,#8*6]
474
+ add x1,x1,#8*8
475
+ //adc x28,xzr,xzr // moved below
476
+ mov x27,#-8*8
477
+
478
+ // a[8]a[0]
479
+ // a[9]a[0]
480
+ // a[a]a[0]
481
+ // a[b]a[0]
482
+ // a[c]a[0]
483
+ // a[d]a[0]
484
+ // a[e]a[0]
485
+ // a[f]a[0]
486
+ // a[8]a[1]
487
+ // a[f]a[1]........................
488
+ // a[8]a[2]
489
+ // a[f]a[2]........................
490
+ // a[8]a[3]
491
+ // a[f]a[3]........................
492
+ // a[8]a[4]
493
+ // a[f]a[4]........................
494
+ // a[8]a[5]
495
+ // a[f]a[5]........................
496
+ // a[8]a[6]
497
+ // a[f]a[6]........................
498
+ // a[8]a[7]
499
+ // a[f]a[7]........................
500
+ Lsqr8x_mul:
501
+ mul x14,x6,x4
502
+ adc x28,xzr,xzr // carry bit, modulo-scheduled
503
+ mul x15,x7,x4
504
+ add x27,x27,#8
505
+ mul x16,x8,x4
506
+ mul x17,x9,x4
507
+ adds x19,x19,x14
508
+ mul x14,x10,x4
509
+ adcs x20,x20,x15
510
+ mul x15,x11,x4
511
+ adcs x21,x21,x16
512
+ mul x16,x12,x4
513
+ adcs x22,x22,x17
514
+ mul x17,x13,x4
515
+ adcs x23,x23,x14
516
+ umulh x14,x6,x4
517
+ adcs x24,x24,x15
518
+ umulh x15,x7,x4
519
+ adcs x25,x25,x16
520
+ umulh x16,x8,x4
521
+ adcs x26,x26,x17
522
+ umulh x17,x9,x4
523
+ adc x28,x28,xzr
524
+ str x19,[x2],#8
525
+ adds x19,x20,x14
526
+ umulh x14,x10,x4
527
+ adcs x20,x21,x15
528
+ umulh x15,x11,x4
529
+ adcs x21,x22,x16
530
+ umulh x16,x12,x4
531
+ adcs x22,x23,x17
532
+ umulh x17,x13,x4
533
+ ldr x4,[x0,x27]
534
+ adcs x23,x24,x14
535
+ adcs x24,x25,x15
536
+ adcs x25,x26,x16
537
+ adcs x26,x28,x17
538
+ //adc x28,xzr,xzr // moved above
539
+ cbnz x27,Lsqr8x_mul
540
+ // note that carry flag is guaranteed
541
+ // to be zero at this point
542
+ cmp x1,x3 // done yet?
543
+ b.eq Lsqr8x_break
544
+
545
+ ldp x6,x7,[x2,#8*0]
546
+ ldp x8,x9,[x2,#8*2]
547
+ ldp x10,x11,[x2,#8*4]
548
+ ldp x12,x13,[x2,#8*6]
549
+ adds x19,x19,x6
550
+ ldr x4,[x0,#-8*8]
551
+ adcs x20,x20,x7
552
+ ldp x6,x7,[x1,#8*0]
553
+ adcs x21,x21,x8
554
+ adcs x22,x22,x9
555
+ ldp x8,x9,[x1,#8*2]
556
+ adcs x23,x23,x10
557
+ adcs x24,x24,x11
558
+ ldp x10,x11,[x1,#8*4]
559
+ adcs x25,x25,x12
560
+ mov x27,#-8*8
561
+ adcs x26,x26,x13
562
+ ldp x12,x13,[x1,#8*6]
563
+ add x1,x1,#8*8
564
+ //adc x28,xzr,xzr // moved above
565
+ b Lsqr8x_mul
566
+
567
+ .align 4
568
+ Lsqr8x_break:
569
+ ldp x6,x7,[x0,#8*0]
570
+ add x1,x0,#8*8
571
+ ldp x8,x9,[x0,#8*2]
572
+ sub x14,x3,x1 // is it last iteration?
573
+ ldp x10,x11,[x0,#8*4]
574
+ sub x15,x2,x14
575
+ ldp x12,x13,[x0,#8*6]
576
+ cbz x14,Lsqr8x_outer_loop
577
+
578
+ stp x19,x20,[x2,#8*0]
579
+ ldp x19,x20,[x15,#8*0]
580
+ stp x21,x22,[x2,#8*2]
581
+ ldp x21,x22,[x15,#8*2]
582
+ stp x23,x24,[x2,#8*4]
583
+ ldp x23,x24,[x15,#8*4]
584
+ stp x25,x26,[x2,#8*6]
585
+ mov x2,x15
586
+ ldp x25,x26,[x15,#8*6]
587
+ b Lsqr8x_outer_loop
588
+
589
+ .align 4
590
+ Lsqr8x_outer_break:
591
+ // Now multiply above result by 2 and add a[n-1]*a[n-1]|...|a[0]*a[0]
592
+ ldp x7,x9,[x14,#8*0] // recall that x14 is &a[0]
593
+ ldp x15,x16,[sp,#8*1]
594
+ ldp x11,x13,[x14,#8*2]
595
+ add x1,x14,#8*4
596
+ ldp x17,x14,[sp,#8*3]
597
+
598
+ stp x19,x20,[x2,#8*0]
599
+ mul x19,x7,x7
600
+ stp x21,x22,[x2,#8*2]
601
+ umulh x7,x7,x7
602
+ stp x23,x24,[x2,#8*4]
603
+ mul x8,x9,x9
604
+ stp x25,x26,[x2,#8*6]
605
+ mov x2,sp
606
+ umulh x9,x9,x9
607
+ adds x20,x7,x15,lsl#1
608
+ extr x15,x16,x15,#63
609
+ sub x27,x5,#8*4
610
+
611
+ Lsqr4x_shift_n_add:
612
+ adcs x21,x8,x15
613
+ extr x16,x17,x16,#63
614
+ sub x27,x27,#8*4
615
+ adcs x22,x9,x16
616
+ ldp x15,x16,[x2,#8*5]
617
+ mul x10,x11,x11
618
+ ldp x7,x9,[x1],#8*2
619
+ umulh x11,x11,x11
620
+ mul x12,x13,x13
621
+ umulh x13,x13,x13
622
+ extr x17,x14,x17,#63
623
+ stp x19,x20,[x2,#8*0]
624
+ adcs x23,x10,x17
625
+ extr x14,x15,x14,#63
626
+ stp x21,x22,[x2,#8*2]
627
+ adcs x24,x11,x14
628
+ ldp x17,x14,[x2,#8*7]
629
+ extr x15,x16,x15,#63
630
+ adcs x25,x12,x15
631
+ extr x16,x17,x16,#63
632
+ adcs x26,x13,x16
633
+ ldp x15,x16,[x2,#8*9]
634
+ mul x6,x7,x7
635
+ ldp x11,x13,[x1],#8*2
636
+ umulh x7,x7,x7
637
+ mul x8,x9,x9
638
+ umulh x9,x9,x9
639
+ stp x23,x24,[x2,#8*4]
640
+ extr x17,x14,x17,#63
641
+ stp x25,x26,[x2,#8*6]
642
+ add x2,x2,#8*8
643
+ adcs x19,x6,x17
644
+ extr x14,x15,x14,#63
645
+ adcs x20,x7,x14
646
+ ldp x17,x14,[x2,#8*3]
647
+ extr x15,x16,x15,#63
648
+ cbnz x27,Lsqr4x_shift_n_add
649
+ ldp x1,x4,[x29,#104] // pull np and n0
650
+
651
+ adcs x21,x8,x15
652
+ extr x16,x17,x16,#63
653
+ adcs x22,x9,x16
654
+ ldp x15,x16,[x2,#8*5]
655
+ mul x10,x11,x11
656
+ umulh x11,x11,x11
657
+ stp x19,x20,[x2,#8*0]
658
+ mul x12,x13,x13
659
+ umulh x13,x13,x13
660
+ stp x21,x22,[x2,#8*2]
661
+ extr x17,x14,x17,#63
662
+ adcs x23,x10,x17
663
+ extr x14,x15,x14,#63
664
+ ldp x19,x20,[sp,#8*0]
665
+ adcs x24,x11,x14
666
+ extr x15,x16,x15,#63
667
+ ldp x6,x7,[x1,#8*0]
668
+ adcs x25,x12,x15
669
+ extr x16,xzr,x16,#63
670
+ ldp x8,x9,[x1,#8*2]
671
+ adc x26,x13,x16
672
+ ldp x10,x11,[x1,#8*4]
673
+
674
+ // Reduce by 512 bits per iteration
675
+ mul x28,x4,x19 // t[0]*n0
676
+ ldp x12,x13,[x1,#8*6]
677
+ add x3,x1,x5
678
+ ldp x21,x22,[sp,#8*2]
679
+ stp x23,x24,[x2,#8*4]
680
+ ldp x23,x24,[sp,#8*4]
681
+ stp x25,x26,[x2,#8*6]
682
+ ldp x25,x26,[sp,#8*6]
683
+ add x1,x1,#8*8
684
+ mov x30,xzr // initial top-most carry
685
+ mov x2,sp
686
+ mov x27,#8
687
+
688
+ Lsqr8x_reduction:
689
+ // (*) mul x14,x6,x28 // lo(n[0-7])*lo(t[0]*n0)
690
+ mul x15,x7,x28
691
+ sub x27,x27,#1
692
+ mul x16,x8,x28
693
+ str x28,[x2],#8 // put aside t[0]*n0 for tail processing
694
+ mul x17,x9,x28
695
+ // (*) adds xzr,x19,x14
696
+ subs xzr,x19,#1 // (*)
697
+ mul x14,x10,x28
698
+ adcs x19,x20,x15
699
+ mul x15,x11,x28
700
+ adcs x20,x21,x16
701
+ mul x16,x12,x28
702
+ adcs x21,x22,x17
703
+ mul x17,x13,x28
704
+ adcs x22,x23,x14
705
+ umulh x14,x6,x28 // hi(n[0-7])*lo(t[0]*n0)
706
+ adcs x23,x24,x15
707
+ umulh x15,x7,x28
708
+ adcs x24,x25,x16
709
+ umulh x16,x8,x28
710
+ adcs x25,x26,x17
711
+ umulh x17,x9,x28
712
+ adc x26,xzr,xzr
713
+ adds x19,x19,x14
714
+ umulh x14,x10,x28
715
+ adcs x20,x20,x15
716
+ umulh x15,x11,x28
717
+ adcs x21,x21,x16
718
+ umulh x16,x12,x28
719
+ adcs x22,x22,x17
720
+ umulh x17,x13,x28
721
+ mul x28,x4,x19 // next t[0]*n0
722
+ adcs x23,x23,x14
723
+ adcs x24,x24,x15
724
+ adcs x25,x25,x16
725
+ adc x26,x26,x17
726
+ cbnz x27,Lsqr8x_reduction
727
+
728
+ ldp x14,x15,[x2,#8*0]
729
+ ldp x16,x17,[x2,#8*2]
730
+ mov x0,x2
731
+ sub x27,x3,x1 // done yet?
732
+ adds x19,x19,x14
733
+ adcs x20,x20,x15
734
+ ldp x14,x15,[x2,#8*4]
735
+ adcs x21,x21,x16
736
+ adcs x22,x22,x17
737
+ ldp x16,x17,[x2,#8*6]
738
+ adcs x23,x23,x14
739
+ adcs x24,x24,x15
740
+ adcs x25,x25,x16
741
+ adcs x26,x26,x17
742
+ //adc x28,xzr,xzr // moved below
743
+ cbz x27,Lsqr8x8_post_condition
744
+
745
+ ldr x4,[x2,#-8*8]
746
+ ldp x6,x7,[x1,#8*0]
747
+ ldp x8,x9,[x1,#8*2]
748
+ ldp x10,x11,[x1,#8*4]
749
+ mov x27,#-8*8
750
+ ldp x12,x13,[x1,#8*6]
751
+ add x1,x1,#8*8
752
+
753
+ Lsqr8x_tail:
754
+ mul x14,x6,x4
755
+ adc x28,xzr,xzr // carry bit, modulo-scheduled
756
+ mul x15,x7,x4
757
+ add x27,x27,#8
758
+ mul x16,x8,x4
759
+ mul x17,x9,x4
760
+ adds x19,x19,x14
761
+ mul x14,x10,x4
762
+ adcs x20,x20,x15
763
+ mul x15,x11,x4
764
+ adcs x21,x21,x16
765
+ mul x16,x12,x4
766
+ adcs x22,x22,x17
767
+ mul x17,x13,x4
768
+ adcs x23,x23,x14
769
+ umulh x14,x6,x4
770
+ adcs x24,x24,x15
771
+ umulh x15,x7,x4
772
+ adcs x25,x25,x16
773
+ umulh x16,x8,x4
774
+ adcs x26,x26,x17
775
+ umulh x17,x9,x4
776
+ adc x28,x28,xzr
777
+ str x19,[x2],#8
778
+ adds x19,x20,x14
779
+ umulh x14,x10,x4
780
+ adcs x20,x21,x15
781
+ umulh x15,x11,x4
782
+ adcs x21,x22,x16
783
+ umulh x16,x12,x4
784
+ adcs x22,x23,x17
785
+ umulh x17,x13,x4
786
+ ldr x4,[x0,x27]
787
+ adcs x23,x24,x14
788
+ adcs x24,x25,x15
789
+ adcs x25,x26,x16
790
+ adcs x26,x28,x17
791
+ //adc x28,xzr,xzr // moved above
792
+ cbnz x27,Lsqr8x_tail
793
+ // note that carry flag is guaranteed
794
+ // to be zero at this point
795
+ ldp x6,x7,[x2,#8*0]
796
+ sub x27,x3,x1 // done yet?
797
+ sub x16,x3,x5 // rewound np
798
+ ldp x8,x9,[x2,#8*2]
799
+ ldp x10,x11,[x2,#8*4]
800
+ ldp x12,x13,[x2,#8*6]
801
+ cbz x27,Lsqr8x_tail_break
802
+
803
+ ldr x4,[x0,#-8*8]
804
+ adds x19,x19,x6
805
+ adcs x20,x20,x7
806
+ ldp x6,x7,[x1,#8*0]
807
+ adcs x21,x21,x8
808
+ adcs x22,x22,x9
809
+ ldp x8,x9,[x1,#8*2]
810
+ adcs x23,x23,x10
811
+ adcs x24,x24,x11
812
+ ldp x10,x11,[x1,#8*4]
813
+ adcs x25,x25,x12
814
+ mov x27,#-8*8
815
+ adcs x26,x26,x13
816
+ ldp x12,x13,[x1,#8*6]
817
+ add x1,x1,#8*8
818
+ //adc x28,xzr,xzr // moved above
819
+ b Lsqr8x_tail
820
+
821
+ .align 4
822
+ Lsqr8x_tail_break:
823
+ ldr x4,[x29,#112] // pull n0
824
+ add x27,x2,#8*8 // end of current t[num] window
825
+
826
+ subs xzr,x30,#1 // "move" top-most carry to carry bit
827
+ adcs x14,x19,x6
828
+ adcs x15,x20,x7
829
+ ldp x19,x20,[x0,#8*0]
830
+ adcs x21,x21,x8
831
+ ldp x6,x7,[x16,#8*0] // recall that x16 is &n[0]
832
+ adcs x22,x22,x9
833
+ ldp x8,x9,[x16,#8*2]
834
+ adcs x23,x23,x10
835
+ adcs x24,x24,x11
836
+ ldp x10,x11,[x16,#8*4]
837
+ adcs x25,x25,x12
838
+ adcs x26,x26,x13
839
+ ldp x12,x13,[x16,#8*6]
840
+ add x1,x16,#8*8
841
+ adc x30,xzr,xzr // top-most carry
842
+ mul x28,x4,x19
843
+ stp x14,x15,[x2,#8*0]
844
+ stp x21,x22,[x2,#8*2]
845
+ ldp x21,x22,[x0,#8*2]
846
+ stp x23,x24,[x2,#8*4]
847
+ ldp x23,x24,[x0,#8*4]
848
+ cmp x27,x29 // did we hit the bottom?
849
+ stp x25,x26,[x2,#8*6]
850
+ mov x2,x0 // slide the window
851
+ ldp x25,x26,[x0,#8*6]
852
+ mov x27,#8
853
+ b.ne Lsqr8x_reduction
854
+
855
+ // Final step. We see if result is larger than modulus, and
856
+ // if it is, subtract the modulus. But comparison implies
857
+ // subtraction. So we subtract modulus, see if it borrowed,
858
+ // and conditionally copy original value.
859
+ ldr x0,[x29,#96] // pull rp
860
+ add x2,x2,#8*8
861
+ subs x14,x19,x6
862
+ sbcs x15,x20,x7
863
+ sub x27,x5,#8*8
864
+ mov x3,x0 // x0 copy
865
+
866
+ Lsqr8x_sub:
867
+ sbcs x16,x21,x8
868
+ ldp x6,x7,[x1,#8*0]
869
+ sbcs x17,x22,x9
870
+ stp x14,x15,[x0,#8*0]
871
+ sbcs x14,x23,x10
872
+ ldp x8,x9,[x1,#8*2]
873
+ sbcs x15,x24,x11
874
+ stp x16,x17,[x0,#8*2]
875
+ sbcs x16,x25,x12
876
+ ldp x10,x11,[x1,#8*4]
877
+ sbcs x17,x26,x13
878
+ ldp x12,x13,[x1,#8*6]
879
+ add x1,x1,#8*8
880
+ ldp x19,x20,[x2,#8*0]
881
+ sub x27,x27,#8*8
882
+ ldp x21,x22,[x2,#8*2]
883
+ ldp x23,x24,[x2,#8*4]
884
+ ldp x25,x26,[x2,#8*6]
885
+ add x2,x2,#8*8
886
+ stp x14,x15,[x0,#8*4]
887
+ sbcs x14,x19,x6
888
+ stp x16,x17,[x0,#8*6]
889
+ add x0,x0,#8*8
890
+ sbcs x15,x20,x7
891
+ cbnz x27,Lsqr8x_sub
892
+
893
+ sbcs x16,x21,x8
894
+ mov x2,sp
895
+ add x1,sp,x5
896
+ ldp x6,x7,[x3,#8*0]
897
+ sbcs x17,x22,x9
898
+ stp x14,x15,[x0,#8*0]
899
+ sbcs x14,x23,x10
900
+ ldp x8,x9,[x3,#8*2]
901
+ sbcs x15,x24,x11
902
+ stp x16,x17,[x0,#8*2]
903
+ sbcs x16,x25,x12
904
+ ldp x19,x20,[x1,#8*0]
905
+ sbcs x17,x26,x13
906
+ ldp x21,x22,[x1,#8*2]
907
+ sbcs xzr,x30,xzr // did it borrow?
908
+ ldr x30,[x29,#8] // pull return address
909
+ stp x14,x15,[x0,#8*4]
910
+ stp x16,x17,[x0,#8*6]
911
+
912
+ sub x27,x5,#8*4
913
+ Lsqr4x_cond_copy:
914
+ sub x27,x27,#8*4
915
+ csel x14,x19,x6,lo
916
+ stp xzr,xzr,[x2,#8*0]
917
+ csel x15,x20,x7,lo
918
+ ldp x6,x7,[x3,#8*4]
919
+ ldp x19,x20,[x1,#8*4]
920
+ csel x16,x21,x8,lo
921
+ stp xzr,xzr,[x2,#8*2]
922
+ add x2,x2,#8*4
923
+ csel x17,x22,x9,lo
924
+ ldp x8,x9,[x3,#8*6]
925
+ ldp x21,x22,[x1,#8*6]
926
+ add x1,x1,#8*4
927
+ stp x14,x15,[x3,#8*0]
928
+ stp x16,x17,[x3,#8*2]
929
+ add x3,x3,#8*4
930
+ stp xzr,xzr,[x1,#8*0]
931
+ stp xzr,xzr,[x1,#8*2]
932
+ cbnz x27,Lsqr4x_cond_copy
933
+
934
+ csel x14,x19,x6,lo
935
+ stp xzr,xzr,[x2,#8*0]
936
+ csel x15,x20,x7,lo
937
+ stp xzr,xzr,[x2,#8*2]
938
+ csel x16,x21,x8,lo
939
+ csel x17,x22,x9,lo
940
+ stp x14,x15,[x3,#8*0]
941
+ stp x16,x17,[x3,#8*2]
942
+
943
+ b Lsqr8x_done
944
+
945
+ .align 4
946
+ Lsqr8x8_post_condition:
947
+ adc x28,xzr,xzr
948
+ ldr x30,[x29,#8] // pull return address
949
+ // x19-7,x28 hold result, x6-7 hold modulus
950
+ subs x6,x19,x6
951
+ ldr x1,[x29,#96] // pull rp
952
+ sbcs x7,x20,x7
953
+ stp xzr,xzr,[sp,#8*0]
954
+ sbcs x8,x21,x8
955
+ stp xzr,xzr,[sp,#8*2]
956
+ sbcs x9,x22,x9
957
+ stp xzr,xzr,[sp,#8*4]
958
+ sbcs x10,x23,x10
959
+ stp xzr,xzr,[sp,#8*6]
960
+ sbcs x11,x24,x11
961
+ stp xzr,xzr,[sp,#8*8]
962
+ sbcs x12,x25,x12
963
+ stp xzr,xzr,[sp,#8*10]
964
+ sbcs x13,x26,x13
965
+ stp xzr,xzr,[sp,#8*12]
966
+ sbcs x28,x28,xzr // did it borrow?
967
+ stp xzr,xzr,[sp,#8*14]
968
+
969
+ // x6-7 hold result-modulus
970
+ csel x6,x19,x6,lo
971
+ csel x7,x20,x7,lo
972
+ csel x8,x21,x8,lo
973
+ csel x9,x22,x9,lo
974
+ stp x6,x7,[x1,#8*0]
975
+ csel x10,x23,x10,lo
976
+ csel x11,x24,x11,lo
977
+ stp x8,x9,[x1,#8*2]
978
+ csel x12,x25,x12,lo
979
+ csel x13,x26,x13,lo
980
+ stp x10,x11,[x1,#8*4]
981
+ stp x12,x13,[x1,#8*6]
982
+
983
+ Lsqr8x_done:
984
+ ldp x19,x20,[x29,#16]
985
+ mov sp,x29
986
+ ldp x21,x22,[x29,#32]
987
+ // No return value
988
+ ldp x23,x24,[x29,#48]
989
+ ldp x25,x26,[x29,#64]
990
+ ldp x27,x28,[x29,#80]
991
+ ldr x29,[sp],#128
992
+ // x30 is popped earlier
993
+ AARCH64_VALIDATE_LINK_REGISTER
994
+ ret
995
+ .def Lmul4x_mont
996
+ .type 32
997
+ .endef
998
+ .align 5
999
+ Lmul4x_mont:
1000
+ // Not adding AARCH64_SIGN_LINK_REGISTER here because .Lmul4x_mont is jumped to
1001
+ // only from bn_mul_mont_words or __bn_mul8x_mont which have already signed the
1002
+ // return address.
1003
+ stp x29,x30,[sp,#-128]!
1004
+ add x29,sp,#0
1005
+ stp x19,x20,[sp,#16]
1006
+ stp x21,x22,[sp,#32]
1007
+ stp x23,x24,[sp,#48]
1008
+ stp x25,x26,[sp,#64]
1009
+ stp x27,x28,[sp,#80]
1010
+
1011
+ // This can allocate at most 8 * BN_MONTGOMERY_MAX_WORDS on the stack,
1012
+ // or 2 KiB. This fits well within a page, so it is not necessary to
1013
+ // fault pages in the correct order.
1014
+ sub x26,sp,x5,lsl#3
1015
+ lsl x5,x5,#3
1016
+ ldr x4,[x4] // *n0
1017
+ sub sp,x26,#8*4 // alloca
1018
+
1019
+ add x10,x2,x5
1020
+ add x27,x1,x5
1021
+ stp x0,x10,[x29,#96] // offload rp and &b[num]
1022
+
1023
+ ldr x24,[x2,#8*0] // b[0]
1024
+ ldp x6,x7,[x1,#8*0] // a[0..3]
1025
+ ldp x8,x9,[x1,#8*2]
1026
+ add x1,x1,#8*4
1027
+ mov x19,xzr
1028
+ mov x20,xzr
1029
+ mov x21,xzr
1030
+ mov x22,xzr
1031
+ ldp x14,x15,[x3,#8*0] // n[0..3]
1032
+ ldp x16,x17,[x3,#8*2]
1033
+ adds x3,x3,#8*4 // clear carry bit
1034
+ mov x0,xzr
1035
+ mov x28,#0
1036
+ mov x26,sp
1037
+
1038
+ Loop_mul4x_1st_reduction:
1039
+ mul x10,x6,x24 // lo(a[0..3]*b[0])
1040
+ adc x0,x0,xzr // modulo-scheduled
1041
+ mul x11,x7,x24
1042
+ add x28,x28,#8
1043
+ mul x12,x8,x24
1044
+ and x28,x28,#31
1045
+ mul x13,x9,x24
1046
+ adds x19,x19,x10
1047
+ umulh x10,x6,x24 // hi(a[0..3]*b[0])
1048
+ adcs x20,x20,x11
1049
+ mul x25,x19,x4 // t[0]*n0
1050
+ adcs x21,x21,x12
1051
+ umulh x11,x7,x24
1052
+ adcs x22,x22,x13
1053
+ umulh x12,x8,x24
1054
+ adc x23,xzr,xzr
1055
+ umulh x13,x9,x24
1056
+ ldr x24,[x2,x28] // next b[i] (or b[0])
1057
+ adds x20,x20,x10
1058
+ // (*) mul x10,x14,x25 // lo(n[0..3]*t[0]*n0)
1059
+ str x25,[x26],#8 // put aside t[0]*n0 for tail processing
1060
+ adcs x21,x21,x11
1061
+ mul x11,x15,x25
1062
+ adcs x22,x22,x12
1063
+ mul x12,x16,x25
1064
+ adc x23,x23,x13 // can't overflow
1065
+ mul x13,x17,x25
1066
+ // (*) adds xzr,x19,x10
1067
+ subs xzr,x19,#1 // (*)
1068
+ umulh x10,x14,x25 // hi(n[0..3]*t[0]*n0)
1069
+ adcs x19,x20,x11
1070
+ umulh x11,x15,x25
1071
+ adcs x20,x21,x12
1072
+ umulh x12,x16,x25
1073
+ adcs x21,x22,x13
1074
+ umulh x13,x17,x25
1075
+ adcs x22,x23,x0
1076
+ adc x0,xzr,xzr
1077
+ adds x19,x19,x10
1078
+ sub x10,x27,x1
1079
+ adcs x20,x20,x11
1080
+ adcs x21,x21,x12
1081
+ adcs x22,x22,x13
1082
+ //adc x0,x0,xzr
1083
+ cbnz x28,Loop_mul4x_1st_reduction
1084
+
1085
+ cbz x10,Lmul4x4_post_condition
1086
+
1087
+ ldp x6,x7,[x1,#8*0] // a[4..7]
1088
+ ldp x8,x9,[x1,#8*2]
1089
+ add x1,x1,#8*4
1090
+ ldr x25,[sp] // a[0]*n0
1091
+ ldp x14,x15,[x3,#8*0] // n[4..7]
1092
+ ldp x16,x17,[x3,#8*2]
1093
+ add x3,x3,#8*4
1094
+
1095
+ Loop_mul4x_1st_tail:
1096
+ mul x10,x6,x24 // lo(a[4..7]*b[i])
1097
+ adc x0,x0,xzr // modulo-scheduled
1098
+ mul x11,x7,x24
1099
+ add x28,x28,#8
1100
+ mul x12,x8,x24
1101
+ and x28,x28,#31
1102
+ mul x13,x9,x24
1103
+ adds x19,x19,x10
1104
+ umulh x10,x6,x24 // hi(a[4..7]*b[i])
1105
+ adcs x20,x20,x11
1106
+ umulh x11,x7,x24
1107
+ adcs x21,x21,x12
1108
+ umulh x12,x8,x24
1109
+ adcs x22,x22,x13
1110
+ umulh x13,x9,x24
1111
+ adc x23,xzr,xzr
1112
+ ldr x24,[x2,x28] // next b[i] (or b[0])
1113
+ adds x20,x20,x10
1114
+ mul x10,x14,x25 // lo(n[4..7]*a[0]*n0)
1115
+ adcs x21,x21,x11
1116
+ mul x11,x15,x25
1117
+ adcs x22,x22,x12
1118
+ mul x12,x16,x25
1119
+ adc x23,x23,x13 // can't overflow
1120
+ mul x13,x17,x25
1121
+ adds x19,x19,x10
1122
+ umulh x10,x14,x25 // hi(n[4..7]*a[0]*n0)
1123
+ adcs x20,x20,x11
1124
+ umulh x11,x15,x25
1125
+ adcs x21,x21,x12
1126
+ umulh x12,x16,x25
1127
+ adcs x22,x22,x13
1128
+ adcs x23,x23,x0
1129
+ umulh x13,x17,x25
1130
+ adc x0,xzr,xzr
1131
+ ldr x25,[sp,x28] // next t[0]*n0
1132
+ str x19,[x26],#8 // result!!!
1133
+ adds x19,x20,x10
1134
+ sub x10,x27,x1 // done yet?
1135
+ adcs x20,x21,x11
1136
+ adcs x21,x22,x12
1137
+ adcs x22,x23,x13
1138
+ //adc x0,x0,xzr
1139
+ cbnz x28,Loop_mul4x_1st_tail
1140
+
1141
+ sub x11,x27,x5 // rewound x1
1142
+ cbz x10,Lmul4x_proceed
1143
+
1144
+ ldp x6,x7,[x1,#8*0]
1145
+ ldp x8,x9,[x1,#8*2]
1146
+ add x1,x1,#8*4
1147
+ ldp x14,x15,[x3,#8*0]
1148
+ ldp x16,x17,[x3,#8*2]
1149
+ add x3,x3,#8*4
1150
+ b Loop_mul4x_1st_tail
1151
+
1152
+ .align 5
1153
+ Lmul4x_proceed:
1154
+ ldr x24,[x2,#8*4]! // *++b
1155
+ adc x30,x0,xzr
1156
+ ldp x6,x7,[x11,#8*0] // a[0..3]
1157
+ sub x3,x3,x5 // rewind np
1158
+ ldp x8,x9,[x11,#8*2]
1159
+ add x1,x11,#8*4
1160
+
1161
+ stp x19,x20,[x26,#8*0] // result!!!
1162
+ ldp x19,x20,[sp,#8*4] // t[0..3]
1163
+ stp x21,x22,[x26,#8*2] // result!!!
1164
+ ldp x21,x22,[sp,#8*6]
1165
+
1166
+ ldp x14,x15,[x3,#8*0] // n[0..3]
1167
+ mov x26,sp
1168
+ ldp x16,x17,[x3,#8*2]
1169
+ adds x3,x3,#8*4 // clear carry bit
1170
+ mov x0,xzr
1171
+
1172
+ .align 4
1173
+ Loop_mul4x_reduction:
1174
+ mul x10,x6,x24 // lo(a[0..3]*b[4])
1175
+ adc x0,x0,xzr // modulo-scheduled
1176
+ mul x11,x7,x24
1177
+ add x28,x28,#8
1178
+ mul x12,x8,x24
1179
+ and x28,x28,#31
1180
+ mul x13,x9,x24
1181
+ adds x19,x19,x10
1182
+ umulh x10,x6,x24 // hi(a[0..3]*b[4])
1183
+ adcs x20,x20,x11
1184
+ mul x25,x19,x4 // t[0]*n0
1185
+ adcs x21,x21,x12
1186
+ umulh x11,x7,x24
1187
+ adcs x22,x22,x13
1188
+ umulh x12,x8,x24
1189
+ adc x23,xzr,xzr
1190
+ umulh x13,x9,x24
1191
+ ldr x24,[x2,x28] // next b[i]
1192
+ adds x20,x20,x10
1193
+ // (*) mul x10,x14,x25
1194
+ str x25,[x26],#8 // put aside t[0]*n0 for tail processing
1195
+ adcs x21,x21,x11
1196
+ mul x11,x15,x25 // lo(n[0..3]*t[0]*n0
1197
+ adcs x22,x22,x12
1198
+ mul x12,x16,x25
1199
+ adc x23,x23,x13 // can't overflow
1200
+ mul x13,x17,x25
1201
+ // (*) adds xzr,x19,x10
1202
+ subs xzr,x19,#1 // (*)
1203
+ umulh x10,x14,x25 // hi(n[0..3]*t[0]*n0
1204
+ adcs x19,x20,x11
1205
+ umulh x11,x15,x25
1206
+ adcs x20,x21,x12
1207
+ umulh x12,x16,x25
1208
+ adcs x21,x22,x13
1209
+ umulh x13,x17,x25
1210
+ adcs x22,x23,x0
1211
+ adc x0,xzr,xzr
1212
+ adds x19,x19,x10
1213
+ adcs x20,x20,x11
1214
+ adcs x21,x21,x12
1215
+ adcs x22,x22,x13
1216
+ //adc x0,x0,xzr
1217
+ cbnz x28,Loop_mul4x_reduction
1218
+
1219
+ adc x0,x0,xzr
1220
+ ldp x10,x11,[x26,#8*4] // t[4..7]
1221
+ ldp x12,x13,[x26,#8*6]
1222
+ ldp x6,x7,[x1,#8*0] // a[4..7]
1223
+ ldp x8,x9,[x1,#8*2]
1224
+ add x1,x1,#8*4
1225
+ adds x19,x19,x10
1226
+ adcs x20,x20,x11
1227
+ adcs x21,x21,x12
1228
+ adcs x22,x22,x13
1229
+ //adc x0,x0,xzr
1230
+
1231
+ ldr x25,[sp] // t[0]*n0
1232
+ ldp x14,x15,[x3,#8*0] // n[4..7]
1233
+ ldp x16,x17,[x3,#8*2]
1234
+ add x3,x3,#8*4
1235
+
1236
+ .align 4
1237
+ Loop_mul4x_tail:
1238
+ mul x10,x6,x24 // lo(a[4..7]*b[4])
1239
+ adc x0,x0,xzr // modulo-scheduled
1240
+ mul x11,x7,x24
1241
+ add x28,x28,#8
1242
+ mul x12,x8,x24
1243
+ and x28,x28,#31
1244
+ mul x13,x9,x24
1245
+ adds x19,x19,x10
1246
+ umulh x10,x6,x24 // hi(a[4..7]*b[4])
1247
+ adcs x20,x20,x11
1248
+ umulh x11,x7,x24
1249
+ adcs x21,x21,x12
1250
+ umulh x12,x8,x24
1251
+ adcs x22,x22,x13
1252
+ umulh x13,x9,x24
1253
+ adc x23,xzr,xzr
1254
+ ldr x24,[x2,x28] // next b[i]
1255
+ adds x20,x20,x10
1256
+ mul x10,x14,x25 // lo(n[4..7]*t[0]*n0)
1257
+ adcs x21,x21,x11
1258
+ mul x11,x15,x25
1259
+ adcs x22,x22,x12
1260
+ mul x12,x16,x25
1261
+ adc x23,x23,x13 // can't overflow
1262
+ mul x13,x17,x25
1263
+ adds x19,x19,x10
1264
+ umulh x10,x14,x25 // hi(n[4..7]*t[0]*n0)
1265
+ adcs x20,x20,x11
1266
+ umulh x11,x15,x25
1267
+ adcs x21,x21,x12
1268
+ umulh x12,x16,x25
1269
+ adcs x22,x22,x13
1270
+ umulh x13,x17,x25
1271
+ adcs x23,x23,x0
1272
+ ldr x25,[sp,x28] // next a[0]*n0
1273
+ adc x0,xzr,xzr
1274
+ str x19,[x26],#8 // result!!!
1275
+ adds x19,x20,x10
1276
+ sub x10,x27,x1 // done yet?
1277
+ adcs x20,x21,x11
1278
+ adcs x21,x22,x12
1279
+ adcs x22,x23,x13
1280
+ //adc x0,x0,xzr
1281
+ cbnz x28,Loop_mul4x_tail
1282
+
1283
+ sub x11,x3,x5 // rewound np?
1284
+ adc x0,x0,xzr
1285
+ cbz x10,Loop_mul4x_break
1286
+
1287
+ ldp x10,x11,[x26,#8*4]
1288
+ ldp x12,x13,[x26,#8*6]
1289
+ ldp x6,x7,[x1,#8*0]
1290
+ ldp x8,x9,[x1,#8*2]
1291
+ add x1,x1,#8*4
1292
+ adds x19,x19,x10
1293
+ adcs x20,x20,x11
1294
+ adcs x21,x21,x12
1295
+ adcs x22,x22,x13
1296
+ //adc x0,x0,xzr
1297
+ ldp x14,x15,[x3,#8*0]
1298
+ ldp x16,x17,[x3,#8*2]
1299
+ add x3,x3,#8*4
1300
+ b Loop_mul4x_tail
1301
+
1302
+ .align 4
1303
+ Loop_mul4x_break:
1304
+ ldp x12,x13,[x29,#96] // pull rp and &b[num]
1305
+ adds x19,x19,x30
1306
+ add x2,x2,#8*4 // bp++
1307
+ adcs x20,x20,xzr
1308
+ sub x1,x1,x5 // rewind ap
1309
+ adcs x21,x21,xzr
1310
+ stp x19,x20,[x26,#8*0] // result!!!
1311
+ adcs x22,x22,xzr
1312
+ ldp x19,x20,[sp,#8*4] // t[0..3]
1313
+ adc x30,x0,xzr
1314
+ stp x21,x22,[x26,#8*2] // result!!!
1315
+ cmp x2,x13 // done yet?
1316
+ ldp x21,x22,[sp,#8*6]
1317
+ ldp x14,x15,[x11,#8*0] // n[0..3]
1318
+ ldp x16,x17,[x11,#8*2]
1319
+ add x3,x11,#8*4
1320
+ b.eq Lmul4x_post
1321
+
1322
+ ldr x24,[x2]
1323
+ ldp x6,x7,[x1,#8*0] // a[0..3]
1324
+ ldp x8,x9,[x1,#8*2]
1325
+ adds x1,x1,#8*4 // clear carry bit
1326
+ mov x0,xzr
1327
+ mov x26,sp
1328
+ b Loop_mul4x_reduction
1329
+
1330
+ .align 4
1331
+ Lmul4x_post:
1332
+ // Final step. We see if result is larger than modulus, and
1333
+ // if it is, subtract the modulus. But comparison implies
1334
+ // subtraction. So we subtract modulus, see if it borrowed,
1335
+ // and conditionally copy original value.
1336
+ mov x0,x12
1337
+ mov x27,x12 // x0 copy
1338
+ subs x10,x19,x14
1339
+ add x26,sp,#8*8
1340
+ sbcs x11,x20,x15
1341
+ sub x28,x5,#8*4
1342
+
1343
+ Lmul4x_sub:
1344
+ sbcs x12,x21,x16
1345
+ ldp x14,x15,[x3,#8*0]
1346
+ sub x28,x28,#8*4
1347
+ ldp x19,x20,[x26,#8*0]
1348
+ sbcs x13,x22,x17
1349
+ ldp x16,x17,[x3,#8*2]
1350
+ add x3,x3,#8*4
1351
+ ldp x21,x22,[x26,#8*2]
1352
+ add x26,x26,#8*4
1353
+ stp x10,x11,[x0,#8*0]
1354
+ sbcs x10,x19,x14
1355
+ stp x12,x13,[x0,#8*2]
1356
+ add x0,x0,#8*4
1357
+ sbcs x11,x20,x15
1358
+ cbnz x28,Lmul4x_sub
1359
+
1360
+ sbcs x12,x21,x16
1361
+ mov x26,sp
1362
+ add x1,sp,#8*4
1363
+ ldp x6,x7,[x27,#8*0]
1364
+ sbcs x13,x22,x17
1365
+ stp x10,x11,[x0,#8*0]
1366
+ ldp x8,x9,[x27,#8*2]
1367
+ stp x12,x13,[x0,#8*2]
1368
+ ldp x19,x20,[x1,#8*0]
1369
+ ldp x21,x22,[x1,#8*2]
1370
+ sbcs xzr,x30,xzr // did it borrow?
1371
+ ldr x30,[x29,#8] // pull return address
1372
+
1373
+ sub x28,x5,#8*4
1374
+ Lmul4x_cond_copy:
1375
+ sub x28,x28,#8*4
1376
+ csel x10,x19,x6,lo
1377
+ stp xzr,xzr,[x26,#8*0]
1378
+ csel x11,x20,x7,lo
1379
+ ldp x6,x7,[x27,#8*4]
1380
+ ldp x19,x20,[x1,#8*4]
1381
+ csel x12,x21,x8,lo
1382
+ stp xzr,xzr,[x26,#8*2]
1383
+ add x26,x26,#8*4
1384
+ csel x13,x22,x9,lo
1385
+ ldp x8,x9,[x27,#8*6]
1386
+ ldp x21,x22,[x1,#8*6]
1387
+ add x1,x1,#8*4
1388
+ stp x10,x11,[x27,#8*0]
1389
+ stp x12,x13,[x27,#8*2]
1390
+ add x27,x27,#8*4
1391
+ cbnz x28,Lmul4x_cond_copy
1392
+
1393
+ csel x10,x19,x6,lo
1394
+ stp xzr,xzr,[x26,#8*0]
1395
+ csel x11,x20,x7,lo
1396
+ stp xzr,xzr,[x26,#8*2]
1397
+ csel x12,x21,x8,lo
1398
+ stp xzr,xzr,[x26,#8*3]
1399
+ csel x13,x22,x9,lo
1400
+ stp xzr,xzr,[x26,#8*4]
1401
+ stp x10,x11,[x27,#8*0]
1402
+ stp x12,x13,[x27,#8*2]
1403
+
1404
+ b Lmul4x_done
1405
+
1406
+ .align 4
1407
+ Lmul4x4_post_condition:
1408
+ adc x0,x0,xzr
1409
+ ldr x1,[x29,#96] // pull rp
1410
+ // x19-3,x0 hold result, x14-7 hold modulus
1411
+ subs x6,x19,x14
1412
+ ldr x30,[x29,#8] // pull return address
1413
+ sbcs x7,x20,x15
1414
+ stp xzr,xzr,[sp,#8*0]
1415
+ sbcs x8,x21,x16
1416
+ stp xzr,xzr,[sp,#8*2]
1417
+ sbcs x9,x22,x17
1418
+ stp xzr,xzr,[sp,#8*4]
1419
+ sbcs xzr,x0,xzr // did it borrow?
1420
+ stp xzr,xzr,[sp,#8*6]
1421
+
1422
+ // x6-3 hold result-modulus
1423
+ csel x6,x19,x6,lo
1424
+ csel x7,x20,x7,lo
1425
+ csel x8,x21,x8,lo
1426
+ csel x9,x22,x9,lo
1427
+ stp x6,x7,[x1,#8*0]
1428
+ stp x8,x9,[x1,#8*2]
1429
+
1430
+ Lmul4x_done:
1431
+ ldp x19,x20,[x29,#16]
1432
+ mov sp,x29
1433
+ ldp x21,x22,[x29,#32]
1434
+ // No return value
1435
+ ldp x23,x24,[x29,#48]
1436
+ ldp x25,x26,[x29,#64]
1437
+ ldp x27,x28,[x29,#80]
1438
+ ldr x29,[sp],#128
1439
+ // x30 is popped earlier
1440
+ AARCH64_VALIDATE_LINK_REGISTER
1441
+ ret
1442
+
1443
+ .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,65,82,77,118,56,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
1444
+ .align 2
1445
+ .align 4
1446
+ #endif // !OPENSSL_NO_ASM && defined(OPENSSL_AARCH64) && defined(_WIN32)