@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,387 @@
1
+ /**
2
+ * \file gcm.h
3
+ *
4
+ * \brief This file contains GCM definitions and functions.
5
+ *
6
+ * The Galois/Counter Mode (GCM) for 128-bit block ciphers is defined
7
+ * in <em>D. McGrew, J. Viega, The Galois/Counter Mode of Operation
8
+ * (GCM), Natl. Inst. Stand. Technol.</em>
9
+ *
10
+ * For more information on GCM, see <em>NIST SP 800-38D: Recommendation for
11
+ * Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC</em>.
12
+ *
13
+ */
14
+ /*
15
+ * Copyright The Mbed TLS Contributors
16
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
17
+ */
18
+
19
+ #ifndef MBEDTLS_GCM_H
20
+ #define MBEDTLS_GCM_H
21
+ #include "mbedtls/private_access.h"
22
+
23
+ #include "mbedtls/build_info.h"
24
+
25
+ #include "mbedtls/cipher.h"
26
+
27
+ #if defined(MBEDTLS_BLOCK_CIPHER_C)
28
+ #include "mbedtls/block_cipher.h"
29
+ #endif
30
+
31
+ #include <stdint.h>
32
+
33
+ #define MBEDTLS_GCM_ENCRYPT 1
34
+ #define MBEDTLS_GCM_DECRYPT 0
35
+
36
+ /** Authenticated decryption failed. */
37
+ #define MBEDTLS_ERR_GCM_AUTH_FAILED -0x0012
38
+ /** Bad input parameters to function. */
39
+ #define MBEDTLS_ERR_GCM_BAD_INPUT -0x0014
40
+ /** An output buffer is too small. */
41
+ #define MBEDTLS_ERR_GCM_BUFFER_TOO_SMALL -0x0016
42
+
43
+ #ifdef __cplusplus
44
+ extern "C" {
45
+ #endif
46
+
47
+ #if !defined(MBEDTLS_GCM_ALT)
48
+
49
+ #if defined(MBEDTLS_GCM_LARGE_TABLE)
50
+ #define MBEDTLS_GCM_HTABLE_SIZE 256
51
+ #else
52
+ #define MBEDTLS_GCM_HTABLE_SIZE 16
53
+ #endif
54
+
55
+ /**
56
+ * \brief The GCM context structure.
57
+ */
58
+ typedef struct mbedtls_gcm_context {
59
+ #if defined(MBEDTLS_BLOCK_CIPHER_C)
60
+ mbedtls_block_cipher_context_t MBEDTLS_PRIVATE(block_cipher_ctx); /*!< The cipher context used. */
61
+ #else
62
+ mbedtls_cipher_context_t MBEDTLS_PRIVATE(cipher_ctx); /*!< The cipher context used. */
63
+ #endif
64
+ uint64_t MBEDTLS_PRIVATE(H)[MBEDTLS_GCM_HTABLE_SIZE][2]; /*!< Precalculated HTable. */
65
+ uint64_t MBEDTLS_PRIVATE(len); /*!< The total length of the encrypted data. */
66
+ uint64_t MBEDTLS_PRIVATE(add_len); /*!< The total length of the additional data. */
67
+ unsigned char MBEDTLS_PRIVATE(base_ectr)[16]; /*!< The first ECTR for tag. */
68
+ unsigned char MBEDTLS_PRIVATE(y)[16]; /*!< The Y working value. */
69
+ unsigned char MBEDTLS_PRIVATE(buf)[16]; /*!< The buf working value. */
70
+ unsigned char MBEDTLS_PRIVATE(mode); /*!< The operation to perform:
71
+ #MBEDTLS_GCM_ENCRYPT or
72
+ #MBEDTLS_GCM_DECRYPT. */
73
+ unsigned char MBEDTLS_PRIVATE(acceleration); /*!< The acceleration to use. */
74
+ }
75
+ mbedtls_gcm_context;
76
+
77
+ #else /* !MBEDTLS_GCM_ALT */
78
+ #include "gcm_alt.h"
79
+ #endif /* !MBEDTLS_GCM_ALT */
80
+
81
+ /**
82
+ * \brief This function initializes the specified GCM context,
83
+ * to make references valid, and prepares the context
84
+ * for mbedtls_gcm_setkey() or mbedtls_gcm_free().
85
+ *
86
+ * The function does not bind the GCM context to a particular
87
+ * cipher, nor set the key. For this purpose, use
88
+ * mbedtls_gcm_setkey().
89
+ *
90
+ * \param ctx The GCM context to initialize. This must not be \c NULL.
91
+ */
92
+ void mbedtls_gcm_init(mbedtls_gcm_context *ctx);
93
+
94
+ /**
95
+ * \brief This function associates a GCM context with a
96
+ * cipher algorithm and a key.
97
+ *
98
+ * \param ctx The GCM context. This must be initialized.
99
+ * \param cipher The 128-bit block cipher to use.
100
+ * \param key The encryption key. This must be a readable buffer of at
101
+ * least \p keybits bits.
102
+ * \param keybits The key size in bits. Valid options are:
103
+ * <ul><li>128 bits</li>
104
+ * <li>192 bits</li>
105
+ * <li>256 bits</li></ul>
106
+ *
107
+ * \return \c 0 on success.
108
+ * \return A cipher-specific error code on failure.
109
+ */
110
+ int mbedtls_gcm_setkey(mbedtls_gcm_context *ctx,
111
+ mbedtls_cipher_id_t cipher,
112
+ const unsigned char *key,
113
+ unsigned int keybits);
114
+
115
+ /**
116
+ * \brief This function performs GCM encryption or decryption of a buffer.
117
+ *
118
+ * \note The output buffer \p output can be the same as the input
119
+ * buffer \p input. If \p output is greater than \p input, they
120
+ * cannot overlap.
121
+ *
122
+ * \warning When this function performs a decryption, it outputs the
123
+ * authentication tag and does not verify that the data is
124
+ * authentic. You should use this function to perform encryption
125
+ * only. For decryption, use mbedtls_gcm_auth_decrypt() instead.
126
+ *
127
+ * \param ctx The GCM context to use for encryption or decryption. This
128
+ * must be initialized.
129
+ * \param mode The operation to perform:
130
+ * - #MBEDTLS_GCM_ENCRYPT to perform authenticated encryption.
131
+ * The ciphertext is written to \p output and the
132
+ * authentication tag is written to \p tag.
133
+ * - #MBEDTLS_GCM_DECRYPT to perform decryption.
134
+ * The plaintext is written to \p output and the
135
+ * authentication tag is written to \p tag.
136
+ * Note that this mode is not recommended, because it does
137
+ * not verify the authenticity of the data. For this reason,
138
+ * you should use mbedtls_gcm_auth_decrypt() instead of
139
+ * calling this function in decryption mode.
140
+ * \param length The length of the input data, which is equal to the length
141
+ * of the output data.
142
+ * \param iv The initialization vector. This must be a readable buffer of
143
+ * at least \p iv_len Bytes.
144
+ * \param iv_len The length of the IV.
145
+ * \param add The buffer holding the additional data. This must be of at
146
+ * least that size in Bytes.
147
+ * \param add_len The length of the additional data.
148
+ * \param input The buffer holding the input data. If \p length is greater
149
+ * than zero, this must be a readable buffer of at least that
150
+ * size in Bytes.
151
+ * \param output The buffer for holding the output data. If \p length is greater
152
+ * than zero, this must be a writable buffer of at least that
153
+ * size in Bytes.
154
+ * \param tag_len The length of the tag to generate.
155
+ * \param tag The buffer for holding the tag. This must be a writable
156
+ * buffer of at least \p tag_len Bytes.
157
+ *
158
+ * \return \c 0 if the encryption or decryption was performed
159
+ * successfully. Note that in #MBEDTLS_GCM_DECRYPT mode,
160
+ * this does not indicate that the data is authentic.
161
+ * \return #MBEDTLS_ERR_GCM_BAD_INPUT if the lengths or pointers are
162
+ * not valid or a cipher-specific error code if the encryption
163
+ * or decryption failed.
164
+ */
165
+ int mbedtls_gcm_crypt_and_tag(mbedtls_gcm_context *ctx,
166
+ int mode,
167
+ size_t length,
168
+ const unsigned char *iv,
169
+ size_t iv_len,
170
+ const unsigned char *add,
171
+ size_t add_len,
172
+ const unsigned char *input,
173
+ unsigned char *output,
174
+ size_t tag_len,
175
+ unsigned char *tag);
176
+
177
+ /**
178
+ * \brief This function performs a GCM authenticated decryption of a
179
+ * buffer.
180
+ *
181
+ * \note The output buffer \p output can be the same as the input
182
+ * buffer \p input. If \p output is greater than \p input, they
183
+ * cannot overlap. Implementations which require
184
+ * MBEDTLS_GCM_ALT to be enabled may not provide support for
185
+ * overlapping buffers.
186
+ *
187
+ * \param ctx The GCM context. This must be initialized.
188
+ * \param length The length of the ciphertext to decrypt, which is also
189
+ * the length of the decrypted plaintext.
190
+ * \param iv The initialization vector. This must be a readable buffer
191
+ * of at least \p iv_len Bytes.
192
+ * \param iv_len The length of the IV.
193
+ * \param add The buffer holding the additional data. This must be of at
194
+ * least that size in Bytes.
195
+ * \param add_len The length of the additional data.
196
+ * \param tag The buffer holding the tag to verify. This must be a
197
+ * readable buffer of at least \p tag_len Bytes.
198
+ * \param tag_len The length of the tag to verify.
199
+ * \param input The buffer holding the ciphertext. If \p length is greater
200
+ * than zero, this must be a readable buffer of at least that
201
+ * size.
202
+ * \param output The buffer for holding the decrypted plaintext. If \p length
203
+ * is greater than zero, this must be a writable buffer of at
204
+ * least that size.
205
+ *
206
+ * \return \c 0 if successful and authenticated.
207
+ * \return #MBEDTLS_ERR_GCM_AUTH_FAILED if the tag does not match.
208
+ * \return #MBEDTLS_ERR_GCM_BAD_INPUT if the lengths or pointers are
209
+ * not valid or a cipher-specific error code if the decryption
210
+ * failed.
211
+ */
212
+ int mbedtls_gcm_auth_decrypt(mbedtls_gcm_context *ctx,
213
+ size_t length,
214
+ const unsigned char *iv,
215
+ size_t iv_len,
216
+ const unsigned char *add,
217
+ size_t add_len,
218
+ const unsigned char *tag,
219
+ size_t tag_len,
220
+ const unsigned char *input,
221
+ unsigned char *output);
222
+
223
+ /**
224
+ * \brief This function starts a GCM encryption or decryption
225
+ * operation.
226
+ *
227
+ * \param ctx The GCM context. This must be initialized.
228
+ * \param mode The operation to perform: #MBEDTLS_GCM_ENCRYPT or
229
+ * #MBEDTLS_GCM_DECRYPT.
230
+ * \param iv The initialization vector. This must be a readable buffer of
231
+ * at least \p iv_len Bytes.
232
+ * \param iv_len The length of the IV.
233
+ *
234
+ * \return \c 0 on success.
235
+ */
236
+ int mbedtls_gcm_starts(mbedtls_gcm_context *ctx,
237
+ int mode,
238
+ const unsigned char *iv,
239
+ size_t iv_len);
240
+
241
+ /**
242
+ * \brief This function feeds an input buffer as associated data
243
+ * (authenticated but not encrypted data) in a GCM
244
+ * encryption or decryption operation.
245
+ *
246
+ * Call this function after mbedtls_gcm_starts() to pass
247
+ * the associated data. If the associated data is empty,
248
+ * you do not need to call this function. You may not
249
+ * call this function after calling mbedtls_cipher_update().
250
+ *
251
+ * \param ctx The GCM context. This must have been started with
252
+ * mbedtls_gcm_starts() and must not have yet received
253
+ * any input with mbedtls_gcm_update().
254
+ * \param add The buffer holding the additional data, or \c NULL
255
+ * if \p add_len is \c 0.
256
+ * \param add_len The length of the additional data. If \c 0,
257
+ * \p add may be \c NULL.
258
+ *
259
+ * \return \c 0 on success.
260
+ */
261
+ int mbedtls_gcm_update_ad(mbedtls_gcm_context *ctx,
262
+ const unsigned char *add,
263
+ size_t add_len);
264
+
265
+ /**
266
+ * \brief This function feeds an input buffer into an ongoing GCM
267
+ * encryption or decryption operation.
268
+ *
269
+ * You may call this function zero, one or more times
270
+ * to pass successive parts of the input: the plaintext to
271
+ * encrypt, or the ciphertext (not including the tag) to
272
+ * decrypt. After the last part of the input, call
273
+ * mbedtls_gcm_finish().
274
+ *
275
+ * This function may produce output in one of the following
276
+ * ways:
277
+ * - Immediate output: the output length is always equal
278
+ * to the input length.
279
+ * - Buffered output: the output consists of a whole number
280
+ * of 16-byte blocks. If the total input length so far
281
+ * (not including associated data) is 16 \* *B* + *A*
282
+ * with *A* < 16 then the total output length is 16 \* *B*.
283
+ *
284
+ * In particular:
285
+ * - It is always correct to call this function with
286
+ * \p output_size >= \p input_length + 15.
287
+ * - If \p input_length is a multiple of 16 for all the calls
288
+ * to this function during an operation, then it is
289
+ * correct to use \p output_size = \p input_length.
290
+ *
291
+ * \note The output buffer \p output can be the same as the input
292
+ * buffer \p input. If \p output is greater than \p input, they
293
+ * cannot overlap. Implementations which require
294
+ * MBEDTLS_GCM_ALT to be enabled may not provide support for
295
+ * overlapping buffers.
296
+ *
297
+ * \param ctx The GCM context. This must be initialized.
298
+ * \param input The buffer holding the input data. If \p input_length
299
+ * is greater than zero, this must be a readable buffer
300
+ * of at least \p input_length bytes.
301
+ * \param input_length The length of the input data in bytes.
302
+ * \param output The buffer for the output data. If \p output_size
303
+ * is greater than zero, this must be a writable buffer of
304
+ * of at least \p output_size bytes.
305
+ * \param output_size The size of the output buffer in bytes.
306
+ * See the function description regarding the output size.
307
+ * \param output_length On success, \p *output_length contains the actual
308
+ * length of the output written in \p output.
309
+ * On failure, the content of \p *output_length is
310
+ * unspecified.
311
+ *
312
+ * \return \c 0 on success.
313
+ * \return #MBEDTLS_ERR_GCM_BAD_INPUT on failure:
314
+ * total input length too long,
315
+ * unsupported input/output buffer overlap detected,
316
+ * or \p output_size too small.
317
+ */
318
+ int mbedtls_gcm_update(mbedtls_gcm_context *ctx,
319
+ const unsigned char *input, size_t input_length,
320
+ unsigned char *output, size_t output_size,
321
+ size_t *output_length);
322
+
323
+ /**
324
+ * \brief This function finishes the GCM operation and generates
325
+ * the authentication tag.
326
+ *
327
+ * It wraps up the GCM stream, and generates the
328
+ * tag. The tag can have a maximum length of 16 Bytes.
329
+ *
330
+ * \param ctx The GCM context. This must be initialized.
331
+ * \param tag The buffer for holding the tag. This must be a writable
332
+ * buffer of at least \p tag_len Bytes.
333
+ * \param tag_len The length of the tag to generate. This must be at least
334
+ * four.
335
+ * \param output The buffer for the final output.
336
+ * If \p output_size is nonzero, this must be a writable
337
+ * buffer of at least \p output_size bytes.
338
+ * \param output_size The size of the \p output buffer in bytes.
339
+ * This must be large enough for the output that
340
+ * mbedtls_gcm_update() has not produced. In particular:
341
+ * - If mbedtls_gcm_update() produces immediate output,
342
+ * or if the total input size is a multiple of \c 16,
343
+ * then mbedtls_gcm_finish() never produces any output,
344
+ * so \p output_size can be \c 0.
345
+ * - \p output_size never needs to be more than \c 15.
346
+ * \param output_length On success, \p *output_length contains the actual
347
+ * length of the output written in \p output.
348
+ * On failure, the content of \p *output_length is
349
+ * unspecified.
350
+ *
351
+ * \return \c 0 on success.
352
+ * \return #MBEDTLS_ERR_GCM_BAD_INPUT on failure:
353
+ * invalid value of \p tag_len,
354
+ * or \p output_size too small.
355
+ */
356
+ int mbedtls_gcm_finish(mbedtls_gcm_context *ctx,
357
+ unsigned char *output, size_t output_size,
358
+ size_t *output_length,
359
+ unsigned char *tag, size_t tag_len);
360
+
361
+ /**
362
+ * \brief This function clears a GCM context and the underlying
363
+ * cipher sub-context.
364
+ *
365
+ * \param ctx The GCM context to clear. If this is \c NULL, the call has
366
+ * no effect. Otherwise, this must be initialized.
367
+ */
368
+ void mbedtls_gcm_free(mbedtls_gcm_context *ctx);
369
+
370
+ #if defined(MBEDTLS_SELF_TEST)
371
+
372
+ /**
373
+ * \brief The GCM checkup routine.
374
+ *
375
+ * \return \c 0 on success.
376
+ * \return \c 1 on failure.
377
+ */
378
+ int mbedtls_gcm_self_test(int verbose);
379
+
380
+ #endif /* MBEDTLS_SELF_TEST */
381
+
382
+ #ifdef __cplusplus
383
+ }
384
+ #endif
385
+
386
+
387
+ #endif /* gcm.h */
@@ -0,0 +1,124 @@
1
+ /**
2
+ * \file hkdf.h
3
+ *
4
+ * \brief This file contains the HKDF interface.
5
+ *
6
+ * The HMAC-based Extract-and-Expand Key Derivation Function (HKDF) is
7
+ * specified by RFC 5869.
8
+ */
9
+ /*
10
+ * Copyright The Mbed TLS Contributors
11
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
12
+ */
13
+ #ifndef MBEDTLS_HKDF_H
14
+ #define MBEDTLS_HKDF_H
15
+
16
+ #include "mbedtls/build_info.h"
17
+
18
+ #include "mbedtls/md.h"
19
+
20
+ /**
21
+ * \name HKDF Error codes
22
+ * \{
23
+ */
24
+ /** Bad input parameters to function. */
25
+ #define MBEDTLS_ERR_HKDF_BAD_INPUT_DATA -0x5F80
26
+ /** \} name */
27
+
28
+ #ifdef __cplusplus
29
+ extern "C" {
30
+ #endif
31
+
32
+ /**
33
+ * \brief This is the HMAC-based Extract-and-Expand Key Derivation Function
34
+ * (HKDF).
35
+ *
36
+ * \param md A hash function; md.size denotes the length of the hash
37
+ * function output in bytes.
38
+ * \param salt An optional salt value (a non-secret random value);
39
+ * if the salt is not provided, a string of all zeros of
40
+ * md.size length is used as the salt.
41
+ * \param salt_len The length in bytes of the optional \p salt.
42
+ * \param ikm The input keying material.
43
+ * \param ikm_len The length in bytes of \p ikm.
44
+ * \param info An optional context and application specific information
45
+ * string. This can be a zero-length string.
46
+ * \param info_len The length of \p info in bytes.
47
+ * \param okm The output keying material of \p okm_len bytes.
48
+ * \param okm_len The length of the output keying material in bytes. This
49
+ * must be less than or equal to 255 * md.size bytes.
50
+ *
51
+ * \return 0 on success.
52
+ * \return #MBEDTLS_ERR_HKDF_BAD_INPUT_DATA when the parameters are invalid.
53
+ * \return An MBEDTLS_ERR_MD_* error for errors returned from the underlying
54
+ * MD layer.
55
+ */
56
+ int mbedtls_hkdf(const mbedtls_md_info_t *md, const unsigned char *salt,
57
+ size_t salt_len, const unsigned char *ikm, size_t ikm_len,
58
+ const unsigned char *info, size_t info_len,
59
+ unsigned char *okm, size_t okm_len);
60
+
61
+ /**
62
+ * \brief Take the input keying material \p ikm and extract from it a
63
+ * fixed-length pseudorandom key \p prk.
64
+ *
65
+ * \warning This function should only be used if the security of it has been
66
+ * studied and established in that particular context (eg. TLS 1.3
67
+ * key schedule). For standard HKDF security guarantees use
68
+ * \c mbedtls_hkdf instead.
69
+ *
70
+ * \param md A hash function; md.size denotes the length of the
71
+ * hash function output in bytes.
72
+ * \param salt An optional salt value (a non-secret random value);
73
+ * if the salt is not provided, a string of all zeros
74
+ * of md.size length is used as the salt.
75
+ * \param salt_len The length in bytes of the optional \p salt.
76
+ * \param ikm The input keying material.
77
+ * \param ikm_len The length in bytes of \p ikm.
78
+ * \param[out] prk A pseudorandom key of at least md.size bytes.
79
+ *
80
+ * \return 0 on success.
81
+ * \return #MBEDTLS_ERR_HKDF_BAD_INPUT_DATA when the parameters are invalid.
82
+ * \return An MBEDTLS_ERR_MD_* error for errors returned from the underlying
83
+ * MD layer.
84
+ */
85
+ int mbedtls_hkdf_extract(const mbedtls_md_info_t *md,
86
+ const unsigned char *salt, size_t salt_len,
87
+ const unsigned char *ikm, size_t ikm_len,
88
+ unsigned char *prk);
89
+
90
+ /**
91
+ * \brief Expand the supplied \p prk into several additional pseudorandom
92
+ * keys, which is the output of the HKDF.
93
+ *
94
+ * \warning This function should only be used if the security of it has been
95
+ * studied and established in that particular context (eg. TLS 1.3
96
+ * key schedule). For standard HKDF security guarantees use
97
+ * \c mbedtls_hkdf instead.
98
+ *
99
+ * \param md A hash function; md.size denotes the length of the hash
100
+ * function output in bytes.
101
+ * \param prk A pseudorandom key of at least md.size bytes. \p prk is
102
+ * usually the output from the HKDF extract step.
103
+ * \param prk_len The length in bytes of \p prk.
104
+ * \param info An optional context and application specific information
105
+ * string. This can be a zero-length string.
106
+ * \param info_len The length of \p info in bytes.
107
+ * \param okm The output keying material of \p okm_len bytes.
108
+ * \param okm_len The length of the output keying material in bytes. This
109
+ * must be less than or equal to 255 * md.size bytes.
110
+ *
111
+ * \return 0 on success.
112
+ * \return #MBEDTLS_ERR_HKDF_BAD_INPUT_DATA when the parameters are invalid.
113
+ * \return An MBEDTLS_ERR_MD_* error for errors returned from the underlying
114
+ * MD layer.
115
+ */
116
+ int mbedtls_hkdf_expand(const mbedtls_md_info_t *md, const unsigned char *prk,
117
+ size_t prk_len, const unsigned char *info,
118
+ size_t info_len, unsigned char *okm, size_t okm_len);
119
+
120
+ #ifdef __cplusplus
121
+ }
122
+ #endif
123
+
124
+ #endif /* hkdf.h */