grpc 1.80.0 → 1.81.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Makefile +301 -292
- data/include/grpc/context_types.h +28 -0
- data/include/grpc/credentials.h +11 -0
- data/include/grpc/grpc_security_constants.h +12 -0
- data/include/grpc/module.modulemap +1 -0
- data/src/core/call/call_spine.h +29 -6
- data/src/core/call/client_call.cc +2 -2
- data/src/core/call/client_call.h +6 -0
- data/src/core/call/interception_chain.h +12 -1
- data/src/core/call/metadata_batch.h +37 -2
- data/src/core/call/server_call.h +4 -0
- data/src/core/client_channel/client_channel.cc +2 -1
- data/src/core/client_channel/client_channel_filter.cc +2 -2
- data/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc +8 -0
- data/src/core/credentials/transport/tls/grpc_tls_credentials_options.h +9 -2
- data/src/core/credentials/transport/tls/ssl_utils.cc +4 -0
- data/src/core/credentials/transport/tls/ssl_utils.h +3 -0
- data/src/core/credentials/transport/tls/tls_security_connector.cc +3 -2
- data/src/core/ext/filters/http/client_authority_filter.cc +4 -0
- data/src/core/ext/filters/http/http_filters_plugin.cc +6 -0
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +7 -0
- data/src/core/ext/transport/chttp2/transport/frame.cc +1 -1
- data/src/core/ext/transport/chttp2/transport/frame.h +1 -1
- data/src/core/ext/transport/chttp2/transport/frame_security.cc +3 -1
- data/src/core/ext/transport/chttp2/transport/header_assembler.h +8 -8
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +112 -155
- data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +38 -37
- data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +11 -1
- data/src/core/ext/transport/chttp2/transport/http2_transport.cc +0 -38
- data/src/core/ext/transport/chttp2/transport/http2_transport.h +30 -37
- data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +74 -5
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -0
- data/src/core/ext/transport/chttp2/transport/parsing.cc +4 -1
- data/src/core/ext/transport/chttp2/transport/security_frame.h +1 -1
- data/src/core/ext/transport/chttp2/transport/stream.h +29 -11
- data/src/core/ext/transport/chttp2/transport/transport_common.cc +3 -0
- data/src/core/ext/transport/chttp2/transport/writable_streams.h +2 -77
- data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c +11 -93
- data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c +15 -129
- data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +4 -30
- data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +4 -54
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +4 -28
- data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +15 -133
- data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +2 -46
- data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +10 -80
- data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +18 -162
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +2 -18
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +16 -148
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +1 -35
- data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +13 -101
- data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +6 -48
- data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +29 -207
- data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +5 -59
- data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +11 -111
- data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +9 -97
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +10 -130
- data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +4 -26
- data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +2 -16
- data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +2 -16
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +4 -28
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +6 -64
- data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +9 -53
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +4 -52
- data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +6 -68
- data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +1 -19
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +8 -52
- data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +11 -59
- data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +11 -93
- data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +2 -40
- data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +48 -550
- data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +3 -21
- data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +10 -80
- data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +1 -19
- data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +16 -182
- data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb.h +240 -0
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.c +78 -0
- data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.h +34 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +3 -23
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb.h +73 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.c +42 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.h +32 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb.h +431 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.c +111 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.h +38 -0
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +2 -30
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +3 -23
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +2 -24
- data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +2 -14
- data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +19 -187
- data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +3 -25
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +7 -71
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +3 -21
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +6 -70
- data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +2 -10
- data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +2 -26
- data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +13 -123
- data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +2 -18
- data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +5 -53
- data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +2 -18
- data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +5 -25
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +2 -16
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +2 -2
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +2 -14
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +2 -24
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +3 -21
- data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +3 -23
- data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +5 -37
- data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +2 -8
- data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +4 -16
- data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +2 -14
- data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +11 -91
- data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +16 -140
- data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +3 -33
- data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +1 -0
- data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +27 -410
- data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +5 -17
- data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +9 -37
- data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c +34 -310
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +3 -23
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +11 -83
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +8 -46
- data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c +7 -45
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +2 -18
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +12 -108
- data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +3 -17
- data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +2 -10
- data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +7 -61
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +3 -25
- data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +8 -72
- data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +3 -19
- data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +54 -234
- data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +3 -19
- data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +4 -22
- data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +2 -14
- data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +1 -5
- data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +2 -18
- data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +12 -12
- data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +2 -10
- data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +2 -12
- data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +8 -58
- data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +6 -30
- data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +1 -7
- data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +2 -24
- data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +1 -11
- data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +4 -16
- data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +1 -5
- data/src/core/ext/upbdefs-gen/envoy/extensions/common/matching/v3/extension_matcher.upbdefs.c +110 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/common/matching/v3/extension_matcher.upbdefs.h +42 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upbdefs.c +60 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upbdefs.h +37 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/composite/v3/composite.upbdefs.c +138 -0
- data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/composite/v3/composite.upbdefs.h +52 -0
- data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +734 -731
- data/src/core/filter/composite/composite_filter.cc +227 -0
- data/src/core/filter/composite/composite_filter.h +154 -0
- data/src/core/filter/filter_args.h +4 -0
- data/src/core/handshaker/security/pipelined_secure_endpoint.cc +163 -41
- data/src/core/handshaker/security/pipelining_heuristic_selector.h +151 -0
- data/src/core/handshaker/security/secure_endpoint.cc +24 -8
- data/src/core/lib/channel/connected_channel.cc +13 -0
- data/src/core/lib/channel/promise_based_filter.h +267 -0
- data/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc +3 -2
- data/src/core/lib/event_engine/extensions/blocking_dns.h +1 -1
- data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +4 -0
- data/src/core/lib/event_engine/windows/windows_engine.cc +11 -3
- data/src/core/lib/experiments/experiments.cc +120 -117
- data/src/core/lib/experiments/experiments.h +71 -58
- data/src/core/lib/promise/detail/promise_factory.h +16 -5
- data/src/core/lib/promise/detail/promise_like.h +19 -1
- data/src/core/lib/promise/inter_activity_latch.h +5 -8
- data/src/core/lib/promise/inter_activity_pipe.h +193 -0
- data/src/core/lib/promise/sleep.cc +5 -9
- data/src/core/lib/resource_quota/arena.h +1 -1
- data/src/core/lib/surface/call.cc +43 -6
- data/src/core/lib/surface/call.h +6 -0
- data/src/core/lib/surface/call_utils.cc +42 -3
- data/src/core/lib/surface/call_utils.h +30 -11
- data/src/core/lib/surface/channel_stack_type.cc +8 -0
- data/src/core/lib/surface/channel_stack_type.h +4 -0
- data/src/core/lib/surface/completion_queue.cc +15 -12
- data/src/core/lib/surface/filter_stack_call.h +5 -0
- data/src/core/lib/surface/legacy_channel.cc +1 -22
- data/src/core/lib/surface/legacy_channel.h +1 -3
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +6 -3
- data/src/core/lib/transport/promise_endpoint.h +13 -17
- data/src/core/load_balancing/endpoint_list.cc +0 -8
- data/src/core/load_balancing/pick_first/pick_first.cc +5 -14
- data/src/core/load_balancing/xds/cds.cc +100 -122
- data/src/core/load_balancing/xds/cds.h +58 -0
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
- data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +1 -1
- data/src/core/server/server.cc +19 -35
- data/src/core/server/server.h +9 -17
- data/src/core/server/xds_server_config_fetcher.cc +0 -24
- data/src/core/telemetry/metrics.cc +26 -0
- data/src/core/transport/session_endpoint.cc +314 -0
- data/src/core/transport/session_endpoint.h +85 -0
- data/src/core/tsi/ssl_transport_security.cc +137 -100
- data/src/core/tsi/ssl_transport_security.h +8 -0
- data/src/core/tsi/ssl_transport_security_utils.cc +25 -1
- data/src/core/tsi/ssl_transport_security_utils.h +4 -0
- data/src/core/util/sorted_pack.h +69 -44
- data/src/core/util/string.cc +8 -0
- data/src/core/util/string.h +11 -0
- data/src/core/util/table.h +38 -102
- data/src/core/util/time_precise.cc +42 -1
- data/src/core/util/useful.h +0 -91
- data/src/core/util/windows/string_util.cc +4 -2
- data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +27 -15
- data/src/core/xds/grpc/xds_bootstrap_grpc.cc +148 -69
- data/src/core/xds/grpc/xds_bootstrap_grpc.h +12 -0
- data/src/core/xds/grpc/xds_client_grpc.cc +1 -1
- data/src/core/xds/grpc/xds_cluster.cc +54 -37
- data/src/core/xds/grpc/xds_cluster.h +0 -1
- data/src/core/xds/grpc/xds_common_types.cc +59 -34
- data/src/core/xds/grpc/xds_common_types_parser.cc +33 -3
- data/src/core/xds/grpc/xds_common_types_parser.h +5 -1
- data/src/core/xds/grpc/xds_endpoint.cc +44 -24
- data/src/core/xds/grpc/xds_health_status.cc +10 -6
- data/src/core/xds/grpc/xds_http_composite_filter.cc +302 -0
- data/src/core/xds/grpc/xds_http_composite_filter.h +84 -0
- data/src/core/xds/grpc/xds_http_filter_registry.cc +34 -2
- data/src/core/xds/grpc/xds_http_filter_registry.h +4 -0
- data/src/core/xds/grpc/xds_http_rbac_filter.cc +21 -10
- data/src/core/xds/grpc/xds_listener.cc +98 -59
- data/src/core/xds/grpc/xds_listener_parser.cc +64 -26
- data/src/core/xds/grpc/xds_matcher.cc +92 -49
- data/src/core/xds/grpc/xds_metadata.cc +40 -7
- data/src/core/xds/grpc/xds_metadata.h +3 -10
- data/src/core/xds/grpc/xds_route_config.cc +171 -100
- data/src/core/xds/grpc/xds_server_grpc.cc +27 -18
- data/src/ruby/bin/math_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +1 -15
- data/src/ruby/ext/grpc/rb_call_credentials.c +1 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/generate_proto_ruby.sh +1 -1
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -1
- data/src/ruby/spec/client_server_spec.rb +40 -0
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bn/convert.cc +47 -31
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bn/exponentiation.cc +35 -17
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/cbb.cc +8 -14
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/derive_key.cc +15 -13
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_arm_linux.cc +5 -28
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_arm_linux.h +9 -11
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dh/dh_asn1.cc +14 -13
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dsa/dsa.cc +34 -30
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dsa/dsa_asn1.cc +35 -23
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ec/ec_asn1.cc +63 -47
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ec/hash_to_curve.cc +68 -60
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ecdsa/ecdsa_asn1.cc +17 -11
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/evp_asn1.cc +11 -10
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/evp_ctx.cc +11 -10
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_dsa_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_ec_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_ed25519_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_rsa_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_x25519_asn1.cc +6 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/sign.cc +42 -23
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/div.cc.inc +79 -0
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/exponentiation.cc.inc +6 -5
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/gcd.cc.inc +80 -58
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/gcd_extra.cc.inc +45 -29
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/jacobi.cc.inc +16 -7
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/montgomery.cc.inc +24 -10
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/mul.cc.inc +34 -24
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/prime.cc.inc +154 -102
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/shift.cc.inc +8 -3
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/sqrt.cc.inc +78 -1
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/dh/check.cc.inc +53 -35
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/dh/dh.cc.inc +76 -57
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digest/digest.cc.inc +10 -4
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/ec.cc.inc +5 -3
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/padding.cc.inc +26 -19
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/rsa.cc.inc +7 -7
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/rsa_impl.cc.inc +138 -117
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/self_check/self_check.cc.inc +30 -22
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/obj/obj.cc +8 -2
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_lib.cc +13 -8
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs7/pkcs7.cc +6 -5
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs7/pkcs7_x509.cc +3 -6
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs8/p5_pbev2.cc +14 -9
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs8/pkcs8.cc +29 -19
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs8/pkcs8_x509.cc +39 -34
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/rsa_crypt.cc +22 -14
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/a_sign.cc +5 -3
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/asn1_gen.cc +12 -8
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_conf.cc +24 -16
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_info.cc +21 -18
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_x509.cc +57 -52
- data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_x509a.cc +32 -16
- data/third_party/boringssl-with-bazel/{src/include → include}/openssl/bytestring.h +0 -6
- data/third_party/boringssl-with-bazel/{src/ssl → ssl}/handoff.cc +12 -12
- data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_asn1.cc +3 -2
- data/third_party/upb/upb/base/string_view.h +7 -3
- data/third_party/upb/upb/generated_code_support.h +17 -1
- data/third_party/upb/upb/hash/common.c +2 -1
- data/third_party/upb/upb/mem/alloc.c +2 -1
- data/third_party/upb/upb/mem/alloc.h +25 -6
- data/third_party/upb/upb/mem/arena.c +225 -73
- data/third_party/upb/upb/mem/arena.h +56 -0
- data/third_party/upb/upb/mem/arena.hpp +6 -0
- data/third_party/upb/upb/mem/internal/arena.h +69 -56
- data/third_party/upb/upb/message/accessors.h +4 -0
- data/third_party/upb/upb/message/array.h +3 -0
- data/third_party/upb/upb/message/copy.c +1 -1
- data/third_party/upb/upb/message/internal/accessors.h +10 -0
- data/third_party/upb/upb/message/internal/array.h +34 -3
- data/third_party/upb/upb/message/internal/message.h +23 -9
- data/third_party/upb/upb/mini_descriptor/decode.c +127 -66
- data/third_party/upb/upb/mini_descriptor/decode.h +6 -2
- data/third_party/upb/upb/mini_descriptor/internal/encode.hpp +2 -0
- data/third_party/upb/upb/mini_descriptor/link.c +11 -0
- data/third_party/upb/upb/mini_table/extension.h +7 -0
- data/third_party/upb/upb/mini_table/extension_registry.c +10 -1
- data/third_party/upb/upb/mini_table/extension_registry.h +1 -0
- data/third_party/upb/upb/mini_table/internal/extension.h +10 -0
- data/third_party/upb/upb/mini_table/internal/field.h +1 -1
- data/third_party/upb/upb/mini_table/internal/message.h +69 -9
- data/third_party/upb/upb/mini_table/message.c +0 -38
- data/third_party/upb/upb/mini_table/message.h +5 -1
- data/third_party/upb/upb/port/def.inc +140 -111
- data/third_party/upb/upb/port/sanitizers.h +179 -0
- data/third_party/upb/upb/port/undef.inc +19 -9
- data/third_party/upb/upb/reflection/enum_def.c +7 -3
- data/third_party/upb/upb/reflection/enum_def.h +1 -0
- data/third_party/upb/upb/reflection/field_def.h +1 -0
- data/third_party/upb/upb/reflection/file_def.c +1 -1
- data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
- data/third_party/upb/upb/reflection/message_def.c +29 -2
- data/third_party/upb/upb/reflection/message_def.h +2 -0
- data/third_party/upb/upb/text/internal/encode.c +5 -5
- data/third_party/upb/upb/wire/decode.c +190 -239
- data/third_party/upb/upb/wire/decode.h +14 -5
- data/third_party/upb/upb/wire/decode_fast/combinations.h +217 -0
- data/third_party/upb/upb/wire/decode_fast/data.h +74 -0
- data/third_party/upb/upb/wire/decode_fast/select.c +235 -0
- data/third_party/upb/upb/wire/decode_fast/select.h +66 -0
- data/third_party/upb/upb/wire/encode.c +332 -203
- data/third_party/upb/upb/wire/encode.h +3 -6
- data/third_party/upb/upb/wire/eps_copy_input_stream.h +64 -6
- data/third_party/upb/upb/wire/internal/decoder.c +43 -0
- data/third_party/upb/upb/wire/internal/decoder.h +73 -35
- data/third_party/upb/upb/wire/internal/reader.h +28 -9
- data/third_party/upb/upb/wire/reader.c +20 -2
- data/third_party/upb/upb/wire/reader.h +29 -19
- data/third_party/upb/upb/wire/writer.h +20 -0
- data/third_party/utf8_range/utf8_range.c +6 -6
- data/third_party/utf8_range/utf8_range_neon.inc +1 -1
- data/third_party/utf8_range/utf8_range_sse.inc +1 -1
- metadata +559 -531
- data/third_party/boringssl-with-bazel/src/crypto/bn/div.cc +0 -100
- data/third_party/boringssl-with-bazel/src/crypto/bn/sqrt.cc +0 -93
- data/third_party/upb/upb/wire/internal/decode_fast.c +0 -1000
- data/third_party/upb/upb/wire/internal/decode_fast.h +0 -152
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/aes/aes.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_bitstr.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_bool.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_d2i_fp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_dup.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_gentm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_i2d_fp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_int.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_mbstr.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_object.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_octet.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_strex.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_strnid.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_time.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_type.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_utctm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/asn1_lib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/asn1_par.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/asn_pack.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/f_int.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/f_string.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/posix_time.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_dec.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_enc.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_fre.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_new.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_typ.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_utl.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/base64/base64.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bcm_support.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/bio.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/bio_mem.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/connect.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/errno.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/fd.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/file.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/hexdump.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/pair.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/printf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/socket.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/socket_helper.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/blake2/blake2.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bn/bn_asn1.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/buf/buf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/asn1_compat.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/ber.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/cbs.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/unicode.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/chacha/chacha.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/chacha/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_aesctrhmac.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_aeseax.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_aesgcmsiv.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_chacha20poly1305.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_des.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_null.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_rc2.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_rc4.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_tls.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/get_cipher.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/tls_cbc.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cms/cms.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/conf/conf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/conf/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_apple.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_fuchsia.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_linux.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_openbsd.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_sysreg.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_win.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_arm_freebsd.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_intel.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/crypto.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/curve25519.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/curve25519_64_adx.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/curve25519_tables.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/spake25519.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/des/des.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/des/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dh/params.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/digest/digest_extra.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dsa/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ec/ec_derive.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ec/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ecdh/ecdh.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/engine/engine.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/err/err.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/err/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/evp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_dh.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_dh_asn1.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_ec.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_ed25519.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_hkdf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_rsa.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_x25519.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/pbkdf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/print.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/scrypt.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ex_data.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/aes.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/aes_nohw.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/cbc.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/cfb.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/ctr.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/gcm.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/gcm_nohw.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/key_wrap.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/mode_wrappers.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/ofb.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bcm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bcm_interface.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/add.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/asm/x86_64-gcc.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/bn.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/bytes.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/cmp.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/ctx.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/div_extra.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/generic.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/montgomery_inv.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/random.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/rsaz_exp.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/rsaz_exp.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/aead.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/cipher.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/e_aes.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/e_aesccm.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cmac/cmac.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/delocate.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/dh/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digest/digests.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digest/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digest/md32_common.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digestsign/digestsign.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/builtin_curves.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/ec_key.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/ec_montgomery.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/felem.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/oct.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p224-64.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256-nistz-table.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256-nistz.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256-nistz.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256_table.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/scalar.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/simple.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/simple_mul.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/util.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/wnaf.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ecdh/ecdh.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ecdsa/ecdsa.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ecdsa/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/fips_shared_support.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/hkdf/hkdf.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/hmac/hmac.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/keccak/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/keccak/keccak.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/mldsa/fips_known_values.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/mldsa/mldsa.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/mlkem/fips_known_values.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/mlkem/mlkem.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rand/ctrdrbg.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rand/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rand/rand.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/blinding.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/self_check/fips.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/service_indicator/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/service_indicator/service_indicator.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/sha/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/sha/sha1.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/sha/sha256.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/sha/sha512.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/address.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/fips_known_values.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/fors.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/fors.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/merkle.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/merkle.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/params.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/slhdsa.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/thash.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/thash.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/wots.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/wots.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/tls/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/tls/kdf.cc.inc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fuzzer_mode.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/hpke/hpke.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/hrss/hrss.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/hrss/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/kyber/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/kyber/kyber.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/lhash/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/lhash/lhash.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/md4/md4.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/md5/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/md5/md5.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/mem.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/mldsa/mldsa.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/mlkem/mlkem.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/obj/obj_dat.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/obj/obj_xref.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_all.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_info.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_oth.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_pk8.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_pkey.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_x509.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_xaux.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs7/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs8/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/poly1305/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/poly1305/poly1305.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/poly1305/poly1305_arm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/poly1305/poly1305_vec.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pool/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pool/pool.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/deterministic.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/fork_detect.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/forkunsafe.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/getentropy.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/getrandom_fillin.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/ios.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/passive.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/rand.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/trusty.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/urandom.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/windows.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rc4/rc4.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/refcount.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/rsa_asn1.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/rsa_extra.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/rsa_print.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/sha/sha1.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/sha/sha256.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/sha/sha512.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/siphash/siphash.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/slhdsa/slhdsa.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/spake2plus/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/spake2plus/spake2plus.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/stack/stack.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/thread.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/thread_none.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/thread_pthread.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/thread_win.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/trust_token/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/trust_token/pmbtoken.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/trust_token/trust_token.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/trust_token/voprf.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/a_digest.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/a_verify.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/algorithm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/by_dir.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/by_file.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/ext_dat.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/i2d_pr.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/name_print.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/policy.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/rsa_pss.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/t_crl.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/t_req.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/t_x509.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/t_x509a.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_akey.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_akeya.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_alt.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_bcons.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_bitst.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_cpols.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_crld.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_enum.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_extku.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_genn.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_ia5.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_int.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_lib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_ncons.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_ocsp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_pcons.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_pmaps.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_prn.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_purp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_skey.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_utl.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_att.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_cmp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_d2.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_def.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_ext.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_lu.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_obj.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_req.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_set.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_trs.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_txt.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_v3.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_vfy.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_vpm.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509cset.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509name.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509rset.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509spki.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_algor.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_all.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_attrib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_crl.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_exten.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_name.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_pubkey.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_req.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_sig.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_spki.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_val.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/gen → gen}/crypto/err_data.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/aead.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/aes.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/arm_arch.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/asm_base.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/asn1.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/asn1_mac.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/asn1t.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/base.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/base64.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/bcm_public.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/bio.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/blake2.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/blowfish.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/bn.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/buf.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/buffer.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cast.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/chacha.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cipher.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cmac.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cms.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/conf.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cpu.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/crypto.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ctrdrbg.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/curve25519.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/des.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/dh.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/digest.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/dsa.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/dtls1.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/e_os2.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ec.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ec_key.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ecdh.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ecdsa.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/engine.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/err.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/evp.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/evp_errors.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ex_data.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/experimental/kyber.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/hkdf.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/hmac.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/hpke.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/hrss.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/is_boringssl.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/kdf.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/lhash.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/md4.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/md5.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/mem.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/mldsa.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/mlkem.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/nid.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/obj.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/obj_mac.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/objects.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/opensslconf.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/opensslv.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ossl_typ.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pem.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pkcs12.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pkcs7.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pkcs8.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/poly1305.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pool.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/posix_time.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/rand.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/rc4.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ripemd.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/rsa.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/safestack.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/service_indicator.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/sha.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/siphash.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/slhdsa.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/span.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/srtp.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ssl.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ssl3.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/stack.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/target.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/thread.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/time.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/tls1.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/trust_token.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/type_check.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/x509.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/x509_vfy.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/x509v3.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/x509v3_errors.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/bio_ssl.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/d1_both.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/d1_lib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/d1_pkt.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/d1_srtp.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/dtls_method.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/dtls_record.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/encrypted_client_hello.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/extensions.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/handshake.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/handshake_client.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/handshake_server.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/internal.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/s3_both.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/s3_lib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/s3_pkt.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_aead_ctx.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_buffer.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_cert.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_cipher.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_credential.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_file.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_key_share.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_lib.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_privkey.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_session.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_stat.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_transcript.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_versions.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_x509.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/t1_enc.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls13_both.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls13_client.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls13_enc.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls13_server.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls_method.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls_record.cc +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/curve25519_32.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/curve25519_64.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/curve25519_64_adx.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/curve25519_64_msvc.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/p256_32.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/p256_64.h +0 -0
- /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/p256_64_msvc.h +0 -0
|
@@ -46,7 +46,8 @@ typedef enum {
|
|
|
46
46
|
kUpb_EncodeStatus_OutOfMemory = 1, // Arena alloc failed
|
|
47
47
|
kUpb_EncodeStatus_MaxDepthExceeded = 2,
|
|
48
48
|
|
|
49
|
-
//
|
|
49
|
+
// One or more required fields are missing. Only returned if
|
|
50
|
+
// kUpb_EncodeOption_CheckRequired is set.
|
|
50
51
|
kUpb_EncodeStatus_MissingRequired = 3,
|
|
51
52
|
} upb_EncodeStatus;
|
|
52
53
|
// LINT.ThenChange(//depot/google3/third_party/protobuf/rust/upb.rs:encode_status)
|
|
@@ -55,15 +56,11 @@ UPB_INLINE uint32_t upb_EncodeOptions_MaxDepth(uint16_t depth) {
|
|
|
55
56
|
return (uint32_t)depth << 16;
|
|
56
57
|
}
|
|
57
58
|
|
|
58
|
-
UPB_INLINE uint16_t upb_EncodeOptions_GetMaxDepth(uint32_t options) {
|
|
59
|
-
return options >> 16;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
59
|
uint16_t upb_EncodeOptions_GetEffectiveMaxDepth(uint32_t options);
|
|
63
60
|
|
|
64
61
|
// Enforce an upper bound on recursion depth.
|
|
65
62
|
UPB_INLINE int upb_Encode_LimitDepth(uint32_t encode_options, uint32_t limit) {
|
|
66
|
-
uint32_t max_depth =
|
|
63
|
+
uint32_t max_depth = upb_EncodeOptions_GetEffectiveMaxDepth(encode_options);
|
|
67
64
|
if (max_depth > limit) max_depth = limit;
|
|
68
65
|
return upb_EncodeOptions_MaxDepth(max_depth) | (encode_options & 0xffff);
|
|
69
66
|
}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
#ifndef UPB_WIRE_EPS_COPY_INPUT_STREAM_H_
|
|
9
9
|
#define UPB_WIRE_EPS_COPY_INPUT_STREAM_H_
|
|
10
10
|
|
|
11
|
+
#include <stdint.h>
|
|
11
12
|
#include <string.h>
|
|
12
13
|
|
|
13
14
|
#include "upb/mem/arena.h"
|
|
@@ -24,16 +25,25 @@ extern "C" {
|
|
|
24
25
|
// stream guarantees that after upb_EpsCopyInputStream_IsDone() is called,
|
|
25
26
|
// the decoder can read this many bytes without performing another bounds
|
|
26
27
|
// check. The stream will copy into a patch buffer as necessary to guarantee
|
|
27
|
-
// this invariant.
|
|
28
|
+
// this invariant. Since tags can only be up to 5 bytes, and a max-length scalar
|
|
29
|
+
// field can be 10 bytes, only 15 is required; but sizing up to 16 permits more
|
|
30
|
+
// efficient fixed size copies.
|
|
28
31
|
#define kUpb_EpsCopyInputStream_SlopBytes 16
|
|
29
32
|
|
|
30
33
|
typedef struct {
|
|
31
34
|
const char* end; // Can read up to SlopBytes bytes beyond this.
|
|
32
35
|
const char* limit_ptr; // For bounds checks, = end + UPB_MIN(limit, 0)
|
|
33
36
|
uintptr_t input_delta; // Diff between the original input pointer and patch
|
|
34
|
-
|
|
35
|
-
|
|
37
|
+
const char* buffer_start; // Pointer to the original input buffer
|
|
38
|
+
int limit; // Submessage limit relative to end
|
|
39
|
+
bool error; // To distinguish between EOF and error.
|
|
36
40
|
bool aliasing;
|
|
41
|
+
#ifndef NDEBUG
|
|
42
|
+
int guaranteed_bytes;
|
|
43
|
+
#endif
|
|
44
|
+
// Allocate double the size of what's required; this permits a fixed-size copy
|
|
45
|
+
// from the input buffer, regardless of how many bytes actually remain in the
|
|
46
|
+
// input buffer.
|
|
37
47
|
char patch[kUpb_EpsCopyInputStream_SlopBytes * 2];
|
|
38
48
|
} upb_EpsCopyInputStream;
|
|
39
49
|
|
|
@@ -50,12 +60,39 @@ typedef const char* upb_EpsCopyInputStream_BufferFlipCallback(
|
|
|
50
60
|
typedef const char* upb_EpsCopyInputStream_IsDoneFallbackFunc(
|
|
51
61
|
upb_EpsCopyInputStream* e, const char* ptr, int overrun);
|
|
52
62
|
|
|
63
|
+
UPB_INLINE void UPB_PRIVATE(upb_EpsCopyInputStream_BoundsChecked)(
|
|
64
|
+
upb_EpsCopyInputStream* e) {
|
|
65
|
+
#ifndef NDEBUG
|
|
66
|
+
e->guaranteed_bytes = kUpb_EpsCopyInputStream_SlopBytes;
|
|
67
|
+
#endif
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
UPB_INLINE void UPB_PRIVATE(upb_EpsCopyInputStream_BoundsHit)(
|
|
71
|
+
upb_EpsCopyInputStream* e) {
|
|
72
|
+
#ifndef NDEBUG
|
|
73
|
+
e->guaranteed_bytes = 0;
|
|
74
|
+
#endif
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Signals the maximum number that the operation about to be performed may
|
|
78
|
+
// consume.
|
|
79
|
+
UPB_INLINE void UPB_PRIVATE(upb_EpsCopyInputStream_ConsumeBytes)(
|
|
80
|
+
upb_EpsCopyInputStream* e, int n) {
|
|
81
|
+
#ifndef NDEBUG
|
|
82
|
+
if (e) {
|
|
83
|
+
UPB_ASSERT(e->guaranteed_bytes >= n);
|
|
84
|
+
e->guaranteed_bytes -= n;
|
|
85
|
+
}
|
|
86
|
+
#endif
|
|
87
|
+
}
|
|
88
|
+
|
|
53
89
|
// Initializes a upb_EpsCopyInputStream using the contents of the buffer
|
|
54
90
|
// [*ptr, size]. Updates `*ptr` as necessary to guarantee that at least
|
|
55
91
|
// kUpb_EpsCopyInputStream_SlopBytes are available to read.
|
|
56
92
|
UPB_INLINE void upb_EpsCopyInputStream_Init(upb_EpsCopyInputStream* e,
|
|
57
93
|
const char** ptr, size_t size,
|
|
58
94
|
bool enable_aliasing) {
|
|
95
|
+
e->buffer_start = *ptr;
|
|
59
96
|
if (size <= kUpb_EpsCopyInputStream_SlopBytes) {
|
|
60
97
|
memset(&e->patch, 0, 32);
|
|
61
98
|
if (size) memcpy(&e->patch, *ptr, size);
|
|
@@ -71,6 +108,7 @@ UPB_INLINE void upb_EpsCopyInputStream_Init(upb_EpsCopyInputStream* e,
|
|
|
71
108
|
e->aliasing = enable_aliasing;
|
|
72
109
|
e->limit_ptr = e->end;
|
|
73
110
|
e->error = false;
|
|
111
|
+
UPB_PRIVATE(upb_EpsCopyInputStream_BoundsChecked)(e);
|
|
74
112
|
}
|
|
75
113
|
|
|
76
114
|
typedef enum {
|
|
@@ -91,10 +129,13 @@ UPB_INLINE upb_IsDoneStatus upb_EpsCopyInputStream_IsDoneStatus(
|
|
|
91
129
|
upb_EpsCopyInputStream* e, const char* ptr, int* overrun) {
|
|
92
130
|
*overrun = ptr - e->end;
|
|
93
131
|
if (UPB_LIKELY(ptr < e->limit_ptr)) {
|
|
132
|
+
UPB_PRIVATE(upb_EpsCopyInputStream_BoundsChecked)(e);
|
|
94
133
|
return kUpb_IsDoneStatus_NotDone;
|
|
95
134
|
} else if (UPB_LIKELY(*overrun == e->limit)) {
|
|
135
|
+
UPB_PRIVATE(upb_EpsCopyInputStream_BoundsHit)(e);
|
|
96
136
|
return kUpb_IsDoneStatus_Done;
|
|
97
137
|
} else {
|
|
138
|
+
UPB_PRIVATE(upb_EpsCopyInputStream_BoundsHit)(e);
|
|
98
139
|
return kUpb_IsDoneStatus_NeedFallback;
|
|
99
140
|
}
|
|
100
141
|
}
|
|
@@ -112,11 +153,18 @@ UPB_INLINE bool upb_EpsCopyInputStream_IsDoneWithCallback(
|
|
|
112
153
|
int overrun;
|
|
113
154
|
switch (upb_EpsCopyInputStream_IsDoneStatus(e, *ptr, &overrun)) {
|
|
114
155
|
case kUpb_IsDoneStatus_Done:
|
|
156
|
+
UPB_PRIVATE(upb_EpsCopyInputStream_BoundsHit)(e);
|
|
115
157
|
return true;
|
|
116
158
|
case kUpb_IsDoneStatus_NotDone:
|
|
159
|
+
UPB_PRIVATE(upb_EpsCopyInputStream_BoundsChecked)(e);
|
|
117
160
|
return false;
|
|
118
161
|
case kUpb_IsDoneStatus_NeedFallback:
|
|
119
162
|
*ptr = func(e, *ptr, overrun);
|
|
163
|
+
if (*ptr) {
|
|
164
|
+
UPB_PRIVATE(upb_EpsCopyInputStream_BoundsChecked)(e);
|
|
165
|
+
} else {
|
|
166
|
+
UPB_PRIVATE(upb_EpsCopyInputStream_BoundsHit)(e);
|
|
167
|
+
}
|
|
120
168
|
return *ptr == NULL;
|
|
121
169
|
}
|
|
122
170
|
UPB_UNREACHABLE();
|
|
@@ -159,7 +207,7 @@ UPB_INLINE size_t upb_EpsCopyInputStream_BytesAvailable(
|
|
|
159
207
|
UPB_INLINE bool upb_EpsCopyInputStream_CheckSize(
|
|
160
208
|
const upb_EpsCopyInputStream* e, const char* ptr, int size) {
|
|
161
209
|
UPB_ASSERT(size >= 0);
|
|
162
|
-
return
|
|
210
|
+
return size <= e->limit - (ptr - e->end);
|
|
163
211
|
}
|
|
164
212
|
|
|
165
213
|
UPB_INLINE bool _upb_EpsCopyInputStream_CheckSizeAvailable(
|
|
@@ -230,7 +278,13 @@ UPB_INLINE bool upb_EpsCopyInputStream_AliasingAvailable(
|
|
|
230
278
|
// be different if we are currently parsing out of the patch buffer.
|
|
231
279
|
UPB_INLINE const char* upb_EpsCopyInputStream_GetInputPtr(
|
|
232
280
|
upb_EpsCopyInputStream* e, const char* ptr) {
|
|
233
|
-
|
|
281
|
+
// This somewhat silly looking add-and-subtract behavior provides provenance
|
|
282
|
+
// from the original input buffer's pointer. After optimization it produces
|
|
283
|
+
// the same assembly as just casting `(uintptr_t)ptr+input_delta`
|
|
284
|
+
// https://godbolt.org/z/zosG88oPn
|
|
285
|
+
size_t position =
|
|
286
|
+
(uintptr_t)ptr + e->input_delta - (uintptr_t)e->buffer_start;
|
|
287
|
+
return e->buffer_start + position;
|
|
234
288
|
}
|
|
235
289
|
|
|
236
290
|
// Returns a pointer into an input buffer that corresponds to the parsing
|
|
@@ -357,7 +411,11 @@ UPB_INLINE const char* _upb_EpsCopyInputStream_IsDoneFallbackInline(
|
|
|
357
411
|
e->limit_ptr = e->end + e->limit;
|
|
358
412
|
UPB_ASSERT(ptr < e->limit_ptr);
|
|
359
413
|
e->input_delta = (uintptr_t)old_end - (uintptr_t)new_start;
|
|
360
|
-
|
|
414
|
+
const char* ret = callback(e, old_end, new_start);
|
|
415
|
+
if (ret) {
|
|
416
|
+
UPB_PRIVATE(upb_EpsCopyInputStream_BoundsChecked)(e);
|
|
417
|
+
}
|
|
418
|
+
return ret;
|
|
361
419
|
} else {
|
|
362
420
|
UPB_ASSERT(overrun > e->limit);
|
|
363
421
|
e->error = true;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Protocol Buffers - Google's data interchange format
|
|
2
|
+
// Copyright 2023 Google LLC. All rights reserved.
|
|
3
|
+
//
|
|
4
|
+
// Use of this source code is governed by a BSD-style
|
|
5
|
+
// license that can be found in the LICENSE file or at
|
|
6
|
+
// https://developers.google.com/open-source/licenses/bsd
|
|
7
|
+
|
|
8
|
+
#include "upb/wire/internal/decoder.h"
|
|
9
|
+
|
|
10
|
+
#include "upb/message/internal/accessors.h"
|
|
11
|
+
#include "upb/message/message.h"
|
|
12
|
+
#include "upb/mini_table/message.h"
|
|
13
|
+
#include "upb/wire/decode.h"
|
|
14
|
+
#include "upb/wire/eps_copy_input_stream.h"
|
|
15
|
+
|
|
16
|
+
// Must be last.
|
|
17
|
+
#include "upb/port/def.inc"
|
|
18
|
+
|
|
19
|
+
UPB_NOINLINE
|
|
20
|
+
const char* _upb_Decoder_CheckRequired(upb_Decoder* d, const char* ptr,
|
|
21
|
+
const upb_Message* msg,
|
|
22
|
+
const upb_MiniTable* m) {
|
|
23
|
+
UPB_ASSERT(m->UPB_PRIVATE(required_count));
|
|
24
|
+
if (UPB_UNLIKELY(d->options & kUpb_DecodeOption_CheckRequired)) {
|
|
25
|
+
d->missing_required =
|
|
26
|
+
!UPB_PRIVATE(_upb_Message_IsInitializedShallow)(msg, m);
|
|
27
|
+
}
|
|
28
|
+
return ptr;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
UPB_NORETURN void* _upb_Decoder_ErrorJmp(upb_Decoder* d,
|
|
32
|
+
upb_DecodeStatus status) {
|
|
33
|
+
UPB_ASSERT(status != kUpb_DecodeStatus_Ok);
|
|
34
|
+
d->status = status;
|
|
35
|
+
UPB_LONGJMP(d->err, 1);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
UPB_NOINLINE
|
|
39
|
+
const char* _upb_Decoder_IsDoneFallback(upb_EpsCopyInputStream* e,
|
|
40
|
+
const char* ptr, int overrun) {
|
|
41
|
+
return _upb_EpsCopyInputStream_IsDoneFallbackInline(
|
|
42
|
+
e, ptr, overrun, _upb_Decoder_BufferFlipCallback);
|
|
43
|
+
}
|
|
@@ -13,10 +13,16 @@
|
|
|
13
13
|
#ifndef UPB_WIRE_INTERNAL_DECODER_H_
|
|
14
14
|
#define UPB_WIRE_INTERNAL_DECODER_H_
|
|
15
15
|
|
|
16
|
+
#include <setjmp.h>
|
|
16
17
|
#include <stddef.h>
|
|
18
|
+
#include <stdint.h>
|
|
19
|
+
#include <string.h>
|
|
17
20
|
|
|
21
|
+
#include "upb/mem/arena.h"
|
|
18
22
|
#include "upb/mem/internal/arena.h"
|
|
19
|
-
#include "upb/
|
|
23
|
+
#include "upb/mini_table/extension_registry.h"
|
|
24
|
+
#include "upb/mini_table/internal/message.h"
|
|
25
|
+
#include "upb/mini_table/message.h"
|
|
20
26
|
#include "upb/wire/decode.h"
|
|
21
27
|
#include "upb/wire/eps_copy_input_stream.h"
|
|
22
28
|
#include "utf8_range.h"
|
|
@@ -30,10 +36,11 @@ typedef struct upb_Decoder {
|
|
|
30
36
|
upb_EpsCopyInputStream input;
|
|
31
37
|
const upb_ExtensionRegistry* extreg;
|
|
32
38
|
upb_Message* original_msg; // Pointer to preserve data to
|
|
33
|
-
int depth;
|
|
39
|
+
int depth; // Tracks recursion depth to bound stack usage.
|
|
34
40
|
uint32_t end_group; // field number of END_GROUP tag, else DECODE_NOGROUP.
|
|
35
41
|
uint16_t options;
|
|
36
42
|
bool missing_required;
|
|
43
|
+
bool message_is_done;
|
|
37
44
|
union {
|
|
38
45
|
upb_Arena arena;
|
|
39
46
|
void* foo[UPB_ARENA_SIZE_HACK];
|
|
@@ -44,19 +51,66 @@ typedef struct upb_Decoder {
|
|
|
44
51
|
#ifndef NDEBUG
|
|
45
52
|
const char* debug_tagstart;
|
|
46
53
|
const char* debug_valstart;
|
|
54
|
+
char* trace_ptr;
|
|
55
|
+
char* trace_end;
|
|
47
56
|
#endif
|
|
48
57
|
} upb_Decoder;
|
|
49
58
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
59
|
+
UPB_INLINE const char* upb_Decoder_Init(upb_Decoder* d, const char* buf,
|
|
60
|
+
size_t size,
|
|
61
|
+
const upb_ExtensionRegistry* extreg,
|
|
62
|
+
int options, upb_Arena* arena,
|
|
63
|
+
char* trace_buf, size_t trace_size) {
|
|
64
|
+
upb_EpsCopyInputStream_Init(&d->input, &buf, size,
|
|
65
|
+
options & kUpb_DecodeOption_AliasString);
|
|
66
|
+
|
|
67
|
+
d->extreg = extreg;
|
|
68
|
+
d->depth = upb_DecodeOptions_GetEffectiveMaxDepth(options);
|
|
69
|
+
d->end_group = DECODE_NOGROUP;
|
|
70
|
+
d->options = (uint16_t)options;
|
|
71
|
+
d->missing_required = false;
|
|
72
|
+
d->status = kUpb_DecodeStatus_Ok;
|
|
73
|
+
d->message_is_done = false;
|
|
74
|
+
#ifndef NDEBUG
|
|
75
|
+
d->trace_ptr = trace_buf;
|
|
76
|
+
d->trace_end = UPB_PTRADD(trace_buf, trace_size);
|
|
77
|
+
#endif
|
|
78
|
+
if (trace_buf) *trace_buf = 0; // Null-terminate.
|
|
79
|
+
|
|
80
|
+
// Violating the encapsulation of the arena for performance reasons.
|
|
81
|
+
// This is a temporary arena that we swap into and swap out of when we are
|
|
82
|
+
// done. The temporary arena only needs to be able to handle allocation,
|
|
83
|
+
// not fuse or free, so it does not need many of the members to be initialized
|
|
84
|
+
// (particularly parent_or_count).
|
|
85
|
+
UPB_PRIVATE(_upb_Arena_SwapIn)(&d->arena, arena);
|
|
86
|
+
return buf;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
UPB_INLINE upb_DecodeStatus upb_Decoder_Destroy(upb_Decoder* d,
|
|
90
|
+
upb_Arena* arena) {
|
|
91
|
+
UPB_PRIVATE(_upb_Arena_SwapOut)(arena, &d->arena);
|
|
92
|
+
return d->status;
|
|
93
|
+
}
|
|
58
94
|
|
|
59
|
-
|
|
95
|
+
// Trace events are used to trace the progress of the decoder.
|
|
96
|
+
// Events:
|
|
97
|
+
// 'D' Fast dispatch
|
|
98
|
+
// 'F' Field successfully parsed fast.
|
|
99
|
+
// '<' Fallback to MiniTable parser.
|
|
100
|
+
// 'M' Field successfully parsed with MiniTable.
|
|
101
|
+
// 'X' Truncated -- trace buffer is full, further events were discarded.
|
|
102
|
+
UPB_INLINE void _upb_Decoder_Trace(upb_Decoder* d, char event) {
|
|
103
|
+
#ifndef NDEBUG
|
|
104
|
+
if (d->trace_ptr == NULL) return;
|
|
105
|
+
if (d->trace_ptr == d->trace_end - 1) {
|
|
106
|
+
d->trace_ptr[-1] = 'X'; // Truncated.
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
d->trace_ptr[0] = event;
|
|
110
|
+
d->trace_ptr[1] = '\0';
|
|
111
|
+
d->trace_ptr++;
|
|
112
|
+
#endif
|
|
113
|
+
};
|
|
60
114
|
|
|
61
115
|
UPB_INLINE
|
|
62
116
|
bool _upb_Decoder_VerifyUtf8Inline(const char* ptr, int len) {
|
|
@@ -80,41 +134,25 @@ UPB_INLINE const upb_MiniTable* decode_totablep(intptr_t table) {
|
|
|
80
134
|
const char* _upb_Decoder_IsDoneFallback(upb_EpsCopyInputStream* e,
|
|
81
135
|
const char* ptr, int overrun);
|
|
82
136
|
|
|
137
|
+
const char* _upb_Decoder_DecodeMessage(upb_Decoder* d, const char* ptr,
|
|
138
|
+
upb_Message* msg,
|
|
139
|
+
const upb_MiniTable* layout);
|
|
140
|
+
|
|
83
141
|
UPB_INLINE bool _upb_Decoder_IsDone(upb_Decoder* d, const char** ptr) {
|
|
84
142
|
return upb_EpsCopyInputStream_IsDoneWithCallback(
|
|
85
143
|
&d->input, ptr, &_upb_Decoder_IsDoneFallback);
|
|
86
144
|
}
|
|
87
145
|
|
|
146
|
+
UPB_NORETURN void* _upb_Decoder_ErrorJmp(upb_Decoder* d,
|
|
147
|
+
upb_DecodeStatus status);
|
|
148
|
+
|
|
88
149
|
UPB_INLINE const char* _upb_Decoder_BufferFlipCallback(
|
|
89
150
|
upb_EpsCopyInputStream* e, const char* old_end, const char* new_start) {
|
|
90
151
|
upb_Decoder* d = (upb_Decoder*)e;
|
|
91
|
-
if (!old_end)
|
|
152
|
+
if (!old_end) _upb_Decoder_ErrorJmp(d, kUpb_DecodeStatus_Malformed);
|
|
92
153
|
return new_start;
|
|
93
154
|
}
|
|
94
155
|
|
|
95
|
-
#if UPB_FASTTABLE
|
|
96
|
-
UPB_INLINE
|
|
97
|
-
const char* _upb_FastDecoder_TagDispatch(upb_Decoder* d, const char* ptr,
|
|
98
|
-
upb_Message* msg, intptr_t table,
|
|
99
|
-
uint64_t hasbits, uint64_t tag) {
|
|
100
|
-
const upb_MiniTable* table_p = decode_totablep(table);
|
|
101
|
-
uint8_t mask = table;
|
|
102
|
-
uint64_t data;
|
|
103
|
-
size_t idx = tag & mask;
|
|
104
|
-
UPB_ASSUME((idx & 7) == 0);
|
|
105
|
-
idx >>= 3;
|
|
106
|
-
data = table_p->UPB_PRIVATE(fasttable)[idx].field_data ^ tag;
|
|
107
|
-
UPB_MUSTTAIL return table_p->UPB_PRIVATE(fasttable)[idx].field_parser(
|
|
108
|
-
d, ptr, msg, table, hasbits, data);
|
|
109
|
-
}
|
|
110
|
-
#endif
|
|
111
|
-
|
|
112
|
-
UPB_INLINE uint32_t _upb_FastDecoder_LoadTag(const char* ptr) {
|
|
113
|
-
uint16_t tag;
|
|
114
|
-
memcpy(&tag, ptr, 2);
|
|
115
|
-
return tag;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
156
|
#include "upb/port/undef.inc"
|
|
119
157
|
|
|
120
158
|
#endif /* UPB_WIRE_INTERNAL_DECODER_H_ */
|
|
@@ -8,6 +8,11 @@
|
|
|
8
8
|
#ifndef UPB_WIRE_INTERNAL_READER_H_
|
|
9
9
|
#define UPB_WIRE_INTERNAL_READER_H_
|
|
10
10
|
|
|
11
|
+
#include <stddef.h>
|
|
12
|
+
#include <stdint.h>
|
|
13
|
+
|
|
14
|
+
#include "upb/wire/eps_copy_input_stream.h"
|
|
15
|
+
|
|
11
16
|
// Must be last.
|
|
12
17
|
#include "upb/port/def.inc"
|
|
13
18
|
|
|
@@ -24,22 +29,36 @@ extern "C" {
|
|
|
24
29
|
#endif
|
|
25
30
|
|
|
26
31
|
UPB_PRIVATE(_upb_WireReader_LongVarint)
|
|
27
|
-
UPB_PRIVATE(
|
|
32
|
+
UPB_PRIVATE(_upb_WireReader_ReadLongVarint32)(const char* ptr, uint32_t val);
|
|
33
|
+
UPB_PRIVATE(_upb_WireReader_LongVarint)
|
|
34
|
+
UPB_PRIVATE(_upb_WireReader_ReadLongVarint64)(const char* ptr, uint64_t val);
|
|
28
35
|
|
|
29
36
|
UPB_FORCEINLINE const char* UPB_PRIVATE(_upb_WireReader_ReadVarint)(
|
|
30
|
-
const char* ptr, uint64_t* val,
|
|
31
|
-
|
|
37
|
+
const char* ptr, uint64_t* val, upb_EpsCopyInputStream* stream) {
|
|
38
|
+
UPB_PRIVATE(upb_EpsCopyInputStream_ConsumeBytes)(stream, 10);
|
|
39
|
+
uint8_t byte = *ptr;
|
|
32
40
|
if (UPB_LIKELY((byte & 0x80) == 0)) {
|
|
33
|
-
*val =
|
|
41
|
+
*val = byte;
|
|
34
42
|
return ptr + 1;
|
|
35
43
|
}
|
|
36
|
-
const char* start = ptr;
|
|
37
44
|
UPB_PRIVATE(_upb_WireReader_LongVarint)
|
|
38
|
-
res = UPB_PRIVATE(
|
|
39
|
-
if (!res.ptr
|
|
40
|
-
|
|
41
|
-
|
|
45
|
+
res = UPB_PRIVATE(_upb_WireReader_ReadLongVarint64)(ptr, byte);
|
|
46
|
+
if (UPB_UNLIKELY(!res.ptr)) return NULL;
|
|
47
|
+
*val = res.val;
|
|
48
|
+
return res.ptr;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
UPB_FORCEINLINE const char* UPB_PRIVATE(_upb_WireReader_ReadTag)(
|
|
52
|
+
const char* ptr, uint32_t* val, upb_EpsCopyInputStream* stream) {
|
|
53
|
+
UPB_PRIVATE(upb_EpsCopyInputStream_ConsumeBytes)(stream, 5);
|
|
54
|
+
uint8_t byte = *ptr;
|
|
55
|
+
if (UPB_LIKELY((byte & 0x80) == 0)) {
|
|
56
|
+
*val = byte;
|
|
57
|
+
return ptr + 1;
|
|
42
58
|
}
|
|
59
|
+
UPB_PRIVATE(_upb_WireReader_LongVarint)
|
|
60
|
+
res = UPB_PRIVATE(_upb_WireReader_ReadLongVarint32)(ptr, byte);
|
|
61
|
+
if (UPB_UNLIKELY(!res.ptr)) return NULL;
|
|
43
62
|
*val = res.val;
|
|
44
63
|
return res.ptr;
|
|
45
64
|
}
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
#include "upb/port/def.inc"
|
|
18
18
|
|
|
19
19
|
UPB_NOINLINE UPB_PRIVATE(_upb_WireReader_LongVarint)
|
|
20
|
-
UPB_PRIVATE(
|
|
20
|
+
UPB_PRIVATE(_upb_WireReader_ReadLongVarint64)(const char* ptr,
|
|
21
|
+
uint64_t val) {
|
|
21
22
|
UPB_PRIVATE(_upb_WireReader_LongVarint) ret = {NULL, 0};
|
|
22
23
|
uint64_t byte;
|
|
23
24
|
for (int i = 1; i < 10; i++) {
|
|
@@ -32,6 +33,23 @@ UPB_NOINLINE UPB_PRIVATE(_upb_WireReader_LongVarint)
|
|
|
32
33
|
return ret;
|
|
33
34
|
}
|
|
34
35
|
|
|
36
|
+
UPB_NOINLINE UPB_PRIVATE(_upb_WireReader_LongVarint)
|
|
37
|
+
UPB_PRIVATE(_upb_WireReader_ReadLongVarint32)(const char* ptr,
|
|
38
|
+
uint32_t val) {
|
|
39
|
+
UPB_PRIVATE(_upb_WireReader_LongVarint) ret = {NULL, 0};
|
|
40
|
+
uint64_t byte;
|
|
41
|
+
for (int i = 1; i < 5; i++) {
|
|
42
|
+
byte = (uint8_t)ptr[i];
|
|
43
|
+
val += (byte - 1) << (i * 7);
|
|
44
|
+
if (!(byte & 0x80)) {
|
|
45
|
+
ret.ptr = ptr + i + 1;
|
|
46
|
+
ret.val = val;
|
|
47
|
+
return ret;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return ret;
|
|
51
|
+
}
|
|
52
|
+
|
|
35
53
|
const char* UPB_PRIVATE(_upb_WireReader_SkipGroup)(
|
|
36
54
|
const char* ptr, uint32_t tag, int depth_limit,
|
|
37
55
|
upb_EpsCopyInputStream* stream) {
|
|
@@ -39,7 +57,7 @@ const char* UPB_PRIVATE(_upb_WireReader_SkipGroup)(
|
|
|
39
57
|
uint32_t end_group_tag = (tag & ~7ULL) | kUpb_WireType_EndGroup;
|
|
40
58
|
while (!upb_EpsCopyInputStream_IsDone(stream, &ptr)) {
|
|
41
59
|
uint32_t tag;
|
|
42
|
-
ptr = upb_WireReader_ReadTag(ptr, &tag);
|
|
60
|
+
ptr = upb_WireReader_ReadTag(ptr, &tag, stream);
|
|
43
61
|
if (!ptr) return NULL;
|
|
44
62
|
if (tag == end_group_tag) return ptr;
|
|
45
63
|
ptr = _upb_WireReader_SkipValue(ptr, tag, depth_limit, stream);
|
|
@@ -8,6 +8,10 @@
|
|
|
8
8
|
#ifndef UPB_WIRE_READER_H_
|
|
9
9
|
#define UPB_WIRE_READER_H_
|
|
10
10
|
|
|
11
|
+
#include <stddef.h>
|
|
12
|
+
#include <stdint.h>
|
|
13
|
+
#include <string.h>
|
|
14
|
+
|
|
11
15
|
#include "upb/base/internal/endian.h"
|
|
12
16
|
#include "upb/wire/eps_copy_input_stream.h"
|
|
13
17
|
#include "upb/wire/internal/reader.h"
|
|
@@ -32,13 +36,9 @@ extern "C" {
|
|
|
32
36
|
// REQUIRES: there must be at least 10 bytes of data available at `ptr`.
|
|
33
37
|
// Bounds checks must be performed before calling this function, preferably
|
|
34
38
|
// by calling upb_EpsCopyInputStream_IsDone().
|
|
35
|
-
UPB_FORCEINLINE const char* upb_WireReader_ReadTag(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
ptr = UPB_PRIVATE(_upb_WireReader_ReadVarint)(ptr, &val, 5, UINT32_MAX);
|
|
39
|
-
if (!ptr) return NULL;
|
|
40
|
-
*tag = val;
|
|
41
|
-
return ptr;
|
|
39
|
+
UPB_FORCEINLINE const char* upb_WireReader_ReadTag(
|
|
40
|
+
const char* ptr, uint32_t* tag, upb_EpsCopyInputStream* stream) {
|
|
41
|
+
return UPB_PRIVATE(_upb_WireReader_ReadTag)(ptr, tag, stream);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
// Given a tag, returns the field number.
|
|
@@ -47,9 +47,9 @@ UPB_API_INLINE uint32_t upb_WireReader_GetFieldNumber(uint32_t tag);
|
|
|
47
47
|
// Given a tag, returns the wire type.
|
|
48
48
|
UPB_API_INLINE uint8_t upb_WireReader_GetWireType(uint32_t tag);
|
|
49
49
|
|
|
50
|
-
UPB_INLINE const char* upb_WireReader_ReadVarint(
|
|
51
|
-
|
|
52
|
-
return UPB_PRIVATE(_upb_WireReader_ReadVarint)(ptr, val,
|
|
50
|
+
UPB_INLINE const char* upb_WireReader_ReadVarint(
|
|
51
|
+
const char* ptr, uint64_t* val, upb_EpsCopyInputStream* stream) {
|
|
52
|
+
return UPB_PRIVATE(_upb_WireReader_ReadVarint)(ptr, val, stream);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
// Skips data for a varint, returning a pointer past the end of the varint, or
|
|
@@ -58,9 +58,10 @@ UPB_INLINE const char* upb_WireReader_ReadVarint(const char* ptr,
|
|
|
58
58
|
// REQUIRES: there must be at least 10 bytes of data available at `ptr`.
|
|
59
59
|
// Bounds checks must be performed before calling this function, preferably
|
|
60
60
|
// by calling upb_EpsCopyInputStream_IsDone().
|
|
61
|
-
UPB_INLINE const char* upb_WireReader_SkipVarint(
|
|
61
|
+
UPB_INLINE const char* upb_WireReader_SkipVarint(
|
|
62
|
+
const char* ptr, upb_EpsCopyInputStream* stream) {
|
|
62
63
|
uint64_t val;
|
|
63
|
-
return upb_WireReader_ReadVarint(ptr, &val);
|
|
64
|
+
return upb_WireReader_ReadVarint(ptr, &val, stream);
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
// Reads a varint indicating the size of a delimited field into `size`, or
|
|
@@ -69,9 +70,10 @@ UPB_INLINE const char* upb_WireReader_SkipVarint(const char* ptr) {
|
|
|
69
70
|
// REQUIRES: there must be at least 10 bytes of data available at `ptr`.
|
|
70
71
|
// Bounds checks must be performed before calling this function, preferably
|
|
71
72
|
// by calling upb_EpsCopyInputStream_IsDone().
|
|
72
|
-
UPB_INLINE const char* upb_WireReader_ReadSize(const char* ptr, int* size
|
|
73
|
+
UPB_INLINE const char* upb_WireReader_ReadSize(const char* ptr, int* size,
|
|
74
|
+
upb_EpsCopyInputStream* stream) {
|
|
73
75
|
uint64_t size64;
|
|
74
|
-
ptr = upb_WireReader_ReadVarint(ptr, &size64);
|
|
76
|
+
ptr = upb_WireReader_ReadVarint(ptr, &size64, stream);
|
|
75
77
|
if (!ptr || size64 >= INT32_MAX) return NULL;
|
|
76
78
|
*size = size64;
|
|
77
79
|
return ptr;
|
|
@@ -82,7 +84,9 @@ UPB_INLINE const char* upb_WireReader_ReadSize(const char* ptr, int* size) {
|
|
|
82
84
|
// REQUIRES: there must be at least 4 bytes of data available at `ptr`.
|
|
83
85
|
// Bounds checks must be performed before calling this function, preferably
|
|
84
86
|
// by calling upb_EpsCopyInputStream_IsDone().
|
|
85
|
-
UPB_INLINE const char* upb_WireReader_ReadFixed32(
|
|
87
|
+
UPB_INLINE const char* upb_WireReader_ReadFixed32(
|
|
88
|
+
const char* ptr, void* val, upb_EpsCopyInputStream* stream) {
|
|
89
|
+
UPB_PRIVATE(upb_EpsCopyInputStream_ConsumeBytes)(stream, 4);
|
|
86
90
|
uint32_t uval;
|
|
87
91
|
memcpy(&uval, ptr, 4);
|
|
88
92
|
uval = upb_BigEndian32(uval);
|
|
@@ -95,7 +99,9 @@ UPB_INLINE const char* upb_WireReader_ReadFixed32(const char* ptr, void* val) {
|
|
|
95
99
|
// REQUIRES: there must be at least 4 bytes of data available at `ptr`.
|
|
96
100
|
// Bounds checks must be performed before calling this function, preferably
|
|
97
101
|
// by calling upb_EpsCopyInputStream_IsDone().
|
|
98
|
-
UPB_INLINE const char* upb_WireReader_ReadFixed64(
|
|
102
|
+
UPB_INLINE const char* upb_WireReader_ReadFixed64(
|
|
103
|
+
const char* ptr, void* val, upb_EpsCopyInputStream* stream) {
|
|
104
|
+
UPB_PRIVATE(upb_EpsCopyInputStream_ConsumeBytes)(stream, 8);
|
|
99
105
|
uint64_t uval;
|
|
100
106
|
memcpy(&uval, ptr, 8);
|
|
101
107
|
uval = upb_BigEndian64(uval);
|
|
@@ -126,15 +132,19 @@ UPB_INLINE const char* _upb_WireReader_SkipValue(
|
|
|
126
132
|
upb_EpsCopyInputStream* stream) {
|
|
127
133
|
switch (upb_WireReader_GetWireType(tag)) {
|
|
128
134
|
case kUpb_WireType_Varint:
|
|
129
|
-
return upb_WireReader_SkipVarint(ptr);
|
|
135
|
+
return upb_WireReader_SkipVarint(ptr, stream);
|
|
130
136
|
case kUpb_WireType_32Bit:
|
|
137
|
+
UPB_PRIVATE(upb_EpsCopyInputStream_ConsumeBytes)(stream, 4);
|
|
131
138
|
return ptr + 4;
|
|
132
139
|
case kUpb_WireType_64Bit:
|
|
140
|
+
UPB_PRIVATE(upb_EpsCopyInputStream_ConsumeBytes)(stream, 8);
|
|
133
141
|
return ptr + 8;
|
|
134
142
|
case kUpb_WireType_Delimited: {
|
|
135
143
|
int size;
|
|
136
|
-
ptr = upb_WireReader_ReadSize(ptr, &size);
|
|
137
|
-
if (!ptr)
|
|
144
|
+
ptr = upb_WireReader_ReadSize(ptr, &size, stream);
|
|
145
|
+
if (!ptr || !upb_EpsCopyInputStream_CheckSize(stream, ptr, size)) {
|
|
146
|
+
return NULL;
|
|
147
|
+
}
|
|
138
148
|
ptr += size;
|
|
139
149
|
return ptr;
|
|
140
150
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#ifndef GOOGLE_UPB_UPB_WIRE_WRITER_H__
|
|
2
|
+
#define GOOGLE_UPB_UPB_WIRE_WRITER_H__
|
|
3
|
+
|
|
4
|
+
#include <stdint.h>
|
|
5
|
+
|
|
6
|
+
// Must be last.
|
|
7
|
+
#include "upb/port/def.inc"
|
|
8
|
+
|
|
9
|
+
UPB_FORCEINLINE uint32_t
|
|
10
|
+
UPB_PRIVATE(upb_WireWriter_VarintUnusedSizeFromLeadingZeros64)(uint64_t clz) {
|
|
11
|
+
// Calculate how many bytes of the possible 10 bytes we will *not* encode,
|
|
12
|
+
// because they are part of a zero prefix. For the number 300, it would use 2
|
|
13
|
+
// bytes encoded, so the number of bytes to skip would be 8. Adding 7 to the
|
|
14
|
+
// clz input ensures that we're rounding up.
|
|
15
|
+
return (((uint32_t)clz + 7) * 9) >> 6;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
#include "upb/port/undef.inc"
|
|
19
|
+
|
|
20
|
+
#endif // GOOGLE_UPB_UPB_WIRE_WRITER_H__
|
|
@@ -22,25 +22,25 @@
|
|
|
22
22
|
#include <string.h>
|
|
23
23
|
|
|
24
24
|
#if defined(__GNUC__)
|
|
25
|
-
#define FORCE_INLINE_ATTR __attribute__((always_inline))
|
|
25
|
+
#define FORCE_INLINE_ATTR __attribute__((always_inline)) inline
|
|
26
26
|
#elif defined(_MSC_VER)
|
|
27
27
|
#define FORCE_INLINE_ATTR __forceinline
|
|
28
28
|
#else
|
|
29
|
-
#define FORCE_INLINE_ATTR
|
|
29
|
+
#define FORCE_INLINE_ATTR inline
|
|
30
30
|
#endif
|
|
31
31
|
|
|
32
|
-
static FORCE_INLINE_ATTR
|
|
32
|
+
static FORCE_INLINE_ATTR uint64_t utf8_range_UnalignedLoad64(
|
|
33
33
|
const void* p) {
|
|
34
34
|
uint64_t t;
|
|
35
35
|
memcpy(&t, p, sizeof t);
|
|
36
36
|
return t;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
static FORCE_INLINE_ATTR
|
|
39
|
+
static FORCE_INLINE_ATTR int utf8_range_AsciiIsAscii(unsigned char c) {
|
|
40
40
|
return c < 128;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
static FORCE_INLINE_ATTR
|
|
43
|
+
static FORCE_INLINE_ATTR int utf8_range_IsTrailByteOk(const char c) {
|
|
44
44
|
return (int8_t)(c) <= (int8_t)(0xBF);
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -175,7 +175,7 @@ static inline const char* utf8_range_SkipAscii(const char* data,
|
|
|
175
175
|
#include "utf8_range_neon.inc"
|
|
176
176
|
#endif
|
|
177
177
|
|
|
178
|
-
static FORCE_INLINE_ATTR
|
|
178
|
+
static FORCE_INLINE_ATTR size_t utf8_range_Validate(
|
|
179
179
|
const char* data, size_t len, int return_position) {
|
|
180
180
|
if (len == 0) return 1 - return_position;
|
|
181
181
|
// Save buffer start address for later use
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* straightforward.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
static FORCE_INLINE_ATTR
|
|
9
|
+
static FORCE_INLINE_ATTR size_t utf8_range_ValidateUTF8Simd(
|
|
10
10
|
const char* data_original, const char* data, const char* end,
|
|
11
11
|
int return_position) {
|
|
12
12
|
const uint8x16_t first_len_tbl = {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
#include <smmintrin.h>
|
|
3
3
|
#include <tmmintrin.h>
|
|
4
4
|
|
|
5
|
-
static FORCE_INLINE_ATTR
|
|
5
|
+
static FORCE_INLINE_ATTR size_t utf8_range_ValidateUTF8Simd(
|
|
6
6
|
const char* data_original, const char* data, const char* end,
|
|
7
7
|
int return_position) {
|
|
8
8
|
/* This code checks that utf-8 ranges are structurally valid 16 bytes at once
|