visaljs 0.0.2 → 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 (1007) hide show
  1. package/cli.js +393 -62
  2. package/node/include/js_node.h +28 -5
  3. package/node/include/js_uv.h +36 -0
  4. package/node/prelude/crypto.js +7 -10
  5. package/node/prelude/dns.js +99 -0
  6. package/node/prelude/dns_promises.js +10 -0
  7. package/node/prelude/http.js +1039 -195
  8. package/node/prelude/internal/crypto/asym.js +39 -12
  9. package/node/prelude/internal/crypto/dh_groups.js +12 -0
  10. package/node/prelude/internal/crypto/diffiehellman.js +354 -0
  11. package/node/prelude/internal/crypto/hash.js +1 -1
  12. package/node/prelude/internal/crypto/key_type.js +3 -0
  13. package/node/prelude/internal/crypto/keys.js +39 -9
  14. package/node/prelude/internal/http_agent.js +249 -0
  15. package/node/prelude/internal/net.js +33 -0
  16. package/node/prelude/internal/socketaddress.js +249 -0
  17. package/node/prelude/internal/tls/common.js +306 -0
  18. package/node/prelude/internal/tls/wrap.js +1217 -0
  19. package/node/prelude/internal/tls/x509.js +394 -0
  20. package/node/prelude/net.js +1083 -50
  21. package/node/prelude/stream.js +6 -0
  22. package/node/prelude/tls.js +141 -0
  23. package/node/prelude/util.js +5 -2
  24. package/node/prelude/util_types.js +85 -0
  25. package/node/src/host_http.c +268 -270
  26. package/node/src/host_loop.c +84 -0
  27. package/node/src/host_net.c +495 -0
  28. package/node/src/host_sys.c +16 -0
  29. package/package.json +1 -1
  30. package/runtime/include/js_builtins.h +16 -0
  31. package/runtime/include/js_console.h +2 -0
  32. package/runtime/include/js_core.def +23 -0
  33. package/runtime/include/js_crypto.h +23 -0
  34. package/runtime/include/js_generator.h +2 -3
  35. package/runtime/include/js_promise.h +0 -2
  36. package/runtime/src/async_iter.c +4 -1
  37. package/runtime/src/boringssl_support.cc +34 -0
  38. package/runtime/src/builtin_table.c +8 -0
  39. package/runtime/src/components.c +10 -0
  40. package/runtime/src/console.c +6 -18
  41. package/runtime/src/core_all.c +1 -0
  42. package/runtime/src/crypto_asym.c +450 -241
  43. package/runtime/src/crypto_bn.c +91 -0
  44. package/runtime/src/crypto_cipher.c +153 -75
  45. package/runtime/src/crypto_hash.c +68 -53
  46. package/runtime/src/crypto_internal.h +55 -26
  47. package/runtime/src/crypto_pkey.c +198 -61
  48. package/runtime/src/crypto_subtle.c +42 -16
  49. package/runtime/src/crypto_tls.c +678 -0
  50. package/runtime/src/generator.c +8 -1
  51. package/runtime/src/global.c +2 -4
  52. package/runtime/src/internal.h +0 -1
  53. package/runtime/src/jobs.c +2 -1
  54. package/runtime/src/promise.c +4 -1
  55. package/runtime/src/tls_roots.gen.h +3215 -0
  56. package/runtime/src/util_types.c +52 -0
  57. package/runtime/src/weak.c +2 -1
  58. package/runtime/third_party/boringssl/LICENSE +238 -0
  59. package/runtime/third_party/boringssl/README.md +46 -0
  60. package/runtime/third_party/boringssl/VERSION +1 -0
  61. package/runtime/third_party/boringssl/crypto/aes/aes.cc +44 -0
  62. package/runtime/third_party/boringssl/crypto/armv8_feature_parsing.h +67 -0
  63. package/runtime/third_party/boringssl/crypto/asn1/a_bitstr.cc +297 -0
  64. package/runtime/third_party/boringssl/crypto/asn1/a_bool.cc +50 -0
  65. package/runtime/third_party/boringssl/crypto/asn1/a_d2i_fp.cc +47 -0
  66. package/runtime/third_party/boringssl/crypto/asn1/a_dup.cc +42 -0
  67. package/runtime/third_party/boringssl/crypto/asn1/a_gentm.cc +130 -0
  68. package/runtime/third_party/boringssl/crypto/asn1/a_i2d_fp.cc +44 -0
  69. package/runtime/third_party/boringssl/crypto/asn1/a_int.cc +467 -0
  70. package/runtime/third_party/boringssl/crypto/asn1/a_mbstr.cc +242 -0
  71. package/runtime/third_party/boringssl/crypto/asn1/a_object.cc +191 -0
  72. package/runtime/third_party/boringssl/crypto/asn1/a_octet.cc +32 -0
  73. package/runtime/third_party/boringssl/crypto/asn1/a_strex.cc +411 -0
  74. package/runtime/third_party/boringssl/crypto/asn1/a_strnid.cc +208 -0
  75. package/runtime/third_party/boringssl/crypto/asn1/a_time.cc +248 -0
  76. package/runtime/third_party/boringssl/crypto/asn1/a_type.cc +467 -0
  77. package/runtime/third_party/boringssl/crypto/asn1/a_utctm.cc +128 -0
  78. package/runtime/third_party/boringssl/crypto/asn1/asn1_lib.cc +453 -0
  79. package/runtime/third_party/boringssl/crypto/asn1/asn1_par.cc +61 -0
  80. package/runtime/third_party/boringssl/crypto/asn1/asn_pack.cc +56 -0
  81. package/runtime/third_party/boringssl/crypto/asn1/f_int.cc +63 -0
  82. package/runtime/third_party/boringssl/crypto/asn1/f_string.cc +52 -0
  83. package/runtime/third_party/boringssl/crypto/asn1/internal.h +430 -0
  84. package/runtime/third_party/boringssl/crypto/asn1/posix_time.cc +244 -0
  85. package/runtime/third_party/boringssl/crypto/asn1/tasn_dec.cc +611 -0
  86. package/runtime/third_party/boringssl/crypto/asn1/tasn_enc.cc +348 -0
  87. package/runtime/third_party/boringssl/crypto/asn1/tasn_fre.cc +163 -0
  88. package/runtime/third_party/boringssl/crypto/asn1/tasn_new.cc +274 -0
  89. package/runtime/third_party/boringssl/crypto/asn1/tasn_typ.cc +92 -0
  90. package/runtime/third_party/boringssl/crypto/asn1/tasn_utl.cc +218 -0
  91. package/runtime/third_party/boringssl/crypto/base64/base64.cc +433 -0
  92. package/runtime/third_party/boringssl/crypto/bcm_support.h +62 -0
  93. package/runtime/third_party/boringssl/crypto/bio/bio.cc +715 -0
  94. package/runtime/third_party/boringssl/crypto/bio/bio_mem.cc +260 -0
  95. package/runtime/third_party/boringssl/crypto/bio/connect.cc +463 -0
  96. package/runtime/third_party/boringssl/crypto/bio/errno.cc +52 -0
  97. package/runtime/third_party/boringssl/crypto/bio/fd.cc +193 -0
  98. package/runtime/third_party/boringssl/crypto/bio/file.cc +283 -0
  99. package/runtime/third_party/boringssl/crypto/bio/hexdump.cc +154 -0
  100. package/runtime/third_party/boringssl/crypto/bio/internal.h +128 -0
  101. package/runtime/third_party/boringssl/crypto/bio/pair.cc +426 -0
  102. package/runtime/third_party/boringssl/crypto/bio/printf.cc +59 -0
  103. package/runtime/third_party/boringssl/crypto/bio/socket.cc +210 -0
  104. package/runtime/third_party/boringssl/crypto/bio/socket_helper.cc +179 -0
  105. package/runtime/third_party/boringssl/crypto/blake2/blake2.cc +173 -0
  106. package/runtime/third_party/boringssl/crypto/bn/bn_asn1.cc +57 -0
  107. package/runtime/third_party/boringssl/crypto/bn/convert.cc +409 -0
  108. package/runtime/third_party/boringssl/crypto/bn/div.cc +102 -0
  109. package/runtime/third_party/boringssl/crypto/bn/exponentiation.cc +168 -0
  110. package/runtime/third_party/boringssl/crypto/bn/sqrt.cc +93 -0
  111. package/runtime/third_party/boringssl/crypto/buf/buf.cc +119 -0
  112. package/runtime/third_party/boringssl/crypto/bytestring/asn1_compat.cc +54 -0
  113. package/runtime/third_party/boringssl/crypto/bytestring/ber.cc +268 -0
  114. package/runtime/third_party/boringssl/crypto/bytestring/cbb.cc +787 -0
  115. package/runtime/third_party/boringssl/crypto/bytestring/cbs.cc +977 -0
  116. package/runtime/third_party/boringssl/crypto/bytestring/internal.h +134 -0
  117. package/runtime/third_party/boringssl/crypto/bytestring/unicode.cc +156 -0
  118. package/runtime/third_party/boringssl/crypto/chacha/chacha.cc +226 -0
  119. package/runtime/third_party/boringssl/crypto/chacha/internal.h +103 -0
  120. package/runtime/third_party/boringssl/crypto/cipher/derive_key.cc +106 -0
  121. package/runtime/third_party/boringssl/crypto/cipher/e_aesctrhmac.cc +294 -0
  122. package/runtime/third_party/boringssl/crypto/cipher/e_aeseax.cc +351 -0
  123. package/runtime/third_party/boringssl/crypto/cipher/e_aesgcmsiv.cc +918 -0
  124. package/runtime/third_party/boringssl/crypto/cipher/e_chacha20poly1305.cc +404 -0
  125. package/runtime/third_party/boringssl/crypto/cipher/e_des.cc +214 -0
  126. package/runtime/third_party/boringssl/crypto/cipher/e_null.cc +55 -0
  127. package/runtime/third_party/boringssl/crypto/cipher/e_rc2.cc +432 -0
  128. package/runtime/third_party/boringssl/crypto/cipher/e_rc4.cc +56 -0
  129. package/runtime/third_party/boringssl/crypto/cipher/e_tls.cc +615 -0
  130. package/runtime/third_party/boringssl/crypto/cipher/get_cipher.cc +85 -0
  131. package/runtime/third_party/boringssl/crypto/cipher/internal.h +399 -0
  132. package/runtime/third_party/boringssl/crypto/cipher/tls_cbc.cc +476 -0
  133. package/runtime/third_party/boringssl/crypto/cms/cms.cc +178 -0
  134. package/runtime/third_party/boringssl/crypto/conf/conf.cc +637 -0
  135. package/runtime/third_party/boringssl/crypto/conf/internal.h +54 -0
  136. package/runtime/third_party/boringssl/crypto/cpu_aarch64_apple.cc +76 -0
  137. package/runtime/third_party/boringssl/crypto/cpu_aarch64_fuchsia.cc +58 -0
  138. package/runtime/third_party/boringssl/crypto/cpu_aarch64_linux.cc +66 -0
  139. package/runtime/third_party/boringssl/crypto/cpu_aarch64_openbsd.cc +45 -0
  140. package/runtime/third_party/boringssl/crypto/cpu_aarch64_sysreg.cc +66 -0
  141. package/runtime/third_party/boringssl/crypto/cpu_aarch64_win.cc +52 -0
  142. package/runtime/third_party/boringssl/crypto/cpu_arm_freebsd.cc +55 -0
  143. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.cc +173 -0
  144. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.h +141 -0
  145. package/runtime/third_party/boringssl/crypto/cpu_intel.cc +287 -0
  146. package/runtime/third_party/boringssl/crypto/crypto.cc +152 -0
  147. package/runtime/third_party/boringssl/crypto/curve25519/asm/x25519-asm-arm.S +2124 -0
  148. package/runtime/third_party/boringssl/crypto/curve25519/cpace.cc +227 -0
  149. package/runtime/third_party/boringssl/crypto/curve25519/curve25519.cc +2436 -0
  150. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_64_adx.cc +18 -0
  151. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_tables.h +3264 -0
  152. package/runtime/third_party/boringssl/crypto/curve25519/internal.h +202 -0
  153. package/runtime/third_party/boringssl/crypto/curve25519/spake25519.cc +532 -0
  154. package/runtime/third_party/boringssl/crypto/des/des.cc +837 -0
  155. package/runtime/third_party/boringssl/crypto/des/internal.h +144 -0
  156. package/runtime/third_party/boringssl/crypto/dh/dh_asn1.cc +109 -0
  157. package/runtime/third_party/boringssl/crypto/dh/params.cc +411 -0
  158. package/runtime/third_party/boringssl/crypto/digest/digest_extra.cc +361 -0
  159. package/runtime/third_party/boringssl/crypto/dsa/dsa.cc +922 -0
  160. package/runtime/third_party/boringssl/crypto/dsa/dsa_asn1.cc +306 -0
  161. package/runtime/third_party/boringssl/crypto/dsa/internal.h +56 -0
  162. package/runtime/third_party/boringssl/crypto/ec/ec_asn1.cc +542 -0
  163. package/runtime/third_party/boringssl/crypto/ec/ec_derive.cc +94 -0
  164. package/runtime/third_party/boringssl/crypto/ec/hash_to_curve.cc +773 -0
  165. package/runtime/third_party/boringssl/crypto/ec/internal.h +114 -0
  166. package/runtime/third_party/boringssl/crypto/ecdh/ecdh.cc +75 -0
  167. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.cc +337 -0
  168. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_p1363.cc +54 -0
  169. package/runtime/third_party/boringssl/crypto/engine/engine.cc +95 -0
  170. package/runtime/third_party/boringssl/crypto/err/err.cc +820 -0
  171. package/runtime/third_party/boringssl/crypto/err/internal.h +45 -0
  172. package/runtime/third_party/boringssl/crypto/evp/evp.cc +454 -0
  173. package/runtime/third_party/boringssl/crypto/evp/evp_asn1.cc +439 -0
  174. package/runtime/third_party/boringssl/crypto/evp/evp_ctx.cc +541 -0
  175. package/runtime/third_party/boringssl/crypto/evp/evp_kem.cc +101 -0
  176. package/runtime/third_party/boringssl/crypto/evp/internal.h +427 -0
  177. package/runtime/third_party/boringssl/crypto/evp/p_dh.cc +326 -0
  178. package/runtime/third_party/boringssl/crypto/evp/p_dsa.cc +333 -0
  179. package/runtime/third_party/boringssl/crypto/evp/p_ec.cc +736 -0
  180. package/runtime/third_party/boringssl/crypto/evp/p_ed25519.cc +359 -0
  181. package/runtime/third_party/boringssl/crypto/evp/p_hkdf.cc +204 -0
  182. package/runtime/third_party/boringssl/crypto/evp/p_mldsa.cc +549 -0
  183. package/runtime/third_party/boringssl/crypto/evp/p_mlkem.cc +510 -0
  184. package/runtime/third_party/boringssl/crypto/evp/p_rsa.cc +1185 -0
  185. package/runtime/third_party/boringssl/crypto/evp/p_x25519.cc +371 -0
  186. package/runtime/third_party/boringssl/crypto/evp/p_xwing.cc +300 -0
  187. package/runtime/third_party/boringssl/crypto/evp/pbkdf.cc +105 -0
  188. package/runtime/third_party/boringssl/crypto/evp/print.cc +287 -0
  189. package/runtime/third_party/boringssl/crypto/evp/scrypt.cc +218 -0
  190. package/runtime/third_party/boringssl/crypto/evp/sign.cc +95 -0
  191. package/runtime/third_party/boringssl/crypto/ex_data.cc +140 -0
  192. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes.cc.inc +208 -0
  193. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes_nohw.cc.inc +1279 -0
  194. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cbc.cc.inc +132 -0
  195. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cfb.cc.inc +168 -0
  196. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ctr.cc.inc +102 -0
  197. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm.cc.inc +614 -0
  198. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm_nohw.cc.inc +304 -0
  199. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/internal.h +590 -0
  200. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/key_wrap.cc.inc +211 -0
  201. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.cc.inc +97 -0
  202. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ofb.cc.inc +55 -0
  203. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm.cc +288 -0
  204. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm_interface.h +953 -0
  205. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/add.cc.inc +276 -0
  206. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +573 -0
  207. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bn.cc.inc +377 -0
  208. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bytes.cc.inc +230 -0
  209. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/cmp.cc.inc +161 -0
  210. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/ctx.cc.inc +127 -0
  211. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div.cc.inc +738 -0
  212. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div_extra.cc.inc +90 -0
  213. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.cc.inc +743 -0
  214. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd.cc.inc +281 -0
  215. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd_extra.cc.inc +327 -0
  216. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/generic.cc.inc +579 -0
  217. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/internal.h +810 -0
  218. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/jacobi.cc.inc +101 -0
  219. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery.cc.inc +408 -0
  220. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery_inv.cc.inc +179 -0
  221. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/mul.cc.inc +347 -0
  222. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/prime.cc.inc +931 -0
  223. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/random.cc.inc +261 -0
  224. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.cc.inc +144 -0
  225. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.h +109 -0
  226. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/shift.cc.inc +317 -0
  227. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/sqrt.cc.inc +370 -0
  228. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/aead.cc.inc +619 -0
  229. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/cipher.cc.inc +837 -0
  230. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.cc.inc +1240 -0
  231. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aesccm.cc.inc +440 -0
  232. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/internal.h +461 -0
  233. package/runtime/third_party/boringssl/crypto/fipsmodule/cmac/cmac.cc.inc +293 -0
  234. package/runtime/third_party/boringssl/crypto/fipsmodule/delocate.h +95 -0
  235. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/check.cc.inc +198 -0
  236. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/dh.cc.inc +401 -0
  237. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/internal.h +63 -0
  238. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digest.cc.inc +221 -0
  239. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digests.cc.inc +184 -0
  240. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/internal.h +72 -0
  241. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/md32_common.h +166 -0
  242. package/runtime/third_party/boringssl/crypto/fipsmodule/digestsign/digestsign.cc.inc +230 -0
  243. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/builtin_curves.h +277 -0
  244. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec.cc.inc +1024 -0
  245. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_key.cc.inc +536 -0
  246. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.cc.inc +379 -0
  247. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/felem.cc.inc +250 -0
  248. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/internal.h +752 -0
  249. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/oct.cc.inc +174 -0
  250. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz-table.h +9502 -0
  251. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.cc.inc +740 -0
  252. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.h +207 -0
  253. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256.cc.inc +578 -0
  254. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256_table.h +297 -0
  255. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/scalar.cc.inc +184 -0
  256. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple.cc.inc +246 -0
  257. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.cc.inc +274 -0
  258. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/util.cc.inc +258 -0
  259. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/wnaf.cc.inc +224 -0
  260. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdh/ecdh.cc.inc +91 -0
  261. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +288 -0
  262. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/internal.h +57 -0
  263. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/internal.h +38 -0
  264. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/jitter.cc.inc +487 -0
  265. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/sha512.cc.inc +329 -0
  266. package/runtime/third_party/boringssl/crypto/fipsmodule/fips_shared_support.cc +28 -0
  267. package/runtime/third_party/boringssl/crypto/fipsmodule/hkdf/hkdf.cc.inc +114 -0
  268. package/runtime/third_party/boringssl/crypto/fipsmodule/hmac/hmac.cc.inc +218 -0
  269. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/internal.h +165 -0
  270. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/keccak.cc.inc +647 -0
  271. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/fips_known_values.inc +1345 -0
  272. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/mldsa.cc.inc +3323 -0
  273. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/fips_known_values.inc +411 -0
  274. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/mlkem.cc.inc +1856 -0
  275. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/android_entropy_client.cc.inc +82 -0
  276. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/ctrdrbg.cc.inc +401 -0
  277. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/internal.h +99 -0
  278. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/rand.cc.inc +486 -0
  279. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/internal.h +167 -0
  280. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/padding.cc.inc +371 -0
  281. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa.cc.inc +996 -0
  282. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.cc.inc +1000 -0
  283. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/fips.cc.inc +129 -0
  284. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/self_check.cc.inc +1093 -0
  285. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/internal.h +112 -0
  286. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +330 -0
  287. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/internal.h +205 -0
  288. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha1.cc.inc +404 -0
  289. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha256.cc.inc +315 -0
  290. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha512.cc.inc +473 -0
  291. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/address.h +144 -0
  292. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fips_known_values.inc +674 -0
  293. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.cc.inc +179 -0
  294. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.h +48 -0
  295. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.cc.inc +164 -0
  296. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.h +58 -0
  297. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/params.h +178 -0
  298. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +690 -0
  299. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.cc.inc +326 -0
  300. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.h +71 -0
  301. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.cc.inc +172 -0
  302. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.h +40 -0
  303. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/internal.h +33 -0
  304. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/kdf.cc.inc +180 -0
  305. package/runtime/third_party/boringssl/crypto/fuzzer_mode.cc +30 -0
  306. package/runtime/third_party/boringssl/crypto/hpke/hpke.cc +1514 -0
  307. package/runtime/third_party/boringssl/crypto/hrss/asm/poly_rq_mul.S +8489 -0
  308. package/runtime/third_party/boringssl/crypto/hrss/hrss.cc +2189 -0
  309. package/runtime/third_party/boringssl/crypto/hrss/internal.h +64 -0
  310. package/runtime/third_party/boringssl/crypto/internal.h +1767 -0
  311. package/runtime/third_party/boringssl/crypto/lhash/internal.h +222 -0
  312. package/runtime/third_party/boringssl/crypto/lhash/lhash.cc +312 -0
  313. package/runtime/third_party/boringssl/crypto/md4/md4.cc +207 -0
  314. package/runtime/third_party/boringssl/crypto/md5/internal.h +34 -0
  315. package/runtime/third_party/boringssl/crypto/md5/md5.cc +255 -0
  316. package/runtime/third_party/boringssl/crypto/mem.cc +577 -0
  317. package/runtime/third_party/boringssl/crypto/mem_internal.h +706 -0
  318. package/runtime/third_party/boringssl/crypto/mldsa/mldsa.cc +296 -0
  319. package/runtime/third_party/boringssl/crypto/mlkem/mlkem.cc +108 -0
  320. package/runtime/third_party/boringssl/crypto/obj/obj.cc +494 -0
  321. package/runtime/third_party/boringssl/crypto/obj/obj_dat.h +11722 -0
  322. package/runtime/third_party/boringssl/crypto/obj/obj_xref.cc +83 -0
  323. package/runtime/third_party/boringssl/crypto/params_internal.h +30 -0
  324. package/runtime/third_party/boringssl/crypto/pem/internal.h +135 -0
  325. package/runtime/third_party/boringssl/crypto/pem/pem_all.cc +153 -0
  326. package/runtime/third_party/boringssl/crypto/pem/pem_info.cc +250 -0
  327. package/runtime/third_party/boringssl/crypto/pem/pem_lib.cc +707 -0
  328. package/runtime/third_party/boringssl/crypto/pem/pem_oth.cc +45 -0
  329. package/runtime/third_party/boringssl/crypto/pem/pem_pk8.cc +211 -0
  330. package/runtime/third_party/boringssl/crypto/pem/pem_pkey.cc +147 -0
  331. package/runtime/third_party/boringssl/crypto/pem/pem_x509.cc +25 -0
  332. package/runtime/third_party/boringssl/crypto/pem/pem_xaux.cc +25 -0
  333. package/runtime/third_party/boringssl/crypto/pkcs7/internal.h +67 -0
  334. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7.cc +198 -0
  335. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7_x509.cc +527 -0
  336. package/runtime/third_party/boringssl/crypto/pkcs8/internal.h +98 -0
  337. package/runtime/third_party/boringssl/crypto/pkcs8/p5_pbev2.cc +286 -0
  338. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8.cc +473 -0
  339. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8_x509.cc +1328 -0
  340. package/runtime/third_party/boringssl/crypto/poly1305/internal.h +54 -0
  341. package/runtime/third_party/boringssl/crypto/poly1305/poly1305.cc +315 -0
  342. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm.cc +294 -0
  343. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm_asm.S +2017 -0
  344. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_vec.cc +853 -0
  345. package/runtime/third_party/boringssl/crypto/pool/internal.h +95 -0
  346. package/runtime/third_party/boringssl/crypto/pool/pool.cc +282 -0
  347. package/runtime/third_party/boringssl/crypto/rand/deterministic.cc +58 -0
  348. package/runtime/third_party/boringssl/crypto/rand/fork_detect.cc +222 -0
  349. package/runtime/third_party/boringssl/crypto/rand/forkunsafe.cc +44 -0
  350. package/runtime/third_party/boringssl/crypto/rand/getentropy.cc +53 -0
  351. package/runtime/third_party/boringssl/crypto/rand/internal.h +67 -0
  352. package/runtime/third_party/boringssl/crypto/rand/ios.cc +35 -0
  353. package/runtime/third_party/boringssl/crypto/rand/rand.cc +79 -0
  354. package/runtime/third_party/boringssl/crypto/rand/trusty.cc +39 -0
  355. package/runtime/third_party/boringssl/crypto/rand/urandom.cc +149 -0
  356. package/runtime/third_party/boringssl/crypto/rand/windows.cc +91 -0
  357. package/runtime/third_party/boringssl/crypto/rc4/rc4.cc +56 -0
  358. package/runtime/third_party/boringssl/crypto/refcount.cc +49 -0
  359. package/runtime/third_party/boringssl/crypto/rsa/internal.h +51 -0
  360. package/runtime/third_party/boringssl/crypto/rsa/rsa_asn1.cc +404 -0
  361. package/runtime/third_party/boringssl/crypto/rsa/rsa_crypt.cc +530 -0
  362. package/runtime/third_party/boringssl/crypto/rsa/rsa_extra.cc +30 -0
  363. package/runtime/third_party/boringssl/crypto/rsa/rsa_print.cc +25 -0
  364. package/runtime/third_party/boringssl/crypto/sha/sha1.cc +55 -0
  365. package/runtime/third_party/boringssl/crypto/sha/sha256.cc +89 -0
  366. package/runtime/third_party/boringssl/crypto/sha/sha512.cc +106 -0
  367. package/runtime/third_party/boringssl/crypto/siphash/siphash.cc +81 -0
  368. package/runtime/third_party/boringssl/crypto/slhdsa/slhdsa.cc +167 -0
  369. package/runtime/third_party/boringssl/crypto/spake2plus/internal.h +204 -0
  370. package/runtime/third_party/boringssl/crypto/spake2plus/spake2plus.cc +501 -0
  371. package/runtime/third_party/boringssl/crypto/stack/stack.cc +462 -0
  372. package/runtime/third_party/boringssl/crypto/thread.cc +68 -0
  373. package/runtime/third_party/boringssl/crypto/thread_none.cc +48 -0
  374. package/runtime/third_party/boringssl/crypto/thread_pthread.cc +138 -0
  375. package/runtime/third_party/boringssl/crypto/thread_win.cc +227 -0
  376. package/runtime/third_party/boringssl/crypto/trust_token/internal.h +405 -0
  377. package/runtime/third_party/boringssl/crypto/trust_token/pmbtoken.cc +1672 -0
  378. package/runtime/third_party/boringssl/crypto/trust_token/trust_token.cc +701 -0
  379. package/runtime/third_party/boringssl/crypto/trust_token/voprf.cc +1266 -0
  380. package/runtime/third_party/boringssl/crypto/x509/a_digest.cc +52 -0
  381. package/runtime/third_party/boringssl/crypto/x509/a_sign.cc +100 -0
  382. package/runtime/third_party/boringssl/crypto/x509/a_verify.cc +77 -0
  383. package/runtime/third_party/boringssl/crypto/x509/algorithm.cc +167 -0
  384. package/runtime/third_party/boringssl/crypto/x509/asn1_gen.cc +540 -0
  385. package/runtime/third_party/boringssl/crypto/x509/by_dir.cc +301 -0
  386. package/runtime/third_party/boringssl/crypto/x509/by_file.cc +226 -0
  387. package/runtime/third_party/boringssl/crypto/x509/i2d_pr.cc +37 -0
  388. package/runtime/third_party/boringssl/crypto/x509/internal.h +697 -0
  389. package/runtime/third_party/boringssl/crypto/x509/name_print.cc +187 -0
  390. package/runtime/third_party/boringssl/crypto/x509/policy.cc +686 -0
  391. package/runtime/third_party/boringssl/crypto/x509/rsa_pss.cc +187 -0
  392. package/runtime/third_party/boringssl/crypto/x509/t_crl.cc +106 -0
  393. package/runtime/third_party/boringssl/crypto/x509/t_req.cc +206 -0
  394. package/runtime/third_party/boringssl/crypto/x509/t_x509.cc +292 -0
  395. package/runtime/third_party/boringssl/crypto/x509/t_x509a.cc +81 -0
  396. package/runtime/third_party/boringssl/crypto/x509/v3_akey.cc +174 -0
  397. package/runtime/third_party/boringssl/crypto/x509/v3_akeya.cc +31 -0
  398. package/runtime/third_party/boringssl/crypto/x509/v3_alt.cc +636 -0
  399. package/runtime/third_party/boringssl/crypto/x509/v3_bcons.cc +96 -0
  400. package/runtime/third_party/boringssl/crypto/x509/v3_bitst.cc +100 -0
  401. package/runtime/third_party/boringssl/crypto/x509/v3_conf.cc +369 -0
  402. package/runtime/third_party/boringssl/crypto/x509/v3_cpols.cc +417 -0
  403. package/runtime/third_party/boringssl/crypto/x509/v3_crld.cc +471 -0
  404. package/runtime/third_party/boringssl/crypto/x509/v3_enum.cc +74 -0
  405. package/runtime/third_party/boringssl/crypto/x509/v3_extku.cc +97 -0
  406. package/runtime/third_party/boringssl/crypto/x509/v3_genn.cc +238 -0
  407. package/runtime/third_party/boringssl/crypto/x509/v3_ia5.cc +83 -0
  408. package/runtime/third_party/boringssl/crypto/x509/v3_info.cc +162 -0
  409. package/runtime/third_party/boringssl/crypto/x509/v3_int.cc +83 -0
  410. package/runtime/third_party/boringssl/crypto/x509/v3_lib.cc +349 -0
  411. package/runtime/third_party/boringssl/crypto/x509/v3_ncons.cc +798 -0
  412. package/runtime/third_party/boringssl/crypto/x509/v3_ocsp.cc +92 -0
  413. package/runtime/third_party/boringssl/crypto/x509/v3_pcons.cc +102 -0
  414. package/runtime/third_party/boringssl/crypto/x509/v3_pmaps.cc +110 -0
  415. package/runtime/third_party/boringssl/crypto/x509/v3_prn.cc +183 -0
  416. package/runtime/third_party/boringssl/crypto/x509/v3_purp.cc +580 -0
  417. package/runtime/third_party/boringssl/crypto/x509/v3_skey.cc +128 -0
  418. package/runtime/third_party/boringssl/crypto/x509/v3_utl.cc +1311 -0
  419. package/runtime/third_party/boringssl/crypto/x509/x509.cc +47 -0
  420. package/runtime/third_party/boringssl/crypto/x509/x509_att.cc +188 -0
  421. package/runtime/third_party/boringssl/crypto/x509/x509_cmp.cc +243 -0
  422. package/runtime/third_party/boringssl/crypto/x509/x509_d2.cc +66 -0
  423. package/runtime/third_party/boringssl/crypto/x509/x509_def.cc +42 -0
  424. package/runtime/third_party/boringssl/crypto/x509/x509_ext.cc +161 -0
  425. package/runtime/third_party/boringssl/crypto/x509/x509_lu.cc +570 -0
  426. package/runtime/third_party/boringssl/crypto/x509/x509_mtc.cc +598 -0
  427. package/runtime/third_party/boringssl/crypto/x509/x509_obj.cc +169 -0
  428. package/runtime/third_party/boringssl/crypto/x509/x509_req.cc +248 -0
  429. package/runtime/third_party/boringssl/crypto/x509/x509_set.cc +166 -0
  430. package/runtime/third_party/boringssl/crypto/x509/x509_trs.cc +123 -0
  431. package/runtime/third_party/boringssl/crypto/x509/x509_txt.cc +147 -0
  432. package/runtime/third_party/boringssl/crypto/x509/x509_v3.cc +249 -0
  433. package/runtime/third_party/boringssl/crypto/x509/x509_vfy.cc +1531 -0
  434. package/runtime/third_party/boringssl/crypto/x509/x509_vpm.cc +449 -0
  435. package/runtime/third_party/boringssl/crypto/x509/x509cset.cc +222 -0
  436. package/runtime/third_party/boringssl/crypto/x509/x509name.cc +377 -0
  437. package/runtime/third_party/boringssl/crypto/x509/x509rset.cc +55 -0
  438. package/runtime/third_party/boringssl/crypto/x509/x509spki.cc +91 -0
  439. package/runtime/third_party/boringssl/crypto/x509/x_algor.cc +223 -0
  440. package/runtime/third_party/boringssl/crypto/x509/x_all.cc +352 -0
  441. package/runtime/third_party/boringssl/crypto/x509/x_attrib.cc +61 -0
  442. package/runtime/third_party/boringssl/crypto/x509/x_crl.cc +325 -0
  443. package/runtime/third_party/boringssl/crypto/x509/x_exten.cc +42 -0
  444. package/runtime/third_party/boringssl/crypto/x509/x_name.cc +407 -0
  445. package/runtime/third_party/boringssl/crypto/x509/x_pubkey.cc +199 -0
  446. package/runtime/third_party/boringssl/crypto/x509/x_req.cc +80 -0
  447. package/runtime/third_party/boringssl/crypto/x509/x_sig.cc +51 -0
  448. package/runtime/third_party/boringssl/crypto/x509/x_spki.cc +44 -0
  449. package/runtime/third_party/boringssl/crypto/x509/x_x509.cc +495 -0
  450. package/runtime/third_party/boringssl/crypto/x509/x_x509a.cc +169 -0
  451. package/runtime/third_party/boringssl/crypto/xwing/xwing.cc +257 -0
  452. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-apple.S +1326 -0
  453. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-linux.S +1327 -0
  454. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-apple.S +1252 -0
  455. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-linux.S +1253 -0
  456. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-apple.S +873 -0
  457. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-linux.S +885 -0
  458. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-apple.S +2490 -0
  459. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-linux.S +2530 -0
  460. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-apple.S +2413 -0
  461. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-linux.S +2397 -0
  462. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv7-linux.S +784 -0
  463. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-apple.S +792 -0
  464. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-linux.S +786 -0
  465. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-win.S +798 -0
  466. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-apple.S +2912 -0
  467. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-linux.S +2907 -0
  468. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-win.S +2915 -0
  469. package/runtime/third_party/boringssl/gen/bcm/armv4-mont-linux.S +932 -0
  470. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-apple.S +1440 -0
  471. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-linux.S +1440 -0
  472. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-win.S +1446 -0
  473. package/runtime/third_party/boringssl/gen/bcm/bn-586-apple.S +530 -0
  474. package/runtime/third_party/boringssl/gen/bcm/bn-586-linux.S +540 -0
  475. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-apple.S +88 -0
  476. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-linux.S +87 -0
  477. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-win.S +87 -0
  478. package/runtime/third_party/boringssl/gen/bcm/bsaes-armv7-linux.S +1520 -0
  479. package/runtime/third_party/boringssl/gen/bcm/co-586-apple.S +1256 -0
  480. package/runtime/third_party/boringssl/gen/bcm/co-586-linux.S +1264 -0
  481. package/runtime/third_party/boringssl/gen/bcm/ghash-armv4-linux.S +242 -0
  482. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-apple.S +337 -0
  483. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-linux.S +335 -0
  484. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-win.S +341 -0
  485. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-apple.S +288 -0
  486. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-linux.S +292 -0
  487. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-apple.S +426 -0
  488. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-linux.S +425 -0
  489. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-apple.S +322 -0
  490. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-linux.S +328 -0
  491. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-apple.S +1134 -0
  492. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-linux.S +1129 -0
  493. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv7-linux.S +244 -0
  494. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-apple.S +567 -0
  495. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-linux.S +563 -0
  496. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-win.S +571 -0
  497. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-apple.S +1744 -0
  498. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-linux.S +1725 -0
  499. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-win.S +1765 -0
  500. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-apple.S +4544 -0
  501. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-linux.S +4600 -0
  502. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-apple.S +310 -0
  503. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-linux.S +310 -0
  504. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-win.S +310 -0
  505. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-apple.S +321 -0
  506. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-linux.S +335 -0
  507. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-apple.S +58 -0
  508. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-linux.S +57 -0
  509. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-apple.S +1756 -0
  510. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-linux.S +1751 -0
  511. package/runtime/third_party/boringssl/gen/bcm/sha1-586-apple.S +3782 -0
  512. package/runtime/third_party/boringssl/gen/bcm/sha1-586-linux.S +3788 -0
  513. package/runtime/third_party/boringssl/gen/bcm/sha1-armv4-large-linux.S +1479 -0
  514. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-apple.S +1219 -0
  515. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-linux.S +1218 -0
  516. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-win.S +1222 -0
  517. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-apple.S +5454 -0
  518. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-linux.S +5450 -0
  519. package/runtime/third_party/boringssl/gen/bcm/sha256-586-apple.S +5593 -0
  520. package/runtime/third_party/boringssl/gen/bcm/sha256-586-linux.S +5599 -0
  521. package/runtime/third_party/boringssl/gen/bcm/sha256-armv4-linux.S +2840 -0
  522. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-apple.S +1195 -0
  523. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-linux.S +1194 -0
  524. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-win.S +1198 -0
  525. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-apple.S +4173 -0
  526. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-linux.S +4170 -0
  527. package/runtime/third_party/boringssl/gen/bcm/sha512-586-apple.S +2406 -0
  528. package/runtime/third_party/boringssl/gen/bcm/sha512-586-linux.S +2410 -0
  529. package/runtime/third_party/boringssl/gen/bcm/sha512-armv4-linux.S +1857 -0
  530. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-apple.S +1598 -0
  531. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-linux.S +1597 -0
  532. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-win.S +1601 -0
  533. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-apple.S +2979 -0
  534. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-linux.S +2978 -0
  535. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv7-linux.S +1225 -0
  536. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-apple.S +1238 -0
  537. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-linux.S +1220 -0
  538. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-win.S +1256 -0
  539. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-apple.S +680 -0
  540. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-linux.S +706 -0
  541. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-apple.S +1146 -0
  542. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-linux.S +1133 -0
  543. package/runtime/third_party/boringssl/gen/bcm/x86-mont-apple.S +216 -0
  544. package/runtime/third_party/boringssl/gen/bcm/x86-mont-linux.S +218 -0
  545. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-apple.S +1238 -0
  546. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-linux.S +1237 -0
  547. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-apple.S +3644 -0
  548. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-linux.S +3628 -0
  549. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_64_win_asm.inc +325 -0
  550. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_win_asm.inc +325 -0
  551. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-apple.S +3113 -0
  552. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-linux.S +3091 -0
  553. package/runtime/third_party/boringssl/gen/crypto/chacha-armv4-linux.S +1450 -0
  554. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-apple.S +1969 -0
  555. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-linux.S +1967 -0
  556. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-win.S +1973 -0
  557. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-apple.S +957 -0
  558. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-linux.S +961 -0
  559. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-apple.S +1608 -0
  560. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-linux.S +1611 -0
  561. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-apple.S +3010 -0
  562. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-linux.S +3008 -0
  563. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-win.S +3014 -0
  564. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-apple.S +8903 -0
  565. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-linux.S +8940 -0
  566. package/runtime/third_party/boringssl/gen/crypto/err_data.cc +1578 -0
  567. package/runtime/third_party/boringssl/gen/crypto/md5-586-apple.S +684 -0
  568. package/runtime/third_party/boringssl/gen/crypto/md5-586-linux.S +686 -0
  569. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-apple.S +690 -0
  570. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-linux.S +695 -0
  571. package/runtime/third_party/boringssl/include/openssl/aead.h +650 -0
  572. package/runtime/third_party/boringssl/include/openssl/aes.h +173 -0
  573. package/runtime/third_party/boringssl/include/openssl/arm_arch.h +24 -0
  574. package/runtime/third_party/boringssl/include/openssl/asm_base.h +219 -0
  575. package/runtime/third_party/boringssl/include/openssl/asn1.h +2002 -0
  576. package/runtime/third_party/boringssl/include/openssl/asn1_mac.h +18 -0
  577. package/runtime/third_party/boringssl/include/openssl/asn1t.h +584 -0
  578. package/runtime/third_party/boringssl/include/openssl/base.h +548 -0
  579. package/runtime/third_party/boringssl/include/openssl/base64.h +156 -0
  580. package/runtime/third_party/boringssl/include/openssl/bio.h +1061 -0
  581. package/runtime/third_party/boringssl/include/openssl/blake2.h +63 -0
  582. package/runtime/third_party/boringssl/include/openssl/blowfish.h +58 -0
  583. package/runtime/third_party/boringssl/include/openssl/bn.h +986 -0
  584. package/runtime/third_party/boringssl/include/openssl/buf.h +95 -0
  585. package/runtime/third_party/boringssl/include/openssl/buffer.h +18 -0
  586. package/runtime/third_party/boringssl/include/openssl/bytestring.h +798 -0
  587. package/runtime/third_party/boringssl/include/openssl/cast.h +91 -0
  588. package/runtime/third_party/boringssl/include/openssl/chacha.h +47 -0
  589. package/runtime/third_party/boringssl/include/openssl/cipher.h +819 -0
  590. package/runtime/third_party/boringssl/include/openssl/cmac.h +91 -0
  591. package/runtime/third_party/boringssl/include/openssl/cms.h +147 -0
  592. package/runtime/third_party/boringssl/include/openssl/conf.h +136 -0
  593. package/runtime/third_party/boringssl/include/openssl/configuration.h +18 -0
  594. package/runtime/third_party/boringssl/include/openssl/cpu.h +18 -0
  595. package/runtime/third_party/boringssl/include/openssl/crypto.h +235 -0
  596. package/runtime/third_party/boringssl/include/openssl/ctrdrbg.h +116 -0
  597. package/runtime/third_party/boringssl/include/openssl/curve25519.h +309 -0
  598. package/runtime/third_party/boringssl/include/openssl/des.h +134 -0
  599. package/runtime/third_party/boringssl/include/openssl/dh.h +336 -0
  600. package/runtime/third_party/boringssl/include/openssl/digest.h +399 -0
  601. package/runtime/third_party/boringssl/include/openssl/dsa.h +392 -0
  602. package/runtime/third_party/boringssl/include/openssl/dtls1.h +16 -0
  603. package/runtime/third_party/boringssl/include/openssl/e_os2.h +18 -0
  604. package/runtime/third_party/boringssl/include/openssl/ec.h +530 -0
  605. package/runtime/third_party/boringssl/include/openssl/ec_key.h +358 -0
  606. package/runtime/third_party/boringssl/include/openssl/ecdh.h +67 -0
  607. package/runtime/third_party/boringssl/include/openssl/ecdsa.h +242 -0
  608. package/runtime/third_party/boringssl/include/openssl/engine.h +109 -0
  609. package/runtime/third_party/boringssl/include/openssl/err.h +416 -0
  610. package/runtime/third_party/boringssl/include/openssl/evp.h +1645 -0
  611. package/runtime/third_party/boringssl/include/openssl/evp_errors.h +66 -0
  612. package/runtime/third_party/boringssl/include/openssl/ex_data.h +117 -0
  613. package/runtime/third_party/boringssl/include/openssl/hkdf.h +68 -0
  614. package/runtime/third_party/boringssl/include/openssl/hmac.h +151 -0
  615. package/runtime/third_party/boringssl/include/openssl/hpke.h +456 -0
  616. package/runtime/third_party/boringssl/include/openssl/hrss.h +108 -0
  617. package/runtime/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  618. package/runtime/third_party/boringssl/include/openssl/kdf.h +92 -0
  619. package/runtime/third_party/boringssl/include/openssl/lhash.h +18 -0
  620. package/runtime/third_party/boringssl/include/openssl/md4.h +73 -0
  621. package/runtime/third_party/boringssl/include/openssl/md5.h +67 -0
  622. package/runtime/third_party/boringssl/include/openssl/mem.h +215 -0
  623. package/runtime/third_party/boringssl/include/openssl/mldsa.h +486 -0
  624. package/runtime/third_party/boringssl/include/openssl/mlkem.h +222 -0
  625. package/runtime/third_party/boringssl/include/openssl/nid.h +5561 -0
  626. package/runtime/third_party/boringssl/include/openssl/obj.h +225 -0
  627. package/runtime/third_party/boringssl/include/openssl/obj_mac.h +18 -0
  628. package/runtime/third_party/boringssl/include/openssl/objects.h +18 -0
  629. package/runtime/third_party/boringssl/include/openssl/opensslconf.h +108 -0
  630. package/runtime/third_party/boringssl/include/openssl/opensslv.h +18 -0
  631. package/runtime/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
  632. package/runtime/third_party/boringssl/include/openssl/params.h +42 -0
  633. package/runtime/third_party/boringssl/include/openssl/pem.h +769 -0
  634. package/runtime/third_party/boringssl/include/openssl/pkcs12.h +18 -0
  635. package/runtime/third_party/boringssl/include/openssl/pkcs7.h +239 -0
  636. package/runtime/third_party/boringssl/include/openssl/pkcs8.h +267 -0
  637. package/runtime/third_party/boringssl/include/openssl/poly1305.h +52 -0
  638. package/runtime/third_party/boringssl/include/openssl/pool.h +137 -0
  639. package/runtime/third_party/boringssl/include/openssl/posix_time.h +51 -0
  640. package/runtime/third_party/boringssl/include/openssl/prefix_symbols.h +8000 -0
  641. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_S.h +633 -0
  642. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_c.h +329 -0
  643. package/runtime/third_party/boringssl/include/openssl/rand.h +138 -0
  644. package/runtime/third_party/boringssl/include/openssl/rc4.h +54 -0
  645. package/runtime/third_party/boringssl/include/openssl/ripemd.h +71 -0
  646. package/runtime/third_party/boringssl/include/openssl/rsa.h +893 -0
  647. package/runtime/third_party/boringssl/include/openssl/safestack.h +16 -0
  648. package/runtime/third_party/boringssl/include/openssl/service_indicator.h +19 -0
  649. package/runtime/third_party/boringssl/include/openssl/sha.h +108 -0
  650. package/runtime/third_party/boringssl/include/openssl/sha2.h +201 -0
  651. package/runtime/third_party/boringssl/include/openssl/siphash.h +37 -0
  652. package/runtime/third_party/boringssl/include/openssl/slhdsa.h +250 -0
  653. package/runtime/third_party/boringssl/include/openssl/span.h +376 -0
  654. package/runtime/third_party/boringssl/include/openssl/srtp.h +18 -0
  655. package/runtime/third_party/boringssl/include/openssl/ssl.h +7211 -0
  656. package/runtime/third_party/boringssl/include/openssl/ssl3.h +171 -0
  657. package/runtime/third_party/boringssl/include/openssl/stack.h +688 -0
  658. package/runtime/third_party/boringssl/include/openssl/target.h +246 -0
  659. package/runtime/third_party/boringssl/include/openssl/thread.h +114 -0
  660. package/runtime/third_party/boringssl/include/openssl/time.h +22 -0
  661. package/runtime/third_party/boringssl/include/openssl/tls1.h +263 -0
  662. package/runtime/third_party/boringssl/include/openssl/tls_prf.h +47 -0
  663. package/runtime/third_party/boringssl/include/openssl/trust_token.h +349 -0
  664. package/runtime/third_party/boringssl/include/openssl/type_check.h +37 -0
  665. package/runtime/third_party/boringssl/include/openssl/types.h +18 -0
  666. package/runtime/third_party/boringssl/include/openssl/x509.h +5404 -0
  667. package/runtime/third_party/boringssl/include/openssl/x509_vfy.h +18 -0
  668. package/runtime/third_party/boringssl/include/openssl/x509v3.h +63 -0
  669. package/runtime/third_party/boringssl/include/openssl/x509v3_errors.h +84 -0
  670. package/runtime/third_party/boringssl/include/openssl/xwing.h +115 -0
  671. package/runtime/third_party/boringssl/sources.json +696 -0
  672. package/runtime/third_party/boringssl/ssl/bio_ssl.cc +196 -0
  673. package/runtime/third_party/boringssl/ssl/d1_both.cc +1137 -0
  674. package/runtime/third_party/boringssl/ssl/d1_lib.cc +245 -0
  675. package/runtime/third_party/boringssl/ssl/d1_pkt.cc +322 -0
  676. package/runtime/third_party/boringssl/ssl/d1_srtp.cc +128 -0
  677. package/runtime/third_party/boringssl/ssl/dtls_method.cc +216 -0
  678. package/runtime/third_party/boringssl/ssl/dtls_record.cc +586 -0
  679. package/runtime/third_party/boringssl/ssl/encrypted_client_hello.cc +1110 -0
  680. package/runtime/third_party/boringssl/ssl/extensions.cc +5368 -0
  681. package/runtime/third_party/boringssl/ssl/handoff.cc +625 -0
  682. package/runtime/third_party/boringssl/ssl/handshake.cc +694 -0
  683. package/runtime/third_party/boringssl/ssl/handshake_client.cc +1958 -0
  684. package/runtime/third_party/boringssl/ssl/handshake_server.cc +1875 -0
  685. package/runtime/third_party/boringssl/ssl/internal.h +4506 -0
  686. package/runtime/third_party/boringssl/ssl/s3_both.cc +555 -0
  687. package/runtime/third_party/boringssl/ssl/s3_lib.cc +88 -0
  688. package/runtime/third_party/boringssl/ssl/s3_pkt.cc +396 -0
  689. package/runtime/third_party/boringssl/ssl/ssl_aead_ctx.cc +416 -0
  690. package/runtime/third_party/boringssl/ssl/ssl_asn1.cc +851 -0
  691. package/runtime/third_party/boringssl/ssl/ssl_buffer.cc +304 -0
  692. package/runtime/third_party/boringssl/ssl/ssl_cert.cc +723 -0
  693. package/runtime/third_party/boringssl/ssl/ssl_cipher.cc +1762 -0
  694. package/runtime/third_party/boringssl/ssl/ssl_credential.cc +913 -0
  695. package/runtime/third_party/boringssl/ssl/ssl_file.cc +375 -0
  696. package/runtime/third_party/boringssl/ssl/ssl_key_share.cc +445 -0
  697. package/runtime/third_party/boringssl/ssl/ssl_lib.cc +4132 -0
  698. package/runtime/third_party/boringssl/ssl/ssl_privkey.cc +973 -0
  699. package/runtime/third_party/boringssl/ssl/ssl_session.cc +1273 -0
  700. package/runtime/third_party/boringssl/ssl/ssl_stat.cc +162 -0
  701. package/runtime/third_party/boringssl/ssl/ssl_transcript.cc +224 -0
  702. package/runtime/third_party/boringssl/ssl/ssl_versions.cc +436 -0
  703. package/runtime/third_party/boringssl/ssl/ssl_x509.cc +1229 -0
  704. package/runtime/third_party/boringssl/ssl/t1_enc.cc +266 -0
  705. package/runtime/third_party/boringssl/ssl/tls13_both.cc +764 -0
  706. package/runtime/third_party/boringssl/ssl/tls13_client.cc +1325 -0
  707. package/runtime/third_party/boringssl/ssl/tls13_enc.cc +746 -0
  708. package/runtime/third_party/boringssl/ssl/tls13_server.cc +1623 -0
  709. package/runtime/third_party/boringssl/ssl/tls_method.cc +266 -0
  710. package/runtime/third_party/boringssl/ssl/tls_record.cc +524 -0
  711. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_mul.S +178 -0
  712. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_square.S +146 -0
  713. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_mul.S +177 -0
  714. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_sqr.S +166 -0
  715. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_bareminimum.c.inc +47 -0
  716. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_platform.c.inc +137 -0
  717. package/runtime/third_party/boringssl/third_party/fiat/curve25519_32.h +1571 -0
  718. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64.h +978 -0
  719. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_adx.h +700 -0
  720. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_msvc.h +1281 -0
  721. package/runtime/third_party/boringssl/third_party/fiat/p256_32.h +4760 -0
  722. package/runtime/third_party/boringssl/third_party/fiat/p256_64.h +1984 -0
  723. package/runtime/third_party/boringssl/third_party/fiat/p256_64_msvc.h +1939 -0
  724. package/runtime/third_party/boringssl/third_party/fiat/p256_field.c.inc +26 -0
  725. package/runtime/third_party/boringssl/third_party/fiat/p256_field_32.br.c.inc +71 -0
  726. package/runtime/third_party/boringssl/third_party/fiat/p256_field_64.br.c.inc +84 -0
  727. package/runtime/third_party/boringssl/third_party/fiat/p256_point.br.c.inc +112 -0
  728. package/runtime/third_party/v8-ieee754/README.md +2 -1
  729. package/runtime/third_party/v8-ieee754/convert.py +4 -0
  730. package/runtime/third_party/v8-ieee754/ieee754.c +1 -1
  731. package/runtime/third_party/bearssl/LICENSE.txt +0 -21
  732. package/runtime/third_party/bearssl/README.txt +0 -136
  733. package/runtime/third_party/bearssl/VERSION +0 -1
  734. package/runtime/third_party/bearssl/inc/bearssl.h +0 -183
  735. package/runtime/third_party/bearssl/inc/bearssl_aead.h +0 -1059
  736. package/runtime/third_party/bearssl/inc/bearssl_block.h +0 -2618
  737. package/runtime/third_party/bearssl/inc/bearssl_ec.h +0 -967
  738. package/runtime/third_party/bearssl/inc/bearssl_hash.h +0 -1346
  739. package/runtime/third_party/bearssl/inc/bearssl_hmac.h +0 -241
  740. package/runtime/third_party/bearssl/inc/bearssl_kdf.h +0 -284
  741. package/runtime/third_party/bearssl/inc/bearssl_pem.h +0 -294
  742. package/runtime/third_party/bearssl/inc/bearssl_prf.h +0 -150
  743. package/runtime/third_party/bearssl/inc/bearssl_rand.h +0 -397
  744. package/runtime/third_party/bearssl/inc/bearssl_rsa.h +0 -1655
  745. package/runtime/third_party/bearssl/inc/bearssl_ssl.h +0 -4296
  746. package/runtime/third_party/bearssl/inc/bearssl_x509.h +0 -1474
  747. package/runtime/third_party/bearssl/src/aead/ccm.c +0 -346
  748. package/runtime/third_party/bearssl/src/aead/eax.c +0 -525
  749. package/runtime/third_party/bearssl/src/aead/gcm.c +0 -318
  750. package/runtime/third_party/bearssl/src/codec/ccopy.c +0 -44
  751. package/runtime/third_party/bearssl/src/codec/dec16be.c +0 -38
  752. package/runtime/third_party/bearssl/src/codec/dec16le.c +0 -38
  753. package/runtime/third_party/bearssl/src/codec/dec32be.c +0 -38
  754. package/runtime/third_party/bearssl/src/codec/dec32le.c +0 -38
  755. package/runtime/third_party/bearssl/src/codec/dec64be.c +0 -38
  756. package/runtime/third_party/bearssl/src/codec/dec64le.c +0 -38
  757. package/runtime/third_party/bearssl/src/codec/enc16be.c +0 -38
  758. package/runtime/third_party/bearssl/src/codec/enc16le.c +0 -38
  759. package/runtime/third_party/bearssl/src/codec/enc32be.c +0 -38
  760. package/runtime/third_party/bearssl/src/codec/enc32le.c +0 -38
  761. package/runtime/third_party/bearssl/src/codec/enc64be.c +0 -38
  762. package/runtime/third_party/bearssl/src/codec/enc64le.c +0 -38
  763. package/runtime/third_party/bearssl/src/codec/pemdec.c +0 -526
  764. package/runtime/third_party/bearssl/src/codec/pemdec.t0 +0 -314
  765. package/runtime/third_party/bearssl/src/codec/pemenc.c +0 -173
  766. package/runtime/third_party/bearssl/src/config.h +0 -247
  767. package/runtime/third_party/bearssl/src/ec/ec_all_m15.c +0 -121
  768. package/runtime/third_party/bearssl/src/ec/ec_all_m31.c +0 -171
  769. package/runtime/third_party/bearssl/src/ec/ec_c25519_i15.c +0 -398
  770. package/runtime/third_party/bearssl/src/ec/ec_c25519_i31.c +0 -390
  771. package/runtime/third_party/bearssl/src/ec/ec_c25519_m15.c +0 -1478
  772. package/runtime/third_party/bearssl/src/ec/ec_c25519_m31.c +0 -800
  773. package/runtime/third_party/bearssl/src/ec/ec_c25519_m62.c +0 -605
  774. package/runtime/third_party/bearssl/src/ec/ec_c25519_m64.c +0 -831
  775. package/runtime/third_party/bearssl/src/ec/ec_curve25519.c +0 -46
  776. package/runtime/third_party/bearssl/src/ec/ec_default.c +0 -36
  777. package/runtime/third_party/bearssl/src/ec/ec_keygen.c +0 -86
  778. package/runtime/third_party/bearssl/src/ec/ec_p256_m15.c +0 -2124
  779. package/runtime/third_party/bearssl/src/ec/ec_p256_m31.c +0 -1469
  780. package/runtime/third_party/bearssl/src/ec/ec_p256_m62.c +0 -1765
  781. package/runtime/third_party/bearssl/src/ec/ec_p256_m64.c +0 -1781
  782. package/runtime/third_party/bearssl/src/ec/ec_prime_i15.c +0 -824
  783. package/runtime/third_party/bearssl/src/ec/ec_prime_i31.c +0 -826
  784. package/runtime/third_party/bearssl/src/ec/ec_pubkey.c +0 -85
  785. package/runtime/third_party/bearssl/src/ec/ec_secp256r1.c +0 -51
  786. package/runtime/third_party/bearssl/src/ec/ec_secp384r1.c +0 -57
  787. package/runtime/third_party/bearssl/src/ec/ec_secp521r1.c +0 -64
  788. package/runtime/third_party/bearssl/src/ec/ecdsa_atr.c +0 -134
  789. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_asn1.c +0 -36
  790. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_raw.c +0 -36
  791. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_asn1.c +0 -36
  792. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_raw.c +0 -36
  793. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_bits.c +0 -47
  794. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_asn1.c +0 -45
  795. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_raw.c +0 -174
  796. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_asn1.c +0 -48
  797. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_raw.c +0 -166
  798. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_bits.c +0 -47
  799. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_asn1.c +0 -45
  800. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_raw.c +0 -173
  801. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_asn1.c +0 -48
  802. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_raw.c +0 -165
  803. package/runtime/third_party/bearssl/src/ec/ecdsa_rta.c +0 -121
  804. package/runtime/third_party/bearssl/src/hash/dig_oid.c +0 -84
  805. package/runtime/third_party/bearssl/src/hash/dig_size.c +0 -50
  806. package/runtime/third_party/bearssl/src/hash/ghash_ctmul.c +0 -345
  807. package/runtime/third_party/bearssl/src/hash/ghash_ctmul32.c +0 -251
  808. package/runtime/third_party/bearssl/src/hash/ghash_ctmul64.c +0 -154
  809. package/runtime/third_party/bearssl/src/hash/ghash_pclmul.c +0 -389
  810. package/runtime/third_party/bearssl/src/hash/ghash_pwr8.c +0 -411
  811. package/runtime/third_party/bearssl/src/hash/md5.c +0 -208
  812. package/runtime/third_party/bearssl/src/hash/md5sha1.c +0 -141
  813. package/runtime/third_party/bearssl/src/hash/mgf1.c +0 -56
  814. package/runtime/third_party/bearssl/src/hash/multihash.c +0 -166
  815. package/runtime/third_party/bearssl/src/hash/sha1.c +0 -191
  816. package/runtime/third_party/bearssl/src/hash/sha2big.c +0 -285
  817. package/runtime/third_party/bearssl/src/hash/sha2small.c +0 -341
  818. package/runtime/third_party/bearssl/src/inner.h +0 -2577
  819. package/runtime/third_party/bearssl/src/int/i15_add.c +0 -46
  820. package/runtime/third_party/bearssl/src/int/i15_bitlen.c +0 -44
  821. package/runtime/third_party/bearssl/src/int/i15_decmod.c +0 -124
  822. package/runtime/third_party/bearssl/src/int/i15_decode.c +0 -56
  823. package/runtime/third_party/bearssl/src/int/i15_decred.c +0 -100
  824. package/runtime/third_party/bearssl/src/int/i15_encode.c +0 -56
  825. package/runtime/third_party/bearssl/src/int/i15_fmont.c +0 -59
  826. package/runtime/third_party/bearssl/src/int/i15_iszero.c +0 -39
  827. package/runtime/third_party/bearssl/src/int/i15_moddiv.c +0 -465
  828. package/runtime/third_party/bearssl/src/int/i15_modpow.c +0 -50
  829. package/runtime/third_party/bearssl/src/int/i15_modpow2.c +0 -160
  830. package/runtime/third_party/bearssl/src/int/i15_montmul.c +0 -184
  831. package/runtime/third_party/bearssl/src/int/i15_mulacc.c +0 -61
  832. package/runtime/third_party/bearssl/src/int/i15_muladd.c +0 -173
  833. package/runtime/third_party/bearssl/src/int/i15_ninv15.c +0 -38
  834. package/runtime/third_party/bearssl/src/int/i15_reduce.c +0 -66
  835. package/runtime/third_party/bearssl/src/int/i15_rshift.c +0 -47
  836. package/runtime/third_party/bearssl/src/int/i15_sub.c +0 -46
  837. package/runtime/third_party/bearssl/src/int/i15_tmont.c +0 -36
  838. package/runtime/third_party/bearssl/src/int/i31_add.c +0 -46
  839. package/runtime/third_party/bearssl/src/int/i31_bitlen.c +0 -44
  840. package/runtime/third_party/bearssl/src/int/i31_decmod.c +0 -124
  841. package/runtime/third_party/bearssl/src/int/i31_decode.c +0 -57
  842. package/runtime/third_party/bearssl/src/int/i31_decred.c +0 -103
  843. package/runtime/third_party/bearssl/src/int/i31_encode.c +0 -79
  844. package/runtime/third_party/bearssl/src/int/i31_fmont.c +0 -60
  845. package/runtime/third_party/bearssl/src/int/i31_iszero.c +0 -39
  846. package/runtime/third_party/bearssl/src/int/i31_moddiv.c +0 -488
  847. package/runtime/third_party/bearssl/src/int/i31_modpow.c +0 -65
  848. package/runtime/third_party/bearssl/src/int/i31_modpow2.c +0 -160
  849. package/runtime/third_party/bearssl/src/int/i31_montmul.c +0 -127
  850. package/runtime/third_party/bearssl/src/int/i31_mulacc.c +0 -74
  851. package/runtime/third_party/bearssl/src/int/i31_muladd.c +0 -157
  852. package/runtime/third_party/bearssl/src/int/i31_ninv31.c +0 -39
  853. package/runtime/third_party/bearssl/src/int/i31_reduce.c +0 -66
  854. package/runtime/third_party/bearssl/src/int/i31_rshift.c +0 -47
  855. package/runtime/third_party/bearssl/src/int/i31_sub.c +0 -46
  856. package/runtime/third_party/bearssl/src/int/i31_tmont.c +0 -36
  857. package/runtime/third_party/bearssl/src/int/i32_add.c +0 -51
  858. package/runtime/third_party/bearssl/src/int/i32_bitlen.c +0 -44
  859. package/runtime/third_party/bearssl/src/int/i32_decmod.c +0 -77
  860. package/runtime/third_party/bearssl/src/int/i32_decode.c +0 -63
  861. package/runtime/third_party/bearssl/src/int/i32_decred.c +0 -107
  862. package/runtime/third_party/bearssl/src/int/i32_div32.c +0 -56
  863. package/runtime/third_party/bearssl/src/int/i32_encode.c +0 -72
  864. package/runtime/third_party/bearssl/src/int/i32_fmont.c +0 -60
  865. package/runtime/third_party/bearssl/src/int/i32_iszero.c +0 -39
  866. package/runtime/third_party/bearssl/src/int/i32_modpow.c +0 -65
  867. package/runtime/third_party/bearssl/src/int/i32_montmul.c +0 -69
  868. package/runtime/third_party/bearssl/src/int/i32_mulacc.c +0 -56
  869. package/runtime/third_party/bearssl/src/int/i32_muladd.c +0 -138
  870. package/runtime/third_party/bearssl/src/int/i32_ninv32.c +0 -39
  871. package/runtime/third_party/bearssl/src/int/i32_reduce.c +0 -66
  872. package/runtime/third_party/bearssl/src/int/i32_sub.c +0 -51
  873. package/runtime/third_party/bearssl/src/int/i32_tmont.c +0 -36
  874. package/runtime/third_party/bearssl/src/int/i62_modpow2.c +0 -493
  875. package/runtime/third_party/bearssl/src/kdf/hkdf.c +0 -107
  876. package/runtime/third_party/bearssl/src/kdf/shake.c +0 -590
  877. package/runtime/third_party/bearssl/src/mac/hmac.c +0 -122
  878. package/runtime/third_party/bearssl/src/mac/hmac_ct.c +0 -193
  879. package/runtime/third_party/bearssl/src/rand/aesctr_drbg.c +0 -206
  880. package/runtime/third_party/bearssl/src/rand/hmac_drbg.c +0 -157
  881. package/runtime/third_party/bearssl/src/rand/sysrng.c +0 -252
  882. package/runtime/third_party/bearssl/src/rsa/rsa_default_keygen.c +0 -38
  883. package/runtime/third_party/bearssl/src/rsa/rsa_default_modulus.c +0 -36
  884. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_decrypt.c +0 -38
  885. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_encrypt.c +0 -38
  886. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_sign.c +0 -38
  887. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_vrfy.c +0 -38
  888. package/runtime/third_party/bearssl/src/rsa/rsa_default_priv.c +0 -38
  889. package/runtime/third_party/bearssl/src/rsa/rsa_default_privexp.c +0 -36
  890. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_sign.c +0 -38
  891. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_vrfy.c +0 -38
  892. package/runtime/third_party/bearssl/src/rsa/rsa_default_pub.c +0 -38
  893. package/runtime/third_party/bearssl/src/rsa/rsa_default_pubexp.c +0 -36
  894. package/runtime/third_party/bearssl/src/rsa/rsa_i15_keygen.c +0 -583
  895. package/runtime/third_party/bearssl/src/rsa/rsa_i15_modulus.c +0 -99
  896. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_decrypt.c +0 -41
  897. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_encrypt.c +0 -44
  898. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_sign.c +0 -37
  899. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_vrfy.c +0 -43
  900. package/runtime/third_party/bearssl/src/rsa/rsa_i15_priv.c +0 -209
  901. package/runtime/third_party/bearssl/src/rsa/rsa_i15_privexp.c +0 -320
  902. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_sign.c +0 -40
  903. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_vrfy.c +0 -44
  904. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pub.c +0 -113
  905. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pubexp.c +0 -152
  906. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen.c +0 -37
  907. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen_inner.c +0 -608
  908. package/runtime/third_party/bearssl/src/rsa/rsa_i31_modulus.c +0 -99
  909. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_decrypt.c +0 -41
  910. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_encrypt.c +0 -44
  911. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_sign.c +0 -37
  912. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_vrfy.c +0 -43
  913. package/runtime/third_party/bearssl/src/rsa/rsa_i31_priv.c +0 -203
  914. package/runtime/third_party/bearssl/src/rsa/rsa_i31_privexp.c +0 -318
  915. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_sign.c +0 -40
  916. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_vrfy.c +0 -44
  917. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pub.c +0 -106
  918. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pubexp.c +0 -152
  919. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_decrypt.c +0 -41
  920. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_encrypt.c +0 -44
  921. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_sign.c +0 -37
  922. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_vrfy.c +0 -43
  923. package/runtime/third_party/bearssl/src/rsa/rsa_i32_priv.c +0 -160
  924. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_sign.c +0 -40
  925. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_vrfy.c +0 -44
  926. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pub.c +0 -77
  927. package/runtime/third_party/bearssl/src/rsa/rsa_i62_keygen.c +0 -57
  928. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_decrypt.c +0 -61
  929. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_encrypt.c +0 -64
  930. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_sign.c +0 -57
  931. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_vrfy.c +0 -63
  932. package/runtime/third_party/bearssl/src/rsa/rsa_i62_priv.c +0 -223
  933. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_sign.c +0 -60
  934. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_vrfy.c +0 -64
  935. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pub.c +0 -125
  936. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_pad.c +0 -112
  937. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_unpad.c +0 -145
  938. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_pad.c +0 -100
  939. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_unpad.c +0 -121
  940. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_pad.c +0 -106
  941. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_unpad.c +0 -121
  942. package/runtime/third_party/bearssl/src/rsa/rsa_ssl_decrypt.c +0 -52
  943. package/runtime/third_party/bearssl/src/settings.c +0 -306
  944. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcdec.c +0 -69
  945. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcenc.c +0 -67
  946. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctr.c +0 -84
  947. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctrcbc.c +0 -142
  948. package/runtime/third_party/bearssl/src/symcipher/aes_big_dec.c +0 -254
  949. package/runtime/third_party/bearssl/src/symcipher/aes_big_enc.c +0 -157
  950. package/runtime/third_party/bearssl/src/symcipher/aes_common.c +0 -112
  951. package/runtime/third_party/bearssl/src/symcipher/aes_ct.c +0 -328
  952. package/runtime/third_party/bearssl/src/symcipher/aes_ct64.c +0 -398
  953. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcdec.c +0 -104
  954. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcenc.c +0 -81
  955. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctr.c +0 -114
  956. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctrcbc.c +0 -433
  957. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_dec.c +0 -159
  958. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_enc.c +0 -115
  959. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcdec.c +0 -111
  960. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcenc.c +0 -91
  961. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctr.c +0 -116
  962. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctrcbc.c +0 -422
  963. package/runtime/third_party/bearssl/src/symcipher/aes_ct_dec.c +0 -170
  964. package/runtime/third_party/bearssl/src/symcipher/aes_ct_enc.c +0 -112
  965. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8.c +0 -445
  966. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcdec.c +0 -670
  967. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcenc.c +0 -417
  968. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctr.c +0 -717
  969. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctrcbc.c +0 -946
  970. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcdec.c +0 -69
  971. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcenc.c +0 -67
  972. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctr.c +0 -84
  973. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctrcbc.c +0 -142
  974. package/runtime/third_party/bearssl/src/symcipher/aes_small_dec.c +0 -176
  975. package/runtime/third_party/bearssl/src/symcipher/aes_small_enc.c +0 -129
  976. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni.c +0 -240
  977. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcdec.c +0 -223
  978. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcenc.c +0 -122
  979. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctr.c +0 -211
  980. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctrcbc.c +0 -596
  981. package/runtime/third_party/bearssl/src/symcipher/chacha20_ct.c +0 -106
  982. package/runtime/third_party/bearssl/src/symcipher/chacha20_sse2.c +0 -237
  983. package/runtime/third_party/bearssl/src/symcipher/des_ct.c +0 -411
  984. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcdec.c +0 -87
  985. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcenc.c +0 -69
  986. package/runtime/third_party/bearssl/src/symcipher/des_support.c +0 -166
  987. package/runtime/third_party/bearssl/src/symcipher/des_tab.c +0 -310
  988. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcdec.c +0 -85
  989. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcenc.c +0 -67
  990. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul.c +0 -260
  991. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul32.c +0 -297
  992. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmulq.c +0 -475
  993. package/runtime/third_party/bearssl/src/symcipher/poly1305_i15.c +0 -221
  994. package/runtime/third_party/bearssl/src/x509/asn1.t0 +0 -757
  995. package/runtime/third_party/bearssl/src/x509/asn1enc.c +0 -93
  996. package/runtime/third_party/bearssl/src/x509/encode_ec_pk8der.c +0 -110
  997. package/runtime/third_party/bearssl/src/x509/encode_ec_rawder.c +0 -161
  998. package/runtime/third_party/bearssl/src/x509/encode_rsa_pk8der.c +0 -97
  999. package/runtime/third_party/bearssl/src/x509/encode_rsa_rawder.c +0 -96
  1000. package/runtime/third_party/bearssl/src/x509/skey_decoder.c +0 -653
  1001. package/runtime/third_party/bearssl/src/x509/skey_decoder.t0 +0 -376
  1002. package/runtime/third_party/bearssl/src/x509/x509_decoder.c +0 -776
  1003. package/runtime/third_party/bearssl/src/x509/x509_decoder.t0 +0 -324
  1004. package/runtime/third_party/bearssl/src/x509/x509_knownkey.c +0 -105
  1005. package/runtime/third_party/bearssl/src/x509/x509_minimal.c +0 -1722
  1006. package/runtime/third_party/bearssl/src/x509/x509_minimal.t0 +0 -1526
  1007. package/runtime/third_party/bearssl/src/x509/x509_minimal_full.c +0 -59
@@ -0,0 +1,2413 @@
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(__APPLE__)
7
+ .text
8
+ .globl _aes_hw_encrypt
9
+ .private_extern _aes_hw_encrypt
10
+
11
+ .p2align 4
12
+ _aes_hw_encrypt:
13
+
14
+ _CET_ENDBR
15
+ #ifdef BORINGSSL_DISPATCH_TEST
16
+
17
+ movb $1,_BORINGSSL_function_hit+1(%rip)
18
+ #endif
19
+ movups (%rdi),%xmm2 // load input
20
+ movl 240(%rdx),%eax // key->rounds
21
+ movups (%rdx),%xmm0
22
+ movups 16(%rdx),%xmm1
23
+ leaq 32(%rdx),%rdx
24
+ xorps %xmm0,%xmm2
25
+ L$oop_enc1_1:
26
+ aesenc %xmm1,%xmm2
27
+ decl %eax
28
+ movups (%rdx),%xmm1
29
+ leaq 16(%rdx),%rdx
30
+ jnz L$oop_enc1_1 // loop body is 16 bytes
31
+ aesenclast %xmm1,%xmm2
32
+ pxor %xmm0,%xmm0 // clear register bank
33
+ pxor %xmm1,%xmm1
34
+ movups %xmm2,(%rsi) // output
35
+ pxor %xmm2,%xmm2
36
+ ret
37
+
38
+
39
+
40
+ .globl _aes_hw_decrypt
41
+ .private_extern _aes_hw_decrypt
42
+
43
+ .p2align 4
44
+ .alt_entry _aes_hw_decrypt
45
+ _aes_hw_decrypt:
46
+
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
+ L$oop_dec1_2:
55
+ aesdec %xmm1,%xmm2
56
+ decl %eax
57
+ movups (%rdx),%xmm1
58
+ leaq 16(%rdx),%rdx
59
+ jnz L$oop_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
+
67
+
68
+
69
+ .p2align 4
70
+ .alt_entry _aesni_encrypt2
71
+ _aesni_encrypt2:
72
+
73
+ movups (%rcx),%xmm0
74
+ shll $4,%eax
75
+ movups 16(%rcx),%xmm1
76
+ xorps %xmm0,%xmm2
77
+ xorps %xmm0,%xmm3
78
+ movups 32(%rcx),%xmm0
79
+ leaq 32(%rcx,%rax,1),%rcx
80
+ negq %rax // %eax
81
+ addq $16,%rax
82
+
83
+ L$enc_loop2:
84
+ aesenc %xmm1,%xmm2
85
+ aesenc %xmm1,%xmm3
86
+ movups (%rcx,%rax,1),%xmm1
87
+ addq $32,%rax
88
+ aesenc %xmm0,%xmm2
89
+ aesenc %xmm0,%xmm3
90
+ movups -16(%rcx,%rax,1),%xmm0
91
+ jnz L$enc_loop2
92
+
93
+ aesenc %xmm1,%xmm2
94
+ aesenc %xmm1,%xmm3
95
+ aesenclast %xmm0,%xmm2
96
+ aesenclast %xmm0,%xmm3
97
+ ret
98
+
99
+
100
+
101
+ .p2align 4
102
+ .alt_entry _aesni_decrypt2
103
+ _aesni_decrypt2:
104
+
105
+ movups (%rcx),%xmm0
106
+ shll $4,%eax
107
+ movups 16(%rcx),%xmm1
108
+ xorps %xmm0,%xmm2
109
+ xorps %xmm0,%xmm3
110
+ movups 32(%rcx),%xmm0
111
+ leaq 32(%rcx,%rax,1),%rcx
112
+ negq %rax // %eax
113
+ addq $16,%rax
114
+
115
+ L$dec_loop2:
116
+ aesdec %xmm1,%xmm2
117
+ aesdec %xmm1,%xmm3
118
+ movups (%rcx,%rax,1),%xmm1
119
+ addq $32,%rax
120
+ aesdec %xmm0,%xmm2
121
+ aesdec %xmm0,%xmm3
122
+ movups -16(%rcx,%rax,1),%xmm0
123
+ jnz L$dec_loop2
124
+
125
+ aesdec %xmm1,%xmm2
126
+ aesdec %xmm1,%xmm3
127
+ aesdeclast %xmm0,%xmm2
128
+ aesdeclast %xmm0,%xmm3
129
+ ret
130
+
131
+
132
+
133
+ .p2align 4
134
+ .alt_entry _aesni_encrypt3
135
+ _aesni_encrypt3:
136
+
137
+ movups (%rcx),%xmm0
138
+ shll $4,%eax
139
+ movups 16(%rcx),%xmm1
140
+ xorps %xmm0,%xmm2
141
+ xorps %xmm0,%xmm3
142
+ xorps %xmm0,%xmm4
143
+ movups 32(%rcx),%xmm0
144
+ leaq 32(%rcx,%rax,1),%rcx
145
+ negq %rax // %eax
146
+ addq $16,%rax
147
+
148
+ L$enc_loop3:
149
+ aesenc %xmm1,%xmm2
150
+ aesenc %xmm1,%xmm3
151
+ aesenc %xmm1,%xmm4
152
+ movups (%rcx,%rax,1),%xmm1
153
+ addq $32,%rax
154
+ aesenc %xmm0,%xmm2
155
+ aesenc %xmm0,%xmm3
156
+ aesenc %xmm0,%xmm4
157
+ movups -16(%rcx,%rax,1),%xmm0
158
+ jnz L$enc_loop3
159
+
160
+ aesenc %xmm1,%xmm2
161
+ aesenc %xmm1,%xmm3
162
+ aesenc %xmm1,%xmm4
163
+ aesenclast %xmm0,%xmm2
164
+ aesenclast %xmm0,%xmm3
165
+ aesenclast %xmm0,%xmm4
166
+ ret
167
+
168
+
169
+
170
+ .p2align 4
171
+ .alt_entry _aesni_decrypt3
172
+ _aesni_decrypt3:
173
+
174
+ movups (%rcx),%xmm0
175
+ shll $4,%eax
176
+ movups 16(%rcx),%xmm1
177
+ xorps %xmm0,%xmm2
178
+ xorps %xmm0,%xmm3
179
+ xorps %xmm0,%xmm4
180
+ movups 32(%rcx),%xmm0
181
+ leaq 32(%rcx,%rax,1),%rcx
182
+ negq %rax // %eax
183
+ addq $16,%rax
184
+
185
+ L$dec_loop3:
186
+ aesdec %xmm1,%xmm2
187
+ aesdec %xmm1,%xmm3
188
+ aesdec %xmm1,%xmm4
189
+ movups (%rcx,%rax,1),%xmm1
190
+ addq $32,%rax
191
+ aesdec %xmm0,%xmm2
192
+ aesdec %xmm0,%xmm3
193
+ aesdec %xmm0,%xmm4
194
+ movups -16(%rcx,%rax,1),%xmm0
195
+ jnz L$dec_loop3
196
+
197
+ aesdec %xmm1,%xmm2
198
+ aesdec %xmm1,%xmm3
199
+ aesdec %xmm1,%xmm4
200
+ aesdeclast %xmm0,%xmm2
201
+ aesdeclast %xmm0,%xmm3
202
+ aesdeclast %xmm0,%xmm4
203
+ ret
204
+
205
+
206
+
207
+ .p2align 4
208
+ .alt_entry _aesni_encrypt4
209
+ _aesni_encrypt4:
210
+
211
+ movups (%rcx),%xmm0
212
+ shll $4,%eax
213
+ movups 16(%rcx),%xmm1
214
+ xorps %xmm0,%xmm2
215
+ xorps %xmm0,%xmm3
216
+ xorps %xmm0,%xmm4
217
+ xorps %xmm0,%xmm5
218
+ movups 32(%rcx),%xmm0
219
+ leaq 32(%rcx,%rax,1),%rcx
220
+ negq %rax // %eax
221
+ .byte 0x0f,0x1f,0x00
222
+ addq $16,%rax
223
+
224
+ L$enc_loop4:
225
+ aesenc %xmm1,%xmm2
226
+ aesenc %xmm1,%xmm3
227
+ aesenc %xmm1,%xmm4
228
+ aesenc %xmm1,%xmm5
229
+ movups (%rcx,%rax,1),%xmm1
230
+ addq $32,%rax
231
+ aesenc %xmm0,%xmm2
232
+ aesenc %xmm0,%xmm3
233
+ aesenc %xmm0,%xmm4
234
+ aesenc %xmm0,%xmm5
235
+ movups -16(%rcx,%rax,1),%xmm0
236
+ jnz L$enc_loop4
237
+
238
+ aesenc %xmm1,%xmm2
239
+ aesenc %xmm1,%xmm3
240
+ aesenc %xmm1,%xmm4
241
+ aesenc %xmm1,%xmm5
242
+ aesenclast %xmm0,%xmm2
243
+ aesenclast %xmm0,%xmm3
244
+ aesenclast %xmm0,%xmm4
245
+ aesenclast %xmm0,%xmm5
246
+ ret
247
+
248
+
249
+
250
+ .p2align 4
251
+ .alt_entry _aesni_decrypt4
252
+ _aesni_decrypt4:
253
+
254
+ movups (%rcx),%xmm0
255
+ shll $4,%eax
256
+ movups 16(%rcx),%xmm1
257
+ xorps %xmm0,%xmm2
258
+ xorps %xmm0,%xmm3
259
+ xorps %xmm0,%xmm4
260
+ xorps %xmm0,%xmm5
261
+ movups 32(%rcx),%xmm0
262
+ leaq 32(%rcx,%rax,1),%rcx
263
+ negq %rax // %eax
264
+ .byte 0x0f,0x1f,0x00
265
+ addq $16,%rax
266
+
267
+ L$dec_loop4:
268
+ aesdec %xmm1,%xmm2
269
+ aesdec %xmm1,%xmm3
270
+ aesdec %xmm1,%xmm4
271
+ aesdec %xmm1,%xmm5
272
+ movups (%rcx,%rax,1),%xmm1
273
+ addq $32,%rax
274
+ aesdec %xmm0,%xmm2
275
+ aesdec %xmm0,%xmm3
276
+ aesdec %xmm0,%xmm4
277
+ aesdec %xmm0,%xmm5
278
+ movups -16(%rcx,%rax,1),%xmm0
279
+ jnz L$dec_loop4
280
+
281
+ aesdec %xmm1,%xmm2
282
+ aesdec %xmm1,%xmm3
283
+ aesdec %xmm1,%xmm4
284
+ aesdec %xmm1,%xmm5
285
+ aesdeclast %xmm0,%xmm2
286
+ aesdeclast %xmm0,%xmm3
287
+ aesdeclast %xmm0,%xmm4
288
+ aesdeclast %xmm0,%xmm5
289
+ ret
290
+
291
+
292
+
293
+ .p2align 4
294
+ .alt_entry _aesni_encrypt6
295
+ _aesni_encrypt6:
296
+
297
+ movups (%rcx),%xmm0
298
+ shll $4,%eax
299
+ movups 16(%rcx),%xmm1
300
+ xorps %xmm0,%xmm2
301
+ pxor %xmm0,%xmm3
302
+ pxor %xmm0,%xmm4
303
+ aesenc %xmm1,%xmm2
304
+ leaq 32(%rcx,%rax,1),%rcx
305
+ negq %rax // %eax
306
+ aesenc %xmm1,%xmm3
307
+ pxor %xmm0,%xmm5
308
+ pxor %xmm0,%xmm6
309
+ aesenc %xmm1,%xmm4
310
+ pxor %xmm0,%xmm7
311
+ movups (%rcx,%rax,1),%xmm0
312
+ addq $16,%rax
313
+ jmp L$enc_loop6_enter
314
+ .p2align 4
315
+ L$enc_loop6:
316
+ aesenc %xmm1,%xmm2
317
+ aesenc %xmm1,%xmm3
318
+ aesenc %xmm1,%xmm4
319
+ L$enc_loop6_enter:
320
+ aesenc %xmm1,%xmm5
321
+ aesenc %xmm1,%xmm6
322
+ aesenc %xmm1,%xmm7
323
+ movups (%rcx,%rax,1),%xmm1
324
+ addq $32,%rax
325
+ aesenc %xmm0,%xmm2
326
+ aesenc %xmm0,%xmm3
327
+ aesenc %xmm0,%xmm4
328
+ aesenc %xmm0,%xmm5
329
+ aesenc %xmm0,%xmm6
330
+ aesenc %xmm0,%xmm7
331
+ movups -16(%rcx,%rax,1),%xmm0
332
+ jnz L$enc_loop6
333
+
334
+ aesenc %xmm1,%xmm2
335
+ aesenc %xmm1,%xmm3
336
+ aesenc %xmm1,%xmm4
337
+ aesenc %xmm1,%xmm5
338
+ aesenc %xmm1,%xmm6
339
+ aesenc %xmm1,%xmm7
340
+ aesenclast %xmm0,%xmm2
341
+ aesenclast %xmm0,%xmm3
342
+ aesenclast %xmm0,%xmm4
343
+ aesenclast %xmm0,%xmm5
344
+ aesenclast %xmm0,%xmm6
345
+ aesenclast %xmm0,%xmm7
346
+ ret
347
+
348
+
349
+
350
+ .p2align 4
351
+ .alt_entry _aesni_decrypt6
352
+ _aesni_decrypt6:
353
+
354
+ movups (%rcx),%xmm0
355
+ shll $4,%eax
356
+ movups 16(%rcx),%xmm1
357
+ xorps %xmm0,%xmm2
358
+ pxor %xmm0,%xmm3
359
+ pxor %xmm0,%xmm4
360
+ aesdec %xmm1,%xmm2
361
+ leaq 32(%rcx,%rax,1),%rcx
362
+ negq %rax // %eax
363
+ aesdec %xmm1,%xmm3
364
+ pxor %xmm0,%xmm5
365
+ pxor %xmm0,%xmm6
366
+ aesdec %xmm1,%xmm4
367
+ pxor %xmm0,%xmm7
368
+ movups (%rcx,%rax,1),%xmm0
369
+ addq $16,%rax
370
+ jmp L$dec_loop6_enter
371
+ .p2align 4
372
+ L$dec_loop6:
373
+ aesdec %xmm1,%xmm2
374
+ aesdec %xmm1,%xmm3
375
+ aesdec %xmm1,%xmm4
376
+ L$dec_loop6_enter:
377
+ aesdec %xmm1,%xmm5
378
+ aesdec %xmm1,%xmm6
379
+ aesdec %xmm1,%xmm7
380
+ movups (%rcx,%rax,1),%xmm1
381
+ addq $32,%rax
382
+ aesdec %xmm0,%xmm2
383
+ aesdec %xmm0,%xmm3
384
+ aesdec %xmm0,%xmm4
385
+ aesdec %xmm0,%xmm5
386
+ aesdec %xmm0,%xmm6
387
+ aesdec %xmm0,%xmm7
388
+ movups -16(%rcx,%rax,1),%xmm0
389
+ jnz L$dec_loop6
390
+
391
+ aesdec %xmm1,%xmm2
392
+ aesdec %xmm1,%xmm3
393
+ aesdec %xmm1,%xmm4
394
+ aesdec %xmm1,%xmm5
395
+ aesdec %xmm1,%xmm6
396
+ aesdec %xmm1,%xmm7
397
+ aesdeclast %xmm0,%xmm2
398
+ aesdeclast %xmm0,%xmm3
399
+ aesdeclast %xmm0,%xmm4
400
+ aesdeclast %xmm0,%xmm5
401
+ aesdeclast %xmm0,%xmm6
402
+ aesdeclast %xmm0,%xmm7
403
+ ret
404
+
405
+
406
+
407
+ .p2align 4
408
+ .alt_entry _aesni_encrypt8
409
+ _aesni_encrypt8:
410
+
411
+ movups (%rcx),%xmm0
412
+ shll $4,%eax
413
+ movups 16(%rcx),%xmm1
414
+ xorps %xmm0,%xmm2
415
+ xorps %xmm0,%xmm3
416
+ pxor %xmm0,%xmm4
417
+ pxor %xmm0,%xmm5
418
+ pxor %xmm0,%xmm6
419
+ leaq 32(%rcx,%rax,1),%rcx
420
+ negq %rax // %eax
421
+ aesenc %xmm1,%xmm2
422
+ pxor %xmm0,%xmm7
423
+ pxor %xmm0,%xmm8
424
+ aesenc %xmm1,%xmm3
425
+ pxor %xmm0,%xmm9
426
+ movups (%rcx,%rax,1),%xmm0
427
+ addq $16,%rax
428
+ jmp L$enc_loop8_inner
429
+ .p2align 4
430
+ L$enc_loop8:
431
+ aesenc %xmm1,%xmm2
432
+ aesenc %xmm1,%xmm3
433
+ L$enc_loop8_inner:
434
+ aesenc %xmm1,%xmm4
435
+ aesenc %xmm1,%xmm5
436
+ aesenc %xmm1,%xmm6
437
+ aesenc %xmm1,%xmm7
438
+ aesenc %xmm1,%xmm8
439
+ aesenc %xmm1,%xmm9
440
+ L$enc_loop8_enter:
441
+ movups (%rcx,%rax,1),%xmm1
442
+ addq $32,%rax
443
+ aesenc %xmm0,%xmm2
444
+ aesenc %xmm0,%xmm3
445
+ aesenc %xmm0,%xmm4
446
+ aesenc %xmm0,%xmm5
447
+ aesenc %xmm0,%xmm6
448
+ aesenc %xmm0,%xmm7
449
+ aesenc %xmm0,%xmm8
450
+ aesenc %xmm0,%xmm9
451
+ movups -16(%rcx,%rax,1),%xmm0
452
+ jnz L$enc_loop8
453
+
454
+ aesenc %xmm1,%xmm2
455
+ aesenc %xmm1,%xmm3
456
+ aesenc %xmm1,%xmm4
457
+ aesenc %xmm1,%xmm5
458
+ aesenc %xmm1,%xmm6
459
+ aesenc %xmm1,%xmm7
460
+ aesenc %xmm1,%xmm8
461
+ aesenc %xmm1,%xmm9
462
+ aesenclast %xmm0,%xmm2
463
+ aesenclast %xmm0,%xmm3
464
+ aesenclast %xmm0,%xmm4
465
+ aesenclast %xmm0,%xmm5
466
+ aesenclast %xmm0,%xmm6
467
+ aesenclast %xmm0,%xmm7
468
+ aesenclast %xmm0,%xmm8
469
+ aesenclast %xmm0,%xmm9
470
+ ret
471
+
472
+
473
+
474
+ .p2align 4
475
+ .alt_entry _aesni_decrypt8
476
+ _aesni_decrypt8:
477
+
478
+ movups (%rcx),%xmm0
479
+ shll $4,%eax
480
+ movups 16(%rcx),%xmm1
481
+ xorps %xmm0,%xmm2
482
+ xorps %xmm0,%xmm3
483
+ pxor %xmm0,%xmm4
484
+ pxor %xmm0,%xmm5
485
+ pxor %xmm0,%xmm6
486
+ leaq 32(%rcx,%rax,1),%rcx
487
+ negq %rax // %eax
488
+ aesdec %xmm1,%xmm2
489
+ pxor %xmm0,%xmm7
490
+ pxor %xmm0,%xmm8
491
+ aesdec %xmm1,%xmm3
492
+ pxor %xmm0,%xmm9
493
+ movups (%rcx,%rax,1),%xmm0
494
+ addq $16,%rax
495
+ jmp L$dec_loop8_inner
496
+ .p2align 4
497
+ L$dec_loop8:
498
+ aesdec %xmm1,%xmm2
499
+ aesdec %xmm1,%xmm3
500
+ L$dec_loop8_inner:
501
+ aesdec %xmm1,%xmm4
502
+ aesdec %xmm1,%xmm5
503
+ aesdec %xmm1,%xmm6
504
+ aesdec %xmm1,%xmm7
505
+ aesdec %xmm1,%xmm8
506
+ aesdec %xmm1,%xmm9
507
+ L$dec_loop8_enter:
508
+ movups (%rcx,%rax,1),%xmm1
509
+ addq $32,%rax
510
+ aesdec %xmm0,%xmm2
511
+ aesdec %xmm0,%xmm3
512
+ aesdec %xmm0,%xmm4
513
+ aesdec %xmm0,%xmm5
514
+ aesdec %xmm0,%xmm6
515
+ aesdec %xmm0,%xmm7
516
+ aesdec %xmm0,%xmm8
517
+ aesdec %xmm0,%xmm9
518
+ movups -16(%rcx,%rax,1),%xmm0
519
+ jnz L$dec_loop8
520
+
521
+ aesdec %xmm1,%xmm2
522
+ aesdec %xmm1,%xmm3
523
+ aesdec %xmm1,%xmm4
524
+ aesdec %xmm1,%xmm5
525
+ aesdec %xmm1,%xmm6
526
+ aesdec %xmm1,%xmm7
527
+ aesdec %xmm1,%xmm8
528
+ aesdec %xmm1,%xmm9
529
+ aesdeclast %xmm0,%xmm2
530
+ aesdeclast %xmm0,%xmm3
531
+ aesdeclast %xmm0,%xmm4
532
+ aesdeclast %xmm0,%xmm5
533
+ aesdeclast %xmm0,%xmm6
534
+ aesdeclast %xmm0,%xmm7
535
+ aesdeclast %xmm0,%xmm8
536
+ aesdeclast %xmm0,%xmm9
537
+ ret
538
+
539
+
540
+ .globl _aes_hw_ecb_encrypt
541
+ .private_extern _aes_hw_ecb_encrypt
542
+
543
+ .p2align 4
544
+ .alt_entry _aes_hw_ecb_encrypt
545
+ _aes_hw_ecb_encrypt:
546
+
547
+ _CET_ENDBR
548
+ andq $-16,%rdx // if (%rdx<16)
549
+ jz L$ecb_ret // return
550
+
551
+ movl 240(%rcx),%eax // key->rounds
552
+ movups (%rcx),%xmm0
553
+ movq %rcx,%r11 // backup %rcx
554
+ movl %eax,%r10d // backup %eax
555
+ testl %r8d,%r8d // 5th argument
556
+ jz L$ecb_decrypt
557
+ // --------------------------- ECB ENCRYPT ------------------------------
558
+ cmpq $0x80,%rdx // if (%rdx<8*16)
559
+ jb L$ecb_enc_tail // short input
560
+
561
+ movdqu (%rdi),%xmm2 // load 8 input blocks
562
+ movdqu 16(%rdi),%xmm3
563
+ movdqu 32(%rdi),%xmm4
564
+ movdqu 48(%rdi),%xmm5
565
+ movdqu 64(%rdi),%xmm6
566
+ movdqu 80(%rdi),%xmm7
567
+ movdqu 96(%rdi),%xmm8
568
+ movdqu 112(%rdi),%xmm9
569
+ leaq 128(%rdi),%rdi // %rdi+=8*16
570
+ subq $0x80,%rdx // %rdx-=8*16 (can be zero)
571
+ jmp L$ecb_enc_loop8_enter
572
+ .p2align 4
573
+ L$ecb_enc_loop8:
574
+ movups %xmm2,(%rsi) // store 8 output blocks
575
+ movq %r11,%rcx // restore %rcx
576
+ movdqu (%rdi),%xmm2 // load 8 input blocks
577
+ movl %r10d,%eax // restore %eax
578
+ movups %xmm3,16(%rsi)
579
+ movdqu 16(%rdi),%xmm3
580
+ movups %xmm4,32(%rsi)
581
+ movdqu 32(%rdi),%xmm4
582
+ movups %xmm5,48(%rsi)
583
+ movdqu 48(%rdi),%xmm5
584
+ movups %xmm6,64(%rsi)
585
+ movdqu 64(%rdi),%xmm6
586
+ movups %xmm7,80(%rsi)
587
+ movdqu 80(%rdi),%xmm7
588
+ movups %xmm8,96(%rsi)
589
+ movdqu 96(%rdi),%xmm8
590
+ movups %xmm9,112(%rsi)
591
+ leaq 128(%rsi),%rsi // %rsi+=8*16
592
+ movdqu 112(%rdi),%xmm9
593
+ leaq 128(%rdi),%rdi // %rdi+=8*16
594
+ L$ecb_enc_loop8_enter:
595
+
596
+ call _aesni_encrypt8
597
+
598
+ subq $0x80,%rdx
599
+ jnc L$ecb_enc_loop8 // loop if %rdx-=8*16 didn't borrow
600
+
601
+ movups %xmm2,(%rsi) // store 8 output blocks
602
+ movq %r11,%rcx // restore %rcx
603
+ movups %xmm3,16(%rsi)
604
+ movl %r10d,%eax // restore %eax
605
+ movups %xmm4,32(%rsi)
606
+ movups %xmm5,48(%rsi)
607
+ movups %xmm6,64(%rsi)
608
+ movups %xmm7,80(%rsi)
609
+ movups %xmm8,96(%rsi)
610
+ movups %xmm9,112(%rsi)
611
+ leaq 128(%rsi),%rsi // %rsi+=8*16
612
+ addq $0x80,%rdx // restore real remaining %rdx
613
+ jz L$ecb_ret // done if (%rdx==0)
614
+
615
+ L$ecb_enc_tail: // %rdx is less than 8*16
616
+ movups (%rdi),%xmm2
617
+ cmpq $0x20,%rdx
618
+ jb L$ecb_enc_one
619
+ movups 16(%rdi),%xmm3
620
+ je L$ecb_enc_two
621
+ movups 32(%rdi),%xmm4
622
+ cmpq $0x40,%rdx
623
+ jb L$ecb_enc_three
624
+ movups 48(%rdi),%xmm5
625
+ je L$ecb_enc_four
626
+ movups 64(%rdi),%xmm6
627
+ cmpq $0x60,%rdx
628
+ jb L$ecb_enc_five
629
+ movups 80(%rdi),%xmm7
630
+ je L$ecb_enc_six
631
+ movdqu 96(%rdi),%xmm8
632
+ xorps %xmm9,%xmm9
633
+ call _aesni_encrypt8
634
+ movups %xmm2,(%rsi) // store 7 output blocks
635
+ movups %xmm3,16(%rsi)
636
+ movups %xmm4,32(%rsi)
637
+ movups %xmm5,48(%rsi)
638
+ movups %xmm6,64(%rsi)
639
+ movups %xmm7,80(%rsi)
640
+ movups %xmm8,96(%rsi)
641
+ jmp L$ecb_ret
642
+ .p2align 4
643
+ L$ecb_enc_one:
644
+ movups (%rcx),%xmm0
645
+ movups 16(%rcx),%xmm1
646
+ leaq 32(%rcx),%rcx
647
+ xorps %xmm0,%xmm2
648
+ L$oop_enc1_3:
649
+ aesenc %xmm1,%xmm2
650
+ decl %eax
651
+ movups (%rcx),%xmm1
652
+ leaq 16(%rcx),%rcx
653
+ jnz L$oop_enc1_3 // loop body is 16 bytes
654
+ aesenclast %xmm1,%xmm2
655
+ movups %xmm2,(%rsi) // store one output block
656
+ jmp L$ecb_ret
657
+ .p2align 4
658
+ L$ecb_enc_two:
659
+ call _aesni_encrypt2
660
+ movups %xmm2,(%rsi) // store 2 output blocks
661
+ movups %xmm3,16(%rsi)
662
+ jmp L$ecb_ret
663
+ .p2align 4
664
+ L$ecb_enc_three:
665
+ call _aesni_encrypt3
666
+ movups %xmm2,(%rsi) // store 3 output blocks
667
+ movups %xmm3,16(%rsi)
668
+ movups %xmm4,32(%rsi)
669
+ jmp L$ecb_ret
670
+ .p2align 4
671
+ L$ecb_enc_four:
672
+ call _aesni_encrypt4
673
+ movups %xmm2,(%rsi) // store 4 output blocks
674
+ movups %xmm3,16(%rsi)
675
+ movups %xmm4,32(%rsi)
676
+ movups %xmm5,48(%rsi)
677
+ jmp L$ecb_ret
678
+ .p2align 4
679
+ L$ecb_enc_five:
680
+ xorps %xmm7,%xmm7
681
+ call _aesni_encrypt6
682
+ movups %xmm2,(%rsi) // store 5 output blocks
683
+ movups %xmm3,16(%rsi)
684
+ movups %xmm4,32(%rsi)
685
+ movups %xmm5,48(%rsi)
686
+ movups %xmm6,64(%rsi)
687
+ jmp L$ecb_ret
688
+ .p2align 4
689
+ L$ecb_enc_six:
690
+ call _aesni_encrypt6
691
+ movups %xmm2,(%rsi) // store 6 output blocks
692
+ movups %xmm3,16(%rsi)
693
+ movups %xmm4,32(%rsi)
694
+ movups %xmm5,48(%rsi)
695
+ movups %xmm6,64(%rsi)
696
+ movups %xmm7,80(%rsi)
697
+ jmp L$ecb_ret
698
+ // --------------------------- ECB DECRYPT ------------------------------#
699
+ .p2align 4
700
+ L$ecb_decrypt:
701
+ cmpq $0x80,%rdx // if (%rdx<8*16)
702
+ jb L$ecb_dec_tail // short input
703
+
704
+ movdqu (%rdi),%xmm2 // load 8 input blocks
705
+ movdqu 16(%rdi),%xmm3
706
+ movdqu 32(%rdi),%xmm4
707
+ movdqu 48(%rdi),%xmm5
708
+ movdqu 64(%rdi),%xmm6
709
+ movdqu 80(%rdi),%xmm7
710
+ movdqu 96(%rdi),%xmm8
711
+ movdqu 112(%rdi),%xmm9
712
+ leaq 128(%rdi),%rdi // %rdi+=8*16
713
+ subq $0x80,%rdx // %rdx-=8*16 (can be zero)
714
+ jmp L$ecb_dec_loop8_enter
715
+ .p2align 4
716
+ L$ecb_dec_loop8:
717
+ movups %xmm2,(%rsi) // store 8 output blocks
718
+ movq %r11,%rcx // restore %rcx
719
+ movdqu (%rdi),%xmm2 // load 8 input blocks
720
+ movl %r10d,%eax // restore %eax
721
+ movups %xmm3,16(%rsi)
722
+ movdqu 16(%rdi),%xmm3
723
+ movups %xmm4,32(%rsi)
724
+ movdqu 32(%rdi),%xmm4
725
+ movups %xmm5,48(%rsi)
726
+ movdqu 48(%rdi),%xmm5
727
+ movups %xmm6,64(%rsi)
728
+ movdqu 64(%rdi),%xmm6
729
+ movups %xmm7,80(%rsi)
730
+ movdqu 80(%rdi),%xmm7
731
+ movups %xmm8,96(%rsi)
732
+ movdqu 96(%rdi),%xmm8
733
+ movups %xmm9,112(%rsi)
734
+ leaq 128(%rsi),%rsi // %rsi+=8*16
735
+ movdqu 112(%rdi),%xmm9
736
+ leaq 128(%rdi),%rdi // %rdi+=8*16
737
+ L$ecb_dec_loop8_enter:
738
+
739
+ call _aesni_decrypt8
740
+
741
+ movups (%r11),%xmm0
742
+ subq $0x80,%rdx
743
+ jnc L$ecb_dec_loop8 // loop if %rdx-=8*16 didn't borrow
744
+
745
+ movups %xmm2,(%rsi) // store 8 output blocks
746
+ pxor %xmm2,%xmm2 // clear register bank
747
+ movq %r11,%rcx // restore %rcx
748
+ movups %xmm3,16(%rsi)
749
+ pxor %xmm3,%xmm3
750
+ movl %r10d,%eax // restore %eax
751
+ movups %xmm4,32(%rsi)
752
+ pxor %xmm4,%xmm4
753
+ movups %xmm5,48(%rsi)
754
+ pxor %xmm5,%xmm5
755
+ movups %xmm6,64(%rsi)
756
+ pxor %xmm6,%xmm6
757
+ movups %xmm7,80(%rsi)
758
+ pxor %xmm7,%xmm7
759
+ movups %xmm8,96(%rsi)
760
+ pxor %xmm8,%xmm8
761
+ movups %xmm9,112(%rsi)
762
+ pxor %xmm9,%xmm9
763
+ leaq 128(%rsi),%rsi // %rsi+=8*16
764
+ addq $0x80,%rdx // restore real remaining %rdx
765
+ jz L$ecb_ret // done if (%rdx==0)
766
+
767
+ L$ecb_dec_tail:
768
+ movups (%rdi),%xmm2
769
+ cmpq $0x20,%rdx
770
+ jb L$ecb_dec_one
771
+ movups 16(%rdi),%xmm3
772
+ je L$ecb_dec_two
773
+ movups 32(%rdi),%xmm4
774
+ cmpq $0x40,%rdx
775
+ jb L$ecb_dec_three
776
+ movups 48(%rdi),%xmm5
777
+ je L$ecb_dec_four
778
+ movups 64(%rdi),%xmm6
779
+ cmpq $0x60,%rdx
780
+ jb L$ecb_dec_five
781
+ movups 80(%rdi),%xmm7
782
+ je L$ecb_dec_six
783
+ movups 96(%rdi),%xmm8
784
+ movups (%rcx),%xmm0
785
+ xorps %xmm9,%xmm9
786
+ call _aesni_decrypt8
787
+ movups %xmm2,(%rsi) // store 7 output blocks
788
+ pxor %xmm2,%xmm2 // clear register bank
789
+ movups %xmm3,16(%rsi)
790
+ pxor %xmm3,%xmm3
791
+ movups %xmm4,32(%rsi)
792
+ pxor %xmm4,%xmm4
793
+ movups %xmm5,48(%rsi)
794
+ pxor %xmm5,%xmm5
795
+ movups %xmm6,64(%rsi)
796
+ pxor %xmm6,%xmm6
797
+ movups %xmm7,80(%rsi)
798
+ pxor %xmm7,%xmm7
799
+ movups %xmm8,96(%rsi)
800
+ pxor %xmm8,%xmm8
801
+ pxor %xmm9,%xmm9
802
+ jmp L$ecb_ret
803
+ .p2align 4
804
+ L$ecb_dec_one:
805
+ movups (%rcx),%xmm0
806
+ movups 16(%rcx),%xmm1
807
+ leaq 32(%rcx),%rcx
808
+ xorps %xmm0,%xmm2
809
+ L$oop_dec1_4:
810
+ aesdec %xmm1,%xmm2
811
+ decl %eax
812
+ movups (%rcx),%xmm1
813
+ leaq 16(%rcx),%rcx
814
+ jnz L$oop_dec1_4 // loop body is 16 bytes
815
+ aesdeclast %xmm1,%xmm2
816
+ movups %xmm2,(%rsi) // store one output block
817
+ pxor %xmm2,%xmm2 // clear register bank
818
+ jmp L$ecb_ret
819
+ .p2align 4
820
+ L$ecb_dec_two:
821
+ call _aesni_decrypt2
822
+ movups %xmm2,(%rsi) // store 2 output blocks
823
+ pxor %xmm2,%xmm2 // clear register bank
824
+ movups %xmm3,16(%rsi)
825
+ pxor %xmm3,%xmm3
826
+ jmp L$ecb_ret
827
+ .p2align 4
828
+ L$ecb_dec_three:
829
+ call _aesni_decrypt3
830
+ movups %xmm2,(%rsi) // store 3 output blocks
831
+ pxor %xmm2,%xmm2 // clear register bank
832
+ movups %xmm3,16(%rsi)
833
+ pxor %xmm3,%xmm3
834
+ movups %xmm4,32(%rsi)
835
+ pxor %xmm4,%xmm4
836
+ jmp L$ecb_ret
837
+ .p2align 4
838
+ L$ecb_dec_four:
839
+ call _aesni_decrypt4
840
+ movups %xmm2,(%rsi) // store 4 output blocks
841
+ pxor %xmm2,%xmm2 // clear register bank
842
+ movups %xmm3,16(%rsi)
843
+ pxor %xmm3,%xmm3
844
+ movups %xmm4,32(%rsi)
845
+ pxor %xmm4,%xmm4
846
+ movups %xmm5,48(%rsi)
847
+ pxor %xmm5,%xmm5
848
+ jmp L$ecb_ret
849
+ .p2align 4
850
+ L$ecb_dec_five:
851
+ xorps %xmm7,%xmm7
852
+ call _aesni_decrypt6
853
+ movups %xmm2,(%rsi) // store 5 output blocks
854
+ pxor %xmm2,%xmm2 // clear register bank
855
+ movups %xmm3,16(%rsi)
856
+ pxor %xmm3,%xmm3
857
+ movups %xmm4,32(%rsi)
858
+ pxor %xmm4,%xmm4
859
+ movups %xmm5,48(%rsi)
860
+ pxor %xmm5,%xmm5
861
+ movups %xmm6,64(%rsi)
862
+ pxor %xmm6,%xmm6
863
+ pxor %xmm7,%xmm7
864
+ jmp L$ecb_ret
865
+ .p2align 4
866
+ L$ecb_dec_six:
867
+ call _aesni_decrypt6
868
+ movups %xmm2,(%rsi) // store 6 output blocks
869
+ pxor %xmm2,%xmm2 // clear register bank
870
+ movups %xmm3,16(%rsi)
871
+ pxor %xmm3,%xmm3
872
+ movups %xmm4,32(%rsi)
873
+ pxor %xmm4,%xmm4
874
+ movups %xmm5,48(%rsi)
875
+ pxor %xmm5,%xmm5
876
+ movups %xmm6,64(%rsi)
877
+ pxor %xmm6,%xmm6
878
+ movups %xmm7,80(%rsi)
879
+ pxor %xmm7,%xmm7
880
+
881
+ L$ecb_ret:
882
+ xorps %xmm0,%xmm0 // %xmm0
883
+ pxor %xmm1,%xmm1
884
+ ret
885
+
886
+
887
+ .globl _aes_hw_ctr32_encrypt_blocks
888
+ .private_extern _aes_hw_ctr32_encrypt_blocks
889
+
890
+ .p2align 4
891
+ .alt_entry _aes_hw_ctr32_encrypt_blocks
892
+ _aes_hw_ctr32_encrypt_blocks:
893
+
894
+ _CET_ENDBR
895
+ #ifdef BORINGSSL_DISPATCH_TEST
896
+ movb $1,_BORINGSSL_function_hit(%rip)
897
+ #endif
898
+ cmpq $1,%rdx
899
+ jne L$ctr32_bulk
900
+
901
+ // handle single block without allocating stack frame,
902
+ // useful when handling edges
903
+ movups (%r8),%xmm2
904
+ movups (%rdi),%xmm3
905
+ movl 240(%rcx),%edx // key->rounds
906
+ movups (%rcx),%xmm0
907
+ movups 16(%rcx),%xmm1
908
+ leaq 32(%rcx),%rcx
909
+ xorps %xmm0,%xmm2
910
+ L$oop_enc1_5:
911
+ aesenc %xmm1,%xmm2
912
+ decl %edx
913
+ movups (%rcx),%xmm1
914
+ leaq 16(%rcx),%rcx
915
+ jnz L$oop_enc1_5 // loop body is 16 bytes
916
+ aesenclast %xmm1,%xmm2
917
+ pxor %xmm0,%xmm0 // clear register bank
918
+ pxor %xmm1,%xmm1
919
+ xorps %xmm3,%xmm2
920
+ pxor %xmm3,%xmm3
921
+ movups %xmm2,(%rsi)
922
+ xorps %xmm2,%xmm2
923
+ jmp L$ctr32_epilogue
924
+
925
+ .p2align 4
926
+ L$ctr32_bulk:
927
+ leaq (%rsp),%r11 // use %r11 as frame pointer
928
+
929
+ pushq %rbp
930
+
931
+ subq $128,%rsp
932
+ andq $-16,%rsp // Linux kernel stack can be incorrectly seeded
933
+
934
+ // 8 16-byte words on top of stack are counter values
935
+ // xor-ed with zero-round key
936
+
937
+ movdqu (%r8),%xmm2
938
+ movdqu (%rcx),%xmm0
939
+ movl 12(%r8),%r8d // counter LSB
940
+ pxor %xmm0,%xmm2
941
+ movl 12(%rcx),%ebp // 0-round key LSB
942
+ movdqa %xmm2,0(%rsp) // populate counter block
943
+ bswapl %r8d
944
+ movdqa %xmm2,%xmm3
945
+ movdqa %xmm2,%xmm4
946
+ movdqa %xmm2,%xmm5
947
+ movdqa %xmm2,64(%rsp)
948
+ movdqa %xmm2,80(%rsp)
949
+ movdqa %xmm2,96(%rsp)
950
+ movq %rdx,%r10 // about to borrow %rdx
951
+ movdqa %xmm2,112(%rsp)
952
+
953
+ leaq 1(%r8),%rax
954
+ leaq 2(%r8),%rdx
955
+ bswapl %eax
956
+ bswapl %edx
957
+ xorl %ebp,%eax
958
+ xorl %ebp,%edx
959
+ pinsrd $3,%eax,%xmm3
960
+ leaq 3(%r8),%rax
961
+ movdqa %xmm3,16(%rsp)
962
+ pinsrd $3,%edx,%xmm4
963
+ bswapl %eax
964
+ movq %r10,%rdx // restore %rdx
965
+ leaq 4(%r8),%r10
966
+ movdqa %xmm4,32(%rsp)
967
+ xorl %ebp,%eax
968
+ bswapl %r10d
969
+ pinsrd $3,%eax,%xmm5
970
+ xorl %ebp,%r10d
971
+ movdqa %xmm5,48(%rsp)
972
+ leaq 5(%r8),%r9
973
+ movl %r10d,64+12(%rsp)
974
+ bswapl %r9d
975
+ leaq 6(%r8),%r10
976
+ movl 240(%rcx),%eax // key->rounds
977
+ xorl %ebp,%r9d
978
+ bswapl %r10d
979
+ movl %r9d,80+12(%rsp)
980
+ xorl %ebp,%r10d
981
+ leaq 7(%r8),%r9
982
+ movl %r10d,96+12(%rsp)
983
+ bswapl %r9d
984
+ xorl %ebp,%r9d
985
+ movl %r9d,112+12(%rsp)
986
+
987
+ movups 16(%rcx),%xmm1
988
+
989
+ movdqa 64(%rsp),%xmm6
990
+ movdqa 80(%rsp),%xmm7
991
+
992
+ cmpq $8,%rdx // %rdx is in blocks
993
+ jb L$ctr32_tail // short input if (%rdx<8)
994
+
995
+ leaq 128(%rcx),%rcx // size optimization
996
+ subq $8,%rdx // %rdx is biased by -8
997
+ jmp L$ctr32_loop8
998
+
999
+ .p2align 5
1000
+ L$ctr32_loop8:
1001
+ addl $8,%r8d // next counter value
1002
+ movdqa 96(%rsp),%xmm8
1003
+ aesenc %xmm1,%xmm2
1004
+ movl %r8d,%r9d
1005
+ movdqa 112(%rsp),%xmm9
1006
+ aesenc %xmm1,%xmm3
1007
+ bswapl %r9d
1008
+ movups 32-128(%rcx),%xmm0
1009
+ aesenc %xmm1,%xmm4
1010
+ xorl %ebp,%r9d
1011
+ nop
1012
+ aesenc %xmm1,%xmm5
1013
+ movl %r9d,0+12(%rsp) // store next counter value
1014
+ leaq 1(%r8),%r9
1015
+ aesenc %xmm1,%xmm6
1016
+ aesenc %xmm1,%xmm7
1017
+ aesenc %xmm1,%xmm8
1018
+ aesenc %xmm1,%xmm9
1019
+ movups 48-128(%rcx),%xmm1
1020
+ bswapl %r9d
1021
+ aesenc %xmm0,%xmm2
1022
+ aesenc %xmm0,%xmm3
1023
+ xorl %ebp,%r9d
1024
+ .byte 0x66,0x90
1025
+ aesenc %xmm0,%xmm4
1026
+ aesenc %xmm0,%xmm5
1027
+ movl %r9d,16+12(%rsp)
1028
+ leaq 2(%r8),%r9
1029
+ aesenc %xmm0,%xmm6
1030
+ aesenc %xmm0,%xmm7
1031
+ aesenc %xmm0,%xmm8
1032
+ aesenc %xmm0,%xmm9
1033
+ movups 64-128(%rcx),%xmm0
1034
+ bswapl %r9d
1035
+ aesenc %xmm1,%xmm2
1036
+ aesenc %xmm1,%xmm3
1037
+ xorl %ebp,%r9d
1038
+ .byte 0x66,0x90
1039
+ aesenc %xmm1,%xmm4
1040
+ aesenc %xmm1,%xmm5
1041
+ movl %r9d,32+12(%rsp)
1042
+ leaq 3(%r8),%r9
1043
+ aesenc %xmm1,%xmm6
1044
+ aesenc %xmm1,%xmm7
1045
+ aesenc %xmm1,%xmm8
1046
+ aesenc %xmm1,%xmm9
1047
+ movups 80-128(%rcx),%xmm1
1048
+ bswapl %r9d
1049
+ aesenc %xmm0,%xmm2
1050
+ aesenc %xmm0,%xmm3
1051
+ xorl %ebp,%r9d
1052
+ .byte 0x66,0x90
1053
+ aesenc %xmm0,%xmm4
1054
+ aesenc %xmm0,%xmm5
1055
+ movl %r9d,48+12(%rsp)
1056
+ leaq 4(%r8),%r9
1057
+ aesenc %xmm0,%xmm6
1058
+ aesenc %xmm0,%xmm7
1059
+ aesenc %xmm0,%xmm8
1060
+ aesenc %xmm0,%xmm9
1061
+ movups 96-128(%rcx),%xmm0
1062
+ bswapl %r9d
1063
+ aesenc %xmm1,%xmm2
1064
+ aesenc %xmm1,%xmm3
1065
+ xorl %ebp,%r9d
1066
+ .byte 0x66,0x90
1067
+ aesenc %xmm1,%xmm4
1068
+ aesenc %xmm1,%xmm5
1069
+ movl %r9d,64+12(%rsp)
1070
+ leaq 5(%r8),%r9
1071
+ aesenc %xmm1,%xmm6
1072
+ aesenc %xmm1,%xmm7
1073
+ aesenc %xmm1,%xmm8
1074
+ aesenc %xmm1,%xmm9
1075
+ movups 112-128(%rcx),%xmm1
1076
+ bswapl %r9d
1077
+ aesenc %xmm0,%xmm2
1078
+ aesenc %xmm0,%xmm3
1079
+ xorl %ebp,%r9d
1080
+ .byte 0x66,0x90
1081
+ aesenc %xmm0,%xmm4
1082
+ aesenc %xmm0,%xmm5
1083
+ movl %r9d,80+12(%rsp)
1084
+ leaq 6(%r8),%r9
1085
+ aesenc %xmm0,%xmm6
1086
+ aesenc %xmm0,%xmm7
1087
+ aesenc %xmm0,%xmm8
1088
+ aesenc %xmm0,%xmm9
1089
+ movups 128-128(%rcx),%xmm0
1090
+ bswapl %r9d
1091
+ aesenc %xmm1,%xmm2
1092
+ aesenc %xmm1,%xmm3
1093
+ xorl %ebp,%r9d
1094
+ .byte 0x66,0x90
1095
+ aesenc %xmm1,%xmm4
1096
+ aesenc %xmm1,%xmm5
1097
+ movl %r9d,96+12(%rsp)
1098
+ leaq 7(%r8),%r9
1099
+ aesenc %xmm1,%xmm6
1100
+ aesenc %xmm1,%xmm7
1101
+ aesenc %xmm1,%xmm8
1102
+ aesenc %xmm1,%xmm9
1103
+ movups 144-128(%rcx),%xmm1
1104
+ bswapl %r9d
1105
+ aesenc %xmm0,%xmm2
1106
+ aesenc %xmm0,%xmm3
1107
+ aesenc %xmm0,%xmm4
1108
+ xorl %ebp,%r9d
1109
+ movdqu 0(%rdi),%xmm10 // start loading input
1110
+ aesenc %xmm0,%xmm5
1111
+ movl %r9d,112+12(%rsp)
1112
+ cmpl $11,%eax
1113
+ aesenc %xmm0,%xmm6
1114
+ aesenc %xmm0,%xmm7
1115
+ aesenc %xmm0,%xmm8
1116
+ aesenc %xmm0,%xmm9
1117
+ movups 160-128(%rcx),%xmm0
1118
+
1119
+ jb L$ctr32_enc_done
1120
+
1121
+ aesenc %xmm1,%xmm2
1122
+ aesenc %xmm1,%xmm3
1123
+ aesenc %xmm1,%xmm4
1124
+ aesenc %xmm1,%xmm5
1125
+ aesenc %xmm1,%xmm6
1126
+ aesenc %xmm1,%xmm7
1127
+ aesenc %xmm1,%xmm8
1128
+ aesenc %xmm1,%xmm9
1129
+ movups 176-128(%rcx),%xmm1
1130
+
1131
+ aesenc %xmm0,%xmm2
1132
+ aesenc %xmm0,%xmm3
1133
+ aesenc %xmm0,%xmm4
1134
+ aesenc %xmm0,%xmm5
1135
+ aesenc %xmm0,%xmm6
1136
+ aesenc %xmm0,%xmm7
1137
+ aesenc %xmm0,%xmm8
1138
+ aesenc %xmm0,%xmm9
1139
+ movups 192-128(%rcx),%xmm0
1140
+ je L$ctr32_enc_done
1141
+
1142
+ aesenc %xmm1,%xmm2
1143
+ aesenc %xmm1,%xmm3
1144
+ aesenc %xmm1,%xmm4
1145
+ aesenc %xmm1,%xmm5
1146
+ aesenc %xmm1,%xmm6
1147
+ aesenc %xmm1,%xmm7
1148
+ aesenc %xmm1,%xmm8
1149
+ aesenc %xmm1,%xmm9
1150
+ movups 208-128(%rcx),%xmm1
1151
+
1152
+ aesenc %xmm0,%xmm2
1153
+ aesenc %xmm0,%xmm3
1154
+ aesenc %xmm0,%xmm4
1155
+ aesenc %xmm0,%xmm5
1156
+ aesenc %xmm0,%xmm6
1157
+ aesenc %xmm0,%xmm7
1158
+ aesenc %xmm0,%xmm8
1159
+ aesenc %xmm0,%xmm9
1160
+ movups 224-128(%rcx),%xmm0
1161
+ jmp L$ctr32_enc_done
1162
+
1163
+ .p2align 4
1164
+ L$ctr32_enc_done:
1165
+ movdqu 16(%rdi),%xmm11
1166
+ pxor %xmm0,%xmm10 // input^=round[last]
1167
+ movdqu 32(%rdi),%xmm12
1168
+ pxor %xmm0,%xmm11
1169
+ movdqu 48(%rdi),%xmm13
1170
+ pxor %xmm0,%xmm12
1171
+ movdqu 64(%rdi),%xmm14
1172
+ pxor %xmm0,%xmm13
1173
+ movdqu 80(%rdi),%xmm15
1174
+ pxor %xmm0,%xmm14
1175
+ prefetcht0 448(%rdi) // We process 128 bytes (8*16), so to prefetch 1 iteration
1176
+ prefetcht0 512(%rdi) // We need to prefetch 2 64 byte lines
1177
+ pxor %xmm0,%xmm15
1178
+ aesenc %xmm1,%xmm2
1179
+ aesenc %xmm1,%xmm3
1180
+ aesenc %xmm1,%xmm4
1181
+ aesenc %xmm1,%xmm5
1182
+ aesenc %xmm1,%xmm6
1183
+ aesenc %xmm1,%xmm7
1184
+ aesenc %xmm1,%xmm8
1185
+ aesenc %xmm1,%xmm9
1186
+ movdqu 96(%rdi),%xmm1 // borrow %xmm1 for inp[6]
1187
+ leaq 128(%rdi),%rdi // %rdi+=8*16
1188
+
1189
+ aesenclast %xmm10,%xmm2 // is inp[N]^round[last]
1190
+ pxor %xmm0,%xmm1 // borrowed
1191
+ movdqu 112-128(%rdi),%xmm10
1192
+ aesenclast %xmm11,%xmm3
1193
+ pxor %xmm0,%xmm10
1194
+ movdqa 0(%rsp),%xmm11 // load next counter block
1195
+ aesenclast %xmm12,%xmm4
1196
+ aesenclast %xmm13,%xmm5
1197
+ movdqa 16(%rsp),%xmm12
1198
+ movdqa 32(%rsp),%xmm13
1199
+ aesenclast %xmm14,%xmm6
1200
+ aesenclast %xmm15,%xmm7
1201
+ movdqa 48(%rsp),%xmm14
1202
+ movdqa 64(%rsp),%xmm15
1203
+ aesenclast %xmm1,%xmm8
1204
+ movdqa 80(%rsp),%xmm0
1205
+ movups 16-128(%rcx),%xmm1 // real 1st-round key
1206
+ aesenclast %xmm10,%xmm9
1207
+
1208
+ movups %xmm2,(%rsi) // store 8 output blocks
1209
+ movdqa %xmm11,%xmm2
1210
+ movups %xmm3,16(%rsi)
1211
+ movdqa %xmm12,%xmm3
1212
+ movups %xmm4,32(%rsi)
1213
+ movdqa %xmm13,%xmm4
1214
+ movups %xmm5,48(%rsi)
1215
+ movdqa %xmm14,%xmm5
1216
+ movups %xmm6,64(%rsi)
1217
+ movdqa %xmm15,%xmm6
1218
+ movups %xmm7,80(%rsi)
1219
+ movdqa %xmm0,%xmm7
1220
+ movups %xmm8,96(%rsi)
1221
+ movups %xmm9,112(%rsi)
1222
+ leaq 128(%rsi),%rsi // %rsi+=8*16
1223
+
1224
+ subq $8,%rdx
1225
+ jnc L$ctr32_loop8 // loop if %rdx-=8 didn't borrow
1226
+
1227
+ addq $8,%rdx // restore real remaining %rdx
1228
+ jz L$ctr32_done // done if (%rdx==0)
1229
+ leaq -128(%rcx),%rcx
1230
+
1231
+ L$ctr32_tail:
1232
+ // note that at this point %xmm2..5 are populated with
1233
+ // counter values xor-ed with 0-round key
1234
+ leaq 16(%rcx),%rcx
1235
+ cmpq $4,%rdx
1236
+ jb L$ctr32_loop3
1237
+ je L$ctr32_loop4
1238
+
1239
+ // if (%rdx>4) compute 7 E(counter)
1240
+ shll $4,%eax
1241
+ movdqa 96(%rsp),%xmm8
1242
+ pxor %xmm9,%xmm9
1243
+
1244
+ movups 16(%rcx),%xmm0
1245
+ aesenc %xmm1,%xmm2
1246
+ aesenc %xmm1,%xmm3
1247
+ leaq 32-16(%rcx,%rax,1),%rcx // prepare for .Lenc_loop8_enter
1248
+ negq %rax
1249
+ aesenc %xmm1,%xmm4
1250
+ addq $16,%rax // prepare for .Lenc_loop8_enter
1251
+ movups (%rdi),%xmm10
1252
+ aesenc %xmm1,%xmm5
1253
+ aesenc %xmm1,%xmm6
1254
+ movups 16(%rdi),%xmm11 // pre-load input
1255
+ movups 32(%rdi),%xmm12
1256
+ aesenc %xmm1,%xmm7
1257
+ aesenc %xmm1,%xmm8
1258
+
1259
+ call L$enc_loop8_enter
1260
+
1261
+ movdqu 48(%rdi),%xmm13
1262
+ pxor %xmm10,%xmm2
1263
+ movdqu 64(%rdi),%xmm10
1264
+ pxor %xmm11,%xmm3
1265
+ movdqu %xmm2,(%rsi) // store output
1266
+ pxor %xmm12,%xmm4
1267
+ movdqu %xmm3,16(%rsi)
1268
+ pxor %xmm13,%xmm5
1269
+ movdqu %xmm4,32(%rsi)
1270
+ pxor %xmm10,%xmm6
1271
+ movdqu %xmm5,48(%rsi)
1272
+ movdqu %xmm6,64(%rsi)
1273
+ cmpq $6,%rdx
1274
+ jb L$ctr32_done // %rdx was 5, stop store
1275
+
1276
+ movups 80(%rdi),%xmm11
1277
+ xorps %xmm11,%xmm7
1278
+ movups %xmm7,80(%rsi)
1279
+ je L$ctr32_done // %rdx was 6, stop store
1280
+
1281
+ movups 96(%rdi),%xmm12
1282
+ xorps %xmm12,%xmm8
1283
+ movups %xmm8,96(%rsi)
1284
+ jmp L$ctr32_done // %rdx was 7, stop store
1285
+
1286
+ .p2align 5
1287
+ L$ctr32_loop4:
1288
+ aesenc %xmm1,%xmm2
1289
+ leaq 16(%rcx),%rcx
1290
+ decl %eax
1291
+ aesenc %xmm1,%xmm3
1292
+ aesenc %xmm1,%xmm4
1293
+ aesenc %xmm1,%xmm5
1294
+ movups (%rcx),%xmm1
1295
+ jnz L$ctr32_loop4
1296
+ aesenclast %xmm1,%xmm2
1297
+ aesenclast %xmm1,%xmm3
1298
+ movups (%rdi),%xmm10 // load input
1299
+ movups 16(%rdi),%xmm11
1300
+ aesenclast %xmm1,%xmm4
1301
+ aesenclast %xmm1,%xmm5
1302
+ movups 32(%rdi),%xmm12
1303
+ movups 48(%rdi),%xmm13
1304
+
1305
+ xorps %xmm10,%xmm2
1306
+ movups %xmm2,(%rsi) // store output
1307
+ xorps %xmm11,%xmm3
1308
+ movups %xmm3,16(%rsi)
1309
+ pxor %xmm12,%xmm4
1310
+ movdqu %xmm4,32(%rsi)
1311
+ pxor %xmm13,%xmm5
1312
+ movdqu %xmm5,48(%rsi)
1313
+ jmp L$ctr32_done // %rdx was 4, stop store
1314
+
1315
+ .p2align 5
1316
+ L$ctr32_loop3:
1317
+ aesenc %xmm1,%xmm2
1318
+ leaq 16(%rcx),%rcx
1319
+ decl %eax
1320
+ aesenc %xmm1,%xmm3
1321
+ aesenc %xmm1,%xmm4
1322
+ movups (%rcx),%xmm1
1323
+ jnz L$ctr32_loop3
1324
+ aesenclast %xmm1,%xmm2
1325
+ aesenclast %xmm1,%xmm3
1326
+ aesenclast %xmm1,%xmm4
1327
+
1328
+ movups (%rdi),%xmm10 // load input
1329
+ xorps %xmm10,%xmm2
1330
+ movups %xmm2,(%rsi) // store output
1331
+ cmpq $2,%rdx
1332
+ jb L$ctr32_done // %rdx was 1, stop store
1333
+
1334
+ movups 16(%rdi),%xmm11
1335
+ xorps %xmm11,%xmm3
1336
+ movups %xmm3,16(%rsi)
1337
+ je L$ctr32_done // %rdx was 2, stop store
1338
+
1339
+ movups 32(%rdi),%xmm12
1340
+ xorps %xmm12,%xmm4
1341
+ movups %xmm4,32(%rsi) // %rdx was 3, stop store
1342
+
1343
+ L$ctr32_done:
1344
+ xorps %xmm0,%xmm0 // clear register bank
1345
+ xorl %ebp,%ebp
1346
+ pxor %xmm1,%xmm1
1347
+ pxor %xmm2,%xmm2
1348
+ pxor %xmm3,%xmm3
1349
+ pxor %xmm4,%xmm4
1350
+ pxor %xmm5,%xmm5
1351
+ pxor %xmm6,%xmm6
1352
+ pxor %xmm7,%xmm7
1353
+ movaps %xmm0,0(%rsp) // clear stack
1354
+ pxor %xmm8,%xmm8
1355
+ movaps %xmm0,16(%rsp)
1356
+ pxor %xmm9,%xmm9
1357
+ movaps %xmm0,32(%rsp)
1358
+ pxor %xmm10,%xmm10
1359
+ movaps %xmm0,48(%rsp)
1360
+ pxor %xmm11,%xmm11
1361
+ movaps %xmm0,64(%rsp)
1362
+ pxor %xmm12,%xmm12
1363
+ movaps %xmm0,80(%rsp)
1364
+ pxor %xmm13,%xmm13
1365
+ movaps %xmm0,96(%rsp)
1366
+ pxor %xmm14,%xmm14
1367
+ movaps %xmm0,112(%rsp)
1368
+ pxor %xmm15,%xmm15
1369
+ movq -8(%r11),%rbp
1370
+
1371
+ leaq (%r11),%rsp
1372
+
1373
+ L$ctr32_epilogue:
1374
+ ret
1375
+
1376
+
1377
+ .globl _aes_hw_cbc_encrypt
1378
+ .private_extern _aes_hw_cbc_encrypt
1379
+
1380
+ .p2align 4
1381
+ .alt_entry _aes_hw_cbc_encrypt
1382
+ _aes_hw_cbc_encrypt:
1383
+
1384
+ _CET_ENDBR
1385
+ testq %rdx,%rdx // check length
1386
+ jz L$cbc_ret
1387
+
1388
+ movl 240(%rcx),%r10d // key->rounds
1389
+ movq %rcx,%r11 // backup %rcx
1390
+ testl %r9d,%r9d // 6th argument
1391
+ jz L$cbc_decrypt
1392
+ // --------------------------- CBC ENCRYPT ------------------------------
1393
+ movups (%r8),%xmm2 // load iv as initial state
1394
+ movl %r10d,%eax
1395
+ cmpq $16,%rdx
1396
+ jb L$cbc_enc_tail
1397
+ subq $16,%rdx
1398
+ jmp L$cbc_enc_loop
1399
+ .p2align 4
1400
+ L$cbc_enc_loop:
1401
+ movups (%rdi),%xmm3 // load input
1402
+ leaq 16(%rdi),%rdi
1403
+ // xorps %xmm3,%xmm2
1404
+ movups (%rcx),%xmm0
1405
+ movups 16(%rcx),%xmm1
1406
+ xorps %xmm0,%xmm3
1407
+ leaq 32(%rcx),%rcx
1408
+ xorps %xmm3,%xmm2
1409
+ L$oop_enc1_6:
1410
+ aesenc %xmm1,%xmm2
1411
+ decl %eax
1412
+ movups (%rcx),%xmm1
1413
+ leaq 16(%rcx),%rcx
1414
+ jnz L$oop_enc1_6 // loop body is 16 bytes
1415
+ aesenclast %xmm1,%xmm2
1416
+ movl %r10d,%eax // restore %eax
1417
+ movq %r11,%rcx // restore %rcx
1418
+ movups %xmm2,0(%rsi) // store output
1419
+ leaq 16(%rsi),%rsi
1420
+ subq $16,%rdx
1421
+ jnc L$cbc_enc_loop
1422
+ addq $16,%rdx
1423
+ jnz L$cbc_enc_tail
1424
+ pxor %xmm0,%xmm0 // clear register bank
1425
+ pxor %xmm1,%xmm1
1426
+ movups %xmm2,(%r8)
1427
+ pxor %xmm2,%xmm2
1428
+ pxor %xmm3,%xmm3
1429
+ jmp L$cbc_ret
1430
+
1431
+ L$cbc_enc_tail:
1432
+ movq %rdx,%rcx // zaps %rcx
1433
+ xchgq %rdi,%rsi // %rdi is %rsi and %rsi is %rdi now
1434
+ .long 0x9066A4F3 // rep movsb
1435
+ movl $16,%ecx // zero tail
1436
+ subq %rdx,%rcx
1437
+ xorl %eax,%eax
1438
+ .long 0x9066AAF3 // rep stosb
1439
+ leaq -16(%rdi),%rdi // rewind %rsi by 1 block
1440
+ movl %r10d,%eax // restore %eax
1441
+ movq %rdi,%rsi // %rdi and %rsi are the same
1442
+ movq %r11,%rcx // restore %rcx
1443
+ xorq %rdx,%rdx // len=16
1444
+ jmp L$cbc_enc_loop // one more spin
1445
+ // --------------------------- CBC DECRYPT ------------------------------#
1446
+ .p2align 4
1447
+ L$cbc_decrypt:
1448
+ cmpq $16,%rdx
1449
+ jne L$cbc_decrypt_bulk
1450
+
1451
+ // handle single block without allocating stack frame,
1452
+ // useful in ciphertext stealing mode
1453
+ movdqu (%rdi),%xmm2 // load input
1454
+ movdqu (%r8),%xmm3 // load iv
1455
+ movdqa %xmm2,%xmm4 // future iv
1456
+ movups (%rcx),%xmm0
1457
+ movups 16(%rcx),%xmm1
1458
+ leaq 32(%rcx),%rcx
1459
+ xorps %xmm0,%xmm2
1460
+ L$oop_dec1_7:
1461
+ aesdec %xmm1,%xmm2
1462
+ decl %r10d
1463
+ movups (%rcx),%xmm1
1464
+ leaq 16(%rcx),%rcx
1465
+ jnz L$oop_dec1_7 // loop body is 16 bytes
1466
+ aesdeclast %xmm1,%xmm2
1467
+ pxor %xmm0,%xmm0 // clear register bank
1468
+ pxor %xmm1,%xmm1
1469
+ movdqu %xmm4,(%r8) // store iv
1470
+ xorps %xmm3,%xmm2 // ^=iv
1471
+ pxor %xmm3,%xmm3
1472
+ movups %xmm2,(%rsi) // store output
1473
+ pxor %xmm2,%xmm2
1474
+ jmp L$cbc_ret
1475
+ .p2align 4
1476
+ L$cbc_decrypt_bulk:
1477
+ leaq (%rsp),%r11 // frame pointer
1478
+
1479
+ pushq %rbp
1480
+
1481
+ subq $16,%rsp
1482
+ andq $-16,%rsp // Linux kernel stack can be incorrectly seeded
1483
+ movq %rcx,%rbp // [re-]backup %rcx [after reassignment]
1484
+ movups (%r8),%xmm10
1485
+ movl %r10d,%eax
1486
+ cmpq $0x50,%rdx
1487
+ jbe L$cbc_dec_tail
1488
+
1489
+ movups (%rcx),%xmm0
1490
+ movdqu 0(%rdi),%xmm2 // load input
1491
+ movdqu 16(%rdi),%xmm3
1492
+ movdqa %xmm2,%xmm11
1493
+ movdqu 32(%rdi),%xmm4
1494
+ movdqa %xmm3,%xmm12
1495
+ movdqu 48(%rdi),%xmm5
1496
+ movdqa %xmm4,%xmm13
1497
+ movdqu 64(%rdi),%xmm6
1498
+ movdqa %xmm5,%xmm14
1499
+ movdqu 80(%rdi),%xmm7
1500
+ movdqa %xmm6,%xmm15
1501
+ cmpq $0x70,%rdx
1502
+ jbe L$cbc_dec_six_or_seven
1503
+
1504
+ subq $0x70,%rdx // %rdx is biased by -7*16
1505
+ leaq 112(%rcx),%rcx // size optimization
1506
+ jmp L$cbc_dec_loop8_enter
1507
+ .p2align 4
1508
+ L$cbc_dec_loop8:
1509
+ movups %xmm9,(%rsi)
1510
+ leaq 16(%rsi),%rsi
1511
+ L$cbc_dec_loop8_enter:
1512
+ movdqu 96(%rdi),%xmm8
1513
+ pxor %xmm0,%xmm2
1514
+ movdqu 112(%rdi),%xmm9
1515
+ pxor %xmm0,%xmm3
1516
+ movups 16-112(%rcx),%xmm1
1517
+ pxor %xmm0,%xmm4
1518
+ movq $-1,%rbp
1519
+ cmpq $0x70,%rdx // is there at least 0x60 bytes ahead?
1520
+ pxor %xmm0,%xmm5
1521
+ pxor %xmm0,%xmm6
1522
+ pxor %xmm0,%xmm7
1523
+ pxor %xmm0,%xmm8
1524
+
1525
+ aesdec %xmm1,%xmm2
1526
+ pxor %xmm0,%xmm9
1527
+ movups 32-112(%rcx),%xmm0
1528
+ aesdec %xmm1,%xmm3
1529
+ aesdec %xmm1,%xmm4
1530
+ aesdec %xmm1,%xmm5
1531
+ aesdec %xmm1,%xmm6
1532
+ aesdec %xmm1,%xmm7
1533
+ aesdec %xmm1,%xmm8
1534
+ adcq $0,%rbp
1535
+ andq $128,%rbp
1536
+ aesdec %xmm1,%xmm9
1537
+ addq %rdi,%rbp
1538
+ movups 48-112(%rcx),%xmm1
1539
+ aesdec %xmm0,%xmm2
1540
+ aesdec %xmm0,%xmm3
1541
+ aesdec %xmm0,%xmm4
1542
+ aesdec %xmm0,%xmm5
1543
+ aesdec %xmm0,%xmm6
1544
+ aesdec %xmm0,%xmm7
1545
+ aesdec %xmm0,%xmm8
1546
+ aesdec %xmm0,%xmm9
1547
+ movups 64-112(%rcx),%xmm0
1548
+ nop
1549
+ aesdec %xmm1,%xmm2
1550
+ aesdec %xmm1,%xmm3
1551
+ aesdec %xmm1,%xmm4
1552
+ aesdec %xmm1,%xmm5
1553
+ aesdec %xmm1,%xmm6
1554
+ aesdec %xmm1,%xmm7
1555
+ aesdec %xmm1,%xmm8
1556
+ aesdec %xmm1,%xmm9
1557
+ movups 80-112(%rcx),%xmm1
1558
+ nop
1559
+ aesdec %xmm0,%xmm2
1560
+ aesdec %xmm0,%xmm3
1561
+ aesdec %xmm0,%xmm4
1562
+ aesdec %xmm0,%xmm5
1563
+ aesdec %xmm0,%xmm6
1564
+ aesdec %xmm0,%xmm7
1565
+ aesdec %xmm0,%xmm8
1566
+ aesdec %xmm0,%xmm9
1567
+ movups 96-112(%rcx),%xmm0
1568
+ nop
1569
+ aesdec %xmm1,%xmm2
1570
+ aesdec %xmm1,%xmm3
1571
+ aesdec %xmm1,%xmm4
1572
+ aesdec %xmm1,%xmm5
1573
+ aesdec %xmm1,%xmm6
1574
+ aesdec %xmm1,%xmm7
1575
+ aesdec %xmm1,%xmm8
1576
+ aesdec %xmm1,%xmm9
1577
+ movups 112-112(%rcx),%xmm1
1578
+ nop
1579
+ aesdec %xmm0,%xmm2
1580
+ aesdec %xmm0,%xmm3
1581
+ aesdec %xmm0,%xmm4
1582
+ aesdec %xmm0,%xmm5
1583
+ aesdec %xmm0,%xmm6
1584
+ aesdec %xmm0,%xmm7
1585
+ aesdec %xmm0,%xmm8
1586
+ aesdec %xmm0,%xmm9
1587
+ movups 128-112(%rcx),%xmm0
1588
+ nop
1589
+ aesdec %xmm1,%xmm2
1590
+ aesdec %xmm1,%xmm3
1591
+ aesdec %xmm1,%xmm4
1592
+ aesdec %xmm1,%xmm5
1593
+ aesdec %xmm1,%xmm6
1594
+ aesdec %xmm1,%xmm7
1595
+ aesdec %xmm1,%xmm8
1596
+ aesdec %xmm1,%xmm9
1597
+ movups 144-112(%rcx),%xmm1
1598
+ cmpl $11,%eax
1599
+ aesdec %xmm0,%xmm2
1600
+ aesdec %xmm0,%xmm3
1601
+ aesdec %xmm0,%xmm4
1602
+ aesdec %xmm0,%xmm5
1603
+ aesdec %xmm0,%xmm6
1604
+ aesdec %xmm0,%xmm7
1605
+ aesdec %xmm0,%xmm8
1606
+ aesdec %xmm0,%xmm9
1607
+ movups 160-112(%rcx),%xmm0
1608
+ jb L$cbc_dec_done
1609
+ aesdec %xmm1,%xmm2
1610
+ aesdec %xmm1,%xmm3
1611
+ aesdec %xmm1,%xmm4
1612
+ aesdec %xmm1,%xmm5
1613
+ aesdec %xmm1,%xmm6
1614
+ aesdec %xmm1,%xmm7
1615
+ aesdec %xmm1,%xmm8
1616
+ aesdec %xmm1,%xmm9
1617
+ movups 176-112(%rcx),%xmm1
1618
+ nop
1619
+ aesdec %xmm0,%xmm2
1620
+ aesdec %xmm0,%xmm3
1621
+ aesdec %xmm0,%xmm4
1622
+ aesdec %xmm0,%xmm5
1623
+ aesdec %xmm0,%xmm6
1624
+ aesdec %xmm0,%xmm7
1625
+ aesdec %xmm0,%xmm8
1626
+ aesdec %xmm0,%xmm9
1627
+ movups 192-112(%rcx),%xmm0
1628
+ je L$cbc_dec_done
1629
+ aesdec %xmm1,%xmm2
1630
+ aesdec %xmm1,%xmm3
1631
+ aesdec %xmm1,%xmm4
1632
+ aesdec %xmm1,%xmm5
1633
+ aesdec %xmm1,%xmm6
1634
+ aesdec %xmm1,%xmm7
1635
+ aesdec %xmm1,%xmm8
1636
+ aesdec %xmm1,%xmm9
1637
+ movups 208-112(%rcx),%xmm1
1638
+ nop
1639
+ aesdec %xmm0,%xmm2
1640
+ aesdec %xmm0,%xmm3
1641
+ aesdec %xmm0,%xmm4
1642
+ aesdec %xmm0,%xmm5
1643
+ aesdec %xmm0,%xmm6
1644
+ aesdec %xmm0,%xmm7
1645
+ aesdec %xmm0,%xmm8
1646
+ aesdec %xmm0,%xmm9
1647
+ movups 224-112(%rcx),%xmm0
1648
+ jmp L$cbc_dec_done
1649
+ .p2align 4
1650
+ L$cbc_dec_done:
1651
+ aesdec %xmm1,%xmm2
1652
+ aesdec %xmm1,%xmm3
1653
+ pxor %xmm0,%xmm10
1654
+ pxor %xmm0,%xmm11
1655
+ aesdec %xmm1,%xmm4
1656
+ aesdec %xmm1,%xmm5
1657
+ pxor %xmm0,%xmm12
1658
+ pxor %xmm0,%xmm13
1659
+ aesdec %xmm1,%xmm6
1660
+ aesdec %xmm1,%xmm7
1661
+ pxor %xmm0,%xmm14
1662
+ pxor %xmm0,%xmm15
1663
+ aesdec %xmm1,%xmm8
1664
+ aesdec %xmm1,%xmm9
1665
+ movdqu 80(%rdi),%xmm1
1666
+
1667
+ aesdeclast %xmm10,%xmm2
1668
+ movdqu 96(%rdi),%xmm10 // borrow %xmm10
1669
+ pxor %xmm0,%xmm1
1670
+ aesdeclast %xmm11,%xmm3
1671
+ pxor %xmm0,%xmm10
1672
+ movdqu 112(%rdi),%xmm0 // next IV
1673
+ aesdeclast %xmm12,%xmm4
1674
+ leaq 128(%rdi),%rdi
1675
+ movdqu 0(%rbp),%xmm11
1676
+ aesdeclast %xmm13,%xmm5
1677
+ aesdeclast %xmm14,%xmm6
1678
+ movdqu 16(%rbp),%xmm12
1679
+ movdqu 32(%rbp),%xmm13
1680
+ aesdeclast %xmm15,%xmm7
1681
+ aesdeclast %xmm1,%xmm8
1682
+ movdqu 48(%rbp),%xmm14
1683
+ movdqu 64(%rbp),%xmm15
1684
+ aesdeclast %xmm10,%xmm9
1685
+ movdqa %xmm0,%xmm10 // return %xmm10
1686
+ movdqu 80(%rbp),%xmm1
1687
+ movups -112(%rcx),%xmm0
1688
+
1689
+ movups %xmm2,(%rsi) // store output
1690
+ movdqa %xmm11,%xmm2
1691
+ movups %xmm3,16(%rsi)
1692
+ movdqa %xmm12,%xmm3
1693
+ movups %xmm4,32(%rsi)
1694
+ movdqa %xmm13,%xmm4
1695
+ movups %xmm5,48(%rsi)
1696
+ movdqa %xmm14,%xmm5
1697
+ movups %xmm6,64(%rsi)
1698
+ movdqa %xmm15,%xmm6
1699
+ movups %xmm7,80(%rsi)
1700
+ movdqa %xmm1,%xmm7
1701
+ movups %xmm8,96(%rsi)
1702
+ leaq 112(%rsi),%rsi
1703
+
1704
+ subq $0x80,%rdx
1705
+ ja L$cbc_dec_loop8
1706
+
1707
+ movaps %xmm9,%xmm2
1708
+ leaq -112(%rcx),%rcx
1709
+ addq $0x70,%rdx
1710
+ jle L$cbc_dec_clear_tail_collected
1711
+ movups %xmm9,(%rsi)
1712
+ leaq 16(%rsi),%rsi
1713
+ cmpq $0x50,%rdx
1714
+ jbe L$cbc_dec_tail
1715
+
1716
+ movaps %xmm11,%xmm2
1717
+ L$cbc_dec_six_or_seven:
1718
+ cmpq $0x60,%rdx
1719
+ ja L$cbc_dec_seven
1720
+
1721
+ movaps %xmm7,%xmm8
1722
+ call _aesni_decrypt6
1723
+ pxor %xmm10,%xmm2 // ^= IV
1724
+ movaps %xmm8,%xmm10
1725
+ pxor %xmm11,%xmm3
1726
+ movdqu %xmm2,(%rsi)
1727
+ pxor %xmm12,%xmm4
1728
+ movdqu %xmm3,16(%rsi)
1729
+ pxor %xmm3,%xmm3 // clear register bank
1730
+ pxor %xmm13,%xmm5
1731
+ movdqu %xmm4,32(%rsi)
1732
+ pxor %xmm4,%xmm4
1733
+ pxor %xmm14,%xmm6
1734
+ movdqu %xmm5,48(%rsi)
1735
+ pxor %xmm5,%xmm5
1736
+ pxor %xmm15,%xmm7
1737
+ movdqu %xmm6,64(%rsi)
1738
+ pxor %xmm6,%xmm6
1739
+ leaq 80(%rsi),%rsi
1740
+ movdqa %xmm7,%xmm2
1741
+ pxor %xmm7,%xmm7
1742
+ jmp L$cbc_dec_tail_collected
1743
+
1744
+ .p2align 4
1745
+ L$cbc_dec_seven:
1746
+ movups 96(%rdi),%xmm8
1747
+ xorps %xmm9,%xmm9
1748
+ call _aesni_decrypt8
1749
+ movups 80(%rdi),%xmm9
1750
+ pxor %xmm10,%xmm2 // ^= IV
1751
+ movups 96(%rdi),%xmm10
1752
+ pxor %xmm11,%xmm3
1753
+ movdqu %xmm2,(%rsi)
1754
+ pxor %xmm12,%xmm4
1755
+ movdqu %xmm3,16(%rsi)
1756
+ pxor %xmm3,%xmm3 // clear register bank
1757
+ pxor %xmm13,%xmm5
1758
+ movdqu %xmm4,32(%rsi)
1759
+ pxor %xmm4,%xmm4
1760
+ pxor %xmm14,%xmm6
1761
+ movdqu %xmm5,48(%rsi)
1762
+ pxor %xmm5,%xmm5
1763
+ pxor %xmm15,%xmm7
1764
+ movdqu %xmm6,64(%rsi)
1765
+ pxor %xmm6,%xmm6
1766
+ pxor %xmm9,%xmm8
1767
+ movdqu %xmm7,80(%rsi)
1768
+ pxor %xmm7,%xmm7
1769
+ leaq 96(%rsi),%rsi
1770
+ movdqa %xmm8,%xmm2
1771
+ pxor %xmm8,%xmm8
1772
+ pxor %xmm9,%xmm9
1773
+ jmp L$cbc_dec_tail_collected
1774
+
1775
+ L$cbc_dec_tail:
1776
+ movups (%rdi),%xmm2
1777
+ subq $0x10,%rdx
1778
+ jbe L$cbc_dec_one // %rdx is 1*16 or less
1779
+
1780
+ movups 16(%rdi),%xmm3
1781
+ movaps %xmm2,%xmm11
1782
+ subq $0x10,%rdx
1783
+ jbe L$cbc_dec_two // %rdx is 2*16 or less
1784
+
1785
+ movups 32(%rdi),%xmm4
1786
+ movaps %xmm3,%xmm12
1787
+ subq $0x10,%rdx
1788
+ jbe L$cbc_dec_three // %rdx is 3*16 or less
1789
+
1790
+ movups 48(%rdi),%xmm5
1791
+ movaps %xmm4,%xmm13
1792
+ subq $0x10,%rdx
1793
+ jbe L$cbc_dec_four // %rdx is 4*16 or less
1794
+
1795
+ movups 64(%rdi),%xmm6 // %rdx is 5*16 or less
1796
+ movaps %xmm5,%xmm14
1797
+ movaps %xmm6,%xmm15
1798
+ xorps %xmm7,%xmm7
1799
+ call _aesni_decrypt6
1800
+ pxor %xmm10,%xmm2
1801
+ movaps %xmm15,%xmm10
1802
+ pxor %xmm11,%xmm3
1803
+ movdqu %xmm2,(%rsi)
1804
+ pxor %xmm12,%xmm4
1805
+ movdqu %xmm3,16(%rsi)
1806
+ pxor %xmm3,%xmm3 // clear register bank
1807
+ pxor %xmm13,%xmm5
1808
+ movdqu %xmm4,32(%rsi)
1809
+ pxor %xmm4,%xmm4
1810
+ pxor %xmm14,%xmm6
1811
+ movdqu %xmm5,48(%rsi)
1812
+ pxor %xmm5,%xmm5
1813
+ leaq 64(%rsi),%rsi
1814
+ movdqa %xmm6,%xmm2
1815
+ pxor %xmm6,%xmm6
1816
+ pxor %xmm7,%xmm7
1817
+ subq $0x10,%rdx
1818
+ jmp L$cbc_dec_tail_collected
1819
+
1820
+ .p2align 4
1821
+ L$cbc_dec_one:
1822
+ movaps %xmm2,%xmm11
1823
+ movups (%rcx),%xmm0
1824
+ movups 16(%rcx),%xmm1
1825
+ leaq 32(%rcx),%rcx
1826
+ xorps %xmm0,%xmm2
1827
+ L$oop_dec1_8:
1828
+ aesdec %xmm1,%xmm2
1829
+ decl %eax
1830
+ movups (%rcx),%xmm1
1831
+ leaq 16(%rcx),%rcx
1832
+ jnz L$oop_dec1_8 // loop body is 16 bytes
1833
+ aesdeclast %xmm1,%xmm2
1834
+ xorps %xmm10,%xmm2
1835
+ movaps %xmm11,%xmm10
1836
+ jmp L$cbc_dec_tail_collected
1837
+ .p2align 4
1838
+ L$cbc_dec_two:
1839
+ movaps %xmm3,%xmm12
1840
+ call _aesni_decrypt2
1841
+ pxor %xmm10,%xmm2
1842
+ movaps %xmm12,%xmm10
1843
+ pxor %xmm11,%xmm3
1844
+ movdqu %xmm2,(%rsi)
1845
+ movdqa %xmm3,%xmm2
1846
+ pxor %xmm3,%xmm3 // clear register bank
1847
+ leaq 16(%rsi),%rsi
1848
+ jmp L$cbc_dec_tail_collected
1849
+ .p2align 4
1850
+ L$cbc_dec_three:
1851
+ movaps %xmm4,%xmm13
1852
+ call _aesni_decrypt3
1853
+ pxor %xmm10,%xmm2
1854
+ movaps %xmm13,%xmm10
1855
+ pxor %xmm11,%xmm3
1856
+ movdqu %xmm2,(%rsi)
1857
+ pxor %xmm12,%xmm4
1858
+ movdqu %xmm3,16(%rsi)
1859
+ pxor %xmm3,%xmm3 // clear register bank
1860
+ movdqa %xmm4,%xmm2
1861
+ pxor %xmm4,%xmm4
1862
+ leaq 32(%rsi),%rsi
1863
+ jmp L$cbc_dec_tail_collected
1864
+ .p2align 4
1865
+ L$cbc_dec_four:
1866
+ movaps %xmm5,%xmm14
1867
+ call _aesni_decrypt4
1868
+ pxor %xmm10,%xmm2
1869
+ movaps %xmm14,%xmm10
1870
+ pxor %xmm11,%xmm3
1871
+ movdqu %xmm2,(%rsi)
1872
+ pxor %xmm12,%xmm4
1873
+ movdqu %xmm3,16(%rsi)
1874
+ pxor %xmm3,%xmm3 // clear register bank
1875
+ pxor %xmm13,%xmm5
1876
+ movdqu %xmm4,32(%rsi)
1877
+ pxor %xmm4,%xmm4
1878
+ movdqa %xmm5,%xmm2
1879
+ pxor %xmm5,%xmm5
1880
+ leaq 48(%rsi),%rsi
1881
+ jmp L$cbc_dec_tail_collected
1882
+
1883
+ .p2align 4
1884
+ L$cbc_dec_clear_tail_collected:
1885
+ pxor %xmm3,%xmm3 // clear register bank
1886
+ pxor %xmm4,%xmm4
1887
+ pxor %xmm5,%xmm5
1888
+ pxor %xmm6,%xmm6 // %xmm6..9
1889
+ pxor %xmm7,%xmm7
1890
+ pxor %xmm8,%xmm8
1891
+ pxor %xmm9,%xmm9
1892
+ L$cbc_dec_tail_collected:
1893
+ movups %xmm10,(%r8)
1894
+ andq $15,%rdx
1895
+ jnz L$cbc_dec_tail_partial
1896
+ movups %xmm2,(%rsi)
1897
+ pxor %xmm2,%xmm2
1898
+ jmp L$cbc_dec_ret
1899
+ .p2align 4
1900
+ L$cbc_dec_tail_partial:
1901
+ movaps %xmm2,(%rsp)
1902
+ pxor %xmm2,%xmm2
1903
+ movq $16,%rcx
1904
+ movq %rsi,%rdi
1905
+ subq %rdx,%rcx
1906
+ leaq (%rsp),%rsi
1907
+ .long 0x9066A4F3 // rep movsb
1908
+ movdqa %xmm2,(%rsp)
1909
+
1910
+ L$cbc_dec_ret:
1911
+ xorps %xmm0,%xmm0 // %xmm0
1912
+ pxor %xmm1,%xmm1
1913
+ movq -8(%r11),%rbp
1914
+
1915
+ leaq (%r11),%rsp
1916
+
1917
+ L$cbc_ret:
1918
+ ret
1919
+
1920
+
1921
+ .globl _aes_hw_encrypt_key_to_decrypt_key
1922
+ .private_extern _aes_hw_encrypt_key_to_decrypt_key
1923
+
1924
+ .p2align 4
1925
+ .alt_entry _aes_hw_encrypt_key_to_decrypt_key
1926
+ _aes_hw_encrypt_key_to_decrypt_key:
1927
+
1928
+ _CET_ENDBR
1929
+
1930
+ movl 240(%rdi),%esi
1931
+ shll $4,%esi
1932
+
1933
+ leaq 16(%rdi,%rsi,1),%rdx // points at the end of key schedule
1934
+
1935
+ movups (%rdi),%xmm0 // just swap
1936
+ movups (%rdx),%xmm1
1937
+ movups %xmm0,(%rdx)
1938
+ movups %xmm1,(%rdi)
1939
+ leaq 16(%rdi),%rdi
1940
+ leaq -16(%rdx),%rdx
1941
+
1942
+ L$dec_key_inverse:
1943
+ movups (%rdi),%xmm0 // swap and inverse
1944
+ movups (%rdx),%xmm1
1945
+ aesimc %xmm0,%xmm0
1946
+ aesimc %xmm1,%xmm1
1947
+ leaq 16(%rdi),%rdi
1948
+ leaq -16(%rdx),%rdx
1949
+ movups %xmm0,16(%rdx)
1950
+ movups %xmm1,-16(%rdi)
1951
+ cmpq %rdi,%rdx
1952
+ ja L$dec_key_inverse
1953
+
1954
+ movups (%rdi),%xmm0 // inverse middle
1955
+ aesimc %xmm0,%xmm0
1956
+ pxor %xmm1,%xmm1
1957
+ movups %xmm0,(%rdx)
1958
+ pxor %xmm0,%xmm0
1959
+ ret
1960
+
1961
+
1962
+ .globl _aes_hw_set_encrypt_key_base
1963
+ .private_extern _aes_hw_set_encrypt_key_base
1964
+
1965
+ .p2align 4
1966
+ .alt_entry _aes_hw_set_encrypt_key_base
1967
+ _aes_hw_set_encrypt_key_base:
1968
+
1969
+
1970
+ _CET_ENDBR
1971
+ #ifdef BORINGSSL_DISPATCH_TEST
1972
+ movb $1,_BORINGSSL_function_hit+3(%rip)
1973
+ #endif
1974
+ subq $8,%rsp
1975
+
1976
+
1977
+
1978
+ movups (%rdi),%xmm0 // pull first 128 bits of *userKey
1979
+ xorps %xmm4,%xmm4 // low dword of xmm4 is assumed 0
1980
+ leaq 16(%rdx),%rax // %rax is used as modifiable copy of %rdx
1981
+ cmpl $256,%esi
1982
+ je L$14rounds
1983
+ cmpl $192,%esi
1984
+ je L$12rounds
1985
+ cmpl $128,%esi
1986
+ jne L$bad_keybits
1987
+
1988
+ L$10rounds:
1989
+ movl $9,%esi // 10 rounds for 128-bit key
1990
+
1991
+ movups %xmm0,(%rdx) // round 0
1992
+ aeskeygenassist $0x1,%xmm0,%xmm1 // round 1
1993
+ call L$key_expansion_128_cold
1994
+ aeskeygenassist $0x2,%xmm0,%xmm1 // round 2
1995
+ call L$key_expansion_128
1996
+ aeskeygenassist $0x4,%xmm0,%xmm1 // round 3
1997
+ call L$key_expansion_128
1998
+ aeskeygenassist $0x8,%xmm0,%xmm1 // round 4
1999
+ call L$key_expansion_128
2000
+ aeskeygenassist $0x10,%xmm0,%xmm1 // round 5
2001
+ call L$key_expansion_128
2002
+ aeskeygenassist $0x20,%xmm0,%xmm1 // round 6
2003
+ call L$key_expansion_128
2004
+ aeskeygenassist $0x40,%xmm0,%xmm1 // round 7
2005
+ call L$key_expansion_128
2006
+ aeskeygenassist $0x80,%xmm0,%xmm1 // round 8
2007
+ call L$key_expansion_128
2008
+ aeskeygenassist $0x1b,%xmm0,%xmm1 // round 9
2009
+ call L$key_expansion_128
2010
+ aeskeygenassist $0x36,%xmm0,%xmm1 // round 10
2011
+ call L$key_expansion_128
2012
+ movups %xmm0,(%rax)
2013
+ movl %esi,80(%rax) // 240(%rdx)
2014
+ xorl %eax,%eax
2015
+ jmp L$enc_key_ret
2016
+
2017
+ .p2align 4
2018
+ L$12rounds:
2019
+ movq 16(%rdi),%xmm2 // remaining 1/3 of *userKey
2020
+ movl $11,%esi // 12 rounds for 192
2021
+
2022
+ movups %xmm0,(%rdx) // round 0
2023
+ aeskeygenassist $0x1,%xmm2,%xmm1 // round 1,2
2024
+ call L$key_expansion_192a_cold
2025
+ aeskeygenassist $0x2,%xmm2,%xmm1 // round 2,3
2026
+ call L$key_expansion_192b
2027
+ aeskeygenassist $0x4,%xmm2,%xmm1 // round 4,5
2028
+ call L$key_expansion_192a
2029
+ aeskeygenassist $0x8,%xmm2,%xmm1 // round 5,6
2030
+ call L$key_expansion_192b
2031
+ aeskeygenassist $0x10,%xmm2,%xmm1 // round 7,8
2032
+ call L$key_expansion_192a
2033
+ aeskeygenassist $0x20,%xmm2,%xmm1 // round 8,9
2034
+ call L$key_expansion_192b
2035
+ aeskeygenassist $0x40,%xmm2,%xmm1 // round 10,11
2036
+ call L$key_expansion_192a
2037
+ aeskeygenassist $0x80,%xmm2,%xmm1 // round 11,12
2038
+ call L$key_expansion_192b
2039
+ movups %xmm0,(%rax)
2040
+ movl %esi,48(%rax) // 240(%rdx)
2041
+ xorq %rax,%rax
2042
+ jmp L$enc_key_ret
2043
+
2044
+ .p2align 4
2045
+ L$14rounds:
2046
+ movups 16(%rdi),%xmm2 // remaining half of *userKey
2047
+ movl $13,%esi // 14 rounds for 256
2048
+ leaq 16(%rax),%rax
2049
+
2050
+ movups %xmm0,(%rdx) // round 0
2051
+ movups %xmm2,16(%rdx) // round 1
2052
+ aeskeygenassist $0x1,%xmm2,%xmm1 // round 2
2053
+ call L$key_expansion_256a_cold
2054
+ aeskeygenassist $0x1,%xmm0,%xmm1 // round 3
2055
+ call L$key_expansion_256b
2056
+ aeskeygenassist $0x2,%xmm2,%xmm1 // round 4
2057
+ call L$key_expansion_256a
2058
+ aeskeygenassist $0x2,%xmm0,%xmm1 // round 5
2059
+ call L$key_expansion_256b
2060
+ aeskeygenassist $0x4,%xmm2,%xmm1 // round 6
2061
+ call L$key_expansion_256a
2062
+ aeskeygenassist $0x4,%xmm0,%xmm1 // round 7
2063
+ call L$key_expansion_256b
2064
+ aeskeygenassist $0x8,%xmm2,%xmm1 // round 8
2065
+ call L$key_expansion_256a
2066
+ aeskeygenassist $0x8,%xmm0,%xmm1 // round 9
2067
+ call L$key_expansion_256b
2068
+ aeskeygenassist $0x10,%xmm2,%xmm1 // round 10
2069
+ call L$key_expansion_256a
2070
+ aeskeygenassist $0x10,%xmm0,%xmm1 // round 11
2071
+ call L$key_expansion_256b
2072
+ aeskeygenassist $0x20,%xmm2,%xmm1 // round 12
2073
+ call L$key_expansion_256a
2074
+ aeskeygenassist $0x20,%xmm0,%xmm1 // round 13
2075
+ call L$key_expansion_256b
2076
+ aeskeygenassist $0x40,%xmm2,%xmm1 // round 14
2077
+ call L$key_expansion_256a
2078
+ movups %xmm0,(%rax)
2079
+ movl %esi,16(%rax) // 240(%rdx)
2080
+ xorq %rax,%rax
2081
+ jmp L$enc_key_ret
2082
+
2083
+ .p2align 4
2084
+ L$bad_keybits:
2085
+ movq $-2,%rax
2086
+ L$enc_key_ret:
2087
+ pxor %xmm0,%xmm0
2088
+ pxor %xmm1,%xmm1
2089
+ pxor %xmm2,%xmm2
2090
+ pxor %xmm3,%xmm3
2091
+ pxor %xmm4,%xmm4
2092
+ pxor %xmm5,%xmm5
2093
+ addq $8,%rsp
2094
+
2095
+ ret
2096
+
2097
+
2098
+
2099
+
2100
+ .p2align 4
2101
+ L$key_expansion_128:
2102
+
2103
+ movups %xmm0,(%rax)
2104
+ leaq 16(%rax),%rax
2105
+ L$key_expansion_128_cold:
2106
+ shufps $16,%xmm0,%xmm4
2107
+ xorps %xmm4,%xmm0
2108
+ shufps $140,%xmm0,%xmm4
2109
+ xorps %xmm4,%xmm0
2110
+ shufps $255,%xmm1,%xmm1 // critical path
2111
+ xorps %xmm1,%xmm0
2112
+ ret
2113
+
2114
+
2115
+ .p2align 4
2116
+ L$key_expansion_192a:
2117
+
2118
+ movups %xmm0,(%rax)
2119
+ leaq 16(%rax),%rax
2120
+ L$key_expansion_192a_cold:
2121
+ movaps %xmm2,%xmm5
2122
+ L$key_expansion_192b_warm:
2123
+ shufps $16,%xmm0,%xmm4
2124
+ movdqa %xmm2,%xmm3
2125
+ xorps %xmm4,%xmm0
2126
+ shufps $140,%xmm0,%xmm4
2127
+ pslldq $4,%xmm3
2128
+ xorps %xmm4,%xmm0
2129
+ pshufd $85,%xmm1,%xmm1 // critical path
2130
+ pxor %xmm3,%xmm2
2131
+ pxor %xmm1,%xmm0
2132
+ pshufd $255,%xmm0,%xmm3
2133
+ pxor %xmm3,%xmm2
2134
+ ret
2135
+
2136
+
2137
+ .p2align 4
2138
+ L$key_expansion_192b:
2139
+
2140
+ movaps %xmm0,%xmm3
2141
+ shufps $68,%xmm0,%xmm5
2142
+ movups %xmm5,(%rax)
2143
+ shufps $78,%xmm2,%xmm3
2144
+ movups %xmm3,16(%rax)
2145
+ leaq 32(%rax),%rax
2146
+ jmp L$key_expansion_192b_warm
2147
+
2148
+
2149
+ .p2align 4
2150
+ L$key_expansion_256a:
2151
+
2152
+ movups %xmm2,(%rax)
2153
+ leaq 16(%rax),%rax
2154
+ L$key_expansion_256a_cold:
2155
+ shufps $16,%xmm0,%xmm4
2156
+ xorps %xmm4,%xmm0
2157
+ shufps $140,%xmm0,%xmm4
2158
+ xorps %xmm4,%xmm0
2159
+ shufps $255,%xmm1,%xmm1 // critical path
2160
+ xorps %xmm1,%xmm0
2161
+ ret
2162
+
2163
+
2164
+ .p2align 4
2165
+ L$key_expansion_256b:
2166
+
2167
+ movups %xmm0,(%rax)
2168
+ leaq 16(%rax),%rax
2169
+
2170
+ shufps $16,%xmm2,%xmm4
2171
+ xorps %xmm4,%xmm2
2172
+ shufps $140,%xmm2,%xmm4
2173
+ xorps %xmm4,%xmm2
2174
+ shufps $170,%xmm1,%xmm1 // critical path
2175
+ xorps %xmm1,%xmm2
2176
+ ret
2177
+
2178
+
2179
+ .globl _aes_hw_set_encrypt_key_alt
2180
+ .private_extern _aes_hw_set_encrypt_key_alt
2181
+
2182
+ .p2align 4
2183
+ .alt_entry _aes_hw_set_encrypt_key_alt
2184
+ _aes_hw_set_encrypt_key_alt:
2185
+
2186
+
2187
+ _CET_ENDBR
2188
+ #ifdef BORINGSSL_DISPATCH_TEST
2189
+ movb $1,_BORINGSSL_function_hit+3(%rip)
2190
+ #endif
2191
+ subq $8,%rsp
2192
+
2193
+
2194
+
2195
+ movups (%rdi),%xmm0 // pull first 128 bits of *userKey
2196
+ xorps %xmm4,%xmm4 // low dword of xmm4 is assumed 0
2197
+ leaq 16(%rdx),%rax // %rax is used as modifiable copy of %rdx
2198
+ cmpl $256,%esi
2199
+ je L$14rounds_alt
2200
+ cmpl $192,%esi
2201
+ je L$12rounds_alt
2202
+ cmpl $128,%esi
2203
+ jne L$bad_keybits_alt
2204
+
2205
+ movl $9,%esi // 10 rounds for 128-bit key
2206
+ movdqa L$key_rotate(%rip),%xmm5
2207
+ movl $8,%r10d
2208
+ movdqa L$key_rcon1(%rip),%xmm4
2209
+ movdqa %xmm0,%xmm2
2210
+ movdqu %xmm0,(%rdx)
2211
+ jmp L$oop_key128
2212
+
2213
+ .p2align 4
2214
+ L$oop_key128:
2215
+ pshufb %xmm5,%xmm0
2216
+ aesenclast %xmm4,%xmm0
2217
+ pslld $1,%xmm4
2218
+ leaq 16(%rax),%rax
2219
+
2220
+ movdqa %xmm2,%xmm3
2221
+ pslldq $4,%xmm2
2222
+ pxor %xmm2,%xmm3
2223
+ pslldq $4,%xmm2
2224
+ pxor %xmm2,%xmm3
2225
+ pslldq $4,%xmm2
2226
+ pxor %xmm3,%xmm2
2227
+
2228
+ pxor %xmm2,%xmm0
2229
+ movdqu %xmm0,-16(%rax)
2230
+ movdqa %xmm0,%xmm2
2231
+
2232
+ decl %r10d
2233
+ jnz L$oop_key128
2234
+
2235
+ movdqa L$key_rcon1b(%rip),%xmm4
2236
+
2237
+ pshufb %xmm5,%xmm0
2238
+ aesenclast %xmm4,%xmm0
2239
+ pslld $1,%xmm4
2240
+
2241
+ movdqa %xmm2,%xmm3
2242
+ pslldq $4,%xmm2
2243
+ pxor %xmm2,%xmm3
2244
+ pslldq $4,%xmm2
2245
+ pxor %xmm2,%xmm3
2246
+ pslldq $4,%xmm2
2247
+ pxor %xmm3,%xmm2
2248
+
2249
+ pxor %xmm2,%xmm0
2250
+ movdqu %xmm0,(%rax)
2251
+
2252
+ movdqa %xmm0,%xmm2
2253
+ pshufb %xmm5,%xmm0
2254
+ aesenclast %xmm4,%xmm0
2255
+
2256
+ movdqa %xmm2,%xmm3
2257
+ pslldq $4,%xmm2
2258
+ pxor %xmm2,%xmm3
2259
+ pslldq $4,%xmm2
2260
+ pxor %xmm2,%xmm3
2261
+ pslldq $4,%xmm2
2262
+ pxor %xmm3,%xmm2
2263
+
2264
+ pxor %xmm2,%xmm0
2265
+ movdqu %xmm0,16(%rax)
2266
+
2267
+ movl %esi,96(%rax) // 240(%rdx)
2268
+ xorl %eax,%eax
2269
+ jmp L$enc_key_ret_alt
2270
+
2271
+ .p2align 4
2272
+ L$12rounds_alt:
2273
+ movq 16(%rdi),%xmm2 // remaining 1/3 of *userKey
2274
+ movl $11,%esi // 12 rounds for 192
2275
+ movdqa L$key_rotate192(%rip),%xmm5
2276
+ movdqa L$key_rcon1(%rip),%xmm4
2277
+ movl $8,%r10d
2278
+ movdqu %xmm0,(%rdx)
2279
+ jmp L$oop_key192
2280
+
2281
+ .p2align 4
2282
+ L$oop_key192:
2283
+ movq %xmm2,0(%rax)
2284
+ movdqa %xmm2,%xmm1
2285
+ pshufb %xmm5,%xmm2
2286
+ aesenclast %xmm4,%xmm2
2287
+ pslld $1,%xmm4
2288
+ leaq 24(%rax),%rax
2289
+
2290
+ movdqa %xmm0,%xmm3
2291
+ pslldq $4,%xmm0
2292
+ pxor %xmm0,%xmm3
2293
+ pslldq $4,%xmm0
2294
+ pxor %xmm0,%xmm3
2295
+ pslldq $4,%xmm0
2296
+ pxor %xmm3,%xmm0
2297
+
2298
+ pshufd $0xff,%xmm0,%xmm3
2299
+ pxor %xmm1,%xmm3
2300
+ pslldq $4,%xmm1
2301
+ pxor %xmm1,%xmm3
2302
+
2303
+ pxor %xmm2,%xmm0
2304
+ pxor %xmm3,%xmm2
2305
+ movdqu %xmm0,-16(%rax)
2306
+
2307
+ decl %r10d
2308
+ jnz L$oop_key192
2309
+
2310
+ movl %esi,32(%rax) // 240(%rdx)
2311
+ xorl %eax,%eax
2312
+ jmp L$enc_key_ret_alt
2313
+
2314
+ .p2align 4
2315
+ L$14rounds_alt:
2316
+ movups 16(%rdi),%xmm2 // remaining half of *userKey
2317
+ movl $13,%esi // 14 rounds for 256
2318
+ leaq 16(%rax),%rax
2319
+ movdqa L$key_rotate(%rip),%xmm5
2320
+ movdqa L$key_rcon1(%rip),%xmm4
2321
+ movl $7,%r10d
2322
+ movdqu %xmm0,0(%rdx)
2323
+ movdqa %xmm2,%xmm1
2324
+ movdqu %xmm2,16(%rdx)
2325
+ jmp L$oop_key256
2326
+
2327
+ .p2align 4
2328
+ L$oop_key256:
2329
+ pshufb %xmm5,%xmm2
2330
+ aesenclast %xmm4,%xmm2
2331
+
2332
+ movdqa %xmm0,%xmm3
2333
+ pslldq $4,%xmm0
2334
+ pxor %xmm0,%xmm3
2335
+ pslldq $4,%xmm0
2336
+ pxor %xmm0,%xmm3
2337
+ pslldq $4,%xmm0
2338
+ pxor %xmm3,%xmm0
2339
+ pslld $1,%xmm4
2340
+
2341
+ pxor %xmm2,%xmm0
2342
+ movdqu %xmm0,(%rax)
2343
+
2344
+ decl %r10d
2345
+ jz L$done_key256
2346
+
2347
+ pshufd $0xff,%xmm0,%xmm2
2348
+ pxor %xmm3,%xmm3
2349
+ aesenclast %xmm3,%xmm2
2350
+
2351
+ movdqa %xmm1,%xmm3
2352
+ pslldq $4,%xmm1
2353
+ pxor %xmm1,%xmm3
2354
+ pslldq $4,%xmm1
2355
+ pxor %xmm1,%xmm3
2356
+ pslldq $4,%xmm1
2357
+ pxor %xmm3,%xmm1
2358
+
2359
+ pxor %xmm1,%xmm2
2360
+ movdqu %xmm2,16(%rax)
2361
+ leaq 32(%rax),%rax
2362
+ movdqa %xmm2,%xmm1
2363
+
2364
+ jmp L$oop_key256
2365
+
2366
+ L$done_key256:
2367
+ movl %esi,16(%rax) // 240(%rdx)
2368
+ xorl %eax,%eax
2369
+ jmp L$enc_key_ret_alt
2370
+
2371
+ .p2align 4
2372
+ L$bad_keybits_alt:
2373
+ movq $-2,%rax
2374
+ L$enc_key_ret_alt:
2375
+ pxor %xmm0,%xmm0
2376
+ pxor %xmm1,%xmm1
2377
+ pxor %xmm2,%xmm2
2378
+ pxor %xmm3,%xmm3
2379
+ pxor %xmm4,%xmm4
2380
+ pxor %xmm5,%xmm5
2381
+ addq $8,%rsp
2382
+
2383
+ ret
2384
+
2385
+
2386
+
2387
+ .section __DATA,__const
2388
+
2389
+ .p2align 6
2390
+ aesni_constants:
2391
+ L$bswap_mask:
2392
+ .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
2393
+ L$increment32:
2394
+ .long 6,6,6,0
2395
+ L$increment64:
2396
+ .long 1,0,0,0
2397
+ L$xts_magic:
2398
+ .long 0x87,0,1,0
2399
+ L$increment1:
2400
+ .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
2401
+ L$key_rotate:
2402
+ .long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d
2403
+ L$key_rotate192:
2404
+ .long 0x04070605,0x04070605,0x04070605,0x04070605
2405
+ L$key_rcon1:
2406
+ .long 1,1,1,1
2407
+ L$key_rcon1b:
2408
+ .long 0x1b,0x1b,0x1b,0x1b
2409
+
2410
+ .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
2411
+ .p2align 6
2412
+ .text
2413
+ #endif