@scriptc/runtime 0.0.0 → 0.0.1

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 +5036 -0
  43. package/src/scr_stream.c +2877 -0
  44. package/src/scr_string.c +1176 -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,76 @@
1
+ /**
2
+ * \file block_cipher.h
3
+ *
4
+ * \brief Internal abstraction layer.
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_BLOCK_CIPHER_H
11
+ #define MBEDTLS_BLOCK_CIPHER_H
12
+
13
+ #include "mbedtls/private_access.h"
14
+
15
+ #include "mbedtls/build_info.h"
16
+
17
+ #if defined(MBEDTLS_AES_C)
18
+ #include "mbedtls/aes.h"
19
+ #endif
20
+ #if defined(MBEDTLS_ARIA_C)
21
+ #include "mbedtls/aria.h"
22
+ #endif
23
+ #if defined(MBEDTLS_CAMELLIA_C)
24
+ #include "mbedtls/camellia.h"
25
+ #endif
26
+
27
+ #if defined(MBEDTLS_BLOCK_CIPHER_SOME_PSA)
28
+ #include "psa/crypto_types.h"
29
+ #endif
30
+
31
+ #ifdef __cplusplus
32
+ extern "C" {
33
+ #endif
34
+
35
+ typedef enum {
36
+ MBEDTLS_BLOCK_CIPHER_ID_NONE = 0, /**< Unset. */
37
+ MBEDTLS_BLOCK_CIPHER_ID_AES, /**< The AES cipher. */
38
+ MBEDTLS_BLOCK_CIPHER_ID_CAMELLIA, /**< The Camellia cipher. */
39
+ MBEDTLS_BLOCK_CIPHER_ID_ARIA, /**< The Aria cipher. */
40
+ } mbedtls_block_cipher_id_t;
41
+
42
+ /**
43
+ * Used internally to indicate whether a context uses legacy or PSA.
44
+ *
45
+ * Internal use only.
46
+ */
47
+ typedef enum {
48
+ MBEDTLS_BLOCK_CIPHER_ENGINE_LEGACY = 0,
49
+ MBEDTLS_BLOCK_CIPHER_ENGINE_PSA,
50
+ } mbedtls_block_cipher_engine_t;
51
+
52
+ typedef struct {
53
+ mbedtls_block_cipher_id_t MBEDTLS_PRIVATE(id);
54
+ #if defined(MBEDTLS_BLOCK_CIPHER_SOME_PSA)
55
+ mbedtls_block_cipher_engine_t MBEDTLS_PRIVATE(engine);
56
+ mbedtls_svc_key_id_t MBEDTLS_PRIVATE(psa_key_id);
57
+ #endif
58
+ union {
59
+ unsigned dummy; /* Make the union non-empty even with no supported algorithms. */
60
+ #if defined(MBEDTLS_AES_C)
61
+ mbedtls_aes_context MBEDTLS_PRIVATE(aes);
62
+ #endif
63
+ #if defined(MBEDTLS_ARIA_C)
64
+ mbedtls_aria_context MBEDTLS_PRIVATE(aria);
65
+ #endif
66
+ #if defined(MBEDTLS_CAMELLIA_C)
67
+ mbedtls_camellia_context MBEDTLS_PRIVATE(camellia);
68
+ #endif
69
+ } MBEDTLS_PRIVATE(ctx);
70
+ } mbedtls_block_cipher_context_t;
71
+
72
+ #ifdef __cplusplus
73
+ }
74
+ #endif
75
+
76
+ #endif /* MBEDTLS_BLOCK_CIPHER_H */
@@ -0,0 +1,194 @@
1
+ /**
2
+ * \file mbedtls/build_info.h
3
+ *
4
+ * \brief Build-time configuration info
5
+ *
6
+ * Include this file if you need to depend on the
7
+ * configuration options defined in mbedtls_config.h or MBEDTLS_CONFIG_FILE
8
+ */
9
+ /*
10
+ * Copyright The Mbed TLS Contributors
11
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
12
+ */
13
+
14
+ #ifndef MBEDTLS_BUILD_INFO_H
15
+ #define MBEDTLS_BUILD_INFO_H
16
+
17
+ /*
18
+ * This set of compile-time defines can be used to determine the version number
19
+ * of the Mbed TLS library used. Run-time variables for the same can be found in
20
+ * version.h
21
+ */
22
+
23
+ /**
24
+ * The version number x.y.z is split into three parts.
25
+ * Major, Minor, Patchlevel
26
+ */
27
+ #define MBEDTLS_VERSION_MAJOR 3
28
+ #define MBEDTLS_VERSION_MINOR 6
29
+ #define MBEDTLS_VERSION_PATCH 7
30
+
31
+ /**
32
+ * The single version number has the following structure:
33
+ * MMNNPP00
34
+ * Major version | Minor version | Patch version
35
+ */
36
+ #define MBEDTLS_VERSION_NUMBER 0x03060700
37
+ #define MBEDTLS_VERSION_STRING "3.6.7"
38
+ #define MBEDTLS_VERSION_STRING_FULL "Mbed TLS 3.6.7"
39
+
40
+ /* Macros for build-time platform detection */
41
+
42
+ #if !defined(MBEDTLS_ARCH_IS_ARM64) && \
43
+ (defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC))
44
+ #define MBEDTLS_ARCH_IS_ARM64
45
+ #endif
46
+
47
+ #if !defined(MBEDTLS_ARCH_IS_ARM32) && \
48
+ (defined(__arm__) || defined(_M_ARM) || \
49
+ defined(_M_ARMT) || defined(__thumb__) || defined(__thumb2__))
50
+ #define MBEDTLS_ARCH_IS_ARM32
51
+ #endif
52
+
53
+ #if !defined(MBEDTLS_ARCH_IS_X64) && \
54
+ (defined(__amd64__) || defined(__x86_64__) || \
55
+ ((defined(_M_X64) || defined(_M_AMD64)) && !defined(_M_ARM64EC)))
56
+ #define MBEDTLS_ARCH_IS_X64
57
+ #endif
58
+
59
+ #if !defined(MBEDTLS_ARCH_IS_X86) && \
60
+ (defined(__i386__) || defined(_X86_) || \
61
+ (defined(_M_IX86) && !defined(_M_I86)))
62
+ #define MBEDTLS_ARCH_IS_X86
63
+ #endif
64
+
65
+ #if !defined(MBEDTLS_PLATFORM_IS_WINDOWS_ON_ARM64) && \
66
+ (defined(_M_ARM64) || defined(_M_ARM64EC))
67
+ #define MBEDTLS_PLATFORM_IS_WINDOWS_ON_ARM64
68
+ #endif
69
+
70
+ /* This is defined if the architecture is Armv8-A, or higher */
71
+ #if !defined(MBEDTLS_ARCH_IS_ARMV8_A)
72
+ #if defined(__ARM_ARCH) && defined(__ARM_ARCH_PROFILE)
73
+ #if (__ARM_ARCH >= 8) && (__ARM_ARCH_PROFILE == 'A')
74
+ /* GCC, clang, armclang and IAR */
75
+ #define MBEDTLS_ARCH_IS_ARMV8_A
76
+ #endif
77
+ #elif defined(__ARM_ARCH_8A)
78
+ /* Alternative defined by clang */
79
+ #define MBEDTLS_ARCH_IS_ARMV8_A
80
+ #elif defined(_M_ARM64) || defined(_M_ARM64EC)
81
+ /* MSVC ARM64 is at least Armv8.0-A */
82
+ #define MBEDTLS_ARCH_IS_ARMV8_A
83
+ #endif
84
+ #endif
85
+
86
+ #if defined(__GNUC__) && !defined(__ARMCC_VERSION) && !defined(__clang__) \
87
+ && !defined(__llvm__) && !defined(__INTEL_COMPILER)
88
+ /* Defined if the compiler really is gcc and not clang, etc */
89
+ #define MBEDTLS_COMPILER_IS_GCC
90
+ #define MBEDTLS_GCC_VERSION \
91
+ (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
92
+ #endif
93
+
94
+ #if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
95
+ #define _CRT_SECURE_NO_DEPRECATE 1
96
+ #endif
97
+
98
+ /* Define `inline` on some non-C99-compliant compilers. */
99
+ #if (defined(__ARMCC_VERSION) || defined(_MSC_VER)) && \
100
+ !defined(inline) && !defined(__cplusplus)
101
+ #define inline __inline
102
+ #endif
103
+
104
+ #if defined(MBEDTLS_CONFIG_FILES_READ)
105
+ #error "Something went wrong: MBEDTLS_CONFIG_FILES_READ defined before reading the config files!"
106
+ #endif
107
+ #if defined(MBEDTLS_CONFIG_IS_FINALIZED)
108
+ #error "Something went wrong: MBEDTLS_CONFIG_IS_FINALIZED defined before reading the config files!"
109
+ #endif
110
+
111
+ /* X.509, TLS and non-PSA crypto configuration */
112
+ #if !defined(MBEDTLS_CONFIG_FILE)
113
+ #include "mbedtls/mbedtls_config.h"
114
+ #else
115
+ #include MBEDTLS_CONFIG_FILE
116
+ #endif
117
+
118
+ #if defined(MBEDTLS_CONFIG_VERSION) && ( \
119
+ MBEDTLS_CONFIG_VERSION < 0x03000000 || \
120
+ MBEDTLS_CONFIG_VERSION > MBEDTLS_VERSION_NUMBER)
121
+ #error "Invalid config version, defined value of MBEDTLS_CONFIG_VERSION is unsupported"
122
+ #endif
123
+
124
+ /* Target and application specific configurations
125
+ *
126
+ * Allow user to override any previous default.
127
+ *
128
+ */
129
+ #if defined(MBEDTLS_USER_CONFIG_FILE)
130
+ #include MBEDTLS_USER_CONFIG_FILE
131
+ #endif
132
+
133
+ /* PSA crypto configuration */
134
+ #if defined(MBEDTLS_PSA_CRYPTO_CONFIG)
135
+ #if defined(MBEDTLS_PSA_CRYPTO_CONFIG_FILE)
136
+ #include MBEDTLS_PSA_CRYPTO_CONFIG_FILE
137
+ #else
138
+ #include "psa/crypto_config.h"
139
+ #endif
140
+ #if defined(MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE)
141
+ #include MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE
142
+ #endif
143
+ #endif /* defined(MBEDTLS_PSA_CRYPTO_CONFIG) */
144
+
145
+ /* Indicate that all configuration files have been read.
146
+ * It is now time to adjust the configuration (follow through on dependencies,
147
+ * make PSA and legacy crypto consistent, etc.).
148
+ */
149
+ #define MBEDTLS_CONFIG_FILES_READ
150
+
151
+ /* Auto-enable MBEDTLS_CTR_DRBG_USE_128_BIT_KEY if
152
+ * MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH and MBEDTLS_CTR_DRBG_C defined
153
+ * to ensure a 128-bit key size in CTR_DRBG.
154
+ */
155
+ #if defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH) && defined(MBEDTLS_CTR_DRBG_C)
156
+ #define MBEDTLS_CTR_DRBG_USE_128_BIT_KEY
157
+ #endif
158
+
159
+ /* Auto-enable MBEDTLS_MD_C if needed by a module that didn't require it
160
+ * in a previous release, to ensure backwards compatibility.
161
+ */
162
+ #if defined(MBEDTLS_PKCS5_C)
163
+ #define MBEDTLS_MD_C
164
+ #endif
165
+
166
+ /* PSA crypto specific configuration options
167
+ * - If config_psa.h reads a configuration option in preprocessor directive,
168
+ * this symbol should be set before its inclusion. (e.g. MBEDTLS_MD_C)
169
+ * - If config_psa.h writes a configuration option in conditional directive,
170
+ * this symbol should be consulted after its inclusion.
171
+ * (e.g. MBEDTLS_MD_LIGHT)
172
+ */
173
+ #if defined(MBEDTLS_PSA_CRYPTO_CONFIG) /* PSA_WANT_xxx influences MBEDTLS_xxx */ || \
174
+ defined(MBEDTLS_PSA_CRYPTO_C) /* MBEDTLS_xxx influences PSA_WANT_xxx */ || \
175
+ defined(MBEDTLS_PSA_CRYPTO_CLIENT) /* The same as the previous, but with separation only */
176
+ #include "mbedtls/config_psa.h"
177
+ #endif
178
+
179
+ #include "mbedtls/config_adjust_legacy_crypto.h"
180
+
181
+ #include "mbedtls/config_adjust_x509.h"
182
+
183
+ #include "mbedtls/config_adjust_ssl.h"
184
+
185
+ /* Indicate that all configuration symbols are set,
186
+ * even the ones that are calculated programmatically.
187
+ * It is now safe to query the configuration (to check it, to size buffers,
188
+ * etc.).
189
+ */
190
+ #define MBEDTLS_CONFIG_IS_FINALIZED
191
+
192
+ #include "mbedtls/check_config.h"
193
+
194
+ #endif /* MBEDTLS_BUILD_INFO_H */
@@ -0,0 +1,305 @@
1
+ /**
2
+ * \file camellia.h
3
+ *
4
+ * \brief Camellia block cipher
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_CAMELLIA_H
11
+ #define MBEDTLS_CAMELLIA_H
12
+ #include "mbedtls/private_access.h"
13
+
14
+ #include "mbedtls/build_info.h"
15
+
16
+ #include <stddef.h>
17
+ #include <stdint.h>
18
+
19
+ #include "mbedtls/platform_util.h"
20
+
21
+ #define MBEDTLS_CAMELLIA_ENCRYPT 1
22
+ #define MBEDTLS_CAMELLIA_DECRYPT 0
23
+
24
+ /** Bad input data. */
25
+ #define MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA -0x0024
26
+
27
+ /** Invalid data input length. */
28
+ #define MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH -0x0026
29
+
30
+ #ifdef __cplusplus
31
+ extern "C" {
32
+ #endif
33
+
34
+ #if !defined(MBEDTLS_CAMELLIA_ALT)
35
+ // Regular implementation
36
+ //
37
+
38
+ /**
39
+ * \brief CAMELLIA context structure
40
+ */
41
+ typedef struct mbedtls_camellia_context {
42
+ int MBEDTLS_PRIVATE(nr); /*!< number of rounds */
43
+ uint32_t MBEDTLS_PRIVATE(rk)[68]; /*!< CAMELLIA round keys */
44
+ }
45
+ mbedtls_camellia_context;
46
+
47
+ #else /* MBEDTLS_CAMELLIA_ALT */
48
+ #include "camellia_alt.h"
49
+ #endif /* MBEDTLS_CAMELLIA_ALT */
50
+
51
+ /**
52
+ * \brief Initialize a CAMELLIA context.
53
+ *
54
+ * \param ctx The CAMELLIA context to be initialized.
55
+ * This must not be \c NULL.
56
+ */
57
+ void mbedtls_camellia_init(mbedtls_camellia_context *ctx);
58
+
59
+ /**
60
+ * \brief Clear a CAMELLIA context.
61
+ *
62
+ * \param ctx The CAMELLIA context to be cleared. This may be \c NULL,
63
+ * in which case this function returns immediately. If it is not
64
+ * \c NULL, it must be initialized.
65
+ */
66
+ void mbedtls_camellia_free(mbedtls_camellia_context *ctx);
67
+
68
+ /**
69
+ * \brief Perform a CAMELLIA key schedule operation for encryption.
70
+ *
71
+ * \param ctx The CAMELLIA context to use. This must be initialized.
72
+ * \param key The encryption key to use. This must be a readable buffer
73
+ * of size \p keybits Bits.
74
+ * \param keybits The length of \p key in Bits. This must be either \c 128,
75
+ * \c 192 or \c 256.
76
+ *
77
+ * \return \c 0 if successful.
78
+ * \return A negative error code on failure.
79
+ */
80
+ int mbedtls_camellia_setkey_enc(mbedtls_camellia_context *ctx,
81
+ const unsigned char *key,
82
+ unsigned int keybits);
83
+
84
+ #if !defined(MBEDTLS_BLOCK_CIPHER_NO_DECRYPT)
85
+ /**
86
+ * \brief Perform a CAMELLIA key schedule operation for decryption.
87
+ *
88
+ * \param ctx The CAMELLIA context to use. This must be initialized.
89
+ * \param key The decryption key. This must be a readable buffer
90
+ * of size \p keybits Bits.
91
+ * \param keybits The length of \p key in Bits. This must be either \c 128,
92
+ * \c 192 or \c 256.
93
+ *
94
+ * \return \c 0 if successful.
95
+ * \return A negative error code on failure.
96
+ */
97
+ int mbedtls_camellia_setkey_dec(mbedtls_camellia_context *ctx,
98
+ const unsigned char *key,
99
+ unsigned int keybits);
100
+ #endif /* !MBEDTLS_BLOCK_CIPHER_NO_DECRYPT */
101
+
102
+ /**
103
+ * \brief Perform a CAMELLIA-ECB block encryption/decryption operation.
104
+ *
105
+ * \param ctx The CAMELLIA context to use. This must be initialized
106
+ * and bound to a key.
107
+ * \param mode The mode of operation. This must be either
108
+ * #MBEDTLS_CAMELLIA_ENCRYPT or #MBEDTLS_CAMELLIA_DECRYPT.
109
+ * \param input The input block. This must be a readable buffer
110
+ * of size \c 16 Bytes.
111
+ * \param output The output block. This must be a writable buffer
112
+ * of size \c 16 Bytes.
113
+ *
114
+ * \return \c 0 if successful.
115
+ * \return A negative error code on failure.
116
+ */
117
+ int mbedtls_camellia_crypt_ecb(mbedtls_camellia_context *ctx,
118
+ int mode,
119
+ const unsigned char input[16],
120
+ unsigned char output[16]);
121
+
122
+ #if defined(MBEDTLS_CIPHER_MODE_CBC)
123
+ /**
124
+ * \brief Perform a CAMELLIA-CBC buffer encryption/decryption operation.
125
+ *
126
+ * \note Upon exit, the content of the IV is updated so that you can
127
+ * call the function same function again on the following
128
+ * block(s) of data and get the same result as if it was
129
+ * encrypted in one call. This allows a "streaming" usage.
130
+ * If on the other hand you need to retain the contents of the
131
+ * IV, you should either save it manually or use the cipher
132
+ * module instead.
133
+ *
134
+ * \param ctx The CAMELLIA context to use. This must be initialized
135
+ * and bound to a key.
136
+ * \param mode The mode of operation. This must be either
137
+ * #MBEDTLS_CAMELLIA_ENCRYPT or #MBEDTLS_CAMELLIA_DECRYPT.
138
+ * \param length The length in Bytes of the input data \p input.
139
+ * This must be a multiple of \c 16 Bytes.
140
+ * \param iv The initialization vector. This must be a read/write buffer
141
+ * of length \c 16 Bytes. It is updated to allow streaming
142
+ * use as explained above.
143
+ * \param input The buffer holding the input data. This must point to a
144
+ * readable buffer of length \p length Bytes.
145
+ * \param output The buffer holding the output data. This must point to a
146
+ * writable buffer of length \p length Bytes.
147
+ *
148
+ * \return \c 0 if successful.
149
+ * \return A negative error code on failure.
150
+ */
151
+ int mbedtls_camellia_crypt_cbc(mbedtls_camellia_context *ctx,
152
+ int mode,
153
+ size_t length,
154
+ unsigned char iv[16],
155
+ const unsigned char *input,
156
+ unsigned char *output);
157
+ #endif /* MBEDTLS_CIPHER_MODE_CBC */
158
+
159
+ #if defined(MBEDTLS_CIPHER_MODE_CFB)
160
+ /**
161
+ * \brief Perform a CAMELLIA-CFB128 buffer encryption/decryption
162
+ * operation.
163
+ *
164
+ * \note Due to the nature of CFB mode, you should use the same
165
+ * key for both encryption and decryption. In particular, calls
166
+ * to this function should be preceded by a key-schedule via
167
+ * mbedtls_camellia_setkey_enc() regardless of whether \p mode
168
+ * is #MBEDTLS_CAMELLIA_ENCRYPT or #MBEDTLS_CAMELLIA_DECRYPT.
169
+ *
170
+ * \note Upon exit, the content of the IV is updated so that you can
171
+ * call the function same function again on the following
172
+ * block(s) of data and get the same result as if it was
173
+ * encrypted in one call. This allows a "streaming" usage.
174
+ * If on the other hand you need to retain the contents of the
175
+ * IV, you should either save it manually or use the cipher
176
+ * module instead.
177
+ *
178
+ * \param ctx The CAMELLIA context to use. This must be initialized
179
+ * and bound to a key.
180
+ * \param mode The mode of operation. This must be either
181
+ * #MBEDTLS_CAMELLIA_ENCRYPT or #MBEDTLS_CAMELLIA_DECRYPT.
182
+ * \param length The length of the input data \p input. Any value is allowed.
183
+ * \param iv_off The current offset in the IV. This must be smaller
184
+ * than \c 16 Bytes. It is updated after this call to allow
185
+ * the aforementioned streaming usage.
186
+ * \param iv The initialization vector. This must be a read/write buffer
187
+ * of length \c 16 Bytes. It is updated after this call to
188
+ * allow the aforementioned streaming usage.
189
+ * \param input The buffer holding the input data. This must be a readable
190
+ * buffer of size \p length Bytes.
191
+ * \param output The buffer to hold the output data. This must be a writable
192
+ * buffer of length \p length Bytes.
193
+ *
194
+ * \return \c 0 if successful.
195
+ * \return A negative error code on failure.
196
+ */
197
+ int mbedtls_camellia_crypt_cfb128(mbedtls_camellia_context *ctx,
198
+ int mode,
199
+ size_t length,
200
+ size_t *iv_off,
201
+ unsigned char iv[16],
202
+ const unsigned char *input,
203
+ unsigned char *output);
204
+ #endif /* MBEDTLS_CIPHER_MODE_CFB */
205
+
206
+ #if defined(MBEDTLS_CIPHER_MODE_CTR)
207
+ /**
208
+ * \brief Perform a CAMELLIA-CTR buffer encryption/decryption operation.
209
+ *
210
+ * *note Due to the nature of CTR mode, you should use the same
211
+ * key for both encryption and decryption. In particular, calls
212
+ * to this function should be preceded by a key-schedule via
213
+ * mbedtls_camellia_setkey_enc() regardless of whether the mode
214
+ * is #MBEDTLS_CAMELLIA_ENCRYPT or #MBEDTLS_CAMELLIA_DECRYPT.
215
+ *
216
+ * \warning You must never reuse a nonce value with the same key. Doing so
217
+ * would void the encryption for the two messages encrypted with
218
+ * the same nonce and key.
219
+ *
220
+ * There are two common strategies for managing nonces with CTR:
221
+ *
222
+ * 1. You can handle everything as a single message processed over
223
+ * successive calls to this function. In that case, you want to
224
+ * set \p nonce_counter and \p nc_off to 0 for the first call, and
225
+ * then preserve the values of \p nonce_counter, \p nc_off and \p
226
+ * stream_block across calls to this function as they will be
227
+ * updated by this function.
228
+ *
229
+ * With this strategy, you must not encrypt more than 2**128
230
+ * blocks of data with the same key.
231
+ *
232
+ * 2. You can encrypt separate messages by dividing the \p
233
+ * nonce_counter buffer in two areas: the first one used for a
234
+ * per-message nonce, handled by yourself, and the second one
235
+ * updated by this function internally.
236
+ *
237
+ * For example, you might reserve the first \c 12 Bytes for the
238
+ * per-message nonce, and the last \c 4 Bytes for internal use.
239
+ * In that case, before calling this function on a new message you
240
+ * need to set the first \c 12 Bytes of \p nonce_counter to your
241
+ * chosen nonce value, the last four to \c 0, and \p nc_off to \c 0
242
+ * (which will cause \p stream_block to be ignored). That way, you
243
+ * can encrypt at most \c 2**96 messages of up to \c 2**32 blocks
244
+ * each with the same key.
245
+ *
246
+ * The per-message nonce (or information sufficient to reconstruct
247
+ * it) needs to be communicated with the ciphertext and must be
248
+ * unique. The recommended way to ensure uniqueness is to use a
249
+ * message counter. An alternative is to generate random nonces,
250
+ * but this limits the number of messages that can be securely
251
+ * encrypted: for example, with 96-bit random nonces, you should
252
+ * not encrypt more than 2**32 messages with the same key.
253
+ *
254
+ * Note that for both strategies, sizes are measured in blocks and
255
+ * that a CAMELLIA block is \c 16 Bytes.
256
+ *
257
+ * \warning Upon return, \p stream_block contains sensitive data. Its
258
+ * content must not be written to insecure storage and should be
259
+ * securely discarded as soon as it's no longer needed.
260
+ *
261
+ * \param ctx The CAMELLIA context to use. This must be initialized
262
+ * and bound to a key.
263
+ * \param length The length of the input data \p input in Bytes.
264
+ * Any value is allowed.
265
+ * \param nc_off The offset in the current \p stream_block (for resuming
266
+ * within current cipher stream). The offset pointer to
267
+ * should be \c 0 at the start of a stream. It is updated
268
+ * at the end of this call.
269
+ * \param nonce_counter The 128-bit nonce and counter. This must be a read/write
270
+ * buffer of length \c 16 Bytes.
271
+ * \param stream_block The saved stream-block for resuming. This must be a
272
+ * read/write buffer of length \c 16 Bytes.
273
+ * \param input The input data stream. This must be a readable buffer of
274
+ * size \p length Bytes.
275
+ * \param output The output data stream. This must be a writable buffer
276
+ * of size \p length Bytes.
277
+ *
278
+ * \return \c 0 if successful.
279
+ * \return A negative error code on failure.
280
+ */
281
+ int mbedtls_camellia_crypt_ctr(mbedtls_camellia_context *ctx,
282
+ size_t length,
283
+ size_t *nc_off,
284
+ unsigned char nonce_counter[16],
285
+ unsigned char stream_block[16],
286
+ const unsigned char *input,
287
+ unsigned char *output);
288
+ #endif /* MBEDTLS_CIPHER_MODE_CTR */
289
+
290
+ #if defined(MBEDTLS_SELF_TEST)
291
+
292
+ /**
293
+ * \brief Checkup routine
294
+ *
295
+ * \return 0 if successful, or 1 if the test failed
296
+ */
297
+ int mbedtls_camellia_self_test(int verbose);
298
+
299
+ #endif /* MBEDTLS_SELF_TEST */
300
+
301
+ #ifdef __cplusplus
302
+ }
303
+ #endif
304
+
305
+ #endif /* camellia.h */