@scriptc/runtime 0.0.0 → 0.0.2

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 (416) hide show
  1. package/LICENSE +202 -0
  2. package/package.json +16 -6
  3. package/src/scr_array.c +488 -0
  4. package/src/scr_assert.c +1393 -0
  5. package/src/scr_async.c +2593 -0
  6. package/src/scr_async_dyn.c +607 -0
  7. package/src/scr_bytes.c +1425 -0
  8. package/src/scr_bytes_io.c +161 -0
  9. package/src/scr_child.c +3587 -0
  10. package/src/scr_closure.c +214 -0
  11. package/src/scr_console.c +143 -0
  12. package/src/scr_cycle.c +218 -0
  13. package/src/scr_dc.c +805 -0
  14. package/src/scr_dgram.c +1007 -0
  15. package/src/scr_dyn_handle.c +154 -0
  16. package/src/scr_dyn_invoke.c +644 -0
  17. package/src/scr_error.c +332 -0
  18. package/src/scr_events.c +714 -0
  19. package/src/scr_events_emitter.c +699 -0
  20. package/src/scr_exception.c +242 -0
  21. package/src/scr_fetch.c +1130 -0
  22. package/src/scr_fetch_curl.c +654 -0
  23. package/src/scr_http.c +3482 -0
  24. package/src/scr_http2.c +3030 -0
  25. package/src/scr_inspect.c +803 -0
  26. package/src/scr_inspect_island.c +51 -0
  27. package/src/scr_island.c +9363 -0
  28. package/src/scr_json.c +2151 -0
  29. package/src/scr_lib.c +3612 -0
  30. package/src/scr_loop_epoll.c +241 -0
  31. package/src/scr_loop_kqueue.c +121 -0
  32. package/src/scr_loop_wsapoll.c +208 -0
  33. package/src/scr_map.c +591 -0
  34. package/src/scr_net.c +3017 -0
  35. package/src/scr_net_island.c +458 -0
  36. package/src/scr_number.c +115 -0
  37. package/src/scr_object.c +25 -0
  38. package/src/scr_path.c +1266 -0
  39. package/src/scr_platform.h +119 -0
  40. package/src/scr_readline.c +287 -0
  41. package/src/scr_regex.c +1080 -0
  42. package/src/scr_runtime.h +5046 -0
  43. package/src/scr_stream.c +2877 -0
  44. package/src/scr_string.c +1264 -0
  45. package/src/scr_symbol.c +132 -0
  46. package/src/scr_test.c +662 -0
  47. package/src/scr_tls.c +1520 -0
  48. package/src/scr_union.c +105 -0
  49. package/src/scr_url.c +911 -0
  50. package/src/scr_url_internal.h +29 -0
  51. package/src/scr_url_params.c +561 -0
  52. package/src/scr_watch.c +568 -0
  53. package/src/scr_web.c +1778 -0
  54. package/src/scr_win.c +76 -0
  55. package/src/scr_zlib.c +197 -0
  56. package/src/scr_zlib_island.c +15 -0
  57. package/vendor/README.md +52 -0
  58. package/vendor/curl/COPYRIGHT +534 -0
  59. package/vendor/curl/include/curl/curl.h +3214 -0
  60. package/vendor/curl/include/curl/curlver.h +79 -0
  61. package/vendor/curl/include/curl/easy.h +125 -0
  62. package/vendor/curl/include/curl/header.h +74 -0
  63. package/vendor/curl/include/curl/mprintf.h +52 -0
  64. package/vendor/curl/include/curl/multi.h +460 -0
  65. package/vendor/curl/include/curl/options.h +70 -0
  66. package/vendor/curl/include/curl/stdcheaders.h +35 -0
  67. package/vendor/curl/include/curl/system.h +508 -0
  68. package/vendor/curl/include/curl/typecheck-gcc.h +716 -0
  69. package/vendor/curl/include/curl/urlapi.h +149 -0
  70. package/vendor/curl/include/curl/websockets.h +84 -0
  71. package/vendor/mbedtls/LICENSE +553 -0
  72. package/vendor/mbedtls/include/CMakeLists.txt +22 -0
  73. package/vendor/mbedtls/include/mbedtls/aes.h +631 -0
  74. package/vendor/mbedtls/include/mbedtls/aria.h +343 -0
  75. package/vendor/mbedtls/include/mbedtls/asn1.h +642 -0
  76. package/vendor/mbedtls/include/mbedtls/asn1write.h +390 -0
  77. package/vendor/mbedtls/include/mbedtls/base64.h +82 -0
  78. package/vendor/mbedtls/include/mbedtls/bignum.h +1088 -0
  79. package/vendor/mbedtls/include/mbedtls/block_cipher.h +76 -0
  80. package/vendor/mbedtls/include/mbedtls/build_info.h +194 -0
  81. package/vendor/mbedtls/include/mbedtls/camellia.h +305 -0
  82. package/vendor/mbedtls/include/mbedtls/ccm.h +526 -0
  83. package/vendor/mbedtls/include/mbedtls/chacha20.h +209 -0
  84. package/vendor/mbedtls/include/mbedtls/chachapoly.h +351 -0
  85. package/vendor/mbedtls/include/mbedtls/check_config.h +1149 -0
  86. package/vendor/mbedtls/include/mbedtls/cipher.h +1250 -0
  87. package/vendor/mbedtls/include/mbedtls/cmac.h +246 -0
  88. package/vendor/mbedtls/include/mbedtls/compat-2.x.h +46 -0
  89. package/vendor/mbedtls/include/mbedtls/config_adjust_legacy_crypto.h +578 -0
  90. package/vendor/mbedtls/include/mbedtls/config_adjust_legacy_from_psa.h +873 -0
  91. package/vendor/mbedtls/include/mbedtls/config_adjust_psa_from_legacy.h +359 -0
  92. package/vendor/mbedtls/include/mbedtls/config_adjust_psa_superset_legacy.h +145 -0
  93. package/vendor/mbedtls/include/mbedtls/config_adjust_ssl.h +91 -0
  94. package/vendor/mbedtls/include/mbedtls/config_adjust_x509.h +35 -0
  95. package/vendor/mbedtls/include/mbedtls/config_psa.h +61 -0
  96. package/vendor/mbedtls/include/mbedtls/constant_time.h +36 -0
  97. package/vendor/mbedtls/include/mbedtls/ctr_drbg.h +596 -0
  98. package/vendor/mbedtls/include/mbedtls/debug.h +156 -0
  99. package/vendor/mbedtls/include/mbedtls/des.h +385 -0
  100. package/vendor/mbedtls/include/mbedtls/dhm.h +972 -0
  101. package/vendor/mbedtls/include/mbedtls/ecdh.h +455 -0
  102. package/vendor/mbedtls/include/mbedtls/ecdsa.h +674 -0
  103. package/vendor/mbedtls/include/mbedtls/ecjpake.h +298 -0
  104. package/vendor/mbedtls/include/mbedtls/ecp.h +1517 -0
  105. package/vendor/mbedtls/include/mbedtls/entropy.h +274 -0
  106. package/vendor/mbedtls/include/mbedtls/error.h +201 -0
  107. package/vendor/mbedtls/include/mbedtls/gcm.h +387 -0
  108. package/vendor/mbedtls/include/mbedtls/hkdf.h +124 -0
  109. package/vendor/mbedtls/include/mbedtls/hmac_drbg.h +434 -0
  110. package/vendor/mbedtls/include/mbedtls/lms.h +440 -0
  111. package/vendor/mbedtls/include/mbedtls/mbedtls_config.h +4446 -0
  112. package/vendor/mbedtls/include/mbedtls/md.h +526 -0
  113. package/vendor/mbedtls/include/mbedtls/md5.h +190 -0
  114. package/vendor/mbedtls/include/mbedtls/memory_buffer_alloc.h +142 -0
  115. package/vendor/mbedtls/include/mbedtls/net_sockets.h +299 -0
  116. package/vendor/mbedtls/include/mbedtls/nist_kw.h +166 -0
  117. package/vendor/mbedtls/include/mbedtls/oid.h +727 -0
  118. package/vendor/mbedtls/include/mbedtls/pem.h +160 -0
  119. package/vendor/mbedtls/include/mbedtls/pk.h +1303 -0
  120. package/vendor/mbedtls/include/mbedtls/pkcs12.h +186 -0
  121. package/vendor/mbedtls/include/mbedtls/pkcs5.h +198 -0
  122. package/vendor/mbedtls/include/mbedtls/pkcs7.h +252 -0
  123. package/vendor/mbedtls/include/mbedtls/platform.h +516 -0
  124. package/vendor/mbedtls/include/mbedtls/platform_time.h +79 -0
  125. package/vendor/mbedtls/include/mbedtls/platform_util.h +247 -0
  126. package/vendor/mbedtls/include/mbedtls/poly1305.h +168 -0
  127. package/vendor/mbedtls/include/mbedtls/private_access.h +20 -0
  128. package/vendor/mbedtls/include/mbedtls/psa_util.h +207 -0
  129. package/vendor/mbedtls/include/mbedtls/ripemd160.h +136 -0
  130. package/vendor/mbedtls/include/mbedtls/rsa.h +1170 -0
  131. package/vendor/mbedtls/include/mbedtls/sha1.h +219 -0
  132. package/vendor/mbedtls/include/mbedtls/sha256.h +200 -0
  133. package/vendor/mbedtls/include/mbedtls/sha3.h +172 -0
  134. package/vendor/mbedtls/include/mbedtls/sha512.h +208 -0
  135. package/vendor/mbedtls/include/mbedtls/ssl.h +5887 -0
  136. package/vendor/mbedtls/include/mbedtls/ssl_cache.h +187 -0
  137. package/vendor/mbedtls/include/mbedtls/ssl_ciphersuites.h +482 -0
  138. package/vendor/mbedtls/include/mbedtls/ssl_cookie.h +106 -0
  139. package/vendor/mbedtls/include/mbedtls/ssl_ticket.h +199 -0
  140. package/vendor/mbedtls/include/mbedtls/threading.h +167 -0
  141. package/vendor/mbedtls/include/mbedtls/timing.h +94 -0
  142. package/vendor/mbedtls/include/mbedtls/version.h +78 -0
  143. package/vendor/mbedtls/include/mbedtls/x509.h +500 -0
  144. package/vendor/mbedtls/include/mbedtls/x509_crl.h +184 -0
  145. package/vendor/mbedtls/include/mbedtls/x509_crt.h +1208 -0
  146. package/vendor/mbedtls/include/mbedtls/x509_csr.h +382 -0
  147. package/vendor/mbedtls/include/psa/build_info.h +20 -0
  148. package/vendor/mbedtls/include/psa/crypto.h +4998 -0
  149. package/vendor/mbedtls/include/psa/crypto_adjust_auto_enabled.h +31 -0
  150. package/vendor/mbedtls/include/psa/crypto_adjust_config_dependencies.h +51 -0
  151. package/vendor/mbedtls/include/psa/crypto_adjust_config_key_pair_types.h +101 -0
  152. package/vendor/mbedtls/include/psa/crypto_adjust_config_synonyms.h +49 -0
  153. package/vendor/mbedtls/include/psa/crypto_builtin_composites.h +214 -0
  154. package/vendor/mbedtls/include/psa/crypto_builtin_key_derivation.h +118 -0
  155. package/vendor/mbedtls/include/psa/crypto_builtin_primitives.h +114 -0
  156. package/vendor/mbedtls/include/psa/crypto_compat.h +230 -0
  157. package/vendor/mbedtls/include/psa/crypto_config.h +145 -0
  158. package/vendor/mbedtls/include/psa/crypto_driver_common.h +44 -0
  159. package/vendor/mbedtls/include/psa/crypto_driver_contexts_composites.h +151 -0
  160. package/vendor/mbedtls/include/psa/crypto_driver_contexts_key_derivation.h +52 -0
  161. package/vendor/mbedtls/include/psa/crypto_driver_contexts_primitives.h +105 -0
  162. package/vendor/mbedtls/include/psa/crypto_extra.h +2145 -0
  163. package/vendor/mbedtls/include/psa/crypto_legacy.h +88 -0
  164. package/vendor/mbedtls/include/psa/crypto_platform.h +102 -0
  165. package/vendor/mbedtls/include/psa/crypto_se_driver.h +1383 -0
  166. package/vendor/mbedtls/include/psa/crypto_sizes.h +1319 -0
  167. package/vendor/mbedtls/include/psa/crypto_struct.h +527 -0
  168. package/vendor/mbedtls/include/psa/crypto_types.h +508 -0
  169. package/vendor/mbedtls/include/psa/crypto_values.h +2782 -0
  170. package/vendor/mbedtls/library/aes.c +2294 -0
  171. package/vendor/mbedtls/library/aesce.c +624 -0
  172. package/vendor/mbedtls/library/aesce.h +136 -0
  173. package/vendor/mbedtls/library/aesni.c +846 -0
  174. package/vendor/mbedtls/library/aesni.h +162 -0
  175. package/vendor/mbedtls/library/alignment.h +704 -0
  176. package/vendor/mbedtls/library/aria.c +969 -0
  177. package/vendor/mbedtls/library/asn1parse.c +468 -0
  178. package/vendor/mbedtls/library/asn1write.c +440 -0
  179. package/vendor/mbedtls/library/base64.c +322 -0
  180. package/vendor/mbedtls/library/base64_internal.h +45 -0
  181. package/vendor/mbedtls/library/bignum.c +2583 -0
  182. package/vendor/mbedtls/library/bignum_core.c +1240 -0
  183. package/vendor/mbedtls/library/bignum_core.h +872 -0
  184. package/vendor/mbedtls/library/bignum_core_invasive.h +38 -0
  185. package/vendor/mbedtls/library/bignum_internal.h +122 -0
  186. package/vendor/mbedtls/library/bignum_mod.c +394 -0
  187. package/vendor/mbedtls/library/bignum_mod.h +452 -0
  188. package/vendor/mbedtls/library/bignum_mod_raw.c +276 -0
  189. package/vendor/mbedtls/library/bignum_mod_raw.h +416 -0
  190. package/vendor/mbedtls/library/bignum_mod_raw_invasive.h +34 -0
  191. package/vendor/mbedtls/library/block_cipher.c +207 -0
  192. package/vendor/mbedtls/library/block_cipher_internal.h +99 -0
  193. package/vendor/mbedtls/library/bn_mul.h +1094 -0
  194. package/vendor/mbedtls/library/camellia.c +1058 -0
  195. package/vendor/mbedtls/library/ccm.c +777 -0
  196. package/vendor/mbedtls/library/chacha20.c +563 -0
  197. package/vendor/mbedtls/library/chacha20_internal.h +23 -0
  198. package/vendor/mbedtls/library/chachapoly.c +487 -0
  199. package/vendor/mbedtls/library/check_crypto_config.h +136 -0
  200. package/vendor/mbedtls/library/cipher.c +1712 -0
  201. package/vendor/mbedtls/library/cipher_invasive.h +28 -0
  202. package/vendor/mbedtls/library/cipher_wrap.c +2482 -0
  203. package/vendor/mbedtls/library/cipher_wrap.h +178 -0
  204. package/vendor/mbedtls/library/cmac.c +1067 -0
  205. package/vendor/mbedtls/library/common.h +487 -0
  206. package/vendor/mbedtls/library/constant_time.c +247 -0
  207. package/vendor/mbedtls/library/constant_time_impl.h +541 -0
  208. package/vendor/mbedtls/library/constant_time_internal.h +579 -0
  209. package/vendor/mbedtls/library/ctr.h +35 -0
  210. package/vendor/mbedtls/library/ctr_drbg.c +1016 -0
  211. package/vendor/mbedtls/library/debug.c +475 -0
  212. package/vendor/mbedtls/library/debug_internal.h +185 -0
  213. package/vendor/mbedtls/library/des.c +1042 -0
  214. package/vendor/mbedtls/library/dhm.c +700 -0
  215. package/vendor/mbedtls/library/ecdh.c +696 -0
  216. package/vendor/mbedtls/library/ecdsa.c +858 -0
  217. package/vendor/mbedtls/library/ecjpake.c +1216 -0
  218. package/vendor/mbedtls/library/ecp.c +3674 -0
  219. package/vendor/mbedtls/library/ecp_curves.c +6125 -0
  220. package/vendor/mbedtls/library/ecp_curves_new.c +9 -0
  221. package/vendor/mbedtls/library/ecp_internal_alt.h +287 -0
  222. package/vendor/mbedtls/library/ecp_invasive.h +305 -0
  223. package/vendor/mbedtls/library/entropy.c +680 -0
  224. package/vendor/mbedtls/library/entropy_poll.c +233 -0
  225. package/vendor/mbedtls/library/entropy_poll.h +64 -0
  226. package/vendor/mbedtls/library/error.c +878 -0
  227. package/vendor/mbedtls/library/gcm.c +1330 -0
  228. package/vendor/mbedtls/library/hkdf.c +161 -0
  229. package/vendor/mbedtls/library/hmac_drbg.c +633 -0
  230. package/vendor/mbedtls/library/lmots.c +789 -0
  231. package/vendor/mbedtls/library/lmots.h +288 -0
  232. package/vendor/mbedtls/library/lms.c +778 -0
  233. package/vendor/mbedtls/library/md.c +1108 -0
  234. package/vendor/mbedtls/library/md5.c +426 -0
  235. package/vendor/mbedtls/library/md_psa.h +26 -0
  236. package/vendor/mbedtls/library/md_wrap.h +46 -0
  237. package/vendor/mbedtls/library/memory_buffer_alloc.c +751 -0
  238. package/vendor/mbedtls/library/mps_common.h +181 -0
  239. package/vendor/mbedtls/library/mps_error.h +89 -0
  240. package/vendor/mbedtls/library/mps_reader.c +538 -0
  241. package/vendor/mbedtls/library/mps_reader.h +366 -0
  242. package/vendor/mbedtls/library/mps_trace.c +112 -0
  243. package/vendor/mbedtls/library/mps_trace.h +154 -0
  244. package/vendor/mbedtls/library/net_sockets.c +694 -0
  245. package/vendor/mbedtls/library/nist_kw.c +729 -0
  246. package/vendor/mbedtls/library/oid.c +1166 -0
  247. package/vendor/mbedtls/library/padlock.c +157 -0
  248. package/vendor/mbedtls/library/padlock.h +111 -0
  249. package/vendor/mbedtls/library/pem.c +554 -0
  250. package/vendor/mbedtls/library/pk.c +1602 -0
  251. package/vendor/mbedtls/library/pk_ecc.c +261 -0
  252. package/vendor/mbedtls/library/pk_internal.h +241 -0
  253. package/vendor/mbedtls/library/pk_wrap.c +1618 -0
  254. package/vendor/mbedtls/library/pk_wrap.h +138 -0
  255. package/vendor/mbedtls/library/pkcs12.c +437 -0
  256. package/vendor/mbedtls/library/pkcs5.c +500 -0
  257. package/vendor/mbedtls/library/pkcs7.c +787 -0
  258. package/vendor/mbedtls/library/pkparse.c +1392 -0
  259. package/vendor/mbedtls/library/pkwrite.c +631 -0
  260. package/vendor/mbedtls/library/pkwrite.h +121 -0
  261. package/vendor/mbedtls/library/platform.c +402 -0
  262. package/vendor/mbedtls/library/platform_util.c +258 -0
  263. package/vendor/mbedtls/library/poly1305.c +492 -0
  264. package/vendor/mbedtls/library/psa_crypto.c +9532 -0
  265. package/vendor/mbedtls/library/psa_crypto_aead.c +646 -0
  266. package/vendor/mbedtls/library/psa_crypto_aead.h +499 -0
  267. package/vendor/mbedtls/library/psa_crypto_cipher.c +747 -0
  268. package/vendor/mbedtls/library/psa_crypto_cipher.h +316 -0
  269. package/vendor/mbedtls/library/psa_crypto_client.c +22 -0
  270. package/vendor/mbedtls/library/psa_crypto_core.h +983 -0
  271. package/vendor/mbedtls/library/psa_crypto_core_common.h +52 -0
  272. package/vendor/mbedtls/library/psa_crypto_driver_wrappers.h +2896 -0
  273. package/vendor/mbedtls/library/psa_crypto_driver_wrappers_no_static.c +256 -0
  274. package/vendor/mbedtls/library/psa_crypto_driver_wrappers_no_static.h +31 -0
  275. package/vendor/mbedtls/library/psa_crypto_ecp.c +594 -0
  276. package/vendor/mbedtls/library/psa_crypto_ecp.h +267 -0
  277. package/vendor/mbedtls/library/psa_crypto_ffdh.c +361 -0
  278. package/vendor/mbedtls/library/psa_crypto_ffdh.h +131 -0
  279. package/vendor/mbedtls/library/psa_crypto_hash.c +470 -0
  280. package/vendor/mbedtls/library/psa_crypto_hash.h +211 -0
  281. package/vendor/mbedtls/library/psa_crypto_invasive.h +92 -0
  282. package/vendor/mbedtls/library/psa_crypto_its.h +131 -0
  283. package/vendor/mbedtls/library/psa_crypto_mac.c +505 -0
  284. package/vendor/mbedtls/library/psa_crypto_mac.h +264 -0
  285. package/vendor/mbedtls/library/psa_crypto_pake.c +571 -0
  286. package/vendor/mbedtls/library/psa_crypto_pake.h +159 -0
  287. package/vendor/mbedtls/library/psa_crypto_random.c +181 -0
  288. package/vendor/mbedtls/library/psa_crypto_random.h +72 -0
  289. package/vendor/mbedtls/library/psa_crypto_random_impl.h +200 -0
  290. package/vendor/mbedtls/library/psa_crypto_rsa.c +714 -0
  291. package/vendor/mbedtls/library/psa_crypto_rsa.h +321 -0
  292. package/vendor/mbedtls/library/psa_crypto_se.c +373 -0
  293. package/vendor/mbedtls/library/psa_crypto_se.h +192 -0
  294. package/vendor/mbedtls/library/psa_crypto_slot_management.c +1137 -0
  295. package/vendor/mbedtls/library/psa_crypto_slot_management.h +344 -0
  296. package/vendor/mbedtls/library/psa_crypto_storage.c +481 -0
  297. package/vendor/mbedtls/library/psa_crypto_storage.h +392 -0
  298. package/vendor/mbedtls/library/psa_its_file.c +254 -0
  299. package/vendor/mbedtls/library/psa_util.c +614 -0
  300. package/vendor/mbedtls/library/psa_util_internal.h +100 -0
  301. package/vendor/mbedtls/library/ripemd160.c +490 -0
  302. package/vendor/mbedtls/library/rsa.c +3121 -0
  303. package/vendor/mbedtls/library/rsa_alt_helpers.c +455 -0
  304. package/vendor/mbedtls/library/rsa_alt_helpers.h +209 -0
  305. package/vendor/mbedtls/library/rsa_internal.h +188 -0
  306. package/vendor/mbedtls/library/sha1.c +480 -0
  307. package/vendor/mbedtls/library/sha256.c +983 -0
  308. package/vendor/mbedtls/library/sha3.c +721 -0
  309. package/vendor/mbedtls/library/sha512.c +1115 -0
  310. package/vendor/mbedtls/library/ssl_cache.c +410 -0
  311. package/vendor/mbedtls/library/ssl_ciphersuites.c +2050 -0
  312. package/vendor/mbedtls/library/ssl_ciphersuites_internal.h +154 -0
  313. package/vendor/mbedtls/library/ssl_client.c +1023 -0
  314. package/vendor/mbedtls/library/ssl_client.h +22 -0
  315. package/vendor/mbedtls/library/ssl_cookie.c +384 -0
  316. package/vendor/mbedtls/library/ssl_debug_helpers.h +85 -0
  317. package/vendor/mbedtls/library/ssl_debug_helpers_generated.c +251 -0
  318. package/vendor/mbedtls/library/ssl_misc.h +3198 -0
  319. package/vendor/mbedtls/library/ssl_msg.c +6619 -0
  320. package/vendor/mbedtls/library/ssl_ticket.c +556 -0
  321. package/vendor/mbedtls/library/ssl_tls.c +10234 -0
  322. package/vendor/mbedtls/library/ssl_tls12_client.c +3688 -0
  323. package/vendor/mbedtls/library/ssl_tls12_server.c +4311 -0
  324. package/vendor/mbedtls/library/ssl_tls13_client.c +3208 -0
  325. package/vendor/mbedtls/library/ssl_tls13_generic.c +1793 -0
  326. package/vendor/mbedtls/library/ssl_tls13_invasive.h +23 -0
  327. package/vendor/mbedtls/library/ssl_tls13_keys.c +1918 -0
  328. package/vendor/mbedtls/library/ssl_tls13_keys.h +668 -0
  329. package/vendor/mbedtls/library/ssl_tls13_server.c +3624 -0
  330. package/vendor/mbedtls/library/threading.c +193 -0
  331. package/vendor/mbedtls/library/threading_internal.h +28 -0
  332. package/vendor/mbedtls/library/timing.c +152 -0
  333. package/vendor/mbedtls/library/version.c +32 -0
  334. package/vendor/mbedtls/library/version_features.c +856 -0
  335. package/vendor/mbedtls/library/x509.c +1776 -0
  336. package/vendor/mbedtls/library/x509_create.c +570 -0
  337. package/vendor/mbedtls/library/x509_crl.c +708 -0
  338. package/vendor/mbedtls/library/x509_crt.c +3311 -0
  339. package/vendor/mbedtls/library/x509_csr.c +648 -0
  340. package/vendor/mbedtls/library/x509_internal.h +101 -0
  341. package/vendor/mbedtls/library/x509write.c +174 -0
  342. package/vendor/mbedtls/library/x509write_crt.c +688 -0
  343. package/vendor/mbedtls/library/x509write_csr.c +336 -0
  344. package/vendor/quickjs-ng/CMakeLists.txt +566 -0
  345. package/vendor/quickjs-ng/LICENSE +24 -0
  346. package/vendor/quickjs-ng/README.md +24 -0
  347. package/vendor/quickjs-ng/api-test.c +1195 -0
  348. package/vendor/quickjs-ng/builtin-array-fromasync.h +119 -0
  349. package/vendor/quickjs-ng/builtin-iterator-zip-keyed.h +332 -0
  350. package/vendor/quickjs-ng/builtin-iterator-zip.h +337 -0
  351. package/vendor/quickjs-ng/cutils.h +1998 -0
  352. package/vendor/quickjs-ng/dtoa.c +1619 -0
  353. package/vendor/quickjs-ng/dtoa.h +87 -0
  354. package/vendor/quickjs-ng/gen/function_source.c +81 -0
  355. package/vendor/quickjs-ng/gen/hello.c +53 -0
  356. package/vendor/quickjs-ng/gen/hello_module.c +106 -0
  357. package/vendor/quickjs-ng/gen/repl.c +3036 -0
  358. package/vendor/quickjs-ng/gen/standalone.c +323 -0
  359. package/vendor/quickjs-ng/gen/test_fib.c +81 -0
  360. package/vendor/quickjs-ng/libregexp-opcode.h +73 -0
  361. package/vendor/quickjs-ng/libregexp.c +3474 -0
  362. package/vendor/quickjs-ng/libregexp.h +101 -0
  363. package/vendor/quickjs-ng/libunicode-table.h +5173 -0
  364. package/vendor/quickjs-ng/libunicode.c +2069 -0
  365. package/vendor/quickjs-ng/libunicode.h +172 -0
  366. package/vendor/quickjs-ng/list.h +107 -0
  367. package/vendor/quickjs-ng/lre-test.c +52 -0
  368. package/vendor/quickjs-ng/qjs.c +762 -0
  369. package/vendor/quickjs-ng/qjsc.c +673 -0
  370. package/vendor/quickjs-ng/quickjs-atom.h +280 -0
  371. package/vendor/quickjs-ng/quickjs-c-atomics.h +54 -0
  372. package/vendor/quickjs-ng/quickjs-libc.c +5037 -0
  373. package/vendor/quickjs-ng/quickjs-libc.h +87 -0
  374. package/vendor/quickjs-ng/quickjs-opcode.h +377 -0
  375. package/vendor/quickjs-ng/quickjs.c +64041 -0
  376. package/vendor/quickjs-ng/quickjs.h +1447 -0
  377. package/vendor/quickjs-ng/run-test262.c +2374 -0
  378. package/vendor/quickjs-ng/unicode_gen.c +3121 -0
  379. package/vendor/quickjs-ng/unicode_gen_def.h +310 -0
  380. package/vendor/ryu/LICENSE-Boost +23 -0
  381. package/vendor/ryu/common.h +114 -0
  382. package/vendor/ryu/d2s.c +509 -0
  383. package/vendor/ryu/d2s_full_table.h +367 -0
  384. package/vendor/ryu/d2s_intrinsics.h +357 -0
  385. package/vendor/ryu/d2s_small_table.h +186 -0
  386. package/vendor/ryu/digit_table.h +35 -0
  387. package/vendor/ryu/ryu.h +46 -0
  388. package/vendor/zlib/LICENSE +22 -0
  389. package/vendor/zlib/adler32.c +164 -0
  390. package/vendor/zlib/compress.c +75 -0
  391. package/vendor/zlib/crc32.c +1049 -0
  392. package/vendor/zlib/crc32.h +9446 -0
  393. package/vendor/zlib/deflate.c +2139 -0
  394. package/vendor/zlib/deflate.h +377 -0
  395. package/vendor/zlib/gzclose.c +23 -0
  396. package/vendor/zlib/gzguts.h +214 -0
  397. package/vendor/zlib/gzlib.c +582 -0
  398. package/vendor/zlib/gzread.c +602 -0
  399. package/vendor/zlib/gzwrite.c +631 -0
  400. package/vendor/zlib/infback.c +628 -0
  401. package/vendor/zlib/inffast.c +320 -0
  402. package/vendor/zlib/inffast.h +11 -0
  403. package/vendor/zlib/inffixed.h +94 -0
  404. package/vendor/zlib/inflate.c +1526 -0
  405. package/vendor/zlib/inflate.h +126 -0
  406. package/vendor/zlib/inftrees.c +299 -0
  407. package/vendor/zlib/inftrees.h +62 -0
  408. package/vendor/zlib/trees.c +1117 -0
  409. package/vendor/zlib/trees.h +128 -0
  410. package/vendor/zlib/uncompr.c +85 -0
  411. package/vendor/zlib/zconf.h +543 -0
  412. package/vendor/zlib/zlib.h +1938 -0
  413. package/vendor/zlib/zutil.c +299 -0
  414. package/vendor/zlib/zutil.h +254 -0
  415. package/README.md +0 -3
  416. package/index.js +0 -2
@@ -0,0 +1,487 @@
1
+ /**
2
+ * \file common.h
3
+ *
4
+ * \brief Utility macros for internal use in the library
5
+ */
6
+ /*
7
+ * Copyright The Mbed TLS Contributors
8
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
9
+ */
10
+
11
+ #ifndef MBEDTLS_LIBRARY_COMMON_H
12
+ #define MBEDTLS_LIBRARY_COMMON_H
13
+
14
+ #include "mbedtls/build_info.h"
15
+ #include "alignment.h"
16
+
17
+ #include <assert.h>
18
+ #include <stddef.h>
19
+ #include <stdint.h>
20
+ #include <stddef.h>
21
+
22
+ #if defined(__ARM_NEON)
23
+ #include <arm_neon.h>
24
+ #define MBEDTLS_HAVE_NEON_INTRINSICS
25
+ #elif defined(MBEDTLS_PLATFORM_IS_WINDOWS_ON_ARM64)
26
+ #include <arm64_neon.h>
27
+ #define MBEDTLS_HAVE_NEON_INTRINSICS
28
+ #endif
29
+
30
+ /* Decide whether we're built for a Unix-like platform.
31
+ */
32
+ #if defined(MBEDTLS_TEST_PLATFORM_IS_NOT_UNIXLIKE) //no-check-names
33
+ /* We may be building on a Unix-like platform, but for test purposes,
34
+ * do not try to use Unix features. */
35
+ #elif defined(_WIN32)
36
+ /* If Windows platform interfaces are available, we use them, even if
37
+ * a Unix-like might also to be available. */
38
+ /* defined(_WIN32) ==> we can include <windows.h> */
39
+ #elif defined(unix) || defined(__unix) || defined(__unix__) || \
40
+ (defined(__APPLE__) && defined(__MACH__)) || \
41
+ defined(__HAIKU__) || \
42
+ defined(__midipix__) || \
43
+ /* Add other Unix-like platform indicators here ^^^^ */ 0
44
+ /* defined(MBEDTLS_PLATFORM_IS_UNIXLIKE) ==> we can include <unistd.h> */
45
+ #define MBEDTLS_PLATFORM_IS_UNIXLIKE
46
+ #endif
47
+
48
+ /** Helper to define a function as static except when building invasive tests.
49
+ *
50
+ * If a function is only used inside its own source file and should be
51
+ * declared `static` to allow the compiler to optimize for code size,
52
+ * but that function has unit tests, define it with
53
+ * ```
54
+ * MBEDTLS_STATIC_TESTABLE int mbedtls_foo(...) { ... }
55
+ * ```
56
+ * and declare it in a header in the `library/` directory with
57
+ * ```
58
+ * #if defined(MBEDTLS_TEST_HOOKS)
59
+ * int mbedtls_foo(...);
60
+ * #endif
61
+ * ```
62
+ */
63
+ #if defined(MBEDTLS_TEST_HOOKS)
64
+ #define MBEDTLS_STATIC_TESTABLE
65
+ #else
66
+ #define MBEDTLS_STATIC_TESTABLE static
67
+ #endif
68
+
69
+ #if defined(MBEDTLS_TEST_HOOKS)
70
+ extern void (*mbedtls_test_hook_test_fail)(const char *test, int line, const char *file);
71
+ #define MBEDTLS_TEST_HOOK_TEST_ASSERT(TEST) \
72
+ do { \
73
+ if ((!(TEST)) && ((*mbedtls_test_hook_test_fail) != NULL)) \
74
+ { \
75
+ (*mbedtls_test_hook_test_fail)( #TEST, __LINE__, __FILE__); \
76
+ } \
77
+ } while (0)
78
+ #else
79
+ #define MBEDTLS_TEST_HOOK_TEST_ASSERT(TEST)
80
+ #endif /* defined(MBEDTLS_TEST_HOOKS) */
81
+
82
+ /** \def ARRAY_LENGTH
83
+ * Return the number of elements of a static or stack array.
84
+ *
85
+ * \param array A value of array (not pointer) type.
86
+ *
87
+ * \return The number of elements of the array.
88
+ */
89
+ /* A correct implementation of ARRAY_LENGTH, but which silently gives
90
+ * a nonsensical result if called with a pointer rather than an array. */
91
+ #define ARRAY_LENGTH_UNSAFE(array) \
92
+ (sizeof(array) / sizeof(*(array)))
93
+
94
+ #if defined(__GNUC__)
95
+ /* Test if arg and &(arg)[0] have the same type. This is true if arg is
96
+ * an array but not if it's a pointer. */
97
+ #define IS_ARRAY_NOT_POINTER(arg) \
98
+ (!__builtin_types_compatible_p(__typeof__(arg), \
99
+ __typeof__(&(arg)[0])))
100
+ /* A compile-time constant with the value 0. If `const_expr` is not a
101
+ * compile-time constant with a nonzero value, cause a compile-time error. */
102
+ #define STATIC_ASSERT_EXPR(const_expr) \
103
+ (0 && sizeof(struct { unsigned int STATIC_ASSERT : 1 - 2 * !(const_expr); }))
104
+
105
+ /* Return the scalar value `value` (possibly promoted). This is a compile-time
106
+ * constant if `value` is. `condition` must be a compile-time constant.
107
+ * If `condition` is false, arrange to cause a compile-time error. */
108
+ #define STATIC_ASSERT_THEN_RETURN(condition, value) \
109
+ (STATIC_ASSERT_EXPR(condition) ? 0 : (value))
110
+
111
+ #define ARRAY_LENGTH(array) \
112
+ (STATIC_ASSERT_THEN_RETURN(IS_ARRAY_NOT_POINTER(array), \
113
+ ARRAY_LENGTH_UNSAFE(array)))
114
+
115
+ #else
116
+ /* If we aren't sure the compiler supports our non-standard tricks,
117
+ * fall back to the unsafe implementation. */
118
+ #define ARRAY_LENGTH(array) ARRAY_LENGTH_UNSAFE(array)
119
+ #endif
120
+
121
+ #if defined(__has_builtin)
122
+ #define MBEDTLS_HAS_BUILTIN(x) __has_builtin(x)
123
+ #else
124
+ #define MBEDTLS_HAS_BUILTIN(x) 0
125
+ #endif
126
+
127
+ /** Allow library to access its structs' private members.
128
+ *
129
+ * Although structs defined in header files are publicly available,
130
+ * their members are private and should not be accessed by the user.
131
+ */
132
+ #define MBEDTLS_ALLOW_PRIVATE_ACCESS
133
+
134
+ /**
135
+ * \brief Securely zeroize a buffer then free it.
136
+ *
137
+ * Similar to making consecutive calls to
138
+ * \c mbedtls_platform_zeroize() and \c mbedtls_free(), but has
139
+ * code size savings, and potential for optimisation in the future.
140
+ *
141
+ * Guaranteed to be a no-op if \p buf is \c NULL and \p len is 0.
142
+ *
143
+ * \param buf Buffer to be zeroized then freed.
144
+ * \param len Length of the buffer in bytes
145
+ */
146
+ void mbedtls_zeroize_and_free(void *buf, size_t len);
147
+
148
+ /** Return an offset into a buffer.
149
+ *
150
+ * This is just the addition of an offset to a pointer, except that this
151
+ * function also accepts an offset of 0 into a buffer whose pointer is null.
152
+ * (`p + n` has undefined behavior when `p` is null, even when `n == 0`.
153
+ * A null pointer is a valid buffer pointer when the size is 0, for example
154
+ * as the result of `malloc(0)` on some platforms.)
155
+ *
156
+ * \param p Pointer to a buffer of at least n bytes.
157
+ * This may be \p NULL if \p n is zero.
158
+ * \param n An offset in bytes.
159
+ * \return Pointer to offset \p n in the buffer \p p.
160
+ * Note that this is only a valid pointer if the size of the
161
+ * buffer is at least \p n + 1.
162
+ */
163
+ static inline unsigned char *mbedtls_buffer_offset(
164
+ unsigned char *p, size_t n)
165
+ {
166
+ return p == NULL ? NULL : p + n;
167
+ }
168
+
169
+ /** Return an offset into a read-only buffer.
170
+ *
171
+ * Similar to mbedtls_buffer_offset(), but for const pointers.
172
+ *
173
+ * \param p Pointer to a buffer of at least n bytes.
174
+ * This may be \p NULL if \p n is zero.
175
+ * \param n An offset in bytes.
176
+ * \return Pointer to offset \p n in the buffer \p p.
177
+ * Note that this is only a valid pointer if the size of the
178
+ * buffer is at least \p n + 1.
179
+ */
180
+ static inline const unsigned char *mbedtls_buffer_offset_const(
181
+ const unsigned char *p, size_t n)
182
+ {
183
+ return p == NULL ? NULL : p + n;
184
+ }
185
+
186
+ /* Always inline mbedtls_xor() for similar reasons as mbedtls_xor_no_simd(). */
187
+ #if defined(__IAR_SYSTEMS_ICC__)
188
+ #pragma inline = forced
189
+ #elif defined(__GNUC__)
190
+ __attribute__((always_inline))
191
+ #endif
192
+ /**
193
+ * Perform a fast block XOR operation, such that
194
+ * r[i] = a[i] ^ b[i] where 0 <= i < n
195
+ *
196
+ * \param r Pointer to result (buffer of at least \p n bytes). \p r
197
+ * may be equal to either \p a or \p b, but behaviour when
198
+ * it overlaps in other ways is undefined.
199
+ * \param a Pointer to input (buffer of at least \p n bytes)
200
+ * \param b Pointer to input (buffer of at least \p n bytes)
201
+ * \param n Number of bytes to process.
202
+ *
203
+ * \note Depending on the situation, it may be faster to use either mbedtls_xor() or
204
+ * mbedtls_xor_no_simd() (these are functionally equivalent).
205
+ * If the result is used immediately after the xor operation in non-SIMD code (e.g, in
206
+ * AES-CBC), there may be additional latency to transfer the data from SIMD to scalar
207
+ * registers, and in this case, mbedtls_xor_no_simd() may be faster. In other cases where
208
+ * the result is not used immediately (e.g., in AES-CTR), mbedtls_xor() may be faster.
209
+ * For targets without SIMD support, they will behave the same.
210
+ */
211
+ static inline void mbedtls_xor(unsigned char *r,
212
+ const unsigned char *a,
213
+ const unsigned char *b,
214
+ size_t n)
215
+ {
216
+ size_t i = 0;
217
+ #if defined(MBEDTLS_EFFICIENT_UNALIGNED_ACCESS)
218
+ #if defined(MBEDTLS_HAVE_NEON_INTRINSICS) && \
219
+ (!(defined(MBEDTLS_COMPILER_IS_GCC) && MBEDTLS_GCC_VERSION < 70300))
220
+ /* Old GCC versions generate a warning here, so disable the NEON path for these compilers */
221
+ for (; (i + 16) <= n; i += 16) {
222
+ uint8x16_t v1 = vld1q_u8(a + i);
223
+ uint8x16_t v2 = vld1q_u8(b + i);
224
+ uint8x16_t x = veorq_u8(v1, v2);
225
+ vst1q_u8(r + i, x);
226
+ }
227
+ #if defined(__IAR_SYSTEMS_ICC__)
228
+ /* This if statement helps some compilers (e.g., IAR) optimise out the byte-by-byte tail case
229
+ * where n is a constant multiple of 16.
230
+ * For other compilers (e.g. recent gcc and clang) it makes no difference if n is a compile-time
231
+ * constant, and is a very small perf regression if n is not a compile-time constant. */
232
+ if (n % 16 == 0) {
233
+ return;
234
+ }
235
+ #endif
236
+ #if defined(MBEDTLS_COMPILER_IS_GCC) && MBEDTLS_HAS_BUILTIN(__builtin_constant_p)
237
+ if (__builtin_constant_p(n) && n % 16 == 0) {
238
+ return;
239
+ }
240
+ #endif
241
+ #elif defined(MBEDTLS_ARCH_IS_X64) || defined(MBEDTLS_ARCH_IS_ARM64)
242
+ /* This codepath probably only makes sense on architectures with 64-bit registers */
243
+ for (; (i + 8) <= n; i += 8) {
244
+ uint64_t x = mbedtls_get_unaligned_uint64(a + i) ^ mbedtls_get_unaligned_uint64(b + i);
245
+ mbedtls_put_unaligned_uint64(r + i, x);
246
+ }
247
+ #if defined(__IAR_SYSTEMS_ICC__)
248
+ if (n % 8 == 0) {
249
+ return;
250
+ }
251
+ #endif
252
+ #if defined(MBEDTLS_COMPILER_IS_GCC) && MBEDTLS_HAS_BUILTIN(__builtin_constant_p)
253
+ if (__builtin_constant_p(n) && n % 8 == 0) {
254
+ return;
255
+ }
256
+ #endif
257
+ #else
258
+ for (; (i + 4) <= n; i += 4) {
259
+ uint32_t x = mbedtls_get_unaligned_uint32(a + i) ^ mbedtls_get_unaligned_uint32(b + i);
260
+ mbedtls_put_unaligned_uint32(r + i, x);
261
+ }
262
+ #if defined(__IAR_SYSTEMS_ICC__)
263
+ if (n % 4 == 0) {
264
+ return;
265
+ }
266
+ #endif
267
+ #if defined(MBEDTLS_COMPILER_IS_GCC) && MBEDTLS_HAS_BUILTIN(__builtin_constant_p)
268
+ if (__builtin_constant_p(n) && n % 4 == 0) {
269
+ return;
270
+ }
271
+ #endif
272
+ #endif
273
+ #endif
274
+ for (; i < n; i++) {
275
+ r[i] = a[i] ^ b[i];
276
+ }
277
+ }
278
+
279
+ /* Always inline mbedtls_xor_no_simd() as we see significant perf regressions when it does not get
280
+ * inlined (e.g., observed about 3x perf difference in gcm_mult_largetable with gcc 7 - 12) */
281
+ #if defined(__IAR_SYSTEMS_ICC__)
282
+ #pragma inline = forced
283
+ #elif defined(__GNUC__)
284
+ __attribute__((always_inline))
285
+ #endif
286
+ /**
287
+ * Perform a fast block XOR operation, such that
288
+ * r[i] = a[i] ^ b[i] where 0 <= i < n
289
+ *
290
+ * In some situations, this can perform better than mbedtls_xor() (e.g., it's about 5%
291
+ * better in AES-CBC).
292
+ *
293
+ * \param r Pointer to result (buffer of at least \p n bytes). \p r
294
+ * may be equal to either \p a or \p b, but behaviour when
295
+ * it overlaps in other ways is undefined.
296
+ * \param a Pointer to input (buffer of at least \p n bytes)
297
+ * \param b Pointer to input (buffer of at least \p n bytes)
298
+ * \param n Number of bytes to process.
299
+ *
300
+ * \note Depending on the situation, it may be faster to use either mbedtls_xor() or
301
+ * mbedtls_xor_no_simd() (these are functionally equivalent).
302
+ * If the result is used immediately after the xor operation in non-SIMD code (e.g, in
303
+ * AES-CBC), there may be additional latency to transfer the data from SIMD to scalar
304
+ * registers, and in this case, mbedtls_xor_no_simd() may be faster. In other cases where
305
+ * the result is not used immediately (e.g., in AES-CTR), mbedtls_xor() may be faster.
306
+ * For targets without SIMD support, they will behave the same.
307
+ */
308
+ static inline void mbedtls_xor_no_simd(unsigned char *r,
309
+ const unsigned char *a,
310
+ const unsigned char *b,
311
+ size_t n)
312
+ {
313
+ size_t i = 0;
314
+ #if defined(MBEDTLS_EFFICIENT_UNALIGNED_ACCESS)
315
+ #if defined(MBEDTLS_ARCH_IS_X64) || defined(MBEDTLS_ARCH_IS_ARM64)
316
+ /* This codepath probably only makes sense on architectures with 64-bit registers */
317
+ for (; (i + 8) <= n; i += 8) {
318
+ uint64_t x = mbedtls_get_unaligned_uint64(a + i) ^ mbedtls_get_unaligned_uint64(b + i);
319
+ mbedtls_put_unaligned_uint64(r + i, x);
320
+ }
321
+ #if defined(__IAR_SYSTEMS_ICC__)
322
+ /* This if statement helps some compilers (e.g., IAR) optimise out the byte-by-byte tail case
323
+ * where n is a constant multiple of 8.
324
+ * For other compilers (e.g. recent gcc and clang) it makes no difference if n is a compile-time
325
+ * constant, and is a very small perf regression if n is not a compile-time constant. */
326
+ if (n % 8 == 0) {
327
+ return;
328
+ }
329
+ #endif
330
+ #else
331
+ for (; (i + 4) <= n; i += 4) {
332
+ uint32_t x = mbedtls_get_unaligned_uint32(a + i) ^ mbedtls_get_unaligned_uint32(b + i);
333
+ mbedtls_put_unaligned_uint32(r + i, x);
334
+ }
335
+ #if defined(__IAR_SYSTEMS_ICC__)
336
+ if (n % 4 == 0) {
337
+ return;
338
+ }
339
+ #endif
340
+ #endif
341
+ #endif
342
+ for (; i < n; i++) {
343
+ r[i] = a[i] ^ b[i];
344
+ }
345
+ }
346
+
347
+ /* Fix MSVC C99 compatible issue
348
+ * MSVC support __func__ from visual studio 2015( 1900 )
349
+ * Use MSVC predefine macro to avoid name check fail.
350
+ */
351
+ #if (defined(_MSC_VER) && (_MSC_VER <= 1900))
352
+ #define /*no-check-names*/ __func__ __FUNCTION__
353
+ #endif
354
+
355
+ /* Define `asm` for compilers which don't define it. */
356
+ /* *INDENT-OFF* */
357
+ #ifndef asm
358
+ #if defined(__IAR_SYSTEMS_ICC__)
359
+ #define asm __asm
360
+ #else
361
+ #define asm __asm__
362
+ #endif
363
+ #endif
364
+ /* *INDENT-ON* */
365
+
366
+ /*
367
+ * Define the constraint used for read-only pointer operands to aarch64 asm.
368
+ *
369
+ * This is normally the usual "r", but for aarch64_32 (aka ILP32,
370
+ * as found in watchos), "p" is required to avoid warnings from clang.
371
+ *
372
+ * Note that clang does not recognise '+p' or '=p', and armclang
373
+ * does not recognise 'p' at all. Therefore, to update a pointer from
374
+ * aarch64 assembly, it is necessary to use something like:
375
+ *
376
+ * uintptr_t uptr = (uintptr_t) ptr;
377
+ * asm( "ldr x4, [%x0], #8" ... : "+r" (uptr) : : )
378
+ * ptr = (void*) uptr;
379
+ *
380
+ * Note that the "x" in "%x0" is neccessary; writing "%0" will cause warnings.
381
+ */
382
+ #if defined(__aarch64__) && defined(MBEDTLS_HAVE_ASM)
383
+ #if UINTPTR_MAX == 0xfffffffful
384
+ /* ILP32: Specify the pointer operand slightly differently, as per #7787. */
385
+ #define MBEDTLS_ASM_AARCH64_PTR_CONSTRAINT "p"
386
+ #elif UINTPTR_MAX == 0xfffffffffffffffful
387
+ /* Normal case (64-bit pointers): use "r" as the constraint for pointer operands to asm */
388
+ #define MBEDTLS_ASM_AARCH64_PTR_CONSTRAINT "r"
389
+ #else
390
+ #error "Unrecognised pointer size for aarch64"
391
+ #endif
392
+ #endif
393
+
394
+ /* Always provide a static assert macro, so it can be used unconditionally.
395
+ * It does nothing on systems where we don't know how to define a static assert.
396
+ */
397
+ /* Can't use the C11-style `defined(static_assert)` on FreeBSD, since it
398
+ * defines static_assert even with -std=c99, but then complains about it.
399
+ */
400
+ #if defined(static_assert) && !defined(__FreeBSD__)
401
+ #define MBEDTLS_STATIC_ASSERT(expr, msg) static_assert(expr, msg)
402
+ #else
403
+ /* Make sure `MBEDTLS_STATIC_ASSERT(expr, msg);` is valid both inside and
404
+ * outside a function. We choose a struct declaration, which can be repeated
405
+ * any number of times and does not need a matching definition. */
406
+ #define MBEDTLS_STATIC_ASSERT(expr, msg) \
407
+ struct ISO_C_does_not_allow_extra_semicolon_outside_of_a_function
408
+ #endif
409
+
410
+ /* Define compiler branch hints */
411
+ #if MBEDTLS_HAS_BUILTIN(__builtin_expect)
412
+ #define MBEDTLS_LIKELY(x) __builtin_expect(!!(x), 1)
413
+ #define MBEDTLS_UNLIKELY(x) __builtin_expect(!!(x), 0)
414
+ #else
415
+ #define MBEDTLS_LIKELY(x) x
416
+ #define MBEDTLS_UNLIKELY(x) x
417
+ #endif
418
+
419
+ /* MBEDTLS_ASSUME may be used to provide additional information to the compiler
420
+ * which can result in smaller code-size. */
421
+ #if MBEDTLS_HAS_BUILTIN(__builtin_assume)
422
+ /* clang provides __builtin_assume */
423
+ #define MBEDTLS_ASSUME(x) __builtin_assume(x)
424
+ #elif MBEDTLS_HAS_BUILTIN(__builtin_unreachable)
425
+ /* gcc and IAR can use __builtin_unreachable */
426
+ #define MBEDTLS_ASSUME(x) do { if (!(x)) __builtin_unreachable(); } while (0)
427
+ #elif defined(_MSC_VER)
428
+ /* Supported by MSVC since VS 2005 */
429
+ #define MBEDTLS_ASSUME(x) __assume(x)
430
+ #else
431
+ #define MBEDTLS_ASSUME(x) do { } while (0)
432
+ #endif
433
+
434
+ /* For gcc -Os, override with -O2 for a given function.
435
+ *
436
+ * This will not affect behaviour for other optimisation settings, e.g. -O0.
437
+ */
438
+ #if defined(MBEDTLS_COMPILER_IS_GCC) && defined(__OPTIMIZE_SIZE__)
439
+ #define MBEDTLS_OPTIMIZE_FOR_PERFORMANCE __attribute__((optimize("-O2")))
440
+ #else
441
+ #define MBEDTLS_OPTIMIZE_FOR_PERFORMANCE
442
+ #endif
443
+
444
+ /* Suppress compiler warnings for unused functions and variables. */
445
+ #if !defined(MBEDTLS_MAYBE_UNUSED) && defined(__has_attribute)
446
+ # if __has_attribute(unused)
447
+ # define MBEDTLS_MAYBE_UNUSED __attribute__((unused))
448
+ # endif
449
+ #endif
450
+ #if !defined(MBEDTLS_MAYBE_UNUSED) && defined(__GNUC__)
451
+ # define MBEDTLS_MAYBE_UNUSED __attribute__((unused))
452
+ #endif
453
+ #if !defined(MBEDTLS_MAYBE_UNUSED) && defined(__IAR_SYSTEMS_ICC__) && defined(__VER__)
454
+ /* IAR does support __attribute__((unused)), but only if the -e flag (extended language support)
455
+ * is given; the pragma always works.
456
+ * Unfortunately the pragma affects the rest of the file where it is used, but this is harmless.
457
+ * Check for version 5.2 or later - this pragma may be supported by earlier versions, but I wasn't
458
+ * able to find documentation).
459
+ */
460
+ # if (__VER__ >= 5020000)
461
+ # define MBEDTLS_MAYBE_UNUSED _Pragma("diag_suppress=Pe177")
462
+ # endif
463
+ #endif
464
+ #if !defined(MBEDTLS_MAYBE_UNUSED) && defined(_MSC_VER)
465
+ # define MBEDTLS_MAYBE_UNUSED __pragma(warning(suppress:4189))
466
+ #endif
467
+ #if !defined(MBEDTLS_MAYBE_UNUSED)
468
+ # define MBEDTLS_MAYBE_UNUSED
469
+ #endif
470
+
471
+ /* GCC >= 15 has a warning 'unterminated-string-initialization' which complains if you initialize
472
+ * a string into an array without space for a terminating NULL character. In some places in the
473
+ * codebase this behaviour is intended, so we add the macro MBEDTLS_ATTRIBUTE_UNTERMINATED_STRING
474
+ * to suppress the warning in these places.
475
+ */
476
+ #if defined(__has_attribute)
477
+ #if __has_attribute(nonstring)
478
+ #define MBEDTLS_HAS_ATTRIBUTE_NONSTRING
479
+ #endif /* __has_attribute(nonstring) */
480
+ #endif /* __has_attribute */
481
+ #if defined(MBEDTLS_HAS_ATTRIBUTE_NONSTRING)
482
+ #define MBEDTLS_ATTRIBUTE_UNTERMINATED_STRING __attribute__((nonstring))
483
+ #else
484
+ #define MBEDTLS_ATTRIBUTE_UNTERMINATED_STRING
485
+ #endif /* MBEDTLS_HAS_ATTRIBUTE_NONSTRING */
486
+
487
+ #endif /* MBEDTLS_LIBRARY_COMMON_H */