grpc 1.0.1 → 1.1.2
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 +3696 -867
- data/etc/roots.pem +39 -111
- data/include/grpc/byte_buffer.h +64 -1
- data/include/grpc/census.h +40 -96
- data/include/grpc/compression.h +2 -1
- data/include/grpc/grpc.h +42 -7
- data/include/grpc/grpc_posix.h +8 -5
- data/include/grpc/impl/codegen/atm.h +3 -0
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +2 -0
- data/include/grpc/impl/codegen/atm_gcc_sync.h +8 -0
- data/include/grpc/impl/codegen/atm_windows.h +4 -0
- data/include/grpc/impl/codegen/byte_buffer_reader.h +4 -4
- data/include/grpc/impl/codegen/compression_types.h +1 -1
- data/include/grpc/impl/codegen/connectivity_state.h +2 -0
- data/include/grpc/impl/codegen/exec_ctx_fwd.h +41 -0
- data/include/grpc/impl/codegen/gpr_slice.h +84 -0
- data/include/grpc/impl/codegen/{alloc.h → gpr_types.h} +30 -29
- data/include/grpc/impl/codegen/grpc_types.h +91 -9
- data/include/grpc/impl/codegen/port_platform.h +25 -92
- data/include/grpc/impl/codegen/slice.h +54 -97
- data/include/grpc/impl/codegen/sync.h +0 -253
- data/include/grpc/module.modulemap +0 -2
- data/include/grpc/slice.h +132 -0
- data/include/grpc/{impl/codegen/slice_buffer.h → slice_buffer.h} +22 -39
- data/include/grpc/support/alloc.h +40 -1
- data/include/grpc/support/log.h +80 -1
- data/include/grpc/support/log_windows.h +2 -0
- data/include/grpc/support/string_util.h +1 -1
- data/include/grpc/support/sync.h +252 -0
- data/include/grpc/support/time.h +67 -1
- data/src/boringssl/err_data.c +639 -627
- data/src/core/ext/census/base_resources.c +71 -0
- data/src/core/ext/census/base_resources.h +39 -0
- data/src/core/ext/census/gen/census.pb.c +26 -29
- data/src/core/ext/census/gen/census.pb.h +68 -67
- data/src/core/ext/census/gen/trace_context.pb.c +81 -0
- data/src/core/ext/census/gen/trace_context.pb.h +99 -0
- data/src/core/ext/census/grpc_filter.c +22 -16
- data/src/core/ext/census/grpc_plugin.c +2 -1
- data/src/core/ext/census/initialize.c +16 -4
- data/src/core/ext/census/mlog.h +1 -1
- data/src/core/ext/census/placeholders.c +0 -45
- data/src/core/ext/census/resource.c +312 -0
- data/src/core/ext/census/resource.h +63 -0
- data/src/core/ext/census/trace_context.c +86 -0
- data/src/core/ext/census/trace_context.h +68 -0
- data/src/core/ext/census/tracing.c +8 -2
- data/src/core/ext/{client_config → client_channel}/channel_connectivity.c +8 -4
- data/src/core/ext/client_channel/client_channel.c +1218 -0
- data/src/core/ext/{client_config → client_channel}/client_channel.h +8 -11
- data/src/core/ext/{client_config → client_channel}/client_channel_factory.c +33 -3
- data/src/core/ext/{client_config → client_channel}/client_channel_factory.h +15 -8
- data/src/core/ext/{client_config/client_config_plugin.c → client_channel/client_channel_plugin.c} +16 -15
- data/src/core/ext/{client_config → client_channel}/connector.c +1 -1
- data/src/core/ext/{client_config → client_channel}/connector.h +5 -8
- data/{include/grpc/support/slice_buffer.h → src/core/ext/client_channel/default_initial_connect_string.c} +4 -5
- data/src/core/ext/client_channel/http_connect_handshaker.c +399 -0
- data/src/core/ext/client_channel/http_connect_handshaker.h +52 -0
- data/src/core/ext/{client_config → client_channel}/initial_connect_string.c +6 -7
- data/src/core/ext/{client_config → client_channel}/initial_connect_string.h +10 -10
- data/src/core/ext/{client_config → client_channel}/lb_policy.c +11 -11
- data/src/core/ext/{client_config → client_channel}/lb_policy.h +68 -27
- data/src/core/ext/client_channel/lb_policy_factory.c +163 -0
- data/src/core/ext/{client_config → client_channel}/lb_policy_factory.h +64 -9
- data/src/core/ext/{client_config → client_channel}/lb_policy_registry.c +6 -4
- data/src/core/ext/{client_config → client_channel}/lb_policy_registry.h +4 -4
- data/src/core/ext/{client_config → client_channel}/parse_address.c +21 -14
- data/src/core/ext/{client_config → client_channel}/parse_address.h +8 -10
- data/src/core/ext/{client_config → client_channel}/resolver.c +3 -4
- data/src/core/ext/{client_config → client_channel}/resolver.h +11 -15
- data/src/core/ext/{client_config → client_channel}/resolver_factory.c +4 -3
- data/src/core/ext/{client_config → client_channel}/resolver_factory.h +13 -11
- data/src/core/ext/{client_config → client_channel}/resolver_registry.c +54 -34
- data/src/core/ext/{client_config → client_channel}/resolver_registry.h +21 -8
- data/src/core/ext/{client_config → client_channel}/subchannel.c +208 -119
- data/src/core/ext/{client_config → client_channel}/subchannel.h +21 -11
- data/src/core/ext/{client_config → client_channel}/subchannel_index.c +6 -17
- data/src/core/ext/{client_config → client_channel}/subchannel_index.h +7 -7
- data/src/core/ext/{client_config → client_channel}/uri_parser.c +21 -28
- data/src/core/ext/{client_config → client_channel}/uri_parser.h +3 -3
- data/src/core/ext/lb_policy/grpclb/grpclb.c +1406 -0
- data/src/core/ext/lb_policy/grpclb/grpclb.h +44 -0
- data/src/core/ext/lb_policy/grpclb/load_balancer_api.c +117 -37
- data/src/core/ext/lb_policy/grpclb/load_balancer_api.h +31 -12
- data/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +6 -36
- data/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +22 -42
- data/src/core/ext/lb_policy/pick_first/pick_first.c +64 -46
- data/src/core/ext/lb_policy/round_robin/round_robin.c +324 -160
- data/src/core/ext/load_reporting/load_reporting.c +7 -56
- data/src/core/ext/load_reporting/load_reporting.h +41 -28
- data/src/core/ext/load_reporting/load_reporting_filter.c +132 -42
- data/src/core/ext/load_reporting/load_reporting_filter.h +1 -0
- data/src/core/ext/resolver/dns/native/dns_resolver.c +88 -80
- data/src/core/ext/resolver/sockaddr/sockaddr_resolver.c +57 -102
- data/src/core/ext/transport/chttp2/alpn/alpn.c +1 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.c +253 -0
- data/src/core/{lib/iomgr/ev_poll_and_epoll_posix.h → ext/transport/chttp2/client/chttp2_connector.h} +5 -5
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.c +31 -160
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c +5 -5
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c +44 -243
- data/src/core/ext/transport/chttp2/server/chttp2_server.c +342 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +47 -0
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c +11 -124
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c +20 -9
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c +28 -236
- data/src/core/ext/transport/chttp2/transport/bin_decoder.c +31 -27
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +5 -4
- data/src/core/ext/transport/chttp2/transport/bin_encoder.c +25 -22
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +8 -7
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.c +0 -3
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.c +1345 -1521
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +3 -1
- data/src/core/ext/transport/chttp2/transport/frame.h +3 -5
- data/src/core/ext/transport/chttp2/transport/frame_data.c +50 -47
- data/src/core/ext/transport/chttp2/transport/frame_data.h +8 -9
- data/src/core/ext/transport/chttp2/transport/frame_goaway.c +19 -21
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +9 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.c +13 -12
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.c +31 -19
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +8 -7
- data/src/core/ext/transport/chttp2/transport/frame_settings.c +22 -25
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +9 -8
- data/src/core/ext/transport/chttp2/transport/frame_window_update.c +26 -18
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +5 -6
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.c +68 -58
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +8 -5
- data/src/core/ext/transport/chttp2/transport/hpack_parser.c +327 -214
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +14 -9
- data/src/core/ext/transport/chttp2/transport/hpack_table.c +24 -19
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +9 -6
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.c +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +1 -1
- data/src/core/ext/transport/chttp2/transport/internal.h +284 -436
- data/src/core/ext/transport/chttp2/transport/parsing.c +355 -590
- data/src/core/ext/transport/chttp2/transport/stream_lists.c +36 -309
- data/src/core/ext/transport/chttp2/transport/stream_map.c +13 -34
- data/src/core/ext/transport/chttp2/transport/stream_map.h +3 -4
- data/src/core/ext/transport/chttp2/transport/writing.c +174 -286
- data/src/core/lib/channel/channel_args.c +70 -13
- data/src/core/lib/channel/channel_args.h +28 -2
- data/src/core/lib/channel/channel_stack.c +77 -28
- data/src/core/lib/channel/channel_stack.h +61 -23
- data/src/core/lib/channel/channel_stack_builder.c +33 -25
- data/src/core/lib/channel/channel_stack_builder.h +17 -8
- data/src/core/lib/channel/compress_filter.c +52 -36
- data/src/core/lib/channel/connected_channel.c +20 -12
- data/src/core/lib/channel/connected_channel.h +2 -1
- data/src/core/lib/channel/context.h +13 -1
- data/src/core/lib/channel/deadline_filter.c +344 -0
- data/src/core/lib/channel/deadline_filter.h +99 -0
- data/src/core/lib/channel/handshaker.c +240 -0
- data/src/core/lib/channel/handshaker.h +164 -0
- data/src/core/lib/{security/credentials/google_default/credentials_windows.c → channel/handshaker_factory.c} +16 -23
- data/src/core/lib/channel/handshaker_factory.h +66 -0
- data/src/core/lib/channel/handshaker_registry.c +113 -0
- data/src/core/{ext/client_config/client_config.h → lib/channel/handshaker_registry.h} +26 -16
- data/src/core/lib/channel/http_client_filter.c +248 -46
- data/src/core/lib/channel/http_client_filter.h +3 -0
- data/src/core/lib/channel/http_server_filter.c +136 -24
- data/src/core/lib/channel/message_size_filter.c +261 -0
- data/src/core/lib/channel/message_size_filter.h +39 -0
- data/src/core/lib/compression/message_compress.c +43 -37
- data/src/core/lib/compression/message_compress.h +7 -5
- data/src/core/lib/http/format_request.c +26 -11
- data/src/core/lib/http/format_request.h +7 -5
- data/src/core/lib/http/httpcli.c +45 -27
- data/src/core/lib/http/httpcli.h +4 -4
- data/src/core/lib/http/httpcli_security_connector.c +56 -46
- data/src/core/lib/http/parser.c +17 -14
- data/src/core/lib/http/parser.h +4 -2
- data/src/core/lib/iomgr/closure.c +49 -7
- data/src/core/lib/iomgr/closure.h +56 -14
- data/src/core/lib/iomgr/combiner.c +422 -0
- data/src/core/lib/iomgr/combiner.h +64 -0
- data/src/core/lib/iomgr/endpoint.c +8 -2
- data/src/core/lib/iomgr/endpoint.h +17 -7
- data/src/core/lib/iomgr/endpoint_pair.h +3 -2
- data/src/core/lib/iomgr/endpoint_pair_posix.c +9 -8
- data/src/core/{ext/client_config/lb_policy_factory.c → lib/iomgr/endpoint_pair_uv.c} +18 -13
- data/src/core/lib/iomgr/endpoint_pair_windows.c +7 -6
- data/src/core/lib/iomgr/error.c +72 -6
- data/src/core/lib/iomgr/error.h +30 -3
- data/src/core/lib/iomgr/ev_epoll_linux.c +500 -382
- data/src/core/lib/iomgr/ev_epoll_linux.h +3 -2
- data/src/core/lib/iomgr/ev_poll_posix.c +317 -30
- data/src/core/lib/iomgr/ev_poll_posix.h +1 -0
- data/src/core/lib/iomgr/ev_posix.c +26 -5
- data/src/core/lib/iomgr/ev_posix.h +12 -1
- data/src/core/lib/iomgr/exec_ctx.c +27 -94
- data/src/core/lib/iomgr/exec_ctx.h +19 -22
- data/src/core/lib/iomgr/executor.c +29 -8
- data/src/core/lib/iomgr/executor.h +2 -4
- data/src/core/lib/iomgr/iocp_windows.c +3 -4
- data/src/core/lib/iomgr/iomgr.c +14 -10
- data/src/core/lib/iomgr/iomgr.h +6 -2
- data/src/core/lib/iomgr/iomgr_posix.c +2 -2
- data/src/core/lib/iomgr/iomgr_uv.c +49 -0
- data/src/core/lib/iomgr/iomgr_windows.c +2 -2
- data/src/core/lib/iomgr/load_file.c +3 -3
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/network_status_tracker.c +1 -1
- data/src/core/lib/iomgr/pollset_set_uv.c +62 -0
- data/src/core/lib/iomgr/pollset_set_windows.c +3 -3
- data/src/core/lib/iomgr/pollset_uv.c +142 -0
- data/src/core/lib/iomgr/pollset_uv.h +42 -0
- data/src/core/lib/iomgr/pollset_windows.c +5 -6
- data/src/core/lib/iomgr/port.h +129 -0
- data/src/core/lib/iomgr/resolve_address.h +2 -1
- data/src/core/lib/iomgr/resolve_address_posix.c +14 -13
- data/src/core/lib/iomgr/resolve_address_uv.c +233 -0
- data/src/core/lib/iomgr/resolve_address_windows.c +14 -12
- data/src/core/lib/iomgr/resource_quota.c +832 -0
- data/src/core/lib/iomgr/resource_quota.h +159 -0
- data/src/core/lib/iomgr/sockaddr.h +10 -2
- data/src/core/lib/iomgr/sockaddr_utils.c +63 -36
- data/src/core/lib/iomgr/sockaddr_utils.h +14 -14
- data/src/core/lib/iomgr/socket_mutator.c +98 -0
- data/src/core/lib/iomgr/socket_mutator.h +80 -0
- data/src/core/lib/iomgr/socket_utils.h +42 -0
- data/src/core/lib/iomgr/socket_utils_common_posix.c +28 -13
- data/src/core/lib/iomgr/socket_utils_linux.c +11 -5
- data/src/core/lib/iomgr/socket_utils_posix.c +10 -7
- data/src/core/lib/iomgr/socket_utils_posix.h +11 -4
- data/src/core/lib/iomgr/socket_utils_uv.c +49 -0
- data/src/core/lib/iomgr/socket_utils_windows.c +52 -0
- data/src/core/lib/iomgr/socket_windows.c +14 -6
- data/src/core/lib/iomgr/socket_windows.h +1 -0
- data/src/core/lib/iomgr/tcp_client.h +8 -2
- data/src/core/lib/iomgr/tcp_client_posix.c +131 -82
- data/src/core/lib/iomgr/tcp_client_posix.h +45 -0
- data/src/core/lib/iomgr/tcp_client_uv.c +190 -0
- data/src/core/lib/iomgr/tcp_client_windows.c +54 -30
- data/src/core/lib/iomgr/tcp_posix.c +135 -56
- data/src/core/lib/iomgr/tcp_posix.h +2 -2
- data/src/core/lib/iomgr/tcp_server.h +14 -6
- data/src/core/lib/iomgr/tcp_server_posix.c +154 -118
- data/src/core/lib/iomgr/tcp_server_uv.c +388 -0
- data/src/core/lib/iomgr/tcp_server_windows.c +127 -100
- data/src/core/lib/iomgr/tcp_uv.c +367 -0
- data/src/core/lib/iomgr/tcp_uv.h +59 -0
- data/src/core/lib/iomgr/tcp_windows.c +65 -48
- data/src/core/lib/iomgr/tcp_windows.h +3 -1
- data/src/core/lib/iomgr/timer.h +21 -21
- data/src/core/lib/iomgr/{timer.c → timer_generic.c} +15 -10
- data/src/core/lib/iomgr/timer_generic.h +49 -0
- data/src/core/lib/iomgr/timer_heap.c +6 -0
- data/src/core/lib/iomgr/timer_uv.c +99 -0
- data/src/core/lib/iomgr/timer_uv.h +47 -0
- data/src/core/lib/iomgr/udp_server.c +116 -98
- data/src/core/lib/iomgr/udp_server.h +5 -3
- data/src/core/lib/iomgr/unix_sockets_posix.c +14 -6
- data/src/core/lib/iomgr/unix_sockets_posix.h +6 -5
- data/src/core/lib/iomgr/unix_sockets_posix_noop.c +4 -4
- data/src/core/lib/iomgr/wakeup_fd_cv.c +118 -0
- data/src/core/lib/iomgr/wakeup_fd_cv.h +80 -0
- data/src/core/lib/iomgr/wakeup_fd_eventfd.c +3 -3
- data/src/core/lib/iomgr/wakeup_fd_nospecial.c +3 -3
- data/src/core/lib/iomgr/wakeup_fd_pipe.c +12 -6
- data/src/core/lib/iomgr/wakeup_fd_posix.c +34 -5
- data/src/core/lib/iomgr/wakeup_fd_posix.h +5 -0
- data/src/core/lib/iomgr/workqueue.h +12 -20
- data/src/core/{ext/client_config/client_config.c → lib/iomgr/workqueue_uv.c} +24 -33
- data/{include/grpc/support/slice.h → src/core/lib/iomgr/workqueue_uv.h} +4 -6
- data/src/core/lib/iomgr/workqueue_windows.c +9 -8
- data/src/core/lib/json/json.c +3 -3
- data/src/core/lib/json/json.h +11 -11
- data/src/core/lib/json/json_reader.c +9 -5
- data/src/core/lib/profiling/basic_timers.c +10 -1
- data/src/core/lib/profiling/timers.h +2 -0
- data/src/core/lib/security/context/security_context.c +13 -3
- data/src/core/lib/security/context/security_context.h +20 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.c +28 -14
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.c +48 -19
- data/src/core/lib/security/credentials/credentials.h +36 -19
- data/src/core/lib/security/credentials/credentials_metadata.c +11 -8
- data/src/core/lib/security/credentials/fake/fake_credentials.c +15 -11
- data/src/core/lib/security/credentials/google_default/{credentials_posix.c → credentials_generic.c} +7 -14
- data/src/core/lib/security/credentials/google_default/google_default_credentials.c +33 -21
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +14 -0
- data/src/core/lib/security/credentials/iam/iam_credentials.c +3 -2
- data/src/core/lib/security/credentials/jwt/json_token.c +1 -0
- data/src/core/lib/security/credentials/jwt/json_token.h +1 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.c +54 -19
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -1
- data/src/core/lib/security/credentials/jwt/jwt_verifier.c +129 -79
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +9 -6
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.c +63 -28
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -1
- data/src/core/lib/security/credentials/plugin/plugin_credentials.c +32 -11
- data/src/core/lib/security/credentials/ssl/ssl_credentials.c +13 -9
- data/src/core/lib/security/transport/client_auth_filter.c +33 -27
- data/src/core/lib/security/transport/secure_endpoint.c +93 -68
- data/src/core/lib/security/transport/secure_endpoint.h +2 -2
- data/src/core/lib/security/transport/security_connector.c +133 -168
- data/src/core/lib/security/transport/security_connector.h +31 -46
- data/src/core/lib/security/transport/security_handshaker.c +501 -0
- data/src/core/lib/security/transport/{handshake.h → security_handshaker.h} +10 -10
- data/src/core/lib/security/transport/server_auth_filter.c +50 -38
- data/src/core/lib/security/util/b64.c +11 -8
- data/src/core/lib/security/util/b64.h +5 -4
- data/src/core/lib/slice/percent_encoding.c +182 -0
- data/src/core/lib/slice/percent_encoding.h +78 -0
- data/src/core/lib/{support → slice}/slice.c +81 -50
- data/src/core/lib/{support → slice}/slice_buffer.c +78 -60
- data/src/core/lib/slice/slice_internal.h +49 -0
- data/src/core/lib/slice/slice_string_helpers.c +90 -0
- data/src/core/lib/{iomgr/workqueue_posix.h → slice/slice_string_helpers.h} +18 -18
- data/src/core/lib/support/backoff.c +24 -13
- data/src/core/lib/support/backoff.h +5 -2
- data/src/core/lib/support/env.h +0 -2
- data/src/core/lib/support/log.c +5 -4
- data/src/core/lib/support/log_linux.c +0 -1
- data/src/core/lib/support/log_posix.c +1 -1
- data/src/core/lib/support/mpscq.c +83 -0
- data/src/core/lib/support/mpscq.h +65 -0
- data/src/core/lib/support/string.c +58 -49
- data/src/core/lib/support/string.h +11 -8
- data/src/core/lib/support/subprocess_posix.c +5 -2
- data/src/core/lib/support/thd.c +1 -1
- data/src/core/lib/support/time.c +43 -79
- data/src/core/lib/support/time_posix.c +1 -1
- data/src/core/lib/support/tmpfile.h +0 -2
- data/src/core/lib/surface/alarm.c +4 -1
- data/src/core/lib/surface/byte_buffer.c +17 -11
- data/src/core/lib/surface/byte_buffer_reader.c +23 -15
- data/src/core/lib/surface/call.c +294 -276
- data/src/core/lib/surface/call.h +24 -9
- data/src/core/lib/surface/call_log_batch.c +5 -3
- data/src/core/lib/surface/channel.c +127 -111
- data/src/core/lib/surface/channel.h +14 -5
- data/src/core/lib/surface/channel_init.c +1 -1
- data/src/core/lib/surface/channel_init.h +10 -1
- data/src/core/lib/surface/channel_ping.c +7 -6
- data/src/core/lib/surface/completion_queue.c +154 -18
- data/src/core/lib/surface/completion_queue.h +5 -0
- data/src/core/lib/surface/init.c +40 -6
- data/src/core/lib/surface/init.h +1 -0
- data/src/core/lib/surface/init_secure.c +5 -2
- data/src/core/lib/surface/lame_client.c +28 -18
- data/src/core/lib/surface/server.c +134 -87
- data/src/core/lib/surface/server.h +8 -0
- data/src/core/lib/surface/validate_metadata.c +1 -1
- data/src/core/lib/surface/version.c +3 -1
- data/src/core/lib/transport/byte_stream.c +7 -4
- data/src/core/lib/transport/byte_stream.h +6 -10
- data/src/core/lib/transport/connectivity_state.c +21 -12
- data/src/core/lib/transport/connectivity_state.h +4 -1
- data/src/core/lib/transport/mdstr_hash_table.c +118 -0
- data/src/core/lib/transport/mdstr_hash_table.h +77 -0
- data/src/core/lib/transport/metadata.c +83 -60
- data/src/core/lib/transport/metadata.h +41 -23
- data/src/core/lib/transport/metadata_batch.c +17 -11
- data/src/core/lib/transport/metadata_batch.h +20 -6
- data/src/core/lib/transport/pid_controller.c +57 -0
- data/src/core/lib/transport/pid_controller.h +64 -0
- data/src/core/lib/transport/service_config.c +251 -0
- data/src/core/lib/transport/service_config.h +71 -0
- data/src/core/lib/transport/static_metadata.c +18 -16
- data/src/core/lib/transport/static_metadata.h +113 -107
- data/src/core/{ext/transport/chttp2 → lib}/transport/timeout_encoding.c +3 -3
- data/src/core/{ext/transport/chttp2 → lib}/transport/timeout_encoding.h +7 -7
- data/src/core/lib/transport/transport.c +84 -23
- data/src/core/lib/transport/transport.h +53 -8
- data/src/core/lib/transport/transport_impl.h +3 -0
- data/src/core/lib/transport/transport_op_string.c +92 -20
- data/src/core/lib/tsi/ssl_transport_security.c +3 -1
- data/src/core/plugin_registry/grpc_plugin_registry.c +8 -4
- data/src/ruby/ext/grpc/extconf.rb +0 -1
- data/src/ruby/ext/grpc/rb_byte_buffer.c +8 -7
- data/src/ruby/ext/grpc/rb_call.c +15 -5
- data/src/ruby/ext/grpc/rb_channel.c +1 -1
- data/src/ruby/ext/grpc/rb_compression_options.c +466 -0
- data/src/{core/ext/client_config/default_initial_connect_string.c → ruby/ext/grpc/rb_compression_options.h} +10 -5
- data/src/ruby/ext/grpc/rb_grpc.c +3 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +198 -190
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +306 -294
- data/src/ruby/ext/grpc/rb_server.c +18 -12
- data/src/ruby/lib/grpc/errors.rb +154 -2
- data/src/ruby/lib/grpc/generic/active_call.rb +144 -63
- data/src/ruby/lib/grpc/generic/bidi_call.rb +18 -2
- data/src/ruby/lib/grpc/generic/client_stub.rb +7 -5
- data/src/ruby/lib/grpc/generic/rpc_desc.rb +39 -13
- data/src/ruby/lib/grpc/generic/rpc_server.rb +51 -24
- data/src/ruby/lib/grpc/generic/service.rb +3 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/checker.rb +3 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +7 -0
- data/src/ruby/pb/test/client.rb +307 -7
- data/src/ruby/pb/test/server.rb +26 -1
- data/src/ruby/spec/compression_options_spec.rb +164 -0
- data/src/ruby/spec/error_sanity_spec.rb +64 -0
- data/src/ruby/spec/generic/active_call_spec.rb +290 -12
- data/src/ruby/spec/generic/client_stub_spec.rb +91 -41
- data/src/ruby/spec/generic/rpc_desc_spec.rb +36 -16
- data/src/ruby/spec/generic/rpc_server_pool_spec.rb +22 -28
- data/src/ruby/spec/generic/rpc_server_spec.rb +6 -6
- data/src/ruby/spec/pb/health/checker_spec.rb +27 -19
- data/src/ruby/spec/spec_helper.rb +2 -0
- data/third_party/boringssl/crypto/aes/aes.c +12 -12
- data/third_party/boringssl/crypto/aes/mode_wrappers.c +6 -2
- data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +28 -13
- data/third_party/boringssl/crypto/asn1/a_gentm.c +2 -0
- data/third_party/boringssl/crypto/asn1/a_object.c +7 -3
- data/third_party/boringssl/crypto/asn1/a_strnid.c +1 -0
- data/third_party/boringssl/crypto/asn1/a_time.c +0 -11
- data/third_party/boringssl/crypto/asn1/a_type.c +0 -2
- data/third_party/boringssl/crypto/asn1/a_utctm.c +1 -30
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +56 -76
- data/third_party/boringssl/crypto/asn1/asn1_locl.h +0 -10
- data/third_party/boringssl/crypto/asn1/asn1_par.c +0 -322
- data/third_party/boringssl/crypto/asn1/f_enum.c +1 -108
- data/third_party/boringssl/crypto/asn1/f_int.c +1 -106
- data/third_party/boringssl/crypto/asn1/f_string.c +1 -106
- data/third_party/boringssl/crypto/asn1/tasn_dec.c +10 -14
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +17 -11
- data/third_party/boringssl/crypto/asn1/tasn_typ.c +29 -42
- data/third_party/boringssl/crypto/asn1/tasn_utl.c +1 -1
- data/third_party/boringssl/crypto/base64/base64.c +249 -285
- data/third_party/boringssl/crypto/bio/bio.c +13 -23
- data/third_party/boringssl/crypto/bio/bio_mem.c +3 -2
- data/third_party/boringssl/crypto/bio/connect.c +12 -3
- data/third_party/boringssl/crypto/bio/fd.c +22 -15
- data/third_party/boringssl/crypto/bio/file.c +2 -38
- data/third_party/boringssl/crypto/bio/hexdump.c +1 -2
- data/third_party/boringssl/crypto/bio/internal.h +3 -0
- data/third_party/boringssl/crypto/bio/pair.c +1 -1
- data/third_party/boringssl/crypto/bio/socket.c +10 -2
- data/third_party/boringssl/crypto/bio/socket_helper.c +2 -2
- data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +0 -8
- data/third_party/boringssl/crypto/bn/bn.c +38 -0
- data/third_party/boringssl/crypto/bn/cmp.c +25 -0
- data/third_party/boringssl/crypto/bn/convert.c +73 -76
- data/third_party/boringssl/crypto/bn/div.c +136 -70
- data/third_party/boringssl/crypto/bn/exponentiation.c +86 -381
- data/third_party/boringssl/crypto/bn/gcd.c +213 -296
- data/third_party/boringssl/crypto/bn/generic.c +0 -80
- data/third_party/boringssl/crypto/bn/internal.h +15 -3
- data/third_party/boringssl/crypto/bn/montgomery.c +57 -207
- data/third_party/boringssl/crypto/bn/montgomery_inv.c +160 -0
- data/third_party/boringssl/crypto/bn/mul.c +2 -1
- data/third_party/boringssl/crypto/bn/prime.c +24 -8
- data/third_party/boringssl/crypto/bn/random.c +47 -33
- data/third_party/boringssl/crypto/bn/sqrt.c +4 -5
- data/third_party/boringssl/crypto/buf/buf.c +25 -21
- data/third_party/boringssl/crypto/bytestring/ber.c +1 -0
- data/third_party/boringssl/crypto/bytestring/cbb.c +50 -22
- data/third_party/boringssl/crypto/bytestring/cbs.c +28 -4
- data/third_party/boringssl/crypto/chacha/{chacha_generic.c → chacha.c} +56 -29
- data/third_party/boringssl/crypto/cipher/aead.c +11 -22
- data/third_party/boringssl/crypto/cipher/cipher.c +2 -2
- data/third_party/boringssl/crypto/cipher/e_aes.c +53 -103
- data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +2 -8
- data/third_party/boringssl/crypto/cipher/e_des.c +3 -5
- data/third_party/boringssl/crypto/cipher/e_null.c +1 -1
- data/third_party/boringssl/crypto/cipher/e_rc2.c +1 -1
- data/third_party/boringssl/crypto/cipher/e_rc4.c +1 -1
- data/third_party/boringssl/crypto/cipher/e_ssl3.c +3 -63
- data/third_party/boringssl/crypto/cipher/e_tls.c +12 -83
- data/third_party/boringssl/crypto/cipher/internal.h +8 -10
- data/third_party/boringssl/crypto/cipher/tls_cbc.c +69 -40
- data/third_party/boringssl/crypto/conf/conf.c +2 -1
- data/third_party/boringssl/crypto/cpu-aarch64-linux.c +61 -0
- data/third_party/boringssl/crypto/cpu-arm-linux.c +360 -0
- data/third_party/boringssl/crypto/cpu-arm.c +0 -161
- data/third_party/boringssl/crypto/cpu-intel.c +5 -3
- data/third_party/boringssl/{ssl/test/scoped_types.h → crypto/cpu-ppc64le.c} +21 -9
- data/third_party/boringssl/crypto/crypto.c +29 -7
- data/third_party/boringssl/crypto/curve25519/curve25519.c +284 -242
- data/third_party/boringssl/crypto/curve25519/internal.h +64 -0
- data/third_party/boringssl/crypto/curve25519/spake25519.c +464 -0
- data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +21 -0
- data/third_party/boringssl/crypto/dh/check.c +22 -6
- data/third_party/boringssl/crypto/dh/dh.c +45 -21
- data/third_party/boringssl/crypto/dh/dh_asn1.c +96 -20
- data/third_party/boringssl/crypto/dh/params.c +30 -78
- data/third_party/boringssl/crypto/digest/digest.c +3 -3
- data/third_party/boringssl/crypto/dsa/dsa.c +59 -29
- data/third_party/boringssl/crypto/dsa/dsa_asn1.c +4 -0
- data/third_party/boringssl/crypto/ec/ec.c +84 -140
- data/third_party/boringssl/crypto/ec/ec_asn1.c +82 -52
- data/third_party/boringssl/crypto/ec/ec_key.c +15 -15
- data/third_party/boringssl/crypto/ec/ec_montgomery.c +87 -50
- data/third_party/boringssl/crypto/ec/internal.h +12 -36
- data/third_party/boringssl/crypto/ec/oct.c +11 -11
- data/third_party/boringssl/crypto/ec/p224-64.c +59 -116
- data/third_party/boringssl/crypto/ec/p256-64.c +88 -163
- data/third_party/boringssl/crypto/ec/p256-x86_64.c +46 -58
- data/third_party/boringssl/crypto/ec/simple.c +81 -201
- data/third_party/boringssl/crypto/ec/util-64.c +0 -74
- data/third_party/boringssl/crypto/ecdh/ecdh.c +7 -1
- data/third_party/boringssl/crypto/ecdsa/ecdsa.c +28 -46
- data/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c +1 -0
- data/third_party/boringssl/crypto/engine/engine.c +1 -1
- data/third_party/boringssl/crypto/err/err.c +3 -3
- data/third_party/boringssl/crypto/evp/evp.c +14 -59
- data/third_party/boringssl/crypto/evp/evp_asn1.c +144 -87
- data/third_party/boringssl/crypto/evp/evp_ctx.c +7 -7
- data/third_party/boringssl/crypto/evp/internal.h +4 -46
- data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +8 -157
- data/third_party/boringssl/crypto/evp/p_ec.c +1 -1
- data/third_party/boringssl/crypto/evp/p_ec_asn1.c +22 -170
- data/third_party/boringssl/crypto/evp/p_rsa.c +1 -1
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +10 -548
- data/third_party/boringssl/crypto/evp/print.c +520 -0
- data/third_party/boringssl/crypto/ex_data.c +4 -6
- data/third_party/boringssl/crypto/hkdf/hkdf.c +38 -17
- data/third_party/boringssl/crypto/hmac/hmac.c +6 -6
- data/third_party/boringssl/crypto/internal.h +57 -77
- data/third_party/boringssl/crypto/lhash/lhash.c +6 -10
- data/third_party/boringssl/crypto/md4/md4.c +9 -0
- data/third_party/boringssl/crypto/mem.c +19 -19
- data/third_party/boringssl/crypto/modes/cfb.c +5 -6
- data/third_party/boringssl/crypto/modes/ctr.c +10 -18
- data/third_party/boringssl/crypto/modes/gcm.c +100 -66
- data/third_party/boringssl/crypto/modes/internal.h +15 -27
- data/third_party/boringssl/crypto/modes/ofb.c +9 -22
- data/third_party/boringssl/crypto/newhope/error_correction.c +131 -0
- data/third_party/boringssl/crypto/newhope/internal.h +71 -0
- data/third_party/boringssl/crypto/newhope/newhope.c +174 -0
- data/third_party/boringssl/crypto/newhope/ntt.c +148 -0
- data/third_party/boringssl/crypto/newhope/poly.c +183 -0
- data/third_party/boringssl/crypto/newhope/precomp.c +306 -0
- data/third_party/boringssl/crypto/newhope/reduce.c +42 -0
- data/third_party/boringssl/crypto/obj/obj.c +111 -135
- data/third_party/boringssl/crypto/obj/obj_dat.h +4 -10
- data/third_party/boringssl/crypto/pem/pem_lib.c +6 -43
- data/third_party/boringssl/crypto/pem/pem_pkey.c +10 -19
- data/third_party/boringssl/crypto/pkcs8/p5_pbe.c +1 -0
- data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +2 -1
- data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +2 -2
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +95 -87
- data/third_party/boringssl/crypto/{test/test_util.h → poly1305/internal.h} +15 -10
- data/third_party/boringssl/crypto/poly1305/poly1305.c +8 -15
- data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +1 -0
- data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +3 -3
- data/third_party/boringssl/crypto/rand/deterministic.c +47 -0
- data/third_party/boringssl/crypto/rand/rand.c +4 -1
- data/third_party/boringssl/crypto/rand/urandom.c +5 -7
- data/third_party/boringssl/crypto/rand/windows.c +5 -8
- data/third_party/boringssl/crypto/rc4/rc4.c +24 -209
- data/third_party/boringssl/crypto/refcount_lock.c +2 -2
- data/third_party/boringssl/crypto/rsa/blinding.c +74 -232
- data/third_party/boringssl/crypto/rsa/internal.h +5 -13
- data/third_party/boringssl/crypto/rsa/padding.c +64 -63
- data/third_party/boringssl/crypto/rsa/rsa.c +50 -28
- data/third_party/boringssl/crypto/rsa/rsa_asn1.c +8 -16
- data/third_party/boringssl/crypto/rsa/rsa_impl.c +134 -122
- data/third_party/boringssl/crypto/sha/sha256.c +2 -2
- data/third_party/boringssl/crypto/sha/sha512.c +7 -7
- data/third_party/boringssl/crypto/stack/stack.c +13 -22
- data/third_party/boringssl/crypto/thread.c +21 -12
- data/third_party/boringssl/crypto/thread_none.c +6 -2
- data/third_party/boringssl/crypto/thread_pthread.c +16 -7
- data/third_party/boringssl/crypto/thread_win.c +38 -85
- data/third_party/boringssl/crypto/x509/a_sign.c +3 -3
- data/third_party/boringssl/crypto/x509/a_strex.c +1 -1
- data/third_party/boringssl/crypto/x509/a_verify.c +2 -2
- data/third_party/boringssl/crypto/{evp → x509}/algorithm.c +37 -53
- data/third_party/boringssl/crypto/x509/asn1_gen.c +1 -2
- data/third_party/boringssl/crypto/x509/by_dir.c +6 -6
- data/third_party/boringssl/crypto/x509/internal.h +66 -0
- data/third_party/boringssl/crypto/x509/rsa_pss.c +385 -0
- data/third_party/boringssl/crypto/x509/t_x509.c +10 -12
- data/third_party/boringssl/crypto/x509/x509.c +5 -0
- data/third_party/boringssl/crypto/x509/x509_att.c +9 -3
- data/third_party/boringssl/crypto/x509/x509_lu.c +34 -44
- data/third_party/boringssl/crypto/x509/x509_obj.c +19 -2
- data/third_party/boringssl/crypto/x509/x509_r2x.c +9 -5
- data/third_party/boringssl/crypto/x509/x509_set.c +5 -0
- data/third_party/boringssl/crypto/x509/x509_txt.c +5 -0
- data/third_party/boringssl/crypto/x509/x509_vfy.c +63 -32
- data/third_party/boringssl/crypto/x509/x509_vpm.c +29 -18
- data/third_party/boringssl/crypto/x509/x509cset.c +2 -1
- data/third_party/boringssl/crypto/x509/x_crl.c +2 -2
- data/third_party/boringssl/crypto/x509/x_name.c +14 -17
- data/third_party/boringssl/crypto/x509/x_pubkey.c +10 -7
- data/third_party/boringssl/crypto/x509/x_x509.c +67 -6
- data/third_party/boringssl/crypto/x509v3/pcy_cache.c +2 -2
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +2 -1
- data/third_party/boringssl/crypto/x509v3/v3_conf.c +4 -3
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +5 -0
- data/third_party/boringssl/crypto/x509v3/v3_prn.c +0 -3
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +2 -2
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +2 -1
- data/third_party/boringssl/include/openssl/aead.h +72 -73
- data/third_party/boringssl/include/openssl/arm_arch.h +0 -6
- data/third_party/boringssl/include/openssl/asn1.h +103 -235
- data/third_party/boringssl/include/openssl/asn1_mac.h +17 -74
- data/third_party/boringssl/include/openssl/asn1t.h +1 -11
- data/third_party/boringssl/include/openssl/base.h +145 -3
- data/third_party/boringssl/include/openssl/base64.h +20 -17
- data/third_party/boringssl/include/openssl/bio.h +59 -34
- data/third_party/boringssl/include/openssl/bn.h +118 -51
- data/third_party/boringssl/include/openssl/buf.h +15 -0
- data/third_party/boringssl/include/openssl/bytestring.h +52 -4
- data/third_party/boringssl/include/openssl/chacha.h +2 -2
- data/third_party/boringssl/include/openssl/cipher.h +18 -1
- data/third_party/boringssl/include/openssl/cmac.h +11 -0
- data/third_party/boringssl/include/openssl/conf.h +13 -2
- data/third_party/boringssl/include/openssl/cpu.h +20 -23
- data/third_party/boringssl/include/openssl/crypto.h +22 -1
- data/third_party/boringssl/include/openssl/curve25519.h +96 -4
- data/third_party/boringssl/include/openssl/dh.h +71 -16
- data/third_party/boringssl/include/openssl/digest.h +38 -11
- data/third_party/boringssl/include/openssl/dsa.h +40 -4
- data/third_party/boringssl/include/openssl/ec.h +44 -18
- data/third_party/boringssl/include/openssl/ec_key.h +27 -6
- data/third_party/boringssl/include/openssl/ecdsa.h +11 -0
- data/third_party/boringssl/include/openssl/engine.h +11 -0
- data/third_party/boringssl/include/openssl/evp.h +52 -88
- data/third_party/boringssl/include/openssl/hkdf.h +24 -4
- data/third_party/boringssl/include/openssl/hmac.h +20 -6
- data/third_party/boringssl/include/openssl/md4.h +4 -0
- data/third_party/boringssl/include/openssl/mem.h +19 -0
- data/third_party/boringssl/include/openssl/newhope.h +158 -0
- data/third_party/boringssl/include/openssl/nid.h +4166 -0
- data/third_party/boringssl/include/openssl/obj.h +31 -3
- data/third_party/boringssl/include/openssl/obj_mac.h +17 -4143
- data/third_party/boringssl/include/openssl/{opensslfeatures.h → opensslconf.h} +3 -3
- data/third_party/boringssl/include/openssl/pem.h +5 -0
- data/third_party/boringssl/include/openssl/pkcs8.h +12 -0
- data/third_party/boringssl/include/openssl/rand.h +6 -0
- data/third_party/boringssl/include/openssl/rc4.h +6 -0
- data/third_party/boringssl/{crypto/dh/internal.h → include/openssl/ripemd.h} +38 -11
- data/third_party/boringssl/include/openssl/rsa.h +127 -65
- data/third_party/boringssl/include/openssl/sha.h +14 -10
- data/third_party/boringssl/include/openssl/ssl.h +561 -275
- data/third_party/boringssl/include/openssl/ssl3.h +18 -25
- data/third_party/boringssl/include/openssl/stack.h +2 -4
- data/third_party/boringssl/include/openssl/stack_macros.h +321 -353
- data/third_party/boringssl/include/openssl/thread.h +31 -13
- data/third_party/boringssl/include/openssl/time_support.h +1 -0
- data/third_party/boringssl/include/openssl/tls1.h +37 -33
- data/third_party/boringssl/include/openssl/x509.h +69 -26
- data/third_party/boringssl/include/openssl/x509_vfy.h +12 -10
- data/third_party/boringssl/include/openssl/x509v3.h +23 -2
- data/third_party/boringssl/ssl/custom_extensions.c +3 -5
- data/third_party/boringssl/ssl/d1_both.c +463 -499
- data/third_party/boringssl/ssl/d1_lib.c +38 -109
- data/third_party/boringssl/ssl/d1_pkt.c +173 -334
- data/third_party/boringssl/ssl/d1_srtp.c +20 -18
- data/third_party/boringssl/ssl/{d1_meth.c → dtls_method.c} +88 -15
- data/third_party/boringssl/ssl/dtls_record.c +27 -26
- data/third_party/boringssl/ssl/{s3_clnt.c → handshake_client.c} +816 -904
- data/third_party/boringssl/ssl/handshake_server.c +1932 -0
- data/third_party/boringssl/ssl/internal.h +712 -439
- data/third_party/boringssl/ssl/s3_both.c +445 -257
- data/third_party/boringssl/ssl/s3_enc.c +53 -36
- data/third_party/boringssl/ssl/s3_lib.c +23 -268
- data/third_party/boringssl/ssl/s3_pkt.c +168 -364
- data/third_party/boringssl/ssl/ssl_aead_ctx.c +46 -17
- data/third_party/boringssl/ssl/ssl_asn1.c +56 -26
- data/third_party/boringssl/ssl/ssl_buffer.c +16 -24
- data/third_party/boringssl/ssl/ssl_cert.c +324 -49
- data/third_party/boringssl/ssl/ssl_cipher.c +205 -150
- data/third_party/boringssl/ssl/ssl_ecdh.c +287 -51
- data/third_party/boringssl/ssl/ssl_file.c +21 -68
- data/third_party/boringssl/ssl/ssl_lib.c +881 -510
- data/third_party/boringssl/ssl/ssl_rsa.c +404 -34
- data/third_party/boringssl/ssl/ssl_session.c +324 -103
- data/third_party/boringssl/ssl/ssl_stat.c +6 -88
- data/third_party/boringssl/ssl/t1_enc.c +23 -39
- data/third_party/boringssl/ssl/t1_lib.c +1120 -622
- data/third_party/boringssl/ssl/tls13_both.c +440 -0
- data/third_party/boringssl/ssl/tls13_client.c +682 -0
- data/third_party/boringssl/ssl/tls13_enc.c +391 -0
- data/third_party/boringssl/ssl/tls13_server.c +672 -0
- data/third_party/boringssl/ssl/{s3_meth.c → tls_method.c} +100 -21
- data/third_party/boringssl/ssl/tls_record.c +159 -77
- data/third_party/nanopb/pb.h +60 -28
- data/third_party/nanopb/pb_decode.c +120 -92
- data/third_party/nanopb/pb_decode.h +3 -3
- data/third_party/nanopb/pb_encode.c +73 -67
- data/third_party/nanopb/pb_encode.h +4 -4
- metadata +155 -89
- data/include/grpc/impl/codegen/byte_buffer.h +0 -122
- data/include/grpc/impl/codegen/log.h +0 -118
- data/include/grpc/impl/codegen/time.h +0 -130
- data/src/core/ext/client_config/client_channel.c +0 -593
- data/src/core/ext/client_config/subchannel_call_holder.c +0 -272
- data/src/core/ext/client_config/subchannel_call_holder.h +0 -99
- data/src/core/lib/iomgr/ev_poll_and_epoll_posix.c +0 -2046
- data/src/core/lib/iomgr/workqueue_posix.c +0 -151
- data/src/core/lib/security/transport/handshake.c +0 -368
- data/third_party/boringssl/crypto/asn1/a_bytes.c +0 -308
- data/third_party/boringssl/crypto/asn1/bio_asn1.c +0 -477
- data/third_party/boringssl/crypto/asn1/bio_ndef.c +0 -251
- data/third_party/boringssl/crypto/asn1/t_pkey.c +0 -110
- data/third_party/boringssl/crypto/asn1/tasn_prn.c +0 -596
- data/third_party/boringssl/crypto/chacha/chacha_vec.c +0 -328
- data/third_party/boringssl/crypto/directory.h +0 -66
- data/third_party/boringssl/crypto/directory_posix.c +0 -108
- data/third_party/boringssl/crypto/directory_win.c +0 -144
- data/third_party/boringssl/crypto/test/scoped_types.h +0 -140
- data/third_party/boringssl/include/openssl/pqueue.h +0 -146
- data/third_party/boringssl/ssl/d1_clnt.c +0 -561
- data/third_party/boringssl/ssl/d1_srvr.c +0 -476
- data/third_party/boringssl/ssl/pqueue/pqueue.c +0 -197
- data/third_party/boringssl/ssl/s3_srvr.c +0 -2272
- data/third_party/boringssl/ssl/test/async_bio.h +0 -45
- data/third_party/boringssl/ssl/test/packeted_bio.h +0 -44
- data/third_party/boringssl/ssl/test/test_config.h +0 -110
@@ -84,10 +84,24 @@ OPENSSL_EXPORT DSA *DSA_new(void);
|
|
84
84
|
* reference count drops to zero. */
|
85
85
|
OPENSSL_EXPORT void DSA_free(DSA *dsa);
|
86
86
|
|
87
|
-
/* DSA_up_ref increments the reference count of |dsa
|
87
|
+
/* DSA_up_ref increments the reference count of |dsa| and returns one. */
|
88
88
|
OPENSSL_EXPORT int DSA_up_ref(DSA *dsa);
|
89
89
|
|
90
90
|
|
91
|
+
/* Properties. */
|
92
|
+
|
93
|
+
/* DSA_get0_key sets |*out_pub_key| and |*out_priv_key|, if non-NULL, to |dsa|'s
|
94
|
+
* public and private key, respectively. If |dsa| is a public key, the private
|
95
|
+
* key will be set to NULL. */
|
96
|
+
OPENSSL_EXPORT void DSA_get0_key(const DSA *dsa, const BIGNUM **out_pub_key,
|
97
|
+
const BIGNUM **out_priv_key);
|
98
|
+
|
99
|
+
/* DSA_get0_pqg sets |*out_p|, |*out_q|, and |*out_g|, if non-NULL, to |dsa|'s
|
100
|
+
* p, q, and g parameters, respectively. */
|
101
|
+
OPENSSL_EXPORT void DSA_get0_pqg(const DSA *dsa, const BIGNUM **out_p,
|
102
|
+
const BIGNUM **out_q, const BIGNUM **out_g);
|
103
|
+
|
104
|
+
|
91
105
|
/* Parameter generation. */
|
92
106
|
|
93
107
|
/* DSA_generate_parameters_ex generates a set of DSA parameters by following
|
@@ -129,9 +143,9 @@ OPENSSL_EXPORT int DSA_generate_key(DSA *dsa);
|
|
129
143
|
/* Signatures. */
|
130
144
|
|
131
145
|
/* DSA_SIG_st (aka |DSA_SIG|) contains a DSA signature as a pair of integers. */
|
132
|
-
|
146
|
+
struct DSA_SIG_st {
|
133
147
|
BIGNUM *r, *s;
|
134
|
-
}
|
148
|
+
};
|
135
149
|
|
136
150
|
/* DSA_SIG_new returns a freshly allocated, DIG_SIG structure or NULL on error.
|
137
151
|
* Both |r| and |s| in the signature will be NULL. */
|
@@ -363,6 +377,15 @@ OPENSSL_EXPORT DSA *d2i_DSAparams(DSA **out, const uint8_t **inp, long len);
|
|
363
377
|
* Use |DSA_marshal_parameters| instead. */
|
364
378
|
OPENSSL_EXPORT int i2d_DSAparams(const DSA *in, uint8_t **outp);
|
365
379
|
|
380
|
+
/* DSA_generate_parameters is a deprecated version of
|
381
|
+
* |DSA_generate_parameters_ex| that creates and returns a |DSA*|. Don't use
|
382
|
+
* it. */
|
383
|
+
OPENSSL_EXPORT DSA *DSA_generate_parameters(int bits, unsigned char *seed,
|
384
|
+
int seed_len, int *counter_ret,
|
385
|
+
unsigned long *h_ret,
|
386
|
+
void (*callback)(int, int, void *),
|
387
|
+
void *cb_arg);
|
388
|
+
|
366
389
|
|
367
390
|
struct dsa_st {
|
368
391
|
long version;
|
@@ -378,8 +401,9 @@ struct dsa_st {
|
|
378
401
|
|
379
402
|
int flags;
|
380
403
|
/* Normally used to cache montgomery values */
|
381
|
-
CRYPTO_MUTEX
|
404
|
+
CRYPTO_MUTEX method_mont_lock;
|
382
405
|
BN_MONT_CTX *method_mont_p;
|
406
|
+
BN_MONT_CTX *method_mont_q;
|
383
407
|
CRYPTO_refcount_t references;
|
384
408
|
CRYPTO_EX_DATA ex_data;
|
385
409
|
};
|
@@ -387,6 +411,18 @@ struct dsa_st {
|
|
387
411
|
|
388
412
|
#if defined(__cplusplus)
|
389
413
|
} /* extern C */
|
414
|
+
|
415
|
+
extern "C++" {
|
416
|
+
|
417
|
+
namespace bssl {
|
418
|
+
|
419
|
+
BORINGSSL_MAKE_DELETER(DSA, DSA_free)
|
420
|
+
BORINGSSL_MAKE_DELETER(DSA_SIG, DSA_SIG_free)
|
421
|
+
|
422
|
+
} // namespace bssl
|
423
|
+
|
424
|
+
} /* extern C++ */
|
425
|
+
|
390
426
|
#endif
|
391
427
|
|
392
428
|
#define DSA_R_BAD_Q_VALUE 100
|
@@ -78,9 +78,6 @@ extern "C" {
|
|
78
78
|
/* Low-level operations on elliptic curves. */
|
79
79
|
|
80
80
|
|
81
|
-
typedef struct ec_group_st EC_GROUP;
|
82
|
-
typedef struct ec_point_st EC_POINT;
|
83
|
-
|
84
81
|
/* point_conversion_form_t enumerates forms, as defined in X9.62 (ECDSA), for
|
85
82
|
* the encoding of a elliptic curve point (x,y) */
|
86
83
|
typedef enum {
|
@@ -89,7 +86,7 @@ typedef enum {
|
|
89
86
|
* is. */
|
90
87
|
POINT_CONVERSION_COMPRESSED = 2,
|
91
88
|
|
92
|
-
/*
|
89
|
+
/* POINT_CONVERSION_UNCOMPRESSED indicates that the point is encoded as
|
93
90
|
* z||x||y, where z is the octet 0x04. */
|
94
91
|
POINT_CONVERSION_UNCOMPRESSED = 4,
|
95
92
|
|
@@ -189,12 +186,13 @@ OPENSSL_EXPORT int EC_POINT_is_at_infinity(const EC_GROUP *group,
|
|
189
186
|
const EC_POINT *point);
|
190
187
|
|
191
188
|
/* EC_POINT_is_on_curve returns one if |point| is an element of |group| and
|
192
|
-
* zero
|
189
|
+
* and zero otherwise or when an error occurs. This is different from OpenSSL,
|
190
|
+
* which returns -1 on error. If |ctx| is non-NULL, it may be used. */
|
193
191
|
OPENSSL_EXPORT int EC_POINT_is_on_curve(const EC_GROUP *group,
|
194
192
|
const EC_POINT *point, BN_CTX *ctx);
|
195
193
|
|
196
|
-
/* EC_POINT_cmp returns zero if |a| is equal to |b|, greater than zero
|
197
|
-
*
|
194
|
+
/* EC_POINT_cmp returns zero if |a| is equal to |b|, greater than zero if
|
195
|
+
* not equal and -1 on error. If |ctx| is not NULL, it may be used. */
|
198
196
|
OPENSSL_EXPORT int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a,
|
199
197
|
const EC_POINT *b, BN_CTX *ctx);
|
200
198
|
|
@@ -220,10 +218,10 @@ OPENSSL_EXPORT int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group,
|
|
220
218
|
BIGNUM *x, BIGNUM *y,
|
221
219
|
BN_CTX *ctx);
|
222
220
|
|
223
|
-
/* EC_POINT_set_affine_coordinates_GFp sets the value of |
|
224
|
-
* The |ctx| argument may be used if not NULL. It returns one
|
225
|
-
* zero on error. Note that, unlike with OpenSSL, it's
|
226
|
-
* the point is not on the curve. */
|
221
|
+
/* EC_POINT_set_affine_coordinates_GFp sets the value of |point| to be
|
222
|
+
* (|x|, |y|). The |ctx| argument may be used if not NULL. It returns one
|
223
|
+
* on success or zero on error. Note that, unlike with OpenSSL, it's
|
224
|
+
* considered an error if the point is not on the curve. */
|
227
225
|
OPENSSL_EXPORT int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group,
|
228
226
|
EC_POINT *point,
|
229
227
|
const BIGNUM *x,
|
@@ -288,16 +286,31 @@ OPENSSL_EXPORT int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r,
|
|
288
286
|
|
289
287
|
/* Deprecated functions. */
|
290
288
|
|
291
|
-
/*
|
292
|
-
* the equation y² = x³ + a·x + b.
|
293
|
-
*
|
289
|
+
/* EC_GROUP_new_curve_GFp creates a new, arbitrary elliptic curve group based
|
290
|
+
* on the equation y² = x³ + a·x + b. It returns the new group or NULL on
|
291
|
+
* error.
|
292
|
+
*
|
293
|
+
* This new group has no generator. It is an error to use a generator-less group
|
294
|
+
* with any functions except for |EC_GROUP_free|, |EC_POINT_new|,
|
295
|
+
* |EC_POINT_set_affine_coordinates_GFp|, and |EC_GROUP_set_generator|.
|
294
296
|
*
|
295
297
|
* |EC_GROUP|s returned by this function will always compare as unequal via
|
296
298
|
* |EC_GROUP_cmp| (even to themselves). |EC_GROUP_get_curve_name| will always
|
297
|
-
* return |NID_undef|.
|
298
|
-
|
299
|
-
|
300
|
-
|
299
|
+
* return |NID_undef|.
|
300
|
+
*
|
301
|
+
* Avoid using arbitrary curves and use |EC_GROUP_new_by_curve_name| instead. */
|
302
|
+
OPENSSL_EXPORT EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p,
|
303
|
+
const BIGNUM *a,
|
304
|
+
const BIGNUM *b, BN_CTX *ctx);
|
305
|
+
|
306
|
+
/* EC_GROUP_set_generator sets the generator for |group| to |generator|, which
|
307
|
+
* must have the given order and cofactor. It may only be used with |EC_GROUP|
|
308
|
+
* objects returned by |EC_GROUP_new_curve_GFp| and may only be used once on
|
309
|
+
* each group. */
|
310
|
+
OPENSSL_EXPORT int EC_GROUP_set_generator(EC_GROUP *group,
|
311
|
+
const EC_POINT *generator,
|
312
|
+
const BIGNUM *order,
|
313
|
+
const BIGNUM *cofactor);
|
301
314
|
|
302
315
|
/* EC_GROUP_get_order sets |*order| to the order of |group|, if it's not
|
303
316
|
* NULL. It returns one on success and zero otherwise. |ctx| is ignored. Use
|
@@ -343,6 +356,18 @@ OPENSSL_EXPORT size_t EC_get_builtin_curves(EC_builtin_curve *out_curves,
|
|
343
356
|
|
344
357
|
#if defined(__cplusplus)
|
345
358
|
} /* extern C */
|
359
|
+
|
360
|
+
extern "C++" {
|
361
|
+
|
362
|
+
namespace bssl {
|
363
|
+
|
364
|
+
BORINGSSL_MAKE_DELETER(EC_POINT, EC_POINT_free)
|
365
|
+
BORINGSSL_MAKE_DELETER(EC_GROUP, EC_GROUP_free)
|
366
|
+
|
367
|
+
} // namespace bssl
|
368
|
+
|
369
|
+
} /* extern C++ */
|
370
|
+
|
346
371
|
#endif
|
347
372
|
|
348
373
|
#define EC_R_BUFFER_TOO_SMALL 100
|
@@ -376,5 +401,6 @@ OPENSSL_EXPORT size_t EC_get_builtin_curves(EC_builtin_curve *out_curves,
|
|
376
401
|
#define EC_R_DECODE_ERROR 128
|
377
402
|
#define EC_R_ENCODE_ERROR 129
|
378
403
|
#define EC_R_GROUP_MISMATCH 130
|
404
|
+
#define EC_R_INVALID_COFACTOR 131
|
379
405
|
|
380
406
|
#endif /* OPENSSL_HEADER_EC_H */
|
@@ -105,8 +105,7 @@ OPENSSL_EXPORT EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src);
|
|
105
105
|
/* EC_KEY_dup returns a fresh copy of |src| or NULL on error. */
|
106
106
|
OPENSSL_EXPORT EC_KEY *EC_KEY_dup(const EC_KEY *src);
|
107
107
|
|
108
|
-
/* EC_KEY_up_ref increases the reference count of |key
|
109
|
-
* success and zero otherwise. */
|
108
|
+
/* EC_KEY_up_ref increases the reference count of |key| and returns one. */
|
110
109
|
OPENSSL_EXPORT int EC_KEY_up_ref(EC_KEY *key);
|
111
110
|
|
112
111
|
/* EC_KEY_is_opaque returns one if |key| is opaque and doesn't expose its key
|
@@ -192,10 +191,21 @@ OPENSSL_EXPORT EC_KEY *EC_KEY_parse_private_key(CBS *cbs,
|
|
192
191
|
OPENSSL_EXPORT int EC_KEY_marshal_private_key(CBB *cbb, const EC_KEY *key,
|
193
192
|
unsigned enc_flags);
|
194
193
|
|
194
|
+
/* EC_KEY_parse_curve_name parses a DER-encoded OBJECT IDENTIFIER as a curve
|
195
|
+
* name from |cbs| and advances |cbs|. It returns a newly-allocated |EC_GROUP|
|
196
|
+
* or NULL on error. */
|
197
|
+
OPENSSL_EXPORT EC_GROUP *EC_KEY_parse_curve_name(CBS *cbs);
|
198
|
+
|
199
|
+
/* EC_KEY_marshal_curve_name marshals |group| as a DER-encoded OBJECT IDENTIFIER
|
200
|
+
* and appends the result to |cbb|. It returns one on success and zero on
|
201
|
+
* failure. */
|
202
|
+
OPENSSL_EXPORT int EC_KEY_marshal_curve_name(CBB *cbb, const EC_GROUP *group);
|
203
|
+
|
195
204
|
/* EC_KEY_parse_parameters parses a DER-encoded ECParameters structure (RFC
|
196
205
|
* 5480) from |cbs| and advances |cbs|. It returns a newly-allocated |EC_GROUP|
|
197
206
|
* or NULL on error. It supports the namedCurve and specifiedCurve options, but
|
198
|
-
* use of specifiedCurve is deprecated.
|
207
|
+
* use of specifiedCurve is deprecated. Use |EC_KEY_parse_curve_name|
|
208
|
+
* instead. */
|
199
209
|
OPENSSL_EXPORT EC_GROUP *EC_KEY_parse_parameters(CBS *cbs);
|
200
210
|
|
201
211
|
|
@@ -237,7 +247,7 @@ struct ecdsa_method_st {
|
|
237
247
|
int (*sign)(const uint8_t *digest, size_t digest_len, uint8_t *sig,
|
238
248
|
unsigned int *sig_len, EC_KEY *eckey);
|
239
249
|
|
240
|
-
/*
|
250
|
+
/* Ignored. Set this to NULL. */
|
241
251
|
int (*verify)(const uint8_t *digest, size_t digest_len, const uint8_t *sig,
|
242
252
|
size_t sig_len, EC_KEY *eckey);
|
243
253
|
|
@@ -279,7 +289,7 @@ OPENSSL_EXPORT int i2d_ECPrivateKey(const EC_KEY *key, uint8_t **outp);
|
|
279
289
|
* allocated and the previous one is freed. On successful exit, |*inp| is
|
280
290
|
* advanced past the DER structure. It returns the result or NULL on error.
|
281
291
|
*
|
282
|
-
* Use EC_KEY_parse_parameters instead. */
|
292
|
+
* Use |EC_KEY_parse_parameters| or |EC_KEY_parse_curve_name| instead. */
|
283
293
|
OPENSSL_EXPORT EC_KEY *d2i_ECParameters(EC_KEY **out_key, const uint8_t **inp,
|
284
294
|
long len);
|
285
295
|
|
@@ -288,7 +298,7 @@ OPENSSL_EXPORT EC_KEY *d2i_ECParameters(EC_KEY **out_key, const uint8_t **inp,
|
|
288
298
|
* |*outp| is advanced just past the output. It returns the number of bytes in
|
289
299
|
* the result, whether written or not, or a negative value on error.
|
290
300
|
*
|
291
|
-
* Use |
|
301
|
+
* Use |EC_KEY_marshal_curve_name| instead. */
|
292
302
|
OPENSSL_EXPORT int i2d_ECParameters(const EC_KEY *key, uint8_t **outp);
|
293
303
|
|
294
304
|
/* o2i_ECPublicKey parses an EC point from |len| bytes at |*inp| into
|
@@ -311,6 +321,17 @@ OPENSSL_EXPORT int i2o_ECPublicKey(const EC_KEY *key, unsigned char **outp);
|
|
311
321
|
|
312
322
|
#if defined(__cplusplus)
|
313
323
|
} /* extern C */
|
324
|
+
|
325
|
+
extern "C++" {
|
326
|
+
|
327
|
+
namespace bssl {
|
328
|
+
|
329
|
+
BORINGSSL_MAKE_DELETER(EC_KEY, EC_KEY_free)
|
330
|
+
|
331
|
+
} // namespace bssl
|
332
|
+
|
333
|
+
} /* extern C++ */
|
334
|
+
|
314
335
|
#endif
|
315
336
|
|
316
337
|
#endif /* OPENSSL_HEADER_EC_KEY_H */
|
@@ -194,6 +194,17 @@ OPENSSL_EXPORT int i2d_ECDSA_SIG(const ECDSA_SIG *sig, uint8_t **outp);
|
|
194
194
|
|
195
195
|
#if defined(__cplusplus)
|
196
196
|
} /* extern C */
|
197
|
+
|
198
|
+
extern "C++" {
|
199
|
+
|
200
|
+
namespace bssl {
|
201
|
+
|
202
|
+
BORINGSSL_MAKE_DELETER(ECDSA_SIG, ECDSA_SIG_free)
|
203
|
+
|
204
|
+
} // namespace bssl
|
205
|
+
|
206
|
+
} /* extern C++ */
|
207
|
+
|
197
208
|
#endif
|
198
209
|
|
199
210
|
#define ECDSA_R_BAD_SIGNATURE 100
|
@@ -91,6 +91,17 @@ struct openssl_method_common_st {
|
|
91
91
|
|
92
92
|
#if defined(__cplusplus)
|
93
93
|
} /* extern C */
|
94
|
+
|
95
|
+
extern "C++" {
|
96
|
+
|
97
|
+
namespace bssl {
|
98
|
+
|
99
|
+
BORINGSSL_MAKE_DELETER(ENGINE, ENGINE_free)
|
100
|
+
|
101
|
+
} // namespace bssl
|
102
|
+
|
103
|
+
} /* extern C++ */
|
104
|
+
|
94
105
|
#endif
|
95
106
|
|
96
107
|
#define ENGINE_R_OPERATION_NOT_SUPPORTED 100
|
@@ -69,7 +69,7 @@
|
|
69
69
|
#include <openssl/base64.h>
|
70
70
|
#include <openssl/cipher.h>
|
71
71
|
#include <openssl/digest.h>
|
72
|
-
#include <openssl/
|
72
|
+
#include <openssl/nid.h>
|
73
73
|
|
74
74
|
#if defined(__cplusplus)
|
75
75
|
extern "C" {
|
@@ -89,8 +89,8 @@ OPENSSL_EXPORT EVP_PKEY *EVP_PKEY_new(void);
|
|
89
89
|
* itself. */
|
90
90
|
OPENSSL_EXPORT void EVP_PKEY_free(EVP_PKEY *pkey);
|
91
91
|
|
92
|
-
/* EVP_PKEY_up_ref increments the reference count of |pkey| and returns
|
93
|
-
OPENSSL_EXPORT
|
92
|
+
/* EVP_PKEY_up_ref increments the reference count of |pkey| and returns one. */
|
93
|
+
OPENSSL_EXPORT int EVP_PKEY_up_ref(EVP_PKEY *pkey);
|
94
94
|
|
95
95
|
/* EVP_PKEY_is_opaque returns one if |pkey| is opaque. Opaque keys are backed by
|
96
96
|
* custom implementations which do not expose key material and parameters. It is
|
@@ -250,15 +250,6 @@ OPENSSL_EXPORT int EVP_DigestSignUpdate(EVP_MD_CTX *ctx, const void *data,
|
|
250
250
|
OPENSSL_EXPORT int EVP_DigestSignFinal(EVP_MD_CTX *ctx, uint8_t *out_sig,
|
251
251
|
size_t *out_sig_len);
|
252
252
|
|
253
|
-
/* EVP_DigestSignAlgorithm encodes the signing parameters of |ctx| as an
|
254
|
-
* AlgorithmIdentifer and saves the result in |algor|.
|
255
|
-
*
|
256
|
-
* It returns one on success, or zero on error.
|
257
|
-
*
|
258
|
-
* TODO(davidben): This API should eventually lose the dependency on
|
259
|
-
* crypto/asn1/. */
|
260
|
-
OPENSSL_EXPORT int EVP_DigestSignAlgorithm(EVP_MD_CTX *ctx, X509_ALGOR *algor);
|
261
|
-
|
262
253
|
|
263
254
|
/* Verifying */
|
264
255
|
|
@@ -273,18 +264,6 @@ OPENSSL_EXPORT int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
|
|
273
264
|
const EVP_MD *type, ENGINE *e,
|
274
265
|
EVP_PKEY *pkey);
|
275
266
|
|
276
|
-
/* EVP_DigestVerifyInitFromAlgorithm sets up |ctx| for a signature verification
|
277
|
-
* operation with public key |pkey| and parameters from |algor|. The |ctx|
|
278
|
-
* argument must have been initialised with |EVP_MD_CTX_init|.
|
279
|
-
*
|
280
|
-
* It returns one on success, or zero on error.
|
281
|
-
*
|
282
|
-
* TODO(davidben): This API should eventually lose the dependency on
|
283
|
-
* crypto/asn1/. */
|
284
|
-
OPENSSL_EXPORT int EVP_DigestVerifyInitFromAlgorithm(EVP_MD_CTX *ctx,
|
285
|
-
X509_ALGOR *algor,
|
286
|
-
EVP_PKEY *pkey);
|
287
|
-
|
288
267
|
/* EVP_DigestVerifyUpdate appends |len| bytes from |data| to the data which
|
289
268
|
* will be verified by |EVP_DigestVerifyFinal|. It returns one. */
|
290
269
|
OPENSSL_EXPORT int EVP_DigestVerifyUpdate(EVP_MD_CTX *ctx, const void *data,
|
@@ -675,6 +654,9 @@ OPENSSL_EXPORT int EVP_PKEY_CTX_get0_rsa_oaep_label(EVP_PKEY_CTX *ctx,
|
|
675
654
|
/* OpenSSL_add_all_algorithms does nothing. */
|
676
655
|
OPENSSL_EXPORT void OpenSSL_add_all_algorithms(void);
|
677
656
|
|
657
|
+
/* OPENSSL_add_all_algorithms_conf does nothing. */
|
658
|
+
OPENSSL_EXPORT void OPENSSL_add_all_algorithms_conf(void);
|
659
|
+
|
678
660
|
/* OpenSSL_add_all_ciphers does nothing. */
|
679
661
|
OPENSSL_EXPORT void OpenSSL_add_all_ciphers(void);
|
680
662
|
|
@@ -719,11 +701,10 @@ OPENSSL_EXPORT int i2d_PublicKey(EVP_PKEY *key, uint8_t **outp);
|
|
719
701
|
|
720
702
|
/* d2i_PrivateKey parses an ASN.1, DER-encoded, private key from |len| bytes at
|
721
703
|
* |*inp|. If |out| is not NULL then, on exit, a pointer to the result is in
|
722
|
-
* |*out|.
|
723
|
-
*
|
724
|
-
*
|
725
|
-
*
|
726
|
-
* the DER structure. It returns the result or NULL on error.
|
704
|
+
* |*out|. Note that, even if |*out| is already non-NULL on entry, it will not
|
705
|
+
* be written to. Rather, a fresh |EVP_PKEY| is allocated and the previous one
|
706
|
+
* is freed. On successful exit, |*inp| is advanced past the DER structure. It
|
707
|
+
* returns the result or NULL on error.
|
727
708
|
*
|
728
709
|
* This function tries to detect one of several formats. Instead, use
|
729
710
|
* |EVP_parse_private_key| for a PrivateKeyInfo, |RSA_parse_private_key| for an
|
@@ -740,22 +721,11 @@ OPENSSL_EXPORT EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **out,
|
|
740
721
|
OPENSSL_EXPORT EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **out, const uint8_t **inp,
|
741
722
|
long len);
|
742
723
|
|
724
|
+
/* EVP_PKEY_get0_DH returns NULL. */
|
725
|
+
OPENSSL_EXPORT DH *EVP_PKEY_get0_DH(EVP_PKEY *pkey);
|
743
726
|
|
744
|
-
/* Private functions */
|
745
727
|
|
746
|
-
/*
|
747
|
-
* should be one of the |EVP_PKEY_*| values. It returns NULL if |nid| is
|
748
|
-
* unknown. */
|
749
|
-
OPENSSL_EXPORT const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pengine,
|
750
|
-
int nid);
|
751
|
-
|
752
|
-
/* EVP_PKEY_asn1_find_str returns an |EVP_PKEY_ASN1_METHOD| by matching values
|
753
|
-
* of the |len| bytes at |name|. For example, if name equals "EC" then it will
|
754
|
-
* return an ECC method. The |pengine| argument is ignored.
|
755
|
-
*
|
756
|
-
* TODO(fork): move to PEM? */
|
757
|
-
OPENSSL_EXPORT const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(
|
758
|
-
ENGINE **pengine, const char *name, size_t len);
|
728
|
+
/* Private structures. */
|
759
729
|
|
760
730
|
struct evp_pkey_st {
|
761
731
|
CRYPTO_refcount_t references;
|
@@ -780,54 +750,48 @@ struct evp_pkey_st {
|
|
780
750
|
|
781
751
|
#if defined(__cplusplus)
|
782
752
|
} /* extern C */
|
753
|
+
|
754
|
+
extern "C++" {
|
755
|
+
namespace bssl {
|
756
|
+
|
757
|
+
BORINGSSL_MAKE_DELETER(EVP_PKEY, EVP_PKEY_free)
|
758
|
+
BORINGSSL_MAKE_DELETER(EVP_PKEY_CTX, EVP_PKEY_CTX_free)
|
759
|
+
|
760
|
+
} // namespace bssl
|
761
|
+
|
762
|
+
} /* extern C++ */
|
763
|
+
|
783
764
|
#endif
|
784
765
|
|
785
766
|
#define EVP_R_BUFFER_TOO_SMALL 100
|
786
767
|
#define EVP_R_COMMAND_NOT_SUPPORTED 101
|
787
|
-
#define
|
788
|
-
#define
|
789
|
-
#define
|
790
|
-
#define
|
791
|
-
#define
|
792
|
-
#define
|
793
|
-
#define
|
794
|
-
#define
|
795
|
-
#define
|
796
|
-
#define
|
797
|
-
#define
|
798
|
-
#define
|
799
|
-
#define
|
800
|
-
#define
|
801
|
-
#define
|
802
|
-
#define EVP_R_KEYS_NOT_SET
|
803
|
-
#define EVP_R_MISSING_PARAMETERS
|
804
|
-
#define EVP_R_NO_DEFAULT_DIGEST
|
805
|
-
#define EVP_R_NO_KEY_SET
|
806
|
-
#define EVP_R_NO_MDC2_SUPPORT
|
807
|
-
#define EVP_R_NO_NID_FOR_CURVE
|
808
|
-
#define EVP_R_NO_OPERATION_SET
|
809
|
-
#define EVP_R_NO_PARAMETERS_SET
|
810
|
-
#define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
|
811
|
-
#define EVP_R_OPERATON_NOT_INITIALIZED
|
812
|
-
#define
|
813
|
-
#define
|
814
|
-
#define
|
815
|
-
#define EVP_R_UNSUPPORTED_MASK_ALGORITHM 139
|
816
|
-
#define EVP_R_UNSUPPORTED_MASK_PARAMETER 140
|
817
|
-
#define EVP_R_EXPECTING_AN_RSA_KEY 141
|
818
|
-
#define EVP_R_INVALID_OPERATION 142
|
819
|
-
#define EVP_R_DECODE_ERROR 143
|
820
|
-
#define EVP_R_INVALID_PSS_SALTLEN 144
|
821
|
-
#define EVP_R_UNKNOWN_PUBLIC_KEY_TYPE 145
|
822
|
-
#define EVP_R_CONTEXT_NOT_INITIALISED 146
|
823
|
-
#define EVP_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED 147
|
824
|
-
#define EVP_R_WRONG_PUBLIC_KEY_TYPE 148
|
825
|
-
#define EVP_R_UNKNOWN_SIGNATURE_ALGORITHM 149
|
826
|
-
#define EVP_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM 150
|
827
|
-
#define EVP_R_BN_DECODE_ERROR 151
|
828
|
-
#define EVP_R_PARAMETER_ENCODING_ERROR 152
|
829
|
-
#define EVP_R_UNSUPPORTED_PUBLIC_KEY_TYPE 153
|
830
|
-
#define EVP_R_UNSUPPORTED_SIGNATURE_TYPE 154
|
831
|
-
#define EVP_R_ENCODE_ERROR 155
|
768
|
+
#define EVP_R_DECODE_ERROR 102
|
769
|
+
#define EVP_R_DIFFERENT_KEY_TYPES 103
|
770
|
+
#define EVP_R_DIFFERENT_PARAMETERS 104
|
771
|
+
#define EVP_R_ENCODE_ERROR 105
|
772
|
+
#define EVP_R_EXPECTING_AN_EC_KEY_KEY 106
|
773
|
+
#define EVP_R_EXPECTING_AN_RSA_KEY 107
|
774
|
+
#define EVP_R_EXPECTING_A_DSA_KEY 108
|
775
|
+
#define EVP_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 109
|
776
|
+
#define EVP_R_INVALID_DIGEST_LENGTH 110
|
777
|
+
#define EVP_R_INVALID_DIGEST_TYPE 111
|
778
|
+
#define EVP_R_INVALID_KEYBITS 112
|
779
|
+
#define EVP_R_INVALID_MGF1_MD 113
|
780
|
+
#define EVP_R_INVALID_OPERATION 114
|
781
|
+
#define EVP_R_INVALID_PADDING_MODE 115
|
782
|
+
#define EVP_R_INVALID_PSS_SALTLEN 116
|
783
|
+
#define EVP_R_KEYS_NOT_SET 117
|
784
|
+
#define EVP_R_MISSING_PARAMETERS 118
|
785
|
+
#define EVP_R_NO_DEFAULT_DIGEST 119
|
786
|
+
#define EVP_R_NO_KEY_SET 120
|
787
|
+
#define EVP_R_NO_MDC2_SUPPORT 121
|
788
|
+
#define EVP_R_NO_NID_FOR_CURVE 122
|
789
|
+
#define EVP_R_NO_OPERATION_SET 123
|
790
|
+
#define EVP_R_NO_PARAMETERS_SET 124
|
791
|
+
#define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 125
|
792
|
+
#define EVP_R_OPERATON_NOT_INITIALIZED 126
|
793
|
+
#define EVP_R_UNKNOWN_PUBLIC_KEY_TYPE 127
|
794
|
+
#define EVP_R_UNSUPPORTED_ALGORITHM 128
|
795
|
+
#define EVP_R_UNSUPPORTED_PUBLIC_KEY_TYPE 129
|
832
796
|
|
833
797
|
#endif /* OPENSSL_HEADER_EVP_H */
|