@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,541 @@
1
+ /**
2
+ * Constant-time functions
3
+ *
4
+ * Copyright The Mbed TLS Contributors
5
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
6
+ */
7
+
8
+ #ifndef MBEDTLS_CONSTANT_TIME_IMPL_H
9
+ #define MBEDTLS_CONSTANT_TIME_IMPL_H
10
+
11
+ #include <stddef.h>
12
+
13
+ #include "common.h"
14
+
15
+ #if defined(MBEDTLS_BIGNUM_C)
16
+ #include "mbedtls/bignum.h"
17
+ #endif
18
+
19
+ /*
20
+ * To improve readability of constant_time_internal.h, the static inline
21
+ * definitions are here, and constant_time_internal.h has only the declarations.
22
+ *
23
+ * This results in duplicate declarations of the form:
24
+ * static inline void f(); // from constant_time_internal.h
25
+ * static inline void f() { ... } // from constant_time_impl.h
26
+ * when constant_time_internal.h is included.
27
+ *
28
+ * This appears to behave as if the declaration-without-definition was not present
29
+ * (except for warnings if gcc -Wredundant-decls or similar is used).
30
+ *
31
+ * Disable -Wredundant-decls so that gcc does not warn about this. This is re-enabled
32
+ * at the bottom of this file.
33
+ */
34
+ #if defined(MBEDTLS_COMPILER_IS_GCC) && (__GNUC__ > 4)
35
+ #pragma GCC diagnostic push
36
+ #pragma GCC diagnostic ignored "-Wredundant-decls"
37
+ #endif
38
+
39
+ /* armcc5 --gnu defines __GNUC__ but doesn't support GNU's extended asm */
40
+ #if defined(MBEDTLS_HAVE_ASM) && defined(__GNUC__) && (!defined(__ARMCC_VERSION) || \
41
+ __ARMCC_VERSION >= 6000000)
42
+ #define MBEDTLS_CT_ASM
43
+ #if (defined(__arm__) || defined(__thumb__) || defined(__thumb2__))
44
+ #define MBEDTLS_CT_ARM_ASM
45
+ #elif defined(__aarch64__)
46
+ #define MBEDTLS_CT_AARCH64_ASM
47
+ #elif defined(__amd64__) || defined(__x86_64__)
48
+ #define MBEDTLS_CT_X86_64_ASM
49
+ #elif defined(__i386__)
50
+ #define MBEDTLS_CT_X86_ASM
51
+ #endif
52
+ #endif
53
+
54
+ #define MBEDTLS_CT_SIZE (sizeof(mbedtls_ct_uint_t) * 8)
55
+
56
+
57
+ /* ============================================================================
58
+ * Core const-time primitives
59
+ */
60
+
61
+ /* Ensure that the compiler cannot know the value of x (i.e., cannot optimise
62
+ * based on its value) after this function is called.
63
+ *
64
+ * If we are not using assembly, this will be fairly inefficient, so its use
65
+ * should be minimised.
66
+ */
67
+
68
+ #if !defined(MBEDTLS_CT_ASM)
69
+ extern volatile mbedtls_ct_uint_t mbedtls_ct_zero;
70
+ #endif
71
+
72
+ /**
73
+ * \brief Ensure that a value cannot be known at compile time.
74
+ *
75
+ * \param x The value to hide from the compiler.
76
+ * \return The same value that was passed in, such that the compiler
77
+ * cannot prove its value (even for calls of the form
78
+ * x = mbedtls_ct_compiler_opaque(1), x will be unknown).
79
+ *
80
+ * \note This is mainly used in constructing mbedtls_ct_condition_t
81
+ * values and performing operations over them, to ensure that
82
+ * there is no way for the compiler to ever know anything about
83
+ * the value of an mbedtls_ct_condition_t.
84
+ */
85
+ static inline mbedtls_ct_uint_t mbedtls_ct_compiler_opaque(mbedtls_ct_uint_t x)
86
+ {
87
+ #if defined(MBEDTLS_CT_ASM)
88
+ asm volatile ("" : [x] "+r" (x) :);
89
+ return x;
90
+ #else
91
+ return x ^ mbedtls_ct_zero;
92
+ #endif
93
+ }
94
+
95
+ /*
96
+ * Selecting unified syntax is needed for gcc, and harmless on clang.
97
+ *
98
+ * This is needed because on Thumb 1, condition flags are always set, so
99
+ * e.g. "negs" is supported but "neg" is not (on Thumb 2, both exist).
100
+ *
101
+ * Under Thumb 1 unified syntax, only the "negs" form is accepted, and
102
+ * under divided syntax, only the "neg" form is accepted. clang only
103
+ * supports unified syntax.
104
+ *
105
+ * On Thumb 2 and Arm, both compilers are happy with the "s" suffix,
106
+ * although we don't actually care about setting the flags.
107
+ *
108
+ * For old versions of gcc (see #8516 for details), restore divided
109
+ * syntax afterwards - otherwise old versions of gcc seem to apply
110
+ * unified syntax globally, which breaks other asm code.
111
+ */
112
+ #if defined(MBEDTLS_COMPILER_IS_GCC) && defined(__thumb__) && !defined(__thumb2__) && \
113
+ (__GNUC__ < 11) && !defined(__ARM_ARCH_2__)
114
+ #define RESTORE_ASM_SYNTAX ".syntax divided \n\t"
115
+ #else
116
+ #define RESTORE_ASM_SYNTAX
117
+ #endif
118
+
119
+ /* Convert a number into a condition in constant time. */
120
+ static inline mbedtls_ct_condition_t mbedtls_ct_bool(mbedtls_ct_uint_t x)
121
+ {
122
+ /*
123
+ * Define mask-generation code that, as far as possible, will not use branches or conditional instructions.
124
+ *
125
+ * For some platforms / type sizes, we define assembly to assure this.
126
+ *
127
+ * Otherwise, we define a plain C fallback which (in May 2023) does not get optimised into
128
+ * conditional instructions or branches by trunk clang, gcc, or MSVC v19.
129
+ */
130
+ #if defined(MBEDTLS_CT_AARCH64_ASM) && (defined(MBEDTLS_CT_SIZE_32) || defined(MBEDTLS_CT_SIZE_64))
131
+ mbedtls_ct_uint_t s;
132
+ asm volatile ("neg %x[s], %x[x] \n\t"
133
+ "orr %x[x], %x[s], %x[x] \n\t"
134
+ "asr %x[x], %x[x], 63 \n\t"
135
+ :
136
+ [s] "=&r" (s),
137
+ [x] "+&r" (x)
138
+ :
139
+ :
140
+ );
141
+ return (mbedtls_ct_condition_t) x;
142
+ #elif defined(MBEDTLS_CT_ARM_ASM) && defined(MBEDTLS_CT_SIZE_32)
143
+ uint32_t s;
144
+ asm volatile (".syntax unified \n\t"
145
+ "negs %[s], %[x] \n\t"
146
+ "orrs %[x], %[x], %[s] \n\t"
147
+ "asrs %[x], %[x], #31 \n\t"
148
+ RESTORE_ASM_SYNTAX
149
+ :
150
+ [s] "=&l" (s),
151
+ [x] "+&l" (x)
152
+ :
153
+ :
154
+ "cc" /* clobbers flag bits */
155
+ );
156
+ return (mbedtls_ct_condition_t) x;
157
+ #elif defined(MBEDTLS_CT_X86_64_ASM) && (defined(MBEDTLS_CT_SIZE_32) || defined(MBEDTLS_CT_SIZE_64))
158
+ uint64_t s;
159
+ asm volatile ("mov %[x], %[s] \n\t"
160
+ "neg %[s] \n\t"
161
+ "or %[x], %[s] \n\t"
162
+ "sar $63, %[s] \n\t"
163
+ :
164
+ [s] "=&a" (s)
165
+ :
166
+ [x] "D" (x)
167
+ :
168
+ );
169
+ return (mbedtls_ct_condition_t) s;
170
+ #elif defined(MBEDTLS_CT_X86_ASM) && defined(MBEDTLS_CT_SIZE_32)
171
+ uint32_t s;
172
+ asm volatile ("mov %[x], %[s] \n\t"
173
+ "neg %[s] \n\t"
174
+ "or %[s], %[x] \n\t"
175
+ "sar $31, %[x] \n\t"
176
+ :
177
+ [s] "=&c" (s),
178
+ [x] "+&a" (x)
179
+ :
180
+ :
181
+ );
182
+ return (mbedtls_ct_condition_t) x;
183
+ #else
184
+ const mbedtls_ct_uint_t xo = mbedtls_ct_compiler_opaque(x);
185
+ #if defined(_MSC_VER)
186
+ /* MSVC has a warning about unary minus on unsigned, but this is
187
+ * well-defined and precisely what we want to do here */
188
+ #pragma warning( push )
189
+ #pragma warning( disable : 4146 )
190
+ #endif
191
+ // y is negative (i.e., top bit set) iff x is non-zero
192
+ mbedtls_ct_int_t y = (-xo) | -(xo >> 1);
193
+
194
+ // extract only the sign bit of y so that y == 1 (if x is non-zero) or 0 (if x is zero)
195
+ y = (((mbedtls_ct_uint_t) y) >> (MBEDTLS_CT_SIZE - 1));
196
+
197
+ // -y has all bits set (if x is non-zero), or all bits clear (if x is zero)
198
+ return (mbedtls_ct_condition_t) (-y);
199
+ #if defined(_MSC_VER)
200
+ #pragma warning( pop )
201
+ #endif
202
+ #endif
203
+ }
204
+
205
+ static inline mbedtls_ct_uint_t mbedtls_ct_if(mbedtls_ct_condition_t condition,
206
+ mbedtls_ct_uint_t if1,
207
+ mbedtls_ct_uint_t if0)
208
+ {
209
+ #if defined(MBEDTLS_CT_AARCH64_ASM) && (defined(MBEDTLS_CT_SIZE_32) || defined(MBEDTLS_CT_SIZE_64))
210
+ asm volatile ("and %x[if1], %x[if1], %x[condition] \n\t"
211
+ "mvn %x[condition], %x[condition] \n\t"
212
+ "and %x[condition], %x[condition], %x[if0] \n\t"
213
+ "orr %x[condition], %x[if1], %x[condition]"
214
+ :
215
+ [condition] "+&r" (condition),
216
+ [if1] "+&r" (if1)
217
+ :
218
+ [if0] "r" (if0)
219
+ :
220
+ );
221
+ return (mbedtls_ct_uint_t) condition;
222
+ #elif defined(MBEDTLS_CT_ARM_ASM) && defined(MBEDTLS_CT_SIZE_32)
223
+ asm volatile (".syntax unified \n\t"
224
+ "ands %[if1], %[if1], %[condition] \n\t"
225
+ "mvns %[condition], %[condition] \n\t"
226
+ "ands %[condition], %[condition], %[if0] \n\t"
227
+ "orrs %[condition], %[if1], %[condition] \n\t"
228
+ RESTORE_ASM_SYNTAX
229
+ :
230
+ [condition] "+&l" (condition),
231
+ [if1] "+&l" (if1)
232
+ :
233
+ [if0] "l" (if0)
234
+ :
235
+ "cc"
236
+ );
237
+ return (mbedtls_ct_uint_t) condition;
238
+ #elif defined(MBEDTLS_CT_X86_64_ASM) && (defined(MBEDTLS_CT_SIZE_32) || defined(MBEDTLS_CT_SIZE_64))
239
+ asm volatile ("and %[condition], %[if1] \n\t"
240
+ "not %[condition] \n\t"
241
+ "and %[condition], %[if0] \n\t"
242
+ "or %[if1], %[if0] \n\t"
243
+ :
244
+ [condition] "+&D" (condition),
245
+ [if1] "+&S" (if1),
246
+ [if0] "+&a" (if0)
247
+ :
248
+ :
249
+ );
250
+ return if0;
251
+ #elif defined(MBEDTLS_CT_X86_ASM) && defined(MBEDTLS_CT_SIZE_32)
252
+ asm volatile ("and %[condition], %[if1] \n\t"
253
+ "not %[condition] \n\t"
254
+ "and %[if0], %[condition] \n\t"
255
+ "or %[condition], %[if1] \n\t"
256
+ :
257
+ [condition] "+&c" (condition),
258
+ [if1] "+&a" (if1)
259
+ :
260
+ [if0] "b" (if0)
261
+ :
262
+ );
263
+ return if1;
264
+ #else
265
+ mbedtls_ct_condition_t not_cond =
266
+ (mbedtls_ct_condition_t) (~mbedtls_ct_compiler_opaque(condition));
267
+ return (mbedtls_ct_uint_t) ((condition & if1) | (not_cond & if0));
268
+ #endif
269
+ }
270
+
271
+ static inline mbedtls_ct_condition_t mbedtls_ct_uint_lt(mbedtls_ct_uint_t x, mbedtls_ct_uint_t y)
272
+ {
273
+ #if defined(MBEDTLS_CT_AARCH64_ASM) && (defined(MBEDTLS_CT_SIZE_32) || defined(MBEDTLS_CT_SIZE_64))
274
+ uint64_t s1;
275
+ asm volatile ("eor %x[s1], %x[y], %x[x] \n\t"
276
+ "sub %x[x], %x[x], %x[y] \n\t"
277
+ "bic %x[x], %x[x], %x[s1] \n\t"
278
+ "and %x[s1], %x[s1], %x[y] \n\t"
279
+ "orr %x[s1], %x[x], %x[s1] \n\t"
280
+ "asr %x[x], %x[s1], 63"
281
+ :
282
+ [s1] "=&r" (s1),
283
+ [x] "+&r" (x)
284
+ :
285
+ [y] "r" (y)
286
+ :
287
+ );
288
+ return (mbedtls_ct_condition_t) x;
289
+ #elif defined(MBEDTLS_CT_ARM_ASM) && defined(MBEDTLS_CT_SIZE_32)
290
+ uint32_t s1;
291
+ asm volatile (
292
+ ".syntax unified \n\t"
293
+ #if defined(__thumb__) && !defined(__thumb2__)
294
+ "movs %[s1], %[x] \n\t"
295
+ "eors %[s1], %[s1], %[y] \n\t"
296
+ #else
297
+ "eors %[s1], %[x], %[y] \n\t"
298
+ #endif
299
+ "subs %[x], %[x], %[y] \n\t"
300
+ "bics %[x], %[x], %[s1] \n\t"
301
+ "ands %[y], %[s1], %[y] \n\t"
302
+ "orrs %[x], %[x], %[y] \n\t"
303
+ "asrs %[x], %[x], #31 \n\t"
304
+ RESTORE_ASM_SYNTAX
305
+ :
306
+ [s1] "=&l" (s1),
307
+ [x] "+&l" (x),
308
+ [y] "+&l" (y)
309
+ :
310
+ :
311
+ "cc"
312
+ );
313
+ return (mbedtls_ct_condition_t) x;
314
+ #elif defined(MBEDTLS_CT_X86_64_ASM) && (defined(MBEDTLS_CT_SIZE_32) || defined(MBEDTLS_CT_SIZE_64))
315
+ uint64_t s;
316
+ asm volatile ("mov %[x], %[s] \n\t"
317
+ "xor %[y], %[s] \n\t"
318
+ "sub %[y], %[x] \n\t"
319
+ "and %[s], %[y] \n\t"
320
+ "not %[s] \n\t"
321
+ "and %[s], %[x] \n\t"
322
+ "or %[y], %[x] \n\t"
323
+ "sar $63, %[x] \n\t"
324
+ :
325
+ [s] "=&a" (s),
326
+ [x] "+&D" (x),
327
+ [y] "+&S" (y)
328
+ :
329
+ :
330
+ );
331
+ return (mbedtls_ct_condition_t) x;
332
+ #elif defined(MBEDTLS_CT_X86_ASM) && defined(MBEDTLS_CT_SIZE_32)
333
+ uint32_t s;
334
+ asm volatile ("mov %[x], %[s] \n\t"
335
+ "xor %[y], %[s] \n\t"
336
+ "sub %[y], %[x] \n\t"
337
+ "and %[s], %[y] \n\t"
338
+ "not %[s] \n\t"
339
+ "and %[s], %[x] \n\t"
340
+ "or %[y], %[x] \n\t"
341
+ "sar $31, %[x] \n\t"
342
+ :
343
+ [s] "=&b" (s),
344
+ [x] "+&a" (x),
345
+ [y] "+&c" (y)
346
+ :
347
+ :
348
+ );
349
+ return (mbedtls_ct_condition_t) x;
350
+ #else
351
+ /* Ensure that the compiler cannot optimise the following operations over x and y,
352
+ * even if it knows the value of x and y.
353
+ */
354
+ const mbedtls_ct_uint_t xo = mbedtls_ct_compiler_opaque(x);
355
+ const mbedtls_ct_uint_t yo = mbedtls_ct_compiler_opaque(y);
356
+ /*
357
+ * Check if the most significant bits (MSB) of the operands are different.
358
+ * cond is true iff the MSBs differ.
359
+ */
360
+ mbedtls_ct_condition_t cond = mbedtls_ct_bool((xo ^ yo) >> (MBEDTLS_CT_SIZE - 1));
361
+
362
+ /*
363
+ * If the MSB are the same then the difference x-y will be negative (and
364
+ * have its MSB set to 1 during conversion to unsigned) if and only if x<y.
365
+ *
366
+ * If the MSB are different, then the operand with the MSB of 1 is the
367
+ * bigger. (That is if y has MSB of 1, then x<y is true and it is false if
368
+ * the MSB of y is 0.)
369
+ */
370
+
371
+ // Select either y, or x - y
372
+ mbedtls_ct_uint_t ret = mbedtls_ct_if(cond, yo, (mbedtls_ct_uint_t) (xo - yo));
373
+
374
+ // Extract only the MSB of ret
375
+ ret = ret >> (MBEDTLS_CT_SIZE - 1);
376
+
377
+ // Convert to a condition (i.e., all bits set iff non-zero)
378
+ return mbedtls_ct_bool(ret);
379
+ #endif
380
+ }
381
+
382
+ static inline mbedtls_ct_condition_t mbedtls_ct_uint_ne(mbedtls_ct_uint_t x, mbedtls_ct_uint_t y)
383
+ {
384
+ /* diff = 0 if x == y, non-zero otherwise */
385
+ const mbedtls_ct_uint_t diff = mbedtls_ct_compiler_opaque(x) ^ mbedtls_ct_compiler_opaque(y);
386
+
387
+ /* all ones if x != y, 0 otherwise */
388
+ return mbedtls_ct_bool(diff);
389
+ }
390
+
391
+ static inline unsigned char mbedtls_ct_uchar_in_range_if(unsigned char low,
392
+ unsigned char high,
393
+ unsigned char c,
394
+ unsigned char t)
395
+ {
396
+ const unsigned char co = (unsigned char) mbedtls_ct_compiler_opaque(c);
397
+ const unsigned char to = (unsigned char) mbedtls_ct_compiler_opaque(t);
398
+
399
+ /* low_mask is: 0 if low <= c, 0x...ff if low > c */
400
+ unsigned low_mask = ((unsigned) co - low) >> 8;
401
+ /* high_mask is: 0 if c <= high, 0x...ff if c > high */
402
+ unsigned high_mask = ((unsigned) high - co) >> 8;
403
+
404
+ return (unsigned char) (~(low_mask | high_mask)) & to;
405
+ }
406
+
407
+ /* ============================================================================
408
+ * Everything below here is trivial wrapper functions
409
+ */
410
+
411
+ static inline size_t mbedtls_ct_size_if(mbedtls_ct_condition_t condition,
412
+ size_t if1,
413
+ size_t if0)
414
+ {
415
+ return (size_t) mbedtls_ct_if(condition, (mbedtls_ct_uint_t) if1, (mbedtls_ct_uint_t) if0);
416
+ }
417
+
418
+ static inline unsigned mbedtls_ct_uint_if(mbedtls_ct_condition_t condition,
419
+ unsigned if1,
420
+ unsigned if0)
421
+ {
422
+ return (unsigned) mbedtls_ct_if(condition, (mbedtls_ct_uint_t) if1, (mbedtls_ct_uint_t) if0);
423
+ }
424
+
425
+ static inline mbedtls_ct_condition_t mbedtls_ct_bool_if(mbedtls_ct_condition_t condition,
426
+ mbedtls_ct_condition_t if1,
427
+ mbedtls_ct_condition_t if0)
428
+ {
429
+ return (mbedtls_ct_condition_t) mbedtls_ct_if(condition, (mbedtls_ct_uint_t) if1,
430
+ (mbedtls_ct_uint_t) if0);
431
+ }
432
+
433
+ #if defined(MBEDTLS_BIGNUM_C)
434
+
435
+ static inline mbedtls_mpi_uint mbedtls_ct_mpi_uint_if(mbedtls_ct_condition_t condition,
436
+ mbedtls_mpi_uint if1,
437
+ mbedtls_mpi_uint if0)
438
+ {
439
+ return (mbedtls_mpi_uint) mbedtls_ct_if(condition,
440
+ (mbedtls_ct_uint_t) if1,
441
+ (mbedtls_ct_uint_t) if0);
442
+ }
443
+
444
+ #endif
445
+
446
+ static inline size_t mbedtls_ct_size_if_else_0(mbedtls_ct_condition_t condition, size_t if1)
447
+ {
448
+ return (size_t) (condition & if1);
449
+ }
450
+
451
+ static inline unsigned mbedtls_ct_uint_if_else_0(mbedtls_ct_condition_t condition, unsigned if1)
452
+ {
453
+ return (unsigned) (condition & if1);
454
+ }
455
+
456
+ static inline mbedtls_ct_condition_t mbedtls_ct_bool_if_else_0(mbedtls_ct_condition_t condition,
457
+ mbedtls_ct_condition_t if1)
458
+ {
459
+ return (mbedtls_ct_condition_t) (condition & if1);
460
+ }
461
+
462
+ #if defined(MBEDTLS_BIGNUM_C)
463
+
464
+ static inline mbedtls_mpi_uint mbedtls_ct_mpi_uint_if_else_0(mbedtls_ct_condition_t condition,
465
+ mbedtls_mpi_uint if1)
466
+ {
467
+ return (mbedtls_mpi_uint) (condition & if1);
468
+ }
469
+
470
+ #endif /* MBEDTLS_BIGNUM_C */
471
+
472
+ static inline int mbedtls_ct_error_if(mbedtls_ct_condition_t condition, int if1, int if0)
473
+ {
474
+ /* Coverting int -> uint -> int here is safe, because we require if1 and if0 to be
475
+ * in the range -32767..0, and we require 32-bit int and uint types.
476
+ *
477
+ * This means that (0 <= -if0 < INT_MAX), so negating if0 is safe, and similarly for
478
+ * converting back to int.
479
+ */
480
+ return -((int) mbedtls_ct_if(condition, (mbedtls_ct_uint_t) (-if1),
481
+ (mbedtls_ct_uint_t) (-if0)));
482
+ }
483
+
484
+ static inline int mbedtls_ct_error_if_else_0(mbedtls_ct_condition_t condition, int if1)
485
+ {
486
+ return -((int) (condition & (-if1)));
487
+ }
488
+
489
+ static inline mbedtls_ct_condition_t mbedtls_ct_uint_eq(mbedtls_ct_uint_t x,
490
+ mbedtls_ct_uint_t y)
491
+ {
492
+ return ~mbedtls_ct_uint_ne(x, y);
493
+ }
494
+
495
+ static inline mbedtls_ct_condition_t mbedtls_ct_uint_gt(mbedtls_ct_uint_t x,
496
+ mbedtls_ct_uint_t y)
497
+ {
498
+ return mbedtls_ct_uint_lt(y, x);
499
+ }
500
+
501
+ static inline mbedtls_ct_condition_t mbedtls_ct_uint_ge(mbedtls_ct_uint_t x,
502
+ mbedtls_ct_uint_t y)
503
+ {
504
+ return ~mbedtls_ct_uint_lt(x, y);
505
+ }
506
+
507
+ static inline mbedtls_ct_condition_t mbedtls_ct_uint_le(mbedtls_ct_uint_t x,
508
+ mbedtls_ct_uint_t y)
509
+ {
510
+ return ~mbedtls_ct_uint_gt(x, y);
511
+ }
512
+
513
+ static inline mbedtls_ct_condition_t mbedtls_ct_bool_ne(mbedtls_ct_condition_t x,
514
+ mbedtls_ct_condition_t y)
515
+ {
516
+ return (mbedtls_ct_condition_t) (x ^ y);
517
+ }
518
+
519
+ static inline mbedtls_ct_condition_t mbedtls_ct_bool_and(mbedtls_ct_condition_t x,
520
+ mbedtls_ct_condition_t y)
521
+ {
522
+ return (mbedtls_ct_condition_t) (x & y);
523
+ }
524
+
525
+ static inline mbedtls_ct_condition_t mbedtls_ct_bool_or(mbedtls_ct_condition_t x,
526
+ mbedtls_ct_condition_t y)
527
+ {
528
+ return (mbedtls_ct_condition_t) (x | y);
529
+ }
530
+
531
+ static inline mbedtls_ct_condition_t mbedtls_ct_bool_not(mbedtls_ct_condition_t x)
532
+ {
533
+ return (mbedtls_ct_condition_t) (~x);
534
+ }
535
+
536
+ #if defined(MBEDTLS_COMPILER_IS_GCC) && (__GNUC__ > 4)
537
+ /* Restore warnings for -Wredundant-decls on gcc */
538
+ #pragma GCC diagnostic pop
539
+ #endif
540
+
541
+ #endif /* MBEDTLS_CONSTANT_TIME_IMPL_H */