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,2397 @@
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
+ .globl aes_hw_encrypt
9
+ .hidden aes_hw_encrypt
10
+ .type aes_hw_encrypt,@function
11
+ .align 16
12
+ aes_hw_encrypt:
13
+ .cfi_startproc
14
+ _CET_ENDBR
15
+ #ifdef BORINGSSL_DISPATCH_TEST
16
+ .extern BORINGSSL_function_hit
17
+ .hidden BORINGSSL_function_hit
18
+ movb $1,BORINGSSL_function_hit+1(%rip)
19
+ #endif
20
+ movups (%rdi),%xmm2 // load input
21
+ movl 240(%rdx),%eax // key->rounds
22
+ movups (%rdx),%xmm0
23
+ movups 16(%rdx),%xmm1
24
+ leaq 32(%rdx),%rdx
25
+ xorps %xmm0,%xmm2
26
+ .Loop_enc1_1:
27
+ aesenc %xmm1,%xmm2
28
+ decl %eax
29
+ movups (%rdx),%xmm1
30
+ leaq 16(%rdx),%rdx
31
+ jnz .Loop_enc1_1 // loop body is 16 bytes
32
+ aesenclast %xmm1,%xmm2
33
+ pxor %xmm0,%xmm0 // clear register bank
34
+ pxor %xmm1,%xmm1
35
+ movups %xmm2,(%rsi) // output
36
+ pxor %xmm2,%xmm2
37
+ ret
38
+ .cfi_endproc
39
+ .size aes_hw_encrypt,.-aes_hw_encrypt
40
+
41
+ .globl aes_hw_decrypt
42
+ .hidden aes_hw_decrypt
43
+ .type aes_hw_decrypt,@function
44
+ .align 16
45
+ aes_hw_decrypt:
46
+ .cfi_startproc
47
+ _CET_ENDBR
48
+ movups (%rdi),%xmm2 // load input
49
+ movl 240(%rdx),%eax // key->rounds
50
+ movups (%rdx),%xmm0
51
+ movups 16(%rdx),%xmm1
52
+ leaq 32(%rdx),%rdx
53
+ xorps %xmm0,%xmm2
54
+ .Loop_dec1_2:
55
+ aesdec %xmm1,%xmm2
56
+ decl %eax
57
+ movups (%rdx),%xmm1
58
+ leaq 16(%rdx),%rdx
59
+ jnz .Loop_dec1_2 // loop body is 16 bytes
60
+ aesdeclast %xmm1,%xmm2
61
+ pxor %xmm0,%xmm0 // clear register bank
62
+ pxor %xmm1,%xmm1
63
+ movups %xmm2,(%rsi) // output
64
+ pxor %xmm2,%xmm2
65
+ ret
66
+ .cfi_endproc
67
+ .size aes_hw_decrypt, .-aes_hw_decrypt
68
+ .type _aesni_encrypt2,@function
69
+ .align 16
70
+ _aesni_encrypt2:
71
+ .cfi_startproc
72
+ movups (%rcx),%xmm0
73
+ shll $4,%eax
74
+ movups 16(%rcx),%xmm1
75
+ xorps %xmm0,%xmm2
76
+ xorps %xmm0,%xmm3
77
+ movups 32(%rcx),%xmm0
78
+ leaq 32(%rcx,%rax,1),%rcx
79
+ negq %rax // %eax
80
+ addq $16,%rax
81
+
82
+ .Lenc_loop2:
83
+ aesenc %xmm1,%xmm2
84
+ aesenc %xmm1,%xmm3
85
+ movups (%rcx,%rax,1),%xmm1
86
+ addq $32,%rax
87
+ aesenc %xmm0,%xmm2
88
+ aesenc %xmm0,%xmm3
89
+ movups -16(%rcx,%rax,1),%xmm0
90
+ jnz .Lenc_loop2
91
+
92
+ aesenc %xmm1,%xmm2
93
+ aesenc %xmm1,%xmm3
94
+ aesenclast %xmm0,%xmm2
95
+ aesenclast %xmm0,%xmm3
96
+ ret
97
+ .cfi_endproc
98
+ .size _aesni_encrypt2,.-_aesni_encrypt2
99
+ .type _aesni_decrypt2,@function
100
+ .align 16
101
+ _aesni_decrypt2:
102
+ .cfi_startproc
103
+ movups (%rcx),%xmm0
104
+ shll $4,%eax
105
+ movups 16(%rcx),%xmm1
106
+ xorps %xmm0,%xmm2
107
+ xorps %xmm0,%xmm3
108
+ movups 32(%rcx),%xmm0
109
+ leaq 32(%rcx,%rax,1),%rcx
110
+ negq %rax // %eax
111
+ addq $16,%rax
112
+
113
+ .Ldec_loop2:
114
+ aesdec %xmm1,%xmm2
115
+ aesdec %xmm1,%xmm3
116
+ movups (%rcx,%rax,1),%xmm1
117
+ addq $32,%rax
118
+ aesdec %xmm0,%xmm2
119
+ aesdec %xmm0,%xmm3
120
+ movups -16(%rcx,%rax,1),%xmm0
121
+ jnz .Ldec_loop2
122
+
123
+ aesdec %xmm1,%xmm2
124
+ aesdec %xmm1,%xmm3
125
+ aesdeclast %xmm0,%xmm2
126
+ aesdeclast %xmm0,%xmm3
127
+ ret
128
+ .cfi_endproc
129
+ .size _aesni_decrypt2,.-_aesni_decrypt2
130
+ .type _aesni_encrypt3,@function
131
+ .align 16
132
+ _aesni_encrypt3:
133
+ .cfi_startproc
134
+ movups (%rcx),%xmm0
135
+ shll $4,%eax
136
+ movups 16(%rcx),%xmm1
137
+ xorps %xmm0,%xmm2
138
+ xorps %xmm0,%xmm3
139
+ xorps %xmm0,%xmm4
140
+ movups 32(%rcx),%xmm0
141
+ leaq 32(%rcx,%rax,1),%rcx
142
+ negq %rax // %eax
143
+ addq $16,%rax
144
+
145
+ .Lenc_loop3:
146
+ aesenc %xmm1,%xmm2
147
+ aesenc %xmm1,%xmm3
148
+ aesenc %xmm1,%xmm4
149
+ movups (%rcx,%rax,1),%xmm1
150
+ addq $32,%rax
151
+ aesenc %xmm0,%xmm2
152
+ aesenc %xmm0,%xmm3
153
+ aesenc %xmm0,%xmm4
154
+ movups -16(%rcx,%rax,1),%xmm0
155
+ jnz .Lenc_loop3
156
+
157
+ aesenc %xmm1,%xmm2
158
+ aesenc %xmm1,%xmm3
159
+ aesenc %xmm1,%xmm4
160
+ aesenclast %xmm0,%xmm2
161
+ aesenclast %xmm0,%xmm3
162
+ aesenclast %xmm0,%xmm4
163
+ ret
164
+ .cfi_endproc
165
+ .size _aesni_encrypt3,.-_aesni_encrypt3
166
+ .type _aesni_decrypt3,@function
167
+ .align 16
168
+ _aesni_decrypt3:
169
+ .cfi_startproc
170
+ movups (%rcx),%xmm0
171
+ shll $4,%eax
172
+ movups 16(%rcx),%xmm1
173
+ xorps %xmm0,%xmm2
174
+ xorps %xmm0,%xmm3
175
+ xorps %xmm0,%xmm4
176
+ movups 32(%rcx),%xmm0
177
+ leaq 32(%rcx,%rax,1),%rcx
178
+ negq %rax // %eax
179
+ addq $16,%rax
180
+
181
+ .Ldec_loop3:
182
+ aesdec %xmm1,%xmm2
183
+ aesdec %xmm1,%xmm3
184
+ aesdec %xmm1,%xmm4
185
+ movups (%rcx,%rax,1),%xmm1
186
+ addq $32,%rax
187
+ aesdec %xmm0,%xmm2
188
+ aesdec %xmm0,%xmm3
189
+ aesdec %xmm0,%xmm4
190
+ movups -16(%rcx,%rax,1),%xmm0
191
+ jnz .Ldec_loop3
192
+
193
+ aesdec %xmm1,%xmm2
194
+ aesdec %xmm1,%xmm3
195
+ aesdec %xmm1,%xmm4
196
+ aesdeclast %xmm0,%xmm2
197
+ aesdeclast %xmm0,%xmm3
198
+ aesdeclast %xmm0,%xmm4
199
+ ret
200
+ .cfi_endproc
201
+ .size _aesni_decrypt3,.-_aesni_decrypt3
202
+ .type _aesni_encrypt4,@function
203
+ .align 16
204
+ _aesni_encrypt4:
205
+ .cfi_startproc
206
+ movups (%rcx),%xmm0
207
+ shll $4,%eax
208
+ movups 16(%rcx),%xmm1
209
+ xorps %xmm0,%xmm2
210
+ xorps %xmm0,%xmm3
211
+ xorps %xmm0,%xmm4
212
+ xorps %xmm0,%xmm5
213
+ movups 32(%rcx),%xmm0
214
+ leaq 32(%rcx,%rax,1),%rcx
215
+ negq %rax // %eax
216
+ .byte 0x0f,0x1f,0x00
217
+ addq $16,%rax
218
+
219
+ .Lenc_loop4:
220
+ aesenc %xmm1,%xmm2
221
+ aesenc %xmm1,%xmm3
222
+ aesenc %xmm1,%xmm4
223
+ aesenc %xmm1,%xmm5
224
+ movups (%rcx,%rax,1),%xmm1
225
+ addq $32,%rax
226
+ aesenc %xmm0,%xmm2
227
+ aesenc %xmm0,%xmm3
228
+ aesenc %xmm0,%xmm4
229
+ aesenc %xmm0,%xmm5
230
+ movups -16(%rcx,%rax,1),%xmm0
231
+ jnz .Lenc_loop4
232
+
233
+ aesenc %xmm1,%xmm2
234
+ aesenc %xmm1,%xmm3
235
+ aesenc %xmm1,%xmm4
236
+ aesenc %xmm1,%xmm5
237
+ aesenclast %xmm0,%xmm2
238
+ aesenclast %xmm0,%xmm3
239
+ aesenclast %xmm0,%xmm4
240
+ aesenclast %xmm0,%xmm5
241
+ ret
242
+ .cfi_endproc
243
+ .size _aesni_encrypt4,.-_aesni_encrypt4
244
+ .type _aesni_decrypt4,@function
245
+ .align 16
246
+ _aesni_decrypt4:
247
+ .cfi_startproc
248
+ movups (%rcx),%xmm0
249
+ shll $4,%eax
250
+ movups 16(%rcx),%xmm1
251
+ xorps %xmm0,%xmm2
252
+ xorps %xmm0,%xmm3
253
+ xorps %xmm0,%xmm4
254
+ xorps %xmm0,%xmm5
255
+ movups 32(%rcx),%xmm0
256
+ leaq 32(%rcx,%rax,1),%rcx
257
+ negq %rax // %eax
258
+ .byte 0x0f,0x1f,0x00
259
+ addq $16,%rax
260
+
261
+ .Ldec_loop4:
262
+ aesdec %xmm1,%xmm2
263
+ aesdec %xmm1,%xmm3
264
+ aesdec %xmm1,%xmm4
265
+ aesdec %xmm1,%xmm5
266
+ movups (%rcx,%rax,1),%xmm1
267
+ addq $32,%rax
268
+ aesdec %xmm0,%xmm2
269
+ aesdec %xmm0,%xmm3
270
+ aesdec %xmm0,%xmm4
271
+ aesdec %xmm0,%xmm5
272
+ movups -16(%rcx,%rax,1),%xmm0
273
+ jnz .Ldec_loop4
274
+
275
+ aesdec %xmm1,%xmm2
276
+ aesdec %xmm1,%xmm3
277
+ aesdec %xmm1,%xmm4
278
+ aesdec %xmm1,%xmm5
279
+ aesdeclast %xmm0,%xmm2
280
+ aesdeclast %xmm0,%xmm3
281
+ aesdeclast %xmm0,%xmm4
282
+ aesdeclast %xmm0,%xmm5
283
+ ret
284
+ .cfi_endproc
285
+ .size _aesni_decrypt4,.-_aesni_decrypt4
286
+ .type _aesni_encrypt6,@function
287
+ .align 16
288
+ _aesni_encrypt6:
289
+ .cfi_startproc
290
+ movups (%rcx),%xmm0
291
+ shll $4,%eax
292
+ movups 16(%rcx),%xmm1
293
+ xorps %xmm0,%xmm2
294
+ pxor %xmm0,%xmm3
295
+ pxor %xmm0,%xmm4
296
+ aesenc %xmm1,%xmm2
297
+ leaq 32(%rcx,%rax,1),%rcx
298
+ negq %rax // %eax
299
+ aesenc %xmm1,%xmm3
300
+ pxor %xmm0,%xmm5
301
+ pxor %xmm0,%xmm6
302
+ aesenc %xmm1,%xmm4
303
+ pxor %xmm0,%xmm7
304
+ movups (%rcx,%rax,1),%xmm0
305
+ addq $16,%rax
306
+ jmp .Lenc_loop6_enter
307
+ .align 16
308
+ .Lenc_loop6:
309
+ aesenc %xmm1,%xmm2
310
+ aesenc %xmm1,%xmm3
311
+ aesenc %xmm1,%xmm4
312
+ .Lenc_loop6_enter:
313
+ aesenc %xmm1,%xmm5
314
+ aesenc %xmm1,%xmm6
315
+ aesenc %xmm1,%xmm7
316
+ movups (%rcx,%rax,1),%xmm1
317
+ addq $32,%rax
318
+ aesenc %xmm0,%xmm2
319
+ aesenc %xmm0,%xmm3
320
+ aesenc %xmm0,%xmm4
321
+ aesenc %xmm0,%xmm5
322
+ aesenc %xmm0,%xmm6
323
+ aesenc %xmm0,%xmm7
324
+ movups -16(%rcx,%rax,1),%xmm0
325
+ jnz .Lenc_loop6
326
+
327
+ aesenc %xmm1,%xmm2
328
+ aesenc %xmm1,%xmm3
329
+ aesenc %xmm1,%xmm4
330
+ aesenc %xmm1,%xmm5
331
+ aesenc %xmm1,%xmm6
332
+ aesenc %xmm1,%xmm7
333
+ aesenclast %xmm0,%xmm2
334
+ aesenclast %xmm0,%xmm3
335
+ aesenclast %xmm0,%xmm4
336
+ aesenclast %xmm0,%xmm5
337
+ aesenclast %xmm0,%xmm6
338
+ aesenclast %xmm0,%xmm7
339
+ ret
340
+ .cfi_endproc
341
+ .size _aesni_encrypt6,.-_aesni_encrypt6
342
+ .type _aesni_decrypt6,@function
343
+ .align 16
344
+ _aesni_decrypt6:
345
+ .cfi_startproc
346
+ movups (%rcx),%xmm0
347
+ shll $4,%eax
348
+ movups 16(%rcx),%xmm1
349
+ xorps %xmm0,%xmm2
350
+ pxor %xmm0,%xmm3
351
+ pxor %xmm0,%xmm4
352
+ aesdec %xmm1,%xmm2
353
+ leaq 32(%rcx,%rax,1),%rcx
354
+ negq %rax // %eax
355
+ aesdec %xmm1,%xmm3
356
+ pxor %xmm0,%xmm5
357
+ pxor %xmm0,%xmm6
358
+ aesdec %xmm1,%xmm4
359
+ pxor %xmm0,%xmm7
360
+ movups (%rcx,%rax,1),%xmm0
361
+ addq $16,%rax
362
+ jmp .Ldec_loop6_enter
363
+ .align 16
364
+ .Ldec_loop6:
365
+ aesdec %xmm1,%xmm2
366
+ aesdec %xmm1,%xmm3
367
+ aesdec %xmm1,%xmm4
368
+ .Ldec_loop6_enter:
369
+ aesdec %xmm1,%xmm5
370
+ aesdec %xmm1,%xmm6
371
+ aesdec %xmm1,%xmm7
372
+ movups (%rcx,%rax,1),%xmm1
373
+ addq $32,%rax
374
+ aesdec %xmm0,%xmm2
375
+ aesdec %xmm0,%xmm3
376
+ aesdec %xmm0,%xmm4
377
+ aesdec %xmm0,%xmm5
378
+ aesdec %xmm0,%xmm6
379
+ aesdec %xmm0,%xmm7
380
+ movups -16(%rcx,%rax,1),%xmm0
381
+ jnz .Ldec_loop6
382
+
383
+ aesdec %xmm1,%xmm2
384
+ aesdec %xmm1,%xmm3
385
+ aesdec %xmm1,%xmm4
386
+ aesdec %xmm1,%xmm5
387
+ aesdec %xmm1,%xmm6
388
+ aesdec %xmm1,%xmm7
389
+ aesdeclast %xmm0,%xmm2
390
+ aesdeclast %xmm0,%xmm3
391
+ aesdeclast %xmm0,%xmm4
392
+ aesdeclast %xmm0,%xmm5
393
+ aesdeclast %xmm0,%xmm6
394
+ aesdeclast %xmm0,%xmm7
395
+ ret
396
+ .cfi_endproc
397
+ .size _aesni_decrypt6,.-_aesni_decrypt6
398
+ .type _aesni_encrypt8,@function
399
+ .align 16
400
+ _aesni_encrypt8:
401
+ .cfi_startproc
402
+ movups (%rcx),%xmm0
403
+ shll $4,%eax
404
+ movups 16(%rcx),%xmm1
405
+ xorps %xmm0,%xmm2
406
+ xorps %xmm0,%xmm3
407
+ pxor %xmm0,%xmm4
408
+ pxor %xmm0,%xmm5
409
+ pxor %xmm0,%xmm6
410
+ leaq 32(%rcx,%rax,1),%rcx
411
+ negq %rax // %eax
412
+ aesenc %xmm1,%xmm2
413
+ pxor %xmm0,%xmm7
414
+ pxor %xmm0,%xmm8
415
+ aesenc %xmm1,%xmm3
416
+ pxor %xmm0,%xmm9
417
+ movups (%rcx,%rax,1),%xmm0
418
+ addq $16,%rax
419
+ jmp .Lenc_loop8_inner
420
+ .align 16
421
+ .Lenc_loop8:
422
+ aesenc %xmm1,%xmm2
423
+ aesenc %xmm1,%xmm3
424
+ .Lenc_loop8_inner:
425
+ aesenc %xmm1,%xmm4
426
+ aesenc %xmm1,%xmm5
427
+ aesenc %xmm1,%xmm6
428
+ aesenc %xmm1,%xmm7
429
+ aesenc %xmm1,%xmm8
430
+ aesenc %xmm1,%xmm9
431
+ .Lenc_loop8_enter:
432
+ movups (%rcx,%rax,1),%xmm1
433
+ addq $32,%rax
434
+ aesenc %xmm0,%xmm2
435
+ aesenc %xmm0,%xmm3
436
+ aesenc %xmm0,%xmm4
437
+ aesenc %xmm0,%xmm5
438
+ aesenc %xmm0,%xmm6
439
+ aesenc %xmm0,%xmm7
440
+ aesenc %xmm0,%xmm8
441
+ aesenc %xmm0,%xmm9
442
+ movups -16(%rcx,%rax,1),%xmm0
443
+ jnz .Lenc_loop8
444
+
445
+ aesenc %xmm1,%xmm2
446
+ aesenc %xmm1,%xmm3
447
+ aesenc %xmm1,%xmm4
448
+ aesenc %xmm1,%xmm5
449
+ aesenc %xmm1,%xmm6
450
+ aesenc %xmm1,%xmm7
451
+ aesenc %xmm1,%xmm8
452
+ aesenc %xmm1,%xmm9
453
+ aesenclast %xmm0,%xmm2
454
+ aesenclast %xmm0,%xmm3
455
+ aesenclast %xmm0,%xmm4
456
+ aesenclast %xmm0,%xmm5
457
+ aesenclast %xmm0,%xmm6
458
+ aesenclast %xmm0,%xmm7
459
+ aesenclast %xmm0,%xmm8
460
+ aesenclast %xmm0,%xmm9
461
+ ret
462
+ .cfi_endproc
463
+ .size _aesni_encrypt8,.-_aesni_encrypt8
464
+ .type _aesni_decrypt8,@function
465
+ .align 16
466
+ _aesni_decrypt8:
467
+ .cfi_startproc
468
+ movups (%rcx),%xmm0
469
+ shll $4,%eax
470
+ movups 16(%rcx),%xmm1
471
+ xorps %xmm0,%xmm2
472
+ xorps %xmm0,%xmm3
473
+ pxor %xmm0,%xmm4
474
+ pxor %xmm0,%xmm5
475
+ pxor %xmm0,%xmm6
476
+ leaq 32(%rcx,%rax,1),%rcx
477
+ negq %rax // %eax
478
+ aesdec %xmm1,%xmm2
479
+ pxor %xmm0,%xmm7
480
+ pxor %xmm0,%xmm8
481
+ aesdec %xmm1,%xmm3
482
+ pxor %xmm0,%xmm9
483
+ movups (%rcx,%rax,1),%xmm0
484
+ addq $16,%rax
485
+ jmp .Ldec_loop8_inner
486
+ .align 16
487
+ .Ldec_loop8:
488
+ aesdec %xmm1,%xmm2
489
+ aesdec %xmm1,%xmm3
490
+ .Ldec_loop8_inner:
491
+ aesdec %xmm1,%xmm4
492
+ aesdec %xmm1,%xmm5
493
+ aesdec %xmm1,%xmm6
494
+ aesdec %xmm1,%xmm7
495
+ aesdec %xmm1,%xmm8
496
+ aesdec %xmm1,%xmm9
497
+ .Ldec_loop8_enter:
498
+ movups (%rcx,%rax,1),%xmm1
499
+ addq $32,%rax
500
+ aesdec %xmm0,%xmm2
501
+ aesdec %xmm0,%xmm3
502
+ aesdec %xmm0,%xmm4
503
+ aesdec %xmm0,%xmm5
504
+ aesdec %xmm0,%xmm6
505
+ aesdec %xmm0,%xmm7
506
+ aesdec %xmm0,%xmm8
507
+ aesdec %xmm0,%xmm9
508
+ movups -16(%rcx,%rax,1),%xmm0
509
+ jnz .Ldec_loop8
510
+
511
+ aesdec %xmm1,%xmm2
512
+ aesdec %xmm1,%xmm3
513
+ aesdec %xmm1,%xmm4
514
+ aesdec %xmm1,%xmm5
515
+ aesdec %xmm1,%xmm6
516
+ aesdec %xmm1,%xmm7
517
+ aesdec %xmm1,%xmm8
518
+ aesdec %xmm1,%xmm9
519
+ aesdeclast %xmm0,%xmm2
520
+ aesdeclast %xmm0,%xmm3
521
+ aesdeclast %xmm0,%xmm4
522
+ aesdeclast %xmm0,%xmm5
523
+ aesdeclast %xmm0,%xmm6
524
+ aesdeclast %xmm0,%xmm7
525
+ aesdeclast %xmm0,%xmm8
526
+ aesdeclast %xmm0,%xmm9
527
+ ret
528
+ .cfi_endproc
529
+ .size _aesni_decrypt8,.-_aesni_decrypt8
530
+ .globl aes_hw_ecb_encrypt
531
+ .hidden aes_hw_ecb_encrypt
532
+ .type aes_hw_ecb_encrypt,@function
533
+ .align 16
534
+ aes_hw_ecb_encrypt:
535
+ .cfi_startproc
536
+ _CET_ENDBR
537
+ andq $-16,%rdx // if (%rdx<16)
538
+ jz .Lecb_ret // return
539
+
540
+ movl 240(%rcx),%eax // key->rounds
541
+ movups (%rcx),%xmm0
542
+ movq %rcx,%r11 // backup %rcx
543
+ movl %eax,%r10d // backup %eax
544
+ testl %r8d,%r8d // 5th argument
545
+ jz .Lecb_decrypt
546
+ // --------------------------- ECB ENCRYPT ------------------------------
547
+ cmpq $0x80,%rdx // if (%rdx<8*16)
548
+ jb .Lecb_enc_tail // short input
549
+
550
+ movdqu (%rdi),%xmm2 // load 8 input blocks
551
+ movdqu 16(%rdi),%xmm3
552
+ movdqu 32(%rdi),%xmm4
553
+ movdqu 48(%rdi),%xmm5
554
+ movdqu 64(%rdi),%xmm6
555
+ movdqu 80(%rdi),%xmm7
556
+ movdqu 96(%rdi),%xmm8
557
+ movdqu 112(%rdi),%xmm9
558
+ leaq 128(%rdi),%rdi // %rdi+=8*16
559
+ subq $0x80,%rdx // %rdx-=8*16 (can be zero)
560
+ jmp .Lecb_enc_loop8_enter
561
+ .align 16
562
+ .Lecb_enc_loop8:
563
+ movups %xmm2,(%rsi) // store 8 output blocks
564
+ movq %r11,%rcx // restore %rcx
565
+ movdqu (%rdi),%xmm2 // load 8 input blocks
566
+ movl %r10d,%eax // restore %eax
567
+ movups %xmm3,16(%rsi)
568
+ movdqu 16(%rdi),%xmm3
569
+ movups %xmm4,32(%rsi)
570
+ movdqu 32(%rdi),%xmm4
571
+ movups %xmm5,48(%rsi)
572
+ movdqu 48(%rdi),%xmm5
573
+ movups %xmm6,64(%rsi)
574
+ movdqu 64(%rdi),%xmm6
575
+ movups %xmm7,80(%rsi)
576
+ movdqu 80(%rdi),%xmm7
577
+ movups %xmm8,96(%rsi)
578
+ movdqu 96(%rdi),%xmm8
579
+ movups %xmm9,112(%rsi)
580
+ leaq 128(%rsi),%rsi // %rsi+=8*16
581
+ movdqu 112(%rdi),%xmm9
582
+ leaq 128(%rdi),%rdi // %rdi+=8*16
583
+ .Lecb_enc_loop8_enter:
584
+
585
+ call _aesni_encrypt8
586
+
587
+ subq $0x80,%rdx
588
+ jnc .Lecb_enc_loop8 // loop if %rdx-=8*16 didn't borrow
589
+
590
+ movups %xmm2,(%rsi) // store 8 output blocks
591
+ movq %r11,%rcx // restore %rcx
592
+ movups %xmm3,16(%rsi)
593
+ movl %r10d,%eax // restore %eax
594
+ movups %xmm4,32(%rsi)
595
+ movups %xmm5,48(%rsi)
596
+ movups %xmm6,64(%rsi)
597
+ movups %xmm7,80(%rsi)
598
+ movups %xmm8,96(%rsi)
599
+ movups %xmm9,112(%rsi)
600
+ leaq 128(%rsi),%rsi // %rsi+=8*16
601
+ addq $0x80,%rdx // restore real remaining %rdx
602
+ jz .Lecb_ret // done if (%rdx==0)
603
+
604
+ .Lecb_enc_tail: // %rdx is less than 8*16
605
+ movups (%rdi),%xmm2
606
+ cmpq $0x20,%rdx
607
+ jb .Lecb_enc_one
608
+ movups 16(%rdi),%xmm3
609
+ je .Lecb_enc_two
610
+ movups 32(%rdi),%xmm4
611
+ cmpq $0x40,%rdx
612
+ jb .Lecb_enc_three
613
+ movups 48(%rdi),%xmm5
614
+ je .Lecb_enc_four
615
+ movups 64(%rdi),%xmm6
616
+ cmpq $0x60,%rdx
617
+ jb .Lecb_enc_five
618
+ movups 80(%rdi),%xmm7
619
+ je .Lecb_enc_six
620
+ movdqu 96(%rdi),%xmm8
621
+ xorps %xmm9,%xmm9
622
+ call _aesni_encrypt8
623
+ movups %xmm2,(%rsi) // store 7 output blocks
624
+ movups %xmm3,16(%rsi)
625
+ movups %xmm4,32(%rsi)
626
+ movups %xmm5,48(%rsi)
627
+ movups %xmm6,64(%rsi)
628
+ movups %xmm7,80(%rsi)
629
+ movups %xmm8,96(%rsi)
630
+ jmp .Lecb_ret
631
+ .align 16
632
+ .Lecb_enc_one:
633
+ movups (%rcx),%xmm0
634
+ movups 16(%rcx),%xmm1
635
+ leaq 32(%rcx),%rcx
636
+ xorps %xmm0,%xmm2
637
+ .Loop_enc1_3:
638
+ aesenc %xmm1,%xmm2
639
+ decl %eax
640
+ movups (%rcx),%xmm1
641
+ leaq 16(%rcx),%rcx
642
+ jnz .Loop_enc1_3 // loop body is 16 bytes
643
+ aesenclast %xmm1,%xmm2
644
+ movups %xmm2,(%rsi) // store one output block
645
+ jmp .Lecb_ret
646
+ .align 16
647
+ .Lecb_enc_two:
648
+ call _aesni_encrypt2
649
+ movups %xmm2,(%rsi) // store 2 output blocks
650
+ movups %xmm3,16(%rsi)
651
+ jmp .Lecb_ret
652
+ .align 16
653
+ .Lecb_enc_three:
654
+ call _aesni_encrypt3
655
+ movups %xmm2,(%rsi) // store 3 output blocks
656
+ movups %xmm3,16(%rsi)
657
+ movups %xmm4,32(%rsi)
658
+ jmp .Lecb_ret
659
+ .align 16
660
+ .Lecb_enc_four:
661
+ call _aesni_encrypt4
662
+ movups %xmm2,(%rsi) // store 4 output blocks
663
+ movups %xmm3,16(%rsi)
664
+ movups %xmm4,32(%rsi)
665
+ movups %xmm5,48(%rsi)
666
+ jmp .Lecb_ret
667
+ .align 16
668
+ .Lecb_enc_five:
669
+ xorps %xmm7,%xmm7
670
+ call _aesni_encrypt6
671
+ movups %xmm2,(%rsi) // store 5 output blocks
672
+ movups %xmm3,16(%rsi)
673
+ movups %xmm4,32(%rsi)
674
+ movups %xmm5,48(%rsi)
675
+ movups %xmm6,64(%rsi)
676
+ jmp .Lecb_ret
677
+ .align 16
678
+ .Lecb_enc_six:
679
+ call _aesni_encrypt6
680
+ movups %xmm2,(%rsi) // store 6 output blocks
681
+ movups %xmm3,16(%rsi)
682
+ movups %xmm4,32(%rsi)
683
+ movups %xmm5,48(%rsi)
684
+ movups %xmm6,64(%rsi)
685
+ movups %xmm7,80(%rsi)
686
+ jmp .Lecb_ret
687
+ // --------------------------- ECB DECRYPT ------------------------------#
688
+ .align 16
689
+ .Lecb_decrypt:
690
+ cmpq $0x80,%rdx // if (%rdx<8*16)
691
+ jb .Lecb_dec_tail // short input
692
+
693
+ movdqu (%rdi),%xmm2 // load 8 input blocks
694
+ movdqu 16(%rdi),%xmm3
695
+ movdqu 32(%rdi),%xmm4
696
+ movdqu 48(%rdi),%xmm5
697
+ movdqu 64(%rdi),%xmm6
698
+ movdqu 80(%rdi),%xmm7
699
+ movdqu 96(%rdi),%xmm8
700
+ movdqu 112(%rdi),%xmm9
701
+ leaq 128(%rdi),%rdi // %rdi+=8*16
702
+ subq $0x80,%rdx // %rdx-=8*16 (can be zero)
703
+ jmp .Lecb_dec_loop8_enter
704
+ .align 16
705
+ .Lecb_dec_loop8:
706
+ movups %xmm2,(%rsi) // store 8 output blocks
707
+ movq %r11,%rcx // restore %rcx
708
+ movdqu (%rdi),%xmm2 // load 8 input blocks
709
+ movl %r10d,%eax // restore %eax
710
+ movups %xmm3,16(%rsi)
711
+ movdqu 16(%rdi),%xmm3
712
+ movups %xmm4,32(%rsi)
713
+ movdqu 32(%rdi),%xmm4
714
+ movups %xmm5,48(%rsi)
715
+ movdqu 48(%rdi),%xmm5
716
+ movups %xmm6,64(%rsi)
717
+ movdqu 64(%rdi),%xmm6
718
+ movups %xmm7,80(%rsi)
719
+ movdqu 80(%rdi),%xmm7
720
+ movups %xmm8,96(%rsi)
721
+ movdqu 96(%rdi),%xmm8
722
+ movups %xmm9,112(%rsi)
723
+ leaq 128(%rsi),%rsi // %rsi+=8*16
724
+ movdqu 112(%rdi),%xmm9
725
+ leaq 128(%rdi),%rdi // %rdi+=8*16
726
+ .Lecb_dec_loop8_enter:
727
+
728
+ call _aesni_decrypt8
729
+
730
+ movups (%r11),%xmm0
731
+ subq $0x80,%rdx
732
+ jnc .Lecb_dec_loop8 // loop if %rdx-=8*16 didn't borrow
733
+
734
+ movups %xmm2,(%rsi) // store 8 output blocks
735
+ pxor %xmm2,%xmm2 // clear register bank
736
+ movq %r11,%rcx // restore %rcx
737
+ movups %xmm3,16(%rsi)
738
+ pxor %xmm3,%xmm3
739
+ movl %r10d,%eax // restore %eax
740
+ movups %xmm4,32(%rsi)
741
+ pxor %xmm4,%xmm4
742
+ movups %xmm5,48(%rsi)
743
+ pxor %xmm5,%xmm5
744
+ movups %xmm6,64(%rsi)
745
+ pxor %xmm6,%xmm6
746
+ movups %xmm7,80(%rsi)
747
+ pxor %xmm7,%xmm7
748
+ movups %xmm8,96(%rsi)
749
+ pxor %xmm8,%xmm8
750
+ movups %xmm9,112(%rsi)
751
+ pxor %xmm9,%xmm9
752
+ leaq 128(%rsi),%rsi // %rsi+=8*16
753
+ addq $0x80,%rdx // restore real remaining %rdx
754
+ jz .Lecb_ret // done if (%rdx==0)
755
+
756
+ .Lecb_dec_tail:
757
+ movups (%rdi),%xmm2
758
+ cmpq $0x20,%rdx
759
+ jb .Lecb_dec_one
760
+ movups 16(%rdi),%xmm3
761
+ je .Lecb_dec_two
762
+ movups 32(%rdi),%xmm4
763
+ cmpq $0x40,%rdx
764
+ jb .Lecb_dec_three
765
+ movups 48(%rdi),%xmm5
766
+ je .Lecb_dec_four
767
+ movups 64(%rdi),%xmm6
768
+ cmpq $0x60,%rdx
769
+ jb .Lecb_dec_five
770
+ movups 80(%rdi),%xmm7
771
+ je .Lecb_dec_six
772
+ movups 96(%rdi),%xmm8
773
+ movups (%rcx),%xmm0
774
+ xorps %xmm9,%xmm9
775
+ call _aesni_decrypt8
776
+ movups %xmm2,(%rsi) // store 7 output blocks
777
+ pxor %xmm2,%xmm2 // clear register bank
778
+ movups %xmm3,16(%rsi)
779
+ pxor %xmm3,%xmm3
780
+ movups %xmm4,32(%rsi)
781
+ pxor %xmm4,%xmm4
782
+ movups %xmm5,48(%rsi)
783
+ pxor %xmm5,%xmm5
784
+ movups %xmm6,64(%rsi)
785
+ pxor %xmm6,%xmm6
786
+ movups %xmm7,80(%rsi)
787
+ pxor %xmm7,%xmm7
788
+ movups %xmm8,96(%rsi)
789
+ pxor %xmm8,%xmm8
790
+ pxor %xmm9,%xmm9
791
+ jmp .Lecb_ret
792
+ .align 16
793
+ .Lecb_dec_one:
794
+ movups (%rcx),%xmm0
795
+ movups 16(%rcx),%xmm1
796
+ leaq 32(%rcx),%rcx
797
+ xorps %xmm0,%xmm2
798
+ .Loop_dec1_4:
799
+ aesdec %xmm1,%xmm2
800
+ decl %eax
801
+ movups (%rcx),%xmm1
802
+ leaq 16(%rcx),%rcx
803
+ jnz .Loop_dec1_4 // loop body is 16 bytes
804
+ aesdeclast %xmm1,%xmm2
805
+ movups %xmm2,(%rsi) // store one output block
806
+ pxor %xmm2,%xmm2 // clear register bank
807
+ jmp .Lecb_ret
808
+ .align 16
809
+ .Lecb_dec_two:
810
+ call _aesni_decrypt2
811
+ movups %xmm2,(%rsi) // store 2 output blocks
812
+ pxor %xmm2,%xmm2 // clear register bank
813
+ movups %xmm3,16(%rsi)
814
+ pxor %xmm3,%xmm3
815
+ jmp .Lecb_ret
816
+ .align 16
817
+ .Lecb_dec_three:
818
+ call _aesni_decrypt3
819
+ movups %xmm2,(%rsi) // store 3 output blocks
820
+ pxor %xmm2,%xmm2 // clear register bank
821
+ movups %xmm3,16(%rsi)
822
+ pxor %xmm3,%xmm3
823
+ movups %xmm4,32(%rsi)
824
+ pxor %xmm4,%xmm4
825
+ jmp .Lecb_ret
826
+ .align 16
827
+ .Lecb_dec_four:
828
+ call _aesni_decrypt4
829
+ movups %xmm2,(%rsi) // store 4 output blocks
830
+ pxor %xmm2,%xmm2 // clear register bank
831
+ movups %xmm3,16(%rsi)
832
+ pxor %xmm3,%xmm3
833
+ movups %xmm4,32(%rsi)
834
+ pxor %xmm4,%xmm4
835
+ movups %xmm5,48(%rsi)
836
+ pxor %xmm5,%xmm5
837
+ jmp .Lecb_ret
838
+ .align 16
839
+ .Lecb_dec_five:
840
+ xorps %xmm7,%xmm7
841
+ call _aesni_decrypt6
842
+ movups %xmm2,(%rsi) // store 5 output blocks
843
+ pxor %xmm2,%xmm2 // clear register bank
844
+ movups %xmm3,16(%rsi)
845
+ pxor %xmm3,%xmm3
846
+ movups %xmm4,32(%rsi)
847
+ pxor %xmm4,%xmm4
848
+ movups %xmm5,48(%rsi)
849
+ pxor %xmm5,%xmm5
850
+ movups %xmm6,64(%rsi)
851
+ pxor %xmm6,%xmm6
852
+ pxor %xmm7,%xmm7
853
+ jmp .Lecb_ret
854
+ .align 16
855
+ .Lecb_dec_six:
856
+ call _aesni_decrypt6
857
+ movups %xmm2,(%rsi) // store 6 output blocks
858
+ pxor %xmm2,%xmm2 // clear register bank
859
+ movups %xmm3,16(%rsi)
860
+ pxor %xmm3,%xmm3
861
+ movups %xmm4,32(%rsi)
862
+ pxor %xmm4,%xmm4
863
+ movups %xmm5,48(%rsi)
864
+ pxor %xmm5,%xmm5
865
+ movups %xmm6,64(%rsi)
866
+ pxor %xmm6,%xmm6
867
+ movups %xmm7,80(%rsi)
868
+ pxor %xmm7,%xmm7
869
+
870
+ .Lecb_ret:
871
+ xorps %xmm0,%xmm0 // %xmm0
872
+ pxor %xmm1,%xmm1
873
+ ret
874
+ .cfi_endproc
875
+ .size aes_hw_ecb_encrypt,.-aes_hw_ecb_encrypt
876
+ .globl aes_hw_ctr32_encrypt_blocks
877
+ .hidden aes_hw_ctr32_encrypt_blocks
878
+ .type aes_hw_ctr32_encrypt_blocks,@function
879
+ .align 16
880
+ aes_hw_ctr32_encrypt_blocks:
881
+ .cfi_startproc
882
+ _CET_ENDBR
883
+ #ifdef BORINGSSL_DISPATCH_TEST
884
+ movb $1,BORINGSSL_function_hit(%rip)
885
+ #endif
886
+ cmpq $1,%rdx
887
+ jne .Lctr32_bulk
888
+
889
+ // handle single block without allocating stack frame,
890
+ // useful when handling edges
891
+ movups (%r8),%xmm2
892
+ movups (%rdi),%xmm3
893
+ movl 240(%rcx),%edx // key->rounds
894
+ movups (%rcx),%xmm0
895
+ movups 16(%rcx),%xmm1
896
+ leaq 32(%rcx),%rcx
897
+ xorps %xmm0,%xmm2
898
+ .Loop_enc1_5:
899
+ aesenc %xmm1,%xmm2
900
+ decl %edx
901
+ movups (%rcx),%xmm1
902
+ leaq 16(%rcx),%rcx
903
+ jnz .Loop_enc1_5 // loop body is 16 bytes
904
+ aesenclast %xmm1,%xmm2
905
+ pxor %xmm0,%xmm0 // clear register bank
906
+ pxor %xmm1,%xmm1
907
+ xorps %xmm3,%xmm2
908
+ pxor %xmm3,%xmm3
909
+ movups %xmm2,(%rsi)
910
+ xorps %xmm2,%xmm2
911
+ jmp .Lctr32_epilogue
912
+
913
+ .align 16
914
+ .Lctr32_bulk:
915
+ leaq (%rsp),%r11 // use %r11 as frame pointer
916
+ .cfi_def_cfa_register %r11
917
+ pushq %rbp
918
+ .cfi_offset %rbp,-16
919
+ subq $128,%rsp
920
+ andq $-16,%rsp // Linux kernel stack can be incorrectly seeded
921
+
922
+ // 8 16-byte words on top of stack are counter values
923
+ // xor-ed with zero-round key
924
+
925
+ movdqu (%r8),%xmm2
926
+ movdqu (%rcx),%xmm0
927
+ movl 12(%r8),%r8d // counter LSB
928
+ pxor %xmm0,%xmm2
929
+ movl 12(%rcx),%ebp // 0-round key LSB
930
+ movdqa %xmm2,0(%rsp) // populate counter block
931
+ bswapl %r8d
932
+ movdqa %xmm2,%xmm3
933
+ movdqa %xmm2,%xmm4
934
+ movdqa %xmm2,%xmm5
935
+ movdqa %xmm2,64(%rsp)
936
+ movdqa %xmm2,80(%rsp)
937
+ movdqa %xmm2,96(%rsp)
938
+ movq %rdx,%r10 // about to borrow %rdx
939
+ movdqa %xmm2,112(%rsp)
940
+
941
+ leaq 1(%r8),%rax
942
+ leaq 2(%r8),%rdx
943
+ bswapl %eax
944
+ bswapl %edx
945
+ xorl %ebp,%eax
946
+ xorl %ebp,%edx
947
+ pinsrd $3,%eax,%xmm3
948
+ leaq 3(%r8),%rax
949
+ movdqa %xmm3,16(%rsp)
950
+ pinsrd $3,%edx,%xmm4
951
+ bswapl %eax
952
+ movq %r10,%rdx // restore %rdx
953
+ leaq 4(%r8),%r10
954
+ movdqa %xmm4,32(%rsp)
955
+ xorl %ebp,%eax
956
+ bswapl %r10d
957
+ pinsrd $3,%eax,%xmm5
958
+ xorl %ebp,%r10d
959
+ movdqa %xmm5,48(%rsp)
960
+ leaq 5(%r8),%r9
961
+ movl %r10d,64+12(%rsp)
962
+ bswapl %r9d
963
+ leaq 6(%r8),%r10
964
+ movl 240(%rcx),%eax // key->rounds
965
+ xorl %ebp,%r9d
966
+ bswapl %r10d
967
+ movl %r9d,80+12(%rsp)
968
+ xorl %ebp,%r10d
969
+ leaq 7(%r8),%r9
970
+ movl %r10d,96+12(%rsp)
971
+ bswapl %r9d
972
+ xorl %ebp,%r9d
973
+ movl %r9d,112+12(%rsp)
974
+
975
+ movups 16(%rcx),%xmm1
976
+
977
+ movdqa 64(%rsp),%xmm6
978
+ movdqa 80(%rsp),%xmm7
979
+
980
+ cmpq $8,%rdx // %rdx is in blocks
981
+ jb .Lctr32_tail // short input if (%rdx<8)
982
+
983
+ leaq 128(%rcx),%rcx // size optimization
984
+ subq $8,%rdx // %rdx is biased by -8
985
+ jmp .Lctr32_loop8
986
+
987
+ .align 32
988
+ .Lctr32_loop8:
989
+ addl $8,%r8d // next counter value
990
+ movdqa 96(%rsp),%xmm8
991
+ aesenc %xmm1,%xmm2
992
+ movl %r8d,%r9d
993
+ movdqa 112(%rsp),%xmm9
994
+ aesenc %xmm1,%xmm3
995
+ bswapl %r9d
996
+ movups 32-128(%rcx),%xmm0
997
+ aesenc %xmm1,%xmm4
998
+ xorl %ebp,%r9d
999
+ nop
1000
+ aesenc %xmm1,%xmm5
1001
+ movl %r9d,0+12(%rsp) // store next counter value
1002
+ leaq 1(%r8),%r9
1003
+ aesenc %xmm1,%xmm6
1004
+ aesenc %xmm1,%xmm7
1005
+ aesenc %xmm1,%xmm8
1006
+ aesenc %xmm1,%xmm9
1007
+ movups 48-128(%rcx),%xmm1
1008
+ bswapl %r9d
1009
+ aesenc %xmm0,%xmm2
1010
+ aesenc %xmm0,%xmm3
1011
+ xorl %ebp,%r9d
1012
+ .byte 0x66,0x90
1013
+ aesenc %xmm0,%xmm4
1014
+ aesenc %xmm0,%xmm5
1015
+ movl %r9d,16+12(%rsp)
1016
+ leaq 2(%r8),%r9
1017
+ aesenc %xmm0,%xmm6
1018
+ aesenc %xmm0,%xmm7
1019
+ aesenc %xmm0,%xmm8
1020
+ aesenc %xmm0,%xmm9
1021
+ movups 64-128(%rcx),%xmm0
1022
+ bswapl %r9d
1023
+ aesenc %xmm1,%xmm2
1024
+ aesenc %xmm1,%xmm3
1025
+ xorl %ebp,%r9d
1026
+ .byte 0x66,0x90
1027
+ aesenc %xmm1,%xmm4
1028
+ aesenc %xmm1,%xmm5
1029
+ movl %r9d,32+12(%rsp)
1030
+ leaq 3(%r8),%r9
1031
+ aesenc %xmm1,%xmm6
1032
+ aesenc %xmm1,%xmm7
1033
+ aesenc %xmm1,%xmm8
1034
+ aesenc %xmm1,%xmm9
1035
+ movups 80-128(%rcx),%xmm1
1036
+ bswapl %r9d
1037
+ aesenc %xmm0,%xmm2
1038
+ aesenc %xmm0,%xmm3
1039
+ xorl %ebp,%r9d
1040
+ .byte 0x66,0x90
1041
+ aesenc %xmm0,%xmm4
1042
+ aesenc %xmm0,%xmm5
1043
+ movl %r9d,48+12(%rsp)
1044
+ leaq 4(%r8),%r9
1045
+ aesenc %xmm0,%xmm6
1046
+ aesenc %xmm0,%xmm7
1047
+ aesenc %xmm0,%xmm8
1048
+ aesenc %xmm0,%xmm9
1049
+ movups 96-128(%rcx),%xmm0
1050
+ bswapl %r9d
1051
+ aesenc %xmm1,%xmm2
1052
+ aesenc %xmm1,%xmm3
1053
+ xorl %ebp,%r9d
1054
+ .byte 0x66,0x90
1055
+ aesenc %xmm1,%xmm4
1056
+ aesenc %xmm1,%xmm5
1057
+ movl %r9d,64+12(%rsp)
1058
+ leaq 5(%r8),%r9
1059
+ aesenc %xmm1,%xmm6
1060
+ aesenc %xmm1,%xmm7
1061
+ aesenc %xmm1,%xmm8
1062
+ aesenc %xmm1,%xmm9
1063
+ movups 112-128(%rcx),%xmm1
1064
+ bswapl %r9d
1065
+ aesenc %xmm0,%xmm2
1066
+ aesenc %xmm0,%xmm3
1067
+ xorl %ebp,%r9d
1068
+ .byte 0x66,0x90
1069
+ aesenc %xmm0,%xmm4
1070
+ aesenc %xmm0,%xmm5
1071
+ movl %r9d,80+12(%rsp)
1072
+ leaq 6(%r8),%r9
1073
+ aesenc %xmm0,%xmm6
1074
+ aesenc %xmm0,%xmm7
1075
+ aesenc %xmm0,%xmm8
1076
+ aesenc %xmm0,%xmm9
1077
+ movups 128-128(%rcx),%xmm0
1078
+ bswapl %r9d
1079
+ aesenc %xmm1,%xmm2
1080
+ aesenc %xmm1,%xmm3
1081
+ xorl %ebp,%r9d
1082
+ .byte 0x66,0x90
1083
+ aesenc %xmm1,%xmm4
1084
+ aesenc %xmm1,%xmm5
1085
+ movl %r9d,96+12(%rsp)
1086
+ leaq 7(%r8),%r9
1087
+ aesenc %xmm1,%xmm6
1088
+ aesenc %xmm1,%xmm7
1089
+ aesenc %xmm1,%xmm8
1090
+ aesenc %xmm1,%xmm9
1091
+ movups 144-128(%rcx),%xmm1
1092
+ bswapl %r9d
1093
+ aesenc %xmm0,%xmm2
1094
+ aesenc %xmm0,%xmm3
1095
+ aesenc %xmm0,%xmm4
1096
+ xorl %ebp,%r9d
1097
+ movdqu 0(%rdi),%xmm10 // start loading input
1098
+ aesenc %xmm0,%xmm5
1099
+ movl %r9d,112+12(%rsp)
1100
+ cmpl $11,%eax
1101
+ aesenc %xmm0,%xmm6
1102
+ aesenc %xmm0,%xmm7
1103
+ aesenc %xmm0,%xmm8
1104
+ aesenc %xmm0,%xmm9
1105
+ movups 160-128(%rcx),%xmm0
1106
+
1107
+ jb .Lctr32_enc_done
1108
+
1109
+ aesenc %xmm1,%xmm2
1110
+ aesenc %xmm1,%xmm3
1111
+ aesenc %xmm1,%xmm4
1112
+ aesenc %xmm1,%xmm5
1113
+ aesenc %xmm1,%xmm6
1114
+ aesenc %xmm1,%xmm7
1115
+ aesenc %xmm1,%xmm8
1116
+ aesenc %xmm1,%xmm9
1117
+ movups 176-128(%rcx),%xmm1
1118
+
1119
+ aesenc %xmm0,%xmm2
1120
+ aesenc %xmm0,%xmm3
1121
+ aesenc %xmm0,%xmm4
1122
+ aesenc %xmm0,%xmm5
1123
+ aesenc %xmm0,%xmm6
1124
+ aesenc %xmm0,%xmm7
1125
+ aesenc %xmm0,%xmm8
1126
+ aesenc %xmm0,%xmm9
1127
+ movups 192-128(%rcx),%xmm0
1128
+ je .Lctr32_enc_done
1129
+
1130
+ aesenc %xmm1,%xmm2
1131
+ aesenc %xmm1,%xmm3
1132
+ aesenc %xmm1,%xmm4
1133
+ aesenc %xmm1,%xmm5
1134
+ aesenc %xmm1,%xmm6
1135
+ aesenc %xmm1,%xmm7
1136
+ aesenc %xmm1,%xmm8
1137
+ aesenc %xmm1,%xmm9
1138
+ movups 208-128(%rcx),%xmm1
1139
+
1140
+ aesenc %xmm0,%xmm2
1141
+ aesenc %xmm0,%xmm3
1142
+ aesenc %xmm0,%xmm4
1143
+ aesenc %xmm0,%xmm5
1144
+ aesenc %xmm0,%xmm6
1145
+ aesenc %xmm0,%xmm7
1146
+ aesenc %xmm0,%xmm8
1147
+ aesenc %xmm0,%xmm9
1148
+ movups 224-128(%rcx),%xmm0
1149
+ jmp .Lctr32_enc_done
1150
+
1151
+ .align 16
1152
+ .Lctr32_enc_done:
1153
+ movdqu 16(%rdi),%xmm11
1154
+ pxor %xmm0,%xmm10 // input^=round[last]
1155
+ movdqu 32(%rdi),%xmm12
1156
+ pxor %xmm0,%xmm11
1157
+ movdqu 48(%rdi),%xmm13
1158
+ pxor %xmm0,%xmm12
1159
+ movdqu 64(%rdi),%xmm14
1160
+ pxor %xmm0,%xmm13
1161
+ movdqu 80(%rdi),%xmm15
1162
+ pxor %xmm0,%xmm14
1163
+ prefetcht0 448(%rdi) // We process 128 bytes (8*16), so to prefetch 1 iteration
1164
+ prefetcht0 512(%rdi) // We need to prefetch 2 64 byte lines
1165
+ pxor %xmm0,%xmm15
1166
+ aesenc %xmm1,%xmm2
1167
+ aesenc %xmm1,%xmm3
1168
+ aesenc %xmm1,%xmm4
1169
+ aesenc %xmm1,%xmm5
1170
+ aesenc %xmm1,%xmm6
1171
+ aesenc %xmm1,%xmm7
1172
+ aesenc %xmm1,%xmm8
1173
+ aesenc %xmm1,%xmm9
1174
+ movdqu 96(%rdi),%xmm1 // borrow %xmm1 for inp[6]
1175
+ leaq 128(%rdi),%rdi // %rdi+=8*16
1176
+
1177
+ aesenclast %xmm10,%xmm2 // is inp[N]^round[last]
1178
+ pxor %xmm0,%xmm1 // borrowed
1179
+ movdqu 112-128(%rdi),%xmm10
1180
+ aesenclast %xmm11,%xmm3
1181
+ pxor %xmm0,%xmm10
1182
+ movdqa 0(%rsp),%xmm11 // load next counter block
1183
+ aesenclast %xmm12,%xmm4
1184
+ aesenclast %xmm13,%xmm5
1185
+ movdqa 16(%rsp),%xmm12
1186
+ movdqa 32(%rsp),%xmm13
1187
+ aesenclast %xmm14,%xmm6
1188
+ aesenclast %xmm15,%xmm7
1189
+ movdqa 48(%rsp),%xmm14
1190
+ movdqa 64(%rsp),%xmm15
1191
+ aesenclast %xmm1,%xmm8
1192
+ movdqa 80(%rsp),%xmm0
1193
+ movups 16-128(%rcx),%xmm1 // real 1st-round key
1194
+ aesenclast %xmm10,%xmm9
1195
+
1196
+ movups %xmm2,(%rsi) // store 8 output blocks
1197
+ movdqa %xmm11,%xmm2
1198
+ movups %xmm3,16(%rsi)
1199
+ movdqa %xmm12,%xmm3
1200
+ movups %xmm4,32(%rsi)
1201
+ movdqa %xmm13,%xmm4
1202
+ movups %xmm5,48(%rsi)
1203
+ movdqa %xmm14,%xmm5
1204
+ movups %xmm6,64(%rsi)
1205
+ movdqa %xmm15,%xmm6
1206
+ movups %xmm7,80(%rsi)
1207
+ movdqa %xmm0,%xmm7
1208
+ movups %xmm8,96(%rsi)
1209
+ movups %xmm9,112(%rsi)
1210
+ leaq 128(%rsi),%rsi // %rsi+=8*16
1211
+
1212
+ subq $8,%rdx
1213
+ jnc .Lctr32_loop8 // loop if %rdx-=8 didn't borrow
1214
+
1215
+ addq $8,%rdx // restore real remaining %rdx
1216
+ jz .Lctr32_done // done if (%rdx==0)
1217
+ leaq -128(%rcx),%rcx
1218
+
1219
+ .Lctr32_tail:
1220
+ // note that at this point %xmm2..5 are populated with
1221
+ // counter values xor-ed with 0-round key
1222
+ leaq 16(%rcx),%rcx
1223
+ cmpq $4,%rdx
1224
+ jb .Lctr32_loop3
1225
+ je .Lctr32_loop4
1226
+
1227
+ // if (%rdx>4) compute 7 E(counter)
1228
+ shll $4,%eax
1229
+ movdqa 96(%rsp),%xmm8
1230
+ pxor %xmm9,%xmm9
1231
+
1232
+ movups 16(%rcx),%xmm0
1233
+ aesenc %xmm1,%xmm2
1234
+ aesenc %xmm1,%xmm3
1235
+ leaq 32-16(%rcx,%rax,1),%rcx // prepare for .Lenc_loop8_enter
1236
+ negq %rax
1237
+ aesenc %xmm1,%xmm4
1238
+ addq $16,%rax // prepare for .Lenc_loop8_enter
1239
+ movups (%rdi),%xmm10
1240
+ aesenc %xmm1,%xmm5
1241
+ aesenc %xmm1,%xmm6
1242
+ movups 16(%rdi),%xmm11 // pre-load input
1243
+ movups 32(%rdi),%xmm12
1244
+ aesenc %xmm1,%xmm7
1245
+ aesenc %xmm1,%xmm8
1246
+
1247
+ call .Lenc_loop8_enter
1248
+
1249
+ movdqu 48(%rdi),%xmm13
1250
+ pxor %xmm10,%xmm2
1251
+ movdqu 64(%rdi),%xmm10
1252
+ pxor %xmm11,%xmm3
1253
+ movdqu %xmm2,(%rsi) // store output
1254
+ pxor %xmm12,%xmm4
1255
+ movdqu %xmm3,16(%rsi)
1256
+ pxor %xmm13,%xmm5
1257
+ movdqu %xmm4,32(%rsi)
1258
+ pxor %xmm10,%xmm6
1259
+ movdqu %xmm5,48(%rsi)
1260
+ movdqu %xmm6,64(%rsi)
1261
+ cmpq $6,%rdx
1262
+ jb .Lctr32_done // %rdx was 5, stop store
1263
+
1264
+ movups 80(%rdi),%xmm11
1265
+ xorps %xmm11,%xmm7
1266
+ movups %xmm7,80(%rsi)
1267
+ je .Lctr32_done // %rdx was 6, stop store
1268
+
1269
+ movups 96(%rdi),%xmm12
1270
+ xorps %xmm12,%xmm8
1271
+ movups %xmm8,96(%rsi)
1272
+ jmp .Lctr32_done // %rdx was 7, stop store
1273
+
1274
+ .align 32
1275
+ .Lctr32_loop4:
1276
+ aesenc %xmm1,%xmm2
1277
+ leaq 16(%rcx),%rcx
1278
+ decl %eax
1279
+ aesenc %xmm1,%xmm3
1280
+ aesenc %xmm1,%xmm4
1281
+ aesenc %xmm1,%xmm5
1282
+ movups (%rcx),%xmm1
1283
+ jnz .Lctr32_loop4
1284
+ aesenclast %xmm1,%xmm2
1285
+ aesenclast %xmm1,%xmm3
1286
+ movups (%rdi),%xmm10 // load input
1287
+ movups 16(%rdi),%xmm11
1288
+ aesenclast %xmm1,%xmm4
1289
+ aesenclast %xmm1,%xmm5
1290
+ movups 32(%rdi),%xmm12
1291
+ movups 48(%rdi),%xmm13
1292
+
1293
+ xorps %xmm10,%xmm2
1294
+ movups %xmm2,(%rsi) // store output
1295
+ xorps %xmm11,%xmm3
1296
+ movups %xmm3,16(%rsi)
1297
+ pxor %xmm12,%xmm4
1298
+ movdqu %xmm4,32(%rsi)
1299
+ pxor %xmm13,%xmm5
1300
+ movdqu %xmm5,48(%rsi)
1301
+ jmp .Lctr32_done // %rdx was 4, stop store
1302
+
1303
+ .align 32
1304
+ .Lctr32_loop3:
1305
+ aesenc %xmm1,%xmm2
1306
+ leaq 16(%rcx),%rcx
1307
+ decl %eax
1308
+ aesenc %xmm1,%xmm3
1309
+ aesenc %xmm1,%xmm4
1310
+ movups (%rcx),%xmm1
1311
+ jnz .Lctr32_loop3
1312
+ aesenclast %xmm1,%xmm2
1313
+ aesenclast %xmm1,%xmm3
1314
+ aesenclast %xmm1,%xmm4
1315
+
1316
+ movups (%rdi),%xmm10 // load input
1317
+ xorps %xmm10,%xmm2
1318
+ movups %xmm2,(%rsi) // store output
1319
+ cmpq $2,%rdx
1320
+ jb .Lctr32_done // %rdx was 1, stop store
1321
+
1322
+ movups 16(%rdi),%xmm11
1323
+ xorps %xmm11,%xmm3
1324
+ movups %xmm3,16(%rsi)
1325
+ je .Lctr32_done // %rdx was 2, stop store
1326
+
1327
+ movups 32(%rdi),%xmm12
1328
+ xorps %xmm12,%xmm4
1329
+ movups %xmm4,32(%rsi) // %rdx was 3, stop store
1330
+
1331
+ .Lctr32_done:
1332
+ xorps %xmm0,%xmm0 // clear register bank
1333
+ xorl %ebp,%ebp
1334
+ pxor %xmm1,%xmm1
1335
+ pxor %xmm2,%xmm2
1336
+ pxor %xmm3,%xmm3
1337
+ pxor %xmm4,%xmm4
1338
+ pxor %xmm5,%xmm5
1339
+ pxor %xmm6,%xmm6
1340
+ pxor %xmm7,%xmm7
1341
+ movaps %xmm0,0(%rsp) // clear stack
1342
+ pxor %xmm8,%xmm8
1343
+ movaps %xmm0,16(%rsp)
1344
+ pxor %xmm9,%xmm9
1345
+ movaps %xmm0,32(%rsp)
1346
+ pxor %xmm10,%xmm10
1347
+ movaps %xmm0,48(%rsp)
1348
+ pxor %xmm11,%xmm11
1349
+ movaps %xmm0,64(%rsp)
1350
+ pxor %xmm12,%xmm12
1351
+ movaps %xmm0,80(%rsp)
1352
+ pxor %xmm13,%xmm13
1353
+ movaps %xmm0,96(%rsp)
1354
+ pxor %xmm14,%xmm14
1355
+ movaps %xmm0,112(%rsp)
1356
+ pxor %xmm15,%xmm15
1357
+ movq -8(%r11),%rbp
1358
+ .cfi_restore %rbp
1359
+ leaq (%r11),%rsp
1360
+ .cfi_def_cfa_register %rsp
1361
+ .Lctr32_epilogue:
1362
+ ret
1363
+ .cfi_endproc
1364
+ .size aes_hw_ctr32_encrypt_blocks,.-aes_hw_ctr32_encrypt_blocks
1365
+ .globl aes_hw_cbc_encrypt
1366
+ .hidden aes_hw_cbc_encrypt
1367
+ .type aes_hw_cbc_encrypt,@function
1368
+ .align 16
1369
+ aes_hw_cbc_encrypt:
1370
+ .cfi_startproc
1371
+ _CET_ENDBR
1372
+ testq %rdx,%rdx // check length
1373
+ jz .Lcbc_ret
1374
+
1375
+ movl 240(%rcx),%r10d // key->rounds
1376
+ movq %rcx,%r11 // backup %rcx
1377
+ testl %r9d,%r9d // 6th argument
1378
+ jz .Lcbc_decrypt
1379
+ // --------------------------- CBC ENCRYPT ------------------------------
1380
+ movups (%r8),%xmm2 // load iv as initial state
1381
+ movl %r10d,%eax
1382
+ cmpq $16,%rdx
1383
+ jb .Lcbc_enc_tail
1384
+ subq $16,%rdx
1385
+ jmp .Lcbc_enc_loop
1386
+ .align 16
1387
+ .Lcbc_enc_loop:
1388
+ movups (%rdi),%xmm3 // load input
1389
+ leaq 16(%rdi),%rdi
1390
+ // xorps %xmm3,%xmm2
1391
+ movups (%rcx),%xmm0
1392
+ movups 16(%rcx),%xmm1
1393
+ xorps %xmm0,%xmm3
1394
+ leaq 32(%rcx),%rcx
1395
+ xorps %xmm3,%xmm2
1396
+ .Loop_enc1_6:
1397
+ aesenc %xmm1,%xmm2
1398
+ decl %eax
1399
+ movups (%rcx),%xmm1
1400
+ leaq 16(%rcx),%rcx
1401
+ jnz .Loop_enc1_6 // loop body is 16 bytes
1402
+ aesenclast %xmm1,%xmm2
1403
+ movl %r10d,%eax // restore %eax
1404
+ movq %r11,%rcx // restore %rcx
1405
+ movups %xmm2,0(%rsi) // store output
1406
+ leaq 16(%rsi),%rsi
1407
+ subq $16,%rdx
1408
+ jnc .Lcbc_enc_loop
1409
+ addq $16,%rdx
1410
+ jnz .Lcbc_enc_tail
1411
+ pxor %xmm0,%xmm0 // clear register bank
1412
+ pxor %xmm1,%xmm1
1413
+ movups %xmm2,(%r8)
1414
+ pxor %xmm2,%xmm2
1415
+ pxor %xmm3,%xmm3
1416
+ jmp .Lcbc_ret
1417
+
1418
+ .Lcbc_enc_tail:
1419
+ movq %rdx,%rcx // zaps %rcx
1420
+ xchgq %rdi,%rsi // %rdi is %rsi and %rsi is %rdi now
1421
+ .long 0x9066A4F3 // rep movsb
1422
+ movl $16,%ecx // zero tail
1423
+ subq %rdx,%rcx
1424
+ xorl %eax,%eax
1425
+ .long 0x9066AAF3 // rep stosb
1426
+ leaq -16(%rdi),%rdi // rewind %rsi by 1 block
1427
+ movl %r10d,%eax // restore %eax
1428
+ movq %rdi,%rsi // %rdi and %rsi are the same
1429
+ movq %r11,%rcx // restore %rcx
1430
+ xorq %rdx,%rdx // len=16
1431
+ jmp .Lcbc_enc_loop // one more spin
1432
+ // --------------------------- CBC DECRYPT ------------------------------#
1433
+ .align 16
1434
+ .Lcbc_decrypt:
1435
+ cmpq $16,%rdx
1436
+ jne .Lcbc_decrypt_bulk
1437
+
1438
+ // handle single block without allocating stack frame,
1439
+ // useful in ciphertext stealing mode
1440
+ movdqu (%rdi),%xmm2 // load input
1441
+ movdqu (%r8),%xmm3 // load iv
1442
+ movdqa %xmm2,%xmm4 // future iv
1443
+ movups (%rcx),%xmm0
1444
+ movups 16(%rcx),%xmm1
1445
+ leaq 32(%rcx),%rcx
1446
+ xorps %xmm0,%xmm2
1447
+ .Loop_dec1_7:
1448
+ aesdec %xmm1,%xmm2
1449
+ decl %r10d
1450
+ movups (%rcx),%xmm1
1451
+ leaq 16(%rcx),%rcx
1452
+ jnz .Loop_dec1_7 // loop body is 16 bytes
1453
+ aesdeclast %xmm1,%xmm2
1454
+ pxor %xmm0,%xmm0 // clear register bank
1455
+ pxor %xmm1,%xmm1
1456
+ movdqu %xmm4,(%r8) // store iv
1457
+ xorps %xmm3,%xmm2 // ^=iv
1458
+ pxor %xmm3,%xmm3
1459
+ movups %xmm2,(%rsi) // store output
1460
+ pxor %xmm2,%xmm2
1461
+ jmp .Lcbc_ret
1462
+ .align 16
1463
+ .Lcbc_decrypt_bulk:
1464
+ leaq (%rsp),%r11 // frame pointer
1465
+ .cfi_def_cfa_register %r11
1466
+ pushq %rbp
1467
+ .cfi_offset %rbp,-16
1468
+ subq $16,%rsp
1469
+ andq $-16,%rsp // Linux kernel stack can be incorrectly seeded
1470
+ movq %rcx,%rbp // [re-]backup %rcx [after reassignment]
1471
+ movups (%r8),%xmm10
1472
+ movl %r10d,%eax
1473
+ cmpq $0x50,%rdx
1474
+ jbe .Lcbc_dec_tail
1475
+
1476
+ movups (%rcx),%xmm0
1477
+ movdqu 0(%rdi),%xmm2 // load input
1478
+ movdqu 16(%rdi),%xmm3
1479
+ movdqa %xmm2,%xmm11
1480
+ movdqu 32(%rdi),%xmm4
1481
+ movdqa %xmm3,%xmm12
1482
+ movdqu 48(%rdi),%xmm5
1483
+ movdqa %xmm4,%xmm13
1484
+ movdqu 64(%rdi),%xmm6
1485
+ movdqa %xmm5,%xmm14
1486
+ movdqu 80(%rdi),%xmm7
1487
+ movdqa %xmm6,%xmm15
1488
+ cmpq $0x70,%rdx
1489
+ jbe .Lcbc_dec_six_or_seven
1490
+
1491
+ subq $0x70,%rdx // %rdx is biased by -7*16
1492
+ leaq 112(%rcx),%rcx // size optimization
1493
+ jmp .Lcbc_dec_loop8_enter
1494
+ .align 16
1495
+ .Lcbc_dec_loop8:
1496
+ movups %xmm9,(%rsi)
1497
+ leaq 16(%rsi),%rsi
1498
+ .Lcbc_dec_loop8_enter:
1499
+ movdqu 96(%rdi),%xmm8
1500
+ pxor %xmm0,%xmm2
1501
+ movdqu 112(%rdi),%xmm9
1502
+ pxor %xmm0,%xmm3
1503
+ movups 16-112(%rcx),%xmm1
1504
+ pxor %xmm0,%xmm4
1505
+ movq $-1,%rbp
1506
+ cmpq $0x70,%rdx // is there at least 0x60 bytes ahead?
1507
+ pxor %xmm0,%xmm5
1508
+ pxor %xmm0,%xmm6
1509
+ pxor %xmm0,%xmm7
1510
+ pxor %xmm0,%xmm8
1511
+
1512
+ aesdec %xmm1,%xmm2
1513
+ pxor %xmm0,%xmm9
1514
+ movups 32-112(%rcx),%xmm0
1515
+ aesdec %xmm1,%xmm3
1516
+ aesdec %xmm1,%xmm4
1517
+ aesdec %xmm1,%xmm5
1518
+ aesdec %xmm1,%xmm6
1519
+ aesdec %xmm1,%xmm7
1520
+ aesdec %xmm1,%xmm8
1521
+ adcq $0,%rbp
1522
+ andq $128,%rbp
1523
+ aesdec %xmm1,%xmm9
1524
+ addq %rdi,%rbp
1525
+ movups 48-112(%rcx),%xmm1
1526
+ aesdec %xmm0,%xmm2
1527
+ aesdec %xmm0,%xmm3
1528
+ aesdec %xmm0,%xmm4
1529
+ aesdec %xmm0,%xmm5
1530
+ aesdec %xmm0,%xmm6
1531
+ aesdec %xmm0,%xmm7
1532
+ aesdec %xmm0,%xmm8
1533
+ aesdec %xmm0,%xmm9
1534
+ movups 64-112(%rcx),%xmm0
1535
+ nop
1536
+ aesdec %xmm1,%xmm2
1537
+ aesdec %xmm1,%xmm3
1538
+ aesdec %xmm1,%xmm4
1539
+ aesdec %xmm1,%xmm5
1540
+ aesdec %xmm1,%xmm6
1541
+ aesdec %xmm1,%xmm7
1542
+ aesdec %xmm1,%xmm8
1543
+ aesdec %xmm1,%xmm9
1544
+ movups 80-112(%rcx),%xmm1
1545
+ nop
1546
+ aesdec %xmm0,%xmm2
1547
+ aesdec %xmm0,%xmm3
1548
+ aesdec %xmm0,%xmm4
1549
+ aesdec %xmm0,%xmm5
1550
+ aesdec %xmm0,%xmm6
1551
+ aesdec %xmm0,%xmm7
1552
+ aesdec %xmm0,%xmm8
1553
+ aesdec %xmm0,%xmm9
1554
+ movups 96-112(%rcx),%xmm0
1555
+ nop
1556
+ aesdec %xmm1,%xmm2
1557
+ aesdec %xmm1,%xmm3
1558
+ aesdec %xmm1,%xmm4
1559
+ aesdec %xmm1,%xmm5
1560
+ aesdec %xmm1,%xmm6
1561
+ aesdec %xmm1,%xmm7
1562
+ aesdec %xmm1,%xmm8
1563
+ aesdec %xmm1,%xmm9
1564
+ movups 112-112(%rcx),%xmm1
1565
+ nop
1566
+ aesdec %xmm0,%xmm2
1567
+ aesdec %xmm0,%xmm3
1568
+ aesdec %xmm0,%xmm4
1569
+ aesdec %xmm0,%xmm5
1570
+ aesdec %xmm0,%xmm6
1571
+ aesdec %xmm0,%xmm7
1572
+ aesdec %xmm0,%xmm8
1573
+ aesdec %xmm0,%xmm9
1574
+ movups 128-112(%rcx),%xmm0
1575
+ nop
1576
+ aesdec %xmm1,%xmm2
1577
+ aesdec %xmm1,%xmm3
1578
+ aesdec %xmm1,%xmm4
1579
+ aesdec %xmm1,%xmm5
1580
+ aesdec %xmm1,%xmm6
1581
+ aesdec %xmm1,%xmm7
1582
+ aesdec %xmm1,%xmm8
1583
+ aesdec %xmm1,%xmm9
1584
+ movups 144-112(%rcx),%xmm1
1585
+ cmpl $11,%eax
1586
+ aesdec %xmm0,%xmm2
1587
+ aesdec %xmm0,%xmm3
1588
+ aesdec %xmm0,%xmm4
1589
+ aesdec %xmm0,%xmm5
1590
+ aesdec %xmm0,%xmm6
1591
+ aesdec %xmm0,%xmm7
1592
+ aesdec %xmm0,%xmm8
1593
+ aesdec %xmm0,%xmm9
1594
+ movups 160-112(%rcx),%xmm0
1595
+ jb .Lcbc_dec_done
1596
+ aesdec %xmm1,%xmm2
1597
+ aesdec %xmm1,%xmm3
1598
+ aesdec %xmm1,%xmm4
1599
+ aesdec %xmm1,%xmm5
1600
+ aesdec %xmm1,%xmm6
1601
+ aesdec %xmm1,%xmm7
1602
+ aesdec %xmm1,%xmm8
1603
+ aesdec %xmm1,%xmm9
1604
+ movups 176-112(%rcx),%xmm1
1605
+ nop
1606
+ aesdec %xmm0,%xmm2
1607
+ aesdec %xmm0,%xmm3
1608
+ aesdec %xmm0,%xmm4
1609
+ aesdec %xmm0,%xmm5
1610
+ aesdec %xmm0,%xmm6
1611
+ aesdec %xmm0,%xmm7
1612
+ aesdec %xmm0,%xmm8
1613
+ aesdec %xmm0,%xmm9
1614
+ movups 192-112(%rcx),%xmm0
1615
+ je .Lcbc_dec_done
1616
+ aesdec %xmm1,%xmm2
1617
+ aesdec %xmm1,%xmm3
1618
+ aesdec %xmm1,%xmm4
1619
+ aesdec %xmm1,%xmm5
1620
+ aesdec %xmm1,%xmm6
1621
+ aesdec %xmm1,%xmm7
1622
+ aesdec %xmm1,%xmm8
1623
+ aesdec %xmm1,%xmm9
1624
+ movups 208-112(%rcx),%xmm1
1625
+ nop
1626
+ aesdec %xmm0,%xmm2
1627
+ aesdec %xmm0,%xmm3
1628
+ aesdec %xmm0,%xmm4
1629
+ aesdec %xmm0,%xmm5
1630
+ aesdec %xmm0,%xmm6
1631
+ aesdec %xmm0,%xmm7
1632
+ aesdec %xmm0,%xmm8
1633
+ aesdec %xmm0,%xmm9
1634
+ movups 224-112(%rcx),%xmm0
1635
+ jmp .Lcbc_dec_done
1636
+ .align 16
1637
+ .Lcbc_dec_done:
1638
+ aesdec %xmm1,%xmm2
1639
+ aesdec %xmm1,%xmm3
1640
+ pxor %xmm0,%xmm10
1641
+ pxor %xmm0,%xmm11
1642
+ aesdec %xmm1,%xmm4
1643
+ aesdec %xmm1,%xmm5
1644
+ pxor %xmm0,%xmm12
1645
+ pxor %xmm0,%xmm13
1646
+ aesdec %xmm1,%xmm6
1647
+ aesdec %xmm1,%xmm7
1648
+ pxor %xmm0,%xmm14
1649
+ pxor %xmm0,%xmm15
1650
+ aesdec %xmm1,%xmm8
1651
+ aesdec %xmm1,%xmm9
1652
+ movdqu 80(%rdi),%xmm1
1653
+
1654
+ aesdeclast %xmm10,%xmm2
1655
+ movdqu 96(%rdi),%xmm10 // borrow %xmm10
1656
+ pxor %xmm0,%xmm1
1657
+ aesdeclast %xmm11,%xmm3
1658
+ pxor %xmm0,%xmm10
1659
+ movdqu 112(%rdi),%xmm0 // next IV
1660
+ aesdeclast %xmm12,%xmm4
1661
+ leaq 128(%rdi),%rdi
1662
+ movdqu 0(%rbp),%xmm11
1663
+ aesdeclast %xmm13,%xmm5
1664
+ aesdeclast %xmm14,%xmm6
1665
+ movdqu 16(%rbp),%xmm12
1666
+ movdqu 32(%rbp),%xmm13
1667
+ aesdeclast %xmm15,%xmm7
1668
+ aesdeclast %xmm1,%xmm8
1669
+ movdqu 48(%rbp),%xmm14
1670
+ movdqu 64(%rbp),%xmm15
1671
+ aesdeclast %xmm10,%xmm9
1672
+ movdqa %xmm0,%xmm10 // return %xmm10
1673
+ movdqu 80(%rbp),%xmm1
1674
+ movups -112(%rcx),%xmm0
1675
+
1676
+ movups %xmm2,(%rsi) // store output
1677
+ movdqa %xmm11,%xmm2
1678
+ movups %xmm3,16(%rsi)
1679
+ movdqa %xmm12,%xmm3
1680
+ movups %xmm4,32(%rsi)
1681
+ movdqa %xmm13,%xmm4
1682
+ movups %xmm5,48(%rsi)
1683
+ movdqa %xmm14,%xmm5
1684
+ movups %xmm6,64(%rsi)
1685
+ movdqa %xmm15,%xmm6
1686
+ movups %xmm7,80(%rsi)
1687
+ movdqa %xmm1,%xmm7
1688
+ movups %xmm8,96(%rsi)
1689
+ leaq 112(%rsi),%rsi
1690
+
1691
+ subq $0x80,%rdx
1692
+ ja .Lcbc_dec_loop8
1693
+
1694
+ movaps %xmm9,%xmm2
1695
+ leaq -112(%rcx),%rcx
1696
+ addq $0x70,%rdx
1697
+ jle .Lcbc_dec_clear_tail_collected
1698
+ movups %xmm9,(%rsi)
1699
+ leaq 16(%rsi),%rsi
1700
+ cmpq $0x50,%rdx
1701
+ jbe .Lcbc_dec_tail
1702
+
1703
+ movaps %xmm11,%xmm2
1704
+ .Lcbc_dec_six_or_seven:
1705
+ cmpq $0x60,%rdx
1706
+ ja .Lcbc_dec_seven
1707
+
1708
+ movaps %xmm7,%xmm8
1709
+ call _aesni_decrypt6
1710
+ pxor %xmm10,%xmm2 // ^= IV
1711
+ movaps %xmm8,%xmm10
1712
+ pxor %xmm11,%xmm3
1713
+ movdqu %xmm2,(%rsi)
1714
+ pxor %xmm12,%xmm4
1715
+ movdqu %xmm3,16(%rsi)
1716
+ pxor %xmm3,%xmm3 // clear register bank
1717
+ pxor %xmm13,%xmm5
1718
+ movdqu %xmm4,32(%rsi)
1719
+ pxor %xmm4,%xmm4
1720
+ pxor %xmm14,%xmm6
1721
+ movdqu %xmm5,48(%rsi)
1722
+ pxor %xmm5,%xmm5
1723
+ pxor %xmm15,%xmm7
1724
+ movdqu %xmm6,64(%rsi)
1725
+ pxor %xmm6,%xmm6
1726
+ leaq 80(%rsi),%rsi
1727
+ movdqa %xmm7,%xmm2
1728
+ pxor %xmm7,%xmm7
1729
+ jmp .Lcbc_dec_tail_collected
1730
+
1731
+ .align 16
1732
+ .Lcbc_dec_seven:
1733
+ movups 96(%rdi),%xmm8
1734
+ xorps %xmm9,%xmm9
1735
+ call _aesni_decrypt8
1736
+ movups 80(%rdi),%xmm9
1737
+ pxor %xmm10,%xmm2 // ^= IV
1738
+ movups 96(%rdi),%xmm10
1739
+ pxor %xmm11,%xmm3
1740
+ movdqu %xmm2,(%rsi)
1741
+ pxor %xmm12,%xmm4
1742
+ movdqu %xmm3,16(%rsi)
1743
+ pxor %xmm3,%xmm3 // clear register bank
1744
+ pxor %xmm13,%xmm5
1745
+ movdqu %xmm4,32(%rsi)
1746
+ pxor %xmm4,%xmm4
1747
+ pxor %xmm14,%xmm6
1748
+ movdqu %xmm5,48(%rsi)
1749
+ pxor %xmm5,%xmm5
1750
+ pxor %xmm15,%xmm7
1751
+ movdqu %xmm6,64(%rsi)
1752
+ pxor %xmm6,%xmm6
1753
+ pxor %xmm9,%xmm8
1754
+ movdqu %xmm7,80(%rsi)
1755
+ pxor %xmm7,%xmm7
1756
+ leaq 96(%rsi),%rsi
1757
+ movdqa %xmm8,%xmm2
1758
+ pxor %xmm8,%xmm8
1759
+ pxor %xmm9,%xmm9
1760
+ jmp .Lcbc_dec_tail_collected
1761
+
1762
+ .Lcbc_dec_tail:
1763
+ movups (%rdi),%xmm2
1764
+ subq $0x10,%rdx
1765
+ jbe .Lcbc_dec_one // %rdx is 1*16 or less
1766
+
1767
+ movups 16(%rdi),%xmm3
1768
+ movaps %xmm2,%xmm11
1769
+ subq $0x10,%rdx
1770
+ jbe .Lcbc_dec_two // %rdx is 2*16 or less
1771
+
1772
+ movups 32(%rdi),%xmm4
1773
+ movaps %xmm3,%xmm12
1774
+ subq $0x10,%rdx
1775
+ jbe .Lcbc_dec_three // %rdx is 3*16 or less
1776
+
1777
+ movups 48(%rdi),%xmm5
1778
+ movaps %xmm4,%xmm13
1779
+ subq $0x10,%rdx
1780
+ jbe .Lcbc_dec_four // %rdx is 4*16 or less
1781
+
1782
+ movups 64(%rdi),%xmm6 // %rdx is 5*16 or less
1783
+ movaps %xmm5,%xmm14
1784
+ movaps %xmm6,%xmm15
1785
+ xorps %xmm7,%xmm7
1786
+ call _aesni_decrypt6
1787
+ pxor %xmm10,%xmm2
1788
+ movaps %xmm15,%xmm10
1789
+ pxor %xmm11,%xmm3
1790
+ movdqu %xmm2,(%rsi)
1791
+ pxor %xmm12,%xmm4
1792
+ movdqu %xmm3,16(%rsi)
1793
+ pxor %xmm3,%xmm3 // clear register bank
1794
+ pxor %xmm13,%xmm5
1795
+ movdqu %xmm4,32(%rsi)
1796
+ pxor %xmm4,%xmm4
1797
+ pxor %xmm14,%xmm6
1798
+ movdqu %xmm5,48(%rsi)
1799
+ pxor %xmm5,%xmm5
1800
+ leaq 64(%rsi),%rsi
1801
+ movdqa %xmm6,%xmm2
1802
+ pxor %xmm6,%xmm6
1803
+ pxor %xmm7,%xmm7
1804
+ subq $0x10,%rdx
1805
+ jmp .Lcbc_dec_tail_collected
1806
+
1807
+ .align 16
1808
+ .Lcbc_dec_one:
1809
+ movaps %xmm2,%xmm11
1810
+ movups (%rcx),%xmm0
1811
+ movups 16(%rcx),%xmm1
1812
+ leaq 32(%rcx),%rcx
1813
+ xorps %xmm0,%xmm2
1814
+ .Loop_dec1_8:
1815
+ aesdec %xmm1,%xmm2
1816
+ decl %eax
1817
+ movups (%rcx),%xmm1
1818
+ leaq 16(%rcx),%rcx
1819
+ jnz .Loop_dec1_8 // loop body is 16 bytes
1820
+ aesdeclast %xmm1,%xmm2
1821
+ xorps %xmm10,%xmm2
1822
+ movaps %xmm11,%xmm10
1823
+ jmp .Lcbc_dec_tail_collected
1824
+ .align 16
1825
+ .Lcbc_dec_two:
1826
+ movaps %xmm3,%xmm12
1827
+ call _aesni_decrypt2
1828
+ pxor %xmm10,%xmm2
1829
+ movaps %xmm12,%xmm10
1830
+ pxor %xmm11,%xmm3
1831
+ movdqu %xmm2,(%rsi)
1832
+ movdqa %xmm3,%xmm2
1833
+ pxor %xmm3,%xmm3 // clear register bank
1834
+ leaq 16(%rsi),%rsi
1835
+ jmp .Lcbc_dec_tail_collected
1836
+ .align 16
1837
+ .Lcbc_dec_three:
1838
+ movaps %xmm4,%xmm13
1839
+ call _aesni_decrypt3
1840
+ pxor %xmm10,%xmm2
1841
+ movaps %xmm13,%xmm10
1842
+ pxor %xmm11,%xmm3
1843
+ movdqu %xmm2,(%rsi)
1844
+ pxor %xmm12,%xmm4
1845
+ movdqu %xmm3,16(%rsi)
1846
+ pxor %xmm3,%xmm3 // clear register bank
1847
+ movdqa %xmm4,%xmm2
1848
+ pxor %xmm4,%xmm4
1849
+ leaq 32(%rsi),%rsi
1850
+ jmp .Lcbc_dec_tail_collected
1851
+ .align 16
1852
+ .Lcbc_dec_four:
1853
+ movaps %xmm5,%xmm14
1854
+ call _aesni_decrypt4
1855
+ pxor %xmm10,%xmm2
1856
+ movaps %xmm14,%xmm10
1857
+ pxor %xmm11,%xmm3
1858
+ movdqu %xmm2,(%rsi)
1859
+ pxor %xmm12,%xmm4
1860
+ movdqu %xmm3,16(%rsi)
1861
+ pxor %xmm3,%xmm3 // clear register bank
1862
+ pxor %xmm13,%xmm5
1863
+ movdqu %xmm4,32(%rsi)
1864
+ pxor %xmm4,%xmm4
1865
+ movdqa %xmm5,%xmm2
1866
+ pxor %xmm5,%xmm5
1867
+ leaq 48(%rsi),%rsi
1868
+ jmp .Lcbc_dec_tail_collected
1869
+
1870
+ .align 16
1871
+ .Lcbc_dec_clear_tail_collected:
1872
+ pxor %xmm3,%xmm3 // clear register bank
1873
+ pxor %xmm4,%xmm4
1874
+ pxor %xmm5,%xmm5
1875
+ pxor %xmm6,%xmm6 // %xmm6..9
1876
+ pxor %xmm7,%xmm7
1877
+ pxor %xmm8,%xmm8
1878
+ pxor %xmm9,%xmm9
1879
+ .Lcbc_dec_tail_collected:
1880
+ movups %xmm10,(%r8)
1881
+ andq $15,%rdx
1882
+ jnz .Lcbc_dec_tail_partial
1883
+ movups %xmm2,(%rsi)
1884
+ pxor %xmm2,%xmm2
1885
+ jmp .Lcbc_dec_ret
1886
+ .align 16
1887
+ .Lcbc_dec_tail_partial:
1888
+ movaps %xmm2,(%rsp)
1889
+ pxor %xmm2,%xmm2
1890
+ movq $16,%rcx
1891
+ movq %rsi,%rdi
1892
+ subq %rdx,%rcx
1893
+ leaq (%rsp),%rsi
1894
+ .long 0x9066A4F3 // rep movsb
1895
+ movdqa %xmm2,(%rsp)
1896
+
1897
+ .Lcbc_dec_ret:
1898
+ xorps %xmm0,%xmm0 // %xmm0
1899
+ pxor %xmm1,%xmm1
1900
+ movq -8(%r11),%rbp
1901
+ .cfi_restore %rbp
1902
+ leaq (%r11),%rsp
1903
+ .cfi_def_cfa_register %rsp
1904
+ .Lcbc_ret:
1905
+ ret
1906
+ .cfi_endproc
1907
+ .size aes_hw_cbc_encrypt,.-aes_hw_cbc_encrypt
1908
+ .globl aes_hw_encrypt_key_to_decrypt_key
1909
+ .hidden aes_hw_encrypt_key_to_decrypt_key
1910
+ .type aes_hw_encrypt_key_to_decrypt_key,@function
1911
+ .align 16
1912
+ aes_hw_encrypt_key_to_decrypt_key:
1913
+ .cfi_startproc
1914
+ _CET_ENDBR
1915
+
1916
+ movl 240(%rdi),%esi
1917
+ shll $4,%esi
1918
+
1919
+ leaq 16(%rdi,%rsi,1),%rdx // points at the end of key schedule
1920
+
1921
+ movups (%rdi),%xmm0 // just swap
1922
+ movups (%rdx),%xmm1
1923
+ movups %xmm0,(%rdx)
1924
+ movups %xmm1,(%rdi)
1925
+ leaq 16(%rdi),%rdi
1926
+ leaq -16(%rdx),%rdx
1927
+
1928
+ .Ldec_key_inverse:
1929
+ movups (%rdi),%xmm0 // swap and inverse
1930
+ movups (%rdx),%xmm1
1931
+ aesimc %xmm0,%xmm0
1932
+ aesimc %xmm1,%xmm1
1933
+ leaq 16(%rdi),%rdi
1934
+ leaq -16(%rdx),%rdx
1935
+ movups %xmm0,16(%rdx)
1936
+ movups %xmm1,-16(%rdi)
1937
+ cmpq %rdi,%rdx
1938
+ ja .Ldec_key_inverse
1939
+
1940
+ movups (%rdi),%xmm0 // inverse middle
1941
+ aesimc %xmm0,%xmm0
1942
+ pxor %xmm1,%xmm1
1943
+ movups %xmm0,(%rdx)
1944
+ pxor %xmm0,%xmm0
1945
+ ret
1946
+ .cfi_endproc
1947
+ .size aes_hw_encrypt_key_to_decrypt_key,.-aes_hw_encrypt_key_to_decrypt_key
1948
+ .globl aes_hw_set_encrypt_key_base
1949
+ .hidden aes_hw_set_encrypt_key_base
1950
+ .type aes_hw_set_encrypt_key_base,@function
1951
+ .align 16
1952
+ aes_hw_set_encrypt_key_base:
1953
+ .cfi_startproc
1954
+
1955
+ _CET_ENDBR
1956
+ #ifdef BORINGSSL_DISPATCH_TEST
1957
+ movb $1,BORINGSSL_function_hit+3(%rip)
1958
+ #endif
1959
+ subq $8,%rsp
1960
+ .cfi_adjust_cfa_offset 8
1961
+
1962
+
1963
+ movups (%rdi),%xmm0 // pull first 128 bits of *userKey
1964
+ xorps %xmm4,%xmm4 // low dword of xmm4 is assumed 0
1965
+ leaq 16(%rdx),%rax // %rax is used as modifiable copy of %rdx
1966
+ cmpl $256,%esi
1967
+ je .L14rounds
1968
+ cmpl $192,%esi
1969
+ je .L12rounds
1970
+ cmpl $128,%esi
1971
+ jne .Lbad_keybits
1972
+
1973
+ .L10rounds:
1974
+ movl $9,%esi // 10 rounds for 128-bit key
1975
+
1976
+ movups %xmm0,(%rdx) // round 0
1977
+ aeskeygenassist $0x1,%xmm0,%xmm1 // round 1
1978
+ call .Lkey_expansion_128_cold
1979
+ aeskeygenassist $0x2,%xmm0,%xmm1 // round 2
1980
+ call .Lkey_expansion_128
1981
+ aeskeygenassist $0x4,%xmm0,%xmm1 // round 3
1982
+ call .Lkey_expansion_128
1983
+ aeskeygenassist $0x8,%xmm0,%xmm1 // round 4
1984
+ call .Lkey_expansion_128
1985
+ aeskeygenassist $0x10,%xmm0,%xmm1 // round 5
1986
+ call .Lkey_expansion_128
1987
+ aeskeygenassist $0x20,%xmm0,%xmm1 // round 6
1988
+ call .Lkey_expansion_128
1989
+ aeskeygenassist $0x40,%xmm0,%xmm1 // round 7
1990
+ call .Lkey_expansion_128
1991
+ aeskeygenassist $0x80,%xmm0,%xmm1 // round 8
1992
+ call .Lkey_expansion_128
1993
+ aeskeygenassist $0x1b,%xmm0,%xmm1 // round 9
1994
+ call .Lkey_expansion_128
1995
+ aeskeygenassist $0x36,%xmm0,%xmm1 // round 10
1996
+ call .Lkey_expansion_128
1997
+ movups %xmm0,(%rax)
1998
+ movl %esi,80(%rax) // 240(%rdx)
1999
+ xorl %eax,%eax
2000
+ jmp .Lenc_key_ret
2001
+
2002
+ .align 16
2003
+ .L12rounds:
2004
+ movq 16(%rdi),%xmm2 // remaining 1/3 of *userKey
2005
+ movl $11,%esi // 12 rounds for 192
2006
+
2007
+ movups %xmm0,(%rdx) // round 0
2008
+ aeskeygenassist $0x1,%xmm2,%xmm1 // round 1,2
2009
+ call .Lkey_expansion_192a_cold
2010
+ aeskeygenassist $0x2,%xmm2,%xmm1 // round 2,3
2011
+ call .Lkey_expansion_192b
2012
+ aeskeygenassist $0x4,%xmm2,%xmm1 // round 4,5
2013
+ call .Lkey_expansion_192a
2014
+ aeskeygenassist $0x8,%xmm2,%xmm1 // round 5,6
2015
+ call .Lkey_expansion_192b
2016
+ aeskeygenassist $0x10,%xmm2,%xmm1 // round 7,8
2017
+ call .Lkey_expansion_192a
2018
+ aeskeygenassist $0x20,%xmm2,%xmm1 // round 8,9
2019
+ call .Lkey_expansion_192b
2020
+ aeskeygenassist $0x40,%xmm2,%xmm1 // round 10,11
2021
+ call .Lkey_expansion_192a
2022
+ aeskeygenassist $0x80,%xmm2,%xmm1 // round 11,12
2023
+ call .Lkey_expansion_192b
2024
+ movups %xmm0,(%rax)
2025
+ movl %esi,48(%rax) // 240(%rdx)
2026
+ xorq %rax,%rax
2027
+ jmp .Lenc_key_ret
2028
+
2029
+ .align 16
2030
+ .L14rounds:
2031
+ movups 16(%rdi),%xmm2 // remaining half of *userKey
2032
+ movl $13,%esi // 14 rounds for 256
2033
+ leaq 16(%rax),%rax
2034
+
2035
+ movups %xmm0,(%rdx) // round 0
2036
+ movups %xmm2,16(%rdx) // round 1
2037
+ aeskeygenassist $0x1,%xmm2,%xmm1 // round 2
2038
+ call .Lkey_expansion_256a_cold
2039
+ aeskeygenassist $0x1,%xmm0,%xmm1 // round 3
2040
+ call .Lkey_expansion_256b
2041
+ aeskeygenassist $0x2,%xmm2,%xmm1 // round 4
2042
+ call .Lkey_expansion_256a
2043
+ aeskeygenassist $0x2,%xmm0,%xmm1 // round 5
2044
+ call .Lkey_expansion_256b
2045
+ aeskeygenassist $0x4,%xmm2,%xmm1 // round 6
2046
+ call .Lkey_expansion_256a
2047
+ aeskeygenassist $0x4,%xmm0,%xmm1 // round 7
2048
+ call .Lkey_expansion_256b
2049
+ aeskeygenassist $0x8,%xmm2,%xmm1 // round 8
2050
+ call .Lkey_expansion_256a
2051
+ aeskeygenassist $0x8,%xmm0,%xmm1 // round 9
2052
+ call .Lkey_expansion_256b
2053
+ aeskeygenassist $0x10,%xmm2,%xmm1 // round 10
2054
+ call .Lkey_expansion_256a
2055
+ aeskeygenassist $0x10,%xmm0,%xmm1 // round 11
2056
+ call .Lkey_expansion_256b
2057
+ aeskeygenassist $0x20,%xmm2,%xmm1 // round 12
2058
+ call .Lkey_expansion_256a
2059
+ aeskeygenassist $0x20,%xmm0,%xmm1 // round 13
2060
+ call .Lkey_expansion_256b
2061
+ aeskeygenassist $0x40,%xmm2,%xmm1 // round 14
2062
+ call .Lkey_expansion_256a
2063
+ movups %xmm0,(%rax)
2064
+ movl %esi,16(%rax) // 240(%rdx)
2065
+ xorq %rax,%rax
2066
+ jmp .Lenc_key_ret
2067
+
2068
+ .align 16
2069
+ .Lbad_keybits:
2070
+ movq $-2,%rax
2071
+ .Lenc_key_ret:
2072
+ pxor %xmm0,%xmm0
2073
+ pxor %xmm1,%xmm1
2074
+ pxor %xmm2,%xmm2
2075
+ pxor %xmm3,%xmm3
2076
+ pxor %xmm4,%xmm4
2077
+ pxor %xmm5,%xmm5
2078
+ addq $8,%rsp
2079
+ .cfi_adjust_cfa_offset -8
2080
+ ret
2081
+ .cfi_endproc
2082
+
2083
+ .size aes_hw_set_encrypt_key_base,.-aes_hw_set_encrypt_key_base
2084
+
2085
+ .align 16
2086
+ .Lkey_expansion_128:
2087
+ .cfi_startproc
2088
+ movups %xmm0,(%rax)
2089
+ leaq 16(%rax),%rax
2090
+ .Lkey_expansion_128_cold:
2091
+ shufps $16,%xmm0,%xmm4
2092
+ xorps %xmm4,%xmm0
2093
+ shufps $140,%xmm0,%xmm4
2094
+ xorps %xmm4,%xmm0
2095
+ shufps $255,%xmm1,%xmm1 // critical path
2096
+ xorps %xmm1,%xmm0
2097
+ ret
2098
+ .cfi_endproc
2099
+
2100
+ .align 16
2101
+ .Lkey_expansion_192a:
2102
+ .cfi_startproc
2103
+ movups %xmm0,(%rax)
2104
+ leaq 16(%rax),%rax
2105
+ .Lkey_expansion_192a_cold:
2106
+ movaps %xmm2,%xmm5
2107
+ .Lkey_expansion_192b_warm:
2108
+ shufps $16,%xmm0,%xmm4
2109
+ movdqa %xmm2,%xmm3
2110
+ xorps %xmm4,%xmm0
2111
+ shufps $140,%xmm0,%xmm4
2112
+ pslldq $4,%xmm3
2113
+ xorps %xmm4,%xmm0
2114
+ pshufd $85,%xmm1,%xmm1 // critical path
2115
+ pxor %xmm3,%xmm2
2116
+ pxor %xmm1,%xmm0
2117
+ pshufd $255,%xmm0,%xmm3
2118
+ pxor %xmm3,%xmm2
2119
+ ret
2120
+ .cfi_endproc
2121
+
2122
+ .align 16
2123
+ .Lkey_expansion_192b:
2124
+ .cfi_startproc
2125
+ movaps %xmm0,%xmm3
2126
+ shufps $68,%xmm0,%xmm5
2127
+ movups %xmm5,(%rax)
2128
+ shufps $78,%xmm2,%xmm3
2129
+ movups %xmm3,16(%rax)
2130
+ leaq 32(%rax),%rax
2131
+ jmp .Lkey_expansion_192b_warm
2132
+ .cfi_endproc
2133
+
2134
+ .align 16
2135
+ .Lkey_expansion_256a:
2136
+ .cfi_startproc
2137
+ movups %xmm2,(%rax)
2138
+ leaq 16(%rax),%rax
2139
+ .Lkey_expansion_256a_cold:
2140
+ shufps $16,%xmm0,%xmm4
2141
+ xorps %xmm4,%xmm0
2142
+ shufps $140,%xmm0,%xmm4
2143
+ xorps %xmm4,%xmm0
2144
+ shufps $255,%xmm1,%xmm1 // critical path
2145
+ xorps %xmm1,%xmm0
2146
+ ret
2147
+ .cfi_endproc
2148
+
2149
+ .align 16
2150
+ .Lkey_expansion_256b:
2151
+ .cfi_startproc
2152
+ movups %xmm0,(%rax)
2153
+ leaq 16(%rax),%rax
2154
+
2155
+ shufps $16,%xmm2,%xmm4
2156
+ xorps %xmm4,%xmm2
2157
+ shufps $140,%xmm2,%xmm4
2158
+ xorps %xmm4,%xmm2
2159
+ shufps $170,%xmm1,%xmm1 // critical path
2160
+ xorps %xmm1,%xmm2
2161
+ ret
2162
+ .cfi_endproc
2163
+
2164
+ .globl aes_hw_set_encrypt_key_alt
2165
+ .hidden aes_hw_set_encrypt_key_alt
2166
+ .type aes_hw_set_encrypt_key_alt,@function
2167
+ .align 16
2168
+ aes_hw_set_encrypt_key_alt:
2169
+ .cfi_startproc
2170
+
2171
+ _CET_ENDBR
2172
+ #ifdef BORINGSSL_DISPATCH_TEST
2173
+ movb $1,BORINGSSL_function_hit+3(%rip)
2174
+ #endif
2175
+ subq $8,%rsp
2176
+ .cfi_adjust_cfa_offset 8
2177
+
2178
+
2179
+ movups (%rdi),%xmm0 // pull first 128 bits of *userKey
2180
+ xorps %xmm4,%xmm4 // low dword of xmm4 is assumed 0
2181
+ leaq 16(%rdx),%rax // %rax is used as modifiable copy of %rdx
2182
+ cmpl $256,%esi
2183
+ je .L14rounds_alt
2184
+ cmpl $192,%esi
2185
+ je .L12rounds_alt
2186
+ cmpl $128,%esi
2187
+ jne .Lbad_keybits_alt
2188
+
2189
+ movl $9,%esi // 10 rounds for 128-bit key
2190
+ movdqa .Lkey_rotate(%rip),%xmm5
2191
+ movl $8,%r10d
2192
+ movdqa .Lkey_rcon1(%rip),%xmm4
2193
+ movdqa %xmm0,%xmm2
2194
+ movdqu %xmm0,(%rdx)
2195
+ jmp .Loop_key128
2196
+
2197
+ .align 16
2198
+ .Loop_key128:
2199
+ pshufb %xmm5,%xmm0
2200
+ aesenclast %xmm4,%xmm0
2201
+ pslld $1,%xmm4
2202
+ leaq 16(%rax),%rax
2203
+
2204
+ movdqa %xmm2,%xmm3
2205
+ pslldq $4,%xmm2
2206
+ pxor %xmm2,%xmm3
2207
+ pslldq $4,%xmm2
2208
+ pxor %xmm2,%xmm3
2209
+ pslldq $4,%xmm2
2210
+ pxor %xmm3,%xmm2
2211
+
2212
+ pxor %xmm2,%xmm0
2213
+ movdqu %xmm0,-16(%rax)
2214
+ movdqa %xmm0,%xmm2
2215
+
2216
+ decl %r10d
2217
+ jnz .Loop_key128
2218
+
2219
+ movdqa .Lkey_rcon1b(%rip),%xmm4
2220
+
2221
+ pshufb %xmm5,%xmm0
2222
+ aesenclast %xmm4,%xmm0
2223
+ pslld $1,%xmm4
2224
+
2225
+ movdqa %xmm2,%xmm3
2226
+ pslldq $4,%xmm2
2227
+ pxor %xmm2,%xmm3
2228
+ pslldq $4,%xmm2
2229
+ pxor %xmm2,%xmm3
2230
+ pslldq $4,%xmm2
2231
+ pxor %xmm3,%xmm2
2232
+
2233
+ pxor %xmm2,%xmm0
2234
+ movdqu %xmm0,(%rax)
2235
+
2236
+ movdqa %xmm0,%xmm2
2237
+ pshufb %xmm5,%xmm0
2238
+ aesenclast %xmm4,%xmm0
2239
+
2240
+ movdqa %xmm2,%xmm3
2241
+ pslldq $4,%xmm2
2242
+ pxor %xmm2,%xmm3
2243
+ pslldq $4,%xmm2
2244
+ pxor %xmm2,%xmm3
2245
+ pslldq $4,%xmm2
2246
+ pxor %xmm3,%xmm2
2247
+
2248
+ pxor %xmm2,%xmm0
2249
+ movdqu %xmm0,16(%rax)
2250
+
2251
+ movl %esi,96(%rax) // 240(%rdx)
2252
+ xorl %eax,%eax
2253
+ jmp .Lenc_key_ret_alt
2254
+
2255
+ .align 16
2256
+ .L12rounds_alt:
2257
+ movq 16(%rdi),%xmm2 // remaining 1/3 of *userKey
2258
+ movl $11,%esi // 12 rounds for 192
2259
+ movdqa .Lkey_rotate192(%rip),%xmm5
2260
+ movdqa .Lkey_rcon1(%rip),%xmm4
2261
+ movl $8,%r10d
2262
+ movdqu %xmm0,(%rdx)
2263
+ jmp .Loop_key192
2264
+
2265
+ .align 16
2266
+ .Loop_key192:
2267
+ movq %xmm2,0(%rax)
2268
+ movdqa %xmm2,%xmm1
2269
+ pshufb %xmm5,%xmm2
2270
+ aesenclast %xmm4,%xmm2
2271
+ pslld $1,%xmm4
2272
+ leaq 24(%rax),%rax
2273
+
2274
+ movdqa %xmm0,%xmm3
2275
+ pslldq $4,%xmm0
2276
+ pxor %xmm0,%xmm3
2277
+ pslldq $4,%xmm0
2278
+ pxor %xmm0,%xmm3
2279
+ pslldq $4,%xmm0
2280
+ pxor %xmm3,%xmm0
2281
+
2282
+ pshufd $0xff,%xmm0,%xmm3
2283
+ pxor %xmm1,%xmm3
2284
+ pslldq $4,%xmm1
2285
+ pxor %xmm1,%xmm3
2286
+
2287
+ pxor %xmm2,%xmm0
2288
+ pxor %xmm3,%xmm2
2289
+ movdqu %xmm0,-16(%rax)
2290
+
2291
+ decl %r10d
2292
+ jnz .Loop_key192
2293
+
2294
+ movl %esi,32(%rax) // 240(%rdx)
2295
+ xorl %eax,%eax
2296
+ jmp .Lenc_key_ret_alt
2297
+
2298
+ .align 16
2299
+ .L14rounds_alt:
2300
+ movups 16(%rdi),%xmm2 // remaining half of *userKey
2301
+ movl $13,%esi // 14 rounds for 256
2302
+ leaq 16(%rax),%rax
2303
+ movdqa .Lkey_rotate(%rip),%xmm5
2304
+ movdqa .Lkey_rcon1(%rip),%xmm4
2305
+ movl $7,%r10d
2306
+ movdqu %xmm0,0(%rdx)
2307
+ movdqa %xmm2,%xmm1
2308
+ movdqu %xmm2,16(%rdx)
2309
+ jmp .Loop_key256
2310
+
2311
+ .align 16
2312
+ .Loop_key256:
2313
+ pshufb %xmm5,%xmm2
2314
+ aesenclast %xmm4,%xmm2
2315
+
2316
+ movdqa %xmm0,%xmm3
2317
+ pslldq $4,%xmm0
2318
+ pxor %xmm0,%xmm3
2319
+ pslldq $4,%xmm0
2320
+ pxor %xmm0,%xmm3
2321
+ pslldq $4,%xmm0
2322
+ pxor %xmm3,%xmm0
2323
+ pslld $1,%xmm4
2324
+
2325
+ pxor %xmm2,%xmm0
2326
+ movdqu %xmm0,(%rax)
2327
+
2328
+ decl %r10d
2329
+ jz .Ldone_key256
2330
+
2331
+ pshufd $0xff,%xmm0,%xmm2
2332
+ pxor %xmm3,%xmm3
2333
+ aesenclast %xmm3,%xmm2
2334
+
2335
+ movdqa %xmm1,%xmm3
2336
+ pslldq $4,%xmm1
2337
+ pxor %xmm1,%xmm3
2338
+ pslldq $4,%xmm1
2339
+ pxor %xmm1,%xmm3
2340
+ pslldq $4,%xmm1
2341
+ pxor %xmm3,%xmm1
2342
+
2343
+ pxor %xmm1,%xmm2
2344
+ movdqu %xmm2,16(%rax)
2345
+ leaq 32(%rax),%rax
2346
+ movdqa %xmm2,%xmm1
2347
+
2348
+ jmp .Loop_key256
2349
+
2350
+ .Ldone_key256:
2351
+ movl %esi,16(%rax) // 240(%rdx)
2352
+ xorl %eax,%eax
2353
+ jmp .Lenc_key_ret_alt
2354
+
2355
+ .align 16
2356
+ .Lbad_keybits_alt:
2357
+ movq $-2,%rax
2358
+ .Lenc_key_ret_alt:
2359
+ pxor %xmm0,%xmm0
2360
+ pxor %xmm1,%xmm1
2361
+ pxor %xmm2,%xmm2
2362
+ pxor %xmm3,%xmm3
2363
+ pxor %xmm4,%xmm4
2364
+ pxor %xmm5,%xmm5
2365
+ addq $8,%rsp
2366
+ .cfi_adjust_cfa_offset -8
2367
+ ret
2368
+ .cfi_endproc
2369
+
2370
+ .size aes_hw_set_encrypt_key_alt,.-aes_hw_set_encrypt_key_alt
2371
+ .section .rodata
2372
+
2373
+ .align 64
2374
+ aesni_constants:
2375
+ .Lbswap_mask:
2376
+ .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
2377
+ .Lincrement32:
2378
+ .long 6,6,6,0
2379
+ .Lincrement64:
2380
+ .long 1,0,0,0
2381
+ .Lxts_magic:
2382
+ .long 0x87,0,1,0
2383
+ .Lincrement1:
2384
+ .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
2385
+ .Lkey_rotate:
2386
+ .long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d
2387
+ .Lkey_rotate192:
2388
+ .long 0x04070605,0x04070605,0x04070605,0x04070605
2389
+ .Lkey_rcon1:
2390
+ .long 1,1,1,1
2391
+ .Lkey_rcon1b:
2392
+ .long 0x1b,0x1b,0x1b,0x1b
2393
+
2394
+ .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,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
2395
+ .align 64
2396
+ .text
2397
+ #endif