@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.
- package/LICENSE +202 -0
- package/package.json +16 -6
- package/src/scr_array.c +488 -0
- package/src/scr_assert.c +1393 -0
- package/src/scr_async.c +2593 -0
- package/src/scr_async_dyn.c +607 -0
- package/src/scr_bytes.c +1425 -0
- package/src/scr_bytes_io.c +161 -0
- package/src/scr_child.c +3587 -0
- package/src/scr_closure.c +214 -0
- package/src/scr_console.c +143 -0
- package/src/scr_cycle.c +218 -0
- package/src/scr_dc.c +805 -0
- package/src/scr_dgram.c +1007 -0
- package/src/scr_dyn_handle.c +154 -0
- package/src/scr_dyn_invoke.c +644 -0
- package/src/scr_error.c +332 -0
- package/src/scr_events.c +714 -0
- package/src/scr_events_emitter.c +699 -0
- package/src/scr_exception.c +242 -0
- package/src/scr_fetch.c +1130 -0
- package/src/scr_fetch_curl.c +654 -0
- package/src/scr_http.c +3482 -0
- package/src/scr_http2.c +3030 -0
- package/src/scr_inspect.c +803 -0
- package/src/scr_inspect_island.c +51 -0
- package/src/scr_island.c +9363 -0
- package/src/scr_json.c +2151 -0
- package/src/scr_lib.c +3612 -0
- package/src/scr_loop_epoll.c +241 -0
- package/src/scr_loop_kqueue.c +121 -0
- package/src/scr_loop_wsapoll.c +208 -0
- package/src/scr_map.c +591 -0
- package/src/scr_net.c +3017 -0
- package/src/scr_net_island.c +458 -0
- package/src/scr_number.c +115 -0
- package/src/scr_object.c +25 -0
- package/src/scr_path.c +1266 -0
- package/src/scr_platform.h +119 -0
- package/src/scr_readline.c +287 -0
- package/src/scr_regex.c +1080 -0
- package/src/scr_runtime.h +5046 -0
- package/src/scr_stream.c +2877 -0
- package/src/scr_string.c +1264 -0
- package/src/scr_symbol.c +132 -0
- package/src/scr_test.c +662 -0
- package/src/scr_tls.c +1520 -0
- package/src/scr_union.c +105 -0
- package/src/scr_url.c +911 -0
- package/src/scr_url_internal.h +29 -0
- package/src/scr_url_params.c +561 -0
- package/src/scr_watch.c +568 -0
- package/src/scr_web.c +1778 -0
- package/src/scr_win.c +76 -0
- package/src/scr_zlib.c +197 -0
- package/src/scr_zlib_island.c +15 -0
- package/vendor/README.md +52 -0
- package/vendor/curl/COPYRIGHT +534 -0
- package/vendor/curl/include/curl/curl.h +3214 -0
- package/vendor/curl/include/curl/curlver.h +79 -0
- package/vendor/curl/include/curl/easy.h +125 -0
- package/vendor/curl/include/curl/header.h +74 -0
- package/vendor/curl/include/curl/mprintf.h +52 -0
- package/vendor/curl/include/curl/multi.h +460 -0
- package/vendor/curl/include/curl/options.h +70 -0
- package/vendor/curl/include/curl/stdcheaders.h +35 -0
- package/vendor/curl/include/curl/system.h +508 -0
- package/vendor/curl/include/curl/typecheck-gcc.h +716 -0
- package/vendor/curl/include/curl/urlapi.h +149 -0
- package/vendor/curl/include/curl/websockets.h +84 -0
- package/vendor/mbedtls/LICENSE +553 -0
- package/vendor/mbedtls/include/CMakeLists.txt +22 -0
- package/vendor/mbedtls/include/mbedtls/aes.h +631 -0
- package/vendor/mbedtls/include/mbedtls/aria.h +343 -0
- package/vendor/mbedtls/include/mbedtls/asn1.h +642 -0
- package/vendor/mbedtls/include/mbedtls/asn1write.h +390 -0
- package/vendor/mbedtls/include/mbedtls/base64.h +82 -0
- package/vendor/mbedtls/include/mbedtls/bignum.h +1088 -0
- package/vendor/mbedtls/include/mbedtls/block_cipher.h +76 -0
- package/vendor/mbedtls/include/mbedtls/build_info.h +194 -0
- package/vendor/mbedtls/include/mbedtls/camellia.h +305 -0
- package/vendor/mbedtls/include/mbedtls/ccm.h +526 -0
- package/vendor/mbedtls/include/mbedtls/chacha20.h +209 -0
- package/vendor/mbedtls/include/mbedtls/chachapoly.h +351 -0
- package/vendor/mbedtls/include/mbedtls/check_config.h +1149 -0
- package/vendor/mbedtls/include/mbedtls/cipher.h +1250 -0
- package/vendor/mbedtls/include/mbedtls/cmac.h +246 -0
- package/vendor/mbedtls/include/mbedtls/compat-2.x.h +46 -0
- package/vendor/mbedtls/include/mbedtls/config_adjust_legacy_crypto.h +578 -0
- package/vendor/mbedtls/include/mbedtls/config_adjust_legacy_from_psa.h +873 -0
- package/vendor/mbedtls/include/mbedtls/config_adjust_psa_from_legacy.h +359 -0
- package/vendor/mbedtls/include/mbedtls/config_adjust_psa_superset_legacy.h +145 -0
- package/vendor/mbedtls/include/mbedtls/config_adjust_ssl.h +91 -0
- package/vendor/mbedtls/include/mbedtls/config_adjust_x509.h +35 -0
- package/vendor/mbedtls/include/mbedtls/config_psa.h +61 -0
- package/vendor/mbedtls/include/mbedtls/constant_time.h +36 -0
- package/vendor/mbedtls/include/mbedtls/ctr_drbg.h +596 -0
- package/vendor/mbedtls/include/mbedtls/debug.h +156 -0
- package/vendor/mbedtls/include/mbedtls/des.h +385 -0
- package/vendor/mbedtls/include/mbedtls/dhm.h +972 -0
- package/vendor/mbedtls/include/mbedtls/ecdh.h +455 -0
- package/vendor/mbedtls/include/mbedtls/ecdsa.h +674 -0
- package/vendor/mbedtls/include/mbedtls/ecjpake.h +298 -0
- package/vendor/mbedtls/include/mbedtls/ecp.h +1517 -0
- package/vendor/mbedtls/include/mbedtls/entropy.h +274 -0
- package/vendor/mbedtls/include/mbedtls/error.h +201 -0
- package/vendor/mbedtls/include/mbedtls/gcm.h +387 -0
- package/vendor/mbedtls/include/mbedtls/hkdf.h +124 -0
- package/vendor/mbedtls/include/mbedtls/hmac_drbg.h +434 -0
- package/vendor/mbedtls/include/mbedtls/lms.h +440 -0
- package/vendor/mbedtls/include/mbedtls/mbedtls_config.h +4446 -0
- package/vendor/mbedtls/include/mbedtls/md.h +526 -0
- package/vendor/mbedtls/include/mbedtls/md5.h +190 -0
- package/vendor/mbedtls/include/mbedtls/memory_buffer_alloc.h +142 -0
- package/vendor/mbedtls/include/mbedtls/net_sockets.h +299 -0
- package/vendor/mbedtls/include/mbedtls/nist_kw.h +166 -0
- package/vendor/mbedtls/include/mbedtls/oid.h +727 -0
- package/vendor/mbedtls/include/mbedtls/pem.h +160 -0
- package/vendor/mbedtls/include/mbedtls/pk.h +1303 -0
- package/vendor/mbedtls/include/mbedtls/pkcs12.h +186 -0
- package/vendor/mbedtls/include/mbedtls/pkcs5.h +198 -0
- package/vendor/mbedtls/include/mbedtls/pkcs7.h +252 -0
- package/vendor/mbedtls/include/mbedtls/platform.h +516 -0
- package/vendor/mbedtls/include/mbedtls/platform_time.h +79 -0
- package/vendor/mbedtls/include/mbedtls/platform_util.h +247 -0
- package/vendor/mbedtls/include/mbedtls/poly1305.h +168 -0
- package/vendor/mbedtls/include/mbedtls/private_access.h +20 -0
- package/vendor/mbedtls/include/mbedtls/psa_util.h +207 -0
- package/vendor/mbedtls/include/mbedtls/ripemd160.h +136 -0
- package/vendor/mbedtls/include/mbedtls/rsa.h +1170 -0
- package/vendor/mbedtls/include/mbedtls/sha1.h +219 -0
- package/vendor/mbedtls/include/mbedtls/sha256.h +200 -0
- package/vendor/mbedtls/include/mbedtls/sha3.h +172 -0
- package/vendor/mbedtls/include/mbedtls/sha512.h +208 -0
- package/vendor/mbedtls/include/mbedtls/ssl.h +5887 -0
- package/vendor/mbedtls/include/mbedtls/ssl_cache.h +187 -0
- package/vendor/mbedtls/include/mbedtls/ssl_ciphersuites.h +482 -0
- package/vendor/mbedtls/include/mbedtls/ssl_cookie.h +106 -0
- package/vendor/mbedtls/include/mbedtls/ssl_ticket.h +199 -0
- package/vendor/mbedtls/include/mbedtls/threading.h +167 -0
- package/vendor/mbedtls/include/mbedtls/timing.h +94 -0
- package/vendor/mbedtls/include/mbedtls/version.h +78 -0
- package/vendor/mbedtls/include/mbedtls/x509.h +500 -0
- package/vendor/mbedtls/include/mbedtls/x509_crl.h +184 -0
- package/vendor/mbedtls/include/mbedtls/x509_crt.h +1208 -0
- package/vendor/mbedtls/include/mbedtls/x509_csr.h +382 -0
- package/vendor/mbedtls/include/psa/build_info.h +20 -0
- package/vendor/mbedtls/include/psa/crypto.h +4998 -0
- package/vendor/mbedtls/include/psa/crypto_adjust_auto_enabled.h +31 -0
- package/vendor/mbedtls/include/psa/crypto_adjust_config_dependencies.h +51 -0
- package/vendor/mbedtls/include/psa/crypto_adjust_config_key_pair_types.h +101 -0
- package/vendor/mbedtls/include/psa/crypto_adjust_config_synonyms.h +49 -0
- package/vendor/mbedtls/include/psa/crypto_builtin_composites.h +214 -0
- package/vendor/mbedtls/include/psa/crypto_builtin_key_derivation.h +118 -0
- package/vendor/mbedtls/include/psa/crypto_builtin_primitives.h +114 -0
- package/vendor/mbedtls/include/psa/crypto_compat.h +230 -0
- package/vendor/mbedtls/include/psa/crypto_config.h +145 -0
- package/vendor/mbedtls/include/psa/crypto_driver_common.h +44 -0
- package/vendor/mbedtls/include/psa/crypto_driver_contexts_composites.h +151 -0
- package/vendor/mbedtls/include/psa/crypto_driver_contexts_key_derivation.h +52 -0
- package/vendor/mbedtls/include/psa/crypto_driver_contexts_primitives.h +105 -0
- package/vendor/mbedtls/include/psa/crypto_extra.h +2145 -0
- package/vendor/mbedtls/include/psa/crypto_legacy.h +88 -0
- package/vendor/mbedtls/include/psa/crypto_platform.h +102 -0
- package/vendor/mbedtls/include/psa/crypto_se_driver.h +1383 -0
- package/vendor/mbedtls/include/psa/crypto_sizes.h +1319 -0
- package/vendor/mbedtls/include/psa/crypto_struct.h +527 -0
- package/vendor/mbedtls/include/psa/crypto_types.h +508 -0
- package/vendor/mbedtls/include/psa/crypto_values.h +2782 -0
- package/vendor/mbedtls/library/aes.c +2294 -0
- package/vendor/mbedtls/library/aesce.c +624 -0
- package/vendor/mbedtls/library/aesce.h +136 -0
- package/vendor/mbedtls/library/aesni.c +846 -0
- package/vendor/mbedtls/library/aesni.h +162 -0
- package/vendor/mbedtls/library/alignment.h +704 -0
- package/vendor/mbedtls/library/aria.c +969 -0
- package/vendor/mbedtls/library/asn1parse.c +468 -0
- package/vendor/mbedtls/library/asn1write.c +440 -0
- package/vendor/mbedtls/library/base64.c +322 -0
- package/vendor/mbedtls/library/base64_internal.h +45 -0
- package/vendor/mbedtls/library/bignum.c +2583 -0
- package/vendor/mbedtls/library/bignum_core.c +1240 -0
- package/vendor/mbedtls/library/bignum_core.h +872 -0
- package/vendor/mbedtls/library/bignum_core_invasive.h +38 -0
- package/vendor/mbedtls/library/bignum_internal.h +122 -0
- package/vendor/mbedtls/library/bignum_mod.c +394 -0
- package/vendor/mbedtls/library/bignum_mod.h +452 -0
- package/vendor/mbedtls/library/bignum_mod_raw.c +276 -0
- package/vendor/mbedtls/library/bignum_mod_raw.h +416 -0
- package/vendor/mbedtls/library/bignum_mod_raw_invasive.h +34 -0
- package/vendor/mbedtls/library/block_cipher.c +207 -0
- package/vendor/mbedtls/library/block_cipher_internal.h +99 -0
- package/vendor/mbedtls/library/bn_mul.h +1094 -0
- package/vendor/mbedtls/library/camellia.c +1058 -0
- package/vendor/mbedtls/library/ccm.c +777 -0
- package/vendor/mbedtls/library/chacha20.c +563 -0
- package/vendor/mbedtls/library/chacha20_internal.h +23 -0
- package/vendor/mbedtls/library/chachapoly.c +487 -0
- package/vendor/mbedtls/library/check_crypto_config.h +136 -0
- package/vendor/mbedtls/library/cipher.c +1712 -0
- package/vendor/mbedtls/library/cipher_invasive.h +28 -0
- package/vendor/mbedtls/library/cipher_wrap.c +2482 -0
- package/vendor/mbedtls/library/cipher_wrap.h +178 -0
- package/vendor/mbedtls/library/cmac.c +1067 -0
- package/vendor/mbedtls/library/common.h +487 -0
- package/vendor/mbedtls/library/constant_time.c +247 -0
- package/vendor/mbedtls/library/constant_time_impl.h +541 -0
- package/vendor/mbedtls/library/constant_time_internal.h +579 -0
- package/vendor/mbedtls/library/ctr.h +35 -0
- package/vendor/mbedtls/library/ctr_drbg.c +1016 -0
- package/vendor/mbedtls/library/debug.c +475 -0
- package/vendor/mbedtls/library/debug_internal.h +185 -0
- package/vendor/mbedtls/library/des.c +1042 -0
- package/vendor/mbedtls/library/dhm.c +700 -0
- package/vendor/mbedtls/library/ecdh.c +696 -0
- package/vendor/mbedtls/library/ecdsa.c +858 -0
- package/vendor/mbedtls/library/ecjpake.c +1216 -0
- package/vendor/mbedtls/library/ecp.c +3674 -0
- package/vendor/mbedtls/library/ecp_curves.c +6125 -0
- package/vendor/mbedtls/library/ecp_curves_new.c +9 -0
- package/vendor/mbedtls/library/ecp_internal_alt.h +287 -0
- package/vendor/mbedtls/library/ecp_invasive.h +305 -0
- package/vendor/mbedtls/library/entropy.c +680 -0
- package/vendor/mbedtls/library/entropy_poll.c +233 -0
- package/vendor/mbedtls/library/entropy_poll.h +64 -0
- package/vendor/mbedtls/library/error.c +878 -0
- package/vendor/mbedtls/library/gcm.c +1330 -0
- package/vendor/mbedtls/library/hkdf.c +161 -0
- package/vendor/mbedtls/library/hmac_drbg.c +633 -0
- package/vendor/mbedtls/library/lmots.c +789 -0
- package/vendor/mbedtls/library/lmots.h +288 -0
- package/vendor/mbedtls/library/lms.c +778 -0
- package/vendor/mbedtls/library/md.c +1108 -0
- package/vendor/mbedtls/library/md5.c +426 -0
- package/vendor/mbedtls/library/md_psa.h +26 -0
- package/vendor/mbedtls/library/md_wrap.h +46 -0
- package/vendor/mbedtls/library/memory_buffer_alloc.c +751 -0
- package/vendor/mbedtls/library/mps_common.h +181 -0
- package/vendor/mbedtls/library/mps_error.h +89 -0
- package/vendor/mbedtls/library/mps_reader.c +538 -0
- package/vendor/mbedtls/library/mps_reader.h +366 -0
- package/vendor/mbedtls/library/mps_trace.c +112 -0
- package/vendor/mbedtls/library/mps_trace.h +154 -0
- package/vendor/mbedtls/library/net_sockets.c +694 -0
- package/vendor/mbedtls/library/nist_kw.c +729 -0
- package/vendor/mbedtls/library/oid.c +1166 -0
- package/vendor/mbedtls/library/padlock.c +157 -0
- package/vendor/mbedtls/library/padlock.h +111 -0
- package/vendor/mbedtls/library/pem.c +554 -0
- package/vendor/mbedtls/library/pk.c +1602 -0
- package/vendor/mbedtls/library/pk_ecc.c +261 -0
- package/vendor/mbedtls/library/pk_internal.h +241 -0
- package/vendor/mbedtls/library/pk_wrap.c +1618 -0
- package/vendor/mbedtls/library/pk_wrap.h +138 -0
- package/vendor/mbedtls/library/pkcs12.c +437 -0
- package/vendor/mbedtls/library/pkcs5.c +500 -0
- package/vendor/mbedtls/library/pkcs7.c +787 -0
- package/vendor/mbedtls/library/pkparse.c +1392 -0
- package/vendor/mbedtls/library/pkwrite.c +631 -0
- package/vendor/mbedtls/library/pkwrite.h +121 -0
- package/vendor/mbedtls/library/platform.c +402 -0
- package/vendor/mbedtls/library/platform_util.c +258 -0
- package/vendor/mbedtls/library/poly1305.c +492 -0
- package/vendor/mbedtls/library/psa_crypto.c +9532 -0
- package/vendor/mbedtls/library/psa_crypto_aead.c +646 -0
- package/vendor/mbedtls/library/psa_crypto_aead.h +499 -0
- package/vendor/mbedtls/library/psa_crypto_cipher.c +747 -0
- package/vendor/mbedtls/library/psa_crypto_cipher.h +316 -0
- package/vendor/mbedtls/library/psa_crypto_client.c +22 -0
- package/vendor/mbedtls/library/psa_crypto_core.h +983 -0
- package/vendor/mbedtls/library/psa_crypto_core_common.h +52 -0
- package/vendor/mbedtls/library/psa_crypto_driver_wrappers.h +2896 -0
- package/vendor/mbedtls/library/psa_crypto_driver_wrappers_no_static.c +256 -0
- package/vendor/mbedtls/library/psa_crypto_driver_wrappers_no_static.h +31 -0
- package/vendor/mbedtls/library/psa_crypto_ecp.c +594 -0
- package/vendor/mbedtls/library/psa_crypto_ecp.h +267 -0
- package/vendor/mbedtls/library/psa_crypto_ffdh.c +361 -0
- package/vendor/mbedtls/library/psa_crypto_ffdh.h +131 -0
- package/vendor/mbedtls/library/psa_crypto_hash.c +470 -0
- package/vendor/mbedtls/library/psa_crypto_hash.h +211 -0
- package/vendor/mbedtls/library/psa_crypto_invasive.h +92 -0
- package/vendor/mbedtls/library/psa_crypto_its.h +131 -0
- package/vendor/mbedtls/library/psa_crypto_mac.c +505 -0
- package/vendor/mbedtls/library/psa_crypto_mac.h +264 -0
- package/vendor/mbedtls/library/psa_crypto_pake.c +571 -0
- package/vendor/mbedtls/library/psa_crypto_pake.h +159 -0
- package/vendor/mbedtls/library/psa_crypto_random.c +181 -0
- package/vendor/mbedtls/library/psa_crypto_random.h +72 -0
- package/vendor/mbedtls/library/psa_crypto_random_impl.h +200 -0
- package/vendor/mbedtls/library/psa_crypto_rsa.c +714 -0
- package/vendor/mbedtls/library/psa_crypto_rsa.h +321 -0
- package/vendor/mbedtls/library/psa_crypto_se.c +373 -0
- package/vendor/mbedtls/library/psa_crypto_se.h +192 -0
- package/vendor/mbedtls/library/psa_crypto_slot_management.c +1137 -0
- package/vendor/mbedtls/library/psa_crypto_slot_management.h +344 -0
- package/vendor/mbedtls/library/psa_crypto_storage.c +481 -0
- package/vendor/mbedtls/library/psa_crypto_storage.h +392 -0
- package/vendor/mbedtls/library/psa_its_file.c +254 -0
- package/vendor/mbedtls/library/psa_util.c +614 -0
- package/vendor/mbedtls/library/psa_util_internal.h +100 -0
- package/vendor/mbedtls/library/ripemd160.c +490 -0
- package/vendor/mbedtls/library/rsa.c +3121 -0
- package/vendor/mbedtls/library/rsa_alt_helpers.c +455 -0
- package/vendor/mbedtls/library/rsa_alt_helpers.h +209 -0
- package/vendor/mbedtls/library/rsa_internal.h +188 -0
- package/vendor/mbedtls/library/sha1.c +480 -0
- package/vendor/mbedtls/library/sha256.c +983 -0
- package/vendor/mbedtls/library/sha3.c +721 -0
- package/vendor/mbedtls/library/sha512.c +1115 -0
- package/vendor/mbedtls/library/ssl_cache.c +410 -0
- package/vendor/mbedtls/library/ssl_ciphersuites.c +2050 -0
- package/vendor/mbedtls/library/ssl_ciphersuites_internal.h +154 -0
- package/vendor/mbedtls/library/ssl_client.c +1023 -0
- package/vendor/mbedtls/library/ssl_client.h +22 -0
- package/vendor/mbedtls/library/ssl_cookie.c +384 -0
- package/vendor/mbedtls/library/ssl_debug_helpers.h +85 -0
- package/vendor/mbedtls/library/ssl_debug_helpers_generated.c +251 -0
- package/vendor/mbedtls/library/ssl_misc.h +3198 -0
- package/vendor/mbedtls/library/ssl_msg.c +6619 -0
- package/vendor/mbedtls/library/ssl_ticket.c +556 -0
- package/vendor/mbedtls/library/ssl_tls.c +10234 -0
- package/vendor/mbedtls/library/ssl_tls12_client.c +3688 -0
- package/vendor/mbedtls/library/ssl_tls12_server.c +4311 -0
- package/vendor/mbedtls/library/ssl_tls13_client.c +3208 -0
- package/vendor/mbedtls/library/ssl_tls13_generic.c +1793 -0
- package/vendor/mbedtls/library/ssl_tls13_invasive.h +23 -0
- package/vendor/mbedtls/library/ssl_tls13_keys.c +1918 -0
- package/vendor/mbedtls/library/ssl_tls13_keys.h +668 -0
- package/vendor/mbedtls/library/ssl_tls13_server.c +3624 -0
- package/vendor/mbedtls/library/threading.c +193 -0
- package/vendor/mbedtls/library/threading_internal.h +28 -0
- package/vendor/mbedtls/library/timing.c +152 -0
- package/vendor/mbedtls/library/version.c +32 -0
- package/vendor/mbedtls/library/version_features.c +856 -0
- package/vendor/mbedtls/library/x509.c +1776 -0
- package/vendor/mbedtls/library/x509_create.c +570 -0
- package/vendor/mbedtls/library/x509_crl.c +708 -0
- package/vendor/mbedtls/library/x509_crt.c +3311 -0
- package/vendor/mbedtls/library/x509_csr.c +648 -0
- package/vendor/mbedtls/library/x509_internal.h +101 -0
- package/vendor/mbedtls/library/x509write.c +174 -0
- package/vendor/mbedtls/library/x509write_crt.c +688 -0
- package/vendor/mbedtls/library/x509write_csr.c +336 -0
- package/vendor/quickjs-ng/CMakeLists.txt +566 -0
- package/vendor/quickjs-ng/LICENSE +24 -0
- package/vendor/quickjs-ng/README.md +24 -0
- package/vendor/quickjs-ng/api-test.c +1195 -0
- package/vendor/quickjs-ng/builtin-array-fromasync.h +119 -0
- package/vendor/quickjs-ng/builtin-iterator-zip-keyed.h +332 -0
- package/vendor/quickjs-ng/builtin-iterator-zip.h +337 -0
- package/vendor/quickjs-ng/cutils.h +1998 -0
- package/vendor/quickjs-ng/dtoa.c +1619 -0
- package/vendor/quickjs-ng/dtoa.h +87 -0
- package/vendor/quickjs-ng/gen/function_source.c +81 -0
- package/vendor/quickjs-ng/gen/hello.c +53 -0
- package/vendor/quickjs-ng/gen/hello_module.c +106 -0
- package/vendor/quickjs-ng/gen/repl.c +3036 -0
- package/vendor/quickjs-ng/gen/standalone.c +323 -0
- package/vendor/quickjs-ng/gen/test_fib.c +81 -0
- package/vendor/quickjs-ng/libregexp-opcode.h +73 -0
- package/vendor/quickjs-ng/libregexp.c +3474 -0
- package/vendor/quickjs-ng/libregexp.h +101 -0
- package/vendor/quickjs-ng/libunicode-table.h +5173 -0
- package/vendor/quickjs-ng/libunicode.c +2069 -0
- package/vendor/quickjs-ng/libunicode.h +172 -0
- package/vendor/quickjs-ng/list.h +107 -0
- package/vendor/quickjs-ng/lre-test.c +52 -0
- package/vendor/quickjs-ng/qjs.c +762 -0
- package/vendor/quickjs-ng/qjsc.c +673 -0
- package/vendor/quickjs-ng/quickjs-atom.h +280 -0
- package/vendor/quickjs-ng/quickjs-c-atomics.h +54 -0
- package/vendor/quickjs-ng/quickjs-libc.c +5037 -0
- package/vendor/quickjs-ng/quickjs-libc.h +87 -0
- package/vendor/quickjs-ng/quickjs-opcode.h +377 -0
- package/vendor/quickjs-ng/quickjs.c +64041 -0
- package/vendor/quickjs-ng/quickjs.h +1447 -0
- package/vendor/quickjs-ng/run-test262.c +2374 -0
- package/vendor/quickjs-ng/unicode_gen.c +3121 -0
- package/vendor/quickjs-ng/unicode_gen_def.h +310 -0
- package/vendor/ryu/LICENSE-Boost +23 -0
- package/vendor/ryu/common.h +114 -0
- package/vendor/ryu/d2s.c +509 -0
- package/vendor/ryu/d2s_full_table.h +367 -0
- package/vendor/ryu/d2s_intrinsics.h +357 -0
- package/vendor/ryu/d2s_small_table.h +186 -0
- package/vendor/ryu/digit_table.h +35 -0
- package/vendor/ryu/ryu.h +46 -0
- package/vendor/zlib/LICENSE +22 -0
- package/vendor/zlib/adler32.c +164 -0
- package/vendor/zlib/compress.c +75 -0
- package/vendor/zlib/crc32.c +1049 -0
- package/vendor/zlib/crc32.h +9446 -0
- package/vendor/zlib/deflate.c +2139 -0
- package/vendor/zlib/deflate.h +377 -0
- package/vendor/zlib/gzclose.c +23 -0
- package/vendor/zlib/gzguts.h +214 -0
- package/vendor/zlib/gzlib.c +582 -0
- package/vendor/zlib/gzread.c +602 -0
- package/vendor/zlib/gzwrite.c +631 -0
- package/vendor/zlib/infback.c +628 -0
- package/vendor/zlib/inffast.c +320 -0
- package/vendor/zlib/inffast.h +11 -0
- package/vendor/zlib/inffixed.h +94 -0
- package/vendor/zlib/inflate.c +1526 -0
- package/vendor/zlib/inflate.h +126 -0
- package/vendor/zlib/inftrees.c +299 -0
- package/vendor/zlib/inftrees.h +62 -0
- package/vendor/zlib/trees.c +1117 -0
- package/vendor/zlib/trees.h +128 -0
- package/vendor/zlib/uncompr.c +85 -0
- package/vendor/zlib/zconf.h +543 -0
- package/vendor/zlib/zlib.h +1938 -0
- package/vendor/zlib/zutil.c +299 -0
- package/vendor/zlib/zutil.h +254 -0
- package/README.md +0 -3
- package/index.js +0 -2
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* \file pk_wrap.h
|
|
3
|
+
*
|
|
4
|
+
* \brief Public Key abstraction layer: wrapper functions
|
|
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_PK_WRAP_H
|
|
12
|
+
#define MBEDTLS_PK_WRAP_H
|
|
13
|
+
|
|
14
|
+
#include "mbedtls/build_info.h"
|
|
15
|
+
|
|
16
|
+
#include "mbedtls/pk.h"
|
|
17
|
+
|
|
18
|
+
#if defined(MBEDTLS_USE_PSA_CRYPTO)
|
|
19
|
+
#include "psa/crypto.h"
|
|
20
|
+
#endif
|
|
21
|
+
|
|
22
|
+
struct mbedtls_pk_info_t {
|
|
23
|
+
/** Public key type */
|
|
24
|
+
mbedtls_pk_type_t type;
|
|
25
|
+
|
|
26
|
+
/** Type name */
|
|
27
|
+
const char *name;
|
|
28
|
+
|
|
29
|
+
/** Get key size in bits */
|
|
30
|
+
size_t (*get_bitlen)(mbedtls_pk_context *pk);
|
|
31
|
+
|
|
32
|
+
/** Tell if the context implements this type (e.g. ECKEY can do ECDSA) */
|
|
33
|
+
int (*can_do)(mbedtls_pk_type_t type);
|
|
34
|
+
|
|
35
|
+
/** Verify signature */
|
|
36
|
+
int (*verify_func)(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
|
|
37
|
+
const unsigned char *hash, size_t hash_len,
|
|
38
|
+
const unsigned char *sig, size_t sig_len);
|
|
39
|
+
|
|
40
|
+
/** Make signature */
|
|
41
|
+
int (*sign_func)(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
|
|
42
|
+
const unsigned char *hash, size_t hash_len,
|
|
43
|
+
unsigned char *sig, size_t sig_size, size_t *sig_len,
|
|
44
|
+
int (*f_rng)(void *, unsigned char *, size_t),
|
|
45
|
+
void *p_rng);
|
|
46
|
+
|
|
47
|
+
#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
|
|
48
|
+
/** Verify signature (restartable) */
|
|
49
|
+
int (*verify_rs_func)(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
|
|
50
|
+
const unsigned char *hash, size_t hash_len,
|
|
51
|
+
const unsigned char *sig, size_t sig_len,
|
|
52
|
+
void *rs_ctx);
|
|
53
|
+
|
|
54
|
+
/** Make signature (restartable) */
|
|
55
|
+
int (*sign_rs_func)(mbedtls_pk_context *pk, mbedtls_md_type_t md_alg,
|
|
56
|
+
const unsigned char *hash, size_t hash_len,
|
|
57
|
+
unsigned char *sig, size_t sig_size, size_t *sig_len,
|
|
58
|
+
int (*f_rng)(void *, unsigned char *, size_t),
|
|
59
|
+
void *p_rng, void *rs_ctx);
|
|
60
|
+
#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
|
|
61
|
+
|
|
62
|
+
/** Decrypt message */
|
|
63
|
+
int (*decrypt_func)(mbedtls_pk_context *pk, const unsigned char *input, size_t ilen,
|
|
64
|
+
unsigned char *output, size_t *olen, size_t osize,
|
|
65
|
+
int (*f_rng)(void *, unsigned char *, size_t),
|
|
66
|
+
void *p_rng);
|
|
67
|
+
|
|
68
|
+
/** Encrypt message */
|
|
69
|
+
int (*encrypt_func)(mbedtls_pk_context *pk, const unsigned char *input, size_t ilen,
|
|
70
|
+
unsigned char *output, size_t *olen, size_t osize,
|
|
71
|
+
int (*f_rng)(void *, unsigned char *, size_t),
|
|
72
|
+
void *p_rng);
|
|
73
|
+
|
|
74
|
+
/** Check public-private key pair */
|
|
75
|
+
int (*check_pair_func)(mbedtls_pk_context *pub, mbedtls_pk_context *prv,
|
|
76
|
+
int (*f_rng)(void *, unsigned char *, size_t),
|
|
77
|
+
void *p_rng);
|
|
78
|
+
|
|
79
|
+
/** Allocate a new context */
|
|
80
|
+
void * (*ctx_alloc_func)(void);
|
|
81
|
+
|
|
82
|
+
/** Free the given context */
|
|
83
|
+
void (*ctx_free_func)(void *ctx);
|
|
84
|
+
|
|
85
|
+
#if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE)
|
|
86
|
+
/** Allocate the restart context */
|
|
87
|
+
void *(*rs_alloc_func)(void);
|
|
88
|
+
|
|
89
|
+
/** Free the restart context */
|
|
90
|
+
void (*rs_free_func)(void *rs_ctx);
|
|
91
|
+
#endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */
|
|
92
|
+
|
|
93
|
+
/** Interface with the debug module */
|
|
94
|
+
void (*debug_func)(mbedtls_pk_context *pk, mbedtls_pk_debug_item *items);
|
|
95
|
+
|
|
96
|
+
};
|
|
97
|
+
#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
|
|
98
|
+
/* Container for RSA-alt */
|
|
99
|
+
typedef struct {
|
|
100
|
+
void *key;
|
|
101
|
+
mbedtls_pk_rsa_alt_decrypt_func decrypt_func;
|
|
102
|
+
mbedtls_pk_rsa_alt_sign_func sign_func;
|
|
103
|
+
mbedtls_pk_rsa_alt_key_len_func key_len_func;
|
|
104
|
+
} mbedtls_rsa_alt_context;
|
|
105
|
+
#endif
|
|
106
|
+
|
|
107
|
+
#if defined(MBEDTLS_RSA_C)
|
|
108
|
+
extern const mbedtls_pk_info_t mbedtls_rsa_info;
|
|
109
|
+
#endif
|
|
110
|
+
|
|
111
|
+
#if defined(MBEDTLS_PK_HAVE_ECC_KEYS)
|
|
112
|
+
extern const mbedtls_pk_info_t mbedtls_eckey_info;
|
|
113
|
+
extern const mbedtls_pk_info_t mbedtls_eckeydh_info;
|
|
114
|
+
#endif
|
|
115
|
+
|
|
116
|
+
#if defined(MBEDTLS_PK_CAN_ECDSA_SOME)
|
|
117
|
+
extern const mbedtls_pk_info_t mbedtls_ecdsa_info;
|
|
118
|
+
#endif
|
|
119
|
+
|
|
120
|
+
#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
|
|
121
|
+
extern const mbedtls_pk_info_t mbedtls_rsa_alt_info;
|
|
122
|
+
#endif
|
|
123
|
+
|
|
124
|
+
#if defined(MBEDTLS_USE_PSA_CRYPTO)
|
|
125
|
+
extern const mbedtls_pk_info_t mbedtls_ecdsa_opaque_info;
|
|
126
|
+
extern const mbedtls_pk_info_t mbedtls_rsa_opaque_info;
|
|
127
|
+
|
|
128
|
+
#if defined(MBEDTLS_RSA_C)
|
|
129
|
+
int mbedtls_pk_psa_rsa_sign_ext(psa_algorithm_t psa_alg_md,
|
|
130
|
+
mbedtls_rsa_context *rsa_ctx,
|
|
131
|
+
const unsigned char *hash, size_t hash_len,
|
|
132
|
+
unsigned char *sig, size_t sig_size,
|
|
133
|
+
size_t *sig_len);
|
|
134
|
+
#endif /* MBEDTLS_RSA_C */
|
|
135
|
+
|
|
136
|
+
#endif /* MBEDTLS_USE_PSA_CRYPTO */
|
|
137
|
+
|
|
138
|
+
#endif /* MBEDTLS_PK_WRAP_H */
|
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* PKCS#12 Personal Information Exchange Syntax
|
|
3
|
+
*
|
|
4
|
+
* Copyright The Mbed TLS Contributors
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
|
|
6
|
+
*/
|
|
7
|
+
/*
|
|
8
|
+
* The PKCS #12 Personal Information Exchange Syntax Standard v1.1
|
|
9
|
+
*
|
|
10
|
+
* http://www.rsa.com/rsalabs/pkcs/files/h11301-wp-pkcs-12v1-1-personal-information-exchange-syntax.pdf
|
|
11
|
+
* ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-12/pkcs-12v1-1.asn
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
#include "common.h"
|
|
15
|
+
|
|
16
|
+
#if defined(MBEDTLS_PKCS12_C)
|
|
17
|
+
|
|
18
|
+
#include "mbedtls/pkcs12.h"
|
|
19
|
+
#include "mbedtls/asn1.h"
|
|
20
|
+
#if defined(MBEDTLS_CIPHER_C)
|
|
21
|
+
#include "mbedtls/cipher.h"
|
|
22
|
+
#endif /* MBEDTLS_CIPHER_C */
|
|
23
|
+
#include "mbedtls/platform_util.h"
|
|
24
|
+
#include "mbedtls/error.h"
|
|
25
|
+
|
|
26
|
+
#include <string.h>
|
|
27
|
+
|
|
28
|
+
#if defined(MBEDTLS_DES_C)
|
|
29
|
+
#include "mbedtls/des.h"
|
|
30
|
+
#endif
|
|
31
|
+
|
|
32
|
+
#include "psa_util_internal.h"
|
|
33
|
+
|
|
34
|
+
#if defined(MBEDTLS_ASN1_PARSE_C) && defined(MBEDTLS_CIPHER_C)
|
|
35
|
+
|
|
36
|
+
static int pkcs12_parse_pbe_params(mbedtls_asn1_buf *params,
|
|
37
|
+
mbedtls_asn1_buf *salt, int *iterations)
|
|
38
|
+
{
|
|
39
|
+
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
|
40
|
+
unsigned char **p = ¶ms->p;
|
|
41
|
+
const unsigned char *end = params->p + params->len;
|
|
42
|
+
|
|
43
|
+
/*
|
|
44
|
+
* pkcs-12PbeParams ::= SEQUENCE {
|
|
45
|
+
* salt OCTET STRING,
|
|
46
|
+
* iterations INTEGER
|
|
47
|
+
* }
|
|
48
|
+
*
|
|
49
|
+
*/
|
|
50
|
+
if (params->tag != (MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) {
|
|
51
|
+
return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT,
|
|
52
|
+
MBEDTLS_ERR_ASN1_UNEXPECTED_TAG);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if ((ret = mbedtls_asn1_get_tag(p, end, &salt->len, MBEDTLS_ASN1_OCTET_STRING)) != 0) {
|
|
56
|
+
return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT, ret);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
salt->p = *p;
|
|
60
|
+
*p += salt->len;
|
|
61
|
+
|
|
62
|
+
if ((ret = mbedtls_asn1_get_int(p, end, iterations)) != 0) {
|
|
63
|
+
return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT, ret);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (*p != end) {
|
|
67
|
+
return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT,
|
|
68
|
+
MBEDTLS_ERR_ASN1_LENGTH_MISMATCH);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return 0;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
#define PKCS12_MAX_PWDLEN 128
|
|
75
|
+
|
|
76
|
+
static int pkcs12_pbe_derive_key_iv(mbedtls_asn1_buf *pbe_params, mbedtls_md_type_t md_type,
|
|
77
|
+
const unsigned char *pwd, size_t pwdlen,
|
|
78
|
+
unsigned char *key, size_t keylen,
|
|
79
|
+
unsigned char *iv, size_t ivlen)
|
|
80
|
+
{
|
|
81
|
+
int ret, iterations = 0;
|
|
82
|
+
mbedtls_asn1_buf salt;
|
|
83
|
+
size_t i;
|
|
84
|
+
unsigned char unipwd[PKCS12_MAX_PWDLEN * 2 + 2];
|
|
85
|
+
|
|
86
|
+
if (pwdlen > PKCS12_MAX_PWDLEN) {
|
|
87
|
+
return MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
memset(&salt, 0, sizeof(mbedtls_asn1_buf));
|
|
91
|
+
memset(&unipwd, 0, sizeof(unipwd));
|
|
92
|
+
|
|
93
|
+
if ((ret = pkcs12_parse_pbe_params(pbe_params, &salt,
|
|
94
|
+
&iterations)) != 0) {
|
|
95
|
+
return ret;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
for (i = 0; i < pwdlen; i++) {
|
|
99
|
+
unipwd[i * 2 + 1] = pwd[i];
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if ((ret = mbedtls_pkcs12_derivation(key, keylen, unipwd, pwdlen * 2 + 2,
|
|
103
|
+
salt.p, salt.len, md_type,
|
|
104
|
+
MBEDTLS_PKCS12_DERIVE_KEY, iterations)) != 0) {
|
|
105
|
+
return ret;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (iv == NULL || ivlen == 0) {
|
|
109
|
+
return 0;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
if ((ret = mbedtls_pkcs12_derivation(iv, ivlen, unipwd, pwdlen * 2 + 2,
|
|
113
|
+
salt.p, salt.len, md_type,
|
|
114
|
+
MBEDTLS_PKCS12_DERIVE_IV, iterations)) != 0) {
|
|
115
|
+
return ret;
|
|
116
|
+
}
|
|
117
|
+
return 0;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
#undef PKCS12_MAX_PWDLEN
|
|
121
|
+
|
|
122
|
+
#if !defined(MBEDTLS_CIPHER_PADDING_PKCS7)
|
|
123
|
+
int mbedtls_pkcs12_pbe_ext(mbedtls_asn1_buf *pbe_params, int mode,
|
|
124
|
+
mbedtls_cipher_type_t cipher_type, mbedtls_md_type_t md_type,
|
|
125
|
+
const unsigned char *pwd, size_t pwdlen,
|
|
126
|
+
const unsigned char *data, size_t len,
|
|
127
|
+
unsigned char *output, size_t output_size,
|
|
128
|
+
size_t *output_len);
|
|
129
|
+
#endif
|
|
130
|
+
|
|
131
|
+
#if !defined(MBEDTLS_DEPRECATED_REMOVED)
|
|
132
|
+
int mbedtls_pkcs12_pbe(mbedtls_asn1_buf *pbe_params, int mode,
|
|
133
|
+
mbedtls_cipher_type_t cipher_type, mbedtls_md_type_t md_type,
|
|
134
|
+
const unsigned char *pwd, size_t pwdlen,
|
|
135
|
+
const unsigned char *data, size_t len,
|
|
136
|
+
unsigned char *output)
|
|
137
|
+
{
|
|
138
|
+
size_t output_len = 0;
|
|
139
|
+
|
|
140
|
+
/* We assume caller of the function is providing a big enough output buffer
|
|
141
|
+
* so we pass output_size as SIZE_MAX to pass checks, However, no guarantees
|
|
142
|
+
* for the output size actually being correct.
|
|
143
|
+
*/
|
|
144
|
+
return mbedtls_pkcs12_pbe_ext(pbe_params, mode, cipher_type, md_type,
|
|
145
|
+
pwd, pwdlen, data, len, output, SIZE_MAX,
|
|
146
|
+
&output_len);
|
|
147
|
+
}
|
|
148
|
+
#endif
|
|
149
|
+
|
|
150
|
+
int mbedtls_pkcs12_pbe_ext(mbedtls_asn1_buf *pbe_params, int mode,
|
|
151
|
+
mbedtls_cipher_type_t cipher_type, mbedtls_md_type_t md_type,
|
|
152
|
+
const unsigned char *pwd, size_t pwdlen,
|
|
153
|
+
const unsigned char *data, size_t len,
|
|
154
|
+
unsigned char *output, size_t output_size,
|
|
155
|
+
size_t *output_len)
|
|
156
|
+
{
|
|
157
|
+
int ret, keylen = 0;
|
|
158
|
+
unsigned char key[32];
|
|
159
|
+
unsigned char iv[16];
|
|
160
|
+
const mbedtls_cipher_info_t *cipher_info;
|
|
161
|
+
mbedtls_cipher_context_t cipher_ctx;
|
|
162
|
+
size_t iv_len = 0;
|
|
163
|
+
size_t finish_olen = 0;
|
|
164
|
+
unsigned int padlen = 0;
|
|
165
|
+
|
|
166
|
+
if (pwd == NULL && pwdlen != 0) {
|
|
167
|
+
return MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
cipher_info = mbedtls_cipher_info_from_type(cipher_type);
|
|
171
|
+
if (cipher_info == NULL) {
|
|
172
|
+
return MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
keylen = (int) mbedtls_cipher_info_get_key_bitlen(cipher_info) / 8;
|
|
176
|
+
|
|
177
|
+
if (mode == MBEDTLS_PKCS12_PBE_DECRYPT) {
|
|
178
|
+
if (output_size < len) {
|
|
179
|
+
return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
if (mode == MBEDTLS_PKCS12_PBE_ENCRYPT) {
|
|
184
|
+
padlen = cipher_info->block_size - (len % cipher_info->block_size);
|
|
185
|
+
if (output_size < (len + padlen)) {
|
|
186
|
+
return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
iv_len = mbedtls_cipher_info_get_iv_size(cipher_info);
|
|
191
|
+
if ((ret = pkcs12_pbe_derive_key_iv(pbe_params, md_type, pwd, pwdlen,
|
|
192
|
+
key, keylen,
|
|
193
|
+
iv, iv_len)) != 0) {
|
|
194
|
+
return ret;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
mbedtls_cipher_init(&cipher_ctx);
|
|
198
|
+
|
|
199
|
+
if ((ret = mbedtls_cipher_setup(&cipher_ctx, cipher_info)) != 0) {
|
|
200
|
+
goto exit;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
if ((ret = mbedtls_cipher_setkey(&cipher_ctx, key, 8 * keylen,
|
|
204
|
+
(mbedtls_operation_t) mode)) != 0) {
|
|
205
|
+
goto exit;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
#if defined(MBEDTLS_CIPHER_MODE_WITH_PADDING)
|
|
209
|
+
{
|
|
210
|
+
/* PKCS12 uses CBC with PKCS7 padding */
|
|
211
|
+
mbedtls_cipher_padding_t padding = MBEDTLS_PADDING_PKCS7;
|
|
212
|
+
#if !defined(MBEDTLS_CIPHER_PADDING_PKCS7)
|
|
213
|
+
/* For historical reasons, when decrypting, this function works when
|
|
214
|
+
* decrypting even when support for PKCS7 padding is disabled. In this
|
|
215
|
+
* case, it ignores the padding, and so will never report a
|
|
216
|
+
* password mismatch.
|
|
217
|
+
*/
|
|
218
|
+
if (mode == MBEDTLS_PKCS12_PBE_DECRYPT) {
|
|
219
|
+
padding = MBEDTLS_PADDING_NONE;
|
|
220
|
+
}
|
|
221
|
+
#endif
|
|
222
|
+
if ((ret = mbedtls_cipher_set_padding_mode(&cipher_ctx, padding)) != 0) {
|
|
223
|
+
goto exit;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
#endif /* MBEDTLS_CIPHER_MODE_WITH_PADDING */
|
|
227
|
+
|
|
228
|
+
ret = mbedtls_cipher_crypt(&cipher_ctx, iv, iv_len, data, len, output, &finish_olen);
|
|
229
|
+
if (ret == MBEDTLS_ERR_CIPHER_INVALID_PADDING) {
|
|
230
|
+
ret = MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
*output_len += finish_olen;
|
|
234
|
+
|
|
235
|
+
exit:
|
|
236
|
+
mbedtls_platform_zeroize(key, sizeof(key));
|
|
237
|
+
mbedtls_platform_zeroize(iv, sizeof(iv));
|
|
238
|
+
mbedtls_cipher_free(&cipher_ctx);
|
|
239
|
+
|
|
240
|
+
return ret;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
#endif /* MBEDTLS_ASN1_PARSE_C && MBEDTLS_CIPHER_C */
|
|
244
|
+
|
|
245
|
+
static void pkcs12_fill_buffer(unsigned char *data, size_t data_len,
|
|
246
|
+
const unsigned char *filler, size_t fill_len)
|
|
247
|
+
{
|
|
248
|
+
unsigned char *p = data;
|
|
249
|
+
size_t use_len;
|
|
250
|
+
|
|
251
|
+
if (filler != NULL && fill_len != 0) {
|
|
252
|
+
while (data_len > 0) {
|
|
253
|
+
use_len = (data_len > fill_len) ? fill_len : data_len;
|
|
254
|
+
memcpy(p, filler, use_len);
|
|
255
|
+
p += use_len;
|
|
256
|
+
data_len -= use_len;
|
|
257
|
+
}
|
|
258
|
+
} else {
|
|
259
|
+
/* If either of the above are not true then clearly there is nothing
|
|
260
|
+
* that this function can do. The function should *not* be called
|
|
261
|
+
* under either of those circumstances, as you could end up with an
|
|
262
|
+
* incorrect output but for safety's sake, leaving the check in as
|
|
263
|
+
* otherwise we could end up with memory corruption.*/
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
static int calculate_hashes(mbedtls_md_type_t md_type, int iterations,
|
|
269
|
+
unsigned char *diversifier, unsigned char *salt_block,
|
|
270
|
+
unsigned char *pwd_block, unsigned char *hash_output, int use_salt,
|
|
271
|
+
int use_password, size_t hlen, size_t v)
|
|
272
|
+
{
|
|
273
|
+
int ret = -1;
|
|
274
|
+
size_t i;
|
|
275
|
+
const mbedtls_md_info_t *md_info;
|
|
276
|
+
mbedtls_md_context_t md_ctx;
|
|
277
|
+
md_info = mbedtls_md_info_from_type(md_type);
|
|
278
|
+
if (md_info == NULL) {
|
|
279
|
+
return MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
mbedtls_md_init(&md_ctx);
|
|
283
|
+
|
|
284
|
+
if ((ret = mbedtls_md_setup(&md_ctx, md_info, 0)) != 0) {
|
|
285
|
+
return ret;
|
|
286
|
+
}
|
|
287
|
+
// Calculate hash( diversifier || salt_block || pwd_block )
|
|
288
|
+
if ((ret = mbedtls_md_starts(&md_ctx)) != 0) {
|
|
289
|
+
goto exit;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
if ((ret = mbedtls_md_update(&md_ctx, diversifier, v)) != 0) {
|
|
293
|
+
goto exit;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
if (use_salt != 0) {
|
|
297
|
+
if ((ret = mbedtls_md_update(&md_ctx, salt_block, v)) != 0) {
|
|
298
|
+
goto exit;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
if (use_password != 0) {
|
|
303
|
+
if ((ret = mbedtls_md_update(&md_ctx, pwd_block, v)) != 0) {
|
|
304
|
+
goto exit;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
if ((ret = mbedtls_md_finish(&md_ctx, hash_output)) != 0) {
|
|
309
|
+
goto exit;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
// Perform remaining ( iterations - 1 ) recursive hash calculations
|
|
313
|
+
for (i = 1; i < (size_t) iterations; i++) {
|
|
314
|
+
if ((ret = mbedtls_md(md_info, hash_output, hlen, hash_output))
|
|
315
|
+
!= 0) {
|
|
316
|
+
goto exit;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
exit:
|
|
321
|
+
mbedtls_md_free(&md_ctx);
|
|
322
|
+
return ret;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
int mbedtls_pkcs12_derivation(unsigned char *data, size_t datalen,
|
|
327
|
+
const unsigned char *pwd, size_t pwdlen,
|
|
328
|
+
const unsigned char *salt, size_t saltlen,
|
|
329
|
+
mbedtls_md_type_t md_type, int id, int iterations)
|
|
330
|
+
{
|
|
331
|
+
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
|
332
|
+
unsigned int j;
|
|
333
|
+
|
|
334
|
+
unsigned char diversifier[128];
|
|
335
|
+
unsigned char salt_block[128], pwd_block[128], hash_block[128] = { 0 };
|
|
336
|
+
unsigned char hash_output[MBEDTLS_MD_MAX_SIZE];
|
|
337
|
+
unsigned char *p;
|
|
338
|
+
unsigned char c;
|
|
339
|
+
int use_password = 0;
|
|
340
|
+
int use_salt = 0;
|
|
341
|
+
|
|
342
|
+
size_t hlen, use_len, v, i;
|
|
343
|
+
|
|
344
|
+
// This version only allows max of 64 bytes of password or salt
|
|
345
|
+
if (datalen > 128 || pwdlen > 64 || saltlen > 64) {
|
|
346
|
+
return MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
if (pwd == NULL && pwdlen != 0) {
|
|
350
|
+
return MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
if (salt == NULL && saltlen != 0) {
|
|
354
|
+
return MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
use_password = (pwd && pwdlen != 0);
|
|
358
|
+
use_salt = (salt && saltlen != 0);
|
|
359
|
+
|
|
360
|
+
hlen = mbedtls_md_get_size_from_type(md_type);
|
|
361
|
+
|
|
362
|
+
if (hlen <= 32) {
|
|
363
|
+
v = 64;
|
|
364
|
+
} else {
|
|
365
|
+
v = 128;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
memset(diversifier, (unsigned char) id, v);
|
|
369
|
+
|
|
370
|
+
if (use_salt != 0) {
|
|
371
|
+
pkcs12_fill_buffer(salt_block, v, salt, saltlen);
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
if (use_password != 0) {
|
|
375
|
+
pkcs12_fill_buffer(pwd_block, v, pwd, pwdlen);
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
p = data;
|
|
379
|
+
while (datalen > 0) {
|
|
380
|
+
if (calculate_hashes(md_type, iterations, diversifier, salt_block,
|
|
381
|
+
pwd_block, hash_output, use_salt, use_password, hlen,
|
|
382
|
+
v) != 0) {
|
|
383
|
+
goto exit;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
use_len = (datalen > hlen) ? hlen : datalen;
|
|
387
|
+
memcpy(p, hash_output, use_len);
|
|
388
|
+
datalen -= use_len;
|
|
389
|
+
p += use_len;
|
|
390
|
+
|
|
391
|
+
if (datalen == 0) {
|
|
392
|
+
break;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
// Concatenating copies of hash_output into hash_block (B)
|
|
396
|
+
pkcs12_fill_buffer(hash_block, v, hash_output, hlen);
|
|
397
|
+
|
|
398
|
+
// B += 1
|
|
399
|
+
for (i = v; i > 0; i--) {
|
|
400
|
+
if (++hash_block[i - 1] != 0) {
|
|
401
|
+
break;
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
if (use_salt != 0) {
|
|
406
|
+
// salt_block += B
|
|
407
|
+
c = 0;
|
|
408
|
+
for (i = v; i > 0; i--) {
|
|
409
|
+
j = salt_block[i - 1] + hash_block[i - 1] + c;
|
|
410
|
+
c = MBEDTLS_BYTE_1(j);
|
|
411
|
+
salt_block[i - 1] = MBEDTLS_BYTE_0(j);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
if (use_password != 0) {
|
|
416
|
+
// pwd_block += B
|
|
417
|
+
c = 0;
|
|
418
|
+
for (i = v; i > 0; i--) {
|
|
419
|
+
j = pwd_block[i - 1] + hash_block[i - 1] + c;
|
|
420
|
+
c = MBEDTLS_BYTE_1(j);
|
|
421
|
+
pwd_block[i - 1] = MBEDTLS_BYTE_0(j);
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
ret = 0;
|
|
427
|
+
|
|
428
|
+
exit:
|
|
429
|
+
mbedtls_platform_zeroize(salt_block, sizeof(salt_block));
|
|
430
|
+
mbedtls_platform_zeroize(pwd_block, sizeof(pwd_block));
|
|
431
|
+
mbedtls_platform_zeroize(hash_block, sizeof(hash_block));
|
|
432
|
+
mbedtls_platform_zeroize(hash_output, sizeof(hash_output));
|
|
433
|
+
|
|
434
|
+
return ret;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
#endif /* MBEDTLS_PKCS12_C */
|