visaljs 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1008) hide show
  1. package/README.md +17 -1
  2. package/cli.js +565 -75
  3. package/node/include/js_node.h +28 -5
  4. package/node/include/js_uv.h +36 -0
  5. package/node/prelude/crypto.js +7 -10
  6. package/node/prelude/dns.js +99 -0
  7. package/node/prelude/dns_promises.js +10 -0
  8. package/node/prelude/http.js +1039 -195
  9. package/node/prelude/internal/crypto/asym.js +39 -12
  10. package/node/prelude/internal/crypto/dh_groups.js +12 -0
  11. package/node/prelude/internal/crypto/diffiehellman.js +354 -0
  12. package/node/prelude/internal/crypto/hash.js +1 -1
  13. package/node/prelude/internal/crypto/key_type.js +3 -0
  14. package/node/prelude/internal/crypto/keys.js +39 -9
  15. package/node/prelude/internal/http_agent.js +249 -0
  16. package/node/prelude/internal/net.js +33 -0
  17. package/node/prelude/internal/socketaddress.js +249 -0
  18. package/node/prelude/internal/tls/common.js +306 -0
  19. package/node/prelude/internal/tls/wrap.js +1217 -0
  20. package/node/prelude/internal/tls/x509.js +394 -0
  21. package/node/prelude/net.js +1083 -50
  22. package/node/prelude/stream.js +6 -0
  23. package/node/prelude/tls.js +141 -0
  24. package/node/prelude/util.js +5 -2
  25. package/node/prelude/util_types.js +85 -0
  26. package/node/src/host_http.c +268 -270
  27. package/node/src/host_loop.c +84 -0
  28. package/node/src/host_net.c +495 -0
  29. package/node/src/host_sys.c +16 -0
  30. package/package.json +1 -1
  31. package/runtime/include/js_builtins.h +16 -0
  32. package/runtime/include/js_console.h +2 -0
  33. package/runtime/include/js_core.def +23 -0
  34. package/runtime/include/js_crypto.h +23 -0
  35. package/runtime/include/js_generator.h +2 -3
  36. package/runtime/include/js_promise.h +0 -2
  37. package/runtime/src/async_iter.c +4 -1
  38. package/runtime/src/boringssl_support.cc +34 -0
  39. package/runtime/src/builtin_table.c +8 -0
  40. package/runtime/src/components.c +10 -0
  41. package/runtime/src/console.c +6 -18
  42. package/runtime/src/core_all.c +1 -0
  43. package/runtime/src/crypto_asym.c +450 -241
  44. package/runtime/src/crypto_bn.c +91 -0
  45. package/runtime/src/crypto_cipher.c +153 -75
  46. package/runtime/src/crypto_hash.c +68 -53
  47. package/runtime/src/crypto_internal.h +55 -26
  48. package/runtime/src/crypto_pkey.c +198 -61
  49. package/runtime/src/crypto_subtle.c +42 -16
  50. package/runtime/src/crypto_tls.c +678 -0
  51. package/runtime/src/generator.c +8 -1
  52. package/runtime/src/global.c +2 -4
  53. package/runtime/src/internal.h +0 -1
  54. package/runtime/src/jobs.c +2 -1
  55. package/runtime/src/promise.c +4 -1
  56. package/runtime/src/tls_roots.gen.h +3215 -0
  57. package/runtime/src/util_types.c +52 -0
  58. package/runtime/src/weak.c +2 -1
  59. package/runtime/third_party/boringssl/LICENSE +238 -0
  60. package/runtime/third_party/boringssl/README.md +46 -0
  61. package/runtime/third_party/boringssl/VERSION +1 -0
  62. package/runtime/third_party/boringssl/crypto/aes/aes.cc +44 -0
  63. package/runtime/third_party/boringssl/crypto/armv8_feature_parsing.h +67 -0
  64. package/runtime/third_party/boringssl/crypto/asn1/a_bitstr.cc +297 -0
  65. package/runtime/third_party/boringssl/crypto/asn1/a_bool.cc +50 -0
  66. package/runtime/third_party/boringssl/crypto/asn1/a_d2i_fp.cc +47 -0
  67. package/runtime/third_party/boringssl/crypto/asn1/a_dup.cc +42 -0
  68. package/runtime/third_party/boringssl/crypto/asn1/a_gentm.cc +130 -0
  69. package/runtime/third_party/boringssl/crypto/asn1/a_i2d_fp.cc +44 -0
  70. package/runtime/third_party/boringssl/crypto/asn1/a_int.cc +467 -0
  71. package/runtime/third_party/boringssl/crypto/asn1/a_mbstr.cc +242 -0
  72. package/runtime/third_party/boringssl/crypto/asn1/a_object.cc +191 -0
  73. package/runtime/third_party/boringssl/crypto/asn1/a_octet.cc +32 -0
  74. package/runtime/third_party/boringssl/crypto/asn1/a_strex.cc +411 -0
  75. package/runtime/third_party/boringssl/crypto/asn1/a_strnid.cc +208 -0
  76. package/runtime/third_party/boringssl/crypto/asn1/a_time.cc +248 -0
  77. package/runtime/third_party/boringssl/crypto/asn1/a_type.cc +467 -0
  78. package/runtime/third_party/boringssl/crypto/asn1/a_utctm.cc +128 -0
  79. package/runtime/third_party/boringssl/crypto/asn1/asn1_lib.cc +453 -0
  80. package/runtime/third_party/boringssl/crypto/asn1/asn1_par.cc +61 -0
  81. package/runtime/third_party/boringssl/crypto/asn1/asn_pack.cc +56 -0
  82. package/runtime/third_party/boringssl/crypto/asn1/f_int.cc +63 -0
  83. package/runtime/third_party/boringssl/crypto/asn1/f_string.cc +52 -0
  84. package/runtime/third_party/boringssl/crypto/asn1/internal.h +430 -0
  85. package/runtime/third_party/boringssl/crypto/asn1/posix_time.cc +244 -0
  86. package/runtime/third_party/boringssl/crypto/asn1/tasn_dec.cc +611 -0
  87. package/runtime/third_party/boringssl/crypto/asn1/tasn_enc.cc +348 -0
  88. package/runtime/third_party/boringssl/crypto/asn1/tasn_fre.cc +163 -0
  89. package/runtime/third_party/boringssl/crypto/asn1/tasn_new.cc +274 -0
  90. package/runtime/third_party/boringssl/crypto/asn1/tasn_typ.cc +92 -0
  91. package/runtime/third_party/boringssl/crypto/asn1/tasn_utl.cc +218 -0
  92. package/runtime/third_party/boringssl/crypto/base64/base64.cc +433 -0
  93. package/runtime/third_party/boringssl/crypto/bcm_support.h +62 -0
  94. package/runtime/third_party/boringssl/crypto/bio/bio.cc +715 -0
  95. package/runtime/third_party/boringssl/crypto/bio/bio_mem.cc +260 -0
  96. package/runtime/third_party/boringssl/crypto/bio/connect.cc +463 -0
  97. package/runtime/third_party/boringssl/crypto/bio/errno.cc +52 -0
  98. package/runtime/third_party/boringssl/crypto/bio/fd.cc +193 -0
  99. package/runtime/third_party/boringssl/crypto/bio/file.cc +283 -0
  100. package/runtime/third_party/boringssl/crypto/bio/hexdump.cc +154 -0
  101. package/runtime/third_party/boringssl/crypto/bio/internal.h +128 -0
  102. package/runtime/third_party/boringssl/crypto/bio/pair.cc +426 -0
  103. package/runtime/third_party/boringssl/crypto/bio/printf.cc +59 -0
  104. package/runtime/third_party/boringssl/crypto/bio/socket.cc +210 -0
  105. package/runtime/third_party/boringssl/crypto/bio/socket_helper.cc +179 -0
  106. package/runtime/third_party/boringssl/crypto/blake2/blake2.cc +173 -0
  107. package/runtime/third_party/boringssl/crypto/bn/bn_asn1.cc +57 -0
  108. package/runtime/third_party/boringssl/crypto/bn/convert.cc +409 -0
  109. package/runtime/third_party/boringssl/crypto/bn/div.cc +102 -0
  110. package/runtime/third_party/boringssl/crypto/bn/exponentiation.cc +168 -0
  111. package/runtime/third_party/boringssl/crypto/bn/sqrt.cc +93 -0
  112. package/runtime/third_party/boringssl/crypto/buf/buf.cc +119 -0
  113. package/runtime/third_party/boringssl/crypto/bytestring/asn1_compat.cc +54 -0
  114. package/runtime/third_party/boringssl/crypto/bytestring/ber.cc +268 -0
  115. package/runtime/third_party/boringssl/crypto/bytestring/cbb.cc +787 -0
  116. package/runtime/third_party/boringssl/crypto/bytestring/cbs.cc +977 -0
  117. package/runtime/third_party/boringssl/crypto/bytestring/internal.h +134 -0
  118. package/runtime/third_party/boringssl/crypto/bytestring/unicode.cc +156 -0
  119. package/runtime/third_party/boringssl/crypto/chacha/chacha.cc +226 -0
  120. package/runtime/third_party/boringssl/crypto/chacha/internal.h +103 -0
  121. package/runtime/third_party/boringssl/crypto/cipher/derive_key.cc +106 -0
  122. package/runtime/third_party/boringssl/crypto/cipher/e_aesctrhmac.cc +294 -0
  123. package/runtime/third_party/boringssl/crypto/cipher/e_aeseax.cc +351 -0
  124. package/runtime/third_party/boringssl/crypto/cipher/e_aesgcmsiv.cc +918 -0
  125. package/runtime/third_party/boringssl/crypto/cipher/e_chacha20poly1305.cc +404 -0
  126. package/runtime/third_party/boringssl/crypto/cipher/e_des.cc +214 -0
  127. package/runtime/third_party/boringssl/crypto/cipher/e_null.cc +55 -0
  128. package/runtime/third_party/boringssl/crypto/cipher/e_rc2.cc +432 -0
  129. package/runtime/third_party/boringssl/crypto/cipher/e_rc4.cc +56 -0
  130. package/runtime/third_party/boringssl/crypto/cipher/e_tls.cc +615 -0
  131. package/runtime/third_party/boringssl/crypto/cipher/get_cipher.cc +85 -0
  132. package/runtime/third_party/boringssl/crypto/cipher/internal.h +399 -0
  133. package/runtime/third_party/boringssl/crypto/cipher/tls_cbc.cc +476 -0
  134. package/runtime/third_party/boringssl/crypto/cms/cms.cc +178 -0
  135. package/runtime/third_party/boringssl/crypto/conf/conf.cc +637 -0
  136. package/runtime/third_party/boringssl/crypto/conf/internal.h +54 -0
  137. package/runtime/third_party/boringssl/crypto/cpu_aarch64_apple.cc +76 -0
  138. package/runtime/third_party/boringssl/crypto/cpu_aarch64_fuchsia.cc +58 -0
  139. package/runtime/third_party/boringssl/crypto/cpu_aarch64_linux.cc +66 -0
  140. package/runtime/third_party/boringssl/crypto/cpu_aarch64_openbsd.cc +45 -0
  141. package/runtime/third_party/boringssl/crypto/cpu_aarch64_sysreg.cc +66 -0
  142. package/runtime/third_party/boringssl/crypto/cpu_aarch64_win.cc +52 -0
  143. package/runtime/third_party/boringssl/crypto/cpu_arm_freebsd.cc +55 -0
  144. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.cc +173 -0
  145. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.h +141 -0
  146. package/runtime/third_party/boringssl/crypto/cpu_intel.cc +287 -0
  147. package/runtime/third_party/boringssl/crypto/crypto.cc +152 -0
  148. package/runtime/third_party/boringssl/crypto/curve25519/asm/x25519-asm-arm.S +2124 -0
  149. package/runtime/third_party/boringssl/crypto/curve25519/cpace.cc +227 -0
  150. package/runtime/third_party/boringssl/crypto/curve25519/curve25519.cc +2436 -0
  151. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_64_adx.cc +18 -0
  152. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_tables.h +3264 -0
  153. package/runtime/third_party/boringssl/crypto/curve25519/internal.h +202 -0
  154. package/runtime/third_party/boringssl/crypto/curve25519/spake25519.cc +532 -0
  155. package/runtime/third_party/boringssl/crypto/des/des.cc +837 -0
  156. package/runtime/third_party/boringssl/crypto/des/internal.h +144 -0
  157. package/runtime/third_party/boringssl/crypto/dh/dh_asn1.cc +109 -0
  158. package/runtime/third_party/boringssl/crypto/dh/params.cc +411 -0
  159. package/runtime/third_party/boringssl/crypto/digest/digest_extra.cc +361 -0
  160. package/runtime/third_party/boringssl/crypto/dsa/dsa.cc +922 -0
  161. package/runtime/third_party/boringssl/crypto/dsa/dsa_asn1.cc +306 -0
  162. package/runtime/third_party/boringssl/crypto/dsa/internal.h +56 -0
  163. package/runtime/third_party/boringssl/crypto/ec/ec_asn1.cc +542 -0
  164. package/runtime/third_party/boringssl/crypto/ec/ec_derive.cc +94 -0
  165. package/runtime/third_party/boringssl/crypto/ec/hash_to_curve.cc +773 -0
  166. package/runtime/third_party/boringssl/crypto/ec/internal.h +114 -0
  167. package/runtime/third_party/boringssl/crypto/ecdh/ecdh.cc +75 -0
  168. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.cc +337 -0
  169. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_p1363.cc +54 -0
  170. package/runtime/third_party/boringssl/crypto/engine/engine.cc +95 -0
  171. package/runtime/third_party/boringssl/crypto/err/err.cc +820 -0
  172. package/runtime/third_party/boringssl/crypto/err/internal.h +45 -0
  173. package/runtime/third_party/boringssl/crypto/evp/evp.cc +454 -0
  174. package/runtime/third_party/boringssl/crypto/evp/evp_asn1.cc +439 -0
  175. package/runtime/third_party/boringssl/crypto/evp/evp_ctx.cc +541 -0
  176. package/runtime/third_party/boringssl/crypto/evp/evp_kem.cc +101 -0
  177. package/runtime/third_party/boringssl/crypto/evp/internal.h +427 -0
  178. package/runtime/third_party/boringssl/crypto/evp/p_dh.cc +326 -0
  179. package/runtime/third_party/boringssl/crypto/evp/p_dsa.cc +333 -0
  180. package/runtime/third_party/boringssl/crypto/evp/p_ec.cc +736 -0
  181. package/runtime/third_party/boringssl/crypto/evp/p_ed25519.cc +359 -0
  182. package/runtime/third_party/boringssl/crypto/evp/p_hkdf.cc +204 -0
  183. package/runtime/third_party/boringssl/crypto/evp/p_mldsa.cc +549 -0
  184. package/runtime/third_party/boringssl/crypto/evp/p_mlkem.cc +510 -0
  185. package/runtime/third_party/boringssl/crypto/evp/p_rsa.cc +1185 -0
  186. package/runtime/third_party/boringssl/crypto/evp/p_x25519.cc +371 -0
  187. package/runtime/third_party/boringssl/crypto/evp/p_xwing.cc +300 -0
  188. package/runtime/third_party/boringssl/crypto/evp/pbkdf.cc +105 -0
  189. package/runtime/third_party/boringssl/crypto/evp/print.cc +287 -0
  190. package/runtime/third_party/boringssl/crypto/evp/scrypt.cc +218 -0
  191. package/runtime/third_party/boringssl/crypto/evp/sign.cc +95 -0
  192. package/runtime/third_party/boringssl/crypto/ex_data.cc +140 -0
  193. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes.cc.inc +208 -0
  194. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes_nohw.cc.inc +1279 -0
  195. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cbc.cc.inc +132 -0
  196. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cfb.cc.inc +168 -0
  197. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ctr.cc.inc +102 -0
  198. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm.cc.inc +614 -0
  199. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm_nohw.cc.inc +304 -0
  200. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/internal.h +590 -0
  201. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/key_wrap.cc.inc +211 -0
  202. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.cc.inc +97 -0
  203. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ofb.cc.inc +55 -0
  204. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm.cc +288 -0
  205. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm_interface.h +953 -0
  206. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/add.cc.inc +276 -0
  207. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +573 -0
  208. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bn.cc.inc +377 -0
  209. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bytes.cc.inc +230 -0
  210. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/cmp.cc.inc +161 -0
  211. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/ctx.cc.inc +127 -0
  212. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div.cc.inc +738 -0
  213. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div_extra.cc.inc +90 -0
  214. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.cc.inc +743 -0
  215. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd.cc.inc +281 -0
  216. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd_extra.cc.inc +327 -0
  217. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/generic.cc.inc +579 -0
  218. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/internal.h +810 -0
  219. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/jacobi.cc.inc +101 -0
  220. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery.cc.inc +408 -0
  221. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery_inv.cc.inc +179 -0
  222. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/mul.cc.inc +347 -0
  223. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/prime.cc.inc +931 -0
  224. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/random.cc.inc +261 -0
  225. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.cc.inc +144 -0
  226. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.h +109 -0
  227. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/shift.cc.inc +317 -0
  228. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/sqrt.cc.inc +370 -0
  229. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/aead.cc.inc +619 -0
  230. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/cipher.cc.inc +837 -0
  231. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.cc.inc +1240 -0
  232. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aesccm.cc.inc +440 -0
  233. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/internal.h +461 -0
  234. package/runtime/third_party/boringssl/crypto/fipsmodule/cmac/cmac.cc.inc +293 -0
  235. package/runtime/third_party/boringssl/crypto/fipsmodule/delocate.h +95 -0
  236. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/check.cc.inc +198 -0
  237. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/dh.cc.inc +401 -0
  238. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/internal.h +63 -0
  239. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digest.cc.inc +221 -0
  240. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digests.cc.inc +184 -0
  241. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/internal.h +72 -0
  242. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/md32_common.h +166 -0
  243. package/runtime/third_party/boringssl/crypto/fipsmodule/digestsign/digestsign.cc.inc +230 -0
  244. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/builtin_curves.h +277 -0
  245. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec.cc.inc +1024 -0
  246. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_key.cc.inc +536 -0
  247. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.cc.inc +379 -0
  248. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/felem.cc.inc +250 -0
  249. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/internal.h +752 -0
  250. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/oct.cc.inc +174 -0
  251. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz-table.h +9502 -0
  252. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.cc.inc +740 -0
  253. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.h +207 -0
  254. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256.cc.inc +578 -0
  255. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256_table.h +297 -0
  256. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/scalar.cc.inc +184 -0
  257. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple.cc.inc +246 -0
  258. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.cc.inc +274 -0
  259. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/util.cc.inc +258 -0
  260. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/wnaf.cc.inc +224 -0
  261. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdh/ecdh.cc.inc +91 -0
  262. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +288 -0
  263. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/internal.h +57 -0
  264. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/internal.h +38 -0
  265. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/jitter.cc.inc +487 -0
  266. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/sha512.cc.inc +329 -0
  267. package/runtime/third_party/boringssl/crypto/fipsmodule/fips_shared_support.cc +28 -0
  268. package/runtime/third_party/boringssl/crypto/fipsmodule/hkdf/hkdf.cc.inc +114 -0
  269. package/runtime/third_party/boringssl/crypto/fipsmodule/hmac/hmac.cc.inc +218 -0
  270. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/internal.h +165 -0
  271. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/keccak.cc.inc +647 -0
  272. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/fips_known_values.inc +1345 -0
  273. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/mldsa.cc.inc +3323 -0
  274. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/fips_known_values.inc +411 -0
  275. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/mlkem.cc.inc +1856 -0
  276. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/android_entropy_client.cc.inc +82 -0
  277. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/ctrdrbg.cc.inc +401 -0
  278. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/internal.h +99 -0
  279. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/rand.cc.inc +486 -0
  280. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/internal.h +167 -0
  281. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/padding.cc.inc +371 -0
  282. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa.cc.inc +996 -0
  283. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.cc.inc +1000 -0
  284. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/fips.cc.inc +129 -0
  285. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/self_check.cc.inc +1093 -0
  286. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/internal.h +112 -0
  287. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +330 -0
  288. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/internal.h +205 -0
  289. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha1.cc.inc +404 -0
  290. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha256.cc.inc +315 -0
  291. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha512.cc.inc +473 -0
  292. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/address.h +144 -0
  293. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fips_known_values.inc +674 -0
  294. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.cc.inc +179 -0
  295. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.h +48 -0
  296. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.cc.inc +164 -0
  297. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.h +58 -0
  298. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/params.h +178 -0
  299. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +690 -0
  300. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.cc.inc +326 -0
  301. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.h +71 -0
  302. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.cc.inc +172 -0
  303. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.h +40 -0
  304. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/internal.h +33 -0
  305. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/kdf.cc.inc +180 -0
  306. package/runtime/third_party/boringssl/crypto/fuzzer_mode.cc +30 -0
  307. package/runtime/third_party/boringssl/crypto/hpke/hpke.cc +1514 -0
  308. package/runtime/third_party/boringssl/crypto/hrss/asm/poly_rq_mul.S +8489 -0
  309. package/runtime/third_party/boringssl/crypto/hrss/hrss.cc +2189 -0
  310. package/runtime/third_party/boringssl/crypto/hrss/internal.h +64 -0
  311. package/runtime/third_party/boringssl/crypto/internal.h +1767 -0
  312. package/runtime/third_party/boringssl/crypto/lhash/internal.h +222 -0
  313. package/runtime/third_party/boringssl/crypto/lhash/lhash.cc +312 -0
  314. package/runtime/third_party/boringssl/crypto/md4/md4.cc +207 -0
  315. package/runtime/third_party/boringssl/crypto/md5/internal.h +34 -0
  316. package/runtime/third_party/boringssl/crypto/md5/md5.cc +255 -0
  317. package/runtime/third_party/boringssl/crypto/mem.cc +577 -0
  318. package/runtime/third_party/boringssl/crypto/mem_internal.h +706 -0
  319. package/runtime/third_party/boringssl/crypto/mldsa/mldsa.cc +296 -0
  320. package/runtime/third_party/boringssl/crypto/mlkem/mlkem.cc +108 -0
  321. package/runtime/third_party/boringssl/crypto/obj/obj.cc +494 -0
  322. package/runtime/third_party/boringssl/crypto/obj/obj_dat.h +11722 -0
  323. package/runtime/third_party/boringssl/crypto/obj/obj_xref.cc +83 -0
  324. package/runtime/third_party/boringssl/crypto/params_internal.h +30 -0
  325. package/runtime/third_party/boringssl/crypto/pem/internal.h +135 -0
  326. package/runtime/third_party/boringssl/crypto/pem/pem_all.cc +153 -0
  327. package/runtime/third_party/boringssl/crypto/pem/pem_info.cc +250 -0
  328. package/runtime/third_party/boringssl/crypto/pem/pem_lib.cc +707 -0
  329. package/runtime/third_party/boringssl/crypto/pem/pem_oth.cc +45 -0
  330. package/runtime/third_party/boringssl/crypto/pem/pem_pk8.cc +211 -0
  331. package/runtime/third_party/boringssl/crypto/pem/pem_pkey.cc +147 -0
  332. package/runtime/third_party/boringssl/crypto/pem/pem_x509.cc +25 -0
  333. package/runtime/third_party/boringssl/crypto/pem/pem_xaux.cc +25 -0
  334. package/runtime/third_party/boringssl/crypto/pkcs7/internal.h +67 -0
  335. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7.cc +198 -0
  336. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7_x509.cc +527 -0
  337. package/runtime/third_party/boringssl/crypto/pkcs8/internal.h +98 -0
  338. package/runtime/third_party/boringssl/crypto/pkcs8/p5_pbev2.cc +286 -0
  339. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8.cc +473 -0
  340. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8_x509.cc +1328 -0
  341. package/runtime/third_party/boringssl/crypto/poly1305/internal.h +54 -0
  342. package/runtime/third_party/boringssl/crypto/poly1305/poly1305.cc +315 -0
  343. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm.cc +294 -0
  344. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm_asm.S +2017 -0
  345. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_vec.cc +853 -0
  346. package/runtime/third_party/boringssl/crypto/pool/internal.h +95 -0
  347. package/runtime/third_party/boringssl/crypto/pool/pool.cc +282 -0
  348. package/runtime/third_party/boringssl/crypto/rand/deterministic.cc +58 -0
  349. package/runtime/third_party/boringssl/crypto/rand/fork_detect.cc +222 -0
  350. package/runtime/third_party/boringssl/crypto/rand/forkunsafe.cc +44 -0
  351. package/runtime/third_party/boringssl/crypto/rand/getentropy.cc +53 -0
  352. package/runtime/third_party/boringssl/crypto/rand/internal.h +67 -0
  353. package/runtime/third_party/boringssl/crypto/rand/ios.cc +35 -0
  354. package/runtime/third_party/boringssl/crypto/rand/rand.cc +79 -0
  355. package/runtime/third_party/boringssl/crypto/rand/trusty.cc +39 -0
  356. package/runtime/third_party/boringssl/crypto/rand/urandom.cc +149 -0
  357. package/runtime/third_party/boringssl/crypto/rand/windows.cc +91 -0
  358. package/runtime/third_party/boringssl/crypto/rc4/rc4.cc +56 -0
  359. package/runtime/third_party/boringssl/crypto/refcount.cc +49 -0
  360. package/runtime/third_party/boringssl/crypto/rsa/internal.h +51 -0
  361. package/runtime/third_party/boringssl/crypto/rsa/rsa_asn1.cc +404 -0
  362. package/runtime/third_party/boringssl/crypto/rsa/rsa_crypt.cc +530 -0
  363. package/runtime/third_party/boringssl/crypto/rsa/rsa_extra.cc +30 -0
  364. package/runtime/third_party/boringssl/crypto/rsa/rsa_print.cc +25 -0
  365. package/runtime/third_party/boringssl/crypto/sha/sha1.cc +55 -0
  366. package/runtime/third_party/boringssl/crypto/sha/sha256.cc +89 -0
  367. package/runtime/third_party/boringssl/crypto/sha/sha512.cc +106 -0
  368. package/runtime/third_party/boringssl/crypto/siphash/siphash.cc +81 -0
  369. package/runtime/third_party/boringssl/crypto/slhdsa/slhdsa.cc +167 -0
  370. package/runtime/third_party/boringssl/crypto/spake2plus/internal.h +204 -0
  371. package/runtime/third_party/boringssl/crypto/spake2plus/spake2plus.cc +501 -0
  372. package/runtime/third_party/boringssl/crypto/stack/stack.cc +462 -0
  373. package/runtime/third_party/boringssl/crypto/thread.cc +68 -0
  374. package/runtime/third_party/boringssl/crypto/thread_none.cc +48 -0
  375. package/runtime/third_party/boringssl/crypto/thread_pthread.cc +138 -0
  376. package/runtime/third_party/boringssl/crypto/thread_win.cc +227 -0
  377. package/runtime/third_party/boringssl/crypto/trust_token/internal.h +405 -0
  378. package/runtime/third_party/boringssl/crypto/trust_token/pmbtoken.cc +1672 -0
  379. package/runtime/third_party/boringssl/crypto/trust_token/trust_token.cc +701 -0
  380. package/runtime/third_party/boringssl/crypto/trust_token/voprf.cc +1266 -0
  381. package/runtime/third_party/boringssl/crypto/x509/a_digest.cc +52 -0
  382. package/runtime/third_party/boringssl/crypto/x509/a_sign.cc +100 -0
  383. package/runtime/third_party/boringssl/crypto/x509/a_verify.cc +77 -0
  384. package/runtime/third_party/boringssl/crypto/x509/algorithm.cc +167 -0
  385. package/runtime/third_party/boringssl/crypto/x509/asn1_gen.cc +540 -0
  386. package/runtime/third_party/boringssl/crypto/x509/by_dir.cc +301 -0
  387. package/runtime/third_party/boringssl/crypto/x509/by_file.cc +226 -0
  388. package/runtime/third_party/boringssl/crypto/x509/i2d_pr.cc +37 -0
  389. package/runtime/third_party/boringssl/crypto/x509/internal.h +697 -0
  390. package/runtime/third_party/boringssl/crypto/x509/name_print.cc +187 -0
  391. package/runtime/third_party/boringssl/crypto/x509/policy.cc +686 -0
  392. package/runtime/third_party/boringssl/crypto/x509/rsa_pss.cc +187 -0
  393. package/runtime/third_party/boringssl/crypto/x509/t_crl.cc +106 -0
  394. package/runtime/third_party/boringssl/crypto/x509/t_req.cc +206 -0
  395. package/runtime/third_party/boringssl/crypto/x509/t_x509.cc +292 -0
  396. package/runtime/third_party/boringssl/crypto/x509/t_x509a.cc +81 -0
  397. package/runtime/third_party/boringssl/crypto/x509/v3_akey.cc +174 -0
  398. package/runtime/third_party/boringssl/crypto/x509/v3_akeya.cc +31 -0
  399. package/runtime/third_party/boringssl/crypto/x509/v3_alt.cc +636 -0
  400. package/runtime/third_party/boringssl/crypto/x509/v3_bcons.cc +96 -0
  401. package/runtime/third_party/boringssl/crypto/x509/v3_bitst.cc +100 -0
  402. package/runtime/third_party/boringssl/crypto/x509/v3_conf.cc +369 -0
  403. package/runtime/third_party/boringssl/crypto/x509/v3_cpols.cc +417 -0
  404. package/runtime/third_party/boringssl/crypto/x509/v3_crld.cc +471 -0
  405. package/runtime/third_party/boringssl/crypto/x509/v3_enum.cc +74 -0
  406. package/runtime/third_party/boringssl/crypto/x509/v3_extku.cc +97 -0
  407. package/runtime/third_party/boringssl/crypto/x509/v3_genn.cc +238 -0
  408. package/runtime/third_party/boringssl/crypto/x509/v3_ia5.cc +83 -0
  409. package/runtime/third_party/boringssl/crypto/x509/v3_info.cc +162 -0
  410. package/runtime/third_party/boringssl/crypto/x509/v3_int.cc +83 -0
  411. package/runtime/third_party/boringssl/crypto/x509/v3_lib.cc +349 -0
  412. package/runtime/third_party/boringssl/crypto/x509/v3_ncons.cc +798 -0
  413. package/runtime/third_party/boringssl/crypto/x509/v3_ocsp.cc +92 -0
  414. package/runtime/third_party/boringssl/crypto/x509/v3_pcons.cc +102 -0
  415. package/runtime/third_party/boringssl/crypto/x509/v3_pmaps.cc +110 -0
  416. package/runtime/third_party/boringssl/crypto/x509/v3_prn.cc +183 -0
  417. package/runtime/third_party/boringssl/crypto/x509/v3_purp.cc +580 -0
  418. package/runtime/third_party/boringssl/crypto/x509/v3_skey.cc +128 -0
  419. package/runtime/third_party/boringssl/crypto/x509/v3_utl.cc +1311 -0
  420. package/runtime/third_party/boringssl/crypto/x509/x509.cc +47 -0
  421. package/runtime/third_party/boringssl/crypto/x509/x509_att.cc +188 -0
  422. package/runtime/third_party/boringssl/crypto/x509/x509_cmp.cc +243 -0
  423. package/runtime/third_party/boringssl/crypto/x509/x509_d2.cc +66 -0
  424. package/runtime/third_party/boringssl/crypto/x509/x509_def.cc +42 -0
  425. package/runtime/third_party/boringssl/crypto/x509/x509_ext.cc +161 -0
  426. package/runtime/third_party/boringssl/crypto/x509/x509_lu.cc +570 -0
  427. package/runtime/third_party/boringssl/crypto/x509/x509_mtc.cc +598 -0
  428. package/runtime/third_party/boringssl/crypto/x509/x509_obj.cc +169 -0
  429. package/runtime/third_party/boringssl/crypto/x509/x509_req.cc +248 -0
  430. package/runtime/third_party/boringssl/crypto/x509/x509_set.cc +166 -0
  431. package/runtime/third_party/boringssl/crypto/x509/x509_trs.cc +123 -0
  432. package/runtime/third_party/boringssl/crypto/x509/x509_txt.cc +147 -0
  433. package/runtime/third_party/boringssl/crypto/x509/x509_v3.cc +249 -0
  434. package/runtime/third_party/boringssl/crypto/x509/x509_vfy.cc +1531 -0
  435. package/runtime/third_party/boringssl/crypto/x509/x509_vpm.cc +449 -0
  436. package/runtime/third_party/boringssl/crypto/x509/x509cset.cc +222 -0
  437. package/runtime/third_party/boringssl/crypto/x509/x509name.cc +377 -0
  438. package/runtime/third_party/boringssl/crypto/x509/x509rset.cc +55 -0
  439. package/runtime/third_party/boringssl/crypto/x509/x509spki.cc +91 -0
  440. package/runtime/third_party/boringssl/crypto/x509/x_algor.cc +223 -0
  441. package/runtime/third_party/boringssl/crypto/x509/x_all.cc +352 -0
  442. package/runtime/third_party/boringssl/crypto/x509/x_attrib.cc +61 -0
  443. package/runtime/third_party/boringssl/crypto/x509/x_crl.cc +325 -0
  444. package/runtime/third_party/boringssl/crypto/x509/x_exten.cc +42 -0
  445. package/runtime/third_party/boringssl/crypto/x509/x_name.cc +407 -0
  446. package/runtime/third_party/boringssl/crypto/x509/x_pubkey.cc +199 -0
  447. package/runtime/third_party/boringssl/crypto/x509/x_req.cc +80 -0
  448. package/runtime/third_party/boringssl/crypto/x509/x_sig.cc +51 -0
  449. package/runtime/third_party/boringssl/crypto/x509/x_spki.cc +44 -0
  450. package/runtime/third_party/boringssl/crypto/x509/x_x509.cc +495 -0
  451. package/runtime/third_party/boringssl/crypto/x509/x_x509a.cc +169 -0
  452. package/runtime/third_party/boringssl/crypto/xwing/xwing.cc +257 -0
  453. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-apple.S +1326 -0
  454. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-linux.S +1327 -0
  455. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-apple.S +1252 -0
  456. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-linux.S +1253 -0
  457. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-apple.S +873 -0
  458. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-linux.S +885 -0
  459. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-apple.S +2490 -0
  460. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-linux.S +2530 -0
  461. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-apple.S +2413 -0
  462. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-linux.S +2397 -0
  463. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv7-linux.S +784 -0
  464. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-apple.S +792 -0
  465. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-linux.S +786 -0
  466. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-win.S +798 -0
  467. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-apple.S +2912 -0
  468. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-linux.S +2907 -0
  469. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-win.S +2915 -0
  470. package/runtime/third_party/boringssl/gen/bcm/armv4-mont-linux.S +932 -0
  471. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-apple.S +1440 -0
  472. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-linux.S +1440 -0
  473. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-win.S +1446 -0
  474. package/runtime/third_party/boringssl/gen/bcm/bn-586-apple.S +530 -0
  475. package/runtime/third_party/boringssl/gen/bcm/bn-586-linux.S +540 -0
  476. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-apple.S +88 -0
  477. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-linux.S +87 -0
  478. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-win.S +87 -0
  479. package/runtime/third_party/boringssl/gen/bcm/bsaes-armv7-linux.S +1520 -0
  480. package/runtime/third_party/boringssl/gen/bcm/co-586-apple.S +1256 -0
  481. package/runtime/third_party/boringssl/gen/bcm/co-586-linux.S +1264 -0
  482. package/runtime/third_party/boringssl/gen/bcm/ghash-armv4-linux.S +242 -0
  483. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-apple.S +337 -0
  484. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-linux.S +335 -0
  485. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-win.S +341 -0
  486. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-apple.S +288 -0
  487. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-linux.S +292 -0
  488. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-apple.S +426 -0
  489. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-linux.S +425 -0
  490. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-apple.S +322 -0
  491. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-linux.S +328 -0
  492. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-apple.S +1134 -0
  493. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-linux.S +1129 -0
  494. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv7-linux.S +244 -0
  495. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-apple.S +567 -0
  496. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-linux.S +563 -0
  497. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-win.S +571 -0
  498. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-apple.S +1744 -0
  499. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-linux.S +1725 -0
  500. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-win.S +1765 -0
  501. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-apple.S +4544 -0
  502. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-linux.S +4600 -0
  503. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-apple.S +310 -0
  504. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-linux.S +310 -0
  505. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-win.S +310 -0
  506. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-apple.S +321 -0
  507. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-linux.S +335 -0
  508. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-apple.S +58 -0
  509. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-linux.S +57 -0
  510. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-apple.S +1756 -0
  511. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-linux.S +1751 -0
  512. package/runtime/third_party/boringssl/gen/bcm/sha1-586-apple.S +3782 -0
  513. package/runtime/third_party/boringssl/gen/bcm/sha1-586-linux.S +3788 -0
  514. package/runtime/third_party/boringssl/gen/bcm/sha1-armv4-large-linux.S +1479 -0
  515. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-apple.S +1219 -0
  516. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-linux.S +1218 -0
  517. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-win.S +1222 -0
  518. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-apple.S +5454 -0
  519. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-linux.S +5450 -0
  520. package/runtime/third_party/boringssl/gen/bcm/sha256-586-apple.S +5593 -0
  521. package/runtime/third_party/boringssl/gen/bcm/sha256-586-linux.S +5599 -0
  522. package/runtime/third_party/boringssl/gen/bcm/sha256-armv4-linux.S +2840 -0
  523. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-apple.S +1195 -0
  524. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-linux.S +1194 -0
  525. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-win.S +1198 -0
  526. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-apple.S +4173 -0
  527. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-linux.S +4170 -0
  528. package/runtime/third_party/boringssl/gen/bcm/sha512-586-apple.S +2406 -0
  529. package/runtime/third_party/boringssl/gen/bcm/sha512-586-linux.S +2410 -0
  530. package/runtime/third_party/boringssl/gen/bcm/sha512-armv4-linux.S +1857 -0
  531. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-apple.S +1598 -0
  532. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-linux.S +1597 -0
  533. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-win.S +1601 -0
  534. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-apple.S +2979 -0
  535. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-linux.S +2978 -0
  536. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv7-linux.S +1225 -0
  537. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-apple.S +1238 -0
  538. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-linux.S +1220 -0
  539. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-win.S +1256 -0
  540. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-apple.S +680 -0
  541. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-linux.S +706 -0
  542. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-apple.S +1146 -0
  543. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-linux.S +1133 -0
  544. package/runtime/third_party/boringssl/gen/bcm/x86-mont-apple.S +216 -0
  545. package/runtime/third_party/boringssl/gen/bcm/x86-mont-linux.S +218 -0
  546. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-apple.S +1238 -0
  547. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-linux.S +1237 -0
  548. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-apple.S +3644 -0
  549. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-linux.S +3628 -0
  550. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_64_win_asm.inc +325 -0
  551. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_win_asm.inc +325 -0
  552. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-apple.S +3113 -0
  553. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-linux.S +3091 -0
  554. package/runtime/third_party/boringssl/gen/crypto/chacha-armv4-linux.S +1450 -0
  555. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-apple.S +1969 -0
  556. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-linux.S +1967 -0
  557. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-win.S +1973 -0
  558. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-apple.S +957 -0
  559. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-linux.S +961 -0
  560. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-apple.S +1608 -0
  561. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-linux.S +1611 -0
  562. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-apple.S +3010 -0
  563. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-linux.S +3008 -0
  564. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-win.S +3014 -0
  565. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-apple.S +8903 -0
  566. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-linux.S +8940 -0
  567. package/runtime/third_party/boringssl/gen/crypto/err_data.cc +1578 -0
  568. package/runtime/third_party/boringssl/gen/crypto/md5-586-apple.S +684 -0
  569. package/runtime/third_party/boringssl/gen/crypto/md5-586-linux.S +686 -0
  570. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-apple.S +690 -0
  571. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-linux.S +695 -0
  572. package/runtime/third_party/boringssl/include/openssl/aead.h +650 -0
  573. package/runtime/third_party/boringssl/include/openssl/aes.h +173 -0
  574. package/runtime/third_party/boringssl/include/openssl/arm_arch.h +24 -0
  575. package/runtime/third_party/boringssl/include/openssl/asm_base.h +219 -0
  576. package/runtime/third_party/boringssl/include/openssl/asn1.h +2002 -0
  577. package/runtime/third_party/boringssl/include/openssl/asn1_mac.h +18 -0
  578. package/runtime/third_party/boringssl/include/openssl/asn1t.h +584 -0
  579. package/runtime/third_party/boringssl/include/openssl/base.h +548 -0
  580. package/runtime/third_party/boringssl/include/openssl/base64.h +156 -0
  581. package/runtime/third_party/boringssl/include/openssl/bio.h +1061 -0
  582. package/runtime/third_party/boringssl/include/openssl/blake2.h +63 -0
  583. package/runtime/third_party/boringssl/include/openssl/blowfish.h +58 -0
  584. package/runtime/third_party/boringssl/include/openssl/bn.h +986 -0
  585. package/runtime/third_party/boringssl/include/openssl/buf.h +95 -0
  586. package/runtime/third_party/boringssl/include/openssl/buffer.h +18 -0
  587. package/runtime/third_party/boringssl/include/openssl/bytestring.h +798 -0
  588. package/runtime/third_party/boringssl/include/openssl/cast.h +91 -0
  589. package/runtime/third_party/boringssl/include/openssl/chacha.h +47 -0
  590. package/runtime/third_party/boringssl/include/openssl/cipher.h +819 -0
  591. package/runtime/third_party/boringssl/include/openssl/cmac.h +91 -0
  592. package/runtime/third_party/boringssl/include/openssl/cms.h +147 -0
  593. package/runtime/third_party/boringssl/include/openssl/conf.h +136 -0
  594. package/runtime/third_party/boringssl/include/openssl/configuration.h +18 -0
  595. package/runtime/third_party/boringssl/include/openssl/cpu.h +18 -0
  596. package/runtime/third_party/boringssl/include/openssl/crypto.h +235 -0
  597. package/runtime/third_party/boringssl/include/openssl/ctrdrbg.h +116 -0
  598. package/runtime/third_party/boringssl/include/openssl/curve25519.h +309 -0
  599. package/runtime/third_party/boringssl/include/openssl/des.h +134 -0
  600. package/runtime/third_party/boringssl/include/openssl/dh.h +336 -0
  601. package/runtime/third_party/boringssl/include/openssl/digest.h +399 -0
  602. package/runtime/third_party/boringssl/include/openssl/dsa.h +392 -0
  603. package/runtime/third_party/boringssl/include/openssl/dtls1.h +16 -0
  604. package/runtime/third_party/boringssl/include/openssl/e_os2.h +18 -0
  605. package/runtime/third_party/boringssl/include/openssl/ec.h +530 -0
  606. package/runtime/third_party/boringssl/include/openssl/ec_key.h +358 -0
  607. package/runtime/third_party/boringssl/include/openssl/ecdh.h +67 -0
  608. package/runtime/third_party/boringssl/include/openssl/ecdsa.h +242 -0
  609. package/runtime/third_party/boringssl/include/openssl/engine.h +109 -0
  610. package/runtime/third_party/boringssl/include/openssl/err.h +416 -0
  611. package/runtime/third_party/boringssl/include/openssl/evp.h +1645 -0
  612. package/runtime/third_party/boringssl/include/openssl/evp_errors.h +66 -0
  613. package/runtime/third_party/boringssl/include/openssl/ex_data.h +117 -0
  614. package/runtime/third_party/boringssl/include/openssl/hkdf.h +68 -0
  615. package/runtime/third_party/boringssl/include/openssl/hmac.h +151 -0
  616. package/runtime/third_party/boringssl/include/openssl/hpke.h +456 -0
  617. package/runtime/third_party/boringssl/include/openssl/hrss.h +108 -0
  618. package/runtime/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  619. package/runtime/third_party/boringssl/include/openssl/kdf.h +92 -0
  620. package/runtime/third_party/boringssl/include/openssl/lhash.h +18 -0
  621. package/runtime/third_party/boringssl/include/openssl/md4.h +73 -0
  622. package/runtime/third_party/boringssl/include/openssl/md5.h +67 -0
  623. package/runtime/third_party/boringssl/include/openssl/mem.h +215 -0
  624. package/runtime/third_party/boringssl/include/openssl/mldsa.h +486 -0
  625. package/runtime/third_party/boringssl/include/openssl/mlkem.h +222 -0
  626. package/runtime/third_party/boringssl/include/openssl/nid.h +5561 -0
  627. package/runtime/third_party/boringssl/include/openssl/obj.h +225 -0
  628. package/runtime/third_party/boringssl/include/openssl/obj_mac.h +18 -0
  629. package/runtime/third_party/boringssl/include/openssl/objects.h +18 -0
  630. package/runtime/third_party/boringssl/include/openssl/opensslconf.h +108 -0
  631. package/runtime/third_party/boringssl/include/openssl/opensslv.h +18 -0
  632. package/runtime/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
  633. package/runtime/third_party/boringssl/include/openssl/params.h +42 -0
  634. package/runtime/third_party/boringssl/include/openssl/pem.h +769 -0
  635. package/runtime/third_party/boringssl/include/openssl/pkcs12.h +18 -0
  636. package/runtime/third_party/boringssl/include/openssl/pkcs7.h +239 -0
  637. package/runtime/third_party/boringssl/include/openssl/pkcs8.h +267 -0
  638. package/runtime/third_party/boringssl/include/openssl/poly1305.h +52 -0
  639. package/runtime/third_party/boringssl/include/openssl/pool.h +137 -0
  640. package/runtime/third_party/boringssl/include/openssl/posix_time.h +51 -0
  641. package/runtime/third_party/boringssl/include/openssl/prefix_symbols.h +8000 -0
  642. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_S.h +633 -0
  643. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_c.h +329 -0
  644. package/runtime/third_party/boringssl/include/openssl/rand.h +138 -0
  645. package/runtime/third_party/boringssl/include/openssl/rc4.h +54 -0
  646. package/runtime/third_party/boringssl/include/openssl/ripemd.h +71 -0
  647. package/runtime/third_party/boringssl/include/openssl/rsa.h +893 -0
  648. package/runtime/third_party/boringssl/include/openssl/safestack.h +16 -0
  649. package/runtime/third_party/boringssl/include/openssl/service_indicator.h +19 -0
  650. package/runtime/third_party/boringssl/include/openssl/sha.h +108 -0
  651. package/runtime/third_party/boringssl/include/openssl/sha2.h +201 -0
  652. package/runtime/third_party/boringssl/include/openssl/siphash.h +37 -0
  653. package/runtime/third_party/boringssl/include/openssl/slhdsa.h +250 -0
  654. package/runtime/third_party/boringssl/include/openssl/span.h +376 -0
  655. package/runtime/third_party/boringssl/include/openssl/srtp.h +18 -0
  656. package/runtime/third_party/boringssl/include/openssl/ssl.h +7211 -0
  657. package/runtime/third_party/boringssl/include/openssl/ssl3.h +171 -0
  658. package/runtime/third_party/boringssl/include/openssl/stack.h +688 -0
  659. package/runtime/third_party/boringssl/include/openssl/target.h +246 -0
  660. package/runtime/third_party/boringssl/include/openssl/thread.h +114 -0
  661. package/runtime/third_party/boringssl/include/openssl/time.h +22 -0
  662. package/runtime/third_party/boringssl/include/openssl/tls1.h +263 -0
  663. package/runtime/third_party/boringssl/include/openssl/tls_prf.h +47 -0
  664. package/runtime/third_party/boringssl/include/openssl/trust_token.h +349 -0
  665. package/runtime/third_party/boringssl/include/openssl/type_check.h +37 -0
  666. package/runtime/third_party/boringssl/include/openssl/types.h +18 -0
  667. package/runtime/third_party/boringssl/include/openssl/x509.h +5404 -0
  668. package/runtime/third_party/boringssl/include/openssl/x509_vfy.h +18 -0
  669. package/runtime/third_party/boringssl/include/openssl/x509v3.h +63 -0
  670. package/runtime/third_party/boringssl/include/openssl/x509v3_errors.h +84 -0
  671. package/runtime/third_party/boringssl/include/openssl/xwing.h +115 -0
  672. package/runtime/third_party/boringssl/sources.json +696 -0
  673. package/runtime/third_party/boringssl/ssl/bio_ssl.cc +196 -0
  674. package/runtime/third_party/boringssl/ssl/d1_both.cc +1137 -0
  675. package/runtime/third_party/boringssl/ssl/d1_lib.cc +245 -0
  676. package/runtime/third_party/boringssl/ssl/d1_pkt.cc +322 -0
  677. package/runtime/third_party/boringssl/ssl/d1_srtp.cc +128 -0
  678. package/runtime/third_party/boringssl/ssl/dtls_method.cc +216 -0
  679. package/runtime/third_party/boringssl/ssl/dtls_record.cc +586 -0
  680. package/runtime/third_party/boringssl/ssl/encrypted_client_hello.cc +1110 -0
  681. package/runtime/third_party/boringssl/ssl/extensions.cc +5368 -0
  682. package/runtime/third_party/boringssl/ssl/handoff.cc +625 -0
  683. package/runtime/third_party/boringssl/ssl/handshake.cc +694 -0
  684. package/runtime/third_party/boringssl/ssl/handshake_client.cc +1958 -0
  685. package/runtime/third_party/boringssl/ssl/handshake_server.cc +1875 -0
  686. package/runtime/third_party/boringssl/ssl/internal.h +4506 -0
  687. package/runtime/third_party/boringssl/ssl/s3_both.cc +555 -0
  688. package/runtime/third_party/boringssl/ssl/s3_lib.cc +88 -0
  689. package/runtime/third_party/boringssl/ssl/s3_pkt.cc +396 -0
  690. package/runtime/third_party/boringssl/ssl/ssl_aead_ctx.cc +416 -0
  691. package/runtime/third_party/boringssl/ssl/ssl_asn1.cc +851 -0
  692. package/runtime/third_party/boringssl/ssl/ssl_buffer.cc +304 -0
  693. package/runtime/third_party/boringssl/ssl/ssl_cert.cc +723 -0
  694. package/runtime/third_party/boringssl/ssl/ssl_cipher.cc +1762 -0
  695. package/runtime/third_party/boringssl/ssl/ssl_credential.cc +913 -0
  696. package/runtime/third_party/boringssl/ssl/ssl_file.cc +375 -0
  697. package/runtime/third_party/boringssl/ssl/ssl_key_share.cc +445 -0
  698. package/runtime/third_party/boringssl/ssl/ssl_lib.cc +4132 -0
  699. package/runtime/third_party/boringssl/ssl/ssl_privkey.cc +973 -0
  700. package/runtime/third_party/boringssl/ssl/ssl_session.cc +1273 -0
  701. package/runtime/third_party/boringssl/ssl/ssl_stat.cc +162 -0
  702. package/runtime/third_party/boringssl/ssl/ssl_transcript.cc +224 -0
  703. package/runtime/third_party/boringssl/ssl/ssl_versions.cc +436 -0
  704. package/runtime/third_party/boringssl/ssl/ssl_x509.cc +1229 -0
  705. package/runtime/third_party/boringssl/ssl/t1_enc.cc +266 -0
  706. package/runtime/third_party/boringssl/ssl/tls13_both.cc +764 -0
  707. package/runtime/third_party/boringssl/ssl/tls13_client.cc +1325 -0
  708. package/runtime/third_party/boringssl/ssl/tls13_enc.cc +746 -0
  709. package/runtime/third_party/boringssl/ssl/tls13_server.cc +1623 -0
  710. package/runtime/third_party/boringssl/ssl/tls_method.cc +266 -0
  711. package/runtime/third_party/boringssl/ssl/tls_record.cc +524 -0
  712. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_mul.S +178 -0
  713. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_square.S +146 -0
  714. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_mul.S +177 -0
  715. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_sqr.S +166 -0
  716. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_bareminimum.c.inc +47 -0
  717. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_platform.c.inc +137 -0
  718. package/runtime/third_party/boringssl/third_party/fiat/curve25519_32.h +1571 -0
  719. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64.h +978 -0
  720. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_adx.h +700 -0
  721. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_msvc.h +1281 -0
  722. package/runtime/third_party/boringssl/third_party/fiat/p256_32.h +4760 -0
  723. package/runtime/third_party/boringssl/third_party/fiat/p256_64.h +1984 -0
  724. package/runtime/third_party/boringssl/third_party/fiat/p256_64_msvc.h +1939 -0
  725. package/runtime/third_party/boringssl/third_party/fiat/p256_field.c.inc +26 -0
  726. package/runtime/third_party/boringssl/third_party/fiat/p256_field_32.br.c.inc +71 -0
  727. package/runtime/third_party/boringssl/third_party/fiat/p256_field_64.br.c.inc +84 -0
  728. package/runtime/third_party/boringssl/third_party/fiat/p256_point.br.c.inc +112 -0
  729. package/runtime/third_party/v8-ieee754/README.md +2 -1
  730. package/runtime/third_party/v8-ieee754/convert.py +4 -0
  731. package/runtime/third_party/v8-ieee754/ieee754.c +1 -1
  732. package/runtime/third_party/bearssl/LICENSE.txt +0 -21
  733. package/runtime/third_party/bearssl/README.txt +0 -136
  734. package/runtime/third_party/bearssl/VERSION +0 -1
  735. package/runtime/third_party/bearssl/inc/bearssl.h +0 -183
  736. package/runtime/third_party/bearssl/inc/bearssl_aead.h +0 -1059
  737. package/runtime/third_party/bearssl/inc/bearssl_block.h +0 -2618
  738. package/runtime/third_party/bearssl/inc/bearssl_ec.h +0 -967
  739. package/runtime/third_party/bearssl/inc/bearssl_hash.h +0 -1346
  740. package/runtime/third_party/bearssl/inc/bearssl_hmac.h +0 -241
  741. package/runtime/third_party/bearssl/inc/bearssl_kdf.h +0 -284
  742. package/runtime/third_party/bearssl/inc/bearssl_pem.h +0 -294
  743. package/runtime/third_party/bearssl/inc/bearssl_prf.h +0 -150
  744. package/runtime/third_party/bearssl/inc/bearssl_rand.h +0 -397
  745. package/runtime/third_party/bearssl/inc/bearssl_rsa.h +0 -1655
  746. package/runtime/third_party/bearssl/inc/bearssl_ssl.h +0 -4296
  747. package/runtime/third_party/bearssl/inc/bearssl_x509.h +0 -1474
  748. package/runtime/third_party/bearssl/src/aead/ccm.c +0 -346
  749. package/runtime/third_party/bearssl/src/aead/eax.c +0 -525
  750. package/runtime/third_party/bearssl/src/aead/gcm.c +0 -318
  751. package/runtime/third_party/bearssl/src/codec/ccopy.c +0 -44
  752. package/runtime/third_party/bearssl/src/codec/dec16be.c +0 -38
  753. package/runtime/third_party/bearssl/src/codec/dec16le.c +0 -38
  754. package/runtime/third_party/bearssl/src/codec/dec32be.c +0 -38
  755. package/runtime/third_party/bearssl/src/codec/dec32le.c +0 -38
  756. package/runtime/third_party/bearssl/src/codec/dec64be.c +0 -38
  757. package/runtime/third_party/bearssl/src/codec/dec64le.c +0 -38
  758. package/runtime/third_party/bearssl/src/codec/enc16be.c +0 -38
  759. package/runtime/third_party/bearssl/src/codec/enc16le.c +0 -38
  760. package/runtime/third_party/bearssl/src/codec/enc32be.c +0 -38
  761. package/runtime/third_party/bearssl/src/codec/enc32le.c +0 -38
  762. package/runtime/third_party/bearssl/src/codec/enc64be.c +0 -38
  763. package/runtime/third_party/bearssl/src/codec/enc64le.c +0 -38
  764. package/runtime/third_party/bearssl/src/codec/pemdec.c +0 -526
  765. package/runtime/third_party/bearssl/src/codec/pemdec.t0 +0 -314
  766. package/runtime/third_party/bearssl/src/codec/pemenc.c +0 -173
  767. package/runtime/third_party/bearssl/src/config.h +0 -247
  768. package/runtime/third_party/bearssl/src/ec/ec_all_m15.c +0 -121
  769. package/runtime/third_party/bearssl/src/ec/ec_all_m31.c +0 -171
  770. package/runtime/third_party/bearssl/src/ec/ec_c25519_i15.c +0 -398
  771. package/runtime/third_party/bearssl/src/ec/ec_c25519_i31.c +0 -390
  772. package/runtime/third_party/bearssl/src/ec/ec_c25519_m15.c +0 -1478
  773. package/runtime/third_party/bearssl/src/ec/ec_c25519_m31.c +0 -800
  774. package/runtime/third_party/bearssl/src/ec/ec_c25519_m62.c +0 -605
  775. package/runtime/third_party/bearssl/src/ec/ec_c25519_m64.c +0 -831
  776. package/runtime/third_party/bearssl/src/ec/ec_curve25519.c +0 -46
  777. package/runtime/third_party/bearssl/src/ec/ec_default.c +0 -36
  778. package/runtime/third_party/bearssl/src/ec/ec_keygen.c +0 -86
  779. package/runtime/third_party/bearssl/src/ec/ec_p256_m15.c +0 -2124
  780. package/runtime/third_party/bearssl/src/ec/ec_p256_m31.c +0 -1469
  781. package/runtime/third_party/bearssl/src/ec/ec_p256_m62.c +0 -1765
  782. package/runtime/third_party/bearssl/src/ec/ec_p256_m64.c +0 -1781
  783. package/runtime/third_party/bearssl/src/ec/ec_prime_i15.c +0 -824
  784. package/runtime/third_party/bearssl/src/ec/ec_prime_i31.c +0 -826
  785. package/runtime/third_party/bearssl/src/ec/ec_pubkey.c +0 -85
  786. package/runtime/third_party/bearssl/src/ec/ec_secp256r1.c +0 -51
  787. package/runtime/third_party/bearssl/src/ec/ec_secp384r1.c +0 -57
  788. package/runtime/third_party/bearssl/src/ec/ec_secp521r1.c +0 -64
  789. package/runtime/third_party/bearssl/src/ec/ecdsa_atr.c +0 -134
  790. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_asn1.c +0 -36
  791. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_raw.c +0 -36
  792. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_asn1.c +0 -36
  793. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_raw.c +0 -36
  794. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_bits.c +0 -47
  795. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_asn1.c +0 -45
  796. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_raw.c +0 -174
  797. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_asn1.c +0 -48
  798. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_raw.c +0 -166
  799. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_bits.c +0 -47
  800. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_asn1.c +0 -45
  801. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_raw.c +0 -173
  802. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_asn1.c +0 -48
  803. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_raw.c +0 -165
  804. package/runtime/third_party/bearssl/src/ec/ecdsa_rta.c +0 -121
  805. package/runtime/third_party/bearssl/src/hash/dig_oid.c +0 -84
  806. package/runtime/third_party/bearssl/src/hash/dig_size.c +0 -50
  807. package/runtime/third_party/bearssl/src/hash/ghash_ctmul.c +0 -345
  808. package/runtime/third_party/bearssl/src/hash/ghash_ctmul32.c +0 -251
  809. package/runtime/third_party/bearssl/src/hash/ghash_ctmul64.c +0 -154
  810. package/runtime/third_party/bearssl/src/hash/ghash_pclmul.c +0 -389
  811. package/runtime/third_party/bearssl/src/hash/ghash_pwr8.c +0 -411
  812. package/runtime/third_party/bearssl/src/hash/md5.c +0 -208
  813. package/runtime/third_party/bearssl/src/hash/md5sha1.c +0 -141
  814. package/runtime/third_party/bearssl/src/hash/mgf1.c +0 -56
  815. package/runtime/third_party/bearssl/src/hash/multihash.c +0 -166
  816. package/runtime/third_party/bearssl/src/hash/sha1.c +0 -191
  817. package/runtime/third_party/bearssl/src/hash/sha2big.c +0 -285
  818. package/runtime/third_party/bearssl/src/hash/sha2small.c +0 -341
  819. package/runtime/third_party/bearssl/src/inner.h +0 -2577
  820. package/runtime/third_party/bearssl/src/int/i15_add.c +0 -46
  821. package/runtime/third_party/bearssl/src/int/i15_bitlen.c +0 -44
  822. package/runtime/third_party/bearssl/src/int/i15_decmod.c +0 -124
  823. package/runtime/third_party/bearssl/src/int/i15_decode.c +0 -56
  824. package/runtime/third_party/bearssl/src/int/i15_decred.c +0 -100
  825. package/runtime/third_party/bearssl/src/int/i15_encode.c +0 -56
  826. package/runtime/third_party/bearssl/src/int/i15_fmont.c +0 -59
  827. package/runtime/third_party/bearssl/src/int/i15_iszero.c +0 -39
  828. package/runtime/third_party/bearssl/src/int/i15_moddiv.c +0 -465
  829. package/runtime/third_party/bearssl/src/int/i15_modpow.c +0 -50
  830. package/runtime/third_party/bearssl/src/int/i15_modpow2.c +0 -160
  831. package/runtime/third_party/bearssl/src/int/i15_montmul.c +0 -184
  832. package/runtime/third_party/bearssl/src/int/i15_mulacc.c +0 -61
  833. package/runtime/third_party/bearssl/src/int/i15_muladd.c +0 -173
  834. package/runtime/third_party/bearssl/src/int/i15_ninv15.c +0 -38
  835. package/runtime/third_party/bearssl/src/int/i15_reduce.c +0 -66
  836. package/runtime/third_party/bearssl/src/int/i15_rshift.c +0 -47
  837. package/runtime/third_party/bearssl/src/int/i15_sub.c +0 -46
  838. package/runtime/third_party/bearssl/src/int/i15_tmont.c +0 -36
  839. package/runtime/third_party/bearssl/src/int/i31_add.c +0 -46
  840. package/runtime/third_party/bearssl/src/int/i31_bitlen.c +0 -44
  841. package/runtime/third_party/bearssl/src/int/i31_decmod.c +0 -124
  842. package/runtime/third_party/bearssl/src/int/i31_decode.c +0 -57
  843. package/runtime/third_party/bearssl/src/int/i31_decred.c +0 -103
  844. package/runtime/third_party/bearssl/src/int/i31_encode.c +0 -79
  845. package/runtime/third_party/bearssl/src/int/i31_fmont.c +0 -60
  846. package/runtime/third_party/bearssl/src/int/i31_iszero.c +0 -39
  847. package/runtime/third_party/bearssl/src/int/i31_moddiv.c +0 -488
  848. package/runtime/third_party/bearssl/src/int/i31_modpow.c +0 -65
  849. package/runtime/third_party/bearssl/src/int/i31_modpow2.c +0 -160
  850. package/runtime/third_party/bearssl/src/int/i31_montmul.c +0 -127
  851. package/runtime/third_party/bearssl/src/int/i31_mulacc.c +0 -74
  852. package/runtime/third_party/bearssl/src/int/i31_muladd.c +0 -157
  853. package/runtime/third_party/bearssl/src/int/i31_ninv31.c +0 -39
  854. package/runtime/third_party/bearssl/src/int/i31_reduce.c +0 -66
  855. package/runtime/third_party/bearssl/src/int/i31_rshift.c +0 -47
  856. package/runtime/third_party/bearssl/src/int/i31_sub.c +0 -46
  857. package/runtime/third_party/bearssl/src/int/i31_tmont.c +0 -36
  858. package/runtime/third_party/bearssl/src/int/i32_add.c +0 -51
  859. package/runtime/third_party/bearssl/src/int/i32_bitlen.c +0 -44
  860. package/runtime/third_party/bearssl/src/int/i32_decmod.c +0 -77
  861. package/runtime/third_party/bearssl/src/int/i32_decode.c +0 -63
  862. package/runtime/third_party/bearssl/src/int/i32_decred.c +0 -107
  863. package/runtime/third_party/bearssl/src/int/i32_div32.c +0 -56
  864. package/runtime/third_party/bearssl/src/int/i32_encode.c +0 -72
  865. package/runtime/third_party/bearssl/src/int/i32_fmont.c +0 -60
  866. package/runtime/third_party/bearssl/src/int/i32_iszero.c +0 -39
  867. package/runtime/third_party/bearssl/src/int/i32_modpow.c +0 -65
  868. package/runtime/third_party/bearssl/src/int/i32_montmul.c +0 -69
  869. package/runtime/third_party/bearssl/src/int/i32_mulacc.c +0 -56
  870. package/runtime/third_party/bearssl/src/int/i32_muladd.c +0 -138
  871. package/runtime/third_party/bearssl/src/int/i32_ninv32.c +0 -39
  872. package/runtime/third_party/bearssl/src/int/i32_reduce.c +0 -66
  873. package/runtime/third_party/bearssl/src/int/i32_sub.c +0 -51
  874. package/runtime/third_party/bearssl/src/int/i32_tmont.c +0 -36
  875. package/runtime/third_party/bearssl/src/int/i62_modpow2.c +0 -493
  876. package/runtime/third_party/bearssl/src/kdf/hkdf.c +0 -107
  877. package/runtime/third_party/bearssl/src/kdf/shake.c +0 -590
  878. package/runtime/third_party/bearssl/src/mac/hmac.c +0 -122
  879. package/runtime/third_party/bearssl/src/mac/hmac_ct.c +0 -193
  880. package/runtime/third_party/bearssl/src/rand/aesctr_drbg.c +0 -206
  881. package/runtime/third_party/bearssl/src/rand/hmac_drbg.c +0 -157
  882. package/runtime/third_party/bearssl/src/rand/sysrng.c +0 -252
  883. package/runtime/third_party/bearssl/src/rsa/rsa_default_keygen.c +0 -38
  884. package/runtime/third_party/bearssl/src/rsa/rsa_default_modulus.c +0 -36
  885. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_decrypt.c +0 -38
  886. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_encrypt.c +0 -38
  887. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_sign.c +0 -38
  888. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_vrfy.c +0 -38
  889. package/runtime/third_party/bearssl/src/rsa/rsa_default_priv.c +0 -38
  890. package/runtime/third_party/bearssl/src/rsa/rsa_default_privexp.c +0 -36
  891. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_sign.c +0 -38
  892. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_vrfy.c +0 -38
  893. package/runtime/third_party/bearssl/src/rsa/rsa_default_pub.c +0 -38
  894. package/runtime/third_party/bearssl/src/rsa/rsa_default_pubexp.c +0 -36
  895. package/runtime/third_party/bearssl/src/rsa/rsa_i15_keygen.c +0 -583
  896. package/runtime/third_party/bearssl/src/rsa/rsa_i15_modulus.c +0 -99
  897. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_decrypt.c +0 -41
  898. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_encrypt.c +0 -44
  899. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_sign.c +0 -37
  900. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_vrfy.c +0 -43
  901. package/runtime/third_party/bearssl/src/rsa/rsa_i15_priv.c +0 -209
  902. package/runtime/third_party/bearssl/src/rsa/rsa_i15_privexp.c +0 -320
  903. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_sign.c +0 -40
  904. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_vrfy.c +0 -44
  905. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pub.c +0 -113
  906. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pubexp.c +0 -152
  907. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen.c +0 -37
  908. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen_inner.c +0 -608
  909. package/runtime/third_party/bearssl/src/rsa/rsa_i31_modulus.c +0 -99
  910. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_decrypt.c +0 -41
  911. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_encrypt.c +0 -44
  912. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_sign.c +0 -37
  913. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_vrfy.c +0 -43
  914. package/runtime/third_party/bearssl/src/rsa/rsa_i31_priv.c +0 -203
  915. package/runtime/third_party/bearssl/src/rsa/rsa_i31_privexp.c +0 -318
  916. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_sign.c +0 -40
  917. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_vrfy.c +0 -44
  918. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pub.c +0 -106
  919. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pubexp.c +0 -152
  920. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_decrypt.c +0 -41
  921. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_encrypt.c +0 -44
  922. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_sign.c +0 -37
  923. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_vrfy.c +0 -43
  924. package/runtime/third_party/bearssl/src/rsa/rsa_i32_priv.c +0 -160
  925. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_sign.c +0 -40
  926. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_vrfy.c +0 -44
  927. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pub.c +0 -77
  928. package/runtime/third_party/bearssl/src/rsa/rsa_i62_keygen.c +0 -57
  929. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_decrypt.c +0 -61
  930. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_encrypt.c +0 -64
  931. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_sign.c +0 -57
  932. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_vrfy.c +0 -63
  933. package/runtime/third_party/bearssl/src/rsa/rsa_i62_priv.c +0 -223
  934. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_sign.c +0 -60
  935. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_vrfy.c +0 -64
  936. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pub.c +0 -125
  937. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_pad.c +0 -112
  938. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_unpad.c +0 -145
  939. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_pad.c +0 -100
  940. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_unpad.c +0 -121
  941. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_pad.c +0 -106
  942. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_unpad.c +0 -121
  943. package/runtime/third_party/bearssl/src/rsa/rsa_ssl_decrypt.c +0 -52
  944. package/runtime/third_party/bearssl/src/settings.c +0 -306
  945. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcdec.c +0 -69
  946. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcenc.c +0 -67
  947. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctr.c +0 -84
  948. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctrcbc.c +0 -142
  949. package/runtime/third_party/bearssl/src/symcipher/aes_big_dec.c +0 -254
  950. package/runtime/third_party/bearssl/src/symcipher/aes_big_enc.c +0 -157
  951. package/runtime/third_party/bearssl/src/symcipher/aes_common.c +0 -112
  952. package/runtime/third_party/bearssl/src/symcipher/aes_ct.c +0 -328
  953. package/runtime/third_party/bearssl/src/symcipher/aes_ct64.c +0 -398
  954. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcdec.c +0 -104
  955. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcenc.c +0 -81
  956. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctr.c +0 -114
  957. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctrcbc.c +0 -433
  958. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_dec.c +0 -159
  959. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_enc.c +0 -115
  960. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcdec.c +0 -111
  961. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcenc.c +0 -91
  962. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctr.c +0 -116
  963. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctrcbc.c +0 -422
  964. package/runtime/third_party/bearssl/src/symcipher/aes_ct_dec.c +0 -170
  965. package/runtime/third_party/bearssl/src/symcipher/aes_ct_enc.c +0 -112
  966. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8.c +0 -445
  967. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcdec.c +0 -670
  968. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcenc.c +0 -417
  969. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctr.c +0 -717
  970. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctrcbc.c +0 -946
  971. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcdec.c +0 -69
  972. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcenc.c +0 -67
  973. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctr.c +0 -84
  974. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctrcbc.c +0 -142
  975. package/runtime/third_party/bearssl/src/symcipher/aes_small_dec.c +0 -176
  976. package/runtime/third_party/bearssl/src/symcipher/aes_small_enc.c +0 -129
  977. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni.c +0 -240
  978. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcdec.c +0 -223
  979. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcenc.c +0 -122
  980. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctr.c +0 -211
  981. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctrcbc.c +0 -596
  982. package/runtime/third_party/bearssl/src/symcipher/chacha20_ct.c +0 -106
  983. package/runtime/third_party/bearssl/src/symcipher/chacha20_sse2.c +0 -237
  984. package/runtime/third_party/bearssl/src/symcipher/des_ct.c +0 -411
  985. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcdec.c +0 -87
  986. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcenc.c +0 -69
  987. package/runtime/third_party/bearssl/src/symcipher/des_support.c +0 -166
  988. package/runtime/third_party/bearssl/src/symcipher/des_tab.c +0 -310
  989. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcdec.c +0 -85
  990. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcenc.c +0 -67
  991. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul.c +0 -260
  992. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul32.c +0 -297
  993. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmulq.c +0 -475
  994. package/runtime/third_party/bearssl/src/symcipher/poly1305_i15.c +0 -221
  995. package/runtime/third_party/bearssl/src/x509/asn1.t0 +0 -757
  996. package/runtime/third_party/bearssl/src/x509/asn1enc.c +0 -93
  997. package/runtime/third_party/bearssl/src/x509/encode_ec_pk8der.c +0 -110
  998. package/runtime/third_party/bearssl/src/x509/encode_ec_rawder.c +0 -161
  999. package/runtime/third_party/bearssl/src/x509/encode_rsa_pk8der.c +0 -97
  1000. package/runtime/third_party/bearssl/src/x509/encode_rsa_rawder.c +0 -96
  1001. package/runtime/third_party/bearssl/src/x509/skey_decoder.c +0 -653
  1002. package/runtime/third_party/bearssl/src/x509/skey_decoder.t0 +0 -376
  1003. package/runtime/third_party/bearssl/src/x509/x509_decoder.c +0 -776
  1004. package/runtime/third_party/bearssl/src/x509/x509_decoder.t0 +0 -324
  1005. package/runtime/third_party/bearssl/src/x509/x509_knownkey.c +0 -105
  1006. package/runtime/third_party/bearssl/src/x509/x509_minimal.c +0 -1722
  1007. package/runtime/third_party/bearssl/src/x509/x509_minimal.t0 +0 -1526
  1008. package/runtime/third_party/bearssl/src/x509/x509_minimal_full.c +0 -59
@@ -0,0 +1,1225 @@
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_ARM) && defined(__ELF__)
7
+ .syntax unified
8
+
9
+ .arch armv7-a
10
+ .fpu neon
11
+
12
+ #if defined(__thumb2__)
13
+ .thumb
14
+ #else
15
+ .code 32
16
+ #endif
17
+
18
+ .text
19
+
20
+ .type _vpaes_consts,%object
21
+ .align 7 @ totally strategic alignment
22
+ _vpaes_consts:
23
+ .Lk_mc_forward:@ mc_forward
24
+ .quad 0x0407060500030201, 0x0C0F0E0D080B0A09
25
+ .quad 0x080B0A0904070605, 0x000302010C0F0E0D
26
+ .quad 0x0C0F0E0D080B0A09, 0x0407060500030201
27
+ .quad 0x000302010C0F0E0D, 0x080B0A0904070605
28
+ .Lk_mc_backward:@ mc_backward
29
+ .quad 0x0605040702010003, 0x0E0D0C0F0A09080B
30
+ .quad 0x020100030E0D0C0F, 0x0A09080B06050407
31
+ .quad 0x0E0D0C0F0A09080B, 0x0605040702010003
32
+ .quad 0x0A09080B06050407, 0x020100030E0D0C0F
33
+ .Lk_sr:@ sr
34
+ .quad 0x0706050403020100, 0x0F0E0D0C0B0A0908
35
+ .quad 0x030E09040F0A0500, 0x0B06010C07020D08
36
+ .quad 0x0F060D040B020900, 0x070E050C030A0108
37
+ .quad 0x0B0E0104070A0D00, 0x0306090C0F020508
38
+
39
+ @
40
+ @ "Hot" constants
41
+ @
42
+ .Lk_inv:@ inv, inva
43
+ .quad 0x0E05060F0D080180, 0x040703090A0B0C02
44
+ .quad 0x01040A060F0B0780, 0x030D0E0C02050809
45
+ .Lk_ipt:@ input transform (lo, hi)
46
+ .quad 0xC2B2E8985A2A7000, 0xCABAE09052227808
47
+ .quad 0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81
48
+ .Lk_sbo:@ sbou, sbot
49
+ .quad 0xD0D26D176FBDC700, 0x15AABF7AC502A878
50
+ .quad 0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA
51
+ .Lk_sb1:@ sb1u, sb1t
52
+ .quad 0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF
53
+ .quad 0xB19BE18FCB503E00, 0xA5DF7A6E142AF544
54
+ .Lk_sb2:@ sb2u, sb2t
55
+ .quad 0x69EB88400AE12900, 0xC2A163C8AB82234A
56
+ .quad 0xE27A93C60B712400, 0x5EB7E955BC982FCD
57
+
58
+ .byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,65,82,77,118,55,32,78,69,79,78,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0
59
+ .align 2
60
+ .size _vpaes_consts,.-_vpaes_consts
61
+ .align 6
62
+ @@
63
+ @@ _aes_preheat
64
+ @@
65
+ @@ Fills q9-q15 as specified below.
66
+ @@
67
+ .type _vpaes_preheat,%function
68
+ .align 4
69
+ _vpaes_preheat:
70
+ adr r10, .Lk_inv
71
+ vmov.i8 q9, #0x0f @ .Lk_s0F
72
+ vld1.64 {q10,q11}, [r10]! @ .Lk_inv
73
+ add r10, r10, #64 @ Skip .Lk_ipt, .Lk_sbo
74
+ vld1.64 {q12,q13}, [r10]! @ .Lk_sb1
75
+ vld1.64 {q14,q15}, [r10] @ .Lk_sb2
76
+ bx lr
77
+
78
+ @@
79
+ @@ _aes_encrypt_core
80
+ @@
81
+ @@ AES-encrypt q0.
82
+ @@
83
+ @@ Inputs:
84
+ @@ q0 = input
85
+ @@ q9-q15 as in _vpaes_preheat
86
+ @@ [r2] = scheduled keys
87
+ @@
88
+ @@ Output in q0
89
+ @@ Clobbers q1-q5, r8-r11
90
+ @@ Preserves q6-q8 so you get some local vectors
91
+ @@
92
+ @@
93
+ .type _vpaes_encrypt_core,%function
94
+ .align 4
95
+ _vpaes_encrypt_core:
96
+ mov r9, r2
97
+ ldr r8, [r2,#240] @ pull rounds
98
+ adr r11, .Lk_ipt
99
+ @ vmovdqa .Lk_ipt(%rip), %xmm2 # iptlo
100
+ @ vmovdqa .Lk_ipt+16(%rip), %xmm3 # ipthi
101
+ vld1.64 {q2, q3}, [r11]
102
+ adr r11, .Lk_mc_forward+16
103
+ vld1.64 {q5}, [r9]! @ vmovdqu (%r9), %xmm5 # round0 key
104
+ vand q1, q0, q9 @ vpand %xmm9, %xmm0, %xmm1
105
+ vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0
106
+ vtbl.8 d2, {q2}, d2 @ vpshufb %xmm1, %xmm2, %xmm1
107
+ vtbl.8 d3, {q2}, d3
108
+ vtbl.8 d4, {q3}, d0 @ vpshufb %xmm0, %xmm3, %xmm2
109
+ vtbl.8 d5, {q3}, d1
110
+ veor q0, q1, q5 @ vpxor %xmm5, %xmm1, %xmm0
111
+ veor q0, q0, q2 @ vpxor %xmm2, %xmm0, %xmm0
112
+
113
+ @ .Lenc_entry ends with a bnz instruction which is normally paired with
114
+ @ subs in .Lenc_loop.
115
+ tst r8, r8
116
+ b .Lenc_entry
117
+
118
+ .align 4
119
+ .Lenc_loop:
120
+ @ middle of middle round
121
+ add r10, r11, #0x40
122
+ vtbl.8 d8, {q13}, d4 @ vpshufb %xmm2, %xmm13, %xmm4 # 4 = sb1u
123
+ vtbl.8 d9, {q13}, d5
124
+ vld1.64 {q1}, [r11]! @ vmovdqa -0x40(%r11,%r10), %xmm1 # .Lk_mc_forward[]
125
+ vtbl.8 d0, {q12}, d6 @ vpshufb %xmm3, %xmm12, %xmm0 # 0 = sb1t
126
+ vtbl.8 d1, {q12}, d7
127
+ veor q4, q4, q5 @ vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k
128
+ vtbl.8 d10, {q15}, d4 @ vpshufb %xmm2, %xmm15, %xmm5 # 4 = sb2u
129
+ vtbl.8 d11, {q15}, d5
130
+ veor q0, q0, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 0 = A
131
+ vtbl.8 d4, {q14}, d6 @ vpshufb %xmm3, %xmm14, %xmm2 # 2 = sb2t
132
+ vtbl.8 d5, {q14}, d7
133
+ vld1.64 {q4}, [r10] @ vmovdqa (%r11,%r10), %xmm4 # .Lk_mc_backward[]
134
+ vtbl.8 d6, {q0}, d2 @ vpshufb %xmm1, %xmm0, %xmm3 # 0 = B
135
+ vtbl.8 d7, {q0}, d3
136
+ veor q2, q2, q5 @ vpxor %xmm5, %xmm2, %xmm2 # 2 = 2A
137
+ @ Write to q5 instead of q0, so the table and destination registers do
138
+ @ not overlap.
139
+ vtbl.8 d10, {q0}, d8 @ vpshufb %xmm4, %xmm0, %xmm0 # 3 = D
140
+ vtbl.8 d11, {q0}, d9
141
+ veor q3, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3 # 0 = 2A+B
142
+ vtbl.8 d8, {q3}, d2 @ vpshufb %xmm1, %xmm3, %xmm4 # 0 = 2B+C
143
+ vtbl.8 d9, {q3}, d3
144
+ @ Here we restore the original q0/q5 usage.
145
+ veor q0, q5, q3 @ vpxor %xmm3, %xmm0, %xmm0 # 3 = 2A+B+D
146
+ and r11, r11, #~(1<<6) @ and $0x30, %r11 # ... mod 4
147
+ veor q0, q0, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 0 = 2A+3B+C+D
148
+ subs r8, r8, #1 @ nr--
149
+
150
+ .Lenc_entry:
151
+ @ top of round
152
+ vand q1, q0, q9 @ vpand %xmm0, %xmm9, %xmm1 # 0 = k
153
+ vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0 # 1 = i
154
+ vtbl.8 d10, {q11}, d2 @ vpshufb %xmm1, %xmm11, %xmm5 # 2 = a/k
155
+ vtbl.8 d11, {q11}, d3
156
+ veor q1, q1, q0 @ vpxor %xmm0, %xmm1, %xmm1 # 0 = j
157
+ vtbl.8 d6, {q10}, d0 @ vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i
158
+ vtbl.8 d7, {q10}, d1
159
+ vtbl.8 d8, {q10}, d2 @ vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j
160
+ vtbl.8 d9, {q10}, d3
161
+ veor q3, q3, q5 @ vpxor %xmm5, %xmm3, %xmm3 # 3 = iak = 1/i + a/k
162
+ veor q4, q4, q5 @ vpxor %xmm5, %xmm4, %xmm4 # 4 = jak = 1/j + a/k
163
+ vtbl.8 d4, {q10}, d6 @ vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak
164
+ vtbl.8 d5, {q10}, d7
165
+ vtbl.8 d6, {q10}, d8 @ vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak
166
+ vtbl.8 d7, {q10}, d9
167
+ veor q2, q2, q1 @ vpxor %xmm1, %xmm2, %xmm2 # 2 = io
168
+ veor q3, q3, q0 @ vpxor %xmm0, %xmm3, %xmm3 # 3 = jo
169
+ vld1.64 {q5}, [r9]! @ vmovdqu (%r9), %xmm5
170
+ bne .Lenc_loop
171
+
172
+ @ middle of last round
173
+ add r10, r11, #0x80
174
+
175
+ adr r11, .Lk_sbo
176
+ @ Read to q1 instead of q4, so the vtbl.8 instruction below does not
177
+ @ overlap table and destination registers.
178
+ vld1.64 {q1}, [r11]! @ vmovdqa -0x60(%r10), %xmm4 # 3 : sbou
179
+ vld1.64 {q0}, [r11] @ vmovdqa -0x50(%r10), %xmm0 # 0 : sbot .Lk_sbo+16
180
+ vtbl.8 d8, {q1}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou
181
+ vtbl.8 d9, {q1}, d5
182
+ vld1.64 {q1}, [r10] @ vmovdqa 0x40(%r11,%r10), %xmm1 # .Lk_sr[]
183
+ @ Write to q2 instead of q0 below, to avoid overlapping table and
184
+ @ destination registers.
185
+ vtbl.8 d4, {q0}, d6 @ vpshufb %xmm3, %xmm0, %xmm0 # 0 = sb1t
186
+ vtbl.8 d5, {q0}, d7
187
+ veor q4, q4, q5 @ vpxor %xmm5, %xmm4, %xmm4 # 4 = sb1u + k
188
+ veor q2, q2, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 0 = A
189
+ @ Here we restore the original q0/q2 usage.
190
+ vtbl.8 d0, {q2}, d2 @ vpshufb %xmm1, %xmm0, %xmm0
191
+ vtbl.8 d1, {q2}, d3
192
+ bx lr
193
+ .size _vpaes_encrypt_core,.-_vpaes_encrypt_core
194
+
195
+ .globl vpaes_encrypt
196
+ .hidden vpaes_encrypt
197
+ .type vpaes_encrypt,%function
198
+ .align 4
199
+ vpaes_encrypt:
200
+ @ _vpaes_encrypt_core uses r8-r11. Round up to r7-r11 to maintain stack
201
+ @ alignment.
202
+ stmdb sp!, {r7,r8,r9,r10,r11,lr}
203
+ @ _vpaes_encrypt_core uses q4-q5 (d8-d11), which are callee-saved.
204
+ vstmdb sp!, {d8,d9,d10,d11}
205
+
206
+ vld1.64 {q0}, [r0]
207
+ bl _vpaes_preheat
208
+ bl _vpaes_encrypt_core
209
+ vst1.64 {q0}, [r1]
210
+
211
+ vldmia sp!, {d8,d9,d10,d11}
212
+ ldmia sp!, {r7,r8,r9,r10,r11, pc} @ return
213
+ .size vpaes_encrypt,.-vpaes_encrypt
214
+
215
+ @
216
+ @ Decryption stuff
217
+ @
218
+ .type _vpaes_decrypt_consts,%object
219
+ .align 4
220
+ _vpaes_decrypt_consts:
221
+ .Lk_dipt:@ decryption input transform
222
+ .quad 0x0F505B040B545F00, 0x154A411E114E451A
223
+ .quad 0x86E383E660056500, 0x12771772F491F194
224
+ .Lk_dsbo:@ decryption sbox final output
225
+ .quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D
226
+ .quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C
227
+ .Lk_dsb9:@ decryption sbox output *9*u, *9*t
228
+ .quad 0x851C03539A86D600, 0xCAD51F504F994CC9
229
+ .quad 0xC03B1789ECD74900, 0x725E2C9EB2FBA565
230
+ .Lk_dsbd:@ decryption sbox output *D*u, *D*t
231
+ .quad 0x7D57CCDFE6B1A200, 0xF56E9B13882A4439
232
+ .quad 0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3
233
+ .Lk_dsbb:@ decryption sbox output *B*u, *B*t
234
+ .quad 0xD022649296B44200, 0x602646F6B0F2D404
235
+ .quad 0xC19498A6CD596700, 0xF3FF0C3E3255AA6B
236
+ .Lk_dsbe:@ decryption sbox output *E*u, *E*t
237
+ .quad 0x46F2929626D4D000, 0x2242600464B4F6B0
238
+ .quad 0x0C55A6CDFFAAC100, 0x9467F36B98593E32
239
+ .size _vpaes_decrypt_consts,.-_vpaes_decrypt_consts
240
+
241
+ @@
242
+ @@ Decryption core
243
+ @@
244
+ @@ Same API as encryption core, except it clobbers q12-q15 rather than using
245
+ @@ the values from _vpaes_preheat. q9-q11 must still be set from
246
+ @@ _vpaes_preheat.
247
+ @@
248
+ .type _vpaes_decrypt_core,%function
249
+ .align 4
250
+ _vpaes_decrypt_core:
251
+ mov r9, r2
252
+ ldr r8, [r2,#240] @ pull rounds
253
+
254
+ @ This function performs shuffles with various constants. The x86_64
255
+ @ version loads them on-demand into %xmm0-%xmm5. This does not work well
256
+ @ for ARMv7 because those registers are shuffle destinations. The ARMv8
257
+ @ version preloads those constants into registers, but ARMv7 has half
258
+ @ the registers to work with. Instead, we load them on-demand into
259
+ @ q12-q15, registers normally use for preloaded constants. This is fine
260
+ @ because decryption doesn't use those constants. The values are
261
+ @ constant, so this does not interfere with potential 2x optimizations.
262
+ adr r7, .Lk_dipt
263
+
264
+ vld1.64 {q12,q13}, [r7] @ vmovdqa .Lk_dipt(%rip), %xmm2 # iptlo
265
+ lsl r11, r8, #4 @ mov %rax, %r11; shl $4, %r11
266
+ eor r11, r11, #0x30 @ xor $0x30, %r11
267
+ adr r10, .Lk_sr
268
+ and r11, r11, #0x30 @ and $0x30, %r11
269
+ add r11, r11, r10
270
+ adr r10, .Lk_mc_forward+48
271
+
272
+ vld1.64 {q4}, [r9]! @ vmovdqu (%r9), %xmm4 # round0 key
273
+ vand q1, q0, q9 @ vpand %xmm9, %xmm0, %xmm1
274
+ vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0
275
+ vtbl.8 d4, {q12}, d2 @ vpshufb %xmm1, %xmm2, %xmm2
276
+ vtbl.8 d5, {q12}, d3
277
+ vld1.64 {q5}, [r10] @ vmovdqa .Lk_mc_forward+48(%rip), %xmm5
278
+ @ vmovdqa .Lk_dipt+16(%rip), %xmm1 # ipthi
279
+ vtbl.8 d0, {q13}, d0 @ vpshufb %xmm0, %xmm1, %xmm0
280
+ vtbl.8 d1, {q13}, d1
281
+ veor q2, q2, q4 @ vpxor %xmm4, %xmm2, %xmm2
282
+ veor q0, q0, q2 @ vpxor %xmm2, %xmm0, %xmm0
283
+
284
+ @ .Ldec_entry ends with a bnz instruction which is normally paired with
285
+ @ subs in .Ldec_loop.
286
+ tst r8, r8
287
+ b .Ldec_entry
288
+
289
+ .align 4
290
+ .Ldec_loop:
291
+ @
292
+ @ Inverse mix columns
293
+ @
294
+
295
+ @ We load .Lk_dsb* into q12-q15 on-demand. See the comment at the top of
296
+ @ the function.
297
+ adr r10, .Lk_dsb9
298
+ vld1.64 {q12,q13}, [r10]! @ vmovdqa -0x20(%r10),%xmm4 # 4 : sb9u
299
+ @ vmovdqa -0x10(%r10),%xmm1 # 0 : sb9t
300
+ @ Load sbd* ahead of time.
301
+ vld1.64 {q14,q15}, [r10]! @ vmovdqa 0x00(%r10),%xmm4 # 4 : sbdu
302
+ @ vmovdqa 0x10(%r10),%xmm1 # 0 : sbdt
303
+ vtbl.8 d8, {q12}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sb9u
304
+ vtbl.8 d9, {q12}, d5
305
+ vtbl.8 d2, {q13}, d6 @ vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb9t
306
+ vtbl.8 d3, {q13}, d7
307
+ veor q0, q4, q0 @ vpxor %xmm4, %xmm0, %xmm0
308
+
309
+ veor q0, q0, q1 @ vpxor %xmm1, %xmm0, %xmm0 # 0 = ch
310
+
311
+ @ Load sbb* ahead of time.
312
+ vld1.64 {q12,q13}, [r10]! @ vmovdqa 0x20(%r10),%xmm4 # 4 : sbbu
313
+ @ vmovdqa 0x30(%r10),%xmm1 # 0 : sbbt
314
+
315
+ vtbl.8 d8, {q14}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbdu
316
+ vtbl.8 d9, {q14}, d5
317
+ @ Write to q1 instead of q0, so the table and destination registers do
318
+ @ not overlap.
319
+ vtbl.8 d2, {q0}, d10 @ vpshufb %xmm5, %xmm0, %xmm0 # MC ch
320
+ vtbl.8 d3, {q0}, d11
321
+ @ Here we restore the original q0/q1 usage. This instruction is
322
+ @ reordered from the ARMv8 version so we do not clobber the vtbl.8
323
+ @ below.
324
+ veor q0, q1, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 4 = ch
325
+ vtbl.8 d2, {q15}, d6 @ vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbdt
326
+ vtbl.8 d3, {q15}, d7
327
+ @ vmovdqa 0x20(%r10), %xmm4 # 4 : sbbu
328
+ veor q0, q0, q1 @ vpxor %xmm1, %xmm0, %xmm0 # 0 = ch
329
+ @ vmovdqa 0x30(%r10), %xmm1 # 0 : sbbt
330
+
331
+ @ Load sbd* ahead of time.
332
+ vld1.64 {q14,q15}, [r10]! @ vmovdqa 0x40(%r10),%xmm4 # 4 : sbeu
333
+ @ vmovdqa 0x50(%r10),%xmm1 # 0 : sbet
334
+
335
+ vtbl.8 d8, {q12}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbbu
336
+ vtbl.8 d9, {q12}, d5
337
+ @ Write to q1 instead of q0, so the table and destination registers do
338
+ @ not overlap.
339
+ vtbl.8 d2, {q0}, d10 @ vpshufb %xmm5, %xmm0, %xmm0 # MC ch
340
+ vtbl.8 d3, {q0}, d11
341
+ @ Here we restore the original q0/q1 usage. This instruction is
342
+ @ reordered from the ARMv8 version so we do not clobber the vtbl.8
343
+ @ below.
344
+ veor q0, q1, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 4 = ch
345
+ vtbl.8 d2, {q13}, d6 @ vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbbt
346
+ vtbl.8 d3, {q13}, d7
347
+ veor q0, q0, q1 @ vpxor %xmm1, %xmm0, %xmm0 # 0 = ch
348
+
349
+ vtbl.8 d8, {q14}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbeu
350
+ vtbl.8 d9, {q14}, d5
351
+ @ Write to q1 instead of q0, so the table and destination registers do
352
+ @ not overlap.
353
+ vtbl.8 d2, {q0}, d10 @ vpshufb %xmm5, %xmm0, %xmm0 # MC ch
354
+ vtbl.8 d3, {q0}, d11
355
+ @ Here we restore the original q0/q1 usage. This instruction is
356
+ @ reordered from the ARMv8 version so we do not clobber the vtbl.8
357
+ @ below.
358
+ veor q0, q1, q4 @ vpxor %xmm4, %xmm0, %xmm0 # 4 = ch
359
+ vtbl.8 d2, {q15}, d6 @ vpshufb %xmm3, %xmm1, %xmm1 # 0 = sbet
360
+ vtbl.8 d3, {q15}, d7
361
+ vext.8 q5, q5, q5, #12 @ vpalignr $12, %xmm5, %xmm5, %xmm5
362
+ veor q0, q0, q1 @ vpxor %xmm1, %xmm0, %xmm0 # 0 = ch
363
+ subs r8, r8, #1 @ sub $1,%rax # nr--
364
+
365
+ .Ldec_entry:
366
+ @ top of round
367
+ vand q1, q0, q9 @ vpand %xmm9, %xmm0, %xmm1 # 0 = k
368
+ vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0 # 1 = i
369
+ vtbl.8 d4, {q11}, d2 @ vpshufb %xmm1, %xmm11, %xmm2 # 2 = a/k
370
+ vtbl.8 d5, {q11}, d3
371
+ veor q1, q1, q0 @ vpxor %xmm0, %xmm1, %xmm1 # 0 = j
372
+ vtbl.8 d6, {q10}, d0 @ vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i
373
+ vtbl.8 d7, {q10}, d1
374
+ vtbl.8 d8, {q10}, d2 @ vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j
375
+ vtbl.8 d9, {q10}, d3
376
+ veor q3, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3 # 3 = iak = 1/i + a/k
377
+ veor q4, q4, q2 @ vpxor %xmm2, %xmm4, %xmm4 # 4 = jak = 1/j + a/k
378
+ vtbl.8 d4, {q10}, d6 @ vpshufb %xmm3, %xmm10, %xmm2 # 2 = 1/iak
379
+ vtbl.8 d5, {q10}, d7
380
+ vtbl.8 d6, {q10}, d8 @ vpshufb %xmm4, %xmm10, %xmm3 # 3 = 1/jak
381
+ vtbl.8 d7, {q10}, d9
382
+ veor q2, q2, q1 @ vpxor %xmm1, %xmm2, %xmm2 # 2 = io
383
+ veor q3, q3, q0 @ vpxor %xmm0, %xmm3, %xmm3 # 3 = jo
384
+ vld1.64 {q0}, [r9]! @ vmovdqu (%r9), %xmm0
385
+ bne .Ldec_loop
386
+
387
+ @ middle of last round
388
+
389
+ adr r10, .Lk_dsbo
390
+
391
+ @ Write to q1 rather than q4 to avoid overlapping table and destination.
392
+ vld1.64 {q1}, [r10]! @ vmovdqa 0x60(%r10), %xmm4 # 3 : sbou
393
+ vtbl.8 d8, {q1}, d4 @ vpshufb %xmm2, %xmm4, %xmm4 # 4 = sbou
394
+ vtbl.8 d9, {q1}, d5
395
+ @ Write to q2 rather than q1 to avoid overlapping table and destination.
396
+ vld1.64 {q2}, [r10] @ vmovdqa 0x70(%r10), %xmm1 # 0 : sbot
397
+ vtbl.8 d2, {q2}, d6 @ vpshufb %xmm3, %xmm1, %xmm1 # 0 = sb1t
398
+ vtbl.8 d3, {q2}, d7
399
+ vld1.64 {q2}, [r11] @ vmovdqa -0x160(%r11), %xmm2 # .Lk_sr-.Lk_dsbd=-0x160
400
+ veor q4, q4, q0 @ vpxor %xmm0, %xmm4, %xmm4 # 4 = sb1u + k
401
+ @ Write to q1 rather than q0 so the table and destination registers
402
+ @ below do not overlap.
403
+ veor q1, q1, q4 @ vpxor %xmm4, %xmm1, %xmm0 # 0 = A
404
+ vtbl.8 d0, {q1}, d4 @ vpshufb %xmm2, %xmm0, %xmm0
405
+ vtbl.8 d1, {q1}, d5
406
+ bx lr
407
+ .size _vpaes_decrypt_core,.-_vpaes_decrypt_core
408
+
409
+ .globl vpaes_decrypt
410
+ .hidden vpaes_decrypt
411
+ .type vpaes_decrypt,%function
412
+ .align 4
413
+ vpaes_decrypt:
414
+ @ _vpaes_decrypt_core uses r7-r11.
415
+ stmdb sp!, {r7,r8,r9,r10,r11,lr}
416
+ @ _vpaes_decrypt_core uses q4-q5 (d8-d11), which are callee-saved.
417
+ vstmdb sp!, {d8,d9,d10,d11}
418
+
419
+ vld1.64 {q0}, [r0]
420
+ bl _vpaes_preheat
421
+ bl _vpaes_decrypt_core
422
+ vst1.64 {q0}, [r1]
423
+
424
+ vldmia sp!, {d8,d9,d10,d11}
425
+ ldmia sp!, {r7,r8,r9,r10,r11, pc} @ return
426
+ .size vpaes_decrypt,.-vpaes_decrypt
427
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
428
+ @@ @@
429
+ @@ AES key schedule @@
430
+ @@ @@
431
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
432
+
433
+ @ This function diverges from both x86_64 and armv7 in which constants are
434
+ @ pinned. x86_64 has a common preheat function for all operations. aarch64
435
+ @ separates them because it has enough registers to pin nearly all constants.
436
+ @ armv7 does not have enough registers, but needing explicit loads and stores
437
+ @ also complicates using x86_64's register allocation directly.
438
+ @
439
+ @ We pin some constants for convenience and leave q14 and q15 free to load
440
+ @ others on demand.
441
+
442
+ @
443
+ @ Key schedule constants
444
+ @
445
+ .type _vpaes_key_consts,%object
446
+ .align 4
447
+ _vpaes_key_consts:
448
+ .Lk_dksd:@ decryption key schedule: invskew x*D
449
+ .quad 0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9
450
+ .quad 0x41C277F4B5368300, 0x5FDC69EAAB289D1E
451
+ .Lk_dksb:@ decryption key schedule: invskew x*B
452
+ .quad 0x9A4FCA1F8550D500, 0x03D653861CC94C99
453
+ .quad 0x115BEDA7B6FC4A00, 0xD993256F7E3482C8
454
+ .Lk_dkse:@ decryption key schedule: invskew x*E + 0x63
455
+ .quad 0xD5031CCA1FC9D600, 0x53859A4C994F5086
456
+ .quad 0xA23196054FDC7BE8, 0xCD5EF96A20B31487
457
+ .Lk_dks9:@ decryption key schedule: invskew x*9
458
+ .quad 0xB6116FC87ED9A700, 0x4AED933482255BFC
459
+ .quad 0x4576516227143300, 0x8BB89FACE9DAFDCE
460
+
461
+ .Lk_rcon:@ rcon
462
+ .quad 0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81
463
+
464
+ .Lk_opt:@ output transform
465
+ .quad 0xFF9F4929D6B66000, 0xF7974121DEBE6808
466
+ .quad 0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0
467
+ .Lk_deskew:@ deskew tables: inverts the sbox's "skew"
468
+ .quad 0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A
469
+ .quad 0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77
470
+ .size _vpaes_key_consts,.-_vpaes_key_consts
471
+
472
+ .type _vpaes_key_preheat,%function
473
+ .align 4
474
+ _vpaes_key_preheat:
475
+ adr r11, .Lk_rcon
476
+ vmov.i8 q12, #0x5b @ .Lk_s63
477
+ adr r10, .Lk_inv @ Must be aligned to 8 mod 16.
478
+ vmov.i8 q9, #0x0f @ .Lk_s0F
479
+ vld1.64 {q10,q11}, [r10] @ .Lk_inv
480
+ vld1.64 {q8}, [r11] @ .Lk_rcon
481
+ bx lr
482
+ .size _vpaes_key_preheat,.-_vpaes_key_preheat
483
+
484
+ .type _vpaes_schedule_core,%function
485
+ .align 4
486
+ _vpaes_schedule_core:
487
+ @ We only need to save lr, but ARM requires an 8-byte stack alignment,
488
+ @ so save an extra register.
489
+ stmdb sp!, {r3,lr}
490
+
491
+ bl _vpaes_key_preheat @ load the tables
492
+
493
+ adr r11, .Lk_ipt @ Must be aligned to 8 mod 16.
494
+ vld1.64 {q0}, [r0]! @ vmovdqu (%rdi), %xmm0 # load key (unaligned)
495
+
496
+ @ input transform
497
+ @ Use q4 here rather than q3 so .Lschedule_am_decrypting does not
498
+ @ overlap table and destination.
499
+ vmov q4, q0 @ vmovdqa %xmm0, %xmm3
500
+ bl _vpaes_schedule_transform
501
+ adr r10, .Lk_sr @ Must be aligned to 8 mod 16.
502
+ vmov q7, q0 @ vmovdqa %xmm0, %xmm7
503
+
504
+ add r8, r8, r10
505
+ tst r3, r3
506
+ bne .Lschedule_am_decrypting
507
+
508
+ @ encrypting, output zeroth round key after transform
509
+ vst1.64 {q0}, [r2] @ vmovdqu %xmm0, (%rdx)
510
+ b .Lschedule_go
511
+
512
+ .Lschedule_am_decrypting:
513
+ @ decrypting, output zeroth round key after shiftrows
514
+ vld1.64 {q1}, [r8] @ vmovdqa (%r8,%r10), %xmm1
515
+ vtbl.8 d6, {q4}, d2 @ vpshufb %xmm1, %xmm3, %xmm3
516
+ vtbl.8 d7, {q4}, d3
517
+ vst1.64 {q3}, [r2] @ vmovdqu %xmm3, (%rdx)
518
+ eor r8, r8, #0x30 @ xor $0x30, %r8
519
+
520
+ .Lschedule_go:
521
+ cmp r1, #192 @ cmp $192, %esi
522
+ bhi .Lschedule_256
523
+ beq .Lschedule_192
524
+ @ 128: fall though
525
+
526
+ @@
527
+ @@ .schedule_128
528
+ @@
529
+ @@ 128-bit specific part of key schedule.
530
+ @@
531
+ @@ This schedule is really simple, because all its parts
532
+ @@ are accomplished by the subroutines.
533
+ @@
534
+ .Lschedule_128:
535
+ mov r0, #10 @ mov $10, %esi
536
+
537
+ .Loop_schedule_128:
538
+ bl _vpaes_schedule_round
539
+ subs r0, r0, #1 @ dec %esi
540
+ beq .Lschedule_mangle_last
541
+ bl _vpaes_schedule_mangle @ write output
542
+ b .Loop_schedule_128
543
+
544
+ @@
545
+ @@ .aes_schedule_192
546
+ @@
547
+ @@ 192-bit specific part of key schedule.
548
+ @@
549
+ @@ The main body of this schedule is the same as the 128-bit
550
+ @@ schedule, but with more smearing. The long, high side is
551
+ @@ stored in q7 as before, and the short, low side is in
552
+ @@ the high bits of q6.
553
+ @@
554
+ @@ This schedule is somewhat nastier, however, because each
555
+ @@ round produces 192 bits of key material, or 1.5 round keys.
556
+ @@ Therefore, on each cycle we do 2 rounds and produce 3 round
557
+ @@ keys.
558
+ @@
559
+ .align 4
560
+ .Lschedule_192:
561
+ sub r0, r0, #8
562
+ vld1.64 {q0}, [r0] @ vmovdqu 8(%rdi),%xmm0 # load key part 2 (very unaligned)
563
+ bl _vpaes_schedule_transform @ input transform
564
+ vmov q6, q0 @ vmovdqa %xmm0, %xmm6 # save short part
565
+ vmov.i8 d12, #0 @ vpxor %xmm4, %xmm4, %xmm4 # clear 4
566
+ @ vmovhlps %xmm4, %xmm6, %xmm6 # clobber low side with zeros
567
+ mov r0, #4 @ mov $4, %esi
568
+
569
+ .Loop_schedule_192:
570
+ bl _vpaes_schedule_round
571
+ vext.8 q0, q6, q0, #8 @ vpalignr $8,%xmm6,%xmm0,%xmm0
572
+ bl _vpaes_schedule_mangle @ save key n
573
+ bl _vpaes_schedule_192_smear
574
+ bl _vpaes_schedule_mangle @ save key n+1
575
+ bl _vpaes_schedule_round
576
+ subs r0, r0, #1 @ dec %esi
577
+ beq .Lschedule_mangle_last
578
+ bl _vpaes_schedule_mangle @ save key n+2
579
+ bl _vpaes_schedule_192_smear
580
+ b .Loop_schedule_192
581
+
582
+ @@
583
+ @@ .aes_schedule_256
584
+ @@
585
+ @@ 256-bit specific part of key schedule.
586
+ @@
587
+ @@ The structure here is very similar to the 128-bit
588
+ @@ schedule, but with an additional "low side" in
589
+ @@ q6. The low side's rounds are the same as the
590
+ @@ high side's, except no rcon and no rotation.
591
+ @@
592
+ .align 4
593
+ .Lschedule_256:
594
+ vld1.64 {q0}, [r0] @ vmovdqu 16(%rdi),%xmm0 # load key part 2 (unaligned)
595
+ bl _vpaes_schedule_transform @ input transform
596
+ mov r0, #7 @ mov $7, %esi
597
+
598
+ .Loop_schedule_256:
599
+ bl _vpaes_schedule_mangle @ output low result
600
+ vmov q6, q0 @ vmovdqa %xmm0, %xmm6 # save cur_lo in xmm6
601
+
602
+ @ high round
603
+ bl _vpaes_schedule_round
604
+ subs r0, r0, #1 @ dec %esi
605
+ beq .Lschedule_mangle_last
606
+ bl _vpaes_schedule_mangle
607
+
608
+ @ low round. swap xmm7 and xmm6
609
+ vdup.32 q0, d1[1] @ vpshufd $0xFF, %xmm0, %xmm0
610
+ vmov.i8 q4, #0
611
+ vmov q5, q7 @ vmovdqa %xmm7, %xmm5
612
+ vmov q7, q6 @ vmovdqa %xmm6, %xmm7
613
+ bl _vpaes_schedule_low_round
614
+ vmov q7, q5 @ vmovdqa %xmm5, %xmm7
615
+
616
+ b .Loop_schedule_256
617
+
618
+ @@
619
+ @@ .aes_schedule_mangle_last
620
+ @@
621
+ @@ Mangler for last round of key schedule
622
+ @@ Mangles q0
623
+ @@ when encrypting, outputs out(q0) ^ 63
624
+ @@ when decrypting, outputs unskew(q0)
625
+ @@
626
+ @@ Always called right before return... jumps to cleanup and exits
627
+ @@
628
+ .align 4
629
+ .Lschedule_mangle_last:
630
+ @ schedule last round key from xmm0
631
+ adr r11, .Lk_deskew @ lea .Lk_deskew(%rip),%r11 # prepare to deskew
632
+ tst r3, r3
633
+ bne .Lschedule_mangle_last_dec
634
+
635
+ @ encrypting
636
+ vld1.64 {q1}, [r8] @ vmovdqa (%r8,%r10),%xmm1
637
+ adr r11, .Lk_opt @ lea .Lk_opt(%rip), %r11 # prepare to output transform
638
+ add r2, r2, #32 @ add $32, %rdx
639
+ vmov q2, q0
640
+ vtbl.8 d0, {q2}, d2 @ vpshufb %xmm1, %xmm0, %xmm0 # output permute
641
+ vtbl.8 d1, {q2}, d3
642
+
643
+ .Lschedule_mangle_last_dec:
644
+ sub r2, r2, #16 @ add $-16, %rdx
645
+ veor q0, q0, q12 @ vpxor .Lk_s63(%rip), %xmm0, %xmm0
646
+ bl _vpaes_schedule_transform @ output transform
647
+ vst1.64 {q0}, [r2] @ vmovdqu %xmm0, (%rdx) # save last key
648
+
649
+ @ cleanup
650
+ veor q0, q0, q0 @ vpxor %xmm0, %xmm0, %xmm0
651
+ veor q1, q1, q1 @ vpxor %xmm1, %xmm1, %xmm1
652
+ veor q2, q2, q2 @ vpxor %xmm2, %xmm2, %xmm2
653
+ veor q3, q3, q3 @ vpxor %xmm3, %xmm3, %xmm3
654
+ veor q4, q4, q4 @ vpxor %xmm4, %xmm4, %xmm4
655
+ veor q5, q5, q5 @ vpxor %xmm5, %xmm5, %xmm5
656
+ veor q6, q6, q6 @ vpxor %xmm6, %xmm6, %xmm6
657
+ veor q7, q7, q7 @ vpxor %xmm7, %xmm7, %xmm7
658
+ ldmia sp!, {r3,pc} @ return
659
+ .size _vpaes_schedule_core,.-_vpaes_schedule_core
660
+
661
+ @@
662
+ @@ .aes_schedule_192_smear
663
+ @@
664
+ @@ Smear the short, low side in the 192-bit key schedule.
665
+ @@
666
+ @@ Inputs:
667
+ @@ q7: high side, b a x y
668
+ @@ q6: low side, d c 0 0
669
+ @@
670
+ @@ Outputs:
671
+ @@ q6: b+c+d b+c 0 0
672
+ @@ q0: b+c+d b+c b a
673
+ @@
674
+ .type _vpaes_schedule_192_smear,%function
675
+ .align 4
676
+ _vpaes_schedule_192_smear:
677
+ vmov.i8 q1, #0
678
+ vdup.32 q0, d15[1]
679
+ vshl.i64 q1, q6, #32 @ vpshufd $0x80, %xmm6, %xmm1 # d c 0 0 -> c 0 0 0
680
+ vmov d0, d15 @ vpshufd $0xFE, %xmm7, %xmm0 # b a _ _ -> b b b a
681
+ veor q6, q6, q1 @ vpxor %xmm1, %xmm6, %xmm6 # -> c+d c 0 0
682
+ veor q1, q1, q1 @ vpxor %xmm1, %xmm1, %xmm1
683
+ veor q6, q6, q0 @ vpxor %xmm0, %xmm6, %xmm6 # -> b+c+d b+c b a
684
+ vmov q0, q6 @ vmovdqa %xmm6, %xmm0
685
+ vmov d12, d2 @ vmovhlps %xmm1, %xmm6, %xmm6 # clobber low side with zeros
686
+ bx lr
687
+ .size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
688
+
689
+ @@
690
+ @@ .aes_schedule_round
691
+ @@
692
+ @@ Runs one main round of the key schedule on q0, q7
693
+ @@
694
+ @@ Specifically, runs subbytes on the high dword of q0
695
+ @@ then rotates it by one byte and xors into the low dword of
696
+ @@ q7.
697
+ @@
698
+ @@ Adds rcon from low byte of q8, then rotates q8 for
699
+ @@ next rcon.
700
+ @@
701
+ @@ Smears the dwords of q7 by xoring the low into the
702
+ @@ second low, result into third, result into highest.
703
+ @@
704
+ @@ Returns results in q7 = q0.
705
+ @@ Clobbers q1-q4, r11.
706
+ @@
707
+ .type _vpaes_schedule_round,%function
708
+ .align 4
709
+ _vpaes_schedule_round:
710
+ @ extract rcon from xmm8
711
+ vmov.i8 q4, #0 @ vpxor %xmm4, %xmm4, %xmm4
712
+ vext.8 q1, q8, q4, #15 @ vpalignr $15, %xmm8, %xmm4, %xmm1
713
+ vext.8 q8, q8, q8, #15 @ vpalignr $15, %xmm8, %xmm8, %xmm8
714
+ veor q7, q7, q1 @ vpxor %xmm1, %xmm7, %xmm7
715
+
716
+ @ rotate
717
+ vdup.32 q0, d1[1] @ vpshufd $0xFF, %xmm0, %xmm0
718
+ vext.8 q0, q0, q0, #1 @ vpalignr $1, %xmm0, %xmm0, %xmm0
719
+
720
+ @ fall through...
721
+
722
+ @ low round: same as high round, but no rotation and no rcon.
723
+ _vpaes_schedule_low_round:
724
+ @ The x86_64 version pins .Lk_sb1 in %xmm13 and .Lk_sb1+16 in %xmm12.
725
+ @ We pin other values in _vpaes_key_preheat, so load them now.
726
+ adr r11, .Lk_sb1
727
+ vld1.64 {q14,q15}, [r11]
728
+
729
+ @ smear xmm7
730
+ vext.8 q1, q4, q7, #12 @ vpslldq $4, %xmm7, %xmm1
731
+ veor q7, q7, q1 @ vpxor %xmm1, %xmm7, %xmm7
732
+ vext.8 q4, q4, q7, #8 @ vpslldq $8, %xmm7, %xmm4
733
+
734
+ @ subbytes
735
+ vand q1, q0, q9 @ vpand %xmm9, %xmm0, %xmm1 # 0 = k
736
+ vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0 # 1 = i
737
+ veor q7, q7, q4 @ vpxor %xmm4, %xmm7, %xmm7
738
+ vtbl.8 d4, {q11}, d2 @ vpshufb %xmm1, %xmm11, %xmm2 # 2 = a/k
739
+ vtbl.8 d5, {q11}, d3
740
+ veor q1, q1, q0 @ vpxor %xmm0, %xmm1, %xmm1 # 0 = j
741
+ vtbl.8 d6, {q10}, d0 @ vpshufb %xmm0, %xmm10, %xmm3 # 3 = 1/i
742
+ vtbl.8 d7, {q10}, d1
743
+ veor q3, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3 # 3 = iak = 1/i + a/k
744
+ vtbl.8 d8, {q10}, d2 @ vpshufb %xmm1, %xmm10, %xmm4 # 4 = 1/j
745
+ vtbl.8 d9, {q10}, d3
746
+ veor q7, q7, q12 @ vpxor .Lk_s63(%rip), %xmm7, %xmm7
747
+ vtbl.8 d6, {q10}, d6 @ vpshufb %xmm3, %xmm10, %xmm3 # 2 = 1/iak
748
+ vtbl.8 d7, {q10}, d7
749
+ veor q4, q4, q2 @ vpxor %xmm2, %xmm4, %xmm4 # 4 = jak = 1/j + a/k
750
+ vtbl.8 d4, {q10}, d8 @ vpshufb %xmm4, %xmm10, %xmm2 # 3 = 1/jak
751
+ vtbl.8 d5, {q10}, d9
752
+ veor q3, q3, q1 @ vpxor %xmm1, %xmm3, %xmm3 # 2 = io
753
+ veor q2, q2, q0 @ vpxor %xmm0, %xmm2, %xmm2 # 3 = jo
754
+ vtbl.8 d8, {q15}, d6 @ vpshufb %xmm3, %xmm13, %xmm4 # 4 = sbou
755
+ vtbl.8 d9, {q15}, d7
756
+ vtbl.8 d2, {q14}, d4 @ vpshufb %xmm2, %xmm12, %xmm1 # 0 = sb1t
757
+ vtbl.8 d3, {q14}, d5
758
+ veor q1, q1, q4 @ vpxor %xmm4, %xmm1, %xmm1 # 0 = sbox output
759
+
760
+ @ add in smeared stuff
761
+ veor q0, q1, q7 @ vpxor %xmm7, %xmm1, %xmm0
762
+ veor q7, q1, q7 @ vmovdqa %xmm0, %xmm7
763
+ bx lr
764
+ .size _vpaes_schedule_round,.-_vpaes_schedule_round
765
+
766
+ @@
767
+ @@ .aes_schedule_transform
768
+ @@
769
+ @@ Linear-transform q0 according to tables at [r11]
770
+ @@
771
+ @@ Requires that q9 = 0x0F0F... as in preheat
772
+ @@ Output in q0
773
+ @@ Clobbers q1, q2, q14, q15
774
+ @@
775
+ .type _vpaes_schedule_transform,%function
776
+ .align 4
777
+ _vpaes_schedule_transform:
778
+ vld1.64 {q14,q15}, [r11] @ vmovdqa (%r11), %xmm2 # lo
779
+ @ vmovdqa 16(%r11), %xmm1 # hi
780
+ vand q1, q0, q9 @ vpand %xmm9, %xmm0, %xmm1
781
+ vshr.u8 q0, q0, #4 @ vpsrlb $4, %xmm0, %xmm0
782
+ vtbl.8 d4, {q14}, d2 @ vpshufb %xmm1, %xmm2, %xmm2
783
+ vtbl.8 d5, {q14}, d3
784
+ vtbl.8 d0, {q15}, d0 @ vpshufb %xmm0, %xmm1, %xmm0
785
+ vtbl.8 d1, {q15}, d1
786
+ veor q0, q0, q2 @ vpxor %xmm2, %xmm0, %xmm0
787
+ bx lr
788
+ .size _vpaes_schedule_transform,.-_vpaes_schedule_transform
789
+
790
+ @@
791
+ @@ .aes_schedule_mangle
792
+ @@
793
+ @@ Mangles q0 from (basis-transformed) standard version
794
+ @@ to our version.
795
+ @@
796
+ @@ On encrypt,
797
+ @@ xor with 0x63
798
+ @@ multiply by circulant 0,1,1,1
799
+ @@ apply shiftrows transform
800
+ @@
801
+ @@ On decrypt,
802
+ @@ xor with 0x63
803
+ @@ multiply by "inverse mixcolumns" circulant E,B,D,9
804
+ @@ deskew
805
+ @@ apply shiftrows transform
806
+ @@
807
+ @@
808
+ @@ Writes out to [r2], and increments or decrements it
809
+ @@ Keeps track of round number mod 4 in r8
810
+ @@ Preserves q0
811
+ @@ Clobbers q1-q5
812
+ @@
813
+ .type _vpaes_schedule_mangle,%function
814
+ .align 4
815
+ _vpaes_schedule_mangle:
816
+ tst r3, r3
817
+ vmov q4, q0 @ vmovdqa %xmm0, %xmm4 # save xmm0 for later
818
+ adr r11, .Lk_mc_forward @ Must be aligned to 8 mod 16.
819
+ vld1.64 {q5}, [r11] @ vmovdqa .Lk_mc_forward(%rip),%xmm5
820
+ bne .Lschedule_mangle_dec
821
+
822
+ @ encrypting
823
+ @ Write to q2 so we do not overlap table and destination below.
824
+ veor q2, q0, q12 @ vpxor .Lk_s63(%rip), %xmm0, %xmm4
825
+ add r2, r2, #16 @ add $16, %rdx
826
+ vtbl.8 d8, {q2}, d10 @ vpshufb %xmm5, %xmm4, %xmm4
827
+ vtbl.8 d9, {q2}, d11
828
+ vtbl.8 d2, {q4}, d10 @ vpshufb %xmm5, %xmm4, %xmm1
829
+ vtbl.8 d3, {q4}, d11
830
+ vtbl.8 d6, {q1}, d10 @ vpshufb %xmm5, %xmm1, %xmm3
831
+ vtbl.8 d7, {q1}, d11
832
+ veor q4, q4, q1 @ vpxor %xmm1, %xmm4, %xmm4
833
+ vld1.64 {q1}, [r8] @ vmovdqa (%r8,%r10), %xmm1
834
+ veor q3, q3, q4 @ vpxor %xmm4, %xmm3, %xmm3
835
+
836
+ b .Lschedule_mangle_both
837
+ .align 4
838
+ .Lschedule_mangle_dec:
839
+ @ inverse mix columns
840
+ adr r11, .Lk_dksd @ lea .Lk_dksd(%rip),%r11
841
+ vshr.u8 q1, q4, #4 @ vpsrlb $4, %xmm4, %xmm1 # 1 = hi
842
+ vand q4, q4, q9 @ vpand %xmm9, %xmm4, %xmm4 # 4 = lo
843
+
844
+ vld1.64 {q14,q15}, [r11]! @ vmovdqa 0x00(%r11), %xmm2
845
+ @ vmovdqa 0x10(%r11), %xmm3
846
+ vtbl.8 d4, {q14}, d8 @ vpshufb %xmm4, %xmm2, %xmm2
847
+ vtbl.8 d5, {q14}, d9
848
+ vtbl.8 d6, {q15}, d2 @ vpshufb %xmm1, %xmm3, %xmm3
849
+ vtbl.8 d7, {q15}, d3
850
+ @ Load .Lk_dksb ahead of time.
851
+ vld1.64 {q14,q15}, [r11]! @ vmovdqa 0x20(%r11), %xmm2
852
+ @ vmovdqa 0x30(%r11), %xmm3
853
+ @ Write to q13 so we do not overlap table and destination.
854
+ veor q13, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3
855
+ vtbl.8 d6, {q13}, d10 @ vpshufb %xmm5, %xmm3, %xmm3
856
+ vtbl.8 d7, {q13}, d11
857
+
858
+ vtbl.8 d4, {q14}, d8 @ vpshufb %xmm4, %xmm2, %xmm2
859
+ vtbl.8 d5, {q14}, d9
860
+ veor q2, q2, q3 @ vpxor %xmm3, %xmm2, %xmm2
861
+ vtbl.8 d6, {q15}, d2 @ vpshufb %xmm1, %xmm3, %xmm3
862
+ vtbl.8 d7, {q15}, d3
863
+ @ Load .Lk_dkse ahead of time.
864
+ vld1.64 {q14,q15}, [r11]! @ vmovdqa 0x40(%r11), %xmm2
865
+ @ vmovdqa 0x50(%r11), %xmm3
866
+ @ Write to q13 so we do not overlap table and destination.
867
+ veor q13, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3
868
+ vtbl.8 d6, {q13}, d10 @ vpshufb %xmm5, %xmm3, %xmm3
869
+ vtbl.8 d7, {q13}, d11
870
+
871
+ vtbl.8 d4, {q14}, d8 @ vpshufb %xmm4, %xmm2, %xmm2
872
+ vtbl.8 d5, {q14}, d9
873
+ veor q2, q2, q3 @ vpxor %xmm3, %xmm2, %xmm2
874
+ vtbl.8 d6, {q15}, d2 @ vpshufb %xmm1, %xmm3, %xmm3
875
+ vtbl.8 d7, {q15}, d3
876
+ @ Load .Lk_dkse ahead of time.
877
+ vld1.64 {q14,q15}, [r11]! @ vmovdqa 0x60(%r11), %xmm2
878
+ @ vmovdqa 0x70(%r11), %xmm4
879
+ @ Write to q13 so we do not overlap table and destination.
880
+ veor q13, q3, q2 @ vpxor %xmm2, %xmm3, %xmm3
881
+
882
+ vtbl.8 d4, {q14}, d8 @ vpshufb %xmm4, %xmm2, %xmm2
883
+ vtbl.8 d5, {q14}, d9
884
+ vtbl.8 d6, {q13}, d10 @ vpshufb %xmm5, %xmm3, %xmm3
885
+ vtbl.8 d7, {q13}, d11
886
+ vtbl.8 d8, {q15}, d2 @ vpshufb %xmm1, %xmm4, %xmm4
887
+ vtbl.8 d9, {q15}, d3
888
+ vld1.64 {q1}, [r8] @ vmovdqa (%r8,%r10), %xmm1
889
+ veor q2, q2, q3 @ vpxor %xmm3, %xmm2, %xmm2
890
+ veor q3, q4, q2 @ vpxor %xmm2, %xmm4, %xmm3
891
+
892
+ sub r2, r2, #16 @ add $-16, %rdx
893
+
894
+ .Lschedule_mangle_both:
895
+ @ Write to q2 so table and destination do not overlap.
896
+ vtbl.8 d4, {q3}, d2 @ vpshufb %xmm1, %xmm3, %xmm3
897
+ vtbl.8 d5, {q3}, d3
898
+ add r8, r8, #64-16 @ add $-16, %r8
899
+ and r8, r8, #~(1<<6) @ and $0x30, %r8
900
+ vst1.64 {q2}, [r2] @ vmovdqu %xmm3, (%rdx)
901
+ bx lr
902
+ .size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle
903
+
904
+ .globl vpaes_set_encrypt_key
905
+ .hidden vpaes_set_encrypt_key
906
+ .type vpaes_set_encrypt_key,%function
907
+ .align 4
908
+ vpaes_set_encrypt_key:
909
+ stmdb sp!, {r7,r8,r9,r10,r11, lr}
910
+ vstmdb sp!, {d8,d9,d10,d11,d12,d13,d14,d15}
911
+
912
+ lsr r9, r1, #5 @ shr $5,%eax
913
+ add r9, r9, #5 @ $5,%eax
914
+ str r9, [r2,#240] @ mov %eax,240(%rdx) # AES_KEY->rounds = nbits/32+5;
915
+
916
+ mov r3, #0 @ mov $0,%ecx
917
+ mov r8, #0x30 @ mov $0x30,%r8d
918
+ bl _vpaes_schedule_core
919
+ eor r0, r0, r0
920
+
921
+ vldmia sp!, {d8,d9,d10,d11,d12,d13,d14,d15}
922
+ ldmia sp!, {r7,r8,r9,r10,r11, pc} @ return
923
+ .size vpaes_set_encrypt_key,.-vpaes_set_encrypt_key
924
+
925
+ .globl vpaes_set_decrypt_key
926
+ .hidden vpaes_set_decrypt_key
927
+ .type vpaes_set_decrypt_key,%function
928
+ .align 4
929
+ vpaes_set_decrypt_key:
930
+ stmdb sp!, {r7,r8,r9,r10,r11, lr}
931
+ vstmdb sp!, {d8,d9,d10,d11,d12,d13,d14,d15}
932
+
933
+ lsr r9, r1, #5 @ shr $5,%eax
934
+ add r9, r9, #5 @ $5,%eax
935
+ str r9, [r2,#240] @ mov %eax,240(%rdx) # AES_KEY->rounds = nbits/32+5;
936
+ lsl r9, r9, #4 @ shl $4,%eax
937
+ add r2, r2, #16 @ lea 16(%rdx,%rax),%rdx
938
+ add r2, r2, r9
939
+
940
+ mov r3, #1 @ mov $1,%ecx
941
+ lsr r8, r1, #1 @ shr $1,%r8d
942
+ and r8, r8, #32 @ and $32,%r8d
943
+ eor r8, r8, #32 @ xor $32,%r8d # nbits==192?0:32
944
+ bl _vpaes_schedule_core
945
+
946
+ vldmia sp!, {d8,d9,d10,d11,d12,d13,d14,d15}
947
+ ldmia sp!, {r7,r8,r9,r10,r11, pc} @ return
948
+ .size vpaes_set_decrypt_key,.-vpaes_set_decrypt_key
949
+
950
+ @ Additional constants for converting to bsaes.
951
+ .type _vpaes_convert_consts,%object
952
+ .align 4
953
+ _vpaes_convert_consts:
954
+ @ .Lk_opt_then_skew applies skew(opt(x)) XOR 0x63, where skew is the linear
955
+ @ transform in the AES S-box. 0x63 is incorporated into the low half of the
956
+ @ table. This was computed with the following script:
957
+ @
958
+ @ def u64s_to_u128(x, y):
959
+ @ return x | (y << 64)
960
+ @ def u128_to_u64s(w):
961
+ @ return w & ((1<<64)-1), w >> 64
962
+ @ def get_byte(w, i):
963
+ @ return (w >> (i*8)) & 0xff
964
+ @ def apply_table(table, b):
965
+ @ lo = b & 0xf
966
+ @ hi = b >> 4
967
+ @ return get_byte(table[0], lo) ^ get_byte(table[1], hi)
968
+ @ def opt(b):
969
+ @ table = [
970
+ @ u64s_to_u128(0xFF9F4929D6B66000, 0xF7974121DEBE6808),
971
+ @ u64s_to_u128(0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0),
972
+ @ ]
973
+ @ return apply_table(table, b)
974
+ @ def rot_byte(b, n):
975
+ @ return 0xff & ((b << n) | (b >> (8-n)))
976
+ @ def skew(x):
977
+ @ return (x ^ rot_byte(x, 1) ^ rot_byte(x, 2) ^ rot_byte(x, 3) ^
978
+ @ rot_byte(x, 4))
979
+ @ table = [0, 0]
980
+ @ for i in range(16):
981
+ @ table[0] |= (skew(opt(i)) ^ 0x63) << (i*8)
982
+ @ table[1] |= skew(opt(i<<4)) << (i*8)
983
+ @ print(" .quad 0x%016x, 0x%016x" % u128_to_u64s(table[0]))
984
+ @ print(" .quad 0x%016x, 0x%016x" % u128_to_u64s(table[1]))
985
+ .Lk_opt_then_skew:
986
+ .quad 0x9cb8436798bc4763, 0x6440bb9f6044bf9b
987
+ .quad 0x1f30062936192f00, 0xb49bad829db284ab
988
+
989
+ @ .Lk_decrypt_transform is a permutation which performs an 8-bit left-rotation
990
+ @ followed by a byte-swap on each 32-bit word of a vector. E.g., 0x11223344
991
+ @ becomes 0x22334411 and then 0x11443322.
992
+ .Lk_decrypt_transform:
993
+ .quad 0x0704050603000102, 0x0f0c0d0e0b08090a
994
+ .size _vpaes_convert_consts,.-_vpaes_convert_consts
995
+
996
+ @ void vpaes_encrypt_key_to_bsaes(AES_KEY *bsaes, const AES_KEY *vpaes);
997
+ .globl vpaes_encrypt_key_to_bsaes
998
+ .hidden vpaes_encrypt_key_to_bsaes
999
+ .type vpaes_encrypt_key_to_bsaes,%function
1000
+ .align 4
1001
+ vpaes_encrypt_key_to_bsaes:
1002
+ stmdb sp!, {r11, lr}
1003
+
1004
+ @ See _vpaes_schedule_core for the key schedule logic. In particular,
1005
+ @ _vpaes_schedule_transform(.Lk_ipt) (section 2.2 of the paper),
1006
+ @ _vpaes_schedule_mangle (section 4.3), and .Lschedule_mangle_last
1007
+ @ contain the transformations not in the bsaes representation. This
1008
+ @ function inverts those transforms.
1009
+ @
1010
+ @ Note also that bsaes-armv7.pl expects aes-armv4.pl's key
1011
+ @ representation, which does not match the other aes_nohw_*
1012
+ @ implementations. The ARM aes_nohw_* stores each 32-bit word
1013
+ @ byteswapped, as a convenience for (unsupported) big-endian ARM, at the
1014
+ @ cost of extra REV and VREV32 operations in little-endian ARM.
1015
+
1016
+ vmov.i8 q9, #0x0f @ Required by _vpaes_schedule_transform
1017
+ adr r2, .Lk_mc_forward @ Must be aligned to 8 mod 16.
1018
+ add r3, r2, 0x90 @ .Lk_sr+0x10-.Lk_mc_forward = 0x90 (Apple's toolchain doesn't support the expression)
1019
+
1020
+ vld1.64 {q12}, [r2]
1021
+ vmov.i8 q10, #0x5b @ .Lk_s63 from vpaes-x86_64
1022
+ adr r11, .Lk_opt @ Must be aligned to 8 mod 16.
1023
+ vmov.i8 q11, #0x63 @ .LK_s63 without .Lk_ipt applied
1024
+
1025
+ @ vpaes stores one fewer round count than bsaes, but the number of keys
1026
+ @ is the same.
1027
+ ldr r2, [r1,#240]
1028
+ add r2, r2, #1
1029
+ str r2, [r0,#240]
1030
+
1031
+ @ The first key is transformed with _vpaes_schedule_transform(.Lk_ipt).
1032
+ @ Invert this with .Lk_opt.
1033
+ vld1.64 {q0}, [r1]!
1034
+ bl _vpaes_schedule_transform
1035
+ vrev32.8 q0, q0
1036
+ vst1.64 {q0}, [r0]!
1037
+
1038
+ @ The middle keys have _vpaes_schedule_transform(.Lk_ipt) applied,
1039
+ @ followed by _vpaes_schedule_mangle. _vpaes_schedule_mangle XORs 0x63,
1040
+ @ multiplies by the circulant 0,1,1,1, then applies ShiftRows.
1041
+ .Loop_enc_key_to_bsaes:
1042
+ vld1.64 {q0}, [r1]!
1043
+
1044
+ @ Invert the ShiftRows step (see .Lschedule_mangle_both). Note we cycle
1045
+ @ r3 in the opposite direction and start at .Lk_sr+0x10 instead of 0x30.
1046
+ @ We use r3 rather than r8 to avoid a callee-saved register.
1047
+ vld1.64 {q1}, [r3]
1048
+ vtbl.8 d4, {q0}, d2
1049
+ vtbl.8 d5, {q0}, d3
1050
+ add r3, r3, #16
1051
+ and r3, r3, #~(1<<6)
1052
+ vmov q0, q2
1053
+
1054
+ @ Handle the last key differently.
1055
+ subs r2, r2, #1
1056
+ beq .Loop_enc_key_to_bsaes_last
1057
+
1058
+ @ Multiply by the circulant. This is its own inverse.
1059
+ vtbl.8 d2, {q0}, d24
1060
+ vtbl.8 d3, {q0}, d25
1061
+ vmov q0, q1
1062
+ vtbl.8 d4, {q1}, d24
1063
+ vtbl.8 d5, {q1}, d25
1064
+ veor q0, q0, q2
1065
+ vtbl.8 d2, {q2}, d24
1066
+ vtbl.8 d3, {q2}, d25
1067
+ veor q0, q0, q1
1068
+
1069
+ @ XOR and finish.
1070
+ veor q0, q0, q10
1071
+ bl _vpaes_schedule_transform
1072
+ vrev32.8 q0, q0
1073
+ vst1.64 {q0}, [r0]!
1074
+ b .Loop_enc_key_to_bsaes
1075
+
1076
+ .Loop_enc_key_to_bsaes_last:
1077
+ @ The final key does not have a basis transform (note
1078
+ @ .Lschedule_mangle_last inverts the original transform). It only XORs
1079
+ @ 0x63 and applies ShiftRows. The latter was already inverted in the
1080
+ @ loop. Note that, because we act on the original representation, we use
1081
+ @ q11, not q10.
1082
+ veor q0, q0, q11
1083
+ vrev32.8 q0, q0
1084
+ vst1.64 {q0}, [r0]
1085
+
1086
+ @ Wipe registers which contained key material.
1087
+ veor q0, q0, q0
1088
+ veor q1, q1, q1
1089
+ veor q2, q2, q2
1090
+
1091
+ ldmia sp!, {r11, pc} @ return
1092
+ .size vpaes_encrypt_key_to_bsaes,.-vpaes_encrypt_key_to_bsaes
1093
+
1094
+ @ void vpaes_decrypt_key_to_bsaes(AES_KEY *vpaes, const AES_KEY *bsaes);
1095
+ .globl vpaes_decrypt_key_to_bsaes
1096
+ .hidden vpaes_decrypt_key_to_bsaes
1097
+ .type vpaes_decrypt_key_to_bsaes,%function
1098
+ .align 4
1099
+ vpaes_decrypt_key_to_bsaes:
1100
+ stmdb sp!, {r11, lr}
1101
+
1102
+ @ See _vpaes_schedule_core for the key schedule logic. Note vpaes
1103
+ @ computes the decryption key schedule in reverse. Additionally,
1104
+ @ aes-x86_64.pl shares some transformations, so we must only partially
1105
+ @ invert vpaes's transformations. In general, vpaes computes in a
1106
+ @ different basis (.Lk_ipt and .Lk_opt) and applies the inverses of
1107
+ @ MixColumns, ShiftRows, and the affine part of the AES S-box (which is
1108
+ @ split into a linear skew and XOR of 0x63). We undo all but MixColumns.
1109
+ @
1110
+ @ Note also that bsaes-armv7.pl expects aes-armv4.pl's key
1111
+ @ representation, which does not match the other aes_nohw_*
1112
+ @ implementations. The ARM aes_nohw_* stores each 32-bit word
1113
+ @ byteswapped, as a convenience for (unsupported) big-endian ARM, at the
1114
+ @ cost of extra REV and VREV32 operations in little-endian ARM.
1115
+
1116
+ adr r2, .Lk_decrypt_transform
1117
+ adr r3, .Lk_sr+0x30
1118
+ adr r11, .Lk_opt_then_skew @ Input to _vpaes_schedule_transform.
1119
+ vld1.64 {q12}, [r2] @ Reuse q12 from encryption.
1120
+ vmov.i8 q9, #0x0f @ Required by _vpaes_schedule_transform
1121
+
1122
+ @ vpaes stores one fewer round count than bsaes, but the number of keys
1123
+ @ is the same.
1124
+ ldr r2, [r1,#240]
1125
+ add r2, r2, #1
1126
+ str r2, [r0,#240]
1127
+
1128
+ @ Undo the basis change and reapply the S-box affine transform. See
1129
+ @ .Lschedule_mangle_last.
1130
+ vld1.64 {q0}, [r1]!
1131
+ bl _vpaes_schedule_transform
1132
+ vrev32.8 q0, q0
1133
+ vst1.64 {q0}, [r0]!
1134
+
1135
+ @ See _vpaes_schedule_mangle for the transform on the middle keys. Note
1136
+ @ it simultaneously inverts MixColumns and the S-box affine transform.
1137
+ @ See .Lk_dksd through .Lk_dks9.
1138
+ .Loop_dec_key_to_bsaes:
1139
+ vld1.64 {q0}, [r1]!
1140
+
1141
+ @ Invert the ShiftRows step (see .Lschedule_mangle_both). Note going
1142
+ @ forwards cancels inverting for which direction we cycle r3. We use r3
1143
+ @ rather than r8 to avoid a callee-saved register.
1144
+ vld1.64 {q1}, [r3]
1145
+ vtbl.8 d4, {q0}, d2
1146
+ vtbl.8 d5, {q0}, d3
1147
+ add r3, r3, #64-16
1148
+ and r3, r3, #~(1<<6)
1149
+ vmov q0, q2
1150
+
1151
+ @ Handle the last key differently.
1152
+ subs r2, r2, #1
1153
+ beq .Loop_dec_key_to_bsaes_last
1154
+
1155
+ @ Undo the basis change and reapply the S-box affine transform.
1156
+ bl _vpaes_schedule_transform
1157
+
1158
+ @ Rotate each word by 8 bytes (cycle the rows) and then byte-swap. We
1159
+ @ combine the two operations in .Lk_decrypt_transform.
1160
+ @
1161
+ @ TODO(davidben): Where does the rotation come from?
1162
+ vtbl.8 d2, {q0}, d24
1163
+ vtbl.8 d3, {q0}, d25
1164
+
1165
+ vst1.64 {q1}, [r0]!
1166
+ b .Loop_dec_key_to_bsaes
1167
+
1168
+ .Loop_dec_key_to_bsaes_last:
1169
+ @ The final key only inverts ShiftRows (already done in the loop). See
1170
+ @ .Lschedule_am_decrypting. Its basis is not transformed.
1171
+ vrev32.8 q0, q0
1172
+ vst1.64 {q0}, [r0]!
1173
+
1174
+ @ Wipe registers which contained key material.
1175
+ veor q0, q0, q0
1176
+ veor q1, q1, q1
1177
+ veor q2, q2, q2
1178
+
1179
+ ldmia sp!, {r11, pc} @ return
1180
+ .size vpaes_decrypt_key_to_bsaes,.-vpaes_decrypt_key_to_bsaes
1181
+ .globl vpaes_ctr32_encrypt_blocks
1182
+ .hidden vpaes_ctr32_encrypt_blocks
1183
+ .type vpaes_ctr32_encrypt_blocks,%function
1184
+ .align 4
1185
+ vpaes_ctr32_encrypt_blocks:
1186
+ mov ip, sp
1187
+ stmdb sp!, {r7,r8,r9,r10,r11, lr}
1188
+ @ This function uses q4-q7 (d8-d15), which are callee-saved.
1189
+ vstmdb sp!, {d8,d9,d10,d11,d12,d13,d14,d15}
1190
+
1191
+ cmp r2, #0
1192
+ @ r8 is passed on the stack.
1193
+ ldr r8, [ip]
1194
+ beq .Lctr32_done
1195
+
1196
+ @ _vpaes_encrypt_core expects the key in r2, so swap r2 and r3.
1197
+ mov r9, r3
1198
+ mov r3, r2
1199
+ mov r2, r9
1200
+
1201
+ @ Load the IV and counter portion.
1202
+ ldr r7, [r8, #12]
1203
+ vld1.8 {q7}, [r8]
1204
+
1205
+ bl _vpaes_preheat
1206
+ rev r7, r7 @ The counter is big-endian.
1207
+
1208
+ .Lctr32_loop:
1209
+ vmov q0, q7
1210
+ vld1.8 {q6}, [r0]! @ .Load input ahead of time
1211
+ bl _vpaes_encrypt_core
1212
+ veor q0, q0, q6 @ XOR input and result
1213
+ vst1.8 {q0}, [r1]!
1214
+ subs r3, r3, #1
1215
+ @ Update the counter.
1216
+ add r7, r7, #1
1217
+ rev r9, r7
1218
+ vmov.32 d15[1], r9
1219
+ bne .Lctr32_loop
1220
+
1221
+ .Lctr32_done:
1222
+ vldmia sp!, {d8,d9,d10,d11,d12,d13,d14,d15}
1223
+ ldmia sp!, {r7,r8,r9,r10,r11, pc} @ return
1224
+ .size vpaes_ctr32_encrypt_blocks,.-vpaes_ctr32_encrypt_blocks
1225
+ #endif // !OPENSSL_NO_ASM && defined(OPENSSL_ARM) && defined(__ELF__)