@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,500 @@
1
+ /**
2
+ * \file x509.h
3
+ *
4
+ * \brief X.509 generic defines and structures
5
+ */
6
+ /*
7
+ * Copyright The Mbed TLS Contributors
8
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
9
+ */
10
+ #ifndef MBEDTLS_X509_H
11
+ #define MBEDTLS_X509_H
12
+ #include "mbedtls/private_access.h"
13
+
14
+ #include "mbedtls/build_info.h"
15
+
16
+ #include "mbedtls/asn1.h"
17
+ #include "mbedtls/pk.h"
18
+
19
+ #if defined(MBEDTLS_RSA_C)
20
+ #include "mbedtls/rsa.h"
21
+ #endif
22
+
23
+ /**
24
+ * \addtogroup x509_module
25
+ * \{
26
+ */
27
+
28
+ #if !defined(MBEDTLS_X509_MAX_INTERMEDIATE_CA)
29
+ /**
30
+ * Maximum number of intermediate CAs in a verification chain.
31
+ * That is, maximum length of the chain, excluding the end-entity certificate
32
+ * and the trusted root certificate.
33
+ *
34
+ * Set this to a low value to prevent an adversary from making you waste
35
+ * resources verifying an overlong certificate chain.
36
+ */
37
+ #define MBEDTLS_X509_MAX_INTERMEDIATE_CA 8
38
+ #endif
39
+
40
+ /**
41
+ * \name X509 Error codes
42
+ * \{
43
+ */
44
+ /** Unavailable feature, e.g. RSA hashing/encryption combination. */
45
+ #define MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE -0x2080
46
+ /** Requested OID is unknown. */
47
+ #define MBEDTLS_ERR_X509_UNKNOWN_OID -0x2100
48
+ /** The CRT/CRL/CSR format is invalid, e.g. different type expected. */
49
+ #define MBEDTLS_ERR_X509_INVALID_FORMAT -0x2180
50
+ /** The CRT/CRL/CSR version element is invalid. */
51
+ #define MBEDTLS_ERR_X509_INVALID_VERSION -0x2200
52
+ /** The serial tag or value is invalid. */
53
+ #define MBEDTLS_ERR_X509_INVALID_SERIAL -0x2280
54
+ /** The algorithm tag or value is invalid. */
55
+ #define MBEDTLS_ERR_X509_INVALID_ALG -0x2300
56
+ /** The name tag or value is invalid. */
57
+ #define MBEDTLS_ERR_X509_INVALID_NAME -0x2380
58
+ /** The date tag or value is invalid. */
59
+ #define MBEDTLS_ERR_X509_INVALID_DATE -0x2400
60
+ /** The signature tag or value invalid. */
61
+ #define MBEDTLS_ERR_X509_INVALID_SIGNATURE -0x2480
62
+ /** The extension tag or value is invalid. */
63
+ #define MBEDTLS_ERR_X509_INVALID_EXTENSIONS -0x2500
64
+ /** CRT/CRL/CSR has an unsupported version number. */
65
+ #define MBEDTLS_ERR_X509_UNKNOWN_VERSION -0x2580
66
+ /** Signature algorithm (oid) is unsupported. */
67
+ #define MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG -0x2600
68
+ /** Signature algorithms do not match. (see \c ::mbedtls_x509_crt sig_oid) */
69
+ #define MBEDTLS_ERR_X509_SIG_MISMATCH -0x2680
70
+ /** Certificate verification failed, e.g. CRL, CA or signature check failed. */
71
+ #define MBEDTLS_ERR_X509_CERT_VERIFY_FAILED -0x2700
72
+ /** Format not recognized as DER or PEM. */
73
+ #define MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT -0x2780
74
+ /** Input invalid. */
75
+ #define MBEDTLS_ERR_X509_BAD_INPUT_DATA -0x2800
76
+ /** Allocation of memory failed. */
77
+ #define MBEDTLS_ERR_X509_ALLOC_FAILED -0x2880
78
+ /** Read/write of file failed. */
79
+ #define MBEDTLS_ERR_X509_FILE_IO_ERROR -0x2900
80
+ /** Destination buffer is too small. */
81
+ #define MBEDTLS_ERR_X509_BUFFER_TOO_SMALL -0x2980
82
+ /** A fatal error occurred, eg the chain is too long or the vrfy callback failed. */
83
+ #define MBEDTLS_ERR_X509_FATAL_ERROR -0x3000
84
+ /** \} name X509 Error codes */
85
+
86
+ /**
87
+ * \name X509 Verify codes
88
+ * \{
89
+ */
90
+ /* Reminder: update x509_crt_verify_strings[] in library/x509_crt.c */
91
+ #define MBEDTLS_X509_BADCERT_EXPIRED 0x01 /**< The certificate validity has expired. */
92
+ #define MBEDTLS_X509_BADCERT_REVOKED 0x02 /**< The certificate has been revoked (is on a CRL). */
93
+ #define MBEDTLS_X509_BADCERT_CN_MISMATCH 0x04 /**< The certificate Common Name (CN) does not match with the expected CN. */
94
+ #define MBEDTLS_X509_BADCERT_NOT_TRUSTED 0x08 /**< The certificate is not correctly signed by the trusted CA. */
95
+ #define MBEDTLS_X509_BADCRL_NOT_TRUSTED 0x10 /**< The CRL is not correctly signed by the trusted CA. */
96
+ #define MBEDTLS_X509_BADCRL_EXPIRED 0x20 /**< The CRL is expired. */
97
+ #define MBEDTLS_X509_BADCERT_MISSING 0x40 /**< Certificate was missing. */
98
+ #define MBEDTLS_X509_BADCERT_SKIP_VERIFY 0x80 /**< Certificate verification was skipped. */
99
+ #define MBEDTLS_X509_BADCERT_OTHER 0x0100 /**< Other reason (can be used by verify callback) */
100
+ #define MBEDTLS_X509_BADCERT_FUTURE 0x0200 /**< The certificate validity starts in the future. */
101
+ #define MBEDTLS_X509_BADCRL_FUTURE 0x0400 /**< The CRL is from the future */
102
+ #define MBEDTLS_X509_BADCERT_KEY_USAGE 0x0800 /**< Usage does not match the keyUsage extension. */
103
+ #define MBEDTLS_X509_BADCERT_EXT_KEY_USAGE 0x1000 /**< Usage does not match the extendedKeyUsage extension. */
104
+ #define MBEDTLS_X509_BADCERT_NS_CERT_TYPE 0x2000 /**< Usage does not match the nsCertType extension. */
105
+ #define MBEDTLS_X509_BADCERT_BAD_MD 0x4000 /**< The certificate is signed with an unacceptable hash. */
106
+ #define MBEDTLS_X509_BADCERT_BAD_PK 0x8000 /**< The certificate is signed with an unacceptable PK alg (eg RSA vs ECDSA). */
107
+ #define MBEDTLS_X509_BADCERT_BAD_KEY 0x010000 /**< The certificate is signed with an unacceptable key (eg bad curve, RSA too short). */
108
+ #define MBEDTLS_X509_BADCRL_BAD_MD 0x020000 /**< The CRL is signed with an unacceptable hash. */
109
+ #define MBEDTLS_X509_BADCRL_BAD_PK 0x040000 /**< The CRL is signed with an unacceptable PK alg (eg RSA vs ECDSA). */
110
+ #define MBEDTLS_X509_BADCRL_BAD_KEY 0x080000 /**< The CRL is signed with an unacceptable key (eg bad curve, RSA too short). */
111
+
112
+ /** \} name X509 Verify codes */
113
+ /** \} addtogroup x509_module */
114
+
115
+ /*
116
+ * X.509 v3 Subject Alternative Name types.
117
+ * otherName [0] OtherName,
118
+ * rfc822Name [1] IA5String,
119
+ * dNSName [2] IA5String,
120
+ * x400Address [3] ORAddress,
121
+ * directoryName [4] Name,
122
+ * ediPartyName [5] EDIPartyName,
123
+ * uniformResourceIdentifier [6] IA5String,
124
+ * iPAddress [7] OCTET STRING,
125
+ * registeredID [8] OBJECT IDENTIFIER
126
+ */
127
+ #define MBEDTLS_X509_SAN_OTHER_NAME 0
128
+ #define MBEDTLS_X509_SAN_RFC822_NAME 1
129
+ #define MBEDTLS_X509_SAN_DNS_NAME 2
130
+ #define MBEDTLS_X509_SAN_X400_ADDRESS_NAME 3
131
+ #define MBEDTLS_X509_SAN_DIRECTORY_NAME 4
132
+ #define MBEDTLS_X509_SAN_EDI_PARTY_NAME 5
133
+ #define MBEDTLS_X509_SAN_UNIFORM_RESOURCE_IDENTIFIER 6
134
+ #define MBEDTLS_X509_SAN_IP_ADDRESS 7
135
+ #define MBEDTLS_X509_SAN_REGISTERED_ID 8
136
+
137
+ /*
138
+ * X.509 v3 Key Usage Extension flags
139
+ * Reminder: update mbedtls_x509_info_key_usage() when adding new flags.
140
+ */
141
+ #define MBEDTLS_X509_KU_DIGITAL_SIGNATURE (0x80) /* bit 0 */
142
+ #define MBEDTLS_X509_KU_NON_REPUDIATION (0x40) /* bit 1 */
143
+ #define MBEDTLS_X509_KU_KEY_ENCIPHERMENT (0x20) /* bit 2 */
144
+ #define MBEDTLS_X509_KU_DATA_ENCIPHERMENT (0x10) /* bit 3 */
145
+ #define MBEDTLS_X509_KU_KEY_AGREEMENT (0x08) /* bit 4 */
146
+ #define MBEDTLS_X509_KU_KEY_CERT_SIGN (0x04) /* bit 5 */
147
+ #define MBEDTLS_X509_KU_CRL_SIGN (0x02) /* bit 6 */
148
+ #define MBEDTLS_X509_KU_ENCIPHER_ONLY (0x01) /* bit 7 */
149
+ #define MBEDTLS_X509_KU_DECIPHER_ONLY (0x8000) /* bit 8 */
150
+
151
+ /*
152
+ * Netscape certificate types
153
+ * (http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn3.html)
154
+ */
155
+
156
+ #define MBEDTLS_X509_NS_CERT_TYPE_SSL_CLIENT (0x80) /* bit 0 */
157
+ #define MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER (0x40) /* bit 1 */
158
+ #define MBEDTLS_X509_NS_CERT_TYPE_EMAIL (0x20) /* bit 2 */
159
+ #define MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING (0x10) /* bit 3 */
160
+ #define MBEDTLS_X509_NS_CERT_TYPE_RESERVED (0x08) /* bit 4 */
161
+ #define MBEDTLS_X509_NS_CERT_TYPE_SSL_CA (0x04) /* bit 5 */
162
+ #define MBEDTLS_X509_NS_CERT_TYPE_EMAIL_CA (0x02) /* bit 6 */
163
+ #define MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING_CA (0x01) /* bit 7 */
164
+
165
+ /*
166
+ * X.509 extension types
167
+ *
168
+ * Comments refer to the status for using certificates. Status can be
169
+ * different for writing certificates or reading CRLs or CSRs.
170
+ *
171
+ * Those are defined in oid.h as oid.c needs them in a data structure. Since
172
+ * these were previously defined here, let's have aliases for compatibility.
173
+ */
174
+ #define MBEDTLS_X509_EXT_AUTHORITY_KEY_IDENTIFIER MBEDTLS_OID_X509_EXT_AUTHORITY_KEY_IDENTIFIER
175
+ #define MBEDTLS_X509_EXT_SUBJECT_KEY_IDENTIFIER MBEDTLS_OID_X509_EXT_SUBJECT_KEY_IDENTIFIER
176
+ #define MBEDTLS_X509_EXT_KEY_USAGE MBEDTLS_OID_X509_EXT_KEY_USAGE
177
+ #define MBEDTLS_X509_EXT_CERTIFICATE_POLICIES MBEDTLS_OID_X509_EXT_CERTIFICATE_POLICIES
178
+ #define MBEDTLS_X509_EXT_POLICY_MAPPINGS MBEDTLS_OID_X509_EXT_POLICY_MAPPINGS
179
+ #define MBEDTLS_X509_EXT_SUBJECT_ALT_NAME MBEDTLS_OID_X509_EXT_SUBJECT_ALT_NAME /* Supported (DNS) */
180
+ #define MBEDTLS_X509_EXT_ISSUER_ALT_NAME MBEDTLS_OID_X509_EXT_ISSUER_ALT_NAME
181
+ #define MBEDTLS_X509_EXT_SUBJECT_DIRECTORY_ATTRS MBEDTLS_OID_X509_EXT_SUBJECT_DIRECTORY_ATTRS
182
+ #define MBEDTLS_X509_EXT_BASIC_CONSTRAINTS MBEDTLS_OID_X509_EXT_BASIC_CONSTRAINTS /* Supported */
183
+ #define MBEDTLS_X509_EXT_NAME_CONSTRAINTS MBEDTLS_OID_X509_EXT_NAME_CONSTRAINTS
184
+ #define MBEDTLS_X509_EXT_POLICY_CONSTRAINTS MBEDTLS_OID_X509_EXT_POLICY_CONSTRAINTS
185
+ #define MBEDTLS_X509_EXT_EXTENDED_KEY_USAGE MBEDTLS_OID_X509_EXT_EXTENDED_KEY_USAGE
186
+ #define MBEDTLS_X509_EXT_CRL_DISTRIBUTION_POINTS MBEDTLS_OID_X509_EXT_CRL_DISTRIBUTION_POINTS
187
+ #define MBEDTLS_X509_EXT_INIHIBIT_ANYPOLICY MBEDTLS_OID_X509_EXT_INIHIBIT_ANYPOLICY
188
+ #define MBEDTLS_X509_EXT_FRESHEST_CRL MBEDTLS_OID_X509_EXT_FRESHEST_CRL
189
+ #define MBEDTLS_X509_EXT_NS_CERT_TYPE MBEDTLS_OID_X509_EXT_NS_CERT_TYPE
190
+
191
+ /*
192
+ * Storage format identifiers
193
+ * Recognized formats: PEM and DER
194
+ */
195
+ #define MBEDTLS_X509_FORMAT_DER 1
196
+ #define MBEDTLS_X509_FORMAT_PEM 2
197
+
198
+ #define MBEDTLS_X509_MAX_DN_NAME_SIZE 256 /**< Maximum value size of a DN entry */
199
+
200
+ #ifdef __cplusplus
201
+ extern "C" {
202
+ #endif
203
+
204
+ /**
205
+ * \addtogroup x509_module
206
+ * \{ */
207
+
208
+ /**
209
+ * \name Structures for parsing X.509 certificates, CRLs and CSRs
210
+ * \{
211
+ */
212
+
213
+ /**
214
+ * Type-length-value structure that allows for ASN1 using DER.
215
+ */
216
+ typedef mbedtls_asn1_buf mbedtls_x509_buf;
217
+
218
+ /**
219
+ * Container for ASN1 bit strings.
220
+ */
221
+ typedef mbedtls_asn1_bitstring mbedtls_x509_bitstring;
222
+
223
+ /**
224
+ * Container for ASN1 named information objects.
225
+ * It allows for Relative Distinguished Names (e.g. cn=localhost,ou=code,etc.).
226
+ */
227
+ typedef mbedtls_asn1_named_data mbedtls_x509_name;
228
+
229
+ /**
230
+ * Container for a sequence of ASN.1 items
231
+ */
232
+ typedef mbedtls_asn1_sequence mbedtls_x509_sequence;
233
+
234
+ /*
235
+ * Container for the fields of the Authority Key Identifier object
236
+ */
237
+ typedef struct mbedtls_x509_authority {
238
+ mbedtls_x509_buf keyIdentifier;
239
+ mbedtls_x509_sequence authorityCertIssuer;
240
+ mbedtls_x509_buf authorityCertSerialNumber;
241
+ mbedtls_x509_buf raw;
242
+ }
243
+ mbedtls_x509_authority;
244
+
245
+ /** Container for date and time (precision in seconds). */
246
+ typedef struct mbedtls_x509_time {
247
+ int year, mon, day; /**< Date. */
248
+ int hour, min, sec; /**< Time. */
249
+ }
250
+ mbedtls_x509_time;
251
+
252
+ /**
253
+ * From RFC 5280 section 4.2.1.6:
254
+ * OtherName ::= SEQUENCE {
255
+ * type-id OBJECT IDENTIFIER,
256
+ * value [0] EXPLICIT ANY DEFINED BY type-id }
257
+ *
258
+ * Future versions of the library may add new fields to this structure or
259
+ * to its embedded union and structure.
260
+ */
261
+ typedef struct mbedtls_x509_san_other_name {
262
+ /**
263
+ * The type_id is an OID as defined in RFC 5280.
264
+ * To check the value of the type id, you should use
265
+ * \p MBEDTLS_OID_CMP with a known OID mbedtls_x509_buf.
266
+ */
267
+ mbedtls_x509_buf type_id; /**< The type id. */
268
+ union {
269
+ /**
270
+ * From RFC 4108 section 5:
271
+ * HardwareModuleName ::= SEQUENCE {
272
+ * hwType OBJECT IDENTIFIER,
273
+ * hwSerialNum OCTET STRING }
274
+ */
275
+ struct {
276
+ mbedtls_x509_buf oid; /**< The object identifier. */
277
+ mbedtls_x509_buf val; /**< The named value. */
278
+ }
279
+ hardware_module_name;
280
+ }
281
+ value;
282
+ }
283
+ mbedtls_x509_san_other_name;
284
+
285
+ /**
286
+ * A structure for holding the parsed Subject Alternative Name,
287
+ * according to type.
288
+ *
289
+ * Future versions of the library may add new fields to this structure or
290
+ * to its embedded union and structure.
291
+ */
292
+ typedef struct mbedtls_x509_subject_alternative_name {
293
+ int type; /**< The SAN type, value of MBEDTLS_X509_SAN_XXX. */
294
+ union {
295
+ mbedtls_x509_san_other_name other_name;
296
+ mbedtls_x509_name directory_name;
297
+ mbedtls_x509_buf unstructured_name; /**< The buffer for the unstructured types. rfc822Name, dnsName and uniformResourceIdentifier are currently supported. */
298
+ }
299
+ san; /**< A union of the supported SAN types */
300
+ }
301
+ mbedtls_x509_subject_alternative_name;
302
+
303
+ typedef struct mbedtls_x509_san_list {
304
+ mbedtls_x509_subject_alternative_name node;
305
+ struct mbedtls_x509_san_list *next;
306
+ }
307
+ mbedtls_x509_san_list;
308
+
309
+ /** \} name Structures for parsing X.509 certificates, CRLs and CSRs */
310
+ /** \} addtogroup x509_module */
311
+
312
+ /**
313
+ * \brief Store the certificate DN in printable form into buf;
314
+ * no more than size characters will be written.
315
+ *
316
+ * \param buf Buffer to write to
317
+ * \param size Maximum size of buffer
318
+ * \param dn The X509 name to represent
319
+ *
320
+ * \return The length of the string written (not including the
321
+ * terminated nul byte), or a negative error code.
322
+ */
323
+ int mbedtls_x509_dn_gets(char *buf, size_t size, const mbedtls_x509_name *dn);
324
+
325
+ /**
326
+ * \brief Convert the certificate DN string \p name into
327
+ * a linked list of mbedtls_x509_name (equivalent to
328
+ * mbedtls_asn1_named_data).
329
+ *
330
+ * \note This function allocates a linked list, and places the head
331
+ * pointer in \p head. This list must later be freed by a
332
+ * call to mbedtls_asn1_free_named_data_list().
333
+ *
334
+ * \param[out] head Address in which to store the pointer to the head of the
335
+ * allocated list of mbedtls_x509_name. Must point to NULL on
336
+ * entry.
337
+ * \param[in] name The string representation of a DN to convert
338
+ *
339
+ * \return 0 on success, or a negative error code.
340
+ */
341
+ int mbedtls_x509_string_to_names(mbedtls_asn1_named_data **head, const char *name);
342
+
343
+ /**
344
+ * \brief Return the next relative DN in an X509 name.
345
+ *
346
+ * \note Intended use is to compare function result to dn->next
347
+ * in order to detect boundaries of multi-valued RDNs.
348
+ *
349
+ * \param dn Current node in the X509 name
350
+ *
351
+ * \return Pointer to the first attribute-value pair of the
352
+ * next RDN in sequence, or NULL if end is reached.
353
+ */
354
+ static inline mbedtls_x509_name *mbedtls_x509_dn_get_next(
355
+ mbedtls_x509_name *dn)
356
+ {
357
+ while (dn->MBEDTLS_PRIVATE(next_merged) && dn->next != NULL) {
358
+ dn = dn->next;
359
+ }
360
+ return dn->next;
361
+ }
362
+
363
+ /**
364
+ * \brief Store the certificate serial in printable form into buf;
365
+ * no more than size characters will be written.
366
+ *
367
+ * \param buf Buffer to write to
368
+ * \param size Maximum size of buffer
369
+ * \param serial The X509 serial to represent
370
+ *
371
+ * \return The length of the string written (not including the
372
+ * terminated nul byte), or a negative error code.
373
+ */
374
+ int mbedtls_x509_serial_gets(char *buf, size_t size, const mbedtls_x509_buf *serial);
375
+
376
+ /**
377
+ * \brief Compare pair of mbedtls_x509_time.
378
+ *
379
+ * \param t1 mbedtls_x509_time to compare
380
+ * \param t2 mbedtls_x509_time to compare
381
+ *
382
+ * \return < 0 if t1 is before t2
383
+ * 0 if t1 equals t2
384
+ * > 0 if t1 is after t2
385
+ */
386
+ int mbedtls_x509_time_cmp(const mbedtls_x509_time *t1, const mbedtls_x509_time *t2);
387
+
388
+ #if defined(MBEDTLS_HAVE_TIME_DATE)
389
+ /**
390
+ * \brief Fill mbedtls_x509_time with provided mbedtls_time_t.
391
+ *
392
+ * \param tt mbedtls_time_t to convert
393
+ * \param now mbedtls_x509_time to fill with converted mbedtls_time_t
394
+ *
395
+ * \return \c 0 on success
396
+ * \return A non-zero return value on failure.
397
+ */
398
+ int mbedtls_x509_time_gmtime(mbedtls_time_t tt, mbedtls_x509_time *now);
399
+ #endif /* MBEDTLS_HAVE_TIME_DATE */
400
+
401
+ /**
402
+ * \brief Check a given mbedtls_x509_time against the system time
403
+ * and tell if it's in the past.
404
+ *
405
+ * \note Intended usage is "if( is_past( valid_to ) ) ERROR".
406
+ * Hence the return value of 1 if on internal errors.
407
+ *
408
+ * \param to mbedtls_x509_time to check
409
+ *
410
+ * \return 1 if the given time is in the past or an error occurred,
411
+ * 0 otherwise.
412
+ */
413
+ int mbedtls_x509_time_is_past(const mbedtls_x509_time *to);
414
+
415
+ /**
416
+ * \brief Check a given mbedtls_x509_time against the system time
417
+ * and tell if it's in the future.
418
+ *
419
+ * \note Intended usage is "if( is_future( valid_from ) ) ERROR".
420
+ * Hence the return value of 1 if on internal errors.
421
+ *
422
+ * \param from mbedtls_x509_time to check
423
+ *
424
+ * \return 1 if the given time is in the future or an error occurred,
425
+ * 0 otherwise.
426
+ */
427
+ int mbedtls_x509_time_is_future(const mbedtls_x509_time *from);
428
+
429
+ /**
430
+ * \brief This function parses an item in the SubjectAlternativeNames
431
+ * extension. Please note that this function might allocate
432
+ * additional memory for a subject alternative name, thus
433
+ * mbedtls_x509_free_subject_alt_name has to be called
434
+ * to dispose of this additional memory afterwards.
435
+ *
436
+ * \param san_buf The buffer holding the raw data item of the subject
437
+ * alternative name.
438
+ * \param san The target structure to populate with the parsed presentation
439
+ * of the subject alternative name encoded in \p san_buf.
440
+ *
441
+ * \note Supported GeneralName types, as defined in RFC 5280:
442
+ * "rfc822Name", "dnsName", "directoryName",
443
+ * "uniformResourceIdentifier" and "hardware_module_name"
444
+ * of type "otherName", as defined in RFC 4108.
445
+ *
446
+ * \note This function should be called on a single raw data of
447
+ * subject alternative name. For example, after successful
448
+ * certificate parsing, one must iterate on every item in the
449
+ * \c crt->subject_alt_names sequence, and pass it to
450
+ * this function.
451
+ *
452
+ * \warning The target structure contains pointers to the raw data of the
453
+ * parsed certificate, and its lifetime is restricted by the
454
+ * lifetime of the certificate.
455
+ *
456
+ * \return \c 0 on success
457
+ * \return #MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE for an unsupported
458
+ * SAN type.
459
+ * \return Another negative value for any other failure.
460
+ */
461
+ int mbedtls_x509_parse_subject_alt_name(const mbedtls_x509_buf *san_buf,
462
+ mbedtls_x509_subject_alternative_name *san);
463
+ /**
464
+ * \brief Unallocate all data related to subject alternative name
465
+ *
466
+ * \param san SAN structure - extra memory owned by this structure will be freed
467
+ */
468
+ void mbedtls_x509_free_subject_alt_name(mbedtls_x509_subject_alternative_name *san);
469
+
470
+ /**
471
+ * \brief This function parses a CN string as an IP address.
472
+ *
473
+ * \param cn The CN string to parse. CN string MUST be null-terminated.
474
+ * \param dst The target buffer to populate with the binary IP address.
475
+ * The buffer MUST be 16 bytes to save IPv6, and should be
476
+ * 4-byte aligned if the result will be used as struct in_addr.
477
+ * e.g. uint32_t dst[4]
478
+ *
479
+ * \note \p cn is parsed as an IPv6 address if string contains ':',
480
+ * else \p cn is parsed as an IPv4 address.
481
+ *
482
+ * \return Length of binary IP address; num bytes written to target.
483
+ * \return \c 0 on failure to parse CN string as an IP address.
484
+ */
485
+ size_t mbedtls_x509_crt_parse_cn_inet_pton(const char *cn, void *dst);
486
+
487
+ #define MBEDTLS_X509_SAFE_SNPRINTF \
488
+ do { \
489
+ if (ret < 0 || (size_t) ret >= n) \
490
+ return MBEDTLS_ERR_X509_BUFFER_TOO_SMALL; \
491
+ \
492
+ n -= (size_t) ret; \
493
+ p += (size_t) ret; \
494
+ } while (0)
495
+
496
+ #ifdef __cplusplus
497
+ }
498
+ #endif
499
+
500
+ #endif /* MBEDTLS_X509_H */
@@ -0,0 +1,184 @@
1
+ /**
2
+ * \file x509_crl.h
3
+ *
4
+ * \brief X.509 certificate revocation list parsing
5
+ */
6
+ /*
7
+ * Copyright The Mbed TLS Contributors
8
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
9
+ */
10
+ #ifndef MBEDTLS_X509_CRL_H
11
+ #define MBEDTLS_X509_CRL_H
12
+ #include "mbedtls/private_access.h"
13
+
14
+ #include "mbedtls/build_info.h"
15
+
16
+ #include "mbedtls/x509.h"
17
+
18
+ #ifdef __cplusplus
19
+ extern "C" {
20
+ #endif
21
+
22
+ /**
23
+ * \addtogroup x509_module
24
+ * \{ */
25
+
26
+ /**
27
+ * \name Structures and functions for parsing CRLs
28
+ * \{
29
+ */
30
+
31
+ /**
32
+ * Certificate revocation list entry.
33
+ * Contains the CA-specific serial numbers and revocation dates.
34
+ *
35
+ * Some fields of this structure are publicly readable. Do not modify
36
+ * them except via Mbed TLS library functions: the effect of modifying
37
+ * those fields or the data that those fields points to is unspecified.
38
+ */
39
+ typedef struct mbedtls_x509_crl_entry {
40
+ /** Direct access to the whole entry inside the containing buffer. */
41
+ mbedtls_x509_buf raw;
42
+ /** The serial number of the revoked certificate. */
43
+ mbedtls_x509_buf serial;
44
+ /** The revocation date of this entry. */
45
+ mbedtls_x509_time revocation_date;
46
+ /** Direct access to the list of CRL entry extensions
47
+ * (an ASN.1 constructed sequence).
48
+ *
49
+ * If there are no extensions, `entry_ext.len == 0` and
50
+ * `entry_ext.p == NULL`. */
51
+ mbedtls_x509_buf entry_ext;
52
+
53
+ /** Next element in the linked list of entries.
54
+ * \p NULL indicates the end of the list.
55
+ * Do not modify this field directly. */
56
+ struct mbedtls_x509_crl_entry *next;
57
+ }
58
+ mbedtls_x509_crl_entry;
59
+
60
+ /**
61
+ * Certificate revocation list structure.
62
+ * Every CRL may have multiple entries.
63
+ */
64
+ typedef struct mbedtls_x509_crl {
65
+ mbedtls_x509_buf raw; /**< The raw certificate data (DER). */
66
+ mbedtls_x509_buf tbs; /**< The raw certificate body (DER). The part that is To Be Signed. */
67
+
68
+ int version; /**< CRL version (1=v1, 2=v2) */
69
+ mbedtls_x509_buf sig_oid; /**< CRL signature type identifier */
70
+
71
+ mbedtls_x509_buf issuer_raw; /**< The raw issuer data (DER). */
72
+
73
+ mbedtls_x509_name issuer; /**< The parsed issuer data (named information object). */
74
+
75
+ mbedtls_x509_time this_update;
76
+ mbedtls_x509_time next_update;
77
+
78
+ mbedtls_x509_crl_entry entry; /**< The CRL entries containing the certificate revocation times for this CA. */
79
+
80
+ mbedtls_x509_buf crl_ext;
81
+
82
+ mbedtls_x509_buf MBEDTLS_PRIVATE(sig_oid2);
83
+ mbedtls_x509_buf MBEDTLS_PRIVATE(sig);
84
+ mbedtls_md_type_t MBEDTLS_PRIVATE(sig_md); /**< Internal representation of the MD algorithm of the signature algorithm, e.g. MBEDTLS_MD_SHA256 */
85
+ mbedtls_pk_type_t MBEDTLS_PRIVATE(sig_pk); /**< Internal representation of the Public Key algorithm of the signature algorithm, e.g. MBEDTLS_PK_RSA */
86
+ void *MBEDTLS_PRIVATE(sig_opts); /**< Signature options to be passed to mbedtls_pk_verify_ext(), e.g. for RSASSA-PSS */
87
+
88
+ /** Next element in the linked list of CRL.
89
+ * \p NULL indicates the end of the list.
90
+ * Do not modify this field directly. */
91
+ struct mbedtls_x509_crl *next;
92
+ }
93
+ mbedtls_x509_crl;
94
+
95
+ /**
96
+ * \brief Parse a DER-encoded CRL and append it to the chained list
97
+ *
98
+ * \note If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
99
+ * subsystem must have been initialized by calling
100
+ * psa_crypto_init() before calling this function.
101
+ *
102
+ * \param chain points to the start of the chain
103
+ * \param buf buffer holding the CRL data in DER format
104
+ * \param buflen size of the buffer
105
+ * (including the terminating null byte for PEM data)
106
+ *
107
+ * \return 0 if successful, or a specific X509 or PEM error code
108
+ */
109
+ int mbedtls_x509_crl_parse_der(mbedtls_x509_crl *chain,
110
+ const unsigned char *buf, size_t buflen);
111
+ /**
112
+ * \brief Parse one or more CRLs and append them to the chained list
113
+ *
114
+ * \note Multiple CRLs are accepted only if using PEM format
115
+ *
116
+ * \note If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
117
+ * subsystem must have been initialized by calling
118
+ * psa_crypto_init() before calling this function.
119
+ *
120
+ * \param chain points to the start of the chain
121
+ * \param buf buffer holding the CRL data in PEM or DER format
122
+ * \param buflen size of the buffer
123
+ * (including the terminating null byte for PEM data)
124
+ *
125
+ * \return 0 if successful, or a specific X509 or PEM error code
126
+ */
127
+ int mbedtls_x509_crl_parse(mbedtls_x509_crl *chain, const unsigned char *buf, size_t buflen);
128
+
129
+ #if defined(MBEDTLS_FS_IO)
130
+ /**
131
+ * \brief Load one or more CRLs and append them to the chained list
132
+ *
133
+ * \note Multiple CRLs are accepted only if using PEM format
134
+ *
135
+ * \note If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto
136
+ * subsystem must have been initialized by calling
137
+ * psa_crypto_init() before calling this function.
138
+ *
139
+ * \param chain points to the start of the chain
140
+ * \param path filename to read the CRLs from (in PEM or DER encoding)
141
+ *
142
+ * \return 0 if successful, or a specific X509 or PEM error code
143
+ */
144
+ int mbedtls_x509_crl_parse_file(mbedtls_x509_crl *chain, const char *path);
145
+ #endif /* MBEDTLS_FS_IO */
146
+
147
+ #if !defined(MBEDTLS_X509_REMOVE_INFO)
148
+ /**
149
+ * \brief Returns an informational string about the CRL.
150
+ *
151
+ * \param buf Buffer to write to
152
+ * \param size Maximum size of buffer
153
+ * \param prefix A line prefix
154
+ * \param crl The X509 CRL to represent
155
+ *
156
+ * \return The length of the string written (not including the
157
+ * terminated nul byte), or a negative error code.
158
+ */
159
+ int mbedtls_x509_crl_info(char *buf, size_t size, const char *prefix,
160
+ const mbedtls_x509_crl *crl);
161
+ #endif /* !MBEDTLS_X509_REMOVE_INFO */
162
+
163
+ /**
164
+ * \brief Initialize a CRL (chain)
165
+ *
166
+ * \param crl CRL chain to initialize
167
+ */
168
+ void mbedtls_x509_crl_init(mbedtls_x509_crl *crl);
169
+
170
+ /**
171
+ * \brief Unallocate all CRL data
172
+ *
173
+ * \param crl CRL chain to free
174
+ */
175
+ void mbedtls_x509_crl_free(mbedtls_x509_crl *crl);
176
+
177
+ /** \} name Structures and functions for parsing CRLs */
178
+ /** \} addtogroup x509_module */
179
+
180
+ #ifdef __cplusplus
181
+ }
182
+ #endif
183
+
184
+ #endif /* mbedtls_x509_crl.h */