@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,36 @@
1
+ /**
2
+ * Constant-time functions
3
+ */
4
+ /*
5
+ * Copyright The Mbed TLS Contributors
6
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
7
+ */
8
+
9
+ #ifndef MBEDTLS_CONSTANT_TIME_H
10
+ #define MBEDTLS_CONSTANT_TIME_H
11
+
12
+ #include <stddef.h>
13
+
14
+ /** Constant-time buffer comparison without branches.
15
+ *
16
+ * This is equivalent to the standard memcmp function, but is likely to be
17
+ * compiled to code using bitwise operations rather than a branch, such that
18
+ * the time taken is constant w.r.t. the data pointed to by \p a and \p b,
19
+ * and w.r.t. whether \p a and \p b are equal or not. It is not constant-time
20
+ * w.r.t. \p n .
21
+ *
22
+ * This function can be used to write constant-time code by replacing branches
23
+ * with bit operations using masks.
24
+ *
25
+ * \param a Pointer to the first buffer, containing at least \p n bytes. May not be NULL.
26
+ * \param b Pointer to the second buffer, containing at least \p n bytes. May not be NULL.
27
+ * \param n The number of bytes to compare.
28
+ *
29
+ * \return Zero if the contents of the two buffers are the same,
30
+ * otherwise non-zero.
31
+ */
32
+ int mbedtls_ct_memcmp(const void *a,
33
+ const void *b,
34
+ size_t n);
35
+
36
+ #endif /* MBEDTLS_CONSTANT_TIME_H */
@@ -0,0 +1,596 @@
1
+ /**
2
+ * \file ctr_drbg.h
3
+ *
4
+ * \brief This file contains definitions and functions for the
5
+ * CTR_DRBG pseudorandom generator.
6
+ *
7
+ * CTR_DRBG is a standardized way of building a PRNG from a block-cipher
8
+ * in counter mode operation, as defined in <em>NIST SP 800-90A:
9
+ * Recommendation for Random Number Generation Using Deterministic Random
10
+ * Bit Generators</em>.
11
+ *
12
+ * The Mbed TLS implementation of CTR_DRBG uses AES-256 (default) or AES-128
13
+ * (if \c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY is enabled at compile time)
14
+ * as the underlying block cipher, with a derivation function.
15
+ *
16
+ * The security strength as defined in NIST SP 800-90A is
17
+ * 128 bits when AES-128 is used (\c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY enabled)
18
+ * and 256 bits otherwise, provided that #MBEDTLS_CTR_DRBG_ENTROPY_LEN is
19
+ * kept at its default value (and not overridden in mbedtls_config.h) and that the
20
+ * DRBG instance is set up with default parameters.
21
+ * See the documentation of mbedtls_ctr_drbg_seed() for more
22
+ * information.
23
+ */
24
+ /*
25
+ * Copyright The Mbed TLS Contributors
26
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
27
+ */
28
+
29
+ #ifndef MBEDTLS_CTR_DRBG_H
30
+ #define MBEDTLS_CTR_DRBG_H
31
+ #include "mbedtls/private_access.h"
32
+
33
+ #include "mbedtls/build_info.h"
34
+
35
+ /* The CTR_DRBG implementation can either directly call the low-level AES
36
+ * module (gated by MBEDTLS_AES_C) or call the PSA API to perform AES
37
+ * operations. Calling the AES module directly is the default, both for
38
+ * maximum backward compatibility and because it's a bit more efficient
39
+ * (less glue code).
40
+ *
41
+ * When MBEDTLS_AES_C is disabled, the CTR_DRBG module calls PSA crypto and
42
+ * thus benefits from the PSA AES accelerator driver.
43
+ * It is technically possible to enable MBEDTLS_CTR_DRBG_USE_PSA_CRYPTO
44
+ * to use PSA even when MBEDTLS_AES_C is enabled, but there is very little
45
+ * reason to do so other than testing purposes and this is not officially
46
+ * supported.
47
+ */
48
+ #if !defined(MBEDTLS_AES_C)
49
+ #define MBEDTLS_CTR_DRBG_USE_PSA_CRYPTO
50
+ #endif
51
+
52
+ #if defined(MBEDTLS_CTR_DRBG_USE_PSA_CRYPTO)
53
+ #include "psa/crypto.h"
54
+ #else
55
+ #include "mbedtls/aes.h"
56
+ #endif
57
+
58
+ #include "entropy.h"
59
+
60
+ #if defined(MBEDTLS_THREADING_C)
61
+ #include "mbedtls/threading.h"
62
+ #endif
63
+
64
+ /** The entropy source failed. */
65
+ #define MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED -0x0034
66
+ /** The requested random buffer length is too big. */
67
+ #define MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG -0x0036
68
+ /** The input (entropy + additional data) is too large. */
69
+ #define MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG -0x0038
70
+ /** Read or write error in file. */
71
+ #define MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR -0x003A
72
+
73
+ #define MBEDTLS_CTR_DRBG_BLOCKSIZE 16 /**< The block size used by the cipher. */
74
+
75
+ #if defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY)
76
+ #define MBEDTLS_CTR_DRBG_KEYSIZE 16
77
+ /**< The key size in bytes used by the cipher.
78
+ *
79
+ * Compile-time choice: 16 bytes (128 bits)
80
+ * because #MBEDTLS_CTR_DRBG_USE_128_BIT_KEY is enabled.
81
+ */
82
+ #else
83
+ #define MBEDTLS_CTR_DRBG_KEYSIZE 32
84
+ /**< The key size in bytes used by the cipher.
85
+ *
86
+ * Compile-time choice: 32 bytes (256 bits)
87
+ * because \c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY is disabled.
88
+ */
89
+ #endif
90
+
91
+ #define MBEDTLS_CTR_DRBG_KEYBITS (MBEDTLS_CTR_DRBG_KEYSIZE * 8) /**< The key size for the DRBG operation, in bits. */
92
+ #define MBEDTLS_CTR_DRBG_SEEDLEN (MBEDTLS_CTR_DRBG_KEYSIZE + MBEDTLS_CTR_DRBG_BLOCKSIZE) /**< The seed length, calculated as (counter + AES key). */
93
+
94
+ /**
95
+ * \name SECTION: Module settings
96
+ *
97
+ * The configuration options you can set for this module are in this section.
98
+ * Either change them in mbedtls_config.h or define them using the compiler command
99
+ * line.
100
+ * \{
101
+ */
102
+
103
+ /** \def MBEDTLS_CTR_DRBG_ENTROPY_LEN
104
+ *
105
+ * \brief The amount of entropy used per seed by default, in bytes.
106
+ */
107
+ #if !defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN)
108
+ #if defined(MBEDTLS_ENTROPY_SHA512_ACCUMULATOR)
109
+ /** This is 48 bytes because the entropy module uses SHA-512.
110
+ */
111
+ #define MBEDTLS_CTR_DRBG_ENTROPY_LEN 48
112
+
113
+ #else /* MBEDTLS_ENTROPY_SHA512_ACCUMULATOR */
114
+
115
+ /** This is 32 bytes because the entropy module uses SHA-256.
116
+ */
117
+ #if !defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY)
118
+ /** \warning To achieve a 256-bit security strength, you must pass a nonce
119
+ * to mbedtls_ctr_drbg_seed().
120
+ */
121
+ #endif /* !defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY) */
122
+ #define MBEDTLS_CTR_DRBG_ENTROPY_LEN 32
123
+ #endif /* MBEDTLS_ENTROPY_SHA512_ACCUMULATOR */
124
+ #endif /* !defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) */
125
+
126
+ #if !defined(MBEDTLS_CTR_DRBG_RESEED_INTERVAL)
127
+ #define MBEDTLS_CTR_DRBG_RESEED_INTERVAL 10000
128
+ /**< The interval before reseed is performed by default. */
129
+ #endif
130
+
131
+ #if !defined(MBEDTLS_CTR_DRBG_MAX_INPUT)
132
+ #define MBEDTLS_CTR_DRBG_MAX_INPUT 256
133
+ /**< The maximum number of additional input Bytes. */
134
+ #endif
135
+
136
+ #if !defined(MBEDTLS_CTR_DRBG_MAX_REQUEST)
137
+ #define MBEDTLS_CTR_DRBG_MAX_REQUEST 1024
138
+ /**< The maximum number of requested Bytes per call. */
139
+ #endif
140
+
141
+ #if !defined(MBEDTLS_CTR_DRBG_MAX_SEED_INPUT)
142
+ #define MBEDTLS_CTR_DRBG_MAX_SEED_INPUT 384
143
+ /**< The maximum size of seed or reseed buffer in bytes. */
144
+ #endif
145
+
146
+ /** \} name SECTION: Module settings */
147
+
148
+ #define MBEDTLS_CTR_DRBG_PR_OFF 0
149
+ /**< Prediction resistance is disabled. */
150
+ #define MBEDTLS_CTR_DRBG_PR_ON 1
151
+ /**< Prediction resistance is enabled. */
152
+
153
+ #ifdef __cplusplus
154
+ extern "C" {
155
+ #endif
156
+
157
+ #if MBEDTLS_CTR_DRBG_ENTROPY_LEN >= MBEDTLS_CTR_DRBG_KEYSIZE * 3 / 2
158
+ /** The default length of the nonce read from the entropy source.
159
+ *
160
+ * This is \c 0 because a single read from the entropy source is sufficient
161
+ * to include a nonce.
162
+ * See the documentation of mbedtls_ctr_drbg_seed() for more information.
163
+ */
164
+ #define MBEDTLS_CTR_DRBG_ENTROPY_NONCE_LEN 0
165
+ #else
166
+ /** The default length of the nonce read from the entropy source.
167
+ *
168
+ * This is half of the default entropy length because a single read from
169
+ * the entropy source does not provide enough material to form a nonce.
170
+ * See the documentation of mbedtls_ctr_drbg_seed() for more information.
171
+ */
172
+ #define MBEDTLS_CTR_DRBG_ENTROPY_NONCE_LEN (MBEDTLS_CTR_DRBG_ENTROPY_LEN + 1) / 2
173
+ #endif
174
+
175
+ #if defined(MBEDTLS_CTR_DRBG_USE_PSA_CRYPTO)
176
+ typedef struct mbedtls_ctr_drbg_psa_context {
177
+ mbedtls_svc_key_id_t key_id;
178
+ psa_cipher_operation_t operation;
179
+ } mbedtls_ctr_drbg_psa_context;
180
+ #endif
181
+
182
+ /**
183
+ * \brief The CTR_DRBG context structure.
184
+ */
185
+ typedef struct mbedtls_ctr_drbg_context {
186
+ unsigned char MBEDTLS_PRIVATE(counter)[16]; /*!< The counter (V). */
187
+ int MBEDTLS_PRIVATE(reseed_counter); /*!< The reseed counter.
188
+ * This is the number of requests that have
189
+ * been made since the last (re)seeding.
190
+ * Before the initial seeding, this field
191
+ * contains the amount of entropy in bytes
192
+ * to use as a nonce for the initial seeding,
193
+ * or -1 if no nonce length has been explicitly
194
+ * set (see mbedtls_ctr_drbg_set_nonce_len()).
195
+ */
196
+ int MBEDTLS_PRIVATE(prediction_resistance); /*!< This determines whether prediction
197
+ resistance is enabled, that is
198
+ whether to systematically reseed before
199
+ each random generation. */
200
+ size_t MBEDTLS_PRIVATE(entropy_len); /*!< The amount of entropy grabbed on each
201
+ seed or reseed operation, in bytes. */
202
+ int MBEDTLS_PRIVATE(reseed_interval); /*!< The reseed interval.
203
+ * This is the maximum number of requests
204
+ * that can be made between reseedings. */
205
+
206
+ #if defined(MBEDTLS_CTR_DRBG_USE_PSA_CRYPTO)
207
+ mbedtls_ctr_drbg_psa_context MBEDTLS_PRIVATE(psa_ctx); /*!< The PSA context. */
208
+ #else
209
+ mbedtls_aes_context MBEDTLS_PRIVATE(aes_ctx); /*!< The AES context. */
210
+ #endif
211
+
212
+ /*
213
+ * Callbacks (Entropy)
214
+ */
215
+ int(*MBEDTLS_PRIVATE(f_entropy))(void *, unsigned char *, size_t);
216
+ /*!< The entropy callback function. */
217
+
218
+ void *MBEDTLS_PRIVATE(p_entropy); /*!< The context for the entropy function. */
219
+
220
+ #if defined(MBEDTLS_THREADING_C)
221
+ /* Invariant: the mutex is initialized if and only if f_entropy != NULL.
222
+ * This means that the mutex is initialized during the initial seeding
223
+ * in mbedtls_ctr_drbg_seed() and freed in mbedtls_ctr_drbg_free().
224
+ *
225
+ * Note that this invariant may change without notice. Do not rely on it
226
+ * and do not access the mutex directly in application code.
227
+ */
228
+ mbedtls_threading_mutex_t MBEDTLS_PRIVATE(mutex);
229
+ #endif
230
+ }
231
+ mbedtls_ctr_drbg_context;
232
+
233
+ /**
234
+ * \brief This function initializes the CTR_DRBG context,
235
+ * and prepares it for mbedtls_ctr_drbg_seed()
236
+ * or mbedtls_ctr_drbg_free().
237
+ *
238
+ * \note The reseed interval is
239
+ * #MBEDTLS_CTR_DRBG_RESEED_INTERVAL by default.
240
+ * You can override it by calling
241
+ * mbedtls_ctr_drbg_set_reseed_interval().
242
+ *
243
+ * \param ctx The CTR_DRBG context to initialize.
244
+ */
245
+ void mbedtls_ctr_drbg_init(mbedtls_ctr_drbg_context *ctx);
246
+
247
+ /**
248
+ * \brief This function seeds and sets up the CTR_DRBG
249
+ * entropy source for future reseeds.
250
+ *
251
+ * A typical choice for the \p f_entropy and \p p_entropy parameters is
252
+ * to use the entropy module:
253
+ * - \p f_entropy is mbedtls_entropy_func();
254
+ * - \p p_entropy is an instance of ::mbedtls_entropy_context initialized
255
+ * with mbedtls_entropy_init() (which registers the platform's default
256
+ * entropy sources).
257
+ *
258
+ * The entropy length is #MBEDTLS_CTR_DRBG_ENTROPY_LEN by default.
259
+ * You can override it by calling mbedtls_ctr_drbg_set_entropy_len().
260
+ *
261
+ * The entropy nonce length is:
262
+ * - \c 0 if the entropy length is at least 3/2 times the entropy length,
263
+ * which guarantees that the security strength is the maximum permitted
264
+ * by the key size and entropy length according to NIST SP 800-90A §10.2.1;
265
+ * - Half the entropy length otherwise.
266
+ * You can override it by calling mbedtls_ctr_drbg_set_nonce_len().
267
+ * With the default entropy length, the entropy nonce length is
268
+ * #MBEDTLS_CTR_DRBG_ENTROPY_NONCE_LEN.
269
+ *
270
+ * You can provide a nonce and personalization string in addition to the
271
+ * entropy source, to make this instantiation as unique as possible.
272
+ * See SP 800-90A §8.6.7 for more details about nonces.
273
+ *
274
+ * The _seed_material_ value passed to the derivation function in
275
+ * the CTR_DRBG Instantiate Process described in NIST SP 800-90A §10.2.1.3.2
276
+ * is the concatenation of the following strings:
277
+ * - A string obtained by calling \p f_entropy function for the entropy
278
+ * length.
279
+ */
280
+ #if MBEDTLS_CTR_DRBG_ENTROPY_NONCE_LEN == 0
281
+ /**
282
+ * - If mbedtls_ctr_drbg_set_nonce_len() has been called, a string
283
+ * obtained by calling \p f_entropy function for the specified length.
284
+ */
285
+ #else
286
+ /**
287
+ * - A string obtained by calling \p f_entropy function for the entropy nonce
288
+ * length. If the entropy nonce length is \c 0, this function does not
289
+ * make a second call to \p f_entropy.
290
+ */
291
+ #endif
292
+ #if defined(MBEDTLS_THREADING_C)
293
+ /**
294
+ * \note When Mbed TLS is built with threading support,
295
+ * after this function returns successfully,
296
+ * it is safe to call mbedtls_ctr_drbg_random()
297
+ * from multiple threads. Other operations, including
298
+ * reseeding, are not thread-safe.
299
+ */
300
+ #endif /* MBEDTLS_THREADING_C */
301
+ /**
302
+ * - The \p custom string.
303
+ *
304
+ * \note To achieve the nominal security strength permitted
305
+ * by CTR_DRBG, the entropy length must be:
306
+ * - at least 16 bytes for a 128-bit strength
307
+ * (maximum achievable strength when using AES-128);
308
+ * - at least 32 bytes for a 256-bit strength
309
+ * (maximum achievable strength when using AES-256).
310
+ *
311
+ * In addition, if you do not pass a nonce in \p custom,
312
+ * the sum of the entropy length
313
+ * and the entropy nonce length must be:
314
+ * - at least 24 bytes for a 128-bit strength
315
+ * (maximum achievable strength when using AES-128);
316
+ * - at least 48 bytes for a 256-bit strength
317
+ * (maximum achievable strength when using AES-256).
318
+ *
319
+ * \param ctx The CTR_DRBG context to seed.
320
+ * It must have been initialized with
321
+ * mbedtls_ctr_drbg_init().
322
+ * After a successful call to mbedtls_ctr_drbg_seed(),
323
+ * you may not call mbedtls_ctr_drbg_seed() again on
324
+ * the same context unless you call
325
+ * mbedtls_ctr_drbg_free() and mbedtls_ctr_drbg_init()
326
+ * again first.
327
+ * After a failed call to mbedtls_ctr_drbg_seed(),
328
+ * you must call mbedtls_ctr_drbg_free().
329
+ * \param f_entropy The entropy callback, taking as arguments the
330
+ * \p p_entropy context, the buffer to fill, and the
331
+ * length of the buffer.
332
+ * \p f_entropy is always called with a buffer size
333
+ * less than or equal to the entropy length.
334
+ * \param p_entropy The entropy context to pass to \p f_entropy.
335
+ * \param custom The personalization string.
336
+ * This can be \c NULL, in which case the personalization
337
+ * string is empty regardless of the value of \p len.
338
+ * \param len The length of the personalization string.
339
+ * This must be at most
340
+ * #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT
341
+ * - #MBEDTLS_CTR_DRBG_ENTROPY_LEN.
342
+ *
343
+ * \return \c 0 on success.
344
+ * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED on failure.
345
+ */
346
+ int mbedtls_ctr_drbg_seed(mbedtls_ctr_drbg_context *ctx,
347
+ int (*f_entropy)(void *, unsigned char *, size_t),
348
+ void *p_entropy,
349
+ const unsigned char *custom,
350
+ size_t len);
351
+
352
+ /**
353
+ * \brief This function resets CTR_DRBG context to the state immediately
354
+ * after initial call of mbedtls_ctr_drbg_init().
355
+ *
356
+ * \param ctx The CTR_DRBG context to clear.
357
+ */
358
+ void mbedtls_ctr_drbg_free(mbedtls_ctr_drbg_context *ctx);
359
+
360
+ /**
361
+ * \brief This function turns prediction resistance on or off.
362
+ * The default value is off.
363
+ *
364
+ * \note If enabled, entropy is gathered at the beginning of
365
+ * every call to mbedtls_ctr_drbg_random_with_add()
366
+ * or mbedtls_ctr_drbg_random().
367
+ * Only use this if your entropy source has sufficient
368
+ * throughput.
369
+ *
370
+ * \param ctx The CTR_DRBG context.
371
+ * \param resistance #MBEDTLS_CTR_DRBG_PR_ON or #MBEDTLS_CTR_DRBG_PR_OFF.
372
+ */
373
+ void mbedtls_ctr_drbg_set_prediction_resistance(mbedtls_ctr_drbg_context *ctx,
374
+ int resistance);
375
+
376
+ /**
377
+ * \brief This function sets the amount of entropy grabbed on each
378
+ * seed or reseed.
379
+ *
380
+ * The default value is #MBEDTLS_CTR_DRBG_ENTROPY_LEN.
381
+ *
382
+ * \note The security strength of CTR_DRBG is bounded by the
383
+ * entropy length. Thus:
384
+ * - When using AES-256
385
+ * (\c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY is disabled,
386
+ * which is the default),
387
+ * \p len must be at least 32 (in bytes)
388
+ * to achieve a 256-bit strength.
389
+ * - When using AES-128
390
+ * (\c MBEDTLS_CTR_DRBG_USE_128_BIT_KEY is enabled)
391
+ * \p len must be at least 16 (in bytes)
392
+ * to achieve a 128-bit strength.
393
+ *
394
+ * \param ctx The CTR_DRBG context.
395
+ * \param len The amount of entropy to grab, in bytes.
396
+ * This must be at most #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT
397
+ * and at most the maximum length accepted by the
398
+ * entropy function that is set in the context.
399
+ */
400
+ void mbedtls_ctr_drbg_set_entropy_len(mbedtls_ctr_drbg_context *ctx,
401
+ size_t len);
402
+
403
+ /**
404
+ * \brief This function sets the amount of entropy grabbed
405
+ * as a nonce for the initial seeding.
406
+ *
407
+ * Call this function before calling mbedtls_ctr_drbg_seed() to read
408
+ * a nonce from the entropy source during the initial seeding.
409
+ *
410
+ * \param ctx The CTR_DRBG context.
411
+ * \param len The amount of entropy to grab for the nonce, in bytes.
412
+ * This must be at most #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT
413
+ * and at most the maximum length accepted by the
414
+ * entropy function that is set in the context.
415
+ *
416
+ * \return \c 0 on success.
417
+ * \return #MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG if \p len is
418
+ * more than #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT.
419
+ * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED
420
+ * if the initial seeding has already taken place.
421
+ */
422
+ int mbedtls_ctr_drbg_set_nonce_len(mbedtls_ctr_drbg_context *ctx,
423
+ size_t len);
424
+
425
+ /**
426
+ * \brief This function sets the reseed interval.
427
+ *
428
+ * The reseed interval is the number of calls to mbedtls_ctr_drbg_random()
429
+ * or mbedtls_ctr_drbg_random_with_add() after which the entropy function
430
+ * is called again.
431
+ *
432
+ * The default value is #MBEDTLS_CTR_DRBG_RESEED_INTERVAL.
433
+ *
434
+ * \param ctx The CTR_DRBG context.
435
+ * \param interval The reseed interval.
436
+ */
437
+ void mbedtls_ctr_drbg_set_reseed_interval(mbedtls_ctr_drbg_context *ctx,
438
+ int interval);
439
+
440
+ /**
441
+ * \brief This function reseeds the CTR_DRBG context, that is
442
+ * extracts data from the entropy source.
443
+ *
444
+ * \note This function is not thread-safe. It is not safe
445
+ * to call this function if another thread might be
446
+ * concurrently obtaining random numbers from the same
447
+ * context or updating or reseeding the same context.
448
+ *
449
+ * \param ctx The CTR_DRBG context.
450
+ * \param additional Additional data to add to the state. Can be \c NULL.
451
+ * \param len The length of the additional data.
452
+ * This must be less than
453
+ * #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT - \c entropy_len
454
+ * where \c entropy_len is the entropy length
455
+ * configured for the context.
456
+ *
457
+ * \return \c 0 on success.
458
+ * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED on failure.
459
+ */
460
+ int mbedtls_ctr_drbg_reseed(mbedtls_ctr_drbg_context *ctx,
461
+ const unsigned char *additional, size_t len);
462
+
463
+ /**
464
+ * \brief This function updates the state of the CTR_DRBG context.
465
+ *
466
+ * \note This function is not thread-safe. It is not safe
467
+ * to call this function if another thread might be
468
+ * concurrently obtaining random numbers from the same
469
+ * context or updating or reseeding the same context.
470
+ *
471
+ * \param ctx The CTR_DRBG context.
472
+ * \param additional The data to update the state with. This must not be
473
+ * \c NULL unless \p add_len is \c 0.
474
+ * \param add_len Length of \p additional in bytes. This must be at
475
+ * most #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT.
476
+ *
477
+ * \return \c 0 on success.
478
+ * \return #MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG if
479
+ * \p add_len is more than
480
+ * #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT.
481
+ * \return An error from the underlying AES cipher on failure.
482
+ */
483
+ int mbedtls_ctr_drbg_update(mbedtls_ctr_drbg_context *ctx,
484
+ const unsigned char *additional,
485
+ size_t add_len);
486
+
487
+ /**
488
+ * \brief This function updates a CTR_DRBG instance with additional
489
+ * data and uses it to generate random data.
490
+ *
491
+ * This function automatically reseeds if the reseed counter is exceeded
492
+ * or prediction resistance is enabled.
493
+ *
494
+ * \note This function is not thread-safe. It is not safe
495
+ * to call this function if another thread might be
496
+ * concurrently obtaining random numbers from the same
497
+ * context or updating or reseeding the same context.
498
+ *
499
+ * \param p_rng The CTR_DRBG context. This must be a pointer to a
500
+ * #mbedtls_ctr_drbg_context structure.
501
+ * \param output The buffer to fill.
502
+ * \param output_len The length of the buffer in bytes.
503
+ * \param additional Additional data to update. Can be \c NULL, in which
504
+ * case the additional data is empty regardless of
505
+ * the value of \p add_len.
506
+ * \param add_len The length of the additional data
507
+ * if \p additional is not \c NULL.
508
+ * This must be less than #MBEDTLS_CTR_DRBG_MAX_INPUT
509
+ * and less than
510
+ * #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT - \c entropy_len
511
+ * where \c entropy_len is the entropy length
512
+ * configured for the context.
513
+ *
514
+ * \return \c 0 on success.
515
+ * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED or
516
+ * #MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG on failure.
517
+ */
518
+ int mbedtls_ctr_drbg_random_with_add(void *p_rng,
519
+ unsigned char *output, size_t output_len,
520
+ const unsigned char *additional, size_t add_len);
521
+
522
+ /**
523
+ * \brief This function uses CTR_DRBG to generate random data.
524
+ *
525
+ * This function automatically reseeds if the reseed counter is exceeded
526
+ * or prediction resistance is enabled.
527
+ */
528
+ #if defined(MBEDTLS_THREADING_C)
529
+ /**
530
+ * \note When Mbed TLS is built with threading support,
531
+ * it is safe to call mbedtls_ctr_drbg_random()
532
+ * from multiple threads. Other operations, including
533
+ * reseeding, are not thread-safe.
534
+ */
535
+ #endif /* MBEDTLS_THREADING_C */
536
+ /**
537
+ * \param p_rng The CTR_DRBG context. This must be a pointer to a
538
+ * #mbedtls_ctr_drbg_context structure.
539
+ * \param output The buffer to fill.
540
+ * \param output_len The length of the buffer in bytes.
541
+ *
542
+ * \return \c 0 on success.
543
+ * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED or
544
+ * #MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG on failure.
545
+ */
546
+ int mbedtls_ctr_drbg_random(void *p_rng,
547
+ unsigned char *output, size_t output_len);
548
+
549
+ #if defined(MBEDTLS_FS_IO)
550
+ /**
551
+ * \brief This function writes a seed file.
552
+ *
553
+ * \param ctx The CTR_DRBG context.
554
+ * \param path The name of the file.
555
+ *
556
+ * \return \c 0 on success.
557
+ * \return #MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR on file error.
558
+ * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED on reseed
559
+ * failure.
560
+ */
561
+ int mbedtls_ctr_drbg_write_seed_file(mbedtls_ctr_drbg_context *ctx, const char *path);
562
+
563
+ /**
564
+ * \brief This function reads and updates a seed file. The seed
565
+ * is added to this instance.
566
+ *
567
+ * \param ctx The CTR_DRBG context.
568
+ * \param path The name of the file.
569
+ *
570
+ * \return \c 0 on success.
571
+ * \return #MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR on file error.
572
+ * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED on
573
+ * reseed failure.
574
+ * \return #MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG if the existing
575
+ * seed file is too large.
576
+ */
577
+ int mbedtls_ctr_drbg_update_seed_file(mbedtls_ctr_drbg_context *ctx, const char *path);
578
+ #endif /* MBEDTLS_FS_IO */
579
+
580
+ #if defined(MBEDTLS_SELF_TEST)
581
+
582
+ /**
583
+ * \brief The CTR_DRBG checkup routine.
584
+ *
585
+ * \return \c 0 on success.
586
+ * \return \c 1 on failure.
587
+ */
588
+ int mbedtls_ctr_drbg_self_test(int verbose);
589
+
590
+ #endif /* MBEDTLS_SELF_TEST */
591
+
592
+ #ifdef __cplusplus
593
+ }
594
+ #endif
595
+
596
+ #endif /* ctr_drbg.h */