@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,106 @@
1
+ /**
2
+ * \file ssl_cookie.h
3
+ *
4
+ * \brief DTLS cookie callbacks implementation
5
+ */
6
+ /*
7
+ * Copyright The Mbed TLS Contributors
8
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
9
+ */
10
+ #ifndef MBEDTLS_SSL_COOKIE_H
11
+ #define MBEDTLS_SSL_COOKIE_H
12
+ #include "mbedtls/private_access.h"
13
+
14
+ #include "mbedtls/build_info.h"
15
+
16
+ #include "mbedtls/ssl.h"
17
+
18
+ #if !defined(MBEDTLS_USE_PSA_CRYPTO)
19
+ #if defined(MBEDTLS_THREADING_C)
20
+ #include "mbedtls/threading.h"
21
+ #endif
22
+ #endif /* !MBEDTLS_USE_PSA_CRYPTO */
23
+
24
+ /**
25
+ * \name SECTION: Module settings
26
+ *
27
+ * The configuration options you can set for this module are in this section.
28
+ * Either change them in mbedtls_config.h or define them on the compiler command line.
29
+ * \{
30
+ */
31
+ #ifndef MBEDTLS_SSL_COOKIE_TIMEOUT
32
+ #define MBEDTLS_SSL_COOKIE_TIMEOUT 60 /**< Default expiration delay of DTLS cookies, in seconds if HAVE_TIME, or in number of cookies issued */
33
+ #endif
34
+
35
+ /** \} name SECTION: Module settings */
36
+
37
+ #ifdef __cplusplus
38
+ extern "C" {
39
+ #endif
40
+
41
+ /**
42
+ * \brief Context for the default cookie functions.
43
+ */
44
+ typedef struct mbedtls_ssl_cookie_ctx {
45
+ #if defined(MBEDTLS_USE_PSA_CRYPTO)
46
+ mbedtls_svc_key_id_t MBEDTLS_PRIVATE(psa_hmac_key); /*!< key id for the HMAC portion */
47
+ psa_algorithm_t MBEDTLS_PRIVATE(psa_hmac_alg); /*!< key algorithm for the HMAC portion */
48
+ #else
49
+ mbedtls_md_context_t MBEDTLS_PRIVATE(hmac_ctx); /*!< context for the HMAC portion */
50
+ #endif /* MBEDTLS_USE_PSA_CRYPTO */
51
+ #if !defined(MBEDTLS_HAVE_TIME)
52
+ unsigned long MBEDTLS_PRIVATE(serial); /*!< serial number for expiration */
53
+ #endif
54
+ unsigned long MBEDTLS_PRIVATE(timeout); /*!< timeout delay, in seconds if HAVE_TIME,
55
+ or in number of tickets issued */
56
+
57
+ #if !defined(MBEDTLS_USE_PSA_CRYPTO)
58
+ #if defined(MBEDTLS_THREADING_C)
59
+ mbedtls_threading_mutex_t MBEDTLS_PRIVATE(mutex);
60
+ #endif
61
+ #endif /* !MBEDTLS_USE_PSA_CRYPTO */
62
+ } mbedtls_ssl_cookie_ctx;
63
+
64
+ /**
65
+ * \brief Initialize cookie context
66
+ */
67
+ void mbedtls_ssl_cookie_init(mbedtls_ssl_cookie_ctx *ctx);
68
+
69
+ /**
70
+ * \brief Setup cookie context (generate keys)
71
+ */
72
+ int mbedtls_ssl_cookie_setup(mbedtls_ssl_cookie_ctx *ctx,
73
+ mbedtls_f_rng_t *f_rng,
74
+ void *p_rng);
75
+
76
+ /**
77
+ * \brief Set expiration delay for cookies
78
+ * (Default MBEDTLS_SSL_COOKIE_TIMEOUT)
79
+ *
80
+ * \param ctx Cookie context
81
+ * \param delay Delay, in seconds if HAVE_TIME, or in number of cookies
82
+ * issued in the meantime.
83
+ * 0 to disable expiration (NOT recommended)
84
+ */
85
+ void mbedtls_ssl_cookie_set_timeout(mbedtls_ssl_cookie_ctx *ctx, unsigned long delay);
86
+
87
+ /**
88
+ * \brief Free cookie context
89
+ */
90
+ void mbedtls_ssl_cookie_free(mbedtls_ssl_cookie_ctx *ctx);
91
+
92
+ /**
93
+ * \brief Generate cookie, see \c mbedtls_ssl_cookie_write_t
94
+ */
95
+ mbedtls_ssl_cookie_write_t mbedtls_ssl_cookie_write;
96
+
97
+ /**
98
+ * \brief Verify cookie, see \c mbedtls_ssl_cookie_write_t
99
+ */
100
+ mbedtls_ssl_cookie_check_t mbedtls_ssl_cookie_check;
101
+
102
+ #ifdef __cplusplus
103
+ }
104
+ #endif
105
+
106
+ #endif /* ssl_cookie.h */
@@ -0,0 +1,199 @@
1
+ /**
2
+ * \file ssl_ticket.h
3
+ *
4
+ * \brief TLS server ticket callbacks implementation
5
+ */
6
+ /*
7
+ * Copyright The Mbed TLS Contributors
8
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
9
+ */
10
+ #ifndef MBEDTLS_SSL_TICKET_H
11
+ #define MBEDTLS_SSL_TICKET_H
12
+ #include "mbedtls/private_access.h"
13
+
14
+ #include "mbedtls/build_info.h"
15
+
16
+ /*
17
+ * This implementation of the session ticket callbacks includes key
18
+ * management, rotating the keys periodically in order to preserve forward
19
+ * secrecy, when MBEDTLS_HAVE_TIME is defined.
20
+ */
21
+
22
+ #include "mbedtls/ssl.h"
23
+ #include "mbedtls/cipher.h"
24
+
25
+ #if defined(MBEDTLS_HAVE_TIME)
26
+ #include "mbedtls/platform_time.h"
27
+ #endif
28
+
29
+ #if defined(MBEDTLS_USE_PSA_CRYPTO)
30
+ #include "psa/crypto.h"
31
+ #endif
32
+
33
+ #if defined(MBEDTLS_THREADING_C)
34
+ #include "mbedtls/threading.h"
35
+ #endif
36
+
37
+ #ifdef __cplusplus
38
+ extern "C" {
39
+ #endif
40
+
41
+ #define MBEDTLS_SSL_TICKET_MAX_KEY_BYTES 32 /*!< Max supported key length in bytes */
42
+ #define MBEDTLS_SSL_TICKET_KEY_NAME_BYTES 4 /*!< key name length in bytes */
43
+
44
+ /**
45
+ * \brief Information for session ticket protection
46
+ */
47
+ typedef struct mbedtls_ssl_ticket_key {
48
+ unsigned char MBEDTLS_PRIVATE(name)[MBEDTLS_SSL_TICKET_KEY_NAME_BYTES];
49
+ /*!< random key identifier */
50
+ #if defined(MBEDTLS_HAVE_TIME)
51
+ mbedtls_time_t MBEDTLS_PRIVATE(generation_time); /*!< key generation timestamp (seconds) */
52
+ #endif
53
+ /*! Lifetime of the key in seconds. This is also the lifetime of the
54
+ * tickets created under that key.
55
+ */
56
+ uint32_t MBEDTLS_PRIVATE(lifetime);
57
+ #if !defined(MBEDTLS_USE_PSA_CRYPTO)
58
+ mbedtls_cipher_context_t MBEDTLS_PRIVATE(ctx); /*!< context for auth enc/decryption */
59
+ #else
60
+ mbedtls_svc_key_id_t MBEDTLS_PRIVATE(key); /*!< key used for auth enc/decryption */
61
+ psa_algorithm_t MBEDTLS_PRIVATE(alg); /*!< algorithm of auth enc/decryption */
62
+ psa_key_type_t MBEDTLS_PRIVATE(key_type); /*!< key type */
63
+ size_t MBEDTLS_PRIVATE(key_bits); /*!< key length in bits */
64
+ #endif
65
+ }
66
+ mbedtls_ssl_ticket_key;
67
+
68
+ /**
69
+ * \brief Context for session ticket handling functions
70
+ */
71
+ typedef struct mbedtls_ssl_ticket_context {
72
+ mbedtls_ssl_ticket_key MBEDTLS_PRIVATE(keys)[2]; /*!< ticket protection keys */
73
+ unsigned char MBEDTLS_PRIVATE(active); /*!< index of the currently active key */
74
+
75
+ uint32_t MBEDTLS_PRIVATE(ticket_lifetime); /*!< lifetime of tickets in seconds */
76
+
77
+ /** Callback for getting (pseudo-)random numbers */
78
+ int(*MBEDTLS_PRIVATE(f_rng))(void *, unsigned char *, size_t);
79
+ void *MBEDTLS_PRIVATE(p_rng); /*!< context for the RNG function */
80
+
81
+ #if defined(MBEDTLS_THREADING_C)
82
+ mbedtls_threading_mutex_t MBEDTLS_PRIVATE(mutex);
83
+ #endif
84
+ }
85
+ mbedtls_ssl_ticket_context;
86
+
87
+ /**
88
+ * \brief Initialize a ticket context.
89
+ * (Just make it ready for mbedtls_ssl_ticket_setup()
90
+ * or mbedtls_ssl_ticket_free().)
91
+ *
92
+ * \param ctx Context to be initialized
93
+ */
94
+ void mbedtls_ssl_ticket_init(mbedtls_ssl_ticket_context *ctx);
95
+
96
+ /**
97
+ * \brief Prepare context to be actually used
98
+ *
99
+ * \param ctx Context to be set up
100
+ * \param f_rng RNG callback function (mandatory)
101
+ * \param p_rng RNG callback context.
102
+ * Note that the RNG callback must remain valid
103
+ * until the ticket context is freed.
104
+ * \param cipher AEAD cipher to use for ticket protection.
105
+ * Recommended value: MBEDTLS_CIPHER_AES_256_GCM.
106
+ * \param lifetime Tickets lifetime in seconds
107
+ * Recommended value: 86400 (one day).
108
+ *
109
+ * \note It is highly recommended to select a cipher that is at
110
+ * least as strong as the strongest ciphersuite
111
+ * supported. Usually that means a 256-bit key.
112
+ *
113
+ * \note It is recommended to pick a reasonable lifetime so as not
114
+ * to negate the benefits of forward secrecy.
115
+ *
116
+ * \note The TLS 1.3 specification states that ticket lifetime must
117
+ * be smaller than seven days. If ticket lifetime has been
118
+ * set to a value greater than seven days in this module then
119
+ * if the TLS 1.3 is configured to send tickets after the
120
+ * handshake it will fail the connection when trying to send
121
+ * the first ticket.
122
+ *
123
+ * \return 0 if successful,
124
+ * or a specific MBEDTLS_ERR_XXX error code
125
+ */
126
+ int mbedtls_ssl_ticket_setup(mbedtls_ssl_ticket_context *ctx,
127
+ mbedtls_f_rng_t *f_rng, void *p_rng,
128
+ mbedtls_cipher_type_t cipher,
129
+ uint32_t lifetime);
130
+
131
+ /**
132
+ * \brief Rotate session ticket encryption key to new specified key.
133
+ * Provides for external control of session ticket encryption
134
+ * key rotation, e.g. for synchronization between different
135
+ * machines. If this function is not used, or if not called
136
+ * before ticket lifetime expires, then a new session ticket
137
+ * encryption key is generated internally in order to avoid
138
+ * unbounded session ticket encryption key lifetimes.
139
+ *
140
+ * \param ctx Context to be set up
141
+ * \param name Session ticket encryption key name
142
+ * \param nlength Session ticket encryption key name length in bytes
143
+ * \param k Session ticket encryption key
144
+ * \param klength Session ticket encryption key length in bytes
145
+ * \param lifetime Tickets lifetime in seconds
146
+ * Recommended value: 86400 (one day).
147
+ *
148
+ * \note \c name and \c k are recommended to be cryptographically
149
+ * random data.
150
+ *
151
+ * \note \c nlength must match sizeof( ctx->name )
152
+ *
153
+ * \note \c klength must be sufficient for use by cipher specified
154
+ * to \c mbedtls_ssl_ticket_setup
155
+ *
156
+ * \note It is recommended to pick a reasonable lifetime so as not
157
+ * to negate the benefits of forward secrecy.
158
+ *
159
+ * \note The TLS 1.3 specification states that ticket lifetime must
160
+ * be smaller than seven days. If ticket lifetime has been
161
+ * set to a value greater than seven days in this module then
162
+ * if the TLS 1.3 is configured to send tickets after the
163
+ * handshake it will fail the connection when trying to send
164
+ * the first ticket.
165
+ *
166
+ * \return 0 if successful,
167
+ * or a specific MBEDTLS_ERR_XXX error code
168
+ */
169
+ int mbedtls_ssl_ticket_rotate(mbedtls_ssl_ticket_context *ctx,
170
+ const unsigned char *name, size_t nlength,
171
+ const unsigned char *k, size_t klength,
172
+ uint32_t lifetime);
173
+
174
+ /**
175
+ * \brief Implementation of the ticket write callback
176
+ *
177
+ * \note See \c mbedtls_ssl_ticket_write_t for description
178
+ */
179
+ mbedtls_ssl_ticket_write_t mbedtls_ssl_ticket_write;
180
+
181
+ /**
182
+ * \brief Implementation of the ticket parse callback
183
+ *
184
+ * \note See \c mbedtls_ssl_ticket_parse_t for description
185
+ */
186
+ mbedtls_ssl_ticket_parse_t mbedtls_ssl_ticket_parse;
187
+
188
+ /**
189
+ * \brief Free a context's content and zeroize it.
190
+ *
191
+ * \param ctx Context to be cleaned up
192
+ */
193
+ void mbedtls_ssl_ticket_free(mbedtls_ssl_ticket_context *ctx);
194
+
195
+ #ifdef __cplusplus
196
+ }
197
+ #endif
198
+
199
+ #endif /* ssl_ticket.h */
@@ -0,0 +1,167 @@
1
+ /**
2
+ * \file threading.h
3
+ *
4
+ * \brief Threading abstraction layer
5
+ */
6
+ /*
7
+ * Copyright The Mbed TLS Contributors
8
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
9
+ */
10
+ #ifndef MBEDTLS_THREADING_H
11
+ #define MBEDTLS_THREADING_H
12
+ #include "mbedtls/private_access.h"
13
+
14
+ #include "mbedtls/build_info.h"
15
+
16
+ #include <stdlib.h>
17
+
18
+ #ifdef __cplusplus
19
+ extern "C" {
20
+ #endif
21
+
22
+ /** Bad input parameters to function. */
23
+ #define MBEDTLS_ERR_THREADING_BAD_INPUT_DATA -0x001C
24
+ /** Locking / unlocking / free failed with error code. */
25
+ #define MBEDTLS_ERR_THREADING_MUTEX_ERROR -0x001E
26
+
27
+ #if defined(MBEDTLS_THREADING_PTHREAD)
28
+ #include <pthread.h>
29
+ typedef struct mbedtls_threading_mutex_t {
30
+ pthread_mutex_t MBEDTLS_PRIVATE(mutex);
31
+
32
+ /* WARNING - state should only be accessed when holding the mutex lock in
33
+ * framework/tests/src/threading_helpers.c, otherwise corruption can occur.
34
+ * state will be 0 after a failed init or a free, and nonzero after a
35
+ * successful init. This field is for testing only and thus not considered
36
+ * part of the public API of Mbed TLS and may change without notice.*/
37
+ char MBEDTLS_PRIVATE(state);
38
+
39
+ } mbedtls_threading_mutex_t;
40
+ #endif
41
+
42
+ #if defined(MBEDTLS_THREADING_ALT)
43
+ /* You should define the mbedtls_threading_mutex_t type in your header */
44
+ #include "threading_alt.h"
45
+
46
+ /**
47
+ * \brief Set your alternate threading implementation function
48
+ * pointers and initialize global mutexes. If used, this
49
+ * function must be called once in the main thread before any
50
+ * other Mbed TLS function is called, and
51
+ * mbedtls_threading_free_alt() must be called once in the main
52
+ * thread after all other Mbed TLS functions.
53
+ *
54
+ * \warning \p mutex_init and \p mutex_free don't return a status code.
55
+ * If \p mutex_init fails, it should leave the mutex in
56
+ * a state such that \p mutex_lock will reliably return
57
+ * #MBEDTLS_ERR_THREADING_MUTEX_ERROR called on this mutex,
58
+ * and \p mutex_free will do nothing.
59
+ *
60
+ * \param mutex_init The init function implementation. <br>
61
+ * The behavior is undefined if the mutex is already
62
+ * initialized and has not been destroyed.
63
+ * On platforms where mutex initialization can fail,
64
+ * since this function does not return a status code,
65
+ * it must leave the mutex object in a safe state where
66
+ * subsequent function calls will not cause undefined
67
+ * behavior: after a call to \p mutex_init, the
68
+ * function \p mutex_lock must either succeed or
69
+ * fail with a nonzero status code, and the function
70
+ * \p mutex_free must free any resources associated
71
+ * with the mutex..
72
+ * \param mutex_free The destroy function implementation. <br>
73
+ * This function must free any resources associated
74
+ * with the mutex object. <br>
75
+ * This function must work reliably if \p mutex_init
76
+ * has been called on the mutex and \p mutex_free
77
+ * has not yet been called. <br>
78
+ * The behavior is undefined if the mutex was not
79
+ * initialized, if it has already been destroyed,
80
+ * if it is currently locked, or if this function
81
+ * is called concurrently from multiple threads.
82
+ * \param mutex_lock The lock function implementation. <br>
83
+ * This function must work reliably on any mutex
84
+ * which is not currently locked and on which
85
+ * \p mutex_init has already been called but
86
+ * \p mutex_free has not been called yet. <br>
87
+ * The behavior is undefined if the mutex was not
88
+ * initialized, if it has already been destroyed, or if
89
+ * it is currently locked by the calling thread.
90
+ * \param mutex_unlock The unlock function implementation. <br>
91
+ * The behavior is undefined if the mutex is not
92
+ * currently locked by the calling thread.
93
+ */
94
+ void mbedtls_threading_set_alt(void (*mutex_init)(mbedtls_threading_mutex_t *),
95
+ void (*mutex_free)(mbedtls_threading_mutex_t *),
96
+ int (*mutex_lock)(mbedtls_threading_mutex_t *),
97
+ int (*mutex_unlock)(mbedtls_threading_mutex_t *));
98
+
99
+ /**
100
+ * \brief Free global mutexes.
101
+ */
102
+ void mbedtls_threading_free_alt(void);
103
+ #endif /* MBEDTLS_THREADING_ALT */
104
+
105
+ #if defined(MBEDTLS_THREADING_C)
106
+ /*
107
+ * The function pointers for mutex_init, mutex_free, mutex_ and mutex_unlock
108
+ *
109
+ * All these functions are expected to work or the result will be undefined.
110
+ */
111
+ extern void (*mbedtls_mutex_init)(mbedtls_threading_mutex_t *mutex);
112
+ extern void (*mbedtls_mutex_free)(mbedtls_threading_mutex_t *mutex);
113
+ extern int (*mbedtls_mutex_lock)(mbedtls_threading_mutex_t *mutex);
114
+ extern int (*mbedtls_mutex_unlock)(mbedtls_threading_mutex_t *mutex);
115
+
116
+ /*
117
+ * Global mutexes
118
+ */
119
+ #if defined(MBEDTLS_FS_IO)
120
+ extern mbedtls_threading_mutex_t mbedtls_threading_readdir_mutex;
121
+ #endif
122
+
123
+ #if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_PLATFORM_GMTIME_R_ALT)
124
+ /* This mutex may or may not be used in the default definition of
125
+ * mbedtls_platform_gmtime_r(), but in order to determine that,
126
+ * we need to check POSIX features, hence modify _POSIX_C_SOURCE.
127
+ * With the current approach, this declaration is orphaned, lacking
128
+ * an accompanying definition, in case mbedtls_platform_gmtime_r()
129
+ * doesn't need it, but that's not a problem. */
130
+ extern mbedtls_threading_mutex_t mbedtls_threading_gmtime_mutex;
131
+ #endif /* MBEDTLS_HAVE_TIME_DATE && !MBEDTLS_PLATFORM_GMTIME_R_ALT */
132
+
133
+ #if defined(MBEDTLS_PSA_CRYPTO_C)
134
+ /*
135
+ * A mutex used to make the PSA subsystem thread safe.
136
+ *
137
+ * key_slot_mutex protects the registered_readers and
138
+ * state variable for all key slots in &global_data.key_slots.
139
+ *
140
+ * This mutex must be held when any read from or write to a state or
141
+ * registered_readers field is performed, i.e. when calling functions:
142
+ * psa_key_slot_state_transition(), psa_register_read(), psa_unregister_read(),
143
+ * psa_key_slot_has_readers() and psa_wipe_key_slot(). */
144
+ extern mbedtls_threading_mutex_t mbedtls_threading_key_slot_mutex;
145
+
146
+ /*
147
+ * A mutex used to make the non-rng PSA global_data struct members thread safe.
148
+ *
149
+ * This mutex must be held when reading or writing to any of the PSA global_data
150
+ * structure members, other than the rng_state or rng struct. */
151
+ extern mbedtls_threading_mutex_t mbedtls_threading_psa_globaldata_mutex;
152
+
153
+ /*
154
+ * A mutex used to make the PSA global_data rng data thread safe.
155
+ *
156
+ * This mutex must be held when reading or writing to the PSA
157
+ * global_data rng_state or rng struct members. */
158
+ extern mbedtls_threading_mutex_t mbedtls_threading_psa_rngdata_mutex;
159
+ #endif
160
+
161
+ #endif /* MBEDTLS_THREADING_C */
162
+
163
+ #ifdef __cplusplus
164
+ }
165
+ #endif
166
+
167
+ #endif /* threading.h */
@@ -0,0 +1,94 @@
1
+ /**
2
+ * \file timing.h
3
+ *
4
+ * \brief Portable interface to timeouts and to the CPU cycle counter
5
+ */
6
+ /*
7
+ * Copyright The Mbed TLS Contributors
8
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
9
+ */
10
+ #ifndef MBEDTLS_TIMING_H
11
+ #define MBEDTLS_TIMING_H
12
+ #include "mbedtls/private_access.h"
13
+
14
+ #include "mbedtls/build_info.h"
15
+
16
+ #include <stdint.h>
17
+
18
+ #ifdef __cplusplus
19
+ extern "C" {
20
+ #endif
21
+
22
+ #if !defined(MBEDTLS_TIMING_ALT)
23
+ // Regular implementation
24
+ //
25
+
26
+ /**
27
+ * \brief timer structure
28
+ */
29
+ struct mbedtls_timing_hr_time {
30
+ uint64_t MBEDTLS_PRIVATE(opaque)[4];
31
+ };
32
+
33
+ /**
34
+ * \brief Context for mbedtls_timing_set/get_delay()
35
+ */
36
+ typedef struct mbedtls_timing_delay_context {
37
+ struct mbedtls_timing_hr_time MBEDTLS_PRIVATE(timer);
38
+ uint32_t MBEDTLS_PRIVATE(int_ms);
39
+ uint32_t MBEDTLS_PRIVATE(fin_ms);
40
+ } mbedtls_timing_delay_context;
41
+
42
+ #else /* MBEDTLS_TIMING_ALT */
43
+ #include "timing_alt.h"
44
+ #endif /* MBEDTLS_TIMING_ALT */
45
+
46
+ /* Internal use */
47
+ unsigned long mbedtls_timing_get_timer(struct mbedtls_timing_hr_time *val, int reset);
48
+
49
+ /**
50
+ * \brief Set a pair of delays to watch
51
+ * (See \c mbedtls_timing_get_delay().)
52
+ *
53
+ * \param data Pointer to timing data.
54
+ * Must point to a valid \c mbedtls_timing_delay_context struct.
55
+ * \param int_ms First (intermediate) delay in milliseconds.
56
+ * The effect if int_ms > fin_ms is unspecified.
57
+ * \param fin_ms Second (final) delay in milliseconds.
58
+ * Pass 0 to cancel the current delay.
59
+ *
60
+ * \note To set a single delay, either use \c mbedtls_timing_set_timer
61
+ * directly or use this function with int_ms == fin_ms.
62
+ */
63
+ void mbedtls_timing_set_delay(void *data, uint32_t int_ms, uint32_t fin_ms);
64
+
65
+ /**
66
+ * \brief Get the status of delays
67
+ * (Memory helper: number of delays passed.)
68
+ *
69
+ * \param data Pointer to timing data
70
+ * Must point to a valid \c mbedtls_timing_delay_context struct.
71
+ *
72
+ * \return -1 if cancelled (fin_ms = 0),
73
+ * 0 if none of the delays are passed,
74
+ * 1 if only the intermediate delay is passed,
75
+ * 2 if the final delay is passed.
76
+ */
77
+ int mbedtls_timing_get_delay(void *data);
78
+
79
+ /**
80
+ * \brief Get the final timing delay
81
+ *
82
+ * \param data Pointer to timing data
83
+ * Must point to a valid \c mbedtls_timing_delay_context struct.
84
+ *
85
+ * \return Final timing delay in milliseconds.
86
+ */
87
+ uint32_t mbedtls_timing_get_final_delay(
88
+ const mbedtls_timing_delay_context *data);
89
+
90
+ #ifdef __cplusplus
91
+ }
92
+ #endif
93
+
94
+ #endif /* timing.h */
@@ -0,0 +1,78 @@
1
+ /**
2
+ * \file version.h
3
+ *
4
+ * \brief Run-time version information
5
+ */
6
+ /*
7
+ * Copyright The Mbed TLS Contributors
8
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
9
+ */
10
+ /*
11
+ * This set of run-time variables can be used to determine the version number of
12
+ * the Mbed TLS library used. Compile-time version defines for the same can be
13
+ * found in build_info.h
14
+ */
15
+ #ifndef MBEDTLS_VERSION_H
16
+ #define MBEDTLS_VERSION_H
17
+
18
+ #include "mbedtls/build_info.h"
19
+
20
+ #if defined(MBEDTLS_VERSION_C)
21
+
22
+ #ifdef __cplusplus
23
+ extern "C" {
24
+ #endif
25
+
26
+ /**
27
+ * Get the version number.
28
+ *
29
+ * \return The constructed version number in the format
30
+ * MMNNPP00 (Major, Minor, Patch).
31
+ */
32
+ unsigned int mbedtls_version_get_number(void);
33
+
34
+ /**
35
+ * Get the version string ("x.y.z").
36
+ *
37
+ * \param string The string that will receive the value.
38
+ * (Should be at least 9 bytes in size)
39
+ */
40
+ void mbedtls_version_get_string(char *string);
41
+
42
+ /**
43
+ * Get the full version string ("Mbed TLS x.y.z").
44
+ *
45
+ * \param string The string that will receive the value. The Mbed TLS version
46
+ * string will use 18 bytes AT MOST including a terminating
47
+ * null byte.
48
+ * (So the buffer should be at least 18 bytes to receive this
49
+ * version string).
50
+ */
51
+ void mbedtls_version_get_string_full(char *string);
52
+
53
+ /**
54
+ * \brief Check if support for a feature was compiled into this
55
+ * Mbed TLS binary. This allows you to see at runtime if the
56
+ * library was for instance compiled with or without
57
+ * Multi-threading support.
58
+ *
59
+ * \note only checks against defines in the sections "System
60
+ * support", "Mbed TLS modules" and "Mbed TLS feature
61
+ * support" in mbedtls_config.h
62
+ *
63
+ * \param feature The string for the define to check (e.g. "MBEDTLS_AES_C")
64
+ *
65
+ * \return 0 if the feature is present,
66
+ * -1 if the feature is not present and
67
+ * -2 if support for feature checking as a whole was not
68
+ * compiled in.
69
+ */
70
+ int mbedtls_version_check_feature(const char *feature);
71
+
72
+ #ifdef __cplusplus
73
+ }
74
+ #endif
75
+
76
+ #endif /* MBEDTLS_VERSION_C */
77
+
78
+ #endif /* version.h */