grpc 1.35.0 → 1.38.0

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

Potentially problematic release.


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

Files changed (885) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +168 -131
  3. data/include/grpc/event_engine/README.md +38 -0
  4. data/include/grpc/event_engine/channel_args.h +28 -0
  5. data/include/grpc/event_engine/event_engine.h +336 -0
  6. data/include/grpc/event_engine/port.h +39 -0
  7. data/include/grpc/event_engine/slice_allocator.h +81 -0
  8. data/include/grpc/grpc.h +15 -1
  9. data/include/grpc/grpc_security.h +16 -11
  10. data/include/grpc/grpc_security_constants.h +14 -0
  11. data/include/grpc/impl/codegen/grpc_types.h +11 -0
  12. data/include/grpc/impl/codegen/port_platform.h +7 -0
  13. data/include/grpc/module.modulemap +14 -14
  14. data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
  15. data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
  16. data/src/core/ext/filters/client_channel/client_channel.cc +740 -3185
  17. data/src/core/ext/filters/client_channel/client_channel.h +488 -56
  18. data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
  19. data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -1
  20. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
  21. data/src/core/ext/filters/client_channel/config_selector.h +10 -2
  22. data/src/core/ext/filters/client_channel/connector.h +1 -1
  23. data/src/core/ext/filters/client_channel/dynamic_filters.cc +18 -14
  24. data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
  25. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -142
  26. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +15 -10
  27. data/src/core/ext/filters/client_channel/health/health_check_client.cc +26 -27
  28. data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
  29. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +26 -23
  30. data/src/core/ext/filters/client_channel/lb_policy.cc +4 -1
  31. data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
  32. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
  33. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +49 -48
  34. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -2
  35. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +2 -3
  36. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
  37. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
  38. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +22 -18
  39. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +23 -0
  40. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +27 -0
  41. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
  42. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
  43. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
  44. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +318 -193
  45. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +5 -0
  46. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +30 -47
  47. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +32 -47
  48. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +316 -171
  49. data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
  50. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
  51. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
  52. data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +27 -67
  53. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +10 -9
  54. data/src/core/ext/filters/client_channel/resolver.cc +5 -5
  55. data/src/core/ext/filters/client_channel/resolver.h +3 -14
  56. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +59 -60
  57. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
  58. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
  59. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +4 -4
  60. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +17 -15
  61. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +67 -74
  62. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
  63. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
  64. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  65. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +33 -23
  66. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +38 -43
  67. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
  68. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +379 -0
  69. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +5 -5
  70. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +346 -178
  71. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
  72. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
  73. data/src/core/ext/filters/client_channel/retry_filter.cc +2188 -0
  74. data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
  75. data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
  76. data/src/core/ext/filters/client_channel/retry_service_config.h +90 -0
  77. data/src/core/ext/filters/client_channel/server_address.cc +10 -1
  78. data/src/core/ext/filters/client_channel/server_address.h +31 -0
  79. data/src/core/ext/filters/client_channel/service_config.cc +15 -14
  80. data/src/core/ext/filters/client_channel/service_config.h +7 -6
  81. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
  82. data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
  83. data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
  84. data/src/core/ext/filters/client_channel/subchannel.cc +86 -162
  85. data/src/core/ext/filters/client_channel/subchannel.h +68 -99
  86. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +16 -2
  87. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +10 -8
  88. data/src/core/ext/filters/client_idle/client_idle_filter.cc +17 -16
  89. data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
  90. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +501 -0
  91. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +39 -0
  92. data/src/core/ext/filters/fault_injection/service_config_parser.cc +189 -0
  93. data/src/core/ext/filters/fault_injection/service_config_parser.h +85 -0
  94. data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
  95. data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
  96. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
  97. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
  98. data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
  99. data/src/core/ext/filters/max_age/max_age_filter.cc +47 -42
  100. data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
  101. data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
  102. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +5 -4
  103. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +8 -8
  104. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
  105. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +5 -4
  106. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +2 -2
  107. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +6 -5
  108. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +507 -196
  109. data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -2
  110. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +13 -4
  111. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +3 -3
  112. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +64 -21
  113. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +167 -122
  114. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -1
  115. data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
  116. data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
  117. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  118. data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
  119. data/src/core/ext/transport/chttp2/transport/frame_data.cc +13 -9
  120. data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
  121. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
  122. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
  123. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
  124. data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
  125. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
  126. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
  127. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
  128. data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
  129. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
  130. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
  131. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -1
  132. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
  133. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
  134. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
  135. data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
  136. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  137. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
  138. data/src/core/ext/transport/chttp2/transport/internal.h +32 -27
  139. data/src/core/ext/transport/chttp2/transport/parsing.cc +63 -56
  140. data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
  141. data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
  142. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +406 -0
  143. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1459 -0
  144. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +0 -1
  145. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +350 -0
  146. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1348 -0
  147. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +11 -16
  148. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +42 -59
  149. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +3 -2
  150. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +15 -0
  151. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +25 -1
  152. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +75 -0
  153. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +2 -2
  154. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +9 -9
  155. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +7 -7
  156. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +28 -13
  157. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +6 -0
  158. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +25 -0
  159. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +0 -1
  160. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +11 -5
  161. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +41 -7
  162. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +0 -1
  163. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +23 -21
  164. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +122 -77
  165. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +13 -9
  166. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +37 -5
  167. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +0 -1
  168. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +144 -0
  169. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +488 -0
  170. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +141 -0
  171. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +452 -0
  172. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +11 -9
  173. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +44 -27
  174. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +57 -16
  175. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +150 -0
  176. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +0 -1
  177. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +29 -0
  178. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +67 -0
  179. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +79 -0
  180. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +268 -0
  181. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +78 -0
  182. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +281 -0
  183. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +41 -0
  184. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +113 -0
  185. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +19 -21
  186. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +64 -51
  187. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +0 -1
  188. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +16 -13
  189. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +50 -18
  190. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +4 -7
  191. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +0 -17
  192. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +0 -1
  193. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +30 -23
  194. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +85 -73
  195. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -3
  196. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -3
  197. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +0 -1
  198. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -2
  199. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +93 -0
  200. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +323 -0
  201. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +36 -0
  202. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +90 -0
  203. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +0 -1
  204. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +46 -0
  205. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +124 -0
  206. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +21 -4
  207. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +29 -0
  208. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +33 -0
  209. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +77 -0
  210. data/src/core/ext/upb-generated/{udpa/core/v1 → xds/core/v3}/authority.upb.c +5 -5
  211. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +60 -0
  212. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +52 -0
  213. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +143 -0
  214. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +42 -0
  215. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +84 -0
  216. data/src/core/ext/upb-generated/{udpa/core/v1 → xds/core/v3}/resource.upb.c +9 -9
  217. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +94 -0
  218. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +54 -0
  219. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +166 -0
  220. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +36 -0
  221. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +85 -0
  222. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +354 -0
  223. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
  224. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +168 -171
  225. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +383 -0
  226. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +115 -0
  227. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +405 -420
  228. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +2 -2
  229. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +12 -9
  230. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +177 -171
  231. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +10 -0
  232. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +88 -88
  233. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +153 -153
  234. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +10 -7
  235. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +5 -0
  236. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +4 -7
  237. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +33 -20
  238. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +56 -59
  239. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +116 -111
  240. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +129 -121
  241. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +21 -24
  242. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +141 -0
  243. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
  244. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +141 -0
  245. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +70 -0
  246. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +17 -13
  247. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +753 -724
  248. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +10 -0
  249. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +22 -25
  250. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +51 -0
  251. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +35 -0
  252. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +102 -0
  253. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
  254. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +120 -0
  255. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
  256. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +76 -0
  257. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
  258. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +371 -377
  259. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +12 -16
  260. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +112 -108
  261. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +45 -53
  262. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +177 -180
  263. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +92 -102
  264. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +5 -0
  265. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +32 -42
  266. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +30 -40
  267. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +4 -7
  268. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +38 -44
  269. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +130 -0
  270. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +50 -0
  271. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +56 -0
  272. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
  273. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +30 -33
  274. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +63 -0
  275. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
  276. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +44 -0
  277. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +35 -0
  278. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +14 -11
  279. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +42 -0
  280. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +35 -0
  281. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +62 -0
  282. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +40 -0
  283. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +45 -0
  284. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +40 -0
  285. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +49 -0
  286. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +35 -0
  287. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +67 -0
  288. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +40 -0
  289. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +50 -0
  290. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +35 -0
  291. data/src/core/ext/xds/certificate_provider_factory.h +1 -1
  292. data/src/core/ext/xds/certificate_provider_store.h +3 -3
  293. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
  294. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
  295. data/src/core/ext/xds/xds_api.cc +2179 -688
  296. data/src/core/ext/xds/xds_api.h +326 -124
  297. data/src/core/ext/xds/xds_bootstrap.cc +115 -142
  298. data/src/core/ext/xds/xds_bootstrap.h +24 -17
  299. data/src/core/ext/xds/xds_certificate_provider.cc +184 -78
  300. data/src/core/ext/xds/xds_certificate_provider.h +84 -45
  301. data/src/core/ext/xds/xds_channel_args.h +5 -2
  302. data/src/core/ext/xds/xds_client.cc +462 -183
  303. data/src/core/ext/xds/xds_client.h +65 -22
  304. data/src/core/ext/xds/xds_client_stats.cc +2 -1
  305. data/src/core/ext/xds/xds_client_stats.h +5 -4
  306. data/src/core/ext/xds/xds_http_fault_filter.cc +226 -0
  307. data/src/core/ext/xds/xds_http_fault_filter.h +63 -0
  308. data/src/core/ext/xds/xds_http_filters.cc +114 -0
  309. data/src/core/ext/xds/xds_http_filters.h +130 -0
  310. data/src/core/ext/xds/xds_server_config_fetcher.cc +444 -29
  311. data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
  312. data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
  313. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +108 -5
  314. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +26 -6
  315. data/src/core/lib/channel/channel_stack.cc +22 -9
  316. data/src/core/lib/channel/channel_stack.h +17 -9
  317. data/src/core/lib/channel/channel_stack_builder.cc +2 -2
  318. data/src/core/lib/channel/channel_stack_builder.h +1 -1
  319. data/src/core/lib/channel/channelz.cc +108 -12
  320. data/src/core/lib/channel/channelz.h +30 -1
  321. data/src/core/lib/channel/channelz_registry.cc +14 -0
  322. data/src/core/lib/channel/connected_channel.cc +4 -4
  323. data/src/core/lib/channel/handshaker.cc +9 -50
  324. data/src/core/lib/channel/handshaker.h +6 -23
  325. data/src/core/lib/channel/status_util.cc +12 -2
  326. data/src/core/lib/channel/status_util.h +5 -0
  327. data/src/core/lib/event_engine/slice_allocator.cc +59 -0
  328. data/src/core/lib/event_engine/sockaddr.cc +38 -0
  329. data/src/core/lib/gpr/log.cc +6 -1
  330. data/src/core/lib/gpr/sync_abseil.cc +3 -6
  331. data/src/core/lib/gpr/sync_windows.cc +2 -2
  332. data/src/core/lib/gprpp/atomic.h +3 -3
  333. data/src/core/lib/gprpp/dual_ref_counted.h +3 -3
  334. data/src/core/lib/gprpp/mpscq.cc +2 -2
  335. data/src/core/lib/gprpp/ref_counted.h +29 -15
  336. data/src/core/lib/gprpp/ref_counted_ptr.h +2 -0
  337. data/src/core/lib/gprpp/status_helper.cc +407 -0
  338. data/src/core/lib/gprpp/status_helper.h +180 -0
  339. data/src/core/lib/gprpp/sync.h +129 -40
  340. data/src/core/lib/gprpp/thd.h +1 -1
  341. data/src/core/lib/gprpp/time_util.cc +77 -0
  342. data/src/core/lib/gprpp/time_util.h +42 -0
  343. data/src/core/lib/http/httpcli.cc +11 -11
  344. data/src/core/lib/http/httpcli_security_connector.cc +13 -9
  345. data/src/core/lib/http/parser.cc +16 -16
  346. data/src/core/lib/http/parser.h +4 -4
  347. data/src/core/lib/iomgr/buffer_list.cc +7 -9
  348. data/src/core/lib/iomgr/buffer_list.h +5 -6
  349. data/src/core/lib/iomgr/call_combiner.cc +15 -12
  350. data/src/core/lib/iomgr/call_combiner.h +12 -14
  351. data/src/core/lib/iomgr/cfstream_handle.cc +5 -5
  352. data/src/core/lib/iomgr/cfstream_handle.h +1 -1
  353. data/src/core/lib/iomgr/closure.h +7 -6
  354. data/src/core/lib/iomgr/combiner.cc +14 -12
  355. data/src/core/lib/iomgr/combiner.h +2 -2
  356. data/src/core/lib/iomgr/endpoint.cc +1 -1
  357. data/src/core/lib/iomgr/endpoint.h +2 -2
  358. data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
  359. data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
  360. data/src/core/lib/iomgr/error.cc +167 -61
  361. data/src/core/lib/iomgr/error.h +218 -107
  362. data/src/core/lib/iomgr/error_cfstream.cc +3 -2
  363. data/src/core/lib/iomgr/error_cfstream.h +2 -2
  364. data/src/core/lib/iomgr/error_internal.h +5 -1
  365. data/src/core/lib/iomgr/ev_apple.cc +16 -13
  366. data/src/core/lib/iomgr/ev_epoll1_linux.cc +22 -22
  367. data/src/core/lib/iomgr/ev_epollex_linux.cc +52 -49
  368. data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
  369. data/src/core/lib/iomgr/ev_posix.cc +12 -11
  370. data/src/core/lib/iomgr/ev_posix.h +9 -9
  371. data/src/core/lib/iomgr/exec_ctx.cc +10 -6
  372. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  373. data/src/core/lib/iomgr/executor.cc +8 -8
  374. data/src/core/lib/iomgr/executor.h +2 -2
  375. data/src/core/lib/iomgr/iomgr.cc +1 -1
  376. data/src/core/lib/iomgr/iomgr.h +1 -1
  377. data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
  378. data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
  379. data/src/core/lib/iomgr/iomgr_internal.h +3 -3
  380. data/src/core/lib/iomgr/iomgr_posix.cc +1 -2
  381. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -3
  382. data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
  383. data/src/core/lib/iomgr/load_file.cc +4 -4
  384. data/src/core/lib/iomgr/load_file.h +2 -2
  385. data/src/core/lib/iomgr/lockfree_event.cc +5 -5
  386. data/src/core/lib/iomgr/lockfree_event.h +1 -1
  387. data/src/core/lib/iomgr/pollset.cc +5 -5
  388. data/src/core/lib/iomgr/pollset.h +9 -9
  389. data/src/core/lib/iomgr/pollset_custom.cc +5 -5
  390. data/src/core/lib/iomgr/pollset_windows.cc +5 -5
  391. data/src/core/lib/iomgr/port.h +1 -1
  392. data/src/core/lib/iomgr/python_util.h +1 -1
  393. data/src/core/lib/iomgr/resolve_address.cc +3 -3
  394. data/src/core/lib/iomgr/resolve_address.h +6 -6
  395. data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
  396. data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
  397. data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
  398. data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
  399. data/src/core/lib/iomgr/resource_quota.cc +12 -11
  400. data/src/core/lib/iomgr/socket_utils_common_posix.cc +23 -20
  401. data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
  402. data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
  403. data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
  404. data/src/core/lib/iomgr/tcp_client_posix.cc +16 -18
  405. data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
  406. data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
  407. data/src/core/lib/iomgr/tcp_custom.cc +14 -16
  408. data/src/core/lib/iomgr/tcp_custom.h +13 -12
  409. data/src/core/lib/iomgr/tcp_posix.cc +41 -42
  410. data/src/core/lib/iomgr/tcp_server.cc +6 -6
  411. data/src/core/lib/iomgr/tcp_server.h +12 -11
  412. data/src/core/lib/iomgr/tcp_server_custom.cc +23 -21
  413. data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
  414. data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
  415. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
  416. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
  417. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
  418. data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
  419. data/src/core/lib/iomgr/tcp_uv.cc +27 -25
  420. data/src/core/lib/iomgr/tcp_windows.cc +13 -13
  421. data/src/core/lib/iomgr/tcp_windows.h +2 -2
  422. data/src/core/lib/iomgr/timer_custom.cc +2 -1
  423. data/src/core/lib/iomgr/timer_custom.h +1 -1
  424. data/src/core/lib/iomgr/timer_generic.cc +8 -8
  425. data/src/core/lib/iomgr/timer_manager.cc +1 -1
  426. data/src/core/lib/iomgr/udp_server.cc +21 -20
  427. data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
  428. data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
  429. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
  430. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
  431. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
  432. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
  433. data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
  434. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
  435. data/src/core/lib/iomgr/work_serializer.h +17 -1
  436. data/src/core/lib/json/json.h +1 -1
  437. data/src/core/lib/json/json_reader.cc +4 -4
  438. data/src/core/lib/matchers/matchers.cc +339 -0
  439. data/src/core/lib/matchers/matchers.h +160 -0
  440. data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -1
  441. data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
  442. data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
  443. data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
  444. data/src/core/lib/security/credentials/credentials.h +4 -3
  445. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +18 -14
  446. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
  447. data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
  448. data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
  449. data/src/core/lib/security/credentials/external/external_account_credentials.cc +17 -14
  450. data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
  451. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +6 -5
  452. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
  453. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +9 -9
  454. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
  455. data/src/core/lib/security/credentials/fake/fake_credentials.cc +3 -3
  456. data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
  457. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +16 -15
  458. data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
  459. data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
  460. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +2 -2
  461. data/src/core/lib/security/credentials/jwt/json_token.cc +2 -5
  462. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
  463. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
  464. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -8
  465. data/src/core/lib/security/credentials/local/local_credentials.cc +2 -1
  466. data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
  467. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
  468. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
  469. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
  470. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
  471. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +2 -1
  472. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
  473. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
  474. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
  475. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
  476. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
  477. data/src/core/lib/security/credentials/tls/tls_credentials.cc +2 -1
  478. data/src/core/lib/security/credentials/tls/tls_credentials.h +1 -1
  479. data/src/core/lib/security/credentials/xds/xds_credentials.cc +130 -61
  480. data/src/core/lib/security/credentials/xds/xds_credentials.h +3 -3
  481. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
  482. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
  483. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +5 -5
  484. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
  485. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
  486. data/src/core/lib/security/security_connector/local/local_security_connector.cc +14 -4
  487. data/src/core/lib/security/security_connector/security_connector.h +9 -4
  488. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
  489. data/src/core/lib/security/security_connector/ssl_utils.cc +31 -8
  490. data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
  491. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +88 -74
  492. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
  493. data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
  494. data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
  495. data/src/core/lib/security/transport/security_handshaker.cc +66 -37
  496. data/src/core/lib/security/transport/server_auth_filter.cc +24 -11
  497. data/src/core/lib/security/transport/tsi_error.cc +2 -1
  498. data/src/core/lib/security/transport/tsi_error.h +2 -1
  499. data/src/core/lib/security/util/json_util.cc +2 -2
  500. data/src/core/lib/security/util/json_util.h +1 -1
  501. data/src/core/lib/slice/slice_intern.cc +5 -6
  502. data/src/core/lib/surface/call.cc +46 -45
  503. data/src/core/lib/surface/call.h +2 -2
  504. data/src/core/lib/surface/channel.cc +6 -6
  505. data/src/core/lib/surface/channel.h +6 -5
  506. data/src/core/lib/surface/channel_ping.cc +1 -1
  507. data/src/core/lib/surface/completion_queue.cc +46 -47
  508. data/src/core/lib/surface/completion_queue.h +2 -1
  509. data/src/core/lib/surface/init.cc +13 -15
  510. data/src/core/lib/surface/lame_client.cc +43 -24
  511. data/src/core/lib/surface/lame_client.h +4 -3
  512. data/src/core/lib/surface/server.cc +71 -58
  513. data/src/core/lib/surface/server.h +91 -28
  514. data/src/core/lib/surface/validate_metadata.cc +7 -7
  515. data/src/core/lib/surface/validate_metadata.h +3 -2
  516. data/src/core/lib/surface/version.cc +4 -2
  517. data/src/core/lib/transport/byte_stream.cc +5 -5
  518. data/src/core/lib/transport/byte_stream.h +8 -8
  519. data/src/core/lib/transport/connectivity_state.cc +1 -1
  520. data/src/core/lib/transport/error_utils.cc +19 -8
  521. data/src/core/lib/transport/error_utils.h +11 -5
  522. data/src/core/lib/transport/metadata.cc +6 -2
  523. data/src/core/lib/transport/metadata_batch.cc +64 -37
  524. data/src/core/lib/transport/metadata_batch.h +33 -18
  525. data/src/core/lib/transport/transport.cc +4 -3
  526. data/src/core/lib/transport/transport.h +4 -4
  527. data/src/core/lib/transport/transport_op_string.cc +5 -5
  528. data/src/core/plugin_registry/grpc_plugin_registry.cc +12 -0
  529. data/src/core/tsi/alts/crypt/gsec.h +4 -0
  530. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +23 -28
  531. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +23 -27
  532. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
  533. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
  534. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -3
  535. data/src/core/tsi/fake_transport_security.cc +11 -2
  536. data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -3
  537. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +0 -2
  538. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +2 -4
  539. data/src/core/tsi/ssl_transport_security.cc +32 -17
  540. data/src/core/tsi/ssl_transport_security.h +3 -7
  541. data/src/ruby/bin/math_services_pb.rb +1 -1
  542. data/src/ruby/ext/grpc/extconf.rb +9 -1
  543. data/src/ruby/ext/grpc/rb_channel.c +10 -1
  544. data/src/ruby/ext/grpc/rb_channel_credentials.c +11 -1
  545. data/src/ruby/ext/grpc/rb_channel_credentials.h +4 -0
  546. data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
  547. data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
  548. data/src/ruby/ext/grpc/rb_grpc.c +4 -0
  549. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
  550. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +4 -1
  551. data/src/ruby/ext/grpc/rb_server.c +13 -1
  552. data/src/ruby/ext/grpc/rb_server_credentials.c +19 -3
  553. data/src/ruby/ext/grpc/rb_server_credentials.h +4 -0
  554. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +215 -0
  555. data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +35 -0
  556. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +169 -0
  557. data/src/ruby/ext/grpc/rb_xds_server_credentials.h +35 -0
  558. data/src/ruby/lib/grpc/generic/client_stub.rb +4 -2
  559. data/src/ruby/lib/grpc/version.rb +1 -1
  560. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
  561. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +7 -0
  562. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
  563. data/src/ruby/spec/call_spec.rb +1 -1
  564. data/src/ruby/spec/channel_credentials_spec.rb +32 -0
  565. data/src/ruby/spec/channel_spec.rb +17 -6
  566. data/src/ruby/spec/client_auth_spec.rb +27 -1
  567. data/src/ruby/spec/errors_spec.rb +1 -1
  568. data/src/ruby/spec/generic/active_call_spec.rb +2 -2
  569. data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
  570. data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
  571. data/src/ruby/spec/server_credentials_spec.rb +25 -0
  572. data/src/ruby/spec/server_spec.rb +22 -0
  573. data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
  574. data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
  575. data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
  576. data/third_party/abseil-cpp/absl/base/config.h +37 -9
  577. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
  578. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
  579. data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
  580. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
  581. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
  582. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
  583. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
  584. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
  585. data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
  586. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
  587. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
  588. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
  589. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
  590. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
  591. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
  592. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
  593. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
  594. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
  595. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
  596. data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
  597. data/third_party/abseil-cpp/absl/base/macros.h +11 -0
  598. data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
  599. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  600. data/third_party/abseil-cpp/absl/base/port.h +0 -1
  601. data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
  602. data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
  603. data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
  604. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
  605. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
  606. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
  607. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
  608. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
  609. data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
  610. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
  611. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
  612. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
  613. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
  614. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
  615. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
  616. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
  617. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
  618. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
  619. data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
  620. data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
  621. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
  622. data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
  623. data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
  624. data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
  625. data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
  626. data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
  627. data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
  628. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
  629. data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  630. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
  631. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
  632. data/third_party/abseil-cpp/absl/status/status.cc +29 -22
  633. data/third_party/abseil-cpp/absl/status/status.h +81 -20
  634. data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
  635. data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
  636. data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
  637. data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
  638. data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
  639. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
  640. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
  641. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
  642. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
  643. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
  644. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
  645. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
  646. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
  647. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
  648. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
  649. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
  650. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
  651. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
  652. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
  653. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
  654. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
  655. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
  656. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
  657. data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
  658. data/third_party/abseil-cpp/absl/strings/match.h +16 -6
  659. data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
  660. data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
  661. data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
  662. data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
  663. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
  664. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +1 -0
  665. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
  666. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
  667. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
  668. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
  669. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
  670. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
  671. data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
  672. data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
  673. data/third_party/abseil-cpp/absl/time/clock.h +2 -2
  674. data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
  675. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
  676. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
  677. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
  678. data/third_party/abseil-cpp/absl/time/time.cc +4 -3
  679. data/third_party/abseil-cpp/absl/time/time.h +26 -24
  680. data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
  681. data/third_party/abseil-cpp/absl/types/variant.h +9 -4
  682. data/third_party/boringssl-with-bazel/err_data.c +742 -724
  683. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +3 -3
  684. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
  685. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +2 -2
  686. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +5 -5
  687. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +4 -11
  688. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +3 -3
  689. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +22 -10
  690. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +2 -2
  691. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +16 -16
  692. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +35 -0
  693. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +28 -79
  694. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +40 -86
  695. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +6 -17
  696. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +10 -61
  697. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +0 -2
  698. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +2 -2
  699. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +4 -0
  700. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +158 -0
  701. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +3 -10
  702. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +8 -9
  703. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +60 -45
  704. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +6 -81
  705. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
  706. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +101 -3
  707. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
  708. data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c +41 -0
  709. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +11 -2
  710. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +3 -3
  711. data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/dh_asn1.c +0 -0
  712. data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/params.c +179 -0
  713. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +25 -0
  714. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +2 -17
  715. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
  716. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +4 -1
  717. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +13 -20
  718. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +2 -3
  719. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +10 -2
  720. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +32 -16
  721. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
  722. data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/check.c +0 -0
  723. data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/dh.c +136 -213
  724. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
  725. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
  726. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +16 -0
  727. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +9 -2
  728. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
  729. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
  730. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
  731. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +43 -46
  732. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
  733. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
  734. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
  735. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
  736. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
  737. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
  738. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
  739. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +28 -0
  740. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +135 -43
  741. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -14
  742. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +51 -32
  743. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
  744. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +161 -9
  745. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +45 -48
  746. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
  747. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
  748. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +121 -71
  749. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +71 -41
  750. data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
  751. data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
  752. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
  753. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +1 -1
  754. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
  755. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +10 -7
  756. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +13 -11
  757. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +4 -0
  758. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/is_fips.c → rand_extra/passive.c} +16 -11
  759. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +5 -1
  760. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +7 -13
  761. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
  762. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +19 -0
  763. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +5 -1
  764. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
  765. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
  766. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +4 -31
  767. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +10 -7
  768. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +39 -89
  769. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +17 -24
  770. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +1 -1
  771. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1 -1
  772. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +29 -23
  773. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
  774. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +21 -34
  775. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +6 -2
  776. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +2 -2
  777. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
  778. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
  779. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +39 -4
  780. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +2 -2
  781. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +3 -3
  782. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +11 -10
  783. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -3
  784. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +25 -25
  785. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +4 -6
  786. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +2 -1
  787. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +40 -20
  788. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +3 -4
  789. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +25 -36
  790. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +1 -1
  791. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
  792. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +7 -6
  793. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +6 -6
  794. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +0 -3
  795. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +3 -3
  796. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +737 -551
  797. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +0 -167
  798. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +19 -5
  799. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +62 -0
  800. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +22 -7
  801. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +15 -4
  802. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
  803. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
  804. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +56 -26
  805. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +1 -0
  806. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +20 -2
  807. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -0
  808. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
  809. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +13 -40
  810. data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
  811. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
  812. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
  813. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
  814. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +5 -2
  815. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +2 -1
  816. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +239 -37
  817. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +28 -8
  818. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +702 -219
  819. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +141 -36
  820. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
  821. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
  822. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
  823. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +47 -15
  824. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +11 -20
  825. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +159 -13
  826. data/third_party/boringssl-with-bazel/src/ssl/internal.h +253 -58
  827. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
  828. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -1
  829. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +7 -8
  830. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
  831. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
  832. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +90 -25
  833. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +7 -8
  834. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +2 -2
  835. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +5 -7
  836. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +450 -104
  837. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
  838. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +2 -2
  839. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +48 -15
  840. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +232 -85
  841. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
  842. data/third_party/xxhash/xxhash.h +5443 -0
  843. metadata +174 -95
  844. data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +0 -60
  845. data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +0 -52
  846. data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +0 -143
  847. data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +0 -42
  848. data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +0 -84
  849. data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +0 -94
  850. data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +0 -54
  851. data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +0 -173
  852. data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +0 -36
  853. data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +0 -92
  854. data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.c +0 -42
  855. data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.h +0 -35
  856. data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.c +0 -62
  857. data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.h +0 -40
  858. data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.c +0 -45
  859. data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.h +0 -40
  860. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.c +0 -49
  861. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.h +0 -35
  862. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.c +0 -68
  863. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.h +0 -40
  864. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.c +0 -51
  865. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.h +0 -35
  866. data/src/core/lib/iomgr/iomgr_posix.h +0 -26
  867. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
  868. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
  869. data/src/core/lib/security/authorization/authorization_engine.cc +0 -177
  870. data/src/core/lib/security/authorization/authorization_engine.h +0 -84
  871. data/src/core/lib/security/authorization/evaluate_args.cc +0 -148
  872. data/src/core/lib/security/authorization/evaluate_args.h +0 -59
  873. data/src/core/lib/security/authorization/mock_cel/activation.h +0 -57
  874. data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +0 -44
  875. data/src/core/lib/security/authorization/mock_cel/cel_expression.h +0 -69
  876. data/src/core/lib/security/authorization/mock_cel/cel_value.h +0 -97
  877. data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +0 -67
  878. data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +0 -57
  879. data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
  880. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -504
  881. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
  882. data/third_party/upb/upb/json_decode.c +0 -1443
  883. data/third_party/upb/upb/json_decode.h +0 -23
  884. data/third_party/upb/upb/json_encode.c +0 -713
  885. data/third_party/upb/upb/json_encode.h +0 -36
@@ -141,20 +141,10 @@ extern "C" {
141
141
  #stname \
142
142
  ASN1_ITEM_end(tname)
143
143
 
144
- #define ASN1_NDEF_SEQUENCE(tname) \
145
- ASN1_SEQUENCE(tname)
146
-
147
- #define ASN1_NDEF_SEQUENCE_cb(tname, cb) \
148
- ASN1_SEQUENCE_cb(tname, cb)
149
-
150
144
  #define ASN1_SEQUENCE_cb(tname, cb) \
151
145
  static const ASN1_AUX tname##_aux = {NULL, 0, 0, cb, 0}; \
152
146
  ASN1_SEQUENCE(tname)
153
147
 
154
- #define ASN1_BROKEN_SEQUENCE(tname) \
155
- static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_BROKEN, 0, 0, 0}; \
156
- ASN1_SEQUENCE(tname)
157
-
158
148
  #define ASN1_SEQUENCE_ref(tname, cb) \
159
149
  static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_REFCOUNT, offsetof(tname, references), cb, 0}; \
160
150
  ASN1_SEQUENCE(tname)
@@ -163,20 +153,6 @@ extern "C" {
163
153
  static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_ENCODING, 0, cb, offsetof(tname, enc)}; \
164
154
  ASN1_SEQUENCE(tname)
165
155
 
166
- #define ASN1_NDEF_SEQUENCE_END(tname) \
167
- ;\
168
- ASN1_ITEM_start(tname) \
169
- ASN1_ITYPE_NDEF_SEQUENCE,\
170
- V_ASN1_SEQUENCE,\
171
- tname##_seq_tt,\
172
- sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\
173
- NULL,\
174
- sizeof(tname),\
175
- #tname \
176
- ASN1_ITEM_end(tname)
177
-
178
- #define ASN1_BROKEN_SEQUENCE_END(stname) ASN1_SEQUENCE_END_ref(stname, stname)
179
-
180
156
  #define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname)
181
157
 
182
158
  #define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname)
@@ -193,18 +169,6 @@ extern "C" {
193
169
  #stname \
194
170
  ASN1_ITEM_end(tname)
195
171
 
196
- #define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \
197
- ;\
198
- ASN1_ITEM_start(tname) \
199
- ASN1_ITYPE_NDEF_SEQUENCE,\
200
- V_ASN1_SEQUENCE,\
201
- tname##_seq_tt,\
202
- sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\
203
- &tname##_aux,\
204
- sizeof(stname),\
205
- #stname \
206
- ASN1_ITEM_end(tname)
207
-
208
172
 
209
173
  /* This pair helps declare a CHOICE type. We can do:
210
174
  *
@@ -353,14 +317,6 @@ extern "C" {
353
317
  #define ASN1_EXP_SEQUENCE_OF_OPT(stname, field, type, tag) \
354
318
  ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL)
355
319
 
356
- /* EXPLICIT using indefinite length constructed form */
357
- #define ASN1_NDEF_EXP(stname, field, type, tag) \
358
- ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_NDEF)
359
-
360
- /* EXPLICIT OPTIONAL using indefinite length constructed form */
361
- #define ASN1_NDEF_EXP_OPT(stname, field, type, tag) \
362
- ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_NDEF)
363
-
364
320
  /* Macros for the ASN1_ADB structure */
365
321
 
366
322
  #define ASN1_ADB(name) \
@@ -393,9 +349,7 @@ struct ASN1_TEMPLATE_st {
393
349
  unsigned long flags; /* Various flags */
394
350
  long tag; /* tag, not used if no tagging */
395
351
  unsigned long offset; /* Offset of this field in structure */
396
- #ifndef NO_ASN1_FIELD_NAMES
397
352
  const char *field_name; /* Field name */
398
- #endif
399
353
  ASN1_ITEM_EXP *item; /* Relevant ASN1_ITEM or ASN1_ADB */
400
354
  };
401
355
 
@@ -504,13 +458,6 @@ struct ASN1_ADB_TABLE_st {
504
458
 
505
459
  #define ASN1_TFLG_COMBINE (0x1<<10)
506
460
 
507
- /* This flag when present in a SEQUENCE OF, SET OF
508
- * or EXPLICIT causes indefinite length constructed
509
- * encoding to be used if required.
510
- */
511
-
512
- #define ASN1_TFLG_NDEF (0x1<<11)
513
-
514
461
  /* This is the actual ASN1 item itself */
515
462
 
516
463
  struct ASN1_ITEM_st {
@@ -520,9 +467,7 @@ const ASN1_TEMPLATE *templates; /* If SEQUENCE or CHOICE this contains the conte
520
467
  long tcount; /* Number of templates if SEQUENCE or CHOICE */
521
468
  const void *funcs; /* functions that handle this type */
522
469
  long size; /* Structure size (usually)*/
523
- #ifndef NO_ASN1_FIELD_NAMES
524
470
  const char *sname; /* Structure name */
525
- #endif
526
471
  };
527
472
 
528
473
  /* These are values for the itype field and
@@ -547,10 +492,6 @@ const char *sname; /* Structure name */
547
492
  * The 'funcs' field is used for application
548
493
  * specific functions.
549
494
  *
550
- * For COMPAT types the funcs field gives a
551
- * set of functions that handle this type, this
552
- * supports the old d2i, i2d convention.
553
- *
554
495
  * The EXTERN type uses a new style d2i/i2d.
555
496
  * The new style should be used where possible
556
497
  * because it avoids things like the d2i IMPLICIT
@@ -563,10 +504,6 @@ const char *sname; /* Structure name */
563
504
  * has a special meaning, it is used as a mask
564
505
  * of acceptable types using the B_ASN1 constants.
565
506
  *
566
- * NDEF_SEQUENCE is the same as SEQUENCE except
567
- * that it will use indefinite length constructed
568
- * encoding if requested.
569
- *
570
507
  */
571
508
 
572
509
  #define ASN1_ITYPE_PRIMITIVE 0x0
@@ -575,14 +512,10 @@ const char *sname; /* Structure name */
575
512
 
576
513
  #define ASN1_ITYPE_CHOICE 0x2
577
514
 
578
- #define ASN1_ITYPE_COMPAT 0x3
579
-
580
515
  #define ASN1_ITYPE_EXTERN 0x4
581
516
 
582
517
  #define ASN1_ITYPE_MSTRING 0x5
583
518
 
584
- #define ASN1_ITYPE_NDEF_SEQUENCE 0x6
585
-
586
519
  /* Cache for ASN1 tag and length, so we
587
520
  * don't keep re-reading it for things
588
521
  * like CHOICE
@@ -615,17 +548,6 @@ typedef int ASN1_ex_print_func(BIO *out, ASN1_VALUE **pval,
615
548
  int indent, const char *fname,
616
549
  const ASN1_PCTX *pctx);
617
550
 
618
- typedef int ASN1_primitive_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype, const ASN1_ITEM *it);
619
- typedef int ASN1_primitive_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len, int utype, char *free_cont, const ASN1_ITEM *it);
620
- typedef int ASN1_primitive_print(BIO *out, ASN1_VALUE **pval, const ASN1_ITEM *it, int indent, const ASN1_PCTX *pctx);
621
-
622
- typedef struct ASN1_COMPAT_FUNCS_st {
623
- ASN1_new_func *asn1_new;
624
- ASN1_free_func *asn1_free;
625
- ASN1_d2i_func *asn1_d2i;
626
- ASN1_i2d_func *asn1_i2d;
627
- } ASN1_COMPAT_FUNCS;
628
-
629
551
  typedef struct ASN1_EXTERN_FUNCS_st {
630
552
  void *app_data;
631
553
  ASN1_ex_new_func *asn1_ex_new;
@@ -637,17 +559,6 @@ typedef struct ASN1_EXTERN_FUNCS_st {
637
559
  ASN1_ex_print_func *asn1_ex_print;
638
560
  } ASN1_EXTERN_FUNCS;
639
561
 
640
- typedef struct ASN1_PRIMITIVE_FUNCS_st {
641
- void *app_data;
642
- unsigned long flags;
643
- ASN1_ex_new_func *prim_new;
644
- ASN1_ex_free_func *prim_free;
645
- ASN1_ex_free_func *prim_clear;
646
- ASN1_primitive_c2i *prim_c2i;
647
- ASN1_primitive_i2c *prim_i2c;
648
- ASN1_primitive_print *prim_print;
649
- } ASN1_PRIMITIVE_FUNCS;
650
-
651
562
  /* This is the ASN1_AUX structure: it handles various
652
563
  * miscellaneous requirements. For example the use of
653
564
  * reference counts and an informational callback.
@@ -676,31 +587,12 @@ typedef struct ASN1_AUX_st {
676
587
  int enc_offset; /* Offset of ASN1_ENCODING structure */
677
588
  } ASN1_AUX;
678
589
 
679
- /* For print related callbacks exarg points to this structure */
680
- typedef struct ASN1_PRINT_ARG_st {
681
- BIO *out;
682
- int indent;
683
- const ASN1_PCTX *pctx;
684
- } ASN1_PRINT_ARG;
685
-
686
- /* For streaming related callbacks exarg points to this structure */
687
- typedef struct ASN1_STREAM_ARG_st {
688
- /* BIO to stream through */
689
- BIO *out;
690
- /* BIO with filters appended */
691
- BIO *ndef_bio;
692
- /* Streaming I/O boundary */
693
- unsigned char **boundary;
694
- } ASN1_STREAM_ARG;
695
-
696
590
  /* Flags in ASN1_AUX */
697
591
 
698
592
  /* Use a reference count */
699
593
  #define ASN1_AFLG_REFCOUNT 1
700
594
  /* Save the encoding of structure (useful for signatures) */
701
595
  #define ASN1_AFLG_ENCODING 2
702
- /* The Sequence length is invalid */
703
- #define ASN1_AFLG_BROKEN 4
704
596
 
705
597
  /* operation values for asn1_cb */
706
598
 
@@ -732,27 +624,6 @@ typedef struct ASN1_STREAM_ARG_st {
732
624
  ASN1_ITYPE_MSTRING, mask, NULL, 0, NULL, sizeof(ASN1_STRING), #itname \
733
625
  ASN1_ITEM_end(itname)
734
626
 
735
- /* Macro to implement an ASN1_ITEM in terms of old style funcs */
736
-
737
- #define IMPLEMENT_COMPAT_ASN1(sname) IMPLEMENT_COMPAT_ASN1_type(sname, V_ASN1_SEQUENCE)
738
-
739
- #define IMPLEMENT_COMPAT_ASN1_type(sname, tag) \
740
- static const ASN1_COMPAT_FUNCS sname##_ff = { \
741
- (ASN1_new_func *)sname##_new, \
742
- (ASN1_free_func *)sname##_free, \
743
- (ASN1_d2i_func *)d2i_##sname, \
744
- (ASN1_i2d_func *)i2d_##sname, \
745
- }; \
746
- ASN1_ITEM_start(sname) \
747
- ASN1_ITYPE_COMPAT, \
748
- tag, \
749
- NULL, \
750
- 0, \
751
- &sname##_ff, \
752
- 0, \
753
- #sname \
754
- ASN1_ITEM_end(sname)
755
-
756
627
  #define IMPLEMENT_EXTERN_ASN1(sname, tag, fptrs) \
757
628
  ASN1_ITEM_start(sname) \
758
629
  ASN1_ITYPE_EXTERN, \
@@ -813,12 +684,6 @@ typedef struct ASN1_STREAM_ARG_st {
813
684
  return ASN1_item_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\
814
685
  }
815
686
 
816
- #define IMPLEMENT_ASN1_NDEF_FUNCTION(stname) \
817
- int i2d_##stname##_NDEF(stname *a, unsigned char **out) \
818
- { \
819
- return ASN1_item_ndef_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(stname));\
820
- }
821
-
822
687
  /* This includes evil casts to remove const: they will go away when full
823
688
  * ASN1 constification is done.
824
689
  */
@@ -854,38 +719,6 @@ DECLARE_ASN1_ITEM(ASN1_SEQUENCE)
854
719
 
855
720
  DEFINE_STACK_OF(ASN1_VALUE)
856
721
 
857
- /* Functions used internally by the ASN1 code */
858
-
859
- int ASN1_item_ex_new(ASN1_VALUE **pval, const ASN1_ITEM *it);
860
- void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it);
861
- int ASN1_template_new(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt);
862
- int ASN1_primitive_new(ASN1_VALUE **pval, const ASN1_ITEM *it);
863
-
864
- void ASN1_template_free(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt);
865
- int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, const ASN1_ITEM *it,
866
- int tag, int aclass, char opt, ASN1_TLC *ctx);
867
-
868
- int ASN1_item_ex_i2d(ASN1_VALUE **pval, unsigned char **out, const ASN1_ITEM *it, int tag, int aclass);
869
- void ASN1_primitive_free(ASN1_VALUE **pval, const ASN1_ITEM *it);
870
-
871
- int asn1_ex_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype, const ASN1_ITEM *it);
872
- int asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len, int utype, char *free_cont, const ASN1_ITEM *it);
873
-
874
- int asn1_get_choice_selector(ASN1_VALUE **pval, const ASN1_ITEM *it);
875
- int asn1_set_choice_selector(ASN1_VALUE **pval, int value, const ASN1_ITEM *it);
876
-
877
- ASN1_VALUE ** asn1_get_field_ptr(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt);
878
-
879
- const ASN1_TEMPLATE *asn1_do_adb(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt, int nullerr);
880
-
881
- void asn1_refcount_set_one(ASN1_VALUE **pval, const ASN1_ITEM *it);
882
- int asn1_refcount_dec_and_test_zero(ASN1_VALUE **pval, const ASN1_ITEM *it);
883
-
884
- void asn1_enc_init(ASN1_VALUE **pval, const ASN1_ITEM *it);
885
- void asn1_enc_free(ASN1_VALUE **pval, const ASN1_ITEM *it);
886
- int asn1_enc_restore(int *len, unsigned char **out, ASN1_VALUE **pval, const ASN1_ITEM *it);
887
- int asn1_enc_save(ASN1_VALUE **pval, const unsigned char *in, int inlen, const ASN1_ITEM *it);
888
-
889
722
  #ifdef __cplusplus
890
723
  }
891
724
  #endif
@@ -90,21 +90,25 @@ extern "C" {
90
90
  #elif defined(__x86) || defined(__i386) || defined(__i386__) || defined(_M_IX86)
91
91
  #define OPENSSL_32_BIT
92
92
  #define OPENSSL_X86
93
- #elif defined(__aarch64__) || defined(_M_ARM64)
93
+ #elif defined(__AARCH64EL__) || defined(_M_ARM64)
94
94
  #define OPENSSL_64_BIT
95
95
  #define OPENSSL_AARCH64
96
- #elif defined(__arm) || defined(__arm__) || defined(_M_ARM)
96
+ #elif defined(__ARMEL__) || defined(_M_ARM)
97
97
  #define OPENSSL_32_BIT
98
98
  #define OPENSSL_ARM
99
99
  #elif (defined(__PPC64__) || defined(__powerpc64__)) && defined(_LITTLE_ENDIAN)
100
100
  #define OPENSSL_64_BIT
101
101
  #define OPENSSL_PPC64LE
102
- #elif defined(__mips__) && !defined(__LP64__)
102
+ #elif defined(__MIPSEL__) && !defined(__LP64__)
103
103
  #define OPENSSL_32_BIT
104
104
  #define OPENSSL_MIPS
105
- #elif defined(__mips__) && defined(__LP64__)
105
+ #elif defined(__MIPSEL__) && defined(__LP64__)
106
106
  #define OPENSSL_64_BIT
107
107
  #define OPENSSL_MIPS64
108
+ #elif defined(__riscv) && __SIZEOF_POINTER__ == 8
109
+ #define OPENSSL_64_BIT
110
+ #elif defined(__riscv) && __SIZEOF_POINTER__ == 4
111
+ #define OPENSSL_32_BIT
108
112
  #elif defined(__pnacl__)
109
113
  #define OPENSSL_32_BIT
110
114
  #define OPENSSL_PNACL
@@ -156,6 +160,14 @@ extern "C" {
156
160
 
157
161
  #if defined(__ANDROID_API__)
158
162
  #define OPENSSL_ANDROID
163
+ #if defined(BORINGSSL_FIPS)
164
+ // The FIPS module on Android passively receives entropy.
165
+ #define BORINGSSL_FIPS_PASSIVE_ENTROPY
166
+ #endif
167
+ #endif
168
+
169
+ #if defined(__FreeBSD__)
170
+ #define OPENSSL_FREEBSD
159
171
  #endif
160
172
 
161
173
  // BoringSSL requires platform's locking APIs to make internal global state
@@ -187,7 +199,7 @@ extern "C" {
187
199
  // A consumer may use this symbol in the preprocessor to temporarily build
188
200
  // against multiple revisions of BoringSSL at the same time. It is not
189
201
  // recommended to do so for longer than is necessary.
190
- #define BORINGSSL_API_VERSION 12
202
+ #define BORINGSSL_API_VERSION 14
191
203
 
192
204
  #if defined(BORINGSSL_SHARED_LIBRARY)
193
205
 
@@ -372,6 +384,7 @@ typedef struct bignum_ctx BN_CTX;
372
384
  typedef struct bignum_st BIGNUM;
373
385
  typedef struct bio_method_st BIO_METHOD;
374
386
  typedef struct bio_st BIO;
387
+ typedef struct blake2b_state_st BLAKE2B_CTX;
375
388
  typedef struct bn_gencb_st BN_GENCB;
376
389
  typedef struct bn_mont_ctx_st BN_MONT_CTX;
377
390
  typedef struct buf_mem_st BUF_MEM;
@@ -418,6 +431,7 @@ typedef struct spake2_ctx_st SPAKE2_CTX;
418
431
  typedef struct srtp_protection_profile_st SRTP_PROTECTION_PROFILE;
419
432
  typedef struct ssl_cipher_st SSL_CIPHER;
420
433
  typedef struct ssl_ctx_st SSL_CTX;
434
+ typedef struct ssl_ech_server_config_list_st SSL_ECH_SERVER_CONFIG_LIST;
421
435
  typedef struct ssl_method_st SSL_METHOD;
422
436
  typedef struct ssl_private_key_method_st SSL_PRIVATE_KEY_METHOD;
423
437
  typedef struct ssl_quic_method_st SSL_QUIC_METHOD;
@@ -0,0 +1,62 @@
1
+ /* Copyright (c) 2021, Google Inc.
2
+ *
3
+ * Permission to use, copy, modify, and/or distribute this software for any
4
+ * purpose with or without fee is hereby granted, provided that the above
5
+ * copyright notice and this permission notice appear in all copies.
6
+ *
7
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
10
+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
12
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
13
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
14
+
15
+ #ifndef OPENSSL_HEADER_BLAKE2_H
16
+ #define OPENSSL_HEADER_BLAKE2_H
17
+
18
+ #include <openssl/base.h>
19
+
20
+ #if defined(__cplusplus)
21
+ extern "C" {
22
+ #endif
23
+
24
+
25
+ #define BLAKE2B256_DIGEST_LENGTH (256 / 8)
26
+ #define BLAKE2B_CBLOCK 128
27
+
28
+ struct blake2b_state_st {
29
+ uint64_t h[8];
30
+ uint64_t t_low, t_high;
31
+ union {
32
+ uint8_t bytes[BLAKE2B_CBLOCK];
33
+ uint64_t words[16];
34
+ } block;
35
+ size_t block_used;
36
+ };
37
+
38
+ // BLAKE2B256_Init initialises |b2b| to perform a BLAKE2b-256 hash. There are no
39
+ // pointers inside |b2b| thus release of |b2b| is purely managed by the caller.
40
+ OPENSSL_EXPORT void BLAKE2B256_Init(BLAKE2B_CTX *b2b);
41
+
42
+ // BLAKE2B256_Update appends |len| bytes from |data| to the digest being
43
+ // calculated by |b2b|.
44
+ OPENSSL_EXPORT void BLAKE2B256_Update(BLAKE2B_CTX *b2b, const void *data,
45
+ size_t len);
46
+
47
+ // BLAKE2B256_Final completes the digest calculated by |b2b| and writes
48
+ // |BLAKE2B256_DIGEST_LENGTH| bytes to |out|.
49
+ OPENSSL_EXPORT void BLAKE2B256_Final(uint8_t out[BLAKE2B256_DIGEST_LENGTH],
50
+ BLAKE2B_CTX *b2b);
51
+
52
+ // BLAKE2B256 writes the BLAKE2b-256 digset of |len| bytes from |data| to
53
+ // |out|.
54
+ OPENSSL_EXPORT void BLAKE2B256(const uint8_t *data, size_t len,
55
+ uint8_t out[BLAKE2B256_DIGEST_LENGTH]);
56
+
57
+
58
+ #if defined(__cplusplus)
59
+ } // extern C
60
+ #endif
61
+
62
+ #endif // OPENSSL_HEADER_BLAKE2_H
@@ -252,12 +252,16 @@ OPENSSL_EXPORT int CBS_get_any_asn1_element(CBS *cbs, CBS *out,
252
252
  size_t *out_header_len);
253
253
 
254
254
  // CBS_get_any_ber_asn1_element acts the same as |CBS_get_any_asn1_element| but
255
- // also allows indefinite-length elements to be returned. In that case,
256
- // |*out_header_len| and |CBS_len(out)| will both be two as only the header is
257
- // returned, otherwise it behaves the same as the previous function.
255
+ // also allows indefinite-length elements to be returned and does not enforce
256
+ // that lengths are minimal. For indefinite-lengths, |*out_header_len| and
257
+ // |CBS_len(out)| will be equal as only the header is returned (although this is
258
+ // also true for empty elements so the length must be checked too). If
259
+ // |out_ber_found| is not NULL then it is set to one if any case of invalid DER
260
+ // but valid BER is found, and to zero otherwise.
258
261
  OPENSSL_EXPORT int CBS_get_any_ber_asn1_element(CBS *cbs, CBS *out,
259
262
  unsigned *out_tag,
260
- size_t *out_header_len);
263
+ size_t *out_header_len,
264
+ int *out_ber_found);
261
265
 
262
266
  // CBS_get_asn1_uint64 gets an ASN.1 INTEGER from |cbs| using |CBS_get_asn1|
263
267
  // and sets |*out| to its value. It returns one on success and zero on error,
@@ -310,14 +314,25 @@ OPENSSL_EXPORT int CBS_get_optional_asn1_bool(CBS *cbs, int *out, unsigned tag,
310
314
  int default_value);
311
315
 
312
316
  // CBS_is_valid_asn1_bitstring returns one if |cbs| is a valid ASN.1 BIT STRING
313
- // and zero otherwise.
317
+ // body and zero otherwise.
314
318
  OPENSSL_EXPORT int CBS_is_valid_asn1_bitstring(const CBS *cbs);
315
319
 
316
320
  // CBS_asn1_bitstring_has_bit returns one if |cbs| is a valid ASN.1 BIT STRING
317
- // and the specified bit is present and set. Otherwise, it returns zero. |bit|
318
- // is indexed starting from zero.
321
+ // body and the specified bit is present and set. Otherwise, it returns zero.
322
+ // |bit| is indexed starting from zero.
319
323
  OPENSSL_EXPORT int CBS_asn1_bitstring_has_bit(const CBS *cbs, unsigned bit);
320
324
 
325
+ // CBS_is_valid_asn1_integer returns one if |cbs| is a valid ASN.1 INTEGER,
326
+ // body and zero otherwise. On success, if |out_is_negative| is non-NULL,
327
+ // |*out_is_negative| will be set to one if |cbs| is negative and zero
328
+ // otherwise.
329
+ OPENSSL_EXPORT int CBS_is_valid_asn1_integer(const CBS *cbs,
330
+ int *out_is_negative);
331
+
332
+ // CBS_is_unsigned_asn1_integer returns one if |cbs| is a valid non-negative
333
+ // ASN.1 INTEGER body and zero otherwise.
334
+ OPENSSL_EXPORT int CBS_is_unsigned_asn1_integer(const CBS *cbs);
335
+
321
336
  // CBS_asn1_oid_to_text interprets |cbs| as DER-encoded ASN.1 OBJECT IDENTIFIER
322
337
  // contents (not including the element framing) and returns the ASCII
323
338
  // representation (e.g., "1.2.840.113554.4.1.72585") in a newly-allocated