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
@@ -71,6 +71,17 @@ OPENSSL_EXPORT int CMAC_Final(CMAC_CTX *ctx, uint8_t *out, size_t *out_len);
|
|
71
71
|
|
72
72
|
#if defined(__cplusplus)
|
73
73
|
} /* extern C */
|
74
|
+
|
75
|
+
extern "C++" {
|
76
|
+
|
77
|
+
namespace bssl {
|
78
|
+
|
79
|
+
BORINGSSL_MAKE_DELETER(CMAC_CTX, CMAC_CTX_free)
|
80
|
+
|
81
|
+
} // namespace bssl
|
82
|
+
|
83
|
+
} /* extern C++ */
|
84
|
+
|
74
85
|
#endif
|
75
86
|
|
76
87
|
#endif /* OPENSSL_HEADER_CMAC_H */
|
@@ -92,10 +92,10 @@ struct conf_st {
|
|
92
92
|
|
93
93
|
/* NCONF_new returns a fresh, empty |CONF|, or NULL on error. The |method|
|
94
94
|
* argument must be NULL. */
|
95
|
-
CONF *NCONF_new(void *method);
|
95
|
+
OPENSSL_EXPORT CONF *NCONF_new(void *method);
|
96
96
|
|
97
97
|
/* NCONF_free frees all the data owned by |conf| and then |conf| itself. */
|
98
|
-
void NCONF_free(CONF *conf);
|
98
|
+
OPENSSL_EXPORT void NCONF_free(CONF *conf);
|
99
99
|
|
100
100
|
/* NCONF_load parses the file named |filename| and adds the values found to
|
101
101
|
* |conf|. It returns one on success and zero on error. In the event of an
|
@@ -158,6 +158,17 @@ OPENSSL_EXPORT void OPENSSL_config(CONF_MUST_BE_NULL *config_name);
|
|
158
158
|
|
159
159
|
#if defined(__cplusplus)
|
160
160
|
} /* extern C */
|
161
|
+
|
162
|
+
extern "C++" {
|
163
|
+
|
164
|
+
namespace bssl {
|
165
|
+
|
166
|
+
BORINGSSL_MAKE_DELETER(CONF, NCONF_free)
|
167
|
+
|
168
|
+
} // namespace bssl
|
169
|
+
|
170
|
+
} /* extern C++ */
|
171
|
+
|
161
172
|
#endif
|
162
173
|
|
163
174
|
#define CONF_R_LIST_CANNOT_BE_NULL 100
|
@@ -110,30 +110,23 @@ OPENSSL_EXPORT char CRYPTO_is_NEON_capable_at_runtime(void);
|
|
110
110
|
/* CRYPTO_is_NEON_capable returns true if the current CPU has a NEON unit. If
|
111
111
|
* this is known statically then it returns one immediately. */
|
112
112
|
static inline int CRYPTO_is_NEON_capable(void) {
|
113
|
-
|
113
|
+
/* Only statically skip the runtime lookup on aarch64. On arm, one CPU is
|
114
|
+
* known to have a broken NEON unit which is known to fail with on some
|
115
|
+
* hand-written NEON assembly. For now, continue to apply the workaround even
|
116
|
+
* when the compiler is instructed to freely emit NEON code. See
|
117
|
+
* https://crbug.com/341598 and https://crbug.com/606629. */
|
118
|
+
#if defined(__ARM_NEON__) && !defined(OPENSSL_ARM)
|
114
119
|
return 1;
|
115
120
|
#else
|
116
121
|
return CRYPTO_is_NEON_capable_at_runtime();
|
117
122
|
#endif
|
118
123
|
}
|
119
124
|
|
120
|
-
|
121
|
-
|
122
|
-
*
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
/* CRYPTO_is_NEON_functional returns true if the current CPU has a /working/
|
127
|
-
* NEON unit. Some phones have a NEON unit, but the Poly1305 NEON code causes
|
128
|
-
* it to fail. See https://code.google.com/p/chromium/issues/detail?id=341598 */
|
129
|
-
OPENSSL_EXPORT char CRYPTO_is_NEON_functional(void);
|
130
|
-
|
131
|
-
/* CRYPTO_set_NEON_functional sets the "NEON functional" flag. For
|
132
|
-
* |CRYPTO_is_NEON_functional| to return true, both this flag and the NEON flag
|
133
|
-
* must be true. By default NEON is assumed to be functional if the code was
|
134
|
-
* compiled with |-mfpu=neon| or if |CRYPTO_set_NEON_capable| has been called
|
135
|
-
* with a non-zero argument. */
|
136
|
-
OPENSSL_EXPORT void CRYPTO_set_NEON_functional(char neon_functional);
|
125
|
+
#if defined(OPENSSL_ARM)
|
126
|
+
/* CRYPTO_has_broken_NEON returns one if the current CPU is known to have a
|
127
|
+
* broken NEON unit. See https://crbug.com/341598. */
|
128
|
+
OPENSSL_EXPORT int CRYPTO_has_broken_NEON(void);
|
129
|
+
#endif
|
137
130
|
|
138
131
|
/* CRYPTO_is_ARMv8_AES_capable returns true if the current CPU supports the
|
139
132
|
* ARMv8 AES instruction. */
|
@@ -153,10 +146,6 @@ static inline int CRYPTO_is_NEON_capable(void) {
|
|
153
146
|
#endif
|
154
147
|
}
|
155
148
|
|
156
|
-
static inline int CRYPTO_is_NEON_functional(void) {
|
157
|
-
return CRYPTO_is_NEON_capable();
|
158
|
-
}
|
159
|
-
|
160
149
|
static inline int CRYPTO_is_ARMv8_AES_capable(void) {
|
161
150
|
#if defined(OPENSSL_STATIC_ARMCAP_AES)
|
162
151
|
return 1;
|
@@ -174,7 +163,15 @@ static inline int CRYPTO_is_ARMv8_PMULL_capable(void) {
|
|
174
163
|
}
|
175
164
|
|
176
165
|
#endif /* OPENSSL_STATIC_ARMCAP */
|
177
|
-
#endif /* OPENSSL_ARM */
|
166
|
+
#endif /* OPENSSL_ARM || OPENSSL_AARCH64 */
|
167
|
+
|
168
|
+
#if defined(OPENSSL_PPC64LE)
|
169
|
+
|
170
|
+
/* CRYPTO_is_PPC64LE_vcrypto_capable returns true iff the current CPU supports
|
171
|
+
* the Vector.AES category of instructions. */
|
172
|
+
int CRYPTO_is_PPC64LE_vcrypto_capable(void);
|
173
|
+
|
174
|
+
#endif /* OPENSSL_PPC64LE */
|
178
175
|
|
179
176
|
|
180
177
|
#if defined(__cplusplus)
|
@@ -36,9 +36,24 @@ extern "C" {
|
|
36
36
|
|
37
37
|
/* CRYPTO_library_init initializes the crypto library. It must be called if the
|
38
38
|
* library is built with BORINGSSL_NO_STATIC_INITIALIZER. Otherwise, it does
|
39
|
-
* nothing and a static initializer is used instead.
|
39
|
+
* nothing and a static initializer is used instead. It is safe to call this
|
40
|
+
* function multiple times and concurrently from multiple threads.
|
41
|
+
*
|
42
|
+
* On some ARM configurations, this function may require filesystem access and
|
43
|
+
* should be called before entering a sandbox. */
|
40
44
|
OPENSSL_EXPORT void CRYPTO_library_init(void);
|
41
45
|
|
46
|
+
/* CRYPTO_is_confidential_build returns one if the linked version of BoringSSL
|
47
|
+
* has been built with the BORINGSSL_CONFIDENTIAL define and zero otherwise.
|
48
|
+
*
|
49
|
+
* This is used by some consumers to identify whether they are using an
|
50
|
+
* internal version of BoringSSL. */
|
51
|
+
OPENSSL_EXPORT int CRYPTO_is_confidential_build(void);
|
52
|
+
|
53
|
+
/* CRYPTO_has_asm returns one unless BoringSSL was built with OPENSSL_NO_ASM,
|
54
|
+
* in which case it returns zero. */
|
55
|
+
OPENSSL_EXPORT int CRYPTO_has_asm(void);
|
56
|
+
|
42
57
|
|
43
58
|
/* Deprecated functions. */
|
44
59
|
|
@@ -62,9 +77,15 @@ OPENSSL_EXPORT int CRYPTO_malloc_init(void);
|
|
62
77
|
/* ENGINE_load_builtin_engines does nothing. */
|
63
78
|
OPENSSL_EXPORT void ENGINE_load_builtin_engines(void);
|
64
79
|
|
80
|
+
/* ENGINE_register_all_complete returns one. */
|
81
|
+
OPENSSL_EXPORT int ENGINE_register_all_complete(void);
|
82
|
+
|
65
83
|
/* OPENSSL_load_builtin_modules does nothing. */
|
66
84
|
OPENSSL_EXPORT void OPENSSL_load_builtin_modules(void);
|
67
85
|
|
86
|
+
/* FIPS_mode returns zero. */
|
87
|
+
OPENSSL_EXPORT int FIPS_mode(void);
|
88
|
+
|
68
89
|
|
69
90
|
#if defined(__cplusplus)
|
70
91
|
} /* extern C */
|
@@ -29,10 +29,9 @@ extern "C" {
|
|
29
29
|
|
30
30
|
/* X25519.
|
31
31
|
*
|
32
|
-
*
|
33
|
-
*
|
34
|
-
*
|
35
|
-
* https://tools.ietf.org/html/rfc7748. */
|
32
|
+
* X25519 is the Diffie-Hellman primitive built from curve25519. It is
|
33
|
+
* sometimes referred to as “curve25519”, but “X25519” is a more precise name.
|
34
|
+
* See http://cr.yp.to/ecdh.html and https://tools.ietf.org/html/rfc7748. */
|
36
35
|
|
37
36
|
/* X25519_keypair sets |out_public_value| and |out_private_key| to a freshly
|
38
37
|
* generated, public–private key pair. */
|
@@ -84,8 +83,101 @@ OPENSSL_EXPORT int ED25519_verify(const uint8_t *message, size_t message_len,
|
|
84
83
|
const uint8_t public_key[32]);
|
85
84
|
|
86
85
|
|
86
|
+
/* SPAKE2.
|
87
|
+
*
|
88
|
+
* SPAKE2 is a password-authenticated key-exchange. It allows two parties,
|
89
|
+
* who share a low-entropy secret (i.e. password), to agree on a shared key.
|
90
|
+
* An attacker can only make one guess of the password per execution of the
|
91
|
+
* protocol.
|
92
|
+
*
|
93
|
+
* See https://tools.ietf.org/html/draft-irtf-cfrg-spake2-02. */
|
94
|
+
|
95
|
+
/* spake2_role_t enumerates the different “roles” in SPAKE2. The protocol
|
96
|
+
* requires that the symmetry of the two parties be broken so one participant
|
97
|
+
* must be “Alice” and the other be “Bob”. */
|
98
|
+
enum spake2_role_t {
|
99
|
+
spake2_role_alice,
|
100
|
+
spake2_role_bob,
|
101
|
+
};
|
102
|
+
|
103
|
+
/* SPAKE2_CTX_new creates a new |SPAKE2_CTX| (which can only be used for a
|
104
|
+
* single execution of the protocol). SPAKE2 requires the symmetry of the two
|
105
|
+
* parties to be broken which is indicated via |my_role| – each party must pass
|
106
|
+
* a different value for this argument.
|
107
|
+
*
|
108
|
+
* The |my_name| and |their_name| arguments allow optional, opaque names to be
|
109
|
+
* bound into the protocol. For example MAC addresses, hostnames, usernames
|
110
|
+
* etc. These values are not exposed and can avoid context-confusion attacks
|
111
|
+
* when a password is shared between several devices. */
|
112
|
+
OPENSSL_EXPORT SPAKE2_CTX *SPAKE2_CTX_new(
|
113
|
+
enum spake2_role_t my_role,
|
114
|
+
const uint8_t *my_name, size_t my_name_len,
|
115
|
+
const uint8_t *their_name, size_t their_name_len);
|
116
|
+
|
117
|
+
/* SPAKE2_CTX_free frees |ctx| and all the resources that it has allocated. */
|
118
|
+
OPENSSL_EXPORT void SPAKE2_CTX_free(SPAKE2_CTX *ctx);
|
119
|
+
|
120
|
+
/* SPAKE2_MAX_MSG_SIZE is the maximum size of a SPAKE2 message. */
|
121
|
+
#define SPAKE2_MAX_MSG_SIZE 32
|
122
|
+
|
123
|
+
/* SPAKE2_generate_msg generates a SPAKE2 message given |password|, writes
|
124
|
+
* it to |out| and sets |*out_len| to the number of bytes written.
|
125
|
+
*
|
126
|
+
* At most |max_out_len| bytes are written to |out| and, in order to ensure
|
127
|
+
* success, |max_out_len| should be at least |SPAKE2_MAX_MSG_SIZE| bytes.
|
128
|
+
*
|
129
|
+
* This function can only be called once for a given |SPAKE2_CTX|.
|
130
|
+
*
|
131
|
+
* It returns one on success and zero on error. */
|
132
|
+
OPENSSL_EXPORT int SPAKE2_generate_msg(SPAKE2_CTX *ctx, uint8_t *out,
|
133
|
+
size_t *out_len, size_t max_out_len,
|
134
|
+
const uint8_t *password,
|
135
|
+
size_t password_len);
|
136
|
+
|
137
|
+
/* SPAKE2_MAX_KEY_SIZE is the maximum amount of key material that SPAKE2 will
|
138
|
+
* produce. */
|
139
|
+
#define SPAKE2_MAX_KEY_SIZE 64
|
140
|
+
|
141
|
+
/* SPAKE2_process_msg completes the SPAKE2 exchange given the peer's message in
|
142
|
+
* |their_msg|, writes at most |max_out_key_len| bytes to |out_key| and sets
|
143
|
+
* |*out_key_len| to the number of bytes written.
|
144
|
+
*
|
145
|
+
* The resulting keying material is suitable for:
|
146
|
+
* a) Using directly in a key-confirmation step: i.e. each side could
|
147
|
+
* transmit a hash of their role, a channel-binding value and the key
|
148
|
+
* material to prove to the other side that they know the shared key.
|
149
|
+
* b) Using as input keying material to HKDF to generate a variety of subkeys
|
150
|
+
* for encryption etc.
|
151
|
+
*
|
152
|
+
* If |max_out_key_key| is smaller than the amount of key material generated
|
153
|
+
* then the key is silently truncated. If you want to ensure that no truncation
|
154
|
+
* occurs then |max_out_key| should be at least |SPAKE2_MAX_KEY_SIZE|.
|
155
|
+
*
|
156
|
+
* You must call |SPAKE2_generate_msg| on a given |SPAKE2_CTX| before calling
|
157
|
+
* this function. On successful return, |ctx| is complete and calling
|
158
|
+
* |SPAKE2_CTX_free| is the only acceptable operation on it.
|
159
|
+
*
|
160
|
+
* Returns one on success or zero on error. */
|
161
|
+
OPENSSL_EXPORT int SPAKE2_process_msg(SPAKE2_CTX *ctx, uint8_t *out_key,
|
162
|
+
size_t *out_key_len,
|
163
|
+
size_t max_out_key_len,
|
164
|
+
const uint8_t *their_msg,
|
165
|
+
size_t their_msg_len);
|
166
|
+
|
167
|
+
|
87
168
|
#if defined(__cplusplus)
|
88
169
|
} /* extern C */
|
170
|
+
|
171
|
+
extern "C++" {
|
172
|
+
|
173
|
+
namespace bssl {
|
174
|
+
|
175
|
+
BORINGSSL_MAKE_DELETER(SPAKE2_CTX, SPAKE2_CTX_free)
|
176
|
+
|
177
|
+
} // namespace bssl
|
178
|
+
|
179
|
+
} /* extern C++ */
|
180
|
+
|
89
181
|
#endif
|
90
182
|
|
91
183
|
#endif /* OPENSSL_HEADER_CURVE25519_H */
|
@@ -81,10 +81,24 @@ OPENSSL_EXPORT DH *DH_new(void);
|
|
81
81
|
* count drops to zero. */
|
82
82
|
OPENSSL_EXPORT void DH_free(DH *dh);
|
83
83
|
|
84
|
-
/* DH_up_ref increments the reference count of |dh
|
84
|
+
/* DH_up_ref increments the reference count of |dh| and returns one. */
|
85
85
|
OPENSSL_EXPORT int DH_up_ref(DH *dh);
|
86
86
|
|
87
87
|
|
88
|
+
/* Properties. */
|
89
|
+
|
90
|
+
/* DH_get0_key sets |*out_pub_key| and |*out_priv_key|, if non-NULL, to |dh|'s
|
91
|
+
* public and private key, respectively. If |dh| is a public key, the private
|
92
|
+
* key will be set to NULL. */
|
93
|
+
OPENSSL_EXPORT void DH_get0_key(const DH *dh, const BIGNUM **out_pub_key,
|
94
|
+
const BIGNUM **out_priv_key);
|
95
|
+
|
96
|
+
/* DH_get0_pqg sets |*out_p|, |*out_q|, and |*out_g|, if non-NULL, to |dh|'s p,
|
97
|
+
* q, and g parameters, respectively. */
|
98
|
+
OPENSSL_EXPORT void DH_get0_pqg(const DH *dh, const BIGNUM **out_p,
|
99
|
+
const BIGNUM **out_q, const BIGNUM **out_g);
|
100
|
+
|
101
|
+
|
88
102
|
/* Standard parameters.
|
89
103
|
*
|
90
104
|
* These functions return new DH objects with standard parameters. They return
|
@@ -96,6 +110,11 @@ OPENSSL_EXPORT DH *DH_get_1024_160(const ENGINE *engine);
|
|
96
110
|
OPENSSL_EXPORT DH *DH_get_2048_224(const ENGINE *engine);
|
97
111
|
OPENSSL_EXPORT DH *DH_get_2048_256(const ENGINE *engine);
|
98
112
|
|
113
|
+
/* BN_get_rfc3526_prime_1536 sets |*ret| to the 1536-bit MODP group from RFC
|
114
|
+
* 3526 and returns |ret|. If |ret| is NULL then a fresh |BIGNUM| is allocated
|
115
|
+
* and returned. It returns NULL on allocation failure. */
|
116
|
+
OPENSSL_EXPORT BIGNUM *BN_get_rfc3526_prime_1536(BIGNUM *ret);
|
117
|
+
|
99
118
|
|
100
119
|
/* Parameter generation. */
|
101
120
|
|
@@ -174,22 +193,15 @@ OPENSSL_EXPORT DH *DHparams_dup(const DH *dh);
|
|
174
193
|
|
175
194
|
/* ASN.1 functions. */
|
176
195
|
|
177
|
-
/*
|
178
|
-
*
|
179
|
-
*
|
180
|
-
*
|
181
|
-
* allocated. However, one should not depend on writing into |*ret| because
|
182
|
-
* this behaviour is likely to change in the future.
|
183
|
-
*
|
184
|
-
* On successful exit, |*inp| is advanced past the DER structure. It
|
185
|
-
* returns the result or NULL on error. */
|
186
|
-
OPENSSL_EXPORT DH *d2i_DHparams(DH **ret, const unsigned char **inp, long len);
|
196
|
+
/* DH_parse_parameters decodes a DER-encoded DHParameter structure (PKCS #3)
|
197
|
+
* from |cbs| and advances |cbs|. It returns a newly-allocated |DH| or NULL on
|
198
|
+
* error. */
|
199
|
+
OPENSSL_EXPORT DH *DH_parse_parameters(CBS *cbs);
|
187
200
|
|
188
|
-
/*
|
189
|
-
*
|
190
|
-
*
|
191
|
-
*
|
192
|
-
OPENSSL_EXPORT int i2d_DHparams(const DH *in, unsigned char **outp);
|
201
|
+
/* DH_marshal_parameters marshals |dh| as a DER-encoded DHParameter structure
|
202
|
+
* (PKCS #3) and appends the result to |cbb|. It returns one on success and zero
|
203
|
+
* on error. */
|
204
|
+
OPENSSL_EXPORT int DH_marshal_parameters(CBB *cbb, const DH *dh);
|
193
205
|
|
194
206
|
|
195
207
|
/* ex_data functions.
|
@@ -204,6 +216,36 @@ OPENSSL_EXPORT int DH_set_ex_data(DH *d, int idx, void *arg);
|
|
204
216
|
OPENSSL_EXPORT void *DH_get_ex_data(DH *d, int idx);
|
205
217
|
|
206
218
|
|
219
|
+
/* Deprecated functions. */
|
220
|
+
|
221
|
+
/* DH_generate_parameters behaves like |DH_generate_parameters_ex|, which is
|
222
|
+
* what you should use instead. It returns NULL on error, or a newly-allocated
|
223
|
+
* |DH| on success. This function is provided for compatibility only. */
|
224
|
+
OPENSSL_EXPORT DH *DH_generate_parameters(int prime_len, int generator,
|
225
|
+
void (*callback)(int, int, void *),
|
226
|
+
void *cb_arg);
|
227
|
+
|
228
|
+
/* d2i_DHparams parses an ASN.1, DER encoded Diffie-Hellman parameters structure
|
229
|
+
* from |len| bytes at |*inp|. If |ret| is not NULL then, on exit, a pointer to
|
230
|
+
* the result is in |*ret|. Note that, even if |*ret| is already non-NULL on
|
231
|
+
* entry, it will not be written to. Rather, a fresh |DH| is allocated and the
|
232
|
+
* previous one is freed.
|
233
|
+
*
|
234
|
+
* On successful exit, |*inp| is advanced past the DER structure. It
|
235
|
+
* returns the result or NULL on error.
|
236
|
+
*
|
237
|
+
* Use |DH_parse_parameters| instead. */
|
238
|
+
OPENSSL_EXPORT DH *d2i_DHparams(DH **ret, const unsigned char **inp, long len);
|
239
|
+
|
240
|
+
/* i2d_DHparams marshals |in| to an ASN.1, DER structure. If |outp| is not NULL
|
241
|
+
* then the result is written to |*outp| and |*outp| is advanced just past the
|
242
|
+
* output. It returns the number of bytes in the result, whether written or
|
243
|
+
* not, or a negative value on error.
|
244
|
+
*
|
245
|
+
* Use |DH_marshal_parameters| instead. */
|
246
|
+
OPENSSL_EXPORT int i2d_DHparams(const DH *in, unsigned char **outp);
|
247
|
+
|
248
|
+
|
207
249
|
struct dh_st {
|
208
250
|
BIGNUM *p;
|
209
251
|
BIGNUM *g;
|
@@ -232,11 +274,24 @@ struct dh_st {
|
|
232
274
|
|
233
275
|
#if defined(__cplusplus)
|
234
276
|
} /* extern C */
|
277
|
+
|
278
|
+
extern "C++" {
|
279
|
+
|
280
|
+
namespace bssl {
|
281
|
+
|
282
|
+
BORINGSSL_MAKE_DELETER(DH, DH_free)
|
283
|
+
|
284
|
+
} // namespace bssl
|
285
|
+
|
286
|
+
} /* extern C++ */
|
287
|
+
|
235
288
|
#endif
|
236
289
|
|
237
290
|
#define DH_R_BAD_GENERATOR 100
|
238
291
|
#define DH_R_INVALID_PUBKEY 101
|
239
292
|
#define DH_R_MODULUS_TOO_LARGE 102
|
240
293
|
#define DH_R_NO_PRIVATE_VALUE 103
|
294
|
+
#define DH_R_DECODE_ERROR 104
|
295
|
+
#define DH_R_ENCODE_ERROR 105
|
241
296
|
|
242
297
|
#endif /* OPENSSL_HEADER_DH_H */
|
@@ -143,11 +143,15 @@ OPENSSL_EXPORT int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *data,
|
|
143
143
|
* at least this much space. */
|
144
144
|
#define EVP_MAX_MD_SIZE 64 /* SHA-512 is the longest so far. */
|
145
145
|
|
146
|
+
/* EVP_MAX_MD_BLOCK_SIZE is the largest digest block size supported, in bytes. */
|
147
|
+
#define EVP_MAX_MD_BLOCK_SIZE 128 /* SHA-512 is the longest so far. */
|
148
|
+
|
146
149
|
/* EVP_DigestFinal_ex finishes the digest in |ctx| and writes the output to
|
147
|
-
* |md_out|.
|
148
|
-
* NULL then |*out_size| is set to the
|
149
|
-
* After this call, the hash cannot be
|
150
|
-
* |EVP_DigestInit_ex| is called to start
|
150
|
+
* |md_out|. |EVP_MD_CTX_size| bytes are written, which is at most
|
151
|
+
* |EVP_MAX_MD_SIZE|. If |out_size| is not NULL then |*out_size| is set to the
|
152
|
+
* number of bytes written. It returns one. After this call, the hash cannot be
|
153
|
+
* updated or finished again until |EVP_DigestInit_ex| is called to start
|
154
|
+
* another hashing operation. */
|
151
155
|
OPENSSL_EXPORT int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, uint8_t *md_out,
|
152
156
|
unsigned int *out_size);
|
153
157
|
|
@@ -156,11 +160,11 @@ OPENSSL_EXPORT int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, uint8_t *md_out,
|
|
156
160
|
OPENSSL_EXPORT int EVP_DigestFinal(EVP_MD_CTX *ctx, uint8_t *md_out,
|
157
161
|
unsigned int *out_size);
|
158
162
|
|
159
|
-
/* EVP_Digest performs a complete hashing operation in one call. It hashes
|
160
|
-
*
|
161
|
-
*
|
162
|
-
* |*out_size| is set to the number of bytes written. It returns one on
|
163
|
-
* and zero otherwise. */
|
163
|
+
/* EVP_Digest performs a complete hashing operation in one call. It hashes |len|
|
164
|
+
* bytes from |data| and writes the digest to |md_out|. |EVP_MD_CTX_size| bytes
|
165
|
+
* are written, which is at most |EVP_MAX_MD_SIZE|. If |out_size| is not NULL
|
166
|
+
* then |*out_size| is set to the number of bytes written. It returns one on
|
167
|
+
* success and zero otherwise. */
|
164
168
|
OPENSSL_EXPORT int EVP_Digest(const void *data, size_t len, uint8_t *md_out,
|
165
169
|
unsigned int *md_out_size, const EVP_MD *type,
|
166
170
|
ENGINE *impl);
|
@@ -209,6 +213,12 @@ OPENSSL_EXPORT int EVP_add_digest(const EVP_MD *digest);
|
|
209
213
|
* |name|, or NULL if the name is unknown. */
|
210
214
|
OPENSSL_EXPORT const EVP_MD *EVP_get_digestbyname(const char *);
|
211
215
|
|
216
|
+
/* EVP_dss1 returns the value of EVP_sha1(). This was provided by OpenSSL to
|
217
|
+
* specifiy the original DSA signatures, which were fixed to use SHA-1. Note,
|
218
|
+
* however, that attempting to sign or verify DSA signatures with the EVP
|
219
|
+
* interface will always fail. */
|
220
|
+
OPENSSL_EXPORT const EVP_MD *EVP_dss1(void);
|
221
|
+
|
212
222
|
|
213
223
|
/* Digest operation accessors. */
|
214
224
|
|
@@ -218,11 +228,11 @@ OPENSSL_EXPORT const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx);
|
|
218
228
|
|
219
229
|
/* EVP_MD_CTX_size returns the digest size of |ctx|, in bytes. It
|
220
230
|
* will crash if a digest hasn't been set on |ctx|. */
|
221
|
-
OPENSSL_EXPORT
|
231
|
+
OPENSSL_EXPORT size_t EVP_MD_CTX_size(const EVP_MD_CTX *ctx);
|
222
232
|
|
223
233
|
/* EVP_MD_CTX_block_size returns the block size of the digest function used by
|
224
234
|
* |ctx|, in bytes. It will crash if a digest hasn't been set on |ctx|. */
|
225
|
-
OPENSSL_EXPORT
|
235
|
+
OPENSSL_EXPORT size_t EVP_MD_CTX_block_size(const EVP_MD_CTX *ctx);
|
226
236
|
|
227
237
|
/* EVP_MD_CTX_type returns a NID describing the digest function used by |ctx|.
|
228
238
|
* (For example, |NID_sha256|.) It will crash if a digest hasn't been set on
|
@@ -251,6 +261,23 @@ struct env_md_ctx_st {
|
|
251
261
|
|
252
262
|
#if defined(__cplusplus)
|
253
263
|
} /* extern C */
|
264
|
+
|
265
|
+
#if !defined(BORINGSSL_NO_CXX)
|
266
|
+
extern "C++" {
|
267
|
+
|
268
|
+
namespace bssl {
|
269
|
+
|
270
|
+
BORINGSSL_MAKE_DELETER(EVP_MD_CTX, EVP_MD_CTX_destroy)
|
271
|
+
|
272
|
+
using ScopedEVP_MD_CTX =
|
273
|
+
internal::StackAllocated<EVP_MD_CTX, int, EVP_MD_CTX_init,
|
274
|
+
EVP_MD_CTX_cleanup>;
|
275
|
+
|
276
|
+
} // namespace bssl
|
277
|
+
|
278
|
+
} // extern C++
|
279
|
+
#endif
|
280
|
+
|
254
281
|
#endif
|
255
282
|
|
256
283
|
#define DIGEST_R_INPUT_NOT_INITIALIZED 100
|