@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,131 @@
1
+ /*
2
+ * PSA FFDH layer on top of Mbed TLS crypto
3
+ */
4
+ /*
5
+ * Copyright The Mbed TLS Contributors
6
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
7
+ */
8
+
9
+ #ifndef PSA_CRYPTO_FFDH_H
10
+ #define PSA_CRYPTO_FFDH_H
11
+
12
+ #include <psa/crypto.h>
13
+
14
+ /** Perform a key agreement and return the FFDH shared secret.
15
+ *
16
+ * \param[in] attributes The attributes of the key to use for the
17
+ * operation.
18
+ * \param[in] peer_key The buffer containing the key context
19
+ * of the peer's public key.
20
+ * \param[in] peer_key_length Size of the \p peer_key buffer in
21
+ * bytes.
22
+ * \param[in] key_buffer The buffer containing the private key
23
+ * context.
24
+ * \param[in] key_buffer_size Size of the \p key_buffer buffer in
25
+ * bytes.
26
+ * \param[out] shared_secret The buffer to which the shared secret
27
+ * is to be written.
28
+ * \param[in] shared_secret_size Size of the \p shared_secret buffer in
29
+ * bytes.
30
+ * \param[out] shared_secret_length On success, the number of bytes that make
31
+ * up the returned shared secret.
32
+ * \retval #PSA_SUCCESS
33
+ * Success. Shared secret successfully calculated.
34
+ * \retval #PSA_ERROR_INVALID_ARGUMENT
35
+ * \p key_buffer_size, \p peer_key_length, \p shared_secret_size
36
+ * do not match
37
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
38
+ * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
39
+ */
40
+ psa_status_t mbedtls_psa_ffdh_key_agreement(
41
+ const psa_key_attributes_t *attributes,
42
+ const uint8_t *peer_key,
43
+ size_t peer_key_length,
44
+ const uint8_t *key_buffer,
45
+ size_t key_buffer_size,
46
+ uint8_t *shared_secret,
47
+ size_t shared_secret_size,
48
+ size_t *shared_secret_length);
49
+
50
+ /** Export a public key or the public part of a DH key pair in binary format.
51
+ *
52
+ * \param[in] attributes The attributes for the key to export.
53
+ * \param[in] key_buffer Material or context of the key to export.
54
+ * \param[in] key_buffer_size Size of the \p key_buffer buffer in bytes.
55
+ * \param[out] data Buffer where the key data is to be written.
56
+ * \param[in] data_size Size of the \p data buffer in bytes.
57
+ * \param[out] data_length On success, the number of bytes written in
58
+ * \p data
59
+ *
60
+ * \retval #PSA_SUCCESS The public key was exported successfully.
61
+ * \retval #PSA_ERROR_BUFFER_TOO_SMALL
62
+ * The size of \p key_buffer is too small.
63
+ * \retval #PSA_ERROR_NOT_PERMITTED \emptydescription
64
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
65
+ * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
66
+ */
67
+ psa_status_t mbedtls_psa_ffdh_export_public_key(
68
+ const psa_key_attributes_t *attributes,
69
+ const uint8_t *key_buffer,
70
+ size_t key_buffer_size,
71
+ uint8_t *data,
72
+ size_t data_size,
73
+ size_t *data_length);
74
+
75
+ /**
76
+ * \brief Generate DH key.
77
+ *
78
+ * \note The signature of the function is that of a PSA driver generate_key
79
+ * entry point.
80
+ *
81
+ * \param[in] attributes The attributes for the key to generate.
82
+ * \param[out] key_buffer Buffer where the key data is to be written.
83
+ * \param[in] key_buffer_size Size of \p key_buffer in bytes.
84
+ * \param[out] key_buffer_length On success, the number of bytes written in
85
+ * \p key_buffer.
86
+ *
87
+ * \retval #PSA_SUCCESS
88
+ * The key was generated successfully.
89
+ * \retval #PSA_ERROR_NOT_SUPPORTED
90
+ * Key size in bits is invalid.
91
+ * \retval #PSA_ERROR_BUFFER_TOO_SMALL
92
+ * The size of \p key_buffer is too small.
93
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY \emptydescription
94
+ * \retval #PSA_ERROR_CORRUPTION_DETECTED \emptydescription
95
+ */
96
+ psa_status_t mbedtls_psa_ffdh_generate_key(
97
+ const psa_key_attributes_t *attributes,
98
+ uint8_t *key_buffer,
99
+ size_t key_buffer_size,
100
+ size_t *key_buffer_length);
101
+
102
+ /**
103
+ * \brief Import DH key.
104
+ *
105
+ * \note The signature of the function is that of a PSA driver import_key
106
+ * entry point.
107
+ *
108
+ * \param[in] attributes The attributes for the key to import.
109
+ * \param[in] data The buffer containing the key data in import
110
+ * format.
111
+ * \param[in] data_length Size of the \p data buffer in bytes.
112
+ * \param[out] key_buffer The buffer containing the key data in output
113
+ * format.
114
+ * \param[in] key_buffer_size Size of the \p key_buffer buffer in bytes. This
115
+ * size is greater or equal to \p data_length.
116
+ * \param[out] key_buffer_length The length of the data written in \p
117
+ * key_buffer in bytes.
118
+ * \param[out] bits The key size in number of bits.
119
+ *
120
+ * \retval #PSA_SUCCESS
121
+ * The key was generated successfully.
122
+ * \retval #PSA_ERROR_BUFFER_TOO_SMALL
123
+ * The size of \p key_buffer is too small.
124
+ */
125
+ psa_status_t mbedtls_psa_ffdh_import_key(
126
+ const psa_key_attributes_t *attributes,
127
+ const uint8_t *data, size_t data_length,
128
+ uint8_t *key_buffer, size_t key_buffer_size,
129
+ size_t *key_buffer_length, size_t *bits);
130
+
131
+ #endif /* PSA_CRYPTO_FFDH_H */
@@ -0,0 +1,470 @@
1
+ /*
2
+ * PSA hashing layer on top of Mbed TLS software crypto
3
+ */
4
+ /*
5
+ * Copyright The Mbed TLS Contributors
6
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
7
+ */
8
+
9
+ #include "common.h"
10
+
11
+ #if defined(MBEDTLS_PSA_CRYPTO_C)
12
+
13
+ #include <psa/crypto.h>
14
+ #include "psa_crypto_core.h"
15
+ #include "psa_crypto_hash.h"
16
+
17
+ #include <mbedtls/error.h>
18
+ #include <string.h>
19
+
20
+ #if defined(MBEDTLS_PSA_BUILTIN_HASH)
21
+ psa_status_t mbedtls_psa_hash_abort(
22
+ mbedtls_psa_hash_operation_t *operation)
23
+ {
24
+ switch (operation->alg) {
25
+ case 0:
26
+ /* The object has (apparently) been initialized but it is not
27
+ * in use. It's ok to call abort on such an object, and there's
28
+ * nothing to do. */
29
+ break;
30
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_MD5)
31
+ case PSA_ALG_MD5:
32
+ mbedtls_md5_free(&operation->ctx.md5);
33
+ break;
34
+ #endif
35
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160)
36
+ case PSA_ALG_RIPEMD160:
37
+ mbedtls_ripemd160_free(&operation->ctx.ripemd160);
38
+ break;
39
+ #endif
40
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_1)
41
+ case PSA_ALG_SHA_1:
42
+ mbedtls_sha1_free(&operation->ctx.sha1);
43
+ break;
44
+ #endif
45
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_224)
46
+ case PSA_ALG_SHA_224:
47
+ mbedtls_sha256_free(&operation->ctx.sha256);
48
+ break;
49
+ #endif
50
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256)
51
+ case PSA_ALG_SHA_256:
52
+ mbedtls_sha256_free(&operation->ctx.sha256);
53
+ break;
54
+ #endif
55
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384)
56
+ case PSA_ALG_SHA_384:
57
+ mbedtls_sha512_free(&operation->ctx.sha512);
58
+ break;
59
+ #endif
60
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512)
61
+ case PSA_ALG_SHA_512:
62
+ mbedtls_sha512_free(&operation->ctx.sha512);
63
+ break;
64
+ #endif
65
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224)
66
+ case PSA_ALG_SHA3_224:
67
+ #endif
68
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256)
69
+ case PSA_ALG_SHA3_256:
70
+ #endif
71
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384)
72
+ case PSA_ALG_SHA3_384:
73
+ #endif
74
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
75
+ case PSA_ALG_SHA3_512:
76
+ #endif
77
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224) || \
78
+ defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256) || \
79
+ defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384) || \
80
+ defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
81
+ mbedtls_sha3_free(&operation->ctx.sha3);
82
+ break;
83
+ #endif
84
+ default:
85
+ return PSA_ERROR_BAD_STATE;
86
+ }
87
+ operation->alg = 0;
88
+ return PSA_SUCCESS;
89
+ }
90
+
91
+ psa_status_t mbedtls_psa_hash_setup(
92
+ mbedtls_psa_hash_operation_t *operation,
93
+ psa_algorithm_t alg)
94
+ {
95
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
96
+
97
+ /* A context must be freshly initialized before it can be set up. */
98
+ if (operation->alg != 0) {
99
+ return PSA_ERROR_BAD_STATE;
100
+ }
101
+
102
+ switch (alg) {
103
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_MD5)
104
+ case PSA_ALG_MD5:
105
+ mbedtls_md5_init(&operation->ctx.md5);
106
+ ret = mbedtls_md5_starts(&operation->ctx.md5);
107
+ break;
108
+ #endif
109
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160)
110
+ case PSA_ALG_RIPEMD160:
111
+ mbedtls_ripemd160_init(&operation->ctx.ripemd160);
112
+ ret = mbedtls_ripemd160_starts(&operation->ctx.ripemd160);
113
+ break;
114
+ #endif
115
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_1)
116
+ case PSA_ALG_SHA_1:
117
+ mbedtls_sha1_init(&operation->ctx.sha1);
118
+ ret = mbedtls_sha1_starts(&operation->ctx.sha1);
119
+ break;
120
+ #endif
121
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_224)
122
+ case PSA_ALG_SHA_224:
123
+ mbedtls_sha256_init(&operation->ctx.sha256);
124
+ ret = mbedtls_sha256_starts(&operation->ctx.sha256, 1);
125
+ break;
126
+ #endif
127
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256)
128
+ case PSA_ALG_SHA_256:
129
+ mbedtls_sha256_init(&operation->ctx.sha256);
130
+ ret = mbedtls_sha256_starts(&operation->ctx.sha256, 0);
131
+ break;
132
+ #endif
133
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384)
134
+ case PSA_ALG_SHA_384:
135
+ mbedtls_sha512_init(&operation->ctx.sha512);
136
+ ret = mbedtls_sha512_starts(&operation->ctx.sha512, 1);
137
+ break;
138
+ #endif
139
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512)
140
+ case PSA_ALG_SHA_512:
141
+ mbedtls_sha512_init(&operation->ctx.sha512);
142
+ ret = mbedtls_sha512_starts(&operation->ctx.sha512, 0);
143
+ break;
144
+ #endif
145
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224)
146
+ case PSA_ALG_SHA3_224:
147
+ mbedtls_sha3_init(&operation->ctx.sha3);
148
+ ret = mbedtls_sha3_starts(&operation->ctx.sha3, MBEDTLS_SHA3_224);
149
+ break;
150
+ #endif
151
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256)
152
+ case PSA_ALG_SHA3_256:
153
+ mbedtls_sha3_init(&operation->ctx.sha3);
154
+ ret = mbedtls_sha3_starts(&operation->ctx.sha3, MBEDTLS_SHA3_256);
155
+ break;
156
+ #endif
157
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384)
158
+ case PSA_ALG_SHA3_384:
159
+ mbedtls_sha3_init(&operation->ctx.sha3);
160
+ ret = mbedtls_sha3_starts(&operation->ctx.sha3, MBEDTLS_SHA3_384);
161
+ break;
162
+ #endif
163
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
164
+ case PSA_ALG_SHA3_512:
165
+ mbedtls_sha3_init(&operation->ctx.sha3);
166
+ ret = mbedtls_sha3_starts(&operation->ctx.sha3, MBEDTLS_SHA3_512);
167
+ break;
168
+ #endif
169
+ default:
170
+ return PSA_ALG_IS_HASH(alg) ?
171
+ PSA_ERROR_NOT_SUPPORTED :
172
+ PSA_ERROR_INVALID_ARGUMENT;
173
+ }
174
+ if (ret == 0) {
175
+ operation->alg = alg;
176
+ } else {
177
+ mbedtls_psa_hash_abort(operation);
178
+ }
179
+ return mbedtls_to_psa_error(ret);
180
+ }
181
+
182
+ psa_status_t mbedtls_psa_hash_clone(
183
+ const mbedtls_psa_hash_operation_t *source_operation,
184
+ mbedtls_psa_hash_operation_t *target_operation)
185
+ {
186
+ switch (source_operation->alg) {
187
+ case 0:
188
+ return PSA_ERROR_BAD_STATE;
189
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_MD5)
190
+ case PSA_ALG_MD5:
191
+ mbedtls_md5_clone(&target_operation->ctx.md5,
192
+ &source_operation->ctx.md5);
193
+ break;
194
+ #endif
195
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160)
196
+ case PSA_ALG_RIPEMD160:
197
+ mbedtls_ripemd160_clone(&target_operation->ctx.ripemd160,
198
+ &source_operation->ctx.ripemd160);
199
+ break;
200
+ #endif
201
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_1)
202
+ case PSA_ALG_SHA_1:
203
+ mbedtls_sha1_clone(&target_operation->ctx.sha1,
204
+ &source_operation->ctx.sha1);
205
+ break;
206
+ #endif
207
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_224)
208
+ case PSA_ALG_SHA_224:
209
+ mbedtls_sha256_clone(&target_operation->ctx.sha256,
210
+ &source_operation->ctx.sha256);
211
+ break;
212
+ #endif
213
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256)
214
+ case PSA_ALG_SHA_256:
215
+ mbedtls_sha256_clone(&target_operation->ctx.sha256,
216
+ &source_operation->ctx.sha256);
217
+ break;
218
+ #endif
219
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384)
220
+ case PSA_ALG_SHA_384:
221
+ mbedtls_sha512_clone(&target_operation->ctx.sha512,
222
+ &source_operation->ctx.sha512);
223
+ break;
224
+ #endif
225
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512)
226
+ case PSA_ALG_SHA_512:
227
+ mbedtls_sha512_clone(&target_operation->ctx.sha512,
228
+ &source_operation->ctx.sha512);
229
+ break;
230
+ #endif
231
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224)
232
+ case PSA_ALG_SHA3_224:
233
+ #endif
234
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256)
235
+ case PSA_ALG_SHA3_256:
236
+ #endif
237
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384)
238
+ case PSA_ALG_SHA3_384:
239
+ #endif
240
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
241
+ case PSA_ALG_SHA3_512:
242
+ #endif
243
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224) || \
244
+ defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256) || \
245
+ defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384) || \
246
+ defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
247
+ mbedtls_sha3_clone(&target_operation->ctx.sha3,
248
+ &source_operation->ctx.sha3);
249
+ break;
250
+ #endif
251
+ default:
252
+ (void) source_operation;
253
+ (void) target_operation;
254
+ return PSA_ERROR_NOT_SUPPORTED;
255
+ }
256
+
257
+ target_operation->alg = source_operation->alg;
258
+ return PSA_SUCCESS;
259
+ }
260
+
261
+ psa_status_t mbedtls_psa_hash_update(
262
+ mbedtls_psa_hash_operation_t *operation,
263
+ const uint8_t *input,
264
+ size_t input_length)
265
+ {
266
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
267
+
268
+ switch (operation->alg) {
269
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_MD5)
270
+ case PSA_ALG_MD5:
271
+ ret = mbedtls_md5_update(&operation->ctx.md5,
272
+ input, input_length);
273
+ break;
274
+ #endif
275
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160)
276
+ case PSA_ALG_RIPEMD160:
277
+ ret = mbedtls_ripemd160_update(&operation->ctx.ripemd160,
278
+ input, input_length);
279
+ break;
280
+ #endif
281
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_1)
282
+ case PSA_ALG_SHA_1:
283
+ ret = mbedtls_sha1_update(&operation->ctx.sha1,
284
+ input, input_length);
285
+ break;
286
+ #endif
287
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_224)
288
+ case PSA_ALG_SHA_224:
289
+ ret = mbedtls_sha256_update(&operation->ctx.sha256,
290
+ input, input_length);
291
+ break;
292
+ #endif
293
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256)
294
+ case PSA_ALG_SHA_256:
295
+ ret = mbedtls_sha256_update(&operation->ctx.sha256,
296
+ input, input_length);
297
+ break;
298
+ #endif
299
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384)
300
+ case PSA_ALG_SHA_384:
301
+ ret = mbedtls_sha512_update(&operation->ctx.sha512,
302
+ input, input_length);
303
+ break;
304
+ #endif
305
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512)
306
+ case PSA_ALG_SHA_512:
307
+ ret = mbedtls_sha512_update(&operation->ctx.sha512,
308
+ input, input_length);
309
+ break;
310
+ #endif
311
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224)
312
+ case PSA_ALG_SHA3_224:
313
+ #endif
314
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256)
315
+ case PSA_ALG_SHA3_256:
316
+ #endif
317
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384)
318
+ case PSA_ALG_SHA3_384:
319
+ #endif
320
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
321
+ case PSA_ALG_SHA3_512:
322
+ #endif
323
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224) || \
324
+ defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256) || \
325
+ defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384) || \
326
+ defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
327
+ ret = mbedtls_sha3_update(&operation->ctx.sha3,
328
+ input, input_length);
329
+ break;
330
+ #endif
331
+ default:
332
+ (void) input;
333
+ (void) input_length;
334
+ return PSA_ERROR_BAD_STATE;
335
+ }
336
+
337
+ return mbedtls_to_psa_error(ret);
338
+ }
339
+
340
+ psa_status_t mbedtls_psa_hash_finish(
341
+ mbedtls_psa_hash_operation_t *operation,
342
+ uint8_t *hash,
343
+ size_t hash_size,
344
+ size_t *hash_length)
345
+ {
346
+ psa_status_t status;
347
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
348
+ size_t actual_hash_length = PSA_HASH_LENGTH(operation->alg);
349
+
350
+ /* Fill the output buffer with something that isn't a valid hash
351
+ * (barring an attack on the hash and deliberately-crafted input),
352
+ * in case the caller doesn't check the return status properly. */
353
+ *hash_length = hash_size;
354
+ /* If hash_size is 0 then hash may be NULL and then the
355
+ * call to memset would have undefined behavior. */
356
+ if (hash_size != 0) {
357
+ memset(hash, '!', hash_size);
358
+ }
359
+
360
+ if (hash_size < actual_hash_length) {
361
+ status = PSA_ERROR_BUFFER_TOO_SMALL;
362
+ goto exit;
363
+ }
364
+
365
+ switch (operation->alg) {
366
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_MD5)
367
+ case PSA_ALG_MD5:
368
+ ret = mbedtls_md5_finish(&operation->ctx.md5, hash);
369
+ break;
370
+ #endif
371
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160)
372
+ case PSA_ALG_RIPEMD160:
373
+ ret = mbedtls_ripemd160_finish(&operation->ctx.ripemd160, hash);
374
+ break;
375
+ #endif
376
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_1)
377
+ case PSA_ALG_SHA_1:
378
+ ret = mbedtls_sha1_finish(&operation->ctx.sha1, hash);
379
+ break;
380
+ #endif
381
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_224)
382
+ case PSA_ALG_SHA_224:
383
+ ret = mbedtls_sha256_finish(&operation->ctx.sha256, hash);
384
+ break;
385
+ #endif
386
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256)
387
+ case PSA_ALG_SHA_256:
388
+ ret = mbedtls_sha256_finish(&operation->ctx.sha256, hash);
389
+ break;
390
+ #endif
391
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384)
392
+ case PSA_ALG_SHA_384:
393
+ ret = mbedtls_sha512_finish(&operation->ctx.sha512, hash);
394
+ break;
395
+ #endif
396
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512)
397
+ case PSA_ALG_SHA_512:
398
+ ret = mbedtls_sha512_finish(&operation->ctx.sha512, hash);
399
+ break;
400
+ #endif
401
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224)
402
+ case PSA_ALG_SHA3_224:
403
+ #endif
404
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256)
405
+ case PSA_ALG_SHA3_256:
406
+ #endif
407
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384)
408
+ case PSA_ALG_SHA3_384:
409
+ #endif
410
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
411
+ case PSA_ALG_SHA3_512:
412
+ #endif
413
+ #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_224) || \
414
+ defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_256) || \
415
+ defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_384) || \
416
+ defined(MBEDTLS_PSA_BUILTIN_ALG_SHA3_512)
417
+ ret = mbedtls_sha3_finish(&operation->ctx.sha3, hash, hash_size);
418
+ break;
419
+ #endif
420
+ default:
421
+ (void) hash;
422
+ return PSA_ERROR_BAD_STATE;
423
+ }
424
+ status = mbedtls_to_psa_error(ret);
425
+
426
+ exit:
427
+ if (status == PSA_SUCCESS) {
428
+ *hash_length = actual_hash_length;
429
+ }
430
+ return status;
431
+ }
432
+
433
+ psa_status_t mbedtls_psa_hash_compute(
434
+ psa_algorithm_t alg,
435
+ const uint8_t *input,
436
+ size_t input_length,
437
+ uint8_t *hash,
438
+ size_t hash_size,
439
+ size_t *hash_length)
440
+ {
441
+ mbedtls_psa_hash_operation_t operation = MBEDTLS_PSA_HASH_OPERATION_INIT;
442
+ psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
443
+ psa_status_t abort_status = PSA_ERROR_CORRUPTION_DETECTED;
444
+
445
+ *hash_length = hash_size;
446
+ status = mbedtls_psa_hash_setup(&operation, alg);
447
+ if (status != PSA_SUCCESS) {
448
+ goto exit;
449
+ }
450
+ status = mbedtls_psa_hash_update(&operation, input, input_length);
451
+ if (status != PSA_SUCCESS) {
452
+ goto exit;
453
+ }
454
+ status = mbedtls_psa_hash_finish(&operation, hash, hash_size, hash_length);
455
+ if (status != PSA_SUCCESS) {
456
+ goto exit;
457
+ }
458
+
459
+ exit:
460
+ abort_status = mbedtls_psa_hash_abort(&operation);
461
+ if (status == PSA_SUCCESS) {
462
+ return abort_status;
463
+ } else {
464
+ return status;
465
+ }
466
+
467
+ }
468
+ #endif /* MBEDTLS_PSA_BUILTIN_HASH */
469
+
470
+ #endif /* MBEDTLS_PSA_CRYPTO_C */