@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,38 @@
1
+ /**
2
+ * \file bignum_core_invasive.h
3
+ *
4
+ * \brief Function declarations for invasive functions of bignum core.
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_BIGNUM_CORE_INVASIVE_H
12
+ #define MBEDTLS_BIGNUM_CORE_INVASIVE_H
13
+
14
+ #include "bignum_core.h"
15
+
16
+ #if defined(MBEDTLS_TEST_HOOKS)
17
+
18
+ #if !defined(MBEDTLS_THREADING_C)
19
+
20
+ extern void (*mbedtls_safe_codepath_hook)(void);
21
+ extern void (*mbedtls_unsafe_codepath_hook)(void);
22
+
23
+ #endif /* !MBEDTLS_THREADING_C */
24
+
25
+ /** Divide X by 2 mod N in place, assuming N is odd.
26
+ *
27
+ * \param[in,out] X The value to divide by 2 mod \p N.
28
+ * \param[in] N The modulus. Must be odd.
29
+ * \param[in] limbs The number of limbs in \p X and \p N.
30
+ */
31
+ MBEDTLS_STATIC_TESTABLE
32
+ void mbedtls_mpi_core_div2_mod_odd(mbedtls_mpi_uint *X,
33
+ const mbedtls_mpi_uint *N,
34
+ size_t limbs);
35
+
36
+ #endif /* MBEDTLS_TEST_HOOKS */
37
+
38
+ #endif /* MBEDTLS_BIGNUM_CORE_INVASIVE_H */
@@ -0,0 +1,122 @@
1
+ /**
2
+ * \file bignum_internal.h
3
+ *
4
+ * \brief Internal-only bignum public-key cryptosystem API.
5
+ *
6
+ * This file declares bignum-related functions that are to be used
7
+ * only from within the Mbed TLS library itself.
8
+ *
9
+ */
10
+ /*
11
+ * Copyright The Mbed TLS Contributors
12
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
13
+ */
14
+ #ifndef MBEDTLS_BIGNUM_INTERNAL_H
15
+ #define MBEDTLS_BIGNUM_INTERNAL_H
16
+
17
+ /**
18
+ * \brief Perform a modular exponentiation: X = A^E mod N
19
+ *
20
+ * \warning This function is not constant time with respect to \p E (the exponent).
21
+ *
22
+ * \param X The destination MPI. This must point to an initialized MPI.
23
+ * This must not alias E or N.
24
+ * \param A The base of the exponentiation.
25
+ * This must point to an initialized MPI.
26
+ * \param E The exponent MPI. This must point to an initialized MPI.
27
+ * \param N The base for the modular reduction. This must point to an
28
+ * initialized MPI.
29
+ * \param prec_RR A helper MPI depending solely on \p N which can be used to
30
+ * speed-up multiple modular exponentiations for the same value
31
+ * of \p N. This may be \c NULL. If it is not \c NULL, it must
32
+ * point to an initialized MPI. If it hasn't been used after
33
+ * the call to mbedtls_mpi_init(), this function will compute
34
+ * the helper value and store it in \p prec_RR for reuse on
35
+ * subsequent calls to this function. Otherwise, the function
36
+ * will assume that \p prec_RR holds the helper value set by a
37
+ * previous call to mbedtls_mpi_exp_mod(), and reuse it.
38
+ *
39
+ * \return \c 0 if successful.
40
+ * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed.
41
+ * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \c N is negative or
42
+ * even, or if \c E is negative.
43
+ * \return Another negative error code on different kinds of failures.
44
+ *
45
+ */
46
+ int mbedtls_mpi_exp_mod_unsafe(mbedtls_mpi *X, const mbedtls_mpi *A,
47
+ const mbedtls_mpi *E, const mbedtls_mpi *N,
48
+ mbedtls_mpi *prec_RR);
49
+
50
+ /**
51
+ * \brief A wrapper around a constant time function to compute
52
+ * GCD(A, N) and/or A^-1 mod N if it exists.
53
+ *
54
+ * \warning Requires N to be odd, and 0 <= A <= N. Additionally, if
55
+ * I != NULL, requires N > 1.
56
+ * The wrapper part of this function is not constant time.
57
+ *
58
+ * \note A and N must not alias each other.
59
+ * When I == NULL (computing only the GCD), G can alias A or N.
60
+ * When I != NULL (computing the modular inverse), G or I can
61
+ * alias A, but neither of them can alias N (the modulus).
62
+ *
63
+ * \param[out] G The GCD of \p A and \p N.
64
+ * This may be NULL, to only compute I.
65
+ * \param[out] I The inverse of \p A modulo \p N if it exists (that is,
66
+ * if \p G above is 1 on exit), in the range [1, \p N);
67
+ * indeterminate otherwise.
68
+ * This may be NULL, to only compute G.
69
+ * \param[in] A The 1st operand of GCD and number to invert.
70
+ * This value must be less than or equal to \p N.
71
+ * \param[in] N The 2nd operand of GCD and modulus for inversion.
72
+ * Must be odd or the results are indeterminate.
73
+ *
74
+ * \return \c 0 if successful.
75
+ * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed.
76
+ * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if preconditions were not
77
+ * met.
78
+ */
79
+ int mbedtls_mpi_gcd_modinv_odd(mbedtls_mpi *G,
80
+ mbedtls_mpi *I,
81
+ const mbedtls_mpi *A,
82
+ const mbedtls_mpi *N);
83
+
84
+ /**
85
+ * \brief Modular inverse: X = A^-1 mod N with N odd
86
+ *
87
+ * \param[out] X The inverse of \p A modulo \p N in the range [1, \p N)
88
+ * on success; indeterminate otherwise.
89
+ * \param[in] A The number to invert.
90
+ * \param[in] N The modulus. Must be odd and greater than 1.
91
+ *
92
+ * \return \c 0 if successful.
93
+ * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed.
94
+ * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if preconditions were not
95
+ * met.
96
+ * \return #MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if A is not invertible mod N.
97
+ */
98
+ int mbedtls_mpi_inv_mod_odd(mbedtls_mpi *X,
99
+ const mbedtls_mpi *A,
100
+ const mbedtls_mpi *N);
101
+
102
+ /**
103
+ * \brief Modular inverse: X = A^-1 mod N with N even,
104
+ * A odd and 1 < A < N.
105
+ *
106
+ * \param[out] X The inverse of \p A modulo \p N in the range [1, \p N)
107
+ * on success; indeterminate otherwise.
108
+ * \param[in] A The number to invert. Must be odd, greated than 1
109
+ * and less than \p N.
110
+ * \param[in] N The modulus. Must be even and greater than 1.
111
+ *
112
+ * \return \c 0 if successful.
113
+ * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed.
114
+ * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if preconditions were not
115
+ * met.
116
+ * \return #MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if A is not invertible mod N.
117
+ */
118
+ int mbedtls_mpi_inv_mod_even_in_range(mbedtls_mpi *X,
119
+ mbedtls_mpi const *A,
120
+ mbedtls_mpi const *N);
121
+
122
+ #endif /* bignum_internal.h */
@@ -0,0 +1,394 @@
1
+ /**
2
+ * Modular bignum functions
3
+ *
4
+ * Copyright The Mbed TLS Contributors
5
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
6
+ */
7
+
8
+ #include "common.h"
9
+
10
+ #if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_ECP_WITH_MPI_UINT)
11
+
12
+ #include <string.h>
13
+
14
+ #include "mbedtls/platform_util.h"
15
+ #include "mbedtls/error.h"
16
+ #include "mbedtls/bignum.h"
17
+
18
+ #include "mbedtls/platform.h"
19
+
20
+ #include "bignum_core.h"
21
+ #include "bignum_mod.h"
22
+ #include "bignum_mod_raw.h"
23
+ #include "constant_time_internal.h"
24
+
25
+ int mbedtls_mpi_mod_residue_setup(mbedtls_mpi_mod_residue *r,
26
+ const mbedtls_mpi_mod_modulus *N,
27
+ mbedtls_mpi_uint *p,
28
+ size_t p_limbs)
29
+ {
30
+ if (p_limbs != N->limbs || !mbedtls_mpi_core_lt_ct(p, N->p, N->limbs)) {
31
+ return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
32
+ }
33
+
34
+ r->limbs = N->limbs;
35
+ r->p = p;
36
+
37
+ return 0;
38
+ }
39
+
40
+ void mbedtls_mpi_mod_residue_release(mbedtls_mpi_mod_residue *r)
41
+ {
42
+ if (r == NULL) {
43
+ return;
44
+ }
45
+
46
+ r->limbs = 0;
47
+ r->p = NULL;
48
+ }
49
+
50
+ void mbedtls_mpi_mod_modulus_init(mbedtls_mpi_mod_modulus *N)
51
+ {
52
+ if (N == NULL) {
53
+ return;
54
+ }
55
+
56
+ N->p = NULL;
57
+ N->limbs = 0;
58
+ N->bits = 0;
59
+ N->int_rep = MBEDTLS_MPI_MOD_REP_INVALID;
60
+ }
61
+
62
+ void mbedtls_mpi_mod_modulus_free(mbedtls_mpi_mod_modulus *N)
63
+ {
64
+ if (N == NULL) {
65
+ return;
66
+ }
67
+
68
+ switch (N->int_rep) {
69
+ case MBEDTLS_MPI_MOD_REP_MONTGOMERY:
70
+ if (N->rep.mont.rr != NULL) {
71
+ mbedtls_zeroize_and_free((mbedtls_mpi_uint *) N->rep.mont.rr,
72
+ N->limbs * sizeof(mbedtls_mpi_uint));
73
+ N->rep.mont.rr = NULL;
74
+ }
75
+ N->rep.mont.mm = 0;
76
+ break;
77
+ case MBEDTLS_MPI_MOD_REP_OPT_RED:
78
+ N->rep.ored.modp = NULL;
79
+ break;
80
+ case MBEDTLS_MPI_MOD_REP_INVALID:
81
+ break;
82
+ }
83
+
84
+ N->p = NULL;
85
+ N->limbs = 0;
86
+ N->bits = 0;
87
+ N->int_rep = MBEDTLS_MPI_MOD_REP_INVALID;
88
+ }
89
+
90
+ static int set_mont_const_square(const mbedtls_mpi_uint **X,
91
+ const mbedtls_mpi_uint *A,
92
+ size_t limbs)
93
+ {
94
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
95
+ mbedtls_mpi N;
96
+ mbedtls_mpi RR;
97
+ *X = NULL;
98
+
99
+ mbedtls_mpi_init(&N);
100
+ mbedtls_mpi_init(&RR);
101
+
102
+ if (A == NULL || limbs == 0 || limbs >= (MBEDTLS_MPI_MAX_LIMBS / 2) - 2) {
103
+ goto cleanup;
104
+ }
105
+
106
+ if (mbedtls_mpi_grow(&N, limbs)) {
107
+ goto cleanup;
108
+ }
109
+
110
+ memcpy(N.p, A, sizeof(mbedtls_mpi_uint) * limbs);
111
+
112
+ ret = mbedtls_mpi_core_get_mont_r2_unsafe(&RR, &N);
113
+
114
+ if (ret == 0) {
115
+ *X = RR.p;
116
+ RR.p = NULL;
117
+ }
118
+
119
+ cleanup:
120
+ mbedtls_mpi_free(&N);
121
+ mbedtls_mpi_free(&RR);
122
+ ret = (ret != 0) ? MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED : 0;
123
+ return ret;
124
+ }
125
+
126
+ static inline void standard_modulus_setup(mbedtls_mpi_mod_modulus *N,
127
+ const mbedtls_mpi_uint *p,
128
+ size_t p_limbs,
129
+ mbedtls_mpi_mod_rep_selector int_rep)
130
+ {
131
+ N->p = p;
132
+ N->limbs = p_limbs;
133
+ N->bits = mbedtls_mpi_core_bitlen(p, p_limbs);
134
+ N->int_rep = int_rep;
135
+ }
136
+
137
+ int mbedtls_mpi_mod_modulus_setup(mbedtls_mpi_mod_modulus *N,
138
+ const mbedtls_mpi_uint *p,
139
+ size_t p_limbs)
140
+ {
141
+ int ret = 0;
142
+ standard_modulus_setup(N, p, p_limbs, MBEDTLS_MPI_MOD_REP_MONTGOMERY);
143
+ N->rep.mont.mm = mbedtls_mpi_core_montmul_init(N->p);
144
+ ret = set_mont_const_square(&N->rep.mont.rr, N->p, N->limbs);
145
+
146
+ if (ret != 0) {
147
+ mbedtls_mpi_mod_modulus_free(N);
148
+ }
149
+
150
+ return ret;
151
+ }
152
+
153
+ int mbedtls_mpi_mod_optred_modulus_setup(mbedtls_mpi_mod_modulus *N,
154
+ const mbedtls_mpi_uint *p,
155
+ size_t p_limbs,
156
+ mbedtls_mpi_modp_fn modp)
157
+ {
158
+ standard_modulus_setup(N, p, p_limbs, MBEDTLS_MPI_MOD_REP_OPT_RED);
159
+ N->rep.ored.modp = modp;
160
+ return 0;
161
+ }
162
+
163
+ int mbedtls_mpi_mod_mul(mbedtls_mpi_mod_residue *X,
164
+ const mbedtls_mpi_mod_residue *A,
165
+ const mbedtls_mpi_mod_residue *B,
166
+ const mbedtls_mpi_mod_modulus *N)
167
+ {
168
+ if (N->limbs == 0) {
169
+ return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
170
+ }
171
+
172
+ if (X->limbs != N->limbs || A->limbs != N->limbs || B->limbs != N->limbs) {
173
+ return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
174
+ }
175
+
176
+ mbedtls_mpi_uint *T = mbedtls_calloc(N->limbs * 2 + 1, ciL);
177
+ if (T == NULL) {
178
+ return MBEDTLS_ERR_MPI_ALLOC_FAILED;
179
+ }
180
+
181
+ mbedtls_mpi_mod_raw_mul(X->p, A->p, B->p, N, T);
182
+
183
+ mbedtls_free(T);
184
+
185
+ return 0;
186
+ }
187
+
188
+ int mbedtls_mpi_mod_sub(mbedtls_mpi_mod_residue *X,
189
+ const mbedtls_mpi_mod_residue *A,
190
+ const mbedtls_mpi_mod_residue *B,
191
+ const mbedtls_mpi_mod_modulus *N)
192
+ {
193
+ if (X->limbs != N->limbs || A->limbs != N->limbs || B->limbs != N->limbs) {
194
+ return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
195
+ }
196
+
197
+ mbedtls_mpi_mod_raw_sub(X->p, A->p, B->p, N);
198
+
199
+ return 0;
200
+ }
201
+
202
+ static int mbedtls_mpi_mod_inv_mont(mbedtls_mpi_mod_residue *X,
203
+ const mbedtls_mpi_mod_residue *A,
204
+ const mbedtls_mpi_mod_modulus *N,
205
+ mbedtls_mpi_uint *working_memory)
206
+ {
207
+ /* Input already in Montgomery form, so there's little to do */
208
+ mbedtls_mpi_mod_raw_inv_prime(X->p, A->p,
209
+ N->p, N->limbs,
210
+ N->rep.mont.rr,
211
+ working_memory);
212
+ return 0;
213
+ }
214
+
215
+ static int mbedtls_mpi_mod_inv_non_mont(mbedtls_mpi_mod_residue *X,
216
+ const mbedtls_mpi_mod_residue *A,
217
+ const mbedtls_mpi_mod_modulus *N,
218
+ mbedtls_mpi_uint *working_memory)
219
+ {
220
+ /* Need to convert input into Montgomery form */
221
+
222
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
223
+
224
+ mbedtls_mpi_mod_modulus Nmont;
225
+ mbedtls_mpi_mod_modulus_init(&Nmont);
226
+
227
+ MBEDTLS_MPI_CHK(mbedtls_mpi_mod_modulus_setup(&Nmont, N->p, N->limbs));
228
+
229
+ /* We'll use X->p to hold the Montgomery form of the input A->p */
230
+ mbedtls_mpi_core_to_mont_rep(X->p, A->p, Nmont.p, Nmont.limbs,
231
+ Nmont.rep.mont.mm, Nmont.rep.mont.rr,
232
+ working_memory);
233
+
234
+ mbedtls_mpi_mod_raw_inv_prime(X->p, X->p,
235
+ Nmont.p, Nmont.limbs,
236
+ Nmont.rep.mont.rr,
237
+ working_memory);
238
+
239
+ /* And convert back from Montgomery form */
240
+
241
+ mbedtls_mpi_core_from_mont_rep(X->p, X->p, Nmont.p, Nmont.limbs,
242
+ Nmont.rep.mont.mm, working_memory);
243
+
244
+ cleanup:
245
+ mbedtls_mpi_mod_modulus_free(&Nmont);
246
+ return ret;
247
+ }
248
+
249
+ int mbedtls_mpi_mod_inv(mbedtls_mpi_mod_residue *X,
250
+ const mbedtls_mpi_mod_residue *A,
251
+ const mbedtls_mpi_mod_modulus *N)
252
+ {
253
+ if (X->limbs != N->limbs || A->limbs != N->limbs) {
254
+ return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
255
+ }
256
+
257
+ /* Zero has the same value regardless of Montgomery form or not */
258
+ if (mbedtls_mpi_core_check_zero_ct(A->p, A->limbs) == 0) {
259
+ return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
260
+ }
261
+
262
+ size_t working_limbs =
263
+ mbedtls_mpi_mod_raw_inv_prime_working_limbs(N->limbs);
264
+
265
+ mbedtls_mpi_uint *working_memory = mbedtls_calloc(working_limbs,
266
+ sizeof(mbedtls_mpi_uint));
267
+ if (working_memory == NULL) {
268
+ return MBEDTLS_ERR_MPI_ALLOC_FAILED;
269
+ }
270
+
271
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
272
+
273
+ switch (N->int_rep) {
274
+ case MBEDTLS_MPI_MOD_REP_MONTGOMERY:
275
+ ret = mbedtls_mpi_mod_inv_mont(X, A, N, working_memory);
276
+ break;
277
+ case MBEDTLS_MPI_MOD_REP_OPT_RED:
278
+ ret = mbedtls_mpi_mod_inv_non_mont(X, A, N, working_memory);
279
+ break;
280
+ default:
281
+ ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
282
+ break;
283
+ }
284
+
285
+ mbedtls_zeroize_and_free(working_memory,
286
+ working_limbs * sizeof(mbedtls_mpi_uint));
287
+
288
+ return ret;
289
+ }
290
+
291
+ int mbedtls_mpi_mod_add(mbedtls_mpi_mod_residue *X,
292
+ const mbedtls_mpi_mod_residue *A,
293
+ const mbedtls_mpi_mod_residue *B,
294
+ const mbedtls_mpi_mod_modulus *N)
295
+ {
296
+ if (X->limbs != N->limbs || A->limbs != N->limbs || B->limbs != N->limbs) {
297
+ return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
298
+ }
299
+
300
+ mbedtls_mpi_mod_raw_add(X->p, A->p, B->p, N);
301
+
302
+ return 0;
303
+ }
304
+
305
+ int mbedtls_mpi_mod_random(mbedtls_mpi_mod_residue *X,
306
+ mbedtls_mpi_uint min,
307
+ const mbedtls_mpi_mod_modulus *N,
308
+ int (*f_rng)(void *, unsigned char *, size_t),
309
+ void *p_rng)
310
+ {
311
+ if (X->limbs != N->limbs) {
312
+ return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
313
+ }
314
+ return mbedtls_mpi_mod_raw_random(X->p, min, N, f_rng, p_rng);
315
+ }
316
+
317
+ int mbedtls_mpi_mod_read(mbedtls_mpi_mod_residue *r,
318
+ const mbedtls_mpi_mod_modulus *N,
319
+ const unsigned char *buf,
320
+ size_t buflen,
321
+ mbedtls_mpi_mod_ext_rep ext_rep)
322
+ {
323
+ int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
324
+
325
+ /* Do our best to check if r and m have been set up */
326
+ if (r->limbs == 0 || N->limbs == 0) {
327
+ goto cleanup;
328
+ }
329
+ if (r->limbs != N->limbs) {
330
+ goto cleanup;
331
+ }
332
+
333
+ ret = mbedtls_mpi_mod_raw_read(r->p, N, buf, buflen, ext_rep);
334
+ if (ret != 0) {
335
+ goto cleanup;
336
+ }
337
+
338
+ r->limbs = N->limbs;
339
+
340
+ ret = mbedtls_mpi_mod_raw_canonical_to_modulus_rep(r->p, N);
341
+
342
+ cleanup:
343
+ return ret;
344
+ }
345
+
346
+ int mbedtls_mpi_mod_write(const mbedtls_mpi_mod_residue *r,
347
+ const mbedtls_mpi_mod_modulus *N,
348
+ unsigned char *buf,
349
+ size_t buflen,
350
+ mbedtls_mpi_mod_ext_rep ext_rep)
351
+ {
352
+ /* Do our best to check if r and m have been set up */
353
+ if (r->limbs == 0 || N->limbs == 0) {
354
+ return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
355
+ }
356
+ if (r->limbs != N->limbs) {
357
+ return MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
358
+ }
359
+
360
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
361
+ mbedtls_mpi_uint *working_memory = r->p;
362
+ size_t working_memory_len = sizeof(mbedtls_mpi_uint) * r->limbs;
363
+
364
+ if (N->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) {
365
+
366
+ working_memory = mbedtls_calloc(r->limbs, sizeof(mbedtls_mpi_uint));
367
+
368
+ if (working_memory == NULL) {
369
+ ret = MBEDTLS_ERR_MPI_ALLOC_FAILED;
370
+ goto cleanup;
371
+ }
372
+
373
+ memcpy(working_memory, r->p, working_memory_len);
374
+
375
+ ret = mbedtls_mpi_mod_raw_from_mont_rep(working_memory, N);
376
+ if (ret != 0) {
377
+ goto cleanup;
378
+ }
379
+ }
380
+
381
+ ret = mbedtls_mpi_mod_raw_write(working_memory, N, buf, buflen, ext_rep);
382
+
383
+ cleanup:
384
+
385
+ if (N->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY &&
386
+ working_memory != NULL) {
387
+
388
+ mbedtls_zeroize_and_free(working_memory, working_memory_len);
389
+ }
390
+
391
+ return ret;
392
+ }
393
+
394
+ #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ECP_WITH_MPI_UINT */