visaljs 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1007) hide show
  1. package/cli.js +393 -62
  2. package/node/include/js_node.h +28 -5
  3. package/node/include/js_uv.h +36 -0
  4. package/node/prelude/crypto.js +7 -10
  5. package/node/prelude/dns.js +99 -0
  6. package/node/prelude/dns_promises.js +10 -0
  7. package/node/prelude/http.js +1039 -195
  8. package/node/prelude/internal/crypto/asym.js +39 -12
  9. package/node/prelude/internal/crypto/dh_groups.js +12 -0
  10. package/node/prelude/internal/crypto/diffiehellman.js +354 -0
  11. package/node/prelude/internal/crypto/hash.js +1 -1
  12. package/node/prelude/internal/crypto/key_type.js +3 -0
  13. package/node/prelude/internal/crypto/keys.js +39 -9
  14. package/node/prelude/internal/http_agent.js +249 -0
  15. package/node/prelude/internal/net.js +33 -0
  16. package/node/prelude/internal/socketaddress.js +249 -0
  17. package/node/prelude/internal/tls/common.js +306 -0
  18. package/node/prelude/internal/tls/wrap.js +1217 -0
  19. package/node/prelude/internal/tls/x509.js +394 -0
  20. package/node/prelude/net.js +1083 -50
  21. package/node/prelude/stream.js +6 -0
  22. package/node/prelude/tls.js +141 -0
  23. package/node/prelude/util.js +5 -2
  24. package/node/prelude/util_types.js +85 -0
  25. package/node/src/host_http.c +268 -270
  26. package/node/src/host_loop.c +84 -0
  27. package/node/src/host_net.c +495 -0
  28. package/node/src/host_sys.c +16 -0
  29. package/package.json +1 -1
  30. package/runtime/include/js_builtins.h +16 -0
  31. package/runtime/include/js_console.h +2 -0
  32. package/runtime/include/js_core.def +23 -0
  33. package/runtime/include/js_crypto.h +23 -0
  34. package/runtime/include/js_generator.h +2 -3
  35. package/runtime/include/js_promise.h +0 -2
  36. package/runtime/src/async_iter.c +4 -1
  37. package/runtime/src/boringssl_support.cc +34 -0
  38. package/runtime/src/builtin_table.c +8 -0
  39. package/runtime/src/components.c +10 -0
  40. package/runtime/src/console.c +6 -18
  41. package/runtime/src/core_all.c +1 -0
  42. package/runtime/src/crypto_asym.c +450 -241
  43. package/runtime/src/crypto_bn.c +91 -0
  44. package/runtime/src/crypto_cipher.c +153 -75
  45. package/runtime/src/crypto_hash.c +68 -53
  46. package/runtime/src/crypto_internal.h +55 -26
  47. package/runtime/src/crypto_pkey.c +198 -61
  48. package/runtime/src/crypto_subtle.c +42 -16
  49. package/runtime/src/crypto_tls.c +678 -0
  50. package/runtime/src/generator.c +8 -1
  51. package/runtime/src/global.c +2 -4
  52. package/runtime/src/internal.h +0 -1
  53. package/runtime/src/jobs.c +2 -1
  54. package/runtime/src/promise.c +4 -1
  55. package/runtime/src/tls_roots.gen.h +3215 -0
  56. package/runtime/src/util_types.c +52 -0
  57. package/runtime/src/weak.c +2 -1
  58. package/runtime/third_party/boringssl/LICENSE +238 -0
  59. package/runtime/third_party/boringssl/README.md +46 -0
  60. package/runtime/third_party/boringssl/VERSION +1 -0
  61. package/runtime/third_party/boringssl/crypto/aes/aes.cc +44 -0
  62. package/runtime/third_party/boringssl/crypto/armv8_feature_parsing.h +67 -0
  63. package/runtime/third_party/boringssl/crypto/asn1/a_bitstr.cc +297 -0
  64. package/runtime/third_party/boringssl/crypto/asn1/a_bool.cc +50 -0
  65. package/runtime/third_party/boringssl/crypto/asn1/a_d2i_fp.cc +47 -0
  66. package/runtime/third_party/boringssl/crypto/asn1/a_dup.cc +42 -0
  67. package/runtime/third_party/boringssl/crypto/asn1/a_gentm.cc +130 -0
  68. package/runtime/third_party/boringssl/crypto/asn1/a_i2d_fp.cc +44 -0
  69. package/runtime/third_party/boringssl/crypto/asn1/a_int.cc +467 -0
  70. package/runtime/third_party/boringssl/crypto/asn1/a_mbstr.cc +242 -0
  71. package/runtime/third_party/boringssl/crypto/asn1/a_object.cc +191 -0
  72. package/runtime/third_party/boringssl/crypto/asn1/a_octet.cc +32 -0
  73. package/runtime/third_party/boringssl/crypto/asn1/a_strex.cc +411 -0
  74. package/runtime/third_party/boringssl/crypto/asn1/a_strnid.cc +208 -0
  75. package/runtime/third_party/boringssl/crypto/asn1/a_time.cc +248 -0
  76. package/runtime/third_party/boringssl/crypto/asn1/a_type.cc +467 -0
  77. package/runtime/third_party/boringssl/crypto/asn1/a_utctm.cc +128 -0
  78. package/runtime/third_party/boringssl/crypto/asn1/asn1_lib.cc +453 -0
  79. package/runtime/third_party/boringssl/crypto/asn1/asn1_par.cc +61 -0
  80. package/runtime/third_party/boringssl/crypto/asn1/asn_pack.cc +56 -0
  81. package/runtime/third_party/boringssl/crypto/asn1/f_int.cc +63 -0
  82. package/runtime/third_party/boringssl/crypto/asn1/f_string.cc +52 -0
  83. package/runtime/third_party/boringssl/crypto/asn1/internal.h +430 -0
  84. package/runtime/third_party/boringssl/crypto/asn1/posix_time.cc +244 -0
  85. package/runtime/third_party/boringssl/crypto/asn1/tasn_dec.cc +611 -0
  86. package/runtime/third_party/boringssl/crypto/asn1/tasn_enc.cc +348 -0
  87. package/runtime/third_party/boringssl/crypto/asn1/tasn_fre.cc +163 -0
  88. package/runtime/third_party/boringssl/crypto/asn1/tasn_new.cc +274 -0
  89. package/runtime/third_party/boringssl/crypto/asn1/tasn_typ.cc +92 -0
  90. package/runtime/third_party/boringssl/crypto/asn1/tasn_utl.cc +218 -0
  91. package/runtime/third_party/boringssl/crypto/base64/base64.cc +433 -0
  92. package/runtime/third_party/boringssl/crypto/bcm_support.h +62 -0
  93. package/runtime/third_party/boringssl/crypto/bio/bio.cc +715 -0
  94. package/runtime/third_party/boringssl/crypto/bio/bio_mem.cc +260 -0
  95. package/runtime/third_party/boringssl/crypto/bio/connect.cc +463 -0
  96. package/runtime/third_party/boringssl/crypto/bio/errno.cc +52 -0
  97. package/runtime/third_party/boringssl/crypto/bio/fd.cc +193 -0
  98. package/runtime/third_party/boringssl/crypto/bio/file.cc +283 -0
  99. package/runtime/third_party/boringssl/crypto/bio/hexdump.cc +154 -0
  100. package/runtime/third_party/boringssl/crypto/bio/internal.h +128 -0
  101. package/runtime/third_party/boringssl/crypto/bio/pair.cc +426 -0
  102. package/runtime/third_party/boringssl/crypto/bio/printf.cc +59 -0
  103. package/runtime/third_party/boringssl/crypto/bio/socket.cc +210 -0
  104. package/runtime/third_party/boringssl/crypto/bio/socket_helper.cc +179 -0
  105. package/runtime/third_party/boringssl/crypto/blake2/blake2.cc +173 -0
  106. package/runtime/third_party/boringssl/crypto/bn/bn_asn1.cc +57 -0
  107. package/runtime/third_party/boringssl/crypto/bn/convert.cc +409 -0
  108. package/runtime/third_party/boringssl/crypto/bn/div.cc +102 -0
  109. package/runtime/third_party/boringssl/crypto/bn/exponentiation.cc +168 -0
  110. package/runtime/third_party/boringssl/crypto/bn/sqrt.cc +93 -0
  111. package/runtime/third_party/boringssl/crypto/buf/buf.cc +119 -0
  112. package/runtime/third_party/boringssl/crypto/bytestring/asn1_compat.cc +54 -0
  113. package/runtime/third_party/boringssl/crypto/bytestring/ber.cc +268 -0
  114. package/runtime/third_party/boringssl/crypto/bytestring/cbb.cc +787 -0
  115. package/runtime/third_party/boringssl/crypto/bytestring/cbs.cc +977 -0
  116. package/runtime/third_party/boringssl/crypto/bytestring/internal.h +134 -0
  117. package/runtime/third_party/boringssl/crypto/bytestring/unicode.cc +156 -0
  118. package/runtime/third_party/boringssl/crypto/chacha/chacha.cc +226 -0
  119. package/runtime/third_party/boringssl/crypto/chacha/internal.h +103 -0
  120. package/runtime/third_party/boringssl/crypto/cipher/derive_key.cc +106 -0
  121. package/runtime/third_party/boringssl/crypto/cipher/e_aesctrhmac.cc +294 -0
  122. package/runtime/third_party/boringssl/crypto/cipher/e_aeseax.cc +351 -0
  123. package/runtime/third_party/boringssl/crypto/cipher/e_aesgcmsiv.cc +918 -0
  124. package/runtime/third_party/boringssl/crypto/cipher/e_chacha20poly1305.cc +404 -0
  125. package/runtime/third_party/boringssl/crypto/cipher/e_des.cc +214 -0
  126. package/runtime/third_party/boringssl/crypto/cipher/e_null.cc +55 -0
  127. package/runtime/third_party/boringssl/crypto/cipher/e_rc2.cc +432 -0
  128. package/runtime/third_party/boringssl/crypto/cipher/e_rc4.cc +56 -0
  129. package/runtime/third_party/boringssl/crypto/cipher/e_tls.cc +615 -0
  130. package/runtime/third_party/boringssl/crypto/cipher/get_cipher.cc +85 -0
  131. package/runtime/third_party/boringssl/crypto/cipher/internal.h +399 -0
  132. package/runtime/third_party/boringssl/crypto/cipher/tls_cbc.cc +476 -0
  133. package/runtime/third_party/boringssl/crypto/cms/cms.cc +178 -0
  134. package/runtime/third_party/boringssl/crypto/conf/conf.cc +637 -0
  135. package/runtime/third_party/boringssl/crypto/conf/internal.h +54 -0
  136. package/runtime/third_party/boringssl/crypto/cpu_aarch64_apple.cc +76 -0
  137. package/runtime/third_party/boringssl/crypto/cpu_aarch64_fuchsia.cc +58 -0
  138. package/runtime/third_party/boringssl/crypto/cpu_aarch64_linux.cc +66 -0
  139. package/runtime/third_party/boringssl/crypto/cpu_aarch64_openbsd.cc +45 -0
  140. package/runtime/third_party/boringssl/crypto/cpu_aarch64_sysreg.cc +66 -0
  141. package/runtime/third_party/boringssl/crypto/cpu_aarch64_win.cc +52 -0
  142. package/runtime/third_party/boringssl/crypto/cpu_arm_freebsd.cc +55 -0
  143. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.cc +173 -0
  144. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.h +141 -0
  145. package/runtime/third_party/boringssl/crypto/cpu_intel.cc +287 -0
  146. package/runtime/third_party/boringssl/crypto/crypto.cc +152 -0
  147. package/runtime/third_party/boringssl/crypto/curve25519/asm/x25519-asm-arm.S +2124 -0
  148. package/runtime/third_party/boringssl/crypto/curve25519/cpace.cc +227 -0
  149. package/runtime/third_party/boringssl/crypto/curve25519/curve25519.cc +2436 -0
  150. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_64_adx.cc +18 -0
  151. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_tables.h +3264 -0
  152. package/runtime/third_party/boringssl/crypto/curve25519/internal.h +202 -0
  153. package/runtime/third_party/boringssl/crypto/curve25519/spake25519.cc +532 -0
  154. package/runtime/third_party/boringssl/crypto/des/des.cc +837 -0
  155. package/runtime/third_party/boringssl/crypto/des/internal.h +144 -0
  156. package/runtime/third_party/boringssl/crypto/dh/dh_asn1.cc +109 -0
  157. package/runtime/third_party/boringssl/crypto/dh/params.cc +411 -0
  158. package/runtime/third_party/boringssl/crypto/digest/digest_extra.cc +361 -0
  159. package/runtime/third_party/boringssl/crypto/dsa/dsa.cc +922 -0
  160. package/runtime/third_party/boringssl/crypto/dsa/dsa_asn1.cc +306 -0
  161. package/runtime/third_party/boringssl/crypto/dsa/internal.h +56 -0
  162. package/runtime/third_party/boringssl/crypto/ec/ec_asn1.cc +542 -0
  163. package/runtime/third_party/boringssl/crypto/ec/ec_derive.cc +94 -0
  164. package/runtime/third_party/boringssl/crypto/ec/hash_to_curve.cc +773 -0
  165. package/runtime/third_party/boringssl/crypto/ec/internal.h +114 -0
  166. package/runtime/third_party/boringssl/crypto/ecdh/ecdh.cc +75 -0
  167. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.cc +337 -0
  168. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_p1363.cc +54 -0
  169. package/runtime/third_party/boringssl/crypto/engine/engine.cc +95 -0
  170. package/runtime/third_party/boringssl/crypto/err/err.cc +820 -0
  171. package/runtime/third_party/boringssl/crypto/err/internal.h +45 -0
  172. package/runtime/third_party/boringssl/crypto/evp/evp.cc +454 -0
  173. package/runtime/third_party/boringssl/crypto/evp/evp_asn1.cc +439 -0
  174. package/runtime/third_party/boringssl/crypto/evp/evp_ctx.cc +541 -0
  175. package/runtime/third_party/boringssl/crypto/evp/evp_kem.cc +101 -0
  176. package/runtime/third_party/boringssl/crypto/evp/internal.h +427 -0
  177. package/runtime/third_party/boringssl/crypto/evp/p_dh.cc +326 -0
  178. package/runtime/third_party/boringssl/crypto/evp/p_dsa.cc +333 -0
  179. package/runtime/third_party/boringssl/crypto/evp/p_ec.cc +736 -0
  180. package/runtime/third_party/boringssl/crypto/evp/p_ed25519.cc +359 -0
  181. package/runtime/third_party/boringssl/crypto/evp/p_hkdf.cc +204 -0
  182. package/runtime/third_party/boringssl/crypto/evp/p_mldsa.cc +549 -0
  183. package/runtime/third_party/boringssl/crypto/evp/p_mlkem.cc +510 -0
  184. package/runtime/third_party/boringssl/crypto/evp/p_rsa.cc +1185 -0
  185. package/runtime/third_party/boringssl/crypto/evp/p_x25519.cc +371 -0
  186. package/runtime/third_party/boringssl/crypto/evp/p_xwing.cc +300 -0
  187. package/runtime/third_party/boringssl/crypto/evp/pbkdf.cc +105 -0
  188. package/runtime/third_party/boringssl/crypto/evp/print.cc +287 -0
  189. package/runtime/third_party/boringssl/crypto/evp/scrypt.cc +218 -0
  190. package/runtime/third_party/boringssl/crypto/evp/sign.cc +95 -0
  191. package/runtime/third_party/boringssl/crypto/ex_data.cc +140 -0
  192. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes.cc.inc +208 -0
  193. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes_nohw.cc.inc +1279 -0
  194. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cbc.cc.inc +132 -0
  195. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cfb.cc.inc +168 -0
  196. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ctr.cc.inc +102 -0
  197. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm.cc.inc +614 -0
  198. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm_nohw.cc.inc +304 -0
  199. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/internal.h +590 -0
  200. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/key_wrap.cc.inc +211 -0
  201. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.cc.inc +97 -0
  202. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ofb.cc.inc +55 -0
  203. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm.cc +288 -0
  204. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm_interface.h +953 -0
  205. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/add.cc.inc +276 -0
  206. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +573 -0
  207. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bn.cc.inc +377 -0
  208. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bytes.cc.inc +230 -0
  209. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/cmp.cc.inc +161 -0
  210. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/ctx.cc.inc +127 -0
  211. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div.cc.inc +738 -0
  212. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div_extra.cc.inc +90 -0
  213. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.cc.inc +743 -0
  214. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd.cc.inc +281 -0
  215. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd_extra.cc.inc +327 -0
  216. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/generic.cc.inc +579 -0
  217. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/internal.h +810 -0
  218. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/jacobi.cc.inc +101 -0
  219. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery.cc.inc +408 -0
  220. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery_inv.cc.inc +179 -0
  221. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/mul.cc.inc +347 -0
  222. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/prime.cc.inc +931 -0
  223. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/random.cc.inc +261 -0
  224. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.cc.inc +144 -0
  225. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.h +109 -0
  226. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/shift.cc.inc +317 -0
  227. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/sqrt.cc.inc +370 -0
  228. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/aead.cc.inc +619 -0
  229. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/cipher.cc.inc +837 -0
  230. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.cc.inc +1240 -0
  231. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aesccm.cc.inc +440 -0
  232. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/internal.h +461 -0
  233. package/runtime/third_party/boringssl/crypto/fipsmodule/cmac/cmac.cc.inc +293 -0
  234. package/runtime/third_party/boringssl/crypto/fipsmodule/delocate.h +95 -0
  235. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/check.cc.inc +198 -0
  236. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/dh.cc.inc +401 -0
  237. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/internal.h +63 -0
  238. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digest.cc.inc +221 -0
  239. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digests.cc.inc +184 -0
  240. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/internal.h +72 -0
  241. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/md32_common.h +166 -0
  242. package/runtime/third_party/boringssl/crypto/fipsmodule/digestsign/digestsign.cc.inc +230 -0
  243. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/builtin_curves.h +277 -0
  244. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec.cc.inc +1024 -0
  245. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_key.cc.inc +536 -0
  246. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.cc.inc +379 -0
  247. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/felem.cc.inc +250 -0
  248. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/internal.h +752 -0
  249. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/oct.cc.inc +174 -0
  250. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz-table.h +9502 -0
  251. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.cc.inc +740 -0
  252. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.h +207 -0
  253. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256.cc.inc +578 -0
  254. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256_table.h +297 -0
  255. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/scalar.cc.inc +184 -0
  256. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple.cc.inc +246 -0
  257. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.cc.inc +274 -0
  258. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/util.cc.inc +258 -0
  259. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/wnaf.cc.inc +224 -0
  260. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdh/ecdh.cc.inc +91 -0
  261. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +288 -0
  262. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/internal.h +57 -0
  263. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/internal.h +38 -0
  264. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/jitter.cc.inc +487 -0
  265. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/sha512.cc.inc +329 -0
  266. package/runtime/third_party/boringssl/crypto/fipsmodule/fips_shared_support.cc +28 -0
  267. package/runtime/third_party/boringssl/crypto/fipsmodule/hkdf/hkdf.cc.inc +114 -0
  268. package/runtime/third_party/boringssl/crypto/fipsmodule/hmac/hmac.cc.inc +218 -0
  269. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/internal.h +165 -0
  270. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/keccak.cc.inc +647 -0
  271. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/fips_known_values.inc +1345 -0
  272. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/mldsa.cc.inc +3323 -0
  273. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/fips_known_values.inc +411 -0
  274. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/mlkem.cc.inc +1856 -0
  275. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/android_entropy_client.cc.inc +82 -0
  276. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/ctrdrbg.cc.inc +401 -0
  277. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/internal.h +99 -0
  278. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/rand.cc.inc +486 -0
  279. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/internal.h +167 -0
  280. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/padding.cc.inc +371 -0
  281. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa.cc.inc +996 -0
  282. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.cc.inc +1000 -0
  283. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/fips.cc.inc +129 -0
  284. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/self_check.cc.inc +1093 -0
  285. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/internal.h +112 -0
  286. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +330 -0
  287. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/internal.h +205 -0
  288. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha1.cc.inc +404 -0
  289. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha256.cc.inc +315 -0
  290. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha512.cc.inc +473 -0
  291. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/address.h +144 -0
  292. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fips_known_values.inc +674 -0
  293. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.cc.inc +179 -0
  294. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.h +48 -0
  295. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.cc.inc +164 -0
  296. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.h +58 -0
  297. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/params.h +178 -0
  298. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +690 -0
  299. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.cc.inc +326 -0
  300. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.h +71 -0
  301. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.cc.inc +172 -0
  302. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.h +40 -0
  303. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/internal.h +33 -0
  304. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/kdf.cc.inc +180 -0
  305. package/runtime/third_party/boringssl/crypto/fuzzer_mode.cc +30 -0
  306. package/runtime/third_party/boringssl/crypto/hpke/hpke.cc +1514 -0
  307. package/runtime/third_party/boringssl/crypto/hrss/asm/poly_rq_mul.S +8489 -0
  308. package/runtime/third_party/boringssl/crypto/hrss/hrss.cc +2189 -0
  309. package/runtime/third_party/boringssl/crypto/hrss/internal.h +64 -0
  310. package/runtime/third_party/boringssl/crypto/internal.h +1767 -0
  311. package/runtime/third_party/boringssl/crypto/lhash/internal.h +222 -0
  312. package/runtime/third_party/boringssl/crypto/lhash/lhash.cc +312 -0
  313. package/runtime/third_party/boringssl/crypto/md4/md4.cc +207 -0
  314. package/runtime/third_party/boringssl/crypto/md5/internal.h +34 -0
  315. package/runtime/third_party/boringssl/crypto/md5/md5.cc +255 -0
  316. package/runtime/third_party/boringssl/crypto/mem.cc +577 -0
  317. package/runtime/third_party/boringssl/crypto/mem_internal.h +706 -0
  318. package/runtime/third_party/boringssl/crypto/mldsa/mldsa.cc +296 -0
  319. package/runtime/third_party/boringssl/crypto/mlkem/mlkem.cc +108 -0
  320. package/runtime/third_party/boringssl/crypto/obj/obj.cc +494 -0
  321. package/runtime/third_party/boringssl/crypto/obj/obj_dat.h +11722 -0
  322. package/runtime/third_party/boringssl/crypto/obj/obj_xref.cc +83 -0
  323. package/runtime/third_party/boringssl/crypto/params_internal.h +30 -0
  324. package/runtime/third_party/boringssl/crypto/pem/internal.h +135 -0
  325. package/runtime/third_party/boringssl/crypto/pem/pem_all.cc +153 -0
  326. package/runtime/third_party/boringssl/crypto/pem/pem_info.cc +250 -0
  327. package/runtime/third_party/boringssl/crypto/pem/pem_lib.cc +707 -0
  328. package/runtime/third_party/boringssl/crypto/pem/pem_oth.cc +45 -0
  329. package/runtime/third_party/boringssl/crypto/pem/pem_pk8.cc +211 -0
  330. package/runtime/third_party/boringssl/crypto/pem/pem_pkey.cc +147 -0
  331. package/runtime/third_party/boringssl/crypto/pem/pem_x509.cc +25 -0
  332. package/runtime/third_party/boringssl/crypto/pem/pem_xaux.cc +25 -0
  333. package/runtime/third_party/boringssl/crypto/pkcs7/internal.h +67 -0
  334. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7.cc +198 -0
  335. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7_x509.cc +527 -0
  336. package/runtime/third_party/boringssl/crypto/pkcs8/internal.h +98 -0
  337. package/runtime/third_party/boringssl/crypto/pkcs8/p5_pbev2.cc +286 -0
  338. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8.cc +473 -0
  339. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8_x509.cc +1328 -0
  340. package/runtime/third_party/boringssl/crypto/poly1305/internal.h +54 -0
  341. package/runtime/third_party/boringssl/crypto/poly1305/poly1305.cc +315 -0
  342. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm.cc +294 -0
  343. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm_asm.S +2017 -0
  344. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_vec.cc +853 -0
  345. package/runtime/third_party/boringssl/crypto/pool/internal.h +95 -0
  346. package/runtime/third_party/boringssl/crypto/pool/pool.cc +282 -0
  347. package/runtime/third_party/boringssl/crypto/rand/deterministic.cc +58 -0
  348. package/runtime/third_party/boringssl/crypto/rand/fork_detect.cc +222 -0
  349. package/runtime/third_party/boringssl/crypto/rand/forkunsafe.cc +44 -0
  350. package/runtime/third_party/boringssl/crypto/rand/getentropy.cc +53 -0
  351. package/runtime/third_party/boringssl/crypto/rand/internal.h +67 -0
  352. package/runtime/third_party/boringssl/crypto/rand/ios.cc +35 -0
  353. package/runtime/third_party/boringssl/crypto/rand/rand.cc +79 -0
  354. package/runtime/third_party/boringssl/crypto/rand/trusty.cc +39 -0
  355. package/runtime/third_party/boringssl/crypto/rand/urandom.cc +149 -0
  356. package/runtime/third_party/boringssl/crypto/rand/windows.cc +91 -0
  357. package/runtime/third_party/boringssl/crypto/rc4/rc4.cc +56 -0
  358. package/runtime/third_party/boringssl/crypto/refcount.cc +49 -0
  359. package/runtime/third_party/boringssl/crypto/rsa/internal.h +51 -0
  360. package/runtime/third_party/boringssl/crypto/rsa/rsa_asn1.cc +404 -0
  361. package/runtime/third_party/boringssl/crypto/rsa/rsa_crypt.cc +530 -0
  362. package/runtime/third_party/boringssl/crypto/rsa/rsa_extra.cc +30 -0
  363. package/runtime/third_party/boringssl/crypto/rsa/rsa_print.cc +25 -0
  364. package/runtime/third_party/boringssl/crypto/sha/sha1.cc +55 -0
  365. package/runtime/third_party/boringssl/crypto/sha/sha256.cc +89 -0
  366. package/runtime/third_party/boringssl/crypto/sha/sha512.cc +106 -0
  367. package/runtime/third_party/boringssl/crypto/siphash/siphash.cc +81 -0
  368. package/runtime/third_party/boringssl/crypto/slhdsa/slhdsa.cc +167 -0
  369. package/runtime/third_party/boringssl/crypto/spake2plus/internal.h +204 -0
  370. package/runtime/third_party/boringssl/crypto/spake2plus/spake2plus.cc +501 -0
  371. package/runtime/third_party/boringssl/crypto/stack/stack.cc +462 -0
  372. package/runtime/third_party/boringssl/crypto/thread.cc +68 -0
  373. package/runtime/third_party/boringssl/crypto/thread_none.cc +48 -0
  374. package/runtime/third_party/boringssl/crypto/thread_pthread.cc +138 -0
  375. package/runtime/third_party/boringssl/crypto/thread_win.cc +227 -0
  376. package/runtime/third_party/boringssl/crypto/trust_token/internal.h +405 -0
  377. package/runtime/third_party/boringssl/crypto/trust_token/pmbtoken.cc +1672 -0
  378. package/runtime/third_party/boringssl/crypto/trust_token/trust_token.cc +701 -0
  379. package/runtime/third_party/boringssl/crypto/trust_token/voprf.cc +1266 -0
  380. package/runtime/third_party/boringssl/crypto/x509/a_digest.cc +52 -0
  381. package/runtime/third_party/boringssl/crypto/x509/a_sign.cc +100 -0
  382. package/runtime/third_party/boringssl/crypto/x509/a_verify.cc +77 -0
  383. package/runtime/third_party/boringssl/crypto/x509/algorithm.cc +167 -0
  384. package/runtime/third_party/boringssl/crypto/x509/asn1_gen.cc +540 -0
  385. package/runtime/third_party/boringssl/crypto/x509/by_dir.cc +301 -0
  386. package/runtime/third_party/boringssl/crypto/x509/by_file.cc +226 -0
  387. package/runtime/third_party/boringssl/crypto/x509/i2d_pr.cc +37 -0
  388. package/runtime/third_party/boringssl/crypto/x509/internal.h +697 -0
  389. package/runtime/third_party/boringssl/crypto/x509/name_print.cc +187 -0
  390. package/runtime/third_party/boringssl/crypto/x509/policy.cc +686 -0
  391. package/runtime/third_party/boringssl/crypto/x509/rsa_pss.cc +187 -0
  392. package/runtime/third_party/boringssl/crypto/x509/t_crl.cc +106 -0
  393. package/runtime/third_party/boringssl/crypto/x509/t_req.cc +206 -0
  394. package/runtime/third_party/boringssl/crypto/x509/t_x509.cc +292 -0
  395. package/runtime/third_party/boringssl/crypto/x509/t_x509a.cc +81 -0
  396. package/runtime/third_party/boringssl/crypto/x509/v3_akey.cc +174 -0
  397. package/runtime/third_party/boringssl/crypto/x509/v3_akeya.cc +31 -0
  398. package/runtime/third_party/boringssl/crypto/x509/v3_alt.cc +636 -0
  399. package/runtime/third_party/boringssl/crypto/x509/v3_bcons.cc +96 -0
  400. package/runtime/third_party/boringssl/crypto/x509/v3_bitst.cc +100 -0
  401. package/runtime/third_party/boringssl/crypto/x509/v3_conf.cc +369 -0
  402. package/runtime/third_party/boringssl/crypto/x509/v3_cpols.cc +417 -0
  403. package/runtime/third_party/boringssl/crypto/x509/v3_crld.cc +471 -0
  404. package/runtime/third_party/boringssl/crypto/x509/v3_enum.cc +74 -0
  405. package/runtime/third_party/boringssl/crypto/x509/v3_extku.cc +97 -0
  406. package/runtime/third_party/boringssl/crypto/x509/v3_genn.cc +238 -0
  407. package/runtime/third_party/boringssl/crypto/x509/v3_ia5.cc +83 -0
  408. package/runtime/third_party/boringssl/crypto/x509/v3_info.cc +162 -0
  409. package/runtime/third_party/boringssl/crypto/x509/v3_int.cc +83 -0
  410. package/runtime/third_party/boringssl/crypto/x509/v3_lib.cc +349 -0
  411. package/runtime/third_party/boringssl/crypto/x509/v3_ncons.cc +798 -0
  412. package/runtime/third_party/boringssl/crypto/x509/v3_ocsp.cc +92 -0
  413. package/runtime/third_party/boringssl/crypto/x509/v3_pcons.cc +102 -0
  414. package/runtime/third_party/boringssl/crypto/x509/v3_pmaps.cc +110 -0
  415. package/runtime/third_party/boringssl/crypto/x509/v3_prn.cc +183 -0
  416. package/runtime/third_party/boringssl/crypto/x509/v3_purp.cc +580 -0
  417. package/runtime/third_party/boringssl/crypto/x509/v3_skey.cc +128 -0
  418. package/runtime/third_party/boringssl/crypto/x509/v3_utl.cc +1311 -0
  419. package/runtime/third_party/boringssl/crypto/x509/x509.cc +47 -0
  420. package/runtime/third_party/boringssl/crypto/x509/x509_att.cc +188 -0
  421. package/runtime/third_party/boringssl/crypto/x509/x509_cmp.cc +243 -0
  422. package/runtime/third_party/boringssl/crypto/x509/x509_d2.cc +66 -0
  423. package/runtime/third_party/boringssl/crypto/x509/x509_def.cc +42 -0
  424. package/runtime/third_party/boringssl/crypto/x509/x509_ext.cc +161 -0
  425. package/runtime/third_party/boringssl/crypto/x509/x509_lu.cc +570 -0
  426. package/runtime/third_party/boringssl/crypto/x509/x509_mtc.cc +598 -0
  427. package/runtime/third_party/boringssl/crypto/x509/x509_obj.cc +169 -0
  428. package/runtime/third_party/boringssl/crypto/x509/x509_req.cc +248 -0
  429. package/runtime/third_party/boringssl/crypto/x509/x509_set.cc +166 -0
  430. package/runtime/third_party/boringssl/crypto/x509/x509_trs.cc +123 -0
  431. package/runtime/third_party/boringssl/crypto/x509/x509_txt.cc +147 -0
  432. package/runtime/third_party/boringssl/crypto/x509/x509_v3.cc +249 -0
  433. package/runtime/third_party/boringssl/crypto/x509/x509_vfy.cc +1531 -0
  434. package/runtime/third_party/boringssl/crypto/x509/x509_vpm.cc +449 -0
  435. package/runtime/third_party/boringssl/crypto/x509/x509cset.cc +222 -0
  436. package/runtime/third_party/boringssl/crypto/x509/x509name.cc +377 -0
  437. package/runtime/third_party/boringssl/crypto/x509/x509rset.cc +55 -0
  438. package/runtime/third_party/boringssl/crypto/x509/x509spki.cc +91 -0
  439. package/runtime/third_party/boringssl/crypto/x509/x_algor.cc +223 -0
  440. package/runtime/third_party/boringssl/crypto/x509/x_all.cc +352 -0
  441. package/runtime/third_party/boringssl/crypto/x509/x_attrib.cc +61 -0
  442. package/runtime/third_party/boringssl/crypto/x509/x_crl.cc +325 -0
  443. package/runtime/third_party/boringssl/crypto/x509/x_exten.cc +42 -0
  444. package/runtime/third_party/boringssl/crypto/x509/x_name.cc +407 -0
  445. package/runtime/third_party/boringssl/crypto/x509/x_pubkey.cc +199 -0
  446. package/runtime/third_party/boringssl/crypto/x509/x_req.cc +80 -0
  447. package/runtime/third_party/boringssl/crypto/x509/x_sig.cc +51 -0
  448. package/runtime/third_party/boringssl/crypto/x509/x_spki.cc +44 -0
  449. package/runtime/third_party/boringssl/crypto/x509/x_x509.cc +495 -0
  450. package/runtime/third_party/boringssl/crypto/x509/x_x509a.cc +169 -0
  451. package/runtime/third_party/boringssl/crypto/xwing/xwing.cc +257 -0
  452. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-apple.S +1326 -0
  453. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-linux.S +1327 -0
  454. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-apple.S +1252 -0
  455. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-linux.S +1253 -0
  456. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-apple.S +873 -0
  457. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-linux.S +885 -0
  458. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-apple.S +2490 -0
  459. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-linux.S +2530 -0
  460. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-apple.S +2413 -0
  461. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-linux.S +2397 -0
  462. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv7-linux.S +784 -0
  463. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-apple.S +792 -0
  464. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-linux.S +786 -0
  465. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-win.S +798 -0
  466. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-apple.S +2912 -0
  467. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-linux.S +2907 -0
  468. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-win.S +2915 -0
  469. package/runtime/third_party/boringssl/gen/bcm/armv4-mont-linux.S +932 -0
  470. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-apple.S +1440 -0
  471. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-linux.S +1440 -0
  472. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-win.S +1446 -0
  473. package/runtime/third_party/boringssl/gen/bcm/bn-586-apple.S +530 -0
  474. package/runtime/third_party/boringssl/gen/bcm/bn-586-linux.S +540 -0
  475. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-apple.S +88 -0
  476. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-linux.S +87 -0
  477. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-win.S +87 -0
  478. package/runtime/third_party/boringssl/gen/bcm/bsaes-armv7-linux.S +1520 -0
  479. package/runtime/third_party/boringssl/gen/bcm/co-586-apple.S +1256 -0
  480. package/runtime/third_party/boringssl/gen/bcm/co-586-linux.S +1264 -0
  481. package/runtime/third_party/boringssl/gen/bcm/ghash-armv4-linux.S +242 -0
  482. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-apple.S +337 -0
  483. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-linux.S +335 -0
  484. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-win.S +341 -0
  485. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-apple.S +288 -0
  486. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-linux.S +292 -0
  487. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-apple.S +426 -0
  488. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-linux.S +425 -0
  489. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-apple.S +322 -0
  490. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-linux.S +328 -0
  491. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-apple.S +1134 -0
  492. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-linux.S +1129 -0
  493. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv7-linux.S +244 -0
  494. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-apple.S +567 -0
  495. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-linux.S +563 -0
  496. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-win.S +571 -0
  497. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-apple.S +1744 -0
  498. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-linux.S +1725 -0
  499. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-win.S +1765 -0
  500. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-apple.S +4544 -0
  501. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-linux.S +4600 -0
  502. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-apple.S +310 -0
  503. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-linux.S +310 -0
  504. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-win.S +310 -0
  505. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-apple.S +321 -0
  506. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-linux.S +335 -0
  507. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-apple.S +58 -0
  508. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-linux.S +57 -0
  509. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-apple.S +1756 -0
  510. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-linux.S +1751 -0
  511. package/runtime/third_party/boringssl/gen/bcm/sha1-586-apple.S +3782 -0
  512. package/runtime/third_party/boringssl/gen/bcm/sha1-586-linux.S +3788 -0
  513. package/runtime/third_party/boringssl/gen/bcm/sha1-armv4-large-linux.S +1479 -0
  514. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-apple.S +1219 -0
  515. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-linux.S +1218 -0
  516. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-win.S +1222 -0
  517. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-apple.S +5454 -0
  518. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-linux.S +5450 -0
  519. package/runtime/third_party/boringssl/gen/bcm/sha256-586-apple.S +5593 -0
  520. package/runtime/third_party/boringssl/gen/bcm/sha256-586-linux.S +5599 -0
  521. package/runtime/third_party/boringssl/gen/bcm/sha256-armv4-linux.S +2840 -0
  522. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-apple.S +1195 -0
  523. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-linux.S +1194 -0
  524. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-win.S +1198 -0
  525. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-apple.S +4173 -0
  526. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-linux.S +4170 -0
  527. package/runtime/third_party/boringssl/gen/bcm/sha512-586-apple.S +2406 -0
  528. package/runtime/third_party/boringssl/gen/bcm/sha512-586-linux.S +2410 -0
  529. package/runtime/third_party/boringssl/gen/bcm/sha512-armv4-linux.S +1857 -0
  530. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-apple.S +1598 -0
  531. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-linux.S +1597 -0
  532. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-win.S +1601 -0
  533. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-apple.S +2979 -0
  534. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-linux.S +2978 -0
  535. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv7-linux.S +1225 -0
  536. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-apple.S +1238 -0
  537. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-linux.S +1220 -0
  538. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-win.S +1256 -0
  539. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-apple.S +680 -0
  540. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-linux.S +706 -0
  541. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-apple.S +1146 -0
  542. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-linux.S +1133 -0
  543. package/runtime/third_party/boringssl/gen/bcm/x86-mont-apple.S +216 -0
  544. package/runtime/third_party/boringssl/gen/bcm/x86-mont-linux.S +218 -0
  545. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-apple.S +1238 -0
  546. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-linux.S +1237 -0
  547. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-apple.S +3644 -0
  548. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-linux.S +3628 -0
  549. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_64_win_asm.inc +325 -0
  550. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_win_asm.inc +325 -0
  551. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-apple.S +3113 -0
  552. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-linux.S +3091 -0
  553. package/runtime/third_party/boringssl/gen/crypto/chacha-armv4-linux.S +1450 -0
  554. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-apple.S +1969 -0
  555. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-linux.S +1967 -0
  556. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-win.S +1973 -0
  557. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-apple.S +957 -0
  558. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-linux.S +961 -0
  559. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-apple.S +1608 -0
  560. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-linux.S +1611 -0
  561. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-apple.S +3010 -0
  562. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-linux.S +3008 -0
  563. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-win.S +3014 -0
  564. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-apple.S +8903 -0
  565. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-linux.S +8940 -0
  566. package/runtime/third_party/boringssl/gen/crypto/err_data.cc +1578 -0
  567. package/runtime/third_party/boringssl/gen/crypto/md5-586-apple.S +684 -0
  568. package/runtime/third_party/boringssl/gen/crypto/md5-586-linux.S +686 -0
  569. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-apple.S +690 -0
  570. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-linux.S +695 -0
  571. package/runtime/third_party/boringssl/include/openssl/aead.h +650 -0
  572. package/runtime/third_party/boringssl/include/openssl/aes.h +173 -0
  573. package/runtime/third_party/boringssl/include/openssl/arm_arch.h +24 -0
  574. package/runtime/third_party/boringssl/include/openssl/asm_base.h +219 -0
  575. package/runtime/third_party/boringssl/include/openssl/asn1.h +2002 -0
  576. package/runtime/third_party/boringssl/include/openssl/asn1_mac.h +18 -0
  577. package/runtime/third_party/boringssl/include/openssl/asn1t.h +584 -0
  578. package/runtime/third_party/boringssl/include/openssl/base.h +548 -0
  579. package/runtime/third_party/boringssl/include/openssl/base64.h +156 -0
  580. package/runtime/third_party/boringssl/include/openssl/bio.h +1061 -0
  581. package/runtime/third_party/boringssl/include/openssl/blake2.h +63 -0
  582. package/runtime/third_party/boringssl/include/openssl/blowfish.h +58 -0
  583. package/runtime/third_party/boringssl/include/openssl/bn.h +986 -0
  584. package/runtime/third_party/boringssl/include/openssl/buf.h +95 -0
  585. package/runtime/third_party/boringssl/include/openssl/buffer.h +18 -0
  586. package/runtime/third_party/boringssl/include/openssl/bytestring.h +798 -0
  587. package/runtime/third_party/boringssl/include/openssl/cast.h +91 -0
  588. package/runtime/third_party/boringssl/include/openssl/chacha.h +47 -0
  589. package/runtime/third_party/boringssl/include/openssl/cipher.h +819 -0
  590. package/runtime/third_party/boringssl/include/openssl/cmac.h +91 -0
  591. package/runtime/third_party/boringssl/include/openssl/cms.h +147 -0
  592. package/runtime/third_party/boringssl/include/openssl/conf.h +136 -0
  593. package/runtime/third_party/boringssl/include/openssl/configuration.h +18 -0
  594. package/runtime/third_party/boringssl/include/openssl/cpu.h +18 -0
  595. package/runtime/third_party/boringssl/include/openssl/crypto.h +235 -0
  596. package/runtime/third_party/boringssl/include/openssl/ctrdrbg.h +116 -0
  597. package/runtime/third_party/boringssl/include/openssl/curve25519.h +309 -0
  598. package/runtime/third_party/boringssl/include/openssl/des.h +134 -0
  599. package/runtime/third_party/boringssl/include/openssl/dh.h +336 -0
  600. package/runtime/third_party/boringssl/include/openssl/digest.h +399 -0
  601. package/runtime/third_party/boringssl/include/openssl/dsa.h +392 -0
  602. package/runtime/third_party/boringssl/include/openssl/dtls1.h +16 -0
  603. package/runtime/third_party/boringssl/include/openssl/e_os2.h +18 -0
  604. package/runtime/third_party/boringssl/include/openssl/ec.h +530 -0
  605. package/runtime/third_party/boringssl/include/openssl/ec_key.h +358 -0
  606. package/runtime/third_party/boringssl/include/openssl/ecdh.h +67 -0
  607. package/runtime/third_party/boringssl/include/openssl/ecdsa.h +242 -0
  608. package/runtime/third_party/boringssl/include/openssl/engine.h +109 -0
  609. package/runtime/third_party/boringssl/include/openssl/err.h +416 -0
  610. package/runtime/third_party/boringssl/include/openssl/evp.h +1645 -0
  611. package/runtime/third_party/boringssl/include/openssl/evp_errors.h +66 -0
  612. package/runtime/third_party/boringssl/include/openssl/ex_data.h +117 -0
  613. package/runtime/third_party/boringssl/include/openssl/hkdf.h +68 -0
  614. package/runtime/third_party/boringssl/include/openssl/hmac.h +151 -0
  615. package/runtime/third_party/boringssl/include/openssl/hpke.h +456 -0
  616. package/runtime/third_party/boringssl/include/openssl/hrss.h +108 -0
  617. package/runtime/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  618. package/runtime/third_party/boringssl/include/openssl/kdf.h +92 -0
  619. package/runtime/third_party/boringssl/include/openssl/lhash.h +18 -0
  620. package/runtime/third_party/boringssl/include/openssl/md4.h +73 -0
  621. package/runtime/third_party/boringssl/include/openssl/md5.h +67 -0
  622. package/runtime/third_party/boringssl/include/openssl/mem.h +215 -0
  623. package/runtime/third_party/boringssl/include/openssl/mldsa.h +486 -0
  624. package/runtime/third_party/boringssl/include/openssl/mlkem.h +222 -0
  625. package/runtime/third_party/boringssl/include/openssl/nid.h +5561 -0
  626. package/runtime/third_party/boringssl/include/openssl/obj.h +225 -0
  627. package/runtime/third_party/boringssl/include/openssl/obj_mac.h +18 -0
  628. package/runtime/third_party/boringssl/include/openssl/objects.h +18 -0
  629. package/runtime/third_party/boringssl/include/openssl/opensslconf.h +108 -0
  630. package/runtime/third_party/boringssl/include/openssl/opensslv.h +18 -0
  631. package/runtime/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
  632. package/runtime/third_party/boringssl/include/openssl/params.h +42 -0
  633. package/runtime/third_party/boringssl/include/openssl/pem.h +769 -0
  634. package/runtime/third_party/boringssl/include/openssl/pkcs12.h +18 -0
  635. package/runtime/third_party/boringssl/include/openssl/pkcs7.h +239 -0
  636. package/runtime/third_party/boringssl/include/openssl/pkcs8.h +267 -0
  637. package/runtime/third_party/boringssl/include/openssl/poly1305.h +52 -0
  638. package/runtime/third_party/boringssl/include/openssl/pool.h +137 -0
  639. package/runtime/third_party/boringssl/include/openssl/posix_time.h +51 -0
  640. package/runtime/third_party/boringssl/include/openssl/prefix_symbols.h +8000 -0
  641. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_S.h +633 -0
  642. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_c.h +329 -0
  643. package/runtime/third_party/boringssl/include/openssl/rand.h +138 -0
  644. package/runtime/third_party/boringssl/include/openssl/rc4.h +54 -0
  645. package/runtime/third_party/boringssl/include/openssl/ripemd.h +71 -0
  646. package/runtime/third_party/boringssl/include/openssl/rsa.h +893 -0
  647. package/runtime/third_party/boringssl/include/openssl/safestack.h +16 -0
  648. package/runtime/third_party/boringssl/include/openssl/service_indicator.h +19 -0
  649. package/runtime/third_party/boringssl/include/openssl/sha.h +108 -0
  650. package/runtime/third_party/boringssl/include/openssl/sha2.h +201 -0
  651. package/runtime/third_party/boringssl/include/openssl/siphash.h +37 -0
  652. package/runtime/third_party/boringssl/include/openssl/slhdsa.h +250 -0
  653. package/runtime/third_party/boringssl/include/openssl/span.h +376 -0
  654. package/runtime/third_party/boringssl/include/openssl/srtp.h +18 -0
  655. package/runtime/third_party/boringssl/include/openssl/ssl.h +7211 -0
  656. package/runtime/third_party/boringssl/include/openssl/ssl3.h +171 -0
  657. package/runtime/third_party/boringssl/include/openssl/stack.h +688 -0
  658. package/runtime/third_party/boringssl/include/openssl/target.h +246 -0
  659. package/runtime/third_party/boringssl/include/openssl/thread.h +114 -0
  660. package/runtime/third_party/boringssl/include/openssl/time.h +22 -0
  661. package/runtime/third_party/boringssl/include/openssl/tls1.h +263 -0
  662. package/runtime/third_party/boringssl/include/openssl/tls_prf.h +47 -0
  663. package/runtime/third_party/boringssl/include/openssl/trust_token.h +349 -0
  664. package/runtime/third_party/boringssl/include/openssl/type_check.h +37 -0
  665. package/runtime/third_party/boringssl/include/openssl/types.h +18 -0
  666. package/runtime/third_party/boringssl/include/openssl/x509.h +5404 -0
  667. package/runtime/third_party/boringssl/include/openssl/x509_vfy.h +18 -0
  668. package/runtime/third_party/boringssl/include/openssl/x509v3.h +63 -0
  669. package/runtime/third_party/boringssl/include/openssl/x509v3_errors.h +84 -0
  670. package/runtime/third_party/boringssl/include/openssl/xwing.h +115 -0
  671. package/runtime/third_party/boringssl/sources.json +696 -0
  672. package/runtime/third_party/boringssl/ssl/bio_ssl.cc +196 -0
  673. package/runtime/third_party/boringssl/ssl/d1_both.cc +1137 -0
  674. package/runtime/third_party/boringssl/ssl/d1_lib.cc +245 -0
  675. package/runtime/third_party/boringssl/ssl/d1_pkt.cc +322 -0
  676. package/runtime/third_party/boringssl/ssl/d1_srtp.cc +128 -0
  677. package/runtime/third_party/boringssl/ssl/dtls_method.cc +216 -0
  678. package/runtime/third_party/boringssl/ssl/dtls_record.cc +586 -0
  679. package/runtime/third_party/boringssl/ssl/encrypted_client_hello.cc +1110 -0
  680. package/runtime/third_party/boringssl/ssl/extensions.cc +5368 -0
  681. package/runtime/third_party/boringssl/ssl/handoff.cc +625 -0
  682. package/runtime/third_party/boringssl/ssl/handshake.cc +694 -0
  683. package/runtime/third_party/boringssl/ssl/handshake_client.cc +1958 -0
  684. package/runtime/third_party/boringssl/ssl/handshake_server.cc +1875 -0
  685. package/runtime/third_party/boringssl/ssl/internal.h +4506 -0
  686. package/runtime/third_party/boringssl/ssl/s3_both.cc +555 -0
  687. package/runtime/third_party/boringssl/ssl/s3_lib.cc +88 -0
  688. package/runtime/third_party/boringssl/ssl/s3_pkt.cc +396 -0
  689. package/runtime/third_party/boringssl/ssl/ssl_aead_ctx.cc +416 -0
  690. package/runtime/third_party/boringssl/ssl/ssl_asn1.cc +851 -0
  691. package/runtime/third_party/boringssl/ssl/ssl_buffer.cc +304 -0
  692. package/runtime/third_party/boringssl/ssl/ssl_cert.cc +723 -0
  693. package/runtime/third_party/boringssl/ssl/ssl_cipher.cc +1762 -0
  694. package/runtime/third_party/boringssl/ssl/ssl_credential.cc +913 -0
  695. package/runtime/third_party/boringssl/ssl/ssl_file.cc +375 -0
  696. package/runtime/third_party/boringssl/ssl/ssl_key_share.cc +445 -0
  697. package/runtime/third_party/boringssl/ssl/ssl_lib.cc +4132 -0
  698. package/runtime/third_party/boringssl/ssl/ssl_privkey.cc +973 -0
  699. package/runtime/third_party/boringssl/ssl/ssl_session.cc +1273 -0
  700. package/runtime/third_party/boringssl/ssl/ssl_stat.cc +162 -0
  701. package/runtime/third_party/boringssl/ssl/ssl_transcript.cc +224 -0
  702. package/runtime/third_party/boringssl/ssl/ssl_versions.cc +436 -0
  703. package/runtime/third_party/boringssl/ssl/ssl_x509.cc +1229 -0
  704. package/runtime/third_party/boringssl/ssl/t1_enc.cc +266 -0
  705. package/runtime/third_party/boringssl/ssl/tls13_both.cc +764 -0
  706. package/runtime/third_party/boringssl/ssl/tls13_client.cc +1325 -0
  707. package/runtime/third_party/boringssl/ssl/tls13_enc.cc +746 -0
  708. package/runtime/third_party/boringssl/ssl/tls13_server.cc +1623 -0
  709. package/runtime/third_party/boringssl/ssl/tls_method.cc +266 -0
  710. package/runtime/third_party/boringssl/ssl/tls_record.cc +524 -0
  711. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_mul.S +178 -0
  712. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_square.S +146 -0
  713. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_mul.S +177 -0
  714. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_sqr.S +166 -0
  715. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_bareminimum.c.inc +47 -0
  716. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_platform.c.inc +137 -0
  717. package/runtime/third_party/boringssl/third_party/fiat/curve25519_32.h +1571 -0
  718. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64.h +978 -0
  719. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_adx.h +700 -0
  720. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_msvc.h +1281 -0
  721. package/runtime/third_party/boringssl/third_party/fiat/p256_32.h +4760 -0
  722. package/runtime/third_party/boringssl/third_party/fiat/p256_64.h +1984 -0
  723. package/runtime/third_party/boringssl/third_party/fiat/p256_64_msvc.h +1939 -0
  724. package/runtime/third_party/boringssl/third_party/fiat/p256_field.c.inc +26 -0
  725. package/runtime/third_party/boringssl/third_party/fiat/p256_field_32.br.c.inc +71 -0
  726. package/runtime/third_party/boringssl/third_party/fiat/p256_field_64.br.c.inc +84 -0
  727. package/runtime/third_party/boringssl/third_party/fiat/p256_point.br.c.inc +112 -0
  728. package/runtime/third_party/v8-ieee754/README.md +2 -1
  729. package/runtime/third_party/v8-ieee754/convert.py +4 -0
  730. package/runtime/third_party/v8-ieee754/ieee754.c +1 -1
  731. package/runtime/third_party/bearssl/LICENSE.txt +0 -21
  732. package/runtime/third_party/bearssl/README.txt +0 -136
  733. package/runtime/third_party/bearssl/VERSION +0 -1
  734. package/runtime/third_party/bearssl/inc/bearssl.h +0 -183
  735. package/runtime/third_party/bearssl/inc/bearssl_aead.h +0 -1059
  736. package/runtime/third_party/bearssl/inc/bearssl_block.h +0 -2618
  737. package/runtime/third_party/bearssl/inc/bearssl_ec.h +0 -967
  738. package/runtime/third_party/bearssl/inc/bearssl_hash.h +0 -1346
  739. package/runtime/third_party/bearssl/inc/bearssl_hmac.h +0 -241
  740. package/runtime/third_party/bearssl/inc/bearssl_kdf.h +0 -284
  741. package/runtime/third_party/bearssl/inc/bearssl_pem.h +0 -294
  742. package/runtime/third_party/bearssl/inc/bearssl_prf.h +0 -150
  743. package/runtime/third_party/bearssl/inc/bearssl_rand.h +0 -397
  744. package/runtime/third_party/bearssl/inc/bearssl_rsa.h +0 -1655
  745. package/runtime/third_party/bearssl/inc/bearssl_ssl.h +0 -4296
  746. package/runtime/third_party/bearssl/inc/bearssl_x509.h +0 -1474
  747. package/runtime/third_party/bearssl/src/aead/ccm.c +0 -346
  748. package/runtime/third_party/bearssl/src/aead/eax.c +0 -525
  749. package/runtime/third_party/bearssl/src/aead/gcm.c +0 -318
  750. package/runtime/third_party/bearssl/src/codec/ccopy.c +0 -44
  751. package/runtime/third_party/bearssl/src/codec/dec16be.c +0 -38
  752. package/runtime/third_party/bearssl/src/codec/dec16le.c +0 -38
  753. package/runtime/third_party/bearssl/src/codec/dec32be.c +0 -38
  754. package/runtime/third_party/bearssl/src/codec/dec32le.c +0 -38
  755. package/runtime/third_party/bearssl/src/codec/dec64be.c +0 -38
  756. package/runtime/third_party/bearssl/src/codec/dec64le.c +0 -38
  757. package/runtime/third_party/bearssl/src/codec/enc16be.c +0 -38
  758. package/runtime/third_party/bearssl/src/codec/enc16le.c +0 -38
  759. package/runtime/third_party/bearssl/src/codec/enc32be.c +0 -38
  760. package/runtime/third_party/bearssl/src/codec/enc32le.c +0 -38
  761. package/runtime/third_party/bearssl/src/codec/enc64be.c +0 -38
  762. package/runtime/third_party/bearssl/src/codec/enc64le.c +0 -38
  763. package/runtime/third_party/bearssl/src/codec/pemdec.c +0 -526
  764. package/runtime/third_party/bearssl/src/codec/pemdec.t0 +0 -314
  765. package/runtime/third_party/bearssl/src/codec/pemenc.c +0 -173
  766. package/runtime/third_party/bearssl/src/config.h +0 -247
  767. package/runtime/third_party/bearssl/src/ec/ec_all_m15.c +0 -121
  768. package/runtime/third_party/bearssl/src/ec/ec_all_m31.c +0 -171
  769. package/runtime/third_party/bearssl/src/ec/ec_c25519_i15.c +0 -398
  770. package/runtime/third_party/bearssl/src/ec/ec_c25519_i31.c +0 -390
  771. package/runtime/third_party/bearssl/src/ec/ec_c25519_m15.c +0 -1478
  772. package/runtime/third_party/bearssl/src/ec/ec_c25519_m31.c +0 -800
  773. package/runtime/third_party/bearssl/src/ec/ec_c25519_m62.c +0 -605
  774. package/runtime/third_party/bearssl/src/ec/ec_c25519_m64.c +0 -831
  775. package/runtime/third_party/bearssl/src/ec/ec_curve25519.c +0 -46
  776. package/runtime/third_party/bearssl/src/ec/ec_default.c +0 -36
  777. package/runtime/third_party/bearssl/src/ec/ec_keygen.c +0 -86
  778. package/runtime/third_party/bearssl/src/ec/ec_p256_m15.c +0 -2124
  779. package/runtime/third_party/bearssl/src/ec/ec_p256_m31.c +0 -1469
  780. package/runtime/third_party/bearssl/src/ec/ec_p256_m62.c +0 -1765
  781. package/runtime/third_party/bearssl/src/ec/ec_p256_m64.c +0 -1781
  782. package/runtime/third_party/bearssl/src/ec/ec_prime_i15.c +0 -824
  783. package/runtime/third_party/bearssl/src/ec/ec_prime_i31.c +0 -826
  784. package/runtime/third_party/bearssl/src/ec/ec_pubkey.c +0 -85
  785. package/runtime/third_party/bearssl/src/ec/ec_secp256r1.c +0 -51
  786. package/runtime/third_party/bearssl/src/ec/ec_secp384r1.c +0 -57
  787. package/runtime/third_party/bearssl/src/ec/ec_secp521r1.c +0 -64
  788. package/runtime/third_party/bearssl/src/ec/ecdsa_atr.c +0 -134
  789. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_asn1.c +0 -36
  790. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_raw.c +0 -36
  791. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_asn1.c +0 -36
  792. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_raw.c +0 -36
  793. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_bits.c +0 -47
  794. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_asn1.c +0 -45
  795. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_raw.c +0 -174
  796. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_asn1.c +0 -48
  797. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_raw.c +0 -166
  798. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_bits.c +0 -47
  799. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_asn1.c +0 -45
  800. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_raw.c +0 -173
  801. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_asn1.c +0 -48
  802. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_raw.c +0 -165
  803. package/runtime/third_party/bearssl/src/ec/ecdsa_rta.c +0 -121
  804. package/runtime/third_party/bearssl/src/hash/dig_oid.c +0 -84
  805. package/runtime/third_party/bearssl/src/hash/dig_size.c +0 -50
  806. package/runtime/third_party/bearssl/src/hash/ghash_ctmul.c +0 -345
  807. package/runtime/third_party/bearssl/src/hash/ghash_ctmul32.c +0 -251
  808. package/runtime/third_party/bearssl/src/hash/ghash_ctmul64.c +0 -154
  809. package/runtime/third_party/bearssl/src/hash/ghash_pclmul.c +0 -389
  810. package/runtime/third_party/bearssl/src/hash/ghash_pwr8.c +0 -411
  811. package/runtime/third_party/bearssl/src/hash/md5.c +0 -208
  812. package/runtime/third_party/bearssl/src/hash/md5sha1.c +0 -141
  813. package/runtime/third_party/bearssl/src/hash/mgf1.c +0 -56
  814. package/runtime/third_party/bearssl/src/hash/multihash.c +0 -166
  815. package/runtime/third_party/bearssl/src/hash/sha1.c +0 -191
  816. package/runtime/third_party/bearssl/src/hash/sha2big.c +0 -285
  817. package/runtime/third_party/bearssl/src/hash/sha2small.c +0 -341
  818. package/runtime/third_party/bearssl/src/inner.h +0 -2577
  819. package/runtime/third_party/bearssl/src/int/i15_add.c +0 -46
  820. package/runtime/third_party/bearssl/src/int/i15_bitlen.c +0 -44
  821. package/runtime/third_party/bearssl/src/int/i15_decmod.c +0 -124
  822. package/runtime/third_party/bearssl/src/int/i15_decode.c +0 -56
  823. package/runtime/third_party/bearssl/src/int/i15_decred.c +0 -100
  824. package/runtime/third_party/bearssl/src/int/i15_encode.c +0 -56
  825. package/runtime/third_party/bearssl/src/int/i15_fmont.c +0 -59
  826. package/runtime/third_party/bearssl/src/int/i15_iszero.c +0 -39
  827. package/runtime/third_party/bearssl/src/int/i15_moddiv.c +0 -465
  828. package/runtime/third_party/bearssl/src/int/i15_modpow.c +0 -50
  829. package/runtime/third_party/bearssl/src/int/i15_modpow2.c +0 -160
  830. package/runtime/third_party/bearssl/src/int/i15_montmul.c +0 -184
  831. package/runtime/third_party/bearssl/src/int/i15_mulacc.c +0 -61
  832. package/runtime/third_party/bearssl/src/int/i15_muladd.c +0 -173
  833. package/runtime/third_party/bearssl/src/int/i15_ninv15.c +0 -38
  834. package/runtime/third_party/bearssl/src/int/i15_reduce.c +0 -66
  835. package/runtime/third_party/bearssl/src/int/i15_rshift.c +0 -47
  836. package/runtime/third_party/bearssl/src/int/i15_sub.c +0 -46
  837. package/runtime/third_party/bearssl/src/int/i15_tmont.c +0 -36
  838. package/runtime/third_party/bearssl/src/int/i31_add.c +0 -46
  839. package/runtime/third_party/bearssl/src/int/i31_bitlen.c +0 -44
  840. package/runtime/third_party/bearssl/src/int/i31_decmod.c +0 -124
  841. package/runtime/third_party/bearssl/src/int/i31_decode.c +0 -57
  842. package/runtime/third_party/bearssl/src/int/i31_decred.c +0 -103
  843. package/runtime/third_party/bearssl/src/int/i31_encode.c +0 -79
  844. package/runtime/third_party/bearssl/src/int/i31_fmont.c +0 -60
  845. package/runtime/third_party/bearssl/src/int/i31_iszero.c +0 -39
  846. package/runtime/third_party/bearssl/src/int/i31_moddiv.c +0 -488
  847. package/runtime/third_party/bearssl/src/int/i31_modpow.c +0 -65
  848. package/runtime/third_party/bearssl/src/int/i31_modpow2.c +0 -160
  849. package/runtime/third_party/bearssl/src/int/i31_montmul.c +0 -127
  850. package/runtime/third_party/bearssl/src/int/i31_mulacc.c +0 -74
  851. package/runtime/third_party/bearssl/src/int/i31_muladd.c +0 -157
  852. package/runtime/third_party/bearssl/src/int/i31_ninv31.c +0 -39
  853. package/runtime/third_party/bearssl/src/int/i31_reduce.c +0 -66
  854. package/runtime/third_party/bearssl/src/int/i31_rshift.c +0 -47
  855. package/runtime/third_party/bearssl/src/int/i31_sub.c +0 -46
  856. package/runtime/third_party/bearssl/src/int/i31_tmont.c +0 -36
  857. package/runtime/third_party/bearssl/src/int/i32_add.c +0 -51
  858. package/runtime/third_party/bearssl/src/int/i32_bitlen.c +0 -44
  859. package/runtime/third_party/bearssl/src/int/i32_decmod.c +0 -77
  860. package/runtime/third_party/bearssl/src/int/i32_decode.c +0 -63
  861. package/runtime/third_party/bearssl/src/int/i32_decred.c +0 -107
  862. package/runtime/third_party/bearssl/src/int/i32_div32.c +0 -56
  863. package/runtime/third_party/bearssl/src/int/i32_encode.c +0 -72
  864. package/runtime/third_party/bearssl/src/int/i32_fmont.c +0 -60
  865. package/runtime/third_party/bearssl/src/int/i32_iszero.c +0 -39
  866. package/runtime/third_party/bearssl/src/int/i32_modpow.c +0 -65
  867. package/runtime/third_party/bearssl/src/int/i32_montmul.c +0 -69
  868. package/runtime/third_party/bearssl/src/int/i32_mulacc.c +0 -56
  869. package/runtime/third_party/bearssl/src/int/i32_muladd.c +0 -138
  870. package/runtime/third_party/bearssl/src/int/i32_ninv32.c +0 -39
  871. package/runtime/third_party/bearssl/src/int/i32_reduce.c +0 -66
  872. package/runtime/third_party/bearssl/src/int/i32_sub.c +0 -51
  873. package/runtime/third_party/bearssl/src/int/i32_tmont.c +0 -36
  874. package/runtime/third_party/bearssl/src/int/i62_modpow2.c +0 -493
  875. package/runtime/third_party/bearssl/src/kdf/hkdf.c +0 -107
  876. package/runtime/third_party/bearssl/src/kdf/shake.c +0 -590
  877. package/runtime/third_party/bearssl/src/mac/hmac.c +0 -122
  878. package/runtime/third_party/bearssl/src/mac/hmac_ct.c +0 -193
  879. package/runtime/third_party/bearssl/src/rand/aesctr_drbg.c +0 -206
  880. package/runtime/third_party/bearssl/src/rand/hmac_drbg.c +0 -157
  881. package/runtime/third_party/bearssl/src/rand/sysrng.c +0 -252
  882. package/runtime/third_party/bearssl/src/rsa/rsa_default_keygen.c +0 -38
  883. package/runtime/third_party/bearssl/src/rsa/rsa_default_modulus.c +0 -36
  884. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_decrypt.c +0 -38
  885. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_encrypt.c +0 -38
  886. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_sign.c +0 -38
  887. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_vrfy.c +0 -38
  888. package/runtime/third_party/bearssl/src/rsa/rsa_default_priv.c +0 -38
  889. package/runtime/third_party/bearssl/src/rsa/rsa_default_privexp.c +0 -36
  890. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_sign.c +0 -38
  891. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_vrfy.c +0 -38
  892. package/runtime/third_party/bearssl/src/rsa/rsa_default_pub.c +0 -38
  893. package/runtime/third_party/bearssl/src/rsa/rsa_default_pubexp.c +0 -36
  894. package/runtime/third_party/bearssl/src/rsa/rsa_i15_keygen.c +0 -583
  895. package/runtime/third_party/bearssl/src/rsa/rsa_i15_modulus.c +0 -99
  896. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_decrypt.c +0 -41
  897. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_encrypt.c +0 -44
  898. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_sign.c +0 -37
  899. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_vrfy.c +0 -43
  900. package/runtime/third_party/bearssl/src/rsa/rsa_i15_priv.c +0 -209
  901. package/runtime/third_party/bearssl/src/rsa/rsa_i15_privexp.c +0 -320
  902. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_sign.c +0 -40
  903. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_vrfy.c +0 -44
  904. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pub.c +0 -113
  905. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pubexp.c +0 -152
  906. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen.c +0 -37
  907. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen_inner.c +0 -608
  908. package/runtime/third_party/bearssl/src/rsa/rsa_i31_modulus.c +0 -99
  909. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_decrypt.c +0 -41
  910. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_encrypt.c +0 -44
  911. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_sign.c +0 -37
  912. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_vrfy.c +0 -43
  913. package/runtime/third_party/bearssl/src/rsa/rsa_i31_priv.c +0 -203
  914. package/runtime/third_party/bearssl/src/rsa/rsa_i31_privexp.c +0 -318
  915. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_sign.c +0 -40
  916. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_vrfy.c +0 -44
  917. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pub.c +0 -106
  918. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pubexp.c +0 -152
  919. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_decrypt.c +0 -41
  920. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_encrypt.c +0 -44
  921. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_sign.c +0 -37
  922. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_vrfy.c +0 -43
  923. package/runtime/third_party/bearssl/src/rsa/rsa_i32_priv.c +0 -160
  924. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_sign.c +0 -40
  925. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_vrfy.c +0 -44
  926. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pub.c +0 -77
  927. package/runtime/third_party/bearssl/src/rsa/rsa_i62_keygen.c +0 -57
  928. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_decrypt.c +0 -61
  929. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_encrypt.c +0 -64
  930. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_sign.c +0 -57
  931. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_vrfy.c +0 -63
  932. package/runtime/third_party/bearssl/src/rsa/rsa_i62_priv.c +0 -223
  933. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_sign.c +0 -60
  934. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_vrfy.c +0 -64
  935. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pub.c +0 -125
  936. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_pad.c +0 -112
  937. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_unpad.c +0 -145
  938. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_pad.c +0 -100
  939. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_unpad.c +0 -121
  940. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_pad.c +0 -106
  941. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_unpad.c +0 -121
  942. package/runtime/third_party/bearssl/src/rsa/rsa_ssl_decrypt.c +0 -52
  943. package/runtime/third_party/bearssl/src/settings.c +0 -306
  944. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcdec.c +0 -69
  945. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcenc.c +0 -67
  946. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctr.c +0 -84
  947. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctrcbc.c +0 -142
  948. package/runtime/third_party/bearssl/src/symcipher/aes_big_dec.c +0 -254
  949. package/runtime/third_party/bearssl/src/symcipher/aes_big_enc.c +0 -157
  950. package/runtime/third_party/bearssl/src/symcipher/aes_common.c +0 -112
  951. package/runtime/third_party/bearssl/src/symcipher/aes_ct.c +0 -328
  952. package/runtime/third_party/bearssl/src/symcipher/aes_ct64.c +0 -398
  953. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcdec.c +0 -104
  954. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcenc.c +0 -81
  955. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctr.c +0 -114
  956. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctrcbc.c +0 -433
  957. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_dec.c +0 -159
  958. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_enc.c +0 -115
  959. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcdec.c +0 -111
  960. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcenc.c +0 -91
  961. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctr.c +0 -116
  962. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctrcbc.c +0 -422
  963. package/runtime/third_party/bearssl/src/symcipher/aes_ct_dec.c +0 -170
  964. package/runtime/third_party/bearssl/src/symcipher/aes_ct_enc.c +0 -112
  965. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8.c +0 -445
  966. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcdec.c +0 -670
  967. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcenc.c +0 -417
  968. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctr.c +0 -717
  969. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctrcbc.c +0 -946
  970. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcdec.c +0 -69
  971. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcenc.c +0 -67
  972. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctr.c +0 -84
  973. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctrcbc.c +0 -142
  974. package/runtime/third_party/bearssl/src/symcipher/aes_small_dec.c +0 -176
  975. package/runtime/third_party/bearssl/src/symcipher/aes_small_enc.c +0 -129
  976. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni.c +0 -240
  977. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcdec.c +0 -223
  978. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcenc.c +0 -122
  979. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctr.c +0 -211
  980. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctrcbc.c +0 -596
  981. package/runtime/third_party/bearssl/src/symcipher/chacha20_ct.c +0 -106
  982. package/runtime/third_party/bearssl/src/symcipher/chacha20_sse2.c +0 -237
  983. package/runtime/third_party/bearssl/src/symcipher/des_ct.c +0 -411
  984. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcdec.c +0 -87
  985. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcenc.c +0 -69
  986. package/runtime/third_party/bearssl/src/symcipher/des_support.c +0 -166
  987. package/runtime/third_party/bearssl/src/symcipher/des_tab.c +0 -310
  988. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcdec.c +0 -85
  989. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcenc.c +0 -67
  990. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul.c +0 -260
  991. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul32.c +0 -297
  992. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmulq.c +0 -475
  993. package/runtime/third_party/bearssl/src/symcipher/poly1305_i15.c +0 -221
  994. package/runtime/third_party/bearssl/src/x509/asn1.t0 +0 -757
  995. package/runtime/third_party/bearssl/src/x509/asn1enc.c +0 -93
  996. package/runtime/third_party/bearssl/src/x509/encode_ec_pk8der.c +0 -110
  997. package/runtime/third_party/bearssl/src/x509/encode_ec_rawder.c +0 -161
  998. package/runtime/third_party/bearssl/src/x509/encode_rsa_pk8der.c +0 -97
  999. package/runtime/third_party/bearssl/src/x509/encode_rsa_rawder.c +0 -96
  1000. package/runtime/third_party/bearssl/src/x509/skey_decoder.c +0 -653
  1001. package/runtime/third_party/bearssl/src/x509/skey_decoder.t0 +0 -376
  1002. package/runtime/third_party/bearssl/src/x509/x509_decoder.c +0 -776
  1003. package/runtime/third_party/bearssl/src/x509/x509_decoder.t0 +0 -324
  1004. package/runtime/third_party/bearssl/src/x509/x509_knownkey.c +0 -105
  1005. package/runtime/third_party/bearssl/src/x509/x509_minimal.c +0 -1722
  1006. package/runtime/third_party/bearssl/src/x509/x509_minimal.t0 +0 -1526
  1007. package/runtime/third_party/bearssl/src/x509/x509_minimal_full.c +0 -59
@@ -0,0 +1,1520 @@
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
+ @ Copyright 2012-2016 The OpenSSL Project Authors. All Rights Reserved.
8
+ @
9
+ @ Licensed under the Apache License, Version 2.0 (the "License");
10
+ @ you may not use this file except in compliance with the License.
11
+ @ You may obtain a copy of the License at
12
+ @
13
+ @ https://www.apache.org/licenses/LICENSE-2.0
14
+ @
15
+ @ Unless required by applicable law or agreed to in writing, software
16
+ @ distributed under the License is distributed on an "AS IS" BASIS,
17
+ @ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
+ @ See the License for the specific language governing permissions and
19
+ @ limitations under the License.
20
+
21
+
22
+ @ ====================================================================
23
+ @ Written by Andy Polyakov <appro@openssl.org> for the OpenSSL
24
+ @ project.
25
+ @
26
+ @ Specific modes and adaptation for Linux kernel by Ard Biesheuvel
27
+ @ of Linaro.
28
+ @ ====================================================================
29
+
30
+ @ Bit-sliced AES for ARM NEON
31
+ @
32
+ @ February 2012.
33
+ @
34
+ @ This implementation is direct adaptation of bsaes-x86_64 module for
35
+ @ ARM NEON. Except that this module is endian-neutral [in sense that
36
+ @ it can be compiled for either endianness] by courtesy of vld1.8's
37
+ @ neutrality. Initial version doesn't implement interface to OpenSSL,
38
+ @ only low-level primitives and unsupported entry points, just enough
39
+ @ to collect performance results, which for Cortex-A8 core are:
40
+ @
41
+ @ encrypt 19.5 cycles per byte processed with 128-bit key
42
+ @ decrypt 22.1 cycles per byte processed with 128-bit key
43
+ @ key conv. 440 cycles per 128-bit key/0.18 of 8x block
44
+ @
45
+ @ Snapdragon S4 encrypts byte in 17.6 cycles and decrypts in 19.7,
46
+ @ which is [much] worse than anticipated (for further details see
47
+ @ http://www.openssl.org/~appro/Snapdragon-S4.html).
48
+ @
49
+ @ Cortex-A15 manages in 14.2/16.1 cycles [when integer-only code
50
+ @ manages in 20.0 cycles].
51
+ @
52
+ @ When comparing to x86_64 results keep in mind that NEON unit is
53
+ @ [mostly] single-issue and thus can't [fully] benefit from
54
+ @ instruction-level parallelism. And when comparing to aes-armv4
55
+ @ results keep in mind key schedule conversion overhead (see
56
+ @ bsaes-x86_64.pl for further details)...
57
+ @
58
+ @ <appro@openssl.org>
59
+
60
+ @ April-August 2013
61
+ @ Add CBC, CTR and XTS subroutines and adapt for kernel use; courtesy of Ard.
62
+
63
+ #ifndef __KERNEL__
64
+ # define VFP_ABI_PUSH vstmdb sp!,{d8-d15}
65
+ # define VFP_ABI_POP vldmia sp!,{d8-d15}
66
+ # define VFP_ABI_FRAME 0x40
67
+ #else
68
+ # define VFP_ABI_PUSH
69
+ # define VFP_ABI_POP
70
+ # define VFP_ABI_FRAME 0
71
+ # define BSAES_ASM_EXTENDED_KEY
72
+ # define XTS_CHAIN_TWEAK
73
+ # define __ARM_MAX_ARCH__ 7
74
+ #endif
75
+
76
+ #ifdef __thumb__
77
+ # define adrl adr
78
+ #endif
79
+
80
+ #if __ARM_MAX_ARCH__>=7
81
+ .arch armv7-a
82
+ .fpu neon
83
+
84
+ .text
85
+ .syntax unified @ ARMv7-capable assembler is expected to handle this
86
+ #if defined(__thumb2__) && !defined(__APPLE__)
87
+ .thumb
88
+ #else
89
+ .code 32
90
+ # undef __thumb2__
91
+ #endif
92
+
93
+ .type _bsaes_decrypt8,%function
94
+ .align 4
95
+ _bsaes_decrypt8:
96
+ adr r6,.
97
+ vldmia r4!, {q9} @ round 0 key
98
+ #if defined(__thumb2__) || defined(__APPLE__)
99
+ adr r6,.LM0ISR
100
+ #else
101
+ add r6,r6,#.LM0ISR-_bsaes_decrypt8
102
+ #endif
103
+
104
+ vldmia r6!, {q8} @ .LM0ISR
105
+ veor q10, q0, q9 @ xor with round0 key
106
+ veor q11, q1, q9
107
+ vtbl.8 d0, {q10}, d16
108
+ vtbl.8 d1, {q10}, d17
109
+ veor q12, q2, q9
110
+ vtbl.8 d2, {q11}, d16
111
+ vtbl.8 d3, {q11}, d17
112
+ veor q13, q3, q9
113
+ vtbl.8 d4, {q12}, d16
114
+ vtbl.8 d5, {q12}, d17
115
+ veor q14, q4, q9
116
+ vtbl.8 d6, {q13}, d16
117
+ vtbl.8 d7, {q13}, d17
118
+ veor q15, q5, q9
119
+ vtbl.8 d8, {q14}, d16
120
+ vtbl.8 d9, {q14}, d17
121
+ veor q10, q6, q9
122
+ vtbl.8 d10, {q15}, d16
123
+ vtbl.8 d11, {q15}, d17
124
+ veor q11, q7, q9
125
+ vtbl.8 d12, {q10}, d16
126
+ vtbl.8 d13, {q10}, d17
127
+ vtbl.8 d14, {q11}, d16
128
+ vtbl.8 d15, {q11}, d17
129
+ vmov.i8 q8,#0x55 @ compose .LBS0
130
+ vmov.i8 q9,#0x33 @ compose .LBS1
131
+ vshr.u64 q10, q6, #1
132
+ vshr.u64 q11, q4, #1
133
+ veor q10, q10, q7
134
+ veor q11, q11, q5
135
+ vand q10, q10, q8
136
+ vand q11, q11, q8
137
+ veor q7, q7, q10
138
+ vshl.u64 q10, q10, #1
139
+ veor q5, q5, q11
140
+ vshl.u64 q11, q11, #1
141
+ veor q6, q6, q10
142
+ veor q4, q4, q11
143
+ vshr.u64 q10, q2, #1
144
+ vshr.u64 q11, q0, #1
145
+ veor q10, q10, q3
146
+ veor q11, q11, q1
147
+ vand q10, q10, q8
148
+ vand q11, q11, q8
149
+ veor q3, q3, q10
150
+ vshl.u64 q10, q10, #1
151
+ veor q1, q1, q11
152
+ vshl.u64 q11, q11, #1
153
+ veor q2, q2, q10
154
+ veor q0, q0, q11
155
+ vmov.i8 q8,#0x0f @ compose .LBS2
156
+ vshr.u64 q10, q5, #2
157
+ vshr.u64 q11, q4, #2
158
+ veor q10, q10, q7
159
+ veor q11, q11, q6
160
+ vand q10, q10, q9
161
+ vand q11, q11, q9
162
+ veor q7, q7, q10
163
+ vshl.u64 q10, q10, #2
164
+ veor q6, q6, q11
165
+ vshl.u64 q11, q11, #2
166
+ veor q5, q5, q10
167
+ veor q4, q4, q11
168
+ vshr.u64 q10, q1, #2
169
+ vshr.u64 q11, q0, #2
170
+ veor q10, q10, q3
171
+ veor q11, q11, q2
172
+ vand q10, q10, q9
173
+ vand q11, q11, q9
174
+ veor q3, q3, q10
175
+ vshl.u64 q10, q10, #2
176
+ veor q2, q2, q11
177
+ vshl.u64 q11, q11, #2
178
+ veor q1, q1, q10
179
+ veor q0, q0, q11
180
+ vshr.u64 q10, q3, #4
181
+ vshr.u64 q11, q2, #4
182
+ veor q10, q10, q7
183
+ veor q11, q11, q6
184
+ vand q10, q10, q8
185
+ vand q11, q11, q8
186
+ veor q7, q7, q10
187
+ vshl.u64 q10, q10, #4
188
+ veor q6, q6, q11
189
+ vshl.u64 q11, q11, #4
190
+ veor q3, q3, q10
191
+ veor q2, q2, q11
192
+ vshr.u64 q10, q1, #4
193
+ vshr.u64 q11, q0, #4
194
+ veor q10, q10, q5
195
+ veor q11, q11, q4
196
+ vand q10, q10, q8
197
+ vand q11, q11, q8
198
+ veor q5, q5, q10
199
+ vshl.u64 q10, q10, #4
200
+ veor q4, q4, q11
201
+ vshl.u64 q11, q11, #4
202
+ veor q1, q1, q10
203
+ veor q0, q0, q11
204
+ sub r5,r5,#1
205
+ b .Ldec_sbox
206
+ .align 4
207
+ .Ldec_loop:
208
+ vldmia r4!, {q8,q9,q10,q11}
209
+ veor q8, q8, q0
210
+ veor q9, q9, q1
211
+ vtbl.8 d0, {q8}, d24
212
+ vtbl.8 d1, {q8}, d25
213
+ vldmia r4!, {q8}
214
+ veor q10, q10, q2
215
+ vtbl.8 d2, {q9}, d24
216
+ vtbl.8 d3, {q9}, d25
217
+ vldmia r4!, {q9}
218
+ veor q11, q11, q3
219
+ vtbl.8 d4, {q10}, d24
220
+ vtbl.8 d5, {q10}, d25
221
+ vldmia r4!, {q10}
222
+ vtbl.8 d6, {q11}, d24
223
+ vtbl.8 d7, {q11}, d25
224
+ vldmia r4!, {q11}
225
+ veor q8, q8, q4
226
+ veor q9, q9, q5
227
+ vtbl.8 d8, {q8}, d24
228
+ vtbl.8 d9, {q8}, d25
229
+ veor q10, q10, q6
230
+ vtbl.8 d10, {q9}, d24
231
+ vtbl.8 d11, {q9}, d25
232
+ veor q11, q11, q7
233
+ vtbl.8 d12, {q10}, d24
234
+ vtbl.8 d13, {q10}, d25
235
+ vtbl.8 d14, {q11}, d24
236
+ vtbl.8 d15, {q11}, d25
237
+ .Ldec_sbox:
238
+ veor q1, q1, q4
239
+ veor q3, q3, q4
240
+
241
+ veor q4, q4, q7
242
+ veor q1, q1, q6
243
+ veor q2, q2, q7
244
+ veor q6, q6, q4
245
+
246
+ veor q0, q0, q1
247
+ veor q2, q2, q5
248
+ veor q7, q7, q6
249
+ veor q3, q3, q0
250
+ veor q5, q5, q0
251
+ veor q1, q1, q3
252
+ veor q11, q3, q0
253
+ veor q10, q7, q4
254
+ veor q9, q1, q6
255
+ veor q13, q4, q0
256
+ vmov q8, q10
257
+ veor q12, q5, q2
258
+
259
+ vorr q10, q10, q9
260
+ veor q15, q11, q8
261
+ vand q14, q11, q12
262
+ vorr q11, q11, q12
263
+ veor q12, q12, q9
264
+ vand q8, q8, q9
265
+ veor q9, q6, q2
266
+ vand q15, q15, q12
267
+ vand q13, q13, q9
268
+ veor q9, q3, q7
269
+ veor q12, q1, q5
270
+ veor q11, q11, q13
271
+ veor q10, q10, q13
272
+ vand q13, q9, q12
273
+ vorr q9, q9, q12
274
+ veor q11, q11, q15
275
+ veor q8, q8, q13
276
+ veor q10, q10, q14
277
+ veor q9, q9, q15
278
+ veor q8, q8, q14
279
+ vand q12, q4, q6
280
+ veor q9, q9, q14
281
+ vand q13, q0, q2
282
+ vand q14, q7, q1
283
+ vorr q15, q3, q5
284
+ veor q11, q11, q12
285
+ veor q9, q9, q14
286
+ veor q8, q8, q15
287
+ veor q10, q10, q13
288
+
289
+ @ Inv_GF16 0, 1, 2, 3, s0, s1, s2, s3
290
+
291
+ @ new smaller inversion
292
+
293
+ vand q14, q11, q9
294
+ vmov q12, q8
295
+
296
+ veor q13, q10, q14
297
+ veor q15, q8, q14
298
+ veor q14, q8, q14 @ q14=q15
299
+
300
+ vbsl q13, q9, q8
301
+ vbsl q15, q11, q10
302
+ veor q11, q11, q10
303
+
304
+ vbsl q12, q13, q14
305
+ vbsl q8, q14, q13
306
+
307
+ vand q14, q12, q15
308
+ veor q9, q9, q8
309
+
310
+ veor q14, q14, q11
311
+ veor q12, q5, q2
312
+ veor q8, q1, q6
313
+ veor q10, q15, q14
314
+ vand q10, q10, q5
315
+ veor q5, q5, q1
316
+ vand q11, q1, q15
317
+ vand q5, q5, q14
318
+ veor q1, q11, q10
319
+ veor q5, q5, q11
320
+ veor q15, q15, q13
321
+ veor q14, q14, q9
322
+ veor q11, q15, q14
323
+ veor q10, q13, q9
324
+ vand q11, q11, q12
325
+ vand q10, q10, q2
326
+ veor q12, q12, q8
327
+ veor q2, q2, q6
328
+ vand q8, q8, q15
329
+ vand q6, q6, q13
330
+ vand q12, q12, q14
331
+ vand q2, q2, q9
332
+ veor q8, q8, q12
333
+ veor q2, q2, q6
334
+ veor q12, q12, q11
335
+ veor q6, q6, q10
336
+ veor q5, q5, q12
337
+ veor q2, q2, q12
338
+ veor q1, q1, q8
339
+ veor q6, q6, q8
340
+
341
+ veor q12, q3, q0
342
+ veor q8, q7, q4
343
+ veor q11, q15, q14
344
+ veor q10, q13, q9
345
+ vand q11, q11, q12
346
+ vand q10, q10, q0
347
+ veor q12, q12, q8
348
+ veor q0, q0, q4
349
+ vand q8, q8, q15
350
+ vand q4, q4, q13
351
+ vand q12, q12, q14
352
+ vand q0, q0, q9
353
+ veor q8, q8, q12
354
+ veor q0, q0, q4
355
+ veor q12, q12, q11
356
+ veor q4, q4, q10
357
+ veor q15, q15, q13
358
+ veor q14, q14, q9
359
+ veor q10, q15, q14
360
+ vand q10, q10, q3
361
+ veor q3, q3, q7
362
+ vand q11, q7, q15
363
+ vand q3, q3, q14
364
+ veor q7, q11, q10
365
+ veor q3, q3, q11
366
+ veor q3, q3, q12
367
+ veor q0, q0, q12
368
+ veor q7, q7, q8
369
+ veor q4, q4, q8
370
+ veor q1, q1, q7
371
+ veor q6, q6, q5
372
+
373
+ veor q4, q4, q1
374
+ veor q2, q2, q7
375
+ veor q5, q5, q7
376
+ veor q4, q4, q2
377
+ veor q7, q7, q0
378
+ veor q4, q4, q5
379
+ veor q3, q3, q6
380
+ veor q6, q6, q1
381
+ veor q3, q3, q4
382
+
383
+ veor q4, q4, q0
384
+ veor q7, q7, q3
385
+ subs r5,r5,#1
386
+ bcc .Ldec_done
387
+ @ multiplication by 0x05-0x00-0x04-0x00
388
+ vext.8 q8, q0, q0, #8
389
+ vext.8 q14, q3, q3, #8
390
+ vext.8 q15, q5, q5, #8
391
+ veor q8, q8, q0
392
+ vext.8 q9, q1, q1, #8
393
+ veor q14, q14, q3
394
+ vext.8 q10, q6, q6, #8
395
+ veor q15, q15, q5
396
+ vext.8 q11, q4, q4, #8
397
+ veor q9, q9, q1
398
+ vext.8 q12, q2, q2, #8
399
+ veor q10, q10, q6
400
+ vext.8 q13, q7, q7, #8
401
+ veor q11, q11, q4
402
+ veor q12, q12, q2
403
+ veor q13, q13, q7
404
+
405
+ veor q0, q0, q14
406
+ veor q1, q1, q14
407
+ veor q6, q6, q8
408
+ veor q2, q2, q10
409
+ veor q4, q4, q9
410
+ veor q1, q1, q15
411
+ veor q6, q6, q15
412
+ veor q2, q2, q14
413
+ veor q7, q7, q11
414
+ veor q4, q4, q14
415
+ veor q3, q3, q12
416
+ veor q2, q2, q15
417
+ veor q7, q7, q15
418
+ veor q5, q5, q13
419
+ vext.8 q8, q0, q0, #12 @ x0 <<< 32
420
+ vext.8 q9, q1, q1, #12
421
+ veor q0, q0, q8 @ x0 ^ (x0 <<< 32)
422
+ vext.8 q10, q6, q6, #12
423
+ veor q1, q1, q9
424
+ vext.8 q11, q4, q4, #12
425
+ veor q6, q6, q10
426
+ vext.8 q12, q2, q2, #12
427
+ veor q4, q4, q11
428
+ vext.8 q13, q7, q7, #12
429
+ veor q2, q2, q12
430
+ vext.8 q14, q3, q3, #12
431
+ veor q7, q7, q13
432
+ vext.8 q15, q5, q5, #12
433
+ veor q3, q3, q14
434
+
435
+ veor q9, q9, q0
436
+ veor q5, q5, q15
437
+ vext.8 q0, q0, q0, #8 @ (x0 ^ (x0 <<< 32)) <<< 64)
438
+ veor q10, q10, q1
439
+ veor q8, q8, q5
440
+ veor q9, q9, q5
441
+ vext.8 q1, q1, q1, #8
442
+ veor q13, q13, q2
443
+ veor q0, q0, q8
444
+ veor q14, q14, q7
445
+ veor q1, q1, q9
446
+ vext.8 q8, q2, q2, #8
447
+ veor q12, q12, q4
448
+ vext.8 q9, q7, q7, #8
449
+ veor q15, q15, q3
450
+ vext.8 q2, q4, q4, #8
451
+ veor q11, q11, q6
452
+ vext.8 q7, q5, q5, #8
453
+ veor q12, q12, q5
454
+ vext.8 q4, q3, q3, #8
455
+ veor q11, q11, q5
456
+ vext.8 q3, q6, q6, #8
457
+ veor q5, q9, q13
458
+ veor q11, q11, q2
459
+ veor q7, q7, q15
460
+ veor q6, q4, q14
461
+ veor q4, q8, q12
462
+ veor q2, q3, q10
463
+ vmov q3, q11
464
+ @ vmov q5, q9
465
+ vldmia r6, {q12} @ .LISR
466
+ ite eq @ Thumb2 thing, sanity check in ARM
467
+ addeq r6,r6,#0x10
468
+ bne .Ldec_loop
469
+ vldmia r6, {q12} @ .LISRM0
470
+ b .Ldec_loop
471
+ .align 4
472
+ .Ldec_done:
473
+ vmov.i8 q8,#0x55 @ compose .LBS0
474
+ vmov.i8 q9,#0x33 @ compose .LBS1
475
+ vshr.u64 q10, q3, #1
476
+ vshr.u64 q11, q2, #1
477
+ veor q10, q10, q5
478
+ veor q11, q11, q7
479
+ vand q10, q10, q8
480
+ vand q11, q11, q8
481
+ veor q5, q5, q10
482
+ vshl.u64 q10, q10, #1
483
+ veor q7, q7, q11
484
+ vshl.u64 q11, q11, #1
485
+ veor q3, q3, q10
486
+ veor q2, q2, q11
487
+ vshr.u64 q10, q6, #1
488
+ vshr.u64 q11, q0, #1
489
+ veor q10, q10, q4
490
+ veor q11, q11, q1
491
+ vand q10, q10, q8
492
+ vand q11, q11, q8
493
+ veor q4, q4, q10
494
+ vshl.u64 q10, q10, #1
495
+ veor q1, q1, q11
496
+ vshl.u64 q11, q11, #1
497
+ veor q6, q6, q10
498
+ veor q0, q0, q11
499
+ vmov.i8 q8,#0x0f @ compose .LBS2
500
+ vshr.u64 q10, q7, #2
501
+ vshr.u64 q11, q2, #2
502
+ veor q10, q10, q5
503
+ veor q11, q11, q3
504
+ vand q10, q10, q9
505
+ vand q11, q11, q9
506
+ veor q5, q5, q10
507
+ vshl.u64 q10, q10, #2
508
+ veor q3, q3, q11
509
+ vshl.u64 q11, q11, #2
510
+ veor q7, q7, q10
511
+ veor q2, q2, q11
512
+ vshr.u64 q10, q1, #2
513
+ vshr.u64 q11, q0, #2
514
+ veor q10, q10, q4
515
+ veor q11, q11, q6
516
+ vand q10, q10, q9
517
+ vand q11, q11, q9
518
+ veor q4, q4, q10
519
+ vshl.u64 q10, q10, #2
520
+ veor q6, q6, q11
521
+ vshl.u64 q11, q11, #2
522
+ veor q1, q1, q10
523
+ veor q0, q0, q11
524
+ vshr.u64 q10, q4, #4
525
+ vshr.u64 q11, q6, #4
526
+ veor q10, q10, q5
527
+ veor q11, q11, q3
528
+ vand q10, q10, q8
529
+ vand q11, q11, q8
530
+ veor q5, q5, q10
531
+ vshl.u64 q10, q10, #4
532
+ veor q3, q3, q11
533
+ vshl.u64 q11, q11, #4
534
+ veor q4, q4, q10
535
+ veor q6, q6, q11
536
+ vshr.u64 q10, q1, #4
537
+ vshr.u64 q11, q0, #4
538
+ veor q10, q10, q7
539
+ veor q11, q11, q2
540
+ vand q10, q10, q8
541
+ vand q11, q11, q8
542
+ veor q7, q7, q10
543
+ vshl.u64 q10, q10, #4
544
+ veor q2, q2, q11
545
+ vshl.u64 q11, q11, #4
546
+ veor q1, q1, q10
547
+ veor q0, q0, q11
548
+ vldmia r4, {q8} @ last round key
549
+ veor q6, q6, q8
550
+ veor q4, q4, q8
551
+ veor q2, q2, q8
552
+ veor q7, q7, q8
553
+ veor q3, q3, q8
554
+ veor q5, q5, q8
555
+ veor q0, q0, q8
556
+ veor q1, q1, q8
557
+ bx lr
558
+ .size _bsaes_decrypt8,.-_bsaes_decrypt8
559
+
560
+ .type _bsaes_const,%object
561
+ .align 6
562
+ _bsaes_const:
563
+ .LM0ISR:@ InvShiftRows constants
564
+ .quad 0x0a0e0206070b0f03, 0x0004080c0d010509
565
+ .LISR:
566
+ .quad 0x0504070602010003, 0x0f0e0d0c080b0a09
567
+ .LISRM0:
568
+ .quad 0x01040b0e0205080f, 0x0306090c00070a0d
569
+ .LM0SR:@ ShiftRows constants
570
+ .quad 0x0a0e02060f03070b, 0x0004080c05090d01
571
+ .LSR:
572
+ .quad 0x0504070600030201, 0x0f0e0d0c0a09080b
573
+ .LSRM0:
574
+ .quad 0x0304090e00050a0f, 0x01060b0c0207080d
575
+ .LM0:
576
+ .quad 0x02060a0e03070b0f, 0x0004080c0105090d
577
+ .LREVM0SR:
578
+ .quad 0x090d01050c000408, 0x03070b0f060a0e02
579
+ .byte 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,78,69,79,78,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
580
+ .align 2
581
+ .align 6
582
+ .size _bsaes_const,.-_bsaes_const
583
+
584
+ .type _bsaes_encrypt8,%function
585
+ .align 4
586
+ _bsaes_encrypt8:
587
+ adr r6,.
588
+ vldmia r4!, {q9} @ round 0 key
589
+ #if defined(__thumb2__) || defined(__APPLE__)
590
+ adr r6,.LM0SR
591
+ #else
592
+ sub r6,r6,#_bsaes_encrypt8-.LM0SR
593
+ #endif
594
+
595
+ vldmia r6!, {q8} @ .LM0SR
596
+ _bsaes_encrypt8_alt:
597
+ veor q10, q0, q9 @ xor with round0 key
598
+ veor q11, q1, q9
599
+ vtbl.8 d0, {q10}, d16
600
+ vtbl.8 d1, {q10}, d17
601
+ veor q12, q2, q9
602
+ vtbl.8 d2, {q11}, d16
603
+ vtbl.8 d3, {q11}, d17
604
+ veor q13, q3, q9
605
+ vtbl.8 d4, {q12}, d16
606
+ vtbl.8 d5, {q12}, d17
607
+ veor q14, q4, q9
608
+ vtbl.8 d6, {q13}, d16
609
+ vtbl.8 d7, {q13}, d17
610
+ veor q15, q5, q9
611
+ vtbl.8 d8, {q14}, d16
612
+ vtbl.8 d9, {q14}, d17
613
+ veor q10, q6, q9
614
+ vtbl.8 d10, {q15}, d16
615
+ vtbl.8 d11, {q15}, d17
616
+ veor q11, q7, q9
617
+ vtbl.8 d12, {q10}, d16
618
+ vtbl.8 d13, {q10}, d17
619
+ vtbl.8 d14, {q11}, d16
620
+ vtbl.8 d15, {q11}, d17
621
+ _bsaes_encrypt8_bitslice:
622
+ vmov.i8 q8,#0x55 @ compose .LBS0
623
+ vmov.i8 q9,#0x33 @ compose .LBS1
624
+ vshr.u64 q10, q6, #1
625
+ vshr.u64 q11, q4, #1
626
+ veor q10, q10, q7
627
+ veor q11, q11, q5
628
+ vand q10, q10, q8
629
+ vand q11, q11, q8
630
+ veor q7, q7, q10
631
+ vshl.u64 q10, q10, #1
632
+ veor q5, q5, q11
633
+ vshl.u64 q11, q11, #1
634
+ veor q6, q6, q10
635
+ veor q4, q4, q11
636
+ vshr.u64 q10, q2, #1
637
+ vshr.u64 q11, q0, #1
638
+ veor q10, q10, q3
639
+ veor q11, q11, q1
640
+ vand q10, q10, q8
641
+ vand q11, q11, q8
642
+ veor q3, q3, q10
643
+ vshl.u64 q10, q10, #1
644
+ veor q1, q1, q11
645
+ vshl.u64 q11, q11, #1
646
+ veor q2, q2, q10
647
+ veor q0, q0, q11
648
+ vmov.i8 q8,#0x0f @ compose .LBS2
649
+ vshr.u64 q10, q5, #2
650
+ vshr.u64 q11, q4, #2
651
+ veor q10, q10, q7
652
+ veor q11, q11, q6
653
+ vand q10, q10, q9
654
+ vand q11, q11, q9
655
+ veor q7, q7, q10
656
+ vshl.u64 q10, q10, #2
657
+ veor q6, q6, q11
658
+ vshl.u64 q11, q11, #2
659
+ veor q5, q5, q10
660
+ veor q4, q4, q11
661
+ vshr.u64 q10, q1, #2
662
+ vshr.u64 q11, q0, #2
663
+ veor q10, q10, q3
664
+ veor q11, q11, q2
665
+ vand q10, q10, q9
666
+ vand q11, q11, q9
667
+ veor q3, q3, q10
668
+ vshl.u64 q10, q10, #2
669
+ veor q2, q2, q11
670
+ vshl.u64 q11, q11, #2
671
+ veor q1, q1, q10
672
+ veor q0, q0, q11
673
+ vshr.u64 q10, q3, #4
674
+ vshr.u64 q11, q2, #4
675
+ veor q10, q10, q7
676
+ veor q11, q11, q6
677
+ vand q10, q10, q8
678
+ vand q11, q11, q8
679
+ veor q7, q7, q10
680
+ vshl.u64 q10, q10, #4
681
+ veor q6, q6, q11
682
+ vshl.u64 q11, q11, #4
683
+ veor q3, q3, q10
684
+ veor q2, q2, q11
685
+ vshr.u64 q10, q1, #4
686
+ vshr.u64 q11, q0, #4
687
+ veor q10, q10, q5
688
+ veor q11, q11, q4
689
+ vand q10, q10, q8
690
+ vand q11, q11, q8
691
+ veor q5, q5, q10
692
+ vshl.u64 q10, q10, #4
693
+ veor q4, q4, q11
694
+ vshl.u64 q11, q11, #4
695
+ veor q1, q1, q10
696
+ veor q0, q0, q11
697
+ sub r5,r5,#1
698
+ b .Lenc_sbox
699
+ .align 4
700
+ .Lenc_loop:
701
+ vldmia r4!, {q8,q9,q10,q11}
702
+ veor q8, q8, q0
703
+ veor q9, q9, q1
704
+ vtbl.8 d0, {q8}, d24
705
+ vtbl.8 d1, {q8}, d25
706
+ vldmia r4!, {q8}
707
+ veor q10, q10, q2
708
+ vtbl.8 d2, {q9}, d24
709
+ vtbl.8 d3, {q9}, d25
710
+ vldmia r4!, {q9}
711
+ veor q11, q11, q3
712
+ vtbl.8 d4, {q10}, d24
713
+ vtbl.8 d5, {q10}, d25
714
+ vldmia r4!, {q10}
715
+ vtbl.8 d6, {q11}, d24
716
+ vtbl.8 d7, {q11}, d25
717
+ vldmia r4!, {q11}
718
+ veor q8, q8, q4
719
+ veor q9, q9, q5
720
+ vtbl.8 d8, {q8}, d24
721
+ vtbl.8 d9, {q8}, d25
722
+ veor q10, q10, q6
723
+ vtbl.8 d10, {q9}, d24
724
+ vtbl.8 d11, {q9}, d25
725
+ veor q11, q11, q7
726
+ vtbl.8 d12, {q10}, d24
727
+ vtbl.8 d13, {q10}, d25
728
+ vtbl.8 d14, {q11}, d24
729
+ vtbl.8 d15, {q11}, d25
730
+ .Lenc_sbox:
731
+ veor q2, q2, q1
732
+ veor q5, q5, q6
733
+ veor q3, q3, q0
734
+ veor q6, q6, q2
735
+ veor q5, q5, q0
736
+
737
+ veor q6, q6, q3
738
+ veor q3, q3, q7
739
+ veor q7, q7, q5
740
+ veor q3, q3, q4
741
+ veor q4, q4, q5
742
+
743
+ veor q2, q2, q7
744
+ veor q3, q3, q1
745
+ veor q1, q1, q5
746
+ veor q11, q7, q4
747
+ veor q10, q1, q2
748
+ veor q9, q5, q3
749
+ veor q13, q2, q4
750
+ vmov q8, q10
751
+ veor q12, q6, q0
752
+
753
+ vorr q10, q10, q9
754
+ veor q15, q11, q8
755
+ vand q14, q11, q12
756
+ vorr q11, q11, q12
757
+ veor q12, q12, q9
758
+ vand q8, q8, q9
759
+ veor q9, q3, q0
760
+ vand q15, q15, q12
761
+ vand q13, q13, q9
762
+ veor q9, q7, q1
763
+ veor q12, q5, q6
764
+ veor q11, q11, q13
765
+ veor q10, q10, q13
766
+ vand q13, q9, q12
767
+ vorr q9, q9, q12
768
+ veor q11, q11, q15
769
+ veor q8, q8, q13
770
+ veor q10, q10, q14
771
+ veor q9, q9, q15
772
+ veor q8, q8, q14
773
+ vand q12, q2, q3
774
+ veor q9, q9, q14
775
+ vand q13, q4, q0
776
+ vand q14, q1, q5
777
+ vorr q15, q7, q6
778
+ veor q11, q11, q12
779
+ veor q9, q9, q14
780
+ veor q8, q8, q15
781
+ veor q10, q10, q13
782
+
783
+ @ Inv_GF16 0, 1, 2, 3, s0, s1, s2, s3
784
+
785
+ @ new smaller inversion
786
+
787
+ vand q14, q11, q9
788
+ vmov q12, q8
789
+
790
+ veor q13, q10, q14
791
+ veor q15, q8, q14
792
+ veor q14, q8, q14 @ q14=q15
793
+
794
+ vbsl q13, q9, q8
795
+ vbsl q15, q11, q10
796
+ veor q11, q11, q10
797
+
798
+ vbsl q12, q13, q14
799
+ vbsl q8, q14, q13
800
+
801
+ vand q14, q12, q15
802
+ veor q9, q9, q8
803
+
804
+ veor q14, q14, q11
805
+ veor q12, q6, q0
806
+ veor q8, q5, q3
807
+ veor q10, q15, q14
808
+ vand q10, q10, q6
809
+ veor q6, q6, q5
810
+ vand q11, q5, q15
811
+ vand q6, q6, q14
812
+ veor q5, q11, q10
813
+ veor q6, q6, q11
814
+ veor q15, q15, q13
815
+ veor q14, q14, q9
816
+ veor q11, q15, q14
817
+ veor q10, q13, q9
818
+ vand q11, q11, q12
819
+ vand q10, q10, q0
820
+ veor q12, q12, q8
821
+ veor q0, q0, q3
822
+ vand q8, q8, q15
823
+ vand q3, q3, q13
824
+ vand q12, q12, q14
825
+ vand q0, q0, q9
826
+ veor q8, q8, q12
827
+ veor q0, q0, q3
828
+ veor q12, q12, q11
829
+ veor q3, q3, q10
830
+ veor q6, q6, q12
831
+ veor q0, q0, q12
832
+ veor q5, q5, q8
833
+ veor q3, q3, q8
834
+
835
+ veor q12, q7, q4
836
+ veor q8, q1, q2
837
+ veor q11, q15, q14
838
+ veor q10, q13, q9
839
+ vand q11, q11, q12
840
+ vand q10, q10, q4
841
+ veor q12, q12, q8
842
+ veor q4, q4, q2
843
+ vand q8, q8, q15
844
+ vand q2, q2, q13
845
+ vand q12, q12, q14
846
+ vand q4, q4, q9
847
+ veor q8, q8, q12
848
+ veor q4, q4, q2
849
+ veor q12, q12, q11
850
+ veor q2, q2, q10
851
+ veor q15, q15, q13
852
+ veor q14, q14, q9
853
+ veor q10, q15, q14
854
+ vand q10, q10, q7
855
+ veor q7, q7, q1
856
+ vand q11, q1, q15
857
+ vand q7, q7, q14
858
+ veor q1, q11, q10
859
+ veor q7, q7, q11
860
+ veor q7, q7, q12
861
+ veor q4, q4, q12
862
+ veor q1, q1, q8
863
+ veor q2, q2, q8
864
+ veor q7, q7, q0
865
+ veor q1, q1, q6
866
+ veor q6, q6, q0
867
+ veor q4, q4, q7
868
+ veor q0, q0, q1
869
+
870
+ veor q1, q1, q5
871
+ veor q5, q5, q2
872
+ veor q2, q2, q3
873
+ veor q3, q3, q5
874
+ veor q4, q4, q5
875
+
876
+ veor q6, q6, q3
877
+ subs r5,r5,#1
878
+ bcc .Lenc_done
879
+ vext.8 q8, q0, q0, #12 @ x0 <<< 32
880
+ vext.8 q9, q1, q1, #12
881
+ veor q0, q0, q8 @ x0 ^ (x0 <<< 32)
882
+ vext.8 q10, q4, q4, #12
883
+ veor q1, q1, q9
884
+ vext.8 q11, q6, q6, #12
885
+ veor q4, q4, q10
886
+ vext.8 q12, q3, q3, #12
887
+ veor q6, q6, q11
888
+ vext.8 q13, q7, q7, #12
889
+ veor q3, q3, q12
890
+ vext.8 q14, q2, q2, #12
891
+ veor q7, q7, q13
892
+ vext.8 q15, q5, q5, #12
893
+ veor q2, q2, q14
894
+
895
+ veor q9, q9, q0
896
+ veor q5, q5, q15
897
+ vext.8 q0, q0, q0, #8 @ (x0 ^ (x0 <<< 32)) <<< 64)
898
+ veor q10, q10, q1
899
+ veor q8, q8, q5
900
+ veor q9, q9, q5
901
+ vext.8 q1, q1, q1, #8
902
+ veor q13, q13, q3
903
+ veor q0, q0, q8
904
+ veor q14, q14, q7
905
+ veor q1, q1, q9
906
+ vext.8 q8, q3, q3, #8
907
+ veor q12, q12, q6
908
+ vext.8 q9, q7, q7, #8
909
+ veor q15, q15, q2
910
+ vext.8 q3, q6, q6, #8
911
+ veor q11, q11, q4
912
+ vext.8 q7, q5, q5, #8
913
+ veor q12, q12, q5
914
+ vext.8 q6, q2, q2, #8
915
+ veor q11, q11, q5
916
+ vext.8 q2, q4, q4, #8
917
+ veor q5, q9, q13
918
+ veor q4, q8, q12
919
+ veor q3, q3, q11
920
+ veor q7, q7, q15
921
+ veor q6, q6, q14
922
+ @ vmov q4, q8
923
+ veor q2, q2, q10
924
+ @ vmov q5, q9
925
+ vldmia r6, {q12} @ .LSR
926
+ ite eq @ Thumb2 thing, samity check in ARM
927
+ addeq r6,r6,#0x10
928
+ bne .Lenc_loop
929
+ vldmia r6, {q12} @ .LSRM0
930
+ b .Lenc_loop
931
+ .align 4
932
+ .Lenc_done:
933
+ vmov.i8 q8,#0x55 @ compose .LBS0
934
+ vmov.i8 q9,#0x33 @ compose .LBS1
935
+ vshr.u64 q10, q2, #1
936
+ vshr.u64 q11, q3, #1
937
+ veor q10, q10, q5
938
+ veor q11, q11, q7
939
+ vand q10, q10, q8
940
+ vand q11, q11, q8
941
+ veor q5, q5, q10
942
+ vshl.u64 q10, q10, #1
943
+ veor q7, q7, q11
944
+ vshl.u64 q11, q11, #1
945
+ veor q2, q2, q10
946
+ veor q3, q3, q11
947
+ vshr.u64 q10, q4, #1
948
+ vshr.u64 q11, q0, #1
949
+ veor q10, q10, q6
950
+ veor q11, q11, q1
951
+ vand q10, q10, q8
952
+ vand q11, q11, q8
953
+ veor q6, q6, q10
954
+ vshl.u64 q10, q10, #1
955
+ veor q1, q1, q11
956
+ vshl.u64 q11, q11, #1
957
+ veor q4, q4, q10
958
+ veor q0, q0, q11
959
+ vmov.i8 q8,#0x0f @ compose .LBS2
960
+ vshr.u64 q10, q7, #2
961
+ vshr.u64 q11, q3, #2
962
+ veor q10, q10, q5
963
+ veor q11, q11, q2
964
+ vand q10, q10, q9
965
+ vand q11, q11, q9
966
+ veor q5, q5, q10
967
+ vshl.u64 q10, q10, #2
968
+ veor q2, q2, q11
969
+ vshl.u64 q11, q11, #2
970
+ veor q7, q7, q10
971
+ veor q3, q3, q11
972
+ vshr.u64 q10, q1, #2
973
+ vshr.u64 q11, q0, #2
974
+ veor q10, q10, q6
975
+ veor q11, q11, q4
976
+ vand q10, q10, q9
977
+ vand q11, q11, q9
978
+ veor q6, q6, q10
979
+ vshl.u64 q10, q10, #2
980
+ veor q4, q4, q11
981
+ vshl.u64 q11, q11, #2
982
+ veor q1, q1, q10
983
+ veor q0, q0, q11
984
+ vshr.u64 q10, q6, #4
985
+ vshr.u64 q11, q4, #4
986
+ veor q10, q10, q5
987
+ veor q11, q11, q2
988
+ vand q10, q10, q8
989
+ vand q11, q11, q8
990
+ veor q5, q5, q10
991
+ vshl.u64 q10, q10, #4
992
+ veor q2, q2, q11
993
+ vshl.u64 q11, q11, #4
994
+ veor q6, q6, q10
995
+ veor q4, q4, q11
996
+ vshr.u64 q10, q1, #4
997
+ vshr.u64 q11, q0, #4
998
+ veor q10, q10, q7
999
+ veor q11, q11, q3
1000
+ vand q10, q10, q8
1001
+ vand q11, q11, q8
1002
+ veor q7, q7, q10
1003
+ vshl.u64 q10, q10, #4
1004
+ veor q3, q3, q11
1005
+ vshl.u64 q11, q11, #4
1006
+ veor q1, q1, q10
1007
+ veor q0, q0, q11
1008
+ vldmia r4, {q8} @ last round key
1009
+ veor q4, q4, q8
1010
+ veor q6, q6, q8
1011
+ veor q3, q3, q8
1012
+ veor q7, q7, q8
1013
+ veor q2, q2, q8
1014
+ veor q5, q5, q8
1015
+ veor q0, q0, q8
1016
+ veor q1, q1, q8
1017
+ bx lr
1018
+ .size _bsaes_encrypt8,.-_bsaes_encrypt8
1019
+ .type _bsaes_key_convert,%function
1020
+ .align 4
1021
+ _bsaes_key_convert:
1022
+ adr r6,.
1023
+ vld1.8 {q7}, [r4]! @ load round 0 key
1024
+ #if defined(__thumb2__) || defined(__APPLE__)
1025
+ adr r6,.LM0
1026
+ #else
1027
+ sub r6,r6,#_bsaes_key_convert-.LM0
1028
+ #endif
1029
+ vld1.8 {q15}, [r4]! @ load round 1 key
1030
+
1031
+ vmov.i8 q8, #0x01 @ bit masks
1032
+ vmov.i8 q9, #0x02
1033
+ vmov.i8 q10, #0x04
1034
+ vmov.i8 q11, #0x08
1035
+ vmov.i8 q12, #0x10
1036
+ vmov.i8 q13, #0x20
1037
+ vldmia r6, {q14} @ .LM0
1038
+
1039
+ #ifdef __ARMEL__
1040
+ vrev32.8 q7, q7
1041
+ vrev32.8 q15, q15
1042
+ #endif
1043
+ sub r5,r5,#1
1044
+ vstmia r12!, {q7} @ save round 0 key
1045
+ b .Lkey_loop
1046
+
1047
+ .align 4
1048
+ .Lkey_loop:
1049
+ vtbl.8 d14,{q15},d28
1050
+ vtbl.8 d15,{q15},d29
1051
+ vmov.i8 q6, #0x40
1052
+ vmov.i8 q15, #0x80
1053
+
1054
+ vtst.8 q0, q7, q8
1055
+ vtst.8 q1, q7, q9
1056
+ vtst.8 q2, q7, q10
1057
+ vtst.8 q3, q7, q11
1058
+ vtst.8 q4, q7, q12
1059
+ vtst.8 q5, q7, q13
1060
+ vtst.8 q6, q7, q6
1061
+ vtst.8 q7, q7, q15
1062
+ vld1.8 {q15}, [r4]! @ load next round key
1063
+ vmvn q0, q0 @ "pnot"
1064
+ vmvn q1, q1
1065
+ vmvn q5, q5
1066
+ vmvn q6, q6
1067
+ #ifdef __ARMEL__
1068
+ vrev32.8 q15, q15
1069
+ #endif
1070
+ subs r5,r5,#1
1071
+ vstmia r12!,{q0,q1,q2,q3,q4,q5,q6,q7} @ write bit-sliced round key
1072
+ bne .Lkey_loop
1073
+
1074
+ vmov.i8 q7,#0x63 @ compose .L63
1075
+ @ don't save last round key
1076
+ bx lr
1077
+ .size _bsaes_key_convert,.-_bsaes_key_convert
1078
+ .globl bsaes_cbc_encrypt
1079
+ .hidden bsaes_cbc_encrypt
1080
+ .type bsaes_cbc_encrypt,%function
1081
+ .align 5
1082
+ bsaes_cbc_encrypt:
1083
+ @ In OpenSSL, this function had a fallback to aes_nohw_cbc_encrypt for
1084
+ @ short inputs. We patch this out, using bsaes for all input sizes.
1085
+
1086
+ @ it is up to the caller to make sure we are called with enc == 0
1087
+
1088
+ mov ip, sp
1089
+ stmdb sp!, {r4,r5,r6,r7,r8,r9,r10, lr}
1090
+ VFP_ABI_PUSH
1091
+ ldr r8, [ip] @ IV is 1st arg on the stack
1092
+ mov r2, r2, lsr#4 @ len in 16 byte blocks
1093
+ sub sp, #0x10 @ scratch space to carry over the IV
1094
+ mov r9, sp @ save sp
1095
+
1096
+ ldr r10, [r3, #240] @ get # of rounds
1097
+ #ifndef BSAES_ASM_EXTENDED_KEY
1098
+ @ allocate the key schedule on the stack
1099
+ sub r12, sp, r10, lsl#7 @ 128 bytes per inner round key
1100
+ add r12, #96 @ sifze of bit-slices key schedule
1101
+
1102
+ @ populate the key schedule
1103
+ mov r4, r3 @ pass key
1104
+ mov r5, r10 @ pass # of rounds
1105
+ mov sp, r12 @ sp is sp
1106
+ bl _bsaes_key_convert
1107
+ vldmia sp, {q6}
1108
+ vstmia r12, {q15} @ save last round key
1109
+ veor q7, q7, q6 @ fix up round 0 key
1110
+ vstmia sp, {q7}
1111
+ #else
1112
+ ldr r12, [r3, #244]
1113
+ eors r12, #1
1114
+ beq 0f
1115
+
1116
+ @ populate the key schedule
1117
+ str r12, [r3, #244]
1118
+ mov r4, r3 @ pass key
1119
+ mov r5, r10 @ pass # of rounds
1120
+ add r12, r3, #248 @ pass key schedule
1121
+ bl _bsaes_key_convert
1122
+ add r4, r3, #248
1123
+ vldmia r4, {q6}
1124
+ vstmia r12, {q15} @ save last round key
1125
+ veor q7, q7, q6 @ fix up round 0 key
1126
+ vstmia r4, {q7}
1127
+
1128
+ .align 2
1129
+
1130
+ #endif
1131
+
1132
+ vld1.8 {q15}, [r8] @ load IV
1133
+ b .Lcbc_dec_loop
1134
+
1135
+ .align 4
1136
+ .Lcbc_dec_loop:
1137
+ subs r2, r2, #0x8
1138
+ bmi .Lcbc_dec_loop_finish
1139
+
1140
+ vld1.8 {q0,q1}, [r0]! @ load input
1141
+ vld1.8 {q2,q3}, [r0]!
1142
+ #ifndef BSAES_ASM_EXTENDED_KEY
1143
+ mov r4, sp @ pass the key
1144
+ #else
1145
+ add r4, r3, #248
1146
+ #endif
1147
+ vld1.8 {q4,q5}, [r0]!
1148
+ mov r5, r10
1149
+ vld1.8 {q6,q7}, [r0]
1150
+ sub r0, r0, #0x60
1151
+ vstmia r9, {q15} @ put aside IV
1152
+
1153
+ bl _bsaes_decrypt8
1154
+
1155
+ vldmia r9, {q14} @ reload IV
1156
+ vld1.8 {q8,q9}, [r0]! @ reload input
1157
+ veor q0, q0, q14 @ ^= IV
1158
+ vld1.8 {q10,q11}, [r0]!
1159
+ veor q1, q1, q8
1160
+ veor q6, q6, q9
1161
+ vld1.8 {q12,q13}, [r0]!
1162
+ veor q4, q4, q10
1163
+ veor q2, q2, q11
1164
+ vld1.8 {q14,q15}, [r0]!
1165
+ veor q7, q7, q12
1166
+ vst1.8 {q0,q1}, [r1]! @ write output
1167
+ veor q3, q3, q13
1168
+ vst1.8 {q6}, [r1]!
1169
+ veor q5, q5, q14
1170
+ vst1.8 {q4}, [r1]!
1171
+ vst1.8 {q2}, [r1]!
1172
+ vst1.8 {q7}, [r1]!
1173
+ vst1.8 {q3}, [r1]!
1174
+ vst1.8 {q5}, [r1]!
1175
+
1176
+ b .Lcbc_dec_loop
1177
+
1178
+ .Lcbc_dec_loop_finish:
1179
+ adds r2, r2, #8
1180
+ beq .Lcbc_dec_done
1181
+
1182
+ @ Set up most parameters for the _bsaes_decrypt8 call.
1183
+ #ifndef BSAES_ASM_EXTENDED_KEY
1184
+ mov r4, sp @ pass the key
1185
+ #else
1186
+ add r4, r3, #248
1187
+ #endif
1188
+ mov r5, r10
1189
+ vstmia r9, {q15} @ put aside IV
1190
+
1191
+ vld1.8 {q0}, [r0]! @ load input
1192
+ cmp r2, #2
1193
+ blo .Lcbc_dec_one
1194
+ vld1.8 {q1}, [r0]!
1195
+ beq .Lcbc_dec_two
1196
+ vld1.8 {q2}, [r0]!
1197
+ cmp r2, #4
1198
+ blo .Lcbc_dec_three
1199
+ vld1.8 {q3}, [r0]!
1200
+ beq .Lcbc_dec_four
1201
+ vld1.8 {q4}, [r0]!
1202
+ cmp r2, #6
1203
+ blo .Lcbc_dec_five
1204
+ vld1.8 {q5}, [r0]!
1205
+ beq .Lcbc_dec_six
1206
+ vld1.8 {q6}, [r0]!
1207
+ sub r0, r0, #0x70
1208
+
1209
+ bl _bsaes_decrypt8
1210
+
1211
+ vldmia r9, {q14} @ reload IV
1212
+ vld1.8 {q8,q9}, [r0]! @ reload input
1213
+ veor q0, q0, q14 @ ^= IV
1214
+ vld1.8 {q10,q11}, [r0]!
1215
+ veor q1, q1, q8
1216
+ veor q6, q6, q9
1217
+ vld1.8 {q12,q13}, [r0]!
1218
+ veor q4, q4, q10
1219
+ veor q2, q2, q11
1220
+ vld1.8 {q15}, [r0]!
1221
+ veor q7, q7, q12
1222
+ vst1.8 {q0,q1}, [r1]! @ write output
1223
+ veor q3, q3, q13
1224
+ vst1.8 {q6}, [r1]!
1225
+ vst1.8 {q4}, [r1]!
1226
+ vst1.8 {q2}, [r1]!
1227
+ vst1.8 {q7}, [r1]!
1228
+ vst1.8 {q3}, [r1]!
1229
+ b .Lcbc_dec_done
1230
+ .align 4
1231
+ .Lcbc_dec_six:
1232
+ sub r0, r0, #0x60
1233
+ bl _bsaes_decrypt8
1234
+ vldmia r9,{q14} @ reload IV
1235
+ vld1.8 {q8,q9}, [r0]! @ reload input
1236
+ veor q0, q0, q14 @ ^= IV
1237
+ vld1.8 {q10,q11}, [r0]!
1238
+ veor q1, q1, q8
1239
+ veor q6, q6, q9
1240
+ vld1.8 {q12}, [r0]!
1241
+ veor q4, q4, q10
1242
+ veor q2, q2, q11
1243
+ vld1.8 {q15}, [r0]!
1244
+ veor q7, q7, q12
1245
+ vst1.8 {q0,q1}, [r1]! @ write output
1246
+ vst1.8 {q6}, [r1]!
1247
+ vst1.8 {q4}, [r1]!
1248
+ vst1.8 {q2}, [r1]!
1249
+ vst1.8 {q7}, [r1]!
1250
+ b .Lcbc_dec_done
1251
+ .align 4
1252
+ .Lcbc_dec_five:
1253
+ sub r0, r0, #0x50
1254
+ bl _bsaes_decrypt8
1255
+ vldmia r9, {q14} @ reload IV
1256
+ vld1.8 {q8,q9}, [r0]! @ reload input
1257
+ veor q0, q0, q14 @ ^= IV
1258
+ vld1.8 {q10,q11}, [r0]!
1259
+ veor q1, q1, q8
1260
+ veor q6, q6, q9
1261
+ vld1.8 {q15}, [r0]!
1262
+ veor q4, q4, q10
1263
+ vst1.8 {q0,q1}, [r1]! @ write output
1264
+ veor q2, q2, q11
1265
+ vst1.8 {q6}, [r1]!
1266
+ vst1.8 {q4}, [r1]!
1267
+ vst1.8 {q2}, [r1]!
1268
+ b .Lcbc_dec_done
1269
+ .align 4
1270
+ .Lcbc_dec_four:
1271
+ sub r0, r0, #0x40
1272
+ bl _bsaes_decrypt8
1273
+ vldmia r9, {q14} @ reload IV
1274
+ vld1.8 {q8,q9}, [r0]! @ reload input
1275
+ veor q0, q0, q14 @ ^= IV
1276
+ vld1.8 {q10}, [r0]!
1277
+ veor q1, q1, q8
1278
+ veor q6, q6, q9
1279
+ vld1.8 {q15}, [r0]!
1280
+ veor q4, q4, q10
1281
+ vst1.8 {q0,q1}, [r1]! @ write output
1282
+ vst1.8 {q6}, [r1]!
1283
+ vst1.8 {q4}, [r1]!
1284
+ b .Lcbc_dec_done
1285
+ .align 4
1286
+ .Lcbc_dec_three:
1287
+ sub r0, r0, #0x30
1288
+ bl _bsaes_decrypt8
1289
+ vldmia r9, {q14} @ reload IV
1290
+ vld1.8 {q8,q9}, [r0]! @ reload input
1291
+ veor q0, q0, q14 @ ^= IV
1292
+ vld1.8 {q15}, [r0]!
1293
+ veor q1, q1, q8
1294
+ veor q6, q6, q9
1295
+ vst1.8 {q0,q1}, [r1]! @ write output
1296
+ vst1.8 {q6}, [r1]!
1297
+ b .Lcbc_dec_done
1298
+ .align 4
1299
+ .Lcbc_dec_two:
1300
+ sub r0, r0, #0x20
1301
+ bl _bsaes_decrypt8
1302
+ vldmia r9, {q14} @ reload IV
1303
+ vld1.8 {q8}, [r0]! @ reload input
1304
+ veor q0, q0, q14 @ ^= IV
1305
+ vld1.8 {q15}, [r0]! @ reload input
1306
+ veor q1, q1, q8
1307
+ vst1.8 {q0,q1}, [r1]! @ write output
1308
+ b .Lcbc_dec_done
1309
+ .align 4
1310
+ .Lcbc_dec_one:
1311
+ sub r0, r0, #0x10
1312
+ bl _bsaes_decrypt8
1313
+ vldmia r9, {q14} @ reload IV
1314
+ vld1.8 {q15}, [r0]! @ reload input
1315
+ veor q0, q0, q14 @ ^= IV
1316
+ vst1.8 {q0}, [r1]! @ write output
1317
+
1318
+ .Lcbc_dec_done:
1319
+ #ifndef BSAES_ASM_EXTENDED_KEY
1320
+ vmov.i32 q0, #0
1321
+ vmov.i32 q1, #0
1322
+ .Lcbc_dec_bzero:@ wipe key schedule [if any]
1323
+ vstmia sp!, {q0,q1}
1324
+ cmp sp, r9
1325
+ bne .Lcbc_dec_bzero
1326
+ #endif
1327
+
1328
+ mov sp, r9
1329
+ add sp, #0x10 @ add sp,r9,#0x10 is no good for thumb
1330
+ vst1.8 {q15}, [r8] @ return IV
1331
+ VFP_ABI_POP
1332
+ ldmia sp!, {r4,r5,r6,r7,r8,r9,r10, pc}
1333
+ .size bsaes_cbc_encrypt,.-bsaes_cbc_encrypt
1334
+ .globl bsaes_ctr32_encrypt_blocks
1335
+ .hidden bsaes_ctr32_encrypt_blocks
1336
+ .type bsaes_ctr32_encrypt_blocks,%function
1337
+ .align 5
1338
+ bsaes_ctr32_encrypt_blocks:
1339
+ @ In OpenSSL, short inputs fall back to aes_nohw_* here. We patch this
1340
+ @ out to retain a constant-time implementation.
1341
+ mov ip, sp
1342
+ stmdb sp!, {r4,r5,r6,r7,r8,r9,r10, lr}
1343
+ VFP_ABI_PUSH
1344
+ ldr r8, [ip] @ ctr is 1st arg on the stack
1345
+ sub sp, sp, #0x10 @ scratch space to carry over the ctr
1346
+ mov r9, sp @ save sp
1347
+
1348
+ ldr r10, [r3, #240] @ get # of rounds
1349
+ #ifndef BSAES_ASM_EXTENDED_KEY
1350
+ @ allocate the key schedule on the stack
1351
+ sub r12, sp, r10, lsl#7 @ 128 bytes per inner round key
1352
+ add r12, #96 @ size of bit-sliced key schedule
1353
+
1354
+ @ populate the key schedule
1355
+ mov r4, r3 @ pass key
1356
+ mov r5, r10 @ pass # of rounds
1357
+ mov sp, r12 @ sp is sp
1358
+ bl _bsaes_key_convert
1359
+ veor q7,q7,q15 @ fix up last round key
1360
+ vstmia r12, {q7} @ save last round key
1361
+
1362
+ vld1.8 {q0}, [r8] @ load counter
1363
+ #ifdef __APPLE__
1364
+ mov r8, #:lower16:(.LREVM0SR-.LM0)
1365
+ add r8, r6, r8
1366
+ #else
1367
+ add r8, r6, #.LREVM0SR-.LM0 @ borrow r8
1368
+ #endif
1369
+ vldmia sp, {q4} @ load round0 key
1370
+ #else
1371
+ ldr r12, [r3, #244]
1372
+ eors r12, #1
1373
+ beq 0f
1374
+
1375
+ @ populate the key schedule
1376
+ str r12, [r3, #244]
1377
+ mov r4, r3 @ pass key
1378
+ mov r5, r10 @ pass # of rounds
1379
+ add r12, r3, #248 @ pass key schedule
1380
+ bl _bsaes_key_convert
1381
+ veor q7,q7,q15 @ fix up last round key
1382
+ vstmia r12, {q7} @ save last round key
1383
+
1384
+ .align 2
1385
+ add r12, r3, #248
1386
+ vld1.8 {q0}, [r8] @ load counter
1387
+ adrl r8, .LREVM0SR @ borrow r8
1388
+ vldmia r12, {q4} @ load round0 key
1389
+ sub sp, #0x10 @ place for adjusted round0 key
1390
+ #endif
1391
+
1392
+ vmov.i32 q8,#1 @ compose 1<<96
1393
+ veor q9,q9,q9
1394
+ vrev32.8 q0,q0
1395
+ vext.8 q8,q9,q8,#4
1396
+ vrev32.8 q4,q4
1397
+ vadd.u32 q9,q8,q8 @ compose 2<<96
1398
+ vstmia sp, {q4} @ save adjusted round0 key
1399
+ b .Lctr_enc_loop
1400
+
1401
+ .align 4
1402
+ .Lctr_enc_loop:
1403
+ vadd.u32 q10, q8, q9 @ compose 3<<96
1404
+ vadd.u32 q1, q0, q8 @ +1
1405
+ vadd.u32 q2, q0, q9 @ +2
1406
+ vadd.u32 q3, q0, q10 @ +3
1407
+ vadd.u32 q4, q1, q10
1408
+ vadd.u32 q5, q2, q10
1409
+ vadd.u32 q6, q3, q10
1410
+ vadd.u32 q7, q4, q10
1411
+ vadd.u32 q10, q5, q10 @ next counter
1412
+
1413
+ @ Borrow prologue from _bsaes_encrypt8 to use the opportunity
1414
+ @ to flip byte order in 32-bit counter
1415
+
1416
+ vldmia sp, {q9} @ load round0 key
1417
+ #ifndef BSAES_ASM_EXTENDED_KEY
1418
+ add r4, sp, #0x10 @ pass next round key
1419
+ #else
1420
+ add r4, r3, #264
1421
+ #endif
1422
+ vldmia r8, {q8} @ .LREVM0SR
1423
+ mov r5, r10 @ pass rounds
1424
+ vstmia r9, {q10} @ save next counter
1425
+ #ifdef __APPLE__
1426
+ mov r6, #:lower16:(.LREVM0SR-.LSR)
1427
+ sub r6, r8, r6
1428
+ #else
1429
+ sub r6, r8, #.LREVM0SR-.LSR @ pass constants
1430
+ #endif
1431
+
1432
+ bl _bsaes_encrypt8_alt
1433
+
1434
+ subs r2, r2, #8
1435
+ blo .Lctr_enc_loop_done
1436
+
1437
+ vld1.8 {q8,q9}, [r0]! @ load input
1438
+ vld1.8 {q10,q11}, [r0]!
1439
+ veor q0, q8
1440
+ veor q1, q9
1441
+ vld1.8 {q12,q13}, [r0]!
1442
+ veor q4, q10
1443
+ veor q6, q11
1444
+ vld1.8 {q14,q15}, [r0]!
1445
+ veor q3, q12
1446
+ vst1.8 {q0,q1}, [r1]! @ write output
1447
+ veor q7, q13
1448
+ veor q2, q14
1449
+ vst1.8 {q4}, [r1]!
1450
+ veor q5, q15
1451
+ vst1.8 {q6}, [r1]!
1452
+ vmov.i32 q8, #1 @ compose 1<<96
1453
+ vst1.8 {q3}, [r1]!
1454
+ veor q9, q9, q9
1455
+ vst1.8 {q7}, [r1]!
1456
+ vext.8 q8, q9, q8, #4
1457
+ vst1.8 {q2}, [r1]!
1458
+ vadd.u32 q9,q8,q8 @ compose 2<<96
1459
+ vst1.8 {q5}, [r1]!
1460
+ vldmia r9, {q0} @ load counter
1461
+
1462
+ bne .Lctr_enc_loop
1463
+ b .Lctr_enc_done
1464
+
1465
+ .align 4
1466
+ .Lctr_enc_loop_done:
1467
+ add r2, r2, #8
1468
+ vld1.8 {q8}, [r0]! @ load input
1469
+ veor q0, q8
1470
+ vst1.8 {q0}, [r1]! @ write output
1471
+ cmp r2, #2
1472
+ blo .Lctr_enc_done
1473
+ vld1.8 {q9}, [r0]!
1474
+ veor q1, q9
1475
+ vst1.8 {q1}, [r1]!
1476
+ beq .Lctr_enc_done
1477
+ vld1.8 {q10}, [r0]!
1478
+ veor q4, q10
1479
+ vst1.8 {q4}, [r1]!
1480
+ cmp r2, #4
1481
+ blo .Lctr_enc_done
1482
+ vld1.8 {q11}, [r0]!
1483
+ veor q6, q11
1484
+ vst1.8 {q6}, [r1]!
1485
+ beq .Lctr_enc_done
1486
+ vld1.8 {q12}, [r0]!
1487
+ veor q3, q12
1488
+ vst1.8 {q3}, [r1]!
1489
+ cmp r2, #6
1490
+ blo .Lctr_enc_done
1491
+ vld1.8 {q13}, [r0]!
1492
+ veor q7, q13
1493
+ vst1.8 {q7}, [r1]!
1494
+ beq .Lctr_enc_done
1495
+ vld1.8 {q14}, [r0]
1496
+ veor q2, q14
1497
+ vst1.8 {q2}, [r1]!
1498
+
1499
+ .Lctr_enc_done:
1500
+ vmov.i32 q0, #0
1501
+ vmov.i32 q1, #0
1502
+ #ifndef BSAES_ASM_EXTENDED_KEY
1503
+ .Lctr_enc_bzero:@ wipe key schedule [if any]
1504
+ vstmia sp!, {q0,q1}
1505
+ cmp sp, r9
1506
+ bne .Lctr_enc_bzero
1507
+ #else
1508
+ vstmia sp, {q0,q1}
1509
+ #endif
1510
+
1511
+ mov sp, r9
1512
+ add sp, #0x10 @ add sp,r9,#0x10 is no good for thumb
1513
+ VFP_ABI_POP
1514
+ ldmia sp!, {r4,r5,r6,r7,r8,r9,r10, pc} @ return
1515
+
1516
+ @ OpenSSL contains aes_nohw_* fallback code here. We patch this
1517
+ @ out to retain a constant-time implementation.
1518
+ .size bsaes_ctr32_encrypt_blocks,.-bsaes_ctr32_encrypt_blocks
1519
+ #endif
1520
+ #endif // !OPENSSL_NO_ASM && defined(OPENSSL_ARM) && defined(__ELF__)