@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,188 @@
1
+ /**
2
+ * \file rsa_internal.h
3
+ *
4
+ * \brief Internal-only RSA public-key cryptosystem API.
5
+ *
6
+ * This file declares RSA-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_RSA_INTERNAL_H
15
+ #define MBEDTLS_RSA_INTERNAL_H
16
+
17
+ #include "mbedtls/rsa.h"
18
+ #include "mbedtls/asn1.h"
19
+
20
+ /**
21
+ * \brief Parse a PKCS#1 (ASN.1) encoded private RSA key.
22
+ *
23
+ * \param rsa The RSA context where parsed data will be stored.
24
+ * \param key The buffer that contains the key.
25
+ * \param keylen The length of the key buffer in bytes.
26
+ *
27
+ * \return 0 on success.
28
+ * \return MBEDTLS_ERR_ASN1_xxx in case of ASN.1 parsing errors.
29
+ * \return MBEDTLS_ERR_RSA_xxx in case of RSA internal failures while
30
+ * parsing data.
31
+ * \return MBEDTLS_ERR_RSA_KEY_CHECK_FAILED if validity checks on the
32
+ * provided key fail.
33
+ */
34
+ int mbedtls_rsa_parse_key(mbedtls_rsa_context *rsa, const unsigned char *key, size_t keylen);
35
+
36
+ /**
37
+ * \brief Parse a PKCS#1 (ASN.1) encoded public RSA key.
38
+ *
39
+ * \param rsa The RSA context where parsed data will be stored.
40
+ * \param key The buffer that contains the key.
41
+ * \param keylen The length of the key buffer in bytes.
42
+ *
43
+ * \return 0 on success.
44
+ * \return MBEDTLS_ERR_ASN1_xxx in case of ASN.1 parsing errors.
45
+ * \return MBEDTLS_ERR_RSA_xxx in case of RSA internal failures while
46
+ * parsing data.
47
+ * \return MBEDTLS_ERR_RSA_KEY_CHECK_FAILED if validity checks on the
48
+ * provided key fail.
49
+ */
50
+ int mbedtls_rsa_parse_pubkey(mbedtls_rsa_context *rsa, const unsigned char *key, size_t keylen);
51
+
52
+ /**
53
+ * \brief Write a PKCS#1 (ASN.1) encoded private RSA key.
54
+ *
55
+ * \param rsa The RSA context which contains the data to be written.
56
+ * \param start Beginning of the buffer that will be filled with the
57
+ * private key.
58
+ * \param p End of the buffer that will be filled with the private key.
59
+ * On successful return, the referenced pointer will be
60
+ * updated in order to point to the beginning of written data.
61
+ *
62
+ * \return On success, the number of bytes written to the output buffer
63
+ * (i.e. a value > 0).
64
+ * \return MBEDTLS_ERR_RSA_BAD_INPUT_DATA if the RSA context does not
65
+ * contain a valid key pair.
66
+ * \return MBEDTLS_ERR_ASN1_xxx in case of failure while writing to the
67
+ * output buffer.
68
+ *
69
+ * \note The output buffer is filled backward, i.e. starting from its
70
+ * end and moving toward its start.
71
+ */
72
+ int mbedtls_rsa_write_key(const mbedtls_rsa_context *rsa, unsigned char *start,
73
+ unsigned char **p);
74
+
75
+ /**
76
+ * \brief Parse a PKCS#1 (ASN.1) encoded public RSA key.
77
+ *
78
+ * \param rsa The RSA context which contains the data to be written.
79
+ * \param start Beginning of the buffer that will be filled with the
80
+ * private key.
81
+ * \param p End of the buffer that will be filled with the private key.
82
+ * On successful return, the referenced pointer will be
83
+ * updated in order to point to the beginning of written data.
84
+ *
85
+ * \return On success, the number of bytes written to the output buffer
86
+ * (i.e. a value > 0).
87
+ * \return MBEDTLS_ERR_RSA_BAD_INPUT_DATA if the RSA context does not
88
+ * contain a valid public key.
89
+ * \return MBEDTLS_ERR_ASN1_xxx in case of failure while writing to the
90
+ * output buffer.
91
+ *
92
+ * \note The output buffer is filled backward, i.e. starting from its
93
+ * end and moving toward its start.
94
+ */
95
+ int mbedtls_rsa_write_pubkey(const mbedtls_rsa_context *rsa, unsigned char *start,
96
+ unsigned char **p);
97
+
98
+ #if defined(MBEDTLS_PKCS1_V21)
99
+ /**
100
+ * \brief This function is analogue to \c mbedtls_rsa_rsassa_pss_sign().
101
+ * The only difference between them is that this function is more flexible
102
+ * on the parameters of \p ctx that are set with \c mbedtls_rsa_set_padding().
103
+ *
104
+ * \note Compared to its counterpart, this function:
105
+ * - does not check the padding setting of \p ctx.
106
+ * - allows the hash_id of \p ctx to be MBEDTLS_MD_NONE,
107
+ * in which case it uses \p md_alg as the hash_id.
108
+ *
109
+ * \note Refer to \c mbedtls_rsa_rsassa_pss_sign() for a description
110
+ * of the functioning and parameters of this function.
111
+ */
112
+ int mbedtls_rsa_rsassa_pss_sign_no_mode_check(mbedtls_rsa_context *ctx,
113
+ int (*f_rng)(void *, unsigned char *, size_t),
114
+ void *p_rng,
115
+ mbedtls_md_type_t md_alg,
116
+ unsigned int hashlen,
117
+ const unsigned char *hash,
118
+ unsigned char *sig);
119
+ #endif /* MBEDTLS_PKCS1_V21 */
120
+
121
+ /* This would normally be in rsa_invasive.h but it didn't exist before 3.6
122
+ * became an LTS, and I'd rather not add files in LTS if it can be avoided. */
123
+ #if defined(MBEDTLS_TEST_HOOKS)
124
+ #if defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_RSA_ALT)
125
+
126
+ /** This function performs the unpadding part of a PKCS#1 v1.5 decryption
127
+ * operation (EME-PKCS1-v1_5 decoding).
128
+ *
129
+ * \note The return value from this function is a sensitive value
130
+ * (this is unusual). #MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE shouldn't happen
131
+ * in a well-written application, but 0 vs #MBEDTLS_ERR_RSA_INVALID_PADDING
132
+ * is often a situation that an attacker can provoke and leaking which
133
+ * one is the result is precisely the information the attacker wants.
134
+ *
135
+ * \param input The input buffer which is the payload inside PKCS#1v1.5
136
+ * encryption padding, called the "encoded message EM"
137
+ * by the terminology.
138
+ * \param ilen The length of the payload in the \p input buffer.
139
+ * \param output The buffer for the payload, called "message M" by the
140
+ * PKCS#1 terminology. This must be a writable buffer of
141
+ * length \p output_max_len bytes.
142
+ * \param olen The address at which to store the length of
143
+ * the payload. This must not be \c NULL.
144
+ * \param output_max_len The length in bytes of the output buffer \p output.
145
+ *
146
+ * \return \c 0 on success.
147
+ * \return #MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE
148
+ * The output buffer is too small for the unpadded payload.
149
+ * \return #MBEDTLS_ERR_RSA_INVALID_PADDING
150
+ * The input doesn't contain properly formatted padding.
151
+ */
152
+ MBEDTLS_STATIC_TESTABLE int mbedtls_ct_rsaes_pkcs1_v15_unpadding(
153
+ unsigned char *input, size_t ilen,
154
+ unsigned char *output, size_t output_max_len, size_t *olen);
155
+ #endif /* MBEDTLS_PKCS1_V15 && MBEDTLS_RSA_C && ! MBEDTLS_RSA_ALT */
156
+ #endif /* MBEDTLS_TEST_HOOKS */
157
+
158
+ #if defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C)
159
+ /** Decompose sensitive return values out of a return code, in constant time.
160
+ *
161
+ * \param invalid_padding_in The value of \p combined_ret that indicates
162
+ * invalid padding.
163
+ * \param invalid_padding_out The value to set \p problem to in case of
164
+ * invalid padding.
165
+ * \param output_too_large_in The value of \p combined_ret that indicates
166
+ * an insufficient output buffer size.
167
+ * \param output_too_large_out The value to set \p problem to in case of
168
+ * an insufficient output buffer size.
169
+ * \param combined_ret The value to decompose.
170
+ * \param[out] problem On output:
171
+ * - \p invalid_padding_out,
172
+ * if \p combined_ret = \p invalid_padding_in;
173
+ * - \p output_too_large_out,
174
+ * if \p combined_ret = \p output_too_large_in;
175
+ * - otherwise \c 0.
176
+ *
177
+ * \return - \c 0 if \p combined_ret = \p invalid_padding_in
178
+ * or \p combined_ret = \p output_too_large_in;
179
+ * - otherwise \c combined_ret.
180
+ */
181
+ int mbedtls_rsa_decrypt_decompose_ret(
182
+ int invalid_padding_in, int invalid_padding_out,
183
+ int output_too_large_in, int output_too_large_out,
184
+ int combined_ret,
185
+ int *problem);
186
+ #endif
187
+
188
+ #endif /* rsa_internal.h */
@@ -0,0 +1,480 @@
1
+ /*
2
+ * FIPS-180-1 compliant SHA-1 implementation
3
+ *
4
+ * Copyright The Mbed TLS Contributors
5
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
6
+ */
7
+ /*
8
+ * The SHA-1 standard was published by NIST in 1993.
9
+ *
10
+ * http://www.itl.nist.gov/fipspubs/fip180-1.htm
11
+ */
12
+
13
+ #include "common.h"
14
+
15
+ #if defined(MBEDTLS_SHA1_C)
16
+
17
+ #include "mbedtls/sha1.h"
18
+ #include "mbedtls/platform_util.h"
19
+ #include "mbedtls/error.h"
20
+
21
+ #include <string.h>
22
+
23
+ #include "mbedtls/platform.h"
24
+
25
+ #if !defined(MBEDTLS_SHA1_ALT)
26
+
27
+ void mbedtls_sha1_init(mbedtls_sha1_context *ctx)
28
+ {
29
+ memset(ctx, 0, sizeof(mbedtls_sha1_context));
30
+ }
31
+
32
+ void mbedtls_sha1_free(mbedtls_sha1_context *ctx)
33
+ {
34
+ if (ctx == NULL) {
35
+ return;
36
+ }
37
+
38
+ mbedtls_platform_zeroize(ctx, sizeof(mbedtls_sha1_context));
39
+ }
40
+
41
+ void mbedtls_sha1_clone(mbedtls_sha1_context *dst,
42
+ const mbedtls_sha1_context *src)
43
+ {
44
+ *dst = *src;
45
+ }
46
+
47
+ /*
48
+ * SHA-1 context setup
49
+ */
50
+ int mbedtls_sha1_starts(mbedtls_sha1_context *ctx)
51
+ {
52
+ ctx->total[0] = 0;
53
+ ctx->total[1] = 0;
54
+
55
+ ctx->state[0] = 0x67452301;
56
+ ctx->state[1] = 0xEFCDAB89;
57
+ ctx->state[2] = 0x98BADCFE;
58
+ ctx->state[3] = 0x10325476;
59
+ ctx->state[4] = 0xC3D2E1F0;
60
+
61
+ return 0;
62
+ }
63
+
64
+ #if !defined(MBEDTLS_SHA1_PROCESS_ALT)
65
+ int mbedtls_internal_sha1_process(mbedtls_sha1_context *ctx,
66
+ const unsigned char data[64])
67
+ {
68
+ struct {
69
+ uint32_t temp, W[16], A, B, C, D, E;
70
+ } local;
71
+
72
+ local.W[0] = MBEDTLS_GET_UINT32_BE(data, 0);
73
+ local.W[1] = MBEDTLS_GET_UINT32_BE(data, 4);
74
+ local.W[2] = MBEDTLS_GET_UINT32_BE(data, 8);
75
+ local.W[3] = MBEDTLS_GET_UINT32_BE(data, 12);
76
+ local.W[4] = MBEDTLS_GET_UINT32_BE(data, 16);
77
+ local.W[5] = MBEDTLS_GET_UINT32_BE(data, 20);
78
+ local.W[6] = MBEDTLS_GET_UINT32_BE(data, 24);
79
+ local.W[7] = MBEDTLS_GET_UINT32_BE(data, 28);
80
+ local.W[8] = MBEDTLS_GET_UINT32_BE(data, 32);
81
+ local.W[9] = MBEDTLS_GET_UINT32_BE(data, 36);
82
+ local.W[10] = MBEDTLS_GET_UINT32_BE(data, 40);
83
+ local.W[11] = MBEDTLS_GET_UINT32_BE(data, 44);
84
+ local.W[12] = MBEDTLS_GET_UINT32_BE(data, 48);
85
+ local.W[13] = MBEDTLS_GET_UINT32_BE(data, 52);
86
+ local.W[14] = MBEDTLS_GET_UINT32_BE(data, 56);
87
+ local.W[15] = MBEDTLS_GET_UINT32_BE(data, 60);
88
+
89
+ #define S(x, n) (((x) << (n)) | (((x) & 0xFFFFFFFF) >> (32 - (n))))
90
+
91
+ #define R(t) \
92
+ ( \
93
+ local.temp = local.W[((t) - 3) & 0x0F] ^ \
94
+ local.W[((t) - 8) & 0x0F] ^ \
95
+ local.W[((t) - 14) & 0x0F] ^ \
96
+ local.W[(t) & 0x0F], \
97
+ (local.W[(t) & 0x0F] = S(local.temp, 1)) \
98
+ )
99
+
100
+ #define P(a, b, c, d, e, x) \
101
+ do \
102
+ { \
103
+ (e) += S((a), 5) + F((b), (c), (d)) + K + (x); \
104
+ (b) = S((b), 30); \
105
+ } while (0)
106
+
107
+ local.A = ctx->state[0];
108
+ local.B = ctx->state[1];
109
+ local.C = ctx->state[2];
110
+ local.D = ctx->state[3];
111
+ local.E = ctx->state[4];
112
+
113
+ #define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z))))
114
+ #define K 0x5A827999
115
+
116
+ P(local.A, local.B, local.C, local.D, local.E, local.W[0]);
117
+ P(local.E, local.A, local.B, local.C, local.D, local.W[1]);
118
+ P(local.D, local.E, local.A, local.B, local.C, local.W[2]);
119
+ P(local.C, local.D, local.E, local.A, local.B, local.W[3]);
120
+ P(local.B, local.C, local.D, local.E, local.A, local.W[4]);
121
+ P(local.A, local.B, local.C, local.D, local.E, local.W[5]);
122
+ P(local.E, local.A, local.B, local.C, local.D, local.W[6]);
123
+ P(local.D, local.E, local.A, local.B, local.C, local.W[7]);
124
+ P(local.C, local.D, local.E, local.A, local.B, local.W[8]);
125
+ P(local.B, local.C, local.D, local.E, local.A, local.W[9]);
126
+ P(local.A, local.B, local.C, local.D, local.E, local.W[10]);
127
+ P(local.E, local.A, local.B, local.C, local.D, local.W[11]);
128
+ P(local.D, local.E, local.A, local.B, local.C, local.W[12]);
129
+ P(local.C, local.D, local.E, local.A, local.B, local.W[13]);
130
+ P(local.B, local.C, local.D, local.E, local.A, local.W[14]);
131
+ P(local.A, local.B, local.C, local.D, local.E, local.W[15]);
132
+ P(local.E, local.A, local.B, local.C, local.D, R(16));
133
+ P(local.D, local.E, local.A, local.B, local.C, R(17));
134
+ P(local.C, local.D, local.E, local.A, local.B, R(18));
135
+ P(local.B, local.C, local.D, local.E, local.A, R(19));
136
+
137
+ #undef K
138
+ #undef F
139
+
140
+ #define F(x, y, z) ((x) ^ (y) ^ (z))
141
+ #define K 0x6ED9EBA1
142
+
143
+ P(local.A, local.B, local.C, local.D, local.E, R(20));
144
+ P(local.E, local.A, local.B, local.C, local.D, R(21));
145
+ P(local.D, local.E, local.A, local.B, local.C, R(22));
146
+ P(local.C, local.D, local.E, local.A, local.B, R(23));
147
+ P(local.B, local.C, local.D, local.E, local.A, R(24));
148
+ P(local.A, local.B, local.C, local.D, local.E, R(25));
149
+ P(local.E, local.A, local.B, local.C, local.D, R(26));
150
+ P(local.D, local.E, local.A, local.B, local.C, R(27));
151
+ P(local.C, local.D, local.E, local.A, local.B, R(28));
152
+ P(local.B, local.C, local.D, local.E, local.A, R(29));
153
+ P(local.A, local.B, local.C, local.D, local.E, R(30));
154
+ P(local.E, local.A, local.B, local.C, local.D, R(31));
155
+ P(local.D, local.E, local.A, local.B, local.C, R(32));
156
+ P(local.C, local.D, local.E, local.A, local.B, R(33));
157
+ P(local.B, local.C, local.D, local.E, local.A, R(34));
158
+ P(local.A, local.B, local.C, local.D, local.E, R(35));
159
+ P(local.E, local.A, local.B, local.C, local.D, R(36));
160
+ P(local.D, local.E, local.A, local.B, local.C, R(37));
161
+ P(local.C, local.D, local.E, local.A, local.B, R(38));
162
+ P(local.B, local.C, local.D, local.E, local.A, R(39));
163
+
164
+ #undef K
165
+ #undef F
166
+
167
+ #define F(x, y, z) (((x) & (y)) | ((z) & ((x) | (y))))
168
+ #define K 0x8F1BBCDC
169
+
170
+ P(local.A, local.B, local.C, local.D, local.E, R(40));
171
+ P(local.E, local.A, local.B, local.C, local.D, R(41));
172
+ P(local.D, local.E, local.A, local.B, local.C, R(42));
173
+ P(local.C, local.D, local.E, local.A, local.B, R(43));
174
+ P(local.B, local.C, local.D, local.E, local.A, R(44));
175
+ P(local.A, local.B, local.C, local.D, local.E, R(45));
176
+ P(local.E, local.A, local.B, local.C, local.D, R(46));
177
+ P(local.D, local.E, local.A, local.B, local.C, R(47));
178
+ P(local.C, local.D, local.E, local.A, local.B, R(48));
179
+ P(local.B, local.C, local.D, local.E, local.A, R(49));
180
+ P(local.A, local.B, local.C, local.D, local.E, R(50));
181
+ P(local.E, local.A, local.B, local.C, local.D, R(51));
182
+ P(local.D, local.E, local.A, local.B, local.C, R(52));
183
+ P(local.C, local.D, local.E, local.A, local.B, R(53));
184
+ P(local.B, local.C, local.D, local.E, local.A, R(54));
185
+ P(local.A, local.B, local.C, local.D, local.E, R(55));
186
+ P(local.E, local.A, local.B, local.C, local.D, R(56));
187
+ P(local.D, local.E, local.A, local.B, local.C, R(57));
188
+ P(local.C, local.D, local.E, local.A, local.B, R(58));
189
+ P(local.B, local.C, local.D, local.E, local.A, R(59));
190
+
191
+ #undef K
192
+ #undef F
193
+
194
+ #define F(x, y, z) ((x) ^ (y) ^ (z))
195
+ #define K 0xCA62C1D6
196
+
197
+ P(local.A, local.B, local.C, local.D, local.E, R(60));
198
+ P(local.E, local.A, local.B, local.C, local.D, R(61));
199
+ P(local.D, local.E, local.A, local.B, local.C, R(62));
200
+ P(local.C, local.D, local.E, local.A, local.B, R(63));
201
+ P(local.B, local.C, local.D, local.E, local.A, R(64));
202
+ P(local.A, local.B, local.C, local.D, local.E, R(65));
203
+ P(local.E, local.A, local.B, local.C, local.D, R(66));
204
+ P(local.D, local.E, local.A, local.B, local.C, R(67));
205
+ P(local.C, local.D, local.E, local.A, local.B, R(68));
206
+ P(local.B, local.C, local.D, local.E, local.A, R(69));
207
+ P(local.A, local.B, local.C, local.D, local.E, R(70));
208
+ P(local.E, local.A, local.B, local.C, local.D, R(71));
209
+ P(local.D, local.E, local.A, local.B, local.C, R(72));
210
+ P(local.C, local.D, local.E, local.A, local.B, R(73));
211
+ P(local.B, local.C, local.D, local.E, local.A, R(74));
212
+ P(local.A, local.B, local.C, local.D, local.E, R(75));
213
+ P(local.E, local.A, local.B, local.C, local.D, R(76));
214
+ P(local.D, local.E, local.A, local.B, local.C, R(77));
215
+ P(local.C, local.D, local.E, local.A, local.B, R(78));
216
+ P(local.B, local.C, local.D, local.E, local.A, R(79));
217
+
218
+ #undef K
219
+ #undef F
220
+
221
+ ctx->state[0] += local.A;
222
+ ctx->state[1] += local.B;
223
+ ctx->state[2] += local.C;
224
+ ctx->state[3] += local.D;
225
+ ctx->state[4] += local.E;
226
+
227
+ /* Zeroise buffers and variables to clear sensitive data from memory. */
228
+ mbedtls_platform_zeroize(&local, sizeof(local));
229
+
230
+ return 0;
231
+ }
232
+
233
+ #endif /* !MBEDTLS_SHA1_PROCESS_ALT */
234
+
235
+ /*
236
+ * SHA-1 process buffer
237
+ */
238
+ int mbedtls_sha1_update(mbedtls_sha1_context *ctx,
239
+ const unsigned char *input,
240
+ size_t ilen)
241
+ {
242
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
243
+ size_t fill;
244
+ uint32_t left;
245
+
246
+ if (ilen == 0) {
247
+ return 0;
248
+ }
249
+
250
+ left = ctx->total[0] & 0x3F;
251
+ fill = 64 - left;
252
+
253
+ ctx->total[0] += (uint32_t) ilen;
254
+ ctx->total[0] &= 0xFFFFFFFF;
255
+
256
+ if (ctx->total[0] < (uint32_t) ilen) {
257
+ ctx->total[1]++;
258
+ }
259
+
260
+ if (left && ilen >= fill) {
261
+ memcpy((void *) (ctx->buffer + left), input, fill);
262
+
263
+ if ((ret = mbedtls_internal_sha1_process(ctx, ctx->buffer)) != 0) {
264
+ return ret;
265
+ }
266
+
267
+ input += fill;
268
+ ilen -= fill;
269
+ left = 0;
270
+ }
271
+
272
+ while (ilen >= 64) {
273
+ if ((ret = mbedtls_internal_sha1_process(ctx, input)) != 0) {
274
+ return ret;
275
+ }
276
+
277
+ input += 64;
278
+ ilen -= 64;
279
+ }
280
+
281
+ if (ilen > 0) {
282
+ memcpy((void *) (ctx->buffer + left), input, ilen);
283
+ }
284
+
285
+ return 0;
286
+ }
287
+
288
+ /*
289
+ * SHA-1 final digest
290
+ */
291
+ int mbedtls_sha1_finish(mbedtls_sha1_context *ctx,
292
+ unsigned char output[20])
293
+ {
294
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
295
+ uint32_t used;
296
+ uint32_t high, low;
297
+
298
+ /*
299
+ * Add padding: 0x80 then 0x00 until 8 bytes remain for the length
300
+ */
301
+ used = ctx->total[0] & 0x3F;
302
+
303
+ ctx->buffer[used++] = 0x80;
304
+
305
+ if (used <= 56) {
306
+ /* Enough room for padding + length in current block */
307
+ memset(ctx->buffer + used, 0, 56 - used);
308
+ } else {
309
+ /* We'll need an extra block */
310
+ memset(ctx->buffer + used, 0, 64 - used);
311
+
312
+ if ((ret = mbedtls_internal_sha1_process(ctx, ctx->buffer)) != 0) {
313
+ goto exit;
314
+ }
315
+
316
+ memset(ctx->buffer, 0, 56);
317
+ }
318
+
319
+ /*
320
+ * Add message length
321
+ */
322
+ high = (ctx->total[0] >> 29)
323
+ | (ctx->total[1] << 3);
324
+ low = (ctx->total[0] << 3);
325
+
326
+ MBEDTLS_PUT_UINT32_BE(high, ctx->buffer, 56);
327
+ MBEDTLS_PUT_UINT32_BE(low, ctx->buffer, 60);
328
+
329
+ if ((ret = mbedtls_internal_sha1_process(ctx, ctx->buffer)) != 0) {
330
+ goto exit;
331
+ }
332
+
333
+ /*
334
+ * Output final state
335
+ */
336
+ MBEDTLS_PUT_UINT32_BE(ctx->state[0], output, 0);
337
+ MBEDTLS_PUT_UINT32_BE(ctx->state[1], output, 4);
338
+ MBEDTLS_PUT_UINT32_BE(ctx->state[2], output, 8);
339
+ MBEDTLS_PUT_UINT32_BE(ctx->state[3], output, 12);
340
+ MBEDTLS_PUT_UINT32_BE(ctx->state[4], output, 16);
341
+
342
+ ret = 0;
343
+
344
+ exit:
345
+ mbedtls_sha1_free(ctx);
346
+ return ret;
347
+ }
348
+
349
+ #endif /* !MBEDTLS_SHA1_ALT */
350
+
351
+ /*
352
+ * output = SHA-1( input buffer )
353
+ */
354
+ int mbedtls_sha1(const unsigned char *input,
355
+ size_t ilen,
356
+ unsigned char output[20])
357
+ {
358
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
359
+ mbedtls_sha1_context ctx;
360
+
361
+ mbedtls_sha1_init(&ctx);
362
+
363
+ if ((ret = mbedtls_sha1_starts(&ctx)) != 0) {
364
+ goto exit;
365
+ }
366
+
367
+ if ((ret = mbedtls_sha1_update(&ctx, input, ilen)) != 0) {
368
+ goto exit;
369
+ }
370
+
371
+ if ((ret = mbedtls_sha1_finish(&ctx, output)) != 0) {
372
+ goto exit;
373
+ }
374
+
375
+ exit:
376
+ mbedtls_sha1_free(&ctx);
377
+ return ret;
378
+ }
379
+
380
+ #if defined(MBEDTLS_SELF_TEST)
381
+ /*
382
+ * FIPS-180-1 test vectors
383
+ */
384
+ static const unsigned char sha1_test_buf[3][57] =
385
+ {
386
+ { "abc" },
387
+ { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" },
388
+ { "" }
389
+ };
390
+
391
+ static const size_t sha1_test_buflen[3] =
392
+ {
393
+ 3, 56, 1000
394
+ };
395
+
396
+ static const unsigned char sha1_test_sum[3][20] =
397
+ {
398
+ { 0xA9, 0x99, 0x3E, 0x36, 0x47, 0x06, 0x81, 0x6A, 0xBA, 0x3E,
399
+ 0x25, 0x71, 0x78, 0x50, 0xC2, 0x6C, 0x9C, 0xD0, 0xD8, 0x9D },
400
+ { 0x84, 0x98, 0x3E, 0x44, 0x1C, 0x3B, 0xD2, 0x6E, 0xBA, 0xAE,
401
+ 0x4A, 0xA1, 0xF9, 0x51, 0x29, 0xE5, 0xE5, 0x46, 0x70, 0xF1 },
402
+ { 0x34, 0xAA, 0x97, 0x3C, 0xD4, 0xC4, 0xDA, 0xA4, 0xF6, 0x1E,
403
+ 0xEB, 0x2B, 0xDB, 0xAD, 0x27, 0x31, 0x65, 0x34, 0x01, 0x6F }
404
+ };
405
+
406
+ /*
407
+ * Checkup routine
408
+ */
409
+ int mbedtls_sha1_self_test(int verbose)
410
+ {
411
+ int i, j, buflen, ret = 0;
412
+ unsigned char buf[1024];
413
+ unsigned char sha1sum[20];
414
+ mbedtls_sha1_context ctx;
415
+
416
+ mbedtls_sha1_init(&ctx);
417
+
418
+ /*
419
+ * SHA-1
420
+ */
421
+ for (i = 0; i < 3; i++) {
422
+ if (verbose != 0) {
423
+ mbedtls_printf(" SHA-1 test #%d: ", i + 1);
424
+ }
425
+
426
+ if ((ret = mbedtls_sha1_starts(&ctx)) != 0) {
427
+ goto fail;
428
+ }
429
+
430
+ if (i == 2) {
431
+ memset(buf, 'a', buflen = 1000);
432
+
433
+ for (j = 0; j < 1000; j++) {
434
+ ret = mbedtls_sha1_update(&ctx, buf, buflen);
435
+ if (ret != 0) {
436
+ goto fail;
437
+ }
438
+ }
439
+ } else {
440
+ ret = mbedtls_sha1_update(&ctx, sha1_test_buf[i],
441
+ sha1_test_buflen[i]);
442
+ if (ret != 0) {
443
+ goto fail;
444
+ }
445
+ }
446
+
447
+ if ((ret = mbedtls_sha1_finish(&ctx, sha1sum)) != 0) {
448
+ goto fail;
449
+ }
450
+
451
+ if (memcmp(sha1sum, sha1_test_sum[i], 20) != 0) {
452
+ ret = 1;
453
+ goto fail;
454
+ }
455
+
456
+ if (verbose != 0) {
457
+ mbedtls_printf("passed\n");
458
+ }
459
+ }
460
+
461
+ if (verbose != 0) {
462
+ mbedtls_printf("\n");
463
+ }
464
+
465
+ goto exit;
466
+
467
+ fail:
468
+ if (verbose != 0) {
469
+ mbedtls_printf("failed\n");
470
+ }
471
+
472
+ exit:
473
+ mbedtls_sha1_free(&ctx);
474
+
475
+ return ret;
476
+ }
477
+
478
+ #endif /* MBEDTLS_SELF_TEST */
479
+
480
+ #endif /* MBEDTLS_SHA1_C */