grpc 1.26.0 → 1.28.0
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 +1699 -1482
- data/etc/roots.pem +44 -0
- data/include/grpc/grpc_security.h +37 -15
- data/include/grpc/grpc_security_constants.h +27 -0
- data/include/grpc/impl/codegen/grpc_types.h +19 -0
- data/include/grpc/impl/codegen/port_platform.h +8 -1
- data/include/grpc/impl/codegen/sync.h +5 -3
- data/include/grpc/impl/codegen/sync_abseil.h +36 -0
- data/include/grpc/module.modulemap +3 -0
- data/{src/core/lib/json/json_common.h → include/grpc/support/sync_abseil.h} +7 -15
- data/src/core/ext/filters/client_channel/client_channel.cc +74 -32
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +31 -47
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -3
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
- data/src/core/ext/filters/client_channel/http_proxy.cc +8 -5
- data/src/core/ext/filters/client_channel/lb_policy.cc +4 -3
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +291 -0
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +83 -0
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +224 -367
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +88 -121
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +28 -57
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +18 -21
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +9 -13
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +85 -83
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +623 -767
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +3 -3
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +43 -75
- 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 +57 -70
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +1 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +3 -3
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +31 -7
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +228 -286
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +2 -2
- data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +37 -176
- data/src/core/ext/filters/client_channel/resolving_lb_policy.h +7 -11
- data/src/core/ext/filters/client_channel/service_config.cc +91 -160
- data/src/core/ext/filters/client_channel/service_config.h +14 -21
- data/src/core/ext/filters/client_channel/xds/xds_api.cc +1426 -229
- data/src/core/ext/filters/client_channel/xds/xds_api.h +214 -115
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +236 -339
- data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +32 -45
- data/src/core/ext/filters/client_channel/xds/xds_channel.h +3 -1
- data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +14 -9
- data/src/core/ext/filters/client_channel/xds/xds_client.cc +986 -252
- data/src/core/ext/filters/client_channel/xds/xds_client.h +84 -36
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +53 -131
- data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +119 -152
- data/src/core/ext/filters/message_size/message_size_filter.cc +32 -35
- data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +3 -6
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +6 -8
- data/src/core/ext/transport/chttp2/transport/writing.cc +1 -1
- data/src/core/ext/transport/inproc/inproc_transport.cc +22 -42
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +17 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +30 -0
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +27 -0
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +54 -0
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +46 -21
- data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +116 -29
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.c +4 -362
- data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +14 -1337
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +390 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +1411 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +29 -8
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +60 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +5 -3
- data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +6 -2
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +48 -5
- data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +154 -4
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +19 -15
- data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +46 -32
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +26 -4
- data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +70 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +42 -25
- data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +83 -25
- data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +43 -7
- data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +115 -0
- data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +7 -68
- data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +14 -201
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +91 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +240 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +1 -71
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +3 -228
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +88 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +258 -0
- data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +1 -0
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.c +30 -0
- data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +53 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +104 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +383 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +17 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +33 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +144 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +527 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +42 -0
- data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +112 -0
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.c +29 -0
- data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +53 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +199 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +17 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +33 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +793 -0
- data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +2936 -0
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +58 -0
- data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +134 -0
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.c +27 -0
- data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +53 -0
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +227 -0
- data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +725 -0
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +296 -0
- data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +1072 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +32 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +65 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +108 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +52 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +133 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +87 -0
- data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +258 -0
- data/src/core/ext/upb-generated/envoy/type/range.upb.c +11 -0
- data/src/core/ext/upb-generated/envoy/type/range.upb.h +27 -0
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.c +28 -0
- data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +62 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +88 -0
- data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +249 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +30 -27
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +64 -52
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +13 -5
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +34 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +48 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +104 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +17 -0
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +30 -0
- data/src/core/ext/upb-generated/validate/validate.upb.c +38 -34
- data/src/core/ext/upb-generated/validate/validate.upb.h +129 -99
- data/src/core/lib/channel/channel_trace.cc +32 -41
- data/src/core/lib/channel/channel_trace.h +3 -3
- data/src/core/lib/channel/channelz.cc +158 -248
- data/src/core/lib/channel/channelz.h +17 -10
- data/src/core/lib/channel/channelz_registry.cc +47 -74
- data/src/core/lib/channel/channelz_registry.h +4 -4
- data/src/core/lib/gpr/sync_abseil.cc +114 -0
- data/src/core/lib/gpr/sync_posix.cc +8 -5
- data/src/core/lib/gpr/sync_windows.cc +4 -2
- data/src/core/lib/gpr/time_precise.cc +1 -1
- data/src/core/lib/gprpp/host_port.cc +1 -1
- data/src/core/lib/gprpp/inlined_vector.h +1 -210
- data/src/core/lib/gprpp/memory.h +2 -6
- data/src/core/lib/gprpp/optional.h +6 -21
- data/src/core/lib/gprpp/string_view.h +5 -110
- data/src/core/lib/gprpp/sync.h +9 -0
- data/src/core/lib/iomgr/buffer_list.cc +36 -35
- data/src/core/lib/iomgr/error.h +4 -4
- data/src/core/lib/iomgr/ev_epollex_linux.cc +12 -4
- data/src/core/lib/iomgr/executor.cc +1 -1
- data/src/core/lib/iomgr/fork_posix.cc +4 -0
- data/src/core/lib/iomgr/load_file.cc +1 -0
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +87 -0
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +88 -0
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +14 -0
- data/src/core/lib/iomgr/socket_utils_posix.h +12 -0
- data/src/core/lib/iomgr/tcp_client_posix.cc +17 -17
- data/src/core/lib/iomgr/tcp_client_posix.h +6 -6
- data/src/core/lib/iomgr/tcp_custom.h +3 -0
- data/src/core/lib/iomgr/tcp_posix.cc +608 -56
- data/src/core/lib/iomgr/tcp_server_custom.cc +15 -2
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +8 -0
- data/src/core/lib/iomgr/work_serializer.cc +155 -0
- data/src/core/lib/iomgr/work_serializer.h +65 -0
- data/src/core/lib/json/json.h +208 -68
- data/src/core/lib/json/json_reader.cc +511 -319
- data/src/core/lib/json/json_writer.cc +201 -110
- data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +7 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.h +5 -1
- data/src/core/lib/security/credentials/credentials.h +10 -1
- data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -1
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +10 -8
- data/src/core/lib/security/credentials/jwt/json_token.cc +26 -56
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +8 -18
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +149 -159
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -3
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +38 -35
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -1
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +6 -4
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -1
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +20 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +9 -0
- data/src/core/lib/security/credentials/tls/{spiffe_credentials.cc → tls_credentials.cc} +23 -24
- data/src/core/lib/security/credentials/tls/{spiffe_credentials.h → tls_credentials.h} +9 -9
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -0
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +22 -2
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +2 -2
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +2 -2
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +31 -6
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +3 -15
- data/src/core/lib/security/security_connector/ssl_utils.cc +48 -4
- data/src/core/lib/security/security_connector/ssl_utils.h +12 -1
- data/src/core/lib/security/security_connector/tls/{spiffe_security_connector.cc → tls_security_connector.cc} +106 -70
- data/src/core/lib/security/security_connector/tls/{spiffe_security_connector.h → tls_security_connector.h} +22 -19
- data/src/core/lib/security/transport/client_auth_filter.cc +33 -0
- data/src/core/lib/security/transport/security_handshaker.cc +2 -2
- data/src/core/lib/security/util/json_util.cc +22 -15
- data/src/core/lib/security/util/json_util.h +2 -2
- data/src/core/lib/surface/completion_queue.cc +22 -1
- data/src/core/lib/surface/version.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +12 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +3 -3
- data/src/core/tsi/fake_transport_security.cc +7 -3
- data/src/core/tsi/fake_transport_security.h +2 -0
- data/src/core/tsi/grpc_shadow_boringssl.h +1333 -1319
- data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +1 -1
- data/src/core/tsi/ssl_transport_security.cc +145 -8
- data/src/core/tsi/ssl_transport_security.h +15 -1
- data/src/core/tsi/transport_security.cc +13 -0
- data/src/core/tsi/transport_security_grpc.cc +2 -2
- data/src/core/tsi/transport_security_grpc.h +2 -2
- data/src/core/tsi/transport_security_interface.h +12 -0
- data/src/ruby/bin/math_pb.rb +5 -5
- data/src/ruby/ext/grpc/rb_call_credentials.c +4 -1
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +4 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +3 -3
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +23 -13
- data/third_party/abseil-cpp/absl/algorithm/algorithm.h +159 -0
- data/third_party/abseil-cpp/absl/base/attributes.h +621 -0
- data/third_party/abseil-cpp/absl/base/call_once.h +226 -0
- data/third_party/abseil-cpp/absl/base/casts.h +184 -0
- data/third_party/abseil-cpp/absl/base/config.h +671 -0
- data/third_party/abseil-cpp/absl/base/const_init.h +76 -0
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +129 -0
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +389 -0
- data/third_party/abseil-cpp/absl/base/internal/atomic_hook.h +200 -0
- data/third_party/abseil-cpp/absl/base/internal/bits.h +218 -0
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +107 -0
- data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +94 -0
- data/third_party/abseil-cpp/absl/base/internal/endian.h +266 -0
- data/third_party/abseil-cpp/absl/base/internal/errno_saver.h +43 -0
- data/third_party/abseil-cpp/absl/base/internal/hide_ptr.h +51 -0
- data/third_party/abseil-cpp/absl/base/internal/identity.h +37 -0
- data/third_party/abseil-cpp/absl/base/internal/inline_variable.h +107 -0
- data/third_party/abseil-cpp/absl/base/internal/invoke.h +187 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +107 -0
- data/third_party/abseil-cpp/absl/base/internal/per_thread_tls.h +52 -0
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +240 -0
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +183 -0
- data/third_party/abseil-cpp/absl/base/internal/scheduling_mode.h +58 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +233 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +243 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +35 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +66 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +46 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc +81 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +93 -0
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +37 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +416 -0
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +66 -0
- data/third_party/abseil-cpp/absl/base/internal/thread_annotations.h +271 -0
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +152 -0
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +259 -0
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +108 -0
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.h +75 -0
- data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +66 -0
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +158 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +140 -0
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +124 -0
- data/third_party/abseil-cpp/absl/base/log_severity.cc +27 -0
- data/third_party/abseil-cpp/absl/base/log_severity.h +121 -0
- data/third_party/abseil-cpp/absl/base/macros.h +220 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +181 -0
- data/third_party/abseil-cpp/absl/base/options.h +211 -0
- data/third_party/abseil-cpp/absl/base/policy_checks.h +111 -0
- data/third_party/abseil-cpp/absl/base/port.h +26 -0
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +280 -0
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +848 -0
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +265 -0
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +892 -0
- data/third_party/abseil-cpp/absl/memory/memory.h +695 -0
- data/third_party/abseil-cpp/absl/meta/type_traits.h +759 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +404 -0
- data/third_party/abseil-cpp/absl/numeric/int128.h +1091 -0
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +302 -0
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +308 -0
- data/third_party/abseil-cpp/absl/strings/ascii.cc +200 -0
- data/third_party/abseil-cpp/absl/strings/ascii.h +242 -0
- data/third_party/abseil-cpp/absl/strings/charconv.cc +984 -0
- data/third_party/abseil-cpp/absl/strings/charconv.h +119 -0
- data/third_party/abseil-cpp/absl/strings/escaping.cc +949 -0
- data/third_party/abseil-cpp/absl/strings/escaping.h +164 -0
- data/third_party/abseil-cpp/absl/strings/internal/char_map.h +156 -0
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +359 -0
- data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +423 -0
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +504 -0
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.h +99 -0
- data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +180 -0
- data/third_party/abseil-cpp/absl/strings/internal/escaping.h +58 -0
- data/third_party/abseil-cpp/absl/strings/internal/memutil.cc +112 -0
- data/third_party/abseil-cpp/absl/strings/internal/memutil.h +148 -0
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +36 -0
- data/third_party/abseil-cpp/absl/strings/internal/ostringstream.h +89 -0
- data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +73 -0
- data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +248 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +388 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +432 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +245 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +209 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +326 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +51 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +415 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +493 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +23 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +72 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +104 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +334 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +333 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +314 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +455 -0
- data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +53 -0
- data/third_party/abseil-cpp/absl/strings/internal/utf8.h +50 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +40 -0
- data/third_party/abseil-cpp/absl/strings/match.h +90 -0
- data/third_party/abseil-cpp/absl/strings/numbers.cc +965 -0
- data/third_party/abseil-cpp/absl/strings/numbers.h +266 -0
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +246 -0
- data/third_party/abseil-cpp/absl/strings/str_cat.h +408 -0
- data/third_party/abseil-cpp/absl/strings/str_format.h +537 -0
- data/third_party/abseil-cpp/absl/strings/str_join.h +293 -0
- data/third_party/abseil-cpp/absl/strings/str_replace.cc +82 -0
- data/third_party/abseil-cpp/absl/strings/str_replace.h +219 -0
- data/third_party/abseil-cpp/absl/strings/str_split.cc +139 -0
- data/third_party/abseil-cpp/absl/strings/str_split.h +513 -0
- data/third_party/abseil-cpp/absl/strings/string_view.cc +235 -0
- data/third_party/abseil-cpp/absl/strings/string_view.h +622 -0
- data/third_party/abseil-cpp/absl/strings/strip.h +91 -0
- data/third_party/abseil-cpp/absl/strings/substitute.cc +171 -0
- data/third_party/abseil-cpp/absl/strings/substitute.h +693 -0
- data/third_party/abseil-cpp/absl/types/bad_optional_access.cc +48 -0
- data/third_party/abseil-cpp/absl/types/bad_optional_access.h +78 -0
- data/third_party/abseil-cpp/absl/types/internal/optional.h +396 -0
- data/third_party/abseil-cpp/absl/types/internal/span.h +128 -0
- data/third_party/abseil-cpp/absl/types/optional.h +776 -0
- data/third_party/abseil-cpp/absl/types/span.h +713 -0
- data/third_party/abseil-cpp/absl/utility/utility.h +350 -0
- data/{src/boringssl → third_party/boringssl-with-bazel}/err_data.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_bitstr.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_bool.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_d2i_fp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_dup.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_enum.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_gentm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_i2d_fp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_int.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_mbstr.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_object.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_octet.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_print.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_strnid.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_time.c +3 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_type.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_utctm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_utf8.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn1_lib.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn1_locl.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn1_par.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn_pack.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_enum.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_int.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_string.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_dec.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_enc.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_fre.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_new.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_typ.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_utl.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/time_support.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/base64/base64.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/bio.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/bio_mem.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/connect.c +3 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/fd.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/file.c +5 -6
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/hexdump.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/pair.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/printf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/socket.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/socket_helper.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bn_extra/bn_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bn_extra/convert.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/buf/buf.c +10 -69
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/asn1_compat.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/ber.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/cbb.c +41 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/cbs.c +60 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/unicode.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/chacha/chacha.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/chacha/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/cipher_extra.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/derive_key.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_aesccm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_aesctrhmac.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_aesgcmsiv.c +8 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_chacha20poly1305.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_null.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_rc2.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_rc4.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_tls.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/tls_cbc.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cmac/cmac.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/conf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/conf_def.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-aarch64-fuchsia.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-aarch64-linux.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-arm-linux.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-arm-linux.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-arm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-intel.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-ppc64le.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/crypto.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/curve25519/spake25519.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/check.c +3 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/dh.c +1 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/dh_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/params.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/digest_extra/digest_extra.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dsa/dsa.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dsa/dsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ec_extra/ec_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ec_extra/ec_derive.c +2 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ecdh_extra/ecdh_extra.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ecdsa_extra/ecdsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/engine/engine.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/err/err.c +6 -6
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/err/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/digestsign.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp_ctx.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_dsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ec.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ec_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ed25519.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ed25519_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_rsa.c +14 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_rsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_x25519.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_x25519_asn1.c +1 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/pbkdf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/print.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/scrypt.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/sign.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ex_data.c +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +108 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +1282 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/aes/internal.h +5 -7
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/aes/key_wrap.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/aes/mode_wrappers.c +0 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bcm.c +2 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/add.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/asm/x86_64-gcc.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/bn.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/bytes.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/cmp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/ctx.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/div.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/div_extra.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/exponentiation.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/gcd.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/gcd_extra.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/generic.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/jacobi.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/montgomery.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/montgomery_inv.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/mul.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/prime.c +11 -12
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/random.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/rsaz_exp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/rsaz_exp.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/shift.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/sqrt.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/aead.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/cipher.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/e_aes.c +3 -5
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/e_des.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/delocate.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/des/des.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/des/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/digest.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/digests.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/md32_common.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/ec.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/ec_key.c +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/ec_montgomery.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/felem.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/oct.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p224-64.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p256-x86_64-table.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p256-x86_64.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p256-x86_64.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/scalar.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/simple.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/simple_mul.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/util.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/wnaf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ecdh/ecdh.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ecdsa/ecdsa.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/fips_shared_support.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/hmac/hmac.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/is_fips.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md4/md4.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md5/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md5/md5.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/cbc.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/cfb.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/ctr.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/gcm.c +45 -193
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +304 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/internal.h +8 -18
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/ofb.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/polyval.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/ctrdrbg.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/rand.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/urandom.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/blinding.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/padding.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/rsa.c +7 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/rsa_impl.c +60 -51
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/self_check/self_check.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha1-altivec.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha256.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha512.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/tls/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/tls/kdf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/hkdf/hkdf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/hrss/hrss.c +210 -311
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/hrss/internal.h +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/internal.h +21 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/lhash/lhash.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/mem.c +70 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/obj/obj.c +16 -21
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/obj/obj_dat.h +27 -6
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/obj/obj_xref.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_all.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_info.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_lib.c +7 -7
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_oth.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_pk8.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_pkey.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_xaux.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs7/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs7/pkcs7.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs7/pkcs7_x509.c +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/p5_pbev2.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/pkcs8.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/pkcs8_x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/poly1305.c +2 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/poly1305_arm.c +21 -20
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/poly1305_vec.c +34 -17
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pool/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pool/pool.c +1 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/deterministic.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/forkunsafe.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/fuchsia.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/rand_extra.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/windows.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rc4/rc4.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/refcount_c11.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/refcount_lock.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rsa_extra/rsa_asn1.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rsa_extra/rsa_print.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/siphash/siphash.c +3 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/stack/stack.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread_none.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread_pthread.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread_win.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_digest.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_sign.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_strex.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_verify.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/algorithm.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/asn1_gen.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/by_dir.c +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/by_file.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/charmap.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/i2d_pr.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/rsa_pss.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_crl.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_req.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_x509a.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/vpm_int.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_att.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_cmp.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_d2.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_def.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_ext.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_lu.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_obj.c +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_r2x.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_req.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_set.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_trs.c +1 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_txt.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_v3.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_vfy.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_vpm.c +3 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509cset.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509name.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509rset.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509spki.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_algor.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_all.c +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_attrib.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_crl.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_exten.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_info.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_name.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_pkey.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_pubkey.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_req.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_sig.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_spki.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_val.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_x509.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_x509a.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/ext_dat.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_cache.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_data.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_int.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_lib.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_map.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_node.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_tree.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_akey.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_akeya.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_alt.c +3 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_bcons.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_bitst.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_conf.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_cpols.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_crld.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_enum.c +2 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_extku.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_genn.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ia5.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_info.c +4 -5
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_int.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_lib.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ncons.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ocsp.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pci.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pcia.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pcons.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pku.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pmaps.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_prn.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_purp.c +2 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_skey.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_sxnet.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_utl.c +11 -12
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/aead.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/aes.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/arm_arch.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1_mac.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1t.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/base.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/base64.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/bio.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/blowfish.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/bn.h +32 -20
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/buf.h +9 -9
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/buffer.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/bytestring.h +34 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cast.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/chacha.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cipher.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cmac.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/conf.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cpu.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/crypto.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/curve25519.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/des.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/dh.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/digest.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/dsa.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/dtls1.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/e_os2.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ec.h +11 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ec_key.h +4 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ecdh.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ecdsa.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/engine.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/err.h +11 -9
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/evp.h +20 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ex_data.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/hkdf.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/hmac.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/hrss.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/is_boringssl.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/lhash.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/md4.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/md5.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/mem.h +17 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/nid.h +9 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/obj.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/obj_mac.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/objects.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/opensslconf.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/opensslv.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ossl_typ.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pem.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs12.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs7.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs8.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/poly1305.h +5 -7
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pool.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/rand.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/rc4.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ripemd.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/rsa.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/safestack.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/sha.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/siphash.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/span.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/srtp.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ssl.h +10 -20
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ssl3.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/stack.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/thread.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/tls1.h +0 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/type_check.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/x509.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/x509_vfy.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/x509v3.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/bio_ssl.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_both.cc +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_lib.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_pkt.cc +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_srtp.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/dtls_method.cc +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/dtls_record.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handoff.cc +126 -29
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handshake.cc +5 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handshake_client.cc +24 -13
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handshake_server.cc +1 -5
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/internal.h +32 -26
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/s3_both.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/s3_lib.cc +2 -3
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/s3_pkt.cc +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_aead_ctx.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_asn1.cc +1 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_buffer.cc +34 -15
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_cert.cc +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_cipher.cc +0 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_file.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_key_share.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_lib.cc +13 -14
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_privkey.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_session.cc +2 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_stat.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_transcript.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_versions.cc +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_x509.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/t1_enc.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/t1_lib.cc +11 -171
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_both.cc +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_client.cc +3 -4
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_enc.cc +5 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_server.cc +78 -101
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls_method.cc +1 -1
- data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls_record.cc +7 -2
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/curve25519.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/curve25519_32.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/curve25519_64.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/curve25519_tables.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/internal.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/p256.c +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/p256_32.h +0 -0
- data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/p256_64.h +0 -0
- data/third_party/upb/upb/decode.c +4 -0
- data/third_party/upb/upb/port.c +0 -1
- data/third_party/upb/upb/port_def.inc +1 -3
- data/third_party/upb/upb/table.c +2 -1
- metadata +680 -505
- data/src/core/lib/iomgr/logical_thread.cc +0 -103
- data/src/core/lib/iomgr/logical_thread.h +0 -52
- data/src/core/lib/json/json.cc +0 -94
- data/src/core/lib/json/json_reader.h +0 -146
- data/src/core/lib/json/json_string.cc +0 -367
- data/src/core/lib/json/json_writer.h +0 -84
- data/third_party/boringssl/crypto/fipsmodule/aes/aes.c +0 -860
@@ -21,95 +21,264 @@
|
|
21
21
|
#include <string.h>
|
22
22
|
|
23
23
|
#include <grpc/support/log.h>
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
24
|
+
#include <grpc/support/string_util.h>
|
25
|
+
|
26
|
+
#include "src/core/lib/json/json.h"
|
27
|
+
|
28
|
+
#define GRPC_JSON_MAX_DEPTH 255
|
29
|
+
#define GRPC_JSON_MAX_ERRORS 16
|
30
|
+
|
31
|
+
namespace grpc_core {
|
32
|
+
|
33
|
+
namespace {
|
34
|
+
|
35
|
+
class JsonReader {
|
36
|
+
public:
|
37
|
+
static grpc_error* Parse(StringView input, Json* output);
|
38
|
+
|
39
|
+
private:
|
40
|
+
enum class Status {
|
41
|
+
GRPC_JSON_DONE, /* The parser finished successfully. */
|
42
|
+
GRPC_JSON_PARSE_ERROR, /* The parser found an error in the json stream. */
|
43
|
+
GRPC_JSON_INTERNAL_ERROR /* The parser got an internal error. */
|
44
|
+
};
|
45
|
+
|
46
|
+
enum class State {
|
47
|
+
GRPC_JSON_STATE_OBJECT_KEY_BEGIN,
|
48
|
+
GRPC_JSON_STATE_OBJECT_KEY_STRING,
|
49
|
+
GRPC_JSON_STATE_OBJECT_KEY_END,
|
50
|
+
GRPC_JSON_STATE_VALUE_BEGIN,
|
51
|
+
GRPC_JSON_STATE_VALUE_STRING,
|
52
|
+
GRPC_JSON_STATE_STRING_ESCAPE,
|
53
|
+
GRPC_JSON_STATE_STRING_ESCAPE_U1,
|
54
|
+
GRPC_JSON_STATE_STRING_ESCAPE_U2,
|
55
|
+
GRPC_JSON_STATE_STRING_ESCAPE_U3,
|
56
|
+
GRPC_JSON_STATE_STRING_ESCAPE_U4,
|
57
|
+
GRPC_JSON_STATE_VALUE_NUMBER,
|
58
|
+
GRPC_JSON_STATE_VALUE_NUMBER_WITH_DECIMAL,
|
59
|
+
GRPC_JSON_STATE_VALUE_NUMBER_ZERO,
|
60
|
+
GRPC_JSON_STATE_VALUE_NUMBER_DOT,
|
61
|
+
GRPC_JSON_STATE_VALUE_NUMBER_E,
|
62
|
+
GRPC_JSON_STATE_VALUE_NUMBER_EPM,
|
63
|
+
GRPC_JSON_STATE_VALUE_TRUE_R,
|
64
|
+
GRPC_JSON_STATE_VALUE_TRUE_U,
|
65
|
+
GRPC_JSON_STATE_VALUE_TRUE_E,
|
66
|
+
GRPC_JSON_STATE_VALUE_FALSE_A,
|
67
|
+
GRPC_JSON_STATE_VALUE_FALSE_L,
|
68
|
+
GRPC_JSON_STATE_VALUE_FALSE_S,
|
69
|
+
GRPC_JSON_STATE_VALUE_FALSE_E,
|
70
|
+
GRPC_JSON_STATE_VALUE_NULL_U,
|
71
|
+
GRPC_JSON_STATE_VALUE_NULL_L1,
|
72
|
+
GRPC_JSON_STATE_VALUE_NULL_L2,
|
73
|
+
GRPC_JSON_STATE_VALUE_END,
|
74
|
+
GRPC_JSON_STATE_END
|
75
|
+
};
|
76
|
+
|
77
|
+
/* The first non-unicode value is 0x110000. But let's pick
|
78
|
+
* a value high enough to start our error codes from. These
|
79
|
+
* values are safe to return from the read_char function.
|
80
|
+
*/
|
81
|
+
static constexpr uint32_t GRPC_JSON_READ_CHAR_EOF = 0x7ffffff0;
|
82
|
+
|
83
|
+
explicit JsonReader(StringView input)
|
84
|
+
: original_input_(reinterpret_cast<const uint8_t*>(input.data())),
|
85
|
+
input_(original_input_),
|
86
|
+
remaining_input_(input.size()) {}
|
87
|
+
|
88
|
+
Status Run();
|
89
|
+
uint32_t ReadChar();
|
90
|
+
bool IsComplete();
|
91
|
+
|
92
|
+
size_t CurrentIndex() const { return input_ - original_input_ - 1; }
|
93
|
+
|
94
|
+
void StringAddChar(uint32_t c);
|
95
|
+
void StringAddUtf32(uint32_t c);
|
96
|
+
|
97
|
+
Json* CreateAndLinkValue();
|
98
|
+
bool StartContainer(Json::Type type);
|
99
|
+
void EndContainer();
|
100
|
+
void SetKey();
|
101
|
+
void SetString();
|
102
|
+
bool SetNumber();
|
103
|
+
void SetTrue();
|
104
|
+
void SetFalse();
|
105
|
+
void SetNull();
|
106
|
+
|
107
|
+
const uint8_t* original_input_;
|
108
|
+
const uint8_t* input_;
|
109
|
+
size_t remaining_input_;
|
110
|
+
|
111
|
+
State state_ = State::GRPC_JSON_STATE_VALUE_BEGIN;
|
112
|
+
bool escaped_string_was_key_ = false;
|
113
|
+
bool container_just_begun_ = false;
|
114
|
+
uint16_t unicode_char_ = 0;
|
115
|
+
uint16_t unicode_high_surrogate_ = 0;
|
116
|
+
std::vector<grpc_error*> errors_;
|
117
|
+
bool truncated_errors_ = false;
|
118
|
+
|
119
|
+
Json root_value_;
|
120
|
+
std::vector<Json*> stack_;
|
121
|
+
|
122
|
+
std::string key_;
|
123
|
+
std::string string_;
|
124
|
+
};
|
125
|
+
|
126
|
+
void JsonReader::StringAddChar(uint32_t c) {
|
127
|
+
string_.push_back(static_cast<uint8_t>(c));
|
29
128
|
}
|
30
129
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
130
|
+
void JsonReader::StringAddUtf32(uint32_t c) {
|
131
|
+
if (c <= 0x7f) {
|
132
|
+
StringAddChar(c);
|
133
|
+
} else if (c <= 0x7ff) {
|
134
|
+
uint32_t b1 = 0xc0 | ((c >> 6) & 0x1f);
|
135
|
+
uint32_t b2 = 0x80 | (c & 0x3f);
|
136
|
+
StringAddChar(b1);
|
137
|
+
StringAddChar(b2);
|
138
|
+
} else if (c <= 0xffff) {
|
139
|
+
uint32_t b1 = 0xe0 | ((c >> 12) & 0x0f);
|
140
|
+
uint32_t b2 = 0x80 | ((c >> 6) & 0x3f);
|
141
|
+
uint32_t b3 = 0x80 | (c & 0x3f);
|
142
|
+
StringAddChar(b1);
|
143
|
+
StringAddChar(b2);
|
144
|
+
StringAddChar(b3);
|
145
|
+
} else if (c <= 0x1fffff) {
|
146
|
+
uint32_t b1 = 0xf0 | ((c >> 18) & 0x07);
|
147
|
+
uint32_t b2 = 0x80 | ((c >> 12) & 0x3f);
|
148
|
+
uint32_t b3 = 0x80 | ((c >> 6) & 0x3f);
|
149
|
+
uint32_t b4 = 0x80 | (c & 0x3f);
|
150
|
+
StringAddChar(b1);
|
151
|
+
StringAddChar(b2);
|
152
|
+
StringAddChar(b3);
|
153
|
+
StringAddChar(b4);
|
154
|
+
}
|
38
155
|
}
|
39
156
|
|
40
|
-
|
41
|
-
|
157
|
+
uint32_t JsonReader::ReadChar() {
|
158
|
+
if (remaining_input_ == 0) return GRPC_JSON_READ_CHAR_EOF;
|
159
|
+
const uint32_t r = *input_++;
|
160
|
+
--remaining_input_;
|
161
|
+
if (r == 0) {
|
162
|
+
remaining_input_ = 0;
|
163
|
+
return GRPC_JSON_READ_CHAR_EOF;
|
164
|
+
}
|
165
|
+
return r;
|
42
166
|
}
|
43
167
|
|
44
|
-
|
45
|
-
|
46
|
-
|
168
|
+
Json* JsonReader::CreateAndLinkValue() {
|
169
|
+
Json* value;
|
170
|
+
if (stack_.empty()) {
|
171
|
+
value = &root_value_;
|
172
|
+
} else {
|
173
|
+
Json* parent = stack_.back();
|
174
|
+
if (parent->type() == Json::Type::OBJECT) {
|
175
|
+
if (parent->object_value().find(key_) != parent->object_value().end()) {
|
176
|
+
if (errors_.size() == GRPC_JSON_MAX_ERRORS) {
|
177
|
+
truncated_errors_ = true;
|
178
|
+
} else {
|
179
|
+
char* msg;
|
180
|
+
gpr_asprintf(&msg, "duplicate key \"%s\" at index %" PRIuPTR,
|
181
|
+
key_.c_str(), CurrentIndex());
|
182
|
+
errors_.push_back(GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg));
|
183
|
+
gpr_free(msg);
|
184
|
+
}
|
185
|
+
}
|
186
|
+
value = &(*parent->mutable_object())[std::move(key_)];
|
187
|
+
} else {
|
188
|
+
GPR_ASSERT(parent->type() == Json::Type::ARRAY);
|
189
|
+
parent->mutable_array()->emplace_back();
|
190
|
+
value = &parent->mutable_array()->back();
|
191
|
+
}
|
192
|
+
}
|
193
|
+
return value;
|
47
194
|
}
|
48
195
|
|
49
|
-
|
50
|
-
|
51
|
-
|
196
|
+
bool JsonReader::StartContainer(Json::Type type) {
|
197
|
+
if (stack_.size() == GRPC_JSON_MAX_DEPTH) {
|
198
|
+
if (errors_.size() == GRPC_JSON_MAX_ERRORS) {
|
199
|
+
truncated_errors_ = true;
|
200
|
+
} else {
|
201
|
+
char* msg;
|
202
|
+
gpr_asprintf(&msg, "exceeded max stack depth (%d) at index %" PRIuPTR,
|
203
|
+
GRPC_JSON_MAX_DEPTH, CurrentIndex());
|
204
|
+
errors_.push_back(GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg));
|
205
|
+
gpr_free(msg);
|
206
|
+
}
|
207
|
+
return false;
|
208
|
+
}
|
209
|
+
Json* value = CreateAndLinkValue();
|
210
|
+
if (type == Json::Type::OBJECT) {
|
211
|
+
*value = Json::Object();
|
212
|
+
} else {
|
213
|
+
GPR_ASSERT(type == Json::Type::ARRAY);
|
214
|
+
*value = Json::Array();
|
215
|
+
}
|
216
|
+
stack_.push_back(value);
|
217
|
+
return true;
|
52
218
|
}
|
53
219
|
|
54
|
-
|
55
|
-
|
220
|
+
void JsonReader::EndContainer() {
|
221
|
+
GPR_ASSERT(!stack_.empty());
|
222
|
+
stack_.pop_back();
|
56
223
|
}
|
57
224
|
|
58
|
-
|
59
|
-
|
225
|
+
void JsonReader::SetKey() {
|
226
|
+
key_ = std::move(string_);
|
227
|
+
string_.clear();
|
60
228
|
}
|
61
229
|
|
62
|
-
|
63
|
-
|
230
|
+
void JsonReader::SetString() {
|
231
|
+
Json* value = CreateAndLinkValue();
|
232
|
+
*value = std::move(string_);
|
233
|
+
string_.clear();
|
64
234
|
}
|
65
235
|
|
66
|
-
|
67
|
-
|
236
|
+
bool JsonReader::SetNumber() {
|
237
|
+
Json* value = CreateAndLinkValue();
|
238
|
+
*value = Json(std::move(string_), /*is_number=*/true);
|
239
|
+
string_.clear();
|
240
|
+
return true;
|
68
241
|
}
|
69
242
|
|
70
|
-
|
71
|
-
|
243
|
+
void JsonReader::SetTrue() {
|
244
|
+
Json* value = CreateAndLinkValue();
|
245
|
+
*value = true;
|
246
|
+
string_.clear();
|
72
247
|
}
|
73
248
|
|
74
|
-
|
75
|
-
|
249
|
+
void JsonReader::SetFalse() {
|
250
|
+
Json* value = CreateAndLinkValue();
|
251
|
+
*value = false;
|
252
|
+
string_.clear();
|
76
253
|
}
|
77
254
|
|
78
|
-
|
79
|
-
void grpc_json_reader_init(grpc_json_reader* reader,
|
80
|
-
grpc_json_reader_vtable* vtable, void* userdata) {
|
81
|
-
memset(reader, 0, sizeof(*reader));
|
82
|
-
reader->vtable = vtable;
|
83
|
-
reader->userdata = userdata;
|
84
|
-
json_reader_string_clear(reader);
|
85
|
-
reader->state = GRPC_JSON_STATE_VALUE_BEGIN;
|
86
|
-
}
|
255
|
+
void JsonReader::SetNull() { CreateAndLinkValue(); }
|
87
256
|
|
88
|
-
|
89
|
-
return ((
|
90
|
-
|
91
|
-
(reader->state == GRPC_JSON_STATE_VALUE_END)));
|
257
|
+
bool JsonReader::IsComplete() {
|
258
|
+
return (stack_.empty() && (state_ == State::GRPC_JSON_STATE_END ||
|
259
|
+
state_ == State::GRPC_JSON_STATE_VALUE_END));
|
92
260
|
}
|
93
261
|
|
94
|
-
|
95
|
-
|
262
|
+
/* Call this function to start parsing the input. It will return the following:
|
263
|
+
* . GRPC_JSON_DONE if the input got eof, and the parsing finished
|
264
|
+
* successfully.
|
265
|
+
* . GRPC_JSON_PARSE_ERROR if the input was somehow invalid.
|
266
|
+
* . GRPC_JSON_INTERNAL_ERROR if the parser somehow ended into an invalid
|
267
|
+
* internal state.
|
268
|
+
*/
|
269
|
+
JsonReader::Status JsonReader::Run() {
|
270
|
+
uint32_t c;
|
96
271
|
|
97
272
|
/* This state-machine is a strict implementation of ECMA-404 */
|
98
|
-
|
99
|
-
c =
|
273
|
+
while (true) {
|
274
|
+
c = ReadChar();
|
100
275
|
switch (c) {
|
101
|
-
/* Let's process the error
|
102
|
-
case GRPC_JSON_READ_CHAR_ERROR:
|
103
|
-
return GRPC_JSON_READ_ERROR;
|
104
|
-
|
105
|
-
case GRPC_JSON_READ_CHAR_EAGAIN:
|
106
|
-
return GRPC_JSON_EAGAIN;
|
107
|
-
|
276
|
+
/* Let's process the error case first. */
|
108
277
|
case GRPC_JSON_READ_CHAR_EOF:
|
109
|
-
if (
|
110
|
-
return GRPC_JSON_DONE;
|
278
|
+
if (IsComplete()) {
|
279
|
+
return Status::GRPC_JSON_DONE;
|
111
280
|
} else {
|
112
|
-
return GRPC_JSON_PARSE_ERROR;
|
281
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
113
282
|
}
|
114
283
|
break;
|
115
284
|
|
@@ -118,34 +287,33 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader* reader) {
|
|
118
287
|
case '\t':
|
119
288
|
case '\n':
|
120
289
|
case '\r':
|
121
|
-
switch (
|
122
|
-
case GRPC_JSON_STATE_OBJECT_KEY_BEGIN:
|
123
|
-
case GRPC_JSON_STATE_OBJECT_KEY_END:
|
124
|
-
case GRPC_JSON_STATE_VALUE_BEGIN:
|
125
|
-
case GRPC_JSON_STATE_VALUE_END:
|
126
|
-
case GRPC_JSON_STATE_END:
|
127
|
-
break;
|
128
|
-
|
129
|
-
case GRPC_JSON_STATE_OBJECT_KEY_STRING:
|
130
|
-
case GRPC_JSON_STATE_VALUE_STRING:
|
131
|
-
if (c != ' ') return GRPC_JSON_PARSE_ERROR;
|
132
|
-
if (
|
133
|
-
return GRPC_JSON_PARSE_ERROR;
|
134
|
-
|
290
|
+
switch (state_) {
|
291
|
+
case State::GRPC_JSON_STATE_OBJECT_KEY_BEGIN:
|
292
|
+
case State::GRPC_JSON_STATE_OBJECT_KEY_END:
|
293
|
+
case State::GRPC_JSON_STATE_VALUE_BEGIN:
|
294
|
+
case State::GRPC_JSON_STATE_VALUE_END:
|
295
|
+
case State::GRPC_JSON_STATE_END:
|
296
|
+
break;
|
297
|
+
|
298
|
+
case State::GRPC_JSON_STATE_OBJECT_KEY_STRING:
|
299
|
+
case State::GRPC_JSON_STATE_VALUE_STRING:
|
300
|
+
if (c != ' ') return Status::GRPC_JSON_PARSE_ERROR;
|
301
|
+
if (unicode_high_surrogate_ != 0) {
|
302
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
303
|
+
}
|
304
|
+
StringAddChar(c);
|
135
305
|
break;
|
136
306
|
|
137
|
-
case GRPC_JSON_STATE_VALUE_NUMBER:
|
138
|
-
case GRPC_JSON_STATE_VALUE_NUMBER_WITH_DECIMAL:
|
139
|
-
case GRPC_JSON_STATE_VALUE_NUMBER_ZERO:
|
140
|
-
case GRPC_JSON_STATE_VALUE_NUMBER_EPM:
|
141
|
-
|
142
|
-
|
143
|
-
json_reader_string_clear(reader);
|
144
|
-
reader->state = GRPC_JSON_STATE_VALUE_END;
|
307
|
+
case State::GRPC_JSON_STATE_VALUE_NUMBER:
|
308
|
+
case State::GRPC_JSON_STATE_VALUE_NUMBER_WITH_DECIMAL:
|
309
|
+
case State::GRPC_JSON_STATE_VALUE_NUMBER_ZERO:
|
310
|
+
case State::GRPC_JSON_STATE_VALUE_NUMBER_EPM:
|
311
|
+
if (!SetNumber()) return Status::GRPC_JSON_PARSE_ERROR;
|
312
|
+
state_ = State::GRPC_JSON_STATE_VALUE_END;
|
145
313
|
break;
|
146
314
|
|
147
315
|
default:
|
148
|
-
return GRPC_JSON_PARSE_ERROR;
|
316
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
149
317
|
}
|
150
318
|
break;
|
151
319
|
|
@@ -153,182 +321,171 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader* reader) {
|
|
153
321
|
case ',':
|
154
322
|
case '}':
|
155
323
|
case ']':
|
156
|
-
switch (
|
157
|
-
case GRPC_JSON_STATE_OBJECT_KEY_STRING:
|
158
|
-
case GRPC_JSON_STATE_VALUE_STRING:
|
159
|
-
if (
|
160
|
-
return GRPC_JSON_PARSE_ERROR;
|
324
|
+
switch (state_) {
|
325
|
+
case State::GRPC_JSON_STATE_OBJECT_KEY_STRING:
|
326
|
+
case State::GRPC_JSON_STATE_VALUE_STRING:
|
327
|
+
if (unicode_high_surrogate_ != 0) {
|
328
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
161
329
|
}
|
162
|
-
|
163
|
-
break;
|
164
|
-
|
165
|
-
case GRPC_JSON_STATE_VALUE_NUMBER:
|
166
|
-
case GRPC_JSON_STATE_VALUE_NUMBER_WITH_DECIMAL:
|
167
|
-
case GRPC_JSON_STATE_VALUE_NUMBER_ZERO:
|
168
|
-
case GRPC_JSON_STATE_VALUE_NUMBER_EPM:
|
169
|
-
if (
|
170
|
-
return GRPC_JSON_PARSE_ERROR;
|
171
|
-
} else if (
|
172
|
-
|
173
|
-
|
174
|
-
return GRPC_JSON_PARSE_ERROR;
|
330
|
+
StringAddChar(c);
|
331
|
+
break;
|
332
|
+
|
333
|
+
case State::GRPC_JSON_STATE_VALUE_NUMBER:
|
334
|
+
case State::GRPC_JSON_STATE_VALUE_NUMBER_WITH_DECIMAL:
|
335
|
+
case State::GRPC_JSON_STATE_VALUE_NUMBER_ZERO:
|
336
|
+
case State::GRPC_JSON_STATE_VALUE_NUMBER_EPM:
|
337
|
+
if (stack_.empty()) {
|
338
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
339
|
+
} else if (c == '}' &&
|
340
|
+
stack_.back()->type() != Json::Type::OBJECT) {
|
341
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
342
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
343
|
+
} else if (c == ']' && stack_.back()->type() != Json::Type::ARRAY) {
|
344
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
175
345
|
}
|
176
|
-
|
177
|
-
|
178
|
-
json_reader_string_clear(reader);
|
179
|
-
reader->state = GRPC_JSON_STATE_VALUE_END;
|
346
|
+
if (!SetNumber()) return Status::GRPC_JSON_PARSE_ERROR;
|
347
|
+
state_ = State::GRPC_JSON_STATE_VALUE_END;
|
180
348
|
/* The missing break here is intentional. */
|
181
349
|
/* fallthrough */
|
182
350
|
|
183
|
-
case GRPC_JSON_STATE_VALUE_END:
|
184
|
-
case GRPC_JSON_STATE_OBJECT_KEY_BEGIN:
|
185
|
-
case GRPC_JSON_STATE_VALUE_BEGIN:
|
351
|
+
case State::GRPC_JSON_STATE_VALUE_END:
|
352
|
+
case State::GRPC_JSON_STATE_OBJECT_KEY_BEGIN:
|
353
|
+
case State::GRPC_JSON_STATE_VALUE_BEGIN:
|
186
354
|
if (c == ',') {
|
187
|
-
if (
|
188
|
-
return GRPC_JSON_PARSE_ERROR;
|
355
|
+
if (state_ != State::GRPC_JSON_STATE_VALUE_END) {
|
356
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
189
357
|
}
|
190
|
-
if (
|
191
|
-
|
192
|
-
|
193
|
-
|
358
|
+
if (!stack_.empty() &&
|
359
|
+
stack_.back()->type() == Json::Type::OBJECT) {
|
360
|
+
state_ = State::GRPC_JSON_STATE_OBJECT_KEY_BEGIN;
|
361
|
+
} else if (!stack_.empty() &&
|
362
|
+
stack_.back()->type() == Json::Type::ARRAY) {
|
363
|
+
state_ = State::GRPC_JSON_STATE_VALUE_BEGIN;
|
194
364
|
} else {
|
195
|
-
return GRPC_JSON_PARSE_ERROR;
|
365
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
196
366
|
}
|
197
367
|
} else {
|
198
|
-
if (
|
199
|
-
|
200
|
-
|
368
|
+
if (stack_.empty()) {
|
369
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
370
|
+
}
|
371
|
+
if (c == '}' && stack_.back()->type() != Json::Type::OBJECT) {
|
372
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
373
|
+
}
|
374
|
+
if (c == '}' &&
|
375
|
+
state_ == State::GRPC_JSON_STATE_OBJECT_KEY_BEGIN &&
|
376
|
+
!container_just_begun_) {
|
377
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
201
378
|
}
|
202
|
-
if (
|
203
|
-
|
204
|
-
!reader->container_just_begun) {
|
205
|
-
return GRPC_JSON_PARSE_ERROR;
|
379
|
+
if (c == ']' && stack_.back()->type() != Json::Type::ARRAY) {
|
380
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
206
381
|
}
|
207
|
-
if (
|
208
|
-
|
209
|
-
|
210
|
-
!reader->container_just_begun) {
|
211
|
-
return GRPC_JSON_PARSE_ERROR;
|
382
|
+
if (c == ']' && state_ == State::GRPC_JSON_STATE_VALUE_BEGIN &&
|
383
|
+
!container_just_begun_) {
|
384
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
212
385
|
}
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
reader->in_array = 0;
|
218
|
-
break;
|
219
|
-
case GRPC_JSON_ARRAY:
|
220
|
-
reader->in_object = 0;
|
221
|
-
reader->in_array = 1;
|
222
|
-
break;
|
223
|
-
case GRPC_JSON_TOP_LEVEL:
|
224
|
-
GPR_ASSERT(reader->depth == 0);
|
225
|
-
reader->in_object = 0;
|
226
|
-
reader->in_array = 0;
|
227
|
-
reader->state = GRPC_JSON_STATE_END;
|
228
|
-
break;
|
229
|
-
default:
|
230
|
-
GPR_UNREACHABLE_CODE(return GRPC_JSON_INTERNAL_ERROR);
|
386
|
+
state_ = State::GRPC_JSON_STATE_VALUE_END;
|
387
|
+
EndContainer();
|
388
|
+
if (stack_.empty()) {
|
389
|
+
state_ = State::GRPC_JSON_STATE_END;
|
231
390
|
}
|
232
391
|
}
|
233
392
|
break;
|
234
393
|
|
235
394
|
default:
|
236
|
-
return GRPC_JSON_PARSE_ERROR;
|
395
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
237
396
|
}
|
238
397
|
break;
|
239
398
|
|
240
399
|
/* In-string escaping. */
|
241
400
|
case '\\':
|
242
|
-
switch (
|
243
|
-
case GRPC_JSON_STATE_OBJECT_KEY_STRING:
|
244
|
-
|
245
|
-
|
401
|
+
switch (state_) {
|
402
|
+
case State::GRPC_JSON_STATE_OBJECT_KEY_STRING:
|
403
|
+
escaped_string_was_key_ = true;
|
404
|
+
state_ = State::GRPC_JSON_STATE_STRING_ESCAPE;
|
246
405
|
break;
|
247
406
|
|
248
|
-
case GRPC_JSON_STATE_VALUE_STRING:
|
249
|
-
|
250
|
-
|
407
|
+
case State::GRPC_JSON_STATE_VALUE_STRING:
|
408
|
+
escaped_string_was_key_ = false;
|
409
|
+
state_ = State::GRPC_JSON_STATE_STRING_ESCAPE;
|
251
410
|
break;
|
252
411
|
|
253
412
|
/* This is the \\ case. */
|
254
|
-
case GRPC_JSON_STATE_STRING_ESCAPE:
|
255
|
-
if (
|
256
|
-
return GRPC_JSON_PARSE_ERROR;
|
257
|
-
|
258
|
-
if (
|
259
|
-
|
413
|
+
case State::GRPC_JSON_STATE_STRING_ESCAPE:
|
414
|
+
if (unicode_high_surrogate_ != 0)
|
415
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
416
|
+
StringAddChar('\\');
|
417
|
+
if (escaped_string_was_key_) {
|
418
|
+
state_ = State::GRPC_JSON_STATE_OBJECT_KEY_STRING;
|
260
419
|
} else {
|
261
|
-
|
420
|
+
state_ = State::GRPC_JSON_STATE_VALUE_STRING;
|
262
421
|
}
|
263
422
|
break;
|
264
423
|
|
265
424
|
default:
|
266
|
-
return GRPC_JSON_PARSE_ERROR;
|
425
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
267
426
|
}
|
268
427
|
break;
|
269
428
|
|
270
429
|
default:
|
271
|
-
|
272
|
-
switch (
|
273
|
-
case GRPC_JSON_STATE_OBJECT_KEY_BEGIN:
|
274
|
-
if (c != '"') return GRPC_JSON_PARSE_ERROR;
|
275
|
-
|
430
|
+
container_just_begun_ = false;
|
431
|
+
switch (state_) {
|
432
|
+
case State::GRPC_JSON_STATE_OBJECT_KEY_BEGIN:
|
433
|
+
if (c != '"') return Status::GRPC_JSON_PARSE_ERROR;
|
434
|
+
state_ = State::GRPC_JSON_STATE_OBJECT_KEY_STRING;
|
276
435
|
break;
|
277
436
|
|
278
|
-
case GRPC_JSON_STATE_OBJECT_KEY_STRING:
|
279
|
-
if (
|
280
|
-
return GRPC_JSON_PARSE_ERROR;
|
437
|
+
case State::GRPC_JSON_STATE_OBJECT_KEY_STRING:
|
438
|
+
if (unicode_high_surrogate_ != 0) {
|
439
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
281
440
|
}
|
282
441
|
if (c == '"') {
|
283
|
-
|
284
|
-
|
285
|
-
json_reader_string_clear(reader);
|
442
|
+
state_ = State::GRPC_JSON_STATE_OBJECT_KEY_END;
|
443
|
+
SetKey();
|
286
444
|
} else {
|
287
|
-
if (c < 32) return GRPC_JSON_PARSE_ERROR;
|
288
|
-
|
445
|
+
if (c < 32) return Status::GRPC_JSON_PARSE_ERROR;
|
446
|
+
StringAddChar(c);
|
289
447
|
}
|
290
448
|
break;
|
291
449
|
|
292
|
-
case GRPC_JSON_STATE_VALUE_STRING:
|
293
|
-
if (
|
294
|
-
return GRPC_JSON_PARSE_ERROR;
|
450
|
+
case State::GRPC_JSON_STATE_VALUE_STRING:
|
451
|
+
if (unicode_high_surrogate_ != 0) {
|
452
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
295
453
|
}
|
296
454
|
if (c == '"') {
|
297
|
-
|
298
|
-
|
299
|
-
json_reader_string_clear(reader);
|
455
|
+
state_ = State::GRPC_JSON_STATE_VALUE_END;
|
456
|
+
SetString();
|
300
457
|
} else {
|
301
|
-
if (c < 32) return GRPC_JSON_PARSE_ERROR;
|
302
|
-
|
458
|
+
if (c < 32) return Status::GRPC_JSON_PARSE_ERROR;
|
459
|
+
StringAddChar(c);
|
303
460
|
}
|
304
461
|
break;
|
305
462
|
|
306
|
-
case GRPC_JSON_STATE_OBJECT_KEY_END:
|
307
|
-
if (c != ':') return GRPC_JSON_PARSE_ERROR;
|
308
|
-
|
463
|
+
case State::GRPC_JSON_STATE_OBJECT_KEY_END:
|
464
|
+
if (c != ':') return Status::GRPC_JSON_PARSE_ERROR;
|
465
|
+
state_ = State::GRPC_JSON_STATE_VALUE_BEGIN;
|
309
466
|
break;
|
310
467
|
|
311
|
-
case GRPC_JSON_STATE_VALUE_BEGIN:
|
468
|
+
case State::GRPC_JSON_STATE_VALUE_BEGIN:
|
312
469
|
switch (c) {
|
313
470
|
case 't':
|
314
|
-
|
471
|
+
state_ = State::GRPC_JSON_STATE_VALUE_TRUE_R;
|
315
472
|
break;
|
316
473
|
|
317
474
|
case 'f':
|
318
|
-
|
475
|
+
state_ = State::GRPC_JSON_STATE_VALUE_FALSE_A;
|
319
476
|
break;
|
320
477
|
|
321
478
|
case 'n':
|
322
|
-
|
479
|
+
state_ = State::GRPC_JSON_STATE_VALUE_NULL_U;
|
323
480
|
break;
|
324
481
|
|
325
482
|
case '"':
|
326
|
-
|
483
|
+
state_ = State::GRPC_JSON_STATE_VALUE_STRING;
|
327
484
|
break;
|
328
485
|
|
329
486
|
case '0':
|
330
|
-
|
331
|
-
|
487
|
+
StringAddChar(c);
|
488
|
+
state_ = State::GRPC_JSON_STATE_VALUE_NUMBER_ZERO;
|
332
489
|
break;
|
333
490
|
|
334
491
|
case '1':
|
@@ -341,73 +498,71 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader* reader) {
|
|
341
498
|
case '8':
|
342
499
|
case '9':
|
343
500
|
case '-':
|
344
|
-
|
345
|
-
|
501
|
+
StringAddChar(c);
|
502
|
+
state_ = State::GRPC_JSON_STATE_VALUE_NUMBER;
|
346
503
|
break;
|
347
504
|
|
348
505
|
case '{':
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
reader->in_array = 0;
|
506
|
+
container_just_begun_ = true;
|
507
|
+
if (!StartContainer(Json::Type::OBJECT)) {
|
508
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
509
|
+
}
|
510
|
+
state_ = State::GRPC_JSON_STATE_OBJECT_KEY_BEGIN;
|
355
511
|
break;
|
356
512
|
|
357
513
|
case '[':
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
reader->in_array = 1;
|
514
|
+
container_just_begun_ = true;
|
515
|
+
if (!StartContainer(Json::Type::ARRAY)) {
|
516
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
517
|
+
}
|
363
518
|
break;
|
364
519
|
default:
|
365
|
-
return GRPC_JSON_PARSE_ERROR;
|
520
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
366
521
|
}
|
367
522
|
break;
|
368
523
|
|
369
|
-
case GRPC_JSON_STATE_STRING_ESCAPE:
|
370
|
-
if (
|
371
|
-
|
524
|
+
case State::GRPC_JSON_STATE_STRING_ESCAPE:
|
525
|
+
if (escaped_string_was_key_) {
|
526
|
+
state_ = State::GRPC_JSON_STATE_OBJECT_KEY_STRING;
|
372
527
|
} else {
|
373
|
-
|
528
|
+
state_ = State::GRPC_JSON_STATE_VALUE_STRING;
|
374
529
|
}
|
375
|
-
if (
|
376
|
-
return GRPC_JSON_PARSE_ERROR;
|
530
|
+
if (unicode_high_surrogate_ && c != 'u') {
|
531
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
377
532
|
}
|
378
533
|
switch (c) {
|
379
534
|
case '"':
|
380
535
|
case '/':
|
381
|
-
|
536
|
+
StringAddChar(c);
|
382
537
|
break;
|
383
538
|
case 'b':
|
384
|
-
|
539
|
+
StringAddChar('\b');
|
385
540
|
break;
|
386
541
|
case 'f':
|
387
|
-
|
542
|
+
StringAddChar('\f');
|
388
543
|
break;
|
389
544
|
case 'n':
|
390
|
-
|
545
|
+
StringAddChar('\n');
|
391
546
|
break;
|
392
547
|
case 'r':
|
393
|
-
|
548
|
+
StringAddChar('\r');
|
394
549
|
break;
|
395
550
|
case 't':
|
396
|
-
|
551
|
+
StringAddChar('\t');
|
397
552
|
break;
|
398
553
|
case 'u':
|
399
|
-
|
400
|
-
|
554
|
+
state_ = State::GRPC_JSON_STATE_STRING_ESCAPE_U1;
|
555
|
+
unicode_char_ = 0;
|
401
556
|
break;
|
402
557
|
default:
|
403
|
-
return GRPC_JSON_PARSE_ERROR;
|
558
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
404
559
|
}
|
405
560
|
break;
|
406
561
|
|
407
|
-
case GRPC_JSON_STATE_STRING_ESCAPE_U1:
|
408
|
-
case GRPC_JSON_STATE_STRING_ESCAPE_U2:
|
409
|
-
case GRPC_JSON_STATE_STRING_ESCAPE_U3:
|
410
|
-
case GRPC_JSON_STATE_STRING_ESCAPE_U4:
|
562
|
+
case State::GRPC_JSON_STATE_STRING_ESCAPE_U1:
|
563
|
+
case State::GRPC_JSON_STATE_STRING_ESCAPE_U2:
|
564
|
+
case State::GRPC_JSON_STATE_STRING_ESCAPE_U3:
|
565
|
+
case State::GRPC_JSON_STATE_STRING_ESCAPE_U4:
|
411
566
|
if ((c >= '0') && (c <= '9')) {
|
412
567
|
c -= '0';
|
413
568
|
} else if ((c >= 'A') && (c <= 'F')) {
|
@@ -415,62 +570,60 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader* reader) {
|
|
415
570
|
} else if ((c >= 'a') && (c <= 'f')) {
|
416
571
|
c -= 'a' - 10;
|
417
572
|
} else {
|
418
|
-
return GRPC_JSON_PARSE_ERROR;
|
573
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
419
574
|
}
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
case GRPC_JSON_STATE_STRING_ESCAPE_U1:
|
427
|
-
reader->state = GRPC_JSON_STATE_STRING_ESCAPE_U2;
|
575
|
+
unicode_char_ = static_cast<uint16_t>(unicode_char_ << 4);
|
576
|
+
unicode_char_ = static_cast<uint16_t>(unicode_char_ | c);
|
577
|
+
|
578
|
+
switch (state_) {
|
579
|
+
case State::GRPC_JSON_STATE_STRING_ESCAPE_U1:
|
580
|
+
state_ = State::GRPC_JSON_STATE_STRING_ESCAPE_U2;
|
428
581
|
break;
|
429
|
-
case GRPC_JSON_STATE_STRING_ESCAPE_U2:
|
430
|
-
|
582
|
+
case State::GRPC_JSON_STATE_STRING_ESCAPE_U2:
|
583
|
+
state_ = State::GRPC_JSON_STATE_STRING_ESCAPE_U3;
|
431
584
|
break;
|
432
|
-
case GRPC_JSON_STATE_STRING_ESCAPE_U3:
|
433
|
-
|
585
|
+
case State::GRPC_JSON_STATE_STRING_ESCAPE_U3:
|
586
|
+
state_ = State::GRPC_JSON_STATE_STRING_ESCAPE_U4;
|
434
587
|
break;
|
435
|
-
case GRPC_JSON_STATE_STRING_ESCAPE_U4:
|
588
|
+
case State::GRPC_JSON_STATE_STRING_ESCAPE_U4:
|
436
589
|
/* See grpc_json_writer_escape_string to have a description
|
437
590
|
* of what's going on here.
|
438
591
|
*/
|
439
|
-
if ((
|
592
|
+
if ((unicode_char_ & 0xfc00) == 0xd800) {
|
440
593
|
/* high surrogate utf-16 */
|
441
|
-
if (
|
442
|
-
return GRPC_JSON_PARSE_ERROR;
|
443
|
-
|
444
|
-
} else if ((
|
594
|
+
if (unicode_high_surrogate_ != 0)
|
595
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
596
|
+
unicode_high_surrogate_ = unicode_char_;
|
597
|
+
} else if ((unicode_char_ & 0xfc00) == 0xdc00) {
|
445
598
|
/* low surrogate utf-16 */
|
446
599
|
uint32_t utf32;
|
447
|
-
if (
|
448
|
-
return GRPC_JSON_PARSE_ERROR;
|
600
|
+
if (unicode_high_surrogate_ == 0)
|
601
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
449
602
|
utf32 = 0x10000;
|
450
603
|
utf32 += static_cast<uint32_t>(
|
451
|
-
(
|
452
|
-
utf32 += static_cast<uint32_t>(
|
453
|
-
|
454
|
-
|
604
|
+
(unicode_high_surrogate_ - 0xd800) * 0x400);
|
605
|
+
utf32 += static_cast<uint32_t>(unicode_char_ - 0xdc00);
|
606
|
+
StringAddUtf32(utf32);
|
607
|
+
unicode_high_surrogate_ = 0;
|
455
608
|
} else {
|
456
609
|
/* anything else */
|
457
|
-
if (
|
458
|
-
return GRPC_JSON_PARSE_ERROR;
|
459
|
-
|
610
|
+
if (unicode_high_surrogate_ != 0)
|
611
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
612
|
+
StringAddUtf32(unicode_char_);
|
460
613
|
}
|
461
|
-
if (
|
462
|
-
|
614
|
+
if (escaped_string_was_key_) {
|
615
|
+
state_ = State::GRPC_JSON_STATE_OBJECT_KEY_STRING;
|
463
616
|
} else {
|
464
|
-
|
617
|
+
state_ = State::GRPC_JSON_STATE_VALUE_STRING;
|
465
618
|
}
|
466
619
|
break;
|
467
620
|
default:
|
468
|
-
GPR_UNREACHABLE_CODE(return GRPC_JSON_INTERNAL_ERROR);
|
621
|
+
GPR_UNREACHABLE_CODE(return Status::GRPC_JSON_INTERNAL_ERROR);
|
469
622
|
}
|
470
623
|
break;
|
471
624
|
|
472
|
-
case GRPC_JSON_STATE_VALUE_NUMBER:
|
473
|
-
|
625
|
+
case State::GRPC_JSON_STATE_VALUE_NUMBER:
|
626
|
+
StringAddChar(c);
|
474
627
|
switch (c) {
|
475
628
|
case '0':
|
476
629
|
case '1':
|
@@ -485,18 +638,18 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader* reader) {
|
|
485
638
|
break;
|
486
639
|
case 'e':
|
487
640
|
case 'E':
|
488
|
-
|
641
|
+
state_ = State::GRPC_JSON_STATE_VALUE_NUMBER_E;
|
489
642
|
break;
|
490
643
|
case '.':
|
491
|
-
|
644
|
+
state_ = State::GRPC_JSON_STATE_VALUE_NUMBER_DOT;
|
492
645
|
break;
|
493
646
|
default:
|
494
|
-
return GRPC_JSON_PARSE_ERROR;
|
647
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
495
648
|
}
|
496
649
|
break;
|
497
650
|
|
498
|
-
case GRPC_JSON_STATE_VALUE_NUMBER_WITH_DECIMAL:
|
499
|
-
|
651
|
+
case State::GRPC_JSON_STATE_VALUE_NUMBER_WITH_DECIMAL:
|
652
|
+
StringAddChar(c);
|
500
653
|
switch (c) {
|
501
654
|
case '0':
|
502
655
|
case '1':
|
@@ -511,21 +664,21 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader* reader) {
|
|
511
664
|
break;
|
512
665
|
case 'e':
|
513
666
|
case 'E':
|
514
|
-
|
667
|
+
state_ = State::GRPC_JSON_STATE_VALUE_NUMBER_E;
|
515
668
|
break;
|
516
669
|
default:
|
517
|
-
return GRPC_JSON_PARSE_ERROR;
|
670
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
518
671
|
}
|
519
672
|
break;
|
520
673
|
|
521
|
-
case GRPC_JSON_STATE_VALUE_NUMBER_ZERO:
|
522
|
-
if (c != '.') return GRPC_JSON_PARSE_ERROR;
|
523
|
-
|
524
|
-
|
674
|
+
case State::GRPC_JSON_STATE_VALUE_NUMBER_ZERO:
|
675
|
+
if (c != '.') return Status::GRPC_JSON_PARSE_ERROR;
|
676
|
+
StringAddChar(c);
|
677
|
+
state_ = State::GRPC_JSON_STATE_VALUE_NUMBER_DOT;
|
525
678
|
break;
|
526
679
|
|
527
|
-
case GRPC_JSON_STATE_VALUE_NUMBER_DOT:
|
528
|
-
|
680
|
+
case State::GRPC_JSON_STATE_VALUE_NUMBER_DOT:
|
681
|
+
StringAddChar(c);
|
529
682
|
switch (c) {
|
530
683
|
case '0':
|
531
684
|
case '1':
|
@@ -537,15 +690,15 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader* reader) {
|
|
537
690
|
case '7':
|
538
691
|
case '8':
|
539
692
|
case '9':
|
540
|
-
|
693
|
+
state_ = State::GRPC_JSON_STATE_VALUE_NUMBER_WITH_DECIMAL;
|
541
694
|
break;
|
542
695
|
default:
|
543
|
-
return GRPC_JSON_PARSE_ERROR;
|
696
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
544
697
|
}
|
545
698
|
break;
|
546
699
|
|
547
|
-
case GRPC_JSON_STATE_VALUE_NUMBER_E:
|
548
|
-
|
700
|
+
case State::GRPC_JSON_STATE_VALUE_NUMBER_E:
|
701
|
+
StringAddChar(c);
|
549
702
|
switch (c) {
|
550
703
|
case '0':
|
551
704
|
case '1':
|
@@ -559,15 +712,15 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader* reader) {
|
|
559
712
|
case '9':
|
560
713
|
case '+':
|
561
714
|
case '-':
|
562
|
-
|
715
|
+
state_ = State::GRPC_JSON_STATE_VALUE_NUMBER_EPM;
|
563
716
|
break;
|
564
717
|
default:
|
565
|
-
return GRPC_JSON_PARSE_ERROR;
|
718
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
566
719
|
}
|
567
720
|
break;
|
568
721
|
|
569
|
-
case GRPC_JSON_STATE_VALUE_NUMBER_EPM:
|
570
|
-
|
722
|
+
case State::GRPC_JSON_STATE_VALUE_NUMBER_EPM:
|
723
|
+
StringAddChar(c);
|
571
724
|
switch (c) {
|
572
725
|
case '0':
|
573
726
|
case '1':
|
@@ -581,83 +734,122 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader* reader) {
|
|
581
734
|
case '9':
|
582
735
|
break;
|
583
736
|
default:
|
584
|
-
return GRPC_JSON_PARSE_ERROR;
|
737
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
585
738
|
}
|
586
739
|
break;
|
587
740
|
|
588
|
-
case GRPC_JSON_STATE_VALUE_TRUE_R:
|
589
|
-
if (c != 'r') return GRPC_JSON_PARSE_ERROR;
|
590
|
-
|
741
|
+
case State::GRPC_JSON_STATE_VALUE_TRUE_R:
|
742
|
+
if (c != 'r') return Status::GRPC_JSON_PARSE_ERROR;
|
743
|
+
state_ = State::GRPC_JSON_STATE_VALUE_TRUE_U;
|
591
744
|
break;
|
592
745
|
|
593
|
-
case GRPC_JSON_STATE_VALUE_TRUE_U:
|
594
|
-
if (c != 'u') return GRPC_JSON_PARSE_ERROR;
|
595
|
-
|
746
|
+
case State::GRPC_JSON_STATE_VALUE_TRUE_U:
|
747
|
+
if (c != 'u') return Status::GRPC_JSON_PARSE_ERROR;
|
748
|
+
state_ = State::GRPC_JSON_STATE_VALUE_TRUE_E;
|
596
749
|
break;
|
597
750
|
|
598
|
-
case GRPC_JSON_STATE_VALUE_TRUE_E:
|
599
|
-
if (c != 'e') return GRPC_JSON_PARSE_ERROR;
|
600
|
-
|
601
|
-
|
751
|
+
case State::GRPC_JSON_STATE_VALUE_TRUE_E:
|
752
|
+
if (c != 'e') return Status::GRPC_JSON_PARSE_ERROR;
|
753
|
+
SetTrue();
|
754
|
+
state_ = State::GRPC_JSON_STATE_VALUE_END;
|
602
755
|
break;
|
603
756
|
|
604
|
-
case GRPC_JSON_STATE_VALUE_FALSE_A:
|
605
|
-
if (c != 'a') return GRPC_JSON_PARSE_ERROR;
|
606
|
-
|
757
|
+
case State::GRPC_JSON_STATE_VALUE_FALSE_A:
|
758
|
+
if (c != 'a') return Status::GRPC_JSON_PARSE_ERROR;
|
759
|
+
state_ = State::GRPC_JSON_STATE_VALUE_FALSE_L;
|
607
760
|
break;
|
608
761
|
|
609
|
-
case GRPC_JSON_STATE_VALUE_FALSE_L:
|
610
|
-
if (c != 'l') return GRPC_JSON_PARSE_ERROR;
|
611
|
-
|
762
|
+
case State::GRPC_JSON_STATE_VALUE_FALSE_L:
|
763
|
+
if (c != 'l') return Status::GRPC_JSON_PARSE_ERROR;
|
764
|
+
state_ = State::GRPC_JSON_STATE_VALUE_FALSE_S;
|
612
765
|
break;
|
613
766
|
|
614
|
-
case GRPC_JSON_STATE_VALUE_FALSE_S:
|
615
|
-
if (c != 's') return GRPC_JSON_PARSE_ERROR;
|
616
|
-
|
767
|
+
case State::GRPC_JSON_STATE_VALUE_FALSE_S:
|
768
|
+
if (c != 's') return Status::GRPC_JSON_PARSE_ERROR;
|
769
|
+
state_ = State::GRPC_JSON_STATE_VALUE_FALSE_E;
|
617
770
|
break;
|
618
771
|
|
619
|
-
case GRPC_JSON_STATE_VALUE_FALSE_E:
|
620
|
-
if (c != 'e') return GRPC_JSON_PARSE_ERROR;
|
621
|
-
|
622
|
-
|
772
|
+
case State::GRPC_JSON_STATE_VALUE_FALSE_E:
|
773
|
+
if (c != 'e') return Status::GRPC_JSON_PARSE_ERROR;
|
774
|
+
SetFalse();
|
775
|
+
state_ = State::GRPC_JSON_STATE_VALUE_END;
|
623
776
|
break;
|
624
777
|
|
625
|
-
case GRPC_JSON_STATE_VALUE_NULL_U:
|
626
|
-
if (c != 'u') return GRPC_JSON_PARSE_ERROR;
|
627
|
-
|
778
|
+
case State::GRPC_JSON_STATE_VALUE_NULL_U:
|
779
|
+
if (c != 'u') return Status::GRPC_JSON_PARSE_ERROR;
|
780
|
+
state_ = State::GRPC_JSON_STATE_VALUE_NULL_L1;
|
628
781
|
break;
|
629
782
|
|
630
|
-
case GRPC_JSON_STATE_VALUE_NULL_L1:
|
631
|
-
if (c != 'l') return GRPC_JSON_PARSE_ERROR;
|
632
|
-
|
783
|
+
case State::GRPC_JSON_STATE_VALUE_NULL_L1:
|
784
|
+
if (c != 'l') return Status::GRPC_JSON_PARSE_ERROR;
|
785
|
+
state_ = State::GRPC_JSON_STATE_VALUE_NULL_L2;
|
633
786
|
break;
|
634
787
|
|
635
|
-
case GRPC_JSON_STATE_VALUE_NULL_L2:
|
636
|
-
if (c != 'l') return GRPC_JSON_PARSE_ERROR;
|
637
|
-
|
638
|
-
|
788
|
+
case State::GRPC_JSON_STATE_VALUE_NULL_L2:
|
789
|
+
if (c != 'l') return Status::GRPC_JSON_PARSE_ERROR;
|
790
|
+
SetNull();
|
791
|
+
state_ = State::GRPC_JSON_STATE_VALUE_END;
|
639
792
|
break;
|
640
793
|
|
641
794
|
/* All of the VALUE_END cases are handled in the specialized case
|
642
795
|
* above. */
|
643
|
-
case GRPC_JSON_STATE_VALUE_END:
|
796
|
+
case State::GRPC_JSON_STATE_VALUE_END:
|
644
797
|
switch (c) {
|
645
798
|
case ',':
|
646
799
|
case '}':
|
647
800
|
case ']':
|
648
|
-
GPR_UNREACHABLE_CODE(return GRPC_JSON_INTERNAL_ERROR);
|
801
|
+
GPR_UNREACHABLE_CODE(return Status::GRPC_JSON_INTERNAL_ERROR);
|
649
802
|
break;
|
650
803
|
|
651
804
|
default:
|
652
|
-
return GRPC_JSON_PARSE_ERROR;
|
805
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
653
806
|
}
|
654
807
|
break;
|
655
808
|
|
656
|
-
case GRPC_JSON_STATE_END:
|
657
|
-
return GRPC_JSON_PARSE_ERROR;
|
809
|
+
case State::GRPC_JSON_STATE_END:
|
810
|
+
return Status::GRPC_JSON_PARSE_ERROR;
|
658
811
|
}
|
659
812
|
}
|
660
813
|
}
|
661
814
|
|
662
|
-
GPR_UNREACHABLE_CODE(return GRPC_JSON_INTERNAL_ERROR);
|
815
|
+
GPR_UNREACHABLE_CODE(return Status::GRPC_JSON_INTERNAL_ERROR);
|
663
816
|
}
|
817
|
+
|
818
|
+
grpc_error* JsonReader::Parse(StringView input, Json* output) {
|
819
|
+
JsonReader reader(input);
|
820
|
+
Status status = reader.Run();
|
821
|
+
if (reader.truncated_errors_) {
|
822
|
+
reader.errors_.push_back(GRPC_ERROR_CREATE_FROM_STATIC_STRING(
|
823
|
+
"too many errors encountered during JSON parsing -- fix reported "
|
824
|
+
"errors and try again to see additional errors"));
|
825
|
+
}
|
826
|
+
if (status == Status::GRPC_JSON_INTERNAL_ERROR) {
|
827
|
+
char* msg;
|
828
|
+
gpr_asprintf(&msg, "internal error in JSON parser at index %" PRIuPTR,
|
829
|
+
reader.CurrentIndex());
|
830
|
+
reader.errors_.push_back(GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg));
|
831
|
+
gpr_free(msg);
|
832
|
+
} else if (status == Status::GRPC_JSON_PARSE_ERROR) {
|
833
|
+
char* msg;
|
834
|
+
gpr_asprintf(&msg, "JSON parse error at index %" PRIuPTR,
|
835
|
+
reader.CurrentIndex());
|
836
|
+
reader.errors_.push_back(GRPC_ERROR_CREATE_FROM_COPIED_STRING(msg));
|
837
|
+
gpr_free(msg);
|
838
|
+
}
|
839
|
+
if (!reader.errors_.empty()) {
|
840
|
+
return GRPC_ERROR_CREATE_FROM_VECTOR("JSON parsing failed",
|
841
|
+
&reader.errors_);
|
842
|
+
}
|
843
|
+
*output = std::move(reader.root_value_);
|
844
|
+
return GRPC_ERROR_NONE;
|
845
|
+
}
|
846
|
+
|
847
|
+
} // namespace
|
848
|
+
|
849
|
+
Json Json::Parse(StringView json_str, grpc_error** error) {
|
850
|
+
Json value;
|
851
|
+
*error = JsonReader::Parse(json_str, &value);
|
852
|
+
return value;
|
853
|
+
}
|
854
|
+
|
855
|
+
} // namespace grpc_core
|