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,1744 @@
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(__APPLE__)
7
+ .section __TEXT,__const
8
+ .align 5
9
+ p256_constants:
10
+ Lpoly:
11
+ .quad 0xffffffffffffffff,0x00000000ffffffff,0x0000000000000000,0xffffffff00000001
12
+ LRR: // 2^512 mod P precomputed for NIST P256 polynomial
13
+ .quad 0x0000000000000003,0xfffffffbffffffff,0xfffffffffffffffe,0x00000004fffffffd
14
+ Lone_mont:
15
+ .quad 0x0000000000000001,0xffffffff00000000,0xffffffffffffffff,0x00000000fffffffe
16
+ Lone:
17
+ .quad 1,0,0,0
18
+ Lord:
19
+ .quad 0xf3b9cac2fc632551,0xbce6faada7179e84,0xffffffffffffffff,0xffffffff00000000
20
+ LordK:
21
+ .quad 0xccd1c8aaee00bc4f
22
+ .byte 69,67,80,95,78,73,83,84,90,50,53,54,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
23
+ .align 2
24
+ .text
25
+
26
+ // void ecp_nistz256_mul_mont(BN_ULONG x0[4],const BN_ULONG x1[4],
27
+ // const BN_ULONG x2[4]);
28
+ .globl _ecp_nistz256_mul_mont
29
+ .private_extern _ecp_nistz256_mul_mont
30
+
31
+ .align 4
32
+ _ecp_nistz256_mul_mont:
33
+ AARCH64_SIGN_LINK_REGISTER
34
+ stp x29,x30,[sp,#-32]!
35
+ add x29,sp,#0
36
+ stp x19,x20,[sp,#16]
37
+
38
+ ldr x3,[x2] // bp[0]
39
+ ldp x4,x5,[x1]
40
+ ldp x6,x7,[x1,#16]
41
+ adrp x13,Lpoly@PAGE
42
+ add x13,x13,Lpoly@PAGEOFF
43
+ ldr x12,[x13,#8]
44
+ ldr x13,[x13,#24]
45
+
46
+ bl __ecp_nistz256_mul_mont
47
+
48
+ ldp x19,x20,[sp,#16]
49
+ ldp x29,x30,[sp],#32
50
+ AARCH64_VALIDATE_LINK_REGISTER
51
+ ret
52
+
53
+
54
+ // void ecp_nistz256_sqr_mont(BN_ULONG x0[4],const BN_ULONG x1[4]);
55
+ .globl _ecp_nistz256_sqr_mont
56
+ .private_extern _ecp_nistz256_sqr_mont
57
+
58
+ .align 4
59
+ .alt_entry _ecp_nistz256_sqr_mont
60
+ _ecp_nistz256_sqr_mont:
61
+ AARCH64_SIGN_LINK_REGISTER
62
+ stp x29,x30,[sp,#-32]!
63
+ add x29,sp,#0
64
+ stp x19,x20,[sp,#16]
65
+
66
+ ldp x4,x5,[x1]
67
+ ldp x6,x7,[x1,#16]
68
+ adrp x13,Lpoly@PAGE
69
+ add x13,x13,Lpoly@PAGEOFF
70
+ ldr x12,[x13,#8]
71
+ ldr x13,[x13,#24]
72
+
73
+ bl __ecp_nistz256_sqr_mont
74
+
75
+ ldp x19,x20,[sp,#16]
76
+ ldp x29,x30,[sp],#32
77
+ AARCH64_VALIDATE_LINK_REGISTER
78
+ ret
79
+
80
+
81
+ // void ecp_nistz256_div_by_2(BN_ULONG x0[4],const BN_ULONG x1[4]);
82
+ .globl _ecp_nistz256_div_by_2
83
+ .private_extern _ecp_nistz256_div_by_2
84
+
85
+ .align 4
86
+ .alt_entry _ecp_nistz256_div_by_2
87
+ _ecp_nistz256_div_by_2:
88
+ AARCH64_SIGN_LINK_REGISTER
89
+ stp x29,x30,[sp,#-16]!
90
+ add x29,sp,#0
91
+
92
+ ldp x14,x15,[x1]
93
+ ldp x16,x17,[x1,#16]
94
+ adrp x13,Lpoly@PAGE
95
+ add x13,x13,Lpoly@PAGEOFF
96
+ ldr x12,[x13,#8]
97
+ ldr x13,[x13,#24]
98
+
99
+ bl __ecp_nistz256_div_by_2
100
+
101
+ ldp x29,x30,[sp],#16
102
+ AARCH64_VALIDATE_LINK_REGISTER
103
+ ret
104
+
105
+
106
+ // void ecp_nistz256_mul_by_2(BN_ULONG x0[4],const BN_ULONG x1[4]);
107
+ .globl _ecp_nistz256_mul_by_2
108
+ .private_extern _ecp_nistz256_mul_by_2
109
+
110
+ .align 4
111
+ .alt_entry _ecp_nistz256_mul_by_2
112
+ _ecp_nistz256_mul_by_2:
113
+ AARCH64_SIGN_LINK_REGISTER
114
+ stp x29,x30,[sp,#-16]!
115
+ add x29,sp,#0
116
+
117
+ ldp x14,x15,[x1]
118
+ ldp x16,x17,[x1,#16]
119
+ adrp x13,Lpoly@PAGE
120
+ add x13,x13,Lpoly@PAGEOFF
121
+ ldr x12,[x13,#8]
122
+ ldr x13,[x13,#24]
123
+ mov x8,x14
124
+ mov x9,x15
125
+ mov x10,x16
126
+ mov x11,x17
127
+
128
+ bl __ecp_nistz256_add_to // ret = a+a // 2*a
129
+
130
+ ldp x29,x30,[sp],#16
131
+ AARCH64_VALIDATE_LINK_REGISTER
132
+ ret
133
+
134
+
135
+ // void ecp_nistz256_mul_by_3(BN_ULONG x0[4],const BN_ULONG x1[4]);
136
+ .globl _ecp_nistz256_mul_by_3
137
+ .private_extern _ecp_nistz256_mul_by_3
138
+
139
+ .align 4
140
+ .alt_entry _ecp_nistz256_mul_by_3
141
+ _ecp_nistz256_mul_by_3:
142
+ AARCH64_SIGN_LINK_REGISTER
143
+ stp x29,x30,[sp,#-16]!
144
+ add x29,sp,#0
145
+
146
+ ldp x14,x15,[x1]
147
+ ldp x16,x17,[x1,#16]
148
+ adrp x13,Lpoly@PAGE
149
+ add x13,x13,Lpoly@PAGEOFF
150
+ ldr x12,[x13,#8]
151
+ ldr x13,[x13,#24]
152
+ mov x8,x14
153
+ mov x9,x15
154
+ mov x10,x16
155
+ mov x11,x17
156
+ mov x4,x14
157
+ mov x5,x15
158
+ mov x6,x16
159
+ mov x7,x17
160
+
161
+ bl __ecp_nistz256_add_to // ret = a+a // 2*a
162
+
163
+ mov x8,x4
164
+ mov x9,x5
165
+ mov x10,x6
166
+ mov x11,x7
167
+
168
+ bl __ecp_nistz256_add_to // ret += a // 2*a+a=3*a
169
+
170
+ ldp x29,x30,[sp],#16
171
+ AARCH64_VALIDATE_LINK_REGISTER
172
+ ret
173
+
174
+
175
+ // void ecp_nistz256_sub(BN_ULONG x0[4],const BN_ULONG x1[4],
176
+ // const BN_ULONG x2[4]);
177
+ .globl _ecp_nistz256_sub
178
+ .private_extern _ecp_nistz256_sub
179
+
180
+ .align 4
181
+ .alt_entry _ecp_nistz256_sub
182
+ _ecp_nistz256_sub:
183
+ AARCH64_SIGN_LINK_REGISTER
184
+ stp x29,x30,[sp,#-16]!
185
+ add x29,sp,#0
186
+
187
+ ldp x14,x15,[x1]
188
+ ldp x16,x17,[x1,#16]
189
+ adrp x13,Lpoly@PAGE
190
+ add x13,x13,Lpoly@PAGEOFF
191
+ ldr x12,[x13,#8]
192
+ ldr x13,[x13,#24]
193
+
194
+ bl __ecp_nistz256_sub_from
195
+
196
+ ldp x29,x30,[sp],#16
197
+ AARCH64_VALIDATE_LINK_REGISTER
198
+ ret
199
+
200
+
201
+ // void ecp_nistz256_neg(BN_ULONG x0[4],const BN_ULONG x1[4]);
202
+ .globl _ecp_nistz256_neg
203
+ .private_extern _ecp_nistz256_neg
204
+
205
+ .align 4
206
+ .alt_entry _ecp_nistz256_neg
207
+ _ecp_nistz256_neg:
208
+ AARCH64_SIGN_LINK_REGISTER
209
+ stp x29,x30,[sp,#-16]!
210
+ add x29,sp,#0
211
+
212
+ mov x2,x1
213
+ mov x14,xzr // a = 0
214
+ mov x15,xzr
215
+ mov x16,xzr
216
+ mov x17,xzr
217
+ adrp x13,Lpoly@PAGE
218
+ add x13,x13,Lpoly@PAGEOFF
219
+ ldr x12,[x13,#8]
220
+ ldr x13,[x13,#24]
221
+
222
+ bl __ecp_nistz256_sub_from
223
+
224
+ ldp x29,x30,[sp],#16
225
+ AARCH64_VALIDATE_LINK_REGISTER
226
+ ret
227
+
228
+
229
+ // note that __ecp_nistz256_mul_mont expects a[0-3] input pre-loaded
230
+ // to x4-x7 and b[0] - to x3
231
+
232
+ .align 4
233
+ .alt_entry __ecp_nistz256_mul_mont
234
+ __ecp_nistz256_mul_mont:
235
+ mul x14,x4,x3 // a[0]*b[0]
236
+ umulh x8,x4,x3
237
+
238
+ mul x15,x5,x3 // a[1]*b[0]
239
+ umulh x9,x5,x3
240
+
241
+ mul x16,x6,x3 // a[2]*b[0]
242
+ umulh x10,x6,x3
243
+
244
+ mul x17,x7,x3 // a[3]*b[0]
245
+ umulh x11,x7,x3
246
+ ldr x3,[x2,#8] // b[1]
247
+
248
+ adds x15,x15,x8 // accumulate high parts of multiplication
249
+ lsl x8,x14,#32
250
+ adcs x16,x16,x9
251
+ lsr x9,x14,#32
252
+ adcs x17,x17,x10
253
+ adc x19,xzr,x11
254
+ mov x20,xzr
255
+ subs x10,x14,x8 // "*0xffff0001"
256
+ sbc x11,x14,x9
257
+ adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0]
258
+ mul x8,x4,x3 // lo(a[0]*b[i])
259
+ adcs x15,x16,x9
260
+ mul x9,x5,x3 // lo(a[1]*b[i])
261
+ adcs x16,x17,x10 // +=acc[0]*0xffff0001
262
+ mul x10,x6,x3 // lo(a[2]*b[i])
263
+ adcs x17,x19,x11
264
+ mul x11,x7,x3 // lo(a[3]*b[i])
265
+ adc x19,x20,xzr
266
+
267
+ adds x14,x14,x8 // accumulate low parts of multiplication
268
+ umulh x8,x4,x3 // hi(a[0]*b[i])
269
+ adcs x15,x15,x9
270
+ umulh x9,x5,x3 // hi(a[1]*b[i])
271
+ adcs x16,x16,x10
272
+ umulh x10,x6,x3 // hi(a[2]*b[i])
273
+ adcs x17,x17,x11
274
+ umulh x11,x7,x3 // hi(a[3]*b[i])
275
+ adc x19,x19,xzr
276
+ ldr x3,[x2,#8*(1+1)] // b[1+1]
277
+ adds x15,x15,x8 // accumulate high parts of multiplication
278
+ lsl x8,x14,#32
279
+ adcs x16,x16,x9
280
+ lsr x9,x14,#32
281
+ adcs x17,x17,x10
282
+ adcs x19,x19,x11
283
+ adc x20,xzr,xzr
284
+ subs x10,x14,x8 // "*0xffff0001"
285
+ sbc x11,x14,x9
286
+ adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0]
287
+ mul x8,x4,x3 // lo(a[0]*b[i])
288
+ adcs x15,x16,x9
289
+ mul x9,x5,x3 // lo(a[1]*b[i])
290
+ adcs x16,x17,x10 // +=acc[0]*0xffff0001
291
+ mul x10,x6,x3 // lo(a[2]*b[i])
292
+ adcs x17,x19,x11
293
+ mul x11,x7,x3 // lo(a[3]*b[i])
294
+ adc x19,x20,xzr
295
+
296
+ adds x14,x14,x8 // accumulate low parts of multiplication
297
+ umulh x8,x4,x3 // hi(a[0]*b[i])
298
+ adcs x15,x15,x9
299
+ umulh x9,x5,x3 // hi(a[1]*b[i])
300
+ adcs x16,x16,x10
301
+ umulh x10,x6,x3 // hi(a[2]*b[i])
302
+ adcs x17,x17,x11
303
+ umulh x11,x7,x3 // hi(a[3]*b[i])
304
+ adc x19,x19,xzr
305
+ ldr x3,[x2,#8*(2+1)] // b[2+1]
306
+ adds x15,x15,x8 // accumulate high parts of multiplication
307
+ lsl x8,x14,#32
308
+ adcs x16,x16,x9
309
+ lsr x9,x14,#32
310
+ adcs x17,x17,x10
311
+ adcs x19,x19,x11
312
+ adc x20,xzr,xzr
313
+ subs x10,x14,x8 // "*0xffff0001"
314
+ sbc x11,x14,x9
315
+ adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0]
316
+ mul x8,x4,x3 // lo(a[0]*b[i])
317
+ adcs x15,x16,x9
318
+ mul x9,x5,x3 // lo(a[1]*b[i])
319
+ adcs x16,x17,x10 // +=acc[0]*0xffff0001
320
+ mul x10,x6,x3 // lo(a[2]*b[i])
321
+ adcs x17,x19,x11
322
+ mul x11,x7,x3 // lo(a[3]*b[i])
323
+ adc x19,x20,xzr
324
+
325
+ adds x14,x14,x8 // accumulate low parts of multiplication
326
+ umulh x8,x4,x3 // hi(a[0]*b[i])
327
+ adcs x15,x15,x9
328
+ umulh x9,x5,x3 // hi(a[1]*b[i])
329
+ adcs x16,x16,x10
330
+ umulh x10,x6,x3 // hi(a[2]*b[i])
331
+ adcs x17,x17,x11
332
+ umulh x11,x7,x3 // hi(a[3]*b[i])
333
+ adc x19,x19,xzr
334
+ adds x15,x15,x8 // accumulate high parts of multiplication
335
+ lsl x8,x14,#32
336
+ adcs x16,x16,x9
337
+ lsr x9,x14,#32
338
+ adcs x17,x17,x10
339
+ adcs x19,x19,x11
340
+ adc x20,xzr,xzr
341
+ // last reduction
342
+ subs x10,x14,x8 // "*0xffff0001"
343
+ sbc x11,x14,x9
344
+ adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0]
345
+ adcs x15,x16,x9
346
+ adcs x16,x17,x10 // +=acc[0]*0xffff0001
347
+ adcs x17,x19,x11
348
+ adc x19,x20,xzr
349
+
350
+ adds x8,x14,#1 // subs x8,x14,#-1 // tmp = ret-modulus
351
+ sbcs x9,x15,x12
352
+ sbcs x10,x16,xzr
353
+ sbcs x11,x17,x13
354
+ sbcs xzr,x19,xzr // did it borrow?
355
+
356
+ csel x14,x14,x8,lo // ret = borrow ? ret : ret-modulus
357
+ csel x15,x15,x9,lo
358
+ csel x16,x16,x10,lo
359
+ stp x14,x15,[x0]
360
+ csel x17,x17,x11,lo
361
+ stp x16,x17,[x0,#16]
362
+
363
+ ret
364
+
365
+
366
+ // note that __ecp_nistz256_sqr_mont expects a[0-3] input pre-loaded
367
+ // to x4-x7
368
+
369
+ .align 4
370
+ .alt_entry __ecp_nistz256_sqr_mont
371
+ __ecp_nistz256_sqr_mont:
372
+ // | | | | | |a1*a0| |
373
+ // | | | | |a2*a0| | |
374
+ // | |a3*a2|a3*a0| | | |
375
+ // | | | |a2*a1| | | |
376
+ // | | |a3*a1| | | | |
377
+ // *| | | | | | | | 2|
378
+ // +|a3*a3|a2*a2|a1*a1|a0*a0|
379
+ // |--+--+--+--+--+--+--+--|
380
+ // |A7|A6|A5|A4|A3|A2|A1|A0|, where Ax is , i.e. follow
381
+ //
382
+ // "can't overflow" below mark carrying into high part of
383
+ // multiplication result, which can't overflow, because it
384
+ // can never be all ones.
385
+
386
+ mul x15,x5,x4 // a[1]*a[0]
387
+ umulh x9,x5,x4
388
+ mul x16,x6,x4 // a[2]*a[0]
389
+ umulh x10,x6,x4
390
+ mul x17,x7,x4 // a[3]*a[0]
391
+ umulh x19,x7,x4
392
+
393
+ adds x16,x16,x9 // accumulate high parts of multiplication
394
+ mul x8,x6,x5 // a[2]*a[1]
395
+ umulh x9,x6,x5
396
+ adcs x17,x17,x10
397
+ mul x10,x7,x5 // a[3]*a[1]
398
+ umulh x11,x7,x5
399
+ adc x19,x19,xzr // can't overflow
400
+
401
+ mul x20,x7,x6 // a[3]*a[2]
402
+ umulh x1,x7,x6
403
+
404
+ adds x9,x9,x10 // accumulate high parts of multiplication
405
+ mul x14,x4,x4 // a[0]*a[0]
406
+ adc x10,x11,xzr // can't overflow
407
+
408
+ adds x17,x17,x8 // accumulate low parts of multiplication
409
+ umulh x4,x4,x4
410
+ adcs x19,x19,x9
411
+ mul x9,x5,x5 // a[1]*a[1]
412
+ adcs x20,x20,x10
413
+ umulh x5,x5,x5
414
+ adc x1,x1,xzr // can't overflow
415
+
416
+ adds x15,x15,x15 // acc[1-6]*=2
417
+ mul x10,x6,x6 // a[2]*a[2]
418
+ adcs x16,x16,x16
419
+ umulh x6,x6,x6
420
+ adcs x17,x17,x17
421
+ mul x11,x7,x7 // a[3]*a[3]
422
+ adcs x19,x19,x19
423
+ umulh x7,x7,x7
424
+ adcs x20,x20,x20
425
+ adcs x1,x1,x1
426
+ adc x2,xzr,xzr
427
+
428
+ adds x15,x15,x4 // +a[i]*a[i]
429
+ adcs x16,x16,x9
430
+ adcs x17,x17,x5
431
+ adcs x19,x19,x10
432
+ adcs x20,x20,x6
433
+ lsl x8,x14,#32
434
+ adcs x1,x1,x11
435
+ lsr x9,x14,#32
436
+ adc x2,x2,x7
437
+ subs x10,x14,x8 // "*0xffff0001"
438
+ sbc x11,x14,x9
439
+ adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0]
440
+ adcs x15,x16,x9
441
+ lsl x8,x14,#32
442
+ adcs x16,x17,x10 // +=acc[0]*0xffff0001
443
+ lsr x9,x14,#32
444
+ adc x17,x11,xzr // can't overflow
445
+ subs x10,x14,x8 // "*0xffff0001"
446
+ sbc x11,x14,x9
447
+ adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0]
448
+ adcs x15,x16,x9
449
+ lsl x8,x14,#32
450
+ adcs x16,x17,x10 // +=acc[0]*0xffff0001
451
+ lsr x9,x14,#32
452
+ adc x17,x11,xzr // can't overflow
453
+ subs x10,x14,x8 // "*0xffff0001"
454
+ sbc x11,x14,x9
455
+ adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0]
456
+ adcs x15,x16,x9
457
+ lsl x8,x14,#32
458
+ adcs x16,x17,x10 // +=acc[0]*0xffff0001
459
+ lsr x9,x14,#32
460
+ adc x17,x11,xzr // can't overflow
461
+ subs x10,x14,x8 // "*0xffff0001"
462
+ sbc x11,x14,x9
463
+ adds x14,x15,x8 // +=acc[0]<<96 and omit acc[0]
464
+ adcs x15,x16,x9
465
+ adcs x16,x17,x10 // +=acc[0]*0xffff0001
466
+ adc x17,x11,xzr // can't overflow
467
+
468
+ adds x14,x14,x19 // accumulate upper half
469
+ adcs x15,x15,x20
470
+ adcs x16,x16,x1
471
+ adcs x17,x17,x2
472
+ adc x19,xzr,xzr
473
+
474
+ adds x8,x14,#1 // subs x8,x14,#-1 // tmp = ret-modulus
475
+ sbcs x9,x15,x12
476
+ sbcs x10,x16,xzr
477
+ sbcs x11,x17,x13
478
+ sbcs xzr,x19,xzr // did it borrow?
479
+
480
+ csel x14,x14,x8,lo // ret = borrow ? ret : ret-modulus
481
+ csel x15,x15,x9,lo
482
+ csel x16,x16,x10,lo
483
+ stp x14,x15,[x0]
484
+ csel x17,x17,x11,lo
485
+ stp x16,x17,[x0,#16]
486
+
487
+ ret
488
+
489
+
490
+ // Note that __ecp_nistz256_add_to expects both input vectors pre-loaded to
491
+ // x4-x7 and x8-x11. This is done because it's used in multiple
492
+ // contexts, e.g. in multiplication by 2 and 3...
493
+
494
+ .align 4
495
+ .alt_entry __ecp_nistz256_add_to
496
+ __ecp_nistz256_add_to:
497
+ adds x14,x14,x8 // ret = a+b
498
+ adcs x15,x15,x9
499
+ adcs x16,x16,x10
500
+ adcs x17,x17,x11
501
+ adc x1,xzr,xzr // zap x1
502
+
503
+ adds x8,x14,#1 // subs x8,x4,#-1 // tmp = ret-modulus
504
+ sbcs x9,x15,x12
505
+ sbcs x10,x16,xzr
506
+ sbcs x11,x17,x13
507
+ sbcs xzr,x1,xzr // did subtraction borrow?
508
+
509
+ csel x14,x14,x8,lo // ret = borrow ? ret : ret-modulus
510
+ csel x15,x15,x9,lo
511
+ csel x16,x16,x10,lo
512
+ stp x14,x15,[x0]
513
+ csel x17,x17,x11,lo
514
+ stp x16,x17,[x0,#16]
515
+
516
+ ret
517
+
518
+
519
+
520
+ .align 4
521
+ .alt_entry __ecp_nistz256_sub_from
522
+ __ecp_nistz256_sub_from:
523
+ ldp x8,x9,[x2]
524
+ ldp x10,x11,[x2,#16]
525
+ subs x14,x14,x8 // ret = a-b
526
+ sbcs x15,x15,x9
527
+ sbcs x16,x16,x10
528
+ sbcs x17,x17,x11
529
+ sbc x1,xzr,xzr // zap x1
530
+
531
+ subs x8,x14,#1 // adds x8,x4,#-1 // tmp = ret+modulus
532
+ adcs x9,x15,x12
533
+ adcs x10,x16,xzr
534
+ adc x11,x17,x13
535
+ cmp x1,xzr // did subtraction borrow?
536
+
537
+ csel x14,x14,x8,eq // ret = borrow ? ret+modulus : ret
538
+ csel x15,x15,x9,eq
539
+ csel x16,x16,x10,eq
540
+ stp x14,x15,[x0]
541
+ csel x17,x17,x11,eq
542
+ stp x16,x17,[x0,#16]
543
+
544
+ ret
545
+
546
+
547
+
548
+ .align 4
549
+ .alt_entry __ecp_nistz256_sub_morf
550
+ __ecp_nistz256_sub_morf:
551
+ ldp x8,x9,[x2]
552
+ ldp x10,x11,[x2,#16]
553
+ subs x14,x8,x14 // ret = b-a
554
+ sbcs x15,x9,x15
555
+ sbcs x16,x10,x16
556
+ sbcs x17,x11,x17
557
+ sbc x1,xzr,xzr // zap x1
558
+
559
+ subs x8,x14,#1 // adds x8,x4,#-1 // tmp = ret+modulus
560
+ adcs x9,x15,x12
561
+ adcs x10,x16,xzr
562
+ adc x11,x17,x13
563
+ cmp x1,xzr // did subtraction borrow?
564
+
565
+ csel x14,x14,x8,eq // ret = borrow ? ret+modulus : ret
566
+ csel x15,x15,x9,eq
567
+ csel x16,x16,x10,eq
568
+ stp x14,x15,[x0]
569
+ csel x17,x17,x11,eq
570
+ stp x16,x17,[x0,#16]
571
+
572
+ ret
573
+
574
+
575
+
576
+ .align 4
577
+ .alt_entry __ecp_nistz256_div_by_2
578
+ __ecp_nistz256_div_by_2:
579
+ subs x8,x14,#1 // adds x8,x4,#-1 // tmp = a+modulus
580
+ adcs x9,x15,x12
581
+ adcs x10,x16,xzr
582
+ adcs x11,x17,x13
583
+ adc x1,xzr,xzr // zap x1
584
+ tst x14,#1 // is a even?
585
+
586
+ csel x14,x14,x8,eq // ret = even ? a : a+modulus
587
+ csel x15,x15,x9,eq
588
+ csel x16,x16,x10,eq
589
+ csel x17,x17,x11,eq
590
+ csel x1,xzr,x1,eq
591
+
592
+ lsr x14,x14,#1 // ret >>= 1
593
+ orr x14,x14,x15,lsl#63
594
+ lsr x15,x15,#1
595
+ orr x15,x15,x16,lsl#63
596
+ lsr x16,x16,#1
597
+ orr x16,x16,x17,lsl#63
598
+ lsr x17,x17,#1
599
+ stp x14,x15,[x0]
600
+ orr x17,x17,x1,lsl#63
601
+ stp x16,x17,[x0,#16]
602
+
603
+ ret
604
+
605
+ .globl _ecp_nistz256_point_double
606
+ .private_extern _ecp_nistz256_point_double
607
+
608
+ .align 5
609
+ .alt_entry _ecp_nistz256_point_double
610
+ _ecp_nistz256_point_double:
611
+ AARCH64_SIGN_LINK_REGISTER
612
+ stp x29,x30,[sp,#-96]!
613
+ add x29,sp,#0
614
+ stp x19,x20,[sp,#16]
615
+ stp x21,x22,[sp,#32]
616
+ sub sp,sp,#32*4
617
+
618
+ Ldouble_shortcut:
619
+ ldp x14,x15,[x1,#32]
620
+ mov x21,x0
621
+ ldp x16,x17,[x1,#48]
622
+ mov x22,x1
623
+ adrp x13,Lpoly@PAGE
624
+ add x13,x13,Lpoly@PAGEOFF
625
+ ldr x12,[x13,#8]
626
+ mov x8,x14
627
+ ldr x13,[x13,#24]
628
+ mov x9,x15
629
+ ldp x4,x5,[x22,#64] // forward load for p256_sqr_mont
630
+ mov x10,x16
631
+ mov x11,x17
632
+ ldp x6,x7,[x22,#64+16]
633
+ add x0,sp,#0
634
+ bl __ecp_nistz256_add_to // p256_mul_by_2(S, in_y);
635
+
636
+ add x0,sp,#64
637
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Zsqr, in_z);
638
+
639
+ ldp x8,x9,[x22]
640
+ ldp x10,x11,[x22,#16]
641
+ mov x4,x14 // put Zsqr aside for p256_sub
642
+ mov x5,x15
643
+ mov x6,x16
644
+ mov x7,x17
645
+ add x0,sp,#32
646
+ bl __ecp_nistz256_add_to // p256_add(M, Zsqr, in_x);
647
+
648
+ add x2,x22,#0
649
+ mov x14,x4 // restore Zsqr
650
+ mov x15,x5
651
+ ldp x4,x5,[sp,#0] // forward load for p256_sqr_mont
652
+ mov x16,x6
653
+ mov x17,x7
654
+ ldp x6,x7,[sp,#0+16]
655
+ add x0,sp,#64
656
+ bl __ecp_nistz256_sub_morf // p256_sub(Zsqr, in_x, Zsqr);
657
+
658
+ add x0,sp,#0
659
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(S, S);
660
+
661
+ ldr x3,[x22,#32]
662
+ ldp x4,x5,[x22,#64]
663
+ ldp x6,x7,[x22,#64+16]
664
+ add x2,x22,#32
665
+ add x0,sp,#96
666
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(tmp0, in_z, in_y);
667
+
668
+ mov x8,x14
669
+ mov x9,x15
670
+ ldp x4,x5,[sp,#0] // forward load for p256_sqr_mont
671
+ mov x10,x16
672
+ mov x11,x17
673
+ ldp x6,x7,[sp,#0+16]
674
+ add x0,x21,#64
675
+ bl __ecp_nistz256_add_to // p256_mul_by_2(res_z, tmp0);
676
+
677
+ add x0,sp,#96
678
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(tmp0, S);
679
+
680
+ ldr x3,[sp,#64] // forward load for p256_mul_mont
681
+ ldp x4,x5,[sp,#32]
682
+ ldp x6,x7,[sp,#32+16]
683
+ add x0,x21,#32
684
+ bl __ecp_nistz256_div_by_2 // p256_div_by_2(res_y, tmp0);
685
+
686
+ add x2,sp,#64
687
+ add x0,sp,#32
688
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(M, M, Zsqr);
689
+
690
+ mov x8,x14 // duplicate M
691
+ mov x9,x15
692
+ mov x10,x16
693
+ mov x11,x17
694
+ mov x4,x14 // put M aside
695
+ mov x5,x15
696
+ mov x6,x16
697
+ mov x7,x17
698
+ add x0,sp,#32
699
+ bl __ecp_nistz256_add_to
700
+ mov x8,x4 // restore M
701
+ mov x9,x5
702
+ ldr x3,[x22] // forward load for p256_mul_mont
703
+ mov x10,x6
704
+ ldp x4,x5,[sp,#0]
705
+ mov x11,x7
706
+ ldp x6,x7,[sp,#0+16]
707
+ bl __ecp_nistz256_add_to // p256_mul_by_3(M, M);
708
+
709
+ add x2,x22,#0
710
+ add x0,sp,#0
711
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S, S, in_x);
712
+
713
+ mov x8,x14
714
+ mov x9,x15
715
+ ldp x4,x5,[sp,#32] // forward load for p256_sqr_mont
716
+ mov x10,x16
717
+ mov x11,x17
718
+ ldp x6,x7,[sp,#32+16]
719
+ add x0,sp,#96
720
+ bl __ecp_nistz256_add_to // p256_mul_by_2(tmp0, S);
721
+
722
+ add x0,x21,#0
723
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(res_x, M);
724
+
725
+ add x2,sp,#96
726
+ bl __ecp_nistz256_sub_from // p256_sub(res_x, res_x, tmp0);
727
+
728
+ add x2,sp,#0
729
+ add x0,sp,#0
730
+ bl __ecp_nistz256_sub_morf // p256_sub(S, S, res_x);
731
+
732
+ ldr x3,[sp,#32]
733
+ mov x4,x14 // copy S
734
+ mov x5,x15
735
+ mov x6,x16
736
+ mov x7,x17
737
+ add x2,sp,#32
738
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S, S, M);
739
+
740
+ add x2,x21,#32
741
+ add x0,x21,#32
742
+ bl __ecp_nistz256_sub_from // p256_sub(res_y, S, res_y);
743
+
744
+ add sp,x29,#0 // destroy frame
745
+ ldp x19,x20,[x29,#16]
746
+ ldp x21,x22,[x29,#32]
747
+ ldp x29,x30,[sp],#96
748
+ AARCH64_VALIDATE_LINK_REGISTER
749
+ ret
750
+
751
+ .globl _ecp_nistz256_point_add
752
+ .private_extern _ecp_nistz256_point_add
753
+
754
+ .align 5
755
+ .alt_entry _ecp_nistz256_point_add
756
+ _ecp_nistz256_point_add:
757
+ AARCH64_SIGN_LINK_REGISTER
758
+ stp x29,x30,[sp,#-96]!
759
+ add x29,sp,#0
760
+ stp x19,x20,[sp,#16]
761
+ stp x21,x22,[sp,#32]
762
+ stp x23,x24,[sp,#48]
763
+ stp x25,x26,[sp,#64]
764
+ stp x27,x28,[sp,#80]
765
+ sub sp,sp,#32*12
766
+
767
+ ldp x4,x5,[x2,#64] // in2_z
768
+ ldp x6,x7,[x2,#64+16]
769
+ mov x21,x0
770
+ mov x22,x1
771
+ mov x23,x2
772
+ adrp x13,Lpoly@PAGE
773
+ add x13,x13,Lpoly@PAGEOFF
774
+ ldr x12,[x13,#8]
775
+ ldr x13,[x13,#24]
776
+ orr x8,x4,x5
777
+ orr x10,x6,x7
778
+ orr x25,x8,x10
779
+ cmp x25,#0
780
+ csetm x25,ne // ~in2infty
781
+ add x0,sp,#192
782
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Z2sqr, in2_z);
783
+
784
+ ldp x4,x5,[x22,#64] // in1_z
785
+ ldp x6,x7,[x22,#64+16]
786
+ orr x8,x4,x5
787
+ orr x10,x6,x7
788
+ orr x24,x8,x10
789
+ cmp x24,#0
790
+ csetm x24,ne // ~in1infty
791
+ add x0,sp,#128
792
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Z1sqr, in1_z);
793
+
794
+ ldr x3,[x23,#64]
795
+ ldp x4,x5,[sp,#192]
796
+ ldp x6,x7,[sp,#192+16]
797
+ add x2,x23,#64
798
+ add x0,sp,#320
799
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S1, Z2sqr, in2_z);
800
+
801
+ ldr x3,[x22,#64]
802
+ ldp x4,x5,[sp,#128]
803
+ ldp x6,x7,[sp,#128+16]
804
+ add x2,x22,#64
805
+ add x0,sp,#352
806
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, Z1sqr, in1_z);
807
+
808
+ ldr x3,[x22,#32]
809
+ ldp x4,x5,[sp,#320]
810
+ ldp x6,x7,[sp,#320+16]
811
+ add x2,x22,#32
812
+ add x0,sp,#320
813
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S1, S1, in1_y);
814
+
815
+ ldr x3,[x23,#32]
816
+ ldp x4,x5,[sp,#352]
817
+ ldp x6,x7,[sp,#352+16]
818
+ add x2,x23,#32
819
+ add x0,sp,#352
820
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, S2, in2_y);
821
+
822
+ add x2,sp,#320
823
+ ldr x3,[sp,#192] // forward load for p256_mul_mont
824
+ ldp x4,x5,[x22]
825
+ ldp x6,x7,[x22,#16]
826
+ add x0,sp,#160
827
+ bl __ecp_nistz256_sub_from // p256_sub(R, S2, S1);
828
+
829
+ orr x14,x14,x15 // see if result is zero
830
+ orr x16,x16,x17
831
+ orr x26,x14,x16 // ~is_equal(S1,S2)
832
+
833
+ add x2,sp,#192
834
+ add x0,sp,#256
835
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(U1, in1_x, Z2sqr);
836
+
837
+ ldr x3,[sp,#128]
838
+ ldp x4,x5,[x23]
839
+ ldp x6,x7,[x23,#16]
840
+ add x2,sp,#128
841
+ add x0,sp,#288
842
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(U2, in2_x, Z1sqr);
843
+
844
+ add x2,sp,#256
845
+ ldp x4,x5,[sp,#160] // forward load for p256_sqr_mont
846
+ ldp x6,x7,[sp,#160+16]
847
+ add x0,sp,#96
848
+ bl __ecp_nistz256_sub_from // p256_sub(H, U2, U1);
849
+
850
+ orr x14,x14,x15 // see if result is zero
851
+ orr x16,x16,x17
852
+ orr x14,x14,x16 // ~is_equal(U1,U2)
853
+
854
+ mvn x27,x24 // -1/0 -> 0/-1
855
+ mvn x28,x25 // -1/0 -> 0/-1
856
+ orr x14,x14,x27
857
+ orr x14,x14,x28
858
+ orr x14,x14,x26
859
+ cbnz x14,Ladd_proceed // if(~is_equal(U1,U2) | in1infty | in2infty | ~is_equal(S1,S2))
860
+
861
+ Ladd_double:
862
+ mov x1,x22
863
+ mov x0,x21
864
+ ldp x23,x24,[x29,#48]
865
+ ldp x25,x26,[x29,#64]
866
+ ldp x27,x28,[x29,#80]
867
+ add sp,sp,#256 // #256 is from #32*(12-4). difference in stack frames
868
+ b Ldouble_shortcut
869
+
870
+ .align 4
871
+ Ladd_proceed:
872
+ add x0,sp,#192
873
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Rsqr, R);
874
+
875
+ ldr x3,[x22,#64]
876
+ ldp x4,x5,[sp,#96]
877
+ ldp x6,x7,[sp,#96+16]
878
+ add x2,x22,#64
879
+ add x0,sp,#64
880
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(res_z, H, in1_z);
881
+
882
+ ldp x4,x5,[sp,#96]
883
+ ldp x6,x7,[sp,#96+16]
884
+ add x0,sp,#128
885
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Hsqr, H);
886
+
887
+ ldr x3,[x23,#64]
888
+ ldp x4,x5,[sp,#64]
889
+ ldp x6,x7,[sp,#64+16]
890
+ add x2,x23,#64
891
+ add x0,sp,#64
892
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(res_z, res_z, in2_z);
893
+
894
+ ldr x3,[sp,#96]
895
+ ldp x4,x5,[sp,#128]
896
+ ldp x6,x7,[sp,#128+16]
897
+ add x2,sp,#96
898
+ add x0,sp,#224
899
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(Hcub, Hsqr, H);
900
+
901
+ ldr x3,[sp,#128]
902
+ ldp x4,x5,[sp,#256]
903
+ ldp x6,x7,[sp,#256+16]
904
+ add x2,sp,#128
905
+ add x0,sp,#288
906
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(U2, U1, Hsqr);
907
+
908
+ mov x8,x14
909
+ mov x9,x15
910
+ mov x10,x16
911
+ mov x11,x17
912
+ add x0,sp,#128
913
+ bl __ecp_nistz256_add_to // p256_mul_by_2(Hsqr, U2);
914
+
915
+ add x2,sp,#192
916
+ add x0,sp,#0
917
+ bl __ecp_nistz256_sub_morf // p256_sub(res_x, Rsqr, Hsqr);
918
+
919
+ add x2,sp,#224
920
+ bl __ecp_nistz256_sub_from // p256_sub(res_x, res_x, Hcub);
921
+
922
+ add x2,sp,#288
923
+ ldr x3,[sp,#224] // forward load for p256_mul_mont
924
+ ldp x4,x5,[sp,#320]
925
+ ldp x6,x7,[sp,#320+16]
926
+ add x0,sp,#32
927
+ bl __ecp_nistz256_sub_morf // p256_sub(res_y, U2, res_x);
928
+
929
+ add x2,sp,#224
930
+ add x0,sp,#352
931
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, S1, Hcub);
932
+
933
+ ldr x3,[sp,#160]
934
+ ldp x4,x5,[sp,#32]
935
+ ldp x6,x7,[sp,#32+16]
936
+ add x2,sp,#160
937
+ add x0,sp,#32
938
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(res_y, res_y, R);
939
+
940
+ add x2,sp,#352
941
+ bl __ecp_nistz256_sub_from // p256_sub(res_y, res_y, S2);
942
+
943
+ ldp x4,x5,[sp,#0] // res
944
+ ldp x6,x7,[sp,#0+16]
945
+ ldp x8,x9,[x23] // in2
946
+ ldp x10,x11,[x23,#16]
947
+ ldp x14,x15,[x22,#0] // in1
948
+ cmp x24,#0 // ~, remember?
949
+ ldp x16,x17,[x22,#0+16]
950
+ csel x8,x4,x8,ne
951
+ csel x9,x5,x9,ne
952
+ ldp x4,x5,[sp,#0+0+32] // res
953
+ csel x10,x6,x10,ne
954
+ csel x11,x7,x11,ne
955
+ cmp x25,#0 // ~, remember?
956
+ ldp x6,x7,[sp,#0+0+48]
957
+ csel x14,x8,x14,ne
958
+ csel x15,x9,x15,ne
959
+ ldp x8,x9,[x23,#0+32] // in2
960
+ csel x16,x10,x16,ne
961
+ csel x17,x11,x17,ne
962
+ ldp x10,x11,[x23,#0+48]
963
+ stp x14,x15,[x21,#0]
964
+ stp x16,x17,[x21,#0+16]
965
+ ldp x14,x15,[x22,#32] // in1
966
+ cmp x24,#0 // ~, remember?
967
+ ldp x16,x17,[x22,#32+16]
968
+ csel x8,x4,x8,ne
969
+ csel x9,x5,x9,ne
970
+ ldp x4,x5,[sp,#0+32+32] // res
971
+ csel x10,x6,x10,ne
972
+ csel x11,x7,x11,ne
973
+ cmp x25,#0 // ~, remember?
974
+ ldp x6,x7,[sp,#0+32+48]
975
+ csel x14,x8,x14,ne
976
+ csel x15,x9,x15,ne
977
+ ldp x8,x9,[x23,#32+32] // in2
978
+ csel x16,x10,x16,ne
979
+ csel x17,x11,x17,ne
980
+ ldp x10,x11,[x23,#32+48]
981
+ stp x14,x15,[x21,#32]
982
+ stp x16,x17,[x21,#32+16]
983
+ ldp x14,x15,[x22,#64] // in1
984
+ cmp x24,#0 // ~, remember?
985
+ ldp x16,x17,[x22,#64+16]
986
+ csel x8,x4,x8,ne
987
+ csel x9,x5,x9,ne
988
+ csel x10,x6,x10,ne
989
+ csel x11,x7,x11,ne
990
+ cmp x25,#0 // ~, remember?
991
+ csel x14,x8,x14,ne
992
+ csel x15,x9,x15,ne
993
+ csel x16,x10,x16,ne
994
+ csel x17,x11,x17,ne
995
+ stp x14,x15,[x21,#64]
996
+ stp x16,x17,[x21,#64+16]
997
+
998
+ Ladd_done:
999
+ add sp,x29,#0 // destroy frame
1000
+ ldp x19,x20,[x29,#16]
1001
+ ldp x21,x22,[x29,#32]
1002
+ ldp x23,x24,[x29,#48]
1003
+ ldp x25,x26,[x29,#64]
1004
+ ldp x27,x28,[x29,#80]
1005
+ ldp x29,x30,[sp],#96
1006
+ AARCH64_VALIDATE_LINK_REGISTER
1007
+ ret
1008
+
1009
+ .globl _ecp_nistz256_point_add_affine
1010
+ .private_extern _ecp_nistz256_point_add_affine
1011
+
1012
+ .align 5
1013
+ .alt_entry _ecp_nistz256_point_add_affine
1014
+ _ecp_nistz256_point_add_affine:
1015
+ AARCH64_SIGN_LINK_REGISTER
1016
+ stp x29,x30,[sp,#-80]!
1017
+ add x29,sp,#0
1018
+ stp x19,x20,[sp,#16]
1019
+ stp x21,x22,[sp,#32]
1020
+ stp x23,x24,[sp,#48]
1021
+ stp x25,x26,[sp,#64]
1022
+ sub sp,sp,#32*10
1023
+
1024
+ mov x21,x0
1025
+ mov x22,x1
1026
+ mov x23,x2
1027
+ adrp x13,Lpoly@PAGE
1028
+ add x13,x13,Lpoly@PAGEOFF
1029
+ ldr x12,[x13,#8]
1030
+ ldr x13,[x13,#24]
1031
+
1032
+ ldp x4,x5,[x1,#64] // in1_z
1033
+ ldp x6,x7,[x1,#64+16]
1034
+ orr x8,x4,x5
1035
+ orr x10,x6,x7
1036
+ orr x24,x8,x10
1037
+ cmp x24,#0
1038
+ csetm x24,ne // ~in1infty
1039
+
1040
+ ldp x14,x15,[x2] // in2_x
1041
+ ldp x16,x17,[x2,#16]
1042
+ ldp x8,x9,[x2,#32] // in2_y
1043
+ ldp x10,x11,[x2,#48]
1044
+ orr x14,x14,x15
1045
+ orr x16,x16,x17
1046
+ orr x8,x8,x9
1047
+ orr x10,x10,x11
1048
+ orr x14,x14,x16
1049
+ orr x8,x8,x10
1050
+ orr x25,x14,x8
1051
+ cmp x25,#0
1052
+ csetm x25,ne // ~in2infty
1053
+
1054
+ add x0,sp,#128
1055
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Z1sqr, in1_z);
1056
+
1057
+ mov x4,x14
1058
+ mov x5,x15
1059
+ mov x6,x16
1060
+ mov x7,x17
1061
+ ldr x3,[x23]
1062
+ add x2,x23,#0
1063
+ add x0,sp,#96
1064
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(U2, Z1sqr, in2_x);
1065
+
1066
+ add x2,x22,#0
1067
+ ldr x3,[x22,#64] // forward load for p256_mul_mont
1068
+ ldp x4,x5,[sp,#128]
1069
+ ldp x6,x7,[sp,#128+16]
1070
+ add x0,sp,#160
1071
+ bl __ecp_nistz256_sub_from // p256_sub(H, U2, in1_x);
1072
+
1073
+ add x2,x22,#64
1074
+ add x0,sp,#128
1075
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, Z1sqr, in1_z);
1076
+
1077
+ ldr x3,[x22,#64]
1078
+ ldp x4,x5,[sp,#160]
1079
+ ldp x6,x7,[sp,#160+16]
1080
+ add x2,x22,#64
1081
+ add x0,sp,#64
1082
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(res_z, H, in1_z);
1083
+
1084
+ ldr x3,[x23,#32]
1085
+ ldp x4,x5,[sp,#128]
1086
+ ldp x6,x7,[sp,#128+16]
1087
+ add x2,x23,#32
1088
+ add x0,sp,#128
1089
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, S2, in2_y);
1090
+
1091
+ add x2,x22,#32
1092
+ ldp x4,x5,[sp,#160] // forward load for p256_sqr_mont
1093
+ ldp x6,x7,[sp,#160+16]
1094
+ add x0,sp,#192
1095
+ bl __ecp_nistz256_sub_from // p256_sub(R, S2, in1_y);
1096
+
1097
+ add x0,sp,#224
1098
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Hsqr, H);
1099
+
1100
+ ldp x4,x5,[sp,#192]
1101
+ ldp x6,x7,[sp,#192+16]
1102
+ add x0,sp,#288
1103
+ bl __ecp_nistz256_sqr_mont // p256_sqr_mont(Rsqr, R);
1104
+
1105
+ ldr x3,[sp,#160]
1106
+ ldp x4,x5,[sp,#224]
1107
+ ldp x6,x7,[sp,#224+16]
1108
+ add x2,sp,#160
1109
+ add x0,sp,#256
1110
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(Hcub, Hsqr, H);
1111
+
1112
+ ldr x3,[x22]
1113
+ ldp x4,x5,[sp,#224]
1114
+ ldp x6,x7,[sp,#224+16]
1115
+ add x2,x22,#0
1116
+ add x0,sp,#96
1117
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(U2, in1_x, Hsqr);
1118
+
1119
+ mov x8,x14
1120
+ mov x9,x15
1121
+ mov x10,x16
1122
+ mov x11,x17
1123
+ add x0,sp,#224
1124
+ bl __ecp_nistz256_add_to // p256_mul_by_2(Hsqr, U2);
1125
+
1126
+ add x2,sp,#288
1127
+ add x0,sp,#0
1128
+ bl __ecp_nistz256_sub_morf // p256_sub(res_x, Rsqr, Hsqr);
1129
+
1130
+ add x2,sp,#256
1131
+ bl __ecp_nistz256_sub_from // p256_sub(res_x, res_x, Hcub);
1132
+
1133
+ add x2,sp,#96
1134
+ ldr x3,[x22,#32] // forward load for p256_mul_mont
1135
+ ldp x4,x5,[sp,#256]
1136
+ ldp x6,x7,[sp,#256+16]
1137
+ add x0,sp,#32
1138
+ bl __ecp_nistz256_sub_morf // p256_sub(res_y, U2, res_x);
1139
+
1140
+ add x2,x22,#32
1141
+ add x0,sp,#128
1142
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(S2, in1_y, Hcub);
1143
+
1144
+ ldr x3,[sp,#192]
1145
+ ldp x4,x5,[sp,#32]
1146
+ ldp x6,x7,[sp,#32+16]
1147
+ add x2,sp,#192
1148
+ add x0,sp,#32
1149
+ bl __ecp_nistz256_mul_mont // p256_mul_mont(res_y, res_y, R);
1150
+
1151
+ add x2,sp,#128
1152
+ bl __ecp_nistz256_sub_from // p256_sub(res_y, res_y, S2);
1153
+
1154
+ ldp x4,x5,[sp,#0] // res
1155
+ ldp x6,x7,[sp,#0+16]
1156
+ ldp x8,x9,[x23] // in2
1157
+ ldp x10,x11,[x23,#16]
1158
+ ldp x14,x15,[x22,#0] // in1
1159
+ cmp x24,#0 // ~, remember?
1160
+ ldp x16,x17,[x22,#0+16]
1161
+ csel x8,x4,x8,ne
1162
+ csel x9,x5,x9,ne
1163
+ ldp x4,x5,[sp,#0+0+32] // res
1164
+ csel x10,x6,x10,ne
1165
+ csel x11,x7,x11,ne
1166
+ cmp x25,#0 // ~, remember?
1167
+ ldp x6,x7,[sp,#0+0+48]
1168
+ csel x14,x8,x14,ne
1169
+ csel x15,x9,x15,ne
1170
+ ldp x8,x9,[x23,#0+32] // in2
1171
+ csel x16,x10,x16,ne
1172
+ csel x17,x11,x17,ne
1173
+ ldp x10,x11,[x23,#0+48]
1174
+ stp x14,x15,[x21,#0]
1175
+ stp x16,x17,[x21,#0+16]
1176
+ adrp x23,Lone_mont@PAGE-64
1177
+ add x23,x23,Lone_mont@PAGEOFF-64
1178
+ ldp x14,x15,[x22,#32] // in1
1179
+ cmp x24,#0 // ~, remember?
1180
+ ldp x16,x17,[x22,#32+16]
1181
+ csel x8,x4,x8,ne
1182
+ csel x9,x5,x9,ne
1183
+ ldp x4,x5,[sp,#0+32+32] // res
1184
+ csel x10,x6,x10,ne
1185
+ csel x11,x7,x11,ne
1186
+ cmp x25,#0 // ~, remember?
1187
+ ldp x6,x7,[sp,#0+32+48]
1188
+ csel x14,x8,x14,ne
1189
+ csel x15,x9,x15,ne
1190
+ ldp x8,x9,[x23,#32+32] // in2
1191
+ csel x16,x10,x16,ne
1192
+ csel x17,x11,x17,ne
1193
+ ldp x10,x11,[x23,#32+48]
1194
+ stp x14,x15,[x21,#32]
1195
+ stp x16,x17,[x21,#32+16]
1196
+ ldp x14,x15,[x22,#64] // in1
1197
+ cmp x24,#0 // ~, remember?
1198
+ ldp x16,x17,[x22,#64+16]
1199
+ csel x8,x4,x8,ne
1200
+ csel x9,x5,x9,ne
1201
+ csel x10,x6,x10,ne
1202
+ csel x11,x7,x11,ne
1203
+ cmp x25,#0 // ~, remember?
1204
+ csel x14,x8,x14,ne
1205
+ csel x15,x9,x15,ne
1206
+ csel x16,x10,x16,ne
1207
+ csel x17,x11,x17,ne
1208
+ stp x14,x15,[x21,#64]
1209
+ stp x16,x17,[x21,#64+16]
1210
+
1211
+ add sp,x29,#0 // destroy frame
1212
+ ldp x19,x20,[x29,#16]
1213
+ ldp x21,x22,[x29,#32]
1214
+ ldp x23,x24,[x29,#48]
1215
+ ldp x25,x26,[x29,#64]
1216
+ ldp x29,x30,[sp],#80
1217
+ AARCH64_VALIDATE_LINK_REGISTER
1218
+ ret
1219
+
1220
+ ////////////////////////////////////////////////////////////////////////
1221
+ // void ecp_nistz256_ord_mul_mont(uint64_t res[4], uint64_t a[4],
1222
+ // uint64_t b[4]);
1223
+ .globl _ecp_nistz256_ord_mul_mont
1224
+ .private_extern _ecp_nistz256_ord_mul_mont
1225
+
1226
+ .align 4
1227
+ .alt_entry _ecp_nistz256_ord_mul_mont
1228
+ _ecp_nistz256_ord_mul_mont:
1229
+ AARCH64_VALID_CALL_TARGET
1230
+ // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later.
1231
+ stp x29,x30,[sp,#-64]!
1232
+ add x29,sp,#0
1233
+ stp x19,x20,[sp,#16]
1234
+ stp x21,x22,[sp,#32]
1235
+ stp x23,x24,[sp,#48]
1236
+
1237
+ adrp x23,Lord@PAGE
1238
+ add x23,x23,Lord@PAGEOFF
1239
+ ldr x3,[x2] // bp[0]
1240
+ ldp x4,x5,[x1]
1241
+ ldp x6,x7,[x1,#16]
1242
+
1243
+ ldp x12,x13,[x23,#0]
1244
+ ldp x21,x22,[x23,#16]
1245
+ ldr x23,[x23,#32]
1246
+
1247
+ mul x14,x4,x3 // a[0]*b[0]
1248
+ umulh x8,x4,x3
1249
+
1250
+ mul x15,x5,x3 // a[1]*b[0]
1251
+ umulh x9,x5,x3
1252
+
1253
+ mul x16,x6,x3 // a[2]*b[0]
1254
+ umulh x10,x6,x3
1255
+
1256
+ mul x17,x7,x3 // a[3]*b[0]
1257
+ umulh x19,x7,x3
1258
+
1259
+ mul x24,x14,x23
1260
+
1261
+ adds x15,x15,x8 // accumulate high parts of multiplication
1262
+ adcs x16,x16,x9
1263
+ adcs x17,x17,x10
1264
+ adc x19,x19,xzr
1265
+ mov x20,xzr
1266
+ ldr x3,[x2,#8*1] // b[i]
1267
+
1268
+ lsl x8,x24,#32
1269
+ subs x16,x16,x24
1270
+ lsr x9,x24,#32
1271
+ sbcs x17,x17,x8
1272
+ sbcs x19,x19,x9
1273
+ sbc x20,x20,xzr
1274
+
1275
+ subs xzr,x14,#1
1276
+ umulh x9,x12,x24
1277
+ mul x10,x13,x24
1278
+ umulh x11,x13,x24
1279
+
1280
+ adcs x10,x10,x9
1281
+ mul x8,x4,x3
1282
+ adc x11,x11,xzr
1283
+ mul x9,x5,x3
1284
+
1285
+ adds x14,x15,x10
1286
+ mul x10,x6,x3
1287
+ adcs x15,x16,x11
1288
+ mul x11,x7,x3
1289
+ adcs x16,x17,x24
1290
+ adcs x17,x19,x24
1291
+ adc x19,x20,xzr
1292
+
1293
+ adds x14,x14,x8 // accumulate low parts
1294
+ umulh x8,x4,x3
1295
+ adcs x15,x15,x9
1296
+ umulh x9,x5,x3
1297
+ adcs x16,x16,x10
1298
+ umulh x10,x6,x3
1299
+ adcs x17,x17,x11
1300
+ umulh x11,x7,x3
1301
+ adc x19,x19,xzr
1302
+ mul x24,x14,x23
1303
+ adds x15,x15,x8 // accumulate high parts
1304
+ adcs x16,x16,x9
1305
+ adcs x17,x17,x10
1306
+ adcs x19,x19,x11
1307
+ adc x20,xzr,xzr
1308
+ ldr x3,[x2,#8*2] // b[i]
1309
+
1310
+ lsl x8,x24,#32
1311
+ subs x16,x16,x24
1312
+ lsr x9,x24,#32
1313
+ sbcs x17,x17,x8
1314
+ sbcs x19,x19,x9
1315
+ sbc x20,x20,xzr
1316
+
1317
+ subs xzr,x14,#1
1318
+ umulh x9,x12,x24
1319
+ mul x10,x13,x24
1320
+ umulh x11,x13,x24
1321
+
1322
+ adcs x10,x10,x9
1323
+ mul x8,x4,x3
1324
+ adc x11,x11,xzr
1325
+ mul x9,x5,x3
1326
+
1327
+ adds x14,x15,x10
1328
+ mul x10,x6,x3
1329
+ adcs x15,x16,x11
1330
+ mul x11,x7,x3
1331
+ adcs x16,x17,x24
1332
+ adcs x17,x19,x24
1333
+ adc x19,x20,xzr
1334
+
1335
+ adds x14,x14,x8 // accumulate low parts
1336
+ umulh x8,x4,x3
1337
+ adcs x15,x15,x9
1338
+ umulh x9,x5,x3
1339
+ adcs x16,x16,x10
1340
+ umulh x10,x6,x3
1341
+ adcs x17,x17,x11
1342
+ umulh x11,x7,x3
1343
+ adc x19,x19,xzr
1344
+ mul x24,x14,x23
1345
+ adds x15,x15,x8 // accumulate high parts
1346
+ adcs x16,x16,x9
1347
+ adcs x17,x17,x10
1348
+ adcs x19,x19,x11
1349
+ adc x20,xzr,xzr
1350
+ ldr x3,[x2,#8*3] // b[i]
1351
+
1352
+ lsl x8,x24,#32
1353
+ subs x16,x16,x24
1354
+ lsr x9,x24,#32
1355
+ sbcs x17,x17,x8
1356
+ sbcs x19,x19,x9
1357
+ sbc x20,x20,xzr
1358
+
1359
+ subs xzr,x14,#1
1360
+ umulh x9,x12,x24
1361
+ mul x10,x13,x24
1362
+ umulh x11,x13,x24
1363
+
1364
+ adcs x10,x10,x9
1365
+ mul x8,x4,x3
1366
+ adc x11,x11,xzr
1367
+ mul x9,x5,x3
1368
+
1369
+ adds x14,x15,x10
1370
+ mul x10,x6,x3
1371
+ adcs x15,x16,x11
1372
+ mul x11,x7,x3
1373
+ adcs x16,x17,x24
1374
+ adcs x17,x19,x24
1375
+ adc x19,x20,xzr
1376
+
1377
+ adds x14,x14,x8 // accumulate low parts
1378
+ umulh x8,x4,x3
1379
+ adcs x15,x15,x9
1380
+ umulh x9,x5,x3
1381
+ adcs x16,x16,x10
1382
+ umulh x10,x6,x3
1383
+ adcs x17,x17,x11
1384
+ umulh x11,x7,x3
1385
+ adc x19,x19,xzr
1386
+ mul x24,x14,x23
1387
+ adds x15,x15,x8 // accumulate high parts
1388
+ adcs x16,x16,x9
1389
+ adcs x17,x17,x10
1390
+ adcs x19,x19,x11
1391
+ adc x20,xzr,xzr
1392
+ lsl x8,x24,#32 // last reduction
1393
+ subs x16,x16,x24
1394
+ lsr x9,x24,#32
1395
+ sbcs x17,x17,x8
1396
+ sbcs x19,x19,x9
1397
+ sbc x20,x20,xzr
1398
+
1399
+ subs xzr,x14,#1
1400
+ umulh x9,x12,x24
1401
+ mul x10,x13,x24
1402
+ umulh x11,x13,x24
1403
+
1404
+ adcs x10,x10,x9
1405
+ adc x11,x11,xzr
1406
+
1407
+ adds x14,x15,x10
1408
+ adcs x15,x16,x11
1409
+ adcs x16,x17,x24
1410
+ adcs x17,x19,x24
1411
+ adc x19,x20,xzr
1412
+
1413
+ subs x8,x14,x12 // ret -= modulus
1414
+ sbcs x9,x15,x13
1415
+ sbcs x10,x16,x21
1416
+ sbcs x11,x17,x22
1417
+ sbcs xzr,x19,xzr
1418
+
1419
+ csel x14,x14,x8,lo // ret = borrow ? ret : ret-modulus
1420
+ csel x15,x15,x9,lo
1421
+ csel x16,x16,x10,lo
1422
+ stp x14,x15,[x0]
1423
+ csel x17,x17,x11,lo
1424
+ stp x16,x17,[x0,#16]
1425
+
1426
+ ldp x19,x20,[sp,#16]
1427
+ ldp x21,x22,[sp,#32]
1428
+ ldp x23,x24,[sp,#48]
1429
+ ldr x29,[sp],#64
1430
+ ret
1431
+
1432
+
1433
+ ////////////////////////////////////////////////////////////////////////
1434
+ // void ecp_nistz256_ord_sqr_mont(uint64_t res[4], uint64_t a[4],
1435
+ // uint64_t rep);
1436
+ .globl _ecp_nistz256_ord_sqr_mont
1437
+ .private_extern _ecp_nistz256_ord_sqr_mont
1438
+
1439
+ .align 4
1440
+ .alt_entry _ecp_nistz256_ord_sqr_mont
1441
+ _ecp_nistz256_ord_sqr_mont:
1442
+ AARCH64_VALID_CALL_TARGET
1443
+ // Armv8.3-A PAuth: even though x30 is pushed to stack it is not popped later.
1444
+ stp x29,x30,[sp,#-64]!
1445
+ add x29,sp,#0
1446
+ stp x19,x20,[sp,#16]
1447
+ stp x21,x22,[sp,#32]
1448
+ stp x23,x24,[sp,#48]
1449
+
1450
+ adrp x23,Lord@PAGE
1451
+ add x23,x23,Lord@PAGEOFF
1452
+ ldp x4,x5,[x1]
1453
+ ldp x6,x7,[x1,#16]
1454
+
1455
+ ldp x12,x13,[x23,#0]
1456
+ ldp x21,x22,[x23,#16]
1457
+ ldr x23,[x23,#32]
1458
+ b Loop_ord_sqr
1459
+
1460
+ .align 4
1461
+ Loop_ord_sqr:
1462
+ sub x2,x2,#1
1463
+ ////////////////////////////////////////////////////////////////
1464
+ // | | | | | |a1*a0| |
1465
+ // | | | | |a2*a0| | |
1466
+ // | |a3*a2|a3*a0| | | |
1467
+ // | | | |a2*a1| | | |
1468
+ // | | |a3*a1| | | | |
1469
+ // *| | | | | | | | 2|
1470
+ // +|a3*a3|a2*a2|a1*a1|a0*a0|
1471
+ // |--+--+--+--+--+--+--+--|
1472
+ // |A7|A6|A5|A4|A3|A2|A1|A0|, where Ax is , i.e. follow
1473
+ //
1474
+ // "can't overflow" below mark carrying into high part of
1475
+ // multiplication result, which can't overflow, because it
1476
+ // can never be all ones.
1477
+
1478
+ mul x15,x5,x4 // a[1]*a[0]
1479
+ umulh x9,x5,x4
1480
+ mul x16,x6,x4 // a[2]*a[0]
1481
+ umulh x10,x6,x4
1482
+ mul x17,x7,x4 // a[3]*a[0]
1483
+ umulh x19,x7,x4
1484
+
1485
+ adds x16,x16,x9 // accumulate high parts of multiplication
1486
+ mul x8,x6,x5 // a[2]*a[1]
1487
+ umulh x9,x6,x5
1488
+ adcs x17,x17,x10
1489
+ mul x10,x7,x5 // a[3]*a[1]
1490
+ umulh x11,x7,x5
1491
+ adc x19,x19,xzr // can't overflow
1492
+
1493
+ mul x20,x7,x6 // a[3]*a[2]
1494
+ umulh x1,x7,x6
1495
+
1496
+ adds x9,x9,x10 // accumulate high parts of multiplication
1497
+ mul x14,x4,x4 // a[0]*a[0]
1498
+ adc x10,x11,xzr // can't overflow
1499
+
1500
+ adds x17,x17,x8 // accumulate low parts of multiplication
1501
+ umulh x4,x4,x4
1502
+ adcs x19,x19,x9
1503
+ mul x9,x5,x5 // a[1]*a[1]
1504
+ adcs x20,x20,x10
1505
+ umulh x5,x5,x5
1506
+ adc x1,x1,xzr // can't overflow
1507
+
1508
+ adds x15,x15,x15 // acc[1-6]*=2
1509
+ mul x10,x6,x6 // a[2]*a[2]
1510
+ adcs x16,x16,x16
1511
+ umulh x6,x6,x6
1512
+ adcs x17,x17,x17
1513
+ mul x11,x7,x7 // a[3]*a[3]
1514
+ adcs x19,x19,x19
1515
+ umulh x7,x7,x7
1516
+ adcs x20,x20,x20
1517
+ adcs x1,x1,x1
1518
+ adc x3,xzr,xzr
1519
+
1520
+ adds x15,x15,x4 // +a[i]*a[i]
1521
+ mul x24,x14,x23
1522
+ adcs x16,x16,x9
1523
+ adcs x17,x17,x5
1524
+ adcs x19,x19,x10
1525
+ adcs x20,x20,x6
1526
+ adcs x1,x1,x11
1527
+ adc x3,x3,x7
1528
+ subs xzr,x14,#1
1529
+ umulh x9,x12,x24
1530
+ mul x10,x13,x24
1531
+ umulh x11,x13,x24
1532
+
1533
+ adcs x10,x10,x9
1534
+ adc x11,x11,xzr
1535
+
1536
+ adds x14,x15,x10
1537
+ adcs x15,x16,x11
1538
+ adcs x16,x17,x24
1539
+ adc x17,xzr,x24 // can't overflow
1540
+ mul x11,x14,x23
1541
+ lsl x8,x24,#32
1542
+ subs x15,x15,x24
1543
+ lsr x9,x24,#32
1544
+ sbcs x16,x16,x8
1545
+ sbc x17,x17,x9 // can't borrow
1546
+ subs xzr,x14,#1
1547
+ umulh x9,x12,x11
1548
+ mul x10,x13,x11
1549
+ umulh x24,x13,x11
1550
+
1551
+ adcs x10,x10,x9
1552
+ adc x24,x24,xzr
1553
+
1554
+ adds x14,x15,x10
1555
+ adcs x15,x16,x24
1556
+ adcs x16,x17,x11
1557
+ adc x17,xzr,x11 // can't overflow
1558
+ mul x24,x14,x23
1559
+ lsl x8,x11,#32
1560
+ subs x15,x15,x11
1561
+ lsr x9,x11,#32
1562
+ sbcs x16,x16,x8
1563
+ sbc x17,x17,x9 // can't borrow
1564
+ subs xzr,x14,#1
1565
+ umulh x9,x12,x24
1566
+ mul x10,x13,x24
1567
+ umulh x11,x13,x24
1568
+
1569
+ adcs x10,x10,x9
1570
+ adc x11,x11,xzr
1571
+
1572
+ adds x14,x15,x10
1573
+ adcs x15,x16,x11
1574
+ adcs x16,x17,x24
1575
+ adc x17,xzr,x24 // can't overflow
1576
+ mul x11,x14,x23
1577
+ lsl x8,x24,#32
1578
+ subs x15,x15,x24
1579
+ lsr x9,x24,#32
1580
+ sbcs x16,x16,x8
1581
+ sbc x17,x17,x9 // can't borrow
1582
+ subs xzr,x14,#1
1583
+ umulh x9,x12,x11
1584
+ mul x10,x13,x11
1585
+ umulh x24,x13,x11
1586
+
1587
+ adcs x10,x10,x9
1588
+ adc x24,x24,xzr
1589
+
1590
+ adds x14,x15,x10
1591
+ adcs x15,x16,x24
1592
+ adcs x16,x17,x11
1593
+ adc x17,xzr,x11 // can't overflow
1594
+ lsl x8,x11,#32
1595
+ subs x15,x15,x11
1596
+ lsr x9,x11,#32
1597
+ sbcs x16,x16,x8
1598
+ sbc x17,x17,x9 // can't borrow
1599
+ adds x14,x14,x19 // accumulate upper half
1600
+ adcs x15,x15,x20
1601
+ adcs x16,x16,x1
1602
+ adcs x17,x17,x3
1603
+ adc x19,xzr,xzr
1604
+
1605
+ subs x8,x14,x12 // ret -= modulus
1606
+ sbcs x9,x15,x13
1607
+ sbcs x10,x16,x21
1608
+ sbcs x11,x17,x22
1609
+ sbcs xzr,x19,xzr
1610
+
1611
+ csel x4,x14,x8,lo // ret = borrow ? ret : ret-modulus
1612
+ csel x5,x15,x9,lo
1613
+ csel x6,x16,x10,lo
1614
+ csel x7,x17,x11,lo
1615
+
1616
+ cbnz x2,Loop_ord_sqr
1617
+
1618
+ stp x4,x5,[x0]
1619
+ stp x6,x7,[x0,#16]
1620
+
1621
+ ldp x19,x20,[sp,#16]
1622
+ ldp x21,x22,[sp,#32]
1623
+ ldp x23,x24,[sp,#48]
1624
+ ldr x29,[sp],#64
1625
+ ret
1626
+
1627
+ ////////////////////////////////////////////////////////////////////////
1628
+ // void ecp_nistz256_select_w5(uint64_t *val, uint64_t *in_t, int index);
1629
+ .globl _ecp_nistz256_select_w5
1630
+ .private_extern _ecp_nistz256_select_w5
1631
+
1632
+ .align 4
1633
+ .alt_entry _ecp_nistz256_select_w5
1634
+ _ecp_nistz256_select_w5:
1635
+ AARCH64_VALID_CALL_TARGET
1636
+
1637
+ // x10 := x0
1638
+ // w9 := 0; loop counter and incremented internal index
1639
+ mov x10, x0
1640
+ mov w9, #0
1641
+
1642
+ // [v16-v21] := 0
1643
+ movi v16.16b, #0
1644
+ movi v17.16b, #0
1645
+ movi v18.16b, #0
1646
+ movi v19.16b, #0
1647
+ movi v20.16b, #0
1648
+ movi v21.16b, #0
1649
+
1650
+ Lselect_w5_loop:
1651
+ // Loop 16 times.
1652
+
1653
+ // Increment index (loop counter); tested at the end of the loop
1654
+ add w9, w9, #1
1655
+
1656
+ // [v22-v27] := Load a (3*256-bit = 6*128-bit) table entry starting at x1
1657
+ // and advance x1 to point to the next entry
1658
+ ld1 {v22.2d, v23.2d, v24.2d, v25.2d}, [x1],#64
1659
+
1660
+ // x11 := (w9 == w2)? All 1s : All 0s
1661
+ cmp w9, w2
1662
+ csetm x11, eq
1663
+
1664
+ // continue loading ...
1665
+ ld1 {v26.2d, v27.2d}, [x1],#32
1666
+
1667
+ // duplicate mask_64 into Mask (all 0s or all 1s)
1668
+ dup v3.2d, x11
1669
+
1670
+ // [v16-v19] := (Mask == all 1s)? [v22-v25] : [v16-v19]
1671
+ // i.e., values in output registers will remain the same if w9 != w2
1672
+ bit v16.16b, v22.16b, v3.16b
1673
+ bit v17.16b, v23.16b, v3.16b
1674
+
1675
+ bit v18.16b, v24.16b, v3.16b
1676
+ bit v19.16b, v25.16b, v3.16b
1677
+
1678
+ bit v20.16b, v26.16b, v3.16b
1679
+ bit v21.16b, v27.16b, v3.16b
1680
+
1681
+ // If bit #4 is not 0 (i.e. idx_ctr < 16) loop back
1682
+ tbz w9, #4, Lselect_w5_loop
1683
+
1684
+ // Write [v16-v21] to memory at the output pointer
1685
+ st1 {v16.2d, v17.2d, v18.2d, v19.2d}, [x10],#64
1686
+ st1 {v20.2d, v21.2d}, [x10]
1687
+
1688
+ ret
1689
+
1690
+
1691
+
1692
+ ////////////////////////////////////////////////////////////////////////
1693
+ // void ecp_nistz256_select_w7(uint64_t *val, uint64_t *in_t, int index);
1694
+ .globl _ecp_nistz256_select_w7
1695
+ .private_extern _ecp_nistz256_select_w7
1696
+
1697
+ .align 4
1698
+ .alt_entry _ecp_nistz256_select_w7
1699
+ _ecp_nistz256_select_w7:
1700
+ AARCH64_VALID_CALL_TARGET
1701
+
1702
+ // w9 := 0; loop counter and incremented internal index
1703
+ mov w9, #0
1704
+
1705
+ // [v16-v21] := 0
1706
+ movi v16.16b, #0
1707
+ movi v17.16b, #0
1708
+ movi v18.16b, #0
1709
+ movi v19.16b, #0
1710
+
1711
+ Lselect_w7_loop:
1712
+ // Loop 64 times.
1713
+
1714
+ // Increment index (loop counter); tested at the end of the loop
1715
+ add w9, w9, #1
1716
+
1717
+ // [v22-v25] := Load a (2*256-bit = 4*128-bit) table entry starting at x1
1718
+ // and advance x1 to point to the next entry
1719
+ ld1 {v22.2d, v23.2d, v24.2d, v25.2d}, [x1],#64
1720
+
1721
+ // x11 := (w9 == w2)? All 1s : All 0s
1722
+ cmp w9, w2
1723
+ csetm x11, eq
1724
+
1725
+ // duplicate mask_64 into Mask (all 0s or all 1s)
1726
+ dup v3.2d, x11
1727
+
1728
+ // [v16-v19] := (Mask == all 1s)? [v22-v25] : [v16-v19]
1729
+ // i.e., values in output registers will remain the same if w9 != w2
1730
+ bit v16.16b, v22.16b, v3.16b
1731
+ bit v17.16b, v23.16b, v3.16b
1732
+
1733
+ bit v18.16b, v24.16b, v3.16b
1734
+ bit v19.16b, v25.16b, v3.16b
1735
+
1736
+ // If bit #6 is not 0 (i.e. idx_ctr < 64) loop back
1737
+ tbz w9, #6, Lselect_w7_loop
1738
+
1739
+ // Write [v16-v19] to memory at the output pointer
1740
+ st1 {v16.2d, v17.2d, v18.2d, v19.2d}, [x0]
1741
+
1742
+ ret
1743
+
1744
+ #endif // !OPENSSL_NO_ASM && defined(OPENSSL_AARCH64) && defined(__APPLE__)