grpc 1.53.0 → 1.55.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (1521) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +132 -89
  3. data/include/grpc/event_engine/event_engine.h +30 -14
  4. data/include/grpc/grpc_security.h +4 -0
  5. data/include/grpc/impl/grpc_types.h +13 -2
  6. data/include/grpc/support/port_platform.h +4 -4
  7. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +12 -1
  8. data/src/core/ext/filters/client_channel/backend_metric.cc +8 -1
  9. data/src/core/ext/filters/client_channel/backup_poller.cc +2 -11
  10. data/src/core/ext/filters/client_channel/backup_poller.h +0 -3
  11. data/src/core/ext/filters/client_channel/client_channel.cc +853 -822
  12. data/src/core/ext/filters/client_channel/client_channel.h +140 -178
  13. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +1 -1
  14. data/src/core/ext/filters/client_channel/client_channel_internal.h +82 -0
  15. data/src/core/ext/filters/client_channel/client_channel_service_config.cc +2 -2
  16. data/src/core/ext/filters/client_channel/config_selector.h +9 -20
  17. data/src/core/ext/filters/client_channel/health/health_check_client.cc +1 -1
  18. data/src/core/ext/filters/client_channel/http_proxy.cc +35 -2
  19. data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +6 -1
  20. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +19 -20
  21. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +1 -1
  22. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
  23. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +5 -5
  24. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +3 -3
  25. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +134 -151
  26. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +46 -61
  27. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +14 -10
  28. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +70 -33
  29. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +14 -6
  30. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +3 -3
  31. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +12 -5
  32. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +5 -8
  33. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +9 -9
  34. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +6 -6
  35. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +5 -4
  36. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +46 -153
  37. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.h +30 -0
  38. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +4 -4
  39. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_plugin.cc +60 -0
  40. data/src/core/ext/filters/client_channel/resolver/dns/{dns_resolver_selection.h → dns_resolver_plugin.h} +10 -12
  41. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.cc +524 -0
  42. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/event_engine_client_channel_resolver.h +35 -0
  43. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.cc +97 -0
  44. data/src/core/ext/filters/client_channel/resolver/dns/event_engine/service_config_helper.h +32 -0
  45. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +19 -36
  46. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.h +24 -0
  47. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +34 -181
  48. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +1 -2
  49. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +1 -2
  50. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +11 -36
  51. data/src/core/ext/filters/client_channel/retry_filter.cc +117 -156
  52. data/src/core/ext/filters/client_channel/retry_service_config.cc +8 -8
  53. data/src/core/ext/filters/client_channel/subchannel.cc +2 -4
  54. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +26 -27
  55. data/src/core/ext/filters/client_channel/subchannel_stream_client.h +8 -5
  56. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +1 -1
  57. data/src/core/ext/filters/http/client/http_client_filter.cc +3 -3
  58. data/src/core/ext/filters/http/http_filters_plugin.cc +1 -12
  59. data/src/core/ext/filters/http/message_compress/compression_filter.cc +29 -13
  60. data/src/core/ext/filters/message_size/message_size_filter.cc +141 -224
  61. data/src/core/ext/filters/message_size/message_size_filter.h +48 -3
  62. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +68 -69
  63. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +7 -6
  64. data/src/core/ext/gcp/metadata_query.cc +137 -0
  65. data/src/core/ext/gcp/metadata_query.h +87 -0
  66. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +70 -55
  67. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +12 -8
  68. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +5 -1
  69. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +226 -82
  70. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +21 -0
  71. data/src/core/ext/transport/chttp2/transport/context_list_entry.h +70 -0
  72. data/src/core/ext/transport/chttp2/transport/flow_control.cc +5 -2
  73. data/src/core/ext/transport/chttp2/transport/flow_control.h +2 -1
  74. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +1 -7
  75. data/src/core/ext/transport/chttp2/transport/frame_ping.h +0 -3
  76. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -1
  77. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +118 -222
  78. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +296 -113
  79. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +2 -0
  80. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +2 -0
  81. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +466 -273
  82. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +7 -3
  83. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +15 -12
  84. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +9 -1
  85. data/src/core/ext/transport/chttp2/transport/internal.h +20 -6
  86. data/src/core/ext/transport/chttp2/transport/parsing.cc +9 -2
  87. data/src/core/ext/transport/chttp2/transport/writing.cc +24 -8
  88. data/src/core/ext/transport/inproc/inproc_transport.cc +20 -14
  89. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +87 -52
  90. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +414 -181
  91. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +121 -60
  92. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +481 -224
  93. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +90 -55
  94. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +415 -188
  95. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +357 -210
  96. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1572 -729
  97. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +30 -17
  98. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +144 -47
  99. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +34 -21
  100. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +160 -62
  101. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +27 -14
  102. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +78 -38
  103. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +20 -11
  104. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +48 -26
  105. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +20 -11
  106. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +48 -26
  107. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +109 -62
  108. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +566 -244
  109. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +21 -12
  110. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +45 -30
  111. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +22 -19
  112. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +82 -29
  113. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +23 -16
  114. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +45 -30
  115. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +230 -143
  116. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +733 -404
  117. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +417 -262
  118. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1850 -888
  119. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -41
  120. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +286 -148
  121. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +531 -334
  122. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +2017 -1131
  123. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +21 -12
  124. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +45 -30
  125. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +89 -52
  126. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +347 -232
  127. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +264 -165
  128. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +888 -476
  129. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +139 -80
  130. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +527 -274
  131. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +22 -13
  132. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +50 -36
  133. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +380 -221
  134. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1168 -611
  135. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +166 -94
  136. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +666 -292
  137. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +18 -11
  138. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +37 -26
  139. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +21 -12
  140. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +45 -30
  141. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +30 -17
  142. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +144 -47
  143. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +274 -167
  144. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +789 -440
  145. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +228 -137
  146. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +1100 -501
  147. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +22 -13
  148. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +60 -37
  149. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +350 -209
  150. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +1083 -635
  151. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +44 -11
  152. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +175 -18
  153. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +34 -19
  154. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +118 -56
  155. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +38 -21
  156. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +148 -64
  157. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +31 -18
  158. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +143 -65
  159. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +22 -13
  160. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +51 -37
  161. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +78 -43
  162. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +265 -127
  163. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +145 -88
  164. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +438 -241
  165. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +115 -62
  166. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +559 -227
  167. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +18 -11
  168. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +35 -26
  169. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +187 -109
  170. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +956 -421
  171. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +172 -95
  172. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +864 -374
  173. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +49 -25
  174. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +171 -100
  175. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +39 -18
  176. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +74 -56
  177. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +28 -15
  178. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +71 -45
  179. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +131 -74
  180. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +489 -249
  181. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +135 -80
  182. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +505 -245
  183. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +256 -129
  184. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +996 -397
  185. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +80 -49
  186. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +616 -201
  187. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +1283 -774
  188. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +5430 -2509
  189. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +49 -28
  190. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +164 -84
  191. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +228 -141
  192. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +738 -399
  193. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +20 -11
  194. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +48 -26
  195. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +21 -12
  196. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +45 -30
  197. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +32 -19
  198. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +70 -49
  199. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +27 -14
  200. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +110 -43
  201. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +46 -25
  202. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +259 -100
  203. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +21 -13
  204. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +45 -30
  205. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +18 -11
  206. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +35 -26
  207. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +42 -23
  208. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +108 -70
  209. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +7 -4
  210. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +21 -16
  211. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +43 -24
  212. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +110 -75
  213. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +30 -17
  214. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +95 -50
  215. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +16 -9
  216. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +73 -23
  217. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +60 -37
  218. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +150 -108
  219. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +74 -43
  220. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +357 -167
  221. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +44 -25
  222. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +114 -80
  223. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +41 -20
  224. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +245 -82
  225. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +32 -19
  226. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +73 -51
  227. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +474 -292
  228. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +2144 -1055
  229. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +18 -11
  230. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +35 -26
  231. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +34 -19
  232. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +125 -67
  233. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.c +72 -45
  234. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/common/v3/common.upb.h +193 -138
  235. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +34 -19
  236. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +131 -66
  237. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +18 -11
  238. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +35 -26
  239. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +7 -4
  240. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +15 -10
  241. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +184 -96
  242. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +907 -360
  243. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +56 -33
  244. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +150 -101
  245. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +188 -111
  246. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +816 -419
  247. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +32 -19
  248. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +109 -53
  249. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +10 -7
  250. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +18 -14
  251. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +300 -177
  252. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +1284 -522
  253. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +42 -23
  254. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +188 -75
  255. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +130 -83
  256. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +510 -238
  257. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +22 -13
  258. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +55 -34
  259. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +39 -26
  260. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +124 -68
  261. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.c +21 -12
  262. data/src/core/ext/upb-generated/envoy/type/matcher/v3/filter_state.upb.h +47 -30
  263. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +60 -26
  264. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +130 -51
  265. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +37 -20
  266. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +133 -63
  267. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +22 -13
  268. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +91 -40
  269. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +21 -12
  270. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +50 -32
  271. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +18 -11
  272. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +37 -26
  273. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +46 -27
  274. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +101 -70
  275. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.c +13 -10
  276. data/src/core/ext/upb-generated/envoy/type/matcher/v3/status_code_input.upb.h +25 -22
  277. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +40 -23
  278. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +161 -75
  279. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +31 -18
  280. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +114 -56
  281. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +46 -29
  282. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +139 -91
  283. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +65 -42
  284. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +200 -121
  285. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +80 -45
  286. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +208 -131
  287. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +34 -21
  288. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +74 -53
  289. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +7 -4
  290. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +13 -8
  291. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +16 -9
  292. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +28 -18
  293. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +28 -15
  294. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +55 -34
  295. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +43 -22
  296. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +91 -53
  297. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +35 -20
  298. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +92 -57
  299. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +7 -4
  300. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +13 -8
  301. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +20 -11
  302. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +48 -26
  303. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +23 -14
  304. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +61 -41
  305. data/src/core/ext/upb-generated/google/api/annotations.upb.c +14 -11
  306. data/src/core/ext/upb-generated/google/api/annotations.upb.h +30 -20
  307. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +255 -154
  308. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +934 -450
  309. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +299 -180
  310. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +946 -483
  311. data/src/core/ext/upb-generated/google/api/http.upb.c +68 -35
  312. data/src/core/ext/upb-generated/google/api/http.upb.h +284 -120
  313. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +22 -13
  314. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +95 -37
  315. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +19 -10
  316. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +38 -22
  317. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +1018 -424
  318. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +3851 -1412
  319. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +19 -10
  320. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +38 -22
  321. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +10 -7
  322. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +18 -14
  323. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +62 -39
  324. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +207 -102
  325. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +19 -10
  326. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +38 -22
  327. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +90 -51
  328. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +157 -107
  329. data/src/core/ext/upb-generated/google/rpc/status.upb.c +22 -13
  330. data/src/core/ext/upb-generated/google/rpc/status.upb.h +95 -37
  331. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +59 -34
  332. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +154 -92
  333. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +43 -24
  334. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +118 -60
  335. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +250 -145
  336. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +919 -415
  337. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +34 -19
  338. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +76 -51
  339. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +25 -14
  340. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +45 -30
  341. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +144 -81
  342. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +405 -217
  343. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +51 -26
  344. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +153 -61
  345. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +173 -102
  346. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +855 -298
  347. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +68 -49
  348. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +155 -104
  349. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +26 -17
  350. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +55 -34
  351. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +12 -9
  352. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +31 -14
  353. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +26 -17
  354. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +55 -34
  355. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +23 -16
  356. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +45 -30
  357. data/src/core/ext/upb-generated/validate/validate.upb.c +845 -455
  358. data/src/core/ext/upb-generated/validate/validate.upb.h +4347 -1908
  359. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +68 -49
  360. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +155 -104
  361. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +26 -17
  362. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +55 -34
  363. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +12 -9
  364. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +31 -14
  365. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +65 -44
  366. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +137 -91
  367. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +23 -16
  368. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +45 -30
  369. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +16 -9
  370. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +28 -18
  371. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +21 -12
  372. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +45 -30
  373. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +37 -22
  374. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +96 -63
  375. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +26 -17
  376. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +52 -29
  377. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +21 -12
  378. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +45 -30
  379. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +23 -14
  380. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +62 -42
  381. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +44 -25
  382. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +169 -79
  383. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +27 -14
  384. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +65 -38
  385. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +77 -31
  386. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +203 -58
  387. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +21 -12
  388. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +89 -34
  389. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +18 -11
  390. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +35 -26
  391. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +32 -19
  392. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +150 -54
  393. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +10 -7
  394. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +18 -14
  395. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +34 -21
  396. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +161 -63
  397. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +162 -101
  398. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +501 -293
  399. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +85 -52
  400. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +430 -164
  401. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +24 -15
  402. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +53 -37
  403. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +40 -23
  404. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +161 -75
  405. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +37 -22
  406. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +92 -66
  407. data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +43 -22
  408. data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +91 -53
  409. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +21 -12
  410. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +45 -30
  411. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +1 -1
  412. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +6 -5
  413. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +1 -1
  414. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +6 -5
  415. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +1 -1
  416. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +6 -5
  417. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +1 -1
  418. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +6 -5
  419. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +1 -1
  420. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +6 -5
  421. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +1 -1
  422. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +6 -5
  423. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +1 -1
  424. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +6 -5
  425. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +1 -1
  426. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +6 -5
  427. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +1 -1
  428. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +6 -5
  429. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +1 -1
  430. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +6 -5
  431. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +1 -1
  432. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +6 -5
  433. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +1 -1
  434. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +6 -5
  435. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +1 -1
  436. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +6 -5
  437. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +1 -1
  438. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +6 -5
  439. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +251 -248
  440. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +6 -5
  441. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +1 -1
  442. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +6 -5
  443. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +1 -1
  444. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +6 -5
  445. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +1 -1
  446. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +6 -5
  447. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +1 -1
  448. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +6 -5
  449. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +1 -1
  450. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +6 -5
  451. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +1 -1
  452. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +6 -5
  453. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +1 -1
  454. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +6 -5
  455. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +1 -1
  456. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +6 -5
  457. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +13 -12
  458. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +11 -5
  459. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +1 -1
  460. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +6 -5
  461. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +1 -1
  462. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +6 -5
  463. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +1 -1
  464. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +6 -5
  465. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +1 -1
  466. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +6 -5
  467. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +1 -1
  468. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +6 -5
  469. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +1 -1
  470. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +6 -5
  471. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +140 -137
  472. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +6 -5
  473. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +32 -16
  474. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +11 -5
  475. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +1 -1
  476. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +6 -5
  477. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +1 -1
  478. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +6 -5
  479. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +1 -1
  480. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +6 -5
  481. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +1 -1
  482. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +6 -5
  483. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +1 -1
  484. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +6 -5
  485. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +1 -1
  486. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +6 -5
  487. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +1 -1
  488. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +6 -5
  489. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +1 -1
  490. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +6 -5
  491. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +13 -10
  492. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +21 -5
  493. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +1 -1
  494. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +6 -5
  495. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +55 -46
  496. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +6 -5
  497. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +1 -1
  498. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +6 -5
  499. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +1 -1
  500. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +6 -5
  501. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +1 -1
  502. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +6 -5
  503. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +1 -1
  504. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +6 -5
  505. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +142 -120
  506. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +16 -5
  507. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +1 -1
  508. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +6 -5
  509. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +101 -98
  510. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +6 -5
  511. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +1 -1
  512. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +6 -5
  513. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +1 -1
  514. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +6 -5
  515. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +1 -1
  516. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +6 -5
  517. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +1 -1
  518. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +6 -5
  519. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +1 -1
  520. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +6 -5
  521. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +1 -1
  522. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +6 -5
  523. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +1 -1
  524. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +6 -5
  525. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +16 -19
  526. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +6 -5
  527. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +1 -1
  528. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +6 -5
  529. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +1 -1
  530. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +6 -5
  531. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +1 -1
  532. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +6 -5
  533. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +1 -1
  534. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +6 -5
  535. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +1 -1
  536. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +6 -5
  537. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +1 -1
  538. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +6 -5
  539. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +1 -1
  540. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +6 -5
  541. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +1 -1
  542. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +6 -5
  543. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +1 -1
  544. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +6 -5
  545. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +1 -1
  546. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +6 -5
  547. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +1 -1
  548. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +6 -5
  549. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +126 -115
  550. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +6 -5
  551. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +1 -1
  552. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +6 -5
  553. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +1 -1
  554. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +6 -5
  555. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +138 -136
  556. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +6 -5
  557. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +1 -1
  558. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +6 -5
  559. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +118 -118
  560. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +6 -5
  561. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +1 -1
  562. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +6 -5
  563. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +6 -6
  564. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +6 -5
  565. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +1 -1
  566. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +6 -5
  567. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +6 -6
  568. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +6 -5
  569. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +12 -13
  570. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +6 -5
  571. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +1 -1
  572. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +6 -5
  573. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +1 -1
  574. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +6 -5
  575. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.c +1 -1
  576. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/filter_state.upbdefs.h +6 -5
  577. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +13 -10
  578. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +11 -5
  579. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +1 -1
  580. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +6 -5
  581. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +1 -1
  582. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +6 -5
  583. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +1 -1
  584. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +6 -5
  585. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +1 -1
  586. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +6 -5
  587. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +1 -1
  588. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +6 -5
  589. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.c +1 -1
  590. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/status_code_input.upbdefs.h +6 -5
  591. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +1 -1
  592. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +6 -5
  593. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +1 -1
  594. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +6 -5
  595. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +1 -1
  596. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +6 -5
  597. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +1 -1
  598. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +6 -5
  599. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +1 -1
  600. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +6 -5
  601. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +1 -1
  602. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +6 -5
  603. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +1 -1
  604. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +6 -5
  605. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +1 -1
  606. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +6 -5
  607. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +1 -1
  608. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +6 -5
  609. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +1 -1
  610. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +6 -5
  611. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +1 -1
  612. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +6 -5
  613. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +1 -1
  614. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +6 -5
  615. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +1 -1
  616. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +6 -5
  617. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +1 -1
  618. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +6 -5
  619. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +1 -1
  620. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +6 -5
  621. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +1 -1
  622. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +6 -5
  623. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +1 -1
  624. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +6 -5
  625. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +1 -1
  626. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +6 -5
  627. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +1 -1
  628. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +6 -5
  629. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +1 -1
  630. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +6 -5
  631. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +329 -273
  632. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +11 -5
  633. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +1 -1
  634. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +6 -5
  635. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +1 -1
  636. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +6 -5
  637. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +1 -1
  638. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +6 -5
  639. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +1 -1
  640. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +6 -5
  641. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +1 -1
  642. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +6 -5
  643. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +1 -1
  644. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +6 -5
  645. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +1 -1
  646. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +6 -5
  647. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +1 -1
  648. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +6 -5
  649. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +1 -1
  650. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +6 -5
  651. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +1 -1
  652. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +6 -5
  653. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +1 -1
  654. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +6 -5
  655. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +1 -1
  656. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +6 -5
  657. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +1 -1
  658. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +6 -5
  659. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +1 -1
  660. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +6 -5
  661. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +1 -1
  662. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +6 -5
  663. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +1 -1
  664. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +6 -5
  665. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +1 -1
  666. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +6 -5
  667. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +1 -1
  668. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +6 -5
  669. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +1 -1
  670. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +6 -5
  671. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +1 -1
  672. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +6 -5
  673. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c +1 -1
  674. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h +6 -5
  675. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +1 -1
  676. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +6 -5
  677. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +1 -1
  678. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +6 -5
  679. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +1 -1
  680. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +6 -5
  681. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +1 -1
  682. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +6 -5
  683. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +1 -1
  684. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +6 -5
  685. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +1 -1
  686. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +6 -5
  687. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c +1 -1
  688. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h +6 -5
  689. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c +1 -1
  690. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h +6 -5
  691. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c +1 -1
  692. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h +6 -5
  693. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c +1 -1
  694. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h +6 -5
  695. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +1 -1
  696. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +6 -5
  697. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c +1 -1
  698. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h +6 -5
  699. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +1 -1
  700. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +6 -5
  701. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +1 -1
  702. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +6 -5
  703. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c +1 -1
  704. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h +6 -5
  705. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c +1 -1
  706. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h +6 -5
  707. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +1 -1
  708. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +6 -5
  709. data/src/core/ext/xds/certificate_provider_store.cc +4 -4
  710. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +7 -7
  711. data/src/core/ext/xds/upb_utils.h +1 -1
  712. data/src/core/ext/xds/xds_api.cc +34 -14
  713. data/src/core/ext/xds/xds_api.h +2 -2
  714. data/src/core/ext/xds/xds_bootstrap.cc +3 -3
  715. data/src/core/ext/xds/xds_bootstrap_grpc.cc +15 -15
  716. data/src/core/ext/xds/xds_channel_stack_modifier.cc +1 -2
  717. data/src/core/ext/xds/xds_client.cc +24 -3
  718. data/src/core/ext/xds/xds_client.h +1 -1
  719. data/src/core/ext/xds/xds_client_stats.cc +29 -15
  720. data/src/core/ext/xds/xds_client_stats.h +24 -20
  721. data/src/core/ext/xds/xds_cluster.cc +26 -34
  722. data/src/core/ext/xds/xds_cluster.h +1 -2
  723. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +4 -3
  724. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +2 -2
  725. data/src/core/ext/xds/xds_common_types.cc +5 -4
  726. data/src/core/ext/xds/xds_endpoint.cc +10 -4
  727. data/src/core/ext/xds/xds_endpoint.h +10 -2
  728. data/src/core/ext/xds/xds_http_fault_filter.cc +2 -2
  729. data/src/core/ext/xds/xds_http_fault_filter.h +1 -1
  730. data/src/core/ext/xds/xds_http_filters.h +3 -2
  731. data/src/core/ext/xds/xds_http_rbac_filter.cc +7 -9
  732. data/src/core/ext/xds/xds_http_rbac_filter.h +1 -1
  733. data/src/core/ext/xds/xds_http_stateful_session_filter.cc +2 -2
  734. data/src/core/ext/xds/xds_http_stateful_session_filter.h +1 -1
  735. data/src/core/ext/xds/xds_lb_policy_registry.cc +17 -22
  736. data/src/core/ext/xds/xds_listener.cc +10 -4
  737. data/src/core/ext/xds/xds_listener.h +1 -1
  738. data/src/core/ext/xds/xds_resource_type.h +2 -2
  739. data/src/core/ext/xds/xds_route_config.cc +8 -5
  740. data/src/core/ext/xds/xds_route_config.h +1 -1
  741. data/src/core/ext/xds/xds_transport_grpc.cc +1 -1
  742. data/src/core/lib/backoff/random_early_detection.cc +31 -0
  743. data/src/core/lib/backoff/random_early_detection.h +59 -0
  744. data/src/core/lib/channel/call_finalization.h +1 -1
  745. data/src/core/lib/channel/call_tracer.cc +51 -0
  746. data/src/core/lib/channel/call_tracer.h +101 -38
  747. data/src/core/lib/channel/channelz.cc +5 -4
  748. data/src/core/lib/channel/channelz_registry.cc +7 -6
  749. data/src/core/lib/channel/connected_channel.cc +533 -1045
  750. data/src/core/lib/channel/context.h +8 -1
  751. data/src/core/lib/channel/promise_based_filter.cc +100 -42
  752. data/src/core/lib/channel/promise_based_filter.h +27 -13
  753. data/src/core/lib/channel/server_call_tracer_filter.cc +110 -0
  754. data/src/core/lib/config/config_vars.cc +151 -0
  755. data/src/core/lib/config/config_vars.h +127 -0
  756. data/src/core/lib/config/config_vars_non_generated.cc +51 -0
  757. data/src/core/lib/config/load_config.cc +66 -0
  758. data/src/core/lib/config/load_config.h +49 -0
  759. data/src/core/lib/debug/trace.cc +21 -13
  760. data/src/core/lib/debug/trace.h +12 -9
  761. data/src/core/lib/event_engine/event_engine.cc +37 -2
  762. data/src/core/lib/event_engine/handle_containers.h +7 -22
  763. data/src/core/lib/event_engine/memory_allocator_factory.h +47 -0
  764. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +0 -4
  765. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +3 -9
  766. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +48 -15
  767. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +8 -8
  768. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +14 -31
  769. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +6 -3
  770. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +33 -19
  771. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +3 -3
  772. data/src/core/lib/event_engine/resolved_address.cc +2 -1
  773. data/src/core/lib/event_engine/shim.cc +2 -0
  774. data/src/core/lib/event_engine/trace.cc +1 -0
  775. data/src/core/lib/event_engine/trace.h +6 -0
  776. data/src/core/lib/event_engine/windows/win_socket.cc +0 -1
  777. data/src/core/lib/event_engine/windows/windows_endpoint.cc +129 -82
  778. data/src/core/lib/event_engine/windows/windows_endpoint.h +21 -5
  779. data/src/core/lib/event_engine/windows/windows_engine.cc +39 -18
  780. data/src/core/lib/event_engine/windows/windows_engine.h +2 -1
  781. data/src/core/lib/event_engine/windows/windows_listener.cc +370 -0
  782. data/src/core/lib/event_engine/windows/windows_listener.h +155 -0
  783. data/src/core/lib/experiments/config.cc +3 -10
  784. data/src/core/lib/experiments/experiments.cc +10 -0
  785. data/src/core/lib/experiments/experiments.h +12 -1
  786. data/src/core/lib/gpr/log.cc +15 -28
  787. data/src/core/lib/gpr/{time_posix.cc → posix/time.cc} +5 -0
  788. data/src/core/lib/gprpp/fork.cc +8 -14
  789. data/src/core/lib/gprpp/orphanable.h +4 -3
  790. data/src/core/lib/gprpp/per_cpu.h +9 -3
  791. data/src/core/lib/gprpp/{thd_posix.cc → posix/thd.cc} +49 -37
  792. data/src/core/lib/gprpp/ref_counted.h +33 -34
  793. data/src/core/lib/gprpp/status_helper.cc +2 -2
  794. data/src/core/lib/gprpp/thd.h +16 -0
  795. data/src/core/lib/gprpp/time.cc +1 -0
  796. data/src/core/lib/gprpp/time.h +4 -4
  797. data/src/core/lib/gprpp/validation_errors.cc +8 -3
  798. data/src/core/lib/gprpp/validation_errors.h +16 -9
  799. data/src/core/lib/gprpp/{thd_windows.cc → windows/thd.cc} +2 -2
  800. data/src/core/lib/iomgr/buffer_list.h +0 -1
  801. data/src/core/lib/iomgr/call_combiner.h +2 -2
  802. data/src/core/lib/iomgr/endpoint_cfstream.cc +4 -2
  803. data/src/core/lib/iomgr/endpoint_pair.h +2 -2
  804. data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -2
  805. data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
  806. data/src/core/lib/iomgr/ev_posix.cc +13 -53
  807. data/src/core/lib/iomgr/ev_posix.h +0 -3
  808. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +103 -76
  809. data/src/core/lib/iomgr/iomgr.cc +4 -8
  810. data/src/core/lib/iomgr/iomgr_windows.cc +8 -2
  811. data/src/core/lib/iomgr/pollset_set_windows.cc +9 -9
  812. data/src/core/lib/iomgr/pollset_windows.cc +1 -1
  813. data/src/core/lib/iomgr/socket_utils_common_posix.cc +16 -3
  814. data/src/core/lib/iomgr/socket_utils_posix.cc +3 -0
  815. data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
  816. data/src/core/lib/iomgr/tcp_client_posix.cc +4 -0
  817. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -2
  818. data/src/core/lib/iomgr/tcp_posix.cc +0 -1
  819. data/src/core/lib/iomgr/tcp_server_posix.cc +5 -16
  820. data/src/core/lib/iomgr/tcp_server_windows.cc +176 -9
  821. data/src/core/lib/iomgr/tcp_windows.cc +12 -8
  822. data/src/core/lib/iomgr/timer_generic.cc +17 -16
  823. data/src/core/lib/json/json.h +61 -113
  824. data/src/core/lib/json/json_object_loader.cc +20 -20
  825. data/src/core/lib/json/json_object_loader.h +8 -3
  826. data/src/core/lib/json/json_reader.cc +58 -38
  827. data/src/core/{ext/filters/client_channel/lb_call_state_internal.h → lib/json/json_reader.h} +7 -12
  828. data/src/core/lib/json/json_util.cc +6 -6
  829. data/src/core/lib/json/json_util.h +5 -4
  830. data/src/core/lib/json/json_writer.cc +19 -19
  831. data/src/core/lib/{security/security_connector/ssl_utils_config.h → json/json_writer.h} +14 -10
  832. data/src/core/lib/load_balancing/lb_policy.cc +9 -13
  833. data/src/core/lib/load_balancing/lb_policy.h +4 -2
  834. data/src/core/lib/load_balancing/lb_policy_registry.cc +7 -7
  835. data/src/core/lib/promise/activity.cc +22 -6
  836. data/src/core/lib/promise/activity.h +61 -24
  837. data/src/core/lib/promise/cancel_callback.h +77 -0
  838. data/src/core/lib/promise/detail/basic_seq.h +1 -1
  839. data/src/core/lib/promise/detail/promise_factory.h +4 -0
  840. data/src/core/lib/promise/for_each.h +176 -0
  841. data/src/core/lib/promise/if.h +9 -0
  842. data/src/core/lib/promise/interceptor_list.h +23 -2
  843. data/src/core/lib/promise/latch.h +89 -3
  844. data/src/core/lib/promise/loop.h +13 -9
  845. data/src/core/lib/promise/map.h +7 -0
  846. data/src/core/lib/promise/party.cc +286 -0
  847. data/src/core/lib/promise/party.h +499 -0
  848. data/src/core/lib/promise/pipe.h +204 -57
  849. data/src/core/lib/promise/poll.h +48 -0
  850. data/src/core/lib/promise/promise.h +2 -2
  851. data/src/core/lib/resource_quota/arena.cc +19 -3
  852. data/src/core/lib/resource_quota/arena.h +119 -5
  853. data/src/core/lib/resource_quota/memory_quota.cc +1 -1
  854. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +47 -72
  855. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -0
  856. data/src/core/lib/security/credentials/external/external_account_credentials.cc +60 -62
  857. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +22 -21
  858. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +28 -27
  859. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +4 -61
  860. data/src/core/lib/security/credentials/jwt/json_token.cc +6 -4
  861. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +8 -5
  862. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +39 -38
  863. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +27 -21
  864. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -1
  865. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +13 -0
  866. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +2 -0
  867. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +5 -9
  868. data/src/core/lib/security/security_connector/ssl_utils.cc +11 -25
  869. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +12 -0
  870. data/src/core/lib/security/transport/secure_endpoint.cc +4 -2
  871. data/src/core/lib/security/transport/server_auth_filter.cc +20 -2
  872. data/src/core/lib/security/util/json_util.cc +5 -5
  873. data/src/core/lib/service_config/service_config_impl.cc +11 -5
  874. data/src/core/lib/slice/slice.cc +1 -1
  875. data/src/core/lib/slice/slice.h +2 -0
  876. data/src/core/lib/surface/builtins.cc +2 -0
  877. data/src/core/lib/surface/call.cc +985 -1038
  878. data/src/core/lib/surface/call.h +11 -5
  879. data/src/core/lib/surface/completion_queue.cc +2 -1
  880. data/src/core/lib/surface/lame_client.cc +1 -0
  881. data/src/core/lib/surface/server.cc +47 -19
  882. data/src/core/lib/surface/validate_metadata.cc +43 -42
  883. data/src/core/lib/surface/validate_metadata.h +9 -0
  884. data/src/core/lib/surface/version.cc +2 -2
  885. data/src/core/lib/transport/batch_builder.cc +179 -0
  886. data/src/core/lib/transport/batch_builder.h +476 -0
  887. data/src/core/lib/transport/bdp_estimator.cc +7 -7
  888. data/src/core/lib/transport/bdp_estimator.h +10 -6
  889. data/src/core/lib/transport/custom_metadata.h +30 -0
  890. data/src/core/lib/transport/metadata_batch.cc +9 -6
  891. data/src/core/lib/transport/metadata_batch.h +124 -31
  892. data/src/core/lib/transport/metadata_compression_traits.h +67 -0
  893. data/src/core/lib/transport/parsed_metadata.h +19 -9
  894. data/src/core/lib/transport/simple_slice_based_metadata.h +48 -0
  895. data/src/core/lib/transport/timeout_encoding.cc +6 -1
  896. data/src/core/lib/transport/transport.cc +30 -2
  897. data/src/core/lib/transport/transport.h +73 -14
  898. data/src/core/lib/transport/transport_impl.h +7 -0
  899. data/src/core/lib/transport/transport_op_string.cc +52 -42
  900. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -6
  901. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +1 -0
  902. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +21 -4
  903. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +5 -0
  904. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
  905. data/src/core/tsi/ssl_transport_security.cc +4 -2
  906. data/src/ruby/lib/grpc/version.rb +1 -1
  907. data/third_party/abseil-cpp/absl/base/config.h +1 -1
  908. data/third_party/abseil-cpp/absl/flags/commandlineflag.cc +34 -0
  909. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +200 -0
  910. data/third_party/abseil-cpp/absl/flags/config.h +68 -0
  911. data/third_party/abseil-cpp/absl/flags/declare.h +73 -0
  912. data/third_party/abseil-cpp/absl/flags/flag.cc +38 -0
  913. data/third_party/abseil-cpp/absl/flags/flag.h +310 -0
  914. data/{src/core/lib/gprpp/global_config_custom.h → third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc} +11 -14
  915. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +68 -0
  916. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +615 -0
  917. data/third_party/abseil-cpp/absl/flags/internal/flag.h +800 -0
  918. data/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +116 -0
  919. data/third_party/abseil-cpp/absl/flags/internal/path_util.h +62 -0
  920. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +65 -0
  921. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +61 -0
  922. data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +60 -0
  923. data/third_party/abseil-cpp/absl/flags/internal/program_name.h +50 -0
  924. data/third_party/abseil-cpp/absl/flags/internal/registry.h +97 -0
  925. data/third_party/abseil-cpp/absl/flags/internal/sequence_lock.h +187 -0
  926. data/third_party/abseil-cpp/absl/flags/marshalling.cc +241 -0
  927. data/third_party/abseil-cpp/absl/flags/marshalling.h +356 -0
  928. data/third_party/abseil-cpp/absl/flags/reflection.cc +354 -0
  929. data/third_party/abseil-cpp/absl/flags/reflection.h +90 -0
  930. data/third_party/abseil-cpp/absl/flags/usage_config.cc +165 -0
  931. data/third_party/abseil-cpp/absl/flags/usage_config.h +135 -0
  932. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +12 -8
  933. data/third_party/boringssl-with-bazel/err_data.c +728 -712
  934. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +177 -177
  935. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +28 -55
  936. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +21 -23
  937. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +20 -23
  938. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +66 -185
  939. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +18 -21
  940. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +356 -311
  941. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +174 -194
  942. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +146 -210
  943. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +6 -9
  944. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +346 -526
  945. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +110 -131
  946. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +130 -116
  947. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +93 -60
  948. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +93 -181
  949. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +242 -305
  950. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +41 -18
  951. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +30 -33
  952. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +36 -33
  953. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +29 -26
  954. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +133 -88
  955. data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c +230 -0
  956. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +791 -791
  957. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +526 -526
  958. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +114 -135
  959. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +201 -207
  960. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +21 -26
  961. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +55 -68
  962. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +2 -4
  963. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +11 -7
  964. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +37 -51
  965. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +15 -9
  966. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +11 -8
  967. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +17 -10
  968. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -3
  969. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +0 -13
  970. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -6
  971. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +2 -0
  972. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +9 -5
  973. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +10 -23
  974. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +2 -6
  975. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +2 -1
  976. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +29 -28
  977. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +161 -201
  978. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +254 -39
  979. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +2 -2
  980. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +0 -2
  981. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +4 -4
  982. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +9 -8
  983. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +37 -75
  984. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +8 -10
  985. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/cipher → cipher_extra}/e_des.c +100 -78
  986. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +1 -0
  987. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +1 -0
  988. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +2 -0
  989. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +6 -12
  990. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -11
  991. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +6 -10
  992. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -1
  993. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +12 -0
  994. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +74 -0
  995. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_freebsd.c +62 -0
  996. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-fuchsia.c → cpu_aarch64_fuchsia.c} +8 -7
  997. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-linux.c → cpu_aarch64_linux.c} +6 -4
  998. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-win.c → cpu_aarch64_win.c} +4 -4
  999. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm.c → cpu_arm.c} +1 -1
  1000. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +55 -0
  1001. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.c → cpu_arm_linux.c} +11 -90
  1002. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.h → cpu_arm_linux.h} +0 -38
  1003. data/third_party/boringssl-with-bazel/src/crypto/{cpu-intel.c → cpu_intel.c} +1 -2
  1004. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +25 -20
  1005. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +16 -27
  1006. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +17 -32
  1007. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/des.c +232 -232
  1008. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/internal.h +1 -1
  1009. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +1 -0
  1010. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +232 -29
  1011. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +0 -3
  1012. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +39 -16
  1013. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +37 -7
  1014. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +3 -3
  1015. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +11 -36
  1016. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +214 -99
  1017. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +21 -5
  1018. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +2 -4
  1019. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +83 -60
  1020. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +46 -12
  1021. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +3 -3
  1022. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +25 -23
  1023. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +43 -9
  1024. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +75 -44
  1025. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +19 -25
  1026. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +96 -45
  1027. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +7 -8
  1028. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +26 -23
  1029. data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c +233 -0
  1030. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +5 -5
  1031. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +42 -25
  1032. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +4 -5
  1033. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +35 -47
  1034. data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +135 -244
  1035. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +2 -4
  1036. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +15 -10
  1037. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +29 -15
  1038. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +0 -2
  1039. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +13 -14
  1040. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +3 -13
  1041. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +13 -7
  1042. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +9 -7
  1043. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +35 -27
  1044. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +16 -26
  1045. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +88 -60
  1046. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +4 -3
  1047. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +0 -2
  1048. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +1 -1
  1049. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +1 -1
  1050. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +99 -113
  1051. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +0 -1
  1052. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +5 -3
  1053. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c +112 -168
  1054. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +86 -31
  1055. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +11 -6
  1056. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +4 -5
  1057. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +4 -5
  1058. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +13 -0
  1059. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +13 -5
  1060. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +19 -108
  1061. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +19 -15
  1062. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +15 -16
  1063. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +22 -21
  1064. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c +3 -0
  1065. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +79 -19
  1066. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +102 -99
  1067. data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +52 -46
  1068. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +39 -0
  1069. data/third_party/boringssl-with-bazel/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +55 -11
  1070. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +2 -3
  1071. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +21 -6
  1072. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +56 -0
  1073. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +5 -3
  1074. data/third_party/boringssl-with-bazel/src/crypto/{evp → fipsmodule/digestsign}/digestsign.c +51 -15
  1075. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +25 -25
  1076. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +91 -17
  1077. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +5 -5
  1078. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +34 -12
  1079. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +54 -23
  1080. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +44 -60
  1081. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64-table.h → p256-nistz-table.h} +1 -1
  1082. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.c → p256-nistz.c} +60 -53
  1083. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.h → p256-nistz.h} +5 -13
  1084. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +48 -36
  1085. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +2 -8
  1086. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +2 -7
  1087. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +2 -3
  1088. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +0 -1
  1089. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +8 -0
  1090. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +42 -14
  1091. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +6 -0
  1092. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c +52 -24
  1093. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +9 -15
  1094. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +1 -4
  1095. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +2 -4
  1096. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +71 -43
  1097. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +14 -16
  1098. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -4
  1099. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +31 -13
  1100. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +16 -8
  1101. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +3 -2
  1102. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +2 -2
  1103. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +9 -38
  1104. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +73 -59
  1105. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +11 -45
  1106. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +0 -1
  1107. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +22 -0
  1108. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +63 -52
  1109. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +107 -62
  1110. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +58 -31
  1111. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +41 -0
  1112. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +523 -422
  1113. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
  1114. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +334 -0
  1115. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +3 -12
  1116. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +2 -0
  1117. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +12 -8
  1118. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +14 -12
  1119. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +19 -6
  1120. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +32 -14
  1121. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +65 -29
  1122. data/third_party/boringssl-with-bazel/src/crypto/internal.h +373 -18
  1123. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +91 -0
  1124. data/third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c +204 -0
  1125. data/third_party/boringssl-with-bazel/src/crypto/kyber/kyber.c +826 -0
  1126. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +13 -1
  1127. data/third_party/boringssl-with-bazel/src/crypto/mem.c +220 -13
  1128. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +19 -7
  1129. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +13 -1
  1130. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +81 -90
  1131. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +150 -245
  1132. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +629 -613
  1133. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +17 -17
  1134. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +142 -149
  1135. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +99 -131
  1136. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +0 -1
  1137. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +0 -1
  1138. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +0 -1
  1139. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +0 -3
  1140. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -66
  1141. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +31 -38
  1142. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +2 -1
  1143. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +18 -31
  1144. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
  1145. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +8 -1
  1146. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +129 -5
  1147. data/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c +0 -2
  1148. data/third_party/boringssl-with-bazel/src/crypto/refcount_lock.c +3 -4
  1149. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +8 -11
  1150. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +61 -27
  1151. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +10 -13
  1152. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +10 -13
  1153. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +66 -34
  1154. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +200 -89
  1155. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +81 -284
  1156. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +117 -52
  1157. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +22 -24
  1158. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +54 -55
  1159. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +32 -34
  1160. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +32 -16
  1161. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +465 -704
  1162. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +285 -331
  1163. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +183 -178
  1164. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +11 -15
  1165. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +68 -50
  1166. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +153 -150
  1167. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +790 -0
  1168. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +95 -102
  1169. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +72 -57
  1170. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +12 -10
  1171. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +227 -252
  1172. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +52 -47
  1173. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +3 -4
  1174. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +230 -224
  1175. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +161 -327
  1176. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +37 -33
  1177. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +14 -31
  1178. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +55 -85
  1179. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +528 -616
  1180. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +129 -122
  1181. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +116 -182
  1182. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +132 -132
  1183. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +186 -203
  1184. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +64 -79
  1185. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +175 -160
  1186. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1864 -2050
  1187. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +380 -480
  1188. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +156 -163
  1189. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +267 -263
  1190. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +40 -15
  1191. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +59 -63
  1192. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +63 -67
  1193. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +114 -144
  1194. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +25 -26
  1195. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +329 -416
  1196. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +8 -7
  1197. data/third_party/boringssl-with-bazel/src/crypto/x509/x_info.c +30 -28
  1198. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +354 -370
  1199. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +37 -32
  1200. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +116 -119
  1201. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +36 -26
  1202. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +3 -4
  1203. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +10 -13
  1204. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +3 -4
  1205. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +419 -261
  1206. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +113 -105
  1207. data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +11 -15
  1208. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +78 -170
  1209. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +126 -131
  1210. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c +3 -4
  1211. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +465 -469
  1212. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c +56 -54
  1213. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +46 -49
  1214. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +309 -346
  1215. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +341 -365
  1216. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +429 -393
  1217. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +29 -24
  1218. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c +65 -59
  1219. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +125 -121
  1220. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +43 -42
  1221. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +122 -125
  1222. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c +50 -20
  1223. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +249 -254
  1224. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +386 -389
  1225. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c +45 -32
  1226. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c +57 -54
  1227. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c +63 -67
  1228. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +143 -136
  1229. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +652 -691
  1230. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +83 -75
  1231. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1063 -1145
  1232. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +8 -4
  1233. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +28 -48
  1234. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +211 -187
  1235. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +26 -78
  1236. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +19 -14
  1237. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +29 -10
  1238. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +49 -17
  1239. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +99 -29
  1240. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +49 -60
  1241. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +2 -15
  1242. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +16 -200
  1243. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +34 -0
  1244. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +82 -0
  1245. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +32 -30
  1246. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +7 -0
  1247. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +4 -0
  1248. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +48 -5
  1249. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +37 -8
  1250. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +1 -0
  1251. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +33 -5
  1252. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +22 -30
  1253. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +1 -1
  1254. data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +7 -0
  1255. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +41 -16
  1256. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +91 -0
  1257. data/third_party/boringssl-with-bazel/src/include/openssl/kyber.h +128 -0
  1258. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +74 -8
  1259. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +13 -0
  1260. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +8 -1
  1261. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +1 -0
  1262. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +11 -15
  1263. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +8 -0
  1264. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +12 -1
  1265. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +7 -4
  1266. data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +96 -0
  1267. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +13 -21
  1268. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +139 -75
  1269. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +1 -6
  1270. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +381 -287
  1271. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +5 -6
  1272. data/third_party/boringssl-with-bazel/src/include/openssl/time.h +41 -0
  1273. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +18 -7
  1274. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +49 -23
  1275. data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +0 -11
  1276. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1635 -1126
  1277. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +202 -205
  1278. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +2 -2
  1279. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +6 -13
  1280. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +17 -18
  1281. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +4 -5
  1282. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +25 -33
  1283. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +34 -20
  1284. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +65 -34
  1285. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +198 -54
  1286. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +5 -5
  1287. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +41 -30
  1288. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +76 -44
  1289. data/third_party/boringssl-with-bazel/src/ssl/internal.h +147 -115
  1290. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +27 -11
  1291. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
  1292. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +91 -75
  1293. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +8 -10
  1294. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +47 -69
  1295. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +1 -0
  1296. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +5 -9
  1297. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +30 -33
  1298. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +78 -101
  1299. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +187 -107
  1300. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +164 -30
  1301. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +150 -60
  1302. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +41 -32
  1303. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +22 -6
  1304. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +15 -13
  1305. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +7 -44
  1306. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +7 -4
  1307. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +2 -2
  1308. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +22 -34
  1309. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +2 -2
  1310. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +16 -98
  1311. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +1241 -657
  1312. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +751 -398
  1313. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +3551 -1938
  1314. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +1272 -487
  1315. data/third_party/upb/upb/{table_internal.h → alloc.h} +6 -6
  1316. data/third_party/upb/upb/arena.h +4 -193
  1317. data/third_party/upb/upb/array.h +4 -51
  1318. data/third_party/upb/upb/base/descriptor_constants.h +104 -0
  1319. data/third_party/upb/upb/base/log2.h +57 -0
  1320. data/third_party/upb/upb/{status.c → base/status.c} +2 -7
  1321. data/third_party/upb/upb/base/status.h +66 -0
  1322. data/third_party/upb/upb/base/string_view.h +75 -0
  1323. data/third_party/upb/upb/{array.c → collections/array.c} +67 -36
  1324. data/third_party/upb/upb/collections/array.h +85 -0
  1325. data/third_party/upb/upb/collections/array_internal.h +135 -0
  1326. data/third_party/upb/upb/{map.c → collections/map.c} +53 -26
  1327. data/third_party/upb/upb/collections/map.h +135 -0
  1328. data/third_party/upb/upb/collections/map_gencode_util.h +78 -0
  1329. data/third_party/upb/upb/collections/map_internal.h +170 -0
  1330. data/third_party/upb/upb/collections/map_sorter.c +166 -0
  1331. data/third_party/upb/upb/collections/map_sorter_internal.h +109 -0
  1332. data/third_party/upb/upb/{message_value.h → collections/message_value.h} +12 -13
  1333. data/third_party/upb/upb/decode.h +3 -62
  1334. data/third_party/upb/upb/def.h +4 -384
  1335. data/third_party/upb/upb/def.hpp +3 -411
  1336. data/third_party/upb/upb/encode.h +3 -48
  1337. data/third_party/upb/upb/extension_registry.h +3 -52
  1338. data/third_party/upb/upb/{table.c → hash/common.c} +52 -110
  1339. data/third_party/upb/upb/hash/common.h +199 -0
  1340. data/third_party/upb/upb/hash/int_table.h +102 -0
  1341. data/third_party/upb/upb/hash/str_table.h +161 -0
  1342. data/third_party/upb/upb/{json_decode.c → json/decode.c} +63 -98
  1343. data/third_party/upb/upb/json/decode.h +52 -0
  1344. data/third_party/upb/upb/{json_encode.c → json/encode.c} +69 -45
  1345. data/third_party/upb/upb/json/encode.h +70 -0
  1346. data/third_party/upb/upb/json_decode.h +4 -15
  1347. data/third_party/upb/upb/json_encode.h +4 -33
  1348. data/third_party/upb/upb/lex/atoi.c +68 -0
  1349. data/third_party/upb/upb/lex/atoi.h +53 -0
  1350. data/third_party/upb/upb/{upb.c → lex/round_trip.c} +2 -11
  1351. data/third_party/upb/upb/{internal/upb.h → lex/round_trip.h} +17 -30
  1352. data/third_party/upb/upb/lex/strtod.c +97 -0
  1353. data/third_party/upb/upb/lex/strtod.h +46 -0
  1354. data/third_party/upb/upb/lex/unicode.c +57 -0
  1355. data/third_party/upb/upb/lex/unicode.h +77 -0
  1356. data/third_party/upb/upb/map.h +4 -85
  1357. data/third_party/upb/upb/mem/alloc.c +47 -0
  1358. data/third_party/upb/upb/mem/alloc.h +98 -0
  1359. data/third_party/upb/upb/mem/arena.c +367 -0
  1360. data/third_party/upb/upb/mem/arena.h +160 -0
  1361. data/third_party/upb/upb/mem/arena_internal.h +114 -0
  1362. data/third_party/upb/upb/message/accessors.c +68 -0
  1363. data/third_party/upb/upb/message/accessors.h +379 -0
  1364. data/third_party/upb/upb/message/accessors_internal.h +325 -0
  1365. data/third_party/upb/upb/message/extension_internal.h +83 -0
  1366. data/third_party/upb/upb/message/internal.h +135 -0
  1367. data/third_party/upb/upb/message/message.c +180 -0
  1368. data/third_party/upb/upb/message/message.h +69 -0
  1369. data/third_party/upb/upb/mini_table/common.c +128 -0
  1370. data/third_party/upb/upb/mini_table/common.h +170 -0
  1371. data/third_party/upb/upb/mini_table/common_internal.h +111 -0
  1372. data/third_party/upb/upb/{mini_table.c → mini_table/decode.c} +513 -533
  1373. data/third_party/upb/upb/mini_table/decode.h +179 -0
  1374. data/third_party/upb/upb/mini_table/encode.c +300 -0
  1375. data/third_party/upb/upb/mini_table/encode_internal.h +111 -0
  1376. data/third_party/upb/upb/{mini_table.hpp → mini_table/encode_internal.hpp} +32 -8
  1377. data/third_party/upb/upb/mini_table/enum_internal.h +88 -0
  1378. data/third_party/upb/upb/mini_table/extension_internal.h +47 -0
  1379. data/third_party/upb/upb/{extension_registry.c → mini_table/extension_registry.c} +27 -24
  1380. data/third_party/upb/upb/mini_table/extension_registry.h +104 -0
  1381. data/third_party/upb/upb/mini_table/field_internal.h +192 -0
  1382. data/third_party/upb/upb/mini_table/file_internal.h +47 -0
  1383. data/third_party/upb/upb/mini_table/message_internal.h +136 -0
  1384. data/third_party/upb/upb/mini_table/sub_internal.h +38 -0
  1385. data/third_party/upb/upb/mini_table/types.h +40 -0
  1386. data/third_party/upb/upb/mini_table.h +4 -157
  1387. data/third_party/upb/upb/msg.h +3 -38
  1388. data/third_party/upb/upb/port/atomic.h +101 -0
  1389. data/third_party/upb/upb/{port_def.inc → port/def.inc} +94 -27
  1390. data/third_party/upb/upb/{port_undef.inc → port/undef.inc} +13 -3
  1391. data/third_party/upb/upb/{internal → port}/vsnprintf_compat.h +5 -7
  1392. data/third_party/upb/upb/reflection/common.h +67 -0
  1393. data/third_party/upb/upb/reflection/def.h +42 -0
  1394. data/third_party/upb/upb/reflection/def.hpp +610 -0
  1395. data/third_party/upb/upb/reflection/def_builder.c +357 -0
  1396. data/third_party/upb/upb/reflection/def_builder_internal.h +157 -0
  1397. data/third_party/upb/upb/reflection/def_pool.c +462 -0
  1398. data/third_party/upb/upb/reflection/def_pool.h +108 -0
  1399. data/third_party/upb/upb/reflection/def_pool_internal.h +77 -0
  1400. data/third_party/upb/upb/reflection/def_type.c +50 -0
  1401. data/third_party/upb/upb/reflection/def_type.h +81 -0
  1402. data/third_party/upb/upb/reflection/desc_state.c +53 -0
  1403. data/third_party/upb/upb/reflection/desc_state_internal.h +64 -0
  1404. data/third_party/upb/upb/reflection/enum_def.c +310 -0
  1405. data/third_party/upb/upb/reflection/enum_def.h +80 -0
  1406. data/third_party/upb/upb/reflection/enum_def_internal.h +56 -0
  1407. data/third_party/upb/upb/reflection/enum_reserved_range.c +84 -0
  1408. data/third_party/upb/upb/reflection/enum_reserved_range.h +51 -0
  1409. data/third_party/upb/upb/reflection/enum_reserved_range_internal.h +55 -0
  1410. data/third_party/upb/upb/reflection/enum_value_def.c +144 -0
  1411. data/third_party/upb/upb/reflection/enum_value_def.h +57 -0
  1412. data/third_party/upb/upb/reflection/enum_value_def_internal.h +57 -0
  1413. data/third_party/upb/upb/reflection/extension_range.c +93 -0
  1414. data/third_party/upb/upb/reflection/extension_range.h +55 -0
  1415. data/third_party/upb/upb/reflection/extension_range_internal.h +54 -0
  1416. data/third_party/upb/upb/reflection/field_def.c +930 -0
  1417. data/third_party/upb/upb/reflection/field_def.h +91 -0
  1418. data/third_party/upb/upb/reflection/field_def_internal.h +76 -0
  1419. data/third_party/upb/upb/reflection/file_def.c +370 -0
  1420. data/third_party/upb/upb/reflection/file_def.h +77 -0
  1421. data/third_party/upb/upb/reflection/file_def_internal.h +57 -0
  1422. data/third_party/upb/upb/reflection/message.c +233 -0
  1423. data/third_party/upb/upb/reflection/message.h +102 -0
  1424. data/third_party/upb/upb/reflection/message.hpp +37 -0
  1425. data/third_party/upb/upb/reflection/message_def.c +718 -0
  1426. data/third_party/upb/upb/reflection/message_def.h +174 -0
  1427. data/third_party/upb/upb/reflection/message_def_internal.h +63 -0
  1428. data/third_party/upb/upb/reflection/message_reserved_range.c +81 -0
  1429. data/third_party/upb/upb/reflection/message_reserved_range.h +51 -0
  1430. data/third_party/upb/upb/reflection/message_reserved_range_internal.h +55 -0
  1431. data/third_party/upb/upb/reflection/method_def.c +124 -0
  1432. data/third_party/upb/upb/reflection/method_def.h +59 -0
  1433. data/third_party/upb/upb/reflection/method_def_internal.h +53 -0
  1434. data/third_party/upb/upb/reflection/oneof_def.c +226 -0
  1435. data/third_party/upb/upb/reflection/oneof_def.h +66 -0
  1436. data/third_party/upb/upb/reflection/oneof_def_internal.h +57 -0
  1437. data/third_party/upb/upb/reflection/service_def.c +128 -0
  1438. data/third_party/upb/upb/reflection/service_def.h +60 -0
  1439. data/third_party/upb/upb/reflection/service_def_internal.h +53 -0
  1440. data/third_party/upb/upb/reflection.h +4 -78
  1441. data/third_party/upb/upb/reflection.hpp +3 -7
  1442. data/third_party/upb/upb/status.h +4 -34
  1443. data/third_party/upb/upb/{collections.h → string_view.h} +7 -7
  1444. data/third_party/upb/upb/{text_encode.c → text/encode.c} +74 -70
  1445. data/third_party/upb/upb/text/encode.h +69 -0
  1446. data/third_party/upb/upb/text_encode.h +4 -32
  1447. data/third_party/upb/upb/upb.h +6 -151
  1448. data/third_party/upb/upb/upb.hpp +10 -18
  1449. data/third_party/upb/upb/wire/common.h +44 -0
  1450. data/third_party/upb/upb/wire/common_internal.h +50 -0
  1451. data/third_party/upb/upb/wire/decode.c +1343 -0
  1452. data/third_party/upb/upb/wire/decode.h +108 -0
  1453. data/third_party/upb/upb/{decode_fast.c → wire/decode_fast.c} +184 -225
  1454. data/third_party/upb/upb/{decode_fast.h → wire/decode_fast.h} +21 -7
  1455. data/third_party/upb/upb/{internal/decode.h → wire/decode_internal.h} +44 -92
  1456. data/third_party/upb/upb/{encode.c → wire/encode.c} +114 -95
  1457. data/third_party/upb/upb/wire/encode.h +92 -0
  1458. data/third_party/upb/upb/wire/eps_copy_input_stream.c +39 -0
  1459. data/third_party/upb/upb/wire/eps_copy_input_stream.h +425 -0
  1460. data/third_party/upb/upb/wire/reader.c +67 -0
  1461. data/third_party/upb/upb/wire/reader.h +227 -0
  1462. data/third_party/upb/upb/wire/swap_internal.h +63 -0
  1463. data/third_party/upb/upb/wire/types.h +41 -0
  1464. data/third_party/{upb/third_party/utf8_range → utf8_range}/range2-neon.c +1 -1
  1465. data/third_party/{upb/third_party/utf8_range → utf8_range}/utf8_range.h +12 -0
  1466. metadata +257 -107
  1467. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +0 -30
  1468. data/src/core/ext/transport/chttp2/transport/context_list.cc +0 -71
  1469. data/src/core/ext/transport/chttp2/transport/context_list.h +0 -54
  1470. data/src/core/lib/gprpp/global_config.h +0 -93
  1471. data/src/core/lib/gprpp/global_config_env.cc +0 -140
  1472. data/src/core/lib/gprpp/global_config_env.h +0 -133
  1473. data/src/core/lib/gprpp/global_config_generic.h +0 -40
  1474. data/src/core/lib/promise/intra_activity_waiter.h +0 -55
  1475. data/src/core/lib/security/security_connector/ssl_utils_config.cc +0 -32
  1476. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +0 -195
  1477. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +0 -83
  1478. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +0 -236
  1479. data/third_party/boringssl-with-bazel/src/crypto/asn1/charmap.h +0 -15
  1480. data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +0 -206
  1481. data/third_party/boringssl-with-bazel/src/crypto/cpu-ppc64le.c +0 -38
  1482. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1-altivec.c +0 -361
  1483. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +0 -287
  1484. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +0 -132
  1485. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +0 -155
  1486. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +0 -131
  1487. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +0 -189
  1488. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +0 -843
  1489. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +0 -289
  1490. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcia.c +0 -57
  1491. data/third_party/upb/upb/arena.c +0 -277
  1492. data/third_party/upb/upb/decode.c +0 -1221
  1493. data/third_party/upb/upb/def.c +0 -3269
  1494. data/third_party/upb/upb/internal/table.h +0 -385
  1495. data/third_party/upb/upb/msg.c +0 -368
  1496. data/third_party/upb/upb/msg_internal.h +0 -837
  1497. data/third_party/upb/upb/reflection.c +0 -323
  1498. /data/src/core/lib/gpr/{log_android.cc → android/log.cc} +0 -0
  1499. /data/src/core/lib/gpr/{cpu_iphone.cc → iphone/cpu.cc} +0 -0
  1500. /data/src/core/lib/gpr/{cpu_linux.cc → linux/cpu.cc} +0 -0
  1501. /data/src/core/lib/gpr/{log_linux.cc → linux/log.cc} +0 -0
  1502. /data/src/core/lib/gpr/{tmpfile_msys.cc → msys/tmpfile.cc} +0 -0
  1503. /data/src/core/lib/gpr/{cpu_posix.cc → posix/cpu.cc} +0 -0
  1504. /data/src/core/lib/gpr/{log_posix.cc → posix/log.cc} +0 -0
  1505. /data/src/core/lib/gpr/{string_posix.cc → posix/string.cc} +0 -0
  1506. /data/src/core/lib/gpr/{sync_posix.cc → posix/sync.cc} +0 -0
  1507. /data/src/core/lib/gpr/{tmpfile_posix.cc → posix/tmpfile.cc} +0 -0
  1508. /data/src/core/lib/gpr/{cpu_windows.cc → windows/cpu.cc} +0 -0
  1509. /data/src/core/lib/gpr/{log_windows.cc → windows/log.cc} +0 -0
  1510. /data/src/core/lib/gpr/{string_windows.cc → windows/string.cc} +0 -0
  1511. /data/src/core/lib/gpr/{string_util_windows.cc → windows/string_util.cc} +0 -0
  1512. /data/src/core/lib/gpr/{sync_windows.cc → windows/sync.cc} +0 -0
  1513. /data/src/core/lib/gpr/{time_windows.cc → windows/time.cc} +0 -0
  1514. /data/src/core/lib/gpr/{tmpfile_windows.cc → windows/tmpfile.cc} +0 -0
  1515. /data/src/core/lib/gprpp/{env_linux.cc → linux/env.cc} +0 -0
  1516. /data/src/core/lib/gprpp/{env_posix.cc → posix/env.cc} +0 -0
  1517. /data/src/core/lib/gprpp/{stat_posix.cc → posix/stat.cc} +0 -0
  1518. /data/src/core/lib/gprpp/{env_windows.cc → windows/env.cc} +0 -0
  1519. /data/src/core/lib/gprpp/{stat_windows.cc → windows/stat.cc} +0 -0
  1520. /data/third_party/{upb/third_party/utf8_range → utf8_range}/naive.c +0 -0
  1521. /data/third_party/{upb/third_party/utf8_range → utf8_range}/range2-sse.c +0 -0
@@ -55,758 +55,771 @@
55
55
  * [including the GNU Public Licence.] */
56
56
 
57
57
  #include <openssl/asn1.h>
58
-
59
- #include <limits.h>
60
- #include <string.h>
61
-
62
58
  #include <openssl/asn1t.h>
59
+ #include <openssl/bytestring.h>
63
60
  #include <openssl/err.h>
64
61
  #include <openssl/mem.h>
62
+ #include <openssl/pool.h>
63
+
64
+ #include <assert.h>
65
+ #include <limits.h>
66
+ #include <string.h>
65
67
 
68
+ #include "../bytestring/internal.h"
66
69
  #include "../internal.h"
67
70
  #include "internal.h"
68
71
 
69
- /*
70
- * Constructed types with a recursive definition (such as can be found in PKCS7)
71
- * could eventually exceed the stack given malicious input with excessive
72
- * recursion. Therefore we limit the stack depth. This is the maximum number of
73
- * recursive invocations of asn1_item_embed_d2i().
74
- */
72
+ // Constructed types with a recursive definition (such as can be found in PKCS7)
73
+ // could eventually exceed the stack given malicious input with excessive
74
+ // recursion. Therefore we limit the stack depth. This is the maximum number of
75
+ // recursive invocations of asn1_item_embed_d2i().
75
76
  #define ASN1_MAX_CONSTRUCTED_NEST 30
76
77
 
77
- static int asn1_check_eoc(const unsigned char **in, long len);
78
-
79
78
  static int asn1_check_tlen(long *olen, int *otag, unsigned char *oclass,
80
79
  char *cst, const unsigned char **in, long len,
81
- int exptag, int expclass, char opt, ASN1_TLC *ctx);
82
-
83
- static int asn1_template_ex_d2i(ASN1_VALUE **pval,
84
- const unsigned char **in, long len,
85
- const ASN1_TEMPLATE *tt, char opt,
86
- ASN1_TLC *ctx, int depth);
87
- static int asn1_template_noexp_d2i(ASN1_VALUE **val,
88
- const unsigned char **in, long len,
89
- const ASN1_TEMPLATE *tt, char opt,
90
- ASN1_TLC *ctx, int depth);
80
+ int exptag, int expclass, char opt);
81
+
82
+ static int asn1_template_ex_d2i(ASN1_VALUE **pval, const unsigned char **in,
83
+ long len, const ASN1_TEMPLATE *tt, char opt,
84
+ CRYPTO_BUFFER *buf, int depth);
85
+ static int asn1_template_noexp_d2i(ASN1_VALUE **val, const unsigned char **in,
86
+ long len, const ASN1_TEMPLATE *tt, char opt,
87
+ CRYPTO_BUFFER *buf, int depth);
91
88
  static int asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,
92
89
  int utype, const ASN1_ITEM *it);
93
- static int asn1_d2i_ex_primitive(ASN1_VALUE **pval,
94
- const unsigned char **in, long len,
95
- const ASN1_ITEM *it,
96
- int tag, int aclass, char opt,
97
- ASN1_TLC *ctx);
98
-
99
- /* Table to convert tags to bit values, used for MSTRING type */
100
- static const unsigned long tag2bit[32] = {
101
- 0, 0, 0, B_ASN1_BIT_STRING, /* tags 0 - 3 */
102
- B_ASN1_OCTET_STRING, 0, 0, B_ASN1_UNKNOWN, /* tags 4- 7 */
103
- B_ASN1_UNKNOWN, B_ASN1_UNKNOWN, B_ASN1_UNKNOWN, B_ASN1_UNKNOWN, /* tags
104
- * 8-11 */
105
- B_ASN1_UTF8STRING, B_ASN1_UNKNOWN, B_ASN1_UNKNOWN, B_ASN1_UNKNOWN, /* tags
106
- * 12-15
107
- */
108
- B_ASN1_SEQUENCE, 0, B_ASN1_NUMERICSTRING, B_ASN1_PRINTABLESTRING, /* tags
109
- * 16-19
110
- */
111
- B_ASN1_T61STRING, B_ASN1_VIDEOTEXSTRING, B_ASN1_IA5STRING, /* tags 20-22 */
112
- B_ASN1_UTCTIME, B_ASN1_GENERALIZEDTIME, /* tags 23-24 */
113
- B_ASN1_GRAPHICSTRING, B_ASN1_ISO64STRING, B_ASN1_GENERALSTRING, /* tags
114
- * 25-27 */
115
- B_ASN1_UNIVERSALSTRING, B_ASN1_UNKNOWN, B_ASN1_BMPSTRING, B_ASN1_UNKNOWN, /* tags
116
- * 28-31
117
- */
90
+ static int asn1_d2i_ex_primitive(ASN1_VALUE **pval, const unsigned char **in,
91
+ long len, const ASN1_ITEM *it, int tag,
92
+ int aclass, char opt);
93
+ static int asn1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in,
94
+ long len, const ASN1_ITEM *it, int tag, int aclass,
95
+ char opt, CRYPTO_BUFFER *buf, int depth);
96
+
97
+ // Table to convert tags to bit values, used for MSTRING type
98
+ static const unsigned long tag2bit[31] = {
99
+ 0, // (reserved)
100
+ 0, // BOOLEAN
101
+ 0, // INTEGER
102
+ B_ASN1_BIT_STRING,
103
+ B_ASN1_OCTET_STRING,
104
+ 0, // NULL
105
+ 0, // OBJECT IDENTIFIER
106
+ B_ASN1_UNKNOWN, // ObjectDescriptor
107
+ B_ASN1_UNKNOWN, // EXTERNAL
108
+ B_ASN1_UNKNOWN, // REAL
109
+ B_ASN1_UNKNOWN, // ENUMERATED
110
+ B_ASN1_UNKNOWN, // EMBEDDED PDV
111
+ B_ASN1_UTF8STRING,
112
+ B_ASN1_UNKNOWN, // RELATIVE-OID
113
+ B_ASN1_UNKNOWN, // TIME
114
+ B_ASN1_UNKNOWN, // (reserved)
115
+ B_ASN1_SEQUENCE,
116
+ 0, // SET
117
+ B_ASN1_NUMERICSTRING,
118
+ B_ASN1_PRINTABLESTRING,
119
+ B_ASN1_T61STRING,
120
+ B_ASN1_VIDEOTEXSTRING,
121
+ B_ASN1_IA5STRING,
122
+ B_ASN1_UTCTIME,
123
+ B_ASN1_GENERALIZEDTIME,
124
+ B_ASN1_GRAPHICSTRING,
125
+ B_ASN1_ISO64STRING,
126
+ B_ASN1_GENERALSTRING,
127
+ B_ASN1_UNIVERSALSTRING,
128
+ B_ASN1_UNKNOWN, // CHARACTER STRING
129
+ B_ASN1_BMPSTRING,
118
130
  };
119
131
 
120
- unsigned long ASN1_tag2bit(int tag)
121
- {
122
- if ((tag < 0) || (tag > 30))
123
- return 0;
124
- return tag2bit[tag];
132
+ unsigned long ASN1_tag2bit(int tag) {
133
+ if (tag < 0 || tag > 30) {
134
+ return 0;
135
+ }
136
+ return tag2bit[tag];
125
137
  }
126
138
 
127
- /* Macro to initialize and invalidate the cache */
128
-
129
- #define asn1_tlc_clear(c) if (c) (c)->valid = 0
130
- /* Version to avoid compiler warning about 'c' always non-NULL */
131
- #define asn1_tlc_clear_nc(c) (c)->valid = 0
132
-
133
- /*
134
- * Decode an ASN1 item, this currently behaves just like a standard 'd2i'
135
- * function. 'in' points to a buffer to read the data from, in future we
136
- * will have more advanced versions that can input data a piece at a time and
137
- * this will simply be a special case.
138
- */
139
-
140
- ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **pval,
141
- const unsigned char **in, long len,
142
- const ASN1_ITEM *it)
143
- {
144
- ASN1_TLC c;
145
- ASN1_VALUE *ptmpval = NULL;
146
- if (!pval)
147
- pval = &ptmpval;
148
- asn1_tlc_clear_nc(&c);
149
- if (ASN1_item_ex_d2i(pval, in, len, it, -1, 0, 0, &c) > 0)
150
- return *pval;
151
- return NULL;
139
+ static int is_supported_universal_type(int tag, int aclass) {
140
+ if (aclass != V_ASN1_UNIVERSAL) {
141
+ return 0;
142
+ }
143
+ return tag == V_ASN1_OBJECT || tag == V_ASN1_NULL || tag == V_ASN1_BOOLEAN ||
144
+ tag == V_ASN1_BIT_STRING || tag == V_ASN1_INTEGER ||
145
+ tag == V_ASN1_ENUMERATED || tag == V_ASN1_OCTET_STRING ||
146
+ tag == V_ASN1_NUMERICSTRING || tag == V_ASN1_PRINTABLESTRING ||
147
+ tag == V_ASN1_T61STRING || tag == V_ASN1_VIDEOTEXSTRING ||
148
+ tag == V_ASN1_IA5STRING || tag == V_ASN1_UTCTIME ||
149
+ tag == V_ASN1_GENERALIZEDTIME || tag == V_ASN1_GRAPHICSTRING ||
150
+ tag == V_ASN1_VISIBLESTRING || tag == V_ASN1_GENERALSTRING ||
151
+ tag == V_ASN1_UNIVERSALSTRING || tag == V_ASN1_BMPSTRING ||
152
+ tag == V_ASN1_UTF8STRING || tag == V_ASN1_SET ||
153
+ tag == V_ASN1_SEQUENCE;
152
154
  }
153
155
 
154
- /*
155
- * Decode an item, taking care of IMPLICIT tagging, if any. If 'opt' set and
156
- * tag mismatch return -1 to handle OPTIONAL
157
- */
156
+ // Macro to initialize and invalidate the cache
157
+
158
+ // Decode an ASN1 item, this currently behaves just like a standard 'd2i'
159
+ // function. 'in' points to a buffer to read the data from, in future we
160
+ // will have more advanced versions that can input data a piece at a time and
161
+ // this will simply be a special case.
162
+
163
+ ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **pval, const unsigned char **in, long len,
164
+ const ASN1_ITEM *it) {
165
+ ASN1_VALUE *ret = NULL;
166
+ if (asn1_item_ex_d2i(&ret, in, len, it, /*tag=*/-1, /*aclass=*/0, /*opt=*/0,
167
+ /*buf=*/NULL, /*depth=*/0) <= 0) {
168
+ // Clean up, in case the caller left a partial object.
169
+ //
170
+ // TODO(davidben): I don't think it can leave one, but the codepaths below
171
+ // are a bit inconsistent. Revisit this when rewriting this function.
172
+ ASN1_item_ex_free(&ret, it);
173
+ }
174
+
175
+ // If the caller supplied an output pointer, free the old one and replace it
176
+ // with |ret|. This differs from OpenSSL slightly in that we don't support
177
+ // object reuse. We run this on both success and failure. On failure, even
178
+ // with object reuse, OpenSSL destroys the previous object.
179
+ if (pval != NULL) {
180
+ ASN1_item_ex_free(pval, it);
181
+ *pval = ret;
182
+ }
183
+ return ret;
184
+ }
185
+
186
+ // Decode an item, taking care of IMPLICIT tagging, if any. If 'opt' set and
187
+ // tag mismatch return -1 to handle OPTIONAL
188
+ //
189
+ // TODO(davidben): Historically, all functions in this file had to account for
190
+ // |*pval| containing an arbitrary existing value. This is no longer the case
191
+ // because |ASN1_item_d2i| now always starts from NULL. As part of rewriting
192
+ // this function, take the simplified assumptions into account. Though we must
193
+ // still account for the internal calls to |ASN1_item_ex_new|.
158
194
 
159
195
  static int asn1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in,
160
196
  long len, const ASN1_ITEM *it, int tag, int aclass,
161
- char opt, ASN1_TLC *ctx, int depth)
162
- {
163
- const ASN1_TEMPLATE *tt, *errtt = NULL;
164
- const ASN1_EXTERN_FUNCS *ef;
165
- const unsigned char *p = NULL, *q;
166
- unsigned char oclass;
167
- char cst, isopt;
168
- int i;
169
- int otag;
170
- int ret = 0;
171
- ASN1_VALUE **pchptr;
172
- int combine = aclass & ASN1_TFLG_COMBINE;
173
- aclass &= ~ASN1_TFLG_COMBINE;
174
- if (!pval)
175
- return 0;
176
-
177
- /*
178
- * Bound |len| to comfortably fit in an int. Lengths in this module often
179
- * switch between int and long without overflow checks.
180
- */
181
- if (len > INT_MAX/2) {
182
- len = INT_MAX/2;
183
- }
197
+ char opt, CRYPTO_BUFFER *buf, int depth) {
198
+ const ASN1_TEMPLATE *tt, *errtt = NULL;
199
+ const unsigned char *p = NULL, *q;
200
+ unsigned char oclass;
201
+ char cst, isopt;
202
+ int i;
203
+ int otag;
204
+ int ret = 0;
205
+ ASN1_VALUE **pchptr;
206
+ if (!pval) {
207
+ return 0;
208
+ }
184
209
 
185
- if (++depth > ASN1_MAX_CONSTRUCTED_NEST) {
186
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_TOO_DEEP);
187
- goto err;
188
- }
210
+ if (buf != NULL) {
211
+ assert(CRYPTO_BUFFER_data(buf) <= *in &&
212
+ *in + len <= CRYPTO_BUFFER_data(buf) + CRYPTO_BUFFER_len(buf));
213
+ }
189
214
 
190
- switch (it->itype) {
215
+ // Bound |len| to comfortably fit in an int. Lengths in this module often
216
+ // switch between int and long without overflow checks.
217
+ if (len > INT_MAX / 2) {
218
+ len = INT_MAX / 2;
219
+ }
220
+
221
+ if (++depth > ASN1_MAX_CONSTRUCTED_NEST) {
222
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_TOO_DEEP);
223
+ goto err;
224
+ }
225
+
226
+ switch (it->itype) {
191
227
  case ASN1_ITYPE_PRIMITIVE:
192
- if (it->templates) {
193
- /*
194
- * tagging or OPTIONAL is currently illegal on an item template
195
- * because the flags can't get passed down. In practice this
196
- * isn't a problem: we include the relevant flags from the item
197
- * template in the template itself.
198
- */
199
- if ((tag != -1) || opt) {
200
- OPENSSL_PUT_ERROR(ASN1,
201
- ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE);
202
- goto err;
203
- }
204
- return asn1_template_ex_d2i(pval, in, len,
205
- it->templates, opt, ctx, depth);
206
- }
207
- return asn1_d2i_ex_primitive(pval, in, len, it,
208
- tag, aclass, opt, ctx);
209
- break;
228
+ if (it->templates) {
229
+ // tagging or OPTIONAL is currently illegal on an item template
230
+ // because the flags can't get passed down. In practice this
231
+ // isn't a problem: we include the relevant flags from the item
232
+ // template in the template itself.
233
+ if ((tag != -1) || opt) {
234
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE);
235
+ goto err;
236
+ }
237
+ return asn1_template_ex_d2i(pval, in, len, it->templates, opt, buf,
238
+ depth);
239
+ }
240
+ return asn1_d2i_ex_primitive(pval, in, len, it, tag, aclass, opt);
241
+ break;
210
242
 
211
243
  case ASN1_ITYPE_MSTRING:
212
- /*
213
- * It never makes sense for multi-strings to have implicit tagging, so
214
- * if tag != -1, then this looks like an error in the template.
215
- */
216
- if (tag != -1) {
217
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_BAD_TEMPLATE);
218
- goto err;
219
- }
244
+ // It never makes sense for multi-strings to have implicit tagging, so
245
+ // if tag != -1, then this looks like an error in the template.
246
+ if (tag != -1) {
247
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_BAD_TEMPLATE);
248
+ goto err;
249
+ }
220
250
 
221
- p = *in;
222
- /* Just read in tag and class */
223
- ret = asn1_check_tlen(NULL, &otag, &oclass, NULL,
224
- &p, len, -1, 0, 1, ctx);
225
- if (!ret) {
226
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
227
- goto err;
228
- }
251
+ p = *in;
252
+ // Just read in tag and class
253
+ ret = asn1_check_tlen(NULL, &otag, &oclass, NULL, &p, len, -1, 0, 1);
254
+ if (!ret) {
255
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
256
+ goto err;
257
+ }
229
258
 
230
- /* Must be UNIVERSAL class */
231
- if (oclass != V_ASN1_UNIVERSAL) {
232
- /* If OPTIONAL, assume this is OK */
233
- if (opt)
234
- return -1;
235
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL);
236
- goto err;
259
+ // Must be UNIVERSAL class
260
+ if (oclass != V_ASN1_UNIVERSAL) {
261
+ // If OPTIONAL, assume this is OK
262
+ if (opt) {
263
+ return -1;
237
264
  }
238
- /* Check tag matches bit map */
239
- if (!(ASN1_tag2bit(otag) & it->utype)) {
240
- /* If OPTIONAL, assume this is OK */
241
- if (opt)
242
- return -1;
243
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_MSTRING_WRONG_TAG);
244
- goto err;
265
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL);
266
+ goto err;
267
+ }
268
+ // Check tag matches bit map
269
+ if (!(ASN1_tag2bit(otag) & it->utype)) {
270
+ // If OPTIONAL, assume this is OK
271
+ if (opt) {
272
+ return -1;
245
273
  }
246
- return asn1_d2i_ex_primitive(pval, in, len, it, otag, 0, 0, ctx);
274
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_MSTRING_WRONG_TAG);
275
+ goto err;
276
+ }
277
+ return asn1_d2i_ex_primitive(pval, in, len, it, otag, 0, 0);
247
278
 
248
- case ASN1_ITYPE_EXTERN:
249
- /* Use new style d2i */
250
- ef = it->funcs;
251
- return ef->asn1_ex_d2i(pval, in, len, it, tag, aclass, opt, ctx);
279
+ case ASN1_ITYPE_EXTERN: {
280
+ // We don't support implicit tagging with external types.
281
+ if (tag != -1) {
282
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_BAD_TEMPLATE);
283
+ goto err;
284
+ }
285
+ const ASN1_EXTERN_FUNCS *ef = it->funcs;
286
+ return ef->asn1_ex_d2i(pval, in, len, it, opt, NULL);
287
+ }
252
288
 
253
289
  case ASN1_ITYPE_CHOICE: {
254
- /*
255
- * It never makes sense for CHOICE types to have implicit tagging, so if
256
- * tag != -1, then this looks like an error in the template.
257
- */
258
- if (tag != -1) {
259
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_BAD_TEMPLATE);
260
- goto err;
261
- }
262
-
263
- const ASN1_AUX *aux = it->funcs;
264
- ASN1_aux_cb *asn1_cb = aux != NULL ? aux->asn1_cb : NULL;
265
- if (asn1_cb && !asn1_cb(ASN1_OP_D2I_PRE, pval, it, NULL))
266
- goto auxerr;
267
-
268
- if (*pval) {
269
- /* Free up and zero CHOICE value if initialised */
270
- i = asn1_get_choice_selector(pval, it);
271
- if ((i >= 0) && (i < it->tcount)) {
272
- tt = it->templates + i;
273
- pchptr = asn1_get_field_ptr(pval, tt);
274
- ASN1_template_free(pchptr, tt);
275
- asn1_set_choice_selector(pval, -1, it);
276
- }
277
- } else if (!ASN1_item_ex_new(pval, it)) {
278
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
279
- goto err;
280
- }
281
- /* CHOICE type, try each possibility in turn */
282
- p = *in;
283
- for (i = 0, tt = it->templates; i < it->tcount; i++, tt++) {
284
- pchptr = asn1_get_field_ptr(pval, tt);
285
- /*
286
- * We mark field as OPTIONAL so its absence can be recognised.
287
- */
288
- ret = asn1_template_ex_d2i(pchptr, &p, len, tt, 1, ctx, depth);
289
- /* If field not present, try the next one */
290
- if (ret == -1)
291
- continue;
292
- /* If positive return, read OK, break loop */
293
- if (ret > 0)
294
- break;
295
- /* Otherwise must be an ASN1 parsing error */
296
- errtt = tt;
297
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
298
- goto err;
299
- }
290
+ // It never makes sense for CHOICE types to have implicit tagging, so if
291
+ // tag != -1, then this looks like an error in the template.
292
+ if (tag != -1) {
293
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_BAD_TEMPLATE);
294
+ goto err;
295
+ }
296
+
297
+ const ASN1_AUX *aux = it->funcs;
298
+ ASN1_aux_cb *asn1_cb = aux != NULL ? aux->asn1_cb : NULL;
299
+ if (asn1_cb && !asn1_cb(ASN1_OP_D2I_PRE, pval, it, NULL)) {
300
+ goto auxerr;
301
+ }
302
+
303
+ if (*pval) {
304
+ // Free up and zero CHOICE value if initialised
305
+ i = asn1_get_choice_selector(pval, it);
306
+ if ((i >= 0) && (i < it->tcount)) {
307
+ tt = it->templates + i;
308
+ pchptr = asn1_get_field_ptr(pval, tt);
309
+ ASN1_template_free(pchptr, tt);
310
+ asn1_set_choice_selector(pval, -1, it);
311
+ }
312
+ } else if (!ASN1_item_ex_new(pval, it)) {
313
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
314
+ goto err;
315
+ }
316
+ // CHOICE type, try each possibility in turn
317
+ p = *in;
318
+ for (i = 0, tt = it->templates; i < it->tcount; i++, tt++) {
319
+ pchptr = asn1_get_field_ptr(pval, tt);
320
+ // We mark field as OPTIONAL so its absence can be recognised.
321
+ ret = asn1_template_ex_d2i(pchptr, &p, len, tt, 1, buf, depth);
322
+ // If field not present, try the next one
323
+ if (ret == -1) {
324
+ continue;
325
+ }
326
+ // If positive return, read OK, break loop
327
+ if (ret > 0) {
328
+ break;
329
+ }
330
+ // Otherwise must be an ASN1 parsing error
331
+ errtt = tt;
332
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
333
+ goto err;
334
+ }
300
335
 
301
- /* Did we fall off the end without reading anything? */
302
- if (i == it->tcount) {
303
- /* If OPTIONAL, this is OK */
304
- if (opt) {
305
- /* Free and zero it */
306
- ASN1_item_ex_free(pval, it);
307
- return -1;
308
- }
309
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE);
310
- goto err;
336
+ // Did we fall off the end without reading anything?
337
+ if (i == it->tcount) {
338
+ // If OPTIONAL, this is OK
339
+ if (opt) {
340
+ // Free and zero it
341
+ ASN1_item_ex_free(pval, it);
342
+ return -1;
311
343
  }
312
-
313
- asn1_set_choice_selector(pval, i, it);
314
- if (asn1_cb && !asn1_cb(ASN1_OP_D2I_POST, pval, it, NULL))
315
- goto auxerr;
316
- *in = p;
317
- return 1;
344
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE);
345
+ goto err;
346
+ }
347
+
348
+ asn1_set_choice_selector(pval, i, it);
349
+ if (asn1_cb && !asn1_cb(ASN1_OP_D2I_POST, pval, it, NULL)) {
350
+ goto auxerr;
351
+ }
352
+ *in = p;
353
+ return 1;
318
354
  }
319
355
 
320
356
  case ASN1_ITYPE_SEQUENCE: {
321
- p = *in;
357
+ p = *in;
322
358
 
323
- /* If no IMPLICIT tagging set to SEQUENCE, UNIVERSAL */
324
- if (tag == -1) {
325
- tag = V_ASN1_SEQUENCE;
326
- aclass = V_ASN1_UNIVERSAL;
327
- }
328
- /* Get SEQUENCE length and update len, p */
329
- ret = asn1_check_tlen(&len, NULL, NULL, &cst,
330
- &p, len, tag, aclass, opt, ctx);
331
- if (!ret) {
332
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
333
- goto err;
334
- } else if (ret == -1)
335
- return -1;
336
- if (!cst) {
337
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED);
338
- goto err;
339
- }
340
-
341
- if (!*pval && !ASN1_item_ex_new(pval, it)) {
342
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
343
- goto err;
344
- }
359
+ // If no IMPLICIT tagging set to SEQUENCE, UNIVERSAL
360
+ if (tag == -1) {
361
+ tag = V_ASN1_SEQUENCE;
362
+ aclass = V_ASN1_UNIVERSAL;
363
+ }
364
+ // Get SEQUENCE length and update len, p
365
+ ret = asn1_check_tlen(&len, NULL, NULL, &cst, &p, len, tag, aclass, opt);
366
+ if (!ret) {
367
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
368
+ goto err;
369
+ } else if (ret == -1) {
370
+ return -1;
371
+ }
372
+ if (!cst) {
373
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED);
374
+ goto err;
375
+ }
345
376
 
346
- const ASN1_AUX *aux = it->funcs;
347
- ASN1_aux_cb *asn1_cb = aux != NULL ? aux->asn1_cb : NULL;
348
- if (asn1_cb && !asn1_cb(ASN1_OP_D2I_PRE, pval, it, NULL))
349
- goto auxerr;
350
-
351
- /* Free up and zero any ADB found */
352
- for (i = 0, tt = it->templates; i < it->tcount; i++, tt++) {
353
- if (tt->flags & ASN1_TFLG_ADB_MASK) {
354
- const ASN1_TEMPLATE *seqtt;
355
- ASN1_VALUE **pseqval;
356
- seqtt = asn1_do_adb(pval, tt, 0);
357
- if (seqtt == NULL)
358
- continue;
359
- pseqval = asn1_get_field_ptr(pval, seqtt);
360
- ASN1_template_free(pseqval, seqtt);
361
- }
377
+ if (!*pval && !ASN1_item_ex_new(pval, it)) {
378
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
379
+ goto err;
380
+ }
381
+
382
+ const ASN1_AUX *aux = it->funcs;
383
+ ASN1_aux_cb *asn1_cb = aux != NULL ? aux->asn1_cb : NULL;
384
+ if (asn1_cb && !asn1_cb(ASN1_OP_D2I_PRE, pval, it, NULL)) {
385
+ goto auxerr;
386
+ }
387
+
388
+ // Free up and zero any ADB found
389
+ for (i = 0, tt = it->templates; i < it->tcount; i++, tt++) {
390
+ if (tt->flags & ASN1_TFLG_ADB_MASK) {
391
+ const ASN1_TEMPLATE *seqtt;
392
+ ASN1_VALUE **pseqval;
393
+ seqtt = asn1_do_adb(pval, tt, 0);
394
+ if (seqtt == NULL) {
395
+ continue;
396
+ }
397
+ pseqval = asn1_get_field_ptr(pval, seqtt);
398
+ ASN1_template_free(pseqval, seqtt);
399
+ }
400
+ }
401
+
402
+ // Get each field entry
403
+ for (i = 0, tt = it->templates; i < it->tcount; i++, tt++) {
404
+ const ASN1_TEMPLATE *seqtt;
405
+ ASN1_VALUE **pseqval;
406
+ seqtt = asn1_do_adb(pval, tt, 1);
407
+ if (seqtt == NULL) {
408
+ goto err;
409
+ }
410
+ pseqval = asn1_get_field_ptr(pval, seqtt);
411
+ // Have we ran out of data?
412
+ if (!len) {
413
+ break;
362
414
  }
363
-
364
- /* Get each field entry */
365
- for (i = 0, tt = it->templates; i < it->tcount; i++, tt++) {
366
- const ASN1_TEMPLATE *seqtt;
367
- ASN1_VALUE **pseqval;
368
- seqtt = asn1_do_adb(pval, tt, 1);
369
- if (seqtt == NULL)
370
- goto err;
371
- pseqval = asn1_get_field_ptr(pval, seqtt);
372
- /* Have we ran out of data? */
373
- if (!len)
374
- break;
375
- q = p;
376
- /* TODO(https://crbug.com/boringssl/455): Although we've removed
377
- * indefinite-length support, this check is not quite a no-op.
378
- * Reject [UNIVERSAL 0] in the tag parsers themselves. */
379
- if (asn1_check_eoc(&p, len)) {
380
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_UNEXPECTED_EOC);
381
- goto err;
382
- }
383
- /*
384
- * This determines the OPTIONAL flag value. The field cannot be
385
- * omitted if it is the last of a SEQUENCE and there is still
386
- * data to be read. This isn't strictly necessary but it
387
- * increases efficiency in some cases.
388
- */
389
- if (i == (it->tcount - 1))
390
- isopt = 0;
391
- else
392
- isopt = (char)(seqtt->flags & ASN1_TFLG_OPTIONAL);
393
- /*
394
- * attempt to read in field, allowing each to be OPTIONAL
395
- */
396
-
397
- ret = asn1_template_ex_d2i(pseqval, &p, len, seqtt, isopt, ctx,
398
- depth);
399
- if (!ret) {
400
- errtt = seqtt;
401
- goto err;
402
- } else if (ret == -1) {
403
- /*
404
- * OPTIONAL component absent. Free and zero the field.
405
- */
406
- ASN1_template_free(pseqval, seqtt);
407
- continue;
408
- }
409
- /* Update length */
410
- len -= p - q;
415
+ q = p;
416
+ // This determines the OPTIONAL flag value. The field cannot be
417
+ // omitted if it is the last of a SEQUENCE and there is still
418
+ // data to be read. This isn't strictly necessary but it
419
+ // increases efficiency in some cases.
420
+ if (i == (it->tcount - 1)) {
421
+ isopt = 0;
422
+ } else {
423
+ isopt = (seqtt->flags & ASN1_TFLG_OPTIONAL) != 0;
411
424
  }
425
+ // attempt to read in field, allowing each to be OPTIONAL
412
426
 
413
- /* Check all data read */
414
- if (len) {
415
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH);
416
- goto err;
417
- }
427
+ ret = asn1_template_ex_d2i(pseqval, &p, len, seqtt, isopt, buf, depth);
428
+ if (!ret) {
429
+ errtt = seqtt;
430
+ goto err;
431
+ } else if (ret == -1) {
432
+ // OPTIONAL component absent. Free and zero the field.
433
+ ASN1_template_free(pseqval, seqtt);
434
+ continue;
435
+ }
436
+ // Update length
437
+ len -= p - q;
438
+ }
418
439
 
419
- /*
420
- * If we get here we've got no more data in the SEQUENCE, however we
421
- * may not have read all fields so check all remaining are OPTIONAL
422
- * and clear any that are.
423
- */
424
- for (; i < it->tcount; tt++, i++) {
425
- const ASN1_TEMPLATE *seqtt;
426
- seqtt = asn1_do_adb(pval, tt, 1);
427
- if (seqtt == NULL)
428
- goto err;
429
- if (seqtt->flags & ASN1_TFLG_OPTIONAL) {
430
- ASN1_VALUE **pseqval;
431
- pseqval = asn1_get_field_ptr(pval, seqtt);
432
- ASN1_template_free(pseqval, seqtt);
433
- } else {
434
- errtt = seqtt;
435
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_FIELD_MISSING);
436
- goto err;
437
- }
438
- }
439
- /* Save encoding */
440
- if (!asn1_enc_save(pval, *in, p - *in, it))
441
- goto auxerr;
442
- if (asn1_cb && !asn1_cb(ASN1_OP_D2I_POST, pval, it, NULL))
443
- goto auxerr;
444
- *in = p;
445
- return 1;
440
+ // Check all data read
441
+ if (len) {
442
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH);
443
+ goto err;
444
+ }
445
+
446
+ // If we get here we've got no more data in the SEQUENCE, however we
447
+ // may not have read all fields so check all remaining are OPTIONAL
448
+ // and clear any that are.
449
+ for (; i < it->tcount; tt++, i++) {
450
+ const ASN1_TEMPLATE *seqtt;
451
+ seqtt = asn1_do_adb(pval, tt, 1);
452
+ if (seqtt == NULL) {
453
+ goto err;
454
+ }
455
+ if (seqtt->flags & ASN1_TFLG_OPTIONAL) {
456
+ ASN1_VALUE **pseqval;
457
+ pseqval = asn1_get_field_ptr(pval, seqtt);
458
+ ASN1_template_free(pseqval, seqtt);
459
+ } else {
460
+ errtt = seqtt;
461
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_FIELD_MISSING);
462
+ goto err;
463
+ }
464
+ }
465
+ // Save encoding
466
+ if (!asn1_enc_save(pval, *in, p - *in, it, buf)) {
467
+ goto auxerr;
468
+ }
469
+ if (asn1_cb && !asn1_cb(ASN1_OP_D2I_POST, pval, it, NULL)) {
470
+ goto auxerr;
471
+ }
472
+ *in = p;
473
+ return 1;
446
474
  }
447
475
 
448
476
  default:
449
- return 0;
450
- }
451
- auxerr:
452
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_AUX_ERROR);
453
- err:
454
- if (combine == 0)
455
- ASN1_item_ex_free(pval, it);
456
- if (errtt)
457
- ERR_add_error_data(4, "Field=", errtt->field_name,
458
- ", Type=", it->sname);
459
- else
460
- ERR_add_error_data(2, "Type=", it->sname);
461
- return 0;
477
+ return 0;
478
+ }
479
+ auxerr:
480
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_AUX_ERROR);
481
+ err:
482
+ ASN1_item_ex_free(pval, it);
483
+ if (errtt) {
484
+ ERR_add_error_data(4, "Field=", errtt->field_name, ", Type=", it->sname);
485
+ } else {
486
+ ERR_add_error_data(2, "Type=", it->sname);
487
+ }
488
+ return 0;
462
489
  }
463
490
 
464
491
  int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len,
465
- const ASN1_ITEM *it,
466
- int tag, int aclass, char opt, ASN1_TLC *ctx)
467
- {
468
- return asn1_item_ex_d2i(pval, in, len, it, tag, aclass, opt, ctx, 0);
492
+ const ASN1_ITEM *it, int tag, int aclass, char opt,
493
+ CRYPTO_BUFFER *buf) {
494
+ return asn1_item_ex_d2i(pval, in, len, it, tag, aclass, opt, buf,
495
+ /*depth=*/0);
469
496
  }
470
497
 
471
- /*
472
- * Templates are handled with two separate functions. One handles any
473
- * EXPLICIT tag and the other handles the rest.
474
- */
475
-
476
- static int asn1_template_ex_d2i(ASN1_VALUE **val,
477
- const unsigned char **in, long inlen,
478
- const ASN1_TEMPLATE *tt, char opt,
479
- ASN1_TLC *ctx, int depth)
480
- {
481
- int flags, aclass;
482
- int ret;
483
- long len;
484
- const unsigned char *p, *q;
485
- if (!val)
486
- return 0;
487
- flags = tt->flags;
488
- aclass = flags & ASN1_TFLG_TAG_CLASS;
498
+ // Templates are handled with two separate functions. One handles any
499
+ // EXPLICIT tag and the other handles the rest.
500
+
501
+ static int asn1_template_ex_d2i(ASN1_VALUE **val, const unsigned char **in,
502
+ long inlen, const ASN1_TEMPLATE *tt, char opt,
503
+ CRYPTO_BUFFER *buf, int depth) {
504
+ int aclass;
505
+ int ret;
506
+ long len;
507
+ const unsigned char *p, *q;
508
+ if (!val) {
509
+ return 0;
510
+ }
511
+ uint32_t flags = tt->flags;
512
+ aclass = flags & ASN1_TFLG_TAG_CLASS;
489
513
 
490
- p = *in;
514
+ p = *in;
491
515
 
492
- /* Check if EXPLICIT tag expected */
493
- if (flags & ASN1_TFLG_EXPTAG) {
494
- char cst;
495
- /*
496
- * Need to work out amount of data available to the inner content and
497
- * where it starts: so read in EXPLICIT header to get the info.
498
- */
499
- ret = asn1_check_tlen(&len, NULL, NULL, &cst,
500
- &p, inlen, tt->tag, aclass, opt, ctx);
501
- q = p;
502
- if (!ret) {
503
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
504
- return 0;
505
- } else if (ret == -1)
506
- return -1;
507
- if (!cst) {
508
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED);
509
- return 0;
510
- }
511
- /* We've found the field so it can't be OPTIONAL now */
512
- ret = asn1_template_noexp_d2i(val, &p, len, tt, 0, ctx, depth);
513
- if (!ret) {
514
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
515
- return 0;
516
- }
517
- /* We read the field in OK so update length */
518
- len -= p - q;
519
- /* Check for trailing data. */
520
- if (len) {
521
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH);
522
- goto err;
523
- }
524
- } else
525
- return asn1_template_noexp_d2i(val, in, inlen, tt, opt, ctx, depth);
516
+ // Check if EXPLICIT tag expected
517
+ if (flags & ASN1_TFLG_EXPTAG) {
518
+ char cst;
519
+ // Need to work out amount of data available to the inner content and
520
+ // where it starts: so read in EXPLICIT header to get the info.
521
+ ret = asn1_check_tlen(&len, NULL, NULL, &cst, &p, inlen, tt->tag, aclass,
522
+ opt);
523
+ q = p;
524
+ if (!ret) {
525
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
526
+ return 0;
527
+ } else if (ret == -1) {
528
+ return -1;
529
+ }
530
+ if (!cst) {
531
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED);
532
+ return 0;
533
+ }
534
+ // We've found the field so it can't be OPTIONAL now
535
+ ret = asn1_template_noexp_d2i(val, &p, len, tt, /*opt=*/0, buf, depth);
536
+ if (!ret) {
537
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
538
+ return 0;
539
+ }
540
+ // We read the field in OK so update length
541
+ len -= p - q;
542
+ // Check for trailing data.
543
+ if (len) {
544
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH);
545
+ goto err;
546
+ }
547
+ } else {
548
+ return asn1_template_noexp_d2i(val, in, inlen, tt, opt, buf, depth);
549
+ }
526
550
 
527
- *in = p;
528
- return 1;
551
+ *in = p;
552
+ return 1;
529
553
 
530
- err:
531
- ASN1_template_free(val, tt);
532
- return 0;
554
+ err:
555
+ ASN1_template_free(val, tt);
556
+ return 0;
533
557
  }
534
558
 
535
- static int asn1_template_noexp_d2i(ASN1_VALUE **val,
536
- const unsigned char **in, long len,
537
- const ASN1_TEMPLATE *tt, char opt,
538
- ASN1_TLC *ctx, int depth)
539
- {
540
- int flags, aclass;
541
- int ret;
542
- const unsigned char *p;
543
- if (!val)
544
- return 0;
545
- flags = tt->flags;
546
- aclass = flags & ASN1_TFLG_TAG_CLASS;
547
-
548
- p = *in;
549
-
550
- if (flags & ASN1_TFLG_SK_MASK) {
551
- /* SET OF, SEQUENCE OF */
552
- int sktag, skaclass;
553
- /* First work out expected inner tag value */
554
- if (flags & ASN1_TFLG_IMPTAG) {
555
- sktag = tt->tag;
556
- skaclass = aclass;
557
- } else {
558
- skaclass = V_ASN1_UNIVERSAL;
559
- if (flags & ASN1_TFLG_SET_OF)
560
- sktag = V_ASN1_SET;
561
- else
562
- sktag = V_ASN1_SEQUENCE;
563
- }
564
- /* Get the tag */
565
- ret = asn1_check_tlen(&len, NULL, NULL, NULL,
566
- &p, len, sktag, skaclass, opt, ctx);
567
- if (!ret) {
568
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
569
- return 0;
570
- } else if (ret == -1)
571
- return -1;
572
- if (!*val)
573
- *val = (ASN1_VALUE *)sk_ASN1_VALUE_new_null();
574
- else {
575
- /*
576
- * We've got a valid STACK: free up any items present
577
- */
578
- STACK_OF(ASN1_VALUE) *sktmp = (STACK_OF(ASN1_VALUE) *)*val;
579
- ASN1_VALUE *vtmp;
580
- while (sk_ASN1_VALUE_num(sktmp) > 0) {
581
- vtmp = sk_ASN1_VALUE_pop(sktmp);
582
- ASN1_item_ex_free(&vtmp, ASN1_ITEM_ptr(tt->item));
583
- }
584
- }
559
+ static int asn1_template_noexp_d2i(ASN1_VALUE **val, const unsigned char **in,
560
+ long len, const ASN1_TEMPLATE *tt, char opt,
561
+ CRYPTO_BUFFER *buf, int depth) {
562
+ int aclass;
563
+ int ret;
564
+ const unsigned char *p;
565
+ if (!val) {
566
+ return 0;
567
+ }
568
+ uint32_t flags = tt->flags;
569
+ aclass = flags & ASN1_TFLG_TAG_CLASS;
570
+
571
+ p = *in;
572
+
573
+ if (flags & ASN1_TFLG_SK_MASK) {
574
+ // SET OF, SEQUENCE OF
575
+ int sktag, skaclass;
576
+ // First work out expected inner tag value
577
+ if (flags & ASN1_TFLG_IMPTAG) {
578
+ sktag = tt->tag;
579
+ skaclass = aclass;
580
+ } else {
581
+ skaclass = V_ASN1_UNIVERSAL;
582
+ if (flags & ASN1_TFLG_SET_OF) {
583
+ sktag = V_ASN1_SET;
584
+ } else {
585
+ sktag = V_ASN1_SEQUENCE;
586
+ }
587
+ }
588
+ // Get the tag
589
+ ret =
590
+ asn1_check_tlen(&len, NULL, NULL, NULL, &p, len, sktag, skaclass, opt);
591
+ if (!ret) {
592
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
593
+ return 0;
594
+ } else if (ret == -1) {
595
+ return -1;
596
+ }
597
+ if (!*val) {
598
+ *val = (ASN1_VALUE *)sk_ASN1_VALUE_new_null();
599
+ } else {
600
+ // We've got a valid STACK: free up any items present
601
+ STACK_OF(ASN1_VALUE) *sktmp = (STACK_OF(ASN1_VALUE) *)*val;
602
+ ASN1_VALUE *vtmp;
603
+ while (sk_ASN1_VALUE_num(sktmp) > 0) {
604
+ vtmp = sk_ASN1_VALUE_pop(sktmp);
605
+ ASN1_item_ex_free(&vtmp, ASN1_ITEM_ptr(tt->item));
606
+ }
607
+ }
585
608
 
586
- if (!*val) {
587
- OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
588
- goto err;
589
- }
609
+ if (!*val) {
610
+ goto err;
611
+ }
590
612
 
591
- /* Read as many items as we can */
592
- while (len > 0) {
593
- ASN1_VALUE *skfield;
594
- const unsigned char *q = p;
595
- /* TODO(https://crbug.com/boringssl/455): Although we've removed
596
- * indefinite-length support, this check is not quite a no-op.
597
- * Reject [UNIVERSAL 0] in the tag parsers themselves. */
598
- if (asn1_check_eoc(&p, len)) {
599
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_UNEXPECTED_EOC);
600
- goto err;
601
- }
602
- skfield = NULL;
603
- if (!asn1_item_ex_d2i(&skfield, &p, len, ASN1_ITEM_ptr(tt->item),
604
- -1, 0, 0, ctx, depth)) {
605
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
606
- goto err;
607
- }
608
- len -= p - q;
609
- if (!sk_ASN1_VALUE_push((STACK_OF(ASN1_VALUE) *)*val, skfield)) {
610
- ASN1_item_ex_free(&skfield, ASN1_ITEM_ptr(tt->item));
611
- OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
612
- goto err;
613
- }
614
- }
615
- } else if (flags & ASN1_TFLG_IMPTAG) {
616
- /* IMPLICIT tagging */
617
- ret = asn1_item_ex_d2i(val, &p, len, ASN1_ITEM_ptr(tt->item), tt->tag,
618
- aclass, opt, ctx, depth);
619
- if (!ret) {
620
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
621
- goto err;
622
- } else if (ret == -1)
623
- return -1;
624
- } else {
625
- /* Nothing special */
626
- ret = asn1_item_ex_d2i(val, &p, len, ASN1_ITEM_ptr(tt->item),
627
- -1, tt->flags & ASN1_TFLG_COMBINE, opt, ctx,
628
- depth);
629
- if (!ret) {
630
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
631
- goto err;
632
- } else if (ret == -1)
633
- return -1;
613
+ // Read as many items as we can
614
+ while (len > 0) {
615
+ ASN1_VALUE *skfield;
616
+ const unsigned char *q = p;
617
+ skfield = NULL;
618
+ if (!asn1_item_ex_d2i(&skfield, &p, len, ASN1_ITEM_ptr(tt->item),
619
+ /*tag=*/-1, /*aclass=*/0, /*opt=*/0, buf, depth)) {
620
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
621
+ goto err;
622
+ }
623
+ len -= p - q;
624
+ if (!sk_ASN1_VALUE_push((STACK_OF(ASN1_VALUE) *)*val, skfield)) {
625
+ ASN1_item_ex_free(&skfield, ASN1_ITEM_ptr(tt->item));
626
+ goto err;
627
+ }
628
+ }
629
+ } else if (flags & ASN1_TFLG_IMPTAG) {
630
+ // IMPLICIT tagging
631
+ ret = asn1_item_ex_d2i(val, &p, len, ASN1_ITEM_ptr(tt->item), tt->tag,
632
+ aclass, opt, buf, depth);
633
+ if (!ret) {
634
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
635
+ goto err;
636
+ } else if (ret == -1) {
637
+ return -1;
638
+ }
639
+ } else {
640
+ // Nothing special
641
+ ret = asn1_item_ex_d2i(val, &p, len, ASN1_ITEM_ptr(tt->item), /*tag=*/-1,
642
+ /*aclass=*/0, opt, buf, depth);
643
+ if (!ret) {
644
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
645
+ goto err;
646
+ } else if (ret == -1) {
647
+ return -1;
634
648
  }
649
+ }
635
650
 
636
- *in = p;
637
- return 1;
651
+ *in = p;
652
+ return 1;
638
653
 
639
- err:
640
- ASN1_template_free(val, tt);
641
- return 0;
654
+ err:
655
+ ASN1_template_free(val, tt);
656
+ return 0;
642
657
  }
643
658
 
644
- static int asn1_d2i_ex_primitive(ASN1_VALUE **pval,
645
- const unsigned char **in, long inlen,
646
- const ASN1_ITEM *it,
647
- int tag, int aclass, char opt, ASN1_TLC *ctx)
648
- {
649
- int ret = 0, utype;
650
- long plen;
651
- char cst;
652
- const unsigned char *p;
653
- const unsigned char *cont = NULL;
654
- long len;
655
- if (!pval) {
656
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_ILLEGAL_NULL);
657
- return 0; /* Should never happen */
658
- }
659
-
660
- if (it->itype == ASN1_ITYPE_MSTRING) {
661
- utype = tag;
662
- tag = -1;
663
- } else
664
- utype = it->utype;
665
-
666
- if (utype == V_ASN1_ANY) {
667
- /* If type is ANY need to figure out type from tag */
668
- unsigned char oclass;
669
- if (tag >= 0) {
670
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_ILLEGAL_TAGGED_ANY);
671
- return 0;
672
- }
673
- if (opt) {
674
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY);
675
- return 0;
676
- }
677
- p = *in;
678
- ret = asn1_check_tlen(NULL, &utype, &oclass, NULL,
679
- &p, inlen, -1, 0, 0, ctx);
680
- if (!ret) {
681
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
682
- return 0;
683
- }
684
- if (oclass != V_ASN1_UNIVERSAL)
685
- utype = V_ASN1_OTHER;
659
+ static int asn1_d2i_ex_primitive(ASN1_VALUE **pval, const unsigned char **in,
660
+ long inlen, const ASN1_ITEM *it, int tag,
661
+ int aclass, char opt) {
662
+ int ret = 0, utype;
663
+ long plen;
664
+ char cst;
665
+ const unsigned char *p;
666
+ const unsigned char *cont = NULL;
667
+ long len;
668
+ if (!pval) {
669
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_ILLEGAL_NULL);
670
+ return 0; // Should never happen
671
+ }
672
+
673
+ if (it->itype == ASN1_ITYPE_MSTRING) {
674
+ utype = tag;
675
+ tag = -1;
676
+ } else {
677
+ utype = it->utype;
678
+ }
679
+
680
+ if (utype == V_ASN1_ANY) {
681
+ // If type is ANY need to figure out type from tag
682
+ unsigned char oclass;
683
+ if (tag >= 0) {
684
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_ILLEGAL_TAGGED_ANY);
685
+ return 0;
686
686
  }
687
- if (tag == -1) {
688
- tag = utype;
689
- aclass = V_ASN1_UNIVERSAL;
687
+ if (opt) {
688
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY);
689
+ return 0;
690
690
  }
691
691
  p = *in;
692
- /* Check header */
693
- ret = asn1_check_tlen(&plen, NULL, NULL, &cst,
694
- &p, inlen, tag, aclass, opt, ctx);
692
+ ret = asn1_check_tlen(NULL, &utype, &oclass, NULL, &p, inlen, -1, 0, 0);
695
693
  if (!ret) {
696
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
697
- return 0;
698
- } else if (ret == -1)
699
- return -1;
700
- ret = 0;
701
- /* SEQUENCE, SET and "OTHER" are left in encoded form */
702
- if ((utype == V_ASN1_SEQUENCE)
703
- || (utype == V_ASN1_SET) || (utype == V_ASN1_OTHER)) {
704
- /*
705
- * Clear context cache for type OTHER because the auto clear when we
706
- * have a exact match wont work
707
- */
708
- if (utype == V_ASN1_OTHER) {
709
- asn1_tlc_clear(ctx);
710
- }
711
- /* SEQUENCE and SET must be constructed */
712
- else if (!cst) {
713
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED);
714
- return 0;
715
- }
716
-
717
- cont = *in;
718
- len = p - cont + plen;
719
- p += plen;
720
- } else if (cst) {
721
- /* This parser historically supported BER constructed strings. We no
722
- * longer do and will gradually tighten this parser into a DER
723
- * parser. BER types should use |CBS_asn1_ber_to_der|. */
724
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_TYPE_NOT_PRIMITIVE);
725
- return 0;
726
- } else {
727
- cont = p;
728
- len = plen;
729
- p += plen;
694
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
695
+ return 0;
696
+ }
697
+ if (!is_supported_universal_type(utype, oclass)) {
698
+ utype = V_ASN1_OTHER;
699
+ }
700
+ }
701
+ if (tag == -1) {
702
+ tag = utype;
703
+ aclass = V_ASN1_UNIVERSAL;
704
+ }
705
+ p = *in;
706
+ // Check header
707
+ ret = asn1_check_tlen(&plen, NULL, NULL, &cst, &p, inlen, tag, aclass, opt);
708
+ if (!ret) {
709
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_NESTED_ASN1_ERROR);
710
+ return 0;
711
+ } else if (ret == -1) {
712
+ return -1;
713
+ }
714
+ ret = 0;
715
+ // SEQUENCE, SET and "OTHER" are left in encoded form
716
+ if ((utype == V_ASN1_SEQUENCE) || (utype == V_ASN1_SET) ||
717
+ (utype == V_ASN1_OTHER)) {
718
+ // SEQUENCE and SET must be constructed
719
+ if (utype != V_ASN1_OTHER && !cst) {
720
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED);
721
+ return 0;
730
722
  }
731
723
 
732
- /* We now have content length and type: translate into a structure */
733
- if (!asn1_ex_c2i(pval, cont, len, utype, it))
734
- goto err;
735
-
736
- *in = p;
737
- ret = 1;
738
- err:
739
- return ret;
724
+ cont = *in;
725
+ len = p - cont + plen;
726
+ p += plen;
727
+ } else if (cst) {
728
+ // This parser historically supported BER constructed strings. We no
729
+ // longer do and will gradually tighten this parser into a DER
730
+ // parser. BER types should use |CBS_asn1_ber_to_der|.
731
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_TYPE_NOT_PRIMITIVE);
732
+ return 0;
733
+ } else {
734
+ cont = p;
735
+ len = plen;
736
+ p += plen;
737
+ }
738
+
739
+ // We now have content length and type: translate into a structure
740
+ if (!asn1_ex_c2i(pval, cont, len, utype, it)) {
741
+ goto err;
742
+ }
743
+
744
+ *in = p;
745
+ ret = 1;
746
+ err:
747
+ return ret;
740
748
  }
741
749
 
742
- /* Translate ASN1 content octets into a structure */
750
+ // Translate ASN1 content octets into a structure
743
751
 
744
752
  static int asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,
745
- int utype, const ASN1_ITEM *it)
746
- {
747
- ASN1_VALUE **opval = NULL;
748
- ASN1_STRING *stmp;
749
- ASN1_TYPE *typ = NULL;
750
- int ret = 0;
751
- ASN1_INTEGER **tint;
752
-
753
- /* Historically, |it->funcs| for primitive types contained an
754
- * |ASN1_PRIMITIVE_FUNCS| table of callbacks. */
755
- assert(it->funcs == NULL);
756
-
757
- /* If ANY type clear type and set pointer to internal value */
758
- if (it->utype == V_ASN1_ANY) {
759
- if (!*pval) {
760
- typ = ASN1_TYPE_new();
761
- if (typ == NULL)
762
- goto err;
763
- *pval = (ASN1_VALUE *)typ;
764
- } else
765
- typ = (ASN1_TYPE *)*pval;
766
-
767
- if (utype != typ->type)
768
- ASN1_TYPE_set(typ, utype, NULL);
769
- opval = pval;
770
- pval = &typ->value.asn1_value;
753
+ int utype, const ASN1_ITEM *it) {
754
+ ASN1_VALUE **opval = NULL;
755
+ ASN1_STRING *stmp;
756
+ ASN1_TYPE *typ = NULL;
757
+ int ret = 0;
758
+ ASN1_INTEGER **tint;
759
+
760
+ // Historically, |it->funcs| for primitive types contained an
761
+ // |ASN1_PRIMITIVE_FUNCS| table of callbacks.
762
+ assert(it->funcs == NULL);
763
+
764
+ // If ANY type clear type and set pointer to internal value
765
+ if (it->utype == V_ASN1_ANY) {
766
+ if (!*pval) {
767
+ typ = ASN1_TYPE_new();
768
+ if (typ == NULL) {
769
+ goto err;
770
+ }
771
+ *pval = (ASN1_VALUE *)typ;
772
+ } else {
773
+ typ = (ASN1_TYPE *)*pval;
771
774
  }
772
- switch (utype) {
775
+
776
+ if (utype != typ->type) {
777
+ ASN1_TYPE_set(typ, utype, NULL);
778
+ }
779
+ opval = pval;
780
+ pval = &typ->value.asn1_value;
781
+ }
782
+ switch (utype) {
773
783
  case V_ASN1_OBJECT:
774
- if (!c2i_ASN1_OBJECT((ASN1_OBJECT **)pval, &cont, len))
775
- goto err;
776
- break;
784
+ if (!c2i_ASN1_OBJECT((ASN1_OBJECT **)pval, &cont, len)) {
785
+ goto err;
786
+ }
787
+ break;
777
788
 
778
789
  case V_ASN1_NULL:
779
- if (len) {
780
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_NULL_IS_WRONG_LENGTH);
781
- goto err;
782
- }
783
- *pval = (ASN1_VALUE *)1;
784
- break;
790
+ if (len) {
791
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_NULL_IS_WRONG_LENGTH);
792
+ goto err;
793
+ }
794
+ *pval = (ASN1_VALUE *)1;
795
+ break;
785
796
 
786
797
  case V_ASN1_BOOLEAN:
787
- if (len != 1) {
788
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH);
789
- goto err;
790
- } else {
791
- ASN1_BOOLEAN *tbool;
792
- tbool = (ASN1_BOOLEAN *)pval;
793
- *tbool = *cont;
794
- }
795
- break;
798
+ if (len != 1) {
799
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH);
800
+ goto err;
801
+ } else {
802
+ ASN1_BOOLEAN *tbool;
803
+ tbool = (ASN1_BOOLEAN *)pval;
804
+ *tbool = *cont;
805
+ }
806
+ break;
796
807
 
797
808
  case V_ASN1_BIT_STRING:
798
- if (!c2i_ASN1_BIT_STRING((ASN1_BIT_STRING **)pval, &cont, len))
799
- goto err;
800
- break;
809
+ if (!c2i_ASN1_BIT_STRING((ASN1_BIT_STRING **)pval, &cont, len)) {
810
+ goto err;
811
+ }
812
+ break;
801
813
 
802
814
  case V_ASN1_INTEGER:
803
815
  case V_ASN1_ENUMERATED:
804
- tint = (ASN1_INTEGER **)pval;
805
- if (!c2i_ASN1_INTEGER(tint, &cont, len))
806
- goto err;
807
- /* Fixup type to match the expected form */
808
- (*tint)->type = utype | ((*tint)->type & V_ASN1_NEG);
809
- break;
816
+ tint = (ASN1_INTEGER **)pval;
817
+ if (!c2i_ASN1_INTEGER(tint, &cont, len)) {
818
+ goto err;
819
+ }
820
+ // Fixup type to match the expected form
821
+ (*tint)->type = utype | ((*tint)->type & V_ASN1_NEG);
822
+ break;
810
823
 
811
824
  case V_ASN1_OCTET_STRING:
812
825
  case V_ASN1_NUMERICSTRING:
@@ -824,146 +837,133 @@ static int asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len,
824
837
  case V_ASN1_UTF8STRING:
825
838
  case V_ASN1_OTHER:
826
839
  case V_ASN1_SET:
827
- case V_ASN1_SEQUENCE:
828
- default:
829
- if (utype == V_ASN1_BMPSTRING && (len & 1)) {
830
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_BMPSTRING_IS_WRONG_LENGTH);
840
+ case V_ASN1_SEQUENCE: {
841
+ CBS cbs;
842
+ CBS_init(&cbs, cont, (size_t)len);
843
+ if (utype == V_ASN1_BMPSTRING) {
844
+ while (CBS_len(&cbs) != 0) {
845
+ uint32_t c;
846
+ if (!cbs_get_ucs2_be(&cbs, &c)) {
847
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_INVALID_BMPSTRING);
831
848
  goto err;
832
- }
833
- if (utype == V_ASN1_UNIVERSALSTRING && (len & 3)) {
834
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH);
849
+ }
850
+ }
851
+ }
852
+ if (utype == V_ASN1_UNIVERSALSTRING) {
853
+ while (CBS_len(&cbs) != 0) {
854
+ uint32_t c;
855
+ if (!cbs_get_utf32_be(&cbs, &c)) {
856
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_INVALID_UNIVERSALSTRING);
835
857
  goto err;
836
- }
837
- /* All based on ASN1_STRING and handled the same */
838
- if (!*pval) {
839
- stmp = ASN1_STRING_type_new(utype);
840
- if (!stmp) {
841
- OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
842
- goto err;
843
- }
844
- *pval = (ASN1_VALUE *)stmp;
845
- } else {
846
- stmp = (ASN1_STRING *)*pval;
847
- stmp->type = utype;
848
- }
849
- if (!ASN1_STRING_set(stmp, cont, len)) {
850
- OPENSSL_PUT_ERROR(ASN1, ERR_R_MALLOC_FAILURE);
851
- ASN1_STRING_free(stmp);
852
- *pval = NULL;
858
+ }
859
+ }
860
+ }
861
+ if (utype == V_ASN1_UTF8STRING) {
862
+ while (CBS_len(&cbs) != 0) {
863
+ uint32_t c;
864
+ if (!cbs_get_utf8(&cbs, &c)) {
865
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_INVALID_UTF8STRING);
853
866
  goto err;
854
- }
855
- break;
856
- }
857
- /* If ASN1_ANY and NULL type fix up value */
858
- if (typ && (utype == V_ASN1_NULL))
859
- typ->value.ptr = NULL;
860
-
861
- ret = 1;
862
- err:
863
- if (!ret) {
864
- ASN1_TYPE_free(typ);
865
- if (opval)
866
- *opval = NULL;
867
+ }
868
+ }
869
+ }
870
+ if (utype == V_ASN1_UTCTIME) {
871
+ if (!CBS_parse_utc_time(&cbs, NULL, /*allow_timezone_offset=*/1)) {
872
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_INVALID_TIME_FORMAT);
873
+ goto err;
874
+ }
875
+ }
876
+ if (utype == V_ASN1_GENERALIZEDTIME) {
877
+ if (!CBS_parse_generalized_time(&cbs, NULL,
878
+ /*allow_timezone_offset=*/0)) {
879
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_INVALID_TIME_FORMAT);
880
+ goto err;
881
+ }
882
+ }
883
+ // TODO(https://crbug.com/boringssl/427): Check other string types.
884
+
885
+ // All based on ASN1_STRING and handled the same
886
+ if (!*pval) {
887
+ stmp = ASN1_STRING_type_new(utype);
888
+ if (!stmp) {
889
+ goto err;
890
+ }
891
+ *pval = (ASN1_VALUE *)stmp;
892
+ } else {
893
+ stmp = (ASN1_STRING *)*pval;
894
+ stmp->type = utype;
895
+ }
896
+ if (!ASN1_STRING_set(stmp, cont, len)) {
897
+ ASN1_STRING_free(stmp);
898
+ *pval = NULL;
899
+ goto err;
900
+ }
901
+ break;
867
902
  }
868
- return ret;
869
- }
870
-
871
- /* Check for ASN1 EOC and swallow it if found */
872
-
873
- static int asn1_check_eoc(const unsigned char **in, long len)
874
- {
875
- const unsigned char *p;
876
- if (len < 2)
877
- return 0;
878
- p = *in;
879
- if (!p[0] && !p[1]) {
880
- *in += 2;
881
- return 1;
903
+ default:
904
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_BAD_TEMPLATE);
905
+ goto err;
906
+ }
907
+ // If ASN1_ANY and NULL type fix up value
908
+ if (typ && (utype == V_ASN1_NULL)) {
909
+ typ->value.ptr = NULL;
910
+ }
911
+
912
+ ret = 1;
913
+ err:
914
+ if (!ret) {
915
+ ASN1_TYPE_free(typ);
916
+ if (opval) {
917
+ *opval = NULL;
882
918
  }
883
- return 0;
919
+ }
920
+ return ret;
884
921
  }
885
922
 
886
- /*
887
- * Check an ASN1 tag and length: a bit like ASN1_get_object but it handles
888
- * the ASN1_TLC cache and checks the expected tag.
889
- */
923
+ // Check an ASN1 tag and length: a bit like ASN1_get_object but it
924
+ // checks the expected tag.
890
925
 
891
926
  static int asn1_check_tlen(long *olen, int *otag, unsigned char *oclass,
892
927
  char *cst, const unsigned char **in, long len,
893
- int exptag, int expclass, char opt, ASN1_TLC *ctx)
894
- {
895
- int i;
896
- int ptag, pclass;
897
- long plen;
898
- const unsigned char *p, *q;
899
- p = *in;
900
- q = p;
901
-
902
- if (ctx && ctx->valid) {
903
- i = ctx->ret;
904
- plen = ctx->plen;
905
- pclass = ctx->pclass;
906
- ptag = ctx->ptag;
907
- p += ctx->hdrlen;
908
- } else {
909
- i = ASN1_get_object(&p, &plen, &ptag, &pclass, len);
910
- if (ctx) {
911
- ctx->ret = i;
912
- ctx->plen = plen;
913
- ctx->pclass = pclass;
914
- ctx->ptag = ptag;
915
- ctx->hdrlen = p - q;
916
- ctx->valid = 1;
917
- /*
918
- * If no error, length + header can't exceed total amount of data
919
- * available.
920
- *
921
- * TODO(davidben): Is this check necessary? |ASN1_get_object|
922
- * should already guarantee this.
923
- */
924
- if (!(i & 0x80) && ((plen + ctx->hdrlen) > len)) {
925
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_TOO_LONG);
926
- asn1_tlc_clear(ctx);
927
- return 0;
928
- }
929
- }
930
- }
931
-
932
- if (i & 0x80) {
933
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_BAD_OBJECT_HEADER);
934
- asn1_tlc_clear(ctx);
935
- return 0;
936
- }
937
- if (exptag >= 0) {
938
- if ((exptag != ptag) || (expclass != pclass)) {
939
- /*
940
- * If type is OPTIONAL, not an error: indicate missing type.
941
- */
942
- if (opt)
943
- return -1;
944
- asn1_tlc_clear(ctx);
945
- OPENSSL_PUT_ERROR(ASN1, ASN1_R_WRONG_TAG);
946
- return 0;
947
- }
948
- /*
949
- * We have a tag and class match: assume we are going to do something
950
- * with it
951
- */
952
- asn1_tlc_clear(ctx);
928
+ int exptag, int expclass, char opt) {
929
+ int i;
930
+ int ptag, pclass;
931
+ long plen;
932
+ const unsigned char *p;
933
+ p = *in;
934
+
935
+ i = ASN1_get_object(&p, &plen, &ptag, &pclass, len);
936
+ if (i & 0x80) {
937
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_BAD_OBJECT_HEADER);
938
+ return 0;
939
+ }
940
+ if (exptag >= 0) {
941
+ if ((exptag != ptag) || (expclass != pclass)) {
942
+ // If type is OPTIONAL, not an error: indicate missing type.
943
+ if (opt) {
944
+ return -1;
945
+ }
946
+ OPENSSL_PUT_ERROR(ASN1, ASN1_R_WRONG_TAG);
947
+ return 0;
953
948
  }
949
+ }
954
950
 
955
- if (cst)
956
- *cst = i & V_ASN1_CONSTRUCTED;
951
+ if (cst) {
952
+ *cst = i & V_ASN1_CONSTRUCTED;
953
+ }
957
954
 
958
- if (olen)
959
- *olen = plen;
955
+ if (olen) {
956
+ *olen = plen;
957
+ }
960
958
 
961
- if (oclass)
962
- *oclass = pclass;
959
+ if (oclass) {
960
+ *oclass = pclass;
961
+ }
963
962
 
964
- if (otag)
965
- *otag = ptag;
963
+ if (otag) {
964
+ *otag = ptag;
965
+ }
966
966
 
967
- *in = p;
968
- return 1;
967
+ *in = p;
968
+ return 1;
969
969
  }