@scriptc/runtime 0.0.0 → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. package/LICENSE +202 -0
  2. package/package.json +16 -6
  3. package/src/scr_array.c +488 -0
  4. package/src/scr_assert.c +1393 -0
  5. package/src/scr_async.c +2593 -0
  6. package/src/scr_async_dyn.c +607 -0
  7. package/src/scr_bytes.c +1425 -0
  8. package/src/scr_bytes_io.c +161 -0
  9. package/src/scr_child.c +3587 -0
  10. package/src/scr_closure.c +214 -0
  11. package/src/scr_console.c +143 -0
  12. package/src/scr_cycle.c +218 -0
  13. package/src/scr_dc.c +805 -0
  14. package/src/scr_dgram.c +1007 -0
  15. package/src/scr_dyn_handle.c +154 -0
  16. package/src/scr_dyn_invoke.c +644 -0
  17. package/src/scr_error.c +332 -0
  18. package/src/scr_events.c +714 -0
  19. package/src/scr_events_emitter.c +699 -0
  20. package/src/scr_exception.c +242 -0
  21. package/src/scr_fetch.c +1130 -0
  22. package/src/scr_fetch_curl.c +654 -0
  23. package/src/scr_http.c +3482 -0
  24. package/src/scr_http2.c +3030 -0
  25. package/src/scr_inspect.c +803 -0
  26. package/src/scr_inspect_island.c +51 -0
  27. package/src/scr_island.c +9363 -0
  28. package/src/scr_json.c +2151 -0
  29. package/src/scr_lib.c +3612 -0
  30. package/src/scr_loop_epoll.c +241 -0
  31. package/src/scr_loop_kqueue.c +121 -0
  32. package/src/scr_loop_wsapoll.c +208 -0
  33. package/src/scr_map.c +591 -0
  34. package/src/scr_net.c +3017 -0
  35. package/src/scr_net_island.c +458 -0
  36. package/src/scr_number.c +115 -0
  37. package/src/scr_object.c +25 -0
  38. package/src/scr_path.c +1266 -0
  39. package/src/scr_platform.h +119 -0
  40. package/src/scr_readline.c +287 -0
  41. package/src/scr_regex.c +1080 -0
  42. package/src/scr_runtime.h +5036 -0
  43. package/src/scr_stream.c +2877 -0
  44. package/src/scr_string.c +1176 -0
  45. package/src/scr_symbol.c +132 -0
  46. package/src/scr_test.c +662 -0
  47. package/src/scr_tls.c +1520 -0
  48. package/src/scr_union.c +105 -0
  49. package/src/scr_url.c +911 -0
  50. package/src/scr_url_internal.h +29 -0
  51. package/src/scr_url_params.c +561 -0
  52. package/src/scr_watch.c +568 -0
  53. package/src/scr_web.c +1778 -0
  54. package/src/scr_win.c +76 -0
  55. package/src/scr_zlib.c +197 -0
  56. package/src/scr_zlib_island.c +15 -0
  57. package/vendor/README.md +52 -0
  58. package/vendor/curl/COPYRIGHT +534 -0
  59. package/vendor/curl/include/curl/curl.h +3214 -0
  60. package/vendor/curl/include/curl/curlver.h +79 -0
  61. package/vendor/curl/include/curl/easy.h +125 -0
  62. package/vendor/curl/include/curl/header.h +74 -0
  63. package/vendor/curl/include/curl/mprintf.h +52 -0
  64. package/vendor/curl/include/curl/multi.h +460 -0
  65. package/vendor/curl/include/curl/options.h +70 -0
  66. package/vendor/curl/include/curl/stdcheaders.h +35 -0
  67. package/vendor/curl/include/curl/system.h +508 -0
  68. package/vendor/curl/include/curl/typecheck-gcc.h +716 -0
  69. package/vendor/curl/include/curl/urlapi.h +149 -0
  70. package/vendor/curl/include/curl/websockets.h +84 -0
  71. package/vendor/mbedtls/LICENSE +553 -0
  72. package/vendor/mbedtls/include/CMakeLists.txt +22 -0
  73. package/vendor/mbedtls/include/mbedtls/aes.h +631 -0
  74. package/vendor/mbedtls/include/mbedtls/aria.h +343 -0
  75. package/vendor/mbedtls/include/mbedtls/asn1.h +642 -0
  76. package/vendor/mbedtls/include/mbedtls/asn1write.h +390 -0
  77. package/vendor/mbedtls/include/mbedtls/base64.h +82 -0
  78. package/vendor/mbedtls/include/mbedtls/bignum.h +1088 -0
  79. package/vendor/mbedtls/include/mbedtls/block_cipher.h +76 -0
  80. package/vendor/mbedtls/include/mbedtls/build_info.h +194 -0
  81. package/vendor/mbedtls/include/mbedtls/camellia.h +305 -0
  82. package/vendor/mbedtls/include/mbedtls/ccm.h +526 -0
  83. package/vendor/mbedtls/include/mbedtls/chacha20.h +209 -0
  84. package/vendor/mbedtls/include/mbedtls/chachapoly.h +351 -0
  85. package/vendor/mbedtls/include/mbedtls/check_config.h +1149 -0
  86. package/vendor/mbedtls/include/mbedtls/cipher.h +1250 -0
  87. package/vendor/mbedtls/include/mbedtls/cmac.h +246 -0
  88. package/vendor/mbedtls/include/mbedtls/compat-2.x.h +46 -0
  89. package/vendor/mbedtls/include/mbedtls/config_adjust_legacy_crypto.h +578 -0
  90. package/vendor/mbedtls/include/mbedtls/config_adjust_legacy_from_psa.h +873 -0
  91. package/vendor/mbedtls/include/mbedtls/config_adjust_psa_from_legacy.h +359 -0
  92. package/vendor/mbedtls/include/mbedtls/config_adjust_psa_superset_legacy.h +145 -0
  93. package/vendor/mbedtls/include/mbedtls/config_adjust_ssl.h +91 -0
  94. package/vendor/mbedtls/include/mbedtls/config_adjust_x509.h +35 -0
  95. package/vendor/mbedtls/include/mbedtls/config_psa.h +61 -0
  96. package/vendor/mbedtls/include/mbedtls/constant_time.h +36 -0
  97. package/vendor/mbedtls/include/mbedtls/ctr_drbg.h +596 -0
  98. package/vendor/mbedtls/include/mbedtls/debug.h +156 -0
  99. package/vendor/mbedtls/include/mbedtls/des.h +385 -0
  100. package/vendor/mbedtls/include/mbedtls/dhm.h +972 -0
  101. package/vendor/mbedtls/include/mbedtls/ecdh.h +455 -0
  102. package/vendor/mbedtls/include/mbedtls/ecdsa.h +674 -0
  103. package/vendor/mbedtls/include/mbedtls/ecjpake.h +298 -0
  104. package/vendor/mbedtls/include/mbedtls/ecp.h +1517 -0
  105. package/vendor/mbedtls/include/mbedtls/entropy.h +274 -0
  106. package/vendor/mbedtls/include/mbedtls/error.h +201 -0
  107. package/vendor/mbedtls/include/mbedtls/gcm.h +387 -0
  108. package/vendor/mbedtls/include/mbedtls/hkdf.h +124 -0
  109. package/vendor/mbedtls/include/mbedtls/hmac_drbg.h +434 -0
  110. package/vendor/mbedtls/include/mbedtls/lms.h +440 -0
  111. package/vendor/mbedtls/include/mbedtls/mbedtls_config.h +4446 -0
  112. package/vendor/mbedtls/include/mbedtls/md.h +526 -0
  113. package/vendor/mbedtls/include/mbedtls/md5.h +190 -0
  114. package/vendor/mbedtls/include/mbedtls/memory_buffer_alloc.h +142 -0
  115. package/vendor/mbedtls/include/mbedtls/net_sockets.h +299 -0
  116. package/vendor/mbedtls/include/mbedtls/nist_kw.h +166 -0
  117. package/vendor/mbedtls/include/mbedtls/oid.h +727 -0
  118. package/vendor/mbedtls/include/mbedtls/pem.h +160 -0
  119. package/vendor/mbedtls/include/mbedtls/pk.h +1303 -0
  120. package/vendor/mbedtls/include/mbedtls/pkcs12.h +186 -0
  121. package/vendor/mbedtls/include/mbedtls/pkcs5.h +198 -0
  122. package/vendor/mbedtls/include/mbedtls/pkcs7.h +252 -0
  123. package/vendor/mbedtls/include/mbedtls/platform.h +516 -0
  124. package/vendor/mbedtls/include/mbedtls/platform_time.h +79 -0
  125. package/vendor/mbedtls/include/mbedtls/platform_util.h +247 -0
  126. package/vendor/mbedtls/include/mbedtls/poly1305.h +168 -0
  127. package/vendor/mbedtls/include/mbedtls/private_access.h +20 -0
  128. package/vendor/mbedtls/include/mbedtls/psa_util.h +207 -0
  129. package/vendor/mbedtls/include/mbedtls/ripemd160.h +136 -0
  130. package/vendor/mbedtls/include/mbedtls/rsa.h +1170 -0
  131. package/vendor/mbedtls/include/mbedtls/sha1.h +219 -0
  132. package/vendor/mbedtls/include/mbedtls/sha256.h +200 -0
  133. package/vendor/mbedtls/include/mbedtls/sha3.h +172 -0
  134. package/vendor/mbedtls/include/mbedtls/sha512.h +208 -0
  135. package/vendor/mbedtls/include/mbedtls/ssl.h +5887 -0
  136. package/vendor/mbedtls/include/mbedtls/ssl_cache.h +187 -0
  137. package/vendor/mbedtls/include/mbedtls/ssl_ciphersuites.h +482 -0
  138. package/vendor/mbedtls/include/mbedtls/ssl_cookie.h +106 -0
  139. package/vendor/mbedtls/include/mbedtls/ssl_ticket.h +199 -0
  140. package/vendor/mbedtls/include/mbedtls/threading.h +167 -0
  141. package/vendor/mbedtls/include/mbedtls/timing.h +94 -0
  142. package/vendor/mbedtls/include/mbedtls/version.h +78 -0
  143. package/vendor/mbedtls/include/mbedtls/x509.h +500 -0
  144. package/vendor/mbedtls/include/mbedtls/x509_crl.h +184 -0
  145. package/vendor/mbedtls/include/mbedtls/x509_crt.h +1208 -0
  146. package/vendor/mbedtls/include/mbedtls/x509_csr.h +382 -0
  147. package/vendor/mbedtls/include/psa/build_info.h +20 -0
  148. package/vendor/mbedtls/include/psa/crypto.h +4998 -0
  149. package/vendor/mbedtls/include/psa/crypto_adjust_auto_enabled.h +31 -0
  150. package/vendor/mbedtls/include/psa/crypto_adjust_config_dependencies.h +51 -0
  151. package/vendor/mbedtls/include/psa/crypto_adjust_config_key_pair_types.h +101 -0
  152. package/vendor/mbedtls/include/psa/crypto_adjust_config_synonyms.h +49 -0
  153. package/vendor/mbedtls/include/psa/crypto_builtin_composites.h +214 -0
  154. package/vendor/mbedtls/include/psa/crypto_builtin_key_derivation.h +118 -0
  155. package/vendor/mbedtls/include/psa/crypto_builtin_primitives.h +114 -0
  156. package/vendor/mbedtls/include/psa/crypto_compat.h +230 -0
  157. package/vendor/mbedtls/include/psa/crypto_config.h +145 -0
  158. package/vendor/mbedtls/include/psa/crypto_driver_common.h +44 -0
  159. package/vendor/mbedtls/include/psa/crypto_driver_contexts_composites.h +151 -0
  160. package/vendor/mbedtls/include/psa/crypto_driver_contexts_key_derivation.h +52 -0
  161. package/vendor/mbedtls/include/psa/crypto_driver_contexts_primitives.h +105 -0
  162. package/vendor/mbedtls/include/psa/crypto_extra.h +2145 -0
  163. package/vendor/mbedtls/include/psa/crypto_legacy.h +88 -0
  164. package/vendor/mbedtls/include/psa/crypto_platform.h +102 -0
  165. package/vendor/mbedtls/include/psa/crypto_se_driver.h +1383 -0
  166. package/vendor/mbedtls/include/psa/crypto_sizes.h +1319 -0
  167. package/vendor/mbedtls/include/psa/crypto_struct.h +527 -0
  168. package/vendor/mbedtls/include/psa/crypto_types.h +508 -0
  169. package/vendor/mbedtls/include/psa/crypto_values.h +2782 -0
  170. package/vendor/mbedtls/library/aes.c +2294 -0
  171. package/vendor/mbedtls/library/aesce.c +624 -0
  172. package/vendor/mbedtls/library/aesce.h +136 -0
  173. package/vendor/mbedtls/library/aesni.c +846 -0
  174. package/vendor/mbedtls/library/aesni.h +162 -0
  175. package/vendor/mbedtls/library/alignment.h +704 -0
  176. package/vendor/mbedtls/library/aria.c +969 -0
  177. package/vendor/mbedtls/library/asn1parse.c +468 -0
  178. package/vendor/mbedtls/library/asn1write.c +440 -0
  179. package/vendor/mbedtls/library/base64.c +322 -0
  180. package/vendor/mbedtls/library/base64_internal.h +45 -0
  181. package/vendor/mbedtls/library/bignum.c +2583 -0
  182. package/vendor/mbedtls/library/bignum_core.c +1240 -0
  183. package/vendor/mbedtls/library/bignum_core.h +872 -0
  184. package/vendor/mbedtls/library/bignum_core_invasive.h +38 -0
  185. package/vendor/mbedtls/library/bignum_internal.h +122 -0
  186. package/vendor/mbedtls/library/bignum_mod.c +394 -0
  187. package/vendor/mbedtls/library/bignum_mod.h +452 -0
  188. package/vendor/mbedtls/library/bignum_mod_raw.c +276 -0
  189. package/vendor/mbedtls/library/bignum_mod_raw.h +416 -0
  190. package/vendor/mbedtls/library/bignum_mod_raw_invasive.h +34 -0
  191. package/vendor/mbedtls/library/block_cipher.c +207 -0
  192. package/vendor/mbedtls/library/block_cipher_internal.h +99 -0
  193. package/vendor/mbedtls/library/bn_mul.h +1094 -0
  194. package/vendor/mbedtls/library/camellia.c +1058 -0
  195. package/vendor/mbedtls/library/ccm.c +777 -0
  196. package/vendor/mbedtls/library/chacha20.c +563 -0
  197. package/vendor/mbedtls/library/chacha20_internal.h +23 -0
  198. package/vendor/mbedtls/library/chachapoly.c +487 -0
  199. package/vendor/mbedtls/library/check_crypto_config.h +136 -0
  200. package/vendor/mbedtls/library/cipher.c +1712 -0
  201. package/vendor/mbedtls/library/cipher_invasive.h +28 -0
  202. package/vendor/mbedtls/library/cipher_wrap.c +2482 -0
  203. package/vendor/mbedtls/library/cipher_wrap.h +178 -0
  204. package/vendor/mbedtls/library/cmac.c +1067 -0
  205. package/vendor/mbedtls/library/common.h +487 -0
  206. package/vendor/mbedtls/library/constant_time.c +247 -0
  207. package/vendor/mbedtls/library/constant_time_impl.h +541 -0
  208. package/vendor/mbedtls/library/constant_time_internal.h +579 -0
  209. package/vendor/mbedtls/library/ctr.h +35 -0
  210. package/vendor/mbedtls/library/ctr_drbg.c +1016 -0
  211. package/vendor/mbedtls/library/debug.c +475 -0
  212. package/vendor/mbedtls/library/debug_internal.h +185 -0
  213. package/vendor/mbedtls/library/des.c +1042 -0
  214. package/vendor/mbedtls/library/dhm.c +700 -0
  215. package/vendor/mbedtls/library/ecdh.c +696 -0
  216. package/vendor/mbedtls/library/ecdsa.c +858 -0
  217. package/vendor/mbedtls/library/ecjpake.c +1216 -0
  218. package/vendor/mbedtls/library/ecp.c +3674 -0
  219. package/vendor/mbedtls/library/ecp_curves.c +6125 -0
  220. package/vendor/mbedtls/library/ecp_curves_new.c +9 -0
  221. package/vendor/mbedtls/library/ecp_internal_alt.h +287 -0
  222. package/vendor/mbedtls/library/ecp_invasive.h +305 -0
  223. package/vendor/mbedtls/library/entropy.c +680 -0
  224. package/vendor/mbedtls/library/entropy_poll.c +233 -0
  225. package/vendor/mbedtls/library/entropy_poll.h +64 -0
  226. package/vendor/mbedtls/library/error.c +878 -0
  227. package/vendor/mbedtls/library/gcm.c +1330 -0
  228. package/vendor/mbedtls/library/hkdf.c +161 -0
  229. package/vendor/mbedtls/library/hmac_drbg.c +633 -0
  230. package/vendor/mbedtls/library/lmots.c +789 -0
  231. package/vendor/mbedtls/library/lmots.h +288 -0
  232. package/vendor/mbedtls/library/lms.c +778 -0
  233. package/vendor/mbedtls/library/md.c +1108 -0
  234. package/vendor/mbedtls/library/md5.c +426 -0
  235. package/vendor/mbedtls/library/md_psa.h +26 -0
  236. package/vendor/mbedtls/library/md_wrap.h +46 -0
  237. package/vendor/mbedtls/library/memory_buffer_alloc.c +751 -0
  238. package/vendor/mbedtls/library/mps_common.h +181 -0
  239. package/vendor/mbedtls/library/mps_error.h +89 -0
  240. package/vendor/mbedtls/library/mps_reader.c +538 -0
  241. package/vendor/mbedtls/library/mps_reader.h +366 -0
  242. package/vendor/mbedtls/library/mps_trace.c +112 -0
  243. package/vendor/mbedtls/library/mps_trace.h +154 -0
  244. package/vendor/mbedtls/library/net_sockets.c +694 -0
  245. package/vendor/mbedtls/library/nist_kw.c +729 -0
  246. package/vendor/mbedtls/library/oid.c +1166 -0
  247. package/vendor/mbedtls/library/padlock.c +157 -0
  248. package/vendor/mbedtls/library/padlock.h +111 -0
  249. package/vendor/mbedtls/library/pem.c +554 -0
  250. package/vendor/mbedtls/library/pk.c +1602 -0
  251. package/vendor/mbedtls/library/pk_ecc.c +261 -0
  252. package/vendor/mbedtls/library/pk_internal.h +241 -0
  253. package/vendor/mbedtls/library/pk_wrap.c +1618 -0
  254. package/vendor/mbedtls/library/pk_wrap.h +138 -0
  255. package/vendor/mbedtls/library/pkcs12.c +437 -0
  256. package/vendor/mbedtls/library/pkcs5.c +500 -0
  257. package/vendor/mbedtls/library/pkcs7.c +787 -0
  258. package/vendor/mbedtls/library/pkparse.c +1392 -0
  259. package/vendor/mbedtls/library/pkwrite.c +631 -0
  260. package/vendor/mbedtls/library/pkwrite.h +121 -0
  261. package/vendor/mbedtls/library/platform.c +402 -0
  262. package/vendor/mbedtls/library/platform_util.c +258 -0
  263. package/vendor/mbedtls/library/poly1305.c +492 -0
  264. package/vendor/mbedtls/library/psa_crypto.c +9532 -0
  265. package/vendor/mbedtls/library/psa_crypto_aead.c +646 -0
  266. package/vendor/mbedtls/library/psa_crypto_aead.h +499 -0
  267. package/vendor/mbedtls/library/psa_crypto_cipher.c +747 -0
  268. package/vendor/mbedtls/library/psa_crypto_cipher.h +316 -0
  269. package/vendor/mbedtls/library/psa_crypto_client.c +22 -0
  270. package/vendor/mbedtls/library/psa_crypto_core.h +983 -0
  271. package/vendor/mbedtls/library/psa_crypto_core_common.h +52 -0
  272. package/vendor/mbedtls/library/psa_crypto_driver_wrappers.h +2896 -0
  273. package/vendor/mbedtls/library/psa_crypto_driver_wrappers_no_static.c +256 -0
  274. package/vendor/mbedtls/library/psa_crypto_driver_wrappers_no_static.h +31 -0
  275. package/vendor/mbedtls/library/psa_crypto_ecp.c +594 -0
  276. package/vendor/mbedtls/library/psa_crypto_ecp.h +267 -0
  277. package/vendor/mbedtls/library/psa_crypto_ffdh.c +361 -0
  278. package/vendor/mbedtls/library/psa_crypto_ffdh.h +131 -0
  279. package/vendor/mbedtls/library/psa_crypto_hash.c +470 -0
  280. package/vendor/mbedtls/library/psa_crypto_hash.h +211 -0
  281. package/vendor/mbedtls/library/psa_crypto_invasive.h +92 -0
  282. package/vendor/mbedtls/library/psa_crypto_its.h +131 -0
  283. package/vendor/mbedtls/library/psa_crypto_mac.c +505 -0
  284. package/vendor/mbedtls/library/psa_crypto_mac.h +264 -0
  285. package/vendor/mbedtls/library/psa_crypto_pake.c +571 -0
  286. package/vendor/mbedtls/library/psa_crypto_pake.h +159 -0
  287. package/vendor/mbedtls/library/psa_crypto_random.c +181 -0
  288. package/vendor/mbedtls/library/psa_crypto_random.h +72 -0
  289. package/vendor/mbedtls/library/psa_crypto_random_impl.h +200 -0
  290. package/vendor/mbedtls/library/psa_crypto_rsa.c +714 -0
  291. package/vendor/mbedtls/library/psa_crypto_rsa.h +321 -0
  292. package/vendor/mbedtls/library/psa_crypto_se.c +373 -0
  293. package/vendor/mbedtls/library/psa_crypto_se.h +192 -0
  294. package/vendor/mbedtls/library/psa_crypto_slot_management.c +1137 -0
  295. package/vendor/mbedtls/library/psa_crypto_slot_management.h +344 -0
  296. package/vendor/mbedtls/library/psa_crypto_storage.c +481 -0
  297. package/vendor/mbedtls/library/psa_crypto_storage.h +392 -0
  298. package/vendor/mbedtls/library/psa_its_file.c +254 -0
  299. package/vendor/mbedtls/library/psa_util.c +614 -0
  300. package/vendor/mbedtls/library/psa_util_internal.h +100 -0
  301. package/vendor/mbedtls/library/ripemd160.c +490 -0
  302. package/vendor/mbedtls/library/rsa.c +3121 -0
  303. package/vendor/mbedtls/library/rsa_alt_helpers.c +455 -0
  304. package/vendor/mbedtls/library/rsa_alt_helpers.h +209 -0
  305. package/vendor/mbedtls/library/rsa_internal.h +188 -0
  306. package/vendor/mbedtls/library/sha1.c +480 -0
  307. package/vendor/mbedtls/library/sha256.c +983 -0
  308. package/vendor/mbedtls/library/sha3.c +721 -0
  309. package/vendor/mbedtls/library/sha512.c +1115 -0
  310. package/vendor/mbedtls/library/ssl_cache.c +410 -0
  311. package/vendor/mbedtls/library/ssl_ciphersuites.c +2050 -0
  312. package/vendor/mbedtls/library/ssl_ciphersuites_internal.h +154 -0
  313. package/vendor/mbedtls/library/ssl_client.c +1023 -0
  314. package/vendor/mbedtls/library/ssl_client.h +22 -0
  315. package/vendor/mbedtls/library/ssl_cookie.c +384 -0
  316. package/vendor/mbedtls/library/ssl_debug_helpers.h +85 -0
  317. package/vendor/mbedtls/library/ssl_debug_helpers_generated.c +251 -0
  318. package/vendor/mbedtls/library/ssl_misc.h +3198 -0
  319. package/vendor/mbedtls/library/ssl_msg.c +6619 -0
  320. package/vendor/mbedtls/library/ssl_ticket.c +556 -0
  321. package/vendor/mbedtls/library/ssl_tls.c +10234 -0
  322. package/vendor/mbedtls/library/ssl_tls12_client.c +3688 -0
  323. package/vendor/mbedtls/library/ssl_tls12_server.c +4311 -0
  324. package/vendor/mbedtls/library/ssl_tls13_client.c +3208 -0
  325. package/vendor/mbedtls/library/ssl_tls13_generic.c +1793 -0
  326. package/vendor/mbedtls/library/ssl_tls13_invasive.h +23 -0
  327. package/vendor/mbedtls/library/ssl_tls13_keys.c +1918 -0
  328. package/vendor/mbedtls/library/ssl_tls13_keys.h +668 -0
  329. package/vendor/mbedtls/library/ssl_tls13_server.c +3624 -0
  330. package/vendor/mbedtls/library/threading.c +193 -0
  331. package/vendor/mbedtls/library/threading_internal.h +28 -0
  332. package/vendor/mbedtls/library/timing.c +152 -0
  333. package/vendor/mbedtls/library/version.c +32 -0
  334. package/vendor/mbedtls/library/version_features.c +856 -0
  335. package/vendor/mbedtls/library/x509.c +1776 -0
  336. package/vendor/mbedtls/library/x509_create.c +570 -0
  337. package/vendor/mbedtls/library/x509_crl.c +708 -0
  338. package/vendor/mbedtls/library/x509_crt.c +3311 -0
  339. package/vendor/mbedtls/library/x509_csr.c +648 -0
  340. package/vendor/mbedtls/library/x509_internal.h +101 -0
  341. package/vendor/mbedtls/library/x509write.c +174 -0
  342. package/vendor/mbedtls/library/x509write_crt.c +688 -0
  343. package/vendor/mbedtls/library/x509write_csr.c +336 -0
  344. package/vendor/quickjs-ng/CMakeLists.txt +566 -0
  345. package/vendor/quickjs-ng/LICENSE +24 -0
  346. package/vendor/quickjs-ng/README.md +24 -0
  347. package/vendor/quickjs-ng/api-test.c +1195 -0
  348. package/vendor/quickjs-ng/builtin-array-fromasync.h +119 -0
  349. package/vendor/quickjs-ng/builtin-iterator-zip-keyed.h +332 -0
  350. package/vendor/quickjs-ng/builtin-iterator-zip.h +337 -0
  351. package/vendor/quickjs-ng/cutils.h +1998 -0
  352. package/vendor/quickjs-ng/dtoa.c +1619 -0
  353. package/vendor/quickjs-ng/dtoa.h +87 -0
  354. package/vendor/quickjs-ng/gen/function_source.c +81 -0
  355. package/vendor/quickjs-ng/gen/hello.c +53 -0
  356. package/vendor/quickjs-ng/gen/hello_module.c +106 -0
  357. package/vendor/quickjs-ng/gen/repl.c +3036 -0
  358. package/vendor/quickjs-ng/gen/standalone.c +323 -0
  359. package/vendor/quickjs-ng/gen/test_fib.c +81 -0
  360. package/vendor/quickjs-ng/libregexp-opcode.h +73 -0
  361. package/vendor/quickjs-ng/libregexp.c +3474 -0
  362. package/vendor/quickjs-ng/libregexp.h +101 -0
  363. package/vendor/quickjs-ng/libunicode-table.h +5173 -0
  364. package/vendor/quickjs-ng/libunicode.c +2069 -0
  365. package/vendor/quickjs-ng/libunicode.h +172 -0
  366. package/vendor/quickjs-ng/list.h +107 -0
  367. package/vendor/quickjs-ng/lre-test.c +52 -0
  368. package/vendor/quickjs-ng/qjs.c +762 -0
  369. package/vendor/quickjs-ng/qjsc.c +673 -0
  370. package/vendor/quickjs-ng/quickjs-atom.h +280 -0
  371. package/vendor/quickjs-ng/quickjs-c-atomics.h +54 -0
  372. package/vendor/quickjs-ng/quickjs-libc.c +5037 -0
  373. package/vendor/quickjs-ng/quickjs-libc.h +87 -0
  374. package/vendor/quickjs-ng/quickjs-opcode.h +377 -0
  375. package/vendor/quickjs-ng/quickjs.c +64041 -0
  376. package/vendor/quickjs-ng/quickjs.h +1447 -0
  377. package/vendor/quickjs-ng/run-test262.c +2374 -0
  378. package/vendor/quickjs-ng/unicode_gen.c +3121 -0
  379. package/vendor/quickjs-ng/unicode_gen_def.h +310 -0
  380. package/vendor/ryu/LICENSE-Boost +23 -0
  381. package/vendor/ryu/common.h +114 -0
  382. package/vendor/ryu/d2s.c +509 -0
  383. package/vendor/ryu/d2s_full_table.h +367 -0
  384. package/vendor/ryu/d2s_intrinsics.h +357 -0
  385. package/vendor/ryu/d2s_small_table.h +186 -0
  386. package/vendor/ryu/digit_table.h +35 -0
  387. package/vendor/ryu/ryu.h +46 -0
  388. package/vendor/zlib/LICENSE +22 -0
  389. package/vendor/zlib/adler32.c +164 -0
  390. package/vendor/zlib/compress.c +75 -0
  391. package/vendor/zlib/crc32.c +1049 -0
  392. package/vendor/zlib/crc32.h +9446 -0
  393. package/vendor/zlib/deflate.c +2139 -0
  394. package/vendor/zlib/deflate.h +377 -0
  395. package/vendor/zlib/gzclose.c +23 -0
  396. package/vendor/zlib/gzguts.h +214 -0
  397. package/vendor/zlib/gzlib.c +582 -0
  398. package/vendor/zlib/gzread.c +602 -0
  399. package/vendor/zlib/gzwrite.c +631 -0
  400. package/vendor/zlib/infback.c +628 -0
  401. package/vendor/zlib/inffast.c +320 -0
  402. package/vendor/zlib/inffast.h +11 -0
  403. package/vendor/zlib/inffixed.h +94 -0
  404. package/vendor/zlib/inflate.c +1526 -0
  405. package/vendor/zlib/inflate.h +126 -0
  406. package/vendor/zlib/inftrees.c +299 -0
  407. package/vendor/zlib/inftrees.h +62 -0
  408. package/vendor/zlib/trees.c +1117 -0
  409. package/vendor/zlib/trees.h +128 -0
  410. package/vendor/zlib/uncompr.c +85 -0
  411. package/vendor/zlib/zconf.h +543 -0
  412. package/vendor/zlib/zlib.h +1938 -0
  413. package/vendor/zlib/zutil.c +299 -0
  414. package/vendor/zlib/zutil.h +254 -0
  415. package/README.md +0 -3
  416. package/index.js +0 -2
@@ -0,0 +1,500 @@
1
+ /**
2
+ * \file pkcs5.c
3
+ *
4
+ * \brief PKCS#5 functions
5
+ *
6
+ * \author Mathias Olsson <mathias@kompetensum.com>
7
+ *
8
+ * Copyright The Mbed TLS Contributors
9
+ * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
10
+ */
11
+ /*
12
+ * PKCS#5 includes PBKDF2 and more
13
+ *
14
+ * http://tools.ietf.org/html/rfc2898 (Specification)
15
+ * http://tools.ietf.org/html/rfc6070 (Test vectors)
16
+ */
17
+
18
+ #include "common.h"
19
+
20
+ #if defined(MBEDTLS_PKCS5_C)
21
+
22
+ #include "mbedtls/pkcs5.h"
23
+ #include "mbedtls/error.h"
24
+
25
+ #if defined(MBEDTLS_ASN1_PARSE_C)
26
+ #include "mbedtls/asn1.h"
27
+ #if defined(MBEDTLS_CIPHER_C)
28
+ #include "mbedtls/cipher.h"
29
+ #endif /* MBEDTLS_CIPHER_C */
30
+ #include "mbedtls/oid.h"
31
+ #endif /* MBEDTLS_ASN1_PARSE_C */
32
+
33
+ #include <string.h>
34
+
35
+ #include "mbedtls/platform.h"
36
+
37
+ #include "psa_util_internal.h"
38
+
39
+ #if defined(MBEDTLS_ASN1_PARSE_C) && defined(MBEDTLS_CIPHER_C)
40
+ static int pkcs5_parse_pbkdf2_params(const mbedtls_asn1_buf *params,
41
+ mbedtls_asn1_buf *salt, int *iterations,
42
+ int *keylen, mbedtls_md_type_t *md_type)
43
+ {
44
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
45
+ mbedtls_asn1_buf prf_alg_oid;
46
+ unsigned char *p = params->p;
47
+ const unsigned char *end = params->p + params->len;
48
+
49
+ if (params->tag != (MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) {
50
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT,
51
+ MBEDTLS_ERR_ASN1_UNEXPECTED_TAG);
52
+ }
53
+ /*
54
+ * PBKDF2-params ::= SEQUENCE {
55
+ * salt OCTET STRING,
56
+ * iterationCount INTEGER,
57
+ * keyLength INTEGER OPTIONAL
58
+ * prf AlgorithmIdentifier DEFAULT algid-hmacWithSHA1
59
+ * }
60
+ *
61
+ */
62
+ if ((ret = mbedtls_asn1_get_tag(&p, end, &salt->len,
63
+ MBEDTLS_ASN1_OCTET_STRING)) != 0) {
64
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret);
65
+ }
66
+
67
+ salt->p = p;
68
+ p += salt->len;
69
+
70
+ if ((ret = mbedtls_asn1_get_int(&p, end, iterations)) != 0) {
71
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret);
72
+ }
73
+
74
+ if (p == end) {
75
+ return 0;
76
+ }
77
+
78
+ if ((ret = mbedtls_asn1_get_int(&p, end, keylen)) != 0) {
79
+ if (ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) {
80
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret);
81
+ }
82
+ }
83
+
84
+ if (p == end) {
85
+ return 0;
86
+ }
87
+
88
+ if ((ret = mbedtls_asn1_get_alg_null(&p, end, &prf_alg_oid)) != 0) {
89
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret);
90
+ }
91
+
92
+ if (mbedtls_oid_get_md_hmac(&prf_alg_oid, md_type) != 0) {
93
+ return MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE;
94
+ }
95
+
96
+ if (p != end) {
97
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT,
98
+ MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
99
+ }
100
+
101
+ return 0;
102
+ }
103
+
104
+ #if !defined(MBEDTLS_CIPHER_PADDING_PKCS7)
105
+ int mbedtls_pkcs5_pbes2_ext(const mbedtls_asn1_buf *pbe_params, int mode,
106
+ const unsigned char *pwd, size_t pwdlen,
107
+ const unsigned char *data, size_t datalen,
108
+ unsigned char *output, size_t output_size,
109
+ size_t *output_len);
110
+ #endif
111
+
112
+ #if !defined(MBEDTLS_DEPRECATED_REMOVED)
113
+ int mbedtls_pkcs5_pbes2(const mbedtls_asn1_buf *pbe_params, int mode,
114
+ const unsigned char *pwd, size_t pwdlen,
115
+ const unsigned char *data, size_t datalen,
116
+ unsigned char *output)
117
+ {
118
+ size_t output_len = 0;
119
+
120
+ /* We assume caller of the function is providing a big enough output buffer
121
+ * so we pass output_size as SIZE_MAX to pass checks, However, no guarantees
122
+ * for the output size actually being correct.
123
+ */
124
+ return mbedtls_pkcs5_pbes2_ext(pbe_params, mode, pwd, pwdlen, data,
125
+ datalen, output, SIZE_MAX, &output_len);
126
+ }
127
+ #endif
128
+
129
+ int mbedtls_pkcs5_pbes2_ext(const mbedtls_asn1_buf *pbe_params, int mode,
130
+ const unsigned char *pwd, size_t pwdlen,
131
+ const unsigned char *data, size_t datalen,
132
+ unsigned char *output, size_t output_size,
133
+ size_t *output_len)
134
+ {
135
+ int ret, iterations = 0, keylen = 0;
136
+ unsigned char *p, *end;
137
+ mbedtls_asn1_buf kdf_alg_oid, enc_scheme_oid, kdf_alg_params, enc_scheme_params;
138
+ mbedtls_asn1_buf salt;
139
+ mbedtls_md_type_t md_type = MBEDTLS_MD_SHA1;
140
+ unsigned char key[32], iv[32];
141
+ const mbedtls_cipher_info_t *cipher_info;
142
+ mbedtls_cipher_type_t cipher_alg;
143
+ mbedtls_cipher_context_t cipher_ctx;
144
+ unsigned int padlen = 0;
145
+
146
+ p = pbe_params->p;
147
+ end = p + pbe_params->len;
148
+
149
+ /*
150
+ * PBES2-params ::= SEQUENCE {
151
+ * keyDerivationFunc AlgorithmIdentifier {{PBES2-KDFs}},
152
+ * encryptionScheme AlgorithmIdentifier {{PBES2-Encs}}
153
+ * }
154
+ */
155
+ if (pbe_params->tag != (MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) {
156
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT,
157
+ MBEDTLS_ERR_ASN1_UNEXPECTED_TAG);
158
+ }
159
+
160
+ if ((ret = mbedtls_asn1_get_alg(&p, end, &kdf_alg_oid,
161
+ &kdf_alg_params)) != 0) {
162
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret);
163
+ }
164
+
165
+ // Only PBKDF2 supported at the moment
166
+ //
167
+ if (MBEDTLS_OID_CMP(MBEDTLS_OID_PKCS5_PBKDF2, &kdf_alg_oid) != 0) {
168
+ return MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE;
169
+ }
170
+
171
+ if ((ret = pkcs5_parse_pbkdf2_params(&kdf_alg_params,
172
+ &salt, &iterations, &keylen,
173
+ &md_type)) != 0) {
174
+ return ret;
175
+ }
176
+
177
+ if ((ret = mbedtls_asn1_get_alg(&p, end, &enc_scheme_oid,
178
+ &enc_scheme_params)) != 0) {
179
+ return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret);
180
+ }
181
+
182
+ if (mbedtls_oid_get_cipher_alg(&enc_scheme_oid, &cipher_alg) != 0) {
183
+ return MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE;
184
+ }
185
+
186
+ cipher_info = mbedtls_cipher_info_from_type(cipher_alg);
187
+ if (cipher_info == NULL) {
188
+ return MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE;
189
+ }
190
+
191
+ /*
192
+ * The value of keylen from pkcs5_parse_pbkdf2_params() is ignored
193
+ * since it is optional and we don't know if it was set or not
194
+ */
195
+ keylen = (int) mbedtls_cipher_info_get_key_bitlen(cipher_info) / 8;
196
+
197
+ if (enc_scheme_params.tag != MBEDTLS_ASN1_OCTET_STRING ||
198
+ enc_scheme_params.len != mbedtls_cipher_info_get_iv_size(cipher_info)) {
199
+ return MBEDTLS_ERR_PKCS5_INVALID_FORMAT;
200
+ }
201
+
202
+ if (mode == MBEDTLS_PKCS5_DECRYPT) {
203
+ if (output_size < datalen) {
204
+ return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL;
205
+ }
206
+ }
207
+
208
+ if (mode == MBEDTLS_PKCS5_ENCRYPT) {
209
+ padlen = cipher_info->block_size - (datalen % cipher_info->block_size);
210
+ if (output_size < (datalen + padlen)) {
211
+ return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL;
212
+ }
213
+ }
214
+
215
+ mbedtls_cipher_init(&cipher_ctx);
216
+
217
+ memcpy(iv, enc_scheme_params.p, enc_scheme_params.len);
218
+
219
+ if ((ret = mbedtls_pkcs5_pbkdf2_hmac_ext(md_type, pwd, pwdlen, salt.p,
220
+ salt.len, iterations, keylen,
221
+ key)) != 0) {
222
+ goto exit;
223
+ }
224
+
225
+ if ((ret = mbedtls_cipher_setup(&cipher_ctx, cipher_info)) != 0) {
226
+ goto exit;
227
+ }
228
+
229
+ if ((ret = mbedtls_cipher_setkey(&cipher_ctx, key, 8 * keylen,
230
+ (mbedtls_operation_t) mode)) != 0) {
231
+ goto exit;
232
+ }
233
+
234
+ #if defined(MBEDTLS_CIPHER_MODE_WITH_PADDING)
235
+ {
236
+ /* PKCS5 uses CBC with PKCS7 padding (which is the same as
237
+ * "PKCS5 padding" except that it's typically only called PKCS5
238
+ * with 64-bit-block ciphers).
239
+ */
240
+ mbedtls_cipher_padding_t padding = MBEDTLS_PADDING_PKCS7;
241
+ #if !defined(MBEDTLS_CIPHER_PADDING_PKCS7)
242
+ /* For historical reasons, when decrypting, this function works when
243
+ * decrypting even when support for PKCS7 padding is disabled. In this
244
+ * case, it ignores the padding, and so will never report a
245
+ * password mismatch.
246
+ */
247
+ if (mode == MBEDTLS_DECRYPT) {
248
+ padding = MBEDTLS_PADDING_NONE;
249
+ }
250
+ #endif
251
+ if ((ret = mbedtls_cipher_set_padding_mode(&cipher_ctx, padding)) != 0) {
252
+ goto exit;
253
+ }
254
+ }
255
+ #endif /* MBEDTLS_CIPHER_MODE_WITH_PADDING */
256
+ if ((ret = mbedtls_cipher_crypt(&cipher_ctx, iv, enc_scheme_params.len,
257
+ data, datalen, output, output_len)) != 0) {
258
+ ret = MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH;
259
+ }
260
+
261
+ exit:
262
+ mbedtls_cipher_free(&cipher_ctx);
263
+
264
+ return ret;
265
+ }
266
+ #endif /* MBEDTLS_ASN1_PARSE_C && MBEDTLS_CIPHER_C */
267
+
268
+ static int pkcs5_pbkdf2_hmac(mbedtls_md_context_t *ctx,
269
+ const unsigned char *password,
270
+ size_t plen, const unsigned char *salt, size_t slen,
271
+ unsigned int iteration_count,
272
+ uint32_t key_length, unsigned char *output)
273
+ {
274
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
275
+ unsigned int i;
276
+ unsigned char md1[MBEDTLS_MD_MAX_SIZE];
277
+ unsigned char work[MBEDTLS_MD_MAX_SIZE];
278
+ unsigned char md_size = mbedtls_md_get_size(ctx->md_info);
279
+ size_t use_len;
280
+ unsigned char *out_p = output;
281
+ unsigned char counter[4];
282
+
283
+ memset(counter, 0, 4);
284
+ counter[3] = 1;
285
+
286
+ #if UINT_MAX > 0xFFFFFFFF
287
+ if (iteration_count > 0xFFFFFFFF) {
288
+ return MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA;
289
+ }
290
+ #endif
291
+
292
+ if ((ret = mbedtls_md_hmac_starts(ctx, password, plen)) != 0) {
293
+ return ret;
294
+ }
295
+ while (key_length) {
296
+ // U1 ends up in work
297
+ //
298
+ if ((ret = mbedtls_md_hmac_update(ctx, salt, slen)) != 0) {
299
+ goto cleanup;
300
+ }
301
+
302
+ if ((ret = mbedtls_md_hmac_update(ctx, counter, 4)) != 0) {
303
+ goto cleanup;
304
+ }
305
+
306
+ if ((ret = mbedtls_md_hmac_finish(ctx, work)) != 0) {
307
+ goto cleanup;
308
+ }
309
+
310
+ if ((ret = mbedtls_md_hmac_reset(ctx)) != 0) {
311
+ goto cleanup;
312
+ }
313
+
314
+ memcpy(md1, work, md_size);
315
+
316
+ for (i = 1; i < iteration_count; i++) {
317
+ // U2 ends up in md1
318
+ //
319
+ if ((ret = mbedtls_md_hmac_update(ctx, md1, md_size)) != 0) {
320
+ goto cleanup;
321
+ }
322
+
323
+ if ((ret = mbedtls_md_hmac_finish(ctx, md1)) != 0) {
324
+ goto cleanup;
325
+ }
326
+
327
+ if ((ret = mbedtls_md_hmac_reset(ctx)) != 0) {
328
+ goto cleanup;
329
+ }
330
+
331
+ // U1 xor U2
332
+ //
333
+ mbedtls_xor(work, work, md1, md_size);
334
+ }
335
+
336
+ use_len = (key_length < md_size) ? key_length : md_size;
337
+ memcpy(out_p, work, use_len);
338
+
339
+ key_length -= (uint32_t) use_len;
340
+ out_p += use_len;
341
+
342
+ for (i = 4; i > 0; i--) {
343
+ if (++counter[i - 1] != 0) {
344
+ break;
345
+ }
346
+ }
347
+ }
348
+
349
+ cleanup:
350
+ /* Zeroise buffers to clear sensitive data from memory. */
351
+ mbedtls_platform_zeroize(work, MBEDTLS_MD_MAX_SIZE);
352
+ mbedtls_platform_zeroize(md1, MBEDTLS_MD_MAX_SIZE);
353
+
354
+ return ret;
355
+ }
356
+
357
+ #if !defined(MBEDTLS_DEPRECATED_REMOVED)
358
+ int mbedtls_pkcs5_pbkdf2_hmac(mbedtls_md_context_t *ctx,
359
+ const unsigned char *password,
360
+ size_t plen, const unsigned char *salt, size_t slen,
361
+ unsigned int iteration_count,
362
+ uint32_t key_length, unsigned char *output)
363
+ {
364
+ return pkcs5_pbkdf2_hmac(ctx, password, plen, salt, slen, iteration_count,
365
+ key_length, output);
366
+ }
367
+ #endif
368
+
369
+ int mbedtls_pkcs5_pbkdf2_hmac_ext(mbedtls_md_type_t md_alg,
370
+ const unsigned char *password,
371
+ size_t plen, const unsigned char *salt, size_t slen,
372
+ unsigned int iteration_count,
373
+ uint32_t key_length, unsigned char *output)
374
+ {
375
+ mbedtls_md_context_t md_ctx;
376
+ const mbedtls_md_info_t *md_info = NULL;
377
+ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
378
+
379
+ md_info = mbedtls_md_info_from_type(md_alg);
380
+ if (md_info == NULL) {
381
+ return MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE;
382
+ }
383
+
384
+ mbedtls_md_init(&md_ctx);
385
+
386
+ if ((ret = mbedtls_md_setup(&md_ctx, md_info, 1)) != 0) {
387
+ goto exit;
388
+ }
389
+ ret = pkcs5_pbkdf2_hmac(&md_ctx, password, plen, salt, slen,
390
+ iteration_count, key_length, output);
391
+ exit:
392
+ mbedtls_md_free(&md_ctx);
393
+ return ret;
394
+ }
395
+
396
+ #if defined(MBEDTLS_SELF_TEST)
397
+
398
+ #if !defined(MBEDTLS_MD_CAN_SHA1)
399
+ int mbedtls_pkcs5_self_test(int verbose)
400
+ {
401
+ if (verbose != 0) {
402
+ mbedtls_printf(" PBKDF2 (SHA1): skipped\n\n");
403
+ }
404
+
405
+ return 0;
406
+ }
407
+ #else
408
+
409
+ #define MAX_TESTS 6
410
+
411
+ static const size_t plen_test_data[MAX_TESTS] =
412
+ { 8, 8, 8, 24, 9 };
413
+
414
+ static const unsigned char password_test_data[MAX_TESTS][32] =
415
+ {
416
+ "password",
417
+ "password",
418
+ "password",
419
+ "passwordPASSWORDpassword",
420
+ "pass\0word",
421
+ };
422
+
423
+ static const size_t slen_test_data[MAX_TESTS] =
424
+ { 4, 4, 4, 36, 5 };
425
+
426
+ static const unsigned char salt_test_data[MAX_TESTS][40] =
427
+ {
428
+ "salt",
429
+ "salt",
430
+ "salt",
431
+ "saltSALTsaltSALTsaltSALTsaltSALTsalt",
432
+ "sa\0lt",
433
+ };
434
+
435
+ static const uint32_t it_cnt_test_data[MAX_TESTS] =
436
+ { 1, 2, 4096, 4096, 4096 };
437
+
438
+ static const uint32_t key_len_test_data[MAX_TESTS] =
439
+ { 20, 20, 20, 25, 16 };
440
+
441
+ static const unsigned char result_key_test_data[MAX_TESTS][32] =
442
+ {
443
+ { 0x0c, 0x60, 0xc8, 0x0f, 0x96, 0x1f, 0x0e, 0x71,
444
+ 0xf3, 0xa9, 0xb5, 0x24, 0xaf, 0x60, 0x12, 0x06,
445
+ 0x2f, 0xe0, 0x37, 0xa6 },
446
+ { 0xea, 0x6c, 0x01, 0x4d, 0xc7, 0x2d, 0x6f, 0x8c,
447
+ 0xcd, 0x1e, 0xd9, 0x2a, 0xce, 0x1d, 0x41, 0xf0,
448
+ 0xd8, 0xde, 0x89, 0x57 },
449
+ { 0x4b, 0x00, 0x79, 0x01, 0xb7, 0x65, 0x48, 0x9a,
450
+ 0xbe, 0xad, 0x49, 0xd9, 0x26, 0xf7, 0x21, 0xd0,
451
+ 0x65, 0xa4, 0x29, 0xc1 },
452
+ { 0x3d, 0x2e, 0xec, 0x4f, 0xe4, 0x1c, 0x84, 0x9b,
453
+ 0x80, 0xc8, 0xd8, 0x36, 0x62, 0xc0, 0xe4, 0x4a,
454
+ 0x8b, 0x29, 0x1a, 0x96, 0x4c, 0xf2, 0xf0, 0x70,
455
+ 0x38 },
456
+ { 0x56, 0xfa, 0x6a, 0xa7, 0x55, 0x48, 0x09, 0x9d,
457
+ 0xcc, 0x37, 0xd7, 0xf0, 0x34, 0x25, 0xe0, 0xc3 },
458
+ };
459
+
460
+ int mbedtls_pkcs5_self_test(int verbose)
461
+ {
462
+ int ret, i;
463
+ unsigned char key[64];
464
+
465
+ for (i = 0; i < MAX_TESTS; i++) {
466
+ if (verbose != 0) {
467
+ mbedtls_printf(" PBKDF2 (SHA1) #%d: ", i);
468
+ }
469
+
470
+ ret = mbedtls_pkcs5_pbkdf2_hmac_ext(MBEDTLS_MD_SHA1, password_test_data[i],
471
+ plen_test_data[i], salt_test_data[i],
472
+ slen_test_data[i], it_cnt_test_data[i],
473
+ key_len_test_data[i], key);
474
+ if (ret != 0 ||
475
+ memcmp(result_key_test_data[i], key, key_len_test_data[i]) != 0) {
476
+ if (verbose != 0) {
477
+ mbedtls_printf("failed\n");
478
+ }
479
+
480
+ ret = 1;
481
+ goto exit;
482
+ }
483
+
484
+ if (verbose != 0) {
485
+ mbedtls_printf("passed\n");
486
+ }
487
+ }
488
+
489
+ if (verbose != 0) {
490
+ mbedtls_printf("\n");
491
+ }
492
+
493
+ exit:
494
+ return ret;
495
+ }
496
+ #endif /* MBEDTLS_MD_CAN_SHA1 */
497
+
498
+ #endif /* MBEDTLS_SELF_TEST */
499
+
500
+ #endif /* MBEDTLS_PKCS5_C */