@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,508 @@
1
+ /**
2
+ * \file psa/crypto_types.h
3
+ *
4
+ * \brief PSA cryptography module: type aliases.
5
+ *
6
+ * \note This file may not be included directly. Applications must
7
+ * include psa/crypto.h. Drivers must include the appropriate driver
8
+ * header file.
9
+ *
10
+ * This file contains portable definitions of integral types for properties
11
+ * of cryptographic keys, designations of cryptographic algorithms, and
12
+ * error codes returned by the library.
13
+ *
14
+ * This header file does not declare any function.
15
+ */
16
+ /*
17
+ * Copyright The Mbed TLS Contributors
18
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
19
+ */
20
+
21
+ #ifndef PSA_CRYPTO_TYPES_H
22
+ #define PSA_CRYPTO_TYPES_H
23
+
24
+ /*
25
+ * Include the build-time configuration information header. Here, we do not
26
+ * include `"mbedtls/build_info.h"` directly but `"psa/build_info.h"`, which
27
+ * is basically just an alias to it. This is to ease the maintenance of the
28
+ * TF-PSA-Crypto repository which has a different build system and
29
+ * configuration.
30
+ */
31
+ #include "psa/build_info.h"
32
+
33
+ /* Define the MBEDTLS_PRIVATE macro. */
34
+ #include "mbedtls/private_access.h"
35
+
36
+ #if defined(MBEDTLS_PSA_CRYPTO_PLATFORM_FILE)
37
+ #include MBEDTLS_PSA_CRYPTO_PLATFORM_FILE
38
+ #else
39
+ #include "crypto_platform.h"
40
+ #endif
41
+
42
+ #include <stdint.h>
43
+
44
+ /** \defgroup error Error codes
45
+ * @{
46
+ */
47
+
48
+ /**
49
+ * \brief Function return status.
50
+ *
51
+ * This is either #PSA_SUCCESS (which is zero), indicating success,
52
+ * or a small negative value indicating that an error occurred. Errors are
53
+ * encoded as one of the \c PSA_ERROR_xxx values defined here. */
54
+ /* If #PSA_SUCCESS is already defined, it means that #psa_status_t
55
+ * is also defined in an external header, so prevent its multiple
56
+ * definition.
57
+ */
58
+ #ifndef PSA_SUCCESS
59
+ typedef int32_t psa_status_t;
60
+ #endif
61
+
62
+ /**@}*/
63
+
64
+ /** \defgroup crypto_types Key and algorithm types
65
+ * @{
66
+ */
67
+
68
+ /** \brief Encoding of a key type.
69
+ *
70
+ * Values of this type are generally constructed by macros called
71
+ * `PSA_KEY_TYPE_xxx`.
72
+ *
73
+ * \note Values of this type are encoded in the persistent key store.
74
+ * Any changes to existing values will require bumping the storage
75
+ * format version and providing a translation when reading the old
76
+ * format.
77
+ */
78
+ typedef uint16_t psa_key_type_t;
79
+
80
+ /** The type of PSA elliptic curve family identifiers.
81
+ *
82
+ * Values of this type are generally constructed by macros called
83
+ * `PSA_ECC_FAMILY_xxx`.
84
+ *
85
+ * The curve identifier is required to create an ECC key using the
86
+ * PSA_KEY_TYPE_ECC_KEY_PAIR() or PSA_KEY_TYPE_ECC_PUBLIC_KEY()
87
+ * macros.
88
+ *
89
+ * Values defined by this standard will never be in the range 0x80-0xff.
90
+ * Vendors who define additional families must use an encoding in this range.
91
+ *
92
+ * \note Values of this type are encoded in the persistent key store.
93
+ * Any changes to existing values will require bumping the storage
94
+ * format version and providing a translation when reading the old
95
+ * format.
96
+ */
97
+ typedef uint8_t psa_ecc_family_t;
98
+
99
+ /** The type of PSA Diffie-Hellman group family identifiers.
100
+ *
101
+ * Values of this type are generally constructed by macros called
102
+ * `PSA_DH_FAMILY_xxx`.
103
+ *
104
+ * The group identifier is required to create a Diffie-Hellman key using the
105
+ * PSA_KEY_TYPE_DH_KEY_PAIR() or PSA_KEY_TYPE_DH_PUBLIC_KEY()
106
+ * macros.
107
+ *
108
+ * Values defined by this standard will never be in the range 0x80-0xff.
109
+ * Vendors who define additional families must use an encoding in this range.
110
+ *
111
+ * \note Values of this type are encoded in the persistent key store.
112
+ * Any changes to existing values will require bumping the storage
113
+ * format version and providing a translation when reading the old
114
+ * format.
115
+ */
116
+ typedef uint8_t psa_dh_family_t;
117
+
118
+ /** \brief Encoding of a cryptographic algorithm.
119
+ *
120
+ * Values of this type are generally constructed by macros called
121
+ * `PSA_ALG_xxx`.
122
+ *
123
+ * For algorithms that can be applied to multiple key types, this type
124
+ * does not encode the key type. For example, for symmetric ciphers
125
+ * based on a block cipher, #psa_algorithm_t encodes the block cipher
126
+ * mode and the padding mode while the block cipher itself is encoded
127
+ * via #psa_key_type_t.
128
+ *
129
+ * \note Values of this type are encoded in the persistent key store.
130
+ * Any changes to existing values will require bumping the storage
131
+ * format version and providing a translation when reading the old
132
+ * format.
133
+ */
134
+ typedef uint32_t psa_algorithm_t;
135
+
136
+ /**@}*/
137
+
138
+ /** \defgroup key_lifetimes Key lifetimes
139
+ * @{
140
+ */
141
+
142
+ /** Encoding of key lifetimes.
143
+ *
144
+ * The lifetime of a key indicates where it is stored and what system actions
145
+ * may create and destroy it.
146
+ *
147
+ * Lifetime values have the following structure:
148
+ * - Bits 0-7 (#PSA_KEY_LIFETIME_GET_PERSISTENCE(\c lifetime)):
149
+ * persistence level. This value indicates what device management
150
+ * actions can cause it to be destroyed. In particular, it indicates
151
+ * whether the key is _volatile_ or _persistent_.
152
+ * See ::psa_key_persistence_t for more information.
153
+ * - Bits 8-31 (#PSA_KEY_LIFETIME_GET_LOCATION(\c lifetime)):
154
+ * location indicator. This value indicates which part of the system
155
+ * has access to the key material and can perform operations using the key.
156
+ * See ::psa_key_location_t for more information.
157
+ *
158
+ * Volatile keys are automatically destroyed when the application instance
159
+ * terminates or on a power reset of the device. Persistent keys are
160
+ * preserved until the application explicitly destroys them or until an
161
+ * integration-specific device management event occurs (for example,
162
+ * a factory reset).
163
+ *
164
+ * Persistent keys have a key identifier of type #mbedtls_svc_key_id_t.
165
+ * This identifier remains valid throughout the lifetime of the key,
166
+ * even if the application instance that created the key terminates.
167
+ * The application can call psa_open_key() to open a persistent key that
168
+ * it created previously.
169
+ *
170
+ * The default lifetime of a key is #PSA_KEY_LIFETIME_VOLATILE. The lifetime
171
+ * #PSA_KEY_LIFETIME_PERSISTENT is supported if persistent storage is
172
+ * available. Other lifetime values may be supported depending on the
173
+ * library configuration.
174
+ *
175
+ * Values of this type are generally constructed by macros called
176
+ * `PSA_KEY_LIFETIME_xxx`.
177
+ *
178
+ * \note Values of this type are encoded in the persistent key store.
179
+ * Any changes to existing values will require bumping the storage
180
+ * format version and providing a translation when reading the old
181
+ * format.
182
+ */
183
+ typedef uint32_t psa_key_lifetime_t;
184
+
185
+ /** Encoding of key persistence levels.
186
+ *
187
+ * What distinguishes different persistence levels is what device management
188
+ * events may cause keys to be destroyed. _Volatile_ keys are destroyed
189
+ * by a power reset. Persistent keys may be destroyed by events such as
190
+ * a transfer of ownership or a factory reset. What management events
191
+ * actually affect persistent keys at different levels is outside the
192
+ * scope of the PSA Cryptography specification.
193
+ *
194
+ * The PSA Cryptography specification defines the following values of
195
+ * persistence levels:
196
+ * - \c 0 = #PSA_KEY_PERSISTENCE_VOLATILE: volatile key.
197
+ * A volatile key is automatically destroyed by the implementation when
198
+ * the application instance terminates. In particular, a volatile key
199
+ * is automatically destroyed on a power reset of the device.
200
+ * - \c 1 = #PSA_KEY_PERSISTENCE_DEFAULT:
201
+ * persistent key with a default lifetime.
202
+ * - \c 2-254: currently not supported by Mbed TLS.
203
+ * - \c 255 = #PSA_KEY_PERSISTENCE_READ_ONLY:
204
+ * read-only or write-once key.
205
+ * A key with this persistence level cannot be destroyed.
206
+ * Mbed TLS does not currently offer a way to create such keys, but
207
+ * integrations of Mbed TLS can use it for built-in keys that the
208
+ * application cannot modify (for example, a hardware unique key (HUK)).
209
+ *
210
+ * \note Key persistence levels are 8-bit values. Key management
211
+ * interfaces operate on lifetimes (type ::psa_key_lifetime_t) which
212
+ * encode the persistence as the lower 8 bits of a 32-bit value.
213
+ *
214
+ * \note Values of this type are encoded in the persistent key store.
215
+ * Any changes to existing values will require bumping the storage
216
+ * format version and providing a translation when reading the old
217
+ * format.
218
+ */
219
+ typedef uint8_t psa_key_persistence_t;
220
+
221
+ /** Encoding of key location indicators.
222
+ *
223
+ * If an integration of Mbed TLS can make calls to external
224
+ * cryptoprocessors such as secure elements, the location of a key
225
+ * indicates which secure element performs the operations on the key.
226
+ * Depending on the design of the secure element, the key
227
+ * material may be stored either in the secure element, or
228
+ * in wrapped (encrypted) form alongside the key metadata in the
229
+ * primary local storage.
230
+ *
231
+ * The PSA Cryptography API specification defines the following values of
232
+ * location indicators:
233
+ * - \c 0: primary local storage.
234
+ * This location is always available.
235
+ * The primary local storage is typically the same storage area that
236
+ * contains the key metadata.
237
+ * - \c 1: primary secure element.
238
+ * Integrations of Mbed TLS should support this value if there is a secure
239
+ * element attached to the operating environment.
240
+ * As a guideline, secure elements may provide higher resistance against
241
+ * side channel and physical attacks than the primary local storage, but may
242
+ * have restrictions on supported key types, sizes, policies and operations
243
+ * and may have different performance characteristics.
244
+ * - \c 2-0x7fffff: other locations defined by a PSA specification.
245
+ * The PSA Cryptography API does not currently assign any meaning to these
246
+ * locations, but future versions of that specification or other PSA
247
+ * specifications may do so.
248
+ * - \c 0x800000-0xffffff: vendor-defined locations.
249
+ * No PSA specification will assign a meaning to locations in this range.
250
+ *
251
+ * \note Key location indicators are 24-bit values. Key management
252
+ * interfaces operate on lifetimes (type ::psa_key_lifetime_t) which
253
+ * encode the location as the upper 24 bits of a 32-bit value.
254
+ *
255
+ * \note Values of this type are encoded in the persistent key store.
256
+ * Any changes to existing values will require bumping the storage
257
+ * format version and providing a translation when reading the old
258
+ * format.
259
+ */
260
+ typedef uint32_t psa_key_location_t;
261
+
262
+ /** Encoding of identifiers of persistent keys.
263
+ *
264
+ * - Applications may freely choose key identifiers in the range
265
+ * #PSA_KEY_ID_USER_MIN to #PSA_KEY_ID_USER_MAX.
266
+ * - The implementation may define additional key identifiers in the range
267
+ * #PSA_KEY_ID_VENDOR_MIN to #PSA_KEY_ID_VENDOR_MAX.
268
+ * - 0 is reserved as an invalid key identifier.
269
+ * - Key identifiers outside these ranges are reserved for future use.
270
+ *
271
+ * \note Values of this type are encoded in the persistent key store.
272
+ * Any changes to how values are allocated must require careful
273
+ * consideration to allow backward compatibility.
274
+ */
275
+ typedef uint32_t psa_key_id_t;
276
+
277
+ /** Encoding of key identifiers as seen inside the PSA Crypto implementation.
278
+ *
279
+ * When PSA Crypto is built as a library inside an application, this type
280
+ * is identical to #psa_key_id_t. When PSA Crypto is built as a service
281
+ * that can store keys on behalf of multiple clients, this type
282
+ * encodes the #psa_key_id_t value seen by each client application as
283
+ * well as extra information that identifies the client that owns
284
+ * the key.
285
+ *
286
+ * \note Values of this type are encoded in the persistent key store.
287
+ * Any changes to existing values will require bumping the storage
288
+ * format version and providing a translation when reading the old
289
+ * format.
290
+ */
291
+ #if !defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER)
292
+ typedef psa_key_id_t mbedtls_svc_key_id_t;
293
+
294
+ #else /* MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER */
295
+ /* Implementation-specific: The Mbed TLS library can be built as
296
+ * part of a multi-client service that exposes the PSA Cryptography API in each
297
+ * client and encodes the client identity in the key identifier argument of
298
+ * functions such as psa_open_key().
299
+ */
300
+ typedef struct {
301
+ psa_key_id_t MBEDTLS_PRIVATE(key_id);
302
+ mbedtls_key_owner_id_t MBEDTLS_PRIVATE(owner);
303
+ } mbedtls_svc_key_id_t;
304
+
305
+ #endif /* !MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER */
306
+
307
+ /**@}*/
308
+
309
+ /** \defgroup policy Key policies
310
+ * @{
311
+ */
312
+
313
+ /** \brief Encoding of permitted usage on a key.
314
+ *
315
+ * Values of this type are generally constructed as bitwise-ors of macros
316
+ * called `PSA_KEY_USAGE_xxx`.
317
+ *
318
+ * \note Values of this type are encoded in the persistent key store.
319
+ * Any changes to existing values will require bumping the storage
320
+ * format version and providing a translation when reading the old
321
+ * format.
322
+ */
323
+ typedef uint32_t psa_key_usage_t;
324
+
325
+ /**@}*/
326
+
327
+ /** \defgroup attributes Key attributes
328
+ * @{
329
+ */
330
+
331
+ /** The type of a structure containing key attributes.
332
+ *
333
+ * This is an opaque structure that can represent the metadata of a key
334
+ * object. Metadata that can be stored in attributes includes:
335
+ * - The location of the key in storage, indicated by its key identifier
336
+ * and its lifetime.
337
+ * - The key's policy, comprising usage flags and a specification of
338
+ * the permitted algorithm(s).
339
+ * - Information about the key itself: the key type and its size.
340
+ * - Additional implementation-defined attributes.
341
+ *
342
+ * The actual key material is not considered an attribute of a key.
343
+ * Key attributes do not contain information that is generally considered
344
+ * highly confidential.
345
+ *
346
+ * An attribute structure works like a simple data structure where each function
347
+ * `psa_set_key_xxx` sets a field and the corresponding function
348
+ * `psa_get_key_xxx` retrieves the value of the corresponding field.
349
+ * However, a future version of the library may report values that are
350
+ * equivalent to the original one, but have a different encoding. Invalid
351
+ * values may be mapped to different, also invalid values.
352
+ *
353
+ * An attribute structure may contain references to auxiliary resources,
354
+ * for example pointers to allocated memory or indirect references to
355
+ * pre-calculated values. In order to free such resources, the application
356
+ * must call psa_reset_key_attributes(). As an exception, calling
357
+ * psa_reset_key_attributes() on an attribute structure is optional if
358
+ * the structure has only been modified by the following functions
359
+ * since it was initialized or last reset with psa_reset_key_attributes():
360
+ * - psa_set_key_id()
361
+ * - psa_set_key_lifetime()
362
+ * - psa_set_key_type()
363
+ * - psa_set_key_bits()
364
+ * - psa_set_key_usage_flags()
365
+ * - psa_set_key_algorithm()
366
+ *
367
+ * Before calling any function on a key attribute structure, the application
368
+ * must initialize it by any of the following means:
369
+ * - Set the structure to all-bits-zero, for example:
370
+ * \code
371
+ * psa_key_attributes_t attributes;
372
+ * memset(&attributes, 0, sizeof(attributes));
373
+ * \endcode
374
+ * - Initialize the structure to logical zero values, for example:
375
+ * \code
376
+ * psa_key_attributes_t attributes = {0};
377
+ * \endcode
378
+ * - Initialize the structure to the initializer #PSA_KEY_ATTRIBUTES_INIT,
379
+ * for example:
380
+ * \code
381
+ * psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
382
+ * \endcode
383
+ * - Assign the result of the function psa_key_attributes_init()
384
+ * to the structure, for example:
385
+ * \code
386
+ * psa_key_attributes_t attributes;
387
+ * attributes = psa_key_attributes_init();
388
+ * \endcode
389
+ *
390
+ * A freshly initialized attribute structure contains the following
391
+ * values:
392
+ *
393
+ * - lifetime: #PSA_KEY_LIFETIME_VOLATILE.
394
+ * - key identifier: 0 (which is not a valid key identifier).
395
+ * - type: \c 0 (meaning that the type is unspecified).
396
+ * - key size: \c 0 (meaning that the size is unspecified).
397
+ * - usage flags: \c 0 (which allows no usage except exporting a public key).
398
+ * - algorithm: \c 0 (which allows no cryptographic usage, but allows
399
+ * exporting).
400
+ *
401
+ * A typical sequence to create a key is as follows:
402
+ * -# Create and initialize an attribute structure.
403
+ * -# If the key is persistent, call psa_set_key_id().
404
+ * Also call psa_set_key_lifetime() to place the key in a non-default
405
+ * location.
406
+ * -# Set the key policy with psa_set_key_usage_flags() and
407
+ * psa_set_key_algorithm().
408
+ * -# Set the key type with psa_set_key_type().
409
+ * Skip this step if copying an existing key with psa_copy_key().
410
+ * -# When generating a random key with psa_generate_key() or deriving a key
411
+ * with psa_key_derivation_output_key(), set the desired key size with
412
+ * psa_set_key_bits().
413
+ * -# Call a key creation function: psa_import_key(), psa_generate_key(),
414
+ * psa_key_derivation_output_key() or psa_copy_key(). This function reads
415
+ * the attribute structure, creates a key with these attributes, and
416
+ * outputs a key identifier to the newly created key.
417
+ * -# The attribute structure is now no longer necessary.
418
+ * You may call psa_reset_key_attributes(), although this is optional
419
+ * with the workflow presented here because the attributes currently
420
+ * defined in this specification do not require any additional resources
421
+ * beyond the structure itself.
422
+ *
423
+ * A typical sequence to query a key's attributes is as follows:
424
+ * -# Call psa_get_key_attributes().
425
+ * -# Call `psa_get_key_xxx` functions to retrieve the attribute(s) that
426
+ * you are interested in.
427
+ * -# Call psa_reset_key_attributes() to free any resources that may be
428
+ * used by the attribute structure.
429
+ *
430
+ * Once a key has been created, it is impossible to change its attributes.
431
+ */
432
+ typedef struct psa_key_attributes_s psa_key_attributes_t;
433
+
434
+
435
+ #ifndef __DOXYGEN_ONLY__
436
+ #if defined(MBEDTLS_PSA_CRYPTO_SE_C)
437
+ /* Mbed TLS defines this type in crypto_types.h because it is also
438
+ * visible to applications through an implementation-specific extension.
439
+ * For the PSA Cryptography specification, this type is only visible
440
+ * via crypto_se_driver.h. */
441
+ typedef uint64_t psa_key_slot_number_t;
442
+ #endif /* MBEDTLS_PSA_CRYPTO_SE_C */
443
+ #endif /* !__DOXYGEN_ONLY__ */
444
+
445
+ /**@}*/
446
+
447
+ /** \defgroup derivation Key derivation
448
+ * @{
449
+ */
450
+
451
+ /** \brief Encoding of the step of a key derivation.
452
+ *
453
+ * Values of this type are generally constructed by macros called
454
+ * `PSA_KEY_DERIVATION_INPUT_xxx`.
455
+ */
456
+ typedef uint16_t psa_key_derivation_step_t;
457
+
458
+ /** \brief Custom parameters for key generation or key derivation.
459
+ *
460
+ * This is a structure type with at least the following field:
461
+ *
462
+ * - \c flags: an unsigned integer type. 0 for the default production parameters.
463
+ *
464
+ * Functions that take such a structure as input also take an associated
465
+ * input buffer \c custom_data of length \c custom_data_length.
466
+ *
467
+ * The interpretation of this structure and the associated \c custom_data
468
+ * parameter depend on the type of the created key.
469
+ *
470
+ * - #PSA_KEY_TYPE_RSA_KEY_PAIR:
471
+ * - \c flags: must be 0.
472
+ * - \c custom_data: the public exponent, in little-endian order.
473
+ * This must be an odd integer and must not be 1.
474
+ * Implementations must support 65537, should support 3 and may
475
+ * support other values.
476
+ * When not using a driver, Mbed TLS supports values up to \c INT_MAX.
477
+ * If this is empty, the default value 65537 is used.
478
+ * - Other key types: reserved for future use. \c flags must be 0.
479
+ */
480
+ typedef struct psa_custom_key_parameters_s psa_custom_key_parameters_t;
481
+
482
+ /** \brief Custom parameters for key generation or key derivation.
483
+ *
484
+ * This is a structure type with at least the following fields:
485
+ *
486
+ * - \c flags: an unsigned integer type. 0 for the default production parameters.
487
+ * - \c data: a flexible array of bytes.
488
+ *
489
+ * The interpretation of this structure depend on the type of the
490
+ * created key.
491
+ *
492
+ * - #PSA_KEY_TYPE_RSA_KEY_PAIR:
493
+ * - \c flags: must be 0.
494
+ * - \c data: the public exponent, in little-endian order.
495
+ * This must be an odd integer and must not be 1.
496
+ * Implementations must support 65537, should support 3 and may
497
+ * support other values.
498
+ * When not using a driver, Mbed TLS supports values up to \c INT_MAX.
499
+ * If this is empty or if the custom production parameters are omitted
500
+ * altogether, the default value 65537 is used.
501
+ * - Other key types: reserved for future use. \c flags must be 0.
502
+ *
503
+ */
504
+ typedef struct psa_key_production_parameters_s psa_key_production_parameters_t;
505
+
506
+ /**@}*/
507
+
508
+ #endif /* PSA_CRYPTO_TYPES_H */