grpc 0.13.1 → 0.14.1.pre1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +2098 -828
- data/include/grpc/byte_buffer.h +1 -1
- data/include/grpc/byte_buffer_reader.h +1 -20
- data/include/grpc/census.h +4 -4
- data/include/grpc/compression.h +6 -5
- data/include/grpc/grpc.h +31 -20
- data/include/grpc/grpc_security.h +17 -31
- data/include/grpc/grpc_security_constants.h +114 -0
- data/include/grpc/grpc_zookeeper.h +1 -1
- data/include/grpc/impl/codegen/alloc.h +1 -1
- data/include/grpc/impl/codegen/atm.h +1 -1
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +1 -1
- data/include/grpc/impl/codegen/atm_gcc_sync.h +1 -1
- data/include/grpc/impl/codegen/atm_win32.h +1 -1
- data/include/grpc/impl/codegen/byte_buffer.h +1 -1
- data/{src/core/client_config/lb_policies/round_robin.h → include/grpc/impl/codegen/byte_buffer_reader.h} +19 -8
- data/include/grpc/impl/codegen/grpc_types.h +20 -3
- data/include/grpc/impl/codegen/log.h +9 -2
- data/include/grpc/impl/codegen/port_platform.h +102 -17
- data/include/grpc/impl/codegen/propagation_bits.h +3 -3
- data/include/grpc/impl/codegen/slice.h +3 -3
- data/include/grpc/impl/codegen/slice_buffer.h +3 -3
- data/include/grpc/impl/codegen/status.h +1 -1
- data/include/grpc/impl/codegen/sync_generic.h +1 -1
- data/include/grpc/impl/codegen/sync_posix.h +1 -1
- data/include/grpc/impl/codegen/sync_win32.h +1 -1
- data/include/grpc/impl/codegen/time.h +3 -3
- data/include/grpc/status.h +1 -1
- data/include/grpc/support/alloc.h +1 -1
- data/include/grpc/support/atm.h +1 -1
- data/include/grpc/support/atm_gcc_atomic.h +4 -4
- data/include/grpc/support/atm_gcc_sync.h +1 -1
- data/include/grpc/support/atm_win32.h +1 -1
- data/include/grpc/support/avl.h +1 -1
- data/include/grpc/support/cmdline.h +1 -1
- data/include/grpc/support/cpu.h +1 -1
- data/include/grpc/support/histogram.h +1 -1
- data/include/grpc/support/host_port.h +1 -1
- data/include/grpc/support/log.h +1 -1
- data/include/grpc/support/log_win32.h +1 -1
- data/include/grpc/support/port_platform.h +1 -1
- data/include/grpc/support/slice.h +1 -1
- data/include/grpc/support/slice_buffer.h +1 -1
- data/include/grpc/support/string_util.h +3 -1
- data/include/grpc/support/subprocess.h +2 -2
- data/include/grpc/support/sync.h +1 -1
- data/include/grpc/support/sync_generic.h +1 -1
- data/include/grpc/support/sync_posix.h +1 -1
- data/include/grpc/support/sync_win32.h +1 -1
- data/include/grpc/support/thd.h +1 -1
- data/include/grpc/support/time.h +1 -1
- data/include/grpc/support/tls.h +1 -1
- data/include/grpc/support/tls_gcc.h +45 -1
- data/include/grpc/support/tls_msvc.h +3 -3
- data/include/grpc/support/tls_pthread.h +1 -1
- data/include/grpc/support/useful.h +1 -1
- data/src/boringssl/err_data.c +258 -252
- data/src/core/{census → ext/census}/aggregation.h +3 -3
- data/src/core/{statistics → ext/census}/census_interface.h +3 -3
- data/src/core/{statistics → ext/census}/census_rpc_stats.h +4 -4
- data/src/core/{census → ext/census}/context.c +2 -2
- data/src/core/{census → ext/census}/grpc_context.c +2 -2
- data/src/core/{census → ext/census}/grpc_filter.c +30 -16
- data/src/core/{census → ext/census}/grpc_filter.h +4 -4
- data/src/core/ext/census/grpc_plugin.c +82 -0
- data/src/core/{census → ext/census}/initialize.c +1 -1
- data/src/core/{census → ext/census}/mlog.c +2 -2
- data/src/core/{census → ext/census}/mlog.h +4 -4
- data/src/core/{census → ext/census}/operation.c +0 -0
- data/src/core/{census → ext/census}/placeholders.c +0 -0
- data/src/core/{census → ext/census}/rpc_metric_id.h +3 -3
- data/src/core/{census → ext/census}/tracing.c +0 -0
- data/src/core/{surface → ext/client_config}/channel_connectivity.c +8 -21
- data/src/core/{channel → ext/client_config}/client_channel.c +80 -35
- data/src/core/{channel → ext/client_config}/client_channel.h +5 -5
- data/src/core/{client_config/subchannel_factory.c → ext/client_config/client_channel_factory.c} +14 -6
- data/src/core/ext/client_config/client_channel_factory.h +85 -0
- data/src/core/{client_config → ext/client_config}/client_config.c +4 -2
- data/src/core/{client_config → ext/client_config}/client_config.h +4 -4
- data/src/core/ext/client_config/client_config_plugin.c +95 -0
- data/src/core/{client_config → ext/client_config}/connector.c +2 -2
- data/src/core/{client_config → ext/client_config}/connector.h +7 -10
- data/src/core/{client_config → ext/client_config}/default_initial_connect_string.c +1 -1
- data/src/core/{client_config → ext/client_config}/initial_connect_string.c +1 -1
- data/src/core/{client_config → ext/client_config}/initial_connect_string.h +4 -4
- data/src/core/{client_config → ext/client_config}/lb_policy.c +12 -3
- data/src/core/{client_config → ext/client_config}/lb_policy.h +19 -6
- data/src/core/{client_config → ext/client_config}/lb_policy_factory.c +4 -3
- data/src/core/{client_config → ext/client_config}/lb_policy_factory.h +14 -9
- data/src/core/{client_config → ext/client_config}/lb_policy_registry.c +4 -9
- data/src/core/{client_config → ext/client_config}/lb_policy_registry.h +7 -6
- data/src/core/ext/client_config/parse_address.c +137 -0
- data/src/core/ext/client_config/parse_address.h +56 -0
- data/src/core/{client_config → ext/client_config}/resolver.c +1 -1
- data/src/core/{client_config → ext/client_config}/resolver.h +6 -6
- data/src/core/{client_config → ext/client_config}/resolver_factory.c +1 -1
- data/src/core/{client_config → ext/client_config}/resolver_factory.h +7 -7
- data/src/core/{client_config → ext/client_config}/resolver_registry.c +25 -11
- data/src/core/{client_config → ext/client_config}/resolver_registry.h +9 -5
- data/src/core/{client_config → ext/client_config}/subchannel.c +90 -126
- data/src/core/{client_config → ext/client_config}/subchannel.h +15 -15
- data/src/core/{channel → ext/client_config}/subchannel_call_holder.c +9 -8
- data/src/core/{channel → ext/client_config}/subchannel_call_holder.h +7 -7
- data/src/core/{client_config → ext/client_config}/subchannel_index.c +3 -2
- data/src/core/{client_config → ext/client_config}/subchannel_index.h +5 -5
- data/src/core/{client_config → ext/client_config}/uri_parser.c +69 -1
- data/src/core/{client_config → ext/client_config}/uri_parser.h +15 -3
- data/src/core/{client_config/lb_policies → ext/lb_policy/grpclb}/load_balancer_api.c +18 -9
- data/src/core/{client_config/lb_policies → ext/lb_policy/grpclb}/load_balancer_api.h +5 -5
- data/src/core/{proto → ext/lb_policy/grpclb/proto}/grpc/lb/v0/load_balancer.pb.c +1 -1
- data/src/core/{proto → ext/lb_policy/grpclb/proto}/grpc/lb/v0/load_balancer.pb.h +0 -0
- data/src/core/{client_config/lb_policies → ext/lb_policy/pick_first}/pick_first.c +95 -32
- data/src/core/{client_config/lb_policies → ext/lb_policy/round_robin}/round_robin.c +98 -34
- data/src/core/{client_config/resolvers → ext/resolver/dns/native}/dns_resolver.c +83 -39
- data/src/core/{client_config/resolvers → ext/resolver/sockaddr}/sockaddr_resolver.c +66 -169
- data/src/core/{transport/chttp2 → ext/transport/chttp2/alpn}/alpn.c +1 -1
- data/src/core/{transport/chttp2 → ext/transport/chttp2/alpn}/alpn.h +3 -3
- data/src/core/{surface → ext/transport/chttp2/client/insecure}/channel_create.c +65 -59
- data/src/core/{surface → ext/transport/chttp2/client/secure}/secure_channel_create.c +77 -69
- data/src/core/{surface → ext/transport/chttp2/server/insecure}/server_chttp2.c +8 -11
- data/src/core/{security → ext/transport/chttp2/server/secure}/server_secure_chttp2.c +14 -17
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/bin_encoder.c +28 -74
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/bin_encoder.h +5 -5
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.c +46 -0
- data/src/core/{transport → ext/transport/chttp2/transport}/chttp2_transport.c +551 -310
- data/src/core/{transport → ext/transport/chttp2/transport}/chttp2_transport.h +5 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame.h +3 -3
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_data.c +30 -14
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_data.h +10 -7
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_goaway.c +2 -2
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_goaway.h +5 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_ping.c +2 -2
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_ping.h +5 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_rst_stream.c +9 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_rst_stream.h +8 -6
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_settings.c +6 -6
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_settings.h +5 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_window_update.c +11 -5
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_window_update.h +8 -6
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_encoder.c +21 -12
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_encoder.h +8 -6
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_parser.c +42 -25
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_parser.h +7 -7
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_table.c +21 -11
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_table.h +4 -4
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/http2_errors.h +3 -3
- data/src/core/ext/transport/chttp2/transport/huffsyms.c +105 -0
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/huffsyms.h +3 -3
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/incoming_metadata.c +2 -2
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/incoming_metadata.h +4 -4
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/internal.h +81 -37
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/parsing.c +54 -21
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/status_conversion.c +1 -1
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/status_conversion.h +4 -4
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/stream_lists.c +10 -2
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/stream_map.c +1 -1
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/stream_map.h +3 -3
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/timeout_encoding.c +4 -4
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/timeout_encoding.h +4 -4
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/varint.c +1 -1
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/varint.h +3 -3
- data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/writing.c +30 -20
- data/src/core/{channel → lib/channel}/channel_args.c +3 -15
- data/src/core/{channel → lib/channel}/channel_args.h +11 -15
- data/src/core/{channel → lib/channel}/channel_stack.c +5 -3
- data/src/core/{channel → lib/channel}/channel_stack.h +13 -8
- data/src/core/lib/channel/channel_stack_builder.c +277 -0
- data/src/core/lib/channel/channel_stack_builder.h +161 -0
- data/src/core/{channel → lib/channel}/compress_filter.c +51 -16
- data/src/core/{channel → lib/channel}/compress_filter.h +6 -4
- data/src/core/{channel → lib/channel}/connected_channel.c +34 -24
- data/src/core/lib/channel/connected_channel.h +42 -0
- data/src/core/{channel → lib/channel}/context.h +3 -3
- data/src/core/{channel → lib/channel}/http_client_filter.c +24 -13
- data/src/core/{channel → lib/channel}/http_client_filter.h +4 -4
- data/src/core/{channel → lib/channel}/http_server_filter.c +39 -19
- data/src/core/{channel → lib/channel}/http_server_filter.h +4 -4
- data/src/core/{compression → lib/compression}/algorithm_metadata.h +4 -4
- data/src/core/{compression → lib/compression}/compression_algorithm.c +46 -9
- data/src/core/{compression → lib/compression}/message_compress.c +1 -1
- data/src/core/{compression → lib/compression}/message_compress.h +3 -3
- data/src/core/{debug → lib/debug}/trace.c +2 -2
- data/src/core/{debug → lib/debug}/trace.h +3 -3
- data/src/core/{httpcli → lib/http}/format_request.c +8 -8
- data/src/core/{httpcli → lib/http}/format_request.h +4 -4
- data/src/core/{httpcli → lib/http}/httpcli.c +24 -19
- data/src/core/{httpcli → lib/http}/httpcli.h +14 -33
- data/src/core/{httpcli → lib/http}/httpcli_security_connector.c +5 -5
- data/src/core/lib/http/parser.c +341 -0
- data/src/core/lib/http/parser.h +119 -0
- data/src/core/{iomgr → lib/iomgr}/closure.c +8 -2
- data/src/core/{iomgr → lib/iomgr}/closure.h +7 -4
- data/src/core/{iomgr → lib/iomgr}/endpoint.c +1 -1
- data/src/core/{iomgr → lib/iomgr}/endpoint.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/endpoint_pair.h +4 -4
- data/src/core/{iomgr → lib/iomgr}/endpoint_pair_posix.c +8 -7
- data/src/core/{iomgr → lib/iomgr}/endpoint_pair_windows.c +4 -4
- data/src/core/lib/iomgr/ev_poll_and_epoll_posix.c +1936 -0
- data/src/core/lib/iomgr/ev_poll_and_epoll_posix.h +41 -0
- data/src/core/lib/iomgr/ev_posix.c +164 -0
- data/src/core/lib/iomgr/ev_posix.h +158 -0
- data/src/core/{iomgr → lib/iomgr}/exec_ctx.c +78 -3
- data/src/core/{iomgr → lib/iomgr}/exec_ctx.h +25 -10
- data/src/core/{iomgr → lib/iomgr}/executor.c +3 -3
- data/src/core/{iomgr → lib/iomgr}/executor.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/iocp_windows.c +6 -6
- data/src/core/{iomgr → lib/iomgr}/iocp_windows.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/iomgr.c +13 -10
- data/src/core/{iomgr → lib/iomgr}/iomgr.h +3 -3
- data/src/core/{iomgr → lib/iomgr}/iomgr_internal.h +5 -9
- data/src/core/{iomgr → lib/iomgr}/iomgr_posix.c +6 -6
- data/src/core/{iomgr → lib/iomgr}/iomgr_posix.h +4 -4
- data/src/core/{iomgr → lib/iomgr}/iomgr_windows.c +7 -4
- data/src/core/{iomgr → lib/iomgr}/pollset.h +11 -11
- data/src/core/{iomgr → lib/iomgr}/pollset_set.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/pollset_set_windows.c +2 -2
- data/src/core/lib/iomgr/pollset_set_windows.h +39 -0
- data/src/core/{iomgr → lib/iomgr}/pollset_windows.c +7 -7
- data/src/core/{iomgr → lib/iomgr}/pollset_windows.h +8 -5
- data/src/core/{iomgr → lib/iomgr}/resolve_address.h +10 -9
- data/src/core/{iomgr → lib/iomgr}/resolve_address_posix.c +22 -22
- data/src/core/{iomgr → lib/iomgr}/resolve_address_windows.c +20 -12
- data/src/core/{iomgr → lib/iomgr}/sockaddr.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/sockaddr_posix.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/sockaddr_utils.c +9 -16
- data/src/core/{iomgr → lib/iomgr}/sockaddr_utils.h +4 -4
- data/src/core/{iomgr → lib/iomgr}/sockaddr_win32.h +6 -4
- data/src/core/{iomgr → lib/iomgr}/socket_utils_common_posix.c +29 -7
- data/src/core/{iomgr → lib/iomgr}/socket_utils_linux.c +2 -2
- data/src/core/{iomgr → lib/iomgr}/socket_utils_posix.c +1 -1
- data/src/core/{iomgr → lib/iomgr}/socket_utils_posix.h +14 -4
- data/src/core/{iomgr → lib/iomgr}/socket_windows.c +7 -5
- data/src/core/{iomgr → lib/iomgr}/socket_windows.h +6 -6
- data/src/core/{iomgr → lib/iomgr}/tcp_client.h +6 -6
- data/src/core/{iomgr → lib/iomgr}/tcp_client_posix.c +33 -18
- data/src/core/{iomgr → lib/iomgr}/tcp_client_windows.c +30 -20
- data/src/core/{iomgr → lib/iomgr}/tcp_posix.c +9 -10
- data/src/core/{iomgr → lib/iomgr}/tcp_posix.h +6 -6
- data/src/core/{iomgr → lib/iomgr}/tcp_server.h +6 -6
- data/src/core/{iomgr → lib/iomgr}/tcp_server_posix.c +24 -37
- data/src/core/{iomgr → lib/iomgr}/tcp_server_windows.c +8 -36
- data/src/core/{iomgr → lib/iomgr}/tcp_windows.c +27 -17
- data/src/core/{iomgr → lib/iomgr}/tcp_windows.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/time_averaged_stats.c +1 -1
- data/src/core/{iomgr → lib/iomgr}/time_averaged_stats.h +3 -3
- data/src/core/{iomgr → lib/iomgr}/timer.c +31 -4
- data/src/core/{iomgr → lib/iomgr}/timer.h +6 -7
- data/src/core/{iomgr → lib/iomgr}/timer_heap.c +2 -2
- data/src/core/{iomgr → lib/iomgr}/timer_heap.h +4 -4
- data/src/core/{iomgr → lib/iomgr}/udp_server.c +13 -37
- data/src/core/{iomgr → lib/iomgr}/udp_server.h +11 -10
- data/src/core/lib/iomgr/unix_sockets_posix.c +89 -0
- data/src/core/{client_config/resolvers/sockaddr_resolver.h → lib/iomgr/unix_sockets_posix.h} +15 -11
- data/src/core/lib/iomgr/unix_sockets_posix_noop.c +59 -0
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_eventfd.c +2 -2
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_nospecial.c +1 -1
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_pipe.c +8 -3
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_pipe.h +4 -4
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_posix.c +2 -2
- data/src/core/{iomgr → lib/iomgr}/wakeup_fd_posix.h +3 -3
- data/src/core/{iomgr → lib/iomgr}/workqueue.h +10 -10
- data/src/core/{iomgr → lib/iomgr}/workqueue_posix.c +5 -6
- data/src/core/{iomgr → lib/iomgr}/workqueue_posix.h +5 -5
- data/src/core/{iomgr → lib/iomgr}/workqueue_windows.c +1 -1
- data/src/core/{iomgr → lib/iomgr}/workqueue_windows.h +3 -3
- data/src/core/{json → lib/json}/json.c +1 -1
- data/src/core/{json → lib/json}/json.h +4 -4
- data/src/core/{json → lib/json}/json_common.h +3 -3
- data/src/core/{json → lib/json}/json_reader.c +16 -4
- data/src/core/{json → lib/json}/json_reader.h +4 -4
- data/src/core/{json → lib/json}/json_string.c +4 -4
- data/src/core/{json → lib/json}/json_writer.c +1 -1
- data/src/core/{json → lib/json}/json_writer.h +4 -4
- data/src/core/{profiling → lib/profiling}/basic_timers.c +3 -2
- data/src/core/{profiling → lib/profiling}/stap_timers.c +2 -2
- data/src/core/{profiling → lib/profiling}/timers.h +3 -3
- data/src/core/{security → lib/security}/auth_filters.h +4 -4
- data/src/core/{security → lib/security}/b64.c +2 -2
- data/src/core/{security → lib/security}/b64.h +4 -4
- data/src/core/{security → lib/security}/client_auth_filter.c +16 -16
- data/src/core/{security → lib/security}/credentials.c +42 -26
- data/src/core/{security → lib/security}/credentials.h +11 -10
- data/src/core/{security → lib/security}/credentials_metadata.c +1 -1
- data/src/core/{security → lib/security}/credentials_posix.c +3 -3
- data/src/core/{security → lib/security}/credentials_win32.c +3 -3
- data/src/core/{security → lib/security}/google_default_credentials.c +10 -9
- data/src/core/{security → lib/security}/handshake.c +4 -4
- data/src/core/{security → lib/security}/handshake.h +6 -6
- data/src/core/{security → lib/security}/json_token.c +4 -4
- data/src/core/{security → lib/security}/json_token.h +4 -4
- data/src/core/{security → lib/security}/jwt_verifier.c +14 -14
- data/src/core/{security → lib/security}/jwt_verifier.h +5 -5
- data/src/core/{security → lib/security}/secure_endpoint.c +9 -8
- data/src/core/{security → lib/security}/secure_endpoint.h +4 -4
- data/src/core/{security → lib/security}/security_connector.c +53 -21
- data/src/core/{security → lib/security}/security_connector.h +8 -8
- data/src/core/{security → lib/security}/security_context.c +5 -5
- data/src/core/{security → lib/security}/security_context.h +5 -5
- data/src/core/{security → lib/security}/server_auth_filter.c +9 -9
- data/src/core/{support → lib/support}/alloc.c +5 -3
- data/src/core/{support → lib/support}/avl.c +1 -1
- data/src/core/lib/support/backoff.c +76 -0
- data/src/core/lib/support/backoff.h +68 -0
- data/src/core/{support → lib/support}/block_annotate.h +3 -3
- data/src/core/{support → lib/support}/cmdline.c +1 -1
- data/src/core/{support → lib/support}/cpu_iphone.c +0 -0
- data/src/core/{support → lib/support}/cpu_linux.c +2 -2
- data/src/core/{support → lib/support}/cpu_posix.c +2 -2
- data/src/core/{support → lib/support}/cpu_windows.c +0 -0
- data/src/core/{support → lib/support}/env.h +3 -3
- data/src/core/{support → lib/support}/env_linux.c +3 -3
- data/src/core/{support → lib/support}/env_posix.c +2 -2
- data/src/core/{support → lib/support}/env_win32.c +27 -21
- data/src/core/{support → lib/support}/histogram.c +1 -1
- data/src/core/{support → lib/support}/host_port.c +1 -1
- data/src/core/{support → lib/support}/load_file.c +4 -4
- data/src/core/{support → lib/support}/load_file.h +4 -4
- data/src/core/{support → lib/support}/log.c +33 -0
- data/src/core/{support → lib/support}/log_android.c +2 -2
- data/src/core/{support → lib/support}/log_linux.c +6 -5
- data/src/core/{support → lib/support}/log_posix.c +3 -3
- data/src/core/{support → lib/support}/log_win32.c +8 -22
- data/src/core/{support → lib/support}/murmur_hash.c +1 -1
- data/src/core/{support → lib/support}/murmur_hash.h +3 -3
- data/src/core/{support → lib/support}/slice.c +0 -0
- data/src/core/{support → lib/support}/slice_buffer.c +0 -0
- data/src/core/{support → lib/support}/stack_lockfree.c +7 -7
- data/src/core/{support → lib/support}/stack_lockfree.h +3 -3
- data/src/core/{support → lib/support}/string.c +1 -1
- data/src/core/{support → lib/support}/string.h +4 -4
- data/src/core/{support → lib/support}/string_posix.c +1 -1
- data/src/core/{support/string_win32.c → lib/support/string_util_win32.c} +23 -38
- data/src/core/lib/support/string_win32.c +83 -0
- data/src/core/{support → lib/support}/string_win32.h +3 -3
- data/src/core/{support → lib/support}/subprocess_posix.c +3 -3
- data/src/core/{support → lib/support}/subprocess_windows.c +3 -3
- data/src/core/{support → lib/support}/sync.c +2 -2
- data/src/core/{support → lib/support}/sync_posix.c +3 -3
- data/src/core/{support → lib/support}/sync_win32.c +1 -1
- data/src/core/{support → lib/support}/thd.c +0 -0
- data/src/core/{support → lib/support}/thd_internal.h +3 -3
- data/src/core/{support → lib/support}/thd_posix.c +4 -3
- data/src/core/{support → lib/support}/thd_win32.c +1 -1
- data/src/core/{support → lib/support}/time.c +2 -2
- data/src/core/{support → lib/support}/time_posix.c +12 -6
- data/src/core/{support → lib/support}/time_precise.c +0 -0
- data/src/core/{support → lib/support}/time_precise.h +3 -3
- data/src/core/{support → lib/support}/time_win32.c +7 -7
- data/src/core/{support → lib/support}/tls_pthread.c +0 -0
- data/src/core/{support → lib/support}/tmpfile.h +4 -4
- data/src/core/lib/support/tmpfile_msys.c +73 -0
- data/src/core/{support → lib/support}/tmpfile_posix.c +5 -5
- data/src/core/{support → lib/support}/tmpfile_win32.c +5 -5
- data/src/core/{support → lib/support}/wrap_memcpy.c +0 -0
- data/src/core/{surface → lib/surface}/alarm.c +3 -3
- data/src/core/{surface → lib/surface}/api_trace.c +1 -1
- data/src/core/{surface → lib/surface}/api_trace.h +4 -4
- data/src/core/{surface → lib/surface}/byte_buffer.c +3 -3
- data/src/core/{surface → lib/surface}/byte_buffer_reader.c +3 -3
- data/src/core/{surface → lib/surface}/call.c +145 -73
- data/src/core/{surface → lib/surface}/call.h +14 -7
- data/src/core/{surface → lib/surface}/call_details.c +1 -1
- data/src/core/{surface → lib/surface}/call_log_batch.c +2 -2
- data/src/core/{surface → lib/surface}/call_test_only.h +3 -3
- data/src/core/{surface → lib/surface}/channel.c +33 -34
- data/src/core/{surface → lib/surface}/channel.h +9 -9
- data/src/core/lib/surface/channel_init.c +140 -0
- data/src/core/lib/surface/channel_init.h +87 -0
- data/src/core/{surface → lib/surface}/channel_ping.c +4 -4
- data/src/core/lib/surface/channel_stack_type.c +54 -0
- data/src/core/{httpcli/parser.h → lib/surface/channel_stack_type.h} +22 -28
- data/src/core/{surface → lib/surface}/completion_queue.c +15 -11
- data/src/core/{surface → lib/surface}/completion_queue.h +4 -4
- data/src/core/{surface → lib/surface}/event_string.c +2 -2
- data/src/core/{surface → lib/surface}/event_string.h +3 -3
- data/src/core/lib/surface/init.c +217 -0
- data/src/core/{surface → lib/surface}/init.h +4 -3
- data/src/core/lib/surface/init_secure.c +89 -0
- data/src/core/{surface → lib/surface}/lame_client.c +31 -19
- data/src/core/{iomgr/pollset_set_windows.h → lib/surface/lame_client.h} +7 -5
- data/src/core/{surface → lib/surface}/metadata_array.c +1 -1
- data/src/core/{surface → lib/surface}/server.c +208 -183
- data/src/core/{surface → lib/surface}/server.h +6 -11
- data/src/core/{surface → lib/surface}/surface_trace.h +5 -5
- data/src/core/{surface → lib/surface}/validate_metadata.c +1 -1
- data/src/core/{surface → lib/surface}/version.c +2 -2
- data/src/core/{transport → lib/transport}/byte_stream.c +1 -1
- data/src/core/{transport → lib/transport}/byte_stream.h +4 -4
- data/src/core/{transport → lib/transport}/connectivity_state.c +2 -2
- data/src/core/{transport → lib/transport}/connectivity_state.h +4 -4
- data/src/core/{transport → lib/transport}/metadata.c +71 -19
- data/src/core/{transport → lib/transport}/metadata.h +11 -4
- data/src/core/{transport → lib/transport}/metadata_batch.c +2 -2
- data/src/core/{transport → lib/transport}/metadata_batch.h +4 -4
- data/src/core/{transport → lib/transport}/static_metadata.c +100 -32
- data/src/core/{transport → lib/transport}/static_metadata.h +58 -58
- data/src/core/{transport → lib/transport}/transport.c +25 -5
- data/src/core/{transport → lib/transport}/transport.h +41 -16
- data/src/core/{transport → lib/transport}/transport_impl.h +8 -5
- data/src/core/{transport → lib/transport}/transport_op_string.c +2 -2
- data/src/core/{tsi → lib/tsi}/fake_transport_security.c +18 -14
- data/src/core/{tsi → lib/tsi}/fake_transport_security.h +4 -4
- data/src/core/{tsi → lib/tsi}/ssl_transport_security.c +173 -63
- data/src/core/{tsi → lib/tsi}/ssl_transport_security.h +24 -6
- data/src/core/{tsi → lib/tsi}/ssl_types.h +3 -3
- data/src/core/{tsi → lib/tsi}/transport_security.c +12 -28
- data/src/core/{tsi → lib/tsi}/transport_security.h +4 -4
- data/src/core/{tsi → lib/tsi}/transport_security_interface.h +12 -3
- data/src/core/plugin_registry/grpc_plugin_registry.c +66 -0
- data/src/ruby/ext/grpc/extconf.rb +14 -20
- data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -3
- data/src/ruby/ext/grpc/rb_call.c +37 -4
- data/src/ruby/ext/grpc/rb_call_credentials.c +13 -3
- data/src/ruby/ext/grpc/rb_channel.c +2 -3
- data/src/ruby/ext/grpc/rb_channel_args.c +2 -3
- data/src/ruby/ext/grpc/rb_channel_credentials.c +31 -3
- data/src/ruby/ext/grpc/rb_completion_queue.c +2 -2
- data/src/ruby/ext/grpc/rb_event_thread.c +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +4 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +8 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +14 -2
- data/src/ruby/ext/grpc/rb_server.c +2 -3
- data/src/ruby/ext/grpc/rb_server_credentials.c +16 -13
- data/src/ruby/ext/grpc/rb_signal.c +70 -0
- data/src/ruby/ext/grpc/rb_signal.h +39 -0
- data/src/ruby/lib/grpc.rb +21 -13
- data/src/ruby/lib/grpc/core/time_consts.rb +2 -2
- data/src/ruby/lib/grpc/errors.rb +2 -2
- data/src/ruby/lib/grpc/generic/active_call.rb +10 -3
- data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -2
- data/src/ruby/lib/grpc/generic/client_stub.rb +10 -7
- data/src/ruby/lib/grpc/generic/rpc_desc.rb +2 -2
- data/src/ruby/lib/grpc/generic/rpc_server.rb +21 -61
- data/src/ruby/lib/grpc/generic/service.rb +5 -15
- data/src/ruby/lib/grpc/grpc.rb +3 -3
- data/src/ruby/{bin/interop/interop_server.rb → lib/grpc/signals.rb} +39 -20
- data/src/ruby/lib/grpc/version.rb +2 -2
- data/src/ruby/pb/generate_proto_ruby.sh +9 -2
- data/src/ruby/pb/grpc/health/checker.rb +1 -1
- data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services.rb +28 -0
- data/src/ruby/pb/grpc/testing/metrics.rb +28 -0
- data/src/ruby/pb/grpc/testing/metrics_services.rb +27 -0
- data/src/ruby/pb/test/client.rb +12 -23
- data/src/ruby/pb/test/server.rb +1 -1
- data/src/ruby/spec/client_server_spec.rb +1 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +18 -17
- data/src/ruby/spec/generic/rpc_server_spec.rb +23 -7
- data/src/ruby/spec/generic/service_spec.rb +0 -69
- data/src/ruby/{bin/interop/interop_client.rb → spec/pb/duplicate/codegen_spec.rb} +41 -21
- data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
- data/third_party/boringssl/crypto/asn1/a_bitstr.c +184 -176
- data/third_party/boringssl/crypto/asn1/a_bool.c +42 -44
- data/third_party/boringssl/crypto/asn1/a_bytes.c +236 -245
- data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +173 -192
- data/third_party/boringssl/crypto/asn1/a_dup.c +43 -35
- data/third_party/boringssl/crypto/asn1/a_enum.c +107 -109
- data/third_party/boringssl/crypto/asn1/a_gentm.c +180 -181
- data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +73 -80
- data/third_party/boringssl/crypto/asn1/a_int.c +357 -353
- data/third_party/boringssl/crypto/asn1/a_mbstr.c +272 -253
- data/third_party/boringssl/crypto/asn1/a_object.c +293 -309
- data/third_party/boringssl/crypto/asn1/a_octet.c +13 -6
- data/third_party/boringssl/crypto/asn1/a_print.c +54 -52
- data/third_party/boringssl/crypto/asn1/a_strnid.c +179 -157
- data/third_party/boringssl/crypto/asn1/a_time.c +125 -129
- data/third_party/boringssl/crypto/asn1/a_type.c +79 -86
- data/third_party/boringssl/crypto/asn1/a_utctm.c +246 -255
- data/third_party/boringssl/crypto/asn1/a_utf8.c +159 -135
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +361 -368
- data/third_party/boringssl/crypto/asn1/asn1_locl.h +11 -11
- data/third_party/boringssl/crypto/asn1/asn1_par.c +309 -351
- data/third_party/boringssl/crypto/asn1/asn_pack.c +30 -29
- data/third_party/boringssl/crypto/asn1/bio_asn1.c +375 -394
- data/third_party/boringssl/crypto/asn1/bio_ndef.c +146 -149
- data/third_party/boringssl/crypto/asn1/f_enum.c +128 -134
- data/third_party/boringssl/crypto/asn1/f_int.c +131 -139
- data/third_party/boringssl/crypto/asn1/f_string.c +125 -133
- data/third_party/boringssl/crypto/asn1/t_bitst.c +30 -29
- data/third_party/boringssl/crypto/asn1/t_pkey.c +45 -47
- data/third_party/boringssl/crypto/asn1/tasn_dec.c +1099 -1216
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +556 -592
- data/third_party/boringssl/crypto/asn1/tasn_fre.c +175 -193
- data/third_party/boringssl/crypto/asn1/tasn_new.c +271 -288
- data/third_party/boringssl/crypto/asn1/tasn_prn.c +462 -508
- data/third_party/boringssl/crypto/asn1/tasn_typ.c +28 -21
- data/third_party/boringssl/crypto/asn1/x_bignum.c +62 -52
- data/third_party/boringssl/crypto/asn1/x_long.c +101 -86
- data/third_party/boringssl/crypto/bio/buffer.c +3 -3
- data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +8 -68
- data/third_party/boringssl/crypto/bn/bn.c +1 -1
- data/third_party/boringssl/crypto/bn/bn_asn1.c +9 -22
- data/third_party/boringssl/crypto/bn/convert.c +9 -4
- data/third_party/boringssl/crypto/bn/div.c +0 -20
- data/third_party/boringssl/crypto/bn/exponentiation.c +22 -13
- data/third_party/boringssl/crypto/bn/generic.c +6 -242
- data/third_party/boringssl/crypto/bn/internal.h +9 -70
- data/third_party/boringssl/crypto/bn/montgomery.c +1 -2
- data/third_party/boringssl/crypto/bn/mul.c +6 -26
- data/third_party/boringssl/crypto/bn/rsaz_exp.c +21 -28
- data/third_party/boringssl/crypto/bytestring/asn1_compat.c +51 -0
- data/third_party/boringssl/crypto/bytestring/ber.c +128 -87
- data/third_party/boringssl/crypto/bytestring/cbb.c +37 -3
- data/third_party/boringssl/crypto/bytestring/internal.h +39 -10
- data/third_party/boringssl/crypto/chacha/chacha_vec.c +18 -13
- data/third_party/boringssl/crypto/cipher/e_aes.c +2 -2
- data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +4 -9
- data/third_party/boringssl/crypto/cipher/tls_cbc.c +39 -10
- data/third_party/boringssl/crypto/conf/conf.c +9 -0
- data/third_party/boringssl/crypto/cpu-intel.c +1 -1
- data/third_party/boringssl/crypto/crypto.c +2 -0
- data/third_party/boringssl/crypto/curve25519/curve25519.c +125 -120
- data/third_party/boringssl/crypto/curve25519/internal.h +45 -0
- data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +225 -0
- data/third_party/boringssl/crypto/dh/check.c +32 -10
- data/third_party/boringssl/crypto/dh/dh.c +1 -1
- data/third_party/boringssl/crypto/digest/md32_common.h +0 -60
- data/third_party/boringssl/crypto/dsa/dsa.c +47 -21
- data/third_party/boringssl/crypto/dsa/dsa_asn1.c +249 -64
- data/third_party/boringssl/crypto/ec/ec.c +45 -31
- data/third_party/boringssl/crypto/ec/ec_asn1.c +315 -382
- data/third_party/boringssl/crypto/ec/ec_key.c +1 -4
- data/third_party/boringssl/crypto/ec/ec_montgomery.c +0 -9
- data/third_party/boringssl/crypto/ec/internal.h +1 -19
- data/third_party/boringssl/crypto/ec/oct.c +12 -0
- data/third_party/boringssl/crypto/ec/p224-64.c +4 -65
- data/third_party/boringssl/crypto/ec/p256-64.c +9 -71
- data/third_party/boringssl/crypto/ec/p256-x86_64-table.h +1 -6
- data/third_party/boringssl/crypto/ec/p256-x86_64.c +3 -13
- data/third_party/boringssl/crypto/ec/simple.c +0 -76
- data/third_party/boringssl/crypto/ecdsa/ecdsa.c +1 -1
- data/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c +10 -24
- data/third_party/boringssl/crypto/evp/evp.c +4 -3
- data/third_party/boringssl/crypto/evp/evp_asn1.c +101 -0
- data/third_party/boringssl/crypto/evp/evp_ctx.c +22 -51
- data/third_party/boringssl/crypto/evp/internal.h +28 -27
- data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +78 -249
- data/third_party/boringssl/crypto/evp/p_ec.c +19 -66
- data/third_party/boringssl/crypto/evp/p_ec_asn1.c +74 -231
- data/third_party/boringssl/crypto/evp/p_rsa.c +90 -13
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +49 -48
- data/third_party/boringssl/crypto/internal.h +16 -1
- data/third_party/boringssl/crypto/mem.c +2 -2
- data/third_party/boringssl/crypto/modes/ctr.c +2 -1
- data/third_party/boringssl/crypto/modes/gcm.c +5 -3
- data/third_party/boringssl/crypto/obj/obj_dat.h +6 -3
- data/third_party/boringssl/crypto/pem/pem_all.c +83 -102
- data/third_party/boringssl/crypto/pem/pem_info.c +286 -309
- data/third_party/boringssl/crypto/pem/pem_lib.c +690 -710
- data/third_party/boringssl/crypto/pem/pem_oth.c +15 -16
- data/third_party/boringssl/crypto/pem/pem_pk8.c +132 -119
- data/third_party/boringssl/crypto/pem/pem_pkey.c +144 -220
- data/third_party/boringssl/crypto/pem/pem_x509.c +3 -3
- data/third_party/boringssl/crypto/pem/pem_xaux.c +5 -4
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +54 -60
- data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +3 -1
- data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +48 -50
- data/third_party/boringssl/crypto/rand/rand.c +2 -0
- data/third_party/boringssl/crypto/rsa/blinding.c +8 -48
- data/third_party/boringssl/crypto/rsa/internal.h +1 -9
- data/third_party/boringssl/crypto/rsa/padding.c +73 -77
- data/third_party/boringssl/crypto/rsa/rsa.c +1 -1
- data/third_party/boringssl/crypto/rsa/rsa_asn1.c +27 -46
- data/third_party/boringssl/crypto/rsa/rsa_impl.c +23 -34
- data/third_party/boringssl/crypto/test/scoped_types.h +3 -0
- data/third_party/boringssl/crypto/thread_win.c +15 -13
- data/third_party/boringssl/crypto/time_support.c +0 -6
- data/third_party/boringssl/crypto/x509/a_digest.c +26 -27
- data/third_party/boringssl/crypto/x509/a_sign.c +63 -64
- data/third_party/boringssl/crypto/x509/a_strex.c +482 -413
- data/third_party/boringssl/crypto/x509/a_verify.c +45 -51
- data/third_party/boringssl/crypto/x509/asn1_gen.c +715 -769
- data/third_party/boringssl/crypto/x509/by_dir.c +355 -393
- data/third_party/boringssl/crypto/x509/by_file.c +186 -206
- data/third_party/boringssl/crypto/x509/charmap.h +11 -11
- data/third_party/boringssl/crypto/x509/i2d_pr.c +21 -22
- data/third_party/boringssl/crypto/x509/t_crl.c +50 -51
- data/third_party/boringssl/crypto/x509/t_x509.c +414 -406
- data/third_party/boringssl/crypto/x509/t_x509a.c +44 -42
- data/third_party/boringssl/crypto/x509/vpm_int.h +13 -13
- data/third_party/boringssl/crypto/x509/x509_att.c +241 -219
- data/third_party/boringssl/crypto/x509/x509_cmp.c +343 -359
- data/third_party/boringssl/crypto/x509/x509_d2.c +36 -35
- data/third_party/boringssl/crypto/x509/x509_def.c +23 -13
- data/third_party/boringssl/crypto/x509/x509_ext.c +75 -75
- data/third_party/boringssl/crypto/x509/x509_lu.c +574 -612
- data/third_party/boringssl/crypto/x509/x509_obj.c +104 -115
- data/third_party/boringssl/crypto/x509/x509_r2x.c +40 -40
- data/third_party/boringssl/crypto/x509/x509_req.c +181 -174
- data/third_party/boringssl/crypto/x509/x509_set.c +71 -76
- data/third_party/boringssl/crypto/x509/x509_trs.c +193 -171
- data/third_party/boringssl/crypto/x509/x509_txt.c +135 -138
- data/third_party/boringssl/crypto/x509/x509_v3.c +174 -167
- data/third_party/boringssl/crypto/x509/x509_vfy.c +2079 -2130
- data/third_party/boringssl/crypto/x509/x509_vpm.c +486 -522
- data/third_party/boringssl/crypto/x509/x509cset.c +96 -99
- data/third_party/boringssl/crypto/x509/x509name.c +280 -275
- data/third_party/boringssl/crypto/x509/x509rset.c +15 -14
- data/third_party/boringssl/crypto/x509/x509spki.c +62 -60
- data/third_party/boringssl/crypto/x509/x509type.c +58 -60
- data/third_party/boringssl/crypto/x509/x_algor.c +70 -73
- data/third_party/boringssl/crypto/x509/x_all.c +282 -328
- data/third_party/boringssl/crypto/x509/x_attrib.c +36 -42
- data/third_party/boringssl/crypto/x509/x_crl.c +397 -418
- data/third_party/boringssl/crypto/x509/x_exten.c +5 -5
- data/third_party/boringssl/crypto/x509/x_info.c +30 -27
- data/third_party/boringssl/crypto/x509/x_name.c +387 -388
- data/third_party/boringssl/crypto/x509/x_pkey.c +32 -29
- data/third_party/boringssl/crypto/x509/x_pubkey.c +261 -280
- data/third_party/boringssl/crypto/x509/x_req.c +30 -33
- data/third_party/boringssl/crypto/x509/x_sig.c +2 -2
- data/third_party/boringssl/crypto/x509/x_spki.c +9 -7
- data/third_party/boringssl/crypto/x509/x_val.c +2 -2
- data/third_party/boringssl/crypto/x509/x_x509.c +120 -119
- data/third_party/boringssl/crypto/x509/x_x509a.c +99 -91
- data/third_party/boringssl/crypto/x509v3/ext_dat.h +57 -51
- data/third_party/boringssl/crypto/x509v3/pcy_cache.c +199 -214
- data/third_party/boringssl/crypto/x509v3/pcy_data.c +57 -64
- data/third_party/boringssl/crypto/x509v3/pcy_int.h +95 -90
- data/third_party/boringssl/crypto/x509v3/pcy_lib.c +86 -87
- data/third_party/boringssl/crypto/x509v3/pcy_map.c +61 -64
- data/third_party/boringssl/crypto/x509v3/pcy_node.c +108 -117
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +676 -724
- data/third_party/boringssl/crypto/x509v3/v3_akey.c +128 -136
- data/third_party/boringssl/crypto/x509v3/v3_akeya.c +7 -6
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +499 -507
- data/third_party/boringssl/crypto/x509v3/v3_bcons.c +54 -47
- data/third_party/boringssl/crypto/x509v3/v3_bitst.c +67 -67
- data/third_party/boringssl/crypto/x509v3/v3_conf.c +330 -328
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +354 -338
- data/third_party/boringssl/crypto/x509v3/v3_crld.c +441 -496
- data/third_party/boringssl/crypto/x509v3/v3_enum.c +35 -33
- data/third_party/boringssl/crypto/x509v3/v3_extku.c +66 -63
- data/third_party/boringssl/crypto/x509v3/v3_genn.c +157 -159
- data/third_party/boringssl/crypto/x509v3/v3_ia5.c +45 -43
- data/third_party/boringssl/crypto/x509v3/v3_info.c +124 -112
- data/third_party/boringssl/crypto/x509v3/v3_int.c +30 -26
- data/third_party/boringssl/crypto/x509v3/v3_lib.c +231 -204
- data/third_party/boringssl/crypto/x509v3/v3_ncons.c +353 -381
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +252 -270
- data/third_party/boringssl/crypto/x509v3/v3_pcia.c +9 -8
- data/third_party/boringssl/crypto/x509v3/v3_pcons.c +58 -61
- data/third_party/boringssl/crypto/x509v3/v3_pku.c +35 -34
- data/third_party/boringssl/crypto/x509v3/v3_pmaps.c +72 -74
- data/third_party/boringssl/crypto/x509v3/v3_prn.c +146 -121
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +651 -582
- data/third_party/boringssl/crypto/x509v3/v3_skey.c +76 -72
- data/third_party/boringssl/crypto/x509v3/v3_sxnet.c +139 -131
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +1072 -1068
- data/third_party/boringssl/include/openssl/asn1.h +40 -38
- data/third_party/boringssl/include/openssl/base.h +10 -1
- data/third_party/boringssl/include/openssl/bio.h +10 -11
- data/third_party/boringssl/include/openssl/bn.h +12 -9
- data/third_party/boringssl/include/openssl/buf.h +1 -1
- data/third_party/boringssl/include/openssl/bytestring.h +29 -0
- data/third_party/boringssl/include/openssl/conf.h +25 -0
- data/third_party/boringssl/include/openssl/crypto.h +6 -1
- data/third_party/boringssl/include/openssl/curve25519.h +6 -3
- data/third_party/boringssl/include/openssl/dh.h +7 -3
- data/third_party/boringssl/include/openssl/dsa.h +108 -51
- data/third_party/boringssl/include/openssl/ec.h +46 -21
- data/third_party/boringssl/include/openssl/ec_key.h +78 -42
- data/third_party/boringssl/include/openssl/ecdsa.h +4 -4
- data/third_party/boringssl/include/openssl/err.h +3 -2
- data/third_party/boringssl/include/openssl/evp.h +120 -37
- data/third_party/boringssl/include/openssl/mem.h +4 -13
- data/third_party/boringssl/include/openssl/obj_mac.h +4 -0
- data/third_party/boringssl/include/openssl/pem.h +0 -9
- data/third_party/boringssl/include/openssl/pkcs8.h +6 -2
- data/third_party/boringssl/include/openssl/rand.h +3 -0
- data/third_party/boringssl/include/openssl/rsa.h +42 -42
- data/third_party/boringssl/include/openssl/ssl.h +115 -41
- data/third_party/boringssl/include/openssl/stack.h +0 -3
- data/third_party/boringssl/include/openssl/stack_macros.h +0 -256
- data/third_party/boringssl/include/openssl/tls1.h +1 -1
- data/third_party/boringssl/include/openssl/x509.h +0 -2
- data/third_party/boringssl/include/openssl/x509_vfy.h +5 -0
- data/third_party/boringssl/ssl/d1_both.c +102 -101
- data/third_party/boringssl/ssl/d1_clnt.c +145 -150
- data/third_party/boringssl/ssl/d1_lib.c +63 -62
- data/third_party/boringssl/ssl/d1_pkt.c +73 -71
- data/third_party/boringssl/ssl/d1_srvr.c +116 -125
- data/third_party/boringssl/ssl/dtls_record.c +3 -3
- data/third_party/boringssl/ssl/internal.h +210 -208
- data/third_party/boringssl/ssl/pqueue/pqueue.c +2 -2
- data/third_party/boringssl/ssl/s3_both.c +116 -130
- data/third_party/boringssl/ssl/s3_clnt.c +589 -740
- data/third_party/boringssl/ssl/s3_enc.c +52 -151
- data/third_party/boringssl/ssl/s3_lib.c +70 -76
- data/third_party/boringssl/ssl/s3_pkt.c +105 -144
- data/third_party/boringssl/ssl/s3_srvr.c +542 -806
- data/third_party/boringssl/ssl/ssl_aead_ctx.c +1 -1
- data/third_party/boringssl/ssl/ssl_cert.c +2 -2
- data/third_party/boringssl/ssl/ssl_cipher.c +7 -3
- data/third_party/boringssl/ssl/ssl_ecdh.c +374 -0
- data/third_party/boringssl/ssl/ssl_lib.c +260 -221
- data/third_party/boringssl/ssl/ssl_session.c +17 -17
- data/third_party/boringssl/ssl/t1_enc.c +128 -273
- data/third_party/boringssl/ssl/t1_lib.c +134 -258
- data/third_party/boringssl/ssl/test/test_config.h +2 -0
- data/third_party/boringssl/ssl/tls_record.c +52 -15
- metadata +385 -359
- data/src/core/channel/client_uchannel.c +0 -243
- data/src/core/channel/client_uchannel.h +0 -60
- data/src/core/channel/connected_channel.h +0 -51
- data/src/core/client_config/lb_policies/pick_first.h +0 -43
- data/src/core/client_config/resolvers/dns_resolver.h +0 -42
- data/src/core/client_config/subchannel_factory.h +0 -66
- data/src/core/httpcli/parser.c +0 -211
- data/src/core/iomgr/fd_posix.c +0 -451
- data/src/core/iomgr/fd_posix.h +0 -192
- data/src/core/iomgr/pollset_multipoller_with_epoll.c +0 -324
- data/src/core/iomgr/pollset_multipoller_with_poll_posix.c +0 -234
- data/src/core/iomgr/pollset_posix.c +0 -633
- data/src/core/iomgr/pollset_posix.h +0 -153
- data/src/core/iomgr/pollset_set_posix.c +0 -202
- data/src/core/iomgr/pollset_set_posix.h +0 -45
- data/src/core/surface/init.c +0 -174
- data/src/core/surface/init_secure.c +0 -42
- data/src/core/surface/server_create.c +0 -48
- data/src/core/transport/chttp2/huffsyms.c +0 -297
- data/src/ruby/bin/grpc_ruby_interop_client +0 -33
- data/src/ruby/bin/grpc_ruby_interop_server +0 -33
- data/third_party/boringssl/crypto/dsa/internal.h +0 -78
@@ -81,14 +81,24 @@ extern "C" {
|
|
81
81
|
typedef struct ec_group_st EC_GROUP;
|
82
82
|
typedef struct ec_point_st EC_POINT;
|
83
83
|
|
84
|
-
|
85
|
-
*
|
84
|
+
/* point_conversion_form_t enumerates forms, as defined in X9.62 (ECDSA), for
|
85
|
+
* the encoding of a elliptic curve point (x,y) */
|
86
86
|
typedef enum {
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
87
|
+
/* POINT_CONVERSION_COMPRESSED indicates that the point is encoded as z||x,
|
88
|
+
* where the octet z specifies which solution of the quadratic equation y
|
89
|
+
* is. */
|
90
|
+
POINT_CONVERSION_COMPRESSED = 2,
|
91
|
+
|
92
|
+
/* POINT_CONVERSION_COMPRESSED indicates that the point is encoded as
|
93
|
+
* z||x||y, where z is the octet 0x04. */
|
94
|
+
POINT_CONVERSION_UNCOMPRESSED = 4,
|
95
|
+
|
96
|
+
/* POINT_CONVERSION_HYBRID indicates that the point is encoded as z||x||y,
|
97
|
+
* where z specifies which solution of the quadratic equation y is. This is
|
98
|
+
* not supported by the code and has never been observed in use.
|
99
|
+
*
|
100
|
+
* TODO(agl): remove once node.js no longer references this. */
|
101
|
+
POINT_CONVERSION_HYBRID = 6,
|
92
102
|
} point_conversion_form_t;
|
93
103
|
|
94
104
|
|
@@ -229,6 +239,13 @@ OPENSSL_EXPORT size_t EC_POINT_point2oct(const EC_GROUP *group,
|
|
229
239
|
point_conversion_form_t form,
|
230
240
|
uint8_t *buf, size_t len, BN_CTX *ctx);
|
231
241
|
|
242
|
+
/* EC_POINT_point2cbb behaves like |EC_POINT_point2oct| but appends the
|
243
|
+
* serialised point to |cbb|. It returns one on success and zero on error. */
|
244
|
+
OPENSSL_EXPORT int EC_POINT_point2cbb(CBB *out, const EC_GROUP *group,
|
245
|
+
const EC_POINT *point,
|
246
|
+
point_conversion_form_t form,
|
247
|
+
BN_CTX *ctx);
|
248
|
+
|
232
249
|
/* EC_POINT_oct2point sets |point| from |len| bytes of X9.62 format
|
233
250
|
* serialisation in |buf|. It returns one on success and zero otherwise. The
|
234
251
|
* |ctx| argument may be used if not NULL. */
|
@@ -271,16 +288,16 @@ OPENSSL_EXPORT int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r,
|
|
271
288
|
|
272
289
|
/* Deprecated functions. */
|
273
290
|
|
274
|
-
/*
|
275
|
-
*
|
276
|
-
* error.
|
291
|
+
/* EC_GROUP_new_arbitrary creates a new, arbitrary elliptic curve group based on
|
292
|
+
* the equation y² = x³ + a·x + b. The generator is set to (gx, gy) which must
|
293
|
+
* have the given order and cofactor. It returns the new group or NULL on error.
|
277
294
|
*
|
278
295
|
* |EC_GROUP|s returned by this function will always compare as unequal via
|
279
296
|
* |EC_GROUP_cmp| (even to themselves). |EC_GROUP_get_curve_name| will always
|
280
297
|
* return |NID_undef|. */
|
281
|
-
OPENSSL_EXPORT EC_GROUP *
|
282
|
-
|
283
|
-
|
298
|
+
OPENSSL_EXPORT EC_GROUP *EC_GROUP_new_arbitrary(
|
299
|
+
const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, const BIGNUM *gx,
|
300
|
+
const BIGNUM *gy, const BIGNUM *order, const BIGNUM *cofactor);
|
284
301
|
|
285
302
|
/* EC_GROUP_get_order sets |*order| to the order of |group|, if it's not
|
286
303
|
* NULL. It returns one on success and zero otherwise. |ctx| is ignored. Use
|
@@ -288,14 +305,6 @@ OPENSSL_EXPORT EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p,
|
|
288
305
|
OPENSSL_EXPORT int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order,
|
289
306
|
BN_CTX *ctx);
|
290
307
|
|
291
|
-
/* EC_GROUP_set_generator sets the generator for |group| to |generator|, which
|
292
|
-
* must have the given order and cofactor. This should only be used with
|
293
|
-
* |EC_GROUP| objects returned by |EC_GROUP_new_curve_GFp|. */
|
294
|
-
OPENSSL_EXPORT int EC_GROUP_set_generator(EC_GROUP *group,
|
295
|
-
const EC_POINT *generator,
|
296
|
-
const BIGNUM *order,
|
297
|
-
const BIGNUM *cofactor);
|
298
|
-
|
299
308
|
/* EC_GROUP_set_asn1_flag does nothing. */
|
300
309
|
OPENSSL_EXPORT void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag);
|
301
310
|
|
@@ -314,6 +323,19 @@ OPENSSL_EXPORT int EC_METHOD_get_field_type(const EC_METHOD *meth);
|
|
314
323
|
OPENSSL_EXPORT void EC_GROUP_set_point_conversion_form(
|
315
324
|
EC_GROUP *group, point_conversion_form_t form);
|
316
325
|
|
326
|
+
/* EC_builtin_curve describes a supported elliptic curve. */
|
327
|
+
typedef struct {
|
328
|
+
int nid;
|
329
|
+
const char *comment;
|
330
|
+
} EC_builtin_curve;
|
331
|
+
|
332
|
+
/* EC_get_builtin_curves writes at most |max_num_curves| elements to
|
333
|
+
* |out_curves| and returns the total number that it would have written, had
|
334
|
+
* |max_num_curves| been large enough.
|
335
|
+
*
|
336
|
+
* The |EC_builtin_curve| items describe the supported elliptic curves. */
|
337
|
+
OPENSSL_EXPORT size_t EC_get_builtin_curves(EC_builtin_curve *out_curves,
|
338
|
+
size_t max_num_curves);
|
317
339
|
|
318
340
|
/* Old code expects to get EC_KEY from ec.h. */
|
319
341
|
#include <openssl/ec_key.h>
|
@@ -351,5 +373,8 @@ OPENSSL_EXPORT void EC_GROUP_set_point_conversion_form(
|
|
351
373
|
#define EC_R_WRONG_ORDER 125
|
352
374
|
#define EC_R_BIGNUM_OUT_OF_RANGE 126
|
353
375
|
#define EC_R_WRONG_CURVE_PARAMETERS 127
|
376
|
+
#define EC_R_DECODE_ERROR 128
|
377
|
+
#define EC_R_ENCODE_ERROR 129
|
378
|
+
#define EC_R_GROUP_MISMATCH 130
|
354
379
|
|
355
380
|
#endif /* OPENSSL_HEADER_EC_H */
|
@@ -177,48 +177,26 @@ OPENSSL_EXPORT int EC_KEY_generate_key(EC_KEY *key);
|
|
177
177
|
|
178
178
|
/* Serialisation. */
|
179
179
|
|
180
|
-
/*
|
181
|
-
*
|
182
|
-
*
|
183
|
-
*
|
184
|
-
*
|
185
|
-
*
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
*
|
191
|
-
*
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
/*
|
196
|
-
*
|
197
|
-
*
|
198
|
-
*
|
199
|
-
*
|
200
|
-
* It returns the result or NULL on error. */
|
201
|
-
OPENSSL_EXPORT EC_KEY *d2i_ECParameters(EC_KEY **out_key, const uint8_t **inp,
|
202
|
-
long len);
|
203
|
-
|
204
|
-
/* i2d_ECParameters marshals EC parameters from |key| to an ASN.1, DER
|
205
|
-
* structure. If |outp| is not NULL then the result is written to |*outp| and
|
206
|
-
* |*outp| is advanced just past the output. It returns the number of bytes in
|
207
|
-
* the result, whether written or not, or a negative value on error. */
|
208
|
-
OPENSSL_EXPORT int i2d_ECParameters(const EC_KEY *key, uint8_t **outp);
|
209
|
-
|
210
|
-
/* o2i_ECPublicKey parses an EC point from |len| bytes at |*inp| into
|
211
|
-
* |*out_key|. Note that this differs from the d2i format in that |*out_key|
|
212
|
-
* must be non-NULL with a group set. On successful exit, |*inp| is advanced by
|
213
|
-
* |len| bytes. It returns |*out_key| or NULL on error. */
|
214
|
-
OPENSSL_EXPORT EC_KEY *o2i_ECPublicKey(EC_KEY **out_key, const uint8_t **inp,
|
215
|
-
long len);
|
216
|
-
|
217
|
-
/* i2o_ECPublicKey marshals an EC point from |key|. If |outp| is not NULL then
|
218
|
-
* the result is written to |*outp| and |*outp| is advanced just past the
|
219
|
-
* output. It returns the number of bytes in the result, whether written or
|
220
|
-
* not, or a negative value on error. */
|
221
|
-
OPENSSL_EXPORT int i2o_ECPublicKey(const EC_KEY *key, unsigned char **outp);
|
180
|
+
/* EC_KEY_parse_private_key parses a DER-encoded ECPrivateKey structure (RFC
|
181
|
+
* 5915) from |cbs| and advances |cbs|. It returns a newly-allocated |EC_KEY| or
|
182
|
+
* NULL on error. If |group| is non-null, the parameters field of the
|
183
|
+
* ECPrivateKey may be omitted (but must match |group| if present). Otherwise,
|
184
|
+
* the parameters field is required. */
|
185
|
+
OPENSSL_EXPORT EC_KEY *EC_KEY_parse_private_key(CBS *cbs,
|
186
|
+
const EC_GROUP *group);
|
187
|
+
|
188
|
+
/* EC_KEY_marshal_private_key marshals |key| as a DER-encoded ECPrivateKey
|
189
|
+
* structure (RFC 5915) and appends the result to |cbb|. It returns one on
|
190
|
+
* success and zero on failure. |enc_flags| is a combination of |EC_PKEY_*|
|
191
|
+
* values and controls whether corresponding fields are omitted. */
|
192
|
+
OPENSSL_EXPORT int EC_KEY_marshal_private_key(CBB *cbb, const EC_KEY *key,
|
193
|
+
unsigned enc_flags);
|
194
|
+
|
195
|
+
/* EC_KEY_parse_parameters parses a DER-encoded ECParameters structure (RFC
|
196
|
+
* 5480) from |cbs| and advances |cbs|. It returns a newly-allocated |EC_GROUP|
|
197
|
+
* or NULL on error. It supports the namedCurve and specifiedCurve options, but
|
198
|
+
* use of specifiedCurve is deprecated. */
|
199
|
+
OPENSSL_EXPORT EC_GROUP *EC_KEY_parse_parameters(CBS *cbs);
|
222
200
|
|
223
201
|
|
224
202
|
/* ex_data functions.
|
@@ -272,6 +250,64 @@ struct ecdsa_method_st {
|
|
272
250
|
/* EC_KEY_set_asn1_flag does nothing. */
|
273
251
|
OPENSSL_EXPORT void EC_KEY_set_asn1_flag(EC_KEY *key, int flag);
|
274
252
|
|
253
|
+
/* d2i_ECPrivateKey parses an ASN.1, DER-encoded, private key from |len| bytes
|
254
|
+
* at |*inp|. If |out_key| is not NULL then, on exit, a pointer to the result
|
255
|
+
* is in |*out_key|. Note that, even if |*out_key| is already non-NULL on entry,
|
256
|
+
* it * will not be written to. Rather, a fresh |EC_KEY| is allocated and the
|
257
|
+
* previous * one is freed. On successful exit, |*inp| is advanced past the DER
|
258
|
+
* structure. It returns the result or NULL on error.
|
259
|
+
*
|
260
|
+
* On input, if |*out_key| is non-NULL and has a group configured, the
|
261
|
+
* parameters field may be omitted but must match that group if present.
|
262
|
+
*
|
263
|
+
* Use |EC_KEY_parse_private_key| instead. */
|
264
|
+
OPENSSL_EXPORT EC_KEY *d2i_ECPrivateKey(EC_KEY **out_key, const uint8_t **inp,
|
265
|
+
long len);
|
266
|
+
|
267
|
+
/* i2d_ECPrivateKey marshals an EC private key from |key| to an ASN.1, DER
|
268
|
+
* structure. If |outp| is not NULL then the result is written to |*outp| and
|
269
|
+
* |*outp| is advanced just past the output. It returns the number of bytes in
|
270
|
+
* the result, whether written or not, or a negative value on error.
|
271
|
+
*
|
272
|
+
* Use |EC_KEY_marshal_private_key| instead. */
|
273
|
+
OPENSSL_EXPORT int i2d_ECPrivateKey(const EC_KEY *key, uint8_t **outp);
|
274
|
+
|
275
|
+
/* d2i_ECParameters parses an ASN.1, DER-encoded, set of EC parameters from
|
276
|
+
* |len| bytes at |*inp|. If |out_key| is not NULL then, on exit, a pointer to
|
277
|
+
* the result is in |*out_key|. Note that, even if |*out_key| is already
|
278
|
+
* non-NULL on entry, it will not be written to. Rather, a fresh |EC_KEY| is
|
279
|
+
* allocated and the previous one is freed. On successful exit, |*inp| is
|
280
|
+
* advanced past the DER structure. It returns the result or NULL on error.
|
281
|
+
*
|
282
|
+
* Use EC_KEY_parse_parameters instead. */
|
283
|
+
OPENSSL_EXPORT EC_KEY *d2i_ECParameters(EC_KEY **out_key, const uint8_t **inp,
|
284
|
+
long len);
|
285
|
+
|
286
|
+
/* i2d_ECParameters marshals EC parameters from |key| to an ASN.1, DER
|
287
|
+
* structure. If |outp| is not NULL then the result is written to |*outp| and
|
288
|
+
* |*outp| is advanced just past the output. It returns the number of bytes in
|
289
|
+
* the result, whether written or not, or a negative value on error.
|
290
|
+
*
|
291
|
+
* Use |OBJ_nid2cbb| and |EC_GROUP_get_curve_name| instead. */
|
292
|
+
OPENSSL_EXPORT int i2d_ECParameters(const EC_KEY *key, uint8_t **outp);
|
293
|
+
|
294
|
+
/* o2i_ECPublicKey parses an EC point from |len| bytes at |*inp| into
|
295
|
+
* |*out_key|. Note that this differs from the d2i format in that |*out_key|
|
296
|
+
* must be non-NULL with a group set. On successful exit, |*inp| is advanced by
|
297
|
+
* |len| bytes. It returns |*out_key| or NULL on error.
|
298
|
+
*
|
299
|
+
* Use |EC_POINT_oct2point| instead. */
|
300
|
+
OPENSSL_EXPORT EC_KEY *o2i_ECPublicKey(EC_KEY **out_key, const uint8_t **inp,
|
301
|
+
long len);
|
302
|
+
|
303
|
+
/* i2o_ECPublicKey marshals an EC point from |key|. If |outp| is not NULL then
|
304
|
+
* the result is written to |*outp| and |*outp| is advanced just past the
|
305
|
+
* output. It returns the number of bytes in the result, whether written or
|
306
|
+
* not, or a negative value on error.
|
307
|
+
*
|
308
|
+
* Use |EC_POINT_point2cbb| instead. */
|
309
|
+
OPENSSL_EXPORT int i2o_ECPublicKey(const EC_KEY *key, unsigned char **outp);
|
310
|
+
|
275
311
|
|
276
312
|
#if defined(__cplusplus)
|
277
313
|
} /* extern C */
|
@@ -178,10 +178,10 @@ OPENSSL_EXPORT size_t ECDSA_SIG_max_len(size_t order_len);
|
|
178
178
|
|
179
179
|
/* d2i_ECDSA_SIG parses an ASN.1, DER-encoded, signature from |len| bytes at
|
180
180
|
* |*inp|. If |out| is not NULL then, on exit, a pointer to the result is in
|
181
|
-
* |*out|.
|
182
|
-
*
|
183
|
-
* successful exit, |*inp| is advanced past the DER structure. It
|
184
|
-
* result or NULL on error. */
|
181
|
+
* |*out|. Note that, even if |*out| is already non-NULL on entry, it will not
|
182
|
+
* be written to. Rather, a fresh |ECDSA_SIG| is allocated and the previous one
|
183
|
+
* is freed. On successful exit, |*inp| is advanced past the DER structure. It
|
184
|
+
* returns the result or NULL on error. */
|
185
185
|
OPENSSL_EXPORT ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **out, const uint8_t **inp,
|
186
186
|
long len);
|
187
187
|
|
@@ -317,7 +317,8 @@ OPENSSL_EXPORT void ERR_add_error_data(unsigned count, ...);
|
|
317
317
|
|
318
318
|
/* ERR_add_error_dataf takes a printf-style format and arguments, and sets the
|
319
319
|
* result as the data on the most recent error. */
|
320
|
-
OPENSSL_EXPORT void ERR_add_error_dataf(const char *format, ...)
|
320
|
+
OPENSSL_EXPORT void ERR_add_error_dataf(const char *format, ...)
|
321
|
+
OPENSSL_PRINTF_FORMAT_FUNC(1, 2);
|
321
322
|
|
322
323
|
/* ERR_set_mark "marks" the most recent error for use with |ERR_pop_to_mark|.
|
323
324
|
* It returns one if an error was marked and zero if there are no errors. */
|
@@ -367,7 +368,7 @@ struct err_error_st {
|
|
367
368
|
/* ERR_NUM_ERRORS is the limit of the number of errors in the queue. */
|
368
369
|
#define ERR_NUM_ERRORS 16
|
369
370
|
|
370
|
-
/* ERR_STATE contains the per-thread, error queue. */
|
371
|
+
/* err_state_st (aka |ERR_STATE|) contains the per-thread, error queue. */
|
371
372
|
typedef struct err_state_st {
|
372
373
|
/* errors contains the ERR_NUM_ERRORS most recent errors, organised as a ring
|
373
374
|
* buffer. */
|
@@ -133,8 +133,8 @@ OPENSSL_EXPORT int EVP_PKEY_bits(EVP_PKEY *pkey);
|
|
133
133
|
* values. */
|
134
134
|
OPENSSL_EXPORT int EVP_PKEY_id(const EVP_PKEY *pkey);
|
135
135
|
|
136
|
-
/* EVP_PKEY_type returns a
|
137
|
-
*
|
136
|
+
/* EVP_PKEY_type returns |nid| if |nid| is a known key type and |NID_undef|
|
137
|
+
* otherwise. */
|
138
138
|
OPENSSL_EXPORT int EVP_PKEY_type(int nid);
|
139
139
|
|
140
140
|
|
@@ -165,7 +165,6 @@ OPENSSL_EXPORT EC_KEY *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey);
|
|
165
165
|
|
166
166
|
#define EVP_PKEY_NONE NID_undef
|
167
167
|
#define EVP_PKEY_RSA NID_rsaEncryption
|
168
|
-
#define EVP_PKEY_RSA2 NID_rsa
|
169
168
|
#define EVP_PKEY_DSA NID_dsa
|
170
169
|
#define EVP_PKEY_EC NID_X9_62_id_ecPublicKey
|
171
170
|
|
@@ -189,34 +188,37 @@ OPENSSL_EXPORT int EVP_PKEY_cmp_parameters(const EVP_PKEY *a,
|
|
189
188
|
|
190
189
|
/* ASN.1 functions */
|
191
190
|
|
192
|
-
/*
|
193
|
-
*
|
194
|
-
*
|
195
|
-
*
|
196
|
-
*
|
197
|
-
*
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
/* d2i_AutoPrivateKey acts the same as |d2i_PrivateKey|, but detects the type
|
202
|
-
* of the private key. */
|
203
|
-
OPENSSL_EXPORT EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **out, const uint8_t **inp,
|
204
|
-
long len);
|
191
|
+
/* EVP_parse_public_key decodes a DER-encoded SubjectPublicKeyInfo structure
|
192
|
+
* (RFC 5280) from |cbs| and advances |cbs|. It returns a newly-allocated
|
193
|
+
* |EVP_PKEY| or NULL on error.
|
194
|
+
*
|
195
|
+
* The caller must check the type of the parsed public key to ensure it is
|
196
|
+
* suitable and validate other desired key properties such as RSA modulus size
|
197
|
+
* or EC curve. */
|
198
|
+
OPENSSL_EXPORT EVP_PKEY *EVP_parse_public_key(CBS *cbs);
|
205
199
|
|
206
|
-
/*
|
207
|
-
* structure
|
208
|
-
*
|
209
|
-
|
210
|
-
OPENSSL_EXPORT int i2d_PrivateKey(const EVP_PKEY *key, uint8_t **outp);
|
200
|
+
/* EVP_marshal_public_key marshals |key| as a DER-encoded SubjectPublicKeyInfo
|
201
|
+
* structure (RFC 5280) and appends the result to |cbb|. It returns one on
|
202
|
+
* success and zero on error. */
|
203
|
+
OPENSSL_EXPORT int EVP_marshal_public_key(CBB *cbb, const EVP_PKEY *key);
|
211
204
|
|
212
|
-
/*
|
213
|
-
*
|
214
|
-
*
|
215
|
-
* the result, whether written or not, or a negative value on error.
|
205
|
+
/* EVP_parse_private_key decodes a DER-encoded PrivateKeyInfo structure (RFC
|
206
|
+
* 5208) from |cbs| and advances |cbs|. It returns a newly-allocated |EVP_PKEY|
|
207
|
+
* or NULL on error.
|
216
208
|
*
|
217
|
-
*
|
218
|
-
*
|
219
|
-
|
209
|
+
* The caller must check the type of the parsed private key to ensure it is
|
210
|
+
* suitable and validate other desired key properties such as RSA modulus size
|
211
|
+
* or EC curve.
|
212
|
+
*
|
213
|
+
* A PrivateKeyInfo ends with an optional set of attributes. These are not
|
214
|
+
* processed and so this function will silently ignore any trailing data in the
|
215
|
+
* structure. */
|
216
|
+
OPENSSL_EXPORT EVP_PKEY *EVP_parse_private_key(CBS *cbs);
|
217
|
+
|
218
|
+
/* EVP_marshal_private_key marshals |key| as a DER-encoded PrivateKeyInfo
|
219
|
+
* structure (RFC 5208) and appends the result to |cbb|. It returns one on
|
220
|
+
* success and zero on error. */
|
221
|
+
OPENSSL_EXPORT int EVP_marshal_private_key(CBB *cbb, const EVP_PKEY *key);
|
220
222
|
|
221
223
|
|
222
224
|
/* Signing */
|
@@ -427,14 +429,6 @@ OPENSSL_EXPORT EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx);
|
|
427
429
|
/* EVP_PKEY_CTX_get0_pkey returns the |EVP_PKEY| associated with |ctx|. */
|
428
430
|
OPENSSL_EXPORT EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx);
|
429
431
|
|
430
|
-
/* EVP_PKEY_CTX_set_app_data sets an opaque pointer on |ctx|. */
|
431
|
-
OPENSSL_EXPORT void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data);
|
432
|
-
|
433
|
-
/* EVP_PKEY_CTX_get_app_data returns the opaque pointer from |ctx| that was
|
434
|
-
* previously set with |EVP_PKEY_CTX_set_app_data|, or NULL if none has been
|
435
|
-
* set. */
|
436
|
-
OPENSSL_EXPORT void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx);
|
437
|
-
|
438
432
|
/* EVP_PKEY_sign_init initialises an |EVP_PKEY_CTX| for a signing operation. It
|
439
433
|
* should be called before |EVP_PKEY_sign|.
|
440
434
|
*
|
@@ -510,6 +504,34 @@ OPENSSL_EXPORT int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, uint8_t *out,
|
|
510
504
|
size_t *out_len, const uint8_t *in,
|
511
505
|
size_t in_len);
|
512
506
|
|
507
|
+
/* EVP_PKEY_verify_recover_init initialises an |EVP_PKEY_CTX| for a public-key
|
508
|
+
* decryption operation. It should be called before |EVP_PKEY_verify_recover|.
|
509
|
+
*
|
510
|
+
* Public-key decryption is a very obscure operation that is only implemented
|
511
|
+
* by RSA keys. It is effectively a signature verification operation that
|
512
|
+
* returns the signed message directly. It is almost certainly not what you
|
513
|
+
* want.
|
514
|
+
*
|
515
|
+
* It returns one on success or zero on error. */
|
516
|
+
OPENSSL_EXPORT int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx);
|
517
|
+
|
518
|
+
/* EVP_PKEY_verify_recover decrypts |sig_len| bytes from |sig|. If |out| is
|
519
|
+
* NULL, the maximum size of the plaintext is written to |out_len|. Otherwise,
|
520
|
+
* |*out_len| must contain the number of bytes of space available at |out|. If
|
521
|
+
* sufficient, the ciphertext will be written to |out| and |*out_len| updated
|
522
|
+
* with the true length.
|
523
|
+
*
|
524
|
+
* WARNING: Setting |out| to NULL only gives the maximum size of the
|
525
|
+
* plaintext. The actual plaintext may be smaller.
|
526
|
+
*
|
527
|
+
* See the warning about this operation in |EVP_PKEY_verify_recover_init|. It
|
528
|
+
* is probably not what you want.
|
529
|
+
*
|
530
|
+
* It returns one on success or zero on error. */
|
531
|
+
OPENSSL_EXPORT int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, uint8_t *out,
|
532
|
+
size_t *out_len, const uint8_t *sig,
|
533
|
+
size_t siglen);
|
534
|
+
|
513
535
|
/* EVP_PKEY_derive_init initialises an |EVP_PKEY_CTX| for a key derivation
|
514
536
|
* operation. It should be called before |EVP_PKEY_derive_set_peer| and
|
515
537
|
* |EVP_PKEY_derive|.
|
@@ -628,7 +650,7 @@ OPENSSL_EXPORT int EVP_PKEY_CTX_get_rsa_mgf1_md(EVP_PKEY_CTX *ctx,
|
|
628
650
|
*
|
629
651
|
* Returns one on success or zero on error. */
|
630
652
|
OPENSSL_EXPORT int EVP_PKEY_CTX_set0_rsa_oaep_label(EVP_PKEY_CTX *ctx,
|
631
|
-
|
653
|
+
uint8_t *label,
|
632
654
|
size_t label_len);
|
633
655
|
|
634
656
|
/* EVP_PKEY_CTX_get0_rsa_oaep_label sets |*out_label| to point to the internal
|
@@ -646,6 +668,10 @@ OPENSSL_EXPORT int EVP_PKEY_CTX_get0_rsa_oaep_label(EVP_PKEY_CTX *ctx,
|
|
646
668
|
* |EVP_PKEY| of that type. */
|
647
669
|
#define EVP_PKEY_DH NID_dhKeyAgreement
|
648
670
|
|
671
|
+
/* EVP_PKEY_RSA2 was historically an alternate form for RSA public keys (OID
|
672
|
+
* 2.5.8.1.1), but is no longer accepted. */
|
673
|
+
#define EVP_PKEY_RSA2 NID_rsa
|
674
|
+
|
649
675
|
/* OpenSSL_add_all_algorithms does nothing. */
|
650
676
|
OPENSSL_EXPORT void OpenSSL_add_all_algorithms(void);
|
651
677
|
|
@@ -658,6 +684,62 @@ OPENSSL_EXPORT void OpenSSL_add_all_digests(void);
|
|
658
684
|
/* EVP_cleanup does nothing. */
|
659
685
|
OPENSSL_EXPORT void EVP_cleanup(void);
|
660
686
|
|
687
|
+
OPENSSL_EXPORT void EVP_CIPHER_do_all_sorted(
|
688
|
+
void (*callback)(const EVP_CIPHER *cipher, const char *name,
|
689
|
+
const char *unused, void *arg),
|
690
|
+
void *arg);
|
691
|
+
|
692
|
+
OPENSSL_EXPORT void EVP_MD_do_all_sorted(void (*callback)(const EVP_MD *cipher,
|
693
|
+
const char *name,
|
694
|
+
const char *unused,
|
695
|
+
void *arg),
|
696
|
+
void *arg);
|
697
|
+
|
698
|
+
/* i2d_PrivateKey marshals a private key from |key| to an ASN.1, DER
|
699
|
+
* structure. If |outp| is not NULL then the result is written to |*outp| and
|
700
|
+
* |*outp| is advanced just past the output. It returns the number of bytes in
|
701
|
+
* the result, whether written or not, or a negative value on error.
|
702
|
+
*
|
703
|
+
* RSA keys are serialized as a DER-encoded RSAPublicKey (RFC 3447) structure.
|
704
|
+
* EC keys are serialized as a DER-encoded ECPrivateKey (RFC 5915) structure.
|
705
|
+
*
|
706
|
+
* Use |RSA_marshal_private_key| or |EC_marshal_private_key| instead. */
|
707
|
+
OPENSSL_EXPORT int i2d_PrivateKey(const EVP_PKEY *key, uint8_t **outp);
|
708
|
+
|
709
|
+
/* i2d_PublicKey marshals a public key from |key| to a type-specific format.
|
710
|
+
* If |outp| is not NULL then the result is written to |*outp| and
|
711
|
+
* |*outp| is advanced just past the output. It returns the number of bytes in
|
712
|
+
* the result, whether written or not, or a negative value on error.
|
713
|
+
*
|
714
|
+
* RSA keys are serialized as a DER-encoded RSAPublicKey (RFC 3447) structure.
|
715
|
+
* EC keys are serialized as an EC point per SEC 1.
|
716
|
+
*
|
717
|
+
* Use |RSA_marshal_public_key| or |EC_POINT_point2cbb| instead. */
|
718
|
+
OPENSSL_EXPORT int i2d_PublicKey(EVP_PKEY *key, uint8_t **outp);
|
719
|
+
|
720
|
+
/* d2i_PrivateKey parses an ASN.1, DER-encoded, private key from |len| bytes at
|
721
|
+
* |*inp|. If |out| is not NULL then, on exit, a pointer to the result is in
|
722
|
+
* |*out|. If |*out| is already non-NULL on entry then the result is written
|
723
|
+
* directly into |*out|, otherwise a fresh |EVP_PKEY| is allocated. However,
|
724
|
+
* one should not depend on writing into |*out| because this behaviour is
|
725
|
+
* likely to change in the future. On successful exit, |*inp| is advanced past
|
726
|
+
* the DER structure. It returns the result or NULL on error.
|
727
|
+
*
|
728
|
+
* This function tries to detect one of several formats. Instead, use
|
729
|
+
* |EVP_parse_private_key| for a PrivateKeyInfo, |RSA_parse_private_key| for an
|
730
|
+
* RSAPrivateKey, and |EC_parse_private_key| for an ECPrivateKey. */
|
731
|
+
OPENSSL_EXPORT EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **out,
|
732
|
+
const uint8_t **inp, long len);
|
733
|
+
|
734
|
+
/* d2i_AutoPrivateKey acts the same as |d2i_PrivateKey|, but detects the type
|
735
|
+
* of the private key.
|
736
|
+
*
|
737
|
+
* This function tries to detect one of several formats. Instead, use
|
738
|
+
* |EVP_parse_private_key| for a PrivateKeyInfo, |RSA_parse_private_key| for an
|
739
|
+
* RSAPrivateKey, and |EC_parse_private_key| for an ECPrivateKey. */
|
740
|
+
OPENSSL_EXPORT EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **out, const uint8_t **inp,
|
741
|
+
long len);
|
742
|
+
|
661
743
|
|
662
744
|
/* Private functions */
|
663
745
|
|
@@ -746,5 +828,6 @@ struct evp_pkey_st {
|
|
746
828
|
#define EVP_R_PARAMETER_ENCODING_ERROR 152
|
747
829
|
#define EVP_R_UNSUPPORTED_PUBLIC_KEY_TYPE 153
|
748
830
|
#define EVP_R_UNSUPPORTED_SIGNATURE_TYPE 154
|
831
|
+
#define EVP_R_ENCODE_ERROR 155
|
749
832
|
|
750
833
|
#endif /* OPENSSL_HEADER_EVP_H */
|