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
@@ -114,23 +114,14 @@ OPENSSL_EXPORT int OPENSSL_strncasecmp(const char *a, const char *b, size_t n);
|
|
114
114
|
* representation of the given type. */
|
115
115
|
#define DECIMAL_SIZE(type) ((sizeof(type)*8+2)/3+1)
|
116
116
|
|
117
|
-
/*
|
118
|
-
*
|
119
|
-
* These functions are either OpenSSL wrappers for standard functions (i.e.
|
120
|
-
* |BIO_snprintf| and |BIO_vsnprintf|) which don't exist in C89, or are
|
121
|
-
* versions of printf functions that output to a BIO rather than a FILE. */
|
122
|
-
#ifdef __GNUC__
|
123
|
-
#define __bio_h__attr__ __attribute__
|
124
|
-
#else
|
125
|
-
#define __bio_h__attr__(x)
|
126
|
-
#endif
|
117
|
+
/* BIO_snprintf has the same behavior as snprintf(3). */
|
127
118
|
OPENSSL_EXPORT int BIO_snprintf(char *buf, size_t n, const char *format, ...)
|
128
|
-
|
119
|
+
OPENSSL_PRINTF_FORMAT_FUNC(3, 4);
|
129
120
|
|
121
|
+
/* BIO_vsnprintf has the same behavior as vsnprintf(3). */
|
130
122
|
OPENSSL_EXPORT int BIO_vsnprintf(char *buf, size_t n, const char *format,
|
131
123
|
va_list args)
|
132
|
-
|
133
|
-
#undef __bio_h__attr__
|
124
|
+
OPENSSL_PRINTF_FORMAT_FUNC(3, 0);
|
134
125
|
|
135
126
|
|
136
127
|
#if defined(__cplusplus)
|
@@ -125,13 +125,10 @@ extern "C" {
|
|
125
125
|
#define PEM_STRING_PKCS8 "ENCRYPTED PRIVATE KEY"
|
126
126
|
#define PEM_STRING_PKCS8INF "PRIVATE KEY"
|
127
127
|
#define PEM_STRING_DHPARAMS "DH PARAMETERS"
|
128
|
-
#define PEM_STRING_DHXPARAMS "X9.42 DH PARAMETERS"
|
129
128
|
#define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS"
|
130
129
|
#define PEM_STRING_DSAPARAMS "DSA PARAMETERS"
|
131
130
|
#define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY"
|
132
|
-
#define PEM_STRING_ECPARAMETERS "EC PARAMETERS"
|
133
131
|
#define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY"
|
134
|
-
#define PEM_STRING_PARAMETERS "PARAMETERS"
|
135
132
|
#define PEM_STRING_CMS "CMS"
|
136
133
|
|
137
134
|
/* Note that this structure is initialised by PEM_SealInit and cleaned up
|
@@ -454,13 +451,11 @@ DECLARE_PEM_rw_const(DSAparams, DSA)
|
|
454
451
|
|
455
452
|
#endif
|
456
453
|
|
457
|
-
DECLARE_PEM_rw_const(ECPKParameters, EC_GROUP)
|
458
454
|
DECLARE_PEM_rw_cb(ECPrivateKey, EC_KEY)
|
459
455
|
DECLARE_PEM_rw(EC_PUBKEY, EC_KEY)
|
460
456
|
|
461
457
|
|
462
458
|
DECLARE_PEM_rw_const(DHparams, DH)
|
463
|
-
DECLARE_PEM_write_const(DHxparams, DH)
|
464
459
|
|
465
460
|
|
466
461
|
DECLARE_PEM_rw_cb(PrivateKey, EVP_PKEY)
|
@@ -481,10 +476,6 @@ OPENSSL_EXPORT EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_pass
|
|
481
476
|
|
482
477
|
OPENSSL_EXPORT int PEM_write_PKCS8PrivateKey(FILE *fp,EVP_PKEY *x,const EVP_CIPHER *enc, char *kstr,int klen, pem_password_cb *cd, void *u);
|
483
478
|
|
484
|
-
OPENSSL_EXPORT EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x);
|
485
|
-
OPENSSL_EXPORT int PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x);
|
486
|
-
|
487
|
-
|
488
479
|
OPENSSL_EXPORT EVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length);
|
489
480
|
OPENSSL_EXPORT EVP_PKEY *b2i_PublicKey(const unsigned char **in, long length);
|
490
481
|
OPENSSL_EXPORT EVP_PKEY *b2i_PrivateKey_bio(BIO *in);
|
@@ -139,12 +139,16 @@ OPENSSL_EXPORT PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(X509_SIG *pkcs8,
|
|
139
139
|
OPENSSL_EXPORT void PKCS12_PBE_add(void);
|
140
140
|
|
141
141
|
/* d2i_PKCS12 is a dummy function that copies |*ber_bytes| into a
|
142
|
-
* |PKCS12| structure. The |out_p12| argument
|
142
|
+
* |PKCS12| structure. The |out_p12| argument should be NULL(✝). On exit,
|
143
143
|
* |*ber_bytes| will be advanced by |ber_len|. It returns a fresh |PKCS12|
|
144
144
|
* structure or NULL on error.
|
145
145
|
*
|
146
146
|
* Note: unlike other d2i functions, |d2i_PKCS12| will always consume |ber_len|
|
147
|
-
* bytes
|
147
|
+
* bytes.
|
148
|
+
*
|
149
|
+
* (✝) If |out_p12| is not NULL and the function is successful, |*out_p12| will
|
150
|
+
* be freed if not NULL itself and the result will be written to |*out_p12|.
|
151
|
+
* New code should not depend on this. */
|
148
152
|
OPENSSL_EXPORT PKCS12 *d2i_PKCS12(PKCS12 **out_p12, const uint8_t **ber_bytes,
|
149
153
|
size_t ber_len);
|
150
154
|
|
@@ -75,6 +75,9 @@ OPENSSL_EXPORT void RAND_seed(const void *buf, int num);
|
|
75
75
|
/* RAND_load_file returns a nonnegative number. */
|
76
76
|
OPENSSL_EXPORT int RAND_load_file(const char *path, long num);
|
77
77
|
|
78
|
+
/* RAND_file_name returns NULL. */
|
79
|
+
OPENSSL_EXPORT const char *RAND_file_name(char *buf, size_t num);
|
80
|
+
|
78
81
|
/* RAND_add does nothing. */
|
79
82
|
OPENSSL_EXPORT void RAND_add(const void *buf, int num, double entropy);
|
80
83
|
|
@@ -124,8 +124,8 @@ OPENSSL_EXPORT int RSA_generate_multi_prime_key(RSA *rsa, int bits,
|
|
124
124
|
* It returns 1 on success or zero on error.
|
125
125
|
*
|
126
126
|
* The |padding| argument must be one of the |RSA_*_PADDING| values. If in
|
127
|
-
* doubt, |
|
128
|
-
* is
|
127
|
+
* doubt, use |RSA_PKCS1_OAEP_PADDING| for new protocols but
|
128
|
+
* |RSA_PKCS1_PADDING| is most common. */
|
129
129
|
OPENSSL_EXPORT int RSA_encrypt(RSA *rsa, size_t *out_len, uint8_t *out,
|
130
130
|
size_t max_out, const uint8_t *in, size_t in_len,
|
131
131
|
int padding);
|
@@ -137,8 +137,14 @@ OPENSSL_EXPORT int RSA_encrypt(RSA *rsa, size_t *out_len, uint8_t *out,
|
|
137
137
|
* It returns 1 on success or zero on error.
|
138
138
|
*
|
139
139
|
* The |padding| argument must be one of the |RSA_*_PADDING| values. If in
|
140
|
-
* doubt, |
|
141
|
-
*
|
140
|
+
* doubt, use |RSA_PKCS1_OAEP_PADDING| for new protocols.
|
141
|
+
*
|
142
|
+
* Passing |RSA_PKCS1_PADDING| into this function is deprecated and insecure. If
|
143
|
+
* implementing a protocol using RSAES-PKCS1-V1_5, use |RSA_NO_PADDING| and then
|
144
|
+
* check padding in constant-time combined with a swap to a random session key
|
145
|
+
* or other mitigation. See "Chosen Ciphertext Attacks Against Protocols Based
|
146
|
+
* on the RSA Encryption Standard PKCS #1", Daniel Bleichenbacher, Advances in
|
147
|
+
* Cryptology (Crypto '98). */
|
142
148
|
OPENSSL_EXPORT int RSA_decrypt(RSA *rsa, size_t *out_len, uint8_t *out,
|
143
149
|
size_t max_out, const uint8_t *in, size_t in_len,
|
144
150
|
int padding);
|
@@ -147,8 +153,8 @@ OPENSSL_EXPORT int RSA_decrypt(RSA *rsa, size_t *out_len, uint8_t *out,
|
|
147
153
|
* |rsa| and writes the encrypted data to |to|. The |to| buffer must have at
|
148
154
|
* least |RSA_size| bytes of space. It returns the number of bytes written, or
|
149
155
|
* -1 on error. The |padding| argument must be one of the |RSA_*_PADDING|
|
150
|
-
* values. If in doubt, |
|
151
|
-
* |
|
156
|
+
* values. If in doubt, use |RSA_PKCS1_OAEP_PADDING| for new protocols but
|
157
|
+
* |RSA_PKCS1_PADDING| is most common.
|
152
158
|
*
|
153
159
|
* WARNING: this function is dangerous because it breaks the usual return value
|
154
160
|
* convention. Use |RSA_encrypt| instead. */
|
@@ -156,37 +162,25 @@ OPENSSL_EXPORT int RSA_public_encrypt(size_t flen, const uint8_t *from,
|
|
156
162
|
uint8_t *to, RSA *rsa, int padding);
|
157
163
|
|
158
164
|
/* RSA_private_decrypt decrypts |flen| bytes from |from| with the public key in
|
159
|
-
* |rsa| and writes the plaintext to |to|. The |to| buffer must have at
|
160
|
-
*
|
161
|
-
*
|
162
|
-
*
|
163
|
-
* |
|
165
|
+
* |rsa| and writes the plaintext to |to|. The |to| buffer must have at least
|
166
|
+
* |RSA_size| bytes of space. It returns the number of bytes written, or -1 on
|
167
|
+
* error. The |padding| argument must be one of the |RSA_*_PADDING| values. If
|
168
|
+
* in doubt, use |RSA_PKCS1_OAEP_PADDING| for new protocols. Passing
|
169
|
+
* |RSA_PKCS1_PADDING| into this function is deprecated and insecure. See
|
170
|
+
* |RSA_decrypt|.
|
164
171
|
*
|
165
172
|
* WARNING: this function is dangerous because it breaks the usual return value
|
166
173
|
* convention. Use |RSA_decrypt| instead. */
|
167
174
|
OPENSSL_EXPORT int RSA_private_decrypt(size_t flen, const uint8_t *from,
|
168
175
|
uint8_t *to, RSA *rsa, int padding);
|
169
176
|
|
170
|
-
/* RSA_message_index_PKCS1_type_2 performs the first step of a PKCS #1 padding
|
171
|
-
* check for decryption. If the |from_len| bytes pointed to at |from| are a
|
172
|
-
* valid PKCS #1 message, it returns one and sets |*out_index| to the start of
|
173
|
-
* the unpadded message. The unpadded message is a suffix of the input and has
|
174
|
-
* length |from_len - *out_index|. Otherwise, it returns zero and sets
|
175
|
-
* |*out_index| to zero. This function runs in time independent of the input
|
176
|
-
* data and is intended to be used directly to avoid Bleichenbacher's attack.
|
177
|
-
*
|
178
|
-
* WARNING: This function behaves differently from the usual OpenSSL convention
|
179
|
-
* in that it does NOT put an error on the queue in the error case. */
|
180
|
-
OPENSSL_EXPORT int RSA_message_index_PKCS1_type_2(const uint8_t *from,
|
181
|
-
size_t from_len,
|
182
|
-
size_t *out_index);
|
183
|
-
|
184
177
|
|
185
178
|
/* Signing / Verification */
|
186
179
|
|
187
|
-
/* RSA_sign signs |in_len| bytes of digest from |in| with |rsa|
|
188
|
-
* most, |RSA_size(rsa)| bytes to |out|. On
|
189
|
-
* number of bytes written is written to
|
180
|
+
/* RSA_sign signs |in_len| bytes of digest from |in| with |rsa| using
|
181
|
+
* RSASSA-PKCS1-v1_5. It writes, at most, |RSA_size(rsa)| bytes to |out|. On
|
182
|
+
* successful return, the actual number of bytes written is written to
|
183
|
+
* |*out_len|.
|
190
184
|
*
|
191
185
|
* The |hash_nid| argument identifies the hash function used to calculate |in|
|
192
186
|
* and is embedded in the resulting signature. For example, it might be
|
@@ -204,13 +198,14 @@ OPENSSL_EXPORT int RSA_sign(int hash_nid, const uint8_t *in,
|
|
204
198
|
* It returns 1 on success or zero on error.
|
205
199
|
*
|
206
200
|
* The |padding| argument must be one of the |RSA_*_PADDING| values. If in
|
207
|
-
* doubt, |RSA_PKCS1_PADDING| is the most common
|
201
|
+
* doubt, |RSA_PKCS1_PADDING| is the most common but |RSA_PKCS1_PSS_PADDING|
|
202
|
+
* (via the |EVP_PKEY| interface) is preferred for new protocols. */
|
208
203
|
OPENSSL_EXPORT int RSA_sign_raw(RSA *rsa, size_t *out_len, uint8_t *out,
|
209
204
|
size_t max_out, const uint8_t *in,
|
210
205
|
size_t in_len, int padding);
|
211
206
|
|
212
|
-
/* RSA_verify verifies that |sig_len| bytes from |sig| are a valid,
|
213
|
-
* signature of |msg_len| bytes at |msg| by |rsa|.
|
207
|
+
/* RSA_verify verifies that |sig_len| bytes from |sig| are a valid,
|
208
|
+
* RSASSA-PKCS1-v1_5 signature of |msg_len| bytes at |msg| by |rsa|.
|
214
209
|
*
|
215
210
|
* The |hash_nid| argument identifies the hash function used to calculate |in|
|
216
211
|
* and is embedded in the resulting signature in order to prevent hash
|
@@ -231,7 +226,8 @@ OPENSSL_EXPORT int RSA_verify(int hash_nid, const uint8_t *msg, size_t msg_len,
|
|
231
226
|
* It returns 1 on success or zero on error.
|
232
227
|
*
|
233
228
|
* The |padding| argument must be one of the |RSA_*_PADDING| values. If in
|
234
|
-
* doubt, |RSA_PKCS1_PADDING| is the most common
|
229
|
+
* doubt, |RSA_PKCS1_PADDING| is the most common but |RSA_PKCS1_PSS_PADDING|
|
230
|
+
* (via the |EVP_PKEY| interface) is preferred for new protocols. */
|
235
231
|
OPENSSL_EXPORT int RSA_verify_raw(RSA *rsa, size_t *out_len, uint8_t *out,
|
236
232
|
size_t max_out, const uint8_t *in,
|
237
233
|
size_t in_len, int padding);
|
@@ -240,7 +236,9 @@ OPENSSL_EXPORT int RSA_verify_raw(RSA *rsa, size_t *out_len, uint8_t *out,
|
|
240
236
|
* |rsa| and writes the encrypted data to |to|. The |to| buffer must have at
|
241
237
|
* least |RSA_size| bytes of space. It returns the number of bytes written, or
|
242
238
|
* -1 on error. The |padding| argument must be one of the |RSA_*_PADDING|
|
243
|
-
* values. If in doubt, |RSA_PKCS1_PADDING| is the most common
|
239
|
+
* values. If in doubt, |RSA_PKCS1_PADDING| is the most common but
|
240
|
+
* |RSA_PKCS1_PSS_PADDING| (via the |EVP_PKEY| interface) is preferred for new
|
241
|
+
* protocols.
|
244
242
|
*
|
245
243
|
* WARNING: this function is dangerous because it breaks the usual return value
|
246
244
|
* convention. Use |RSA_sign_raw| instead. */
|
@@ -251,7 +249,9 @@ OPENSSL_EXPORT int RSA_private_encrypt(size_t flen, const uint8_t *from,
|
|
251
249
|
* public key in |rsa| and writes the plaintext to |to|. The |to| buffer must
|
252
250
|
* have at least |RSA_size| bytes of space. It returns the number of bytes
|
253
251
|
* written, or -1 on error. The |padding| argument must be one of the
|
254
|
-
* |RSA_*_PADDING| values. If in doubt, |RSA_PKCS1_PADDING| is the most common
|
252
|
+
* |RSA_*_PADDING| values. If in doubt, |RSA_PKCS1_PADDING| is the most common
|
253
|
+
* but |RSA_PKCS1_PSS_PADDING| (via the |EVP_PKEY| interface) is preferred for
|
254
|
+
* new protocols.
|
255
255
|
*
|
256
256
|
* WARNING: this function is dangerous because it breaks the usual return value
|
257
257
|
* convention. Use |RSA_verify_raw| instead. */
|
@@ -441,10 +441,10 @@ OPENSSL_EXPORT RSA *RSA_generate_key(int bits, unsigned long e, void *callback,
|
|
441
441
|
|
442
442
|
/* d2i_RSAPublicKey parses an ASN.1, DER-encoded, RSA public key from |len|
|
443
443
|
* bytes at |*inp|. If |out| is not NULL then, on exit, a pointer to the result
|
444
|
-
* is in |*out|.
|
445
|
-
*
|
446
|
-
* successful exit, |*inp| is advanced past the DER structure.
|
447
|
-
* result or NULL on error. */
|
444
|
+
* is in |*out|. Note that, even if |*out| is already non-NULL on entry, it
|
445
|
+
* will not be written to. Rather, a fresh |RSA| is allocated and the previous
|
446
|
+
* one is freed. On successful exit, |*inp| is advanced past the DER structure.
|
447
|
+
* It returns the result or NULL on error. */
|
448
448
|
OPENSSL_EXPORT RSA *d2i_RSAPublicKey(RSA **out, const uint8_t **inp, long len);
|
449
449
|
|
450
450
|
/* i2d_RSAPublicKey marshals |in| to an ASN.1, DER structure. If |outp| is not
|
@@ -455,10 +455,10 @@ OPENSSL_EXPORT int i2d_RSAPublicKey(const RSA *in, uint8_t **outp);
|
|
455
455
|
|
456
456
|
/* d2i_RSAPrivateKey parses an ASN.1, DER-encoded, RSA private key from |len|
|
457
457
|
* bytes at |*inp|. If |out| is not NULL then, on exit, a pointer to the result
|
458
|
-
* is in |*out|.
|
459
|
-
*
|
460
|
-
* successful exit, |*inp| is advanced past the DER structure.
|
461
|
-
* result or NULL on error. */
|
458
|
+
* is in |*out|. Note that, even if |*out| is already non-NULL on entry, it
|
459
|
+
* will not be written to. Rather, a fresh |RSA| is allocated and the previous
|
460
|
+
* one is freed. On successful exit, |*inp| is advanced past the DER structure.
|
461
|
+
* It returns the result or NULL on error. */
|
462
462
|
OPENSSL_EXPORT RSA *d2i_RSAPrivateKey(RSA **out, const uint8_t **inp, long len);
|
463
463
|
|
464
464
|
/* i2d_RSAPrivateKey marshals |in| to an ASN.1, DER structure. If |outp| is not
|
@@ -1061,6 +1061,9 @@ OPENSSL_EXPORT int SSL_CIPHER_is_block_cipher(const SSL_CIPHER *cipher);
|
|
1061
1061
|
/* SSL_CIPHER_is_ECDSA returns one if |cipher| uses ECDSA. */
|
1062
1062
|
OPENSSL_EXPORT int SSL_CIPHER_is_ECDSA(const SSL_CIPHER *cipher);
|
1063
1063
|
|
1064
|
+
/* SSL_CIPHER_is_ECDHE returns one if |cipher| uses ECDHE. */
|
1065
|
+
OPENSSL_EXPORT int SSL_CIPHER_is_ECDHE(const SSL_CIPHER *cipher);
|
1066
|
+
|
1064
1067
|
/* SSL_CIPHER_get_min_version returns the minimum protocol version required
|
1065
1068
|
* for |cipher|. */
|
1066
1069
|
OPENSSL_EXPORT uint16_t SSL_CIPHER_get_min_version(const SSL_CIPHER *cipher);
|
@@ -2356,8 +2359,8 @@ OPENSSL_EXPORT void (*SSL_CTX_get_channel_id_cb(SSL_CTX *ctx))(
|
|
2356
2359
|
*
|
2357
2360
|
* See RFC 5764. */
|
2358
2361
|
|
2359
|
-
/*
|
2360
|
-
* extension. */
|
2362
|
+
/* srtp_protection_profile_st (aka |SRTP_PROTECTION_PROFILE|) is an SRTP
|
2363
|
+
* profile for use with the use_srtp extension. */
|
2361
2364
|
struct srtp_protection_profile_st {
|
2362
2365
|
const char *name;
|
2363
2366
|
unsigned long id;
|
@@ -2571,7 +2574,7 @@ OPENSSL_EXPORT int SSL_CTX_get_ex_new_index(long argl, void *argp,
|
|
2571
2574
|
CRYPTO_EX_free *free_func);
|
2572
2575
|
|
2573
2576
|
|
2574
|
-
/*
|
2577
|
+
/* Low-level record-layer state. */
|
2575
2578
|
|
2576
2579
|
/* SSL_get_rc4_state sets |*read_key| and |*write_key| to the RC4 states for
|
2577
2580
|
* the read and write directions. It returns one on success or zero if |ssl|
|
@@ -2589,6 +2592,28 @@ OPENSSL_EXPORT int SSL_get_ivs(const SSL *ssl, const uint8_t **out_read_iv,
|
|
2589
2592
|
const uint8_t **out_write_iv,
|
2590
2593
|
size_t *out_iv_len);
|
2591
2594
|
|
2595
|
+
/* SSL_get_key_block_len returns the length of |ssl|'s key block. */
|
2596
|
+
OPENSSL_EXPORT size_t SSL_get_key_block_len(const SSL *ssl);
|
2597
|
+
|
2598
|
+
/* SSL_generate_key_block generates |out_len| bytes of key material for |ssl|'s
|
2599
|
+
* current connection state. */
|
2600
|
+
OPENSSL_EXPORT int SSL_generate_key_block(const SSL *ssl, uint8_t *out,
|
2601
|
+
size_t out_len);
|
2602
|
+
|
2603
|
+
/* SSL_get_read_sequence returns, in TLS, the expected sequence number of the
|
2604
|
+
* next incoming record in the current epoch. In DTLS, it returns the maximum
|
2605
|
+
* sequence number received in the current epoch and includes the epoch number
|
2606
|
+
* in the two most significant bytes. */
|
2607
|
+
OPENSSL_EXPORT uint64_t SSL_get_read_sequence(const SSL *ssl);
|
2608
|
+
|
2609
|
+
/* SSL_get_write_sequence returns the sequence number of the next outgoing
|
2610
|
+
* record in the current epoch. In DTLS, it includes the epoch number in the
|
2611
|
+
* two most significant bytes. */
|
2612
|
+
OPENSSL_EXPORT uint64_t SSL_get_write_sequence(const SSL *ssl);
|
2613
|
+
|
2614
|
+
|
2615
|
+
/* Obscure functions. */
|
2616
|
+
|
2592
2617
|
/* SSL_get_structure_sizes returns the sizes of the SSL, SSL_CTX and
|
2593
2618
|
* SSL_SESSION structures so that a test can ensure that outside code agrees on
|
2594
2619
|
* these values. */
|
@@ -2693,15 +2718,17 @@ OPENSSL_EXPORT void SSL_set_max_cert_list(SSL *ssl, size_t max_cert_list);
|
|
2693
2718
|
|
2694
2719
|
/* SSL_CTX_set_max_send_fragment sets the maximum length, in bytes, of records
|
2695
2720
|
* sent by |ctx|. Beyond this length, handshake messages and application data
|
2696
|
-
* will be split into multiple records.
|
2697
|
-
|
2698
|
-
|
2721
|
+
* will be split into multiple records. It returns one on success or zero on
|
2722
|
+
* error. */
|
2723
|
+
OPENSSL_EXPORT int SSL_CTX_set_max_send_fragment(SSL_CTX *ctx,
|
2724
|
+
size_t max_send_fragment);
|
2699
2725
|
|
2700
|
-
/* SSL_set_max_send_fragment sets the maximum length, in bytes, of records
|
2701
|
-
*
|
2702
|
-
*
|
2703
|
-
|
2704
|
-
|
2726
|
+
/* SSL_set_max_send_fragment sets the maximum length, in bytes, of records sent
|
2727
|
+
* by |ssl|. Beyond this length, handshake messages and application data will
|
2728
|
+
* be split into multiple records. It returns one on success or zero on
|
2729
|
+
* error. */
|
2730
|
+
OPENSSL_EXPORT int SSL_set_max_send_fragment(SSL *ssl,
|
2731
|
+
size_t max_send_fragment);
|
2705
2732
|
|
2706
2733
|
/* ssl_early_callback_ctx is passed to certain callbacks that are called very
|
2707
2734
|
* early on during the server handshake. At this point, much of the SSL* hasn't
|
@@ -2857,6 +2884,30 @@ OPENSSL_EXPORT int SSL_get_shutdown(const SSL *ssl);
|
|
2857
2884
|
* |TLSEXT_hash_none|. */
|
2858
2885
|
OPENSSL_EXPORT uint8_t SSL_get_server_key_exchange_hash(const SSL *ssl);
|
2859
2886
|
|
2887
|
+
/* SSL_get_client_random writes up to |max_out| bytes of the most recent
|
2888
|
+
* handshake's client_random to |out| and returns the number of bytes written.
|
2889
|
+
* If |max_out| is zero, it returns the size of the client_random. */
|
2890
|
+
OPENSSL_EXPORT size_t SSL_get_client_random(const SSL *ssl, uint8_t *out,
|
2891
|
+
size_t max_out);
|
2892
|
+
|
2893
|
+
/* SSL_get_server_random writes up to |max_out| bytes of the most recent
|
2894
|
+
* handshake's server_random to |out| and returns the number of bytes written.
|
2895
|
+
* If |max_out| is zero, it returns the size of the server_random. */
|
2896
|
+
OPENSSL_EXPORT size_t SSL_get_server_random(const SSL *ssl, uint8_t *out,
|
2897
|
+
size_t max_out);
|
2898
|
+
|
2899
|
+
/* SSL_get_pending_cipher returns the cipher suite for the current handshake or
|
2900
|
+
* NULL if one has not been negotiated yet or there is no pending handshake. */
|
2901
|
+
OPENSSL_EXPORT const SSL_CIPHER *SSL_get_pending_cipher(const SSL *ssl);
|
2902
|
+
|
2903
|
+
/* SSL_CTX_set_retain_only_sha256_of_client_certs, on a server, sets whether
|
2904
|
+
* only the SHA-256 hash of peer's certificate should be saved in memory and in
|
2905
|
+
* the session. This can save memory, ticket size and session cache space. If
|
2906
|
+
* enabled, |SSL_get_peer_certificate| will return NULL after the handshake
|
2907
|
+
* completes. See the |peer_sha256| field of |SSL_SESSION| for the hash. */
|
2908
|
+
OPENSSL_EXPORT void SSL_CTX_set_retain_only_sha256_of_client_certs(SSL_CTX *ctx,
|
2909
|
+
int enable);
|
2910
|
+
|
2860
2911
|
|
2861
2912
|
/* Deprecated functions. */
|
2862
2913
|
|
@@ -3324,6 +3375,12 @@ struct ssl_cipher_st {
|
|
3324
3375
|
uint32_t algorithm_prf;
|
3325
3376
|
};
|
3326
3377
|
|
3378
|
+
typedef struct ssl_ecdh_method_st SSL_ECDH_METHOD;
|
3379
|
+
typedef struct ssl_ecdh_ctx_st {
|
3380
|
+
const SSL_ECDH_METHOD *method;
|
3381
|
+
void *data;
|
3382
|
+
} SSL_ECDH_CTX;
|
3383
|
+
|
3327
3384
|
#define SSL_MAX_SSL_SESSION_ID_LENGTH 32
|
3328
3385
|
#define SSL_MAX_SID_CTX_LENGTH 32
|
3329
3386
|
#define SSL_MAX_MASTER_KEY_LENGTH 48
|
@@ -3454,6 +3511,8 @@ struct ssl_cipher_preference_list_st {
|
|
3454
3511
|
uint8_t *in_group_flags;
|
3455
3512
|
};
|
3456
3513
|
|
3514
|
+
/* ssl_ctx_st (aka |SSL_CTX|) contains configuration common to several SSL
|
3515
|
+
* connections. */
|
3457
3516
|
struct ssl_ctx_st {
|
3458
3517
|
const SSL_PROTOCOL_METHOD *method;
|
3459
3518
|
|
@@ -3618,7 +3677,7 @@ struct ssl_ctx_st {
|
|
3618
3677
|
|
3619
3678
|
|
3620
3679
|
/* retain_only_sha256_of_client_certs is true if we should compute the SHA256
|
3621
|
-
* hash of the peer's
|
3680
|
+
* hash of the peer's certificate and then discard it to save memory and
|
3622
3681
|
* session space. Only effective on the server side. */
|
3623
3682
|
char retain_only_sha256_of_client_certs;
|
3624
3683
|
|
@@ -3697,6 +3756,11 @@ struct ssl_ctx_st {
|
|
3697
3756
|
* means that we'll accept Channel IDs from clients. For a client, means that
|
3698
3757
|
* we'll advertise support. */
|
3699
3758
|
unsigned tlsext_channel_id_enabled:1;
|
3759
|
+
|
3760
|
+
/* extra_certs is a dummy value included for compatibility.
|
3761
|
+
* TODO(agl): remove once node.js no longer references this. */
|
3762
|
+
STACK_OF(X509)* extra_certs;
|
3763
|
+
int freelist_max_len;
|
3700
3764
|
};
|
3701
3765
|
|
3702
3766
|
struct ssl_st {
|
@@ -3715,10 +3779,6 @@ struct ssl_st {
|
|
3715
3779
|
* TLS). */
|
3716
3780
|
const SSL_PROTOCOL_METHOD *method;
|
3717
3781
|
|
3718
|
-
/* enc_method is the method table corresponding to the current protocol
|
3719
|
-
* version. */
|
3720
|
-
const SSL3_ENC_METHOD *enc_method;
|
3721
|
-
|
3722
3782
|
/* There are 2 BIO's even though they are normally both the same. This is so
|
3723
3783
|
* data can be read and written to different handlers */
|
3724
3784
|
|
@@ -3766,9 +3826,6 @@ struct ssl_st {
|
|
3766
3826
|
struct ssl_cipher_preference_list_st *cipher_list;
|
3767
3827
|
STACK_OF(SSL_CIPHER) *cipher_list_by_id;
|
3768
3828
|
|
3769
|
-
SSL_AEAD_CTX *aead_read_ctx;
|
3770
|
-
SSL_AEAD_CTX *aead_write_ctx;
|
3771
|
-
|
3772
3829
|
/* session info */
|
3773
3830
|
|
3774
3831
|
/* client cert? */
|
@@ -3827,15 +3884,6 @@ struct ssl_st {
|
|
3827
3884
|
|
3828
3885
|
SSL_CTX *initial_ctx; /* initial ctx, used to store sessions */
|
3829
3886
|
|
3830
|
-
/* Next protocol negotiation. For the client, this is the protocol that we
|
3831
|
-
* sent in NextProtocol and is set when handling ServerHello extensions.
|
3832
|
-
*
|
3833
|
-
* For a server, this is the client's selected_protocol from NextProtocol and
|
3834
|
-
* is set when handling the NextProtocol message, before the Finished
|
3835
|
-
* message. */
|
3836
|
-
uint8_t *next_proto_negotiated;
|
3837
|
-
size_t next_proto_negotiated_len;
|
3838
|
-
|
3839
3887
|
/* srtp_profiles is the list of configured SRTP protection profiles for
|
3840
3888
|
* DTLS-SRTP. */
|
3841
3889
|
STACK_OF(SRTP_PROTECTION_PROFILE) *srtp_profiles;
|
@@ -3891,6 +3939,9 @@ struct ssl_st {
|
|
3891
3939
|
* means that we'll accept Channel IDs from clients. For a client, means that
|
3892
3940
|
* we'll advertise support. */
|
3893
3941
|
unsigned tlsext_channel_id_enabled:1;
|
3942
|
+
|
3943
|
+
/* TODO(agl): remove once node.js not longer references this. */
|
3944
|
+
int tlsext_status_type;
|
3894
3945
|
};
|
3895
3946
|
|
3896
3947
|
typedef struct ssl3_record_st {
|
@@ -3971,16 +4022,25 @@ typedef struct ssl3_state_st {
|
|
3971
4022
|
* received. */
|
3972
4023
|
uint8_t warning_alert_count;
|
3973
4024
|
|
4025
|
+
/* aead_read_ctx is the current read cipher state. */
|
4026
|
+
SSL_AEAD_CTX *aead_read_ctx;
|
4027
|
+
|
4028
|
+
/* aead_write_ctx is the current write cipher state. */
|
4029
|
+
SSL_AEAD_CTX *aead_write_ctx;
|
4030
|
+
|
4031
|
+
/* enc_method is the method table corresponding to the current protocol
|
4032
|
+
* version. */
|
4033
|
+
const SSL3_ENC_METHOD *enc_method;
|
4034
|
+
|
3974
4035
|
/* State pertaining to the pending handshake.
|
3975
4036
|
*
|
3976
4037
|
* TODO(davidben): State is current spread all over the place. Move
|
3977
4038
|
* pending handshake state here so it can be managed separately from
|
3978
4039
|
* established connection state in case of renegotiations. */
|
3979
4040
|
struct {
|
3980
|
-
|
3981
|
-
uint8_t finish_md[EVP_MAX_MD_SIZE * 2];
|
4041
|
+
uint8_t finish_md[EVP_MAX_MD_SIZE];
|
3982
4042
|
int finish_md_len;
|
3983
|
-
uint8_t peer_finish_md[EVP_MAX_MD_SIZE
|
4043
|
+
uint8_t peer_finish_md[EVP_MAX_MD_SIZE];
|
3984
4044
|
int peer_finish_md_len;
|
3985
4045
|
|
3986
4046
|
unsigned long message_size;
|
@@ -3988,9 +4048,6 @@ typedef struct ssl3_state_st {
|
|
3988
4048
|
|
3989
4049
|
/* used to hold the new cipher we are going to use */
|
3990
4050
|
const SSL_CIPHER *new_cipher;
|
3991
|
-
DH *dh;
|
3992
|
-
|
3993
|
-
EC_KEY *ecdh; /* holds short lived ECDH key */
|
3994
4051
|
|
3995
4052
|
/* used when SSL_ST_FLUSH_DATA is entered */
|
3996
4053
|
int next_state;
|
@@ -4040,13 +4097,12 @@ typedef struct ssl3_state_st {
|
|
4040
4097
|
uint8_t *certificate_types;
|
4041
4098
|
size_t num_certificate_types;
|
4042
4099
|
|
4043
|
-
int key_block_length;
|
4044
4100
|
uint8_t *key_block;
|
4101
|
+
uint8_t key_block_length;
|
4045
4102
|
|
4046
|
-
const EVP_AEAD *new_aead;
|
4047
4103
|
uint8_t new_mac_secret_len;
|
4104
|
+
uint8_t new_key_len;
|
4048
4105
|
uint8_t new_fixed_iv_len;
|
4049
|
-
uint8_t new_variable_iv_len;
|
4050
4106
|
|
4051
4107
|
/* Server-only: cert_request is true if a client certificate was
|
4052
4108
|
* requested. */
|
@@ -4091,11 +4147,12 @@ typedef struct ssl3_state_st {
|
|
4091
4147
|
* |TLSEXT_hash_none|. */
|
4092
4148
|
uint8_t server_key_exchange_hash;
|
4093
4149
|
|
4094
|
-
/*
|
4095
|
-
|
4150
|
+
/* ecdh_ctx is the current ECDH instance. */
|
4151
|
+
SSL_ECDH_CTX ecdh_ctx;
|
4096
4152
|
|
4097
|
-
/*
|
4098
|
-
|
4153
|
+
/* peer_key is the peer's ECDH key. */
|
4154
|
+
uint8_t *peer_key;
|
4155
|
+
uint16_t peer_key_len;
|
4099
4156
|
} tmp;
|
4100
4157
|
|
4101
4158
|
/* Connection binding to prevent renegotiation attacks */
|
@@ -4108,6 +4165,15 @@ typedef struct ssl3_state_st {
|
|
4108
4165
|
/* Set if we saw the Next Protocol Negotiation extension from our peer. */
|
4109
4166
|
int next_proto_neg_seen;
|
4110
4167
|
|
4168
|
+
/* Next protocol negotiation. For the client, this is the protocol that we
|
4169
|
+
* sent in NextProtocol and is set when handling ServerHello extensions.
|
4170
|
+
*
|
4171
|
+
* For a server, this is the client's selected_protocol from NextProtocol and
|
4172
|
+
* is set when handling the NextProtocol message, before the Finished
|
4173
|
+
* message. */
|
4174
|
+
uint8_t *next_proto_negotiated;
|
4175
|
+
size_t next_proto_negotiated_len;
|
4176
|
+
|
4111
4177
|
/* ALPN information
|
4112
4178
|
* (we are in the process of transitioning from NPN to ALPN.) */
|
4113
4179
|
|
@@ -4145,6 +4211,14 @@ OPENSSL_EXPORT int SSL_set_session_ticket_ext_cb(SSL *s, void *cb, void *arg);
|
|
4145
4211
|
OPENSSL_EXPORT int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method);
|
4146
4212
|
|
4147
4213
|
|
4214
|
+
/* Nodejs compatibility section (hidden).
|
4215
|
+
*
|
4216
|
+
* These defines exist for node.js, with the hope that we can eliminate the
|
4217
|
+
* need for them over time. */
|
4218
|
+
#define SSLerr(function, reason) \
|
4219
|
+
ERR_put_error(ERR_LIB_SSL, 0, reason, __FILE__, __LINE__)
|
4220
|
+
|
4221
|
+
|
4148
4222
|
/* Preprocessor compatibility section (hidden).
|
4149
4223
|
*
|
4150
4224
|
* Historically, a number of APIs were implemented in OpenSSL as macros and
|