@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,526 @@
1
+ /**
2
+ * \file ccm.h
3
+ *
4
+ * \brief This file provides an API for the CCM authenticated encryption
5
+ * mode for block ciphers.
6
+ *
7
+ * CCM combines Counter mode encryption with CBC-MAC authentication
8
+ * for 128-bit block ciphers.
9
+ *
10
+ * Input to CCM includes the following elements:
11
+ * <ul><li>Payload - data that is both authenticated and encrypted.</li>
12
+ * <li>Associated data (Adata) - data that is authenticated but not
13
+ * encrypted, For example, a header.</li>
14
+ * <li>Nonce - A unique value that is assigned to the payload and the
15
+ * associated data.</li></ul>
16
+ *
17
+ * Definition of CCM:
18
+ * http://csrc.nist.gov/publications/nistpubs/800-38C/SP800-38C_updated-July20_2007.pdf
19
+ * RFC 3610 "Counter with CBC-MAC (CCM)"
20
+ *
21
+ * Related:
22
+ * RFC 5116 "An Interface and Algorithms for Authenticated Encryption"
23
+ *
24
+ * Definition of CCM*:
25
+ * IEEE 802.15.4 - IEEE Standard for Local and metropolitan area networks
26
+ * Integer representation is fixed most-significant-octet-first order and
27
+ * the representation of octets is most-significant-bit-first order. This is
28
+ * consistent with RFC 3610.
29
+ */
30
+ /*
31
+ * Copyright The Mbed TLS Contributors
32
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
33
+ */
34
+
35
+ #ifndef MBEDTLS_CCM_H
36
+ #define MBEDTLS_CCM_H
37
+ #include "mbedtls/private_access.h"
38
+
39
+ #include "mbedtls/build_info.h"
40
+
41
+ #include "mbedtls/cipher.h"
42
+
43
+ #if defined(MBEDTLS_BLOCK_CIPHER_C)
44
+ #include "mbedtls/block_cipher.h"
45
+ #endif
46
+
47
+ #define MBEDTLS_CCM_DECRYPT 0
48
+ #define MBEDTLS_CCM_ENCRYPT 1
49
+ #define MBEDTLS_CCM_STAR_DECRYPT 2
50
+ #define MBEDTLS_CCM_STAR_ENCRYPT 3
51
+
52
+ /** Bad input parameters to the function. */
53
+ #define MBEDTLS_ERR_CCM_BAD_INPUT -0x000D
54
+ /** Authenticated decryption failed. */
55
+ #define MBEDTLS_ERR_CCM_AUTH_FAILED -0x000F
56
+
57
+ #ifdef __cplusplus
58
+ extern "C" {
59
+ #endif
60
+
61
+ #if !defined(MBEDTLS_CCM_ALT)
62
+ // Regular implementation
63
+ //
64
+
65
+ /**
66
+ * \brief The CCM context-type definition. The CCM context is passed
67
+ * to the APIs called.
68
+ */
69
+ typedef struct mbedtls_ccm_context {
70
+ unsigned char MBEDTLS_PRIVATE(y)[16]; /*!< The Y working buffer */
71
+ unsigned char MBEDTLS_PRIVATE(ctr)[16]; /*!< The counter buffer */
72
+ size_t MBEDTLS_PRIVATE(plaintext_len); /*!< Total plaintext length */
73
+ size_t MBEDTLS_PRIVATE(add_len); /*!< Total authentication data length */
74
+ size_t MBEDTLS_PRIVATE(tag_len); /*!< Total tag length */
75
+ size_t MBEDTLS_PRIVATE(processed); /*!< Track how many bytes of input data
76
+ were processed (chunked input).
77
+ Used independently for both auth data
78
+ and plaintext/ciphertext.
79
+ This variable is set to zero after
80
+ auth data input is finished. */
81
+ unsigned int MBEDTLS_PRIVATE(q); /*!< The Q working value */
82
+ unsigned int MBEDTLS_PRIVATE(mode); /*!< The operation to perform:
83
+ #MBEDTLS_CCM_ENCRYPT or
84
+ #MBEDTLS_CCM_DECRYPT or
85
+ #MBEDTLS_CCM_STAR_ENCRYPT or
86
+ #MBEDTLS_CCM_STAR_DECRYPT. */
87
+ #if defined(MBEDTLS_BLOCK_CIPHER_C)
88
+ mbedtls_block_cipher_context_t MBEDTLS_PRIVATE(block_cipher_ctx); /*!< The cipher context used. */
89
+ #else
90
+ mbedtls_cipher_context_t MBEDTLS_PRIVATE(cipher_ctx); /*!< The cipher context used. */
91
+ #endif
92
+ int MBEDTLS_PRIVATE(state); /*!< Working value holding context's
93
+ state. Used for chunked data input */
94
+ }
95
+ mbedtls_ccm_context;
96
+
97
+ #else /* MBEDTLS_CCM_ALT */
98
+ #include "ccm_alt.h"
99
+ #endif /* MBEDTLS_CCM_ALT */
100
+
101
+ /**
102
+ * \brief This function initializes the specified CCM context,
103
+ * to make references valid, and prepare the context
104
+ * for mbedtls_ccm_setkey() or mbedtls_ccm_free().
105
+ *
106
+ * \param ctx The CCM context to initialize. This must not be \c NULL.
107
+ */
108
+ void mbedtls_ccm_init(mbedtls_ccm_context *ctx);
109
+
110
+ /**
111
+ * \brief This function initializes the CCM context set in the
112
+ * \p ctx parameter and sets the encryption key.
113
+ *
114
+ * \param ctx The CCM context to initialize. This must be an initialized
115
+ * context.
116
+ * \param cipher The 128-bit block cipher to use.
117
+ * \param key The encryption key. This must not be \c NULL.
118
+ * \param keybits The key size in bits. This must be acceptable by the cipher.
119
+ *
120
+ * \return \c 0 on success.
121
+ * \return A CCM or cipher-specific error code on failure.
122
+ */
123
+ int mbedtls_ccm_setkey(mbedtls_ccm_context *ctx,
124
+ mbedtls_cipher_id_t cipher,
125
+ const unsigned char *key,
126
+ unsigned int keybits);
127
+
128
+ /**
129
+ * \brief This function releases and clears the specified CCM context
130
+ * and underlying cipher sub-context.
131
+ *
132
+ * \param ctx The CCM context to clear. If this is \c NULL, the function
133
+ * has no effect. Otherwise, this must be initialized.
134
+ */
135
+ void mbedtls_ccm_free(mbedtls_ccm_context *ctx);
136
+
137
+ /**
138
+ * \brief This function encrypts a buffer using CCM.
139
+ *
140
+ * \note The tag is written to a separate buffer. To concatenate
141
+ * the \p tag with the \p output, as done in <em>RFC-3610:
142
+ * Counter with CBC-MAC (CCM)</em>, use
143
+ * \p tag = \p output + \p length, and make sure that the
144
+ * output buffer is at least \p length + \p tag_len wide.
145
+ *
146
+ * \param ctx The CCM context to use for encryption. This must be
147
+ * initialized and bound to a key.
148
+ * \param length The length of the input data in Bytes.
149
+ * \param iv The initialization vector (nonce). This must be a readable
150
+ * buffer of at least \p iv_len Bytes.
151
+ * \param iv_len The length of the nonce in Bytes: 7, 8, 9, 10, 11, 12,
152
+ * or 13. The length L of the message length field is
153
+ * 15 - \p iv_len.
154
+ * \param ad The additional data field. If \p ad_len is greater than
155
+ * zero, \p ad must be a readable buffer of at least that
156
+ * length.
157
+ * \param ad_len The length of additional data in Bytes.
158
+ * This must be less than `2^16 - 2^8`.
159
+ * \param input The buffer holding the input data. If \p length is greater
160
+ * than zero, \p input must be a readable buffer of at least
161
+ * that length.
162
+ * \param output The buffer holding the output data. If \p length is greater
163
+ * than zero, \p output must be a writable buffer of at least
164
+ * that length.
165
+ * \param tag The buffer holding the authentication field. This must be a
166
+ * writable buffer of at least \p tag_len Bytes.
167
+ * \param tag_len The length of the authentication field to generate in Bytes:
168
+ * 4, 6, 8, 10, 12, 14 or 16.
169
+ *
170
+ * \return \c 0 on success.
171
+ * \return A CCM or cipher-specific error code on failure.
172
+ */
173
+ int mbedtls_ccm_encrypt_and_tag(mbedtls_ccm_context *ctx, size_t length,
174
+ const unsigned char *iv, size_t iv_len,
175
+ const unsigned char *ad, size_t ad_len,
176
+ const unsigned char *input, unsigned char *output,
177
+ unsigned char *tag, size_t tag_len);
178
+
179
+ /**
180
+ * \brief This function encrypts a buffer using CCM*.
181
+ *
182
+ * \note The tag is written to a separate buffer. To concatenate
183
+ * the \p tag with the \p output, as done in <em>RFC-3610:
184
+ * Counter with CBC-MAC (CCM)</em>, use
185
+ * \p tag = \p output + \p length, and make sure that the
186
+ * output buffer is at least \p length + \p tag_len wide.
187
+ *
188
+ * \note When using this function in a variable tag length context,
189
+ * the tag length has to be encoded into the \p iv passed to
190
+ * this function.
191
+ *
192
+ * \param ctx The CCM context to use for encryption. This must be
193
+ * initialized and bound to a key.
194
+ * \param length The length of the input data in Bytes.
195
+ * For tag length = 0, input length is ignored.
196
+ * \param iv The initialization vector (nonce). This must be a readable
197
+ * buffer of at least \p iv_len Bytes.
198
+ * \param iv_len The length of the nonce in Bytes: 7, 8, 9, 10, 11, 12,
199
+ * or 13. The length L of the message length field is
200
+ * 15 - \p iv_len.
201
+ * \param ad The additional data field. This must be a readable buffer of
202
+ * at least \p ad_len Bytes.
203
+ * \param ad_len The length of additional data in Bytes.
204
+ * This must be less than 2^16 - 2^8.
205
+ * \param input The buffer holding the input data. If \p length is greater
206
+ * than zero, \p input must be a readable buffer of at least
207
+ * that length.
208
+ * \param output The buffer holding the output data. If \p length is greater
209
+ * than zero, \p output must be a writable buffer of at least
210
+ * that length.
211
+ * \param tag The buffer holding the authentication field. This must be a
212
+ * writable buffer of at least \p tag_len Bytes.
213
+ * \param tag_len The length of the authentication field to generate in Bytes:
214
+ * 0, 4, 6, 8, 10, 12, 14 or 16.
215
+ *
216
+ * \warning Passing \c 0 as \p tag_len means that the message is no
217
+ * longer authenticated.
218
+ *
219
+ * \return \c 0 on success.
220
+ * \return A CCM or cipher-specific error code on failure.
221
+ */
222
+ int mbedtls_ccm_star_encrypt_and_tag(mbedtls_ccm_context *ctx, size_t length,
223
+ const unsigned char *iv, size_t iv_len,
224
+ const unsigned char *ad, size_t ad_len,
225
+ const unsigned char *input, unsigned char *output,
226
+ unsigned char *tag, size_t tag_len);
227
+
228
+ /**
229
+ * \brief This function performs a CCM authenticated decryption of a
230
+ * buffer.
231
+ *
232
+ * \param ctx The CCM context to use for decryption. This must be
233
+ * initialized and bound to a key.
234
+ * \param length The length of the input data in Bytes.
235
+ * \param iv The initialization vector (nonce). This must be a readable
236
+ * buffer of at least \p iv_len Bytes.
237
+ * \param iv_len The length of the nonce in Bytes: 7, 8, 9, 10, 11, 12,
238
+ * or 13. The length L of the message length field is
239
+ * 15 - \p iv_len.
240
+ * \param ad The additional data field. This must be a readable buffer
241
+ * of at least that \p ad_len Bytes..
242
+ * \param ad_len The length of additional data in Bytes.
243
+ * This must be less than 2^16 - 2^8.
244
+ * \param input The buffer holding the input data. If \p length is greater
245
+ * than zero, \p input must be a readable buffer of at least
246
+ * that length.
247
+ * \param output The buffer holding the output data. If \p length is greater
248
+ * than zero, \p output must be a writable buffer of at least
249
+ * that length.
250
+ * \param tag The buffer holding the authentication field. This must be a
251
+ * readable buffer of at least \p tag_len Bytes.
252
+ * \param tag_len The length of the authentication field to generate in Bytes:
253
+ * 4, 6, 8, 10, 12, 14 or 16.
254
+ *
255
+ * \return \c 0 on success. This indicates that the message is authentic.
256
+ * \return #MBEDTLS_ERR_CCM_AUTH_FAILED if the tag does not match.
257
+ * \return A cipher-specific error code on calculation failure.
258
+ */
259
+ int mbedtls_ccm_auth_decrypt(mbedtls_ccm_context *ctx, size_t length,
260
+ const unsigned char *iv, size_t iv_len,
261
+ const unsigned char *ad, size_t ad_len,
262
+ const unsigned char *input, unsigned char *output,
263
+ const unsigned char *tag, size_t tag_len);
264
+
265
+ /**
266
+ * \brief This function performs a CCM* authenticated decryption of a
267
+ * buffer.
268
+ *
269
+ * \note When using this function in a variable tag length context,
270
+ * the tag length has to be decoded from \p iv and passed to
271
+ * this function as \p tag_len. (\p tag needs to be adjusted
272
+ * accordingly.)
273
+ *
274
+ * \param ctx The CCM context to use for decryption. This must be
275
+ * initialized and bound to a key.
276
+ * \param length The length of the input data in Bytes.
277
+ * For tag length = 0, input length is ignored.
278
+ * \param iv The initialization vector (nonce). This must be a readable
279
+ * buffer of at least \p iv_len Bytes.
280
+ * \param iv_len The length of the nonce in Bytes: 7, 8, 9, 10, 11, 12,
281
+ * or 13. The length L of the message length field is
282
+ * 15 - \p iv_len.
283
+ * \param ad The additional data field. This must be a readable buffer of
284
+ * at least that \p ad_len Bytes.
285
+ * \param ad_len The length of additional data in Bytes.
286
+ * This must be less than 2^16 - 2^8.
287
+ * \param input The buffer holding the input data. If \p length is greater
288
+ * than zero, \p input must be a readable buffer of at least
289
+ * that length.
290
+ * \param output The buffer holding the output data. If \p length is greater
291
+ * than zero, \p output must be a writable buffer of at least
292
+ * that length.
293
+ * \param tag The buffer holding the authentication field. This must be a
294
+ * readable buffer of at least \p tag_len Bytes.
295
+ * \param tag_len The length of the authentication field in Bytes.
296
+ * 0, 4, 6, 8, 10, 12, 14 or 16.
297
+ *
298
+ * \warning Passing \c 0 as \p tag_len means that the message is nos
299
+ * longer authenticated.
300
+ *
301
+ * \return \c 0 on success.
302
+ * \return #MBEDTLS_ERR_CCM_AUTH_FAILED if the tag does not match.
303
+ * \return A cipher-specific error code on calculation failure.
304
+ */
305
+ int mbedtls_ccm_star_auth_decrypt(mbedtls_ccm_context *ctx, size_t length,
306
+ const unsigned char *iv, size_t iv_len,
307
+ const unsigned char *ad, size_t ad_len,
308
+ const unsigned char *input, unsigned char *output,
309
+ const unsigned char *tag, size_t tag_len);
310
+
311
+ /**
312
+ * \brief This function starts a CCM encryption or decryption
313
+ * operation.
314
+ *
315
+ * This function and mbedtls_ccm_set_lengths() must be called
316
+ * before calling mbedtls_ccm_update_ad() or
317
+ * mbedtls_ccm_update(). This function can be called before
318
+ * or after mbedtls_ccm_set_lengths().
319
+ *
320
+ * \note This function is not implemented in Mbed TLS yet.
321
+ *
322
+ * \param ctx The CCM context. This must be initialized.
323
+ * \param mode The operation to perform: #MBEDTLS_CCM_ENCRYPT or
324
+ * #MBEDTLS_CCM_DECRYPT or #MBEDTLS_CCM_STAR_ENCRYPT or
325
+ * #MBEDTLS_CCM_STAR_DECRYPT.
326
+ * \param iv The initialization vector. This must be a readable buffer
327
+ * of at least \p iv_len Bytes.
328
+ * \param iv_len The length of the nonce in Bytes: 7, 8, 9, 10, 11, 12,
329
+ * or 13. The length L of the message length field is
330
+ * 15 - \p iv_len.
331
+ *
332
+ * \return \c 0 on success.
333
+ * \return #MBEDTLS_ERR_CCM_BAD_INPUT on failure:
334
+ * \p ctx is in an invalid state,
335
+ * \p mode is invalid,
336
+ * \p iv_len is invalid (lower than \c 7 or greater than
337
+ * \c 13).
338
+ */
339
+ int mbedtls_ccm_starts(mbedtls_ccm_context *ctx,
340
+ int mode,
341
+ const unsigned char *iv,
342
+ size_t iv_len);
343
+
344
+ /**
345
+ * \brief This function declares the lengths of the message
346
+ * and additional data for a CCM encryption or decryption
347
+ * operation.
348
+ *
349
+ * This function and mbedtls_ccm_starts() must be called
350
+ * before calling mbedtls_ccm_update_ad() or
351
+ * mbedtls_ccm_update(). This function can be called before
352
+ * or after mbedtls_ccm_starts().
353
+ *
354
+ * \note This function is not implemented in Mbed TLS yet.
355
+ *
356
+ * \param ctx The CCM context. This must be initialized.
357
+ * \param total_ad_len The total length of additional data in bytes.
358
+ * This must be less than `2^16 - 2^8`.
359
+ * \param plaintext_len The length in bytes of the plaintext to encrypt or
360
+ * result of the decryption (thus not encompassing the
361
+ * additional data that are not encrypted).
362
+ * \param tag_len The length of the tag to generate in Bytes:
363
+ * 4, 6, 8, 10, 12, 14 or 16.
364
+ * For CCM*, zero is also valid.
365
+ *
366
+ * \return \c 0 on success.
367
+ * \return #MBEDTLS_ERR_CCM_BAD_INPUT on failure:
368
+ * \p ctx is in an invalid state,
369
+ * \p total_ad_len is greater than \c 0xFF00.
370
+ */
371
+ int mbedtls_ccm_set_lengths(mbedtls_ccm_context *ctx,
372
+ size_t total_ad_len,
373
+ size_t plaintext_len,
374
+ size_t tag_len);
375
+
376
+ /**
377
+ * \brief This function feeds an input buffer as associated data
378
+ * (authenticated but not encrypted data) in a CCM
379
+ * encryption or decryption operation.
380
+ *
381
+ * You may call this function zero, one or more times
382
+ * to pass successive parts of the additional data. The
383
+ * lengths \p ad_len of the data parts should eventually add
384
+ * up exactly to the total length of additional data
385
+ * \c total_ad_len passed to mbedtls_ccm_set_lengths(). You
386
+ * may not call this function after calling
387
+ * mbedtls_ccm_update().
388
+ *
389
+ * \note This function is not implemented in Mbed TLS yet.
390
+ *
391
+ * \param ctx The CCM context. This must have been started with
392
+ * mbedtls_ccm_starts(), the lengths of the message and
393
+ * additional data must have been declared with
394
+ * mbedtls_ccm_set_lengths() and this must not have yet
395
+ * received any input with mbedtls_ccm_update().
396
+ * \param ad The buffer holding the additional data, or \c NULL
397
+ * if \p ad_len is \c 0.
398
+ * \param ad_len The length of the additional data. If \c 0,
399
+ * \p ad may be \c NULL.
400
+ *
401
+ * \return \c 0 on success.
402
+ * \return #MBEDTLS_ERR_CCM_BAD_INPUT on failure:
403
+ * \p ctx is in an invalid state,
404
+ * total input length too long.
405
+ */
406
+ int mbedtls_ccm_update_ad(mbedtls_ccm_context *ctx,
407
+ const unsigned char *ad,
408
+ size_t ad_len);
409
+
410
+ /**
411
+ * \brief This function feeds an input buffer into an ongoing CCM
412
+ * encryption or decryption operation.
413
+ *
414
+ * You may call this function zero, one or more times
415
+ * to pass successive parts of the input: the plaintext to
416
+ * encrypt, or the ciphertext (not including the tag) to
417
+ * decrypt. After the last part of the input, call
418
+ * mbedtls_ccm_finish(). The lengths \p input_len of the
419
+ * data parts should eventually add up exactly to the
420
+ * plaintext length \c plaintext_len passed to
421
+ * mbedtls_ccm_set_lengths().
422
+ *
423
+ * This function may produce output in one of the following
424
+ * ways:
425
+ * - Immediate output: the output length is always equal
426
+ * to the input length.
427
+ * - Buffered output: except for the last part of input data,
428
+ * the output consists of a whole number of 16-byte blocks.
429
+ * If the total input length so far (not including
430
+ * associated data) is 16 \* *B* + *A* with *A* < 16 then
431
+ * the total output length is 16 \* *B*.
432
+ * For the last part of input data, the output length is
433
+ * equal to the input length plus the number of bytes (*A*)
434
+ * buffered in the previous call to the function (if any).
435
+ * The function uses the plaintext length
436
+ * \c plaintext_len passed to mbedtls_ccm_set_lengths()
437
+ * to detect the last part of input data.
438
+ *
439
+ * In particular:
440
+ * - It is always correct to call this function with
441
+ * \p output_size >= \p input_len + 15.
442
+ * - If \p input_len is a multiple of 16 for all the calls
443
+ * to this function during an operation (not necessary for
444
+ * the last one) then it is correct to use \p output_size
445
+ * =\p input_len.
446
+ *
447
+ * \note This function is not implemented in Mbed TLS yet.
448
+ *
449
+ * \param ctx The CCM context. This must have been started with
450
+ * mbedtls_ccm_starts() and the lengths of the message and
451
+ * additional data must have been declared with
452
+ * mbedtls_ccm_set_lengths().
453
+ * \param input The buffer holding the input data. If \p input_len
454
+ * is greater than zero, this must be a readable buffer
455
+ * of at least \p input_len bytes.
456
+ * \param input_len The length of the input data in bytes.
457
+ * \param output The buffer for the output data. If \p output_size
458
+ * is greater than zero, this must be a writable buffer of
459
+ * at least \p output_size bytes.
460
+ * \param output_size The size of the output buffer in bytes.
461
+ * See the function description regarding the output size.
462
+ * \param output_len On success, \p *output_len contains the actual
463
+ * length of the output written in \p output.
464
+ * On failure, the content of \p *output_len is
465
+ * unspecified.
466
+ *
467
+ * \return \c 0 on success.
468
+ * \return #MBEDTLS_ERR_CCM_BAD_INPUT on failure:
469
+ * \p ctx is in an invalid state,
470
+ * total input length too long,
471
+ * or \p output_size too small.
472
+ */
473
+ int mbedtls_ccm_update(mbedtls_ccm_context *ctx,
474
+ const unsigned char *input, size_t input_len,
475
+ unsigned char *output, size_t output_size,
476
+ size_t *output_len);
477
+
478
+ /**
479
+ * \brief This function finishes the CCM operation and generates
480
+ * the authentication tag.
481
+ *
482
+ * It wraps up the CCM stream, and generates the
483
+ * tag. The tag can have a maximum length of 16 Bytes.
484
+ *
485
+ * \note This function is not implemented in Mbed TLS yet.
486
+ *
487
+ * \param ctx The CCM context. This must have been started with
488
+ * mbedtls_ccm_starts() and the lengths of the message and
489
+ * additional data must have been declared with
490
+ * mbedtls_ccm_set_lengths().
491
+ * \param tag The buffer for holding the tag. If \p tag_len is greater
492
+ * than zero, this must be a writable buffer of at least \p
493
+ * tag_len Bytes.
494
+ * \param tag_len The length of the tag. Must match the tag length passed to
495
+ * mbedtls_ccm_set_lengths() function.
496
+ *
497
+ * \return \c 0 on success.
498
+ * \return #MBEDTLS_ERR_CCM_BAD_INPUT on failure:
499
+ * \p ctx is in an invalid state,
500
+ * invalid value of \p tag_len,
501
+ * the total amount of additional data passed to
502
+ * mbedtls_ccm_update_ad() was lower than the total length of
503
+ * additional data \c total_ad_len passed to
504
+ * mbedtls_ccm_set_lengths(),
505
+ * the total amount of input data passed to
506
+ * mbedtls_ccm_update() was lower than the plaintext length
507
+ * \c plaintext_len passed to mbedtls_ccm_set_lengths().
508
+ */
509
+ int mbedtls_ccm_finish(mbedtls_ccm_context *ctx,
510
+ unsigned char *tag, size_t tag_len);
511
+
512
+ #if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_CCM_GCM_CAN_AES)
513
+ /**
514
+ * \brief The CCM checkup routine.
515
+ *
516
+ * \return \c 0 on success.
517
+ * \return \c 1 on failure.
518
+ */
519
+ int mbedtls_ccm_self_test(int verbose);
520
+ #endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */
521
+
522
+ #ifdef __cplusplus
523
+ }
524
+ #endif
525
+
526
+ #endif /* MBEDTLS_CCM_H */