Update AWS C++ SDK to 1.10.34

Change-Id: Ibf491d1c3460d3610b0dfd9cf3247540bb4b4ab3
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
diff --git a/WORKSPACE b/WORKSPACE
index c926b0e..5e26090 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -1228,7 +1228,7 @@
 )
 
 # This one is tricky to get an archive because it has recursive submodules. These semi-automated steps do work though:
-# git clone -b version1.9 --recurse-submodules --depth=1 https://github.com/aws/aws-sdk-cpp
+# git clone -b 1.10.34 --recurse-submodules --depth=1 https://github.com/aws/aws-sdk-cpp
 # cd aws-sdk-cpp
 # echo bsdtar -a -cf aws_sdk-version.tar.gz --ignore-zeros @\<\(git archive HEAD\) $(git submodule foreach --recursive --quiet 'echo @\<\(cd $displaypath \&\& git archive HEAD --prefix=$displaypath/\)')
 # Now run the command that printed, and the output will be at aws_sdk-version.tar.gz.
@@ -1237,8 +1237,8 @@
     build_file = "//debian:aws_sdk.BUILD",
     patch_args = ["-p1"],
     patches = ["//debian:aws_sdk.patch"],
-    sha256 = "1a2668722e5b5b2608a6ab21c876c1d98b5fd8c7d613129ced9561f5520817dc",
-    url = "https://www.frc971.org/Build-Dependencies/aws_sdk-19.0.0-RC1.tar.gz",
+    sha256 = "de6570d10c246189fd8c02100f7f0d9af8499a3ef94a131eeb85619f3bd6c604",
+    url = "https://www.frc971.org/Build-Dependencies/aws_sdk-1.10.34.tar.gz",
 )
 
 # Source code of LZ4 (files under lib/) are under BSD 2-Clause.
diff --git a/debian/aws_sdk.BUILD b/debian/aws_sdk.BUILD
index a77f5bb..46ac375 100644
--- a/debian/aws_sdk.BUILD
+++ b/debian/aws_sdk.BUILD
@@ -50,9 +50,9 @@
         "aws-cpp-sdk-core/include/aws/core/utils/crypto/openssl/*.h",
     ]),
     copts = [
-        "-DAWS_SDK_VERSION_MAJOR=19",
-        "-DAWS_SDK_VERSION_MINOR=0",
-        "-DAWS_SDK_VERSION_PATCH=\"\\\"0-RC1\"\\\"",
+        "-DAWS_SDK_VERSION_MAJOR=10",
+        "-DAWS_SDK_VERSION_MINOR=34",
+        "-DAWS_SDK_VERSION_PATCH=\"\\\"BRT\"\\\"",
         "-DENABLE_OPENSSL_ENCRYPTION",
         "-DENABLE_CURL_CLIENT",
         "-Wno-cast-align",
@@ -75,7 +75,7 @@
 genrule(
     name = "gen_Config",
     outs = ["crt/aws-crt-cpp/include/aws/crt/Config.h"],
-    cmd = "echo '#define AWS_CRT_CPP_VERSION \"19.0.0-RC1\"' > $@",
+    cmd = "echo '#define AWS_CRT_CPP_VERSION \"1.10.34\"' > $@",
     target_compatible_with = ["@platforms//os:linux"],
 )
 
@@ -88,15 +88,19 @@
     copts = [
         "-Wno-sign-compare",
         "-Wno-cast-qual",
+        "-Wno-tautological-type-limit-compare",
+        "-Wno-missing-field-initializers",
     ],
     includes = ["crt/aws-crt-cpp/include"],
     target_compatible_with = ["@platforms//os:linux"],
+    visibility = ["//visibility:public"],
     deps = [
         ":aws-c-auth",
         ":aws-c-common",
         ":aws-c-event-stream",
         ":aws-c-mqtt",
         ":aws-c-s3",
+        ":aws-c-sdkutils",
     ],
 )
 
@@ -109,6 +113,7 @@
         "#define AWS_HAVE_GCC_INLINE_ASM 1",
         "#undef AWS_HAVE_MSVC_MULX",
         "#define AWS_HAVE_EXECINFO 1",
+        "#define AWS_AFFINITY_METHOD 0",
         "END",
     ]),
     target_compatible_with = ["@platforms//os:linux"],
@@ -118,6 +123,7 @@
     name = "aws-c-common",
     srcs = glob([
         "crt/aws-crt-cpp/crt/aws-c-common/source/*.c",
+        "crt/aws-crt-cpp/crt/aws-c-common/source/external/*.c",
         "crt/aws-crt-cpp/crt/aws-c-common/source/posix/*.c",
     ]) + [
         ":gen_config",
@@ -156,6 +162,7 @@
     includes = ["crt/aws-crt-cpp/crt/aws-c-common/include"],
     target_compatible_with = ["@platforms//os:linux"],
     textual_hdrs = glob(["crt/aws-crt-cpp/crt/aws-c-common/include/**/*.inl"]),
+    visibility = ["//visibility:public"],
 )
 
 # -march=armv8-a+crc
@@ -209,8 +216,10 @@
     ]),
     hdrs = glob(["crt/aws-crt-cpp/crt/aws-c-cal/include/**/*.h"]),
     copts = [
+        "-DOPENSSL_IS_AWSLC",
         "-Wno-incompatible-pointer-types",
         "-Wno-unused-function",
+        "-Wno-unused-parameter",
         "-Wno-cast-align",
         "-Wno-cast-qual",
     ],
@@ -235,6 +244,7 @@
     deps = [
         ":aws-c-auth",
         ":aws-c-common",
+        ":aws-checksums",
     ],
 )
 
@@ -242,6 +252,7 @@
     name = "aws-c-compression",
     srcs = glob(["crt/aws-crt-cpp/crt/aws-c-compression/source/*.c"]),
     hdrs = glob(["crt/aws-crt-cpp/crt/aws-c-compression/include/**/*.h"]),
+    copts = ["-Wno-cast-qual"],
     includes = ["crt/aws-crt-cpp/crt/aws-c-compression/include"],
     target_compatible_with = ["@platforms//os:linux"],
     deps = [
@@ -269,6 +280,21 @@
 )
 
 cc_library(
+    name = "aws-c-sdkutils",
+    srcs = glob(["crt/aws-crt-cpp/crt/aws-c-sdkutils/source/**/*.c"]),
+    hdrs = glob(["crt/aws-crt-cpp/crt/aws-c-sdkutils/include/**/*.h"]),
+    copts = [
+        "-Wno-cast-align",
+        "-Wno-cast-qual",
+    ],
+    includes = ["crt/aws-crt-cpp/crt/aws-c-sdkutils/include"],
+    target_compatible_with = ["@platforms//os:linux"],
+    deps = [
+        ":aws-c-common",
+    ],
+)
+
+cc_library(
     name = "aws-c-auth",
     srcs = glob(["crt/aws-crt-cpp/crt/aws-c-auth/source/**/*.c"]),
     hdrs = glob(["crt/aws-crt-cpp/crt/aws-c-auth/include/**/*.h"]),
@@ -282,6 +308,7 @@
         ":aws-c-common",
         ":aws-c-http",
         ":aws-c-io",
+        ":aws-c-sdkutils",
     ],
 )
 
@@ -292,11 +319,13 @@
     copts = [
         "-Wno-cast-qual",
         "-Wno-cast-align",
+        "-DAWS_MQTT_WITH_WEBSOCKETS",
     ],
     includes = ["crt/aws-crt-cpp/crt/aws-c-mqtt/include"],
     target_compatible_with = ["@platforms//os:linux"],
     deps = [
         ":aws-c-common",
+        ":aws-c-http",
         ":aws-c-io",
     ],
 )
@@ -309,8 +338,13 @@
         "crt/aws-crt-cpp/crt/aws-c-io/source/s2n/*.c",
         "crt/aws-crt-cpp/crt/aws-c-io/source/posix/*.c",
     ]),
-    hdrs = glob(["crt/aws-crt-cpp/crt/aws-c-io/include/**/*.h"]),
+    hdrs = glob(["crt/aws-crt-cpp/crt/aws-c-io/include/**/*.h"]) + [
+        "crt/aws-crt-cpp/crt/aws-c-io/source/pkcs11_private.h",
+    ] + glob([
+        "crt/aws-crt-cpp/crt/aws-c-io/source/pkcs11/v2.40/*.h",
+    ]),
     copts = [
+        "-DUSE_S2N",
         "-DAWS_USE_EPOLL",
         "-Wno-cast-align",
         "-Wno-cast-qual",
@@ -335,6 +369,7 @@
         "crt/aws-crt-cpp/crt/s2n/utils/**/*.c",
         "crt/aws-crt-cpp/crt/s2n/stuffer/**/*.c",
         "crt/aws-crt-cpp/crt/s2n/crypto/**/*.c",
+        "crt/aws-crt-cpp/crt/s2n/pq-crypto/*.c",
     ]),
     hdrs = ["crt/aws-crt-cpp/crt/s2n/api/s2n.h"],
     copts = [
diff --git a/debian/aws_sdk.patch b/debian/aws_sdk.patch
index df613f5..8780e9b 100644
--- a/debian/aws_sdk.patch
+++ b/debian/aws_sdk.patch
@@ -4,89 +4,22 @@
 index 761455b..fc434ba 100644
 --- a/crt/aws-crt-cpp/crt/aws-c-cal/source/unix/openssl_platform_init.c
 +++ b/crt/aws-crt-cpp/crt/aws-c-cal/source/unix/openssl_platform_init.c
-@@ -34,7 +34,7 @@ struct openssl_evp_md_ctx_table *g_aws_openssl_evp_md_ctx_table = NULL;
+@@ -37,7 +37,7 @@ struct openssl_evp_md_ctx_table *g_aws_openssl_evp_md_ctx_table = NULL;
  /* 1.1 */
- extern HMAC_CTX *HMAC_CTX_new(void) __attribute__((weak)) __attribute__((used));
- extern void HMAC_CTX_free(HMAC_CTX *) __attribute__((weak)) __attribute__((used));
--extern int HMAC_CTX_reset(HMAC_CTX *) __attribute__((weak)) __attribute__((used));
-+//extern int HMAC_CTX_reset(HMAC_CTX *) __attribute__((weak)) __attribute__((used));
- 
+ extern HMAC_CTX *HMAC_CTX_new(void) __attribute__((weak, used));
+ extern void HMAC_CTX_free(HMAC_CTX *) __attribute__((weak, used));
+-extern int HMAC_CTX_reset(HMAC_CTX *) __attribute__((weak, used));
++//extern int HMAC_CTX_reset(HMAC_CTX *) __attribute__((weak, used));
+
  /* 1.0.2 */
- extern void HMAC_CTX_init(HMAC_CTX *) __attribute__((weak)) __attribute__((used));
-@@ -43,8 +43,8 @@ extern void HMAC_CTX_cleanup(HMAC_CTX *) __attribute__((weak)) __attribute__((us
+ extern void HMAC_CTX_init(HMAC_CTX *) __attribute__((weak, used));
+@@ -46,7 +46,7 @@ extern void HMAC_CTX_cleanup(HMAC_CTX *) __attribute__((weak)) __attribute__((us
  /* common */
- extern int HMAC_Update(HMAC_CTX *, const unsigned char *, size_t) __attribute__((weak)) __attribute__((used));
- extern int HMAC_Final(HMAC_CTX *, unsigned char *, unsigned int *) __attribute__((weak)) __attribute__((used));
--extern int HMAC_Init_ex(HMAC_CTX *, const void *, int, const EVP_MD *, ENGINE *) __attribute__((weak))
--__attribute__((used));
-+//extern int HMAC_Init_ex(HMAC_CTX *, const void *, int, const EVP_MD *, ENGINE *) __attribute__((weak))
-+//__attribute__((used));
- 
+ extern int HMAC_Update(HMAC_CTX *, const unsigned char *, size_t) __attribute__((weak, used));
+ extern int HMAC_Final(HMAC_CTX *, unsigned char *, unsigned int *) __attribute__((weak, used));
+-extern int HMAC_Init_ex(HMAC_CTX *, const void *, int, const EVP_MD *, ENGINE *) __attribute__((weak, used));
++//extern int HMAC_Init_ex(HMAC_CTX *, const void *, int, const EVP_MD *, ENGINE *) __attribute__((weak, used));
+
  /* libcrypto 1.1 stub for init */
  static void s_hmac_ctx_init_noop(HMAC_CTX *ctx) {
-@@ -393,9 +393,9 @@ void aws_cal_platform_init(struct aws_allocator *allocator) {
-         }
-     }
- 
--    if (!CRYPTO_get_id_callback()) {
--        CRYPTO_set_id_callback(s_id_fn);
--    }
-+    //if (!CRYPTO_get_id_callback()) {
-+        //CRYPTO_set_id_callback(s_id_fn);
-+    //}
- }
- 
- void aws_cal_platform_clean_up(void) {
-@@ -408,9 +408,9 @@ void aws_cal_platform_clean_up(void) {
-         aws_mem_release(s_libcrypto_allocator, s_libcrypto_locks);
-     }
- 
--    if (CRYPTO_get_id_callback() == s_id_fn) {
--        CRYPTO_set_id_callback(NULL);
--    }
-+    //if (CRYPTO_get_id_callback() == s_id_fn) {
-+        //CRYPTO_set_id_callback(NULL);
-+    //}
- }
- #if !defined(__GNUC__) || (__GNUC__ >= 4 && __GNUC_MINOR__ > 1)
- #    pragma GCC diagnostic pop
 Submodule crt/s2n contains modified content
-diff --git a/crt/aws-crt-cpp/crt/s2n/utils/s2n_asn1_time.c b/crt/aws-crt-cpp/crt/s2n/utils/s2n_asn1_time.c
-index 84dbc6df..d3566b81 100755
---- a/crt/aws-crt-cpp/crt/s2n/utils/s2n_asn1_time.c
-+++ b/crt/aws-crt-cpp/crt/s2n/utils/s2n_asn1_time.c
-@@ -46,7 +46,7 @@ typedef enum parser_state {
- } parser_state;
- 
- static inline long get_gmt_offset(struct tm *t) {
--#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__ANDROID__) || defined(ANDROID) || defined(__APPLE__) && defined(__MACH__)
-+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__ANDROID__) || defined(ANDROID) || defined(__APPLE__) && defined(__MACH__) || defined(__USE_MISC)
-     return t->tm_gmtoff;
- #else
-     return t->__tm_gmtoff;
-diff --git a/crt/aws-crt-cpp/crt/s2n/utils/s2n_init.c b/crt/aws-crt-cpp/crt/s2n/utils/s2n_init.c
-index 0f79f959..ae8122fb 100644
---- a/crt/aws-crt-cpp/crt/s2n/utils/s2n_init.c
-+++ b/crt/aws-crt-cpp/crt/s2n/utils/s2n_init.c
-@@ -45,7 +45,7 @@ int s2n_init(void)
-     GUARD_POSIX(s2n_security_policies_init());
-     GUARD_POSIX(s2n_config_defaults_init());
-     GUARD_POSIX(s2n_extension_type_init());
--    GUARD_AS_POSIX(s2n_pq_init());
-+    //GUARD_AS_POSIX(s2n_pq_init());
- 
-     S2N_ERROR_IF(atexit(s2n_cleanup_atexit) != 0, S2N_ERR_ATEXIT);
- 
-diff --git a/crt/aws-crt-cpp/crt/aws-c-common/include/aws/common/private/lookup3.inl b/crt/aws-crt-cpp/crt/aws-c-common/include/aws/common/private/lookup3.inl
-index 0f79f959..ae8122fb 100644
---- a/crt/aws-crt-cpp/crt/aws-c-common/include/aws/common/private/lookup3.inl
-+++ b/crt/aws-crt-cpp/crt/aws-c-common/include/aws/common/private/lookup3.inl
-@@ -533,7 +533,7 @@
-      * "CPROVER check pop". The masking trick does make the hash noticably
-      * faster for short strings (like English words).
-      */
--#ifndef VALGRIND
-+#if !defined(VALGRIND) && !__has_feature(address_sanitizer) && !__has_feature(memory_sanitizer)
- #ifdef CBMC
- #    pragma CPROVER check push
- #    pragma CPROVER check disable "pointer"