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