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,2840 @@
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 2007-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
+
27
+ @ SHA256 block procedure for ARMv4. May 2007.
28
+
29
+ @ Performance is ~2x better than gcc 3.4 generated code and in "abso-
30
+ @ lute" terms is ~2250 cycles per 64-byte block or ~35 cycles per
31
+ @ byte [on single-issue Xscale PXA250 core].
32
+
33
+ @ July 2010.
34
+ @
35
+ @ Rescheduling for dual-issue pipeline resulted in 22% improvement on
36
+ @ Cortex A8 core and ~20 cycles per processed byte.
37
+
38
+ @ February 2011.
39
+ @
40
+ @ Profiler-assisted and platform-specific optimization resulted in 16%
41
+ @ improvement on Cortex A8 core and ~15.4 cycles per processed byte.
42
+
43
+ @ September 2013.
44
+ @
45
+ @ Add NEON implementation. On Cortex A8 it was measured to process one
46
+ @ byte in 12.5 cycles or 23% faster than integer-only code. Snapdragon
47
+ @ S4 does it in 12.5 cycles too, but it's 50% faster than integer-only
48
+ @ code (meaning that latter performs sub-optimally, nothing was done
49
+ @ about it).
50
+
51
+ @ May 2014.
52
+ @
53
+ @ Add ARMv8 code path performing at 2.0 cpb on Apple A7.
54
+
55
+ #ifdef __KERNEL__
56
+ # define __ARM_ARCH __LINUX_ARM_ARCH__
57
+ # define __ARM_MAX_ARCH__ 7
58
+ #endif
59
+
60
+ @ Silence ARMv8 deprecated IT instruction warnings. This file is used by both
61
+ @ ARMv7 and ARMv8 processors. It does have ARMv8-only code, but those
62
+ @ instructions are manually-encoded. (See unsha256.)
63
+ .arch armv7-a
64
+
65
+ .text
66
+ #if defined(__thumb2__)
67
+ .syntax unified
68
+ .thumb
69
+ #else
70
+ .code 32
71
+ #endif
72
+
73
+ .type K256,%object
74
+ .align 5
75
+ K256:
76
+ .word 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
77
+ .word 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
78
+ .word 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
79
+ .word 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
80
+ .word 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
81
+ .word 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
82
+ .word 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
83
+ .word 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
84
+ .word 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
85
+ .word 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
86
+ .word 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
87
+ .word 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
88
+ .word 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
89
+ .word 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
90
+ .word 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
91
+ .word 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
92
+ .size K256,.-K256
93
+ .word 0 @ terminator
94
+ .align 5
95
+
96
+ .globl sha256_block_data_order_nohw
97
+ .hidden sha256_block_data_order_nohw
98
+ .type sha256_block_data_order_nohw,%function
99
+ sha256_block_data_order_nohw:
100
+ add r2,r1,r2,lsl#6 @ len to point at the end of inp
101
+ stmdb sp!,{r0,r1,r2,r4-r11,lr}
102
+ ldmia r0,{r4,r5,r6,r7,r8,r9,r10,r11}
103
+ adr r14,K256
104
+ sub sp,sp,#16*4 @ alloca(X[16])
105
+ .Loop:
106
+ # if __ARM_ARCH>=7
107
+ ldr r2,[r1],#4
108
+ # else
109
+ ldrb r2,[r1,#3]
110
+ # endif
111
+ eor r3,r5,r6 @ magic
112
+ eor r12,r12,r12
113
+ #if __ARM_ARCH>=7
114
+ @ ldr r2,[r1],#4 @ 0
115
+ # if 0==15
116
+ str r1,[sp,#17*4] @ make room for r1
117
+ # endif
118
+ eor r0,r8,r8,ror#5
119
+ add r4,r4,r12 @ h+=Maj(a,b,c) from the past
120
+ eor r0,r0,r8,ror#19 @ Sigma1(e)
121
+ # ifndef __ARMEB__
122
+ rev r2,r2
123
+ # endif
124
+ #else
125
+ @ ldrb r2,[r1,#3] @ 0
126
+ add r4,r4,r12 @ h+=Maj(a,b,c) from the past
127
+ ldrb r12,[r1,#2]
128
+ ldrb r0,[r1,#1]
129
+ orr r2,r2,r12,lsl#8
130
+ ldrb r12,[r1],#4
131
+ orr r2,r2,r0,lsl#16
132
+ # if 0==15
133
+ str r1,[sp,#17*4] @ make room for r1
134
+ # endif
135
+ eor r0,r8,r8,ror#5
136
+ orr r2,r2,r12,lsl#24
137
+ eor r0,r0,r8,ror#19 @ Sigma1(e)
138
+ #endif
139
+ ldr r12,[r14],#4 @ *K256++
140
+ add r11,r11,r2 @ h+=X[i]
141
+ str r2,[sp,#0*4]
142
+ eor r2,r9,r10
143
+ add r11,r11,r0,ror#6 @ h+=Sigma1(e)
144
+ and r2,r2,r8
145
+ add r11,r11,r12 @ h+=K256[i]
146
+ eor r2,r2,r10 @ Ch(e,f,g)
147
+ eor r0,r4,r4,ror#11
148
+ add r11,r11,r2 @ h+=Ch(e,f,g)
149
+ #if 0==31
150
+ and r12,r12,#0xff
151
+ cmp r12,#0xf2 @ done?
152
+ #endif
153
+ #if 0<15
154
+ # if __ARM_ARCH>=7
155
+ ldr r2,[r1],#4 @ prefetch
156
+ # else
157
+ ldrb r2,[r1,#3]
158
+ # endif
159
+ eor r12,r4,r5 @ a^b, b^c in next round
160
+ #else
161
+ ldr r2,[sp,#2*4] @ from future BODY_16_xx
162
+ eor r12,r4,r5 @ a^b, b^c in next round
163
+ ldr r1,[sp,#15*4] @ from future BODY_16_xx
164
+ #endif
165
+ eor r0,r0,r4,ror#20 @ Sigma0(a)
166
+ and r3,r3,r12 @ (b^c)&=(a^b)
167
+ add r7,r7,r11 @ d+=h
168
+ eor r3,r3,r5 @ Maj(a,b,c)
169
+ add r11,r11,r0,ror#2 @ h+=Sigma0(a)
170
+ @ add r11,r11,r3 @ h+=Maj(a,b,c)
171
+ #if __ARM_ARCH>=7
172
+ @ ldr r2,[r1],#4 @ 1
173
+ # if 1==15
174
+ str r1,[sp,#17*4] @ make room for r1
175
+ # endif
176
+ eor r0,r7,r7,ror#5
177
+ add r11,r11,r3 @ h+=Maj(a,b,c) from the past
178
+ eor r0,r0,r7,ror#19 @ Sigma1(e)
179
+ # ifndef __ARMEB__
180
+ rev r2,r2
181
+ # endif
182
+ #else
183
+ @ ldrb r2,[r1,#3] @ 1
184
+ add r11,r11,r3 @ h+=Maj(a,b,c) from the past
185
+ ldrb r3,[r1,#2]
186
+ ldrb r0,[r1,#1]
187
+ orr r2,r2,r3,lsl#8
188
+ ldrb r3,[r1],#4
189
+ orr r2,r2,r0,lsl#16
190
+ # if 1==15
191
+ str r1,[sp,#17*4] @ make room for r1
192
+ # endif
193
+ eor r0,r7,r7,ror#5
194
+ orr r2,r2,r3,lsl#24
195
+ eor r0,r0,r7,ror#19 @ Sigma1(e)
196
+ #endif
197
+ ldr r3,[r14],#4 @ *K256++
198
+ add r10,r10,r2 @ h+=X[i]
199
+ str r2,[sp,#1*4]
200
+ eor r2,r8,r9
201
+ add r10,r10,r0,ror#6 @ h+=Sigma1(e)
202
+ and r2,r2,r7
203
+ add r10,r10,r3 @ h+=K256[i]
204
+ eor r2,r2,r9 @ Ch(e,f,g)
205
+ eor r0,r11,r11,ror#11
206
+ add r10,r10,r2 @ h+=Ch(e,f,g)
207
+ #if 1==31
208
+ and r3,r3,#0xff
209
+ cmp r3,#0xf2 @ done?
210
+ #endif
211
+ #if 1<15
212
+ # if __ARM_ARCH>=7
213
+ ldr r2,[r1],#4 @ prefetch
214
+ # else
215
+ ldrb r2,[r1,#3]
216
+ # endif
217
+ eor r3,r11,r4 @ a^b, b^c in next round
218
+ #else
219
+ ldr r2,[sp,#3*4] @ from future BODY_16_xx
220
+ eor r3,r11,r4 @ a^b, b^c in next round
221
+ ldr r1,[sp,#0*4] @ from future BODY_16_xx
222
+ #endif
223
+ eor r0,r0,r11,ror#20 @ Sigma0(a)
224
+ and r12,r12,r3 @ (b^c)&=(a^b)
225
+ add r6,r6,r10 @ d+=h
226
+ eor r12,r12,r4 @ Maj(a,b,c)
227
+ add r10,r10,r0,ror#2 @ h+=Sigma0(a)
228
+ @ add r10,r10,r12 @ h+=Maj(a,b,c)
229
+ #if __ARM_ARCH>=7
230
+ @ ldr r2,[r1],#4 @ 2
231
+ # if 2==15
232
+ str r1,[sp,#17*4] @ make room for r1
233
+ # endif
234
+ eor r0,r6,r6,ror#5
235
+ add r10,r10,r12 @ h+=Maj(a,b,c) from the past
236
+ eor r0,r0,r6,ror#19 @ Sigma1(e)
237
+ # ifndef __ARMEB__
238
+ rev r2,r2
239
+ # endif
240
+ #else
241
+ @ ldrb r2,[r1,#3] @ 2
242
+ add r10,r10,r12 @ h+=Maj(a,b,c) from the past
243
+ ldrb r12,[r1,#2]
244
+ ldrb r0,[r1,#1]
245
+ orr r2,r2,r12,lsl#8
246
+ ldrb r12,[r1],#4
247
+ orr r2,r2,r0,lsl#16
248
+ # if 2==15
249
+ str r1,[sp,#17*4] @ make room for r1
250
+ # endif
251
+ eor r0,r6,r6,ror#5
252
+ orr r2,r2,r12,lsl#24
253
+ eor r0,r0,r6,ror#19 @ Sigma1(e)
254
+ #endif
255
+ ldr r12,[r14],#4 @ *K256++
256
+ add r9,r9,r2 @ h+=X[i]
257
+ str r2,[sp,#2*4]
258
+ eor r2,r7,r8
259
+ add r9,r9,r0,ror#6 @ h+=Sigma1(e)
260
+ and r2,r2,r6
261
+ add r9,r9,r12 @ h+=K256[i]
262
+ eor r2,r2,r8 @ Ch(e,f,g)
263
+ eor r0,r10,r10,ror#11
264
+ add r9,r9,r2 @ h+=Ch(e,f,g)
265
+ #if 2==31
266
+ and r12,r12,#0xff
267
+ cmp r12,#0xf2 @ done?
268
+ #endif
269
+ #if 2<15
270
+ # if __ARM_ARCH>=7
271
+ ldr r2,[r1],#4 @ prefetch
272
+ # else
273
+ ldrb r2,[r1,#3]
274
+ # endif
275
+ eor r12,r10,r11 @ a^b, b^c in next round
276
+ #else
277
+ ldr r2,[sp,#4*4] @ from future BODY_16_xx
278
+ eor r12,r10,r11 @ a^b, b^c in next round
279
+ ldr r1,[sp,#1*4] @ from future BODY_16_xx
280
+ #endif
281
+ eor r0,r0,r10,ror#20 @ Sigma0(a)
282
+ and r3,r3,r12 @ (b^c)&=(a^b)
283
+ add r5,r5,r9 @ d+=h
284
+ eor r3,r3,r11 @ Maj(a,b,c)
285
+ add r9,r9,r0,ror#2 @ h+=Sigma0(a)
286
+ @ add r9,r9,r3 @ h+=Maj(a,b,c)
287
+ #if __ARM_ARCH>=7
288
+ @ ldr r2,[r1],#4 @ 3
289
+ # if 3==15
290
+ str r1,[sp,#17*4] @ make room for r1
291
+ # endif
292
+ eor r0,r5,r5,ror#5
293
+ add r9,r9,r3 @ h+=Maj(a,b,c) from the past
294
+ eor r0,r0,r5,ror#19 @ Sigma1(e)
295
+ # ifndef __ARMEB__
296
+ rev r2,r2
297
+ # endif
298
+ #else
299
+ @ ldrb r2,[r1,#3] @ 3
300
+ add r9,r9,r3 @ h+=Maj(a,b,c) from the past
301
+ ldrb r3,[r1,#2]
302
+ ldrb r0,[r1,#1]
303
+ orr r2,r2,r3,lsl#8
304
+ ldrb r3,[r1],#4
305
+ orr r2,r2,r0,lsl#16
306
+ # if 3==15
307
+ str r1,[sp,#17*4] @ make room for r1
308
+ # endif
309
+ eor r0,r5,r5,ror#5
310
+ orr r2,r2,r3,lsl#24
311
+ eor r0,r0,r5,ror#19 @ Sigma1(e)
312
+ #endif
313
+ ldr r3,[r14],#4 @ *K256++
314
+ add r8,r8,r2 @ h+=X[i]
315
+ str r2,[sp,#3*4]
316
+ eor r2,r6,r7
317
+ add r8,r8,r0,ror#6 @ h+=Sigma1(e)
318
+ and r2,r2,r5
319
+ add r8,r8,r3 @ h+=K256[i]
320
+ eor r2,r2,r7 @ Ch(e,f,g)
321
+ eor r0,r9,r9,ror#11
322
+ add r8,r8,r2 @ h+=Ch(e,f,g)
323
+ #if 3==31
324
+ and r3,r3,#0xff
325
+ cmp r3,#0xf2 @ done?
326
+ #endif
327
+ #if 3<15
328
+ # if __ARM_ARCH>=7
329
+ ldr r2,[r1],#4 @ prefetch
330
+ # else
331
+ ldrb r2,[r1,#3]
332
+ # endif
333
+ eor r3,r9,r10 @ a^b, b^c in next round
334
+ #else
335
+ ldr r2,[sp,#5*4] @ from future BODY_16_xx
336
+ eor r3,r9,r10 @ a^b, b^c in next round
337
+ ldr r1,[sp,#2*4] @ from future BODY_16_xx
338
+ #endif
339
+ eor r0,r0,r9,ror#20 @ Sigma0(a)
340
+ and r12,r12,r3 @ (b^c)&=(a^b)
341
+ add r4,r4,r8 @ d+=h
342
+ eor r12,r12,r10 @ Maj(a,b,c)
343
+ add r8,r8,r0,ror#2 @ h+=Sigma0(a)
344
+ @ add r8,r8,r12 @ h+=Maj(a,b,c)
345
+ #if __ARM_ARCH>=7
346
+ @ ldr r2,[r1],#4 @ 4
347
+ # if 4==15
348
+ str r1,[sp,#17*4] @ make room for r1
349
+ # endif
350
+ eor r0,r4,r4,ror#5
351
+ add r8,r8,r12 @ h+=Maj(a,b,c) from the past
352
+ eor r0,r0,r4,ror#19 @ Sigma1(e)
353
+ # ifndef __ARMEB__
354
+ rev r2,r2
355
+ # endif
356
+ #else
357
+ @ ldrb r2,[r1,#3] @ 4
358
+ add r8,r8,r12 @ h+=Maj(a,b,c) from the past
359
+ ldrb r12,[r1,#2]
360
+ ldrb r0,[r1,#1]
361
+ orr r2,r2,r12,lsl#8
362
+ ldrb r12,[r1],#4
363
+ orr r2,r2,r0,lsl#16
364
+ # if 4==15
365
+ str r1,[sp,#17*4] @ make room for r1
366
+ # endif
367
+ eor r0,r4,r4,ror#5
368
+ orr r2,r2,r12,lsl#24
369
+ eor r0,r0,r4,ror#19 @ Sigma1(e)
370
+ #endif
371
+ ldr r12,[r14],#4 @ *K256++
372
+ add r7,r7,r2 @ h+=X[i]
373
+ str r2,[sp,#4*4]
374
+ eor r2,r5,r6
375
+ add r7,r7,r0,ror#6 @ h+=Sigma1(e)
376
+ and r2,r2,r4
377
+ add r7,r7,r12 @ h+=K256[i]
378
+ eor r2,r2,r6 @ Ch(e,f,g)
379
+ eor r0,r8,r8,ror#11
380
+ add r7,r7,r2 @ h+=Ch(e,f,g)
381
+ #if 4==31
382
+ and r12,r12,#0xff
383
+ cmp r12,#0xf2 @ done?
384
+ #endif
385
+ #if 4<15
386
+ # if __ARM_ARCH>=7
387
+ ldr r2,[r1],#4 @ prefetch
388
+ # else
389
+ ldrb r2,[r1,#3]
390
+ # endif
391
+ eor r12,r8,r9 @ a^b, b^c in next round
392
+ #else
393
+ ldr r2,[sp,#6*4] @ from future BODY_16_xx
394
+ eor r12,r8,r9 @ a^b, b^c in next round
395
+ ldr r1,[sp,#3*4] @ from future BODY_16_xx
396
+ #endif
397
+ eor r0,r0,r8,ror#20 @ Sigma0(a)
398
+ and r3,r3,r12 @ (b^c)&=(a^b)
399
+ add r11,r11,r7 @ d+=h
400
+ eor r3,r3,r9 @ Maj(a,b,c)
401
+ add r7,r7,r0,ror#2 @ h+=Sigma0(a)
402
+ @ add r7,r7,r3 @ h+=Maj(a,b,c)
403
+ #if __ARM_ARCH>=7
404
+ @ ldr r2,[r1],#4 @ 5
405
+ # if 5==15
406
+ str r1,[sp,#17*4] @ make room for r1
407
+ # endif
408
+ eor r0,r11,r11,ror#5
409
+ add r7,r7,r3 @ h+=Maj(a,b,c) from the past
410
+ eor r0,r0,r11,ror#19 @ Sigma1(e)
411
+ # ifndef __ARMEB__
412
+ rev r2,r2
413
+ # endif
414
+ #else
415
+ @ ldrb r2,[r1,#3] @ 5
416
+ add r7,r7,r3 @ h+=Maj(a,b,c) from the past
417
+ ldrb r3,[r1,#2]
418
+ ldrb r0,[r1,#1]
419
+ orr r2,r2,r3,lsl#8
420
+ ldrb r3,[r1],#4
421
+ orr r2,r2,r0,lsl#16
422
+ # if 5==15
423
+ str r1,[sp,#17*4] @ make room for r1
424
+ # endif
425
+ eor r0,r11,r11,ror#5
426
+ orr r2,r2,r3,lsl#24
427
+ eor r0,r0,r11,ror#19 @ Sigma1(e)
428
+ #endif
429
+ ldr r3,[r14],#4 @ *K256++
430
+ add r6,r6,r2 @ h+=X[i]
431
+ str r2,[sp,#5*4]
432
+ eor r2,r4,r5
433
+ add r6,r6,r0,ror#6 @ h+=Sigma1(e)
434
+ and r2,r2,r11
435
+ add r6,r6,r3 @ h+=K256[i]
436
+ eor r2,r2,r5 @ Ch(e,f,g)
437
+ eor r0,r7,r7,ror#11
438
+ add r6,r6,r2 @ h+=Ch(e,f,g)
439
+ #if 5==31
440
+ and r3,r3,#0xff
441
+ cmp r3,#0xf2 @ done?
442
+ #endif
443
+ #if 5<15
444
+ # if __ARM_ARCH>=7
445
+ ldr r2,[r1],#4 @ prefetch
446
+ # else
447
+ ldrb r2,[r1,#3]
448
+ # endif
449
+ eor r3,r7,r8 @ a^b, b^c in next round
450
+ #else
451
+ ldr r2,[sp,#7*4] @ from future BODY_16_xx
452
+ eor r3,r7,r8 @ a^b, b^c in next round
453
+ ldr r1,[sp,#4*4] @ from future BODY_16_xx
454
+ #endif
455
+ eor r0,r0,r7,ror#20 @ Sigma0(a)
456
+ and r12,r12,r3 @ (b^c)&=(a^b)
457
+ add r10,r10,r6 @ d+=h
458
+ eor r12,r12,r8 @ Maj(a,b,c)
459
+ add r6,r6,r0,ror#2 @ h+=Sigma0(a)
460
+ @ add r6,r6,r12 @ h+=Maj(a,b,c)
461
+ #if __ARM_ARCH>=7
462
+ @ ldr r2,[r1],#4 @ 6
463
+ # if 6==15
464
+ str r1,[sp,#17*4] @ make room for r1
465
+ # endif
466
+ eor r0,r10,r10,ror#5
467
+ add r6,r6,r12 @ h+=Maj(a,b,c) from the past
468
+ eor r0,r0,r10,ror#19 @ Sigma1(e)
469
+ # ifndef __ARMEB__
470
+ rev r2,r2
471
+ # endif
472
+ #else
473
+ @ ldrb r2,[r1,#3] @ 6
474
+ add r6,r6,r12 @ h+=Maj(a,b,c) from the past
475
+ ldrb r12,[r1,#2]
476
+ ldrb r0,[r1,#1]
477
+ orr r2,r2,r12,lsl#8
478
+ ldrb r12,[r1],#4
479
+ orr r2,r2,r0,lsl#16
480
+ # if 6==15
481
+ str r1,[sp,#17*4] @ make room for r1
482
+ # endif
483
+ eor r0,r10,r10,ror#5
484
+ orr r2,r2,r12,lsl#24
485
+ eor r0,r0,r10,ror#19 @ Sigma1(e)
486
+ #endif
487
+ ldr r12,[r14],#4 @ *K256++
488
+ add r5,r5,r2 @ h+=X[i]
489
+ str r2,[sp,#6*4]
490
+ eor r2,r11,r4
491
+ add r5,r5,r0,ror#6 @ h+=Sigma1(e)
492
+ and r2,r2,r10
493
+ add r5,r5,r12 @ h+=K256[i]
494
+ eor r2,r2,r4 @ Ch(e,f,g)
495
+ eor r0,r6,r6,ror#11
496
+ add r5,r5,r2 @ h+=Ch(e,f,g)
497
+ #if 6==31
498
+ and r12,r12,#0xff
499
+ cmp r12,#0xf2 @ done?
500
+ #endif
501
+ #if 6<15
502
+ # if __ARM_ARCH>=7
503
+ ldr r2,[r1],#4 @ prefetch
504
+ # else
505
+ ldrb r2,[r1,#3]
506
+ # endif
507
+ eor r12,r6,r7 @ a^b, b^c in next round
508
+ #else
509
+ ldr r2,[sp,#8*4] @ from future BODY_16_xx
510
+ eor r12,r6,r7 @ a^b, b^c in next round
511
+ ldr r1,[sp,#5*4] @ from future BODY_16_xx
512
+ #endif
513
+ eor r0,r0,r6,ror#20 @ Sigma0(a)
514
+ and r3,r3,r12 @ (b^c)&=(a^b)
515
+ add r9,r9,r5 @ d+=h
516
+ eor r3,r3,r7 @ Maj(a,b,c)
517
+ add r5,r5,r0,ror#2 @ h+=Sigma0(a)
518
+ @ add r5,r5,r3 @ h+=Maj(a,b,c)
519
+ #if __ARM_ARCH>=7
520
+ @ ldr r2,[r1],#4 @ 7
521
+ # if 7==15
522
+ str r1,[sp,#17*4] @ make room for r1
523
+ # endif
524
+ eor r0,r9,r9,ror#5
525
+ add r5,r5,r3 @ h+=Maj(a,b,c) from the past
526
+ eor r0,r0,r9,ror#19 @ Sigma1(e)
527
+ # ifndef __ARMEB__
528
+ rev r2,r2
529
+ # endif
530
+ #else
531
+ @ ldrb r2,[r1,#3] @ 7
532
+ add r5,r5,r3 @ h+=Maj(a,b,c) from the past
533
+ ldrb r3,[r1,#2]
534
+ ldrb r0,[r1,#1]
535
+ orr r2,r2,r3,lsl#8
536
+ ldrb r3,[r1],#4
537
+ orr r2,r2,r0,lsl#16
538
+ # if 7==15
539
+ str r1,[sp,#17*4] @ make room for r1
540
+ # endif
541
+ eor r0,r9,r9,ror#5
542
+ orr r2,r2,r3,lsl#24
543
+ eor r0,r0,r9,ror#19 @ Sigma1(e)
544
+ #endif
545
+ ldr r3,[r14],#4 @ *K256++
546
+ add r4,r4,r2 @ h+=X[i]
547
+ str r2,[sp,#7*4]
548
+ eor r2,r10,r11
549
+ add r4,r4,r0,ror#6 @ h+=Sigma1(e)
550
+ and r2,r2,r9
551
+ add r4,r4,r3 @ h+=K256[i]
552
+ eor r2,r2,r11 @ Ch(e,f,g)
553
+ eor r0,r5,r5,ror#11
554
+ add r4,r4,r2 @ h+=Ch(e,f,g)
555
+ #if 7==31
556
+ and r3,r3,#0xff
557
+ cmp r3,#0xf2 @ done?
558
+ #endif
559
+ #if 7<15
560
+ # if __ARM_ARCH>=7
561
+ ldr r2,[r1],#4 @ prefetch
562
+ # else
563
+ ldrb r2,[r1,#3]
564
+ # endif
565
+ eor r3,r5,r6 @ a^b, b^c in next round
566
+ #else
567
+ ldr r2,[sp,#9*4] @ from future BODY_16_xx
568
+ eor r3,r5,r6 @ a^b, b^c in next round
569
+ ldr r1,[sp,#6*4] @ from future BODY_16_xx
570
+ #endif
571
+ eor r0,r0,r5,ror#20 @ Sigma0(a)
572
+ and r12,r12,r3 @ (b^c)&=(a^b)
573
+ add r8,r8,r4 @ d+=h
574
+ eor r12,r12,r6 @ Maj(a,b,c)
575
+ add r4,r4,r0,ror#2 @ h+=Sigma0(a)
576
+ @ add r4,r4,r12 @ h+=Maj(a,b,c)
577
+ #if __ARM_ARCH>=7
578
+ @ ldr r2,[r1],#4 @ 8
579
+ # if 8==15
580
+ str r1,[sp,#17*4] @ make room for r1
581
+ # endif
582
+ eor r0,r8,r8,ror#5
583
+ add r4,r4,r12 @ h+=Maj(a,b,c) from the past
584
+ eor r0,r0,r8,ror#19 @ Sigma1(e)
585
+ # ifndef __ARMEB__
586
+ rev r2,r2
587
+ # endif
588
+ #else
589
+ @ ldrb r2,[r1,#3] @ 8
590
+ add r4,r4,r12 @ h+=Maj(a,b,c) from the past
591
+ ldrb r12,[r1,#2]
592
+ ldrb r0,[r1,#1]
593
+ orr r2,r2,r12,lsl#8
594
+ ldrb r12,[r1],#4
595
+ orr r2,r2,r0,lsl#16
596
+ # if 8==15
597
+ str r1,[sp,#17*4] @ make room for r1
598
+ # endif
599
+ eor r0,r8,r8,ror#5
600
+ orr r2,r2,r12,lsl#24
601
+ eor r0,r0,r8,ror#19 @ Sigma1(e)
602
+ #endif
603
+ ldr r12,[r14],#4 @ *K256++
604
+ add r11,r11,r2 @ h+=X[i]
605
+ str r2,[sp,#8*4]
606
+ eor r2,r9,r10
607
+ add r11,r11,r0,ror#6 @ h+=Sigma1(e)
608
+ and r2,r2,r8
609
+ add r11,r11,r12 @ h+=K256[i]
610
+ eor r2,r2,r10 @ Ch(e,f,g)
611
+ eor r0,r4,r4,ror#11
612
+ add r11,r11,r2 @ h+=Ch(e,f,g)
613
+ #if 8==31
614
+ and r12,r12,#0xff
615
+ cmp r12,#0xf2 @ done?
616
+ #endif
617
+ #if 8<15
618
+ # if __ARM_ARCH>=7
619
+ ldr r2,[r1],#4 @ prefetch
620
+ # else
621
+ ldrb r2,[r1,#3]
622
+ # endif
623
+ eor r12,r4,r5 @ a^b, b^c in next round
624
+ #else
625
+ ldr r2,[sp,#10*4] @ from future BODY_16_xx
626
+ eor r12,r4,r5 @ a^b, b^c in next round
627
+ ldr r1,[sp,#7*4] @ from future BODY_16_xx
628
+ #endif
629
+ eor r0,r0,r4,ror#20 @ Sigma0(a)
630
+ and r3,r3,r12 @ (b^c)&=(a^b)
631
+ add r7,r7,r11 @ d+=h
632
+ eor r3,r3,r5 @ Maj(a,b,c)
633
+ add r11,r11,r0,ror#2 @ h+=Sigma0(a)
634
+ @ add r11,r11,r3 @ h+=Maj(a,b,c)
635
+ #if __ARM_ARCH>=7
636
+ @ ldr r2,[r1],#4 @ 9
637
+ # if 9==15
638
+ str r1,[sp,#17*4] @ make room for r1
639
+ # endif
640
+ eor r0,r7,r7,ror#5
641
+ add r11,r11,r3 @ h+=Maj(a,b,c) from the past
642
+ eor r0,r0,r7,ror#19 @ Sigma1(e)
643
+ # ifndef __ARMEB__
644
+ rev r2,r2
645
+ # endif
646
+ #else
647
+ @ ldrb r2,[r1,#3] @ 9
648
+ add r11,r11,r3 @ h+=Maj(a,b,c) from the past
649
+ ldrb r3,[r1,#2]
650
+ ldrb r0,[r1,#1]
651
+ orr r2,r2,r3,lsl#8
652
+ ldrb r3,[r1],#4
653
+ orr r2,r2,r0,lsl#16
654
+ # if 9==15
655
+ str r1,[sp,#17*4] @ make room for r1
656
+ # endif
657
+ eor r0,r7,r7,ror#5
658
+ orr r2,r2,r3,lsl#24
659
+ eor r0,r0,r7,ror#19 @ Sigma1(e)
660
+ #endif
661
+ ldr r3,[r14],#4 @ *K256++
662
+ add r10,r10,r2 @ h+=X[i]
663
+ str r2,[sp,#9*4]
664
+ eor r2,r8,r9
665
+ add r10,r10,r0,ror#6 @ h+=Sigma1(e)
666
+ and r2,r2,r7
667
+ add r10,r10,r3 @ h+=K256[i]
668
+ eor r2,r2,r9 @ Ch(e,f,g)
669
+ eor r0,r11,r11,ror#11
670
+ add r10,r10,r2 @ h+=Ch(e,f,g)
671
+ #if 9==31
672
+ and r3,r3,#0xff
673
+ cmp r3,#0xf2 @ done?
674
+ #endif
675
+ #if 9<15
676
+ # if __ARM_ARCH>=7
677
+ ldr r2,[r1],#4 @ prefetch
678
+ # else
679
+ ldrb r2,[r1,#3]
680
+ # endif
681
+ eor r3,r11,r4 @ a^b, b^c in next round
682
+ #else
683
+ ldr r2,[sp,#11*4] @ from future BODY_16_xx
684
+ eor r3,r11,r4 @ a^b, b^c in next round
685
+ ldr r1,[sp,#8*4] @ from future BODY_16_xx
686
+ #endif
687
+ eor r0,r0,r11,ror#20 @ Sigma0(a)
688
+ and r12,r12,r3 @ (b^c)&=(a^b)
689
+ add r6,r6,r10 @ d+=h
690
+ eor r12,r12,r4 @ Maj(a,b,c)
691
+ add r10,r10,r0,ror#2 @ h+=Sigma0(a)
692
+ @ add r10,r10,r12 @ h+=Maj(a,b,c)
693
+ #if __ARM_ARCH>=7
694
+ @ ldr r2,[r1],#4 @ 10
695
+ # if 10==15
696
+ str r1,[sp,#17*4] @ make room for r1
697
+ # endif
698
+ eor r0,r6,r6,ror#5
699
+ add r10,r10,r12 @ h+=Maj(a,b,c) from the past
700
+ eor r0,r0,r6,ror#19 @ Sigma1(e)
701
+ # ifndef __ARMEB__
702
+ rev r2,r2
703
+ # endif
704
+ #else
705
+ @ ldrb r2,[r1,#3] @ 10
706
+ add r10,r10,r12 @ h+=Maj(a,b,c) from the past
707
+ ldrb r12,[r1,#2]
708
+ ldrb r0,[r1,#1]
709
+ orr r2,r2,r12,lsl#8
710
+ ldrb r12,[r1],#4
711
+ orr r2,r2,r0,lsl#16
712
+ # if 10==15
713
+ str r1,[sp,#17*4] @ make room for r1
714
+ # endif
715
+ eor r0,r6,r6,ror#5
716
+ orr r2,r2,r12,lsl#24
717
+ eor r0,r0,r6,ror#19 @ Sigma1(e)
718
+ #endif
719
+ ldr r12,[r14],#4 @ *K256++
720
+ add r9,r9,r2 @ h+=X[i]
721
+ str r2,[sp,#10*4]
722
+ eor r2,r7,r8
723
+ add r9,r9,r0,ror#6 @ h+=Sigma1(e)
724
+ and r2,r2,r6
725
+ add r9,r9,r12 @ h+=K256[i]
726
+ eor r2,r2,r8 @ Ch(e,f,g)
727
+ eor r0,r10,r10,ror#11
728
+ add r9,r9,r2 @ h+=Ch(e,f,g)
729
+ #if 10==31
730
+ and r12,r12,#0xff
731
+ cmp r12,#0xf2 @ done?
732
+ #endif
733
+ #if 10<15
734
+ # if __ARM_ARCH>=7
735
+ ldr r2,[r1],#4 @ prefetch
736
+ # else
737
+ ldrb r2,[r1,#3]
738
+ # endif
739
+ eor r12,r10,r11 @ a^b, b^c in next round
740
+ #else
741
+ ldr r2,[sp,#12*4] @ from future BODY_16_xx
742
+ eor r12,r10,r11 @ a^b, b^c in next round
743
+ ldr r1,[sp,#9*4] @ from future BODY_16_xx
744
+ #endif
745
+ eor r0,r0,r10,ror#20 @ Sigma0(a)
746
+ and r3,r3,r12 @ (b^c)&=(a^b)
747
+ add r5,r5,r9 @ d+=h
748
+ eor r3,r3,r11 @ Maj(a,b,c)
749
+ add r9,r9,r0,ror#2 @ h+=Sigma0(a)
750
+ @ add r9,r9,r3 @ h+=Maj(a,b,c)
751
+ #if __ARM_ARCH>=7
752
+ @ ldr r2,[r1],#4 @ 11
753
+ # if 11==15
754
+ str r1,[sp,#17*4] @ make room for r1
755
+ # endif
756
+ eor r0,r5,r5,ror#5
757
+ add r9,r9,r3 @ h+=Maj(a,b,c) from the past
758
+ eor r0,r0,r5,ror#19 @ Sigma1(e)
759
+ # ifndef __ARMEB__
760
+ rev r2,r2
761
+ # endif
762
+ #else
763
+ @ ldrb r2,[r1,#3] @ 11
764
+ add r9,r9,r3 @ h+=Maj(a,b,c) from the past
765
+ ldrb r3,[r1,#2]
766
+ ldrb r0,[r1,#1]
767
+ orr r2,r2,r3,lsl#8
768
+ ldrb r3,[r1],#4
769
+ orr r2,r2,r0,lsl#16
770
+ # if 11==15
771
+ str r1,[sp,#17*4] @ make room for r1
772
+ # endif
773
+ eor r0,r5,r5,ror#5
774
+ orr r2,r2,r3,lsl#24
775
+ eor r0,r0,r5,ror#19 @ Sigma1(e)
776
+ #endif
777
+ ldr r3,[r14],#4 @ *K256++
778
+ add r8,r8,r2 @ h+=X[i]
779
+ str r2,[sp,#11*4]
780
+ eor r2,r6,r7
781
+ add r8,r8,r0,ror#6 @ h+=Sigma1(e)
782
+ and r2,r2,r5
783
+ add r8,r8,r3 @ h+=K256[i]
784
+ eor r2,r2,r7 @ Ch(e,f,g)
785
+ eor r0,r9,r9,ror#11
786
+ add r8,r8,r2 @ h+=Ch(e,f,g)
787
+ #if 11==31
788
+ and r3,r3,#0xff
789
+ cmp r3,#0xf2 @ done?
790
+ #endif
791
+ #if 11<15
792
+ # if __ARM_ARCH>=7
793
+ ldr r2,[r1],#4 @ prefetch
794
+ # else
795
+ ldrb r2,[r1,#3]
796
+ # endif
797
+ eor r3,r9,r10 @ a^b, b^c in next round
798
+ #else
799
+ ldr r2,[sp,#13*4] @ from future BODY_16_xx
800
+ eor r3,r9,r10 @ a^b, b^c in next round
801
+ ldr r1,[sp,#10*4] @ from future BODY_16_xx
802
+ #endif
803
+ eor r0,r0,r9,ror#20 @ Sigma0(a)
804
+ and r12,r12,r3 @ (b^c)&=(a^b)
805
+ add r4,r4,r8 @ d+=h
806
+ eor r12,r12,r10 @ Maj(a,b,c)
807
+ add r8,r8,r0,ror#2 @ h+=Sigma0(a)
808
+ @ add r8,r8,r12 @ h+=Maj(a,b,c)
809
+ #if __ARM_ARCH>=7
810
+ @ ldr r2,[r1],#4 @ 12
811
+ # if 12==15
812
+ str r1,[sp,#17*4] @ make room for r1
813
+ # endif
814
+ eor r0,r4,r4,ror#5
815
+ add r8,r8,r12 @ h+=Maj(a,b,c) from the past
816
+ eor r0,r0,r4,ror#19 @ Sigma1(e)
817
+ # ifndef __ARMEB__
818
+ rev r2,r2
819
+ # endif
820
+ #else
821
+ @ ldrb r2,[r1,#3] @ 12
822
+ add r8,r8,r12 @ h+=Maj(a,b,c) from the past
823
+ ldrb r12,[r1,#2]
824
+ ldrb r0,[r1,#1]
825
+ orr r2,r2,r12,lsl#8
826
+ ldrb r12,[r1],#4
827
+ orr r2,r2,r0,lsl#16
828
+ # if 12==15
829
+ str r1,[sp,#17*4] @ make room for r1
830
+ # endif
831
+ eor r0,r4,r4,ror#5
832
+ orr r2,r2,r12,lsl#24
833
+ eor r0,r0,r4,ror#19 @ Sigma1(e)
834
+ #endif
835
+ ldr r12,[r14],#4 @ *K256++
836
+ add r7,r7,r2 @ h+=X[i]
837
+ str r2,[sp,#12*4]
838
+ eor r2,r5,r6
839
+ add r7,r7,r0,ror#6 @ h+=Sigma1(e)
840
+ and r2,r2,r4
841
+ add r7,r7,r12 @ h+=K256[i]
842
+ eor r2,r2,r6 @ Ch(e,f,g)
843
+ eor r0,r8,r8,ror#11
844
+ add r7,r7,r2 @ h+=Ch(e,f,g)
845
+ #if 12==31
846
+ and r12,r12,#0xff
847
+ cmp r12,#0xf2 @ done?
848
+ #endif
849
+ #if 12<15
850
+ # if __ARM_ARCH>=7
851
+ ldr r2,[r1],#4 @ prefetch
852
+ # else
853
+ ldrb r2,[r1,#3]
854
+ # endif
855
+ eor r12,r8,r9 @ a^b, b^c in next round
856
+ #else
857
+ ldr r2,[sp,#14*4] @ from future BODY_16_xx
858
+ eor r12,r8,r9 @ a^b, b^c in next round
859
+ ldr r1,[sp,#11*4] @ from future BODY_16_xx
860
+ #endif
861
+ eor r0,r0,r8,ror#20 @ Sigma0(a)
862
+ and r3,r3,r12 @ (b^c)&=(a^b)
863
+ add r11,r11,r7 @ d+=h
864
+ eor r3,r3,r9 @ Maj(a,b,c)
865
+ add r7,r7,r0,ror#2 @ h+=Sigma0(a)
866
+ @ add r7,r7,r3 @ h+=Maj(a,b,c)
867
+ #if __ARM_ARCH>=7
868
+ @ ldr r2,[r1],#4 @ 13
869
+ # if 13==15
870
+ str r1,[sp,#17*4] @ make room for r1
871
+ # endif
872
+ eor r0,r11,r11,ror#5
873
+ add r7,r7,r3 @ h+=Maj(a,b,c) from the past
874
+ eor r0,r0,r11,ror#19 @ Sigma1(e)
875
+ # ifndef __ARMEB__
876
+ rev r2,r2
877
+ # endif
878
+ #else
879
+ @ ldrb r2,[r1,#3] @ 13
880
+ add r7,r7,r3 @ h+=Maj(a,b,c) from the past
881
+ ldrb r3,[r1,#2]
882
+ ldrb r0,[r1,#1]
883
+ orr r2,r2,r3,lsl#8
884
+ ldrb r3,[r1],#4
885
+ orr r2,r2,r0,lsl#16
886
+ # if 13==15
887
+ str r1,[sp,#17*4] @ make room for r1
888
+ # endif
889
+ eor r0,r11,r11,ror#5
890
+ orr r2,r2,r3,lsl#24
891
+ eor r0,r0,r11,ror#19 @ Sigma1(e)
892
+ #endif
893
+ ldr r3,[r14],#4 @ *K256++
894
+ add r6,r6,r2 @ h+=X[i]
895
+ str r2,[sp,#13*4]
896
+ eor r2,r4,r5
897
+ add r6,r6,r0,ror#6 @ h+=Sigma1(e)
898
+ and r2,r2,r11
899
+ add r6,r6,r3 @ h+=K256[i]
900
+ eor r2,r2,r5 @ Ch(e,f,g)
901
+ eor r0,r7,r7,ror#11
902
+ add r6,r6,r2 @ h+=Ch(e,f,g)
903
+ #if 13==31
904
+ and r3,r3,#0xff
905
+ cmp r3,#0xf2 @ done?
906
+ #endif
907
+ #if 13<15
908
+ # if __ARM_ARCH>=7
909
+ ldr r2,[r1],#4 @ prefetch
910
+ # else
911
+ ldrb r2,[r1,#3]
912
+ # endif
913
+ eor r3,r7,r8 @ a^b, b^c in next round
914
+ #else
915
+ ldr r2,[sp,#15*4] @ from future BODY_16_xx
916
+ eor r3,r7,r8 @ a^b, b^c in next round
917
+ ldr r1,[sp,#12*4] @ from future BODY_16_xx
918
+ #endif
919
+ eor r0,r0,r7,ror#20 @ Sigma0(a)
920
+ and r12,r12,r3 @ (b^c)&=(a^b)
921
+ add r10,r10,r6 @ d+=h
922
+ eor r12,r12,r8 @ Maj(a,b,c)
923
+ add r6,r6,r0,ror#2 @ h+=Sigma0(a)
924
+ @ add r6,r6,r12 @ h+=Maj(a,b,c)
925
+ #if __ARM_ARCH>=7
926
+ @ ldr r2,[r1],#4 @ 14
927
+ # if 14==15
928
+ str r1,[sp,#17*4] @ make room for r1
929
+ # endif
930
+ eor r0,r10,r10,ror#5
931
+ add r6,r6,r12 @ h+=Maj(a,b,c) from the past
932
+ eor r0,r0,r10,ror#19 @ Sigma1(e)
933
+ # ifndef __ARMEB__
934
+ rev r2,r2
935
+ # endif
936
+ #else
937
+ @ ldrb r2,[r1,#3] @ 14
938
+ add r6,r6,r12 @ h+=Maj(a,b,c) from the past
939
+ ldrb r12,[r1,#2]
940
+ ldrb r0,[r1,#1]
941
+ orr r2,r2,r12,lsl#8
942
+ ldrb r12,[r1],#4
943
+ orr r2,r2,r0,lsl#16
944
+ # if 14==15
945
+ str r1,[sp,#17*4] @ make room for r1
946
+ # endif
947
+ eor r0,r10,r10,ror#5
948
+ orr r2,r2,r12,lsl#24
949
+ eor r0,r0,r10,ror#19 @ Sigma1(e)
950
+ #endif
951
+ ldr r12,[r14],#4 @ *K256++
952
+ add r5,r5,r2 @ h+=X[i]
953
+ str r2,[sp,#14*4]
954
+ eor r2,r11,r4
955
+ add r5,r5,r0,ror#6 @ h+=Sigma1(e)
956
+ and r2,r2,r10
957
+ add r5,r5,r12 @ h+=K256[i]
958
+ eor r2,r2,r4 @ Ch(e,f,g)
959
+ eor r0,r6,r6,ror#11
960
+ add r5,r5,r2 @ h+=Ch(e,f,g)
961
+ #if 14==31
962
+ and r12,r12,#0xff
963
+ cmp r12,#0xf2 @ done?
964
+ #endif
965
+ #if 14<15
966
+ # if __ARM_ARCH>=7
967
+ ldr r2,[r1],#4 @ prefetch
968
+ # else
969
+ ldrb r2,[r1,#3]
970
+ # endif
971
+ eor r12,r6,r7 @ a^b, b^c in next round
972
+ #else
973
+ ldr r2,[sp,#0*4] @ from future BODY_16_xx
974
+ eor r12,r6,r7 @ a^b, b^c in next round
975
+ ldr r1,[sp,#13*4] @ from future BODY_16_xx
976
+ #endif
977
+ eor r0,r0,r6,ror#20 @ Sigma0(a)
978
+ and r3,r3,r12 @ (b^c)&=(a^b)
979
+ add r9,r9,r5 @ d+=h
980
+ eor r3,r3,r7 @ Maj(a,b,c)
981
+ add r5,r5,r0,ror#2 @ h+=Sigma0(a)
982
+ @ add r5,r5,r3 @ h+=Maj(a,b,c)
983
+ #if __ARM_ARCH>=7
984
+ @ ldr r2,[r1],#4 @ 15
985
+ # if 15==15
986
+ str r1,[sp,#17*4] @ make room for r1
987
+ # endif
988
+ eor r0,r9,r9,ror#5
989
+ add r5,r5,r3 @ h+=Maj(a,b,c) from the past
990
+ eor r0,r0,r9,ror#19 @ Sigma1(e)
991
+ # ifndef __ARMEB__
992
+ rev r2,r2
993
+ # endif
994
+ #else
995
+ @ ldrb r2,[r1,#3] @ 15
996
+ add r5,r5,r3 @ h+=Maj(a,b,c) from the past
997
+ ldrb r3,[r1,#2]
998
+ ldrb r0,[r1,#1]
999
+ orr r2,r2,r3,lsl#8
1000
+ ldrb r3,[r1],#4
1001
+ orr r2,r2,r0,lsl#16
1002
+ # if 15==15
1003
+ str r1,[sp,#17*4] @ make room for r1
1004
+ # endif
1005
+ eor r0,r9,r9,ror#5
1006
+ orr r2,r2,r3,lsl#24
1007
+ eor r0,r0,r9,ror#19 @ Sigma1(e)
1008
+ #endif
1009
+ ldr r3,[r14],#4 @ *K256++
1010
+ add r4,r4,r2 @ h+=X[i]
1011
+ str r2,[sp,#15*4]
1012
+ eor r2,r10,r11
1013
+ add r4,r4,r0,ror#6 @ h+=Sigma1(e)
1014
+ and r2,r2,r9
1015
+ add r4,r4,r3 @ h+=K256[i]
1016
+ eor r2,r2,r11 @ Ch(e,f,g)
1017
+ eor r0,r5,r5,ror#11
1018
+ add r4,r4,r2 @ h+=Ch(e,f,g)
1019
+ #if 15==31
1020
+ and r3,r3,#0xff
1021
+ cmp r3,#0xf2 @ done?
1022
+ #endif
1023
+ #if 15<15
1024
+ # if __ARM_ARCH>=7
1025
+ ldr r2,[r1],#4 @ prefetch
1026
+ # else
1027
+ ldrb r2,[r1,#3]
1028
+ # endif
1029
+ eor r3,r5,r6 @ a^b, b^c in next round
1030
+ #else
1031
+ ldr r2,[sp,#1*4] @ from future BODY_16_xx
1032
+ eor r3,r5,r6 @ a^b, b^c in next round
1033
+ ldr r1,[sp,#14*4] @ from future BODY_16_xx
1034
+ #endif
1035
+ eor r0,r0,r5,ror#20 @ Sigma0(a)
1036
+ and r12,r12,r3 @ (b^c)&=(a^b)
1037
+ add r8,r8,r4 @ d+=h
1038
+ eor r12,r12,r6 @ Maj(a,b,c)
1039
+ add r4,r4,r0,ror#2 @ h+=Sigma0(a)
1040
+ @ add r4,r4,r12 @ h+=Maj(a,b,c)
1041
+ .Lrounds_16_xx:
1042
+ @ ldr r2,[sp,#1*4] @ 16
1043
+ @ ldr r1,[sp,#14*4]
1044
+ mov r0,r2,ror#7
1045
+ add r4,r4,r12 @ h+=Maj(a,b,c) from the past
1046
+ mov r12,r1,ror#17
1047
+ eor r0,r0,r2,ror#18
1048
+ eor r12,r12,r1,ror#19
1049
+ eor r0,r0,r2,lsr#3 @ sigma0(X[i+1])
1050
+ ldr r2,[sp,#0*4]
1051
+ eor r12,r12,r1,lsr#10 @ sigma1(X[i+14])
1052
+ ldr r1,[sp,#9*4]
1053
+
1054
+ add r12,r12,r0
1055
+ eor r0,r8,r8,ror#5 @ from BODY_00_15
1056
+ add r2,r2,r12
1057
+ eor r0,r0,r8,ror#19 @ Sigma1(e)
1058
+ add r2,r2,r1 @ X[i]
1059
+ ldr r12,[r14],#4 @ *K256++
1060
+ add r11,r11,r2 @ h+=X[i]
1061
+ str r2,[sp,#0*4]
1062
+ eor r2,r9,r10
1063
+ add r11,r11,r0,ror#6 @ h+=Sigma1(e)
1064
+ and r2,r2,r8
1065
+ add r11,r11,r12 @ h+=K256[i]
1066
+ eor r2,r2,r10 @ Ch(e,f,g)
1067
+ eor r0,r4,r4,ror#11
1068
+ add r11,r11,r2 @ h+=Ch(e,f,g)
1069
+ #if 16==31
1070
+ and r12,r12,#0xff
1071
+ cmp r12,#0xf2 @ done?
1072
+ #endif
1073
+ #if 16<15
1074
+ # if __ARM_ARCH>=7
1075
+ ldr r2,[r1],#4 @ prefetch
1076
+ # else
1077
+ ldrb r2,[r1,#3]
1078
+ # endif
1079
+ eor r12,r4,r5 @ a^b, b^c in next round
1080
+ #else
1081
+ ldr r2,[sp,#2*4] @ from future BODY_16_xx
1082
+ eor r12,r4,r5 @ a^b, b^c in next round
1083
+ ldr r1,[sp,#15*4] @ from future BODY_16_xx
1084
+ #endif
1085
+ eor r0,r0,r4,ror#20 @ Sigma0(a)
1086
+ and r3,r3,r12 @ (b^c)&=(a^b)
1087
+ add r7,r7,r11 @ d+=h
1088
+ eor r3,r3,r5 @ Maj(a,b,c)
1089
+ add r11,r11,r0,ror#2 @ h+=Sigma0(a)
1090
+ @ add r11,r11,r3 @ h+=Maj(a,b,c)
1091
+ @ ldr r2,[sp,#2*4] @ 17
1092
+ @ ldr r1,[sp,#15*4]
1093
+ mov r0,r2,ror#7
1094
+ add r11,r11,r3 @ h+=Maj(a,b,c) from the past
1095
+ mov r3,r1,ror#17
1096
+ eor r0,r0,r2,ror#18
1097
+ eor r3,r3,r1,ror#19
1098
+ eor r0,r0,r2,lsr#3 @ sigma0(X[i+1])
1099
+ ldr r2,[sp,#1*4]
1100
+ eor r3,r3,r1,lsr#10 @ sigma1(X[i+14])
1101
+ ldr r1,[sp,#10*4]
1102
+
1103
+ add r3,r3,r0
1104
+ eor r0,r7,r7,ror#5 @ from BODY_00_15
1105
+ add r2,r2,r3
1106
+ eor r0,r0,r7,ror#19 @ Sigma1(e)
1107
+ add r2,r2,r1 @ X[i]
1108
+ ldr r3,[r14],#4 @ *K256++
1109
+ add r10,r10,r2 @ h+=X[i]
1110
+ str r2,[sp,#1*4]
1111
+ eor r2,r8,r9
1112
+ add r10,r10,r0,ror#6 @ h+=Sigma1(e)
1113
+ and r2,r2,r7
1114
+ add r10,r10,r3 @ h+=K256[i]
1115
+ eor r2,r2,r9 @ Ch(e,f,g)
1116
+ eor r0,r11,r11,ror#11
1117
+ add r10,r10,r2 @ h+=Ch(e,f,g)
1118
+ #if 17==31
1119
+ and r3,r3,#0xff
1120
+ cmp r3,#0xf2 @ done?
1121
+ #endif
1122
+ #if 17<15
1123
+ # if __ARM_ARCH>=7
1124
+ ldr r2,[r1],#4 @ prefetch
1125
+ # else
1126
+ ldrb r2,[r1,#3]
1127
+ # endif
1128
+ eor r3,r11,r4 @ a^b, b^c in next round
1129
+ #else
1130
+ ldr r2,[sp,#3*4] @ from future BODY_16_xx
1131
+ eor r3,r11,r4 @ a^b, b^c in next round
1132
+ ldr r1,[sp,#0*4] @ from future BODY_16_xx
1133
+ #endif
1134
+ eor r0,r0,r11,ror#20 @ Sigma0(a)
1135
+ and r12,r12,r3 @ (b^c)&=(a^b)
1136
+ add r6,r6,r10 @ d+=h
1137
+ eor r12,r12,r4 @ Maj(a,b,c)
1138
+ add r10,r10,r0,ror#2 @ h+=Sigma0(a)
1139
+ @ add r10,r10,r12 @ h+=Maj(a,b,c)
1140
+ @ ldr r2,[sp,#3*4] @ 18
1141
+ @ ldr r1,[sp,#0*4]
1142
+ mov r0,r2,ror#7
1143
+ add r10,r10,r12 @ h+=Maj(a,b,c) from the past
1144
+ mov r12,r1,ror#17
1145
+ eor r0,r0,r2,ror#18
1146
+ eor r12,r12,r1,ror#19
1147
+ eor r0,r0,r2,lsr#3 @ sigma0(X[i+1])
1148
+ ldr r2,[sp,#2*4]
1149
+ eor r12,r12,r1,lsr#10 @ sigma1(X[i+14])
1150
+ ldr r1,[sp,#11*4]
1151
+
1152
+ add r12,r12,r0
1153
+ eor r0,r6,r6,ror#5 @ from BODY_00_15
1154
+ add r2,r2,r12
1155
+ eor r0,r0,r6,ror#19 @ Sigma1(e)
1156
+ add r2,r2,r1 @ X[i]
1157
+ ldr r12,[r14],#4 @ *K256++
1158
+ add r9,r9,r2 @ h+=X[i]
1159
+ str r2,[sp,#2*4]
1160
+ eor r2,r7,r8
1161
+ add r9,r9,r0,ror#6 @ h+=Sigma1(e)
1162
+ and r2,r2,r6
1163
+ add r9,r9,r12 @ h+=K256[i]
1164
+ eor r2,r2,r8 @ Ch(e,f,g)
1165
+ eor r0,r10,r10,ror#11
1166
+ add r9,r9,r2 @ h+=Ch(e,f,g)
1167
+ #if 18==31
1168
+ and r12,r12,#0xff
1169
+ cmp r12,#0xf2 @ done?
1170
+ #endif
1171
+ #if 18<15
1172
+ # if __ARM_ARCH>=7
1173
+ ldr r2,[r1],#4 @ prefetch
1174
+ # else
1175
+ ldrb r2,[r1,#3]
1176
+ # endif
1177
+ eor r12,r10,r11 @ a^b, b^c in next round
1178
+ #else
1179
+ ldr r2,[sp,#4*4] @ from future BODY_16_xx
1180
+ eor r12,r10,r11 @ a^b, b^c in next round
1181
+ ldr r1,[sp,#1*4] @ from future BODY_16_xx
1182
+ #endif
1183
+ eor r0,r0,r10,ror#20 @ Sigma0(a)
1184
+ and r3,r3,r12 @ (b^c)&=(a^b)
1185
+ add r5,r5,r9 @ d+=h
1186
+ eor r3,r3,r11 @ Maj(a,b,c)
1187
+ add r9,r9,r0,ror#2 @ h+=Sigma0(a)
1188
+ @ add r9,r9,r3 @ h+=Maj(a,b,c)
1189
+ @ ldr r2,[sp,#4*4] @ 19
1190
+ @ ldr r1,[sp,#1*4]
1191
+ mov r0,r2,ror#7
1192
+ add r9,r9,r3 @ h+=Maj(a,b,c) from the past
1193
+ mov r3,r1,ror#17
1194
+ eor r0,r0,r2,ror#18
1195
+ eor r3,r3,r1,ror#19
1196
+ eor r0,r0,r2,lsr#3 @ sigma0(X[i+1])
1197
+ ldr r2,[sp,#3*4]
1198
+ eor r3,r3,r1,lsr#10 @ sigma1(X[i+14])
1199
+ ldr r1,[sp,#12*4]
1200
+
1201
+ add r3,r3,r0
1202
+ eor r0,r5,r5,ror#5 @ from BODY_00_15
1203
+ add r2,r2,r3
1204
+ eor r0,r0,r5,ror#19 @ Sigma1(e)
1205
+ add r2,r2,r1 @ X[i]
1206
+ ldr r3,[r14],#4 @ *K256++
1207
+ add r8,r8,r2 @ h+=X[i]
1208
+ str r2,[sp,#3*4]
1209
+ eor r2,r6,r7
1210
+ add r8,r8,r0,ror#6 @ h+=Sigma1(e)
1211
+ and r2,r2,r5
1212
+ add r8,r8,r3 @ h+=K256[i]
1213
+ eor r2,r2,r7 @ Ch(e,f,g)
1214
+ eor r0,r9,r9,ror#11
1215
+ add r8,r8,r2 @ h+=Ch(e,f,g)
1216
+ #if 19==31
1217
+ and r3,r3,#0xff
1218
+ cmp r3,#0xf2 @ done?
1219
+ #endif
1220
+ #if 19<15
1221
+ # if __ARM_ARCH>=7
1222
+ ldr r2,[r1],#4 @ prefetch
1223
+ # else
1224
+ ldrb r2,[r1,#3]
1225
+ # endif
1226
+ eor r3,r9,r10 @ a^b, b^c in next round
1227
+ #else
1228
+ ldr r2,[sp,#5*4] @ from future BODY_16_xx
1229
+ eor r3,r9,r10 @ a^b, b^c in next round
1230
+ ldr r1,[sp,#2*4] @ from future BODY_16_xx
1231
+ #endif
1232
+ eor r0,r0,r9,ror#20 @ Sigma0(a)
1233
+ and r12,r12,r3 @ (b^c)&=(a^b)
1234
+ add r4,r4,r8 @ d+=h
1235
+ eor r12,r12,r10 @ Maj(a,b,c)
1236
+ add r8,r8,r0,ror#2 @ h+=Sigma0(a)
1237
+ @ add r8,r8,r12 @ h+=Maj(a,b,c)
1238
+ @ ldr r2,[sp,#5*4] @ 20
1239
+ @ ldr r1,[sp,#2*4]
1240
+ mov r0,r2,ror#7
1241
+ add r8,r8,r12 @ h+=Maj(a,b,c) from the past
1242
+ mov r12,r1,ror#17
1243
+ eor r0,r0,r2,ror#18
1244
+ eor r12,r12,r1,ror#19
1245
+ eor r0,r0,r2,lsr#3 @ sigma0(X[i+1])
1246
+ ldr r2,[sp,#4*4]
1247
+ eor r12,r12,r1,lsr#10 @ sigma1(X[i+14])
1248
+ ldr r1,[sp,#13*4]
1249
+
1250
+ add r12,r12,r0
1251
+ eor r0,r4,r4,ror#5 @ from BODY_00_15
1252
+ add r2,r2,r12
1253
+ eor r0,r0,r4,ror#19 @ Sigma1(e)
1254
+ add r2,r2,r1 @ X[i]
1255
+ ldr r12,[r14],#4 @ *K256++
1256
+ add r7,r7,r2 @ h+=X[i]
1257
+ str r2,[sp,#4*4]
1258
+ eor r2,r5,r6
1259
+ add r7,r7,r0,ror#6 @ h+=Sigma1(e)
1260
+ and r2,r2,r4
1261
+ add r7,r7,r12 @ h+=K256[i]
1262
+ eor r2,r2,r6 @ Ch(e,f,g)
1263
+ eor r0,r8,r8,ror#11
1264
+ add r7,r7,r2 @ h+=Ch(e,f,g)
1265
+ #if 20==31
1266
+ and r12,r12,#0xff
1267
+ cmp r12,#0xf2 @ done?
1268
+ #endif
1269
+ #if 20<15
1270
+ # if __ARM_ARCH>=7
1271
+ ldr r2,[r1],#4 @ prefetch
1272
+ # else
1273
+ ldrb r2,[r1,#3]
1274
+ # endif
1275
+ eor r12,r8,r9 @ a^b, b^c in next round
1276
+ #else
1277
+ ldr r2,[sp,#6*4] @ from future BODY_16_xx
1278
+ eor r12,r8,r9 @ a^b, b^c in next round
1279
+ ldr r1,[sp,#3*4] @ from future BODY_16_xx
1280
+ #endif
1281
+ eor r0,r0,r8,ror#20 @ Sigma0(a)
1282
+ and r3,r3,r12 @ (b^c)&=(a^b)
1283
+ add r11,r11,r7 @ d+=h
1284
+ eor r3,r3,r9 @ Maj(a,b,c)
1285
+ add r7,r7,r0,ror#2 @ h+=Sigma0(a)
1286
+ @ add r7,r7,r3 @ h+=Maj(a,b,c)
1287
+ @ ldr r2,[sp,#6*4] @ 21
1288
+ @ ldr r1,[sp,#3*4]
1289
+ mov r0,r2,ror#7
1290
+ add r7,r7,r3 @ h+=Maj(a,b,c) from the past
1291
+ mov r3,r1,ror#17
1292
+ eor r0,r0,r2,ror#18
1293
+ eor r3,r3,r1,ror#19
1294
+ eor r0,r0,r2,lsr#3 @ sigma0(X[i+1])
1295
+ ldr r2,[sp,#5*4]
1296
+ eor r3,r3,r1,lsr#10 @ sigma1(X[i+14])
1297
+ ldr r1,[sp,#14*4]
1298
+
1299
+ add r3,r3,r0
1300
+ eor r0,r11,r11,ror#5 @ from BODY_00_15
1301
+ add r2,r2,r3
1302
+ eor r0,r0,r11,ror#19 @ Sigma1(e)
1303
+ add r2,r2,r1 @ X[i]
1304
+ ldr r3,[r14],#4 @ *K256++
1305
+ add r6,r6,r2 @ h+=X[i]
1306
+ str r2,[sp,#5*4]
1307
+ eor r2,r4,r5
1308
+ add r6,r6,r0,ror#6 @ h+=Sigma1(e)
1309
+ and r2,r2,r11
1310
+ add r6,r6,r3 @ h+=K256[i]
1311
+ eor r2,r2,r5 @ Ch(e,f,g)
1312
+ eor r0,r7,r7,ror#11
1313
+ add r6,r6,r2 @ h+=Ch(e,f,g)
1314
+ #if 21==31
1315
+ and r3,r3,#0xff
1316
+ cmp r3,#0xf2 @ done?
1317
+ #endif
1318
+ #if 21<15
1319
+ # if __ARM_ARCH>=7
1320
+ ldr r2,[r1],#4 @ prefetch
1321
+ # else
1322
+ ldrb r2,[r1,#3]
1323
+ # endif
1324
+ eor r3,r7,r8 @ a^b, b^c in next round
1325
+ #else
1326
+ ldr r2,[sp,#7*4] @ from future BODY_16_xx
1327
+ eor r3,r7,r8 @ a^b, b^c in next round
1328
+ ldr r1,[sp,#4*4] @ from future BODY_16_xx
1329
+ #endif
1330
+ eor r0,r0,r7,ror#20 @ Sigma0(a)
1331
+ and r12,r12,r3 @ (b^c)&=(a^b)
1332
+ add r10,r10,r6 @ d+=h
1333
+ eor r12,r12,r8 @ Maj(a,b,c)
1334
+ add r6,r6,r0,ror#2 @ h+=Sigma0(a)
1335
+ @ add r6,r6,r12 @ h+=Maj(a,b,c)
1336
+ @ ldr r2,[sp,#7*4] @ 22
1337
+ @ ldr r1,[sp,#4*4]
1338
+ mov r0,r2,ror#7
1339
+ add r6,r6,r12 @ h+=Maj(a,b,c) from the past
1340
+ mov r12,r1,ror#17
1341
+ eor r0,r0,r2,ror#18
1342
+ eor r12,r12,r1,ror#19
1343
+ eor r0,r0,r2,lsr#3 @ sigma0(X[i+1])
1344
+ ldr r2,[sp,#6*4]
1345
+ eor r12,r12,r1,lsr#10 @ sigma1(X[i+14])
1346
+ ldr r1,[sp,#15*4]
1347
+
1348
+ add r12,r12,r0
1349
+ eor r0,r10,r10,ror#5 @ from BODY_00_15
1350
+ add r2,r2,r12
1351
+ eor r0,r0,r10,ror#19 @ Sigma1(e)
1352
+ add r2,r2,r1 @ X[i]
1353
+ ldr r12,[r14],#4 @ *K256++
1354
+ add r5,r5,r2 @ h+=X[i]
1355
+ str r2,[sp,#6*4]
1356
+ eor r2,r11,r4
1357
+ add r5,r5,r0,ror#6 @ h+=Sigma1(e)
1358
+ and r2,r2,r10
1359
+ add r5,r5,r12 @ h+=K256[i]
1360
+ eor r2,r2,r4 @ Ch(e,f,g)
1361
+ eor r0,r6,r6,ror#11
1362
+ add r5,r5,r2 @ h+=Ch(e,f,g)
1363
+ #if 22==31
1364
+ and r12,r12,#0xff
1365
+ cmp r12,#0xf2 @ done?
1366
+ #endif
1367
+ #if 22<15
1368
+ # if __ARM_ARCH>=7
1369
+ ldr r2,[r1],#4 @ prefetch
1370
+ # else
1371
+ ldrb r2,[r1,#3]
1372
+ # endif
1373
+ eor r12,r6,r7 @ a^b, b^c in next round
1374
+ #else
1375
+ ldr r2,[sp,#8*4] @ from future BODY_16_xx
1376
+ eor r12,r6,r7 @ a^b, b^c in next round
1377
+ ldr r1,[sp,#5*4] @ from future BODY_16_xx
1378
+ #endif
1379
+ eor r0,r0,r6,ror#20 @ Sigma0(a)
1380
+ and r3,r3,r12 @ (b^c)&=(a^b)
1381
+ add r9,r9,r5 @ d+=h
1382
+ eor r3,r3,r7 @ Maj(a,b,c)
1383
+ add r5,r5,r0,ror#2 @ h+=Sigma0(a)
1384
+ @ add r5,r5,r3 @ h+=Maj(a,b,c)
1385
+ @ ldr r2,[sp,#8*4] @ 23
1386
+ @ ldr r1,[sp,#5*4]
1387
+ mov r0,r2,ror#7
1388
+ add r5,r5,r3 @ h+=Maj(a,b,c) from the past
1389
+ mov r3,r1,ror#17
1390
+ eor r0,r0,r2,ror#18
1391
+ eor r3,r3,r1,ror#19
1392
+ eor r0,r0,r2,lsr#3 @ sigma0(X[i+1])
1393
+ ldr r2,[sp,#7*4]
1394
+ eor r3,r3,r1,lsr#10 @ sigma1(X[i+14])
1395
+ ldr r1,[sp,#0*4]
1396
+
1397
+ add r3,r3,r0
1398
+ eor r0,r9,r9,ror#5 @ from BODY_00_15
1399
+ add r2,r2,r3
1400
+ eor r0,r0,r9,ror#19 @ Sigma1(e)
1401
+ add r2,r2,r1 @ X[i]
1402
+ ldr r3,[r14],#4 @ *K256++
1403
+ add r4,r4,r2 @ h+=X[i]
1404
+ str r2,[sp,#7*4]
1405
+ eor r2,r10,r11
1406
+ add r4,r4,r0,ror#6 @ h+=Sigma1(e)
1407
+ and r2,r2,r9
1408
+ add r4,r4,r3 @ h+=K256[i]
1409
+ eor r2,r2,r11 @ Ch(e,f,g)
1410
+ eor r0,r5,r5,ror#11
1411
+ add r4,r4,r2 @ h+=Ch(e,f,g)
1412
+ #if 23==31
1413
+ and r3,r3,#0xff
1414
+ cmp r3,#0xf2 @ done?
1415
+ #endif
1416
+ #if 23<15
1417
+ # if __ARM_ARCH>=7
1418
+ ldr r2,[r1],#4 @ prefetch
1419
+ # else
1420
+ ldrb r2,[r1,#3]
1421
+ # endif
1422
+ eor r3,r5,r6 @ a^b, b^c in next round
1423
+ #else
1424
+ ldr r2,[sp,#9*4] @ from future BODY_16_xx
1425
+ eor r3,r5,r6 @ a^b, b^c in next round
1426
+ ldr r1,[sp,#6*4] @ from future BODY_16_xx
1427
+ #endif
1428
+ eor r0,r0,r5,ror#20 @ Sigma0(a)
1429
+ and r12,r12,r3 @ (b^c)&=(a^b)
1430
+ add r8,r8,r4 @ d+=h
1431
+ eor r12,r12,r6 @ Maj(a,b,c)
1432
+ add r4,r4,r0,ror#2 @ h+=Sigma0(a)
1433
+ @ add r4,r4,r12 @ h+=Maj(a,b,c)
1434
+ @ ldr r2,[sp,#9*4] @ 24
1435
+ @ ldr r1,[sp,#6*4]
1436
+ mov r0,r2,ror#7
1437
+ add r4,r4,r12 @ h+=Maj(a,b,c) from the past
1438
+ mov r12,r1,ror#17
1439
+ eor r0,r0,r2,ror#18
1440
+ eor r12,r12,r1,ror#19
1441
+ eor r0,r0,r2,lsr#3 @ sigma0(X[i+1])
1442
+ ldr r2,[sp,#8*4]
1443
+ eor r12,r12,r1,lsr#10 @ sigma1(X[i+14])
1444
+ ldr r1,[sp,#1*4]
1445
+
1446
+ add r12,r12,r0
1447
+ eor r0,r8,r8,ror#5 @ from BODY_00_15
1448
+ add r2,r2,r12
1449
+ eor r0,r0,r8,ror#19 @ Sigma1(e)
1450
+ add r2,r2,r1 @ X[i]
1451
+ ldr r12,[r14],#4 @ *K256++
1452
+ add r11,r11,r2 @ h+=X[i]
1453
+ str r2,[sp,#8*4]
1454
+ eor r2,r9,r10
1455
+ add r11,r11,r0,ror#6 @ h+=Sigma1(e)
1456
+ and r2,r2,r8
1457
+ add r11,r11,r12 @ h+=K256[i]
1458
+ eor r2,r2,r10 @ Ch(e,f,g)
1459
+ eor r0,r4,r4,ror#11
1460
+ add r11,r11,r2 @ h+=Ch(e,f,g)
1461
+ #if 24==31
1462
+ and r12,r12,#0xff
1463
+ cmp r12,#0xf2 @ done?
1464
+ #endif
1465
+ #if 24<15
1466
+ # if __ARM_ARCH>=7
1467
+ ldr r2,[r1],#4 @ prefetch
1468
+ # else
1469
+ ldrb r2,[r1,#3]
1470
+ # endif
1471
+ eor r12,r4,r5 @ a^b, b^c in next round
1472
+ #else
1473
+ ldr r2,[sp,#10*4] @ from future BODY_16_xx
1474
+ eor r12,r4,r5 @ a^b, b^c in next round
1475
+ ldr r1,[sp,#7*4] @ from future BODY_16_xx
1476
+ #endif
1477
+ eor r0,r0,r4,ror#20 @ Sigma0(a)
1478
+ and r3,r3,r12 @ (b^c)&=(a^b)
1479
+ add r7,r7,r11 @ d+=h
1480
+ eor r3,r3,r5 @ Maj(a,b,c)
1481
+ add r11,r11,r0,ror#2 @ h+=Sigma0(a)
1482
+ @ add r11,r11,r3 @ h+=Maj(a,b,c)
1483
+ @ ldr r2,[sp,#10*4] @ 25
1484
+ @ ldr r1,[sp,#7*4]
1485
+ mov r0,r2,ror#7
1486
+ add r11,r11,r3 @ h+=Maj(a,b,c) from the past
1487
+ mov r3,r1,ror#17
1488
+ eor r0,r0,r2,ror#18
1489
+ eor r3,r3,r1,ror#19
1490
+ eor r0,r0,r2,lsr#3 @ sigma0(X[i+1])
1491
+ ldr r2,[sp,#9*4]
1492
+ eor r3,r3,r1,lsr#10 @ sigma1(X[i+14])
1493
+ ldr r1,[sp,#2*4]
1494
+
1495
+ add r3,r3,r0
1496
+ eor r0,r7,r7,ror#5 @ from BODY_00_15
1497
+ add r2,r2,r3
1498
+ eor r0,r0,r7,ror#19 @ Sigma1(e)
1499
+ add r2,r2,r1 @ X[i]
1500
+ ldr r3,[r14],#4 @ *K256++
1501
+ add r10,r10,r2 @ h+=X[i]
1502
+ str r2,[sp,#9*4]
1503
+ eor r2,r8,r9
1504
+ add r10,r10,r0,ror#6 @ h+=Sigma1(e)
1505
+ and r2,r2,r7
1506
+ add r10,r10,r3 @ h+=K256[i]
1507
+ eor r2,r2,r9 @ Ch(e,f,g)
1508
+ eor r0,r11,r11,ror#11
1509
+ add r10,r10,r2 @ h+=Ch(e,f,g)
1510
+ #if 25==31
1511
+ and r3,r3,#0xff
1512
+ cmp r3,#0xf2 @ done?
1513
+ #endif
1514
+ #if 25<15
1515
+ # if __ARM_ARCH>=7
1516
+ ldr r2,[r1],#4 @ prefetch
1517
+ # else
1518
+ ldrb r2,[r1,#3]
1519
+ # endif
1520
+ eor r3,r11,r4 @ a^b, b^c in next round
1521
+ #else
1522
+ ldr r2,[sp,#11*4] @ from future BODY_16_xx
1523
+ eor r3,r11,r4 @ a^b, b^c in next round
1524
+ ldr r1,[sp,#8*4] @ from future BODY_16_xx
1525
+ #endif
1526
+ eor r0,r0,r11,ror#20 @ Sigma0(a)
1527
+ and r12,r12,r3 @ (b^c)&=(a^b)
1528
+ add r6,r6,r10 @ d+=h
1529
+ eor r12,r12,r4 @ Maj(a,b,c)
1530
+ add r10,r10,r0,ror#2 @ h+=Sigma0(a)
1531
+ @ add r10,r10,r12 @ h+=Maj(a,b,c)
1532
+ @ ldr r2,[sp,#11*4] @ 26
1533
+ @ ldr r1,[sp,#8*4]
1534
+ mov r0,r2,ror#7
1535
+ add r10,r10,r12 @ h+=Maj(a,b,c) from the past
1536
+ mov r12,r1,ror#17
1537
+ eor r0,r0,r2,ror#18
1538
+ eor r12,r12,r1,ror#19
1539
+ eor r0,r0,r2,lsr#3 @ sigma0(X[i+1])
1540
+ ldr r2,[sp,#10*4]
1541
+ eor r12,r12,r1,lsr#10 @ sigma1(X[i+14])
1542
+ ldr r1,[sp,#3*4]
1543
+
1544
+ add r12,r12,r0
1545
+ eor r0,r6,r6,ror#5 @ from BODY_00_15
1546
+ add r2,r2,r12
1547
+ eor r0,r0,r6,ror#19 @ Sigma1(e)
1548
+ add r2,r2,r1 @ X[i]
1549
+ ldr r12,[r14],#4 @ *K256++
1550
+ add r9,r9,r2 @ h+=X[i]
1551
+ str r2,[sp,#10*4]
1552
+ eor r2,r7,r8
1553
+ add r9,r9,r0,ror#6 @ h+=Sigma1(e)
1554
+ and r2,r2,r6
1555
+ add r9,r9,r12 @ h+=K256[i]
1556
+ eor r2,r2,r8 @ Ch(e,f,g)
1557
+ eor r0,r10,r10,ror#11
1558
+ add r9,r9,r2 @ h+=Ch(e,f,g)
1559
+ #if 26==31
1560
+ and r12,r12,#0xff
1561
+ cmp r12,#0xf2 @ done?
1562
+ #endif
1563
+ #if 26<15
1564
+ # if __ARM_ARCH>=7
1565
+ ldr r2,[r1],#4 @ prefetch
1566
+ # else
1567
+ ldrb r2,[r1,#3]
1568
+ # endif
1569
+ eor r12,r10,r11 @ a^b, b^c in next round
1570
+ #else
1571
+ ldr r2,[sp,#12*4] @ from future BODY_16_xx
1572
+ eor r12,r10,r11 @ a^b, b^c in next round
1573
+ ldr r1,[sp,#9*4] @ from future BODY_16_xx
1574
+ #endif
1575
+ eor r0,r0,r10,ror#20 @ Sigma0(a)
1576
+ and r3,r3,r12 @ (b^c)&=(a^b)
1577
+ add r5,r5,r9 @ d+=h
1578
+ eor r3,r3,r11 @ Maj(a,b,c)
1579
+ add r9,r9,r0,ror#2 @ h+=Sigma0(a)
1580
+ @ add r9,r9,r3 @ h+=Maj(a,b,c)
1581
+ @ ldr r2,[sp,#12*4] @ 27
1582
+ @ ldr r1,[sp,#9*4]
1583
+ mov r0,r2,ror#7
1584
+ add r9,r9,r3 @ h+=Maj(a,b,c) from the past
1585
+ mov r3,r1,ror#17
1586
+ eor r0,r0,r2,ror#18
1587
+ eor r3,r3,r1,ror#19
1588
+ eor r0,r0,r2,lsr#3 @ sigma0(X[i+1])
1589
+ ldr r2,[sp,#11*4]
1590
+ eor r3,r3,r1,lsr#10 @ sigma1(X[i+14])
1591
+ ldr r1,[sp,#4*4]
1592
+
1593
+ add r3,r3,r0
1594
+ eor r0,r5,r5,ror#5 @ from BODY_00_15
1595
+ add r2,r2,r3
1596
+ eor r0,r0,r5,ror#19 @ Sigma1(e)
1597
+ add r2,r2,r1 @ X[i]
1598
+ ldr r3,[r14],#4 @ *K256++
1599
+ add r8,r8,r2 @ h+=X[i]
1600
+ str r2,[sp,#11*4]
1601
+ eor r2,r6,r7
1602
+ add r8,r8,r0,ror#6 @ h+=Sigma1(e)
1603
+ and r2,r2,r5
1604
+ add r8,r8,r3 @ h+=K256[i]
1605
+ eor r2,r2,r7 @ Ch(e,f,g)
1606
+ eor r0,r9,r9,ror#11
1607
+ add r8,r8,r2 @ h+=Ch(e,f,g)
1608
+ #if 27==31
1609
+ and r3,r3,#0xff
1610
+ cmp r3,#0xf2 @ done?
1611
+ #endif
1612
+ #if 27<15
1613
+ # if __ARM_ARCH>=7
1614
+ ldr r2,[r1],#4 @ prefetch
1615
+ # else
1616
+ ldrb r2,[r1,#3]
1617
+ # endif
1618
+ eor r3,r9,r10 @ a^b, b^c in next round
1619
+ #else
1620
+ ldr r2,[sp,#13*4] @ from future BODY_16_xx
1621
+ eor r3,r9,r10 @ a^b, b^c in next round
1622
+ ldr r1,[sp,#10*4] @ from future BODY_16_xx
1623
+ #endif
1624
+ eor r0,r0,r9,ror#20 @ Sigma0(a)
1625
+ and r12,r12,r3 @ (b^c)&=(a^b)
1626
+ add r4,r4,r8 @ d+=h
1627
+ eor r12,r12,r10 @ Maj(a,b,c)
1628
+ add r8,r8,r0,ror#2 @ h+=Sigma0(a)
1629
+ @ add r8,r8,r12 @ h+=Maj(a,b,c)
1630
+ @ ldr r2,[sp,#13*4] @ 28
1631
+ @ ldr r1,[sp,#10*4]
1632
+ mov r0,r2,ror#7
1633
+ add r8,r8,r12 @ h+=Maj(a,b,c) from the past
1634
+ mov r12,r1,ror#17
1635
+ eor r0,r0,r2,ror#18
1636
+ eor r12,r12,r1,ror#19
1637
+ eor r0,r0,r2,lsr#3 @ sigma0(X[i+1])
1638
+ ldr r2,[sp,#12*4]
1639
+ eor r12,r12,r1,lsr#10 @ sigma1(X[i+14])
1640
+ ldr r1,[sp,#5*4]
1641
+
1642
+ add r12,r12,r0
1643
+ eor r0,r4,r4,ror#5 @ from BODY_00_15
1644
+ add r2,r2,r12
1645
+ eor r0,r0,r4,ror#19 @ Sigma1(e)
1646
+ add r2,r2,r1 @ X[i]
1647
+ ldr r12,[r14],#4 @ *K256++
1648
+ add r7,r7,r2 @ h+=X[i]
1649
+ str r2,[sp,#12*4]
1650
+ eor r2,r5,r6
1651
+ add r7,r7,r0,ror#6 @ h+=Sigma1(e)
1652
+ and r2,r2,r4
1653
+ add r7,r7,r12 @ h+=K256[i]
1654
+ eor r2,r2,r6 @ Ch(e,f,g)
1655
+ eor r0,r8,r8,ror#11
1656
+ add r7,r7,r2 @ h+=Ch(e,f,g)
1657
+ #if 28==31
1658
+ and r12,r12,#0xff
1659
+ cmp r12,#0xf2 @ done?
1660
+ #endif
1661
+ #if 28<15
1662
+ # if __ARM_ARCH>=7
1663
+ ldr r2,[r1],#4 @ prefetch
1664
+ # else
1665
+ ldrb r2,[r1,#3]
1666
+ # endif
1667
+ eor r12,r8,r9 @ a^b, b^c in next round
1668
+ #else
1669
+ ldr r2,[sp,#14*4] @ from future BODY_16_xx
1670
+ eor r12,r8,r9 @ a^b, b^c in next round
1671
+ ldr r1,[sp,#11*4] @ from future BODY_16_xx
1672
+ #endif
1673
+ eor r0,r0,r8,ror#20 @ Sigma0(a)
1674
+ and r3,r3,r12 @ (b^c)&=(a^b)
1675
+ add r11,r11,r7 @ d+=h
1676
+ eor r3,r3,r9 @ Maj(a,b,c)
1677
+ add r7,r7,r0,ror#2 @ h+=Sigma0(a)
1678
+ @ add r7,r7,r3 @ h+=Maj(a,b,c)
1679
+ @ ldr r2,[sp,#14*4] @ 29
1680
+ @ ldr r1,[sp,#11*4]
1681
+ mov r0,r2,ror#7
1682
+ add r7,r7,r3 @ h+=Maj(a,b,c) from the past
1683
+ mov r3,r1,ror#17
1684
+ eor r0,r0,r2,ror#18
1685
+ eor r3,r3,r1,ror#19
1686
+ eor r0,r0,r2,lsr#3 @ sigma0(X[i+1])
1687
+ ldr r2,[sp,#13*4]
1688
+ eor r3,r3,r1,lsr#10 @ sigma1(X[i+14])
1689
+ ldr r1,[sp,#6*4]
1690
+
1691
+ add r3,r3,r0
1692
+ eor r0,r11,r11,ror#5 @ from BODY_00_15
1693
+ add r2,r2,r3
1694
+ eor r0,r0,r11,ror#19 @ Sigma1(e)
1695
+ add r2,r2,r1 @ X[i]
1696
+ ldr r3,[r14],#4 @ *K256++
1697
+ add r6,r6,r2 @ h+=X[i]
1698
+ str r2,[sp,#13*4]
1699
+ eor r2,r4,r5
1700
+ add r6,r6,r0,ror#6 @ h+=Sigma1(e)
1701
+ and r2,r2,r11
1702
+ add r6,r6,r3 @ h+=K256[i]
1703
+ eor r2,r2,r5 @ Ch(e,f,g)
1704
+ eor r0,r7,r7,ror#11
1705
+ add r6,r6,r2 @ h+=Ch(e,f,g)
1706
+ #if 29==31
1707
+ and r3,r3,#0xff
1708
+ cmp r3,#0xf2 @ done?
1709
+ #endif
1710
+ #if 29<15
1711
+ # if __ARM_ARCH>=7
1712
+ ldr r2,[r1],#4 @ prefetch
1713
+ # else
1714
+ ldrb r2,[r1,#3]
1715
+ # endif
1716
+ eor r3,r7,r8 @ a^b, b^c in next round
1717
+ #else
1718
+ ldr r2,[sp,#15*4] @ from future BODY_16_xx
1719
+ eor r3,r7,r8 @ a^b, b^c in next round
1720
+ ldr r1,[sp,#12*4] @ from future BODY_16_xx
1721
+ #endif
1722
+ eor r0,r0,r7,ror#20 @ Sigma0(a)
1723
+ and r12,r12,r3 @ (b^c)&=(a^b)
1724
+ add r10,r10,r6 @ d+=h
1725
+ eor r12,r12,r8 @ Maj(a,b,c)
1726
+ add r6,r6,r0,ror#2 @ h+=Sigma0(a)
1727
+ @ add r6,r6,r12 @ h+=Maj(a,b,c)
1728
+ @ ldr r2,[sp,#15*4] @ 30
1729
+ @ ldr r1,[sp,#12*4]
1730
+ mov r0,r2,ror#7
1731
+ add r6,r6,r12 @ h+=Maj(a,b,c) from the past
1732
+ mov r12,r1,ror#17
1733
+ eor r0,r0,r2,ror#18
1734
+ eor r12,r12,r1,ror#19
1735
+ eor r0,r0,r2,lsr#3 @ sigma0(X[i+1])
1736
+ ldr r2,[sp,#14*4]
1737
+ eor r12,r12,r1,lsr#10 @ sigma1(X[i+14])
1738
+ ldr r1,[sp,#7*4]
1739
+
1740
+ add r12,r12,r0
1741
+ eor r0,r10,r10,ror#5 @ from BODY_00_15
1742
+ add r2,r2,r12
1743
+ eor r0,r0,r10,ror#19 @ Sigma1(e)
1744
+ add r2,r2,r1 @ X[i]
1745
+ ldr r12,[r14],#4 @ *K256++
1746
+ add r5,r5,r2 @ h+=X[i]
1747
+ str r2,[sp,#14*4]
1748
+ eor r2,r11,r4
1749
+ add r5,r5,r0,ror#6 @ h+=Sigma1(e)
1750
+ and r2,r2,r10
1751
+ add r5,r5,r12 @ h+=K256[i]
1752
+ eor r2,r2,r4 @ Ch(e,f,g)
1753
+ eor r0,r6,r6,ror#11
1754
+ add r5,r5,r2 @ h+=Ch(e,f,g)
1755
+ #if 30==31
1756
+ and r12,r12,#0xff
1757
+ cmp r12,#0xf2 @ done?
1758
+ #endif
1759
+ #if 30<15
1760
+ # if __ARM_ARCH>=7
1761
+ ldr r2,[r1],#4 @ prefetch
1762
+ # else
1763
+ ldrb r2,[r1,#3]
1764
+ # endif
1765
+ eor r12,r6,r7 @ a^b, b^c in next round
1766
+ #else
1767
+ ldr r2,[sp,#0*4] @ from future BODY_16_xx
1768
+ eor r12,r6,r7 @ a^b, b^c in next round
1769
+ ldr r1,[sp,#13*4] @ from future BODY_16_xx
1770
+ #endif
1771
+ eor r0,r0,r6,ror#20 @ Sigma0(a)
1772
+ and r3,r3,r12 @ (b^c)&=(a^b)
1773
+ add r9,r9,r5 @ d+=h
1774
+ eor r3,r3,r7 @ Maj(a,b,c)
1775
+ add r5,r5,r0,ror#2 @ h+=Sigma0(a)
1776
+ @ add r5,r5,r3 @ h+=Maj(a,b,c)
1777
+ @ ldr r2,[sp,#0*4] @ 31
1778
+ @ ldr r1,[sp,#13*4]
1779
+ mov r0,r2,ror#7
1780
+ add r5,r5,r3 @ h+=Maj(a,b,c) from the past
1781
+ mov r3,r1,ror#17
1782
+ eor r0,r0,r2,ror#18
1783
+ eor r3,r3,r1,ror#19
1784
+ eor r0,r0,r2,lsr#3 @ sigma0(X[i+1])
1785
+ ldr r2,[sp,#15*4]
1786
+ eor r3,r3,r1,lsr#10 @ sigma1(X[i+14])
1787
+ ldr r1,[sp,#8*4]
1788
+
1789
+ add r3,r3,r0
1790
+ eor r0,r9,r9,ror#5 @ from BODY_00_15
1791
+ add r2,r2,r3
1792
+ eor r0,r0,r9,ror#19 @ Sigma1(e)
1793
+ add r2,r2,r1 @ X[i]
1794
+ ldr r3,[r14],#4 @ *K256++
1795
+ add r4,r4,r2 @ h+=X[i]
1796
+ str r2,[sp,#15*4]
1797
+ eor r2,r10,r11
1798
+ add r4,r4,r0,ror#6 @ h+=Sigma1(e)
1799
+ and r2,r2,r9
1800
+ add r4,r4,r3 @ h+=K256[i]
1801
+ eor r2,r2,r11 @ Ch(e,f,g)
1802
+ eor r0,r5,r5,ror#11
1803
+ add r4,r4,r2 @ h+=Ch(e,f,g)
1804
+ #if 31==31
1805
+ and r3,r3,#0xff
1806
+ cmp r3,#0xf2 @ done?
1807
+ #endif
1808
+ #if 31<15
1809
+ # if __ARM_ARCH>=7
1810
+ ldr r2,[r1],#4 @ prefetch
1811
+ # else
1812
+ ldrb r2,[r1,#3]
1813
+ # endif
1814
+ eor r3,r5,r6 @ a^b, b^c in next round
1815
+ #else
1816
+ ldr r2,[sp,#1*4] @ from future BODY_16_xx
1817
+ eor r3,r5,r6 @ a^b, b^c in next round
1818
+ ldr r1,[sp,#14*4] @ from future BODY_16_xx
1819
+ #endif
1820
+ eor r0,r0,r5,ror#20 @ Sigma0(a)
1821
+ and r12,r12,r3 @ (b^c)&=(a^b)
1822
+ add r8,r8,r4 @ d+=h
1823
+ eor r12,r12,r6 @ Maj(a,b,c)
1824
+ add r4,r4,r0,ror#2 @ h+=Sigma0(a)
1825
+ @ add r4,r4,r12 @ h+=Maj(a,b,c)
1826
+ #if __ARM_ARCH>=7
1827
+ ite eq @ Thumb2 thing, sanity check in ARM
1828
+ #endif
1829
+ ldreq r3,[sp,#16*4] @ pull ctx
1830
+ bne .Lrounds_16_xx
1831
+
1832
+ add r4,r4,r12 @ h+=Maj(a,b,c) from the past
1833
+ ldr r0,[r3,#0]
1834
+ ldr r2,[r3,#4]
1835
+ ldr r12,[r3,#8]
1836
+ add r4,r4,r0
1837
+ ldr r0,[r3,#12]
1838
+ add r5,r5,r2
1839
+ ldr r2,[r3,#16]
1840
+ add r6,r6,r12
1841
+ ldr r12,[r3,#20]
1842
+ add r7,r7,r0
1843
+ ldr r0,[r3,#24]
1844
+ add r8,r8,r2
1845
+ ldr r2,[r3,#28]
1846
+ add r9,r9,r12
1847
+ ldr r1,[sp,#17*4] @ pull inp
1848
+ ldr r12,[sp,#18*4] @ pull inp+len
1849
+ add r10,r10,r0
1850
+ add r11,r11,r2
1851
+ stmia r3,{r4,r5,r6,r7,r8,r9,r10,r11}
1852
+ cmp r1,r12
1853
+ sub r14,r14,#256 @ rewind Ktbl
1854
+ bne .Loop
1855
+
1856
+ add sp,sp,#19*4 @ destroy frame
1857
+ #if __ARM_ARCH>=5
1858
+ ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,pc}
1859
+ #else
1860
+ ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,lr}
1861
+ tst lr,#1
1862
+ moveq pc,lr @ be binary compatible with V4, yet
1863
+ .word 0xe12fff1e @ interoperable with Thumb ISA:-)
1864
+ #endif
1865
+ .size sha256_block_data_order_nohw,.-sha256_block_data_order_nohw
1866
+ #if __ARM_MAX_ARCH__>=7
1867
+ .arch armv7-a
1868
+ .fpu neon
1869
+
1870
+ .LK256_shortcut_neon:
1871
+ @ PC is 8 bytes ahead in Arm mode and 4 bytes ahead in Thumb mode.
1872
+ #if defined(__thumb2__)
1873
+ .word K256-(.LK256_add_neon+4)
1874
+ #else
1875
+ .word K256-(.LK256_add_neon+8)
1876
+ #endif
1877
+
1878
+ .globl sha256_block_data_order_neon
1879
+ .hidden sha256_block_data_order_neon
1880
+ .type sha256_block_data_order_neon,%function
1881
+ .align 5
1882
+ .skip 16
1883
+ sha256_block_data_order_neon:
1884
+ stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
1885
+
1886
+ sub r11,sp,#16*4+16
1887
+
1888
+ @ K256 is just at the boundary of being easily referenced by an ADR from
1889
+ @ this function. In Arm mode, when building with __ARM_ARCH=6, it does
1890
+ @ not fit. By moving code around, we could make it fit, but this is too
1891
+ @ fragile. For simplicity, just load the offset from
1892
+ @ .LK256_shortcut_neon.
1893
+ @
1894
+ @ TODO(davidben): adrl would avoid a load, but clang-assembler does not
1895
+ @ support it. We might be able to emulate it with a macro, but Android's
1896
+ @ did not work when I tried it.
1897
+ @ https://android.googlesource.com/platform/ndk/+/refs/heads/main/docs/ClangMigration.md#arm
1898
+ ldr r14,.LK256_shortcut_neon
1899
+ .LK256_add_neon:
1900
+ add r14,pc,r14
1901
+
1902
+ bic r11,r11,#15 @ align for 128-bit stores
1903
+ mov r12,sp
1904
+ mov sp,r11 @ alloca
1905
+ add r2,r1,r2,lsl#6 @ len to point at the end of inp
1906
+
1907
+ vld1.8 {q0},[r1]!
1908
+ vld1.8 {q1},[r1]!
1909
+ vld1.8 {q2},[r1]!
1910
+ vld1.8 {q3},[r1]!
1911
+ vld1.32 {q8},[r14,:128]!
1912
+ vld1.32 {q9},[r14,:128]!
1913
+ vld1.32 {q10},[r14,:128]!
1914
+ vld1.32 {q11},[r14,:128]!
1915
+ vrev32.8 q0,q0 @ yes, even on
1916
+ str r0,[sp,#64]
1917
+ vrev32.8 q1,q1 @ big-endian
1918
+ str r1,[sp,#68]
1919
+ mov r1,sp
1920
+ vrev32.8 q2,q2
1921
+ str r2,[sp,#72]
1922
+ vrev32.8 q3,q3
1923
+ str r12,[sp,#76] @ save original sp
1924
+ vadd.i32 q8,q8,q0
1925
+ vadd.i32 q9,q9,q1
1926
+ vst1.32 {q8},[r1,:128]!
1927
+ vadd.i32 q10,q10,q2
1928
+ vst1.32 {q9},[r1,:128]!
1929
+ vadd.i32 q11,q11,q3
1930
+ vst1.32 {q10},[r1,:128]!
1931
+ vst1.32 {q11},[r1,:128]!
1932
+
1933
+ ldmia r0,{r4,r5,r6,r7,r8,r9,r10,r11}
1934
+ sub r1,r1,#64
1935
+ ldr r2,[sp,#0]
1936
+ eor r12,r12,r12
1937
+ eor r3,r5,r6
1938
+ b .L_00_48
1939
+
1940
+ .align 4
1941
+ .L_00_48:
1942
+ vext.8 q8,q0,q1,#4
1943
+ add r11,r11,r2
1944
+ eor r2,r9,r10
1945
+ eor r0,r8,r8,ror#5
1946
+ vext.8 q9,q2,q3,#4
1947
+ add r4,r4,r12
1948
+ and r2,r2,r8
1949
+ eor r12,r0,r8,ror#19
1950
+ vshr.u32 q10,q8,#7
1951
+ eor r0,r4,r4,ror#11
1952
+ eor r2,r2,r10
1953
+ vadd.i32 q0,q0,q9
1954
+ add r11,r11,r12,ror#6
1955
+ eor r12,r4,r5
1956
+ vshr.u32 q9,q8,#3
1957
+ eor r0,r0,r4,ror#20
1958
+ add r11,r11,r2
1959
+ vsli.32 q10,q8,#25
1960
+ ldr r2,[sp,#4]
1961
+ and r3,r3,r12
1962
+ vshr.u32 q11,q8,#18
1963
+ add r7,r7,r11
1964
+ add r11,r11,r0,ror#2
1965
+ eor r3,r3,r5
1966
+ veor q9,q9,q10
1967
+ add r10,r10,r2
1968
+ vsli.32 q11,q8,#14
1969
+ eor r2,r8,r9
1970
+ eor r0,r7,r7,ror#5
1971
+ vshr.u32 d24,d7,#17
1972
+ add r11,r11,r3
1973
+ and r2,r2,r7
1974
+ veor q9,q9,q11
1975
+ eor r3,r0,r7,ror#19
1976
+ eor r0,r11,r11,ror#11
1977
+ vsli.32 d24,d7,#15
1978
+ eor r2,r2,r9
1979
+ add r10,r10,r3,ror#6
1980
+ vshr.u32 d25,d7,#10
1981
+ eor r3,r11,r4
1982
+ eor r0,r0,r11,ror#20
1983
+ vadd.i32 q0,q0,q9
1984
+ add r10,r10,r2
1985
+ ldr r2,[sp,#8]
1986
+ veor d25,d25,d24
1987
+ and r12,r12,r3
1988
+ add r6,r6,r10
1989
+ vshr.u32 d24,d7,#19
1990
+ add r10,r10,r0,ror#2
1991
+ eor r12,r12,r4
1992
+ vsli.32 d24,d7,#13
1993
+ add r9,r9,r2
1994
+ eor r2,r7,r8
1995
+ veor d25,d25,d24
1996
+ eor r0,r6,r6,ror#5
1997
+ add r10,r10,r12
1998
+ vadd.i32 d0,d0,d25
1999
+ and r2,r2,r6
2000
+ eor r12,r0,r6,ror#19
2001
+ vshr.u32 d24,d0,#17
2002
+ eor r0,r10,r10,ror#11
2003
+ eor r2,r2,r8
2004
+ vsli.32 d24,d0,#15
2005
+ add r9,r9,r12,ror#6
2006
+ eor r12,r10,r11
2007
+ vshr.u32 d25,d0,#10
2008
+ eor r0,r0,r10,ror#20
2009
+ add r9,r9,r2
2010
+ veor d25,d25,d24
2011
+ ldr r2,[sp,#12]
2012
+ and r3,r3,r12
2013
+ vshr.u32 d24,d0,#19
2014
+ add r5,r5,r9
2015
+ add r9,r9,r0,ror#2
2016
+ eor r3,r3,r11
2017
+ vld1.32 {q8},[r14,:128]!
2018
+ add r8,r8,r2
2019
+ vsli.32 d24,d0,#13
2020
+ eor r2,r6,r7
2021
+ eor r0,r5,r5,ror#5
2022
+ veor d25,d25,d24
2023
+ add r9,r9,r3
2024
+ and r2,r2,r5
2025
+ vadd.i32 d1,d1,d25
2026
+ eor r3,r0,r5,ror#19
2027
+ eor r0,r9,r9,ror#11
2028
+ vadd.i32 q8,q8,q0
2029
+ eor r2,r2,r7
2030
+ add r8,r8,r3,ror#6
2031
+ eor r3,r9,r10
2032
+ eor r0,r0,r9,ror#20
2033
+ add r8,r8,r2
2034
+ ldr r2,[sp,#16]
2035
+ and r12,r12,r3
2036
+ add r4,r4,r8
2037
+ vst1.32 {q8},[r1,:128]!
2038
+ add r8,r8,r0,ror#2
2039
+ eor r12,r12,r10
2040
+ vext.8 q8,q1,q2,#4
2041
+ add r7,r7,r2
2042
+ eor r2,r5,r6
2043
+ eor r0,r4,r4,ror#5
2044
+ vext.8 q9,q3,q0,#4
2045
+ add r8,r8,r12
2046
+ and r2,r2,r4
2047
+ eor r12,r0,r4,ror#19
2048
+ vshr.u32 q10,q8,#7
2049
+ eor r0,r8,r8,ror#11
2050
+ eor r2,r2,r6
2051
+ vadd.i32 q1,q1,q9
2052
+ add r7,r7,r12,ror#6
2053
+ eor r12,r8,r9
2054
+ vshr.u32 q9,q8,#3
2055
+ eor r0,r0,r8,ror#20
2056
+ add r7,r7,r2
2057
+ vsli.32 q10,q8,#25
2058
+ ldr r2,[sp,#20]
2059
+ and r3,r3,r12
2060
+ vshr.u32 q11,q8,#18
2061
+ add r11,r11,r7
2062
+ add r7,r7,r0,ror#2
2063
+ eor r3,r3,r9
2064
+ veor q9,q9,q10
2065
+ add r6,r6,r2
2066
+ vsli.32 q11,q8,#14
2067
+ eor r2,r4,r5
2068
+ eor r0,r11,r11,ror#5
2069
+ vshr.u32 d24,d1,#17
2070
+ add r7,r7,r3
2071
+ and r2,r2,r11
2072
+ veor q9,q9,q11
2073
+ eor r3,r0,r11,ror#19
2074
+ eor r0,r7,r7,ror#11
2075
+ vsli.32 d24,d1,#15
2076
+ eor r2,r2,r5
2077
+ add r6,r6,r3,ror#6
2078
+ vshr.u32 d25,d1,#10
2079
+ eor r3,r7,r8
2080
+ eor r0,r0,r7,ror#20
2081
+ vadd.i32 q1,q1,q9
2082
+ add r6,r6,r2
2083
+ ldr r2,[sp,#24]
2084
+ veor d25,d25,d24
2085
+ and r12,r12,r3
2086
+ add r10,r10,r6
2087
+ vshr.u32 d24,d1,#19
2088
+ add r6,r6,r0,ror#2
2089
+ eor r12,r12,r8
2090
+ vsli.32 d24,d1,#13
2091
+ add r5,r5,r2
2092
+ eor r2,r11,r4
2093
+ veor d25,d25,d24
2094
+ eor r0,r10,r10,ror#5
2095
+ add r6,r6,r12
2096
+ vadd.i32 d2,d2,d25
2097
+ and r2,r2,r10
2098
+ eor r12,r0,r10,ror#19
2099
+ vshr.u32 d24,d2,#17
2100
+ eor r0,r6,r6,ror#11
2101
+ eor r2,r2,r4
2102
+ vsli.32 d24,d2,#15
2103
+ add r5,r5,r12,ror#6
2104
+ eor r12,r6,r7
2105
+ vshr.u32 d25,d2,#10
2106
+ eor r0,r0,r6,ror#20
2107
+ add r5,r5,r2
2108
+ veor d25,d25,d24
2109
+ ldr r2,[sp,#28]
2110
+ and r3,r3,r12
2111
+ vshr.u32 d24,d2,#19
2112
+ add r9,r9,r5
2113
+ add r5,r5,r0,ror#2
2114
+ eor r3,r3,r7
2115
+ vld1.32 {q8},[r14,:128]!
2116
+ add r4,r4,r2
2117
+ vsli.32 d24,d2,#13
2118
+ eor r2,r10,r11
2119
+ eor r0,r9,r9,ror#5
2120
+ veor d25,d25,d24
2121
+ add r5,r5,r3
2122
+ and r2,r2,r9
2123
+ vadd.i32 d3,d3,d25
2124
+ eor r3,r0,r9,ror#19
2125
+ eor r0,r5,r5,ror#11
2126
+ vadd.i32 q8,q8,q1
2127
+ eor r2,r2,r11
2128
+ add r4,r4,r3,ror#6
2129
+ eor r3,r5,r6
2130
+ eor r0,r0,r5,ror#20
2131
+ add r4,r4,r2
2132
+ ldr r2,[sp,#32]
2133
+ and r12,r12,r3
2134
+ add r8,r8,r4
2135
+ vst1.32 {q8},[r1,:128]!
2136
+ add r4,r4,r0,ror#2
2137
+ eor r12,r12,r6
2138
+ vext.8 q8,q2,q3,#4
2139
+ add r11,r11,r2
2140
+ eor r2,r9,r10
2141
+ eor r0,r8,r8,ror#5
2142
+ vext.8 q9,q0,q1,#4
2143
+ add r4,r4,r12
2144
+ and r2,r2,r8
2145
+ eor r12,r0,r8,ror#19
2146
+ vshr.u32 q10,q8,#7
2147
+ eor r0,r4,r4,ror#11
2148
+ eor r2,r2,r10
2149
+ vadd.i32 q2,q2,q9
2150
+ add r11,r11,r12,ror#6
2151
+ eor r12,r4,r5
2152
+ vshr.u32 q9,q8,#3
2153
+ eor r0,r0,r4,ror#20
2154
+ add r11,r11,r2
2155
+ vsli.32 q10,q8,#25
2156
+ ldr r2,[sp,#36]
2157
+ and r3,r3,r12
2158
+ vshr.u32 q11,q8,#18
2159
+ add r7,r7,r11
2160
+ add r11,r11,r0,ror#2
2161
+ eor r3,r3,r5
2162
+ veor q9,q9,q10
2163
+ add r10,r10,r2
2164
+ vsli.32 q11,q8,#14
2165
+ eor r2,r8,r9
2166
+ eor r0,r7,r7,ror#5
2167
+ vshr.u32 d24,d3,#17
2168
+ add r11,r11,r3
2169
+ and r2,r2,r7
2170
+ veor q9,q9,q11
2171
+ eor r3,r0,r7,ror#19
2172
+ eor r0,r11,r11,ror#11
2173
+ vsli.32 d24,d3,#15
2174
+ eor r2,r2,r9
2175
+ add r10,r10,r3,ror#6
2176
+ vshr.u32 d25,d3,#10
2177
+ eor r3,r11,r4
2178
+ eor r0,r0,r11,ror#20
2179
+ vadd.i32 q2,q2,q9
2180
+ add r10,r10,r2
2181
+ ldr r2,[sp,#40]
2182
+ veor d25,d25,d24
2183
+ and r12,r12,r3
2184
+ add r6,r6,r10
2185
+ vshr.u32 d24,d3,#19
2186
+ add r10,r10,r0,ror#2
2187
+ eor r12,r12,r4
2188
+ vsli.32 d24,d3,#13
2189
+ add r9,r9,r2
2190
+ eor r2,r7,r8
2191
+ veor d25,d25,d24
2192
+ eor r0,r6,r6,ror#5
2193
+ add r10,r10,r12
2194
+ vadd.i32 d4,d4,d25
2195
+ and r2,r2,r6
2196
+ eor r12,r0,r6,ror#19
2197
+ vshr.u32 d24,d4,#17
2198
+ eor r0,r10,r10,ror#11
2199
+ eor r2,r2,r8
2200
+ vsli.32 d24,d4,#15
2201
+ add r9,r9,r12,ror#6
2202
+ eor r12,r10,r11
2203
+ vshr.u32 d25,d4,#10
2204
+ eor r0,r0,r10,ror#20
2205
+ add r9,r9,r2
2206
+ veor d25,d25,d24
2207
+ ldr r2,[sp,#44]
2208
+ and r3,r3,r12
2209
+ vshr.u32 d24,d4,#19
2210
+ add r5,r5,r9
2211
+ add r9,r9,r0,ror#2
2212
+ eor r3,r3,r11
2213
+ vld1.32 {q8},[r14,:128]!
2214
+ add r8,r8,r2
2215
+ vsli.32 d24,d4,#13
2216
+ eor r2,r6,r7
2217
+ eor r0,r5,r5,ror#5
2218
+ veor d25,d25,d24
2219
+ add r9,r9,r3
2220
+ and r2,r2,r5
2221
+ vadd.i32 d5,d5,d25
2222
+ eor r3,r0,r5,ror#19
2223
+ eor r0,r9,r9,ror#11
2224
+ vadd.i32 q8,q8,q2
2225
+ eor r2,r2,r7
2226
+ add r8,r8,r3,ror#6
2227
+ eor r3,r9,r10
2228
+ eor r0,r0,r9,ror#20
2229
+ add r8,r8,r2
2230
+ ldr r2,[sp,#48]
2231
+ and r12,r12,r3
2232
+ add r4,r4,r8
2233
+ vst1.32 {q8},[r1,:128]!
2234
+ add r8,r8,r0,ror#2
2235
+ eor r12,r12,r10
2236
+ vext.8 q8,q3,q0,#4
2237
+ add r7,r7,r2
2238
+ eor r2,r5,r6
2239
+ eor r0,r4,r4,ror#5
2240
+ vext.8 q9,q1,q2,#4
2241
+ add r8,r8,r12
2242
+ and r2,r2,r4
2243
+ eor r12,r0,r4,ror#19
2244
+ vshr.u32 q10,q8,#7
2245
+ eor r0,r8,r8,ror#11
2246
+ eor r2,r2,r6
2247
+ vadd.i32 q3,q3,q9
2248
+ add r7,r7,r12,ror#6
2249
+ eor r12,r8,r9
2250
+ vshr.u32 q9,q8,#3
2251
+ eor r0,r0,r8,ror#20
2252
+ add r7,r7,r2
2253
+ vsli.32 q10,q8,#25
2254
+ ldr r2,[sp,#52]
2255
+ and r3,r3,r12
2256
+ vshr.u32 q11,q8,#18
2257
+ add r11,r11,r7
2258
+ add r7,r7,r0,ror#2
2259
+ eor r3,r3,r9
2260
+ veor q9,q9,q10
2261
+ add r6,r6,r2
2262
+ vsli.32 q11,q8,#14
2263
+ eor r2,r4,r5
2264
+ eor r0,r11,r11,ror#5
2265
+ vshr.u32 d24,d5,#17
2266
+ add r7,r7,r3
2267
+ and r2,r2,r11
2268
+ veor q9,q9,q11
2269
+ eor r3,r0,r11,ror#19
2270
+ eor r0,r7,r7,ror#11
2271
+ vsli.32 d24,d5,#15
2272
+ eor r2,r2,r5
2273
+ add r6,r6,r3,ror#6
2274
+ vshr.u32 d25,d5,#10
2275
+ eor r3,r7,r8
2276
+ eor r0,r0,r7,ror#20
2277
+ vadd.i32 q3,q3,q9
2278
+ add r6,r6,r2
2279
+ ldr r2,[sp,#56]
2280
+ veor d25,d25,d24
2281
+ and r12,r12,r3
2282
+ add r10,r10,r6
2283
+ vshr.u32 d24,d5,#19
2284
+ add r6,r6,r0,ror#2
2285
+ eor r12,r12,r8
2286
+ vsli.32 d24,d5,#13
2287
+ add r5,r5,r2
2288
+ eor r2,r11,r4
2289
+ veor d25,d25,d24
2290
+ eor r0,r10,r10,ror#5
2291
+ add r6,r6,r12
2292
+ vadd.i32 d6,d6,d25
2293
+ and r2,r2,r10
2294
+ eor r12,r0,r10,ror#19
2295
+ vshr.u32 d24,d6,#17
2296
+ eor r0,r6,r6,ror#11
2297
+ eor r2,r2,r4
2298
+ vsli.32 d24,d6,#15
2299
+ add r5,r5,r12,ror#6
2300
+ eor r12,r6,r7
2301
+ vshr.u32 d25,d6,#10
2302
+ eor r0,r0,r6,ror#20
2303
+ add r5,r5,r2
2304
+ veor d25,d25,d24
2305
+ ldr r2,[sp,#60]
2306
+ and r3,r3,r12
2307
+ vshr.u32 d24,d6,#19
2308
+ add r9,r9,r5
2309
+ add r5,r5,r0,ror#2
2310
+ eor r3,r3,r7
2311
+ vld1.32 {q8},[r14,:128]!
2312
+ add r4,r4,r2
2313
+ vsli.32 d24,d6,#13
2314
+ eor r2,r10,r11
2315
+ eor r0,r9,r9,ror#5
2316
+ veor d25,d25,d24
2317
+ add r5,r5,r3
2318
+ and r2,r2,r9
2319
+ vadd.i32 d7,d7,d25
2320
+ eor r3,r0,r9,ror#19
2321
+ eor r0,r5,r5,ror#11
2322
+ vadd.i32 q8,q8,q3
2323
+ eor r2,r2,r11
2324
+ add r4,r4,r3,ror#6
2325
+ eor r3,r5,r6
2326
+ eor r0,r0,r5,ror#20
2327
+ add r4,r4,r2
2328
+ ldr r2,[r14]
2329
+ and r12,r12,r3
2330
+ add r8,r8,r4
2331
+ vst1.32 {q8},[r1,:128]!
2332
+ add r4,r4,r0,ror#2
2333
+ eor r12,r12,r6
2334
+ teq r2,#0 @ check for K256 terminator
2335
+ ldr r2,[sp,#0]
2336
+ sub r1,r1,#64
2337
+ bne .L_00_48
2338
+
2339
+ ldr r1,[sp,#68]
2340
+ ldr r0,[sp,#72]
2341
+ sub r14,r14,#256 @ rewind r14
2342
+ teq r1,r0
2343
+ it eq
2344
+ subeq r1,r1,#64 @ avoid SEGV
2345
+ vld1.8 {q0},[r1]! @ load next input block
2346
+ vld1.8 {q1},[r1]!
2347
+ vld1.8 {q2},[r1]!
2348
+ vld1.8 {q3},[r1]!
2349
+ it ne
2350
+ strne r1,[sp,#68]
2351
+ mov r1,sp
2352
+ add r11,r11,r2
2353
+ eor r2,r9,r10
2354
+ eor r0,r8,r8,ror#5
2355
+ add r4,r4,r12
2356
+ vld1.32 {q8},[r14,:128]!
2357
+ and r2,r2,r8
2358
+ eor r12,r0,r8,ror#19
2359
+ eor r0,r4,r4,ror#11
2360
+ eor r2,r2,r10
2361
+ vrev32.8 q0,q0
2362
+ add r11,r11,r12,ror#6
2363
+ eor r12,r4,r5
2364
+ eor r0,r0,r4,ror#20
2365
+ add r11,r11,r2
2366
+ vadd.i32 q8,q8,q0
2367
+ ldr r2,[sp,#4]
2368
+ and r3,r3,r12
2369
+ add r7,r7,r11
2370
+ add r11,r11,r0,ror#2
2371
+ eor r3,r3,r5
2372
+ add r10,r10,r2
2373
+ eor r2,r8,r9
2374
+ eor r0,r7,r7,ror#5
2375
+ add r11,r11,r3
2376
+ and r2,r2,r7
2377
+ eor r3,r0,r7,ror#19
2378
+ eor r0,r11,r11,ror#11
2379
+ eor r2,r2,r9
2380
+ add r10,r10,r3,ror#6
2381
+ eor r3,r11,r4
2382
+ eor r0,r0,r11,ror#20
2383
+ add r10,r10,r2
2384
+ ldr r2,[sp,#8]
2385
+ and r12,r12,r3
2386
+ add r6,r6,r10
2387
+ add r10,r10,r0,ror#2
2388
+ eor r12,r12,r4
2389
+ add r9,r9,r2
2390
+ eor r2,r7,r8
2391
+ eor r0,r6,r6,ror#5
2392
+ add r10,r10,r12
2393
+ and r2,r2,r6
2394
+ eor r12,r0,r6,ror#19
2395
+ eor r0,r10,r10,ror#11
2396
+ eor r2,r2,r8
2397
+ add r9,r9,r12,ror#6
2398
+ eor r12,r10,r11
2399
+ eor r0,r0,r10,ror#20
2400
+ add r9,r9,r2
2401
+ ldr r2,[sp,#12]
2402
+ and r3,r3,r12
2403
+ add r5,r5,r9
2404
+ add r9,r9,r0,ror#2
2405
+ eor r3,r3,r11
2406
+ add r8,r8,r2
2407
+ eor r2,r6,r7
2408
+ eor r0,r5,r5,ror#5
2409
+ add r9,r9,r3
2410
+ and r2,r2,r5
2411
+ eor r3,r0,r5,ror#19
2412
+ eor r0,r9,r9,ror#11
2413
+ eor r2,r2,r7
2414
+ add r8,r8,r3,ror#6
2415
+ eor r3,r9,r10
2416
+ eor r0,r0,r9,ror#20
2417
+ add r8,r8,r2
2418
+ ldr r2,[sp,#16]
2419
+ and r12,r12,r3
2420
+ add r4,r4,r8
2421
+ add r8,r8,r0,ror#2
2422
+ eor r12,r12,r10
2423
+ vst1.32 {q8},[r1,:128]!
2424
+ add r7,r7,r2
2425
+ eor r2,r5,r6
2426
+ eor r0,r4,r4,ror#5
2427
+ add r8,r8,r12
2428
+ vld1.32 {q8},[r14,:128]!
2429
+ and r2,r2,r4
2430
+ eor r12,r0,r4,ror#19
2431
+ eor r0,r8,r8,ror#11
2432
+ eor r2,r2,r6
2433
+ vrev32.8 q1,q1
2434
+ add r7,r7,r12,ror#6
2435
+ eor r12,r8,r9
2436
+ eor r0,r0,r8,ror#20
2437
+ add r7,r7,r2
2438
+ vadd.i32 q8,q8,q1
2439
+ ldr r2,[sp,#20]
2440
+ and r3,r3,r12
2441
+ add r11,r11,r7
2442
+ add r7,r7,r0,ror#2
2443
+ eor r3,r3,r9
2444
+ add r6,r6,r2
2445
+ eor r2,r4,r5
2446
+ eor r0,r11,r11,ror#5
2447
+ add r7,r7,r3
2448
+ and r2,r2,r11
2449
+ eor r3,r0,r11,ror#19
2450
+ eor r0,r7,r7,ror#11
2451
+ eor r2,r2,r5
2452
+ add r6,r6,r3,ror#6
2453
+ eor r3,r7,r8
2454
+ eor r0,r0,r7,ror#20
2455
+ add r6,r6,r2
2456
+ ldr r2,[sp,#24]
2457
+ and r12,r12,r3
2458
+ add r10,r10,r6
2459
+ add r6,r6,r0,ror#2
2460
+ eor r12,r12,r8
2461
+ add r5,r5,r2
2462
+ eor r2,r11,r4
2463
+ eor r0,r10,r10,ror#5
2464
+ add r6,r6,r12
2465
+ and r2,r2,r10
2466
+ eor r12,r0,r10,ror#19
2467
+ eor r0,r6,r6,ror#11
2468
+ eor r2,r2,r4
2469
+ add r5,r5,r12,ror#6
2470
+ eor r12,r6,r7
2471
+ eor r0,r0,r6,ror#20
2472
+ add r5,r5,r2
2473
+ ldr r2,[sp,#28]
2474
+ and r3,r3,r12
2475
+ add r9,r9,r5
2476
+ add r5,r5,r0,ror#2
2477
+ eor r3,r3,r7
2478
+ add r4,r4,r2
2479
+ eor r2,r10,r11
2480
+ eor r0,r9,r9,ror#5
2481
+ add r5,r5,r3
2482
+ and r2,r2,r9
2483
+ eor r3,r0,r9,ror#19
2484
+ eor r0,r5,r5,ror#11
2485
+ eor r2,r2,r11
2486
+ add r4,r4,r3,ror#6
2487
+ eor r3,r5,r6
2488
+ eor r0,r0,r5,ror#20
2489
+ add r4,r4,r2
2490
+ ldr r2,[sp,#32]
2491
+ and r12,r12,r3
2492
+ add r8,r8,r4
2493
+ add r4,r4,r0,ror#2
2494
+ eor r12,r12,r6
2495
+ vst1.32 {q8},[r1,:128]!
2496
+ add r11,r11,r2
2497
+ eor r2,r9,r10
2498
+ eor r0,r8,r8,ror#5
2499
+ add r4,r4,r12
2500
+ vld1.32 {q8},[r14,:128]!
2501
+ and r2,r2,r8
2502
+ eor r12,r0,r8,ror#19
2503
+ eor r0,r4,r4,ror#11
2504
+ eor r2,r2,r10
2505
+ vrev32.8 q2,q2
2506
+ add r11,r11,r12,ror#6
2507
+ eor r12,r4,r5
2508
+ eor r0,r0,r4,ror#20
2509
+ add r11,r11,r2
2510
+ vadd.i32 q8,q8,q2
2511
+ ldr r2,[sp,#36]
2512
+ and r3,r3,r12
2513
+ add r7,r7,r11
2514
+ add r11,r11,r0,ror#2
2515
+ eor r3,r3,r5
2516
+ add r10,r10,r2
2517
+ eor r2,r8,r9
2518
+ eor r0,r7,r7,ror#5
2519
+ add r11,r11,r3
2520
+ and r2,r2,r7
2521
+ eor r3,r0,r7,ror#19
2522
+ eor r0,r11,r11,ror#11
2523
+ eor r2,r2,r9
2524
+ add r10,r10,r3,ror#6
2525
+ eor r3,r11,r4
2526
+ eor r0,r0,r11,ror#20
2527
+ add r10,r10,r2
2528
+ ldr r2,[sp,#40]
2529
+ and r12,r12,r3
2530
+ add r6,r6,r10
2531
+ add r10,r10,r0,ror#2
2532
+ eor r12,r12,r4
2533
+ add r9,r9,r2
2534
+ eor r2,r7,r8
2535
+ eor r0,r6,r6,ror#5
2536
+ add r10,r10,r12
2537
+ and r2,r2,r6
2538
+ eor r12,r0,r6,ror#19
2539
+ eor r0,r10,r10,ror#11
2540
+ eor r2,r2,r8
2541
+ add r9,r9,r12,ror#6
2542
+ eor r12,r10,r11
2543
+ eor r0,r0,r10,ror#20
2544
+ add r9,r9,r2
2545
+ ldr r2,[sp,#44]
2546
+ and r3,r3,r12
2547
+ add r5,r5,r9
2548
+ add r9,r9,r0,ror#2
2549
+ eor r3,r3,r11
2550
+ add r8,r8,r2
2551
+ eor r2,r6,r7
2552
+ eor r0,r5,r5,ror#5
2553
+ add r9,r9,r3
2554
+ and r2,r2,r5
2555
+ eor r3,r0,r5,ror#19
2556
+ eor r0,r9,r9,ror#11
2557
+ eor r2,r2,r7
2558
+ add r8,r8,r3,ror#6
2559
+ eor r3,r9,r10
2560
+ eor r0,r0,r9,ror#20
2561
+ add r8,r8,r2
2562
+ ldr r2,[sp,#48]
2563
+ and r12,r12,r3
2564
+ add r4,r4,r8
2565
+ add r8,r8,r0,ror#2
2566
+ eor r12,r12,r10
2567
+ vst1.32 {q8},[r1,:128]!
2568
+ add r7,r7,r2
2569
+ eor r2,r5,r6
2570
+ eor r0,r4,r4,ror#5
2571
+ add r8,r8,r12
2572
+ vld1.32 {q8},[r14,:128]!
2573
+ and r2,r2,r4
2574
+ eor r12,r0,r4,ror#19
2575
+ eor r0,r8,r8,ror#11
2576
+ eor r2,r2,r6
2577
+ vrev32.8 q3,q3
2578
+ add r7,r7,r12,ror#6
2579
+ eor r12,r8,r9
2580
+ eor r0,r0,r8,ror#20
2581
+ add r7,r7,r2
2582
+ vadd.i32 q8,q8,q3
2583
+ ldr r2,[sp,#52]
2584
+ and r3,r3,r12
2585
+ add r11,r11,r7
2586
+ add r7,r7,r0,ror#2
2587
+ eor r3,r3,r9
2588
+ add r6,r6,r2
2589
+ eor r2,r4,r5
2590
+ eor r0,r11,r11,ror#5
2591
+ add r7,r7,r3
2592
+ and r2,r2,r11
2593
+ eor r3,r0,r11,ror#19
2594
+ eor r0,r7,r7,ror#11
2595
+ eor r2,r2,r5
2596
+ add r6,r6,r3,ror#6
2597
+ eor r3,r7,r8
2598
+ eor r0,r0,r7,ror#20
2599
+ add r6,r6,r2
2600
+ ldr r2,[sp,#56]
2601
+ and r12,r12,r3
2602
+ add r10,r10,r6
2603
+ add r6,r6,r0,ror#2
2604
+ eor r12,r12,r8
2605
+ add r5,r5,r2
2606
+ eor r2,r11,r4
2607
+ eor r0,r10,r10,ror#5
2608
+ add r6,r6,r12
2609
+ and r2,r2,r10
2610
+ eor r12,r0,r10,ror#19
2611
+ eor r0,r6,r6,ror#11
2612
+ eor r2,r2,r4
2613
+ add r5,r5,r12,ror#6
2614
+ eor r12,r6,r7
2615
+ eor r0,r0,r6,ror#20
2616
+ add r5,r5,r2
2617
+ ldr r2,[sp,#60]
2618
+ and r3,r3,r12
2619
+ add r9,r9,r5
2620
+ add r5,r5,r0,ror#2
2621
+ eor r3,r3,r7
2622
+ add r4,r4,r2
2623
+ eor r2,r10,r11
2624
+ eor r0,r9,r9,ror#5
2625
+ add r5,r5,r3
2626
+ and r2,r2,r9
2627
+ eor r3,r0,r9,ror#19
2628
+ eor r0,r5,r5,ror#11
2629
+ eor r2,r2,r11
2630
+ add r4,r4,r3,ror#6
2631
+ eor r3,r5,r6
2632
+ eor r0,r0,r5,ror#20
2633
+ add r4,r4,r2
2634
+ ldr r2,[sp,#64]
2635
+ and r12,r12,r3
2636
+ add r8,r8,r4
2637
+ add r4,r4,r0,ror#2
2638
+ eor r12,r12,r6
2639
+ vst1.32 {q8},[r1,:128]!
2640
+ ldr r0,[r2,#0]
2641
+ add r4,r4,r12 @ h+=Maj(a,b,c) from the past
2642
+ ldr r12,[r2,#4]
2643
+ ldr r3,[r2,#8]
2644
+ ldr r1,[r2,#12]
2645
+ add r4,r4,r0 @ accumulate
2646
+ ldr r0,[r2,#16]
2647
+ add r5,r5,r12
2648
+ ldr r12,[r2,#20]
2649
+ add r6,r6,r3
2650
+ ldr r3,[r2,#24]
2651
+ add r7,r7,r1
2652
+ ldr r1,[r2,#28]
2653
+ add r8,r8,r0
2654
+ str r4,[r2],#4
2655
+ add r9,r9,r12
2656
+ str r5,[r2],#4
2657
+ add r10,r10,r3
2658
+ str r6,[r2],#4
2659
+ add r11,r11,r1
2660
+ str r7,[r2],#4
2661
+ stmia r2,{r8,r9,r10,r11}
2662
+
2663
+ ittte ne
2664
+ movne r1,sp
2665
+ ldrne r2,[sp,#0]
2666
+ eorne r12,r12,r12
2667
+ ldreq sp,[sp,#76] @ restore original sp
2668
+ itt ne
2669
+ eorne r3,r5,r6
2670
+ bne .L_00_48
2671
+
2672
+ ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,pc}
2673
+ .size sha256_block_data_order_neon,.-sha256_block_data_order_neon
2674
+ #endif
2675
+ #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__)
2676
+
2677
+ # if defined(__thumb2__)
2678
+ # define INST(a,b,c,d) .byte c,d|0xc,a,b
2679
+ # else
2680
+ # define INST(a,b,c,d) .byte a,b,c,d
2681
+ # endif
2682
+
2683
+ .LK256_shortcut_hw:
2684
+ @ PC is 8 bytes ahead in Arm mode and 4 bytes ahead in Thumb mode.
2685
+ #if defined(__thumb2__)
2686
+ .word K256-(.LK256_add_hw+4)
2687
+ #else
2688
+ .word K256-(.LK256_add_hw+8)
2689
+ #endif
2690
+
2691
+ .globl sha256_block_data_order_hw
2692
+ .hidden sha256_block_data_order_hw
2693
+ .type sha256_block_data_order_hw,%function
2694
+ .align 5
2695
+ sha256_block_data_order_hw:
2696
+ @ K256 is too far to reference from one ADR command in Thumb mode. In
2697
+ @ Arm mode, we could make it fit by aligning the ADR offset to a 64-byte
2698
+ @ boundary. For simplicity, just load the offset from .LK256_shortcut_hw.
2699
+ ldr r3,.LK256_shortcut_hw
2700
+ .LK256_add_hw:
2701
+ add r3,pc,r3
2702
+
2703
+ vld1.32 {q0,q1},[r0]
2704
+ add r2,r1,r2,lsl#6 @ len to point at the end of inp
2705
+ b .Loop_v8
2706
+
2707
+ .align 4
2708
+ .Loop_v8:
2709
+ vld1.8 {q8,q9},[r1]!
2710
+ vld1.8 {q10,q11},[r1]!
2711
+ vld1.32 {q12},[r3]!
2712
+ vrev32.8 q8,q8
2713
+ vrev32.8 q9,q9
2714
+ vrev32.8 q10,q10
2715
+ vrev32.8 q11,q11
2716
+ vmov q14,q0 @ offload
2717
+ vmov q15,q1
2718
+ teq r1,r2
2719
+ vld1.32 {q13},[r3]!
2720
+ vadd.i32 q12,q12,q8
2721
+ INST(0xe2,0x03,0xfa,0xf3) @ sha256su0 q8,q9
2722
+ vmov q2,q0
2723
+ INST(0x68,0x0c,0x02,0xf3) @ sha256h q0,q1,q12
2724
+ INST(0x68,0x2c,0x14,0xf3) @ sha256h2 q1,q2,q12
2725
+ INST(0xe6,0x0c,0x64,0xf3) @ sha256su1 q8,q10,q11
2726
+ vld1.32 {q12},[r3]!
2727
+ vadd.i32 q13,q13,q9
2728
+ INST(0xe4,0x23,0xfa,0xf3) @ sha256su0 q9,q10
2729
+ vmov q2,q0
2730
+ INST(0x6a,0x0c,0x02,0xf3) @ sha256h q0,q1,q13
2731
+ INST(0x6a,0x2c,0x14,0xf3) @ sha256h2 q1,q2,q13
2732
+ INST(0xe0,0x2c,0x66,0xf3) @ sha256su1 q9,q11,q8
2733
+ vld1.32 {q13},[r3]!
2734
+ vadd.i32 q12,q12,q10
2735
+ INST(0xe6,0x43,0xfa,0xf3) @ sha256su0 q10,q11
2736
+ vmov q2,q0
2737
+ INST(0x68,0x0c,0x02,0xf3) @ sha256h q0,q1,q12
2738
+ INST(0x68,0x2c,0x14,0xf3) @ sha256h2 q1,q2,q12
2739
+ INST(0xe2,0x4c,0x60,0xf3) @ sha256su1 q10,q8,q9
2740
+ vld1.32 {q12},[r3]!
2741
+ vadd.i32 q13,q13,q11
2742
+ INST(0xe0,0x63,0xfa,0xf3) @ sha256su0 q11,q8
2743
+ vmov q2,q0
2744
+ INST(0x6a,0x0c,0x02,0xf3) @ sha256h q0,q1,q13
2745
+ INST(0x6a,0x2c,0x14,0xf3) @ sha256h2 q1,q2,q13
2746
+ INST(0xe4,0x6c,0x62,0xf3) @ sha256su1 q11,q9,q10
2747
+ vld1.32 {q13},[r3]!
2748
+ vadd.i32 q12,q12,q8
2749
+ INST(0xe2,0x03,0xfa,0xf3) @ sha256su0 q8,q9
2750
+ vmov q2,q0
2751
+ INST(0x68,0x0c,0x02,0xf3) @ sha256h q0,q1,q12
2752
+ INST(0x68,0x2c,0x14,0xf3) @ sha256h2 q1,q2,q12
2753
+ INST(0xe6,0x0c,0x64,0xf3) @ sha256su1 q8,q10,q11
2754
+ vld1.32 {q12},[r3]!
2755
+ vadd.i32 q13,q13,q9
2756
+ INST(0xe4,0x23,0xfa,0xf3) @ sha256su0 q9,q10
2757
+ vmov q2,q0
2758
+ INST(0x6a,0x0c,0x02,0xf3) @ sha256h q0,q1,q13
2759
+ INST(0x6a,0x2c,0x14,0xf3) @ sha256h2 q1,q2,q13
2760
+ INST(0xe0,0x2c,0x66,0xf3) @ sha256su1 q9,q11,q8
2761
+ vld1.32 {q13},[r3]!
2762
+ vadd.i32 q12,q12,q10
2763
+ INST(0xe6,0x43,0xfa,0xf3) @ sha256su0 q10,q11
2764
+ vmov q2,q0
2765
+ INST(0x68,0x0c,0x02,0xf3) @ sha256h q0,q1,q12
2766
+ INST(0x68,0x2c,0x14,0xf3) @ sha256h2 q1,q2,q12
2767
+ INST(0xe2,0x4c,0x60,0xf3) @ sha256su1 q10,q8,q9
2768
+ vld1.32 {q12},[r3]!
2769
+ vadd.i32 q13,q13,q11
2770
+ INST(0xe0,0x63,0xfa,0xf3) @ sha256su0 q11,q8
2771
+ vmov q2,q0
2772
+ INST(0x6a,0x0c,0x02,0xf3) @ sha256h q0,q1,q13
2773
+ INST(0x6a,0x2c,0x14,0xf3) @ sha256h2 q1,q2,q13
2774
+ INST(0xe4,0x6c,0x62,0xf3) @ sha256su1 q11,q9,q10
2775
+ vld1.32 {q13},[r3]!
2776
+ vadd.i32 q12,q12,q8
2777
+ INST(0xe2,0x03,0xfa,0xf3) @ sha256su0 q8,q9
2778
+ vmov q2,q0
2779
+ INST(0x68,0x0c,0x02,0xf3) @ sha256h q0,q1,q12
2780
+ INST(0x68,0x2c,0x14,0xf3) @ sha256h2 q1,q2,q12
2781
+ INST(0xe6,0x0c,0x64,0xf3) @ sha256su1 q8,q10,q11
2782
+ vld1.32 {q12},[r3]!
2783
+ vadd.i32 q13,q13,q9
2784
+ INST(0xe4,0x23,0xfa,0xf3) @ sha256su0 q9,q10
2785
+ vmov q2,q0
2786
+ INST(0x6a,0x0c,0x02,0xf3) @ sha256h q0,q1,q13
2787
+ INST(0x6a,0x2c,0x14,0xf3) @ sha256h2 q1,q2,q13
2788
+ INST(0xe0,0x2c,0x66,0xf3) @ sha256su1 q9,q11,q8
2789
+ vld1.32 {q13},[r3]!
2790
+ vadd.i32 q12,q12,q10
2791
+ INST(0xe6,0x43,0xfa,0xf3) @ sha256su0 q10,q11
2792
+ vmov q2,q0
2793
+ INST(0x68,0x0c,0x02,0xf3) @ sha256h q0,q1,q12
2794
+ INST(0x68,0x2c,0x14,0xf3) @ sha256h2 q1,q2,q12
2795
+ INST(0xe2,0x4c,0x60,0xf3) @ sha256su1 q10,q8,q9
2796
+ vld1.32 {q12},[r3]!
2797
+ vadd.i32 q13,q13,q11
2798
+ INST(0xe0,0x63,0xfa,0xf3) @ sha256su0 q11,q8
2799
+ vmov q2,q0
2800
+ INST(0x6a,0x0c,0x02,0xf3) @ sha256h q0,q1,q13
2801
+ INST(0x6a,0x2c,0x14,0xf3) @ sha256h2 q1,q2,q13
2802
+ INST(0xe4,0x6c,0x62,0xf3) @ sha256su1 q11,q9,q10
2803
+ vld1.32 {q13},[r3]!
2804
+ vadd.i32 q12,q12,q8
2805
+ vmov q2,q0
2806
+ INST(0x68,0x0c,0x02,0xf3) @ sha256h q0,q1,q12
2807
+ INST(0x68,0x2c,0x14,0xf3) @ sha256h2 q1,q2,q12
2808
+
2809
+ vld1.32 {q12},[r3]!
2810
+ vadd.i32 q13,q13,q9
2811
+ vmov q2,q0
2812
+ INST(0x6a,0x0c,0x02,0xf3) @ sha256h q0,q1,q13
2813
+ INST(0x6a,0x2c,0x14,0xf3) @ sha256h2 q1,q2,q13
2814
+
2815
+ vld1.32 {q13},[r3]
2816
+ vadd.i32 q12,q12,q10
2817
+ sub r3,r3,#256-16 @ rewind
2818
+ vmov q2,q0
2819
+ INST(0x68,0x0c,0x02,0xf3) @ sha256h q0,q1,q12
2820
+ INST(0x68,0x2c,0x14,0xf3) @ sha256h2 q1,q2,q12
2821
+
2822
+ vadd.i32 q13,q13,q11
2823
+ vmov q2,q0
2824
+ INST(0x6a,0x0c,0x02,0xf3) @ sha256h q0,q1,q13
2825
+ INST(0x6a,0x2c,0x14,0xf3) @ sha256h2 q1,q2,q13
2826
+
2827
+ vadd.i32 q0,q0,q14
2828
+ vadd.i32 q1,q1,q15
2829
+ it ne
2830
+ bne .Loop_v8
2831
+
2832
+ vst1.32 {q0,q1},[r0]
2833
+
2834
+ bx lr @ bx lr
2835
+ .size sha256_block_data_order_hw,.-sha256_block_data_order_hw
2836
+ #endif
2837
+ .byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,65,82,77,118,52,47,78,69,79,78,47,65,82,77,118,56,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
2838
+ .align 2
2839
+ .align 2
2840
+ #endif // !OPENSSL_NO_ASM && defined(OPENSSL_ARM) && defined(__ELF__)