grpc 1.41.0 → 1.43.1

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 (1056) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +126 -62
  3. data/etc/roots.pem +335 -326
  4. data/include/grpc/event_engine/event_engine.h +118 -54
  5. data/include/grpc/event_engine/internal/memory_allocator_impl.h +68 -0
  6. data/include/grpc/event_engine/memory_allocator.h +226 -0
  7. data/include/grpc/event_engine/memory_request.h +57 -0
  8. data/include/grpc/grpc.h +4 -0
  9. data/include/grpc/grpc_security.h +294 -145
  10. data/include/grpc/grpc_security_constants.h +2 -14
  11. data/include/grpc/impl/codegen/port_platform.h +14 -3
  12. data/src/core/ext/filters/client_channel/backend_metric.cc +21 -23
  13. data/src/core/ext/filters/client_channel/backend_metric.h +3 -2
  14. data/src/core/ext/filters/client_channel/backup_poller.cc +2 -1
  15. data/src/core/ext/filters/client_channel/channel_connectivity.cc +71 -89
  16. data/src/core/ext/filters/client_channel/client_channel.cc +254 -278
  17. data/src/core/ext/filters/client_channel/client_channel.h +79 -31
  18. data/src/core/ext/filters/client_channel/client_channel_factory.cc +1 -1
  19. data/src/core/ext/filters/client_channel/client_channel_factory.h +17 -19
  20. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +7 -14
  21. data/src/core/ext/filters/client_channel/config_selector.cc +1 -1
  22. data/src/core/ext/filters/client_channel/config_selector.h +4 -5
  23. data/src/core/ext/filters/client_channel/connector.h +18 -18
  24. data/src/core/ext/filters/client_channel/dynamic_filters.cc +5 -5
  25. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +0 -1
  26. data/src/core/ext/filters/client_channel/health/health_check_client.cc +12 -11
  27. data/src/core/ext/filters/client_channel/health/health_check_client.h +1 -1
  28. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +12 -14
  29. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +1 -1
  30. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +4 -0
  31. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -15
  32. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +167 -84
  33. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +4 -0
  34. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +1 -1
  35. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +1 -2
  36. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -2
  37. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +2 -4
  38. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +23 -7
  39. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +15 -10
  40. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +4 -6
  41. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2502 -0
  42. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +6 -1
  43. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +7 -1
  44. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +32 -81
  45. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +1 -1
  46. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +87 -34
  47. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +8 -1
  48. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +53 -106
  49. data/src/core/ext/filters/client_channel/lb_policy.h +86 -60
  50. data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -0
  51. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +139 -0
  52. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +14 -8
  53. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -2
  54. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +11 -15
  55. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +12 -39
  56. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +21 -1
  57. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +9 -5
  58. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +3 -1
  59. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +6 -12
  60. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +281 -344
  61. data/src/core/ext/filters/client_channel/resolver.h +1 -1
  62. data/src/core/ext/filters/client_channel/resolver_factory.h +2 -0
  63. data/src/core/ext/filters/client_channel/resolver_registry.cc +12 -15
  64. data/src/core/ext/filters/client_channel/resolver_registry.h +1 -2
  65. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +1 -1
  66. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +1 -1
  67. data/src/core/ext/filters/client_channel/retry_filter.cc +48 -86
  68. data/src/core/ext/filters/client_channel/retry_service_config.h +1 -1
  69. data/src/core/ext/filters/client_channel/retry_throttle.cc +17 -48
  70. data/src/core/ext/filters/client_channel/server_address.h +1 -1
  71. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +49 -36
  72. data/src/core/ext/filters/client_channel/subchannel.cc +89 -147
  73. data/src/core/ext/filters/client_channel/subchannel.h +29 -49
  74. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +22 -7
  75. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +11 -2
  76. data/src/core/ext/filters/client_idle/client_idle_filter.cc +27 -210
  77. data/src/core/ext/filters/client_idle/idle_filter_state.cc +96 -0
  78. data/src/core/ext/filters/client_idle/idle_filter_state.h +66 -0
  79. data/src/core/ext/filters/deadline/deadline_filter.cc +23 -26
  80. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +20 -20
  81. data/src/core/ext/filters/fault_injection/service_config_parser.cc +0 -1
  82. data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
  83. data/src/core/ext/filters/http/client/http_client_filter.cc +48 -67
  84. data/src/core/ext/filters/http/client_authority_filter.cc +14 -15
  85. data/src/core/ext/filters/http/http_filters_plugin.cc +51 -71
  86. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +17 -12
  87. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +1 -1
  88. data/src/core/ext/filters/http/server/http_server_filter.cc +69 -83
  89. data/src/core/ext/filters/max_age/max_age_filter.cc +24 -26
  90. data/src/core/ext/filters/message_size/message_size_filter.cc +19 -16
  91. data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
  92. data/src/core/ext/filters/server_config_selector/server_config_selector.cc +67 -0
  93. data/src/core/ext/filters/server_config_selector/server_config_selector.h +70 -0
  94. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +265 -0
  95. data/src/core/ext/filters/{workarounds/workaround_cronet_compression_filter.h → server_config_selector/server_config_selector_filter.h} +11 -6
  96. data/src/core/ext/{filters/client_channel → service_config}/service_config.cc +2 -2
  97. data/src/core/ext/{filters/client_channel → service_config}/service_config.h +4 -4
  98. data/src/core/ext/service_config/service_config_call_data.h +72 -0
  99. data/src/core/ext/{filters/client_channel → service_config}/service_config_parser.cc +3 -3
  100. data/src/core/ext/{filters/client_channel → service_config}/service_config_parser.h +8 -6
  101. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +4 -23
  102. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -2
  103. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +25 -27
  104. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +11 -14
  105. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +32 -52
  106. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +68 -95
  107. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +2 -3
  108. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +9 -13
  109. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +6 -6
  110. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +108 -116
  111. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -2
  112. data/src/core/ext/transport/chttp2/transport/context_list.cc +2 -3
  113. data/src/core/ext/transport/chttp2/transport/context_list.h +2 -3
  114. data/src/core/ext/transport/chttp2/transport/flow_control.cc +26 -23
  115. data/src/core/ext/transport/chttp2/transport/flow_control.h +6 -6
  116. data/src/core/ext/transport/chttp2/transport/frame_data.cc +4 -4
  117. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -1
  118. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +2 -1
  119. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -3
  120. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +2 -2
  121. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +1 -1
  122. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +119 -15
  123. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +41 -5
  124. data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +1 -1
  125. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +195 -183
  126. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +27 -8
  127. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +12 -25
  128. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +37 -30
  129. data/src/core/ext/transport/chttp2/transport/internal.h +12 -7
  130. data/src/core/ext/transport/chttp2/transport/parsing.cc +30 -173
  131. data/src/core/ext/transport/chttp2/transport/popularity_count.h +1 -1
  132. data/src/core/ext/transport/chttp2/transport/writing.cc +29 -22
  133. data/src/core/ext/transport/inproc/inproc_transport.cc +121 -116
  134. data/src/core/ext/transport/inproc/inproc_transport.h +1 -1
  135. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +197 -165
  136. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +2 -0
  137. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +41 -0
  138. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +18 -0
  139. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +26 -2
  140. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -0
  141. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +107 -82
  142. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +2 -0
  143. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +188 -160
  144. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +2 -0
  145. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +35 -22
  146. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +2 -0
  147. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +277 -208
  148. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +141 -1
  149. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +16 -5
  150. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +2 -0
  151. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +36 -25
  152. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +2 -0
  153. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +56 -39
  154. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +2 -0
  155. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +16 -5
  156. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +2 -0
  157. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +171 -125
  158. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +55 -4
  159. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +51 -36
  160. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +2 -0
  161. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +15 -4
  162. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +2 -0
  163. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +25 -13
  164. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +2 -0
  165. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +114 -90
  166. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +2 -0
  167. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +90 -71
  168. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +17 -0
  169. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +17 -6
  170. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +2 -0
  171. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +121 -92
  172. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +25 -0
  173. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +13 -2
  174. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +2 -0
  175. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +21 -9
  176. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +2 -0
  177. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +18 -7
  178. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +2 -0
  179. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +22 -11
  180. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +2 -0
  181. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +17 -6
  182. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +2 -0
  183. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +41 -27
  184. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +2 -0
  185. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +59 -44
  186. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +2 -0
  187. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +58 -43
  188. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +2 -0
  189. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +15 -4
  190. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +2 -0
  191. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +73 -57
  192. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +2 -0
  193. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +81 -64
  194. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +2 -0
  195. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +25 -14
  196. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +2 -0
  197. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +19 -7
  198. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +2 -0
  199. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +63 -45
  200. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +2 -0
  201. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +66 -47
  202. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +2 -0
  203. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +99 -78
  204. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +19 -0
  205. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +41 -28
  206. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +2 -0
  207. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +508 -442
  208. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +51 -19
  209. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +26 -13
  210. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +2 -0
  211. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +21 -9
  212. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +2 -0
  213. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +13 -2
  214. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +2 -0
  215. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +35 -20
  216. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +2 -0
  217. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +44 -31
  218. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +2 -0
  219. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +22 -11
  220. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +2 -0
  221. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +210 -181
  222. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +2 -0
  223. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +7 -0
  224. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +5 -3
  225. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +64 -48
  226. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +2 -0
  227. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +33 -20
  228. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +2 -0
  229. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +81 -65
  230. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +2 -0
  231. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +12 -1
  232. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +2 -0
  233. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +12 -1
  234. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +2 -0
  235. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +75 -58
  236. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +2 -0
  237. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +12 -1
  238. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +2 -0
  239. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +12 -1
  240. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +2 -0
  241. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +25 -13
  242. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +2 -0
  243. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +12 -1
  244. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +2 -0
  245. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +12 -1
  246. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +2 -0
  247. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +61 -46
  248. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +2 -0
  249. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +26 -12
  250. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +2 -0
  251. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +22 -10
  252. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +2 -0
  253. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +17 -6
  254. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +2 -0
  255. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +16 -5
  256. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +2 -0
  257. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +15 -4
  258. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +2 -0
  259. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +27 -14
  260. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +2 -0
  261. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +25 -13
  262. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +2 -0
  263. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +20 -8
  264. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +2 -0
  265. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +30 -17
  266. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +2 -0
  267. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +38 -21
  268. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +2 -0
  269. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +41 -26
  270. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +2 -0
  271. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +7 -0
  272. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +2 -0
  273. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +17 -5
  274. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +2 -0
  275. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +22 -9
  276. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +2 -0
  277. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +15 -4
  278. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +2 -0
  279. data/src/core/ext/upb-generated/google/api/annotations.upb.c +20 -0
  280. data/src/core/ext/upb-generated/google/api/annotations.upb.h +7 -0
  281. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +116 -93
  282. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +2 -0
  283. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.c +102 -0
  284. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/eval.upb.h +306 -0
  285. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.c +56 -0
  286. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/explain.upb.h +135 -0
  287. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +122 -98
  288. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +2 -0
  289. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.c +115 -0
  290. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/value.upb.h +371 -0
  291. data/src/core/ext/upb-generated/google/api/http.upb.c +35 -22
  292. data/src/core/ext/upb-generated/google/api/http.upb.h +2 -0
  293. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +14 -3
  294. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +2 -0
  295. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +247 -210
  296. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +2 -0
  297. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +14 -3
  298. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +2 -0
  299. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +12 -1
  300. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +2 -0
  301. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +37 -23
  302. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +2 -0
  303. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +14 -3
  304. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +2 -0
  305. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +37 -18
  306. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +2 -0
  307. data/src/core/ext/upb-generated/google/rpc/status.upb.c +17 -6
  308. data/src/core/ext/upb-generated/google/rpc/status.upb.h +2 -0
  309. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +26 -14
  310. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +2 -0
  311. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +105 -83
  312. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +2 -0
  313. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +20 -8
  314. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +2 -0
  315. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +16 -4
  316. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +2 -0
  317. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +65 -47
  318. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +34 -36
  319. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +68 -0
  320. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +156 -0
  321. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +67 -7
  322. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +27 -0
  323. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +27 -5
  324. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +7 -0
  325. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +19 -0
  326. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +7 -0
  327. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +27 -3
  328. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +7 -0
  329. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +26 -2
  330. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -0
  331. data/src/core/ext/upb-generated/validate/validate.upb.c +320 -251
  332. data/src/core/ext/upb-generated/validate/validate.upb.h +20 -0
  333. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +103 -0
  334. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +199 -0
  335. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +14 -3
  336. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +2 -0
  337. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +25 -13
  338. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +2 -0
  339. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +20 -8
  340. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +2 -0
  341. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +19 -8
  342. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +2 -0
  343. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +28 -16
  344. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +2 -0
  345. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +19 -8
  346. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +2 -0
  347. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +71 -0
  348. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +132 -0
  349. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +44 -0
  350. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +85 -0
  351. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +2 -49
  352. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +2 -2
  353. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +2 -7
  354. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +2 -35
  355. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +2 -41
  356. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +2 -11
  357. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +307 -336
  358. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +10 -0
  359. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +2 -7
  360. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +2 -7
  361. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +2 -19
  362. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +2 -7
  363. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +100 -138
  364. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +5 -0
  365. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +2 -15
  366. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +2 -7
  367. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +2 -9
  368. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +2 -33
  369. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +61 -77
  370. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +2 -7
  371. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +61 -79
  372. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +2 -7
  373. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +2 -9
  374. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +2 -7
  375. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +2 -7
  376. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +2 -7
  377. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +2 -13
  378. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +80 -99
  379. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +2 -15
  380. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +2 -7
  381. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +2 -17
  382. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +2 -19
  383. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +2 -7
  384. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +2 -9
  385. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +2 -21
  386. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +2 -23
  387. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +2 -11
  388. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +325 -427
  389. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +2 -11
  390. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +2 -9
  391. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +2 -7
  392. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +2 -15
  393. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +2 -11
  394. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +2 -7
  395. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +2 -43
  396. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +2 -2
  397. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +2 -17
  398. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +2 -11
  399. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +2 -17
  400. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +2 -7
  401. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +2 -7
  402. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +2 -19
  403. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +2 -7
  404. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +2 -7
  405. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +2 -9
  406. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +2 -7
  407. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +2 -7
  408. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +2 -15
  409. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +2 -13
  410. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +2 -9
  411. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +2 -7
  412. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +2 -7
  413. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +2 -7
  414. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +2 -11
  415. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +2 -9
  416. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +2 -9
  417. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +2 -11
  418. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +2 -19
  419. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +2 -15
  420. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +2 -2
  421. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +2 -9
  422. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +2 -11
  423. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +2 -7
  424. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +2 -2
  425. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +2 -11
  426. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +2 -7
  427. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +2 -59
  428. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +2 -7
  429. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +2 -7
  430. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +2 -13
  431. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +2 -7
  432. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +2 -23
  433. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +2 -7
  434. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +7 -15
  435. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +21 -30
  436. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +6 -5
  437. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +7 -10
  438. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +7 -11
  439. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +2 -51
  440. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +64 -0
  441. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +50 -0
  442. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +15 -19
  443. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +27 -33
  444. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +18 -24
  445. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +19 -23
  446. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +35 -41
  447. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +21 -25
  448. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +40 -0
  449. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +35 -0
  450. data/src/core/ext/xds/certificate_provider_registry.cc +1 -1
  451. data/src/core/ext/xds/certificate_provider_store.h +1 -1
  452. data/src/core/ext/xds/xds_api.cc +693 -625
  453. data/src/core/ext/xds/xds_api.h +137 -83
  454. data/src/core/ext/xds/xds_bootstrap.cc +6 -3
  455. data/src/core/ext/xds/xds_bootstrap.h +10 -0
  456. data/src/core/ext/xds/xds_certificate_provider.cc +3 -3
  457. data/src/core/ext/xds/xds_certificate_provider.h +1 -2
  458. data/src/core/ext/xds/xds_channel_stack_modifier.cc +112 -0
  459. data/src/core/ext/xds/xds_channel_stack_modifier.h +52 -0
  460. data/src/core/ext/xds/xds_client.cc +752 -435
  461. data/src/core/ext/xds/xds_client.h +83 -69
  462. data/src/core/ext/xds/xds_client_stats.h +1 -1
  463. data/src/core/ext/xds/xds_routing.cc +247 -0
  464. data/src/core/ext/xds/xds_routing.h +98 -0
  465. data/src/core/ext/xds/xds_server_config_fetcher.cc +976 -264
  466. data/src/core/lib/address_utils/parse_address.cc +2 -0
  467. data/src/core/lib/avl/avl.h +389 -88
  468. data/src/core/lib/backoff/backoff.cc +3 -3
  469. data/src/core/lib/channel/channel_args.cc +25 -7
  470. data/src/core/lib/channel/channel_args.h +11 -1
  471. data/src/core/lib/channel/channel_args_preconditioning.cc +47 -0
  472. data/src/core/lib/channel/channel_args_preconditioning.h +62 -0
  473. data/src/core/lib/channel/channel_stack_builder.cc +3 -5
  474. data/src/core/lib/channel/channel_trace.cc +7 -7
  475. data/src/core/lib/channel/channel_trace.h +1 -1
  476. data/src/core/lib/channel/channelz.cc +3 -3
  477. data/src/core/lib/channel/channelz.h +2 -2
  478. data/src/core/lib/channel/channelz_registry.cc +1 -1
  479. data/src/core/lib/channel/channelz_registry.h +1 -1
  480. data/src/core/lib/channel/connected_channel.cc +1 -3
  481. data/src/core/lib/channel/connected_channel.h +1 -2
  482. data/src/core/lib/compression/compression.cc +2 -2
  483. data/src/core/lib/compression/compression_args.cc +13 -9
  484. data/src/core/lib/compression/compression_args.h +6 -4
  485. data/src/core/lib/compression/compression_internal.cc +2 -2
  486. data/src/core/lib/compression/compression_internal.h +1 -1
  487. data/src/core/lib/config/core_configuration.cc +46 -2
  488. data/src/core/lib/config/core_configuration.h +50 -1
  489. data/src/core/lib/debug/stats.cc +1 -1
  490. data/src/core/lib/debug/stats_data.cc +13 -13
  491. data/src/core/lib/debug/trace.h +2 -2
  492. data/src/core/lib/event_engine/{endpoint_config.cc → channel_args_endpoint_config.cc} +2 -1
  493. data/src/core/lib/event_engine/{endpoint_config_internal.h → channel_args_endpoint_config.h} +3 -3
  494. data/src/core/lib/event_engine/event_engine.cc +0 -13
  495. data/src/core/lib/event_engine/event_engine_factory.cc +49 -0
  496. data/src/core/lib/event_engine/event_engine_factory.h +33 -0
  497. data/src/core/lib/event_engine/memory_allocator.cc +70 -0
  498. data/src/core/lib/gpr/atm.cc +1 -1
  499. data/src/core/lib/gpr/cpu_posix.cc +1 -1
  500. data/src/core/lib/gpr/string.cc +2 -2
  501. data/src/core/lib/gpr/tls.h +7 -1
  502. data/src/core/lib/gpr/useful.h +79 -32
  503. data/src/core/lib/gprpp/arena.h +10 -0
  504. data/src/core/lib/gprpp/bitset.h +38 -16
  505. data/src/core/lib/gprpp/chunked_vector.h +211 -0
  506. data/src/core/lib/gprpp/construct_destruct.h +1 -1
  507. data/src/core/lib/gprpp/cpp_impl_of.h +45 -0
  508. data/src/core/lib/gprpp/global_config_env.cc +7 -7
  509. data/src/core/lib/gprpp/global_config_env.h +2 -2
  510. data/src/core/lib/gprpp/manual_constructor.h +2 -3
  511. data/src/core/lib/gprpp/memory.h +6 -0
  512. data/src/core/lib/gprpp/orphanable.h +1 -1
  513. data/src/core/lib/gprpp/ref_counted.h +1 -1
  514. data/src/core/lib/gprpp/ref_counted_ptr.h +2 -4
  515. data/src/core/lib/gprpp/status_helper.cc +23 -3
  516. data/src/core/lib/gprpp/status_helper.h +13 -2
  517. data/src/core/lib/gprpp/table.h +423 -0
  518. data/src/core/lib/http/httpcli.cc +220 -198
  519. data/src/core/lib/http/httpcli.h +14 -12
  520. data/src/core/lib/http/parser.cc +2 -2
  521. data/src/core/lib/iomgr/buffer_list.cc +9 -9
  522. data/src/core/lib/iomgr/buffer_list.h +13 -13
  523. data/src/core/lib/iomgr/call_combiner.cc +29 -12
  524. data/src/core/lib/iomgr/combiner.cc +6 -21
  525. data/src/core/lib/iomgr/endpoint.h +0 -1
  526. data/src/core/lib/iomgr/endpoint_cfstream.cc +14 -30
  527. data/src/core/lib/iomgr/endpoint_cfstream.h +4 -4
  528. data/src/core/lib/iomgr/endpoint_pair_posix.cc +9 -11
  529. data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -14
  530. data/src/core/lib/iomgr/error.cc +113 -52
  531. data/src/core/lib/iomgr/error.h +50 -9
  532. data/src/core/lib/iomgr/error_cfstream.cc +5 -0
  533. data/src/core/lib/iomgr/ev_epoll1_linux.cc +3 -2
  534. data/src/core/lib/iomgr/ev_epollex_linux.cc +7 -7
  535. data/src/core/lib/iomgr/ev_poll_posix.cc +29 -20
  536. data/src/core/lib/iomgr/event_engine/closure.cc +41 -18
  537. data/src/core/lib/iomgr/event_engine/closure.h +10 -1
  538. data/src/core/lib/iomgr/event_engine/endpoint.cc +5 -6
  539. data/src/core/lib/iomgr/event_engine/iomgr.cc +6 -26
  540. data/src/core/lib/iomgr/event_engine/pollset.cc +5 -4
  541. data/src/core/lib/iomgr/event_engine/resolver.cc +12 -8
  542. data/src/core/lib/iomgr/event_engine/tcp.cc +16 -13
  543. data/src/core/lib/iomgr/event_engine/timer.cc +10 -4
  544. data/src/core/lib/iomgr/exec_ctx.cc +1 -9
  545. data/src/core/lib/iomgr/exec_ctx.h +11 -11
  546. data/src/core/lib/iomgr/executor/mpmcqueue.cc +5 -7
  547. data/src/core/lib/iomgr/executor/mpmcqueue.h +3 -8
  548. data/src/core/lib/iomgr/executor.cc +16 -33
  549. data/src/core/lib/iomgr/executor.h +1 -1
  550. data/src/core/lib/iomgr/iomgr.cc +3 -1
  551. data/src/core/lib/iomgr/iomgr_internal.cc +4 -9
  552. data/src/core/lib/iomgr/iomgr_internal.h +3 -2
  553. data/src/core/lib/iomgr/load_file.cc +2 -2
  554. data/src/core/lib/iomgr/lockfree_event.cc +18 -0
  555. data/src/core/lib/iomgr/pollset_custom.cc +1 -1
  556. data/src/core/lib/iomgr/pollset_custom.h +1 -1
  557. data/src/core/lib/iomgr/resolve_address_posix.cc +5 -7
  558. data/src/core/lib/iomgr/socket_factory_posix.cc +2 -2
  559. data/src/core/lib/iomgr/socket_mutator.cc +2 -2
  560. data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -2
  561. data/src/core/lib/iomgr/tcp_client.cc +2 -4
  562. data/src/core/lib/iomgr/tcp_client.h +1 -3
  563. data/src/core/lib/iomgr/tcp_client_cfstream.cc +6 -12
  564. data/src/core/lib/iomgr/tcp_client_custom.cc +5 -11
  565. data/src/core/lib/iomgr/tcp_client_posix.cc +16 -41
  566. data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
  567. data/src/core/lib/iomgr/tcp_client_windows.cc +3 -13
  568. data/src/core/lib/iomgr/tcp_custom.cc +9 -36
  569. data/src/core/lib/iomgr/tcp_custom.h +0 -1
  570. data/src/core/lib/iomgr/tcp_posix.cc +32 -38
  571. data/src/core/lib/iomgr/tcp_posix.h +1 -3
  572. data/src/core/lib/iomgr/tcp_server.cc +4 -6
  573. data/src/core/lib/iomgr/tcp_server.h +6 -8
  574. data/src/core/lib/iomgr/tcp_server_custom.cc +7 -16
  575. data/src/core/lib/iomgr/tcp_server_posix.cc +20 -25
  576. data/src/core/lib/iomgr/tcp_server_utils_posix.h +19 -18
  577. data/src/core/lib/iomgr/tcp_server_windows.cc +9 -17
  578. data/src/core/lib/iomgr/tcp_windows.cc +4 -9
  579. data/src/core/lib/iomgr/tcp_windows.h +1 -2
  580. data/src/core/lib/iomgr/timer_generic.cc +13 -13
  581. data/src/core/lib/iomgr/timer_heap.cc +1 -1
  582. data/src/core/lib/iomgr/unix_sockets_posix.cc +1 -1
  583. data/src/core/lib/iomgr/unix_sockets_posix.h +1 -1
  584. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +1 -1
  585. data/src/core/lib/iomgr/work_serializer.cc +115 -44
  586. data/src/core/lib/iomgr/work_serializer.h +16 -4
  587. data/src/core/lib/json/json_reader.cc +83 -35
  588. data/src/core/lib/json/json_util.cc +69 -1
  589. data/src/core/lib/json/json_util.h +57 -99
  590. data/src/core/lib/json/json_writer.cc +0 -3
  591. data/src/core/lib/promise/activity.cc +115 -0
  592. data/src/core/lib/promise/activity.h +499 -0
  593. data/src/core/lib/promise/context.h +86 -0
  594. data/src/core/lib/promise/detail/basic_seq.h +407 -0
  595. data/src/core/lib/promise/detail/promise_factory.h +189 -0
  596. data/src/core/lib/promise/detail/promise_like.h +85 -0
  597. data/src/core/lib/promise/detail/status.h +44 -0
  598. data/src/core/lib/promise/detail/switch.h +1455 -0
  599. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +48 -0
  600. data/src/core/lib/promise/loop.h +108 -0
  601. data/src/core/lib/promise/map.h +88 -0
  602. data/src/core/lib/promise/poll.h +60 -0
  603. data/src/core/lib/promise/race.h +84 -0
  604. data/src/core/lib/promise/seq.h +71 -0
  605. data/src/core/lib/resource_quota/api.cc +108 -0
  606. data/src/core/lib/resource_quota/api.h +41 -0
  607. data/src/core/lib/resource_quota/memory_quota.cc +454 -0
  608. data/src/core/lib/resource_quota/memory_quota.h +421 -0
  609. data/src/core/lib/resource_quota/resource_quota.cc +33 -0
  610. data/src/core/lib/resource_quota/resource_quota.h +58 -0
  611. data/src/core/lib/{transport/authority_override.h → resource_quota/thread_quota.cc} +22 -16
  612. data/src/core/lib/resource_quota/thread_quota.h +57 -0
  613. data/src/core/lib/resource_quota/trace.cc +19 -0
  614. data/src/core/lib/resource_quota/trace.h +24 -0
  615. data/src/core/lib/security/authorization/authorization_policy_provider.h +1 -1
  616. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +1 -1
  617. data/src/core/lib/security/authorization/evaluate_args.cc +20 -24
  618. data/src/core/lib/security/authorization/evaluate_args.h +2 -1
  619. data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +15 -1
  620. data/src/core/lib/security/context/security_context.cc +4 -2
  621. data/src/core/lib/security/credentials/composite/composite_credentials.cc +1 -1
  622. data/src/core/lib/security/credentials/credentials.cc +4 -2
  623. data/src/core/lib/security/credentials/credentials.h +6 -1
  624. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +11 -12
  625. data/src/core/lib/security/credentials/external/external_account_credentials.cc +56 -21
  626. data/src/core/lib/security/credentials/external/external_account_credentials.h +1 -0
  627. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +3 -4
  628. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +5 -7
  629. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +1 -1
  630. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +9 -15
  631. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +18 -22
  632. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +2 -2
  633. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +11 -12
  634. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +7 -8
  635. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +201 -0
  636. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +106 -0
  637. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +11 -90
  638. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +19 -82
  639. data/src/core/lib/security/credentials/tls/tls_credentials.cc +21 -10
  640. data/src/core/lib/security/credentials/xds/xds_credentials.cc +28 -33
  641. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +3 -3
  642. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +2 -2
  643. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +5 -6
  644. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
  645. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +7 -7
  646. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -2
  647. data/src/core/lib/security/security_connector/local/local_security_connector.cc +4 -1
  648. data/src/core/lib/security/security_connector/security_connector.cc +9 -4
  649. data/src/core/lib/security/security_connector/security_connector.h +1 -1
  650. data/src/core/lib/security/security_connector/ssl_utils.cc +11 -3
  651. data/src/core/lib/security/security_connector/ssl_utils.h +1 -1
  652. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +345 -195
  653. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +64 -43
  654. data/src/core/lib/security/transport/client_auth_filter.cc +5 -5
  655. data/src/core/lib/security/transport/security_handshaker.cc +75 -45
  656. data/src/core/lib/security/transport/server_auth_filter.cc +3 -5
  657. data/src/core/lib/security/transport/tsi_error.cc +3 -5
  658. data/src/core/lib/slice/percent_encoding.cc +30 -86
  659. data/src/core/lib/slice/percent_encoding.h +5 -11
  660. data/src/core/lib/slice/slice.cc +7 -23
  661. data/src/core/lib/slice/slice.h +341 -0
  662. data/src/core/lib/slice/slice_api.cc +39 -0
  663. data/src/core/lib/slice/slice_buffer.cc +9 -5
  664. data/src/core/lib/slice/slice_intern.cc +9 -14
  665. data/src/core/lib/slice/slice_internal.h +1 -244
  666. data/src/core/lib/slice/slice_refcount.cc +17 -0
  667. data/src/core/lib/slice/slice_refcount.h +125 -0
  668. data/src/core/lib/slice/slice_refcount_base.h +181 -0
  669. data/src/core/lib/slice/slice_split.cc +100 -0
  670. data/src/core/lib/slice/slice_split.h +40 -0
  671. data/src/core/lib/slice/slice_string_helpers.cc +0 -83
  672. data/src/core/lib/slice/slice_string_helpers.h +0 -11
  673. data/src/core/lib/slice/static_slice.cc +377 -0
  674. data/src/core/lib/slice/static_slice.h +300 -0
  675. data/src/core/lib/surface/builtins.cc +49 -0
  676. data/src/core/lib/surface/builtins.h +26 -0
  677. data/src/core/lib/surface/call.cc +171 -162
  678. data/src/core/lib/surface/call.h +0 -6
  679. data/src/core/lib/surface/channel.cc +23 -61
  680. data/src/core/lib/surface/channel.h +2 -21
  681. data/src/core/lib/surface/channel_init.cc +23 -76
  682. data/src/core/lib/surface/channel_init.h +52 -44
  683. data/src/core/lib/surface/completion_queue.cc +8 -7
  684. data/src/core/lib/surface/init.cc +0 -40
  685. data/src/core/lib/surface/init_secure.cc +17 -14
  686. data/src/core/lib/surface/lame_client.cc +41 -27
  687. data/src/core/lib/surface/lame_client.h +1 -1
  688. data/src/core/lib/surface/server.cc +45 -37
  689. data/src/core/lib/surface/server.h +25 -19
  690. data/src/core/lib/surface/validate_metadata.cc +7 -4
  691. data/src/core/lib/surface/version.cc +2 -2
  692. data/src/core/lib/transport/bdp_estimator.cc +2 -2
  693. data/src/core/lib/transport/byte_stream.cc +4 -0
  694. data/src/core/lib/transport/error_utils.cc +42 -17
  695. data/src/core/lib/transport/error_utils.h +1 -1
  696. data/src/core/lib/transport/metadata.cc +31 -10
  697. data/src/core/lib/transport/metadata.h +6 -5
  698. data/src/core/lib/transport/metadata_batch.cc +40 -371
  699. data/src/core/lib/transport/metadata_batch.h +980 -71
  700. data/src/core/lib/transport/{authority_override.cc → parsed_metadata.cc} +12 -17
  701. data/src/core/lib/transport/parsed_metadata.h +382 -0
  702. data/src/core/lib/transport/pid_controller.cc +4 -4
  703. data/src/core/lib/transport/static_metadata.cc +632 -849
  704. data/src/core/lib/transport/static_metadata.h +115 -397
  705. data/src/core/lib/transport/status_metadata.cc +1 -0
  706. data/src/core/lib/transport/transport.cc +8 -31
  707. data/src/core/lib/transport/transport.h +0 -1
  708. data/src/core/lib/transport/transport_op_string.cc +40 -20
  709. data/src/core/lib/uri/uri_parser.cc +19 -19
  710. data/src/core/lib/uri/uri_parser.h +2 -0
  711. data/src/core/plugin_registry/grpc_plugin_registry.cc +66 -43
  712. data/src/core/tsi/alts/crypt/aes_gcm.cc +3 -1
  713. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +13 -12
  714. data/src/core/tsi/alts/frame_protector/frame_handler.cc +10 -11
  715. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +2 -3
  716. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +12 -2
  717. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
  718. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +2 -2
  719. data/src/core/tsi/fake_transport_security.cc +15 -7
  720. data/src/core/tsi/local_transport_security.cc +43 -80
  721. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +16 -50
  722. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -3
  723. data/src/core/tsi/ssl_transport_security.cc +40 -3
  724. data/src/core/tsi/ssl_transport_security.h +1 -0
  725. data/src/core/tsi/transport_security.cc +12 -0
  726. data/src/core/tsi/transport_security.h +16 -1
  727. data/src/core/tsi/transport_security_interface.h +26 -0
  728. data/src/ruby/ext/grpc/extconf.rb +12 -9
  729. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +10 -10
  730. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +15 -15
  731. data/src/ruby/lib/grpc/version.rb +1 -1
  732. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -2
  733. data/src/ruby/spec/client_server_spec.rb +1 -1
  734. data/third_party/abseil-cpp/absl/algorithm/container.h +101 -91
  735. data/third_party/abseil-cpp/absl/base/attributes.h +64 -31
  736. data/third_party/abseil-cpp/absl/base/config.h +67 -37
  737. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +1 -26
  738. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +3 -1
  739. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +2 -0
  740. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +69 -0
  741. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +4 -4
  742. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +15 -10
  743. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +16 -0
  744. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +4 -4
  745. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  746. data/third_party/abseil-cpp/absl/container/fixed_array.h +0 -5
  747. data/third_party/abseil-cpp/absl/container/inlined_vector.h +105 -97
  748. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +17 -15
  749. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +18 -102
  750. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +37 -78
  751. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +388 -423
  752. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +3 -2
  753. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -8
  754. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +251 -120
  755. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +11 -1
  756. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +12 -11
  757. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +6 -2
  758. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +12 -5
  759. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +110 -0
  760. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +234 -0
  761. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -7
  762. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +8 -2
  763. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +21 -3
  764. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +2 -0
  765. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +2 -0
  766. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +14 -0
  767. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +72 -0
  768. data/third_party/abseil-cpp/absl/functional/function_ref.h +4 -1
  769. data/third_party/abseil-cpp/absl/hash/hash.h +22 -0
  770. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +15 -16
  771. data/third_party/abseil-cpp/absl/hash/internal/hash.h +88 -37
  772. data/third_party/abseil-cpp/absl/hash/internal/{wyhash.cc → low_level_hash.cc} +23 -11
  773. data/third_party/abseil-cpp/absl/hash/internal/{wyhash.h → low_level_hash.h} +14 -12
  774. data/third_party/abseil-cpp/absl/memory/memory.h +1 -1
  775. data/third_party/abseil-cpp/absl/meta/type_traits.h +32 -2
  776. data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -10
  777. data/third_party/abseil-cpp/absl/numeric/int128.h +146 -73
  778. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +19 -25
  779. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +73 -70
  780. data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.cc +4 -4
  781. data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.h +6 -6
  782. data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +230 -0
  783. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +5 -5
  784. data/third_party/abseil-cpp/absl/status/status.cc +9 -17
  785. data/third_party/abseil-cpp/absl/status/status.h +19 -15
  786. data/third_party/abseil-cpp/absl/status/statusor.cc +34 -2
  787. data/third_party/abseil-cpp/absl/status/statusor.h +31 -21
  788. data/third_party/abseil-cpp/absl/strings/charconv.cc +3 -3
  789. data/third_party/abseil-cpp/absl/strings/charconv.h +3 -2
  790. data/third_party/abseil-cpp/absl/strings/cord.cc +453 -359
  791. data/third_party/abseil-cpp/absl/strings/cord.h +197 -70
  792. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +1 -1
  793. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +6 -0
  794. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +140 -63
  795. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1128 -0
  796. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +939 -0
  797. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +185 -0
  798. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +265 -0
  799. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +68 -0
  800. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +211 -0
  801. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +129 -0
  802. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +50 -0
  803. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +7 -7
  804. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +55 -181
  805. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +42 -24
  806. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +4 -0
  807. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +96 -0
  808. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +85 -0
  809. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +139 -0
  810. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +131 -0
  811. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +445 -0
  812. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +298 -0
  813. data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +87 -0
  814. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
  815. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +121 -0
  816. data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +48 -2
  817. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +8 -0
  818. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +3 -4
  819. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +1 -1
  820. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +6 -6
  821. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +36 -18
  822. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +62 -73
  823. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +24 -16
  824. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +35 -35
  825. data/third_party/abseil-cpp/absl/strings/numbers.cc +1 -1
  826. data/third_party/abseil-cpp/absl/strings/numbers.h +34 -0
  827. data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
  828. data/third_party/abseil-cpp/absl/strings/str_format.h +1 -2
  829. data/third_party/abseil-cpp/absl/strings/string_view.cc +16 -21
  830. data/third_party/abseil-cpp/absl/strings/string_view.h +120 -39
  831. data/third_party/abseil-cpp/absl/strings/substitute.cc +2 -1
  832. data/third_party/abseil-cpp/absl/strings/substitute.h +99 -74
  833. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +25 -15
  834. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +5 -3
  835. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -1
  836. data/third_party/abseil-cpp/absl/synchronization/mutex.h +3 -3
  837. data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -3
  838. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +93 -20
  839. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
  840. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +2 -1
  841. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +83 -21
  842. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +49 -0
  843. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +1 -1
  844. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -3
  845. data/third_party/abseil-cpp/absl/time/time.h +67 -36
  846. data/third_party/abseil-cpp/absl/types/bad_optional_access.h +1 -1
  847. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +2 -2
  848. data/third_party/abseil-cpp/absl/types/span.h +3 -3
  849. data/third_party/address_sorting/address_sorting_posix.c +1 -0
  850. data/third_party/boringssl-with-bazel/err_data.c +684 -674
  851. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +19 -11
  852. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +21 -22
  853. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -2
  854. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +5 -0
  855. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +15 -22
  856. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +54 -37
  857. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +19 -29
  858. data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/a_strex.c +268 -271
  859. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +106 -153
  860. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +3 -3
  861. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +0 -39
  862. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +59 -47
  863. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +1 -1
  864. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +24 -28
  865. data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/charmap.h +0 -0
  866. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +5 -0
  867. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +66 -0
  868. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +56 -280
  869. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +289 -198
  870. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +8 -8
  871. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +9 -13
  872. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +8 -6
  873. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +1 -0
  874. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +11 -8
  875. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +1 -7
  876. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +1 -5
  877. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -4
  878. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +1 -7
  879. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -6
  880. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -17
  881. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +4 -6
  882. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +3 -1
  883. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +9 -0
  884. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +8 -0
  885. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +38 -47
  886. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +45 -65
  887. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +1 -0
  888. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +2 -2
  889. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +32 -34
  890. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +21 -3
  891. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +3 -2
  892. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +5 -2
  893. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +5 -9
  894. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +10 -0
  895. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +10 -11
  896. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +1 -3
  897. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +4 -7
  898. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +4 -7
  899. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +1 -1
  900. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +1 -1
  901. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +24 -9
  902. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +4 -2
  903. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +7 -7
  904. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +35 -35
  905. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +11 -10
  906. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +10 -37
  907. data/third_party/boringssl-with-bazel/src/crypto/internal.h +39 -0
  908. data/third_party/boringssl-with-bazel/src/crypto/mem.c +30 -9
  909. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +0 -9
  910. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +0 -2
  911. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +0 -8
  912. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +0 -2
  913. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +0 -4
  914. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +16 -7
  915. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +9 -4
  916. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +151 -12
  917. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +1 -1
  918. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +5 -1
  919. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +59 -23
  920. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +6 -6
  921. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +2 -18
  922. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +2 -0
  923. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +189 -3
  924. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +246 -0
  925. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +11 -2
  926. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +0 -2
  927. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +0 -179
  928. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +4 -2
  929. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +0 -5
  930. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -0
  931. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +11 -50
  932. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +1 -1
  933. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +2 -4
  934. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +0 -16
  935. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +22 -18
  936. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +11 -8
  937. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +232 -11
  938. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +2 -1
  939. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +2 -2
  940. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +1 -1
  941. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +2 -1
  942. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +1 -1
  943. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +5 -4
  944. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +24 -5
  945. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +18 -8
  946. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -0
  947. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +6 -7
  948. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +4 -0
  949. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +5 -0
  950. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +21 -4
  951. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +112 -55
  952. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +2 -1
  953. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +0 -2
  954. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
  955. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +71 -26
  956. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +1326 -469
  957. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +5 -12
  958. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +10 -5
  959. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +3 -1
  960. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +3 -3
  961. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +9 -0
  962. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +8 -2
  963. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -12
  964. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +17 -41
  965. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +12 -27
  966. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +8 -10
  967. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +29 -55
  968. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +4 -0
  969. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +9 -3
  970. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -20
  971. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +15 -14
  972. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +7 -1
  973. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +29 -28
  974. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +37 -15
  975. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +34 -23
  976. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +31 -32
  977. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +541 -134
  978. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +16 -695
  979. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +52 -11
  980. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +266 -357
  981. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +90 -152
  982. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +15 -13
  983. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +75 -79
  984. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +96 -97
  985. data/third_party/boringssl-with-bazel/src/ssl/internal.h +66 -46
  986. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +2 -2
  987. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +2 -2
  988. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +6 -12
  989. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +4 -0
  990. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +14 -17
  991. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +14 -27
  992. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +203 -203
  993. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +30 -41
  994. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +47 -33
  995. data/third_party/re2/re2/compile.cc +91 -109
  996. data/third_party/re2/re2/dfa.cc +27 -39
  997. data/third_party/re2/re2/filtered_re2.cc +18 -2
  998. data/third_party/re2/re2/filtered_re2.h +10 -5
  999. data/third_party/re2/re2/nfa.cc +1 -1
  1000. data/third_party/re2/re2/parse.cc +42 -23
  1001. data/third_party/re2/re2/perl_groups.cc +34 -34
  1002. data/third_party/re2/re2/prefilter.cc +3 -2
  1003. data/third_party/re2/re2/prog.cc +182 -4
  1004. data/third_party/re2/re2/prog.h +28 -9
  1005. data/third_party/re2/re2/re2.cc +87 -118
  1006. data/third_party/re2/re2/re2.h +156 -141
  1007. data/third_party/re2/re2/regexp.cc +12 -5
  1008. data/third_party/re2/re2/regexp.h +8 -2
  1009. data/third_party/re2/re2/set.cc +31 -9
  1010. data/third_party/re2/re2/set.h +9 -4
  1011. data/third_party/re2/re2/simplify.cc +11 -3
  1012. data/third_party/re2/re2/tostring.cc +1 -1
  1013. data/third_party/re2/re2/walker-inl.h +1 -1
  1014. data/third_party/re2/util/mutex.h +2 -2
  1015. data/third_party/re2/util/pcre.h +3 -3
  1016. data/third_party/upb/upb/decode.c +309 -178
  1017. data/third_party/upb/upb/decode_fast.c +1 -1
  1018. data/third_party/upb/upb/decode_internal.h +1 -0
  1019. data/third_party/upb/upb/def.c +330 -85
  1020. data/third_party/upb/upb/def.h +45 -14
  1021. data/third_party/upb/upb/def.hpp +17 -4
  1022. data/third_party/upb/upb/encode.c +100 -40
  1023. data/third_party/upb/upb/msg.c +22 -9
  1024. data/third_party/upb/upb/msg_internal.h +90 -8
  1025. data/third_party/upb/upb/reflection.c +98 -58
  1026. data/third_party/upb/upb/reflection.h +6 -2
  1027. data/third_party/upb/upb/text_encode.c +3 -3
  1028. data/third_party/upb/upb/upb.c +8 -0
  1029. metadata +160 -87
  1030. data/include/grpc/event_engine/slice_allocator.h +0 -71
  1031. data/src/core/ext/filters/client_channel/service_config_call_data.h +0 -126
  1032. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +0 -211
  1033. data/src/core/ext/filters/workarounds/workaround_utils.cc +0 -53
  1034. data/src/core/ext/filters/workarounds/workaround_utils.h +0 -39
  1035. data/src/core/ext/transport/chttp2/client/authority.cc +0 -42
  1036. data/src/core/ext/transport/chttp2/client/authority.h +0 -36
  1037. data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.cc +0 -67
  1038. data/src/core/ext/transport/chttp2/transport/chttp2_slice_allocator.h +0 -74
  1039. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +0 -66
  1040. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +0 -58
  1041. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +0 -58
  1042. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +0 -130
  1043. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +0 -33
  1044. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +0 -83
  1045. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +0 -44
  1046. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +0 -35
  1047. data/src/core/lib/avl/avl.cc +0 -306
  1048. data/src/core/lib/gprpp/match.h +0 -73
  1049. data/src/core/lib/gprpp/overload.h +0 -59
  1050. data/src/core/lib/iomgr/event_engine/iomgr.h +0 -42
  1051. data/src/core/lib/iomgr/resource_quota.cc +0 -1104
  1052. data/src/core/lib/iomgr/resource_quota.h +0 -226
  1053. data/src/core/lib/iomgr/udp_server.cc +0 -747
  1054. data/src/core/lib/iomgr/udp_server.h +0 -103
  1055. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +0 -93
  1056. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +0 -217
@@ -82,7 +82,7 @@
82
82
  #include <openssl/thread.h>
83
83
  #include <time.h>
84
84
 
85
- #ifdef __cplusplus
85
+ #if defined(__cplusplus)
86
86
  extern "C" {
87
87
  #endif
88
88
 
@@ -110,28 +110,19 @@ extern "C" {
110
110
  #define X509v3_KU_DECIPHER_ONLY 0x8000
111
111
  #define X509v3_KU_UNDEF 0xffff
112
112
 
113
+ struct X509_algor_st {
114
+ ASN1_OBJECT *algorithm;
115
+ ASN1_TYPE *parameter;
116
+ } /* X509_ALGOR */;
117
+
118
+ DECLARE_ASN1_FUNCTIONS(X509_ALGOR)
119
+
113
120
  DEFINE_STACK_OF(X509_ALGOR)
114
121
 
115
122
  typedef STACK_OF(X509_ALGOR) X509_ALGORS;
116
123
 
117
- struct X509_name_entry_st {
118
- ASN1_OBJECT *object;
119
- ASN1_STRING *value;
120
- int set;
121
- } /* X509_NAME_ENTRY */;
122
-
123
124
  DEFINE_STACK_OF(X509_NAME_ENTRY)
124
125
 
125
- // we always keep X509_NAMEs in 2 forms.
126
- struct X509_name_st {
127
- STACK_OF(X509_NAME_ENTRY) *entries;
128
- int modified; // true if 'bytes' needs to be built
129
- BUF_MEM *bytes;
130
- // unsigned long hash; Keep the hash around for lookups
131
- unsigned char *canon_enc;
132
- int canon_enclen;
133
- } /* X509_NAME */;
134
-
135
126
  DEFINE_STACK_OF(X509_NAME)
136
127
 
137
128
  typedef STACK_OF(X509_EXTENSION) X509_EXTENSIONS;
@@ -140,20 +131,6 @@ DEFINE_STACK_OF(X509_EXTENSION)
140
131
 
141
132
  DEFINE_STACK_OF(X509_ATTRIBUTE)
142
133
 
143
- struct x509_cinf_st {
144
- ASN1_INTEGER *version; // [ 0 ] default of v1
145
- ASN1_INTEGER *serialNumber;
146
- X509_ALGOR *signature;
147
- X509_NAME *issuer;
148
- X509_VAL *validity;
149
- X509_NAME *subject;
150
- X509_PUBKEY *key;
151
- ASN1_BIT_STRING *issuerUID; // [ 1 ] optional in v2
152
- ASN1_BIT_STRING *subjectUID; // [ 2 ] optional in v2
153
- STACK_OF(X509_EXTENSION) *extensions; // [ 3 ] optional in v3
154
- ASN1_ENCODING enc;
155
- } /* X509_CINF */;
156
-
157
134
  // This stuff is certificate "auxiliary info"
158
135
  // it contains details which are useful in certificate
159
136
  // stores and databases. When used this is tagged onto
@@ -162,31 +139,6 @@ struct x509_cinf_st {
162
139
  DECLARE_STACK_OF(DIST_POINT)
163
140
  DECLARE_STACK_OF(GENERAL_NAME)
164
141
 
165
- struct x509_st {
166
- X509_CINF *cert_info;
167
- X509_ALGOR *sig_alg;
168
- ASN1_BIT_STRING *signature;
169
- CRYPTO_refcount_t references;
170
- CRYPTO_EX_DATA ex_data;
171
- // These contain copies of various extension values
172
- long ex_pathlen;
173
- long ex_pcpathlen;
174
- unsigned long ex_flags;
175
- unsigned long ex_kusage;
176
- unsigned long ex_xkusage;
177
- unsigned long ex_nscert;
178
- ASN1_OCTET_STRING *skid;
179
- AUTHORITY_KEYID *akid;
180
- X509_POLICY_CACHE *policy_cache;
181
- STACK_OF(DIST_POINT) *crldp;
182
- STACK_OF(GENERAL_NAME) *altname;
183
- NAME_CONSTRAINTS *nc;
184
- unsigned char sha1_hash[SHA_DIGEST_LENGTH];
185
- X509_CERT_AUX *aux;
186
- CRYPTO_BUFFER *buf;
187
- CRYPTO_MUTEX lock;
188
- } /* X509 */;
189
-
190
142
  DEFINE_STACK_OF(X509)
191
143
 
192
144
  // This is used for a table of trust checking functions
@@ -254,7 +206,7 @@ DEFINE_STACK_OF(X509_TRUST)
254
206
  #define XN_FLAG_SEP_MASK (0xf << 16)
255
207
 
256
208
  #define XN_FLAG_COMPAT 0 // Traditional SSLeay: use old X509_NAME_print
257
- #define XN_FLAG_SEP_COMMA_PLUS (1 << 16) // RFC2253 ,+
209
+ #define XN_FLAG_SEP_COMMA_PLUS (1 << 16) // RFC 2253 ,+
258
210
  #define XN_FLAG_SEP_CPLUS_SPC (2 << 16) // ,+ spaced: more readable
259
211
  #define XN_FLAG_SEP_SPLUS_SPC (3 << 16) // ;+ spaced
260
212
  #define XN_FLAG_SEP_MULTILINE (4 << 16) // One line per field
@@ -273,13 +225,13 @@ DEFINE_STACK_OF(X509_TRUST)
273
225
  #define XN_FLAG_SPC_EQ (1 << 23) // Put spaces round '='
274
226
 
275
227
  // This determines if we dump fields we don't recognise:
276
- // RFC2253 requires this.
228
+ // RFC 2253 requires this.
277
229
 
278
230
  #define XN_FLAG_DUMP_UNKNOWN_FIELDS (1 << 24)
279
231
 
280
232
  #define XN_FLAG_FN_ALIGN (1 << 25) // Align field names to 20 characters
281
233
 
282
- // Complete set of RFC2253 flags
234
+ // Complete set of RFC 2253 flags
283
235
 
284
236
  #define XN_FLAG_RFC2253 \
285
237
  (ASN1_STRFLGS_RFC2253 | XN_FLAG_SEP_COMMA_PLUS | XN_FLAG_DN_REV | \
@@ -332,7 +284,6 @@ struct private_key_st {
332
284
  EVP_CIPHER_INFO cipher;
333
285
  } /* X509_PKEY */;
334
286
 
335
- #ifndef OPENSSL_NO_EVP
336
287
  struct X509_info_st {
337
288
  X509 *x509;
338
289
  X509_CRL *crl;
@@ -345,7 +296,6 @@ struct X509_info_st {
345
296
  } /* X509_INFO */;
346
297
 
347
298
  DEFINE_STACK_OF(X509_INFO)
348
- #endif
349
299
 
350
300
  // The next 2 structures and their 8 routines were sent to me by
351
301
  // Pat Richard <patr@x509.com> and are used to manipulate
@@ -361,16 +311,6 @@ struct Netscape_spki_st {
361
311
  ASN1_BIT_STRING *signature;
362
312
  } /* NETSCAPE_SPKI */;
363
313
 
364
- #ifdef __cplusplus
365
- }
366
- #endif
367
-
368
- #include <openssl/x509_vfy.h>
369
-
370
- #ifdef __cplusplus
371
- extern "C" {
372
- #endif
373
-
374
314
  // TODO(davidben): Document remaining functions, reorganize them, and define
375
315
  // supported patterns for using |X509| objects in general. In particular, when
376
316
  // it is safe to call mutating functions is a little tricky due to various
@@ -456,7 +396,7 @@ OPENSSL_EXPORT void X509_get0_uids(const X509 *x509,
456
396
  #define X509_extract_key(x) X509_get_pubkey(x)
457
397
 
458
398
  // X509_get_pathlen returns path length constraint from the basic constraints
459
- // extension in |x509|. (See RFC5280, section 4.2.1.9.) It returns -1 if the
399
+ // extension in |x509|. (See RFC 5280, section 4.2.1.9.) It returns -1 if the
460
400
  // constraint is not present, or if some extension in |x509| was invalid.
461
401
  //
462
402
  // Note that decoding an |X509| object will not check for invalid extensions. To
@@ -570,9 +510,6 @@ OPENSSL_EXPORT X509_PUBKEY *X509_get_X509_PUBKEY(const X509 *x509);
570
510
  // X509_verify_cert_error_string returns |err| as a human-readable string, where
571
511
  // |err| should be one of the |X509_V_*| values. If |err| is unknown, it returns
572
512
  // a default description.
573
- //
574
- // TODO(davidben): Move this function to x509_vfy.h, with the |X509_V_*|
575
- // definitions, or fold x509_vfy.h into this function.
576
513
  OPENSSL_EXPORT const char *X509_verify_cert_error_string(long err);
577
514
 
578
515
  // X509_verify checks that |x509| has a valid signature by |pkey|. It returns
@@ -724,7 +661,6 @@ OPENSSL_EXPORT int X509_NAME_digest(const X509_NAME *name, const EVP_MD *md,
724
661
  // copying parts of it as a normal |d2i_X509| call would do.
725
662
  OPENSSL_EXPORT X509 *X509_parse_from_buffer(CRYPTO_BUFFER *buf);
726
663
 
727
- #ifndef OPENSSL_NO_FP_API
728
664
  OPENSSL_EXPORT X509 *d2i_X509_fp(FILE *fp, X509 **x509);
729
665
  OPENSSL_EXPORT int i2d_X509_fp(FILE *fp, X509 *x509);
730
666
  OPENSSL_EXPORT X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl);
@@ -758,7 +694,6 @@ OPENSSL_EXPORT int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey);
758
694
  OPENSSL_EXPORT EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a);
759
695
  OPENSSL_EXPORT int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey);
760
696
  OPENSSL_EXPORT EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a);
761
- #endif
762
697
 
763
698
  OPENSSL_EXPORT X509 *d2i_X509_bio(BIO *bp, X509 **x509);
764
699
  OPENSSL_EXPORT int i2d_X509_bio(BIO *bp, X509 *x509);
@@ -860,12 +795,30 @@ OPENSSL_EXPORT int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne);
860
795
  OPENSSL_EXPORT int X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder,
861
796
  size_t *pderlen);
862
797
 
798
+ // X509_cmp_time compares |s| against |*t|. On success, it returns a negative
799
+ // number if |s| <= |*t| and a positive number if |s| > |*t|. On error, it
800
+ // returns zero. If |t| is NULL, it uses the current time instead of |*t|.
801
+ //
802
+ // WARNING: Unlike most comparison functions, this function returns zero on
803
+ // error, not equality.
863
804
  OPENSSL_EXPORT int X509_cmp_time(const ASN1_TIME *s, time_t *t);
805
+
806
+ // X509_cmp_current_time behaves like |X509_cmp_time| but compares |s| against
807
+ // the current time.
864
808
  OPENSSL_EXPORT int X509_cmp_current_time(const ASN1_TIME *s);
865
- OPENSSL_EXPORT ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t);
809
+
810
+ // X509_time_adj calls |X509_time_adj_ex| with |offset_day| equal to zero.
811
+ OPENSSL_EXPORT ASN1_TIME *X509_time_adj(ASN1_TIME *s, long offset_sec,
812
+ time_t *t);
813
+
814
+ // X509_time_adj_ex behaves like |ASN1_TIME_adj|, but adds an offset to |*t|. If
815
+ // |t| is NULL, it uses the current time instead of |*t|.
866
816
  OPENSSL_EXPORT ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, int offset_day,
867
817
  long offset_sec, time_t *t);
868
- OPENSSL_EXPORT ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj);
818
+
819
+ // X509_gmtime_adj behaves like |X509_time_adj_ex| but adds |offset_sec| to the
820
+ // current time.
821
+ OPENSSL_EXPORT ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long offset_sec);
869
822
 
870
823
  OPENSSL_EXPORT const char *X509_get_default_cert_area(void);
871
824
  OPENSSL_EXPORT const char *X509_get_default_cert_dir(void);
@@ -878,11 +831,18 @@ OPENSSL_EXPORT X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey,
878
831
  const EVP_MD *md);
879
832
 
880
833
  DECLARE_ASN1_ENCODE_FUNCTIONS(X509_ALGORS, X509_ALGORS, X509_ALGORS)
881
- DECLARE_ASN1_FUNCTIONS(X509_VAL)
882
834
 
883
835
  DECLARE_ASN1_FUNCTIONS(X509_PUBKEY)
884
836
 
837
+ // X509_PUBKEY_set serializes |pkey| into a newly-allocated |X509_PUBKEY|
838
+ // structure. On success, it frees |*x|, sets |*x| to the new object, and
839
+ // returns one. Otherwise, it returns zero.
885
840
  OPENSSL_EXPORT int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey);
841
+
842
+ // X509_PUBKEY_get decodes the public key in |key| and returns an |EVP_PKEY| on
843
+ // success, or NULL on error. The caller must release the result with
844
+ // |EVP_PKEY_free| when done. The |EVP_PKEY| is cached in |key|, so callers must
845
+ // not mutate the result.
886
846
  OPENSSL_EXPORT EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key);
887
847
 
888
848
  DECLARE_ASN1_FUNCTIONS(X509_SIG)
@@ -904,10 +864,10 @@ DECLARE_ASN1_FUNCTIONS(X509_NAME_ENTRY)
904
864
 
905
865
  DECLARE_ASN1_FUNCTIONS(X509_NAME)
906
866
 
867
+ // X509_NAME_set makes a copy of |name|. On success, it frees |*xn|, sets |*xn|
868
+ // to the copy, and returns one. Otherwise, it returns zero.
907
869
  OPENSSL_EXPORT int X509_NAME_set(X509_NAME **xn, X509_NAME *name);
908
870
 
909
- DECLARE_ASN1_FUNCTIONS(X509_CINF)
910
-
911
871
  DECLARE_ASN1_FUNCTIONS(X509)
912
872
  DECLARE_ASN1_FUNCTIONS(X509_CERT_AUX)
913
873
 
@@ -924,28 +884,16 @@ OPENSSL_EXPORT int i2d_X509_AUX(X509 *a, unsigned char **pp);
924
884
  OPENSSL_EXPORT X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp,
925
885
  long length);
926
886
 
927
- // i2d_re_X509_tbs serializes the TBSCertificate portion of |x509|. If |outp| is
928
- // NULL, nothing is written. Otherwise, if |*outp| is not NULL, the result is
929
- // written to |*outp|, which must have enough space available, and |*outp| is
930
- // advanced just past the output. If |outp| is non-NULL and |*outp| is NULL, it
931
- // sets |*outp| to a newly-allocated buffer containing the result. The caller is
932
- // responsible for releasing the buffer with |OPENSSL_free|. In all cases, this
933
- // function returns the number of bytes in the result, whether written or not,
934
- // or a negative value on error.
887
+ // i2d_re_X509_tbs serializes the TBSCertificate portion of |x509|, as described
888
+ // in |i2d_SAMPLE|.
935
889
  //
936
890
  // This function re-encodes the TBSCertificate and may not reflect |x509|'s
937
891
  // original encoding. It may be used to manually generate a signature for a new
938
892
  // certificate. To verify certificates, use |i2d_X509_tbs| instead.
939
893
  OPENSSL_EXPORT int i2d_re_X509_tbs(X509 *x509, unsigned char **outp);
940
894
 
941
- // i2d_X509_tbs serializes the TBSCertificate portion of |x509|. If |outp| is
942
- // NULL, nothing is written. Otherwise, if |*outp| is not NULL, the result is
943
- // written to |*outp|, which must have enough space available, and |*outp| is
944
- // advanced just past the output. If |outp| is non-NULL and |*outp| is NULL, it
945
- // sets |*outp| to a newly-allocated buffer containing the result. The caller is
946
- // responsible for releasing the buffer with |OPENSSL_free|. In all cases, this
947
- // function returns the number of bytes in the result, whether written or not,
948
- // or a negative value on error.
895
+ // i2d_X509_tbs serializes the TBSCertificate portion of |x509|, as described in
896
+ // |i2d_SAMPLE|.
949
897
  //
950
898
  // This function preserves the original encoding of the TBSCertificate and may
951
899
  // not reflect modifications made to |x509|. It may be used to manually verify
@@ -1111,14 +1059,8 @@ OPENSSL_EXPORT void X509_REQ_get0_signature(const X509_REQ *req,
1111
1059
  // a known NID.
1112
1060
  OPENSSL_EXPORT int X509_REQ_get_signature_nid(const X509_REQ *req);
1113
1061
 
1114
- // i2d_re_X509_REQ_tbs serializes the CertificationRequestInfo (see RFC2986)
1115
- // portion of |req|. If |outp| is NULL, nothing is written. Otherwise, if
1116
- // |*outp| is not NULL, the result is written to |*outp|, which must have enough
1117
- // space available, and |*outp| is advanced just past the output. If |outp| is
1118
- // non-NULL and |*outp| is NULL, it sets |*outp| to a newly-allocated buffer
1119
- // containing the result. The caller is responsible for releasing the buffer
1120
- // with |OPENSSL_free|. In all cases, this function returns the number of bytes
1121
- // in the result, whether written or not, or a negative value on error.
1062
+ // i2d_re_X509_REQ_tbs serializes the CertificationRequestInfo (see RFC 2986)
1063
+ // portion of |req|, as described in |i2d_SAMPLE|.
1122
1064
  //
1123
1065
  // This function re-encodes the CertificationRequestInfo and may not reflect
1124
1066
  // |req|'s original encoding. It may be used to manually generate a signature
@@ -1138,7 +1080,7 @@ OPENSSL_EXPORT EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req);
1138
1080
 
1139
1081
  // X509_REQ_extension_nid returns one if |nid| is a supported CSR attribute type
1140
1082
  // for carrying extensions and zero otherwise. The supported types are
1141
- // |NID_ext_req| (pkcs-9-at-extensionRequest from RFC2985) and |NID_ms_ext_req|
1083
+ // |NID_ext_req| (pkcs-9-at-extensionRequest from RFC 2985) and |NID_ms_ext_req|
1142
1084
  // (a Microsoft szOID_CERT_EXTENSIONS variant).
1143
1085
  OPENSSL_EXPORT int X509_REQ_extension_nid(int nid);
1144
1086
 
@@ -1146,7 +1088,7 @@ OPENSSL_EXPORT int X509_REQ_extension_nid(int nid);
1146
1088
  // returns a newly-allocated |STACK_OF(X509_EXTENSION)| containing the result.
1147
1089
  // It returns NULL on error, or if |req| did not request extensions.
1148
1090
  //
1149
- // This function supports both pkcs-9-at-extensionRequest from RFC2985 and the
1091
+ // This function supports both pkcs-9-at-extensionRequest from RFC 2985 and the
1150
1092
  // Microsoft szOID_CERT_EXTENSIONS variant.
1151
1093
  OPENSSL_EXPORT STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req);
1152
1094
 
@@ -1256,28 +1198,16 @@ OPENSSL_EXPORT void X509_CRL_get0_signature(const X509_CRL *crl,
1256
1198
  // a known NID.
1257
1199
  OPENSSL_EXPORT int X509_CRL_get_signature_nid(const X509_CRL *crl);
1258
1200
 
1259
- // i2d_re_X509_CRL_tbs serializes the TBSCertList portion of |crl|. If |outp| is
1260
- // NULL, nothing is written. Otherwise, if |*outp| is not NULL, the result is
1261
- // written to |*outp|, which must have enough space available, and |*outp| is
1262
- // advanced just past the output. If |outp| is non-NULL and |*outp| is NULL, it
1263
- // sets |*outp| to a newly-allocated buffer containing the result. The caller is
1264
- // responsible for releasing the buffer with |OPENSSL_free|. In all cases, this
1265
- // function returns the number of bytes in the result, whether written or not,
1266
- // or a negative value on error.
1201
+ // i2d_re_X509_CRL_tbs serializes the TBSCertList portion of |crl|, as described
1202
+ // in |i2d_SAMPLE|.
1267
1203
  //
1268
1204
  // This function re-encodes the TBSCertList and may not reflect |crl|'s original
1269
1205
  // encoding. It may be used to manually generate a signature for a new CRL. To
1270
1206
  // verify CRLs, use |i2d_X509_CRL_tbs| instead.
1271
1207
  OPENSSL_EXPORT int i2d_re_X509_CRL_tbs(X509_CRL *crl, unsigned char **outp);
1272
1208
 
1273
- // i2d_X509_CRL_tbs serializes the TBSCertList portion of |crl|. If |outp| is
1274
- // NULL, nothing is written. Otherwise, if |*outp| is not NULL, the result is
1275
- // written to |*outp|, which must have enough space available, and |*outp| is
1276
- // advanced just past the output. If |outp| is non-NULL and |*outp| is NULL, it
1277
- // sets |*outp| to a newly-allocated buffer containing the result. The caller is
1278
- // responsible for releasing the buffer with |OPENSSL_free|. In all cases, this
1279
- // function returns the number of bytes in the result, whether written or not,
1280
- // or a negative value on error.
1209
+ // i2d_X509_CRL_tbs serializes the TBSCertList portion of |crl|, as described in
1210
+ // |i2d_SAMPLE|.
1281
1211
  //
1282
1212
  // This function preserves the original encoding of the TBSCertList and may not
1283
1213
  // reflect modifications made to |crl|. It may be used to manually verify the
@@ -1366,7 +1296,6 @@ OPENSSL_EXPORT unsigned long X509_NAME_hash_old(X509_NAME *x);
1366
1296
 
1367
1297
  OPENSSL_EXPORT int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b);
1368
1298
  OPENSSL_EXPORT int X509_CRL_match(const X509_CRL *a, const X509_CRL *b);
1369
- #ifndef OPENSSL_NO_FP_API
1370
1299
  OPENSSL_EXPORT int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag,
1371
1300
  unsigned long cflag);
1372
1301
  OPENSSL_EXPORT int X509_print_fp(FILE *bp, X509 *x);
@@ -1374,7 +1303,6 @@ OPENSSL_EXPORT int X509_CRL_print_fp(FILE *bp, X509_CRL *x);
1374
1303
  OPENSSL_EXPORT int X509_REQ_print_fp(FILE *bp, X509_REQ *req);
1375
1304
  OPENSSL_EXPORT int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm,
1376
1305
  int indent, unsigned long flags);
1377
- #endif
1378
1306
 
1379
1307
  OPENSSL_EXPORT int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase);
1380
1308
  OPENSSL_EXPORT int X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent,
@@ -1913,19 +1841,502 @@ OPENSSL_EXPORT char *X509_TRUST_get0_name(const X509_TRUST *xp);
1913
1841
  OPENSSL_EXPORT int X509_TRUST_get_trust(const X509_TRUST *xp);
1914
1842
 
1915
1843
 
1916
- typedef struct rsa_pss_params_st {
1844
+ struct rsa_pss_params_st {
1917
1845
  X509_ALGOR *hashAlgorithm;
1918
1846
  X509_ALGOR *maskGenAlgorithm;
1919
1847
  ASN1_INTEGER *saltLength;
1920
1848
  ASN1_INTEGER *trailerField;
1921
- } RSA_PSS_PARAMS;
1849
+ // OpenSSL caches the MGF hash on |RSA_PSS_PARAMS| in some cases. None of the
1850
+ // cases apply to BoringSSL, so this is always NULL, but Node expects the
1851
+ // field to be present.
1852
+ X509_ALGOR *maskHash;
1853
+ } /* RSA_PSS_PARAMS */;
1922
1854
 
1923
1855
  DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS)
1924
1856
 
1857
+ /*
1858
+ SSL_CTX -> X509_STORE
1859
+ -> X509_LOOKUP
1860
+ ->X509_LOOKUP_METHOD
1861
+ -> X509_LOOKUP
1862
+ ->X509_LOOKUP_METHOD
1863
+
1864
+ SSL -> X509_STORE_CTX
1865
+ ->X509_STORE
1866
+
1867
+ The X509_STORE holds the tables etc for verification stuff.
1868
+ A X509_STORE_CTX is used while validating a single certificate.
1869
+ The X509_STORE has X509_LOOKUPs for looking up certs.
1870
+ The X509_STORE then calls a function to actually verify the
1871
+ certificate chain.
1872
+ */
1873
+
1874
+ #define X509_LU_X509 1
1875
+ #define X509_LU_CRL 2
1876
+ #define X509_LU_PKEY 3
1877
+
1878
+ DEFINE_STACK_OF(X509_LOOKUP)
1879
+ DEFINE_STACK_OF(X509_OBJECT)
1880
+ DEFINE_STACK_OF(X509_VERIFY_PARAM)
1881
+
1882
+ typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *);
1883
+ typedef int (*X509_STORE_CTX_verify_fn)(X509_STORE_CTX *);
1884
+ typedef int (*X509_STORE_CTX_get_issuer_fn)(X509 **issuer, X509_STORE_CTX *ctx,
1885
+ X509 *x);
1886
+ typedef int (*X509_STORE_CTX_check_issued_fn)(X509_STORE_CTX *ctx, X509 *x,
1887
+ X509 *issuer);
1888
+ typedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx);
1889
+ typedef int (*X509_STORE_CTX_get_crl_fn)(X509_STORE_CTX *ctx, X509_CRL **crl,
1890
+ X509 *x);
1891
+ typedef int (*X509_STORE_CTX_check_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl);
1892
+ typedef int (*X509_STORE_CTX_cert_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl,
1893
+ X509 *x);
1894
+ typedef int (*X509_STORE_CTX_check_policy_fn)(X509_STORE_CTX *ctx);
1895
+ typedef STACK_OF(X509) *(*X509_STORE_CTX_lookup_certs_fn)(X509_STORE_CTX *ctx,
1896
+ X509_NAME *nm);
1897
+ typedef STACK_OF(X509_CRL) *(*X509_STORE_CTX_lookup_crls_fn)(
1898
+ X509_STORE_CTX *ctx, X509_NAME *nm);
1899
+ typedef int (*X509_STORE_CTX_cleanup_fn)(X509_STORE_CTX *ctx);
1900
+
1901
+ OPENSSL_EXPORT int X509_STORE_set_depth(X509_STORE *store, int depth);
1902
+
1903
+ OPENSSL_EXPORT void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth);
1904
+
1905
+ #define X509_STORE_CTX_set_app_data(ctx, data) \
1906
+ X509_STORE_CTX_set_ex_data(ctx, 0, data)
1907
+ #define X509_STORE_CTX_get_app_data(ctx) X509_STORE_CTX_get_ex_data(ctx, 0)
1908
+
1909
+ #define X509_L_FILE_LOAD 1
1910
+ #define X509_L_ADD_DIR 2
1911
+
1912
+ #define X509_LOOKUP_load_file(x, name, type) \
1913
+ X509_LOOKUP_ctrl((x), X509_L_FILE_LOAD, (name), (long)(type), NULL)
1914
+
1915
+ #define X509_LOOKUP_add_dir(x, name, type) \
1916
+ X509_LOOKUP_ctrl((x), X509_L_ADD_DIR, (name), (long)(type), NULL)
1917
+
1918
+ #define X509_V_OK 0
1919
+ #define X509_V_ERR_UNSPECIFIED 1
1920
+
1921
+ #define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2
1922
+ #define X509_V_ERR_UNABLE_TO_GET_CRL 3
1923
+ #define X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4
1924
+ #define X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5
1925
+ #define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6
1926
+ #define X509_V_ERR_CERT_SIGNATURE_FAILURE 7
1927
+ #define X509_V_ERR_CRL_SIGNATURE_FAILURE 8
1928
+ #define X509_V_ERR_CERT_NOT_YET_VALID 9
1929
+ #define X509_V_ERR_CERT_HAS_EXPIRED 10
1930
+ #define X509_V_ERR_CRL_NOT_YET_VALID 11
1931
+ #define X509_V_ERR_CRL_HAS_EXPIRED 12
1932
+ #define X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13
1933
+ #define X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14
1934
+ #define X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15
1935
+ #define X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16
1936
+ #define X509_V_ERR_OUT_OF_MEM 17
1937
+ #define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18
1938
+ #define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19
1939
+ #define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20
1940
+ #define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21
1941
+ #define X509_V_ERR_CERT_CHAIN_TOO_LONG 22
1942
+ #define X509_V_ERR_CERT_REVOKED 23
1943
+ #define X509_V_ERR_INVALID_CA 24
1944
+ #define X509_V_ERR_PATH_LENGTH_EXCEEDED 25
1945
+ #define X509_V_ERR_INVALID_PURPOSE 26
1946
+ #define X509_V_ERR_CERT_UNTRUSTED 27
1947
+ #define X509_V_ERR_CERT_REJECTED 28
1948
+ // These are 'informational' when looking for issuer cert
1949
+ #define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29
1950
+ #define X509_V_ERR_AKID_SKID_MISMATCH 30
1951
+ #define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31
1952
+ #define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32
1953
+
1954
+ #define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33
1955
+ #define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34
1956
+ #define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35
1957
+ #define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36
1958
+ #define X509_V_ERR_INVALID_NON_CA 37
1959
+ #define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38
1960
+ #define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39
1961
+ #define X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40
1962
+
1963
+ #define X509_V_ERR_INVALID_EXTENSION 41
1964
+ #define X509_V_ERR_INVALID_POLICY_EXTENSION 42
1965
+ #define X509_V_ERR_NO_EXPLICIT_POLICY 43
1966
+ #define X509_V_ERR_DIFFERENT_CRL_SCOPE 44
1967
+ #define X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE 45
1968
+
1969
+ #define X509_V_ERR_UNNESTED_RESOURCE 46
1970
+
1971
+ #define X509_V_ERR_PERMITTED_VIOLATION 47
1972
+ #define X509_V_ERR_EXCLUDED_VIOLATION 48
1973
+ #define X509_V_ERR_SUBTREE_MINMAX 49
1974
+ #define X509_V_ERR_APPLICATION_VERIFICATION 50
1975
+ #define X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE 51
1976
+ #define X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX 52
1977
+ #define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53
1978
+ #define X509_V_ERR_CRL_PATH_VALIDATION_ERROR 54
1979
+
1980
+ // Suite B mode algorithm violation
1981
+ #define X509_V_ERR_SUITE_B_INVALID_VERSION 56
1982
+ #define X509_V_ERR_SUITE_B_INVALID_ALGORITHM 57
1983
+ #define X509_V_ERR_SUITE_B_INVALID_CURVE 58
1984
+ #define X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM 59
1985
+ #define X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED 60
1986
+ #define X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 61
1987
+
1988
+ // Host, email and IP check errors
1989
+ #define X509_V_ERR_HOSTNAME_MISMATCH 62
1990
+ #define X509_V_ERR_EMAIL_MISMATCH 63
1991
+ #define X509_V_ERR_IP_ADDRESS_MISMATCH 64
1992
+
1993
+ // Caller error
1994
+ #define X509_V_ERR_INVALID_CALL 65
1995
+ // Issuer lookup error
1996
+ #define X509_V_ERR_STORE_LOOKUP 66
1997
+
1998
+ #define X509_V_ERR_NAME_CONSTRAINTS_WITHOUT_SANS 67
1999
+
2000
+ // Certificate verify flags
2001
+
2002
+ // Send issuer+subject checks to verify_cb
2003
+ #define X509_V_FLAG_CB_ISSUER_CHECK 0x1
2004
+ // Use check time instead of current time
2005
+ #define X509_V_FLAG_USE_CHECK_TIME 0x2
2006
+ // Lookup CRLs
2007
+ #define X509_V_FLAG_CRL_CHECK 0x4
2008
+ // Lookup CRLs for whole chain
2009
+ #define X509_V_FLAG_CRL_CHECK_ALL 0x8
2010
+ // Ignore unhandled critical extensions
2011
+ #define X509_V_FLAG_IGNORE_CRITICAL 0x10
2012
+ // Does nothing as its functionality has been enabled by default.
2013
+ #define X509_V_FLAG_X509_STRICT 0x00
2014
+ // Enable proxy certificate validation
2015
+ #define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40
2016
+ // Enable policy checking
2017
+ #define X509_V_FLAG_POLICY_CHECK 0x80
2018
+ // Policy variable require-explicit-policy
2019
+ #define X509_V_FLAG_EXPLICIT_POLICY 0x100
2020
+ // Policy variable inhibit-any-policy
2021
+ #define X509_V_FLAG_INHIBIT_ANY 0x200
2022
+ // Policy variable inhibit-policy-mapping
2023
+ #define X509_V_FLAG_INHIBIT_MAP 0x400
2024
+ // Notify callback that policy is OK
2025
+ #define X509_V_FLAG_NOTIFY_POLICY 0x800
2026
+ // Extended CRL features such as indirect CRLs, alternate CRL signing keys
2027
+ #define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000
2028
+ // Delta CRL support
2029
+ #define X509_V_FLAG_USE_DELTAS 0x2000
2030
+ // Check selfsigned CA signature
2031
+ #define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000
2032
+ // Use trusted store first
2033
+ #define X509_V_FLAG_TRUSTED_FIRST 0x8000
2034
+ // Suite B 128 bit only mode: not normally used
2035
+ #define X509_V_FLAG_SUITEB_128_LOS_ONLY 0x10000
2036
+ // Suite B 192 bit only mode
2037
+ #define X509_V_FLAG_SUITEB_192_LOS 0x20000
2038
+ // Suite B 128 bit mode allowing 192 bit algorithms
2039
+ #define X509_V_FLAG_SUITEB_128_LOS 0x30000
2040
+
2041
+ // Allow partial chains if at least one certificate is in trusted store
2042
+ #define X509_V_FLAG_PARTIAL_CHAIN 0x80000
2043
+
2044
+ // If the initial chain is not trusted, do not attempt to build an alternative
2045
+ // chain. Alternate chain checking was introduced in 1.0.2b. Setting this flag
2046
+ // will force the behaviour to match that of previous versions.
2047
+ #define X509_V_FLAG_NO_ALT_CHAINS 0x100000
2048
+
2049
+ #define X509_VP_FLAG_DEFAULT 0x1
2050
+ #define X509_VP_FLAG_OVERWRITE 0x2
2051
+ #define X509_VP_FLAG_RESET_FLAGS 0x4
2052
+ #define X509_VP_FLAG_LOCKED 0x8
2053
+ #define X509_VP_FLAG_ONCE 0x10
2054
+
2055
+ // Internal use: mask of policy related options
2056
+ #define X509_V_FLAG_POLICY_MASK \
2057
+ (X509_V_FLAG_POLICY_CHECK | X509_V_FLAG_EXPLICIT_POLICY | \
2058
+ X509_V_FLAG_INHIBIT_ANY | X509_V_FLAG_INHIBIT_MAP)
2059
+
2060
+ OPENSSL_EXPORT int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h,
2061
+ int type, X509_NAME *name);
2062
+ OPENSSL_EXPORT X509_OBJECT *X509_OBJECT_retrieve_by_subject(
2063
+ STACK_OF(X509_OBJECT) *h, int type, X509_NAME *name);
2064
+ OPENSSL_EXPORT X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h,
2065
+ X509_OBJECT *x);
2066
+ OPENSSL_EXPORT int X509_OBJECT_up_ref_count(X509_OBJECT *a);
2067
+ OPENSSL_EXPORT void X509_OBJECT_free_contents(X509_OBJECT *a);
2068
+ OPENSSL_EXPORT int X509_OBJECT_get_type(const X509_OBJECT *a);
2069
+ OPENSSL_EXPORT X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a);
2070
+ OPENSSL_EXPORT X509_STORE *X509_STORE_new(void);
2071
+ OPENSSL_EXPORT int X509_STORE_up_ref(X509_STORE *store);
2072
+ OPENSSL_EXPORT void X509_STORE_free(X509_STORE *v);
2073
+
2074
+ OPENSSL_EXPORT STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(X509_STORE *st);
2075
+ OPENSSL_EXPORT STACK_OF(X509) *X509_STORE_get1_certs(X509_STORE_CTX *st,
2076
+ X509_NAME *nm);
2077
+ OPENSSL_EXPORT STACK_OF(X509_CRL) *X509_STORE_get1_crls(X509_STORE_CTX *st,
2078
+ X509_NAME *nm);
2079
+ OPENSSL_EXPORT int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags);
2080
+ OPENSSL_EXPORT int X509_STORE_set_purpose(X509_STORE *ctx, int purpose);
2081
+ OPENSSL_EXPORT int X509_STORE_set_trust(X509_STORE *ctx, int trust);
2082
+ OPENSSL_EXPORT int X509_STORE_set1_param(X509_STORE *ctx,
2083
+ X509_VERIFY_PARAM *pm);
2084
+ OPENSSL_EXPORT X509_VERIFY_PARAM *X509_STORE_get0_param(X509_STORE *ctx);
2085
+
2086
+ OPENSSL_EXPORT void X509_STORE_set_verify(X509_STORE *ctx,
2087
+ X509_STORE_CTX_verify_fn verify);
2088
+ #define X509_STORE_set_verify_func(ctx, func) \
2089
+ X509_STORE_set_verify((ctx), (func))
2090
+ OPENSSL_EXPORT void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx,
2091
+ X509_STORE_CTX_verify_fn verify);
2092
+ OPENSSL_EXPORT X509_STORE_CTX_verify_fn X509_STORE_get_verify(X509_STORE *ctx);
2093
+ OPENSSL_EXPORT void X509_STORE_set_verify_cb(
2094
+ X509_STORE *ctx, X509_STORE_CTX_verify_cb verify_cb);
2095
+ #define X509_STORE_set_verify_cb_func(ctx, func) \
2096
+ X509_STORE_set_verify_cb((ctx), (func))
2097
+ OPENSSL_EXPORT X509_STORE_CTX_verify_cb
2098
+ X509_STORE_get_verify_cb(X509_STORE *ctx);
2099
+ OPENSSL_EXPORT void X509_STORE_set_get_issuer(
2100
+ X509_STORE *ctx, X509_STORE_CTX_get_issuer_fn get_issuer);
2101
+ OPENSSL_EXPORT X509_STORE_CTX_get_issuer_fn
2102
+ X509_STORE_get_get_issuer(X509_STORE *ctx);
2103
+ OPENSSL_EXPORT void X509_STORE_set_check_issued(
2104
+ X509_STORE *ctx, X509_STORE_CTX_check_issued_fn check_issued);
2105
+ OPENSSL_EXPORT X509_STORE_CTX_check_issued_fn
2106
+ X509_STORE_get_check_issued(X509_STORE *ctx);
2107
+ OPENSSL_EXPORT void X509_STORE_set_check_revocation(
2108
+ X509_STORE *ctx, X509_STORE_CTX_check_revocation_fn check_revocation);
2109
+ OPENSSL_EXPORT X509_STORE_CTX_check_revocation_fn
2110
+ X509_STORE_get_check_revocation(X509_STORE *ctx);
2111
+ OPENSSL_EXPORT void X509_STORE_set_get_crl(X509_STORE *ctx,
2112
+ X509_STORE_CTX_get_crl_fn get_crl);
2113
+ OPENSSL_EXPORT X509_STORE_CTX_get_crl_fn
2114
+ X509_STORE_get_get_crl(X509_STORE *ctx);
2115
+ OPENSSL_EXPORT void X509_STORE_set_check_crl(
2116
+ X509_STORE *ctx, X509_STORE_CTX_check_crl_fn check_crl);
2117
+ OPENSSL_EXPORT X509_STORE_CTX_check_crl_fn
2118
+ X509_STORE_get_check_crl(X509_STORE *ctx);
2119
+ OPENSSL_EXPORT void X509_STORE_set_cert_crl(
2120
+ X509_STORE *ctx, X509_STORE_CTX_cert_crl_fn cert_crl);
2121
+ OPENSSL_EXPORT X509_STORE_CTX_cert_crl_fn
2122
+ X509_STORE_get_cert_crl(X509_STORE *ctx);
2123
+ OPENSSL_EXPORT void X509_STORE_set_lookup_certs(
2124
+ X509_STORE *ctx, X509_STORE_CTX_lookup_certs_fn lookup_certs);
2125
+ OPENSSL_EXPORT X509_STORE_CTX_lookup_certs_fn
2126
+ X509_STORE_get_lookup_certs(X509_STORE *ctx);
2127
+ OPENSSL_EXPORT void X509_STORE_set_lookup_crls(
2128
+ X509_STORE *ctx, X509_STORE_CTX_lookup_crls_fn lookup_crls);
2129
+ #define X509_STORE_set_lookup_crls_cb(ctx, func) \
2130
+ X509_STORE_set_lookup_crls((ctx), (func))
2131
+ OPENSSL_EXPORT X509_STORE_CTX_lookup_crls_fn
2132
+ X509_STORE_get_lookup_crls(X509_STORE *ctx);
2133
+ OPENSSL_EXPORT void X509_STORE_set_cleanup(X509_STORE *ctx,
2134
+ X509_STORE_CTX_cleanup_fn cleanup);
2135
+ OPENSSL_EXPORT X509_STORE_CTX_cleanup_fn
2136
+ X509_STORE_get_cleanup(X509_STORE *ctx);
2137
+
2138
+ OPENSSL_EXPORT X509_STORE_CTX *X509_STORE_CTX_new(void);
2139
+
2140
+ OPENSSL_EXPORT int X509_STORE_CTX_get1_issuer(X509 **issuer,
2141
+ X509_STORE_CTX *ctx, X509 *x);
2142
+
2143
+ OPENSSL_EXPORT void X509_STORE_CTX_zero(X509_STORE_CTX *ctx);
2144
+ OPENSSL_EXPORT void X509_STORE_CTX_free(X509_STORE_CTX *ctx);
2145
+ OPENSSL_EXPORT int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store,
2146
+ X509 *x509, STACK_OF(X509) *chain);
2147
+ OPENSSL_EXPORT void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx,
2148
+ STACK_OF(X509) *sk);
2149
+ OPENSSL_EXPORT void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx);
2150
+
2151
+ OPENSSL_EXPORT X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx);
2152
+ OPENSSL_EXPORT X509 *X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx);
2153
+
2154
+ OPENSSL_EXPORT X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v,
2155
+ X509_LOOKUP_METHOD *m);
2156
+
2157
+ OPENSSL_EXPORT X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void);
2158
+ OPENSSL_EXPORT X509_LOOKUP_METHOD *X509_LOOKUP_file(void);
2159
+
2160
+ OPENSSL_EXPORT int X509_STORE_add_cert(X509_STORE *ctx, X509 *x);
2161
+ OPENSSL_EXPORT int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x);
2162
+
2163
+ OPENSSL_EXPORT int X509_STORE_get_by_subject(X509_STORE_CTX *vs, int type,
2164
+ X509_NAME *name, X509_OBJECT *ret);
2165
+
2166
+ OPENSSL_EXPORT int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc,
2167
+ long argl, char **ret);
2168
+
2169
+ #ifndef OPENSSL_NO_STDIO
2170
+ OPENSSL_EXPORT int X509_load_cert_file(X509_LOOKUP *ctx, const char *file,
2171
+ int type);
2172
+ OPENSSL_EXPORT int X509_load_crl_file(X509_LOOKUP *ctx, const char *file,
2173
+ int type);
2174
+ OPENSSL_EXPORT int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file,
2175
+ int type);
2176
+ #endif
1925
2177
 
2178
+ OPENSSL_EXPORT X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method);
2179
+ OPENSSL_EXPORT void X509_LOOKUP_free(X509_LOOKUP *ctx);
2180
+ OPENSSL_EXPORT int X509_LOOKUP_init(X509_LOOKUP *ctx);
2181
+ OPENSSL_EXPORT int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, int type,
2182
+ X509_NAME *name, X509_OBJECT *ret);
2183
+ OPENSSL_EXPORT int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, int type,
2184
+ X509_NAME *name,
2185
+ ASN1_INTEGER *serial,
2186
+ X509_OBJECT *ret);
2187
+ OPENSSL_EXPORT int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, int type,
2188
+ unsigned char *bytes, int len,
2189
+ X509_OBJECT *ret);
2190
+ OPENSSL_EXPORT int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, int type, char *str,
2191
+ int len, X509_OBJECT *ret);
2192
+ OPENSSL_EXPORT int X509_LOOKUP_shutdown(X509_LOOKUP *ctx);
2193
+
2194
+ #ifndef OPENSSL_NO_STDIO
2195
+ OPENSSL_EXPORT int X509_STORE_load_locations(X509_STORE *ctx, const char *file,
2196
+ const char *dir);
2197
+ OPENSSL_EXPORT int X509_STORE_set_default_paths(X509_STORE *ctx);
2198
+ #endif
1926
2199
 
1927
- #ifdef __cplusplus
1928
- }
2200
+ OPENSSL_EXPORT int X509_STORE_CTX_get_ex_new_index(long argl, void *argp,
2201
+ CRYPTO_EX_unused *unused,
2202
+ CRYPTO_EX_dup *dup_unused,
2203
+ CRYPTO_EX_free *free_func);
2204
+ OPENSSL_EXPORT int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx,
2205
+ void *data);
2206
+ OPENSSL_EXPORT void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx);
2207
+ OPENSSL_EXPORT int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx);
2208
+ OPENSSL_EXPORT void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s);
2209
+ OPENSSL_EXPORT int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx);
2210
+ OPENSSL_EXPORT X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx);
2211
+ OPENSSL_EXPORT X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx);
2212
+ OPENSSL_EXPORT X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx);
2213
+ OPENSSL_EXPORT X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(
2214
+ X509_STORE_CTX *ctx);
2215
+ OPENSSL_EXPORT STACK_OF(X509) *X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx);
2216
+ OPENSSL_EXPORT STACK_OF(X509) *X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx);
2217
+ OPENSSL_EXPORT STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx);
2218
+ OPENSSL_EXPORT void X509_STORE_CTX_set_cert(X509_STORE_CTX *c, X509 *x);
2219
+ OPENSSL_EXPORT void X509_STORE_CTX_set_chain(X509_STORE_CTX *c,
2220
+ STACK_OF(X509) *sk);
2221
+ OPENSSL_EXPORT STACK_OF(X509) *X509_STORE_CTX_get0_untrusted(
2222
+ X509_STORE_CTX *ctx);
2223
+ OPENSSL_EXPORT void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c,
2224
+ STACK_OF(X509_CRL) *sk);
2225
+ OPENSSL_EXPORT int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose);
2226
+ OPENSSL_EXPORT int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust);
2227
+ OPENSSL_EXPORT int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx,
2228
+ int def_purpose, int purpose,
2229
+ int trust);
2230
+ OPENSSL_EXPORT void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx,
2231
+ unsigned long flags);
2232
+ OPENSSL_EXPORT void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx,
2233
+ unsigned long flags, time_t t);
2234
+ OPENSSL_EXPORT void X509_STORE_CTX_set_verify_cb(
2235
+ X509_STORE_CTX *ctx, int (*verify_cb)(int, X509_STORE_CTX *));
2236
+
2237
+ OPENSSL_EXPORT X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(
2238
+ X509_STORE_CTX *ctx);
2239
+ OPENSSL_EXPORT int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx);
2240
+
2241
+ OPENSSL_EXPORT X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(
2242
+ X509_STORE_CTX *ctx);
2243
+ OPENSSL_EXPORT void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx,
2244
+ X509_VERIFY_PARAM *param);
2245
+ OPENSSL_EXPORT int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx,
2246
+ const char *name);
2247
+
2248
+ // X509_VERIFY_PARAM functions
2249
+
2250
+ OPENSSL_EXPORT X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void);
2251
+ OPENSSL_EXPORT void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param);
2252
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to,
2253
+ const X509_VERIFY_PARAM *from);
2254
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to,
2255
+ const X509_VERIFY_PARAM *from);
2256
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param,
2257
+ const char *name);
2258
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param,
2259
+ unsigned long flags);
2260
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param,
2261
+ unsigned long flags);
2262
+ OPENSSL_EXPORT unsigned long X509_VERIFY_PARAM_get_flags(
2263
+ X509_VERIFY_PARAM *param);
2264
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param,
2265
+ int purpose);
2266
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param,
2267
+ int trust);
2268
+ OPENSSL_EXPORT void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param,
2269
+ int depth);
2270
+ OPENSSL_EXPORT void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param,
2271
+ time_t t);
2272
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param,
2273
+ ASN1_OBJECT *policy);
2274
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_policies(
2275
+ X509_VERIFY_PARAM *param, STACK_OF(ASN1_OBJECT) *policies);
2276
+
2277
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param,
2278
+ const char *name,
2279
+ size_t namelen);
2280
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param,
2281
+ const char *name,
2282
+ size_t namelen);
2283
+ OPENSSL_EXPORT void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param,
2284
+ unsigned int flags);
2285
+ OPENSSL_EXPORT char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *);
2286
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param,
2287
+ const char *email,
2288
+ size_t emaillen);
2289
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param,
2290
+ const unsigned char *ip,
2291
+ size_t iplen);
2292
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param,
2293
+ const char *ipasc);
2294
+
2295
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param);
2296
+ OPENSSL_EXPORT const char *X509_VERIFY_PARAM_get0_name(
2297
+ const X509_VERIFY_PARAM *param);
2298
+
2299
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param);
2300
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_get_count(void);
2301
+ OPENSSL_EXPORT const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id);
2302
+ OPENSSL_EXPORT const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(
2303
+ const char *name);
2304
+ OPENSSL_EXPORT void X509_VERIFY_PARAM_table_cleanup(void);
2305
+
2306
+ OPENSSL_EXPORT int X509_policy_check(X509_POLICY_TREE **ptree,
2307
+ int *pexplicit_policy,
2308
+ STACK_OF(X509) *certs,
2309
+ STACK_OF(ASN1_OBJECT) *policy_oids,
2310
+ unsigned int flags);
2311
+
2312
+ OPENSSL_EXPORT void X509_policy_tree_free(X509_POLICY_TREE *tree);
2313
+
2314
+ OPENSSL_EXPORT int X509_policy_tree_level_count(const X509_POLICY_TREE *tree);
2315
+ OPENSSL_EXPORT X509_POLICY_LEVEL *X509_policy_tree_get0_level(
2316
+ const X509_POLICY_TREE *tree, int i);
2317
+
2318
+ OPENSSL_EXPORT STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_policies(
2319
+ const X509_POLICY_TREE *tree);
2320
+
2321
+ OPENSSL_EXPORT STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_user_policies(
2322
+ const X509_POLICY_TREE *tree);
2323
+
2324
+ OPENSSL_EXPORT int X509_policy_level_node_count(X509_POLICY_LEVEL *level);
2325
+
2326
+ OPENSSL_EXPORT X509_POLICY_NODE *X509_policy_level_get0_node(
2327
+ X509_POLICY_LEVEL *level, int i);
2328
+
2329
+ OPENSSL_EXPORT const ASN1_OBJECT *X509_policy_node_get0_policy(
2330
+ const X509_POLICY_NODE *node);
2331
+
2332
+ OPENSSL_EXPORT STACK_OF(POLICYQUALINFO) *X509_policy_node_get0_qualifiers(
2333
+ const X509_POLICY_NODE *node);
2334
+ OPENSSL_EXPORT const X509_POLICY_NODE *X509_policy_node_get0_parent(
2335
+ const X509_POLICY_NODE *node);
2336
+
2337
+
2338
+ #if defined(__cplusplus)
2339
+ } // extern C
1929
2340
  #endif
1930
2341
 
1931
2342
  #if !defined(BORINGSSL_NO_CXX)
@@ -1958,10 +2369,6 @@ BORINGSSL_MAKE_UP_REF(X509_STORE, X509_STORE_up_ref)
1958
2369
  BORINGSSL_MAKE_DELETER(X509_STORE_CTX, X509_STORE_CTX_free)
1959
2370
  BORINGSSL_MAKE_DELETER(X509_VERIFY_PARAM, X509_VERIFY_PARAM_free)
1960
2371
 
1961
- using ScopedX509_STORE_CTX =
1962
- internal::StackAllocated<X509_STORE_CTX, void, X509_STORE_CTX_zero,
1963
- X509_STORE_CTX_cleanup>;
1964
-
1965
2372
  BSSL_NAMESPACE_END
1966
2373
 
1967
2374
  } // extern C++