@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,674 @@
1
+ /**
2
+ * \file ecdsa.h
3
+ *
4
+ * \brief This file contains ECDSA definitions and functions.
5
+ *
6
+ * The Elliptic Curve Digital Signature Algorithm (ECDSA) is defined in
7
+ * <em>Standards for Efficient Cryptography Group (SECG):
8
+ * SEC1 Elliptic Curve Cryptography</em>.
9
+ * The use of ECDSA for TLS is defined in <em>RFC-4492: Elliptic Curve
10
+ * Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS)</em>.
11
+ *
12
+ */
13
+ /*
14
+ * Copyright The Mbed TLS Contributors
15
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
16
+ */
17
+
18
+ #ifndef MBEDTLS_ECDSA_H
19
+ #define MBEDTLS_ECDSA_H
20
+ #include "mbedtls/private_access.h"
21
+
22
+ #include "mbedtls/build_info.h"
23
+
24
+ #include "mbedtls/ecp.h"
25
+ #include "mbedtls/md.h"
26
+
27
+ /**
28
+ * \brief Maximum ECDSA signature size for a given curve bit size
29
+ *
30
+ * \param bits Curve size in bits
31
+ * \return Maximum signature size in bytes
32
+ *
33
+ * \note This macro returns a compile-time constant if its argument
34
+ * is one. It may evaluate its argument multiple times.
35
+ */
36
+ /*
37
+ * Ecdsa-Sig-Value ::= SEQUENCE {
38
+ * r INTEGER,
39
+ * s INTEGER
40
+ * }
41
+ *
42
+ * For each of r and s, the value (V) may include an extra initial "0" bit.
43
+ */
44
+ #define MBEDTLS_ECDSA_MAX_SIG_LEN(bits) \
45
+ (/*T,L of SEQUENCE*/ ((bits) >= 61 * 8 ? 3 : 2) + \
46
+ /*T,L of r,s*/ 2 * (((bits) >= 127 * 8 ? 3 : 2) + \
47
+ /*V of r,s*/ ((bits) + 8) / 8))
48
+
49
+ /** The maximal size of an ECDSA signature in Bytes. */
50
+ #define MBEDTLS_ECDSA_MAX_LEN MBEDTLS_ECDSA_MAX_SIG_LEN(MBEDTLS_ECP_MAX_BITS)
51
+
52
+ #ifdef __cplusplus
53
+ extern "C" {
54
+ #endif
55
+
56
+ /**
57
+ * \brief The ECDSA context structure.
58
+ *
59
+ * \warning Performing multiple operations concurrently on the same
60
+ * ECDSA context is not supported; objects of this type
61
+ * should not be shared between multiple threads.
62
+ *
63
+ * \note pk_wrap module assumes that "ecdsa_context" is identical
64
+ * to "ecp_keypair" (see for example structure
65
+ * "mbedtls_eckey_info" where ECDSA sign/verify functions
66
+ * are used also for EC key)
67
+ */
68
+ typedef mbedtls_ecp_keypair mbedtls_ecdsa_context;
69
+
70
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
71
+
72
+ /**
73
+ * \brief Internal restart context for ecdsa_verify()
74
+ *
75
+ * \note Opaque struct, defined in ecdsa.c
76
+ */
77
+ typedef struct mbedtls_ecdsa_restart_ver mbedtls_ecdsa_restart_ver_ctx;
78
+
79
+ /**
80
+ * \brief Internal restart context for ecdsa_sign()
81
+ *
82
+ * \note Opaque struct, defined in ecdsa.c
83
+ */
84
+ typedef struct mbedtls_ecdsa_restart_sig mbedtls_ecdsa_restart_sig_ctx;
85
+
86
+ #if defined(MBEDTLS_ECDSA_DETERMINISTIC)
87
+ /**
88
+ * \brief Internal restart context for ecdsa_sign_det()
89
+ *
90
+ * \note Opaque struct, defined in ecdsa.c
91
+ */
92
+ typedef struct mbedtls_ecdsa_restart_det mbedtls_ecdsa_restart_det_ctx;
93
+ #endif
94
+
95
+ /**
96
+ * \brief General context for resuming ECDSA operations
97
+ */
98
+ typedef struct {
99
+ mbedtls_ecp_restart_ctx MBEDTLS_PRIVATE(ecp); /*!< base context for ECP restart and
100
+ shared administrative info */
101
+ mbedtls_ecdsa_restart_ver_ctx *MBEDTLS_PRIVATE(ver); /*!< ecdsa_verify() sub-context */
102
+ mbedtls_ecdsa_restart_sig_ctx *MBEDTLS_PRIVATE(sig); /*!< ecdsa_sign() sub-context */
103
+ #if defined(MBEDTLS_ECDSA_DETERMINISTIC)
104
+ mbedtls_ecdsa_restart_det_ctx *MBEDTLS_PRIVATE(det); /*!< ecdsa_sign_det() sub-context */
105
+ #endif
106
+ } mbedtls_ecdsa_restart_ctx;
107
+
108
+ #else /* MBEDTLS_ECP_RESTARTABLE */
109
+
110
+ /* Now we can declare functions that take a pointer to that */
111
+ typedef void mbedtls_ecdsa_restart_ctx;
112
+
113
+ #endif /* MBEDTLS_ECP_RESTARTABLE */
114
+
115
+ /**
116
+ * \brief This function checks whether a given group can be used
117
+ * for ECDSA.
118
+ *
119
+ * \param gid The ECP group ID to check.
120
+ *
121
+ * \return \c 1 if the group can be used, \c 0 otherwise
122
+ */
123
+ int mbedtls_ecdsa_can_do(mbedtls_ecp_group_id gid);
124
+
125
+ /**
126
+ * \brief This function computes the ECDSA signature of a
127
+ * previously-hashed message.
128
+ *
129
+ * \note The deterministic version implemented in
130
+ * mbedtls_ecdsa_sign_det_ext() is usually preferred.
131
+ *
132
+ * \note If the bitlength of the message hash is larger than the
133
+ * bitlength of the group order, then the hash is truncated
134
+ * as defined in <em>Standards for Efficient Cryptography Group
135
+ * (SECG): SEC1 Elliptic Curve Cryptography</em>, section
136
+ * 4.1.3, step 5.
137
+ *
138
+ * \see ecp.h
139
+ *
140
+ * \param grp The context for the elliptic curve to use.
141
+ * This must be initialized and have group parameters
142
+ * set, for example through mbedtls_ecp_group_load().
143
+ * \param r The MPI context in which to store the first part
144
+ * the signature. This must be initialized.
145
+ * \param s The MPI context in which to store the second part
146
+ * the signature. This must be initialized.
147
+ * \param d The private signing key. This must be initialized.
148
+ * \param buf The content to be signed. This is usually the hash of
149
+ * the original data to be signed. This must be a readable
150
+ * buffer of length \p blen Bytes. It may be \c NULL if
151
+ * \p blen is zero.
152
+ * \param blen The length of \p buf in Bytes.
153
+ * \param f_rng The RNG function, used both to generate the ECDSA nonce
154
+ * and for blinding. This must not be \c NULL.
155
+ * \param p_rng The RNG context to be passed to \p f_rng. This may be
156
+ * \c NULL if \p f_rng doesn't need a context parameter.
157
+ *
158
+ * \return \c 0 on success.
159
+ * \return An \c MBEDTLS_ERR_ECP_XXX
160
+ * or \c MBEDTLS_MPI_XXX error code on failure.
161
+ */
162
+ int mbedtls_ecdsa_sign(mbedtls_ecp_group *grp, mbedtls_mpi *r, mbedtls_mpi *s,
163
+ const mbedtls_mpi *d, const unsigned char *buf, size_t blen,
164
+ mbedtls_f_rng_t *f_rng, void *p_rng);
165
+
166
+ #if defined(MBEDTLS_ECDSA_DETERMINISTIC)
167
+ /**
168
+ * \brief This function computes the ECDSA signature of a
169
+ * previously-hashed message, deterministic version.
170
+ *
171
+ * For more information, see <em>RFC-6979: Deterministic
172
+ * Usage of the Digital Signature Algorithm (DSA) and Elliptic
173
+ * Curve Digital Signature Algorithm (ECDSA)</em>.
174
+ *
175
+ * \note If the bitlength of the message hash is larger than the
176
+ * bitlength of the group order, then the hash is truncated as
177
+ * defined in <em>Standards for Efficient Cryptography Group
178
+ * (SECG): SEC1 Elliptic Curve Cryptography</em>, section
179
+ * 4.1.3, step 5.
180
+ *
181
+ * \see ecp.h
182
+ *
183
+ * \param grp The context for the elliptic curve to use.
184
+ * This must be initialized and have group parameters
185
+ * set, for example through mbedtls_ecp_group_load().
186
+ * \param r The MPI context in which to store the first part
187
+ * the signature. This must be initialized.
188
+ * \param s The MPI context in which to store the second part
189
+ * the signature. This must be initialized.
190
+ * \param d The private signing key. This must be initialized
191
+ * and setup, for example through mbedtls_ecp_gen_privkey().
192
+ * \param buf The hashed content to be signed. This must be a readable
193
+ * buffer of length \p blen Bytes. It may be \c NULL if
194
+ * \p blen is zero.
195
+ * \param blen The length of \p buf in Bytes.
196
+ * \param md_alg The hash algorithm used to hash the original data.
197
+ * \param f_rng_blind The RNG function used for blinding. This must not be
198
+ * \c NULL.
199
+ * \param p_rng_blind The RNG context to be passed to \p f_rng_blind. This
200
+ * may be \c NULL if \p f_rng_blind doesn't need a context
201
+ * parameter.
202
+ *
203
+ * \return \c 0 on success.
204
+ * \return An \c MBEDTLS_ERR_ECP_XXX or \c MBEDTLS_MPI_XXX
205
+ * error code on failure.
206
+ */
207
+ int mbedtls_ecdsa_sign_det_ext(mbedtls_ecp_group *grp, mbedtls_mpi *r,
208
+ mbedtls_mpi *s, const mbedtls_mpi *d,
209
+ const unsigned char *buf, size_t blen,
210
+ mbedtls_md_type_t md_alg,
211
+ mbedtls_f_rng_t *f_rng_blind,
212
+ void *p_rng_blind);
213
+ #endif /* MBEDTLS_ECDSA_DETERMINISTIC */
214
+
215
+ #if !defined(MBEDTLS_ECDSA_SIGN_ALT)
216
+ /**
217
+ * \brief This function computes the ECDSA signature of a
218
+ * previously-hashed message, in a restartable way.
219
+ *
220
+ * \note The deterministic version implemented in
221
+ * mbedtls_ecdsa_sign_det_restartable() is usually
222
+ * preferred.
223
+ *
224
+ * \note This function is like \c mbedtls_ecdsa_sign() but
225
+ * it can return early and restart according to the
226
+ * limit set with \c mbedtls_ecp_set_max_ops() to
227
+ * reduce blocking.
228
+ *
229
+ * \note If the bitlength of the message hash is larger
230
+ * than the bitlength of the group order, then the
231
+ * hash is truncated as defined in <em>Standards for
232
+ * Efficient Cryptography Group (SECG): SEC1 Elliptic
233
+ * Curve Cryptography</em>, section 4.1.3, step 5.
234
+ *
235
+ * \see ecp.h
236
+ *
237
+ * \param grp The context for the elliptic curve to use.
238
+ * This must be initialized and have group parameters
239
+ * set, for example through mbedtls_ecp_group_load().
240
+ * \param r The MPI context in which to store the first part
241
+ * the signature. This must be initialized.
242
+ * \param s The MPI context in which to store the second part
243
+ * the signature. This must be initialized.
244
+ * \param d The private signing key. This must be initialized
245
+ * and setup, for example through
246
+ * mbedtls_ecp_gen_privkey().
247
+ * \param buf The hashed content to be signed. This must be a readable
248
+ * buffer of length \p blen Bytes. It may be \c NULL if
249
+ * \p blen is zero.
250
+ * \param blen The length of \p buf in Bytes.
251
+ * \param f_rng The RNG function used to generate the ECDSA nonce.
252
+ * This must not be \c NULL.
253
+ * \param p_rng The RNG context to be passed to \p f_rng. This may be
254
+ * \c NULL if \p f_rng doesn't need a context parameter.
255
+ * \param f_rng_blind The RNG function used for blinding. This must not be
256
+ * \c NULL.
257
+ * \param p_rng_blind The RNG context to be passed to \p f_rng. This may be
258
+ * \c NULL if \p f_rng doesn't need a context parameter.
259
+ * \param rs_ctx The restart context to use. This may be \c NULL
260
+ * to disable restarting. If it is not \c NULL, it
261
+ * must point to an initialized restart context.
262
+ *
263
+ * \return \c 0 on success.
264
+ * \return #MBEDTLS_ERR_ECP_IN_PROGRESS if maximum number of
265
+ * operations was reached: see \c
266
+ * mbedtls_ecp_set_max_ops().
267
+ * \return Another \c MBEDTLS_ERR_ECP_XXX, \c
268
+ * MBEDTLS_ERR_MPI_XXX or \c MBEDTLS_ERR_ASN1_XXX
269
+ * error code on failure.
270
+ */
271
+ int mbedtls_ecdsa_sign_restartable(
272
+ mbedtls_ecp_group *grp,
273
+ mbedtls_mpi *r, mbedtls_mpi *s,
274
+ const mbedtls_mpi *d,
275
+ const unsigned char *buf, size_t blen,
276
+ mbedtls_f_rng_t *f_rng,
277
+ void *p_rng,
278
+ mbedtls_f_rng_t *f_rng_blind,
279
+ void *p_rng_blind,
280
+ mbedtls_ecdsa_restart_ctx *rs_ctx);
281
+
282
+ #endif /* !MBEDTLS_ECDSA_SIGN_ALT */
283
+
284
+ #if defined(MBEDTLS_ECDSA_DETERMINISTIC)
285
+
286
+ /**
287
+ * \brief This function computes the ECDSA signature of a
288
+ * previously-hashed message, in a restartable way.
289
+ *
290
+ * \note This function is like \c
291
+ * mbedtls_ecdsa_sign_det_ext() but it can return
292
+ * early and restart according to the limit set with
293
+ * \c mbedtls_ecp_set_max_ops() to reduce blocking.
294
+ *
295
+ * \note If the bitlength of the message hash is larger
296
+ * than the bitlength of the group order, then the
297
+ * hash is truncated as defined in <em>Standards for
298
+ * Efficient Cryptography Group (SECG): SEC1 Elliptic
299
+ * Curve Cryptography</em>, section 4.1.3, step 5.
300
+ *
301
+ * \see ecp.h
302
+ *
303
+ * \param grp The context for the elliptic curve to use.
304
+ * This must be initialized and have group parameters
305
+ * set, for example through mbedtls_ecp_group_load().
306
+ * \param r The MPI context in which to store the first part
307
+ * the signature. This must be initialized.
308
+ * \param s The MPI context in which to store the second part
309
+ * the signature. This must be initialized.
310
+ * \param d The private signing key. This must be initialized
311
+ * and setup, for example through
312
+ * mbedtls_ecp_gen_privkey().
313
+ * \param buf The hashed content to be signed. This must be a readable
314
+ * buffer of length \p blen Bytes. It may be \c NULL if
315
+ * \p blen is zero.
316
+ * \param blen The length of \p buf in Bytes.
317
+ * \param md_alg The hash algorithm used to hash the original data.
318
+ * \param f_rng_blind The RNG function used for blinding. This must not be
319
+ * \c NULL.
320
+ * \param p_rng_blind The RNG context to be passed to \p f_rng_blind. This may be
321
+ * \c NULL if \p f_rng_blind doesn't need a context parameter.
322
+ * \param rs_ctx The restart context to use. This may be \c NULL
323
+ * to disable restarting. If it is not \c NULL, it
324
+ * must point to an initialized restart context.
325
+ *
326
+ * \return \c 0 on success.
327
+ * \return #MBEDTLS_ERR_ECP_IN_PROGRESS if maximum number of
328
+ * operations was reached: see \c
329
+ * mbedtls_ecp_set_max_ops().
330
+ * \return Another \c MBEDTLS_ERR_ECP_XXX, \c
331
+ * MBEDTLS_ERR_MPI_XXX or \c MBEDTLS_ERR_ASN1_XXX
332
+ * error code on failure.
333
+ */
334
+ int mbedtls_ecdsa_sign_det_restartable(
335
+ mbedtls_ecp_group *grp,
336
+ mbedtls_mpi *r, mbedtls_mpi *s,
337
+ const mbedtls_mpi *d, const unsigned char *buf, size_t blen,
338
+ mbedtls_md_type_t md_alg,
339
+ mbedtls_f_rng_t *f_rng_blind,
340
+ void *p_rng_blind,
341
+ mbedtls_ecdsa_restart_ctx *rs_ctx);
342
+
343
+ #endif /* MBEDTLS_ECDSA_DETERMINISTIC */
344
+
345
+ /**
346
+ * \brief This function verifies the ECDSA signature of a
347
+ * previously-hashed message.
348
+ *
349
+ * \note If the bitlength of the message hash is larger than the
350
+ * bitlength of the group order, then the hash is truncated as
351
+ * defined in <em>Standards for Efficient Cryptography Group
352
+ * (SECG): SEC1 Elliptic Curve Cryptography</em>, section
353
+ * 4.1.4, step 3.
354
+ *
355
+ * \see ecp.h
356
+ *
357
+ * \param grp The ECP group to use.
358
+ * This must be initialized and have group parameters
359
+ * set, for example through mbedtls_ecp_group_load().
360
+ * \param buf The hashed content that was signed. This must be a readable
361
+ * buffer of length \p blen Bytes. It may be \c NULL if
362
+ * \p blen is zero.
363
+ * \param blen The length of \p buf in Bytes.
364
+ * \param Q The public key to use for verification. This must be
365
+ * initialized and setup.
366
+ * \param r The first integer of the signature.
367
+ * This must be initialized.
368
+ * \param s The second integer of the signature.
369
+ * This must be initialized.
370
+ *
371
+ * \return \c 0 on success.
372
+ * \return An \c MBEDTLS_ERR_ECP_XXX or \c MBEDTLS_MPI_XXX
373
+ * error code on failure.
374
+ */
375
+ int mbedtls_ecdsa_verify(mbedtls_ecp_group *grp,
376
+ const unsigned char *buf, size_t blen,
377
+ const mbedtls_ecp_point *Q, const mbedtls_mpi *r,
378
+ const mbedtls_mpi *s);
379
+
380
+ #if !defined(MBEDTLS_ECDSA_VERIFY_ALT)
381
+ /**
382
+ * \brief This function verifies the ECDSA signature of a
383
+ * previously-hashed message, in a restartable manner
384
+ *
385
+ * \note If the bitlength of the message hash is larger than the
386
+ * bitlength of the group order, then the hash is truncated as
387
+ * defined in <em>Standards for Efficient Cryptography Group
388
+ * (SECG): SEC1 Elliptic Curve Cryptography</em>, section
389
+ * 4.1.4, step 3.
390
+ *
391
+ * \see ecp.h
392
+ *
393
+ * \param grp The ECP group to use.
394
+ * This must be initialized and have group parameters
395
+ * set, for example through mbedtls_ecp_group_load().
396
+ * \param buf The hashed content that was signed. This must be a readable
397
+ * buffer of length \p blen Bytes. It may be \c NULL if
398
+ * \p blen is zero.
399
+ * \param blen The length of \p buf in Bytes.
400
+ * \param Q The public key to use for verification. This must be
401
+ * initialized and setup.
402
+ * \param r The first integer of the signature.
403
+ * This must be initialized.
404
+ * \param s The second integer of the signature.
405
+ * This must be initialized.
406
+ * \param rs_ctx The restart context to use. This may be \c NULL to disable
407
+ * restarting. If it is not \c NULL, it must point to an
408
+ * initialized restart context.
409
+ *
410
+ * \return \c 0 on success.
411
+ * \return #MBEDTLS_ERR_ECP_IN_PROGRESS if maximum number of
412
+ * operations was reached: see \c mbedtls_ecp_set_max_ops().
413
+ * \return An \c MBEDTLS_ERR_ECP_XXX or \c MBEDTLS_MPI_XXX
414
+ * error code on failure.
415
+ */
416
+ int mbedtls_ecdsa_verify_restartable(mbedtls_ecp_group *grp,
417
+ const unsigned char *buf, size_t blen,
418
+ const mbedtls_ecp_point *Q,
419
+ const mbedtls_mpi *r,
420
+ const mbedtls_mpi *s,
421
+ mbedtls_ecdsa_restart_ctx *rs_ctx);
422
+
423
+ #endif /* !MBEDTLS_ECDSA_VERIFY_ALT */
424
+
425
+ /**
426
+ * \brief This function computes the ECDSA signature and writes it
427
+ * to a buffer, serialized as defined in <em>RFC-4492:
428
+ * Elliptic Curve Cryptography (ECC) Cipher Suites for
429
+ * Transport Layer Security (TLS)</em>.
430
+ *
431
+ * \warning It is not thread-safe to use the same context in
432
+ * multiple threads.
433
+ *
434
+ * \note The deterministic version is used if
435
+ * #MBEDTLS_ECDSA_DETERMINISTIC is defined. For more
436
+ * information, see <em>RFC-6979: Deterministic Usage
437
+ * of the Digital Signature Algorithm (DSA) and Elliptic
438
+ * Curve Digital Signature Algorithm (ECDSA)</em>.
439
+ *
440
+ * \note If the bitlength of the message hash is larger than the
441
+ * bitlength of the group order, then the hash is truncated as
442
+ * defined in <em>Standards for Efficient Cryptography Group
443
+ * (SECG): SEC1 Elliptic Curve Cryptography</em>, section
444
+ * 4.1.3, step 5.
445
+ *
446
+ * \see ecp.h
447
+ *
448
+ * \param ctx The ECDSA context to use. This must be initialized
449
+ * and have a group and private key bound to it, for example
450
+ * via mbedtls_ecdsa_genkey() or mbedtls_ecdsa_from_keypair().
451
+ * \param md_alg The message digest that was used to hash the message.
452
+ * \param hash The message hash to be signed. This must be a readable
453
+ * buffer of length \p hlen Bytes.
454
+ * \param hlen The length of the hash \p hash in Bytes.
455
+ * \param sig The buffer to which to write the signature. This must be a
456
+ * writable buffer of length at least twice as large as the
457
+ * size of the curve used, plus 9. For example, 73 Bytes if
458
+ * a 256-bit curve is used. A buffer length of
459
+ * #MBEDTLS_ECDSA_MAX_LEN is always safe.
460
+ * \param sig_size The size of the \p sig buffer in bytes.
461
+ * \param slen The address at which to store the actual length of
462
+ * the signature written. Must not be \c NULL.
463
+ * \param f_rng The RNG function. This is used for blinding.
464
+ * If #MBEDTLS_ECDSA_DETERMINISTIC is unset, this is also
465
+ * used to generate the ECDSA nonce.
466
+ * This must not be \c NULL.
467
+ * \param p_rng The RNG context to be passed to \p f_rng. This may be
468
+ * \c NULL if \p f_rng is \c NULL or doesn't use a context.
469
+ *
470
+ * \return \c 0 on success.
471
+ * \return An \c MBEDTLS_ERR_ECP_XXX, \c MBEDTLS_ERR_MPI_XXX or
472
+ * \c MBEDTLS_ERR_ASN1_XXX error code on failure.
473
+ */
474
+ int mbedtls_ecdsa_write_signature(mbedtls_ecdsa_context *ctx,
475
+ mbedtls_md_type_t md_alg,
476
+ const unsigned char *hash, size_t hlen,
477
+ unsigned char *sig, size_t sig_size, size_t *slen,
478
+ mbedtls_f_rng_t *f_rng,
479
+ void *p_rng);
480
+
481
+ /**
482
+ * \brief This function computes the ECDSA signature and writes it
483
+ * to a buffer, in a restartable way.
484
+ *
485
+ * \see \c mbedtls_ecdsa_write_signature()
486
+ *
487
+ * \note This function is like \c mbedtls_ecdsa_write_signature()
488
+ * but it can return early and restart according to the limit
489
+ * set with \c mbedtls_ecp_set_max_ops() to reduce blocking.
490
+ *
491
+ * \param ctx The ECDSA context to use. This must be initialized
492
+ * and have a group and private key bound to it, for example
493
+ * via mbedtls_ecdsa_genkey() or mbedtls_ecdsa_from_keypair().
494
+ * \param md_alg The message digest that was used to hash the message.
495
+ * \param hash The message hash to be signed. This must be a readable
496
+ * buffer of length \p hlen Bytes.
497
+ * \param hlen The length of the hash \p hash in Bytes.
498
+ * \param sig The buffer to which to write the signature. This must be a
499
+ * writable buffer of length at least twice as large as the
500
+ * size of the curve used, plus 9. For example, 73 Bytes if
501
+ * a 256-bit curve is used. A buffer length of
502
+ * #MBEDTLS_ECDSA_MAX_LEN is always safe.
503
+ * \param sig_size The size of the \p sig buffer in bytes.
504
+ * \param slen The address at which to store the actual length of
505
+ * the signature written. Must not be \c NULL.
506
+ * \param f_rng The RNG function. This is used for blinding.
507
+ * If #MBEDTLS_ECDSA_DETERMINISTIC is unset, this is also
508
+ * used to generate the ECDSA nonce.
509
+ * This must not be \c NULL.
510
+ * \param p_rng The RNG context to be passed to \p f_rng. This may be
511
+ * \c NULL if \p f_rng is \c NULL or doesn't use a context.
512
+ * \param rs_ctx The restart context to use. This may be \c NULL to disable
513
+ * restarting. If it is not \c NULL, it must point to an
514
+ * initialized restart context.
515
+ *
516
+ * \return \c 0 on success.
517
+ * \return #MBEDTLS_ERR_ECP_IN_PROGRESS if maximum number of
518
+ * operations was reached: see \c mbedtls_ecp_set_max_ops().
519
+ * \return Another \c MBEDTLS_ERR_ECP_XXX, \c MBEDTLS_ERR_MPI_XXX or
520
+ * \c MBEDTLS_ERR_ASN1_XXX error code on failure.
521
+ */
522
+ int mbedtls_ecdsa_write_signature_restartable(mbedtls_ecdsa_context *ctx,
523
+ mbedtls_md_type_t md_alg,
524
+ const unsigned char *hash, size_t hlen,
525
+ unsigned char *sig, size_t sig_size, size_t *slen,
526
+ mbedtls_f_rng_t *f_rng,
527
+ void *p_rng,
528
+ mbedtls_ecdsa_restart_ctx *rs_ctx);
529
+
530
+ /**
531
+ * \brief This function reads and verifies an ECDSA signature.
532
+ *
533
+ * \note If the bitlength of the message hash is larger than the
534
+ * bitlength of the group order, then the hash is truncated as
535
+ * defined in <em>Standards for Efficient Cryptography Group
536
+ * (SECG): SEC1 Elliptic Curve Cryptography</em>, section
537
+ * 4.1.4, step 3.
538
+ *
539
+ * \see ecp.h
540
+ *
541
+ * \param ctx The ECDSA context to use. This must be initialized
542
+ * and have a group and public key bound to it.
543
+ * \param hash The message hash that was signed. This must be a readable
544
+ * buffer of length \p hlen Bytes.
545
+ * \param hlen The size of the hash \p hash.
546
+ * \param sig The signature to read and verify. This must be a readable
547
+ * buffer of length \p slen Bytes.
548
+ * \param slen The size of \p sig in Bytes.
549
+ *
550
+ * \return \c 0 on success.
551
+ * \return #MBEDTLS_ERR_ECP_BAD_INPUT_DATA if signature is invalid.
552
+ * \return #MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH if there is a valid
553
+ * signature in \p sig, but its length is less than \p siglen.
554
+ * \return An \c MBEDTLS_ERR_ECP_XXX or \c MBEDTLS_ERR_MPI_XXX
555
+ * error code on failure for any other reason.
556
+ */
557
+ int mbedtls_ecdsa_read_signature(mbedtls_ecdsa_context *ctx,
558
+ const unsigned char *hash, size_t hlen,
559
+ const unsigned char *sig, size_t slen);
560
+
561
+ /**
562
+ * \brief This function reads and verifies an ECDSA signature,
563
+ * in a restartable way.
564
+ *
565
+ * \see \c mbedtls_ecdsa_read_signature()
566
+ *
567
+ * \note This function is like \c mbedtls_ecdsa_read_signature()
568
+ * but it can return early and restart according to the limit
569
+ * set with \c mbedtls_ecp_set_max_ops() to reduce blocking.
570
+ *
571
+ * \param ctx The ECDSA context to use. This must be initialized
572
+ * and have a group and public key bound to it.
573
+ * \param hash The message hash that was signed. This must be a readable
574
+ * buffer of length \p hlen Bytes.
575
+ * \param hlen The size of the hash \p hash.
576
+ * \param sig The signature to read and verify. This must be a readable
577
+ * buffer of length \p slen Bytes.
578
+ * \param slen The size of \p sig in Bytes.
579
+ * \param rs_ctx The restart context to use. This may be \c NULL to disable
580
+ * restarting. If it is not \c NULL, it must point to an
581
+ * initialized restart context.
582
+ *
583
+ * \return \c 0 on success.
584
+ * \return #MBEDTLS_ERR_ECP_BAD_INPUT_DATA if signature is invalid.
585
+ * \return #MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH if there is a valid
586
+ * signature in \p sig, but its length is less than \p siglen.
587
+ * \return #MBEDTLS_ERR_ECP_IN_PROGRESS if maximum number of
588
+ * operations was reached: see \c mbedtls_ecp_set_max_ops().
589
+ * \return Another \c MBEDTLS_ERR_ECP_XXX or \c MBEDTLS_ERR_MPI_XXX
590
+ * error code on failure for any other reason.
591
+ */
592
+ int mbedtls_ecdsa_read_signature_restartable(mbedtls_ecdsa_context *ctx,
593
+ const unsigned char *hash, size_t hlen,
594
+ const unsigned char *sig, size_t slen,
595
+ mbedtls_ecdsa_restart_ctx *rs_ctx);
596
+
597
+ /**
598
+ * \brief This function generates an ECDSA keypair on the given curve.
599
+ *
600
+ * \see ecp.h
601
+ *
602
+ * \param ctx The ECDSA context to store the keypair in.
603
+ * This must be initialized.
604
+ * \param gid The elliptic curve to use. One of the various
605
+ * \c MBEDTLS_ECP_DP_XXX macros depending on configuration.
606
+ * \param f_rng The RNG function to use. This must not be \c NULL.
607
+ * \param p_rng The RNG context to be passed to \p f_rng. This may be
608
+ * \c NULL if \p f_rng doesn't need a context argument.
609
+ *
610
+ * \return \c 0 on success.
611
+ * \return An \c MBEDTLS_ERR_ECP_XXX code on failure.
612
+ */
613
+ int mbedtls_ecdsa_genkey(mbedtls_ecdsa_context *ctx, mbedtls_ecp_group_id gid,
614
+ mbedtls_f_rng_t *f_rng, void *p_rng);
615
+
616
+ /**
617
+ * \brief This function sets up an ECDSA context from an EC key pair.
618
+ *
619
+ * \see ecp.h
620
+ *
621
+ * \param ctx The ECDSA context to setup. This must be initialized.
622
+ * \param key The EC key to use. This must be initialized and hold
623
+ * a private-public key pair or a public key. In the former
624
+ * case, the ECDSA context may be used for signature creation
625
+ * and verification after this call. In the latter case, it
626
+ * may be used for signature verification.
627
+ *
628
+ * \return \c 0 on success.
629
+ * \return An \c MBEDTLS_ERR_ECP_XXX code on failure.
630
+ */
631
+ int mbedtls_ecdsa_from_keypair(mbedtls_ecdsa_context *ctx,
632
+ const mbedtls_ecp_keypair *key);
633
+
634
+ /**
635
+ * \brief This function initializes an ECDSA context.
636
+ *
637
+ * \param ctx The ECDSA context to initialize.
638
+ * This must not be \c NULL.
639
+ */
640
+ void mbedtls_ecdsa_init(mbedtls_ecdsa_context *ctx);
641
+
642
+ /**
643
+ * \brief This function frees an ECDSA context.
644
+ *
645
+ * \param ctx The ECDSA context to free. This may be \c NULL,
646
+ * in which case this function does nothing. If it
647
+ * is not \c NULL, it must be initialized.
648
+ */
649
+ void mbedtls_ecdsa_free(mbedtls_ecdsa_context *ctx);
650
+
651
+ #if defined(MBEDTLS_ECP_RESTARTABLE)
652
+ /**
653
+ * \brief Initialize a restart context.
654
+ *
655
+ * \param ctx The restart context to initialize.
656
+ * This must not be \c NULL.
657
+ */
658
+ void mbedtls_ecdsa_restart_init(mbedtls_ecdsa_restart_ctx *ctx);
659
+
660
+ /**
661
+ * \brief Free the components of a restart context.
662
+ *
663
+ * \param ctx The restart context to free. This may be \c NULL,
664
+ * in which case this function does nothing. If it
665
+ * is not \c NULL, it must be initialized.
666
+ */
667
+ void mbedtls_ecdsa_restart_free(mbedtls_ecdsa_restart_ctx *ctx);
668
+ #endif /* MBEDTLS_ECP_RESTARTABLE */
669
+
670
+ #ifdef __cplusplus
671
+ }
672
+ #endif
673
+
674
+ #endif /* ecdsa.h */