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
@@ -85,7 +85,7 @@ static CRYPTO_EX_DATA_CLASS g_ex_data_class = CRYPTO_EX_DATA_CLASS_INIT;
|
|
85
85
|
EC_KEY *EC_KEY_new(void) { return EC_KEY_new_method(NULL); }
|
86
86
|
|
87
87
|
EC_KEY *EC_KEY_new_method(const ENGINE *engine) {
|
88
|
-
EC_KEY *ret =
|
88
|
+
EC_KEY *ret = OPENSSL_malloc(sizeof(EC_KEY));
|
89
89
|
if (ret == NULL) {
|
90
90
|
OPENSSL_PUT_ERROR(EC, ERR_R_MALLOC_FAILURE);
|
91
91
|
return NULL;
|
@@ -100,7 +100,6 @@ EC_KEY *EC_KEY_new_method(const ENGINE *engine) {
|
|
100
100
|
METHOD_ref(ret->ecdsa_meth);
|
101
101
|
}
|
102
102
|
|
103
|
-
ret->version = 1;
|
104
103
|
ret->conv_form = POINT_CONVERSION_UNCOMPRESSED;
|
105
104
|
ret->references = 1;
|
106
105
|
|
@@ -209,8 +208,6 @@ EC_KEY *EC_KEY_copy(EC_KEY *dest, const EC_KEY *src) {
|
|
209
208
|
/* copy the rest */
|
210
209
|
dest->enc_flag = src->enc_flag;
|
211
210
|
dest->conv_form = src->conv_form;
|
212
|
-
dest->version = src->version;
|
213
|
-
dest->flags = src->flags;
|
214
211
|
|
215
212
|
return dest;
|
216
213
|
}
|
@@ -91,14 +91,6 @@ void ec_GFp_mont_group_finish(EC_GROUP *group) {
|
|
91
91
|
ec_GFp_simple_group_finish(group);
|
92
92
|
}
|
93
93
|
|
94
|
-
void ec_GFp_mont_group_clear_finish(EC_GROUP *group) {
|
95
|
-
BN_MONT_CTX_free(group->mont);
|
96
|
-
group->mont = NULL;
|
97
|
-
BN_clear_free(group->one);
|
98
|
-
group->one = NULL;
|
99
|
-
ec_GFp_simple_group_clear_finish(group);
|
100
|
-
}
|
101
|
-
|
102
94
|
int ec_GFp_mont_group_copy(EC_GROUP *dest, const EC_GROUP *src) {
|
103
95
|
BN_MONT_CTX_free(dest->mont);
|
104
96
|
dest->mont = NULL;
|
@@ -263,7 +255,6 @@ const EC_METHOD *EC_GFp_mont_method(void) {
|
|
263
255
|
static const EC_METHOD ret = {
|
264
256
|
ec_GFp_mont_group_init,
|
265
257
|
ec_GFp_mont_group_finish,
|
266
|
-
ec_GFp_mont_group_clear_finish,
|
267
258
|
ec_GFp_mont_group_copy,
|
268
259
|
ec_GFp_mont_group_set_curve,
|
269
260
|
ec_GFp_simple_point_get_affine_coordinates,
|
@@ -80,18 +80,11 @@ extern "C" {
|
|
80
80
|
|
81
81
|
|
82
82
|
struct ec_method_st {
|
83
|
-
/* used by EC_GROUP_new, EC_GROUP_free, EC_GROUP_clear_free, EC_GROUP_copy: */
|
84
83
|
int (*group_init)(EC_GROUP *);
|
85
84
|
void (*group_finish)(EC_GROUP *);
|
86
|
-
void (*group_clear_finish)(EC_GROUP *);
|
87
85
|
int (*group_copy)(EC_GROUP *, const EC_GROUP *);
|
88
|
-
|
89
|
-
/* used by EC_GROUP_set_curve_GFp, EC_GROUP_get_curve_GFp, */
|
90
|
-
/* EC_GROUP_set_curve_GF2m, and EC_GROUP_get_curve_GF2m: */
|
91
86
|
int (*group_set_curve)(EC_GROUP *, const BIGNUM *p, const BIGNUM *a,
|
92
87
|
const BIGNUM *b, BN_CTX *);
|
93
|
-
|
94
|
-
/* used by EC_POINT_get_affine_coordinates_GFp: */
|
95
88
|
int (*point_get_affine_coordinates)(const EC_GROUP *, const EC_POINT *,
|
96
89
|
BIGNUM *x, BIGNUM *y, BN_CTX *);
|
97
90
|
|
@@ -112,8 +105,6 @@ struct ec_method_st {
|
|
112
105
|
int (*check_pub_key_order)(const EC_GROUP *group, const EC_POINT *pub_key,
|
113
106
|
BN_CTX *ctx);
|
114
107
|
|
115
|
-
/* internal functions */
|
116
|
-
|
117
108
|
/* 'field_mul' and 'field_sqr' can be used by 'add' and 'dbl' so that the
|
118
109
|
* same implementations of point operations can be used with different
|
119
110
|
* optimized implementations of expensive field operations: */
|
@@ -133,7 +124,7 @@ const EC_METHOD* EC_GFp_mont_method(void);
|
|
133
124
|
struct ec_group_st {
|
134
125
|
const EC_METHOD *meth;
|
135
126
|
|
136
|
-
EC_POINT *generator;
|
127
|
+
EC_POINT *generator;
|
137
128
|
BIGNUM order, cofactor;
|
138
129
|
|
139
130
|
int curve_name; /* optional NID for named curve */
|
@@ -156,9 +147,6 @@ struct ec_group_st {
|
|
156
147
|
struct ec_point_st {
|
157
148
|
const EC_METHOD *meth;
|
158
149
|
|
159
|
-
/* All members except 'meth' are handled by the method functions,
|
160
|
-
* even if they appear generic */
|
161
|
-
|
162
150
|
BIGNUM X;
|
163
151
|
BIGNUM Y;
|
164
152
|
BIGNUM Z; /* Jacobian projective coordinates:
|
@@ -180,14 +168,12 @@ int ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *g_scalar,
|
|
180
168
|
/* method functions in simple.c */
|
181
169
|
int ec_GFp_simple_group_init(EC_GROUP *);
|
182
170
|
void ec_GFp_simple_group_finish(EC_GROUP *);
|
183
|
-
void ec_GFp_simple_group_clear_finish(EC_GROUP *);
|
184
171
|
int ec_GFp_simple_group_copy(EC_GROUP *, const EC_GROUP *);
|
185
172
|
int ec_GFp_simple_group_set_curve(EC_GROUP *, const BIGNUM *p, const BIGNUM *a,
|
186
173
|
const BIGNUM *b, BN_CTX *);
|
187
174
|
int ec_GFp_simple_group_get_curve(const EC_GROUP *, BIGNUM *p, BIGNUM *a,
|
188
175
|
BIGNUM *b, BN_CTX *);
|
189
176
|
unsigned ec_GFp_simple_group_get_degree(const EC_GROUP *);
|
190
|
-
int ec_GFp_simple_group_check_discriminant(const EC_GROUP *, BN_CTX *);
|
191
177
|
int ec_GFp_simple_point_init(EC_POINT *);
|
192
178
|
void ec_GFp_simple_point_finish(EC_POINT *);
|
193
179
|
void ec_GFp_simple_point_clear_finish(EC_POINT *);
|
@@ -232,7 +218,6 @@ int ec_GFp_mont_group_init(EC_GROUP *);
|
|
232
218
|
int ec_GFp_mont_group_set_curve(EC_GROUP *, const BIGNUM *p, const BIGNUM *a,
|
233
219
|
const BIGNUM *b, BN_CTX *);
|
234
220
|
void ec_GFp_mont_group_finish(EC_GROUP *);
|
235
|
-
void ec_GFp_mont_group_clear_finish(EC_GROUP *);
|
236
221
|
int ec_GFp_mont_group_copy(EC_GROUP *, const EC_GROUP *);
|
237
222
|
int ec_GFp_mont_field_mul(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
|
238
223
|
const BIGNUM *b, BN_CTX *);
|
@@ -268,8 +253,6 @@ const EC_METHOD *EC_GFp_nistp256_method(void);
|
|
268
253
|
const EC_METHOD *EC_GFp_nistz256_method(void);
|
269
254
|
|
270
255
|
struct ec_key_st {
|
271
|
-
int version;
|
272
|
-
|
273
256
|
EC_GROUP *group;
|
274
257
|
|
275
258
|
EC_POINT *pub_key;
|
@@ -279,7 +262,6 @@ struct ec_key_st {
|
|
279
262
|
point_conversion_form_t conv_form;
|
280
263
|
|
281
264
|
CRYPTO_refcount_t references;
|
282
|
-
int flags;
|
283
265
|
|
284
266
|
ECDSA_METHOD *ecdsa_meth;
|
285
267
|
|
@@ -68,6 +68,7 @@
|
|
68
68
|
#include <openssl/ec.h>
|
69
69
|
|
70
70
|
#include <openssl/bn.h>
|
71
|
+
#include <openssl/bytestring.h>
|
71
72
|
#include <openssl/err.h>
|
72
73
|
|
73
74
|
#include "internal.h"
|
@@ -268,6 +269,17 @@ size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *point,
|
|
268
269
|
return ec_GFp_simple_point2oct(group, point, form, buf, len, ctx);
|
269
270
|
}
|
270
271
|
|
272
|
+
int EC_POINT_point2cbb(CBB *out, const EC_GROUP *group, const EC_POINT *point,
|
273
|
+
point_conversion_form_t form, BN_CTX *ctx) {
|
274
|
+
size_t len = EC_POINT_point2oct(group, point, form, NULL, 0, ctx);
|
275
|
+
if (len == 0) {
|
276
|
+
return 0;
|
277
|
+
}
|
278
|
+
uint8_t *p;
|
279
|
+
return CBB_add_space(out, &p, len) &&
|
280
|
+
EC_POINT_point2oct(group, point, form, p, len, ctx) == len;
|
281
|
+
}
|
282
|
+
|
271
283
|
int ec_GFp_simple_set_compressed_coordinates(const EC_GROUP *group,
|
272
284
|
EC_POINT *point, const BIGNUM *x_,
|
273
285
|
int y_bit, BN_CTX *ctx) {
|
@@ -31,6 +31,7 @@
|
|
31
31
|
#include <string.h>
|
32
32
|
|
33
33
|
#include "internal.h"
|
34
|
+
#include "../internal.h"
|
34
35
|
|
35
36
|
|
36
37
|
typedef uint8_t u8;
|
@@ -50,7 +51,7 @@ typedef int64_t s64;
|
|
50
51
|
* to the unique minimal representation at the end of the computation. */
|
51
52
|
|
52
53
|
typedef uint64_t limb;
|
53
|
-
typedef
|
54
|
+
typedef uint128_t widelimb;
|
54
55
|
|
55
56
|
typedef limb felem[4];
|
56
57
|
typedef widelimb widefelem[7];
|
@@ -60,23 +61,6 @@ typedef widelimb widefelem[7];
|
|
60
61
|
* scalars for point multiplication. */
|
61
62
|
typedef u8 felem_bytearray[28];
|
62
63
|
|
63
|
-
static const felem_bytearray nistp224_curve_params[5] = {
|
64
|
-
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* p */
|
65
|
-
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
66
|
-
0x00, 0x00, 0x00, 0x00, 0x00, 0x01},
|
67
|
-
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, /* a */
|
68
|
-
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
69
|
-
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE},
|
70
|
-
{0xB4, 0x05, 0x0A, 0x85, 0x0C, 0x04, 0xB3, 0xAB, 0xF5, 0x41, /* b */
|
71
|
-
0x32, 0x56, 0x50, 0x44, 0xB0, 0xB7, 0xD7, 0xBF, 0xD8, 0xBA, 0x27, 0x0B,
|
72
|
-
0x39, 0x43, 0x23, 0x55, 0xFF, 0xB4},
|
73
|
-
{0xB7, 0x0E, 0x0C, 0xBD, 0x6B, 0xB4, 0xBF, 0x7F, 0x32, 0x13, /* x */
|
74
|
-
0x90, 0xB9, 0x4A, 0x03, 0xC1, 0xD3, 0x56, 0xC2, 0x11, 0x22, 0x34, 0x32,
|
75
|
-
0x80, 0xD6, 0x11, 0x5C, 0x1D, 0x21},
|
76
|
-
{0xbd, 0x37, 0x63, 0x88, 0xb5, 0xf7, 0x23, 0xfb, 0x4c, 0x22, /* y */
|
77
|
-
0xdf, 0xe6, 0xcd, 0x43, 0x75, 0xa0, 0x5a, 0x07, 0x47, 0x64, 0x44, 0xd5,
|
78
|
-
0x81, 0x99, 0x85, 0x00, 0x7e, 0x34}};
|
79
|
-
|
80
64
|
/* Precomputed multiples of the standard generator
|
81
65
|
* Points are given in coordinates (X, Y, Z) where Z normally is 1
|
82
66
|
* (0 for the point at infinity).
|
@@ -1019,50 +1003,6 @@ static void batch_mul(felem x_out, felem y_out, felem z_out,
|
|
1019
1003
|
felem_assign(z_out, nq[2]);
|
1020
1004
|
}
|
1021
1005
|
|
1022
|
-
int ec_GFp_nistp224_group_init(EC_GROUP *group) {
|
1023
|
-
int ret;
|
1024
|
-
ret = ec_GFp_simple_group_init(group);
|
1025
|
-
group->a_is_minus3 = 1;
|
1026
|
-
return ret;
|
1027
|
-
}
|
1028
|
-
|
1029
|
-
int ec_GFp_nistp224_group_set_curve(EC_GROUP *group, const BIGNUM *p,
|
1030
|
-
const BIGNUM *a, const BIGNUM *b,
|
1031
|
-
BN_CTX *ctx) {
|
1032
|
-
int ret = 0;
|
1033
|
-
BN_CTX *new_ctx = NULL;
|
1034
|
-
BIGNUM *curve_p, *curve_a, *curve_b;
|
1035
|
-
|
1036
|
-
if (ctx == NULL) {
|
1037
|
-
ctx = BN_CTX_new();
|
1038
|
-
new_ctx = ctx;
|
1039
|
-
if (ctx == NULL) {
|
1040
|
-
return 0;
|
1041
|
-
}
|
1042
|
-
}
|
1043
|
-
BN_CTX_start(ctx);
|
1044
|
-
if (((curve_p = BN_CTX_get(ctx)) == NULL) ||
|
1045
|
-
((curve_a = BN_CTX_get(ctx)) == NULL) ||
|
1046
|
-
((curve_b = BN_CTX_get(ctx)) == NULL)) {
|
1047
|
-
goto err;
|
1048
|
-
}
|
1049
|
-
BN_bin2bn(nistp224_curve_params[0], sizeof(felem_bytearray), curve_p);
|
1050
|
-
BN_bin2bn(nistp224_curve_params[1], sizeof(felem_bytearray), curve_a);
|
1051
|
-
BN_bin2bn(nistp224_curve_params[2], sizeof(felem_bytearray), curve_b);
|
1052
|
-
if (BN_cmp(curve_p, p) ||
|
1053
|
-
BN_cmp(curve_a, a) ||
|
1054
|
-
BN_cmp(curve_b, b)) {
|
1055
|
-
OPENSSL_PUT_ERROR(EC, EC_R_WRONG_CURVE_PARAMETERS);
|
1056
|
-
goto err;
|
1057
|
-
}
|
1058
|
-
ret = ec_GFp_simple_group_set_curve(group, p, a, b, ctx);
|
1059
|
-
|
1060
|
-
err:
|
1061
|
-
BN_CTX_end(ctx);
|
1062
|
-
BN_CTX_free(new_ctx);
|
1063
|
-
return ret;
|
1064
|
-
}
|
1065
|
-
|
1066
1006
|
/* Takes the Jacobian coordinates (X, Y, Z) of a point and returns
|
1067
1007
|
* (X', Y') = (X/Z^2, Y/Z^3) */
|
1068
1008
|
int ec_GFp_nistp224_point_get_affine_coordinates(const EC_GROUP *group,
|
@@ -1285,11 +1225,10 @@ err:
|
|
1285
1225
|
}
|
1286
1226
|
|
1287
1227
|
const EC_METHOD *EC_GFp_nistp224_method(void) {
|
1288
|
-
static const EC_METHOD ret = {
|
1228
|
+
static const EC_METHOD ret = {ec_GFp_simple_group_init,
|
1289
1229
|
ec_GFp_simple_group_finish,
|
1290
|
-
ec_GFp_simple_group_clear_finish,
|
1291
1230
|
ec_GFp_simple_group_copy,
|
1292
|
-
|
1231
|
+
ec_GFp_simple_group_set_curve,
|
1293
1232
|
ec_GFp_nistp224_point_get_affine_coordinates,
|
1294
1233
|
ec_GFp_nistp224_points_mul,
|
1295
1234
|
0 /* check_pub_key_order */,
|
@@ -32,39 +32,18 @@
|
|
32
32
|
#include <string.h>
|
33
33
|
|
34
34
|
#include "internal.h"
|
35
|
+
#include "../internal.h"
|
35
36
|
|
36
37
|
|
37
38
|
typedef uint8_t u8;
|
38
39
|
typedef uint64_t u64;
|
39
40
|
typedef int64_t s64;
|
40
|
-
typedef __uint128_t uint128_t;
|
41
|
-
typedef __int128_t int128_t;
|
42
41
|
|
43
42
|
/* The underlying field. P256 operates over GF(2^256-2^224+2^192+2^96-1). We
|
44
43
|
* can serialise an element of this field into 32 bytes. We call this an
|
45
44
|
* felem_bytearray. */
|
46
45
|
typedef u8 felem_bytearray[32];
|
47
46
|
|
48
|
-
/* These are the parameters of P256, taken from FIPS 186-3, page 86. These
|
49
|
-
* values are big-endian. */
|
50
|
-
static const felem_bytearray nistp256_curve_params[5] = {
|
51
|
-
{0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, /* p */
|
52
|
-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
53
|
-
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
|
54
|
-
{0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, /* a = -3 */
|
55
|
-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
56
|
-
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
57
|
-
0xfc}, /* b */
|
58
|
-
{0x5a, 0xc6, 0x35, 0xd8, 0xaa, 0x3a, 0x93, 0xe7, 0xb3, 0xeb, 0xbd, 0x55,
|
59
|
-
0x76, 0x98, 0x86, 0xbc, 0x65, 0x1d, 0x06, 0xb0, 0xcc, 0x53, 0xb0, 0xf6,
|
60
|
-
0x3b, 0xce, 0x3c, 0x3e, 0x27, 0xd2, 0x60, 0x4b},
|
61
|
-
{0x6b, 0x17, 0xd1, 0xf2, 0xe1, 0x2c, 0x42, 0x47, /* x */
|
62
|
-
0xf8, 0xbc, 0xe6, 0xe5, 0x63, 0xa4, 0x40, 0xf2, 0x77, 0x03, 0x7d, 0x81,
|
63
|
-
0x2d, 0xeb, 0x33, 0xa0, 0xf4, 0xa1, 0x39, 0x45, 0xd8, 0x98, 0xc2, 0x96},
|
64
|
-
{0x4f, 0xe3, 0x42, 0xe2, 0xfe, 0x1a, 0x7f, 0x9b, /* y */
|
65
|
-
0x8e, 0xe7, 0xeb, 0x4a, 0x7c, 0x0f, 0x9e, 0x16, 0x2b, 0xce, 0x33, 0x57,
|
66
|
-
0x6b, 0x31, 0x5e, 0xce, 0xcb, 0xb6, 0x40, 0x68, 0x37, 0xbf, 0x51, 0xf5}};
|
67
|
-
|
68
47
|
/* The representation of field elements.
|
69
48
|
* ------------------------------------
|
70
49
|
*
|
@@ -99,10 +78,10 @@ static const u64 bottom63bits = 0x7ffffffffffffffful;
|
|
99
78
|
/* bin32_to_felem takes a little-endian byte array and converts it into felem
|
100
79
|
* form. This assumes that the CPU is little-endian. */
|
101
80
|
static void bin32_to_felem(felem out, const u8 in[32]) {
|
102
|
-
out[0] = *((u64 *)&in[0]);
|
103
|
-
out[1] = *((u64 *)&in[8]);
|
104
|
-
out[2] = *((u64 *)&in[16]);
|
105
|
-
out[3] = *((u64 *)&in[24]);
|
81
|
+
out[0] = *((const u64 *)&in[0]);
|
82
|
+
out[1] = *((const u64 *)&in[8]);
|
83
|
+
out[2] = *((const u64 *)&in[16]);
|
84
|
+
out[3] = *((const u64 *)&in[24]);
|
106
85
|
}
|
107
86
|
|
108
87
|
/* smallfelem_to_bin32 takes a smallfelem and serialises into a little endian,
|
@@ -1476,7 +1455,7 @@ static void select_point(const u64 idx, unsigned int size,
|
|
1476
1455
|
memset(outlimbs, 0, 3 * sizeof(smallfelem));
|
1477
1456
|
|
1478
1457
|
for (i = 0; i < size; i++) {
|
1479
|
-
const u64 *inlimbs = (u64 *)&pre_comp[i][0][0];
|
1458
|
+
const u64 *inlimbs = (const u64 *)&pre_comp[i][0][0];
|
1480
1459
|
u64 mask = i ^ idx;
|
1481
1460
|
mask |= mask >> 4;
|
1482
1461
|
mask |= mask >> 2;
|
@@ -1602,47 +1581,6 @@ static void batch_mul(felem x_out, felem y_out, felem z_out,
|
|
1602
1581
|
* OPENSSL EC_METHOD FUNCTIONS
|
1603
1582
|
*/
|
1604
1583
|
|
1605
|
-
int ec_GFp_nistp256_group_init(EC_GROUP *group) {
|
1606
|
-
int ret = ec_GFp_simple_group_init(group);
|
1607
|
-
group->a_is_minus3 = 1;
|
1608
|
-
return ret;
|
1609
|
-
}
|
1610
|
-
|
1611
|
-
int ec_GFp_nistp256_group_set_curve(EC_GROUP *group, const BIGNUM *p,
|
1612
|
-
const BIGNUM *a, const BIGNUM *b,
|
1613
|
-
BN_CTX *ctx) {
|
1614
|
-
int ret = 0;
|
1615
|
-
BN_CTX *new_ctx = NULL;
|
1616
|
-
BIGNUM *curve_p, *curve_a, *curve_b;
|
1617
|
-
|
1618
|
-
if (ctx == NULL) {
|
1619
|
-
if ((ctx = new_ctx = BN_CTX_new()) == NULL) {
|
1620
|
-
return 0;
|
1621
|
-
}
|
1622
|
-
}
|
1623
|
-
BN_CTX_start(ctx);
|
1624
|
-
if (((curve_p = BN_CTX_get(ctx)) == NULL) ||
|
1625
|
-
((curve_a = BN_CTX_get(ctx)) == NULL) ||
|
1626
|
-
((curve_b = BN_CTX_get(ctx)) == NULL)) {
|
1627
|
-
goto err;
|
1628
|
-
}
|
1629
|
-
BN_bin2bn(nistp256_curve_params[0], sizeof(felem_bytearray), curve_p);
|
1630
|
-
BN_bin2bn(nistp256_curve_params[1], sizeof(felem_bytearray), curve_a);
|
1631
|
-
BN_bin2bn(nistp256_curve_params[2], sizeof(felem_bytearray), curve_b);
|
1632
|
-
if (BN_cmp(curve_p, p) ||
|
1633
|
-
BN_cmp(curve_a, a) ||
|
1634
|
-
BN_cmp(curve_b, b)) {
|
1635
|
-
OPENSSL_PUT_ERROR(EC, EC_R_WRONG_CURVE_PARAMETERS);
|
1636
|
-
goto err;
|
1637
|
-
}
|
1638
|
-
ret = ec_GFp_simple_group_set_curve(group, p, a, b, ctx);
|
1639
|
-
|
1640
|
-
err:
|
1641
|
-
BN_CTX_end(ctx);
|
1642
|
-
BN_CTX_free(new_ctx);
|
1643
|
-
return ret;
|
1644
|
-
}
|
1645
|
-
|
1646
1584
|
/* Takes the Jacobian coordinates (X, Y, Z) of a point and returns (X', Y') =
|
1647
1585
|
* (X/Z^2, Y/Z^3). */
|
1648
1586
|
int ec_GFp_nistp256_point_get_affine_coordinates(const EC_GROUP *group,
|
@@ -1861,10 +1799,10 @@ err:
|
|
1861
1799
|
|
1862
1800
|
const EC_METHOD *EC_GFp_nistp256_method(void) {
|
1863
1801
|
static const EC_METHOD ret = {
|
1864
|
-
|
1802
|
+
ec_GFp_simple_group_init,
|
1865
1803
|
ec_GFp_simple_group_finish,
|
1866
|
-
|
1867
|
-
|
1804
|
+
ec_GFp_simple_group_copy,
|
1805
|
+
ec_GFp_simple_group_set_curve,
|
1868
1806
|
ec_GFp_nistp256_point_get_affine_coordinates,
|
1869
1807
|
ec_GFp_nistp256_points_mul,
|
1870
1808
|
0 /* check_pub_key_order */,
|
@@ -24,12 +24,7 @@
|
|
24
24
|
* in order to increase the chances of using a large page but that appears to
|
25
25
|
* lead to invalid ELF files being produced. */
|
26
26
|
|
27
|
-
|
28
|
-
__attribute((aligned(4096)))
|
29
|
-
#elif defined(_MSC_VER)
|
30
|
-
__declspec(align(4096))
|
31
|
-
#endif
|
32
|
-
static const BN_ULONG
|
27
|
+
static const alignas(4096) BN_ULONG
|
33
28
|
ecp_nistz256_precomputed[37][64 * sizeof(P256_POINT_AFFINE) /
|
34
29
|
sizeof(BN_ULONG)] = {
|
35
30
|
{TOBN(0x79e730d4, 0x18a9143c), TOBN(0x75ba95fc, 0x5fedb601),
|
@@ -39,15 +39,6 @@
|
|
39
39
|
!defined(OPENSSL_SMALL)
|
40
40
|
|
41
41
|
|
42
|
-
#if defined(__GNUC__)
|
43
|
-
#define ALIGN(x) __attribute((aligned(x)))
|
44
|
-
#elif defined(_MSC_VER)
|
45
|
-
#define ALIGN(x) __declspec(align(x))
|
46
|
-
#else
|
47
|
-
#define ALIGN(x)
|
48
|
-
#endif
|
49
|
-
|
50
|
-
#define ALIGNPTR(p, N) ((uint8_t *)p + N - (size_t)p % N)
|
51
42
|
#define P256_LIMBS (256 / BN_BITS2)
|
52
43
|
|
53
44
|
typedef struct {
|
@@ -245,7 +236,7 @@ static int ecp_nistz256_windowed_mul(const EC_GROUP *group, P256_POINT *r,
|
|
245
236
|
/* A |P256_POINT| is (3 * 32) = 96 bytes, and the 64-byte alignment should
|
246
237
|
* add no more than 63 bytes of overhead. Thus, |table| should require
|
247
238
|
* ~1599 ((96 * 16) + 63) bytes of stack space. */
|
248
|
-
|
239
|
+
alignas(64) P256_POINT table[16];
|
249
240
|
uint8_t p_str[33];
|
250
241
|
|
251
242
|
|
@@ -326,7 +317,7 @@ static int ecp_nistz256_windowed_mul(const EC_GROUP *group, P256_POINT *r,
|
|
326
317
|
ecp_nistz256_point_add(&row[16 - 1], &row[15 - 1], &row[1 - 1]);
|
327
318
|
|
328
319
|
BN_ULONG tmp[P256_LIMBS];
|
329
|
-
|
320
|
+
alignas(32) P256_POINT h;
|
330
321
|
unsigned index = 255;
|
331
322
|
unsigned wvalue = p_str[(index - 1) / 8];
|
332
323
|
wvalue = (wvalue >> ((index - 1) % 8)) & kMask;
|
@@ -390,7 +381,7 @@ static int ecp_nistz256_points_mul(
|
|
390
381
|
static const unsigned kWindowSize = 7;
|
391
382
|
static const unsigned kMask = (1 << (7 /* kWindowSize */ + 1)) - 1;
|
392
383
|
|
393
|
-
|
384
|
+
alignas(32) union {
|
394
385
|
P256_POINT p;
|
395
386
|
P256_POINT_AFFINE a;
|
396
387
|
} t, p;
|
@@ -576,7 +567,6 @@ const EC_METHOD *EC_GFp_nistz256_method(void) {
|
|
576
567
|
static const EC_METHOD ret = {
|
577
568
|
ec_GFp_mont_group_init,
|
578
569
|
ec_GFp_mont_group_finish,
|
579
|
-
ec_GFp_mont_group_clear_finish,
|
580
570
|
ec_GFp_mont_group_copy,
|
581
571
|
ec_GFp_mont_group_set_curve,
|
582
572
|
ecp_nistz256_get_affine,
|