aws-crt 0.1.9 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/VERSION +1 -1
- data/aws-crt-ffi/crt/aws-c-auth/include/aws/auth/auth.h +1 -0
- data/aws-crt-ffi/crt/aws-c-auth/include/aws/auth/aws_imds_client.h +5 -0
- data/aws-crt-ffi/crt/aws-c-auth/include/aws/auth/credentials.h +5 -0
- data/aws-crt-ffi/crt/aws-c-auth/include/aws/auth/private/aws_signing.h +1 -0
- data/aws-crt-ffi/crt/aws-c-auth/include/aws/auth/private/credentials_utils.h +2 -0
- data/aws-crt-ffi/crt/aws-c-auth/include/aws/auth/signing_config.h +1 -0
- data/aws-crt-ffi/crt/aws-c-auth/source/auth.c +3 -1
- data/aws-crt-ffi/crt/aws-c-auth/source/aws_imds_client.c +146 -63
- data/aws-crt-ffi/crt/aws-c-auth/source/aws_signing.c +41 -19
- data/aws-crt-ffi/crt/aws-c-auth/source/credentials_provider_imds.c +1 -0
- data/aws-crt-ffi/crt/aws-c-auth/source/credentials_utils.c +1 -0
- data/aws-crt-ffi/crt/aws-c-auth/source/signable_http_request.c +2 -1
- data/aws-crt-ffi/crt/aws-c-auth/source/signing_config.c +25 -0
- data/aws-crt-ffi/crt/aws-c-auth/tests/CMakeLists.txt +3 -0
- data/aws-crt-ffi/crt/aws-c-auth/tests/aws_imds_client_test.c +197 -31
- data/aws-crt-ffi/crt/aws-c-auth/tests/credentials_provider_imds_tests.c +16 -18
- data/aws-crt-ffi/crt/aws-c-auth/tests/sigv4_signing_tests.c +3 -1
- data/aws-crt-ffi/crt/aws-c-cal/include/aws/cal/private/opensslcrypto_common.h +22 -0
- data/aws-crt-ffi/crt/aws-c-cal/source/darwin/commoncrypto_aes.c +46 -17
- data/aws-crt-ffi/crt/aws-c-cal/source/unix/openssl_aes.c +1 -0
- data/aws-crt-ffi/crt/aws-c-cal/source/unix/openssl_platform_init.c +7 -0
- data/aws-crt-ffi/crt/aws-c-cal/source/unix/openssl_rsa.c +59 -2
- data/aws-crt-ffi/crt/aws-c-cal/source/unix/opensslcrypto_ecc.c +1 -0
- data/aws-crt-ffi/crt/aws-c-common/CMakeLists.txt +13 -1
- data/aws-crt-ffi/crt/aws-c-common/THIRD-PARTY-LICENSES.txt +28 -7
- data/aws-crt-ffi/crt/aws-c-common/bin/system_info/CMakeLists.txt +18 -0
- data/aws-crt-ffi/crt/aws-c-common/bin/system_info/print_system_info.c +48 -0
- data/aws-crt-ffi/crt/aws-c-common/include/aws/common/allocator.h +23 -0
- data/aws-crt-ffi/crt/aws-c-common/include/aws/common/byte_buf.h +12 -0
- data/aws-crt-ffi/crt/aws-c-common/include/aws/common/cross_process_lock.h +35 -0
- data/aws-crt-ffi/crt/aws-c-common/include/aws/common/hash_table.h +1 -0
- data/aws-crt-ffi/crt/aws-c-common/include/aws/common/priority_queue.h +24 -0
- data/aws-crt-ffi/crt/aws-c-common/include/aws/common/private/system_info_priv.h +37 -0
- data/aws-crt-ffi/crt/aws-c-common/include/aws/common/system_info.h +47 -0
- data/aws-crt-ffi/crt/aws-c-common/include/aws/common/system_resource_util.h +30 -0
- data/aws-crt-ffi/crt/aws-c-common/include/aws/testing/aws_test_harness.h +3 -2
- data/aws-crt-ffi/crt/aws-c-common/source/allocator.c +64 -13
- data/aws-crt-ffi/crt/aws-c-common/source/android/logging.c +14 -0
- data/aws-crt-ffi/crt/aws-c-common/source/common.c +3 -3
- data/aws-crt-ffi/crt/aws-c-common/source/file.c +96 -35
- data/aws-crt-ffi/crt/aws-c-common/source/linux/system_info.c +24 -0
- data/aws-crt-ffi/crt/aws-c-common/source/memtrace.c +10 -3
- data/aws-crt-ffi/crt/aws-c-common/source/platform_fallback_stubs/system_info.c +21 -0
- data/aws-crt-ffi/crt/aws-c-common/source/posix/cross_process_lock.c +141 -0
- data/aws-crt-ffi/crt/aws-c-common/source/posix/system_info.c +1 -1
- data/aws-crt-ffi/crt/aws-c-common/source/posix/system_resource_utils.c +32 -0
- data/aws-crt-ffi/crt/aws-c-common/source/priority_queue.c +24 -0
- data/aws-crt-ffi/crt/aws-c-common/source/system_info.c +80 -0
- data/aws-crt-ffi/crt/aws-c-common/source/task_scheduler.c +2 -2
- data/aws-crt-ffi/crt/aws-c-common/source/windows/cross_process_lock.c +93 -0
- data/aws-crt-ffi/crt/aws-c-common/source/windows/system_resource_utils.c +31 -0
- data/aws-crt-ffi/crt/aws-c-common/tests/CMakeLists.txt +16 -0
- data/aws-crt-ffi/crt/aws-c-common/tests/alloc_test.c +83 -22
- data/aws-crt-ffi/crt/aws-c-common/tests/cross_process_lock_tests.c +116 -0
- data/aws-crt-ffi/crt/aws-c-common/tests/file_test.c +103 -0
- data/aws-crt-ffi/crt/aws-c-common/tests/priority_queue_test.c +36 -0
- data/aws-crt-ffi/crt/aws-c-common/tests/system_info_tests.c +19 -0
- data/aws-crt-ffi/crt/aws-c-common/tests/system_resource_util_test.c +37 -0
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/connection.h +9 -0
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/http.h +1 -0
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/private/connection_impl.h +5 -4
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/private/connection_manager_system_vtable.h +10 -18
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/private/proxy_impl.h +5 -1
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/private/request_response_impl.h +5 -0
- data/aws-crt-ffi/crt/aws-c-http/include/aws/http/request_response.h +10 -0
- data/aws-crt-ffi/crt/aws-c-http/source/connection.c +5 -2
- data/aws-crt-ffi/crt/aws-c-http/source/connection_manager.c +22 -21
- data/aws-crt-ffi/crt/aws-c-http/source/h1_connection.c +102 -17
- data/aws-crt-ffi/crt/aws-c-http/source/h1_stream.c +1 -0
- data/aws-crt-ffi/crt/aws-c-http/source/http.c +3 -0
- data/aws-crt-ffi/crt/aws-c-http/source/proxy_connection.c +2 -2
- data/aws-crt-ffi/crt/aws-c-http/tests/CMakeLists.txt +2 -0
- data/aws-crt-ffi/crt/aws-c-http/tests/test_connection_manager.c +18 -18
- data/aws-crt-ffi/crt/aws-c-http/tests/test_h1_client.c +111 -1
- data/aws-crt-ffi/crt/aws-c-http/tests/test_proxy.c +2 -2
- data/aws-crt-ffi/crt/aws-c-http/tests/test_stream_manager.c +2 -2
- data/aws-crt-ffi/crt/aws-c-io/include/aws/io/retry_strategy.h +1 -1
- data/aws-crt-ffi/crt/aws-c-io/source/exponential_backoff_retry_strategy.c +1 -1
- data/aws-crt-ffi/crt/aws-c-io/source/pkcs11_tls_op_handler.c +2 -4
- data/aws-crt-ffi/crt/aws-lc/CMakeLists.txt +16 -8
- data/aws-crt-ffi/crt/aws-lc/cmake/go.cmake +6 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/CMakeLists.txt +6 -9
- data/aws-crt-ffi/crt/aws-lc/crypto/asn1/a_time.c +34 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/asn1/a_utctm.c +4 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/asn1/asn1_test.cc +41 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/bio/bio_mem.c +6 -7
- data/aws-crt-ffi/crt/aws-lc/crypto/bio/bio_test.cc +152 -16
- data/aws-crt-ffi/crt/aws-lc/crypto/bio/connect.c +6 -12
- data/aws-crt-ffi/crt/aws-lc/crypto/bio/fd.c +2 -2
- data/aws-crt-ffi/crt/aws-lc/crypto/bio/file.c +20 -8
- data/aws-crt-ffi/crt/aws-lc/crypto/bio/socket.c +2 -2
- data/aws-crt-ffi/crt/aws-lc/crypto/bio/socket_helper.c +2 -2
- data/aws-crt-ffi/crt/aws-lc/crypto/blake2/blake2.c +11 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/bytestring/cbb.c +13 -3
- data/aws-crt-ffi/crt/aws-lc/crypto/bytestring/cbs.c +9 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/chacha/asm/chacha-armv8.pl +1 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/chacha/chacha.c +49 -8
- data/aws-crt-ffi/crt/aws-lc/crypto/chacha/chacha_test.cc +110 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/chacha/internal.h +8 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/compiler_test.cc +4 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/conf/conf_test.cc +1 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/crypto_test.cc +9 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/curve25519/curve25519.c +189 -108
- data/aws-crt-ffi/crt/aws-lc/crypto/curve25519/curve25519_nohw.c +78 -6
- data/aws-crt-ffi/crt/aws-lc/crypto/curve25519/ed25519_test.cc +9 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/curve25519/internal.h +24 -10
- data/aws-crt-ffi/crt/aws-lc/crypto/curve25519/spake25519.c +4 -4
- data/aws-crt-ffi/crt/aws-lc/crypto/curve25519/x25519_test.cc +80 -11
- data/aws-crt-ffi/crt/aws-lc/crypto/decrepit/evp/evp_do_all.c +2 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/digest_extra/digest_extra.c +8 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/digest_extra/digest_test.cc +110 -45
- data/aws-crt-ffi/crt/aws-lc/crypto/dsa/dsa_test.cc +8 -2
- data/aws-crt-ffi/crt/aws-lc/crypto/dsa/internal.h +18 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/dynamic_loading_test.c +8 -5
- data/aws-crt-ffi/crt/aws-lc/crypto/ec_extra/ec_derive.c +4 -3
- data/aws-crt-ffi/crt/aws-lc/crypto/ec_extra/hash_to_curve.c +6 -18
- data/aws-crt-ffi/crt/aws-lc/crypto/endian_test.cc +308 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/err/ssl.errordata +2 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/evp_extra/evp_extra_test.cc +2 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/evp_extra/evp_test.cc +11 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/evp_extra/evp_tests.txt +25 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/evp_extra/p_ec_asn1.c +1 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/evp_extra/p_kem.c +2 -2
- data/aws-crt-ffi/crt/aws-lc/crypto/evp_extra/p_rsa_asn1.c +1 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/evp_extra/print.c +7 -6
- data/aws-crt-ffi/crt/aws-lc/crypto/evp_extra/scrypt.c +13 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/CMakeLists.txt +13 -4
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/aes/aes_nohw.c +18 -6
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/bcm.c +12 -4
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/bn/bn_assert_test.cc +77 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/bn/bn_test.cc +30 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/bn/bytes.c +112 -22
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/bn/div.c +12 -5
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/bn/exponentiation.c +54 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/bn/gcd.c +5 -6
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/bn/internal.h +37 -15
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/bn/montgomery.c +4 -11
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/bn/montgomery_inv.c +51 -15
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/cipher/aead.c +2 -2
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/digest/digest.c +29 -6
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/digest/digests.c +89 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/digest/internal.h +4 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/ec/ec.c +19 -36
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/ec/ec_key.c +3 -3
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/ec/ec_montgomery.c +9 -7
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/ec/ec_test.cc +33 -9
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/ec/internal.h +17 -12
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/ec/p224-64.c +5 -8
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/ec/p256-nistz.c +8 -8
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/ec/p256.c +9 -8
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/ec/p384.c +33 -16
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/ec/p521.c +14 -6
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/ec/scalar.c +26 -24
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/ec/simple_mul.c +8 -5
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/ec/wnaf.c +3 -3
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/ecdsa/ecdsa.c +9 -3
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/evp/evp.c +43 -12
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/evp/p_ec.c +4 -3
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/hmac/hmac.c +3 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/modes/xts.c +26 -3
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/rand/cpu_jitter_test.cc +1 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/rand/internal.h +20 -11
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/rand/rand.c +10 -10
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/rand/urandom.c +2 -2
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/rsa/internal.h +59 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/rsa/padding.c +9 -3
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/rsa/rsa.c +7 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/rsa/rsa_impl.c +51 -60
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/service_indicator/service_indicator.c +5 -2
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/service_indicator/service_indicator_test.cc +205 -5
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/sha/asm/sha1-armv8.pl +1 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/sha/asm/sha512-armv8.pl +1 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/sha/internal.h +8 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/sha/sha3.c +37 -15
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/sha/sha3_test.cc +115 -110
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/sha/sha512.c +55 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/fipsmodule/sshkdf/sshkdf.c +2 -2
- data/aws-crt-ffi/crt/aws-lc/crypto/hmac_extra/hmac_test.cc +12 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/hmac_extra/hmac_tests.txt +10 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/hrss/asm/poly_rq_mul.S +2 -6
- data/aws-crt-ffi/crt/aws-lc/crypto/impl_dispatch_test.cc +9 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/internal.h +90 -8
- data/aws-crt-ffi/crt/aws-lc/crypto/kem/kem.c +28 -27
- data/aws-crt-ffi/crt/aws-lc/crypto/kyber/kem_kyber.h +14 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/obj/obj_dat.h +52 -2
- data/aws-crt-ffi/crt/aws-lc/crypto/obj/obj_mac.num +5 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/obj/objects.txt +7 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/perlasm/arm-xlate.pl +3 -14
- data/aws-crt-ffi/crt/aws-lc/crypto/perlasm/ppc-xlate.pl +1 -5
- data/aws-crt-ffi/crt/aws-lc/crypto/perlasm/x86_64-xlate.pl +4 -15
- data/aws-crt-ffi/crt/aws-lc/crypto/perlasm/x86asm.pl +4 -13
- data/aws-crt-ffi/crt/aws-lc/crypto/poly1305/poly1305_arm_asm.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/crypto/rand_extra/deterministic.c +4 -3
- data/aws-crt-ffi/crt/aws-lc/crypto/rand_extra/fuchsia.c +4 -4
- data/aws-crt-ffi/crt/aws-lc/crypto/rand_extra/rand_test.cc +0 -63
- data/aws-crt-ffi/crt/aws-lc/crypto/rand_extra/windows.c +41 -19
- data/aws-crt-ffi/crt/aws-lc/crypto/rsa_extra/rsa_test.cc +3 -3
- data/aws-crt-ffi/crt/aws-lc/crypto/siphash/siphash.c +12 -5
- data/aws-crt-ffi/crt/aws-lc/crypto/siphash/siphash_test.cc +5 -5
- data/aws-crt-ffi/crt/aws-lc/crypto/stack/stack.c +68 -46
- data/aws-crt-ffi/crt/aws-lc/crypto/trust_token/pmbtoken.c +4 -4
- data/aws-crt-ffi/crt/aws-lc/crypto/trust_token/voprf.c +2 -2
- data/aws-crt-ffi/crt/aws-lc/crypto/x509/by_dir.c +0 -6
- data/aws-crt-ffi/crt/aws-lc/crypto/x509/internal.h +4 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/x509/x509_lu.c +33 -9
- data/aws-crt-ffi/crt/aws-lc/crypto/x509/x509_test.cc +87 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/x509/x509_trs.c +1 -1
- data/aws-crt-ffi/crt/aws-lc/crypto/x509/x509_vfy.c +35 -13
- data/aws-crt-ffi/crt/aws-lc/crypto/x509v3/v3_lib.c +2 -0
- data/aws-crt-ffi/crt/aws-lc/crypto/x509v3/v3_purp.c +4 -6
- data/aws-crt-ffi/crt/aws-lc/generated-src/crypto_test_data.cc +179 -151
- data/aws-crt-ffi/crt/aws-lc/generated-src/err_data.c +353 -349
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/chacha/chacha-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/cipher_extra/chacha20_poly1305_armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/fipsmodule/aesv8-armx.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-unroll8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/fipsmodule/aesv8-gcm-armv8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/fipsmodule/armv8-mont.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/fipsmodule/bn-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/fipsmodule/ghash-neon-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/fipsmodule/ghashv8-armx.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/fipsmodule/keccak1600-armv8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/fipsmodule/md5-armv8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/fipsmodule/p256-armv8-asm.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/fipsmodule/p256_beeu-armv8-asm.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/fipsmodule/sha1-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/fipsmodule/sha256-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/fipsmodule/sha512-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/fipsmodule/vpaes-armv8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-aarch64/crypto/test/trampoline-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-arm/crypto/chacha/chacha-armv4.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-arm/crypto/fipsmodule/aesv8-armx.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-arm/crypto/fipsmodule/armv4-mont.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-arm/crypto/fipsmodule/bsaes-armv7.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-arm/crypto/fipsmodule/ghash-armv4.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-arm/crypto/fipsmodule/ghashv8-armx.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-arm/crypto/fipsmodule/sha1-armv4-large.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-arm/crypto/fipsmodule/sha256-armv4.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-arm/crypto/fipsmodule/sha512-armv4.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-arm/crypto/fipsmodule/vpaes-armv7.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/ios-arm/crypto/test/trampoline-armv4.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/chacha/chacha-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/cipher_extra/chacha20_poly1305_armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/fipsmodule/aesv8-armx.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-unroll8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/fipsmodule/aesv8-gcm-armv8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/fipsmodule/armv8-mont.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/fipsmodule/bn-armv8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/fipsmodule/ghash-neon-armv8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/fipsmodule/ghashv8-armx.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/fipsmodule/keccak1600-armv8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/fipsmodule/md5-armv8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/fipsmodule/p256-armv8-asm.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/fipsmodule/p256_beeu-armv8-asm.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/fipsmodule/sha1-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/fipsmodule/sha256-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/fipsmodule/sha512-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/fipsmodule/vpaes-armv8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-aarch64/crypto/test/trampoline-armv8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-arm/crypto/chacha/chacha-armv4.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-arm/crypto/fipsmodule/aesv8-armx.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-arm/crypto/fipsmodule/armv4-mont.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-arm/crypto/fipsmodule/bsaes-armv7.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-arm/crypto/fipsmodule/ghash-armv4.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-arm/crypto/fipsmodule/ghashv8-armx.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-arm/crypto/fipsmodule/sha1-armv4-large.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-arm/crypto/fipsmodule/sha256-armv4.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-arm/crypto/fipsmodule/sha512-armv4.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-arm/crypto/fipsmodule/vpaes-armv7.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-arm/crypto/test/trampoline-armv4.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-ppc64le/crypto/fipsmodule/aesp8-ppc.S +1 -5
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-ppc64le/crypto/fipsmodule/ghashp8-ppc.S +1 -5
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-ppc64le/crypto/test/trampoline-ppc.S +1 -5
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86/crypto/chacha/chacha-x86.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86/crypto/fipsmodule/aesni-x86.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86/crypto/fipsmodule/bn-586.S +4 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86/crypto/fipsmodule/co-586.S +4 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86/crypto/fipsmodule/ghash-ssse3-x86.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86/crypto/fipsmodule/ghash-x86.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86/crypto/fipsmodule/md5-586.S +4 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86/crypto/fipsmodule/sha1-586.S +4 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86/crypto/fipsmodule/sha256-586.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86/crypto/fipsmodule/sha512-586.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86/crypto/fipsmodule/vpaes-x86.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86/crypto/fipsmodule/x86-mont.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86/crypto/test/trampoline-x86.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/chacha/chacha-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/cipher_extra/aesni-sha1-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/cipher_extra/aesni-sha256-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/fipsmodule/aesni-gcm-avx512.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/fipsmodule/aesni-xts-avx512.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/fipsmodule/md5-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/fipsmodule/x86_64-mont.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/linux-x86_64/crypto/test/trampoline-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86/crypto/chacha/chacha-x86.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86/crypto/fipsmodule/aesni-x86.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86/crypto/fipsmodule/bn-586.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86/crypto/fipsmodule/co-586.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86/crypto/fipsmodule/ghash-ssse3-x86.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86/crypto/fipsmodule/ghash-x86.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86/crypto/fipsmodule/md5-586.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86/crypto/fipsmodule/sha1-586.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86/crypto/fipsmodule/sha256-586.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86/crypto/fipsmodule/sha512-586.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86/crypto/fipsmodule/vpaes-x86.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86/crypto/fipsmodule/x86-mont.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86/crypto/test/trampoline-x86.S +3 -12
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/chacha/chacha-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/cipher_extra/aesni-sha1-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/cipher_extra/aesni-sha256-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/fipsmodule/aesni-gcm-avx512.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/fipsmodule/aesni-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/fipsmodule/aesni-xts-avx512.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/fipsmodule/ghash-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/fipsmodule/md5-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/fipsmodule/p256-x86_64-asm.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/fipsmodule/rdrand-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/fipsmodule/rsaz-avx2.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/fipsmodule/sha1-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/fipsmodule/sha256-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/fipsmodule/sha512-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/fipsmodule/vpaes-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/fipsmodule/x86_64-mont.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/fipsmodule/x86_64-mont5.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/mac-x86_64/crypto/test/trampoline-x86_64.S +2 -11
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/chacha/chacha-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/cipher_extra/chacha20_poly1305_armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/fipsmodule/aesv8-armx.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-unroll8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/fipsmodule/aesv8-gcm-armv8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/fipsmodule/armv8-mont.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/fipsmodule/bn-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/fipsmodule/ghash-neon-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/fipsmodule/ghashv8-armx.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/fipsmodule/keccak1600-armv8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/fipsmodule/md5-armv8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/fipsmodule/p256-armv8-asm.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/fipsmodule/p256_beeu-armv8-asm.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/fipsmodule/sha1-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/fipsmodule/sha256-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/fipsmodule/sha512-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/fipsmodule/vpaes-armv8.S +3 -13
- data/aws-crt-ffi/crt/aws-lc/generated-src/win-aarch64/crypto/test/trampoline-armv8.S +4 -14
- data/aws-crt-ffi/crt/aws-lc/go.mod +4 -4
- data/aws-crt-ffi/crt/aws-lc/go.sum +8 -10
- data/aws-crt-ffi/crt/aws-lc/include/openssl/aead.h +2 -2
- data/aws-crt-ffi/crt/aws-lc/include/openssl/arm_arch.h +4 -119
- data/aws-crt-ffi/crt/aws-lc/include/openssl/asm_base.h +185 -0
- data/aws-crt-ffi/crt/aws-lc/include/openssl/asn1.h +5 -0
- data/aws-crt-ffi/crt/aws-lc/include/openssl/base.h +31 -134
- data/aws-crt-ffi/crt/aws-lc/include/openssl/bio.h +30 -18
- data/aws-crt-ffi/crt/aws-lc/include/openssl/bn.h +0 -2
- data/aws-crt-ffi/crt/aws-lc/include/openssl/chacha.h +6 -0
- data/aws-crt-ffi/crt/aws-lc/include/openssl/cipher.h +2 -2
- data/aws-crt-ffi/crt/aws-lc/include/openssl/digest.h +9 -6
- data/aws-crt-ffi/crt/aws-lc/include/openssl/dsa.h +0 -21
- data/aws-crt-ffi/crt/aws-lc/include/openssl/ec.h +1 -1
- data/aws-crt-ffi/crt/aws-lc/include/openssl/err.h +1 -1
- data/aws-crt-ffi/crt/aws-lc/include/openssl/evp.h +8 -5
- data/aws-crt-ffi/crt/aws-lc/include/openssl/nid.h +21 -0
- data/aws-crt-ffi/crt/aws-lc/include/openssl/rsa.h +1 -65
- data/aws-crt-ffi/crt/aws-lc/include/openssl/sha.h +22 -1
- data/aws-crt-ffi/crt/aws-lc/include/openssl/ssl.h +121 -13
- data/aws-crt-ffi/crt/aws-lc/include/openssl/stack.h +229 -208
- data/aws-crt-ffi/crt/aws-lc/include/openssl/target.h +166 -0
- data/aws-crt-ffi/crt/aws-lc/include/openssl/x509.h +30 -10
- data/aws-crt-ffi/crt/aws-lc/include/openssl/x509v3.h +6 -4
- data/aws-crt-ffi/crt/aws-lc/sources.cmake +2 -0
- data/aws-crt-ffi/crt/aws-lc/ssl/extensions.cc +12 -7
- data/aws-crt-ffi/crt/aws-lc/ssl/handshake_server.cc +28 -18
- data/aws-crt-ffi/crt/aws-lc/ssl/internal.h +41 -6
- data/aws-crt-ffi/crt/aws-lc/ssl/s3_both.cc +9 -17
- data/aws-crt-ffi/crt/aws-lc/ssl/ssl_cipher.cc +13 -5
- data/aws-crt-ffi/crt/aws-lc/ssl/ssl_key_share.cc +542 -2
- data/aws-crt-ffi/crt/aws-lc/ssl/ssl_lib.cc +35 -0
- data/aws-crt-ffi/crt/aws-lc/ssl/ssl_test.cc +1847 -14
- data/aws-crt-ffi/crt/aws-lc/ssl/ssl_x509.cc +128 -0
- data/aws-crt-ffi/crt/aws-lc/ssl/test/PORTING.md +10 -7
- data/aws-crt-ffi/crt/aws-lc/ssl/test/bssl_shim.cc +133 -77
- data/aws-crt-ffi/crt/aws-lc/ssl/test/handshake_util.cc +3 -3
- data/aws-crt-ffi/crt/aws-lc/ssl/test/handshaker.cc +4 -0
- data/aws-crt-ffi/crt/aws-lc/ssl/test/runner/handshake_client.go +6 -2
- data/aws-crt-ffi/crt/aws-lc/ssl/test/runner/handshake_messages.go +894 -1042
- data/aws-crt-ffi/crt/aws-lc/ssl/test/runner/handshake_server.go +24 -23
- data/aws-crt-ffi/crt/aws-lc/ssl/test/runner/prf.go +6 -5
- data/aws-crt-ffi/crt/aws-lc/ssl/test/runner/runner.go +56 -55
- data/aws-crt-ffi/crt/aws-lc/ssl/test/runner/shim_dispatcher.go +188 -0
- data/aws-crt-ffi/crt/aws-lc/ssl/test/runner/ticket.go +37 -39
- data/aws-crt-ffi/crt/aws-lc/ssl/test/test_config.cc +59 -24
- data/aws-crt-ffi/crt/aws-lc/ssl/test/test_config.h +3 -2
- data/aws-crt-ffi/crt/aws-lc/ssl/tls13_server.cc +10 -11
- data/aws-crt-ffi/crt/aws-lc/tests/ci/cdk/app.py +4 -4
- data/aws-crt-ffi/crt/aws-lc/tests/ci/cdk/cdk/{aws_lc_mac_arm_ci_stack.py → aws_lc_ec2_test_framework_ci_stack.py} +13 -29
- data/aws-crt-ffi/crt/aws-lc/tests/ci/cdk/cdk/ssm/general_test_run_ssm_document.yaml +43 -0
- data/aws-crt-ffi/crt/aws-lc/tests/ci/common_posix_setup.sh +10 -0
- data/aws-crt-ffi/crt/aws-lc/tests/ci/docker_images/linux-aarch/amazonlinux-2023_base/Dockerfile +5 -1
- data/aws-crt-ffi/crt/aws-lc/tests/ci/docker_images/linux-aarch/ubuntu-22.04_base/Dockerfile +19 -3
- data/aws-crt-ffi/crt/aws-lc/tests/ci/docker_images/linux-x86/amazonlinux-2_gcc-7x-intel-sde/Dockerfile +5 -4
- data/aws-crt-ffi/crt/aws-lc/tests/ci/docker_images/linux-x86/build_images.sh +1 -0
- data/aws-crt-ffi/crt/aws-lc/tests/ci/docker_images/linux-x86/push_images.sh +2 -1
- data/aws-crt-ffi/crt/aws-lc/tests/ci/docker_images/linux-x86/ubuntu-20.04_clang-10x_formal-verification/create_image.sh +1 -1
- data/aws-crt-ffi/crt/aws-lc/tests/ci/docker_images/linux-x86/ubuntu-22.04_base/Dockerfile +1 -0
- data/aws-crt-ffi/crt/aws-lc/tests/ci/docker_images/linux-x86/ubuntu-22.04_clang-14x-sde/Dockerfile +42 -0
- data/aws-crt-ffi/crt/aws-lc/tests/ci/docker_images/windows/vs2017/Dockerfile +14 -0
- data/aws-crt-ffi/crt/aws-lc/tests/ci/docker_images/windows/windows_base/Dockerfile +3 -0
- data/aws-crt-ffi/crt/aws-lc/tests/ci/integration/README.md +12 -0
- data/aws-crt-ffi/crt/aws-lc/tests/ci/integration/nginx_patch/aws-lc-nginx.patch +68 -23
- data/aws-crt-ffi/crt/aws-lc/tests/ci/integration/run_crt_integration.sh +27 -0
- data/aws-crt-ffi/crt/aws-lc/tests/ci/integration/run_monit_integration.sh +56 -0
- data/aws-crt-ffi/crt/aws-lc/tests/ci/integration/sslproxy_patch/aws-lc-sslproxy.patch +2 -2
- data/aws-crt-ffi/crt/aws-lc/tests/ci/run_ec2_test_framework.sh +135 -0
- data/aws-crt-ffi/crt/aws-lc/tests/ci/run_fips_tests.sh +14 -2
- data/aws-crt-ffi/crt/aws-lc/tests/ci/run_tests_with_sde.sh +4 -1
- data/aws-crt-ffi/crt/aws-lc/tests/ci/run_tests_with_sde_asan.sh +14 -0
- data/aws-crt-ffi/crt/aws-lc/tests/ci/run_windows_tests.bat +39 -3
- data/aws-crt-ffi/crt/aws-lc/third_party/fiat/README.md +21 -6
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/bignum_madd_n25519.S +284 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/bignum_madd_n25519_alt.S +210 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/bignum_mod_n25519.S +186 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/bignum_neg_p25519.S +65 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/curve25519_x25519.S +1043 -352
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/curve25519_x25519_alt.S +1043 -352
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/curve25519_x25519_byte.S +1043 -352
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/curve25519_x25519_byte_alt.S +1043 -352
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/curve25519_x25519base.S +1042 -352
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/curve25519_x25519base_alt.S +1042 -352
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/curve25519_x25519base_byte.S +1042 -352
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/curve25519_x25519base_byte_alt.S +1043 -354
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/edwards25519_decode.S +700 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/edwards25519_decode_alt.S +563 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/edwards25519_encode.S +131 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/edwards25519_scalarmulbase.S +9626 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/edwards25519_scalarmulbase_alt.S +9468 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/edwards25519_scalarmuldouble.S +3157 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/curve25519/edwards25519_scalarmuldouble_alt.S +2941 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/p384/Makefile +1 -1
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/arm/p521/Makefile +1 -1
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/include/s2n-bignum_aws-lc.h +34 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_madd_n25519.S +219 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_madd_n25519_alt.S +245 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_mod_n25519.S +228 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/x86_att/curve25519/bignum_neg_p25519.S +86 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519.S +1350 -407
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519_alt.S +1350 -407
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base.S +1344 -400
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/x86_att/curve25519/curve25519_x25519base_alt.S +1348 -402
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_decode.S +670 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_decode_alt.S +751 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_encode.S +81 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase.S +9910 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmulbase_alt.S +9986 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble.S +3619 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/s2n-bignum/x86_att/curve25519/edwards25519_scalarmuldouble_alt.S +3736 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/wycheproof_testvectors/hmac_sha512_224_test.json +1978 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/wycheproof_testvectors/hmac_sha512_224_test.txt +1403 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/wycheproof_testvectors/hmac_sha512_256_test.json +1993 -0
- data/aws-crt-ffi/crt/aws-lc/third_party/wycheproof_testvectors/hmac_sha512_256_test.txt +1416 -0
- data/aws-crt-ffi/crt/aws-lc/tool/digest.cc +4 -0
- data/aws-crt-ffi/crt/aws-lc/tool/internal.h +1 -0
- data/aws-crt-ffi/crt/aws-lc/tool/speed.cc +53 -6
- data/aws-crt-ffi/crt/aws-lc/util/all_tests.go +43 -12
- data/aws-crt-ffi/crt/aws-lc/util/all_tests.json +13 -5
- data/aws-crt-ffi/crt/aws-lc/util/bot/DEPS +4 -4
- data/aws-crt-ffi/crt/aws-lc/util/bot/update_clang.py +8 -2
- data/aws-crt-ffi/crt/aws-lc/util/codecov-ci.sh +82 -0
- data/aws-crt-ffi/crt/aws-lc/util/convert_wycheproof/convert_wycheproof.go +7 -5
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/ACVP.md +7 -0
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/acvptool/subprocess/hash.go +24 -9
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/acvptool/subprocess/rsa.go +3 -4
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/acvptool/subprocess/subprocess.go +15 -10
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/acvptool/test/expected/HMAC-SHA2-512-224.bz2 +0 -0
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/acvptool/test/expected/SHA2-512-224.bz2 +0 -0
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/acvptool/test/expected/SHAKE-128.bz2 +0 -0
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/acvptool/test/expected/SHAKE-256.bz2 +0 -0
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/acvptool/test/sha-tests/sha512-224-tests.json +1 -0
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/acvptool/test/sha-tests/shake-128-tests.json +1 -0
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/acvptool/test/sha-tests/shake-256-tests.json +1 -0
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/acvptool/test/tests.json +1 -0
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/acvptool/test/vectors/HMAC-SHA2-512-224.bz2 +0 -0
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/acvptool/test/vectors/SHA2-512-224.bz2 +0 -0
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/acvptool/test/vectors/SHAKE-128.bz2 +0 -0
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/acvptool/test/vectors/SHAKE-256.bz2 +0 -0
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/modulewrapper/main.cc +4 -0
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/acvp/modulewrapper/modulewrapper.cc +144 -1
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/delocate/delocate.go +9 -3
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/delocate/testdata/aarch64-Basic/in.s +4 -0
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/delocate/testdata/aarch64-Basic/out.s +11 -0
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/inject_hash/inject_hash.go +13 -4
- data/aws-crt-ffi/crt/aws-lc/util/fipstools/test-break-kat.sh +2 -0
- data/aws-crt-ffi/crt/aws-lc/util/testconfig/testconfig.go +2 -1
- data/aws-crt-ffi/crt/s2n/api/s2n.h +9 -5
- data/aws-crt-ffi/crt/s2n/bindings/rust/bench/benches/handshake.rs +9 -6
- data/aws-crt-ffi/crt/s2n/bindings/rust/bench/benches/resumption.rs +14 -14
- data/aws-crt-ffi/crt/s2n/bindings/rust/bench/benches/throughput.rs +9 -6
- data/aws-crt-ffi/crt/s2n/bindings/rust/bench/src/harness.rs +106 -102
- data/aws-crt-ffi/crt/s2n/bindings/rust/bench/src/openssl.rs +24 -20
- data/aws-crt-ffi/crt/s2n/bindings/rust/bench/src/rustls.rs +28 -24
- data/aws-crt-ffi/crt/s2n/bindings/rust/bench/src/s2n_tls.rs +52 -50
- data/aws-crt-ffi/crt/s2n/bindings/rust/generate/Cargo.toml +1 -0
- data/aws-crt-ffi/crt/s2n/bindings/rust/integration/Cargo.toml +3 -0
- data/aws-crt-ffi/crt/s2n/bindings/rust/s2n-tls/Cargo.toml +2 -2
- data/aws-crt-ffi/crt/s2n/bindings/rust/s2n-tls/src/connection.rs +9 -0
- data/aws-crt-ffi/crt/s2n/bindings/rust/s2n-tls-sys/templates/Cargo.template +2 -1
- data/aws-crt-ffi/crt/s2n/bindings/rust/s2n-tls-tokio/Cargo.toml +2 -2
- data/aws-crt-ffi/crt/s2n/tests/cbmc/sources/make_common_datastructures.c +9 -2
- data/aws-crt-ffi/crt/s2n/tests/fuzz/s2n_client_cert_verify_recv_test.c +1 -1
- data/aws-crt-ffi/crt/s2n/tests/fuzz/s2n_hybrid_ecdhe_kyber_r3_fuzz_test.c +1 -1
- data/aws-crt-ffi/crt/s2n/tests/fuzz/s2n_tls13_cert_verify_recv_test.c +1 -1
- data/aws-crt-ffi/crt/s2n/tests/integrationv2/test_version_negotiation.py +4 -4
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_auth_selection_test.c +19 -9
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_client_auth_handshake_test.c +3 -3
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_client_cert_verify_test.c +1 -1
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_client_hello_recv_test.c +1 -1
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_client_hello_test.c +4 -4
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_client_signature_algorithms_extension_test.c +4 -5
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_connection_protocol_versions_test.c +390 -0
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_connection_test.c +8 -4
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_handshake_test.c +2 -1
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_quic_support_io_test.c +106 -0
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_security_policies_test.c +6 -2
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_self_talk_offload_signing_test.c +3 -3
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_self_talk_session_resumption_test.c +135 -0
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_server_new_session_ticket_test.c +32 -0
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_server_signature_algorithms_extension_test.c +1 -1
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_signature_algorithms_test.c +307 -283
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_tls13_cert_request_test.c +1 -1
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_tls13_cert_verify_test.c +18 -17
- data/aws-crt-ffi/crt/s2n/tests/unit/s2n_x509_validator_test.c +125 -0
- data/aws-crt-ffi/crt/s2n/tls/extensions/s2n_client_signature_algorithms.c +8 -1
- data/aws-crt-ffi/crt/s2n/tls/extensions/s2n_client_supported_versions.c +43 -11
- data/aws-crt-ffi/crt/s2n/tls/extensions/s2n_client_supported_versions.h +3 -0
- data/aws-crt-ffi/crt/s2n/tls/extensions/s2n_server_signature_algorithms.c +8 -1
- data/aws-crt-ffi/crt/s2n/tls/s2n_auth_selection.c +4 -2
- data/aws-crt-ffi/crt/s2n/tls/s2n_client_cert_verify.c +7 -10
- data/aws-crt-ffi/crt/s2n/tls/s2n_client_hello.c +2 -2
- data/aws-crt-ffi/crt/s2n/tls/s2n_connection.c +75 -14
- data/aws-crt-ffi/crt/s2n/tls/s2n_handshake.h +2 -2
- data/aws-crt-ffi/crt/s2n/tls/s2n_post_handshake.c +1 -1
- data/aws-crt-ffi/crt/s2n/tls/s2n_post_handshake.h +1 -0
- data/aws-crt-ffi/crt/s2n/tls/s2n_quic_support.c +29 -0
- data/aws-crt-ffi/crt/s2n/tls/s2n_quic_support.h +5 -0
- data/aws-crt-ffi/crt/s2n/tls/s2n_security_policies.c +40 -0
- data/aws-crt-ffi/crt/s2n/tls/s2n_security_policies.h +4 -0
- data/aws-crt-ffi/crt/s2n/tls/s2n_server_cert_request.c +1 -1
- data/aws-crt-ffi/crt/s2n/tls/s2n_server_hello.c +0 -3
- data/aws-crt-ffi/crt/s2n/tls/s2n_server_key_exchange.c +8 -9
- data/aws-crt-ffi/crt/s2n/tls/s2n_server_new_session_ticket.c +8 -0
- data/aws-crt-ffi/crt/s2n/tls/s2n_signature_algorithms.c +111 -72
- data/aws-crt-ffi/crt/s2n/tls/s2n_signature_algorithms.h +11 -9
- data/aws-crt-ffi/crt/s2n/tls/s2n_signature_scheme.c +9 -0
- data/aws-crt-ffi/crt/s2n/tls/s2n_signature_scheme.h +2 -0
- data/aws-crt-ffi/crt/s2n/tls/s2n_tls13_certificate_verify.c +12 -18
- data/aws-crt-ffi/crt/s2n/tls/s2n_x509_validator.c +7 -7
- data/aws-crt-ffi/src/api.h +1 -0
- data/lib/aws-crt/native.rb +1 -1
- metadata +68 -5
- data/aws-crt-ffi/crt/aws-lc/tests/ci/cdk/cdk/ssm/m1_tests_ssm_document.yaml +0 -34
- data/aws-crt-ffi/crt/aws-lc/tests/ci/run_m1_ec2_instance.sh +0 -96
@@ -11,6 +11,7 @@
|
|
11
11
|
#include <aws/http/private/h1_stream.h>
|
12
12
|
#include <aws/http/private/request_response_impl.h>
|
13
13
|
#include <aws/http/status_code.h>
|
14
|
+
#include <aws/io/event_loop.h>
|
14
15
|
#include <aws/io/logging.h>
|
15
16
|
|
16
17
|
#include <inttypes.h>
|
@@ -535,6 +536,7 @@ static int s_aws_http1_switch_protocols(struct aws_h1_connection *connection) {
|
|
535
536
|
static void s_stream_complete(struct aws_h1_stream *stream, int error_code) {
|
536
537
|
struct aws_h1_connection *connection =
|
537
538
|
AWS_CONTAINER_OF(stream->base.owning_connection, struct aws_h1_connection, base);
|
539
|
+
AWS_ASSERT(aws_channel_thread_is_callers_thread(connection->base.channel_slot->channel));
|
538
540
|
|
539
541
|
/*
|
540
542
|
* If this is the end of a successful CONNECT request, mark ourselves as pass-through since the proxy layer
|
@@ -547,6 +549,14 @@ static void s_stream_complete(struct aws_h1_stream *stream, int error_code) {
|
|
547
549
|
}
|
548
550
|
}
|
549
551
|
|
552
|
+
if (stream->base.client_data && stream->base.client_data->response_first_byte_timeout_task.fn != NULL) {
|
553
|
+
/* There is an outstanding response timeout task, but stream completed, we can cancel it now. We are
|
554
|
+
* safe to do it as we always on connection thread to schedule the task or cancel it */
|
555
|
+
struct aws_event_loop *connection_loop = aws_channel_get_event_loop(connection->base.channel_slot->channel);
|
556
|
+
/* The task will be zeroed out within the call */
|
557
|
+
aws_event_loop_cancel_task(connection_loop, &stream->base.client_data->response_first_byte_timeout_task);
|
558
|
+
}
|
559
|
+
|
550
560
|
if (error_code != AWS_ERROR_SUCCESS) {
|
551
561
|
if (stream->base.client_data && stream->is_incoming_message_done) {
|
552
562
|
/* As a request that finished receiving the response, we ignore error and
|
@@ -721,6 +731,87 @@ static void s_client_update_incoming_stream_ptr(struct aws_h1_connection *connec
|
|
721
731
|
s_set_incoming_stream_ptr(connection, desired);
|
722
732
|
}
|
723
733
|
|
734
|
+
static void s_http_stream_response_first_byte_timeout_task(
|
735
|
+
struct aws_task *task,
|
736
|
+
void *arg,
|
737
|
+
enum aws_task_status status) {
|
738
|
+
(void)task;
|
739
|
+
struct aws_h1_stream *stream = arg;
|
740
|
+
struct aws_http_connection *connection_base = stream->base.owning_connection;
|
741
|
+
/* zero-out task to indicate that it's no longer scheduled */
|
742
|
+
AWS_ZERO_STRUCT(stream->base.client_data->response_first_byte_timeout_task);
|
743
|
+
|
744
|
+
if (status == AWS_TASK_STATUS_CANCELED) {
|
745
|
+
return;
|
746
|
+
}
|
747
|
+
|
748
|
+
struct aws_h1_connection *connection = AWS_CONTAINER_OF(connection_base, struct aws_h1_connection, base);
|
749
|
+
/* Timeout happened, close the connection */
|
750
|
+
uint64_t response_first_byte_timeout_ms = stream->base.client_data->response_first_byte_timeout_ms == 0
|
751
|
+
? connection_base->client_data->response_first_byte_timeout_ms
|
752
|
+
: stream->base.client_data->response_first_byte_timeout_ms;
|
753
|
+
AWS_LOGF_INFO(
|
754
|
+
AWS_LS_HTTP_CONNECTION,
|
755
|
+
"id=%p: Closing connection as timeout after request sent to the first byte received happened. "
|
756
|
+
"response_first_byte_timeout_ms is %" PRIu64 ".",
|
757
|
+
(void *)connection_base,
|
758
|
+
response_first_byte_timeout_ms);
|
759
|
+
|
760
|
+
/* Don't stop reading/writing immediately, let that happen naturally during the channel shutdown process. */
|
761
|
+
s_stop(
|
762
|
+
connection,
|
763
|
+
false /*stop_reading*/,
|
764
|
+
false /*stop_writing*/,
|
765
|
+
true /*schedule_shutdown*/,
|
766
|
+
AWS_ERROR_HTTP_RESPONSE_FIRST_BYTE_TIMEOUT);
|
767
|
+
}
|
768
|
+
|
769
|
+
static void s_set_outgoing_message_done(struct aws_h1_stream *stream) {
|
770
|
+
struct aws_http_connection *connection = stream->base.owning_connection;
|
771
|
+
struct aws_channel *channel = aws_http_connection_get_channel(connection);
|
772
|
+
AWS_ASSERT(aws_channel_thread_is_callers_thread(channel));
|
773
|
+
|
774
|
+
if (stream->is_outgoing_message_done) {
|
775
|
+
/* Already did the job */
|
776
|
+
return;
|
777
|
+
}
|
778
|
+
|
779
|
+
stream->is_outgoing_message_done = true;
|
780
|
+
AWS_ASSERT(stream->base.metrics.send_end_timestamp_ns == -1);
|
781
|
+
aws_high_res_clock_get_ticks((uint64_t *)&stream->base.metrics.send_end_timestamp_ns);
|
782
|
+
AWS_ASSERT(stream->base.metrics.send_start_timestamp_ns != -1);
|
783
|
+
AWS_ASSERT(stream->base.metrics.send_end_timestamp_ns >= stream->base.metrics.send_start_timestamp_ns);
|
784
|
+
stream->base.metrics.sending_duration_ns =
|
785
|
+
stream->base.metrics.send_end_timestamp_ns - stream->base.metrics.send_start_timestamp_ns;
|
786
|
+
if (stream->base.metrics.receive_start_timestamp_ns == -1) {
|
787
|
+
/* We haven't receive any message, schedule the response timeout task */
|
788
|
+
|
789
|
+
uint64_t response_first_byte_timeout_ms = 0;
|
790
|
+
if (stream->base.client_data != NULL && connection->client_data != NULL) {
|
791
|
+
response_first_byte_timeout_ms = stream->base.client_data->response_first_byte_timeout_ms == 0
|
792
|
+
? connection->client_data->response_first_byte_timeout_ms
|
793
|
+
: stream->base.client_data->response_first_byte_timeout_ms;
|
794
|
+
}
|
795
|
+
if (response_first_byte_timeout_ms != 0) {
|
796
|
+
/* The task should not be initialized before. */
|
797
|
+
AWS_ASSERT(stream->base.client_data->response_first_byte_timeout_task.fn == NULL);
|
798
|
+
aws_task_init(
|
799
|
+
&stream->base.client_data->response_first_byte_timeout_task,
|
800
|
+
s_http_stream_response_first_byte_timeout_task,
|
801
|
+
stream,
|
802
|
+
"http_stream_response_first_byte_timeout_task");
|
803
|
+
uint64_t now_ns = 0;
|
804
|
+
aws_channel_current_clock_time(channel, &now_ns);
|
805
|
+
struct aws_event_loop *connection_loop = aws_channel_get_event_loop(channel);
|
806
|
+
aws_event_loop_schedule_task_future(
|
807
|
+
connection_loop,
|
808
|
+
&stream->base.client_data->response_first_byte_timeout_task,
|
809
|
+
now_ns + aws_timestamp_convert(
|
810
|
+
response_first_byte_timeout_ms, AWS_TIMESTAMP_MILLIS, AWS_TIMESTAMP_NANOS, NULL));
|
811
|
+
}
|
812
|
+
}
|
813
|
+
}
|
814
|
+
|
724
815
|
/**
|
725
816
|
* If necessary, update `outgoing_stream` so it is pointing at a stream
|
726
817
|
* with data to send, or NULL if all streams are done sending data.
|
@@ -735,13 +826,7 @@ static struct aws_h1_stream *s_update_outgoing_stream_ptr(struct aws_h1_connecti
|
|
735
826
|
|
736
827
|
/* If current stream is done sending data... */
|
737
828
|
if (current && !aws_h1_encoder_is_message_in_progress(&connection->thread_data.encoder)) {
|
738
|
-
current
|
739
|
-
AWS_ASSERT(current->base.metrics.send_end_timestamp_ns == -1);
|
740
|
-
aws_high_res_clock_get_ticks((uint64_t *)¤t->base.metrics.send_end_timestamp_ns);
|
741
|
-
AWS_ASSERT(current->base.metrics.send_start_timestamp_ns != -1);
|
742
|
-
AWS_ASSERT(current->base.metrics.send_end_timestamp_ns >= current->base.metrics.send_start_timestamp_ns);
|
743
|
-
current->base.metrics.sending_duration_ns =
|
744
|
-
current->base.metrics.send_end_timestamp_ns - current->base.metrics.send_start_timestamp_ns;
|
829
|
+
s_set_outgoing_message_done(current);
|
745
830
|
|
746
831
|
/* RFC-7230 section 6.6: Tear-down.
|
747
832
|
* If this was the final stream, don't allows any further streams to be sent */
|
@@ -1124,16 +1209,7 @@ static int s_decoder_on_header(const struct aws_h1_decoded_header *header, void
|
|
1124
1209
|
AWS_LS_HTTP_STREAM,
|
1125
1210
|
"id=%p: Received 'Connection: close' header, no more request data will be sent.",
|
1126
1211
|
(void *)&incoming_stream->base);
|
1127
|
-
incoming_stream
|
1128
|
-
AWS_ASSERT(incoming_stream->base.metrics.send_end_timestamp_ns == -1);
|
1129
|
-
aws_high_res_clock_get_ticks((uint64_t *)&incoming_stream->base.metrics.send_end_timestamp_ns);
|
1130
|
-
AWS_ASSERT(incoming_stream->base.metrics.send_start_timestamp_ns != -1);
|
1131
|
-
AWS_ASSERT(
|
1132
|
-
incoming_stream->base.metrics.send_end_timestamp_ns >=
|
1133
|
-
incoming_stream->base.metrics.send_start_timestamp_ns);
|
1134
|
-
incoming_stream->base.metrics.sending_duration_ns =
|
1135
|
-
incoming_stream->base.metrics.send_end_timestamp_ns -
|
1136
|
-
incoming_stream->base.metrics.send_start_timestamp_ns;
|
1212
|
+
s_set_outgoing_message_done(incoming_stream);
|
1137
1213
|
}
|
1138
1214
|
/* Stop writing right now.
|
1139
1215
|
* Shutdown will be scheduled after we finishing parsing the response */
|
@@ -1856,6 +1932,15 @@ static int s_try_process_next_stream_read_message(struct aws_h1_connection *conn
|
|
1856
1932
|
if (incoming_stream->base.metrics.receive_start_timestamp_ns == -1) {
|
1857
1933
|
/* That's the first time for the stream receives any message */
|
1858
1934
|
aws_high_res_clock_get_ticks((uint64_t *)&incoming_stream->base.metrics.receive_start_timestamp_ns);
|
1935
|
+
if (incoming_stream->base.client_data &&
|
1936
|
+
incoming_stream->base.client_data->response_first_byte_timeout_task.fn != NULL) {
|
1937
|
+
/* There is an outstanding response timeout task, as we already received the data, we can cancel it now. We
|
1938
|
+
* are safe to do it as we always on connection thread to schedule the task or cancel it */
|
1939
|
+
struct aws_event_loop *connection_loop = aws_channel_get_event_loop(connection->base.channel_slot->channel);
|
1940
|
+
/* The task will be zeroed out within the call */
|
1941
|
+
aws_event_loop_cancel_task(
|
1942
|
+
connection_loop, &incoming_stream->base.client_data->response_first_byte_timeout_task);
|
1943
|
+
}
|
1859
1944
|
}
|
1860
1945
|
|
1861
1946
|
/* As decoder runs, it invokes the internal s_decoder_X callbacks, which in turn invoke user callbacks.
|
@@ -407,6 +407,7 @@ struct aws_h1_stream *aws_h1_stream_new_request(
|
|
407
407
|
|
408
408
|
stream->base.client_data = &stream->base.client_or_server_data.client;
|
409
409
|
stream->base.client_data->response_status = AWS_HTTP_STATUS_CODE_UNKNOWN;
|
410
|
+
stream->base.client_data->response_first_byte_timeout_ms = options->response_first_byte_timeout_ms;
|
410
411
|
stream->base.on_metrics = options->on_metrics;
|
411
412
|
|
412
413
|
/* Validate request and cache info that the encoder will eventually need */
|
@@ -148,6 +148,9 @@ static struct aws_error_info s_errors[] = {
|
|
148
148
|
AWS_DEFINE_ERROR_INFO_HTTP(
|
149
149
|
AWS_ERROR_HTTP_MANUAL_WRITE_HAS_COMPLETED,
|
150
150
|
"Manual write failed because manual writes are already completed."),
|
151
|
+
AWS_DEFINE_ERROR_INFO_HTTP(
|
152
|
+
AWS_ERROR_HTTP_RESPONSE_FIRST_BYTE_TIMEOUT,
|
153
|
+
"The server does not begin responding within the configuration after a request is fully sent."),
|
151
154
|
};
|
152
155
|
/* clang-format on */
|
153
156
|
|
@@ -39,7 +39,7 @@ AWS_STATIC_STRING_FROM_LITERAL(s_proxy_no_verify_peer_env_var, "AWS_PROXY_NO_VER
|
|
39
39
|
#endif
|
40
40
|
|
41
41
|
static struct aws_http_proxy_system_vtable s_default_vtable = {
|
42
|
-
.
|
42
|
+
.aws_channel_setup_client_tls = &aws_channel_setup_client_tls,
|
43
43
|
};
|
44
44
|
|
45
45
|
static struct aws_http_proxy_system_vtable *s_vtable = &s_default_vtable;
|
@@ -772,7 +772,7 @@ static void s_aws_http_on_stream_complete_tunnel_proxy(
|
|
772
772
|
last_slot = last_slot->adj_right;
|
773
773
|
}
|
774
774
|
|
775
|
-
if (s_vtable->
|
775
|
+
if (s_vtable->aws_channel_setup_client_tls(last_slot, context->original_tls_options)) {
|
776
776
|
AWS_LOGF_ERROR(
|
777
777
|
AWS_LS_HTTP_CONNECTION,
|
778
778
|
"(%p) Proxy connection failed to start TLS negotiation with error %d(%s)",
|
@@ -144,6 +144,8 @@ add_test_case(h1_client_switching_protocols_fails_subsequent_requests)
|
|
144
144
|
add_test_case(h1_client_switching_protocols_requires_downstream_handler)
|
145
145
|
add_test_case(h1_client_connection_close_before_request_finishes)
|
146
146
|
add_test_case(h1_client_response_close_connection_before_request_finishes)
|
147
|
+
add_test_case(h1_client_response_first_byte_timeout_connection)
|
148
|
+
add_test_case(h1_client_response_first_byte_timeout_request_override)
|
147
149
|
|
148
150
|
add_test_case(strutil_trim_http_whitespace)
|
149
151
|
add_test_case(strutil_is_http_token)
|
@@ -155,7 +155,7 @@ static int s_cm_tester_init(struct cm_tester_options *options) {
|
|
155
155
|
|
156
156
|
aws_io_clock_fn *clock_fn = &aws_high_res_clock_get_ticks;
|
157
157
|
if (options->mock_table) {
|
158
|
-
clock_fn = options->mock_table->
|
158
|
+
clock_fn = options->mock_table->aws_high_res_clock_get_ticks;
|
159
159
|
}
|
160
160
|
|
161
161
|
tester->event_loop_group = aws_event_loop_group_new(tester->allocator, clock_fn, 1, s_new_event_loop, NULL, NULL);
|
@@ -304,7 +304,7 @@ release:
|
|
304
304
|
|
305
305
|
if (close_first) {
|
306
306
|
if (tester->mock_table) {
|
307
|
-
tester->mock_table->
|
307
|
+
tester->mock_table->aws_http_connection_close(connection);
|
308
308
|
} else {
|
309
309
|
aws_http_connection_close(connection);
|
310
310
|
}
|
@@ -809,14 +809,14 @@ static enum aws_http_version s_aws_http_connection_manager_connection_get_versio
|
|
809
809
|
}
|
810
810
|
|
811
811
|
static struct aws_http_connection_manager_system_vtable s_synchronous_mocks = {
|
812
|
-
.
|
813
|
-
.
|
814
|
-
.
|
815
|
-
.
|
816
|
-
.
|
817
|
-
.
|
818
|
-
.
|
819
|
-
.
|
812
|
+
.aws_http_client_connect = s_aws_http_connection_manager_create_connection_sync_mock,
|
813
|
+
.aws_http_connection_release = s_aws_http_connection_manager_release_connection_sync_mock,
|
814
|
+
.aws_http_connection_close = s_aws_http_connection_manager_close_connection_sync_mock,
|
815
|
+
.aws_http_connection_new_requests_allowed = s_aws_http_connection_manager_is_connection_available_sync_mock,
|
816
|
+
.aws_high_res_clock_get_ticks = aws_high_res_clock_get_ticks,
|
817
|
+
.aws_http_connection_get_channel = s_aws_http_connection_manager_connection_get_channel_sync_mock,
|
818
|
+
.aws_channel_thread_is_callers_thread = s_aws_http_connection_manager_is_callers_thread_sync_mock,
|
819
|
+
.aws_http_connection_get_version = s_aws_http_connection_manager_connection_get_version_sync_mock,
|
820
820
|
};
|
821
821
|
|
822
822
|
static int s_test_connection_manager_acquire_release_mix_synchronous(struct aws_allocator *allocator, void *ctx) {
|
@@ -934,14 +934,14 @@ static int s_test_connection_manager_proxy_setup_shutdown(struct aws_allocator *
|
|
934
934
|
AWS_TEST_CASE(test_connection_manager_proxy_setup_shutdown, s_test_connection_manager_proxy_setup_shutdown);
|
935
935
|
|
936
936
|
static struct aws_http_connection_manager_system_vtable s_idle_mocks = {
|
937
|
-
.
|
938
|
-
.
|
939
|
-
.
|
940
|
-
.
|
941
|
-
.
|
942
|
-
.
|
943
|
-
.
|
944
|
-
.
|
937
|
+
.aws_http_client_connect = s_aws_http_connection_manager_create_connection_sync_mock,
|
938
|
+
.aws_http_connection_release = s_aws_http_connection_manager_release_connection_sync_mock,
|
939
|
+
.aws_http_connection_close = s_aws_http_connection_manager_close_connection_sync_mock,
|
940
|
+
.aws_http_connection_new_requests_allowed = s_aws_http_connection_manager_is_connection_available_sync_mock,
|
941
|
+
.aws_high_res_clock_get_ticks = s_tester_get_mock_time,
|
942
|
+
.aws_http_connection_get_channel = s_aws_http_connection_manager_connection_get_channel_sync_mock,
|
943
|
+
.aws_channel_thread_is_callers_thread = s_aws_http_connection_manager_is_callers_thread_sync_mock,
|
944
|
+
.aws_http_connection_get_version = s_aws_http_connection_manager_connection_get_version_sync_mock,
|
945
945
|
};
|
946
946
|
|
947
947
|
static int s_register_acquired_connections(struct aws_array_list *seen_connections) {
|
@@ -4241,6 +4241,9 @@ H1_CLIENT_TEST_CASE(h1_client_response_close_connection_before_request_finishes)
|
|
4241
4241
|
(void)ctx;
|
4242
4242
|
struct tester tester;
|
4243
4243
|
ASSERT_SUCCESS(s_tester_init(&tester, allocator));
|
4244
|
+
/* Okay to set a timeout */
|
4245
|
+
size_t connection_response_first_byte_timeout_ms = 200;
|
4246
|
+
tester.connection->client_data->response_first_byte_timeout_ms = connection_response_first_byte_timeout_ms;
|
4244
4247
|
|
4245
4248
|
/* set up request whose body won't send immediately */
|
4246
4249
|
struct slow_body_sender body_sender;
|
@@ -4269,7 +4272,7 @@ H1_CLIENT_TEST_CASE(h1_client_response_close_connection_before_request_finishes)
|
|
4269
4272
|
testing_channel_run_currently_queued_tasks(&tester.testing_channel);
|
4270
4273
|
|
4271
4274
|
/* Ensure the request can be destroyed after request is sent */
|
4272
|
-
|
4275
|
+
aws_http_message_release(request);
|
4273
4276
|
aws_input_stream_release(body_stream);
|
4274
4277
|
|
4275
4278
|
/* send close connection response */
|
@@ -4297,3 +4300,110 @@ H1_CLIENT_TEST_CASE(h1_client_response_close_connection_before_request_finishes)
|
|
4297
4300
|
ASSERT_SUCCESS(s_tester_clean_up(&tester));
|
4298
4301
|
return AWS_OP_SUCCESS;
|
4299
4302
|
}
|
4303
|
+
|
4304
|
+
H1_CLIENT_TEST_CASE(h1_client_response_first_byte_timeout_connection) {
|
4305
|
+
(void)ctx;
|
4306
|
+
struct tester tester;
|
4307
|
+
ASSERT_SUCCESS(s_tester_init(&tester, allocator));
|
4308
|
+
/* with test channel, we don't use bootstrap to propagate the settings. Hack around it by set the setting directly
|
4309
|
+
*/
|
4310
|
+
size_t connection_response_first_byte_timeout_ms = 200;
|
4311
|
+
tester.connection->client_data->response_first_byte_timeout_ms = connection_response_first_byte_timeout_ms;
|
4312
|
+
|
4313
|
+
/* send request */
|
4314
|
+
struct aws_http_header headers[] = {
|
4315
|
+
{
|
4316
|
+
.name = AWS_BYTE_CUR_INIT_FROM_STRING_LITERAL("Host"),
|
4317
|
+
.value = AWS_BYTE_CUR_INIT_FROM_STRING_LITERAL("example.com"),
|
4318
|
+
},
|
4319
|
+
{
|
4320
|
+
.name = AWS_BYTE_CUR_INIT_FROM_STRING_LITERAL("Accept"),
|
4321
|
+
.value = AWS_BYTE_CUR_INIT_FROM_STRING_LITERAL("*/*"),
|
4322
|
+
},
|
4323
|
+
};
|
4324
|
+
|
4325
|
+
struct aws_http_message *request = s_new_default_get_request(allocator);
|
4326
|
+
ASSERT_NOT_NULL(request);
|
4327
|
+
ASSERT_SUCCESS(aws_http_message_add_header_array(request, headers, AWS_ARRAY_SIZE(headers)));
|
4328
|
+
struct client_stream_tester stream_tester;
|
4329
|
+
ASSERT_SUCCESS(s_stream_tester_init(&stream_tester, &tester, request));
|
4330
|
+
|
4331
|
+
testing_channel_drain_queued_tasks(&tester.testing_channel);
|
4332
|
+
|
4333
|
+
/* Sleep to trigger the timeout */
|
4334
|
+
aws_thread_current_sleep(aws_timestamp_convert(
|
4335
|
+
connection_response_first_byte_timeout_ms + 1, AWS_TIMESTAMP_MILLIS, AWS_TIMESTAMP_NANOS, NULL));
|
4336
|
+
|
4337
|
+
testing_channel_drain_queued_tasks(&tester.testing_channel);
|
4338
|
+
/* Check if the testing channel has shut down. */
|
4339
|
+
ASSERT_TRUE(testing_channel_is_shutdown_completed(&tester.testing_channel));
|
4340
|
+
ASSERT_TRUE(testing_channel_is_shutdown_completed(&tester.testing_channel));
|
4341
|
+
|
4342
|
+
ASSERT_TRUE(stream_tester.complete);
|
4343
|
+
ASSERT_INT_EQUALS(AWS_ERROR_HTTP_RESPONSE_FIRST_BYTE_TIMEOUT, stream_tester.on_complete_error_code);
|
4344
|
+
|
4345
|
+
/* clean up */
|
4346
|
+
aws_http_message_release(request);
|
4347
|
+
client_stream_tester_clean_up(&stream_tester);
|
4348
|
+
|
4349
|
+
ASSERT_SUCCESS(s_tester_clean_up(&tester));
|
4350
|
+
return AWS_OP_SUCCESS;
|
4351
|
+
}
|
4352
|
+
|
4353
|
+
H1_CLIENT_TEST_CASE(h1_client_response_first_byte_timeout_request_override) {
|
4354
|
+
(void)ctx;
|
4355
|
+
struct tester tester;
|
4356
|
+
ASSERT_SUCCESS(s_tester_init(&tester, allocator));
|
4357
|
+
/* with test channel, we don't use bootstrap to propagate the settings. Hack around it by set the setting directly
|
4358
|
+
*/
|
4359
|
+
size_t connection_response_first_byte_timeout_ms = 1000;
|
4360
|
+
tester.connection->client_data->response_first_byte_timeout_ms = connection_response_first_byte_timeout_ms;
|
4361
|
+
|
4362
|
+
/* send request */
|
4363
|
+
struct aws_http_header headers[] = {
|
4364
|
+
{
|
4365
|
+
.name = AWS_BYTE_CUR_INIT_FROM_STRING_LITERAL("Host"),
|
4366
|
+
.value = AWS_BYTE_CUR_INIT_FROM_STRING_LITERAL("example.com"),
|
4367
|
+
},
|
4368
|
+
{
|
4369
|
+
.name = AWS_BYTE_CUR_INIT_FROM_STRING_LITERAL("Accept"),
|
4370
|
+
.value = AWS_BYTE_CUR_INIT_FROM_STRING_LITERAL("*/*"),
|
4371
|
+
},
|
4372
|
+
};
|
4373
|
+
|
4374
|
+
struct aws_http_message *request = s_new_default_get_request(allocator);
|
4375
|
+
ASSERT_NOT_NULL(request);
|
4376
|
+
ASSERT_SUCCESS(aws_http_message_add_header_array(request, headers, AWS_ARRAY_SIZE(headers)));
|
4377
|
+
|
4378
|
+
size_t response_first_byte_timeout_ms = 100;
|
4379
|
+
|
4380
|
+
int completion_error_code = 0;
|
4381
|
+
struct aws_http_make_request_options opt = {
|
4382
|
+
.self_size = sizeof(opt),
|
4383
|
+
.request = request,
|
4384
|
+
.response_first_byte_timeout_ms = response_first_byte_timeout_ms,
|
4385
|
+
.on_complete = s_on_complete,
|
4386
|
+
.user_data = &completion_error_code,
|
4387
|
+
};
|
4388
|
+
struct aws_http_stream *stream = aws_http_connection_make_request(tester.connection, &opt);
|
4389
|
+
ASSERT_NOT_NULL(stream);
|
4390
|
+
ASSERT_SUCCESS(aws_http_stream_activate(stream));
|
4391
|
+
|
4392
|
+
testing_channel_drain_queued_tasks(&tester.testing_channel);
|
4393
|
+
|
4394
|
+
aws_thread_current_sleep(
|
4395
|
+
aws_timestamp_convert(response_first_byte_timeout_ms + 1, AWS_TIMESTAMP_MILLIS, AWS_TIMESTAMP_NANOS, NULL));
|
4396
|
+
|
4397
|
+
testing_channel_drain_queued_tasks(&tester.testing_channel);
|
4398
|
+
/* Check if the testing channel has shut down. */
|
4399
|
+
ASSERT_TRUE(testing_channel_is_shutdown_completed(&tester.testing_channel));
|
4400
|
+
|
4401
|
+
ASSERT_INT_EQUALS(AWS_ERROR_HTTP_RESPONSE_FIRST_BYTE_TIMEOUT, completion_error_code);
|
4402
|
+
|
4403
|
+
/* clean up */
|
4404
|
+
aws_http_message_release(request);
|
4405
|
+
aws_http_stream_release(stream);
|
4406
|
+
|
4407
|
+
ASSERT_SUCCESS(s_tester_clean_up(&tester));
|
4408
|
+
return AWS_OP_SUCCESS;
|
4409
|
+
}
|
@@ -141,7 +141,7 @@ static int s_test_proxy_setup_client_tls(
|
|
141
141
|
}
|
142
142
|
|
143
143
|
struct aws_http_proxy_system_vtable s_proxy_table_for_tls = {
|
144
|
-
.
|
144
|
+
.aws_channel_setup_client_tls = s_test_proxy_setup_client_tls,
|
145
145
|
};
|
146
146
|
|
147
147
|
/*
|
@@ -208,7 +208,7 @@ static int s_test_aws_proxy_new_socket_channel(struct aws_socket_channel_bootstr
|
|
208
208
|
}
|
209
209
|
|
210
210
|
struct aws_http_connection_system_vtable s_proxy_connection_system_vtable = {
|
211
|
-
.
|
211
|
+
.aws_client_bootstrap_new_socket_channel = s_test_aws_proxy_new_socket_channel,
|
212
212
|
};
|
213
213
|
|
214
214
|
struct mocked_proxy_test_options {
|
@@ -692,9 +692,9 @@ static int s_sm_tester_offer_waiting_connections(void) {
|
|
692
692
|
|
693
693
|
static struct aws_http_connection_manager_system_vtable s_mocks;
|
694
694
|
|
695
|
-
static void s_override_cm_connect_function(
|
695
|
+
static void s_override_cm_connect_function(int (*fn)(const struct aws_http_client_connection_options *options)) {
|
696
696
|
s_mocks = *g_aws_http_connection_manager_default_system_vtable_ptr;
|
697
|
-
s_mocks.
|
697
|
+
s_mocks.aws_http_client_connect = fn;
|
698
698
|
s_tester.connection_manager = s_tester.stream_manager->connection_manager;
|
699
699
|
aws_http_connection_manager_set_system_vtable(s_tester.connection_manager, &s_mocks);
|
700
700
|
}
|
@@ -110,7 +110,7 @@ struct aws_exponential_backoff_retry_options {
|
|
110
110
|
struct aws_event_loop_group *el_group;
|
111
111
|
/** Max retries to allow. The default value is 10 */
|
112
112
|
size_t max_retries;
|
113
|
-
/** Scaling factor to add for the backoff. Default is
|
113
|
+
/** Scaling factor to add for the backoff. Default is 500ms */
|
114
114
|
uint32_t backoff_scale_factor_ms;
|
115
115
|
/** Max retry backoff in seconds. Default is 20 seconds */
|
116
116
|
uint32_t max_backoff_secs;
|
@@ -373,7 +373,7 @@ struct aws_retry_strategy *aws_retry_strategy_new_exponential_backoff(
|
|
373
373
|
}
|
374
374
|
|
375
375
|
if (!exponential_backoff_strategy->config.backoff_scale_factor_ms) {
|
376
|
-
exponential_backoff_strategy->config.backoff_scale_factor_ms =
|
376
|
+
exponential_backoff_strategy->config.backoff_scale_factor_ms = 500;
|
377
377
|
}
|
378
378
|
|
379
379
|
if (!exponential_backoff_strategy->config.max_backoff_secs) {
|
@@ -183,10 +183,8 @@ struct aws_custom_key_op_handler *aws_pkcs11_tls_op_handler_new(
|
|
183
183
|
goto done;
|
184
184
|
}
|
185
185
|
|
186
|
-
if (
|
187
|
-
|
188
|
-
goto done;
|
189
|
-
}
|
186
|
+
if (aws_pkcs11_lib_login_user(pkcs11_handler->lib, pkcs11_handler->session_handle, pkcs_user_pin)) {
|
187
|
+
goto done;
|
190
188
|
}
|
191
189
|
|
192
190
|
if (aws_pkcs11_lib_find_private_key(
|
@@ -33,6 +33,7 @@ if(FIPS)
|
|
33
33
|
|
34
34
|
if(ENABLE_FIPS_ENTROPY_CPU_JITTER)
|
35
35
|
add_definitions(-DFIPS_ENTROPY_SOURCE_JITTER_CPU)
|
36
|
+
add_subdirectory(third_party/jitterentropy)
|
36
37
|
message(STATUS "FIPS entropy source method configured: CPU Jitter")
|
37
38
|
else()
|
38
39
|
add_definitions(-DFIPS_ENTROPY_SOURCE_PASSIVE)
|
@@ -629,8 +630,13 @@ if(UBSAN)
|
|
629
630
|
endif()
|
630
631
|
|
631
632
|
if(GCOV)
|
632
|
-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}
|
633
|
-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}
|
633
|
+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage -O0")
|
634
|
+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage -O0")
|
635
|
+
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
|
636
|
+
endif()
|
637
|
+
|
638
|
+
if(KEEP_ASM_LOCAL_SYMBOLS)
|
639
|
+
set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,-L")
|
634
640
|
endif()
|
635
641
|
|
636
642
|
if(FIPS)
|
@@ -647,8 +653,6 @@ if(FIPS)
|
|
647
653
|
message(FATAL_ERROR "Windows Debug build is not supported with FIPS, use Release or RelWithDebInfo")
|
648
654
|
endif()
|
649
655
|
|
650
|
-
add_subdirectory(third_party/jitterentropy)
|
651
|
-
|
652
656
|
add_definitions(-DBORINGSSL_FIPS)
|
653
657
|
if(FIPS_BREAK_TEST)
|
654
658
|
add_definitions("-DBORINGSSL_FIPS_BREAK_${FIPS_BREAK_TEST}=1")
|
@@ -701,7 +705,11 @@ endif()
|
|
701
705
|
|
702
706
|
TEST_BIG_ENDIAN(BIG_ENDIAN)
|
703
707
|
if(BIG_ENDIAN)
|
704
|
-
|
708
|
+
if(ENABLE_EXPERIMENTAL_BIG_ENDIAN_SUPPORT)
|
709
|
+
message(STATUS "Continuing with experimental support on big endian platform")
|
710
|
+
else()
|
711
|
+
message(FATAL_ERROR "Big Endian is not supported.")
|
712
|
+
endif()
|
705
713
|
endif()
|
706
714
|
|
707
715
|
if(OPENSSL_NO_SSE2_FOR_TESTING)
|
@@ -741,7 +749,7 @@ elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "riscv64")
|
|
741
749
|
elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "loongarch64")
|
742
750
|
set(ARCH "loongarch64")
|
743
751
|
else()
|
744
|
-
message(STATUS "Unknown processor found. Using generic implementations. Processor:" ${CMAKE_SYSTEM_PROCESSOR})
|
752
|
+
message(STATUS "Unknown processor found. Using generic implementations. Processor: " ${CMAKE_SYSTEM_PROCESSOR})
|
745
753
|
set(ARCH "generic")
|
746
754
|
endif()
|
747
755
|
|
@@ -1051,7 +1059,7 @@ if(BUILD_TESTING)
|
|
1051
1059
|
add_custom_target(
|
1052
1060
|
run_tests_valgrind
|
1053
1061
|
COMMAND ${GO_EXECUTABLE} run util/all_tests.go -build-dir
|
1054
|
-
${PROJECT_BINARY_DIR} -valgrind=true -valgrind-supp-dir
|
1062
|
+
${PROJECT_BINARY_DIR} -valgrind=true -valgrind-supp-dir="tests/ci"
|
1055
1063
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
1056
1064
|
DEPENDS all_tests
|
1057
1065
|
${MAYBE_USES_TERMINAL})
|
@@ -1059,7 +1067,7 @@ if(BUILD_TESTING)
|
|
1059
1067
|
add_custom_target(
|
1060
1068
|
run_tests_with_sde
|
1061
1069
|
COMMAND ${GO_EXECUTABLE} run util/all_tests.go -build-dir
|
1062
|
-
${PROJECT_BINARY_DIR} -sde
|
1070
|
+
${PROJECT_BINARY_DIR} -sde=true -sde-path="$ENV{SDEROOT}/sde"
|
1063
1071
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
1064
1072
|
DEPENDS all_tests
|
1065
1073
|
${MAYBE_USES_TERMINAL})
|
@@ -41,6 +41,12 @@ function(go_executable dest package)
|
|
41
41
|
string(SUBSTRING "${CMAKE_CURRENT_BINARY_DIR}" ${root_dir_length} -1 target)
|
42
42
|
set(target "${target}/${dest}")
|
43
43
|
|
44
|
+
if(CMAKE_VERSION VERSION_GREATER "3.19")
|
45
|
+
# Silences warning about CMP0116:
|
46
|
+
# https://cmake.org/cmake/help/latest/policy/CMP0116.html
|
47
|
+
cmake_policy(SET CMP0116 OLD)
|
48
|
+
endif()
|
49
|
+
|
44
50
|
set(depfile "${CMAKE_CURRENT_BINARY_DIR}/${dest}.d")
|
45
51
|
add_custom_command(OUTPUT ${dest}
|
46
52
|
COMMAND ${GO_EXECUTABLE} build
|
@@ -142,7 +142,7 @@ else()
|
|
142
142
|
if(DEFINED ASSEMBLY_SOURCE)
|
143
143
|
if(EXISTS ${ASSEMBLY_SOURCE})
|
144
144
|
message("Copying platform assembly files from ${ASSEMBLY_SOURCE} to ${CMAKE_CURRENT_BINARY_DIR}")
|
145
|
-
file(COPY ${ASSEMBLY_SOURCE}/ DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
|
145
|
+
file(COPY ${ASSEMBLY_SOURCE}/ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} NO_SOURCE_PERMISSIONS)
|
146
146
|
else()
|
147
147
|
message(STATUS "${ASSEMBLY_SOURCE} assembly files do not exist.")
|
148
148
|
endif()
|
@@ -532,7 +532,9 @@ target_include_directories(crypto_objects BEFORE PRIVATE ${PROJECT_BINARY_DIR}/s
|
|
532
532
|
target_include_directories(crypto_objects PRIVATE ${PROJECT_SOURCE_DIR}/include)
|
533
533
|
|
534
534
|
function(build_libcrypto name module_source)
|
535
|
-
if(FIPS)
|
535
|
+
if(FIPS AND ENABLE_FIPS_ENTROPY_CPU_JITTER)
|
536
|
+
# If the jitter cpu entropy source is enabled add an object dependency to
|
537
|
+
# the libcrypto target.
|
536
538
|
add_library(${name} $<TARGET_OBJECTS:crypto_objects> ${CRYPTO_FIPS_OBJECTS} ${module_source} $<TARGET_OBJECTS:jitterentropy>)
|
537
539
|
else()
|
538
540
|
add_library(${name} $<TARGET_OBJECTS:crypto_objects> ${CRYPTO_FIPS_OBJECTS} ${module_source})
|
@@ -679,13 +681,6 @@ if(BUILD_TESTING)
|
|
679
681
|
fipsmodule/rand/urandom_test.cc
|
680
682
|
)
|
681
683
|
|
682
|
-
# When using CPU Jitter as the entropy source (only in FIPS build)
|
683
|
-
# urandom_test should not be performed so we pass the compilation flag
|
684
|
-
# and handle it in urandom_test.cc
|
685
|
-
if(JITTER_ENTROPY)
|
686
|
-
target_compile_options(${RANDOM_TEST_EXEC} PUBLIC -DJITTER_ENTROPY)
|
687
|
-
endif()
|
688
|
-
|
689
684
|
add_dependencies(${RANDOM_TEST_EXEC} boringssl_prefix_symbols)
|
690
685
|
target_link_libraries(${RANDOM_TEST_EXEC} test_support_lib boringssl_gtest crypto)
|
691
686
|
target_include_directories(${RANDOM_TEST_EXEC} BEFORE PRIVATE ${PROJECT_BINARY_DIR}/symbol_prefix_include)
|
@@ -717,12 +712,14 @@ if(BUILD_TESTING)
|
|
717
712
|
digest_extra/digest_test.cc
|
718
713
|
dilithium/p_dilithium_test.cc
|
719
714
|
dsa/dsa_test.cc
|
715
|
+
endian_test.cc
|
720
716
|
err/err_test.cc
|
721
717
|
evp_extra/evp_extra_test.cc
|
722
718
|
evp_extra/evp_test.cc
|
723
719
|
evp_extra/scrypt_test.cc
|
724
720
|
fipsmodule/aes/aes_test.cc
|
725
721
|
fipsmodule/bn/bn_test.cc
|
722
|
+
fipsmodule/bn/bn_assert_test.cc
|
726
723
|
fipsmodule/cmac/cmac_test.cc
|
727
724
|
fipsmodule/ec/ec_test.cc
|
728
725
|
fipsmodule/ec/p256-nistz_test.cc
|