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