@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,708 @@
1
+ /*
2
+ * X.509 Certificate Revocation List (CRL) parsing
3
+ *
4
+ * Copyright The Mbed TLS Contributors
5
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
6
+ */
7
+ /*
8
+ * The ITU-T X.509 standard defines a certificate format for PKI.
9
+ *
10
+ * http://www.ietf.org/rfc/rfc5280.txt (Certificates and CRLs)
11
+ * http://www.ietf.org/rfc/rfc3279.txt (Alg IDs for CRLs)
12
+ * http://www.ietf.org/rfc/rfc2986.txt (CSRs, aka PKCS#10)
13
+ *
14
+ * http://www.itu.int/ITU-T/studygroups/com17/languages/X.680-0207.pdf
15
+ * http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf
16
+ */
17
+
18
+ #include "common.h"
19
+
20
+ #if defined(MBEDTLS_X509_CRL_PARSE_C)
21
+
22
+ #include "mbedtls/x509_crl.h"
23
+ #include "x509_internal.h"
24
+ #include "mbedtls/error.h"
25
+ #include "mbedtls/oid.h"
26
+ #include "mbedtls/platform_util.h"
27
+
28
+ #include <string.h>
29
+
30
+ #if defined(MBEDTLS_PEM_PARSE_C)
31
+ #include "mbedtls/pem.h"
32
+ #endif
33
+
34
+ #include "mbedtls/platform.h"
35
+
36
+ #if defined(MBEDTLS_HAVE_TIME)
37
+ #if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32)
38
+ #include <windows.h>
39
+ #else
40
+ #include <time.h>
41
+ #endif
42
+ #endif
43
+
44
+ #if defined(MBEDTLS_FS_IO) || defined(EFIX64) || defined(EFI32)
45
+ #include <stdio.h>
46
+ #endif
47
+
48
+ /*
49
+ * Version ::= INTEGER { v1(0), v2(1) }
50
+ */
51
+ static int x509_crl_get_version(unsigned char **p,
52
+ const unsigned char *end,
53
+ int *ver)
54
+ {
55
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
56
+
57
+ if ((ret = mbedtls_asn1_get_int(p, end, ver)) != 0) {
58
+ if (ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) {
59
+ *ver = 0;
60
+ return 0;
61
+ }
62
+
63
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_VERSION, ret);
64
+ }
65
+
66
+ return 0;
67
+ }
68
+
69
+ /*
70
+ * X.509 CRL v2 extensions
71
+ *
72
+ * We currently don't parse any extension's content, but we do check that the
73
+ * list of extensions is well-formed and abort on critical extensions (that
74
+ * are unsupported as we don't support any extension so far)
75
+ */
76
+ static int x509_get_crl_ext(unsigned char **p,
77
+ const unsigned char *end,
78
+ mbedtls_x509_buf *ext)
79
+ {
80
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
81
+
82
+ if (*p == end) {
83
+ return 0;
84
+ }
85
+
86
+ /*
87
+ * crlExtensions [0] EXPLICIT Extensions OPTIONAL
88
+ * -- if present, version MUST be v2
89
+ */
90
+ if ((ret = mbedtls_x509_get_ext(p, end, ext, 0)) != 0) {
91
+ return ret;
92
+ }
93
+
94
+ end = ext->p + ext->len;
95
+
96
+ while (*p < end) {
97
+ /*
98
+ * Extension ::= SEQUENCE {
99
+ * extnID OBJECT IDENTIFIER,
100
+ * critical BOOLEAN DEFAULT FALSE,
101
+ * extnValue OCTET STRING }
102
+ */
103
+ int is_critical = 0;
104
+ const unsigned char *end_ext_data;
105
+ size_t len;
106
+
107
+ /* Get enclosing sequence tag */
108
+ if ((ret = mbedtls_asn1_get_tag(p, end, &len,
109
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) {
110
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret);
111
+ }
112
+
113
+ end_ext_data = *p + len;
114
+
115
+ /* Get OID (currently ignored) */
116
+ if ((ret = mbedtls_asn1_get_tag(p, end_ext_data, &len,
117
+ MBEDTLS_ASN1_OID)) != 0) {
118
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret);
119
+ }
120
+ *p += len;
121
+
122
+ /* Get optional critical */
123
+ if ((ret = mbedtls_asn1_get_bool(p, end_ext_data,
124
+ &is_critical)) != 0 &&
125
+ (ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG)) {
126
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret);
127
+ }
128
+
129
+ /* Data should be octet string type */
130
+ if ((ret = mbedtls_asn1_get_tag(p, end_ext_data, &len,
131
+ MBEDTLS_ASN1_OCTET_STRING)) != 0) {
132
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret);
133
+ }
134
+
135
+ /* Ignore data so far and just check its length */
136
+ *p += len;
137
+ if (*p != end_ext_data) {
138
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS,
139
+ MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
140
+ }
141
+
142
+ /* Abort on (unsupported) critical extensions */
143
+ if (is_critical) {
144
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS,
145
+ MBEDTLS_ERR_ASN1_UNEXPECTED_TAG);
146
+ }
147
+ }
148
+
149
+ if (*p != end) {
150
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS,
151
+ MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
152
+ }
153
+
154
+ return 0;
155
+ }
156
+
157
+ /*
158
+ * X.509 CRL v2 entry extensions (no extensions parsed yet.)
159
+ */
160
+ static int x509_get_crl_entry_ext(unsigned char **p,
161
+ const unsigned char *end,
162
+ mbedtls_x509_buf *ext)
163
+ {
164
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
165
+ size_t len = 0;
166
+
167
+ /* OPTIONAL */
168
+ if (end <= *p) {
169
+ return 0;
170
+ }
171
+
172
+ ext->tag = **p;
173
+ ext->p = *p;
174
+
175
+ /*
176
+ * Get CRL-entry extension sequence header
177
+ * crlEntryExtensions Extensions OPTIONAL -- if present, MUST be v2
178
+ */
179
+ if ((ret = mbedtls_asn1_get_tag(p, end, &ext->len,
180
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) {
181
+ if (ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) {
182
+ ext->p = NULL;
183
+ return 0;
184
+ }
185
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret);
186
+ }
187
+
188
+ end = *p + ext->len;
189
+
190
+ if (end != *p + ext->len) {
191
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS,
192
+ MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
193
+ }
194
+
195
+ while (*p < end) {
196
+ if ((ret = mbedtls_asn1_get_tag(p, end, &len,
197
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) {
198
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret);
199
+ }
200
+
201
+ *p += len;
202
+ }
203
+
204
+ if (*p != end) {
205
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS,
206
+ MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
207
+ }
208
+
209
+ return 0;
210
+ }
211
+
212
+ /*
213
+ * X.509 CRL Entries
214
+ */
215
+ static int x509_get_entries(unsigned char **p,
216
+ const unsigned char *end,
217
+ mbedtls_x509_crl_entry *entry)
218
+ {
219
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
220
+ size_t entry_len;
221
+ mbedtls_x509_crl_entry *cur_entry = entry;
222
+
223
+ if (*p == end) {
224
+ return 0;
225
+ }
226
+
227
+ if ((ret = mbedtls_asn1_get_tag(p, end, &entry_len,
228
+ MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED)) != 0) {
229
+ if (ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) {
230
+ return 0;
231
+ }
232
+
233
+ return ret;
234
+ }
235
+
236
+ end = *p + entry_len;
237
+
238
+ while (*p < end) {
239
+ size_t len2;
240
+ const unsigned char *end2;
241
+
242
+ cur_entry->raw.tag = **p;
243
+ if ((ret = mbedtls_asn1_get_tag(p, end, &len2,
244
+ MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED)) != 0) {
245
+ return ret;
246
+ }
247
+
248
+ cur_entry->raw.p = *p;
249
+ cur_entry->raw.len = len2;
250
+ end2 = *p + len2;
251
+
252
+ if ((ret = mbedtls_x509_get_serial(p, end2, &cur_entry->serial)) != 0) {
253
+ return ret;
254
+ }
255
+
256
+ if ((ret = mbedtls_x509_get_time(p, end2,
257
+ &cur_entry->revocation_date)) != 0) {
258
+ return ret;
259
+ }
260
+
261
+ if ((ret = x509_get_crl_entry_ext(p, end2,
262
+ &cur_entry->entry_ext)) != 0) {
263
+ return ret;
264
+ }
265
+
266
+ if (*p < end) {
267
+ cur_entry->next = mbedtls_calloc(1, sizeof(mbedtls_x509_crl_entry));
268
+
269
+ if (cur_entry->next == NULL) {
270
+ return MBEDTLS_ERR_X509_ALLOC_FAILED;
271
+ }
272
+
273
+ cur_entry = cur_entry->next;
274
+ }
275
+ }
276
+
277
+ return 0;
278
+ }
279
+
280
+ /*
281
+ * Parse one CRLs in DER format and append it to the chained list
282
+ */
283
+ int mbedtls_x509_crl_parse_der(mbedtls_x509_crl *chain,
284
+ const unsigned char *buf, size_t buflen)
285
+ {
286
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
287
+ size_t len;
288
+ unsigned char *p = NULL, *end = NULL;
289
+ mbedtls_x509_buf sig_params1, sig_params2, sig_oid2;
290
+ mbedtls_x509_crl *crl = chain;
291
+
292
+ /*
293
+ * Check for valid input
294
+ */
295
+ if (crl == NULL || buf == NULL) {
296
+ return MBEDTLS_ERR_X509_BAD_INPUT_DATA;
297
+ }
298
+
299
+ memset(&sig_params1, 0, sizeof(mbedtls_x509_buf));
300
+ memset(&sig_params2, 0, sizeof(mbedtls_x509_buf));
301
+ memset(&sig_oid2, 0, sizeof(mbedtls_x509_buf));
302
+
303
+ /*
304
+ * Add new CRL on the end of the chain if needed.
305
+ */
306
+ while (crl->version != 0 && crl->next != NULL) {
307
+ crl = crl->next;
308
+ }
309
+
310
+ if (crl->version != 0 && crl->next == NULL) {
311
+ crl->next = mbedtls_calloc(1, sizeof(mbedtls_x509_crl));
312
+
313
+ if (crl->next == NULL) {
314
+ mbedtls_x509_crl_free(crl);
315
+ return MBEDTLS_ERR_X509_ALLOC_FAILED;
316
+ }
317
+
318
+ mbedtls_x509_crl_init(crl->next);
319
+ crl = crl->next;
320
+ }
321
+
322
+ /*
323
+ * Copy raw DER-encoded CRL
324
+ */
325
+ if (buflen == 0) {
326
+ return MBEDTLS_ERR_X509_INVALID_FORMAT;
327
+ }
328
+
329
+ p = mbedtls_calloc(1, buflen);
330
+ if (p == NULL) {
331
+ return MBEDTLS_ERR_X509_ALLOC_FAILED;
332
+ }
333
+
334
+ memcpy(p, buf, buflen);
335
+
336
+ crl->raw.p = p;
337
+ crl->raw.len = buflen;
338
+
339
+ end = p + buflen;
340
+
341
+ /*
342
+ * CertificateList ::= SEQUENCE {
343
+ * tbsCertList TBSCertList,
344
+ * signatureAlgorithm AlgorithmIdentifier,
345
+ * signatureValue BIT STRING }
346
+ */
347
+ if ((ret = mbedtls_asn1_get_tag(&p, end, &len,
348
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) {
349
+ mbedtls_x509_crl_free(crl);
350
+ return MBEDTLS_ERR_X509_INVALID_FORMAT;
351
+ }
352
+
353
+ if (len != (size_t) (end - p)) {
354
+ mbedtls_x509_crl_free(crl);
355
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT,
356
+ MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
357
+ }
358
+
359
+ /*
360
+ * TBSCertList ::= SEQUENCE {
361
+ */
362
+ crl->tbs.p = p;
363
+
364
+ if ((ret = mbedtls_asn1_get_tag(&p, end, &len,
365
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) {
366
+ mbedtls_x509_crl_free(crl);
367
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, ret);
368
+ }
369
+
370
+ end = p + len;
371
+ crl->tbs.len = (size_t) (end - crl->tbs.p);
372
+
373
+ /*
374
+ * Version ::= INTEGER OPTIONAL { v1(0), v2(1) }
375
+ * -- if present, MUST be v2
376
+ *
377
+ * signature AlgorithmIdentifier
378
+ */
379
+ if ((ret = x509_crl_get_version(&p, end, &crl->version)) != 0 ||
380
+ (ret = mbedtls_x509_get_alg(&p, end, &crl->sig_oid, &sig_params1)) != 0) {
381
+ mbedtls_x509_crl_free(crl);
382
+ return ret;
383
+ }
384
+
385
+ if (crl->version < 0 || crl->version > 1) {
386
+ mbedtls_x509_crl_free(crl);
387
+ return MBEDTLS_ERR_X509_UNKNOWN_VERSION;
388
+ }
389
+
390
+ crl->version++;
391
+
392
+ if ((ret = mbedtls_x509_get_sig_alg(&crl->sig_oid, &sig_params1,
393
+ &crl->sig_md, &crl->sig_pk,
394
+ &crl->sig_opts)) != 0) {
395
+ mbedtls_x509_crl_free(crl);
396
+ return MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG;
397
+ }
398
+
399
+ /*
400
+ * issuer Name
401
+ */
402
+ crl->issuer_raw.p = p;
403
+
404
+ if ((ret = mbedtls_asn1_get_tag(&p, end, &len,
405
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) {
406
+ mbedtls_x509_crl_free(crl);
407
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, ret);
408
+ }
409
+
410
+ if ((ret = mbedtls_x509_get_name(&p, p + len, &crl->issuer)) != 0) {
411
+ mbedtls_x509_crl_free(crl);
412
+ return ret;
413
+ }
414
+
415
+ crl->issuer_raw.len = (size_t) (p - crl->issuer_raw.p);
416
+
417
+ /*
418
+ * thisUpdate Time
419
+ * nextUpdate Time OPTIONAL
420
+ */
421
+ if ((ret = mbedtls_x509_get_time(&p, end, &crl->this_update)) != 0) {
422
+ mbedtls_x509_crl_free(crl);
423
+ return ret;
424
+ }
425
+
426
+ if ((ret = mbedtls_x509_get_time(&p, end, &crl->next_update)) != 0) {
427
+ if (ret != (MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_DATE,
428
+ MBEDTLS_ERR_ASN1_UNEXPECTED_TAG)) &&
429
+ ret != (MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_DATE,
430
+ MBEDTLS_ERR_ASN1_OUT_OF_DATA))) {
431
+ mbedtls_x509_crl_free(crl);
432
+ return ret;
433
+ }
434
+ }
435
+
436
+ /*
437
+ * revokedCertificates SEQUENCE OF SEQUENCE {
438
+ * userCertificate CertificateSerialNumber,
439
+ * revocationDate Time,
440
+ * crlEntryExtensions Extensions OPTIONAL
441
+ * -- if present, MUST be v2
442
+ * } OPTIONAL
443
+ */
444
+ if ((ret = x509_get_entries(&p, end, &crl->entry)) != 0) {
445
+ mbedtls_x509_crl_free(crl);
446
+ return ret;
447
+ }
448
+
449
+ /*
450
+ * crlExtensions EXPLICIT Extensions OPTIONAL
451
+ * -- if present, MUST be v2
452
+ */
453
+ if (crl->version == 2) {
454
+ ret = x509_get_crl_ext(&p, end, &crl->crl_ext);
455
+
456
+ if (ret != 0) {
457
+ mbedtls_x509_crl_free(crl);
458
+ return ret;
459
+ }
460
+ }
461
+
462
+ if (p != end) {
463
+ mbedtls_x509_crl_free(crl);
464
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT,
465
+ MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
466
+ }
467
+
468
+ end = crl->raw.p + crl->raw.len;
469
+
470
+ /*
471
+ * signatureAlgorithm AlgorithmIdentifier,
472
+ * signatureValue BIT STRING
473
+ */
474
+ if ((ret = mbedtls_x509_get_alg(&p, end, &sig_oid2, &sig_params2)) != 0) {
475
+ mbedtls_x509_crl_free(crl);
476
+ return ret;
477
+ }
478
+
479
+ if (crl->sig_oid.len != sig_oid2.len ||
480
+ memcmp(crl->sig_oid.p, sig_oid2.p, crl->sig_oid.len) != 0 ||
481
+ sig_params1.len != sig_params2.len ||
482
+ (sig_params1.len != 0 &&
483
+ memcmp(sig_params1.p, sig_params2.p, sig_params1.len) != 0)) {
484
+ mbedtls_x509_crl_free(crl);
485
+ return MBEDTLS_ERR_X509_SIG_MISMATCH;
486
+ }
487
+
488
+ if ((ret = mbedtls_x509_get_sig(&p, end, &crl->sig)) != 0) {
489
+ mbedtls_x509_crl_free(crl);
490
+ return ret;
491
+ }
492
+
493
+ if (p != end) {
494
+ mbedtls_x509_crl_free(crl);
495
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT,
496
+ MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
497
+ }
498
+
499
+ return 0;
500
+ }
501
+
502
+ /*
503
+ * Parse one or more CRLs and add them to the chained list
504
+ */
505
+ int mbedtls_x509_crl_parse(mbedtls_x509_crl *chain, const unsigned char *buf, size_t buflen)
506
+ {
507
+ #if defined(MBEDTLS_PEM_PARSE_C)
508
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
509
+ size_t use_len = 0;
510
+ mbedtls_pem_context pem;
511
+ int is_pem = 0;
512
+
513
+ if (chain == NULL || buf == NULL) {
514
+ return MBEDTLS_ERR_X509_BAD_INPUT_DATA;
515
+ }
516
+
517
+ do {
518
+ mbedtls_pem_init(&pem);
519
+
520
+ // Avoid calling mbedtls_pem_read_buffer() on non-null-terminated
521
+ // string
522
+ if (buflen == 0 || buf[buflen - 1] != '\0') {
523
+ ret = MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT;
524
+ } else {
525
+ ret = mbedtls_pem_read_buffer(&pem,
526
+ "-----BEGIN X509 CRL-----",
527
+ "-----END X509 CRL-----",
528
+ buf, NULL, 0, &use_len);
529
+ }
530
+
531
+ if (ret == 0) {
532
+ /*
533
+ * Was PEM encoded
534
+ */
535
+ is_pem = 1;
536
+
537
+ buflen -= use_len;
538
+ buf += use_len;
539
+
540
+ if ((ret = mbedtls_x509_crl_parse_der(chain,
541
+ pem.buf, pem.buflen)) != 0) {
542
+ mbedtls_pem_free(&pem);
543
+ return ret;
544
+ }
545
+ } else if (is_pem) {
546
+ mbedtls_pem_free(&pem);
547
+ return ret;
548
+ }
549
+
550
+ mbedtls_pem_free(&pem);
551
+ }
552
+ /* In the PEM case, buflen is 1 at the end, for the terminated NULL byte.
553
+ * And a valid CRL cannot be less than 1 byte anyway. */
554
+ while (is_pem && buflen > 1);
555
+
556
+ if (is_pem) {
557
+ return 0;
558
+ } else
559
+ #endif /* MBEDTLS_PEM_PARSE_C */
560
+ return mbedtls_x509_crl_parse_der(chain, buf, buflen);
561
+ }
562
+
563
+ #if defined(MBEDTLS_FS_IO)
564
+ /*
565
+ * Load one or more CRLs and add them to the chained list
566
+ */
567
+ int mbedtls_x509_crl_parse_file(mbedtls_x509_crl *chain, const char *path)
568
+ {
569
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
570
+ size_t n;
571
+ unsigned char *buf;
572
+
573
+ if ((ret = mbedtls_pk_load_file(path, &buf, &n)) != 0) {
574
+ return ret;
575
+ }
576
+
577
+ ret = mbedtls_x509_crl_parse(chain, buf, n);
578
+
579
+ mbedtls_zeroize_and_free(buf, n);
580
+
581
+ return ret;
582
+ }
583
+ #endif /* MBEDTLS_FS_IO */
584
+
585
+ #if !defined(MBEDTLS_X509_REMOVE_INFO)
586
+ /*
587
+ * Return an informational string about the CRL.
588
+ */
589
+ int mbedtls_x509_crl_info(char *buf, size_t size, const char *prefix,
590
+ const mbedtls_x509_crl *crl)
591
+ {
592
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
593
+ size_t n;
594
+ char *p;
595
+ const mbedtls_x509_crl_entry *entry;
596
+
597
+ p = buf;
598
+ n = size;
599
+
600
+ ret = mbedtls_snprintf(p, n, "%sCRL version : %d",
601
+ prefix, crl->version);
602
+ MBEDTLS_X509_SAFE_SNPRINTF;
603
+
604
+ ret = mbedtls_snprintf(p, n, "\n%sissuer name : ", prefix);
605
+ MBEDTLS_X509_SAFE_SNPRINTF;
606
+ ret = mbedtls_x509_dn_gets(p, n, &crl->issuer);
607
+ MBEDTLS_X509_SAFE_SNPRINTF;
608
+
609
+ ret = mbedtls_snprintf(p, n, "\n%sthis update : " \
610
+ "%04d-%02d-%02d %02d:%02d:%02d", prefix,
611
+ crl->this_update.year, crl->this_update.mon,
612
+ crl->this_update.day, crl->this_update.hour,
613
+ crl->this_update.min, crl->this_update.sec);
614
+ MBEDTLS_X509_SAFE_SNPRINTF;
615
+
616
+ ret = mbedtls_snprintf(p, n, "\n%snext update : " \
617
+ "%04d-%02d-%02d %02d:%02d:%02d", prefix,
618
+ crl->next_update.year, crl->next_update.mon,
619
+ crl->next_update.day, crl->next_update.hour,
620
+ crl->next_update.min, crl->next_update.sec);
621
+ MBEDTLS_X509_SAFE_SNPRINTF;
622
+
623
+ entry = &crl->entry;
624
+
625
+ ret = mbedtls_snprintf(p, n, "\n%sRevoked certificates:",
626
+ prefix);
627
+ MBEDTLS_X509_SAFE_SNPRINTF;
628
+
629
+ while (entry != NULL && entry->raw.len != 0) {
630
+ ret = mbedtls_snprintf(p, n, "\n%sserial number: ",
631
+ prefix);
632
+ MBEDTLS_X509_SAFE_SNPRINTF;
633
+
634
+ ret = mbedtls_x509_serial_gets(p, n, &entry->serial);
635
+ MBEDTLS_X509_SAFE_SNPRINTF;
636
+
637
+ ret = mbedtls_snprintf(p, n, " revocation date: " \
638
+ "%04d-%02d-%02d %02d:%02d:%02d",
639
+ entry->revocation_date.year, entry->revocation_date.mon,
640
+ entry->revocation_date.day, entry->revocation_date.hour,
641
+ entry->revocation_date.min, entry->revocation_date.sec);
642
+ MBEDTLS_X509_SAFE_SNPRINTF;
643
+
644
+ entry = entry->next;
645
+ }
646
+
647
+ ret = mbedtls_snprintf(p, n, "\n%ssigned using : ", prefix);
648
+ MBEDTLS_X509_SAFE_SNPRINTF;
649
+
650
+ ret = mbedtls_x509_sig_alg_gets(p, n, &crl->sig_oid, crl->sig_pk, crl->sig_md,
651
+ crl->sig_opts);
652
+ MBEDTLS_X509_SAFE_SNPRINTF;
653
+
654
+ ret = mbedtls_snprintf(p, n, "\n");
655
+ MBEDTLS_X509_SAFE_SNPRINTF;
656
+
657
+ return (int) (size - n);
658
+ }
659
+ #endif /* MBEDTLS_X509_REMOVE_INFO */
660
+
661
+ /*
662
+ * Initialize a CRL chain
663
+ */
664
+ void mbedtls_x509_crl_init(mbedtls_x509_crl *crl)
665
+ {
666
+ memset(crl, 0, sizeof(mbedtls_x509_crl));
667
+ }
668
+
669
+ /*
670
+ * Unallocate all CRL data
671
+ */
672
+ void mbedtls_x509_crl_free(mbedtls_x509_crl *crl)
673
+ {
674
+ mbedtls_x509_crl *crl_cur = crl;
675
+ mbedtls_x509_crl *crl_prv;
676
+ mbedtls_x509_crl_entry *entry_cur;
677
+ mbedtls_x509_crl_entry *entry_prv;
678
+
679
+ while (crl_cur != NULL) {
680
+ #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)
681
+ mbedtls_free(crl_cur->sig_opts);
682
+ #endif
683
+
684
+ mbedtls_asn1_free_named_data_list_shallow(crl_cur->issuer.next);
685
+
686
+ entry_cur = crl_cur->entry.next;
687
+ while (entry_cur != NULL) {
688
+ entry_prv = entry_cur;
689
+ entry_cur = entry_cur->next;
690
+ mbedtls_zeroize_and_free(entry_prv,
691
+ sizeof(mbedtls_x509_crl_entry));
692
+ }
693
+
694
+ if (crl_cur->raw.p != NULL) {
695
+ mbedtls_zeroize_and_free(crl_cur->raw.p, crl_cur->raw.len);
696
+ }
697
+
698
+ crl_prv = crl_cur;
699
+ crl_cur = crl_cur->next;
700
+
701
+ mbedtls_platform_zeroize(crl_prv, sizeof(mbedtls_x509_crl));
702
+ if (crl_prv != crl) {
703
+ mbedtls_free(crl_prv);
704
+ }
705
+ }
706
+ }
707
+
708
+ #endif /* MBEDTLS_X509_CRL_PARSE_C */