visaljs 0.0.2 → 0.0.4

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 (1243) hide show
  1. package/README.md +3 -1
  2. package/cli.js +545 -86
  3. package/node/include/js_node.h +30 -5
  4. package/node/include/js_uv.h +36 -0
  5. package/node/prelude/async_hooks.js +0 -0
  6. package/node/prelude/buffer.js +0 -0
  7. package/node/prelude/crypto.js +7 -10
  8. package/node/prelude/dns.js +99 -0
  9. package/node/prelude/dns_promises.js +10 -0
  10. package/node/prelude/events.js +0 -0
  11. package/node/prelude/fs.js +0 -0
  12. package/node/prelude/http.js +1039 -195
  13. package/node/prelude/http2.js +0 -0
  14. package/node/prelude/internal/crypto/asym.js +39 -12
  15. package/node/prelude/internal/crypto/cipher.js +0 -0
  16. package/node/prelude/internal/crypto/dh_groups.js +12 -0
  17. package/node/prelude/internal/crypto/diffiehellman.js +354 -0
  18. package/node/prelude/internal/crypto/hash.js +1 -1
  19. package/node/prelude/internal/crypto/kdf.js +0 -0
  20. package/node/prelude/internal/crypto/key_type.js +3 -0
  21. package/node/prelude/internal/crypto/keys.js +39 -9
  22. package/node/prelude/internal/crypto/random.js +0 -0
  23. package/node/prelude/internal/crypto/util.js +0 -0
  24. package/node/prelude/internal/errors.js +0 -0
  25. package/node/prelude/internal/http_agent.js +249 -0
  26. package/node/prelude/internal/net.js +33 -0
  27. package/node/prelude/internal/querystring.js +0 -0
  28. package/node/prelude/internal/socketaddress.js +249 -0
  29. package/node/prelude/internal/tls/common.js +306 -0
  30. package/node/prelude/internal/tls/wrap.js +1220 -0
  31. package/node/prelude/internal/tls/x509.js +394 -0
  32. package/node/prelude/module.js +0 -0
  33. package/node/prelude/net.js +1082 -50
  34. package/node/prelude/os.js +2 -2
  35. package/node/prelude/path.js +0 -0
  36. package/node/prelude/process.js +0 -0
  37. package/node/prelude/querystring.js +0 -0
  38. package/node/prelude/stream.js +6 -0
  39. package/node/prelude/stream_promises.js +0 -0
  40. package/node/prelude/stream_web.js +0 -0
  41. package/node/prelude/string_decoder.js +0 -0
  42. package/node/prelude/tls.js +141 -0
  43. package/node/prelude/tty.js +0 -0
  44. package/node/prelude/url.js +0 -0
  45. package/node/prelude/util.js +5 -2
  46. package/node/prelude/util_types.js +85 -0
  47. package/node/prelude/zlib.js +0 -0
  48. package/node/src/host_fs.c +10 -2
  49. package/node/src/host_http.c +268 -270
  50. package/node/src/host_loop.c +84 -0
  51. package/node/src/host_net.c +495 -0
  52. package/node/src/host_os.c +0 -0
  53. package/node/src/host_sys.c +54 -26
  54. package/node/third_party/libuv/LICENSE +0 -0
  55. package/node/third_party/libuv/include/uv/aix.h +0 -0
  56. package/node/third_party/libuv/include/uv/bsd.h +0 -0
  57. package/node/third_party/libuv/include/uv/darwin.h +0 -0
  58. package/node/third_party/libuv/include/uv/errno.h +0 -0
  59. package/node/third_party/libuv/include/uv/linux.h +0 -0
  60. package/node/third_party/libuv/include/uv/os390.h +0 -0
  61. package/node/third_party/libuv/include/uv/posix.h +0 -0
  62. package/node/third_party/libuv/include/uv/sunos.h +0 -0
  63. package/node/third_party/libuv/include/uv/threadpool.h +0 -0
  64. package/node/third_party/libuv/include/uv/tree.h +0 -0
  65. package/node/third_party/libuv/include/uv/unix.h +0 -0
  66. package/node/third_party/libuv/include/uv/version.h +0 -0
  67. package/node/third_party/libuv/include/uv/win.h +0 -0
  68. package/node/third_party/libuv/include/uv.h +0 -0
  69. package/node/third_party/libuv/src/fs-poll.c +0 -0
  70. package/node/third_party/libuv/src/heap-inl.h +0 -0
  71. package/node/third_party/libuv/src/idna.c +0 -0
  72. package/node/third_party/libuv/src/idna.h +0 -0
  73. package/node/third_party/libuv/src/inet.c +0 -0
  74. package/node/third_party/libuv/src/queue.h +0 -0
  75. package/node/third_party/libuv/src/random.c +0 -0
  76. package/node/third_party/libuv/src/strscpy.c +0 -0
  77. package/node/third_party/libuv/src/strscpy.h +0 -0
  78. package/node/third_party/libuv/src/strtok.c +0 -0
  79. package/node/third_party/libuv/src/strtok.h +0 -0
  80. package/node/third_party/libuv/src/thread-common.c +0 -0
  81. package/node/third_party/libuv/src/threadpool.c +0 -0
  82. package/node/third_party/libuv/src/timer.c +0 -0
  83. package/node/third_party/libuv/src/unix/async.c +0 -0
  84. package/node/third_party/libuv/src/unix/bsd-ifaddrs.c +0 -0
  85. package/node/third_party/libuv/src/unix/core.c +0 -0
  86. package/node/third_party/libuv/src/unix/darwin-proctitle.c +0 -0
  87. package/node/third_party/libuv/src/unix/darwin-stub.h +0 -0
  88. package/node/third_party/libuv/src/unix/darwin-syscalls.h +0 -0
  89. package/node/third_party/libuv/src/unix/darwin.c +0 -0
  90. package/node/third_party/libuv/src/unix/dl.c +0 -0
  91. package/node/third_party/libuv/src/unix/fs.c +0 -0
  92. package/node/third_party/libuv/src/unix/fsevents.c +0 -0
  93. package/node/third_party/libuv/src/unix/getaddrinfo.c +0 -0
  94. package/node/third_party/libuv/src/unix/getnameinfo.c +0 -0
  95. package/node/third_party/libuv/src/unix/internal.h +0 -0
  96. package/node/third_party/libuv/src/unix/kqueue.c +0 -0
  97. package/node/third_party/libuv/src/unix/linux.c +0 -0
  98. package/node/third_party/libuv/src/unix/loop-watcher.c +0 -0
  99. package/node/third_party/libuv/src/unix/loop.c +0 -0
  100. package/node/third_party/libuv/src/unix/pipe.c +0 -0
  101. package/node/third_party/libuv/src/unix/poll.c +0 -0
  102. package/node/third_party/libuv/src/unix/process.c +0 -0
  103. package/node/third_party/libuv/src/unix/procfs-exepath.c +0 -0
  104. package/node/third_party/libuv/src/unix/proctitle.c +0 -0
  105. package/node/third_party/libuv/src/unix/random-devurandom.c +0 -0
  106. package/node/third_party/libuv/src/unix/random-getentropy.c +0 -0
  107. package/node/third_party/libuv/src/unix/random-getrandom.c +0 -0
  108. package/node/third_party/libuv/src/unix/random-sysctl-linux.c +0 -0
  109. package/node/third_party/libuv/src/unix/signal.c +0 -0
  110. package/node/third_party/libuv/src/unix/stream.c +0 -0
  111. package/node/third_party/libuv/src/unix/tcp.c +0 -0
  112. package/node/third_party/libuv/src/unix/thread.c +0 -0
  113. package/node/third_party/libuv/src/unix/tty.c +0 -0
  114. package/node/third_party/libuv/src/unix/udp.c +0 -0
  115. package/node/third_party/libuv/src/uv-common.c +0 -0
  116. package/node/third_party/libuv/src/uv-common.h +0 -0
  117. package/node/third_party/libuv/src/uv-data-getter-setters.c +0 -0
  118. package/node/third_party/libuv/src/version.c +0 -0
  119. package/node/third_party/libuv/src/win/async.c +98 -0
  120. package/node/third_party/libuv/src/win/atomicops-inl.h +61 -0
  121. package/node/third_party/libuv/src/win/core.c +683 -0
  122. package/node/third_party/libuv/src/win/detect-wakeup.c +56 -0
  123. package/node/third_party/libuv/src/win/dl.c +135 -0
  124. package/node/third_party/libuv/src/win/error.c +183 -0
  125. package/node/third_party/libuv/src/win/fs-event.c +620 -0
  126. package/node/third_party/libuv/src/win/fs-fd-hash-inl.h +200 -0
  127. package/node/third_party/libuv/src/win/fs.c +3774 -0
  128. package/node/third_party/libuv/src/win/getaddrinfo.c +388 -0
  129. package/node/third_party/libuv/src/win/getnameinfo.c +146 -0
  130. package/node/third_party/libuv/src/win/handle-inl.h +180 -0
  131. package/node/third_party/libuv/src/win/handle.c +162 -0
  132. package/node/third_party/libuv/src/win/internal.h +335 -0
  133. package/node/third_party/libuv/src/win/loop-watcher.c +122 -0
  134. package/node/third_party/libuv/src/win/pipe.c +2725 -0
  135. package/node/third_party/libuv/src/win/poll.c +586 -0
  136. package/node/third_party/libuv/src/win/process-stdio.c +419 -0
  137. package/node/third_party/libuv/src/win/process.c +1407 -0
  138. package/node/third_party/libuv/src/win/req-inl.h +214 -0
  139. package/node/third_party/libuv/src/win/signal.c +282 -0
  140. package/node/third_party/libuv/src/win/snprintf.c +42 -0
  141. package/node/third_party/libuv/src/win/stream-inl.h +54 -0
  142. package/node/third_party/libuv/src/win/stream.c +252 -0
  143. package/node/third_party/libuv/src/win/tcp.c +1674 -0
  144. package/node/third_party/libuv/src/win/thread.c +568 -0
  145. package/node/third_party/libuv/src/win/tty.c +2460 -0
  146. package/node/third_party/libuv/src/win/udp.c +1162 -0
  147. package/node/third_party/libuv/src/win/util.c +1750 -0
  148. package/node/third_party/libuv/src/win/winapi.c +144 -0
  149. package/node/third_party/libuv/src/win/winapi.h +4831 -0
  150. package/node/third_party/libuv/src/win/winsock.c +575 -0
  151. package/node/third_party/libuv/src/win/winsock.h +160 -0
  152. package/node/third_party/llhttp/LICENSE +0 -0
  153. package/node/third_party/llhttp/api.c +0 -0
  154. package/node/third_party/llhttp/http.c +0 -0
  155. package/node/third_party/llhttp/llhttp.c +0 -0
  156. package/node/third_party/llhttp/llhttp.h +0 -0
  157. package/package.json +1 -1
  158. package/runtime/include/js_atoms.gen.h +0 -0
  159. package/runtime/include/js_atoms.h +0 -0
  160. package/runtime/include/js_bigint.h +0 -0
  161. package/runtime/include/js_buffer.h +0 -0
  162. package/runtime/include/js_builtins.h +16 -0
  163. package/runtime/include/js_console.h +2 -0
  164. package/runtime/include/js_convert.h +0 -0
  165. package/runtime/include/js_core.def +23 -0
  166. package/runtime/include/js_crypto.h +23 -0
  167. package/runtime/include/js_error.h +0 -0
  168. package/runtime/include/js_exception.h +0 -0
  169. package/runtime/include/js_function.h +0 -0
  170. package/runtime/include/js_gc.h +0 -0
  171. package/runtime/include/js_generator.h +2 -3
  172. package/runtime/include/js_host.h +0 -0
  173. package/runtime/include/js_jobs.h +0 -0
  174. package/runtime/include/js_module.h +0 -0
  175. package/runtime/include/js_object.h +0 -0
  176. package/runtime/include/js_ops.h +0 -0
  177. package/runtime/include/js_promise.h +0 -2
  178. package/runtime/include/js_regexp.h +0 -0
  179. package/runtime/include/js_runtime.h +0 -0
  180. package/runtime/include/js_symbol.h +0 -0
  181. package/runtime/include/js_web.h +0 -0
  182. package/runtime/include/jscell.h +0 -0
  183. package/runtime/include/jscontext.h +0 -0
  184. package/runtime/include/jsnum.h +0 -0
  185. package/runtime/include/jsstring.h +0 -0
  186. package/runtime/include/jsvalue.h +0 -0
  187. package/runtime/src/arguments.c +0 -0
  188. package/runtime/src/array.c +0 -0
  189. package/runtime/src/arraybuffer.c +0 -0
  190. package/runtime/src/async_iter.c +4 -1
  191. package/runtime/src/atoms.c +0 -0
  192. package/runtime/src/base64.c +0 -0
  193. package/runtime/src/bigint.c +0 -0
  194. package/runtime/src/blob.c +0 -0
  195. package/runtime/src/boringssl_support.cc +37 -0
  196. package/runtime/src/buffer.c +0 -0
  197. package/runtime/src/builtin_table.c +8 -0
  198. package/runtime/src/builtins.c +0 -0
  199. package/runtime/src/builtins_util.h +0 -0
  200. package/runtime/src/collections.c +0 -0
  201. package/runtime/src/components.c +10 -0
  202. package/runtime/src/console.c +6 -18
  203. package/runtime/src/convert.c +0 -0
  204. package/runtime/src/core_all.c +1 -0
  205. package/runtime/src/crypto.c +0 -0
  206. package/runtime/src/crypto_asym.c +450 -241
  207. package/runtime/src/crypto_bn.c +91 -0
  208. package/runtime/src/crypto_cipher.c +153 -75
  209. package/runtime/src/crypto_hash.c +68 -53
  210. package/runtime/src/crypto_host.c +0 -0
  211. package/runtime/src/crypto_internal.h +55 -26
  212. package/runtime/src/crypto_kdf.c +0 -0
  213. package/runtime/src/crypto_key.c +0 -0
  214. package/runtime/src/crypto_pkey.c +198 -61
  215. package/runtime/src/crypto_subtle.c +42 -16
  216. package/runtime/src/crypto_tls.c +678 -0
  217. package/runtime/src/date.c +0 -0
  218. package/runtime/src/domexception.c +0 -0
  219. package/runtime/src/elements.c +0 -0
  220. package/runtime/src/elements.h +0 -0
  221. package/runtime/src/encoding.c +0 -0
  222. package/runtime/src/error.c +0 -0
  223. package/runtime/src/events.c +0 -0
  224. package/runtime/src/exception.c +0 -0
  225. package/runtime/src/fetch.c +0 -0
  226. package/runtime/src/function.c +0 -0
  227. package/runtime/src/gc.c +0 -0
  228. package/runtime/src/generator.c +8 -1
  229. package/runtime/src/global.c +2 -4
  230. package/runtime/src/headers.c +0 -0
  231. package/runtime/src/inspect.c +0 -0
  232. package/runtime/src/internal.h +0 -1
  233. package/runtime/src/iterate.c +0 -0
  234. package/runtime/src/iterator.c +0 -0
  235. package/runtime/src/jobs.c +2 -1
  236. package/runtime/src/jsnum.c +0 -0
  237. package/runtime/src/json.c +0 -0
  238. package/runtime/src/math.c +0 -0
  239. package/runtime/src/module.c +0 -0
  240. package/runtime/src/number.c +0 -0
  241. package/runtime/src/object.c +0 -0
  242. package/runtime/src/ops.c +0 -0
  243. package/runtime/src/os.c +0 -0
  244. package/runtime/src/os.h +0 -0
  245. package/runtime/src/process.c +7 -0
  246. package/runtime/src/promise.c +4 -1
  247. package/runtime/src/proxy.c +0 -0
  248. package/runtime/src/reflect.c +0 -0
  249. package/runtime/src/regexp.c +0 -0
  250. package/runtime/src/regexp_anchor.h +0 -0
  251. package/runtime/src/regexp_message.h +0 -0
  252. package/runtime/src/shape.c +0 -0
  253. package/runtime/src/shape.h +0 -0
  254. package/runtime/src/streams.c +0 -0
  255. package/runtime/src/streams.h +0 -0
  256. package/runtime/src/string.c +0 -0
  257. package/runtime/src/string_builtins.c +0 -0
  258. package/runtime/src/symbol.c +0 -0
  259. package/runtime/src/test_host.c +0 -0
  260. package/runtime/src/tls_roots.gen.h +3215 -0
  261. package/runtime/src/typedarray.c +0 -0
  262. package/runtime/src/tznames.gen.h +0 -0
  263. package/runtime/src/uri.c +0 -0
  264. package/runtime/src/url.c +0 -0
  265. package/runtime/src/util_types.c +52 -0
  266. package/runtime/src/weak.c +2 -1
  267. package/runtime/src/web.c +0 -0
  268. package/runtime/src/wrapper.c +0 -0
  269. package/runtime/src/writable.c +0 -0
  270. package/runtime/third_party/ada-idna/LICENSE-MIT +0 -0
  271. package/runtime/third_party/ada-idna/README.md +0 -0
  272. package/runtime/third_party/ada-idna/convert.mjs +0 -0
  273. package/runtime/third_party/ada-idna/idna.c +0 -0
  274. package/runtime/third_party/ada-idna/idna.h +0 -0
  275. package/runtime/third_party/ada-idna/idna_tables.h +0 -0
  276. package/runtime/third_party/boringssl/LICENSE +238 -0
  277. package/runtime/third_party/boringssl/README.md +46 -0
  278. package/runtime/third_party/boringssl/VERSION +1 -0
  279. package/runtime/third_party/boringssl/crypto/aes/aes.cc +44 -0
  280. package/runtime/third_party/boringssl/crypto/armv8_feature_parsing.h +67 -0
  281. package/runtime/third_party/boringssl/crypto/asn1/a_bitstr.cc +297 -0
  282. package/runtime/third_party/boringssl/crypto/asn1/a_bool.cc +50 -0
  283. package/runtime/third_party/boringssl/crypto/asn1/a_d2i_fp.cc +47 -0
  284. package/runtime/third_party/boringssl/crypto/asn1/a_dup.cc +42 -0
  285. package/runtime/third_party/boringssl/crypto/asn1/a_gentm.cc +130 -0
  286. package/runtime/third_party/boringssl/crypto/asn1/a_i2d_fp.cc +44 -0
  287. package/runtime/third_party/boringssl/crypto/asn1/a_int.cc +467 -0
  288. package/runtime/third_party/boringssl/crypto/asn1/a_mbstr.cc +242 -0
  289. package/runtime/third_party/boringssl/crypto/asn1/a_object.cc +191 -0
  290. package/runtime/third_party/boringssl/crypto/asn1/a_octet.cc +32 -0
  291. package/runtime/third_party/boringssl/crypto/asn1/a_strex.cc +411 -0
  292. package/runtime/third_party/boringssl/crypto/asn1/a_strnid.cc +208 -0
  293. package/runtime/third_party/boringssl/crypto/asn1/a_time.cc +248 -0
  294. package/runtime/third_party/boringssl/crypto/asn1/a_type.cc +467 -0
  295. package/runtime/third_party/boringssl/crypto/asn1/a_utctm.cc +128 -0
  296. package/runtime/third_party/boringssl/crypto/asn1/asn1_lib.cc +453 -0
  297. package/runtime/third_party/boringssl/crypto/asn1/asn1_par.cc +61 -0
  298. package/runtime/third_party/boringssl/crypto/asn1/asn_pack.cc +56 -0
  299. package/runtime/third_party/boringssl/crypto/asn1/f_int.cc +63 -0
  300. package/runtime/third_party/boringssl/crypto/asn1/f_string.cc +52 -0
  301. package/runtime/third_party/boringssl/crypto/asn1/internal.h +430 -0
  302. package/runtime/third_party/boringssl/crypto/asn1/posix_time.cc +244 -0
  303. package/runtime/third_party/boringssl/crypto/asn1/tasn_dec.cc +611 -0
  304. package/runtime/third_party/boringssl/crypto/asn1/tasn_enc.cc +348 -0
  305. package/runtime/third_party/boringssl/crypto/asn1/tasn_fre.cc +163 -0
  306. package/runtime/third_party/boringssl/crypto/asn1/tasn_new.cc +274 -0
  307. package/runtime/third_party/boringssl/crypto/asn1/tasn_typ.cc +92 -0
  308. package/runtime/third_party/boringssl/crypto/asn1/tasn_utl.cc +218 -0
  309. package/runtime/third_party/boringssl/crypto/base64/base64.cc +433 -0
  310. package/runtime/third_party/boringssl/crypto/bcm_support.h +62 -0
  311. package/runtime/third_party/boringssl/crypto/bio/bio.cc +715 -0
  312. package/runtime/third_party/boringssl/crypto/bio/bio_mem.cc +260 -0
  313. package/runtime/third_party/boringssl/crypto/bio/connect.cc +463 -0
  314. package/runtime/third_party/boringssl/crypto/bio/errno.cc +52 -0
  315. package/runtime/third_party/boringssl/crypto/bio/fd.cc +193 -0
  316. package/runtime/third_party/boringssl/crypto/bio/file.cc +283 -0
  317. package/runtime/third_party/boringssl/crypto/bio/hexdump.cc +154 -0
  318. package/runtime/third_party/boringssl/crypto/bio/internal.h +128 -0
  319. package/runtime/third_party/boringssl/crypto/bio/pair.cc +426 -0
  320. package/runtime/third_party/boringssl/crypto/bio/printf.cc +59 -0
  321. package/runtime/third_party/boringssl/crypto/bio/socket.cc +210 -0
  322. package/runtime/third_party/boringssl/crypto/bio/socket_helper.cc +179 -0
  323. package/runtime/third_party/boringssl/crypto/blake2/blake2.cc +173 -0
  324. package/runtime/third_party/boringssl/crypto/bn/bn_asn1.cc +57 -0
  325. package/runtime/third_party/boringssl/crypto/bn/convert.cc +409 -0
  326. package/runtime/third_party/boringssl/crypto/bn/div.cc +102 -0
  327. package/runtime/third_party/boringssl/crypto/bn/exponentiation.cc +168 -0
  328. package/runtime/third_party/boringssl/crypto/bn/sqrt.cc +93 -0
  329. package/runtime/third_party/boringssl/crypto/buf/buf.cc +119 -0
  330. package/runtime/third_party/boringssl/crypto/bytestring/asn1_compat.cc +54 -0
  331. package/runtime/third_party/boringssl/crypto/bytestring/ber.cc +268 -0
  332. package/runtime/third_party/boringssl/crypto/bytestring/cbb.cc +787 -0
  333. package/runtime/third_party/boringssl/crypto/bytestring/cbs.cc +977 -0
  334. package/runtime/third_party/boringssl/crypto/bytestring/internal.h +134 -0
  335. package/runtime/third_party/boringssl/crypto/bytestring/unicode.cc +156 -0
  336. package/runtime/third_party/boringssl/crypto/chacha/chacha.cc +226 -0
  337. package/runtime/third_party/boringssl/crypto/chacha/internal.h +103 -0
  338. package/runtime/third_party/boringssl/crypto/cipher/derive_key.cc +106 -0
  339. package/runtime/third_party/boringssl/crypto/cipher/e_aesctrhmac.cc +294 -0
  340. package/runtime/third_party/boringssl/crypto/cipher/e_aeseax.cc +351 -0
  341. package/runtime/third_party/boringssl/crypto/cipher/e_aesgcmsiv.cc +918 -0
  342. package/runtime/third_party/boringssl/crypto/cipher/e_chacha20poly1305.cc +404 -0
  343. package/runtime/third_party/boringssl/crypto/cipher/e_des.cc +214 -0
  344. package/runtime/third_party/boringssl/crypto/cipher/e_null.cc +55 -0
  345. package/runtime/third_party/boringssl/crypto/cipher/e_rc2.cc +432 -0
  346. package/runtime/third_party/boringssl/crypto/cipher/e_rc4.cc +56 -0
  347. package/runtime/third_party/boringssl/crypto/cipher/e_tls.cc +615 -0
  348. package/runtime/third_party/boringssl/crypto/cipher/get_cipher.cc +85 -0
  349. package/runtime/third_party/boringssl/crypto/cipher/internal.h +399 -0
  350. package/runtime/third_party/boringssl/crypto/cipher/tls_cbc.cc +476 -0
  351. package/runtime/third_party/boringssl/crypto/cms/cms.cc +178 -0
  352. package/runtime/third_party/boringssl/crypto/conf/conf.cc +637 -0
  353. package/runtime/third_party/boringssl/crypto/conf/internal.h +54 -0
  354. package/runtime/third_party/boringssl/crypto/cpu_aarch64_apple.cc +76 -0
  355. package/runtime/third_party/boringssl/crypto/cpu_aarch64_fuchsia.cc +58 -0
  356. package/runtime/third_party/boringssl/crypto/cpu_aarch64_linux.cc +66 -0
  357. package/runtime/third_party/boringssl/crypto/cpu_aarch64_openbsd.cc +45 -0
  358. package/runtime/third_party/boringssl/crypto/cpu_aarch64_sysreg.cc +66 -0
  359. package/runtime/third_party/boringssl/crypto/cpu_aarch64_win.cc +52 -0
  360. package/runtime/third_party/boringssl/crypto/cpu_arm_freebsd.cc +55 -0
  361. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.cc +173 -0
  362. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.h +141 -0
  363. package/runtime/third_party/boringssl/crypto/cpu_intel.cc +287 -0
  364. package/runtime/third_party/boringssl/crypto/crypto.cc +152 -0
  365. package/runtime/third_party/boringssl/crypto/curve25519/asm/x25519-asm-arm.S +2124 -0
  366. package/runtime/third_party/boringssl/crypto/curve25519/cpace.cc +227 -0
  367. package/runtime/third_party/boringssl/crypto/curve25519/curve25519.cc +2436 -0
  368. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_64_adx.cc +18 -0
  369. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_tables.h +3264 -0
  370. package/runtime/third_party/boringssl/crypto/curve25519/internal.h +202 -0
  371. package/runtime/third_party/boringssl/crypto/curve25519/spake25519.cc +532 -0
  372. package/runtime/third_party/boringssl/crypto/des/des.cc +837 -0
  373. package/runtime/third_party/boringssl/crypto/des/internal.h +144 -0
  374. package/runtime/third_party/boringssl/crypto/dh/dh_asn1.cc +109 -0
  375. package/runtime/third_party/boringssl/crypto/dh/params.cc +411 -0
  376. package/runtime/third_party/boringssl/crypto/digest/digest_extra.cc +361 -0
  377. package/runtime/third_party/boringssl/crypto/dsa/dsa.cc +922 -0
  378. package/runtime/third_party/boringssl/crypto/dsa/dsa_asn1.cc +306 -0
  379. package/runtime/third_party/boringssl/crypto/dsa/internal.h +56 -0
  380. package/runtime/third_party/boringssl/crypto/ec/ec_asn1.cc +542 -0
  381. package/runtime/third_party/boringssl/crypto/ec/ec_derive.cc +94 -0
  382. package/runtime/third_party/boringssl/crypto/ec/hash_to_curve.cc +773 -0
  383. package/runtime/third_party/boringssl/crypto/ec/internal.h +114 -0
  384. package/runtime/third_party/boringssl/crypto/ecdh/ecdh.cc +75 -0
  385. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.cc +337 -0
  386. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_p1363.cc +54 -0
  387. package/runtime/third_party/boringssl/crypto/engine/engine.cc +95 -0
  388. package/runtime/third_party/boringssl/crypto/err/err.cc +820 -0
  389. package/runtime/third_party/boringssl/crypto/err/internal.h +45 -0
  390. package/runtime/third_party/boringssl/crypto/evp/evp.cc +454 -0
  391. package/runtime/third_party/boringssl/crypto/evp/evp_asn1.cc +439 -0
  392. package/runtime/third_party/boringssl/crypto/evp/evp_ctx.cc +541 -0
  393. package/runtime/third_party/boringssl/crypto/evp/evp_kem.cc +101 -0
  394. package/runtime/third_party/boringssl/crypto/evp/internal.h +427 -0
  395. package/runtime/third_party/boringssl/crypto/evp/p_dh.cc +326 -0
  396. package/runtime/third_party/boringssl/crypto/evp/p_dsa.cc +333 -0
  397. package/runtime/third_party/boringssl/crypto/evp/p_ec.cc +736 -0
  398. package/runtime/third_party/boringssl/crypto/evp/p_ed25519.cc +359 -0
  399. package/runtime/third_party/boringssl/crypto/evp/p_hkdf.cc +204 -0
  400. package/runtime/third_party/boringssl/crypto/evp/p_mldsa.cc +549 -0
  401. package/runtime/third_party/boringssl/crypto/evp/p_mlkem.cc +510 -0
  402. package/runtime/third_party/boringssl/crypto/evp/p_rsa.cc +1185 -0
  403. package/runtime/third_party/boringssl/crypto/evp/p_x25519.cc +371 -0
  404. package/runtime/third_party/boringssl/crypto/evp/p_xwing.cc +300 -0
  405. package/runtime/third_party/boringssl/crypto/evp/pbkdf.cc +105 -0
  406. package/runtime/third_party/boringssl/crypto/evp/print.cc +287 -0
  407. package/runtime/third_party/boringssl/crypto/evp/scrypt.cc +218 -0
  408. package/runtime/third_party/boringssl/crypto/evp/sign.cc +95 -0
  409. package/runtime/third_party/boringssl/crypto/ex_data.cc +140 -0
  410. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes.cc.inc +208 -0
  411. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes_nohw.cc.inc +1279 -0
  412. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cbc.cc.inc +132 -0
  413. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cfb.cc.inc +168 -0
  414. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ctr.cc.inc +102 -0
  415. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm.cc.inc +614 -0
  416. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm_nohw.cc.inc +304 -0
  417. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/internal.h +590 -0
  418. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/key_wrap.cc.inc +211 -0
  419. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.cc.inc +97 -0
  420. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ofb.cc.inc +55 -0
  421. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm.cc +288 -0
  422. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm_interface.h +953 -0
  423. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/add.cc.inc +276 -0
  424. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +573 -0
  425. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bn.cc.inc +377 -0
  426. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bytes.cc.inc +230 -0
  427. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/cmp.cc.inc +161 -0
  428. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/ctx.cc.inc +127 -0
  429. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div.cc.inc +738 -0
  430. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div_extra.cc.inc +90 -0
  431. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.cc.inc +743 -0
  432. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd.cc.inc +281 -0
  433. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd_extra.cc.inc +327 -0
  434. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/generic.cc.inc +579 -0
  435. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/internal.h +810 -0
  436. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/jacobi.cc.inc +101 -0
  437. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery.cc.inc +408 -0
  438. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery_inv.cc.inc +179 -0
  439. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/mul.cc.inc +347 -0
  440. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/prime.cc.inc +931 -0
  441. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/random.cc.inc +261 -0
  442. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.cc.inc +144 -0
  443. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.h +109 -0
  444. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/shift.cc.inc +317 -0
  445. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/sqrt.cc.inc +370 -0
  446. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/aead.cc.inc +619 -0
  447. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/cipher.cc.inc +837 -0
  448. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.cc.inc +1240 -0
  449. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aesccm.cc.inc +440 -0
  450. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/internal.h +461 -0
  451. package/runtime/third_party/boringssl/crypto/fipsmodule/cmac/cmac.cc.inc +293 -0
  452. package/runtime/third_party/boringssl/crypto/fipsmodule/delocate.h +95 -0
  453. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/check.cc.inc +198 -0
  454. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/dh.cc.inc +401 -0
  455. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/internal.h +63 -0
  456. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digest.cc.inc +221 -0
  457. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digests.cc.inc +184 -0
  458. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/internal.h +72 -0
  459. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/md32_common.h +166 -0
  460. package/runtime/third_party/boringssl/crypto/fipsmodule/digestsign/digestsign.cc.inc +230 -0
  461. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/builtin_curves.h +277 -0
  462. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec.cc.inc +1024 -0
  463. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_key.cc.inc +536 -0
  464. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.cc.inc +379 -0
  465. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/felem.cc.inc +250 -0
  466. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/internal.h +752 -0
  467. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/oct.cc.inc +174 -0
  468. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz-table.h +9502 -0
  469. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.cc.inc +740 -0
  470. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.h +207 -0
  471. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256.cc.inc +578 -0
  472. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256_table.h +297 -0
  473. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/scalar.cc.inc +184 -0
  474. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple.cc.inc +246 -0
  475. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.cc.inc +274 -0
  476. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/util.cc.inc +258 -0
  477. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/wnaf.cc.inc +224 -0
  478. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdh/ecdh.cc.inc +91 -0
  479. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +288 -0
  480. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/internal.h +57 -0
  481. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/internal.h +38 -0
  482. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/jitter.cc.inc +487 -0
  483. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/sha512.cc.inc +329 -0
  484. package/runtime/third_party/boringssl/crypto/fipsmodule/fips_shared_support.cc +28 -0
  485. package/runtime/third_party/boringssl/crypto/fipsmodule/hkdf/hkdf.cc.inc +114 -0
  486. package/runtime/third_party/boringssl/crypto/fipsmodule/hmac/hmac.cc.inc +218 -0
  487. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/internal.h +165 -0
  488. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/keccak.cc.inc +647 -0
  489. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/fips_known_values.inc +1345 -0
  490. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/mldsa.cc.inc +3323 -0
  491. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/fips_known_values.inc +411 -0
  492. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/mlkem.cc.inc +1856 -0
  493. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/android_entropy_client.cc.inc +82 -0
  494. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/ctrdrbg.cc.inc +401 -0
  495. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/internal.h +99 -0
  496. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/rand.cc.inc +486 -0
  497. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/internal.h +167 -0
  498. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/padding.cc.inc +371 -0
  499. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa.cc.inc +996 -0
  500. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.cc.inc +1000 -0
  501. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/fips.cc.inc +129 -0
  502. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/self_check.cc.inc +1093 -0
  503. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/internal.h +112 -0
  504. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +330 -0
  505. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/internal.h +205 -0
  506. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha1.cc.inc +404 -0
  507. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha256.cc.inc +315 -0
  508. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha512.cc.inc +473 -0
  509. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/address.h +144 -0
  510. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fips_known_values.inc +674 -0
  511. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.cc.inc +179 -0
  512. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.h +48 -0
  513. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.cc.inc +164 -0
  514. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.h +58 -0
  515. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/params.h +178 -0
  516. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +690 -0
  517. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.cc.inc +326 -0
  518. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.h +71 -0
  519. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.cc.inc +172 -0
  520. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.h +40 -0
  521. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/internal.h +33 -0
  522. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/kdf.cc.inc +180 -0
  523. package/runtime/third_party/boringssl/crypto/fuzzer_mode.cc +30 -0
  524. package/runtime/third_party/boringssl/crypto/hpke/hpke.cc +1514 -0
  525. package/runtime/third_party/boringssl/crypto/hrss/asm/poly_rq_mul.S +8489 -0
  526. package/runtime/third_party/boringssl/crypto/hrss/hrss.cc +2189 -0
  527. package/runtime/third_party/boringssl/crypto/hrss/internal.h +64 -0
  528. package/runtime/third_party/boringssl/crypto/internal.h +1767 -0
  529. package/runtime/third_party/boringssl/crypto/lhash/internal.h +222 -0
  530. package/runtime/third_party/boringssl/crypto/lhash/lhash.cc +312 -0
  531. package/runtime/third_party/boringssl/crypto/md4/md4.cc +207 -0
  532. package/runtime/third_party/boringssl/crypto/md5/internal.h +34 -0
  533. package/runtime/third_party/boringssl/crypto/md5/md5.cc +255 -0
  534. package/runtime/third_party/boringssl/crypto/mem.cc +577 -0
  535. package/runtime/third_party/boringssl/crypto/mem_internal.h +706 -0
  536. package/runtime/third_party/boringssl/crypto/mldsa/mldsa.cc +296 -0
  537. package/runtime/third_party/boringssl/crypto/mlkem/mlkem.cc +108 -0
  538. package/runtime/third_party/boringssl/crypto/obj/obj.cc +494 -0
  539. package/runtime/third_party/boringssl/crypto/obj/obj_dat.h +11722 -0
  540. package/runtime/third_party/boringssl/crypto/obj/obj_xref.cc +83 -0
  541. package/runtime/third_party/boringssl/crypto/params_internal.h +30 -0
  542. package/runtime/third_party/boringssl/crypto/pem/internal.h +135 -0
  543. package/runtime/third_party/boringssl/crypto/pem/pem_all.cc +153 -0
  544. package/runtime/third_party/boringssl/crypto/pem/pem_info.cc +250 -0
  545. package/runtime/third_party/boringssl/crypto/pem/pem_lib.cc +707 -0
  546. package/runtime/third_party/boringssl/crypto/pem/pem_oth.cc +45 -0
  547. package/runtime/third_party/boringssl/crypto/pem/pem_pk8.cc +211 -0
  548. package/runtime/third_party/boringssl/crypto/pem/pem_pkey.cc +147 -0
  549. package/runtime/third_party/boringssl/crypto/pem/pem_x509.cc +25 -0
  550. package/runtime/third_party/boringssl/crypto/pem/pem_xaux.cc +25 -0
  551. package/runtime/third_party/boringssl/crypto/pkcs7/internal.h +67 -0
  552. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7.cc +198 -0
  553. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7_x509.cc +527 -0
  554. package/runtime/third_party/boringssl/crypto/pkcs8/internal.h +98 -0
  555. package/runtime/third_party/boringssl/crypto/pkcs8/p5_pbev2.cc +286 -0
  556. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8.cc +473 -0
  557. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8_x509.cc +1328 -0
  558. package/runtime/third_party/boringssl/crypto/poly1305/internal.h +54 -0
  559. package/runtime/third_party/boringssl/crypto/poly1305/poly1305.cc +315 -0
  560. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm.cc +294 -0
  561. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm_asm.S +2017 -0
  562. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_vec.cc +853 -0
  563. package/runtime/third_party/boringssl/crypto/pool/internal.h +95 -0
  564. package/runtime/third_party/boringssl/crypto/pool/pool.cc +282 -0
  565. package/runtime/third_party/boringssl/crypto/rand/deterministic.cc +58 -0
  566. package/runtime/third_party/boringssl/crypto/rand/fork_detect.cc +222 -0
  567. package/runtime/third_party/boringssl/crypto/rand/forkunsafe.cc +44 -0
  568. package/runtime/third_party/boringssl/crypto/rand/getentropy.cc +53 -0
  569. package/runtime/third_party/boringssl/crypto/rand/internal.h +67 -0
  570. package/runtime/third_party/boringssl/crypto/rand/ios.cc +35 -0
  571. package/runtime/third_party/boringssl/crypto/rand/rand.cc +79 -0
  572. package/runtime/third_party/boringssl/crypto/rand/trusty.cc +39 -0
  573. package/runtime/third_party/boringssl/crypto/rand/urandom.cc +149 -0
  574. package/runtime/third_party/boringssl/crypto/rand/windows.cc +91 -0
  575. package/runtime/third_party/boringssl/crypto/rc4/rc4.cc +56 -0
  576. package/runtime/third_party/boringssl/crypto/refcount.cc +49 -0
  577. package/runtime/third_party/boringssl/crypto/rsa/internal.h +51 -0
  578. package/runtime/third_party/boringssl/crypto/rsa/rsa_asn1.cc +404 -0
  579. package/runtime/third_party/boringssl/crypto/rsa/rsa_crypt.cc +530 -0
  580. package/runtime/third_party/boringssl/crypto/rsa/rsa_extra.cc +30 -0
  581. package/runtime/third_party/boringssl/crypto/rsa/rsa_print.cc +25 -0
  582. package/runtime/third_party/boringssl/crypto/sha/sha1.cc +55 -0
  583. package/runtime/third_party/boringssl/crypto/sha/sha256.cc +89 -0
  584. package/runtime/third_party/boringssl/crypto/sha/sha512.cc +106 -0
  585. package/runtime/third_party/boringssl/crypto/siphash/siphash.cc +81 -0
  586. package/runtime/third_party/boringssl/crypto/slhdsa/slhdsa.cc +167 -0
  587. package/runtime/third_party/boringssl/crypto/spake2plus/internal.h +204 -0
  588. package/runtime/third_party/boringssl/crypto/spake2plus/spake2plus.cc +501 -0
  589. package/runtime/third_party/boringssl/crypto/stack/stack.cc +462 -0
  590. package/runtime/third_party/boringssl/crypto/thread.cc +68 -0
  591. package/runtime/third_party/boringssl/crypto/thread_none.cc +48 -0
  592. package/runtime/third_party/boringssl/crypto/thread_pthread.cc +138 -0
  593. package/runtime/third_party/boringssl/crypto/thread_win.cc +227 -0
  594. package/runtime/third_party/boringssl/crypto/trust_token/internal.h +405 -0
  595. package/runtime/third_party/boringssl/crypto/trust_token/pmbtoken.cc +1672 -0
  596. package/runtime/third_party/boringssl/crypto/trust_token/trust_token.cc +701 -0
  597. package/runtime/third_party/boringssl/crypto/trust_token/voprf.cc +1266 -0
  598. package/runtime/third_party/boringssl/crypto/x509/a_digest.cc +52 -0
  599. package/runtime/third_party/boringssl/crypto/x509/a_sign.cc +100 -0
  600. package/runtime/third_party/boringssl/crypto/x509/a_verify.cc +77 -0
  601. package/runtime/third_party/boringssl/crypto/x509/algorithm.cc +167 -0
  602. package/runtime/third_party/boringssl/crypto/x509/asn1_gen.cc +540 -0
  603. package/runtime/third_party/boringssl/crypto/x509/by_dir.cc +301 -0
  604. package/runtime/third_party/boringssl/crypto/x509/by_file.cc +226 -0
  605. package/runtime/third_party/boringssl/crypto/x509/i2d_pr.cc +37 -0
  606. package/runtime/third_party/boringssl/crypto/x509/internal.h +697 -0
  607. package/runtime/third_party/boringssl/crypto/x509/name_print.cc +187 -0
  608. package/runtime/third_party/boringssl/crypto/x509/policy.cc +686 -0
  609. package/runtime/third_party/boringssl/crypto/x509/rsa_pss.cc +187 -0
  610. package/runtime/third_party/boringssl/crypto/x509/t_crl.cc +106 -0
  611. package/runtime/third_party/boringssl/crypto/x509/t_req.cc +206 -0
  612. package/runtime/third_party/boringssl/crypto/x509/t_x509.cc +292 -0
  613. package/runtime/third_party/boringssl/crypto/x509/t_x509a.cc +81 -0
  614. package/runtime/third_party/boringssl/crypto/x509/v3_akey.cc +174 -0
  615. package/runtime/third_party/boringssl/crypto/x509/v3_akeya.cc +31 -0
  616. package/runtime/third_party/boringssl/crypto/x509/v3_alt.cc +636 -0
  617. package/runtime/third_party/boringssl/crypto/x509/v3_bcons.cc +96 -0
  618. package/runtime/third_party/boringssl/crypto/x509/v3_bitst.cc +100 -0
  619. package/runtime/third_party/boringssl/crypto/x509/v3_conf.cc +369 -0
  620. package/runtime/third_party/boringssl/crypto/x509/v3_cpols.cc +417 -0
  621. package/runtime/third_party/boringssl/crypto/x509/v3_crld.cc +471 -0
  622. package/runtime/third_party/boringssl/crypto/x509/v3_enum.cc +74 -0
  623. package/runtime/third_party/boringssl/crypto/x509/v3_extku.cc +97 -0
  624. package/runtime/third_party/boringssl/crypto/x509/v3_genn.cc +238 -0
  625. package/runtime/third_party/boringssl/crypto/x509/v3_ia5.cc +83 -0
  626. package/runtime/third_party/boringssl/crypto/x509/v3_info.cc +162 -0
  627. package/runtime/third_party/boringssl/crypto/x509/v3_int.cc +83 -0
  628. package/runtime/third_party/boringssl/crypto/x509/v3_lib.cc +349 -0
  629. package/runtime/third_party/boringssl/crypto/x509/v3_ncons.cc +798 -0
  630. package/runtime/third_party/boringssl/crypto/x509/v3_ocsp.cc +92 -0
  631. package/runtime/third_party/boringssl/crypto/x509/v3_pcons.cc +102 -0
  632. package/runtime/third_party/boringssl/crypto/x509/v3_pmaps.cc +110 -0
  633. package/runtime/third_party/boringssl/crypto/x509/v3_prn.cc +183 -0
  634. package/runtime/third_party/boringssl/crypto/x509/v3_purp.cc +580 -0
  635. package/runtime/third_party/boringssl/crypto/x509/v3_skey.cc +128 -0
  636. package/runtime/third_party/boringssl/crypto/x509/v3_utl.cc +1311 -0
  637. package/runtime/third_party/boringssl/crypto/x509/x509.cc +47 -0
  638. package/runtime/third_party/boringssl/crypto/x509/x509_att.cc +188 -0
  639. package/runtime/third_party/boringssl/crypto/x509/x509_cmp.cc +243 -0
  640. package/runtime/third_party/boringssl/crypto/x509/x509_d2.cc +66 -0
  641. package/runtime/third_party/boringssl/crypto/x509/x509_def.cc +42 -0
  642. package/runtime/third_party/boringssl/crypto/x509/x509_ext.cc +161 -0
  643. package/runtime/third_party/boringssl/crypto/x509/x509_lu.cc +570 -0
  644. package/runtime/third_party/boringssl/crypto/x509/x509_mtc.cc +598 -0
  645. package/runtime/third_party/boringssl/crypto/x509/x509_obj.cc +169 -0
  646. package/runtime/third_party/boringssl/crypto/x509/x509_req.cc +248 -0
  647. package/runtime/third_party/boringssl/crypto/x509/x509_set.cc +166 -0
  648. package/runtime/third_party/boringssl/crypto/x509/x509_trs.cc +123 -0
  649. package/runtime/third_party/boringssl/crypto/x509/x509_txt.cc +147 -0
  650. package/runtime/third_party/boringssl/crypto/x509/x509_v3.cc +249 -0
  651. package/runtime/third_party/boringssl/crypto/x509/x509_vfy.cc +1531 -0
  652. package/runtime/third_party/boringssl/crypto/x509/x509_vpm.cc +449 -0
  653. package/runtime/third_party/boringssl/crypto/x509/x509cset.cc +222 -0
  654. package/runtime/third_party/boringssl/crypto/x509/x509name.cc +377 -0
  655. package/runtime/third_party/boringssl/crypto/x509/x509rset.cc +55 -0
  656. package/runtime/third_party/boringssl/crypto/x509/x509spki.cc +91 -0
  657. package/runtime/third_party/boringssl/crypto/x509/x_algor.cc +223 -0
  658. package/runtime/third_party/boringssl/crypto/x509/x_all.cc +352 -0
  659. package/runtime/third_party/boringssl/crypto/x509/x_attrib.cc +61 -0
  660. package/runtime/third_party/boringssl/crypto/x509/x_crl.cc +325 -0
  661. package/runtime/third_party/boringssl/crypto/x509/x_exten.cc +42 -0
  662. package/runtime/third_party/boringssl/crypto/x509/x_name.cc +407 -0
  663. package/runtime/third_party/boringssl/crypto/x509/x_pubkey.cc +199 -0
  664. package/runtime/third_party/boringssl/crypto/x509/x_req.cc +80 -0
  665. package/runtime/third_party/boringssl/crypto/x509/x_sig.cc +51 -0
  666. package/runtime/third_party/boringssl/crypto/x509/x_spki.cc +44 -0
  667. package/runtime/third_party/boringssl/crypto/x509/x_x509.cc +495 -0
  668. package/runtime/third_party/boringssl/crypto/x509/x_x509a.cc +169 -0
  669. package/runtime/third_party/boringssl/crypto/xwing/xwing.cc +257 -0
  670. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-apple.S +1326 -0
  671. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-linux.S +1327 -0
  672. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-apple.S +1252 -0
  673. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-linux.S +1253 -0
  674. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-apple.S +873 -0
  675. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-linux.S +885 -0
  676. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-apple.S +2490 -0
  677. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-linux.S +2530 -0
  678. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-apple.S +2413 -0
  679. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-linux.S +2397 -0
  680. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv7-linux.S +784 -0
  681. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-apple.S +792 -0
  682. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-linux.S +786 -0
  683. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-win.S +798 -0
  684. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-apple.S +2912 -0
  685. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-linux.S +2907 -0
  686. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-win.S +2915 -0
  687. package/runtime/third_party/boringssl/gen/bcm/armv4-mont-linux.S +932 -0
  688. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-apple.S +1440 -0
  689. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-linux.S +1440 -0
  690. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-win.S +1446 -0
  691. package/runtime/third_party/boringssl/gen/bcm/bn-586-apple.S +530 -0
  692. package/runtime/third_party/boringssl/gen/bcm/bn-586-linux.S +540 -0
  693. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-apple.S +88 -0
  694. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-linux.S +87 -0
  695. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-win.S +87 -0
  696. package/runtime/third_party/boringssl/gen/bcm/bsaes-armv7-linux.S +1520 -0
  697. package/runtime/third_party/boringssl/gen/bcm/co-586-apple.S +1256 -0
  698. package/runtime/third_party/boringssl/gen/bcm/co-586-linux.S +1264 -0
  699. package/runtime/third_party/boringssl/gen/bcm/ghash-armv4-linux.S +242 -0
  700. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-apple.S +337 -0
  701. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-linux.S +335 -0
  702. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-win.S +341 -0
  703. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-apple.S +288 -0
  704. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-linux.S +292 -0
  705. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-apple.S +426 -0
  706. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-linux.S +425 -0
  707. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-apple.S +322 -0
  708. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-linux.S +328 -0
  709. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-apple.S +1134 -0
  710. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-linux.S +1129 -0
  711. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv7-linux.S +244 -0
  712. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-apple.S +567 -0
  713. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-linux.S +563 -0
  714. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-win.S +571 -0
  715. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-apple.S +1744 -0
  716. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-linux.S +1725 -0
  717. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-win.S +1765 -0
  718. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-apple.S +4544 -0
  719. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-linux.S +4600 -0
  720. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-apple.S +310 -0
  721. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-linux.S +310 -0
  722. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-win.S +310 -0
  723. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-apple.S +321 -0
  724. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-linux.S +335 -0
  725. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-apple.S +58 -0
  726. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-linux.S +57 -0
  727. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-apple.S +1756 -0
  728. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-linux.S +1751 -0
  729. package/runtime/third_party/boringssl/gen/bcm/sha1-586-apple.S +3782 -0
  730. package/runtime/third_party/boringssl/gen/bcm/sha1-586-linux.S +3788 -0
  731. package/runtime/third_party/boringssl/gen/bcm/sha1-armv4-large-linux.S +1479 -0
  732. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-apple.S +1219 -0
  733. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-linux.S +1218 -0
  734. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-win.S +1222 -0
  735. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-apple.S +5454 -0
  736. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-linux.S +5450 -0
  737. package/runtime/third_party/boringssl/gen/bcm/sha256-586-apple.S +5593 -0
  738. package/runtime/third_party/boringssl/gen/bcm/sha256-586-linux.S +5599 -0
  739. package/runtime/third_party/boringssl/gen/bcm/sha256-armv4-linux.S +2840 -0
  740. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-apple.S +1195 -0
  741. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-linux.S +1194 -0
  742. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-win.S +1198 -0
  743. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-apple.S +4173 -0
  744. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-linux.S +4170 -0
  745. package/runtime/third_party/boringssl/gen/bcm/sha512-586-apple.S +2406 -0
  746. package/runtime/third_party/boringssl/gen/bcm/sha512-586-linux.S +2410 -0
  747. package/runtime/third_party/boringssl/gen/bcm/sha512-armv4-linux.S +1857 -0
  748. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-apple.S +1598 -0
  749. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-linux.S +1597 -0
  750. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-win.S +1601 -0
  751. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-apple.S +2979 -0
  752. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-linux.S +2978 -0
  753. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv7-linux.S +1225 -0
  754. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-apple.S +1238 -0
  755. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-linux.S +1220 -0
  756. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-win.S +1256 -0
  757. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-apple.S +680 -0
  758. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-linux.S +706 -0
  759. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-apple.S +1146 -0
  760. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-linux.S +1133 -0
  761. package/runtime/third_party/boringssl/gen/bcm/x86-mont-apple.S +216 -0
  762. package/runtime/third_party/boringssl/gen/bcm/x86-mont-linux.S +218 -0
  763. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-apple.S +1238 -0
  764. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-linux.S +1237 -0
  765. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-apple.S +3644 -0
  766. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-linux.S +3628 -0
  767. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_64_win_asm.inc +325 -0
  768. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_win_asm.inc +325 -0
  769. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-apple.S +3113 -0
  770. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-linux.S +3091 -0
  771. package/runtime/third_party/boringssl/gen/crypto/chacha-armv4-linux.S +1450 -0
  772. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-apple.S +1969 -0
  773. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-linux.S +1967 -0
  774. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-win.S +1973 -0
  775. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-apple.S +957 -0
  776. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-linux.S +961 -0
  777. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-apple.S +1608 -0
  778. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-linux.S +1611 -0
  779. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-apple.S +3010 -0
  780. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-linux.S +3008 -0
  781. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-win.S +3014 -0
  782. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-apple.S +8903 -0
  783. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-linux.S +8940 -0
  784. package/runtime/third_party/boringssl/gen/crypto/err_data.cc +1578 -0
  785. package/runtime/third_party/boringssl/gen/crypto/md5-586-apple.S +684 -0
  786. package/runtime/third_party/boringssl/gen/crypto/md5-586-linux.S +686 -0
  787. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-apple.S +690 -0
  788. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-linux.S +695 -0
  789. package/runtime/third_party/boringssl/include/openssl/aead.h +650 -0
  790. package/runtime/third_party/boringssl/include/openssl/aes.h +173 -0
  791. package/runtime/third_party/boringssl/include/openssl/arm_arch.h +24 -0
  792. package/runtime/third_party/boringssl/include/openssl/asm_base.h +219 -0
  793. package/runtime/third_party/boringssl/include/openssl/asn1.h +2002 -0
  794. package/runtime/third_party/boringssl/include/openssl/asn1_mac.h +18 -0
  795. package/runtime/third_party/boringssl/include/openssl/asn1t.h +584 -0
  796. package/runtime/third_party/boringssl/include/openssl/base.h +548 -0
  797. package/runtime/third_party/boringssl/include/openssl/base64.h +156 -0
  798. package/runtime/third_party/boringssl/include/openssl/bio.h +1061 -0
  799. package/runtime/third_party/boringssl/include/openssl/blake2.h +63 -0
  800. package/runtime/third_party/boringssl/include/openssl/blowfish.h +58 -0
  801. package/runtime/third_party/boringssl/include/openssl/bn.h +986 -0
  802. package/runtime/third_party/boringssl/include/openssl/buf.h +95 -0
  803. package/runtime/third_party/boringssl/include/openssl/buffer.h +18 -0
  804. package/runtime/third_party/boringssl/include/openssl/bytestring.h +798 -0
  805. package/runtime/third_party/boringssl/include/openssl/cast.h +91 -0
  806. package/runtime/third_party/boringssl/include/openssl/chacha.h +47 -0
  807. package/runtime/third_party/boringssl/include/openssl/cipher.h +819 -0
  808. package/runtime/third_party/boringssl/include/openssl/cmac.h +91 -0
  809. package/runtime/third_party/boringssl/include/openssl/cms.h +147 -0
  810. package/runtime/third_party/boringssl/include/openssl/conf.h +136 -0
  811. package/runtime/third_party/boringssl/include/openssl/configuration.h +18 -0
  812. package/runtime/third_party/boringssl/include/openssl/cpu.h +18 -0
  813. package/runtime/third_party/boringssl/include/openssl/crypto.h +235 -0
  814. package/runtime/third_party/boringssl/include/openssl/ctrdrbg.h +116 -0
  815. package/runtime/third_party/boringssl/include/openssl/curve25519.h +309 -0
  816. package/runtime/third_party/boringssl/include/openssl/des.h +134 -0
  817. package/runtime/third_party/boringssl/include/openssl/dh.h +336 -0
  818. package/runtime/third_party/boringssl/include/openssl/digest.h +399 -0
  819. package/runtime/third_party/boringssl/include/openssl/dsa.h +392 -0
  820. package/runtime/third_party/boringssl/include/openssl/dtls1.h +16 -0
  821. package/runtime/third_party/boringssl/include/openssl/e_os2.h +18 -0
  822. package/runtime/third_party/boringssl/include/openssl/ec.h +530 -0
  823. package/runtime/third_party/boringssl/include/openssl/ec_key.h +358 -0
  824. package/runtime/third_party/boringssl/include/openssl/ecdh.h +67 -0
  825. package/runtime/third_party/boringssl/include/openssl/ecdsa.h +242 -0
  826. package/runtime/third_party/boringssl/include/openssl/engine.h +109 -0
  827. package/runtime/third_party/boringssl/include/openssl/err.h +416 -0
  828. package/runtime/third_party/boringssl/include/openssl/evp.h +1645 -0
  829. package/runtime/third_party/boringssl/include/openssl/evp_errors.h +66 -0
  830. package/runtime/third_party/boringssl/include/openssl/ex_data.h +117 -0
  831. package/runtime/third_party/boringssl/include/openssl/hkdf.h +68 -0
  832. package/runtime/third_party/boringssl/include/openssl/hmac.h +151 -0
  833. package/runtime/third_party/boringssl/include/openssl/hpke.h +456 -0
  834. package/runtime/third_party/boringssl/include/openssl/hrss.h +108 -0
  835. package/runtime/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  836. package/runtime/third_party/boringssl/include/openssl/kdf.h +92 -0
  837. package/runtime/third_party/boringssl/include/openssl/lhash.h +18 -0
  838. package/runtime/third_party/boringssl/include/openssl/md4.h +73 -0
  839. package/runtime/third_party/boringssl/include/openssl/md5.h +67 -0
  840. package/runtime/third_party/boringssl/include/openssl/mem.h +215 -0
  841. package/runtime/third_party/boringssl/include/openssl/mldsa.h +486 -0
  842. package/runtime/third_party/boringssl/include/openssl/mlkem.h +222 -0
  843. package/runtime/third_party/boringssl/include/openssl/nid.h +5561 -0
  844. package/runtime/third_party/boringssl/include/openssl/obj.h +225 -0
  845. package/runtime/third_party/boringssl/include/openssl/obj_mac.h +18 -0
  846. package/runtime/third_party/boringssl/include/openssl/objects.h +18 -0
  847. package/runtime/third_party/boringssl/include/openssl/opensslconf.h +108 -0
  848. package/runtime/third_party/boringssl/include/openssl/opensslv.h +18 -0
  849. package/runtime/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
  850. package/runtime/third_party/boringssl/include/openssl/params.h +42 -0
  851. package/runtime/third_party/boringssl/include/openssl/pem.h +769 -0
  852. package/runtime/third_party/boringssl/include/openssl/pkcs12.h +18 -0
  853. package/runtime/third_party/boringssl/include/openssl/pkcs7.h +239 -0
  854. package/runtime/third_party/boringssl/include/openssl/pkcs8.h +267 -0
  855. package/runtime/third_party/boringssl/include/openssl/poly1305.h +52 -0
  856. package/runtime/third_party/boringssl/include/openssl/pool.h +137 -0
  857. package/runtime/third_party/boringssl/include/openssl/posix_time.h +51 -0
  858. package/runtime/third_party/boringssl/include/openssl/prefix_symbols.h +8000 -0
  859. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_S.h +633 -0
  860. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_c.h +329 -0
  861. package/runtime/third_party/boringssl/include/openssl/rand.h +138 -0
  862. package/runtime/third_party/boringssl/include/openssl/rc4.h +54 -0
  863. package/runtime/third_party/boringssl/include/openssl/ripemd.h +71 -0
  864. package/runtime/third_party/boringssl/include/openssl/rsa.h +893 -0
  865. package/runtime/third_party/boringssl/include/openssl/safestack.h +16 -0
  866. package/runtime/third_party/boringssl/include/openssl/service_indicator.h +19 -0
  867. package/runtime/third_party/boringssl/include/openssl/sha.h +108 -0
  868. package/runtime/third_party/boringssl/include/openssl/sha2.h +201 -0
  869. package/runtime/third_party/boringssl/include/openssl/siphash.h +37 -0
  870. package/runtime/third_party/boringssl/include/openssl/slhdsa.h +250 -0
  871. package/runtime/third_party/boringssl/include/openssl/span.h +376 -0
  872. package/runtime/third_party/boringssl/include/openssl/srtp.h +18 -0
  873. package/runtime/third_party/boringssl/include/openssl/ssl.h +7211 -0
  874. package/runtime/third_party/boringssl/include/openssl/ssl3.h +171 -0
  875. package/runtime/third_party/boringssl/include/openssl/stack.h +688 -0
  876. package/runtime/third_party/boringssl/include/openssl/target.h +246 -0
  877. package/runtime/third_party/boringssl/include/openssl/thread.h +114 -0
  878. package/runtime/third_party/boringssl/include/openssl/time.h +22 -0
  879. package/runtime/third_party/boringssl/include/openssl/tls1.h +263 -0
  880. package/runtime/third_party/boringssl/include/openssl/tls_prf.h +47 -0
  881. package/runtime/third_party/boringssl/include/openssl/trust_token.h +349 -0
  882. package/runtime/third_party/boringssl/include/openssl/type_check.h +37 -0
  883. package/runtime/third_party/boringssl/include/openssl/types.h +18 -0
  884. package/runtime/third_party/boringssl/include/openssl/x509.h +5404 -0
  885. package/runtime/third_party/boringssl/include/openssl/x509_vfy.h +18 -0
  886. package/runtime/third_party/boringssl/include/openssl/x509v3.h +63 -0
  887. package/runtime/third_party/boringssl/include/openssl/x509v3_errors.h +84 -0
  888. package/runtime/third_party/boringssl/include/openssl/xwing.h +115 -0
  889. package/runtime/third_party/boringssl/sources.json +696 -0
  890. package/runtime/third_party/boringssl/ssl/bio_ssl.cc +196 -0
  891. package/runtime/third_party/boringssl/ssl/d1_both.cc +1137 -0
  892. package/runtime/third_party/boringssl/ssl/d1_lib.cc +245 -0
  893. package/runtime/third_party/boringssl/ssl/d1_pkt.cc +322 -0
  894. package/runtime/third_party/boringssl/ssl/d1_srtp.cc +128 -0
  895. package/runtime/third_party/boringssl/ssl/dtls_method.cc +216 -0
  896. package/runtime/third_party/boringssl/ssl/dtls_record.cc +586 -0
  897. package/runtime/third_party/boringssl/ssl/encrypted_client_hello.cc +1110 -0
  898. package/runtime/third_party/boringssl/ssl/extensions.cc +5368 -0
  899. package/runtime/third_party/boringssl/ssl/handoff.cc +625 -0
  900. package/runtime/third_party/boringssl/ssl/handshake.cc +694 -0
  901. package/runtime/third_party/boringssl/ssl/handshake_client.cc +1958 -0
  902. package/runtime/third_party/boringssl/ssl/handshake_server.cc +1875 -0
  903. package/runtime/third_party/boringssl/ssl/internal.h +4506 -0
  904. package/runtime/third_party/boringssl/ssl/s3_both.cc +555 -0
  905. package/runtime/third_party/boringssl/ssl/s3_lib.cc +88 -0
  906. package/runtime/third_party/boringssl/ssl/s3_pkt.cc +396 -0
  907. package/runtime/third_party/boringssl/ssl/ssl_aead_ctx.cc +416 -0
  908. package/runtime/third_party/boringssl/ssl/ssl_asn1.cc +851 -0
  909. package/runtime/third_party/boringssl/ssl/ssl_buffer.cc +304 -0
  910. package/runtime/third_party/boringssl/ssl/ssl_cert.cc +723 -0
  911. package/runtime/third_party/boringssl/ssl/ssl_cipher.cc +1762 -0
  912. package/runtime/third_party/boringssl/ssl/ssl_credential.cc +913 -0
  913. package/runtime/third_party/boringssl/ssl/ssl_file.cc +375 -0
  914. package/runtime/third_party/boringssl/ssl/ssl_key_share.cc +445 -0
  915. package/runtime/third_party/boringssl/ssl/ssl_lib.cc +4132 -0
  916. package/runtime/third_party/boringssl/ssl/ssl_privkey.cc +973 -0
  917. package/runtime/third_party/boringssl/ssl/ssl_session.cc +1273 -0
  918. package/runtime/third_party/boringssl/ssl/ssl_stat.cc +162 -0
  919. package/runtime/third_party/boringssl/ssl/ssl_transcript.cc +224 -0
  920. package/runtime/third_party/boringssl/ssl/ssl_versions.cc +436 -0
  921. package/runtime/third_party/boringssl/ssl/ssl_x509.cc +1229 -0
  922. package/runtime/third_party/boringssl/ssl/t1_enc.cc +266 -0
  923. package/runtime/third_party/boringssl/ssl/tls13_both.cc +764 -0
  924. package/runtime/third_party/boringssl/ssl/tls13_client.cc +1325 -0
  925. package/runtime/third_party/boringssl/ssl/tls13_enc.cc +746 -0
  926. package/runtime/third_party/boringssl/ssl/tls13_server.cc +1623 -0
  927. package/runtime/third_party/boringssl/ssl/tls_method.cc +266 -0
  928. package/runtime/third_party/boringssl/ssl/tls_record.cc +524 -0
  929. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_mul.S +178 -0
  930. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_square.S +146 -0
  931. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_mul.S +177 -0
  932. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_sqr.S +166 -0
  933. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_bareminimum.c.inc +47 -0
  934. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_platform.c.inc +137 -0
  935. package/runtime/third_party/boringssl/third_party/fiat/curve25519_32.h +1571 -0
  936. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64.h +978 -0
  937. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_adx.h +700 -0
  938. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_msvc.h +1281 -0
  939. package/runtime/third_party/boringssl/third_party/fiat/p256_32.h +4760 -0
  940. package/runtime/third_party/boringssl/third_party/fiat/p256_64.h +1984 -0
  941. package/runtime/third_party/boringssl/third_party/fiat/p256_64_msvc.h +1939 -0
  942. package/runtime/third_party/boringssl/third_party/fiat/p256_field.c.inc +26 -0
  943. package/runtime/third_party/boringssl/third_party/fiat/p256_field_32.br.c.inc +71 -0
  944. package/runtime/third_party/boringssl/third_party/fiat/p256_field_64.br.c.inc +84 -0
  945. package/runtime/third_party/boringssl/third_party/fiat/p256_point.br.c.inc +112 -0
  946. package/runtime/third_party/quickjs-dtoa/LICENSE +0 -0
  947. package/runtime/third_party/quickjs-dtoa/README.md +0 -0
  948. package/runtime/third_party/quickjs-dtoa/dtoa.c +0 -0
  949. package/runtime/third_party/quickjs-dtoa/dtoa.h +0 -0
  950. package/runtime/third_party/quickjs-dtoa/dtoa_compat.h +0 -0
  951. package/runtime/third_party/quickjs-regexp/LICENSE +0 -0
  952. package/runtime/third_party/quickjs-regexp/README.md +0 -0
  953. package/runtime/third_party/quickjs-regexp/cutils.c +0 -0
  954. package/runtime/third_party/quickjs-regexp/cutils.h +0 -0
  955. package/runtime/third_party/quickjs-regexp/libregexp-opcode.h +0 -0
  956. package/runtime/third_party/quickjs-regexp/libregexp.c +0 -0
  957. package/runtime/third_party/quickjs-regexp/libregexp.h +0 -0
  958. package/runtime/third_party/quickjs-regexp/libunicode-table.h +0 -0
  959. package/runtime/third_party/quickjs-regexp/libunicode.c +0 -0
  960. package/runtime/third_party/quickjs-regexp/libunicode.h +0 -0
  961. package/runtime/third_party/v8-ieee754/LICENSE +0 -0
  962. package/runtime/third_party/v8-ieee754/README.md +2 -1
  963. package/runtime/third_party/v8-ieee754/convert.py +4 -0
  964. package/runtime/third_party/v8-ieee754/ieee754.c +1 -1
  965. package/runtime/third_party/v8-ieee754/ieee754.h +0 -0
  966. package/runtime/tools/regexp_compile.c +0 -0
  967. package/runtime/third_party/bearssl/LICENSE.txt +0 -21
  968. package/runtime/third_party/bearssl/README.txt +0 -136
  969. package/runtime/third_party/bearssl/VERSION +0 -1
  970. package/runtime/third_party/bearssl/inc/bearssl.h +0 -183
  971. package/runtime/third_party/bearssl/inc/bearssl_aead.h +0 -1059
  972. package/runtime/third_party/bearssl/inc/bearssl_block.h +0 -2618
  973. package/runtime/third_party/bearssl/inc/bearssl_ec.h +0 -967
  974. package/runtime/third_party/bearssl/inc/bearssl_hash.h +0 -1346
  975. package/runtime/third_party/bearssl/inc/bearssl_hmac.h +0 -241
  976. package/runtime/third_party/bearssl/inc/bearssl_kdf.h +0 -284
  977. package/runtime/third_party/bearssl/inc/bearssl_pem.h +0 -294
  978. package/runtime/third_party/bearssl/inc/bearssl_prf.h +0 -150
  979. package/runtime/third_party/bearssl/inc/bearssl_rand.h +0 -397
  980. package/runtime/third_party/bearssl/inc/bearssl_rsa.h +0 -1655
  981. package/runtime/third_party/bearssl/inc/bearssl_ssl.h +0 -4296
  982. package/runtime/third_party/bearssl/inc/bearssl_x509.h +0 -1474
  983. package/runtime/third_party/bearssl/src/aead/ccm.c +0 -346
  984. package/runtime/third_party/bearssl/src/aead/eax.c +0 -525
  985. package/runtime/third_party/bearssl/src/aead/gcm.c +0 -318
  986. package/runtime/third_party/bearssl/src/codec/ccopy.c +0 -44
  987. package/runtime/third_party/bearssl/src/codec/dec16be.c +0 -38
  988. package/runtime/third_party/bearssl/src/codec/dec16le.c +0 -38
  989. package/runtime/third_party/bearssl/src/codec/dec32be.c +0 -38
  990. package/runtime/third_party/bearssl/src/codec/dec32le.c +0 -38
  991. package/runtime/third_party/bearssl/src/codec/dec64be.c +0 -38
  992. package/runtime/third_party/bearssl/src/codec/dec64le.c +0 -38
  993. package/runtime/third_party/bearssl/src/codec/enc16be.c +0 -38
  994. package/runtime/third_party/bearssl/src/codec/enc16le.c +0 -38
  995. package/runtime/third_party/bearssl/src/codec/enc32be.c +0 -38
  996. package/runtime/third_party/bearssl/src/codec/enc32le.c +0 -38
  997. package/runtime/third_party/bearssl/src/codec/enc64be.c +0 -38
  998. package/runtime/third_party/bearssl/src/codec/enc64le.c +0 -38
  999. package/runtime/third_party/bearssl/src/codec/pemdec.c +0 -526
  1000. package/runtime/third_party/bearssl/src/codec/pemdec.t0 +0 -314
  1001. package/runtime/third_party/bearssl/src/codec/pemenc.c +0 -173
  1002. package/runtime/third_party/bearssl/src/config.h +0 -247
  1003. package/runtime/third_party/bearssl/src/ec/ec_all_m15.c +0 -121
  1004. package/runtime/third_party/bearssl/src/ec/ec_all_m31.c +0 -171
  1005. package/runtime/third_party/bearssl/src/ec/ec_c25519_i15.c +0 -398
  1006. package/runtime/third_party/bearssl/src/ec/ec_c25519_i31.c +0 -390
  1007. package/runtime/third_party/bearssl/src/ec/ec_c25519_m15.c +0 -1478
  1008. package/runtime/third_party/bearssl/src/ec/ec_c25519_m31.c +0 -800
  1009. package/runtime/third_party/bearssl/src/ec/ec_c25519_m62.c +0 -605
  1010. package/runtime/third_party/bearssl/src/ec/ec_c25519_m64.c +0 -831
  1011. package/runtime/third_party/bearssl/src/ec/ec_curve25519.c +0 -46
  1012. package/runtime/third_party/bearssl/src/ec/ec_default.c +0 -36
  1013. package/runtime/third_party/bearssl/src/ec/ec_keygen.c +0 -86
  1014. package/runtime/third_party/bearssl/src/ec/ec_p256_m15.c +0 -2124
  1015. package/runtime/third_party/bearssl/src/ec/ec_p256_m31.c +0 -1469
  1016. package/runtime/third_party/bearssl/src/ec/ec_p256_m62.c +0 -1765
  1017. package/runtime/third_party/bearssl/src/ec/ec_p256_m64.c +0 -1781
  1018. package/runtime/third_party/bearssl/src/ec/ec_prime_i15.c +0 -824
  1019. package/runtime/third_party/bearssl/src/ec/ec_prime_i31.c +0 -826
  1020. package/runtime/third_party/bearssl/src/ec/ec_pubkey.c +0 -85
  1021. package/runtime/third_party/bearssl/src/ec/ec_secp256r1.c +0 -51
  1022. package/runtime/third_party/bearssl/src/ec/ec_secp384r1.c +0 -57
  1023. package/runtime/third_party/bearssl/src/ec/ec_secp521r1.c +0 -64
  1024. package/runtime/third_party/bearssl/src/ec/ecdsa_atr.c +0 -134
  1025. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_asn1.c +0 -36
  1026. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_raw.c +0 -36
  1027. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_asn1.c +0 -36
  1028. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_raw.c +0 -36
  1029. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_bits.c +0 -47
  1030. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_asn1.c +0 -45
  1031. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_raw.c +0 -174
  1032. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_asn1.c +0 -48
  1033. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_raw.c +0 -166
  1034. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_bits.c +0 -47
  1035. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_asn1.c +0 -45
  1036. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_raw.c +0 -173
  1037. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_asn1.c +0 -48
  1038. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_raw.c +0 -165
  1039. package/runtime/third_party/bearssl/src/ec/ecdsa_rta.c +0 -121
  1040. package/runtime/third_party/bearssl/src/hash/dig_oid.c +0 -84
  1041. package/runtime/third_party/bearssl/src/hash/dig_size.c +0 -50
  1042. package/runtime/third_party/bearssl/src/hash/ghash_ctmul.c +0 -345
  1043. package/runtime/third_party/bearssl/src/hash/ghash_ctmul32.c +0 -251
  1044. package/runtime/third_party/bearssl/src/hash/ghash_ctmul64.c +0 -154
  1045. package/runtime/third_party/bearssl/src/hash/ghash_pclmul.c +0 -389
  1046. package/runtime/third_party/bearssl/src/hash/ghash_pwr8.c +0 -411
  1047. package/runtime/third_party/bearssl/src/hash/md5.c +0 -208
  1048. package/runtime/third_party/bearssl/src/hash/md5sha1.c +0 -141
  1049. package/runtime/third_party/bearssl/src/hash/mgf1.c +0 -56
  1050. package/runtime/third_party/bearssl/src/hash/multihash.c +0 -166
  1051. package/runtime/third_party/bearssl/src/hash/sha1.c +0 -191
  1052. package/runtime/third_party/bearssl/src/hash/sha2big.c +0 -285
  1053. package/runtime/third_party/bearssl/src/hash/sha2small.c +0 -341
  1054. package/runtime/third_party/bearssl/src/inner.h +0 -2577
  1055. package/runtime/third_party/bearssl/src/int/i15_add.c +0 -46
  1056. package/runtime/third_party/bearssl/src/int/i15_bitlen.c +0 -44
  1057. package/runtime/third_party/bearssl/src/int/i15_decmod.c +0 -124
  1058. package/runtime/third_party/bearssl/src/int/i15_decode.c +0 -56
  1059. package/runtime/third_party/bearssl/src/int/i15_decred.c +0 -100
  1060. package/runtime/third_party/bearssl/src/int/i15_encode.c +0 -56
  1061. package/runtime/third_party/bearssl/src/int/i15_fmont.c +0 -59
  1062. package/runtime/third_party/bearssl/src/int/i15_iszero.c +0 -39
  1063. package/runtime/third_party/bearssl/src/int/i15_moddiv.c +0 -465
  1064. package/runtime/third_party/bearssl/src/int/i15_modpow.c +0 -50
  1065. package/runtime/third_party/bearssl/src/int/i15_modpow2.c +0 -160
  1066. package/runtime/third_party/bearssl/src/int/i15_montmul.c +0 -184
  1067. package/runtime/third_party/bearssl/src/int/i15_mulacc.c +0 -61
  1068. package/runtime/third_party/bearssl/src/int/i15_muladd.c +0 -173
  1069. package/runtime/third_party/bearssl/src/int/i15_ninv15.c +0 -38
  1070. package/runtime/third_party/bearssl/src/int/i15_reduce.c +0 -66
  1071. package/runtime/third_party/bearssl/src/int/i15_rshift.c +0 -47
  1072. package/runtime/third_party/bearssl/src/int/i15_sub.c +0 -46
  1073. package/runtime/third_party/bearssl/src/int/i15_tmont.c +0 -36
  1074. package/runtime/third_party/bearssl/src/int/i31_add.c +0 -46
  1075. package/runtime/third_party/bearssl/src/int/i31_bitlen.c +0 -44
  1076. package/runtime/third_party/bearssl/src/int/i31_decmod.c +0 -124
  1077. package/runtime/third_party/bearssl/src/int/i31_decode.c +0 -57
  1078. package/runtime/third_party/bearssl/src/int/i31_decred.c +0 -103
  1079. package/runtime/third_party/bearssl/src/int/i31_encode.c +0 -79
  1080. package/runtime/third_party/bearssl/src/int/i31_fmont.c +0 -60
  1081. package/runtime/third_party/bearssl/src/int/i31_iszero.c +0 -39
  1082. package/runtime/third_party/bearssl/src/int/i31_moddiv.c +0 -488
  1083. package/runtime/third_party/bearssl/src/int/i31_modpow.c +0 -65
  1084. package/runtime/third_party/bearssl/src/int/i31_modpow2.c +0 -160
  1085. package/runtime/third_party/bearssl/src/int/i31_montmul.c +0 -127
  1086. package/runtime/third_party/bearssl/src/int/i31_mulacc.c +0 -74
  1087. package/runtime/third_party/bearssl/src/int/i31_muladd.c +0 -157
  1088. package/runtime/third_party/bearssl/src/int/i31_ninv31.c +0 -39
  1089. package/runtime/third_party/bearssl/src/int/i31_reduce.c +0 -66
  1090. package/runtime/third_party/bearssl/src/int/i31_rshift.c +0 -47
  1091. package/runtime/third_party/bearssl/src/int/i31_sub.c +0 -46
  1092. package/runtime/third_party/bearssl/src/int/i31_tmont.c +0 -36
  1093. package/runtime/third_party/bearssl/src/int/i32_add.c +0 -51
  1094. package/runtime/third_party/bearssl/src/int/i32_bitlen.c +0 -44
  1095. package/runtime/third_party/bearssl/src/int/i32_decmod.c +0 -77
  1096. package/runtime/third_party/bearssl/src/int/i32_decode.c +0 -63
  1097. package/runtime/third_party/bearssl/src/int/i32_decred.c +0 -107
  1098. package/runtime/third_party/bearssl/src/int/i32_div32.c +0 -56
  1099. package/runtime/third_party/bearssl/src/int/i32_encode.c +0 -72
  1100. package/runtime/third_party/bearssl/src/int/i32_fmont.c +0 -60
  1101. package/runtime/third_party/bearssl/src/int/i32_iszero.c +0 -39
  1102. package/runtime/third_party/bearssl/src/int/i32_modpow.c +0 -65
  1103. package/runtime/third_party/bearssl/src/int/i32_montmul.c +0 -69
  1104. package/runtime/third_party/bearssl/src/int/i32_mulacc.c +0 -56
  1105. package/runtime/third_party/bearssl/src/int/i32_muladd.c +0 -138
  1106. package/runtime/third_party/bearssl/src/int/i32_ninv32.c +0 -39
  1107. package/runtime/third_party/bearssl/src/int/i32_reduce.c +0 -66
  1108. package/runtime/third_party/bearssl/src/int/i32_sub.c +0 -51
  1109. package/runtime/third_party/bearssl/src/int/i32_tmont.c +0 -36
  1110. package/runtime/third_party/bearssl/src/int/i62_modpow2.c +0 -493
  1111. package/runtime/third_party/bearssl/src/kdf/hkdf.c +0 -107
  1112. package/runtime/third_party/bearssl/src/kdf/shake.c +0 -590
  1113. package/runtime/third_party/bearssl/src/mac/hmac.c +0 -122
  1114. package/runtime/third_party/bearssl/src/mac/hmac_ct.c +0 -193
  1115. package/runtime/third_party/bearssl/src/rand/aesctr_drbg.c +0 -206
  1116. package/runtime/third_party/bearssl/src/rand/hmac_drbg.c +0 -157
  1117. package/runtime/third_party/bearssl/src/rand/sysrng.c +0 -252
  1118. package/runtime/third_party/bearssl/src/rsa/rsa_default_keygen.c +0 -38
  1119. package/runtime/third_party/bearssl/src/rsa/rsa_default_modulus.c +0 -36
  1120. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_decrypt.c +0 -38
  1121. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_encrypt.c +0 -38
  1122. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_sign.c +0 -38
  1123. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_vrfy.c +0 -38
  1124. package/runtime/third_party/bearssl/src/rsa/rsa_default_priv.c +0 -38
  1125. package/runtime/third_party/bearssl/src/rsa/rsa_default_privexp.c +0 -36
  1126. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_sign.c +0 -38
  1127. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_vrfy.c +0 -38
  1128. package/runtime/third_party/bearssl/src/rsa/rsa_default_pub.c +0 -38
  1129. package/runtime/third_party/bearssl/src/rsa/rsa_default_pubexp.c +0 -36
  1130. package/runtime/third_party/bearssl/src/rsa/rsa_i15_keygen.c +0 -583
  1131. package/runtime/third_party/bearssl/src/rsa/rsa_i15_modulus.c +0 -99
  1132. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_decrypt.c +0 -41
  1133. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_encrypt.c +0 -44
  1134. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_sign.c +0 -37
  1135. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_vrfy.c +0 -43
  1136. package/runtime/third_party/bearssl/src/rsa/rsa_i15_priv.c +0 -209
  1137. package/runtime/third_party/bearssl/src/rsa/rsa_i15_privexp.c +0 -320
  1138. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_sign.c +0 -40
  1139. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_vrfy.c +0 -44
  1140. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pub.c +0 -113
  1141. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pubexp.c +0 -152
  1142. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen.c +0 -37
  1143. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen_inner.c +0 -608
  1144. package/runtime/third_party/bearssl/src/rsa/rsa_i31_modulus.c +0 -99
  1145. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_decrypt.c +0 -41
  1146. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_encrypt.c +0 -44
  1147. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_sign.c +0 -37
  1148. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_vrfy.c +0 -43
  1149. package/runtime/third_party/bearssl/src/rsa/rsa_i31_priv.c +0 -203
  1150. package/runtime/third_party/bearssl/src/rsa/rsa_i31_privexp.c +0 -318
  1151. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_sign.c +0 -40
  1152. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_vrfy.c +0 -44
  1153. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pub.c +0 -106
  1154. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pubexp.c +0 -152
  1155. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_decrypt.c +0 -41
  1156. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_encrypt.c +0 -44
  1157. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_sign.c +0 -37
  1158. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_vrfy.c +0 -43
  1159. package/runtime/third_party/bearssl/src/rsa/rsa_i32_priv.c +0 -160
  1160. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_sign.c +0 -40
  1161. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_vrfy.c +0 -44
  1162. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pub.c +0 -77
  1163. package/runtime/third_party/bearssl/src/rsa/rsa_i62_keygen.c +0 -57
  1164. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_decrypt.c +0 -61
  1165. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_encrypt.c +0 -64
  1166. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_sign.c +0 -57
  1167. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_vrfy.c +0 -63
  1168. package/runtime/third_party/bearssl/src/rsa/rsa_i62_priv.c +0 -223
  1169. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_sign.c +0 -60
  1170. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_vrfy.c +0 -64
  1171. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pub.c +0 -125
  1172. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_pad.c +0 -112
  1173. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_unpad.c +0 -145
  1174. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_pad.c +0 -100
  1175. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_unpad.c +0 -121
  1176. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_pad.c +0 -106
  1177. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_unpad.c +0 -121
  1178. package/runtime/third_party/bearssl/src/rsa/rsa_ssl_decrypt.c +0 -52
  1179. package/runtime/third_party/bearssl/src/settings.c +0 -306
  1180. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcdec.c +0 -69
  1181. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcenc.c +0 -67
  1182. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctr.c +0 -84
  1183. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctrcbc.c +0 -142
  1184. package/runtime/third_party/bearssl/src/symcipher/aes_big_dec.c +0 -254
  1185. package/runtime/third_party/bearssl/src/symcipher/aes_big_enc.c +0 -157
  1186. package/runtime/third_party/bearssl/src/symcipher/aes_common.c +0 -112
  1187. package/runtime/third_party/bearssl/src/symcipher/aes_ct.c +0 -328
  1188. package/runtime/third_party/bearssl/src/symcipher/aes_ct64.c +0 -398
  1189. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcdec.c +0 -104
  1190. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcenc.c +0 -81
  1191. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctr.c +0 -114
  1192. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctrcbc.c +0 -433
  1193. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_dec.c +0 -159
  1194. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_enc.c +0 -115
  1195. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcdec.c +0 -111
  1196. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcenc.c +0 -91
  1197. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctr.c +0 -116
  1198. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctrcbc.c +0 -422
  1199. package/runtime/third_party/bearssl/src/symcipher/aes_ct_dec.c +0 -170
  1200. package/runtime/third_party/bearssl/src/symcipher/aes_ct_enc.c +0 -112
  1201. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8.c +0 -445
  1202. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcdec.c +0 -670
  1203. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcenc.c +0 -417
  1204. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctr.c +0 -717
  1205. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctrcbc.c +0 -946
  1206. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcdec.c +0 -69
  1207. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcenc.c +0 -67
  1208. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctr.c +0 -84
  1209. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctrcbc.c +0 -142
  1210. package/runtime/third_party/bearssl/src/symcipher/aes_small_dec.c +0 -176
  1211. package/runtime/third_party/bearssl/src/symcipher/aes_small_enc.c +0 -129
  1212. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni.c +0 -240
  1213. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcdec.c +0 -223
  1214. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcenc.c +0 -122
  1215. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctr.c +0 -211
  1216. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctrcbc.c +0 -596
  1217. package/runtime/third_party/bearssl/src/symcipher/chacha20_ct.c +0 -106
  1218. package/runtime/third_party/bearssl/src/symcipher/chacha20_sse2.c +0 -237
  1219. package/runtime/third_party/bearssl/src/symcipher/des_ct.c +0 -411
  1220. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcdec.c +0 -87
  1221. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcenc.c +0 -69
  1222. package/runtime/third_party/bearssl/src/symcipher/des_support.c +0 -166
  1223. package/runtime/third_party/bearssl/src/symcipher/des_tab.c +0 -310
  1224. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcdec.c +0 -85
  1225. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcenc.c +0 -67
  1226. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul.c +0 -260
  1227. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul32.c +0 -297
  1228. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmulq.c +0 -475
  1229. package/runtime/third_party/bearssl/src/symcipher/poly1305_i15.c +0 -221
  1230. package/runtime/third_party/bearssl/src/x509/asn1.t0 +0 -757
  1231. package/runtime/third_party/bearssl/src/x509/asn1enc.c +0 -93
  1232. package/runtime/third_party/bearssl/src/x509/encode_ec_pk8der.c +0 -110
  1233. package/runtime/third_party/bearssl/src/x509/encode_ec_rawder.c +0 -161
  1234. package/runtime/third_party/bearssl/src/x509/encode_rsa_pk8der.c +0 -97
  1235. package/runtime/third_party/bearssl/src/x509/encode_rsa_rawder.c +0 -96
  1236. package/runtime/third_party/bearssl/src/x509/skey_decoder.c +0 -653
  1237. package/runtime/third_party/bearssl/src/x509/skey_decoder.t0 +0 -376
  1238. package/runtime/third_party/bearssl/src/x509/x509_decoder.c +0 -776
  1239. package/runtime/third_party/bearssl/src/x509/x509_decoder.t0 +0 -324
  1240. package/runtime/third_party/bearssl/src/x509/x509_knownkey.c +0 -105
  1241. package/runtime/third_party/bearssl/src/x509/x509_minimal.c +0 -1722
  1242. package/runtime/third_party/bearssl/src/x509/x509_minimal.t0 +0 -1526
  1243. package/runtime/third_party/bearssl/src/x509/x509_minimal_full.c +0 -59
@@ -0,0 +1,3113 @@
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
+ .section __DATA,__const
8
+
9
+ .p2align 4
10
+ one:
11
+ .quad 1,0
12
+ .alt_entry two
13
+ two:
14
+ .quad 2,0
15
+ .alt_entry three
16
+ three:
17
+ .quad 3,0
18
+ .alt_entry four
19
+ four:
20
+ .quad 4,0
21
+ .alt_entry five
22
+ five:
23
+ .quad 5,0
24
+ .alt_entry six
25
+ six:
26
+ .quad 6,0
27
+ .alt_entry seven
28
+ seven:
29
+ .quad 7,0
30
+ .alt_entry eight
31
+ eight:
32
+ .quad 8,0
33
+
34
+ .alt_entry OR_MASK
35
+ OR_MASK:
36
+ .long 0x00000000,0x00000000,0x00000000,0x80000000
37
+ .alt_entry poly
38
+ poly:
39
+ .quad 0x1, 0xc200000000000000
40
+ .alt_entry mask
41
+ mask:
42
+ .long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d
43
+ .alt_entry con1
44
+ con1:
45
+ .long 1,1,1,1
46
+ .alt_entry con2
47
+ con2:
48
+ .long 0x1b,0x1b,0x1b,0x1b
49
+ .alt_entry con3
50
+ con3:
51
+ .byte -1,-1,-1,-1,-1,-1,-1,-1,4,5,6,7,4,5,6,7
52
+ .alt_entry and_mask
53
+ and_mask:
54
+ .long 0,0xffffffff, 0xffffffff, 0xffffffff
55
+ .text
56
+
57
+ .p2align 4
58
+ GFMUL:
59
+
60
+ vpclmulqdq $0x00,%xmm1,%xmm0,%xmm2
61
+ vpclmulqdq $0x11,%xmm1,%xmm0,%xmm5
62
+ vpclmulqdq $0x10,%xmm1,%xmm0,%xmm3
63
+ vpclmulqdq $0x01,%xmm1,%xmm0,%xmm4
64
+ vpxor %xmm4,%xmm3,%xmm3
65
+ vpslldq $8,%xmm3,%xmm4
66
+ vpsrldq $8,%xmm3,%xmm3
67
+ vpxor %xmm4,%xmm2,%xmm2
68
+ vpxor %xmm3,%xmm5,%xmm5
69
+
70
+ vpclmulqdq $0x10,poly(%rip),%xmm2,%xmm3
71
+ vpshufd $78,%xmm2,%xmm4
72
+ vpxor %xmm4,%xmm3,%xmm2
73
+
74
+ vpclmulqdq $0x10,poly(%rip),%xmm2,%xmm3
75
+ vpshufd $78,%xmm2,%xmm4
76
+ vpxor %xmm4,%xmm3,%xmm2
77
+
78
+ vpxor %xmm5,%xmm2,%xmm0
79
+ ret
80
+
81
+
82
+ .globl _aesgcmsiv_htable_init
83
+ .private_extern _aesgcmsiv_htable_init
84
+
85
+ .p2align 4
86
+ .alt_entry _aesgcmsiv_htable_init
87
+ _aesgcmsiv_htable_init:
88
+
89
+ _CET_ENDBR
90
+ vmovdqa (%rsi),%xmm0
91
+ vmovdqa %xmm0,%xmm1
92
+ vmovdqa %xmm0,(%rdi) // H
93
+ call GFMUL
94
+ vmovdqa %xmm0,16(%rdi) // H^2
95
+ call GFMUL
96
+ vmovdqa %xmm0,32(%rdi) // H^3
97
+ call GFMUL
98
+ vmovdqa %xmm0,48(%rdi) // H^4
99
+ call GFMUL
100
+ vmovdqa %xmm0,64(%rdi) // H^5
101
+ call GFMUL
102
+ vmovdqa %xmm0,80(%rdi) // H^6
103
+ call GFMUL
104
+ vmovdqa %xmm0,96(%rdi) // H^7
105
+ call GFMUL
106
+ vmovdqa %xmm0,112(%rdi) // H^8
107
+ ret
108
+
109
+
110
+ .globl _aesgcmsiv_htable6_init
111
+ .private_extern _aesgcmsiv_htable6_init
112
+
113
+ .p2align 4
114
+ .alt_entry _aesgcmsiv_htable6_init
115
+ _aesgcmsiv_htable6_init:
116
+
117
+ _CET_ENDBR
118
+ vmovdqa (%rsi),%xmm0
119
+ vmovdqa %xmm0,%xmm1
120
+ vmovdqa %xmm0,(%rdi) // H
121
+ call GFMUL
122
+ vmovdqa %xmm0,16(%rdi) // H^2
123
+ call GFMUL
124
+ vmovdqa %xmm0,32(%rdi) // H^3
125
+ call GFMUL
126
+ vmovdqa %xmm0,48(%rdi) // H^4
127
+ call GFMUL
128
+ vmovdqa %xmm0,64(%rdi) // H^5
129
+ call GFMUL
130
+ vmovdqa %xmm0,80(%rdi) // H^6
131
+ ret
132
+
133
+
134
+ .globl _aesgcmsiv_htable_polyval
135
+ .private_extern _aesgcmsiv_htable_polyval
136
+
137
+ .p2align 4
138
+ .alt_entry _aesgcmsiv_htable_polyval
139
+ _aesgcmsiv_htable_polyval:
140
+
141
+ _CET_ENDBR
142
+ testq %rdx,%rdx
143
+ jnz L$htable_polyval_start
144
+ ret
145
+
146
+ L$htable_polyval_start:
147
+ vzeroall
148
+
149
+ // We hash 8 blocks each iteration. If the total number of blocks is not a
150
+ // multiple of 8, we first hash the leading n%8 blocks.
151
+ movq %rdx,%r11
152
+ andq $127,%r11
153
+
154
+ jz L$htable_polyval_no_prefix
155
+
156
+ vpxor %xmm9,%xmm9,%xmm9
157
+ vmovdqa (%rcx),%xmm1
158
+ subq %r11,%rdx
159
+
160
+ subq $16,%r11
161
+
162
+ // hash first prefix block
163
+ vmovdqu (%rsi),%xmm0
164
+ vpxor %xmm1,%xmm0,%xmm0
165
+
166
+ vpclmulqdq $0x01,(%rdi,%r11,1),%xmm0,%xmm5
167
+ vpclmulqdq $0x00,(%rdi,%r11,1),%xmm0,%xmm3
168
+ vpclmulqdq $0x11,(%rdi,%r11,1),%xmm0,%xmm4
169
+ vpclmulqdq $0x10,(%rdi,%r11,1),%xmm0,%xmm6
170
+ vpxor %xmm6,%xmm5,%xmm5
171
+
172
+ leaq 16(%rsi),%rsi
173
+ testq %r11,%r11
174
+ jnz L$htable_polyval_prefix_loop
175
+ jmp L$htable_polyval_prefix_complete
176
+
177
+ // hash remaining prefix blocks (up to 7 total prefix blocks)
178
+ .p2align 6
179
+ L$htable_polyval_prefix_loop:
180
+ subq $16,%r11
181
+
182
+ vmovdqu (%rsi),%xmm0 // next data block
183
+
184
+ vpclmulqdq $0x00,(%rdi,%r11,1),%xmm0,%xmm6
185
+ vpxor %xmm6,%xmm3,%xmm3
186
+ vpclmulqdq $0x11,(%rdi,%r11,1),%xmm0,%xmm6
187
+ vpxor %xmm6,%xmm4,%xmm4
188
+ vpclmulqdq $0x01,(%rdi,%r11,1),%xmm0,%xmm6
189
+ vpxor %xmm6,%xmm5,%xmm5
190
+ vpclmulqdq $0x10,(%rdi,%r11,1),%xmm0,%xmm6
191
+ vpxor %xmm6,%xmm5,%xmm5
192
+
193
+ testq %r11,%r11
194
+
195
+ leaq 16(%rsi),%rsi
196
+
197
+ jnz L$htable_polyval_prefix_loop
198
+
199
+ L$htable_polyval_prefix_complete:
200
+ vpsrldq $8,%xmm5,%xmm6
201
+ vpslldq $8,%xmm5,%xmm5
202
+
203
+ vpxor %xmm6,%xmm4,%xmm9
204
+ vpxor %xmm5,%xmm3,%xmm1
205
+
206
+ jmp L$htable_polyval_main_loop
207
+
208
+ L$htable_polyval_no_prefix:
209
+ // At this point we know the number of blocks is a multiple of 8. However,
210
+ // the reduction in the main loop includes a multiplication by x^(-128). In
211
+ // order to counter this, the existing tag needs to be multiplied by x^128.
212
+ // In practice, this just means that it is loaded into %xmm9, not %xmm1.
213
+ vpxor %xmm1,%xmm1,%xmm1
214
+ vmovdqa (%rcx),%xmm9
215
+
216
+ .p2align 6
217
+ L$htable_polyval_main_loop:
218
+ subq $0x80,%rdx
219
+ jb L$htable_polyval_out
220
+
221
+ vmovdqu 112(%rsi),%xmm0 // Ii
222
+
223
+ vpclmulqdq $0x01,(%rdi),%xmm0,%xmm5
224
+ vpclmulqdq $0x00,(%rdi),%xmm0,%xmm3
225
+ vpclmulqdq $0x11,(%rdi),%xmm0,%xmm4
226
+ vpclmulqdq $0x10,(%rdi),%xmm0,%xmm6
227
+ vpxor %xmm6,%xmm5,%xmm5
228
+
229
+ // ########################################################
230
+ vmovdqu 96(%rsi),%xmm0
231
+ vpclmulqdq $0x01,16(%rdi),%xmm0,%xmm6
232
+ vpxor %xmm6,%xmm5,%xmm5
233
+ vpclmulqdq $0x00,16(%rdi),%xmm0,%xmm6
234
+ vpxor %xmm6,%xmm3,%xmm3
235
+ vpclmulqdq $0x11,16(%rdi),%xmm0,%xmm6
236
+ vpxor %xmm6,%xmm4,%xmm4
237
+ vpclmulqdq $0x10,16(%rdi),%xmm0,%xmm6
238
+ vpxor %xmm6,%xmm5,%xmm5
239
+
240
+
241
+ // ########################################################
242
+ vmovdqu 80(%rsi),%xmm0
243
+
244
+ vpclmulqdq $0x10,poly(%rip),%xmm1,%xmm7 // reduction stage 1a
245
+ vpalignr $8,%xmm1,%xmm1,%xmm1
246
+
247
+ vpclmulqdq $0x01,32(%rdi),%xmm0,%xmm6
248
+ vpxor %xmm6,%xmm5,%xmm5
249
+ vpclmulqdq $0x00,32(%rdi),%xmm0,%xmm6
250
+ vpxor %xmm6,%xmm3,%xmm3
251
+ vpclmulqdq $0x11,32(%rdi),%xmm0,%xmm6
252
+ vpxor %xmm6,%xmm4,%xmm4
253
+ vpclmulqdq $0x10,32(%rdi),%xmm0,%xmm6
254
+ vpxor %xmm6,%xmm5,%xmm5
255
+
256
+
257
+ vpxor %xmm7,%xmm1,%xmm1 // reduction stage 1b
258
+ // ########################################################
259
+ vmovdqu 64(%rsi),%xmm0
260
+
261
+ vpclmulqdq $0x01,48(%rdi),%xmm0,%xmm6
262
+ vpxor %xmm6,%xmm5,%xmm5
263
+ vpclmulqdq $0x00,48(%rdi),%xmm0,%xmm6
264
+ vpxor %xmm6,%xmm3,%xmm3
265
+ vpclmulqdq $0x11,48(%rdi),%xmm0,%xmm6
266
+ vpxor %xmm6,%xmm4,%xmm4
267
+ vpclmulqdq $0x10,48(%rdi),%xmm0,%xmm6
268
+ vpxor %xmm6,%xmm5,%xmm5
269
+
270
+ // ########################################################
271
+ vmovdqu 48(%rsi),%xmm0
272
+
273
+ vpclmulqdq $0x10,poly(%rip),%xmm1,%xmm7 // reduction stage 2a
274
+ vpalignr $8,%xmm1,%xmm1,%xmm1
275
+
276
+ vpclmulqdq $0x01,64(%rdi),%xmm0,%xmm6
277
+ vpxor %xmm6,%xmm5,%xmm5
278
+ vpclmulqdq $0x00,64(%rdi),%xmm0,%xmm6
279
+ vpxor %xmm6,%xmm3,%xmm3
280
+ vpclmulqdq $0x11,64(%rdi),%xmm0,%xmm6
281
+ vpxor %xmm6,%xmm4,%xmm4
282
+ vpclmulqdq $0x10,64(%rdi),%xmm0,%xmm6
283
+ vpxor %xmm6,%xmm5,%xmm5
284
+
285
+
286
+ vpxor %xmm7,%xmm1,%xmm1 // reduction stage 2b
287
+ // ########################################################
288
+ vmovdqu 32(%rsi),%xmm0
289
+
290
+ vpclmulqdq $0x01,80(%rdi),%xmm0,%xmm6
291
+ vpxor %xmm6,%xmm5,%xmm5
292
+ vpclmulqdq $0x00,80(%rdi),%xmm0,%xmm6
293
+ vpxor %xmm6,%xmm3,%xmm3
294
+ vpclmulqdq $0x11,80(%rdi),%xmm0,%xmm6
295
+ vpxor %xmm6,%xmm4,%xmm4
296
+ vpclmulqdq $0x10,80(%rdi),%xmm0,%xmm6
297
+ vpxor %xmm6,%xmm5,%xmm5
298
+
299
+
300
+ vpxor %xmm9,%xmm1,%xmm1 // reduction finalize
301
+ // ########################################################
302
+ vmovdqu 16(%rsi),%xmm0
303
+
304
+ vpclmulqdq $0x01,96(%rdi),%xmm0,%xmm6
305
+ vpxor %xmm6,%xmm5,%xmm5
306
+ vpclmulqdq $0x00,96(%rdi),%xmm0,%xmm6
307
+ vpxor %xmm6,%xmm3,%xmm3
308
+ vpclmulqdq $0x11,96(%rdi),%xmm0,%xmm6
309
+ vpxor %xmm6,%xmm4,%xmm4
310
+ vpclmulqdq $0x10,96(%rdi),%xmm0,%xmm6
311
+ vpxor %xmm6,%xmm5,%xmm5
312
+
313
+ // ########################################################
314
+ vmovdqu 0(%rsi),%xmm0
315
+ vpxor %xmm1,%xmm0,%xmm0
316
+
317
+ vpclmulqdq $0x01,112(%rdi),%xmm0,%xmm6
318
+ vpxor %xmm6,%xmm5,%xmm5
319
+ vpclmulqdq $0x00,112(%rdi),%xmm0,%xmm6
320
+ vpxor %xmm6,%xmm3,%xmm3
321
+ vpclmulqdq $0x11,112(%rdi),%xmm0,%xmm6
322
+ vpxor %xmm6,%xmm4,%xmm4
323
+ vpclmulqdq $0x10,112(%rdi),%xmm0,%xmm6
324
+ vpxor %xmm6,%xmm5,%xmm5
325
+
326
+ // ########################################################
327
+ vpsrldq $8,%xmm5,%xmm6
328
+ vpslldq $8,%xmm5,%xmm5
329
+
330
+ vpxor %xmm6,%xmm4,%xmm9
331
+ vpxor %xmm5,%xmm3,%xmm1
332
+
333
+ leaq 128(%rsi),%rsi
334
+ jmp L$htable_polyval_main_loop
335
+
336
+ // ########################################################
337
+
338
+ L$htable_polyval_out:
339
+ vpclmulqdq $0x10,poly(%rip),%xmm1,%xmm6
340
+ vpalignr $8,%xmm1,%xmm1,%xmm1
341
+ vpxor %xmm6,%xmm1,%xmm1
342
+
343
+ vpclmulqdq $0x10,poly(%rip),%xmm1,%xmm6
344
+ vpalignr $8,%xmm1,%xmm1,%xmm1
345
+ vpxor %xmm6,%xmm1,%xmm1
346
+ vpxor %xmm9,%xmm1,%xmm1
347
+
348
+ vmovdqu %xmm1,(%rcx)
349
+ vzeroupper
350
+ ret
351
+
352
+
353
+ .globl _aesgcmsiv_polyval_horner
354
+ .private_extern _aesgcmsiv_polyval_horner
355
+
356
+ .p2align 4
357
+ .alt_entry _aesgcmsiv_polyval_horner
358
+ _aesgcmsiv_polyval_horner:
359
+
360
+ _CET_ENDBR
361
+ testq %rcx,%rcx
362
+ jnz L$polyval_horner_start
363
+ ret
364
+
365
+ L$polyval_horner_start:
366
+ // We will start with L GFMULS for POLYVAL(BIG_BUFFER)
367
+ // RES = GFMUL(RES, H)
368
+
369
+ xorq %r10,%r10
370
+ shlq $4,%rcx // L contains number of bytes to process
371
+
372
+ vmovdqa (%rsi),%xmm1
373
+ vmovdqa (%rdi),%xmm0
374
+
375
+ L$polyval_horner_loop:
376
+ vpxor (%rdx,%r10,1),%xmm0,%xmm0 // RES = RES + Xi
377
+ call GFMUL // RES = RES * H
378
+
379
+ addq $16,%r10
380
+ cmpq %r10,%rcx
381
+ jne L$polyval_horner_loop
382
+
383
+ // calculation of T is complete. RES=T
384
+ vmovdqa %xmm0,(%rdi)
385
+ ret
386
+
387
+
388
+ .globl _aes128gcmsiv_aes_ks
389
+ .private_extern _aes128gcmsiv_aes_ks
390
+
391
+ .p2align 4
392
+ .alt_entry _aes128gcmsiv_aes_ks
393
+ _aes128gcmsiv_aes_ks:
394
+
395
+ _CET_ENDBR
396
+ vmovdqu (%rdi),%xmm1 // xmm1 = user key
397
+ vmovdqa %xmm1,(%rsi) // rsi points to output
398
+
399
+ vmovdqa con1(%rip),%xmm0
400
+ vmovdqa mask(%rip),%xmm15
401
+
402
+ movq $8,%rax
403
+
404
+ L$ks128_loop:
405
+ addq $16,%rsi // rsi points for next key
406
+ subq $1,%rax
407
+ vpshufb %xmm15,%xmm1,%xmm2 // xmm2 = shuffled user key
408
+ vaesenclast %xmm0,%xmm2,%xmm2
409
+ vpslld $1,%xmm0,%xmm0
410
+ vpslldq $4,%xmm1,%xmm3
411
+ vpxor %xmm3,%xmm1,%xmm1
412
+ vpslldq $4,%xmm3,%xmm3
413
+ vpxor %xmm3,%xmm1,%xmm1
414
+ vpslldq $4,%xmm3,%xmm3
415
+ vpxor %xmm3,%xmm1,%xmm1
416
+ vpxor %xmm2,%xmm1,%xmm1
417
+ vmovdqa %xmm1,(%rsi)
418
+ jne L$ks128_loop
419
+
420
+ vmovdqa con2(%rip),%xmm0
421
+ vpshufb %xmm15,%xmm1,%xmm2
422
+ vaesenclast %xmm0,%xmm2,%xmm2
423
+ vpslld $1,%xmm0,%xmm0
424
+ vpslldq $4,%xmm1,%xmm3
425
+ vpxor %xmm3,%xmm1,%xmm1
426
+ vpslldq $4,%xmm3,%xmm3
427
+ vpxor %xmm3,%xmm1,%xmm1
428
+ vpslldq $4,%xmm3,%xmm3
429
+ vpxor %xmm3,%xmm1,%xmm1
430
+ vpxor %xmm2,%xmm1,%xmm1
431
+ vmovdqa %xmm1,16(%rsi)
432
+
433
+ vpshufb %xmm15,%xmm1,%xmm2
434
+ vaesenclast %xmm0,%xmm2,%xmm2
435
+ vpslldq $4,%xmm1,%xmm3
436
+ vpxor %xmm3,%xmm1,%xmm1
437
+ vpslldq $4,%xmm3,%xmm3
438
+ vpxor %xmm3,%xmm1,%xmm1
439
+ vpslldq $4,%xmm3,%xmm3
440
+ vpxor %xmm3,%xmm1,%xmm1
441
+ vpxor %xmm2,%xmm1,%xmm1
442
+ vmovdqa %xmm1,32(%rsi)
443
+ ret
444
+
445
+
446
+ .globl _aes256gcmsiv_aes_ks
447
+ .private_extern _aes256gcmsiv_aes_ks
448
+
449
+ .p2align 4
450
+ .alt_entry _aes256gcmsiv_aes_ks
451
+ _aes256gcmsiv_aes_ks:
452
+
453
+ _CET_ENDBR
454
+ vmovdqu (%rdi),%xmm1
455
+ vmovdqu 16(%rdi),%xmm3
456
+ vmovdqa %xmm1,(%rsi)
457
+ vmovdqa %xmm3,16(%rsi)
458
+ vmovdqa con1(%rip),%xmm0
459
+ vmovdqa mask(%rip),%xmm15
460
+ vpxor %xmm14,%xmm14,%xmm14
461
+ movq $6,%rax
462
+
463
+ L$ks256_loop:
464
+ addq $32,%rsi
465
+ subq $1,%rax
466
+ vpshufb %xmm15,%xmm3,%xmm2
467
+ vaesenclast %xmm0,%xmm2,%xmm2
468
+ vpslld $1,%xmm0,%xmm0
469
+ vpsllq $32,%xmm1,%xmm4
470
+ vpxor %xmm4,%xmm1,%xmm1
471
+ vpshufb con3(%rip),%xmm1,%xmm4
472
+ vpxor %xmm4,%xmm1,%xmm1
473
+ vpxor %xmm2,%xmm1,%xmm1
474
+ vmovdqa %xmm1,(%rsi)
475
+ vpshufd $0xff,%xmm1,%xmm2
476
+ vaesenclast %xmm14,%xmm2,%xmm2
477
+ vpsllq $32,%xmm3,%xmm4
478
+ vpxor %xmm4,%xmm3,%xmm3
479
+ vpshufb con3(%rip),%xmm3,%xmm4
480
+ vpxor %xmm4,%xmm3,%xmm3
481
+ vpxor %xmm2,%xmm3,%xmm3
482
+ vmovdqa %xmm3,16(%rsi)
483
+ jne L$ks256_loop
484
+
485
+ vpshufb %xmm15,%xmm3,%xmm2
486
+ vaesenclast %xmm0,%xmm2,%xmm2
487
+ vpsllq $32,%xmm1,%xmm4
488
+ vpxor %xmm4,%xmm1,%xmm1
489
+ vpshufb con3(%rip),%xmm1,%xmm4
490
+ vpxor %xmm4,%xmm1,%xmm1
491
+ vpxor %xmm2,%xmm1,%xmm1
492
+ vmovdqa %xmm1,32(%rsi)
493
+ ret
494
+
495
+ .globl _aes128gcmsiv_aes_ks_enc_x1
496
+ .private_extern _aes128gcmsiv_aes_ks_enc_x1
497
+
498
+ .p2align 4
499
+ .alt_entry _aes128gcmsiv_aes_ks_enc_x1
500
+ _aes128gcmsiv_aes_ks_enc_x1:
501
+
502
+ _CET_ENDBR
503
+ vmovdqa (%rcx),%xmm1 // xmm1 = first 16 bytes of random key
504
+ vmovdqa 0(%rdi),%xmm4
505
+
506
+ vmovdqa %xmm1,(%rdx) // KEY[0] = first 16 bytes of random key
507
+ vpxor %xmm1,%xmm4,%xmm4
508
+
509
+ vmovdqa con1(%rip),%xmm0 // xmm0 = 1,1,1,1
510
+ vmovdqa mask(%rip),%xmm15 // xmm15 = mask
511
+
512
+ vpshufb %xmm15,%xmm1,%xmm2 //
513
+ vaesenclast %xmm0,%xmm2,%xmm2
514
+ vpslld $1,%xmm0,%xmm0
515
+ vpsllq $32,%xmm1,%xmm3 //
516
+ vpxor %xmm3,%xmm1,%xmm1
517
+ vpshufb con3(%rip),%xmm1,%xmm3
518
+ vpxor %xmm3,%xmm1,%xmm1
519
+ vpxor %xmm2,%xmm1,%xmm1
520
+
521
+ vaesenc %xmm1,%xmm4,%xmm4
522
+ vmovdqa %xmm1,16(%rdx)
523
+
524
+ vpshufb %xmm15,%xmm1,%xmm2 //
525
+ vaesenclast %xmm0,%xmm2,%xmm2
526
+ vpslld $1,%xmm0,%xmm0
527
+ vpsllq $32,%xmm1,%xmm3 //
528
+ vpxor %xmm3,%xmm1,%xmm1
529
+ vpshufb con3(%rip),%xmm1,%xmm3
530
+ vpxor %xmm3,%xmm1,%xmm1
531
+ vpxor %xmm2,%xmm1,%xmm1
532
+
533
+ vaesenc %xmm1,%xmm4,%xmm4
534
+ vmovdqa %xmm1,32(%rdx)
535
+
536
+ vpshufb %xmm15,%xmm1,%xmm2 //
537
+ vaesenclast %xmm0,%xmm2,%xmm2
538
+ vpslld $1,%xmm0,%xmm0
539
+ vpsllq $32,%xmm1,%xmm3 //
540
+ vpxor %xmm3,%xmm1,%xmm1
541
+ vpshufb con3(%rip),%xmm1,%xmm3
542
+ vpxor %xmm3,%xmm1,%xmm1
543
+ vpxor %xmm2,%xmm1,%xmm1
544
+
545
+ vaesenc %xmm1,%xmm4,%xmm4
546
+ vmovdqa %xmm1,48(%rdx)
547
+
548
+ vpshufb %xmm15,%xmm1,%xmm2 //
549
+ vaesenclast %xmm0,%xmm2,%xmm2
550
+ vpslld $1,%xmm0,%xmm0
551
+ vpsllq $32,%xmm1,%xmm3 //
552
+ vpxor %xmm3,%xmm1,%xmm1
553
+ vpshufb con3(%rip),%xmm1,%xmm3
554
+ vpxor %xmm3,%xmm1,%xmm1
555
+ vpxor %xmm2,%xmm1,%xmm1
556
+
557
+ vaesenc %xmm1,%xmm4,%xmm4
558
+ vmovdqa %xmm1,64(%rdx)
559
+
560
+ vpshufb %xmm15,%xmm1,%xmm2 //
561
+ vaesenclast %xmm0,%xmm2,%xmm2
562
+ vpslld $1,%xmm0,%xmm0
563
+ vpsllq $32,%xmm1,%xmm3 //
564
+ vpxor %xmm3,%xmm1,%xmm1
565
+ vpshufb con3(%rip),%xmm1,%xmm3
566
+ vpxor %xmm3,%xmm1,%xmm1
567
+ vpxor %xmm2,%xmm1,%xmm1
568
+
569
+ vaesenc %xmm1,%xmm4,%xmm4
570
+ vmovdqa %xmm1,80(%rdx)
571
+
572
+ vpshufb %xmm15,%xmm1,%xmm2 //
573
+ vaesenclast %xmm0,%xmm2,%xmm2
574
+ vpslld $1,%xmm0,%xmm0
575
+ vpsllq $32,%xmm1,%xmm3 //
576
+ vpxor %xmm3,%xmm1,%xmm1
577
+ vpshufb con3(%rip),%xmm1,%xmm3
578
+ vpxor %xmm3,%xmm1,%xmm1
579
+ vpxor %xmm2,%xmm1,%xmm1
580
+
581
+ vaesenc %xmm1,%xmm4,%xmm4
582
+ vmovdqa %xmm1,96(%rdx)
583
+
584
+ vpshufb %xmm15,%xmm1,%xmm2 //
585
+ vaesenclast %xmm0,%xmm2,%xmm2
586
+ vpslld $1,%xmm0,%xmm0
587
+ vpsllq $32,%xmm1,%xmm3 //
588
+ vpxor %xmm3,%xmm1,%xmm1
589
+ vpshufb con3(%rip),%xmm1,%xmm3
590
+ vpxor %xmm3,%xmm1,%xmm1
591
+ vpxor %xmm2,%xmm1,%xmm1
592
+
593
+ vaesenc %xmm1,%xmm4,%xmm4
594
+ vmovdqa %xmm1,112(%rdx)
595
+
596
+ vpshufb %xmm15,%xmm1,%xmm2 //
597
+ vaesenclast %xmm0,%xmm2,%xmm2
598
+ vpslld $1,%xmm0,%xmm0
599
+ vpsllq $32,%xmm1,%xmm3 //
600
+ vpxor %xmm3,%xmm1,%xmm1
601
+ vpshufb con3(%rip),%xmm1,%xmm3
602
+ vpxor %xmm3,%xmm1,%xmm1
603
+ vpxor %xmm2,%xmm1,%xmm1
604
+
605
+ vaesenc %xmm1,%xmm4,%xmm4
606
+ vmovdqa %xmm1,128(%rdx)
607
+
608
+
609
+ vmovdqa con2(%rip),%xmm0
610
+
611
+ vpshufb %xmm15,%xmm1,%xmm2 //
612
+ vaesenclast %xmm0,%xmm2,%xmm2
613
+ vpslld $1,%xmm0,%xmm0
614
+ vpsllq $32,%xmm1,%xmm3 //
615
+ vpxor %xmm3,%xmm1,%xmm1
616
+ vpshufb con3(%rip),%xmm1,%xmm3
617
+ vpxor %xmm3,%xmm1,%xmm1
618
+ vpxor %xmm2,%xmm1,%xmm1
619
+
620
+ vaesenc %xmm1,%xmm4,%xmm4
621
+ vmovdqa %xmm1,144(%rdx)
622
+
623
+ vpshufb %xmm15,%xmm1,%xmm2 //
624
+ vaesenclast %xmm0,%xmm2,%xmm2
625
+ vpsllq $32,%xmm1,%xmm3 //
626
+ vpxor %xmm3,%xmm1,%xmm1
627
+ vpshufb con3(%rip),%xmm1,%xmm3
628
+ vpxor %xmm3,%xmm1,%xmm1
629
+ vpxor %xmm2,%xmm1,%xmm1
630
+
631
+ vaesenclast %xmm1,%xmm4,%xmm4
632
+ vmovdqa %xmm1,160(%rdx)
633
+
634
+
635
+ vmovdqa %xmm4,0(%rsi)
636
+ ret
637
+
638
+
639
+ .globl _aes128gcmsiv_kdf
640
+ .private_extern _aes128gcmsiv_kdf
641
+
642
+ .p2align 4
643
+ .alt_entry _aes128gcmsiv_kdf
644
+ _aes128gcmsiv_kdf:
645
+
646
+ _CET_ENDBR
647
+ // parameter 1: %rdi Pointer to NONCE
648
+ // parameter 2: %rsi Pointer to CT
649
+ // parameter 4: %rdx Pointer to keys
650
+
651
+ vmovdqa (%rdx),%xmm1 // xmm1 = first 16 bytes of random key
652
+ vmovdqa 0(%rdi),%xmm9
653
+ vmovdqa and_mask(%rip),%xmm12
654
+ vmovdqa one(%rip),%xmm13
655
+ vpshufd $0x90,%xmm9,%xmm9
656
+ vpand %xmm12,%xmm9,%xmm9
657
+ vpaddd %xmm13,%xmm9,%xmm10
658
+ vpaddd %xmm13,%xmm10,%xmm11
659
+ vpaddd %xmm13,%xmm11,%xmm12
660
+
661
+ vpxor %xmm1,%xmm9,%xmm9
662
+ vpxor %xmm1,%xmm10,%xmm10
663
+ vpxor %xmm1,%xmm11,%xmm11
664
+ vpxor %xmm1,%xmm12,%xmm12
665
+
666
+ vmovdqa 16(%rdx),%xmm1
667
+ vaesenc %xmm1,%xmm9,%xmm9
668
+ vaesenc %xmm1,%xmm10,%xmm10
669
+ vaesenc %xmm1,%xmm11,%xmm11
670
+ vaesenc %xmm1,%xmm12,%xmm12
671
+
672
+ vmovdqa 32(%rdx),%xmm2
673
+ vaesenc %xmm2,%xmm9,%xmm9
674
+ vaesenc %xmm2,%xmm10,%xmm10
675
+ vaesenc %xmm2,%xmm11,%xmm11
676
+ vaesenc %xmm2,%xmm12,%xmm12
677
+
678
+ vmovdqa 48(%rdx),%xmm1
679
+ vaesenc %xmm1,%xmm9,%xmm9
680
+ vaesenc %xmm1,%xmm10,%xmm10
681
+ vaesenc %xmm1,%xmm11,%xmm11
682
+ vaesenc %xmm1,%xmm12,%xmm12
683
+
684
+ vmovdqa 64(%rdx),%xmm2
685
+ vaesenc %xmm2,%xmm9,%xmm9
686
+ vaesenc %xmm2,%xmm10,%xmm10
687
+ vaesenc %xmm2,%xmm11,%xmm11
688
+ vaesenc %xmm2,%xmm12,%xmm12
689
+
690
+ vmovdqa 80(%rdx),%xmm1
691
+ vaesenc %xmm1,%xmm9,%xmm9
692
+ vaesenc %xmm1,%xmm10,%xmm10
693
+ vaesenc %xmm1,%xmm11,%xmm11
694
+ vaesenc %xmm1,%xmm12,%xmm12
695
+
696
+ vmovdqa 96(%rdx),%xmm2
697
+ vaesenc %xmm2,%xmm9,%xmm9
698
+ vaesenc %xmm2,%xmm10,%xmm10
699
+ vaesenc %xmm2,%xmm11,%xmm11
700
+ vaesenc %xmm2,%xmm12,%xmm12
701
+
702
+ vmovdqa 112(%rdx),%xmm1
703
+ vaesenc %xmm1,%xmm9,%xmm9
704
+ vaesenc %xmm1,%xmm10,%xmm10
705
+ vaesenc %xmm1,%xmm11,%xmm11
706
+ vaesenc %xmm1,%xmm12,%xmm12
707
+
708
+ vmovdqa 128(%rdx),%xmm2
709
+ vaesenc %xmm2,%xmm9,%xmm9
710
+ vaesenc %xmm2,%xmm10,%xmm10
711
+ vaesenc %xmm2,%xmm11,%xmm11
712
+ vaesenc %xmm2,%xmm12,%xmm12
713
+
714
+ vmovdqa 144(%rdx),%xmm1
715
+ vaesenc %xmm1,%xmm9,%xmm9
716
+ vaesenc %xmm1,%xmm10,%xmm10
717
+ vaesenc %xmm1,%xmm11,%xmm11
718
+ vaesenc %xmm1,%xmm12,%xmm12
719
+
720
+ vmovdqa 160(%rdx),%xmm2
721
+ vaesenclast %xmm2,%xmm9,%xmm9
722
+ vaesenclast %xmm2,%xmm10,%xmm10
723
+ vaesenclast %xmm2,%xmm11,%xmm11
724
+ vaesenclast %xmm2,%xmm12,%xmm12
725
+
726
+
727
+ vmovdqa %xmm9,0(%rsi)
728
+ vmovdqa %xmm10,16(%rsi)
729
+ vmovdqa %xmm11,32(%rsi)
730
+ vmovdqa %xmm12,48(%rsi)
731
+ ret
732
+
733
+
734
+ .globl _aes128gcmsiv_enc_msg_x4
735
+ .private_extern _aes128gcmsiv_enc_msg_x4
736
+
737
+ .p2align 4
738
+ .alt_entry _aes128gcmsiv_enc_msg_x4
739
+ _aes128gcmsiv_enc_msg_x4:
740
+
741
+ _CET_ENDBR
742
+ testq %r8,%r8
743
+ jnz L$128_enc_msg_x4_start
744
+ ret
745
+
746
+ L$128_enc_msg_x4_start:
747
+ pushq %r12
748
+
749
+ pushq %r13
750
+
751
+
752
+ shrq $4,%r8 // LEN = num of blocks
753
+ movq %r8,%r10
754
+ shlq $62,%r10
755
+ shrq $62,%r10
756
+
757
+ // make IV from TAG
758
+ vmovdqa (%rdx),%xmm15
759
+ vpor OR_MASK(%rip),%xmm15,%xmm15 // IV = [1]TAG[126...32][00..00]
760
+
761
+ vmovdqu four(%rip),%xmm4 // Register to increment counters
762
+ vmovdqa %xmm15,%xmm0 // CTR1 = TAG[1][127...32][00..00]
763
+ vpaddd one(%rip),%xmm15,%xmm1 // CTR2 = TAG[1][127...32][00..01]
764
+ vpaddd two(%rip),%xmm15,%xmm2 // CTR3 = TAG[1][127...32][00..02]
765
+ vpaddd three(%rip),%xmm15,%xmm3 // CTR4 = TAG[1][127...32][00..03]
766
+
767
+ shrq $2,%r8
768
+ je L$128_enc_msg_x4_check_remainder
769
+
770
+ subq $64,%rsi
771
+ subq $64,%rdi
772
+
773
+ L$128_enc_msg_x4_loop1:
774
+ addq $64,%rsi
775
+ addq $64,%rdi
776
+
777
+ vmovdqa %xmm0,%xmm5
778
+ vmovdqa %xmm1,%xmm6
779
+ vmovdqa %xmm2,%xmm7
780
+ vmovdqa %xmm3,%xmm8
781
+
782
+ vpxor (%rcx),%xmm5,%xmm5
783
+ vpxor (%rcx),%xmm6,%xmm6
784
+ vpxor (%rcx),%xmm7,%xmm7
785
+ vpxor (%rcx),%xmm8,%xmm8
786
+
787
+ vmovdqu 16(%rcx),%xmm12
788
+ vaesenc %xmm12,%xmm5,%xmm5
789
+ vaesenc %xmm12,%xmm6,%xmm6
790
+ vaesenc %xmm12,%xmm7,%xmm7
791
+ vaesenc %xmm12,%xmm8,%xmm8
792
+
793
+ vpaddd %xmm4,%xmm0,%xmm0
794
+ vmovdqu 32(%rcx),%xmm12
795
+ vaesenc %xmm12,%xmm5,%xmm5
796
+ vaesenc %xmm12,%xmm6,%xmm6
797
+ vaesenc %xmm12,%xmm7,%xmm7
798
+ vaesenc %xmm12,%xmm8,%xmm8
799
+
800
+ vpaddd %xmm4,%xmm1,%xmm1
801
+ vmovdqu 48(%rcx),%xmm12
802
+ vaesenc %xmm12,%xmm5,%xmm5
803
+ vaesenc %xmm12,%xmm6,%xmm6
804
+ vaesenc %xmm12,%xmm7,%xmm7
805
+ vaesenc %xmm12,%xmm8,%xmm8
806
+
807
+ vpaddd %xmm4,%xmm2,%xmm2
808
+ vmovdqu 64(%rcx),%xmm12
809
+ vaesenc %xmm12,%xmm5,%xmm5
810
+ vaesenc %xmm12,%xmm6,%xmm6
811
+ vaesenc %xmm12,%xmm7,%xmm7
812
+ vaesenc %xmm12,%xmm8,%xmm8
813
+
814
+ vpaddd %xmm4,%xmm3,%xmm3
815
+
816
+ vmovdqu 80(%rcx),%xmm12
817
+ vaesenc %xmm12,%xmm5,%xmm5
818
+ vaesenc %xmm12,%xmm6,%xmm6
819
+ vaesenc %xmm12,%xmm7,%xmm7
820
+ vaesenc %xmm12,%xmm8,%xmm8
821
+
822
+ vmovdqu 96(%rcx),%xmm12
823
+ vaesenc %xmm12,%xmm5,%xmm5
824
+ vaesenc %xmm12,%xmm6,%xmm6
825
+ vaesenc %xmm12,%xmm7,%xmm7
826
+ vaesenc %xmm12,%xmm8,%xmm8
827
+
828
+ vmovdqu 112(%rcx),%xmm12
829
+ vaesenc %xmm12,%xmm5,%xmm5
830
+ vaesenc %xmm12,%xmm6,%xmm6
831
+ vaesenc %xmm12,%xmm7,%xmm7
832
+ vaesenc %xmm12,%xmm8,%xmm8
833
+
834
+ vmovdqu 128(%rcx),%xmm12
835
+ vaesenc %xmm12,%xmm5,%xmm5
836
+ vaesenc %xmm12,%xmm6,%xmm6
837
+ vaesenc %xmm12,%xmm7,%xmm7
838
+ vaesenc %xmm12,%xmm8,%xmm8
839
+
840
+ vmovdqu 144(%rcx),%xmm12
841
+ vaesenc %xmm12,%xmm5,%xmm5
842
+ vaesenc %xmm12,%xmm6,%xmm6
843
+ vaesenc %xmm12,%xmm7,%xmm7
844
+ vaesenc %xmm12,%xmm8,%xmm8
845
+
846
+ vmovdqu 160(%rcx),%xmm12
847
+ vaesenclast %xmm12,%xmm5,%xmm5
848
+ vaesenclast %xmm12,%xmm6,%xmm6
849
+ vaesenclast %xmm12,%xmm7,%xmm7
850
+ vaesenclast %xmm12,%xmm8,%xmm8
851
+
852
+
853
+ // XOR with Plaintext
854
+ vpxor 0(%rdi),%xmm5,%xmm5
855
+ vpxor 16(%rdi),%xmm6,%xmm6
856
+ vpxor 32(%rdi),%xmm7,%xmm7
857
+ vpxor 48(%rdi),%xmm8,%xmm8
858
+
859
+ subq $1,%r8
860
+
861
+ vmovdqu %xmm5,0(%rsi)
862
+ vmovdqu %xmm6,16(%rsi)
863
+ vmovdqu %xmm7,32(%rsi)
864
+ vmovdqu %xmm8,48(%rsi)
865
+
866
+ jne L$128_enc_msg_x4_loop1
867
+
868
+ addq $64,%rsi
869
+ addq $64,%rdi
870
+
871
+ L$128_enc_msg_x4_check_remainder:
872
+ cmpq $0,%r10
873
+ je L$128_enc_msg_x4_out
874
+
875
+ L$128_enc_msg_x4_loop2:
876
+ // enc each block separately
877
+ // CTR1 is the highest counter (even if no LOOP done)
878
+ vmovdqa %xmm0,%xmm5
879
+ vpaddd one(%rip),%xmm0,%xmm0 // inc counter
880
+
881
+ vpxor (%rcx),%xmm5,%xmm5
882
+ vaesenc 16(%rcx),%xmm5,%xmm5
883
+ vaesenc 32(%rcx),%xmm5,%xmm5
884
+ vaesenc 48(%rcx),%xmm5,%xmm5
885
+ vaesenc 64(%rcx),%xmm5,%xmm5
886
+ vaesenc 80(%rcx),%xmm5,%xmm5
887
+ vaesenc 96(%rcx),%xmm5,%xmm5
888
+ vaesenc 112(%rcx),%xmm5,%xmm5
889
+ vaesenc 128(%rcx),%xmm5,%xmm5
890
+ vaesenc 144(%rcx),%xmm5,%xmm5
891
+ vaesenclast 160(%rcx),%xmm5,%xmm5
892
+
893
+ // XOR with plaintext
894
+ vpxor (%rdi),%xmm5,%xmm5
895
+ vmovdqu %xmm5,(%rsi)
896
+
897
+ addq $16,%rdi
898
+ addq $16,%rsi
899
+
900
+ subq $1,%r10
901
+ jne L$128_enc_msg_x4_loop2
902
+
903
+ L$128_enc_msg_x4_out:
904
+ popq %r13
905
+
906
+ popq %r12
907
+
908
+ ret
909
+
910
+
911
+ .globl _aes128gcmsiv_enc_msg_x8
912
+ .private_extern _aes128gcmsiv_enc_msg_x8
913
+
914
+ .p2align 4
915
+ .alt_entry _aes128gcmsiv_enc_msg_x8
916
+ _aes128gcmsiv_enc_msg_x8:
917
+
918
+ _CET_ENDBR
919
+ testq %r8,%r8
920
+ jnz L$128_enc_msg_x8_start
921
+ ret
922
+
923
+ L$128_enc_msg_x8_start:
924
+ pushq %r12
925
+
926
+ pushq %r13
927
+
928
+ pushq %rbp
929
+
930
+ movq %rsp,%rbp
931
+
932
+
933
+ // Place in stack
934
+ subq $128,%rsp
935
+ andq $-64,%rsp
936
+
937
+ shrq $4,%r8 // LEN = num of blocks
938
+ movq %r8,%r10
939
+ shlq $61,%r10
940
+ shrq $61,%r10
941
+
942
+ // make IV from TAG
943
+ vmovdqu (%rdx),%xmm1
944
+ vpor OR_MASK(%rip),%xmm1,%xmm1 // TMP1= IV = [1]TAG[126...32][00..00]
945
+
946
+ // store counter8 in the stack
947
+ vpaddd seven(%rip),%xmm1,%xmm0
948
+ vmovdqu %xmm0,(%rsp) // CTR8 = TAG[127...32][00..07]
949
+ vpaddd one(%rip),%xmm1,%xmm9 // CTR2 = TAG[127...32][00..01]
950
+ vpaddd two(%rip),%xmm1,%xmm10 // CTR3 = TAG[127...32][00..02]
951
+ vpaddd three(%rip),%xmm1,%xmm11 // CTR4 = TAG[127...32][00..03]
952
+ vpaddd four(%rip),%xmm1,%xmm12 // CTR5 = TAG[127...32][00..04]
953
+ vpaddd five(%rip),%xmm1,%xmm13 // CTR6 = TAG[127...32][00..05]
954
+ vpaddd six(%rip),%xmm1,%xmm14 // CTR7 = TAG[127...32][00..06]
955
+ vmovdqa %xmm1,%xmm0 // CTR1 = TAG[127...32][00..00]
956
+
957
+ shrq $3,%r8
958
+ je L$128_enc_msg_x8_check_remainder
959
+
960
+ subq $128,%rsi
961
+ subq $128,%rdi
962
+
963
+ L$128_enc_msg_x8_loop1:
964
+ addq $128,%rsi
965
+ addq $128,%rdi
966
+
967
+ vmovdqa %xmm0,%xmm1
968
+ vmovdqa %xmm9,%xmm2
969
+ vmovdqa %xmm10,%xmm3
970
+ vmovdqa %xmm11,%xmm4
971
+ vmovdqa %xmm12,%xmm5
972
+ vmovdqa %xmm13,%xmm6
973
+ vmovdqa %xmm14,%xmm7
974
+ // move from stack
975
+ vmovdqu (%rsp),%xmm8
976
+
977
+ vpxor (%rcx),%xmm1,%xmm1
978
+ vpxor (%rcx),%xmm2,%xmm2
979
+ vpxor (%rcx),%xmm3,%xmm3
980
+ vpxor (%rcx),%xmm4,%xmm4
981
+ vpxor (%rcx),%xmm5,%xmm5
982
+ vpxor (%rcx),%xmm6,%xmm6
983
+ vpxor (%rcx),%xmm7,%xmm7
984
+ vpxor (%rcx),%xmm8,%xmm8
985
+
986
+ vmovdqu 16(%rcx),%xmm15
987
+ vaesenc %xmm15,%xmm1,%xmm1
988
+ vaesenc %xmm15,%xmm2,%xmm2
989
+ vaesenc %xmm15,%xmm3,%xmm3
990
+ vaesenc %xmm15,%xmm4,%xmm4
991
+ vaesenc %xmm15,%xmm5,%xmm5
992
+ vaesenc %xmm15,%xmm6,%xmm6
993
+ vaesenc %xmm15,%xmm7,%xmm7
994
+ vaesenc %xmm15,%xmm8,%xmm8
995
+
996
+ vmovdqu (%rsp),%xmm14 // deal with CTR8
997
+ vpaddd eight(%rip),%xmm14,%xmm14
998
+ vmovdqu %xmm14,(%rsp)
999
+ vmovdqu 32(%rcx),%xmm15
1000
+ vaesenc %xmm15,%xmm1,%xmm1
1001
+ vaesenc %xmm15,%xmm2,%xmm2
1002
+ vaesenc %xmm15,%xmm3,%xmm3
1003
+ vaesenc %xmm15,%xmm4,%xmm4
1004
+ vaesenc %xmm15,%xmm5,%xmm5
1005
+ vaesenc %xmm15,%xmm6,%xmm6
1006
+ vaesenc %xmm15,%xmm7,%xmm7
1007
+ vaesenc %xmm15,%xmm8,%xmm8
1008
+
1009
+ vpsubd one(%rip),%xmm14,%xmm14
1010
+ vmovdqu 48(%rcx),%xmm15
1011
+ vaesenc %xmm15,%xmm1,%xmm1
1012
+ vaesenc %xmm15,%xmm2,%xmm2
1013
+ vaesenc %xmm15,%xmm3,%xmm3
1014
+ vaesenc %xmm15,%xmm4,%xmm4
1015
+ vaesenc %xmm15,%xmm5,%xmm5
1016
+ vaesenc %xmm15,%xmm6,%xmm6
1017
+ vaesenc %xmm15,%xmm7,%xmm7
1018
+ vaesenc %xmm15,%xmm8,%xmm8
1019
+
1020
+ vpaddd eight(%rip),%xmm0,%xmm0
1021
+ vmovdqu 64(%rcx),%xmm15
1022
+ vaesenc %xmm15,%xmm1,%xmm1
1023
+ vaesenc %xmm15,%xmm2,%xmm2
1024
+ vaesenc %xmm15,%xmm3,%xmm3
1025
+ vaesenc %xmm15,%xmm4,%xmm4
1026
+ vaesenc %xmm15,%xmm5,%xmm5
1027
+ vaesenc %xmm15,%xmm6,%xmm6
1028
+ vaesenc %xmm15,%xmm7,%xmm7
1029
+ vaesenc %xmm15,%xmm8,%xmm8
1030
+
1031
+ vpaddd eight(%rip),%xmm9,%xmm9
1032
+ vmovdqu 80(%rcx),%xmm15
1033
+ vaesenc %xmm15,%xmm1,%xmm1
1034
+ vaesenc %xmm15,%xmm2,%xmm2
1035
+ vaesenc %xmm15,%xmm3,%xmm3
1036
+ vaesenc %xmm15,%xmm4,%xmm4
1037
+ vaesenc %xmm15,%xmm5,%xmm5
1038
+ vaesenc %xmm15,%xmm6,%xmm6
1039
+ vaesenc %xmm15,%xmm7,%xmm7
1040
+ vaesenc %xmm15,%xmm8,%xmm8
1041
+
1042
+ vpaddd eight(%rip),%xmm10,%xmm10
1043
+ vmovdqu 96(%rcx),%xmm15
1044
+ vaesenc %xmm15,%xmm1,%xmm1
1045
+ vaesenc %xmm15,%xmm2,%xmm2
1046
+ vaesenc %xmm15,%xmm3,%xmm3
1047
+ vaesenc %xmm15,%xmm4,%xmm4
1048
+ vaesenc %xmm15,%xmm5,%xmm5
1049
+ vaesenc %xmm15,%xmm6,%xmm6
1050
+ vaesenc %xmm15,%xmm7,%xmm7
1051
+ vaesenc %xmm15,%xmm8,%xmm8
1052
+
1053
+ vpaddd eight(%rip),%xmm11,%xmm11
1054
+ vmovdqu 112(%rcx),%xmm15
1055
+ vaesenc %xmm15,%xmm1,%xmm1
1056
+ vaesenc %xmm15,%xmm2,%xmm2
1057
+ vaesenc %xmm15,%xmm3,%xmm3
1058
+ vaesenc %xmm15,%xmm4,%xmm4
1059
+ vaesenc %xmm15,%xmm5,%xmm5
1060
+ vaesenc %xmm15,%xmm6,%xmm6
1061
+ vaesenc %xmm15,%xmm7,%xmm7
1062
+ vaesenc %xmm15,%xmm8,%xmm8
1063
+
1064
+ vpaddd eight(%rip),%xmm12,%xmm12
1065
+ vmovdqu 128(%rcx),%xmm15
1066
+ vaesenc %xmm15,%xmm1,%xmm1
1067
+ vaesenc %xmm15,%xmm2,%xmm2
1068
+ vaesenc %xmm15,%xmm3,%xmm3
1069
+ vaesenc %xmm15,%xmm4,%xmm4
1070
+ vaesenc %xmm15,%xmm5,%xmm5
1071
+ vaesenc %xmm15,%xmm6,%xmm6
1072
+ vaesenc %xmm15,%xmm7,%xmm7
1073
+ vaesenc %xmm15,%xmm8,%xmm8
1074
+
1075
+ vpaddd eight(%rip),%xmm13,%xmm13
1076
+ vmovdqu 144(%rcx),%xmm15
1077
+ vaesenc %xmm15,%xmm1,%xmm1
1078
+ vaesenc %xmm15,%xmm2,%xmm2
1079
+ vaesenc %xmm15,%xmm3,%xmm3
1080
+ vaesenc %xmm15,%xmm4,%xmm4
1081
+ vaesenc %xmm15,%xmm5,%xmm5
1082
+ vaesenc %xmm15,%xmm6,%xmm6
1083
+ vaesenc %xmm15,%xmm7,%xmm7
1084
+ vaesenc %xmm15,%xmm8,%xmm8
1085
+
1086
+ vmovdqu 160(%rcx),%xmm15
1087
+ vaesenclast %xmm15,%xmm1,%xmm1
1088
+ vaesenclast %xmm15,%xmm2,%xmm2
1089
+ vaesenclast %xmm15,%xmm3,%xmm3
1090
+ vaesenclast %xmm15,%xmm4,%xmm4
1091
+ vaesenclast %xmm15,%xmm5,%xmm5
1092
+ vaesenclast %xmm15,%xmm6,%xmm6
1093
+ vaesenclast %xmm15,%xmm7,%xmm7
1094
+ vaesenclast %xmm15,%xmm8,%xmm8
1095
+
1096
+
1097
+ // XOR with Plaintext
1098
+ vpxor 0(%rdi),%xmm1,%xmm1
1099
+ vpxor 16(%rdi),%xmm2,%xmm2
1100
+ vpxor 32(%rdi),%xmm3,%xmm3
1101
+ vpxor 48(%rdi),%xmm4,%xmm4
1102
+ vpxor 64(%rdi),%xmm5,%xmm5
1103
+ vpxor 80(%rdi),%xmm6,%xmm6
1104
+ vpxor 96(%rdi),%xmm7,%xmm7
1105
+ vpxor 112(%rdi),%xmm8,%xmm8
1106
+
1107
+ decq %r8
1108
+
1109
+ vmovdqu %xmm1,0(%rsi)
1110
+ vmovdqu %xmm2,16(%rsi)
1111
+ vmovdqu %xmm3,32(%rsi)
1112
+ vmovdqu %xmm4,48(%rsi)
1113
+ vmovdqu %xmm5,64(%rsi)
1114
+ vmovdqu %xmm6,80(%rsi)
1115
+ vmovdqu %xmm7,96(%rsi)
1116
+ vmovdqu %xmm8,112(%rsi)
1117
+
1118
+ jne L$128_enc_msg_x8_loop1
1119
+
1120
+ addq $128,%rsi
1121
+ addq $128,%rdi
1122
+
1123
+ L$128_enc_msg_x8_check_remainder:
1124
+ cmpq $0,%r10
1125
+ je L$128_enc_msg_x8_out
1126
+
1127
+ L$128_enc_msg_x8_loop2:
1128
+ // enc each block separately
1129
+ // CTR1 is the highest counter (even if no LOOP done)
1130
+ vmovdqa %xmm0,%xmm1
1131
+ vpaddd one(%rip),%xmm0,%xmm0 // inc counter
1132
+
1133
+ vpxor (%rcx),%xmm1,%xmm1
1134
+ vaesenc 16(%rcx),%xmm1,%xmm1
1135
+ vaesenc 32(%rcx),%xmm1,%xmm1
1136
+ vaesenc 48(%rcx),%xmm1,%xmm1
1137
+ vaesenc 64(%rcx),%xmm1,%xmm1
1138
+ vaesenc 80(%rcx),%xmm1,%xmm1
1139
+ vaesenc 96(%rcx),%xmm1,%xmm1
1140
+ vaesenc 112(%rcx),%xmm1,%xmm1
1141
+ vaesenc 128(%rcx),%xmm1,%xmm1
1142
+ vaesenc 144(%rcx),%xmm1,%xmm1
1143
+ vaesenclast 160(%rcx),%xmm1,%xmm1
1144
+
1145
+ // XOR with Plaintext
1146
+ vpxor (%rdi),%xmm1,%xmm1
1147
+
1148
+ vmovdqu %xmm1,(%rsi)
1149
+
1150
+ addq $16,%rdi
1151
+ addq $16,%rsi
1152
+
1153
+ decq %r10
1154
+ jne L$128_enc_msg_x8_loop2
1155
+
1156
+ L$128_enc_msg_x8_out:
1157
+ movq %rbp,%rsp
1158
+
1159
+ popq %rbp
1160
+
1161
+ popq %r13
1162
+
1163
+ popq %r12
1164
+
1165
+ ret
1166
+
1167
+
1168
+ .globl _aes128gcmsiv_dec
1169
+ .private_extern _aes128gcmsiv_dec
1170
+
1171
+ .p2align 4
1172
+ .alt_entry _aes128gcmsiv_dec
1173
+ _aes128gcmsiv_dec:
1174
+
1175
+ _CET_ENDBR
1176
+ testq $~15,%r9
1177
+ jnz L$128_dec_start
1178
+ ret
1179
+
1180
+ L$128_dec_start:
1181
+ vzeroupper
1182
+ vmovdqa (%rdx),%xmm0
1183
+ // The claimed tag is provided after the current calculated tag value.
1184
+ // CTRBLKs is made from it.
1185
+ vmovdqu 16(%rdx),%xmm15
1186
+ vpor OR_MASK(%rip),%xmm15,%xmm15 // CTR = [1]TAG[126...32][00..00]
1187
+ movq %rdx,%rax
1188
+
1189
+ leaq 32(%rax),%rax
1190
+ leaq 32(%rcx),%rcx
1191
+
1192
+ andq $~15,%r9
1193
+
1194
+ // If less then 6 blocks, make singles
1195
+ cmpq $96,%r9
1196
+ jb L$128_dec_loop2
1197
+
1198
+ // Decrypt the first six blocks
1199
+ subq $96,%r9
1200
+ vmovdqa %xmm15,%xmm7
1201
+ vpaddd one(%rip),%xmm7,%xmm8
1202
+ vpaddd two(%rip),%xmm7,%xmm9
1203
+ vpaddd one(%rip),%xmm9,%xmm10
1204
+ vpaddd two(%rip),%xmm9,%xmm11
1205
+ vpaddd one(%rip),%xmm11,%xmm12
1206
+ vpaddd two(%rip),%xmm11,%xmm15
1207
+
1208
+ vpxor (%r8),%xmm7,%xmm7
1209
+ vpxor (%r8),%xmm8,%xmm8
1210
+ vpxor (%r8),%xmm9,%xmm9
1211
+ vpxor (%r8),%xmm10,%xmm10
1212
+ vpxor (%r8),%xmm11,%xmm11
1213
+ vpxor (%r8),%xmm12,%xmm12
1214
+
1215
+ vmovdqu 16(%r8),%xmm4
1216
+ vaesenc %xmm4,%xmm7,%xmm7
1217
+ vaesenc %xmm4,%xmm8,%xmm8
1218
+ vaesenc %xmm4,%xmm9,%xmm9
1219
+ vaesenc %xmm4,%xmm10,%xmm10
1220
+ vaesenc %xmm4,%xmm11,%xmm11
1221
+ vaesenc %xmm4,%xmm12,%xmm12
1222
+
1223
+ vmovdqu 32(%r8),%xmm4
1224
+ vaesenc %xmm4,%xmm7,%xmm7
1225
+ vaesenc %xmm4,%xmm8,%xmm8
1226
+ vaesenc %xmm4,%xmm9,%xmm9
1227
+ vaesenc %xmm4,%xmm10,%xmm10
1228
+ vaesenc %xmm4,%xmm11,%xmm11
1229
+ vaesenc %xmm4,%xmm12,%xmm12
1230
+
1231
+ vmovdqu 48(%r8),%xmm4
1232
+ vaesenc %xmm4,%xmm7,%xmm7
1233
+ vaesenc %xmm4,%xmm8,%xmm8
1234
+ vaesenc %xmm4,%xmm9,%xmm9
1235
+ vaesenc %xmm4,%xmm10,%xmm10
1236
+ vaesenc %xmm4,%xmm11,%xmm11
1237
+ vaesenc %xmm4,%xmm12,%xmm12
1238
+
1239
+ vmovdqu 64(%r8),%xmm4
1240
+ vaesenc %xmm4,%xmm7,%xmm7
1241
+ vaesenc %xmm4,%xmm8,%xmm8
1242
+ vaesenc %xmm4,%xmm9,%xmm9
1243
+ vaesenc %xmm4,%xmm10,%xmm10
1244
+ vaesenc %xmm4,%xmm11,%xmm11
1245
+ vaesenc %xmm4,%xmm12,%xmm12
1246
+
1247
+ vmovdqu 80(%r8),%xmm4
1248
+ vaesenc %xmm4,%xmm7,%xmm7
1249
+ vaesenc %xmm4,%xmm8,%xmm8
1250
+ vaesenc %xmm4,%xmm9,%xmm9
1251
+ vaesenc %xmm4,%xmm10,%xmm10
1252
+ vaesenc %xmm4,%xmm11,%xmm11
1253
+ vaesenc %xmm4,%xmm12,%xmm12
1254
+
1255
+ vmovdqu 96(%r8),%xmm4
1256
+ vaesenc %xmm4,%xmm7,%xmm7
1257
+ vaesenc %xmm4,%xmm8,%xmm8
1258
+ vaesenc %xmm4,%xmm9,%xmm9
1259
+ vaesenc %xmm4,%xmm10,%xmm10
1260
+ vaesenc %xmm4,%xmm11,%xmm11
1261
+ vaesenc %xmm4,%xmm12,%xmm12
1262
+
1263
+ vmovdqu 112(%r8),%xmm4
1264
+ vaesenc %xmm4,%xmm7,%xmm7
1265
+ vaesenc %xmm4,%xmm8,%xmm8
1266
+ vaesenc %xmm4,%xmm9,%xmm9
1267
+ vaesenc %xmm4,%xmm10,%xmm10
1268
+ vaesenc %xmm4,%xmm11,%xmm11
1269
+ vaesenc %xmm4,%xmm12,%xmm12
1270
+
1271
+ vmovdqu 128(%r8),%xmm4
1272
+ vaesenc %xmm4,%xmm7,%xmm7
1273
+ vaesenc %xmm4,%xmm8,%xmm8
1274
+ vaesenc %xmm4,%xmm9,%xmm9
1275
+ vaesenc %xmm4,%xmm10,%xmm10
1276
+ vaesenc %xmm4,%xmm11,%xmm11
1277
+ vaesenc %xmm4,%xmm12,%xmm12
1278
+
1279
+ vmovdqu 144(%r8),%xmm4
1280
+ vaesenc %xmm4,%xmm7,%xmm7
1281
+ vaesenc %xmm4,%xmm8,%xmm8
1282
+ vaesenc %xmm4,%xmm9,%xmm9
1283
+ vaesenc %xmm4,%xmm10,%xmm10
1284
+ vaesenc %xmm4,%xmm11,%xmm11
1285
+ vaesenc %xmm4,%xmm12,%xmm12
1286
+
1287
+ vmovdqu 160(%r8),%xmm4
1288
+ vaesenclast %xmm4,%xmm7,%xmm7
1289
+ vaesenclast %xmm4,%xmm8,%xmm8
1290
+ vaesenclast %xmm4,%xmm9,%xmm9
1291
+ vaesenclast %xmm4,%xmm10,%xmm10
1292
+ vaesenclast %xmm4,%xmm11,%xmm11
1293
+ vaesenclast %xmm4,%xmm12,%xmm12
1294
+
1295
+ // XOR with CT
1296
+ vpxor 0(%rdi),%xmm7,%xmm7
1297
+ vpxor 16(%rdi),%xmm8,%xmm8
1298
+ vpxor 32(%rdi),%xmm9,%xmm9
1299
+ vpxor 48(%rdi),%xmm10,%xmm10
1300
+ vpxor 64(%rdi),%xmm11,%xmm11
1301
+ vpxor 80(%rdi),%xmm12,%xmm12
1302
+
1303
+ vmovdqu %xmm7,0(%rsi)
1304
+ vmovdqu %xmm8,16(%rsi)
1305
+ vmovdqu %xmm9,32(%rsi)
1306
+ vmovdqu %xmm10,48(%rsi)
1307
+ vmovdqu %xmm11,64(%rsi)
1308
+ vmovdqu %xmm12,80(%rsi)
1309
+
1310
+ addq $96,%rdi
1311
+ addq $96,%rsi
1312
+ jmp L$128_dec_loop1
1313
+
1314
+ // Decrypt 6 blocks each time while hashing previous 6 blocks
1315
+ .p2align 6
1316
+ L$128_dec_loop1:
1317
+ cmpq $96,%r9
1318
+ jb L$128_dec_finish_96
1319
+ subq $96,%r9
1320
+
1321
+ vmovdqa %xmm12,%xmm6
1322
+ vmovdqa %xmm11,16-32(%rax)
1323
+ vmovdqa %xmm10,32-32(%rax)
1324
+ vmovdqa %xmm9,48-32(%rax)
1325
+ vmovdqa %xmm8,64-32(%rax)
1326
+ vmovdqa %xmm7,80-32(%rax)
1327
+
1328
+ vmovdqa %xmm15,%xmm7
1329
+ vpaddd one(%rip),%xmm7,%xmm8
1330
+ vpaddd two(%rip),%xmm7,%xmm9
1331
+ vpaddd one(%rip),%xmm9,%xmm10
1332
+ vpaddd two(%rip),%xmm9,%xmm11
1333
+ vpaddd one(%rip),%xmm11,%xmm12
1334
+ vpaddd two(%rip),%xmm11,%xmm15
1335
+
1336
+ vmovdqa (%r8),%xmm4
1337
+ vpxor %xmm4,%xmm7,%xmm7
1338
+ vpxor %xmm4,%xmm8,%xmm8
1339
+ vpxor %xmm4,%xmm9,%xmm9
1340
+ vpxor %xmm4,%xmm10,%xmm10
1341
+ vpxor %xmm4,%xmm11,%xmm11
1342
+ vpxor %xmm4,%xmm12,%xmm12
1343
+
1344
+ vmovdqu 0-32(%rcx),%xmm4
1345
+ vpclmulqdq $0x11,%xmm4,%xmm6,%xmm2
1346
+ vpclmulqdq $0x00,%xmm4,%xmm6,%xmm3
1347
+ vpclmulqdq $0x01,%xmm4,%xmm6,%xmm1
1348
+ vpclmulqdq $0x10,%xmm4,%xmm6,%xmm4
1349
+ vpxor %xmm4,%xmm1,%xmm1
1350
+
1351
+ vmovdqu 16(%r8),%xmm4
1352
+ vaesenc %xmm4,%xmm7,%xmm7
1353
+ vaesenc %xmm4,%xmm8,%xmm8
1354
+ vaesenc %xmm4,%xmm9,%xmm9
1355
+ vaesenc %xmm4,%xmm10,%xmm10
1356
+ vaesenc %xmm4,%xmm11,%xmm11
1357
+ vaesenc %xmm4,%xmm12,%xmm12
1358
+
1359
+ vmovdqu -16(%rax),%xmm6
1360
+ vmovdqu -16(%rcx),%xmm13
1361
+
1362
+ vpclmulqdq $0x10,%xmm13,%xmm6,%xmm4
1363
+ vpxor %xmm4,%xmm1,%xmm1
1364
+ vpclmulqdq $0x11,%xmm13,%xmm6,%xmm4
1365
+ vpxor %xmm4,%xmm2,%xmm2
1366
+ vpclmulqdq $0x00,%xmm13,%xmm6,%xmm4
1367
+ vpxor %xmm4,%xmm3,%xmm3
1368
+ vpclmulqdq $0x01,%xmm13,%xmm6,%xmm4
1369
+ vpxor %xmm4,%xmm1,%xmm1
1370
+
1371
+
1372
+ vmovdqu 32(%r8),%xmm4
1373
+ vaesenc %xmm4,%xmm7,%xmm7
1374
+ vaesenc %xmm4,%xmm8,%xmm8
1375
+ vaesenc %xmm4,%xmm9,%xmm9
1376
+ vaesenc %xmm4,%xmm10,%xmm10
1377
+ vaesenc %xmm4,%xmm11,%xmm11
1378
+ vaesenc %xmm4,%xmm12,%xmm12
1379
+
1380
+ vmovdqu 0(%rax),%xmm6
1381
+ vmovdqu 0(%rcx),%xmm13
1382
+
1383
+ vpclmulqdq $0x10,%xmm13,%xmm6,%xmm4
1384
+ vpxor %xmm4,%xmm1,%xmm1
1385
+ vpclmulqdq $0x11,%xmm13,%xmm6,%xmm4
1386
+ vpxor %xmm4,%xmm2,%xmm2
1387
+ vpclmulqdq $0x00,%xmm13,%xmm6,%xmm4
1388
+ vpxor %xmm4,%xmm3,%xmm3
1389
+ vpclmulqdq $0x01,%xmm13,%xmm6,%xmm4
1390
+ vpxor %xmm4,%xmm1,%xmm1
1391
+
1392
+
1393
+ vmovdqu 48(%r8),%xmm4
1394
+ vaesenc %xmm4,%xmm7,%xmm7
1395
+ vaesenc %xmm4,%xmm8,%xmm8
1396
+ vaesenc %xmm4,%xmm9,%xmm9
1397
+ vaesenc %xmm4,%xmm10,%xmm10
1398
+ vaesenc %xmm4,%xmm11,%xmm11
1399
+ vaesenc %xmm4,%xmm12,%xmm12
1400
+
1401
+ vmovdqu 16(%rax),%xmm6
1402
+ vmovdqu 16(%rcx),%xmm13
1403
+
1404
+ vpclmulqdq $0x10,%xmm13,%xmm6,%xmm4
1405
+ vpxor %xmm4,%xmm1,%xmm1
1406
+ vpclmulqdq $0x11,%xmm13,%xmm6,%xmm4
1407
+ vpxor %xmm4,%xmm2,%xmm2
1408
+ vpclmulqdq $0x00,%xmm13,%xmm6,%xmm4
1409
+ vpxor %xmm4,%xmm3,%xmm3
1410
+ vpclmulqdq $0x01,%xmm13,%xmm6,%xmm4
1411
+ vpxor %xmm4,%xmm1,%xmm1
1412
+
1413
+
1414
+ vmovdqu 64(%r8),%xmm4
1415
+ vaesenc %xmm4,%xmm7,%xmm7
1416
+ vaesenc %xmm4,%xmm8,%xmm8
1417
+ vaesenc %xmm4,%xmm9,%xmm9
1418
+ vaesenc %xmm4,%xmm10,%xmm10
1419
+ vaesenc %xmm4,%xmm11,%xmm11
1420
+ vaesenc %xmm4,%xmm12,%xmm12
1421
+
1422
+ vmovdqu 32(%rax),%xmm6
1423
+ vmovdqu 32(%rcx),%xmm13
1424
+
1425
+ vpclmulqdq $0x10,%xmm13,%xmm6,%xmm4
1426
+ vpxor %xmm4,%xmm1,%xmm1
1427
+ vpclmulqdq $0x11,%xmm13,%xmm6,%xmm4
1428
+ vpxor %xmm4,%xmm2,%xmm2
1429
+ vpclmulqdq $0x00,%xmm13,%xmm6,%xmm4
1430
+ vpxor %xmm4,%xmm3,%xmm3
1431
+ vpclmulqdq $0x01,%xmm13,%xmm6,%xmm4
1432
+ vpxor %xmm4,%xmm1,%xmm1
1433
+
1434
+
1435
+ vmovdqu 80(%r8),%xmm4
1436
+ vaesenc %xmm4,%xmm7,%xmm7
1437
+ vaesenc %xmm4,%xmm8,%xmm8
1438
+ vaesenc %xmm4,%xmm9,%xmm9
1439
+ vaesenc %xmm4,%xmm10,%xmm10
1440
+ vaesenc %xmm4,%xmm11,%xmm11
1441
+ vaesenc %xmm4,%xmm12,%xmm12
1442
+
1443
+ vmovdqu 96(%r8),%xmm4
1444
+ vaesenc %xmm4,%xmm7,%xmm7
1445
+ vaesenc %xmm4,%xmm8,%xmm8
1446
+ vaesenc %xmm4,%xmm9,%xmm9
1447
+ vaesenc %xmm4,%xmm10,%xmm10
1448
+ vaesenc %xmm4,%xmm11,%xmm11
1449
+ vaesenc %xmm4,%xmm12,%xmm12
1450
+
1451
+ vmovdqu 112(%r8),%xmm4
1452
+ vaesenc %xmm4,%xmm7,%xmm7
1453
+ vaesenc %xmm4,%xmm8,%xmm8
1454
+ vaesenc %xmm4,%xmm9,%xmm9
1455
+ vaesenc %xmm4,%xmm10,%xmm10
1456
+ vaesenc %xmm4,%xmm11,%xmm11
1457
+ vaesenc %xmm4,%xmm12,%xmm12
1458
+
1459
+
1460
+ vmovdqa 80-32(%rax),%xmm6
1461
+ vpxor %xmm0,%xmm6,%xmm6
1462
+ vmovdqu 80-32(%rcx),%xmm5
1463
+
1464
+ vpclmulqdq $0x01,%xmm5,%xmm6,%xmm4
1465
+ vpxor %xmm4,%xmm1,%xmm1
1466
+ vpclmulqdq $0x11,%xmm5,%xmm6,%xmm4
1467
+ vpxor %xmm4,%xmm2,%xmm2
1468
+ vpclmulqdq $0x00,%xmm5,%xmm6,%xmm4
1469
+ vpxor %xmm4,%xmm3,%xmm3
1470
+ vpclmulqdq $0x10,%xmm5,%xmm6,%xmm4
1471
+ vpxor %xmm4,%xmm1,%xmm1
1472
+
1473
+ vmovdqu 128(%r8),%xmm4
1474
+ vaesenc %xmm4,%xmm7,%xmm7
1475
+ vaesenc %xmm4,%xmm8,%xmm8
1476
+ vaesenc %xmm4,%xmm9,%xmm9
1477
+ vaesenc %xmm4,%xmm10,%xmm10
1478
+ vaesenc %xmm4,%xmm11,%xmm11
1479
+ vaesenc %xmm4,%xmm12,%xmm12
1480
+
1481
+
1482
+ vpsrldq $8,%xmm1,%xmm4
1483
+ vpxor %xmm4,%xmm2,%xmm5
1484
+ vpslldq $8,%xmm1,%xmm4
1485
+ vpxor %xmm4,%xmm3,%xmm0
1486
+
1487
+ vmovdqa poly(%rip),%xmm3
1488
+
1489
+ vmovdqu 144(%r8),%xmm4
1490
+ vaesenc %xmm4,%xmm7,%xmm7
1491
+ vaesenc %xmm4,%xmm8,%xmm8
1492
+ vaesenc %xmm4,%xmm9,%xmm9
1493
+ vaesenc %xmm4,%xmm10,%xmm10
1494
+ vaesenc %xmm4,%xmm11,%xmm11
1495
+ vaesenc %xmm4,%xmm12,%xmm12
1496
+
1497
+ vmovdqu 160(%r8),%xmm6
1498
+ vpalignr $8,%xmm0,%xmm0,%xmm2
1499
+ vpclmulqdq $0x10,%xmm3,%xmm0,%xmm0
1500
+ vpxor %xmm0,%xmm2,%xmm0
1501
+
1502
+ vpxor 0(%rdi),%xmm6,%xmm4
1503
+ vaesenclast %xmm4,%xmm7,%xmm7
1504
+ vpxor 16(%rdi),%xmm6,%xmm4
1505
+ vaesenclast %xmm4,%xmm8,%xmm8
1506
+ vpxor 32(%rdi),%xmm6,%xmm4
1507
+ vaesenclast %xmm4,%xmm9,%xmm9
1508
+ vpxor 48(%rdi),%xmm6,%xmm4
1509
+ vaesenclast %xmm4,%xmm10,%xmm10
1510
+ vpxor 64(%rdi),%xmm6,%xmm4
1511
+ vaesenclast %xmm4,%xmm11,%xmm11
1512
+ vpxor 80(%rdi),%xmm6,%xmm4
1513
+ vaesenclast %xmm4,%xmm12,%xmm12
1514
+
1515
+ vpalignr $8,%xmm0,%xmm0,%xmm2
1516
+ vpclmulqdq $0x10,%xmm3,%xmm0,%xmm0
1517
+ vpxor %xmm0,%xmm2,%xmm0
1518
+
1519
+ vmovdqu %xmm7,0(%rsi)
1520
+ vmovdqu %xmm8,16(%rsi)
1521
+ vmovdqu %xmm9,32(%rsi)
1522
+ vmovdqu %xmm10,48(%rsi)
1523
+ vmovdqu %xmm11,64(%rsi)
1524
+ vmovdqu %xmm12,80(%rsi)
1525
+
1526
+ vpxor %xmm5,%xmm0,%xmm0
1527
+
1528
+ leaq 96(%rdi),%rdi
1529
+ leaq 96(%rsi),%rsi
1530
+ jmp L$128_dec_loop1
1531
+
1532
+ L$128_dec_finish_96:
1533
+ vmovdqa %xmm12,%xmm6
1534
+ vmovdqa %xmm11,16-32(%rax)
1535
+ vmovdqa %xmm10,32-32(%rax)
1536
+ vmovdqa %xmm9,48-32(%rax)
1537
+ vmovdqa %xmm8,64-32(%rax)
1538
+ vmovdqa %xmm7,80-32(%rax)
1539
+
1540
+ vmovdqu 0-32(%rcx),%xmm4
1541
+ vpclmulqdq $0x10,%xmm4,%xmm6,%xmm1
1542
+ vpclmulqdq $0x11,%xmm4,%xmm6,%xmm2
1543
+ vpclmulqdq $0x00,%xmm4,%xmm6,%xmm3
1544
+ vpclmulqdq $0x01,%xmm4,%xmm6,%xmm4
1545
+ vpxor %xmm4,%xmm1,%xmm1
1546
+
1547
+ vmovdqu -16(%rax),%xmm6
1548
+ vmovdqu -16(%rcx),%xmm13
1549
+
1550
+ vpclmulqdq $0x10,%xmm13,%xmm6,%xmm4
1551
+ vpxor %xmm4,%xmm1,%xmm1
1552
+ vpclmulqdq $0x11,%xmm13,%xmm6,%xmm4
1553
+ vpxor %xmm4,%xmm2,%xmm2
1554
+ vpclmulqdq $0x00,%xmm13,%xmm6,%xmm4
1555
+ vpxor %xmm4,%xmm3,%xmm3
1556
+ vpclmulqdq $0x01,%xmm13,%xmm6,%xmm4
1557
+ vpxor %xmm4,%xmm1,%xmm1
1558
+
1559
+ vmovdqu 0(%rax),%xmm6
1560
+ vmovdqu 0(%rcx),%xmm13
1561
+
1562
+ vpclmulqdq $0x10,%xmm13,%xmm6,%xmm4
1563
+ vpxor %xmm4,%xmm1,%xmm1
1564
+ vpclmulqdq $0x11,%xmm13,%xmm6,%xmm4
1565
+ vpxor %xmm4,%xmm2,%xmm2
1566
+ vpclmulqdq $0x00,%xmm13,%xmm6,%xmm4
1567
+ vpxor %xmm4,%xmm3,%xmm3
1568
+ vpclmulqdq $0x01,%xmm13,%xmm6,%xmm4
1569
+ vpxor %xmm4,%xmm1,%xmm1
1570
+
1571
+ vmovdqu 16(%rax),%xmm6
1572
+ vmovdqu 16(%rcx),%xmm13
1573
+
1574
+ vpclmulqdq $0x10,%xmm13,%xmm6,%xmm4
1575
+ vpxor %xmm4,%xmm1,%xmm1
1576
+ vpclmulqdq $0x11,%xmm13,%xmm6,%xmm4
1577
+ vpxor %xmm4,%xmm2,%xmm2
1578
+ vpclmulqdq $0x00,%xmm13,%xmm6,%xmm4
1579
+ vpxor %xmm4,%xmm3,%xmm3
1580
+ vpclmulqdq $0x01,%xmm13,%xmm6,%xmm4
1581
+ vpxor %xmm4,%xmm1,%xmm1
1582
+
1583
+ vmovdqu 32(%rax),%xmm6
1584
+ vmovdqu 32(%rcx),%xmm13
1585
+
1586
+ vpclmulqdq $0x10,%xmm13,%xmm6,%xmm4
1587
+ vpxor %xmm4,%xmm1,%xmm1
1588
+ vpclmulqdq $0x11,%xmm13,%xmm6,%xmm4
1589
+ vpxor %xmm4,%xmm2,%xmm2
1590
+ vpclmulqdq $0x00,%xmm13,%xmm6,%xmm4
1591
+ vpxor %xmm4,%xmm3,%xmm3
1592
+ vpclmulqdq $0x01,%xmm13,%xmm6,%xmm4
1593
+ vpxor %xmm4,%xmm1,%xmm1
1594
+
1595
+
1596
+ vmovdqu 80-32(%rax),%xmm6
1597
+ vpxor %xmm0,%xmm6,%xmm6
1598
+ vmovdqu 80-32(%rcx),%xmm5
1599
+ vpclmulqdq $0x11,%xmm5,%xmm6,%xmm4
1600
+ vpxor %xmm4,%xmm2,%xmm2
1601
+ vpclmulqdq $0x00,%xmm5,%xmm6,%xmm4
1602
+ vpxor %xmm4,%xmm3,%xmm3
1603
+ vpclmulqdq $0x10,%xmm5,%xmm6,%xmm4
1604
+ vpxor %xmm4,%xmm1,%xmm1
1605
+ vpclmulqdq $0x01,%xmm5,%xmm6,%xmm4
1606
+ vpxor %xmm4,%xmm1,%xmm1
1607
+
1608
+ vpsrldq $8,%xmm1,%xmm4
1609
+ vpxor %xmm4,%xmm2,%xmm5
1610
+ vpslldq $8,%xmm1,%xmm4
1611
+ vpxor %xmm4,%xmm3,%xmm0
1612
+
1613
+ vmovdqa poly(%rip),%xmm3
1614
+
1615
+ vpalignr $8,%xmm0,%xmm0,%xmm2
1616
+ vpclmulqdq $0x10,%xmm3,%xmm0,%xmm0
1617
+ vpxor %xmm0,%xmm2,%xmm0
1618
+
1619
+ vpalignr $8,%xmm0,%xmm0,%xmm2
1620
+ vpclmulqdq $0x10,%xmm3,%xmm0,%xmm0
1621
+ vpxor %xmm0,%xmm2,%xmm0
1622
+
1623
+ vpxor %xmm5,%xmm0,%xmm0
1624
+
1625
+ L$128_dec_loop2:
1626
+ // Here we encrypt any remaining whole block
1627
+
1628
+ // if there are no whole blocks
1629
+ cmpq $16,%r9
1630
+ jb L$128_dec_out
1631
+ subq $16,%r9
1632
+
1633
+ vmovdqa %xmm15,%xmm2
1634
+ vpaddd one(%rip),%xmm15,%xmm15
1635
+
1636
+ vpxor 0(%r8),%xmm2,%xmm2
1637
+ vaesenc 16(%r8),%xmm2,%xmm2
1638
+ vaesenc 32(%r8),%xmm2,%xmm2
1639
+ vaesenc 48(%r8),%xmm2,%xmm2
1640
+ vaesenc 64(%r8),%xmm2,%xmm2
1641
+ vaesenc 80(%r8),%xmm2,%xmm2
1642
+ vaesenc 96(%r8),%xmm2,%xmm2
1643
+ vaesenc 112(%r8),%xmm2,%xmm2
1644
+ vaesenc 128(%r8),%xmm2,%xmm2
1645
+ vaesenc 144(%r8),%xmm2,%xmm2
1646
+ vaesenclast 160(%r8),%xmm2,%xmm2
1647
+ vpxor (%rdi),%xmm2,%xmm2
1648
+ vmovdqu %xmm2,(%rsi)
1649
+ addq $16,%rdi
1650
+ addq $16,%rsi
1651
+
1652
+ vpxor %xmm2,%xmm0,%xmm0
1653
+ vmovdqa -32(%rcx),%xmm1
1654
+ call GFMUL
1655
+
1656
+ jmp L$128_dec_loop2
1657
+
1658
+ L$128_dec_out:
1659
+ vmovdqu %xmm0,(%rdx)
1660
+ ret
1661
+
1662
+
1663
+ .globl _aes128gcmsiv_ecb_enc_block
1664
+ .private_extern _aes128gcmsiv_ecb_enc_block
1665
+
1666
+ .p2align 4
1667
+ .alt_entry _aes128gcmsiv_ecb_enc_block
1668
+ _aes128gcmsiv_ecb_enc_block:
1669
+
1670
+ _CET_ENDBR
1671
+ vmovdqa (%rdi),%xmm1
1672
+
1673
+ vpxor (%rdx),%xmm1,%xmm1
1674
+ vaesenc 16(%rdx),%xmm1,%xmm1
1675
+ vaesenc 32(%rdx),%xmm1,%xmm1
1676
+ vaesenc 48(%rdx),%xmm1,%xmm1
1677
+ vaesenc 64(%rdx),%xmm1,%xmm1
1678
+ vaesenc 80(%rdx),%xmm1,%xmm1
1679
+ vaesenc 96(%rdx),%xmm1,%xmm1
1680
+ vaesenc 112(%rdx),%xmm1,%xmm1
1681
+ vaesenc 128(%rdx),%xmm1,%xmm1
1682
+ vaesenc 144(%rdx),%xmm1,%xmm1
1683
+ vaesenclast 160(%rdx),%xmm1,%xmm1 // STATE_1 == IV
1684
+
1685
+ vmovdqa %xmm1,(%rsi)
1686
+
1687
+ ret
1688
+
1689
+
1690
+ .globl _aes256gcmsiv_aes_ks_enc_x1
1691
+ .private_extern _aes256gcmsiv_aes_ks_enc_x1
1692
+
1693
+ .p2align 4
1694
+ .alt_entry _aes256gcmsiv_aes_ks_enc_x1
1695
+ _aes256gcmsiv_aes_ks_enc_x1:
1696
+
1697
+ _CET_ENDBR
1698
+ vmovdqa con1(%rip),%xmm0 // CON_MASK = 1,1,1,1
1699
+ vmovdqa mask(%rip),%xmm15 // MASK_256
1700
+ vmovdqa (%rdi),%xmm8
1701
+ vmovdqa (%rcx),%xmm1 // KEY_1 || KEY_2 [0..7] = user key
1702
+ vmovdqa 16(%rcx),%xmm3
1703
+ vpxor %xmm1,%xmm8,%xmm8
1704
+ vaesenc %xmm3,%xmm8,%xmm8
1705
+ vmovdqu %xmm1,(%rdx) // First round key
1706
+ vmovdqu %xmm3,16(%rdx)
1707
+ vpxor %xmm14,%xmm14,%xmm14
1708
+
1709
+ vpshufb %xmm15,%xmm3,%xmm2
1710
+ vaesenclast %xmm0,%xmm2,%xmm2
1711
+ vpslld $1,%xmm0,%xmm0
1712
+ vpslldq $4,%xmm1,%xmm4
1713
+ vpxor %xmm4,%xmm1,%xmm1
1714
+ vpslldq $4,%xmm4,%xmm4
1715
+ vpxor %xmm4,%xmm1,%xmm1
1716
+ vpslldq $4,%xmm4,%xmm4
1717
+ vpxor %xmm4,%xmm1,%xmm1
1718
+ vpxor %xmm2,%xmm1,%xmm1
1719
+ vaesenc %xmm1,%xmm8,%xmm8
1720
+ vmovdqu %xmm1,32(%rdx)
1721
+
1722
+ vpshufd $0xff,%xmm1,%xmm2
1723
+ vaesenclast %xmm14,%xmm2,%xmm2
1724
+ vpslldq $4,%xmm3,%xmm4
1725
+ vpxor %xmm4,%xmm3,%xmm3
1726
+ vpslldq $4,%xmm4,%xmm4
1727
+ vpxor %xmm4,%xmm3,%xmm3
1728
+ vpslldq $4,%xmm4,%xmm4
1729
+ vpxor %xmm4,%xmm3,%xmm3
1730
+ vpxor %xmm2,%xmm3,%xmm3
1731
+ vaesenc %xmm3,%xmm8,%xmm8
1732
+ vmovdqu %xmm3,48(%rdx)
1733
+
1734
+ vpshufb %xmm15,%xmm3,%xmm2
1735
+ vaesenclast %xmm0,%xmm2,%xmm2
1736
+ vpslld $1,%xmm0,%xmm0
1737
+ vpslldq $4,%xmm1,%xmm4
1738
+ vpxor %xmm4,%xmm1,%xmm1
1739
+ vpslldq $4,%xmm4,%xmm4
1740
+ vpxor %xmm4,%xmm1,%xmm1
1741
+ vpslldq $4,%xmm4,%xmm4
1742
+ vpxor %xmm4,%xmm1,%xmm1
1743
+ vpxor %xmm2,%xmm1,%xmm1
1744
+ vaesenc %xmm1,%xmm8,%xmm8
1745
+ vmovdqu %xmm1,64(%rdx)
1746
+
1747
+ vpshufd $0xff,%xmm1,%xmm2
1748
+ vaesenclast %xmm14,%xmm2,%xmm2
1749
+ vpslldq $4,%xmm3,%xmm4
1750
+ vpxor %xmm4,%xmm3,%xmm3
1751
+ vpslldq $4,%xmm4,%xmm4
1752
+ vpxor %xmm4,%xmm3,%xmm3
1753
+ vpslldq $4,%xmm4,%xmm4
1754
+ vpxor %xmm4,%xmm3,%xmm3
1755
+ vpxor %xmm2,%xmm3,%xmm3
1756
+ vaesenc %xmm3,%xmm8,%xmm8
1757
+ vmovdqu %xmm3,80(%rdx)
1758
+
1759
+ vpshufb %xmm15,%xmm3,%xmm2
1760
+ vaesenclast %xmm0,%xmm2,%xmm2
1761
+ vpslld $1,%xmm0,%xmm0
1762
+ vpslldq $4,%xmm1,%xmm4
1763
+ vpxor %xmm4,%xmm1,%xmm1
1764
+ vpslldq $4,%xmm4,%xmm4
1765
+ vpxor %xmm4,%xmm1,%xmm1
1766
+ vpslldq $4,%xmm4,%xmm4
1767
+ vpxor %xmm4,%xmm1,%xmm1
1768
+ vpxor %xmm2,%xmm1,%xmm1
1769
+ vaesenc %xmm1,%xmm8,%xmm8
1770
+ vmovdqu %xmm1,96(%rdx)
1771
+
1772
+ vpshufd $0xff,%xmm1,%xmm2
1773
+ vaesenclast %xmm14,%xmm2,%xmm2
1774
+ vpslldq $4,%xmm3,%xmm4
1775
+ vpxor %xmm4,%xmm3,%xmm3
1776
+ vpslldq $4,%xmm4,%xmm4
1777
+ vpxor %xmm4,%xmm3,%xmm3
1778
+ vpslldq $4,%xmm4,%xmm4
1779
+ vpxor %xmm4,%xmm3,%xmm3
1780
+ vpxor %xmm2,%xmm3,%xmm3
1781
+ vaesenc %xmm3,%xmm8,%xmm8
1782
+ vmovdqu %xmm3,112(%rdx)
1783
+
1784
+ vpshufb %xmm15,%xmm3,%xmm2
1785
+ vaesenclast %xmm0,%xmm2,%xmm2
1786
+ vpslld $1,%xmm0,%xmm0
1787
+ vpslldq $4,%xmm1,%xmm4
1788
+ vpxor %xmm4,%xmm1,%xmm1
1789
+ vpslldq $4,%xmm4,%xmm4
1790
+ vpxor %xmm4,%xmm1,%xmm1
1791
+ vpslldq $4,%xmm4,%xmm4
1792
+ vpxor %xmm4,%xmm1,%xmm1
1793
+ vpxor %xmm2,%xmm1,%xmm1
1794
+ vaesenc %xmm1,%xmm8,%xmm8
1795
+ vmovdqu %xmm1,128(%rdx)
1796
+
1797
+ vpshufd $0xff,%xmm1,%xmm2
1798
+ vaesenclast %xmm14,%xmm2,%xmm2
1799
+ vpslldq $4,%xmm3,%xmm4
1800
+ vpxor %xmm4,%xmm3,%xmm3
1801
+ vpslldq $4,%xmm4,%xmm4
1802
+ vpxor %xmm4,%xmm3,%xmm3
1803
+ vpslldq $4,%xmm4,%xmm4
1804
+ vpxor %xmm4,%xmm3,%xmm3
1805
+ vpxor %xmm2,%xmm3,%xmm3
1806
+ vaesenc %xmm3,%xmm8,%xmm8
1807
+ vmovdqu %xmm3,144(%rdx)
1808
+
1809
+ vpshufb %xmm15,%xmm3,%xmm2
1810
+ vaesenclast %xmm0,%xmm2,%xmm2
1811
+ vpslld $1,%xmm0,%xmm0
1812
+ vpslldq $4,%xmm1,%xmm4
1813
+ vpxor %xmm4,%xmm1,%xmm1
1814
+ vpslldq $4,%xmm4,%xmm4
1815
+ vpxor %xmm4,%xmm1,%xmm1
1816
+ vpslldq $4,%xmm4,%xmm4
1817
+ vpxor %xmm4,%xmm1,%xmm1
1818
+ vpxor %xmm2,%xmm1,%xmm1
1819
+ vaesenc %xmm1,%xmm8,%xmm8
1820
+ vmovdqu %xmm1,160(%rdx)
1821
+
1822
+ vpshufd $0xff,%xmm1,%xmm2
1823
+ vaesenclast %xmm14,%xmm2,%xmm2
1824
+ vpslldq $4,%xmm3,%xmm4
1825
+ vpxor %xmm4,%xmm3,%xmm3
1826
+ vpslldq $4,%xmm4,%xmm4
1827
+ vpxor %xmm4,%xmm3,%xmm3
1828
+ vpslldq $4,%xmm4,%xmm4
1829
+ vpxor %xmm4,%xmm3,%xmm3
1830
+ vpxor %xmm2,%xmm3,%xmm3
1831
+ vaesenc %xmm3,%xmm8,%xmm8
1832
+ vmovdqu %xmm3,176(%rdx)
1833
+
1834
+ vpshufb %xmm15,%xmm3,%xmm2
1835
+ vaesenclast %xmm0,%xmm2,%xmm2
1836
+ vpslld $1,%xmm0,%xmm0
1837
+ vpslldq $4,%xmm1,%xmm4
1838
+ vpxor %xmm4,%xmm1,%xmm1
1839
+ vpslldq $4,%xmm4,%xmm4
1840
+ vpxor %xmm4,%xmm1,%xmm1
1841
+ vpslldq $4,%xmm4,%xmm4
1842
+ vpxor %xmm4,%xmm1,%xmm1
1843
+ vpxor %xmm2,%xmm1,%xmm1
1844
+ vaesenc %xmm1,%xmm8,%xmm8
1845
+ vmovdqu %xmm1,192(%rdx)
1846
+
1847
+ vpshufd $0xff,%xmm1,%xmm2
1848
+ vaesenclast %xmm14,%xmm2,%xmm2
1849
+ vpslldq $4,%xmm3,%xmm4
1850
+ vpxor %xmm4,%xmm3,%xmm3
1851
+ vpslldq $4,%xmm4,%xmm4
1852
+ vpxor %xmm4,%xmm3,%xmm3
1853
+ vpslldq $4,%xmm4,%xmm4
1854
+ vpxor %xmm4,%xmm3,%xmm3
1855
+ vpxor %xmm2,%xmm3,%xmm3
1856
+ vaesenc %xmm3,%xmm8,%xmm8
1857
+ vmovdqu %xmm3,208(%rdx)
1858
+
1859
+ vpshufb %xmm15,%xmm3,%xmm2
1860
+ vaesenclast %xmm0,%xmm2,%xmm2
1861
+ vpslldq $4,%xmm1,%xmm4
1862
+ vpxor %xmm4,%xmm1,%xmm1
1863
+ vpslldq $4,%xmm4,%xmm4
1864
+ vpxor %xmm4,%xmm1,%xmm1
1865
+ vpslldq $4,%xmm4,%xmm4
1866
+ vpxor %xmm4,%xmm1,%xmm1
1867
+ vpxor %xmm2,%xmm1,%xmm1
1868
+ vaesenclast %xmm1,%xmm8,%xmm8
1869
+ vmovdqu %xmm1,224(%rdx)
1870
+
1871
+ vmovdqa %xmm8,(%rsi)
1872
+ ret
1873
+
1874
+
1875
+ .globl _aes256gcmsiv_ecb_enc_block
1876
+ .private_extern _aes256gcmsiv_ecb_enc_block
1877
+
1878
+ .p2align 4
1879
+ .alt_entry _aes256gcmsiv_ecb_enc_block
1880
+ _aes256gcmsiv_ecb_enc_block:
1881
+
1882
+ _CET_ENDBR
1883
+ vmovdqa (%rdi),%xmm1
1884
+ vpxor (%rdx),%xmm1,%xmm1
1885
+ vaesenc 16(%rdx),%xmm1,%xmm1
1886
+ vaesenc 32(%rdx),%xmm1,%xmm1
1887
+ vaesenc 48(%rdx),%xmm1,%xmm1
1888
+ vaesenc 64(%rdx),%xmm1,%xmm1
1889
+ vaesenc 80(%rdx),%xmm1,%xmm1
1890
+ vaesenc 96(%rdx),%xmm1,%xmm1
1891
+ vaesenc 112(%rdx),%xmm1,%xmm1
1892
+ vaesenc 128(%rdx),%xmm1,%xmm1
1893
+ vaesenc 144(%rdx),%xmm1,%xmm1
1894
+ vaesenc 160(%rdx),%xmm1,%xmm1
1895
+ vaesenc 176(%rdx),%xmm1,%xmm1
1896
+ vaesenc 192(%rdx),%xmm1,%xmm1
1897
+ vaesenc 208(%rdx),%xmm1,%xmm1
1898
+ vaesenclast 224(%rdx),%xmm1,%xmm1 // %xmm1 == IV
1899
+ vmovdqa %xmm1,(%rsi)
1900
+ ret
1901
+
1902
+
1903
+ .globl _aes256gcmsiv_enc_msg_x4
1904
+ .private_extern _aes256gcmsiv_enc_msg_x4
1905
+
1906
+ .p2align 4
1907
+ .alt_entry _aes256gcmsiv_enc_msg_x4
1908
+ _aes256gcmsiv_enc_msg_x4:
1909
+
1910
+ _CET_ENDBR
1911
+ testq %r8,%r8
1912
+ jnz L$256_enc_msg_x4_start
1913
+ ret
1914
+
1915
+ L$256_enc_msg_x4_start:
1916
+ movq %r8,%r10
1917
+ shrq $4,%r8 // LEN = num of blocks
1918
+ shlq $60,%r10
1919
+ jz L$256_enc_msg_x4_start2
1920
+ addq $1,%r8
1921
+
1922
+ L$256_enc_msg_x4_start2:
1923
+ movq %r8,%r10
1924
+ shlq $62,%r10
1925
+ shrq $62,%r10
1926
+
1927
+ // make IV from TAG
1928
+ vmovdqa (%rdx),%xmm15
1929
+ vpor OR_MASK(%rip),%xmm15,%xmm15 // IV = [1]TAG[126...32][00..00]
1930
+
1931
+ vmovdqa four(%rip),%xmm4 // Register to increment counters
1932
+ vmovdqa %xmm15,%xmm0 // CTR1 = TAG[1][127...32][00..00]
1933
+ vpaddd one(%rip),%xmm15,%xmm1 // CTR2 = TAG[1][127...32][00..01]
1934
+ vpaddd two(%rip),%xmm15,%xmm2 // CTR3 = TAG[1][127...32][00..02]
1935
+ vpaddd three(%rip),%xmm15,%xmm3 // CTR4 = TAG[1][127...32][00..03]
1936
+
1937
+ shrq $2,%r8
1938
+ je L$256_enc_msg_x4_check_remainder
1939
+
1940
+ subq $64,%rsi
1941
+ subq $64,%rdi
1942
+
1943
+ L$256_enc_msg_x4_loop1:
1944
+ addq $64,%rsi
1945
+ addq $64,%rdi
1946
+
1947
+ vmovdqa %xmm0,%xmm5
1948
+ vmovdqa %xmm1,%xmm6
1949
+ vmovdqa %xmm2,%xmm7
1950
+ vmovdqa %xmm3,%xmm8
1951
+
1952
+ vpxor (%rcx),%xmm5,%xmm5
1953
+ vpxor (%rcx),%xmm6,%xmm6
1954
+ vpxor (%rcx),%xmm7,%xmm7
1955
+ vpxor (%rcx),%xmm8,%xmm8
1956
+
1957
+ vmovdqu 16(%rcx),%xmm12
1958
+ vaesenc %xmm12,%xmm5,%xmm5
1959
+ vaesenc %xmm12,%xmm6,%xmm6
1960
+ vaesenc %xmm12,%xmm7,%xmm7
1961
+ vaesenc %xmm12,%xmm8,%xmm8
1962
+
1963
+ vpaddd %xmm4,%xmm0,%xmm0
1964
+ vmovdqu 32(%rcx),%xmm12
1965
+ vaesenc %xmm12,%xmm5,%xmm5
1966
+ vaesenc %xmm12,%xmm6,%xmm6
1967
+ vaesenc %xmm12,%xmm7,%xmm7
1968
+ vaesenc %xmm12,%xmm8,%xmm8
1969
+
1970
+ vpaddd %xmm4,%xmm1,%xmm1
1971
+ vmovdqu 48(%rcx),%xmm12
1972
+ vaesenc %xmm12,%xmm5,%xmm5
1973
+ vaesenc %xmm12,%xmm6,%xmm6
1974
+ vaesenc %xmm12,%xmm7,%xmm7
1975
+ vaesenc %xmm12,%xmm8,%xmm8
1976
+
1977
+ vpaddd %xmm4,%xmm2,%xmm2
1978
+ vmovdqu 64(%rcx),%xmm12
1979
+ vaesenc %xmm12,%xmm5,%xmm5
1980
+ vaesenc %xmm12,%xmm6,%xmm6
1981
+ vaesenc %xmm12,%xmm7,%xmm7
1982
+ vaesenc %xmm12,%xmm8,%xmm8
1983
+
1984
+ vpaddd %xmm4,%xmm3,%xmm3
1985
+
1986
+ vmovdqu 80(%rcx),%xmm12
1987
+ vaesenc %xmm12,%xmm5,%xmm5
1988
+ vaesenc %xmm12,%xmm6,%xmm6
1989
+ vaesenc %xmm12,%xmm7,%xmm7
1990
+ vaesenc %xmm12,%xmm8,%xmm8
1991
+
1992
+ vmovdqu 96(%rcx),%xmm12
1993
+ vaesenc %xmm12,%xmm5,%xmm5
1994
+ vaesenc %xmm12,%xmm6,%xmm6
1995
+ vaesenc %xmm12,%xmm7,%xmm7
1996
+ vaesenc %xmm12,%xmm8,%xmm8
1997
+
1998
+ vmovdqu 112(%rcx),%xmm12
1999
+ vaesenc %xmm12,%xmm5,%xmm5
2000
+ vaesenc %xmm12,%xmm6,%xmm6
2001
+ vaesenc %xmm12,%xmm7,%xmm7
2002
+ vaesenc %xmm12,%xmm8,%xmm8
2003
+
2004
+ vmovdqu 128(%rcx),%xmm12
2005
+ vaesenc %xmm12,%xmm5,%xmm5
2006
+ vaesenc %xmm12,%xmm6,%xmm6
2007
+ vaesenc %xmm12,%xmm7,%xmm7
2008
+ vaesenc %xmm12,%xmm8,%xmm8
2009
+
2010
+ vmovdqu 144(%rcx),%xmm12
2011
+ vaesenc %xmm12,%xmm5,%xmm5
2012
+ vaesenc %xmm12,%xmm6,%xmm6
2013
+ vaesenc %xmm12,%xmm7,%xmm7
2014
+ vaesenc %xmm12,%xmm8,%xmm8
2015
+
2016
+ vmovdqu 160(%rcx),%xmm12
2017
+ vaesenc %xmm12,%xmm5,%xmm5
2018
+ vaesenc %xmm12,%xmm6,%xmm6
2019
+ vaesenc %xmm12,%xmm7,%xmm7
2020
+ vaesenc %xmm12,%xmm8,%xmm8
2021
+
2022
+ vmovdqu 176(%rcx),%xmm12
2023
+ vaesenc %xmm12,%xmm5,%xmm5
2024
+ vaesenc %xmm12,%xmm6,%xmm6
2025
+ vaesenc %xmm12,%xmm7,%xmm7
2026
+ vaesenc %xmm12,%xmm8,%xmm8
2027
+
2028
+ vmovdqu 192(%rcx),%xmm12
2029
+ vaesenc %xmm12,%xmm5,%xmm5
2030
+ vaesenc %xmm12,%xmm6,%xmm6
2031
+ vaesenc %xmm12,%xmm7,%xmm7
2032
+ vaesenc %xmm12,%xmm8,%xmm8
2033
+
2034
+ vmovdqu 208(%rcx),%xmm12
2035
+ vaesenc %xmm12,%xmm5,%xmm5
2036
+ vaesenc %xmm12,%xmm6,%xmm6
2037
+ vaesenc %xmm12,%xmm7,%xmm7
2038
+ vaesenc %xmm12,%xmm8,%xmm8
2039
+
2040
+ vmovdqu 224(%rcx),%xmm12
2041
+ vaesenclast %xmm12,%xmm5,%xmm5
2042
+ vaesenclast %xmm12,%xmm6,%xmm6
2043
+ vaesenclast %xmm12,%xmm7,%xmm7
2044
+ vaesenclast %xmm12,%xmm8,%xmm8
2045
+
2046
+
2047
+ // XOR with Plaintext
2048
+ vpxor 0(%rdi),%xmm5,%xmm5
2049
+ vpxor 16(%rdi),%xmm6,%xmm6
2050
+ vpxor 32(%rdi),%xmm7,%xmm7
2051
+ vpxor 48(%rdi),%xmm8,%xmm8
2052
+
2053
+ subq $1,%r8
2054
+
2055
+ vmovdqu %xmm5,0(%rsi)
2056
+ vmovdqu %xmm6,16(%rsi)
2057
+ vmovdqu %xmm7,32(%rsi)
2058
+ vmovdqu %xmm8,48(%rsi)
2059
+
2060
+ jne L$256_enc_msg_x4_loop1
2061
+
2062
+ addq $64,%rsi
2063
+ addq $64,%rdi
2064
+
2065
+ L$256_enc_msg_x4_check_remainder:
2066
+ cmpq $0,%r10
2067
+ je L$256_enc_msg_x4_out
2068
+
2069
+ L$256_enc_msg_x4_loop2:
2070
+ // encrypt each block separately
2071
+ // CTR1 is the highest counter (even if no LOOP done)
2072
+
2073
+ vmovdqa %xmm0,%xmm5
2074
+ vpaddd one(%rip),%xmm0,%xmm0 // inc counter
2075
+ vpxor (%rcx),%xmm5,%xmm5
2076
+ vaesenc 16(%rcx),%xmm5,%xmm5
2077
+ vaesenc 32(%rcx),%xmm5,%xmm5
2078
+ vaesenc 48(%rcx),%xmm5,%xmm5
2079
+ vaesenc 64(%rcx),%xmm5,%xmm5
2080
+ vaesenc 80(%rcx),%xmm5,%xmm5
2081
+ vaesenc 96(%rcx),%xmm5,%xmm5
2082
+ vaesenc 112(%rcx),%xmm5,%xmm5
2083
+ vaesenc 128(%rcx),%xmm5,%xmm5
2084
+ vaesenc 144(%rcx),%xmm5,%xmm5
2085
+ vaesenc 160(%rcx),%xmm5,%xmm5
2086
+ vaesenc 176(%rcx),%xmm5,%xmm5
2087
+ vaesenc 192(%rcx),%xmm5,%xmm5
2088
+ vaesenc 208(%rcx),%xmm5,%xmm5
2089
+ vaesenclast 224(%rcx),%xmm5,%xmm5
2090
+
2091
+ // XOR with Plaintext
2092
+ vpxor (%rdi),%xmm5,%xmm5
2093
+
2094
+ vmovdqu %xmm5,(%rsi)
2095
+
2096
+ addq $16,%rdi
2097
+ addq $16,%rsi
2098
+
2099
+ subq $1,%r10
2100
+ jne L$256_enc_msg_x4_loop2
2101
+
2102
+ L$256_enc_msg_x4_out:
2103
+ ret
2104
+
2105
+
2106
+ .globl _aes256gcmsiv_enc_msg_x8
2107
+ .private_extern _aes256gcmsiv_enc_msg_x8
2108
+
2109
+ .p2align 4
2110
+ .alt_entry _aes256gcmsiv_enc_msg_x8
2111
+ _aes256gcmsiv_enc_msg_x8:
2112
+
2113
+ _CET_ENDBR
2114
+ testq %r8,%r8
2115
+ jnz L$256_enc_msg_x8_start
2116
+ ret
2117
+
2118
+ L$256_enc_msg_x8_start:
2119
+ // Place in stack
2120
+ movq %rsp,%r11
2121
+ subq $16,%r11
2122
+ andq $-64,%r11
2123
+
2124
+ movq %r8,%r10
2125
+ shrq $4,%r8 // LEN = num of blocks
2126
+ shlq $60,%r10
2127
+ jz L$256_enc_msg_x8_start2
2128
+ addq $1,%r8
2129
+
2130
+ L$256_enc_msg_x8_start2:
2131
+ movq %r8,%r10
2132
+ shlq $61,%r10
2133
+ shrq $61,%r10
2134
+
2135
+ // Make IV from TAG
2136
+ vmovdqa (%rdx),%xmm1
2137
+ vpor OR_MASK(%rip),%xmm1,%xmm1 // TMP1= IV = [1]TAG[126...32][00..00]
2138
+
2139
+ // store counter8 on the stack
2140
+ vpaddd seven(%rip),%xmm1,%xmm0
2141
+ vmovdqa %xmm0,(%r11) // CTR8 = TAG[127...32][00..07]
2142
+ vpaddd one(%rip),%xmm1,%xmm9 // CTR2 = TAG[127...32][00..01]
2143
+ vpaddd two(%rip),%xmm1,%xmm10 // CTR3 = TAG[127...32][00..02]
2144
+ vpaddd three(%rip),%xmm1,%xmm11 // CTR4 = TAG[127...32][00..03]
2145
+ vpaddd four(%rip),%xmm1,%xmm12 // CTR5 = TAG[127...32][00..04]
2146
+ vpaddd five(%rip),%xmm1,%xmm13 // CTR6 = TAG[127...32][00..05]
2147
+ vpaddd six(%rip),%xmm1,%xmm14 // CTR7 = TAG[127...32][00..06]
2148
+ vmovdqa %xmm1,%xmm0 // CTR1 = TAG[127...32][00..00]
2149
+
2150
+ shrq $3,%r8
2151
+ jz L$256_enc_msg_x8_check_remainder
2152
+
2153
+ subq $128,%rsi
2154
+ subq $128,%rdi
2155
+
2156
+ L$256_enc_msg_x8_loop1:
2157
+ addq $128,%rsi
2158
+ addq $128,%rdi
2159
+
2160
+ vmovdqa %xmm0,%xmm1
2161
+ vmovdqa %xmm9,%xmm2
2162
+ vmovdqa %xmm10,%xmm3
2163
+ vmovdqa %xmm11,%xmm4
2164
+ vmovdqa %xmm12,%xmm5
2165
+ vmovdqa %xmm13,%xmm6
2166
+ vmovdqa %xmm14,%xmm7
2167
+ // move from stack
2168
+ vmovdqa (%r11),%xmm8
2169
+
2170
+ vpxor (%rcx),%xmm1,%xmm1
2171
+ vpxor (%rcx),%xmm2,%xmm2
2172
+ vpxor (%rcx),%xmm3,%xmm3
2173
+ vpxor (%rcx),%xmm4,%xmm4
2174
+ vpxor (%rcx),%xmm5,%xmm5
2175
+ vpxor (%rcx),%xmm6,%xmm6
2176
+ vpxor (%rcx),%xmm7,%xmm7
2177
+ vpxor (%rcx),%xmm8,%xmm8
2178
+
2179
+ vmovdqu 16(%rcx),%xmm15
2180
+ vaesenc %xmm15,%xmm1,%xmm1
2181
+ vaesenc %xmm15,%xmm2,%xmm2
2182
+ vaesenc %xmm15,%xmm3,%xmm3
2183
+ vaesenc %xmm15,%xmm4,%xmm4
2184
+ vaesenc %xmm15,%xmm5,%xmm5
2185
+ vaesenc %xmm15,%xmm6,%xmm6
2186
+ vaesenc %xmm15,%xmm7,%xmm7
2187
+ vaesenc %xmm15,%xmm8,%xmm8
2188
+
2189
+ vmovdqa (%r11),%xmm14 // deal with CTR8
2190
+ vpaddd eight(%rip),%xmm14,%xmm14
2191
+ vmovdqa %xmm14,(%r11)
2192
+ vmovdqu 32(%rcx),%xmm15
2193
+ vaesenc %xmm15,%xmm1,%xmm1
2194
+ vaesenc %xmm15,%xmm2,%xmm2
2195
+ vaesenc %xmm15,%xmm3,%xmm3
2196
+ vaesenc %xmm15,%xmm4,%xmm4
2197
+ vaesenc %xmm15,%xmm5,%xmm5
2198
+ vaesenc %xmm15,%xmm6,%xmm6
2199
+ vaesenc %xmm15,%xmm7,%xmm7
2200
+ vaesenc %xmm15,%xmm8,%xmm8
2201
+
2202
+ vpsubd one(%rip),%xmm14,%xmm14
2203
+ vmovdqu 48(%rcx),%xmm15
2204
+ vaesenc %xmm15,%xmm1,%xmm1
2205
+ vaesenc %xmm15,%xmm2,%xmm2
2206
+ vaesenc %xmm15,%xmm3,%xmm3
2207
+ vaesenc %xmm15,%xmm4,%xmm4
2208
+ vaesenc %xmm15,%xmm5,%xmm5
2209
+ vaesenc %xmm15,%xmm6,%xmm6
2210
+ vaesenc %xmm15,%xmm7,%xmm7
2211
+ vaesenc %xmm15,%xmm8,%xmm8
2212
+
2213
+ vpaddd eight(%rip),%xmm0,%xmm0
2214
+ vmovdqu 64(%rcx),%xmm15
2215
+ vaesenc %xmm15,%xmm1,%xmm1
2216
+ vaesenc %xmm15,%xmm2,%xmm2
2217
+ vaesenc %xmm15,%xmm3,%xmm3
2218
+ vaesenc %xmm15,%xmm4,%xmm4
2219
+ vaesenc %xmm15,%xmm5,%xmm5
2220
+ vaesenc %xmm15,%xmm6,%xmm6
2221
+ vaesenc %xmm15,%xmm7,%xmm7
2222
+ vaesenc %xmm15,%xmm8,%xmm8
2223
+
2224
+ vpaddd eight(%rip),%xmm9,%xmm9
2225
+ vmovdqu 80(%rcx),%xmm15
2226
+ vaesenc %xmm15,%xmm1,%xmm1
2227
+ vaesenc %xmm15,%xmm2,%xmm2
2228
+ vaesenc %xmm15,%xmm3,%xmm3
2229
+ vaesenc %xmm15,%xmm4,%xmm4
2230
+ vaesenc %xmm15,%xmm5,%xmm5
2231
+ vaesenc %xmm15,%xmm6,%xmm6
2232
+ vaesenc %xmm15,%xmm7,%xmm7
2233
+ vaesenc %xmm15,%xmm8,%xmm8
2234
+
2235
+ vpaddd eight(%rip),%xmm10,%xmm10
2236
+ vmovdqu 96(%rcx),%xmm15
2237
+ vaesenc %xmm15,%xmm1,%xmm1
2238
+ vaesenc %xmm15,%xmm2,%xmm2
2239
+ vaesenc %xmm15,%xmm3,%xmm3
2240
+ vaesenc %xmm15,%xmm4,%xmm4
2241
+ vaesenc %xmm15,%xmm5,%xmm5
2242
+ vaesenc %xmm15,%xmm6,%xmm6
2243
+ vaesenc %xmm15,%xmm7,%xmm7
2244
+ vaesenc %xmm15,%xmm8,%xmm8
2245
+
2246
+ vpaddd eight(%rip),%xmm11,%xmm11
2247
+ vmovdqu 112(%rcx),%xmm15
2248
+ vaesenc %xmm15,%xmm1,%xmm1
2249
+ vaesenc %xmm15,%xmm2,%xmm2
2250
+ vaesenc %xmm15,%xmm3,%xmm3
2251
+ vaesenc %xmm15,%xmm4,%xmm4
2252
+ vaesenc %xmm15,%xmm5,%xmm5
2253
+ vaesenc %xmm15,%xmm6,%xmm6
2254
+ vaesenc %xmm15,%xmm7,%xmm7
2255
+ vaesenc %xmm15,%xmm8,%xmm8
2256
+
2257
+ vpaddd eight(%rip),%xmm12,%xmm12
2258
+ vmovdqu 128(%rcx),%xmm15
2259
+ vaesenc %xmm15,%xmm1,%xmm1
2260
+ vaesenc %xmm15,%xmm2,%xmm2
2261
+ vaesenc %xmm15,%xmm3,%xmm3
2262
+ vaesenc %xmm15,%xmm4,%xmm4
2263
+ vaesenc %xmm15,%xmm5,%xmm5
2264
+ vaesenc %xmm15,%xmm6,%xmm6
2265
+ vaesenc %xmm15,%xmm7,%xmm7
2266
+ vaesenc %xmm15,%xmm8,%xmm8
2267
+
2268
+ vpaddd eight(%rip),%xmm13,%xmm13
2269
+ vmovdqu 144(%rcx),%xmm15
2270
+ vaesenc %xmm15,%xmm1,%xmm1
2271
+ vaesenc %xmm15,%xmm2,%xmm2
2272
+ vaesenc %xmm15,%xmm3,%xmm3
2273
+ vaesenc %xmm15,%xmm4,%xmm4
2274
+ vaesenc %xmm15,%xmm5,%xmm5
2275
+ vaesenc %xmm15,%xmm6,%xmm6
2276
+ vaesenc %xmm15,%xmm7,%xmm7
2277
+ vaesenc %xmm15,%xmm8,%xmm8
2278
+
2279
+ vmovdqu 160(%rcx),%xmm15
2280
+ vaesenc %xmm15,%xmm1,%xmm1
2281
+ vaesenc %xmm15,%xmm2,%xmm2
2282
+ vaesenc %xmm15,%xmm3,%xmm3
2283
+ vaesenc %xmm15,%xmm4,%xmm4
2284
+ vaesenc %xmm15,%xmm5,%xmm5
2285
+ vaesenc %xmm15,%xmm6,%xmm6
2286
+ vaesenc %xmm15,%xmm7,%xmm7
2287
+ vaesenc %xmm15,%xmm8,%xmm8
2288
+
2289
+ vmovdqu 176(%rcx),%xmm15
2290
+ vaesenc %xmm15,%xmm1,%xmm1
2291
+ vaesenc %xmm15,%xmm2,%xmm2
2292
+ vaesenc %xmm15,%xmm3,%xmm3
2293
+ vaesenc %xmm15,%xmm4,%xmm4
2294
+ vaesenc %xmm15,%xmm5,%xmm5
2295
+ vaesenc %xmm15,%xmm6,%xmm6
2296
+ vaesenc %xmm15,%xmm7,%xmm7
2297
+ vaesenc %xmm15,%xmm8,%xmm8
2298
+
2299
+ vmovdqu 192(%rcx),%xmm15
2300
+ vaesenc %xmm15,%xmm1,%xmm1
2301
+ vaesenc %xmm15,%xmm2,%xmm2
2302
+ vaesenc %xmm15,%xmm3,%xmm3
2303
+ vaesenc %xmm15,%xmm4,%xmm4
2304
+ vaesenc %xmm15,%xmm5,%xmm5
2305
+ vaesenc %xmm15,%xmm6,%xmm6
2306
+ vaesenc %xmm15,%xmm7,%xmm7
2307
+ vaesenc %xmm15,%xmm8,%xmm8
2308
+
2309
+ vmovdqu 208(%rcx),%xmm15
2310
+ vaesenc %xmm15,%xmm1,%xmm1
2311
+ vaesenc %xmm15,%xmm2,%xmm2
2312
+ vaesenc %xmm15,%xmm3,%xmm3
2313
+ vaesenc %xmm15,%xmm4,%xmm4
2314
+ vaesenc %xmm15,%xmm5,%xmm5
2315
+ vaesenc %xmm15,%xmm6,%xmm6
2316
+ vaesenc %xmm15,%xmm7,%xmm7
2317
+ vaesenc %xmm15,%xmm8,%xmm8
2318
+
2319
+ vmovdqu 224(%rcx),%xmm15
2320
+ vaesenclast %xmm15,%xmm1,%xmm1
2321
+ vaesenclast %xmm15,%xmm2,%xmm2
2322
+ vaesenclast %xmm15,%xmm3,%xmm3
2323
+ vaesenclast %xmm15,%xmm4,%xmm4
2324
+ vaesenclast %xmm15,%xmm5,%xmm5
2325
+ vaesenclast %xmm15,%xmm6,%xmm6
2326
+ vaesenclast %xmm15,%xmm7,%xmm7
2327
+ vaesenclast %xmm15,%xmm8,%xmm8
2328
+
2329
+
2330
+ // XOR with Plaintext
2331
+ vpxor 0(%rdi),%xmm1,%xmm1
2332
+ vpxor 16(%rdi),%xmm2,%xmm2
2333
+ vpxor 32(%rdi),%xmm3,%xmm3
2334
+ vpxor 48(%rdi),%xmm4,%xmm4
2335
+ vpxor 64(%rdi),%xmm5,%xmm5
2336
+ vpxor 80(%rdi),%xmm6,%xmm6
2337
+ vpxor 96(%rdi),%xmm7,%xmm7
2338
+ vpxor 112(%rdi),%xmm8,%xmm8
2339
+
2340
+ subq $1,%r8
2341
+
2342
+ vmovdqu %xmm1,0(%rsi)
2343
+ vmovdqu %xmm2,16(%rsi)
2344
+ vmovdqu %xmm3,32(%rsi)
2345
+ vmovdqu %xmm4,48(%rsi)
2346
+ vmovdqu %xmm5,64(%rsi)
2347
+ vmovdqu %xmm6,80(%rsi)
2348
+ vmovdqu %xmm7,96(%rsi)
2349
+ vmovdqu %xmm8,112(%rsi)
2350
+
2351
+ jne L$256_enc_msg_x8_loop1
2352
+
2353
+ addq $128,%rsi
2354
+ addq $128,%rdi
2355
+
2356
+ L$256_enc_msg_x8_check_remainder:
2357
+ cmpq $0,%r10
2358
+ je L$256_enc_msg_x8_out
2359
+
2360
+ L$256_enc_msg_x8_loop2:
2361
+ // encrypt each block separately
2362
+ // CTR1 is the highest counter (even if no LOOP done)
2363
+ vmovdqa %xmm0,%xmm1
2364
+ vpaddd one(%rip),%xmm0,%xmm0
2365
+
2366
+ vpxor (%rcx),%xmm1,%xmm1
2367
+ vaesenc 16(%rcx),%xmm1,%xmm1
2368
+ vaesenc 32(%rcx),%xmm1,%xmm1
2369
+ vaesenc 48(%rcx),%xmm1,%xmm1
2370
+ vaesenc 64(%rcx),%xmm1,%xmm1
2371
+ vaesenc 80(%rcx),%xmm1,%xmm1
2372
+ vaesenc 96(%rcx),%xmm1,%xmm1
2373
+ vaesenc 112(%rcx),%xmm1,%xmm1
2374
+ vaesenc 128(%rcx),%xmm1,%xmm1
2375
+ vaesenc 144(%rcx),%xmm1,%xmm1
2376
+ vaesenc 160(%rcx),%xmm1,%xmm1
2377
+ vaesenc 176(%rcx),%xmm1,%xmm1
2378
+ vaesenc 192(%rcx),%xmm1,%xmm1
2379
+ vaesenc 208(%rcx),%xmm1,%xmm1
2380
+ vaesenclast 224(%rcx),%xmm1,%xmm1
2381
+
2382
+ // XOR with Plaintext
2383
+ vpxor (%rdi),%xmm1,%xmm1
2384
+
2385
+ vmovdqu %xmm1,(%rsi)
2386
+
2387
+ addq $16,%rdi
2388
+ addq $16,%rsi
2389
+ subq $1,%r10
2390
+ jnz L$256_enc_msg_x8_loop2
2391
+
2392
+ L$256_enc_msg_x8_out:
2393
+ ret
2394
+
2395
+
2396
+
2397
+ .globl _aes256gcmsiv_dec
2398
+ .private_extern _aes256gcmsiv_dec
2399
+
2400
+ .p2align 4
2401
+ .alt_entry _aes256gcmsiv_dec
2402
+ _aes256gcmsiv_dec:
2403
+
2404
+ _CET_ENDBR
2405
+ testq $~15,%r9
2406
+ jnz L$256_dec_start
2407
+ ret
2408
+
2409
+ L$256_dec_start:
2410
+ vzeroupper
2411
+ vmovdqa (%rdx),%xmm0
2412
+ // The claimed tag is provided after the current calculated tag value.
2413
+ // CTRBLKs is made from it.
2414
+ vmovdqu 16(%rdx),%xmm15
2415
+ vpor OR_MASK(%rip),%xmm15,%xmm15 // CTR = [1]TAG[126...32][00..00]
2416
+ movq %rdx,%rax
2417
+
2418
+ leaq 32(%rax),%rax
2419
+ leaq 32(%rcx),%rcx
2420
+
2421
+ andq $~15,%r9
2422
+
2423
+ // If less then 6 blocks, make singles
2424
+ cmpq $96,%r9
2425
+ jb L$256_dec_loop2
2426
+
2427
+ // Decrypt the first six blocks
2428
+ subq $96,%r9
2429
+ vmovdqa %xmm15,%xmm7
2430
+ vpaddd one(%rip),%xmm7,%xmm8
2431
+ vpaddd two(%rip),%xmm7,%xmm9
2432
+ vpaddd one(%rip),%xmm9,%xmm10
2433
+ vpaddd two(%rip),%xmm9,%xmm11
2434
+ vpaddd one(%rip),%xmm11,%xmm12
2435
+ vpaddd two(%rip),%xmm11,%xmm15
2436
+
2437
+ vpxor (%r8),%xmm7,%xmm7
2438
+ vpxor (%r8),%xmm8,%xmm8
2439
+ vpxor (%r8),%xmm9,%xmm9
2440
+ vpxor (%r8),%xmm10,%xmm10
2441
+ vpxor (%r8),%xmm11,%xmm11
2442
+ vpxor (%r8),%xmm12,%xmm12
2443
+
2444
+ vmovdqu 16(%r8),%xmm4
2445
+ vaesenc %xmm4,%xmm7,%xmm7
2446
+ vaesenc %xmm4,%xmm8,%xmm8
2447
+ vaesenc %xmm4,%xmm9,%xmm9
2448
+ vaesenc %xmm4,%xmm10,%xmm10
2449
+ vaesenc %xmm4,%xmm11,%xmm11
2450
+ vaesenc %xmm4,%xmm12,%xmm12
2451
+
2452
+ vmovdqu 32(%r8),%xmm4
2453
+ vaesenc %xmm4,%xmm7,%xmm7
2454
+ vaesenc %xmm4,%xmm8,%xmm8
2455
+ vaesenc %xmm4,%xmm9,%xmm9
2456
+ vaesenc %xmm4,%xmm10,%xmm10
2457
+ vaesenc %xmm4,%xmm11,%xmm11
2458
+ vaesenc %xmm4,%xmm12,%xmm12
2459
+
2460
+ vmovdqu 48(%r8),%xmm4
2461
+ vaesenc %xmm4,%xmm7,%xmm7
2462
+ vaesenc %xmm4,%xmm8,%xmm8
2463
+ vaesenc %xmm4,%xmm9,%xmm9
2464
+ vaesenc %xmm4,%xmm10,%xmm10
2465
+ vaesenc %xmm4,%xmm11,%xmm11
2466
+ vaesenc %xmm4,%xmm12,%xmm12
2467
+
2468
+ vmovdqu 64(%r8),%xmm4
2469
+ vaesenc %xmm4,%xmm7,%xmm7
2470
+ vaesenc %xmm4,%xmm8,%xmm8
2471
+ vaesenc %xmm4,%xmm9,%xmm9
2472
+ vaesenc %xmm4,%xmm10,%xmm10
2473
+ vaesenc %xmm4,%xmm11,%xmm11
2474
+ vaesenc %xmm4,%xmm12,%xmm12
2475
+
2476
+ vmovdqu 80(%r8),%xmm4
2477
+ vaesenc %xmm4,%xmm7,%xmm7
2478
+ vaesenc %xmm4,%xmm8,%xmm8
2479
+ vaesenc %xmm4,%xmm9,%xmm9
2480
+ vaesenc %xmm4,%xmm10,%xmm10
2481
+ vaesenc %xmm4,%xmm11,%xmm11
2482
+ vaesenc %xmm4,%xmm12,%xmm12
2483
+
2484
+ vmovdqu 96(%r8),%xmm4
2485
+ vaesenc %xmm4,%xmm7,%xmm7
2486
+ vaesenc %xmm4,%xmm8,%xmm8
2487
+ vaesenc %xmm4,%xmm9,%xmm9
2488
+ vaesenc %xmm4,%xmm10,%xmm10
2489
+ vaesenc %xmm4,%xmm11,%xmm11
2490
+ vaesenc %xmm4,%xmm12,%xmm12
2491
+
2492
+ vmovdqu 112(%r8),%xmm4
2493
+ vaesenc %xmm4,%xmm7,%xmm7
2494
+ vaesenc %xmm4,%xmm8,%xmm8
2495
+ vaesenc %xmm4,%xmm9,%xmm9
2496
+ vaesenc %xmm4,%xmm10,%xmm10
2497
+ vaesenc %xmm4,%xmm11,%xmm11
2498
+ vaesenc %xmm4,%xmm12,%xmm12
2499
+
2500
+ vmovdqu 128(%r8),%xmm4
2501
+ vaesenc %xmm4,%xmm7,%xmm7
2502
+ vaesenc %xmm4,%xmm8,%xmm8
2503
+ vaesenc %xmm4,%xmm9,%xmm9
2504
+ vaesenc %xmm4,%xmm10,%xmm10
2505
+ vaesenc %xmm4,%xmm11,%xmm11
2506
+ vaesenc %xmm4,%xmm12,%xmm12
2507
+
2508
+ vmovdqu 144(%r8),%xmm4
2509
+ vaesenc %xmm4,%xmm7,%xmm7
2510
+ vaesenc %xmm4,%xmm8,%xmm8
2511
+ vaesenc %xmm4,%xmm9,%xmm9
2512
+ vaesenc %xmm4,%xmm10,%xmm10
2513
+ vaesenc %xmm4,%xmm11,%xmm11
2514
+ vaesenc %xmm4,%xmm12,%xmm12
2515
+
2516
+ vmovdqu 160(%r8),%xmm4
2517
+ vaesenc %xmm4,%xmm7,%xmm7
2518
+ vaesenc %xmm4,%xmm8,%xmm8
2519
+ vaesenc %xmm4,%xmm9,%xmm9
2520
+ vaesenc %xmm4,%xmm10,%xmm10
2521
+ vaesenc %xmm4,%xmm11,%xmm11
2522
+ vaesenc %xmm4,%xmm12,%xmm12
2523
+
2524
+ vmovdqu 176(%r8),%xmm4
2525
+ vaesenc %xmm4,%xmm7,%xmm7
2526
+ vaesenc %xmm4,%xmm8,%xmm8
2527
+ vaesenc %xmm4,%xmm9,%xmm9
2528
+ vaesenc %xmm4,%xmm10,%xmm10
2529
+ vaesenc %xmm4,%xmm11,%xmm11
2530
+ vaesenc %xmm4,%xmm12,%xmm12
2531
+
2532
+ vmovdqu 192(%r8),%xmm4
2533
+ vaesenc %xmm4,%xmm7,%xmm7
2534
+ vaesenc %xmm4,%xmm8,%xmm8
2535
+ vaesenc %xmm4,%xmm9,%xmm9
2536
+ vaesenc %xmm4,%xmm10,%xmm10
2537
+ vaesenc %xmm4,%xmm11,%xmm11
2538
+ vaesenc %xmm4,%xmm12,%xmm12
2539
+
2540
+ vmovdqu 208(%r8),%xmm4
2541
+ vaesenc %xmm4,%xmm7,%xmm7
2542
+ vaesenc %xmm4,%xmm8,%xmm8
2543
+ vaesenc %xmm4,%xmm9,%xmm9
2544
+ vaesenc %xmm4,%xmm10,%xmm10
2545
+ vaesenc %xmm4,%xmm11,%xmm11
2546
+ vaesenc %xmm4,%xmm12,%xmm12
2547
+
2548
+ vmovdqu 224(%r8),%xmm4
2549
+ vaesenclast %xmm4,%xmm7,%xmm7
2550
+ vaesenclast %xmm4,%xmm8,%xmm8
2551
+ vaesenclast %xmm4,%xmm9,%xmm9
2552
+ vaesenclast %xmm4,%xmm10,%xmm10
2553
+ vaesenclast %xmm4,%xmm11,%xmm11
2554
+ vaesenclast %xmm4,%xmm12,%xmm12
2555
+
2556
+ // XOR with CT
2557
+ vpxor 0(%rdi),%xmm7,%xmm7
2558
+ vpxor 16(%rdi),%xmm8,%xmm8
2559
+ vpxor 32(%rdi),%xmm9,%xmm9
2560
+ vpxor 48(%rdi),%xmm10,%xmm10
2561
+ vpxor 64(%rdi),%xmm11,%xmm11
2562
+ vpxor 80(%rdi),%xmm12,%xmm12
2563
+
2564
+ vmovdqu %xmm7,0(%rsi)
2565
+ vmovdqu %xmm8,16(%rsi)
2566
+ vmovdqu %xmm9,32(%rsi)
2567
+ vmovdqu %xmm10,48(%rsi)
2568
+ vmovdqu %xmm11,64(%rsi)
2569
+ vmovdqu %xmm12,80(%rsi)
2570
+
2571
+ addq $96,%rdi
2572
+ addq $96,%rsi
2573
+ jmp L$256_dec_loop1
2574
+
2575
+ // Decrypt 6 blocks each time while hashing previous 6 blocks
2576
+ .p2align 6
2577
+ L$256_dec_loop1:
2578
+ cmpq $96,%r9
2579
+ jb L$256_dec_finish_96
2580
+ subq $96,%r9
2581
+
2582
+ vmovdqa %xmm12,%xmm6
2583
+ vmovdqa %xmm11,16-32(%rax)
2584
+ vmovdqa %xmm10,32-32(%rax)
2585
+ vmovdqa %xmm9,48-32(%rax)
2586
+ vmovdqa %xmm8,64-32(%rax)
2587
+ vmovdqa %xmm7,80-32(%rax)
2588
+
2589
+ vmovdqa %xmm15,%xmm7
2590
+ vpaddd one(%rip),%xmm7,%xmm8
2591
+ vpaddd two(%rip),%xmm7,%xmm9
2592
+ vpaddd one(%rip),%xmm9,%xmm10
2593
+ vpaddd two(%rip),%xmm9,%xmm11
2594
+ vpaddd one(%rip),%xmm11,%xmm12
2595
+ vpaddd two(%rip),%xmm11,%xmm15
2596
+
2597
+ vmovdqa (%r8),%xmm4
2598
+ vpxor %xmm4,%xmm7,%xmm7
2599
+ vpxor %xmm4,%xmm8,%xmm8
2600
+ vpxor %xmm4,%xmm9,%xmm9
2601
+ vpxor %xmm4,%xmm10,%xmm10
2602
+ vpxor %xmm4,%xmm11,%xmm11
2603
+ vpxor %xmm4,%xmm12,%xmm12
2604
+
2605
+ vmovdqu 0-32(%rcx),%xmm4
2606
+ vpclmulqdq $0x11,%xmm4,%xmm6,%xmm2
2607
+ vpclmulqdq $0x00,%xmm4,%xmm6,%xmm3
2608
+ vpclmulqdq $0x01,%xmm4,%xmm6,%xmm1
2609
+ vpclmulqdq $0x10,%xmm4,%xmm6,%xmm4
2610
+ vpxor %xmm4,%xmm1,%xmm1
2611
+
2612
+ vmovdqu 16(%r8),%xmm4
2613
+ vaesenc %xmm4,%xmm7,%xmm7
2614
+ vaesenc %xmm4,%xmm8,%xmm8
2615
+ vaesenc %xmm4,%xmm9,%xmm9
2616
+ vaesenc %xmm4,%xmm10,%xmm10
2617
+ vaesenc %xmm4,%xmm11,%xmm11
2618
+ vaesenc %xmm4,%xmm12,%xmm12
2619
+
2620
+ vmovdqu -16(%rax),%xmm6
2621
+ vmovdqu -16(%rcx),%xmm13
2622
+
2623
+ vpclmulqdq $0x10,%xmm13,%xmm6,%xmm4
2624
+ vpxor %xmm4,%xmm1,%xmm1
2625
+ vpclmulqdq $0x11,%xmm13,%xmm6,%xmm4
2626
+ vpxor %xmm4,%xmm2,%xmm2
2627
+ vpclmulqdq $0x00,%xmm13,%xmm6,%xmm4
2628
+ vpxor %xmm4,%xmm3,%xmm3
2629
+ vpclmulqdq $0x01,%xmm13,%xmm6,%xmm4
2630
+ vpxor %xmm4,%xmm1,%xmm1
2631
+
2632
+
2633
+ vmovdqu 32(%r8),%xmm4
2634
+ vaesenc %xmm4,%xmm7,%xmm7
2635
+ vaesenc %xmm4,%xmm8,%xmm8
2636
+ vaesenc %xmm4,%xmm9,%xmm9
2637
+ vaesenc %xmm4,%xmm10,%xmm10
2638
+ vaesenc %xmm4,%xmm11,%xmm11
2639
+ vaesenc %xmm4,%xmm12,%xmm12
2640
+
2641
+ vmovdqu 0(%rax),%xmm6
2642
+ vmovdqu 0(%rcx),%xmm13
2643
+
2644
+ vpclmulqdq $0x10,%xmm13,%xmm6,%xmm4
2645
+ vpxor %xmm4,%xmm1,%xmm1
2646
+ vpclmulqdq $0x11,%xmm13,%xmm6,%xmm4
2647
+ vpxor %xmm4,%xmm2,%xmm2
2648
+ vpclmulqdq $0x00,%xmm13,%xmm6,%xmm4
2649
+ vpxor %xmm4,%xmm3,%xmm3
2650
+ vpclmulqdq $0x01,%xmm13,%xmm6,%xmm4
2651
+ vpxor %xmm4,%xmm1,%xmm1
2652
+
2653
+
2654
+ vmovdqu 48(%r8),%xmm4
2655
+ vaesenc %xmm4,%xmm7,%xmm7
2656
+ vaesenc %xmm4,%xmm8,%xmm8
2657
+ vaesenc %xmm4,%xmm9,%xmm9
2658
+ vaesenc %xmm4,%xmm10,%xmm10
2659
+ vaesenc %xmm4,%xmm11,%xmm11
2660
+ vaesenc %xmm4,%xmm12,%xmm12
2661
+
2662
+ vmovdqu 16(%rax),%xmm6
2663
+ vmovdqu 16(%rcx),%xmm13
2664
+
2665
+ vpclmulqdq $0x10,%xmm13,%xmm6,%xmm4
2666
+ vpxor %xmm4,%xmm1,%xmm1
2667
+ vpclmulqdq $0x11,%xmm13,%xmm6,%xmm4
2668
+ vpxor %xmm4,%xmm2,%xmm2
2669
+ vpclmulqdq $0x00,%xmm13,%xmm6,%xmm4
2670
+ vpxor %xmm4,%xmm3,%xmm3
2671
+ vpclmulqdq $0x01,%xmm13,%xmm6,%xmm4
2672
+ vpxor %xmm4,%xmm1,%xmm1
2673
+
2674
+
2675
+ vmovdqu 64(%r8),%xmm4
2676
+ vaesenc %xmm4,%xmm7,%xmm7
2677
+ vaesenc %xmm4,%xmm8,%xmm8
2678
+ vaesenc %xmm4,%xmm9,%xmm9
2679
+ vaesenc %xmm4,%xmm10,%xmm10
2680
+ vaesenc %xmm4,%xmm11,%xmm11
2681
+ vaesenc %xmm4,%xmm12,%xmm12
2682
+
2683
+ vmovdqu 32(%rax),%xmm6
2684
+ vmovdqu 32(%rcx),%xmm13
2685
+
2686
+ vpclmulqdq $0x10,%xmm13,%xmm6,%xmm4
2687
+ vpxor %xmm4,%xmm1,%xmm1
2688
+ vpclmulqdq $0x11,%xmm13,%xmm6,%xmm4
2689
+ vpxor %xmm4,%xmm2,%xmm2
2690
+ vpclmulqdq $0x00,%xmm13,%xmm6,%xmm4
2691
+ vpxor %xmm4,%xmm3,%xmm3
2692
+ vpclmulqdq $0x01,%xmm13,%xmm6,%xmm4
2693
+ vpxor %xmm4,%xmm1,%xmm1
2694
+
2695
+
2696
+ vmovdqu 80(%r8),%xmm4
2697
+ vaesenc %xmm4,%xmm7,%xmm7
2698
+ vaesenc %xmm4,%xmm8,%xmm8
2699
+ vaesenc %xmm4,%xmm9,%xmm9
2700
+ vaesenc %xmm4,%xmm10,%xmm10
2701
+ vaesenc %xmm4,%xmm11,%xmm11
2702
+ vaesenc %xmm4,%xmm12,%xmm12
2703
+
2704
+ vmovdqu 96(%r8),%xmm4
2705
+ vaesenc %xmm4,%xmm7,%xmm7
2706
+ vaesenc %xmm4,%xmm8,%xmm8
2707
+ vaesenc %xmm4,%xmm9,%xmm9
2708
+ vaesenc %xmm4,%xmm10,%xmm10
2709
+ vaesenc %xmm4,%xmm11,%xmm11
2710
+ vaesenc %xmm4,%xmm12,%xmm12
2711
+
2712
+ vmovdqu 112(%r8),%xmm4
2713
+ vaesenc %xmm4,%xmm7,%xmm7
2714
+ vaesenc %xmm4,%xmm8,%xmm8
2715
+ vaesenc %xmm4,%xmm9,%xmm9
2716
+ vaesenc %xmm4,%xmm10,%xmm10
2717
+ vaesenc %xmm4,%xmm11,%xmm11
2718
+ vaesenc %xmm4,%xmm12,%xmm12
2719
+
2720
+
2721
+ vmovdqa 80-32(%rax),%xmm6
2722
+ vpxor %xmm0,%xmm6,%xmm6
2723
+ vmovdqu 80-32(%rcx),%xmm5
2724
+
2725
+ vpclmulqdq $0x01,%xmm5,%xmm6,%xmm4
2726
+ vpxor %xmm4,%xmm1,%xmm1
2727
+ vpclmulqdq $0x11,%xmm5,%xmm6,%xmm4
2728
+ vpxor %xmm4,%xmm2,%xmm2
2729
+ vpclmulqdq $0x00,%xmm5,%xmm6,%xmm4
2730
+ vpxor %xmm4,%xmm3,%xmm3
2731
+ vpclmulqdq $0x10,%xmm5,%xmm6,%xmm4
2732
+ vpxor %xmm4,%xmm1,%xmm1
2733
+
2734
+ vmovdqu 128(%r8),%xmm4
2735
+ vaesenc %xmm4,%xmm7,%xmm7
2736
+ vaesenc %xmm4,%xmm8,%xmm8
2737
+ vaesenc %xmm4,%xmm9,%xmm9
2738
+ vaesenc %xmm4,%xmm10,%xmm10
2739
+ vaesenc %xmm4,%xmm11,%xmm11
2740
+ vaesenc %xmm4,%xmm12,%xmm12
2741
+
2742
+
2743
+ vpsrldq $8,%xmm1,%xmm4
2744
+ vpxor %xmm4,%xmm2,%xmm5
2745
+ vpslldq $8,%xmm1,%xmm4
2746
+ vpxor %xmm4,%xmm3,%xmm0
2747
+
2748
+ vmovdqa poly(%rip),%xmm3
2749
+
2750
+ vmovdqu 144(%r8),%xmm4
2751
+ vaesenc %xmm4,%xmm7,%xmm7
2752
+ vaesenc %xmm4,%xmm8,%xmm8
2753
+ vaesenc %xmm4,%xmm9,%xmm9
2754
+ vaesenc %xmm4,%xmm10,%xmm10
2755
+ vaesenc %xmm4,%xmm11,%xmm11
2756
+ vaesenc %xmm4,%xmm12,%xmm12
2757
+
2758
+ vmovdqu 160(%r8),%xmm4
2759
+ vaesenc %xmm4,%xmm7,%xmm7
2760
+ vaesenc %xmm4,%xmm8,%xmm8
2761
+ vaesenc %xmm4,%xmm9,%xmm9
2762
+ vaesenc %xmm4,%xmm10,%xmm10
2763
+ vaesenc %xmm4,%xmm11,%xmm11
2764
+ vaesenc %xmm4,%xmm12,%xmm12
2765
+
2766
+ vmovdqu 176(%r8),%xmm4
2767
+ vaesenc %xmm4,%xmm7,%xmm7
2768
+ vaesenc %xmm4,%xmm8,%xmm8
2769
+ vaesenc %xmm4,%xmm9,%xmm9
2770
+ vaesenc %xmm4,%xmm10,%xmm10
2771
+ vaesenc %xmm4,%xmm11,%xmm11
2772
+ vaesenc %xmm4,%xmm12,%xmm12
2773
+
2774
+ vmovdqu 192(%r8),%xmm4
2775
+ vaesenc %xmm4,%xmm7,%xmm7
2776
+ vaesenc %xmm4,%xmm8,%xmm8
2777
+ vaesenc %xmm4,%xmm9,%xmm9
2778
+ vaesenc %xmm4,%xmm10,%xmm10
2779
+ vaesenc %xmm4,%xmm11,%xmm11
2780
+ vaesenc %xmm4,%xmm12,%xmm12
2781
+
2782
+ vmovdqu 208(%r8),%xmm4
2783
+ vaesenc %xmm4,%xmm7,%xmm7
2784
+ vaesenc %xmm4,%xmm8,%xmm8
2785
+ vaesenc %xmm4,%xmm9,%xmm9
2786
+ vaesenc %xmm4,%xmm10,%xmm10
2787
+ vaesenc %xmm4,%xmm11,%xmm11
2788
+ vaesenc %xmm4,%xmm12,%xmm12
2789
+
2790
+ vmovdqu 224(%r8),%xmm6
2791
+ vpalignr $8,%xmm0,%xmm0,%xmm2
2792
+ vpclmulqdq $0x10,%xmm3,%xmm0,%xmm0
2793
+ vpxor %xmm0,%xmm2,%xmm0
2794
+
2795
+ vpxor 0(%rdi),%xmm6,%xmm4
2796
+ vaesenclast %xmm4,%xmm7,%xmm7
2797
+ vpxor 16(%rdi),%xmm6,%xmm4
2798
+ vaesenclast %xmm4,%xmm8,%xmm8
2799
+ vpxor 32(%rdi),%xmm6,%xmm4
2800
+ vaesenclast %xmm4,%xmm9,%xmm9
2801
+ vpxor 48(%rdi),%xmm6,%xmm4
2802
+ vaesenclast %xmm4,%xmm10,%xmm10
2803
+ vpxor 64(%rdi),%xmm6,%xmm4
2804
+ vaesenclast %xmm4,%xmm11,%xmm11
2805
+ vpxor 80(%rdi),%xmm6,%xmm4
2806
+ vaesenclast %xmm4,%xmm12,%xmm12
2807
+
2808
+ vpalignr $8,%xmm0,%xmm0,%xmm2
2809
+ vpclmulqdq $0x10,%xmm3,%xmm0,%xmm0
2810
+ vpxor %xmm0,%xmm2,%xmm0
2811
+
2812
+ vmovdqu %xmm7,0(%rsi)
2813
+ vmovdqu %xmm8,16(%rsi)
2814
+ vmovdqu %xmm9,32(%rsi)
2815
+ vmovdqu %xmm10,48(%rsi)
2816
+ vmovdqu %xmm11,64(%rsi)
2817
+ vmovdqu %xmm12,80(%rsi)
2818
+
2819
+ vpxor %xmm5,%xmm0,%xmm0
2820
+
2821
+ leaq 96(%rdi),%rdi
2822
+ leaq 96(%rsi),%rsi
2823
+ jmp L$256_dec_loop1
2824
+
2825
+ L$256_dec_finish_96:
2826
+ vmovdqa %xmm12,%xmm6
2827
+ vmovdqa %xmm11,16-32(%rax)
2828
+ vmovdqa %xmm10,32-32(%rax)
2829
+ vmovdqa %xmm9,48-32(%rax)
2830
+ vmovdqa %xmm8,64-32(%rax)
2831
+ vmovdqa %xmm7,80-32(%rax)
2832
+
2833
+ vmovdqu 0-32(%rcx),%xmm4
2834
+ vpclmulqdq $0x10,%xmm4,%xmm6,%xmm1
2835
+ vpclmulqdq $0x11,%xmm4,%xmm6,%xmm2
2836
+ vpclmulqdq $0x00,%xmm4,%xmm6,%xmm3
2837
+ vpclmulqdq $0x01,%xmm4,%xmm6,%xmm4
2838
+ vpxor %xmm4,%xmm1,%xmm1
2839
+
2840
+ vmovdqu -16(%rax),%xmm6
2841
+ vmovdqu -16(%rcx),%xmm13
2842
+
2843
+ vpclmulqdq $0x10,%xmm13,%xmm6,%xmm4
2844
+ vpxor %xmm4,%xmm1,%xmm1
2845
+ vpclmulqdq $0x11,%xmm13,%xmm6,%xmm4
2846
+ vpxor %xmm4,%xmm2,%xmm2
2847
+ vpclmulqdq $0x00,%xmm13,%xmm6,%xmm4
2848
+ vpxor %xmm4,%xmm3,%xmm3
2849
+ vpclmulqdq $0x01,%xmm13,%xmm6,%xmm4
2850
+ vpxor %xmm4,%xmm1,%xmm1
2851
+
2852
+ vmovdqu 0(%rax),%xmm6
2853
+ vmovdqu 0(%rcx),%xmm13
2854
+
2855
+ vpclmulqdq $0x10,%xmm13,%xmm6,%xmm4
2856
+ vpxor %xmm4,%xmm1,%xmm1
2857
+ vpclmulqdq $0x11,%xmm13,%xmm6,%xmm4
2858
+ vpxor %xmm4,%xmm2,%xmm2
2859
+ vpclmulqdq $0x00,%xmm13,%xmm6,%xmm4
2860
+ vpxor %xmm4,%xmm3,%xmm3
2861
+ vpclmulqdq $0x01,%xmm13,%xmm6,%xmm4
2862
+ vpxor %xmm4,%xmm1,%xmm1
2863
+
2864
+ vmovdqu 16(%rax),%xmm6
2865
+ vmovdqu 16(%rcx),%xmm13
2866
+
2867
+ vpclmulqdq $0x10,%xmm13,%xmm6,%xmm4
2868
+ vpxor %xmm4,%xmm1,%xmm1
2869
+ vpclmulqdq $0x11,%xmm13,%xmm6,%xmm4
2870
+ vpxor %xmm4,%xmm2,%xmm2
2871
+ vpclmulqdq $0x00,%xmm13,%xmm6,%xmm4
2872
+ vpxor %xmm4,%xmm3,%xmm3
2873
+ vpclmulqdq $0x01,%xmm13,%xmm6,%xmm4
2874
+ vpxor %xmm4,%xmm1,%xmm1
2875
+
2876
+ vmovdqu 32(%rax),%xmm6
2877
+ vmovdqu 32(%rcx),%xmm13
2878
+
2879
+ vpclmulqdq $0x10,%xmm13,%xmm6,%xmm4
2880
+ vpxor %xmm4,%xmm1,%xmm1
2881
+ vpclmulqdq $0x11,%xmm13,%xmm6,%xmm4
2882
+ vpxor %xmm4,%xmm2,%xmm2
2883
+ vpclmulqdq $0x00,%xmm13,%xmm6,%xmm4
2884
+ vpxor %xmm4,%xmm3,%xmm3
2885
+ vpclmulqdq $0x01,%xmm13,%xmm6,%xmm4
2886
+ vpxor %xmm4,%xmm1,%xmm1
2887
+
2888
+
2889
+ vmovdqu 80-32(%rax),%xmm6
2890
+ vpxor %xmm0,%xmm6,%xmm6
2891
+ vmovdqu 80-32(%rcx),%xmm5
2892
+ vpclmulqdq $0x11,%xmm5,%xmm6,%xmm4
2893
+ vpxor %xmm4,%xmm2,%xmm2
2894
+ vpclmulqdq $0x00,%xmm5,%xmm6,%xmm4
2895
+ vpxor %xmm4,%xmm3,%xmm3
2896
+ vpclmulqdq $0x10,%xmm5,%xmm6,%xmm4
2897
+ vpxor %xmm4,%xmm1,%xmm1
2898
+ vpclmulqdq $0x01,%xmm5,%xmm6,%xmm4
2899
+ vpxor %xmm4,%xmm1,%xmm1
2900
+
2901
+ vpsrldq $8,%xmm1,%xmm4
2902
+ vpxor %xmm4,%xmm2,%xmm5
2903
+ vpslldq $8,%xmm1,%xmm4
2904
+ vpxor %xmm4,%xmm3,%xmm0
2905
+
2906
+ vmovdqa poly(%rip),%xmm3
2907
+
2908
+ vpalignr $8,%xmm0,%xmm0,%xmm2
2909
+ vpclmulqdq $0x10,%xmm3,%xmm0,%xmm0
2910
+ vpxor %xmm0,%xmm2,%xmm0
2911
+
2912
+ vpalignr $8,%xmm0,%xmm0,%xmm2
2913
+ vpclmulqdq $0x10,%xmm3,%xmm0,%xmm0
2914
+ vpxor %xmm0,%xmm2,%xmm0
2915
+
2916
+ vpxor %xmm5,%xmm0,%xmm0
2917
+
2918
+ L$256_dec_loop2:
2919
+ // Here we encrypt any remaining whole block
2920
+
2921
+ // if there are no whole blocks
2922
+ cmpq $16,%r9
2923
+ jb L$256_dec_out
2924
+ subq $16,%r9
2925
+
2926
+ vmovdqa %xmm15,%xmm2
2927
+ vpaddd one(%rip),%xmm15,%xmm15
2928
+
2929
+ vpxor 0(%r8),%xmm2,%xmm2
2930
+ vaesenc 16(%r8),%xmm2,%xmm2
2931
+ vaesenc 32(%r8),%xmm2,%xmm2
2932
+ vaesenc 48(%r8),%xmm2,%xmm2
2933
+ vaesenc 64(%r8),%xmm2,%xmm2
2934
+ vaesenc 80(%r8),%xmm2,%xmm2
2935
+ vaesenc 96(%r8),%xmm2,%xmm2
2936
+ vaesenc 112(%r8),%xmm2,%xmm2
2937
+ vaesenc 128(%r8),%xmm2,%xmm2
2938
+ vaesenc 144(%r8),%xmm2,%xmm2
2939
+ vaesenc 160(%r8),%xmm2,%xmm2
2940
+ vaesenc 176(%r8),%xmm2,%xmm2
2941
+ vaesenc 192(%r8),%xmm2,%xmm2
2942
+ vaesenc 208(%r8),%xmm2,%xmm2
2943
+ vaesenclast 224(%r8),%xmm2,%xmm2
2944
+ vpxor (%rdi),%xmm2,%xmm2
2945
+ vmovdqu %xmm2,(%rsi)
2946
+ addq $16,%rdi
2947
+ addq $16,%rsi
2948
+
2949
+ vpxor %xmm2,%xmm0,%xmm0
2950
+ vmovdqa -32(%rcx),%xmm1
2951
+ call GFMUL
2952
+
2953
+ jmp L$256_dec_loop2
2954
+
2955
+ L$256_dec_out:
2956
+ vmovdqu %xmm0,(%rdx)
2957
+ ret
2958
+
2959
+
2960
+ .globl _aes256gcmsiv_kdf
2961
+ .private_extern _aes256gcmsiv_kdf
2962
+
2963
+ .p2align 4
2964
+ .alt_entry _aes256gcmsiv_kdf
2965
+ _aes256gcmsiv_kdf:
2966
+
2967
+ _CET_ENDBR
2968
+ // parameter 1: %rdi Pointer to NONCE
2969
+ // parameter 2: %rsi Pointer to CT
2970
+ // parameter 4: %rdx Pointer to keys
2971
+
2972
+ vmovdqa (%rdx),%xmm1 // xmm1 = first 16 bytes of random key
2973
+ vmovdqa 0(%rdi),%xmm4
2974
+ vmovdqa and_mask(%rip),%xmm11
2975
+ vmovdqa one(%rip),%xmm8
2976
+ vpshufd $0x90,%xmm4,%xmm4
2977
+ vpand %xmm11,%xmm4,%xmm4
2978
+ vpaddd %xmm8,%xmm4,%xmm6
2979
+ vpaddd %xmm8,%xmm6,%xmm7
2980
+ vpaddd %xmm8,%xmm7,%xmm11
2981
+ vpaddd %xmm8,%xmm11,%xmm12
2982
+ vpaddd %xmm8,%xmm12,%xmm13
2983
+
2984
+ vpxor %xmm1,%xmm4,%xmm4
2985
+ vpxor %xmm1,%xmm6,%xmm6
2986
+ vpxor %xmm1,%xmm7,%xmm7
2987
+ vpxor %xmm1,%xmm11,%xmm11
2988
+ vpxor %xmm1,%xmm12,%xmm12
2989
+ vpxor %xmm1,%xmm13,%xmm13
2990
+
2991
+ vmovdqa 16(%rdx),%xmm1
2992
+ vaesenc %xmm1,%xmm4,%xmm4
2993
+ vaesenc %xmm1,%xmm6,%xmm6
2994
+ vaesenc %xmm1,%xmm7,%xmm7
2995
+ vaesenc %xmm1,%xmm11,%xmm11
2996
+ vaesenc %xmm1,%xmm12,%xmm12
2997
+ vaesenc %xmm1,%xmm13,%xmm13
2998
+
2999
+ vmovdqa 32(%rdx),%xmm2
3000
+ vaesenc %xmm2,%xmm4,%xmm4
3001
+ vaesenc %xmm2,%xmm6,%xmm6
3002
+ vaesenc %xmm2,%xmm7,%xmm7
3003
+ vaesenc %xmm2,%xmm11,%xmm11
3004
+ vaesenc %xmm2,%xmm12,%xmm12
3005
+ vaesenc %xmm2,%xmm13,%xmm13
3006
+
3007
+ vmovdqa 48(%rdx),%xmm1
3008
+ vaesenc %xmm1,%xmm4,%xmm4
3009
+ vaesenc %xmm1,%xmm6,%xmm6
3010
+ vaesenc %xmm1,%xmm7,%xmm7
3011
+ vaesenc %xmm1,%xmm11,%xmm11
3012
+ vaesenc %xmm1,%xmm12,%xmm12
3013
+ vaesenc %xmm1,%xmm13,%xmm13
3014
+
3015
+ vmovdqa 64(%rdx),%xmm2
3016
+ vaesenc %xmm2,%xmm4,%xmm4
3017
+ vaesenc %xmm2,%xmm6,%xmm6
3018
+ vaesenc %xmm2,%xmm7,%xmm7
3019
+ vaesenc %xmm2,%xmm11,%xmm11
3020
+ vaesenc %xmm2,%xmm12,%xmm12
3021
+ vaesenc %xmm2,%xmm13,%xmm13
3022
+
3023
+ vmovdqa 80(%rdx),%xmm1
3024
+ vaesenc %xmm1,%xmm4,%xmm4
3025
+ vaesenc %xmm1,%xmm6,%xmm6
3026
+ vaesenc %xmm1,%xmm7,%xmm7
3027
+ vaesenc %xmm1,%xmm11,%xmm11
3028
+ vaesenc %xmm1,%xmm12,%xmm12
3029
+ vaesenc %xmm1,%xmm13,%xmm13
3030
+
3031
+ vmovdqa 96(%rdx),%xmm2
3032
+ vaesenc %xmm2,%xmm4,%xmm4
3033
+ vaesenc %xmm2,%xmm6,%xmm6
3034
+ vaesenc %xmm2,%xmm7,%xmm7
3035
+ vaesenc %xmm2,%xmm11,%xmm11
3036
+ vaesenc %xmm2,%xmm12,%xmm12
3037
+ vaesenc %xmm2,%xmm13,%xmm13
3038
+
3039
+ vmovdqa 112(%rdx),%xmm1
3040
+ vaesenc %xmm1,%xmm4,%xmm4
3041
+ vaesenc %xmm1,%xmm6,%xmm6
3042
+ vaesenc %xmm1,%xmm7,%xmm7
3043
+ vaesenc %xmm1,%xmm11,%xmm11
3044
+ vaesenc %xmm1,%xmm12,%xmm12
3045
+ vaesenc %xmm1,%xmm13,%xmm13
3046
+
3047
+ vmovdqa 128(%rdx),%xmm2
3048
+ vaesenc %xmm2,%xmm4,%xmm4
3049
+ vaesenc %xmm2,%xmm6,%xmm6
3050
+ vaesenc %xmm2,%xmm7,%xmm7
3051
+ vaesenc %xmm2,%xmm11,%xmm11
3052
+ vaesenc %xmm2,%xmm12,%xmm12
3053
+ vaesenc %xmm2,%xmm13,%xmm13
3054
+
3055
+ vmovdqa 144(%rdx),%xmm1
3056
+ vaesenc %xmm1,%xmm4,%xmm4
3057
+ vaesenc %xmm1,%xmm6,%xmm6
3058
+ vaesenc %xmm1,%xmm7,%xmm7
3059
+ vaesenc %xmm1,%xmm11,%xmm11
3060
+ vaesenc %xmm1,%xmm12,%xmm12
3061
+ vaesenc %xmm1,%xmm13,%xmm13
3062
+
3063
+ vmovdqa 160(%rdx),%xmm2
3064
+ vaesenc %xmm2,%xmm4,%xmm4
3065
+ vaesenc %xmm2,%xmm6,%xmm6
3066
+ vaesenc %xmm2,%xmm7,%xmm7
3067
+ vaesenc %xmm2,%xmm11,%xmm11
3068
+ vaesenc %xmm2,%xmm12,%xmm12
3069
+ vaesenc %xmm2,%xmm13,%xmm13
3070
+
3071
+ vmovdqa 176(%rdx),%xmm1
3072
+ vaesenc %xmm1,%xmm4,%xmm4
3073
+ vaesenc %xmm1,%xmm6,%xmm6
3074
+ vaesenc %xmm1,%xmm7,%xmm7
3075
+ vaesenc %xmm1,%xmm11,%xmm11
3076
+ vaesenc %xmm1,%xmm12,%xmm12
3077
+ vaesenc %xmm1,%xmm13,%xmm13
3078
+
3079
+ vmovdqa 192(%rdx),%xmm2
3080
+ vaesenc %xmm2,%xmm4,%xmm4
3081
+ vaesenc %xmm2,%xmm6,%xmm6
3082
+ vaesenc %xmm2,%xmm7,%xmm7
3083
+ vaesenc %xmm2,%xmm11,%xmm11
3084
+ vaesenc %xmm2,%xmm12,%xmm12
3085
+ vaesenc %xmm2,%xmm13,%xmm13
3086
+
3087
+ vmovdqa 208(%rdx),%xmm1
3088
+ vaesenc %xmm1,%xmm4,%xmm4
3089
+ vaesenc %xmm1,%xmm6,%xmm6
3090
+ vaesenc %xmm1,%xmm7,%xmm7
3091
+ vaesenc %xmm1,%xmm11,%xmm11
3092
+ vaesenc %xmm1,%xmm12,%xmm12
3093
+ vaesenc %xmm1,%xmm13,%xmm13
3094
+
3095
+ vmovdqa 224(%rdx),%xmm2
3096
+ vaesenclast %xmm2,%xmm4,%xmm4
3097
+ vaesenclast %xmm2,%xmm6,%xmm6
3098
+ vaesenclast %xmm2,%xmm7,%xmm7
3099
+ vaesenclast %xmm2,%xmm11,%xmm11
3100
+ vaesenclast %xmm2,%xmm12,%xmm12
3101
+ vaesenclast %xmm2,%xmm13,%xmm13
3102
+
3103
+
3104
+ vmovdqa %xmm4,0(%rsi)
3105
+ vmovdqa %xmm6,16(%rsi)
3106
+ vmovdqa %xmm7,32(%rsi)
3107
+ vmovdqa %xmm11,48(%rsi)
3108
+ vmovdqa %xmm12,64(%rsi)
3109
+ vmovdqa %xmm13,80(%rsi)
3110
+ ret
3111
+
3112
+
3113
+ #endif