grpc 1.10.0 → 1.11.0.pre2
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 -501
- data/include/grpc/byte_buffer.h +2 -0
- data/include/grpc/byte_buffer_reader.h +2 -0
- data/include/grpc/census.h +2 -0
- data/include/grpc/fork.h +2 -0
- data/include/grpc/grpc.h +10 -0
- data/include/grpc/grpc_cronet.h +2 -0
- data/include/grpc/grpc_posix.h +2 -1
- data/include/grpc/grpc_security.h +21 -0
- data/include/grpc/grpc_security_constants.h +1 -0
- data/include/grpc/impl/codegen/byte_buffer.h +2 -0
- data/include/grpc/impl/codegen/grpc_types.h +24 -0
- data/include/grpc/impl/codegen/slice.h +1 -1
- data/include/grpc/impl/codegen/sync.h +1 -0
- data/include/grpc/impl/codegen/sync_custom.h +2 -0
- data/include/grpc/impl/codegen/sync_generic.h +2 -0
- data/include/grpc/impl/codegen/sync_posix.h +2 -0
- data/include/grpc/impl/codegen/sync_windows.h +2 -0
- data/include/grpc/slice.h +2 -0
- data/include/grpc/slice_buffer.h +2 -0
- data/include/grpc/status.h +2 -0
- data/include/grpc/support/alloc.h +2 -2
- data/include/grpc/support/atm.h +2 -0
- data/include/grpc/support/atm_gcc_atomic.h +2 -0
- data/include/grpc/support/atm_gcc_sync.h +2 -0
- data/include/grpc/support/atm_windows.h +2 -0
- data/include/grpc/support/log.h +1 -1
- data/include/grpc/support/sync.h +2 -0
- data/include/grpc/support/sync_custom.h +2 -0
- data/include/grpc/support/sync_generic.h +2 -0
- data/include/grpc/support/sync_posix.h +2 -0
- data/include/grpc/support/sync_windows.h +2 -0
- data/include/grpc/support/time.h +2 -0
- data/src/boringssl/err_data.c +444 -438
- data/src/core/ext/census/grpc_context.cc +2 -0
- data/src/core/ext/filters/client_channel/backup_poller.cc +13 -8
- data/src/core/ext/filters/client_channel/backup_poller.h +3 -2
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +2 -0
- data/src/core/ext/filters/client_channel/client_channel.cc +1988 -433
- data/src/core/ext/filters/client_channel/client_channel.h +2 -0
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +2 -0
- data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -0
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +2 -27
- data/src/core/ext/filters/client_channel/connector.cc +2 -0
- data/src/core/ext/filters/client_channel/connector.h +2 -0
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +2 -0
- data/src/core/ext/filters/client_channel/http_proxy.cc +2 -0
- data/src/core/ext/filters/client_channel/lb_policy.cc +2 -0
- data/src/core/ext/filters/client_channel/lb_policy.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +96 -78
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +9 -17
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +70 -62
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +4 -2
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -2
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +2 -0
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +2 -0
- data/src/core/ext/filters/client_channel/lb_policy_factory.cc +3 -1
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +2 -0
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +2 -1
- data/src/core/ext/filters/client_channel/method_params.cc +178 -0
- data/src/core/ext/filters/client_channel/method_params.h +74 -0
- data/src/core/ext/filters/client_channel/parse_address.cc +17 -13
- data/src/core/ext/filters/client_channel/parse_address.h +2 -0
- data/src/core/ext/filters/client_channel/proxy_mapper.cc +2 -0
- data/src/core/ext/filters/client_channel/proxy_mapper.h +2 -0
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -0
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +2 -0
- data/src/core/ext/filters/client_channel/resolver.cc +2 -0
- data/src/core/ext/filters/client_channel/resolver.h +6 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +24 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +1 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +55 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +8 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +1 -0
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +30 -3
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +2 -1
- data/src/core/ext/filters/client_channel/resolver_factory.h +2 -0
- data/src/core/ext/filters/client_channel/resolver_registry.cc +2 -0
- data/src/core/ext/filters/client_channel/resolver_registry.h +2 -0
- data/src/core/ext/filters/client_channel/retry_throttle.cc +102 -120
- data/src/core/ext/filters/client_channel/retry_throttle.h +52 -25
- data/src/core/ext/filters/client_channel/subchannel.cc +14 -4
- data/src/core/ext/filters/client_channel/subchannel.h +10 -1
- data/src/core/ext/filters/client_channel/subchannel_index.cc +2 -0
- data/src/core/ext/filters/client_channel/subchannel_index.h +2 -0
- data/src/core/ext/filters/client_channel/uri_parser.cc +2 -1
- data/src/core/ext/filters/client_channel/uri_parser.h +2 -1
- data/src/core/ext/filters/deadline/deadline_filter.cc +2 -1
- data/src/core/ext/filters/deadline/deadline_filter.h +2 -0
- data/src/core/ext/filters/http/client/http_client_filter.cc +27 -25
- data/src/core/ext/filters/http/client/http_client_filter.h +2 -0
- data/src/core/ext/filters/http/client_authority_filter.cc +156 -0
- data/src/core/ext/filters/http/client_authority_filter.h +34 -0
- data/src/core/ext/filters/http/http_filters_plugin.cc +2 -0
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +21 -22
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +2 -0
- data/src/core/ext/filters/http/server/http_server_filter.cc +11 -8
- data/src/core/ext/filters/http/server/http_server_filter.h +2 -0
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +2 -0
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +2 -0
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +2 -0
- data/src/core/ext/filters/max_age/max_age_filter.cc +2 -0
- data/src/core/ext/filters/max_age/max_age_filter.h +2 -0
- data/src/core/ext/filters/message_size/message_size_filter.cc +52 -49
- data/src/core/ext/filters/message_size/message_size_filter.h +2 -0
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +5 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +2 -0
- data/src/core/ext/filters/workarounds/workaround_utils.cc +2 -0
- data/src/core/ext/filters/workarounds/workaround_utils.h +2 -0
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +3 -1
- data/src/core/ext/transport/chttp2/alpn/alpn.h +2 -0
- data/src/core/ext/transport/chttp2/client/authority.cc +42 -0
- data/src/core/ext/transport/chttp2/client/authority.h +36 -0
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +2 -0
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +2 -0
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +10 -3
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +2 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +37 -25
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +2 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +3 -1
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +2 -1
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +2 -1
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +3 -1
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -0
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +2 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +152 -182
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +2 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +1 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +15 -19
- data/src/core/ext/transport/chttp2/transport/frame_data.h +7 -5
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +2 -2
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +2 -1
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -2
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +2 -1
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +2 -1
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -2
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +2 -1
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +2 -0
- data/src/core/ext/transport/chttp2/transport/huffsyms.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +3 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -0
- data/src/core/ext/transport/chttp2/transport/internal.h +60 -24
- data/src/core/ext/transport/chttp2/transport/parsing.cc +2 -4
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/varint.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +10 -6
- data/src/core/ext/transport/inproc/inproc_plugin.cc +2 -0
- data/src/core/ext/transport/inproc/inproc_transport.cc +20 -23
- data/src/core/ext/transport/inproc/inproc_transport.h +2 -0
- data/src/core/lib/avl/avl.cc +2 -0
- data/src/core/lib/avl/avl.h +2 -0
- data/src/core/lib/backoff/backoff.cc +2 -0
- data/src/core/lib/backoff/backoff.h +2 -0
- data/src/core/lib/channel/channel_args.h +2 -0
- data/src/core/lib/channel/channel_stack.cc +3 -1
- data/src/core/lib/channel/channel_stack.h +2 -0
- data/src/core/lib/channel/channel_stack_builder.cc +2 -0
- data/src/core/lib/channel/channel_stack_builder.h +2 -0
- data/src/core/lib/channel/channel_trace.cc +239 -0
- data/src/core/lib/channel/channel_trace.h +133 -0
- data/src/core/lib/channel/channel_trace_registry.cc +80 -0
- data/src/core/lib/channel/channel_trace_registry.h +43 -0
- data/src/core/lib/channel/connected_channel.cc +2 -0
- data/src/core/lib/channel/connected_channel.h +2 -0
- data/src/core/lib/channel/handshaker.cc +2 -0
- data/src/core/lib/channel/handshaker.h +2 -0
- data/src/core/lib/channel/handshaker_factory.cc +2 -0
- data/src/core/lib/channel/handshaker_factory.h +2 -1
- data/src/core/lib/channel/handshaker_registry.cc +2 -0
- data/src/core/lib/channel/handshaker_registry.h +2 -1
- data/src/core/lib/channel/status_util.cc +100 -0
- data/src/core/lib/channel/status_util.h +58 -0
- data/src/core/lib/compression/algorithm_metadata.h +2 -0
- data/src/core/lib/compression/compression.cc +2 -0
- data/src/core/lib/compression/compression_internal.cc +2 -0
- data/src/core/lib/compression/compression_internal.h +2 -0
- data/src/core/lib/compression/message_compress.cc +2 -0
- data/src/core/lib/compression/message_compress.h +2 -0
- data/src/core/lib/compression/stream_compression.cc +2 -0
- data/src/core/lib/compression/stream_compression.h +2 -0
- data/src/core/lib/compression/stream_compression_gzip.cc +2 -0
- data/src/core/lib/compression/stream_compression_gzip.h +2 -0
- data/src/core/lib/compression/stream_compression_identity.cc +2 -1
- data/src/core/lib/compression/stream_compression_identity.h +2 -0
- data/src/core/lib/debug/stats.cc +2 -0
- data/src/core/lib/debug/stats.h +2 -0
- data/src/core/lib/debug/stats_data.cc +3 -1
- data/src/core/lib/debug/stats_data.h +2 -0
- data/src/core/lib/debug/trace.cc +2 -0
- data/src/core/lib/debug/trace.h +2 -1
- data/src/core/lib/gpr/alloc.cc +2 -1
- data/src/core/lib/gpr/arena.cc +47 -0
- data/src/core/lib/gpr/arena.h +2 -0
- data/src/core/lib/gpr/atm.cc +2 -0
- data/src/core/lib/gpr/cpu_linux.cc +5 -1
- data/src/core/lib/gpr/cpu_posix.cc +1 -1
- data/src/core/lib/gpr/env.h +2 -0
- data/src/core/lib/gpr/fork.cc +2 -0
- data/src/core/lib/gpr/host_port.cc +2 -0
- data/src/core/lib/gpr/log.cc +2 -1
- data/src/core/lib/gpr/log_linux.cc +1 -0
- data/src/core/lib/gpr/mpscq.cc +2 -0
- data/src/core/lib/gpr/mpscq.h +2 -0
- data/src/core/lib/gpr/murmur_hash.cc +2 -0
- data/src/core/lib/gpr/spinlock.h +2 -0
- data/src/core/lib/gpr/string.cc +2 -1
- data/src/core/lib/gpr/string.h +2 -2
- data/src/core/lib/gpr/sync.cc +2 -0
- data/src/core/lib/gpr/time.cc +2 -0
- data/src/core/lib/gpr/time_posix.cc +1 -0
- data/src/core/lib/gpr/time_precise.cc +2 -0
- data/src/core/lib/gpr/time_precise.h +2 -0
- data/src/core/lib/gpr/tls_gcc.h +2 -0
- data/src/core/lib/gpr/tls_msvc.h +2 -0
- data/src/core/lib/gpr/tls_pthread.h +2 -0
- data/src/core/lib/gpr/tmpfile.h +2 -0
- data/src/core/lib/gprpp/atomic_with_atm.h +2 -0
- data/src/core/lib/gprpp/atomic_with_std.h +2 -0
- data/src/core/lib/gprpp/inlined_vector.h +2 -0
- data/src/core/lib/gprpp/manual_constructor.h +3 -1
- data/src/core/lib/gprpp/memory.h +5 -3
- data/src/core/lib/gprpp/orphanable.h +3 -0
- data/src/core/lib/gprpp/ref_counted.h +4 -0
- data/src/core/lib/gprpp/ref_counted_ptr.h +3 -0
- data/src/core/lib/gprpp/thd.h +135 -0
- data/src/core/lib/gprpp/thd_posix.cc +209 -0
- data/src/core/lib/gprpp/thd_windows.cc +162 -0
- data/src/core/lib/http/format_request.cc +2 -0
- data/src/core/lib/http/format_request.h +2 -0
- data/src/core/lib/http/httpcli.cc +2 -0
- data/src/core/lib/http/httpcli.h +2 -0
- data/src/core/lib/http/httpcli_security_connector.cc +16 -7
- data/src/core/lib/http/parser.cc +2 -0
- data/src/core/lib/http/parser.h +2 -1
- data/src/core/lib/iomgr/call_combiner.cc +2 -0
- data/src/core/lib/iomgr/call_combiner.h +2 -1
- data/src/core/lib/iomgr/combiner.cc +2 -0
- data/src/core/lib/iomgr/combiner.h +2 -0
- data/src/core/lib/iomgr/endpoint.cc +4 -0
- data/src/core/lib/iomgr/endpoint.h +2 -0
- data/src/core/lib/iomgr/endpoint_pair.h +2 -0
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -0
- data/src/core/lib/iomgr/endpoint_pair_uv.cc +2 -0
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +7 -4
- data/src/core/lib/iomgr/error.h +2 -0
- data/src/core/lib/iomgr/error_internal.h +2 -0
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +2 -0
- data/src/core/lib/iomgr/ev_epoll1_linux.h +2 -0
- data/src/core/lib/iomgr/ev_epollex_linux.cc +4 -18
- data/src/core/lib/iomgr/ev_epollex_linux.h +2 -0
- data/src/core/lib/iomgr/ev_epollsig_linux.cc +2 -0
- data/src/core/lib/iomgr/ev_epollsig_linux.h +2 -0
- data/src/core/lib/iomgr/ev_poll_posix.cc +61 -31
- data/src/core/lib/iomgr/ev_poll_posix.h +2 -0
- data/src/core/lib/iomgr/ev_posix.cc +35 -19
- data/src/core/lib/iomgr/ev_posix.h +2 -0
- data/src/core/lib/iomgr/ev_windows.cc +2 -0
- data/src/core/lib/iomgr/exec_ctx.cc +3 -1
- data/src/core/lib/iomgr/exec_ctx.h +21 -9
- data/src/core/lib/iomgr/executor.cc +13 -11
- data/src/core/lib/iomgr/executor.h +2 -0
- data/src/core/lib/iomgr/fork_posix.cc +4 -2
- data/src/core/lib/iomgr/fork_windows.cc +2 -0
- data/src/core/lib/iomgr/gethostname_fallback.cc +2 -0
- data/src/core/lib/iomgr/gethostname_host_name_max.cc +2 -0
- data/src/core/lib/iomgr/gethostname_sysconf.cc +2 -0
- data/src/core/lib/iomgr/iocp_windows.cc +3 -1
- data/src/core/lib/iomgr/iocp_windows.h +3 -0
- data/src/core/lib/iomgr/iomgr.cc +2 -1
- data/src/core/lib/iomgr/iomgr.h +2 -0
- data/src/core/lib/iomgr/iomgr_custom.cc +63 -0
- data/src/core/lib/iomgr/iomgr_custom.h +47 -0
- data/src/core/lib/iomgr/iomgr_internal.cc +43 -0
- data/src/core/lib/iomgr/iomgr_internal.h +14 -0
- data/src/core/lib/iomgr/iomgr_posix.cc +30 -3
- data/src/core/lib/iomgr/iomgr_posix.h +2 -0
- data/src/core/lib/iomgr/iomgr_uv.cc +17 -20
- data/src/core/lib/iomgr/iomgr_windows.cc +29 -3
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +2 -0
- data/src/core/lib/iomgr/is_epollexclusive_available.h +2 -0
- data/src/core/lib/iomgr/load_file.cc +2 -0
- data/src/core/lib/iomgr/load_file.h +2 -0
- data/src/core/lib/iomgr/lockfree_event.cc +2 -0
- data/src/core/lib/iomgr/lockfree_event.h +14 -1
- data/src/core/lib/iomgr/nameser.h +2 -0
- data/src/core/lib/iomgr/network_status_tracker.cc +3 -1
- data/src/core/lib/iomgr/network_status_tracker.h +2 -0
- data/src/core/lib/iomgr/polling_entity.cc +2 -0
- data/src/core/lib/iomgr/polling_entity.h +2 -0
- data/src/core/lib/iomgr/pollset.cc +56 -0
- data/src/core/lib/iomgr/pollset.h +19 -0
- data/src/core/lib/iomgr/pollset_custom.cc +106 -0
- data/src/core/lib/iomgr/{timer_generic.h → pollset_custom.h} +15 -17
- data/src/core/lib/iomgr/pollset_set.cc +55 -0
- data/src/core/lib/iomgr/pollset_set.h +13 -0
- data/src/core/lib/iomgr/pollset_set_custom.cc +48 -0
- data/src/core/lib/iomgr/{pollset_uv.h → pollset_set_custom.h} +6 -7
- data/src/core/lib/iomgr/pollset_set_windows.cc +17 -10
- data/src/core/lib/iomgr/pollset_set_windows.h +2 -0
- data/src/core/lib/iomgr/pollset_uv.cc +42 -105
- data/src/core/lib/iomgr/pollset_windows.cc +20 -12
- data/src/core/lib/iomgr/pollset_windows.h +2 -0
- data/src/core/lib/iomgr/port.h +10 -19
- data/src/core/lib/iomgr/resolve_address.cc +50 -0
- data/src/core/lib/iomgr/resolve_address.h +39 -10
- data/src/core/lib/iomgr/resolve_address_custom.cc +187 -0
- data/src/core/lib/iomgr/resolve_address_custom.h +43 -0
- data/src/core/lib/iomgr/resolve_address_posix.cc +10 -22
- data/src/core/lib/iomgr/resolve_address_windows.cc +10 -22
- data/src/core/lib/iomgr/resource_quota.cc +2 -0
- data/src/core/lib/iomgr/resource_quota.h +3 -5
- data/src/core/lib/iomgr/sockaddr.h +3 -11
- data/src/core/lib/iomgr/sockaddr_custom.h +54 -0
- data/src/core/lib/iomgr/sockaddr_posix.h +26 -0
- data/src/core/lib/iomgr/sockaddr_utils.cc +91 -71
- data/src/core/lib/iomgr/sockaddr_utils.h +4 -0
- data/src/core/lib/iomgr/sockaddr_windows.h +21 -0
- data/src/core/lib/iomgr/socket_factory_posix.cc +2 -0
- data/src/core/lib/iomgr/socket_factory_posix.h +2 -0
- data/src/core/lib/iomgr/socket_mutator.cc +2 -0
- data/src/core/lib/iomgr/socket_mutator.h +2 -0
- data/src/core/lib/iomgr/socket_utils.h +11 -0
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +15 -6
- data/src/core/lib/iomgr/socket_utils_linux.cc +4 -4
- data/src/core/lib/iomgr/socket_utils_posix.cc +3 -2
- data/src/core/lib/iomgr/socket_utils_posix.h +2 -0
- data/src/core/lib/iomgr/socket_utils_uv.cc +13 -2
- data/src/core/lib/iomgr/socket_utils_windows.cc +10 -0
- data/src/core/lib/iomgr/socket_windows.cc +2 -0
- data/src/core/lib/iomgr/socket_windows.h +2 -1
- data/src/core/lib/iomgr/sys_epoll_wrapper.h +2 -0
- data/src/core/lib/iomgr/tcp_client.cc +36 -0
- data/src/core/lib/iomgr/tcp_client.h +13 -0
- data/src/core/lib/iomgr/tcp_client_custom.cc +151 -0
- data/src/core/lib/iomgr/tcp_client_posix.cc +11 -24
- data/src/core/lib/iomgr/tcp_client_posix.h +2 -0
- data/src/core/lib/iomgr/tcp_client_windows.cc +10 -23
- data/src/core/lib/iomgr/tcp_custom.cc +365 -0
- data/src/core/lib/iomgr/tcp_custom.h +81 -0
- data/src/core/lib/iomgr/tcp_posix.cc +3 -1
- data/src/core/lib/iomgr/tcp_posix.h +2 -0
- data/src/core/lib/iomgr/tcp_server.cc +73 -0
- data/src/core/lib/iomgr/tcp_server.h +24 -0
- data/src/core/lib/iomgr/tcp_server_custom.cc +472 -0
- data/src/core/lib/iomgr/tcp_server_posix.cc +41 -23
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +2 -0
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -7
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +8 -6
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +2 -0
- data/src/core/lib/iomgr/tcp_server_windows.cc +43 -21
- data/src/core/lib/iomgr/tcp_uv.cc +308 -314
- data/src/core/lib/iomgr/tcp_windows.cc +3 -1
- data/src/core/lib/iomgr/tcp_windows.h +2 -0
- data/src/core/lib/iomgr/time_averaged_stats.cc +2 -0
- data/src/core/lib/iomgr/timer.cc +45 -0
- data/src/core/lib/iomgr/timer.h +36 -15
- data/src/core/lib/iomgr/timer_custom.cc +93 -0
- data/src/core/lib/iomgr/timer_custom.h +43 -0
- data/src/core/lib/iomgr/timer_generic.cc +12 -10
- data/src/core/lib/iomgr/timer_heap.cc +2 -4
- data/src/core/lib/iomgr/timer_heap.h +2 -0
- data/src/core/lib/iomgr/timer_manager.cc +12 -20
- data/src/core/lib/iomgr/timer_manager.h +2 -0
- data/src/core/lib/iomgr/timer_uv.cc +15 -49
- data/src/core/lib/iomgr/udp_server.cc +271 -230
- data/src/core/lib/iomgr/udp_server.h +44 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +10 -7
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -0
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +2 -0
- data/src/core/lib/iomgr/wakeup_fd_cv.cc +3 -1
- data/src/core/lib/iomgr/wakeup_fd_cv.h +2 -0
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +2 -0
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +2 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +2 -0
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +2 -0
- data/src/core/lib/iomgr/wakeup_fd_posix.h +2 -0
- data/src/core/lib/json/json.cc +38 -0
- data/src/core/lib/json/json.h +22 -1
- data/src/core/lib/json/json_reader.cc +2 -2
- data/src/core/lib/json/json_reader.h +1 -0
- data/src/core/lib/json/json_string.cc +2 -0
- data/src/core/lib/json/json_writer.cc +2 -2
- data/src/core/lib/json/json_writer.h +2 -0
- data/src/core/lib/profiling/basic_timers.cc +11 -9
- data/src/core/lib/profiling/timers.h +6 -3
- data/src/core/lib/security/context/security_context.cc +2 -0
- data/src/core/lib/security/context/security_context.h +2 -0
- data/src/core/lib/security/credentials/alts/alts_credentials.cc +119 -0
- data/src/core/lib/security/credentials/alts/alts_credentials.h +102 -0
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +72 -0
- data/src/core/lib/security/credentials/alts/check_gcp_environment.h +57 -0
- data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +67 -0
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +33 -0
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +114 -0
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +126 -0
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +46 -0
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +112 -0
- data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +58 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +2 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -0
- data/src/core/lib/security/credentials/credentials.cc +2 -0
- data/src/core/lib/security/credentials/credentials.h +2 -0
- data/src/core/lib/security/credentials/credentials_metadata.cc +2 -0
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -3
- data/src/core/lib/security/credentials/fake/fake_credentials.h +5 -0
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +2 -0
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +2 -0
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -0
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -0
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -0
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -0
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -0
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +2 -0
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +2 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +2 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +2 -0
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +11 -2
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +2 -0
- data/src/core/lib/security/security_connector/alts_security_connector.cc +287 -0
- data/src/core/lib/security/security_connector/alts_security_connector.h +69 -0
- data/src/core/lib/security/security_connector/security_connector.cc +174 -74
- data/src/core/lib/security/security_connector/security_connector.h +41 -7
- data/src/core/lib/security/transport/auth_filters.h +2 -0
- data/src/core/lib/security/transport/client_auth_filter.cc +14 -28
- data/src/core/lib/security/transport/secure_endpoint.cc +2 -0
- data/src/core/lib/security/transport/secure_endpoint.h +2 -0
- data/src/core/lib/security/transport/security_handshaker.cc +2 -0
- data/src/core/lib/security/transport/security_handshaker.h +2 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +2 -0
- data/src/core/lib/security/transport/target_authority_table.cc +75 -0
- data/src/core/lib/security/transport/{lb_targets_info.h → target_authority_table.h} +16 -8
- data/src/core/lib/security/transport/tsi_error.cc +2 -0
- data/src/core/lib/security/transport/tsi_error.h +2 -0
- data/src/core/lib/security/util/json_util.cc +2 -0
- data/src/core/lib/security/util/json_util.h +2 -0
- data/src/core/lib/slice/b64.cc +2 -0
- data/src/core/lib/slice/b64.h +2 -0
- data/src/core/lib/slice/percent_encoding.cc +2 -0
- data/src/core/lib/slice/percent_encoding.h +2 -0
- data/src/core/lib/slice/slice.cc +2 -0
- data/src/core/lib/slice/slice_buffer.cc +3 -1
- data/src/core/lib/slice/slice_hash_table.h +178 -45
- data/src/core/lib/slice/slice_intern.cc +2 -0
- data/src/core/lib/slice/slice_internal.h +2 -2
- data/src/core/lib/slice/slice_string_helpers.cc +2 -0
- data/src/core/lib/slice/slice_string_helpers.h +2 -1
- data/src/core/lib/slice/slice_weak_hash_table.h +105 -0
- data/src/core/lib/surface/api_trace.cc +3 -1
- data/src/core/lib/surface/api_trace.h +2 -0
- data/src/core/lib/surface/byte_buffer.cc +3 -0
- data/src/core/lib/surface/byte_buffer_reader.cc +3 -0
- data/src/core/lib/surface/call.cc +46 -80
- data/src/core/lib/surface/call.h +2 -0
- data/src/core/lib/surface/call_details.cc +2 -0
- data/src/core/lib/surface/call_log_batch.cc +2 -0
- data/src/core/lib/surface/call_test_only.h +2 -0
- data/src/core/lib/surface/channel.cc +72 -41
- data/src/core/lib/surface/channel.h +2 -0
- data/src/core/lib/surface/channel_init.cc +2 -0
- data/src/core/lib/surface/channel_init.h +2 -0
- data/src/core/lib/surface/channel_ping.cc +2 -0
- data/src/core/lib/surface/channel_stack_type.cc +3 -2
- data/src/core/lib/surface/channel_stack_type.h +2 -0
- data/src/core/lib/surface/completion_queue.h +2 -0
- data/src/core/lib/surface/completion_queue_factory.cc +3 -1
- data/src/core/lib/surface/completion_queue_factory.h +2 -0
- data/src/core/lib/surface/event_string.cc +2 -0
- data/src/core/lib/surface/event_string.h +2 -0
- data/src/core/lib/surface/init.cc +5 -2
- data/src/core/lib/surface/init_secure.cc +5 -2
- data/src/core/lib/surface/lame_client.cc +7 -5
- data/src/core/lib/surface/lame_client.h +2 -0
- data/src/core/lib/surface/metadata_array.cc +2 -0
- data/src/core/lib/surface/server.cc +2 -0
- data/src/core/lib/surface/server.h +2 -0
- data/src/core/lib/surface/validate_metadata.cc +2 -1
- data/src/core/lib/surface/validate_metadata.h +2 -0
- data/src/core/lib/surface/version.cc +4 -2
- data/src/core/lib/transport/bdp_estimator.cc +2 -0
- data/src/core/lib/transport/byte_stream.cc +94 -116
- data/src/core/lib/transport/byte_stream.h +111 -78
- data/src/core/lib/transport/connectivity_state.cc +2 -0
- data/src/core/lib/transport/connectivity_state.h +3 -1
- data/src/core/lib/transport/error_utils.cc +2 -0
- data/src/core/lib/transport/error_utils.h +2 -0
- data/src/core/lib/transport/metadata.cc +2 -0
- data/src/core/lib/transport/metadata.h +3 -1
- data/src/core/lib/transport/metadata_batch.cc +26 -0
- data/src/core/lib/transport/metadata_batch.h +12 -1
- data/src/core/lib/transport/pid_controller.cc +2 -0
- data/src/core/lib/transport/pid_controller.h +2 -0
- data/src/core/lib/transport/service_config.cc +21 -175
- data/src/core/lib/transport/service_config.h +223 -35
- data/src/core/lib/transport/static_metadata.cc +310 -294
- data/src/core/lib/transport/static_metadata.h +96 -82
- data/src/core/lib/transport/status_conversion.cc +2 -0
- data/src/core/lib/transport/status_conversion.h +3 -0
- data/src/core/lib/transport/status_metadata.cc +54 -0
- data/src/core/lib/{iomgr/timer_uv.h → transport/status_metadata.h} +10 -12
- data/src/core/lib/transport/timeout_encoding.cc +2 -1
- data/src/core/lib/transport/timeout_encoding.h +2 -0
- data/src/core/lib/transport/transport.cc +3 -1
- data/src/core/lib/transport/transport.h +33 -7
- data/src/core/lib/transport/transport_impl.h +2 -0
- data/src/core/lib/transport/transport_op_string.cc +10 -3
- data/src/core/plugin_registry/grpc_plugin_registry.cc +10 -4
- data/src/core/tsi/alts/crypt/aes_gcm.cc +687 -0
- data/src/core/tsi/alts/crypt/gsec.cc +189 -0
- data/src/core/tsi/alts/crypt/gsec.h +454 -0
- data/src/core/tsi/alts/frame_protector/alts_counter.cc +118 -0
- data/src/core/tsi/alts/frame_protector/alts_counter.h +98 -0
- data/src/core/tsi/alts/frame_protector/alts_crypter.cc +66 -0
- data/src/core/tsi/alts/frame_protector/alts_crypter.h +255 -0
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +407 -0
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +55 -0
- data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +114 -0
- data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +114 -0
- data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +105 -0
- data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +103 -0
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +218 -0
- data/src/core/tsi/alts/frame_protector/frame_handler.h +236 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +316 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +137 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_service_api.cc +520 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_service_api.h +323 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.cc +143 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_service_api_util.h +149 -0
- data/src/core/tsi/alts/handshaker/alts_tsi_event.cc +73 -0
- data/src/core/tsi/alts/handshaker/alts_tsi_event.h +93 -0
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +483 -0
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +83 -0
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +52 -0
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +58 -0
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +52 -0
- data/src/core/tsi/alts/handshaker/altscontext.pb.c +48 -0
- data/src/core/tsi/alts/handshaker/altscontext.pb.h +64 -0
- data/src/core/tsi/alts/handshaker/handshaker.pb.c +123 -0
- data/src/core/tsi/alts/handshaker/handshaker.pb.h +255 -0
- data/src/core/tsi/alts/handshaker/transport_security_common.pb.c +50 -0
- data/src/core/tsi/alts/handshaker/transport_security_common.pb.h +78 -0
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +196 -0
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +163 -0
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +180 -0
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +52 -0
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +144 -0
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +49 -0
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +91 -0
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +174 -0
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +100 -0
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +476 -0
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +199 -0
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +296 -0
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +52 -0
- data/src/core/tsi/alts_transport_security.cc +3 -1
- data/src/core/tsi/alts_transport_security.h +4 -2
- data/src/core/tsi/fake_transport_security.cc +2 -1
- data/src/core/tsi/fake_transport_security.h +2 -0
- data/src/core/tsi/ssl/session_cache/ssl_session.h +73 -0
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +58 -0
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +211 -0
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +93 -0
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +76 -0
- data/src/core/tsi/ssl_transport_security.cc +266 -62
- data/src/core/tsi/ssl_transport_security.h +128 -6
- data/src/core/tsi/ssl_types.h +2 -0
- data/src/core/tsi/transport_security.cc +2 -0
- data/src/core/tsi/transport_security.h +2 -0
- data/src/core/tsi/transport_security_adapter.cc +2 -0
- data/src/core/tsi/transport_security_adapter.h +2 -0
- data/src/core/tsi/transport_security_grpc.cc +2 -0
- data/src/core/tsi/transport_security_grpc.h +2 -0
- data/src/core/tsi/transport_security_interface.h +2 -0
- data/src/ruby/ext/grpc/extconf.rb +1 -2
- data/src/ruby/ext/grpc/rb_call.c +1 -13
- data/src/ruby/ext/grpc/rb_channel.c +6 -6
- data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +10 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +15 -0
- data/src/ruby/lib/grpc/core/time_consts.rb +1 -1
- data/src/ruby/lib/grpc/generic/bidi_call.rb +19 -8
- data/src/ruby/lib/grpc/generic/client_stub.rb +6 -10
- data/src/ruby/lib/grpc/generic/interceptors.rb +1 -1
- data/src/ruby/lib/grpc/generic/rpc_server.rb +2 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +133 -0
- data/src/ruby/spec/pb/package_with_underscore/checker_spec.rb +54 -0
- data/src/ruby/spec/pb/package_with_underscore/data.proto +23 -0
- data/src/ruby/spec/pb/package_with_underscore/service.proto +23 -0
- data/third_party/address_sorting/address_sorting.c +369 -0
- data/third_party/address_sorting/address_sorting_internal.h +70 -0
- data/third_party/address_sorting/address_sorting_posix.c +97 -0
- data/third_party/address_sorting/address_sorting_windows.c +55 -0
- data/third_party/address_sorting/include/address_sorting/address_sorting.h +110 -0
- data/third_party/boringssl/crypto/asn1/a_enum.c +20 -9
- data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +3 -0
- data/third_party/boringssl/crypto/asn1/a_int.c +19 -8
- data/third_party/boringssl/crypto/asn1/a_object.c +0 -128
- data/third_party/boringssl/crypto/asn1/asn1_locl.h +3 -0
- data/third_party/boringssl/crypto/asn1/tasn_fre.c +2 -4
- data/third_party/boringssl/crypto/asn1/tasn_new.c +3 -2
- data/third_party/boringssl/crypto/bn_extra/bn_asn1.c +0 -16
- data/third_party/boringssl/crypto/buf/buf.c +14 -0
- data/third_party/boringssl/crypto/bytestring/cbb.c +93 -0
- data/third_party/boringssl/crypto/conf/conf.c +2 -2
- data/third_party/boringssl/crypto/cpu-intel.c +17 -17
- data/third_party/boringssl/crypto/crypto.c +16 -4
- data/third_party/boringssl/crypto/curve25519/spake25519.c +11 -11
- data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +1 -1
- data/third_party/boringssl/crypto/dsa/dsa.c +9 -21
- data/third_party/boringssl/crypto/ec_extra/ec_asn1.c +2 -2
- data/third_party/boringssl/crypto/ecdsa_extra/ecdsa_asn1.c +1 -8
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +2 -23
- data/third_party/boringssl/crypto/ex_data.c +0 -1
- data/third_party/boringssl/crypto/fipsmodule/bn/add.c +7 -11
- data/third_party/boringssl/crypto/fipsmodule/bn/asm/x86_64-gcc.c +19 -16
- data/third_party/boringssl/crypto/fipsmodule/bn/cmp.c +15 -0
- data/third_party/boringssl/crypto/fipsmodule/bn/div.c +53 -46
- data/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.c +242 -85
- data/third_party/boringssl/crypto/fipsmodule/bn/generic.c +42 -47
- data/third_party/boringssl/crypto/fipsmodule/bn/internal.h +176 -34
- data/third_party/boringssl/crypto/fipsmodule/bn/montgomery.c +118 -65
- data/third_party/boringssl/crypto/fipsmodule/bn/mul.c +94 -61
- data/third_party/boringssl/crypto/fipsmodule/bn/random.c +79 -63
- data/third_party/boringssl/crypto/fipsmodule/bn/shift.c +26 -28
- data/third_party/boringssl/crypto/fipsmodule/cipher/cipher.c +2 -0
- data/third_party/boringssl/crypto/fipsmodule/ec/ec.c +250 -149
- data/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.c +0 -27
- data/third_party/boringssl/crypto/fipsmodule/ec/internal.h +54 -20
- data/third_party/boringssl/crypto/fipsmodule/ec/oct.c +3 -3
- data/third_party/boringssl/crypto/fipsmodule/ec/p224-64.c +7 -41
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-64.c +6 -40
- data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64.c +17 -122
- data/third_party/boringssl/crypto/fipsmodule/ec/simple.c +3 -64
- data/third_party/boringssl/crypto/fipsmodule/ec/wnaf.c +27 -9
- data/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.c +203 -205
- data/third_party/boringssl/crypto/fipsmodule/modes/cbc.c +14 -15
- data/third_party/boringssl/crypto/fipsmodule/modes/cfb.c +12 -8
- data/third_party/boringssl/crypto/fipsmodule/modes/ctr.c +4 -3
- data/third_party/boringssl/crypto/fipsmodule/modes/gcm.c +25 -36
- data/third_party/boringssl/crypto/fipsmodule/modes/internal.h +10 -0
- data/third_party/boringssl/crypto/fipsmodule/rsa/internal.h +0 -4
- data/third_party/boringssl/crypto/fipsmodule/rsa/rsa.c +2 -0
- data/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.c +9 -19
- data/third_party/boringssl/crypto/lhash/lhash.c +19 -0
- data/third_party/boringssl/crypto/obj/obj.c +29 -69
- data/third_party/boringssl/crypto/pem/pem_lib.c +2 -2
- data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +4 -55
- data/third_party/boringssl/crypto/rsa_extra/rsa_asn1.c +3 -22
- data/third_party/boringssl/crypto/x509/by_dir.c +1 -3
- data/third_party/boringssl/crypto/x509/by_file.c +0 -1
- data/third_party/boringssl/crypto/x509/x509_lu.c +0 -1
- data/third_party/boringssl/crypto/x509/x509_obj.c +1 -3
- data/third_party/boringssl/crypto/x509/x509_txt.c +0 -6
- data/third_party/boringssl/crypto/x509/x509_vfy.c +0 -1
- data/third_party/boringssl/crypto/x509/x509_vpm.c +0 -1
- data/third_party/boringssl/crypto/x509/x_algor.c +2 -2
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +3 -4
- data/third_party/boringssl/crypto/x509v3/v3_genn.c +1 -0
- data/third_party/boringssl/crypto/x509v3/v3_info.c +1 -2
- data/third_party/boringssl/crypto/x509v3/v3_lib.c +15 -7
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +41 -2
- data/third_party/boringssl/include/openssl/asn1.h +0 -1
- data/third_party/boringssl/include/openssl/base.h +1 -1
- data/third_party/boringssl/include/openssl/bio.h +5 -2
- data/third_party/boringssl/include/openssl/bn.h +2 -17
- data/third_party/boringssl/include/openssl/buf.h +4 -0
- data/third_party/boringssl/include/openssl/bytestring.h +11 -0
- data/third_party/boringssl/include/openssl/chacha.h +5 -1
- data/third_party/boringssl/include/openssl/cipher.h +10 -0
- data/third_party/boringssl/include/openssl/conf.h +4 -8
- data/third_party/boringssl/include/openssl/dsa.h +2 -18
- data/third_party/boringssl/include/openssl/ec.h +5 -5
- data/third_party/boringssl/include/openssl/ecdsa.h +10 -28
- data/third_party/boringssl/include/openssl/evp.h +0 -4
- data/third_party/boringssl/include/openssl/lhash.h +1 -18
- data/third_party/boringssl/include/openssl/obj.h +1 -0
- data/third_party/boringssl/include/openssl/rsa.h +3 -4
- data/third_party/boringssl/include/openssl/ssl.h +35 -54
- data/third_party/boringssl/include/openssl/ssl3.h +2 -0
- data/third_party/boringssl/include/openssl/stack.h +1 -1
- data/third_party/boringssl/include/openssl/tls1.h +1 -16
- data/third_party/boringssl/include/openssl/x509.h +3 -2
- data/third_party/boringssl/include/openssl/x509_vfy.h +0 -2
- data/third_party/boringssl/include/openssl/x509v3.h +1 -0
- data/third_party/boringssl/ssl/custom_extensions.cc +1 -1
- data/third_party/boringssl/ssl/d1_both.cc +120 -129
- data/third_party/boringssl/ssl/d1_lib.cc +23 -21
- data/third_party/boringssl/ssl/d1_pkt.cc +39 -143
- data/third_party/boringssl/ssl/dtls_method.cc +16 -23
- data/third_party/boringssl/ssl/dtls_record.cc +11 -4
- data/third_party/boringssl/ssl/handshake.cc +109 -40
- data/third_party/boringssl/ssl/handshake_client.cc +104 -96
- data/third_party/boringssl/ssl/handshake_server.cc +62 -72
- data/third_party/boringssl/ssl/internal.h +397 -318
- data/third_party/boringssl/ssl/s3_both.cc +173 -191
- data/third_party/boringssl/ssl/s3_lib.cc +26 -34
- data/third_party/boringssl/ssl/s3_pkt.cc +105 -247
- data/third_party/boringssl/ssl/ssl_asn1.cc +22 -22
- data/third_party/boringssl/ssl/ssl_buffer.cc +98 -108
- data/third_party/boringssl/ssl/ssl_cert.cc +12 -1
- data/third_party/boringssl/ssl/ssl_cipher.cc +23 -28
- data/third_party/boringssl/ssl/ssl_key_share.cc +11 -6
- data/third_party/boringssl/ssl/ssl_lib.cc +190 -113
- data/third_party/boringssl/ssl/ssl_privkey.cc +76 -106
- data/third_party/boringssl/ssl/ssl_session.cc +3 -3
- data/third_party/boringssl/ssl/ssl_stat.cc +3 -3
- data/third_party/boringssl/ssl/ssl_transcript.cc +38 -22
- data/third_party/boringssl/ssl/ssl_versions.cc +64 -31
- data/third_party/boringssl/ssl/t1_enc.cc +137 -154
- data/third_party/boringssl/ssl/t1_lib.cc +463 -478
- data/third_party/boringssl/ssl/tls13_both.cc +57 -58
- data/third_party/boringssl/ssl/tls13_client.cc +256 -121
- data/third_party/boringssl/ssl/tls13_enc.cc +187 -72
- data/third_party/boringssl/ssl/tls13_server.cc +187 -86
- data/third_party/boringssl/ssl/tls_method.cc +20 -30
- data/third_party/boringssl/ssl/tls_record.cc +77 -40
- data/third_party/boringssl/third_party/fiat/curve25519.c +5062 -0
- data/third_party/boringssl/{crypto/curve25519 → third_party/fiat}/internal.h +40 -27
- data/third_party/nanopb/pb.h +1 -1
- metadata +147 -45
- data/src/core/lib/gpr/thd.cc +0 -49
- data/src/core/lib/gpr/thd.h +0 -71
- data/src/core/lib/gpr/thd_posix.cc +0 -154
- data/src/core/lib/gpr/thd_windows.cc +0 -107
- data/src/core/lib/iomgr/iomgr_uv.h +0 -37
- data/src/core/lib/iomgr/pollset_set_uv.cc +0 -43
- data/src/core/lib/iomgr/resolve_address_uv.cc +0 -284
- data/src/core/lib/iomgr/tcp_client_uv.cc +0 -175
- data/src/core/lib/iomgr/tcp_server_uv.cc +0 -471
- data/src/core/lib/iomgr/tcp_uv.h +0 -51
- data/src/core/lib/security/transport/lb_targets_info.cc +0 -59
- data/src/core/lib/slice/slice_hash_table.cc +0 -145
- data/third_party/boringssl/crypto/curve25519/curve25519.c +0 -4938
@@ -317,10 +317,6 @@ OPENSSL_EXPORT int BN_get_u64(const BIGNUM *bn, uint64_t *out);
|
|
317
317
|
// the result to |ret|. It returns one on success and zero on failure.
|
318
318
|
OPENSSL_EXPORT int BN_parse_asn1_unsigned(CBS *cbs, BIGNUM *ret);
|
319
319
|
|
320
|
-
// BN_parse_asn1_unsigned_buggy acts like |BN_parse_asn1_unsigned| but tolerates
|
321
|
-
// some invalid encodings. Do not use this function.
|
322
|
-
OPENSSL_EXPORT int BN_parse_asn1_unsigned_buggy(CBS *cbs, BIGNUM *ret);
|
323
|
-
|
324
320
|
// BN_marshal_asn1 marshals |bn| as a non-negative DER INTEGER and appends the
|
325
321
|
// result to |cbb|. It returns one on success and zero on failure.
|
326
322
|
OPENSSL_EXPORT int BN_marshal_asn1(CBB *cbb, const BIGNUM *bn);
|
@@ -491,8 +487,8 @@ OPENSSL_EXPORT int BN_set_bit(BIGNUM *a, int n);
|
|
491
487
|
// zero on allocation failure.
|
492
488
|
OPENSSL_EXPORT int BN_clear_bit(BIGNUM *a, int n);
|
493
489
|
|
494
|
-
// BN_is_bit_set returns
|
495
|
-
//
|
490
|
+
// BN_is_bit_set returns one if the |n|th least-significant bit in |a| exists
|
491
|
+
// and is set. Otherwise, it returns zero.
|
496
492
|
OPENSSL_EXPORT int BN_is_bit_set(const BIGNUM *a, int n);
|
497
493
|
|
498
494
|
// BN_mask_bits truncates |a| so that it is only |n| bits long. It returns one
|
@@ -622,17 +618,6 @@ OPENSSL_EXPORT int BN_rand_range_ex(BIGNUM *r, BN_ULONG min_inclusive,
|
|
622
618
|
// BN_pseudo_rand_range is an alias for BN_rand_range.
|
623
619
|
OPENSSL_EXPORT int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range);
|
624
620
|
|
625
|
-
// BN_generate_dsa_nonce generates a random number 0 <= out < range. Unlike
|
626
|
-
// BN_rand_range, it also includes the contents of |priv| and |message| in the
|
627
|
-
// generation so that an RNG failure isn't fatal as long as |priv| remains
|
628
|
-
// secret. This is intended for use in DSA and ECDSA where an RNG weakness
|
629
|
-
// leads directly to private key exposure unless this function is used.
|
630
|
-
// It returns one on success and zero on error.
|
631
|
-
OPENSSL_EXPORT int BN_generate_dsa_nonce(BIGNUM *out, const BIGNUM *range,
|
632
|
-
const BIGNUM *priv,
|
633
|
-
const uint8_t *message,
|
634
|
-
size_t message_len, BN_CTX *ctx);
|
635
|
-
|
636
621
|
// BN_GENCB holds a callback function that is used by generation functions that
|
637
622
|
// can take a very long time to complete. Use |BN_GENCB_set| to initialise a
|
638
623
|
// |BN_GENCB| structure.
|
@@ -93,6 +93,10 @@ OPENSSL_EXPORT size_t BUF_MEM_grow(BUF_MEM *buf, size_t len);
|
|
93
93
|
// allocated memory on free.
|
94
94
|
OPENSSL_EXPORT size_t BUF_MEM_grow_clean(BUF_MEM *buf, size_t len);
|
95
95
|
|
96
|
+
// BUF_MEM_append appends |in| to |buf|. It returns one on success and zero on
|
97
|
+
// error.
|
98
|
+
OPENSSL_EXPORT int BUF_MEM_append(BUF_MEM *buf, const void *in, size_t len);
|
99
|
+
|
96
100
|
// BUF_strdup returns an allocated, duplicate of |str|.
|
97
101
|
OPENSSL_EXPORT char *BUF_strdup(const char *str);
|
98
102
|
|
@@ -447,6 +447,17 @@ OPENSSL_EXPORT void CBB_discard_child(CBB *cbb);
|
|
447
447
|
// error.
|
448
448
|
OPENSSL_EXPORT int CBB_add_asn1_uint64(CBB *cbb, uint64_t value);
|
449
449
|
|
450
|
+
// CBB_add_asn1_oid_from_text decodes |len| bytes from |text| as an ASCII OID
|
451
|
+
// representation, e.g. "1.2.840.113554.4.1.72585", and writes the DER-encoded
|
452
|
+
// contents to |cbb|. It returns one on success and zero on malloc failure or if
|
453
|
+
// |text| was invalid. It does not include the OBJECT IDENTIFER framing, only
|
454
|
+
// the element's contents.
|
455
|
+
//
|
456
|
+
// This function considers OID strings with components which do not fit in a
|
457
|
+
// |uint32_t| to be invalid.
|
458
|
+
OPENSSL_EXPORT int CBB_add_asn1_oid_from_text(CBB *cbb, const char *text,
|
459
|
+
size_t len);
|
460
|
+
|
450
461
|
|
451
462
|
#if defined(__cplusplus)
|
452
463
|
} // extern C
|
@@ -17,10 +17,14 @@
|
|
17
17
|
|
18
18
|
#include <openssl/base.h>
|
19
19
|
|
20
|
-
#
|
20
|
+
#if defined(__cplusplus)
|
21
21
|
extern "C" {
|
22
22
|
#endif
|
23
23
|
|
24
|
+
// ChaCha20.
|
25
|
+
//
|
26
|
+
// ChaCha20 is a stream cipher. See https://tools.ietf.org/html/rfc7539.
|
27
|
+
|
24
28
|
|
25
29
|
// CRYPTO_chacha_20 encrypts |in_len| bytes from |in| with the given key and
|
26
30
|
// nonce and writes the result to |out|. If |in| and |out| alias, they must be
|
@@ -417,6 +417,16 @@ OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_gcm(void);
|
|
417
417
|
// EVP_aes_128_cfb128 is only available in decrepit.
|
418
418
|
OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_128_cfb128(void);
|
419
419
|
|
420
|
+
// The following flags do nothing and are included only to make it easier to
|
421
|
+
// compile code with BoringSSL.
|
422
|
+
#define EVP_CIPH_CCM_MODE 0
|
423
|
+
#define EVP_CIPH_WRAP_MODE 0
|
424
|
+
#define EVP_CIPHER_CTX_FLAG_WRAP_ALLOW 0
|
425
|
+
|
426
|
+
// EVP_CIPHER_CTX_set_flags does nothing.
|
427
|
+
OPENSSL_EXPORT void EVP_CIPHER_CTX_set_flags(const EVP_CIPHER_CTX *ctx,
|
428
|
+
uint32_t flags);
|
429
|
+
|
420
430
|
|
421
431
|
// Private functions.
|
422
432
|
|
@@ -141,13 +141,9 @@ int CONF_parse_list(const char *list, char sep, int remove_whitespace,
|
|
141
141
|
#define CONF_MFLAGS_DEFAULT_SECTION 0
|
142
142
|
#define CONF_MFLAGS_IGNORE_MISSING_FILE 0
|
143
143
|
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
// NULL indicating the default. BoringSSL does not support configuration files,
|
148
|
-
// so this stub emulates the "default" no-op file but intentionally breaks
|
149
|
-
// compilation of consumers actively attempting to use this subsystem.
|
150
|
-
OPENSSL_EXPORT int CONF_modules_load_file(CONF_MUST_BE_NULL *filename,
|
144
|
+
// CONF_modules_load_file returns one. BoringSSL is defined to have no config
|
145
|
+
// file options, thus loading from |filename| always succeeds by doing nothing.
|
146
|
+
OPENSSL_EXPORT int CONF_modules_load_file(const char *filename,
|
151
147
|
const char *appname,
|
152
148
|
unsigned long flags);
|
153
149
|
|
@@ -155,7 +151,7 @@ OPENSSL_EXPORT int CONF_modules_load_file(CONF_MUST_BE_NULL *filename,
|
|
155
151
|
OPENSSL_EXPORT void CONF_modules_free(void);
|
156
152
|
|
157
153
|
// OPENSSL_config does nothing.
|
158
|
-
OPENSSL_EXPORT void OPENSSL_config(
|
154
|
+
OPENSSL_EXPORT void OPENSSL_config(const char *config_name);
|
159
155
|
|
160
156
|
// OPENSSL_no_config does nothing.
|
161
157
|
OPENSSL_EXPORT void OPENSSL_no_config(void);
|
@@ -172,7 +172,7 @@ OPENSSL_EXPORT void DSA_SIG_free(DSA_SIG *sig);
|
|
172
172
|
// DSA_do_sign returns a signature of the hash in |digest| by the key in |dsa|
|
173
173
|
// and returns an allocated, DSA_SIG structure, or NULL on error.
|
174
174
|
OPENSSL_EXPORT DSA_SIG *DSA_do_sign(const uint8_t *digest, size_t digest_len,
|
175
|
-
DSA *dsa);
|
175
|
+
const DSA *dsa);
|
176
176
|
|
177
177
|
// DSA_do_verify verifies that |sig| is a valid signature, by the public key in
|
178
178
|
// |dsa|, of the hash in |digest|. It returns one if so, zero if invalid and -1
|
@@ -212,7 +212,7 @@ OPENSSL_EXPORT int DSA_do_check_signature(int *out_valid, const uint8_t *digest,
|
|
212
212
|
// (The |type| argument is ignored.)
|
213
213
|
OPENSSL_EXPORT int DSA_sign(int type, const uint8_t *digest, size_t digest_len,
|
214
214
|
uint8_t *out_sig, unsigned int *out_siglen,
|
215
|
-
DSA *dsa);
|
215
|
+
const DSA *dsa);
|
216
216
|
|
217
217
|
// DSA_verify verifies that |sig| is a valid, ASN.1 signature, by the public
|
218
218
|
// key in |dsa|, of the hash in |digest|. It returns one if so, zero if invalid
|
@@ -284,19 +284,6 @@ OPENSSL_EXPORT DSA *DSA_parse_parameters(CBS *cbs);
|
|
284
284
|
OPENSSL_EXPORT int DSA_marshal_parameters(CBB *cbb, const DSA *dsa);
|
285
285
|
|
286
286
|
|
287
|
-
// Precomputation.
|
288
|
-
|
289
|
-
// DSA_sign_setup precomputes the message independent part of the DSA signature
|
290
|
-
// and writes them to |*out_kinv| and |*out_r|. Returns one on success, zero on
|
291
|
-
// error.
|
292
|
-
//
|
293
|
-
// TODO(fork): decide what to do with this. Since making DSA* opaque there's no
|
294
|
-
// way for the user to install them. Also, it forces the DSA* not to be const
|
295
|
-
// when passing to the signing function.
|
296
|
-
OPENSSL_EXPORT int DSA_sign_setup(const DSA *dsa, BN_CTX *ctx,
|
297
|
-
BIGNUM **out_kinv, BIGNUM **out_r);
|
298
|
-
|
299
|
-
|
300
287
|
// Conversion.
|
301
288
|
|
302
289
|
// DSA_dup_DH returns a |DH| constructed from the parameters of |dsa|. This is
|
@@ -411,9 +398,6 @@ struct dsa_st {
|
|
411
398
|
BIGNUM *pub_key; // y public key
|
412
399
|
BIGNUM *priv_key; // x private key
|
413
400
|
|
414
|
-
BIGNUM *kinv; // Signing pre-calc
|
415
|
-
BIGNUM *r; // Signing pre-calc
|
416
|
-
|
417
401
|
int flags;
|
418
402
|
// Normally used to cache montgomery values
|
419
403
|
CRYPTO_MUTEX method_mont_lock;
|
@@ -162,10 +162,6 @@ OPENSSL_EXPORT EC_POINT *EC_POINT_new(const EC_GROUP *group);
|
|
162
162
|
// EC_POINT_free frees |point| and the data that it points to.
|
163
163
|
OPENSSL_EXPORT void EC_POINT_free(EC_POINT *point);
|
164
164
|
|
165
|
-
// EC_POINT_clear_free clears the data that |point| points to, frees it and
|
166
|
-
// then frees |point| itself.
|
167
|
-
OPENSSL_EXPORT void EC_POINT_clear_free(EC_POINT *point);
|
168
|
-
|
169
165
|
// EC_POINT_copy sets |*dest| equal to |*src|. It returns one on success and
|
170
166
|
// zero otherwise.
|
171
167
|
OPENSSL_EXPORT int EC_POINT_copy(EC_POINT *dest, const EC_POINT *src);
|
@@ -306,7 +302,7 @@ OPENSSL_EXPORT EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p,
|
|
306
302
|
// EC_GROUP_set_generator sets the generator for |group| to |generator|, which
|
307
303
|
// must have the given order and cofactor. It may only be used with |EC_GROUP|
|
308
304
|
// objects returned by |EC_GROUP_new_curve_GFp| and may only be used once on
|
309
|
-
// each group.
|
305
|
+
// each group. |generator| must have been created using |group|.
|
310
306
|
OPENSSL_EXPORT int EC_GROUP_set_generator(EC_GROUP *group,
|
311
307
|
const EC_POINT *generator,
|
312
308
|
const BIGNUM *order,
|
@@ -350,6 +346,9 @@ typedef struct {
|
|
350
346
|
OPENSSL_EXPORT size_t EC_get_builtin_curves(EC_builtin_curve *out_curves,
|
351
347
|
size_t max_num_curves);
|
352
348
|
|
349
|
+
// EC_POINT_clear_free calls |EC_POINT_free|.
|
350
|
+
OPENSSL_EXPORT void EC_POINT_clear_free(EC_POINT *point);
|
351
|
+
|
353
352
|
// Old code expects to get EC_KEY from ec.h.
|
354
353
|
#include <openssl/ec_key.h>
|
355
354
|
|
@@ -403,5 +402,6 @@ BORINGSSL_MAKE_DELETER(EC_GROUP, EC_GROUP_free)
|
|
403
402
|
#define EC_R_GROUP_MISMATCH 130
|
404
403
|
#define EC_R_INVALID_COFACTOR 131
|
405
404
|
#define EC_R_PUBLIC_KEY_VALIDATION_FAILED 132
|
405
|
+
#define EC_R_INVALID_SCALAR 133
|
406
406
|
|
407
407
|
#endif // OPENSSL_HEADER_EC_H
|
@@ -106,6 +106,16 @@ OPENSSL_EXPORT ECDSA_SIG *ECDSA_SIG_new(void);
|
|
106
106
|
// ECDSA_SIG_free frees |sig| its member |BIGNUM|s.
|
107
107
|
OPENSSL_EXPORT void ECDSA_SIG_free(ECDSA_SIG *sig);
|
108
108
|
|
109
|
+
// ECDSA_SIG_get0 sets |*out_r| and |*out_s|, if non-NULL, to the two
|
110
|
+
// components of |sig|.
|
111
|
+
OPENSSL_EXPORT void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **out_r,
|
112
|
+
const BIGNUM **out_s);
|
113
|
+
|
114
|
+
// ECDSA_SIG_set0 sets |sig|'s components to |r| and |s|, neither of which may
|
115
|
+
// be NULL. On success, it takes ownership of each argument and returns one.
|
116
|
+
// Otherwise, it returns zero.
|
117
|
+
OPENSSL_EXPORT int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s);
|
118
|
+
|
109
119
|
// ECDSA_do_sign signs |digest_len| bytes from |digest| with |key| and returns
|
110
120
|
// the resulting signature structure, or NULL on error.
|
111
121
|
OPENSSL_EXPORT ECDSA_SIG *ECDSA_do_sign(const uint8_t *digest,
|
@@ -118,34 +128,6 @@ OPENSSL_EXPORT int ECDSA_do_verify(const uint8_t *digest, size_t digest_len,
|
|
118
128
|
const ECDSA_SIG *sig, const EC_KEY *key);
|
119
129
|
|
120
130
|
|
121
|
-
// Signing with precomputation.
|
122
|
-
//
|
123
|
-
// Parts of the ECDSA signature can be independent of the message to be signed
|
124
|
-
// thus it's possible to precompute them and reduce the signing latency.
|
125
|
-
//
|
126
|
-
// TODO(fork): remove support for this as it cannot support safe-randomness.
|
127
|
-
|
128
|
-
// ECDSA_sign_setup precomputes parts of an ECDSA signing operation. It sets
|
129
|
-
// |*kinv| and |*rp| to the precomputed values and uses the |ctx| argument, if
|
130
|
-
// not NULL. It returns one on success and zero otherwise.
|
131
|
-
OPENSSL_EXPORT int ECDSA_sign_setup(const EC_KEY *eckey, BN_CTX *ctx,
|
132
|
-
BIGNUM **kinv, BIGNUM **rp);
|
133
|
-
|
134
|
-
// ECDSA_do_sign_ex is the same as |ECDSA_do_sign| but takes precomputed values
|
135
|
-
// as generated by |ECDSA_sign_setup|.
|
136
|
-
OPENSSL_EXPORT ECDSA_SIG *ECDSA_do_sign_ex(const uint8_t *digest,
|
137
|
-
size_t digest_len,
|
138
|
-
const BIGNUM *kinv, const BIGNUM *rp,
|
139
|
-
const EC_KEY *eckey);
|
140
|
-
|
141
|
-
// ECDSA_sign_ex is the same as |ECDSA_sign| but takes precomputed values as
|
142
|
-
// generated by |ECDSA_sign_setup|.
|
143
|
-
OPENSSL_EXPORT int ECDSA_sign_ex(int type, const uint8_t *digest,
|
144
|
-
size_t digest_len, uint8_t *sig,
|
145
|
-
unsigned int *sig_len, const BIGNUM *kinv,
|
146
|
-
const BIGNUM *rp, const EC_KEY *eckey);
|
147
|
-
|
148
|
-
|
149
131
|
// ASN.1 functions.
|
150
132
|
|
151
133
|
// ECDSA_SIG_parse parses a DER-encoded ECDSA-Sig-Value structure from |cbs| and
|
@@ -225,10 +225,6 @@ OPENSSL_EXPORT EVP_PKEY *EVP_parse_private_key(CBS *cbs);
|
|
225
225
|
// success and zero on error.
|
226
226
|
OPENSSL_EXPORT int EVP_marshal_private_key(CBB *cbb, const EVP_PKEY *key);
|
227
227
|
|
228
|
-
// EVP_set_buggy_rsa_parser configures whether |RSA_parse_public_key_buggy| is
|
229
|
-
// used by |EVP_parse_public_key|. By default, it is not used.
|
230
|
-
OPENSSL_EXPORT void EVP_set_buggy_rsa_parser(int buggy);
|
231
|
-
|
232
228
|
|
233
229
|
// Signing
|
234
230
|
|
@@ -125,24 +125,7 @@ typedef int (*lhash_cmp_func)(const void *a, const void *b);
|
|
125
125
|
// uint32_t.
|
126
126
|
typedef uint32_t (*lhash_hash_func)(const void *a);
|
127
127
|
|
128
|
-
typedef struct lhash_st
|
129
|
-
// num_items contains the total number of items in the hash table.
|
130
|
-
size_t num_items;
|
131
|
-
// buckets is an array of |num_buckets| pointers. Each points to the head of
|
132
|
-
// a chain of LHASH_ITEM objects that have the same hash value, mod
|
133
|
-
// |num_buckets|.
|
134
|
-
LHASH_ITEM **buckets;
|
135
|
-
// num_buckets contains the length of |buckets|. This value is always >=
|
136
|
-
// kMinNumBuckets.
|
137
|
-
size_t num_buckets;
|
138
|
-
// callback_depth contains the current depth of |lh_doall| or |lh_doall_arg|
|
139
|
-
// calls. If non-zero then this suppresses resizing of the |buckets| array,
|
140
|
-
// which would otherwise disrupt the iteration.
|
141
|
-
unsigned callback_depth;
|
142
|
-
|
143
|
-
lhash_cmp_func comp;
|
144
|
-
lhash_hash_func hash;
|
145
|
-
} _LHASH;
|
128
|
+
typedef struct lhash_st _LHASH;
|
146
129
|
|
147
130
|
// lh_new returns a new, empty hash table or NULL on error.
|
148
131
|
OPENSSL_EXPORT _LHASH *lh_new(lhash_hash_func hash, lhash_cmp_func comp);
|
@@ -89,6 +89,9 @@ OPENSSL_EXPORT int RSA_up_ref(RSA *rsa);
|
|
89
89
|
|
90
90
|
// Properties.
|
91
91
|
|
92
|
+
// RSA_bits returns the size of |rsa|, in bits.
|
93
|
+
OPENSSL_EXPORT unsigned RSA_bits(const RSA *rsa);
|
94
|
+
|
92
95
|
// RSA_get0_key sets |*out_n|, |*out_e|, and |*out_d|, if non-NULL, to |rsa|'s
|
93
96
|
// modulus, public exponent, and private exponent, respectively. If |rsa| is a
|
94
97
|
// public key, the private exponent will be set to NULL.
|
@@ -428,10 +431,6 @@ OPENSSL_EXPORT int RSA_add_pkcs1_prefix(uint8_t **out_msg, size_t *out_msg_len,
|
|
428
431
|
// error.
|
429
432
|
OPENSSL_EXPORT RSA *RSA_parse_public_key(CBS *cbs);
|
430
433
|
|
431
|
-
// RSA_parse_public_key_buggy behaves like |RSA_parse_public_key|, but it
|
432
|
-
// tolerates some invalid encodings. Do not use this function.
|
433
|
-
OPENSSL_EXPORT RSA *RSA_parse_public_key_buggy(CBS *cbs);
|
434
|
-
|
435
434
|
// RSA_public_key_from_bytes parses |in| as a DER-encoded RSAPublicKey structure
|
436
435
|
// (RFC 3447). It returns a newly-allocated |RSA| or NULL on error.
|
437
436
|
OPENSSL_EXPORT RSA *RSA_public_key_from_bytes(const uint8_t *in, size_t in_len);
|
@@ -146,7 +146,6 @@
|
|
146
146
|
|
147
147
|
#include <openssl/bio.h>
|
148
148
|
#include <openssl/buf.h>
|
149
|
-
#include <openssl/lhash.h>
|
150
149
|
#include <openssl/pem.h>
|
151
150
|
#include <openssl/span.h>
|
152
151
|
#include <openssl/ssl3.h>
|
@@ -158,6 +157,11 @@
|
|
158
157
|
#include <sys/time.h>
|
159
158
|
#endif
|
160
159
|
|
160
|
+
// NGINX needs this #include. Consider revisiting this after NGINX 1.14.0 has
|
161
|
+
// been out for a year or so (assuming that they fix it in that release.) See
|
162
|
+
// https://boringssl-review.googlesource.com/c/boringssl/+/21664.
|
163
|
+
#include <openssl/hmac.h>
|
164
|
+
|
161
165
|
// Forward-declare struct timeval. On Windows, it is defined in winsock2.h and
|
162
166
|
// Windows headers define too many macros to be included in public headers.
|
163
167
|
// However, only a forward declaration is needed.
|
@@ -588,6 +592,8 @@ OPENSSL_EXPORT int DTLSv1_handle_timeout(SSL *ssl);
|
|
588
592
|
#define DTLS1_2_VERSION 0xfefd
|
589
593
|
|
590
594
|
#define TLS1_3_DRAFT_VERSION 0x7f12
|
595
|
+
#define TLS1_3_DRAFT21_VERSION 0x7f15
|
596
|
+
#define TLS1_3_DRAFT22_VERSION 0x7e04
|
591
597
|
#define TLS1_3_EXPERIMENT_VERSION 0x7e01
|
592
598
|
#define TLS1_3_EXPERIMENT2_VERSION 0x7e02
|
593
599
|
#define TLS1_3_EXPERIMENT3_VERSION 0x7e03
|
@@ -973,6 +979,25 @@ OPENSSL_EXPORT int SSL_set_ocsp_response(SSL *ssl,
|
|
973
979
|
// before TLS 1.2.
|
974
980
|
#define SSL_SIGN_RSA_PKCS1_MD5_SHA1 0xff01
|
975
981
|
|
982
|
+
// SSL_get_signature_algorithm_name returns a human-readable name for |sigalg|,
|
983
|
+
// or NULL if unknown. If |include_curve| is one, the curve for ECDSA algorithms
|
984
|
+
// is included as in TLS 1.3. Otherwise, it is excluded as in TLS 1.2.
|
985
|
+
OPENSSL_EXPORT const char *SSL_get_signature_algorithm_name(uint16_t sigalg,
|
986
|
+
int include_curve);
|
987
|
+
|
988
|
+
// SSL_get_signature_algorithm_key_type returns the key type associated with
|
989
|
+
// |sigalg| as an |EVP_PKEY_*| constant or |EVP_PKEY_NONE| if unknown.
|
990
|
+
OPENSSL_EXPORT int SSL_get_signature_algorithm_key_type(uint16_t sigalg);
|
991
|
+
|
992
|
+
// SSL_get_signature_algorithm_digest returns the digest function associated
|
993
|
+
// with |sigalg| or |NULL| if |sigalg| has no prehash (Ed25519) or is unknown.
|
994
|
+
OPENSSL_EXPORT const EVP_MD *SSL_get_signature_algorithm_digest(
|
995
|
+
uint16_t sigalg);
|
996
|
+
|
997
|
+
// SSL_is_signature_algorithm_rsa_pss returns one if |sigalg| is an RSA-PSS
|
998
|
+
// signature algorithm and zero otherwise.
|
999
|
+
OPENSSL_EXPORT int SSL_is_signature_algorithm_rsa_pss(uint16_t sigalg);
|
1000
|
+
|
976
1001
|
// SSL_CTX_set_signing_algorithm_prefs configures |ctx| to use |prefs| as the
|
977
1002
|
// preference list when signing with |ctx|'s private key. It returns one on
|
978
1003
|
// success and zero on error. |prefs| should not include the internal-only value
|
@@ -1042,8 +1067,8 @@ OPENSSL_EXPORT int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, const uint8_t *der,
|
|
1042
1067
|
// |type| parameter is one of the |SSL_FILETYPE_*| values and determines whether
|
1043
1068
|
// the file's contents are read as PEM or DER.
|
1044
1069
|
|
1045
|
-
#define
|
1046
|
-
#define
|
1070
|
+
#define SSL_FILETYPE_PEM 1
|
1071
|
+
#define SSL_FILETYPE_ASN1 2
|
1047
1072
|
|
1048
1073
|
OPENSSL_EXPORT int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx,
|
1049
1074
|
const char *file,
|
@@ -1100,16 +1125,7 @@ enum ssl_private_key_result_t {
|
|
1100
1125
|
// key hooks. This is used to off-load signing operations to a custom,
|
1101
1126
|
// potentially asynchronous, backend. Metadata about the key such as the type
|
1102
1127
|
// and size are parsed out of the certificate.
|
1103
|
-
//
|
1104
|
-
// TODO(davidben): This API has a number of legacy hooks. Remove the last
|
1105
|
-
// consumer of |sign_digest| and trim it.
|
1106
1128
|
struct ssl_private_key_method_st {
|
1107
|
-
// type is ignored and should be NULL.
|
1108
|
-
int (*type)(SSL *ssl);
|
1109
|
-
|
1110
|
-
// max_signature_len is ignored and should be NULL.
|
1111
|
-
size_t (*max_signature_len)(SSL *ssl);
|
1112
|
-
|
1113
1129
|
// sign signs the message |in| in using the specified signature algorithm. On
|
1114
1130
|
// success, it returns |ssl_private_key_success| and writes at most |max_out|
|
1115
1131
|
// bytes of signature data to |out| and sets |*out_len| to the number of bytes
|
@@ -1131,30 +1147,6 @@ struct ssl_private_key_method_st {
|
|
1131
1147
|
uint16_t signature_algorithm,
|
1132
1148
|
const uint8_t *in, size_t in_len);
|
1133
1149
|
|
1134
|
-
// sign_digest signs |in_len| bytes of digest from |in|. |md| is the hash
|
1135
|
-
// function used to calculate |in|. On success, it returns
|
1136
|
-
// |ssl_private_key_success| and writes at most |max_out| bytes of signature
|
1137
|
-
// data to |out|. On failure, it returns |ssl_private_key_failure|. If the
|
1138
|
-
// operation has not completed, it returns |ssl_private_key_retry|. |sign|
|
1139
|
-
// should arrange for the high-level operation on |ssl| to be retried when the
|
1140
|
-
// operation is completed. This will result in a call to |complete|.
|
1141
|
-
//
|
1142
|
-
// If the key is an RSA key, implementations must use PKCS#1 padding. |in| is
|
1143
|
-
// the digest itself, so the DigestInfo prefix, if any, must be prepended by
|
1144
|
-
// |sign|. If |md| is |EVP_md5_sha1|, there is no prefix.
|
1145
|
-
//
|
1146
|
-
// It is an error to call |sign_digest| while another private key operation is
|
1147
|
-
// in progress on |ssl|.
|
1148
|
-
//
|
1149
|
-
// This function is deprecated. Implement |sign| instead.
|
1150
|
-
//
|
1151
|
-
// TODO(davidben): Remove this function.
|
1152
|
-
enum ssl_private_key_result_t (*sign_digest)(SSL *ssl, uint8_t *out,
|
1153
|
-
size_t *out_len, size_t max_out,
|
1154
|
-
const EVP_MD *md,
|
1155
|
-
const uint8_t *in,
|
1156
|
-
size_t in_len);
|
1157
|
-
|
1158
1150
|
// decrypt decrypts |in_len| bytes of encrypted data from |in|. On success it
|
1159
1151
|
// returns |ssl_private_key_success|, writes at most |max_out| bytes of
|
1160
1152
|
// decrypted data to |out| and sets |*out_len| to the actual number of bytes
|
@@ -1635,7 +1627,6 @@ OPENSSL_EXPORT int SSL_CTX_add_server_custom_ext(
|
|
1635
1627
|
// established, an |SSL_SESSION| may be shared by multiple |SSL| objects on
|
1636
1628
|
// different threads and must not be modified.
|
1637
1629
|
|
1638
|
-
DECLARE_LHASH_OF(SSL_SESSION)
|
1639
1630
|
DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION)
|
1640
1631
|
|
1641
1632
|
// SSL_SESSION_new returns a newly-allocated blank |SSL_SESSION| or NULL on
|
@@ -2023,7 +2014,7 @@ OPENSSL_EXPORT SSL_SESSION *SSL_magic_pending_session_ptr(void);
|
|
2023
2014
|
// 1) One can simply set the keys with |SSL_CTX_set_tlsext_ticket_keys|.
|
2024
2015
|
// 2) One can configure an |EVP_CIPHER_CTX| and |HMAC_CTX| directly for
|
2025
2016
|
// encryption and authentication.
|
2026
|
-
// 3) One can configure an |
|
2017
|
+
// 3) One can configure an |SSL_TICKET_AEAD_METHOD| to have more control
|
2027
2018
|
// and the option of asynchronous decryption.
|
2028
2019
|
//
|
2029
2020
|
// An attacker that compromises a server's session ticket key can impersonate
|
@@ -2100,8 +2091,8 @@ enum ssl_ticket_aead_result_t {
|
|
2100
2091
|
ssl_ticket_aead_error,
|
2101
2092
|
};
|
2102
2093
|
|
2103
|
-
// ssl_ticket_aead_method_st (aka |
|
2104
|
-
//
|
2094
|
+
// ssl_ticket_aead_method_st (aka |SSL_TICKET_AEAD_METHOD|) contains methods
|
2095
|
+
// for encrypting and decrypting session tickets.
|
2105
2096
|
struct ssl_ticket_aead_method_st {
|
2106
2097
|
// max_overhead returns the maximum number of bytes of overhead that |seal|
|
2107
2098
|
// may add.
|
@@ -3231,6 +3222,8 @@ enum tls13_variant_t {
|
|
3231
3222
|
tls13_experiment = 1,
|
3232
3223
|
tls13_experiment2 = 2,
|
3233
3224
|
tls13_experiment3 = 3,
|
3225
|
+
tls13_draft21 = 4,
|
3226
|
+
tls13_draft22 = 5,
|
3234
3227
|
};
|
3235
3228
|
|
3236
3229
|
// SSL_CTX_set_tls13_variant sets which variant of TLS 1.3 we negotiate. On the
|
@@ -3952,18 +3945,6 @@ OPENSSL_EXPORT int SSL_set_tmp_ecdh(SSL *ssl, const EC_KEY *ec_key);
|
|
3952
3945
|
OPENSSL_EXPORT int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *out,
|
3953
3946
|
const char *dir);
|
3954
3947
|
|
3955
|
-
// SSL_set_private_key_digest_prefs copies |num_digests| NIDs from |digest_nids|
|
3956
|
-
// into |ssl|. These digests will be used, in decreasing order of preference,
|
3957
|
-
// when signing with |ssl|'s private key. It returns one on success and zero on
|
3958
|
-
// error.
|
3959
|
-
//
|
3960
|
-
// Use |SSL_set_signing_algorithm_prefs| instead.
|
3961
|
-
//
|
3962
|
-
// TODO(davidben): Remove this API when callers have been updated.
|
3963
|
-
OPENSSL_EXPORT int SSL_set_private_key_digest_prefs(SSL *ssl,
|
3964
|
-
const int *digest_nids,
|
3965
|
-
size_t num_digests);
|
3966
|
-
|
3967
3948
|
// SSL_set_verify_result calls |abort| unless |result| is |X509_V_OK|.
|
3968
3949
|
//
|
3969
3950
|
// TODO(davidben): Remove this function once it has been removed from
|
@@ -4042,8 +4023,7 @@ extern "C++" OPENSSL_EXPORT void SSL_CTX_sess_set_get_cb(
|
|
4042
4023
|
// This structures are exposed for historical reasons, but access to them is
|
4043
4024
|
// deprecated.
|
4044
4025
|
|
4045
|
-
// TODO(davidben): Remove this forward declaration when
|
4046
|
-
// opaque.
|
4026
|
+
// TODO(davidben): Remove this forward declaration when |SSL_SESSION| is opaque.
|
4047
4027
|
typedef struct ssl_x509_method_st SSL_X509_METHOD;
|
4048
4028
|
|
4049
4029
|
#define SSL_MAX_SSL_SESSION_ID_LENGTH 32
|
@@ -4574,6 +4554,7 @@ OPENSSL_EXPORT bool SealRecord(SSL *ssl, Span<uint8_t> out_prefix,
|
|
4574
4554
|
#define SSL_R_UNEXPECTED_EXTENSION_ON_EARLY_DATA 279
|
4575
4555
|
#define SSL_R_NO_SUPPORTED_VERSIONS_ENABLED 280
|
4576
4556
|
#define SSL_R_APPLICATION_DATA_INSTEAD_OF_HANDSHAKE 281
|
4557
|
+
#define SSL_R_EMPTY_HELLO_RETRY_REQUEST 282
|
4577
4558
|
#define SSL_R_SSLV3_ALERT_CLOSE_NOTIFY 1000
|
4578
4559
|
#define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010
|
4579
4560
|
#define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020
|