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,1611 @@
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_X86_64) && defined(__ELF__)
7
+ .text
8
+
9
+ .section .rodata
10
+
11
+ .align 64
12
+ chacha_constants:
13
+ .Lzero:
14
+ .long 0,0,0,0
15
+ .Lone:
16
+ .long 1,0,0,0
17
+ .Linc:
18
+ .long 0,1,2,3
19
+ .Lfour:
20
+ .long 4,4,4,4
21
+ .Lincy:
22
+ .long 0,2,4,6,1,3,5,7
23
+ .Leight:
24
+ .long 8,8,8,8,8,8,8,8
25
+ .Lrot16:
26
+ .byte 0x2,0x3,0x0,0x1, 0x6,0x7,0x4,0x5, 0xa,0xb,0x8,0x9, 0xe,0xf,0xc,0xd
27
+ .Lrot24:
28
+ .byte 0x3,0x0,0x1,0x2, 0x7,0x4,0x5,0x6, 0xb,0x8,0x9,0xa, 0xf,0xc,0xd,0xe
29
+ .Lsigma:
30
+ .byte 101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107,0
31
+ .align 64
32
+ .Lzeroz:
33
+ .long 0,0,0,0, 1,0,0,0, 2,0,0,0, 3,0,0,0
34
+ .Lfourz:
35
+ .long 4,0,0,0, 4,0,0,0, 4,0,0,0, 4,0,0,0
36
+ .Lincz:
37
+ .long 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
38
+ .Lsixteen:
39
+ .long 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16
40
+ .byte 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54,95,54,52,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
41
+ .text
42
+ .globl ChaCha20_ctr32_nohw
43
+ .hidden ChaCha20_ctr32_nohw
44
+ .type ChaCha20_ctr32_nohw,@function
45
+ .align 64
46
+ ChaCha20_ctr32_nohw:
47
+ .cfi_startproc
48
+ _CET_ENDBR
49
+ pushq %rbx
50
+ .cfi_adjust_cfa_offset 8
51
+ .cfi_offset rbx,-16
52
+ pushq %rbp
53
+ .cfi_adjust_cfa_offset 8
54
+ .cfi_offset rbp,-24
55
+ pushq %r12
56
+ .cfi_adjust_cfa_offset 8
57
+ .cfi_offset r12,-32
58
+ pushq %r13
59
+ .cfi_adjust_cfa_offset 8
60
+ .cfi_offset r13,-40
61
+ pushq %r14
62
+ .cfi_adjust_cfa_offset 8
63
+ .cfi_offset r14,-48
64
+ pushq %r15
65
+ .cfi_adjust_cfa_offset 8
66
+ .cfi_offset r15,-56
67
+ subq $64+24,%rsp
68
+ .cfi_adjust_cfa_offset 88
69
+ .Lctr32_body:
70
+
71
+ // movdqa .Lsigma(%rip),%xmm0
72
+ movdqu (%rcx),%xmm1
73
+ movdqu 16(%rcx),%xmm2
74
+ movdqu (%r8),%xmm3
75
+ movdqa .Lone(%rip),%xmm4
76
+
77
+ // movdqa %xmm0,4*0(%rsp) # key[0]
78
+ movdqa %xmm1,16(%rsp) // key[1]
79
+ movdqa %xmm2,32(%rsp) // key[2]
80
+ movdqa %xmm3,48(%rsp) // key[3]
81
+ movq %rdx,%rbp // reassign %rdx
82
+ jmp .Loop_outer
83
+
84
+ .align 32
85
+ .Loop_outer:
86
+ movl $0x61707865,%eax // 'expa'
87
+ movl $0x3320646e,%ebx // 'nd 3'
88
+ movl $0x79622d32,%ecx // '2-by'
89
+ movl $0x6b206574,%edx // 'te k'
90
+ movl 16(%rsp),%r8d
91
+ movl 20(%rsp),%r9d
92
+ movl 24(%rsp),%r10d
93
+ movl 28(%rsp),%r11d
94
+ movd %xmm3,%r12d
95
+ movl 52(%rsp),%r13d
96
+ movl 56(%rsp),%r14d
97
+ movl 60(%rsp),%r15d
98
+
99
+ movq %rbp,64+0(%rsp) // save len
100
+ movl $10,%ebp
101
+ movq %rsi,64+8(%rsp) // save inp
102
+ movq %xmm2,%rsi // "%nox"
103
+ movq %rdi,64+16(%rsp) // save out
104
+ movq %rsi,%rdi
105
+ shrq $32,%rdi // "%nox"
106
+ jmp .Loop
107
+
108
+ .align 32
109
+ .Loop:
110
+ addl %r8d,%eax
111
+ xorl %eax,%r12d
112
+ roll $16,%r12d
113
+ addl %r9d,%ebx
114
+ xorl %ebx,%r13d
115
+ roll $16,%r13d
116
+ addl %r12d,%esi
117
+ xorl %esi,%r8d
118
+ roll $12,%r8d
119
+ addl %r13d,%edi
120
+ xorl %edi,%r9d
121
+ roll $12,%r9d
122
+ addl %r8d,%eax
123
+ xorl %eax,%r12d
124
+ roll $8,%r12d
125
+ addl %r9d,%ebx
126
+ xorl %ebx,%r13d
127
+ roll $8,%r13d
128
+ addl %r12d,%esi
129
+ xorl %esi,%r8d
130
+ roll $7,%r8d
131
+ addl %r13d,%edi
132
+ xorl %edi,%r9d
133
+ roll $7,%r9d
134
+ movl %esi,32(%rsp)
135
+ movl %edi,36(%rsp)
136
+ movl 40(%rsp),%esi
137
+ movl 44(%rsp),%edi
138
+ addl %r10d,%ecx
139
+ xorl %ecx,%r14d
140
+ roll $16,%r14d
141
+ addl %r11d,%edx
142
+ xorl %edx,%r15d
143
+ roll $16,%r15d
144
+ addl %r14d,%esi
145
+ xorl %esi,%r10d
146
+ roll $12,%r10d
147
+ addl %r15d,%edi
148
+ xorl %edi,%r11d
149
+ roll $12,%r11d
150
+ addl %r10d,%ecx
151
+ xorl %ecx,%r14d
152
+ roll $8,%r14d
153
+ addl %r11d,%edx
154
+ xorl %edx,%r15d
155
+ roll $8,%r15d
156
+ addl %r14d,%esi
157
+ xorl %esi,%r10d
158
+ roll $7,%r10d
159
+ addl %r15d,%edi
160
+ xorl %edi,%r11d
161
+ roll $7,%r11d
162
+ addl %r9d,%eax
163
+ xorl %eax,%r15d
164
+ roll $16,%r15d
165
+ addl %r10d,%ebx
166
+ xorl %ebx,%r12d
167
+ roll $16,%r12d
168
+ addl %r15d,%esi
169
+ xorl %esi,%r9d
170
+ roll $12,%r9d
171
+ addl %r12d,%edi
172
+ xorl %edi,%r10d
173
+ roll $12,%r10d
174
+ addl %r9d,%eax
175
+ xorl %eax,%r15d
176
+ roll $8,%r15d
177
+ addl %r10d,%ebx
178
+ xorl %ebx,%r12d
179
+ roll $8,%r12d
180
+ addl %r15d,%esi
181
+ xorl %esi,%r9d
182
+ roll $7,%r9d
183
+ addl %r12d,%edi
184
+ xorl %edi,%r10d
185
+ roll $7,%r10d
186
+ movl %esi,40(%rsp)
187
+ movl %edi,44(%rsp)
188
+ movl 32(%rsp),%esi
189
+ movl 36(%rsp),%edi
190
+ addl %r11d,%ecx
191
+ xorl %ecx,%r13d
192
+ roll $16,%r13d
193
+ addl %r8d,%edx
194
+ xorl %edx,%r14d
195
+ roll $16,%r14d
196
+ addl %r13d,%esi
197
+ xorl %esi,%r11d
198
+ roll $12,%r11d
199
+ addl %r14d,%edi
200
+ xorl %edi,%r8d
201
+ roll $12,%r8d
202
+ addl %r11d,%ecx
203
+ xorl %ecx,%r13d
204
+ roll $8,%r13d
205
+ addl %r8d,%edx
206
+ xorl %edx,%r14d
207
+ roll $8,%r14d
208
+ addl %r13d,%esi
209
+ xorl %esi,%r11d
210
+ roll $7,%r11d
211
+ addl %r14d,%edi
212
+ xorl %edi,%r8d
213
+ roll $7,%r8d
214
+ decl %ebp
215
+ jnz .Loop
216
+ movl %edi,36(%rsp) // modulo-scheduled
217
+ movl %esi,32(%rsp)
218
+ movq 64(%rsp),%rbp // load len
219
+ movdqa %xmm2,%xmm1
220
+ movq 64+8(%rsp),%rsi // load inp
221
+ paddd %xmm4,%xmm3 // increment counter
222
+ movq 64+16(%rsp),%rdi // load out
223
+
224
+ addl $0x61707865,%eax // 'expa'
225
+ addl $0x3320646e,%ebx // 'nd 3'
226
+ addl $0x79622d32,%ecx // '2-by'
227
+ addl $0x6b206574,%edx // 'te k'
228
+ addl 16(%rsp),%r8d
229
+ addl 20(%rsp),%r9d
230
+ addl 24(%rsp),%r10d
231
+ addl 28(%rsp),%r11d
232
+ addl 48(%rsp),%r12d
233
+ addl 52(%rsp),%r13d
234
+ addl 56(%rsp),%r14d
235
+ addl 60(%rsp),%r15d
236
+ paddd 32(%rsp),%xmm1
237
+
238
+ cmpq $64,%rbp
239
+ jb .Ltail
240
+
241
+ xorl 0(%rsi),%eax // xor with input
242
+ xorl 4(%rsi),%ebx
243
+ xorl 8(%rsi),%ecx
244
+ xorl 12(%rsi),%edx
245
+ xorl 16(%rsi),%r8d
246
+ xorl 20(%rsi),%r9d
247
+ xorl 24(%rsi),%r10d
248
+ xorl 28(%rsi),%r11d
249
+ movdqu 32(%rsi),%xmm0
250
+ xorl 48(%rsi),%r12d
251
+ xorl 52(%rsi),%r13d
252
+ xorl 56(%rsi),%r14d
253
+ xorl 60(%rsi),%r15d
254
+ leaq 64(%rsi),%rsi // inp+=64
255
+ pxor %xmm1,%xmm0
256
+
257
+ movdqa %xmm2,32(%rsp)
258
+ movd %xmm3,48(%rsp)
259
+
260
+ movl %eax,0(%rdi) // write output
261
+ movl %ebx,4(%rdi)
262
+ movl %ecx,8(%rdi)
263
+ movl %edx,12(%rdi)
264
+ movl %r8d,16(%rdi)
265
+ movl %r9d,20(%rdi)
266
+ movl %r10d,24(%rdi)
267
+ movl %r11d,28(%rdi)
268
+ movdqu %xmm0,32(%rdi)
269
+ movl %r12d,48(%rdi)
270
+ movl %r13d,52(%rdi)
271
+ movl %r14d,56(%rdi)
272
+ movl %r15d,60(%rdi)
273
+ leaq 64(%rdi),%rdi // out+=64
274
+
275
+ subq $64,%rbp
276
+ jnz .Loop_outer
277
+
278
+ jmp .Ldone
279
+
280
+ .align 16
281
+ .Ltail:
282
+ movl %eax,0(%rsp)
283
+ movl %ebx,4(%rsp)
284
+ xorq %rbx,%rbx
285
+ movl %ecx,8(%rsp)
286
+ movl %edx,12(%rsp)
287
+ movl %r8d,16(%rsp)
288
+ movl %r9d,20(%rsp)
289
+ movl %r10d,24(%rsp)
290
+ movl %r11d,28(%rsp)
291
+ movdqa %xmm1,32(%rsp)
292
+ movl %r12d,48(%rsp)
293
+ movl %r13d,52(%rsp)
294
+ movl %r14d,56(%rsp)
295
+ movl %r15d,60(%rsp)
296
+
297
+ .Loop_tail:
298
+ movzbl (%rsi,%rbx,1),%eax
299
+ movzbl (%rsp,%rbx,1),%edx
300
+ leaq 1(%rbx),%rbx
301
+ xorl %edx,%eax
302
+ movb %al,-1(%rdi,%rbx,1)
303
+ decq %rbp
304
+ jnz .Loop_tail
305
+
306
+ .Ldone:
307
+ leaq 64+24+48(%rsp),%rsi
308
+ movq -48(%rsi),%r15
309
+ .cfi_restore r15
310
+ movq -40(%rsi),%r14
311
+ .cfi_restore r14
312
+ movq -32(%rsi),%r13
313
+ .cfi_restore r13
314
+ movq -24(%rsi),%r12
315
+ .cfi_restore r12
316
+ movq -16(%rsi),%rbp
317
+ .cfi_restore rbp
318
+ movq -8(%rsi),%rbx
319
+ .cfi_restore rbx
320
+ leaq (%rsi),%rsp
321
+ .cfi_adjust_cfa_offset -136
322
+ .Lno_data:
323
+ ret
324
+ .cfi_endproc
325
+ .size ChaCha20_ctr32_nohw,.-ChaCha20_ctr32_nohw
326
+ .globl ChaCha20_ctr32_ssse3
327
+ .hidden ChaCha20_ctr32_ssse3
328
+ .type ChaCha20_ctr32_ssse3,@function
329
+ .align 32
330
+ ChaCha20_ctr32_ssse3:
331
+ .cfi_startproc
332
+ _CET_ENDBR
333
+ movq %rsp,%r9 // frame pointer
334
+ .cfi_def_cfa_register r9
335
+ subq $64+8,%rsp
336
+ movdqa .Lsigma(%rip),%xmm0
337
+ movdqu (%rcx),%xmm1
338
+ movdqu 16(%rcx),%xmm2
339
+ movdqu (%r8),%xmm3
340
+ movdqa .Lrot16(%rip),%xmm6
341
+ movdqa .Lrot24(%rip),%xmm7
342
+
343
+ movdqa %xmm0,0(%rsp)
344
+ movdqa %xmm1,16(%rsp)
345
+ movdqa %xmm2,32(%rsp)
346
+ movdqa %xmm3,48(%rsp)
347
+ movq $10,%r8 // reuse %r8
348
+ jmp .Loop_ssse3
349
+
350
+ .align 32
351
+ .Loop_outer_ssse3:
352
+ movdqa .Lone(%rip),%xmm3
353
+ movdqa 0(%rsp),%xmm0
354
+ movdqa 16(%rsp),%xmm1
355
+ movdqa 32(%rsp),%xmm2
356
+ paddd 48(%rsp),%xmm3
357
+ movq $10,%r8
358
+ movdqa %xmm3,48(%rsp)
359
+ jmp .Loop_ssse3
360
+
361
+ .align 32
362
+ .Loop_ssse3:
363
+ paddd %xmm1,%xmm0
364
+ pxor %xmm0,%xmm3
365
+ pshufb %xmm6,%xmm3
366
+ paddd %xmm3,%xmm2
367
+ pxor %xmm2,%xmm1
368
+ movdqa %xmm1,%xmm4
369
+ psrld $20,%xmm1
370
+ pslld $12,%xmm4
371
+ por %xmm4,%xmm1
372
+ paddd %xmm1,%xmm0
373
+ pxor %xmm0,%xmm3
374
+ pshufb %xmm7,%xmm3
375
+ paddd %xmm3,%xmm2
376
+ pxor %xmm2,%xmm1
377
+ movdqa %xmm1,%xmm4
378
+ psrld $25,%xmm1
379
+ pslld $7,%xmm4
380
+ por %xmm4,%xmm1
381
+ pshufd $78,%xmm2,%xmm2
382
+ pshufd $57,%xmm1,%xmm1
383
+ pshufd $147,%xmm3,%xmm3
384
+ nop
385
+ paddd %xmm1,%xmm0
386
+ pxor %xmm0,%xmm3
387
+ pshufb %xmm6,%xmm3
388
+ paddd %xmm3,%xmm2
389
+ pxor %xmm2,%xmm1
390
+ movdqa %xmm1,%xmm4
391
+ psrld $20,%xmm1
392
+ pslld $12,%xmm4
393
+ por %xmm4,%xmm1
394
+ paddd %xmm1,%xmm0
395
+ pxor %xmm0,%xmm3
396
+ pshufb %xmm7,%xmm3
397
+ paddd %xmm3,%xmm2
398
+ pxor %xmm2,%xmm1
399
+ movdqa %xmm1,%xmm4
400
+ psrld $25,%xmm1
401
+ pslld $7,%xmm4
402
+ por %xmm4,%xmm1
403
+ pshufd $78,%xmm2,%xmm2
404
+ pshufd $147,%xmm1,%xmm1
405
+ pshufd $57,%xmm3,%xmm3
406
+ decq %r8
407
+ jnz .Loop_ssse3
408
+ paddd 0(%rsp),%xmm0
409
+ paddd 16(%rsp),%xmm1
410
+ paddd 32(%rsp),%xmm2
411
+ paddd 48(%rsp),%xmm3
412
+
413
+ cmpq $64,%rdx
414
+ jb .Ltail_ssse3
415
+
416
+ movdqu 0(%rsi),%xmm4
417
+ movdqu 16(%rsi),%xmm5
418
+ pxor %xmm4,%xmm0 // xor with input
419
+ movdqu 32(%rsi),%xmm4
420
+ pxor %xmm5,%xmm1
421
+ movdqu 48(%rsi),%xmm5
422
+ leaq 64(%rsi),%rsi // inp+=64
423
+ pxor %xmm4,%xmm2
424
+ pxor %xmm5,%xmm3
425
+
426
+ movdqu %xmm0,0(%rdi) // write output
427
+ movdqu %xmm1,16(%rdi)
428
+ movdqu %xmm2,32(%rdi)
429
+ movdqu %xmm3,48(%rdi)
430
+ leaq 64(%rdi),%rdi // out+=64
431
+
432
+ subq $64,%rdx
433
+ jnz .Loop_outer_ssse3
434
+
435
+ jmp .Ldone_ssse3
436
+
437
+ .align 16
438
+ .Ltail_ssse3:
439
+ movdqa %xmm0,0(%rsp)
440
+ movdqa %xmm1,16(%rsp)
441
+ movdqa %xmm2,32(%rsp)
442
+ movdqa %xmm3,48(%rsp)
443
+ xorq %r8,%r8
444
+
445
+ .Loop_tail_ssse3:
446
+ movzbl (%rsi,%r8,1),%eax
447
+ movzbl (%rsp,%r8,1),%ecx
448
+ leaq 1(%r8),%r8
449
+ xorl %ecx,%eax
450
+ movb %al,-1(%rdi,%r8,1)
451
+ decq %rdx
452
+ jnz .Loop_tail_ssse3
453
+
454
+ .Ldone_ssse3:
455
+ leaq (%r9),%rsp
456
+ .cfi_def_cfa_register rsp
457
+ .Lssse3_epilogue:
458
+ ret
459
+ .cfi_endproc
460
+ .size ChaCha20_ctr32_ssse3,.-ChaCha20_ctr32_ssse3
461
+ .globl ChaCha20_ctr32_ssse3_4x
462
+ .hidden ChaCha20_ctr32_ssse3_4x
463
+ .type ChaCha20_ctr32_ssse3_4x,@function
464
+ .align 32
465
+ ChaCha20_ctr32_ssse3_4x:
466
+ .cfi_startproc
467
+ _CET_ENDBR
468
+ movq %rsp,%r9 // frame pointer
469
+ .cfi_def_cfa_register r9
470
+ subq $0x140+8,%rsp
471
+ movdqa .Lsigma(%rip),%xmm11 // key[0]
472
+ movdqu (%rcx),%xmm15 // key[1]
473
+ movdqu 16(%rcx),%xmm7 // key[2]
474
+ movdqu (%r8),%xmm3 // key[3]
475
+ leaq 256(%rsp),%rcx // size optimization
476
+ leaq .Lrot16(%rip),%r10
477
+ leaq .Lrot24(%rip),%r11
478
+
479
+ pshufd $0x00,%xmm11,%xmm8 // smash key by lanes...
480
+ pshufd $0x55,%xmm11,%xmm9
481
+ movdqa %xmm8,64(%rsp) // ... and offload
482
+ pshufd $0xaa,%xmm11,%xmm10
483
+ movdqa %xmm9,80(%rsp)
484
+ pshufd $0xff,%xmm11,%xmm11
485
+ movdqa %xmm10,96(%rsp)
486
+ movdqa %xmm11,112(%rsp)
487
+
488
+ pshufd $0x00,%xmm15,%xmm12
489
+ pshufd $0x55,%xmm15,%xmm13
490
+ movdqa %xmm12,128-256(%rcx)
491
+ pshufd $0xaa,%xmm15,%xmm14
492
+ movdqa %xmm13,144-256(%rcx)
493
+ pshufd $0xff,%xmm15,%xmm15
494
+ movdqa %xmm14,160-256(%rcx)
495
+ movdqa %xmm15,176-256(%rcx)
496
+
497
+ pshufd $0x00,%xmm7,%xmm4 // ""
498
+ pshufd $0x55,%xmm7,%xmm5 // ""
499
+ movdqa %xmm4,192-256(%rcx)
500
+ pshufd $0xaa,%xmm7,%xmm6 // ""
501
+ movdqa %xmm5,208-256(%rcx)
502
+ pshufd $0xff,%xmm7,%xmm7 // ""
503
+ movdqa %xmm6,224-256(%rcx)
504
+ movdqa %xmm7,240-256(%rcx)
505
+
506
+ pshufd $0x00,%xmm3,%xmm0
507
+ pshufd $0x55,%xmm3,%xmm1
508
+ paddd .Linc(%rip),%xmm0 // don't save counters yet
509
+ pshufd $0xaa,%xmm3,%xmm2
510
+ movdqa %xmm1,272-256(%rcx)
511
+ pshufd $0xff,%xmm3,%xmm3
512
+ movdqa %xmm2,288-256(%rcx)
513
+ movdqa %xmm3,304-256(%rcx)
514
+
515
+ jmp .Loop_enter4x
516
+
517
+ .align 32
518
+ .Loop_outer4x:
519
+ movdqa 64(%rsp),%xmm8 // re-load smashed key
520
+ movdqa 80(%rsp),%xmm9
521
+ movdqa 96(%rsp),%xmm10
522
+ movdqa 112(%rsp),%xmm11
523
+ movdqa 128-256(%rcx),%xmm12
524
+ movdqa 144-256(%rcx),%xmm13
525
+ movdqa 160-256(%rcx),%xmm14
526
+ movdqa 176-256(%rcx),%xmm15
527
+ movdqa 192-256(%rcx),%xmm4 // ""
528
+ movdqa 208-256(%rcx),%xmm5 // ""
529
+ movdqa 224-256(%rcx),%xmm6 // ""
530
+ movdqa 240-256(%rcx),%xmm7 // ""
531
+ movdqa 256-256(%rcx),%xmm0
532
+ movdqa 272-256(%rcx),%xmm1
533
+ movdqa 288-256(%rcx),%xmm2
534
+ movdqa 304-256(%rcx),%xmm3
535
+ paddd .Lfour(%rip),%xmm0 // next SIMD counters
536
+
537
+ .Loop_enter4x:
538
+ movdqa %xmm6,32(%rsp) // SIMD equivalent of "%nox"
539
+ movdqa %xmm7,48(%rsp) // SIMD equivalent of "%nox"
540
+ movdqa (%r10),%xmm7 // .Lrot16(%rip)
541
+ movl $10,%eax
542
+ movdqa %xmm0,256-256(%rcx) // save SIMD counters
543
+ jmp .Loop4x
544
+
545
+ .align 32
546
+ .Loop4x:
547
+ paddd %xmm12,%xmm8
548
+ paddd %xmm13,%xmm9
549
+ pxor %xmm8,%xmm0
550
+ pxor %xmm9,%xmm1
551
+ pshufb %xmm7,%xmm0
552
+ pshufb %xmm7,%xmm1
553
+ paddd %xmm0,%xmm4
554
+ paddd %xmm1,%xmm5
555
+ pxor %xmm4,%xmm12
556
+ pxor %xmm5,%xmm13
557
+ movdqa %xmm12,%xmm6
558
+ pslld $12,%xmm12
559
+ psrld $20,%xmm6
560
+ movdqa %xmm13,%xmm7
561
+ pslld $12,%xmm13
562
+ por %xmm6,%xmm12
563
+ psrld $20,%xmm7
564
+ movdqa (%r11),%xmm6
565
+ por %xmm7,%xmm13
566
+ paddd %xmm12,%xmm8
567
+ paddd %xmm13,%xmm9
568
+ pxor %xmm8,%xmm0
569
+ pxor %xmm9,%xmm1
570
+ pshufb %xmm6,%xmm0
571
+ pshufb %xmm6,%xmm1
572
+ paddd %xmm0,%xmm4
573
+ paddd %xmm1,%xmm5
574
+ pxor %xmm4,%xmm12
575
+ pxor %xmm5,%xmm13
576
+ movdqa %xmm12,%xmm7
577
+ pslld $7,%xmm12
578
+ psrld $25,%xmm7
579
+ movdqa %xmm13,%xmm6
580
+ pslld $7,%xmm13
581
+ por %xmm7,%xmm12
582
+ psrld $25,%xmm6
583
+ movdqa (%r10),%xmm7
584
+ por %xmm6,%xmm13
585
+ movdqa %xmm4,0(%rsp)
586
+ movdqa %xmm5,16(%rsp)
587
+ movdqa 32(%rsp),%xmm4
588
+ movdqa 48(%rsp),%xmm5
589
+ paddd %xmm14,%xmm10
590
+ paddd %xmm15,%xmm11
591
+ pxor %xmm10,%xmm2
592
+ pxor %xmm11,%xmm3
593
+ pshufb %xmm7,%xmm2
594
+ pshufb %xmm7,%xmm3
595
+ paddd %xmm2,%xmm4
596
+ paddd %xmm3,%xmm5
597
+ pxor %xmm4,%xmm14
598
+ pxor %xmm5,%xmm15
599
+ movdqa %xmm14,%xmm6
600
+ pslld $12,%xmm14
601
+ psrld $20,%xmm6
602
+ movdqa %xmm15,%xmm7
603
+ pslld $12,%xmm15
604
+ por %xmm6,%xmm14
605
+ psrld $20,%xmm7
606
+ movdqa (%r11),%xmm6
607
+ por %xmm7,%xmm15
608
+ paddd %xmm14,%xmm10
609
+ paddd %xmm15,%xmm11
610
+ pxor %xmm10,%xmm2
611
+ pxor %xmm11,%xmm3
612
+ pshufb %xmm6,%xmm2
613
+ pshufb %xmm6,%xmm3
614
+ paddd %xmm2,%xmm4
615
+ paddd %xmm3,%xmm5
616
+ pxor %xmm4,%xmm14
617
+ pxor %xmm5,%xmm15
618
+ movdqa %xmm14,%xmm7
619
+ pslld $7,%xmm14
620
+ psrld $25,%xmm7
621
+ movdqa %xmm15,%xmm6
622
+ pslld $7,%xmm15
623
+ por %xmm7,%xmm14
624
+ psrld $25,%xmm6
625
+ movdqa (%r10),%xmm7
626
+ por %xmm6,%xmm15
627
+ paddd %xmm13,%xmm8
628
+ paddd %xmm14,%xmm9
629
+ pxor %xmm8,%xmm3
630
+ pxor %xmm9,%xmm0
631
+ pshufb %xmm7,%xmm3
632
+ pshufb %xmm7,%xmm0
633
+ paddd %xmm3,%xmm4
634
+ paddd %xmm0,%xmm5
635
+ pxor %xmm4,%xmm13
636
+ pxor %xmm5,%xmm14
637
+ movdqa %xmm13,%xmm6
638
+ pslld $12,%xmm13
639
+ psrld $20,%xmm6
640
+ movdqa %xmm14,%xmm7
641
+ pslld $12,%xmm14
642
+ por %xmm6,%xmm13
643
+ psrld $20,%xmm7
644
+ movdqa (%r11),%xmm6
645
+ por %xmm7,%xmm14
646
+ paddd %xmm13,%xmm8
647
+ paddd %xmm14,%xmm9
648
+ pxor %xmm8,%xmm3
649
+ pxor %xmm9,%xmm0
650
+ pshufb %xmm6,%xmm3
651
+ pshufb %xmm6,%xmm0
652
+ paddd %xmm3,%xmm4
653
+ paddd %xmm0,%xmm5
654
+ pxor %xmm4,%xmm13
655
+ pxor %xmm5,%xmm14
656
+ movdqa %xmm13,%xmm7
657
+ pslld $7,%xmm13
658
+ psrld $25,%xmm7
659
+ movdqa %xmm14,%xmm6
660
+ pslld $7,%xmm14
661
+ por %xmm7,%xmm13
662
+ psrld $25,%xmm6
663
+ movdqa (%r10),%xmm7
664
+ por %xmm6,%xmm14
665
+ movdqa %xmm4,32(%rsp)
666
+ movdqa %xmm5,48(%rsp)
667
+ movdqa 0(%rsp),%xmm4
668
+ movdqa 16(%rsp),%xmm5
669
+ paddd %xmm15,%xmm10
670
+ paddd %xmm12,%xmm11
671
+ pxor %xmm10,%xmm1
672
+ pxor %xmm11,%xmm2
673
+ pshufb %xmm7,%xmm1
674
+ pshufb %xmm7,%xmm2
675
+ paddd %xmm1,%xmm4
676
+ paddd %xmm2,%xmm5
677
+ pxor %xmm4,%xmm15
678
+ pxor %xmm5,%xmm12
679
+ movdqa %xmm15,%xmm6
680
+ pslld $12,%xmm15
681
+ psrld $20,%xmm6
682
+ movdqa %xmm12,%xmm7
683
+ pslld $12,%xmm12
684
+ por %xmm6,%xmm15
685
+ psrld $20,%xmm7
686
+ movdqa (%r11),%xmm6
687
+ por %xmm7,%xmm12
688
+ paddd %xmm15,%xmm10
689
+ paddd %xmm12,%xmm11
690
+ pxor %xmm10,%xmm1
691
+ pxor %xmm11,%xmm2
692
+ pshufb %xmm6,%xmm1
693
+ pshufb %xmm6,%xmm2
694
+ paddd %xmm1,%xmm4
695
+ paddd %xmm2,%xmm5
696
+ pxor %xmm4,%xmm15
697
+ pxor %xmm5,%xmm12
698
+ movdqa %xmm15,%xmm7
699
+ pslld $7,%xmm15
700
+ psrld $25,%xmm7
701
+ movdqa %xmm12,%xmm6
702
+ pslld $7,%xmm12
703
+ por %xmm7,%xmm15
704
+ psrld $25,%xmm6
705
+ movdqa (%r10),%xmm7
706
+ por %xmm6,%xmm12
707
+ decl %eax
708
+ jnz .Loop4x
709
+
710
+ paddd 64(%rsp),%xmm8 // accumulate key material
711
+ paddd 80(%rsp),%xmm9
712
+ paddd 96(%rsp),%xmm10
713
+ paddd 112(%rsp),%xmm11
714
+
715
+ movdqa %xmm8,%xmm6 // "de-interlace" data
716
+ punpckldq %xmm9,%xmm8
717
+ movdqa %xmm10,%xmm7
718
+ punpckldq %xmm11,%xmm10
719
+ punpckhdq %xmm9,%xmm6
720
+ punpckhdq %xmm11,%xmm7
721
+ movdqa %xmm8,%xmm9
722
+ punpcklqdq %xmm10,%xmm8 // "a0"
723
+ movdqa %xmm6,%xmm11
724
+ punpcklqdq %xmm7,%xmm6 // "a2"
725
+ punpckhqdq %xmm10,%xmm9 // "a1"
726
+ punpckhqdq %xmm7,%xmm11 // "a3"
727
+ paddd 128-256(%rcx),%xmm12
728
+ paddd 144-256(%rcx),%xmm13
729
+ paddd 160-256(%rcx),%xmm14
730
+ paddd 176-256(%rcx),%xmm15
731
+
732
+ movdqa %xmm8,0(%rsp) // offload
733
+ movdqa %xmm9,16(%rsp)
734
+ movdqa 32(%rsp),%xmm8 // "xc2"
735
+ movdqa 48(%rsp),%xmm9 // "xc3"
736
+
737
+ movdqa %xmm12,%xmm10
738
+ punpckldq %xmm13,%xmm12
739
+ movdqa %xmm14,%xmm7
740
+ punpckldq %xmm15,%xmm14
741
+ punpckhdq %xmm13,%xmm10
742
+ punpckhdq %xmm15,%xmm7
743
+ movdqa %xmm12,%xmm13
744
+ punpcklqdq %xmm14,%xmm12 // "b0"
745
+ movdqa %xmm10,%xmm15
746
+ punpcklqdq %xmm7,%xmm10 // "b2"
747
+ punpckhqdq %xmm14,%xmm13 // "b1"
748
+ punpckhqdq %xmm7,%xmm15 // "b3"
749
+ paddd 192-256(%rcx),%xmm4
750
+ paddd 208-256(%rcx),%xmm5
751
+ paddd 224-256(%rcx),%xmm8
752
+ paddd 240-256(%rcx),%xmm9
753
+
754
+ movdqa %xmm6,32(%rsp) // keep offloading
755
+ movdqa %xmm11,48(%rsp)
756
+
757
+ movdqa %xmm4,%xmm14
758
+ punpckldq %xmm5,%xmm4
759
+ movdqa %xmm8,%xmm7
760
+ punpckldq %xmm9,%xmm8
761
+ punpckhdq %xmm5,%xmm14
762
+ punpckhdq %xmm9,%xmm7
763
+ movdqa %xmm4,%xmm5
764
+ punpcklqdq %xmm8,%xmm4 // "c0"
765
+ movdqa %xmm14,%xmm9
766
+ punpcklqdq %xmm7,%xmm14 // "c2"
767
+ punpckhqdq %xmm8,%xmm5 // "c1"
768
+ punpckhqdq %xmm7,%xmm9 // "c3"
769
+ paddd 256-256(%rcx),%xmm0
770
+ paddd 272-256(%rcx),%xmm1
771
+ paddd 288-256(%rcx),%xmm2
772
+ paddd 304-256(%rcx),%xmm3
773
+
774
+ movdqa %xmm0,%xmm8
775
+ punpckldq %xmm1,%xmm0
776
+ movdqa %xmm2,%xmm7
777
+ punpckldq %xmm3,%xmm2
778
+ punpckhdq %xmm1,%xmm8
779
+ punpckhdq %xmm3,%xmm7
780
+ movdqa %xmm0,%xmm1
781
+ punpcklqdq %xmm2,%xmm0 // "d0"
782
+ movdqa %xmm8,%xmm3
783
+ punpcklqdq %xmm7,%xmm8 // "d2"
784
+ punpckhqdq %xmm2,%xmm1 // "d1"
785
+ punpckhqdq %xmm7,%xmm3 // "d3"
786
+ cmpq $256,%rdx
787
+ jb .Ltail4x
788
+
789
+ movdqu 0(%rsi),%xmm6 // xor with input
790
+ movdqu 16(%rsi),%xmm11
791
+ movdqu 32(%rsi),%xmm2
792
+ movdqu 48(%rsi),%xmm7
793
+ pxor 0(%rsp),%xmm6 // is offloaded, remember?
794
+ pxor %xmm12,%xmm11
795
+ pxor %xmm4,%xmm2
796
+ pxor %xmm0,%xmm7
797
+
798
+ movdqu %xmm6,0(%rdi)
799
+ movdqu 64(%rsi),%xmm6
800
+ movdqu %xmm11,16(%rdi)
801
+ movdqu 80(%rsi),%xmm11
802
+ movdqu %xmm2,32(%rdi)
803
+ movdqu 96(%rsi),%xmm2
804
+ movdqu %xmm7,48(%rdi)
805
+ movdqu 112(%rsi),%xmm7
806
+ leaq 128(%rsi),%rsi // size optimization
807
+ pxor 16(%rsp),%xmm6
808
+ pxor %xmm13,%xmm11
809
+ pxor %xmm5,%xmm2
810
+ pxor %xmm1,%xmm7
811
+
812
+ movdqu %xmm6,64(%rdi)
813
+ movdqu 0(%rsi),%xmm6
814
+ movdqu %xmm11,80(%rdi)
815
+ movdqu 16(%rsi),%xmm11
816
+ movdqu %xmm2,96(%rdi)
817
+ movdqu 32(%rsi),%xmm2
818
+ movdqu %xmm7,112(%rdi)
819
+ leaq 128(%rdi),%rdi // size optimization
820
+ movdqu 48(%rsi),%xmm7
821
+ pxor 32(%rsp),%xmm6
822
+ pxor %xmm10,%xmm11
823
+ pxor %xmm14,%xmm2
824
+ pxor %xmm8,%xmm7
825
+
826
+ movdqu %xmm6,0(%rdi)
827
+ movdqu 64(%rsi),%xmm6
828
+ movdqu %xmm11,16(%rdi)
829
+ movdqu 80(%rsi),%xmm11
830
+ movdqu %xmm2,32(%rdi)
831
+ movdqu 96(%rsi),%xmm2
832
+ movdqu %xmm7,48(%rdi)
833
+ movdqu 112(%rsi),%xmm7
834
+ leaq 128(%rsi),%rsi // inp+=64*4
835
+ pxor 48(%rsp),%xmm6
836
+ pxor %xmm15,%xmm11
837
+ pxor %xmm9,%xmm2
838
+ pxor %xmm3,%xmm7
839
+ movdqu %xmm6,64(%rdi)
840
+ movdqu %xmm11,80(%rdi)
841
+ movdqu %xmm2,96(%rdi)
842
+ movdqu %xmm7,112(%rdi)
843
+ leaq 128(%rdi),%rdi // out+=64*4
844
+
845
+ subq $256,%rdx
846
+ jnz .Loop_outer4x
847
+
848
+ jmp .Ldone4x
849
+
850
+ .Ltail4x:
851
+ cmpq $192,%rdx
852
+ jae .L192_or_more4x
853
+ cmpq $128,%rdx
854
+ jae .L128_or_more4x
855
+ cmpq $64,%rdx
856
+ jae .L64_or_more4x
857
+
858
+ // movdqa 0x00(%rsp),%xmm6 # is offloaded, remember?
859
+ xorq %r10,%r10
860
+ // movdqa %xmm6,0x00(%rsp)
861
+ movdqa %xmm12,16(%rsp)
862
+ movdqa %xmm4,32(%rsp)
863
+ movdqa %xmm0,48(%rsp)
864
+ jmp .Loop_tail4x
865
+
866
+ .align 32
867
+ .L64_or_more4x:
868
+ movdqu 0(%rsi),%xmm6 // xor with input
869
+ movdqu 16(%rsi),%xmm11
870
+ movdqu 32(%rsi),%xmm2
871
+ movdqu 48(%rsi),%xmm7
872
+ pxor 0(%rsp),%xmm6 // is offloaded, remember?
873
+ pxor %xmm12,%xmm11
874
+ pxor %xmm4,%xmm2
875
+ pxor %xmm0,%xmm7
876
+ movdqu %xmm6,0(%rdi)
877
+ movdqu %xmm11,16(%rdi)
878
+ movdqu %xmm2,32(%rdi)
879
+ movdqu %xmm7,48(%rdi)
880
+ je .Ldone4x
881
+
882
+ movdqa 16(%rsp),%xmm6 // is offloaded, remember?
883
+ leaq 64(%rsi),%rsi // inp+=64*1
884
+ xorq %r10,%r10
885
+ movdqa %xmm6,0(%rsp)
886
+ movdqa %xmm13,16(%rsp)
887
+ leaq 64(%rdi),%rdi // out+=64*1
888
+ movdqa %xmm5,32(%rsp)
889
+ subq $64,%rdx // len-=64*1
890
+ movdqa %xmm1,48(%rsp)
891
+ jmp .Loop_tail4x
892
+
893
+ .align 32
894
+ .L128_or_more4x:
895
+ movdqu 0(%rsi),%xmm6 // xor with input
896
+ movdqu 16(%rsi),%xmm11
897
+ movdqu 32(%rsi),%xmm2
898
+ movdqu 48(%rsi),%xmm7
899
+ pxor 0(%rsp),%xmm6 // is offloaded, remember?
900
+ pxor %xmm12,%xmm11
901
+ pxor %xmm4,%xmm2
902
+ pxor %xmm0,%xmm7
903
+
904
+ movdqu %xmm6,0(%rdi)
905
+ movdqu 64(%rsi),%xmm6
906
+ movdqu %xmm11,16(%rdi)
907
+ movdqu 80(%rsi),%xmm11
908
+ movdqu %xmm2,32(%rdi)
909
+ movdqu 96(%rsi),%xmm2
910
+ movdqu %xmm7,48(%rdi)
911
+ movdqu 112(%rsi),%xmm7
912
+ pxor 16(%rsp),%xmm6
913
+ pxor %xmm13,%xmm11
914
+ pxor %xmm5,%xmm2
915
+ pxor %xmm1,%xmm7
916
+ movdqu %xmm6,64(%rdi)
917
+ movdqu %xmm11,80(%rdi)
918
+ movdqu %xmm2,96(%rdi)
919
+ movdqu %xmm7,112(%rdi)
920
+ je .Ldone4x
921
+
922
+ movdqa 32(%rsp),%xmm6 // is offloaded, remember?
923
+ leaq 128(%rsi),%rsi // inp+=64*2
924
+ xorq %r10,%r10
925
+ movdqa %xmm6,0(%rsp)
926
+ movdqa %xmm10,16(%rsp)
927
+ leaq 128(%rdi),%rdi // out+=64*2
928
+ movdqa %xmm14,32(%rsp)
929
+ subq $128,%rdx // len-=64*2
930
+ movdqa %xmm8,48(%rsp)
931
+ jmp .Loop_tail4x
932
+
933
+ .align 32
934
+ .L192_or_more4x:
935
+ movdqu 0(%rsi),%xmm6 // xor with input
936
+ movdqu 16(%rsi),%xmm11
937
+ movdqu 32(%rsi),%xmm2
938
+ movdqu 48(%rsi),%xmm7
939
+ pxor 0(%rsp),%xmm6 // is offloaded, remember?
940
+ pxor %xmm12,%xmm11
941
+ pxor %xmm4,%xmm2
942
+ pxor %xmm0,%xmm7
943
+
944
+ movdqu %xmm6,0(%rdi)
945
+ movdqu 64(%rsi),%xmm6
946
+ movdqu %xmm11,16(%rdi)
947
+ movdqu 80(%rsi),%xmm11
948
+ movdqu %xmm2,32(%rdi)
949
+ movdqu 96(%rsi),%xmm2
950
+ movdqu %xmm7,48(%rdi)
951
+ movdqu 112(%rsi),%xmm7
952
+ leaq 128(%rsi),%rsi // size optimization
953
+ pxor 16(%rsp),%xmm6
954
+ pxor %xmm13,%xmm11
955
+ pxor %xmm5,%xmm2
956
+ pxor %xmm1,%xmm7
957
+
958
+ movdqu %xmm6,64(%rdi)
959
+ movdqu 0(%rsi),%xmm6
960
+ movdqu %xmm11,80(%rdi)
961
+ movdqu 16(%rsi),%xmm11
962
+ movdqu %xmm2,96(%rdi)
963
+ movdqu 32(%rsi),%xmm2
964
+ movdqu %xmm7,112(%rdi)
965
+ leaq 128(%rdi),%rdi // size optimization
966
+ movdqu 48(%rsi),%xmm7
967
+ pxor 32(%rsp),%xmm6
968
+ pxor %xmm10,%xmm11
969
+ pxor %xmm14,%xmm2
970
+ pxor %xmm8,%xmm7
971
+ movdqu %xmm6,0(%rdi)
972
+ movdqu %xmm11,16(%rdi)
973
+ movdqu %xmm2,32(%rdi)
974
+ movdqu %xmm7,48(%rdi)
975
+ je .Ldone4x
976
+
977
+ movdqa 48(%rsp),%xmm6 // is offloaded, remember?
978
+ leaq 64(%rsi),%rsi // inp+=64*3
979
+ xorq %r10,%r10
980
+ movdqa %xmm6,0(%rsp)
981
+ movdqa %xmm15,16(%rsp)
982
+ leaq 64(%rdi),%rdi // out+=64*3
983
+ movdqa %xmm9,32(%rsp)
984
+ subq $192,%rdx // len-=64*3
985
+ movdqa %xmm3,48(%rsp)
986
+
987
+ .Loop_tail4x:
988
+ movzbl (%rsi,%r10,1),%eax
989
+ movzbl (%rsp,%r10,1),%ecx
990
+ leaq 1(%r10),%r10
991
+ xorl %ecx,%eax
992
+ movb %al,-1(%rdi,%r10,1)
993
+ decq %rdx
994
+ jnz .Loop_tail4x
995
+
996
+ .Ldone4x:
997
+ leaq (%r9),%rsp
998
+ .cfi_def_cfa_register rsp
999
+ .L4x_epilogue:
1000
+ ret
1001
+ .cfi_endproc
1002
+ .size ChaCha20_ctr32_ssse3_4x,.-ChaCha20_ctr32_ssse3_4x
1003
+ .globl ChaCha20_ctr32_avx2
1004
+ .hidden ChaCha20_ctr32_avx2
1005
+ .type ChaCha20_ctr32_avx2,@function
1006
+ .align 32
1007
+ ChaCha20_ctr32_avx2:
1008
+ .cfi_startproc
1009
+ _CET_ENDBR
1010
+ movq %rsp,%r9 // frame register
1011
+ .cfi_def_cfa_register r9
1012
+ subq $0x280+8,%rsp
1013
+ andq $-32,%rsp
1014
+ vzeroupper
1015
+
1016
+ // ############### stack layout
1017
+ // +0x00 SIMD equivalent of %r12d
1018
+ // ...
1019
+ // +0x80 constant copy of key[0-2] smashed by lanes
1020
+ // ...
1021
+ // +0x200 SIMD counters (with nonce smashed by lanes)
1022
+ // ...
1023
+ // +0x280
1024
+
1025
+ vbroadcasti128 .Lsigma(%rip),%ymm11 // key[0]
1026
+ vbroadcasti128 (%rcx),%ymm3 // key[1]
1027
+ vbroadcasti128 16(%rcx),%ymm15 // key[2]
1028
+ vbroadcasti128 (%r8),%ymm7 // key[3]
1029
+ leaq 256(%rsp),%rcx // size optimization
1030
+ leaq 512(%rsp),%rax // size optimization
1031
+ leaq .Lrot16(%rip),%r10
1032
+ leaq .Lrot24(%rip),%r11
1033
+
1034
+ vpshufd $0x00,%ymm11,%ymm8 // smash key by lanes...
1035
+ vpshufd $0x55,%ymm11,%ymm9
1036
+ vmovdqa %ymm8,128-256(%rcx) // ... and offload
1037
+ vpshufd $0xaa,%ymm11,%ymm10
1038
+ vmovdqa %ymm9,160-256(%rcx)
1039
+ vpshufd $0xff,%ymm11,%ymm11
1040
+ vmovdqa %ymm10,192-256(%rcx)
1041
+ vmovdqa %ymm11,224-256(%rcx)
1042
+
1043
+ vpshufd $0x00,%ymm3,%ymm0
1044
+ vpshufd $0x55,%ymm3,%ymm1
1045
+ vmovdqa %ymm0,256-256(%rcx)
1046
+ vpshufd $0xaa,%ymm3,%ymm2
1047
+ vmovdqa %ymm1,288-256(%rcx)
1048
+ vpshufd $0xff,%ymm3,%ymm3
1049
+ vmovdqa %ymm2,320-256(%rcx)
1050
+ vmovdqa %ymm3,352-256(%rcx)
1051
+
1052
+ vpshufd $0x00,%ymm15,%ymm12 // "xc0"
1053
+ vpshufd $0x55,%ymm15,%ymm13 // "xc1"
1054
+ vmovdqa %ymm12,384-512(%rax)
1055
+ vpshufd $0xaa,%ymm15,%ymm14 // "xc2"
1056
+ vmovdqa %ymm13,416-512(%rax)
1057
+ vpshufd $0xff,%ymm15,%ymm15 // "xc3"
1058
+ vmovdqa %ymm14,448-512(%rax)
1059
+ vmovdqa %ymm15,480-512(%rax)
1060
+
1061
+ vpshufd $0x00,%ymm7,%ymm4
1062
+ vpshufd $0x55,%ymm7,%ymm5
1063
+ vpaddd .Lincy(%rip),%ymm4,%ymm4 // don't save counters yet
1064
+ vpshufd $0xaa,%ymm7,%ymm6
1065
+ vmovdqa %ymm5,544-512(%rax)
1066
+ vpshufd $0xff,%ymm7,%ymm7
1067
+ vmovdqa %ymm6,576-512(%rax)
1068
+ vmovdqa %ymm7,608-512(%rax)
1069
+
1070
+ jmp .Loop_enter8x
1071
+
1072
+ .align 32
1073
+ .Loop_outer8x:
1074
+ vmovdqa 128-256(%rcx),%ymm8 // re-load smashed key
1075
+ vmovdqa 160-256(%rcx),%ymm9
1076
+ vmovdqa 192-256(%rcx),%ymm10
1077
+ vmovdqa 224-256(%rcx),%ymm11
1078
+ vmovdqa 256-256(%rcx),%ymm0
1079
+ vmovdqa 288-256(%rcx),%ymm1
1080
+ vmovdqa 320-256(%rcx),%ymm2
1081
+ vmovdqa 352-256(%rcx),%ymm3
1082
+ vmovdqa 384-512(%rax),%ymm12 // "xc0"
1083
+ vmovdqa 416-512(%rax),%ymm13 // "xc1"
1084
+ vmovdqa 448-512(%rax),%ymm14 // "xc2"
1085
+ vmovdqa 480-512(%rax),%ymm15 // "xc3"
1086
+ vmovdqa 512-512(%rax),%ymm4
1087
+ vmovdqa 544-512(%rax),%ymm5
1088
+ vmovdqa 576-512(%rax),%ymm6
1089
+ vmovdqa 608-512(%rax),%ymm7
1090
+ vpaddd .Leight(%rip),%ymm4,%ymm4 // next SIMD counters
1091
+
1092
+ .Loop_enter8x:
1093
+ vmovdqa %ymm14,64(%rsp) // SIMD equivalent of "%nox"
1094
+ vmovdqa %ymm15,96(%rsp) // SIMD equivalent of "%nox"
1095
+ vbroadcasti128 (%r10),%ymm15
1096
+ vmovdqa %ymm4,512-512(%rax) // save SIMD counters
1097
+ movl $10,%eax
1098
+ jmp .Loop8x
1099
+
1100
+ .align 32
1101
+ .Loop8x:
1102
+ vpaddd %ymm0,%ymm8,%ymm8
1103
+ vpxor %ymm4,%ymm8,%ymm4
1104
+ vpshufb %ymm15,%ymm4,%ymm4
1105
+ vpaddd %ymm1,%ymm9,%ymm9
1106
+ vpxor %ymm5,%ymm9,%ymm5
1107
+ vpshufb %ymm15,%ymm5,%ymm5
1108
+ vpaddd %ymm4,%ymm12,%ymm12
1109
+ vpxor %ymm0,%ymm12,%ymm0
1110
+ vpslld $12,%ymm0,%ymm14
1111
+ vpsrld $20,%ymm0,%ymm0
1112
+ vpor %ymm0,%ymm14,%ymm0
1113
+ vbroadcasti128 (%r11),%ymm14
1114
+ vpaddd %ymm5,%ymm13,%ymm13
1115
+ vpxor %ymm1,%ymm13,%ymm1
1116
+ vpslld $12,%ymm1,%ymm15
1117
+ vpsrld $20,%ymm1,%ymm1
1118
+ vpor %ymm1,%ymm15,%ymm1
1119
+ vpaddd %ymm0,%ymm8,%ymm8
1120
+ vpxor %ymm4,%ymm8,%ymm4
1121
+ vpshufb %ymm14,%ymm4,%ymm4
1122
+ vpaddd %ymm1,%ymm9,%ymm9
1123
+ vpxor %ymm5,%ymm9,%ymm5
1124
+ vpshufb %ymm14,%ymm5,%ymm5
1125
+ vpaddd %ymm4,%ymm12,%ymm12
1126
+ vpxor %ymm0,%ymm12,%ymm0
1127
+ vpslld $7,%ymm0,%ymm15
1128
+ vpsrld $25,%ymm0,%ymm0
1129
+ vpor %ymm0,%ymm15,%ymm0
1130
+ vbroadcasti128 (%r10),%ymm15
1131
+ vpaddd %ymm5,%ymm13,%ymm13
1132
+ vpxor %ymm1,%ymm13,%ymm1
1133
+ vpslld $7,%ymm1,%ymm14
1134
+ vpsrld $25,%ymm1,%ymm1
1135
+ vpor %ymm1,%ymm14,%ymm1
1136
+ vmovdqa %ymm12,0(%rsp)
1137
+ vmovdqa %ymm13,32(%rsp)
1138
+ vmovdqa 64(%rsp),%ymm12
1139
+ vmovdqa 96(%rsp),%ymm13
1140
+ vpaddd %ymm2,%ymm10,%ymm10
1141
+ vpxor %ymm6,%ymm10,%ymm6
1142
+ vpshufb %ymm15,%ymm6,%ymm6
1143
+ vpaddd %ymm3,%ymm11,%ymm11
1144
+ vpxor %ymm7,%ymm11,%ymm7
1145
+ vpshufb %ymm15,%ymm7,%ymm7
1146
+ vpaddd %ymm6,%ymm12,%ymm12
1147
+ vpxor %ymm2,%ymm12,%ymm2
1148
+ vpslld $12,%ymm2,%ymm14
1149
+ vpsrld $20,%ymm2,%ymm2
1150
+ vpor %ymm2,%ymm14,%ymm2
1151
+ vbroadcasti128 (%r11),%ymm14
1152
+ vpaddd %ymm7,%ymm13,%ymm13
1153
+ vpxor %ymm3,%ymm13,%ymm3
1154
+ vpslld $12,%ymm3,%ymm15
1155
+ vpsrld $20,%ymm3,%ymm3
1156
+ vpor %ymm3,%ymm15,%ymm3
1157
+ vpaddd %ymm2,%ymm10,%ymm10
1158
+ vpxor %ymm6,%ymm10,%ymm6
1159
+ vpshufb %ymm14,%ymm6,%ymm6
1160
+ vpaddd %ymm3,%ymm11,%ymm11
1161
+ vpxor %ymm7,%ymm11,%ymm7
1162
+ vpshufb %ymm14,%ymm7,%ymm7
1163
+ vpaddd %ymm6,%ymm12,%ymm12
1164
+ vpxor %ymm2,%ymm12,%ymm2
1165
+ vpslld $7,%ymm2,%ymm15
1166
+ vpsrld $25,%ymm2,%ymm2
1167
+ vpor %ymm2,%ymm15,%ymm2
1168
+ vbroadcasti128 (%r10),%ymm15
1169
+ vpaddd %ymm7,%ymm13,%ymm13
1170
+ vpxor %ymm3,%ymm13,%ymm3
1171
+ vpslld $7,%ymm3,%ymm14
1172
+ vpsrld $25,%ymm3,%ymm3
1173
+ vpor %ymm3,%ymm14,%ymm3
1174
+ vpaddd %ymm1,%ymm8,%ymm8
1175
+ vpxor %ymm7,%ymm8,%ymm7
1176
+ vpshufb %ymm15,%ymm7,%ymm7
1177
+ vpaddd %ymm2,%ymm9,%ymm9
1178
+ vpxor %ymm4,%ymm9,%ymm4
1179
+ vpshufb %ymm15,%ymm4,%ymm4
1180
+ vpaddd %ymm7,%ymm12,%ymm12
1181
+ vpxor %ymm1,%ymm12,%ymm1
1182
+ vpslld $12,%ymm1,%ymm14
1183
+ vpsrld $20,%ymm1,%ymm1
1184
+ vpor %ymm1,%ymm14,%ymm1
1185
+ vbroadcasti128 (%r11),%ymm14
1186
+ vpaddd %ymm4,%ymm13,%ymm13
1187
+ vpxor %ymm2,%ymm13,%ymm2
1188
+ vpslld $12,%ymm2,%ymm15
1189
+ vpsrld $20,%ymm2,%ymm2
1190
+ vpor %ymm2,%ymm15,%ymm2
1191
+ vpaddd %ymm1,%ymm8,%ymm8
1192
+ vpxor %ymm7,%ymm8,%ymm7
1193
+ vpshufb %ymm14,%ymm7,%ymm7
1194
+ vpaddd %ymm2,%ymm9,%ymm9
1195
+ vpxor %ymm4,%ymm9,%ymm4
1196
+ vpshufb %ymm14,%ymm4,%ymm4
1197
+ vpaddd %ymm7,%ymm12,%ymm12
1198
+ vpxor %ymm1,%ymm12,%ymm1
1199
+ vpslld $7,%ymm1,%ymm15
1200
+ vpsrld $25,%ymm1,%ymm1
1201
+ vpor %ymm1,%ymm15,%ymm1
1202
+ vbroadcasti128 (%r10),%ymm15
1203
+ vpaddd %ymm4,%ymm13,%ymm13
1204
+ vpxor %ymm2,%ymm13,%ymm2
1205
+ vpslld $7,%ymm2,%ymm14
1206
+ vpsrld $25,%ymm2,%ymm2
1207
+ vpor %ymm2,%ymm14,%ymm2
1208
+ vmovdqa %ymm12,64(%rsp)
1209
+ vmovdqa %ymm13,96(%rsp)
1210
+ vmovdqa 0(%rsp),%ymm12
1211
+ vmovdqa 32(%rsp),%ymm13
1212
+ vpaddd %ymm3,%ymm10,%ymm10
1213
+ vpxor %ymm5,%ymm10,%ymm5
1214
+ vpshufb %ymm15,%ymm5,%ymm5
1215
+ vpaddd %ymm0,%ymm11,%ymm11
1216
+ vpxor %ymm6,%ymm11,%ymm6
1217
+ vpshufb %ymm15,%ymm6,%ymm6
1218
+ vpaddd %ymm5,%ymm12,%ymm12
1219
+ vpxor %ymm3,%ymm12,%ymm3
1220
+ vpslld $12,%ymm3,%ymm14
1221
+ vpsrld $20,%ymm3,%ymm3
1222
+ vpor %ymm3,%ymm14,%ymm3
1223
+ vbroadcasti128 (%r11),%ymm14
1224
+ vpaddd %ymm6,%ymm13,%ymm13
1225
+ vpxor %ymm0,%ymm13,%ymm0
1226
+ vpslld $12,%ymm0,%ymm15
1227
+ vpsrld $20,%ymm0,%ymm0
1228
+ vpor %ymm0,%ymm15,%ymm0
1229
+ vpaddd %ymm3,%ymm10,%ymm10
1230
+ vpxor %ymm5,%ymm10,%ymm5
1231
+ vpshufb %ymm14,%ymm5,%ymm5
1232
+ vpaddd %ymm0,%ymm11,%ymm11
1233
+ vpxor %ymm6,%ymm11,%ymm6
1234
+ vpshufb %ymm14,%ymm6,%ymm6
1235
+ vpaddd %ymm5,%ymm12,%ymm12
1236
+ vpxor %ymm3,%ymm12,%ymm3
1237
+ vpslld $7,%ymm3,%ymm15
1238
+ vpsrld $25,%ymm3,%ymm3
1239
+ vpor %ymm3,%ymm15,%ymm3
1240
+ vbroadcasti128 (%r10),%ymm15
1241
+ vpaddd %ymm6,%ymm13,%ymm13
1242
+ vpxor %ymm0,%ymm13,%ymm0
1243
+ vpslld $7,%ymm0,%ymm14
1244
+ vpsrld $25,%ymm0,%ymm0
1245
+ vpor %ymm0,%ymm14,%ymm0
1246
+ decl %eax
1247
+ jnz .Loop8x
1248
+
1249
+ leaq 512(%rsp),%rax // size optimization
1250
+ vpaddd 128-256(%rcx),%ymm8,%ymm8 // accumulate key
1251
+ vpaddd 160-256(%rcx),%ymm9,%ymm9
1252
+ vpaddd 192-256(%rcx),%ymm10,%ymm10
1253
+ vpaddd 224-256(%rcx),%ymm11,%ymm11
1254
+
1255
+ vpunpckldq %ymm9,%ymm8,%ymm14 // "de-interlace" data
1256
+ vpunpckldq %ymm11,%ymm10,%ymm15
1257
+ vpunpckhdq %ymm9,%ymm8,%ymm8
1258
+ vpunpckhdq %ymm11,%ymm10,%ymm10
1259
+ vpunpcklqdq %ymm15,%ymm14,%ymm9 // "a0"
1260
+ vpunpckhqdq %ymm15,%ymm14,%ymm14 // "a1"
1261
+ vpunpcklqdq %ymm10,%ymm8,%ymm11 // "a2"
1262
+ vpunpckhqdq %ymm10,%ymm8,%ymm8 // "a3"
1263
+ vpaddd 256-256(%rcx),%ymm0,%ymm0
1264
+ vpaddd 288-256(%rcx),%ymm1,%ymm1
1265
+ vpaddd 320-256(%rcx),%ymm2,%ymm2
1266
+ vpaddd 352-256(%rcx),%ymm3,%ymm3
1267
+
1268
+ vpunpckldq %ymm1,%ymm0,%ymm10
1269
+ vpunpckldq %ymm3,%ymm2,%ymm15
1270
+ vpunpckhdq %ymm1,%ymm0,%ymm0
1271
+ vpunpckhdq %ymm3,%ymm2,%ymm2
1272
+ vpunpcklqdq %ymm15,%ymm10,%ymm1 // "b0"
1273
+ vpunpckhqdq %ymm15,%ymm10,%ymm10 // "b1"
1274
+ vpunpcklqdq %ymm2,%ymm0,%ymm3 // "b2"
1275
+ vpunpckhqdq %ymm2,%ymm0,%ymm0 // "b3"
1276
+ vperm2i128 $0x20,%ymm1,%ymm9,%ymm15 // "de-interlace" further
1277
+ vperm2i128 $0x31,%ymm1,%ymm9,%ymm1
1278
+ vperm2i128 $0x20,%ymm10,%ymm14,%ymm9
1279
+ vperm2i128 $0x31,%ymm10,%ymm14,%ymm10
1280
+ vperm2i128 $0x20,%ymm3,%ymm11,%ymm14
1281
+ vperm2i128 $0x31,%ymm3,%ymm11,%ymm3
1282
+ vperm2i128 $0x20,%ymm0,%ymm8,%ymm11
1283
+ vperm2i128 $0x31,%ymm0,%ymm8,%ymm0
1284
+ vmovdqa %ymm15,0(%rsp) // offload
1285
+ vmovdqa %ymm9,32(%rsp)
1286
+ vmovdqa 64(%rsp),%ymm15 // %ymm15
1287
+ vmovdqa 96(%rsp),%ymm9 // %ymm9
1288
+
1289
+ vpaddd 384-512(%rax),%ymm12,%ymm12
1290
+ vpaddd 416-512(%rax),%ymm13,%ymm13
1291
+ vpaddd 448-512(%rax),%ymm15,%ymm15
1292
+ vpaddd 480-512(%rax),%ymm9,%ymm9
1293
+
1294
+ vpunpckldq %ymm13,%ymm12,%ymm2
1295
+ vpunpckldq %ymm9,%ymm15,%ymm8
1296
+ vpunpckhdq %ymm13,%ymm12,%ymm12
1297
+ vpunpckhdq %ymm9,%ymm15,%ymm15
1298
+ vpunpcklqdq %ymm8,%ymm2,%ymm13 // "c0"
1299
+ vpunpckhqdq %ymm8,%ymm2,%ymm2 // "c1"
1300
+ vpunpcklqdq %ymm15,%ymm12,%ymm9 // "c2"
1301
+ vpunpckhqdq %ymm15,%ymm12,%ymm12 // "c3"
1302
+ vpaddd 512-512(%rax),%ymm4,%ymm4
1303
+ vpaddd 544-512(%rax),%ymm5,%ymm5
1304
+ vpaddd 576-512(%rax),%ymm6,%ymm6
1305
+ vpaddd 608-512(%rax),%ymm7,%ymm7
1306
+
1307
+ vpunpckldq %ymm5,%ymm4,%ymm15
1308
+ vpunpckldq %ymm7,%ymm6,%ymm8
1309
+ vpunpckhdq %ymm5,%ymm4,%ymm4
1310
+ vpunpckhdq %ymm7,%ymm6,%ymm6
1311
+ vpunpcklqdq %ymm8,%ymm15,%ymm5 // "d0"
1312
+ vpunpckhqdq %ymm8,%ymm15,%ymm15 // "d1"
1313
+ vpunpcklqdq %ymm6,%ymm4,%ymm7 // "d2"
1314
+ vpunpckhqdq %ymm6,%ymm4,%ymm4 // "d3"
1315
+ vperm2i128 $0x20,%ymm5,%ymm13,%ymm8 // "de-interlace" further
1316
+ vperm2i128 $0x31,%ymm5,%ymm13,%ymm5
1317
+ vperm2i128 $0x20,%ymm15,%ymm2,%ymm13
1318
+ vperm2i128 $0x31,%ymm15,%ymm2,%ymm15
1319
+ vperm2i128 $0x20,%ymm7,%ymm9,%ymm2
1320
+ vperm2i128 $0x31,%ymm7,%ymm9,%ymm7
1321
+ vperm2i128 $0x20,%ymm4,%ymm12,%ymm9
1322
+ vperm2i128 $0x31,%ymm4,%ymm12,%ymm4
1323
+ vmovdqa 0(%rsp),%ymm6 // was offloaded, remember?
1324
+ vmovdqa 32(%rsp),%ymm12
1325
+
1326
+ cmpq $512,%rdx
1327
+ jb .Ltail8x
1328
+
1329
+ vpxor 0(%rsi),%ymm6,%ymm6 // xor with input
1330
+ vpxor 32(%rsi),%ymm8,%ymm8
1331
+ vpxor 64(%rsi),%ymm1,%ymm1
1332
+ vpxor 96(%rsi),%ymm5,%ymm5
1333
+ leaq 128(%rsi),%rsi // size optimization
1334
+ vmovdqu %ymm6,0(%rdi)
1335
+ vmovdqu %ymm8,32(%rdi)
1336
+ vmovdqu %ymm1,64(%rdi)
1337
+ vmovdqu %ymm5,96(%rdi)
1338
+ leaq 128(%rdi),%rdi // size optimization
1339
+
1340
+ vpxor 0(%rsi),%ymm12,%ymm12
1341
+ vpxor 32(%rsi),%ymm13,%ymm13
1342
+ vpxor 64(%rsi),%ymm10,%ymm10
1343
+ vpxor 96(%rsi),%ymm15,%ymm15
1344
+ leaq 128(%rsi),%rsi // size optimization
1345
+ vmovdqu %ymm12,0(%rdi)
1346
+ vmovdqu %ymm13,32(%rdi)
1347
+ vmovdqu %ymm10,64(%rdi)
1348
+ vmovdqu %ymm15,96(%rdi)
1349
+ leaq 128(%rdi),%rdi // size optimization
1350
+
1351
+ vpxor 0(%rsi),%ymm14,%ymm14
1352
+ vpxor 32(%rsi),%ymm2,%ymm2
1353
+ vpxor 64(%rsi),%ymm3,%ymm3
1354
+ vpxor 96(%rsi),%ymm7,%ymm7
1355
+ leaq 128(%rsi),%rsi // size optimization
1356
+ vmovdqu %ymm14,0(%rdi)
1357
+ vmovdqu %ymm2,32(%rdi)
1358
+ vmovdqu %ymm3,64(%rdi)
1359
+ vmovdqu %ymm7,96(%rdi)
1360
+ leaq 128(%rdi),%rdi // size optimization
1361
+
1362
+ vpxor 0(%rsi),%ymm11,%ymm11
1363
+ vpxor 32(%rsi),%ymm9,%ymm9
1364
+ vpxor 64(%rsi),%ymm0,%ymm0
1365
+ vpxor 96(%rsi),%ymm4,%ymm4
1366
+ leaq 128(%rsi),%rsi // size optimization
1367
+ vmovdqu %ymm11,0(%rdi)
1368
+ vmovdqu %ymm9,32(%rdi)
1369
+ vmovdqu %ymm0,64(%rdi)
1370
+ vmovdqu %ymm4,96(%rdi)
1371
+ leaq 128(%rdi),%rdi // size optimization
1372
+
1373
+ subq $512,%rdx
1374
+ jnz .Loop_outer8x
1375
+
1376
+ jmp .Ldone8x
1377
+
1378
+ .Ltail8x:
1379
+ cmpq $448,%rdx
1380
+ jae .L448_or_more8x
1381
+ cmpq $384,%rdx
1382
+ jae .L384_or_more8x
1383
+ cmpq $320,%rdx
1384
+ jae .L320_or_more8x
1385
+ cmpq $256,%rdx
1386
+ jae .L256_or_more8x
1387
+ cmpq $192,%rdx
1388
+ jae .L192_or_more8x
1389
+ cmpq $128,%rdx
1390
+ jae .L128_or_more8x
1391
+ cmpq $64,%rdx
1392
+ jae .L64_or_more8x
1393
+
1394
+ xorq %r10,%r10
1395
+ vmovdqa %ymm6,0(%rsp)
1396
+ vmovdqa %ymm8,32(%rsp)
1397
+ jmp .Loop_tail8x
1398
+
1399
+ .align 32
1400
+ .L64_or_more8x:
1401
+ vpxor 0(%rsi),%ymm6,%ymm6 // xor with input
1402
+ vpxor 32(%rsi),%ymm8,%ymm8
1403
+ vmovdqu %ymm6,0(%rdi)
1404
+ vmovdqu %ymm8,32(%rdi)
1405
+ je .Ldone8x
1406
+
1407
+ leaq 64(%rsi),%rsi // inp+=64*1
1408
+ xorq %r10,%r10
1409
+ vmovdqa %ymm1,0(%rsp)
1410
+ leaq 64(%rdi),%rdi // out+=64*1
1411
+ subq $64,%rdx // len-=64*1
1412
+ vmovdqa %ymm5,32(%rsp)
1413
+ jmp .Loop_tail8x
1414
+
1415
+ .align 32
1416
+ .L128_or_more8x:
1417
+ vpxor 0(%rsi),%ymm6,%ymm6 // xor with input
1418
+ vpxor 32(%rsi),%ymm8,%ymm8
1419
+ vpxor 64(%rsi),%ymm1,%ymm1
1420
+ vpxor 96(%rsi),%ymm5,%ymm5
1421
+ vmovdqu %ymm6,0(%rdi)
1422
+ vmovdqu %ymm8,32(%rdi)
1423
+ vmovdqu %ymm1,64(%rdi)
1424
+ vmovdqu %ymm5,96(%rdi)
1425
+ je .Ldone8x
1426
+
1427
+ leaq 128(%rsi),%rsi // inp+=64*2
1428
+ xorq %r10,%r10
1429
+ vmovdqa %ymm12,0(%rsp)
1430
+ leaq 128(%rdi),%rdi // out+=64*2
1431
+ subq $128,%rdx // len-=64*2
1432
+ vmovdqa %ymm13,32(%rsp)
1433
+ jmp .Loop_tail8x
1434
+
1435
+ .align 32
1436
+ .L192_or_more8x:
1437
+ vpxor 0(%rsi),%ymm6,%ymm6 // xor with input
1438
+ vpxor 32(%rsi),%ymm8,%ymm8
1439
+ vpxor 64(%rsi),%ymm1,%ymm1
1440
+ vpxor 96(%rsi),%ymm5,%ymm5
1441
+ vpxor 128(%rsi),%ymm12,%ymm12
1442
+ vpxor 160(%rsi),%ymm13,%ymm13
1443
+ vmovdqu %ymm6,0(%rdi)
1444
+ vmovdqu %ymm8,32(%rdi)
1445
+ vmovdqu %ymm1,64(%rdi)
1446
+ vmovdqu %ymm5,96(%rdi)
1447
+ vmovdqu %ymm12,128(%rdi)
1448
+ vmovdqu %ymm13,160(%rdi)
1449
+ je .Ldone8x
1450
+
1451
+ leaq 192(%rsi),%rsi // inp+=64*3
1452
+ xorq %r10,%r10
1453
+ vmovdqa %ymm10,0(%rsp)
1454
+ leaq 192(%rdi),%rdi // out+=64*3
1455
+ subq $192,%rdx // len-=64*3
1456
+ vmovdqa %ymm15,32(%rsp)
1457
+ jmp .Loop_tail8x
1458
+
1459
+ .align 32
1460
+ .L256_or_more8x:
1461
+ vpxor 0(%rsi),%ymm6,%ymm6 // xor with input
1462
+ vpxor 32(%rsi),%ymm8,%ymm8
1463
+ vpxor 64(%rsi),%ymm1,%ymm1
1464
+ vpxor 96(%rsi),%ymm5,%ymm5
1465
+ vpxor 128(%rsi),%ymm12,%ymm12
1466
+ vpxor 160(%rsi),%ymm13,%ymm13
1467
+ vpxor 192(%rsi),%ymm10,%ymm10
1468
+ vpxor 224(%rsi),%ymm15,%ymm15
1469
+ vmovdqu %ymm6,0(%rdi)
1470
+ vmovdqu %ymm8,32(%rdi)
1471
+ vmovdqu %ymm1,64(%rdi)
1472
+ vmovdqu %ymm5,96(%rdi)
1473
+ vmovdqu %ymm12,128(%rdi)
1474
+ vmovdqu %ymm13,160(%rdi)
1475
+ vmovdqu %ymm10,192(%rdi)
1476
+ vmovdqu %ymm15,224(%rdi)
1477
+ je .Ldone8x
1478
+
1479
+ leaq 256(%rsi),%rsi // inp+=64*4
1480
+ xorq %r10,%r10
1481
+ vmovdqa %ymm14,0(%rsp)
1482
+ leaq 256(%rdi),%rdi // out+=64*4
1483
+ subq $256,%rdx // len-=64*4
1484
+ vmovdqa %ymm2,32(%rsp)
1485
+ jmp .Loop_tail8x
1486
+
1487
+ .align 32
1488
+ .L320_or_more8x:
1489
+ vpxor 0(%rsi),%ymm6,%ymm6 // xor with input
1490
+ vpxor 32(%rsi),%ymm8,%ymm8
1491
+ vpxor 64(%rsi),%ymm1,%ymm1
1492
+ vpxor 96(%rsi),%ymm5,%ymm5
1493
+ vpxor 128(%rsi),%ymm12,%ymm12
1494
+ vpxor 160(%rsi),%ymm13,%ymm13
1495
+ vpxor 192(%rsi),%ymm10,%ymm10
1496
+ vpxor 224(%rsi),%ymm15,%ymm15
1497
+ vpxor 256(%rsi),%ymm14,%ymm14
1498
+ vpxor 288(%rsi),%ymm2,%ymm2
1499
+ vmovdqu %ymm6,0(%rdi)
1500
+ vmovdqu %ymm8,32(%rdi)
1501
+ vmovdqu %ymm1,64(%rdi)
1502
+ vmovdqu %ymm5,96(%rdi)
1503
+ vmovdqu %ymm12,128(%rdi)
1504
+ vmovdqu %ymm13,160(%rdi)
1505
+ vmovdqu %ymm10,192(%rdi)
1506
+ vmovdqu %ymm15,224(%rdi)
1507
+ vmovdqu %ymm14,256(%rdi)
1508
+ vmovdqu %ymm2,288(%rdi)
1509
+ je .Ldone8x
1510
+
1511
+ leaq 320(%rsi),%rsi // inp+=64*5
1512
+ xorq %r10,%r10
1513
+ vmovdqa %ymm3,0(%rsp)
1514
+ leaq 320(%rdi),%rdi // out+=64*5
1515
+ subq $320,%rdx // len-=64*5
1516
+ vmovdqa %ymm7,32(%rsp)
1517
+ jmp .Loop_tail8x
1518
+
1519
+ .align 32
1520
+ .L384_or_more8x:
1521
+ vpxor 0(%rsi),%ymm6,%ymm6 // xor with input
1522
+ vpxor 32(%rsi),%ymm8,%ymm8
1523
+ vpxor 64(%rsi),%ymm1,%ymm1
1524
+ vpxor 96(%rsi),%ymm5,%ymm5
1525
+ vpxor 128(%rsi),%ymm12,%ymm12
1526
+ vpxor 160(%rsi),%ymm13,%ymm13
1527
+ vpxor 192(%rsi),%ymm10,%ymm10
1528
+ vpxor 224(%rsi),%ymm15,%ymm15
1529
+ vpxor 256(%rsi),%ymm14,%ymm14
1530
+ vpxor 288(%rsi),%ymm2,%ymm2
1531
+ vpxor 320(%rsi),%ymm3,%ymm3
1532
+ vpxor 352(%rsi),%ymm7,%ymm7
1533
+ vmovdqu %ymm6,0(%rdi)
1534
+ vmovdqu %ymm8,32(%rdi)
1535
+ vmovdqu %ymm1,64(%rdi)
1536
+ vmovdqu %ymm5,96(%rdi)
1537
+ vmovdqu %ymm12,128(%rdi)
1538
+ vmovdqu %ymm13,160(%rdi)
1539
+ vmovdqu %ymm10,192(%rdi)
1540
+ vmovdqu %ymm15,224(%rdi)
1541
+ vmovdqu %ymm14,256(%rdi)
1542
+ vmovdqu %ymm2,288(%rdi)
1543
+ vmovdqu %ymm3,320(%rdi)
1544
+ vmovdqu %ymm7,352(%rdi)
1545
+ je .Ldone8x
1546
+
1547
+ leaq 384(%rsi),%rsi // inp+=64*6
1548
+ xorq %r10,%r10
1549
+ vmovdqa %ymm11,0(%rsp)
1550
+ leaq 384(%rdi),%rdi // out+=64*6
1551
+ subq $384,%rdx // len-=64*6
1552
+ vmovdqa %ymm9,32(%rsp)
1553
+ jmp .Loop_tail8x
1554
+
1555
+ .align 32
1556
+ .L448_or_more8x:
1557
+ vpxor 0(%rsi),%ymm6,%ymm6 // xor with input
1558
+ vpxor 32(%rsi),%ymm8,%ymm8
1559
+ vpxor 64(%rsi),%ymm1,%ymm1
1560
+ vpxor 96(%rsi),%ymm5,%ymm5
1561
+ vpxor 128(%rsi),%ymm12,%ymm12
1562
+ vpxor 160(%rsi),%ymm13,%ymm13
1563
+ vpxor 192(%rsi),%ymm10,%ymm10
1564
+ vpxor 224(%rsi),%ymm15,%ymm15
1565
+ vpxor 256(%rsi),%ymm14,%ymm14
1566
+ vpxor 288(%rsi),%ymm2,%ymm2
1567
+ vpxor 320(%rsi),%ymm3,%ymm3
1568
+ vpxor 352(%rsi),%ymm7,%ymm7
1569
+ vpxor 384(%rsi),%ymm11,%ymm11
1570
+ vpxor 416(%rsi),%ymm9,%ymm9
1571
+ vmovdqu %ymm6,0(%rdi)
1572
+ vmovdqu %ymm8,32(%rdi)
1573
+ vmovdqu %ymm1,64(%rdi)
1574
+ vmovdqu %ymm5,96(%rdi)
1575
+ vmovdqu %ymm12,128(%rdi)
1576
+ vmovdqu %ymm13,160(%rdi)
1577
+ vmovdqu %ymm10,192(%rdi)
1578
+ vmovdqu %ymm15,224(%rdi)
1579
+ vmovdqu %ymm14,256(%rdi)
1580
+ vmovdqu %ymm2,288(%rdi)
1581
+ vmovdqu %ymm3,320(%rdi)
1582
+ vmovdqu %ymm7,352(%rdi)
1583
+ vmovdqu %ymm11,384(%rdi)
1584
+ vmovdqu %ymm9,416(%rdi)
1585
+ je .Ldone8x
1586
+
1587
+ leaq 448(%rsi),%rsi // inp+=64*7
1588
+ xorq %r10,%r10
1589
+ vmovdqa %ymm0,0(%rsp)
1590
+ leaq 448(%rdi),%rdi // out+=64*7
1591
+ subq $448,%rdx // len-=64*7
1592
+ vmovdqa %ymm4,32(%rsp)
1593
+
1594
+ .Loop_tail8x:
1595
+ movzbl (%rsi,%r10,1),%eax
1596
+ movzbl (%rsp,%r10,1),%ecx
1597
+ leaq 1(%r10),%r10
1598
+ xorl %ecx,%eax
1599
+ movb %al,-1(%rdi,%r10,1)
1600
+ decq %rdx
1601
+ jnz .Loop_tail8x
1602
+
1603
+ .Ldone8x:
1604
+ vzeroall
1605
+ leaq (%r9),%rsp
1606
+ .cfi_def_cfa_register rsp
1607
+ .L8x_epilogue:
1608
+ ret
1609
+ .cfi_endproc
1610
+ .size ChaCha20_ctr32_avx2,.-ChaCha20_ctr32_avx2
1611
+ #endif