@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,247 @@
1
+ /**
2
+ * \file platform_util.h
3
+ *
4
+ * \brief Common and shared functions used by multiple modules in the Mbed TLS
5
+ * library.
6
+ */
7
+ /*
8
+ * Copyright The Mbed TLS Contributors
9
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
10
+ */
11
+ #ifndef MBEDTLS_PLATFORM_UTIL_H
12
+ #define MBEDTLS_PLATFORM_UTIL_H
13
+
14
+ #include "mbedtls/build_info.h"
15
+
16
+ #include <stddef.h>
17
+ #if defined(MBEDTLS_HAVE_TIME_DATE)
18
+ #include "mbedtls/platform_time.h"
19
+ #include <time.h>
20
+ #endif /* MBEDTLS_HAVE_TIME_DATE */
21
+
22
+ #ifdef __cplusplus
23
+ extern "C" {
24
+ #endif
25
+
26
+ /* Internal helper macros for deprecating API constants. */
27
+ #if !defined(MBEDTLS_DEPRECATED_REMOVED)
28
+ #if defined(MBEDTLS_DEPRECATED_WARNING)
29
+ #define MBEDTLS_DEPRECATED __attribute__((deprecated))
30
+ MBEDTLS_DEPRECATED typedef char const *mbedtls_deprecated_string_constant_t;
31
+ #define MBEDTLS_DEPRECATED_STRING_CONSTANT(VAL) \
32
+ ((mbedtls_deprecated_string_constant_t) (VAL))
33
+ MBEDTLS_DEPRECATED typedef int mbedtls_deprecated_numeric_constant_t;
34
+ #define MBEDTLS_DEPRECATED_NUMERIC_CONSTANT(VAL) \
35
+ ((mbedtls_deprecated_numeric_constant_t) (VAL))
36
+ #else /* MBEDTLS_DEPRECATED_WARNING */
37
+ #define MBEDTLS_DEPRECATED
38
+ #define MBEDTLS_DEPRECATED_STRING_CONSTANT(VAL) VAL
39
+ #define MBEDTLS_DEPRECATED_NUMERIC_CONSTANT(VAL) VAL
40
+ #endif /* MBEDTLS_DEPRECATED_WARNING */
41
+ #endif /* MBEDTLS_DEPRECATED_REMOVED */
42
+
43
+ /* Implementation of the check-return facility.
44
+ * See the user documentation in mbedtls_config.h.
45
+ *
46
+ * Do not use this macro directly to annotate function: instead,
47
+ * use one of MBEDTLS_CHECK_RETURN_CRITICAL or MBEDTLS_CHECK_RETURN_TYPICAL
48
+ * depending on how important it is to check the return value.
49
+ */
50
+ #if !defined(MBEDTLS_CHECK_RETURN)
51
+ #if defined(__GNUC__)
52
+ #define MBEDTLS_CHECK_RETURN __attribute__((__warn_unused_result__))
53
+ #elif defined(_MSC_VER) && _MSC_VER >= 1700
54
+ #include <sal.h>
55
+ #define MBEDTLS_CHECK_RETURN _Check_return_
56
+ #else
57
+ #define MBEDTLS_CHECK_RETURN
58
+ #endif
59
+ #endif
60
+
61
+ /** Critical-failure function
62
+ *
63
+ * This macro appearing at the beginning of the declaration of a function
64
+ * indicates that its return value should be checked in all applications.
65
+ * Omitting the check is very likely to indicate a bug in the application
66
+ * and will result in a compile-time warning if #MBEDTLS_CHECK_RETURN
67
+ * is implemented for the compiler in use.
68
+ *
69
+ * \note The use of this macro is a work in progress.
70
+ * This macro may be added to more functions in the future.
71
+ * Such an extension is not considered an API break, provided that
72
+ * there are near-unavoidable circumstances under which the function
73
+ * can fail. For example, signature/MAC/AEAD verification functions,
74
+ * and functions that require a random generator, are considered
75
+ * return-check-critical.
76
+ */
77
+ #define MBEDTLS_CHECK_RETURN_CRITICAL MBEDTLS_CHECK_RETURN
78
+
79
+ /** Ordinary-failure function
80
+ *
81
+ * This macro appearing at the beginning of the declaration of a function
82
+ * indicates that its return value should be generally be checked in portable
83
+ * applications. Omitting the check will result in a compile-time warning if
84
+ * #MBEDTLS_CHECK_RETURN is implemented for the compiler in use and
85
+ * #MBEDTLS_CHECK_RETURN_WARNING is enabled in the compile-time configuration.
86
+ *
87
+ * You can use #MBEDTLS_IGNORE_RETURN to explicitly ignore the return value
88
+ * of a function that is annotated with #MBEDTLS_CHECK_RETURN.
89
+ *
90
+ * \note The use of this macro is a work in progress.
91
+ * This macro will be added to more functions in the future.
92
+ * Eventually this should appear before most functions returning
93
+ * an error code (as \c int in the \c mbedtls_xxx API or
94
+ * as ::psa_status_t in the \c psa_xxx API).
95
+ */
96
+ #if defined(MBEDTLS_CHECK_RETURN_WARNING)
97
+ #define MBEDTLS_CHECK_RETURN_TYPICAL MBEDTLS_CHECK_RETURN
98
+ #else
99
+ #define MBEDTLS_CHECK_RETURN_TYPICAL
100
+ #endif
101
+
102
+ /** Benign-failure function
103
+ *
104
+ * This macro appearing at the beginning of the declaration of a function
105
+ * indicates that it is rarely useful to check its return value.
106
+ *
107
+ * This macro has an empty expansion. It exists for documentation purposes:
108
+ * a #MBEDTLS_CHECK_RETURN_OPTIONAL annotation indicates that the function
109
+ * has been analyzed for return-check usefulness, whereas the lack of
110
+ * an annotation indicates that the function has not been analyzed and its
111
+ * return-check usefulness is unknown.
112
+ */
113
+ #define MBEDTLS_CHECK_RETURN_OPTIONAL
114
+
115
+ /** \def MBEDTLS_IGNORE_RETURN
116
+ *
117
+ * Call this macro with one argument, a function call, to suppress a warning
118
+ * from #MBEDTLS_CHECK_RETURN due to that function call.
119
+ */
120
+ #if !defined(MBEDTLS_IGNORE_RETURN)
121
+ /* GCC doesn't silence the warning with just (void)(result).
122
+ * (void)!(result) is known to work up at least up to GCC 10, as well
123
+ * as with Clang and MSVC.
124
+ *
125
+ * https://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Non_002dbugs.html
126
+ * https://stackoverflow.com/questions/40576003/ignoring-warning-wunused-result
127
+ * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66425#c34
128
+ */
129
+ #define MBEDTLS_IGNORE_RETURN(result) ((void) !(result))
130
+ #endif
131
+
132
+ /* If the following macro is defined, the library is being built by the test
133
+ * framework, and the framework is going to provide a replacement
134
+ * mbedtls_platform_zeroize() using a preprocessor macro, so the function
135
+ * declaration should be omitted. */
136
+ #if !defined(MBEDTLS_TEST_DEFINES_ZEROIZE) //no-check-names
137
+ /**
138
+ * \brief Securely zeroize a buffer
139
+ *
140
+ * The function is meant to wipe the data contained in a buffer so
141
+ * that it can no longer be recovered even if the program memory
142
+ * is later compromised. Call this function on sensitive data
143
+ * stored on the stack before returning from a function, and on
144
+ * sensitive data stored on the heap before freeing the heap
145
+ * object.
146
+ *
147
+ * It is extremely difficult to guarantee that calls to
148
+ * mbedtls_platform_zeroize() are not removed by aggressive
149
+ * compiler optimizations in a portable way. For this reason, Mbed
150
+ * TLS provides the configuration option
151
+ * MBEDTLS_PLATFORM_ZEROIZE_ALT, which allows users to configure
152
+ * mbedtls_platform_zeroize() to use a suitable implementation for
153
+ * their platform and needs
154
+ *
155
+ * \param buf Buffer to be zeroized
156
+ * \param len Length of the buffer in bytes
157
+ *
158
+ */
159
+ void mbedtls_platform_zeroize(void *buf, size_t len);
160
+ #endif
161
+
162
+ /** \brief The type of custom random generator (RNG) callbacks.
163
+ *
164
+ * Many Mbed TLS functions take two parameters
165
+ * `mbedtls_f_rng_t *f_rng, void *p_rng`. The
166
+ * library will call \c f_rng to generate
167
+ * random values.
168
+ *
169
+ * \note This is typically one of the following:
170
+ * - mbedtls_ctr_drbg_random() with \c p_rng
171
+ * pointing to a #mbedtls_ctr_drbg_context;
172
+ * - mbedtls_hmac_drbg_random() with \c p_rng
173
+ * pointing to a #mbedtls_hmac_drbg_context;
174
+ * - mbedtls_psa_get_random() with
175
+ * `prng = MBEDTLS_PSA_RANDOM_STATE`.
176
+ *
177
+ * \note Generally, given a call
178
+ * `mbedtls_foo(f_rng, p_rng, ....)`, the RNG callback
179
+ * and the context only need to remain valid until
180
+ * the call to `mbedtls_foo` returns. However, there
181
+ * are a few exceptions where the callback is stored
182
+ * in for future use. Check the documentation of
183
+ * the calling function.
184
+ *
185
+ * \warning In a multithreaded environment, calling the
186
+ * function should be thread-safe. The standard
187
+ * functions provided by the library are thread-safe
188
+ * when #MBEDTLS_THREADING_C is enabled.
189
+ *
190
+ * \warning This function must either provide as many
191
+ * bytes as requested of **cryptographic quality**
192
+ * random data, or return a negative error code.
193
+ *
194
+ * \param p_rng The \c p_rng argument that was passed along \c f_rng.
195
+ * The library always passes \c p_rng unchanged.
196
+ * This is typically a pointer to the random generator
197
+ * state, or \c NULL if the custom random generator
198
+ * doesn't need a context-specific state.
199
+ * \param[out] output On success, this must be filled with \p output_size
200
+ * bytes of cryptographic-quality random data.
201
+ * \param output_size The number of bytes to output.
202
+ *
203
+ * \return \c 0 on success, or a negative error code on failure.
204
+ * Library functions will generally propagate this
205
+ * error code, so \c MBEDTLS_ERR_xxx values are
206
+ * recommended. #MBEDTLS_ERR_ENTROPY_SOURCE_FAILED is
207
+ * typically sensible for RNG failures.
208
+ */
209
+ typedef int mbedtls_f_rng_t(void *p_rng,
210
+ unsigned char *output, size_t output_size);
211
+
212
+ #if defined(MBEDTLS_HAVE_TIME_DATE)
213
+ /**
214
+ * \brief Platform-specific implementation of gmtime_r()
215
+ *
216
+ * The function is a thread-safe abstraction that behaves
217
+ * similarly to the gmtime_r() function from Unix/POSIX.
218
+ *
219
+ * Mbed TLS will try to identify the underlying platform and
220
+ * make use of an appropriate underlying implementation (e.g.
221
+ * gmtime_r() for POSIX and gmtime_s() for Windows). If this is
222
+ * not possible, then gmtime() will be used. In this case, calls
223
+ * from the library to gmtime() will be guarded by the mutex
224
+ * mbedtls_threading_gmtime_mutex if MBEDTLS_THREADING_C is
225
+ * enabled. It is recommended that calls from outside the library
226
+ * are also guarded by this mutex.
227
+ *
228
+ * If MBEDTLS_PLATFORM_GMTIME_R_ALT is defined, then Mbed TLS will
229
+ * unconditionally use the alternative implementation for
230
+ * mbedtls_platform_gmtime_r() supplied by the user at compile time.
231
+ *
232
+ * \param tt Pointer to an object containing time (in seconds) since the
233
+ * epoch to be converted
234
+ * \param tm_buf Pointer to an object where the results will be stored
235
+ *
236
+ * \return Pointer to an object of type struct tm on success, otherwise
237
+ * NULL
238
+ */
239
+ struct tm *mbedtls_platform_gmtime_r(const mbedtls_time_t *tt,
240
+ struct tm *tm_buf);
241
+ #endif /* MBEDTLS_HAVE_TIME_DATE */
242
+
243
+ #ifdef __cplusplus
244
+ }
245
+ #endif
246
+
247
+ #endif /* MBEDTLS_PLATFORM_UTIL_H */
@@ -0,0 +1,168 @@
1
+ /**
2
+ * \file poly1305.h
3
+ *
4
+ * \brief This file contains Poly1305 definitions and functions.
5
+ *
6
+ * Poly1305 is a one-time message authenticator that can be used to
7
+ * authenticate messages. Poly1305-AES was created by Daniel
8
+ * Bernstein https://cr.yp.to/mac/poly1305-20050329.pdf The generic
9
+ * Poly1305 algorithm (not tied to AES) was also standardized in RFC
10
+ * 7539.
11
+ *
12
+ * \author Daniel King <damaki.gh@gmail.com>
13
+ */
14
+
15
+ /*
16
+ * Copyright The Mbed TLS Contributors
17
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
18
+ */
19
+
20
+ #ifndef MBEDTLS_POLY1305_H
21
+ #define MBEDTLS_POLY1305_H
22
+ #include "mbedtls/private_access.h"
23
+
24
+ #include "mbedtls/build_info.h"
25
+
26
+ #include <stdint.h>
27
+ #include <stddef.h>
28
+
29
+ /** Invalid input parameter(s). */
30
+ #define MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA -0x0057
31
+
32
+ #ifdef __cplusplus
33
+ extern "C" {
34
+ #endif
35
+
36
+ #if !defined(MBEDTLS_POLY1305_ALT)
37
+
38
+ typedef struct mbedtls_poly1305_context {
39
+ uint32_t MBEDTLS_PRIVATE(r)[4]; /** The value for 'r' (low 128 bits of the key). */
40
+ uint32_t MBEDTLS_PRIVATE(s)[4]; /** The value for 's' (high 128 bits of the key). */
41
+ uint32_t MBEDTLS_PRIVATE(acc)[5]; /** The accumulator number. */
42
+ uint8_t MBEDTLS_PRIVATE(queue)[16]; /** The current partial block of data. */
43
+ size_t MBEDTLS_PRIVATE(queue_len); /** The number of bytes stored in 'queue'. */
44
+ }
45
+ mbedtls_poly1305_context;
46
+
47
+ #else /* MBEDTLS_POLY1305_ALT */
48
+ #include "poly1305_alt.h"
49
+ #endif /* MBEDTLS_POLY1305_ALT */
50
+
51
+ /**
52
+ * \brief This function initializes the specified Poly1305 context.
53
+ *
54
+ * It must be the first API called before using
55
+ * the context.
56
+ *
57
+ * It is usually followed by a call to
58
+ * \c mbedtls_poly1305_starts(), then one or more calls to
59
+ * \c mbedtls_poly1305_update(), then one call to
60
+ * \c mbedtls_poly1305_finish(), then finally
61
+ * \c mbedtls_poly1305_free().
62
+ *
63
+ * \param ctx The Poly1305 context to initialize. This must
64
+ * not be \c NULL.
65
+ */
66
+ void mbedtls_poly1305_init(mbedtls_poly1305_context *ctx);
67
+
68
+ /**
69
+ * \brief This function releases and clears the specified
70
+ * Poly1305 context.
71
+ *
72
+ * \param ctx The Poly1305 context to clear. This may be \c NULL, in which
73
+ * case this function is a no-op. If it is not \c NULL, it must
74
+ * point to an initialized Poly1305 context.
75
+ */
76
+ void mbedtls_poly1305_free(mbedtls_poly1305_context *ctx);
77
+
78
+ /**
79
+ * \brief This function sets the one-time authentication key.
80
+ *
81
+ * \warning The key must be unique and unpredictable for each
82
+ * invocation of Poly1305.
83
+ *
84
+ * \param ctx The Poly1305 context to which the key should be bound.
85
+ * This must be initialized.
86
+ * \param key The buffer containing the \c 32 Byte (\c 256 Bit) key.
87
+ *
88
+ * \return \c 0 on success.
89
+ * \return A negative error code on failure.
90
+ */
91
+ int mbedtls_poly1305_starts(mbedtls_poly1305_context *ctx,
92
+ const unsigned char key[32]);
93
+
94
+ /**
95
+ * \brief This functions feeds an input buffer into an ongoing
96
+ * Poly1305 computation.
97
+ *
98
+ * It is called between \c mbedtls_cipher_poly1305_starts() and
99
+ * \c mbedtls_cipher_poly1305_finish().
100
+ * It can be called repeatedly to process a stream of data.
101
+ *
102
+ * \param ctx The Poly1305 context to use for the Poly1305 operation.
103
+ * This must be initialized and bound to a key.
104
+ * \param ilen The length of the input data in Bytes.
105
+ * Any value is accepted.
106
+ * \param input The buffer holding the input data.
107
+ * This pointer can be \c NULL if `ilen == 0`.
108
+ *
109
+ * \return \c 0 on success.
110
+ * \return A negative error code on failure.
111
+ */
112
+ int mbedtls_poly1305_update(mbedtls_poly1305_context *ctx,
113
+ const unsigned char *input,
114
+ size_t ilen);
115
+
116
+ /**
117
+ * \brief This function generates the Poly1305 Message
118
+ * Authentication Code (MAC).
119
+ *
120
+ * \param ctx The Poly1305 context to use for the Poly1305 operation.
121
+ * This must be initialized and bound to a key.
122
+ * \param mac The buffer to where the MAC is written. This must
123
+ * be a writable buffer of length \c 16 Bytes.
124
+ *
125
+ * \return \c 0 on success.
126
+ * \return A negative error code on failure.
127
+ */
128
+ int mbedtls_poly1305_finish(mbedtls_poly1305_context *ctx,
129
+ unsigned char mac[16]);
130
+
131
+ /**
132
+ * \brief This function calculates the Poly1305 MAC of the input
133
+ * buffer with the provided key.
134
+ *
135
+ * \warning The key must be unique and unpredictable for each
136
+ * invocation of Poly1305.
137
+ *
138
+ * \param key The buffer containing the \c 32 Byte (\c 256 Bit) key.
139
+ * \param ilen The length of the input data in Bytes.
140
+ * Any value is accepted.
141
+ * \param input The buffer holding the input data.
142
+ * This pointer can be \c NULL if `ilen == 0`.
143
+ * \param mac The buffer to where the MAC is written. This must be
144
+ * a writable buffer of length \c 16 Bytes.
145
+ *
146
+ * \return \c 0 on success.
147
+ * \return A negative error code on failure.
148
+ */
149
+ int mbedtls_poly1305_mac(const unsigned char key[32],
150
+ const unsigned char *input,
151
+ size_t ilen,
152
+ unsigned char mac[16]);
153
+
154
+ #if defined(MBEDTLS_SELF_TEST)
155
+ /**
156
+ * \brief The Poly1305 checkup routine.
157
+ *
158
+ * \return \c 0 on success.
159
+ * \return \c 1 on failure.
160
+ */
161
+ int mbedtls_poly1305_self_test(int verbose);
162
+ #endif /* MBEDTLS_SELF_TEST */
163
+
164
+ #ifdef __cplusplus
165
+ }
166
+ #endif
167
+
168
+ #endif /* MBEDTLS_POLY1305_H */
@@ -0,0 +1,20 @@
1
+ /**
2
+ * \file private_access.h
3
+ *
4
+ * \brief Macro wrapper for struct's members.
5
+ */
6
+ /*
7
+ * Copyright The Mbed TLS Contributors
8
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
9
+ */
10
+
11
+ #ifndef MBEDTLS_PRIVATE_ACCESS_H
12
+ #define MBEDTLS_PRIVATE_ACCESS_H
13
+
14
+ #ifndef MBEDTLS_ALLOW_PRIVATE_ACCESS
15
+ #define MBEDTLS_PRIVATE(member) private_##member
16
+ #else
17
+ #define MBEDTLS_PRIVATE(member) member
18
+ #endif
19
+
20
+ #endif /* MBEDTLS_PRIVATE_ACCESS_H */
@@ -0,0 +1,207 @@
1
+ /**
2
+ * \file psa_util.h
3
+ *
4
+ * \brief Utility functions for the use of the PSA Crypto library.
5
+ */
6
+ /*
7
+ * Copyright The Mbed TLS Contributors
8
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
9
+ */
10
+
11
+ #ifndef MBEDTLS_PSA_UTIL_H
12
+ #define MBEDTLS_PSA_UTIL_H
13
+ #include "mbedtls/private_access.h"
14
+
15
+ #include "mbedtls/build_info.h"
16
+
17
+ #include "psa/crypto.h"
18
+
19
+ /* ASN1 defines used in the ECDSA conversion functions.
20
+ * Note: intentionally not adding MBEDTLS_ASN1_[PARSE|WRITE]_C guards here
21
+ * otherwise error codes would be unknown in test_suite_psa_crypto_util.data.*/
22
+ #include <mbedtls/asn1write.h>
23
+
24
+ #if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
25
+
26
+ /** The random generator function for the PSA subsystem.
27
+ *
28
+ * This function is suitable as the `f_rng` random generator function
29
+ * parameter of many `mbedtls_xxx` functions.
30
+ *
31
+ * The implementation of this function depends on the configuration of the
32
+ * library.
33
+ *
34
+ * \note This function may only be used if the PSA crypto subsystem is active.
35
+ * This means that you must call psa_crypto_init() before any call to
36
+ * this function, and you must not call this function after calling
37
+ * mbedtls_psa_crypto_free().
38
+ *
39
+ * \param p_rng This parameter is only kept for backward compatibility
40
+ * reasons with legacy `f_rng` functions and it's ignored.
41
+ * Set to #MBEDTLS_PSA_RANDOM_STATE or NULL.
42
+ * \param output The buffer to fill. It must have room for
43
+ * \c output_size bytes.
44
+ * \param output_size The number of bytes to write to \p output.
45
+ * This function may fail if \p output_size is too
46
+ * large. It is guaranteed to accept any output size
47
+ * requested by Mbed TLS library functions. The
48
+ * maximum request size depends on the library
49
+ * configuration.
50
+ *
51
+ * \return \c 0 on success.
52
+ * \return An `MBEDTLS_ERR_ENTROPY_xxx`,
53
+ * `MBEDTLS_ERR_PLATFORM_xxx,
54
+ * `MBEDTLS_ERR_CTR_DRBG_xxx` or
55
+ * `MBEDTLS_ERR_HMAC_DRBG_xxx` on error.
56
+ */
57
+ int mbedtls_psa_get_random(void *p_rng,
58
+ unsigned char *output,
59
+ size_t output_size);
60
+
61
+ /** The random generator state for the PSA subsystem.
62
+ *
63
+ * This macro always expands to NULL because the `p_rng` parameter is unused
64
+ * in mbedtls_psa_get_random(), but it's kept for interface's backward
65
+ * compatibility.
66
+ */
67
+ #define MBEDTLS_PSA_RANDOM_STATE NULL
68
+
69
+ /** \defgroup psa_tls_helpers TLS helper functions
70
+ * @{
71
+ */
72
+ #if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
73
+ #include <mbedtls/ecp.h>
74
+
75
+ /** Convert an ECC curve identifier from the Mbed TLS encoding to PSA.
76
+ *
77
+ * \param grpid An Mbed TLS elliptic curve identifier
78
+ * (`MBEDTLS_ECP_DP_xxx`).
79
+ * \param[out] bits On success the bit size of the curve; 0 on failure.
80
+ *
81
+ * \return If the curve is supported in the PSA API, this function
82
+ * returns the proper PSA curve identifier
83
+ * (`PSA_ECC_FAMILY_xxx`). This holds even if the curve is
84
+ * not supported by the ECP module.
85
+ * \return \c 0 if the curve is not supported in the PSA API.
86
+ */
87
+ psa_ecc_family_t mbedtls_ecc_group_to_psa(mbedtls_ecp_group_id grpid,
88
+ size_t *bits);
89
+
90
+ /** Convert an ECC curve identifier from the PSA encoding to Mbed TLS.
91
+ *
92
+ * \param family A PSA elliptic curve family identifier
93
+ * (`PSA_ECC_FAMILY_xxx`).
94
+ * \param bits The bit-length of a private key on \p curve.
95
+ *
96
+ * \return If the curve is supported in the PSA API, this function
97
+ * returns the corresponding Mbed TLS elliptic curve
98
+ * identifier (`MBEDTLS_ECP_DP_xxx`).
99
+ * \return #MBEDTLS_ECP_DP_NONE if the combination of \c curve
100
+ * and \p bits is not supported.
101
+ */
102
+ mbedtls_ecp_group_id mbedtls_ecc_group_from_psa(psa_ecc_family_t family,
103
+ size_t bits);
104
+ #endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
105
+
106
+ /**
107
+ * \brief This function returns the PSA algorithm identifier
108
+ * associated with the given digest type.
109
+ *
110
+ * \param md_type The type of digest to search for. Must not be NONE.
111
+ *
112
+ * \warning If \p md_type is \c MBEDTLS_MD_NONE, this function will
113
+ * not return \c PSA_ALG_NONE, but an invalid algorithm.
114
+ *
115
+ * \warning This function does not check if the algorithm is
116
+ * supported, it always returns the corresponding identifier.
117
+ *
118
+ * \return The PSA algorithm identifier associated with \p md_type,
119
+ * regardless of whether it is supported or not.
120
+ */
121
+ static inline psa_algorithm_t mbedtls_md_psa_alg_from_type(mbedtls_md_type_t md_type)
122
+ {
123
+ return PSA_ALG_CATEGORY_HASH | (psa_algorithm_t) md_type;
124
+ }
125
+
126
+ /**
127
+ * \brief This function returns the given digest type
128
+ * associated with the PSA algorithm identifier.
129
+ *
130
+ * \param psa_alg The PSA algorithm identifier to search for.
131
+ *
132
+ * \warning This function does not check if the algorithm is
133
+ * supported, it always returns the corresponding identifier.
134
+ *
135
+ * \return The MD type associated with \p psa_alg,
136
+ * regardless of whether it is supported or not.
137
+ */
138
+ static inline mbedtls_md_type_t mbedtls_md_type_from_psa_alg(psa_algorithm_t psa_alg)
139
+ {
140
+ return (mbedtls_md_type_t) (psa_alg & PSA_ALG_HASH_MASK);
141
+ }
142
+ #endif /* MBEDTLS_PSA_CRYPTO_CLIENT */
143
+
144
+ #if defined(MBEDTLS_PSA_UTIL_HAVE_ECDSA)
145
+
146
+ /** Convert an ECDSA signature from raw format to DER ASN.1 format.
147
+ *
148
+ * \param bits Size of each coordinate in bits.
149
+ * \param raw Buffer that contains the signature in raw format.
150
+ * \param raw_len Length of \p raw in bytes. This must be
151
+ * PSA_BITS_TO_BYTES(bits) bytes.
152
+ * \param[out] der Buffer that will be filled with the converted DER
153
+ * output. It can overlap with raw buffer.
154
+ * \param der_size Size of \p der in bytes. It is enough if \p der_size
155
+ * is at least the size of the actual output. (The size
156
+ * of the output can vary depending on the presence of
157
+ * leading zeros in the data.) You can use
158
+ * #MBEDTLS_ECDSA_MAX_SIG_LEN(\p bits) to determine a
159
+ * size that is large enough for all signatures for a
160
+ * given value of \p bits.
161
+ * \param[out] der_len On success it contains the amount of valid data
162
+ * (in bytes) written to \p der. It's undefined
163
+ * in case of failure.
164
+ *
165
+ * \note The behavior is undefined if \p der is null,
166
+ * even if \p der_size is 0.
167
+ *
168
+ * \return 0 if successful.
169
+ * \return #MBEDTLS_ERR_ASN1_BUF_TOO_SMALL if \p der_size
170
+ * is too small or if \p bits is larger than the
171
+ * largest supported curve.
172
+ * \return #MBEDTLS_ERR_ASN1_INVALID_DATA if one of the
173
+ * numbers in the signature is 0.
174
+ */
175
+ int mbedtls_ecdsa_raw_to_der(size_t bits, const unsigned char *raw, size_t raw_len,
176
+ unsigned char *der, size_t der_size, size_t *der_len);
177
+
178
+ /** Convert an ECDSA signature from DER ASN.1 format to raw format.
179
+ *
180
+ * \param bits Size of each coordinate in bits.
181
+ * \param der Buffer that contains the signature in DER format.
182
+ * \param der_len Size of \p der in bytes.
183
+ * \param[out] raw Buffer that will be filled with the converted raw
184
+ * signature. It can overlap with der buffer.
185
+ * \param raw_size Size of \p raw in bytes. Must be at least
186
+ * 2 * PSA_BITS_TO_BYTES(bits) bytes.
187
+ * \param[out] raw_len On success it is updated with the amount of valid
188
+ * data (in bytes) written to \p raw. It's undefined
189
+ * in case of failure.
190
+ *
191
+ * \return 0 if successful.
192
+ * \return #MBEDTLS_ERR_ASN1_BUF_TOO_SMALL if \p raw_size
193
+ * is too small or if \p bits is larger than the
194
+ * largest supported curve.
195
+ * \return #MBEDTLS_ERR_ASN1_INVALID_DATA if the data in
196
+ * \p der is inconsistent with \p bits.
197
+ * \return An \c MBEDTLS_ERR_ASN1_xxx error code if
198
+ * \p der is malformed.
199
+ */
200
+ int mbedtls_ecdsa_der_to_raw(size_t bits, const unsigned char *der, size_t der_len,
201
+ unsigned char *raw, size_t raw_size, size_t *raw_len);
202
+
203
+ #endif /* MBEDTLS_PSA_UTIL_HAVE_ECDSA */
204
+
205
+ /**@}*/
206
+
207
+ #endif /* MBEDTLS_PSA_UTIL_H */