@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,186 @@
1
+ /**
2
+ * \file pkcs12.h
3
+ *
4
+ * \brief PKCS#12 Personal Information Exchange Syntax
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_PKCS12_H
11
+ #define MBEDTLS_PKCS12_H
12
+
13
+ #include "mbedtls/build_info.h"
14
+
15
+ #include "mbedtls/md.h"
16
+ #include "mbedtls/cipher.h"
17
+ #include "mbedtls/asn1.h"
18
+
19
+ #include <stddef.h>
20
+
21
+ /** Bad input parameters to function. */
22
+ #define MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA -0x1F80
23
+ /** Feature not available, e.g. unsupported encryption scheme. */
24
+ #define MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE -0x1F00
25
+ /** PBE ASN.1 data not as expected. */
26
+ #define MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT -0x1E80
27
+ /** Given private key password does not allow for correct decryption. */
28
+ #define MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH -0x1E00
29
+
30
+ #define MBEDTLS_PKCS12_DERIVE_KEY 1 /**< encryption/decryption key */
31
+ #define MBEDTLS_PKCS12_DERIVE_IV 2 /**< initialization vector */
32
+ #define MBEDTLS_PKCS12_DERIVE_MAC_KEY 3 /**< integrity / MAC key */
33
+
34
+ #define MBEDTLS_PKCS12_PBE_DECRYPT MBEDTLS_DECRYPT
35
+ #define MBEDTLS_PKCS12_PBE_ENCRYPT MBEDTLS_ENCRYPT
36
+
37
+ #ifdef __cplusplus
38
+ extern "C" {
39
+ #endif
40
+
41
+ #if defined(MBEDTLS_ASN1_PARSE_C) && defined(MBEDTLS_CIPHER_C)
42
+
43
+ #if !defined(MBEDTLS_DEPRECATED_REMOVED)
44
+ /**
45
+ * \brief PKCS12 Password Based function (encryption / decryption)
46
+ * for cipher-based and mbedtls_md-based PBE's
47
+ *
48
+ * \note When encrypting, #MBEDTLS_CIPHER_PADDING_PKCS7 must
49
+ * be enabled at compile time.
50
+ *
51
+ * \deprecated This function is deprecated and will be removed in a
52
+ * future version of the library.
53
+ * Please use mbedtls_pkcs12_pbe_ext() instead.
54
+ *
55
+ * \warning When decrypting:
56
+ * - if #MBEDTLS_CIPHER_PADDING_PKCS7 is enabled at compile
57
+ * time, this function validates the CBC padding and returns
58
+ * #MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH if the padding is
59
+ * invalid. Note that this can help active adversaries
60
+ * attempting to brute-forcing the password. Note also that
61
+ * there is no guarantee that an invalid password will be
62
+ * detected (the chances of a valid padding with a random
63
+ * password are about 1/255).
64
+ * - if #MBEDTLS_CIPHER_PADDING_PKCS7 is disabled at compile
65
+ * time, this function does not validate the CBC padding.
66
+ *
67
+ * \param pbe_params an ASN1 buffer containing the pkcs-12 PbeParams structure
68
+ * \param mode either #MBEDTLS_PKCS12_PBE_ENCRYPT or
69
+ * #MBEDTLS_PKCS12_PBE_DECRYPT
70
+ * \param cipher_type the cipher used
71
+ * \param md_type the mbedtls_md used
72
+ * \param pwd Latin1-encoded password used. This may only be \c NULL when
73
+ * \p pwdlen is 0. No null terminator should be used.
74
+ * \param pwdlen length of the password (may be 0)
75
+ * \param data the input data
76
+ * \param len data length
77
+ * \param output Output buffer.
78
+ * On success, it contains the encrypted or decrypted data,
79
+ * possibly followed by the CBC padding.
80
+ * On failure, the content is indeterminate.
81
+ * For decryption, there must be enough room for \p len
82
+ * bytes.
83
+ * For encryption, there must be enough room for
84
+ * \p len + 1 bytes, rounded up to the block size of
85
+ * the block cipher identified by \p pbe_params.
86
+ *
87
+ * \return 0 if successful, or a MBEDTLS_ERR_XXX code
88
+ */
89
+ int MBEDTLS_DEPRECATED mbedtls_pkcs12_pbe(mbedtls_asn1_buf *pbe_params, int mode,
90
+ mbedtls_cipher_type_t cipher_type,
91
+ mbedtls_md_type_t md_type,
92
+ const unsigned char *pwd, size_t pwdlen,
93
+ const unsigned char *data, size_t len,
94
+ unsigned char *output);
95
+ #endif /* MBEDTLS_DEPRECATED_REMOVED */
96
+
97
+ #if defined(MBEDTLS_CIPHER_PADDING_PKCS7)
98
+
99
+ /**
100
+ * \brief PKCS12 Password Based function (encryption / decryption)
101
+ * for cipher-based and mbedtls_md-based PBE's
102
+ *
103
+ *
104
+ * \warning When decrypting:
105
+ * - This function validates the CBC padding and returns
106
+ * #MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH if the padding is
107
+ * invalid. Note that this can help active adversaries
108
+ * attempting to brute-forcing the password. Note also that
109
+ * there is no guarantee that an invalid password will be
110
+ * detected (the chances of a valid padding with a random
111
+ * password are about 1/255).
112
+ *
113
+ * \param pbe_params an ASN1 buffer containing the pkcs-12 PbeParams structure
114
+ * \param mode either #MBEDTLS_PKCS12_PBE_ENCRYPT or
115
+ * #MBEDTLS_PKCS12_PBE_DECRYPT
116
+ * \param cipher_type the cipher used
117
+ * \param md_type the mbedtls_md used
118
+ * \param pwd Latin1-encoded password used. This may only be \c NULL when
119
+ * \p pwdlen is 0. No null terminator should be used.
120
+ * \param pwdlen length of the password (may be 0)
121
+ * \param data the input data
122
+ * \param len data length
123
+ * \param output Output buffer.
124
+ * On success, it contains the encrypted or decrypted data,
125
+ * possibly followed by the CBC padding.
126
+ * On failure, the content is indeterminate.
127
+ * For decryption, there must be enough room for \p len
128
+ * bytes.
129
+ * For encryption, there must be enough room for
130
+ * \p len + 1 bytes, rounded up to the block size of
131
+ * the block cipher identified by \p pbe_params.
132
+ * \param output_size size of output buffer.
133
+ * This must be big enough to accommodate for output plus
134
+ * padding data.
135
+ * \param output_len On success, length of actual data written to the output buffer.
136
+ *
137
+ * \return 0 if successful, or a MBEDTLS_ERR_XXX code
138
+ */
139
+ int mbedtls_pkcs12_pbe_ext(mbedtls_asn1_buf *pbe_params, int mode,
140
+ mbedtls_cipher_type_t cipher_type, mbedtls_md_type_t md_type,
141
+ const unsigned char *pwd, size_t pwdlen,
142
+ const unsigned char *data, size_t len,
143
+ unsigned char *output, size_t output_size,
144
+ size_t *output_len);
145
+
146
+ #endif /* MBEDTLS_CIPHER_PADDING_PKCS7 */
147
+
148
+ #endif /* MBEDTLS_ASN1_PARSE_C && MBEDTLS_CIPHER_C */
149
+
150
+ /**
151
+ * \brief The PKCS#12 derivation function uses a password and a salt
152
+ * to produce pseudo-random bits for a particular "purpose".
153
+ *
154
+ * Depending on the given id, this function can produce an
155
+ * encryption/decryption key, an initialization vector or an
156
+ * integrity key.
157
+ *
158
+ * \param data buffer to store the derived data in
159
+ * \param datalen length of buffer to fill
160
+ * \param pwd The password to use. For compliance with PKCS#12 §B.1, this
161
+ * should be a BMPString, i.e. a Unicode string where each
162
+ * character is encoded as 2 bytes in big-endian order, with
163
+ * no byte order mark and with a null terminator (i.e. the
164
+ * last two bytes should be 0x00 0x00).
165
+ * \param pwdlen length of the password (may be 0).
166
+ * \param salt Salt buffer to use. This may only be \c NULL when
167
+ * \p saltlen is 0.
168
+ * \param saltlen length of the salt (may be zero)
169
+ * \param mbedtls_md mbedtls_md type to use during the derivation
170
+ * \param id id that describes the purpose (can be
171
+ * #MBEDTLS_PKCS12_DERIVE_KEY, #MBEDTLS_PKCS12_DERIVE_IV or
172
+ * #MBEDTLS_PKCS12_DERIVE_MAC_KEY)
173
+ * \param iterations number of iterations
174
+ *
175
+ * \return 0 if successful, or a MD, BIGNUM type error.
176
+ */
177
+ int mbedtls_pkcs12_derivation(unsigned char *data, size_t datalen,
178
+ const unsigned char *pwd, size_t pwdlen,
179
+ const unsigned char *salt, size_t saltlen,
180
+ mbedtls_md_type_t mbedtls_md, int id, int iterations);
181
+
182
+ #ifdef __cplusplus
183
+ }
184
+ #endif
185
+
186
+ #endif /* pkcs12.h */
@@ -0,0 +1,198 @@
1
+ /**
2
+ * \file pkcs5.h
3
+ *
4
+ * \brief PKCS#5 functions
5
+ *
6
+ * \author Mathias Olsson <mathias@kompetensum.com>
7
+ */
8
+ /*
9
+ * Copyright The Mbed TLS Contributors
10
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
11
+ */
12
+ #ifndef MBEDTLS_PKCS5_H
13
+ #define MBEDTLS_PKCS5_H
14
+
15
+ #include "mbedtls/build_info.h"
16
+ #include "mbedtls/platform_util.h"
17
+
18
+ #include "mbedtls/asn1.h"
19
+ #include "mbedtls/md.h"
20
+ #include "mbedtls/cipher.h"
21
+
22
+ #include <stddef.h>
23
+ #include <stdint.h>
24
+
25
+ /** Bad input parameters to function. */
26
+ #define MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA -0x2f80
27
+ /** Unexpected ASN.1 data. */
28
+ #define MBEDTLS_ERR_PKCS5_INVALID_FORMAT -0x2f00
29
+ /** Requested encryption or digest alg not available. */
30
+ #define MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE -0x2e80
31
+ /** Given private key password does not allow for correct decryption. */
32
+ #define MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH -0x2e00
33
+
34
+ #define MBEDTLS_PKCS5_DECRYPT MBEDTLS_DECRYPT
35
+ #define MBEDTLS_PKCS5_ENCRYPT MBEDTLS_ENCRYPT
36
+
37
+ #ifdef __cplusplus
38
+ extern "C" {
39
+ #endif
40
+
41
+ #if defined(MBEDTLS_ASN1_PARSE_C) && defined(MBEDTLS_CIPHER_C)
42
+
43
+ #if !defined(MBEDTLS_DEPRECATED_REMOVED)
44
+ /**
45
+ * \brief PKCS#5 PBES2 function
46
+ *
47
+ * \note When encrypting, #MBEDTLS_CIPHER_PADDING_PKCS7 must
48
+ * be enabled at compile time.
49
+ *
50
+ * \deprecated This function is deprecated and will be removed in a
51
+ * future version of the library.
52
+ * Please use mbedtls_pkcs5_pbes2_ext() instead.
53
+ *
54
+ * \warning When decrypting:
55
+ * - if #MBEDTLS_CIPHER_PADDING_PKCS7 is enabled at compile
56
+ * time, this function validates the CBC padding and returns
57
+ * #MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH if the padding is
58
+ * invalid. Note that this can help active adversaries
59
+ * attempting to brute-forcing the password. Note also that
60
+ * there is no guarantee that an invalid password will be
61
+ * detected (the chances of a valid padding with a random
62
+ * password are about 1/255).
63
+ * - if #MBEDTLS_CIPHER_PADDING_PKCS7 is disabled at compile
64
+ * time, this function does not validate the CBC padding.
65
+ *
66
+ * \param pbe_params the ASN.1 algorithm parameters
67
+ * \param mode either #MBEDTLS_PKCS5_DECRYPT or #MBEDTLS_PKCS5_ENCRYPT
68
+ * \param pwd password to use when generating key
69
+ * \param pwdlen length of password
70
+ * \param data data to process
71
+ * \param datalen length of data
72
+ * \param output Output buffer.
73
+ * On success, it contains the encrypted or decrypted data,
74
+ * possibly followed by the CBC padding.
75
+ * On failure, the content is indeterminate.
76
+ * For decryption, there must be enough room for \p datalen
77
+ * bytes.
78
+ * For encryption, there must be enough room for
79
+ * \p datalen + 1 bytes, rounded up to the block size of
80
+ * the block cipher identified by \p pbe_params.
81
+ *
82
+ * \returns 0 on success, or a MBEDTLS_ERR_XXX code if verification fails.
83
+ */
84
+ int MBEDTLS_DEPRECATED mbedtls_pkcs5_pbes2(const mbedtls_asn1_buf *pbe_params, int mode,
85
+ const unsigned char *pwd, size_t pwdlen,
86
+ const unsigned char *data, size_t datalen,
87
+ unsigned char *output);
88
+ #endif /* MBEDTLS_DEPRECATED_REMOVED */
89
+
90
+ #if defined(MBEDTLS_CIPHER_PADDING_PKCS7)
91
+
92
+ /**
93
+ * \brief PKCS#5 PBES2 function
94
+ *
95
+ * \warning When decrypting:
96
+ * - This function validates the CBC padding and returns
97
+ * #MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH if the padding is
98
+ * invalid. Note that this can help active adversaries
99
+ * attempting to brute-forcing the password. Note also that
100
+ * there is no guarantee that an invalid password will be
101
+ * detected (the chances of a valid padding with a random
102
+ * password are about 1/255).
103
+ *
104
+ * \param pbe_params the ASN.1 algorithm parameters
105
+ * \param mode either #MBEDTLS_PKCS5_DECRYPT or #MBEDTLS_PKCS5_ENCRYPT
106
+ * \param pwd password to use when generating key
107
+ * \param pwdlen length of password
108
+ * \param data data to process
109
+ * \param datalen length of data
110
+ * \param output Output buffer.
111
+ * On success, it contains the decrypted data.
112
+ * On failure, the content is indetermidate.
113
+ * For decryption, there must be enough room for \p datalen
114
+ * bytes.
115
+ * For encryption, there must be enough room for
116
+ * \p datalen + 1 bytes, rounded up to the block size of
117
+ * the block cipher identified by \p pbe_params.
118
+ * \param output_size size of output buffer.
119
+ * This must be big enough to accommodate for output plus
120
+ * padding data.
121
+ * \param output_len On success, length of actual data written to the output buffer.
122
+ *
123
+ * \returns 0 on success, or a MBEDTLS_ERR_XXX code if parsing or decryption fails.
124
+ */
125
+ int mbedtls_pkcs5_pbes2_ext(const mbedtls_asn1_buf *pbe_params, int mode,
126
+ const unsigned char *pwd, size_t pwdlen,
127
+ const unsigned char *data, size_t datalen,
128
+ unsigned char *output, size_t output_size,
129
+ size_t *output_len);
130
+
131
+ #endif /* MBEDTLS_CIPHER_PADDING_PKCS7 */
132
+
133
+ #endif /* MBEDTLS_ASN1_PARSE_C && MBEDTLS_CIPHER_C*/
134
+
135
+ /**
136
+ * \brief PKCS#5 PBKDF2 using HMAC without using the HMAC context
137
+ *
138
+ * \param md_type Hash algorithm used
139
+ * \param password Password to use when generating key
140
+ * \param plen Length of password
141
+ * \param salt Salt to use when generating key
142
+ * \param slen Length of salt
143
+ * \param iteration_count Iteration count
144
+ * \param key_length Length of generated key in bytes
145
+ * \param output Generated key. Must be at least as big as key_length
146
+ *
147
+ * \returns 0 on success, or a MBEDTLS_ERR_XXX code if verification fails.
148
+ */
149
+ int mbedtls_pkcs5_pbkdf2_hmac_ext(mbedtls_md_type_t md_type,
150
+ const unsigned char *password,
151
+ size_t plen, const unsigned char *salt, size_t slen,
152
+ unsigned int iteration_count,
153
+ uint32_t key_length, unsigned char *output);
154
+
155
+ #if defined(MBEDTLS_MD_C)
156
+ #if !defined(MBEDTLS_DEPRECATED_REMOVED)
157
+ /**
158
+ * \brief PKCS#5 PBKDF2 using HMAC
159
+ *
160
+ * \deprecated Superseded by mbedtls_pkcs5_pbkdf2_hmac_ext().
161
+ *
162
+ * \param ctx Generic HMAC context
163
+ * \param password Password to use when generating key
164
+ * \param plen Length of password
165
+ * \param salt Salt to use when generating key
166
+ * \param slen Length of salt
167
+ * \param iteration_count Iteration count
168
+ * \param key_length Length of generated key in bytes
169
+ * \param output Generated key. Must be at least as big as key_length
170
+ *
171
+ * \returns 0 on success, or a MBEDTLS_ERR_XXX code if verification fails.
172
+ */
173
+ int MBEDTLS_DEPRECATED mbedtls_pkcs5_pbkdf2_hmac(mbedtls_md_context_t *ctx,
174
+ const unsigned char *password,
175
+ size_t plen,
176
+ const unsigned char *salt,
177
+ size_t slen,
178
+ unsigned int iteration_count,
179
+ uint32_t key_length,
180
+ unsigned char *output);
181
+ #endif /* !MBEDTLS_DEPRECATED_REMOVED */
182
+ #endif /* MBEDTLS_MD_C */
183
+ #if defined(MBEDTLS_SELF_TEST)
184
+
185
+ /**
186
+ * \brief Checkup routine
187
+ *
188
+ * \return 0 if successful, or 1 if the test failed
189
+ */
190
+ int mbedtls_pkcs5_self_test(int verbose);
191
+
192
+ #endif /* MBEDTLS_SELF_TEST */
193
+
194
+ #ifdef __cplusplus
195
+ }
196
+ #endif
197
+
198
+ #endif /* pkcs5.h */
@@ -0,0 +1,252 @@
1
+ /**
2
+ * \file pkcs7.h
3
+ *
4
+ * \brief PKCS #7 generic defines and structures
5
+ * https://tools.ietf.org/html/rfc2315
6
+ */
7
+ /*
8
+ * Copyright The Mbed TLS Contributors
9
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
10
+ */
11
+
12
+ /**
13
+ * Note: For the time being, this implementation of the PKCS #7 cryptographic
14
+ * message syntax is a partial implementation of RFC 2315.
15
+ * Differences include:
16
+ * - The RFC specifies 6 different content types. The only type currently
17
+ * supported in Mbed TLS is the signed-data content type.
18
+ * - The only supported PKCS #7 Signed Data syntax version is version 1
19
+ * - The RFC specifies support for BER. This implementation is limited to
20
+ * DER only.
21
+ * - The RFC specifies that multiple digest algorithms can be specified
22
+ * in the Signed Data type. Only one digest algorithm is supported in Mbed TLS.
23
+ * - The RFC specifies the Signed Data type can contain multiple X.509 or PKCS #6 extended
24
+ * certificates. In Mbed TLS, this list can only contain 0 or 1 certificates
25
+ * and they must be in X.509 format.
26
+ * - The RFC specifies the Signed Data type can contain
27
+ * certificate-revocation lists (CRLs). This implementation has no support
28
+ * for CRLs so it is assumed to be an empty list.
29
+ * - The RFC allows for SignerInfo structure to optionally contain
30
+ * unauthenticatedAttributes and authenticatedAttributes. In Mbed TLS it is
31
+ * assumed these fields are empty.
32
+ * - The RFC allows for the signed Data type to contain contentInfo. This
33
+ * implementation assumes the type is DATA and the content is empty.
34
+ * - The RFC doesn't put any constrain on the hash algorithm to be used, but
35
+ * this implementation by default rejects weak hash algorithms (i.e. RIPEMD160,
36
+ * MD5, SHA-1, SHA-224, SHA3-224). In general accepted hash algorithms
37
+ * are the ones belonging to ::mbedtls_x509_crt_profile_default.
38
+ * #MBEDTLS_PKCS7_ALLOW_WEAK_SIGNATURES can be enabled to accept all
39
+ * supported hash algorithms.
40
+ */
41
+
42
+ #ifndef MBEDTLS_PKCS7_H
43
+ #define MBEDTLS_PKCS7_H
44
+
45
+ #include "mbedtls/private_access.h"
46
+
47
+ #include "mbedtls/build_info.h"
48
+
49
+ #include "mbedtls/asn1.h"
50
+ #include "mbedtls/x509_crt.h"
51
+
52
+ /**
53
+ * \name PKCS #7 Module Error codes
54
+ * \{
55
+ */
56
+ #define MBEDTLS_ERR_PKCS7_INVALID_FORMAT -0x5300 /**< The format is invalid, e.g. different type expected. */
57
+ #define MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE -0x5380 /**< Unavailable feature, e.g. anything other than signed data. */
58
+ #define MBEDTLS_ERR_PKCS7_INVALID_VERSION -0x5400 /**< The PKCS #7 version element is invalid or cannot be parsed. */
59
+ #define MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO -0x5480 /**< The PKCS #7 content info is invalid or cannot be parsed. */
60
+ #define MBEDTLS_ERR_PKCS7_INVALID_ALG -0x5500 /**< The algorithm tag or value is invalid or cannot be parsed. */
61
+ #define MBEDTLS_ERR_PKCS7_INVALID_CERT -0x5580 /**< The certificate tag or value is invalid or cannot be parsed. */
62
+ #define MBEDTLS_ERR_PKCS7_INVALID_SIGNATURE -0x5600 /**< Error parsing the signature */
63
+ #define MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO -0x5680 /**< Error parsing the signer's info */
64
+ #define MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA -0x5700 /**< Input invalid. */
65
+ #define MBEDTLS_ERR_PKCS7_ALLOC_FAILED -0x5780 /**< Allocation of memory failed. */
66
+ #define MBEDTLS_ERR_PKCS7_VERIFY_FAIL -0x5800 /**< Verification Failed */
67
+ #define MBEDTLS_ERR_PKCS7_CERT_DATE_INVALID -0x5880 /**< The PKCS #7 date issued/expired dates are invalid */
68
+ /* \} name */
69
+
70
+ /**
71
+ * \name PKCS #7 Supported Version
72
+ * \{
73
+ */
74
+ #define MBEDTLS_PKCS7_SUPPORTED_VERSION 0x01
75
+ /* \} name */
76
+
77
+ #ifdef __cplusplus
78
+ extern "C" {
79
+ #endif
80
+
81
+ /**
82
+ * Type-length-value structure that allows for ASN.1 using DER.
83
+ */
84
+ typedef mbedtls_asn1_buf mbedtls_pkcs7_buf;
85
+
86
+ /**
87
+ * Container for ASN.1 named information objects.
88
+ * It allows for Relative Distinguished Names (e.g. cn=localhost,ou=code,etc.).
89
+ */
90
+ typedef mbedtls_asn1_named_data mbedtls_pkcs7_name;
91
+
92
+ /**
93
+ * Container for a sequence of ASN.1 items
94
+ */
95
+ typedef mbedtls_asn1_sequence mbedtls_pkcs7_sequence;
96
+
97
+ /**
98
+ * PKCS #7 types
99
+ */
100
+ typedef enum {
101
+ MBEDTLS_PKCS7_NONE=0,
102
+ MBEDTLS_PKCS7_DATA,
103
+ MBEDTLS_PKCS7_SIGNED_DATA,
104
+ MBEDTLS_PKCS7_ENVELOPED_DATA,
105
+ MBEDTLS_PKCS7_SIGNED_AND_ENVELOPED_DATA,
106
+ MBEDTLS_PKCS7_DIGESTED_DATA,
107
+ MBEDTLS_PKCS7_ENCRYPTED_DATA,
108
+ }
109
+ mbedtls_pkcs7_type;
110
+
111
+ /**
112
+ * Structure holding PKCS #7 signer info
113
+ */
114
+ typedef struct mbedtls_pkcs7_signer_info {
115
+ int MBEDTLS_PRIVATE(version);
116
+ mbedtls_x509_buf MBEDTLS_PRIVATE(serial);
117
+ mbedtls_x509_name MBEDTLS_PRIVATE(issuer);
118
+ mbedtls_x509_buf MBEDTLS_PRIVATE(issuer_raw);
119
+ mbedtls_x509_buf MBEDTLS_PRIVATE(alg_identifier);
120
+ mbedtls_x509_buf MBEDTLS_PRIVATE(sig_alg_identifier);
121
+ mbedtls_x509_buf MBEDTLS_PRIVATE(sig);
122
+ struct mbedtls_pkcs7_signer_info *MBEDTLS_PRIVATE(next);
123
+ }
124
+ mbedtls_pkcs7_signer_info;
125
+
126
+ /**
127
+ * Structure holding the signed data section
128
+ */
129
+ typedef struct mbedtls_pkcs7_signed_data {
130
+ int MBEDTLS_PRIVATE(version);
131
+ mbedtls_pkcs7_buf MBEDTLS_PRIVATE(digest_alg_identifiers);
132
+ int MBEDTLS_PRIVATE(no_of_certs);
133
+ mbedtls_x509_crt MBEDTLS_PRIVATE(certs);
134
+ int MBEDTLS_PRIVATE(no_of_crls);
135
+ mbedtls_x509_crl MBEDTLS_PRIVATE(crl);
136
+ int MBEDTLS_PRIVATE(no_of_signers);
137
+ mbedtls_pkcs7_signer_info MBEDTLS_PRIVATE(signers);
138
+ }
139
+ mbedtls_pkcs7_signed_data;
140
+
141
+ /**
142
+ * Structure holding PKCS #7 structure, only signed data for now
143
+ */
144
+ typedef struct mbedtls_pkcs7 {
145
+ mbedtls_pkcs7_buf MBEDTLS_PRIVATE(raw);
146
+ mbedtls_pkcs7_signed_data MBEDTLS_PRIVATE(signed_data);
147
+ }
148
+ mbedtls_pkcs7;
149
+
150
+ /**
151
+ * \brief Initialize mbedtls_pkcs7 structure.
152
+ *
153
+ * \param pkcs7 mbedtls_pkcs7 structure.
154
+ */
155
+ void mbedtls_pkcs7_init(mbedtls_pkcs7 *pkcs7);
156
+
157
+ /**
158
+ * \brief Parse a single DER formatted PKCS #7 detached signature.
159
+ *
160
+ * \param pkcs7 The mbedtls_pkcs7 structure to be filled by the parser.
161
+ * \param buf The buffer holding only the DER encoded PKCS #7 content.
162
+ * \param buflen The size in bytes of \p buf. The size must be exactly the
163
+ * length of the DER encoded PKCS #7 content.
164
+ *
165
+ * \note This function makes an internal copy of the PKCS #7 buffer
166
+ * \p buf. In particular, \p buf may be destroyed or reused
167
+ * after this call returns.
168
+ * \note Signatures with internal data are not supported.
169
+ *
170
+ * \return The \c mbedtls_pkcs7_type of \p buf, if successful.
171
+ * \return A negative error code on failure.
172
+ */
173
+ int mbedtls_pkcs7_parse_der(mbedtls_pkcs7 *pkcs7, const unsigned char *buf,
174
+ const size_t buflen);
175
+
176
+ /**
177
+ * \brief Verification of PKCS #7 signature against a caller-supplied
178
+ * certificate.
179
+ *
180
+ * For each signer in the PKCS structure, this function computes
181
+ * a signature over the supplied data, using the supplied
182
+ * certificate and the same digest algorithm as specified by the
183
+ * signer. It then compares this signature against the
184
+ * signer's signature; verification succeeds if any comparison
185
+ * matches.
186
+ *
187
+ * This function does not use the certificates held within the
188
+ * PKCS #7 structure itself, and does not check that the
189
+ * certificate is signed by a trusted certification authority.
190
+ *
191
+ * \param pkcs7 mbedtls_pkcs7 structure containing signature.
192
+ * \param cert Certificate containing key to verify signature.
193
+ * \param data Plain data on which signature has to be verified.
194
+ * \param datalen Length of the data.
195
+ *
196
+ * \note This function internally calculates the hash on the supplied
197
+ * plain data for signature verification.
198
+ *
199
+ * \note For limitation on the supported hash algorithms, please refer
200
+ * to the note at the top of this document.
201
+ *
202
+ * \return 0 if the signature verifies, or a negative error code on failure.
203
+ */
204
+ int mbedtls_pkcs7_signed_data_verify(mbedtls_pkcs7 *pkcs7,
205
+ const mbedtls_x509_crt *cert,
206
+ const unsigned char *data,
207
+ size_t datalen);
208
+
209
+ /**
210
+ * \brief Verification of PKCS #7 signature against a caller-supplied
211
+ * certificate.
212
+ *
213
+ * For each signer in the PKCS structure, this function
214
+ * validates a signature over the supplied hash, using the
215
+ * supplied certificate and the same digest algorithm as
216
+ * specified by the signer. Verification succeeds if any
217
+ * signature is good.
218
+ *
219
+ * This function does not use the certificates held within the
220
+ * PKCS #7 structure itself, and does not check that the
221
+ * certificate is signed by a trusted certification authority.
222
+ *
223
+ * \param pkcs7 PKCS #7 structure containing signature.
224
+ * \param cert Certificate containing key to verify signature.
225
+ * \param hash Hash of the plain data on which signature has to be verified.
226
+ * \param hashlen Length of the hash.
227
+ *
228
+ * \note This function is different from mbedtls_pkcs7_signed_data_verify()
229
+ * in that it is directly passed the hash of the data.
230
+ *
231
+ * \note For limitation on the supported hash algorithms, please refer
232
+ * to the note at the top of this document.
233
+ *
234
+ * \return 0 if the signature verifies, or a negative error code on failure.
235
+ */
236
+ int mbedtls_pkcs7_signed_hash_verify(mbedtls_pkcs7 *pkcs7,
237
+ const mbedtls_x509_crt *cert,
238
+ const unsigned char *hash, size_t hashlen);
239
+
240
+ /**
241
+ * \brief Unallocate all PKCS #7 data and zeroize the memory.
242
+ * It doesn't free \p pkcs7 itself. This should be done by the caller.
243
+ *
244
+ * \param pkcs7 mbedtls_pkcs7 structure to free.
245
+ */
246
+ void mbedtls_pkcs7_free(mbedtls_pkcs7 *pkcs7);
247
+
248
+ #ifdef __cplusplus
249
+ }
250
+ #endif
251
+
252
+ #endif /* pkcs7.h */