grpc 0.13.1 → 0.14.1.pre1
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 +2098 -828
- data/include/grpc/byte_buffer.h +1 -1
- data/include/grpc/byte_buffer_reader.h +1 -20
- data/include/grpc/census.h +4 -4
- data/include/grpc/compression.h +6 -5
- data/include/grpc/grpc.h +31 -20
- data/include/grpc/grpc_security.h +17 -31
- data/include/grpc/grpc_security_constants.h +114 -0
- data/include/grpc/grpc_zookeeper.h +1 -1
- data/include/grpc/impl/codegen/alloc.h +1 -1
- data/include/grpc/impl/codegen/atm.h +1 -1
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +1 -1
- data/include/grpc/impl/codegen/atm_gcc_sync.h +1 -1
- data/include/grpc/impl/codegen/atm_win32.h +1 -1
- data/include/grpc/impl/codegen/byte_buffer.h +1 -1
- data/{src/core/client_config/lb_policies/round_robin.h → include/grpc/impl/codegen/byte_buffer_reader.h} +19 -8
- data/include/grpc/impl/codegen/grpc_types.h +20 -3
- data/include/grpc/impl/codegen/log.h +9 -2
- data/include/grpc/impl/codegen/port_platform.h +102 -17
- data/include/grpc/impl/codegen/propagation_bits.h +3 -3
- data/include/grpc/impl/codegen/slice.h +3 -3
- data/include/grpc/impl/codegen/slice_buffer.h +3 -3
- data/include/grpc/impl/codegen/status.h +1 -1
- data/include/grpc/impl/codegen/sync_generic.h +1 -1
- data/include/grpc/impl/codegen/sync_posix.h +1 -1
- data/include/grpc/impl/codegen/sync_win32.h +1 -1
- data/include/grpc/impl/codegen/time.h +3 -3
- data/include/grpc/status.h +1 -1
- data/include/grpc/support/alloc.h +1 -1
- data/include/grpc/support/atm.h +1 -1
- data/include/grpc/support/atm_gcc_atomic.h +4 -4
- data/include/grpc/support/atm_gcc_sync.h +1 -1
- data/include/grpc/support/atm_win32.h +1 -1
- data/include/grpc/support/avl.h +1 -1
- data/include/grpc/support/cmdline.h +1 -1
- data/include/grpc/support/cpu.h +1 -1
- data/include/grpc/support/histogram.h +1 -1
- data/include/grpc/support/host_port.h +1 -1
- data/include/grpc/support/log.h +1 -1
- data/include/grpc/support/log_win32.h +1 -1
- data/include/grpc/support/port_platform.h +1 -1
- data/include/grpc/support/slice.h +1 -1
- data/include/grpc/support/slice_buffer.h +1 -1
- data/include/grpc/support/string_util.h +3 -1
- data/include/grpc/support/subprocess.h +2 -2
- data/include/grpc/support/sync.h +1 -1
- data/include/grpc/support/sync_generic.h +1 -1
- data/include/grpc/support/sync_posix.h +1 -1
- data/include/grpc/support/sync_win32.h +1 -1
- data/include/grpc/support/thd.h +1 -1
- data/include/grpc/support/time.h +1 -1
- data/include/grpc/support/tls.h +1 -1
- data/include/grpc/support/tls_gcc.h +45 -1
- data/include/grpc/support/tls_msvc.h +3 -3
- data/include/grpc/support/tls_pthread.h +1 -1
- data/include/grpc/support/useful.h +1 -1
- data/src/boringssl/err_data.c +258 -252
- data/src/core/{census → ext/census}/aggregation.h +3 -3
- data/src/core/{statistics → ext/census}/census_interface.h +3 -3
- data/src/core/{statistics → ext/census}/census_rpc_stats.h +4 -4
- data/src/core/{census → ext/census}/context.c +2 -2
- data/src/core/{census → ext/census}/grpc_context.c +2 -2
- data/src/core/{census → ext/census}/grpc_filter.c +30 -16
- data/src/core/{census → ext/census}/grpc_filter.h +4 -4
- data/src/core/ext/census/grpc_plugin.c +82 -0
- data/src/core/{census → ext/census}/initialize.c +1 -1
- data/src/core/{census → ext/census}/mlog.c +2 -2
- data/src/core/{census → ext/census}/mlog.h +4 -4
- data/src/core/{census → ext/census}/operation.c +0 -0
- data/src/core/{census → ext/census}/placeholders.c +0 -0
- data/src/core/{census → ext/census}/rpc_metric_id.h +3 -3
- data/src/core/{census → ext/census}/tracing.c +0 -0
- data/src/core/{surface → ext/client_config}/channel_connectivity.c +8 -21
- data/src/core/{channel → ext/client_config}/client_channel.c +80 -35
- data/src/core/{channel → ext/client_config}/client_channel.h +5 -5
- data/src/core/{client_config/subchannel_factory.c → ext/client_config/client_channel_factory.c} +14 -6
- data/src/core/ext/client_config/client_channel_factory.h +85 -0
- data/src/core/{client_config → ext/client_config}/client_config.c +4 -2
- data/src/core/{client_config → ext/client_config}/client_config.h +4 -4
- data/src/core/ext/client_config/client_config_plugin.c +95 -0
- data/src/core/{client_config → ext/client_config}/connector.c +2 -2
- data/src/core/{client_config → ext/client_config}/connector.h +7 -10
- data/src/core/{client_config → ext/client_config}/default_initial_connect_string.c +1 -1
- data/src/core/{client_config → ext/client_config}/initial_connect_string.c +1 -1
- data/src/core/{client_config → ext/client_config}/initial_connect_string.h +4 -4
- data/src/core/{client_config → ext/client_config}/lb_policy.c +12 -3
- data/src/core/{client_config → ext/client_config}/lb_policy.h +19 -6
- data/src/core/{client_config → ext/client_config}/lb_policy_factory.c +4 -3
- data/src/core/{client_config → ext/client_config}/lb_policy_factory.h +14 -9
- data/src/core/{client_config → ext/client_config}/lb_policy_registry.c +4 -9
- data/src/core/{client_config → ext/client_config}/lb_policy_registry.h +7 -6
- data/src/core/ext/client_config/parse_address.c +137 -0
- data/src/core/ext/client_config/parse_address.h +56 -0
- data/src/core/{client_config → ext/client_config}/resolver.c +1 -1
- data/src/core/{client_config → ext/client_config}/resolver.h +6 -6
- data/src/core/{client_config → ext/client_config}/resolver_factory.c +1 -1
- data/src/core/{client_config → ext/client_config}/resolver_factory.h +7 -7
- data/src/core/{client_config → ext/client_config}/resolver_registry.c +25 -11
- data/src/core/{client_config → ext/client_config}/resolver_registry.h +9 -5
- data/src/core/{client_config → ext/client_config}/subchannel.c +90 -126
- data/src/core/{client_config → ext/client_config}/subchannel.h +15 -15
- data/src/core/{channel → ext/client_config}/subchannel_call_holder.c +9 -8
- data/src/core/{channel → ext/client_config}/subchannel_call_holder.h +7 -7
- data/src/core/{client_config → ext/client_config}/subchannel_index.c +3 -2
- data/src/core/{client_config → ext/client_config}/subchannel_index.h +5 -5
- data/src/core/{client_config → ext/client_config}/uri_parser.c +69 -1
- data/src/core/{client_config → ext/client_config}/uri_parser.h +15 -3
- data/src/core/{client_config/lb_policies → ext/lb_policy/grpclb}/load_balancer_api.c +18 -9
- data/src/core/{client_config/lb_policies → ext/lb_policy/grpclb}/load_balancer_api.h +5 -5
- data/src/core/{proto → ext/lb_policy/grpclb/proto}/grpc/lb/v0/load_balancer.pb.c +1 -1
- data/src/core/{proto → ext/lb_policy/grpclb/proto}/grpc/lb/v0/load_balancer.pb.h +0 -0
- data/src/core/{client_config/lb_policies → ext/lb_policy/pick_first}/pick_first.c +95 -32
- data/src/core/{client_config/lb_policies → ext/lb_policy/round_robin}/round_robin.c +98 -34
- data/src/core/{client_config/resolvers → ext/resolver/dns/native}/dns_resolver.c +83 -39
- data/src/core/{client_config/resolvers → ext/resolver/sockaddr}/sockaddr_resolver.c +66 -169
- data/src/core/{transport/chttp2 → ext/transport/chttp2/alpn}/alpn.c +1 -1
- data/src/core/{transport/chttp2 → ext/transport/chttp2/alpn}/alpn.h +3 -3
- data/src/core/{surface → ext/transport/chttp2/client/insecure}/channel_create.c +65 -59
- data/src/core/{surface → ext/transport/chttp2/client/secure}/secure_channel_create.c +77 -69
- data/src/core/{surface → ext/transport/chttp2/server/insecure}/server_chttp2.c +8 -11
- data/src/core/{security → ext/transport/chttp2/server/secure}/server_secure_chttp2.c +14 -17
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/bin_encoder.c +28 -74
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/bin_encoder.h +5 -5
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.c +46 -0
- data/src/core/{transport → ext/transport/chttp2/transport}/chttp2_transport.c +551 -310
- data/src/core/{transport → ext/transport/chttp2/transport}/chttp2_transport.h +5 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame.h +3 -3
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_data.c +30 -14
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_data.h +10 -7
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_goaway.c +2 -2
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_goaway.h +5 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_ping.c +2 -2
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_ping.h +5 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_rst_stream.c +9 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_rst_stream.h +8 -6
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_settings.c +6 -6
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_settings.h +5 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_window_update.c +11 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_window_update.h +8 -6
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_encoder.c +21 -12
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_encoder.h +8 -6
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_parser.c +42 -25
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_parser.h +7 -7
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_table.c +21 -11
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_table.h +4 -4
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/http2_errors.h +3 -3
- data/src/core/ext/transport/chttp2/transport/huffsyms.c +105 -0
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/huffsyms.h +3 -3
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/incoming_metadata.c +2 -2
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/incoming_metadata.h +4 -4
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/internal.h +81 -37
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/parsing.c +54 -21
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/status_conversion.c +1 -1
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/status_conversion.h +4 -4
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/stream_lists.c +10 -2
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/stream_map.c +1 -1
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/stream_map.h +3 -3
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/timeout_encoding.c +4 -4
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/timeout_encoding.h +4 -4
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/varint.c +1 -1
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/varint.h +3 -3
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/writing.c +30 -20
- data/src/core/{channel → lib/channel}/channel_args.c +3 -15
- data/src/core/{channel → lib/channel}/channel_args.h +11 -15
- data/src/core/{channel → lib/channel}/channel_stack.c +5 -3
- data/src/core/{channel → lib/channel}/channel_stack.h +13 -8
- data/src/core/lib/channel/channel_stack_builder.c +277 -0
- data/src/core/lib/channel/channel_stack_builder.h +161 -0
- data/src/core/{channel → lib/channel}/compress_filter.c +51 -16
- data/src/core/{channel → lib/channel}/compress_filter.h +6 -4
- data/src/core/{channel → lib/channel}/connected_channel.c +34 -24
- data/src/core/lib/channel/connected_channel.h +42 -0
- data/src/core/{channel → lib/channel}/context.h +3 -3
- data/src/core/{channel → lib/channel}/http_client_filter.c +24 -13
- data/src/core/{channel → lib/channel}/http_client_filter.h +4 -4
- data/src/core/{channel → lib/channel}/http_server_filter.c +39 -19
- data/src/core/{channel → lib/channel}/http_server_filter.h +4 -4
- data/src/core/{compression → lib/compression}/algorithm_metadata.h +4 -4
- data/src/core/{compression → lib/compression}/compression_algorithm.c +46 -9
- data/src/core/{compression → lib/compression}/message_compress.c +1 -1
- data/src/core/{compression → lib/compression}/message_compress.h +3 -3
- data/src/core/{debug → lib/debug}/trace.c +2 -2
- data/src/core/{debug → lib/debug}/trace.h +3 -3
- data/src/core/{httpcli → lib/http}/format_request.c +8 -8
- data/src/core/{httpcli → lib/http}/format_request.h +4 -4
- data/src/core/{httpcli → lib/http}/httpcli.c +24 -19
- data/src/core/{httpcli → lib/http}/httpcli.h +14 -33
- data/src/core/{httpcli → lib/http}/httpcli_security_connector.c +5 -5
- data/src/core/lib/http/parser.c +341 -0
- data/src/core/lib/http/parser.h +119 -0
- data/src/core/{iomgr → lib/iomgr}/closure.c +8 -2
- data/src/core/{iomgr → lib/iomgr}/closure.h +7 -4
- data/src/core/{iomgr → lib/iomgr}/endpoint.c +1 -1
- data/src/core/{iomgr → lib/iomgr}/endpoint.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/endpoint_pair.h +4 -4
- data/src/core/{iomgr → lib/iomgr}/endpoint_pair_posix.c +8 -7
- data/src/core/{iomgr → lib/iomgr}/endpoint_pair_windows.c +4 -4
- data/src/core/lib/iomgr/ev_poll_and_epoll_posix.c +1936 -0
- data/src/core/lib/iomgr/ev_poll_and_epoll_posix.h +41 -0
- data/src/core/lib/iomgr/ev_posix.c +164 -0
- data/src/core/lib/iomgr/ev_posix.h +158 -0
- data/src/core/{iomgr → lib/iomgr}/exec_ctx.c +78 -3
- data/src/core/{iomgr → lib/iomgr}/exec_ctx.h +25 -10
- data/src/core/{iomgr → lib/iomgr}/executor.c +3 -3
- data/src/core/{iomgr → lib/iomgr}/executor.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/iocp_windows.c +6 -6
- data/src/core/{iomgr → lib/iomgr}/iocp_windows.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/iomgr.c +13 -10
- data/src/core/{iomgr → lib/iomgr}/iomgr.h +3 -3
- data/src/core/{iomgr → lib/iomgr}/iomgr_internal.h +5 -9
- data/src/core/{iomgr → lib/iomgr}/iomgr_posix.c +6 -6
- data/src/core/{iomgr → lib/iomgr}/iomgr_posix.h +4 -4
- data/src/core/{iomgr → lib/iomgr}/iomgr_windows.c +7 -4
- data/src/core/{iomgr → lib/iomgr}/pollset.h +11 -11
- data/src/core/{iomgr → lib/iomgr}/pollset_set.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/pollset_set_windows.c +2 -2
- data/src/core/lib/iomgr/pollset_set_windows.h +39 -0
- data/src/core/{iomgr → lib/iomgr}/pollset_windows.c +7 -7
- data/src/core/{iomgr → lib/iomgr}/pollset_windows.h +8 -5
- data/src/core/{iomgr → lib/iomgr}/resolve_address.h +10 -9
- data/src/core/{iomgr → lib/iomgr}/resolve_address_posix.c +22 -22
- data/src/core/{iomgr → lib/iomgr}/resolve_address_windows.c +20 -12
- data/src/core/{iomgr → lib/iomgr}/sockaddr.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/sockaddr_posix.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/sockaddr_utils.c +9 -16
- data/src/core/{iomgr → lib/iomgr}/sockaddr_utils.h +4 -4
- data/src/core/{iomgr → lib/iomgr}/sockaddr_win32.h +6 -4
- data/src/core/{iomgr → lib/iomgr}/socket_utils_common_posix.c +29 -7
- data/src/core/{iomgr → lib/iomgr}/socket_utils_linux.c +2 -2
- data/src/core/{iomgr → lib/iomgr}/socket_utils_posix.c +1 -1
- data/src/core/{iomgr → lib/iomgr}/socket_utils_posix.h +14 -4
- data/src/core/{iomgr → lib/iomgr}/socket_windows.c +7 -5
- data/src/core/{iomgr → lib/iomgr}/socket_windows.h +6 -6
- data/src/core/{iomgr → lib/iomgr}/tcp_client.h +6 -6
- data/src/core/{iomgr → lib/iomgr}/tcp_client_posix.c +33 -18
- data/src/core/{iomgr → lib/iomgr}/tcp_client_windows.c +30 -20
- data/src/core/{iomgr → lib/iomgr}/tcp_posix.c +9 -10
- data/src/core/{iomgr → lib/iomgr}/tcp_posix.h +6 -6
- data/src/core/{iomgr → lib/iomgr}/tcp_server.h +6 -6
- data/src/core/{iomgr → lib/iomgr}/tcp_server_posix.c +24 -37
- data/src/core/{iomgr → lib/iomgr}/tcp_server_windows.c +8 -36
- data/src/core/{iomgr → lib/iomgr}/tcp_windows.c +27 -17
- data/src/core/{iomgr → lib/iomgr}/tcp_windows.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/time_averaged_stats.c +1 -1
- data/src/core/{iomgr → lib/iomgr}/time_averaged_stats.h +3 -3
- data/src/core/{iomgr → lib/iomgr}/timer.c +31 -4
- data/src/core/{iomgr → lib/iomgr}/timer.h +6 -7
- data/src/core/{iomgr → lib/iomgr}/timer_heap.c +2 -2
- data/src/core/{iomgr → lib/iomgr}/timer_heap.h +4 -4
- data/src/core/{iomgr → lib/iomgr}/udp_server.c +13 -37
- data/src/core/{iomgr → lib/iomgr}/udp_server.h +11 -10
- data/src/core/lib/iomgr/unix_sockets_posix.c +89 -0
- data/src/core/{client_config/resolvers/sockaddr_resolver.h → lib/iomgr/unix_sockets_posix.h} +15 -11
- data/src/core/lib/iomgr/unix_sockets_posix_noop.c +59 -0
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_eventfd.c +2 -2
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_nospecial.c +1 -1
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_pipe.c +8 -3
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_pipe.h +4 -4
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_posix.c +2 -2
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_posix.h +3 -3
- data/src/core/{iomgr → lib/iomgr}/workqueue.h +10 -10
- data/src/core/{iomgr → lib/iomgr}/workqueue_posix.c +5 -6
- data/src/core/{iomgr → lib/iomgr}/workqueue_posix.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/workqueue_windows.c +1 -1
- data/src/core/{iomgr → lib/iomgr}/workqueue_windows.h +3 -3
- data/src/core/{json → lib/json}/json.c +1 -1
- data/src/core/{json → lib/json}/json.h +4 -4
- data/src/core/{json → lib/json}/json_common.h +3 -3
- data/src/core/{json → lib/json}/json_reader.c +16 -4
- data/src/core/{json → lib/json}/json_reader.h +4 -4
- data/src/core/{json → lib/json}/json_string.c +4 -4
- data/src/core/{json → lib/json}/json_writer.c +1 -1
- data/src/core/{json → lib/json}/json_writer.h +4 -4
- data/src/core/{profiling → lib/profiling}/basic_timers.c +3 -2
- data/src/core/{profiling → lib/profiling}/stap_timers.c +2 -2
- data/src/core/{profiling → lib/profiling}/timers.h +3 -3
- data/src/core/{security → lib/security}/auth_filters.h +4 -4
- data/src/core/{security → lib/security}/b64.c +2 -2
- data/src/core/{security → lib/security}/b64.h +4 -4
- data/src/core/{security → lib/security}/client_auth_filter.c +16 -16
- data/src/core/{security → lib/security}/credentials.c +42 -26
- data/src/core/{security → lib/security}/credentials.h +11 -10
- data/src/core/{security → lib/security}/credentials_metadata.c +1 -1
- data/src/core/{security → lib/security}/credentials_posix.c +3 -3
- data/src/core/{security → lib/security}/credentials_win32.c +3 -3
- data/src/core/{security → lib/security}/google_default_credentials.c +10 -9
- data/src/core/{security → lib/security}/handshake.c +4 -4
- data/src/core/{security → lib/security}/handshake.h +6 -6
- data/src/core/{security → lib/security}/json_token.c +4 -4
- data/src/core/{security → lib/security}/json_token.h +4 -4
- data/src/core/{security → lib/security}/jwt_verifier.c +14 -14
- data/src/core/{security → lib/security}/jwt_verifier.h +5 -5
- data/src/core/{security → lib/security}/secure_endpoint.c +9 -8
- data/src/core/{security → lib/security}/secure_endpoint.h +4 -4
- data/src/core/{security → lib/security}/security_connector.c +53 -21
- data/src/core/{security → lib/security}/security_connector.h +8 -8
- data/src/core/{security → lib/security}/security_context.c +5 -5
- data/src/core/{security → lib/security}/security_context.h +5 -5
- data/src/core/{security → lib/security}/server_auth_filter.c +9 -9
- data/src/core/{support → lib/support}/alloc.c +5 -3
- data/src/core/{support → lib/support}/avl.c +1 -1
- data/src/core/lib/support/backoff.c +76 -0
- data/src/core/lib/support/backoff.h +68 -0
- data/src/core/{support → lib/support}/block_annotate.h +3 -3
- data/src/core/{support → lib/support}/cmdline.c +1 -1
- data/src/core/{support → lib/support}/cpu_iphone.c +0 -0
- data/src/core/{support → lib/support}/cpu_linux.c +2 -2
- data/src/core/{support → lib/support}/cpu_posix.c +2 -2
- data/src/core/{support → lib/support}/cpu_windows.c +0 -0
- data/src/core/{support → lib/support}/env.h +3 -3
- data/src/core/{support → lib/support}/env_linux.c +3 -3
- data/src/core/{support → lib/support}/env_posix.c +2 -2
- data/src/core/{support → lib/support}/env_win32.c +27 -21
- data/src/core/{support → lib/support}/histogram.c +1 -1
- data/src/core/{support → lib/support}/host_port.c +1 -1
- data/src/core/{support → lib/support}/load_file.c +4 -4
- data/src/core/{support → lib/support}/load_file.h +4 -4
- data/src/core/{support → lib/support}/log.c +33 -0
- data/src/core/{support → lib/support}/log_android.c +2 -2
- data/src/core/{support → lib/support}/log_linux.c +6 -5
- data/src/core/{support → lib/support}/log_posix.c +3 -3
- data/src/core/{support → lib/support}/log_win32.c +8 -22
- data/src/core/{support → lib/support}/murmur_hash.c +1 -1
- data/src/core/{support → lib/support}/murmur_hash.h +3 -3
- data/src/core/{support → lib/support}/slice.c +0 -0
- data/src/core/{support → lib/support}/slice_buffer.c +0 -0
- data/src/core/{support → lib/support}/stack_lockfree.c +7 -7
- data/src/core/{support → lib/support}/stack_lockfree.h +3 -3
- data/src/core/{support → lib/support}/string.c +1 -1
- data/src/core/{support → lib/support}/string.h +4 -4
- data/src/core/{support → lib/support}/string_posix.c +1 -1
- data/src/core/{support/string_win32.c → lib/support/string_util_win32.c} +23 -38
- data/src/core/lib/support/string_win32.c +83 -0
- data/src/core/{support → lib/support}/string_win32.h +3 -3
- data/src/core/{support → lib/support}/subprocess_posix.c +3 -3
- data/src/core/{support → lib/support}/subprocess_windows.c +3 -3
- data/src/core/{support → lib/support}/sync.c +2 -2
- data/src/core/{support → lib/support}/sync_posix.c +3 -3
- data/src/core/{support → lib/support}/sync_win32.c +1 -1
- data/src/core/{support → lib/support}/thd.c +0 -0
- data/src/core/{support → lib/support}/thd_internal.h +3 -3
- data/src/core/{support → lib/support}/thd_posix.c +4 -3
- data/src/core/{support → lib/support}/thd_win32.c +1 -1
- data/src/core/{support → lib/support}/time.c +2 -2
- data/src/core/{support → lib/support}/time_posix.c +12 -6
- data/src/core/{support → lib/support}/time_precise.c +0 -0
- data/src/core/{support → lib/support}/time_precise.h +3 -3
- data/src/core/{support → lib/support}/time_win32.c +7 -7
- data/src/core/{support → lib/support}/tls_pthread.c +0 -0
- data/src/core/{support → lib/support}/tmpfile.h +4 -4
- data/src/core/lib/support/tmpfile_msys.c +73 -0
- data/src/core/{support → lib/support}/tmpfile_posix.c +5 -5
- data/src/core/{support → lib/support}/tmpfile_win32.c +5 -5
- data/src/core/{support → lib/support}/wrap_memcpy.c +0 -0
- data/src/core/{surface → lib/surface}/alarm.c +3 -3
- data/src/core/{surface → lib/surface}/api_trace.c +1 -1
- data/src/core/{surface → lib/surface}/api_trace.h +4 -4
- data/src/core/{surface → lib/surface}/byte_buffer.c +3 -3
- data/src/core/{surface → lib/surface}/byte_buffer_reader.c +3 -3
- data/src/core/{surface → lib/surface}/call.c +145 -73
- data/src/core/{surface → lib/surface}/call.h +14 -7
- data/src/core/{surface → lib/surface}/call_details.c +1 -1
- data/src/core/{surface → lib/surface}/call_log_batch.c +2 -2
- data/src/core/{surface → lib/surface}/call_test_only.h +3 -3
- data/src/core/{surface → lib/surface}/channel.c +33 -34
- data/src/core/{surface → lib/surface}/channel.h +9 -9
- data/src/core/lib/surface/channel_init.c +140 -0
- data/src/core/lib/surface/channel_init.h +87 -0
- data/src/core/{surface → lib/surface}/channel_ping.c +4 -4
- data/src/core/lib/surface/channel_stack_type.c +54 -0
- data/src/core/{httpcli/parser.h → lib/surface/channel_stack_type.h} +22 -28
- data/src/core/{surface → lib/surface}/completion_queue.c +15 -11
- data/src/core/{surface → lib/surface}/completion_queue.h +4 -4
- data/src/core/{surface → lib/surface}/event_string.c +2 -2
- data/src/core/{surface → lib/surface}/event_string.h +3 -3
- data/src/core/lib/surface/init.c +217 -0
- data/src/core/{surface → lib/surface}/init.h +4 -3
- data/src/core/lib/surface/init_secure.c +89 -0
- data/src/core/{surface → lib/surface}/lame_client.c +31 -19
- data/src/core/{iomgr/pollset_set_windows.h → lib/surface/lame_client.h} +7 -5
- data/src/core/{surface → lib/surface}/metadata_array.c +1 -1
- data/src/core/{surface → lib/surface}/server.c +208 -183
- data/src/core/{surface → lib/surface}/server.h +6 -11
- data/src/core/{surface → lib/surface}/surface_trace.h +5 -5
- data/src/core/{surface → lib/surface}/validate_metadata.c +1 -1
- data/src/core/{surface → lib/surface}/version.c +2 -2
- data/src/core/{transport → lib/transport}/byte_stream.c +1 -1
- data/src/core/{transport → lib/transport}/byte_stream.h +4 -4
- data/src/core/{transport → lib/transport}/connectivity_state.c +2 -2
- data/src/core/{transport → lib/transport}/connectivity_state.h +4 -4
- data/src/core/{transport → lib/transport}/metadata.c +71 -19
- data/src/core/{transport → lib/transport}/metadata.h +11 -4
- data/src/core/{transport → lib/transport}/metadata_batch.c +2 -2
- data/src/core/{transport → lib/transport}/metadata_batch.h +4 -4
- data/src/core/{transport → lib/transport}/static_metadata.c +100 -32
- data/src/core/{transport → lib/transport}/static_metadata.h +58 -58
- data/src/core/{transport → lib/transport}/transport.c +25 -5
- data/src/core/{transport → lib/transport}/transport.h +41 -16
- data/src/core/{transport → lib/transport}/transport_impl.h +8 -5
- data/src/core/{transport → lib/transport}/transport_op_string.c +2 -2
- data/src/core/{tsi → lib/tsi}/fake_transport_security.c +18 -14
- data/src/core/{tsi → lib/tsi}/fake_transport_security.h +4 -4
- data/src/core/{tsi → lib/tsi}/ssl_transport_security.c +173 -63
- data/src/core/{tsi → lib/tsi}/ssl_transport_security.h +24 -6
- data/src/core/{tsi → lib/tsi}/ssl_types.h +3 -3
- data/src/core/{tsi → lib/tsi}/transport_security.c +12 -28
- data/src/core/{tsi → lib/tsi}/transport_security.h +4 -4
- data/src/core/{tsi → lib/tsi}/transport_security_interface.h +12 -3
- data/src/core/plugin_registry/grpc_plugin_registry.c +66 -0
- data/src/ruby/ext/grpc/extconf.rb +14 -20
- data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -3
- data/src/ruby/ext/grpc/rb_call.c +37 -4
- data/src/ruby/ext/grpc/rb_call_credentials.c +13 -3
- data/src/ruby/ext/grpc/rb_channel.c +2 -3
- data/src/ruby/ext/grpc/rb_channel_args.c +2 -3
- data/src/ruby/ext/grpc/rb_channel_credentials.c +31 -3
- data/src/ruby/ext/grpc/rb_completion_queue.c +2 -2
- data/src/ruby/ext/grpc/rb_event_thread.c +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +4 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +8 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +14 -2
- data/src/ruby/ext/grpc/rb_server.c +2 -3
- data/src/ruby/ext/grpc/rb_server_credentials.c +16 -13
- data/src/ruby/ext/grpc/rb_signal.c +70 -0
- data/src/ruby/ext/grpc/rb_signal.h +39 -0
- data/src/ruby/lib/grpc.rb +21 -13
- data/src/ruby/lib/grpc/core/time_consts.rb +2 -2
- data/src/ruby/lib/grpc/errors.rb +2 -2
- data/src/ruby/lib/grpc/generic/active_call.rb +10 -3
- data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -2
- data/src/ruby/lib/grpc/generic/client_stub.rb +10 -7
- data/src/ruby/lib/grpc/generic/rpc_desc.rb +2 -2
- data/src/ruby/lib/grpc/generic/rpc_server.rb +21 -61
- data/src/ruby/lib/grpc/generic/service.rb +5 -15
- data/src/ruby/lib/grpc/grpc.rb +3 -3
- data/src/ruby/{bin/interop/interop_server.rb → lib/grpc/signals.rb} +39 -20
- data/src/ruby/lib/grpc/version.rb +2 -2
- data/src/ruby/pb/generate_proto_ruby.sh +9 -2
- data/src/ruby/pb/grpc/health/checker.rb +1 -1
- data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services.rb +28 -0
- data/src/ruby/pb/grpc/testing/metrics.rb +28 -0
- data/src/ruby/pb/grpc/testing/metrics_services.rb +27 -0
- data/src/ruby/pb/test/client.rb +12 -23
- data/src/ruby/pb/test/server.rb +1 -1
- data/src/ruby/spec/client_server_spec.rb +1 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +18 -17
- data/src/ruby/spec/generic/rpc_server_spec.rb +23 -7
- data/src/ruby/spec/generic/service_spec.rb +0 -69
- data/src/ruby/{bin/interop/interop_client.rb → spec/pb/duplicate/codegen_spec.rb} +41 -21
- data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
- data/third_party/boringssl/crypto/asn1/a_bitstr.c +184 -176
- data/third_party/boringssl/crypto/asn1/a_bool.c +42 -44
- data/third_party/boringssl/crypto/asn1/a_bytes.c +236 -245
- data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +173 -192
- data/third_party/boringssl/crypto/asn1/a_dup.c +43 -35
- data/third_party/boringssl/crypto/asn1/a_enum.c +107 -109
- data/third_party/boringssl/crypto/asn1/a_gentm.c +180 -181
- data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +73 -80
- data/third_party/boringssl/crypto/asn1/a_int.c +357 -353
- data/third_party/boringssl/crypto/asn1/a_mbstr.c +272 -253
- data/third_party/boringssl/crypto/asn1/a_object.c +293 -309
- data/third_party/boringssl/crypto/asn1/a_octet.c +13 -6
- data/third_party/boringssl/crypto/asn1/a_print.c +54 -52
- data/third_party/boringssl/crypto/asn1/a_strnid.c +179 -157
- data/third_party/boringssl/crypto/asn1/a_time.c +125 -129
- data/third_party/boringssl/crypto/asn1/a_type.c +79 -86
- data/third_party/boringssl/crypto/asn1/a_utctm.c +246 -255
- data/third_party/boringssl/crypto/asn1/a_utf8.c +159 -135
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +361 -368
- data/third_party/boringssl/crypto/asn1/asn1_locl.h +11 -11
- data/third_party/boringssl/crypto/asn1/asn1_par.c +309 -351
- data/third_party/boringssl/crypto/asn1/asn_pack.c +30 -29
- data/third_party/boringssl/crypto/asn1/bio_asn1.c +375 -394
- data/third_party/boringssl/crypto/asn1/bio_ndef.c +146 -149
- data/third_party/boringssl/crypto/asn1/f_enum.c +128 -134
- data/third_party/boringssl/crypto/asn1/f_int.c +131 -139
- data/third_party/boringssl/crypto/asn1/f_string.c +125 -133
- data/third_party/boringssl/crypto/asn1/t_bitst.c +30 -29
- data/third_party/boringssl/crypto/asn1/t_pkey.c +45 -47
- data/third_party/boringssl/crypto/asn1/tasn_dec.c +1099 -1216
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +556 -592
- data/third_party/boringssl/crypto/asn1/tasn_fre.c +175 -193
- data/third_party/boringssl/crypto/asn1/tasn_new.c +271 -288
- data/third_party/boringssl/crypto/asn1/tasn_prn.c +462 -508
- data/third_party/boringssl/crypto/asn1/tasn_typ.c +28 -21
- data/third_party/boringssl/crypto/asn1/x_bignum.c +62 -52
- data/third_party/boringssl/crypto/asn1/x_long.c +101 -86
- data/third_party/boringssl/crypto/bio/buffer.c +3 -3
- data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +8 -68
- data/third_party/boringssl/crypto/bn/bn.c +1 -1
- data/third_party/boringssl/crypto/bn/bn_asn1.c +9 -22
- data/third_party/boringssl/crypto/bn/convert.c +9 -4
- data/third_party/boringssl/crypto/bn/div.c +0 -20
- data/third_party/boringssl/crypto/bn/exponentiation.c +22 -13
- data/third_party/boringssl/crypto/bn/generic.c +6 -242
- data/third_party/boringssl/crypto/bn/internal.h +9 -70
- data/third_party/boringssl/crypto/bn/montgomery.c +1 -2
- data/third_party/boringssl/crypto/bn/mul.c +6 -26
- data/third_party/boringssl/crypto/bn/rsaz_exp.c +21 -28
- data/third_party/boringssl/crypto/bytestring/asn1_compat.c +51 -0
- data/third_party/boringssl/crypto/bytestring/ber.c +128 -87
- data/third_party/boringssl/crypto/bytestring/cbb.c +37 -3
- data/third_party/boringssl/crypto/bytestring/internal.h +39 -10
- data/third_party/boringssl/crypto/chacha/chacha_vec.c +18 -13
- data/third_party/boringssl/crypto/cipher/e_aes.c +2 -2
- data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +4 -9
- data/third_party/boringssl/crypto/cipher/tls_cbc.c +39 -10
- data/third_party/boringssl/crypto/conf/conf.c +9 -0
- data/third_party/boringssl/crypto/cpu-intel.c +1 -1
- data/third_party/boringssl/crypto/crypto.c +2 -0
- data/third_party/boringssl/crypto/curve25519/curve25519.c +125 -120
- data/third_party/boringssl/crypto/curve25519/internal.h +45 -0
- data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +225 -0
- data/third_party/boringssl/crypto/dh/check.c +32 -10
- data/third_party/boringssl/crypto/dh/dh.c +1 -1
- data/third_party/boringssl/crypto/digest/md32_common.h +0 -60
- data/third_party/boringssl/crypto/dsa/dsa.c +47 -21
- data/third_party/boringssl/crypto/dsa/dsa_asn1.c +249 -64
- data/third_party/boringssl/crypto/ec/ec.c +45 -31
- data/third_party/boringssl/crypto/ec/ec_asn1.c +315 -382
- data/third_party/boringssl/crypto/ec/ec_key.c +1 -4
- data/third_party/boringssl/crypto/ec/ec_montgomery.c +0 -9
- data/third_party/boringssl/crypto/ec/internal.h +1 -19
- data/third_party/boringssl/crypto/ec/oct.c +12 -0
- data/third_party/boringssl/crypto/ec/p224-64.c +4 -65
- data/third_party/boringssl/crypto/ec/p256-64.c +9 -71
- data/third_party/boringssl/crypto/ec/p256-x86_64-table.h +1 -6
- data/third_party/boringssl/crypto/ec/p256-x86_64.c +3 -13
- data/third_party/boringssl/crypto/ec/simple.c +0 -76
- data/third_party/boringssl/crypto/ecdsa/ecdsa.c +1 -1
- data/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c +10 -24
- data/third_party/boringssl/crypto/evp/evp.c +4 -3
- data/third_party/boringssl/crypto/evp/evp_asn1.c +101 -0
- data/third_party/boringssl/crypto/evp/evp_ctx.c +22 -51
- data/third_party/boringssl/crypto/evp/internal.h +28 -27
- data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +78 -249
- data/third_party/boringssl/crypto/evp/p_ec.c +19 -66
- data/third_party/boringssl/crypto/evp/p_ec_asn1.c +74 -231
- data/third_party/boringssl/crypto/evp/p_rsa.c +90 -13
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +49 -48
- data/third_party/boringssl/crypto/internal.h +16 -1
- data/third_party/boringssl/crypto/mem.c +2 -2
- data/third_party/boringssl/crypto/modes/ctr.c +2 -1
- data/third_party/boringssl/crypto/modes/gcm.c +5 -3
- data/third_party/boringssl/crypto/obj/obj_dat.h +6 -3
- data/third_party/boringssl/crypto/pem/pem_all.c +83 -102
- data/third_party/boringssl/crypto/pem/pem_info.c +286 -309
- data/third_party/boringssl/crypto/pem/pem_lib.c +690 -710
- data/third_party/boringssl/crypto/pem/pem_oth.c +15 -16
- data/third_party/boringssl/crypto/pem/pem_pk8.c +132 -119
- data/third_party/boringssl/crypto/pem/pem_pkey.c +144 -220
- data/third_party/boringssl/crypto/pem/pem_x509.c +3 -3
- data/third_party/boringssl/crypto/pem/pem_xaux.c +5 -4
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +54 -60
- data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +3 -1
- data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +48 -50
- data/third_party/boringssl/crypto/rand/rand.c +2 -0
- data/third_party/boringssl/crypto/rsa/blinding.c +8 -48
- data/third_party/boringssl/crypto/rsa/internal.h +1 -9
- data/third_party/boringssl/crypto/rsa/padding.c +73 -77
- data/third_party/boringssl/crypto/rsa/rsa.c +1 -1
- data/third_party/boringssl/crypto/rsa/rsa_asn1.c +27 -46
- data/third_party/boringssl/crypto/rsa/rsa_impl.c +23 -34
- data/third_party/boringssl/crypto/test/scoped_types.h +3 -0
- data/third_party/boringssl/crypto/thread_win.c +15 -13
- data/third_party/boringssl/crypto/time_support.c +0 -6
- data/third_party/boringssl/crypto/x509/a_digest.c +26 -27
- data/third_party/boringssl/crypto/x509/a_sign.c +63 -64
- data/third_party/boringssl/crypto/x509/a_strex.c +482 -413
- data/third_party/boringssl/crypto/x509/a_verify.c +45 -51
- data/third_party/boringssl/crypto/x509/asn1_gen.c +715 -769
- data/third_party/boringssl/crypto/x509/by_dir.c +355 -393
- data/third_party/boringssl/crypto/x509/by_file.c +186 -206
- data/third_party/boringssl/crypto/x509/charmap.h +11 -11
- data/third_party/boringssl/crypto/x509/i2d_pr.c +21 -22
- data/third_party/boringssl/crypto/x509/t_crl.c +50 -51
- data/third_party/boringssl/crypto/x509/t_x509.c +414 -406
- data/third_party/boringssl/crypto/x509/t_x509a.c +44 -42
- data/third_party/boringssl/crypto/x509/vpm_int.h +13 -13
- data/third_party/boringssl/crypto/x509/x509_att.c +241 -219
- data/third_party/boringssl/crypto/x509/x509_cmp.c +343 -359
- data/third_party/boringssl/crypto/x509/x509_d2.c +36 -35
- data/third_party/boringssl/crypto/x509/x509_def.c +23 -13
- data/third_party/boringssl/crypto/x509/x509_ext.c +75 -75
- data/third_party/boringssl/crypto/x509/x509_lu.c +574 -612
- data/third_party/boringssl/crypto/x509/x509_obj.c +104 -115
- data/third_party/boringssl/crypto/x509/x509_r2x.c +40 -40
- data/third_party/boringssl/crypto/x509/x509_req.c +181 -174
- data/third_party/boringssl/crypto/x509/x509_set.c +71 -76
- data/third_party/boringssl/crypto/x509/x509_trs.c +193 -171
- data/third_party/boringssl/crypto/x509/x509_txt.c +135 -138
- data/third_party/boringssl/crypto/x509/x509_v3.c +174 -167
- data/third_party/boringssl/crypto/x509/x509_vfy.c +2079 -2130
- data/third_party/boringssl/crypto/x509/x509_vpm.c +486 -522
- data/third_party/boringssl/crypto/x509/x509cset.c +96 -99
- data/third_party/boringssl/crypto/x509/x509name.c +280 -275
- data/third_party/boringssl/crypto/x509/x509rset.c +15 -14
- data/third_party/boringssl/crypto/x509/x509spki.c +62 -60
- data/third_party/boringssl/crypto/x509/x509type.c +58 -60
- data/third_party/boringssl/crypto/x509/x_algor.c +70 -73
- data/third_party/boringssl/crypto/x509/x_all.c +282 -328
- data/third_party/boringssl/crypto/x509/x_attrib.c +36 -42
- data/third_party/boringssl/crypto/x509/x_crl.c +397 -418
- data/third_party/boringssl/crypto/x509/x_exten.c +5 -5
- data/third_party/boringssl/crypto/x509/x_info.c +30 -27
- data/third_party/boringssl/crypto/x509/x_name.c +387 -388
- data/third_party/boringssl/crypto/x509/x_pkey.c +32 -29
- data/third_party/boringssl/crypto/x509/x_pubkey.c +261 -280
- data/third_party/boringssl/crypto/x509/x_req.c +30 -33
- data/third_party/boringssl/crypto/x509/x_sig.c +2 -2
- data/third_party/boringssl/crypto/x509/x_spki.c +9 -7
- data/third_party/boringssl/crypto/x509/x_val.c +2 -2
- data/third_party/boringssl/crypto/x509/x_x509.c +120 -119
- data/third_party/boringssl/crypto/x509/x_x509a.c +99 -91
- data/third_party/boringssl/crypto/x509v3/ext_dat.h +57 -51
- data/third_party/boringssl/crypto/x509v3/pcy_cache.c +199 -214
- data/third_party/boringssl/crypto/x509v3/pcy_data.c +57 -64
- data/third_party/boringssl/crypto/x509v3/pcy_int.h +95 -90
- data/third_party/boringssl/crypto/x509v3/pcy_lib.c +86 -87
- data/third_party/boringssl/crypto/x509v3/pcy_map.c +61 -64
- data/third_party/boringssl/crypto/x509v3/pcy_node.c +108 -117
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +676 -724
- data/third_party/boringssl/crypto/x509v3/v3_akey.c +128 -136
- data/third_party/boringssl/crypto/x509v3/v3_akeya.c +7 -6
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +499 -507
- data/third_party/boringssl/crypto/x509v3/v3_bcons.c +54 -47
- data/third_party/boringssl/crypto/x509v3/v3_bitst.c +67 -67
- data/third_party/boringssl/crypto/x509v3/v3_conf.c +330 -328
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +354 -338
- data/third_party/boringssl/crypto/x509v3/v3_crld.c +441 -496
- data/third_party/boringssl/crypto/x509v3/v3_enum.c +35 -33
- data/third_party/boringssl/crypto/x509v3/v3_extku.c +66 -63
- data/third_party/boringssl/crypto/x509v3/v3_genn.c +157 -159
- data/third_party/boringssl/crypto/x509v3/v3_ia5.c +45 -43
- data/third_party/boringssl/crypto/x509v3/v3_info.c +124 -112
- data/third_party/boringssl/crypto/x509v3/v3_int.c +30 -26
- data/third_party/boringssl/crypto/x509v3/v3_lib.c +231 -204
- data/third_party/boringssl/crypto/x509v3/v3_ncons.c +353 -381
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +252 -270
- data/third_party/boringssl/crypto/x509v3/v3_pcia.c +9 -8
- data/third_party/boringssl/crypto/x509v3/v3_pcons.c +58 -61
- data/third_party/boringssl/crypto/x509v3/v3_pku.c +35 -34
- data/third_party/boringssl/crypto/x509v3/v3_pmaps.c +72 -74
- data/third_party/boringssl/crypto/x509v3/v3_prn.c +146 -121
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +651 -582
- data/third_party/boringssl/crypto/x509v3/v3_skey.c +76 -72
- data/third_party/boringssl/crypto/x509v3/v3_sxnet.c +139 -131
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +1072 -1068
- data/third_party/boringssl/include/openssl/asn1.h +40 -38
- data/third_party/boringssl/include/openssl/base.h +10 -1
- data/third_party/boringssl/include/openssl/bio.h +10 -11
- data/third_party/boringssl/include/openssl/bn.h +12 -9
- data/third_party/boringssl/include/openssl/buf.h +1 -1
- data/third_party/boringssl/include/openssl/bytestring.h +29 -0
- data/third_party/boringssl/include/openssl/conf.h +25 -0
- data/third_party/boringssl/include/openssl/crypto.h +6 -1
- data/third_party/boringssl/include/openssl/curve25519.h +6 -3
- data/third_party/boringssl/include/openssl/dh.h +7 -3
- data/third_party/boringssl/include/openssl/dsa.h +108 -51
- data/third_party/boringssl/include/openssl/ec.h +46 -21
- data/third_party/boringssl/include/openssl/ec_key.h +78 -42
- data/third_party/boringssl/include/openssl/ecdsa.h +4 -4
- data/third_party/boringssl/include/openssl/err.h +3 -2
- data/third_party/boringssl/include/openssl/evp.h +120 -37
- data/third_party/boringssl/include/openssl/mem.h +4 -13
- data/third_party/boringssl/include/openssl/obj_mac.h +4 -0
- data/third_party/boringssl/include/openssl/pem.h +0 -9
- data/third_party/boringssl/include/openssl/pkcs8.h +6 -2
- data/third_party/boringssl/include/openssl/rand.h +3 -0
- data/third_party/boringssl/include/openssl/rsa.h +42 -42
- data/third_party/boringssl/include/openssl/ssl.h +115 -41
- data/third_party/boringssl/include/openssl/stack.h +0 -3
- data/third_party/boringssl/include/openssl/stack_macros.h +0 -256
- data/third_party/boringssl/include/openssl/tls1.h +1 -1
- data/third_party/boringssl/include/openssl/x509.h +0 -2
- data/third_party/boringssl/include/openssl/x509_vfy.h +5 -0
- data/third_party/boringssl/ssl/d1_both.c +102 -101
- data/third_party/boringssl/ssl/d1_clnt.c +145 -150
- data/third_party/boringssl/ssl/d1_lib.c +63 -62
- data/third_party/boringssl/ssl/d1_pkt.c +73 -71
- data/third_party/boringssl/ssl/d1_srvr.c +116 -125
- data/third_party/boringssl/ssl/dtls_record.c +3 -3
- data/third_party/boringssl/ssl/internal.h +210 -208
- data/third_party/boringssl/ssl/pqueue/pqueue.c +2 -2
- data/third_party/boringssl/ssl/s3_both.c +116 -130
- data/third_party/boringssl/ssl/s3_clnt.c +589 -740
- data/third_party/boringssl/ssl/s3_enc.c +52 -151
- data/third_party/boringssl/ssl/s3_lib.c +70 -76
- data/third_party/boringssl/ssl/s3_pkt.c +105 -144
- data/third_party/boringssl/ssl/s3_srvr.c +542 -806
- data/third_party/boringssl/ssl/ssl_aead_ctx.c +1 -1
- data/third_party/boringssl/ssl/ssl_cert.c +2 -2
- data/third_party/boringssl/ssl/ssl_cipher.c +7 -3
- data/third_party/boringssl/ssl/ssl_ecdh.c +374 -0
- data/third_party/boringssl/ssl/ssl_lib.c +260 -221
- data/third_party/boringssl/ssl/ssl_session.c +17 -17
- data/third_party/boringssl/ssl/t1_enc.c +128 -273
- data/third_party/boringssl/ssl/t1_lib.c +134 -258
- data/third_party/boringssl/ssl/test/test_config.h +2 -0
- data/third_party/boringssl/ssl/tls_record.c +52 -15
- metadata +385 -359
- data/src/core/channel/client_uchannel.c +0 -243
- data/src/core/channel/client_uchannel.h +0 -60
- data/src/core/channel/connected_channel.h +0 -51
- data/src/core/client_config/lb_policies/pick_first.h +0 -43
- data/src/core/client_config/resolvers/dns_resolver.h +0 -42
- data/src/core/client_config/subchannel_factory.h +0 -66
- data/src/core/httpcli/parser.c +0 -211
- data/src/core/iomgr/fd_posix.c +0 -451
- data/src/core/iomgr/fd_posix.h +0 -192
- data/src/core/iomgr/pollset_multipoller_with_epoll.c +0 -324
- data/src/core/iomgr/pollset_multipoller_with_poll_posix.c +0 -234
- data/src/core/iomgr/pollset_posix.c +0 -633
- data/src/core/iomgr/pollset_posix.h +0 -153
- data/src/core/iomgr/pollset_set_posix.c +0 -202
- data/src/core/iomgr/pollset_set_posix.h +0 -45
- data/src/core/surface/init.c +0 -174
- data/src/core/surface/init_secure.c +0 -42
- data/src/core/surface/server_create.c +0 -48
- data/src/core/transport/chttp2/huffsyms.c +0 -297
- data/src/ruby/bin/grpc_ruby_interop_client +0 -33
- data/src/ruby/bin/grpc_ruby_interop_server +0 -33
- data/third_party/boringssl/crypto/dsa/internal.h +0 -78
@@ -148,27 +148,13 @@
|
|
148
148
|
#include "internal.h"
|
149
149
|
|
150
150
|
|
151
|
-
static
|
152
|
-
|
153
|
-
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
154
|
-
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
155
|
-
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
156
|
-
};
|
157
|
-
|
158
|
-
static const uint8_t ssl3_pad_2[48] = {
|
159
|
-
0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
|
160
|
-
0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
|
161
|
-
0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
|
162
|
-
0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
|
163
|
-
};
|
151
|
+
static int ssl3_handshake_mac(SSL *ssl, int md_nid, const char *sender,
|
152
|
+
size_t sender_len, uint8_t *p);
|
164
153
|
|
165
|
-
static int
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
size_t secret_len, const char *label, size_t label_len,
|
170
|
-
const uint8_t *seed1, size_t seed1_len,
|
171
|
-
const uint8_t *seed2, size_t seed2_len) {
|
154
|
+
static int ssl3_prf(const SSL *ssl, uint8_t *out, size_t out_len,
|
155
|
+
const uint8_t *secret, size_t secret_len, const char *label,
|
156
|
+
size_t label_len, const uint8_t *seed1, size_t seed1_len,
|
157
|
+
const uint8_t *seed2, size_t seed2_len) {
|
172
158
|
EVP_MD_CTX md5;
|
173
159
|
EVP_MD_CTX sha1;
|
174
160
|
uint8_t buf[16], smd[SHA_DIGEST_LENGTH];
|
@@ -228,13 +214,13 @@ int ssl3_prf(SSL *s, uint8_t *out, size_t out_len, const uint8_t *secret,
|
|
228
214
|
return 1;
|
229
215
|
}
|
230
216
|
|
231
|
-
void ssl3_cleanup_key_block(SSL *
|
232
|
-
if (
|
233
|
-
OPENSSL_cleanse(
|
234
|
-
OPENSSL_free(
|
235
|
-
|
217
|
+
void ssl3_cleanup_key_block(SSL *ssl) {
|
218
|
+
if (ssl->s3->tmp.key_block != NULL) {
|
219
|
+
OPENSSL_cleanse(ssl->s3->tmp.key_block, ssl->s3->tmp.key_block_length);
|
220
|
+
OPENSSL_free(ssl->s3->tmp.key_block);
|
221
|
+
ssl->s3->tmp.key_block = NULL;
|
236
222
|
}
|
237
|
-
|
223
|
+
ssl->s3->tmp.key_block_length = 0;
|
238
224
|
}
|
239
225
|
|
240
226
|
int ssl3_init_handshake_buffer(SSL *ssl) {
|
@@ -309,20 +295,23 @@ int ssl3_update_handshake_hash(SSL *ssl, const uint8_t *in, size_t in_len) {
|
|
309
295
|
return 1;
|
310
296
|
}
|
311
297
|
|
312
|
-
int ssl3_cert_verify_mac(SSL *
|
313
|
-
return ssl3_handshake_mac(
|
298
|
+
static int ssl3_cert_verify_mac(SSL *ssl, int md_nid, uint8_t *p) {
|
299
|
+
return ssl3_handshake_mac(ssl, md_nid, NULL, 0, p);
|
314
300
|
}
|
315
301
|
|
316
|
-
int ssl3_final_finish_mac(SSL *
|
302
|
+
static int ssl3_final_finish_mac(SSL *ssl, int from_server, uint8_t *out) {
|
303
|
+
const char *sender = from_server ? SSL3_MD_SERVER_FINISHED_CONST
|
304
|
+
: SSL3_MD_CLIENT_FINISHED_CONST;
|
305
|
+
const size_t sender_len = 4;
|
317
306
|
int ret, sha1len;
|
318
|
-
ret = ssl3_handshake_mac(
|
307
|
+
ret = ssl3_handshake_mac(ssl, NID_md5, sender, sender_len, out);
|
319
308
|
if (ret == 0) {
|
320
309
|
return 0;
|
321
310
|
}
|
322
311
|
|
323
|
-
|
312
|
+
out += ret;
|
324
313
|
|
325
|
-
sha1len = ssl3_handshake_mac(
|
314
|
+
sha1len = ssl3_handshake_mac(ssl, NID_sha1, sender, sender_len, out);
|
326
315
|
if (sha1len == 0) {
|
327
316
|
return 0;
|
328
317
|
}
|
@@ -331,8 +320,8 @@ int ssl3_final_finish_mac(SSL *s, const char *sender, int len, uint8_t *p) {
|
|
331
320
|
return ret;
|
332
321
|
}
|
333
322
|
|
334
|
-
static int ssl3_handshake_mac(SSL *
|
335
|
-
uint8_t *p) {
|
323
|
+
static int ssl3_handshake_mac(SSL *ssl, int md_nid, const char *sender,
|
324
|
+
size_t sender_len, uint8_t *p) {
|
336
325
|
unsigned int ret;
|
337
326
|
size_t npad, n;
|
338
327
|
unsigned int i;
|
@@ -341,9 +330,9 @@ static int ssl3_handshake_mac(SSL *s, int md_nid, const char *sender, int len,
|
|
341
330
|
const EVP_MD_CTX *ctx_template;
|
342
331
|
|
343
332
|
if (md_nid == NID_md5) {
|
344
|
-
ctx_template = &
|
345
|
-
} else if (md_nid == EVP_MD_CTX_type(&
|
346
|
-
ctx_template = &
|
333
|
+
ctx_template = &ssl->s3->handshake_md5;
|
334
|
+
} else if (md_nid == EVP_MD_CTX_type(&ssl->s3->handshake_hash)) {
|
335
|
+
ctx_template = &ssl->s3->handshake_hash;
|
347
336
|
} else {
|
348
337
|
OPENSSL_PUT_ERROR(SSL, SSL_R_NO_REQUIRED_DIGEST);
|
349
338
|
return 0;
|
@@ -356,14 +345,29 @@ static int ssl3_handshake_mac(SSL *s, int md_nid, const char *sender, int len,
|
|
356
345
|
return 0;
|
357
346
|
}
|
358
347
|
|
348
|
+
static const uint8_t kPad1[48] = {
|
349
|
+
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
350
|
+
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
351
|
+
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
352
|
+
0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36,
|
353
|
+
};
|
354
|
+
|
355
|
+
static const uint8_t kPad2[48] = {
|
356
|
+
0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
|
357
|
+
0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
|
358
|
+
0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
|
359
|
+
0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c,
|
360
|
+
};
|
361
|
+
|
359
362
|
n = EVP_MD_CTX_size(&ctx);
|
360
363
|
|
361
364
|
npad = (48 / n) * n;
|
362
365
|
if (sender != NULL) {
|
363
|
-
EVP_DigestUpdate(&ctx, sender,
|
366
|
+
EVP_DigestUpdate(&ctx, sender, sender_len);
|
364
367
|
}
|
365
|
-
EVP_DigestUpdate(&ctx,
|
366
|
-
|
368
|
+
EVP_DigestUpdate(&ctx, ssl->session->master_key,
|
369
|
+
ssl->session->master_key_length);
|
370
|
+
EVP_DigestUpdate(&ctx, kPad1, npad);
|
367
371
|
EVP_DigestFinal_ex(&ctx, md_buf, &i);
|
368
372
|
|
369
373
|
if (!EVP_DigestInit_ex(&ctx, EVP_MD_CTX_md(&ctx), NULL)) {
|
@@ -371,8 +375,9 @@ static int ssl3_handshake_mac(SSL *s, int md_nid, const char *sender, int len,
|
|
371
375
|
OPENSSL_PUT_ERROR(SSL, ERR_LIB_EVP);
|
372
376
|
return 0;
|
373
377
|
}
|
374
|
-
EVP_DigestUpdate(&ctx,
|
375
|
-
|
378
|
+
EVP_DigestUpdate(&ctx, ssl->session->master_key,
|
379
|
+
ssl->session->master_key_length);
|
380
|
+
EVP_DigestUpdate(&ctx, kPad2, npad);
|
376
381
|
EVP_DigestUpdate(&ctx, md_buf, i);
|
377
382
|
EVP_DigestFinal_ex(&ctx, p, &ret);
|
378
383
|
|
@@ -381,114 +386,10 @@ static int ssl3_handshake_mac(SSL *s, int md_nid, const char *sender, int len,
|
|
381
386
|
return ret;
|
382
387
|
}
|
383
388
|
|
384
|
-
int ssl3_record_sequence_update(uint8_t *seq, size_t seq_len) {
|
385
|
-
size_t i;
|
386
|
-
for (i = seq_len - 1; i < seq_len; i--) {
|
387
|
-
++seq[i];
|
388
|
-
if (seq[i] != 0) {
|
389
|
-
return 1;
|
390
|
-
}
|
391
|
-
}
|
392
|
-
OPENSSL_PUT_ERROR(SSL, ERR_R_OVERFLOW);
|
393
|
-
return 0;
|
394
|
-
}
|
395
|
-
|
396
|
-
int ssl3_alert_code(int code) {
|
397
|
-
switch (code) {
|
398
|
-
case SSL_AD_CLOSE_NOTIFY:
|
399
|
-
return SSL3_AD_CLOSE_NOTIFY;
|
400
|
-
|
401
|
-
case SSL_AD_UNEXPECTED_MESSAGE:
|
402
|
-
return SSL3_AD_UNEXPECTED_MESSAGE;
|
403
|
-
|
404
|
-
case SSL_AD_BAD_RECORD_MAC:
|
405
|
-
return SSL3_AD_BAD_RECORD_MAC;
|
406
|
-
|
407
|
-
case SSL_AD_DECRYPTION_FAILED:
|
408
|
-
return SSL3_AD_BAD_RECORD_MAC;
|
409
|
-
|
410
|
-
case SSL_AD_RECORD_OVERFLOW:
|
411
|
-
return SSL3_AD_BAD_RECORD_MAC;
|
412
|
-
|
413
|
-
case SSL_AD_DECOMPRESSION_FAILURE:
|
414
|
-
return SSL3_AD_DECOMPRESSION_FAILURE;
|
415
|
-
|
416
|
-
case SSL_AD_HANDSHAKE_FAILURE:
|
417
|
-
return SSL3_AD_HANDSHAKE_FAILURE;
|
418
|
-
|
419
|
-
case SSL_AD_NO_CERTIFICATE:
|
420
|
-
return SSL3_AD_NO_CERTIFICATE;
|
421
|
-
|
422
|
-
case SSL_AD_BAD_CERTIFICATE:
|
423
|
-
return SSL3_AD_BAD_CERTIFICATE;
|
424
|
-
|
425
|
-
case SSL_AD_UNSUPPORTED_CERTIFICATE:
|
426
|
-
return SSL3_AD_UNSUPPORTED_CERTIFICATE;
|
427
|
-
|
428
|
-
case SSL_AD_CERTIFICATE_REVOKED:
|
429
|
-
return SSL3_AD_CERTIFICATE_REVOKED;
|
430
|
-
|
431
|
-
case SSL_AD_CERTIFICATE_EXPIRED:
|
432
|
-
return SSL3_AD_CERTIFICATE_EXPIRED;
|
433
389
|
|
434
|
-
case SSL_AD_CERTIFICATE_UNKNOWN:
|
435
|
-
return SSL3_AD_CERTIFICATE_UNKNOWN;
|
436
390
|
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
case SSL_AD_ACCESS_DENIED:
|
444
|
-
return SSL3_AD_HANDSHAKE_FAILURE;
|
445
|
-
|
446
|
-
case SSL_AD_DECODE_ERROR:
|
447
|
-
return SSL3_AD_HANDSHAKE_FAILURE;
|
448
|
-
|
449
|
-
case SSL_AD_DECRYPT_ERROR:
|
450
|
-
return SSL3_AD_HANDSHAKE_FAILURE;
|
451
|
-
|
452
|
-
case SSL_AD_EXPORT_RESTRICTION:
|
453
|
-
return SSL3_AD_HANDSHAKE_FAILURE;
|
454
|
-
|
455
|
-
case SSL_AD_PROTOCOL_VERSION:
|
456
|
-
return SSL3_AD_HANDSHAKE_FAILURE;
|
457
|
-
|
458
|
-
case SSL_AD_INSUFFICIENT_SECURITY:
|
459
|
-
return SSL3_AD_HANDSHAKE_FAILURE;
|
460
|
-
|
461
|
-
case SSL_AD_INTERNAL_ERROR:
|
462
|
-
return SSL3_AD_HANDSHAKE_FAILURE;
|
463
|
-
|
464
|
-
case SSL_AD_USER_CANCELLED:
|
465
|
-
return SSL3_AD_HANDSHAKE_FAILURE;
|
466
|
-
|
467
|
-
case SSL_AD_NO_RENEGOTIATION:
|
468
|
-
return -1; /* Don't send it. */
|
469
|
-
|
470
|
-
case SSL_AD_UNSUPPORTED_EXTENSION:
|
471
|
-
return SSL3_AD_HANDSHAKE_FAILURE;
|
472
|
-
|
473
|
-
case SSL_AD_CERTIFICATE_UNOBTAINABLE:
|
474
|
-
return SSL3_AD_HANDSHAKE_FAILURE;
|
475
|
-
|
476
|
-
case SSL_AD_UNRECOGNIZED_NAME:
|
477
|
-
return SSL3_AD_HANDSHAKE_FAILURE;
|
478
|
-
|
479
|
-
case SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE:
|
480
|
-
return SSL3_AD_HANDSHAKE_FAILURE;
|
481
|
-
|
482
|
-
case SSL_AD_BAD_CERTIFICATE_HASH_VALUE:
|
483
|
-
return SSL3_AD_HANDSHAKE_FAILURE;
|
484
|
-
|
485
|
-
case SSL_AD_UNKNOWN_PSK_IDENTITY:
|
486
|
-
return TLS1_AD_UNKNOWN_PSK_IDENTITY;
|
487
|
-
|
488
|
-
case SSL_AD_INAPPROPRIATE_FALLBACK:
|
489
|
-
return SSL3_AD_INAPPROPRIATE_FALLBACK;
|
490
|
-
|
491
|
-
default:
|
492
|
-
return -1;
|
493
|
-
}
|
494
|
-
}
|
391
|
+
const SSL3_ENC_METHOD SSLv3_enc_data = {
|
392
|
+
ssl3_prf,
|
393
|
+
ssl3_final_finish_mac,
|
394
|
+
ssl3_cert_verify_mac,
|
395
|
+
};
|
@@ -163,39 +163,27 @@
|
|
163
163
|
#include "internal.h"
|
164
164
|
|
165
165
|
|
166
|
-
const SSL3_ENC_METHOD SSLv3_enc_data = {
|
167
|
-
ssl3_prf,
|
168
|
-
tls1_setup_key_block,
|
169
|
-
tls1_generate_master_secret,
|
170
|
-
tls1_change_cipher_state,
|
171
|
-
ssl3_final_finish_mac,
|
172
|
-
ssl3_cert_verify_mac,
|
173
|
-
SSL3_MD_CLIENT_FINISHED_CONST, 4,
|
174
|
-
SSL3_MD_SERVER_FINISHED_CONST, 4,
|
175
|
-
ssl3_alert_code,
|
176
|
-
tls1_export_keying_material,
|
177
|
-
0,
|
178
|
-
};
|
179
|
-
|
180
166
|
int ssl3_supports_cipher(const SSL_CIPHER *cipher) {
|
181
167
|
return 1;
|
182
168
|
}
|
183
169
|
|
184
|
-
int ssl3_set_handshake_header(SSL *
|
185
|
-
uint8_t *p = (uint8_t *)
|
170
|
+
int ssl3_set_handshake_header(SSL *ssl, int htype, unsigned long len) {
|
171
|
+
uint8_t *p = (uint8_t *)ssl->init_buf->data;
|
186
172
|
*(p++) = htype;
|
187
173
|
l2n3(len, p);
|
188
|
-
|
189
|
-
|
174
|
+
ssl->init_num = (int)len + SSL3_HM_HEADER_LENGTH;
|
175
|
+
ssl->init_off = 0;
|
190
176
|
|
191
177
|
/* Add the message to the handshake hash. */
|
192
|
-
return ssl3_update_handshake_hash(
|
193
|
-
|
178
|
+
return ssl3_update_handshake_hash(ssl, (uint8_t *)ssl->init_buf->data,
|
179
|
+
ssl->init_num);
|
194
180
|
}
|
195
181
|
|
196
|
-
int ssl3_handshake_write(SSL *
|
182
|
+
int ssl3_handshake_write(SSL *ssl) {
|
183
|
+
return ssl3_do_write(ssl, SSL3_RT_HANDSHAKE);
|
184
|
+
}
|
197
185
|
|
198
|
-
int ssl3_new(SSL *
|
186
|
+
int ssl3_new(SSL *ssl) {
|
199
187
|
SSL3_STATE *s3;
|
200
188
|
|
201
189
|
s3 = OPENSSL_malloc(sizeof *s3);
|
@@ -207,43 +195,44 @@ int ssl3_new(SSL *s) {
|
|
207
195
|
EVP_MD_CTX_init(&s3->handshake_hash);
|
208
196
|
EVP_MD_CTX_init(&s3->handshake_md5);
|
209
197
|
|
210
|
-
|
198
|
+
ssl->s3 = s3;
|
211
199
|
|
212
|
-
/* Set the version to the highest supported version
|
213
|
-
* initial state of |s->enc_method| and what the API reports as the version
|
214
|
-
* prior to negotiation.
|
200
|
+
/* Set the version to the highest supported version.
|
215
201
|
*
|
216
|
-
* TODO(davidben):
|
217
|
-
|
202
|
+
* TODO(davidben): Move this field into |s3|, have it store the normalized
|
203
|
+
* protocol version, and implement this pre-negotiation quirk in |SSL_version|
|
204
|
+
* at the API boundary rather than in internal state. */
|
205
|
+
ssl->version = TLS1_2_VERSION;
|
218
206
|
return 1;
|
219
207
|
err:
|
220
208
|
return 0;
|
221
209
|
}
|
222
210
|
|
223
|
-
void ssl3_free(SSL *
|
224
|
-
if (
|
211
|
+
void ssl3_free(SSL *ssl) {
|
212
|
+
if (ssl == NULL || ssl->s3 == NULL) {
|
225
213
|
return;
|
226
214
|
}
|
227
215
|
|
228
|
-
ssl3_cleanup_key_block(
|
229
|
-
ssl_read_buffer_clear(
|
230
|
-
ssl_write_buffer_clear(
|
231
|
-
|
232
|
-
|
216
|
+
ssl3_cleanup_key_block(ssl);
|
217
|
+
ssl_read_buffer_clear(ssl);
|
218
|
+
ssl_write_buffer_clear(ssl);
|
219
|
+
SSL_ECDH_CTX_cleanup(&ssl->s3->tmp.ecdh_ctx);
|
220
|
+
OPENSSL_free(ssl->s3->tmp.peer_key);
|
233
221
|
|
234
|
-
sk_X509_NAME_pop_free(
|
235
|
-
OPENSSL_free(
|
236
|
-
OPENSSL_free(
|
237
|
-
OPENSSL_free(
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
222
|
+
sk_X509_NAME_pop_free(ssl->s3->tmp.ca_names, X509_NAME_free);
|
223
|
+
OPENSSL_free(ssl->s3->tmp.certificate_types);
|
224
|
+
OPENSSL_free(ssl->s3->tmp.peer_ellipticcurvelist);
|
225
|
+
OPENSSL_free(ssl->s3->tmp.peer_psk_identity_hint);
|
226
|
+
ssl3_free_handshake_buffer(ssl);
|
227
|
+
ssl3_free_handshake_hash(ssl);
|
228
|
+
OPENSSL_free(ssl->s3->next_proto_negotiated);
|
229
|
+
OPENSSL_free(ssl->s3->alpn_selected);
|
230
|
+
SSL_AEAD_CTX_free(ssl->s3->aead_read_ctx);
|
231
|
+
SSL_AEAD_CTX_free(ssl->s3->aead_write_ctx);
|
243
232
|
|
244
|
-
OPENSSL_cleanse(
|
245
|
-
OPENSSL_free(
|
246
|
-
|
233
|
+
OPENSSL_cleanse(ssl->s3, sizeof *ssl->s3);
|
234
|
+
OPENSSL_free(ssl->s3);
|
235
|
+
ssl->s3 = NULL;
|
247
236
|
}
|
248
237
|
|
249
238
|
int SSL_session_reused(const SSL *ssl) {
|
@@ -322,23 +311,28 @@ int SSL_enable_tls_channel_id(SSL *ssl) {
|
|
322
311
|
return 1;
|
323
312
|
}
|
324
313
|
|
314
|
+
static int is_p256_key(EVP_PKEY *private_key) {
|
315
|
+
const EC_KEY *ec_key = EVP_PKEY_get0_EC_KEY(private_key);
|
316
|
+
return ec_key != NULL &&
|
317
|
+
EC_GROUP_get_curve_name(EC_KEY_get0_group(ec_key)) ==
|
318
|
+
NID_X9_62_prime256v1;
|
319
|
+
}
|
320
|
+
|
325
321
|
int SSL_CTX_set1_tls_channel_id(SSL_CTX *ctx, EVP_PKEY *private_key) {
|
326
|
-
|
327
|
-
if (EVP_PKEY_id(private_key) != EVP_PKEY_EC ||
|
328
|
-
EVP_PKEY_bits(private_key) != 256) {
|
322
|
+
if (!is_p256_key(private_key)) {
|
329
323
|
OPENSSL_PUT_ERROR(SSL, SSL_R_CHANNEL_ID_NOT_P256);
|
330
324
|
return 0;
|
331
325
|
}
|
326
|
+
|
332
327
|
EVP_PKEY_free(ctx->tlsext_channel_id_private);
|
333
328
|
ctx->tlsext_channel_id_private = EVP_PKEY_up_ref(private_key);
|
329
|
+
ctx->tlsext_channel_id_enabled = 1;
|
330
|
+
|
334
331
|
return 1;
|
335
332
|
}
|
336
333
|
|
337
334
|
int SSL_set1_tls_channel_id(SSL *ssl, EVP_PKEY *private_key) {
|
338
|
-
|
339
|
-
if (ec_key == NULL ||
|
340
|
-
EC_GROUP_get_curve_name(EC_KEY_get0_group(ec_key)) !=
|
341
|
-
NID_X9_62_prime256v1) {
|
335
|
+
if (!is_p256_key(private_key)) {
|
342
336
|
OPENSSL_PUT_ERROR(SSL, SSL_R_CHANNEL_ID_NOT_P256);
|
343
337
|
return 0;
|
344
338
|
}
|
@@ -447,30 +441,30 @@ int SSL_CTX_set_tlsext_ticket_key_cb(
|
|
447
441
|
return 1;
|
448
442
|
}
|
449
443
|
|
450
|
-
struct ssl_cipher_preference_list_st *ssl_get_cipher_preferences(SSL *
|
451
|
-
if (
|
452
|
-
return
|
444
|
+
struct ssl_cipher_preference_list_st *ssl_get_cipher_preferences(SSL *ssl) {
|
445
|
+
if (ssl->cipher_list != NULL) {
|
446
|
+
return ssl->cipher_list;
|
453
447
|
}
|
454
448
|
|
455
|
-
if (
|
456
|
-
|
457
|
-
return
|
449
|
+
if (ssl->version >= TLS1_1_VERSION && ssl->ctx != NULL &&
|
450
|
+
ssl->ctx->cipher_list_tls11 != NULL) {
|
451
|
+
return ssl->ctx->cipher_list_tls11;
|
458
452
|
}
|
459
453
|
|
460
|
-
if (
|
461
|
-
|
462
|
-
return
|
454
|
+
if (ssl->version >= TLS1_VERSION && ssl->ctx != NULL &&
|
455
|
+
ssl->ctx->cipher_list_tls10 != NULL) {
|
456
|
+
return ssl->ctx->cipher_list_tls10;
|
463
457
|
}
|
464
458
|
|
465
|
-
if (
|
466
|
-
return
|
459
|
+
if (ssl->ctx != NULL && ssl->ctx->cipher_list != NULL) {
|
460
|
+
return ssl->ctx->cipher_list;
|
467
461
|
}
|
468
462
|
|
469
463
|
return NULL;
|
470
464
|
}
|
471
465
|
|
472
466
|
const SSL_CIPHER *ssl3_choose_cipher(
|
473
|
-
SSL *
|
467
|
+
SSL *ssl, STACK_OF(SSL_CIPHER) *clnt,
|
474
468
|
struct ssl_cipher_preference_list_st *server_pref) {
|
475
469
|
const SSL_CIPHER *c, *ret = NULL;
|
476
470
|
STACK_OF(SSL_CIPHER) *srvr = server_pref->ciphers, *prio, *allow;
|
@@ -487,7 +481,7 @@ const SSL_CIPHER *ssl3_choose_cipher(
|
|
487
481
|
* such value exists yet. */
|
488
482
|
int group_min = -1;
|
489
483
|
|
490
|
-
if (
|
484
|
+
if (ssl->options & SSL_OP_CIPHER_SERVER_PREFERENCE) {
|
491
485
|
prio = srvr;
|
492
486
|
in_group_flags = server_pref->in_group_flags;
|
493
487
|
allow = clnt;
|
@@ -497,7 +491,7 @@ const SSL_CIPHER *ssl3_choose_cipher(
|
|
497
491
|
allow = srvr;
|
498
492
|
}
|
499
493
|
|
500
|
-
ssl_get_compatible_server_ciphers(
|
494
|
+
ssl_get_compatible_server_ciphers(ssl, &mask_k, &mask_a);
|
501
495
|
|
502
496
|
for (i = 0; i < sk_SSL_CIPHER_num(prio); i++) {
|
503
497
|
c = sk_SSL_CIPHER_value(prio, i);
|
@@ -505,7 +499,7 @@ const SSL_CIPHER *ssl3_choose_cipher(
|
|
505
499
|
ok = 1;
|
506
500
|
|
507
501
|
/* Check the TLS version. */
|
508
|
-
if (SSL_CIPHER_get_min_version(c) >
|
502
|
+
if (SSL_CIPHER_get_min_version(c) > ssl3_protocol_version(ssl)) {
|
509
503
|
ok = 0;
|
510
504
|
}
|
511
505
|
|
@@ -541,7 +535,7 @@ const SSL_CIPHER *ssl3_choose_cipher(
|
|
541
535
|
return ret;
|
542
536
|
}
|
543
537
|
|
544
|
-
int ssl3_get_req_cert_type(SSL *
|
538
|
+
int ssl3_get_req_cert_type(SSL *ssl, uint8_t *p) {
|
545
539
|
int ret = 0;
|
546
540
|
const uint8_t *sig;
|
547
541
|
size_t i, siglen;
|
@@ -549,7 +543,7 @@ int ssl3_get_req_cert_type(SSL *s, uint8_t *p) {
|
|
549
543
|
int have_ecdsa_sign = 0;
|
550
544
|
|
551
545
|
/* get configured sigalgs */
|
552
|
-
siglen = tls12_get_psigalgs(
|
546
|
+
siglen = tls12_get_psigalgs(ssl, &sig);
|
553
547
|
for (i = 0; i < siglen; i += 2, sig += 2) {
|
554
548
|
switch (sig[1]) {
|
555
549
|
case TLSEXT_signature_rsa:
|
@@ -568,7 +562,7 @@ int ssl3_get_req_cert_type(SSL *s, uint8_t *p) {
|
|
568
562
|
|
569
563
|
/* ECDSA certs can be used with RSA cipher suites as well so we don't need to
|
570
564
|
* check for SSL_kECDH or SSL_kECDHE. */
|
571
|
-
if (
|
565
|
+
if (ssl->version >= TLS1_VERSION && have_ecdsa_sign) {
|
572
566
|
p[ret++] = TLS_CT_ECDSA_SIGN;
|
573
567
|
}
|
574
568
|
|
@@ -577,10 +571,10 @@ int ssl3_get_req_cert_type(SSL *s, uint8_t *p) {
|
|
577
571
|
|
578
572
|
/* If we are using default SHA1+MD5 algorithms switch to new SHA256 PRF and
|
579
573
|
* handshake macs if required. */
|
580
|
-
uint32_t ssl_get_algorithm_prf(SSL *
|
581
|
-
uint32_t algorithm_prf =
|
582
|
-
if (
|
583
|
-
|
574
|
+
uint32_t ssl_get_algorithm_prf(const SSL *ssl) {
|
575
|
+
uint32_t algorithm_prf = ssl->s3->tmp.new_cipher->algorithm_prf;
|
576
|
+
if (algorithm_prf == SSL_HANDSHAKE_MAC_DEFAULT &&
|
577
|
+
ssl3_protocol_version(ssl) >= TLS1_2_VERSION) {
|
584
578
|
return SSL_HANDSHAKE_MAC_SHA256;
|
585
579
|
}
|
586
580
|
return algorithm_prf;
|