@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,704 @@
1
+ /**
2
+ * \file alignment.h
3
+ *
4
+ * \brief Utility code for dealing with unaligned memory accesses
5
+ */
6
+ /*
7
+ * Copyright The Mbed TLS Contributors
8
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
9
+ */
10
+
11
+ #ifndef MBEDTLS_LIBRARY_ALIGNMENT_H
12
+ #define MBEDTLS_LIBRARY_ALIGNMENT_H
13
+
14
+ #include <stdint.h>
15
+ #include <string.h>
16
+ #include <stdlib.h>
17
+
18
+ #if !defined(MBEDTLS_ALIGNMENT_DISABLE_EFFICENT_UNALIGNED_ACCESS) //no-check-names
19
+ /*
20
+ * Define MBEDTLS_EFFICIENT_UNALIGNED_ACCESS for architectures where unaligned memory
21
+ * accesses are known to be efficient.
22
+ *
23
+ * All functions defined here will behave correctly regardless, but might be less
24
+ * efficient when this is not defined.
25
+ */
26
+ #if defined(__ARM_FEATURE_UNALIGNED) \
27
+ || defined(MBEDTLS_ARCH_IS_X86) || defined(MBEDTLS_ARCH_IS_X64) \
28
+ || defined(MBEDTLS_PLATFORM_IS_WINDOWS_ON_ARM64)
29
+ /*
30
+ * __ARM_FEATURE_UNALIGNED is defined where appropriate by armcc, gcc 7, clang 9
31
+ * (and later versions) for Arm v7 and later; all x86 platforms should have
32
+ * efficient unaligned access.
33
+ *
34
+ * https://learn.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=msvc-170#alignment
35
+ * specifies that on Windows-on-Arm64, unaligned access is safe (except for uncached
36
+ * device memory).
37
+ */
38
+ #define MBEDTLS_EFFICIENT_UNALIGNED_ACCESS
39
+ #endif /* __ARM_FEATURE_UNALIGNED || MBEDTLS_ARCH_IS_X86 || MBEDTLS_ARCH_IS_X64 ||
40
+ * MBEDTLS_PLATFORM_IS_WINDOWS_ON_ARM64 */
41
+ #endif /* MBEDTLS_ALIGNMENT_DISABLE_EFFICENT_UNALIGNED_ACCESS */ //no-check-names
42
+
43
+ #if defined(__IAR_SYSTEMS_ICC__) && \
44
+ (defined(MBEDTLS_ARCH_IS_ARM64) || defined(MBEDTLS_ARCH_IS_ARM32) \
45
+ || defined(__ICCRX__) || defined(__ICCRL78__) || defined(__ICCRISCV__))
46
+ #pragma language=save
47
+ #pragma language=extended
48
+ #define MBEDTLS_POP_IAR_LANGUAGE_PRAGMA
49
+ /* IAR recommend this technique for accessing unaligned data in
50
+ * https://mypages.iar.com/s/article/Accessing-Unaligned-Data
51
+ * This results in a single load / store instruction (if unaligned access is supported).
52
+ * According to that document, this is only supported on certain architectures.
53
+ */
54
+ #define UINT_UNALIGNED
55
+
56
+ /* Some products, like Zephyr, defines __packed as a macro for attribute(packed) and
57
+ * that does not work with typedefs, so if __packed is defined, undef it for the
58
+ * typedefs and restore it afterwards.
59
+ */
60
+ #ifdef __packed
61
+ #pragma push_macro("__packed")
62
+ #undef __packed
63
+ #define MBEDTLS_IAR_PACKED_MACRO_USED
64
+ #endif
65
+
66
+ typedef uint16_t __packed mbedtls_uint16_unaligned_t;
67
+ typedef uint32_t __packed mbedtls_uint32_unaligned_t;
68
+ typedef uint64_t __packed mbedtls_uint64_unaligned_t;
69
+
70
+ #ifdef MBEDTLS_IAR_PACKED_MACRO_USED
71
+ #undef MBEDTLS_IAR_PACKED_MACRO_USED
72
+ #pragma pop_macro("__packed")
73
+ #endif
74
+
75
+ #elif defined(MBEDTLS_COMPILER_IS_GCC) && (MBEDTLS_GCC_VERSION >= 40504) && \
76
+ ((MBEDTLS_GCC_VERSION < 60300) || (!defined(MBEDTLS_EFFICIENT_UNALIGNED_ACCESS)))
77
+ /*
78
+ * gcc may generate a branch to memcpy for calls like `memcpy(dest, src, 4)` rather than
79
+ * generating some LDR or LDRB instructions (similar for stores).
80
+ *
81
+ * This is architecture dependent: x86-64 seems fine even with old gcc; 32-bit Arm
82
+ * is affected. To keep it simple, we enable for all architectures.
83
+ *
84
+ * For versions of gcc < 5.4.0 this issue always happens.
85
+ * For gcc < 6.3.0, this issue happens at -O0
86
+ * For all versions, this issue happens iff unaligned access is not supported.
87
+ *
88
+ * For gcc 4.x, this implementation will generate byte-by-byte loads even if unaligned access is
89
+ * supported, which is correct but not optimal.
90
+ *
91
+ * For performance (and code size, in some cases), we want to avoid the branch and just generate
92
+ * some inline load/store instructions since the access is small and constant-size.
93
+ *
94
+ * The manual states:
95
+ * "The packed attribute specifies that a variable or structure field should have the smallest
96
+ * possible alignment—one byte for a variable"
97
+ * https://gcc.gnu.org/onlinedocs/gcc-4.5.4/gcc/Variable-Attributes.html
98
+ *
99
+ * Previous implementations used __attribute__((__aligned__(1)), but had issues with a gcc bug:
100
+ * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94662
101
+ *
102
+ * Tested with several versions of GCC from 4.5.0 up to 13.2.0
103
+ * We don't enable for older than 4.5.0 as this has not been tested.
104
+ */
105
+ #define UINT_UNALIGNED_STRUCT
106
+ typedef struct {
107
+ uint16_t x;
108
+ } __attribute__((packed, may_alias)) mbedtls_uint16_unaligned_t;
109
+ typedef struct {
110
+ uint32_t x;
111
+ } __attribute__((packed, may_alias)) mbedtls_uint32_unaligned_t;
112
+ typedef struct {
113
+ uint64_t x;
114
+ } __attribute__((packed, may_alias)) mbedtls_uint64_unaligned_t;
115
+ #endif
116
+
117
+ /*
118
+ * We try to force mbedtls_(get|put)_unaligned_uintXX to be always inline, because this results
119
+ * in code that is both smaller and faster. IAR and gcc both benefit from this when optimising
120
+ * for size.
121
+ */
122
+
123
+ /**
124
+ * Read the unsigned 16 bits integer from the given address, which need not
125
+ * be aligned.
126
+ *
127
+ * \param p pointer to 2 bytes of data
128
+ * \return Data at the given address
129
+ */
130
+ #if defined(__IAR_SYSTEMS_ICC__)
131
+ #pragma inline = forced
132
+ #elif defined(__GNUC__)
133
+ __attribute__((always_inline))
134
+ #endif
135
+ static inline uint16_t mbedtls_get_unaligned_uint16(const void *p)
136
+ {
137
+ uint16_t r;
138
+ #if defined(UINT_UNALIGNED)
139
+ mbedtls_uint16_unaligned_t *p16 = (mbedtls_uint16_unaligned_t *) p;
140
+ r = *p16;
141
+ #elif defined(UINT_UNALIGNED_STRUCT)
142
+ mbedtls_uint16_unaligned_t *p16 = (mbedtls_uint16_unaligned_t *) p;
143
+ r = p16->x;
144
+ #else
145
+ memcpy(&r, p, sizeof(r));
146
+ #endif
147
+ return r;
148
+ }
149
+
150
+ /**
151
+ * Write the unsigned 16 bits integer to the given address, which need not
152
+ * be aligned.
153
+ *
154
+ * \param p pointer to 2 bytes of data
155
+ * \param x data to write
156
+ */
157
+ #if defined(__IAR_SYSTEMS_ICC__)
158
+ #pragma inline = forced
159
+ #elif defined(__GNUC__)
160
+ __attribute__((always_inline))
161
+ #endif
162
+ static inline void mbedtls_put_unaligned_uint16(void *p, uint16_t x)
163
+ {
164
+ #if defined(UINT_UNALIGNED)
165
+ mbedtls_uint16_unaligned_t *p16 = (mbedtls_uint16_unaligned_t *) p;
166
+ *p16 = x;
167
+ #elif defined(UINT_UNALIGNED_STRUCT)
168
+ mbedtls_uint16_unaligned_t *p16 = (mbedtls_uint16_unaligned_t *) p;
169
+ p16->x = x;
170
+ #else
171
+ memcpy(p, &x, sizeof(x));
172
+ #endif
173
+ }
174
+
175
+ /**
176
+ * Read the unsigned 32 bits integer from the given address, which need not
177
+ * be aligned.
178
+ *
179
+ * \param p pointer to 4 bytes of data
180
+ * \return Data at the given address
181
+ */
182
+ #if defined(__IAR_SYSTEMS_ICC__)
183
+ #pragma inline = forced
184
+ #elif defined(__GNUC__)
185
+ __attribute__((always_inline))
186
+ #endif
187
+ static inline uint32_t mbedtls_get_unaligned_uint32(const void *p)
188
+ {
189
+ uint32_t r;
190
+ #if defined(UINT_UNALIGNED)
191
+ mbedtls_uint32_unaligned_t *p32 = (mbedtls_uint32_unaligned_t *) p;
192
+ r = *p32;
193
+ #elif defined(UINT_UNALIGNED_STRUCT)
194
+ mbedtls_uint32_unaligned_t *p32 = (mbedtls_uint32_unaligned_t *) p;
195
+ r = p32->x;
196
+ #else
197
+ memcpy(&r, p, sizeof(r));
198
+ #endif
199
+ return r;
200
+ }
201
+
202
+ /**
203
+ * Write the unsigned 32 bits integer to the given address, which need not
204
+ * be aligned.
205
+ *
206
+ * \param p pointer to 4 bytes of data
207
+ * \param x data to write
208
+ */
209
+ #if defined(__IAR_SYSTEMS_ICC__)
210
+ #pragma inline = forced
211
+ #elif defined(__GNUC__)
212
+ __attribute__((always_inline))
213
+ #endif
214
+ static inline void mbedtls_put_unaligned_uint32(void *p, uint32_t x)
215
+ {
216
+ #if defined(UINT_UNALIGNED)
217
+ mbedtls_uint32_unaligned_t *p32 = (mbedtls_uint32_unaligned_t *) p;
218
+ *p32 = x;
219
+ #elif defined(UINT_UNALIGNED_STRUCT)
220
+ mbedtls_uint32_unaligned_t *p32 = (mbedtls_uint32_unaligned_t *) p;
221
+ p32->x = x;
222
+ #else
223
+ memcpy(p, &x, sizeof(x));
224
+ #endif
225
+ }
226
+
227
+ /**
228
+ * Read the unsigned 64 bits integer from the given address, which need not
229
+ * be aligned.
230
+ *
231
+ * \param p pointer to 8 bytes of data
232
+ * \return Data at the given address
233
+ */
234
+ #if defined(__IAR_SYSTEMS_ICC__)
235
+ #pragma inline = forced
236
+ #elif defined(__GNUC__)
237
+ __attribute__((always_inline))
238
+ #endif
239
+ static inline uint64_t mbedtls_get_unaligned_uint64(const void *p)
240
+ {
241
+ uint64_t r;
242
+ #if defined(UINT_UNALIGNED)
243
+ mbedtls_uint64_unaligned_t *p64 = (mbedtls_uint64_unaligned_t *) p;
244
+ r = *p64;
245
+ #elif defined(UINT_UNALIGNED_STRUCT)
246
+ mbedtls_uint64_unaligned_t *p64 = (mbedtls_uint64_unaligned_t *) p;
247
+ r = p64->x;
248
+ #else
249
+ memcpy(&r, p, sizeof(r));
250
+ #endif
251
+ return r;
252
+ }
253
+
254
+ /**
255
+ * Write the unsigned 64 bits integer to the given address, which need not
256
+ * be aligned.
257
+ *
258
+ * \param p pointer to 8 bytes of data
259
+ * \param x data to write
260
+ */
261
+ #if defined(__IAR_SYSTEMS_ICC__)
262
+ #pragma inline = forced
263
+ #elif defined(__GNUC__)
264
+ __attribute__((always_inline))
265
+ #endif
266
+ static inline void mbedtls_put_unaligned_uint64(void *p, uint64_t x)
267
+ {
268
+ #if defined(UINT_UNALIGNED)
269
+ mbedtls_uint64_unaligned_t *p64 = (mbedtls_uint64_unaligned_t *) p;
270
+ *p64 = x;
271
+ #elif defined(UINT_UNALIGNED_STRUCT)
272
+ mbedtls_uint64_unaligned_t *p64 = (mbedtls_uint64_unaligned_t *) p;
273
+ p64->x = x;
274
+ #else
275
+ memcpy(p, &x, sizeof(x));
276
+ #endif
277
+ }
278
+
279
+ #if defined(MBEDTLS_POP_IAR_LANGUAGE_PRAGMA)
280
+ #pragma language=restore
281
+ #endif
282
+
283
+ /** Byte Reading Macros
284
+ *
285
+ * Given a multi-byte integer \p x, MBEDTLS_BYTE_n retrieves the n-th
286
+ * byte from x, where byte 0 is the least significant byte.
287
+ */
288
+ #define MBEDTLS_BYTE_0(x) ((uint8_t) ((x) & 0xff))
289
+ #define MBEDTLS_BYTE_1(x) ((uint8_t) (((x) >> 8) & 0xff))
290
+ #define MBEDTLS_BYTE_2(x) ((uint8_t) (((x) >> 16) & 0xff))
291
+ #define MBEDTLS_BYTE_3(x) ((uint8_t) (((x) >> 24) & 0xff))
292
+ #define MBEDTLS_BYTE_4(x) ((uint8_t) (((x) >> 32) & 0xff))
293
+ #define MBEDTLS_BYTE_5(x) ((uint8_t) (((x) >> 40) & 0xff))
294
+ #define MBEDTLS_BYTE_6(x) ((uint8_t) (((x) >> 48) & 0xff))
295
+ #define MBEDTLS_BYTE_7(x) ((uint8_t) (((x) >> 56) & 0xff))
296
+
297
+ /*
298
+ * Detect GCC built-in byteswap routines
299
+ */
300
+ #if defined(__GNUC__)
301
+ #if MBEDTLS_GCC_VERSION >= 40800
302
+ #define MBEDTLS_BSWAP16 __builtin_bswap16
303
+ #endif
304
+ #if MBEDTLS_GCC_VERSION >= 40300
305
+ #define MBEDTLS_BSWAP32 __builtin_bswap32
306
+ #define MBEDTLS_BSWAP64 __builtin_bswap64
307
+ #endif
308
+ #endif /* defined(__GNUC__) */
309
+
310
+ /*
311
+ * Detect Clang built-in byteswap routines
312
+ */
313
+ #if defined(__clang__) && defined(__has_builtin)
314
+ #if __has_builtin(__builtin_bswap16) && !defined(MBEDTLS_BSWAP16)
315
+ #define MBEDTLS_BSWAP16 __builtin_bswap16
316
+ #endif /* __has_builtin(__builtin_bswap16) */
317
+ #if __has_builtin(__builtin_bswap32) && !defined(MBEDTLS_BSWAP32)
318
+ #define MBEDTLS_BSWAP32 __builtin_bswap32
319
+ #endif /* __has_builtin(__builtin_bswap32) */
320
+ #if __has_builtin(__builtin_bswap64) && !defined(MBEDTLS_BSWAP64)
321
+ #define MBEDTLS_BSWAP64 __builtin_bswap64
322
+ #endif /* __has_builtin(__builtin_bswap64) */
323
+ #endif /* defined(__clang__) && defined(__has_builtin) */
324
+
325
+ /*
326
+ * Detect MSVC built-in byteswap routines
327
+ */
328
+ #if defined(_MSC_VER)
329
+ #if !defined(MBEDTLS_BSWAP16)
330
+ #define MBEDTLS_BSWAP16 _byteswap_ushort
331
+ #endif
332
+ #if !defined(MBEDTLS_BSWAP32)
333
+ #define MBEDTLS_BSWAP32 _byteswap_ulong
334
+ #endif
335
+ #if !defined(MBEDTLS_BSWAP64)
336
+ #define MBEDTLS_BSWAP64 _byteswap_uint64
337
+ #endif
338
+ #endif /* defined(_MSC_VER) */
339
+
340
+ /* Detect armcc built-in byteswap routine */
341
+ #if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 410000) && !defined(MBEDTLS_BSWAP32)
342
+ #if defined(__ARM_ACLE) /* ARM Compiler 6 - earlier versions don't need a header */
343
+ #include <arm_acle.h>
344
+ #endif
345
+ #define MBEDTLS_BSWAP32 __rev
346
+ #endif
347
+
348
+ /* Detect IAR built-in byteswap routine */
349
+ #if defined(__IAR_SYSTEMS_ICC__)
350
+ #if defined(__ARM_ACLE)
351
+ #include <arm_acle.h>
352
+ #define MBEDTLS_BSWAP16(x) ((uint16_t) __rev16((uint32_t) (x)))
353
+ #define MBEDTLS_BSWAP32 __rev
354
+ #define MBEDTLS_BSWAP64 __revll
355
+ #endif
356
+ #endif
357
+
358
+ /*
359
+ * Where compiler built-ins are not present, fall back to C code that the
360
+ * compiler may be able to detect and transform into the relevant bswap or
361
+ * similar instruction.
362
+ */
363
+ #if !defined(MBEDTLS_BSWAP16)
364
+ static inline uint16_t mbedtls_bswap16(uint16_t x)
365
+ {
366
+ return
367
+ (x & 0x00ff) << 8 |
368
+ (x & 0xff00) >> 8;
369
+ }
370
+ #define MBEDTLS_BSWAP16 mbedtls_bswap16
371
+ #endif /* !defined(MBEDTLS_BSWAP16) */
372
+
373
+ #if !defined(MBEDTLS_BSWAP32)
374
+ static inline uint32_t mbedtls_bswap32(uint32_t x)
375
+ {
376
+ return
377
+ (x & 0x000000ff) << 24 |
378
+ (x & 0x0000ff00) << 8 |
379
+ (x & 0x00ff0000) >> 8 |
380
+ (x & 0xff000000) >> 24;
381
+ }
382
+ #define MBEDTLS_BSWAP32 mbedtls_bswap32
383
+ #endif /* !defined(MBEDTLS_BSWAP32) */
384
+
385
+ #if !defined(MBEDTLS_BSWAP64)
386
+ static inline uint64_t mbedtls_bswap64(uint64_t x)
387
+ {
388
+ return
389
+ (x & 0x00000000000000ffULL) << 56 |
390
+ (x & 0x000000000000ff00ULL) << 40 |
391
+ (x & 0x0000000000ff0000ULL) << 24 |
392
+ (x & 0x00000000ff000000ULL) << 8 |
393
+ (x & 0x000000ff00000000ULL) >> 8 |
394
+ (x & 0x0000ff0000000000ULL) >> 24 |
395
+ (x & 0x00ff000000000000ULL) >> 40 |
396
+ (x & 0xff00000000000000ULL) >> 56;
397
+ }
398
+ #define MBEDTLS_BSWAP64 mbedtls_bswap64
399
+ #endif /* !defined(MBEDTLS_BSWAP64) */
400
+
401
+ #if !defined(__BYTE_ORDER__)
402
+
403
+ #if defined(__LITTLE_ENDIAN__)
404
+ /* IAR defines __xxx_ENDIAN__, but not __BYTE_ORDER__ */
405
+ #define MBEDTLS_IS_BIG_ENDIAN 0
406
+ #elif defined(__BIG_ENDIAN__)
407
+ #define MBEDTLS_IS_BIG_ENDIAN 1
408
+ #else
409
+ static const uint16_t mbedtls_byte_order_detector = { 0x100 };
410
+ #define MBEDTLS_IS_BIG_ENDIAN (*((unsigned char *) (&mbedtls_byte_order_detector)) == 0x01)
411
+ #endif
412
+
413
+ #else
414
+
415
+ #if (__BYTE_ORDER__) == (__ORDER_BIG_ENDIAN__)
416
+ #define MBEDTLS_IS_BIG_ENDIAN 1
417
+ #else
418
+ #define MBEDTLS_IS_BIG_ENDIAN 0
419
+ #endif
420
+
421
+ #endif /* !defined(__BYTE_ORDER__) */
422
+
423
+ /**
424
+ * Get the unsigned 32 bits integer corresponding to four bytes in
425
+ * big-endian order (MSB first).
426
+ *
427
+ * \param data Base address of the memory to get the four bytes from.
428
+ * \param offset Offset from \p data of the first and most significant
429
+ * byte of the four bytes to build the 32 bits unsigned
430
+ * integer from.
431
+ */
432
+ #define MBEDTLS_GET_UINT32_BE(data, offset) \
433
+ ((MBEDTLS_IS_BIG_ENDIAN) \
434
+ ? mbedtls_get_unaligned_uint32((data) + (offset)) \
435
+ : MBEDTLS_BSWAP32(mbedtls_get_unaligned_uint32((data) + (offset))) \
436
+ )
437
+
438
+ /**
439
+ * Put in memory a 32 bits unsigned integer in big-endian order.
440
+ *
441
+ * \param n 32 bits unsigned integer to put in memory.
442
+ * \param data Base address of the memory where to put the 32
443
+ * bits unsigned integer in.
444
+ * \param offset Offset from \p data where to put the most significant
445
+ * byte of the 32 bits unsigned integer \p n.
446
+ */
447
+ #define MBEDTLS_PUT_UINT32_BE(n, data, offset) \
448
+ { \
449
+ if (MBEDTLS_IS_BIG_ENDIAN) \
450
+ { \
451
+ mbedtls_put_unaligned_uint32((data) + (offset), (uint32_t) (n)); \
452
+ } \
453
+ else \
454
+ { \
455
+ mbedtls_put_unaligned_uint32((data) + (offset), MBEDTLS_BSWAP32((uint32_t) (n))); \
456
+ } \
457
+ }
458
+
459
+ /**
460
+ * Get the unsigned 32 bits integer corresponding to four bytes in
461
+ * little-endian order (LSB first).
462
+ *
463
+ * \param data Base address of the memory to get the four bytes from.
464
+ * \param offset Offset from \p data of the first and least significant
465
+ * byte of the four bytes to build the 32 bits unsigned
466
+ * integer from.
467
+ */
468
+ #define MBEDTLS_GET_UINT32_LE(data, offset) \
469
+ ((MBEDTLS_IS_BIG_ENDIAN) \
470
+ ? MBEDTLS_BSWAP32(mbedtls_get_unaligned_uint32((data) + (offset))) \
471
+ : mbedtls_get_unaligned_uint32((data) + (offset)) \
472
+ )
473
+
474
+
475
+ /**
476
+ * Put in memory a 32 bits unsigned integer in little-endian order.
477
+ *
478
+ * \param n 32 bits unsigned integer to put in memory.
479
+ * \param data Base address of the memory where to put the 32
480
+ * bits unsigned integer in.
481
+ * \param offset Offset from \p data where to put the least significant
482
+ * byte of the 32 bits unsigned integer \p n.
483
+ */
484
+ #define MBEDTLS_PUT_UINT32_LE(n, data, offset) \
485
+ { \
486
+ if (MBEDTLS_IS_BIG_ENDIAN) \
487
+ { \
488
+ mbedtls_put_unaligned_uint32((data) + (offset), MBEDTLS_BSWAP32((uint32_t) (n))); \
489
+ } \
490
+ else \
491
+ { \
492
+ mbedtls_put_unaligned_uint32((data) + (offset), ((uint32_t) (n))); \
493
+ } \
494
+ }
495
+
496
+ /**
497
+ * Get the unsigned 16 bits integer corresponding to two bytes in
498
+ * little-endian order (LSB first).
499
+ *
500
+ * \param data Base address of the memory to get the two bytes from.
501
+ * \param offset Offset from \p data of the first and least significant
502
+ * byte of the two bytes to build the 16 bits unsigned
503
+ * integer from.
504
+ */
505
+ #define MBEDTLS_GET_UINT16_LE(data, offset) \
506
+ ((MBEDTLS_IS_BIG_ENDIAN) \
507
+ ? MBEDTLS_BSWAP16(mbedtls_get_unaligned_uint16((data) + (offset))) \
508
+ : mbedtls_get_unaligned_uint16((data) + (offset)) \
509
+ )
510
+
511
+ /**
512
+ * Put in memory a 16 bits unsigned integer in little-endian order.
513
+ *
514
+ * \param n 16 bits unsigned integer to put in memory.
515
+ * \param data Base address of the memory where to put the 16
516
+ * bits unsigned integer in.
517
+ * \param offset Offset from \p data where to put the least significant
518
+ * byte of the 16 bits unsigned integer \p n.
519
+ */
520
+ #define MBEDTLS_PUT_UINT16_LE(n, data, offset) \
521
+ { \
522
+ if (MBEDTLS_IS_BIG_ENDIAN) \
523
+ { \
524
+ mbedtls_put_unaligned_uint16((data) + (offset), MBEDTLS_BSWAP16((uint16_t) (n))); \
525
+ } \
526
+ else \
527
+ { \
528
+ mbedtls_put_unaligned_uint16((data) + (offset), (uint16_t) (n)); \
529
+ } \
530
+ }
531
+
532
+ /**
533
+ * Get the unsigned 16 bits integer corresponding to two bytes in
534
+ * big-endian order (MSB first).
535
+ *
536
+ * \param data Base address of the memory to get the two bytes from.
537
+ * \param offset Offset from \p data of the first and most significant
538
+ * byte of the two bytes to build the 16 bits unsigned
539
+ * integer from.
540
+ */
541
+ #define MBEDTLS_GET_UINT16_BE(data, offset) \
542
+ ((MBEDTLS_IS_BIG_ENDIAN) \
543
+ ? mbedtls_get_unaligned_uint16((data) + (offset)) \
544
+ : MBEDTLS_BSWAP16(mbedtls_get_unaligned_uint16((data) + (offset))) \
545
+ )
546
+
547
+ /**
548
+ * Put in memory a 16 bits unsigned integer in big-endian order.
549
+ *
550
+ * \param n 16 bits unsigned integer to put in memory.
551
+ * \param data Base address of the memory where to put the 16
552
+ * bits unsigned integer in.
553
+ * \param offset Offset from \p data where to put the most significant
554
+ * byte of the 16 bits unsigned integer \p n.
555
+ */
556
+ #define MBEDTLS_PUT_UINT16_BE(n, data, offset) \
557
+ { \
558
+ if (MBEDTLS_IS_BIG_ENDIAN) \
559
+ { \
560
+ mbedtls_put_unaligned_uint16((data) + (offset), (uint16_t) (n)); \
561
+ } \
562
+ else \
563
+ { \
564
+ mbedtls_put_unaligned_uint16((data) + (offset), MBEDTLS_BSWAP16((uint16_t) (n))); \
565
+ } \
566
+ }
567
+
568
+ /**
569
+ * Get the unsigned 24 bits integer corresponding to three bytes in
570
+ * big-endian order (MSB first).
571
+ *
572
+ * \param data Base address of the memory to get the three bytes from.
573
+ * \param offset Offset from \p data of the first and most significant
574
+ * byte of the three bytes to build the 24 bits unsigned
575
+ * integer from.
576
+ */
577
+ #define MBEDTLS_GET_UINT24_BE(data, offset) \
578
+ ( \
579
+ ((uint32_t) (data)[(offset)] << 16) \
580
+ | ((uint32_t) (data)[(offset) + 1] << 8) \
581
+ | ((uint32_t) (data)[(offset) + 2]) \
582
+ )
583
+
584
+ /**
585
+ * Put in memory a 24 bits unsigned integer in big-endian order.
586
+ *
587
+ * \param n 24 bits unsigned integer to put in memory.
588
+ * \param data Base address of the memory where to put the 24
589
+ * bits unsigned integer in.
590
+ * \param offset Offset from \p data where to put the most significant
591
+ * byte of the 24 bits unsigned integer \p n.
592
+ */
593
+ #define MBEDTLS_PUT_UINT24_BE(n, data, offset) \
594
+ { \
595
+ (data)[(offset)] = MBEDTLS_BYTE_2(n); \
596
+ (data)[(offset) + 1] = MBEDTLS_BYTE_1(n); \
597
+ (data)[(offset) + 2] = MBEDTLS_BYTE_0(n); \
598
+ }
599
+
600
+ /**
601
+ * Get the unsigned 24 bits integer corresponding to three bytes in
602
+ * little-endian order (LSB first).
603
+ *
604
+ * \param data Base address of the memory to get the three bytes from.
605
+ * \param offset Offset from \p data of the first and least significant
606
+ * byte of the three bytes to build the 24 bits unsigned
607
+ * integer from.
608
+ */
609
+ #define MBEDTLS_GET_UINT24_LE(data, offset) \
610
+ ( \
611
+ ((uint32_t) (data)[(offset)]) \
612
+ | ((uint32_t) (data)[(offset) + 1] << 8) \
613
+ | ((uint32_t) (data)[(offset) + 2] << 16) \
614
+ )
615
+
616
+ /**
617
+ * Put in memory a 24 bits unsigned integer in little-endian order.
618
+ *
619
+ * \param n 24 bits unsigned integer to put in memory.
620
+ * \param data Base address of the memory where to put the 24
621
+ * bits unsigned integer in.
622
+ * \param offset Offset from \p data where to put the least significant
623
+ * byte of the 24 bits unsigned integer \p n.
624
+ */
625
+ #define MBEDTLS_PUT_UINT24_LE(n, data, offset) \
626
+ { \
627
+ (data)[(offset)] = MBEDTLS_BYTE_0(n); \
628
+ (data)[(offset) + 1] = MBEDTLS_BYTE_1(n); \
629
+ (data)[(offset) + 2] = MBEDTLS_BYTE_2(n); \
630
+ }
631
+
632
+ /**
633
+ * Get the unsigned 64 bits integer corresponding to eight bytes in
634
+ * big-endian order (MSB first).
635
+ *
636
+ * \param data Base address of the memory to get the eight bytes from.
637
+ * \param offset Offset from \p data of the first and most significant
638
+ * byte of the eight bytes to build the 64 bits unsigned
639
+ * integer from.
640
+ */
641
+ #define MBEDTLS_GET_UINT64_BE(data, offset) \
642
+ ((MBEDTLS_IS_BIG_ENDIAN) \
643
+ ? mbedtls_get_unaligned_uint64((data) + (offset)) \
644
+ : MBEDTLS_BSWAP64(mbedtls_get_unaligned_uint64((data) + (offset))) \
645
+ )
646
+
647
+ /**
648
+ * Put in memory a 64 bits unsigned integer in big-endian order.
649
+ *
650
+ * \param n 64 bits unsigned integer to put in memory.
651
+ * \param data Base address of the memory where to put the 64
652
+ * bits unsigned integer in.
653
+ * \param offset Offset from \p data where to put the most significant
654
+ * byte of the 64 bits unsigned integer \p n.
655
+ */
656
+ #define MBEDTLS_PUT_UINT64_BE(n, data, offset) \
657
+ { \
658
+ if (MBEDTLS_IS_BIG_ENDIAN) \
659
+ { \
660
+ mbedtls_put_unaligned_uint64((data) + (offset), (uint64_t) (n)); \
661
+ } \
662
+ else \
663
+ { \
664
+ mbedtls_put_unaligned_uint64((data) + (offset), MBEDTLS_BSWAP64((uint64_t) (n))); \
665
+ } \
666
+ }
667
+
668
+ /**
669
+ * Get the unsigned 64 bits integer corresponding to eight bytes in
670
+ * little-endian order (LSB first).
671
+ *
672
+ * \param data Base address of the memory to get the eight bytes from.
673
+ * \param offset Offset from \p data of the first and least significant
674
+ * byte of the eight bytes to build the 64 bits unsigned
675
+ * integer from.
676
+ */
677
+ #define MBEDTLS_GET_UINT64_LE(data, offset) \
678
+ ((MBEDTLS_IS_BIG_ENDIAN) \
679
+ ? MBEDTLS_BSWAP64(mbedtls_get_unaligned_uint64((data) + (offset))) \
680
+ : mbedtls_get_unaligned_uint64((data) + (offset)) \
681
+ )
682
+
683
+ /**
684
+ * Put in memory a 64 bits unsigned integer in little-endian order.
685
+ *
686
+ * \param n 64 bits unsigned integer to put in memory.
687
+ * \param data Base address of the memory where to put the 64
688
+ * bits unsigned integer in.
689
+ * \param offset Offset from \p data where to put the least significant
690
+ * byte of the 64 bits unsigned integer \p n.
691
+ */
692
+ #define MBEDTLS_PUT_UINT64_LE(n, data, offset) \
693
+ { \
694
+ if (MBEDTLS_IS_BIG_ENDIAN) \
695
+ { \
696
+ mbedtls_put_unaligned_uint64((data) + (offset), MBEDTLS_BSWAP64((uint64_t) (n))); \
697
+ } \
698
+ else \
699
+ { \
700
+ mbedtls_put_unaligned_uint64((data) + (offset), (uint64_t) (n)); \
701
+ } \
702
+ }
703
+
704
+ #endif /* MBEDTLS_LIBRARY_ALIGNMENT_H */