@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,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 */
|