grpc 1.37.1 → 1.40.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +112 -59
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +48 -0
- data/include/grpc/event_engine/event_engine.h +330 -0
- data/include/grpc/event_engine/port.h +41 -0
- data/include/grpc/event_engine/slice_allocator.h +66 -0
- data/include/grpc/grpc.h +11 -4
- data/include/grpc/grpc_security.h +32 -0
- data/include/grpc/grpc_security_constants.h +15 -0
- data/include/grpc/impl/codegen/grpc_types.h +44 -19
- data/include/grpc/impl/codegen/port_platform.h +46 -0
- data/include/grpc/module.modulemap +14 -14
- data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +975 -3282
- data/src/core/ext/filters/client_channel/client_channel.h +513 -55
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
- data/src/core/ext/filters/client_channel/config_selector.h +20 -7
- data/src/core/ext/filters/client_channel/connector.h +1 -1
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
- data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +28 -27
- data/src/core/ext/filters/client_channel/health/health_check_client.h +30 -29
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
- data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +53 -51
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +14 -23
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +16 -16
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +734 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +10 -17
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +17 -20
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +53 -65
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +36 -44
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +33 -55
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +151 -163
- data/src/core/ext/filters/client_channel/lb_policy.cc +2 -16
- data/src/core/ext/filters/client_channel/lb_policy.h +70 -46
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +24 -18
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +18 -12
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +20 -13
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +158 -102
- data/src/core/ext/filters/client_channel/resolver.h +2 -2
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
- data/src/core/ext/filters/client_channel/retry_filter.cc +2598 -0
- data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
- data/src/core/ext/filters/client_channel/retry_service_config.cc +316 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
- data/src/core/ext/filters/client_channel/server_address.cc +1 -1
- data/src/core/ext/filters/client_channel/service_config.cc +15 -14
- data/src/core/ext/filters/client_channel/service_config.h +7 -6
- data/src/core/ext/filters/client_channel/service_config_call_data.h +45 -5
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
- data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
- data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
- data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
- data/src/core/ext/filters/client_channel/subchannel.h +7 -6
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +17 -16
- data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -18
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
- data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
- data/src/core/ext/filters/http/client/http_client_filter.cc +33 -23
- data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
- data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
- data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
- data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +3 -2
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +49 -46
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +5 -4
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +66 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +74 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +141 -126
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
- data/src/core/ext/transport/chttp2/transport/flow_control.h +9 -9
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +12 -12
- data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +15 -16
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +11 -10
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +652 -736
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +195 -74
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +33 -28
- data/src/core/ext/transport/chttp2/transport/parsing.cc +129 -106
- data/src/core/ext/transport/chttp2/transport/varint.cc +6 -4
- data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
- data/src/core/ext/transport/inproc/inproc_transport.cc +72 -60
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +56 -35
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +180 -76
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +35 -27
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +97 -48
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +45 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +67 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +66 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +227 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +121 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +90 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +32 -24
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +120 -73
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +4 -2
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +15 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +171 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +8 -6
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +27 -19
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +24 -7
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +57 -0
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +29 -17
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +72 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +3 -2
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +4 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +6 -5
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +15 -11
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +85 -43
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +274 -91
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +11 -8
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +30 -13
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +33 -5
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +115 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +181 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +1 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +82 -66
- data/src/core/ext/upb-generated/validate/validate.upb.h +220 -124
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +15 -7
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +53 -52
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +318 -277
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +437 -410
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +198 -170
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +9 -8
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +219 -163
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +15 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +29 -25
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +135 -125
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +131 -123
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +90 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +32 -24
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +69 -55
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +684 -664
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +13 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +441 -375
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +10 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +122 -114
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +1 -1
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +112 -79
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +5 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +35 -32
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +4 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +182 -160
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_store.h +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
- data/src/core/ext/xds/xds_api.cc +665 -317
- data/src/core/ext/xds/xds_api.h +52 -14
- data/src/core/ext/xds/xds_bootstrap.cc +101 -160
- data/src/core/ext/xds/xds_bootstrap.h +19 -24
- data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
- data/src/core/ext/xds/xds_certificate_provider.h +4 -4
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_client.cc +370 -215
- data/src/core/ext/xds/xds_client.h +38 -28
- data/src/core/ext/xds/xds_client_stats.h +3 -2
- data/src/core/ext/xds/xds_http_filters.cc +3 -2
- data/src/core/ext/xds/xds_http_filters.h +3 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +16 -20
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +16 -11
- data/src/core/lib/channel/call_tracer.h +85 -0
- data/src/core/lib/channel/channel_stack.cc +10 -9
- data/src/core/lib/channel/channel_stack.h +11 -10
- data/src/core/lib/channel/channel_stack_builder.cc +2 -2
- data/src/core/lib/channel/channel_stack_builder.h +1 -1
- data/src/core/lib/channel/channelz.cc +21 -13
- data/src/core/lib/channel/channelz.h +3 -0
- data/src/core/lib/channel/connected_channel.cc +4 -4
- data/src/core/lib/channel/context.h +3 -0
- data/src/core/lib/channel/handshaker.cc +7 -6
- data/src/core/lib/channel/handshaker.h +5 -5
- data/src/core/lib/channel/status_util.h +4 -0
- data/src/core/lib/compression/stream_compression.h +1 -1
- data/src/core/lib/compression/stream_compression_gzip.h +1 -1
- data/src/core/lib/compression/stream_compression_identity.h +1 -1
- data/src/core/lib/debug/stats.h +1 -1
- data/src/core/lib/event_engine/endpoint_config.cc +46 -0
- data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
- data/src/core/lib/event_engine/event_engine.cc +50 -0
- data/src/core/lib/event_engine/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- data/src/core/lib/gpr/murmur_hash.cc +4 -2
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- data/src/core/lib/gprpp/manual_constructor.h +1 -1
- data/src/core/lib/gprpp/orphanable.h +3 -3
- data/src/core/lib/gprpp/ref_counted.h +28 -14
- data/src/core/lib/gprpp/status_helper.cc +407 -0
- data/src/core/lib/gprpp/status_helper.h +183 -0
- data/src/core/lib/gprpp/sync.h +2 -30
- data/src/core/lib/http/httpcli.cc +11 -11
- data/src/core/lib/http/httpcli_security_connector.cc +11 -7
- data/src/core/lib/http/parser.cc +16 -16
- data/src/core/lib/http/parser.h +4 -4
- data/src/core/lib/iomgr/buffer_list.cc +8 -10
- data/src/core/lib/iomgr/buffer_list.h +4 -5
- data/src/core/lib/iomgr/call_combiner.cc +15 -12
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +7 -6
- data/src/core/lib/iomgr/combiner.cc +14 -12
- data/src/core/lib/iomgr/combiner.h +2 -2
- data/src/core/lib/iomgr/endpoint.cc +1 -1
- data/src/core/lib/iomgr/endpoint.h +2 -2
- data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +33 -0
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
- data/src/core/lib/iomgr/error.cc +168 -61
- data/src/core/lib/iomgr/error.h +217 -106
- data/src/core/lib/iomgr/error_cfstream.cc +3 -2
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +5 -1
- data/src/core/lib/iomgr/ev_apple.cc +5 -5
- data/src/core/lib/iomgr/ev_apple.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
- data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
- data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
- data/src/core/lib/iomgr/ev_posix.cc +9 -8
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/event_engine/closure.cc +54 -0
- data/src/core/lib/iomgr/event_engine/closure.h +33 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +192 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +53 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +105 -0
- data/src/core/lib/iomgr/event_engine/iomgr.h +24 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +110 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +263 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +57 -0
- data/src/core/lib/iomgr/exec_ctx.cc +12 -4
- data/src/core/lib/iomgr/exec_ctx.h +4 -5
- data/src/core/lib/iomgr/executor/threadpool.cc +2 -3
- data/src/core/lib/iomgr/executor/threadpool.h +2 -2
- data/src/core/lib/iomgr/executor.cc +8 -8
- data/src/core/lib/iomgr/executor.h +2 -2
- data/src/core/lib/iomgr/iomgr.cc +2 -2
- data/src/core/lib/iomgr/iomgr.h +1 -1
- data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
- data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
- data/src/core/lib/iomgr/iomgr_internal.h +3 -3
- data/src/core/lib/iomgr/iomgr_posix.cc +3 -1
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +42 -12
- data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +4 -4
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +5 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_custom.cc +7 -7
- data/src/core/lib/iomgr/pollset_custom.h +3 -1
- data/src/core/lib/iomgr/pollset_uv.cc +3 -1
- data/src/core/lib/iomgr/pollset_uv.h +5 -1
- data/src/core/lib/iomgr/pollset_windows.cc +5 -5
- data/src/core/lib/iomgr/port.h +7 -5
- data/src/core/lib/iomgr/python_util.h +2 -2
- data/src/core/lib/iomgr/resolve_address.cc +8 -4
- data/src/core/lib/iomgr/resolve_address.h +12 -6
- data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
- data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
- data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
- data/src/core/lib/iomgr/resource_quota.cc +13 -10
- data/src/core/lib/iomgr/sockaddr.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +15 -2
- data/src/core/lib/iomgr/socket_mutator.h +26 -2
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +24 -22
- data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
- data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
- data/src/core/lib/iomgr/tcp_client_posix.cc +22 -19
- data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
- data/src/core/lib/iomgr/tcp_client_windows.cc +7 -5
- data/src/core/lib/iomgr/tcp_custom.cc +14 -16
- data/src/core/lib/iomgr/tcp_custom.h +13 -12
- data/src/core/lib/iomgr/tcp_posix.cc +78 -73
- data/src/core/lib/iomgr/tcp_posix.h +8 -0
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +12 -11
- data/src/core/lib/iomgr/tcp_server_custom.cc +26 -25
- data/src/core/lib/iomgr/tcp_server_posix.cc +29 -21
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +21 -18
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
- data/src/core/lib/iomgr/tcp_uv.cc +25 -23
- data/src/core/lib/iomgr/tcp_windows.cc +13 -13
- data/src/core/lib/iomgr/tcp_windows.h +2 -2
- data/src/core/lib/iomgr/timer.h +6 -1
- data/src/core/lib/iomgr/timer_custom.cc +2 -1
- data/src/core/lib/iomgr/timer_custom.h +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +6 -6
- data/src/core/lib/iomgr/timer_manager.cc +1 -1
- data/src/core/lib/iomgr/udp_server.cc +21 -20
- data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
- data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.h +17 -1
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +5 -6
- data/src/core/lib/matchers/matchers.cc +46 -58
- data/src/core/lib/matchers/matchers.h +30 -29
- data/src/core/lib/security/authorization/authorization_engine.h +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +32 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +209 -0
- data/src/core/lib/security/authorization/evaluate_args.h +91 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
- data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
- data/src/core/lib/security/credentials/credentials.h +2 -2
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
- data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +12 -10
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
- data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +68 -13
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
- data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +22 -9
- data/src/core/lib/security/security_connector/security_connector.h +9 -4
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
- data/src/core/lib/security/security_connector/ssl_utils.cc +27 -4
- data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +60 -76
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
- data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
- data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
- data/src/core/lib/security/transport/security_handshaker.cc +45 -36
- data/src/core/lib/security/transport/server_auth_filter.cc +17 -18
- data/src/core/lib/security/transport/tsi_error.cc +2 -1
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +2 -2
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/slice/slice_internal.h +1 -0
- data/src/core/lib/surface/call.cc +72 -52
- data/src/core/lib/surface/call.h +13 -2
- data/src/core/lib/surface/channel.cc +6 -6
- data/src/core/lib/surface/channel.h +3 -2
- data/src/core/lib/surface/channel_ping.cc +1 -1
- data/src/core/lib/surface/completion_queue.cc +68 -69
- data/src/core/lib/surface/completion_queue.h +3 -2
- data/src/core/lib/surface/completion_queue_factory.cc +1 -2
- data/src/core/lib/surface/init.cc +1 -3
- data/src/core/lib/surface/init.h +10 -1
- data/src/core/lib/surface/lame_client.cc +11 -11
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/server.cc +31 -23
- data/src/core/lib/surface/server.h +19 -18
- data/src/core/lib/surface/validate_metadata.cc +7 -7
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/byte_stream.cc +5 -5
- data/src/core/lib/transport/byte_stream.h +8 -8
- data/src/core/lib/transport/connectivity_state.cc +1 -1
- data/src/core/lib/transport/error_utils.cc +21 -10
- data/src/core/lib/transport/error_utils.h +11 -5
- data/src/core/lib/transport/metadata_batch.cc +37 -37
- data/src/core/lib/transport/metadata_batch.h +19 -18
- data/src/core/lib/transport/transport.cc +4 -3
- data/src/core/lib/transport/transport.h +6 -4
- data/src/core/lib/transport/transport_op_string.cc +6 -6
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/tsi/alts/crypt/gsec.h +6 -0
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/ssl_transport_security.cc +32 -14
- data/src/core/tsi/ssl_transport_security.h +3 -4
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +6 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +11 -2
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
- data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +37 -9
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
- data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +29 -22
- data/third_party/abseil-cpp/absl/status/status.h +81 -20
- data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
- data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
- data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
- data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
- data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +26 -24
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/boringssl-with-bazel/err_data.c +483 -461
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +9 -7
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +52 -65
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +52 -66
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +0 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +26 -24
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +10 -7
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +61 -75
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +80 -103
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +40 -49
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +367 -315
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +5 -3
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +120 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +14 -15
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +53 -73
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +31 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +7 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +5 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +47 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +33 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +20 -49
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +325 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +25 -7
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +99 -63
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +283 -85
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +13 -19
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +445 -152
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +451 -435
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -1
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +7 -2
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1133 -0
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +66 -30
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +189 -86
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +154 -24
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +414 -135
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +51 -60
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +8 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +4 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +7 -3
- data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +664 -702
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +65 -7
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +98 -39
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +141 -94
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +213 -118
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- data/third_party/xxhash/xxhash.h +77 -195
- metadata +116 -51
- data/src/core/lib/gpr/arena.h +0 -47
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
@@ -820,7 +820,7 @@ static void table_select(ge_precomp *t, int pos, signed char b) {
|
|
820
820
|
//
|
821
821
|
// Preconditions:
|
822
822
|
// a[31] <= 127
|
823
|
-
void x25519_ge_scalarmult_base(ge_p3 *h, const uint8_t
|
823
|
+
void x25519_ge_scalarmult_base(ge_p3 *h, const uint8_t a[32]) {
|
824
824
|
signed char e[64];
|
825
825
|
signed char carry;
|
826
826
|
ge_p1p1 r;
|
@@ -106,7 +106,7 @@ typedef struct {
|
|
106
106
|
} ge_cached;
|
107
107
|
|
108
108
|
void x25519_ge_tobytes(uint8_t s[32], const ge_p2 *h);
|
109
|
-
int x25519_ge_frombytes_vartime(ge_p3 *h, const uint8_t
|
109
|
+
int x25519_ge_frombytes_vartime(ge_p3 *h, const uint8_t s[32]);
|
110
110
|
void x25519_ge_p3_to_cached(ge_cached *r, const ge_p3 *p);
|
111
111
|
void x25519_ge_p1p1_to_p2(ge_p2 *r, const ge_p1p1 *p);
|
112
112
|
void x25519_ge_p1p1_to_p3(ge_p3 *r, const ge_p1p1 *p);
|
@@ -368,84 +368,6 @@ void ERR_clear_system_error(void) {
|
|
368
368
|
errno = 0;
|
369
369
|
}
|
370
370
|
|
371
|
-
char *ERR_error_string(uint32_t packed_error, char *ret) {
|
372
|
-
static char buf[ERR_ERROR_STRING_BUF_LEN];
|
373
|
-
|
374
|
-
if (ret == NULL) {
|
375
|
-
// TODO(fork): remove this.
|
376
|
-
ret = buf;
|
377
|
-
}
|
378
|
-
|
379
|
-
#if !defined(NDEBUG)
|
380
|
-
// This is aimed to help catch callers who don't provide
|
381
|
-
// |ERR_ERROR_STRING_BUF_LEN| bytes of space.
|
382
|
-
OPENSSL_memset(ret, 0, ERR_ERROR_STRING_BUF_LEN);
|
383
|
-
#endif
|
384
|
-
|
385
|
-
return ERR_error_string_n(packed_error, ret, ERR_ERROR_STRING_BUF_LEN);
|
386
|
-
}
|
387
|
-
|
388
|
-
char *ERR_error_string_n(uint32_t packed_error, char *buf, size_t len) {
|
389
|
-
char lib_buf[64], reason_buf[64];
|
390
|
-
const char *lib_str, *reason_str;
|
391
|
-
unsigned lib, reason;
|
392
|
-
|
393
|
-
if (len == 0) {
|
394
|
-
return NULL;
|
395
|
-
}
|
396
|
-
|
397
|
-
lib = ERR_GET_LIB(packed_error);
|
398
|
-
reason = ERR_GET_REASON(packed_error);
|
399
|
-
|
400
|
-
lib_str = ERR_lib_error_string(packed_error);
|
401
|
-
reason_str = ERR_reason_error_string(packed_error);
|
402
|
-
|
403
|
-
if (lib_str == NULL) {
|
404
|
-
BIO_snprintf(lib_buf, sizeof(lib_buf), "lib(%u)", lib);
|
405
|
-
lib_str = lib_buf;
|
406
|
-
}
|
407
|
-
|
408
|
-
if (reason_str == NULL) {
|
409
|
-
BIO_snprintf(reason_buf, sizeof(reason_buf), "reason(%u)", reason);
|
410
|
-
reason_str = reason_buf;
|
411
|
-
}
|
412
|
-
|
413
|
-
BIO_snprintf(buf, len, "error:%08" PRIx32 ":%s:OPENSSL_internal:%s",
|
414
|
-
packed_error, lib_str, reason_str);
|
415
|
-
|
416
|
-
if (strlen(buf) == len - 1) {
|
417
|
-
// output may be truncated; make sure we always have 5 colon-separated
|
418
|
-
// fields, i.e. 4 colons.
|
419
|
-
static const unsigned num_colons = 4;
|
420
|
-
unsigned i;
|
421
|
-
char *s = buf;
|
422
|
-
|
423
|
-
if (len <= num_colons) {
|
424
|
-
// In this situation it's not possible to ensure that the correct number
|
425
|
-
// of colons are included in the output.
|
426
|
-
return buf;
|
427
|
-
}
|
428
|
-
|
429
|
-
for (i = 0; i < num_colons; i++) {
|
430
|
-
char *colon = strchr(s, ':');
|
431
|
-
char *last_pos = &buf[len - 1] - num_colons + i;
|
432
|
-
|
433
|
-
if (colon == NULL || colon > last_pos) {
|
434
|
-
// set colon |i| at last possible position (buf[len-1] is the
|
435
|
-
// terminating 0). If we're setting this colon, then all whole of the
|
436
|
-
// rest of the string must be colons in order to have the correct
|
437
|
-
// number.
|
438
|
-
OPENSSL_memset(last_pos, ':', num_colons - i);
|
439
|
-
break;
|
440
|
-
}
|
441
|
-
|
442
|
-
s = colon + 1;
|
443
|
-
}
|
444
|
-
}
|
445
|
-
|
446
|
-
return buf;
|
447
|
-
}
|
448
|
-
|
449
371
|
// err_string_cmp is a compare function for searching error values with
|
450
372
|
// |bsearch| in |err_string_lookup|.
|
451
373
|
static int err_string_cmp(const void *a, const void *b) {
|
@@ -530,7 +452,7 @@ static const char *const kLibraryNames[ERR_NUM_LIBS] = {
|
|
530
452
|
"User defined functions", // ERR_LIB_USER
|
531
453
|
};
|
532
454
|
|
533
|
-
const char *
|
455
|
+
static const char *err_lib_error_string(uint32_t packed_error) {
|
534
456
|
const uint32_t lib = ERR_GET_LIB(packed_error);
|
535
457
|
|
536
458
|
if (lib >= ERR_NUM_LIBS) {
|
@@ -539,11 +461,16 @@ const char *ERR_lib_error_string(uint32_t packed_error) {
|
|
539
461
|
return kLibraryNames[lib];
|
540
462
|
}
|
541
463
|
|
464
|
+
const char *ERR_lib_error_string(uint32_t packed_error) {
|
465
|
+
const char *ret = err_lib_error_string(packed_error);
|
466
|
+
return ret == NULL ? "unknown library" : ret;
|
467
|
+
}
|
468
|
+
|
542
469
|
const char *ERR_func_error_string(uint32_t packed_error) {
|
543
470
|
return "OPENSSL_internal";
|
544
471
|
}
|
545
472
|
|
546
|
-
const char *
|
473
|
+
static const char *err_reason_error_string(uint32_t packed_error) {
|
547
474
|
const uint32_t lib = ERR_GET_LIB(packed_error);
|
548
475
|
const uint32_t reason = ERR_GET_REASON(packed_error);
|
549
476
|
|
@@ -579,6 +506,86 @@ const char *ERR_reason_error_string(uint32_t packed_error) {
|
|
579
506
|
kOpenSSLReasonValuesLen, kOpenSSLReasonStringData);
|
580
507
|
}
|
581
508
|
|
509
|
+
const char *ERR_reason_error_string(uint32_t packed_error) {
|
510
|
+
const char *ret = err_reason_error_string(packed_error);
|
511
|
+
return ret == NULL ? "unknown error" : ret;
|
512
|
+
}
|
513
|
+
|
514
|
+
char *ERR_error_string(uint32_t packed_error, char *ret) {
|
515
|
+
static char buf[ERR_ERROR_STRING_BUF_LEN];
|
516
|
+
|
517
|
+
if (ret == NULL) {
|
518
|
+
// TODO(fork): remove this.
|
519
|
+
ret = buf;
|
520
|
+
}
|
521
|
+
|
522
|
+
#if !defined(NDEBUG)
|
523
|
+
// This is aimed to help catch callers who don't provide
|
524
|
+
// |ERR_ERROR_STRING_BUF_LEN| bytes of space.
|
525
|
+
OPENSSL_memset(ret, 0, ERR_ERROR_STRING_BUF_LEN);
|
526
|
+
#endif
|
527
|
+
|
528
|
+
return ERR_error_string_n(packed_error, ret, ERR_ERROR_STRING_BUF_LEN);
|
529
|
+
}
|
530
|
+
|
531
|
+
char *ERR_error_string_n(uint32_t packed_error, char *buf, size_t len) {
|
532
|
+
if (len == 0) {
|
533
|
+
return NULL;
|
534
|
+
}
|
535
|
+
|
536
|
+
unsigned lib = ERR_GET_LIB(packed_error);
|
537
|
+
unsigned reason = ERR_GET_REASON(packed_error);
|
538
|
+
|
539
|
+
const char *lib_str = err_lib_error_string(packed_error);
|
540
|
+
const char *reason_str = err_reason_error_string(packed_error);
|
541
|
+
|
542
|
+
char lib_buf[64], reason_buf[64];
|
543
|
+
if (lib_str == NULL) {
|
544
|
+
BIO_snprintf(lib_buf, sizeof(lib_buf), "lib(%u)", lib);
|
545
|
+
lib_str = lib_buf;
|
546
|
+
}
|
547
|
+
|
548
|
+
if (reason_str == NULL) {
|
549
|
+
BIO_snprintf(reason_buf, sizeof(reason_buf), "reason(%u)", reason);
|
550
|
+
reason_str = reason_buf;
|
551
|
+
}
|
552
|
+
|
553
|
+
BIO_snprintf(buf, len, "error:%08" PRIx32 ":%s:OPENSSL_internal:%s",
|
554
|
+
packed_error, lib_str, reason_str);
|
555
|
+
|
556
|
+
if (strlen(buf) == len - 1) {
|
557
|
+
// output may be truncated; make sure we always have 5 colon-separated
|
558
|
+
// fields, i.e. 4 colons.
|
559
|
+
static const unsigned num_colons = 4;
|
560
|
+
unsigned i;
|
561
|
+
char *s = buf;
|
562
|
+
|
563
|
+
if (len <= num_colons) {
|
564
|
+
// In this situation it's not possible to ensure that the correct number
|
565
|
+
// of colons are included in the output.
|
566
|
+
return buf;
|
567
|
+
}
|
568
|
+
|
569
|
+
for (i = 0; i < num_colons; i++) {
|
570
|
+
char *colon = strchr(s, ':');
|
571
|
+
char *last_pos = &buf[len - 1] - num_colons + i;
|
572
|
+
|
573
|
+
if (colon == NULL || colon > last_pos) {
|
574
|
+
// set colon |i| at last possible position (buf[len-1] is the
|
575
|
+
// terminating 0). If we're setting this colon, then all whole of the
|
576
|
+
// rest of the string must be colons in order to have the correct
|
577
|
+
// number.
|
578
|
+
OPENSSL_memset(last_pos, ':', num_colons - i);
|
579
|
+
break;
|
580
|
+
}
|
581
|
+
|
582
|
+
s = colon + 1;
|
583
|
+
}
|
584
|
+
}
|
585
|
+
|
586
|
+
return buf;
|
587
|
+
}
|
588
|
+
|
582
589
|
void ERR_print_errors_cb(ERR_print_errors_callback_t callback, void *ctx) {
|
583
590
|
char buf[ERR_ERROR_STRING_BUF_LEN];
|
584
591
|
char buf2[1024];
|
@@ -429,6 +429,15 @@ int EVP_PKEY_CTX_get_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD **out_md) {
|
|
429
429
|
0, (void *)out_md);
|
430
430
|
}
|
431
431
|
|
432
|
+
void *EVP_PKEY_get0(const EVP_PKEY *pkey) {
|
433
|
+
// Node references, but never calls this function, so for now we return NULL.
|
434
|
+
// If other projects require complete support, call |EVP_PKEY_get0_RSA|, etc.,
|
435
|
+
// rather than reading |pkey->pkey.ptr| directly. This avoids problems if our
|
436
|
+
// internal representation does not match the type the caller expects from
|
437
|
+
// OpenSSL.
|
438
|
+
return NULL;
|
439
|
+
}
|
440
|
+
|
432
441
|
void OpenSSL_add_all_algorithms(void) {}
|
433
442
|
|
434
443
|
void OPENSSL_add_all_algorithms_conf(void) {}
|
@@ -297,7 +297,7 @@ void bn_mul_comba4(BN_ULONG r[8], const BN_ULONG a[4], const BN_ULONG b[4]);
|
|
297
297
|
void bn_mul_comba8(BN_ULONG r[16], const BN_ULONG a[8], const BN_ULONG b[8]);
|
298
298
|
|
299
299
|
// bn_sqr_comba8 sets |r| to |a|^2.
|
300
|
-
void bn_sqr_comba8(BN_ULONG r[16], const BN_ULONG a[
|
300
|
+
void bn_sqr_comba8(BN_ULONG r[16], const BN_ULONG a[8]);
|
301
301
|
|
302
302
|
// bn_sqr_comba4 sets |r| to |a|^2.
|
303
303
|
void bn_sqr_comba4(BN_ULONG r[8], const BN_ULONG a[4]);
|
@@ -115,10 +115,6 @@
|
|
115
115
|
#include "../../internal.h"
|
116
116
|
|
117
117
|
|
118
|
-
// The quick sieve algorithm approach to weeding out primes is Philip
|
119
|
-
// Zimmermann's, as implemented in PGP. I have had a read of his comments and
|
120
|
-
// implemented my own version.
|
121
|
-
|
122
118
|
// kPrimes contains the first 1024 primes.
|
123
119
|
static const uint16_t kPrimes[] = {
|
124
120
|
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37,
|
@@ -225,7 +225,6 @@ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
|
|
225
225
|
|
226
226
|
ctx->buf_len = 0;
|
227
227
|
ctx->final_used = 0;
|
228
|
-
ctx->block_mask = ctx->cipher->block_size - 1;
|
229
228
|
return 1;
|
230
229
|
}
|
231
230
|
|
@@ -239,6 +238,15 @@ int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
|
|
239
238
|
return EVP_CipherInit_ex(ctx, cipher, impl, key, iv, 0);
|
240
239
|
}
|
241
240
|
|
241
|
+
// block_remainder returns the number of bytes to remove from |len| to get a
|
242
|
+
// multiple of |ctx|'s block size.
|
243
|
+
static int block_remainder(const EVP_CIPHER_CTX *ctx, int len) {
|
244
|
+
// |block_size| must be a power of two.
|
245
|
+
assert(ctx->cipher->block_size != 0);
|
246
|
+
assert((ctx->cipher->block_size & (ctx->cipher->block_size - 1)) == 0);
|
247
|
+
return len & (ctx->cipher->block_size - 1);
|
248
|
+
}
|
249
|
+
|
242
250
|
int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, uint8_t *out, int *out_len,
|
243
251
|
const uint8_t *in, int in_len) {
|
244
252
|
// Ciphers that use blocks may write up to |bl| extra bytes. Ensure the output
|
@@ -264,7 +272,7 @@ int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, uint8_t *out, int *out_len,
|
|
264
272
|
return in_len == 0;
|
265
273
|
}
|
266
274
|
|
267
|
-
if (ctx->buf_len == 0 && (in_len
|
275
|
+
if (ctx->buf_len == 0 && block_remainder(ctx, in_len) == 0) {
|
268
276
|
if (ctx->cipher->cipher(ctx, out, in, in_len)) {
|
269
277
|
*out_len = in_len;
|
270
278
|
return 1;
|
@@ -297,7 +305,7 @@ int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, uint8_t *out, int *out_len,
|
|
297
305
|
*out_len = 0;
|
298
306
|
}
|
299
307
|
|
300
|
-
i = in_len
|
308
|
+
i = block_remainder(ctx, in_len);
|
301
309
|
in_len -= i;
|
302
310
|
if (in_len > 0) {
|
303
311
|
if (!ctx->cipher->cipher(ctx, out, in, in_len)) {
|
@@ -141,10 +141,22 @@ typedef struct {
|
|
141
141
|
|
142
142
|
static int aes_init_key(EVP_CIPHER_CTX *ctx, const uint8_t *key,
|
143
143
|
const uint8_t *iv, int enc) {
|
144
|
-
int ret
|
144
|
+
int ret;
|
145
145
|
EVP_AES_KEY *dat = (EVP_AES_KEY *)ctx->cipher_data;
|
146
|
+
const int mode = ctx->cipher->flags & EVP_CIPH_MODE_MASK;
|
147
|
+
|
148
|
+
if (mode == EVP_CIPH_CTR_MODE) {
|
149
|
+
switch (ctx->key_len) {
|
150
|
+
case 16:
|
151
|
+
boringssl_fips_inc_counter(fips_counter_evp_aes_128_ctr);
|
152
|
+
break;
|
153
|
+
|
154
|
+
case 32:
|
155
|
+
boringssl_fips_inc_counter(fips_counter_evp_aes_256_ctr);
|
156
|
+
break;
|
157
|
+
}
|
158
|
+
}
|
146
159
|
|
147
|
-
mode = ctx->cipher->flags & EVP_CIPH_MODE_MASK;
|
148
160
|
if ((mode == EVP_CIPH_ECB_MODE || mode == EVP_CIPH_CBC_MODE) && !enc) {
|
149
161
|
if (hwaes_capable()) {
|
150
162
|
ret = aes_hw_set_decrypt_key(key, ctx->key_len * 8, &dat->ks.ks);
|
@@ -353,6 +365,17 @@ static int aes_gcm_init_key(EVP_CIPHER_CTX *ctx, const uint8_t *key,
|
|
353
365
|
if (!iv && !key) {
|
354
366
|
return 1;
|
355
367
|
}
|
368
|
+
|
369
|
+
switch (ctx->key_len) {
|
370
|
+
case 16:
|
371
|
+
boringssl_fips_inc_counter(fips_counter_evp_aes_128_gcm);
|
372
|
+
break;
|
373
|
+
|
374
|
+
case 32:
|
375
|
+
boringssl_fips_inc_counter(fips_counter_evp_aes_256_gcm);
|
376
|
+
break;
|
377
|
+
}
|
378
|
+
|
356
379
|
if (key) {
|
357
380
|
OPENSSL_memset(&gctx->gcm, 0, sizeof(gctx->gcm));
|
358
381
|
gctx->ctr = aes_ctr_set_key(&gctx->ks.ks, &gctx->gcm.gcm_key, NULL, key,
|
@@ -177,6 +177,13 @@ int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in) {
|
|
177
177
|
return 1;
|
178
178
|
}
|
179
179
|
|
180
|
+
void EVP_MD_CTX_move(EVP_MD_CTX *out, EVP_MD_CTX *in) {
|
181
|
+
EVP_MD_CTX_cleanup(out);
|
182
|
+
// While not guaranteed, |EVP_MD_CTX| is currently safe to move with |memcpy|.
|
183
|
+
OPENSSL_memcpy(out, in, sizeof(EVP_MD_CTX));
|
184
|
+
EVP_MD_CTX_init(in);
|
185
|
+
}
|
186
|
+
|
180
187
|
int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in) {
|
181
188
|
EVP_MD_CTX_init(out);
|
182
189
|
return EVP_MD_CTX_copy_ex(out, in);
|
@@ -247,13 +247,21 @@ static void sha512_256_init(EVP_MD_CTX *ctx) {
|
|
247
247
|
CHECK(SHA512_256_Init(ctx->md_data));
|
248
248
|
}
|
249
249
|
|
250
|
+
static void sha512_256_update(EVP_MD_CTX *ctx, const void *data, size_t count) {
|
251
|
+
CHECK(SHA512_256_Update(ctx->md_data, data, count));
|
252
|
+
}
|
253
|
+
|
254
|
+
static void sha512_256_final(EVP_MD_CTX *ctx, uint8_t *md) {
|
255
|
+
CHECK(SHA512_256_Final(md, ctx->md_data));
|
256
|
+
}
|
257
|
+
|
250
258
|
DEFINE_METHOD_FUNCTION(EVP_MD, EVP_sha512_256) {
|
251
259
|
out->type = NID_sha512_256;
|
252
260
|
out->md_size = SHA512_256_DIGEST_LENGTH;
|
253
261
|
out->flags = 0;
|
254
262
|
out->init = sha512_256_init;
|
255
|
-
out->update =
|
256
|
-
out->final =
|
263
|
+
out->update = sha512_256_update;
|
264
|
+
out->final = sha512_256_final;
|
257
265
|
out->block_size = 128;
|
258
266
|
out->ctx_size = sizeof(SHA512_CTX);
|
259
267
|
}
|
@@ -46,6 +46,9 @@
|
|
46
46
|
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
47
47
|
* ==================================================================== */
|
48
48
|
|
49
|
+
#ifndef OPENSSL_HEADER_DIGEST_MD32_COMMON_H
|
50
|
+
#define OPENSSL_HEADER_DIGEST_MD32_COMMON_H
|
51
|
+
|
49
52
|
#include <openssl/base.h>
|
50
53
|
|
51
54
|
#include <assert.h>
|
@@ -59,22 +62,15 @@ extern "C" {
|
|
59
62
|
|
60
63
|
// This is a generic 32-bit "collector" for message digest algorithms. It
|
61
64
|
// collects input character stream into chunks of 32-bit values and invokes the
|
62
|
-
// block function that performs the actual hash calculations.
|
63
|
-
// this mechanism, the following macros must be defined before including
|
64
|
-
// md32_common.h.
|
65
|
-
//
|
66
|
-
// One of |DATA_ORDER_IS_BIG_ENDIAN| or |DATA_ORDER_IS_LITTLE_ENDIAN| must be
|
67
|
-
// defined to specify the byte order of the input stream.
|
68
|
-
//
|
69
|
-
// |HASH_CBLOCK| must be defined as the integer block size, in bytes.
|
65
|
+
// block function that performs the actual hash calculations.
|
70
66
|
//
|
71
|
-
//
|
72
|
-
//
|
67
|
+
// To make use of this mechanism, the hash context should be defined with the
|
68
|
+
// following parameters.
|
73
69
|
//
|
74
70
|
// typedef struct <name>_state_st {
|
75
71
|
// uint32_t h[<chaining length> / sizeof(uint32_t)];
|
76
72
|
// uint32_t Nl, Nh;
|
77
|
-
// uint8_t data[
|
73
|
+
// uint8_t data[<block size>];
|
78
74
|
// unsigned num;
|
79
75
|
// ...
|
80
76
|
// } <NAME>_CTX;
|
@@ -83,186 +79,117 @@ extern "C" {
|
|
83
79
|
// any truncation (e.g. 64 for SHA-224 and SHA-256, 128 for SHA-384 and
|
84
80
|
// SHA-512).
|
85
81
|
//
|
86
|
-
// |
|
87
|
-
//
|
88
|
-
//
|
89
|
-
|
90
|
-
//
|
91
|
-
//
|
92
|
-
//
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
//
|
97
|
-
//
|
98
|
-
//
|
99
|
-
//
|
100
|
-
//
|
101
|
-
//
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
// |HASH_MAKE_STRING(c, s)| must be defined as a block statement that converts
|
108
|
-
// the hash state |c->h| into the output byte order, storing the result in |s|.
|
109
|
-
|
110
|
-
#if !defined(DATA_ORDER_IS_BIG_ENDIAN) && !defined(DATA_ORDER_IS_LITTLE_ENDIAN)
|
111
|
-
#error "DATA_ORDER must be defined!"
|
112
|
-
#endif
|
113
|
-
|
114
|
-
#ifndef HASH_CBLOCK
|
115
|
-
#error "HASH_CBLOCK must be defined!"
|
116
|
-
#endif
|
117
|
-
#ifndef HASH_CTX
|
118
|
-
#error "HASH_CTX must be defined!"
|
119
|
-
#endif
|
120
|
-
|
121
|
-
#ifndef HASH_UPDATE
|
122
|
-
#error "HASH_UPDATE must be defined!"
|
123
|
-
#endif
|
124
|
-
#ifndef HASH_TRANSFORM
|
125
|
-
#error "HASH_TRANSFORM must be defined!"
|
126
|
-
#endif
|
127
|
-
#ifndef HASH_FINAL
|
128
|
-
#error "HASH_FINAL must be defined!"
|
129
|
-
#endif
|
130
|
-
|
131
|
-
#ifndef HASH_BLOCK_DATA_ORDER
|
132
|
-
#error "HASH_BLOCK_DATA_ORDER must be defined!"
|
133
|
-
#endif
|
134
|
-
|
135
|
-
#ifndef HASH_MAKE_STRING
|
136
|
-
#error "HASH_MAKE_STRING must be defined!"
|
137
|
-
#endif
|
138
|
-
|
139
|
-
#if defined(DATA_ORDER_IS_BIG_ENDIAN)
|
140
|
-
|
141
|
-
#define HOST_c2l(c, l) \
|
142
|
-
do { \
|
143
|
-
(l) = (((uint32_t)(*((c)++))) << 24); \
|
144
|
-
(l) |= (((uint32_t)(*((c)++))) << 16); \
|
145
|
-
(l) |= (((uint32_t)(*((c)++))) << 8); \
|
146
|
-
(l) |= (((uint32_t)(*((c)++)))); \
|
147
|
-
} while (0)
|
148
|
-
|
149
|
-
#define HOST_l2c(l, c) \
|
150
|
-
do { \
|
151
|
-
*((c)++) = (uint8_t)(((l) >> 24) & 0xff); \
|
152
|
-
*((c)++) = (uint8_t)(((l) >> 16) & 0xff); \
|
153
|
-
*((c)++) = (uint8_t)(((l) >> 8) & 0xff); \
|
154
|
-
*((c)++) = (uint8_t)(((l)) & 0xff); \
|
155
|
-
} while (0)
|
156
|
-
|
157
|
-
#elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)
|
158
|
-
|
159
|
-
#define HOST_c2l(c, l) \
|
160
|
-
do { \
|
161
|
-
(l) = (((uint32_t)(*((c)++)))); \
|
162
|
-
(l) |= (((uint32_t)(*((c)++))) << 8); \
|
163
|
-
(l) |= (((uint32_t)(*((c)++))) << 16); \
|
164
|
-
(l) |= (((uint32_t)(*((c)++))) << 24); \
|
165
|
-
} while (0)
|
166
|
-
|
167
|
-
#define HOST_l2c(l, c) \
|
168
|
-
do { \
|
169
|
-
*((c)++) = (uint8_t)(((l)) & 0xff); \
|
170
|
-
*((c)++) = (uint8_t)(((l) >> 8) & 0xff); \
|
171
|
-
*((c)++) = (uint8_t)(((l) >> 16) & 0xff); \
|
172
|
-
*((c)++) = (uint8_t)(((l) >> 24) & 0xff); \
|
173
|
-
} while (0)
|
174
|
-
|
175
|
-
#endif // DATA_ORDER
|
176
|
-
|
177
|
-
int HASH_UPDATE(HASH_CTX *c, const void *data_, size_t len) {
|
178
|
-
const uint8_t *data = data_;
|
179
|
-
|
82
|
+
// |h| is the hash state and is updated by a function of type
|
83
|
+
// |crypto_md32_block_func|. |data| is the partial unprocessed block and has
|
84
|
+
// |num| bytes. |Nl| and |Nh| maintain the number of bits processed so far.
|
85
|
+
|
86
|
+
// A crypto_md32_block_func should incorporate |num_blocks| of input from |data|
|
87
|
+
// into |state|. It is assumed the caller has sized |state| and |data| for the
|
88
|
+
// hash function.
|
89
|
+
typedef void (*crypto_md32_block_func)(uint32_t *state, const uint8_t *data,
|
90
|
+
size_t num_blocks);
|
91
|
+
|
92
|
+
// crypto_md32_update adds |len| bytes from |in| to the digest. |data| must be a
|
93
|
+
// buffer of length |block_size| with the first |*num| bytes containing a
|
94
|
+
// partial block. This function combines the partial block with |in| and
|
95
|
+
// incorporates any complete blocks into the digest state |h|. It then updates
|
96
|
+
// |data| and |*num| with the new partial block and updates |*Nh| and |*Nl| with
|
97
|
+
// the data consumed.
|
98
|
+
static inline void crypto_md32_update(crypto_md32_block_func block_func,
|
99
|
+
uint32_t *h, uint8_t *data,
|
100
|
+
size_t block_size, unsigned *num,
|
101
|
+
uint32_t *Nh, uint32_t *Nl,
|
102
|
+
const uint8_t *in, size_t len) {
|
180
103
|
if (len == 0) {
|
181
|
-
return
|
104
|
+
return;
|
182
105
|
}
|
183
106
|
|
184
|
-
uint32_t l =
|
185
|
-
if (l <
|
107
|
+
uint32_t l = *Nl + (((uint32_t)len) << 3);
|
108
|
+
if (l < *Nl) {
|
186
109
|
// Handle carries.
|
187
|
-
|
110
|
+
(*Nh)++;
|
188
111
|
}
|
189
|
-
|
190
|
-
|
112
|
+
*Nh += (uint32_t)(len >> 29);
|
113
|
+
*Nl = l;
|
191
114
|
|
192
|
-
size_t n =
|
115
|
+
size_t n = *num;
|
193
116
|
if (n != 0) {
|
194
|
-
if (len >=
|
195
|
-
OPENSSL_memcpy(
|
196
|
-
|
197
|
-
n =
|
198
|
-
|
117
|
+
if (len >= block_size || len + n >= block_size) {
|
118
|
+
OPENSSL_memcpy(data + n, in, block_size - n);
|
119
|
+
block_func(h, data, 1);
|
120
|
+
n = block_size - n;
|
121
|
+
in += n;
|
199
122
|
len -= n;
|
200
|
-
|
201
|
-
// Keep |
|
202
|
-
OPENSSL_memset(
|
123
|
+
*num = 0;
|
124
|
+
// Keep |data| zeroed when unused.
|
125
|
+
OPENSSL_memset(data, 0, block_size);
|
203
126
|
} else {
|
204
|
-
OPENSSL_memcpy(
|
205
|
-
|
206
|
-
return
|
127
|
+
OPENSSL_memcpy(data + n, in, len);
|
128
|
+
*num += (unsigned)len;
|
129
|
+
return;
|
207
130
|
}
|
208
131
|
}
|
209
132
|
|
210
|
-
n = len /
|
133
|
+
n = len / block_size;
|
211
134
|
if (n > 0) {
|
212
|
-
|
213
|
-
n *=
|
214
|
-
|
135
|
+
block_func(h, in, n);
|
136
|
+
n *= block_size;
|
137
|
+
in += n;
|
215
138
|
len -= n;
|
216
139
|
}
|
217
140
|
|
218
141
|
if (len != 0) {
|
219
|
-
|
220
|
-
OPENSSL_memcpy(
|
142
|
+
*num = (unsigned)len;
|
143
|
+
OPENSSL_memcpy(data, in, len);
|
221
144
|
}
|
222
|
-
return 1;
|
223
145
|
}
|
224
146
|
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
147
|
+
// crypto_md32_final incorporates the partial block and trailing length into the
|
148
|
+
// digest state |h|. The trailing length is encoded in little-endian if
|
149
|
+
// |is_big_endian| is zero and big-endian otherwise. |data| must be a buffer of
|
150
|
+
// length |block_size| with the first |*num| bytes containing a partial block.
|
151
|
+
// |Nh| and |Nl| contain the total number of bits processed. On return, this
|
152
|
+
// function clears the partial block in |data| and
|
153
|
+
// |*num|.
|
154
|
+
//
|
155
|
+
// This function does not serialize |h| into a final digest. This is the
|
156
|
+
// responsibility of the caller.
|
157
|
+
static inline void crypto_md32_final(crypto_md32_block_func block_func,
|
158
|
+
uint32_t *h, uint8_t *data,
|
159
|
+
size_t block_size, unsigned *num,
|
160
|
+
uint32_t Nh, uint32_t Nl,
|
161
|
+
int is_big_endian) {
|
162
|
+
// |data| always has room for at least one byte. A full block would have
|
233
163
|
// been consumed.
|
234
|
-
size_t n =
|
235
|
-
assert(n <
|
236
|
-
|
164
|
+
size_t n = *num;
|
165
|
+
assert(n < block_size);
|
166
|
+
data[n] = 0x80;
|
237
167
|
n++;
|
238
168
|
|
239
169
|
// Fill the block with zeros if there isn't room for a 64-bit length.
|
240
|
-
if (n >
|
241
|
-
OPENSSL_memset(
|
170
|
+
if (n > block_size - 8) {
|
171
|
+
OPENSSL_memset(data + n, 0, block_size - n);
|
242
172
|
n = 0;
|
243
|
-
|
173
|
+
block_func(h, data, 1);
|
244
174
|
}
|
245
|
-
OPENSSL_memset(
|
175
|
+
OPENSSL_memset(data + n, 0, block_size - 8 - n);
|
246
176
|
|
247
177
|
// Append a 64-bit length to the block and process it.
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
c->num = 0;
|
259
|
-
OPENSSL_memset(c->data, 0, HASH_CBLOCK);
|
260
|
-
|
261
|
-
HASH_MAKE_STRING(c, out);
|
262
|
-
return 1;
|
178
|
+
if (is_big_endian) {
|
179
|
+
CRYPTO_store_u32_be(data + block_size - 8, Nh);
|
180
|
+
CRYPTO_store_u32_be(data + block_size - 4, Nl);
|
181
|
+
} else {
|
182
|
+
CRYPTO_store_u32_le(data + block_size - 8, Nl);
|
183
|
+
CRYPTO_store_u32_le(data + block_size - 4, Nh);
|
184
|
+
}
|
185
|
+
block_func(h, data, 1);
|
186
|
+
*num = 0;
|
187
|
+
OPENSSL_memset(data, 0, block_size);
|
263
188
|
}
|
264
189
|
|
265
190
|
|
266
191
|
#if defined(__cplusplus)
|
267
192
|
} // extern C
|
268
193
|
#endif
|
194
|
+
|
195
|
+
#endif // OPENSSL_HEADER_DIGEST_MD32_COMMON_H
|