grpc 1.4.5 → 1.6.0.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 +1235 -1100
- data/etc/roots.pem +0 -412
- data/include/grpc/byte_buffer.h +10 -25
- data/include/grpc/byte_buffer_reader.h +10 -25
- data/include/grpc/census.h +10 -25
- data/include/grpc/compression.h +10 -25
- data/include/grpc/grpc.h +15 -26
- data/include/grpc/grpc_cronet.h +10 -25
- data/include/grpc/grpc_posix.h +10 -25
- data/include/grpc/grpc_security.h +10 -25
- data/include/grpc/grpc_security_constants.h +10 -25
- data/include/grpc/impl/codegen/atm.h +11 -25
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +10 -25
- data/include/grpc/impl/codegen/atm_gcc_sync.h +10 -25
- data/include/grpc/impl/codegen/atm_windows.h +10 -25
- data/include/grpc/impl/codegen/byte_buffer_reader.h +11 -26
- data/include/grpc/impl/codegen/compression_types.h +12 -27
- data/include/grpc/impl/codegen/connectivity_state.h +10 -25
- data/include/grpc/impl/codegen/exec_ctx_fwd.h +10 -25
- data/include/grpc/impl/codegen/gpr_slice.h +10 -25
- data/include/grpc/impl/codegen/gpr_types.h +10 -25
- data/include/grpc/impl/codegen/grpc_types.h +42 -43
- data/include/grpc/impl/codegen/port_platform.h +10 -25
- data/include/grpc/impl/codegen/propagation_bits.h +10 -25
- data/include/grpc/impl/codegen/slice.h +13 -28
- data/include/grpc/impl/codegen/status.h +10 -25
- data/include/grpc/impl/codegen/sync.h +10 -25
- data/include/grpc/impl/codegen/sync_generic.h +10 -25
- data/include/grpc/impl/codegen/sync_posix.h +10 -25
- data/include/grpc/impl/codegen/sync_windows.h +10 -25
- data/include/grpc/load_reporting.h +10 -25
- data/include/grpc/slice.h +10 -25
- data/include/grpc/slice_buffer.h +10 -25
- data/include/grpc/status.h +10 -25
- data/include/grpc/support/alloc.h +10 -25
- data/include/grpc/support/atm.h +10 -25
- data/include/grpc/support/atm_gcc_atomic.h +10 -25
- data/include/grpc/support/atm_gcc_sync.h +10 -25
- data/include/grpc/support/atm_windows.h +10 -25
- data/include/grpc/support/avl.h +46 -49
- data/include/grpc/support/cmdline.h +10 -25
- data/include/grpc/support/cpu.h +10 -25
- data/include/grpc/support/histogram.h +10 -25
- data/include/grpc/support/host_port.h +10 -25
- data/include/grpc/support/log.h +10 -25
- data/include/grpc/support/log_windows.h +10 -25
- data/include/grpc/support/port_platform.h +10 -25
- data/include/grpc/support/string_util.h +10 -25
- data/include/grpc/support/subprocess.h +10 -25
- data/include/grpc/support/sync.h +10 -25
- data/include/grpc/support/sync_generic.h +10 -25
- data/include/grpc/support/sync_posix.h +10 -25
- data/include/grpc/support/sync_windows.h +10 -25
- data/include/grpc/support/thd.h +10 -25
- data/include/grpc/support/time.h +10 -25
- data/include/grpc/support/tls.h +10 -25
- data/include/grpc/support/tls_gcc.h +10 -25
- data/include/grpc/support/tls_msvc.h +10 -25
- data/include/grpc/support/tls_pthread.h +10 -25
- data/include/grpc/support/useful.h +10 -25
- data/include/grpc/support/workaround_list.h +11 -26
- data/src/boringssl/err_data.c +277 -259
- data/src/core/ext/census/aggregation.h +10 -25
- data/src/core/ext/census/base_resources.c +10 -25
- data/src/core/ext/census/base_resources.h +10 -25
- data/src/core/ext/census/census_interface.h +10 -25
- data/src/core/ext/census/census_rpc_stats.h +10 -25
- data/src/core/ext/census/context.c +10 -25
- data/src/core/ext/census/gen/census.pb.c +10 -25
- data/src/core/ext/census/gen/census.pb.h +10 -25
- data/src/core/ext/census/gen/trace_context.pb.c +10 -25
- data/src/core/ext/census/gen/trace_context.pb.h +10 -25
- data/src/core/ext/census/grpc_context.c +10 -25
- data/src/core/ext/census/grpc_filter.c +11 -26
- data/src/core/ext/census/grpc_filter.h +10 -25
- data/src/core/ext/census/grpc_plugin.c +10 -25
- data/src/core/ext/census/initialize.c +10 -25
- data/src/core/ext/census/intrusive_hash_map.c +10 -25
- data/src/core/ext/census/intrusive_hash_map.h +10 -25
- data/src/core/ext/census/intrusive_hash_map_internal.h +10 -25
- data/src/core/ext/census/mlog.c +10 -25
- data/src/core/ext/census/mlog.h +10 -25
- data/src/core/ext/census/operation.c +10 -25
- data/src/core/ext/census/placeholders.c +10 -25
- data/src/core/ext/census/resource.c +10 -25
- data/src/core/ext/census/resource.h +10 -25
- data/src/core/ext/census/rpc_metric_id.h +10 -25
- data/src/core/ext/census/trace_context.c +10 -25
- data/src/core/ext/census/trace_context.h +10 -25
- data/src/core/ext/census/trace_label.h +10 -25
- data/src/core/ext/census/trace_propagation.h +10 -25
- data/src/core/ext/census/trace_status.h +10 -25
- data/src/core/ext/census/trace_string.h +10 -25
- data/src/core/ext/census/tracing.c +10 -26
- data/src/core/ext/census/tracing.h +10 -25
- data/src/core/ext/filters/client_channel/channel_connectivity.c +20 -33
- data/src/core/ext/filters/client_channel/client_channel.c +617 -520
- data/src/core/ext/filters/client_channel/client_channel.h +15 -28
- data/src/core/ext/filters/client_channel/client_channel_factory.c +13 -31
- data/src/core/ext/filters/client_channel/client_channel_factory.h +10 -25
- data/src/core/ext/filters/client_channel/client_channel_plugin.c +16 -29
- data/src/core/ext/filters/client_channel/connector.c +10 -25
- data/src/core/ext/filters/client_channel/connector.h +10 -25
- data/src/core/ext/filters/client_channel/http_connect_handshaker.c +15 -30
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +10 -25
- data/src/core/ext/filters/client_channel/http_proxy.c +112 -38
- data/src/core/ext/filters/client_channel/http_proxy.h +10 -25
- data/src/core/ext/filters/client_channel/lb_policy.c +32 -36
- data/src/core/ext/filters/client_channel/lb_policy.h +24 -27
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.c +14 -30
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +10 -25
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.c +464 -279
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +10 -25
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +15 -28
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.c +40 -48
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.c +65 -49
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +31 -31
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.c +47 -32
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +11 -26
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +13 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +27 -21
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +373 -136
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +504 -279
- data/src/core/ext/filters/client_channel/lb_policy_factory.c +12 -31
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +12 -27
- data/src/core/ext/filters/client_channel/lb_policy_registry.c +10 -25
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +10 -25
- data/src/core/ext/filters/client_channel/parse_address.c +10 -25
- data/src/core/ext/filters/client_channel/parse_address.h +10 -25
- data/src/core/ext/filters/client_channel/proxy_mapper.c +10 -25
- data/src/core/ext/filters/client_channel/proxy_mapper.h +10 -25
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.c +10 -25
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +10 -25
- data/src/core/ext/filters/client_channel/resolver.c +33 -38
- data/src/core/ext/filters/client_channel/resolver.h +19 -30
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.c +153 -50
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +14 -27
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c +33 -30
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.c +326 -116
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +35 -36
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c +60 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.c +19 -34
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.c +254 -0
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +60 -0
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.c +16 -28
- data/src/core/ext/filters/client_channel/resolver_factory.c +10 -25
- data/src/core/ext/filters/client_channel/resolver_factory.h +10 -25
- data/src/core/ext/filters/client_channel/resolver_registry.c +10 -25
- data/src/core/ext/filters/client_channel/resolver_registry.h +10 -25
- data/src/core/ext/filters/client_channel/retry_throttle.c +23 -34
- data/src/core/ext/filters/client_channel/retry_throttle.h +10 -25
- data/src/core/ext/filters/client_channel/subchannel.c +33 -55
- data/src/core/ext/filters/client_channel/subchannel.h +16 -26
- data/src/core/ext/filters/client_channel/subchannel_index.c +55 -92
- data/src/core/ext/filters/client_channel/subchannel_index.h +26 -29
- data/src/core/ext/filters/client_channel/uri_parser.c +10 -25
- data/src/core/ext/filters/client_channel/uri_parser.h +10 -25
- data/src/core/ext/filters/deadline/deadline_filter.c +30 -45
- data/src/core/ext/filters/deadline/deadline_filter.h +10 -25
- data/src/core/ext/filters/http/client/http_client_filter.c +255 -294
- data/src/core/ext/filters/http/client/http_client_filter.h +10 -25
- data/src/core/ext/filters/http/http_filters_plugin.c +11 -26
- data/src/core/ext/filters/http/message_compress/message_compress_filter.c +133 -105
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +10 -25
- data/src/core/ext/filters/http/server/http_server_filter.c +17 -32
- data/src/core/ext/filters/http/server/http_server_filter.h +10 -25
- data/src/core/ext/filters/load_reporting/load_reporting.c +11 -30
- data/src/core/ext/filters/load_reporting/load_reporting.h +10 -25
- data/src/core/ext/filters/load_reporting/load_reporting_filter.c +11 -26
- data/src/core/ext/filters/load_reporting/load_reporting_filter.h +10 -25
- data/src/core/ext/filters/max_age/max_age_filter.c +28 -43
- data/src/core/ext/filters/max_age/max_age_filter.h +10 -25
- data/src/core/ext/filters/message_size/message_size_filter.c +24 -37
- data/src/core/ext/filters/message_size/message_size_filter.h +10 -25
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.c +16 -31
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +10 -25
- data/src/core/ext/filters/workarounds/workaround_utils.c +12 -26
- data/src/core/ext/filters/workarounds/workaround_utils.h +11 -26
- data/src/core/ext/transport/chttp2/alpn/alpn.c +10 -25
- data/src/core/ext/transport/chttp2/alpn/alpn.h +10 -25
- data/src/core/ext/transport/chttp2/client/chttp2_connector.c +13 -28
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +10 -25
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.c +13 -30
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c +12 -29
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c +13 -30
- data/src/core/ext/transport/chttp2/server/chttp2_server.c +11 -26
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +10 -25
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c +10 -25
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c +10 -25
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c +10 -25
- data/src/core/ext/transport/chttp2/transport/bin_decoder.c +11 -25
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +10 -25
- data/src/core/ext/transport/chttp2/transport/bin_encoder.c +10 -25
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +10 -25
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.c +15 -27
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.c +421 -443
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +14 -25
- data/src/core/ext/transport/chttp2/transport/flow_control.c +500 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_data.c +20 -28
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_goaway.c +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_ping.c +11 -26
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.c +11 -26
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_settings.c +16 -29
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +10 -25
- data/src/core/ext/transport/chttp2/transport/frame_window_update.c +17 -33
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +10 -25
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.c +18 -31
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +12 -25
- data/src/core/ext/transport/chttp2/transport/hpack_parser.c +15 -30
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -25
- data/src/core/ext/transport/chttp2/transport/hpack_table.c +10 -25
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +10 -25
- data/src/core/ext/transport/chttp2/transport/http2_settings.c +10 -25
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +10 -25
- data/src/core/ext/transport/chttp2/transport/huffsyms.c +10 -25
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +10 -25
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.c +10 -25
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +10 -25
- data/src/core/ext/transport/chttp2/transport/internal.h +191 -179
- data/src/core/ext/transport/chttp2/transport/parsing.c +33 -102
- data/src/core/ext/transport/chttp2/transport/stream_lists.c +26 -28
- data/src/core/ext/transport/chttp2/transport/stream_map.c +10 -25
- data/src/core/ext/transport/chttp2/transport/stream_map.h +10 -25
- data/src/core/ext/transport/chttp2/transport/varint.c +14 -25
- data/src/core/ext/transport/chttp2/transport/varint.h +10 -25
- data/src/core/ext/transport/chttp2/transport/writing.c +164 -106
- data/src/core/ext/transport/inproc/inproc_plugin.c +29 -0
- data/src/core/ext/transport/inproc/inproc_transport.c +1303 -0
- data/src/core/ext/transport/inproc/inproc_transport.h +41 -0
- data/src/core/lib/channel/channel_args.c +52 -27
- data/src/core/lib/channel/channel_args.h +18 -27
- data/src/core/lib/channel/channel_stack.c +11 -26
- data/src/core/lib/channel/channel_stack.h +12 -27
- data/src/core/lib/channel/channel_stack_builder.c +11 -26
- data/src/core/lib/channel/channel_stack_builder.h +10 -25
- data/src/core/lib/channel/connected_channel.c +10 -25
- data/src/core/lib/channel/connected_channel.h +10 -25
- data/src/core/lib/channel/context.h +10 -25
- data/src/core/lib/channel/handshaker.c +14 -29
- data/src/core/lib/channel/handshaker.h +10 -25
- data/src/core/lib/channel/handshaker_factory.c +10 -25
- data/src/core/lib/channel/handshaker_factory.h +10 -25
- data/src/core/lib/channel/handshaker_registry.c +10 -25
- data/src/core/lib/channel/handshaker_registry.h +10 -25
- data/src/core/lib/compression/algorithm_metadata.h +10 -25
- data/src/core/lib/compression/compression.c +10 -25
- data/src/core/lib/compression/message_compress.c +10 -25
- data/src/core/lib/compression/message_compress.h +10 -25
- data/src/core/lib/compression/stream_compression.c +191 -0
- data/src/core/lib/compression/stream_compression.h +90 -0
- data/src/core/lib/debug/trace.c +28 -29
- data/src/core/lib/debug/trace.h +16 -30
- data/src/core/lib/http/format_request.c +10 -25
- data/src/core/lib/http/format_request.h +10 -25
- data/src/core/lib/http/httpcli.c +19 -35
- data/src/core/lib/http/httpcli.h +10 -25
- data/src/core/lib/http/httpcli_security_connector.c +17 -30
- data/src/core/lib/http/parser.c +11 -26
- data/src/core/lib/http/parser.h +10 -25
- data/src/core/lib/iomgr/closure.c +62 -25
- data/src/core/lib/iomgr/closure.h +81 -26
- data/src/core/lib/iomgr/combiner.c +103 -200
- data/src/core/lib/iomgr/combiner.h +14 -32
- data/src/core/lib/iomgr/endpoint.c +10 -29
- data/src/core/lib/iomgr/endpoint.h +10 -29
- data/src/core/lib/iomgr/endpoint_pair.h +10 -25
- data/src/core/lib/iomgr/endpoint_pair_posix.c +10 -25
- data/src/core/lib/iomgr/endpoint_pair_uv.c +10 -25
- data/src/core/lib/iomgr/endpoint_pair_windows.c +10 -25
- data/src/core/lib/iomgr/error.c +45 -46
- data/src/core/lib/iomgr/error.h +21 -34
- data/src/core/lib/iomgr/error_internal.h +10 -25
- data/src/core/lib/iomgr/ev_epoll1_linux.c +279 -179
- data/src/core/lib/iomgr/ev_epoll1_linux.h +10 -25
- data/src/core/lib/iomgr/ev_epoll_limited_pollers_linux.c +75 -264
- data/src/core/lib/iomgr/ev_epoll_limited_pollers_linux.h +10 -25
- data/src/core/lib/iomgr/ev_epoll_thread_pool_linux.c +44 -199
- data/src/core/lib/iomgr/ev_epoll_thread_pool_linux.h +10 -25
- data/src/core/lib/iomgr/ev_epollex_linux.c +184 -247
- data/src/core/lib/iomgr/ev_epollex_linux.h +10 -25
- data/src/core/lib/iomgr/ev_epollsig_linux.c +116 -323
- data/src/core/lib/iomgr/ev_epollsig_linux.h +10 -25
- data/src/core/lib/iomgr/ev_poll_posix.c +328 -184
- data/src/core/lib/iomgr/ev_poll_posix.h +10 -25
- data/src/core/lib/iomgr/ev_posix.c +25 -56
- data/src/core/lib/iomgr/ev_posix.h +15 -44
- data/src/core/lib/iomgr/ev_windows.c +11 -26
- data/src/core/lib/iomgr/exec_ctx.c +36 -45
- data/src/core/lib/iomgr/exec_ctx.h +10 -25
- data/src/core/lib/iomgr/executor.c +152 -127
- data/src/core/lib/iomgr/executor.h +18 -26
- data/src/core/lib/iomgr/gethostname.h +26 -0
- data/src/core/lib/iomgr/gethostname_fallback.c +27 -0
- data/src/core/lib/iomgr/gethostname_host_name_max.c +37 -0
- data/src/core/lib/iomgr/gethostname_sysconf.c +37 -0
- data/src/core/lib/iomgr/iocp_windows.c +10 -25
- data/src/core/lib/iomgr/iocp_windows.h +10 -25
- data/src/core/lib/iomgr/iomgr.c +17 -28
- data/src/core/lib/iomgr/iomgr.h +12 -27
- data/src/core/lib/iomgr/iomgr_internal.h +10 -25
- data/src/core/lib/iomgr/iomgr_posix.c +11 -26
- data/src/core/lib/iomgr/iomgr_posix.h +10 -25
- data/src/core/lib/iomgr/iomgr_uv.c +19 -26
- data/src/core/lib/iomgr/iomgr_uv.h +37 -0
- data/src/core/lib/iomgr/iomgr_windows.c +10 -25
- data/src/core/lib/iomgr/is_epollexclusive_available.c +10 -25
- data/src/core/lib/iomgr/is_epollexclusive_available.h +10 -25
- data/src/core/lib/iomgr/load_file.c +10 -25
- data/src/core/lib/iomgr/load_file.h +10 -25
- data/src/core/lib/iomgr/lockfree_event.c +22 -35
- data/src/core/lib/iomgr/lockfree_event.h +13 -27
- data/src/core/lib/iomgr/nameser.h +104 -0
- data/src/core/lib/iomgr/network_status_tracker.c +10 -25
- data/src/core/lib/iomgr/network_status_tracker.h +10 -25
- data/src/core/lib/iomgr/polling_entity.c +10 -25
- data/src/core/lib/iomgr/polling_entity.h +14 -34
- data/src/core/lib/iomgr/pollset.h +14 -25
- data/src/core/lib/iomgr/pollset_set.h +10 -25
- data/src/core/lib/iomgr/pollset_set_uv.c +10 -25
- data/src/core/lib/iomgr/pollset_set_windows.c +10 -25
- data/src/core/lib/iomgr/pollset_set_windows.h +10 -25
- data/src/core/lib/iomgr/pollset_uv.c +25 -26
- data/src/core/lib/iomgr/pollset_uv.h +10 -25
- data/src/core/lib/iomgr/pollset_windows.c +17 -27
- data/src/core/lib/iomgr/pollset_windows.h +10 -25
- data/src/core/lib/iomgr/port.h +24 -25
- data/src/core/lib/iomgr/resolve_address.h +10 -25
- data/src/core/lib/iomgr/resolve_address_posix.c +13 -28
- data/src/core/lib/iomgr/resolve_address_uv.c +31 -35
- data/src/core/lib/iomgr/resolve_address_windows.c +13 -28
- data/src/core/lib/iomgr/resource_quota.c +52 -67
- data/src/core/lib/iomgr/resource_quota.h +10 -25
- data/src/core/lib/iomgr/sockaddr.h +10 -25
- data/src/core/lib/iomgr/sockaddr_posix.h +10 -25
- data/src/core/lib/iomgr/sockaddr_utils.c +15 -25
- data/src/core/lib/iomgr/sockaddr_utils.h +12 -25
- data/src/core/lib/iomgr/sockaddr_windows.h +10 -25
- data/src/core/lib/iomgr/socket_factory_posix.c +13 -31
- data/src/core/lib/iomgr/socket_factory_posix.h +10 -25
- data/src/core/lib/iomgr/socket_mutator.c +14 -31
- data/src/core/lib/iomgr/socket_mutator.h +10 -25
- data/src/core/lib/iomgr/socket_utils.h +10 -25
- data/src/core/lib/iomgr/socket_utils_common_posix.c +10 -25
- data/src/core/lib/iomgr/socket_utils_linux.c +10 -25
- data/src/core/lib/iomgr/socket_utils_posix.c +10 -25
- data/src/core/lib/iomgr/socket_utils_posix.h +10 -25
- data/src/core/lib/iomgr/socket_utils_uv.c +10 -25
- data/src/core/lib/iomgr/socket_utils_windows.c +10 -25
- data/src/core/lib/iomgr/socket_windows.c +12 -27
- data/src/core/lib/iomgr/socket_windows.h +10 -25
- data/src/core/lib/iomgr/sys_epoll_wrapper.h +10 -25
- data/src/core/lib/iomgr/tcp_client.h +10 -25
- data/src/core/lib/iomgr/tcp_client_posix.c +21 -34
- data/src/core/lib/iomgr/tcp_client_posix.h +10 -25
- data/src/core/lib/iomgr/tcp_client_uv.c +18 -27
- data/src/core/lib/iomgr/tcp_client_windows.c +14 -29
- data/src/core/lib/iomgr/tcp_posix.c +36 -55
- data/src/core/lib/iomgr/tcp_posix.h +10 -25
- data/src/core/lib/iomgr/tcp_server.h +10 -25
- data/src/core/lib/iomgr/tcp_server_posix.c +16 -31
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +10 -25
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.c +11 -26
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.c +10 -25
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.c +10 -25
- data/src/core/lib/iomgr/tcp_server_uv.c +103 -64
- data/src/core/lib/iomgr/tcp_server_windows.c +14 -29
- data/src/core/lib/iomgr/tcp_uv.c +41 -45
- data/src/core/lib/iomgr/tcp_uv.h +10 -25
- data/src/core/lib/iomgr/tcp_windows.c +39 -53
- data/src/core/lib/iomgr/tcp_windows.h +10 -25
- data/src/core/lib/iomgr/time_averaged_stats.c +10 -25
- data/src/core/lib/iomgr/time_averaged_stats.h +10 -25
- data/src/core/lib/iomgr/timer.h +18 -27
- data/src/core/lib/iomgr/timer_generic.c +91 -87
- data/src/core/lib/iomgr/timer_generic.h +10 -25
- data/src/core/lib/iomgr/timer_heap.c +10 -25
- data/src/core/lib/iomgr/timer_heap.h +10 -25
- data/src/core/lib/iomgr/timer_manager.c +178 -100
- data/src/core/lib/iomgr/timer_manager.h +10 -25
- data/src/core/lib/iomgr/timer_uv.c +23 -33
- data/src/core/lib/iomgr/timer_uv.h +10 -25
- data/src/core/lib/iomgr/udp_server.c +17 -32
- data/src/core/lib/iomgr/udp_server.h +10 -25
- data/src/core/lib/iomgr/unix_sockets_posix.c +10 -25
- data/src/core/lib/iomgr/unix_sockets_posix.h +10 -25
- data/src/core/lib/iomgr/unix_sockets_posix_noop.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_cv.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_cv.h +13 -28
- data/src/core/lib/iomgr/wakeup_fd_eventfd.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_nospecial.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_pipe.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +10 -25
- data/src/core/lib/iomgr/wakeup_fd_posix.c +10 -25
- data/src/core/lib/iomgr/wakeup_fd_posix.h +10 -25
- data/src/core/lib/json/json.c +10 -25
- data/src/core/lib/json/json.h +10 -25
- data/src/core/lib/json/json_common.h +10 -25
- data/src/core/lib/json/json_reader.c +11 -25
- data/src/core/lib/json/json_reader.h +10 -25
- data/src/core/lib/json/json_string.c +10 -25
- data/src/core/lib/json/json_writer.c +10 -25
- data/src/core/lib/json/json_writer.h +10 -25
- data/src/core/lib/profiling/basic_timers.c +10 -25
- data/src/core/lib/profiling/stap_timers.c +10 -25
- data/src/core/lib/profiling/timers.h +10 -25
- data/src/core/lib/security/context/security_context.c +32 -40
- data/src/core/lib/security/context/security_context.h +15 -26
- data/src/core/lib/security/credentials/composite/composite_credentials.c +76 -81
- data/src/core/lib/security/credentials/composite/composite_credentials.h +10 -25
- data/src/core/lib/security/credentials/credentials.c +29 -49
- data/src/core/lib/security/credentials/credentials.h +48 -61
- data/src/core/lib/security/credentials/credentials_metadata.c +34 -78
- data/src/core/lib/security/credentials/fake/fake_credentials.c +33 -56
- data/src/core/lib/security/credentials/fake/fake_credentials.h +12 -27
- data/src/core/lib/security/credentials/google_default/credentials_generic.c +10 -25
- data/src/core/lib/security/credentials/google_default/google_default_credentials.c +12 -27
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +10 -25
- data/src/core/lib/security/credentials/iam/iam_credentials.c +40 -40
- data/src/core/lib/security/credentials/iam/iam_credentials.h +11 -26
- data/src/core/lib/security/credentials/jwt/json_token.c +10 -25
- data/src/core/lib/security/credentials/jwt/json_token.h +10 -25
- data/src/core/lib/security/credentials/jwt/jwt_credentials.c +45 -48
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -26
- data/src/core/lib/security/credentials/jwt/jwt_verifier.c +53 -33
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +10 -25
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.c +155 -87
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +24 -28
- data/src/core/lib/security/credentials/plugin/plugin_credentials.c +118 -82
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +24 -27
- data/src/core/lib/security/credentials/ssl/ssl_credentials.c +13 -32
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +10 -25
- data/src/core/lib/security/transport/auth_filters.h +10 -25
- data/src/core/lib/security/transport/client_auth_filter.c +217 -112
- data/src/core/lib/security/transport/lb_targets_info.c +16 -32
- data/src/core/lib/security/transport/lb_targets_info.h +10 -25
- data/src/core/lib/security/transport/secure_endpoint.c +29 -43
- data/src/core/lib/security/transport/secure_endpoint.h +10 -25
- data/src/core/lib/security/transport/security_connector.c +80 -61
- data/src/core/lib/security/transport/security_connector.h +35 -35
- data/src/core/lib/security/transport/security_handshaker.c +18 -33
- data/src/core/lib/security/transport/security_handshaker.h +10 -25
- data/src/core/lib/security/transport/server_auth_filter.c +62 -116
- data/src/core/lib/security/transport/tsi_error.c +10 -25
- data/src/core/lib/security/transport/tsi_error.h +10 -25
- data/src/core/lib/security/util/json_util.c +10 -25
- data/src/core/lib/security/util/json_util.h +10 -25
- data/src/core/lib/slice/b64.c +10 -25
- data/src/core/lib/slice/b64.h +10 -25
- data/src/core/lib/slice/percent_encoding.c +10 -25
- data/src/core/lib/slice/percent_encoding.h +10 -25
- data/src/core/lib/slice/slice.c +10 -25
- data/src/core/lib/slice/slice_buffer.c +10 -25
- data/src/core/lib/slice/slice_hash_table.c +48 -26
- data/src/core/lib/slice/slice_hash_table.h +26 -28
- data/src/core/lib/slice/slice_intern.c +10 -25
- data/src/core/lib/slice/slice_internal.h +10 -25
- data/src/core/lib/slice/slice_string_helpers.c +10 -25
- data/src/core/lib/slice/slice_string_helpers.h +10 -25
- data/src/core/lib/support/alloc.c +10 -25
- data/src/core/lib/support/arena.c +12 -27
- data/src/core/lib/support/arena.h +10 -25
- data/src/core/lib/support/atm.c +17 -32
- data/src/core/lib/support/atomic.h +10 -25
- data/src/core/lib/support/atomic_with_atm.h +10 -25
- data/src/core/lib/support/atomic_with_std.h +10 -25
- data/src/core/lib/support/avl.c +101 -101
- data/src/core/lib/support/backoff.c +10 -25
- data/src/core/lib/support/backoff.h +10 -25
- data/src/core/lib/support/block_annotate.h +10 -25
- data/src/core/lib/support/cmdline.c +10 -25
- data/src/core/lib/support/cpu_iphone.c +10 -25
- data/src/core/lib/support/cpu_linux.c +10 -25
- data/src/core/lib/support/cpu_posix.c +10 -25
- data/src/core/lib/support/cpu_windows.c +10 -25
- data/src/core/lib/support/env.h +16 -25
- data/src/core/lib/support/env_linux.c +30 -37
- data/src/core/lib/support/env_posix.c +15 -25
- data/src/core/lib/support/env_windows.c +15 -25
- data/src/core/lib/support/histogram.c +10 -25
- data/src/core/lib/support/host_port.c +10 -25
- data/src/core/lib/support/log.c +20 -29
- data/src/core/lib/support/log_android.c +10 -25
- data/src/core/lib/support/log_linux.c +13 -26
- data/src/core/lib/support/log_posix.c +10 -25
- data/src/core/lib/support/log_windows.c +10 -25
- data/src/core/lib/support/memory.h +10 -25
- data/src/core/lib/support/mpscq.c +11 -49
- data/src/core/lib/support/mpscq.h +11 -50
- data/src/core/lib/support/murmur_hash.c +12 -25
- data/src/core/lib/support/murmur_hash.h +10 -25
- data/src/core/lib/support/spinlock.h +10 -25
- data/src/core/lib/support/stack_lockfree.c +10 -25
- data/src/core/lib/support/stack_lockfree.h +10 -25
- data/src/core/lib/support/string.c +10 -25
- data/src/core/lib/support/string.h +10 -25
- data/src/core/lib/support/string_posix.c +10 -25
- data/src/core/lib/support/string_util_windows.c +10 -25
- data/src/core/lib/support/string_windows.c +10 -25
- data/src/core/lib/support/string_windows.h +10 -25
- data/src/core/lib/support/subprocess_posix.c +10 -25
- data/src/core/lib/support/subprocess_windows.c +10 -25
- data/src/core/lib/support/sync.c +10 -25
- data/src/core/lib/support/sync_posix.c +10 -25
- data/src/core/lib/support/sync_windows.c +10 -25
- data/src/core/lib/support/thd.c +10 -25
- data/src/core/lib/support/thd_internal.h +10 -25
- data/src/core/lib/support/thd_posix.c +10 -25
- data/src/core/lib/support/thd_windows.c +10 -25
- data/src/core/lib/support/time.c +10 -25
- data/src/core/lib/support/time_posix.c +10 -25
- data/src/core/lib/support/time_precise.c +18 -33
- data/src/core/lib/support/time_precise.h +10 -25
- data/src/core/lib/support/time_windows.c +10 -25
- data/src/core/lib/support/tls_pthread.c +10 -25
- data/src/core/lib/support/tmpfile.h +10 -25
- data/src/core/lib/support/tmpfile_msys.c +10 -25
- data/src/core/lib/support/tmpfile_posix.c +10 -25
- data/src/core/lib/support/tmpfile_windows.c +10 -25
- data/src/core/lib/support/wrap_memcpy.c +10 -25
- data/src/core/lib/surface/alarm.c +78 -35
- data/src/core/lib/surface/alarm_internal.h +40 -0
- data/src/core/lib/surface/api_trace.c +11 -26
- data/src/core/lib/surface/api_trace.h +10 -25
- data/src/core/lib/surface/byte_buffer.c +10 -25
- data/src/core/lib/surface/byte_buffer_reader.c +10 -25
- data/src/core/lib/surface/call.c +64 -84
- data/src/core/lib/surface/call.h +11 -26
- data/src/core/lib/surface/call_details.c +10 -25
- data/src/core/lib/surface/call_log_batch.c +10 -25
- data/src/core/lib/surface/call_test_only.h +10 -25
- data/src/core/lib/surface/channel.c +11 -26
- data/src/core/lib/surface/channel.h +11 -26
- data/src/core/lib/surface/channel_init.c +10 -25
- data/src/core/lib/surface/channel_init.h +10 -25
- data/src/core/lib/surface/channel_ping.c +12 -27
- data/src/core/lib/surface/channel_stack_type.c +10 -25
- data/src/core/lib/surface/channel_stack_type.h +10 -25
- data/src/core/lib/surface/completion_queue.c +442 -331
- data/src/core/lib/surface/completion_queue.h +16 -33
- data/src/core/lib/surface/completion_queue_factory.c +10 -25
- data/src/core/lib/surface/completion_queue_factory.h +10 -25
- data/src/core/lib/surface/event_string.c +10 -25
- data/src/core/lib/surface/event_string.h +10 -25
- data/src/core/lib/surface/init.c +38 -47
- data/src/core/lib/surface/init.h +10 -25
- data/src/core/lib/surface/init_secure.c +20 -27
- data/src/core/lib/surface/lame_client.cc +14 -29
- data/src/core/lib/surface/lame_client.h +10 -25
- data/src/core/lib/surface/metadata_array.c +10 -25
- data/src/core/lib/surface/server.c +128 -81
- data/src/core/lib/surface/server.h +10 -25
- data/src/core/lib/surface/validate_metadata.c +10 -25
- data/src/core/lib/surface/validate_metadata.h +10 -25
- data/src/core/lib/surface/version.c +11 -26
- data/src/core/lib/transport/bdp_estimator.c +19 -29
- data/src/core/lib/transport/bdp_estimator.h +16 -29
- data/src/core/lib/transport/byte_stream.c +127 -36
- data/src/core/lib/transport/byte_stream.h +88 -46
- data/src/core/lib/transport/connectivity_state.c +17 -31
- data/src/core/lib/transport/connectivity_state.h +10 -25
- data/src/core/lib/transport/error_utils.c +10 -25
- data/src/core/lib/transport/error_utils.h +10 -25
- data/src/core/lib/transport/http2_errors.h +10 -25
- data/src/core/lib/transport/metadata.c +87 -85
- data/src/core/lib/transport/metadata.h +15 -28
- data/src/core/lib/transport/metadata_batch.c +10 -25
- data/src/core/lib/transport/metadata_batch.h +10 -25
- data/src/core/lib/transport/pid_controller.c +10 -25
- data/src/core/lib/transport/pid_controller.h +10 -25
- data/src/core/lib/transport/service_config.c +11 -26
- data/src/core/lib/transport/service_config.h +10 -25
- data/src/core/lib/transport/static_metadata.c +12 -26
- data/src/core/lib/transport/static_metadata.h +10 -25
- data/src/core/lib/transport/status_conversion.c +10 -25
- data/src/core/lib/transport/status_conversion.h +10 -25
- data/src/core/lib/transport/timeout_encoding.c +10 -25
- data/src/core/lib/transport/timeout_encoding.h +10 -25
- data/src/core/lib/transport/transport.c +60 -53
- data/src/core/lib/transport/transport.h +36 -34
- data/src/core/lib/transport/transport_impl.h +10 -25
- data/src/core/lib/transport/transport_op_string.c +10 -28
- data/src/core/plugin_registry/grpc_plugin_registry.c +22 -25
- data/src/core/tsi/fake_transport_security.c +199 -94
- data/src/core/tsi/fake_transport_security.h +11 -26
- data/src/core/tsi/gts_transport_security.c +40 -0
- data/src/core/tsi/gts_transport_security.h +37 -0
- data/src/core/tsi/ssl_transport_security.c +13 -32
- data/src/core/tsi/ssl_transport_security.h +10 -25
- data/src/core/tsi/ssl_types.h +10 -25
- data/src/core/tsi/transport_security.c +48 -78
- data/src/core/tsi/transport_security.h +18 -27
- data/src/core/tsi/transport_security_adapter.c +17 -29
- data/src/core/tsi/transport_security_adapter.h +10 -25
- data/src/core/tsi/transport_security_grpc.c +64 -0
- data/src/core/tsi/transport_security_grpc.h +80 -0
- data/src/core/tsi/transport_security_interface.h +21 -27
- data/src/ruby/bin/apis/google/protobuf/empty.rb +10 -25
- data/src/ruby/bin/apis/pubsub_demo.rb +10 -25
- data/src/ruby/bin/apis/tech/pubsub/proto/pubsub.rb +10 -25
- data/src/ruby/bin/apis/tech/pubsub/proto/pubsub_services.rb +10 -25
- data/src/ruby/bin/math_client.rb +10 -25
- data/src/ruby/bin/math_server.rb +10 -25
- data/src/ruby/bin/math_services_pb.rb +10 -25
- data/src/ruby/bin/noproto_client.rb +10 -25
- data/src/ruby/bin/noproto_server.rb +10 -25
- data/src/ruby/ext/grpc/extconf.rb +10 -25
- data/src/ruby/ext/grpc/rb_byte_buffer.c +10 -25
- data/src/ruby/ext/grpc/rb_byte_buffer.h +10 -25
- data/src/ruby/ext/grpc/rb_call.c +44 -25
- data/src/ruby/ext/grpc/rb_call.h +10 -25
- data/src/ruby/ext/grpc/rb_call_credentials.c +10 -25
- data/src/ruby/ext/grpc/rb_call_credentials.h +10 -25
- data/src/ruby/ext/grpc/rb_channel.c +10 -25
- data/src/ruby/ext/grpc/rb_channel.h +10 -25
- data/src/ruby/ext/grpc/rb_channel_args.c +10 -25
- data/src/ruby/ext/grpc/rb_channel_args.h +10 -25
- data/src/ruby/ext/grpc/rb_channel_credentials.c +10 -25
- data/src/ruby/ext/grpc/rb_channel_credentials.h +10 -25
- data/src/ruby/ext/grpc/rb_completion_queue.c +10 -25
- data/src/ruby/ext/grpc/rb_completion_queue.h +10 -25
- data/src/ruby/ext/grpc/rb_compression_options.c +10 -25
- data/src/ruby/ext/grpc/rb_compression_options.h +10 -25
- data/src/ruby/ext/grpc/rb_event_thread.c +10 -25
- data/src/ruby/ext/grpc/rb_event_thread.h +10 -25
- data/src/ruby/ext/grpc/rb_grpc.c +10 -25
- data/src/ruby/ext/grpc/rb_grpc.h +10 -25
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +10 -25
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +16 -31
- data/src/ruby/ext/grpc/rb_loader.c +10 -25
- data/src/ruby/ext/grpc/rb_loader.h +10 -25
- data/src/ruby/ext/grpc/rb_server.c +10 -25
- data/src/ruby/ext/grpc/rb_server.h +10 -25
- data/src/ruby/ext/grpc/rb_server_credentials.c +10 -25
- data/src/ruby/ext/grpc/rb_server_credentials.h +10 -25
- data/src/ruby/lib/grpc.rb +10 -25
- data/src/ruby/lib/grpc/core/time_consts.rb +10 -25
- data/src/ruby/lib/grpc/errors.rb +16 -30
- data/src/ruby/lib/grpc/generic/active_call.rb +25 -27
- data/src/ruby/lib/grpc/generic/bidi_call.rb +17 -27
- data/src/ruby/lib/grpc/generic/client_stub.rb +10 -25
- data/src/ruby/lib/grpc/generic/rpc_desc.rb +10 -25
- data/src/ruby/lib/grpc/generic/rpc_server.rb +10 -25
- data/src/ruby/lib/grpc/generic/service.rb +10 -25
- data/src/ruby/lib/grpc/grpc.rb +10 -25
- data/src/ruby/lib/grpc/logconfig.rb +10 -25
- data/src/ruby/lib/grpc/notifier.rb +10 -25
- data/src/ruby/lib/grpc/version.rb +11 -26
- data/src/ruby/pb/generate_proto_ruby.sh +10 -25
- data/src/ruby/pb/grpc/health/checker.rb +10 -25
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +10 -25
- data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +10 -25
- data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +10 -25
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +10 -25
- data/src/ruby/pb/test/client.rb +10 -25
- data/src/ruby/pb/test/server.rb +10 -25
- data/src/ruby/spec/call_credentials_spec.rb +10 -25
- data/src/ruby/spec/call_spec.rb +43 -25
- data/src/ruby/spec/channel_connection_spec.rb +10 -25
- data/src/ruby/spec/channel_credentials_spec.rb +11 -26
- data/src/ruby/spec/channel_spec.rb +10 -25
- data/src/ruby/spec/client_auth_spec.rb +10 -25
- data/src/ruby/spec/client_server_spec.rb +66 -25
- data/src/ruby/spec/compression_options_spec.rb +10 -25
- data/src/ruby/spec/error_sanity_spec.rb +10 -25
- data/src/ruby/spec/generic/active_call_spec.rb +10 -25
- data/src/ruby/spec/generic/client_stub_spec.rb +146 -35
- data/src/ruby/spec/generic/rpc_desc_spec.rb +10 -25
- data/src/ruby/spec/generic/rpc_server_pool_spec.rb +10 -25
- data/src/ruby/spec/generic/rpc_server_spec.rb +124 -34
- data/src/ruby/spec/generic/service_spec.rb +10 -25
- data/src/ruby/spec/pb/duplicate/codegen_spec.rb +10 -25
- data/src/ruby/spec/pb/health/checker_spec.rb +10 -25
- data/src/ruby/spec/server_credentials_spec.rb +10 -25
- data/src/ruby/spec/server_spec.rb +10 -25
- data/src/ruby/spec/spec_helper.rb +10 -25
- data/src/ruby/spec/time_consts_spec.rb +10 -25
- data/third_party/boringssl/crypto/aes/key_wrap.c +138 -0
- data/third_party/boringssl/crypto/asn1/a_bitstr.c +6 -3
- data/third_party/boringssl/crypto/asn1/a_enum.c +4 -1
- data/third_party/boringssl/crypto/asn1/a_gentm.c +20 -15
- data/third_party/boringssl/crypto/asn1/a_int.c +7 -4
- data/third_party/boringssl/crypto/asn1/a_object.c +5 -2
- data/third_party/boringssl/crypto/asn1/a_time.c +0 -1
- data/third_party/boringssl/crypto/asn1/a_utctm.c +1 -2
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -2
- data/third_party/boringssl/crypto/asn1/asn1_locl.h +35 -0
- data/third_party/boringssl/crypto/asn1/tasn_dec.c +3 -1
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +6 -3
- data/third_party/boringssl/crypto/asn1/tasn_new.c +12 -7
- data/third_party/boringssl/crypto/asn1/tasn_utl.c +22 -8
- data/third_party/boringssl/crypto/{time_support.c → asn1/time_support.c} +1 -1
- data/third_party/boringssl/crypto/asn1/x_long.c +5 -2
- data/third_party/boringssl/crypto/base64/base64.c +7 -5
- data/third_party/boringssl/crypto/bio/bio.c +24 -10
- data/third_party/boringssl/crypto/bio/bio_mem.c +12 -10
- data/third_party/boringssl/crypto/bio/connect.c +7 -18
- data/third_party/boringssl/crypto/bio/fd.c +3 -6
- data/third_party/boringssl/crypto/bio/file.c +6 -6
- data/third_party/boringssl/crypto/bio/hexdump.c +4 -2
- data/third_party/boringssl/crypto/bio/pair.c +30 -344
- data/third_party/boringssl/crypto/bio/socket.c +6 -7
- data/third_party/boringssl/crypto/bio/socket_helper.c +4 -3
- data/third_party/boringssl/crypto/bn/add.c +1 -1
- data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +11 -10
- data/third_party/boringssl/crypto/bn/bn.c +6 -20
- data/third_party/boringssl/crypto/bn/cmp.c +14 -0
- data/third_party/boringssl/crypto/bn/convert.c +73 -2
- data/third_party/boringssl/crypto/bn/ctx.c +3 -1
- data/third_party/boringssl/crypto/bn/div.c +108 -51
- data/third_party/boringssl/crypto/bn/exponentiation.c +15 -33
- data/third_party/boringssl/crypto/bn/gcd.c +29 -22
- data/third_party/boringssl/crypto/bn/generic.c +71 -67
- data/third_party/boringssl/crypto/bn/internal.h +19 -6
- data/third_party/boringssl/crypto/bn/kronecker.c +1 -0
- data/third_party/boringssl/crypto/bn/montgomery.c +9 -10
- data/third_party/boringssl/crypto/bn/montgomery_inv.c +47 -0
- data/third_party/boringssl/crypto/bn/mul.c +11 -9
- data/third_party/boringssl/crypto/bn/random.c +6 -3
- data/third_party/boringssl/crypto/bn/rsaz_exp.c +0 -65
- data/third_party/boringssl/crypto/bn/rsaz_exp.h +0 -3
- data/third_party/boringssl/crypto/bn/shift.c +9 -1
- data/third_party/boringssl/crypto/bn/sqrt.c +3 -1
- data/third_party/boringssl/crypto/buf/buf.c +6 -4
- data/third_party/boringssl/crypto/bytestring/asn1_compat.c +2 -1
- data/third_party/boringssl/crypto/bytestring/ber.c +2 -1
- data/third_party/boringssl/crypto/bytestring/cbb.c +9 -7
- data/third_party/boringssl/crypto/bytestring/cbs.c +54 -2
- data/third_party/boringssl/crypto/chacha/chacha.c +1 -1
- data/third_party/boringssl/crypto/cipher/aead.c +3 -3
- data/third_party/boringssl/crypto/cipher/cipher.c +18 -13
- data/third_party/boringssl/crypto/cipher/e_aes.c +335 -281
- data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +113 -137
- data/third_party/boringssl/crypto/cipher/e_null.c +2 -1
- data/third_party/boringssl/crypto/cipher/e_rc2.c +54 -49
- data/third_party/boringssl/crypto/cipher/e_ssl3.c +4 -3
- data/third_party/boringssl/crypto/cipher/e_tls.c +5 -5
- data/third_party/boringssl/crypto/cipher/tls_cbc.c +41 -112
- data/third_party/boringssl/crypto/cmac/cmac.c +6 -4
- data/third_party/boringssl/crypto/conf/conf.c +6 -3
- data/third_party/boringssl/crypto/cpu-arm-linux.c +2 -2
- data/third_party/boringssl/crypto/curve25519/curve25519.c +28 -34
- data/third_party/boringssl/crypto/curve25519/spake25519.c +7 -6
- data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +2 -1
- data/third_party/boringssl/crypto/des/des.c +1 -1
- data/third_party/boringssl/crypto/des/internal.h +58 -46
- data/third_party/boringssl/crypto/dh/dh.c +4 -8
- data/third_party/boringssl/crypto/digest/digest.c +5 -2
- data/third_party/boringssl/crypto/digest/digests.c +70 -33
- data/third_party/boringssl/crypto/digest/md32_common.h +39 -27
- data/third_party/boringssl/crypto/dsa/dsa.c +11 -19
- data/third_party/boringssl/crypto/ec/ec.c +1 -1
- data/third_party/boringssl/crypto/ec/ec_asn1.c +3 -2
- data/third_party/boringssl/crypto/ec/ec_key.c +1 -1
- data/third_party/boringssl/crypto/ec/ec_montgomery.c +6 -11
- data/third_party/boringssl/crypto/ec/oct.c +2 -14
- data/third_party/boringssl/crypto/ec/p224-64.c +78 -122
- data/third_party/boringssl/crypto/ec/p256-64.c +93 -133
- data/third_party/boringssl/crypto/ec/p256-x86_64.c +48 -61
- data/third_party/boringssl/crypto/ec/p256-x86_64.h +113 -0
- data/third_party/boringssl/crypto/ec/simple.c +2 -1
- data/third_party/boringssl/crypto/ec/wnaf.c +52 -43
- data/third_party/boringssl/crypto/ecdh/ecdh.c +4 -2
- data/third_party/boringssl/crypto/ecdsa/ecdsa.c +17 -16
- data/third_party/boringssl/crypto/engine/engine.c +3 -1
- data/third_party/boringssl/crypto/err/err.c +5 -5
- data/third_party/boringssl/crypto/evp/evp.c +1 -1
- data/third_party/boringssl/crypto/evp/evp_asn1.c +1 -1
- data/third_party/boringssl/crypto/evp/evp_ctx.c +23 -29
- data/third_party/boringssl/crypto/evp/p_ec.c +2 -1
- data/third_party/boringssl/crypto/evp/p_rsa.c +9 -3
- data/third_party/boringssl/crypto/evp/pbkdf.c +3 -1
- data/third_party/boringssl/crypto/hkdf/hkdf.c +3 -1
- data/third_party/boringssl/crypto/hmac/hmac.c +4 -2
- data/third_party/boringssl/crypto/internal.h +81 -0
- data/third_party/boringssl/crypto/lhash/lhash.c +7 -13
- data/third_party/boringssl/crypto/md4/md4.c +20 -18
- data/third_party/boringssl/crypto/md5/md5.c +31 -21
- data/third_party/boringssl/crypto/mem.c +4 -10
- data/third_party/boringssl/crypto/modes/cbc.c +2 -6
- data/third_party/boringssl/crypto/modes/cfb.c +2 -2
- data/third_party/boringssl/crypto/modes/ctr.c +1 -1
- data/third_party/boringssl/crypto/modes/gcm.c +117 -334
- data/third_party/boringssl/crypto/modes/internal.h +107 -84
- data/third_party/boringssl/crypto/modes/ofb.c +3 -3
- data/third_party/boringssl/crypto/modes/polyval.c +94 -0
- data/third_party/boringssl/crypto/obj/obj.c +13 -8
- data/third_party/boringssl/crypto/obj/obj_dat.h +6109 -5187
- data/third_party/boringssl/crypto/obj/obj_xref.c +55 -57
- data/third_party/boringssl/crypto/pem/pem_lib.c +6 -3
- data/third_party/boringssl/crypto/pkcs8/internal.h +27 -8
- data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +137 -352
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +371 -364
- data/third_party/boringssl/crypto/poly1305/poly1305.c +12 -18
- data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +2 -2
- data/third_party/boringssl/crypto/{newhope/reduce.c → pool/internal.h} +24 -21
- data/third_party/boringssl/crypto/pool/pool.c +200 -0
- data/third_party/boringssl/crypto/rand/deterministic.c +6 -5
- data/third_party/boringssl/crypto/rand/fuchsia.c +43 -0
- data/third_party/boringssl/crypto/rand/rand.c +7 -7
- data/third_party/boringssl/crypto/rand/urandom.c +136 -22
- data/third_party/boringssl/crypto/rand/windows.c +2 -2
- data/third_party/boringssl/crypto/rsa/blinding.c +2 -1
- data/third_party/boringssl/crypto/rsa/padding.c +11 -11
- data/third_party/boringssl/crypto/rsa/rsa.c +4 -4
- data/third_party/boringssl/crypto/rsa/rsa_asn1.c +7 -1
- data/third_party/boringssl/crypto/rsa/rsa_impl.c +41 -80
- data/third_party/boringssl/crypto/sha/sha1-altivec.c +346 -0
- data/third_party/boringssl/crypto/sha/sha1.c +60 -42
- data/third_party/boringssl/crypto/sha/sha256.c +4 -2
- data/third_party/boringssl/crypto/sha/sha512.c +9 -7
- data/third_party/boringssl/crypto/stack/stack.c +10 -7
- data/third_party/boringssl/crypto/thread_pthread.c +2 -2
- data/third_party/boringssl/crypto/thread_win.c +2 -2
- data/third_party/boringssl/crypto/x509/a_verify.c +1 -1
- data/third_party/boringssl/crypto/x509/asn1_gen.c +1 -1
- data/third_party/boringssl/crypto/x509/by_dir.c +1 -1
- data/third_party/boringssl/crypto/x509/t_x509.c +78 -38
- data/third_party/boringssl/crypto/x509/x509_cmp.c +8 -5
- data/third_party/boringssl/crypto/x509/x509_lu.c +6 -1
- data/third_party/boringssl/crypto/x509/x509_obj.c +4 -1
- data/third_party/boringssl/crypto/x509/x509_vfy.c +42 -8
- data/third_party/boringssl/crypto/x509/x509_vpm.c +8 -6
- data/third_party/boringssl/crypto/x509/x509name.c +4 -1
- data/third_party/boringssl/crypto/x509/x_crl.c +4 -2
- data/third_party/boringssl/crypto/x509/x_name.c +23 -13
- data/third_party/boringssl/crypto/x509/x_pkey.c +4 -1
- data/third_party/boringssl/crypto/x509/x_x509.c +42 -3
- data/third_party/boringssl/crypto/x509v3/pcy_int.h +2 -2
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +2 -1
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +1 -1
- data/third_party/boringssl/crypto/x509v3/v3_ia5.c +4 -1
- data/third_party/boringssl/crypto/x509v3/v3_ncons.c +4 -1
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +6 -3
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +13 -21
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +19 -33
- data/third_party/boringssl/include/openssl/aead.h +9 -20
- data/third_party/boringssl/include/openssl/aes.h +21 -9
- data/third_party/boringssl/include/openssl/asn1.h +9 -1
- data/third_party/boringssl/include/openssl/base.h +33 -6
- data/third_party/boringssl/include/openssl/bio.h +10 -103
- data/third_party/boringssl/include/openssl/bn.h +58 -42
- data/third_party/boringssl/include/openssl/bytestring.h +17 -0
- data/third_party/boringssl/include/openssl/cipher.h +4 -3
- data/third_party/boringssl/include/openssl/conf.h +4 -1
- data/third_party/boringssl/include/openssl/curve25519.h +13 -0
- data/third_party/boringssl/include/openssl/digest.h +5 -3
- data/third_party/boringssl/include/openssl/dsa.h +5 -5
- data/third_party/boringssl/include/openssl/ec.h +2 -2
- data/third_party/boringssl/include/openssl/ecdh.h +3 -4
- data/third_party/boringssl/include/openssl/ecdsa.h +10 -10
- data/third_party/boringssl/include/openssl/err.h +5 -5
- data/third_party/boringssl/include/openssl/evp.h +11 -7
- data/third_party/boringssl/include/openssl/lhash.h +2 -3
- data/third_party/boringssl/include/openssl/lhash_macros.h +56 -14
- data/third_party/boringssl/include/openssl/nid.h +2949 -2916
- data/third_party/boringssl/include/openssl/obj.h +1 -1
- data/third_party/boringssl/include/openssl/pkcs8.h +21 -42
- data/third_party/boringssl/include/openssl/pool.h +87 -0
- data/third_party/boringssl/include/openssl/rand.h +1 -1
- data/third_party/boringssl/include/openssl/rsa.h +4 -2
- data/third_party/boringssl/include/openssl/sha.h +0 -4
- data/third_party/boringssl/include/openssl/ssl.h +327 -662
- data/third_party/boringssl/include/openssl/ssl3.h +1 -21
- data/third_party/boringssl/include/openssl/stack.h +1 -0
- data/third_party/boringssl/include/openssl/stack_macros.h +85 -0
- data/third_party/boringssl/include/openssl/tls1.h +23 -52
- data/third_party/boringssl/include/openssl/type_check.h +4 -0
- data/third_party/boringssl/include/openssl/x509.h +10 -59
- data/third_party/boringssl/include/openssl/x509_vfy.h +7 -1
- data/third_party/boringssl/include/openssl/x509v3.h +4 -4
- data/third_party/boringssl/ssl/bio_ssl.c +175 -0
- data/third_party/boringssl/ssl/custom_extensions.c +24 -21
- data/third_party/boringssl/ssl/d1_both.c +259 -289
- data/third_party/boringssl/ssl/d1_lib.c +8 -20
- data/third_party/boringssl/ssl/d1_pkt.c +6 -15
- data/third_party/boringssl/ssl/dtls_method.c +22 -8
- data/third_party/boringssl/ssl/dtls_record.c +27 -2
- data/third_party/boringssl/ssl/handshake_client.c +460 -579
- data/third_party/boringssl/ssl/handshake_server.c +662 -644
- data/third_party/boringssl/ssl/internal.h +1009 -375
- data/third_party/boringssl/ssl/s3_both.c +312 -162
- data/third_party/boringssl/ssl/s3_lib.c +12 -128
- data/third_party/boringssl/ssl/s3_pkt.c +22 -30
- data/third_party/boringssl/ssl/ssl_aead_ctx.c +28 -22
- data/third_party/boringssl/ssl/ssl_asn1.c +210 -114
- data/third_party/boringssl/ssl/ssl_buffer.c +2 -1
- data/third_party/boringssl/ssl/ssl_cert.c +417 -219
- data/third_party/boringssl/ssl/ssl_cipher.c +191 -393
- data/third_party/boringssl/ssl/ssl_ecdh.c +19 -164
- data/third_party/boringssl/ssl/ssl_file.c +0 -11
- data/third_party/boringssl/ssl/ssl_lib.c +325 -652
- data/third_party/boringssl/ssl/{ssl_rsa.c → ssl_privkey.c} +21 -131
- data/third_party/boringssl/ssl/ssl_privkey_cc.cc +76 -0
- data/third_party/boringssl/ssl/ssl_session.c +206 -95
- data/third_party/boringssl/ssl/ssl_stat.c +18 -84
- data/third_party/boringssl/ssl/{s3_enc.c → ssl_transcript.c} +150 -157
- data/third_party/boringssl/ssl/ssl_x509.c +815 -0
- data/third_party/boringssl/ssl/t1_enc.c +188 -174
- data/third_party/boringssl/ssl/t1_lib.c +1064 -764
- data/third_party/boringssl/ssl/tls13_both.c +290 -96
- data/third_party/boringssl/ssl/tls13_client.c +344 -314
- data/third_party/boringssl/ssl/tls13_enc.c +239 -200
- data/third_party/boringssl/ssl/tls13_server.c +374 -366
- data/third_party/boringssl/ssl/tls_method.c +40 -5
- data/third_party/boringssl/ssl/tls_record.c +166 -71
- metadata +39 -25
- data/src/core/lib/iomgr/workqueue.h +0 -87
- data/src/core/lib/iomgr/workqueue_uv.c +0 -65
- data/src/core/lib/iomgr/workqueue_uv.h +0 -37
- data/src/core/lib/iomgr/workqueue_windows.c +0 -63
- data/src/core/lib/iomgr/workqueue_windows.h +0 -37
- data/third_party/boringssl/crypto/bio/buffer.c +0 -496
- data/third_party/boringssl/crypto/newhope/error_correction.c +0 -131
- data/third_party/boringssl/crypto/newhope/internal.h +0 -71
- data/third_party/boringssl/crypto/newhope/newhope.c +0 -174
- data/third_party/boringssl/crypto/newhope/ntt.c +0 -148
- data/third_party/boringssl/crypto/newhope/poly.c +0 -183
- data/third_party/boringssl/crypto/newhope/precomp.c +0 -306
- data/third_party/boringssl/crypto/obj/obj_xref.h +0 -96
- data/third_party/boringssl/crypto/pkcs8/p5_pbe.c +0 -151
- data/third_party/boringssl/include/openssl/newhope.h +0 -158
- data/third_party/boringssl/include/openssl/time_support.h +0 -91
@@ -343,50 +343,39 @@ static const SSL_CIPHER kCiphers[] = {
|
|
343
343
|
SSL_HANDSHAKE_MAC_SHA384,
|
344
344
|
},
|
345
345
|
|
346
|
-
/*
|
346
|
+
/* TLS 1.3 suites. */
|
347
347
|
|
348
|
-
/* Cipher
|
348
|
+
/* Cipher 1301 */
|
349
349
|
{
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
},
|
358
|
-
|
359
|
-
/* Cipher 16B8 */
|
360
|
-
{
|
361
|
-
TLS1_TXT_CECPQ1_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
|
362
|
-
TLS1_CK_CECPQ1_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
|
363
|
-
SSL_kCECPQ1,
|
364
|
-
SSL_aECDSA,
|
365
|
-
SSL_CHACHA20POLY1305,
|
366
|
-
SSL_AEAD,
|
367
|
-
SSL_HANDSHAKE_MAC_SHA256,
|
350
|
+
TLS1_TXT_AES_128_GCM_SHA256,
|
351
|
+
TLS1_CK_AES_128_GCM_SHA256,
|
352
|
+
SSL_kGENERIC,
|
353
|
+
SSL_aGENERIC,
|
354
|
+
SSL_AES128GCM,
|
355
|
+
SSL_AEAD,
|
356
|
+
SSL_HANDSHAKE_MAC_SHA256,
|
368
357
|
},
|
369
358
|
|
370
|
-
/* Cipher
|
359
|
+
/* Cipher 1302 */
|
371
360
|
{
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
361
|
+
TLS1_TXT_AES_256_GCM_SHA384,
|
362
|
+
TLS1_CK_AES_256_GCM_SHA384,
|
363
|
+
SSL_kGENERIC,
|
364
|
+
SSL_aGENERIC,
|
365
|
+
SSL_AES256GCM,
|
366
|
+
SSL_AEAD,
|
367
|
+
SSL_HANDSHAKE_MAC_SHA384,
|
379
368
|
},
|
380
369
|
|
381
|
-
/* Cipher
|
370
|
+
/* Cipher 1303 */
|
382
371
|
{
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
372
|
+
TLS1_TXT_CHACHA20_POLY1305_SHA256,
|
373
|
+
TLS1_CK_CHACHA20_POLY1305_SHA256,
|
374
|
+
SSL_kGENERIC,
|
375
|
+
SSL_aGENERIC,
|
376
|
+
SSL_CHACHA20POLY1305,
|
377
|
+
SSL_AEAD,
|
378
|
+
SSL_HANDSHAKE_MAC_SHA256,
|
390
379
|
},
|
391
380
|
|
392
381
|
/* Cipher C009 */
|
@@ -553,28 +542,6 @@ static const SSL_CIPHER kCiphers[] = {
|
|
553
542
|
|
554
543
|
/* ChaCha20-Poly1305 cipher suites. */
|
555
544
|
|
556
|
-
#if !defined(BORINGSSL_ANDROID_SYSTEM)
|
557
|
-
{
|
558
|
-
TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305_OLD,
|
559
|
-
TLS1_CK_ECDHE_RSA_CHACHA20_POLY1305_OLD,
|
560
|
-
SSL_kECDHE,
|
561
|
-
SSL_aRSA,
|
562
|
-
SSL_CHACHA20POLY1305_OLD,
|
563
|
-
SSL_AEAD,
|
564
|
-
SSL_HANDSHAKE_MAC_SHA256,
|
565
|
-
},
|
566
|
-
|
567
|
-
{
|
568
|
-
TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_OLD,
|
569
|
-
TLS1_CK_ECDHE_ECDSA_CHACHA20_POLY1305_OLD,
|
570
|
-
SSL_kECDHE,
|
571
|
-
SSL_aECDSA,
|
572
|
-
SSL_CHACHA20POLY1305_OLD,
|
573
|
-
SSL_AEAD,
|
574
|
-
SSL_HANDSHAKE_MAC_SHA256,
|
575
|
-
},
|
576
|
-
#endif
|
577
|
-
|
578
545
|
/* Cipher CCA8 */
|
579
546
|
{
|
580
547
|
TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
|
@@ -608,28 +575,6 @@ static const SSL_CIPHER kCiphers[] = {
|
|
608
575
|
SSL_HANDSHAKE_MAC_SHA256,
|
609
576
|
},
|
610
577
|
|
611
|
-
/* Cipher D001 */
|
612
|
-
{
|
613
|
-
TLS1_TXT_ECDHE_PSK_WITH_AES_128_GCM_SHA256,
|
614
|
-
TLS1_CK_ECDHE_PSK_WITH_AES_128_GCM_SHA256,
|
615
|
-
SSL_kECDHE,
|
616
|
-
SSL_aPSK,
|
617
|
-
SSL_AES128GCM,
|
618
|
-
SSL_AEAD,
|
619
|
-
SSL_HANDSHAKE_MAC_SHA256,
|
620
|
-
},
|
621
|
-
|
622
|
-
/* Cipher D002 */
|
623
|
-
{
|
624
|
-
TLS1_TXT_ECDHE_PSK_WITH_AES_256_GCM_SHA384,
|
625
|
-
TLS1_CK_ECDHE_PSK_WITH_AES_256_GCM_SHA384,
|
626
|
-
SSL_kECDHE,
|
627
|
-
SSL_aPSK,
|
628
|
-
SSL_AES256GCM,
|
629
|
-
SSL_AEAD,
|
630
|
-
SSL_HANDSHAKE_MAC_SHA384,
|
631
|
-
},
|
632
|
-
|
633
578
|
};
|
634
579
|
|
635
580
|
static const size_t kCiphersLen = OPENSSL_ARRAY_SIZE(kCiphers);
|
@@ -666,9 +611,8 @@ typedef struct cipher_alias_st {
|
|
666
611
|
} CIPHER_ALIAS;
|
667
612
|
|
668
613
|
static const CIPHER_ALIAS kCipherAliases[] = {
|
669
|
-
/* "ALL" doesn't include eNULL
|
670
|
-
|
671
|
-
{"ALL", ~SSL_kCECPQ1, ~0u, ~SSL_eNULL, ~0u, 0},
|
614
|
+
/* "ALL" doesn't include eNULL. It must be explicitly enabled. */
|
615
|
+
{"ALL", ~0u, ~0u, ~SSL_eNULL, ~0u, 0},
|
672
616
|
|
673
617
|
/* The "COMPLEMENTOFDEFAULT" rule is omitted. It matches nothing. */
|
674
618
|
|
@@ -683,16 +627,15 @@ static const CIPHER_ALIAS kCipherAliases[] = {
|
|
683
627
|
{"DH", SSL_kDHE, ~0u, ~0u, ~0u, 0},
|
684
628
|
|
685
629
|
{"kECDHE", SSL_kECDHE, ~0u, ~0u, ~0u, 0},
|
686
|
-
{"kCECPQ1", SSL_kCECPQ1, ~0u, ~0u, ~0u, 0},
|
687
630
|
{"kEECDH", SSL_kECDHE, ~0u, ~0u, ~0u, 0},
|
688
631
|
{"ECDH", SSL_kECDHE, ~0u, ~0u, ~0u, 0},
|
689
632
|
|
690
633
|
{"kPSK", SSL_kPSK, ~0u, ~0u, ~0u, 0},
|
691
634
|
|
692
635
|
/* server authentication aliases */
|
693
|
-
{"aRSA", ~
|
694
|
-
{"aECDSA", ~
|
695
|
-
{"ECDSA", ~
|
636
|
+
{"aRSA", ~0u, SSL_aRSA, ~SSL_eNULL, ~0u, 0},
|
637
|
+
{"aECDSA", ~0u, SSL_aECDSA, ~0u, ~0u, 0},
|
638
|
+
{"ECDSA", ~0u, SSL_aECDSA, ~0u, ~0u, 0},
|
696
639
|
{"aPSK", ~0u, SSL_aPSK, ~0u, ~0u, 0},
|
697
640
|
|
698
641
|
/* aliases combining key exchange and server authentication */
|
@@ -706,28 +649,26 @@ static const CIPHER_ALIAS kCipherAliases[] = {
|
|
706
649
|
/* symmetric encryption aliases */
|
707
650
|
{"3DES", ~0u, ~0u, SSL_3DES, ~0u, 0},
|
708
651
|
{"AES128", ~0u, ~0u, SSL_AES128 | SSL_AES128GCM, ~0u, 0},
|
709
|
-
{"AES256", ~
|
710
|
-
{"AES", ~
|
711
|
-
{"AESGCM", ~
|
712
|
-
{"CHACHA20", ~
|
713
|
-
0},
|
652
|
+
{"AES256", ~0u, ~0u, SSL_AES256 | SSL_AES256GCM, ~0u, 0},
|
653
|
+
{"AES", ~0u, ~0u, SSL_AES, ~0u, 0},
|
654
|
+
{"AESGCM", ~0u, ~0u, SSL_AES128GCM | SSL_AES256GCM, ~0u, 0},
|
655
|
+
{"CHACHA20", ~0u, ~0u, SSL_CHACHA20POLY1305, ~0u, 0},
|
714
656
|
|
715
657
|
/* MAC aliases */
|
716
|
-
{"MD5", ~0u, ~0u, ~0u, SSL_MD5, 0},
|
717
658
|
{"SHA1", ~0u, ~0u, ~SSL_eNULL, SSL_SHA1, 0},
|
718
659
|
{"SHA", ~0u, ~0u, ~SSL_eNULL, SSL_SHA1, 0},
|
719
|
-
{"SHA256", ~
|
720
|
-
{"SHA384", ~
|
660
|
+
{"SHA256", ~0u, ~0u, ~0u, SSL_SHA256, 0},
|
661
|
+
{"SHA384", ~0u, ~0u, ~0u, SSL_SHA384, 0},
|
721
662
|
|
722
663
|
/* Legacy protocol minimum version aliases. "TLSv1" is intentionally the
|
723
664
|
* same as "SSLv3". */
|
724
|
-
{"SSLv3", ~
|
725
|
-
{"TLSv1", ~
|
726
|
-
{"TLSv1.2", ~
|
665
|
+
{"SSLv3", ~0u, ~0u, ~SSL_eNULL, ~0u, SSL3_VERSION},
|
666
|
+
{"TLSv1", ~0u, ~0u, ~SSL_eNULL, ~0u, SSL3_VERSION},
|
667
|
+
{"TLSv1.2", ~0u, ~0u, ~SSL_eNULL, ~0u, TLS1_2_VERSION},
|
727
668
|
|
728
669
|
/* Legacy strength classes. */
|
729
|
-
{"HIGH", ~
|
730
|
-
{"FIPS", ~
|
670
|
+
{"HIGH", ~0u, ~0u, ~SSL_eNULL, ~0u, 0},
|
671
|
+
{"FIPS", ~0u, ~0u, ~SSL_eNULL, ~0u, 0},
|
731
672
|
};
|
732
673
|
|
733
674
|
static const size_t kCipherAliasesLen = OPENSSL_ARRAY_SIZE(kCipherAliases);
|
@@ -745,10 +686,6 @@ static int ssl_cipher_id_cmp(const void *in_a, const void *in_b) {
|
|
745
686
|
}
|
746
687
|
}
|
747
688
|
|
748
|
-
static int ssl_cipher_ptr_id_cmp(const SSL_CIPHER **a, const SSL_CIPHER **b) {
|
749
|
-
return ssl_cipher_id_cmp(*a, *b);
|
750
|
-
}
|
751
|
-
|
752
689
|
const SSL_CIPHER *SSL_get_cipher_by_value(uint16_t value) {
|
753
690
|
SSL_CIPHER c;
|
754
691
|
|
@@ -765,132 +702,96 @@ int ssl_cipher_get_evp_aead(const EVP_AEAD **out_aead,
|
|
765
702
|
*out_mac_secret_len = 0;
|
766
703
|
*out_fixed_iv_len = 0;
|
767
704
|
|
768
|
-
|
769
|
-
|
705
|
+
if (cipher->algorithm_mac == SSL_AEAD) {
|
706
|
+
if (cipher->algorithm_enc == SSL_AES128GCM) {
|
770
707
|
*out_aead = EVP_aead_aes_128_gcm();
|
771
708
|
*out_fixed_iv_len = 4;
|
772
|
-
|
773
|
-
|
774
|
-
case SSL_AES256GCM:
|
709
|
+
} else if (cipher->algorithm_enc == SSL_AES256GCM) {
|
775
710
|
*out_aead = EVP_aead_aes_256_gcm();
|
776
711
|
*out_fixed_iv_len = 4;
|
777
|
-
|
778
|
-
|
779
|
-
#if !defined(BORINGSSL_ANDROID_SYSTEM)
|
780
|
-
case SSL_CHACHA20POLY1305_OLD:
|
781
|
-
*out_aead = EVP_aead_chacha20_poly1305_old();
|
782
|
-
*out_fixed_iv_len = 0;
|
783
|
-
break;
|
784
|
-
#endif
|
785
|
-
|
786
|
-
case SSL_CHACHA20POLY1305:
|
712
|
+
} else if (cipher->algorithm_enc == SSL_CHACHA20POLY1305) {
|
787
713
|
*out_aead = EVP_aead_chacha20_poly1305();
|
788
714
|
*out_fixed_iv_len = 12;
|
789
|
-
|
715
|
+
} else {
|
716
|
+
return 0;
|
717
|
+
}
|
790
718
|
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
}
|
803
|
-
*out_mac_secret_len = SHA_DIGEST_LENGTH;
|
804
|
-
break;
|
805
|
-
case SSL_SHA256:
|
806
|
-
*out_aead = EVP_aead_aes_128_cbc_sha256_tls();
|
807
|
-
*out_mac_secret_len = SHA256_DIGEST_LENGTH;
|
808
|
-
break;
|
809
|
-
default:
|
810
|
-
return 0;
|
719
|
+
/* In TLS 1.3, the iv_len is equal to the AEAD nonce length whereas the code
|
720
|
+
* above computes the TLS 1.2 construction. */
|
721
|
+
if (version >= TLS1_3_VERSION) {
|
722
|
+
*out_fixed_iv_len = EVP_AEAD_nonce_length(*out_aead);
|
723
|
+
}
|
724
|
+
} else if (cipher->algorithm_mac == SSL_SHA1) {
|
725
|
+
if (cipher->algorithm_enc == SSL_eNULL) {
|
726
|
+
if (version == SSL3_VERSION) {
|
727
|
+
*out_aead = EVP_aead_null_sha1_ssl3();
|
728
|
+
} else {
|
729
|
+
*out_aead = EVP_aead_null_sha1_tls();
|
811
730
|
}
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
*out_aead = EVP_aead_aes_256_cbc_sha1_tls_implicit_iv();
|
822
|
-
*out_fixed_iv_len = 16;
|
823
|
-
} else {
|
824
|
-
*out_aead = EVP_aead_aes_256_cbc_sha1_tls();
|
825
|
-
}
|
826
|
-
*out_mac_secret_len = SHA_DIGEST_LENGTH;
|
827
|
-
break;
|
828
|
-
case SSL_SHA256:
|
829
|
-
*out_aead = EVP_aead_aes_256_cbc_sha256_tls();
|
830
|
-
*out_mac_secret_len = SHA256_DIGEST_LENGTH;
|
831
|
-
break;
|
832
|
-
case SSL_SHA384:
|
833
|
-
*out_aead = EVP_aead_aes_256_cbc_sha384_tls();
|
834
|
-
*out_mac_secret_len = SHA384_DIGEST_LENGTH;
|
835
|
-
break;
|
836
|
-
default:
|
837
|
-
return 0;
|
731
|
+
} else if (cipher->algorithm_enc == SSL_3DES) {
|
732
|
+
if (version == SSL3_VERSION) {
|
733
|
+
*out_aead = EVP_aead_des_ede3_cbc_sha1_ssl3();
|
734
|
+
*out_fixed_iv_len = 8;
|
735
|
+
} else if (version == TLS1_VERSION) {
|
736
|
+
*out_aead = EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv();
|
737
|
+
*out_fixed_iv_len = 8;
|
738
|
+
} else {
|
739
|
+
*out_aead = EVP_aead_des_ede3_cbc_sha1_tls();
|
838
740
|
}
|
839
|
-
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
|
844
|
-
|
845
|
-
|
846
|
-
|
847
|
-
|
848
|
-
*out_aead = EVP_aead_des_ede3_cbc_sha1_tls_implicit_iv();
|
849
|
-
*out_fixed_iv_len = 8;
|
850
|
-
} else {
|
851
|
-
*out_aead = EVP_aead_des_ede3_cbc_sha1_tls();
|
852
|
-
}
|
853
|
-
*out_mac_secret_len = SHA_DIGEST_LENGTH;
|
854
|
-
break;
|
855
|
-
default:
|
856
|
-
return 0;
|
741
|
+
} else if (cipher->algorithm_enc == SSL_AES128) {
|
742
|
+
if (version == SSL3_VERSION) {
|
743
|
+
*out_aead = EVP_aead_aes_128_cbc_sha1_ssl3();
|
744
|
+
*out_fixed_iv_len = 16;
|
745
|
+
} else if (version == TLS1_VERSION) {
|
746
|
+
*out_aead = EVP_aead_aes_128_cbc_sha1_tls_implicit_iv();
|
747
|
+
*out_fixed_iv_len = 16;
|
748
|
+
} else {
|
749
|
+
*out_aead = EVP_aead_aes_128_cbc_sha1_tls();
|
857
750
|
}
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
|
865
|
-
|
866
|
-
|
867
|
-
}
|
868
|
-
*out_mac_secret_len = SHA_DIGEST_LENGTH;
|
869
|
-
break;
|
870
|
-
default:
|
871
|
-
return 0;
|
751
|
+
} else if (cipher->algorithm_enc == SSL_AES256) {
|
752
|
+
if (version == SSL3_VERSION) {
|
753
|
+
*out_aead = EVP_aead_aes_256_cbc_sha1_ssl3();
|
754
|
+
*out_fixed_iv_len = 16;
|
755
|
+
} else if (version == TLS1_VERSION) {
|
756
|
+
*out_aead = EVP_aead_aes_256_cbc_sha1_tls_implicit_iv();
|
757
|
+
*out_fixed_iv_len = 16;
|
758
|
+
} else {
|
759
|
+
*out_aead = EVP_aead_aes_256_cbc_sha1_tls();
|
872
760
|
}
|
873
|
-
|
761
|
+
} else {
|
762
|
+
return 0;
|
763
|
+
}
|
874
764
|
|
875
|
-
|
765
|
+
*out_mac_secret_len = SHA_DIGEST_LENGTH;
|
766
|
+
} else if (cipher->algorithm_mac == SSL_SHA256) {
|
767
|
+
if (cipher->algorithm_enc == SSL_AES128) {
|
768
|
+
*out_aead = EVP_aead_aes_128_cbc_sha256_tls();
|
769
|
+
} else if (cipher->algorithm_enc == SSL_AES256) {
|
770
|
+
*out_aead = EVP_aead_aes_256_cbc_sha256_tls();
|
771
|
+
} else {
|
876
772
|
return 0;
|
877
|
-
|
773
|
+
}
|
774
|
+
|
775
|
+
*out_mac_secret_len = SHA256_DIGEST_LENGTH;
|
776
|
+
} else if (cipher->algorithm_mac == SSL_SHA384) {
|
777
|
+
if (cipher->algorithm_enc != SSL_AES256) {
|
778
|
+
return 0;
|
779
|
+
}
|
878
780
|
|
879
|
-
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
if (version >= TLS1_3_VERSION) {
|
884
|
-
*out_fixed_iv_len = EVP_AEAD_nonce_length(*out_aead);
|
885
|
-
assert(*out_fixed_iv_len >= 8);
|
781
|
+
*out_aead = EVP_aead_aes_256_cbc_sha384_tls();
|
782
|
+
*out_mac_secret_len = SHA384_DIGEST_LENGTH;
|
783
|
+
} else {
|
784
|
+
return 0;
|
886
785
|
}
|
786
|
+
|
887
787
|
return 1;
|
888
788
|
}
|
889
789
|
|
890
|
-
const EVP_MD *ssl_get_handshake_digest(uint32_t algorithm_prf
|
790
|
+
const EVP_MD *ssl_get_handshake_digest(uint32_t algorithm_prf,
|
791
|
+
uint16_t version) {
|
891
792
|
switch (algorithm_prf) {
|
892
793
|
case SSL_HANDSHAKE_MAC_DEFAULT:
|
893
|
-
return
|
794
|
+
return version >= TLS1_2_VERSION ? EVP_sha256() : EVP_md5_sha1();
|
894
795
|
case SSL_HANDSHAKE_MAC_SHA256:
|
895
796
|
return EVP_sha256();
|
896
797
|
case SSL_HANDSHAKE_MAC_SHA384:
|
@@ -959,7 +860,9 @@ static void ssl_cipher_collect_ciphers(const SSL_PROTOCOL_METHOD *ssl_method,
|
|
959
860
|
size_t co_list_num = 0;
|
960
861
|
for (size_t i = 0; i < kCiphersLen; i++) {
|
961
862
|
const SSL_CIPHER *cipher = &kCiphers[i];
|
962
|
-
if (ssl_method->supports_cipher(cipher)
|
863
|
+
if (ssl_method->supports_cipher(cipher) &&
|
864
|
+
/* TLS 1.3 ciphers do not participate in this mechanism. */
|
865
|
+
cipher->algorithm_mkey != SSL_kGENERIC) {
|
963
866
|
co_list[co_list_num].cipher = cipher;
|
964
867
|
co_list[co_list_num].next = NULL;
|
965
868
|
co_list[co_list_num].prev = NULL;
|
@@ -1063,14 +966,6 @@ static void ssl_cipher_apply_rule(
|
|
1063
966
|
(min_version != 0 && SSL_CIPHER_get_min_version(cp) != min_version)) {
|
1064
967
|
continue;
|
1065
968
|
}
|
1066
|
-
|
1067
|
-
/* The following ciphers are internal implementation details of TLS 1.3
|
1068
|
-
* resumption but are not yet finalized. Disable them by default until
|
1069
|
-
* then. */
|
1070
|
-
if (cp->id == TLS1_CK_ECDHE_PSK_WITH_AES_128_GCM_SHA256 ||
|
1071
|
-
cp->id == TLS1_CK_ECDHE_PSK_WITH_AES_256_GCM_SHA384) {
|
1072
|
-
continue;
|
1073
|
-
}
|
1074
969
|
}
|
1075
970
|
|
1076
971
|
/* add the cipher if it has not been added yet. */
|
@@ -1150,7 +1045,7 @@ static int ssl_cipher_strength_sort(CIPHER_ORDER **head_p,
|
|
1150
1045
|
OPENSSL_PUT_ERROR(SSL, ERR_R_MALLOC_FAILURE);
|
1151
1046
|
return 0;
|
1152
1047
|
}
|
1153
|
-
|
1048
|
+
OPENSSL_memset(number_uses, 0, (max_strength_bits + 1) * sizeof(int));
|
1154
1049
|
|
1155
1050
|
/* Now find the strength_bits values actually used. */
|
1156
1051
|
curr = *head_p;
|
@@ -1175,16 +1070,15 @@ static int ssl_cipher_strength_sort(CIPHER_ORDER **head_p,
|
|
1175
1070
|
static int ssl_cipher_process_rulestr(const SSL_PROTOCOL_METHOD *ssl_method,
|
1176
1071
|
const char *rule_str,
|
1177
1072
|
CIPHER_ORDER **head_p,
|
1178
|
-
CIPHER_ORDER **tail_p) {
|
1073
|
+
CIPHER_ORDER **tail_p, int strict) {
|
1179
1074
|
uint32_t alg_mkey, alg_auth, alg_enc, alg_mac;
|
1180
1075
|
uint16_t min_version;
|
1181
1076
|
const char *l, *buf;
|
1182
|
-
int multi, skip_rule, rule,
|
1077
|
+
int multi, skip_rule, rule, ok, in_group = 0, has_group = 0;
|
1183
1078
|
size_t j, buf_len;
|
1184
1079
|
uint32_t cipher_id;
|
1185
1080
|
char ch;
|
1186
1081
|
|
1187
|
-
retval = 1;
|
1188
1082
|
l = rule_str;
|
1189
1083
|
for (;;) {
|
1190
1084
|
ch = *l;
|
@@ -1210,8 +1104,7 @@ static int ssl_cipher_process_rulestr(const SSL_PROTOCOL_METHOD *ssl_method,
|
|
1210
1104
|
} else if (!(ch >= 'a' && ch <= 'z') && !(ch >= 'A' && ch <= 'Z') &&
|
1211
1105
|
!(ch >= '0' && ch <= '9')) {
|
1212
1106
|
OPENSSL_PUT_ERROR(SSL, SSL_R_UNEXPECTED_OPERATOR_IN_GROUP);
|
1213
|
-
|
1214
|
-
break;
|
1107
|
+
return 0;
|
1215
1108
|
} else {
|
1216
1109
|
rule = CIPHER_ADD;
|
1217
1110
|
}
|
@@ -1230,8 +1123,7 @@ static int ssl_cipher_process_rulestr(const SSL_PROTOCOL_METHOD *ssl_method,
|
|
1230
1123
|
} else if (ch == '[') {
|
1231
1124
|
if (in_group) {
|
1232
1125
|
OPENSSL_PUT_ERROR(SSL, SSL_R_NESTED_GROUP);
|
1233
|
-
|
1234
|
-
break;
|
1126
|
+
return 0;
|
1235
1127
|
}
|
1236
1128
|
in_group = 1;
|
1237
1129
|
has_group = 1;
|
@@ -1245,8 +1137,7 @@ static int ssl_cipher_process_rulestr(const SSL_PROTOCOL_METHOD *ssl_method,
|
|
1245
1137
|
* Otherwise the in_group bits will get mixed up. */
|
1246
1138
|
if (has_group && rule != CIPHER_ADD) {
|
1247
1139
|
OPENSSL_PUT_ERROR(SSL, SSL_R_MIXED_SPECIAL_OPERATOR_WITH_GROUPS);
|
1248
|
-
|
1249
|
-
break;
|
1140
|
+
return 0;
|
1250
1141
|
}
|
1251
1142
|
|
1252
1143
|
if (ITEM_SEP(ch)) {
|
@@ -1277,9 +1168,7 @@ static int ssl_cipher_process_rulestr(const SSL_PROTOCOL_METHOD *ssl_method,
|
|
1277
1168
|
/* We hit something we cannot deal with, it is no command or separator
|
1278
1169
|
* nor alphanumeric, so we call this an error. */
|
1279
1170
|
OPENSSL_PUT_ERROR(SSL, SSL_R_INVALID_COMMAND);
|
1280
|
-
|
1281
|
-
l++;
|
1282
|
-
break;
|
1171
|
+
return 0;
|
1283
1172
|
}
|
1284
1173
|
|
1285
1174
|
if (rule == CIPHER_SPECIAL) {
|
@@ -1317,6 +1206,10 @@ static int ssl_cipher_process_rulestr(const SSL_PROTOCOL_METHOD *ssl_method,
|
|
1317
1206
|
}
|
1318
1207
|
if (j == kCipherAliasesLen) {
|
1319
1208
|
skip_rule = 1;
|
1209
|
+
if (strict) {
|
1210
|
+
OPENSSL_PUT_ERROR(SSL, SSL_R_INVALID_COMMAND);
|
1211
|
+
return 0;
|
1212
|
+
}
|
1320
1213
|
}
|
1321
1214
|
}
|
1322
1215
|
|
@@ -1328,29 +1221,6 @@ static int ssl_cipher_process_rulestr(const SSL_PROTOCOL_METHOD *ssl_method,
|
|
1328
1221
|
multi = 1;
|
1329
1222
|
}
|
1330
1223
|
|
1331
|
-
/* If one of the CHACHA20_POLY1305 variants is selected, include the other
|
1332
|
-
* as well. They have the same name to avoid requiring changes in
|
1333
|
-
* configuration. Apply this transformation late so that the cipher name
|
1334
|
-
* still behaves as an exact name and not an alias in multipart rules.
|
1335
|
-
*
|
1336
|
-
* This is temporary and will be removed when the pre-standard construction
|
1337
|
-
* is removed. */
|
1338
|
-
if (cipher_id == TLS1_CK_ECDHE_RSA_CHACHA20_POLY1305_OLD ||
|
1339
|
-
cipher_id == TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256) {
|
1340
|
-
cipher_id = 0;
|
1341
|
-
alg_mkey = SSL_kECDHE;
|
1342
|
-
alg_auth = SSL_aRSA;
|
1343
|
-
alg_enc = SSL_CHACHA20POLY1305|SSL_CHACHA20POLY1305_OLD;
|
1344
|
-
alg_mac = SSL_AEAD;
|
1345
|
-
} else if (cipher_id == TLS1_CK_ECDHE_ECDSA_CHACHA20_POLY1305_OLD ||
|
1346
|
-
cipher_id == TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256) {
|
1347
|
-
cipher_id = 0;
|
1348
|
-
alg_mkey = SSL_kECDHE;
|
1349
|
-
alg_auth = SSL_aECDSA;
|
1350
|
-
alg_enc = SSL_CHACHA20POLY1305|SSL_CHACHA20POLY1305_OLD;
|
1351
|
-
alg_mac = SSL_AEAD;
|
1352
|
-
}
|
1353
|
-
|
1354
1224
|
/* Ok, we have the rule, now apply it. */
|
1355
1225
|
if (rule == CIPHER_SPECIAL) {
|
1356
1226
|
/* special command */
|
@@ -1362,7 +1232,7 @@ static int ssl_cipher_process_rulestr(const SSL_PROTOCOL_METHOD *ssl_method,
|
|
1362
1232
|
}
|
1363
1233
|
|
1364
1234
|
if (ok == 0) {
|
1365
|
-
|
1235
|
+
return 0;
|
1366
1236
|
}
|
1367
1237
|
|
1368
1238
|
/* We do not support any "multi" options together with "@", so throw away
|
@@ -1378,20 +1248,17 @@ static int ssl_cipher_process_rulestr(const SSL_PROTOCOL_METHOD *ssl_method,
|
|
1378
1248
|
|
1379
1249
|
if (in_group) {
|
1380
1250
|
OPENSSL_PUT_ERROR(SSL, SSL_R_INVALID_COMMAND);
|
1381
|
-
|
1251
|
+
return 0;
|
1382
1252
|
}
|
1383
1253
|
|
1384
|
-
return
|
1254
|
+
return 1;
|
1385
1255
|
}
|
1386
1256
|
|
1387
1257
|
STACK_OF(SSL_CIPHER) *
|
1388
1258
|
ssl_create_cipher_list(const SSL_PROTOCOL_METHOD *ssl_method,
|
1389
1259
|
struct ssl_cipher_preference_list_st **out_cipher_list,
|
1390
|
-
|
1391
|
-
|
1392
|
-
int ok;
|
1393
|
-
STACK_OF(SSL_CIPHER) *cipherstack = NULL, *tmp_cipher_list = NULL;
|
1394
|
-
const char *rule_p;
|
1260
|
+
const char *rule_str, int strict) {
|
1261
|
+
STACK_OF(SSL_CIPHER) *cipherstack = NULL;
|
1395
1262
|
CIPHER_ORDER *co_list = NULL, *head = NULL, *tail = NULL, *curr;
|
1396
1263
|
uint8_t *in_group_flags = NULL;
|
1397
1264
|
unsigned int num_in_group_flags = 0;
|
@@ -1416,15 +1283,14 @@ ssl_create_cipher_list(const SSL_PROTOCOL_METHOD *ssl_method,
|
|
1416
1283
|
/* Now arrange all ciphers by preference:
|
1417
1284
|
* TODO(davidben): Compute this order once and copy it. */
|
1418
1285
|
|
1419
|
-
/* Everything else being equal, prefer ECDHE_ECDSA
|
1286
|
+
/* Everything else being equal, prefer ECDHE_ECDSA and ECDHE_RSA over other
|
1420
1287
|
* key exchange mechanisms */
|
1421
|
-
|
1422
1288
|
ssl_cipher_apply_rule(0, SSL_kECDHE, SSL_aECDSA, ~0u, ~0u, 0, CIPHER_ADD, -1,
|
1423
1289
|
0, &head, &tail);
|
1424
1290
|
ssl_cipher_apply_rule(0, SSL_kECDHE, ~0u, ~0u, ~0u, 0, CIPHER_ADD, -1, 0,
|
1425
1291
|
&head, &tail);
|
1426
|
-
ssl_cipher_apply_rule(0,
|
1427
|
-
&
|
1292
|
+
ssl_cipher_apply_rule(0, ~0u, ~0u, ~0u, ~0u, 0, CIPHER_DEL, -1, 0, &head,
|
1293
|
+
&tail);
|
1428
1294
|
|
1429
1295
|
/* Order the bulk ciphers. First the preferred AEAD ciphers. We prefer
|
1430
1296
|
* CHACHA20 unless there is hardware support for fast and constant-time
|
@@ -1437,13 +1303,9 @@ ssl_create_cipher_list(const SSL_PROTOCOL_METHOD *ssl_method,
|
|
1437
1303
|
&head, &tail);
|
1438
1304
|
ssl_cipher_apply_rule(0, ~0u, ~0u, SSL_CHACHA20POLY1305, ~0u, 0, CIPHER_ADD,
|
1439
1305
|
-1, 0, &head, &tail);
|
1440
|
-
ssl_cipher_apply_rule(0, ~0u, ~0u, SSL_CHACHA20POLY1305_OLD, ~0u, 0,
|
1441
|
-
CIPHER_ADD, -1, 0, &head, &tail);
|
1442
1306
|
} else {
|
1443
1307
|
ssl_cipher_apply_rule(0, ~0u, ~0u, SSL_CHACHA20POLY1305, ~0u, 0, CIPHER_ADD,
|
1444
1308
|
-1, 0, &head, &tail);
|
1445
|
-
ssl_cipher_apply_rule(0, ~0u, ~0u, SSL_CHACHA20POLY1305_OLD, ~0u, 0,
|
1446
|
-
CIPHER_ADD, -1, 0, &head, &tail);
|
1447
1309
|
ssl_cipher_apply_rule(0, ~0u, ~0u, SSL_AES128GCM, ~0u, 0, CIPHER_ADD, -1, 0,
|
1448
1310
|
&head, &tail);
|
1449
1311
|
ssl_cipher_apply_rule(0, ~0u, ~0u, SSL_AES256GCM, ~0u, 0, CIPHER_ADD, -1, 0,
|
@@ -1464,7 +1326,7 @@ ssl_create_cipher_list(const SSL_PROTOCOL_METHOD *ssl_method,
|
|
1464
1326
|
&tail);
|
1465
1327
|
|
1466
1328
|
/* Move ciphers without forward secrecy to the end. */
|
1467
|
-
ssl_cipher_apply_rule(0,
|
1329
|
+
ssl_cipher_apply_rule(0, (SSL_kRSA | SSL_kPSK), ~0u, ~0u, ~0u, 0,
|
1468
1330
|
CIPHER_ORD, -1, 0, &head, &tail);
|
1469
1331
|
|
1470
1332
|
/* Now disable everything (maintaining the ordering!) */
|
@@ -1473,22 +1335,20 @@ ssl_create_cipher_list(const SSL_PROTOCOL_METHOD *ssl_method,
|
|
1473
1335
|
|
1474
1336
|
/* If the rule_string begins with DEFAULT, apply the default rule before
|
1475
1337
|
* using the (possibly available) additional rules. */
|
1476
|
-
|
1477
|
-
rule_p = rule_str;
|
1338
|
+
const char *rule_p = rule_str;
|
1478
1339
|
if (strncmp(rule_str, "DEFAULT", 7) == 0) {
|
1479
|
-
|
1480
|
-
&tail)
|
1340
|
+
if (!ssl_cipher_process_rulestr(ssl_method, SSL_DEFAULT_CIPHER_LIST, &head,
|
1341
|
+
&tail, strict)) {
|
1342
|
+
goto err;
|
1343
|
+
}
|
1481
1344
|
rule_p += 7;
|
1482
1345
|
if (*rule_p == ':') {
|
1483
1346
|
rule_p++;
|
1484
1347
|
}
|
1485
1348
|
}
|
1486
1349
|
|
1487
|
-
if (
|
1488
|
-
|
1489
|
-
}
|
1490
|
-
|
1491
|
-
if (!ok) {
|
1350
|
+
if (*rule_p != '\0' &&
|
1351
|
+
!ssl_cipher_process_rulestr(ssl_method, rule_p, &head, &tail, strict)) {
|
1492
1352
|
goto err;
|
1493
1353
|
}
|
1494
1354
|
|
@@ -1517,10 +1377,6 @@ ssl_create_cipher_list(const SSL_PROTOCOL_METHOD *ssl_method,
|
|
1517
1377
|
OPENSSL_free(co_list); /* Not needed any longer */
|
1518
1378
|
co_list = NULL;
|
1519
1379
|
|
1520
|
-
tmp_cipher_list = sk_SSL_CIPHER_dup(cipherstack);
|
1521
|
-
if (tmp_cipher_list == NULL) {
|
1522
|
-
goto err;
|
1523
|
-
}
|
1524
1380
|
pref_list = OPENSSL_malloc(sizeof(struct ssl_cipher_preference_list_st));
|
1525
1381
|
if (!pref_list) {
|
1526
1382
|
goto err;
|
@@ -1530,7 +1386,7 @@ ssl_create_cipher_list(const SSL_PROTOCOL_METHOD *ssl_method,
|
|
1530
1386
|
if (!pref_list->in_group_flags) {
|
1531
1387
|
goto err;
|
1532
1388
|
}
|
1533
|
-
|
1389
|
+
OPENSSL_memcpy(pref_list->in_group_flags, in_group_flags, num_in_group_flags);
|
1534
1390
|
OPENSSL_free(in_group_flags);
|
1535
1391
|
in_group_flags = NULL;
|
1536
1392
|
if (*out_cipher_list != NULL) {
|
@@ -1539,26 +1395,12 @@ ssl_create_cipher_list(const SSL_PROTOCOL_METHOD *ssl_method,
|
|
1539
1395
|
*out_cipher_list = pref_list;
|
1540
1396
|
pref_list = NULL;
|
1541
1397
|
|
1542
|
-
if (out_cipher_list_by_id != NULL) {
|
1543
|
-
sk_SSL_CIPHER_free(*out_cipher_list_by_id);
|
1544
|
-
*out_cipher_list_by_id = tmp_cipher_list;
|
1545
|
-
tmp_cipher_list = NULL;
|
1546
|
-
(void) sk_SSL_CIPHER_set_cmp_func(*out_cipher_list_by_id,
|
1547
|
-
ssl_cipher_ptr_id_cmp);
|
1548
|
-
|
1549
|
-
sk_SSL_CIPHER_sort(*out_cipher_list_by_id);
|
1550
|
-
} else {
|
1551
|
-
sk_SSL_CIPHER_free(tmp_cipher_list);
|
1552
|
-
tmp_cipher_list = NULL;
|
1553
|
-
}
|
1554
|
-
|
1555
1398
|
return cipherstack;
|
1556
1399
|
|
1557
1400
|
err:
|
1558
1401
|
OPENSSL_free(co_list);
|
1559
1402
|
OPENSSL_free(in_group_flags);
|
1560
1403
|
sk_SSL_CIPHER_free(cipherstack);
|
1561
|
-
sk_SSL_CIPHER_free(tmp_cipher_list);
|
1562
1404
|
if (pref_list) {
|
1563
1405
|
OPENSSL_free(pref_list->in_group_flags);
|
1564
1406
|
}
|
@@ -1575,38 +1417,10 @@ uint16_t ssl_cipher_get_value(const SSL_CIPHER *cipher) {
|
|
1575
1417
|
return id & 0xffff;
|
1576
1418
|
}
|
1577
1419
|
|
1578
|
-
int ssl_cipher_get_ecdhe_psk_cipher(const SSL_CIPHER *cipher,
|
1579
|
-
uint16_t *out_cipher) {
|
1580
|
-
switch (cipher->id) {
|
1581
|
-
case TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:
|
1582
|
-
case TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:
|
1583
|
-
case TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256:
|
1584
|
-
*out_cipher = TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 & 0xffff;
|
1585
|
-
return 1;
|
1586
|
-
|
1587
|
-
case TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256:
|
1588
|
-
case TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:
|
1589
|
-
case TLS1_CK_ECDHE_PSK_WITH_AES_128_GCM_SHA256:
|
1590
|
-
*out_cipher = TLS1_CK_ECDHE_PSK_WITH_AES_128_GCM_SHA256 & 0xffff;
|
1591
|
-
return 1;
|
1592
|
-
|
1593
|
-
case TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384:
|
1594
|
-
case TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:
|
1595
|
-
case TLS1_CK_ECDHE_PSK_WITH_AES_256_GCM_SHA384:
|
1596
|
-
*out_cipher = TLS1_CK_ECDHE_PSK_WITH_AES_256_GCM_SHA384 & 0xffff;
|
1597
|
-
return 1;
|
1598
|
-
}
|
1599
|
-
return 0;
|
1600
|
-
}
|
1601
|
-
|
1602
1420
|
int SSL_CIPHER_is_AES(const SSL_CIPHER *cipher) {
|
1603
1421
|
return (cipher->algorithm_enc & SSL_AES) != 0;
|
1604
1422
|
}
|
1605
1423
|
|
1606
|
-
int SSL_CIPHER_has_MD5_HMAC(const SSL_CIPHER *cipher) {
|
1607
|
-
return (cipher->algorithm_mac & SSL_MD5) != 0;
|
1608
|
-
}
|
1609
|
-
|
1610
1424
|
int SSL_CIPHER_has_SHA1_HMAC(const SSL_CIPHER *cipher) {
|
1611
1425
|
return (cipher->algorithm_mac & SSL_SHA1) != 0;
|
1612
1426
|
}
|
@@ -1615,6 +1429,10 @@ int SSL_CIPHER_has_SHA256_HMAC(const SSL_CIPHER *cipher) {
|
|
1615
1429
|
return (cipher->algorithm_mac & SSL_SHA256) != 0;
|
1616
1430
|
}
|
1617
1431
|
|
1432
|
+
int SSL_CIPHER_is_AEAD(const SSL_CIPHER *cipher) {
|
1433
|
+
return (cipher->algorithm_mac & SSL_AEAD) != 0;
|
1434
|
+
}
|
1435
|
+
|
1618
1436
|
int SSL_CIPHER_is_AESGCM(const SSL_CIPHER *cipher) {
|
1619
1437
|
return (cipher->algorithm_enc & (SSL_AES128GCM | SSL_AES256GCM)) != 0;
|
1620
1438
|
}
|
@@ -1632,8 +1450,7 @@ int SSL_CIPHER_is_AES256CBC(const SSL_CIPHER *cipher) {
|
|
1632
1450
|
}
|
1633
1451
|
|
1634
1452
|
int SSL_CIPHER_is_CHACHA20POLY1305(const SSL_CIPHER *cipher) {
|
1635
|
-
return (cipher->algorithm_enc &
|
1636
|
-
(SSL_CHACHA20POLY1305 | SSL_CHACHA20POLY1305_OLD)) != 0;
|
1453
|
+
return (cipher->algorithm_enc & SSL_CHACHA20POLY1305) != 0;
|
1637
1454
|
}
|
1638
1455
|
|
1639
1456
|
int SSL_CIPHER_is_NULL(const SSL_CIPHER *cipher) {
|
@@ -1657,11 +1474,16 @@ int SSL_CIPHER_is_ECDHE(const SSL_CIPHER *cipher) {
|
|
1657
1474
|
return (cipher->algorithm_mkey & SSL_kECDHE) != 0;
|
1658
1475
|
}
|
1659
1476
|
|
1660
|
-
int
|
1661
|
-
return (cipher->algorithm_mkey &
|
1477
|
+
int SSL_CIPHER_is_static_RSA(const SSL_CIPHER *cipher) {
|
1478
|
+
return (cipher->algorithm_mkey & SSL_kRSA) != 0;
|
1662
1479
|
}
|
1663
1480
|
|
1664
1481
|
uint16_t SSL_CIPHER_get_min_version(const SSL_CIPHER *cipher) {
|
1482
|
+
if (cipher->algorithm_mkey == SSL_kGENERIC ||
|
1483
|
+
cipher->algorithm_auth == SSL_aGENERIC) {
|
1484
|
+
return TLS1_3_VERSION;
|
1485
|
+
}
|
1486
|
+
|
1665
1487
|
if (cipher->algorithm_prf != SSL_HANDSHAKE_MAC_DEFAULT) {
|
1666
1488
|
/* Cipher suites before TLS 1.2 use the default PRF, while all those added
|
1667
1489
|
* afterwards specify a particular hash. */
|
@@ -1671,11 +1493,8 @@ uint16_t SSL_CIPHER_get_min_version(const SSL_CIPHER *cipher) {
|
|
1671
1493
|
}
|
1672
1494
|
|
1673
1495
|
uint16_t SSL_CIPHER_get_max_version(const SSL_CIPHER *cipher) {
|
1674
|
-
if (cipher->
|
1675
|
-
|
1676
|
-
(cipher->algorithm_mkey & SSL_kECDHE) != 0 &&
|
1677
|
-
/* TODO(davidben,svaldez): Support PSK-based ciphers in TLS 1.3. */
|
1678
|
-
(cipher->algorithm_auth & SSL_aCERT) != 0) {
|
1496
|
+
if (cipher->algorithm_mkey == SSL_kGENERIC ||
|
1497
|
+
cipher->algorithm_auth == SSL_aGENERIC) {
|
1679
1498
|
return TLS1_3_VERSION;
|
1680
1499
|
}
|
1681
1500
|
return TLS1_2_VERSION;
|
@@ -1721,21 +1540,14 @@ const char *SSL_CIPHER_get_kx_name(const SSL_CIPHER *cipher) {
|
|
1721
1540
|
return "UNKNOWN";
|
1722
1541
|
}
|
1723
1542
|
|
1724
|
-
case SSL_kCECPQ1:
|
1725
|
-
switch (cipher->algorithm_auth) {
|
1726
|
-
case SSL_aECDSA:
|
1727
|
-
return "CECPQ1_ECDSA";
|
1728
|
-
case SSL_aRSA:
|
1729
|
-
return "CECPQ1_RSA";
|
1730
|
-
default:
|
1731
|
-
assert(0);
|
1732
|
-
return "UNKNOWN";
|
1733
|
-
}
|
1734
|
-
|
1735
1543
|
case SSL_kPSK:
|
1736
1544
|
assert(cipher->algorithm_auth == SSL_aPSK);
|
1737
1545
|
return "PSK";
|
1738
1546
|
|
1547
|
+
case SSL_kGENERIC:
|
1548
|
+
assert(cipher->algorithm_auth == SSL_aGENERIC);
|
1549
|
+
return "GENERIC";
|
1550
|
+
|
1739
1551
|
default:
|
1740
1552
|
assert(0);
|
1741
1553
|
return "UNKNOWN";
|
@@ -1755,7 +1567,6 @@ static const char *ssl_cipher_get_enc_name(const SSL_CIPHER *cipher) {
|
|
1755
1567
|
case SSL_AES256GCM:
|
1756
1568
|
return "AES_256_GCM";
|
1757
1569
|
case SSL_CHACHA20POLY1305:
|
1758
|
-
case SSL_CHACHA20POLY1305_OLD:
|
1759
1570
|
return "CHACHA20_POLY1305";
|
1760
1571
|
break;
|
1761
1572
|
default:
|
@@ -1767,15 +1578,10 @@ static const char *ssl_cipher_get_enc_name(const SSL_CIPHER *cipher) {
|
|
1767
1578
|
static const char *ssl_cipher_get_prf_name(const SSL_CIPHER *cipher) {
|
1768
1579
|
switch (cipher->algorithm_prf) {
|
1769
1580
|
case SSL_HANDSHAKE_MAC_DEFAULT:
|
1770
|
-
/* Before TLS 1.2, the PRF component is the hash used in the HMAC, which
|
1771
|
-
*
|
1772
|
-
|
1773
|
-
|
1774
|
-
return "MD5";
|
1775
|
-
case SSL_SHA1:
|
1776
|
-
return "SHA";
|
1777
|
-
}
|
1778
|
-
break;
|
1581
|
+
/* Before TLS 1.2, the PRF component is the hash used in the HMAC, which
|
1582
|
+
* is SHA-1 for all supported ciphers. */
|
1583
|
+
assert(cipher->algorithm_mac == SSL_SHA1);
|
1584
|
+
return "SHA";
|
1779
1585
|
case SSL_HANDSHAKE_MAC_SHA256:
|
1780
1586
|
return "SHA256";
|
1781
1587
|
case SSL_HANDSHAKE_MAC_SHA384:
|
@@ -1794,16 +1600,23 @@ char *SSL_CIPHER_get_rfc_name(const SSL_CIPHER *cipher) {
|
|
1794
1600
|
const char *enc_name = ssl_cipher_get_enc_name(cipher);
|
1795
1601
|
const char *prf_name = ssl_cipher_get_prf_name(cipher);
|
1796
1602
|
|
1797
|
-
/* The final name is TLS_{kx_name}_WITH_{enc_name}_{prf_name}
|
1798
|
-
|
1799
|
-
|
1603
|
+
/* The final name is TLS_{kx_name}_WITH_{enc_name}_{prf_name} or
|
1604
|
+
* TLS_{enc_name}_{prf_name} depending on whether the cipher is AEAD-only. */
|
1605
|
+
size_t len = 4 + strlen(enc_name) + 1 + strlen(prf_name) + 1;
|
1606
|
+
|
1607
|
+
if (cipher->algorithm_mkey != SSL_kGENERIC) {
|
1608
|
+
len += strlen(kx_name) + 6;
|
1609
|
+
}
|
1610
|
+
|
1800
1611
|
char *ret = OPENSSL_malloc(len);
|
1801
1612
|
if (ret == NULL) {
|
1802
1613
|
return NULL;
|
1803
1614
|
}
|
1615
|
+
|
1804
1616
|
if (BUF_strlcpy(ret, "TLS_", len) >= len ||
|
1805
|
-
|
1806
|
-
|
1617
|
+
(cipher->algorithm_mkey != SSL_kGENERIC &&
|
1618
|
+
(BUF_strlcat(ret, kx_name, len) >= len ||
|
1619
|
+
BUF_strlcat(ret, "_WITH_", len) >= len)) ||
|
1807
1620
|
BUF_strlcat(ret, enc_name, len) >= len ||
|
1808
1621
|
BUF_strlcat(ret, "_", len) >= len ||
|
1809
1622
|
BUF_strlcat(ret, prf_name, len) >= len) {
|
@@ -1811,6 +1624,7 @@ char *SSL_CIPHER_get_rfc_name(const SSL_CIPHER *cipher) {
|
|
1811
1624
|
OPENSSL_free(ret);
|
1812
1625
|
return NULL;
|
1813
1626
|
}
|
1627
|
+
|
1814
1628
|
assert(strlen(ret) + 1 == len);
|
1815
1629
|
return ret;
|
1816
1630
|
}
|
@@ -1830,9 +1644,6 @@ int SSL_CIPHER_get_bits(const SSL_CIPHER *cipher, int *out_alg_bits) {
|
|
1830
1644
|
|
1831
1645
|
case SSL_AES256:
|
1832
1646
|
case SSL_AES256GCM:
|
1833
|
-
#if !defined(BORINGSSL_ANDROID_SYSTEM)
|
1834
|
-
case SSL_CHACHA20POLY1305_OLD:
|
1835
|
-
#endif
|
1836
1647
|
case SSL_CHACHA20POLY1305:
|
1837
1648
|
alg_bits = 256;
|
1838
1649
|
strength_bits = 256;
|
@@ -1883,14 +1694,14 @@ const char *SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf,
|
|
1883
1694
|
kx = "ECDH";
|
1884
1695
|
break;
|
1885
1696
|
|
1886
|
-
case SSL_kCECPQ1:
|
1887
|
-
kx = "CECPQ1";
|
1888
|
-
break;
|
1889
|
-
|
1890
1697
|
case SSL_kPSK:
|
1891
1698
|
kx = "PSK";
|
1892
1699
|
break;
|
1893
1700
|
|
1701
|
+
case SSL_kGENERIC:
|
1702
|
+
kx = "GENERIC";
|
1703
|
+
break;
|
1704
|
+
|
1894
1705
|
default:
|
1895
1706
|
kx = "unknown";
|
1896
1707
|
}
|
@@ -1908,6 +1719,10 @@ const char *SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf,
|
|
1908
1719
|
au = "PSK";
|
1909
1720
|
break;
|
1910
1721
|
|
1722
|
+
case SSL_aGENERIC:
|
1723
|
+
au = "GENERIC";
|
1724
|
+
break;
|
1725
|
+
|
1911
1726
|
default:
|
1912
1727
|
au = "unknown";
|
1913
1728
|
break;
|
@@ -1934,10 +1749,6 @@ const char *SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf,
|
|
1934
1749
|
enc = "AESGCM(256)";
|
1935
1750
|
break;
|
1936
1751
|
|
1937
|
-
case SSL_CHACHA20POLY1305_OLD:
|
1938
|
-
enc = "ChaCha20-Poly1305-Old";
|
1939
|
-
break;
|
1940
|
-
|
1941
1752
|
case SSL_CHACHA20POLY1305:
|
1942
1753
|
enc = "ChaCha20-Poly1305";
|
1943
1754
|
break;
|
@@ -1952,10 +1763,6 @@ const char *SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf,
|
|
1952
1763
|
}
|
1953
1764
|
|
1954
1765
|
switch (alg_mac) {
|
1955
|
-
case SSL_MD5:
|
1956
|
-
mac = "MD5";
|
1957
|
-
break;
|
1958
|
-
|
1959
1766
|
case SSL_SHA1:
|
1960
1767
|
mac = "SHA1";
|
1961
1768
|
break;
|
@@ -2002,6 +1809,8 @@ int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm) { return 1; }
|
|
2002
1809
|
|
2003
1810
|
const char *SSL_COMP_get_name(const COMP_METHOD *comp) { return NULL; }
|
2004
1811
|
|
1812
|
+
void SSL_COMP_free_compression_methods(void) {}
|
1813
|
+
|
2005
1814
|
int ssl_cipher_get_key_type(const SSL_CIPHER *cipher) {
|
2006
1815
|
uint32_t alg_a = cipher->algorithm_auth;
|
2007
1816
|
|
@@ -2021,8 +1830,7 @@ int ssl_cipher_uses_certificate_auth(const SSL_CIPHER *cipher) {
|
|
2021
1830
|
int ssl_cipher_requires_server_key_exchange(const SSL_CIPHER *cipher) {
|
2022
1831
|
/* Ephemeral Diffie-Hellman key exchanges require a ServerKeyExchange. */
|
2023
1832
|
if (cipher->algorithm_mkey & SSL_kDHE ||
|
2024
|
-
cipher->algorithm_mkey & SSL_kECDHE
|
2025
|
-
cipher->algorithm_mkey & SSL_kCECPQ1) {
|
1833
|
+
cipher->algorithm_mkey & SSL_kECDHE) {
|
2026
1834
|
return 1;
|
2027
1835
|
}
|
2028
1836
|
|
@@ -2044,19 +1852,9 @@ size_t ssl_cipher_get_record_split_len(const SSL_CIPHER *cipher) {
|
|
2044
1852
|
return 0;
|
2045
1853
|
}
|
2046
1854
|
|
2047
|
-
|
2048
|
-
|
2049
|
-
|
2050
|
-
mac_len = MD5_DIGEST_LENGTH;
|
2051
|
-
break;
|
2052
|
-
case SSL_SHA1:
|
2053
|
-
mac_len = SHA_DIGEST_LENGTH;
|
2054
|
-
break;
|
2055
|
-
default:
|
2056
|
-
return 0;
|
2057
|
-
}
|
2058
|
-
|
2059
|
-
size_t ret = 1 + mac_len;
|
1855
|
+
/* All supported TLS 1.0 ciphers use SHA-1. */
|
1856
|
+
assert(cipher->algorithm_mac == SSL_SHA1);
|
1857
|
+
size_t ret = 1 + SHA_DIGEST_LENGTH;
|
2060
1858
|
ret += block_size - (ret % block_size);
|
2061
1859
|
return ret;
|
2062
1860
|
}
|