@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,696 @@
1
+ /*
2
+ * Elliptic curve Diffie-Hellman
3
+ *
4
+ * Copyright The Mbed TLS Contributors
5
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
6
+ */
7
+
8
+ /*
9
+ * References:
10
+ *
11
+ * SEC1 https://www.secg.org/sec1-v2.pdf
12
+ * RFC 4492
13
+ */
14
+
15
+ #include "common.h"
16
+
17
+ #if defined(MBEDTLS_ECDH_C)
18
+
19
+ #include "mbedtls/ecdh.h"
20
+ #include "mbedtls/platform_util.h"
21
+ #include "mbedtls/error.h"
22
+
23
+ #include <string.h>
24
+
25
+ #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
26
+ typedef mbedtls_ecdh_context mbedtls_ecdh_context_mbed;
27
+ #endif
28
+
29
+ static mbedtls_ecp_group_id mbedtls_ecdh_grp_id(
30
+ const mbedtls_ecdh_context *ctx)
31
+ {
32
+ #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
33
+ return ctx->grp.id;
34
+ #else
35
+ return ctx->grp_id;
36
+ #endif
37
+ }
38
+
39
+ int mbedtls_ecdh_can_do(mbedtls_ecp_group_id gid)
40
+ {
41
+ /* At this time, all groups support ECDH. */
42
+ (void) gid;
43
+ return 1;
44
+ }
45
+
46
+ #if !defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT)
47
+ /*
48
+ * Generate public key (restartable version)
49
+ *
50
+ * Note: this internal function relies on its caller preserving the value of
51
+ * the output parameter 'd' across continuation calls. This would not be
52
+ * acceptable for a public function but is OK here as we control call sites.
53
+ */
54
+ static int ecdh_gen_public_restartable(mbedtls_ecp_group *grp,
55
+ mbedtls_mpi *d, mbedtls_ecp_point *Q,
56
+ int (*f_rng)(void *, unsigned char *, size_t),
57
+ void *p_rng,
58
+ mbedtls_ecp_restart_ctx *rs_ctx)
59
+ {
60
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
61
+
62
+ int restarting = 0;
63
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
64
+ restarting = (rs_ctx != NULL && rs_ctx->rsm != NULL);
65
+ #endif
66
+ /* If multiplication is in progress, we already generated a privkey */
67
+ if (!restarting) {
68
+ MBEDTLS_MPI_CHK(mbedtls_ecp_gen_privkey(grp, d, f_rng, p_rng));
69
+ }
70
+
71
+ MBEDTLS_MPI_CHK(mbedtls_ecp_mul_restartable(grp, Q, d, &grp->G,
72
+ f_rng, p_rng, rs_ctx));
73
+
74
+ cleanup:
75
+ return ret;
76
+ }
77
+
78
+ /*
79
+ * Generate public key
80
+ */
81
+ int mbedtls_ecdh_gen_public(mbedtls_ecp_group *grp, mbedtls_mpi *d, mbedtls_ecp_point *Q,
82
+ int (*f_rng)(void *, unsigned char *, size_t),
83
+ void *p_rng)
84
+ {
85
+ return ecdh_gen_public_restartable(grp, d, Q, f_rng, p_rng, NULL);
86
+ }
87
+ #endif /* !MBEDTLS_ECDH_GEN_PUBLIC_ALT */
88
+
89
+ #if !defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT)
90
+ /*
91
+ * Compute shared secret (SEC1 3.3.1)
92
+ */
93
+ static int ecdh_compute_shared_restartable(mbedtls_ecp_group *grp,
94
+ mbedtls_mpi *z,
95
+ const mbedtls_ecp_point *Q, const mbedtls_mpi *d,
96
+ int (*f_rng)(void *, unsigned char *, size_t),
97
+ void *p_rng,
98
+ mbedtls_ecp_restart_ctx *rs_ctx)
99
+ {
100
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
101
+ mbedtls_ecp_point P;
102
+
103
+ mbedtls_ecp_point_init(&P);
104
+
105
+ MBEDTLS_MPI_CHK(mbedtls_ecp_mul_restartable(grp, &P, d, Q,
106
+ f_rng, p_rng, rs_ctx));
107
+
108
+ if (mbedtls_ecp_is_zero(&P)) {
109
+ ret = MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
110
+ goto cleanup;
111
+ }
112
+
113
+ MBEDTLS_MPI_CHK(mbedtls_mpi_copy(z, &P.X));
114
+
115
+ cleanup:
116
+ mbedtls_ecp_point_free(&P);
117
+
118
+ return ret;
119
+ }
120
+
121
+ /*
122
+ * Compute shared secret (SEC1 3.3.1)
123
+ */
124
+ int mbedtls_ecdh_compute_shared(mbedtls_ecp_group *grp, mbedtls_mpi *z,
125
+ const mbedtls_ecp_point *Q, const mbedtls_mpi *d,
126
+ int (*f_rng)(void *, unsigned char *, size_t),
127
+ void *p_rng)
128
+ {
129
+ return ecdh_compute_shared_restartable(grp, z, Q, d,
130
+ f_rng, p_rng, NULL);
131
+ }
132
+ #endif /* !MBEDTLS_ECDH_COMPUTE_SHARED_ALT */
133
+
134
+ static void ecdh_init_internal(mbedtls_ecdh_context_mbed *ctx)
135
+ {
136
+ mbedtls_ecp_group_init(&ctx->grp);
137
+ mbedtls_mpi_init(&ctx->d);
138
+ mbedtls_ecp_point_init(&ctx->Q);
139
+ mbedtls_ecp_point_init(&ctx->Qp);
140
+ mbedtls_mpi_init(&ctx->z);
141
+
142
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
143
+ mbedtls_ecp_restart_init(&ctx->rs);
144
+ #endif
145
+ }
146
+
147
+ mbedtls_ecp_group_id mbedtls_ecdh_get_grp_id(mbedtls_ecdh_context *ctx)
148
+ {
149
+ #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
150
+ return ctx->MBEDTLS_PRIVATE(grp).id;
151
+ #else
152
+ return ctx->MBEDTLS_PRIVATE(grp_id);
153
+ #endif
154
+ }
155
+
156
+ /*
157
+ * Initialize context
158
+ */
159
+ void mbedtls_ecdh_init(mbedtls_ecdh_context *ctx)
160
+ {
161
+ #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
162
+ ecdh_init_internal(ctx);
163
+ mbedtls_ecp_point_init(&ctx->Vi);
164
+ mbedtls_ecp_point_init(&ctx->Vf);
165
+ mbedtls_mpi_init(&ctx->_d);
166
+ #else
167
+ memset(ctx, 0, sizeof(mbedtls_ecdh_context));
168
+
169
+ ctx->var = MBEDTLS_ECDH_VARIANT_NONE;
170
+ #endif
171
+ ctx->point_format = MBEDTLS_ECP_PF_UNCOMPRESSED;
172
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
173
+ ctx->restart_enabled = 0;
174
+ #endif
175
+ }
176
+
177
+ static int ecdh_setup_internal(mbedtls_ecdh_context_mbed *ctx,
178
+ mbedtls_ecp_group_id grp_id)
179
+ {
180
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
181
+
182
+ ret = mbedtls_ecp_group_load(&ctx->grp, grp_id);
183
+ if (ret != 0) {
184
+ return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE;
185
+ }
186
+
187
+ return 0;
188
+ }
189
+
190
+ /*
191
+ * Setup context
192
+ */
193
+ int mbedtls_ecdh_setup(mbedtls_ecdh_context *ctx, mbedtls_ecp_group_id grp_id)
194
+ {
195
+ #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
196
+ return ecdh_setup_internal(ctx, grp_id);
197
+ #else
198
+ switch (grp_id) {
199
+ #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED)
200
+ case MBEDTLS_ECP_DP_CURVE25519:
201
+ ctx->point_format = MBEDTLS_ECP_PF_COMPRESSED;
202
+ ctx->var = MBEDTLS_ECDH_VARIANT_EVEREST;
203
+ ctx->grp_id = grp_id;
204
+ return mbedtls_everest_setup(&ctx->ctx.everest_ecdh, grp_id);
205
+ #endif
206
+ default:
207
+ ctx->point_format = MBEDTLS_ECP_PF_UNCOMPRESSED;
208
+ ctx->var = MBEDTLS_ECDH_VARIANT_MBEDTLS_2_0;
209
+ ctx->grp_id = grp_id;
210
+ ecdh_init_internal(&ctx->ctx.mbed_ecdh);
211
+ return ecdh_setup_internal(&ctx->ctx.mbed_ecdh, grp_id);
212
+ }
213
+ #endif
214
+ }
215
+
216
+ static void ecdh_free_internal(mbedtls_ecdh_context_mbed *ctx)
217
+ {
218
+ mbedtls_ecp_group_free(&ctx->grp);
219
+ mbedtls_mpi_free(&ctx->d);
220
+ mbedtls_ecp_point_free(&ctx->Q);
221
+ mbedtls_ecp_point_free(&ctx->Qp);
222
+ mbedtls_mpi_free(&ctx->z);
223
+
224
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
225
+ mbedtls_ecp_restart_free(&ctx->rs);
226
+ #endif
227
+ }
228
+
229
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
230
+ /*
231
+ * Enable restartable operations for context
232
+ */
233
+ void mbedtls_ecdh_enable_restart(mbedtls_ecdh_context *ctx)
234
+ {
235
+ ctx->restart_enabled = 1;
236
+ }
237
+ #endif
238
+
239
+ /*
240
+ * Free context
241
+ */
242
+ void mbedtls_ecdh_free(mbedtls_ecdh_context *ctx)
243
+ {
244
+ if (ctx == NULL) {
245
+ return;
246
+ }
247
+
248
+ #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
249
+ mbedtls_ecp_point_free(&ctx->Vi);
250
+ mbedtls_ecp_point_free(&ctx->Vf);
251
+ mbedtls_mpi_free(&ctx->_d);
252
+ ecdh_free_internal(ctx);
253
+ #else
254
+ switch (ctx->var) {
255
+ #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED)
256
+ case MBEDTLS_ECDH_VARIANT_EVEREST:
257
+ mbedtls_everest_free(&ctx->ctx.everest_ecdh);
258
+ break;
259
+ #endif
260
+ case MBEDTLS_ECDH_VARIANT_MBEDTLS_2_0:
261
+ ecdh_free_internal(&ctx->ctx.mbed_ecdh);
262
+ break;
263
+ default:
264
+ break;
265
+ }
266
+
267
+ ctx->point_format = MBEDTLS_ECP_PF_UNCOMPRESSED;
268
+ ctx->var = MBEDTLS_ECDH_VARIANT_NONE;
269
+ ctx->grp_id = MBEDTLS_ECP_DP_NONE;
270
+ #endif
271
+ }
272
+
273
+ static int ecdh_make_params_internal(mbedtls_ecdh_context_mbed *ctx,
274
+ size_t *olen, int point_format,
275
+ unsigned char *buf, size_t blen,
276
+ int (*f_rng)(void *,
277
+ unsigned char *,
278
+ size_t),
279
+ void *p_rng,
280
+ int restart_enabled)
281
+ {
282
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
283
+ size_t grp_len, pt_len;
284
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
285
+ mbedtls_ecp_restart_ctx *rs_ctx = NULL;
286
+ #endif
287
+
288
+ if (ctx->grp.pbits == 0) {
289
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
290
+ }
291
+
292
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
293
+ if (restart_enabled) {
294
+ rs_ctx = &ctx->rs;
295
+ }
296
+ #else
297
+ (void) restart_enabled;
298
+ #endif
299
+
300
+
301
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
302
+ if ((ret = ecdh_gen_public_restartable(&ctx->grp, &ctx->d, &ctx->Q,
303
+ f_rng, p_rng, rs_ctx)) != 0) {
304
+ return ret;
305
+ }
306
+ #else
307
+ if ((ret = mbedtls_ecdh_gen_public(&ctx->grp, &ctx->d, &ctx->Q,
308
+ f_rng, p_rng)) != 0) {
309
+ return ret;
310
+ }
311
+ #endif /* MBEDTLS_ECP_RESTARTABLE */
312
+
313
+ if ((ret = mbedtls_ecp_tls_write_group(&ctx->grp, &grp_len, buf,
314
+ blen)) != 0) {
315
+ return ret;
316
+ }
317
+
318
+ buf += grp_len;
319
+ blen -= grp_len;
320
+
321
+ if ((ret = mbedtls_ecp_tls_write_point(&ctx->grp, &ctx->Q, point_format,
322
+ &pt_len, buf, blen)) != 0) {
323
+ return ret;
324
+ }
325
+
326
+ *olen = grp_len + pt_len;
327
+ return 0;
328
+ }
329
+
330
+ /*
331
+ * Setup and write the ServerKeyExchange parameters (RFC 4492)
332
+ * struct {
333
+ * ECParameters curve_params;
334
+ * ECPoint public;
335
+ * } ServerECDHParams;
336
+ */
337
+ int mbedtls_ecdh_make_params(mbedtls_ecdh_context *ctx, size_t *olen,
338
+ unsigned char *buf, size_t blen,
339
+ int (*f_rng)(void *, unsigned char *, size_t),
340
+ void *p_rng)
341
+ {
342
+ int restart_enabled = 0;
343
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
344
+ restart_enabled = ctx->restart_enabled;
345
+ #else
346
+ (void) restart_enabled;
347
+ #endif
348
+
349
+ #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
350
+ return ecdh_make_params_internal(ctx, olen, ctx->point_format, buf, blen,
351
+ f_rng, p_rng, restart_enabled);
352
+ #else
353
+ switch (ctx->var) {
354
+ #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED)
355
+ case MBEDTLS_ECDH_VARIANT_EVEREST:
356
+ return mbedtls_everest_make_params(&ctx->ctx.everest_ecdh, olen,
357
+ buf, blen, f_rng, p_rng);
358
+ #endif
359
+ case MBEDTLS_ECDH_VARIANT_MBEDTLS_2_0:
360
+ return ecdh_make_params_internal(&ctx->ctx.mbed_ecdh, olen,
361
+ ctx->point_format, buf, blen,
362
+ f_rng, p_rng,
363
+ restart_enabled);
364
+ default:
365
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
366
+ }
367
+ #endif
368
+ }
369
+
370
+ static int ecdh_read_params_internal(mbedtls_ecdh_context_mbed *ctx,
371
+ const unsigned char **buf,
372
+ const unsigned char *end)
373
+ {
374
+ return mbedtls_ecp_tls_read_point(&ctx->grp, &ctx->Qp, buf,
375
+ (size_t) (end - *buf));
376
+ }
377
+
378
+ /*
379
+ * Read the ServerKeyExchange parameters (RFC 4492)
380
+ * struct {
381
+ * ECParameters curve_params;
382
+ * ECPoint public;
383
+ * } ServerECDHParams;
384
+ */
385
+ int mbedtls_ecdh_read_params(mbedtls_ecdh_context *ctx,
386
+ const unsigned char **buf,
387
+ const unsigned char *end)
388
+ {
389
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
390
+ mbedtls_ecp_group_id grp_id;
391
+ if ((ret = mbedtls_ecp_tls_read_group_id(&grp_id, buf, (size_t) (end - *buf)))
392
+ != 0) {
393
+ return ret;
394
+ }
395
+
396
+ if ((ret = mbedtls_ecdh_setup(ctx, grp_id)) != 0) {
397
+ return ret;
398
+ }
399
+
400
+ #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
401
+ return ecdh_read_params_internal(ctx, buf, end);
402
+ #else
403
+ switch (ctx->var) {
404
+ #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED)
405
+ case MBEDTLS_ECDH_VARIANT_EVEREST:
406
+ return mbedtls_everest_read_params(&ctx->ctx.everest_ecdh,
407
+ buf, end);
408
+ #endif
409
+ case MBEDTLS_ECDH_VARIANT_MBEDTLS_2_0:
410
+ return ecdh_read_params_internal(&ctx->ctx.mbed_ecdh,
411
+ buf, end);
412
+ default:
413
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
414
+ }
415
+ #endif
416
+ }
417
+
418
+ static int ecdh_get_params_internal(mbedtls_ecdh_context_mbed *ctx,
419
+ const mbedtls_ecp_keypair *key,
420
+ mbedtls_ecdh_side side)
421
+ {
422
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
423
+
424
+ /* If it's not our key, just import the public part as Qp */
425
+ if (side == MBEDTLS_ECDH_THEIRS) {
426
+ return mbedtls_ecp_copy(&ctx->Qp, &key->Q);
427
+ }
428
+
429
+ /* Our key: import public (as Q) and private parts */
430
+ if (side != MBEDTLS_ECDH_OURS) {
431
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
432
+ }
433
+
434
+ if ((ret = mbedtls_ecp_copy(&ctx->Q, &key->Q)) != 0 ||
435
+ (ret = mbedtls_mpi_copy(&ctx->d, &key->d)) != 0) {
436
+ return ret;
437
+ }
438
+
439
+ return 0;
440
+ }
441
+
442
+ /*
443
+ * Get parameters from a keypair
444
+ */
445
+ int mbedtls_ecdh_get_params(mbedtls_ecdh_context *ctx,
446
+ const mbedtls_ecp_keypair *key,
447
+ mbedtls_ecdh_side side)
448
+ {
449
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
450
+ if (side != MBEDTLS_ECDH_OURS && side != MBEDTLS_ECDH_THEIRS) {
451
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
452
+ }
453
+
454
+ if (mbedtls_ecdh_grp_id(ctx) == MBEDTLS_ECP_DP_NONE) {
455
+ /* This is the first call to get_params(). Set up the context
456
+ * for use with the group. */
457
+ if ((ret = mbedtls_ecdh_setup(ctx, key->grp.id)) != 0) {
458
+ return ret;
459
+ }
460
+ } else {
461
+ /* This is not the first call to get_params(). Check that the
462
+ * current key's group is the same as the context's, which was set
463
+ * from the first key's group. */
464
+ if (mbedtls_ecdh_grp_id(ctx) != key->grp.id) {
465
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
466
+ }
467
+ }
468
+
469
+ #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
470
+ return ecdh_get_params_internal(ctx, key, side);
471
+ #else
472
+ switch (ctx->var) {
473
+ #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED)
474
+ case MBEDTLS_ECDH_VARIANT_EVEREST:
475
+ {
476
+ mbedtls_everest_ecdh_side s = side == MBEDTLS_ECDH_OURS ?
477
+ MBEDTLS_EVEREST_ECDH_OURS :
478
+ MBEDTLS_EVEREST_ECDH_THEIRS;
479
+ return mbedtls_everest_get_params(&ctx->ctx.everest_ecdh,
480
+ key, s);
481
+ }
482
+ #endif
483
+ case MBEDTLS_ECDH_VARIANT_MBEDTLS_2_0:
484
+ return ecdh_get_params_internal(&ctx->ctx.mbed_ecdh,
485
+ key, side);
486
+ default:
487
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
488
+ }
489
+ #endif
490
+ }
491
+
492
+ static int ecdh_make_public_internal(mbedtls_ecdh_context_mbed *ctx,
493
+ size_t *olen, int point_format,
494
+ unsigned char *buf, size_t blen,
495
+ int (*f_rng)(void *,
496
+ unsigned char *,
497
+ size_t),
498
+ void *p_rng,
499
+ int restart_enabled)
500
+ {
501
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
502
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
503
+ mbedtls_ecp_restart_ctx *rs_ctx = NULL;
504
+ #endif
505
+
506
+ if (ctx->grp.pbits == 0) {
507
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
508
+ }
509
+
510
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
511
+ if (restart_enabled) {
512
+ rs_ctx = &ctx->rs;
513
+ }
514
+ #else
515
+ (void) restart_enabled;
516
+ #endif
517
+
518
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
519
+ if ((ret = ecdh_gen_public_restartable(&ctx->grp, &ctx->d, &ctx->Q,
520
+ f_rng, p_rng, rs_ctx)) != 0) {
521
+ return ret;
522
+ }
523
+ #else
524
+ if ((ret = mbedtls_ecdh_gen_public(&ctx->grp, &ctx->d, &ctx->Q,
525
+ f_rng, p_rng)) != 0) {
526
+ return ret;
527
+ }
528
+ #endif /* MBEDTLS_ECP_RESTARTABLE */
529
+
530
+ return mbedtls_ecp_tls_write_point(&ctx->grp, &ctx->Q, point_format, olen,
531
+ buf, blen);
532
+ }
533
+
534
+ /*
535
+ * Setup and export the client public value
536
+ */
537
+ int mbedtls_ecdh_make_public(mbedtls_ecdh_context *ctx, size_t *olen,
538
+ unsigned char *buf, size_t blen,
539
+ int (*f_rng)(void *, unsigned char *, size_t),
540
+ void *p_rng)
541
+ {
542
+ int restart_enabled = 0;
543
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
544
+ restart_enabled = ctx->restart_enabled;
545
+ #endif
546
+
547
+ #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
548
+ return ecdh_make_public_internal(ctx, olen, ctx->point_format, buf, blen,
549
+ f_rng, p_rng, restart_enabled);
550
+ #else
551
+ switch (ctx->var) {
552
+ #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED)
553
+ case MBEDTLS_ECDH_VARIANT_EVEREST:
554
+ return mbedtls_everest_make_public(&ctx->ctx.everest_ecdh, olen,
555
+ buf, blen, f_rng, p_rng);
556
+ #endif
557
+ case MBEDTLS_ECDH_VARIANT_MBEDTLS_2_0:
558
+ return ecdh_make_public_internal(&ctx->ctx.mbed_ecdh, olen,
559
+ ctx->point_format, buf, blen,
560
+ f_rng, p_rng,
561
+ restart_enabled);
562
+ default:
563
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
564
+ }
565
+ #endif
566
+ }
567
+
568
+ static int ecdh_read_public_internal(mbedtls_ecdh_context_mbed *ctx,
569
+ const unsigned char *buf, size_t blen)
570
+ {
571
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
572
+ const unsigned char *p = buf;
573
+
574
+ if ((ret = mbedtls_ecp_tls_read_point(&ctx->grp, &ctx->Qp, &p,
575
+ blen)) != 0) {
576
+ return ret;
577
+ }
578
+
579
+ if ((size_t) (p - buf) != blen) {
580
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
581
+ }
582
+
583
+ return 0;
584
+ }
585
+
586
+ /*
587
+ * Parse and import the client's public value
588
+ */
589
+ int mbedtls_ecdh_read_public(mbedtls_ecdh_context *ctx,
590
+ const unsigned char *buf, size_t blen)
591
+ {
592
+ #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
593
+ return ecdh_read_public_internal(ctx, buf, blen);
594
+ #else
595
+ switch (ctx->var) {
596
+ #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED)
597
+ case MBEDTLS_ECDH_VARIANT_EVEREST:
598
+ return mbedtls_everest_read_public(&ctx->ctx.everest_ecdh,
599
+ buf, blen);
600
+ #endif
601
+ case MBEDTLS_ECDH_VARIANT_MBEDTLS_2_0:
602
+ return ecdh_read_public_internal(&ctx->ctx.mbed_ecdh,
603
+ buf, blen);
604
+ default:
605
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
606
+ }
607
+ #endif
608
+ }
609
+
610
+ static int ecdh_calc_secret_internal(mbedtls_ecdh_context_mbed *ctx,
611
+ size_t *olen, unsigned char *buf,
612
+ size_t blen,
613
+ int (*f_rng)(void *,
614
+ unsigned char *,
615
+ size_t),
616
+ void *p_rng,
617
+ int restart_enabled)
618
+ {
619
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
620
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
621
+ mbedtls_ecp_restart_ctx *rs_ctx = NULL;
622
+ #endif
623
+
624
+ if (ctx == NULL || ctx->grp.pbits == 0) {
625
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
626
+ }
627
+
628
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
629
+ if (restart_enabled) {
630
+ rs_ctx = &ctx->rs;
631
+ }
632
+ #else
633
+ (void) restart_enabled;
634
+ #endif
635
+
636
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
637
+ if ((ret = ecdh_compute_shared_restartable(&ctx->grp, &ctx->z, &ctx->Qp,
638
+ &ctx->d, f_rng, p_rng,
639
+ rs_ctx)) != 0) {
640
+ return ret;
641
+ }
642
+ #else
643
+ if ((ret = mbedtls_ecdh_compute_shared(&ctx->grp, &ctx->z, &ctx->Qp,
644
+ &ctx->d, f_rng, p_rng)) != 0) {
645
+ return ret;
646
+ }
647
+ #endif /* MBEDTLS_ECP_RESTARTABLE */
648
+
649
+ size_t p_bytes = ctx->grp.pbits / 8 + ((ctx->grp.pbits % 8) != 0);
650
+
651
+ if (p_bytes > blen) {
652
+ return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL;
653
+ }
654
+
655
+ *olen = p_bytes;
656
+
657
+ if (mbedtls_ecp_get_type(&ctx->grp) == MBEDTLS_ECP_TYPE_MONTGOMERY) {
658
+ return mbedtls_mpi_write_binary_le(&ctx->z, buf, *olen);
659
+ }
660
+
661
+ return mbedtls_mpi_write_binary(&ctx->z, buf, *olen);
662
+ }
663
+
664
+ /*
665
+ * Derive and export the shared secret
666
+ */
667
+ int mbedtls_ecdh_calc_secret(mbedtls_ecdh_context *ctx, size_t *olen,
668
+ unsigned char *buf, size_t blen,
669
+ int (*f_rng)(void *, unsigned char *, size_t),
670
+ void *p_rng)
671
+ {
672
+ int restart_enabled = 0;
673
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
674
+ restart_enabled = ctx->restart_enabled;
675
+ #endif
676
+
677
+ #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
678
+ return ecdh_calc_secret_internal(ctx, olen, buf, blen, f_rng, p_rng,
679
+ restart_enabled);
680
+ #else
681
+ switch (ctx->var) {
682
+ #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED)
683
+ case MBEDTLS_ECDH_VARIANT_EVEREST:
684
+ return mbedtls_everest_calc_secret(&ctx->ctx.everest_ecdh, olen,
685
+ buf, blen, f_rng, p_rng);
686
+ #endif
687
+ case MBEDTLS_ECDH_VARIANT_MBEDTLS_2_0:
688
+ return ecdh_calc_secret_internal(&ctx->ctx.mbed_ecdh, olen, buf,
689
+ blen, f_rng, p_rng,
690
+ restart_enabled);
691
+ default:
692
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
693
+ }
694
+ #endif
695
+ }
696
+ #endif /* MBEDTLS_ECDH_C */