grpc 1.28.0 → 1.42.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 (1954) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +1824 -22390
  3. data/etc/roots.pem +592 -899
  4. data/include/grpc/byte_buffer.h +1 -1
  5. data/include/grpc/byte_buffer_reader.h +1 -1
  6. data/include/grpc/compression.h +1 -1
  7. data/include/grpc/event_engine/README.md +38 -0
  8. data/include/grpc/event_engine/endpoint_config.h +43 -0
  9. data/include/grpc/event_engine/event_engine.h +375 -0
  10. data/include/grpc/event_engine/internal/memory_allocator_impl.h +98 -0
  11. data/include/grpc/event_engine/memory_allocator.h +210 -0
  12. data/include/grpc/event_engine/port.h +39 -0
  13. data/include/grpc/fork.h +1 -1
  14. data/include/grpc/grpc.h +52 -13
  15. data/include/grpc/grpc_posix.h +5 -2
  16. data/include/grpc/grpc_security.h +324 -180
  17. data/include/grpc/grpc_security_constants.h +20 -0
  18. data/include/grpc/impl/codegen/README.md +22 -0
  19. data/include/grpc/impl/codegen/atm.h +5 -3
  20. data/include/grpc/impl/codegen/atm_gcc_atomic.h +2 -0
  21. data/include/grpc/impl/codegen/atm_gcc_sync.h +2 -0
  22. data/include/grpc/impl/codegen/atm_windows.h +6 -0
  23. data/include/grpc/impl/codegen/byte_buffer.h +3 -1
  24. data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -0
  25. data/include/grpc/impl/codegen/compression_types.h +2 -0
  26. data/include/grpc/impl/codegen/connectivity_state.h +2 -0
  27. data/include/grpc/impl/codegen/fork.h +2 -0
  28. data/include/grpc/impl/codegen/gpr_slice.h +2 -0
  29. data/include/grpc/impl/codegen/gpr_types.h +2 -0
  30. data/include/grpc/impl/codegen/grpc_types.h +80 -54
  31. data/include/grpc/impl/codegen/log.h +2 -2
  32. data/include/grpc/impl/codegen/port_platform.h +103 -100
  33. data/include/grpc/impl/codegen/propagation_bits.h +2 -0
  34. data/include/grpc/impl/codegen/slice.h +2 -0
  35. data/include/grpc/impl/codegen/status.h +2 -0
  36. data/include/grpc/impl/codegen/sync.h +8 -5
  37. data/include/grpc/impl/codegen/sync_abseil.h +2 -0
  38. data/include/grpc/impl/codegen/sync_custom.h +2 -0
  39. data/include/grpc/impl/codegen/sync_generic.h +3 -0
  40. data/include/grpc/impl/codegen/sync_posix.h +4 -2
  41. data/include/grpc/impl/codegen/sync_windows.h +6 -0
  42. data/include/grpc/module.modulemap +31 -46
  43. data/include/grpc/slice.h +1 -1
  44. data/include/grpc/slice_buffer.h +3 -3
  45. data/include/grpc/status.h +1 -1
  46. data/include/grpc/support/atm.h +1 -1
  47. data/include/grpc/support/atm_gcc_atomic.h +1 -1
  48. data/include/grpc/support/atm_gcc_sync.h +1 -1
  49. data/include/grpc/support/atm_windows.h +1 -1
  50. data/include/grpc/support/log.h +1 -1
  51. data/include/grpc/support/port_platform.h +1 -1
  52. data/include/grpc/support/sync.h +4 -4
  53. data/include/grpc/support/sync_abseil.h +1 -1
  54. data/include/grpc/support/sync_custom.h +1 -1
  55. data/include/grpc/support/sync_generic.h +1 -1
  56. data/include/grpc/support/sync_posix.h +1 -1
  57. data/include/grpc/support/sync_windows.h +1 -1
  58. data/include/grpc/support/time.h +9 -9
  59. data/src/core/ext/filters/census/grpc_context.cc +1 -0
  60. data/src/core/ext/filters/client_channel/backend_metric.cc +30 -28
  61. data/src/core/ext/filters/client_channel/backup_poller.cc +8 -6
  62. data/src/core/ext/filters/client_channel/backup_poller.h +1 -0
  63. data/src/core/ext/filters/client_channel/channel_connectivity.cc +158 -202
  64. data/src/core/ext/filters/client_channel/client_channel.cc +2207 -3176
  65. data/src/core/ext/filters/client_channel/client_channel.h +561 -62
  66. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +6 -5
  67. data/src/core/ext/filters/client_channel/client_channel_channelz.h +2 -5
  68. data/src/core/ext/filters/client_channel/client_channel_factory.cc +2 -1
  69. data/src/core/ext/filters/client_channel/client_channel_factory.h +18 -19
  70. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +18 -13
  71. data/src/core/ext/filters/client_channel/config_selector.cc +59 -0
  72. data/src/core/ext/filters/client_channel/config_selector.h +145 -0
  73. data/src/core/ext/filters/client_channel/connector.h +19 -19
  74. data/src/core/ext/filters/client_channel/dynamic_filters.cc +190 -0
  75. data/src/core/ext/filters/client_channel/dynamic_filters.h +99 -0
  76. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +26 -122
  77. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +15 -11
  78. data/src/core/ext/filters/client_channel/health/health_check_client.cc +71 -73
  79. data/src/core/ext/filters/client_channel/health/health_check_client.h +37 -35
  80. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +43 -40
  81. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +10 -2
  82. data/src/core/ext/filters/client_channel/http_proxy.cc +59 -34
  83. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +96 -0
  84. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +101 -0
  85. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +26 -13
  86. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +1 -1
  87. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +12 -21
  88. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +659 -608
  89. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +4 -0
  90. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +76 -0
  91. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +37 -0
  92. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -2
  93. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +8 -44
  94. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -1
  95. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +5 -3
  96. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +5 -6
  97. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
  98. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +57 -44
  99. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +918 -0
  100. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +757 -0
  101. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +37 -0
  102. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2502 -0
  103. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +25 -26
  104. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +19 -47
  105. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +741 -0
  106. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +512 -137
  107. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +53 -26
  108. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +29 -0
  109. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +795 -0
  110. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +701 -0
  111. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1362 -0
  112. data/src/core/ext/filters/client_channel/lb_policy.cc +29 -35
  113. data/src/core/ext/filters/client_channel/lb_policy.h +130 -117
  114. data/src/core/ext/filters/client_channel/lb_policy_factory.h +2 -1
  115. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +19 -12
  116. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
  117. data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +27 -67
  118. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +12 -10
  119. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +139 -0
  120. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +136 -131
  121. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +6 -35
  122. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
  123. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +20 -17
  124. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +98 -138
  125. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +651 -216
  126. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +32 -5
  127. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
  128. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  129. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +79 -68
  130. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +124 -136
  131. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +8 -10
  132. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +384 -0
  133. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +38 -31
  134. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +892 -47
  135. data/src/core/ext/filters/client_channel/{xds/xds_channel_args.h → resolver/xds/xds_resolver.h} +9 -7
  136. data/src/core/ext/filters/client_channel/resolver.cc +9 -10
  137. data/src/core/ext/filters/client_channel/resolver.h +13 -23
  138. data/src/core/ext/filters/client_channel/resolver_factory.h +10 -8
  139. data/src/core/ext/filters/client_channel/resolver_registry.cc +57 -56
  140. data/src/core/ext/filters/client_channel/resolver_registry.h +10 -10
  141. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +61 -315
  142. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +42 -67
  143. data/src/core/ext/filters/client_channel/retry_filter.cc +2573 -0
  144. data/src/core/ext/filters/{workarounds/workaround_cronet_compression_filter.h → client_channel/retry_filter.h} +9 -6
  145. data/src/core/ext/filters/client_channel/retry_service_config.cc +316 -0
  146. data/src/core/ext/filters/client_channel/retry_service_config.h +96 -0
  147. data/src/core/ext/filters/client_channel/retry_throttle.cc +20 -49
  148. data/src/core/ext/filters/client_channel/retry_throttle.h +4 -2
  149. data/src/core/ext/filters/client_channel/server_address.cc +132 -13
  150. data/src/core/ext/filters/client_channel/server_address.h +80 -32
  151. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +156 -0
  152. data/src/core/ext/filters/client_channel/subchannel.cc +271 -347
  153. data/src/core/ext/filters/client_channel/subchannel.h +142 -163
  154. data/src/core/ext/filters/client_channel/subchannel_interface.h +41 -5
  155. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +38 -9
  156. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +27 -12
  157. data/src/core/ext/filters/client_idle/client_idle_filter.cc +47 -223
  158. data/src/core/ext/filters/client_idle/idle_filter_state.cc +96 -0
  159. data/src/core/ext/filters/client_idle/idle_filter_state.h +66 -0
  160. data/src/core/ext/filters/deadline/deadline_filter.cc +113 -108
  161. data/src/core/ext/filters/deadline/deadline_filter.h +7 -11
  162. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +503 -0
  163. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +39 -0
  164. data/src/core/ext/filters/fault_injection/service_config_parser.cc +181 -0
  165. data/src/core/ext/filters/fault_injection/service_config_parser.h +85 -0
  166. data/src/core/ext/filters/http/client/http_client_filter.cc +104 -101
  167. data/src/core/ext/filters/http/client_authority_filter.cc +21 -21
  168. data/src/core/ext/filters/http/http_filters_plugin.cc +54 -53
  169. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +274 -230
  170. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +398 -0
  171. data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +31 -0
  172. data/src/core/ext/filters/http/server/http_server_filter.cc +107 -98
  173. data/src/core/ext/filters/max_age/max_age_filter.cc +74 -70
  174. data/src/core/ext/filters/message_size/message_size_filter.cc +89 -113
  175. data/src/core/ext/filters/message_size/message_size_filter.h +12 -5
  176. data/src/core/ext/service_config/service_config.cc +227 -0
  177. data/src/core/ext/service_config/service_config.h +127 -0
  178. data/src/core/ext/service_config/service_config_call_data.h +72 -0
  179. data/src/core/ext/service_config/service_config_parser.cc +89 -0
  180. data/src/core/ext/service_config/service_config_parser.h +97 -0
  181. data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
  182. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +119 -49
  183. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +24 -5
  184. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +42 -35
  185. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +32 -16
  186. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +52 -88
  187. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +829 -357
  188. data/src/core/ext/transport/chttp2/server/chttp2_server.h +16 -2
  189. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +14 -6
  190. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +32 -24
  191. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +64 -25
  192. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +11 -9
  193. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
  194. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +5 -6
  195. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +548 -542
  196. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +17 -2
  197. data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
  198. data/src/core/ext/transport/chttp2/transport/context_list.h +5 -6
  199. data/src/core/ext/transport/chttp2/transport/flow_control.cc +82 -60
  200. data/src/core/ext/transport/chttp2/transport/flow_control.h +47 -33
  201. data/src/core/ext/transport/chttp2/transport/frame_data.cc +30 -29
  202. data/src/core/ext/transport/chttp2/transport/frame_data.h +11 -10
  203. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +25 -25
  204. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +9 -9
  205. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +15 -16
  206. data/src/core/ext/transport/chttp2/transport/frame_ping.h +10 -9
  207. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +18 -22
  208. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +9 -9
  209. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +53 -22
  210. data/src/core/ext/transport/chttp2/transport/frame_settings.h +11 -10
  211. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +25 -25
  212. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +7 -9
  213. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +41 -0
  214. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +311 -652
  215. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +241 -72
  216. data/src/core/ext/transport/chttp2/transport/hpack_encoder_index.h +107 -0
  217. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +86 -0
  218. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +69 -0
  219. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +868 -1175
  220. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +102 -84
  221. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +146 -0
  222. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +137 -0
  223. data/src/core/ext/transport/chttp2/transport/hpack_utils.cc +46 -0
  224. data/src/core/ext/transport/chttp2/transport/hpack_utils.h +30 -0
  225. data/src/core/ext/transport/chttp2/transport/http2_settings.h +4 -5
  226. data/src/core/ext/transport/chttp2/transport/huffsyms.h +2 -3
  227. data/src/core/ext/transport/chttp2/transport/internal.h +77 -56
  228. data/src/core/ext/transport/chttp2/transport/parsing.cc +168 -320
  229. data/src/core/ext/transport/chttp2/transport/popularity_count.h +60 -0
  230. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -2
  231. data/src/core/ext/transport/chttp2/transport/stream_map.h +2 -3
  232. data/src/core/ext/transport/chttp2/transport/varint.cc +13 -7
  233. data/src/core/ext/transport/chttp2/transport/varint.h +39 -28
  234. data/src/core/ext/transport/chttp2/transport/writing.cc +97 -80
  235. data/src/core/ext/transport/inproc/inproc_transport.cc +263 -180
  236. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +406 -0
  237. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1591 -0
  238. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +1 -1
  239. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +2 -2
  240. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +3 -3
  241. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +18 -6
  242. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +243 -0
  243. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +955 -0
  244. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +371 -0
  245. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1554 -0
  246. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +74 -0
  247. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +271 -0
  248. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +494 -0
  249. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +2116 -0
  250. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +35 -0
  251. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +83 -0
  252. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +56 -0
  253. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +370 -0
  254. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +124 -0
  255. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +470 -0
  256. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +35 -0
  257. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +94 -0
  258. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +382 -0
  259. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1295 -0
  260. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +103 -0
  261. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +418 -0
  262. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +34 -0
  263. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +84 -0
  264. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +53 -0
  265. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +161 -0
  266. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +241 -0
  267. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +917 -0
  268. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +171 -0
  269. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +830 -0
  270. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +36 -0
  271. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +94 -0
  272. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +244 -0
  273. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +1089 -0
  274. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +27 -0
  275. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +71 -0
  276. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +46 -0
  277. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +133 -0
  278. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +34 -0
  279. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +101 -0
  280. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +43 -0
  281. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +132 -0
  282. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +35 -0
  283. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +96 -0
  284. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +90 -0
  285. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +261 -0
  286. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +125 -0
  287. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +462 -0
  288. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +112 -0
  289. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +397 -0
  290. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +33 -0
  291. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +79 -0
  292. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +138 -0
  293. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +640 -0
  294. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +161 -0
  295. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +680 -0
  296. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +48 -0
  297. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +177 -0
  298. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +42 -0
  299. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +127 -0
  300. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +144 -0
  301. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +536 -0
  302. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +153 -0
  303. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +550 -0
  304. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +185 -0
  305. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +738 -0
  306. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +82 -0
  307. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +312 -0
  308. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +960 -0
  309. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +4213 -0
  310. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +60 -0
  311. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +177 -0
  312. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +49 -0
  313. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +134 -0
  314. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +29 -0
  315. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +73 -0
  316. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +79 -0
  317. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +298 -0
  318. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +79 -0
  319. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +303 -0
  320. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +42 -0
  321. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +123 -0
  322. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +403 -0
  323. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1785 -0
  324. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +19 -0
  325. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +35 -0
  326. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +130 -0
  327. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +559 -0
  328. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +73 -0
  329. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +237 -0
  330. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +148 -0
  331. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +674 -0
  332. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +27 -0
  333. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +62 -0
  334. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +25 -0
  335. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +62 -0
  336. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +146 -0
  337. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +535 -0
  338. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +27 -0
  339. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +62 -0
  340. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +27 -0
  341. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +62 -0
  342. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +54 -0
  343. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +163 -0
  344. data/src/core/ext/upb-generated/envoy/{api/v2/srds.upb.c → service/route/v3/rds.upb.c} +8 -8
  345. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +62 -0
  346. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +27 -0
  347. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +62 -0
  348. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +121 -0
  349. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +468 -0
  350. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +60 -0
  351. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +205 -0
  352. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +48 -0
  353. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +144 -0
  354. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +36 -0
  355. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +96 -0
  356. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +35 -0
  357. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +90 -0
  358. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +34 -0
  359. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +84 -0
  360. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +65 -0
  361. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +184 -0
  362. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +53 -0
  363. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +158 -0
  364. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +46 -0
  365. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +136 -0
  366. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +63 -0
  367. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +225 -0
  368. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +88 -0
  369. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +343 -0
  370. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +90 -0
  371. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +313 -0
  372. data/src/core/ext/upb-generated/envoy/type/{http.upb.c → v3/http.upb.c} +4 -3
  373. data/src/core/ext/upb-generated/envoy/type/{http.upb.h → v3/http.upb.h} +10 -10
  374. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +40 -0
  375. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +111 -0
  376. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +51 -0
  377. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +148 -0
  378. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +30 -0
  379. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +74 -0
  380. data/src/core/ext/upb-generated/google/api/annotations.upb.c +1 -1
  381. data/src/core/ext/upb-generated/google/api/annotations.upb.h +2 -2
  382. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +242 -0
  383. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +896 -0
  384. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +251 -0
  385. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +943 -0
  386. data/src/core/ext/upb-generated/google/api/http.upb.c +18 -18
  387. data/src/core/ext/upb-generated/google/api/http.upb.h +74 -36
  388. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +4 -4
  389. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +20 -8
  390. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +155 -154
  391. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +881 -524
  392. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +4 -4
  393. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +20 -8
  394. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +2 -2
  395. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +16 -4
  396. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +15 -15
  397. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +77 -61
  398. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +4 -4
  399. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +20 -8
  400. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +19 -19
  401. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +146 -38
  402. data/src/core/ext/upb-generated/google/rpc/status.upb.c +5 -5
  403. data/src/core/ext/upb-generated/google/rpc/status.upb.h +25 -12
  404. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +12 -12
  405. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +48 -47
  406. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +63 -63
  407. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +307 -195
  408. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +8 -8
  409. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +44 -16
  410. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +5 -5
  411. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +34 -10
  412. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +31 -31
  413. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +186 -72
  414. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +55 -0
  415. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +154 -0
  416. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +8 -8
  417. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +52 -16
  418. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +29 -0
  419. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +70 -0
  420. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +1 -1
  421. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +2 -2
  422. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +28 -0
  423. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +77 -0
  424. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +27 -0
  425. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +66 -0
  426. data/src/core/ext/upb-generated/validate/validate.upb.c +243 -226
  427. data/src/core/ext/upb-generated/validate/validate.upb.h +1048 -668
  428. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +58 -0
  429. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +182 -0
  430. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +28 -0
  431. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +66 -0
  432. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +52 -0
  433. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +155 -0
  434. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +42 -0
  435. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +90 -0
  436. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +36 -0
  437. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +100 -0
  438. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +54 -0
  439. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +178 -0
  440. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +36 -0
  441. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +91 -0
  442. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +58 -0
  443. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +130 -0
  444. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +33 -0
  445. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +83 -0
  446. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +354 -0
  447. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
  448. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +46 -0
  449. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +30 -0
  450. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +41 -0
  451. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +35 -0
  452. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +252 -0
  453. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +105 -0
  454. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +424 -0
  455. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +120 -0
  456. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +100 -0
  457. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +45 -0
  458. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +596 -0
  459. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +155 -0
  460. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +53 -0
  461. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +35 -0
  462. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +136 -0
  463. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +35 -0
  464. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +127 -0
  465. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +65 -0
  466. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +56 -0
  467. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +35 -0
  468. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +313 -0
  469. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +150 -0
  470. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +144 -0
  471. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +55 -0
  472. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +56 -0
  473. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +35 -0
  474. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +66 -0
  475. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +40 -0
  476. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +263 -0
  477. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +100 -0
  478. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +236 -0
  479. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +70 -0
  480. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +56 -0
  481. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +35 -0
  482. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +300 -0
  483. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +100 -0
  484. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +43 -0
  485. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +35 -0
  486. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +59 -0
  487. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
  488. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +59 -0
  489. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +35 -0
  490. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +72 -0
  491. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +35 -0
  492. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +52 -0
  493. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
  494. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +107 -0
  495. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +50 -0
  496. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +140 -0
  497. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +60 -0
  498. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +146 -0
  499. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +55 -0
  500. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +50 -0
  501. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +35 -0
  502. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +205 -0
  503. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +60 -0
  504. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +201 -0
  505. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +65 -0
  506. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +90 -0
  507. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
  508. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +67 -0
  509. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +40 -0
  510. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +141 -0
  511. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
  512. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +152 -0
  513. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +75 -0
  514. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +115 -0
  515. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +45 -0
  516. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +982 -0
  517. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +295 -0
  518. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +71 -0
  519. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +45 -0
  520. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +61 -0
  521. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
  522. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +51 -0
  523. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +35 -0
  524. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +102 -0
  525. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
  526. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +123 -0
  527. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
  528. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +79 -0
  529. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
  530. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +567 -0
  531. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +125 -0
  532. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +44 -0
  533. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +30 -0
  534. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +196 -0
  535. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +60 -0
  536. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +97 -0
  537. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +45 -0
  538. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +251 -0
  539. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +60 -0
  540. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +72 -0
  541. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +35 -0
  542. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +60 -0
  543. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +35 -0
  544. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +142 -0
  545. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +65 -0
  546. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +73 -0
  547. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +35 -0
  548. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +72 -0
  549. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +35 -0
  550. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +80 -0
  551. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +40 -0
  552. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +80 -0
  553. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +35 -0
  554. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +74 -0
  555. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +35 -0
  556. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +163 -0
  557. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +55 -0
  558. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +64 -0
  559. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
  560. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +65 -0
  561. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +40 -0
  562. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +56 -0
  563. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
  564. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +54 -0
  565. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +35 -0
  566. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +53 -0
  567. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +35 -0
  568. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +76 -0
  569. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +45 -0
  570. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +69 -0
  571. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +40 -0
  572. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +63 -0
  573. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
  574. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +81 -0
  575. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +45 -0
  576. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +92 -0
  577. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +65 -0
  578. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +95 -0
  579. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +55 -0
  580. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +34 -0
  581. data/src/core/ext/{upb-generated/gogoproto/gogo.upb.h → upbdefs-generated/envoy/type/v3/http.upbdefs.h} +10 -10
  582. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +59 -0
  583. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +40 -0
  584. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +54 -0
  585. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +45 -0
  586. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +47 -0
  587. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +35 -0
  588. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +40 -0
  589. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +30 -0
  590. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +61 -0
  591. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +45 -0
  592. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +39 -0
  593. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +35 -0
  594. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +386 -0
  595. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +165 -0
  596. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +40 -0
  597. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +35 -0
  598. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +37 -0
  599. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +35 -0
  600. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +65 -0
  601. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +50 -0
  602. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +40 -0
  603. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +35 -0
  604. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +66 -0
  605. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +75 -0
  606. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +42 -0
  607. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +35 -0
  608. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +71 -0
  609. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +45 -0
  610. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +52 -0
  611. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +35 -0
  612. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +34 -0
  613. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +30 -0
  614. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +51 -0
  615. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +35 -0
  616. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +44 -0
  617. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +35 -0
  618. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +332 -0
  619. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +145 -0
  620. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +75 -0
  621. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +50 -0
  622. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +43 -0
  623. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +35 -0
  624. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +63 -0
  625. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +40 -0
  626. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +46 -0
  627. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +40 -0
  628. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +50 -0
  629. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +35 -0
  630. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +68 -0
  631. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +40 -0
  632. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +51 -0
  633. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +35 -0
  634. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +45 -0
  635. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +35 -0
  636. data/src/core/ext/xds/certificate_provider_factory.h +61 -0
  637. data/src/core/ext/xds/certificate_provider_registry.cc +103 -0
  638. data/src/core/ext/xds/certificate_provider_registry.h +57 -0
  639. data/src/core/ext/xds/certificate_provider_store.cc +87 -0
  640. data/src/core/ext/xds/certificate_provider_store.h +112 -0
  641. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +144 -0
  642. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +69 -0
  643. data/src/core/ext/xds/xds_api.cc +3965 -0
  644. data/src/core/ext/xds/xds_api.h +744 -0
  645. data/src/core/ext/xds/xds_bootstrap.cc +471 -0
  646. data/src/core/ext/xds/xds_bootstrap.h +125 -0
  647. data/src/core/ext/xds/xds_certificate_provider.cc +405 -0
  648. data/src/core/ext/xds/xds_certificate_provider.h +151 -0
  649. data/src/core/ext/xds/xds_channel_args.h +32 -0
  650. data/src/core/ext/xds/xds_channel_stack_modifier.cc +113 -0
  651. data/src/core/ext/xds/xds_channel_stack_modifier.h +52 -0
  652. data/src/core/ext/xds/xds_client.cc +2791 -0
  653. data/src/core/ext/xds/xds_client.h +380 -0
  654. data/src/core/ext/xds/xds_client_stats.cc +160 -0
  655. data/src/core/ext/{filters/client_channel/xds → xds}/xds_client_stats.h +87 -46
  656. data/src/core/ext/xds/xds_http_fault_filter.cc +227 -0
  657. data/src/core/ext/xds/xds_http_fault_filter.h +64 -0
  658. data/src/core/ext/xds/xds_http_filters.cc +116 -0
  659. data/src/core/ext/xds/xds_http_filters.h +133 -0
  660. data/src/core/ext/xds/xds_server_config_fetcher.cc +544 -0
  661. data/src/core/lib/address_utils/parse_address.cc +320 -0
  662. data/src/core/lib/address_utils/parse_address.h +77 -0
  663. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +159 -46
  664. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +46 -20
  665. data/src/core/lib/avl/avl.cc +5 -5
  666. data/src/core/lib/backoff/backoff.cc +1 -1
  667. data/src/core/lib/channel/call_tracer.h +85 -0
  668. data/src/core/lib/channel/channel_args.cc +50 -29
  669. data/src/core/lib/channel/channel_args.h +12 -2
  670. data/src/core/lib/channel/channel_stack.cc +27 -12
  671. data/src/core/lib/channel/channel_stack.h +38 -23
  672. data/src/core/lib/channel/channel_stack_builder.cc +6 -16
  673. data/src/core/lib/channel/channel_stack_builder.h +1 -9
  674. data/src/core/lib/channel/channel_trace.cc +11 -12
  675. data/src/core/lib/channel/channel_trace.h +3 -2
  676. data/src/core/lib/channel/channelz.cc +194 -142
  677. data/src/core/lib/channel/channelz.h +79 -55
  678. data/src/core/lib/channel/channelz_registry.cc +42 -22
  679. data/src/core/lib/channel/channelz_registry.h +4 -2
  680. data/src/core/lib/channel/connected_channel.cc +13 -12
  681. data/src/core/lib/channel/connected_channel.h +1 -2
  682. data/src/core/lib/channel/context.h +4 -1
  683. data/src/core/lib/channel/handshaker.cc +23 -65
  684. data/src/core/lib/channel/handshaker.h +12 -28
  685. data/src/core/lib/channel/handshaker_factory.h +10 -2
  686. data/src/core/lib/channel/handshaker_registry.cc +15 -82
  687. data/src/core/lib/channel/handshaker_registry.h +29 -12
  688. data/src/core/lib/channel/status_util.cc +14 -5
  689. data/src/core/lib/channel/status_util.h +11 -2
  690. data/src/core/lib/compression/algorithm_metadata.h +1 -0
  691. data/src/core/lib/compression/compression.cc +10 -6
  692. data/src/core/lib/compression/compression_args.cc +11 -7
  693. data/src/core/lib/compression/compression_internal.cc +14 -11
  694. data/src/core/lib/compression/compression_internal.h +3 -2
  695. data/src/core/lib/compression/message_compress.cc +7 -3
  696. data/src/core/lib/compression/stream_compression.cc +2 -1
  697. data/src/core/lib/compression/stream_compression.h +3 -2
  698. data/src/core/lib/compression/stream_compression_gzip.cc +2 -1
  699. data/src/core/lib/compression/stream_compression_gzip.h +1 -1
  700. data/src/core/lib/compression/stream_compression_identity.cc +3 -4
  701. data/src/core/lib/compression/stream_compression_identity.h +1 -1
  702. data/src/core/lib/config/core_configuration.cc +96 -0
  703. data/src/core/lib/config/core_configuration.h +146 -0
  704. data/src/core/lib/debug/stats.cc +22 -28
  705. data/src/core/lib/debug/stats.h +7 -4
  706. data/src/core/lib/debug/stats_data.cc +16 -14
  707. data/src/core/lib/debug/stats_data.h +14 -13
  708. data/src/core/lib/debug/trace.cc +1 -0
  709. data/src/core/lib/debug/trace.h +2 -1
  710. data/src/core/lib/event_engine/endpoint_config.cc +45 -0
  711. data/src/core/lib/event_engine/endpoint_config_internal.h +42 -0
  712. data/src/core/lib/event_engine/event_engine.cc +50 -0
  713. data/src/core/lib/event_engine/sockaddr.cc +40 -0
  714. data/src/core/lib/event_engine/sockaddr.h +44 -0
  715. data/src/core/lib/gpr/alloc.cc +7 -5
  716. data/src/core/lib/gpr/atm.cc +1 -1
  717. data/src/core/lib/gpr/cpu_iphone.cc +10 -2
  718. data/src/core/lib/gpr/cpu_posix.cc +1 -1
  719. data/src/core/lib/gpr/env_linux.cc +1 -2
  720. data/src/core/lib/gpr/env_posix.cc +2 -3
  721. data/src/core/lib/gpr/log.cc +61 -19
  722. data/src/core/lib/gpr/log_android.cc +3 -2
  723. data/src/core/lib/gpr/log_linux.cc +30 -13
  724. data/src/core/lib/gpr/log_posix.cc +25 -10
  725. data/src/core/lib/gpr/log_windows.cc +18 -4
  726. data/src/core/lib/gpr/murmur_hash.cc +5 -3
  727. data/src/core/lib/gpr/spinlock.h +12 -5
  728. data/src/core/lib/gpr/string.cc +35 -57
  729. data/src/core/lib/gpr/string.h +11 -26
  730. data/src/core/lib/gpr/sync.cc +6 -6
  731. data/src/core/lib/gpr/sync_abseil.cc +12 -12
  732. data/src/core/lib/gpr/sync_posix.cc +5 -11
  733. data/src/core/lib/gpr/sync_windows.cc +2 -2
  734. data/src/core/lib/gpr/time.cc +19 -14
  735. data/src/core/lib/gpr/time_posix.cc +1 -1
  736. data/src/core/lib/gpr/time_precise.cc +5 -2
  737. data/src/core/lib/gpr/time_precise.h +6 -2
  738. data/src/core/lib/gpr/time_windows.cc +3 -2
  739. data/src/core/lib/gpr/tls.h +119 -36
  740. data/src/core/lib/gpr/tmpfile_posix.cc +1 -2
  741. data/src/core/lib/gpr/useful.h +79 -31
  742. data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
  743. data/src/core/lib/gprpp/arena.cc +2 -1
  744. data/src/core/lib/gprpp/arena.h +18 -7
  745. data/src/core/lib/gprpp/atomic_utils.h +47 -0
  746. data/src/core/lib/gprpp/bitset.h +188 -0
  747. data/src/core/lib/gprpp/chunked_vector.h +211 -0
  748. data/src/core/lib/gprpp/construct_destruct.h +39 -0
  749. data/src/core/lib/gprpp/dual_ref_counted.h +330 -0
  750. data/src/core/lib/gprpp/{optional.h → examine_stack.cc} +19 -9
  751. data/src/core/lib/gprpp/examine_stack.h +46 -0
  752. data/src/core/lib/gprpp/fork.cc +17 -15
  753. data/src/core/lib/gprpp/fork.h +4 -4
  754. data/src/core/lib/gprpp/global_config.h +1 -2
  755. data/src/core/lib/gprpp/global_config_env.cc +11 -9
  756. data/src/core/lib/gprpp/global_config_generic.h +2 -2
  757. data/src/core/lib/gprpp/host_port.cc +29 -35
  758. data/src/core/lib/gprpp/host_port.h +14 -17
  759. data/src/core/lib/gprpp/manual_constructor.h +10 -7
  760. data/src/core/lib/gprpp/match.h +73 -0
  761. data/src/core/lib/gprpp/memory.h +9 -3
  762. data/src/core/lib/gprpp/mpscq.cc +9 -9
  763. data/src/core/lib/gprpp/mpscq.h +6 -5
  764. data/src/core/lib/gprpp/orphanable.h +10 -14
  765. data/src/core/lib/gprpp/overload.h +59 -0
  766. data/src/core/lib/gprpp/ref_counted.h +123 -86
  767. data/src/core/lib/gprpp/ref_counted_ptr.h +173 -7
  768. data/src/core/lib/gprpp/stat.h +38 -0
  769. data/src/core/lib/gprpp/stat_posix.cc +49 -0
  770. data/src/core/lib/gprpp/stat_windows.cc +48 -0
  771. data/src/core/lib/gprpp/status_helper.cc +427 -0
  772. data/src/core/lib/gprpp/status_helper.h +194 -0
  773. data/src/core/lib/gprpp/sync.h +106 -43
  774. data/src/core/lib/gprpp/table.h +411 -0
  775. data/src/core/lib/gprpp/thd.h +3 -3
  776. data/src/core/lib/gprpp/thd_posix.cc +47 -42
  777. data/src/core/lib/gprpp/thd_windows.cc +7 -12
  778. data/src/core/lib/gprpp/time_util.cc +77 -0
  779. data/src/core/lib/gprpp/time_util.h +42 -0
  780. data/src/core/lib/http/format_request.cc +47 -65
  781. data/src/core/lib/http/format_request.h +1 -0
  782. data/src/core/lib/http/httpcli.cc +213 -193
  783. data/src/core/lib/http/httpcli.h +7 -6
  784. data/src/core/lib/http/httpcli_security_connector.cc +25 -24
  785. data/src/core/lib/http/parser.cc +65 -45
  786. data/src/core/lib/http/parser.h +7 -7
  787. data/src/core/lib/iomgr/buffer_list.cc +10 -11
  788. data/src/core/lib/iomgr/buffer_list.h +27 -28
  789. data/src/core/lib/iomgr/call_combiner.cc +46 -21
  790. data/src/core/lib/iomgr/call_combiner.h +15 -16
  791. data/src/core/lib/iomgr/cfstream_handle.cc +10 -8
  792. data/src/core/lib/iomgr/cfstream_handle.h +1 -1
  793. data/src/core/lib/iomgr/closure.h +9 -9
  794. data/src/core/lib/iomgr/combiner.cc +25 -36
  795. data/src/core/lib/iomgr/combiner.h +3 -2
  796. data/src/core/lib/iomgr/dualstack_socket_posix.cc +48 -0
  797. data/src/core/lib/iomgr/endpoint.cc +6 -6
  798. data/src/core/lib/iomgr/endpoint.h +10 -8
  799. data/src/core/lib/iomgr/endpoint_cfstream.cc +60 -48
  800. data/src/core/lib/iomgr/endpoint_cfstream.h +1 -1
  801. data/src/core/lib/iomgr/endpoint_pair.h +2 -2
  802. data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +32 -0
  803. data/src/core/lib/iomgr/endpoint_pair_posix.cc +21 -17
  804. data/src/core/lib/iomgr/endpoint_pair_windows.cc +17 -9
  805. data/src/core/lib/iomgr/error.cc +285 -115
  806. data/src/core/lib/iomgr/error.h +280 -115
  807. data/src/core/lib/iomgr/error_cfstream.cc +17 -10
  808. data/src/core/lib/iomgr/error_cfstream.h +2 -2
  809. data/src/core/lib/iomgr/error_internal.h +7 -2
  810. data/src/core/lib/iomgr/ev_apple.cc +359 -0
  811. data/src/core/lib/iomgr/ev_apple.h +43 -0
  812. data/src/core/lib/iomgr/ev_epoll1_linux.cc +76 -80
  813. data/src/core/lib/iomgr/ev_epollex_linux.cc +106 -109
  814. data/src/core/lib/iomgr/ev_poll_posix.cc +79 -76
  815. data/src/core/lib/iomgr/ev_posix.cc +15 -16
  816. data/src/core/lib/iomgr/ev_posix.h +9 -9
  817. data/src/core/lib/iomgr/event_engine/closure.cc +77 -0
  818. data/src/core/lib/iomgr/event_engine/closure.h +42 -0
  819. data/src/core/lib/iomgr/event_engine/endpoint.cc +173 -0
  820. data/src/core/lib/iomgr/event_engine/endpoint.h +52 -0
  821. data/src/core/lib/iomgr/event_engine/iomgr.cc +104 -0
  822. data/src/core/lib/iomgr/event_engine/iomgr.h +42 -0
  823. data/src/core/lib/iomgr/event_engine/pollset.cc +88 -0
  824. data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
  825. data/src/core/lib/iomgr/event_engine/promise.h +51 -0
  826. data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +41 -0
  827. data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +35 -0
  828. data/src/core/lib/iomgr/event_engine/resolver.cc +114 -0
  829. data/src/core/lib/iomgr/event_engine/tcp.cc +293 -0
  830. data/src/core/lib/iomgr/event_engine/timer.cc +62 -0
  831. data/src/core/lib/iomgr/exec_ctx.cc +15 -12
  832. data/src/core/lib/iomgr/exec_ctx.h +37 -30
  833. data/src/core/lib/iomgr/executor/mpmcqueue.cc +15 -16
  834. data/src/core/lib/iomgr/executor/mpmcqueue.h +11 -15
  835. data/src/core/lib/iomgr/executor/threadpool.cc +4 -5
  836. data/src/core/lib/iomgr/executor/threadpool.h +8 -7
  837. data/src/core/lib/iomgr/executor.cc +19 -33
  838. data/src/core/lib/iomgr/executor.h +3 -3
  839. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -2
  840. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +2 -2
  841. data/src/core/lib/iomgr/internal_errqueue.cc +3 -2
  842. data/src/core/lib/iomgr/iocp_windows.cc +1 -0
  843. data/src/core/lib/iomgr/iomgr.cc +6 -4
  844. data/src/core/lib/iomgr/iomgr.h +3 -3
  845. data/src/core/lib/iomgr/iomgr_custom.cc +3 -3
  846. data/src/core/lib/iomgr/iomgr_custom.h +2 -2
  847. data/src/core/lib/iomgr/iomgr_internal.cc +8 -12
  848. data/src/core/lib/iomgr/iomgr_internal.h +6 -5
  849. data/src/core/lib/iomgr/iomgr_posix.cc +3 -2
  850. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +115 -22
  851. data/src/core/lib/iomgr/iomgr_windows.cc +2 -3
  852. data/src/core/lib/iomgr/is_epollexclusive_available.cc +18 -4
  853. data/src/core/lib/iomgr/load_file.cc +6 -6
  854. data/src/core/lib/iomgr/load_file.h +2 -2
  855. data/src/core/lib/iomgr/lockfree_event.cc +38 -15
  856. data/src/core/lib/iomgr/lockfree_event.h +2 -2
  857. data/src/core/lib/iomgr/polling_entity.cc +2 -2
  858. data/src/core/lib/iomgr/pollset.cc +5 -5
  859. data/src/core/lib/iomgr/pollset.h +9 -9
  860. data/src/core/lib/iomgr/pollset_custom.cc +10 -11
  861. data/src/core/lib/iomgr/pollset_custom.h +3 -1
  862. data/src/core/lib/iomgr/pollset_set_custom.cc +12 -13
  863. data/src/core/lib/iomgr/pollset_set_windows.cc +1 -0
  864. data/src/core/lib/iomgr/pollset_windows.cc +5 -5
  865. data/src/core/lib/iomgr/port.h +9 -31
  866. data/src/core/lib/iomgr/python_util.h +47 -0
  867. data/src/core/lib/iomgr/resolve_address.cc +14 -9
  868. data/src/core/lib/iomgr/resolve_address.h +15 -15
  869. data/src/core/lib/iomgr/resolve_address_custom.cc +48 -62
  870. data/src/core/lib/iomgr/resolve_address_custom.h +5 -4
  871. data/src/core/lib/iomgr/resolve_address_posix.cc +21 -30
  872. data/src/core/lib/iomgr/resolve_address_windows.cc +22 -33
  873. data/src/core/lib/iomgr/resource_quota.cc +185 -94
  874. data/src/core/lib/iomgr/resource_quota.h +66 -17
  875. data/src/core/lib/iomgr/sockaddr.h +2 -1
  876. data/src/core/lib/iomgr/socket_factory_posix.cc +8 -7
  877. data/src/core/lib/iomgr/socket_factory_posix.h +3 -3
  878. data/src/core/lib/iomgr/socket_mutator.cc +20 -6
  879. data/src/core/lib/iomgr/socket_mutator.h +28 -5
  880. data/src/core/lib/iomgr/socket_utils_common_posix.cc +128 -105
  881. data/src/core/lib/iomgr/socket_utils_linux.cc +4 -4
  882. data/src/core/lib/iomgr/socket_utils_posix.cc +2 -2
  883. data/src/core/lib/iomgr/socket_utils_posix.h +25 -22
  884. data/src/core/lib/iomgr/socket_utils_windows.cc +2 -2
  885. data/src/core/lib/iomgr/socket_windows.cc +4 -5
  886. data/src/core/lib/iomgr/tcp_client.cc +5 -3
  887. data/src/core/lib/iomgr/tcp_client.h +4 -0
  888. data/src/core/lib/iomgr/tcp_client_cfstream.cc +31 -43
  889. data/src/core/lib/iomgr/tcp_client_custom.cc +23 -34
  890. data/src/core/lib/iomgr/tcp_client_posix.cc +72 -69
  891. data/src/core/lib/iomgr/tcp_client_posix.h +8 -6
  892. data/src/core/lib/iomgr/tcp_client_windows.cc +31 -23
  893. data/src/core/lib/iomgr/tcp_custom.cc +77 -71
  894. data/src/core/lib/iomgr/tcp_custom.h +16 -14
  895. data/src/core/lib/iomgr/tcp_posix.cc +149 -156
  896. data/src/core/lib/iomgr/tcp_posix.h +19 -12
  897. data/src/core/lib/iomgr/tcp_server.cc +12 -11
  898. data/src/core/lib/iomgr/tcp_server.h +23 -17
  899. data/src/core/lib/iomgr/tcp_server_custom.cc +72 -94
  900. data/src/core/lib/iomgr/tcp_server_posix.cc +84 -76
  901. data/src/core/lib/iomgr/tcp_server_utils_posix.h +19 -16
  902. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +29 -28
  903. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +19 -28
  904. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
  905. data/src/core/lib/iomgr/tcp_server_windows.cc +46 -42
  906. data/src/core/lib/iomgr/tcp_windows.cc +44 -47
  907. data/src/core/lib/iomgr/tcp_windows.h +4 -3
  908. data/src/core/lib/iomgr/time_averaged_stats.h +2 -3
  909. data/src/core/lib/iomgr/timer.cc +1 -0
  910. data/src/core/lib/iomgr/timer.h +7 -3
  911. data/src/core/lib/iomgr/timer_custom.cc +9 -8
  912. data/src/core/lib/iomgr/timer_custom.h +1 -1
  913. data/src/core/lib/iomgr/timer_generic.cc +46 -76
  914. data/src/core/lib/{gprpp/inlined_vector.h → iomgr/timer_generic.h} +17 -14
  915. data/src/core/lib/iomgr/timer_heap.cc +2 -3
  916. data/src/core/lib/iomgr/timer_heap.h +2 -3
  917. data/src/core/lib/iomgr/timer_manager.cc +4 -4
  918. data/src/core/lib/iomgr/unix_sockets_posix.cc +37 -33
  919. data/src/core/lib/iomgr/unix_sockets_posix.h +9 -3
  920. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +20 -7
  921. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
  922. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +2 -1
  923. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +8 -9
  924. data/src/core/lib/iomgr/wakeup_fd_posix.cc +4 -3
  925. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
  926. data/src/core/lib/iomgr/work_serializer.cc +4 -4
  927. data/src/core/lib/iomgr/work_serializer.h +18 -2
  928. data/src/core/lib/json/json.h +15 -4
  929. data/src/core/lib/json/json_reader.cc +31 -37
  930. data/src/core/lib/json/json_util.cc +126 -0
  931. data/src/core/lib/json/json_util.h +154 -0
  932. data/src/core/lib/json/json_writer.cc +14 -15
  933. data/src/core/lib/matchers/matchers.cc +327 -0
  934. data/src/core/lib/matchers/matchers.h +160 -0
  935. data/src/core/lib/profiling/basic_timers.cc +8 -6
  936. data/src/core/lib/profiling/stap_timers.cc +2 -2
  937. data/src/core/lib/security/authorization/authorization_engine.h +44 -0
  938. data/src/core/lib/security/authorization/authorization_policy_provider.h +33 -0
  939. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
  940. data/src/core/lib/security/authorization/evaluate_args.cc +213 -0
  941. data/src/core/lib/security/authorization/evaluate_args.h +91 -0
  942. data/src/core/lib/security/authorization/sdk_server_authz_filter.cc +171 -0
  943. data/src/core/lib/security/authorization/sdk_server_authz_filter.h +67 -0
  944. data/src/core/lib/security/context/security_context.cc +15 -11
  945. data/src/core/lib/security/context/security_context.h +3 -1
  946. data/src/core/lib/security/credentials/alts/alts_credentials.cc +2 -1
  947. data/src/core/lib/security/credentials/alts/alts_credentials.h +1 -1
  948. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
  949. data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +2 -2
  950. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -2
  951. data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +2 -2
  952. data/src/core/lib/security/credentials/composite/composite_credentials.cc +21 -8
  953. data/src/core/lib/security/credentials/composite/composite_credentials.h +8 -5
  954. data/src/core/lib/security/credentials/credentials.cc +17 -99
  955. data/src/core/lib/security/credentials/credentials.h +27 -70
  956. data/src/core/lib/security/credentials/credentials_metadata.cc +2 -3
  957. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +404 -0
  958. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +81 -0
  959. data/src/core/lib/security/credentials/external/aws_request_signer.cc +214 -0
  960. data/src/core/lib/security/credentials/external/aws_request_signer.h +72 -0
  961. data/src/core/lib/security/credentials/external/external_account_credentials.cc +527 -0
  962. data/src/core/lib/security/credentials/external/external_account_credentials.h +122 -0
  963. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +136 -0
  964. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +49 -0
  965. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +211 -0
  966. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +60 -0
  967. data/src/core/lib/security/credentials/fake/fake_credentials.cc +5 -4
  968. data/src/core/lib/security/credentials/fake/fake_credentials.h +6 -2
  969. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +8 -7
  970. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +154 -77
  971. data/src/core/lib/security/credentials/iam/iam_credentials.cc +10 -7
  972. data/src/core/lib/security/credentials/iam/iam_credentials.h +6 -2
  973. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +64 -0
  974. data/src/core/lib/security/credentials/jwt/json_token.cc +7 -7
  975. data/src/core/lib/security/credentials/jwt/json_token.h +3 -5
  976. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +39 -19
  977. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +24 -3
  978. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +25 -35
  979. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +5 -6
  980. data/src/core/lib/security/credentials/local/local_credentials.cc +2 -1
  981. data/src/core/lib/security/credentials/local/local_credentials.h +1 -1
  982. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +128 -118
  983. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +20 -12
  984. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +25 -14
  985. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +4 -2
  986. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +31 -10
  987. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +12 -3
  988. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +348 -0
  989. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +217 -0
  990. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +455 -0
  991. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +147 -0
  992. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +82 -140
  993. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +74 -167
  994. data/src/core/lib/security/credentials/tls/tls_credentials.cc +18 -13
  995. data/src/core/lib/security/credentials/tls/tls_credentials.h +3 -3
  996. data/src/core/lib/security/credentials/tls/tls_utils.cc +123 -0
  997. data/src/core/lib/security/credentials/tls/tls_utils.h +51 -0
  998. data/src/core/lib/security/credentials/xds/xds_credentials.cc +244 -0
  999. data/src/core/lib/security/credentials/xds/xds_credentials.h +69 -0
  1000. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +35 -10
  1001. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +40 -37
  1002. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +121 -0
  1003. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +97 -0
  1004. data/src/core/lib/security/security_connector/load_system_roots.h +4 -0
  1005. data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +1 -0
  1006. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +7 -6
  1007. data/src/core/lib/security/security_connector/load_system_roots_linux.h +2 -0
  1008. data/src/core/lib/security/security_connector/local/local_security_connector.cc +26 -13
  1009. data/src/core/lib/security/security_connector/security_connector.cc +15 -7
  1010. data/src/core/lib/security/security_connector/security_connector.h +16 -9
  1011. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +55 -46
  1012. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +9 -7
  1013. data/src/core/lib/security/security_connector/ssl_utils.cc +126 -31
  1014. data/src/core/lib/security/security_connector/ssl_utils.h +40 -34
  1015. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +393 -303
  1016. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +144 -62
  1017. data/src/core/lib/security/transport/auth_filters.h +1 -5
  1018. data/src/core/lib/security/transport/client_auth_filter.cc +34 -28
  1019. data/src/core/lib/security/transport/secure_endpoint.cc +16 -20
  1020. data/src/core/lib/security/transport/secure_endpoint.h +1 -0
  1021. data/src/core/lib/security/transport/security_handshaker.cc +159 -91
  1022. data/src/core/lib/security/transport/security_handshaker.h +2 -1
  1023. data/src/core/lib/security/transport/server_auth_filter.cc +22 -17
  1024. data/src/core/lib/security/transport/tsi_error.cc +5 -6
  1025. data/src/core/lib/security/transport/tsi_error.h +2 -1
  1026. data/src/core/lib/security/util/json_util.cc +10 -13
  1027. data/src/core/lib/security/util/json_util.h +2 -1
  1028. data/src/core/lib/slice/percent_encoding.cc +73 -30
  1029. data/src/core/lib/slice/percent_encoding.h +29 -28
  1030. data/src/core/lib/slice/slice.cc +59 -26
  1031. data/src/core/lib/{gpr/tls_pthread.cc → slice/slice_api.cc} +15 -6
  1032. data/src/core/lib/slice/slice_buffer.cc +8 -8
  1033. data/src/core/lib/slice/slice_intern.cc +23 -32
  1034. data/src/core/lib/slice/slice_internal.h +19 -246
  1035. data/src/core/lib/slice/slice_refcount.cc +17 -0
  1036. data/src/core/lib/slice/slice_refcount.h +121 -0
  1037. data/src/core/lib/slice/slice_refcount_base.h +173 -0
  1038. data/src/core/lib/slice/slice_split.cc +100 -0
  1039. data/src/core/lib/slice/slice_split.h +40 -0
  1040. data/src/core/lib/slice/slice_string_helpers.cc +0 -83
  1041. data/src/core/lib/slice/slice_string_helpers.h +0 -11
  1042. data/src/core/lib/slice/slice_utils.h +9 -0
  1043. data/src/core/lib/slice/static_slice.cc +529 -0
  1044. data/src/core/lib/slice/static_slice.h +331 -0
  1045. data/src/core/lib/surface/api_trace.cc +2 -1
  1046. data/src/core/lib/surface/api_trace.h +1 -0
  1047. data/src/core/lib/surface/builtins.cc +49 -0
  1048. data/src/core/lib/surface/builtins.h +26 -0
  1049. data/src/core/lib/surface/byte_buffer_reader.cc +3 -48
  1050. data/src/core/lib/surface/call.cc +252 -241
  1051. data/src/core/lib/surface/call.h +12 -6
  1052. data/src/core/lib/surface/call_details.cc +10 -10
  1053. data/src/core/lib/surface/call_log_batch.cc +52 -60
  1054. data/src/core/lib/surface/channel.cc +99 -85
  1055. data/src/core/lib/surface/channel.h +60 -9
  1056. data/src/core/lib/surface/channel_init.cc +23 -76
  1057. data/src/core/lib/surface/channel_init.h +52 -44
  1058. data/src/core/lib/surface/channel_ping.cc +4 -6
  1059. data/src/core/lib/surface/channel_stack_type.cc +2 -1
  1060. data/src/core/lib/surface/completion_queue.cc +179 -188
  1061. data/src/core/lib/surface/completion_queue.h +18 -17
  1062. data/src/core/lib/surface/completion_queue_factory.cc +3 -3
  1063. data/src/core/lib/surface/completion_queue_factory.h +1 -0
  1064. data/src/core/lib/surface/event_string.cc +19 -25
  1065. data/src/core/lib/surface/event_string.h +3 -1
  1066. data/src/core/lib/surface/init.cc +44 -74
  1067. data/src/core/lib/surface/init.h +10 -2
  1068. data/src/core/lib/surface/init_secure.cc +36 -17
  1069. data/src/core/lib/surface/lame_client.cc +62 -61
  1070. data/src/core/lib/surface/lame_client.h +5 -0
  1071. data/src/core/lib/surface/metadata_array.cc +2 -2
  1072. data/src/core/lib/surface/server.cc +1314 -1305
  1073. data/src/core/lib/surface/server.h +475 -45
  1074. data/src/core/lib/surface/validate_metadata.cc +55 -24
  1075. data/src/core/lib/surface/validate_metadata.h +6 -2
  1076. data/src/core/lib/surface/version.cc +2 -2
  1077. data/src/core/lib/transport/bdp_estimator.cc +2 -2
  1078. data/src/core/lib/transport/bdp_estimator.h +2 -1
  1079. data/src/core/lib/transport/byte_stream.cc +5 -5
  1080. data/src/core/lib/transport/byte_stream.h +19 -13
  1081. data/src/core/lib/transport/connectivity_state.cc +32 -23
  1082. data/src/core/lib/transport/connectivity_state.h +33 -17
  1083. data/src/core/lib/transport/error_utils.cc +71 -21
  1084. data/src/core/lib/transport/error_utils.h +16 -4
  1085. data/src/core/lib/transport/metadata.cc +60 -25
  1086. data/src/core/lib/transport/metadata.h +17 -14
  1087. data/src/core/lib/transport/metadata_batch.cc +41 -339
  1088. data/src/core/lib/transport/metadata_batch.h +932 -69
  1089. data/src/core/lib/transport/parsed_metadata.h +263 -0
  1090. data/src/core/lib/transport/pid_controller.cc +4 -4
  1091. data/src/core/lib/transport/static_metadata.cc +718 -831
  1092. data/src/core/lib/transport/static_metadata.h +115 -372
  1093. data/src/core/lib/transport/status_conversion.cc +6 -14
  1094. data/src/core/lib/transport/status_metadata.cc +5 -3
  1095. data/src/core/lib/transport/timeout_encoding.cc +4 -4
  1096. data/src/core/lib/transport/transport.cc +15 -14
  1097. data/src/core/lib/transport/transport.h +29 -13
  1098. data/src/core/lib/transport/transport_op_string.cc +91 -112
  1099. data/src/core/lib/uri/uri_parser.cc +135 -258
  1100. data/src/core/lib/uri/uri_parser.h +60 -23
  1101. data/src/core/plugin_registry/grpc_plugin_registry.cc +136 -44
  1102. data/src/core/tsi/alts/crypt/aes_gcm.cc +6 -5
  1103. data/src/core/tsi/alts/crypt/gsec.cc +5 -4
  1104. data/src/core/tsi/alts/crypt/gsec.h +5 -0
  1105. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +13 -12
  1106. data/src/core/tsi/alts/frame_protector/frame_handler.cc +18 -17
  1107. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +56 -45
  1108. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +10 -7
  1109. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +116 -55
  1110. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +9 -1
  1111. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
  1112. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +3 -3
  1113. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +2 -2
  1114. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
  1115. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +2 -3
  1116. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +8 -6
  1117. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +6 -6
  1118. data/src/core/tsi/fake_transport_security.cc +41 -26
  1119. data/src/core/tsi/local_transport_security.cc +41 -74
  1120. data/src/core/tsi/local_transport_security.h +6 -7
  1121. data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -2
  1122. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
  1123. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +20 -55
  1124. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +7 -7
  1125. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -2
  1126. data/src/core/tsi/ssl_transport_security.cc +262 -113
  1127. data/src/core/tsi/ssl_transport_security.h +32 -19
  1128. data/src/core/tsi/ssl_types.h +0 -2
  1129. data/src/core/tsi/transport_security.cc +25 -11
  1130. data/src/core/tsi/transport_security.h +22 -10
  1131. data/src/core/tsi/transport_security_grpc.h +3 -3
  1132. data/src/core/tsi/transport_security_interface.h +35 -4
  1133. data/src/ruby/bin/math_services_pb.rb +5 -5
  1134. data/src/ruby/ext/grpc/extconf.rb +25 -9
  1135. data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -1
  1136. data/src/ruby/ext/grpc/rb_call.c +17 -8
  1137. data/src/ruby/ext/grpc/rb_call.h +4 -0
  1138. data/src/ruby/ext/grpc/rb_call_credentials.c +62 -17
  1139. data/src/ruby/ext/grpc/rb_channel.c +19 -8
  1140. data/src/ruby/ext/grpc/rb_channel_args.c +2 -2
  1141. data/src/ruby/ext/grpc/rb_channel_credentials.c +24 -5
  1142. data/src/ruby/ext/grpc/rb_channel_credentials.h +5 -0
  1143. data/src/ruby/ext/grpc/rb_completion_queue.c +3 -2
  1144. data/src/ruby/ext/grpc/rb_compression_options.c +6 -5
  1145. data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
  1146. data/src/ruby/ext/grpc/rb_event_thread.c +4 -2
  1147. data/src/ruby/ext/grpc/rb_grpc.c +9 -4
  1148. data/src/ruby/ext/grpc/rb_grpc.h +1 -0
  1149. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +54 -18
  1150. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +99 -45
  1151. data/src/ruby/ext/grpc/rb_server.c +19 -6
  1152. data/src/ruby/ext/grpc/rb_server_credentials.c +22 -6
  1153. data/src/ruby/ext/grpc/rb_server_credentials.h +5 -0
  1154. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +218 -0
  1155. data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +37 -0
  1156. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +170 -0
  1157. data/src/ruby/ext/grpc/rb_xds_server_credentials.h +37 -0
  1158. data/src/ruby/lib/grpc/errors.rb +103 -42
  1159. data/src/ruby/lib/grpc/generic/active_call.rb +2 -3
  1160. data/src/ruby/lib/grpc/generic/client_stub.rb +5 -3
  1161. data/src/ruby/lib/grpc/generic/interceptors.rb +5 -5
  1162. data/src/ruby/lib/grpc/generic/rpc_server.rb +9 -10
  1163. data/src/ruby/lib/grpc/generic/service.rb +5 -4
  1164. data/src/ruby/lib/grpc/structs.rb +1 -1
  1165. data/src/ruby/lib/grpc/version.rb +1 -1
  1166. data/src/ruby/pb/generate_proto_ruby.sh +5 -3
  1167. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +3 -3
  1168. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +51 -0
  1169. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +2 -2
  1170. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +64 -14
  1171. data/src/ruby/spec/call_spec.rb +1 -1
  1172. data/src/ruby/spec/channel_credentials_spec.rb +42 -0
  1173. data/src/ruby/spec/channel_spec.rb +17 -6
  1174. data/src/ruby/spec/client_auth_spec.rb +27 -1
  1175. data/src/ruby/spec/client_server_spec.rb +1 -1
  1176. data/src/ruby/spec/debug_message_spec.rb +134 -0
  1177. data/src/ruby/spec/errors_spec.rb +1 -1
  1178. data/src/ruby/spec/generic/active_call_spec.rb +21 -10
  1179. data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
  1180. data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
  1181. data/src/ruby/spec/generic/service_spec.rb +2 -0
  1182. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto +23 -0
  1183. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +7 -0
  1184. data/src/ruby/spec/pb/codegen/grpc/testing/same_package_service_name.proto +27 -0
  1185. data/src/ruby/spec/pb/codegen/grpc/testing/same_ruby_package_service_name.proto +29 -0
  1186. data/src/ruby/spec/pb/codegen/package_option_spec.rb +29 -7
  1187. data/src/ruby/spec/server_credentials_spec.rb +25 -0
  1188. data/src/ruby/spec/server_spec.rb +22 -0
  1189. data/src/ruby/spec/support/services.rb +10 -4
  1190. data/src/ruby/spec/testdata/ca.pem +18 -13
  1191. data/src/ruby/spec/testdata/client.key +26 -14
  1192. data/src/ruby/spec/testdata/client.pem +18 -12
  1193. data/src/ruby/spec/testdata/server1.key +26 -14
  1194. data/src/ruby/spec/testdata/server1.pem +20 -14
  1195. data/src/ruby/spec/user_agent_spec.rb +74 -0
  1196. data/third_party/abseil-cpp/absl/algorithm/container.h +1764 -0
  1197. data/third_party/abseil-cpp/absl/base/attributes.h +122 -41
  1198. data/third_party/abseil-cpp/absl/base/call_once.h +3 -10
  1199. data/third_party/abseil-cpp/absl/base/casts.h +9 -6
  1200. data/third_party/abseil-cpp/absl/base/config.h +97 -26
  1201. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +442 -335
  1202. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +169 -0
  1203. data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
  1204. data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
  1205. data/third_party/abseil-cpp/absl/base/internal/exponential_biased.cc +93 -0
  1206. data/third_party/abseil-cpp/absl/base/internal/exponential_biased.h +130 -0
  1207. data/third_party/abseil-cpp/absl/base/internal/invoke.h +4 -4
  1208. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +620 -0
  1209. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +126 -0
  1210. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +31 -4
  1211. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +35 -33
  1212. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +17 -5
  1213. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +36 -40
  1214. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +33 -30
  1215. data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
  1216. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +11 -3
  1217. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
  1218. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
  1219. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
  1220. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +28 -5
  1221. data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +8 -0
  1222. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +9 -6
  1223. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +54 -48
  1224. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
  1225. data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +3 -1
  1226. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
  1227. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
  1228. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -3
  1229. data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
  1230. data/third_party/abseil-cpp/absl/base/macros.h +47 -109
  1231. data/third_party/abseil-cpp/absl/base/optimization.h +69 -6
  1232. data/third_party/abseil-cpp/absl/base/options.h +31 -4
  1233. data/third_party/abseil-cpp/absl/base/policy_checks.h +1 -1
  1234. data/third_party/abseil-cpp/absl/base/port.h +0 -1
  1235. data/third_party/abseil-cpp/absl/base/thread_annotations.h +95 -40
  1236. data/third_party/abseil-cpp/absl/container/fixed_array.h +532 -0
  1237. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +606 -0
  1238. data/third_party/abseil-cpp/absl/container/inlined_vector.h +38 -39
  1239. data/third_party/abseil-cpp/absl/container/internal/common.h +206 -0
  1240. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +34 -9
  1241. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +460 -0
  1242. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +161 -0
  1243. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +208 -0
  1244. data/third_party/abseil-cpp/absl/container/internal/hashtable_debug_hooks.h +85 -0
  1245. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +274 -0
  1246. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +322 -0
  1247. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +31 -0
  1248. data/third_party/abseil-cpp/absl/container/internal/have_sse.h +50 -0
  1249. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
  1250. data/third_party/abseil-cpp/absl/container/internal/layout.h +743 -0
  1251. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +197 -0
  1252. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +61 -0
  1253. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1903 -0
  1254. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +139 -0
  1255. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.h +32 -0
  1256. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +1949 -0
  1257. data/third_party/abseil-cpp/absl/debugging/internal/demangle.h +71 -0
  1258. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +382 -0
  1259. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +134 -0
  1260. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +199 -0
  1261. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +134 -0
  1262. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +80 -0
  1263. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +108 -0
  1264. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +253 -0
  1265. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_unimplemented-inl.inc +24 -0
  1266. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +93 -0
  1267. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +346 -0
  1268. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +147 -0
  1269. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +173 -0
  1270. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.h +158 -0
  1271. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +140 -0
  1272. data/third_party/abseil-cpp/absl/debugging/stacktrace.h +231 -0
  1273. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +36 -0
  1274. data/third_party/abseil-cpp/absl/debugging/symbolize.h +99 -0
  1275. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +101 -0
  1276. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +1560 -0
  1277. data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +40 -0
  1278. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +81 -0
  1279. data/third_party/abseil-cpp/absl/functional/bind_front.h +184 -0
  1280. data/third_party/abseil-cpp/absl/functional/function_ref.h +139 -0
  1281. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +95 -0
  1282. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +106 -0
  1283. data/third_party/abseil-cpp/absl/hash/hash.h +325 -0
  1284. data/third_party/abseil-cpp/absl/hash/internal/city.cc +349 -0
  1285. data/third_party/abseil-cpp/absl/hash/internal/city.h +78 -0
  1286. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +70 -0
  1287. data/third_party/abseil-cpp/absl/hash/internal/hash.h +1045 -0
  1288. data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
  1289. data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
  1290. data/third_party/abseil-cpp/absl/memory/memory.h +4 -0
  1291. data/third_party/abseil-cpp/absl/meta/type_traits.h +18 -10
  1292. data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
  1293. data/third_party/abseil-cpp/absl/numeric/int128.cc +13 -27
  1294. data/third_party/abseil-cpp/absl/numeric/int128.h +16 -15
  1295. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
  1296. data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  1297. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +69 -0
  1298. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +396 -0
  1299. data/third_party/abseil-cpp/absl/status/status.cc +452 -0
  1300. data/third_party/abseil-cpp/absl/status/status.h +878 -0
  1301. data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +38 -0
  1302. data/third_party/abseil-cpp/absl/status/status_payload_printer.h +51 -0
  1303. data/third_party/abseil-cpp/absl/status/statusor.cc +71 -0
  1304. data/third_party/abseil-cpp/absl/status/statusor.h +760 -0
  1305. data/third_party/abseil-cpp/absl/strings/charconv.cc +7 -7
  1306. data/third_party/abseil-cpp/absl/strings/cord.cc +1953 -0
  1307. data/third_party/abseil-cpp/absl/strings/cord.h +1394 -0
  1308. data/third_party/abseil-cpp/absl/strings/escaping.cc +13 -13
  1309. data/third_party/abseil-cpp/absl/strings/internal/char_map.h +1 -1
  1310. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
  1311. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +2 -2
  1312. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +8 -8
  1313. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
  1314. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +543 -0
  1315. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
  1316. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
  1317. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
  1318. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
  1319. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +236 -136
  1320. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +150 -64
  1321. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +16 -2
  1322. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +29 -21
  1323. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +21 -14
  1324. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +31 -7
  1325. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +147 -135
  1326. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +1017 -87
  1327. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +17 -3
  1328. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +4 -12
  1329. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +22 -6
  1330. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +27 -11
  1331. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
  1332. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
  1333. data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
  1334. data/third_party/abseil-cpp/absl/strings/match.h +16 -6
  1335. data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
  1336. data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
  1337. data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
  1338. data/third_party/abseil-cpp/absl/strings/str_cat.h +1 -1
  1339. data/third_party/abseil-cpp/absl/strings/str_format.h +289 -13
  1340. data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
  1341. data/third_party/abseil-cpp/absl/strings/str_split.cc +2 -2
  1342. data/third_party/abseil-cpp/absl/strings/str_split.h +39 -4
  1343. data/third_party/abseil-cpp/absl/strings/string_view.h +26 -19
  1344. data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -5
  1345. data/third_party/abseil-cpp/absl/strings/substitute.h +32 -29
  1346. data/third_party/abseil-cpp/absl/synchronization/barrier.cc +52 -0
  1347. data/third_party/abseil-cpp/absl/synchronization/barrier.h +79 -0
  1348. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +57 -0
  1349. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +99 -0
  1350. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +140 -0
  1351. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +60 -0
  1352. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
  1353. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +698 -0
  1354. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.h +141 -0
  1355. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +156 -0
  1356. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +106 -0
  1357. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +115 -0
  1358. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +428 -0
  1359. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +155 -0
  1360. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +2751 -0
  1361. data/third_party/abseil-cpp/absl/synchronization/mutex.h +1082 -0
  1362. data/third_party/abseil-cpp/absl/synchronization/notification.cc +78 -0
  1363. data/third_party/abseil-cpp/absl/synchronization/notification.h +123 -0
  1364. data/third_party/abseil-cpp/absl/time/civil_time.cc +175 -0
  1365. data/third_party/abseil-cpp/absl/time/civil_time.h +538 -0
  1366. data/third_party/abseil-cpp/absl/time/clock.cc +585 -0
  1367. data/third_party/abseil-cpp/absl/time/clock.h +74 -0
  1368. data/third_party/abseil-cpp/absl/time/duration.cc +954 -0
  1369. data/third_party/abseil-cpp/absl/time/format.cc +160 -0
  1370. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
  1371. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +628 -0
  1372. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +386 -0
  1373. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
  1374. data/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
  1375. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
  1376. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
  1377. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +1029 -0
  1378. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +45 -0
  1379. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +76 -0
  1380. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +113 -0
  1381. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +93 -0
  1382. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +965 -0
  1383. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +137 -0
  1384. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +315 -0
  1385. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +55 -0
  1386. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +187 -0
  1387. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
  1388. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
  1389. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +122 -0
  1390. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +116 -0
  1391. data/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
  1392. data/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
  1393. data/third_party/abseil-cpp/absl/time/time.cc +500 -0
  1394. data/third_party/abseil-cpp/absl/time/time.h +1585 -0
  1395. data/third_party/abseil-cpp/absl/types/bad_variant_access.cc +64 -0
  1396. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +82 -0
  1397. data/third_party/abseil-cpp/absl/types/internal/variant.h +1646 -0
  1398. data/third_party/abseil-cpp/absl/types/optional.h +9 -9
  1399. data/third_party/abseil-cpp/absl/types/span.h +49 -36
  1400. data/third_party/abseil-cpp/absl/types/variant.h +866 -0
  1401. data/third_party/abseil-cpp/absl/utility/utility.h +2 -2
  1402. data/third_party/address_sorting/address_sorting_posix.c +1 -0
  1403. data/third_party/address_sorting/include/address_sorting/address_sorting.h +2 -0
  1404. data/third_party/boringssl-with-bazel/err_data.c +789 -707
  1405. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +57 -52
  1406. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +22 -23
  1407. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -2
  1408. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +5 -5
  1409. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +6 -1
  1410. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +6 -6
  1411. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +16 -23
  1412. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +29 -27
  1413. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +3 -3
  1414. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +19 -29
  1415. data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/a_strex.c +269 -272
  1416. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +106 -153
  1417. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +5 -5
  1418. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +23 -11
  1419. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +3 -42
  1420. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +1 -1
  1421. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +16 -22
  1422. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +1 -1
  1423. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +1 -1
  1424. data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/charmap.h +0 -0
  1425. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +1 -1
  1426. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +1 -1
  1427. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +1 -1
  1428. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +196 -0
  1429. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +35 -86
  1430. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +326 -281
  1431. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +15 -26
  1432. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +20 -75
  1433. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +0 -2
  1434. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +3 -2
  1435. data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +1 -1
  1436. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +11 -8
  1437. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +2 -0
  1438. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +1 -7
  1439. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +1 -5
  1440. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -4
  1441. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +1 -7
  1442. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -6
  1443. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -17
  1444. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +4 -0
  1445. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +156 -0
  1446. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +3 -10
  1447. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +8 -9
  1448. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +9 -0
  1449. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +68 -45
  1450. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +38 -47
  1451. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +49 -65
  1452. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +1 -1
  1453. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +6 -81
  1454. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
  1455. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +101 -3
  1456. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +120 -273
  1457. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +14 -3
  1458. data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c +41 -0
  1459. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +18 -7
  1460. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +3 -3
  1461. data/third_party/boringssl-with-bazel/src/crypto/cpu-intel.c +13 -4
  1462. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +11 -0
  1463. data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519.c +19 -27
  1464. data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/curve25519_tables.h +13 -21
  1465. data/third_party/boringssl-with-bazel/src/{third_party/fiat → crypto/curve25519}/internal.h +15 -23
  1466. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +1 -1
  1467. data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/dh_asn1.c +0 -0
  1468. data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/params.c +179 -0
  1469. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +31 -3
  1470. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +19 -43
  1471. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +55 -4
  1472. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/is_fips.c → dsa/internal.h} +16 -11
  1473. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +2 -17
  1474. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +385 -0
  1475. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +56 -0
  1476. data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/ecdh_extra.c +2 -2
  1477. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +120 -112
  1478. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +13 -0
  1479. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +159 -0
  1480. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +6 -2
  1481. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +32 -34
  1482. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +1 -1
  1483. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +17 -1
  1484. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +6 -2
  1485. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +13 -20
  1486. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +28 -12
  1487. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +3 -3
  1488. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +3 -2
  1489. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +40 -16
  1490. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +8 -8
  1491. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +30 -154
  1492. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
  1493. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +5 -9
  1494. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +32 -16
  1495. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +208 -37
  1496. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +10 -11
  1497. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +1 -3
  1498. data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/check.c +0 -0
  1499. data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/dh.c +149 -211
  1500. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +11 -0
  1501. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +24 -0
  1502. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
  1503. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +305 -117
  1504. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +22 -29
  1505. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +96 -55
  1506. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/felem.c +25 -7
  1507. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +434 -165
  1508. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +63 -71
  1509. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +18 -25
  1510. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h +9481 -9485
  1511. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64.c +104 -122
  1512. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +740 -0
  1513. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +297 -0
  1514. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +90 -11
  1515. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +125 -148
  1516. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +189 -3
  1517. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/util.c +3 -3
  1518. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +61 -18
  1519. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +2 -2
  1520. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +117 -91
  1521. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
  1522. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +56 -72
  1523. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +56 -73
  1524. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
  1525. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
  1526. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
  1527. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
  1528. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +1 -1
  1529. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
  1530. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
  1531. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +137 -0
  1532. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +49 -0
  1533. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +64 -0
  1534. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +62 -5
  1535. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +150 -56
  1536. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +49 -129
  1537. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +4 -0
  1538. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +5 -0
  1539. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +116 -66
  1540. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +135 -63
  1541. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
  1542. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +231 -11
  1543. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +93 -107
  1544. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +91 -113
  1545. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +86 -113
  1546. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +618 -0
  1547. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +219 -121
  1548. data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +9 -2
  1549. data/third_party/boringssl-with-bazel/src/crypto/internal.h +125 -0
  1550. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +253 -0
  1551. data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +28 -23
  1552. data/third_party/boringssl-with-bazel/src/crypto/mem.c +75 -25
  1553. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +10 -6
  1554. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +15 -1
  1555. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +0 -9
  1556. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +0 -2
  1557. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +0 -8
  1558. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +0 -2
  1559. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +0 -4
  1560. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +16 -7
  1561. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +9 -4
  1562. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +156 -15
  1563. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +7 -0
  1564. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +131 -53
  1565. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +11 -8
  1566. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +13 -11
  1567. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +4 -0
  1568. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +1 -0
  1569. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +6 -6
  1570. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +4 -0
  1571. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +34 -0
  1572. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +5 -1
  1573. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +20 -0
  1574. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
  1575. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +6 -6
  1576. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +7 -13
  1577. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +4 -28
  1578. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +4 -0
  1579. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +318 -0
  1580. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +1399 -0
  1581. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +858 -0
  1582. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +766 -0
  1583. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +15 -11
  1584. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +11 -1
  1585. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +4 -4
  1586. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +1 -0
  1587. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +2 -0
  1588. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +345 -13
  1589. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +246 -0
  1590. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +20 -5
  1591. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +13 -8
  1592. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
  1593. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +1 -180
  1594. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +7 -2
  1595. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +0 -67
  1596. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +24 -47
  1597. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +24 -39
  1598. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +29 -23
  1599. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +1 -5
  1600. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +2 -1
  1601. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +52 -89
  1602. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +83 -12
  1603. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +9 -4
  1604. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +67 -67
  1605. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +29 -26
  1606. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +87 -113
  1607. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +54 -74
  1608. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +99 -25
  1609. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +15 -15
  1610. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
  1611. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -19
  1612. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +13 -26
  1613. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +21 -34
  1614. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +52 -28
  1615. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +2 -0
  1616. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +49 -59
  1617. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +2 -2
  1618. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +21 -172
  1619. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
  1620. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +25 -0
  1621. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
  1622. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +75 -15
  1623. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +5 -2
  1624. data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +1 -4
  1625. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +28 -0
  1626. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +1 -0
  1627. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +6 -4
  1628. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +1 -1
  1629. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +1 -0
  1630. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +4 -3
  1631. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +27 -8
  1632. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +42 -32
  1633. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +6 -3
  1634. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +33 -28
  1635. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +10 -12
  1636. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +4 -2
  1637. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +7 -1
  1638. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +42 -22
  1639. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +3 -4
  1640. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +1 -1
  1641. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +27 -36
  1642. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +112 -55
  1643. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +2 -1
  1644. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +15 -14
  1645. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +128 -42
  1646. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +8 -7
  1647. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +86 -44
  1648. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +25 -4
  1649. data/third_party/boringssl-with-bazel/src/include/openssl/aes.h +16 -4
  1650. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +119 -0
  1651. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +1035 -625
  1652. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +2 -176
  1653. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +71 -14
  1654. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +7 -1
  1655. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +62 -0
  1656. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +3 -3
  1657. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +32 -7
  1658. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
  1659. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +29 -6
  1660. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +8 -5
  1661. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
  1662. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +32 -7
  1663. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +6 -0
  1664. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +82 -20
  1665. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +20 -2
  1666. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +16 -0
  1667. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +20 -2
  1668. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +39 -0
  1669. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +5 -2
  1670. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +110 -51
  1671. data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
  1672. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +4 -0
  1673. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +350 -0
  1674. data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +14 -12
  1675. data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +4 -205
  1676. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +12 -3
  1677. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +5 -0
  1678. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +26 -6
  1679. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +3 -0
  1680. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +194 -146
  1681. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +33 -8
  1682. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
  1683. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +8 -19
  1684. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +135 -63
  1685. data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +26 -0
  1686. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +39 -16
  1687. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +697 -194
  1688. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +54 -38
  1689. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +310 -0
  1690. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +2071 -826
  1691. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +16 -678
  1692. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +639 -450
  1693. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +18 -5
  1694. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +16 -22
  1695. data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +3 -3
  1696. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
  1697. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +13 -4
  1698. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1084 -0
  1699. data/third_party/boringssl-with-bazel/src/ssl/{t1_lib.cc → extensions.cc} +1083 -634
  1700. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +478 -78
  1701. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +122 -56
  1702. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +340 -236
  1703. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +199 -40
  1704. data/third_party/boringssl-with-bazel/src/ssl/internal.h +607 -209
  1705. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +17 -11
  1706. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -4
  1707. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +35 -40
  1708. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +77 -8
  1709. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +11 -12
  1710. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +10 -11
  1711. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +34 -31
  1712. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +169 -111
  1713. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +15 -2
  1714. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +179 -111
  1715. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +9 -0
  1716. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +12 -17
  1717. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +12 -8
  1718. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +28 -23
  1719. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +53 -30
  1720. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +81 -37
  1721. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +411 -235
  1722. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +183 -166
  1723. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +434 -151
  1724. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +65 -25
  1725. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +5 -3
  1726. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +245 -175
  1727. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +135 -75
  1728. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +1593 -1672
  1729. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +512 -503
  1730. data/third_party/re2/re2/bitmap256.h +117 -0
  1731. data/third_party/re2/re2/bitstate.cc +385 -0
  1732. data/third_party/re2/re2/compile.cc +1261 -0
  1733. data/third_party/re2/re2/dfa.cc +2118 -0
  1734. data/third_party/re2/re2/filtered_re2.cc +137 -0
  1735. data/third_party/re2/re2/filtered_re2.h +114 -0
  1736. data/third_party/re2/re2/mimics_pcre.cc +197 -0
  1737. data/third_party/re2/re2/nfa.cc +713 -0
  1738. data/third_party/re2/re2/onepass.cc +623 -0
  1739. data/third_party/re2/re2/parse.cc +2483 -0
  1740. data/third_party/re2/re2/perl_groups.cc +119 -0
  1741. data/third_party/re2/re2/pod_array.h +55 -0
  1742. data/third_party/re2/re2/prefilter.cc +711 -0
  1743. data/third_party/re2/re2/prefilter.h +108 -0
  1744. data/third_party/re2/re2/prefilter_tree.cc +407 -0
  1745. data/third_party/re2/re2/prefilter_tree.h +139 -0
  1746. data/third_party/re2/re2/prog.cc +1166 -0
  1747. data/third_party/re2/re2/prog.h +455 -0
  1748. data/third_party/re2/re2/re2.cc +1331 -0
  1749. data/third_party/re2/re2/re2.h +1017 -0
  1750. data/third_party/re2/re2/regexp.cc +987 -0
  1751. data/third_party/re2/re2/regexp.h +665 -0
  1752. data/third_party/re2/re2/set.cc +176 -0
  1753. data/third_party/re2/re2/set.h +85 -0
  1754. data/third_party/re2/re2/simplify.cc +665 -0
  1755. data/third_party/re2/re2/sparse_array.h +392 -0
  1756. data/third_party/re2/re2/sparse_set.h +264 -0
  1757. data/third_party/re2/re2/stringpiece.cc +65 -0
  1758. data/third_party/re2/re2/stringpiece.h +210 -0
  1759. data/third_party/re2/re2/tostring.cc +351 -0
  1760. data/third_party/re2/re2/unicode_casefold.cc +582 -0
  1761. data/third_party/re2/re2/unicode_casefold.h +78 -0
  1762. data/third_party/re2/re2/unicode_groups.cc +6269 -0
  1763. data/third_party/re2/re2/unicode_groups.h +67 -0
  1764. data/third_party/re2/re2/walker-inl.h +246 -0
  1765. data/third_party/re2/util/benchmark.h +156 -0
  1766. data/third_party/re2/util/flags.h +26 -0
  1767. data/third_party/re2/util/logging.h +109 -0
  1768. data/third_party/re2/util/malloc_counter.h +19 -0
  1769. data/third_party/re2/util/mix.h +41 -0
  1770. data/third_party/re2/util/mutex.h +148 -0
  1771. data/third_party/re2/util/pcre.cc +1025 -0
  1772. data/third_party/re2/util/pcre.h +681 -0
  1773. data/third_party/re2/util/rune.cc +260 -0
  1774. data/third_party/re2/util/strutil.cc +149 -0
  1775. data/third_party/re2/util/strutil.h +21 -0
  1776. data/third_party/re2/util/test.h +50 -0
  1777. data/third_party/re2/util/utf.h +44 -0
  1778. data/third_party/re2/util/util.h +42 -0
  1779. data/third_party/upb/upb/decode.c +668 -506
  1780. data/third_party/upb/upb/decode.h +50 -3
  1781. data/third_party/upb/upb/decode_fast.c +1053 -0
  1782. data/third_party/upb/upb/decode_fast.h +153 -0
  1783. data/third_party/upb/upb/decode_internal.h +193 -0
  1784. data/third_party/upb/upb/def.c +2168 -0
  1785. data/third_party/upb/upb/def.h +337 -0
  1786. data/third_party/upb/upb/def.hpp +468 -0
  1787. data/third_party/upb/upb/encode.c +346 -213
  1788. data/third_party/upb/upb/encode.h +56 -4
  1789. data/third_party/upb/upb/msg.c +356 -70
  1790. data/third_party/upb/upb/msg.h +84 -45
  1791. data/third_party/upb/upb/msg_internal.h +687 -0
  1792. data/third_party/upb/upb/port_def.inc +187 -84
  1793. data/third_party/upb/upb/port_undef.inc +47 -7
  1794. data/third_party/upb/upb/reflection.c +400 -0
  1795. data/third_party/upb/upb/reflection.h +196 -0
  1796. data/third_party/upb/upb/reflection.hpp +37 -0
  1797. data/third_party/upb/upb/table.c +265 -336
  1798. data/third_party/upb/upb/{table.int.h → table_internal.h} +73 -229
  1799. data/third_party/upb/upb/text_encode.c +449 -0
  1800. data/third_party/upb/upb/text_encode.h +64 -0
  1801. data/third_party/upb/upb/upb.c +189 -135
  1802. data/third_party/upb/upb/upb.h +153 -150
  1803. data/third_party/upb/upb/upb.hpp +112 -0
  1804. data/third_party/upb/upb/upb_internal.h +58 -0
  1805. data/third_party/xxhash/xxhash.h +5325 -0
  1806. metadata +810 -204
  1807. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +0 -1754
  1808. data/src/core/ext/filters/client_channel/parse_address.cc +0 -237
  1809. data/src/core/ext/filters/client_channel/parse_address.h +0 -53
  1810. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -484
  1811. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +0 -181
  1812. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +0 -65
  1813. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +0 -38
  1814. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +0 -359
  1815. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -122
  1816. data/src/core/ext/filters/client_channel/service_config.cc +0 -261
  1817. data/src/core/ext/filters/client_channel/service_config.h +0 -193
  1818. data/src/core/ext/filters/client_channel/xds/xds_api.cc +0 -1779
  1819. data/src/core/ext/filters/client_channel/xds/xds_api.h +0 -280
  1820. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +0 -347
  1821. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +0 -87
  1822. data/src/core/ext/filters/client_channel/xds/xds_channel.h +0 -46
  1823. data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +0 -104
  1824. data/src/core/ext/filters/client_channel/xds/xds_client.cc +0 -2174
  1825. data/src/core/ext/filters/client_channel/xds/xds_client.h +0 -274
  1826. data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +0 -116
  1827. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +0 -210
  1828. data/src/core/ext/filters/workarounds/workaround_utils.cc +0 -53
  1829. data/src/core/ext/filters/workarounds/workaround_utils.h +0 -39
  1830. data/src/core/ext/transport/chttp2/client/authority.cc +0 -42
  1831. data/src/core/ext/transport/chttp2/client/authority.h +0 -36
  1832. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +0 -246
  1833. data/src/core/ext/transport/chttp2/transport/hpack_table.h +0 -148
  1834. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +0 -66
  1835. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +0 -58
  1836. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +0 -246
  1837. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +0 -905
  1838. data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.c +0 -27
  1839. data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +0 -53
  1840. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +0 -73
  1841. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +0 -218
  1842. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +0 -34
  1843. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.h +0 -69
  1844. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +0 -54
  1845. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.h +0 -305
  1846. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +0 -390
  1847. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +0 -1411
  1848. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +0 -111
  1849. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +0 -328
  1850. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +0 -292
  1851. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +0 -847
  1852. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +0 -95
  1853. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +0 -322
  1854. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +0 -196
  1855. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +0 -642
  1856. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +0 -168
  1857. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +0 -658
  1858. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +0 -35
  1859. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.h +0 -80
  1860. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +0 -132
  1861. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +0 -436
  1862. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +0 -128
  1863. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.h +0 -392
  1864. data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +0 -30
  1865. data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +0 -53
  1866. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +0 -17
  1867. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +0 -33
  1868. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +0 -88
  1869. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +0 -258
  1870. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +0 -111
  1871. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.h +0 -324
  1872. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +0 -91
  1873. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +0 -240
  1874. data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.c +0 -30
  1875. data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +0 -53
  1876. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +0 -17
  1877. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +0 -33
  1878. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +0 -144
  1879. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +0 -527
  1880. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +0 -42
  1881. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +0 -112
  1882. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +0 -104
  1883. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +0 -383
  1884. data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.c +0 -29
  1885. data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +0 -53
  1886. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +0 -17
  1887. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +0 -33
  1888. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +0 -793
  1889. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +0 -2936
  1890. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +0 -62
  1891. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +0 -199
  1892. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +0 -58
  1893. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +0 -134
  1894. data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +0 -53
  1895. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +0 -227
  1896. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +0 -725
  1897. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +0 -296
  1898. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +0 -1072
  1899. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +0 -32
  1900. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +0 -65
  1901. data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.c +0 -23
  1902. data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.h +0 -50
  1903. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +0 -52
  1904. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +0 -130
  1905. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +0 -47
  1906. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +0 -108
  1907. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +0 -52
  1908. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +0 -133
  1909. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +0 -87
  1910. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +0 -258
  1911. data/src/core/ext/upb-generated/envoy/type/percent.upb.c +0 -38
  1912. data/src/core/ext/upb-generated/envoy/type/percent.upb.h +0 -87
  1913. data/src/core/ext/upb-generated/envoy/type/range.upb.c +0 -49
  1914. data/src/core/ext/upb-generated/envoy/type/range.upb.h +0 -112
  1915. data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.c +0 -28
  1916. data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +0 -62
  1917. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +0 -88
  1918. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +0 -249
  1919. data/src/core/ext/upb-generated/gogoproto/gogo.upb.c +0 -17
  1920. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +0 -58
  1921. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +0 -144
  1922. data/src/core/lib/gpr/arena.h +0 -47
  1923. data/src/core/lib/gpr/tls_gcc.h +0 -52
  1924. data/src/core/lib/gpr/tls_msvc.h +0 -52
  1925. data/src/core/lib/gpr/tls_pthread.h +0 -56
  1926. data/src/core/lib/gprpp/atomic.h +0 -104
  1927. data/src/core/lib/gprpp/map.h +0 -59
  1928. data/src/core/lib/gprpp/string_view.h +0 -60
  1929. data/src/core/lib/iomgr/endpoint_pair_uv.cc +0 -40
  1930. data/src/core/lib/iomgr/iomgr_posix.h +0 -26
  1931. data/src/core/lib/iomgr/iomgr_uv.cc +0 -43
  1932. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -87
  1933. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
  1934. data/src/core/lib/iomgr/pollset_uv.cc +0 -93
  1935. data/src/core/lib/iomgr/sockaddr_custom.h +0 -54
  1936. data/src/core/lib/iomgr/socket_utils_uv.cc +0 -49
  1937. data/src/core/lib/iomgr/tcp_uv.cc +0 -418
  1938. data/src/core/lib/iomgr/timer_uv.cc +0 -66
  1939. data/src/core/lib/iomgr/udp_server.cc +0 -752
  1940. data/src/core/lib/iomgr/udp_server.h +0 -101
  1941. data/src/core/lib/security/transport/target_authority_table.cc +0 -75
  1942. data/src/core/lib/security/transport/target_authority_table.h +0 -40
  1943. data/src/core/lib/slice/slice_hash_table.h +0 -199
  1944. data/src/core/lib/slice/slice_weak_hash_table.h +0 -102
  1945. data/src/core/tsi/grpc_shadow_boringssl.h +0 -3311
  1946. data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +0 -129
  1947. data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -218
  1948. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +0 -104
  1949. data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
  1950. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pku.c +0 -110
  1951. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_sxnet.c +0 -274
  1952. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256.c +0 -1063
  1953. data/third_party/upb/upb/generated_util.h +0 -105
  1954. data/third_party/upb/upb/port.c +0 -26
@@ -8,7 +8,7 @@
8
8
  * are met:
9
9
  *
10
10
  * 1. Redistributions of source code must retain the above copyright
11
- * notice, this list of conditions and the following disclaimer.
11
+ * notice, this list of conditions and the following disclaimer.
12
12
  *
13
13
  * 2. Redistributions in binary form must reproduce the above copyright
14
14
  * notice, this list of conditions and the following disclaimer in
@@ -57,271 +57,243 @@
57
57
 
58
58
  #include <openssl/bio.h>
59
59
  #include <openssl/conf.h>
60
- #include <openssl/x509.h>
61
60
  #include <openssl/lhash.h>
61
+ #include <openssl/x509.h>
62
62
 
63
63
  #ifdef __cplusplus
64
64
  extern "C" {
65
65
  #endif
66
66
 
67
67
 
68
- /* Legacy X.509 library.
69
- *
70
- * This header is part of OpenSSL's X.509 implementation. It is retained for
71
- * compatibility but otherwise underdocumented and not actively maintained. In
72
- * the future, a replacement library will be available. Meanwhile, minimize
73
- * dependencies on this header where possible. */
68
+ // Legacy X.509 library.
69
+ //
70
+ // This header is part of OpenSSL's X.509 implementation. It is retained for
71
+ // compatibility but otherwise underdocumented and not actively maintained. In
72
+ // the future, a replacement library will be available. Meanwhile, minimize
73
+ // dependencies on this header where possible.
74
74
 
75
75
 
76
- /* Forward reference */
76
+ // Forward reference
77
77
  struct v3_ext_method;
78
78
  struct v3_ext_ctx;
79
79
 
80
- /* Useful typedefs */
80
+ // Useful typedefs
81
81
 
82
- typedef void * (*X509V3_EXT_NEW)(void);
82
+ typedef void *(*X509V3_EXT_NEW)(void);
83
83
  typedef void (*X509V3_EXT_FREE)(void *);
84
- typedef void * (*X509V3_EXT_D2I)(void *, const unsigned char ** , long);
84
+ typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long);
85
85
  typedef int (*X509V3_EXT_I2D)(void *, unsigned char **);
86
- typedef STACK_OF(CONF_VALUE) *
87
- (*X509V3_EXT_I2V)(const struct v3_ext_method *method, void *ext,
88
- STACK_OF(CONF_VALUE) *extlist);
89
- typedef void * (*X509V3_EXT_V2I)(const struct v3_ext_method *method,
90
- struct v3_ext_ctx *ctx,
91
- STACK_OF(CONF_VALUE) *values);
92
- typedef char * (*X509V3_EXT_I2S)(const struct v3_ext_method *method, void *ext);
93
- typedef void * (*X509V3_EXT_S2I)(const struct v3_ext_method *method,
94
- struct v3_ext_ctx *ctx, const char *str);
86
+ typedef STACK_OF(CONF_VALUE) *(*X509V3_EXT_I2V)(
87
+ const struct v3_ext_method *method, void *ext,
88
+ STACK_OF(CONF_VALUE) *extlist);
89
+ typedef void *(*X509V3_EXT_V2I)(const struct v3_ext_method *method,
90
+ struct v3_ext_ctx *ctx,
91
+ STACK_OF(CONF_VALUE) *values);
92
+ typedef char *(*X509V3_EXT_I2S)(const struct v3_ext_method *method, void *ext);
93
+ typedef void *(*X509V3_EXT_S2I)(const struct v3_ext_method *method,
94
+ struct v3_ext_ctx *ctx, const char *str);
95
95
  typedef int (*X509V3_EXT_I2R)(const struct v3_ext_method *method, void *ext,
96
- BIO *out, int indent);
97
- typedef void * (*X509V3_EXT_R2I)(const struct v3_ext_method *method,
98
- struct v3_ext_ctx *ctx, const char *str);
96
+ BIO *out, int indent);
97
+ typedef void *(*X509V3_EXT_R2I)(const struct v3_ext_method *method,
98
+ struct v3_ext_ctx *ctx, const char *str);
99
99
 
100
- /* V3 extension structure */
100
+ // V3 extension structure
101
101
 
102
102
  struct v3_ext_method {
103
- int ext_nid;
104
- int ext_flags;
105
- /* If this is set the following four fields are ignored */
106
- ASN1_ITEM_EXP *it;
107
- /* Old style ASN1 calls */
108
- X509V3_EXT_NEW ext_new;
109
- X509V3_EXT_FREE ext_free;
110
- X509V3_EXT_D2I d2i;
111
- X509V3_EXT_I2D i2d;
112
-
113
- /* The following pair is used for string extensions */
114
- X509V3_EXT_I2S i2s;
115
- X509V3_EXT_S2I s2i;
116
-
117
- /* The following pair is used for multi-valued extensions */
118
- X509V3_EXT_I2V i2v;
119
- X509V3_EXT_V2I v2i;
120
-
121
- /* The following are used for raw extensions */
122
- X509V3_EXT_I2R i2r;
123
- X509V3_EXT_R2I r2i;
124
-
125
- void *usr_data; /* Any extension specific data */
103
+ int ext_nid;
104
+ int ext_flags;
105
+ // If this is set the following four fields are ignored
106
+ ASN1_ITEM_EXP *it;
107
+ // Old style ASN1 calls
108
+ X509V3_EXT_NEW ext_new;
109
+ X509V3_EXT_FREE ext_free;
110
+ X509V3_EXT_D2I d2i;
111
+ X509V3_EXT_I2D i2d;
112
+
113
+ // The following pair is used for string extensions
114
+ X509V3_EXT_I2S i2s;
115
+ X509V3_EXT_S2I s2i;
116
+
117
+ // The following pair is used for multi-valued extensions
118
+ X509V3_EXT_I2V i2v;
119
+ X509V3_EXT_V2I v2i;
120
+
121
+ // The following are used for raw extensions
122
+ X509V3_EXT_I2R i2r;
123
+ X509V3_EXT_R2I r2i;
124
+
125
+ void *usr_data; // Any extension specific data
126
126
  };
127
127
 
128
128
  typedef struct X509V3_CONF_METHOD_st {
129
- char * (*get_string)(void *db, char *section, char *value);
130
- STACK_OF(CONF_VALUE) * (*get_section)(void *db, char *section);
131
- void (*free_string)(void *db, char * string);
132
- void (*free_section)(void *db, STACK_OF(CONF_VALUE) *section);
129
+ char *(*get_string)(void *db, const char *section, const char *value);
130
+ STACK_OF(CONF_VALUE) *(*get_section)(void *db, const char *section);
131
+ void (*free_string)(void *db, char *string);
132
+ void (*free_section)(void *db, STACK_OF(CONF_VALUE) *section);
133
133
  } X509V3_CONF_METHOD;
134
134
 
135
- /* Context specific info */
135
+ // Context specific info
136
136
  struct v3_ext_ctx {
137
137
  #define CTX_TEST 0x1
138
- int flags;
139
- X509 *issuer_cert;
140
- X509 *subject_cert;
141
- X509_REQ *subject_req;
142
- X509_CRL *crl;
143
- const X509V3_CONF_METHOD *db_meth;
144
- void *db;
145
- /* Maybe more here */
138
+ int flags;
139
+ X509 *issuer_cert;
140
+ X509 *subject_cert;
141
+ X509_REQ *subject_req;
142
+ X509_CRL *crl;
143
+ const X509V3_CONF_METHOD *db_meth;
144
+ void *db;
145
+ // Maybe more here
146
146
  };
147
147
 
148
148
  typedef struct v3_ext_method X509V3_EXT_METHOD;
149
149
 
150
150
  DEFINE_STACK_OF(X509V3_EXT_METHOD)
151
151
 
152
- /* ext_flags values */
153
- #define X509V3_EXT_DYNAMIC 0x1
154
- #define X509V3_EXT_CTX_DEP 0x2
155
- #define X509V3_EXT_MULTILINE 0x4
156
-
157
- typedef BIT_STRING_BITNAME ENUMERATED_NAMES;
152
+ // ext_flags values
153
+ #define X509V3_EXT_DYNAMIC 0x1
154
+ #define X509V3_EXT_CTX_DEP 0x2
155
+ #define X509V3_EXT_MULTILINE 0x4
158
156
 
159
157
  struct BASIC_CONSTRAINTS_st {
160
- int ca;
161
- ASN1_INTEGER *pathlen;
158
+ int ca;
159
+ ASN1_INTEGER *pathlen;
162
160
  };
163
161
 
164
162
 
165
- typedef struct PKEY_USAGE_PERIOD_st {
166
- ASN1_GENERALIZEDTIME *notBefore;
167
- ASN1_GENERALIZEDTIME *notAfter;
168
- } PKEY_USAGE_PERIOD;
169
-
170
163
  typedef struct otherName_st {
171
- ASN1_OBJECT *type_id;
172
- ASN1_TYPE *value;
164
+ ASN1_OBJECT *type_id;
165
+ ASN1_TYPE *value;
173
166
  } OTHERNAME;
174
167
 
175
168
  typedef struct EDIPartyName_st {
176
- ASN1_STRING *nameAssigner;
177
- ASN1_STRING *partyName;
169
+ ASN1_STRING *nameAssigner;
170
+ ASN1_STRING *partyName;
178
171
  } EDIPARTYNAME;
179
172
 
180
173
  typedef struct GENERAL_NAME_st {
181
-
182
- #define GEN_OTHERNAME 0
183
- #define GEN_EMAIL 1
184
- #define GEN_DNS 2
185
- #define GEN_X400 3
186
- #define GEN_DIRNAME 4
187
- #define GEN_EDIPARTY 5
188
- #define GEN_URI 6
189
- #define GEN_IPADD 7
190
- #define GEN_RID 8
191
-
192
- int type;
193
- union {
194
- char *ptr;
195
- OTHERNAME *otherName; /* otherName */
196
- ASN1_IA5STRING *rfc822Name;
197
- ASN1_IA5STRING *dNSName;
198
- ASN1_TYPE *x400Address;
199
- X509_NAME *directoryName;
200
- EDIPARTYNAME *ediPartyName;
201
- ASN1_IA5STRING *uniformResourceIdentifier;
202
- ASN1_OCTET_STRING *iPAddress;
203
- ASN1_OBJECT *registeredID;
204
-
205
- /* Old names */
206
- ASN1_OCTET_STRING *ip; /* iPAddress */
207
- X509_NAME *dirn; /* dirn */
208
- ASN1_IA5STRING *ia5;/* rfc822Name, dNSName, uniformResourceIdentifier */
209
- ASN1_OBJECT *rid; /* registeredID */
210
- ASN1_TYPE *other; /* x400Address */
211
- } d;
174
+ #define GEN_OTHERNAME 0
175
+ #define GEN_EMAIL 1
176
+ #define GEN_DNS 2
177
+ #define GEN_X400 3
178
+ #define GEN_DIRNAME 4
179
+ #define GEN_EDIPARTY 5
180
+ #define GEN_URI 6
181
+ #define GEN_IPADD 7
182
+ #define GEN_RID 8
183
+
184
+ int type;
185
+ union {
186
+ char *ptr;
187
+ OTHERNAME *otherName; // otherName
188
+ ASN1_IA5STRING *rfc822Name;
189
+ ASN1_IA5STRING *dNSName;
190
+ ASN1_TYPE *x400Address;
191
+ X509_NAME *directoryName;
192
+ EDIPARTYNAME *ediPartyName;
193
+ ASN1_IA5STRING *uniformResourceIdentifier;
194
+ ASN1_OCTET_STRING *iPAddress;
195
+ ASN1_OBJECT *registeredID;
196
+
197
+ // Old names
198
+ ASN1_OCTET_STRING *ip; // iPAddress
199
+ X509_NAME *dirn; // dirn
200
+ ASN1_IA5STRING *ia5; // rfc822Name, dNSName, uniformResourceIdentifier
201
+ ASN1_OBJECT *rid; // registeredID
202
+ ASN1_TYPE *other; // x400Address
203
+ } d;
212
204
  } GENERAL_NAME;
213
205
 
214
206
  DEFINE_STACK_OF(GENERAL_NAME)
215
- DECLARE_ASN1_SET_OF(GENERAL_NAME)
216
207
 
217
208
  typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES;
218
209
 
219
210
  DEFINE_STACK_OF(GENERAL_NAMES)
220
211
 
221
212
  typedef struct ACCESS_DESCRIPTION_st {
222
- ASN1_OBJECT *method;
223
- GENERAL_NAME *location;
213
+ ASN1_OBJECT *method;
214
+ GENERAL_NAME *location;
224
215
  } ACCESS_DESCRIPTION;
225
216
 
226
217
  DEFINE_STACK_OF(ACCESS_DESCRIPTION)
227
- DECLARE_ASN1_SET_OF(ACCESS_DESCRIPTION)
228
218
 
229
219
  typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS;
230
220
 
231
221
  typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE;
232
222
 
233
223
  typedef struct DIST_POINT_NAME_st {
234
- int type;
235
- union {
236
- GENERAL_NAMES *fullname;
237
- STACK_OF(X509_NAME_ENTRY) *relativename;
238
- } name;
239
- /* If relativename then this contains the full distribution point name */
240
- X509_NAME *dpname;
224
+ int type;
225
+ union {
226
+ GENERAL_NAMES *fullname;
227
+ STACK_OF(X509_NAME_ENTRY) *relativename;
228
+ } name;
229
+ // If relativename then this contains the full distribution point name
230
+ X509_NAME *dpname;
241
231
  } DIST_POINT_NAME;
242
- /* All existing reasons */
243
- #define CRLDP_ALL_REASONS 0x807f
244
-
245
- #define CRL_REASON_NONE (-1)
246
- #define CRL_REASON_UNSPECIFIED 0
247
- #define CRL_REASON_KEY_COMPROMISE 1
248
- #define CRL_REASON_CA_COMPROMISE 2
249
- #define CRL_REASON_AFFILIATION_CHANGED 3
250
- #define CRL_REASON_SUPERSEDED 4
251
- #define CRL_REASON_CESSATION_OF_OPERATION 5
252
- #define CRL_REASON_CERTIFICATE_HOLD 6
253
- #define CRL_REASON_REMOVE_FROM_CRL 8
254
- #define CRL_REASON_PRIVILEGE_WITHDRAWN 9
255
- #define CRL_REASON_AA_COMPROMISE 10
232
+ // All existing reasons
233
+ #define CRLDP_ALL_REASONS 0x807f
234
+
235
+ #define CRL_REASON_NONE (-1)
236
+ #define CRL_REASON_UNSPECIFIED 0
237
+ #define CRL_REASON_KEY_COMPROMISE 1
238
+ #define CRL_REASON_CA_COMPROMISE 2
239
+ #define CRL_REASON_AFFILIATION_CHANGED 3
240
+ #define CRL_REASON_SUPERSEDED 4
241
+ #define CRL_REASON_CESSATION_OF_OPERATION 5
242
+ #define CRL_REASON_CERTIFICATE_HOLD 6
243
+ #define CRL_REASON_REMOVE_FROM_CRL 8
244
+ #define CRL_REASON_PRIVILEGE_WITHDRAWN 9
245
+ #define CRL_REASON_AA_COMPROMISE 10
256
246
 
257
247
  struct DIST_POINT_st {
258
- DIST_POINT_NAME *distpoint;
259
- ASN1_BIT_STRING *reasons;
260
- GENERAL_NAMES *CRLissuer;
261
- int dp_reasons;
248
+ DIST_POINT_NAME *distpoint;
249
+ ASN1_BIT_STRING *reasons;
250
+ GENERAL_NAMES *CRLissuer;
251
+ int dp_reasons;
262
252
  };
263
253
 
264
254
  typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS;
265
255
 
266
256
  DEFINE_STACK_OF(DIST_POINT)
267
- DECLARE_ASN1_SET_OF(DIST_POINT)
268
257
 
269
258
  struct AUTHORITY_KEYID_st {
270
- ASN1_OCTET_STRING *keyid;
271
- GENERAL_NAMES *issuer;
272
- ASN1_INTEGER *serial;
259
+ ASN1_OCTET_STRING *keyid;
260
+ GENERAL_NAMES *issuer;
261
+ ASN1_INTEGER *serial;
273
262
  };
274
263
 
275
- /* Strong extranet structures */
276
-
277
- typedef struct SXNET_ID_st {
278
- ASN1_INTEGER *zone;
279
- ASN1_OCTET_STRING *user;
280
- } SXNETID;
281
-
282
- DEFINE_STACK_OF(SXNETID)
283
- DECLARE_ASN1_SET_OF(SXNETID)
284
-
285
- typedef struct SXNET_st {
286
- ASN1_INTEGER *version;
287
- STACK_OF(SXNETID) *ids;
288
- } SXNET;
289
-
290
264
  typedef struct NOTICEREF_st {
291
- ASN1_STRING *organization;
292
- STACK_OF(ASN1_INTEGER) *noticenos;
265
+ ASN1_STRING *organization;
266
+ STACK_OF(ASN1_INTEGER) *noticenos;
293
267
  } NOTICEREF;
294
268
 
295
269
  typedef struct USERNOTICE_st {
296
- NOTICEREF *noticeref;
297
- ASN1_STRING *exptext;
270
+ NOTICEREF *noticeref;
271
+ ASN1_STRING *exptext;
298
272
  } USERNOTICE;
299
273
 
300
274
  typedef struct POLICYQUALINFO_st {
301
- ASN1_OBJECT *pqualid;
302
- union {
303
- ASN1_IA5STRING *cpsuri;
304
- USERNOTICE *usernotice;
305
- ASN1_TYPE *other;
306
- } d;
275
+ ASN1_OBJECT *pqualid;
276
+ union {
277
+ ASN1_IA5STRING *cpsuri;
278
+ USERNOTICE *usernotice;
279
+ ASN1_TYPE *other;
280
+ } d;
307
281
  } POLICYQUALINFO;
308
282
 
309
283
  DEFINE_STACK_OF(POLICYQUALINFO)
310
- DECLARE_ASN1_SET_OF(POLICYQUALINFO)
311
284
 
312
285
  typedef struct POLICYINFO_st {
313
- ASN1_OBJECT *policyid;
314
- STACK_OF(POLICYQUALINFO) *qualifiers;
286
+ ASN1_OBJECT *policyid;
287
+ STACK_OF(POLICYQUALINFO) *qualifiers;
315
288
  } POLICYINFO;
316
289
 
317
290
  typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES;
318
291
 
319
292
  DEFINE_STACK_OF(POLICYINFO)
320
- DECLARE_ASN1_SET_OF(POLICYINFO)
321
293
 
322
294
  typedef struct POLICY_MAPPING_st {
323
- ASN1_OBJECT *issuerDomainPolicy;
324
- ASN1_OBJECT *subjectDomainPolicy;
295
+ ASN1_OBJECT *issuerDomainPolicy;
296
+ ASN1_OBJECT *subjectDomainPolicy;
325
297
  } POLICY_MAPPING;
326
298
 
327
299
  DEFINE_STACK_OF(POLICY_MAPPING)
@@ -329,246 +301,239 @@ DEFINE_STACK_OF(POLICY_MAPPING)
329
301
  typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS;
330
302
 
331
303
  typedef struct GENERAL_SUBTREE_st {
332
- GENERAL_NAME *base;
333
- ASN1_INTEGER *minimum;
334
- ASN1_INTEGER *maximum;
304
+ GENERAL_NAME *base;
305
+ ASN1_INTEGER *minimum;
306
+ ASN1_INTEGER *maximum;
335
307
  } GENERAL_SUBTREE;
336
308
 
337
309
  DEFINE_STACK_OF(GENERAL_SUBTREE)
338
310
 
339
311
  struct NAME_CONSTRAINTS_st {
340
- STACK_OF(GENERAL_SUBTREE) *permittedSubtrees;
341
- STACK_OF(GENERAL_SUBTREE) *excludedSubtrees;
312
+ STACK_OF(GENERAL_SUBTREE) *permittedSubtrees;
313
+ STACK_OF(GENERAL_SUBTREE) *excludedSubtrees;
342
314
  };
343
315
 
344
316
  typedef struct POLICY_CONSTRAINTS_st {
345
- ASN1_INTEGER *requireExplicitPolicy;
346
- ASN1_INTEGER *inhibitPolicyMapping;
317
+ ASN1_INTEGER *requireExplicitPolicy;
318
+ ASN1_INTEGER *inhibitPolicyMapping;
347
319
  } POLICY_CONSTRAINTS;
348
320
 
349
- /* Proxy certificate structures, see RFC 3820 */
350
- typedef struct PROXY_POLICY_st
351
- {
352
- ASN1_OBJECT *policyLanguage;
353
- ASN1_OCTET_STRING *policy;
354
- } PROXY_POLICY;
321
+ // Proxy certificate structures, see RFC 3820
322
+ typedef struct PROXY_POLICY_st {
323
+ ASN1_OBJECT *policyLanguage;
324
+ ASN1_OCTET_STRING *policy;
325
+ } PROXY_POLICY;
355
326
 
356
- typedef struct PROXY_CERT_INFO_EXTENSION_st
357
- {
358
- ASN1_INTEGER *pcPathLengthConstraint;
359
- PROXY_POLICY *proxyPolicy;
360
- } PROXY_CERT_INFO_EXTENSION;
327
+ typedef struct PROXY_CERT_INFO_EXTENSION_st {
328
+ ASN1_INTEGER *pcPathLengthConstraint;
329
+ PROXY_POLICY *proxyPolicy;
330
+ } PROXY_CERT_INFO_EXTENSION;
361
331
 
362
332
  DECLARE_ASN1_FUNCTIONS(PROXY_POLICY)
363
333
  DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION)
364
334
 
365
- struct ISSUING_DIST_POINT_st
366
- {
367
- DIST_POINT_NAME *distpoint;
368
- int onlyuser;
369
- int onlyCA;
370
- ASN1_BIT_STRING *onlysomereasons;
371
- int indirectCRL;
372
- int onlyattr;
373
- };
374
-
375
- /* Values in idp_flags field */
376
- /* IDP present */
377
- #define IDP_PRESENT 0x1
378
- /* IDP values inconsistent */
379
- #define IDP_INVALID 0x2
380
- /* onlyuser true */
381
- #define IDP_ONLYUSER 0x4
382
- /* onlyCA true */
383
- #define IDP_ONLYCA 0x8
384
- /* onlyattr true */
385
- #define IDP_ONLYATTR 0x10
386
- /* indirectCRL true */
387
- #define IDP_INDIRECT 0x20
388
- /* onlysomereasons present */
389
- #define IDP_REASONS 0x40
390
-
391
- #define X509V3_conf_err(val) ERR_add_error_data(6, "section:", (val)->section, \
392
- ",name:", (val)->name, ",value:", (val)->value);
335
+ struct ISSUING_DIST_POINT_st {
336
+ DIST_POINT_NAME *distpoint;
337
+ int onlyuser;
338
+ int onlyCA;
339
+ ASN1_BIT_STRING *onlysomereasons;
340
+ int indirectCRL;
341
+ int onlyattr;
342
+ };
343
+
344
+ // Values in idp_flags field
345
+ // IDP present
346
+ #define IDP_PRESENT 0x1
347
+ // IDP values inconsistent
348
+ #define IDP_INVALID 0x2
349
+ // onlyuser true
350
+ #define IDP_ONLYUSER 0x4
351
+ // onlyCA true
352
+ #define IDP_ONLYCA 0x8
353
+ // onlyattr true
354
+ #define IDP_ONLYATTR 0x10
355
+ // indirectCRL true
356
+ #define IDP_INDIRECT 0x20
357
+ // onlysomereasons present
358
+ #define IDP_REASONS 0x40
359
+
360
+ #define X509V3_conf_err(val) \
361
+ ERR_add_error_data(6, "section:", (val)->section, ",name:", (val)->name, \
362
+ ",value:", (val)->value);
393
363
 
394
364
  #define X509V3_set_ctx_test(ctx) \
395
- X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST)
365
+ X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST)
396
366
  #define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL;
397
367
 
398
- #define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \
399
- 0,0,0,0, \
400
- 0,0, \
401
- (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \
402
- (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \
403
- NULL, NULL, \
404
- (void *)(table)}
405
-
406
- #define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \
407
- 0,0,0,0, \
408
- (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \
409
- (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \
410
- 0,0,0,0, \
411
- NULL}
412
-
413
- #define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
414
-
415
-
416
- /* X509_PURPOSE stuff */
417
-
418
- #define EXFLAG_BCONS 0x1
419
- #define EXFLAG_KUSAGE 0x2
420
- #define EXFLAG_XKUSAGE 0x4
421
- #define EXFLAG_NSCERT 0x8
422
-
423
- #define EXFLAG_CA 0x10
424
- /* Really self issued not necessarily self signed */
425
- #define EXFLAG_SI 0x20
426
- #define EXFLAG_V1 0x40
427
- #define EXFLAG_INVALID 0x80
428
- #define EXFLAG_SET 0x100
429
- #define EXFLAG_CRITICAL 0x200
430
- #define EXFLAG_PROXY 0x400
431
-
432
- #define EXFLAG_INVALID_POLICY 0x800
433
- #define EXFLAG_FRESHEST 0x1000
434
- /* Self signed */
435
- #define EXFLAG_SS 0x2000
436
-
437
- #define KU_DIGITAL_SIGNATURE 0x0080
438
- #define KU_NON_REPUDIATION 0x0040
439
- #define KU_KEY_ENCIPHERMENT 0x0020
440
- #define KU_DATA_ENCIPHERMENT 0x0010
441
- #define KU_KEY_AGREEMENT 0x0008
442
- #define KU_KEY_CERT_SIGN 0x0004
443
- #define KU_CRL_SIGN 0x0002
444
- #define KU_ENCIPHER_ONLY 0x0001
445
- #define KU_DECIPHER_ONLY 0x8000
446
-
447
- #define NS_SSL_CLIENT 0x80
448
- #define NS_SSL_SERVER 0x40
449
- #define NS_SMIME 0x20
450
- #define NS_OBJSIGN 0x10
451
- #define NS_SSL_CA 0x04
452
- #define NS_SMIME_CA 0x02
453
- #define NS_OBJSIGN_CA 0x01
454
- #define NS_ANY_CA (NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA)
455
-
456
- #define XKU_SSL_SERVER 0x1
457
- #define XKU_SSL_CLIENT 0x2
458
- #define XKU_SMIME 0x4
459
- #define XKU_CODE_SIGN 0x8
460
- #define XKU_SGC 0x10
461
- #define XKU_OCSP_SIGN 0x20
462
- #define XKU_TIMESTAMP 0x40
463
- #define XKU_DVCS 0x80
464
- #define XKU_ANYEKU 0x100
465
-
466
- #define X509_PURPOSE_DYNAMIC 0x1
467
- #define X509_PURPOSE_DYNAMIC_NAME 0x2
368
+ #define EXT_BITSTRING(nid, table) \
369
+ { \
370
+ nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), 0, 0, 0, 0, 0, 0, \
371
+ (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \
372
+ (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, NULL, NULL, (void *)(table) \
373
+ }
374
+
375
+ #define EXT_IA5STRING(nid) \
376
+ { \
377
+ nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), 0, 0, 0, 0, \
378
+ (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \
379
+ (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, 0, 0, 0, 0, NULL \
380
+ }
381
+
382
+ #define EXT_END \
383
+ { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
384
+
385
+
386
+ // X509_PURPOSE stuff
387
+
388
+ #define EXFLAG_BCONS 0x1
389
+ #define EXFLAG_KUSAGE 0x2
390
+ #define EXFLAG_XKUSAGE 0x4
391
+ #define EXFLAG_NSCERT 0x8
392
+
393
+ #define EXFLAG_CA 0x10
394
+ // Really self issued not necessarily self signed
395
+ #define EXFLAG_SI 0x20
396
+ #define EXFLAG_V1 0x40
397
+ #define EXFLAG_INVALID 0x80
398
+ #define EXFLAG_SET 0x100
399
+ #define EXFLAG_CRITICAL 0x200
400
+ #define EXFLAG_PROXY 0x400
401
+
402
+ #define EXFLAG_INVALID_POLICY 0x800
403
+ #define EXFLAG_FRESHEST 0x1000
404
+ // Self signed
405
+ #define EXFLAG_SS 0x2000
406
+
407
+ #define KU_DIGITAL_SIGNATURE 0x0080
408
+ #define KU_NON_REPUDIATION 0x0040
409
+ #define KU_KEY_ENCIPHERMENT 0x0020
410
+ #define KU_DATA_ENCIPHERMENT 0x0010
411
+ #define KU_KEY_AGREEMENT 0x0008
412
+ #define KU_KEY_CERT_SIGN 0x0004
413
+ #define KU_CRL_SIGN 0x0002
414
+ #define KU_ENCIPHER_ONLY 0x0001
415
+ #define KU_DECIPHER_ONLY 0x8000
416
+
417
+ #define NS_SSL_CLIENT 0x80
418
+ #define NS_SSL_SERVER 0x40
419
+ #define NS_SMIME 0x20
420
+ #define NS_OBJSIGN 0x10
421
+ #define NS_SSL_CA 0x04
422
+ #define NS_SMIME_CA 0x02
423
+ #define NS_OBJSIGN_CA 0x01
424
+ #define NS_ANY_CA (NS_SSL_CA | NS_SMIME_CA | NS_OBJSIGN_CA)
425
+
426
+ #define XKU_SSL_SERVER 0x1
427
+ #define XKU_SSL_CLIENT 0x2
428
+ #define XKU_SMIME 0x4
429
+ #define XKU_CODE_SIGN 0x8
430
+ #define XKU_SGC 0x10
431
+ #define XKU_OCSP_SIGN 0x20
432
+ #define XKU_TIMESTAMP 0x40
433
+ #define XKU_DVCS 0x80
434
+ #define XKU_ANYEKU 0x100
435
+
436
+ #define X509_PURPOSE_DYNAMIC 0x1
437
+ #define X509_PURPOSE_DYNAMIC_NAME 0x2
468
438
 
469
439
  typedef struct x509_purpose_st {
470
- int purpose;
471
- int trust; /* Default trust ID */
472
- int flags;
473
- int (*check_purpose)(const struct x509_purpose_st *,
474
- const X509 *, int);
475
- char *name;
476
- char *sname;
477
- void *usr_data;
440
+ int purpose;
441
+ int trust; // Default trust ID
442
+ int flags;
443
+ int (*check_purpose)(const struct x509_purpose_st *, const X509 *, int);
444
+ char *name;
445
+ char *sname;
446
+ void *usr_data;
478
447
  } X509_PURPOSE;
479
448
 
480
- #define X509_PURPOSE_SSL_CLIENT 1
481
- #define X509_PURPOSE_SSL_SERVER 2
482
- #define X509_PURPOSE_NS_SSL_SERVER 3
483
- #define X509_PURPOSE_SMIME_SIGN 4
484
- #define X509_PURPOSE_SMIME_ENCRYPT 5
485
- #define X509_PURPOSE_CRL_SIGN 6
486
- #define X509_PURPOSE_ANY 7
487
- #define X509_PURPOSE_OCSP_HELPER 8
488
- #define X509_PURPOSE_TIMESTAMP_SIGN 9
489
-
490
- #define X509_PURPOSE_MIN 1
491
- #define X509_PURPOSE_MAX 9
492
-
493
- /* Flags for X509V3_EXT_print() */
494
-
495
- #define X509V3_EXT_UNKNOWN_MASK (0xfL << 16)
496
- /* Return error for unknown extensions */
497
- #define X509V3_EXT_DEFAULT 0
498
- /* Print error for unknown extensions */
499
- #define X509V3_EXT_ERROR_UNKNOWN (1L << 16)
500
- /* ASN1 parse unknown extensions */
501
- #define X509V3_EXT_PARSE_UNKNOWN (2L << 16)
502
- /* BIO_dump unknown extensions */
503
- #define X509V3_EXT_DUMP_UNKNOWN (3L << 16)
504
-
505
- /* Flags for X509V3_add1_i2d */
506
-
507
- #define X509V3_ADD_OP_MASK 0xfL
508
- #define X509V3_ADD_DEFAULT 0L
509
- #define X509V3_ADD_APPEND 1L
510
- #define X509V3_ADD_REPLACE 2L
511
- #define X509V3_ADD_REPLACE_EXISTING 3L
512
- #define X509V3_ADD_KEEP_EXISTING 4L
513
- #define X509V3_ADD_DELETE 5L
514
- #define X509V3_ADD_SILENT 0x10
449
+ #define X509_PURPOSE_SSL_CLIENT 1
450
+ #define X509_PURPOSE_SSL_SERVER 2
451
+ #define X509_PURPOSE_NS_SSL_SERVER 3
452
+ #define X509_PURPOSE_SMIME_SIGN 4
453
+ #define X509_PURPOSE_SMIME_ENCRYPT 5
454
+ #define X509_PURPOSE_CRL_SIGN 6
455
+ #define X509_PURPOSE_ANY 7
456
+ #define X509_PURPOSE_OCSP_HELPER 8
457
+ #define X509_PURPOSE_TIMESTAMP_SIGN 9
458
+
459
+ #define X509_PURPOSE_MIN 1
460
+ #define X509_PURPOSE_MAX 9
515
461
 
516
462
  DEFINE_STACK_OF(X509_PURPOSE)
517
463
 
518
464
  DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS)
519
465
 
520
- DECLARE_ASN1_FUNCTIONS(SXNET)
521
- DECLARE_ASN1_FUNCTIONS(SXNETID)
522
-
523
- int SXNET_add_id_asc(SXNET **psx, char *zone, char *user, int userlen);
524
- int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, char *user, int userlen);
525
- int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, char *user, int userlen);
526
-
527
- ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, char *zone);
528
- ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone);
529
- ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone);
530
-
531
466
  DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID)
532
467
 
533
- DECLARE_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD)
534
-
535
468
  DECLARE_ASN1_FUNCTIONS(GENERAL_NAME)
536
469
  OPENSSL_EXPORT GENERAL_NAME *GENERAL_NAME_dup(GENERAL_NAME *a);
537
- OPENSSL_EXPORT int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b);
538
470
 
471
+ // GENERAL_NAME_cmp returns zero if |a| and |b| are equal and a non-zero
472
+ // value otherwise. Note this function does not provide a comparison suitable
473
+ // for sorting.
474
+ OPENSSL_EXPORT int GENERAL_NAME_cmp(const GENERAL_NAME *a,
475
+ const GENERAL_NAME *b);
539
476
 
540
477
 
541
- OPENSSL_EXPORT ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
542
- X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval);
543
- OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
544
- ASN1_BIT_STRING *bits,
545
- STACK_OF(CONF_VALUE) *extlist);
546
478
 
547
- OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, GENERAL_NAME *gen, STACK_OF(CONF_VALUE) *ret);
479
+ OPENSSL_EXPORT ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
480
+ X509V3_CTX *ctx,
481
+ STACK_OF(CONF_VALUE) *nval);
482
+ OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(
483
+ X509V3_EXT_METHOD *method, ASN1_BIT_STRING *bits,
484
+ STACK_OF(CONF_VALUE) *extlist);
485
+
486
+ // i2v_GENERAL_NAME serializes |gen| as a |CONF_VALUE|. If |ret| is non-NULL, it
487
+ // appends the value to |ret| and returns |ret| on success or NULL on error. If
488
+ // it returns NULL, the caller is still responsible for freeing |ret|. If |ret|
489
+ // is NULL, it returns a newly-allocated |STACK_OF(CONF_VALUE)| containing the
490
+ // result. |method| is ignored.
491
+ //
492
+ // Do not use this function. This is an internal implementation detail of the
493
+ // human-readable print functions. If extracting a SAN list from a certificate,
494
+ // look at |gen| directly.
495
+ OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(
496
+ X509V3_EXT_METHOD *method, GENERAL_NAME *gen, STACK_OF(CONF_VALUE) *ret);
548
497
  OPENSSL_EXPORT int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen);
549
498
 
550
499
  DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES)
551
500
 
552
- OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method,
553
- GENERAL_NAMES *gen, STACK_OF(CONF_VALUE) *extlist);
501
+ // i2v_GENERAL_NAMES serializes |gen| as a list of |CONF_VALUE|s. If |ret| is
502
+ // non-NULL, it appends the values to |ret| and returns |ret| on success or NULL
503
+ // on error. If it returns NULL, the caller is still responsible for freeing
504
+ // |ret|. If |ret| is NULL, it returns a newly-allocated |STACK_OF(CONF_VALUE)|
505
+ // containing the results. |method| is ignored.
506
+ //
507
+ // Do not use this function. This is an internal implementation detail of the
508
+ // human-readable print functions. If extracting a SAN list from a certificate,
509
+ // look at |gen| directly.
510
+ OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(
511
+ X509V3_EXT_METHOD *method, GENERAL_NAMES *gen,
512
+ STACK_OF(CONF_VALUE) *extlist);
554
513
  OPENSSL_EXPORT GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method,
555
- X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval);
514
+ X509V3_CTX *ctx,
515
+ STACK_OF(CONF_VALUE) *nval);
556
516
 
557
517
  DECLARE_ASN1_FUNCTIONS(OTHERNAME)
558
518
  DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME)
559
519
  OPENSSL_EXPORT int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b);
560
- OPENSSL_EXPORT void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value);
561
- OPENSSL_EXPORT void *GENERAL_NAME_get0_value(GENERAL_NAME *a, int *ptype);
520
+ OPENSSL_EXPORT void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type,
521
+ void *value);
522
+ OPENSSL_EXPORT void *GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype);
562
523
  OPENSSL_EXPORT int GENERAL_NAME_set0_othername(GENERAL_NAME *gen,
563
- ASN1_OBJECT *oid, ASN1_TYPE *value);
564
- OPENSSL_EXPORT int GENERAL_NAME_get0_otherName(GENERAL_NAME *gen,
565
- ASN1_OBJECT **poid, ASN1_TYPE **pvalue);
524
+ ASN1_OBJECT *oid,
525
+ ASN1_TYPE *value);
526
+ OPENSSL_EXPORT int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen,
527
+ ASN1_OBJECT **poid,
528
+ ASN1_TYPE **pvalue);
566
529
 
567
- OPENSSL_EXPORT char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, ASN1_OCTET_STRING *ia5);
568
- OPENSSL_EXPORT ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, char *str);
530
+ OPENSSL_EXPORT char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method,
531
+ const ASN1_OCTET_STRING *ia5);
532
+ OPENSSL_EXPORT ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(
533
+ X509V3_EXT_METHOD *method, X509V3_CTX *ctx, const char *str);
569
534
 
570
535
  DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE)
571
- OPENSSL_EXPORT int i2a_ACCESS_DESCRIPTION(BIO *bp, ACCESS_DESCRIPTION* a);
536
+ OPENSSL_EXPORT int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a);
572
537
 
573
538
  DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES)
574
539
  DECLARE_ASN1_FUNCTIONS(POLICYINFO)
@@ -581,7 +546,8 @@ DECLARE_ASN1_FUNCTIONS(DIST_POINT)
581
546
  DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME)
582
547
  DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT)
583
548
 
584
- OPENSSL_EXPORT int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, X509_NAME *iname);
549
+ OPENSSL_EXPORT int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn,
550
+ X509_NAME *iname);
585
551
 
586
552
  OPENSSL_EXPORT int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc);
587
553
 
@@ -602,76 +568,250 @@ DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS)
602
568
  DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS)
603
569
 
604
570
  OPENSSL_EXPORT GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out,
605
- const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
606
- int gen_type, char *value, int is_nc);
607
-
608
- OPENSSL_EXPORT GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
609
- CONF_VALUE *cnf);
610
- OPENSSL_EXPORT GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out,
611
- const X509V3_EXT_METHOD *method,
612
- X509V3_CTX *ctx, CONF_VALUE *cnf, int is_nc);
571
+ const X509V3_EXT_METHOD *method,
572
+ X509V3_CTX *ctx, int gen_type,
573
+ const char *value, int is_nc);
574
+
575
+ OPENSSL_EXPORT GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method,
576
+ X509V3_CTX *ctx, CONF_VALUE *cnf);
577
+ OPENSSL_EXPORT GENERAL_NAME *v2i_GENERAL_NAME_ex(
578
+ GENERAL_NAME *out, const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
579
+ CONF_VALUE *cnf, int is_nc);
613
580
  OPENSSL_EXPORT void X509V3_conf_free(CONF_VALUE *val);
614
581
 
615
582
  // X509V3_EXT_conf_nid contains the only exposed instance of an LHASH in our
616
583
  // public headers. The |conf| pointer must be NULL but cryptography.io wraps
617
584
  // this function so we cannot, yet, replace the type with a dummy struct.
618
- OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, int ext_nid, char *value);
619
-
620
- OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, char *value);
621
- OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, char *name, char *value);
622
- OPENSSL_EXPORT int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, char *section, STACK_OF(X509_EXTENSION) **sk);
623
- OPENSSL_EXPORT int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509 *cert);
624
- OPENSSL_EXPORT int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509_REQ *req);
625
- OPENSSL_EXPORT int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509_CRL *crl);
626
-
627
- OPENSSL_EXPORT int X509V3_add_value_bool_nf(char *name, int asn1_bool,
628
- STACK_OF(CONF_VALUE) **extlist);
629
- OPENSSL_EXPORT int X509V3_get_value_bool(CONF_VALUE *value, int *asn1_bool);
630
- OPENSSL_EXPORT int X509V3_get_value_int(CONF_VALUE *value, ASN1_INTEGER **aint);
585
+ OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf,
586
+ X509V3_CTX *ctx, int ext_nid,
587
+ const char *value);
588
+
589
+ OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx,
590
+ int ext_nid,
591
+ const char *value);
592
+ OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx,
593
+ const char *name,
594
+ const char *value);
595
+ OPENSSL_EXPORT int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx,
596
+ const char *section,
597
+ STACK_OF(X509_EXTENSION) **sk);
598
+ OPENSSL_EXPORT int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx,
599
+ const char *section, X509 *cert);
600
+ OPENSSL_EXPORT int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx,
601
+ const char *section, X509_REQ *req);
602
+ OPENSSL_EXPORT int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx,
603
+ const char *section, X509_CRL *crl);
604
+
605
+ OPENSSL_EXPORT int X509V3_add_value_bool_nf(const char *name, int asn1_bool,
606
+ STACK_OF(CONF_VALUE) **extlist);
607
+ OPENSSL_EXPORT int X509V3_get_value_bool(const CONF_VALUE *value,
608
+ int *asn1_bool);
609
+ OPENSSL_EXPORT int X509V3_get_value_int(const CONF_VALUE *value,
610
+ ASN1_INTEGER **aint);
631
611
  OPENSSL_EXPORT void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf);
632
612
 
633
- OPENSSL_EXPORT char * X509V3_get_string(X509V3_CTX *ctx, char *name, char *section);
634
- OPENSSL_EXPORT STACK_OF(CONF_VALUE) * X509V3_get_section(X509V3_CTX *ctx, char *section);
613
+ OPENSSL_EXPORT char *X509V3_get_string(X509V3_CTX *ctx, const char *name,
614
+ const char *section);
615
+ OPENSSL_EXPORT STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx,
616
+ const char *section);
635
617
  OPENSSL_EXPORT void X509V3_string_free(X509V3_CTX *ctx, char *str);
636
- OPENSSL_EXPORT void X509V3_section_free( X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section);
618
+ OPENSSL_EXPORT void X509V3_section_free(X509V3_CTX *ctx,
619
+ STACK_OF(CONF_VALUE) *section);
637
620
  OPENSSL_EXPORT void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject,
638
- X509_REQ *req, X509_CRL *crl, int flags);
639
-
621
+ X509_REQ *req, X509_CRL *crl, int flags);
622
+
623
+ // X509V3_add_value appends a |CONF_VALUE| containing |name| and |value| to
624
+ // |*extlist|. It returns one on success and zero on error. If |*extlist| is
625
+ // NULL, it sets |*extlist| to a newly-allocated |STACK_OF(CONF_VALUE)|
626
+ // containing the result. Either |name| or |value| may be NULL to omit the
627
+ // field.
628
+ //
629
+ // On failure, if |*extlist| was NULL, |*extlist| will remain NULL when the
630
+ // function returns.
640
631
  OPENSSL_EXPORT int X509V3_add_value(const char *name, const char *value,
641
- STACK_OF(CONF_VALUE) **extlist);
642
- OPENSSL_EXPORT int X509V3_add_value_uchar(const char *name, const unsigned char *value,
643
- STACK_OF(CONF_VALUE) **extlist);
632
+ STACK_OF(CONF_VALUE) **extlist);
633
+
634
+ // X509V3_add_value_uchar behaves like |X509V3_add_value| but takes an
635
+ // |unsigned char| pointer.
636
+ OPENSSL_EXPORT int X509V3_add_value_uchar(const char *name,
637
+ const unsigned char *value,
638
+ STACK_OF(CONF_VALUE) **extlist);
639
+
640
+ // X509V3_add_value_bool behaves like |X509V3_add_value| but stores the value
641
+ // "TRUE" if |asn1_bool| is non-zero and "FALSE" otherwise.
644
642
  OPENSSL_EXPORT int X509V3_add_value_bool(const char *name, int asn1_bool,
645
- STACK_OF(CONF_VALUE) **extlist);
646
- OPENSSL_EXPORT int X509V3_add_value_int(const char *name, ASN1_INTEGER *aint,
647
- STACK_OF(CONF_VALUE) **extlist);
648
- OPENSSL_EXPORT char * i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, ASN1_INTEGER *aint);
649
- OPENSSL_EXPORT ASN1_INTEGER * s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, char *value);
650
- OPENSSL_EXPORT char * i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint);
651
- OPENSSL_EXPORT char * i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint);
643
+ STACK_OF(CONF_VALUE) **extlist);
644
+
645
+ // X509V3_add_value_bool behaves like |X509V3_add_value| but stores a string
646
+ // representation of |aint|. Note this string representation may be decimal or
647
+ // hexadecimal, depending on the size of |aint|.
648
+ OPENSSL_EXPORT int X509V3_add_value_int(const char *name,
649
+ const ASN1_INTEGER *aint,
650
+ STACK_OF(CONF_VALUE) **extlist);
651
+
652
+ OPENSSL_EXPORT char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth,
653
+ const ASN1_INTEGER *aint);
654
+ OPENSSL_EXPORT ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth,
655
+ const char *value);
656
+ OPENSSL_EXPORT char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth,
657
+ const ASN1_ENUMERATED *aint);
658
+ OPENSSL_EXPORT char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth,
659
+ const ASN1_ENUMERATED *aint);
652
660
  OPENSSL_EXPORT int X509V3_EXT_add(X509V3_EXT_METHOD *ext);
653
661
  OPENSSL_EXPORT int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist);
654
662
  OPENSSL_EXPORT int X509V3_EXT_add_alias(int nid_to, int nid_from);
655
663
  OPENSSL_EXPORT void X509V3_EXT_cleanup(void);
656
664
 
657
- OPENSSL_EXPORT const X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext);
665
+ OPENSSL_EXPORT const X509V3_EXT_METHOD *X509V3_EXT_get(
666
+ const X509_EXTENSION *ext);
658
667
  OPENSSL_EXPORT const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid);
659
668
  OPENSSL_EXPORT int X509V3_add_standard_extensions(void);
660
669
  OPENSSL_EXPORT STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line);
661
- OPENSSL_EXPORT void *X509V3_EXT_d2i(X509_EXTENSION *ext);
662
- OPENSSL_EXPORT void *X509V3_get_d2i(STACK_OF(X509_EXTENSION) *x, int nid, int *crit, int *idx);
663
- OPENSSL_EXPORT int X509V3_EXT_free(int nid, void *ext_data);
664
-
665
-
666
- OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc);
667
- OPENSSL_EXPORT int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, int crit, unsigned long flags);
668
670
 
669
- OPENSSL_EXPORT void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent,
670
- int ml);
671
- OPENSSL_EXPORT int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int indent);
672
- OPENSSL_EXPORT int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent);
671
+ // X509V3_EXT_d2i decodes |ext| and returns a pointer to a newly-allocated
672
+ // structure, with type dependent on the type of the extension. It returns NULL
673
+ // if |ext| is an unsupported extension or if there was a syntax error in the
674
+ // extension. The caller should cast the return value to the expected type and
675
+ // free the structure when done.
676
+ //
677
+ // WARNING: Casting the return value to the wrong type is a potentially
678
+ // exploitable memory error, so callers must not use this function before
679
+ // checking |ext| is of a known type.
680
+ OPENSSL_EXPORT void *X509V3_EXT_d2i(const X509_EXTENSION *ext);
681
+
682
+ // X509V3_get_d2i finds and decodes the extension in |extensions| of type |nid|.
683
+ // If found, it decodes it and returns a newly-allocated structure, with type
684
+ // dependent on |nid|. If the extension is not found or on error, it returns
685
+ // NULL. The caller may distinguish these cases using the |out_critical| value.
686
+ //
687
+ // If |out_critical| is not NULL, this function sets |*out_critical| to one if
688
+ // the extension is found and critical, zero if it is found and not critical, -1
689
+ // if it is not found, and -2 if there is an invalid duplicate extension. Note
690
+ // this function may set |*out_critical| to one or zero and still return NULL if
691
+ // the extension is found but has a syntax error.
692
+ //
693
+ // If |out_idx| is not NULL, this function looks for the first occurrence of the
694
+ // extension after |*out_idx|. It then sets |*out_idx| to the index of the
695
+ // extension, or -1 if not found. If |out_idx| is non-NULL, duplicate extensions
696
+ // are not treated as an error. Callers, however, should not rely on this
697
+ // behavior as it may be removed in the future. Duplicate extensions are
698
+ // forbidden in RFC 5280.
699
+ //
700
+ // WARNING: This function is difficult to use correctly. Callers should pass a
701
+ // non-NULL |out_critical| and check both the return value and |*out_critical|
702
+ // to handle errors. If the return value is NULL and |*out_critical| is not -1,
703
+ // there was an error. Otherwise, the function succeeded and but may return NULL
704
+ // for a missing extension. Callers should pass NULL to |out_idx| so that
705
+ // duplicate extensions are handled correctly.
706
+ //
707
+ // Additionally, casting the return value to the wrong type is a potentially
708
+ // exploitable memory error, so callers must ensure the cast and |nid| match.
709
+ OPENSSL_EXPORT void *X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *extensions,
710
+ int nid, int *out_critical, int *out_idx);
711
+
712
+ // X509V3_EXT_free casts |ext_data| into the type that corresponds to |nid| and
713
+ // releases memory associated with it. It returns one on success and zero if
714
+ // |nid| is not a known extension.
715
+ //
716
+ // WARNING: Casting |ext_data| to the wrong type is a potentially exploitable
717
+ // memory error, so callers must ensure |ext_data|'s type matches |nid|.
718
+ //
719
+ // TODO(davidben): OpenSSL upstream no longer exposes this function. Remove it?
720
+ OPENSSL_EXPORT int X509V3_EXT_free(int nid, void *ext_data);
673
721
 
674
- OPENSSL_EXPORT int X509V3_extensions_print(BIO *out, const char *title, STACK_OF(X509_EXTENSION) *exts, unsigned long flag, int indent);
722
+ // X509V3_EXT_i2d casts |ext_struc| into the type that corresponds to
723
+ // |ext_nid|, serializes it, and returns a newly-allocated |X509_EXTENSION|
724
+ // object containing the serialization, or NULL on error. The |X509_EXTENSION|
725
+ // has OID |ext_nid| and is critical if |crit| is one.
726
+ //
727
+ // WARNING: Casting |ext_struc| to the wrong type is a potentially exploitable
728
+ // memory error, so callers must ensure |ext_struct|'s type matches |ext_nid|.
729
+ OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit,
730
+ void *ext_struc);
731
+
732
+ // The following constants control the behavior of |X509V3_add1_i2d| and related
733
+ // functions.
734
+
735
+ // X509V3_ADD_OP_MASK can be ANDed with the flags to determine how duplicate
736
+ // extensions are processed.
737
+ #define X509V3_ADD_OP_MASK 0xfL
738
+
739
+ // X509V3_ADD_DEFAULT causes the function to fail if the extension was already
740
+ // present.
741
+ #define X509V3_ADD_DEFAULT 0L
742
+
743
+ // X509V3_ADD_APPEND causes the function to unconditionally appended the new
744
+ // extension to to the extensions list, even if there is a duplicate.
745
+ #define X509V3_ADD_APPEND 1L
746
+
747
+ // X509V3_ADD_REPLACE causes the function to replace the existing extension, or
748
+ // append if it is not present.
749
+ #define X509V3_ADD_REPLACE 2L
750
+
751
+ // X509V3_ADD_REPLACE causes the function to replace the existing extension and
752
+ // fail if it is not present.
753
+ #define X509V3_ADD_REPLACE_EXISTING 3L
754
+
755
+ // X509V3_ADD_KEEP_EXISTING causes the function to succeed without replacing the
756
+ // extension if already present.
757
+ #define X509V3_ADD_KEEP_EXISTING 4L
758
+
759
+ // X509V3_ADD_DELETE causes the function to remove the matching extension. No
760
+ // new extension is added. If there is no matching extension, the function
761
+ // fails. The |value| parameter is ignored in this mode.
762
+ #define X509V3_ADD_DELETE 5L
763
+
764
+ // X509V3_ADD_SILENT may be ORed into one of the values above to indicate the
765
+ // function should not add to the error queue on duplicate or missing extension.
766
+ // The function will continue to return zero in those cases, and it will
767
+ // continue to return -1 and add to the error queue on other errors.
768
+ #define X509V3_ADD_SILENT 0x10
769
+
770
+ // X509V3_add1_i2d casts |value| to the type that corresponds to |nid|,
771
+ // serializes it, and appends it to the extension list in |*x|. If |*x| is NULL,
772
+ // it will set |*x| to a newly-allocated |STACK_OF(X509_EXTENSION)| as needed.
773
+ // The |crit| parameter determines whether the new extension is critical.
774
+ // |flags| may be some combination of the |X509V3_ADD_*| constants to control
775
+ // the function's behavior on duplicate extension.
776
+ //
777
+ // This function returns one on success, zero if the operation failed due to a
778
+ // missing or duplicate extension, and -1 on other errors.
779
+ //
780
+ // WARNING: Casting |value| to the wrong type is a potentially exploitable
781
+ // memory error, so callers must ensure |value|'s type matches |nid|.
782
+ OPENSSL_EXPORT int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid,
783
+ void *value, int crit, unsigned long flags);
784
+
785
+ #define X509V3_EXT_UNKNOWN_MASK (0xfL << 16)
786
+
787
+ // X509V3_EXT_DEFAULT causes unknown extensions or syntax errors to return
788
+ // failure.
789
+ #define X509V3_EXT_DEFAULT 0
790
+ // X509V3_EXT_ERROR_UNKNOWN causes unknown extensions or syntax errors to print
791
+ // as "<Not Supported>" or "<Parse Error>", respectively.
792
+ #define X509V3_EXT_ERROR_UNKNOWN (1L << 16)
793
+ // X509V3_EXT_PARSE_UNKNOWN is deprecated and behaves like
794
+ // |X509V3_EXT_DUMP_UNKNOWN|.
795
+ #define X509V3_EXT_PARSE_UNKNOWN (2L << 16)
796
+ // X509V3_EXT_DUMP_UNKNOWN causes unknown extensions to be displayed as a
797
+ // hexdump.
798
+ #define X509V3_EXT_DUMP_UNKNOWN (3L << 16)
799
+
800
+ OPENSSL_EXPORT void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val,
801
+ int indent, int ml);
802
+ OPENSSL_EXPORT int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext,
803
+ unsigned long flag, int indent);
804
+ OPENSSL_EXPORT int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag,
805
+ int indent);
806
+
807
+ // X509V3_extensions_print prints |title|, followed by a human-readable
808
+ // representation of |exts| to |out|. It returns one on success and zero on
809
+ // error. The output is indented by |indent| spaces. |flag| is one of the
810
+ // |X509V3_EXT_*| constants and controls printing of unknown extensions and
811
+ // syntax errors.
812
+ OPENSSL_EXPORT int X509V3_extensions_print(BIO *out, const char *title,
813
+ const STACK_OF(X509_EXTENSION) *exts,
814
+ unsigned long flag, int indent);
675
815
 
676
816
  OPENSSL_EXPORT int X509_check_ca(X509 *x);
677
817
  OPENSSL_EXPORT int X509_check_purpose(X509 *x, int id, int ca);
@@ -684,68 +824,111 @@ OPENSSL_EXPORT uint32_t X509_get_extension_flags(X509 *x);
684
824
  OPENSSL_EXPORT uint32_t X509_get_key_usage(X509 *x);
685
825
  OPENSSL_EXPORT uint32_t X509_get_extended_key_usage(X509 *x);
686
826
 
827
+ // X509_get0_subject_key_id returns |x509|'s subject key identifier, if present.
828
+ // (See RFC 5280, section 4.2.1.2.) It returns NULL if the extension is not
829
+ // present or if some extension in |x509| was invalid.
830
+ //
831
+ // Note that decoding an |X509| object will not check for invalid extensions. To
832
+ // detect the error case, call |X509_get_extensions_flags| and check the
833
+ // |EXFLAG_INVALID| bit.
834
+ OPENSSL_EXPORT const ASN1_OCTET_STRING *X509_get0_subject_key_id(X509 *x509);
835
+
836
+ // X509_get0_authority_key_id returns keyIdentifier of |x509|'s authority key
837
+ // identifier, if the extension and field are present. (See RFC 5280,
838
+ // section 4.2.1.1.) It returns NULL if the extension is not present, if it is
839
+ // present but lacks a keyIdentifier field, or if some extension in |x509| was
840
+ // invalid.
841
+ //
842
+ // Note that decoding an |X509| object will not check for invalid extensions. To
843
+ // detect the error case, call |X509_get_extensions_flags| and check the
844
+ // |EXFLAG_INVALID| bit.
845
+ OPENSSL_EXPORT const ASN1_OCTET_STRING *X509_get0_authority_key_id(X509 *x509);
846
+
847
+ // X509_get0_authority_issuer returns the authorityCertIssuer of |x509|'s
848
+ // authority key identifier, if the extension and field are present. (See
849
+ // RFC 5280, section 4.2.1.1.) It returns NULL if the extension is not present,
850
+ // if it is present but lacks a authorityCertIssuer field, or if some extension
851
+ // in |x509| was invalid.
852
+ //
853
+ // Note that decoding an |X509| object will not check for invalid extensions. To
854
+ // detect the error case, call |X509_get_extensions_flags| and check the
855
+ // |EXFLAG_INVALID| bit.
856
+ OPENSSL_EXPORT const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x509);
857
+
858
+ // X509_get0_authority_serial returns the authorityCertSerialNumber of |x509|'s
859
+ // authority key identifier, if the extension and field are present. (See
860
+ // RFC 5280, section 4.2.1.1.) It returns NULL if the extension is not present,
861
+ // if it is present but lacks a authorityCertSerialNumber field, or if some
862
+ // extension in |x509| was invalid.
863
+ //
864
+ // Note that decoding an |X509| object will not check for invalid extensions. To
865
+ // detect the error case, call |X509_get_extensions_flags| and check the
866
+ // |EXFLAG_INVALID| bit.
867
+ OPENSSL_EXPORT const ASN1_INTEGER *X509_get0_authority_serial(X509 *x509);
868
+
687
869
  OPENSSL_EXPORT int X509_PURPOSE_get_count(void);
688
- OPENSSL_EXPORT X509_PURPOSE * X509_PURPOSE_get0(int idx);
870
+ OPENSSL_EXPORT X509_PURPOSE *X509_PURPOSE_get0(int idx);
689
871
  OPENSSL_EXPORT int X509_PURPOSE_get_by_sname(char *sname);
690
872
  OPENSSL_EXPORT int X509_PURPOSE_get_by_id(int id);
691
873
  OPENSSL_EXPORT int X509_PURPOSE_add(int id, int trust, int flags,
692
- int (*ck)(const X509_PURPOSE *, const X509 *, int),
693
- char *name, char *sname, void *arg);
694
- OPENSSL_EXPORT char *X509_PURPOSE_get0_name(X509_PURPOSE *xp);
695
- OPENSSL_EXPORT char *X509_PURPOSE_get0_sname(X509_PURPOSE *xp);
696
- OPENSSL_EXPORT int X509_PURPOSE_get_trust(X509_PURPOSE *xp);
874
+ int (*ck)(const X509_PURPOSE *,
875
+ const X509 *, int),
876
+ char *name, char *sname, void *arg);
877
+ OPENSSL_EXPORT char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp);
878
+ OPENSSL_EXPORT char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp);
879
+ OPENSSL_EXPORT int X509_PURPOSE_get_trust(const X509_PURPOSE *xp);
697
880
  OPENSSL_EXPORT void X509_PURPOSE_cleanup(void);
698
- OPENSSL_EXPORT int X509_PURPOSE_get_id(X509_PURPOSE *);
881
+ OPENSSL_EXPORT int X509_PURPOSE_get_id(const X509_PURPOSE *);
699
882
 
700
883
  OPENSSL_EXPORT STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x);
701
884
  OPENSSL_EXPORT STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x);
702
885
  OPENSSL_EXPORT void X509_email_free(STACK_OF(OPENSSL_STRING) *sk);
703
886
  OPENSSL_EXPORT STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x);
704
- /* Flags for X509_check_* functions */
887
+ // Flags for X509_check_* functions
705
888
 
706
- /* Deprecated: this flag does nothing */
707
- #define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0
708
- /* Disable wildcard matching for dnsName fields and common name. */
709
- #define X509_CHECK_FLAG_NO_WILDCARDS 0x2
710
- /* Wildcards must not match a partial label. */
889
+ // Deprecated: this flag does nothing
890
+ #define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0
891
+ // Disable wildcard matching for dnsName fields and common name.
892
+ #define X509_CHECK_FLAG_NO_WILDCARDS 0x2
893
+ // Wildcards must not match a partial label.
711
894
  #define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4
712
- /* Allow (non-partial) wildcards to match multiple labels. */
895
+ // Allow (non-partial) wildcards to match multiple labels.
713
896
  #define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8
714
- /* Constraint verifier subdomain patterns to match a single labels. */
897
+ // Constraint verifier subdomain patterns to match a single labels.
715
898
  #define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10
716
- /* Skip the subject common name fallback if subjectAltNames is missing. */
899
+ // Skip the subject common name fallback if subjectAltNames is missing.
717
900
  #define X509_CHECK_FLAG_NEVER_CHECK_SUBJECT 0x20
718
- /*
719
- * Match reference identifiers starting with "." to any sub-domain.
720
- * This is a non-public flag, turned on implicitly when the subject
721
- * reference identity is a DNS name.
722
- */
901
+ //
902
+ // Match reference identifiers starting with "." to any sub-domain.
903
+ // This is a non-public flag, turned on implicitly when the subject
904
+ // reference identity is a DNS name.
723
905
  #define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000
724
906
 
725
907
  OPENSSL_EXPORT int X509_check_host(X509 *x, const char *chk, size_t chklen,
726
- unsigned int flags, char **peername);
908
+ unsigned int flags, char **peername);
727
909
  OPENSSL_EXPORT int X509_check_email(X509 *x, const char *chk, size_t chklen,
728
- unsigned int flags);
729
- OPENSSL_EXPORT int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen,
730
- unsigned int flags);
731
- OPENSSL_EXPORT int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags);
910
+ unsigned int flags);
911
+ OPENSSL_EXPORT int X509_check_ip(X509 *x, const unsigned char *chk,
912
+ size_t chklen, unsigned int flags);
913
+ OPENSSL_EXPORT int X509_check_ip_asc(X509 *x, const char *ipasc,
914
+ unsigned int flags);
732
915
 
733
916
  OPENSSL_EXPORT ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc);
734
917
  OPENSSL_EXPORT ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc);
735
- OPENSSL_EXPORT int a2i_ipadd(unsigned char *ipout, const char *ipasc);
736
- OPENSSL_EXPORT int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE)*dn_sk,
737
- unsigned long chtype);
918
+ OPENSSL_EXPORT int X509V3_NAME_from_section(X509_NAME *nm,
919
+ STACK_OF(CONF_VALUE) *dn_sk,
920
+ unsigned long chtype);
738
921
 
739
- OPENSSL_EXPORT void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent);
922
+ OPENSSL_EXPORT void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node,
923
+ int indent);
740
924
  DEFINE_STACK_OF(X509_POLICY_NODE)
741
925
 
742
- /* BEGIN ERROR CODES */
743
- /* The following lines are auto generated by the script mkerr.pl. Any changes
744
- * made after this point may be overwritten when the script is next run.
745
- */
926
+ // BEGIN ERROR CODES
927
+ // The following lines are auto generated by the script mkerr.pl. Any changes
928
+ // made after this point may be overwritten when the script is next run.
746
929
 
747
930
 
748
- #ifdef __cplusplus
931
+ #ifdef __cplusplus
749
932
  }
750
933
 
751
934
  extern "C++" {
@@ -755,13 +938,18 @@ BSSL_NAMESPACE_BEGIN
755
938
  BORINGSSL_MAKE_DELETER(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION_free)
756
939
  BORINGSSL_MAKE_DELETER(AUTHORITY_KEYID, AUTHORITY_KEYID_free)
757
940
  BORINGSSL_MAKE_DELETER(BASIC_CONSTRAINTS, BASIC_CONSTRAINTS_free)
941
+ // TODO(davidben): Move this to conf.h and rename to CONF_VALUE_free.
942
+ BORINGSSL_MAKE_DELETER(CONF_VALUE, X509V3_conf_free)
758
943
  BORINGSSL_MAKE_DELETER(DIST_POINT, DIST_POINT_free)
759
944
  BORINGSSL_MAKE_DELETER(GENERAL_NAME, GENERAL_NAME_free)
945
+ BORINGSSL_MAKE_DELETER(GENERAL_SUBTREE, GENERAL_SUBTREE_free)
946
+ BORINGSSL_MAKE_DELETER(NAME_CONSTRAINTS, NAME_CONSTRAINTS_free)
947
+ BORINGSSL_MAKE_DELETER(POLICY_MAPPING, POLICY_MAPPING_free)
760
948
  BORINGSSL_MAKE_DELETER(POLICYINFO, POLICYINFO_free)
761
949
 
762
950
  BSSL_NAMESPACE_END
763
951
 
764
- } /* extern C++ */
952
+ } // extern C++
765
953
  #endif
766
954
 
767
955
  #define X509V3_R_BAD_IP_ADDRESS 100
@@ -827,5 +1015,6 @@ BSSL_NAMESPACE_END
827
1015
  #define X509V3_R_UNSUPPORTED_OPTION 160
828
1016
  #define X509V3_R_UNSUPPORTED_TYPE 161
829
1017
  #define X509V3_R_USER_TOO_LONG 162
1018
+ #define X509V3_R_INVALID_VALUE 163
830
1019
 
831
1020
  #endif