@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,648 @@
1
+ /*
2
+ * X.509 Certificate Signing Request (CSR) 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_CSR_PARSE_C)
21
+
22
+ #include "mbedtls/x509_csr.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_FS_IO) || defined(EFIX64) || defined(EFI32)
37
+ #include <stdio.h>
38
+ #endif
39
+
40
+ /*
41
+ * Version ::= INTEGER { v1(0) }
42
+ */
43
+ static int x509_csr_get_version(unsigned char **p,
44
+ const unsigned char *end,
45
+ int *ver)
46
+ {
47
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
48
+
49
+ if ((ret = mbedtls_asn1_get_int(p, end, ver)) != 0) {
50
+ if (ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) {
51
+ *ver = 0;
52
+ return 0;
53
+ }
54
+
55
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_VERSION, ret);
56
+ }
57
+
58
+ return 0;
59
+ }
60
+
61
+ /*
62
+ * Parse CSR extension requests in DER format
63
+ */
64
+ static int x509_csr_parse_extensions(mbedtls_x509_csr *csr,
65
+ unsigned char **p, const unsigned char *end,
66
+ mbedtls_x509_csr_ext_cb_t cb,
67
+ void *p_ctx)
68
+ {
69
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
70
+ size_t len;
71
+ unsigned char *end_ext_data, *end_ext_octet;
72
+
73
+ while (*p < end) {
74
+ mbedtls_x509_buf extn_oid = { 0, 0, NULL };
75
+ int is_critical = 0; /* DEFAULT FALSE */
76
+ int ext_type = 0;
77
+
78
+ /* Read sequence tag */
79
+ if ((ret = mbedtls_asn1_get_tag(p, end, &len,
80
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) {
81
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret);
82
+ }
83
+
84
+ end_ext_data = *p + len;
85
+
86
+ /* Get extension ID */
87
+ if ((ret = mbedtls_asn1_get_tag(p, end_ext_data, &extn_oid.len,
88
+ MBEDTLS_ASN1_OID)) != 0) {
89
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret);
90
+ }
91
+
92
+ extn_oid.tag = MBEDTLS_ASN1_OID;
93
+ extn_oid.p = *p;
94
+ *p += extn_oid.len;
95
+
96
+ /* Get optional critical */
97
+ if ((ret = mbedtls_asn1_get_bool(p, end_ext_data, &is_critical)) != 0 &&
98
+ (ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG)) {
99
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret);
100
+ }
101
+
102
+ /* Data should be octet string type */
103
+ if ((ret = mbedtls_asn1_get_tag(p, end_ext_data, &len,
104
+ MBEDTLS_ASN1_OCTET_STRING)) != 0) {
105
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret);
106
+ }
107
+
108
+ end_ext_octet = *p + len;
109
+
110
+ if (end_ext_octet != end_ext_data) {
111
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS,
112
+ MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
113
+ }
114
+
115
+ /*
116
+ * Detect supported extensions and skip unsupported extensions
117
+ */
118
+ ret = mbedtls_oid_get_x509_ext_type(&extn_oid, &ext_type);
119
+
120
+ if (ret != 0) {
121
+ /* Give the callback (if any) a chance to handle the extension */
122
+ if (cb != NULL) {
123
+ ret = cb(p_ctx, csr, &extn_oid, is_critical, *p, end_ext_octet);
124
+ if (ret != 0 && is_critical) {
125
+ return ret;
126
+ }
127
+ *p = end_ext_octet;
128
+ continue;
129
+ }
130
+
131
+ /* No parser found, skip extension */
132
+ *p = end_ext_octet;
133
+
134
+ if (is_critical) {
135
+ /* Data is marked as critical: fail */
136
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS,
137
+ MBEDTLS_ERR_ASN1_UNEXPECTED_TAG);
138
+ }
139
+ continue;
140
+ }
141
+
142
+ /* Forbid repeated extensions */
143
+ if ((csr->ext_types & ext_type) != 0) {
144
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS,
145
+ MBEDTLS_ERR_ASN1_INVALID_DATA);
146
+ }
147
+
148
+ csr->ext_types |= ext_type;
149
+
150
+ switch (ext_type) {
151
+ case MBEDTLS_X509_EXT_KEY_USAGE:
152
+ /* Parse key usage */
153
+ if ((ret = mbedtls_x509_get_key_usage(p, end_ext_data,
154
+ &csr->key_usage)) != 0) {
155
+ return ret;
156
+ }
157
+ break;
158
+
159
+ case MBEDTLS_X509_EXT_SUBJECT_ALT_NAME:
160
+ /* Parse subject alt name */
161
+ if ((ret = mbedtls_x509_get_subject_alt_name(p, end_ext_data,
162
+ &csr->subject_alt_names)) != 0) {
163
+ return ret;
164
+ }
165
+ break;
166
+
167
+ case MBEDTLS_X509_EXT_NS_CERT_TYPE:
168
+ /* Parse netscape certificate type */
169
+ if ((ret = mbedtls_x509_get_ns_cert_type(p, end_ext_data,
170
+ &csr->ns_cert_type)) != 0) {
171
+ return ret;
172
+ }
173
+ break;
174
+ default:
175
+ /*
176
+ * If this is a non-critical extension, which the oid layer
177
+ * supports, but there isn't an x509 parser for it,
178
+ * skip the extension.
179
+ */
180
+ if (is_critical) {
181
+ return MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE;
182
+ } else {
183
+ *p = end_ext_octet;
184
+ }
185
+ }
186
+ }
187
+
188
+ if (*p != end) {
189
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS,
190
+ MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
191
+ }
192
+
193
+ return 0;
194
+ }
195
+
196
+ /*
197
+ * Parse CSR attributes in DER format
198
+ */
199
+ static int x509_csr_parse_attributes(mbedtls_x509_csr *csr,
200
+ const unsigned char *start, const unsigned char *end,
201
+ mbedtls_x509_csr_ext_cb_t cb,
202
+ void *p_ctx)
203
+ {
204
+ int ret;
205
+ size_t len;
206
+ unsigned char *end_attr_data;
207
+ unsigned char **p = (unsigned char **) &start;
208
+
209
+ while (*p < end) {
210
+ mbedtls_x509_buf attr_oid = { 0, 0, NULL };
211
+
212
+ if ((ret = mbedtls_asn1_get_tag(p, end, &len,
213
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) {
214
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret);
215
+ }
216
+ end_attr_data = *p + len;
217
+
218
+ /* Get attribute ID */
219
+ if ((ret = mbedtls_asn1_get_tag(p, end_attr_data, &attr_oid.len,
220
+ MBEDTLS_ASN1_OID)) != 0) {
221
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret);
222
+ }
223
+
224
+ attr_oid.tag = MBEDTLS_ASN1_OID;
225
+ attr_oid.p = *p;
226
+ *p += attr_oid.len;
227
+
228
+ /* Check that this is an extension-request attribute */
229
+ if (MBEDTLS_OID_CMP(MBEDTLS_OID_PKCS9_CSR_EXT_REQ, &attr_oid) == 0) {
230
+ if ((ret = mbedtls_asn1_get_tag(p, end_attr_data, &len,
231
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET)) != 0) {
232
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret);
233
+ }
234
+
235
+ const unsigned char *end_set = *p + len;
236
+ if (end_set != end_attr_data) {
237
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS,
238
+ MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
239
+ }
240
+
241
+ if ((ret = mbedtls_asn1_get_tag(p, end_set, &len,
242
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) !=
243
+ 0) {
244
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret);
245
+ }
246
+
247
+ const unsigned char *end_exts = *p + len;
248
+ if (end_exts != end_set) {
249
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS,
250
+ MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
251
+ }
252
+
253
+ if ((ret = x509_csr_parse_extensions(csr, p, end_exts, cb, p_ctx)) != 0) {
254
+ return ret;
255
+ }
256
+ /* x509_csr_parse_extensions() guarantees *p == end_exts
257
+ * on success */
258
+ }
259
+
260
+ *p = end_attr_data;
261
+ }
262
+
263
+ if (*p != end) {
264
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS,
265
+ MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
266
+ }
267
+
268
+ return 0;
269
+ }
270
+
271
+ /*
272
+ * Parse a CSR in DER format
273
+ */
274
+ static int mbedtls_x509_csr_parse_der_internal(mbedtls_x509_csr *csr,
275
+ const unsigned char *buf, size_t buflen,
276
+ mbedtls_x509_csr_ext_cb_t cb,
277
+ void *p_ctx)
278
+ {
279
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
280
+ size_t len;
281
+ unsigned char *p, *end;
282
+ mbedtls_x509_buf sig_params;
283
+
284
+ memset(&sig_params, 0, sizeof(mbedtls_x509_buf));
285
+
286
+ /*
287
+ * Check for valid input
288
+ */
289
+ if (csr == NULL || buf == NULL || buflen == 0) {
290
+ return MBEDTLS_ERR_X509_BAD_INPUT_DATA;
291
+ }
292
+
293
+ mbedtls_x509_csr_init(csr);
294
+
295
+ /*
296
+ * first copy the raw DER data
297
+ */
298
+ p = mbedtls_calloc(1, len = buflen);
299
+
300
+ if (p == NULL) {
301
+ return MBEDTLS_ERR_X509_ALLOC_FAILED;
302
+ }
303
+
304
+ memcpy(p, buf, buflen);
305
+
306
+ csr->raw.p = p;
307
+ csr->raw.len = len;
308
+ end = p + len;
309
+
310
+ /*
311
+ * CertificationRequest ::= SEQUENCE {
312
+ * certificationRequestInfo CertificationRequestInfo,
313
+ * signatureAlgorithm AlgorithmIdentifier,
314
+ * signature BIT STRING
315
+ * }
316
+ */
317
+ if ((ret = mbedtls_asn1_get_tag(&p, end, &len,
318
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) {
319
+ mbedtls_x509_csr_free(csr);
320
+ return MBEDTLS_ERR_X509_INVALID_FORMAT;
321
+ }
322
+
323
+ if (len != (size_t) (end - p)) {
324
+ mbedtls_x509_csr_free(csr);
325
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT,
326
+ MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
327
+ }
328
+
329
+ /*
330
+ * CertificationRequestInfo ::= SEQUENCE {
331
+ */
332
+ csr->cri.p = p;
333
+
334
+ if ((ret = mbedtls_asn1_get_tag(&p, end, &len,
335
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) {
336
+ mbedtls_x509_csr_free(csr);
337
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, ret);
338
+ }
339
+
340
+ end = p + len;
341
+ csr->cri.len = (size_t) (end - csr->cri.p);
342
+
343
+ /*
344
+ * Version ::= INTEGER { v1(0) }
345
+ */
346
+ if ((ret = x509_csr_get_version(&p, end, &csr->version)) != 0) {
347
+ mbedtls_x509_csr_free(csr);
348
+ return ret;
349
+ }
350
+
351
+ if (csr->version != 0) {
352
+ mbedtls_x509_csr_free(csr);
353
+ return MBEDTLS_ERR_X509_UNKNOWN_VERSION;
354
+ }
355
+
356
+ csr->version++;
357
+
358
+ /*
359
+ * subject Name
360
+ */
361
+ csr->subject_raw.p = p;
362
+
363
+ if ((ret = mbedtls_asn1_get_tag(&p, end, &len,
364
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) {
365
+ mbedtls_x509_csr_free(csr);
366
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, ret);
367
+ }
368
+
369
+ if ((ret = mbedtls_x509_get_name(&p, p + len, &csr->subject)) != 0) {
370
+ mbedtls_x509_csr_free(csr);
371
+ return ret;
372
+ }
373
+
374
+ csr->subject_raw.len = (size_t) (p - csr->subject_raw.p);
375
+
376
+ /*
377
+ * subjectPKInfo SubjectPublicKeyInfo
378
+ */
379
+ if ((ret = mbedtls_pk_parse_subpubkey(&p, end, &csr->pk)) != 0) {
380
+ mbedtls_x509_csr_free(csr);
381
+ return ret;
382
+ }
383
+
384
+ /*
385
+ * attributes [0] Attributes
386
+ *
387
+ * The list of possible attributes is open-ended, though RFC 2985
388
+ * (PKCS#9) defines a few in section 5.4. We currently don't support any,
389
+ * so we just ignore them. This is a safe thing to do as the worst thing
390
+ * that could happen is that we issue a certificate that does not match
391
+ * the requester's expectations - this cannot cause a violation of our
392
+ * signature policies.
393
+ */
394
+ if ((ret = mbedtls_asn1_get_tag(&p, end, &len,
395
+ MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC)) !=
396
+ 0) {
397
+ mbedtls_x509_csr_free(csr);
398
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, ret);
399
+ }
400
+
401
+ if ((ret = x509_csr_parse_attributes(csr, p, p + len, cb, p_ctx)) != 0) {
402
+ mbedtls_x509_csr_free(csr);
403
+ return ret;
404
+ }
405
+
406
+ p += len;
407
+
408
+ end = csr->raw.p + csr->raw.len;
409
+
410
+ /*
411
+ * signatureAlgorithm AlgorithmIdentifier,
412
+ * signature BIT STRING
413
+ */
414
+ if ((ret = mbedtls_x509_get_alg(&p, end, &csr->sig_oid, &sig_params)) != 0) {
415
+ mbedtls_x509_csr_free(csr);
416
+ return ret;
417
+ }
418
+
419
+ if ((ret = mbedtls_x509_get_sig_alg(&csr->sig_oid, &sig_params,
420
+ &csr->sig_md, &csr->sig_pk,
421
+ &csr->sig_opts)) != 0) {
422
+ mbedtls_x509_csr_free(csr);
423
+ return MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG;
424
+ }
425
+
426
+ if ((ret = mbedtls_x509_get_sig(&p, end, &csr->sig)) != 0) {
427
+ mbedtls_x509_csr_free(csr);
428
+ return ret;
429
+ }
430
+
431
+ if (p != end) {
432
+ mbedtls_x509_csr_free(csr);
433
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT,
434
+ MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
435
+ }
436
+
437
+ return 0;
438
+ }
439
+
440
+ /*
441
+ * Parse a CSR in DER format
442
+ */
443
+ int mbedtls_x509_csr_parse_der(mbedtls_x509_csr *csr,
444
+ const unsigned char *buf, size_t buflen)
445
+ {
446
+ return mbedtls_x509_csr_parse_der_internal(csr, buf, buflen, NULL, NULL);
447
+ }
448
+
449
+ /*
450
+ * Parse a CSR in DER format with callback for unknown extensions
451
+ */
452
+ int mbedtls_x509_csr_parse_der_with_ext_cb(mbedtls_x509_csr *csr,
453
+ const unsigned char *buf, size_t buflen,
454
+ mbedtls_x509_csr_ext_cb_t cb,
455
+ void *p_ctx)
456
+ {
457
+ return mbedtls_x509_csr_parse_der_internal(csr, buf, buflen, cb, p_ctx);
458
+ }
459
+
460
+ /*
461
+ * Parse a CSR, allowing for PEM or raw DER encoding
462
+ */
463
+ int mbedtls_x509_csr_parse(mbedtls_x509_csr *csr, const unsigned char *buf, size_t buflen)
464
+ {
465
+ #if defined(MBEDTLS_PEM_PARSE_C)
466
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
467
+ size_t use_len;
468
+ mbedtls_pem_context pem;
469
+ #endif
470
+
471
+ /*
472
+ * Check for valid input
473
+ */
474
+ if (csr == NULL || buf == NULL || buflen == 0) {
475
+ return MBEDTLS_ERR_X509_BAD_INPUT_DATA;
476
+ }
477
+
478
+ #if defined(MBEDTLS_PEM_PARSE_C)
479
+ /* Avoid calling mbedtls_pem_read_buffer() on non-null-terminated string */
480
+ if (buf[buflen - 1] == '\0') {
481
+ mbedtls_pem_init(&pem);
482
+ ret = mbedtls_pem_read_buffer(&pem,
483
+ "-----BEGIN CERTIFICATE REQUEST-----",
484
+ "-----END CERTIFICATE REQUEST-----",
485
+ buf, NULL, 0, &use_len);
486
+ if (ret == MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) {
487
+ ret = mbedtls_pem_read_buffer(&pem,
488
+ "-----BEGIN NEW CERTIFICATE REQUEST-----",
489
+ "-----END NEW CERTIFICATE REQUEST-----",
490
+ buf, NULL, 0, &use_len);
491
+ }
492
+
493
+ if (ret == 0) {
494
+ /*
495
+ * Was PEM encoded, parse the result
496
+ */
497
+ ret = mbedtls_x509_csr_parse_der(csr, pem.buf, pem.buflen);
498
+ }
499
+
500
+ mbedtls_pem_free(&pem);
501
+ if (ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) {
502
+ return ret;
503
+ }
504
+ }
505
+ #endif /* MBEDTLS_PEM_PARSE_C */
506
+ return mbedtls_x509_csr_parse_der(csr, buf, buflen);
507
+ }
508
+
509
+ #if defined(MBEDTLS_FS_IO)
510
+ /*
511
+ * Load a CSR into the structure
512
+ */
513
+ int mbedtls_x509_csr_parse_file(mbedtls_x509_csr *csr, const char *path)
514
+ {
515
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
516
+ size_t n;
517
+ unsigned char *buf;
518
+
519
+ if ((ret = mbedtls_pk_load_file(path, &buf, &n)) != 0) {
520
+ return ret;
521
+ }
522
+
523
+ ret = mbedtls_x509_csr_parse(csr, buf, n);
524
+
525
+ mbedtls_zeroize_and_free(buf, n);
526
+
527
+ return ret;
528
+ }
529
+ #endif /* MBEDTLS_FS_IO */
530
+
531
+ #if !defined(MBEDTLS_X509_REMOVE_INFO)
532
+ #define MBEDTLS_BEFORE_COLON 14
533
+ #define MBEDTLS_BEFORE_COLON_STR "14"
534
+ /*
535
+ * Return an informational string about the CSR.
536
+ */
537
+ int mbedtls_x509_csr_info(char *buf, size_t size, const char *prefix,
538
+ const mbedtls_x509_csr *csr)
539
+ {
540
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
541
+ size_t n;
542
+ char *p;
543
+ char key_size_str[MBEDTLS_BEFORE_COLON];
544
+
545
+ p = buf;
546
+ n = size;
547
+
548
+ ret = mbedtls_snprintf(p, n, "%sCSR version : %d",
549
+ prefix, csr->version);
550
+ MBEDTLS_X509_SAFE_SNPRINTF;
551
+
552
+ ret = mbedtls_snprintf(p, n, "\n%ssubject name : ", prefix);
553
+ MBEDTLS_X509_SAFE_SNPRINTF;
554
+ ret = mbedtls_x509_dn_gets(p, n, &csr->subject);
555
+ MBEDTLS_X509_SAFE_SNPRINTF;
556
+
557
+ ret = mbedtls_snprintf(p, n, "\n%ssigned using : ", prefix);
558
+ MBEDTLS_X509_SAFE_SNPRINTF;
559
+
560
+ ret = mbedtls_x509_sig_alg_gets(p, n, &csr->sig_oid, csr->sig_pk, csr->sig_md,
561
+ csr->sig_opts);
562
+ MBEDTLS_X509_SAFE_SNPRINTF;
563
+
564
+ if ((ret = mbedtls_x509_key_size_helper(key_size_str, MBEDTLS_BEFORE_COLON,
565
+ mbedtls_pk_get_name(&csr->pk))) != 0) {
566
+ return ret;
567
+ }
568
+
569
+ ret = mbedtls_snprintf(p, n, "\n%s%-" MBEDTLS_BEFORE_COLON_STR "s: %d bits\n",
570
+ prefix, key_size_str, (int) mbedtls_pk_get_bitlen(&csr->pk));
571
+ MBEDTLS_X509_SAFE_SNPRINTF;
572
+
573
+ /*
574
+ * Optional extensions
575
+ */
576
+
577
+ if (csr->ext_types & MBEDTLS_X509_EXT_SUBJECT_ALT_NAME) {
578
+ ret = mbedtls_snprintf(p, n, "\n%ssubject alt name :", prefix);
579
+ MBEDTLS_X509_SAFE_SNPRINTF;
580
+
581
+ if ((ret = mbedtls_x509_info_subject_alt_name(&p, &n,
582
+ &csr->subject_alt_names,
583
+ prefix)) != 0) {
584
+ return ret;
585
+ }
586
+ }
587
+
588
+ if (csr->ext_types & MBEDTLS_X509_EXT_NS_CERT_TYPE) {
589
+ ret = mbedtls_snprintf(p, n, "\n%scert. type : ", prefix);
590
+ MBEDTLS_X509_SAFE_SNPRINTF;
591
+
592
+ if ((ret = mbedtls_x509_info_cert_type(&p, &n, csr->ns_cert_type)) != 0) {
593
+ return ret;
594
+ }
595
+ }
596
+
597
+ if (csr->ext_types & MBEDTLS_X509_EXT_KEY_USAGE) {
598
+ ret = mbedtls_snprintf(p, n, "\n%skey usage : ", prefix);
599
+ MBEDTLS_X509_SAFE_SNPRINTF;
600
+
601
+ if ((ret = mbedtls_x509_info_key_usage(&p, &n, csr->key_usage)) != 0) {
602
+ return ret;
603
+ }
604
+ }
605
+
606
+ if (csr->ext_types != 0) {
607
+ ret = mbedtls_snprintf(p, n, "\n");
608
+ MBEDTLS_X509_SAFE_SNPRINTF;
609
+ }
610
+
611
+ return (int) (size - n);
612
+ }
613
+ #endif /* MBEDTLS_X509_REMOVE_INFO */
614
+
615
+ /*
616
+ * Initialize a CSR
617
+ */
618
+ void mbedtls_x509_csr_init(mbedtls_x509_csr *csr)
619
+ {
620
+ memset(csr, 0, sizeof(mbedtls_x509_csr));
621
+ }
622
+
623
+ /*
624
+ * Unallocate all CSR data
625
+ */
626
+ void mbedtls_x509_csr_free(mbedtls_x509_csr *csr)
627
+ {
628
+ if (csr == NULL) {
629
+ return;
630
+ }
631
+
632
+ mbedtls_pk_free(&csr->pk);
633
+
634
+ #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)
635
+ mbedtls_free(csr->sig_opts);
636
+ #endif
637
+
638
+ mbedtls_asn1_free_named_data_list_shallow(csr->subject.next);
639
+ mbedtls_asn1_sequence_free(csr->subject_alt_names.next);
640
+
641
+ if (csr->raw.p != NULL) {
642
+ mbedtls_zeroize_and_free(csr->raw.p, csr->raw.len);
643
+ }
644
+
645
+ mbedtls_platform_zeroize(csr, sizeof(mbedtls_x509_csr));
646
+ }
647
+
648
+ #endif /* MBEDTLS_X509_CSR_PARSE_C */