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
@@ -134,9 +134,6 @@ typedef struct stack_st {
|
|
134
134
|
* STACK_OF:GENERAL_NAME
|
135
135
|
* STACK_OF:GENERAL_NAMES
|
136
136
|
* STACK_OF:GENERAL_SUBTREE
|
137
|
-
* STACK_OF:MIME_HEADER
|
138
|
-
* STACK_OF:PKCS7_RECIP_INFO
|
139
|
-
* STACK_OF:PKCS7_SIGNER_INFO
|
140
137
|
* STACK_OF:POLICYINFO
|
141
138
|
* STACK_OF:POLICYQUALINFO
|
142
139
|
* STACK_OF:POLICY_MAPPING
|
@@ -1430,262 +1430,6 @@
|
|
1430
1430
|
copy_func), \
|
1431
1431
|
CHECKED_CAST(void (*)(void *), void (*)(GENERAL_SUBTREE *), free_func)))
|
1432
1432
|
|
1433
|
-
/* MIME_HEADER */
|
1434
|
-
#define sk_MIME_HEADER_new(comp) \
|
1435
|
-
((STACK_OF(MIME_HEADER) *)sk_new(CHECKED_CAST( \
|
1436
|
-
stack_cmp_func, int (*)(const MIME_HEADER **a, const MIME_HEADER **b), \
|
1437
|
-
comp)))
|
1438
|
-
|
1439
|
-
#define sk_MIME_HEADER_new_null() ((STACK_OF(MIME_HEADER) *)sk_new_null())
|
1440
|
-
|
1441
|
-
#define sk_MIME_HEADER_num(sk) \
|
1442
|
-
sk_num(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk))
|
1443
|
-
|
1444
|
-
#define sk_MIME_HEADER_zero(sk) \
|
1445
|
-
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk));
|
1446
|
-
|
1447
|
-
#define sk_MIME_HEADER_value(sk, i) \
|
1448
|
-
((MIME_HEADER *)sk_value( \
|
1449
|
-
CHECKED_CAST(_STACK *, const STACK_OF(MIME_HEADER) *, sk), (i)))
|
1450
|
-
|
1451
|
-
#define sk_MIME_HEADER_set(sk, i, p) \
|
1452
|
-
((MIME_HEADER *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
|
1453
|
-
(i), CHECKED_CAST(void *, MIME_HEADER *, p)))
|
1454
|
-
|
1455
|
-
#define sk_MIME_HEADER_free(sk) \
|
1456
|
-
sk_free(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk))
|
1457
|
-
|
1458
|
-
#define sk_MIME_HEADER_pop_free(sk, free_func) \
|
1459
|
-
sk_pop_free( \
|
1460
|
-
CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
|
1461
|
-
CHECKED_CAST(void (*)(void *), void (*)(MIME_HEADER *), free_func))
|
1462
|
-
|
1463
|
-
#define sk_MIME_HEADER_insert(sk, p, where) \
|
1464
|
-
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
|
1465
|
-
CHECKED_CAST(void *, MIME_HEADER *, p), (where))
|
1466
|
-
|
1467
|
-
#define sk_MIME_HEADER_delete(sk, where) \
|
1468
|
-
((MIME_HEADER *)sk_delete( \
|
1469
|
-
CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), (where)))
|
1470
|
-
|
1471
|
-
#define sk_MIME_HEADER_delete_ptr(sk, p) \
|
1472
|
-
((MIME_HEADER *)sk_delete_ptr( \
|
1473
|
-
CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
|
1474
|
-
CHECKED_CAST(void *, MIME_HEADER *, p)))
|
1475
|
-
|
1476
|
-
#define sk_MIME_HEADER_find(sk, out_index, p) \
|
1477
|
-
sk_find(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), (out_index), \
|
1478
|
-
CHECKED_CAST(void *, MIME_HEADER *, p))
|
1479
|
-
|
1480
|
-
#define sk_MIME_HEADER_shift(sk) \
|
1481
|
-
((MIME_HEADER *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk)))
|
1482
|
-
|
1483
|
-
#define sk_MIME_HEADER_push(sk, p) \
|
1484
|
-
sk_push(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
|
1485
|
-
CHECKED_CAST(void *, MIME_HEADER *, p))
|
1486
|
-
|
1487
|
-
#define sk_MIME_HEADER_pop(sk) \
|
1488
|
-
((MIME_HEADER *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk)))
|
1489
|
-
|
1490
|
-
#define sk_MIME_HEADER_dup(sk) \
|
1491
|
-
((STACK_OF(MIME_HEADER) *)sk_dup( \
|
1492
|
-
CHECKED_CAST(_STACK *, const STACK_OF(MIME_HEADER) *, sk)))
|
1493
|
-
|
1494
|
-
#define sk_MIME_HEADER_sort(sk) \
|
1495
|
-
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk))
|
1496
|
-
|
1497
|
-
#define sk_MIME_HEADER_is_sorted(sk) \
|
1498
|
-
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(MIME_HEADER) *, sk))
|
1499
|
-
|
1500
|
-
#define sk_MIME_HEADER_set_cmp_func(sk, comp) \
|
1501
|
-
((int (*)(const MIME_HEADER **a, const MIME_HEADER **b))sk_set_cmp_func( \
|
1502
|
-
CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
|
1503
|
-
CHECKED_CAST(stack_cmp_func, \
|
1504
|
-
int (*)(const MIME_HEADER **a, const MIME_HEADER **b), \
|
1505
|
-
comp)))
|
1506
|
-
|
1507
|
-
#define sk_MIME_HEADER_deep_copy(sk, copy_func, free_func) \
|
1508
|
-
((STACK_OF(MIME_HEADER) *)sk_deep_copy( \
|
1509
|
-
CHECKED_CAST(const _STACK *, const STACK_OF(MIME_HEADER) *, sk), \
|
1510
|
-
CHECKED_CAST(void *(*)(void *), MIME_HEADER *(*)(MIME_HEADER *), \
|
1511
|
-
copy_func), \
|
1512
|
-
CHECKED_CAST(void (*)(void *), void (*)(MIME_HEADER *), free_func)))
|
1513
|
-
|
1514
|
-
/* PKCS7_RECIP_INFO */
|
1515
|
-
#define sk_PKCS7_RECIP_INFO_new(comp) \
|
1516
|
-
((STACK_OF(PKCS7_RECIP_INFO) *)sk_new(CHECKED_CAST( \
|
1517
|
-
stack_cmp_func, \
|
1518
|
-
int (*)(const PKCS7_RECIP_INFO **a, const PKCS7_RECIP_INFO **b), comp)))
|
1519
|
-
|
1520
|
-
#define sk_PKCS7_RECIP_INFO_new_null() \
|
1521
|
-
((STACK_OF(PKCS7_RECIP_INFO) *)sk_new_null())
|
1522
|
-
|
1523
|
-
#define sk_PKCS7_RECIP_INFO_num(sk) \
|
1524
|
-
sk_num(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk))
|
1525
|
-
|
1526
|
-
#define sk_PKCS7_RECIP_INFO_zero(sk) \
|
1527
|
-
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk));
|
1528
|
-
|
1529
|
-
#define sk_PKCS7_RECIP_INFO_value(sk, i) \
|
1530
|
-
((PKCS7_RECIP_INFO *)sk_value( \
|
1531
|
-
CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_RECIP_INFO) *, sk), (i)))
|
1532
|
-
|
1533
|
-
#define sk_PKCS7_RECIP_INFO_set(sk, i, p) \
|
1534
|
-
((PKCS7_RECIP_INFO *)sk_set( \
|
1535
|
-
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), (i), \
|
1536
|
-
CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p)))
|
1537
|
-
|
1538
|
-
#define sk_PKCS7_RECIP_INFO_free(sk) \
|
1539
|
-
sk_free(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk))
|
1540
|
-
|
1541
|
-
#define sk_PKCS7_RECIP_INFO_pop_free(sk, free_func) \
|
1542
|
-
sk_pop_free( \
|
1543
|
-
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
|
1544
|
-
CHECKED_CAST(void (*)(void *), void (*)(PKCS7_RECIP_INFO *), free_func))
|
1545
|
-
|
1546
|
-
#define sk_PKCS7_RECIP_INFO_insert(sk, p, where) \
|
1547
|
-
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
|
1548
|
-
CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p), (where))
|
1549
|
-
|
1550
|
-
#define sk_PKCS7_RECIP_INFO_delete(sk, where) \
|
1551
|
-
((PKCS7_RECIP_INFO *)sk_delete( \
|
1552
|
-
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), (where)))
|
1553
|
-
|
1554
|
-
#define sk_PKCS7_RECIP_INFO_delete_ptr(sk, p) \
|
1555
|
-
((PKCS7_RECIP_INFO *)sk_delete_ptr( \
|
1556
|
-
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
|
1557
|
-
CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p)))
|
1558
|
-
|
1559
|
-
#define sk_PKCS7_RECIP_INFO_find(sk, out_index, p) \
|
1560
|
-
sk_find(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
|
1561
|
-
(out_index), CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p))
|
1562
|
-
|
1563
|
-
#define sk_PKCS7_RECIP_INFO_shift(sk) \
|
1564
|
-
((PKCS7_RECIP_INFO *)sk_shift( \
|
1565
|
-
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk)))
|
1566
|
-
|
1567
|
-
#define sk_PKCS7_RECIP_INFO_push(sk, p) \
|
1568
|
-
sk_push(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
|
1569
|
-
CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p))
|
1570
|
-
|
1571
|
-
#define sk_PKCS7_RECIP_INFO_pop(sk) \
|
1572
|
-
((PKCS7_RECIP_INFO *)sk_pop( \
|
1573
|
-
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk)))
|
1574
|
-
|
1575
|
-
#define sk_PKCS7_RECIP_INFO_dup(sk) \
|
1576
|
-
((STACK_OF(PKCS7_RECIP_INFO) *)sk_dup( \
|
1577
|
-
CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_RECIP_INFO) *, sk)))
|
1578
|
-
|
1579
|
-
#define sk_PKCS7_RECIP_INFO_sort(sk) \
|
1580
|
-
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk))
|
1581
|
-
|
1582
|
-
#define sk_PKCS7_RECIP_INFO_is_sorted(sk) \
|
1583
|
-
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_RECIP_INFO) *, sk))
|
1584
|
-
|
1585
|
-
#define sk_PKCS7_RECIP_INFO_set_cmp_func(sk, comp) \
|
1586
|
-
((int (*)(const PKCS7_RECIP_INFO **a, const PKCS7_RECIP_INFO **b)) \
|
1587
|
-
sk_set_cmp_func( \
|
1588
|
-
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
|
1589
|
-
CHECKED_CAST(stack_cmp_func, int (*)(const PKCS7_RECIP_INFO **a, \
|
1590
|
-
const PKCS7_RECIP_INFO **b), \
|
1591
|
-
comp)))
|
1592
|
-
|
1593
|
-
#define sk_PKCS7_RECIP_INFO_deep_copy(sk, copy_func, free_func) \
|
1594
|
-
((STACK_OF(PKCS7_RECIP_INFO) *)sk_deep_copy( \
|
1595
|
-
CHECKED_CAST(const _STACK *, const STACK_OF(PKCS7_RECIP_INFO) *, sk), \
|
1596
|
-
CHECKED_CAST(void *(*)(void *), \
|
1597
|
-
PKCS7_RECIP_INFO *(*)(PKCS7_RECIP_INFO *), copy_func), \
|
1598
|
-
CHECKED_CAST(void (*)(void *), void (*)(PKCS7_RECIP_INFO *), \
|
1599
|
-
free_func)))
|
1600
|
-
|
1601
|
-
/* PKCS7_SIGNER_INFO */
|
1602
|
-
#define sk_PKCS7_SIGNER_INFO_new(comp) \
|
1603
|
-
((STACK_OF(PKCS7_SIGNER_INFO) *)sk_new(CHECKED_CAST( \
|
1604
|
-
stack_cmp_func, \
|
1605
|
-
int (*)(const PKCS7_SIGNER_INFO **a, const PKCS7_SIGNER_INFO **b), \
|
1606
|
-
comp)))
|
1607
|
-
|
1608
|
-
#define sk_PKCS7_SIGNER_INFO_new_null() \
|
1609
|
-
((STACK_OF(PKCS7_SIGNER_INFO) *)sk_new_null())
|
1610
|
-
|
1611
|
-
#define sk_PKCS7_SIGNER_INFO_num(sk) \
|
1612
|
-
sk_num(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk))
|
1613
|
-
|
1614
|
-
#define sk_PKCS7_SIGNER_INFO_zero(sk) \
|
1615
|
-
sk_zero(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk));
|
1616
|
-
|
1617
|
-
#define sk_PKCS7_SIGNER_INFO_value(sk, i) \
|
1618
|
-
((PKCS7_SIGNER_INFO *)sk_value( \
|
1619
|
-
CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_SIGNER_INFO) *, sk), (i)))
|
1620
|
-
|
1621
|
-
#define sk_PKCS7_SIGNER_INFO_set(sk, i, p) \
|
1622
|
-
((PKCS7_SIGNER_INFO *)sk_set( \
|
1623
|
-
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), (i), \
|
1624
|
-
CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p)))
|
1625
|
-
|
1626
|
-
#define sk_PKCS7_SIGNER_INFO_free(sk) \
|
1627
|
-
sk_free(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk))
|
1628
|
-
|
1629
|
-
#define sk_PKCS7_SIGNER_INFO_pop_free(sk, free_func) \
|
1630
|
-
sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
|
1631
|
-
CHECKED_CAST(void (*)(void *), void (*)(PKCS7_SIGNER_INFO *), \
|
1632
|
-
free_func))
|
1633
|
-
|
1634
|
-
#define sk_PKCS7_SIGNER_INFO_insert(sk, p, where) \
|
1635
|
-
sk_insert(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
|
1636
|
-
CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p), (where))
|
1637
|
-
|
1638
|
-
#define sk_PKCS7_SIGNER_INFO_delete(sk, where) \
|
1639
|
-
((PKCS7_SIGNER_INFO *)sk_delete( \
|
1640
|
-
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), (where)))
|
1641
|
-
|
1642
|
-
#define sk_PKCS7_SIGNER_INFO_delete_ptr(sk, p) \
|
1643
|
-
((PKCS7_SIGNER_INFO *)sk_delete_ptr( \
|
1644
|
-
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
|
1645
|
-
CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p)))
|
1646
|
-
|
1647
|
-
#define sk_PKCS7_SIGNER_INFO_find(sk, out_index, p) \
|
1648
|
-
sk_find(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
|
1649
|
-
(out_index), CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p))
|
1650
|
-
|
1651
|
-
#define sk_PKCS7_SIGNER_INFO_shift(sk) \
|
1652
|
-
((PKCS7_SIGNER_INFO *)sk_shift( \
|
1653
|
-
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk)))
|
1654
|
-
|
1655
|
-
#define sk_PKCS7_SIGNER_INFO_push(sk, p) \
|
1656
|
-
sk_push(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
|
1657
|
-
CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p))
|
1658
|
-
|
1659
|
-
#define sk_PKCS7_SIGNER_INFO_pop(sk) \
|
1660
|
-
((PKCS7_SIGNER_INFO *)sk_pop( \
|
1661
|
-
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk)))
|
1662
|
-
|
1663
|
-
#define sk_PKCS7_SIGNER_INFO_dup(sk) \
|
1664
|
-
((STACK_OF(PKCS7_SIGNER_INFO) *)sk_dup( \
|
1665
|
-
CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_SIGNER_INFO) *, sk)))
|
1666
|
-
|
1667
|
-
#define sk_PKCS7_SIGNER_INFO_sort(sk) \
|
1668
|
-
sk_sort(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk))
|
1669
|
-
|
1670
|
-
#define sk_PKCS7_SIGNER_INFO_is_sorted(sk) \
|
1671
|
-
sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_SIGNER_INFO) *, sk))
|
1672
|
-
|
1673
|
-
#define sk_PKCS7_SIGNER_INFO_set_cmp_func(sk, comp) \
|
1674
|
-
((int (*)(const PKCS7_SIGNER_INFO **a, const PKCS7_SIGNER_INFO **b)) \
|
1675
|
-
sk_set_cmp_func( \
|
1676
|
-
CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
|
1677
|
-
CHECKED_CAST(stack_cmp_func, int (*)(const PKCS7_SIGNER_INFO **a, \
|
1678
|
-
const PKCS7_SIGNER_INFO **b), \
|
1679
|
-
comp)))
|
1680
|
-
|
1681
|
-
#define sk_PKCS7_SIGNER_INFO_deep_copy(sk, copy_func, free_func) \
|
1682
|
-
((STACK_OF(PKCS7_SIGNER_INFO) *)sk_deep_copy( \
|
1683
|
-
CHECKED_CAST(const _STACK *, const STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
|
1684
|
-
CHECKED_CAST(void *(*)(void *), \
|
1685
|
-
PKCS7_SIGNER_INFO *(*)(PKCS7_SIGNER_INFO *), copy_func), \
|
1686
|
-
CHECKED_CAST(void (*)(void *), void (*)(PKCS7_SIGNER_INFO *), \
|
1687
|
-
free_func)))
|
1688
|
-
|
1689
1433
|
/* POLICYINFO */
|
1690
1434
|
#define sk_POLICYINFO_new(comp) \
|
1691
1435
|
((STACK_OF(POLICYINFO) *)sk_new(CHECKED_CAST( \
|
@@ -218,7 +218,7 @@ extern "C" {
|
|
218
218
|
/* ExtensionType value from RFC7685 */
|
219
219
|
#define TLSEXT_TYPE_padding 21
|
220
220
|
|
221
|
-
/*
|
221
|
+
/* ExtensionType value from RFC7627 */
|
222
222
|
#define TLSEXT_TYPE_extended_master_secret 23
|
223
223
|
|
224
224
|
/* ExtensionType value from RFC4507 */
|
@@ -618,12 +618,10 @@ OPENSSL_EXPORT int X509_signature_print(BIO *bp,X509_ALGOR *alg, ASN1_STRING *si
|
|
618
618
|
|
619
619
|
OPENSSL_EXPORT int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md);
|
620
620
|
OPENSSL_EXPORT int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx);
|
621
|
-
/* int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert); */
|
622
621
|
OPENSSL_EXPORT int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md);
|
623
622
|
OPENSSL_EXPORT int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx);
|
624
623
|
OPENSSL_EXPORT int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md);
|
625
624
|
OPENSSL_EXPORT int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx);
|
626
|
-
/* int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl); */
|
627
625
|
OPENSSL_EXPORT int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md);
|
628
626
|
|
629
627
|
OPENSSL_EXPORT int X509_pubkey_digest(const X509 *data,const EVP_MD *type,
|
@@ -412,6 +412,11 @@ OPENSSL_EXPORT void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth);
|
|
412
412
|
/* Allow partial chains if at least one certificate is in trusted store */
|
413
413
|
#define X509_V_FLAG_PARTIAL_CHAIN 0x80000
|
414
414
|
|
415
|
+
/* If the initial chain is not trusted, do not attempt to build an alternative
|
416
|
+
* chain. Alternate chain checking was introduced in 1.0.2b. Setting this flag
|
417
|
+
* will force the behaviour to match that of previous versions. */
|
418
|
+
#define X509_V_FLAG_NO_ALT_CHAINS 0x100000
|
419
|
+
|
415
420
|
#define X509_VP_FLAG_DEFAULT 0x1
|
416
421
|
#define X509_VP_FLAG_OVERWRITE 0x2
|
417
422
|
#define X509_VP_FLAG_RESET_FLAGS 0x4
|
@@ -301,8 +301,9 @@ static int dtls1_write_change_cipher_spec(SSL *ssl,
|
|
301
301
|
}
|
302
302
|
|
303
303
|
static const uint8_t kChangeCipherSpec[1] = {SSL3_MT_CCS};
|
304
|
-
int ret =
|
305
|
-
|
304
|
+
int ret =
|
305
|
+
dtls1_write_bytes(ssl, SSL3_RT_CHANGE_CIPHER_SPEC, kChangeCipherSpec,
|
306
|
+
sizeof(kChangeCipherSpec), use_epoch);
|
306
307
|
if (ret <= 0) {
|
307
308
|
return ret;
|
308
309
|
}
|
@@ -410,17 +411,17 @@ err:
|
|
410
411
|
|
411
412
|
/* dtls1_is_next_message_complete returns one if the next handshake message is
|
412
413
|
* complete and zero otherwise. */
|
413
|
-
static int dtls1_is_next_message_complete(SSL *
|
414
|
-
pitem *item = pqueue_peek(
|
414
|
+
static int dtls1_is_next_message_complete(SSL *ssl) {
|
415
|
+
pitem *item = pqueue_peek(ssl->d1->buffered_messages);
|
415
416
|
if (item == NULL) {
|
416
417
|
return 0;
|
417
418
|
}
|
418
419
|
|
419
420
|
hm_fragment *frag = (hm_fragment *)item->data;
|
420
|
-
assert(
|
421
|
+
assert(ssl->d1->handshake_read_seq <= frag->msg_header.seq);
|
421
422
|
|
422
|
-
return
|
423
|
-
|
423
|
+
return ssl->d1->handshake_read_seq == frag->msg_header.seq &&
|
424
|
+
frag->reassembly == NULL;
|
424
425
|
}
|
425
426
|
|
426
427
|
/* dtls1_discard_fragment_body discards a handshake fragment body of length
|
@@ -428,11 +429,11 @@ static int dtls1_is_next_message_complete(SSL *s) {
|
|
428
429
|
*
|
429
430
|
* TODO(davidben): This function will go away when ssl_read_bytes is gone from
|
430
431
|
* the DTLS side. */
|
431
|
-
static int dtls1_discard_fragment_body(SSL *
|
432
|
+
static int dtls1_discard_fragment_body(SSL *ssl, size_t frag_len) {
|
432
433
|
uint8_t discard[256];
|
433
434
|
while (frag_len > 0) {
|
434
435
|
size_t chunk = frag_len < sizeof(discard) ? frag_len : sizeof(discard);
|
435
|
-
int ret = dtls1_read_bytes(
|
436
|
+
int ret = dtls1_read_bytes(ssl, SSL3_RT_HANDSHAKE, discard, chunk, 0);
|
436
437
|
if (ret != (int) chunk) {
|
437
438
|
return 0;
|
438
439
|
}
|
@@ -446,12 +447,12 @@ static int dtls1_discard_fragment_body(SSL *s, size_t frag_len) {
|
|
446
447
|
* queue. Otherwise, it checks |msg_hdr| is consistent with the existing one. It
|
447
448
|
* returns NULL on failure. The caller does not take ownership of the result. */
|
448
449
|
static hm_fragment *dtls1_get_buffered_message(
|
449
|
-
SSL *
|
450
|
+
SSL *ssl, const struct hm_header_st *msg_hdr) {
|
450
451
|
uint8_t seq64be[8];
|
451
452
|
memset(seq64be, 0, sizeof(seq64be));
|
452
453
|
seq64be[6] = (uint8_t)(msg_hdr->seq >> 8);
|
453
454
|
seq64be[7] = (uint8_t)msg_hdr->seq;
|
454
|
-
pitem *item = pqueue_find(
|
455
|
+
pitem *item = pqueue_find(ssl->d1->buffered_messages, seq64be);
|
455
456
|
|
456
457
|
hm_fragment *frag;
|
457
458
|
if (item == NULL) {
|
@@ -467,7 +468,7 @@ static hm_fragment *dtls1_get_buffered_message(
|
|
467
468
|
dtls1_hm_fragment_free(frag);
|
468
469
|
return NULL;
|
469
470
|
}
|
470
|
-
item = pqueue_insert(
|
471
|
+
item = pqueue_insert(ssl->d1->buffered_messages, item);
|
471
472
|
/* |pqueue_insert| fails iff a duplicate item is inserted, but |item| cannot
|
472
473
|
* be a duplicate. */
|
473
474
|
assert(item != NULL);
|
@@ -479,7 +480,7 @@ static hm_fragment *dtls1_get_buffered_message(
|
|
479
480
|
/* The new fragment must be compatible with the previous fragments from
|
480
481
|
* this message. */
|
481
482
|
OPENSSL_PUT_ERROR(SSL, SSL_R_FRAGMENT_MISMATCH);
|
482
|
-
ssl3_send_alert(
|
483
|
+
ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
|
483
484
|
return NULL;
|
484
485
|
}
|
485
486
|
}
|
@@ -487,29 +488,29 @@ static hm_fragment *dtls1_get_buffered_message(
|
|
487
488
|
}
|
488
489
|
|
489
490
|
/* dtls1_max_handshake_message_len returns the maximum number of bytes
|
490
|
-
* permitted in a DTLS handshake message for |
|
491
|
+
* permitted in a DTLS handshake message for |ssl|. The minimum is 16KB, but may
|
491
492
|
* be greater if the maximum certificate list size requires it. */
|
492
|
-
static size_t dtls1_max_handshake_message_len(const SSL *
|
493
|
+
static size_t dtls1_max_handshake_message_len(const SSL *ssl) {
|
493
494
|
size_t max_len = DTLS1_HM_HEADER_LENGTH + SSL3_RT_MAX_ENCRYPTED_LENGTH;
|
494
|
-
if (max_len <
|
495
|
-
return
|
495
|
+
if (max_len < ssl->max_cert_list) {
|
496
|
+
return ssl->max_cert_list;
|
496
497
|
}
|
497
498
|
return max_len;
|
498
499
|
}
|
499
500
|
|
500
501
|
/* dtls1_process_fragment reads a handshake fragment and processes it. It
|
501
502
|
* returns one if a fragment was successfully processed and 0 or -1 on error. */
|
502
|
-
static int dtls1_process_fragment(SSL *
|
503
|
+
static int dtls1_process_fragment(SSL *ssl) {
|
503
504
|
/* Read handshake message header. */
|
504
505
|
uint8_t header[DTLS1_HM_HEADER_LENGTH];
|
505
|
-
int ret = dtls1_read_bytes(
|
506
|
+
int ret = dtls1_read_bytes(ssl, SSL3_RT_HANDSHAKE, header,
|
506
507
|
DTLS1_HM_HEADER_LENGTH, 0);
|
507
508
|
if (ret <= 0) {
|
508
509
|
return ret;
|
509
510
|
}
|
510
511
|
if (ret != DTLS1_HM_HEADER_LENGTH) {
|
511
512
|
OPENSSL_PUT_ERROR(SSL, SSL_R_UNEXPECTED_MESSAGE);
|
512
|
-
ssl3_send_alert(
|
513
|
+
ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_UNEXPECTED_MESSAGE);
|
513
514
|
return -1;
|
514
515
|
}
|
515
516
|
|
@@ -518,30 +519,30 @@ static int dtls1_process_fragment(SSL *s) {
|
|
518
519
|
dtls1_get_message_header(header, &msg_hdr);
|
519
520
|
|
520
521
|
/* TODO(davidben): dtls1_read_bytes is the wrong abstraction for DTLS. There
|
521
|
-
* should be no need to reach into |
|
522
|
+
* should be no need to reach into |ssl->s3->rrec.length|. */
|
522
523
|
const size_t frag_off = msg_hdr.frag_off;
|
523
524
|
const size_t frag_len = msg_hdr.frag_len;
|
524
525
|
const size_t msg_len = msg_hdr.msg_len;
|
525
526
|
if (frag_off > msg_len || frag_off + frag_len < frag_off ||
|
526
527
|
frag_off + frag_len > msg_len ||
|
527
|
-
msg_len > dtls1_max_handshake_message_len(
|
528
|
-
frag_len >
|
528
|
+
msg_len > dtls1_max_handshake_message_len(ssl) ||
|
529
|
+
frag_len > ssl->s3->rrec.length) {
|
529
530
|
OPENSSL_PUT_ERROR(SSL, SSL_R_EXCESSIVE_MESSAGE_SIZE);
|
530
|
-
ssl3_send_alert(
|
531
|
+
ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
|
531
532
|
return -1;
|
532
533
|
}
|
533
534
|
|
534
|
-
if (msg_hdr.seq <
|
535
|
-
msg_hdr.seq > (unsigned)
|
535
|
+
if (msg_hdr.seq < ssl->d1->handshake_read_seq ||
|
536
|
+
msg_hdr.seq > (unsigned)ssl->d1->handshake_read_seq +
|
536
537
|
kHandshakeBufferSize) {
|
537
538
|
/* Ignore fragments from the past, or ones too far in the future. */
|
538
|
-
if (!dtls1_discard_fragment_body(
|
539
|
+
if (!dtls1_discard_fragment_body(ssl, frag_len)) {
|
539
540
|
return -1;
|
540
541
|
}
|
541
542
|
return 1;
|
542
543
|
}
|
543
544
|
|
544
|
-
hm_fragment *frag = dtls1_get_buffered_message(
|
545
|
+
hm_fragment *frag = dtls1_get_buffered_message(ssl, &msg_hdr);
|
545
546
|
if (frag == NULL) {
|
546
547
|
return -1;
|
547
548
|
}
|
@@ -549,7 +550,7 @@ static int dtls1_process_fragment(SSL *s) {
|
|
549
550
|
|
550
551
|
if (frag->reassembly == NULL) {
|
551
552
|
/* The message is already assembled. */
|
552
|
-
if (!dtls1_discard_fragment_body(
|
553
|
+
if (!dtls1_discard_fragment_body(ssl, frag_len)) {
|
553
554
|
return -1;
|
554
555
|
}
|
555
556
|
return 1;
|
@@ -557,11 +558,11 @@ static int dtls1_process_fragment(SSL *s) {
|
|
557
558
|
assert(msg_len > 0);
|
558
559
|
|
559
560
|
/* Read the body of the fragment. */
|
560
|
-
ret = dtls1_read_bytes(
|
561
|
+
ret = dtls1_read_bytes(ssl, SSL3_RT_HANDSHAKE, frag->fragment + frag_off,
|
561
562
|
frag_len, 0);
|
562
563
|
if (ret != (int) frag_len) {
|
563
564
|
OPENSSL_PUT_ERROR(SSL, ERR_R_INTERNAL_ERROR);
|
564
|
-
ssl3_send_alert(
|
565
|
+
ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_INTERNAL_ERROR);
|
565
566
|
return -1;
|
566
567
|
}
|
567
568
|
dtls1_hm_fragment_mark(frag, frag_off, frag_off + frag_len);
|
@@ -572,7 +573,7 @@ static int dtls1_process_fragment(SSL *s) {
|
|
572
573
|
/* dtls1_get_message reads a handshake message of message type |msg_type| (any
|
573
574
|
* if |msg_type| == -1), maximum acceptable body length |max|. Read an entire
|
574
575
|
* handshake message. Handshake messages arrive in fragments. */
|
575
|
-
long dtls1_get_message(SSL *
|
576
|
+
long dtls1_get_message(SSL *ssl, int st1, int stn, int msg_type, long max,
|
576
577
|
enum ssl_hash_message_t hash_message, int *ok) {
|
577
578
|
pitem *item = NULL;
|
578
579
|
hm_fragment *frag = NULL;
|
@@ -580,26 +581,26 @@ long dtls1_get_message(SSL *s, int st1, int stn, int msg_type, long max,
|
|
580
581
|
|
581
582
|
/* s3->tmp is used to store messages that are unexpected, caused
|
582
583
|
* by the absence of an optional handshake message */
|
583
|
-
if (
|
584
|
+
if (ssl->s3->tmp.reuse_message) {
|
584
585
|
/* A ssl_dont_hash_message call cannot be combined with reuse_message; the
|
585
586
|
* ssl_dont_hash_message would have to have been applied to the previous
|
586
587
|
* call. */
|
587
588
|
assert(hash_message == ssl_hash_message);
|
588
|
-
|
589
|
-
if (msg_type >= 0 &&
|
589
|
+
ssl->s3->tmp.reuse_message = 0;
|
590
|
+
if (msg_type >= 0 && ssl->s3->tmp.message_type != msg_type) {
|
590
591
|
al = SSL_AD_UNEXPECTED_MESSAGE;
|
591
592
|
OPENSSL_PUT_ERROR(SSL, SSL_R_UNEXPECTED_MESSAGE);
|
592
593
|
goto f_err;
|
593
594
|
}
|
594
595
|
*ok = 1;
|
595
|
-
|
596
|
-
|
597
|
-
return
|
596
|
+
ssl->init_msg = (uint8_t *)ssl->init_buf->data + DTLS1_HM_HEADER_LENGTH;
|
597
|
+
ssl->init_num = (int)ssl->s3->tmp.message_size;
|
598
|
+
return ssl->init_num;
|
598
599
|
}
|
599
600
|
|
600
601
|
/* Process fragments until one is found. */
|
601
|
-
while (!dtls1_is_next_message_complete(
|
602
|
-
int ret = dtls1_process_fragment(
|
602
|
+
while (!dtls1_is_next_message_complete(ssl)) {
|
603
|
+
int ret = dtls1_process_fragment(ssl);
|
603
604
|
if (ret <= 0) {
|
604
605
|
*ok = 0;
|
605
606
|
return ret;
|
@@ -607,10 +608,10 @@ long dtls1_get_message(SSL *s, int st1, int stn, int msg_type, long max,
|
|
607
608
|
}
|
608
609
|
|
609
610
|
/* Read out the next complete handshake message. */
|
610
|
-
item = pqueue_pop(
|
611
|
+
item = pqueue_pop(ssl->d1->buffered_messages);
|
611
612
|
assert(item != NULL);
|
612
613
|
frag = (hm_fragment *)item->data;
|
613
|
-
assert(
|
614
|
+
assert(ssl->d1->handshake_read_seq == frag->msg_header.seq);
|
614
615
|
assert(frag->reassembly == NULL);
|
615
616
|
|
616
617
|
if (frag->msg_header.msg_len > (size_t)max) {
|
@@ -622,10 +623,10 @@ long dtls1_get_message(SSL *s, int st1, int stn, int msg_type, long max,
|
|
622
623
|
size_t len;
|
623
624
|
CBB cbb;
|
624
625
|
CBB_zero(&cbb);
|
625
|
-
if (!BUF_MEM_grow(
|
626
|
-
|
627
|
-
|
628
|
-
|
626
|
+
if (!BUF_MEM_grow(ssl->init_buf, (size_t)frag->msg_header.msg_len +
|
627
|
+
DTLS1_HM_HEADER_LENGTH) ||
|
628
|
+
!CBB_init_fixed(&cbb, (uint8_t *)ssl->init_buf->data,
|
629
|
+
ssl->init_buf->max) ||
|
629
630
|
!CBB_add_u8(&cbb, frag->msg_header.type) ||
|
630
631
|
!CBB_add_u24(&cbb, frag->msg_header.msg_len) ||
|
631
632
|
!CBB_add_u16(&cbb, frag->msg_header.seq) ||
|
@@ -639,38 +640,38 @@ long dtls1_get_message(SSL *s, int st1, int stn, int msg_type, long max,
|
|
639
640
|
}
|
640
641
|
assert(len == (size_t)frag->msg_header.msg_len + DTLS1_HM_HEADER_LENGTH);
|
641
642
|
|
642
|
-
|
643
|
+
ssl->d1->handshake_read_seq++;
|
643
644
|
|
644
645
|
/* TODO(davidben): This function has a lot of implicit outputs. Simplify the
|
645
646
|
* |ssl_get_message| API. */
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
647
|
+
ssl->s3->tmp.message_type = frag->msg_header.type;
|
648
|
+
ssl->s3->tmp.message_size = frag->msg_header.msg_len;
|
649
|
+
ssl->init_msg = (uint8_t *)ssl->init_buf->data + DTLS1_HM_HEADER_LENGTH;
|
650
|
+
ssl->init_num = frag->msg_header.msg_len;
|
650
651
|
|
651
|
-
if (msg_type >= 0 &&
|
652
|
+
if (msg_type >= 0 && ssl->s3->tmp.message_type != msg_type) {
|
652
653
|
al = SSL_AD_UNEXPECTED_MESSAGE;
|
653
654
|
OPENSSL_PUT_ERROR(SSL, SSL_R_UNEXPECTED_MESSAGE);
|
654
655
|
goto f_err;
|
655
656
|
}
|
656
|
-
if (hash_message == ssl_hash_message && !ssl3_hash_current_message(
|
657
|
+
if (hash_message == ssl_hash_message && !ssl3_hash_current_message(ssl)) {
|
657
658
|
goto err;
|
658
659
|
}
|
659
|
-
if (
|
660
|
-
|
661
|
-
|
662
|
-
|
660
|
+
if (ssl->msg_callback) {
|
661
|
+
ssl->msg_callback(0, ssl->version, SSL3_RT_HANDSHAKE, ssl->init_buf->data,
|
662
|
+
ssl->init_num + DTLS1_HM_HEADER_LENGTH, ssl,
|
663
|
+
ssl->msg_callback_arg);
|
663
664
|
}
|
664
665
|
|
665
666
|
pitem_free(item);
|
666
667
|
dtls1_hm_fragment_free(frag);
|
667
668
|
|
668
|
-
|
669
|
+
ssl->state = stn;
|
669
670
|
*ok = 1;
|
670
|
-
return
|
671
|
+
return ssl->init_num;
|
671
672
|
|
672
673
|
f_err:
|
673
|
-
ssl3_send_alert(
|
674
|
+
ssl3_send_alert(ssl, SSL3_AL_FATAL, al);
|
674
675
|
err:
|
675
676
|
pitem_free(item);
|
676
677
|
dtls1_hm_fragment_free(frag);
|
@@ -678,25 +679,25 @@ err:
|
|
678
679
|
return -1;
|
679
680
|
}
|
680
681
|
|
681
|
-
int dtls1_read_failed(SSL *
|
682
|
+
int dtls1_read_failed(SSL *ssl, int code) {
|
682
683
|
if (code > 0) {
|
683
684
|
assert(0);
|
684
685
|
return 1;
|
685
686
|
}
|
686
687
|
|
687
|
-
if (!dtls1_is_timer_expired(
|
688
|
+
if (!dtls1_is_timer_expired(ssl)) {
|
688
689
|
/* not a timeout, none of our business, let higher layers handle this. In
|
689
690
|
* fact, it's probably an error */
|
690
691
|
return code;
|
691
692
|
}
|
692
693
|
|
693
|
-
if (!SSL_in_init(
|
694
|
+
if (!SSL_in_init(ssl)) {
|
694
695
|
/* done, no need to send a retransmit */
|
695
|
-
BIO_set_flags(SSL_get_rbio(
|
696
|
+
BIO_set_flags(SSL_get_rbio(ssl), BIO_FLAGS_READ);
|
696
697
|
return code;
|
697
698
|
}
|
698
699
|
|
699
|
-
return DTLSv1_handle_timeout(
|
700
|
+
return DTLSv1_handle_timeout(ssl);
|
700
701
|
}
|
701
702
|
|
702
703
|
static uint16_t dtls1_get_queue_priority(uint16_t seq, int is_ccs) {
|
@@ -713,47 +714,47 @@ static uint16_t dtls1_get_queue_priority(uint16_t seq, int is_ccs) {
|
|
713
714
|
return seq * 2 - is_ccs;
|
714
715
|
}
|
715
716
|
|
716
|
-
static int dtls1_retransmit_message(SSL *
|
717
|
+
static int dtls1_retransmit_message(SSL *ssl, hm_fragment *frag) {
|
717
718
|
/* DTLS renegotiation is unsupported, so only epochs 0 (NULL cipher) and 1
|
718
719
|
* (negotiated cipher) exist. */
|
719
|
-
assert(
|
720
|
-
assert(frag->msg_header.epoch <=
|
720
|
+
assert(ssl->d1->w_epoch == 0 || ssl->d1->w_epoch == 1);
|
721
|
+
assert(frag->msg_header.epoch <= ssl->d1->w_epoch);
|
721
722
|
enum dtls1_use_epoch_t use_epoch = dtls1_use_current_epoch;
|
722
|
-
if (
|
723
|
+
if (ssl->d1->w_epoch == 1 && frag->msg_header.epoch == 0) {
|
723
724
|
use_epoch = dtls1_use_previous_epoch;
|
724
725
|
}
|
725
726
|
|
726
727
|
/* TODO(davidben): This cannot handle non-blocking writes. */
|
727
728
|
int ret;
|
728
729
|
if (frag->msg_header.is_ccs) {
|
729
|
-
ret = dtls1_write_change_cipher_spec(
|
730
|
+
ret = dtls1_write_change_cipher_spec(ssl, use_epoch);
|
730
731
|
} else {
|
731
732
|
/* Restore the message body.
|
732
733
|
* TODO(davidben): Make this less stateful. */
|
733
|
-
memcpy(
|
734
|
+
memcpy(ssl->init_buf->data, frag->fragment,
|
734
735
|
frag->msg_header.msg_len + DTLS1_HM_HEADER_LENGTH);
|
735
|
-
|
736
|
+
ssl->init_num = frag->msg_header.msg_len + DTLS1_HM_HEADER_LENGTH;
|
736
737
|
|
737
|
-
dtls1_set_message_header(
|
738
|
+
dtls1_set_message_header(ssl, frag->msg_header.type,
|
738
739
|
frag->msg_header.msg_len, frag->msg_header.seq,
|
739
740
|
0, frag->msg_header.frag_len);
|
740
|
-
ret = dtls1_do_handshake_write(
|
741
|
+
ret = dtls1_do_handshake_write(ssl, use_epoch);
|
741
742
|
}
|
742
743
|
|
743
744
|
/* TODO(davidben): Check return value? */
|
744
|
-
(void)BIO_flush(SSL_get_wbio(
|
745
|
+
(void)BIO_flush(SSL_get_wbio(ssl));
|
745
746
|
return ret;
|
746
747
|
}
|
747
748
|
|
748
749
|
|
749
|
-
int dtls1_retransmit_buffered_messages(SSL *
|
750
|
-
pqueue sent =
|
750
|
+
int dtls1_retransmit_buffered_messages(SSL *ssl) {
|
751
|
+
pqueue sent = ssl->d1->sent_messages;
|
751
752
|
piterator iter = pqueue_iterator(sent);
|
752
753
|
pitem *item;
|
753
754
|
|
754
755
|
for (item = pqueue_next(&iter); item != NULL; item = pqueue_next(&iter)) {
|
755
756
|
hm_fragment *frag = (hm_fragment *)item->data;
|
756
|
-
if (dtls1_retransmit_message(
|
757
|
+
if (dtls1_retransmit_message(ssl, frag) <= 0) {
|
757
758
|
return -1;
|
758
759
|
}
|
759
760
|
}
|
@@ -789,28 +790,28 @@ static int dtls1_buffer_change_cipher_spec(SSL *ssl, uint16_t seq) {
|
|
789
790
|
return 1;
|
790
791
|
}
|
791
792
|
|
792
|
-
int dtls1_buffer_message(SSL *
|
793
|
+
int dtls1_buffer_message(SSL *ssl) {
|
793
794
|
/* this function is called immediately after a message has
|
794
795
|
* been serialized */
|
795
|
-
assert(
|
796
|
+
assert(ssl->init_off == 0);
|
796
797
|
|
797
|
-
hm_fragment *frag = dtls1_hm_fragment_new(
|
798
|
+
hm_fragment *frag = dtls1_hm_fragment_new(ssl->init_num, 0);
|
798
799
|
if (!frag) {
|
799
800
|
return 0;
|
800
801
|
}
|
801
802
|
|
802
|
-
memcpy(frag->fragment,
|
803
|
+
memcpy(frag->fragment, ssl->init_buf->data, ssl->init_num);
|
803
804
|
|
804
|
-
assert(
|
805
|
-
(unsigned int)
|
805
|
+
assert(ssl->d1->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH ==
|
806
|
+
(unsigned int)ssl->init_num);
|
806
807
|
|
807
|
-
frag->msg_header.msg_len =
|
808
|
-
frag->msg_header.seq =
|
809
|
-
frag->msg_header.type =
|
808
|
+
frag->msg_header.msg_len = ssl->d1->w_msg_hdr.msg_len;
|
809
|
+
frag->msg_header.seq = ssl->d1->w_msg_hdr.seq;
|
810
|
+
frag->msg_header.type = ssl->d1->w_msg_hdr.type;
|
810
811
|
frag->msg_header.frag_off = 0;
|
811
|
-
frag->msg_header.frag_len =
|
812
|
+
frag->msg_header.frag_len = ssl->d1->w_msg_hdr.msg_len;
|
812
813
|
frag->msg_header.is_ccs = 0;
|
813
|
-
frag->msg_header.epoch =
|
814
|
+
frag->msg_header.epoch = ssl->d1->w_epoch;
|
814
815
|
|
815
816
|
uint16_t priority = dtls1_get_queue_priority(frag->msg_header.seq,
|
816
817
|
0 /* handshake */);
|
@@ -825,37 +826,37 @@ int dtls1_buffer_message(SSL *s) {
|
|
825
826
|
return 0;
|
826
827
|
}
|
827
828
|
|
828
|
-
pqueue_insert(
|
829
|
+
pqueue_insert(ssl->d1->sent_messages, item);
|
829
830
|
return 1;
|
830
831
|
}
|
831
832
|
|
832
|
-
int dtls1_send_change_cipher_spec(SSL *
|
833
|
-
if (
|
833
|
+
int dtls1_send_change_cipher_spec(SSL *ssl, int a, int b) {
|
834
|
+
if (ssl->state == a) {
|
834
835
|
/* Buffer the message to handle retransmits. */
|
835
|
-
|
836
|
-
dtls1_buffer_change_cipher_spec(
|
837
|
-
|
836
|
+
ssl->d1->handshake_write_seq = ssl->d1->next_handshake_write_seq;
|
837
|
+
dtls1_buffer_change_cipher_spec(ssl, ssl->d1->handshake_write_seq);
|
838
|
+
ssl->state = b;
|
838
839
|
}
|
839
840
|
|
840
|
-
return dtls1_write_change_cipher_spec(
|
841
|
+
return dtls1_write_change_cipher_spec(ssl, dtls1_use_current_epoch);
|
841
842
|
}
|
842
843
|
|
843
844
|
/* call this function when the buffered messages are no longer needed */
|
844
|
-
void dtls1_clear_record_buffer(SSL *
|
845
|
+
void dtls1_clear_record_buffer(SSL *ssl) {
|
845
846
|
pitem *item;
|
846
847
|
|
847
|
-
for (item = pqueue_pop(
|
848
|
-
item = pqueue_pop(
|
848
|
+
for (item = pqueue_pop(ssl->d1->sent_messages); item != NULL;
|
849
|
+
item = pqueue_pop(ssl->d1->sent_messages)) {
|
849
850
|
dtls1_hm_fragment_free((hm_fragment *)item->data);
|
850
851
|
pitem_free(item);
|
851
852
|
}
|
852
853
|
}
|
853
854
|
|
854
855
|
/* don't actually do the writing, wait till the MTU has been retrieved */
|
855
|
-
void dtls1_set_message_header(SSL *
|
856
|
+
void dtls1_set_message_header(SSL *ssl, uint8_t mt, unsigned long len,
|
856
857
|
unsigned short seq_num, unsigned long frag_off,
|
857
858
|
unsigned long frag_len) {
|
858
|
-
struct hm_header_st *msg_hdr = &
|
859
|
+
struct hm_header_st *msg_hdr = &ssl->d1->w_msg_hdr;
|
859
860
|
|
860
861
|
msg_hdr->type = mt;
|
861
862
|
msg_hdr->msg_len = len;
|