grpc 1.24.0 → 1.25.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +306 -243
- data/etc/roots.pem +0 -100
- data/include/grpc/grpc_security.h +44 -18
- data/include/grpc/impl/codegen/grpc_types.h +15 -0
- data/include/grpc/impl/codegen/port_platform.h +27 -11
- data/include/grpc/impl/codegen/sync_generic.h +1 -1
- data/src/boringssl/err_data.c +695 -650
- data/src/core/ext/filters/client_channel/client_channel.cc +257 -179
- data/src/core/ext/filters/client_channel/client_channel.h +24 -0
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +2 -3
- data/src/core/ext/filters/client_channel/client_channel_factory.h +1 -5
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +18 -45
- data/src/core/ext/filters/client_channel/health/health_check_client.h +5 -13
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy.cc +2 -3
- data/src/core/ext/filters/client_channel/lb_policy.h +65 -55
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +14 -14
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +113 -36
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +14 -19
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +36 -13
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +3 -10
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +814 -1589
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +2 -5
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +3 -6
- data/src/core/ext/filters/client_channel/resolver.cc +1 -2
- data/src/core/ext/filters/client_channel/resolver.h +8 -16
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +25 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +46 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +10 -17
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +7 -8
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +111 -44
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +22 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +29 -10
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +27 -36
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +7 -10
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +60 -16
- data/src/core/ext/filters/client_channel/resolver_factory.h +4 -8
- data/src/core/ext/filters/client_channel/resolver_registry.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +7 -10
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +7 -8
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +1 -1
- data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -5
- data/src/core/ext/filters/client_channel/retry_throttle.h +1 -4
- data/src/core/ext/filters/client_channel/service_config.h +8 -8
- data/src/core/ext/filters/client_channel/subchannel.cc +53 -86
- data/src/core/ext/filters/client_channel/subchannel.h +7 -9
- data/src/core/ext/filters/client_channel/subchannel_interface.h +9 -13
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +3 -6
- data/src/core/ext/filters/client_channel/{lb_policy/xds/xds_load_balancer_api.cc → xds/xds_api.cc} +169 -52
- data/src/core/ext/filters/client_channel/xds/xds_api.h +171 -0
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +450 -0
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +99 -0
- data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_channel.h +8 -6
- data/src/core/ext/filters/client_channel/xds/xds_channel_args.h +26 -0
- data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_channel_secure.cc +28 -11
- data/src/core/ext/filters/client_channel/xds/xds_client.cc +1413 -0
- data/src/core/ext/filters/client_channel/xds/xds_client.h +221 -0
- data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_client_stats.cc +1 -5
- data/src/core/ext/filters/client_channel/{lb_policy/xds → xds}/xds_client_stats.h +3 -4
- data/src/core/ext/filters/deadline/deadline_filter.cc +20 -20
- data/src/core/ext/filters/http/client/http_client_filter.cc +15 -15
- data/src/core/ext/filters/http/client_authority_filter.cc +14 -14
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +12 -12
- data/src/core/ext/filters/max_age/max_age_filter.cc +59 -50
- data/src/core/ext/filters/message_size/message_size_filter.cc +18 -18
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +15 -14
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +233 -175
- data/src/core/ext/transport/chttp2/transport/flow_control.h +21 -24
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +253 -163
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +24 -12
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/internal.h +13 -15
- data/src/core/ext/transport/chttp2/transport/writing.cc +3 -0
- data/src/core/ext/transport/inproc/inproc_transport.cc +20 -13
- data/src/core/lib/channel/channel_args.cc +16 -0
- data/src/core/lib/channel/channel_args.h +22 -0
- data/src/core/lib/channel/channelz.cc +5 -6
- data/src/core/lib/channel/channelz.h +1 -1
- data/src/core/lib/channel/connected_channel.cc +20 -20
- data/src/core/lib/channel/handshaker.h +3 -4
- data/src/core/lib/channel/handshaker_factory.h +1 -3
- data/src/core/lib/debug/trace.h +3 -2
- data/src/core/lib/gprpp/arena.cc +3 -3
- data/src/core/lib/gprpp/arena.h +2 -3
- data/src/core/lib/gprpp/inlined_vector.h +9 -0
- data/src/core/lib/gprpp/map.h +3 -501
- data/src/core/lib/gprpp/memory.h +45 -41
- data/src/core/lib/gprpp/mpscq.cc +108 -0
- data/src/core/lib/gprpp/mpscq.h +98 -0
- data/src/core/lib/gprpp/orphanable.h +6 -11
- data/src/core/lib/gprpp/ref_counted.h +25 -19
- data/src/core/lib/gprpp/set.h +33 -0
- data/src/core/lib/gprpp/thd.h +2 -4
- data/src/core/lib/http/httpcli.cc +1 -1
- data/src/core/lib/http/httpcli_security_connector.cc +15 -11
- data/src/core/lib/http/parser.cc +1 -1
- data/src/core/lib/iomgr/buffer_list.cc +4 -5
- data/src/core/lib/iomgr/buffer_list.h +5 -6
- data/src/core/lib/iomgr/call_combiner.cc +4 -5
- data/src/core/lib/iomgr/call_combiner.h +2 -2
- data/src/core/lib/iomgr/cfstream_handle.h +3 -5
- data/src/core/lib/iomgr/closure.h +8 -3
- data/src/core/lib/iomgr/combiner.cc +45 -82
- data/src/core/lib/iomgr/combiner.h +32 -8
- data/src/core/lib/iomgr/endpoint_cfstream.cc +5 -3
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -15
- data/src/core/lib/iomgr/ev_poll_posix.cc +3 -1
- data/src/core/lib/iomgr/exec_ctx.h +4 -3
- data/src/core/lib/iomgr/executor.cc +4 -2
- data/src/core/lib/iomgr/executor.h +3 -0
- data/src/core/lib/iomgr/executor/mpmcqueue.h +3 -6
- data/src/core/lib/iomgr/executor/threadpool.cc +1 -2
- data/src/core/lib/iomgr/executor/threadpool.h +7 -11
- data/src/core/lib/iomgr/resource_quota.cc +55 -51
- data/src/core/lib/iomgr/resource_quota.h +13 -9
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +13 -0
- data/src/core/lib/iomgr/socket_utils_posix.h +4 -0
- data/src/core/lib/iomgr/tcp_client_posix.cc +4 -11
- data/src/core/lib/iomgr/tcp_custom.cc +9 -7
- data/src/core/lib/iomgr/tcp_posix.cc +20 -16
- data/src/core/lib/iomgr/tcp_server.h +1 -4
- data/src/core/lib/iomgr/tcp_server_custom.cc +5 -5
- data/src/core/lib/iomgr/tcp_server_posix.cc +1 -1
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +2 -11
- data/src/core/lib/iomgr/timer_custom.cc +2 -2
- data/src/core/lib/iomgr/udp_server.cc +3 -2
- data/src/core/lib/iomgr/udp_server.h +6 -12
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_string.cc +2 -2
- data/src/core/lib/profiling/basic_timers.cc +2 -2
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -2
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +1 -1
- data/src/core/lib/security/credentials/credentials.h +4 -20
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +4 -4
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -3
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +64 -0
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +4 -4
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +9 -7
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +2 -0
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +4 -4
- data/src/core/lib/security/security_connector/security_connector.cc +1 -0
- data/src/core/lib/security/security_connector/security_connector.h +19 -17
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +8 -5
- data/src/core/lib/security/security_connector/ssl_utils.cc +2 -2
- data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
- data/src/core/lib/security/security_connector/tls/spiffe_security_connector.cc +14 -6
- data/src/core/lib/security/security_connector/tls/spiffe_security_connector.h +4 -2
- data/src/core/lib/security/transport/client_auth_filter.cc +17 -17
- data/src/core/lib/security/transport/security_handshaker.cc +29 -13
- data/src/core/lib/security/transport/security_handshaker.h +4 -2
- data/src/core/lib/security/transport/server_auth_filter.cc +14 -14
- data/src/core/lib/slice/slice.cc +2 -10
- data/src/core/lib/slice/slice_hash_table.h +4 -6
- data/src/core/lib/slice/slice_intern.cc +42 -39
- data/src/core/lib/slice/slice_internal.h +3 -3
- data/src/core/lib/slice/slice_utils.h +21 -4
- data/src/core/lib/slice/slice_weak_hash_table.h +4 -6
- data/src/core/lib/surface/call.cc +3 -3
- data/src/core/lib/surface/channel.cc +7 -0
- data/src/core/lib/surface/completion_queue.cc +12 -11
- data/src/core/lib/surface/completion_queue.h +4 -2
- data/src/core/lib/surface/init.cc +1 -0
- data/src/core/lib/surface/lame_client.cc +33 -18
- data/src/core/lib/surface/server.cc +77 -76
- data/src/core/lib/surface/version.cc +1 -1
- data/src/core/lib/transport/byte_stream.h +3 -7
- data/src/core/lib/transport/connectivity_state.cc +112 -98
- data/src/core/lib/transport/connectivity_state.h +100 -50
- data/src/core/lib/transport/static_metadata.cc +276 -288
- data/src/core/lib/transport/static_metadata.h +73 -76
- data/src/core/lib/transport/status_conversion.cc +1 -1
- data/src/core/lib/transport/status_metadata.cc +1 -1
- data/src/core/lib/transport/transport.cc +2 -2
- data/src/core/lib/transport/transport.h +12 -4
- data/src/core/lib/transport/transport_op_string.cc +14 -11
- data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +5 -5
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +12 -2
- data/src/core/tsi/fake_transport_security.cc +7 -5
- data/src/core/tsi/grpc_shadow_boringssl.h +2918 -2627
- data/src/core/tsi/local_transport_security.cc +8 -6
- data/src/core/tsi/ssl/session_cache/ssl_session.h +1 -3
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -2
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +7 -5
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -6
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +1 -2
- data/src/core/tsi/ssl_transport_security.cc +12 -12
- data/src/core/tsi/ssl_transport_security.h +2 -2
- data/src/core/tsi/transport_security_grpc.cc +7 -0
- data/src/core/tsi/transport_security_grpc.h +6 -0
- data/src/ruby/ext/grpc/extconf.rb +1 -0
- data/src/ruby/ext/grpc/rb_call.c +1 -1
- data/src/ruby/ext/grpc/rb_channel.c +1 -1
- data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
- data/src/ruby/lib/grpc/generic/rpc_server.rb +1 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/google_rpc_status_utils_spec.rb +2 -2
- data/third_party/boringssl/crypto/asn1/a_bool.c +18 -5
- data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +17 -221
- data/third_party/boringssl/crypto/asn1/a_dup.c +0 -24
- data/third_party/boringssl/crypto/asn1/a_enum.c +2 -2
- data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +10 -72
- data/third_party/boringssl/crypto/asn1/a_int.c +12 -71
- data/third_party/boringssl/crypto/asn1/a_mbstr.c +110 -216
- data/third_party/boringssl/crypto/asn1/a_object.c +16 -5
- data/third_party/boringssl/crypto/asn1/a_strnid.c +1 -0
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -1
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +3 -1
- data/third_party/boringssl/crypto/base64/base64.c +2 -2
- data/third_party/boringssl/crypto/bio/bio.c +73 -9
- data/third_party/boringssl/crypto/bio/connect.c +4 -0
- data/third_party/boringssl/crypto/bio/fd.c +4 -0
- data/third_party/boringssl/crypto/bio/file.c +5 -2
- data/third_party/boringssl/crypto/bio/socket.c +4 -0
- data/third_party/boringssl/crypto/bio/socket_helper.c +4 -0
- data/third_party/boringssl/crypto/bn_extra/convert.c +11 -7
- data/third_party/boringssl/crypto/bytestring/ber.c +8 -4
- data/third_party/boringssl/crypto/bytestring/cbb.c +19 -7
- data/third_party/boringssl/crypto/bytestring/cbs.c +28 -15
- data/third_party/boringssl/crypto/bytestring/internal.h +28 -7
- data/third_party/boringssl/crypto/bytestring/unicode.c +155 -0
- data/third_party/boringssl/crypto/chacha/chacha.c +36 -19
- data/third_party/boringssl/crypto/chacha/internal.h +45 -0
- data/third_party/boringssl/crypto/cipher_extra/cipher_extra.c +29 -0
- data/third_party/boringssl/crypto/cipher_extra/e_aesccm.c +269 -25
- data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +16 -14
- data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +54 -38
- data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +133 -41
- data/third_party/boringssl/crypto/cipher_extra/e_tls.c +23 -15
- data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +24 -15
- data/third_party/boringssl/crypto/cmac/cmac.c +62 -25
- data/third_party/boringssl/crypto/conf/conf.c +7 -0
- data/third_party/boringssl/crypto/cpu-arm-linux.c +4 -148
- data/third_party/boringssl/crypto/cpu-arm-linux.h +201 -0
- data/third_party/boringssl/crypto/cpu-intel.c +45 -51
- data/third_party/boringssl/crypto/crypto.c +39 -22
- data/third_party/boringssl/crypto/curve25519/spake25519.c +1 -1
- data/third_party/boringssl/crypto/dsa/dsa.c +77 -53
- data/third_party/boringssl/crypto/ec_extra/ec_asn1.c +20 -8
- data/third_party/boringssl/crypto/ec_extra/ec_derive.c +96 -0
- data/third_party/boringssl/crypto/{ecdh/ecdh.c → ecdh_extra/ecdh_extra.c} +20 -58
- data/third_party/boringssl/crypto/ecdsa_extra/ecdsa_asn1.c +1 -9
- data/third_party/boringssl/crypto/engine/engine.c +2 -1
- data/third_party/boringssl/crypto/err/err.c +2 -0
- data/third_party/boringssl/crypto/err/internal.h +2 -2
- data/third_party/boringssl/crypto/evp/evp.c +89 -8
- data/third_party/boringssl/crypto/evp/evp_asn1.c +56 -5
- data/third_party/boringssl/crypto/evp/evp_ctx.c +52 -14
- data/third_party/boringssl/crypto/evp/internal.h +18 -1
- data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +5 -0
- data/third_party/boringssl/crypto/evp/p_ec.c +51 -3
- data/third_party/boringssl/crypto/evp/p_ec_asn1.c +6 -7
- data/third_party/boringssl/crypto/evp/p_ed25519.c +36 -3
- data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +76 -45
- data/third_party/boringssl/crypto/evp/p_rsa.c +3 -1
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +5 -0
- data/third_party/boringssl/crypto/evp/p_x25519.c +110 -0
- data/third_party/boringssl/crypto/evp/p_x25519_asn1.c +249 -0
- data/third_party/boringssl/crypto/evp/scrypt.c +6 -2
- data/third_party/boringssl/crypto/fipsmodule/aes/aes.c +34 -274
- data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +161 -21
- data/third_party/boringssl/crypto/fipsmodule/aes/key_wrap.c +111 -13
- data/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.c +17 -21
- data/third_party/boringssl/crypto/fipsmodule/bcm.c +119 -7
- data/third_party/boringssl/crypto/fipsmodule/bn/bn.c +19 -2
- data/third_party/boringssl/crypto/fipsmodule/bn/cmp.c +2 -2
- data/third_party/boringssl/crypto/fipsmodule/bn/ctx.c +93 -160
- data/third_party/boringssl/crypto/fipsmodule/bn/div.c +48 -57
- data/third_party/boringssl/crypto/fipsmodule/bn/div_extra.c +87 -0
- data/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.c +143 -211
- data/third_party/boringssl/crypto/fipsmodule/bn/gcd.c +0 -305
- data/third_party/boringssl/crypto/fipsmodule/bn/gcd_extra.c +325 -0
- data/third_party/boringssl/crypto/fipsmodule/bn/internal.h +168 -50
- data/third_party/boringssl/crypto/fipsmodule/bn/montgomery.c +68 -92
- data/third_party/boringssl/crypto/fipsmodule/bn/montgomery_inv.c +7 -6
- data/third_party/boringssl/crypto/fipsmodule/bn/mul.c +11 -14
- data/third_party/boringssl/crypto/fipsmodule/bn/prime.c +358 -443
- data/third_party/boringssl/crypto/fipsmodule/bn/random.c +25 -35
- data/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.c +20 -25
- data/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.h +76 -5
- data/third_party/boringssl/crypto/fipsmodule/bn/shift.c +14 -14
- data/third_party/boringssl/crypto/fipsmodule/cipher/cipher.c +7 -2
- data/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.c +383 -516
- data/third_party/boringssl/crypto/fipsmodule/cipher/e_des.c +4 -0
- data/third_party/boringssl/crypto/fipsmodule/cipher/internal.h +3 -4
- data/third_party/boringssl/crypto/fipsmodule/delocate.h +3 -2
- data/third_party/boringssl/crypto/fipsmodule/digest/digest.c +32 -17
- data/third_party/boringssl/crypto/fipsmodule/digest/md32_common.h +3 -3
- data/third_party/boringssl/crypto/fipsmodule/ec/ec.c +228 -122
- data/third_party/boringssl/crypto/fipsmodule/ec/ec_key.c +34 -8
- data/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.c +311 -98
- data/third_party/boringssl/crypto/fipsmodule/ec/felem.c +82 -0
- data/third_party/boringssl/crypto/fipsmodule/ec/internal.h +263 -97
- data/third_party/boringssl/crypto/fipsmodule/ec/oct.c +22 -59
- data/third_party/boringssl/crypto/fipsmodule/ec/p224-64.c +317 -234
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64-table.h +9473 -9475
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.c +313 -109
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.h +36 -0
- data/third_party/boringssl/crypto/fipsmodule/ec/scalar.c +96 -0
- data/third_party/boringssl/crypto/fipsmodule/ec/simple.c +126 -792
- data/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.c +84 -0
- data/third_party/boringssl/crypto/fipsmodule/ec/util.c +163 -12
- data/third_party/boringssl/crypto/fipsmodule/ec/wnaf.c +84 -211
- data/third_party/boringssl/crypto/fipsmodule/ecdh/ecdh.c +122 -0
- data/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.c +60 -205
- data/third_party/boringssl/crypto/fipsmodule/fips_shared_support.c +32 -0
- data/third_party/boringssl/crypto/fipsmodule/is_fips.c +2 -0
- data/third_party/boringssl/crypto/fipsmodule/md4/md4.c +3 -1
- data/third_party/boringssl/crypto/fipsmodule/md5/internal.h +37 -0
- data/third_party/boringssl/crypto/fipsmodule/md5/md5.c +11 -8
- data/third_party/boringssl/crypto/fipsmodule/modes/cbc.c +35 -79
- data/third_party/boringssl/crypto/fipsmodule/modes/cfb.c +7 -39
- data/third_party/boringssl/crypto/fipsmodule/modes/ctr.c +7 -27
- data/third_party/boringssl/crypto/fipsmodule/modes/gcm.c +123 -309
- data/third_party/boringssl/crypto/fipsmodule/modes/internal.h +189 -126
- data/third_party/boringssl/crypto/fipsmodule/modes/ofb.c +3 -2
- data/third_party/boringssl/crypto/fipsmodule/rand/ctrdrbg.c +2 -2
- data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +35 -0
- data/third_party/boringssl/crypto/fipsmodule/rand/rand.c +24 -19
- data/third_party/boringssl/crypto/fipsmodule/rand/urandom.c +256 -77
- data/third_party/boringssl/crypto/fipsmodule/rsa/padding.c +10 -7
- data/third_party/boringssl/crypto/fipsmodule/rsa/rsa.c +5 -1
- data/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.c +131 -14
- data/third_party/boringssl/crypto/fipsmodule/self_check/self_check.c +83 -10
- data/third_party/boringssl/crypto/fipsmodule/sha/internal.h +53 -0
- data/third_party/boringssl/crypto/fipsmodule/sha/sha1.c +9 -13
- data/third_party/boringssl/crypto/fipsmodule/sha/sha256.c +18 -12
- data/third_party/boringssl/crypto/fipsmodule/sha/sha512.c +95 -168
- data/third_party/boringssl/crypto/hrss/hrss.c +2201 -0
- data/third_party/boringssl/crypto/hrss/internal.h +62 -0
- data/third_party/boringssl/crypto/internal.h +95 -20
- data/third_party/boringssl/crypto/lhash/lhash.c +45 -33
- data/third_party/boringssl/crypto/mem.c +39 -2
- data/third_party/boringssl/crypto/obj/obj.c +4 -4
- data/third_party/boringssl/crypto/obj/obj_dat.h +6181 -875
- data/third_party/boringssl/crypto/pem/pem_all.c +2 -3
- data/third_party/boringssl/crypto/pem/pem_info.c +144 -162
- data/third_party/boringssl/crypto/pem/pem_lib.c +53 -52
- data/third_party/boringssl/crypto/pem/pem_pkey.c +13 -21
- data/third_party/boringssl/crypto/pkcs7/pkcs7.c +15 -22
- data/third_party/boringssl/crypto/pkcs7/pkcs7_x509.c +168 -16
- data/third_party/boringssl/crypto/pkcs8/internal.h +11 -0
- data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +24 -15
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +42 -25
- data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +559 -43
- data/third_party/boringssl/crypto/pool/internal.h +1 -1
- data/third_party/boringssl/crypto/pool/pool.c +21 -0
- data/third_party/boringssl/crypto/rand_extra/deterministic.c +8 -0
- data/third_party/boringssl/crypto/rand_extra/fuchsia.c +1 -14
- data/third_party/boringssl/crypto/refcount_lock.c +2 -2
- data/third_party/boringssl/crypto/rsa_extra/rsa_print.c +22 -0
- data/third_party/boringssl/crypto/siphash/siphash.c +80 -0
- data/third_party/boringssl/crypto/stack/stack.c +83 -32
- data/third_party/boringssl/crypto/thread_none.c +2 -2
- data/third_party/boringssl/crypto/thread_pthread.c +2 -2
- data/third_party/boringssl/crypto/thread_win.c +38 -19
- data/third_party/boringssl/crypto/x509/a_strex.c +22 -2
- data/third_party/boringssl/crypto/x509/asn1_gen.c +2 -1
- data/third_party/boringssl/crypto/x509/by_dir.c +7 -0
- data/third_party/boringssl/crypto/x509/by_file.c +12 -10
- data/third_party/boringssl/crypto/x509/t_crl.c +5 -8
- data/third_party/boringssl/crypto/x509/t_req.c +1 -3
- data/third_party/boringssl/crypto/x509/t_x509.c +5 -8
- data/third_party/boringssl/crypto/x509/x509_cmp.c +1 -1
- data/third_party/boringssl/crypto/x509/x509_def.c +1 -1
- data/third_party/boringssl/crypto/x509/x509_lu.c +114 -5
- data/third_party/boringssl/crypto/x509/x509_req.c +20 -0
- data/third_party/boringssl/crypto/x509/x509_set.c +5 -0
- data/third_party/boringssl/crypto/x509/x509_trs.c +1 -0
- data/third_party/boringssl/crypto/x509/x509_txt.c +4 -5
- data/third_party/boringssl/crypto/x509/x509_vfy.c +145 -138
- data/third_party/boringssl/crypto/x509/x509_vpm.c +2 -0
- data/third_party/boringssl/crypto/x509/x509cset.c +40 -0
- data/third_party/boringssl/crypto/x509/x509name.c +2 -3
- data/third_party/boringssl/crypto/x509/x_all.c +109 -210
- data/third_party/boringssl/crypto/x509/x_x509.c +6 -0
- data/third_party/boringssl/crypto/x509v3/ext_dat.h +1 -3
- data/third_party/boringssl/crypto/x509v3/internal.h +56 -0
- data/third_party/boringssl/crypto/x509v3/pcy_cache.c +2 -0
- data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -0
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +4 -2
- data/third_party/boringssl/crypto/x509v3/v3_akey.c +5 -2
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +19 -13
- data/third_party/boringssl/crypto/x509v3/v3_conf.c +2 -1
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +3 -2
- data/third_party/boringssl/crypto/x509v3/v3_genn.c +1 -6
- data/third_party/boringssl/crypto/x509v3/v3_lib.c +1 -0
- data/third_party/boringssl/crypto/x509v3/v3_ocsp.c +68 -0
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +2 -1
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +47 -69
- data/third_party/boringssl/crypto/x509v3/v3_skey.c +5 -2
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +69 -25
- data/third_party/boringssl/include/openssl/aead.h +45 -19
- data/third_party/boringssl/include/openssl/aes.h +32 -7
- data/third_party/boringssl/include/openssl/asn1.h +7 -77
- data/third_party/boringssl/include/openssl/base.h +120 -6
- data/third_party/boringssl/include/openssl/base64.h +4 -1
- data/third_party/boringssl/include/openssl/bio.h +112 -81
- data/third_party/boringssl/include/openssl/blowfish.h +3 -3
- data/third_party/boringssl/include/openssl/bn.h +55 -29
- data/third_party/boringssl/include/openssl/buf.h +2 -2
- data/third_party/boringssl/include/openssl/bytestring.h +54 -32
- data/third_party/boringssl/include/openssl/cast.h +2 -2
- data/third_party/boringssl/include/openssl/cipher.h +46 -16
- data/third_party/boringssl/include/openssl/cmac.h +6 -2
- data/third_party/boringssl/include/openssl/conf.h +3 -6
- data/third_party/boringssl/include/openssl/cpu.h +25 -9
- data/third_party/boringssl/include/openssl/crypto.h +32 -10
- data/third_party/boringssl/include/openssl/curve25519.h +4 -4
- data/third_party/boringssl/include/openssl/dh.h +3 -2
- data/third_party/boringssl/include/openssl/digest.h +21 -7
- data/third_party/boringssl/include/openssl/dsa.h +8 -2
- data/third_party/boringssl/include/openssl/e_os2.h +18 -0
- data/third_party/boringssl/include/openssl/ec.h +25 -21
- data/third_party/boringssl/include/openssl/ec_key.h +36 -8
- data/third_party/boringssl/include/openssl/ecdh.h +17 -0
- data/third_party/boringssl/include/openssl/ecdsa.h +3 -3
- data/third_party/boringssl/include/openssl/engine.h +4 -4
- data/third_party/boringssl/include/openssl/err.h +3 -0
- data/third_party/boringssl/include/openssl/evp.h +199 -42
- data/third_party/boringssl/include/openssl/hmac.h +4 -4
- data/third_party/boringssl/include/openssl/hrss.h +100 -0
- data/third_party/boringssl/include/openssl/lhash.h +131 -23
- data/third_party/boringssl/include/openssl/md4.h +6 -4
- data/third_party/boringssl/include/openssl/md5.h +6 -4
- data/third_party/boringssl/include/openssl/mem.h +6 -2
- data/third_party/boringssl/include/openssl/nid.h +3 -0
- data/third_party/boringssl/include/openssl/obj.h +3 -0
- data/third_party/boringssl/include/openssl/pem.h +102 -64
- data/third_party/boringssl/include/openssl/pkcs7.h +136 -3
- data/third_party/boringssl/include/openssl/pkcs8.h +42 -3
- data/third_party/boringssl/include/openssl/pool.h +13 -2
- data/third_party/boringssl/include/openssl/ripemd.h +5 -4
- data/third_party/boringssl/include/openssl/rsa.h +46 -15
- data/third_party/boringssl/include/openssl/sha.h +40 -28
- data/third_party/boringssl/include/openssl/siphash.h +37 -0
- data/third_party/boringssl/include/openssl/span.h +17 -9
- data/third_party/boringssl/include/openssl/ssl.h +766 -393
- data/third_party/boringssl/include/openssl/ssl3.h +4 -3
- data/third_party/boringssl/include/openssl/stack.h +134 -77
- data/third_party/boringssl/include/openssl/thread.h +1 -1
- data/third_party/boringssl/include/openssl/tls1.h +25 -9
- data/third_party/boringssl/include/openssl/type_check.h +14 -15
- data/third_party/boringssl/include/openssl/x509.h +28 -3
- data/third_party/boringssl/include/openssl/x509_vfy.h +98 -32
- data/third_party/boringssl/include/openssl/x509v3.h +17 -13
- data/third_party/boringssl/ssl/d1_both.cc +9 -18
- data/third_party/boringssl/ssl/d1_lib.cc +4 -3
- data/third_party/boringssl/ssl/d1_pkt.cc +4 -4
- data/third_party/boringssl/ssl/d1_srtp.cc +15 -15
- data/third_party/boringssl/ssl/dtls_method.cc +0 -1
- data/third_party/boringssl/ssl/dtls_record.cc +28 -28
- data/third_party/boringssl/ssl/handoff.cc +295 -91
- data/third_party/boringssl/ssl/handshake.cc +133 -72
- data/third_party/boringssl/ssl/handshake_client.cc +218 -189
- data/third_party/boringssl/ssl/handshake_server.cc +399 -272
- data/third_party/boringssl/ssl/internal.h +1413 -928
- data/third_party/boringssl/ssl/s3_both.cc +175 -36
- data/third_party/boringssl/ssl/s3_lib.cc +9 -13
- data/third_party/boringssl/ssl/s3_pkt.cc +63 -29
- data/third_party/boringssl/ssl/ssl_aead_ctx.cc +55 -35
- data/third_party/boringssl/ssl/ssl_asn1.cc +57 -73
- data/third_party/boringssl/ssl/ssl_buffer.cc +13 -12
- data/third_party/boringssl/ssl/ssl_cert.cc +313 -210
- data/third_party/boringssl/ssl/ssl_cipher.cc +159 -221
- data/third_party/boringssl/ssl/ssl_file.cc +2 -0
- data/third_party/boringssl/ssl/ssl_key_share.cc +164 -19
- data/third_party/boringssl/ssl/ssl_lib.cc +847 -555
- data/third_party/boringssl/ssl/ssl_privkey.cc +441 -111
- data/third_party/boringssl/ssl/ssl_session.cc +230 -178
- data/third_party/boringssl/ssl/ssl_transcript.cc +21 -142
- data/third_party/boringssl/ssl/ssl_versions.cc +88 -93
- data/third_party/boringssl/ssl/ssl_x509.cc +279 -218
- data/third_party/boringssl/ssl/t1_enc.cc +5 -96
- data/third_party/boringssl/ssl/t1_lib.cc +931 -678
- data/third_party/boringssl/ssl/tls13_both.cc +251 -121
- data/third_party/boringssl/ssl/tls13_client.cc +129 -73
- data/third_party/boringssl/ssl/tls13_enc.cc +350 -282
- data/third_party/boringssl/ssl/tls13_server.cc +259 -192
- data/third_party/boringssl/ssl/tls_method.cc +26 -21
- data/third_party/boringssl/ssl/tls_record.cc +42 -47
- data/third_party/boringssl/third_party/fiat/curve25519.c +261 -1324
- data/third_party/boringssl/third_party/fiat/curve25519_32.h +911 -0
- data/third_party/boringssl/third_party/fiat/curve25519_64.h +559 -0
- data/third_party/boringssl/third_party/fiat/p256.c +238 -999
- data/third_party/boringssl/third_party/fiat/p256_32.h +3226 -0
- data/third_party/boringssl/third_party/fiat/p256_64.h +1217 -0
- data/third_party/upb/upb/port_def.inc +1 -1
- data/third_party/upb/upb/table.c +2 -1
- metadata +72 -44
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_load_balancer_api.h +0 -127
- data/src/core/lib/gpr/mpscq.cc +0 -117
- data/src/core/lib/gpr/mpscq.h +0 -88
- data/src/core/lib/gprpp/abstract.h +0 -47
- data/src/core/lib/gprpp/pair.h +0 -38
- data/third_party/boringssl/crypto/cipher_extra/e_ssl3.c +0 -460
- data/third_party/boringssl/crypto/fipsmodule/modes/ccm.c +0 -256
- data/third_party/boringssl/include/openssl/lhash_macros.h +0 -174
- data/third_party/boringssl/ssl/custom_extensions.cc +0 -265
@@ -56,7 +56,8 @@ grpc_error* ssl_check_peer(
|
|
56
56
|
gpr_free(msg);
|
57
57
|
return error;
|
58
58
|
}
|
59
|
-
*auth_context =
|
59
|
+
*auth_context =
|
60
|
+
grpc_ssl_peer_to_auth_context(peer, GRPC_SSL_TRANSPORT_SECURITY_TYPE);
|
60
61
|
return GRPC_ERROR_NONE;
|
61
62
|
}
|
62
63
|
|
@@ -116,7 +117,8 @@ class grpc_ssl_channel_security_connector final
|
|
116
117
|
return GRPC_SECURITY_OK;
|
117
118
|
}
|
118
119
|
|
119
|
-
void add_handshakers(
|
120
|
+
void add_handshakers(const grpc_channel_args* args,
|
121
|
+
grpc_pollset_set* interested_parties,
|
120
122
|
grpc_core::HandshakeManager* handshake_mgr) override {
|
121
123
|
// Instantiate TSI handshaker.
|
122
124
|
tsi_handshaker* tsi_hs = nullptr;
|
@@ -131,7 +133,7 @@ class grpc_ssl_channel_security_connector final
|
|
131
133
|
return;
|
132
134
|
}
|
133
135
|
// Create handshakers.
|
134
|
-
handshake_mgr->Add(grpc_core::SecurityHandshakerCreate(tsi_hs, this));
|
136
|
+
handshake_mgr->Add(grpc_core::SecurityHandshakerCreate(tsi_hs, this, args));
|
135
137
|
}
|
136
138
|
|
137
139
|
void check_peer(tsi_peer peer, grpc_endpoint* ep,
|
@@ -278,7 +280,8 @@ class grpc_ssl_server_security_connector
|
|
278
280
|
return GRPC_SECURITY_OK;
|
279
281
|
}
|
280
282
|
|
281
|
-
void add_handshakers(
|
283
|
+
void add_handshakers(const grpc_channel_args* args,
|
284
|
+
grpc_pollset_set* interested_parties,
|
282
285
|
grpc_core::HandshakeManager* handshake_mgr) override {
|
283
286
|
// Instantiate TSI handshaker.
|
284
287
|
try_fetch_ssl_server_credentials();
|
@@ -291,7 +294,7 @@ class grpc_ssl_server_security_connector
|
|
291
294
|
return;
|
292
295
|
}
|
293
296
|
// Create handshakers.
|
294
|
-
handshake_mgr->Add(grpc_core::SecurityHandshakerCreate(tsi_hs, this));
|
297
|
+
handshake_mgr->Add(grpc_core::SecurityHandshakerCreate(tsi_hs, this, args));
|
295
298
|
}
|
296
299
|
|
297
300
|
void check_peer(tsi_peer peer, grpc_endpoint* ep,
|
@@ -195,7 +195,7 @@ int grpc_ssl_cmp_target_name(
|
|
195
195
|
}
|
196
196
|
|
197
197
|
grpc_core::RefCountedPtr<grpc_auth_context> grpc_ssl_peer_to_auth_context(
|
198
|
-
const tsi_peer* peer) {
|
198
|
+
const tsi_peer* peer, const char* transport_security_type) {
|
199
199
|
size_t i;
|
200
200
|
const char* peer_identity_property_name = nullptr;
|
201
201
|
|
@@ -205,7 +205,7 @@ grpc_core::RefCountedPtr<grpc_auth_context> grpc_ssl_peer_to_auth_context(
|
|
205
205
|
grpc_core::MakeRefCounted<grpc_auth_context>(nullptr);
|
206
206
|
grpc_auth_context_add_cstring_property(
|
207
207
|
ctx.get(), GRPC_TRANSPORT_SECURITY_TYPE_PROPERTY_NAME,
|
208
|
-
|
208
|
+
transport_security_type);
|
209
209
|
for (i = 0; i < peer->property_count; i++) {
|
210
210
|
const tsi_peer_property* prop = &peer->properties[i];
|
211
211
|
if (prop->name == nullptr) continue;
|
@@ -85,7 +85,7 @@ grpc_security_status grpc_ssl_tsi_server_handshaker_factory_init(
|
|
85
85
|
|
86
86
|
/* Exposed for testing only. */
|
87
87
|
grpc_core::RefCountedPtr<grpc_auth_context> grpc_ssl_peer_to_auth_context(
|
88
|
-
const tsi_peer* peer);
|
88
|
+
const tsi_peer* peer, const char* transport_security_type);
|
89
89
|
tsi_peer grpc_shallow_peer_from_ssl_auth_context(
|
90
90
|
const grpc_auth_context* auth_context);
|
91
91
|
void grpc_shallow_peer_destruct(tsi_peer* peer);
|
@@ -104,6 +104,9 @@ grpc_status_code TlsFetchKeyMaterials(
|
|
104
104
|
}
|
105
105
|
}
|
106
106
|
gpr_free((void*)arg->error_details);
|
107
|
+
if (arg->destroy_context != nullptr) {
|
108
|
+
arg->destroy_context(arg->context);
|
109
|
+
}
|
107
110
|
grpc_core::Delete(arg);
|
108
111
|
}
|
109
112
|
return status;
|
@@ -138,7 +141,7 @@ SpiffeChannelSecurityConnector::~SpiffeChannelSecurityConnector() {
|
|
138
141
|
}
|
139
142
|
|
140
143
|
void SpiffeChannelSecurityConnector::add_handshakers(
|
141
|
-
grpc_pollset_set* interested_parties,
|
144
|
+
const grpc_channel_args* args, grpc_pollset_set* interested_parties,
|
142
145
|
grpc_core::HandshakeManager* handshake_mgr) {
|
143
146
|
if (RefreshHandshakerFactory() != GRPC_SECURITY_OK) {
|
144
147
|
gpr_log(GPR_ERROR, "Handshaker factory refresh failed.");
|
@@ -157,7 +160,7 @@ void SpiffeChannelSecurityConnector::add_handshakers(
|
|
157
160
|
return;
|
158
161
|
}
|
159
162
|
// Create handshakers.
|
160
|
-
handshake_mgr->Add(grpc_core::SecurityHandshakerCreate(tsi_hs, this));
|
163
|
+
handshake_mgr->Add(grpc_core::SecurityHandshakerCreate(tsi_hs, this, args));
|
161
164
|
}
|
162
165
|
|
163
166
|
void SpiffeChannelSecurityConnector::check_peer(
|
@@ -173,7 +176,8 @@ void SpiffeChannelSecurityConnector::check_peer(
|
|
173
176
|
tsi_peer_destruct(&peer);
|
174
177
|
return;
|
175
178
|
}
|
176
|
-
*auth_context = grpc_ssl_peer_to_auth_context(
|
179
|
+
*auth_context = grpc_ssl_peer_to_auth_context(
|
180
|
+
&peer, GRPC_TLS_SPIFFE_TRANSPORT_SECURITY_TYPE);
|
177
181
|
const SpiffeCredentials* creds =
|
178
182
|
static_cast<const SpiffeCredentials*>(channel_creds());
|
179
183
|
const grpc_tls_server_authorization_check_config* config =
|
@@ -392,6 +396,9 @@ void SpiffeChannelSecurityConnector::ServerAuthorizationCheckArgDestroy(
|
|
392
396
|
gpr_free((void*)arg->target_name);
|
393
397
|
gpr_free((void*)arg->peer_cert);
|
394
398
|
gpr_free((void*)arg->error_details);
|
399
|
+
if (arg->destroy_context != nullptr) {
|
400
|
+
arg->destroy_context(arg->context);
|
401
|
+
}
|
395
402
|
grpc_core::Delete(arg);
|
396
403
|
}
|
397
404
|
|
@@ -412,7 +419,7 @@ SpiffeServerSecurityConnector::~SpiffeServerSecurityConnector() {
|
|
412
419
|
}
|
413
420
|
|
414
421
|
void SpiffeServerSecurityConnector::add_handshakers(
|
415
|
-
grpc_pollset_set* interested_parties,
|
422
|
+
const grpc_channel_args* args, grpc_pollset_set* interested_parties,
|
416
423
|
grpc_core::HandshakeManager* handshake_mgr) {
|
417
424
|
/* Refresh handshaker factory if needed. */
|
418
425
|
if (RefreshHandshakerFactory() != GRPC_SECURITY_OK) {
|
@@ -428,7 +435,7 @@ void SpiffeServerSecurityConnector::add_handshakers(
|
|
428
435
|
tsi_result_to_string(result));
|
429
436
|
return;
|
430
437
|
}
|
431
|
-
handshake_mgr->Add(grpc_core::SecurityHandshakerCreate(tsi_hs, this));
|
438
|
+
handshake_mgr->Add(grpc_core::SecurityHandshakerCreate(tsi_hs, this, args));
|
432
439
|
}
|
433
440
|
|
434
441
|
void SpiffeServerSecurityConnector::check_peer(
|
@@ -436,7 +443,8 @@ void SpiffeServerSecurityConnector::check_peer(
|
|
436
443
|
grpc_core::RefCountedPtr<grpc_auth_context>* auth_context,
|
437
444
|
grpc_closure* on_peer_checked) {
|
438
445
|
grpc_error* error = grpc_ssl_check_alpn(&peer);
|
439
|
-
*auth_context = grpc_ssl_peer_to_auth_context(
|
446
|
+
*auth_context = grpc_ssl_peer_to_auth_context(
|
447
|
+
&peer, GRPC_TLS_SPIFFE_TRANSPORT_SECURITY_TYPE);
|
440
448
|
tsi_peer_destruct(&peer);
|
441
449
|
GRPC_CLOSURE_SCHED(on_peer_checked, error);
|
442
450
|
}
|
@@ -47,7 +47,8 @@ class SpiffeChannelSecurityConnector final
|
|
47
47
|
const char* target_name, const char* overridden_target_name);
|
48
48
|
~SpiffeChannelSecurityConnector() override;
|
49
49
|
|
50
|
-
void add_handshakers(
|
50
|
+
void add_handshakers(const grpc_channel_args* args,
|
51
|
+
grpc_pollset_set* interested_parties,
|
51
52
|
grpc_core::HandshakeManager* handshake_mgr) override;
|
52
53
|
|
53
54
|
void check_peer(tsi_peer peer, grpc_endpoint* ep,
|
@@ -117,7 +118,8 @@ class SpiffeServerSecurityConnector final
|
|
117
118
|
grpc_core::RefCountedPtr<grpc_server_credentials> server_creds);
|
118
119
|
~SpiffeServerSecurityConnector() override;
|
119
120
|
|
120
|
-
void add_handshakers(
|
121
|
+
void add_handshakers(const grpc_channel_args* args,
|
122
|
+
grpc_pollset_set* interested_parties,
|
121
123
|
grpc_core::HandshakeManager* handshake_mgr) override;
|
122
124
|
|
123
125
|
void check_peer(tsi_peer peer, grpc_endpoint* ep,
|
@@ -324,7 +324,7 @@ static void cancel_check_call_host(void* arg, grpc_error* error) {
|
|
324
324
|
}
|
325
325
|
}
|
326
326
|
|
327
|
-
static void
|
327
|
+
static void client_auth_start_transport_stream_op_batch(
|
328
328
|
grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
|
329
329
|
GPR_TIMER_SCOPE("auth_start_transport_stream_op_batch", 0);
|
330
330
|
|
@@ -369,29 +369,29 @@ static void auth_start_transport_stream_op_batch(
|
|
369
369
|
}
|
370
370
|
|
371
371
|
/* Constructor for call_data */
|
372
|
-
static grpc_error*
|
373
|
-
|
372
|
+
static grpc_error* client_auth_init_call_elem(
|
373
|
+
grpc_call_element* elem, const grpc_call_element_args* args) {
|
374
374
|
new (elem->call_data) call_data(elem, *args);
|
375
375
|
return GRPC_ERROR_NONE;
|
376
376
|
}
|
377
377
|
|
378
|
-
static void
|
379
|
-
|
378
|
+
static void client_auth_set_pollset_or_pollset_set(
|
379
|
+
grpc_call_element* elem, grpc_polling_entity* pollent) {
|
380
380
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
381
381
|
calld->pollent = pollent;
|
382
382
|
}
|
383
383
|
|
384
384
|
/* Destructor for call_data */
|
385
|
-
static void
|
386
|
-
|
387
|
-
|
385
|
+
static void client_auth_destroy_call_elem(
|
386
|
+
grpc_call_element* elem, const grpc_call_final_info* final_info,
|
387
|
+
grpc_closure* ignored) {
|
388
388
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
389
389
|
calld->destroy();
|
390
390
|
}
|
391
391
|
|
392
392
|
/* Constructor for channel_data */
|
393
|
-
static grpc_error*
|
394
|
-
|
393
|
+
static grpc_error* client_auth_init_channel_elem(
|
394
|
+
grpc_channel_element* elem, grpc_channel_element_args* args) {
|
395
395
|
/* The first and the last filters tend to be implemented differently to
|
396
396
|
handle the case that there's no 'next' filter to call on the up or down
|
397
397
|
path */
|
@@ -414,20 +414,20 @@ static grpc_error* init_channel_elem(grpc_channel_element* elem,
|
|
414
414
|
}
|
415
415
|
|
416
416
|
/* Destructor for channel data */
|
417
|
-
static void
|
417
|
+
static void client_auth_destroy_channel_elem(grpc_channel_element* elem) {
|
418
418
|
channel_data* chand = static_cast<channel_data*>(elem->channel_data);
|
419
419
|
chand->~channel_data();
|
420
420
|
}
|
421
421
|
|
422
422
|
const grpc_channel_filter grpc_client_auth_filter = {
|
423
|
-
|
423
|
+
client_auth_start_transport_stream_op_batch,
|
424
424
|
grpc_channel_next_op,
|
425
425
|
sizeof(call_data),
|
426
|
-
|
427
|
-
|
428
|
-
|
426
|
+
client_auth_init_call_elem,
|
427
|
+
client_auth_set_pollset_or_pollset_set,
|
428
|
+
client_auth_destroy_call_elem,
|
429
429
|
sizeof(channel_data),
|
430
|
-
|
431
|
-
|
430
|
+
client_auth_init_channel_elem,
|
431
|
+
client_auth_destroy_channel_elem,
|
432
432
|
grpc_channel_next_get_info,
|
433
433
|
"client-auth"};
|
@@ -22,6 +22,7 @@
|
|
22
22
|
|
23
23
|
#include <stdbool.h>
|
24
24
|
#include <string.h>
|
25
|
+
#include <limits>
|
25
26
|
|
26
27
|
#include <grpc/slice_buffer.h>
|
27
28
|
#include <grpc/support/alloc.h>
|
@@ -46,7 +47,8 @@ namespace {
|
|
46
47
|
class SecurityHandshaker : public Handshaker {
|
47
48
|
public:
|
48
49
|
SecurityHandshaker(tsi_handshaker* handshaker,
|
49
|
-
grpc_security_connector* connector
|
50
|
+
grpc_security_connector* connector,
|
51
|
+
const grpc_channel_args* args);
|
50
52
|
~SecurityHandshaker() override;
|
51
53
|
void Shutdown(grpc_error* why) override;
|
52
54
|
void DoHandshake(grpc_tcp_server_acceptor* acceptor,
|
@@ -97,15 +99,23 @@ class SecurityHandshaker : public Handshaker {
|
|
97
99
|
grpc_closure on_peer_checked_;
|
98
100
|
RefCountedPtr<grpc_auth_context> auth_context_;
|
99
101
|
tsi_handshaker_result* handshaker_result_ = nullptr;
|
102
|
+
size_t max_frame_size_ = 0;
|
100
103
|
};
|
101
104
|
|
102
105
|
SecurityHandshaker::SecurityHandshaker(tsi_handshaker* handshaker,
|
103
|
-
grpc_security_connector* connector
|
106
|
+
grpc_security_connector* connector,
|
107
|
+
const grpc_channel_args* args)
|
104
108
|
: handshaker_(handshaker),
|
105
109
|
connector_(connector->Ref(DEBUG_LOCATION, "handshake")),
|
106
110
|
handshake_buffer_size_(GRPC_INITIAL_HANDSHAKE_BUFFER_SIZE),
|
107
111
|
handshake_buffer_(
|
108
112
|
static_cast<uint8_t*>(gpr_malloc(handshake_buffer_size_))) {
|
113
|
+
const grpc_arg* arg =
|
114
|
+
grpc_channel_args_find(args, GRPC_ARG_TSI_MAX_FRAME_SIZE);
|
115
|
+
if (arg != nullptr && arg->type == GRPC_ARG_INTEGER) {
|
116
|
+
max_frame_size_ = grpc_channel_arg_get_integer(
|
117
|
+
arg, {0, 0, std::numeric_limits<int>::max()});
|
118
|
+
}
|
109
119
|
gpr_mu_init(&mu_);
|
110
120
|
grpc_slice_buffer_init(&outgoing_);
|
111
121
|
GRPC_CLOSURE_INIT(&on_handshake_data_sent_to_peer_,
|
@@ -201,7 +211,8 @@ void SecurityHandshaker::OnPeerCheckedInner(grpc_error* error) {
|
|
201
211
|
// Create zero-copy frame protector, if implemented.
|
202
212
|
tsi_zero_copy_grpc_protector* zero_copy_protector = nullptr;
|
203
213
|
tsi_result result = tsi_handshaker_result_create_zero_copy_grpc_protector(
|
204
|
-
handshaker_result_, nullptr
|
214
|
+
handshaker_result_, max_frame_size_ == 0 ? nullptr : &max_frame_size_,
|
215
|
+
&zero_copy_protector);
|
205
216
|
if (result != TSI_OK && result != TSI_UNIMPLEMENTED) {
|
206
217
|
error = grpc_set_tsi_error_result(
|
207
218
|
GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
@@ -213,8 +224,9 @@ void SecurityHandshaker::OnPeerCheckedInner(grpc_error* error) {
|
|
213
224
|
// Create frame protector if zero-copy frame protector is NULL.
|
214
225
|
tsi_frame_protector* protector = nullptr;
|
215
226
|
if (zero_copy_protector == nullptr) {
|
216
|
-
result = tsi_handshaker_result_create_frame_protector(
|
217
|
-
|
227
|
+
result = tsi_handshaker_result_create_frame_protector(
|
228
|
+
handshaker_result_, max_frame_size_ == 0 ? nullptr : &max_frame_size_,
|
229
|
+
&protector);
|
218
230
|
if (result != TSI_OK) {
|
219
231
|
error = grpc_set_tsi_error_result(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
220
232
|
"Frame protector creation failed"),
|
@@ -459,7 +471,8 @@ class ClientSecurityHandshakerFactory : public HandshakerFactory {
|
|
459
471
|
reinterpret_cast<grpc_channel_security_connector*>(
|
460
472
|
grpc_security_connector_find_in_args(args));
|
461
473
|
if (security_connector) {
|
462
|
-
security_connector->add_handshakers(interested_parties,
|
474
|
+
security_connector->add_handshakers(args, interested_parties,
|
475
|
+
handshake_mgr);
|
463
476
|
}
|
464
477
|
}
|
465
478
|
~ClientSecurityHandshakerFactory() override = default;
|
@@ -474,7 +487,8 @@ class ServerSecurityHandshakerFactory : public HandshakerFactory {
|
|
474
487
|
reinterpret_cast<grpc_server_security_connector*>(
|
475
488
|
grpc_security_connector_find_in_args(args));
|
476
489
|
if (security_connector) {
|
477
|
-
security_connector->add_handshakers(interested_parties,
|
490
|
+
security_connector->add_handshakers(args, interested_parties,
|
491
|
+
handshake_mgr);
|
478
492
|
}
|
479
493
|
}
|
480
494
|
~ServerSecurityHandshakerFactory() override = default;
|
@@ -487,28 +501,30 @@ class ServerSecurityHandshakerFactory : public HandshakerFactory {
|
|
487
501
|
//
|
488
502
|
|
489
503
|
RefCountedPtr<Handshaker> SecurityHandshakerCreate(
|
490
|
-
tsi_handshaker* handshaker, grpc_security_connector* connector
|
504
|
+
tsi_handshaker* handshaker, grpc_security_connector* connector,
|
505
|
+
const grpc_channel_args* args) {
|
491
506
|
// If no TSI handshaker was created, return a handshaker that always fails.
|
492
507
|
// Otherwise, return a real security handshaker.
|
493
508
|
if (handshaker == nullptr) {
|
494
509
|
return MakeRefCounted<FailHandshaker>();
|
495
510
|
} else {
|
496
|
-
return MakeRefCounted<SecurityHandshaker>(handshaker, connector);
|
511
|
+
return MakeRefCounted<SecurityHandshaker>(handshaker, connector, args);
|
497
512
|
}
|
498
513
|
}
|
499
514
|
|
500
515
|
void SecurityRegisterHandshakerFactories() {
|
501
516
|
HandshakerRegistry::RegisterHandshakerFactory(
|
502
517
|
false /* at_start */, HANDSHAKER_CLIENT,
|
503
|
-
|
518
|
+
MakeUnique<ClientSecurityHandshakerFactory>());
|
504
519
|
HandshakerRegistry::RegisterHandshakerFactory(
|
505
520
|
false /* at_start */, HANDSHAKER_SERVER,
|
506
|
-
|
521
|
+
MakeUnique<ServerSecurityHandshakerFactory>());
|
507
522
|
}
|
508
523
|
|
509
524
|
} // namespace grpc_core
|
510
525
|
|
511
526
|
grpc_handshaker* grpc_security_handshaker_create(
|
512
|
-
tsi_handshaker* handshaker, grpc_security_connector* connector
|
513
|
-
|
527
|
+
tsi_handshaker* handshaker, grpc_security_connector* connector,
|
528
|
+
const grpc_channel_args* args) {
|
529
|
+
return SecurityHandshakerCreate(handshaker, connector, args).release();
|
514
530
|
}
|
@@ -28,7 +28,8 @@ namespace grpc_core {
|
|
28
28
|
|
29
29
|
/// Creates a security handshaker using \a handshaker.
|
30
30
|
RefCountedPtr<Handshaker> SecurityHandshakerCreate(
|
31
|
-
tsi_handshaker* handshaker, grpc_security_connector* connector
|
31
|
+
tsi_handshaker* handshaker, grpc_security_connector* connector,
|
32
|
+
const grpc_channel_args* args);
|
32
33
|
|
33
34
|
/// Registers security handshaker factories.
|
34
35
|
void SecurityRegisterHandshakerFactories();
|
@@ -38,6 +39,7 @@ void SecurityRegisterHandshakerFactories();
|
|
38
39
|
// TODO(arjunroy): This is transitional to account for the new handshaker API
|
39
40
|
// and will eventually be removed entirely.
|
40
41
|
grpc_handshaker* grpc_security_handshaker_create(
|
41
|
-
tsi_handshaker* handshaker, grpc_security_connector* connector
|
42
|
+
tsi_handshaker* handshaker, grpc_security_connector* connector,
|
43
|
+
const grpc_channel_args* args);
|
42
44
|
|
43
45
|
#endif /* GRPC_CORE_LIB_SECURITY_TRANSPORT_SECURITY_HANDSHAKER_H */
|
@@ -257,7 +257,7 @@ static void recv_trailing_metadata_ready(void* user_data, grpc_error* err) {
|
|
257
257
|
GRPC_CLOSURE_RUN(calld->original_recv_trailing_metadata_ready, err);
|
258
258
|
}
|
259
259
|
|
260
|
-
static void
|
260
|
+
static void server_auth_start_transport_stream_op_batch(
|
261
261
|
grpc_call_element* elem, grpc_transport_stream_op_batch* batch) {
|
262
262
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
263
263
|
if (batch->recv_initial_metadata) {
|
@@ -278,23 +278,23 @@ static void auth_start_transport_stream_op_batch(
|
|
278
278
|
}
|
279
279
|
|
280
280
|
/* Constructor for call_data */
|
281
|
-
static grpc_error*
|
282
|
-
|
281
|
+
static grpc_error* server_auth_init_call_elem(
|
282
|
+
grpc_call_element* elem, const grpc_call_element_args* args) {
|
283
283
|
new (elem->call_data) call_data(elem, *args);
|
284
284
|
return GRPC_ERROR_NONE;
|
285
285
|
}
|
286
286
|
|
287
287
|
/* Destructor for call_data */
|
288
|
-
static void
|
289
|
-
|
290
|
-
|
288
|
+
static void server_auth_destroy_call_elem(
|
289
|
+
grpc_call_element* elem, const grpc_call_final_info* final_info,
|
290
|
+
grpc_closure* ignored) {
|
291
291
|
call_data* calld = static_cast<call_data*>(elem->call_data);
|
292
292
|
calld->~call_data();
|
293
293
|
}
|
294
294
|
|
295
295
|
/* Constructor for channel_data */
|
296
|
-
static grpc_error*
|
297
|
-
|
296
|
+
static grpc_error* server_auth_init_channel_elem(
|
297
|
+
grpc_channel_element* elem, grpc_channel_element_args* args) {
|
298
298
|
GPR_ASSERT(!args->is_last);
|
299
299
|
grpc_auth_context* auth_context =
|
300
300
|
grpc_find_auth_context_in_args(args->channel_args);
|
@@ -306,20 +306,20 @@ static grpc_error* init_channel_elem(grpc_channel_element* elem,
|
|
306
306
|
}
|
307
307
|
|
308
308
|
/* Destructor for channel data */
|
309
|
-
static void
|
309
|
+
static void server_auth_destroy_channel_elem(grpc_channel_element* elem) {
|
310
310
|
channel_data* chand = static_cast<channel_data*>(elem->channel_data);
|
311
311
|
chand->~channel_data();
|
312
312
|
}
|
313
313
|
|
314
314
|
const grpc_channel_filter grpc_server_auth_filter = {
|
315
|
-
|
315
|
+
server_auth_start_transport_stream_op_batch,
|
316
316
|
grpc_channel_next_op,
|
317
317
|
sizeof(call_data),
|
318
|
-
|
318
|
+
server_auth_init_call_elem,
|
319
319
|
grpc_call_stack_ignore_set_pollset_or_pollset_set,
|
320
|
-
|
320
|
+
server_auth_destroy_call_elem,
|
321
321
|
sizeof(channel_data),
|
322
|
-
|
323
|
-
|
322
|
+
server_auth_init_channel_elem,
|
323
|
+
server_auth_destroy_channel_elem,
|
324
324
|
grpc_channel_next_get_info,
|
325
325
|
"server-auth"};
|
data/src/core/lib/slice/slice.cc
CHANGED
@@ -82,14 +82,11 @@ class NewSliceRefcount {
|
|
82
82
|
&base_),
|
83
83
|
user_destroy_(destroy),
|
84
84
|
user_data_(user_data) {}
|
85
|
-
|
86
|
-
GRPC_ALLOW_CLASS_TO_USE_NON_PUBLIC_DELETE
|
85
|
+
~NewSliceRefcount() { user_destroy_(user_data_); }
|
87
86
|
|
88
87
|
grpc_slice_refcount* base_refcount() { return &base_; }
|
89
88
|
|
90
89
|
private:
|
91
|
-
~NewSliceRefcount() { user_destroy_(user_data_); }
|
92
|
-
|
93
90
|
grpc_slice_refcount base_;
|
94
91
|
RefCount refs_;
|
95
92
|
void (*user_destroy_)(void*);
|
@@ -147,14 +144,11 @@ class NewWithLenSliceRefcount {
|
|
147
144
|
user_data_(user_data),
|
148
145
|
user_length_(user_length),
|
149
146
|
user_destroy_(destroy) {}
|
150
|
-
|
151
|
-
GRPC_ALLOW_CLASS_TO_USE_NON_PUBLIC_DELETE
|
147
|
+
~NewWithLenSliceRefcount() { user_destroy_(user_data_, user_length_); }
|
152
148
|
|
153
149
|
grpc_slice_refcount* base_refcount() { return &base_; }
|
154
150
|
|
155
151
|
private:
|
156
|
-
~NewWithLenSliceRefcount() { user_destroy_(user_data_, user_length_); }
|
157
|
-
|
158
152
|
grpc_slice_refcount base_;
|
159
153
|
RefCount refs_;
|
160
154
|
void* user_data_;
|
@@ -170,8 +164,6 @@ class MovedStringSliceRefCount {
|
|
170
164
|
&base_),
|
171
165
|
str_(std::move(str)) {}
|
172
166
|
|
173
|
-
GRPC_ALLOW_CLASS_TO_USE_NON_PUBLIC_DELETE
|
174
|
-
|
175
167
|
grpc_slice_refcount* base_refcount() { return &base_; }
|
176
168
|
|
177
169
|
private:
|