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.
Files changed (889) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +301 -292
  3. data/include/grpc/context_types.h +28 -0
  4. data/include/grpc/credentials.h +11 -0
  5. data/include/grpc/grpc_security_constants.h +12 -0
  6. data/include/grpc/module.modulemap +1 -0
  7. data/src/core/call/call_spine.h +29 -6
  8. data/src/core/call/client_call.cc +2 -2
  9. data/src/core/call/client_call.h +6 -0
  10. data/src/core/call/interception_chain.h +12 -1
  11. data/src/core/call/metadata_batch.h +37 -2
  12. data/src/core/call/server_call.h +4 -0
  13. data/src/core/client_channel/client_channel.cc +2 -1
  14. data/src/core/client_channel/client_channel_filter.cc +2 -2
  15. data/src/core/credentials/transport/tls/grpc_tls_credentials_options.cc +8 -0
  16. data/src/core/credentials/transport/tls/grpc_tls_credentials_options.h +9 -2
  17. data/src/core/credentials/transport/tls/ssl_utils.cc +4 -0
  18. data/src/core/credentials/transport/tls/ssl_utils.h +3 -0
  19. data/src/core/credentials/transport/tls/tls_security_connector.cc +3 -2
  20. data/src/core/ext/filters/http/client_authority_filter.cc +4 -0
  21. data/src/core/ext/filters/http/http_filters_plugin.cc +6 -0
  22. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +1 -1
  23. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +7 -0
  24. data/src/core/ext/transport/chttp2/transport/frame.cc +1 -1
  25. data/src/core/ext/transport/chttp2/transport/frame.h +1 -1
  26. data/src/core/ext/transport/chttp2/transport/frame_security.cc +3 -1
  27. data/src/core/ext/transport/chttp2/transport/header_assembler.h +8 -8
  28. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +112 -155
  29. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +38 -37
  30. data/src/core/ext/transport/chttp2/transport/http2_settings_promises.h +11 -1
  31. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +0 -38
  32. data/src/core/ext/transport/chttp2/transport/http2_transport.h +30 -37
  33. data/src/core/ext/transport/chttp2/transport/incoming_metadata_tracker.h +74 -5
  34. data/src/core/ext/transport/chttp2/transport/internal.h +1 -0
  35. data/src/core/ext/transport/chttp2/transport/parsing.cc +4 -1
  36. data/src/core/ext/transport/chttp2/transport/security_frame.h +1 -1
  37. data/src/core/ext/transport/chttp2/transport/stream.h +29 -11
  38. data/src/core/ext/transport/chttp2/transport/transport_common.cc +3 -0
  39. data/src/core/ext/transport/chttp2/transport/writable_streams.h +2 -77
  40. data/src/core/ext/upb-gen/cel/expr/checked.upb_minitable.c +11 -93
  41. data/src/core/ext/upb-gen/cel/expr/syntax.upb_minitable.c +15 -129
  42. data/src/core/ext/upb-gen/envoy/admin/v3/certs.upb_minitable.c +4 -30
  43. data/src/core/ext/upb-gen/envoy/admin/v3/clusters.upb_minitable.c +4 -54
  44. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump.upb_minitable.c +4 -28
  45. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb_minitable.c +15 -133
  46. data/src/core/ext/upb-gen/envoy/admin/v3/init_dump.upb_minitable.c +2 -12
  47. data/src/core/ext/upb-gen/envoy/admin/v3/listeners.upb_minitable.c +2 -12
  48. data/src/core/ext/upb-gen/envoy/admin/v3/memory.upb_minitable.c +1 -11
  49. data/src/core/ext/upb-gen/envoy/admin/v3/metrics.upb_minitable.c +1 -7
  50. data/src/core/ext/upb-gen/envoy/admin/v3/mutex_stats.upb_minitable.c +1 -7
  51. data/src/core/ext/upb-gen/envoy/admin/v3/server_info.upb_minitable.c +2 -46
  52. data/src/core/ext/upb-gen/envoy/admin/v3/tap.upb_minitable.c +1 -5
  53. data/src/core/ext/upb-gen/envoy/annotations/resource.upb_minitable.c +1 -5
  54. data/src/core/ext/upb-gen/envoy/config/accesslog/v3/accesslog.upb_minitable.c +10 -80
  55. data/src/core/ext/upb-gen/envoy/config/bootstrap/v3/bootstrap.upb_minitable.c +18 -162
  56. data/src/core/ext/upb-gen/envoy/config/cluster/v3/circuit_breaker.upb_minitable.c +2 -18
  57. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +16 -148
  58. data/src/core/ext/upb-gen/envoy/config/cluster/v3/filter.upb_minitable.c +1 -5
  59. data/src/core/ext/upb-gen/envoy/config/cluster/v3/outlier_detection.upb_minitable.c +1 -35
  60. data/src/core/ext/upb-gen/envoy/config/common/matcher/v3/matcher.upb_minitable.c +13 -101
  61. data/src/core/ext/upb-gen/envoy/config/common/mutation_rules/v3/mutation_rules.upb_minitable.c +1 -7
  62. data/src/core/ext/upb-gen/envoy/config/core/v3/address.upb_minitable.c +6 -48
  63. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +29 -207
  64. data/src/core/ext/upb-gen/envoy/config/core/v3/cel.upb_minitable.c +1 -7
  65. data/src/core/ext/upb-gen/envoy/config/core/v3/config_source.upb_minitable.c +5 -59
  66. data/src/core/ext/upb-gen/envoy/config/core/v3/event_service_config.upb_minitable.c +1 -5
  67. data/src/core/ext/upb-gen/envoy/config/core/v3/extension.upb_minitable.c +1 -5
  68. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_method_list.upb_minitable.c +2 -12
  69. data/src/core/ext/upb-gen/envoy/config/core/v3/grpc_service.upb_minitable.c +11 -111
  70. data/src/core/ext/upb-gen/envoy/config/core/v3/health_check.upb_minitable.c +9 -97
  71. data/src/core/ext/upb-gen/envoy/config/core/v3/http_service.upb_minitable.c +1 -7
  72. data/src/core/ext/upb-gen/envoy/config/core/v3/http_uri.upb_minitable.c +1 -7
  73. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +10 -130
  74. data/src/core/ext/upb-gen/envoy/config/core/v3/proxy_protocol.upb_minitable.c +4 -26
  75. data/src/core/ext/upb-gen/envoy/config/core/v3/resolver.upb_minitable.c +2 -12
  76. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +1 -7
  77. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +2 -16
  78. data/src/core/ext/upb-gen/envoy/config/core/v3/substitution_format_string.upb_minitable.c +2 -16
  79. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint.upb_minitable.c +4 -28
  80. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/endpoint_components.upb_minitable.c +6 -64
  81. data/src/core/ext/upb-gen/envoy/config/endpoint/v3/load_report.upb_minitable.c +9 -53
  82. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener.upb_minitable.c +4 -52
  83. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +6 -68
  84. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +1 -19
  85. data/src/core/ext/upb-gen/envoy/config/metrics/v3/metrics_service.upb_minitable.c +1 -11
  86. data/src/core/ext/upb-gen/envoy/config/metrics/v3/stats.upb_minitable.c +8 -52
  87. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb_minitable.c +11 -59
  88. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +11 -93
  89. data/src/core/ext/upb-gen/envoy/config/route/v3/route.upb_minitable.c +2 -40
  90. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +48 -550
  91. data/src/core/ext/upb-gen/envoy/config/route/v3/scoped_route.upb_minitable.c +3 -21
  92. data/src/core/ext/upb-gen/envoy/config/tap/v3/common.upb_minitable.c +10 -80
  93. data/src/core/ext/upb-gen/envoy/config/trace/v3/datadog.upb_minitable.c +1 -7
  94. data/src/core/ext/upb-gen/envoy/config/trace/v3/dynamic_ot.upb_minitable.c +1 -5
  95. data/src/core/ext/upb-gen/envoy/config/trace/v3/http_tracer.upb_minitable.c +1 -7
  96. data/src/core/ext/upb-gen/envoy/config/trace/v3/lightstep.upb_minitable.c +1 -7
  97. data/src/core/ext/upb-gen/envoy/config/trace/v3/opentelemetry.upb_minitable.c +1 -11
  98. data/src/core/ext/upb-gen/envoy/config/trace/v3/skywalking.upb_minitable.c +1 -7
  99. data/src/core/ext/upb-gen/envoy/config/trace/v3/xray.upb_minitable.c +2 -12
  100. data/src/core/ext/upb-gen/envoy/config/trace/v3/zipkin.upb_minitable.c +1 -19
  101. data/src/core/ext/upb-gen/envoy/data/accesslog/v3/accesslog.upb_minitable.c +16 -182
  102. data/src/core/ext/upb-gen/envoy/extensions/clusters/aggregate/v3/cluster.upb_minitable.c +2 -12
  103. data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb.h +240 -0
  104. data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.c +78 -0
  105. data/src/core/ext/upb-gen/envoy/extensions/common/matching/v3/extension_matcher.upb_minitable.h +34 -0
  106. data/src/core/ext/upb-gen/envoy/extensions/filters/common/fault/v3/fault.upb_minitable.c +3 -23
  107. data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb.h +73 -0
  108. data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.c +42 -0
  109. data/src/core/ext/upb-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upb_minitable.h +32 -0
  110. data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb.h +431 -0
  111. data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.c +111 -0
  112. data/src/core/ext/upb-gen/envoy/extensions/filters/http/composite/v3/composite.upb_minitable.h +38 -0
  113. data/src/core/ext/upb-gen/envoy/extensions/filters/http/fault/v3/fault.upb_minitable.c +2 -30
  114. data/src/core/ext/upb-gen/envoy/extensions/filters/http/gcp_authn/v3/gcp_authn.upb_minitable.c +3 -23
  115. data/src/core/ext/upb-gen/envoy/extensions/filters/http/rbac/v3/rbac.upb_minitable.c +1 -11
  116. data/src/core/ext/upb-gen/envoy/extensions/filters/http/router/v3/router.upb_minitable.c +2 -24
  117. data/src/core/ext/upb-gen/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb_minitable.c +2 -14
  118. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +19 -187
  119. data/src/core/ext/upb-gen/envoy/extensions/grpc_service/call_credentials/access_token/v3/access_token_credentials.upb_minitable.c +1 -5
  120. 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
  121. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/common/v3/common.upb_minitable.c +3 -25
  122. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/pick_first/v3/pick_first.upb_minitable.c +1 -5
  123. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb_minitable.c +1 -11
  124. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/common.upb_minitable.c +7 -71
  125. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/secret.upb_minitable.c +3 -21
  126. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +6 -70
  127. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb_minitable.c +2 -10
  128. data/src/core/ext/upb-gen/envoy/extensions/upstreams/http/v3/http_protocol_options.upb_minitable.c +2 -26
  129. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +13 -123
  130. data/src/core/ext/upb-gen/envoy/service/load_stats/v3/lrs.upb_minitable.c +2 -18
  131. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb_minitable.c +5 -53
  132. data/src/core/ext/upb-gen/envoy/type/http/v3/cookie.upb_minitable.c +2 -18
  133. data/src/core/ext/upb-gen/envoy/type/http/v3/path_transformation.upb_minitable.c +2 -12
  134. data/src/core/ext/upb-gen/envoy/type/matcher/v3/address.upb_minitable.c +1 -5
  135. data/src/core/ext/upb-gen/envoy/type/matcher/v3/filter_state.upb_minitable.c +1 -7
  136. data/src/core/ext/upb-gen/envoy/type/matcher/v3/http_inputs.upb_minitable.c +5 -25
  137. data/src/core/ext/upb-gen/envoy/type/matcher/v3/metadata.upb_minitable.c +2 -16
  138. data/src/core/ext/upb-gen/envoy/type/matcher/v3/node.upb_minitable.c +1 -7
  139. data/src/core/ext/upb-gen/envoy/type/matcher/v3/number.upb_minitable.c +2 -2
  140. data/src/core/ext/upb-gen/envoy/type/matcher/v3/path.upb_minitable.c +1 -5
  141. data/src/core/ext/upb-gen/envoy/type/matcher/v3/regex.upb_minitable.c +2 -14
  142. data/src/core/ext/upb-gen/envoy/type/matcher/v3/string.upb_minitable.c +2 -24
  143. data/src/core/ext/upb-gen/envoy/type/matcher/v3/struct.upb_minitable.c +2 -12
  144. data/src/core/ext/upb-gen/envoy/type/matcher/v3/value.upb_minitable.c +3 -21
  145. data/src/core/ext/upb-gen/envoy/type/metadata/v3/metadata.upb_minitable.c +3 -23
  146. data/src/core/ext/upb-gen/envoy/type/tracing/v3/custom_tag.upb_minitable.c +5 -37
  147. data/src/core/ext/upb-gen/envoy/type/v3/hash_policy.upb_minitable.c +2 -12
  148. data/src/core/ext/upb-gen/envoy/type/v3/http_status.upb_minitable.c +1 -5
  149. data/src/core/ext/upb-gen/envoy/type/v3/percent.upb_minitable.c +2 -8
  150. data/src/core/ext/upb-gen/envoy/type/v3/range.upb_minitable.c +4 -16
  151. data/src/core/ext/upb-gen/envoy/type/v3/ratelimit_strategy.upb_minitable.c +2 -14
  152. data/src/core/ext/upb-gen/envoy/type/v3/semantic_version.upb_minitable.c +1 -7
  153. data/src/core/ext/upb-gen/envoy/type/v3/token_bucket.upb_minitable.c +1 -5
  154. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/checked.upb_minitable.c +11 -91
  155. data/src/core/ext/upb-gen/google/api/expr/v1alpha1/syntax.upb_minitable.c +16 -140
  156. data/src/core/ext/upb-gen/google/api/http.upb_minitable.c +3 -33
  157. data/src/core/ext/upb-gen/google/api/httpbody.upb_minitable.c +1 -7
  158. data/src/core/ext/upb-gen/google/protobuf/any.upb_minitable.c +1 -7
  159. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb.h +1 -0
  160. data/src/core/ext/upb-gen/google/protobuf/descriptor.upb_minitable.c +27 -410
  161. data/src/core/ext/upb-gen/google/protobuf/duration.upb_minitable.c +1 -7
  162. data/src/core/ext/upb-gen/google/protobuf/struct.upb_minitable.c +5 -17
  163. data/src/core/ext/upb-gen/google/protobuf/timestamp.upb_minitable.c +1 -7
  164. data/src/core/ext/upb-gen/google/protobuf/wrappers.upb_minitable.c +9 -37
  165. data/src/core/ext/upb-gen/google/rpc/status.upb_minitable.c +1 -7
  166. data/src/core/ext/upb-gen/src/proto/grpc/channelz/channelz.upb_minitable.c +34 -310
  167. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/channelz.upb_minitable.c +3 -23
  168. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/promise.upb_minitable.c +11 -83
  169. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/property_list.upb_minitable.c +8 -46
  170. data/src/core/ext/upb-gen/src/proto/grpc/channelz/v2/service.upb_minitable.c +7 -45
  171. data/src/core/ext/upb-gen/src/proto/grpc/gcp/altscontext.upb_minitable.c +2 -18
  172. data/src/core/ext/upb-gen/src/proto/grpc/gcp/handshaker.upb_minitable.c +12 -108
  173. data/src/core/ext/upb-gen/src/proto/grpc/gcp/transport_security_common.upb_minitable.c +3 -17
  174. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +2 -10
  175. data/src/core/ext/upb-gen/src/proto/grpc/lb/v1/load_balancer.upb_minitable.c +7 -61
  176. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls.upb_minitable.c +3 -25
  177. data/src/core/ext/upb-gen/src/proto/grpc/lookup/v1/rls_config.upb_minitable.c +8 -72
  178. data/src/core/ext/upb-gen/udpa/annotations/migrate.upb_minitable.c +3 -19
  179. data/src/core/ext/upb-gen/udpa/annotations/security.upb_minitable.c +1 -7
  180. data/src/core/ext/upb-gen/udpa/annotations/status.upb_minitable.c +1 -7
  181. data/src/core/ext/upb-gen/udpa/annotations/versioning.upb_minitable.c +1 -5
  182. data/src/core/ext/upb-gen/validate/validate.upb_minitable.c +54 -234
  183. data/src/core/ext/upb-gen/xds/annotations/v3/migrate.upb_minitable.c +3 -19
  184. data/src/core/ext/upb-gen/xds/annotations/v3/security.upb_minitable.c +1 -7
  185. data/src/core/ext/upb-gen/xds/annotations/v3/status.upb_minitable.c +4 -22
  186. data/src/core/ext/upb-gen/xds/annotations/v3/versioning.upb_minitable.c +1 -5
  187. data/src/core/ext/upb-gen/xds/core/v3/authority.upb_minitable.c +1 -5
  188. data/src/core/ext/upb-gen/xds/core/v3/cidr.upb_minitable.c +1 -5
  189. data/src/core/ext/upb-gen/xds/core/v3/collection_entry.upb_minitable.c +2 -14
  190. data/src/core/ext/upb-gen/xds/core/v3/context_params.upb_minitable.c +1 -7
  191. data/src/core/ext/upb-gen/xds/core/v3/extension.upb_minitable.c +1 -5
  192. data/src/core/ext/upb-gen/xds/core/v3/resource.upb_minitable.c +1 -7
  193. data/src/core/ext/upb-gen/xds/core/v3/resource_locator.upb_minitable.c +2 -18
  194. data/src/core/ext/upb-gen/xds/core/v3/resource_name.upb_minitable.c +1 -7
  195. data/src/core/ext/upb-gen/xds/data/orca/v3/orca_load_report.upb_minitable.c +12 -12
  196. data/src/core/ext/upb-gen/xds/service/orca/v3/orca.upb_minitable.c +1 -7
  197. data/src/core/ext/upb-gen/xds/type/matcher/v3/cel.upb_minitable.c +1 -7
  198. data/src/core/ext/upb-gen/xds/type/matcher/v3/domain.upb_minitable.c +2 -10
  199. data/src/core/ext/upb-gen/xds/type/matcher/v3/ip.upb_minitable.c +2 -12
  200. data/src/core/ext/upb-gen/xds/type/matcher/v3/matcher.upb_minitable.c +8 -58
  201. data/src/core/ext/upb-gen/xds/type/matcher/v3/range.upb_minitable.c +6 -30
  202. data/src/core/ext/upb-gen/xds/type/matcher/v3/regex.upb_minitable.c +1 -7
  203. data/src/core/ext/upb-gen/xds/type/matcher/v3/string.upb_minitable.c +2 -24
  204. data/src/core/ext/upb-gen/xds/type/v3/cel.upb_minitable.c +1 -11
  205. data/src/core/ext/upb-gen/xds/type/v3/range.upb_minitable.c +4 -16
  206. data/src/core/ext/upb-gen/xds/type/v3/typed_struct.upb_minitable.c +1 -5
  207. data/src/core/ext/upbdefs-gen/envoy/extensions/common/matching/v3/extension_matcher.upbdefs.c +110 -0
  208. data/src/core/ext/upbdefs-gen/envoy/extensions/common/matching/v3/extension_matcher.upbdefs.h +42 -0
  209. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upbdefs.c +60 -0
  210. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/common/matcher/action/v3/skip_action.upbdefs.h +37 -0
  211. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/composite/v3/composite.upbdefs.c +138 -0
  212. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/http/composite/v3/composite.upbdefs.h +52 -0
  213. data/src/core/ext/upbdefs-gen/google/protobuf/descriptor.upbdefs.c +734 -731
  214. data/src/core/filter/composite/composite_filter.cc +227 -0
  215. data/src/core/filter/composite/composite_filter.h +154 -0
  216. data/src/core/filter/filter_args.h +4 -0
  217. data/src/core/handshaker/security/pipelined_secure_endpoint.cc +163 -41
  218. data/src/core/handshaker/security/pipelining_heuristic_selector.h +151 -0
  219. data/src/core/handshaker/security/secure_endpoint.cc +24 -8
  220. data/src/core/lib/channel/connected_channel.cc +13 -0
  221. data/src/core/lib/channel/promise_based_filter.h +267 -0
  222. data/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc +3 -2
  223. data/src/core/lib/event_engine/extensions/blocking_dns.h +1 -1
  224. data/src/core/lib/event_engine/posix_engine/posix_interface_posix.cc +4 -0
  225. data/src/core/lib/event_engine/windows/windows_engine.cc +11 -3
  226. data/src/core/lib/experiments/experiments.cc +120 -117
  227. data/src/core/lib/experiments/experiments.h +71 -58
  228. data/src/core/lib/promise/detail/promise_factory.h +16 -5
  229. data/src/core/lib/promise/detail/promise_like.h +19 -1
  230. data/src/core/lib/promise/inter_activity_latch.h +5 -8
  231. data/src/core/lib/promise/inter_activity_pipe.h +193 -0
  232. data/src/core/lib/promise/sleep.cc +5 -9
  233. data/src/core/lib/resource_quota/arena.h +1 -1
  234. data/src/core/lib/surface/call.cc +43 -6
  235. data/src/core/lib/surface/call.h +6 -0
  236. data/src/core/lib/surface/call_utils.cc +42 -3
  237. data/src/core/lib/surface/call_utils.h +30 -11
  238. data/src/core/lib/surface/channel_stack_type.cc +8 -0
  239. data/src/core/lib/surface/channel_stack_type.h +4 -0
  240. data/src/core/lib/surface/completion_queue.cc +15 -12
  241. data/src/core/lib/surface/filter_stack_call.h +5 -0
  242. data/src/core/lib/surface/legacy_channel.cc +1 -22
  243. data/src/core/lib/surface/legacy_channel.h +1 -3
  244. data/src/core/lib/surface/version.cc +2 -2
  245. data/src/core/lib/transport/bdp_estimator.cc +6 -3
  246. data/src/core/lib/transport/promise_endpoint.h +13 -17
  247. data/src/core/load_balancing/endpoint_list.cc +0 -8
  248. data/src/core/load_balancing/pick_first/pick_first.cc +5 -14
  249. data/src/core/load_balancing/xds/cds.cc +100 -122
  250. data/src/core/load_balancing/xds/cds.h +58 -0
  251. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -0
  252. data/src/core/resolver/dns/c_ares/grpc_ares_wrapper.cc +1 -1
  253. data/src/core/server/server.cc +19 -35
  254. data/src/core/server/server.h +9 -17
  255. data/src/core/server/xds_server_config_fetcher.cc +0 -24
  256. data/src/core/telemetry/metrics.cc +26 -0
  257. data/src/core/transport/session_endpoint.cc +314 -0
  258. data/src/core/transport/session_endpoint.h +85 -0
  259. data/src/core/tsi/ssl_transport_security.cc +137 -100
  260. data/src/core/tsi/ssl_transport_security.h +8 -0
  261. data/src/core/tsi/ssl_transport_security_utils.cc +25 -1
  262. data/src/core/tsi/ssl_transport_security_utils.h +4 -0
  263. data/src/core/util/sorted_pack.h +69 -44
  264. data/src/core/util/string.cc +8 -0
  265. data/src/core/util/string.h +11 -0
  266. data/src/core/util/table.h +38 -102
  267. data/src/core/util/time_precise.cc +42 -1
  268. data/src/core/util/useful.h +0 -91
  269. data/src/core/util/windows/string_util.cc +4 -2
  270. data/src/core/xds/grpc/file_watcher_certificate_provider_factory.cc +27 -15
  271. data/src/core/xds/grpc/xds_bootstrap_grpc.cc +148 -69
  272. data/src/core/xds/grpc/xds_bootstrap_grpc.h +12 -0
  273. data/src/core/xds/grpc/xds_client_grpc.cc +1 -1
  274. data/src/core/xds/grpc/xds_cluster.cc +54 -37
  275. data/src/core/xds/grpc/xds_cluster.h +0 -1
  276. data/src/core/xds/grpc/xds_common_types.cc +59 -34
  277. data/src/core/xds/grpc/xds_common_types_parser.cc +33 -3
  278. data/src/core/xds/grpc/xds_common_types_parser.h +5 -1
  279. data/src/core/xds/grpc/xds_endpoint.cc +44 -24
  280. data/src/core/xds/grpc/xds_health_status.cc +10 -6
  281. data/src/core/xds/grpc/xds_http_composite_filter.cc +302 -0
  282. data/src/core/xds/grpc/xds_http_composite_filter.h +84 -0
  283. data/src/core/xds/grpc/xds_http_filter_registry.cc +34 -2
  284. data/src/core/xds/grpc/xds_http_filter_registry.h +4 -0
  285. data/src/core/xds/grpc/xds_http_rbac_filter.cc +21 -10
  286. data/src/core/xds/grpc/xds_listener.cc +98 -59
  287. data/src/core/xds/grpc/xds_listener_parser.cc +64 -26
  288. data/src/core/xds/grpc/xds_matcher.cc +92 -49
  289. data/src/core/xds/grpc/xds_metadata.cc +40 -7
  290. data/src/core/xds/grpc/xds_metadata.h +3 -10
  291. data/src/core/xds/grpc/xds_route_config.cc +171 -100
  292. data/src/core/xds/grpc/xds_server_grpc.cc +27 -18
  293. data/src/ruby/bin/math_pb.rb +1 -1
  294. data/src/ruby/ext/grpc/extconf.rb +1 -15
  295. data/src/ruby/ext/grpc/rb_call_credentials.c +1 -0
  296. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
  297. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
  298. data/src/ruby/lib/grpc/version.rb +1 -1
  299. data/src/ruby/pb/generate_proto_ruby.sh +1 -1
  300. data/src/ruby/pb/grpc/health/v1/health_pb.rb +1 -1
  301. data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +1 -1
  302. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +1 -1
  303. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -1
  304. data/src/ruby/spec/client_server_spec.rb +40 -0
  305. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bn/convert.cc +47 -31
  306. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bn/exponentiation.cc +35 -17
  307. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/cbb.cc +8 -14
  308. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/derive_key.cc +15 -13
  309. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_arm_linux.cc +5 -28
  310. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_arm_linux.h +9 -11
  311. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dh/dh_asn1.cc +14 -13
  312. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dsa/dsa.cc +34 -30
  313. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dsa/dsa_asn1.cc +35 -23
  314. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ec/ec_asn1.cc +63 -47
  315. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ec/hash_to_curve.cc +68 -60
  316. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ecdsa/ecdsa_asn1.cc +17 -11
  317. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/evp_asn1.cc +11 -10
  318. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/evp_ctx.cc +11 -10
  319. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_dsa_asn1.cc +6 -6
  320. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_ec_asn1.cc +6 -6
  321. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_ed25519_asn1.cc +6 -6
  322. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_rsa_asn1.cc +6 -6
  323. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_x25519_asn1.cc +6 -6
  324. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/sign.cc +42 -23
  325. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/div.cc.inc +79 -0
  326. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/exponentiation.cc.inc +6 -5
  327. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/gcd.cc.inc +80 -58
  328. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/gcd_extra.cc.inc +45 -29
  329. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/jacobi.cc.inc +16 -7
  330. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/montgomery.cc.inc +24 -10
  331. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/mul.cc.inc +34 -24
  332. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/prime.cc.inc +154 -102
  333. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/shift.cc.inc +8 -3
  334. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/sqrt.cc.inc +78 -1
  335. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/dh/check.cc.inc +53 -35
  336. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/dh/dh.cc.inc +76 -57
  337. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digest/digest.cc.inc +10 -4
  338. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/ec.cc.inc +5 -3
  339. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/padding.cc.inc +26 -19
  340. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/rsa.cc.inc +7 -7
  341. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/rsa_impl.cc.inc +138 -117
  342. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/self_check/self_check.cc.inc +30 -22
  343. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/obj/obj.cc +8 -2
  344. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_lib.cc +13 -8
  345. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs7/pkcs7.cc +6 -5
  346. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs7/pkcs7_x509.cc +3 -6
  347. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs8/p5_pbev2.cc +14 -9
  348. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs8/pkcs8.cc +29 -19
  349. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs8/pkcs8_x509.cc +39 -34
  350. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/rsa_crypt.cc +22 -14
  351. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/a_sign.cc +5 -3
  352. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/asn1_gen.cc +12 -8
  353. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_conf.cc +24 -16
  354. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_info.cc +21 -18
  355. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_x509.cc +57 -52
  356. data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_x509a.cc +32 -16
  357. data/third_party/boringssl-with-bazel/{src/include → include}/openssl/bytestring.h +0 -6
  358. data/third_party/boringssl-with-bazel/{src/ssl → ssl}/handoff.cc +12 -12
  359. data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_asn1.cc +3 -2
  360. data/third_party/upb/upb/base/string_view.h +7 -3
  361. data/third_party/upb/upb/generated_code_support.h +17 -1
  362. data/third_party/upb/upb/hash/common.c +2 -1
  363. data/third_party/upb/upb/mem/alloc.c +2 -1
  364. data/third_party/upb/upb/mem/alloc.h +25 -6
  365. data/third_party/upb/upb/mem/arena.c +225 -73
  366. data/third_party/upb/upb/mem/arena.h +56 -0
  367. data/third_party/upb/upb/mem/arena.hpp +6 -0
  368. data/third_party/upb/upb/mem/internal/arena.h +69 -56
  369. data/third_party/upb/upb/message/accessors.h +4 -0
  370. data/third_party/upb/upb/message/array.h +3 -0
  371. data/third_party/upb/upb/message/copy.c +1 -1
  372. data/third_party/upb/upb/message/internal/accessors.h +10 -0
  373. data/third_party/upb/upb/message/internal/array.h +34 -3
  374. data/third_party/upb/upb/message/internal/message.h +23 -9
  375. data/third_party/upb/upb/mini_descriptor/decode.c +127 -66
  376. data/third_party/upb/upb/mini_descriptor/decode.h +6 -2
  377. data/third_party/upb/upb/mini_descriptor/internal/encode.hpp +2 -0
  378. data/third_party/upb/upb/mini_descriptor/link.c +11 -0
  379. data/third_party/upb/upb/mini_table/extension.h +7 -0
  380. data/third_party/upb/upb/mini_table/extension_registry.c +10 -1
  381. data/third_party/upb/upb/mini_table/extension_registry.h +1 -0
  382. data/third_party/upb/upb/mini_table/internal/extension.h +10 -0
  383. data/third_party/upb/upb/mini_table/internal/field.h +1 -1
  384. data/third_party/upb/upb/mini_table/internal/message.h +69 -9
  385. data/third_party/upb/upb/mini_table/message.c +0 -38
  386. data/third_party/upb/upb/mini_table/message.h +5 -1
  387. data/third_party/upb/upb/port/def.inc +140 -111
  388. data/third_party/upb/upb/port/sanitizers.h +179 -0
  389. data/third_party/upb/upb/port/undef.inc +19 -9
  390. data/third_party/upb/upb/reflection/enum_def.c +7 -3
  391. data/third_party/upb/upb/reflection/enum_def.h +1 -0
  392. data/third_party/upb/upb/reflection/field_def.h +1 -0
  393. data/third_party/upb/upb/reflection/file_def.c +1 -1
  394. data/third_party/upb/upb/reflection/internal/upb_edition_defaults.h +1 -1
  395. data/third_party/upb/upb/reflection/message_def.c +29 -2
  396. data/third_party/upb/upb/reflection/message_def.h +2 -0
  397. data/third_party/upb/upb/text/internal/encode.c +5 -5
  398. data/third_party/upb/upb/wire/decode.c +190 -239
  399. data/third_party/upb/upb/wire/decode.h +14 -5
  400. data/third_party/upb/upb/wire/decode_fast/combinations.h +217 -0
  401. data/third_party/upb/upb/wire/decode_fast/data.h +74 -0
  402. data/third_party/upb/upb/wire/decode_fast/select.c +235 -0
  403. data/third_party/upb/upb/wire/decode_fast/select.h +66 -0
  404. data/third_party/upb/upb/wire/encode.c +332 -203
  405. data/third_party/upb/upb/wire/encode.h +3 -6
  406. data/third_party/upb/upb/wire/eps_copy_input_stream.h +64 -6
  407. data/third_party/upb/upb/wire/internal/decoder.c +43 -0
  408. data/third_party/upb/upb/wire/internal/decoder.h +73 -35
  409. data/third_party/upb/upb/wire/internal/reader.h +28 -9
  410. data/third_party/upb/upb/wire/reader.c +20 -2
  411. data/third_party/upb/upb/wire/reader.h +29 -19
  412. data/third_party/upb/upb/wire/writer.h +20 -0
  413. data/third_party/utf8_range/utf8_range.c +6 -6
  414. data/third_party/utf8_range/utf8_range_neon.inc +1 -1
  415. data/third_party/utf8_range/utf8_range_sse.inc +1 -1
  416. metadata +559 -531
  417. data/third_party/boringssl-with-bazel/src/crypto/bn/div.cc +0 -100
  418. data/third_party/boringssl-with-bazel/src/crypto/bn/sqrt.cc +0 -93
  419. data/third_party/upb/upb/wire/internal/decode_fast.c +0 -1000
  420. data/third_party/upb/upb/wire/internal/decode_fast.h +0 -152
  421. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/aes/aes.cc +0 -0
  422. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_bitstr.cc +0 -0
  423. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_bool.cc +0 -0
  424. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_d2i_fp.cc +0 -0
  425. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_dup.cc +0 -0
  426. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_gentm.cc +0 -0
  427. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_i2d_fp.cc +0 -0
  428. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_int.cc +0 -0
  429. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_mbstr.cc +0 -0
  430. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_object.cc +0 -0
  431. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_octet.cc +0 -0
  432. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_strex.cc +0 -0
  433. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_strnid.cc +0 -0
  434. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_time.cc +0 -0
  435. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_type.cc +0 -0
  436. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/a_utctm.cc +0 -0
  437. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/asn1_lib.cc +0 -0
  438. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/asn1_par.cc +0 -0
  439. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/asn_pack.cc +0 -0
  440. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/f_int.cc +0 -0
  441. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/f_string.cc +0 -0
  442. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/internal.h +0 -0
  443. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/posix_time.cc +0 -0
  444. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_dec.cc +0 -0
  445. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_enc.cc +0 -0
  446. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_fre.cc +0 -0
  447. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_new.cc +0 -0
  448. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_typ.cc +0 -0
  449. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/asn1/tasn_utl.cc +0 -0
  450. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/base64/base64.cc +0 -0
  451. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bcm_support.h +0 -0
  452. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/bio.cc +0 -0
  453. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/bio_mem.cc +0 -0
  454. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/connect.cc +0 -0
  455. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/errno.cc +0 -0
  456. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/fd.cc +0 -0
  457. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/file.cc +0 -0
  458. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/hexdump.cc +0 -0
  459. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/internal.h +0 -0
  460. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/pair.cc +0 -0
  461. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/printf.cc +0 -0
  462. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/socket.cc +0 -0
  463. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bio/socket_helper.cc +0 -0
  464. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/blake2/blake2.cc +0 -0
  465. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bn/bn_asn1.cc +0 -0
  466. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/buf/buf.cc +0 -0
  467. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/asn1_compat.cc +0 -0
  468. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/ber.cc +0 -0
  469. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/cbs.cc +0 -0
  470. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/internal.h +0 -0
  471. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/bytestring/unicode.cc +0 -0
  472. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/chacha/chacha.cc +0 -0
  473. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/chacha/internal.h +0 -0
  474. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_aesctrhmac.cc +0 -0
  475. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_aeseax.cc +0 -0
  476. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_aesgcmsiv.cc +0 -0
  477. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_chacha20poly1305.cc +0 -0
  478. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_des.cc +0 -0
  479. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_null.cc +0 -0
  480. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_rc2.cc +0 -0
  481. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_rc4.cc +0 -0
  482. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/e_tls.cc +0 -0
  483. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/get_cipher.cc +0 -0
  484. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/internal.h +0 -0
  485. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cipher/tls_cbc.cc +0 -0
  486. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cms/cms.cc +0 -0
  487. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/conf/conf.cc +0 -0
  488. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/conf/internal.h +0 -0
  489. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_apple.cc +0 -0
  490. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_fuchsia.cc +0 -0
  491. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_linux.cc +0 -0
  492. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_openbsd.cc +0 -0
  493. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_sysreg.cc +0 -0
  494. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_aarch64_win.cc +0 -0
  495. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_arm_freebsd.cc +0 -0
  496. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/cpu_intel.cc +0 -0
  497. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/crypto.cc +0 -0
  498. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/curve25519.cc +0 -0
  499. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/curve25519_64_adx.cc +0 -0
  500. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/curve25519_tables.h +0 -0
  501. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/internal.h +0 -0
  502. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/curve25519/spake25519.cc +0 -0
  503. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/des/des.cc +0 -0
  504. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/des/internal.h +0 -0
  505. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dh/params.cc +0 -0
  506. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/digest/digest_extra.cc +0 -0
  507. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/dsa/internal.h +0 -0
  508. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ec/ec_derive.cc +0 -0
  509. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ec/internal.h +0 -0
  510. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ecdh/ecdh.cc +0 -0
  511. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/engine/engine.cc +0 -0
  512. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/err/err.cc +0 -0
  513. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/err/internal.h +0 -0
  514. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/evp.cc +0 -0
  515. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/internal.h +0 -0
  516. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_dh.cc +0 -0
  517. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_dh_asn1.cc +0 -0
  518. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_ec.cc +0 -0
  519. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_ed25519.cc +0 -0
  520. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_hkdf.cc +0 -0
  521. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_rsa.cc +0 -0
  522. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/p_x25519.cc +0 -0
  523. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/pbkdf.cc +0 -0
  524. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/print.cc +0 -0
  525. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/evp/scrypt.cc +0 -0
  526. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/ex_data.cc +0 -0
  527. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/aes.cc.inc +0 -0
  528. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/aes_nohw.cc.inc +0 -0
  529. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/cbc.cc.inc +0 -0
  530. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/cfb.cc.inc +0 -0
  531. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/ctr.cc.inc +0 -0
  532. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/gcm.cc.inc +0 -0
  533. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/gcm_nohw.cc.inc +0 -0
  534. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/internal.h +0 -0
  535. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/key_wrap.cc.inc +0 -0
  536. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/mode_wrappers.cc.inc +0 -0
  537. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/aes/ofb.cc.inc +0 -0
  538. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bcm.cc +0 -0
  539. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bcm_interface.h +0 -0
  540. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/add.cc.inc +0 -0
  541. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/asm/x86_64-gcc.cc.inc +0 -0
  542. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/bn.cc.inc +0 -0
  543. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/bytes.cc.inc +0 -0
  544. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/cmp.cc.inc +0 -0
  545. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/ctx.cc.inc +0 -0
  546. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/div_extra.cc.inc +0 -0
  547. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/generic.cc.inc +0 -0
  548. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/internal.h +0 -0
  549. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/montgomery_inv.cc.inc +0 -0
  550. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/random.cc.inc +0 -0
  551. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/rsaz_exp.cc.inc +0 -0
  552. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/bn/rsaz_exp.h +0 -0
  553. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/aead.cc.inc +0 -0
  554. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/cipher.cc.inc +0 -0
  555. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/e_aes.cc.inc +0 -0
  556. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/e_aesccm.cc.inc +0 -0
  557. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cipher/internal.h +0 -0
  558. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/cmac/cmac.cc.inc +0 -0
  559. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/delocate.h +0 -0
  560. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/dh/internal.h +0 -0
  561. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digest/digests.cc.inc +0 -0
  562. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digest/internal.h +0 -0
  563. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digest/md32_common.h +0 -0
  564. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/digestsign/digestsign.cc.inc +0 -0
  565. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/builtin_curves.h +0 -0
  566. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/ec_key.cc.inc +0 -0
  567. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/ec_montgomery.cc.inc +0 -0
  568. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/felem.cc.inc +0 -0
  569. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/internal.h +0 -0
  570. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/oct.cc.inc +0 -0
  571. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p224-64.cc.inc +0 -0
  572. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256-nistz-table.h +0 -0
  573. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256-nistz.cc.inc +0 -0
  574. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256-nistz.h +0 -0
  575. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256.cc.inc +0 -0
  576. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/p256_table.h +0 -0
  577. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/scalar.cc.inc +0 -0
  578. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/simple.cc.inc +0 -0
  579. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/simple_mul.cc.inc +0 -0
  580. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/util.cc.inc +0 -0
  581. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ec/wnaf.cc.inc +0 -0
  582. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ecdh/ecdh.cc.inc +0 -0
  583. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ecdsa/ecdsa.cc.inc +0 -0
  584. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/ecdsa/internal.h +0 -0
  585. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/fips_shared_support.cc +0 -0
  586. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/hkdf/hkdf.cc.inc +0 -0
  587. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/hmac/hmac.cc.inc +0 -0
  588. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/keccak/internal.h +0 -0
  589. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/keccak/keccak.cc.inc +0 -0
  590. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/mldsa/fips_known_values.inc +0 -0
  591. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/mldsa/mldsa.cc.inc +0 -0
  592. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/mlkem/fips_known_values.inc +0 -0
  593. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/mlkem/mlkem.cc.inc +0 -0
  594. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rand/ctrdrbg.cc.inc +0 -0
  595. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rand/internal.h +0 -0
  596. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rand/rand.cc.inc +0 -0
  597. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/blinding.cc.inc +0 -0
  598. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/rsa/internal.h +0 -0
  599. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/self_check/fips.cc.inc +0 -0
  600. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/service_indicator/internal.h +0 -0
  601. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/service_indicator/service_indicator.cc.inc +0 -0
  602. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/sha/internal.h +0 -0
  603. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/sha/sha1.cc.inc +0 -0
  604. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/sha/sha256.cc.inc +0 -0
  605. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/sha/sha512.cc.inc +0 -0
  606. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/address.h +0 -0
  607. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/fips_known_values.inc +0 -0
  608. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/fors.cc.inc +0 -0
  609. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/fors.h +0 -0
  610. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/merkle.cc.inc +0 -0
  611. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/merkle.h +0 -0
  612. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/params.h +0 -0
  613. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/slhdsa.cc.inc +0 -0
  614. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/thash.cc.inc +0 -0
  615. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/thash.h +0 -0
  616. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/wots.cc.inc +0 -0
  617. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/slhdsa/wots.h +0 -0
  618. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/tls/internal.h +0 -0
  619. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fipsmodule/tls/kdf.cc.inc +0 -0
  620. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/fuzzer_mode.cc +0 -0
  621. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/hpke/hpke.cc +0 -0
  622. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/hrss/hrss.cc +0 -0
  623. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/hrss/internal.h +0 -0
  624. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/internal.h +0 -0
  625. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/kyber/internal.h +0 -0
  626. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/kyber/kyber.cc +0 -0
  627. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/lhash/internal.h +0 -0
  628. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/lhash/lhash.cc +0 -0
  629. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/md4/md4.cc +0 -0
  630. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/md5/internal.h +0 -0
  631. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/md5/md5.cc +0 -0
  632. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/mem.cc +0 -0
  633. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/mldsa/mldsa.cc +0 -0
  634. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/mlkem/mlkem.cc +0 -0
  635. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/obj/obj_dat.h +0 -0
  636. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/obj/obj_xref.cc +0 -0
  637. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/internal.h +0 -0
  638. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_all.cc +0 -0
  639. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_info.cc +0 -0
  640. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_oth.cc +0 -0
  641. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_pk8.cc +0 -0
  642. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_pkey.cc +0 -0
  643. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_x509.cc +0 -0
  644. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pem/pem_xaux.cc +0 -0
  645. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs7/internal.h +0 -0
  646. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pkcs8/internal.h +0 -0
  647. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/poly1305/internal.h +0 -0
  648. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/poly1305/poly1305.cc +0 -0
  649. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/poly1305/poly1305_arm.cc +0 -0
  650. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/poly1305/poly1305_vec.cc +0 -0
  651. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pool/internal.h +0 -0
  652. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/pool/pool.cc +0 -0
  653. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/deterministic.cc +0 -0
  654. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/fork_detect.cc +0 -0
  655. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/forkunsafe.cc +0 -0
  656. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/getentropy.cc +0 -0
  657. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/getrandom_fillin.h +0 -0
  658. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/internal.h +0 -0
  659. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/ios.cc +0 -0
  660. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/passive.cc +0 -0
  661. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/rand.cc +0 -0
  662. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/trusty.cc +0 -0
  663. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/urandom.cc +0 -0
  664. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rand/windows.cc +0 -0
  665. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rc4/rc4.cc +0 -0
  666. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/refcount.cc +0 -0
  667. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/internal.h +0 -0
  668. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/rsa_asn1.cc +0 -0
  669. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/rsa_extra.cc +0 -0
  670. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/rsa/rsa_print.cc +0 -0
  671. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/sha/sha1.cc +0 -0
  672. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/sha/sha256.cc +0 -0
  673. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/sha/sha512.cc +0 -0
  674. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/siphash/siphash.cc +0 -0
  675. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/slhdsa/slhdsa.cc +0 -0
  676. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/spake2plus/internal.h +0 -0
  677. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/spake2plus/spake2plus.cc +0 -0
  678. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/stack/stack.cc +0 -0
  679. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/thread.cc +0 -0
  680. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/thread_none.cc +0 -0
  681. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/thread_pthread.cc +0 -0
  682. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/thread_win.cc +0 -0
  683. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/trust_token/internal.h +0 -0
  684. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/trust_token/pmbtoken.cc +0 -0
  685. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/trust_token/trust_token.cc +0 -0
  686. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/trust_token/voprf.cc +0 -0
  687. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/a_digest.cc +0 -0
  688. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/a_verify.cc +0 -0
  689. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/algorithm.cc +0 -0
  690. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/by_dir.cc +0 -0
  691. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/by_file.cc +0 -0
  692. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/ext_dat.h +0 -0
  693. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/i2d_pr.cc +0 -0
  694. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/internal.h +0 -0
  695. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/name_print.cc +0 -0
  696. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/policy.cc +0 -0
  697. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/rsa_pss.cc +0 -0
  698. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/t_crl.cc +0 -0
  699. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/t_req.cc +0 -0
  700. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/t_x509.cc +0 -0
  701. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/t_x509a.cc +0 -0
  702. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_akey.cc +0 -0
  703. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_akeya.cc +0 -0
  704. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_alt.cc +0 -0
  705. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_bcons.cc +0 -0
  706. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_bitst.cc +0 -0
  707. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_cpols.cc +0 -0
  708. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_crld.cc +0 -0
  709. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_enum.cc +0 -0
  710. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_extku.cc +0 -0
  711. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_genn.cc +0 -0
  712. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_ia5.cc +0 -0
  713. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_int.cc +0 -0
  714. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_lib.cc +0 -0
  715. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_ncons.cc +0 -0
  716. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_ocsp.cc +0 -0
  717. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_pcons.cc +0 -0
  718. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_pmaps.cc +0 -0
  719. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_prn.cc +0 -0
  720. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_purp.cc +0 -0
  721. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_skey.cc +0 -0
  722. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/v3_utl.cc +0 -0
  723. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509.cc +0 -0
  724. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_att.cc +0 -0
  725. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_cmp.cc +0 -0
  726. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_d2.cc +0 -0
  727. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_def.cc +0 -0
  728. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_ext.cc +0 -0
  729. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_lu.cc +0 -0
  730. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_obj.cc +0 -0
  731. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_req.cc +0 -0
  732. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_set.cc +0 -0
  733. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_trs.cc +0 -0
  734. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_txt.cc +0 -0
  735. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_v3.cc +0 -0
  736. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_vfy.cc +0 -0
  737. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509_vpm.cc +0 -0
  738. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509cset.cc +0 -0
  739. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509name.cc +0 -0
  740. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509rset.cc +0 -0
  741. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x509spki.cc +0 -0
  742. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_algor.cc +0 -0
  743. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_all.cc +0 -0
  744. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_attrib.cc +0 -0
  745. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_crl.cc +0 -0
  746. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_exten.cc +0 -0
  747. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_name.cc +0 -0
  748. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_pubkey.cc +0 -0
  749. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_req.cc +0 -0
  750. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_sig.cc +0 -0
  751. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_spki.cc +0 -0
  752. /data/third_party/boringssl-with-bazel/{src/crypto → crypto}/x509/x_val.cc +0 -0
  753. /data/third_party/boringssl-with-bazel/{src/gen → gen}/crypto/err_data.cc +0 -0
  754. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/aead.h +0 -0
  755. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/aes.h +0 -0
  756. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/arm_arch.h +0 -0
  757. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/asm_base.h +0 -0
  758. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/asn1.h +0 -0
  759. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/asn1_mac.h +0 -0
  760. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/asn1t.h +0 -0
  761. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/base.h +0 -0
  762. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/base64.h +0 -0
  763. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/bcm_public.h +0 -0
  764. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/bio.h +0 -0
  765. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/blake2.h +0 -0
  766. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/blowfish.h +0 -0
  767. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/bn.h +0 -0
  768. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/buf.h +0 -0
  769. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/buffer.h +0 -0
  770. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cast.h +0 -0
  771. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/chacha.h +0 -0
  772. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cipher.h +0 -0
  773. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cmac.h +0 -0
  774. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cms.h +0 -0
  775. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/conf.h +0 -0
  776. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/cpu.h +0 -0
  777. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/crypto.h +0 -0
  778. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ctrdrbg.h +0 -0
  779. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/curve25519.h +0 -0
  780. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/des.h +0 -0
  781. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/dh.h +0 -0
  782. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/digest.h +0 -0
  783. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/dsa.h +0 -0
  784. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/dtls1.h +0 -0
  785. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/e_os2.h +0 -0
  786. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ec.h +0 -0
  787. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ec_key.h +0 -0
  788. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ecdh.h +0 -0
  789. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ecdsa.h +0 -0
  790. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/engine.h +0 -0
  791. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/err.h +0 -0
  792. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/evp.h +0 -0
  793. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/evp_errors.h +0 -0
  794. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ex_data.h +0 -0
  795. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/experimental/kyber.h +0 -0
  796. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/hkdf.h +0 -0
  797. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/hmac.h +0 -0
  798. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/hpke.h +0 -0
  799. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/hrss.h +0 -0
  800. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/is_boringssl.h +0 -0
  801. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/kdf.h +0 -0
  802. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/lhash.h +0 -0
  803. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/md4.h +0 -0
  804. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/md5.h +0 -0
  805. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/mem.h +0 -0
  806. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/mldsa.h +0 -0
  807. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/mlkem.h +0 -0
  808. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/nid.h +0 -0
  809. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/obj.h +0 -0
  810. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/obj_mac.h +0 -0
  811. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/objects.h +0 -0
  812. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/opensslconf.h +0 -0
  813. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/opensslv.h +0 -0
  814. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ossl_typ.h +0 -0
  815. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pem.h +0 -0
  816. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pkcs12.h +0 -0
  817. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pkcs7.h +0 -0
  818. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pkcs8.h +0 -0
  819. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/poly1305.h +0 -0
  820. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/pool.h +0 -0
  821. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/posix_time.h +0 -0
  822. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/rand.h +0 -0
  823. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/rc4.h +0 -0
  824. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ripemd.h +0 -0
  825. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/rsa.h +0 -0
  826. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/safestack.h +0 -0
  827. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/service_indicator.h +0 -0
  828. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/sha.h +0 -0
  829. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/siphash.h +0 -0
  830. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/slhdsa.h +0 -0
  831. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/span.h +0 -0
  832. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/srtp.h +0 -0
  833. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ssl.h +0 -0
  834. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/ssl3.h +0 -0
  835. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/stack.h +0 -0
  836. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/target.h +0 -0
  837. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/thread.h +0 -0
  838. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/time.h +0 -0
  839. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/tls1.h +0 -0
  840. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/trust_token.h +0 -0
  841. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/type_check.h +0 -0
  842. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/x509.h +0 -0
  843. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/x509_vfy.h +0 -0
  844. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/x509v3.h +0 -0
  845. /data/third_party/boringssl-with-bazel/{src/include → include}/openssl/x509v3_errors.h +0 -0
  846. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/bio_ssl.cc +0 -0
  847. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/d1_both.cc +0 -0
  848. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/d1_lib.cc +0 -0
  849. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/d1_pkt.cc +0 -0
  850. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/d1_srtp.cc +0 -0
  851. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/dtls_method.cc +0 -0
  852. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/dtls_record.cc +0 -0
  853. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/encrypted_client_hello.cc +0 -0
  854. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/extensions.cc +0 -0
  855. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/handshake.cc +0 -0
  856. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/handshake_client.cc +0 -0
  857. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/handshake_server.cc +0 -0
  858. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/internal.h +0 -0
  859. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/s3_both.cc +0 -0
  860. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/s3_lib.cc +0 -0
  861. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/s3_pkt.cc +0 -0
  862. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_aead_ctx.cc +0 -0
  863. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_buffer.cc +0 -0
  864. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_cert.cc +0 -0
  865. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_cipher.cc +0 -0
  866. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_credential.cc +0 -0
  867. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_file.cc +0 -0
  868. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_key_share.cc +0 -0
  869. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_lib.cc +0 -0
  870. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_privkey.cc +0 -0
  871. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_session.cc +0 -0
  872. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_stat.cc +0 -0
  873. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_transcript.cc +0 -0
  874. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_versions.cc +0 -0
  875. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/ssl_x509.cc +0 -0
  876. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/t1_enc.cc +0 -0
  877. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls13_both.cc +0 -0
  878. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls13_client.cc +0 -0
  879. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls13_enc.cc +0 -0
  880. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls13_server.cc +0 -0
  881. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls_method.cc +0 -0
  882. /data/third_party/boringssl-with-bazel/{src/ssl → ssl}/tls_record.cc +0 -0
  883. /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/curve25519_32.h +0 -0
  884. /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/curve25519_64.h +0 -0
  885. /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/curve25519_64_adx.h +0 -0
  886. /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/curve25519_64_msvc.h +0 -0
  887. /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/p256_32.h +0 -0
  888. /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/p256_64.h +0 -0
  889. /data/third_party/boringssl-with-bazel/{src/third_party → third_party}/fiat/p256_64_msvc.h +0 -0
@@ -1,1000 +0,0 @@
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
- // Fast decoder: ~3x the speed of decode.c, but requires x86-64/ARM64.
9
- // Also the table size grows by 2x.
10
- //
11
- // Could potentially be ported to other 64-bit archs that pass at least six
12
- // arguments in registers and have 8 unused high bits in pointers.
13
- //
14
- // The overall design is to create specialized functions for every possible
15
- // field type (eg. oneof boolean field with a 1 byte tag) and then dispatch
16
- // to the specialized function as quickly as possible.
17
-
18
- #include "upb/wire/internal/decode_fast.h"
19
-
20
- #include "upb/message/array.h"
21
- #include "upb/message/internal/array.h"
22
- #include "upb/mini_table/sub.h"
23
- #include "upb/wire/internal/decoder.h"
24
-
25
- // Must be last.
26
- #include "upb/port/def.inc"
27
-
28
- #if UPB_FASTTABLE
29
-
30
- // The standard set of arguments passed to each parsing function.
31
- // Thanks to x86-64 calling conventions, these will stay in registers.
32
- #define UPB_PARSE_PARAMS \
33
- upb_Decoder *d, const char *ptr, upb_Message *msg, intptr_t table, \
34
- uint64_t hasbits, uint64_t data
35
-
36
- #define UPB_PARSE_ARGS d, ptr, msg, table, hasbits, data
37
-
38
- #define RETURN_GENERIC(m) \
39
- /* Uncomment either of these for debugging purposes. */ \
40
- /* fprintf(stderr, m); */ \
41
- /*__builtin_trap(); */ \
42
- return _upb_FastDecoder_DecodeGeneric(d, ptr, msg, table, hasbits, 0);
43
-
44
- typedef enum {
45
- CARD_s = 0, /* Singular (optional, non-repeated) */
46
- CARD_o = 1, /* Oneof */
47
- CARD_r = 2, /* Repeated */
48
- CARD_p = 3 /* Packed Repeated */
49
- } upb_card;
50
-
51
- UPB_NOINLINE
52
- static const char* fastdecode_isdonefallback(UPB_PARSE_PARAMS) {
53
- int overrun = data;
54
- ptr = _upb_EpsCopyInputStream_IsDoneFallbackInline(
55
- &d->input, ptr, overrun, _upb_Decoder_BufferFlipCallback);
56
- data = _upb_FastDecoder_LoadTag(ptr);
57
- UPB_MUSTTAIL return _upb_FastDecoder_TagDispatch(UPB_PARSE_ARGS);
58
- }
59
-
60
- UPB_FORCEINLINE
61
- const char* fastdecode_dispatch(UPB_PARSE_PARAMS) {
62
- int overrun;
63
- switch (upb_EpsCopyInputStream_IsDoneStatus(&d->input, ptr, &overrun)) {
64
- case kUpb_IsDoneStatus_Done:
65
- ((uint32_t*)msg)[2] |= hasbits; // Sync hasbits.
66
- const upb_MiniTable* m = decode_totablep(table);
67
- return UPB_UNLIKELY(m->UPB_PRIVATE(required_count))
68
- ? _upb_Decoder_CheckRequired(d, ptr, msg, m)
69
- : ptr;
70
- case kUpb_IsDoneStatus_NotDone:
71
- break;
72
- case kUpb_IsDoneStatus_NeedFallback:
73
- data = overrun;
74
- UPB_MUSTTAIL return fastdecode_isdonefallback(UPB_PARSE_ARGS);
75
- }
76
-
77
- // Read two bytes of tag data (for a one-byte tag, the high byte is junk).
78
- data = _upb_FastDecoder_LoadTag(ptr);
79
- UPB_MUSTTAIL return _upb_FastDecoder_TagDispatch(UPB_PARSE_ARGS);
80
- }
81
-
82
- UPB_FORCEINLINE
83
- bool fastdecode_checktag(uint16_t data, int tagbytes) {
84
- if (tagbytes == 1) {
85
- return (data & 0xff) == 0;
86
- } else {
87
- return data == 0;
88
- }
89
- }
90
-
91
- UPB_FORCEINLINE
92
- const char* fastdecode_longsize(const char* ptr, int* size) {
93
- int i;
94
- UPB_ASSERT(*size & 0x80);
95
- *size &= 0xff;
96
- for (i = 0; i < 3; i++) {
97
- ptr++;
98
- size_t byte = (uint8_t)ptr[-1];
99
- *size += (byte - 1) << (7 + 7 * i);
100
- if (UPB_LIKELY((byte & 0x80) == 0)) return ptr;
101
- }
102
- ptr++;
103
- size_t byte = (uint8_t)ptr[-1];
104
- // len is limited by 2gb not 4gb, hence 8 and not 16 as normally expected
105
- // for a 32 bit varint.
106
- if (UPB_UNLIKELY(byte >= 8)) return NULL;
107
- *size += (byte - 1) << 28;
108
- return ptr;
109
- }
110
-
111
- UPB_FORCEINLINE
112
- const char* fastdecode_delimited(
113
- upb_Decoder* d, const char* ptr,
114
- upb_EpsCopyInputStream_ParseDelimitedFunc* func, void* ctx) {
115
- ptr++;
116
-
117
- // Sign-extend so varint greater than one byte becomes negative, causing
118
- // fast delimited parse to fail.
119
- int len = (int8_t)ptr[-1];
120
-
121
- if (!upb_EpsCopyInputStream_TryParseDelimitedFast(&d->input, &ptr, len, func,
122
- ctx)) {
123
- // Slow case: Sub-message is >=128 bytes and/or exceeds the current buffer.
124
- // If it exceeds the buffer limit, limit/limit_ptr will change during
125
- // sub-message parsing, so we need to preserve delta, not limit.
126
- if (UPB_UNLIKELY(len & 0x80)) {
127
- // Size varint >1 byte (length >= 128).
128
- ptr = fastdecode_longsize(ptr, &len);
129
- if (!ptr) {
130
- // Corrupt wire format: size exceeded INT_MAX.
131
- return NULL;
132
- }
133
- }
134
- if (!upb_EpsCopyInputStream_CheckSize(&d->input, ptr, len)) {
135
- // Corrupt wire format: invalid limit.
136
- return NULL;
137
- }
138
- int delta = upb_EpsCopyInputStream_PushLimit(&d->input, ptr, len);
139
- ptr = func(&d->input, ptr, ctx);
140
- upb_EpsCopyInputStream_PopLimit(&d->input, ptr, delta);
141
- }
142
- return ptr;
143
- }
144
-
145
- /* singular, oneof, repeated field handling ***********************************/
146
-
147
- typedef struct {
148
- upb_Array* arr;
149
- void* end;
150
- } fastdecode_arr;
151
-
152
- typedef enum {
153
- FD_NEXT_ATLIMIT,
154
- FD_NEXT_SAMEFIELD,
155
- FD_NEXT_OTHERFIELD
156
- } fastdecode_next;
157
-
158
- typedef struct {
159
- void* dst;
160
- fastdecode_next next;
161
- uint32_t tag;
162
- } fastdecode_nextret;
163
-
164
- UPB_FORCEINLINE
165
- void* fastdecode_resizearr(upb_Decoder* d, void* dst, fastdecode_arr* farr,
166
- int valbytes) {
167
- if (UPB_UNLIKELY(dst == farr->end)) {
168
- size_t old_capacity = farr->arr->UPB_PRIVATE(capacity);
169
- size_t old_bytes = old_capacity * valbytes;
170
- size_t new_capacity = old_capacity * 2;
171
- size_t new_bytes = new_capacity * valbytes;
172
- char* old_ptr = upb_Array_MutableDataPtr(farr->arr);
173
- char* new_ptr = upb_Arena_Realloc(&d->arena, old_ptr, old_bytes, new_bytes);
174
- uint8_t elem_size_lg2 = __builtin_ctz(valbytes);
175
- UPB_PRIVATE(_upb_Array_SetTaggedPtr)(farr->arr, new_ptr, elem_size_lg2);
176
- farr->arr->UPB_PRIVATE(capacity) = new_capacity;
177
- dst = (void*)(new_ptr + (old_capacity * valbytes));
178
- farr->end = (void*)(new_ptr + (new_capacity * valbytes));
179
- }
180
- return dst;
181
- }
182
-
183
- UPB_FORCEINLINE
184
- bool fastdecode_tagmatch(uint32_t tag, uint64_t data, int tagbytes) {
185
- if (tagbytes == 1) {
186
- return (uint8_t)tag == (uint8_t)data;
187
- } else {
188
- return (uint16_t)tag == (uint16_t)data;
189
- }
190
- }
191
-
192
- UPB_FORCEINLINE
193
- void fastdecode_commitarr(void* dst, fastdecode_arr* farr, int valbytes) {
194
- farr->arr->UPB_PRIVATE(size) =
195
- (size_t)((char*)dst - (char*)upb_Array_MutableDataPtr(farr->arr)) /
196
- valbytes;
197
- }
198
-
199
- UPB_FORCEINLINE
200
- fastdecode_nextret fastdecode_nextrepeated(upb_Decoder* d, void* dst,
201
- const char** ptr,
202
- fastdecode_arr* farr, uint64_t data,
203
- int tagbytes, int valbytes) {
204
- fastdecode_nextret ret;
205
- dst = (char*)dst + valbytes;
206
-
207
- if (UPB_LIKELY(!_upb_Decoder_IsDone(d, ptr))) {
208
- ret.tag = _upb_FastDecoder_LoadTag(*ptr);
209
- if (fastdecode_tagmatch(ret.tag, data, tagbytes)) {
210
- ret.next = FD_NEXT_SAMEFIELD;
211
- } else {
212
- fastdecode_commitarr(dst, farr, valbytes);
213
- ret.next = FD_NEXT_OTHERFIELD;
214
- }
215
- } else {
216
- fastdecode_commitarr(dst, farr, valbytes);
217
- ret.next = FD_NEXT_ATLIMIT;
218
- }
219
-
220
- ret.dst = dst;
221
- return ret;
222
- }
223
-
224
- UPB_FORCEINLINE
225
- void* fastdecode_fieldmem(upb_Message* msg, uint64_t data) {
226
- size_t ofs = data >> 48;
227
- return (char*)msg + ofs;
228
- }
229
-
230
- UPB_FORCEINLINE
231
- void* fastdecode_getfield(upb_Decoder* d, const char* ptr, upb_Message* msg,
232
- uint64_t* data, uint64_t* hasbits,
233
- fastdecode_arr* farr, int valbytes, upb_card card) {
234
- UPB_ASSERT(!upb_Message_IsFrozen(msg));
235
- switch (card) {
236
- case CARD_s: {
237
- uint8_t hasbit_index = *data >> 24;
238
- // Set hasbit and return pointer to scalar field.
239
- *hasbits |= 1ull << hasbit_index;
240
- return fastdecode_fieldmem(msg, *data);
241
- }
242
- case CARD_o: {
243
- uint16_t case_ofs = *data >> 32;
244
- uint32_t* oneof_case = UPB_PTR_AT(msg, case_ofs, uint32_t);
245
- uint8_t field_number = *data >> 24;
246
- *oneof_case = field_number;
247
- return fastdecode_fieldmem(msg, *data);
248
- }
249
- case CARD_r: {
250
- // Get pointer to upb_Array and allocate/expand if necessary.
251
- uint8_t elem_size_lg2 = __builtin_ctz(valbytes);
252
- upb_Array** arr_p = fastdecode_fieldmem(msg, *data);
253
- char* begin;
254
- ((uint32_t*)msg)[2] |= *hasbits;
255
- *hasbits = 0;
256
- if (UPB_LIKELY(!*arr_p)) {
257
- farr->arr = UPB_PRIVATE(_upb_Array_New)(&d->arena, 8, elem_size_lg2);
258
- *arr_p = farr->arr;
259
- } else {
260
- farr->arr = *arr_p;
261
- }
262
- begin = upb_Array_MutableDataPtr(farr->arr);
263
- farr->end = begin + (farr->arr->UPB_PRIVATE(capacity) * valbytes);
264
- *data = _upb_FastDecoder_LoadTag(ptr);
265
- return begin + (farr->arr->UPB_PRIVATE(size) * valbytes);
266
- }
267
- default:
268
- UPB_UNREACHABLE();
269
- }
270
- }
271
-
272
- UPB_FORCEINLINE
273
- bool fastdecode_flippacked(uint64_t* data, int tagbytes) {
274
- *data ^= (0x2 ^ 0x0); // Patch data to match packed wiretype.
275
- return fastdecode_checktag(*data, tagbytes);
276
- }
277
-
278
- #define FASTDECODE_CHECKPACKED(tagbytes, card, func) \
279
- if (UPB_UNLIKELY(!fastdecode_checktag(data, tagbytes))) { \
280
- if (card == CARD_r && fastdecode_flippacked(&data, tagbytes)) { \
281
- UPB_MUSTTAIL return func(UPB_PARSE_ARGS); \
282
- } \
283
- RETURN_GENERIC("packed check tag mismatch\n"); \
284
- }
285
-
286
- /* varint fields **************************************************************/
287
-
288
- UPB_FORCEINLINE
289
- uint64_t fastdecode_munge(uint64_t val, int valbytes, bool zigzag) {
290
- if (valbytes == 1) {
291
- return val != 0;
292
- } else if (zigzag) {
293
- if (valbytes == 4) {
294
- uint32_t n = val;
295
- return (n >> 1) ^ -(int32_t)(n & 1);
296
- } else if (valbytes == 8) {
297
- return (val >> 1) ^ -(int64_t)(val & 1);
298
- }
299
- UPB_UNREACHABLE();
300
- }
301
- return val;
302
- }
303
-
304
- UPB_FORCEINLINE
305
- const char* fastdecode_varint64(const char* ptr, uint64_t* val) {
306
- ptr++;
307
- *val = (uint8_t)ptr[-1];
308
- if (UPB_UNLIKELY(*val & 0x80)) {
309
- int i;
310
- for (i = 0; i < 8; i++) {
311
- ptr++;
312
- uint64_t byte = (uint8_t)ptr[-1];
313
- *val += (byte - 1) << (7 + 7 * i);
314
- if (UPB_LIKELY((byte & 0x80) == 0)) goto done;
315
- }
316
- ptr++;
317
- uint64_t byte = (uint8_t)ptr[-1];
318
- if (byte > 1) {
319
- return NULL;
320
- }
321
- *val += (byte - 1) << 63;
322
- }
323
- done:
324
- UPB_ASSUME(ptr != NULL);
325
- return ptr;
326
- }
327
-
328
- #define FASTDECODE_UNPACKEDVARINT(d, ptr, msg, table, hasbits, data, tagbytes, \
329
- valbytes, card, zigzag, packed) \
330
- uint64_t val; \
331
- void* dst; \
332
- fastdecode_arr farr; \
333
- \
334
- FASTDECODE_CHECKPACKED(tagbytes, card, packed); \
335
- \
336
- dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, valbytes, \
337
- card); \
338
- if (card == CARD_r) { \
339
- if (UPB_UNLIKELY(!dst)) { \
340
- RETURN_GENERIC("need array resize\n"); \
341
- } \
342
- } \
343
- \
344
- again: \
345
- if (card == CARD_r) { \
346
- dst = fastdecode_resizearr(d, dst, &farr, valbytes); \
347
- } \
348
- \
349
- ptr += tagbytes; \
350
- ptr = fastdecode_varint64(ptr, &val); \
351
- if (ptr == NULL) _upb_FastDecoder_ErrorJmp(d, kUpb_DecodeStatus_Malformed); \
352
- val = fastdecode_munge(val, valbytes, zigzag); \
353
- memcpy(dst, &val, valbytes); \
354
- \
355
- if (card == CARD_r) { \
356
- fastdecode_nextret ret = fastdecode_nextrepeated( \
357
- d, dst, &ptr, &farr, data, tagbytes, valbytes); \
358
- switch (ret.next) { \
359
- case FD_NEXT_SAMEFIELD: \
360
- dst = ret.dst; \
361
- goto again; \
362
- case FD_NEXT_OTHERFIELD: \
363
- data = ret.tag; \
364
- UPB_MUSTTAIL return _upb_FastDecoder_TagDispatch(UPB_PARSE_ARGS); \
365
- case FD_NEXT_ATLIMIT: \
366
- return ptr; \
367
- } \
368
- } \
369
- \
370
- UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS);
371
-
372
- typedef struct {
373
- uint8_t valbytes;
374
- bool zigzag;
375
- void* dst;
376
- fastdecode_arr farr;
377
- } fastdecode_varintdata;
378
-
379
- UPB_FORCEINLINE
380
- const char* fastdecode_topackedvarint(upb_EpsCopyInputStream* e,
381
- const char* ptr, void* ctx) {
382
- upb_Decoder* d = (upb_Decoder*)e;
383
- fastdecode_varintdata* data = ctx;
384
- void* dst = data->dst;
385
- uint64_t val;
386
-
387
- while (!_upb_Decoder_IsDone(d, &ptr)) {
388
- dst = fastdecode_resizearr(d, dst, &data->farr, data->valbytes);
389
- ptr = fastdecode_varint64(ptr, &val);
390
- if (ptr == NULL) return NULL;
391
- val = fastdecode_munge(val, data->valbytes, data->zigzag);
392
- memcpy(dst, &val, data->valbytes);
393
- dst = (char*)dst + data->valbytes;
394
- }
395
-
396
- fastdecode_commitarr(dst, &data->farr, data->valbytes);
397
- return ptr;
398
- }
399
-
400
- #define FASTDECODE_PACKEDVARINT(d, ptr, msg, table, hasbits, data, tagbytes, \
401
- valbytes, zigzag, unpacked) \
402
- fastdecode_varintdata ctx = {valbytes, zigzag}; \
403
- \
404
- FASTDECODE_CHECKPACKED(tagbytes, CARD_r, unpacked); \
405
- \
406
- ctx.dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &ctx.farr, \
407
- valbytes, CARD_r); \
408
- if (UPB_UNLIKELY(!ctx.dst)) { \
409
- RETURN_GENERIC("need array resize\n"); \
410
- } \
411
- \
412
- ptr += tagbytes; \
413
- ptr = fastdecode_delimited(d, ptr, &fastdecode_topackedvarint, &ctx); \
414
- \
415
- if (UPB_UNLIKELY(ptr == NULL)) { \
416
- _upb_FastDecoder_ErrorJmp(d, kUpb_DecodeStatus_Malformed); \
417
- } \
418
- \
419
- UPB_MUSTTAIL return fastdecode_dispatch(d, ptr, msg, table, hasbits, 0);
420
-
421
- #define FASTDECODE_VARINT(d, ptr, msg, table, hasbits, data, tagbytes, \
422
- valbytes, card, zigzag, unpacked, packed) \
423
- if (card == CARD_p) { \
424
- FASTDECODE_PACKEDVARINT(d, ptr, msg, table, hasbits, data, tagbytes, \
425
- valbytes, zigzag, unpacked); \
426
- } else { \
427
- FASTDECODE_UNPACKEDVARINT(d, ptr, msg, table, hasbits, data, tagbytes, \
428
- valbytes, card, zigzag, packed); \
429
- }
430
-
431
- #define z_ZZ true
432
- #define b_ZZ false
433
- #define v_ZZ false
434
-
435
- /* Generate all combinations:
436
- * {s,o,r,p} x {b1,v4,z4,v8,z8} x {1bt,2bt} */
437
-
438
- #define F(card, type, valbytes, tagbytes) \
439
- UPB_NOINLINE \
440
- const char* upb_p##card##type##valbytes##_##tagbytes##bt(UPB_PARSE_PARAMS) { \
441
- FASTDECODE_VARINT(d, ptr, msg, table, hasbits, data, tagbytes, valbytes, \
442
- CARD_##card, type##_ZZ, \
443
- upb_pr##type##valbytes##_##tagbytes##bt, \
444
- upb_pp##type##valbytes##_##tagbytes##bt); \
445
- }
446
-
447
- #define TYPES(card, tagbytes) \
448
- F(card, b, 1, tagbytes) \
449
- F(card, v, 4, tagbytes) \
450
- F(card, v, 8, tagbytes) \
451
- F(card, z, 4, tagbytes) \
452
- F(card, z, 8, tagbytes)
453
-
454
- #define TAGBYTES(card) \
455
- TYPES(card, 1) \
456
- TYPES(card, 2)
457
-
458
- TAGBYTES(s)
459
- TAGBYTES(o)
460
- TAGBYTES(r)
461
- TAGBYTES(p)
462
-
463
- #undef z_ZZ
464
- #undef b_ZZ
465
- #undef v_ZZ
466
- #undef o_ONEOF
467
- #undef s_ONEOF
468
- #undef r_ONEOF
469
- #undef F
470
- #undef TYPES
471
- #undef TAGBYTES
472
- #undef FASTDECODE_UNPACKEDVARINT
473
- #undef FASTDECODE_PACKEDVARINT
474
- #undef FASTDECODE_VARINT
475
-
476
- /* fixed fields ***************************************************************/
477
-
478
- #define FASTDECODE_UNPACKEDFIXED(d, ptr, msg, table, hasbits, data, tagbytes, \
479
- valbytes, card, packed) \
480
- void* dst; \
481
- fastdecode_arr farr; \
482
- \
483
- FASTDECODE_CHECKPACKED(tagbytes, card, packed) \
484
- \
485
- dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, valbytes, \
486
- card); \
487
- if (card == CARD_r) { \
488
- if (UPB_UNLIKELY(!dst)) { \
489
- RETURN_GENERIC("couldn't allocate array in arena\n"); \
490
- } \
491
- } \
492
- \
493
- again: \
494
- if (card == CARD_r) { \
495
- dst = fastdecode_resizearr(d, dst, &farr, valbytes); \
496
- } \
497
- \
498
- ptr += tagbytes; \
499
- memcpy(dst, ptr, valbytes); \
500
- ptr += valbytes; \
501
- \
502
- if (card == CARD_r) { \
503
- fastdecode_nextret ret = fastdecode_nextrepeated( \
504
- d, dst, &ptr, &farr, data, tagbytes, valbytes); \
505
- switch (ret.next) { \
506
- case FD_NEXT_SAMEFIELD: \
507
- dst = ret.dst; \
508
- goto again; \
509
- case FD_NEXT_OTHERFIELD: \
510
- data = ret.tag; \
511
- UPB_MUSTTAIL return _upb_FastDecoder_TagDispatch(UPB_PARSE_ARGS); \
512
- case FD_NEXT_ATLIMIT: \
513
- return ptr; \
514
- } \
515
- } \
516
- \
517
- UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS);
518
-
519
- #define FASTDECODE_PACKEDFIXED(d, ptr, msg, table, hasbits, data, tagbytes, \
520
- valbytes, unpacked) \
521
- FASTDECODE_CHECKPACKED(tagbytes, CARD_r, unpacked) \
522
- \
523
- ptr += tagbytes; \
524
- int size = (uint8_t)ptr[0]; \
525
- ptr++; \
526
- if (size & 0x80) { \
527
- ptr = fastdecode_longsize(ptr, &size); \
528
- } \
529
- \
530
- if (UPB_UNLIKELY(!upb_EpsCopyInputStream_CheckDataSizeAvailable( \
531
- &d->input, ptr, size) || \
532
- (size % valbytes) != 0)) { \
533
- _upb_FastDecoder_ErrorJmp(d, kUpb_DecodeStatus_Malformed); \
534
- } \
535
- \
536
- upb_Array** arr_p = fastdecode_fieldmem(msg, data); \
537
- upb_Array* arr = *arr_p; \
538
- uint8_t elem_size_lg2 = __builtin_ctz(valbytes); \
539
- int elems = size / valbytes; \
540
- \
541
- if (UPB_LIKELY(!arr)) { \
542
- *arr_p = arr = \
543
- UPB_PRIVATE(_upb_Array_New)(&d->arena, elems, elem_size_lg2); \
544
- if (!arr) { \
545
- _upb_FastDecoder_ErrorJmp(d, kUpb_DecodeStatus_Malformed); \
546
- } \
547
- } else { \
548
- UPB_PRIVATE(_upb_Array_ResizeUninitialized)(arr, elems, &d->arena); \
549
- } \
550
- \
551
- char* dst = upb_Array_MutableDataPtr(arr); \
552
- memcpy(dst, ptr, size); \
553
- arr->UPB_PRIVATE(size) = elems; \
554
- \
555
- ptr += size; \
556
- UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS);
557
-
558
- #define FASTDECODE_FIXED(d, ptr, msg, table, hasbits, data, tagbytes, \
559
- valbytes, card, unpacked, packed) \
560
- if (card == CARD_p) { \
561
- FASTDECODE_PACKEDFIXED(d, ptr, msg, table, hasbits, data, tagbytes, \
562
- valbytes, unpacked); \
563
- } else { \
564
- FASTDECODE_UNPACKEDFIXED(d, ptr, msg, table, hasbits, data, tagbytes, \
565
- valbytes, card, packed); \
566
- }
567
-
568
- /* Generate all combinations:
569
- * {s,o,r,p} x {f4,f8} x {1bt,2bt} */
570
-
571
- #define F(card, valbytes, tagbytes) \
572
- UPB_NOINLINE \
573
- const char* upb_p##card##f##valbytes##_##tagbytes##bt(UPB_PARSE_PARAMS) { \
574
- FASTDECODE_FIXED(d, ptr, msg, table, hasbits, data, tagbytes, valbytes, \
575
- CARD_##card, upb_ppf##valbytes##_##tagbytes##bt, \
576
- upb_prf##valbytes##_##tagbytes##bt); \
577
- }
578
-
579
- #define TYPES(card, tagbytes) \
580
- F(card, 4, tagbytes) \
581
- F(card, 8, tagbytes)
582
-
583
- #define TAGBYTES(card) \
584
- TYPES(card, 1) \
585
- TYPES(card, 2)
586
-
587
- TAGBYTES(s)
588
- TAGBYTES(o)
589
- TAGBYTES(r)
590
- TAGBYTES(p)
591
-
592
- #undef F
593
- #undef TYPES
594
- #undef TAGBYTES
595
- #undef FASTDECODE_UNPACKEDFIXED
596
- #undef FASTDECODE_PACKEDFIXED
597
-
598
- /* string fields **************************************************************/
599
-
600
- typedef const char* fastdecode_copystr_func(struct upb_Decoder* d,
601
- const char* ptr, upb_Message* msg,
602
- const upb_MiniTable* table,
603
- uint64_t hasbits,
604
- upb_StringView* dst);
605
-
606
- UPB_NOINLINE
607
- static const char* fastdecode_verifyutf8(upb_Decoder* d, const char* ptr,
608
- upb_Message* msg, intptr_t table,
609
- uint64_t hasbits, uint64_t data) {
610
- UPB_ASSERT(!upb_Message_IsFrozen(msg));
611
- upb_StringView* dst = (upb_StringView*)data;
612
- if (!_upb_Decoder_VerifyUtf8Inline(dst->data, dst->size)) {
613
- _upb_FastDecoder_ErrorJmp(d, kUpb_DecodeStatus_BadUtf8);
614
- }
615
- UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS);
616
- }
617
-
618
- #define FASTDECODE_LONGSTRING(d, ptr, msg, table, hasbits, dst, validate_utf8) \
619
- int size = (uint8_t)ptr[0]; /* Could plumb through hasbits. */ \
620
- ptr++; \
621
- if (size & 0x80) { \
622
- ptr = fastdecode_longsize(ptr, &size); \
623
- } \
624
- \
625
- if (UPB_UNLIKELY(!upb_EpsCopyInputStream_CheckSize(&d->input, ptr, size))) { \
626
- dst->size = 0; \
627
- _upb_FastDecoder_ErrorJmp(d, kUpb_DecodeStatus_Malformed); \
628
- } \
629
- \
630
- const char* s_ptr = ptr; \
631
- ptr = upb_EpsCopyInputStream_ReadString(&d->input, &s_ptr, size, &d->arena); \
632
- if (!ptr) _upb_FastDecoder_ErrorJmp(d, kUpb_DecodeStatus_OutOfMemory); \
633
- dst->data = s_ptr; \
634
- dst->size = size; \
635
- \
636
- if (validate_utf8) { \
637
- data = (uint64_t)dst; \
638
- UPB_MUSTTAIL return fastdecode_verifyutf8(UPB_PARSE_ARGS); \
639
- } else { \
640
- UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS); \
641
- }
642
-
643
- UPB_NOINLINE
644
- static const char* fastdecode_longstring_utf8(struct upb_Decoder* d,
645
- const char* ptr, upb_Message* msg,
646
- intptr_t table, uint64_t hasbits,
647
- uint64_t data) {
648
- upb_StringView* dst = (upb_StringView*)data;
649
- FASTDECODE_LONGSTRING(d, ptr, msg, table, hasbits, dst, true);
650
- }
651
-
652
- UPB_NOINLINE
653
- static const char* fastdecode_longstring_noutf8(
654
- struct upb_Decoder* d, const char* ptr, upb_Message* msg, intptr_t table,
655
- uint64_t hasbits, uint64_t data) {
656
- UPB_ASSERT(!upb_Message_IsFrozen(msg));
657
- upb_StringView* dst = (upb_StringView*)data;
658
- FASTDECODE_LONGSTRING(d, ptr, msg, table, hasbits, dst, false);
659
- }
660
-
661
- UPB_FORCEINLINE
662
- void fastdecode_docopy(upb_Decoder* d, const char* ptr, uint32_t size, int copy,
663
- char* data, size_t data_offset, upb_StringView* dst) {
664
- d->arena.UPB_PRIVATE(ptr) += copy;
665
- dst->data = data + data_offset;
666
- UPB_UNPOISON_MEMORY_REGION(data, copy);
667
- memcpy(data, ptr, copy);
668
- UPB_POISON_MEMORY_REGION(data + data_offset + size,
669
- copy - data_offset - size);
670
- }
671
-
672
- #define FASTDECODE_COPYSTRING(d, ptr, msg, table, hasbits, data, tagbytes, \
673
- card, validate_utf8) \
674
- upb_StringView* dst; \
675
- fastdecode_arr farr; \
676
- int64_t size; \
677
- size_t arena_has; \
678
- size_t common_has; \
679
- char* buf; \
680
- \
681
- UPB_ASSERT(!upb_EpsCopyInputStream_AliasingAvailable(&d->input, ptr, 0)); \
682
- UPB_ASSERT(fastdecode_checktag(data, tagbytes)); \
683
- \
684
- dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, \
685
- sizeof(upb_StringView), card); \
686
- \
687
- again: \
688
- if (card == CARD_r) { \
689
- dst = fastdecode_resizearr(d, dst, &farr, sizeof(upb_StringView)); \
690
- } \
691
- \
692
- size = (uint8_t)ptr[tagbytes]; \
693
- ptr += tagbytes + 1; \
694
- dst->size = size; \
695
- \
696
- buf = d->arena.UPB_PRIVATE(ptr); \
697
- arena_has = UPB_PRIVATE(_upb_ArenaHas)(&d->arena); \
698
- common_has = UPB_MIN(arena_has, \
699
- upb_EpsCopyInputStream_BytesAvailable(&d->input, ptr)); \
700
- \
701
- if (UPB_LIKELY(size <= 15 - tagbytes)) { \
702
- if (arena_has < 16) goto longstr; \
703
- fastdecode_docopy(d, ptr - tagbytes - 1, size, 16, buf, tagbytes + 1, \
704
- dst); \
705
- } else if (UPB_LIKELY(size <= 32)) { \
706
- if (UPB_UNLIKELY(common_has < 32)) goto longstr; \
707
- fastdecode_docopy(d, ptr, size, 32, buf, 0, dst); \
708
- } else if (UPB_LIKELY(size <= 64)) { \
709
- if (UPB_UNLIKELY(common_has < 64)) goto longstr; \
710
- fastdecode_docopy(d, ptr, size, 64, buf, 0, dst); \
711
- } else if (UPB_LIKELY(size < 128)) { \
712
- if (UPB_UNLIKELY(common_has < 128)) goto longstr; \
713
- fastdecode_docopy(d, ptr, size, 128, buf, 0, dst); \
714
- } else { \
715
- goto longstr; \
716
- } \
717
- \
718
- ptr += size; \
719
- \
720
- if (card == CARD_r) { \
721
- if (validate_utf8 && \
722
- !_upb_Decoder_VerifyUtf8Inline(dst->data, dst->size)) { \
723
- _upb_FastDecoder_ErrorJmp(d, kUpb_DecodeStatus_BadUtf8); \
724
- } \
725
- fastdecode_nextret ret = fastdecode_nextrepeated( \
726
- d, dst, &ptr, &farr, data, tagbytes, sizeof(upb_StringView)); \
727
- switch (ret.next) { \
728
- case FD_NEXT_SAMEFIELD: \
729
- dst = ret.dst; \
730
- goto again; \
731
- case FD_NEXT_OTHERFIELD: \
732
- data = ret.tag; \
733
- UPB_MUSTTAIL return _upb_FastDecoder_TagDispatch(UPB_PARSE_ARGS); \
734
- case FD_NEXT_ATLIMIT: \
735
- return ptr; \
736
- } \
737
- } \
738
- \
739
- if (card != CARD_r && validate_utf8) { \
740
- data = (uint64_t)dst; \
741
- UPB_MUSTTAIL return fastdecode_verifyutf8(UPB_PARSE_ARGS); \
742
- } \
743
- \
744
- UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS); \
745
- \
746
- longstr: \
747
- if (card == CARD_r) { \
748
- fastdecode_commitarr(dst + 1, &farr, sizeof(upb_StringView)); \
749
- } \
750
- ptr--; \
751
- if (validate_utf8) { \
752
- UPB_MUSTTAIL return fastdecode_longstring_utf8(d, ptr, msg, table, \
753
- hasbits, (uint64_t)dst); \
754
- } else { \
755
- UPB_MUSTTAIL return fastdecode_longstring_noutf8(d, ptr, msg, table, \
756
- hasbits, (uint64_t)dst); \
757
- }
758
-
759
- #define FASTDECODE_STRING(d, ptr, msg, table, hasbits, data, tagbytes, card, \
760
- copyfunc, validate_utf8) \
761
- upb_StringView* dst; \
762
- fastdecode_arr farr; \
763
- int64_t size; \
764
- \
765
- if (UPB_UNLIKELY(!fastdecode_checktag(data, tagbytes))) { \
766
- RETURN_GENERIC("string field tag mismatch\n"); \
767
- } \
768
- \
769
- if (UPB_UNLIKELY( \
770
- !upb_EpsCopyInputStream_AliasingAvailable(&d->input, ptr, 0))) { \
771
- UPB_MUSTTAIL return copyfunc(UPB_PARSE_ARGS); \
772
- } \
773
- \
774
- dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, \
775
- sizeof(upb_StringView), card); \
776
- \
777
- again: \
778
- if (card == CARD_r) { \
779
- dst = fastdecode_resizearr(d, dst, &farr, sizeof(upb_StringView)); \
780
- } \
781
- \
782
- size = (int8_t)ptr[tagbytes]; \
783
- ptr += tagbytes + 1; \
784
- \
785
- if (UPB_UNLIKELY( \
786
- !upb_EpsCopyInputStream_AliasingAvailable(&d->input, ptr, size))) { \
787
- ptr--; \
788
- if (validate_utf8) { \
789
- return fastdecode_longstring_utf8(d, ptr, msg, table, hasbits, \
790
- (uint64_t)dst); \
791
- } else { \
792
- return fastdecode_longstring_noutf8(d, ptr, msg, table, hasbits, \
793
- (uint64_t)dst); \
794
- } \
795
- } \
796
- \
797
- dst->data = ptr; \
798
- dst->size = size; \
799
- ptr = upb_EpsCopyInputStream_ReadStringAliased(&d->input, &dst->data, \
800
- dst->size); \
801
- \
802
- if (card == CARD_r) { \
803
- if (validate_utf8 && \
804
- !_upb_Decoder_VerifyUtf8Inline(dst->data, dst->size)) { \
805
- _upb_FastDecoder_ErrorJmp(d, kUpb_DecodeStatus_BadUtf8); \
806
- } \
807
- fastdecode_nextret ret = fastdecode_nextrepeated( \
808
- d, dst, &ptr, &farr, data, tagbytes, sizeof(upb_StringView)); \
809
- switch (ret.next) { \
810
- case FD_NEXT_SAMEFIELD: \
811
- dst = ret.dst; \
812
- goto again; \
813
- case FD_NEXT_OTHERFIELD: \
814
- data = ret.tag; \
815
- UPB_MUSTTAIL return _upb_FastDecoder_TagDispatch(UPB_PARSE_ARGS); \
816
- case FD_NEXT_ATLIMIT: \
817
- return ptr; \
818
- } \
819
- } \
820
- \
821
- if (card != CARD_r && validate_utf8) { \
822
- data = (uint64_t)dst; \
823
- UPB_MUSTTAIL return fastdecode_verifyutf8(UPB_PARSE_ARGS); \
824
- } \
825
- \
826
- UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS);
827
-
828
- /* Generate all combinations:
829
- * {p,c} x {s,o,r} x {s, b} x {1bt,2bt} */
830
-
831
- #define s_VALIDATE true
832
- #define b_VALIDATE false
833
-
834
- #define F(card, tagbytes, type) \
835
- UPB_NOINLINE \
836
- const char* upb_c##card##type##_##tagbytes##bt(UPB_PARSE_PARAMS) { \
837
- FASTDECODE_COPYSTRING(d, ptr, msg, table, hasbits, data, tagbytes, \
838
- CARD_##card, type##_VALIDATE); \
839
- } \
840
- const char* upb_p##card##type##_##tagbytes##bt(UPB_PARSE_PARAMS) { \
841
- FASTDECODE_STRING(d, ptr, msg, table, hasbits, data, tagbytes, \
842
- CARD_##card, upb_c##card##type##_##tagbytes##bt, \
843
- type##_VALIDATE); \
844
- }
845
-
846
- #define UTF8(card, tagbytes) \
847
- F(card, tagbytes, s) \
848
- F(card, tagbytes, b)
849
-
850
- #define TAGBYTES(card) \
851
- UTF8(card, 1) \
852
- UTF8(card, 2)
853
-
854
- TAGBYTES(s)
855
- TAGBYTES(o)
856
- TAGBYTES(r)
857
-
858
- #undef s_VALIDATE
859
- #undef b_VALIDATE
860
- #undef F
861
- #undef TAGBYTES
862
- #undef FASTDECODE_LONGSTRING
863
- #undef FASTDECODE_COPYSTRING
864
- #undef FASTDECODE_STRING
865
-
866
- /* message fields *************************************************************/
867
-
868
- UPB_INLINE
869
- upb_Message* decode_newmsg_ceil(upb_Decoder* d, const upb_MiniTable* m,
870
- int msg_ceil_bytes) {
871
- size_t size = m->UPB_PRIVATE(size);
872
- char* msg_data;
873
- if (UPB_LIKELY(msg_ceil_bytes > 0 &&
874
- UPB_PRIVATE(_upb_ArenaHas)(&d->arena) >= msg_ceil_bytes)) {
875
- UPB_ASSERT(size <= (size_t)msg_ceil_bytes);
876
- msg_data = d->arena.UPB_PRIVATE(ptr);
877
- d->arena.UPB_PRIVATE(ptr) += size;
878
- UPB_UNPOISON_MEMORY_REGION(msg_data, msg_ceil_bytes);
879
- memset(msg_data, 0, msg_ceil_bytes);
880
- UPB_POISON_MEMORY_REGION(msg_data + size, msg_ceil_bytes - size);
881
- } else {
882
- msg_data = (char*)upb_Arena_Malloc(&d->arena, size);
883
- memset(msg_data, 0, size);
884
- }
885
- return (upb_Message*)msg_data;
886
- }
887
-
888
- typedef struct {
889
- intptr_t table;
890
- upb_Message* msg;
891
- } fastdecode_submsgdata;
892
-
893
- UPB_FORCEINLINE
894
- const char* fastdecode_tosubmsg(upb_EpsCopyInputStream* e, const char* ptr,
895
- void* ctx) {
896
- upb_Decoder* d = (upb_Decoder*)e;
897
- fastdecode_submsgdata* submsg = ctx;
898
- ptr = fastdecode_dispatch(d, ptr, submsg->msg, submsg->table, 0, 0);
899
- UPB_ASSUME(ptr != NULL);
900
- return ptr;
901
- }
902
-
903
- #define FASTDECODE_SUBMSG(d, ptr, msg, table, hasbits, data, tagbytes, \
904
- msg_ceil_bytes, card) \
905
- \
906
- if (UPB_UNLIKELY(!fastdecode_checktag(data, tagbytes))) { \
907
- RETURN_GENERIC("submessage field tag mismatch\n"); \
908
- } \
909
- \
910
- if (--d->depth == 0) { \
911
- _upb_FastDecoder_ErrorJmp(d, kUpb_DecodeStatus_MaxDepthExceeded); \
912
- } \
913
- \
914
- upb_Message** dst; \
915
- uint32_t submsg_idx = (data >> 16) & 0xff; \
916
- const upb_MiniTable* tablep = decode_totablep(table); \
917
- const upb_MiniTable* subtablep = \
918
- UPB_PRIVATE(_upb_MiniTable_GetSubTableByIndex)(tablep, submsg_idx); \
919
- fastdecode_submsgdata submsg = {decode_totable(subtablep)}; \
920
- fastdecode_arr farr; \
921
- \
922
- if (subtablep->UPB_PRIVATE(table_mask) == (uint8_t)-1) { \
923
- d->depth++; \
924
- RETURN_GENERIC("submessage doesn't have fast tables."); \
925
- } \
926
- \
927
- dst = fastdecode_getfield(d, ptr, msg, &data, &hasbits, &farr, \
928
- sizeof(upb_Message*), card); \
929
- \
930
- if (card == CARD_s) { \
931
- ((uint32_t*)msg)[2] |= hasbits; \
932
- hasbits = 0; \
933
- } \
934
- \
935
- again: \
936
- if (card == CARD_r) { \
937
- dst = fastdecode_resizearr(d, dst, &farr, sizeof(upb_Message*)); \
938
- } \
939
- \
940
- submsg.msg = *dst; \
941
- \
942
- if (card == CARD_r || UPB_LIKELY(!submsg.msg)) { \
943
- *dst = submsg.msg = decode_newmsg_ceil(d, subtablep, msg_ceil_bytes); \
944
- } \
945
- \
946
- ptr += tagbytes; \
947
- ptr = fastdecode_delimited(d, ptr, fastdecode_tosubmsg, &submsg); \
948
- \
949
- if (UPB_UNLIKELY(ptr == NULL || d->end_group != DECODE_NOGROUP)) { \
950
- _upb_FastDecoder_ErrorJmp(d, kUpb_DecodeStatus_Malformed); \
951
- } \
952
- \
953
- if (card == CARD_r) { \
954
- fastdecode_nextret ret = fastdecode_nextrepeated( \
955
- d, dst, &ptr, &farr, data, tagbytes, sizeof(upb_Message*)); \
956
- switch (ret.next) { \
957
- case FD_NEXT_SAMEFIELD: \
958
- dst = ret.dst; \
959
- goto again; \
960
- case FD_NEXT_OTHERFIELD: \
961
- d->depth++; \
962
- data = ret.tag; \
963
- UPB_MUSTTAIL return _upb_FastDecoder_TagDispatch(UPB_PARSE_ARGS); \
964
- case FD_NEXT_ATLIMIT: \
965
- d->depth++; \
966
- return ptr; \
967
- } \
968
- } \
969
- \
970
- d->depth++; \
971
- UPB_MUSTTAIL return fastdecode_dispatch(UPB_PARSE_ARGS);
972
-
973
- #define F(card, tagbytes, size_ceil, ceil_arg) \
974
- const char* upb_p##card##m_##tagbytes##bt_max##size_ceil##b( \
975
- UPB_PARSE_PARAMS) { \
976
- FASTDECODE_SUBMSG(d, ptr, msg, table, hasbits, data, tagbytes, ceil_arg, \
977
- CARD_##card); \
978
- }
979
-
980
- #define SIZES(card, tagbytes) \
981
- F(card, tagbytes, 64, 64) \
982
- F(card, tagbytes, 128, 128) \
983
- F(card, tagbytes, 192, 192) \
984
- F(card, tagbytes, 256, 256) \
985
- F(card, tagbytes, max, -1)
986
-
987
- #define TAGBYTES(card) \
988
- SIZES(card, 1) \
989
- SIZES(card, 2)
990
-
991
- TAGBYTES(s)
992
- TAGBYTES(o)
993
- TAGBYTES(r)
994
-
995
- #undef TAGBYTES
996
- #undef SIZES
997
- #undef F
998
- #undef FASTDECODE_SUBMSG
999
-
1000
- #endif /* UPB_FASTTABLE */