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,1967 @@
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
+
9
+ .align 5
10
+ chacha_constants:
11
+ .Lsigma:
12
+ .quad 0x3320646e61707865,0x6b20657479622d32 // endian-neutral
13
+ .Lone:
14
+ .long 1,0,0,0
15
+ .byte 67,104,97,67,104,97,50,48,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
16
+ .align 2
17
+
18
+ .text
19
+
20
+ .globl ChaCha20_ctr32_nohw
21
+ .hidden ChaCha20_ctr32_nohw
22
+ .type ChaCha20_ctr32_nohw,%function
23
+ .align 5
24
+ ChaCha20_ctr32_nohw:
25
+ AARCH64_SIGN_LINK_REGISTER
26
+ stp x29,x30,[sp,#-96]!
27
+ add x29,sp,#0
28
+
29
+ adrp x5,.Lsigma
30
+ add x5,x5,:lo12:.Lsigma
31
+ stp x19,x20,[sp,#16]
32
+ stp x21,x22,[sp,#32]
33
+ stp x23,x24,[sp,#48]
34
+ stp x25,x26,[sp,#64]
35
+ stp x27,x28,[sp,#80]
36
+ sub sp,sp,#64
37
+
38
+ ldp x22,x23,[x5] // load sigma
39
+ ldp x24,x25,[x3] // load key
40
+ ldp x26,x27,[x3,#16]
41
+ ldp x28,x30,[x4] // load counter
42
+ #ifdef __AARCH64EB__
43
+ ror x24,x24,#32
44
+ ror x25,x25,#32
45
+ ror x26,x26,#32
46
+ ror x27,x27,#32
47
+ ror x28,x28,#32
48
+ ror x30,x30,#32
49
+ #endif
50
+
51
+ .Loop_outer:
52
+ mov w5,w22 // unpack key block
53
+ lsr x6,x22,#32
54
+ mov w7,w23
55
+ lsr x8,x23,#32
56
+ mov w9,w24
57
+ lsr x10,x24,#32
58
+ mov w11,w25
59
+ lsr x12,x25,#32
60
+ mov w13,w26
61
+ lsr x14,x26,#32
62
+ mov w15,w27
63
+ lsr x16,x27,#32
64
+ mov w17,w28
65
+ lsr x19,x28,#32
66
+ mov w20,w30
67
+ lsr x21,x30,#32
68
+
69
+ mov x4,#10
70
+ subs x2,x2,#64
71
+ .Loop:
72
+ sub x4,x4,#1
73
+ add w5,w5,w9
74
+ add w6,w6,w10
75
+ add w7,w7,w11
76
+ add w8,w8,w12
77
+ eor w17,w17,w5
78
+ eor w19,w19,w6
79
+ eor w20,w20,w7
80
+ eor w21,w21,w8
81
+ ror w17,w17,#16
82
+ ror w19,w19,#16
83
+ ror w20,w20,#16
84
+ ror w21,w21,#16
85
+ add w13,w13,w17
86
+ add w14,w14,w19
87
+ add w15,w15,w20
88
+ add w16,w16,w21
89
+ eor w9,w9,w13
90
+ eor w10,w10,w14
91
+ eor w11,w11,w15
92
+ eor w12,w12,w16
93
+ ror w9,w9,#20
94
+ ror w10,w10,#20
95
+ ror w11,w11,#20
96
+ ror w12,w12,#20
97
+ add w5,w5,w9
98
+ add w6,w6,w10
99
+ add w7,w7,w11
100
+ add w8,w8,w12
101
+ eor w17,w17,w5
102
+ eor w19,w19,w6
103
+ eor w20,w20,w7
104
+ eor w21,w21,w8
105
+ ror w17,w17,#24
106
+ ror w19,w19,#24
107
+ ror w20,w20,#24
108
+ ror w21,w21,#24
109
+ add w13,w13,w17
110
+ add w14,w14,w19
111
+ add w15,w15,w20
112
+ add w16,w16,w21
113
+ eor w9,w9,w13
114
+ eor w10,w10,w14
115
+ eor w11,w11,w15
116
+ eor w12,w12,w16
117
+ ror w9,w9,#25
118
+ ror w10,w10,#25
119
+ ror w11,w11,#25
120
+ ror w12,w12,#25
121
+ add w5,w5,w10
122
+ add w6,w6,w11
123
+ add w7,w7,w12
124
+ add w8,w8,w9
125
+ eor w21,w21,w5
126
+ eor w17,w17,w6
127
+ eor w19,w19,w7
128
+ eor w20,w20,w8
129
+ ror w21,w21,#16
130
+ ror w17,w17,#16
131
+ ror w19,w19,#16
132
+ ror w20,w20,#16
133
+ add w15,w15,w21
134
+ add w16,w16,w17
135
+ add w13,w13,w19
136
+ add w14,w14,w20
137
+ eor w10,w10,w15
138
+ eor w11,w11,w16
139
+ eor w12,w12,w13
140
+ eor w9,w9,w14
141
+ ror w10,w10,#20
142
+ ror w11,w11,#20
143
+ ror w12,w12,#20
144
+ ror w9,w9,#20
145
+ add w5,w5,w10
146
+ add w6,w6,w11
147
+ add w7,w7,w12
148
+ add w8,w8,w9
149
+ eor w21,w21,w5
150
+ eor w17,w17,w6
151
+ eor w19,w19,w7
152
+ eor w20,w20,w8
153
+ ror w21,w21,#24
154
+ ror w17,w17,#24
155
+ ror w19,w19,#24
156
+ ror w20,w20,#24
157
+ add w15,w15,w21
158
+ add w16,w16,w17
159
+ add w13,w13,w19
160
+ add w14,w14,w20
161
+ eor w10,w10,w15
162
+ eor w11,w11,w16
163
+ eor w12,w12,w13
164
+ eor w9,w9,w14
165
+ ror w10,w10,#25
166
+ ror w11,w11,#25
167
+ ror w12,w12,#25
168
+ ror w9,w9,#25
169
+ cbnz x4,.Loop
170
+
171
+ add w5,w5,w22 // accumulate key block
172
+ add x6,x6,x22,lsr#32
173
+ add w7,w7,w23
174
+ add x8,x8,x23,lsr#32
175
+ add w9,w9,w24
176
+ add x10,x10,x24,lsr#32
177
+ add w11,w11,w25
178
+ add x12,x12,x25,lsr#32
179
+ add w13,w13,w26
180
+ add x14,x14,x26,lsr#32
181
+ add w15,w15,w27
182
+ add x16,x16,x27,lsr#32
183
+ add w17,w17,w28
184
+ add x19,x19,x28,lsr#32
185
+ add w20,w20,w30
186
+ add x21,x21,x30,lsr#32
187
+
188
+ b.lo .Ltail
189
+
190
+ add x5,x5,x6,lsl#32 // pack
191
+ add x7,x7,x8,lsl#32
192
+ ldp x6,x8,[x1,#0] // load input
193
+ add x9,x9,x10,lsl#32
194
+ add x11,x11,x12,lsl#32
195
+ ldp x10,x12,[x1,#16]
196
+ add x13,x13,x14,lsl#32
197
+ add x15,x15,x16,lsl#32
198
+ ldp x14,x16,[x1,#32]
199
+ add x17,x17,x19,lsl#32
200
+ add x20,x20,x21,lsl#32
201
+ ldp x19,x21,[x1,#48]
202
+ add x1,x1,#64
203
+ #ifdef __AARCH64EB__
204
+ rev x5,x5
205
+ rev x7,x7
206
+ rev x9,x9
207
+ rev x11,x11
208
+ rev x13,x13
209
+ rev x15,x15
210
+ rev x17,x17
211
+ rev x20,x20
212
+ #endif
213
+ eor x5,x5,x6
214
+ eor x7,x7,x8
215
+ eor x9,x9,x10
216
+ eor x11,x11,x12
217
+ eor x13,x13,x14
218
+ eor x15,x15,x16
219
+ eor x17,x17,x19
220
+ eor x20,x20,x21
221
+
222
+ stp x5,x7,[x0,#0] // store output
223
+ add x28,x28,#1 // increment counter
224
+ stp x9,x11,[x0,#16]
225
+ stp x13,x15,[x0,#32]
226
+ stp x17,x20,[x0,#48]
227
+ add x0,x0,#64
228
+
229
+ b.hi .Loop_outer
230
+
231
+ ldp x19,x20,[x29,#16]
232
+ add sp,sp,#64
233
+ ldp x21,x22,[x29,#32]
234
+ ldp x23,x24,[x29,#48]
235
+ ldp x25,x26,[x29,#64]
236
+ ldp x27,x28,[x29,#80]
237
+ ldp x29,x30,[sp],#96
238
+ AARCH64_VALIDATE_LINK_REGISTER
239
+ ret
240
+
241
+ .align 4
242
+ .Ltail:
243
+ add x2,x2,#64
244
+ .Less_than_64:
245
+ sub x0,x0,#1
246
+ add x1,x1,x2
247
+ add x0,x0,x2
248
+ add x4,sp,x2
249
+ neg x2,x2
250
+
251
+ add x5,x5,x6,lsl#32 // pack
252
+ add x7,x7,x8,lsl#32
253
+ add x9,x9,x10,lsl#32
254
+ add x11,x11,x12,lsl#32
255
+ add x13,x13,x14,lsl#32
256
+ add x15,x15,x16,lsl#32
257
+ add x17,x17,x19,lsl#32
258
+ add x20,x20,x21,lsl#32
259
+ #ifdef __AARCH64EB__
260
+ rev x5,x5
261
+ rev x7,x7
262
+ rev x9,x9
263
+ rev x11,x11
264
+ rev x13,x13
265
+ rev x15,x15
266
+ rev x17,x17
267
+ rev x20,x20
268
+ #endif
269
+ stp x5,x7,[sp,#0]
270
+ stp x9,x11,[sp,#16]
271
+ stp x13,x15,[sp,#32]
272
+ stp x17,x20,[sp,#48]
273
+
274
+ .Loop_tail:
275
+ ldrb w10,[x1,x2]
276
+ ldrb w11,[x4,x2]
277
+ add x2,x2,#1
278
+ eor w10,w10,w11
279
+ strb w10,[x0,x2]
280
+ cbnz x2,.Loop_tail
281
+
282
+ stp xzr,xzr,[sp,#0]
283
+ stp xzr,xzr,[sp,#16]
284
+ stp xzr,xzr,[sp,#32]
285
+ stp xzr,xzr,[sp,#48]
286
+
287
+ ldp x19,x20,[x29,#16]
288
+ add sp,sp,#64
289
+ ldp x21,x22,[x29,#32]
290
+ ldp x23,x24,[x29,#48]
291
+ ldp x25,x26,[x29,#64]
292
+ ldp x27,x28,[x29,#80]
293
+ ldp x29,x30,[sp],#96
294
+ AARCH64_VALIDATE_LINK_REGISTER
295
+ ret
296
+ .size ChaCha20_ctr32_nohw,.-ChaCha20_ctr32_nohw
297
+
298
+ .globl ChaCha20_ctr32_neon
299
+ .hidden ChaCha20_ctr32_neon
300
+ .type ChaCha20_ctr32_neon,%function
301
+ .align 5
302
+ ChaCha20_ctr32_neon:
303
+ AARCH64_SIGN_LINK_REGISTER
304
+ stp x29,x30,[sp,#-96]!
305
+ add x29,sp,#0
306
+
307
+ adrp x5,.Lsigma
308
+ add x5,x5,:lo12:.Lsigma
309
+ stp x19,x20,[sp,#16]
310
+ stp x21,x22,[sp,#32]
311
+ stp x23,x24,[sp,#48]
312
+ stp x25,x26,[sp,#64]
313
+ stp x27,x28,[sp,#80]
314
+ cmp x2,#512
315
+ b.hs .L512_or_more_neon
316
+
317
+ sub sp,sp,#64
318
+
319
+ ldp x22,x23,[x5] // load sigma
320
+ ld1 {v24.4s},[x5],#16
321
+ ldp x24,x25,[x3] // load key
322
+ ldp x26,x27,[x3,#16]
323
+ ld1 {v25.4s,v26.4s},[x3]
324
+ ldp x28,x30,[x4] // load counter
325
+ ld1 {v27.4s},[x4]
326
+ ld1 {v31.4s},[x5]
327
+ #ifdef __AARCH64EB__
328
+ rev64 v24.4s,v24.4s
329
+ ror x24,x24,#32
330
+ ror x25,x25,#32
331
+ ror x26,x26,#32
332
+ ror x27,x27,#32
333
+ ror x28,x28,#32
334
+ ror x30,x30,#32
335
+ #endif
336
+ add v27.4s,v27.4s,v31.4s // += 1
337
+ add v28.4s,v27.4s,v31.4s
338
+ add v29.4s,v28.4s,v31.4s
339
+ shl v31.4s,v31.4s,#2 // 1 -> 4
340
+
341
+ .Loop_outer_neon:
342
+ mov w5,w22 // unpack key block
343
+ lsr x6,x22,#32
344
+ mov v0.16b,v24.16b
345
+ mov w7,w23
346
+ lsr x8,x23,#32
347
+ mov v4.16b,v24.16b
348
+ mov w9,w24
349
+ lsr x10,x24,#32
350
+ mov v16.16b,v24.16b
351
+ mov w11,w25
352
+ mov v1.16b,v25.16b
353
+ lsr x12,x25,#32
354
+ mov v5.16b,v25.16b
355
+ mov w13,w26
356
+ mov v17.16b,v25.16b
357
+ lsr x14,x26,#32
358
+ mov v3.16b,v27.16b
359
+ mov w15,w27
360
+ mov v7.16b,v28.16b
361
+ lsr x16,x27,#32
362
+ mov v19.16b,v29.16b
363
+ mov w17,w28
364
+ mov v2.16b,v26.16b
365
+ lsr x19,x28,#32
366
+ mov v6.16b,v26.16b
367
+ mov w20,w30
368
+ mov v18.16b,v26.16b
369
+ lsr x21,x30,#32
370
+
371
+ mov x4,#10
372
+ subs x2,x2,#256
373
+ .Loop_neon:
374
+ sub x4,x4,#1
375
+ add v0.4s,v0.4s,v1.4s
376
+ add w5,w5,w9
377
+ add v4.4s,v4.4s,v5.4s
378
+ add w6,w6,w10
379
+ add v16.4s,v16.4s,v17.4s
380
+ add w7,w7,w11
381
+ eor v3.16b,v3.16b,v0.16b
382
+ add w8,w8,w12
383
+ eor v7.16b,v7.16b,v4.16b
384
+ eor w17,w17,w5
385
+ eor v19.16b,v19.16b,v16.16b
386
+ eor w19,w19,w6
387
+ rev32 v3.8h,v3.8h
388
+ eor w20,w20,w7
389
+ rev32 v7.8h,v7.8h
390
+ eor w21,w21,w8
391
+ rev32 v19.8h,v19.8h
392
+ ror w17,w17,#16
393
+ add v2.4s,v2.4s,v3.4s
394
+ ror w19,w19,#16
395
+ add v6.4s,v6.4s,v7.4s
396
+ ror w20,w20,#16
397
+ add v18.4s,v18.4s,v19.4s
398
+ ror w21,w21,#16
399
+ eor v20.16b,v1.16b,v2.16b
400
+ add w13,w13,w17
401
+ eor v21.16b,v5.16b,v6.16b
402
+ add w14,w14,w19
403
+ eor v22.16b,v17.16b,v18.16b
404
+ add w15,w15,w20
405
+ ushr v1.4s,v20.4s,#20
406
+ add w16,w16,w21
407
+ ushr v5.4s,v21.4s,#20
408
+ eor w9,w9,w13
409
+ ushr v17.4s,v22.4s,#20
410
+ eor w10,w10,w14
411
+ sli v1.4s,v20.4s,#12
412
+ eor w11,w11,w15
413
+ sli v5.4s,v21.4s,#12
414
+ eor w12,w12,w16
415
+ sli v17.4s,v22.4s,#12
416
+ ror w9,w9,#20
417
+ add v0.4s,v0.4s,v1.4s
418
+ ror w10,w10,#20
419
+ add v4.4s,v4.4s,v5.4s
420
+ ror w11,w11,#20
421
+ add v16.4s,v16.4s,v17.4s
422
+ ror w12,w12,#20
423
+ eor v20.16b,v3.16b,v0.16b
424
+ add w5,w5,w9
425
+ eor v21.16b,v7.16b,v4.16b
426
+ add w6,w6,w10
427
+ eor v22.16b,v19.16b,v16.16b
428
+ add w7,w7,w11
429
+ ushr v3.4s,v20.4s,#24
430
+ add w8,w8,w12
431
+ ushr v7.4s,v21.4s,#24
432
+ eor w17,w17,w5
433
+ ushr v19.4s,v22.4s,#24
434
+ eor w19,w19,w6
435
+ sli v3.4s,v20.4s,#8
436
+ eor w20,w20,w7
437
+ sli v7.4s,v21.4s,#8
438
+ eor w21,w21,w8
439
+ sli v19.4s,v22.4s,#8
440
+ ror w17,w17,#24
441
+ add v2.4s,v2.4s,v3.4s
442
+ ror w19,w19,#24
443
+ add v6.4s,v6.4s,v7.4s
444
+ ror w20,w20,#24
445
+ add v18.4s,v18.4s,v19.4s
446
+ ror w21,w21,#24
447
+ eor v20.16b,v1.16b,v2.16b
448
+ add w13,w13,w17
449
+ eor v21.16b,v5.16b,v6.16b
450
+ add w14,w14,w19
451
+ eor v22.16b,v17.16b,v18.16b
452
+ add w15,w15,w20
453
+ ushr v1.4s,v20.4s,#25
454
+ add w16,w16,w21
455
+ ushr v5.4s,v21.4s,#25
456
+ eor w9,w9,w13
457
+ ushr v17.4s,v22.4s,#25
458
+ eor w10,w10,w14
459
+ sli v1.4s,v20.4s,#7
460
+ eor w11,w11,w15
461
+ sli v5.4s,v21.4s,#7
462
+ eor w12,w12,w16
463
+ sli v17.4s,v22.4s,#7
464
+ ror w9,w9,#25
465
+ ext v2.16b,v2.16b,v2.16b,#8
466
+ ror w10,w10,#25
467
+ ext v6.16b,v6.16b,v6.16b,#8
468
+ ror w11,w11,#25
469
+ ext v18.16b,v18.16b,v18.16b,#8
470
+ ror w12,w12,#25
471
+ ext v3.16b,v3.16b,v3.16b,#12
472
+ ext v7.16b,v7.16b,v7.16b,#12
473
+ ext v19.16b,v19.16b,v19.16b,#12
474
+ ext v1.16b,v1.16b,v1.16b,#4
475
+ ext v5.16b,v5.16b,v5.16b,#4
476
+ ext v17.16b,v17.16b,v17.16b,#4
477
+ add v0.4s,v0.4s,v1.4s
478
+ add w5,w5,w10
479
+ add v4.4s,v4.4s,v5.4s
480
+ add w6,w6,w11
481
+ add v16.4s,v16.4s,v17.4s
482
+ add w7,w7,w12
483
+ eor v3.16b,v3.16b,v0.16b
484
+ add w8,w8,w9
485
+ eor v7.16b,v7.16b,v4.16b
486
+ eor w21,w21,w5
487
+ eor v19.16b,v19.16b,v16.16b
488
+ eor w17,w17,w6
489
+ rev32 v3.8h,v3.8h
490
+ eor w19,w19,w7
491
+ rev32 v7.8h,v7.8h
492
+ eor w20,w20,w8
493
+ rev32 v19.8h,v19.8h
494
+ ror w21,w21,#16
495
+ add v2.4s,v2.4s,v3.4s
496
+ ror w17,w17,#16
497
+ add v6.4s,v6.4s,v7.4s
498
+ ror w19,w19,#16
499
+ add v18.4s,v18.4s,v19.4s
500
+ ror w20,w20,#16
501
+ eor v20.16b,v1.16b,v2.16b
502
+ add w15,w15,w21
503
+ eor v21.16b,v5.16b,v6.16b
504
+ add w16,w16,w17
505
+ eor v22.16b,v17.16b,v18.16b
506
+ add w13,w13,w19
507
+ ushr v1.4s,v20.4s,#20
508
+ add w14,w14,w20
509
+ ushr v5.4s,v21.4s,#20
510
+ eor w10,w10,w15
511
+ ushr v17.4s,v22.4s,#20
512
+ eor w11,w11,w16
513
+ sli v1.4s,v20.4s,#12
514
+ eor w12,w12,w13
515
+ sli v5.4s,v21.4s,#12
516
+ eor w9,w9,w14
517
+ sli v17.4s,v22.4s,#12
518
+ ror w10,w10,#20
519
+ add v0.4s,v0.4s,v1.4s
520
+ ror w11,w11,#20
521
+ add v4.4s,v4.4s,v5.4s
522
+ ror w12,w12,#20
523
+ add v16.4s,v16.4s,v17.4s
524
+ ror w9,w9,#20
525
+ eor v20.16b,v3.16b,v0.16b
526
+ add w5,w5,w10
527
+ eor v21.16b,v7.16b,v4.16b
528
+ add w6,w6,w11
529
+ eor v22.16b,v19.16b,v16.16b
530
+ add w7,w7,w12
531
+ ushr v3.4s,v20.4s,#24
532
+ add w8,w8,w9
533
+ ushr v7.4s,v21.4s,#24
534
+ eor w21,w21,w5
535
+ ushr v19.4s,v22.4s,#24
536
+ eor w17,w17,w6
537
+ sli v3.4s,v20.4s,#8
538
+ eor w19,w19,w7
539
+ sli v7.4s,v21.4s,#8
540
+ eor w20,w20,w8
541
+ sli v19.4s,v22.4s,#8
542
+ ror w21,w21,#24
543
+ add v2.4s,v2.4s,v3.4s
544
+ ror w17,w17,#24
545
+ add v6.4s,v6.4s,v7.4s
546
+ ror w19,w19,#24
547
+ add v18.4s,v18.4s,v19.4s
548
+ ror w20,w20,#24
549
+ eor v20.16b,v1.16b,v2.16b
550
+ add w15,w15,w21
551
+ eor v21.16b,v5.16b,v6.16b
552
+ add w16,w16,w17
553
+ eor v22.16b,v17.16b,v18.16b
554
+ add w13,w13,w19
555
+ ushr v1.4s,v20.4s,#25
556
+ add w14,w14,w20
557
+ ushr v5.4s,v21.4s,#25
558
+ eor w10,w10,w15
559
+ ushr v17.4s,v22.4s,#25
560
+ eor w11,w11,w16
561
+ sli v1.4s,v20.4s,#7
562
+ eor w12,w12,w13
563
+ sli v5.4s,v21.4s,#7
564
+ eor w9,w9,w14
565
+ sli v17.4s,v22.4s,#7
566
+ ror w10,w10,#25
567
+ ext v2.16b,v2.16b,v2.16b,#8
568
+ ror w11,w11,#25
569
+ ext v6.16b,v6.16b,v6.16b,#8
570
+ ror w12,w12,#25
571
+ ext v18.16b,v18.16b,v18.16b,#8
572
+ ror w9,w9,#25
573
+ ext v3.16b,v3.16b,v3.16b,#4
574
+ ext v7.16b,v7.16b,v7.16b,#4
575
+ ext v19.16b,v19.16b,v19.16b,#4
576
+ ext v1.16b,v1.16b,v1.16b,#12
577
+ ext v5.16b,v5.16b,v5.16b,#12
578
+ ext v17.16b,v17.16b,v17.16b,#12
579
+ cbnz x4,.Loop_neon
580
+
581
+ add w5,w5,w22 // accumulate key block
582
+ add v0.4s,v0.4s,v24.4s
583
+ add x6,x6,x22,lsr#32
584
+ add v4.4s,v4.4s,v24.4s
585
+ add w7,w7,w23
586
+ add v16.4s,v16.4s,v24.4s
587
+ add x8,x8,x23,lsr#32
588
+ add v2.4s,v2.4s,v26.4s
589
+ add w9,w9,w24
590
+ add v6.4s,v6.4s,v26.4s
591
+ add x10,x10,x24,lsr#32
592
+ add v18.4s,v18.4s,v26.4s
593
+ add w11,w11,w25
594
+ add v3.4s,v3.4s,v27.4s
595
+ add x12,x12,x25,lsr#32
596
+ add w13,w13,w26
597
+ add v7.4s,v7.4s,v28.4s
598
+ add x14,x14,x26,lsr#32
599
+ add w15,w15,w27
600
+ add v19.4s,v19.4s,v29.4s
601
+ add x16,x16,x27,lsr#32
602
+ add w17,w17,w28
603
+ add v1.4s,v1.4s,v25.4s
604
+ add x19,x19,x28,lsr#32
605
+ add w20,w20,w30
606
+ add v5.4s,v5.4s,v25.4s
607
+ add x21,x21,x30,lsr#32
608
+ add v17.4s,v17.4s,v25.4s
609
+
610
+ b.lo .Ltail_neon
611
+
612
+ add x5,x5,x6,lsl#32 // pack
613
+ add x7,x7,x8,lsl#32
614
+ ldp x6,x8,[x1,#0] // load input
615
+ add x9,x9,x10,lsl#32
616
+ add x11,x11,x12,lsl#32
617
+ ldp x10,x12,[x1,#16]
618
+ add x13,x13,x14,lsl#32
619
+ add x15,x15,x16,lsl#32
620
+ ldp x14,x16,[x1,#32]
621
+ add x17,x17,x19,lsl#32
622
+ add x20,x20,x21,lsl#32
623
+ ldp x19,x21,[x1,#48]
624
+ add x1,x1,#64
625
+ #ifdef __AARCH64EB__
626
+ rev x5,x5
627
+ rev x7,x7
628
+ rev x9,x9
629
+ rev x11,x11
630
+ rev x13,x13
631
+ rev x15,x15
632
+ rev x17,x17
633
+ rev x20,x20
634
+ #endif
635
+ ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64
636
+ eor x5,x5,x6
637
+ eor x7,x7,x8
638
+ eor x9,x9,x10
639
+ eor x11,x11,x12
640
+ eor x13,x13,x14
641
+ eor v0.16b,v0.16b,v20.16b
642
+ eor x15,x15,x16
643
+ eor v1.16b,v1.16b,v21.16b
644
+ eor x17,x17,x19
645
+ eor v2.16b,v2.16b,v22.16b
646
+ eor x20,x20,x21
647
+ eor v3.16b,v3.16b,v23.16b
648
+ ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64
649
+
650
+ stp x5,x7,[x0,#0] // store output
651
+ add x28,x28,#4 // increment counter
652
+ stp x9,x11,[x0,#16]
653
+ add v27.4s,v27.4s,v31.4s // += 4
654
+ stp x13,x15,[x0,#32]
655
+ add v28.4s,v28.4s,v31.4s
656
+ stp x17,x20,[x0,#48]
657
+ add v29.4s,v29.4s,v31.4s
658
+ add x0,x0,#64
659
+
660
+ st1 {v0.16b,v1.16b,v2.16b,v3.16b},[x0],#64
661
+ ld1 {v0.16b,v1.16b,v2.16b,v3.16b},[x1],#64
662
+
663
+ eor v4.16b,v4.16b,v20.16b
664
+ eor v5.16b,v5.16b,v21.16b
665
+ eor v6.16b,v6.16b,v22.16b
666
+ eor v7.16b,v7.16b,v23.16b
667
+ st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64
668
+
669
+ eor v16.16b,v16.16b,v0.16b
670
+ eor v17.16b,v17.16b,v1.16b
671
+ eor v18.16b,v18.16b,v2.16b
672
+ eor v19.16b,v19.16b,v3.16b
673
+ st1 {v16.16b,v17.16b,v18.16b,v19.16b},[x0],#64
674
+
675
+ b.hi .Loop_outer_neon
676
+
677
+ ldp x19,x20,[x29,#16]
678
+ add sp,sp,#64
679
+ ldp x21,x22,[x29,#32]
680
+ ldp x23,x24,[x29,#48]
681
+ ldp x25,x26,[x29,#64]
682
+ ldp x27,x28,[x29,#80]
683
+ ldp x29,x30,[sp],#96
684
+ AARCH64_VALIDATE_LINK_REGISTER
685
+ ret
686
+
687
+ .Ltail_neon:
688
+ add x2,x2,#256
689
+ cmp x2,#64
690
+ b.lo .Less_than_64
691
+
692
+ add x5,x5,x6,lsl#32 // pack
693
+ add x7,x7,x8,lsl#32
694
+ ldp x6,x8,[x1,#0] // load input
695
+ add x9,x9,x10,lsl#32
696
+ add x11,x11,x12,lsl#32
697
+ ldp x10,x12,[x1,#16]
698
+ add x13,x13,x14,lsl#32
699
+ add x15,x15,x16,lsl#32
700
+ ldp x14,x16,[x1,#32]
701
+ add x17,x17,x19,lsl#32
702
+ add x20,x20,x21,lsl#32
703
+ ldp x19,x21,[x1,#48]
704
+ add x1,x1,#64
705
+ #ifdef __AARCH64EB__
706
+ rev x5,x5
707
+ rev x7,x7
708
+ rev x9,x9
709
+ rev x11,x11
710
+ rev x13,x13
711
+ rev x15,x15
712
+ rev x17,x17
713
+ rev x20,x20
714
+ #endif
715
+ eor x5,x5,x6
716
+ eor x7,x7,x8
717
+ eor x9,x9,x10
718
+ eor x11,x11,x12
719
+ eor x13,x13,x14
720
+ eor x15,x15,x16
721
+ eor x17,x17,x19
722
+ eor x20,x20,x21
723
+
724
+ stp x5,x7,[x0,#0] // store output
725
+ add x28,x28,#4 // increment counter
726
+ stp x9,x11,[x0,#16]
727
+ stp x13,x15,[x0,#32]
728
+ stp x17,x20,[x0,#48]
729
+ add x0,x0,#64
730
+ b.eq .Ldone_neon
731
+ sub x2,x2,#64
732
+ cmp x2,#64
733
+ b.lo .Less_than_128
734
+
735
+ ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64
736
+ eor v0.16b,v0.16b,v20.16b
737
+ eor v1.16b,v1.16b,v21.16b
738
+ eor v2.16b,v2.16b,v22.16b
739
+ eor v3.16b,v3.16b,v23.16b
740
+ st1 {v0.16b,v1.16b,v2.16b,v3.16b},[x0],#64
741
+ b.eq .Ldone_neon
742
+ sub x2,x2,#64
743
+ cmp x2,#64
744
+ b.lo .Less_than_192
745
+
746
+ ld1 {v20.16b,v21.16b,v22.16b,v23.16b},[x1],#64
747
+ eor v4.16b,v4.16b,v20.16b
748
+ eor v5.16b,v5.16b,v21.16b
749
+ eor v6.16b,v6.16b,v22.16b
750
+ eor v7.16b,v7.16b,v23.16b
751
+ st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64
752
+ b.eq .Ldone_neon
753
+ sub x2,x2,#64
754
+
755
+ st1 {v16.16b,v17.16b,v18.16b,v19.16b},[sp]
756
+ b .Last_neon
757
+
758
+ .Less_than_128:
759
+ st1 {v0.16b,v1.16b,v2.16b,v3.16b},[sp]
760
+ b .Last_neon
761
+ .Less_than_192:
762
+ st1 {v4.16b,v5.16b,v6.16b,v7.16b},[sp]
763
+ b .Last_neon
764
+
765
+ .align 4
766
+ .Last_neon:
767
+ sub x0,x0,#1
768
+ add x1,x1,x2
769
+ add x0,x0,x2
770
+ add x4,sp,x2
771
+ neg x2,x2
772
+
773
+ .Loop_tail_neon:
774
+ ldrb w10,[x1,x2]
775
+ ldrb w11,[x4,x2]
776
+ add x2,x2,#1
777
+ eor w10,w10,w11
778
+ strb w10,[x0,x2]
779
+ cbnz x2,.Loop_tail_neon
780
+
781
+ stp xzr,xzr,[sp,#0]
782
+ stp xzr,xzr,[sp,#16]
783
+ stp xzr,xzr,[sp,#32]
784
+ stp xzr,xzr,[sp,#48]
785
+
786
+ .Ldone_neon:
787
+ ldp x19,x20,[x29,#16]
788
+ add sp,sp,#64
789
+ ldp x21,x22,[x29,#32]
790
+ ldp x23,x24,[x29,#48]
791
+ ldp x25,x26,[x29,#64]
792
+ ldp x27,x28,[x29,#80]
793
+ ldp x29,x30,[sp],#96
794
+ AARCH64_VALIDATE_LINK_REGISTER
795
+ ret
796
+ .size ChaCha20_ctr32_neon,.-ChaCha20_ctr32_neon
797
+ .type ChaCha20_512_neon,%function
798
+ .align 5
799
+ ChaCha20_512_neon:
800
+ AARCH64_SIGN_LINK_REGISTER
801
+ stp x29,x30,[sp,#-96]!
802
+ add x29,sp,#0
803
+
804
+ adrp x5,.Lsigma
805
+ add x5,x5,:lo12:.Lsigma
806
+ stp x19,x20,[sp,#16]
807
+ stp x21,x22,[sp,#32]
808
+ stp x23,x24,[sp,#48]
809
+ stp x25,x26,[sp,#64]
810
+ stp x27,x28,[sp,#80]
811
+
812
+ .L512_or_more_neon:
813
+ sub sp,sp,#128+64
814
+
815
+ ldp x22,x23,[x5] // load sigma
816
+ ld1 {v24.4s},[x5],#16
817
+ ldp x24,x25,[x3] // load key
818
+ ldp x26,x27,[x3,#16]
819
+ ld1 {v25.4s,v26.4s},[x3]
820
+ ldp x28,x30,[x4] // load counter
821
+ ld1 {v27.4s},[x4]
822
+ ld1 {v31.4s},[x5]
823
+ #ifdef __AARCH64EB__
824
+ rev64 v24.4s,v24.4s
825
+ ror x24,x24,#32
826
+ ror x25,x25,#32
827
+ ror x26,x26,#32
828
+ ror x27,x27,#32
829
+ ror x28,x28,#32
830
+ ror x30,x30,#32
831
+ #endif
832
+ add v27.4s,v27.4s,v31.4s // += 1
833
+ stp q24,q25,[sp,#0] // off-load key block, invariant part
834
+ add v27.4s,v27.4s,v31.4s // not typo
835
+ str q26,[sp,#32]
836
+ add v28.4s,v27.4s,v31.4s
837
+ add v29.4s,v28.4s,v31.4s
838
+ add v30.4s,v29.4s,v31.4s
839
+ shl v31.4s,v31.4s,#2 // 1 -> 4
840
+
841
+ stp d8,d9,[sp,#128+0] // meet ABI requirements
842
+ stp d10,d11,[sp,#128+16]
843
+ stp d12,d13,[sp,#128+32]
844
+ stp d14,d15,[sp,#128+48]
845
+
846
+ sub x2,x2,#512 // not typo
847
+
848
+ .Loop_outer_512_neon:
849
+ mov v0.16b,v24.16b
850
+ mov v4.16b,v24.16b
851
+ mov v8.16b,v24.16b
852
+ mov v12.16b,v24.16b
853
+ mov v16.16b,v24.16b
854
+ mov v20.16b,v24.16b
855
+ mov v1.16b,v25.16b
856
+ mov w5,w22 // unpack key block
857
+ mov v5.16b,v25.16b
858
+ lsr x6,x22,#32
859
+ mov v9.16b,v25.16b
860
+ mov w7,w23
861
+ mov v13.16b,v25.16b
862
+ lsr x8,x23,#32
863
+ mov v17.16b,v25.16b
864
+ mov w9,w24
865
+ mov v21.16b,v25.16b
866
+ lsr x10,x24,#32
867
+ mov v3.16b,v27.16b
868
+ mov w11,w25
869
+ mov v7.16b,v28.16b
870
+ lsr x12,x25,#32
871
+ mov v11.16b,v29.16b
872
+ mov w13,w26
873
+ mov v15.16b,v30.16b
874
+ lsr x14,x26,#32
875
+ mov v2.16b,v26.16b
876
+ mov w15,w27
877
+ mov v6.16b,v26.16b
878
+ lsr x16,x27,#32
879
+ add v19.4s,v3.4s,v31.4s // +4
880
+ mov w17,w28
881
+ add v23.4s,v7.4s,v31.4s // +4
882
+ lsr x19,x28,#32
883
+ mov v10.16b,v26.16b
884
+ mov w20,w30
885
+ mov v14.16b,v26.16b
886
+ lsr x21,x30,#32
887
+ mov v18.16b,v26.16b
888
+ stp q27,q28,[sp,#48] // off-load key block, variable part
889
+ mov v22.16b,v26.16b
890
+ str q29,[sp,#80]
891
+
892
+ mov x4,#5
893
+ subs x2,x2,#512
894
+ .Loop_upper_neon:
895
+ sub x4,x4,#1
896
+ add v0.4s,v0.4s,v1.4s
897
+ add w5,w5,w9
898
+ add v4.4s,v4.4s,v5.4s
899
+ add w6,w6,w10
900
+ add v8.4s,v8.4s,v9.4s
901
+ add w7,w7,w11
902
+ add v12.4s,v12.4s,v13.4s
903
+ add w8,w8,w12
904
+ add v16.4s,v16.4s,v17.4s
905
+ eor w17,w17,w5
906
+ add v20.4s,v20.4s,v21.4s
907
+ eor w19,w19,w6
908
+ eor v3.16b,v3.16b,v0.16b
909
+ eor w20,w20,w7
910
+ eor v7.16b,v7.16b,v4.16b
911
+ eor w21,w21,w8
912
+ eor v11.16b,v11.16b,v8.16b
913
+ ror w17,w17,#16
914
+ eor v15.16b,v15.16b,v12.16b
915
+ ror w19,w19,#16
916
+ eor v19.16b,v19.16b,v16.16b
917
+ ror w20,w20,#16
918
+ eor v23.16b,v23.16b,v20.16b
919
+ ror w21,w21,#16
920
+ rev32 v3.8h,v3.8h
921
+ add w13,w13,w17
922
+ rev32 v7.8h,v7.8h
923
+ add w14,w14,w19
924
+ rev32 v11.8h,v11.8h
925
+ add w15,w15,w20
926
+ rev32 v15.8h,v15.8h
927
+ add w16,w16,w21
928
+ rev32 v19.8h,v19.8h
929
+ eor w9,w9,w13
930
+ rev32 v23.8h,v23.8h
931
+ eor w10,w10,w14
932
+ add v2.4s,v2.4s,v3.4s
933
+ eor w11,w11,w15
934
+ add v6.4s,v6.4s,v7.4s
935
+ eor w12,w12,w16
936
+ add v10.4s,v10.4s,v11.4s
937
+ ror w9,w9,#20
938
+ add v14.4s,v14.4s,v15.4s
939
+ ror w10,w10,#20
940
+ add v18.4s,v18.4s,v19.4s
941
+ ror w11,w11,#20
942
+ add v22.4s,v22.4s,v23.4s
943
+ ror w12,w12,#20
944
+ eor v24.16b,v1.16b,v2.16b
945
+ add w5,w5,w9
946
+ eor v25.16b,v5.16b,v6.16b
947
+ add w6,w6,w10
948
+ eor v26.16b,v9.16b,v10.16b
949
+ add w7,w7,w11
950
+ eor v27.16b,v13.16b,v14.16b
951
+ add w8,w8,w12
952
+ eor v28.16b,v17.16b,v18.16b
953
+ eor w17,w17,w5
954
+ eor v29.16b,v21.16b,v22.16b
955
+ eor w19,w19,w6
956
+ ushr v1.4s,v24.4s,#20
957
+ eor w20,w20,w7
958
+ ushr v5.4s,v25.4s,#20
959
+ eor w21,w21,w8
960
+ ushr v9.4s,v26.4s,#20
961
+ ror w17,w17,#24
962
+ ushr v13.4s,v27.4s,#20
963
+ ror w19,w19,#24
964
+ ushr v17.4s,v28.4s,#20
965
+ ror w20,w20,#24
966
+ ushr v21.4s,v29.4s,#20
967
+ ror w21,w21,#24
968
+ sli v1.4s,v24.4s,#12
969
+ add w13,w13,w17
970
+ sli v5.4s,v25.4s,#12
971
+ add w14,w14,w19
972
+ sli v9.4s,v26.4s,#12
973
+ add w15,w15,w20
974
+ sli v13.4s,v27.4s,#12
975
+ add w16,w16,w21
976
+ sli v17.4s,v28.4s,#12
977
+ eor w9,w9,w13
978
+ sli v21.4s,v29.4s,#12
979
+ eor w10,w10,w14
980
+ add v0.4s,v0.4s,v1.4s
981
+ eor w11,w11,w15
982
+ add v4.4s,v4.4s,v5.4s
983
+ eor w12,w12,w16
984
+ add v8.4s,v8.4s,v9.4s
985
+ ror w9,w9,#25
986
+ add v12.4s,v12.4s,v13.4s
987
+ ror w10,w10,#25
988
+ add v16.4s,v16.4s,v17.4s
989
+ ror w11,w11,#25
990
+ add v20.4s,v20.4s,v21.4s
991
+ ror w12,w12,#25
992
+ eor v24.16b,v3.16b,v0.16b
993
+ add w5,w5,w10
994
+ eor v25.16b,v7.16b,v4.16b
995
+ add w6,w6,w11
996
+ eor v26.16b,v11.16b,v8.16b
997
+ add w7,w7,w12
998
+ eor v27.16b,v15.16b,v12.16b
999
+ add w8,w8,w9
1000
+ eor v28.16b,v19.16b,v16.16b
1001
+ eor w21,w21,w5
1002
+ eor v29.16b,v23.16b,v20.16b
1003
+ eor w17,w17,w6
1004
+ ushr v3.4s,v24.4s,#24
1005
+ eor w19,w19,w7
1006
+ ushr v7.4s,v25.4s,#24
1007
+ eor w20,w20,w8
1008
+ ushr v11.4s,v26.4s,#24
1009
+ ror w21,w21,#16
1010
+ ushr v15.4s,v27.4s,#24
1011
+ ror w17,w17,#16
1012
+ ushr v19.4s,v28.4s,#24
1013
+ ror w19,w19,#16
1014
+ ushr v23.4s,v29.4s,#24
1015
+ ror w20,w20,#16
1016
+ sli v3.4s,v24.4s,#8
1017
+ add w15,w15,w21
1018
+ sli v7.4s,v25.4s,#8
1019
+ add w16,w16,w17
1020
+ sli v11.4s,v26.4s,#8
1021
+ add w13,w13,w19
1022
+ sli v15.4s,v27.4s,#8
1023
+ add w14,w14,w20
1024
+ sli v19.4s,v28.4s,#8
1025
+ eor w10,w10,w15
1026
+ sli v23.4s,v29.4s,#8
1027
+ eor w11,w11,w16
1028
+ add v2.4s,v2.4s,v3.4s
1029
+ eor w12,w12,w13
1030
+ add v6.4s,v6.4s,v7.4s
1031
+ eor w9,w9,w14
1032
+ add v10.4s,v10.4s,v11.4s
1033
+ ror w10,w10,#20
1034
+ add v14.4s,v14.4s,v15.4s
1035
+ ror w11,w11,#20
1036
+ add v18.4s,v18.4s,v19.4s
1037
+ ror w12,w12,#20
1038
+ add v22.4s,v22.4s,v23.4s
1039
+ ror w9,w9,#20
1040
+ eor v24.16b,v1.16b,v2.16b
1041
+ add w5,w5,w10
1042
+ eor v25.16b,v5.16b,v6.16b
1043
+ add w6,w6,w11
1044
+ eor v26.16b,v9.16b,v10.16b
1045
+ add w7,w7,w12
1046
+ eor v27.16b,v13.16b,v14.16b
1047
+ add w8,w8,w9
1048
+ eor v28.16b,v17.16b,v18.16b
1049
+ eor w21,w21,w5
1050
+ eor v29.16b,v21.16b,v22.16b
1051
+ eor w17,w17,w6
1052
+ ushr v1.4s,v24.4s,#25
1053
+ eor w19,w19,w7
1054
+ ushr v5.4s,v25.4s,#25
1055
+ eor w20,w20,w8
1056
+ ushr v9.4s,v26.4s,#25
1057
+ ror w21,w21,#24
1058
+ ushr v13.4s,v27.4s,#25
1059
+ ror w17,w17,#24
1060
+ ushr v17.4s,v28.4s,#25
1061
+ ror w19,w19,#24
1062
+ ushr v21.4s,v29.4s,#25
1063
+ ror w20,w20,#24
1064
+ sli v1.4s,v24.4s,#7
1065
+ add w15,w15,w21
1066
+ sli v5.4s,v25.4s,#7
1067
+ add w16,w16,w17
1068
+ sli v9.4s,v26.4s,#7
1069
+ add w13,w13,w19
1070
+ sli v13.4s,v27.4s,#7
1071
+ add w14,w14,w20
1072
+ sli v17.4s,v28.4s,#7
1073
+ eor w10,w10,w15
1074
+ sli v21.4s,v29.4s,#7
1075
+ eor w11,w11,w16
1076
+ ext v2.16b,v2.16b,v2.16b,#8
1077
+ eor w12,w12,w13
1078
+ ext v6.16b,v6.16b,v6.16b,#8
1079
+ eor w9,w9,w14
1080
+ ext v10.16b,v10.16b,v10.16b,#8
1081
+ ror w10,w10,#25
1082
+ ext v14.16b,v14.16b,v14.16b,#8
1083
+ ror w11,w11,#25
1084
+ ext v18.16b,v18.16b,v18.16b,#8
1085
+ ror w12,w12,#25
1086
+ ext v22.16b,v22.16b,v22.16b,#8
1087
+ ror w9,w9,#25
1088
+ ext v3.16b,v3.16b,v3.16b,#12
1089
+ ext v7.16b,v7.16b,v7.16b,#12
1090
+ ext v11.16b,v11.16b,v11.16b,#12
1091
+ ext v15.16b,v15.16b,v15.16b,#12
1092
+ ext v19.16b,v19.16b,v19.16b,#12
1093
+ ext v23.16b,v23.16b,v23.16b,#12
1094
+ ext v1.16b,v1.16b,v1.16b,#4
1095
+ ext v5.16b,v5.16b,v5.16b,#4
1096
+ ext v9.16b,v9.16b,v9.16b,#4
1097
+ ext v13.16b,v13.16b,v13.16b,#4
1098
+ ext v17.16b,v17.16b,v17.16b,#4
1099
+ ext v21.16b,v21.16b,v21.16b,#4
1100
+ add v0.4s,v0.4s,v1.4s
1101
+ add w5,w5,w9
1102
+ add v4.4s,v4.4s,v5.4s
1103
+ add w6,w6,w10
1104
+ add v8.4s,v8.4s,v9.4s
1105
+ add w7,w7,w11
1106
+ add v12.4s,v12.4s,v13.4s
1107
+ add w8,w8,w12
1108
+ add v16.4s,v16.4s,v17.4s
1109
+ eor w17,w17,w5
1110
+ add v20.4s,v20.4s,v21.4s
1111
+ eor w19,w19,w6
1112
+ eor v3.16b,v3.16b,v0.16b
1113
+ eor w20,w20,w7
1114
+ eor v7.16b,v7.16b,v4.16b
1115
+ eor w21,w21,w8
1116
+ eor v11.16b,v11.16b,v8.16b
1117
+ ror w17,w17,#16
1118
+ eor v15.16b,v15.16b,v12.16b
1119
+ ror w19,w19,#16
1120
+ eor v19.16b,v19.16b,v16.16b
1121
+ ror w20,w20,#16
1122
+ eor v23.16b,v23.16b,v20.16b
1123
+ ror w21,w21,#16
1124
+ rev32 v3.8h,v3.8h
1125
+ add w13,w13,w17
1126
+ rev32 v7.8h,v7.8h
1127
+ add w14,w14,w19
1128
+ rev32 v11.8h,v11.8h
1129
+ add w15,w15,w20
1130
+ rev32 v15.8h,v15.8h
1131
+ add w16,w16,w21
1132
+ rev32 v19.8h,v19.8h
1133
+ eor w9,w9,w13
1134
+ rev32 v23.8h,v23.8h
1135
+ eor w10,w10,w14
1136
+ add v2.4s,v2.4s,v3.4s
1137
+ eor w11,w11,w15
1138
+ add v6.4s,v6.4s,v7.4s
1139
+ eor w12,w12,w16
1140
+ add v10.4s,v10.4s,v11.4s
1141
+ ror w9,w9,#20
1142
+ add v14.4s,v14.4s,v15.4s
1143
+ ror w10,w10,#20
1144
+ add v18.4s,v18.4s,v19.4s
1145
+ ror w11,w11,#20
1146
+ add v22.4s,v22.4s,v23.4s
1147
+ ror w12,w12,#20
1148
+ eor v24.16b,v1.16b,v2.16b
1149
+ add w5,w5,w9
1150
+ eor v25.16b,v5.16b,v6.16b
1151
+ add w6,w6,w10
1152
+ eor v26.16b,v9.16b,v10.16b
1153
+ add w7,w7,w11
1154
+ eor v27.16b,v13.16b,v14.16b
1155
+ add w8,w8,w12
1156
+ eor v28.16b,v17.16b,v18.16b
1157
+ eor w17,w17,w5
1158
+ eor v29.16b,v21.16b,v22.16b
1159
+ eor w19,w19,w6
1160
+ ushr v1.4s,v24.4s,#20
1161
+ eor w20,w20,w7
1162
+ ushr v5.4s,v25.4s,#20
1163
+ eor w21,w21,w8
1164
+ ushr v9.4s,v26.4s,#20
1165
+ ror w17,w17,#24
1166
+ ushr v13.4s,v27.4s,#20
1167
+ ror w19,w19,#24
1168
+ ushr v17.4s,v28.4s,#20
1169
+ ror w20,w20,#24
1170
+ ushr v21.4s,v29.4s,#20
1171
+ ror w21,w21,#24
1172
+ sli v1.4s,v24.4s,#12
1173
+ add w13,w13,w17
1174
+ sli v5.4s,v25.4s,#12
1175
+ add w14,w14,w19
1176
+ sli v9.4s,v26.4s,#12
1177
+ add w15,w15,w20
1178
+ sli v13.4s,v27.4s,#12
1179
+ add w16,w16,w21
1180
+ sli v17.4s,v28.4s,#12
1181
+ eor w9,w9,w13
1182
+ sli v21.4s,v29.4s,#12
1183
+ eor w10,w10,w14
1184
+ add v0.4s,v0.4s,v1.4s
1185
+ eor w11,w11,w15
1186
+ add v4.4s,v4.4s,v5.4s
1187
+ eor w12,w12,w16
1188
+ add v8.4s,v8.4s,v9.4s
1189
+ ror w9,w9,#25
1190
+ add v12.4s,v12.4s,v13.4s
1191
+ ror w10,w10,#25
1192
+ add v16.4s,v16.4s,v17.4s
1193
+ ror w11,w11,#25
1194
+ add v20.4s,v20.4s,v21.4s
1195
+ ror w12,w12,#25
1196
+ eor v24.16b,v3.16b,v0.16b
1197
+ add w5,w5,w10
1198
+ eor v25.16b,v7.16b,v4.16b
1199
+ add w6,w6,w11
1200
+ eor v26.16b,v11.16b,v8.16b
1201
+ add w7,w7,w12
1202
+ eor v27.16b,v15.16b,v12.16b
1203
+ add w8,w8,w9
1204
+ eor v28.16b,v19.16b,v16.16b
1205
+ eor w21,w21,w5
1206
+ eor v29.16b,v23.16b,v20.16b
1207
+ eor w17,w17,w6
1208
+ ushr v3.4s,v24.4s,#24
1209
+ eor w19,w19,w7
1210
+ ushr v7.4s,v25.4s,#24
1211
+ eor w20,w20,w8
1212
+ ushr v11.4s,v26.4s,#24
1213
+ ror w21,w21,#16
1214
+ ushr v15.4s,v27.4s,#24
1215
+ ror w17,w17,#16
1216
+ ushr v19.4s,v28.4s,#24
1217
+ ror w19,w19,#16
1218
+ ushr v23.4s,v29.4s,#24
1219
+ ror w20,w20,#16
1220
+ sli v3.4s,v24.4s,#8
1221
+ add w15,w15,w21
1222
+ sli v7.4s,v25.4s,#8
1223
+ add w16,w16,w17
1224
+ sli v11.4s,v26.4s,#8
1225
+ add w13,w13,w19
1226
+ sli v15.4s,v27.4s,#8
1227
+ add w14,w14,w20
1228
+ sli v19.4s,v28.4s,#8
1229
+ eor w10,w10,w15
1230
+ sli v23.4s,v29.4s,#8
1231
+ eor w11,w11,w16
1232
+ add v2.4s,v2.4s,v3.4s
1233
+ eor w12,w12,w13
1234
+ add v6.4s,v6.4s,v7.4s
1235
+ eor w9,w9,w14
1236
+ add v10.4s,v10.4s,v11.4s
1237
+ ror w10,w10,#20
1238
+ add v14.4s,v14.4s,v15.4s
1239
+ ror w11,w11,#20
1240
+ add v18.4s,v18.4s,v19.4s
1241
+ ror w12,w12,#20
1242
+ add v22.4s,v22.4s,v23.4s
1243
+ ror w9,w9,#20
1244
+ eor v24.16b,v1.16b,v2.16b
1245
+ add w5,w5,w10
1246
+ eor v25.16b,v5.16b,v6.16b
1247
+ add w6,w6,w11
1248
+ eor v26.16b,v9.16b,v10.16b
1249
+ add w7,w7,w12
1250
+ eor v27.16b,v13.16b,v14.16b
1251
+ add w8,w8,w9
1252
+ eor v28.16b,v17.16b,v18.16b
1253
+ eor w21,w21,w5
1254
+ eor v29.16b,v21.16b,v22.16b
1255
+ eor w17,w17,w6
1256
+ ushr v1.4s,v24.4s,#25
1257
+ eor w19,w19,w7
1258
+ ushr v5.4s,v25.4s,#25
1259
+ eor w20,w20,w8
1260
+ ushr v9.4s,v26.4s,#25
1261
+ ror w21,w21,#24
1262
+ ushr v13.4s,v27.4s,#25
1263
+ ror w17,w17,#24
1264
+ ushr v17.4s,v28.4s,#25
1265
+ ror w19,w19,#24
1266
+ ushr v21.4s,v29.4s,#25
1267
+ ror w20,w20,#24
1268
+ sli v1.4s,v24.4s,#7
1269
+ add w15,w15,w21
1270
+ sli v5.4s,v25.4s,#7
1271
+ add w16,w16,w17
1272
+ sli v9.4s,v26.4s,#7
1273
+ add w13,w13,w19
1274
+ sli v13.4s,v27.4s,#7
1275
+ add w14,w14,w20
1276
+ sli v17.4s,v28.4s,#7
1277
+ eor w10,w10,w15
1278
+ sli v21.4s,v29.4s,#7
1279
+ eor w11,w11,w16
1280
+ ext v2.16b,v2.16b,v2.16b,#8
1281
+ eor w12,w12,w13
1282
+ ext v6.16b,v6.16b,v6.16b,#8
1283
+ eor w9,w9,w14
1284
+ ext v10.16b,v10.16b,v10.16b,#8
1285
+ ror w10,w10,#25
1286
+ ext v14.16b,v14.16b,v14.16b,#8
1287
+ ror w11,w11,#25
1288
+ ext v18.16b,v18.16b,v18.16b,#8
1289
+ ror w12,w12,#25
1290
+ ext v22.16b,v22.16b,v22.16b,#8
1291
+ ror w9,w9,#25
1292
+ ext v3.16b,v3.16b,v3.16b,#4
1293
+ ext v7.16b,v7.16b,v7.16b,#4
1294
+ ext v11.16b,v11.16b,v11.16b,#4
1295
+ ext v15.16b,v15.16b,v15.16b,#4
1296
+ ext v19.16b,v19.16b,v19.16b,#4
1297
+ ext v23.16b,v23.16b,v23.16b,#4
1298
+ ext v1.16b,v1.16b,v1.16b,#12
1299
+ ext v5.16b,v5.16b,v5.16b,#12
1300
+ ext v9.16b,v9.16b,v9.16b,#12
1301
+ ext v13.16b,v13.16b,v13.16b,#12
1302
+ ext v17.16b,v17.16b,v17.16b,#12
1303
+ ext v21.16b,v21.16b,v21.16b,#12
1304
+ cbnz x4,.Loop_upper_neon
1305
+
1306
+ add w5,w5,w22 // accumulate key block
1307
+ add x6,x6,x22,lsr#32
1308
+ add w7,w7,w23
1309
+ add x8,x8,x23,lsr#32
1310
+ add w9,w9,w24
1311
+ add x10,x10,x24,lsr#32
1312
+ add w11,w11,w25
1313
+ add x12,x12,x25,lsr#32
1314
+ add w13,w13,w26
1315
+ add x14,x14,x26,lsr#32
1316
+ add w15,w15,w27
1317
+ add x16,x16,x27,lsr#32
1318
+ add w17,w17,w28
1319
+ add x19,x19,x28,lsr#32
1320
+ add w20,w20,w30
1321
+ add x21,x21,x30,lsr#32
1322
+
1323
+ add x5,x5,x6,lsl#32 // pack
1324
+ add x7,x7,x8,lsl#32
1325
+ ldp x6,x8,[x1,#0] // load input
1326
+ add x9,x9,x10,lsl#32
1327
+ add x11,x11,x12,lsl#32
1328
+ ldp x10,x12,[x1,#16]
1329
+ add x13,x13,x14,lsl#32
1330
+ add x15,x15,x16,lsl#32
1331
+ ldp x14,x16,[x1,#32]
1332
+ add x17,x17,x19,lsl#32
1333
+ add x20,x20,x21,lsl#32
1334
+ ldp x19,x21,[x1,#48]
1335
+ add x1,x1,#64
1336
+ #ifdef __AARCH64EB__
1337
+ rev x5,x5
1338
+ rev x7,x7
1339
+ rev x9,x9
1340
+ rev x11,x11
1341
+ rev x13,x13
1342
+ rev x15,x15
1343
+ rev x17,x17
1344
+ rev x20,x20
1345
+ #endif
1346
+ eor x5,x5,x6
1347
+ eor x7,x7,x8
1348
+ eor x9,x9,x10
1349
+ eor x11,x11,x12
1350
+ eor x13,x13,x14
1351
+ eor x15,x15,x16
1352
+ eor x17,x17,x19
1353
+ eor x20,x20,x21
1354
+
1355
+ stp x5,x7,[x0,#0] // store output
1356
+ add x28,x28,#1 // increment counter
1357
+ mov w5,w22 // unpack key block
1358
+ lsr x6,x22,#32
1359
+ stp x9,x11,[x0,#16]
1360
+ mov w7,w23
1361
+ lsr x8,x23,#32
1362
+ stp x13,x15,[x0,#32]
1363
+ mov w9,w24
1364
+ lsr x10,x24,#32
1365
+ stp x17,x20,[x0,#48]
1366
+ add x0,x0,#64
1367
+ mov w11,w25
1368
+ lsr x12,x25,#32
1369
+ mov w13,w26
1370
+ lsr x14,x26,#32
1371
+ mov w15,w27
1372
+ lsr x16,x27,#32
1373
+ mov w17,w28
1374
+ lsr x19,x28,#32
1375
+ mov w20,w30
1376
+ lsr x21,x30,#32
1377
+
1378
+ mov x4,#5
1379
+ .Loop_lower_neon:
1380
+ sub x4,x4,#1
1381
+ add v0.4s,v0.4s,v1.4s
1382
+ add w5,w5,w9
1383
+ add v4.4s,v4.4s,v5.4s
1384
+ add w6,w6,w10
1385
+ add v8.4s,v8.4s,v9.4s
1386
+ add w7,w7,w11
1387
+ add v12.4s,v12.4s,v13.4s
1388
+ add w8,w8,w12
1389
+ add v16.4s,v16.4s,v17.4s
1390
+ eor w17,w17,w5
1391
+ add v20.4s,v20.4s,v21.4s
1392
+ eor w19,w19,w6
1393
+ eor v3.16b,v3.16b,v0.16b
1394
+ eor w20,w20,w7
1395
+ eor v7.16b,v7.16b,v4.16b
1396
+ eor w21,w21,w8
1397
+ eor v11.16b,v11.16b,v8.16b
1398
+ ror w17,w17,#16
1399
+ eor v15.16b,v15.16b,v12.16b
1400
+ ror w19,w19,#16
1401
+ eor v19.16b,v19.16b,v16.16b
1402
+ ror w20,w20,#16
1403
+ eor v23.16b,v23.16b,v20.16b
1404
+ ror w21,w21,#16
1405
+ rev32 v3.8h,v3.8h
1406
+ add w13,w13,w17
1407
+ rev32 v7.8h,v7.8h
1408
+ add w14,w14,w19
1409
+ rev32 v11.8h,v11.8h
1410
+ add w15,w15,w20
1411
+ rev32 v15.8h,v15.8h
1412
+ add w16,w16,w21
1413
+ rev32 v19.8h,v19.8h
1414
+ eor w9,w9,w13
1415
+ rev32 v23.8h,v23.8h
1416
+ eor w10,w10,w14
1417
+ add v2.4s,v2.4s,v3.4s
1418
+ eor w11,w11,w15
1419
+ add v6.4s,v6.4s,v7.4s
1420
+ eor w12,w12,w16
1421
+ add v10.4s,v10.4s,v11.4s
1422
+ ror w9,w9,#20
1423
+ add v14.4s,v14.4s,v15.4s
1424
+ ror w10,w10,#20
1425
+ add v18.4s,v18.4s,v19.4s
1426
+ ror w11,w11,#20
1427
+ add v22.4s,v22.4s,v23.4s
1428
+ ror w12,w12,#20
1429
+ eor v24.16b,v1.16b,v2.16b
1430
+ add w5,w5,w9
1431
+ eor v25.16b,v5.16b,v6.16b
1432
+ add w6,w6,w10
1433
+ eor v26.16b,v9.16b,v10.16b
1434
+ add w7,w7,w11
1435
+ eor v27.16b,v13.16b,v14.16b
1436
+ add w8,w8,w12
1437
+ eor v28.16b,v17.16b,v18.16b
1438
+ eor w17,w17,w5
1439
+ eor v29.16b,v21.16b,v22.16b
1440
+ eor w19,w19,w6
1441
+ ushr v1.4s,v24.4s,#20
1442
+ eor w20,w20,w7
1443
+ ushr v5.4s,v25.4s,#20
1444
+ eor w21,w21,w8
1445
+ ushr v9.4s,v26.4s,#20
1446
+ ror w17,w17,#24
1447
+ ushr v13.4s,v27.4s,#20
1448
+ ror w19,w19,#24
1449
+ ushr v17.4s,v28.4s,#20
1450
+ ror w20,w20,#24
1451
+ ushr v21.4s,v29.4s,#20
1452
+ ror w21,w21,#24
1453
+ sli v1.4s,v24.4s,#12
1454
+ add w13,w13,w17
1455
+ sli v5.4s,v25.4s,#12
1456
+ add w14,w14,w19
1457
+ sli v9.4s,v26.4s,#12
1458
+ add w15,w15,w20
1459
+ sli v13.4s,v27.4s,#12
1460
+ add w16,w16,w21
1461
+ sli v17.4s,v28.4s,#12
1462
+ eor w9,w9,w13
1463
+ sli v21.4s,v29.4s,#12
1464
+ eor w10,w10,w14
1465
+ add v0.4s,v0.4s,v1.4s
1466
+ eor w11,w11,w15
1467
+ add v4.4s,v4.4s,v5.4s
1468
+ eor w12,w12,w16
1469
+ add v8.4s,v8.4s,v9.4s
1470
+ ror w9,w9,#25
1471
+ add v12.4s,v12.4s,v13.4s
1472
+ ror w10,w10,#25
1473
+ add v16.4s,v16.4s,v17.4s
1474
+ ror w11,w11,#25
1475
+ add v20.4s,v20.4s,v21.4s
1476
+ ror w12,w12,#25
1477
+ eor v24.16b,v3.16b,v0.16b
1478
+ add w5,w5,w10
1479
+ eor v25.16b,v7.16b,v4.16b
1480
+ add w6,w6,w11
1481
+ eor v26.16b,v11.16b,v8.16b
1482
+ add w7,w7,w12
1483
+ eor v27.16b,v15.16b,v12.16b
1484
+ add w8,w8,w9
1485
+ eor v28.16b,v19.16b,v16.16b
1486
+ eor w21,w21,w5
1487
+ eor v29.16b,v23.16b,v20.16b
1488
+ eor w17,w17,w6
1489
+ ushr v3.4s,v24.4s,#24
1490
+ eor w19,w19,w7
1491
+ ushr v7.4s,v25.4s,#24
1492
+ eor w20,w20,w8
1493
+ ushr v11.4s,v26.4s,#24
1494
+ ror w21,w21,#16
1495
+ ushr v15.4s,v27.4s,#24
1496
+ ror w17,w17,#16
1497
+ ushr v19.4s,v28.4s,#24
1498
+ ror w19,w19,#16
1499
+ ushr v23.4s,v29.4s,#24
1500
+ ror w20,w20,#16
1501
+ sli v3.4s,v24.4s,#8
1502
+ add w15,w15,w21
1503
+ sli v7.4s,v25.4s,#8
1504
+ add w16,w16,w17
1505
+ sli v11.4s,v26.4s,#8
1506
+ add w13,w13,w19
1507
+ sli v15.4s,v27.4s,#8
1508
+ add w14,w14,w20
1509
+ sli v19.4s,v28.4s,#8
1510
+ eor w10,w10,w15
1511
+ sli v23.4s,v29.4s,#8
1512
+ eor w11,w11,w16
1513
+ add v2.4s,v2.4s,v3.4s
1514
+ eor w12,w12,w13
1515
+ add v6.4s,v6.4s,v7.4s
1516
+ eor w9,w9,w14
1517
+ add v10.4s,v10.4s,v11.4s
1518
+ ror w10,w10,#20
1519
+ add v14.4s,v14.4s,v15.4s
1520
+ ror w11,w11,#20
1521
+ add v18.4s,v18.4s,v19.4s
1522
+ ror w12,w12,#20
1523
+ add v22.4s,v22.4s,v23.4s
1524
+ ror w9,w9,#20
1525
+ eor v24.16b,v1.16b,v2.16b
1526
+ add w5,w5,w10
1527
+ eor v25.16b,v5.16b,v6.16b
1528
+ add w6,w6,w11
1529
+ eor v26.16b,v9.16b,v10.16b
1530
+ add w7,w7,w12
1531
+ eor v27.16b,v13.16b,v14.16b
1532
+ add w8,w8,w9
1533
+ eor v28.16b,v17.16b,v18.16b
1534
+ eor w21,w21,w5
1535
+ eor v29.16b,v21.16b,v22.16b
1536
+ eor w17,w17,w6
1537
+ ushr v1.4s,v24.4s,#25
1538
+ eor w19,w19,w7
1539
+ ushr v5.4s,v25.4s,#25
1540
+ eor w20,w20,w8
1541
+ ushr v9.4s,v26.4s,#25
1542
+ ror w21,w21,#24
1543
+ ushr v13.4s,v27.4s,#25
1544
+ ror w17,w17,#24
1545
+ ushr v17.4s,v28.4s,#25
1546
+ ror w19,w19,#24
1547
+ ushr v21.4s,v29.4s,#25
1548
+ ror w20,w20,#24
1549
+ sli v1.4s,v24.4s,#7
1550
+ add w15,w15,w21
1551
+ sli v5.4s,v25.4s,#7
1552
+ add w16,w16,w17
1553
+ sli v9.4s,v26.4s,#7
1554
+ add w13,w13,w19
1555
+ sli v13.4s,v27.4s,#7
1556
+ add w14,w14,w20
1557
+ sli v17.4s,v28.4s,#7
1558
+ eor w10,w10,w15
1559
+ sli v21.4s,v29.4s,#7
1560
+ eor w11,w11,w16
1561
+ ext v2.16b,v2.16b,v2.16b,#8
1562
+ eor w12,w12,w13
1563
+ ext v6.16b,v6.16b,v6.16b,#8
1564
+ eor w9,w9,w14
1565
+ ext v10.16b,v10.16b,v10.16b,#8
1566
+ ror w10,w10,#25
1567
+ ext v14.16b,v14.16b,v14.16b,#8
1568
+ ror w11,w11,#25
1569
+ ext v18.16b,v18.16b,v18.16b,#8
1570
+ ror w12,w12,#25
1571
+ ext v22.16b,v22.16b,v22.16b,#8
1572
+ ror w9,w9,#25
1573
+ ext v3.16b,v3.16b,v3.16b,#12
1574
+ ext v7.16b,v7.16b,v7.16b,#12
1575
+ ext v11.16b,v11.16b,v11.16b,#12
1576
+ ext v15.16b,v15.16b,v15.16b,#12
1577
+ ext v19.16b,v19.16b,v19.16b,#12
1578
+ ext v23.16b,v23.16b,v23.16b,#12
1579
+ ext v1.16b,v1.16b,v1.16b,#4
1580
+ ext v5.16b,v5.16b,v5.16b,#4
1581
+ ext v9.16b,v9.16b,v9.16b,#4
1582
+ ext v13.16b,v13.16b,v13.16b,#4
1583
+ ext v17.16b,v17.16b,v17.16b,#4
1584
+ ext v21.16b,v21.16b,v21.16b,#4
1585
+ add v0.4s,v0.4s,v1.4s
1586
+ add w5,w5,w9
1587
+ add v4.4s,v4.4s,v5.4s
1588
+ add w6,w6,w10
1589
+ add v8.4s,v8.4s,v9.4s
1590
+ add w7,w7,w11
1591
+ add v12.4s,v12.4s,v13.4s
1592
+ add w8,w8,w12
1593
+ add v16.4s,v16.4s,v17.4s
1594
+ eor w17,w17,w5
1595
+ add v20.4s,v20.4s,v21.4s
1596
+ eor w19,w19,w6
1597
+ eor v3.16b,v3.16b,v0.16b
1598
+ eor w20,w20,w7
1599
+ eor v7.16b,v7.16b,v4.16b
1600
+ eor w21,w21,w8
1601
+ eor v11.16b,v11.16b,v8.16b
1602
+ ror w17,w17,#16
1603
+ eor v15.16b,v15.16b,v12.16b
1604
+ ror w19,w19,#16
1605
+ eor v19.16b,v19.16b,v16.16b
1606
+ ror w20,w20,#16
1607
+ eor v23.16b,v23.16b,v20.16b
1608
+ ror w21,w21,#16
1609
+ rev32 v3.8h,v3.8h
1610
+ add w13,w13,w17
1611
+ rev32 v7.8h,v7.8h
1612
+ add w14,w14,w19
1613
+ rev32 v11.8h,v11.8h
1614
+ add w15,w15,w20
1615
+ rev32 v15.8h,v15.8h
1616
+ add w16,w16,w21
1617
+ rev32 v19.8h,v19.8h
1618
+ eor w9,w9,w13
1619
+ rev32 v23.8h,v23.8h
1620
+ eor w10,w10,w14
1621
+ add v2.4s,v2.4s,v3.4s
1622
+ eor w11,w11,w15
1623
+ add v6.4s,v6.4s,v7.4s
1624
+ eor w12,w12,w16
1625
+ add v10.4s,v10.4s,v11.4s
1626
+ ror w9,w9,#20
1627
+ add v14.4s,v14.4s,v15.4s
1628
+ ror w10,w10,#20
1629
+ add v18.4s,v18.4s,v19.4s
1630
+ ror w11,w11,#20
1631
+ add v22.4s,v22.4s,v23.4s
1632
+ ror w12,w12,#20
1633
+ eor v24.16b,v1.16b,v2.16b
1634
+ add w5,w5,w9
1635
+ eor v25.16b,v5.16b,v6.16b
1636
+ add w6,w6,w10
1637
+ eor v26.16b,v9.16b,v10.16b
1638
+ add w7,w7,w11
1639
+ eor v27.16b,v13.16b,v14.16b
1640
+ add w8,w8,w12
1641
+ eor v28.16b,v17.16b,v18.16b
1642
+ eor w17,w17,w5
1643
+ eor v29.16b,v21.16b,v22.16b
1644
+ eor w19,w19,w6
1645
+ ushr v1.4s,v24.4s,#20
1646
+ eor w20,w20,w7
1647
+ ushr v5.4s,v25.4s,#20
1648
+ eor w21,w21,w8
1649
+ ushr v9.4s,v26.4s,#20
1650
+ ror w17,w17,#24
1651
+ ushr v13.4s,v27.4s,#20
1652
+ ror w19,w19,#24
1653
+ ushr v17.4s,v28.4s,#20
1654
+ ror w20,w20,#24
1655
+ ushr v21.4s,v29.4s,#20
1656
+ ror w21,w21,#24
1657
+ sli v1.4s,v24.4s,#12
1658
+ add w13,w13,w17
1659
+ sli v5.4s,v25.4s,#12
1660
+ add w14,w14,w19
1661
+ sli v9.4s,v26.4s,#12
1662
+ add w15,w15,w20
1663
+ sli v13.4s,v27.4s,#12
1664
+ add w16,w16,w21
1665
+ sli v17.4s,v28.4s,#12
1666
+ eor w9,w9,w13
1667
+ sli v21.4s,v29.4s,#12
1668
+ eor w10,w10,w14
1669
+ add v0.4s,v0.4s,v1.4s
1670
+ eor w11,w11,w15
1671
+ add v4.4s,v4.4s,v5.4s
1672
+ eor w12,w12,w16
1673
+ add v8.4s,v8.4s,v9.4s
1674
+ ror w9,w9,#25
1675
+ add v12.4s,v12.4s,v13.4s
1676
+ ror w10,w10,#25
1677
+ add v16.4s,v16.4s,v17.4s
1678
+ ror w11,w11,#25
1679
+ add v20.4s,v20.4s,v21.4s
1680
+ ror w12,w12,#25
1681
+ eor v24.16b,v3.16b,v0.16b
1682
+ add w5,w5,w10
1683
+ eor v25.16b,v7.16b,v4.16b
1684
+ add w6,w6,w11
1685
+ eor v26.16b,v11.16b,v8.16b
1686
+ add w7,w7,w12
1687
+ eor v27.16b,v15.16b,v12.16b
1688
+ add w8,w8,w9
1689
+ eor v28.16b,v19.16b,v16.16b
1690
+ eor w21,w21,w5
1691
+ eor v29.16b,v23.16b,v20.16b
1692
+ eor w17,w17,w6
1693
+ ushr v3.4s,v24.4s,#24
1694
+ eor w19,w19,w7
1695
+ ushr v7.4s,v25.4s,#24
1696
+ eor w20,w20,w8
1697
+ ushr v11.4s,v26.4s,#24
1698
+ ror w21,w21,#16
1699
+ ushr v15.4s,v27.4s,#24
1700
+ ror w17,w17,#16
1701
+ ushr v19.4s,v28.4s,#24
1702
+ ror w19,w19,#16
1703
+ ushr v23.4s,v29.4s,#24
1704
+ ror w20,w20,#16
1705
+ sli v3.4s,v24.4s,#8
1706
+ add w15,w15,w21
1707
+ sli v7.4s,v25.4s,#8
1708
+ add w16,w16,w17
1709
+ sli v11.4s,v26.4s,#8
1710
+ add w13,w13,w19
1711
+ sli v15.4s,v27.4s,#8
1712
+ add w14,w14,w20
1713
+ sli v19.4s,v28.4s,#8
1714
+ eor w10,w10,w15
1715
+ sli v23.4s,v29.4s,#8
1716
+ eor w11,w11,w16
1717
+ add v2.4s,v2.4s,v3.4s
1718
+ eor w12,w12,w13
1719
+ add v6.4s,v6.4s,v7.4s
1720
+ eor w9,w9,w14
1721
+ add v10.4s,v10.4s,v11.4s
1722
+ ror w10,w10,#20
1723
+ add v14.4s,v14.4s,v15.4s
1724
+ ror w11,w11,#20
1725
+ add v18.4s,v18.4s,v19.4s
1726
+ ror w12,w12,#20
1727
+ add v22.4s,v22.4s,v23.4s
1728
+ ror w9,w9,#20
1729
+ eor v24.16b,v1.16b,v2.16b
1730
+ add w5,w5,w10
1731
+ eor v25.16b,v5.16b,v6.16b
1732
+ add w6,w6,w11
1733
+ eor v26.16b,v9.16b,v10.16b
1734
+ add w7,w7,w12
1735
+ eor v27.16b,v13.16b,v14.16b
1736
+ add w8,w8,w9
1737
+ eor v28.16b,v17.16b,v18.16b
1738
+ eor w21,w21,w5
1739
+ eor v29.16b,v21.16b,v22.16b
1740
+ eor w17,w17,w6
1741
+ ushr v1.4s,v24.4s,#25
1742
+ eor w19,w19,w7
1743
+ ushr v5.4s,v25.4s,#25
1744
+ eor w20,w20,w8
1745
+ ushr v9.4s,v26.4s,#25
1746
+ ror w21,w21,#24
1747
+ ushr v13.4s,v27.4s,#25
1748
+ ror w17,w17,#24
1749
+ ushr v17.4s,v28.4s,#25
1750
+ ror w19,w19,#24
1751
+ ushr v21.4s,v29.4s,#25
1752
+ ror w20,w20,#24
1753
+ sli v1.4s,v24.4s,#7
1754
+ add w15,w15,w21
1755
+ sli v5.4s,v25.4s,#7
1756
+ add w16,w16,w17
1757
+ sli v9.4s,v26.4s,#7
1758
+ add w13,w13,w19
1759
+ sli v13.4s,v27.4s,#7
1760
+ add w14,w14,w20
1761
+ sli v17.4s,v28.4s,#7
1762
+ eor w10,w10,w15
1763
+ sli v21.4s,v29.4s,#7
1764
+ eor w11,w11,w16
1765
+ ext v2.16b,v2.16b,v2.16b,#8
1766
+ eor w12,w12,w13
1767
+ ext v6.16b,v6.16b,v6.16b,#8
1768
+ eor w9,w9,w14
1769
+ ext v10.16b,v10.16b,v10.16b,#8
1770
+ ror w10,w10,#25
1771
+ ext v14.16b,v14.16b,v14.16b,#8
1772
+ ror w11,w11,#25
1773
+ ext v18.16b,v18.16b,v18.16b,#8
1774
+ ror w12,w12,#25
1775
+ ext v22.16b,v22.16b,v22.16b,#8
1776
+ ror w9,w9,#25
1777
+ ext v3.16b,v3.16b,v3.16b,#4
1778
+ ext v7.16b,v7.16b,v7.16b,#4
1779
+ ext v11.16b,v11.16b,v11.16b,#4
1780
+ ext v15.16b,v15.16b,v15.16b,#4
1781
+ ext v19.16b,v19.16b,v19.16b,#4
1782
+ ext v23.16b,v23.16b,v23.16b,#4
1783
+ ext v1.16b,v1.16b,v1.16b,#12
1784
+ ext v5.16b,v5.16b,v5.16b,#12
1785
+ ext v9.16b,v9.16b,v9.16b,#12
1786
+ ext v13.16b,v13.16b,v13.16b,#12
1787
+ ext v17.16b,v17.16b,v17.16b,#12
1788
+ ext v21.16b,v21.16b,v21.16b,#12
1789
+ cbnz x4,.Loop_lower_neon
1790
+
1791
+ add w5,w5,w22 // accumulate key block
1792
+ ldp q24,q25,[sp,#0]
1793
+ add x6,x6,x22,lsr#32
1794
+ ldp q26,q27,[sp,#32]
1795
+ add w7,w7,w23
1796
+ ldp q28,q29,[sp,#64]
1797
+ add x8,x8,x23,lsr#32
1798
+ add v0.4s,v0.4s,v24.4s
1799
+ add w9,w9,w24
1800
+ add v4.4s,v4.4s,v24.4s
1801
+ add x10,x10,x24,lsr#32
1802
+ add v8.4s,v8.4s,v24.4s
1803
+ add w11,w11,w25
1804
+ add v12.4s,v12.4s,v24.4s
1805
+ add x12,x12,x25,lsr#32
1806
+ add v16.4s,v16.4s,v24.4s
1807
+ add w13,w13,w26
1808
+ add v20.4s,v20.4s,v24.4s
1809
+ add x14,x14,x26,lsr#32
1810
+ add v2.4s,v2.4s,v26.4s
1811
+ add w15,w15,w27
1812
+ add v6.4s,v6.4s,v26.4s
1813
+ add x16,x16,x27,lsr#32
1814
+ add v10.4s,v10.4s,v26.4s
1815
+ add w17,w17,w28
1816
+ add v14.4s,v14.4s,v26.4s
1817
+ add x19,x19,x28,lsr#32
1818
+ add v18.4s,v18.4s,v26.4s
1819
+ add w20,w20,w30
1820
+ add v22.4s,v22.4s,v26.4s
1821
+ add x21,x21,x30,lsr#32
1822
+ add v19.4s,v19.4s,v31.4s // +4
1823
+ add x5,x5,x6,lsl#32 // pack
1824
+ add v23.4s,v23.4s,v31.4s // +4
1825
+ add x7,x7,x8,lsl#32
1826
+ add v3.4s,v3.4s,v27.4s
1827
+ ldp x6,x8,[x1,#0] // load input
1828
+ add v7.4s,v7.4s,v28.4s
1829
+ add x9,x9,x10,lsl#32
1830
+ add v11.4s,v11.4s,v29.4s
1831
+ add x11,x11,x12,lsl#32
1832
+ add v15.4s,v15.4s,v30.4s
1833
+ ldp x10,x12,[x1,#16]
1834
+ add v19.4s,v19.4s,v27.4s
1835
+ add x13,x13,x14,lsl#32
1836
+ add v23.4s,v23.4s,v28.4s
1837
+ add x15,x15,x16,lsl#32
1838
+ add v1.4s,v1.4s,v25.4s
1839
+ ldp x14,x16,[x1,#32]
1840
+ add v5.4s,v5.4s,v25.4s
1841
+ add x17,x17,x19,lsl#32
1842
+ add v9.4s,v9.4s,v25.4s
1843
+ add x20,x20,x21,lsl#32
1844
+ add v13.4s,v13.4s,v25.4s
1845
+ ldp x19,x21,[x1,#48]
1846
+ add v17.4s,v17.4s,v25.4s
1847
+ add x1,x1,#64
1848
+ add v21.4s,v21.4s,v25.4s
1849
+
1850
+ #ifdef __AARCH64EB__
1851
+ rev x5,x5
1852
+ rev x7,x7
1853
+ rev x9,x9
1854
+ rev x11,x11
1855
+ rev x13,x13
1856
+ rev x15,x15
1857
+ rev x17,x17
1858
+ rev x20,x20
1859
+ #endif
1860
+ ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x1],#64
1861
+ eor x5,x5,x6
1862
+ eor x7,x7,x8
1863
+ eor x9,x9,x10
1864
+ eor x11,x11,x12
1865
+ eor x13,x13,x14
1866
+ eor v0.16b,v0.16b,v24.16b
1867
+ eor x15,x15,x16
1868
+ eor v1.16b,v1.16b,v25.16b
1869
+ eor x17,x17,x19
1870
+ eor v2.16b,v2.16b,v26.16b
1871
+ eor x20,x20,x21
1872
+ eor v3.16b,v3.16b,v27.16b
1873
+ ld1 {v24.16b,v25.16b,v26.16b,v27.16b},[x1],#64
1874
+
1875
+ stp x5,x7,[x0,#0] // store output
1876
+ add x28,x28,#7 // increment counter
1877
+ stp x9,x11,[x0,#16]
1878
+ stp x13,x15,[x0,#32]
1879
+ stp x17,x20,[x0,#48]
1880
+ add x0,x0,#64
1881
+ st1 {v0.16b,v1.16b,v2.16b,v3.16b},[x0],#64
1882
+
1883
+ ld1 {v0.16b,v1.16b,v2.16b,v3.16b},[x1],#64
1884
+ eor v4.16b,v4.16b,v24.16b
1885
+ eor v5.16b,v5.16b,v25.16b
1886
+ eor v6.16b,v6.16b,v26.16b
1887
+ eor v7.16b,v7.16b,v27.16b
1888
+ st1 {v4.16b,v5.16b,v6.16b,v7.16b},[x0],#64
1889
+
1890
+ ld1 {v4.16b,v5.16b,v6.16b,v7.16b},[x1],#64
1891
+ eor v8.16b,v8.16b,v0.16b
1892
+ ldp q24,q25,[sp,#0]
1893
+ eor v9.16b,v9.16b,v1.16b
1894
+ ldp q26,q27,[sp,#32]
1895
+ eor v10.16b,v10.16b,v2.16b
1896
+ eor v11.16b,v11.16b,v3.16b
1897
+ st1 {v8.16b,v9.16b,v10.16b,v11.16b},[x0],#64
1898
+
1899
+ ld1 {v8.16b,v9.16b,v10.16b,v11.16b},[x1],#64
1900
+ eor v12.16b,v12.16b,v4.16b
1901
+ eor v13.16b,v13.16b,v5.16b
1902
+ eor v14.16b,v14.16b,v6.16b
1903
+ eor v15.16b,v15.16b,v7.16b
1904
+ st1 {v12.16b,v13.16b,v14.16b,v15.16b},[x0],#64
1905
+
1906
+ ld1 {v12.16b,v13.16b,v14.16b,v15.16b},[x1],#64
1907
+ eor v16.16b,v16.16b,v8.16b
1908
+ eor v17.16b,v17.16b,v9.16b
1909
+ eor v18.16b,v18.16b,v10.16b
1910
+ eor v19.16b,v19.16b,v11.16b
1911
+ st1 {v16.16b,v17.16b,v18.16b,v19.16b},[x0],#64
1912
+
1913
+ shl v0.4s,v31.4s,#1 // 4 -> 8
1914
+ eor v20.16b,v20.16b,v12.16b
1915
+ eor v21.16b,v21.16b,v13.16b
1916
+ eor v22.16b,v22.16b,v14.16b
1917
+ eor v23.16b,v23.16b,v15.16b
1918
+ st1 {v20.16b,v21.16b,v22.16b,v23.16b},[x0],#64
1919
+
1920
+ add v27.4s,v27.4s,v0.4s // += 8
1921
+ add v28.4s,v28.4s,v0.4s
1922
+ add v29.4s,v29.4s,v0.4s
1923
+ add v30.4s,v30.4s,v0.4s
1924
+
1925
+ b.hs .Loop_outer_512_neon
1926
+
1927
+ adds x2,x2,#512
1928
+ ushr v0.4s,v31.4s,#2 // 4 -> 1
1929
+
1930
+ ldp d8,d9,[sp,#128+0] // meet ABI requirements
1931
+ ldp d10,d11,[sp,#128+16]
1932
+ ldp d12,d13,[sp,#128+32]
1933
+ ldp d14,d15,[sp,#128+48]
1934
+
1935
+ stp q24,q31,[sp,#0] // wipe off-load area
1936
+ stp q24,q31,[sp,#32]
1937
+ stp q24,q31,[sp,#64]
1938
+
1939
+ b.eq .Ldone_512_neon
1940
+
1941
+ cmp x2,#192
1942
+ sub v27.4s,v27.4s,v0.4s // -= 1
1943
+ sub v28.4s,v28.4s,v0.4s
1944
+ sub v29.4s,v29.4s,v0.4s
1945
+ add sp,sp,#128
1946
+ b.hs .Loop_outer_neon
1947
+
1948
+ eor v25.16b,v25.16b,v25.16b
1949
+ eor v26.16b,v26.16b,v26.16b
1950
+ eor v27.16b,v27.16b,v27.16b
1951
+ eor v28.16b,v28.16b,v28.16b
1952
+ eor v29.16b,v29.16b,v29.16b
1953
+ eor v30.16b,v30.16b,v30.16b
1954
+ b .Loop_outer
1955
+
1956
+ .Ldone_512_neon:
1957
+ ldp x19,x20,[x29,#16]
1958
+ add sp,sp,#128+64
1959
+ ldp x21,x22,[x29,#32]
1960
+ ldp x23,x24,[x29,#48]
1961
+ ldp x25,x26,[x29,#64]
1962
+ ldp x27,x28,[x29,#80]
1963
+ ldp x29,x30,[sp],#96
1964
+ AARCH64_VALIDATE_LINK_REGISTER
1965
+ ret
1966
+ .size ChaCha20_512_neon,.-ChaCha20_512_neon
1967
+ #endif // !OPENSSL_NO_ASM && defined(OPENSSL_AARCH64) && defined(__ELF__)