diff --git a/BoringSSL-Package.swift b/BoringSSL-Package.swift index 363c62433ef..8a4f6a6d639 100644 --- a/BoringSSL-Package.swift +++ b/BoringSSL-Package.swift @@ -26,7 +26,6 @@ let package = Package( ], sources: [ - "err_data.c", "src/crypto/asn1/a_bitstr.c", "src/crypto/asn1/a_bool.c", "src/crypto/asn1/a_d2i_fp.c", @@ -117,6 +116,8 @@ let package = Package( "src/crypto/evp/evp.c", "src/crypto/evp/evp_asn1.c", "src/crypto/evp/evp_ctx.c", + "src/crypto/evp/p_dh.c", + "src/crypto/evp/p_dh_asn1.c", "src/crypto/evp/p_dsa_asn1.c", "src/crypto/evp/p_ec.c", "src/crypto/evp/p_ec_asn1.c", @@ -258,6 +259,7 @@ let package = Package( "src/crypto/x509/x_val.c", "src/crypto/x509/x_x509.c", "src/crypto/x509/x_x509a.c", + "src/gen/crypto/err_data.c", "src/ssl/bio_ssl.cc", "src/ssl/d1_both.cc", "src/ssl/d1_lib.cc", @@ -279,6 +281,7 @@ let package = Package( "src/ssl/ssl_buffer.cc", "src/ssl/ssl_cert.cc", "src/ssl/ssl_cipher.cc", + "src/ssl/ssl_credential.cc", "src/ssl/ssl_file.cc", "src/ssl/ssl_key_share.cc", "src/ssl/ssl_lib.cc", diff --git a/Makefile b/Makefile index b0dde77bc5b..fbbc677801c 100644 --- a/Makefile +++ b/Makefile @@ -1856,7 +1856,6 @@ endif # deps: [] # transitive_deps: [] LIBBORINGSSL_SRC = \ - third_party/boringssl-with-bazel/err_data.c \ third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c \ third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c \ third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c \ @@ -1947,6 +1946,8 @@ LIBBORINGSSL_SRC = \ third_party/boringssl-with-bazel/src/crypto/evp/evp.c \ third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c \ third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c \ + third_party/boringssl-with-bazel/src/crypto/evp/p_dh.c \ + third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.c \ third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c \ third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c \ third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c \ @@ -2088,6 +2089,7 @@ LIBBORINGSSL_SRC = \ third_party/boringssl-with-bazel/src/crypto/x509/x_val.c \ third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c \ third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c \ + third_party/boringssl-with-bazel/src/gen/crypto/err_data.c \ third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc \ third_party/boringssl-with-bazel/src/ssl/d1_both.cc \ third_party/boringssl-with-bazel/src/ssl/d1_lib.cc \ @@ -2109,6 +2111,7 @@ LIBBORINGSSL_SRC = \ third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc \ third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc \ third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc \ + third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc \ third_party/boringssl-with-bazel/src/ssl/ssl_file.cc \ third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc \ third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc \ diff --git a/bazel/grpc_deps.bzl b/bazel/grpc_deps.bzl index 328c2a45c72..d0099ab6163 100644 --- a/bazel/grpc_deps.bzl +++ b/bazel/grpc_deps.bzl @@ -190,11 +190,11 @@ def grpc_deps(): name = "boringssl", # Use github mirror instead of https://boringssl.googlesource.com/boringssl # to obtain a boringssl archive with consistent sha256 - sha256 = "06ba43ff1825c8a9a45dae7f85e532153a531707f6a3e56be1e892fd2d3b75f6", - strip_prefix = "boringssl-e14d29f68c2d1b02e06f10c83b9b8ea4d061f8df", + sha256 = "c4cccc0ea8b149d2853da77254655c0d5a5739dd4bbdff9a5b586c06a627de6c", + strip_prefix = "boringssl-5a2bca2124800f2861263959b72bc35cdf18949b", urls = [ - "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/boringssl/archive/e14d29f68c2d1b02e06f10c83b9b8ea4d061f8df.tar.gz", - "https://github.com/google/boringssl/archive/e14d29f68c2d1b02e06f10c83b9b8ea4d061f8df.tar.gz", + "https://storage.googleapis.com/grpc-bazel-mirror/github.com/google/boringssl/archive/5a2bca2124800f2861263959b72bc35cdf18949b.tar.gz", + "https://github.com/google/boringssl/archive/5a2bca2124800f2861263959b72bc35cdf18949b.tar.gz", ], ) diff --git a/config.m4 b/config.m4 index 565cd35e55e..b6a12477bb3 100644 --- a/config.m4 +++ b/config.m4 @@ -1034,7 +1034,6 @@ if test "$PHP_GRPC" != "no"; then third_party/address_sorting/address_sorting.c \ third_party/address_sorting/address_sorting_posix.c \ third_party/address_sorting/address_sorting_windows.c \ - third_party/boringssl-with-bazel/err_data.c \ third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c \ third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c \ third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c \ @@ -1125,6 +1124,8 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl-with-bazel/src/crypto/evp/evp.c \ third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c \ third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c \ + third_party/boringssl-with-bazel/src/crypto/evp/p_dh.c \ + third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.c \ third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c \ third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c \ third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c \ @@ -1266,6 +1267,7 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl-with-bazel/src/crypto/x509/x_val.c \ third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c \ third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c \ + third_party/boringssl-with-bazel/src/gen/crypto/err_data.c \ third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc \ third_party/boringssl-with-bazel/src/ssl/d1_both.cc \ third_party/boringssl-with-bazel/src/ssl/d1_lib.cc \ @@ -1287,6 +1289,7 @@ if test "$PHP_GRPC" != "no"; then third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc \ third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc \ third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc \ + third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc \ third_party/boringssl-with-bazel/src/ssl/ssl_file.cc \ third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc \ third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc \ @@ -1633,7 +1636,6 @@ if test "$PHP_GRPC" != "no"; then PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/time/internal/cctz/src) PHP_ADD_BUILD_DIR($ext_builddir/third_party/abseil-cpp/absl/types) PHP_ADD_BUILD_DIR($ext_builddir/third_party/address_sorting) - PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel) PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto) PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/asn1) PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/base64) @@ -1676,6 +1678,7 @@ if test "$PHP_GRPC" != "no"; then PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/stack) PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/trust_token) PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/crypto/x509) + PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/gen/crypto) PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl-with-bazel/src/ssl) PHP_ADD_BUILD_DIR($ext_builddir/third_party/re2/re2) PHP_ADD_BUILD_DIR($ext_builddir/third_party/re2/util) diff --git a/config.w32 b/config.w32 index bc9c4296f2d..2c98626829e 100644 --- a/config.w32 +++ b/config.w32 @@ -999,7 +999,6 @@ if (PHP_GRPC != "no") { "third_party\\address_sorting\\address_sorting.c " + "third_party\\address_sorting\\address_sorting_posix.c " + "third_party\\address_sorting\\address_sorting_windows.c " + - "third_party\\boringssl-with-bazel\\err_data.c " + "third_party\\boringssl-with-bazel\\src\\crypto\\asn1\\a_bitstr.c " + "third_party\\boringssl-with-bazel\\src\\crypto\\asn1\\a_bool.c " + "third_party\\boringssl-with-bazel\\src\\crypto\\asn1\\a_d2i_fp.c " + @@ -1090,6 +1089,8 @@ if (PHP_GRPC != "no") { "third_party\\boringssl-with-bazel\\src\\crypto\\evp\\evp.c " + "third_party\\boringssl-with-bazel\\src\\crypto\\evp\\evp_asn1.c " + "third_party\\boringssl-with-bazel\\src\\crypto\\evp\\evp_ctx.c " + + "third_party\\boringssl-with-bazel\\src\\crypto\\evp\\p_dh.c " + + "third_party\\boringssl-with-bazel\\src\\crypto\\evp\\p_dh_asn1.c " + "third_party\\boringssl-with-bazel\\src\\crypto\\evp\\p_dsa_asn1.c " + "third_party\\boringssl-with-bazel\\src\\crypto\\evp\\p_ec.c " + "third_party\\boringssl-with-bazel\\src\\crypto\\evp\\p_ec_asn1.c " + @@ -1231,6 +1232,7 @@ if (PHP_GRPC != "no") { "third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x_val.c " + "third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x_x509.c " + "third_party\\boringssl-with-bazel\\src\\crypto\\x509\\x_x509a.c " + + "third_party\\boringssl-with-bazel\\src\\gen\\crypto\\err_data.c " + "third_party\\boringssl-with-bazel\\src\\ssl\\bio_ssl.cc " + "third_party\\boringssl-with-bazel\\src\\ssl\\d1_both.cc " + "third_party\\boringssl-with-bazel\\src\\ssl\\d1_lib.cc " + @@ -1252,6 +1254,7 @@ if (PHP_GRPC != "no") { "third_party\\boringssl-with-bazel\\src\\ssl\\ssl_buffer.cc " + "third_party\\boringssl-with-bazel\\src\\ssl\\ssl_cert.cc " + "third_party\\boringssl-with-bazel\\src\\ssl\\ssl_cipher.cc " + + "third_party\\boringssl-with-bazel\\src\\ssl\\ssl_credential.cc " + "third_party\\boringssl-with-bazel\\src\\ssl\\ssl_file.cc " + "third_party\\boringssl-with-bazel\\src\\ssl\\ssl_key_share.cc " + "third_party\\boringssl-with-bazel\\src\\ssl\\ssl_lib.cc " + @@ -1827,6 +1830,8 @@ if (PHP_GRPC != "no") { FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\stack"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\trust_token"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\crypto\\x509"); + FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\gen"); + FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\gen\\crypto"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\boringssl-with-bazel\\src\\ssl"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\re2"); FSO.CreateFolder(base_dir+"\\ext\\grpc\\third_party\\re2\\re2"); diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec index 7ba5826a901..03b7c558794 100644 --- a/gRPC-Core.podspec +++ b/gRPC-Core.podspec @@ -197,7 +197,7 @@ Pod::Spec.new do |s| ss.libraries = 'z' ss.dependency "#{s.name}/Interface", version ss.dependency "#{s.name}/Privacy", version - ss.dependency 'BoringSSL-GRPC', '0.0.33' + ss.dependency 'BoringSSL-GRPC', '0.0.34' ss.dependency 'abseil/algorithm/container', abseil_version ss.dependency 'abseil/base/base', abseil_version ss.dependency 'abseil/base/config', abseil_version diff --git a/grpc.gemspec b/grpc.gemspec index b2dd04417c3..bd4fc1e426e 100644 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -2450,7 +2450,6 @@ Gem::Specification.new do |s| s.files += %w( third_party/address_sorting/address_sorting_posix.c ) s.files += %w( third_party/address_sorting/address_sorting_windows.c ) s.files += %w( third_party/address_sorting/include/address_sorting/address_sorting.h ) - s.files += %w( third_party/boringssl-with-bazel/err_data.c ) s.files += %w( third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c ) s.files += %w( third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c ) s.files += %w( third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c ) @@ -2556,6 +2555,8 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c ) s.files += %w( third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c ) s.files += %w( third_party/boringssl-with-bazel/src/crypto/evp/internal.h ) + s.files += %w( third_party/boringssl-with-bazel/src/crypto/evp/p_dh.c ) + s.files += %w( third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.c ) s.files += %w( third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c ) s.files += %w( third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c ) s.files += %w( third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c ) @@ -2726,7 +2727,6 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl-with-bazel/src/crypto/spx/address.h ) s.files += %w( third_party/boringssl-with-bazel/src/crypto/spx/fors.c ) s.files += %w( third_party/boringssl-with-bazel/src/crypto/spx/fors.h ) - s.files += %w( third_party/boringssl-with-bazel/src/crypto/spx/internal.h ) s.files += %w( third_party/boringssl-with-bazel/src/crypto/spx/merkle.c ) s.files += %w( third_party/boringssl-with-bazel/src/crypto/spx/merkle.h ) s.files += %w( third_party/boringssl-with-bazel/src/crypto/spx/params.h ) @@ -2818,6 +2818,7 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl-with-bazel/src/crypto/x509/x_val.c ) s.files += %w( third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c ) s.files += %w( third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c ) + s.files += %w( third_party/boringssl-with-bazel/src/gen/crypto/err_data.c ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/aead.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/aes.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h ) @@ -2858,13 +2859,14 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/evp.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/ex_data.h ) + s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/experimental/kyber.h ) + s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/experimental/spx.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/hkdf.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/hmac.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/hpke.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/hrss.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/is_boringssl.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/kdf.h ) - s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/kyber.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/lhash.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/md4.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/md5.h ) @@ -2880,8 +2882,6 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/pkcs12.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h ) - s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/pki/certificate.h ) - s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/pki/signature_verify_cache.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/poly1305.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/pool.h ) s.files += %w( third_party/boringssl-with-bazel/src/include/openssl/posix_time.h ) @@ -2930,6 +2930,7 @@ Gem::Specification.new do |s| s.files += %w( third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc ) s.files += %w( third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc ) s.files += %w( third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc ) + s.files += %w( third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc ) s.files += %w( third_party/boringssl-with-bazel/src/ssl/ssl_file.cc ) s.files += %w( third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc ) s.files += %w( third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc ) diff --git a/package.xml b/package.xml index 3c55a9ccc9a..50eb12649b2 100644 --- a/package.xml +++ b/package.xml @@ -2454,7 +2454,6 @@ - @@ -2560,6 +2559,8 @@ + + @@ -2730,7 +2731,6 @@ - @@ -2822,6 +2822,7 @@ + @@ -2862,13 +2863,14 @@ + + - @@ -2884,8 +2886,6 @@ - - @@ -2934,6 +2934,7 @@ + diff --git a/src/boringssl/boringssl_prefix_symbols.h b/src/boringssl/boringssl_prefix_symbols.h index 827f1b0ed1c..3255f889966 100644 --- a/src/boringssl/boringssl_prefix_symbols.h +++ b/src/boringssl/boringssl_prefix_symbols.h @@ -1,4 +1,4 @@ -// generated by generate_boringssl_prefix_header.sh on BoringSSL commit: e14d29f68c2d1b02e06f10c83b9b8ea4d061f8df +// generated by generate_boringssl_prefix_header.sh on BoringSSL commit: 5a2bca2124800f2861263959b72bc35cdf18949b // Copyright (c) 2018, Google Inc. // @@ -21,6 +21,9 @@ #define BIO_f_ssl BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, BIO_f_ssl) #define BIO_set_ssl BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, BIO_set_ssl) +#define CBS_data BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_data) +#define CBS_init BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_init) +#define CBS_len BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_len) #define DTLS_client_method BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DTLS_client_method) #define DTLS_method BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DTLS_method) #define DTLS_server_method BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, DTLS_server_method) @@ -66,8 +69,23 @@ #define SSL_COMP_get_compression_methods BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_COMP_get_compression_methods) #define SSL_COMP_get_id BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_COMP_get_id) #define SSL_COMP_get_name BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_COMP_get_name) +#define SSL_CREDENTIAL_free BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CREDENTIAL_free) +#define SSL_CREDENTIAL_get_ex_data BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CREDENTIAL_get_ex_data) +#define SSL_CREDENTIAL_get_ex_new_index BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CREDENTIAL_get_ex_new_index) +#define SSL_CREDENTIAL_new_delegated BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CREDENTIAL_new_delegated) +#define SSL_CREDENTIAL_new_x509 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CREDENTIAL_new_x509) +#define SSL_CREDENTIAL_set1_cert_chain BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CREDENTIAL_set1_cert_chain) +#define SSL_CREDENTIAL_set1_delegated_credential BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CREDENTIAL_set1_delegated_credential) +#define SSL_CREDENTIAL_set1_ocsp_response BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CREDENTIAL_set1_ocsp_response) +#define SSL_CREDENTIAL_set1_private_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CREDENTIAL_set1_private_key) +#define SSL_CREDENTIAL_set1_signed_cert_timestamp_list BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CREDENTIAL_set1_signed_cert_timestamp_list) +#define SSL_CREDENTIAL_set1_signing_algorithm_prefs BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CREDENTIAL_set1_signing_algorithm_prefs) +#define SSL_CREDENTIAL_set_ex_data BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CREDENTIAL_set_ex_data) +#define SSL_CREDENTIAL_set_private_key_method BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CREDENTIAL_set_private_key_method) +#define SSL_CREDENTIAL_up_ref BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CREDENTIAL_up_ref) #define SSL_CTX_add0_chain_cert BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CTX_add0_chain_cert) #define SSL_CTX_add1_chain_cert BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CTX_add1_chain_cert) +#define SSL_CTX_add1_credential BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CTX_add1_credential) #define SSL_CTX_add_cert_compression_alg BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CTX_add_cert_compression_alg) #define SSL_CTX_add_client_CA BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CTX_add_client_CA) #define SSL_CTX_add_extra_chain_cert BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_CTX_add_extra_chain_cert) @@ -282,6 +300,7 @@ #define SSL_accept BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_accept) #define SSL_add0_chain_cert BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_add0_chain_cert) #define SSL_add1_chain_cert BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_add1_chain_cert) +#define SSL_add1_credential BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_add1_credential) #define SSL_add_application_settings BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_add_application_settings) #define SSL_add_bio_cert_subjects_to_stack BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_add_bio_cert_subjects_to_stack) #define SSL_add_client_CA BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_add_client_CA) @@ -301,7 +320,6 @@ #define SSL_clear_options BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_clear_options) #define SSL_connect BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_connect) #define SSL_cutthrough_complete BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_cutthrough_complete) -#define SSL_delegated_credential_used BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_delegated_credential_used) #define SSL_do_handshake BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_do_handshake) #define SSL_dup_CA_list BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_dup_CA_list) #define SSL_early_callback_ctx_extension_get BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_early_callback_ctx_extension_get) @@ -328,6 +346,7 @@ #define SSL_get0_peer_certificates BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_get0_peer_certificates) #define SSL_get0_peer_delegation_algorithms BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_get0_peer_delegation_algorithms) #define SSL_get0_peer_verify_algorithms BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_get0_peer_verify_algorithms) +#define SSL_get0_selected_credential BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_get0_selected_credential) #define SSL_get0_server_requested_CAs BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_get0_server_requested_CAs) #define SSL_get0_session_id_context BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_get0_session_id_context) #define SSL_get0_signed_cert_timestamp_list BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_get0_signed_cert_timestamp_list) @@ -457,7 +476,6 @@ #define SSL_set1_chain BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_set1_chain) #define SSL_set1_curves BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_set1_curves) #define SSL_set1_curves_list BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_set1_curves_list) -#define SSL_set1_delegated_credential BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_set1_delegated_credential) #define SSL_set1_ech_config_list BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_set1_ech_config_list) #define SSL_set1_group_ids BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_set1_group_ids) #define SSL_set1_groups BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_set1_groups) @@ -475,6 +493,8 @@ #define SSL_set_bio BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_set_bio) #define SSL_set_cert_cb BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_set_cert_cb) #define SSL_set_chain_and_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_set_chain_and_key) +#define SSL_set_check_client_certificate_type BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_set_check_client_certificate_type) +#define SSL_set_check_ecdsa_curve BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_set_check_ecdsa_curve) #define SSL_set_cipher_list BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_set_cipher_list) #define SSL_set_client_CA_list BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_set_client_CA_list) #define SSL_set_compliance_policy BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSL_set_compliance_policy) @@ -582,6 +602,7 @@ #define sk_CRYPTO_BUFFER_deep_copy BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, sk_CRYPTO_BUFFER_deep_copy) #define sk_CRYPTO_BUFFER_new_null BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, sk_CRYPTO_BUFFER_new_null) #define sk_CRYPTO_BUFFER_num BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, sk_CRYPTO_BUFFER_num) +#define sk_CRYPTO_BUFFER_pop BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, sk_CRYPTO_BUFFER_pop) #define sk_CRYPTO_BUFFER_push BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, sk_CRYPTO_BUFFER_push) #define sk_CRYPTO_BUFFER_set BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, sk_CRYPTO_BUFFER_set) #define sk_CRYPTO_BUFFER_value BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, sk_CRYPTO_BUFFER_value) @@ -1118,7 +1139,6 @@ #define CBS_asn1_oid_to_text BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_asn1_oid_to_text) #define CBS_contains_zero_byte BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_contains_zero_byte) #define CBS_copy_bytes BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_copy_bytes) -#define CBS_data BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_data) #define CBS_get_any_asn1 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_get_any_asn1) #define CBS_get_any_asn1_element BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_get_any_asn1_element) #define CBS_get_any_ber_asn1_element BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_get_any_ber_asn1_element) @@ -1151,12 +1171,10 @@ #define CBS_get_until_first BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_get_until_first) #define CBS_get_utf32_be BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_get_utf32_be) #define CBS_get_utf8 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_get_utf8) -#define CBS_init BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_init) #define CBS_is_unsigned_asn1_integer BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_is_unsigned_asn1_integer) #define CBS_is_valid_asn1_bitstring BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_is_valid_asn1_bitstring) #define CBS_is_valid_asn1_integer BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_is_valid_asn1_integer) #define CBS_is_valid_asn1_oid BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_is_valid_asn1_oid) -#define CBS_len BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_len) #define CBS_mem_equal BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_mem_equal) #define CBS_parse_generalized_time BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_parse_generalized_time) #define CBS_parse_utc_time BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CBS_parse_utc_time) @@ -1231,7 +1249,7 @@ #define CRYPTO_get_dynlock_destroy_callback BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CRYPTO_get_dynlock_destroy_callback) #define CRYPTO_get_dynlock_lock_callback BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CRYPTO_get_dynlock_lock_callback) #define CRYPTO_get_ex_data BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CRYPTO_get_ex_data) -#define CRYPTO_get_ex_new_index BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CRYPTO_get_ex_new_index) +#define CRYPTO_get_ex_new_index_ex BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CRYPTO_get_ex_new_index_ex) #define CRYPTO_get_fork_generation BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CRYPTO_get_fork_generation) #define CRYPTO_get_lock_name BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CRYPTO_get_lock_name) #define CRYPTO_get_locking_callback BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, CRYPTO_get_locking_callback) @@ -1517,6 +1535,7 @@ #define ERR_get_error_line_data BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ERR_get_error_line_data) #define ERR_get_next_error_library BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ERR_get_next_error_library) #define ERR_lib_error_string BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ERR_lib_error_string) +#define ERR_lib_symbol_name BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ERR_lib_symbol_name) #define ERR_load_BIO_strings BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ERR_load_BIO_strings) #define ERR_load_ERR_strings BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ERR_load_ERR_strings) #define ERR_load_RAND_strings BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ERR_load_RAND_strings) @@ -1533,6 +1552,7 @@ #define ERR_print_errors_fp BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ERR_print_errors_fp) #define ERR_put_error BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ERR_put_error) #define ERR_reason_error_string BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ERR_reason_error_string) +#define ERR_reason_symbol_name BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ERR_reason_symbol_name) #define ERR_remove_state BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ERR_remove_state) #define ERR_remove_thread_state BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ERR_remove_thread_state) #define ERR_restore_state BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ERR_restore_state) @@ -1705,6 +1725,7 @@ #define EVP_PKEY_CTX_set0_rsa_oaep_label BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_CTX_set0_rsa_oaep_label) #define EVP_PKEY_CTX_set1_hkdf_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_CTX_set1_hkdf_key) #define EVP_PKEY_CTX_set1_hkdf_salt BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_CTX_set1_hkdf_salt) +#define EVP_PKEY_CTX_set_dh_pad BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_CTX_set_dh_pad) #define EVP_PKEY_CTX_set_dsa_paramgen_bits BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_CTX_set_dsa_paramgen_bits) #define EVP_PKEY_CTX_set_dsa_paramgen_q_bits BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_CTX_set_dsa_paramgen_q_bits) #define EVP_PKEY_CTX_set_ec_param_enc BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_CTX_set_ec_param_enc) @@ -1721,6 +1742,7 @@ #define EVP_PKEY_CTX_set_rsa_pss_saltlen BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_CTX_set_rsa_pss_saltlen) #define EVP_PKEY_CTX_set_signature_md BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_CTX_set_signature_md) #define EVP_PKEY_assign BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_assign) +#define EVP_PKEY_assign_DH BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_assign_DH) #define EVP_PKEY_assign_DSA BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_assign_DSA) #define EVP_PKEY_assign_EC_KEY BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_assign_EC_KEY) #define EVP_PKEY_assign_RSA BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_assign_RSA) @@ -1762,6 +1784,7 @@ #define EVP_PKEY_print_params BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_print_params) #define EVP_PKEY_print_private BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_print_private) #define EVP_PKEY_print_public BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_print_public) +#define EVP_PKEY_set1_DH BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_set1_DH) #define EVP_PKEY_set1_DSA BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_set1_DSA) #define EVP_PKEY_set1_EC_KEY BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_set1_EC_KEY) #define EVP_PKEY_set1_RSA BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, EVP_PKEY_set1_RSA) @@ -2342,6 +2365,10 @@ #define SPAKE2_CTX_new BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SPAKE2_CTX_new) #define SPAKE2_generate_msg BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SPAKE2_generate_msg) #define SPAKE2_process_msg BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SPAKE2_process_msg) +#define SPX_generate_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SPX_generate_key) +#define SPX_generate_key_from_seed BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SPX_generate_key_from_seed) +#define SPX_sign BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SPX_sign) +#define SPX_verify BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SPX_verify) #define SSLeay BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSLeay) #define SSLeay_version BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, SSLeay_version) #define TRUST_TOKEN_CLIENT_add_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, TRUST_TOKEN_CLIENT_add_key) @@ -2832,45 +2859,6 @@ #define X509v3_get_ext_count BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, X509v3_get_ext_count) #define a2i_IPADDRESS BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, a2i_IPADDRESS) #define a2i_IPADDRESS_NC BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, a2i_IPADDRESS_NC) -#define abi_test_bad_unwind_temporary BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_bad_unwind_temporary) -#define abi_test_bad_unwind_wrong_register BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_bad_unwind_wrong_register) -#define abi_test_clobber_r10 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_r10) -#define abi_test_clobber_r11 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_r11) -#define abi_test_clobber_r12 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_r12) -#define abi_test_clobber_r13 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_r13) -#define abi_test_clobber_r14 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_r14) -#define abi_test_clobber_r15 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_r15) -#define abi_test_clobber_r8 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_r8) -#define abi_test_clobber_r9 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_r9) -#define abi_test_clobber_rax BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_rax) -#define abi_test_clobber_rbp BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_rbp) -#define abi_test_clobber_rbx BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_rbx) -#define abi_test_clobber_rcx BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_rcx) -#define abi_test_clobber_rdi BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_rdi) -#define abi_test_clobber_rdx BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_rdx) -#define abi_test_clobber_rsi BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_rsi) -#define abi_test_clobber_xmm0 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_xmm0) -#define abi_test_clobber_xmm1 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_xmm1) -#define abi_test_clobber_xmm10 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_xmm10) -#define abi_test_clobber_xmm11 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_xmm11) -#define abi_test_clobber_xmm12 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_xmm12) -#define abi_test_clobber_xmm13 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_xmm13) -#define abi_test_clobber_xmm14 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_xmm14) -#define abi_test_clobber_xmm15 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_xmm15) -#define abi_test_clobber_xmm2 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_xmm2) -#define abi_test_clobber_xmm3 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_xmm3) -#define abi_test_clobber_xmm4 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_xmm4) -#define abi_test_clobber_xmm5 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_xmm5) -#define abi_test_clobber_xmm6 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_xmm6) -#define abi_test_clobber_xmm7 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_xmm7) -#define abi_test_clobber_xmm8 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_xmm8) -#define abi_test_clobber_xmm9 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_clobber_xmm9) -#define abi_test_get_and_clear_direction_flag BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_get_and_clear_direction_flag) -#define abi_test_set_direction_flag BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_set_direction_flag) -#define abi_test_trampoline BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_trampoline) -#define abi_test_unwind_return BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_unwind_return) -#define abi_test_unwind_start BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_unwind_start) -#define abi_test_unwind_stop BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, abi_test_unwind_stop) #define aes128gcmsiv_aes_ks BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, aes128gcmsiv_aes_ks) #define aes128gcmsiv_aes_ks_enc_x1 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, aes128gcmsiv_aes_ks_enc_x1) #define aes128gcmsiv_dec BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, aes128gcmsiv_dec) @@ -3018,7 +3006,6 @@ #define chacha20_poly1305_open BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, chacha20_poly1305_open) #define chacha20_poly1305_seal BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, chacha20_poly1305_seal) #define crypto_gcm_clmul_enabled BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, crypto_gcm_clmul_enabled) -#define d2i_ACCESS_DESCRIPTION BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_ACCESS_DESCRIPTION) #define d2i_ASN1_BIT_STRING BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_ASN1_BIT_STRING) #define d2i_ASN1_BMPSTRING BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_ASN1_BMPSTRING) #define d2i_ASN1_BOOLEAN BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_ASN1_BOOLEAN) @@ -3051,8 +3038,6 @@ #define d2i_DHparams_bio BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_DHparams_bio) #define d2i_DIRECTORYSTRING BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_DIRECTORYSTRING) #define d2i_DISPLAYTEXT BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_DISPLAYTEXT) -#define d2i_DIST_POINT BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_DIST_POINT) -#define d2i_DIST_POINT_NAME BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_DIST_POINT_NAME) #define d2i_DSAPrivateKey BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_DSAPrivateKey) #define d2i_DSAPrivateKey_bio BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_DSAPrivateKey_bio) #define d2i_DSAPrivateKey_fp BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_DSAPrivateKey_fp) @@ -3076,7 +3061,6 @@ #define d2i_ISSUING_DIST_POINT BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_ISSUING_DIST_POINT) #define d2i_NETSCAPE_SPKAC BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_NETSCAPE_SPKAC) #define d2i_NETSCAPE_SPKI BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_NETSCAPE_SPKI) -#define d2i_NOTICEREF BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_NOTICEREF) #define d2i_PKCS12 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_PKCS12) #define d2i_PKCS12_bio BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_PKCS12_bio) #define d2i_PKCS12_fp BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_PKCS12_fp) @@ -3089,8 +3073,6 @@ #define d2i_PKCS8_PRIV_KEY_INFO_fp BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_PKCS8_PRIV_KEY_INFO_fp) #define d2i_PKCS8_bio BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_PKCS8_bio) #define d2i_PKCS8_fp BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_PKCS8_fp) -#define d2i_POLICYINFO BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_POLICYINFO) -#define d2i_POLICYQUALINFO BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_POLICYQUALINFO) #define d2i_PUBKEY BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_PUBKEY) #define d2i_PUBKEY_bio BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_PUBKEY_bio) #define d2i_PUBKEY_fp BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_PUBKEY_fp) @@ -3108,7 +3090,6 @@ #define d2i_RSA_PUBKEY BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_RSA_PUBKEY) #define d2i_RSA_PUBKEY_bio BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_RSA_PUBKEY_bio) #define d2i_RSA_PUBKEY_fp BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_RSA_PUBKEY_fp) -#define d2i_USERNOTICE BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_USERNOTICE) #define d2i_X509 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_X509) #define d2i_X509_ALGOR BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_X509_ALGOR) #define d2i_X509_ATTRIBUTE BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_X509_ATTRIBUTE) @@ -3132,8 +3113,10 @@ #define d2i_X509_VAL BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_X509_VAL) #define d2i_X509_bio BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_X509_bio) #define d2i_X509_fp BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, d2i_X509_fp) +#define dh_asn1_meth BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, dh_asn1_meth) #define dh_check_params_fast BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, dh_check_params_fast) #define dh_compute_key_padded_no_self_test BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, dh_compute_key_padded_no_self_test) +#define dh_pkey_meth BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, dh_pkey_meth) #define dsa_asn1_meth BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, dsa_asn1_meth) #define dsa_check_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, dsa_check_key) #define ec_GFp_mont_add BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ec_GFp_mont_add) @@ -3238,6 +3221,7 @@ #define ecp_nistz256_sqr_mont BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ecp_nistz256_sqr_mont) #define ed25519_asn1_meth BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ed25519_asn1_meth) #define ed25519_pkey_meth BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, ed25519_pkey_meth) +#define evp_pkey_set_method BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, evp_pkey_set_method) #define fiat_curve25519_adx_mul BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, fiat_curve25519_adx_mul) #define fiat_curve25519_adx_square BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, fiat_curve25519_adx_square) #define fiat_p256_adx_mul BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, fiat_p256_adx_mul) @@ -3261,7 +3245,6 @@ #define i2a_ASN1_STRING BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2a_ASN1_STRING) #define i2c_ASN1_BIT_STRING BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2c_ASN1_BIT_STRING) #define i2c_ASN1_INTEGER BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2c_ASN1_INTEGER) -#define i2d_ACCESS_DESCRIPTION BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_ACCESS_DESCRIPTION) #define i2d_ASN1_BIT_STRING BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_ASN1_BIT_STRING) #define i2d_ASN1_BMPSTRING BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_ASN1_BMPSTRING) #define i2d_ASN1_BOOLEAN BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_ASN1_BOOLEAN) @@ -3293,8 +3276,6 @@ #define i2d_DHparams_bio BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_DHparams_bio) #define i2d_DIRECTORYSTRING BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_DIRECTORYSTRING) #define i2d_DISPLAYTEXT BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_DISPLAYTEXT) -#define i2d_DIST_POINT BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_DIST_POINT) -#define i2d_DIST_POINT_NAME BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_DIST_POINT_NAME) #define i2d_DSAPrivateKey BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_DSAPrivateKey) #define i2d_DSAPrivateKey_bio BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_DSAPrivateKey_bio) #define i2d_DSAPrivateKey_fp BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_DSAPrivateKey_fp) @@ -3318,7 +3299,6 @@ #define i2d_ISSUING_DIST_POINT BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_ISSUING_DIST_POINT) #define i2d_NETSCAPE_SPKAC BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_NETSCAPE_SPKAC) #define i2d_NETSCAPE_SPKI BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_NETSCAPE_SPKI) -#define i2d_NOTICEREF BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_NOTICEREF) #define i2d_PKCS12 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_PKCS12) #define i2d_PKCS12_bio BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_PKCS12_bio) #define i2d_PKCS12_fp BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_PKCS12_fp) @@ -3335,8 +3315,6 @@ #define i2d_PKCS8_PRIV_KEY_INFO_fp BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_PKCS8_PRIV_KEY_INFO_fp) #define i2d_PKCS8_bio BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_PKCS8_bio) #define i2d_PKCS8_fp BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_PKCS8_fp) -#define i2d_POLICYINFO BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_POLICYINFO) -#define i2d_POLICYQUALINFO BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_POLICYQUALINFO) #define i2d_PUBKEY BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_PUBKEY) #define i2d_PUBKEY_bio BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_PUBKEY_bio) #define i2d_PUBKEY_fp BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_PUBKEY_fp) @@ -3354,7 +3332,6 @@ #define i2d_RSA_PUBKEY BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_RSA_PUBKEY) #define i2d_RSA_PUBKEY_bio BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_RSA_PUBKEY_bio) #define i2d_RSA_PUBKEY_fp BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_RSA_PUBKEY_fp) -#define i2d_USERNOTICE BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_USERNOTICE) #define i2d_X509 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_X509) #define i2d_X509_ALGOR BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_X509_ALGOR) #define i2d_X509_ATTRIBUTE BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, i2d_X509_ATTRIBUTE) @@ -3479,8 +3456,6 @@ #define spx_fors_sign BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_fors_sign) #define spx_fors_sk_gen BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_fors_sk_gen) #define spx_fors_treehash BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_fors_treehash) -#define spx_generate_key BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_generate_key) -#define spx_generate_key_from_seed BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_generate_key_from_seed) #define spx_get_tree_index BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_get_tree_index) #define spx_ht_sign BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_ht_sign) #define spx_ht_verify BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_ht_verify) @@ -3492,7 +3467,6 @@ #define spx_set_tree_height BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_set_tree_height) #define spx_set_tree_index BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_set_tree_index) #define spx_set_type BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_set_type) -#define spx_sign BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_sign) #define spx_thash_f BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_thash_f) #define spx_thash_h BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_thash_h) #define spx_thash_hmsg BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_thash_hmsg) @@ -3503,7 +3477,6 @@ #define spx_to_uint64 BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_to_uint64) #define spx_treehash BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_treehash) #define spx_uint64_to_len_bytes BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_uint64_to_len_bytes) -#define spx_verify BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_verify) #define spx_wots_pk_from_sig BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_wots_pk_from_sig) #define spx_wots_pk_gen BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_wots_pk_gen) #define spx_wots_sign BORINGSSL_ADD_PREFIX(BORINGSSL_PREFIX, spx_wots_sign) diff --git a/src/objective-c/BoringSSL-GRPC.podspec b/src/objective-c/BoringSSL-GRPC.podspec index db662806f33..c237973e009 100644 --- a/src/objective-c/BoringSSL-GRPC.podspec +++ b/src/objective-c/BoringSSL-GRPC.podspec @@ -39,7 +39,7 @@ Pod::Spec.new do |s| s.name = 'BoringSSL-GRPC' - version = '0.0.33' + version = '0.0.34' s.version = version s.summary = 'BoringSSL is a fork of OpenSSL that is designed to meet Google\'s needs.' # Adapted from the homepage: @@ -76,7 +76,7 @@ Pod::Spec.new do |s| s.source = { :git => 'https://github.com/google/boringssl.git', - :commit => "e14d29f68c2d1b02e06f10c83b9b8ea4d061f8df", + :commit => "5a2bca2124800f2861263959b72bc35cdf18949b", } s.ios.deployment_target = '10.0' @@ -118,7 +118,8 @@ Pod::Spec.new do |s| s.subspec 'Interface' do |ss| ss.header_mappings_dir = 'src/include/openssl' ss.private_header_files = 'src/include/openssl/time.h' - ss.source_files = 'src/include/openssl/*.h' + ss.source_files = 'src/include/openssl/*.h', + 'src/include/openssl/**/*.h' end s.subspec 'Implementation' do |ss| ss.header_mappings_dir = 'src' @@ -134,7 +135,7 @@ Pod::Spec.new do |s| # We have to include fiat because spake25519 depends on it 'src/third_party/fiat/*.{h,c,cc}', # Include the err_data.c pre-generated in boringssl's master-with-bazel branch - 'err_data.c' + 'src/gen/crypto/err_data.c' ss.private_header_files = 'src/ssl/*.h', 'src/ssl/**/*.h', @@ -175,523 +176,520 @@ Pod::Spec.new do |s| *) opts="--ignore-garbage" ;; esac base64 --decode $opts < src/include/openssl/boringssl_prefix_symbols.h - H4sICAAAAAAC/2JvcmluZ3NzbF9wcmVmaXhfc3ltYm9scy5oALS9XXPbuLagfX9+hWvmZqZq1zmx08l2 - v3eKrXR04tjektLTmRsWJUE2dyhSISh/9K8fgKREfKwFci34rdp1TsfS8ywKAPFFEPiv/zp7EIWo0lps - zlavp38kq7LKigcp82RfiW32kjyKdCOq/5SPZ2Vx9qn5dLG4OVuXu11W/39n4vy3zcXv24+X64vN+erd - hXj3cXv+bn35fvX76lKkv23efTzfXm62//Ef//VfZ1fl/rXKHh7rs/+1/t9nF+/OL/9x9kdZPuTibFas - /1N9RX/rXlS7TMpMxavLs4MU/1DR9q//ONuVm2yr/n9abP6rrM42mayrbHWoxVn9mMkzWW7r57QSZ1v1 - YVq8atf+UO1LKc6es1r9gKr5/+WhPtsKcaaQR1EJ/eurtFAJ8Y+zfVU+ZRuVJPVjWqv/I87SVfkktGl9 - uvairLO10FfRxt3313v8aL8XaXWWFWdpnmsyE/L465ZfpmeLu8/L/zOZT89mi7P7+d2fs+vp9dn/mCzU - v//H2eT2uvnS5Pvyy9387Hq2uLqZzL4tziY3N2eKmk9ul7PpQrv+z2z55Ww+/WMyV8idopSvd99e3Xy/ - nt3+0YCzb/c3MxWlF5zdfdaOb9P51Rf1l8mn2c1s+aMJ/3m2vJ0uFv+pHGe3d2fTP6e3y7PFF+0xruzT - 9OxmNvl0Mz37rP41uf2hdYv76dVscvMPdd3z6dXyH0px/C/1pau728X0X9+VTn3n7HrybfKHvpCGPv6z - +WFfJsvFnYo7Vz9v8f1mqX/G5/ndt7Obu4W+8rPvi6mKMVlONK3SUF3y4h+Km6oLnOvrnqj/XS1nd7fa - pwAVejmf6Ou4nf5xM/tjens11exdAyzv5uq73xcd84+zyXy20EHvvi81faedTRG+u72dNt9pU1+nh7qW - 5iqmc5UQ3yaN+LOdG//ZlP9Pd3PlVLdPMrm+Tu7n08+zv872qayFPKufyzNV9Io622aikqrwqMJfFkJl - Qq2LmCrUO6n/oEVZre9WXeLK7dkuXVflmXjZp0VTCNX/slqepdXDYad88mwlFCyaQOru/c//+J8bdWcX - Aryc/5X+42z1v8GPkpn66fP2C0GH+cWz9Ox//s+zRP+f1X/01Owu2SaqloGvof9j+4d/9MD/thxS1FRL - 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 - 1TQnlVblqUjzWtljAPEE4Z//+D8AMksHMdUEAA== + H4sICAAAAAAC/2JvcmluZ3NzbF9wcmVmaXhfc3ltYm9scy5oALS9XXPbuJaofT+/wnXm5kzVrpnY6WSn + 3zvFVjqaOLZHUvp0zg2LkiCLOxSpEJRj968/AEmJ+FgL5FrwW7VrpmPpeRYFgPgiCPzXf108ikJUaS02 + F6uX8z+SVVllxaOUeXKoxDZ7TnYi3YjqP+XuoiwuPjafLha3F+tyv8/q/+/iXXq1WqdXl1e/fXjzZnv1 + 4f3l1fu3v7/7ffVP9fe379ab7eWH33/7ffVv//Zf/3VxXR5equxxV1/87/V/XFy9ufzwj4s/yvIxFxez + Yv2f6iv6Ww+i2mdSZipeXV4cpfiHinZ4+cfFvtxkW/X/02LzX2V1sclkXWWrYy0u6l0mL2S5rX+llbjY + qg/T4kW7DsfqUEpx8Sur1Q+omv9fHuuLrRAXCtmJSuhfX6WFSoh/XByq8inbqCSpd2mt/o+4SFflk9Cm + 9fnai7LO1kJfRRv30F/v6aPDQaTVRVZcpHmuyUzI069bfp5eLO4/Lf/PZD69mC0uHub3f85upjcX/2uy + UP/+XxeTu5vmS5Nvy8/384ub2eL6djL7uriY3N5eKGo+uVvOpgvt+j+z5eeL+fSPyVwh94pSvt59d337 + 7WZ290cDzr4+3M5UlF5wcf9JO75O59ef1V8mH2e3s+X3Jvyn2fJuulj8p3Jc3N1fTP+c3i0vFp+1x7iy + j9OL29nk4+304pP61+Tuu9YtHqbXs8ntP9R1z6fXy38oxem/1Jeu7+8W0//5pnTqOxc3k6+TP/SFNPTp + n80P+zxZLu5V3Ln6eYtvt0v9Mz7N779e3N4v9JVffFtMVYzJcqJplYbqkhf/UNxUXeBcX/dE/e96Obu/ + 0z4FqNDL+URfx930j9vZH9O766lm7xtgeT9X3/226Jh/XEzms4UOev9tqel77WyK8P3d3bT5Tpv6Oj3U + tTRXMZ2rhPg6acSf7Nz4z6b8f7yfK6e6fZLJzU3yMJ9+mv11cUhlLeRF/au8UEWvqLNtJiqpCo8q/GUh + VCbUuoipQr2X+g9alNX6btUlrtxe7NN1VV6I50NaNIVQ/S+r5UVaPR73yicvVkLBogmk7t7//Ld/36g7 + uxDg5fzv9B8Xq/8AP0pm6qfP2y8EHeYXL9KLf//3i0T/H1UHnKnZfbJNVC0DX0P/x/YP/+iB/7AcUtRU + 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 + CcLf//Z/2aoCAcHMBAA= EOF # PrivacyInfo.xcprivacy is not part of BoringSSL repo, inject it during pod installation diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py index e8d21a129b7..0fdcc21a484 100644 --- a/src/python/grpcio/grpc_core_dependencies.py +++ b/src/python/grpcio/grpc_core_dependencies.py @@ -998,7 +998,6 @@ CORE_SOURCE_FILES = [ 'third_party/address_sorting/address_sorting.c', 'third_party/address_sorting/address_sorting_posix.c', 'third_party/address_sorting/address_sorting_windows.c', - 'third_party/boringssl-with-bazel/err_data.c', 'third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c', 'third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c', 'third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c', @@ -1089,6 +1088,8 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl-with-bazel/src/crypto/evp/evp.c', 'third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c', 'third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/p_dh.c', + 'third_party/boringssl-with-bazel/src/crypto/evp/p_dh_asn1.c', 'third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c', 'third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c', 'third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c', @@ -1230,6 +1231,7 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl-with-bazel/src/crypto/x509/x_val.c', 'third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c', 'third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c', + 'third_party/boringssl-with-bazel/src/gen/crypto/err_data.c', 'third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc', 'third_party/boringssl-with-bazel/src/ssl/d1_both.cc', 'third_party/boringssl-with-bazel/src/ssl/d1_lib.cc', @@ -1251,6 +1253,7 @@ CORE_SOURCE_FILES = [ 'third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc', 'third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc', 'third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc', + 'third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc', 'third_party/boringssl-with-bazel/src/ssl/ssl_file.cc', 'third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc', 'third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc', @@ -1415,166 +1418,166 @@ CORE_SOURCE_FILES = [ ASM_SOURCE_FILES = { 'crypto_asm': [ - 'third_party/boringssl-with-bazel/apple-aarch64/crypto/chacha/chacha-armv8-apple.S', - 'third_party/boringssl-with-bazel/apple-aarch64/crypto/cipher_extra/chacha20_poly1305_armv8-apple.S', - 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/aesv8-armv8-apple.S', - 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-apple.S', - 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/armv8-mont-apple.S', - 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/bn-armv8-apple.S', - 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/ghash-neon-armv8-apple.S', - 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/ghashv8-armv8-apple.S', - 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/p256-armv8-asm-apple.S', - 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/p256_beeu-armv8-asm-apple.S', - 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/sha1-armv8-apple.S', - 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/sha256-armv8-apple.S', - 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/sha512-armv8-apple.S', - 'third_party/boringssl-with-bazel/apple-aarch64/crypto/fipsmodule/vpaes-armv8-apple.S', - 'third_party/boringssl-with-bazel/apple-aarch64/crypto/test/trampoline-armv8-apple.S', - 'third_party/boringssl-with-bazel/apple-x86/crypto/chacha/chacha-x86-apple.S', - 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/aesni-x86-apple.S', - 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/bn-586-apple.S', - 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/co-586-apple.S', - 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/ghash-ssse3-x86-apple.S', - 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/ghash-x86-apple.S', - 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/md5-586-apple.S', - 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/sha1-586-apple.S', - 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/sha256-586-apple.S', - 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/sha512-586-apple.S', - 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/vpaes-x86-apple.S', - 'third_party/boringssl-with-bazel/apple-x86/crypto/fipsmodule/x86-mont-apple.S', - 'third_party/boringssl-with-bazel/apple-x86/crypto/test/trampoline-x86-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/chacha/chacha-x86_64-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/aesni-gcm-x86_64-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/aesni-x86_64-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/ghash-x86_64-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/md5-x86_64-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/p256-x86_64-asm-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/rdrand-x86_64-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/rsaz-avx2-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/sha1-x86_64-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/sha256-x86_64-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/sha512-x86_64-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/vpaes-x86_64-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/x86_64-mont-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/fipsmodule/x86_64-mont5-apple.S', - 'third_party/boringssl-with-bazel/apple-x86_64/crypto/test/trampoline-x86_64-apple.S', - 'third_party/boringssl-with-bazel/linux-aarch64/crypto/chacha/chacha-armv8-linux.S', - 'third_party/boringssl-with-bazel/linux-aarch64/crypto/cipher_extra/chacha20_poly1305_armv8-linux.S', - 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/aesv8-armv8-linux.S', - 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-linux.S', - 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/armv8-mont-linux.S', - 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/bn-armv8-linux.S', - 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/ghash-neon-armv8-linux.S', - 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/ghashv8-armv8-linux.S', - 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/p256-armv8-asm-linux.S', - 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/p256_beeu-armv8-asm-linux.S', - 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/sha1-armv8-linux.S', - 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/sha256-armv8-linux.S', - 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/sha512-armv8-linux.S', - 'third_party/boringssl-with-bazel/linux-aarch64/crypto/fipsmodule/vpaes-armv8-linux.S', - 'third_party/boringssl-with-bazel/linux-aarch64/crypto/test/trampoline-armv8-linux.S', - 'third_party/boringssl-with-bazel/linux-arm/crypto/chacha/chacha-armv4-linux.S', - 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/aesv8-armv7-linux.S', - 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/armv4-mont-linux.S', - 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/bsaes-armv7-linux.S', - 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/ghash-armv4-linux.S', - 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/ghashv8-armv7-linux.S', - 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/sha1-armv4-large-linux.S', - 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/sha256-armv4-linux.S', - 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/sha512-armv4-linux.S', - 'third_party/boringssl-with-bazel/linux-arm/crypto/fipsmodule/vpaes-armv7-linux.S', - 'third_party/boringssl-with-bazel/linux-arm/crypto/test/trampoline-armv4-linux.S', - 'third_party/boringssl-with-bazel/linux-x86/crypto/chacha/chacha-x86-linux.S', - 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/aesni-x86-linux.S', - 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/bn-586-linux.S', - 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/co-586-linux.S', - 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/ghash-ssse3-x86-linux.S', - 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/ghash-x86-linux.S', - 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/md5-586-linux.S', - 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/sha1-586-linux.S', - 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/sha256-586-linux.S', - 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/sha512-586-linux.S', - 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/vpaes-x86-linux.S', - 'third_party/boringssl-with-bazel/linux-x86/crypto/fipsmodule/x86-mont-linux.S', - 'third_party/boringssl-with-bazel/linux-x86/crypto/test/trampoline-x86-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/chacha/chacha-x86_64-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/aesni-x86_64-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/ghash-x86_64-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/md5-x86_64-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/rdrand-x86_64-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/rsaz-avx2-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/sha1-x86_64-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/sha256-x86_64-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/sha512-x86_64-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/vpaes-x86_64-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/x86_64-mont-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/fipsmodule/x86_64-mont5-linux.S', - 'third_party/boringssl-with-bazel/linux-x86_64/crypto/test/trampoline-x86_64-linux.S', 'third_party/boringssl-with-bazel/src/crypto/curve25519/asm/x25519-asm-arm.S', 'third_party/boringssl-with-bazel/src/crypto/hrss/asm/poly_rq_mul.S', 'third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm_asm.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/aesni-gcm-x86_64-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/aesni-gcm-x86_64-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/aesni-x86-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/aesni-x86-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/aesni-x86_64-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/aesni-x86_64-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/aesv8-armv7-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/aesv8-armv8-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/aesv8-armv8-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/aesv8-armv8-win.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/aesv8-gcm-armv8-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/aesv8-gcm-armv8-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/aesv8-gcm-armv8-win.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/armv4-mont-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/armv8-mont-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/armv8-mont-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/armv8-mont-win.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/bn-586-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/bn-586-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/bn-armv8-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/bn-armv8-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/bn-armv8-win.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/bsaes-armv7-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/co-586-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/co-586-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghash-armv4-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghash-neon-armv8-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghash-neon-armv8-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghash-neon-armv8-win.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghash-ssse3-x86-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghash-ssse3-x86-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghash-ssse3-x86_64-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghash-ssse3-x86_64-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghash-x86-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghash-x86-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghash-x86_64-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghash-x86_64-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghashv8-armv7-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghashv8-armv8-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghashv8-armv8-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghashv8-armv8-win.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/md5-586-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/md5-586-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/md5-x86_64-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/md5-x86_64-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/p256-armv8-asm-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/p256-armv8-asm-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/p256-armv8-asm-win.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/p256-x86_64-asm-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/p256-x86_64-asm-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/p256_beeu-armv8-asm-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/p256_beeu-armv8-asm-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/p256_beeu-armv8-asm-win.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/p256_beeu-x86_64-asm-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/p256_beeu-x86_64-asm-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/rdrand-x86_64-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/rdrand-x86_64-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/rsaz-avx2-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/rsaz-avx2-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha1-586-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha1-586-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha1-armv4-large-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha1-armv8-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha1-armv8-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha1-armv8-win.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha1-x86_64-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha1-x86_64-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha256-586-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha256-586-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha256-armv4-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha256-armv8-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha256-armv8-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha256-armv8-win.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha256-x86_64-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha256-x86_64-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha512-586-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha512-586-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha512-armv4-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha512-armv8-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha512-armv8-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha512-armv8-win.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha512-x86_64-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha512-x86_64-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/vpaes-armv7-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/vpaes-armv8-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/vpaes-armv8-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/vpaes-armv8-win.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/vpaes-x86-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/vpaes-x86-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/vpaes-x86_64-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/vpaes-x86_64-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/x86-mont-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/x86-mont-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/x86_64-mont-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/x86_64-mont-linux.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/x86_64-mont5-apple.S', + 'third_party/boringssl-with-bazel/src/gen/bcm/x86_64-mont5-linux.S', + 'third_party/boringssl-with-bazel/src/gen/crypto/aes128gcmsiv-x86_64-apple.S', + 'third_party/boringssl-with-bazel/src/gen/crypto/aes128gcmsiv-x86_64-linux.S', + 'third_party/boringssl-with-bazel/src/gen/crypto/chacha-armv4-linux.S', + 'third_party/boringssl-with-bazel/src/gen/crypto/chacha-armv8-apple.S', + 'third_party/boringssl-with-bazel/src/gen/crypto/chacha-armv8-linux.S', + 'third_party/boringssl-with-bazel/src/gen/crypto/chacha-armv8-win.S', + 'third_party/boringssl-with-bazel/src/gen/crypto/chacha-x86-apple.S', + 'third_party/boringssl-with-bazel/src/gen/crypto/chacha-x86-linux.S', + 'third_party/boringssl-with-bazel/src/gen/crypto/chacha-x86_64-apple.S', + 'third_party/boringssl-with-bazel/src/gen/crypto/chacha-x86_64-linux.S', + 'third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_armv8-apple.S', + 'third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_armv8-linux.S', + 'third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_armv8-win.S', + 'third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_x86_64-apple.S', + 'third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_x86_64-linux.S', + 'third_party/boringssl-with-bazel/src/gen/test_support/trampoline-armv4-linux.S', + 'third_party/boringssl-with-bazel/src/gen/test_support/trampoline-armv8-apple.S', + 'third_party/boringssl-with-bazel/src/gen/test_support/trampoline-armv8-linux.S', + 'third_party/boringssl-with-bazel/src/gen/test_support/trampoline-armv8-win.S', + 'third_party/boringssl-with-bazel/src/gen/test_support/trampoline-x86-apple.S', + 'third_party/boringssl-with-bazel/src/gen/test_support/trampoline-x86-linux.S', + 'third_party/boringssl-with-bazel/src/gen/test_support/trampoline-x86_64-apple.S', + 'third_party/boringssl-with-bazel/src/gen/test_support/trampoline-x86_64-linux.S', 'third_party/boringssl-with-bazel/src/third_party/fiat/asm/fiat_curve25519_adx_mul.S', 'third_party/boringssl-with-bazel/src/third_party/fiat/asm/fiat_curve25519_adx_square.S', 'third_party/boringssl-with-bazel/src/third_party/fiat/asm/fiat_p256_adx_mul.S', 'third_party/boringssl-with-bazel/src/third_party/fiat/asm/fiat_p256_adx_sqr.S', - 'third_party/boringssl-with-bazel/win-aarch64/crypto/chacha/chacha-armv8-win.S', - 'third_party/boringssl-with-bazel/win-aarch64/crypto/cipher_extra/chacha20_poly1305_armv8-win.S', - 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/aesv8-armv8-win.S', - 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/aesv8-gcm-armv8-win.S', - 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/armv8-mont-win.S', - 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/bn-armv8-win.S', - 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/ghash-neon-armv8-win.S', - 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/ghashv8-armv8-win.S', - 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/p256-armv8-asm-win.S', - 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/p256_beeu-armv8-asm-win.S', - 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/sha1-armv8-win.S', - 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/sha256-armv8-win.S', - 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/sha512-armv8-win.S', - 'third_party/boringssl-with-bazel/win-aarch64/crypto/fipsmodule/vpaes-armv8-win.S', - 'third_party/boringssl-with-bazel/win-aarch64/crypto/test/trampoline-armv8-win.S', ], 'crypto_nasm': [ - 'third_party/boringssl-with-bazel/win-x86/crypto/chacha/chacha-x86-win.asm', - 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/aesni-x86-win.asm', - 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/bn-586-win.asm', - 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/co-586-win.asm', - 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/ghash-ssse3-x86-win.asm', - 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/ghash-x86-win.asm', - 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/md5-586-win.asm', - 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/sha1-586-win.asm', - 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/sha256-586-win.asm', - 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/sha512-586-win.asm', - 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/vpaes-x86-win.asm', - 'third_party/boringssl-with-bazel/win-x86/crypto/fipsmodule/x86-mont-win.asm', - 'third_party/boringssl-with-bazel/win-x86/crypto/test/trampoline-x86-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/chacha/chacha-x86_64-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/aesni-gcm-x86_64-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/aesni-x86_64-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/ghash-x86_64-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/md5-x86_64-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/p256-x86_64-asm-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/rdrand-x86_64-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/rsaz-avx2-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/sha1-x86_64-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/sha256-x86_64-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/sha512-x86_64-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/vpaes-x86_64-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/x86_64-mont-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/fipsmodule/x86_64-mont5-win.asm', - 'third_party/boringssl-with-bazel/win-x86_64/crypto/test/trampoline-x86_64-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/aesni-gcm-x86_64-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/aesni-x86-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/aesni-x86_64-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/bn-586-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/co-586-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghash-ssse3-x86-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghash-ssse3-x86_64-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghash-x86-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/ghash-x86_64-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/md5-586-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/md5-x86_64-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/p256-x86_64-asm-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/p256_beeu-x86_64-asm-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/rdrand-x86_64-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/rsaz-avx2-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha1-586-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha1-x86_64-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha256-586-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha256-x86_64-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha512-586-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/sha512-x86_64-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/vpaes-x86-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/vpaes-x86_64-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/x86-mont-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/x86_64-mont-win.asm', + 'third_party/boringssl-with-bazel/src/gen/bcm/x86_64-mont5-win.asm', + 'third_party/boringssl-with-bazel/src/gen/crypto/aes128gcmsiv-x86_64-win.asm', + 'third_party/boringssl-with-bazel/src/gen/crypto/chacha-x86-win.asm', + 'third_party/boringssl-with-bazel/src/gen/crypto/chacha-x86_64-win.asm', + 'third_party/boringssl-with-bazel/src/gen/crypto/chacha20_poly1305_x86_64-win.asm', + 'third_party/boringssl-with-bazel/src/gen/test_support/trampoline-x86-win.asm', + 'third_party/boringssl-with-bazel/src/gen/test_support/trampoline-x86_64-win.asm', ], } diff --git a/templates/gRPC-Core.podspec.template b/templates/gRPC-Core.podspec.template index 6fe258801c9..20a4c934855 100644 --- a/templates/gRPC-Core.podspec.template +++ b/templates/gRPC-Core.podspec.template @@ -198,7 +198,7 @@ ss.libraries = 'z' ss.dependency "#{s.name}/Interface", version ss.dependency "#{s.name}/Privacy", version - ss.dependency 'BoringSSL-GRPC', '0.0.33' + ss.dependency 'BoringSSL-GRPC', '0.0.34' % for abseil_spec in grpc_abseil_specs: ss.dependency '${abseil_spec}', abseil_version % endfor diff --git a/templates/src/objective-c/BoringSSL-GRPC.podspec.template b/templates/src/objective-c/BoringSSL-GRPC.podspec.template index 0d99cd189a8..7fc56ac912a 100644 --- a/templates/src/objective-c/BoringSSL-GRPC.podspec.template +++ b/templates/src/objective-c/BoringSSL-GRPC.podspec.template @@ -70,7 +70,7 @@ Pod::Spec.new do |s| s.name = 'BoringSSL-GRPC' - version = '0.0.33' + version = '0.0.34' s.version = version s.summary = 'BoringSSL is a fork of OpenSSL that is designed to meet Google\'s needs.' # Adapted from the homepage: @@ -149,7 +149,8 @@ s.subspec 'Interface' do |ss| ss.header_mappings_dir = 'src/include/openssl' ss.private_header_files = 'src/include/openssl/time.h' - ss.source_files = 'src/include/openssl/*.h' + ss.source_files = 'src/include/openssl/*.h', + 'src/include/openssl/**/*.h' end s.subspec 'Implementation' do |ss| ss.header_mappings_dir = 'src' @@ -165,7 +166,7 @@ # We have to include fiat because spake25519 depends on it 'src/third_party/fiat/*.{h,c,cc}', # Include the err_data.c pre-generated in boringssl's master-with-bazel branch - 'err_data.c' + 'src/gen/crypto/err_data.c' ss.private_header_files = 'src/ssl/*.h', 'src/ssl/**/*.h', diff --git a/third_party/boringssl-with-bazel b/third_party/boringssl-with-bazel index e14d29f68c2..5a2bca21248 160000 --- a/third_party/boringssl-with-bazel +++ b/third_party/boringssl-with-bazel @@ -1 +1 @@ -Subproject commit e14d29f68c2d1b02e06f10c83b9b8ea4d061f8df +Subproject commit 5a2bca2124800f2861263959b72bc35cdf18949b diff --git a/tools/run_tests/sanity/check_submodules.sh b/tools/run_tests/sanity/check_submodules.sh index 872a988c37f..23ca962847a 100755 --- a/tools/run_tests/sanity/check_submodules.sh +++ b/tools/run_tests/sanity/check_submodules.sh @@ -28,7 +28,7 @@ cat <"$want_submodules" third_party/abseil-cpp 4a2c63365eff8823a5221db86ef490e828306f9d third_party/benchmark 344117638c8ff7e239044fd0fa7085839fc03021 third_party/bloaty 60209eb1ccc34d5deefb002d1b7f37545204f7f2 -third_party/boringssl-with-bazel e14d29f68c2d1b02e06f10c83b9b8ea4d061f8df +third_party/boringssl-with-bazel 5a2bca2124800f2861263959b72bc35cdf18949b third_party/cares/cares 6360e96b5cf8e5980c887ce58ef727e53d77243a third_party/envoy-api 78f198cf96ecdc7120ef640406770aa01af775c4 third_party/googleapis 2f9af297c84c55c8b871ba4495e01ade42476c92