grpc 1.32.0 → 1.52.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 (2668) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +1741 -3302
  3. data/etc/roots.pem +592 -899
  4. data/include/grpc/byte_buffer.h +76 -1
  5. data/include/grpc/byte_buffer_reader.h +19 -1
  6. data/include/grpc/compression.h +3 -3
  7. data/include/grpc/event_engine/README.md +38 -0
  8. data/include/grpc/event_engine/endpoint_config.h +49 -0
  9. data/include/grpc/event_engine/event_engine.h +467 -0
  10. data/include/grpc/event_engine/internal/memory_allocator_impl.h +68 -0
  11. data/include/grpc/event_engine/internal/slice_cast.h +67 -0
  12. data/include/grpc/event_engine/memory_allocator.h +211 -0
  13. data/include/grpc/event_engine/memory_request.h +57 -0
  14. data/include/grpc/event_engine/port.h +39 -0
  15. data/include/grpc/event_engine/slice.h +306 -0
  16. data/include/grpc/event_engine/slice_buffer.h +147 -0
  17. data/include/grpc/fork.h +25 -1
  18. data/include/grpc/grpc.h +93 -38
  19. data/include/grpc/grpc_posix.h +22 -18
  20. data/include/grpc/grpc_security.h +536 -302
  21. data/include/grpc/grpc_security_constants.h +17 -14
  22. data/include/grpc/impl/codegen/atm.h +4 -70
  23. data/include/grpc/impl/codegen/atm_gcc_atomic.h +4 -66
  24. data/include/grpc/impl/codegen/atm_gcc_sync.h +4 -60
  25. data/include/grpc/impl/codegen/atm_windows.h +4 -103
  26. data/include/grpc/impl/codegen/byte_buffer.h +4 -76
  27. data/include/grpc/impl/codegen/byte_buffer_reader.h +4 -17
  28. data/include/grpc/impl/codegen/compression_types.h +5 -83
  29. data/include/grpc/impl/codegen/connectivity_state.h +5 -19
  30. data/include/grpc/impl/codegen/fork.h +4 -23
  31. data/include/grpc/impl/codegen/gpr_types.h +5 -34
  32. data/include/grpc/impl/codegen/grpc_types.h +5 -762
  33. data/include/grpc/impl/codegen/log.h +4 -87
  34. data/include/grpc/impl/codegen/port_platform.h +3 -669
  35. data/include/grpc/impl/codegen/propagation_bits.h +4 -27
  36. data/include/grpc/impl/codegen/slice.h +4 -102
  37. data/include/grpc/impl/codegen/status.h +4 -129
  38. data/include/grpc/impl/codegen/sync.h +4 -40
  39. data/include/grpc/impl/codegen/sync_abseil.h +4 -11
  40. data/include/grpc/impl/codegen/sync_custom.h +4 -13
  41. data/include/grpc/impl/codegen/sync_generic.h +4 -23
  42. data/include/grpc/impl/codegen/sync_posix.h +4 -27
  43. data/include/grpc/impl/codegen/sync_windows.h +4 -11
  44. data/include/grpc/impl/compression_types.h +109 -0
  45. data/include/grpc/impl/connectivity_state.h +47 -0
  46. data/include/grpc/impl/grpc_types.h +824 -0
  47. data/include/grpc/impl/propagation_bits.h +54 -0
  48. data/include/grpc/impl/slice_type.h +112 -0
  49. data/include/grpc/load_reporting.h +1 -1
  50. data/include/grpc/module.modulemap +19 -15
  51. data/include/grpc/slice.h +1 -12
  52. data/include/grpc/slice_buffer.h +3 -3
  53. data/include/grpc/status.h +131 -1
  54. data/include/grpc/support/atm.h +70 -1
  55. data/include/grpc/support/atm_gcc_atomic.h +59 -1
  56. data/include/grpc/support/atm_gcc_sync.h +58 -1
  57. data/include/grpc/support/atm_windows.h +105 -1
  58. data/include/grpc/support/log.h +87 -1
  59. data/include/grpc/support/log_windows.h +1 -1
  60. data/include/grpc/support/port_platform.h +767 -1
  61. data/include/grpc/support/string_util.h +1 -1
  62. data/include/grpc/support/sync.h +38 -5
  63. data/include/grpc/support/sync_abseil.h +11 -1
  64. data/include/grpc/support/sync_custom.h +13 -1
  65. data/include/grpc/support/sync_generic.h +24 -1
  66. data/include/grpc/support/sync_posix.h +27 -1
  67. data/include/grpc/support/sync_windows.h +15 -1
  68. data/include/grpc/support/time.h +32 -9
  69. data/src/core/ext/filters/census/grpc_context.cc +20 -17
  70. data/src/core/ext/filters/channel_idle/channel_idle_filter.cc +315 -0
  71. data/src/core/ext/filters/channel_idle/channel_idle_filter.h +142 -0
  72. data/src/core/ext/filters/channel_idle/idle_filter_state.cc +96 -0
  73. data/src/core/ext/filters/channel_idle/idle_filter_state.h +68 -0
  74. data/src/core/ext/filters/client_channel/backend_metric.cc +36 -34
  75. data/src/core/ext/filters/client_channel/backend_metric.h +19 -8
  76. data/src/core/ext/filters/client_channel/backup_poller.cc +49 -44
  77. data/src/core/ext/filters/client_channel/backup_poller.h +23 -24
  78. data/src/core/ext/filters/client_channel/channel_connectivity.cc +205 -204
  79. data/src/core/ext/filters/client_channel/client_channel.cc +2262 -3309
  80. data/src/core/ext/filters/client_channel/client_channel.h +605 -60
  81. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +21 -24
  82. data/src/core/ext/filters/client_channel/client_channel_channelz.h +32 -22
  83. data/src/core/ext/filters/client_channel/client_channel_factory.cc +19 -42
  84. data/src/core/ext/filters/client_channel/client_channel_factory.h +25 -26
  85. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +33 -61
  86. data/src/core/ext/filters/client_channel/client_channel_service_config.cc +153 -0
  87. data/src/core/ext/filters/client_channel/client_channel_service_config.h +111 -0
  88. data/src/core/ext/filters/client_channel/config_selector.cc +2 -4
  89. data/src/core/ext/filters/client_channel/config_selector.h +81 -23
  90. data/src/core/ext/filters/client_channel/connector.h +32 -27
  91. data/src/core/ext/filters/client_channel/dynamic_filters.cc +175 -0
  92. data/src/core/ext/filters/client_channel/dynamic_filters.h +108 -0
  93. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +27 -163
  94. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +37 -42
  95. data/src/core/ext/filters/client_channel/health/health_check_client.cc +140 -578
  96. data/src/core/ext/filters/client_channel/health/health_check_client.h +26 -158
  97. data/src/core/ext/filters/client_channel/http_proxy.cc +152 -170
  98. data/src/core/ext/filters/client_channel/http_proxy.h +43 -19
  99. data/src/core/ext/filters/client_channel/lb_call_state_internal.h +39 -0
  100. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +56 -39
  101. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +13 -9
  102. data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +49 -0
  103. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +45 -19
  104. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +16 -11
  105. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +64 -143
  106. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +38 -21
  107. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +732 -590
  108. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +27 -31
  109. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +16 -4
  110. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +8 -6
  111. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +19 -20
  112. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +29 -23
  113. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +47 -39
  114. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +28 -27
  115. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.cc +415 -0
  116. data/src/core/ext/filters/client_channel/lb_policy/oob_backend_metric.h +57 -0
  117. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.cc +1129 -0
  118. data/src/core/ext/filters/client_channel/lb_policy/outlier_detection/outlier_detection.h +94 -0
  119. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +249 -230
  120. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +520 -484
  121. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +890 -0
  122. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +47 -0
  123. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2526 -0
  124. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +285 -259
  125. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +181 -174
  126. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +297 -262
  127. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +558 -213
  128. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.cc +42 -0
  129. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_attributes.h +64 -0
  130. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +29 -0
  131. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +794 -0
  132. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +699 -0
  133. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1224 -0
  134. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +651 -0
  135. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.h +60 -0
  136. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_wrr_locality.cc +364 -0
  137. data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +31 -67
  138. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +29 -27
  139. data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +148 -0
  140. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +691 -361
  141. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +64 -78
  142. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +57 -51
  143. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +130 -146
  144. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +715 -314
  145. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +102 -63
  146. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_posix.cc +18 -18
  147. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +22 -21
  148. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +2 -0
  149. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +20 -20
  150. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +129 -250
  151. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +75 -90
  152. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +26 -9
  153. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +471 -0
  154. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +269 -0
  155. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +121 -0
  156. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +87 -85
  157. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +1004 -407
  158. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +30 -0
  159. data/src/core/ext/filters/client_channel/retry_filter.cc +2661 -0
  160. data/src/core/ext/filters/client_channel/retry_filter.h +31 -0
  161. data/src/core/ext/filters/client_channel/retry_service_config.cc +282 -0
  162. data/src/core/ext/filters/client_channel/retry_service_config.h +105 -0
  163. data/src/core/ext/filters/client_channel/retry_throttle.cc +42 -94
  164. data/src/core/ext/filters/client_channel/retry_throttle.h +47 -32
  165. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +78 -46
  166. data/src/core/ext/filters/client_channel/subchannel.cc +443 -653
  167. data/src/core/ext/filters/client_channel/subchannel.h +191 -218
  168. data/src/core/ext/filters/client_channel/subchannel_interface_internal.h +38 -0
  169. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +28 -59
  170. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +57 -48
  171. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +470 -0
  172. data/src/core/ext/filters/client_channel/subchannel_stream_client.h +222 -0
  173. data/src/core/ext/filters/deadline/deadline_filter.cc +165 -133
  174. data/src/core/ext/filters/deadline/deadline_filter.h +18 -15
  175. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +280 -0
  176. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +71 -0
  177. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.cc +118 -0
  178. data/src/core/ext/filters/fault_injection/fault_injection_service_config_parser.h +112 -0
  179. data/src/core/ext/filters/http/client/http_client_filter.cc +126 -564
  180. data/src/core/ext/filters/http/client/http_client_filter.h +52 -22
  181. data/src/core/ext/filters/http/client_authority_filter.cc +70 -139
  182. data/src/core/ext/filters/http/client_authority_filter.h +46 -24
  183. data/src/core/ext/filters/http/http_filters_plugin.cc +65 -89
  184. data/src/core/ext/filters/http/message_compress/compression_filter.cc +315 -0
  185. data/src/core/ext/filters/http/message_compress/compression_filter.h +132 -0
  186. data/src/core/ext/filters/http/server/http_server_filter.cc +121 -488
  187. data/src/core/ext/filters/http/server/http_server_filter.h +55 -21
  188. data/src/core/ext/filters/message_size/message_size_filter.cc +162 -188
  189. data/src/core/ext/filters/message_size/message_size_filter.h +42 -17
  190. data/src/core/ext/filters/rbac/rbac_filter.cc +174 -0
  191. data/src/core/ext/filters/rbac/rbac_filter.h +84 -0
  192. data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +819 -0
  193. data/src/core/ext/filters/rbac/rbac_service_config_parser.h +86 -0
  194. data/src/core/ext/filters/server_config_selector/server_config_selector.h +83 -0
  195. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +159 -0
  196. data/src/core/ext/filters/server_config_selector/server_config_selector_filter.h +33 -0
  197. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +229 -0
  198. data/src/core/ext/filters/stateful_session/stateful_session_filter.h +66 -0
  199. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.cc +82 -0
  200. data/src/core/ext/filters/stateful_session/stateful_session_service_config_parser.h +93 -0
  201. data/src/core/ext/transport/chttp2/alpn/alpn.cc +20 -19
  202. data/src/core/ext/transport/chttp2/alpn/alpn.h +22 -22
  203. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +326 -144
  204. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +42 -34
  205. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +892 -280
  206. data/src/core/ext/transport/chttp2/server/chttp2_server.h +30 -21
  207. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +35 -33
  208. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +33 -31
  209. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +32 -30
  210. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +27 -27
  211. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +1021 -1350
  212. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +49 -25
  213. data/src/core/ext/transport/chttp2/transport/context_list.cc +27 -25
  214. data/src/core/ext/transport/chttp2/transport/context_list.h +32 -31
  215. data/src/core/ext/transport/chttp2/transport/decode_huff.cc +251 -0
  216. data/src/core/ext/transport/chttp2/transport/decode_huff.h +971 -0
  217. data/src/core/ext/transport/chttp2/transport/flow_control.cc +361 -285
  218. data/src/core/ext/transport/chttp2/transport/flow_control.h +259 -320
  219. data/src/core/ext/transport/chttp2/transport/frame.h +19 -23
  220. data/src/core/ext/transport/chttp2/transport/frame_data.cc +91 -239
  221. data/src/core/ext/transport/chttp2/transport/frame_data.h +41 -63
  222. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +61 -56
  223. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +28 -25
  224. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +44 -39
  225. data/src/core/ext/transport/chttp2/transport/frame_ping.h +30 -25
  226. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +48 -39
  227. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +28 -24
  228. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +60 -60
  229. data/src/core/ext/transport/chttp2/transport/frame_settings.h +33 -27
  230. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +46 -44
  231. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +26 -24
  232. data/src/core/ext/transport/chttp2/transport/hpack_constants.h +47 -0
  233. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +520 -800
  234. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +204 -94
  235. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +89 -0
  236. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +80 -0
  237. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +859 -1276
  238. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +129 -104
  239. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +246 -0
  240. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +137 -0
  241. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +21 -19
  242. data/src/core/ext/transport/chttp2/transport/http2_settings.h +36 -35
  243. data/src/core/ext/transport/chttp2/transport/http_trace.cc +19 -0
  244. data/src/core/ext/transport/chttp2/transport/http_trace.h +24 -0
  245. data/src/core/ext/transport/chttp2/transport/huffsyms.cc +20 -20
  246. data/src/core/ext/transport/chttp2/transport/huffsyms.h +19 -19
  247. data/src/core/ext/transport/chttp2/transport/internal.h +270 -341
  248. data/src/core/ext/transport/chttp2/transport/parsing.cc +416 -384
  249. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +32 -32
  250. data/src/core/ext/transport/chttp2/transport/stream_map.cc +24 -24
  251. data/src/core/ext/transport/chttp2/transport/stream_map.h +32 -31
  252. data/src/core/ext/transport/chttp2/transport/varint.cc +29 -24
  253. data/src/core/ext/transport/chttp2/transport/varint.h +70 -54
  254. data/src/core/ext/transport/chttp2/transport/writing.cc +235 -250
  255. data/src/core/ext/transport/inproc/inproc_plugin.cc +17 -22
  256. data/src/core/ext/transport/inproc/inproc_transport.cc +371 -413
  257. data/src/core/ext/transport/inproc/inproc_transport.h +22 -23
  258. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +117 -0
  259. data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +502 -0
  260. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +121 -0
  261. data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +569 -0
  262. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +125 -0
  263. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +516 -0
  264. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.c +352 -0
  265. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump_shared.upb.h +1768 -0
  266. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +56 -0
  267. data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +159 -0
  268. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +64 -0
  269. data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +189 -0
  270. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +46 -0
  271. data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +128 -0
  272. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +43 -0
  273. data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +106 -0
  274. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +43 -0
  275. data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +101 -0
  276. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +106 -0
  277. data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +613 -0
  278. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +48 -0
  279. data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +107 -0
  280. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +44 -1
  281. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +53 -1
  282. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +31 -5
  283. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +63 -13
  284. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +154 -108
  285. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +891 -291
  286. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +413 -0
  287. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +2251 -0
  288. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +50 -29
  289. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +250 -82
  290. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +374 -210
  291. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +2308 -620
  292. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +21 -8
  293. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +58 -20
  294. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +61 -27
  295. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +317 -91
  296. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +299 -0
  297. data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +1437 -0
  298. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +81 -48
  299. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +470 -140
  300. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +22 -8
  301. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +63 -22
  302. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +255 -143
  303. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +1431 -409
  304. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +110 -43
  305. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +611 -133
  306. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +20 -7
  307. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +52 -19
  308. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +47 -0
  309. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +107 -0
  310. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +58 -0
  311. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +159 -0
  312. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +169 -95
  313. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +986 -291
  314. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +142 -92
  315. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +866 -295
  316. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +22 -9
  317. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +72 -26
  318. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +245 -74
  319. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +1438 -215
  320. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +18 -6
  321. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +42 -12
  322. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +60 -0
  323. data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +177 -0
  324. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +23 -10
  325. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +89 -29
  326. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +56 -0
  327. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +182 -0
  328. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +48 -0
  329. data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +122 -0
  330. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +52 -37
  331. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +234 -94
  332. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +92 -39
  333. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +486 -112
  334. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +71 -54
  335. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +419 -163
  336. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +20 -7
  337. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +50 -17
  338. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +138 -57
  339. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +812 -172
  340. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +115 -67
  341. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +704 -225
  342. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +63 -0
  343. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +238 -0
  344. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +30 -12
  345. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +131 -39
  346. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +53 -0
  347. data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +140 -0
  348. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +165 -0
  349. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +748 -0
  350. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +174 -0
  351. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +757 -0
  352. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +145 -98
  353. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +736 -241
  354. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +48 -25
  355. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +304 -106
  356. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +781 -458
  357. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +4982 -1397
  358. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +39 -19
  359. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +189 -57
  360. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +241 -0
  361. data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +1191 -0
  362. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +44 -0
  363. data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +92 -0
  364. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +49 -0
  365. data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +107 -0
  366. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +28 -15
  367. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +104 -37
  368. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +52 -0
  369. data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +138 -0
  370. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +63 -0
  371. data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +254 -0
  372. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +46 -0
  373. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.h +98 -0
  374. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +47 -0
  375. data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +98 -0
  376. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +69 -0
  377. data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +221 -0
  378. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +33 -0
  379. data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +43 -0
  380. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +71 -0
  381. data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +226 -0
  382. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +54 -0
  383. data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +150 -0
  384. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +42 -0
  385. data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +89 -0
  386. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +96 -0
  387. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +395 -0
  388. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +94 -0
  389. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +445 -0
  390. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +71 -0
  391. data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +237 -0
  392. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +55 -0
  393. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +172 -0
  394. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.c +62 -0
  395. data/src/core/ext/upb-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upb.h +179 -0
  396. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +331 -172
  397. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +2090 -484
  398. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.c +46 -0
  399. data/src/core/ext/upb-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upb.h +98 -0
  400. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +52 -0
  401. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +168 -0
  402. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.c +46 -0
  403. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/wrr_locality/v3/wrr_locality.upb.h +98 -0
  404. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +10 -2
  405. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +8 -4
  406. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +116 -50
  407. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +718 -187
  408. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +43 -27
  409. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +196 -74
  410. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +137 -51
  411. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +833 -158
  412. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +62 -0
  413. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +168 -0
  414. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +16 -3
  415. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +35 -10
  416. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +214 -63
  417. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +1189 -200
  418. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +32 -19
  419. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +138 -56
  420. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +138 -0
  421. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +651 -0
  422. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +48 -0
  423. data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +116 -0
  424. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +76 -0
  425. data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +265 -0
  426. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +74 -0
  427. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +230 -0
  428. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +29 -14
  429. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +127 -45
  430. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +49 -0
  431. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +121 -0
  432. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +21 -8
  433. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +62 -22
  434. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +20 -7
  435. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +52 -19
  436. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +37 -21
  437. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +156 -55
  438. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +32 -18
  439. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +150 -51
  440. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +60 -0
  441. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +178 -0
  442. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +38 -23
  443. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +186 -68
  444. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +51 -32
  445. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +309 -110
  446. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +54 -37
  447. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +295 -106
  448. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +66 -0
  449. data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +213 -0
  450. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +10 -1
  451. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +5 -1
  452. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +42 -0
  453. data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +143 -0
  454. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +24 -10
  455. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +87 -26
  456. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +31 -16
  457. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +134 -37
  458. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.c +63 -0
  459. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_strategy.upb.h +202 -0
  460. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +26 -0
  461. data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +41 -0
  462. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +20 -7
  463. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +54 -14
  464. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +51 -0
  465. data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +131 -0
  466. data/src/core/ext/upb-generated/google/api/annotations.upb.c +23 -1
  467. data/src/core/ext/upb-generated/google/api/annotations.upb.h +25 -1
  468. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +271 -0
  469. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +1280 -0
  470. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +167 -118
  471. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +965 -338
  472. data/src/core/ext/upb-generated/google/api/http.upb.c +44 -29
  473. data/src/core/ext/upb-generated/google/api/http.upb.h +252 -100
  474. data/src/core/ext/upb-generated/google/api/httpbody.upb.c +46 -0
  475. data/src/core/ext/upb-generated/google/api/httpbody.upb.h +115 -0
  476. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +19 -6
  477. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +52 -17
  478. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +375 -283
  479. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +2467 -972
  480. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +19 -6
  481. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +50 -15
  482. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +16 -3
  483. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +35 -10
  484. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +48 -32
  485. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +213 -78
  486. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +19 -6
  487. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +50 -15
  488. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +58 -37
  489. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +356 -118
  490. data/src/core/ext/upb-generated/google/rpc/status.upb.c +22 -9
  491. data/src/core/ext/upb-generated/google/rpc/status.upb.h +66 -25
  492. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +84 -0
  493. data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +335 -0
  494. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +33 -19
  495. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +119 -44
  496. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +136 -108
  497. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +817 -316
  498. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +28 -13
  499. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +105 -33
  500. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +23 -9
  501. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +81 -25
  502. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +82 -62
  503. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +495 -186
  504. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +70 -0
  505. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +216 -0
  506. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.c +175 -0
  507. data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls_config.upb.h +792 -0
  508. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +76 -14
  509. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +229 -42
  510. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +55 -0
  511. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +112 -0
  512. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +22 -1
  513. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +18 -1
  514. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +32 -6
  515. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +70 -15
  516. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +31 -5
  517. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +63 -13
  518. data/src/core/ext/upb-generated/validate/validate.upb.c +407 -295
  519. data/src/core/ext/upb-generated/validate/validate.upb.h +3054 -1023
  520. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +110 -0
  521. data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +290 -0
  522. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +55 -0
  523. data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +112 -0
  524. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +38 -0
  525. data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +46 -0
  526. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +105 -0
  527. data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +306 -0
  528. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +53 -0
  529. data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +103 -0
  530. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +41 -0
  531. data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +83 -0
  532. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.c +47 -0
  533. data/src/core/ext/upb-generated/xds/core/v3/cidr.upb.h +107 -0
  534. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +66 -0
  535. data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +208 -0
  536. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +56 -0
  537. data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +119 -0
  538. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +46 -0
  539. data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +107 -0
  540. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +49 -0
  541. data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +131 -0
  542. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +68 -0
  543. data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +248 -0
  544. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +49 -0
  545. data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +125 -0
  546. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +74 -0
  547. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +200 -0
  548. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.c +46 -0
  549. data/src/core/ext/upb-generated/xds/service/orca/v3/orca.upb.h +113 -0
  550. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.c +46 -0
  551. data/src/core/ext/upb-generated/xds/type/matcher/v3/cel.upb.h +98 -0
  552. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.c +62 -0
  553. data/src/core/ext/upb-generated/xds/type/matcher/v3/domain.upb.h +174 -0
  554. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.c +36 -0
  555. data/src/core/ext/upb-generated/xds/type/matcher/v3/http_inputs.upb.h +74 -0
  556. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.c +65 -0
  557. data/src/core/ext/upb-generated/xds/type/matcher/v3/ip.upb.h +191 -0
  558. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +207 -0
  559. data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +914 -0
  560. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.c +127 -0
  561. data/src/core/ext/upb-generated/xds/type/matcher/v3/range.upb.h +474 -0
  562. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +52 -0
  563. data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +151 -0
  564. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +65 -0
  565. data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +226 -0
  566. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.c +67 -0
  567. data/src/core/ext/upb-generated/xds/type/v3/cel.upb.h +214 -0
  568. data/src/core/ext/upb-generated/xds/type/v3/range.upb.c +64 -0
  569. data/src/core/ext/upb-generated/xds/type/v3/range.upb.h +208 -0
  570. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +45 -0
  571. data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +107 -0
  572. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +84 -0
  573. data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +55 -0
  574. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +127 -0
  575. data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +50 -0
  576. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +102 -0
  577. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +55 -0
  578. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.c +256 -0
  579. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump_shared.upbdefs.h +115 -0
  580. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +43 -0
  581. data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +40 -0
  582. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +56 -0
  583. data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +40 -0
  584. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +49 -0
  585. data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +35 -0
  586. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +46 -0
  587. data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +35 -0
  588. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +46 -0
  589. data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +35 -0
  590. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +142 -0
  591. data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +40 -0
  592. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +51 -0
  593. data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +35 -0
  594. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +48 -0
  595. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +30 -0
  596. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +38 -0
  597. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +35 -0
  598. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +222 -0
  599. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +105 -0
  600. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +397 -0
  601. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +120 -0
  602. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +98 -0
  603. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +45 -0
  604. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +559 -0
  605. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +155 -0
  606. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +51 -0
  607. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +35 -0
  608. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +138 -0
  609. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +35 -0
  610. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +206 -0
  611. data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +105 -0
  612. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +112 -0
  613. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +65 -0
  614. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +54 -0
  615. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +35 -0
  616. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +270 -0
  617. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +150 -0
  618. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +168 -0
  619. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +65 -0
  620. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +53 -0
  621. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +35 -0
  622. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +47 -0
  623. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +35 -0
  624. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +53 -0
  625. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +40 -0
  626. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +235 -0
  627. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +100 -0
  628. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +228 -0
  629. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +75 -0
  630. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +53 -0
  631. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +35 -0
  632. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +300 -0
  633. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +110 -0
  634. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +41 -0
  635. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +35 -0
  636. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +55 -0
  637. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
  638. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +57 -0
  639. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +35 -0
  640. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +70 -0
  641. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +35 -0
  642. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +49 -0
  643. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
  644. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +99 -0
  645. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +50 -0
  646. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +128 -0
  647. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +60 -0
  648. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +136 -0
  649. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +55 -0
  650. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +48 -0
  651. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +35 -0
  652. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +220 -0
  653. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +65 -0
  654. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +190 -0
  655. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +65 -0
  656. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +88 -0
  657. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
  658. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +71 -0
  659. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +40 -0
  660. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +69 -0
  661. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +35 -0
  662. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +125 -0
  663. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
  664. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +134 -0
  665. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +75 -0
  666. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +194 -0
  667. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +75 -0
  668. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +112 -0
  669. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +40 -0
  670. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +939 -0
  671. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +305 -0
  672. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +77 -0
  673. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +45 -0
  674. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +199 -0
  675. data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +90 -0
  676. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +54 -0
  677. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +35 -0
  678. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +57 -0
  679. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +35 -0
  680. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +57 -0
  681. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
  682. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +72 -0
  683. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +35 -0
  684. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +99 -0
  685. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +35 -0
  686. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +47 -0
  687. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.h +35 -0
  688. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +52 -0
  689. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +35 -0
  690. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +71 -0
  691. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +40 -0
  692. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +61 -0
  693. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +30 -0
  694. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +75 -0
  695. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +40 -0
  696. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +77 -0
  697. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +35 -0
  698. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +50 -0
  699. data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +35 -0
  700. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +92 -0
  701. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
  702. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +117 -0
  703. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
  704. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +80 -0
  705. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +40 -0
  706. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +78 -0
  707. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
  708. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.c +60 -0
  709. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/stateful_session/v3/stateful_session.upbdefs.h +40 -0
  710. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +562 -0
  711. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +130 -0
  712. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.c +50 -0
  713. data/src/core/ext/upbdefs-generated/envoy/extensions/http/stateful_session/cookie/v3/cookie.upbdefs.h +35 -0
  714. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +48 -0
  715. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +30 -0
  716. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +213 -0
  717. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +65 -0
  718. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +91 -0
  719. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +45 -0
  720. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +254 -0
  721. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +65 -0
  722. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +58 -0
  723. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +40 -0
  724. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +58 -0
  725. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +35 -0
  726. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +197 -0
  727. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +100 -0
  728. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +76 -0
  729. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +40 -0
  730. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +153 -0
  731. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +55 -0
  732. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +46 -0
  733. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +35 -0
  734. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +56 -0
  735. data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
  736. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +52 -0
  737. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +50 -0
  738. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +61 -0
  739. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +40 -0
  740. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +54 -0
  741. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
  742. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +52 -0
  743. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +35 -0
  744. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +51 -0
  745. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +35 -0
  746. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +71 -0
  747. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +45 -0
  748. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +65 -0
  749. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +40 -0
  750. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +58 -0
  751. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
  752. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +75 -0
  753. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +45 -0
  754. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +78 -0
  755. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +65 -0
  756. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +85 -0
  757. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +55 -0
  758. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +53 -0
  759. data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +45 -0
  760. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +36 -0
  761. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +30 -0
  762. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +94 -0
  763. data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +35 -0
  764. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +54 -0
  765. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +40 -0
  766. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +48 -0
  767. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +45 -0
  768. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.c +69 -0
  769. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_strategy.upbdefs.h +40 -0
  770. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +38 -0
  771. data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +30 -0
  772. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +44 -0
  773. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +35 -0
  774. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +57 -0
  775. data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +35 -0
  776. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +40 -0
  777. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +30 -0
  778. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +154 -0
  779. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +95 -0
  780. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +153 -0
  781. data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +100 -0
  782. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +52 -0
  783. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +45 -0
  784. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +39 -0
  785. data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +35 -0
  786. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +34 -0
  787. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +35 -0
  788. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +331 -0
  789. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +165 -0
  790. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +35 -0
  791. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +35 -0
  792. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +32 -0
  793. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +35 -0
  794. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +54 -0
  795. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +50 -0
  796. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +35 -0
  797. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +35 -0
  798. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +45 -0
  799. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +75 -0
  800. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +37 -0
  801. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +35 -0
  802. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +67 -0
  803. data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +50 -0
  804. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +99 -0
  805. data/src/core/ext/upbdefs-generated/src/proto/grpc/lookup/v1/rls_config.upbdefs.h +75 -0
  806. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +62 -0
  807. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +45 -0
  808. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +47 -0
  809. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +35 -0
  810. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +34 -0
  811. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +30 -0
  812. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +46 -0
  813. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +35 -0
  814. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +39 -0
  815. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +35 -0
  816. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +283 -0
  817. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +145 -0
  818. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +63 -0
  819. data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +45 -0
  820. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +47 -0
  821. data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +35 -0
  822. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +35 -0
  823. data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +30 -0
  824. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +64 -0
  825. data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +50 -0
  826. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +40 -0
  827. data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +35 -0
  828. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +38 -0
  829. data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +35 -0
  830. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.c +45 -0
  831. data/src/core/ext/upbdefs-generated/xds/core/v3/cidr.upbdefs.h +35 -0
  832. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +56 -0
  833. data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +40 -0
  834. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +39 -0
  835. data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +40 -0
  836. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +41 -0
  837. data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +35 -0
  838. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +45 -0
  839. data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +35 -0
  840. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +61 -0
  841. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +40 -0
  842. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +46 -0
  843. data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +35 -0
  844. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.c +43 -0
  845. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/cel.upbdefs.h +35 -0
  846. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.c +51 -0
  847. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/domain.upbdefs.h +40 -0
  848. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.c +36 -0
  849. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/http_inputs.upbdefs.h +35 -0
  850. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.c +55 -0
  851. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/ip.upbdefs.h +40 -0
  852. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +126 -0
  853. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +80 -0
  854. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.c +71 -0
  855. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/range.upbdefs.h +60 -0
  856. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +40 -0
  857. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +40 -0
  858. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +52 -0
  859. data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +40 -0
  860. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.c +60 -0
  861. data/src/core/ext/upbdefs-generated/xds/type/v3/cel.upbdefs.h +40 -0
  862. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.c +36 -0
  863. data/src/core/ext/upbdefs-generated/xds/type/v3/range.upbdefs.h +45 -0
  864. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +37 -0
  865. data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +35 -0
  866. data/src/core/ext/xds/certificate_provider_store.cc +159 -0
  867. data/src/core/ext/xds/certificate_provider_store.h +138 -0
  868. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +150 -0
  869. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +77 -0
  870. data/src/core/ext/xds/upb_utils.h +45 -0
  871. data/src/core/ext/xds/xds_api.cc +314 -2078
  872. data/src/core/ext/xds/xds_api.h +141 -308
  873. data/src/core/ext/xds/xds_bootstrap.cc +10 -345
  874. data/src/core/ext/xds/xds_bootstrap.h +43 -48
  875. data/src/core/ext/xds/xds_bootstrap_grpc.cc +361 -0
  876. data/src/core/ext/xds/xds_bootstrap_grpc.h +184 -0
  877. data/src/core/ext/xds/xds_certificate_provider.cc +416 -0
  878. data/src/core/ext/xds/xds_certificate_provider.h +183 -0
  879. data/src/core/ext/xds/xds_channel_args.h +11 -5
  880. data/src/core/ext/xds/xds_channel_stack_modifier.cc +119 -0
  881. data/src/core/ext/xds/xds_channel_stack_modifier.h +65 -0
  882. data/src/core/ext/xds/xds_client.cc +1442 -1516
  883. data/src/core/ext/xds/xds_client.h +212 -144
  884. data/src/core/ext/xds/xds_client_grpc.cc +236 -0
  885. data/src/core/ext/xds/xds_client_grpc.h +79 -0
  886. data/src/core/ext/xds/xds_client_stats.cc +103 -59
  887. data/src/core/ext/xds/xds_client_stats.h +71 -40
  888. data/src/core/ext/xds/xds_cluster.cc +707 -0
  889. data/src/core/ext/xds/xds_cluster.h +137 -0
  890. data/src/core/ext/xds/xds_cluster_specifier_plugin.cc +132 -0
  891. data/src/core/ext/xds/xds_cluster_specifier_plugin.h +97 -0
  892. data/src/core/ext/xds/xds_common_types.cc +502 -0
  893. data/src/core/ext/xds/xds_common_types.h +108 -0
  894. data/src/core/ext/xds/xds_endpoint.cc +474 -0
  895. data/src/core/ext/xds/xds_endpoint.h +139 -0
  896. data/src/core/ext/xds/xds_health_status.cc +80 -0
  897. data/src/core/ext/xds/xds_health_status.h +82 -0
  898. data/src/core/ext/xds/xds_http_fault_filter.cc +236 -0
  899. data/src/core/ext/xds/xds_http_fault_filter.h +58 -0
  900. data/src/core/ext/xds/xds_http_filters.cc +121 -0
  901. data/src/core/ext/xds/xds_http_filters.h +181 -0
  902. data/src/core/ext/xds/xds_http_rbac_filter.cc +506 -0
  903. data/src/core/ext/xds/xds_http_rbac_filter.h +58 -0
  904. data/src/core/ext/xds/xds_http_stateful_session_filter.cc +218 -0
  905. data/src/core/ext/xds/xds_http_stateful_session_filter.h +58 -0
  906. data/src/core/ext/xds/xds_lb_policy_registry.cc +239 -0
  907. data/src/core/ext/xds/xds_lb_policy_registry.h +71 -0
  908. data/src/core/ext/xds/xds_listener.cc +1130 -0
  909. data/src/core/ext/xds/xds_listener.h +226 -0
  910. data/src/core/ext/xds/xds_resource_type.h +104 -0
  911. data/src/core/ext/xds/xds_resource_type_impl.h +88 -0
  912. data/src/core/ext/xds/xds_route_config.cc +1138 -0
  913. data/src/core/ext/xds/xds_route_config.h +252 -0
  914. data/src/core/ext/xds/xds_routing.cc +264 -0
  915. data/src/core/ext/xds/xds_routing.h +106 -0
  916. data/src/core/ext/xds/xds_server_config_fetcher.cc +1363 -0
  917. data/src/core/ext/xds/xds_transport.h +86 -0
  918. data/src/core/ext/xds/xds_transport_grpc.cc +356 -0
  919. data/src/core/ext/xds/xds_transport_grpc.h +135 -0
  920. data/src/core/lib/address_utils/parse_address.cc +340 -0
  921. data/src/core/lib/address_utils/parse_address.h +86 -0
  922. data/src/core/lib/address_utils/sockaddr_utils.cc +444 -0
  923. data/src/core/lib/address_utils/sockaddr_utils.h +100 -0
  924. data/src/core/lib/avl/avl.h +476 -88
  925. data/src/core/lib/backoff/backoff.cc +26 -57
  926. data/src/core/lib/backoff/backoff.h +30 -30
  927. data/src/core/lib/channel/call_finalization.h +88 -0
  928. data/src/core/lib/channel/call_tracer.h +103 -0
  929. data/src/core/lib/channel/channel_args.cc +309 -64
  930. data/src/core/lib/channel/channel_args.h +454 -44
  931. data/src/core/lib/channel/channel_args_preconditioning.cc +43 -0
  932. data/src/core/lib/channel/channel_args_preconditioning.h +62 -0
  933. data/src/core/lib/channel/channel_fwd.h +26 -0
  934. data/src/core/lib/channel/channel_stack.cc +125 -62
  935. data/src/core/lib/channel/channel_stack.h +226 -136
  936. data/src/core/lib/channel/channel_stack_builder.cc +35 -307
  937. data/src/core/lib/channel/channel_stack_builder.h +112 -158
  938. data/src/core/lib/channel/channel_stack_builder_impl.cc +113 -0
  939. data/src/core/lib/channel/channel_stack_builder_impl.h +48 -0
  940. data/src/core/lib/channel/channel_trace.cc +36 -43
  941. data/src/core/lib/channel/channel_trace.h +27 -23
  942. data/src/core/lib/channel/channelz.cc +201 -151
  943. data/src/core/lib/channel/channelz.h +121 -81
  944. data/src/core/lib/channel/channelz_registry.cc +59 -51
  945. data/src/core/lib/channel/channelz_registry.h +31 -28
  946. data/src/core/lib/channel/connected_channel.cc +745 -81
  947. data/src/core/lib/channel/connected_channel.h +21 -23
  948. data/src/core/lib/channel/context.h +32 -18
  949. data/src/core/lib/channel/promise_based_filter.cc +2249 -0
  950. data/src/core/lib/channel/promise_based_filter.h +857 -0
  951. data/src/core/lib/channel/status_util.cc +76 -19
  952. data/src/core/lib/channel/status_util.h +45 -22
  953. data/src/core/lib/compression/compression.cc +46 -129
  954. data/src/core/lib/compression/compression_internal.cc +191 -229
  955. data/src/core/lib/compression/compression_internal.h +87 -90
  956. data/src/core/lib/compression/message_compress.cc +41 -39
  957. data/src/core/lib/compression/message_compress.h +28 -29
  958. data/src/core/lib/config/core_configuration.cc +111 -0
  959. data/src/core/lib/config/core_configuration.h +243 -0
  960. data/src/core/lib/debug/event_log.cc +88 -0
  961. data/src/core/lib/debug/event_log.h +81 -0
  962. data/src/core/lib/debug/histogram_view.cc +69 -0
  963. data/src/core/lib/debug/histogram_view.h +37 -0
  964. data/src/core/lib/debug/stats.cc +48 -152
  965. data/src/core/lib/debug/stats.h +49 -55
  966. data/src/core/lib/debug/stats_data.cc +291 -637
  967. data/src/core/lib/debug/stats_data.h +264 -527
  968. data/src/core/lib/debug/trace.cc +19 -20
  969. data/src/core/lib/debug/trace.h +34 -32
  970. data/src/core/lib/event_engine/channel_args_endpoint_config.cc +40 -0
  971. data/src/core/lib/event_engine/channel_args_endpoint_config.h +49 -0
  972. data/src/core/lib/event_engine/common_closures.h +71 -0
  973. data/src/core/lib/event_engine/default_event_engine.cc +94 -0
  974. data/src/core/lib/event_engine/default_event_engine.h +49 -0
  975. data/src/core/lib/event_engine/default_event_engine_factory.cc +48 -0
  976. data/src/core/lib/event_engine/default_event_engine_factory.h +33 -0
  977. data/src/core/lib/event_engine/executor/executor.h +38 -0
  978. data/src/core/lib/event_engine/forkable.cc +101 -0
  979. data/src/core/lib/event_engine/forkable.h +61 -0
  980. data/src/core/lib/event_engine/handle_containers.h +67 -0
  981. data/src/core/lib/event_engine/memory_allocator.cc +74 -0
  982. data/src/core/lib/event_engine/poller.h +62 -0
  983. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +614 -0
  984. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.h +129 -0
  985. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +900 -0
  986. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.h +97 -0
  987. data/src/core/lib/event_engine/posix_engine/event_poller.h +111 -0
  988. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +74 -0
  989. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.h +33 -0
  990. data/src/core/lib/event_engine/posix_engine/internal_errqueue.cc +77 -0
  991. data/src/core/lib/event_engine/posix_engine/internal_errqueue.h +179 -0
  992. data/src/core/lib/event_engine/posix_engine/lockfree_event.cc +265 -0
  993. data/src/core/lib/event_engine/posix_engine/lockfree_event.h +73 -0
  994. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1308 -0
  995. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +684 -0
  996. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +570 -0
  997. data/src/core/lib/event_engine/posix_engine/posix_engine.h +245 -0
  998. data/src/core/lib/event_engine/posix_engine/posix_engine_closure.h +80 -0
  999. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +236 -0
  1000. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +228 -0
  1001. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.cc +380 -0
  1002. data/src/core/lib/event_engine/posix_engine/posix_engine_listener_utils.h +91 -0
  1003. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +853 -0
  1004. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +316 -0
  1005. data/src/core/lib/event_engine/posix_engine/timer.cc +311 -0
  1006. data/src/core/lib/event_engine/posix_engine/timer.h +194 -0
  1007. data/src/core/lib/event_engine/posix_engine/timer_heap.cc +107 -0
  1008. data/src/core/lib/event_engine/posix_engine/timer_heap.h +56 -0
  1009. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +173 -0
  1010. data/src/core/lib/event_engine/posix_engine/timer_manager.h +114 -0
  1011. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +332 -0
  1012. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +185 -0
  1013. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.cc +127 -0
  1014. data/src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h +45 -0
  1015. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.cc +150 -0
  1016. data/src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h +45 -0
  1017. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h +76 -0
  1018. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.cc +67 -0
  1019. data/src/core/lib/event_engine/posix_engine/wakeup_fd_posix_default.h +37 -0
  1020. data/src/core/lib/event_engine/resolved_address.cc +41 -0
  1021. data/src/core/lib/event_engine/slice.cc +103 -0
  1022. data/src/core/lib/event_engine/slice_buffer.cc +50 -0
  1023. data/src/core/lib/event_engine/socket_notifier.h +55 -0
  1024. data/src/core/lib/event_engine/tcp_socket_utils.cc +373 -0
  1025. data/src/core/lib/event_engine/tcp_socket_utils.h +85 -0
  1026. data/src/core/lib/event_engine/thread_pool.cc +277 -0
  1027. data/src/core/lib/event_engine/thread_pool.h +137 -0
  1028. data/src/core/lib/event_engine/time_util.cc +30 -0
  1029. data/src/core/lib/event_engine/time_util.h +32 -0
  1030. data/src/core/lib/event_engine/trace.cc +18 -0
  1031. data/src/core/lib/event_engine/trace.h +30 -0
  1032. data/src/core/lib/event_engine/utils.cc +44 -0
  1033. data/src/core/lib/event_engine/utils.h +36 -0
  1034. data/src/core/lib/event_engine/windows/iocp.cc +156 -0
  1035. data/src/core/lib/event_engine/windows/iocp.h +69 -0
  1036. data/src/core/lib/event_engine/windows/win_socket.cc +196 -0
  1037. data/src/core/lib/event_engine/windows/win_socket.h +120 -0
  1038. data/src/core/lib/event_engine/windows/windows_engine.cc +165 -0
  1039. data/src/core/lib/event_engine/windows/windows_engine.h +124 -0
  1040. data/src/core/lib/experiments/config.cc +146 -0
  1041. data/src/core/lib/experiments/config.h +43 -0
  1042. data/src/core/lib/experiments/experiments.cc +75 -0
  1043. data/src/core/lib/experiments/experiments.h +58 -0
  1044. data/src/core/lib/gpr/alloc.cc +26 -30
  1045. data/src/core/lib/gpr/alloc.h +18 -18
  1046. data/src/core/lib/gpr/atm.cc +18 -18
  1047. data/src/core/lib/gpr/cpu_iphone.cc +34 -26
  1048. data/src/core/lib/gpr/cpu_linux.cc +28 -23
  1049. data/src/core/lib/gpr/cpu_posix.cc +24 -23
  1050. data/src/core/lib/gpr/cpu_windows.cc +20 -18
  1051. data/src/core/lib/gpr/log.cc +91 -36
  1052. data/src/core/lib/gpr/log_android.cc +25 -22
  1053. data/src/core/lib/gpr/log_linux.cc +46 -27
  1054. data/src/core/lib/gpr/log_posix.cc +41 -23
  1055. data/src/core/lib/gpr/log_windows.cc +43 -29
  1056. data/src/core/lib/gpr/spinlock.h +28 -20
  1057. data/src/core/lib/gpr/string.cc +48 -46
  1058. data/src/core/lib/gpr/string.h +62 -63
  1059. data/src/core/lib/gpr/string_posix.cc +24 -24
  1060. data/src/core/lib/gpr/string_util_windows.cc +25 -52
  1061. data/src/core/lib/gpr/string_windows.cc +24 -24
  1062. data/src/core/lib/gpr/sync.cc +31 -31
  1063. data/src/core/lib/gpr/sync_abseil.cc +29 -43
  1064. data/src/core/lib/gpr/sync_posix.cc +26 -37
  1065. data/src/core/lib/gpr/sync_windows.cc +31 -29
  1066. data/src/core/lib/gpr/time.cc +51 -45
  1067. data/src/core/lib/gpr/time_posix.cc +41 -45
  1068. data/src/core/lib/gpr/time_precise.cc +26 -23
  1069. data/src/core/lib/gpr/time_precise.h +25 -22
  1070. data/src/core/lib/gpr/time_windows.cc +38 -31
  1071. data/src/core/lib/gpr/tmpfile.h +22 -22
  1072. data/src/core/lib/gpr/tmpfile_msys.cc +21 -20
  1073. data/src/core/lib/gpr/tmpfile_posix.cc +23 -22
  1074. data/src/core/lib/gpr/tmpfile_windows.cc +28 -29
  1075. data/src/core/lib/gpr/useful.h +169 -50
  1076. data/src/core/lib/gpr/wrap_memcpy.cc +25 -24
  1077. data/src/core/lib/gprpp/atomic_utils.h +47 -0
  1078. data/src/core/lib/gprpp/bitset.h +225 -0
  1079. data/src/core/lib/gprpp/chunked_vector.h +257 -0
  1080. data/src/core/lib/gprpp/construct_destruct.h +40 -0
  1081. data/src/core/lib/gprpp/cpp_impl_of.h +49 -0
  1082. data/src/core/lib/gprpp/crash.cc +33 -0
  1083. data/src/core/lib/gprpp/crash.h +34 -0
  1084. data/src/core/lib/gprpp/debug_location.h +59 -25
  1085. data/src/core/lib/gprpp/dual_ref_counted.h +327 -0
  1086. data/src/core/lib/gprpp/env.h +53 -0
  1087. data/src/core/lib/gprpp/env_linux.cc +80 -0
  1088. data/src/core/lib/gprpp/env_posix.cc +47 -0
  1089. data/src/core/lib/gprpp/env_windows.cc +56 -0
  1090. data/src/core/lib/gprpp/examine_stack.cc +43 -0
  1091. data/src/core/lib/gprpp/examine_stack.h +45 -0
  1092. data/src/core/lib/gprpp/fork.cc +50 -60
  1093. data/src/core/lib/gprpp/fork.h +26 -34
  1094. data/src/core/lib/gprpp/global_config.h +20 -23
  1095. data/src/core/lib/gprpp/global_config_custom.h +18 -18
  1096. data/src/core/lib/gprpp/global_config_env.cc +38 -36
  1097. data/src/core/lib/gprpp/global_config_env.h +28 -26
  1098. data/src/core/lib/gprpp/global_config_generic.h +18 -22
  1099. data/src/core/lib/gprpp/host_port.cc +28 -26
  1100. data/src/core/lib/gprpp/host_port.h +29 -28
  1101. data/src/core/lib/gprpp/load_file.cc +75 -0
  1102. data/src/core/lib/gprpp/load_file.h +33 -0
  1103. data/src/core/lib/gprpp/manual_constructor.h +25 -91
  1104. data/src/core/lib/gprpp/match.h +75 -0
  1105. data/src/core/lib/gprpp/memory.h +26 -24
  1106. data/src/core/lib/gprpp/mpscq.cc +26 -26
  1107. data/src/core/lib/gprpp/mpscq.h +24 -23
  1108. data/src/core/lib/gprpp/no_destruct.h +95 -0
  1109. data/src/core/lib/gprpp/notification.h +67 -0
  1110. data/src/core/lib/gprpp/orphanable.h +27 -34
  1111. data/src/core/lib/gprpp/overload.h +59 -0
  1112. data/src/core/lib/gprpp/packed_table.h +40 -0
  1113. data/src/core/lib/gprpp/per_cpu.h +46 -0
  1114. data/src/core/lib/gprpp/ref_counted.h +142 -105
  1115. data/src/core/lib/gprpp/ref_counted_ptr.h +187 -41
  1116. data/src/core/lib/gprpp/single_set_ptr.h +87 -0
  1117. data/src/core/lib/gprpp/sorted_pack.h +98 -0
  1118. data/src/core/lib/gprpp/stat.h +36 -0
  1119. data/src/core/lib/gprpp/stat_posix.cc +55 -0
  1120. data/src/core/lib/gprpp/stat_windows.cc +50 -0
  1121. data/src/core/lib/gprpp/status_helper.cc +455 -0
  1122. data/src/core/lib/gprpp/status_helper.h +189 -0
  1123. data/src/core/lib/gprpp/strerror.cc +41 -0
  1124. data/src/core/lib/gprpp/strerror.h +29 -0
  1125. data/src/core/lib/gprpp/sync.h +129 -64
  1126. data/src/core/lib/gprpp/table.h +452 -0
  1127. data/src/core/lib/gprpp/tchar.cc +49 -0
  1128. data/src/core/lib/gprpp/tchar.h +33 -0
  1129. data/src/core/lib/gprpp/thd.h +24 -27
  1130. data/src/core/lib/gprpp/thd_posix.cc +76 -70
  1131. data/src/core/lib/gprpp/thd_windows.cc +32 -35
  1132. data/src/core/lib/gprpp/time.cc +240 -0
  1133. data/src/core/lib/gprpp/time.h +366 -0
  1134. data/src/core/lib/gprpp/time_averaged_stats.cc +60 -0
  1135. data/src/core/lib/gprpp/time_averaged_stats.h +79 -0
  1136. data/src/core/lib/gprpp/time_util.cc +81 -0
  1137. data/src/core/lib/gprpp/time_util.h +42 -0
  1138. data/src/core/lib/gprpp/unique_type_name.h +104 -0
  1139. data/src/core/lib/gprpp/validation_errors.cc +61 -0
  1140. data/src/core/lib/gprpp/validation_errors.h +127 -0
  1141. data/src/core/lib/gprpp/work_serializer.cc +247 -0
  1142. data/src/core/lib/gprpp/work_serializer.h +86 -0
  1143. data/src/core/lib/handshaker/proxy_mapper.h +53 -0
  1144. data/src/core/lib/handshaker/proxy_mapper_registry.cc +71 -0
  1145. data/src/core/lib/handshaker/proxy_mapper_registry.h +75 -0
  1146. data/src/core/lib/http/format_request.cc +81 -47
  1147. data/src/core/lib/http/format_request.h +29 -25
  1148. data/src/core/lib/http/httpcli.cc +321 -234
  1149. data/src/core/lib/http/httpcli.h +254 -109
  1150. data/src/core/lib/http/httpcli_security_connector.cc +104 -106
  1151. data/src/core/lib/http/httpcli_ssl_credentials.h +39 -0
  1152. data/src/core/lib/http/parser.cc +208 -129
  1153. data/src/core/lib/http/parser.h +53 -36
  1154. data/src/core/lib/iomgr/block_annotate.h +21 -21
  1155. data/src/core/lib/iomgr/buffer_list.cc +165 -146
  1156. data/src/core/lib/iomgr/buffer_list.h +128 -108
  1157. data/src/core/lib/iomgr/call_combiner.cc +61 -58
  1158. data/src/core/lib/iomgr/call_combiner.h +31 -34
  1159. data/src/core/lib/iomgr/cfstream_handle.cc +38 -41
  1160. data/src/core/lib/iomgr/cfstream_handle.h +23 -23
  1161. data/src/core/lib/iomgr/closure.h +110 -54
  1162. data/src/core/lib/iomgr/combiner.cc +51 -59
  1163. data/src/core/lib/iomgr/combiner.h +21 -20
  1164. data/src/core/lib/iomgr/dualstack_socket_posix.cc +22 -21
  1165. data/src/core/lib/iomgr/dynamic_annotations.h +20 -20
  1166. data/src/core/lib/iomgr/endpoint.cc +22 -26
  1167. data/src/core/lib/iomgr/endpoint.h +53 -54
  1168. data/src/core/lib/iomgr/endpoint_cfstream.cc +78 -99
  1169. data/src/core/lib/iomgr/endpoint_cfstream.h +31 -31
  1170. data/src/core/lib/iomgr/endpoint_pair.h +19 -18
  1171. data/src/core/lib/iomgr/endpoint_pair_posix.cc +39 -30
  1172. data/src/core/lib/iomgr/endpoint_pair_windows.cc +25 -25
  1173. data/src/core/lib/iomgr/error.cc +145 -752
  1174. data/src/core/lib/iomgr/error.h +119 -227
  1175. data/src/core/lib/iomgr/error_cfstream.cc +25 -24
  1176. data/src/core/lib/iomgr/error_cfstream.h +21 -21
  1177. data/src/core/lib/iomgr/ev_apple.cc +40 -36
  1178. data/src/core/lib/iomgr/ev_apple.h +18 -18
  1179. data/src/core/lib/iomgr/ev_epoll1_linux.cc +313 -297
  1180. data/src/core/lib/iomgr/ev_epoll1_linux.h +19 -19
  1181. data/src/core/lib/iomgr/ev_poll_posix.cc +359 -332
  1182. data/src/core/lib/iomgr/ev_poll_posix.h +20 -20
  1183. data/src/core/lib/iomgr/ev_posix.cc +100 -134
  1184. data/src/core/lib/iomgr/ev_posix.h +100 -94
  1185. data/src/core/lib/iomgr/ev_windows.cc +18 -18
  1186. data/src/core/lib/iomgr/exec_ctx.cc +48 -139
  1187. data/src/core/lib/iomgr/exec_ctx.h +175 -221
  1188. data/src/core/lib/iomgr/executor.cc +50 -68
  1189. data/src/core/lib/iomgr/executor.h +28 -31
  1190. data/src/core/lib/iomgr/fork_posix.cc +25 -22
  1191. data/src/core/lib/iomgr/fork_windows.cc +21 -21
  1192. data/src/core/lib/iomgr/gethostname.h +18 -18
  1193. data/src/core/lib/iomgr/gethostname_fallback.cc +17 -17
  1194. data/src/core/lib/iomgr/gethostname_host_name_max.cc +17 -17
  1195. data/src/core/lib/iomgr/gethostname_sysconf.cc +17 -17
  1196. data/src/core/lib/iomgr/grpc_if_nametoindex.h +20 -20
  1197. data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +22 -21
  1198. data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +22 -21
  1199. data/src/core/lib/iomgr/internal_errqueue.cc +44 -50
  1200. data/src/core/lib/iomgr/internal_errqueue.h +81 -86
  1201. data/src/core/lib/iomgr/iocp_windows.cc +32 -31
  1202. data/src/core/lib/iomgr/iocp_windows.h +19 -19
  1203. data/src/core/lib/iomgr/iomgr.cc +31 -24
  1204. data/src/core/lib/iomgr/iomgr.h +35 -35
  1205. data/src/core/lib/iomgr/iomgr_fwd.h +26 -0
  1206. data/src/core/lib/iomgr/iomgr_internal.cc +25 -29
  1207. data/src/core/lib/iomgr/iomgr_internal.h +31 -30
  1208. data/src/core/lib/iomgr/iomgr_posix.cc +25 -23
  1209. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +64 -33
  1210. data/src/core/lib/iomgr/iomgr_windows.cc +27 -26
  1211. data/src/core/lib/iomgr/load_file.cc +26 -29
  1212. data/src/core/lib/iomgr/load_file.h +22 -22
  1213. data/src/core/lib/iomgr/lockfree_event.cc +131 -125
  1214. data/src/core/lib/iomgr/lockfree_event.h +21 -21
  1215. data/src/core/lib/iomgr/nameser.h +84 -84
  1216. data/src/core/lib/iomgr/polling_entity.cc +26 -22
  1217. data/src/core/lib/iomgr/polling_entity.h +33 -27
  1218. data/src/core/lib/iomgr/pollset.cc +22 -22
  1219. data/src/core/lib/iomgr/pollset.h +62 -62
  1220. data/src/core/lib/iomgr/pollset_set.cc +17 -17
  1221. data/src/core/lib/iomgr/pollset_set.h +23 -25
  1222. data/src/core/lib/iomgr/pollset_set_windows.cc +19 -18
  1223. data/src/core/lib/iomgr/pollset_set_windows.h +18 -18
  1224. data/src/core/lib/iomgr/pollset_windows.cc +36 -35
  1225. data/src/core/lib/iomgr/pollset_windows.h +22 -22
  1226. data/src/core/lib/iomgr/port.h +58 -44
  1227. data/src/core/lib/iomgr/python_util.h +26 -25
  1228. data/src/core/lib/iomgr/resolve_address.cc +39 -39
  1229. data/src/core/lib/iomgr/resolve_address.h +100 -65
  1230. data/src/core/lib/iomgr/resolve_address_impl.h +59 -0
  1231. data/src/core/lib/iomgr/resolve_address_posix.cc +136 -109
  1232. data/src/core/lib/iomgr/resolve_address_posix.h +63 -0
  1233. data/src/core/lib/iomgr/resolve_address_windows.cc +133 -90
  1234. data/src/core/lib/iomgr/resolve_address_windows.h +63 -0
  1235. data/src/core/lib/iomgr/resolved_address.h +39 -0
  1236. data/src/core/lib/iomgr/sockaddr.h +24 -24
  1237. data/src/core/lib/iomgr/sockaddr_posix.h +20 -18
  1238. data/src/core/lib/iomgr/sockaddr_utils_posix.cc +64 -0
  1239. data/src/core/lib/iomgr/sockaddr_windows.h +20 -18
  1240. data/src/core/lib/iomgr/socket_factory_posix.cc +25 -24
  1241. data/src/core/lib/iomgr/socket_factory_posix.h +31 -30
  1242. data/src/core/lib/iomgr/socket_mutator.cc +39 -24
  1243. data/src/core/lib/iomgr/socket_mutator.h +54 -30
  1244. data/src/core/lib/iomgr/socket_utils.h +24 -24
  1245. data/src/core/lib/iomgr/socket_utils_common_posix.cc +108 -142
  1246. data/src/core/lib/iomgr/socket_utils_linux.cc +22 -21
  1247. data/src/core/lib/iomgr/socket_utils_posix.cc +105 -21
  1248. data/src/core/lib/iomgr/socket_utils_posix.h +198 -106
  1249. data/src/core/lib/iomgr/socket_utils_windows.cc +22 -21
  1250. data/src/core/lib/iomgr/socket_windows.cc +37 -36
  1251. data/src/core/lib/iomgr/socket_windows.h +56 -58
  1252. data/src/core/lib/iomgr/systemd_utils.cc +116 -0
  1253. data/src/core/lib/iomgr/systemd_utils.h +33 -0
  1254. data/src/core/lib/iomgr/tcp_client.cc +28 -24
  1255. data/src/core/lib/iomgr/tcp_client.h +48 -34
  1256. data/src/core/lib/iomgr/tcp_client_cfstream.cc +53 -58
  1257. data/src/core/lib/iomgr/tcp_client_posix.cc +249 -130
  1258. data/src/core/lib/iomgr/tcp_client_posix.h +55 -51
  1259. data/src/core/lib/iomgr/tcp_client_windows.cc +70 -62
  1260. data/src/core/lib/iomgr/tcp_posix.cc +685 -497
  1261. data/src/core/lib/iomgr/tcp_posix.h +46 -39
  1262. data/src/core/lib/iomgr/tcp_server.cc +36 -27
  1263. data/src/core/lib/iomgr/tcp_server.h +84 -73
  1264. data/src/core/lib/iomgr/tcp_server_posix.cc +216 -164
  1265. data/src/core/lib/iomgr/tcp_server_utils_posix.h +88 -80
  1266. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +140 -99
  1267. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +55 -52
  1268. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +23 -23
  1269. data/src/core/lib/iomgr/tcp_server_windows.cc +129 -132
  1270. data/src/core/lib/iomgr/tcp_windows.cc +136 -135
  1271. data/src/core/lib/iomgr/tcp_windows.h +32 -33
  1272. data/src/core/lib/iomgr/timer.cc +20 -19
  1273. data/src/core/lib/iomgr/timer.h +81 -72
  1274. data/src/core/lib/iomgr/timer_generic.cc +237 -257
  1275. data/src/core/lib/iomgr/timer_generic.h +20 -19
  1276. data/src/core/lib/iomgr/timer_heap.cc +27 -28
  1277. data/src/core/lib/iomgr/timer_heap.h +19 -19
  1278. data/src/core/lib/iomgr/timer_manager.cc +48 -47
  1279. data/src/core/lib/iomgr/timer_manager.h +25 -25
  1280. data/src/core/lib/iomgr/unix_sockets_posix.cc +48 -52
  1281. data/src/core/lib/iomgr/unix_sockets_posix.h +25 -24
  1282. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +32 -29
  1283. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +26 -26
  1284. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +24 -23
  1285. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +37 -35
  1286. data/src/core/lib/iomgr/wakeup_fd_pipe.h +18 -18
  1287. data/src/core/lib/iomgr/wakeup_fd_posix.cc +37 -33
  1288. data/src/core/lib/iomgr/wakeup_fd_posix.h +58 -58
  1289. data/src/core/lib/json/json.h +32 -26
  1290. data/src/core/lib/json/json_args.h +34 -0
  1291. data/src/core/lib/json/json_channel_args.h +42 -0
  1292. data/src/core/lib/json/json_object_loader.cc +217 -0
  1293. data/src/core/lib/json/json_object_loader.h +634 -0
  1294. data/src/core/lib/json/json_reader.cc +193 -118
  1295. data/src/core/lib/json/json_util.cc +106 -0
  1296. data/src/core/lib/json/json_util.h +163 -0
  1297. data/src/core/lib/json/json_writer.cc +64 -61
  1298. data/src/core/lib/load_balancing/lb_policy.cc +93 -0
  1299. data/src/core/lib/load_balancing/lb_policy.h +438 -0
  1300. data/src/core/lib/load_balancing/lb_policy_factory.h +49 -0
  1301. data/src/core/lib/load_balancing/lb_policy_registry.cc +141 -0
  1302. data/src/core/lib/load_balancing/lb_policy_registry.h +82 -0
  1303. data/src/core/lib/load_balancing/subchannel_interface.h +133 -0
  1304. data/src/core/lib/matchers/matchers.cc +331 -0
  1305. data/src/core/lib/matchers/matchers.h +162 -0
  1306. data/src/core/lib/promise/activity.cc +134 -0
  1307. data/src/core/lib/promise/activity.h +612 -0
  1308. data/src/core/lib/promise/arena_promise.h +231 -0
  1309. data/src/core/lib/promise/context.h +93 -0
  1310. data/src/core/lib/promise/detail/basic_seq.h +497 -0
  1311. data/src/core/lib/promise/detail/promise_factory.h +236 -0
  1312. data/src/core/lib/promise/detail/promise_like.h +85 -0
  1313. data/src/core/lib/promise/detail/status.h +78 -0
  1314. data/src/core/lib/promise/detail/switch.h +1455 -0
  1315. data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +56 -0
  1316. data/src/core/lib/promise/for_each.h +155 -0
  1317. data/src/core/lib/promise/intra_activity_waiter.h +49 -0
  1318. data/src/core/lib/promise/latch.h +97 -0
  1319. data/src/core/lib/promise/loop.h +138 -0
  1320. data/src/core/lib/promise/map.h +88 -0
  1321. data/src/core/lib/promise/map_pipe.h +88 -0
  1322. data/src/core/lib/promise/pipe.cc +19 -0
  1323. data/src/core/lib/promise/pipe.h +505 -0
  1324. data/src/core/lib/promise/poll.h +85 -0
  1325. data/src/core/lib/promise/promise.h +96 -0
  1326. data/src/core/lib/promise/race.h +83 -0
  1327. data/src/core/lib/promise/seq.h +107 -0
  1328. data/src/core/lib/promise/sleep.cc +90 -0
  1329. data/src/core/lib/promise/sleep.h +84 -0
  1330. data/src/core/lib/promise/try_concurrently.h +342 -0
  1331. data/src/core/lib/promise/try_seq.h +175 -0
  1332. data/src/core/lib/resolver/resolver.cc +37 -0
  1333. data/src/core/lib/resolver/resolver.h +138 -0
  1334. data/src/core/lib/resolver/resolver_factory.h +77 -0
  1335. data/src/core/lib/resolver/resolver_registry.cc +149 -0
  1336. data/src/core/lib/resolver/resolver_registry.h +123 -0
  1337. data/src/core/lib/resolver/server_address.cc +181 -0
  1338. data/src/core/lib/resolver/server_address.h +145 -0
  1339. data/src/core/lib/resource_quota/api.cc +104 -0
  1340. data/src/core/lib/resource_quota/api.h +49 -0
  1341. data/src/core/lib/resource_quota/arena.cc +138 -0
  1342. data/src/core/lib/resource_quota/arena.h +252 -0
  1343. data/src/core/lib/resource_quota/memory_quota.cc +699 -0
  1344. data/src/core/lib/resource_quota/memory_quota.h +592 -0
  1345. data/src/core/lib/resource_quota/periodic_update.cc +78 -0
  1346. data/src/core/lib/resource_quota/periodic_update.h +71 -0
  1347. data/src/core/lib/resource_quota/resource_quota.cc +33 -0
  1348. data/src/core/lib/resource_quota/resource_quota.h +74 -0
  1349. data/src/core/lib/resource_quota/thread_quota.cc +45 -0
  1350. data/src/core/lib/resource_quota/thread_quota.h +61 -0
  1351. data/src/core/lib/resource_quota/trace.cc +19 -0
  1352. data/src/core/lib/resource_quota/trace.h +24 -0
  1353. data/src/core/lib/security/authorization/authorization_engine.h +13 -53
  1354. data/src/core/lib/security/authorization/authorization_policy_provider.h +47 -0
  1355. data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +49 -0
  1356. data/src/core/lib/security/authorization/evaluate_args.cc +152 -84
  1357. data/src/core/lib/security/authorization/evaluate_args.h +55 -19
  1358. data/src/core/lib/security/authorization/grpc_authorization_engine.cc +64 -0
  1359. data/src/core/lib/security/authorization/grpc_authorization_engine.h +69 -0
  1360. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +122 -0
  1361. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +61 -0
  1362. data/src/core/lib/security/authorization/matchers.cc +241 -0
  1363. data/src/core/lib/security/authorization/matchers.h +218 -0
  1364. data/src/core/lib/security/authorization/rbac_policy.cc +445 -0
  1365. data/src/core/lib/security/authorization/rbac_policy.h +178 -0
  1366. data/src/core/lib/security/certificate_provider/certificate_provider_factory.h +66 -0
  1367. data/src/core/lib/security/certificate_provider/certificate_provider_registry.cc +60 -0
  1368. data/src/core/lib/security/certificate_provider/certificate_provider_registry.h +70 -0
  1369. data/src/core/lib/security/context/security_context.cc +45 -37
  1370. data/src/core/lib/security/context/security_context.h +65 -34
  1371. data/src/core/lib/security/credentials/alts/alts_credentials.cc +36 -27
  1372. data/src/core/lib/security/credentials/alts/alts_credentials.h +68 -54
  1373. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +20 -20
  1374. data/src/core/lib/security/credentials/alts/check_gcp_environment.h +41 -41
  1375. data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +19 -19
  1376. data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +20 -19
  1377. data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +20 -19
  1378. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_client_options.cc +20 -22
  1379. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.cc +18 -18
  1380. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_options.h +36 -37
  1381. data/src/core/lib/security/credentials/alts/grpc_alts_credentials_server_options.cc +19 -22
  1382. data/src/core/lib/security/credentials/call_creds_util.cc +97 -0
  1383. data/src/core/lib/security/credentials/call_creds_util.h +43 -0
  1384. data/src/core/lib/security/credentials/channel_creds_registry.h +103 -0
  1385. data/src/core/lib/security/credentials/channel_creds_registry_init.cc +80 -0
  1386. data/src/core/lib/security/credentials/composite/composite_credentials.cc +56 -114
  1387. data/src/core/lib/security/credentials/composite/composite_credentials.h +62 -37
  1388. data/src/core/lib/security/credentials/credentials.cc +37 -39
  1389. data/src/core/lib/security/credentials/credentials.h +148 -134
  1390. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +546 -0
  1391. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +100 -0
  1392. data/src/core/lib/security/credentials/external/aws_request_signer.cc +224 -0
  1393. data/src/core/lib/security/credentials/external/aws_request_signer.h +72 -0
  1394. data/src/core/lib/security/credentials/external/external_account_credentials.cc +561 -0
  1395. data/src/core/lib/security/credentials/external/external_account_credentials.h +129 -0
  1396. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +138 -0
  1397. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +55 -0
  1398. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +242 -0
  1399. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +71 -0
  1400. data/src/core/lib/security/credentials/fake/fake_credentials.cc +64 -63
  1401. data/src/core/lib/security/credentials/fake/fake_credentials.h +68 -60
  1402. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +24 -27
  1403. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +240 -142
  1404. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +38 -26
  1405. data/src/core/lib/security/credentials/iam/iam_credentials.cc +51 -48
  1406. data/src/core/lib/security/credentials/iam/iam_credentials.h +43 -27
  1407. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +73 -0
  1408. data/src/core/lib/security/credentials/insecure/insecure_credentials.h +61 -0
  1409. data/src/core/lib/security/credentials/jwt/json_token.cc +48 -39
  1410. data/src/core/lib/security/credentials/jwt/json_token.h +34 -33
  1411. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +83 -75
  1412. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +62 -36
  1413. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +179 -147
  1414. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +49 -47
  1415. data/src/core/lib/security/credentials/local/local_credentials.cc +37 -30
  1416. data/src/core/lib/security/credentials/local/local_credentials.h +39 -23
  1417. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +269 -287
  1418. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +105 -56
  1419. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +123 -177
  1420. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +98 -45
  1421. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +55 -59
  1422. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +48 -26
  1423. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +340 -0
  1424. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +216 -0
  1425. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +471 -0
  1426. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +206 -0
  1427. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +241 -0
  1428. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +168 -0
  1429. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +83 -206
  1430. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +93 -299
  1431. data/src/core/lib/security/credentials/tls/tls_credentials.cc +79 -58
  1432. data/src/core/lib/security/credentials/tls/tls_credentials.h +33 -24
  1433. data/src/core/lib/security/credentials/tls/tls_utils.cc +127 -0
  1434. data/src/core/lib/security/credentials/tls/tls_utils.h +51 -0
  1435. data/src/core/lib/security/credentials/xds/xds_credentials.cc +235 -0
  1436. data/src/core/lib/security/credentials/xds/xds_credentials.h +114 -0
  1437. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +77 -67
  1438. data/src/core/lib/security/security_connector/alts/alts_security_connector.h +50 -48
  1439. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +94 -104
  1440. data/src/core/lib/security/security_connector/fake/fake_security_connector.h +23 -26
  1441. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +120 -0
  1442. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +103 -0
  1443. data/src/core/lib/security/security_connector/load_system_roots.h +22 -18
  1444. data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +23 -20
  1445. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +175 -0
  1446. data/src/core/lib/security/security_connector/load_system_roots_supported.h +45 -0
  1447. data/src/core/lib/security/security_connector/local/local_security_connector.cc +90 -65
  1448. data/src/core/lib/security/security_connector/local/local_security_connector.h +47 -44
  1449. data/src/core/lib/security/security_connector/security_connector.cc +48 -52
  1450. data/src/core/lib/security/security_connector/security_connector.h +90 -66
  1451. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +78 -66
  1452. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +43 -43
  1453. data/src/core/lib/security/security_connector/ssl_utils.cc +124 -83
  1454. data/src/core/lib/security/security_connector/ssl_utils.h +74 -75
  1455. data/src/core/lib/security/security_connector/ssl_utils_config.cc +22 -22
  1456. data/src/core/lib/security/security_connector/ssl_utils_config.h +19 -20
  1457. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +672 -450
  1458. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +231 -128
  1459. data/src/core/lib/security/transport/auth_filters.h +64 -23
  1460. data/src/core/lib/security/transport/client_auth_filter.cc +143 -383
  1461. data/src/core/lib/security/transport/secure_endpoint.cc +314 -200
  1462. data/src/core/lib/security/transport/secure_endpoint.h +27 -25
  1463. data/src/core/lib/security/transport/security_handshaker.cc +267 -168
  1464. data/src/core/lib/security/transport/security_handshaker.h +27 -21
  1465. data/src/core/lib/security/transport/server_auth_filter.cc +122 -89
  1466. data/src/core/lib/security/transport/tsi_error.cc +24 -22
  1467. data/src/core/lib/security/transport/tsi_error.h +20 -19
  1468. data/src/core/lib/security/util/json_util.cc +29 -31
  1469. data/src/core/lib/security/util/json_util.h +20 -21
  1470. data/src/core/lib/service_config/service_config.h +89 -0
  1471. data/src/core/lib/service_config/service_config_call_data.h +82 -0
  1472. data/src/core/lib/service_config/service_config_impl.cc +191 -0
  1473. data/src/core/lib/service_config/service_config_impl.h +125 -0
  1474. data/src/core/lib/service_config/service_config_parser.cc +81 -0
  1475. data/src/core/lib/service_config/service_config_parser.h +105 -0
  1476. data/src/core/lib/slice/b64.cc +26 -26
  1477. data/src/core/lib/slice/b64.h +31 -29
  1478. data/src/core/lib/slice/percent_encoding.cc +95 -114
  1479. data/src/core/lib/slice/percent_encoding.h +43 -54
  1480. data/src/core/lib/slice/slice.cc +140 -234
  1481. data/src/core/lib/slice/slice.h +435 -0
  1482. data/src/core/lib/slice/slice_buffer.cc +145 -81
  1483. data/src/core/lib/slice/slice_buffer.h +162 -0
  1484. data/src/core/lib/slice/slice_internal.h +37 -305
  1485. data/src/core/lib/slice/slice_refcount.h +60 -0
  1486. data/src/core/lib/slice/slice_string_helpers.cc +17 -116
  1487. data/src/core/lib/slice/slice_string_helpers.h +20 -38
  1488. data/src/core/lib/surface/api_trace.cc +19 -18
  1489. data/src/core/lib/surface/api_trace.h +23 -22
  1490. data/src/core/lib/surface/builtins.cc +54 -0
  1491. data/src/core/lib/surface/builtins.h +26 -0
  1492. data/src/core/lib/surface/byte_buffer.cc +26 -21
  1493. data/src/core/lib/surface/byte_buffer_reader.cc +25 -25
  1494. data/src/core/lib/surface/call.cc +2509 -1450
  1495. data/src/core/lib/surface/call.h +114 -58
  1496. data/src/core/lib/surface/call_details.cc +28 -29
  1497. data/src/core/lib/surface/call_log_batch.cc +26 -20
  1498. data/src/core/lib/surface/call_test_only.h +31 -28
  1499. data/src/core/lib/surface/call_trace.cc +113 -0
  1500. data/src/core/lib/surface/call_trace.h +30 -0
  1501. data/src/core/lib/surface/channel.cc +251 -365
  1502. data/src/core/lib/surface/channel.h +148 -102
  1503. data/src/core/lib/surface/channel_init.cc +39 -93
  1504. data/src/core/lib/surface/channel_init.h +63 -57
  1505. data/src/core/lib/surface/channel_ping.cc +28 -23
  1506. data/src/core/lib/surface/channel_stack_type.cc +21 -18
  1507. data/src/core/lib/surface/channel_stack_type.h +20 -20
  1508. data/src/core/lib/surface/completion_queue.cc +337 -363
  1509. data/src/core/lib/surface/completion_queue.h +56 -53
  1510. data/src/core/lib/surface/completion_queue_factory.cc +37 -31
  1511. data/src/core/lib/surface/completion_queue_factory.h +19 -20
  1512. data/src/core/lib/surface/event_string.cc +18 -23
  1513. data/src/core/lib/surface/event_string.h +19 -19
  1514. data/src/core/lib/surface/init.cc +143 -162
  1515. data/src/core/lib/surface/init.h +20 -22
  1516. data/src/core/lib/surface/init_internally.cc +25 -0
  1517. data/src/core/lib/surface/init_internally.h +37 -0
  1518. data/src/core/lib/surface/lame_client.cc +101 -138
  1519. data/src/core/lib/surface/lame_client.h +63 -20
  1520. data/src/core/lib/surface/metadata_array.cc +20 -19
  1521. data/src/core/lib/surface/server.cc +304 -304
  1522. data/src/core/lib/surface/server.h +189 -62
  1523. data/src/core/lib/surface/validate_metadata.cc +74 -57
  1524. data/src/core/lib/surface/validate_metadata.h +27 -20
  1525. data/src/core/lib/surface/version.cc +21 -21
  1526. data/src/core/lib/transport/bdp_estimator.cc +29 -30
  1527. data/src/core/lib/transport/bdp_estimator.h +23 -24
  1528. data/src/core/lib/transport/connectivity_state.cc +33 -29
  1529. data/src/core/lib/transport/connectivity_state.h +34 -33
  1530. data/src/core/lib/transport/error_utils.cc +90 -73
  1531. data/src/core/lib/transport/error_utils.h +39 -28
  1532. data/src/core/lib/transport/handshaker.cc +228 -0
  1533. data/src/core/lib/transport/handshaker.h +172 -0
  1534. data/src/core/lib/transport/handshaker_factory.h +74 -0
  1535. data/src/core/lib/transport/handshaker_registry.cc +61 -0
  1536. data/src/core/lib/transport/handshaker_registry.h +69 -0
  1537. data/src/core/lib/transport/http2_errors.h +20 -20
  1538. data/src/core/lib/transport/http_connect_handshaker.cc +400 -0
  1539. data/src/core/lib/transport/http_connect_handshaker.h +42 -0
  1540. data/src/core/lib/transport/metadata_batch.cc +218 -316
  1541. data/src/core/lib/transport/metadata_batch.h +1322 -177
  1542. data/src/core/lib/transport/parsed_metadata.cc +35 -0
  1543. data/src/core/lib/transport/parsed_metadata.h +410 -0
  1544. data/src/core/lib/transport/pid_controller.cc +24 -24
  1545. data/src/core/lib/transport/pid_controller.h +24 -24
  1546. data/src/core/lib/transport/status_conversion.cc +25 -25
  1547. data/src/core/lib/transport/status_conversion.h +23 -23
  1548. data/src/core/lib/transport/tcp_connect_handshaker.cc +246 -0
  1549. data/src/core/lib/transport/tcp_connect_handshaker.h +39 -0
  1550. data/src/core/lib/transport/timeout_encoding.cc +229 -96
  1551. data/src/core/lib/transport/timeout_encoding.h +62 -28
  1552. data/src/core/lib/transport/transport.cc +118 -91
  1553. data/src/core/lib/transport/transport.h +276 -153
  1554. data/src/core/lib/transport/transport_fwd.h +20 -0
  1555. data/src/core/lib/transport/transport_impl.h +56 -32
  1556. data/src/core/lib/transport/transport_op_string.cc +46 -68
  1557. data/src/core/lib/uri/uri_parser.cc +312 -248
  1558. data/src/core/lib/uri/uri_parser.h +90 -40
  1559. data/src/core/plugin_registry/grpc_plugin_registry.cc +108 -118
  1560. data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +66 -0
  1561. data/src/core/tsi/alts/crypt/aes_gcm.cc +26 -23
  1562. data/src/core/tsi/alts/crypt/gsec.cc +31 -30
  1563. data/src/core/tsi/alts/crypt/gsec.h +339 -334
  1564. data/src/core/tsi/alts/frame_protector/alts_counter.cc +23 -23
  1565. data/src/core/tsi/alts/frame_protector/alts_counter.h +66 -66
  1566. data/src/core/tsi/alts/frame_protector/alts_crypter.cc +19 -19
  1567. data/src/core/tsi/alts/frame_protector/alts_crypter.h +206 -206
  1568. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +85 -83
  1569. data/src/core/tsi/alts/frame_protector/alts_frame_protector.h +38 -38
  1570. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.cc +18 -18
  1571. data/src/core/tsi/alts/frame_protector/alts_record_protocol_crypter_common.h +80 -81
  1572. data/src/core/tsi/alts/frame_protector/alts_seal_privacy_integrity_crypter.cc +22 -22
  1573. data/src/core/tsi/alts/frame_protector/alts_unseal_privacy_integrity_crypter.cc +22 -22
  1574. data/src/core/tsi/alts/frame_protector/frame_handler.cc +44 -42
  1575. data/src/core/tsi/alts/frame_protector/frame_handler.h +166 -166
  1576. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +167 -148
  1577. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +103 -104
  1578. data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +27 -18
  1579. data/src/core/tsi/alts/handshaker/alts_shared_resource.h +41 -42
  1580. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +131 -108
  1581. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +59 -59
  1582. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +23 -22
  1583. data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +23 -22
  1584. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +37 -37
  1585. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +22 -24
  1586. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +104 -103
  1587. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +47 -46
  1588. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.h +38 -39
  1589. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.cc +38 -36
  1590. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_privacy_integrity_record_protocol.h +33 -34
  1591. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol.h +65 -66
  1592. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +33 -32
  1593. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +53 -54
  1594. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +62 -59
  1595. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.h +138 -139
  1596. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +73 -64
  1597. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.h +41 -42
  1598. data/src/core/tsi/fake_transport_security.cc +177 -121
  1599. data/src/core/tsi/fake_transport_security.h +33 -27
  1600. data/src/core/tsi/local_transport_security.cc +84 -120
  1601. data/src/core/tsi/local_transport_security.h +33 -37
  1602. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +146 -0
  1603. data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +81 -0
  1604. data/src/core/tsi/ssl/session_cache/ssl_session.h +21 -21
  1605. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +22 -20
  1606. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +38 -72
  1607. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +37 -28
  1608. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +29 -22
  1609. data/src/core/tsi/ssl_transport_security.cc +495 -453
  1610. data/src/core/tsi/ssl_transport_security.h +239 -198
  1611. data/src/core/tsi/ssl_transport_security_utils.cc +250 -0
  1612. data/src/core/tsi/ssl_transport_security_utils.h +147 -0
  1613. data/src/core/tsi/ssl_types.h +25 -25
  1614. data/src/core/tsi/transport_security.cc +69 -43
  1615. data/src/core/tsi/transport_security.h +50 -34
  1616. data/src/core/tsi/transport_security_grpc.cc +23 -22
  1617. data/src/core/tsi/transport_security_grpc.h +43 -39
  1618. data/src/core/tsi/transport_security_interface.h +368 -328
  1619. data/src/ruby/bin/math_services_pb.rb +1 -1
  1620. data/src/ruby/ext/grpc/ext-export-truffleruby-with-ruby-abi-version.clang +2 -0
  1621. data/src/ruby/ext/grpc/ext-export-truffleruby-with-ruby-abi-version.gcc +7 -0
  1622. data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.clang +2 -0
  1623. data/src/ruby/ext/grpc/ext-export-with-ruby-abi-version.gcc +7 -0
  1624. data/src/ruby/ext/grpc/ext-export.gcc +1 -1
  1625. data/src/ruby/ext/grpc/extconf.rb +122 -24
  1626. data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -1
  1627. data/src/ruby/ext/grpc/rb_call.c +6 -5
  1628. data/src/ruby/ext/grpc/rb_call_credentials.c +5 -5
  1629. data/src/ruby/ext/grpc/rb_channel.c +25 -10
  1630. data/src/ruby/ext/grpc/rb_channel_args.c +3 -2
  1631. data/src/ruby/ext/grpc/rb_channel_credentials.c +15 -5
  1632. data/src/ruby/ext/grpc/rb_channel_credentials.h +5 -0
  1633. data/src/ruby/ext/grpc/rb_completion_queue.c +3 -2
  1634. data/src/ruby/ext/grpc/rb_compression_options.c +7 -6
  1635. data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
  1636. data/src/ruby/ext/grpc/rb_event_thread.c +4 -2
  1637. data/src/ruby/ext/grpc/rb_grpc.c +10 -4
  1638. data/src/ruby/ext/grpc/rb_grpc.h +1 -0
  1639. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +108 -84
  1640. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +178 -142
  1641. data/src/ruby/ext/grpc/rb_loader.c +6 -2
  1642. data/src/ruby/ext/grpc/rb_server.c +26 -10
  1643. data/src/ruby/ext/grpc/rb_server_credentials.c +22 -6
  1644. data/src/ruby/ext/grpc/rb_server_credentials.h +5 -0
  1645. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +218 -0
  1646. data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +37 -0
  1647. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +170 -0
  1648. data/src/ruby/ext/grpc/rb_xds_server_credentials.h +37 -0
  1649. data/src/ruby/lib/grpc/errors.rb +1 -1
  1650. data/src/ruby/lib/grpc/generic/active_call.rb +7 -1
  1651. data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -0
  1652. data/src/ruby/lib/grpc/generic/client_stub.rb +4 -2
  1653. data/src/ruby/lib/grpc/grpc.rb +1 -1
  1654. data/src/ruby/lib/grpc/version.rb +1 -1
  1655. data/src/ruby/pb/generate_proto_ruby.sh +1 -0
  1656. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
  1657. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +39 -0
  1658. data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -0
  1659. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +23 -5
  1660. data/src/ruby/pb/test/client.rb +769 -0
  1661. data/src/ruby/pb/test/server.rb +252 -0
  1662. data/src/ruby/pb/test/xds_client.rb +415 -0
  1663. data/src/ruby/spec/call_spec.rb +1 -1
  1664. data/src/ruby/spec/channel_credentials_spec.rb +32 -0
  1665. data/src/ruby/spec/channel_spec.rb +21 -48
  1666. data/src/ruby/spec/client_auth_spec.rb +27 -1
  1667. data/src/ruby/spec/client_server_spec.rb +21 -9
  1668. data/src/ruby/spec/errors_spec.rb +1 -1
  1669. data/src/ruby/spec/generic/active_call_spec.rb +14 -5
  1670. data/src/ruby/spec/generic/client_stub_spec.rb +27 -27
  1671. data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
  1672. data/src/ruby/spec/generic/server_interceptors_spec.rb +1 -1
  1673. data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -6
  1674. data/src/ruby/spec/server_credentials_spec.rb +25 -0
  1675. data/src/ruby/spec/server_spec.rb +22 -0
  1676. data/src/ruby/spec/user_agent_spec.rb +1 -1
  1677. data/third_party/abseil-cpp/absl/algorithm/container.h +164 -117
  1678. data/third_party/abseil-cpp/absl/base/attributes.h +211 -70
  1679. data/third_party/abseil-cpp/absl/base/call_once.h +3 -10
  1680. data/third_party/abseil-cpp/absl/base/casts.h +61 -65
  1681. data/third_party/abseil-cpp/absl/base/config.h +320 -78
  1682. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +417 -335
  1683. data/third_party/abseil-cpp/absl/base/internal/cycleclock.cc +12 -42
  1684. data/third_party/abseil-cpp/absl/base/internal/cycleclock.h +67 -2
  1685. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +12 -4
  1686. data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
  1687. data/third_party/abseil-cpp/absl/base/internal/endian.h +78 -62
  1688. data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +50 -0
  1689. data/third_party/abseil-cpp/absl/base/internal/invoke.h +58 -4
  1690. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +1 -1
  1691. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +31 -4
  1692. data/third_party/abseil-cpp/absl/base/internal/prefetch.h +138 -0
  1693. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +56 -47
  1694. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +29 -16
  1695. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +39 -40
  1696. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +44 -31
  1697. data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
  1698. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +13 -8
  1699. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
  1700. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +13 -11
  1701. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
  1702. data/third_party/abseil-cpp/absl/base/internal/strerror.cc +88 -0
  1703. data/third_party/abseil-cpp/absl/base/internal/strerror.h +39 -0
  1704. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +96 -5
  1705. data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +8 -0
  1706. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +11 -7
  1707. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +58 -52
  1708. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
  1709. data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +3 -1
  1710. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
  1711. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +23 -10
  1712. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +18 -9
  1713. data/third_party/abseil-cpp/absl/base/log_severity.cc +28 -0
  1714. data/third_party/abseil-cpp/absl/base/log_severity.h +55 -4
  1715. data/third_party/abseil-cpp/absl/base/macros.h +47 -109
  1716. data/third_party/abseil-cpp/absl/base/optimization.h +77 -6
  1717. data/third_party/abseil-cpp/absl/base/options.h +31 -4
  1718. data/third_party/abseil-cpp/absl/base/policy_checks.h +1 -1
  1719. data/third_party/abseil-cpp/absl/base/port.h +0 -1
  1720. data/third_party/abseil-cpp/absl/base/thread_annotations.h +97 -42
  1721. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +140 -0
  1722. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +100 -0
  1723. data/third_party/abseil-cpp/absl/container/fixed_array.h +46 -32
  1724. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +613 -0
  1725. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +18 -11
  1726. data/third_party/abseil-cpp/absl/container/inlined_vector.h +155 -137
  1727. data/third_party/abseil-cpp/absl/container/internal/common.h +12 -7
  1728. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +34 -9
  1729. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +59 -57
  1730. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +23 -6
  1731. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +24 -7
  1732. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +83 -114
  1733. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +99 -97
  1734. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
  1735. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +495 -434
  1736. data/third_party/abseil-cpp/absl/container/internal/layout.h +11 -9
  1737. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +198 -0
  1738. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +25 -2
  1739. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +852 -369
  1740. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +45 -87
  1741. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +93 -29
  1742. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +16 -11
  1743. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +7 -2
  1744. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +17 -5
  1745. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +21 -7
  1746. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +42 -24
  1747. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +110 -0
  1748. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +12 -3
  1749. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +14 -4
  1750. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +236 -0
  1751. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +10 -2
  1752. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +33 -10
  1753. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +33 -8
  1754. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +35 -25
  1755. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +2 -0
  1756. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +19 -1
  1757. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +101 -0
  1758. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +160 -27
  1759. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +72 -0
  1760. data/third_party/abseil-cpp/absl/functional/any_invocable.h +313 -0
  1761. data/third_party/abseil-cpp/absl/functional/bind_front.h +193 -0
  1762. data/third_party/abseil-cpp/absl/functional/function_ref.h +7 -3
  1763. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +857 -0
  1764. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +95 -0
  1765. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -2
  1766. data/third_party/abseil-cpp/absl/hash/hash.h +110 -13
  1767. data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
  1768. data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
  1769. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +27 -13
  1770. data/third_party/abseil-cpp/absl/hash/internal/hash.h +426 -123
  1771. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +123 -0
  1772. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +50 -0
  1773. data/third_party/abseil-cpp/absl/memory/memory.h +4 -0
  1774. data/third_party/abseil-cpp/absl/meta/type_traits.h +49 -11
  1775. data/third_party/abseil-cpp/absl/numeric/bits.h +178 -0
  1776. data/third_party/abseil-cpp/absl/numeric/int128.cc +18 -37
  1777. data/third_party/abseil-cpp/absl/numeric/int128.h +161 -87
  1778. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +19 -25
  1779. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +73 -70
  1780. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
  1781. data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  1782. data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.cc +93 -0
  1783. data/third_party/abseil-cpp/absl/profiling/internal/exponential_biased.h +130 -0
  1784. data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +245 -0
  1785. data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +200 -0
  1786. data/third_party/abseil-cpp/absl/random/beta_distribution.h +427 -0
  1787. data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +98 -0
  1788. data/third_party/abseil-cpp/absl/random/discrete_distribution.h +247 -0
  1789. data/third_party/abseil-cpp/absl/random/distributions.h +452 -0
  1790. data/third_party/abseil-cpp/absl/random/exponential_distribution.h +165 -0
  1791. data/third_party/abseil-cpp/absl/random/gaussian_distribution.cc +104 -0
  1792. data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +275 -0
  1793. data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +95 -0
  1794. data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +269 -0
  1795. data/third_party/abseil-cpp/absl/random/internal/fastmath.h +57 -0
  1796. data/third_party/abseil-cpp/absl/random/internal/generate_real.h +144 -0
  1797. data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +245 -0
  1798. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +161 -0
  1799. data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +308 -0
  1800. data/third_party/abseil-cpp/absl/random/internal/platform.h +171 -0
  1801. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +253 -0
  1802. data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +131 -0
  1803. data/third_party/abseil-cpp/absl/random/internal/randen.cc +91 -0
  1804. data/third_party/abseil-cpp/absl/random/internal/randen.h +96 -0
  1805. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +225 -0
  1806. data/third_party/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
  1807. data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +264 -0
  1808. data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +526 -0
  1809. data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
  1810. data/third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc +462 -0
  1811. data/third_party/abseil-cpp/absl/random/internal/randen_slow.cc +471 -0
  1812. data/third_party/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
  1813. data/third_party/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
  1814. data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +165 -0
  1815. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +267 -0
  1816. data/third_party/abseil-cpp/absl/random/internal/seed_material.h +104 -0
  1817. data/third_party/abseil-cpp/absl/random/internal/traits.h +149 -0
  1818. data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
  1819. data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +96 -0
  1820. data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +256 -0
  1821. data/third_party/abseil-cpp/absl/random/poisson_distribution.h +261 -0
  1822. data/third_party/abseil-cpp/absl/random/random.h +189 -0
  1823. data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +46 -0
  1824. data/third_party/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
  1825. data/third_party/abseil-cpp/absl/random/seed_sequences.cc +29 -0
  1826. data/third_party/abseil-cpp/absl/random/seed_sequences.h +111 -0
  1827. data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +275 -0
  1828. data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +202 -0
  1829. data/third_party/abseil-cpp/absl/random/zipf_distribution.h +272 -0
  1830. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +86 -0
  1831. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +396 -0
  1832. data/third_party/abseil-cpp/absl/status/status.cc +205 -36
  1833. data/third_party/abseil-cpp/absl/status/status.h +586 -122
  1834. data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +5 -10
  1835. data/third_party/abseil-cpp/absl/status/statusor.cc +103 -0
  1836. data/third_party/abseil-cpp/absl/status/statusor.h +776 -0
  1837. data/third_party/abseil-cpp/absl/strings/ascii.h +4 -4
  1838. data/third_party/abseil-cpp/absl/strings/charconv.cc +10 -10
  1839. data/third_party/abseil-cpp/absl/strings/charconv.h +3 -2
  1840. data/third_party/abseil-cpp/absl/strings/cord.cc +592 -1283
  1841. data/third_party/abseil-cpp/absl/strings/cord.h +840 -319
  1842. data/third_party/abseil-cpp/absl/strings/cord_analysis.cc +188 -0
  1843. data/third_party/abseil-cpp/absl/strings/cord_analysis.h +44 -0
  1844. data/third_party/abseil-cpp/absl/strings/cord_buffer.cc +30 -0
  1845. data/third_party/abseil-cpp/absl/strings/cord_buffer.h +572 -0
  1846. data/third_party/abseil-cpp/absl/strings/escaping.cc +13 -13
  1847. data/third_party/abseil-cpp/absl/strings/internal/char_map.h +1 -1
  1848. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
  1849. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +2 -2
  1850. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +9 -9
  1851. data/third_party/abseil-cpp/absl/strings/internal/cord_data_edge.h +63 -0
  1852. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +77 -0
  1853. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +561 -57
  1854. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1228 -0
  1855. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +924 -0
  1856. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +187 -0
  1857. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +267 -0
  1858. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +69 -0
  1859. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +212 -0
  1860. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +62 -0
  1861. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +50 -0
  1862. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.cc +54 -0
  1863. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_crc.h +102 -0
  1864. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +187 -0
  1865. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +773 -0
  1866. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +607 -0
  1867. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +118 -0
  1868. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +96 -0
  1869. data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +85 -0
  1870. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +139 -0
  1871. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +131 -0
  1872. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +418 -0
  1873. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +298 -0
  1874. data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +88 -0
  1875. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
  1876. data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +123 -0
  1877. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +6 -5
  1878. data/third_party/abseil-cpp/absl/strings/internal/ostringstream.cc +1 -1
  1879. data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +48 -2
  1880. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +236 -136
  1881. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +159 -65
  1882. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +19 -6
  1883. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +63 -24
  1884. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +28 -16
  1885. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +36 -13
  1886. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +188 -155
  1887. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +1017 -87
  1888. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +17 -3
  1889. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +6 -13
  1890. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +82 -77
  1891. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +55 -29
  1892. data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +9 -6
  1893. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +49 -74
  1894. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +72 -0
  1895. data/third_party/abseil-cpp/absl/strings/internal/utf8.cc +9 -9
  1896. data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
  1897. data/third_party/abseil-cpp/absl/strings/match.h +16 -6
  1898. data/third_party/abseil-cpp/absl/strings/numbers.cc +135 -7
  1899. data/third_party/abseil-cpp/absl/strings/numbers.h +69 -32
  1900. data/third_party/abseil-cpp/absl/strings/str_cat.cc +8 -8
  1901. data/third_party/abseil-cpp/absl/strings/str_cat.h +21 -14
  1902. data/third_party/abseil-cpp/absl/strings/str_format.h +290 -15
  1903. data/third_party/abseil-cpp/absl/strings/str_join.h +9 -15
  1904. data/third_party/abseil-cpp/absl/strings/str_split.cc +2 -2
  1905. data/third_party/abseil-cpp/absl/strings/str_split.h +40 -6
  1906. data/third_party/abseil-cpp/absl/strings/string_view.cc +18 -34
  1907. data/third_party/abseil-cpp/absl/strings/string_view.h +146 -57
  1908. data/third_party/abseil-cpp/absl/strings/strip.h +8 -6
  1909. data/third_party/abseil-cpp/absl/strings/substitute.cc +7 -6
  1910. data/third_party/abseil-cpp/absl/strings/substitute.h +119 -83
  1911. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +25 -15
  1912. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +5 -3
  1913. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +12 -9
  1914. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.h +0 -4
  1915. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
  1916. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +4 -3
  1917. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +29 -28
  1918. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -6
  1919. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +6 -11
  1920. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +2 -83
  1921. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +14 -12
  1922. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +209 -151
  1923. data/third_party/abseil-cpp/absl/synchronization/mutex.h +106 -72
  1924. data/third_party/abseil-cpp/absl/synchronization/notification.h +3 -2
  1925. data/third_party/abseil-cpp/absl/time/civil_time.cc +9 -11
  1926. data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
  1927. data/third_party/abseil-cpp/absl/time/clock.h +2 -2
  1928. data/third_party/abseil-cpp/absl/time/duration.cc +98 -65
  1929. data/third_party/abseil-cpp/absl/time/format.cc +43 -36
  1930. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +42 -32
  1931. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +97 -22
  1932. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +1 -1
  1933. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
  1934. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +136 -29
  1935. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +2 -1
  1936. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +13 -21
  1937. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +1 -1
  1938. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +219 -150
  1939. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +4 -5
  1940. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +15 -8
  1941. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +49 -0
  1942. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +3 -3
  1943. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +1 -1
  1944. data/third_party/abseil-cpp/absl/time/time.cc +4 -3
  1945. data/third_party/abseil-cpp/absl/time/time.h +122 -86
  1946. data/third_party/abseil-cpp/absl/types/bad_optional_access.h +1 -1
  1947. data/third_party/abseil-cpp/absl/types/bad_variant_access.h +2 -2
  1948. data/third_party/abseil-cpp/absl/types/internal/optional.h +8 -0
  1949. data/third_party/abseil-cpp/absl/types/internal/variant.h +8 -8
  1950. data/third_party/abseil-cpp/absl/types/optional.h +26 -23
  1951. data/third_party/abseil-cpp/absl/types/span.h +52 -38
  1952. data/third_party/abseil-cpp/absl/types/variant.h +9 -4
  1953. data/third_party/abseil-cpp/absl/utility/utility.h +2 -2
  1954. data/third_party/address_sorting/address_sorting_posix.c +1 -0
  1955. data/third_party/address_sorting/include/address_sorting/address_sorting.h +2 -0
  1956. data/third_party/boringssl-with-bazel/err_data.c +763 -721
  1957. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +70 -57
  1958. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +22 -23
  1959. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -2
  1960. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +2 -2
  1961. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +6 -1
  1962. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +5 -5
  1963. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +16 -23
  1964. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +67 -54
  1965. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +3 -3
  1966. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +19 -29
  1967. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +650 -0
  1968. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +106 -153
  1969. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +4 -4
  1970. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +22 -10
  1971. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +3 -42
  1972. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +1 -1
  1973. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +74 -68
  1974. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +1 -1
  1975. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +24 -28
  1976. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +5 -0
  1977. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +224 -0
  1978. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +79 -354
  1979. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +327 -281
  1980. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +15 -26
  1981. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +20 -75
  1982. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +8 -8
  1983. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +3 -2
  1984. data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +1 -1
  1985. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +24 -8
  1986. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +2 -0
  1987. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +1 -7
  1988. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +1 -5
  1989. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -4
  1990. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +1 -7
  1991. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -6
  1992. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -17
  1993. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +4 -0
  1994. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +156 -0
  1995. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/bn_asn1.c +3 -10
  1996. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +11 -10
  1997. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +9 -0
  1998. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +68 -45
  1999. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +38 -47
  2000. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +49 -65
  2001. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +6 -81
  2002. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
  2003. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +101 -3
  2004. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
  2005. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +14 -3
  2006. data/third_party/boringssl-with-bazel/src/crypto/cpu-aarch64-win.c +41 -0
  2007. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +11 -2
  2008. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +3 -3
  2009. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
  2010. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
  2011. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +272 -0
  2012. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +31 -3
  2013. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +30 -43
  2014. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +55 -4
  2015. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +34 -0
  2016. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +2 -17
  2017. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
  2018. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +13 -0
  2019. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +2 -2
  2020. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +6 -2
  2021. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +32 -34
  2022. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +4 -1
  2023. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +13 -20
  2024. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +28 -12
  2025. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +3 -2
  2026. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +15 -4
  2027. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
  2028. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +5 -9
  2029. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +44 -16
  2030. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +208 -37
  2031. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +10 -11
  2032. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +1 -3
  2033. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +456 -0
  2034. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +11 -0
  2035. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
  2036. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
  2037. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +16 -0
  2038. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +9 -2
  2039. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
  2040. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +105 -95
  2041. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
  2042. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +56 -72
  2043. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +56 -73
  2044. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
  2045. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
  2046. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
  2047. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
  2048. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +1 -1
  2049. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
  2050. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
  2051. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +30 -9
  2052. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +123 -44
  2053. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +30 -20
  2054. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +4 -0
  2055. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +80 -43
  2056. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +120 -62
  2057. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
  2058. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +176 -18
  2059. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +93 -107
  2060. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +91 -113
  2061. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +50 -86
  2062. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +401 -239
  2063. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +219 -121
  2064. data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +9 -2
  2065. data/third_party/boringssl-with-bazel/src/crypto/internal.h +125 -0
  2066. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +253 -0
  2067. data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +28 -23
  2068. data/third_party/boringssl-with-bazel/src/crypto/mem.c +46 -9
  2069. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +10 -6
  2070. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +0 -9
  2071. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +0 -2
  2072. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +0 -8
  2073. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +0 -2
  2074. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +0 -4
  2075. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +16 -7
  2076. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +38 -4
  2077. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +156 -15
  2078. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +0 -1
  2079. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +1 -1
  2080. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +96 -49
  2081. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +11 -8
  2082. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +13 -11
  2083. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +4 -0
  2084. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +5 -1
  2085. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +59 -22
  2086. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +4 -0
  2087. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +4 -0
  2088. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +34 -0
  2089. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +5 -1
  2090. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +4 -0
  2091. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
  2092. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +6 -6
  2093. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +7 -13
  2094. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
  2095. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +118 -49
  2096. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +267 -95
  2097. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +210 -34
  2098. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +766 -0
  2099. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +15 -11
  2100. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +7 -5
  2101. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +2 -18
  2102. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +1 -0
  2103. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +2 -0
  2104. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +351 -13
  2105. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +246 -0
  2106. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +20 -5
  2107. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +13 -8
  2108. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
  2109. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +1 -180
  2110. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +7 -2
  2111. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +24 -47
  2112. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +11 -33
  2113. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +29 -23
  2114. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +1 -5
  2115. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +2 -1
  2116. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
  2117. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +41 -27
  2118. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +5 -3
  2119. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +67 -67
  2120. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +29 -26
  2121. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +54 -104
  2122. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +54 -74
  2123. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +74 -25
  2124. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +11 -12
  2125. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
  2126. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -19
  2127. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +13 -26
  2128. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +21 -34
  2129. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +17 -15
  2130. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +2 -0
  2131. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +49 -59
  2132. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +2 -2
  2133. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
  2134. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
  2135. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
  2136. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
  2137. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +49 -11
  2138. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +5 -2
  2139. data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +1 -4
  2140. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +239 -11
  2141. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +2 -1
  2142. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +7 -5
  2143. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +1 -1
  2144. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +2 -1
  2145. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +1 -1
  2146. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +5 -4
  2147. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +27 -8
  2148. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +43 -32
  2149. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +6 -3
  2150. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +33 -28
  2151. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +10 -13
  2152. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +4 -2
  2153. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +7 -1
  2154. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +42 -22
  2155. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +3 -4
  2156. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +1 -1
  2157. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +48 -40
  2158. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +112 -55
  2159. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +2 -1
  2160. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +15 -14
  2161. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +57 -10
  2162. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +8 -7
  2163. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +86 -44
  2164. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +25 -4
  2165. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +76 -9
  2166. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +1794 -666
  2167. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +5 -179
  2168. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +67 -15
  2169. data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +8 -0
  2170. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +7 -1
  2171. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +62 -0
  2172. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +3 -3
  2173. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +32 -7
  2174. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
  2175. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +42 -7
  2176. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +8 -5
  2177. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
  2178. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +25 -5
  2179. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +6 -0
  2180. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +66 -32
  2181. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +19 -2
  2182. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +27 -41
  2183. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +20 -2
  2184. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +12 -27
  2185. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +41 -10
  2186. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
  2187. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +70 -106
  2188. data/third_party/boringssl-with-bazel/src/include/openssl/evp_errors.h +99 -0
  2189. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +4 -0
  2190. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +350 -0
  2191. data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +14 -12
  2192. data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +4 -205
  2193. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +12 -3
  2194. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +26 -6
  2195. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +3 -0
  2196. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +194 -146
  2197. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +42 -18
  2198. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +15 -2
  2199. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +7 -1
  2200. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +5 -2
  2201. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +128 -91
  2202. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +39 -16
  2203. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +499 -122
  2204. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +52 -36
  2205. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +42 -14
  2206. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1554 -427
  2207. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +16 -679
  2208. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +642 -452
  2209. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +18 -5
  2210. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +16 -18
  2211. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
  2212. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1084 -0
  2213. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +4325 -0
  2214. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +333 -22
  2215. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +99 -51
  2216. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +315 -219
  2217. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +178 -36
  2218. data/third_party/boringssl-with-bazel/src/ssl/internal.h +533 -159
  2219. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
  2220. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -2
  2221. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
  2222. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +49 -9
  2223. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
  2224. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +10 -11
  2225. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +34 -31
  2226. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +129 -110
  2227. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
  2228. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +147 -118
  2229. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
  2230. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +12 -17
  2231. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +11 -3
  2232. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +28 -23
  2233. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +5 -7
  2234. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +80 -36
  2235. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +285 -190
  2236. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +160 -91
  2237. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +381 -136
  2238. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
  2239. data/third_party/cares/cares/include/ares.h +742 -0
  2240. data/third_party/cares/cares/include/ares_dns.h +112 -0
  2241. data/third_party/cares/cares/include/ares_version.h +24 -0
  2242. data/third_party/cares/cares/src/lib/ares__close_sockets.c +61 -0
  2243. data/third_party/cares/cares/src/lib/ares__get_hostent.c +260 -0
  2244. data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +260 -0
  2245. data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +264 -0
  2246. data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +499 -0
  2247. data/third_party/cares/cares/src/lib/ares_android.c +444 -0
  2248. data/third_party/cares/cares/src/lib/ares_android.h +27 -0
  2249. data/third_party/cares/cares/src/lib/ares_create_query.c +197 -0
  2250. data/third_party/cares/cares/src/lib/ares_data.c +240 -0
  2251. data/third_party/cares/cares/src/lib/ares_data.h +74 -0
  2252. data/third_party/cares/cares/src/lib/ares_expand_name.c +300 -0
  2253. data/third_party/cares/cares/src/lib/ares_expand_string.c +67 -0
  2254. data/third_party/cares/cares/src/lib/ares_free_hostent.c +43 -0
  2255. data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +59 -0
  2256. data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +772 -0
  2257. data/third_party/cares/cares/src/lib/ares_getenv.c +28 -0
  2258. data/third_party/cares/cares/src/lib/ares_gethostbyaddr.c +287 -0
  2259. data/third_party/cares/cares/src/lib/ares_gethostbyname.c +534 -0
  2260. data/third_party/cares/cares/src/lib/ares_getnameinfo.c +447 -0
  2261. data/third_party/cares/cares/src/lib/ares_init.c +2654 -0
  2262. data/third_party/cares/cares/src/lib/ares_ipv6.h +85 -0
  2263. data/third_party/cares/cares/src/lib/ares_library_init.c +200 -0
  2264. data/third_party/cares/cares/src/lib/ares_library_init.h +43 -0
  2265. data/third_party/cares/cares/src/lib/ares_nameser.h +482 -0
  2266. data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +209 -0
  2267. data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +212 -0
  2268. data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +199 -0
  2269. data/third_party/cares/cares/src/lib/ares_parse_mx_reply.c +164 -0
  2270. data/third_party/cares/cares/src/lib/ares_parse_naptr_reply.c +183 -0
  2271. data/third_party/cares/cares/src/lib/ares_parse_ns_reply.c +177 -0
  2272. data/third_party/cares/cares/src/lib/ares_parse_ptr_reply.c +228 -0
  2273. data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +179 -0
  2274. data/third_party/cares/cares/src/lib/ares_parse_srv_reply.c +168 -0
  2275. data/third_party/cares/cares/src/lib/ares_parse_txt_reply.c +214 -0
  2276. data/third_party/cares/cares/src/lib/ares_private.h +423 -0
  2277. data/third_party/cares/cares/src/lib/ares_process.c +1548 -0
  2278. data/third_party/cares/cares/src/lib/ares_query.c +180 -0
  2279. data/third_party/cares/cares/src/lib/ares_search.c +321 -0
  2280. data/third_party/cares/cares/src/lib/ares_send.c +131 -0
  2281. data/third_party/cares/cares/src/lib/ares_setup.h +220 -0
  2282. data/third_party/cares/cares/src/lib/ares_strsplit.c +178 -0
  2283. data/third_party/cares/cares/src/lib/ares_writev.h +36 -0
  2284. data/third_party/cares/cares/src/lib/config-dos.h +115 -0
  2285. data/third_party/cares/cares/src/lib/inet_net_pton.c +444 -0
  2286. data/third_party/cares/cares/src/lib/inet_ntop.c +201 -0
  2287. data/third_party/re2/re2/bitstate.cc +3 -3
  2288. data/third_party/re2/re2/compile.cc +91 -109
  2289. data/third_party/re2/re2/dfa.cc +40 -52
  2290. data/third_party/re2/re2/filtered_re2.cc +18 -2
  2291. data/third_party/re2/re2/filtered_re2.h +10 -5
  2292. data/third_party/re2/re2/nfa.cc +5 -5
  2293. data/third_party/re2/re2/onepass.cc +2 -2
  2294. data/third_party/re2/re2/parse.cc +42 -23
  2295. data/third_party/re2/re2/perl_groups.cc +34 -34
  2296. data/third_party/re2/re2/prefilter.cc +3 -2
  2297. data/third_party/re2/re2/prefilter_tree.cc +27 -59
  2298. data/third_party/re2/re2/prefilter_tree.h +3 -2
  2299. data/third_party/re2/re2/prog.cc +193 -6
  2300. data/third_party/re2/re2/prog.h +45 -14
  2301. data/third_party/re2/re2/re2.cc +93 -129
  2302. data/third_party/re2/re2/re2.h +156 -141
  2303. data/third_party/re2/re2/regexp.cc +13 -7
  2304. data/third_party/re2/re2/regexp.h +8 -2
  2305. data/third_party/re2/re2/set.cc +31 -9
  2306. data/third_party/re2/re2/set.h +9 -4
  2307. data/third_party/re2/re2/simplify.cc +11 -3
  2308. data/third_party/re2/re2/stringpiece.h +10 -7
  2309. data/third_party/re2/re2/tostring.cc +1 -1
  2310. data/third_party/re2/re2/unicode_casefold.cc +25 -11
  2311. data/third_party/re2/re2/unicode_groups.cc +319 -151
  2312. data/third_party/re2/re2/walker-inl.h +4 -3
  2313. data/third_party/re2/util/mutex.h +6 -6
  2314. data/third_party/re2/util/pcre.h +3 -3
  2315. data/third_party/upb/third_party/utf8_range/naive.c +92 -0
  2316. data/third_party/upb/third_party/utf8_range/range2-neon.c +157 -0
  2317. data/third_party/upb/third_party/utf8_range/range2-sse.c +170 -0
  2318. data/third_party/upb/third_party/utf8_range/utf8_range.h +9 -0
  2319. data/third_party/upb/upb/arena.c +277 -0
  2320. data/third_party/upb/upb/arena.h +225 -0
  2321. data/third_party/upb/upb/array.c +114 -0
  2322. data/third_party/upb/upb/array.h +83 -0
  2323. data/third_party/upb/upb/collections.h +36 -0
  2324. data/third_party/upb/upb/decode.c +979 -379
  2325. data/third_party/upb/upb/decode.h +80 -6
  2326. data/third_party/upb/upb/decode_fast.c +1055 -0
  2327. data/third_party/upb/upb/decode_fast.h +153 -0
  2328. data/third_party/upb/upb/def.c +3269 -0
  2329. data/third_party/upb/upb/def.h +416 -0
  2330. data/third_party/upb/upb/def.hpp +441 -0
  2331. data/third_party/upb/upb/encode.c +439 -246
  2332. data/third_party/upb/upb/encode.h +66 -6
  2333. data/third_party/upb/upb/extension_registry.c +93 -0
  2334. data/third_party/upb/upb/extension_registry.h +84 -0
  2335. data/third_party/upb/upb/internal/decode.h +211 -0
  2336. data/third_party/upb/upb/internal/table.h +385 -0
  2337. data/third_party/upb/upb/internal/upb.h +68 -0
  2338. data/third_party/upb/upb/internal/vsnprintf_compat.h +52 -0
  2339. data/third_party/upb/upb/json_decode.c +1512 -0
  2340. data/third_party/upb/upb/json_decode.h +47 -0
  2341. data/third_party/upb/upb/json_encode.c +780 -0
  2342. data/third_party/upb/upb/json_encode.h +65 -0
  2343. data/third_party/upb/upb/map.c +108 -0
  2344. data/third_party/upb/upb/map.h +117 -0
  2345. data/third_party/upb/upb/message_value.h +66 -0
  2346. data/third_party/upb/upb/mini_table.c +1147 -0
  2347. data/third_party/upb/upb/mini_table.h +189 -0
  2348. data/third_party/upb/upb/mini_table.hpp +112 -0
  2349. data/third_party/upb/upb/msg.c +291 -100
  2350. data/third_party/upb/upb/msg.h +48 -450
  2351. data/third_party/upb/upb/msg_internal.h +837 -0
  2352. data/third_party/upb/upb/port_def.inc +166 -83
  2353. data/third_party/upb/upb/port_undef.inc +43 -8
  2354. data/third_party/upb/upb/reflection.c +323 -0
  2355. data/third_party/upb/upb/reflection.h +110 -0
  2356. data/third_party/upb/upb/reflection.hpp +37 -0
  2357. data/third_party/upb/upb/status.c +86 -0
  2358. data/third_party/upb/upb/status.h +66 -0
  2359. data/third_party/upb/upb/table.c +422 -376
  2360. data/third_party/upb/upb/table_internal.h +36 -0
  2361. data/third_party/upb/upb/text_encode.c +473 -0
  2362. data/third_party/upb/upb/text_encode.h +64 -0
  2363. data/third_party/upb/upb/upb.c +56 -267
  2364. data/third_party/upb/upb/upb.h +115 -239
  2365. data/third_party/upb/upb/upb.hpp +51 -24
  2366. data/third_party/xxhash/xxhash.h +5580 -0
  2367. data/third_party/zlib/compress.c +3 -3
  2368. data/third_party/zlib/crc32.c +975 -292
  2369. data/third_party/zlib/crc32.h +9441 -436
  2370. data/third_party/zlib/deflate.c +183 -129
  2371. data/third_party/zlib/deflate.h +12 -15
  2372. data/third_party/zlib/gzguts.h +3 -2
  2373. data/third_party/zlib/gzlib.c +6 -4
  2374. data/third_party/zlib/gzread.c +8 -12
  2375. data/third_party/zlib/gzwrite.c +26 -14
  2376. data/third_party/zlib/infback.c +12 -8
  2377. data/third_party/zlib/inffast.c +14 -14
  2378. data/third_party/zlib/inflate.c +44 -10
  2379. data/third_party/zlib/inflate.h +3 -2
  2380. data/third_party/zlib/inftrees.c +3 -3
  2381. data/third_party/zlib/inftrees.h +1 -1
  2382. data/third_party/zlib/trees.c +85 -107
  2383. data/third_party/zlib/uncompr.c +2 -2
  2384. data/third_party/zlib/zconf.h +16 -3
  2385. data/third_party/zlib/zlib.h +129 -106
  2386. data/third_party/zlib/zutil.c +11 -9
  2387. data/third_party/zlib/zutil.h +13 -9
  2388. metadata +1180 -323
  2389. data/include/grpc/impl/codegen/gpr_slice.h +0 -69
  2390. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +0 -389
  2391. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +0 -34
  2392. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +0 -45
  2393. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +0 -85
  2394. data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +0 -946
  2395. data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +0 -537
  2396. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +0 -32
  2397. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +0 -1141
  2398. data/src/core/ext/filters/client_channel/lb_policy.cc +0 -138
  2399. data/src/core/ext/filters/client_channel/lb_policy.h +0 -425
  2400. data/src/core/ext/filters/client_channel/lb_policy_factory.h +0 -47
  2401. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +0 -181
  2402. data/src/core/ext/filters/client_channel/lb_policy_registry.h +0 -65
  2403. data/src/core/ext/filters/client_channel/proxy_mapper.h +0 -54
  2404. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +0 -89
  2405. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +0 -50
  2406. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -485
  2407. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +0 -179
  2408. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +0 -68
  2409. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +0 -38
  2410. data/src/core/ext/filters/client_channel/resolver.cc +0 -85
  2411. data/src/core/ext/filters/client_channel/resolver.h +0 -144
  2412. data/src/core/ext/filters/client_channel/resolver_factory.h +0 -73
  2413. data/src/core/ext/filters/client_channel/resolver_registry.cc +0 -196
  2414. data/src/core/ext/filters/client_channel/resolver_registry.h +0 -89
  2415. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +0 -442
  2416. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +0 -126
  2417. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +0 -354
  2418. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -142
  2419. data/src/core/ext/filters/client_channel/server_address.cc +0 -81
  2420. data/src/core/ext/filters/client_channel/server_address.h +0 -128
  2421. data/src/core/ext/filters/client_channel/service_config.cc +0 -221
  2422. data/src/core/ext/filters/client_channel/service_config.h +0 -123
  2423. data/src/core/ext/filters/client_channel/service_config_call_data.h +0 -68
  2424. data/src/core/ext/filters/client_channel/service_config_parser.cc +0 -87
  2425. data/src/core/ext/filters/client_channel/service_config_parser.h +0 -89
  2426. data/src/core/ext/filters/client_channel/subchannel_interface.h +0 -94
  2427. data/src/core/ext/filters/client_idle/client_idle_filter.cc +0 -440
  2428. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +0 -546
  2429. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -53
  2430. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +0 -399
  2431. data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +0 -31
  2432. data/src/core/ext/filters/max_age/max_age_filter.cc +0 -557
  2433. data/src/core/ext/filters/max_age/max_age_filter.h +0 -26
  2434. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +0 -210
  2435. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +0 -27
  2436. data/src/core/ext/filters/workarounds/workaround_utils.cc +0 -53
  2437. data/src/core/ext/filters/workarounds/workaround_utils.h +0 -39
  2438. data/src/core/ext/transport/chttp2/client/authority.cc +0 -42
  2439. data/src/core/ext/transport/chttp2/client/authority.h +0 -36
  2440. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +0 -112
  2441. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +0 -79
  2442. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +0 -200
  2443. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -45
  2444. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +0 -69
  2445. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +0 -86
  2446. data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +0 -37
  2447. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +0 -242
  2448. data/src/core/ext/transport/chttp2/transport/hpack_table.h +0 -148
  2449. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +0 -66
  2450. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +0 -58
  2451. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +0 -27
  2452. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +0 -49
  2453. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -30
  2454. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +0 -49
  2455. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -30
  2456. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +0 -49
  2457. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -29
  2458. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +0 -49
  2459. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +0 -27
  2460. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +0 -49
  2461. data/src/core/ext/upb-generated/gogoproto/gogo.upb.c +0 -17
  2462. data/src/core/ext/upb-generated/gogoproto/gogo.upb.h +0 -29
  2463. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +0 -58
  2464. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +0 -117
  2465. data/src/core/ext/xds/xds_channel.h +0 -46
  2466. data/src/core/ext/xds/xds_channel_secure.cc +0 -103
  2467. data/src/core/lib/avl/avl.cc +0 -306
  2468. data/src/core/lib/channel/handshaker.cc +0 -262
  2469. data/src/core/lib/channel/handshaker.h +0 -179
  2470. data/src/core/lib/channel/handshaker_factory.h +0 -42
  2471. data/src/core/lib/channel/handshaker_registry.cc +0 -105
  2472. data/src/core/lib/channel/handshaker_registry.h +0 -54
  2473. data/src/core/lib/compression/algorithm_metadata.h +0 -61
  2474. data/src/core/lib/compression/compression_args.cc +0 -134
  2475. data/src/core/lib/compression/compression_args.h +0 -56
  2476. data/src/core/lib/compression/stream_compression.cc +0 -80
  2477. data/src/core/lib/compression/stream_compression.h +0 -116
  2478. data/src/core/lib/compression/stream_compression_gzip.cc +0 -230
  2479. data/src/core/lib/compression/stream_compression_gzip.h +0 -28
  2480. data/src/core/lib/compression/stream_compression_identity.cc +0 -92
  2481. data/src/core/lib/compression/stream_compression_identity.h +0 -29
  2482. data/src/core/lib/gpr/arena.h +0 -47
  2483. data/src/core/lib/gpr/env.h +0 -40
  2484. data/src/core/lib/gpr/env_linux.cc +0 -76
  2485. data/src/core/lib/gpr/env_posix.cc +0 -47
  2486. data/src/core/lib/gpr/env_windows.cc +0 -74
  2487. data/src/core/lib/gpr/murmur_hash.cc +0 -80
  2488. data/src/core/lib/gpr/murmur_hash.h +0 -29
  2489. data/src/core/lib/gpr/string_windows.h +0 -32
  2490. data/src/core/lib/gpr/tls.h +0 -68
  2491. data/src/core/lib/gpr/tls_gcc.h +0 -52
  2492. data/src/core/lib/gpr/tls_msvc.h +0 -52
  2493. data/src/core/lib/gpr/tls_pthread.cc +0 -30
  2494. data/src/core/lib/gpr/tls_pthread.h +0 -56
  2495. data/src/core/lib/gprpp/arena.cc +0 -103
  2496. data/src/core/lib/gprpp/arena.h +0 -120
  2497. data/src/core/lib/gprpp/atomic.h +0 -104
  2498. data/src/core/lib/gprpp/map.h +0 -53
  2499. data/src/core/lib/iomgr/endpoint_pair_uv.cc +0 -40
  2500. data/src/core/lib/iomgr/error_internal.h +0 -61
  2501. data/src/core/lib/iomgr/ev_epollex_linux.cc +0 -1650
  2502. data/src/core/lib/iomgr/ev_epollex_linux.h +0 -30
  2503. data/src/core/lib/iomgr/executor/mpmcqueue.cc +0 -183
  2504. data/src/core/lib/iomgr/executor/mpmcqueue.h +0 -175
  2505. data/src/core/lib/iomgr/executor/threadpool.cc +0 -137
  2506. data/src/core/lib/iomgr/executor/threadpool.h +0 -149
  2507. data/src/core/lib/iomgr/iomgr_custom.cc +0 -79
  2508. data/src/core/lib/iomgr/iomgr_custom.h +0 -49
  2509. data/src/core/lib/iomgr/iomgr_posix.h +0 -26
  2510. data/src/core/lib/iomgr/iomgr_uv.cc +0 -43
  2511. data/src/core/lib/iomgr/is_epollexclusive_available.cc +0 -119
  2512. data/src/core/lib/iomgr/is_epollexclusive_available.h +0 -36
  2513. data/src/core/lib/iomgr/parse_address.cc +0 -238
  2514. data/src/core/lib/iomgr/parse_address.h +0 -53
  2515. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -87
  2516. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
  2517. data/src/core/lib/iomgr/pollset_custom.cc +0 -106
  2518. data/src/core/lib/iomgr/pollset_custom.h +0 -35
  2519. data/src/core/lib/iomgr/pollset_set_custom.cc +0 -48
  2520. data/src/core/lib/iomgr/pollset_set_custom.h +0 -26
  2521. data/src/core/lib/iomgr/pollset_uv.cc +0 -93
  2522. data/src/core/lib/iomgr/pollset_uv.h +0 -32
  2523. data/src/core/lib/iomgr/resolve_address_custom.cc +0 -168
  2524. data/src/core/lib/iomgr/resolve_address_custom.h +0 -45
  2525. data/src/core/lib/iomgr/resource_quota.cc +0 -1016
  2526. data/src/core/lib/iomgr/resource_quota.h +0 -177
  2527. data/src/core/lib/iomgr/sockaddr_custom.h +0 -54
  2528. data/src/core/lib/iomgr/sockaddr_utils.cc +0 -296
  2529. data/src/core/lib/iomgr/sockaddr_utils.h +0 -80
  2530. data/src/core/lib/iomgr/socket_utils_uv.cc +0 -49
  2531. data/src/core/lib/iomgr/sys_epoll_wrapper.h +0 -30
  2532. data/src/core/lib/iomgr/tcp_client_custom.cc +0 -160
  2533. data/src/core/lib/iomgr/tcp_custom.cc +0 -386
  2534. data/src/core/lib/iomgr/tcp_custom.h +0 -84
  2535. data/src/core/lib/iomgr/tcp_server_custom.cc +0 -477
  2536. data/src/core/lib/iomgr/tcp_uv.cc +0 -419
  2537. data/src/core/lib/iomgr/time_averaged_stats.cc +0 -64
  2538. data/src/core/lib/iomgr/time_averaged_stats.h +0 -72
  2539. data/src/core/lib/iomgr/timer_custom.cc +0 -95
  2540. data/src/core/lib/iomgr/timer_custom.h +0 -43
  2541. data/src/core/lib/iomgr/timer_uv.cc +0 -66
  2542. data/src/core/lib/iomgr/udp_server.cc +0 -748
  2543. data/src/core/lib/iomgr/udp_server.h +0 -104
  2544. data/src/core/lib/iomgr/work_serializer.cc +0 -155
  2545. data/src/core/lib/iomgr/work_serializer.h +0 -65
  2546. data/src/core/lib/profiling/basic_timers.cc +0 -293
  2547. data/src/core/lib/profiling/stap_timers.cc +0 -50
  2548. data/src/core/lib/profiling/timers.h +0 -94
  2549. data/src/core/lib/security/authorization/authorization_engine.cc +0 -177
  2550. data/src/core/lib/security/authorization/mock_cel/activation.h +0 -57
  2551. data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +0 -42
  2552. data/src/core/lib/security/authorization/mock_cel/cel_expression.h +0 -68
  2553. data/src/core/lib/security/authorization/mock_cel/cel_value.h +0 -93
  2554. data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +0 -67
  2555. data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +0 -56
  2556. data/src/core/lib/security/authorization/mock_cel/statusor.h +0 -50
  2557. data/src/core/lib/security/credentials/credentials_metadata.cc +0 -62
  2558. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +0 -171
  2559. data/src/core/lib/security/security_connector/load_system_roots_linux.h +0 -44
  2560. data/src/core/lib/slice/slice_intern.cc +0 -375
  2561. data/src/core/lib/slice/slice_utils.h +0 -200
  2562. data/src/core/lib/surface/init_secure.cc +0 -81
  2563. data/src/core/lib/transport/authority_override.cc +0 -38
  2564. data/src/core/lib/transport/authority_override.h +0 -32
  2565. data/src/core/lib/transport/byte_stream.cc +0 -158
  2566. data/src/core/lib/transport/byte_stream.h +0 -165
  2567. data/src/core/lib/transport/metadata.cc +0 -679
  2568. data/src/core/lib/transport/metadata.h +0 -446
  2569. data/src/core/lib/transport/static_metadata.cc +0 -1249
  2570. data/src/core/lib/transport/static_metadata.h +0 -604
  2571. data/src/core/lib/transport/status_metadata.cc +0 -61
  2572. data/src/core/lib/transport/status_metadata.h +0 -48
  2573. data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +0 -129
  2574. data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -218
  2575. data/third_party/abseil-cpp/absl/base/internal/exponential_biased.cc +0 -93
  2576. data/third_party/abseil-cpp/absl/base/internal/exponential_biased.h +0 -130
  2577. data/third_party/abseil-cpp/absl/container/internal/have_sse.h +0 -49
  2578. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -261
  2579. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +0 -104
  2580. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +0 -93
  2581. data/third_party/boringssl-with-bazel/src/crypto/dh/dh.c +0 -533
  2582. data/third_party/boringssl-with-bazel/src/crypto/dh/params.c +0 -93
  2583. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
  2584. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -192
  2585. data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +0 -653
  2586. data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
  2587. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_r2x.c +0 -116
  2588. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +0 -217
  2589. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pku.c +0 -110
  2590. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_sxnet.c +0 -274
  2591. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +0 -3895
  2592. data/third_party/cares/cares/ares.h +0 -670
  2593. data/third_party/cares/cares/ares__close_sockets.c +0 -61
  2594. data/third_party/cares/cares/ares__get_hostent.c +0 -261
  2595. data/third_party/cares/cares/ares_create_query.c +0 -206
  2596. data/third_party/cares/cares/ares_data.c +0 -222
  2597. data/third_party/cares/cares/ares_data.h +0 -72
  2598. data/third_party/cares/cares/ares_dns.h +0 -103
  2599. data/third_party/cares/cares/ares_expand_name.c +0 -209
  2600. data/third_party/cares/cares/ares_expand_string.c +0 -70
  2601. data/third_party/cares/cares/ares_free_hostent.c +0 -41
  2602. data/third_party/cares/cares/ares_getenv.c +0 -30
  2603. data/third_party/cares/cares/ares_gethostbyaddr.c +0 -294
  2604. data/third_party/cares/cares/ares_gethostbyname.c +0 -529
  2605. data/third_party/cares/cares/ares_getnameinfo.c +0 -453
  2606. data/third_party/cares/cares/ares_getopt.c +0 -122
  2607. data/third_party/cares/cares/ares_getopt.h +0 -53
  2608. data/third_party/cares/cares/ares_init.c +0 -2615
  2609. data/third_party/cares/cares/ares_ipv6.h +0 -78
  2610. data/third_party/cares/cares/ares_library_init.c +0 -195
  2611. data/third_party/cares/cares/ares_library_init.h +0 -43
  2612. data/third_party/cares/cares/ares_parse_a_reply.c +0 -264
  2613. data/third_party/cares/cares/ares_parse_aaaa_reply.c +0 -264
  2614. data/third_party/cares/cares/ares_parse_mx_reply.c +0 -170
  2615. data/third_party/cares/cares/ares_parse_naptr_reply.c +0 -194
  2616. data/third_party/cares/cares/ares_parse_ns_reply.c +0 -183
  2617. data/third_party/cares/cares/ares_parse_ptr_reply.c +0 -221
  2618. data/third_party/cares/cares/ares_parse_soa_reply.c +0 -133
  2619. data/third_party/cares/cares/ares_parse_srv_reply.c +0 -179
  2620. data/third_party/cares/cares/ares_parse_txt_reply.c +0 -220
  2621. data/third_party/cares/cares/ares_private.h +0 -382
  2622. data/third_party/cares/cares/ares_process.c +0 -1473
  2623. data/third_party/cares/cares/ares_query.c +0 -186
  2624. data/third_party/cares/cares/ares_search.c +0 -323
  2625. data/third_party/cares/cares/ares_send.c +0 -137
  2626. data/third_party/cares/cares/ares_setup.h +0 -217
  2627. data/third_party/cares/cares/ares_strsplit.c +0 -174
  2628. data/third_party/cares/cares/ares_version.h +0 -24
  2629. data/third_party/cares/cares/inet_net_pton.c +0 -450
  2630. data/third_party/cares/cares/inet_ntop.c +0 -207
  2631. data/third_party/upb/upb/port.c +0 -26
  2632. data/third_party/upb/upb/table.int.h +0 -466
  2633. /data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/charmap.h +0 -0
  2634. /data/third_party/boringssl-with-bazel/src/crypto/{dh → dh_extra}/dh_asn1.c +0 -0
  2635. /data/third_party/boringssl-with-bazel/src/crypto/{dh → fipsmodule/dh}/check.c +0 -0
  2636. /data/third_party/cares/cares/{ares_rules.h → include/ares_rules.h} +0 -0
  2637. /data/third_party/cares/cares/{ares__read_line.c → src/lib/ares__read_line.c} +0 -0
  2638. /data/third_party/cares/cares/{ares__timeval.c → src/lib/ares__timeval.c} +0 -0
  2639. /data/third_party/cares/cares/{ares_cancel.c → src/lib/ares_cancel.c} +0 -0
  2640. /data/third_party/cares/cares/{ares_destroy.c → src/lib/ares_destroy.c} +0 -0
  2641. /data/third_party/cares/cares/{ares_fds.c → src/lib/ares_fds.c} +0 -0
  2642. /data/third_party/cares/cares/{ares_free_string.c → src/lib/ares_free_string.c} +0 -0
  2643. /data/third_party/cares/cares/{ares_getenv.h → src/lib/ares_getenv.h} +0 -0
  2644. /data/third_party/cares/cares/{ares_getsock.c → src/lib/ares_getsock.c} +0 -0
  2645. /data/third_party/cares/cares/{ares_inet_net_pton.h → src/lib/ares_inet_net_pton.h} +0 -0
  2646. /data/third_party/cares/cares/{ares_iphlpapi.h → src/lib/ares_iphlpapi.h} +0 -0
  2647. /data/third_party/cares/cares/{ares_llist.c → src/lib/ares_llist.c} +0 -0
  2648. /data/third_party/cares/cares/{ares_llist.h → src/lib/ares_llist.h} +0 -0
  2649. /data/third_party/cares/cares/{ares_mkquery.c → src/lib/ares_mkquery.c} +0 -0
  2650. /data/third_party/cares/cares/{ares_nowarn.c → src/lib/ares_nowarn.c} +0 -0
  2651. /data/third_party/cares/cares/{ares_nowarn.h → src/lib/ares_nowarn.h} +0 -0
  2652. /data/third_party/cares/cares/{ares_options.c → src/lib/ares_options.c} +0 -0
  2653. /data/third_party/cares/cares/{ares_platform.c → src/lib/ares_platform.c} +0 -0
  2654. /data/third_party/cares/cares/{ares_platform.h → src/lib/ares_platform.h} +0 -0
  2655. /data/third_party/cares/cares/{ares_strcasecmp.c → src/lib/ares_strcasecmp.c} +0 -0
  2656. /data/third_party/cares/cares/{ares_strcasecmp.h → src/lib/ares_strcasecmp.h} +0 -0
  2657. /data/third_party/cares/cares/{ares_strdup.c → src/lib/ares_strdup.c} +0 -0
  2658. /data/third_party/cares/cares/{ares_strdup.h → src/lib/ares_strdup.h} +0 -0
  2659. /data/third_party/cares/cares/{ares_strerror.c → src/lib/ares_strerror.c} +0 -0
  2660. /data/third_party/cares/cares/{ares_strsplit.h → src/lib/ares_strsplit.h} +0 -0
  2661. /data/third_party/cares/cares/{ares_timeout.c → src/lib/ares_timeout.c} +0 -0
  2662. /data/third_party/cares/cares/{ares_version.c → src/lib/ares_version.c} +0 -0
  2663. /data/third_party/cares/cares/{ares_writev.c → src/lib/ares_writev.c} +0 -0
  2664. /data/third_party/cares/cares/{bitncmp.c → src/lib/bitncmp.c} +0 -0
  2665. /data/third_party/cares/cares/{bitncmp.h → src/lib/bitncmp.h} +0 -0
  2666. /data/third_party/cares/cares/{config-win32.h → src/lib/config-win32.h} +0 -0
  2667. /data/third_party/cares/cares/{setup_once.h → src/lib/setup_once.h} +0 -0
  2668. /data/third_party/cares/cares/{windows_port.c → src/lib/windows_port.c} +0 -0
@@ -82,7 +82,7 @@
82
82
  #include <openssl/thread.h>
83
83
  #include <time.h>
84
84
 
85
- #ifdef __cplusplus
85
+ #if defined(__cplusplus)
86
86
  extern "C" {
87
87
  #endif
88
88
 
@@ -110,148 +110,36 @@ extern "C" {
110
110
  #define X509v3_KU_DECIPHER_ONLY 0x8000
111
111
  #define X509v3_KU_UNDEF 0xffff
112
112
 
113
- DEFINE_STACK_OF(X509_ALGOR)
114
- DECLARE_ASN1_SET_OF(X509_ALGOR)
115
-
116
- typedef STACK_OF(X509_ALGOR) X509_ALGORS;
113
+ struct X509_algor_st {
114
+ ASN1_OBJECT *algorithm;
115
+ ASN1_TYPE *parameter;
116
+ } /* X509_ALGOR */;
117
117
 
118
- struct X509_val_st {
119
- ASN1_TIME *notBefore;
120
- ASN1_TIME *notAfter;
121
- } /* X509_VAL */;
118
+ DECLARE_ASN1_FUNCTIONS(X509_ALGOR)
122
119
 
123
- struct X509_pubkey_st {
124
- X509_ALGOR *algor;
125
- ASN1_BIT_STRING *public_key;
126
- EVP_PKEY *pkey;
127
- };
128
-
129
- struct X509_sig_st {
130
- X509_ALGOR *algor;
131
- ASN1_OCTET_STRING *digest;
132
- } /* X509_SIG */;
120
+ DEFINE_STACK_OF(X509_ALGOR)
133
121
 
134
- struct X509_name_entry_st {
135
- ASN1_OBJECT *object;
136
- ASN1_STRING *value;
137
- int set;
138
- int size; // temp variable
139
- } /* X509_NAME_ENTRY */;
122
+ typedef STACK_OF(X509_ALGOR) X509_ALGORS;
140
123
 
141
124
  DEFINE_STACK_OF(X509_NAME_ENTRY)
142
- DECLARE_ASN1_SET_OF(X509_NAME_ENTRY)
143
-
144
- // we always keep X509_NAMEs in 2 forms.
145
- struct X509_name_st {
146
- STACK_OF(X509_NAME_ENTRY) * entries;
147
- int modified; // true if 'bytes' needs to be built
148
- BUF_MEM *bytes;
149
- // unsigned long hash; Keep the hash around for lookups
150
- unsigned char *canon_enc;
151
- int canon_enclen;
152
- } /* X509_NAME */;
153
125
 
154
126
  DEFINE_STACK_OF(X509_NAME)
155
127
 
156
- struct X509_extension_st {
157
- ASN1_OBJECT *object;
158
- ASN1_BOOLEAN critical;
159
- ASN1_OCTET_STRING *value;
160
- } /* X509_EXTENSION */;
161
-
162
128
  typedef STACK_OF(X509_EXTENSION) X509_EXTENSIONS;
163
129
 
164
130
  DEFINE_STACK_OF(X509_EXTENSION)
165
- DECLARE_ASN1_SET_OF(X509_EXTENSION)
166
-
167
- // a sequence of these are used
168
- struct x509_attributes_st {
169
- ASN1_OBJECT *object;
170
- int single; // 0 for a set, 1 for a single item (which is wrong)
171
- union {
172
- char *ptr;
173
- /* 0 */ STACK_OF(ASN1_TYPE) * set;
174
- /* 1 */ ASN1_TYPE *single;
175
- } value;
176
- } /* X509_ATTRIBUTE */;
177
131
 
178
132
  DEFINE_STACK_OF(X509_ATTRIBUTE)
179
- DECLARE_ASN1_SET_OF(X509_ATTRIBUTE)
180
-
181
-
182
- struct X509_req_info_st {
183
- ASN1_ENCODING enc;
184
- ASN1_INTEGER *version;
185
- X509_NAME *subject;
186
- X509_PUBKEY *pubkey;
187
- // d=2 hl=2 l= 0 cons: cont: 00
188
- STACK_OF(X509_ATTRIBUTE) * attributes; // [ 0 ]
189
- } /* X509_REQ_INFO */;
190
-
191
- struct X509_req_st {
192
- X509_REQ_INFO *req_info;
193
- X509_ALGOR *sig_alg;
194
- ASN1_BIT_STRING *signature;
195
- CRYPTO_refcount_t references;
196
- } /* X509_REQ */;
197
-
198
- struct x509_cinf_st {
199
- ASN1_INTEGER *version; // [ 0 ] default of v1
200
- ASN1_INTEGER *serialNumber;
201
- X509_ALGOR *signature;
202
- X509_NAME *issuer;
203
- X509_VAL *validity;
204
- X509_NAME *subject;
205
- X509_PUBKEY *key;
206
- ASN1_BIT_STRING *issuerUID; // [ 1 ] optional in v2
207
- ASN1_BIT_STRING *subjectUID; // [ 2 ] optional in v2
208
- STACK_OF(X509_EXTENSION) * extensions; // [ 3 ] optional in v3
209
- ASN1_ENCODING enc;
210
- } /* X509_CINF */;
211
133
 
212
134
  // This stuff is certificate "auxiliary info"
213
135
  // it contains details which are useful in certificate
214
136
  // stores and databases. When used this is tagged onto
215
137
  // the end of the certificate itself
216
138
 
217
- struct x509_cert_aux_st {
218
- STACK_OF(ASN1_OBJECT) * trust; // trusted uses
219
- STACK_OF(ASN1_OBJECT) * reject; // rejected uses
220
- ASN1_UTF8STRING *alias; // "friendly name"
221
- ASN1_OCTET_STRING *keyid; // key id of private key
222
- STACK_OF(X509_ALGOR) * other; // other unspecified info
223
- } /* X509_CERT_AUX */;
224
-
225
139
  DECLARE_STACK_OF(DIST_POINT)
226
140
  DECLARE_STACK_OF(GENERAL_NAME)
227
141
 
228
- struct x509_st {
229
- X509_CINF *cert_info;
230
- X509_ALGOR *sig_alg;
231
- ASN1_BIT_STRING *signature;
232
- CRYPTO_refcount_t references;
233
- CRYPTO_EX_DATA ex_data;
234
- // These contain copies of various extension values
235
- long ex_pathlen;
236
- long ex_pcpathlen;
237
- unsigned long ex_flags;
238
- unsigned long ex_kusage;
239
- unsigned long ex_xkusage;
240
- unsigned long ex_nscert;
241
- ASN1_OCTET_STRING *skid;
242
- AUTHORITY_KEYID *akid;
243
- X509_POLICY_CACHE *policy_cache;
244
- STACK_OF(DIST_POINT) * crldp;
245
- STACK_OF(GENERAL_NAME) * altname;
246
- NAME_CONSTRAINTS *nc;
247
- unsigned char sha1_hash[SHA_DIGEST_LENGTH];
248
- X509_CERT_AUX *aux;
249
- CRYPTO_BUFFER *buf;
250
- CRYPTO_MUTEX lock;
251
- } /* X509 */;
252
-
253
142
  DEFINE_STACK_OF(X509)
254
- DECLARE_ASN1_SET_OF(X509)
255
143
 
256
144
  // This is used for a table of trust checking functions
257
145
 
@@ -318,7 +206,7 @@ DEFINE_STACK_OF(X509_TRUST)
318
206
  #define XN_FLAG_SEP_MASK (0xf << 16)
319
207
 
320
208
  #define XN_FLAG_COMPAT 0 // Traditional SSLeay: use old X509_NAME_print
321
- #define XN_FLAG_SEP_COMMA_PLUS (1 << 16) // RFC2253 ,+
209
+ #define XN_FLAG_SEP_COMMA_PLUS (1 << 16) // RFC 2253 ,+
322
210
  #define XN_FLAG_SEP_CPLUS_SPC (2 << 16) // ,+ spaced: more readable
323
211
  #define XN_FLAG_SEP_SPLUS_SPC (3 << 16) // ;+ spaced
324
212
  #define XN_FLAG_SEP_MULTILINE (4 << 16) // One line per field
@@ -337,13 +225,13 @@ DEFINE_STACK_OF(X509_TRUST)
337
225
  #define XN_FLAG_SPC_EQ (1 << 23) // Put spaces round '='
338
226
 
339
227
  // This determines if we dump fields we don't recognise:
340
- // RFC2253 requires this.
228
+ // RFC 2253 requires this.
341
229
 
342
230
  #define XN_FLAG_DUMP_UNKNOWN_FIELDS (1 << 24)
343
231
 
344
232
  #define XN_FLAG_FN_ALIGN (1 << 25) // Align field names to 20 characters
345
233
 
346
- // Complete set of RFC2253 flags
234
+ // Complete set of RFC 2253 flags
347
235
 
348
236
  #define XN_FLAG_RFC2253 \
349
237
  (ASN1_STRFLGS_RFC2253 | XN_FLAG_SEP_COMMA_PLUS | XN_FLAG_DN_REV | \
@@ -364,54 +252,19 @@ DEFINE_STACK_OF(X509_TRUST)
364
252
  struct x509_revoked_st {
365
253
  ASN1_INTEGER *serialNumber;
366
254
  ASN1_TIME *revocationDate;
367
- STACK_OF(X509_EXTENSION) /* optional */ * extensions;
255
+ STACK_OF(X509_EXTENSION) /* optional */ *extensions;
368
256
  // Set up if indirect CRL
369
- STACK_OF(GENERAL_NAME) * issuer;
257
+ STACK_OF(GENERAL_NAME) *issuer;
370
258
  // Revocation reason
371
259
  int reason;
372
260
  int sequence; // load sequence
373
261
  };
374
262
 
375
263
  DEFINE_STACK_OF(X509_REVOKED)
376
- DECLARE_ASN1_SET_OF(X509_REVOKED)
377
-
378
- struct X509_crl_info_st {
379
- ASN1_INTEGER *version;
380
- X509_ALGOR *sig_alg;
381
- X509_NAME *issuer;
382
- ASN1_TIME *lastUpdate;
383
- ASN1_TIME *nextUpdate;
384
- STACK_OF(X509_REVOKED) * revoked;
385
- STACK_OF(X509_EXTENSION) /* [0] */ * extensions;
386
- ASN1_ENCODING enc;
387
- } /* X509_CRL_INFO */;
388
264
 
389
265
  DECLARE_STACK_OF(GENERAL_NAMES)
390
266
 
391
- struct X509_crl_st {
392
- // actual signature
393
- X509_CRL_INFO *crl;
394
- X509_ALGOR *sig_alg;
395
- ASN1_BIT_STRING *signature;
396
- CRYPTO_refcount_t references;
397
- int flags;
398
- // Copies of various extensions
399
- AUTHORITY_KEYID *akid;
400
- ISSUING_DIST_POINT *idp;
401
- // Convenient breakdown of IDP
402
- int idp_flags;
403
- int idp_reasons;
404
- // CRL and base CRL numbers for delta processing
405
- ASN1_INTEGER *crl_number;
406
- ASN1_INTEGER *base_crl_number;
407
- unsigned char sha1_hash[SHA_DIGEST_LENGTH];
408
- STACK_OF(GENERAL_NAMES) * issuers;
409
- const X509_CRL_METHOD *meth;
410
- void *meth_data;
411
- } /* X509_CRL */;
412
-
413
267
  DEFINE_STACK_OF(X509_CRL)
414
- DECLARE_ASN1_SET_OF(X509_CRL)
415
268
 
416
269
  struct private_key_st {
417
270
  int version;
@@ -431,7 +284,6 @@ struct private_key_st {
431
284
  EVP_CIPHER_INFO cipher;
432
285
  } /* X509_PKEY */;
433
286
 
434
- #ifndef OPENSSL_NO_EVP
435
287
  struct X509_info_st {
436
288
  X509 *x509;
437
289
  X509_CRL *crl;
@@ -444,7 +296,6 @@ struct X509_info_st {
444
296
  } /* X509_INFO */;
445
297
 
446
298
  DEFINE_STACK_OF(X509_INFO)
447
- #endif
448
299
 
449
300
  // The next 2 structures and their 8 routines were sent to me by
450
301
  // Pat Richard <patr@x509.com> and are used to manipulate
@@ -460,47 +311,108 @@ struct Netscape_spki_st {
460
311
  ASN1_BIT_STRING *signature;
461
312
  } /* NETSCAPE_SPKI */;
462
313
 
463
- #ifdef __cplusplus
464
- }
465
- #endif
314
+ // TODO(davidben): Document remaining functions, reorganize them, and define
315
+ // supported patterns for using |X509| objects in general. In particular, when
316
+ // it is safe to call mutating functions is a little tricky due to various
317
+ // internal caches.
318
+
319
+ // X509_VERSION_* are X.509 version numbers. Note the numerical values of all
320
+ // defined X.509 versions are one less than the named version.
321
+ #define X509_VERSION_1 0
322
+ #define X509_VERSION_2 1
323
+ #define X509_VERSION_3 2
324
+
325
+ // X509_get_version returns the numerical value of |x509|'s version. Callers may
326
+ // compare the result to the |X509_VERSION_*| constants. Unknown versions are
327
+ // rejected by the parser, but a manually-created |X509| object may encode
328
+ // invalid versions. In that case, the function will return the invalid version,
329
+ // or -1 on overflow.
330
+ OPENSSL_EXPORT long X509_get_version(const X509 *x509);
466
331
 
467
- #include <openssl/x509_vfy.h>
332
+ // X509_set_version sets |x509|'s version to |version|, which should be one of
333
+ // the |X509V_VERSION_*| constants. It returns one on success and zero on error.
334
+ //
335
+ // If unsure, use |X509_VERSION_3|.
336
+ OPENSSL_EXPORT int X509_set_version(X509 *x509, long version);
468
337
 
469
- #ifdef __cplusplus
470
- extern "C" {
471
- #endif
338
+ // X509_get0_serialNumber returns |x509|'s serial number.
339
+ OPENSSL_EXPORT const ASN1_INTEGER *X509_get0_serialNumber(const X509 *x509);
472
340
 
473
- // X509_get_version returns the numerical value of |x509|'s version. That is,
474
- // it returns zero for X.509v1, one for X.509v2, and two for X.509v3. Unknown
475
- // versions are rejected by the parser, but a manually-created |X509| object may
476
- // encode invalid versions. In that case, the function will return the invalid
477
- // version, or -1 on overflow.
478
- OPENSSL_EXPORT long X509_get_version(const X509 *x509);
341
+ // X509_set_serialNumber sets |x509|'s serial number to |serial|. It returns one
342
+ // on success and zero on error.
343
+ OPENSSL_EXPORT int X509_set_serialNumber(X509 *x509,
344
+ const ASN1_INTEGER *serial);
345
+
346
+ // X509_get0_notBefore returns |x509|'s notBefore time.
347
+ OPENSSL_EXPORT const ASN1_TIME *X509_get0_notBefore(const X509 *x509);
348
+
349
+ // X509_get0_notAfter returns |x509|'s notAfter time.
350
+ OPENSSL_EXPORT const ASN1_TIME *X509_get0_notAfter(const X509 *x509);
351
+
352
+ // X509_set1_notBefore sets |x509|'s notBefore time to |tm|. It returns one on
353
+ // success and zero on error.
354
+ OPENSSL_EXPORT int X509_set1_notBefore(X509 *x509, const ASN1_TIME *tm);
355
+
356
+ // X509_set1_notAfter sets |x509|'s notAfter time to |tm|. it returns one on
357
+ // success and zero on error.
358
+ OPENSSL_EXPORT int X509_set1_notAfter(X509 *x509, const ASN1_TIME *tm);
359
+
360
+ // X509_getm_notBefore returns a mutable pointer to |x509|'s notBefore time.
361
+ OPENSSL_EXPORT ASN1_TIME *X509_getm_notBefore(X509 *x509);
479
362
 
480
- // X509_get_notBefore returns |x509|'s notBefore value. Note this function is
481
- // not const-correct for legacy reasons. Use |X509_get0_notBefore| or
363
+ // X509_getm_notAfter returns a mutable pointer to |x509|'s notAfter time.
364
+ OPENSSL_EXPORT ASN1_TIME *X509_getm_notAfter(X509 *x);
365
+
366
+ // X509_get_notBefore returns |x509|'s notBefore time. Note this function is not
367
+ // const-correct for legacy reasons. Use |X509_get0_notBefore| or
482
368
  // |X509_getm_notBefore| instead.
483
369
  OPENSSL_EXPORT ASN1_TIME *X509_get_notBefore(const X509 *x509);
484
370
 
485
- // X509_get_notAfter returns |x509|'s notAfter value. Note this function is not
371
+ // X509_get_notAfter returns |x509|'s notAfter time. Note this function is not
486
372
  // const-correct for legacy reasons. Use |X509_get0_notAfter| or
487
373
  // |X509_getm_notAfter| instead.
488
374
  OPENSSL_EXPORT ASN1_TIME *X509_get_notAfter(const X509 *x509);
489
375
 
490
- // X509_get_cert_info returns |x509|'s TBSCertificate structure. Note this
491
- // function is not const-correct for legacy reasons.
376
+ // X509_set_notBefore calls |X509_set1_notBefore|. Use |X509_set1_notBefore|
377
+ // instead.
378
+ OPENSSL_EXPORT int X509_set_notBefore(X509 *x509, const ASN1_TIME *tm);
379
+
380
+ // X509_set_notAfter calls |X509_set1_notAfter|. Use |X509_set1_notAfter|
381
+ // instead.
382
+ OPENSSL_EXPORT int X509_set_notAfter(X509 *x509, const ASN1_TIME *tm);
383
+
384
+ // X509_get0_uids sets |*out_issuer_uid| to a non-owning pointer to the
385
+ // issuerUID field of |x509|, or NULL if |x509| has no issuerUID. It similarly
386
+ // outputs |x509|'s subjectUID field to |*out_subject_uid|.
492
387
  //
493
- // This function is deprecated and may be removed in the future. It is not
494
- // present in OpenSSL and constrains some improvements to the library.
495
- OPENSSL_EXPORT X509_CINF *X509_get_cert_info(const X509 *x509);
388
+ // Callers may pass NULL to either |out_issuer_uid| or |out_subject_uid| to
389
+ // ignore the corresponding field.
390
+ OPENSSL_EXPORT void X509_get0_uids(const X509 *x509,
391
+ const ASN1_BIT_STRING **out_issuer_uid,
392
+ const ASN1_BIT_STRING **out_subject_uid);
496
393
 
497
394
  // X509_extract_key is a legacy alias to |X509_get_pubkey|. Use
498
395
  // |X509_get_pubkey| instead.
499
396
  #define X509_extract_key(x) X509_get_pubkey(x)
500
397
 
501
- // X509_REQ_get_version returns the numerical value of |req|'s version. That is,
502
- // it returns zero for a v1 request. If |req| is invalid, it may return another
503
- // value, or -1 on overflow.
398
+ // X509_get_pathlen returns path length constraint from the basic constraints
399
+ // extension in |x509|. (See RFC 5280, section 4.2.1.9.) It returns -1 if the
400
+ // constraint is not present, or if some extension in |x509| was invalid.
401
+ //
402
+ // Note that decoding an |X509| object will not check for invalid extensions. To
403
+ // detect the error case, call |X509_get_extensions_flags| and check the
404
+ // |EXFLAG_INVALID| bit.
405
+ OPENSSL_EXPORT long X509_get_pathlen(X509 *x509);
406
+
407
+ // X509_REQ_VERSION_1 is the version constant for |X509_REQ| objects. Note no
408
+ // other versions are defined.
409
+ #define X509_REQ_VERSION_1 0
410
+
411
+ // X509_REQ_get_version returns the numerical value of |req|'s version. This
412
+ // will be |X509_REQ_VERSION_1| for valid certificate requests. If |req| is
413
+ // invalid, it may return another value, or -1 on overflow.
414
+ //
415
+ // TODO(davidben): Enforce the version number in the parser.
504
416
  OPENSSL_EXPORT long X509_REQ_get_version(const X509_REQ *req);
505
417
 
506
418
  // X509_REQ_get_subject_name returns |req|'s subject name. Note this function is
@@ -513,51 +425,60 @@ OPENSSL_EXPORT X509_NAME *X509_REQ_get_subject_name(const X509_REQ *req);
513
425
  // X509_name_cmp is a legacy alias for |X509_NAME_cmp|.
514
426
  #define X509_name_cmp(a, b) X509_NAME_cmp((a), (b))
515
427
 
516
- // X509_REQ_get_version returns the numerical value of |crl|'s version. That is,
517
- // it returns zero for a v1 CRL and one for a v2 CRL. If |crl| is invalid, it
518
- // may return another value, or -1 on overflow.
428
+ #define X509_CRL_VERSION_1 0
429
+ #define X509_CRL_VERSION_2 1
430
+
431
+ // X509_CRL_get_version returns the numerical value of |crl|'s version. Callers
432
+ // may compare the result to |X509_CRL_VERSION_*| constants. If |crl| is
433
+ // invalid, it may return another value, or -1 on overflow.
434
+ //
435
+ // TODO(davidben): Enforce the version number in the parser.
519
436
  OPENSSL_EXPORT long X509_CRL_get_version(const X509_CRL *crl);
520
437
 
521
438
  // X509_CRL_get0_lastUpdate returns |crl|'s lastUpdate time.
522
439
  OPENSSL_EXPORT const ASN1_TIME *X509_CRL_get0_lastUpdate(const X509_CRL *crl);
523
440
 
524
- // X509_CRL_get0_lastUpdate returns |crl|'s nextUpdate time.
441
+ // X509_CRL_get0_nextUpdate returns |crl|'s nextUpdate time, or NULL if |crl|
442
+ // has none.
525
443
  OPENSSL_EXPORT const ASN1_TIME *X509_CRL_get0_nextUpdate(const X509_CRL *crl);
526
444
 
445
+ // X509_CRL_set1_lastUpdate sets |crl|'s lastUpdate time to |tm|. It returns one
446
+ // on success and zero on error.
447
+ OPENSSL_EXPORT int X509_CRL_set1_lastUpdate(X509_CRL *crl, const ASN1_TIME *tm);
448
+
449
+ // X509_CRL_set1_nextUpdate sets |crl|'s nextUpdate time to |tm|. It returns one
450
+ // on success and zero on error.
451
+ OPENSSL_EXPORT int X509_CRL_set1_nextUpdate(X509_CRL *crl, const ASN1_TIME *tm);
452
+
453
+ // The following symbols are deprecated aliases to |X509_CRL_set1_*|.
454
+ #define X509_CRL_set_lastUpdate X509_CRL_set1_lastUpdate
455
+ #define X509_CRL_set_nextUpdate X509_CRL_set1_nextUpdate
456
+
527
457
  // X509_CRL_get_lastUpdate returns a mutable pointer to |crl|'s lastUpdate time.
528
- // Use |X509_CRL_get0_lastUpdate| or |X509_CRL_set_lastUpdate| instead.
458
+ // Use |X509_CRL_get0_lastUpdate| or |X509_CRL_set1_lastUpdate| instead.
529
459
  OPENSSL_EXPORT ASN1_TIME *X509_CRL_get_lastUpdate(X509_CRL *crl);
530
460
 
531
- // X509_CRL_get_nextUpdate returns a mutable pointer to |crl|'s nextUpdate time.
532
- // Use |X509_CRL_get0_nextUpdate| or |X509_CRL_set_nextUpdate| instead.
461
+ // X509_CRL_get_nextUpdate returns a mutable pointer to |crl|'s nextUpdate time,
462
+ // or NULL if |crl| has none. Use |X509_CRL_get0_nextUpdate| or
463
+ // |X509_CRL_set1_nextUpdate| instead.
533
464
  OPENSSL_EXPORT ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl);
534
465
 
535
466
  // X509_CRL_get_issuer returns |crl|'s issuer name. Note this function is not
536
467
  // const-correct for legacy reasons.
537
468
  OPENSSL_EXPORT X509_NAME *X509_CRL_get_issuer(const X509_CRL *crl);
538
469
 
539
- // X509_CRL_get_REVOKED returns the list of revoked certificates in |crl|.
470
+ // X509_CRL_get_REVOKED returns the list of revoked certificates in |crl|, or
471
+ // NULL if |crl| omits it.
540
472
  //
541
473
  // TOOD(davidben): This function was originally a macro, without clear const
542
474
  // semantics. It should take a const input and give const output, but the latter
543
475
  // would break existing callers. For now, we match upstream.
544
476
  OPENSSL_EXPORT STACK_OF(X509_REVOKED) *X509_CRL_get_REVOKED(X509_CRL *crl);
545
477
 
546
- // X509_CINF_set_modified marks |cinf| as modified so that changes will be
547
- // reflected in serializing the structure.
548
- //
549
- // This function is deprecated and may be removed in the future. It is not
550
- // present in OpenSSL and constrains some improvements to the library.
551
- OPENSSL_EXPORT void X509_CINF_set_modified(X509_CINF *cinf);
552
-
553
- // X509_CINF_get_signature returns the signature algorithm in |cinf|. Note this
554
- // isn't the signature itself, but the extra copy of the signature algorithm
555
- // in the TBSCertificate.
556
- //
557
- // This function is deprecated and may be removed in the future. It is not
558
- // present in OpenSSL and constrains some improvements to the library. Use
559
- // |X509_get0_tbs_sigalg| instead.
560
- OPENSSL_EXPORT const X509_ALGOR *X509_CINF_get_signature(const X509_CINF *cinf);
478
+ // X509_CRL_get0_extensions returns |crl|'s extension list, or NULL if |crl|
479
+ // omits it.
480
+ OPENSSL_EXPORT const STACK_OF(X509_EXTENSION) *X509_CRL_get0_extensions(
481
+ const X509_CRL *crl);
561
482
 
562
483
  // X509_SIG_get0 sets |*out_alg| and |*out_digest| to non-owning pointers to
563
484
  // |sig|'s algorithm and digest fields, respectively. Either |out_alg| and
@@ -586,48 +507,153 @@ OPENSSL_EXPORT void *X509_CRL_get_meth_data(X509_CRL *crl);
586
507
  // object.
587
508
  OPENSSL_EXPORT X509_PUBKEY *X509_get_X509_PUBKEY(const X509 *x509);
588
509
 
589
- OPENSSL_EXPORT const char *X509_verify_cert_error_string(long n);
590
-
591
- #ifndef OPENSSL_NO_EVP
592
- OPENSSL_EXPORT int X509_verify(X509 *a, EVP_PKEY *r);
593
-
594
- OPENSSL_EXPORT int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r);
595
- OPENSSL_EXPORT int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r);
596
- OPENSSL_EXPORT int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r);
597
-
510
+ // X509_verify_cert_error_string returns |err| as a human-readable string, where
511
+ // |err| should be one of the |X509_V_*| values. If |err| is unknown, it returns
512
+ // a default description.
513
+ OPENSSL_EXPORT const char *X509_verify_cert_error_string(long err);
514
+
515
+ // X509_verify checks that |x509| has a valid signature by |pkey|. It returns
516
+ // one if the signature is valid and zero otherwise. Note this function only
517
+ // checks the signature itself and does not perform a full certificate
518
+ // validation.
519
+ OPENSSL_EXPORT int X509_verify(X509 *x509, EVP_PKEY *pkey);
520
+
521
+ // X509_REQ_verify checks that |req| has a valid signature by |pkey|. It returns
522
+ // one if the signature is valid and zero otherwise.
523
+ OPENSSL_EXPORT int X509_REQ_verify(X509_REQ *req, EVP_PKEY *pkey);
524
+
525
+ // X509_CRL_verify checks that |crl| has a valid signature by |pkey|. It returns
526
+ // one if the signature is valid and zero otherwise.
527
+ OPENSSL_EXPORT int X509_CRL_verify(X509_CRL *crl, EVP_PKEY *pkey);
528
+
529
+ // NETSCAPE_SPKI_verify checks that |spki| has a valid signature by |pkey|. It
530
+ // returns one if the signature is valid and zero otherwise.
531
+ OPENSSL_EXPORT int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *spki, EVP_PKEY *pkey);
532
+
533
+ // NETSCAPE_SPKI_b64_decode decodes |len| bytes from |str| as a base64-encoded
534
+ // Netscape signed public key and challenge (SPKAC) structure. It returns a
535
+ // newly-allocated |NETSCAPE_SPKI| structure with the result, or NULL on error.
536
+ // If |len| is 0 or negative, the length is calculated with |strlen| and |str|
537
+ // must be a NUL-terminated C string.
598
538
  OPENSSL_EXPORT NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str,
599
539
  int len);
600
- OPENSSL_EXPORT char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x);
601
- OPENSSL_EXPORT EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x);
602
- OPENSSL_EXPORT int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey);
603
-
604
- OPENSSL_EXPORT int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki);
605
540
 
606
- OPENSSL_EXPORT int X509_signature_dump(BIO *bp, const ASN1_STRING *sig,
541
+ // NETSCAPE_SPKI_b64_encode encodes |spki| as a base64-encoded Netscape signed
542
+ // public key and challenge (SPKAC) structure. It returns a newly-allocated
543
+ // NUL-terminated C string with the result, or NULL on error. The caller must
544
+ // release the memory with |OPENSSL_free| when done.
545
+ OPENSSL_EXPORT char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *spki);
546
+
547
+ // NETSCAPE_SPKI_get_pubkey decodes and returns the public key in |spki| as an
548
+ // |EVP_PKEY|, or NULL on error. The caller takes ownership of the resulting
549
+ // pointer and must call |EVP_PKEY_free| when done.
550
+ OPENSSL_EXPORT EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *spki);
551
+
552
+ // NETSCAPE_SPKI_set_pubkey sets |spki|'s public key to |pkey|. It returns one
553
+ // on success or zero on error. This function does not take ownership of |pkey|,
554
+ // so the caller may continue to manage its lifetime independently of |spki|.
555
+ OPENSSL_EXPORT int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *spki,
556
+ EVP_PKEY *pkey);
557
+
558
+ // X509_signature_dump writes a human-readable representation of |sig| to |bio|,
559
+ // indented with |indent| spaces. It returns one on success and zero on error.
560
+ OPENSSL_EXPORT int X509_signature_dump(BIO *bio, const ASN1_STRING *sig,
607
561
  int indent);
608
- OPENSSL_EXPORT int X509_signature_print(BIO *bp, const X509_ALGOR *alg,
562
+
563
+ // X509_signature_print writes a human-readable representation of |alg| and
564
+ // |sig| to |bio|. It returns one on success and zero on error.
565
+ OPENSSL_EXPORT int X509_signature_print(BIO *bio, const X509_ALGOR *alg,
609
566
  const ASN1_STRING *sig);
610
567
 
611
- OPENSSL_EXPORT int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md);
612
- OPENSSL_EXPORT int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx);
613
- OPENSSL_EXPORT int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md);
614
- OPENSSL_EXPORT int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx);
615
- OPENSSL_EXPORT int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md);
616
- OPENSSL_EXPORT int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx);
617
- OPENSSL_EXPORT int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey,
568
+ // X509_sign signs |x509| with |pkey| and replaces the signature algorithm and
569
+ // signature fields. It returns one on success and zero on error. This function
570
+ // uses digest algorithm |md|, or |pkey|'s default if NULL. Other signing
571
+ // parameters use |pkey|'s defaults. To customize them, use |X509_sign_ctx|.
572
+ OPENSSL_EXPORT int X509_sign(X509 *x509, EVP_PKEY *pkey, const EVP_MD *md);
573
+
574
+ // X509_sign_ctx signs |x509| with |ctx| and replaces the signature algorithm
575
+ // and signature fields. It returns one on success and zero on error. The
576
+ // signature algorithm and parameters come from |ctx|, which must have been
577
+ // initialized with |EVP_DigestSignInit|. The caller should configure the
578
+ // corresponding |EVP_PKEY_CTX| before calling this function.
579
+ OPENSSL_EXPORT int X509_sign_ctx(X509 *x509, EVP_MD_CTX *ctx);
580
+
581
+ // X509_REQ_sign signs |req| with |pkey| and replaces the signature algorithm
582
+ // and signature fields. It returns one on success and zero on error. This
583
+ // function uses digest algorithm |md|, or |pkey|'s default if NULL. Other
584
+ // signing parameters use |pkey|'s defaults. To customize them, use
585
+ // |X509_REQ_sign_ctx|.
586
+ OPENSSL_EXPORT int X509_REQ_sign(X509_REQ *req, EVP_PKEY *pkey,
587
+ const EVP_MD *md);
588
+
589
+ // X509_REQ_sign_ctx signs |req| with |ctx| and replaces the signature algorithm
590
+ // and signature fields. It returns one on success and zero on error. The
591
+ // signature algorithm and parameters come from |ctx|, which must have been
592
+ // initialized with |EVP_DigestSignInit|. The caller should configure the
593
+ // corresponding |EVP_PKEY_CTX| before calling this function.
594
+ OPENSSL_EXPORT int X509_REQ_sign_ctx(X509_REQ *req, EVP_MD_CTX *ctx);
595
+
596
+ // X509_CRL_sign signs |crl| with |pkey| and replaces the signature algorithm
597
+ // and signature fields. It returns one on success and zero on error. This
598
+ // function uses digest algorithm |md|, or |pkey|'s default if NULL. Other
599
+ // signing parameters use |pkey|'s defaults. To customize them, use
600
+ // |X509_CRL_sign_ctx|.
601
+ OPENSSL_EXPORT int X509_CRL_sign(X509_CRL *crl, EVP_PKEY *pkey,
602
+ const EVP_MD *md);
603
+
604
+ // X509_CRL_sign_ctx signs |crl| with |ctx| and replaces the signature algorithm
605
+ // and signature fields. It returns one on success and zero on error. The
606
+ // signature algorithm and parameters come from |ctx|, which must have been
607
+ // initialized with |EVP_DigestSignInit|. The caller should configure the
608
+ // corresponding |EVP_PKEY_CTX| before calling this function.
609
+ OPENSSL_EXPORT int X509_CRL_sign_ctx(X509_CRL *crl, EVP_MD_CTX *ctx);
610
+
611
+ // NETSCAPE_SPKI_sign signs |spki| with |pkey| and replaces the signature
612
+ // algorithm and signature fields. It returns one on success and zero on error.
613
+ // This function uses digest algorithm |md|, or |pkey|'s default if NULL. Other
614
+ // signing parameters use |pkey|'s defaults.
615
+ OPENSSL_EXPORT int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *spki, EVP_PKEY *pkey,
618
616
  const EVP_MD *md);
619
617
 
620
- OPENSSL_EXPORT int X509_pubkey_digest(const X509 *data, const EVP_MD *type,
621
- unsigned char *md, unsigned int *len);
622
- OPENSSL_EXPORT int X509_digest(const X509 *data, const EVP_MD *type,
623
- unsigned char *md, unsigned int *len);
624
- OPENSSL_EXPORT int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type,
625
- unsigned char *md, unsigned int *len);
626
- OPENSSL_EXPORT int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type,
627
- unsigned char *md, unsigned int *len);
628
- OPENSSL_EXPORT int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type,
629
- unsigned char *md, unsigned int *len);
630
- #endif
618
+ // X509_pubkey_digest hashes the DER encoding of |x509|'s subjectPublicKeyInfo
619
+ // field with |md| and writes the result to |out|. |EVP_MD_CTX_size| bytes are
620
+ // written, which is at most |EVP_MAX_MD_SIZE|. If |out_len| is not NULL,
621
+ // |*out_len| is set to the number of bytes written. This function returns one
622
+ // on success and zero on error.
623
+ OPENSSL_EXPORT int X509_pubkey_digest(const X509 *x509, const EVP_MD *md,
624
+ uint8_t *out, unsigned *out_len);
625
+
626
+ // X509_digest hashes |x509|'s DER encoding with |md| and writes the result to
627
+ // |out|. |EVP_MD_CTX_size| bytes are written, which is at most
628
+ // |EVP_MAX_MD_SIZE|. If |out_len| is not NULL, |*out_len| is set to the number
629
+ // of bytes written. This function returns one on success and zero on error.
630
+ // Note this digest covers the entire certificate, not just the signed portion.
631
+ OPENSSL_EXPORT int X509_digest(const X509 *x509, const EVP_MD *md, uint8_t *out,
632
+ unsigned *out_len);
633
+
634
+ // X509_CRL_digest hashes |crl|'s DER encoding with |md| and writes the result
635
+ // to |out|. |EVP_MD_CTX_size| bytes are written, which is at most
636
+ // |EVP_MAX_MD_SIZE|. If |out_len| is not NULL, |*out_len| is set to the number
637
+ // of bytes written. This function returns one on success and zero on error.
638
+ // Note this digest covers the entire CRL, not just the signed portion.
639
+ OPENSSL_EXPORT int X509_CRL_digest(const X509_CRL *crl, const EVP_MD *md,
640
+ uint8_t *out, unsigned *out_len);
641
+
642
+ // X509_REQ_digest hashes |req|'s DER encoding with |md| and writes the result
643
+ // to |out|. |EVP_MD_CTX_size| bytes are written, which is at most
644
+ // |EVP_MAX_MD_SIZE|. If |out_len| is not NULL, |*out_len| is set to the number
645
+ // of bytes written. This function returns one on success and zero on error.
646
+ // Note this digest covers the entire certificate request, not just the signed
647
+ // portion.
648
+ OPENSSL_EXPORT int X509_REQ_digest(const X509_REQ *req, const EVP_MD *md,
649
+ uint8_t *out, unsigned *out_len);
650
+
651
+ // X509_NAME_digest hashes |name|'s DER encoding with |md| and writes the result
652
+ // to |out|. |EVP_MD_CTX_size| bytes are written, which is at most
653
+ // |EVP_MAX_MD_SIZE|. If |out_len| is not NULL, |*out_len| is set to the number
654
+ // of bytes written. This function returns one on success and zero on error.
655
+ OPENSSL_EXPORT int X509_NAME_digest(const X509_NAME *name, const EVP_MD *md,
656
+ uint8_t *out, unsigned *out_len);
631
657
 
632
658
  // X509_parse_from_buffer parses an X.509 structure from |buf| and returns a
633
659
  // fresh X509 or NULL on error. There must not be any trailing data in |buf|.
@@ -635,7 +661,6 @@ OPENSSL_EXPORT int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type,
635
661
  // copying parts of it as a normal |d2i_X509| call would do.
636
662
  OPENSSL_EXPORT X509 *X509_parse_from_buffer(CRYPTO_BUFFER *buf);
637
663
 
638
- #ifndef OPENSSL_NO_FP_API
639
664
  OPENSSL_EXPORT X509 *d2i_X509_fp(FILE *fp, X509 **x509);
640
665
  OPENSSL_EXPORT int i2d_X509_fp(FILE *fp, X509 *x509);
641
666
  OPENSSL_EXPORT X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl);
@@ -669,7 +694,6 @@ OPENSSL_EXPORT int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey);
669
694
  OPENSSL_EXPORT EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a);
670
695
  OPENSSL_EXPORT int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey);
671
696
  OPENSSL_EXPORT EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a);
672
- #endif
673
697
 
674
698
  OPENSSL_EXPORT X509 *d2i_X509_bio(BIO *bp, X509 **x509);
675
699
  OPENSSL_EXPORT int i2d_X509_bio(BIO *bp, X509 *x509);
@@ -714,12 +738,54 @@ OPENSSL_EXPORT X509_CRL *X509_CRL_dup(X509_CRL *crl);
714
738
  OPENSSL_EXPORT X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev);
715
739
  OPENSSL_EXPORT X509_REQ *X509_REQ_dup(X509_REQ *req);
716
740
  OPENSSL_EXPORT X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn);
717
- OPENSSL_EXPORT int X509_ALGOR_set0(X509_ALGOR *alg, const ASN1_OBJECT *aobj,
718
- int ptype, void *pval);
719
- OPENSSL_EXPORT void X509_ALGOR_get0(const ASN1_OBJECT **paobj, int *pptype,
720
- const void **ppval,
721
- const X509_ALGOR *algor);
741
+
742
+ // X509_ALGOR_set0 sets |alg| to an AlgorithmIdentifier with algorithm |obj| and
743
+ // parameter determined by |param_type| and |param_value|. It returns one on
744
+ // success and zero on error. This function takes ownership of |obj| and
745
+ // |param_value| on success.
746
+ //
747
+ // If |param_type| is |V_ASN1_UNDEF|, the parameter is omitted. If |param_type|
748
+ // is zero, the parameter is left unchanged. Otherwise, |param_type| and
749
+ // |param_value| are interpreted as in |ASN1_TYPE_set|.
750
+ //
751
+ // Note omitting the parameter (|V_ASN1_UNDEF|) and encoding an explicit NULL
752
+ // value (|V_ASN1_NULL|) are different. Some algorithms require one and some the
753
+ // other. Consult the relevant specification before calling this function. The
754
+ // correct parameter for an RSASSA-PKCS1-v1_5 signature is |V_ASN1_NULL|. The
755
+ // correct one for an ECDSA or Ed25519 signature is |V_ASN1_UNDEF|.
756
+ OPENSSL_EXPORT int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *obj,
757
+ int param_type, void *param_value);
758
+
759
+ // X509_ALGOR_get0 sets |*out_obj| to the |alg|'s algorithm. If |alg|'s
760
+ // parameter is omitted, it sets |*out_param_type| and |*out_param_value| to
761
+ // |V_ASN1_UNDEF| and NULL. Otherwise, it sets |*out_param_type| and
762
+ // |*out_param_value| to the parameter, using the same representation as
763
+ // |ASN1_TYPE_set0|. See |ASN1_TYPE_set0| and |ASN1_TYPE| for details.
764
+ //
765
+ // Callers that require the parameter in serialized form should, after checking
766
+ // for |V_ASN1_UNDEF|, use |ASN1_TYPE_set1| and |d2i_ASN1_TYPE|, rather than
767
+ // inspecting |*out_param_value|.
768
+ //
769
+ // Each of |out_obj|, |out_param_type|, and |out_param_value| may be NULL to
770
+ // ignore the output. If |out_param_type| is NULL, |out_param_value| is ignored.
771
+ //
772
+ // WARNING: If |*out_param_type| is set to |V_ASN1_UNDEF|, OpenSSL and older
773
+ // revisions of BoringSSL leave |*out_param_value| unset rather than setting it
774
+ // to NULL. Callers that support both OpenSSL and BoringSSL should not assume
775
+ // |*out_param_value| is uniformly initialized.
776
+ OPENSSL_EXPORT void X509_ALGOR_get0(const ASN1_OBJECT **out_obj,
777
+ int *out_param_type,
778
+ const void **out_param_value,
779
+ const X509_ALGOR *alg);
780
+
781
+ // X509_ALGOR_set_md sets |alg| to the hash function |md|. Note this
782
+ // AlgorithmIdentifier represents the hash function itself, not a signature
783
+ // algorithm that uses |md|.
722
784
  OPENSSL_EXPORT void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md);
785
+
786
+ // X509_ALGOR_cmp returns zero if |a| and |b| are equal, and some non-zero value
787
+ // otherwise. Note this function can only be used for equality checks, not an
788
+ // ordering.
723
789
  OPENSSL_EXPORT int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b);
724
790
 
725
791
  OPENSSL_EXPORT X509_NAME *X509_NAME_dup(X509_NAME *xn);
@@ -729,12 +795,30 @@ OPENSSL_EXPORT int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne);
729
795
  OPENSSL_EXPORT int X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder,
730
796
  size_t *pderlen);
731
797
 
798
+ // X509_cmp_time compares |s| against |*t|. On success, it returns a negative
799
+ // number if |s| <= |*t| and a positive number if |s| > |*t|. On error, it
800
+ // returns zero. If |t| is NULL, it uses the current time instead of |*t|.
801
+ //
802
+ // WARNING: Unlike most comparison functions, this function returns zero on
803
+ // error, not equality.
732
804
  OPENSSL_EXPORT int X509_cmp_time(const ASN1_TIME *s, time_t *t);
805
+
806
+ // X509_cmp_current_time behaves like |X509_cmp_time| but compares |s| against
807
+ // the current time.
733
808
  OPENSSL_EXPORT int X509_cmp_current_time(const ASN1_TIME *s);
734
- OPENSSL_EXPORT ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t);
809
+
810
+ // X509_time_adj calls |X509_time_adj_ex| with |offset_day| equal to zero.
811
+ OPENSSL_EXPORT ASN1_TIME *X509_time_adj(ASN1_TIME *s, long offset_sec,
812
+ time_t *t);
813
+
814
+ // X509_time_adj_ex behaves like |ASN1_TIME_adj|, but adds an offset to |*t|. If
815
+ // |t| is NULL, it uses the current time instead of |*t|.
735
816
  OPENSSL_EXPORT ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, int offset_day,
736
817
  long offset_sec, time_t *t);
737
- OPENSSL_EXPORT ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj);
818
+
819
+ // X509_gmtime_adj behaves like |X509_time_adj_ex| but adds |offset_sec| to the
820
+ // current time.
821
+ OPENSSL_EXPORT ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long offset_sec);
738
822
 
739
823
  OPENSSL_EXPORT const char *X509_get_default_cert_area(void);
740
824
  OPENSSL_EXPORT const char *X509_get_default_cert_dir(void);
@@ -745,22 +829,32 @@ OPENSSL_EXPORT const char *X509_get_default_private_dir(void);
745
829
 
746
830
  OPENSSL_EXPORT X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey,
747
831
  const EVP_MD *md);
748
- OPENSSL_EXPORT X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey);
749
832
 
750
833
  DECLARE_ASN1_ENCODE_FUNCTIONS(X509_ALGORS, X509_ALGORS, X509_ALGORS)
751
- DECLARE_ASN1_FUNCTIONS(X509_VAL)
752
834
 
753
835
  DECLARE_ASN1_FUNCTIONS(X509_PUBKEY)
754
836
 
837
+ // X509_PUBKEY_set serializes |pkey| into a newly-allocated |X509_PUBKEY|
838
+ // structure. On success, it frees |*x|, sets |*x| to the new object, and
839
+ // returns one. Otherwise, it returns zero.
755
840
  OPENSSL_EXPORT int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey);
841
+
842
+ // X509_PUBKEY_get decodes the public key in |key| and returns an |EVP_PKEY| on
843
+ // success, or NULL on error. The caller must release the result with
844
+ // |EVP_PKEY_free| when done. The |EVP_PKEY| is cached in |key|, so callers must
845
+ // not mutate the result.
756
846
  OPENSSL_EXPORT EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key);
757
847
 
758
848
  DECLARE_ASN1_FUNCTIONS(X509_SIG)
759
- DECLARE_ASN1_FUNCTIONS(X509_REQ_INFO)
760
849
  DECLARE_ASN1_FUNCTIONS(X509_REQ)
761
850
 
762
851
  DECLARE_ASN1_FUNCTIONS(X509_ATTRIBUTE)
763
- OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype,
852
+
853
+ // X509_ATTRIBUTE_create returns a newly-allocated |X509_ATTRIBUTE|, or NULL on
854
+ // error. The attribute has type |nid| and contains a single value determined by
855
+ // |attrtype| and |value|, which are interpreted as in |ASN1_TYPE_set|. Note
856
+ // this function takes ownership of |value|.
857
+ OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int attrtype,
764
858
  void *value);
765
859
 
766
860
  DECLARE_ASN1_FUNCTIONS(X509_EXTENSION)
@@ -770,15 +864,15 @@ DECLARE_ASN1_FUNCTIONS(X509_NAME_ENTRY)
770
864
 
771
865
  DECLARE_ASN1_FUNCTIONS(X509_NAME)
772
866
 
867
+ // X509_NAME_set makes a copy of |name|. On success, it frees |*xn|, sets |*xn|
868
+ // to the copy, and returns one. Otherwise, it returns zero.
773
869
  OPENSSL_EXPORT int X509_NAME_set(X509_NAME **xn, X509_NAME *name);
774
870
 
775
- DECLARE_ASN1_FUNCTIONS(X509_CINF)
776
-
777
871
  DECLARE_ASN1_FUNCTIONS(X509)
778
872
  DECLARE_ASN1_FUNCTIONS(X509_CERT_AUX)
779
873
 
780
- // X509_up_ref adds one to the reference count of |x| and returns one.
781
- OPENSSL_EXPORT int X509_up_ref(X509 *x);
874
+ // X509_up_ref adds one to the reference count of |x509| and returns one.
875
+ OPENSSL_EXPORT int X509_up_ref(X509 *x509);
782
876
 
783
877
  OPENSSL_EXPORT int X509_get_ex_new_index(long argl, void *argp,
784
878
  CRYPTO_EX_unused *unused,
@@ -790,14 +884,59 @@ OPENSSL_EXPORT int i2d_X509_AUX(X509 *a, unsigned char **pp);
790
884
  OPENSSL_EXPORT X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp,
791
885
  long length);
792
886
 
793
- OPENSSL_EXPORT int i2d_re_X509_tbs(X509 *x, unsigned char **pp);
794
-
795
- OPENSSL_EXPORT void X509_get0_signature(const ASN1_BIT_STRING **psig,
796
- const X509_ALGOR **palg, const X509 *x);
797
- OPENSSL_EXPORT int X509_get_signature_nid(const X509 *x);
887
+ // i2d_re_X509_tbs serializes the TBSCertificate portion of |x509|, as described
888
+ // in |i2d_SAMPLE|.
889
+ //
890
+ // This function re-encodes the TBSCertificate and may not reflect |x509|'s
891
+ // original encoding. It may be used to manually generate a signature for a new
892
+ // certificate. To verify certificates, use |i2d_X509_tbs| instead.
893
+ OPENSSL_EXPORT int i2d_re_X509_tbs(X509 *x509, unsigned char **outp);
798
894
 
799
- OPENSSL_EXPORT int X509_alias_set1(X509 *x, unsigned char *name, int len);
800
- OPENSSL_EXPORT int X509_keyid_set1(X509 *x, unsigned char *id, int len);
895
+ // i2d_X509_tbs serializes the TBSCertificate portion of |x509|, as described in
896
+ // |i2d_SAMPLE|.
897
+ //
898
+ // This function preserves the original encoding of the TBSCertificate and may
899
+ // not reflect modifications made to |x509|. It may be used to manually verify
900
+ // the signature of an existing certificate. To generate certificates, use
901
+ // |i2d_re_X509_tbs| instead.
902
+ OPENSSL_EXPORT int i2d_X509_tbs(X509 *x509, unsigned char **outp);
903
+
904
+ // X509_set1_signature_algo sets |x509|'s signature algorithm to |algo| and
905
+ // returns one on success or zero on error. It updates both the signature field
906
+ // of the TBSCertificate structure, and the signatureAlgorithm field of the
907
+ // Certificate.
908
+ OPENSSL_EXPORT int X509_set1_signature_algo(X509 *x509, const X509_ALGOR *algo);
909
+
910
+ // X509_set1_signature_value sets |x509|'s signature to a copy of the |sig_len|
911
+ // bytes pointed by |sig|. It returns one on success and zero on error.
912
+ //
913
+ // Due to a specification error, X.509 certificates store signatures in ASN.1
914
+ // BIT STRINGs, but signature algorithms return byte strings rather than bit
915
+ // strings. This function creates a BIT STRING containing a whole number of
916
+ // bytes, with the bit order matching the DER encoding. This matches the
917
+ // encoding used by all X.509 signature algorithms.
918
+ OPENSSL_EXPORT int X509_set1_signature_value(X509 *x509, const uint8_t *sig,
919
+ size_t sig_len);
920
+
921
+ // X509_get0_signature sets |*out_sig| and |*out_alg| to the signature and
922
+ // signature algorithm of |x509|, respectively. Either output pointer may be
923
+ // NULL to ignore the value.
924
+ //
925
+ // This function outputs the outer signature algorithm. For the one in the
926
+ // TBSCertificate, see |X509_get0_tbs_sigalg|. Certificates with mismatched
927
+ // signature algorithms will successfully parse, but they will be rejected when
928
+ // verifying.
929
+ OPENSSL_EXPORT void X509_get0_signature(const ASN1_BIT_STRING **out_sig,
930
+ const X509_ALGOR **out_alg,
931
+ const X509 *x509);
932
+
933
+ // X509_get_signature_nid returns the NID corresponding to |x509|'s signature
934
+ // algorithm, or |NID_undef| if the signature algorithm does not correspond to
935
+ // a known NID.
936
+ OPENSSL_EXPORT int X509_get_signature_nid(const X509 *x509);
937
+
938
+ OPENSSL_EXPORT int X509_alias_set1(X509 *x, const unsigned char *name, int len);
939
+ OPENSSL_EXPORT int X509_keyid_set1(X509 *x, const unsigned char *id, int len);
801
940
  OPENSSL_EXPORT unsigned char *X509_alias_get0(X509 *x, int *len);
802
941
  OPENSSL_EXPORT unsigned char *X509_keyid_get0(X509 *x, int *len);
803
942
  OPENSSL_EXPORT int (*X509_TRUST_set_default(int (*trust)(int, X509 *,
@@ -810,7 +949,6 @@ OPENSSL_EXPORT void X509_trust_clear(X509 *x);
810
949
  OPENSSL_EXPORT void X509_reject_clear(X509 *x);
811
950
 
812
951
  DECLARE_ASN1_FUNCTIONS(X509_REVOKED)
813
- DECLARE_ASN1_FUNCTIONS(X509_CRL_INFO)
814
952
  DECLARE_ASN1_FUNCTIONS(X509_CRL)
815
953
 
816
954
  OPENSSL_EXPORT int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev);
@@ -825,10 +963,9 @@ OPENSSL_EXPORT void X509_PKEY_free(X509_PKEY *a);
825
963
  DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKI)
826
964
  DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKAC)
827
965
 
828
- #ifndef OPENSSL_NO_EVP
829
966
  OPENSSL_EXPORT X509_INFO *X509_INFO_new(void);
830
967
  OPENSSL_EXPORT void X509_INFO_free(X509_INFO *a);
831
- OPENSSL_EXPORT char *X509_NAME_oneline(X509_NAME *a, char *buf, int size);
968
+ OPENSSL_EXPORT char *X509_NAME_oneline(const X509_NAME *a, char *buf, int size);
832
969
 
833
970
  OPENSSL_EXPORT int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data,
834
971
  unsigned char *md, unsigned int *len);
@@ -837,9 +974,10 @@ OPENSSL_EXPORT int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type,
837
974
  void *data, unsigned char *md,
838
975
  unsigned int *len);
839
976
 
840
- OPENSSL_EXPORT int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *algor1,
841
- ASN1_BIT_STRING *signature, void *data,
842
- EVP_PKEY *pkey);
977
+ OPENSSL_EXPORT int ASN1_item_verify(const ASN1_ITEM *it,
978
+ const X509_ALGOR *algor1,
979
+ const ASN1_BIT_STRING *signature,
980
+ void *data, EVP_PKEY *pkey);
843
981
 
844
982
  OPENSSL_EXPORT int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1,
845
983
  X509_ALGOR *algor2,
@@ -849,87 +987,277 @@ OPENSSL_EXPORT int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1,
849
987
  X509_ALGOR *algor2,
850
988
  ASN1_BIT_STRING *signature, void *asn,
851
989
  EVP_MD_CTX *ctx);
852
- #endif
853
990
 
854
- OPENSSL_EXPORT int X509_set_version(X509 *x, long version);
855
- OPENSSL_EXPORT int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial);
856
- OPENSSL_EXPORT ASN1_INTEGER *X509_get_serialNumber(X509 *x);
857
- OPENSSL_EXPORT int X509_set_issuer_name(X509 *x, X509_NAME *name);
858
- OPENSSL_EXPORT X509_NAME *X509_get_issuer_name(X509 *a);
859
- OPENSSL_EXPORT int X509_set_subject_name(X509 *x, X509_NAME *name);
860
- OPENSSL_EXPORT X509_NAME *X509_get_subject_name(X509 *a);
861
- OPENSSL_EXPORT int X509_set_notBefore(X509 *x, const ASN1_TIME *tm);
862
- OPENSSL_EXPORT const ASN1_TIME *X509_get0_notBefore(const X509 *x);
863
- OPENSSL_EXPORT ASN1_TIME *X509_getm_notBefore(X509 *x);
864
- OPENSSL_EXPORT int X509_set_notAfter(X509 *x, const ASN1_TIME *tm);
865
- OPENSSL_EXPORT const ASN1_TIME *X509_get0_notAfter(const X509 *x);
866
- OPENSSL_EXPORT ASN1_TIME *X509_getm_notAfter(X509 *x);
867
- OPENSSL_EXPORT int X509_set_pubkey(X509 *x, EVP_PKEY *pkey);
868
- OPENSSL_EXPORT EVP_PKEY *X509_get_pubkey(X509 *x);
869
- OPENSSL_EXPORT ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x);
870
- OPENSSL_EXPORT STACK_OF(X509_EXTENSION) * X509_get0_extensions(const X509 *x);
871
- OPENSSL_EXPORT const X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x);
991
+ // X509_get_serialNumber returns a mutable pointer to |x509|'s serial number.
992
+ // Prefer |X509_get0_serialNumber|.
993
+ OPENSSL_EXPORT ASN1_INTEGER *X509_get_serialNumber(X509 *x509);
994
+
995
+ // X509_set_issuer_name sets |x509|'s issuer to a copy of |name|. It returns one
996
+ // on success and zero on error.
997
+ OPENSSL_EXPORT int X509_set_issuer_name(X509 *x509, X509_NAME *name);
872
998
 
873
- OPENSSL_EXPORT int X509_REQ_set_version(X509_REQ *x, long version);
999
+ // X509_get_issuer_name returns |x509|'s issuer.
1000
+ OPENSSL_EXPORT X509_NAME *X509_get_issuer_name(const X509 *x509);
1001
+
1002
+ // X509_set_subject_name sets |x509|'s subject to a copy of |name|. It returns
1003
+ // one on success and zero on error.
1004
+ OPENSSL_EXPORT int X509_set_subject_name(X509 *x509, X509_NAME *name);
1005
+
1006
+ // X509_get_issuer_name returns |x509|'s subject.
1007
+ OPENSSL_EXPORT X509_NAME *X509_get_subject_name(const X509 *x509);
1008
+
1009
+ // X509_set_pubkey sets |x509|'s public key to |pkey|. It returns one on success
1010
+ // and zero on error. This function does not take ownership of |pkey| and
1011
+ // internally copies and updates reference counts as needed.
1012
+ OPENSSL_EXPORT int X509_set_pubkey(X509 *x509, EVP_PKEY *pkey);
1013
+
1014
+ // X509_get_pubkey returns |x509|'s public key as an |EVP_PKEY|, or NULL if the
1015
+ // public key was unsupported or could not be decoded. This function returns a
1016
+ // reference to the |EVP_PKEY|. The caller must release the result with
1017
+ // |EVP_PKEY_free| when done.
1018
+ OPENSSL_EXPORT EVP_PKEY *X509_get_pubkey(X509 *x509);
1019
+
1020
+ // X509_get0_pubkey_bitstr returns the BIT STRING portion of |x509|'s public
1021
+ // key. Note this does not contain the AlgorithmIdentifier portion.
1022
+ //
1023
+ // WARNING: This function returns a non-const pointer for OpenSSL compatibility,
1024
+ // but the caller must not modify the resulting object. Doing so will break
1025
+ // internal invariants in |x509|.
1026
+ OPENSSL_EXPORT ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x509);
1027
+
1028
+ // X509_get0_extensions returns |x509|'s extension list, or NULL if |x509| omits
1029
+ // it.
1030
+ OPENSSL_EXPORT const STACK_OF(X509_EXTENSION) *X509_get0_extensions(
1031
+ const X509 *x509);
1032
+
1033
+ // X509_get0_tbs_sigalg returns the signature algorithm in |x509|'s
1034
+ // TBSCertificate. For the outer signature algorithm, see |X509_get0_signature|.
1035
+ //
1036
+ // Certificates with mismatched signature algorithms will successfully parse,
1037
+ // but they will be rejected when verifying.
1038
+ OPENSSL_EXPORT const X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x509);
1039
+
1040
+ // X509_REQ_set_version sets |req|'s version to |version|, which should be
1041
+ // |X509_REQ_VERSION_1|. It returns one on success and zero on error.
1042
+ //
1043
+ // Note no versions other than |X509_REQ_VERSION_1| are defined for CSRs.
1044
+ OPENSSL_EXPORT int X509_REQ_set_version(X509_REQ *req, long version);
1045
+
1046
+ // X509_REQ_set_subject_name sets |req|'s subject to a copy of |name|. It
1047
+ // returns one on success and zero on error.
874
1048
  OPENSSL_EXPORT int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name);
1049
+
1050
+ // X509_REQ_get0_signature sets |*out_sig| and |*out_alg| to the signature and
1051
+ // signature algorithm of |req|, respectively. Either output pointer may be NULL
1052
+ // to ignore the value.
875
1053
  OPENSSL_EXPORT void X509_REQ_get0_signature(const X509_REQ *req,
876
- const ASN1_BIT_STRING **psig,
877
- const X509_ALGOR **palg);
1054
+ const ASN1_BIT_STRING **out_sig,
1055
+ const X509_ALGOR **out_alg);
1056
+
1057
+ // X509_REQ_get_signature_nid returns the NID corresponding to |req|'s signature
1058
+ // algorithm, or |NID_undef| if the signature algorithm does not correspond to
1059
+ // a known NID.
878
1060
  OPENSSL_EXPORT int X509_REQ_get_signature_nid(const X509_REQ *req);
879
- OPENSSL_EXPORT int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp);
880
- OPENSSL_EXPORT int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey);
1061
+
1062
+ // i2d_re_X509_REQ_tbs serializes the CertificationRequestInfo (see RFC 2986)
1063
+ // portion of |req|, as described in |i2d_SAMPLE|.
1064
+ //
1065
+ // This function re-encodes the CertificationRequestInfo and may not reflect
1066
+ // |req|'s original encoding. It may be used to manually generate a signature
1067
+ // for a new certificate request.
1068
+ OPENSSL_EXPORT int i2d_re_X509_REQ_tbs(X509_REQ *req, uint8_t **outp);
1069
+
1070
+ // X509_REQ_set_pubkey sets |req|'s public key to |pkey|. It returns one on
1071
+ // success and zero on error. This function does not take ownership of |pkey|
1072
+ // and internally copies and updates reference counts as needed.
1073
+ OPENSSL_EXPORT int X509_REQ_set_pubkey(X509_REQ *req, EVP_PKEY *pkey);
1074
+
1075
+ // X509_REQ_get_pubkey returns |req|'s public key as an |EVP_PKEY|, or NULL if
1076
+ // the public key was unsupported or could not be decoded. This function returns
1077
+ // a reference to the |EVP_PKEY|. The caller must release the result with
1078
+ // |EVP_PKEY_free| when done.
881
1079
  OPENSSL_EXPORT EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req);
1080
+
1081
+ // X509_REQ_extension_nid returns one if |nid| is a supported CSR attribute type
1082
+ // for carrying extensions and zero otherwise. The supported types are
1083
+ // |NID_ext_req| (pkcs-9-at-extensionRequest from RFC 2985) and |NID_ms_ext_req|
1084
+ // (a Microsoft szOID_CERT_EXTENSIONS variant).
882
1085
  OPENSSL_EXPORT int X509_REQ_extension_nid(int nid);
883
- OPENSSL_EXPORT const int *X509_REQ_get_extension_nids(void);
884
- OPENSSL_EXPORT void X509_REQ_set_extension_nids(const int *nids);
885
- OPENSSL_EXPORT STACK_OF(X509_EXTENSION) *
886
- X509_REQ_get_extensions(X509_REQ *req);
887
- OPENSSL_EXPORT int X509_REQ_add_extensions_nid(X509_REQ *req,
888
- STACK_OF(X509_EXTENSION) * exts,
889
- int nid);
890
- OPENSSL_EXPORT int X509_REQ_add_extensions(X509_REQ *req,
891
- STACK_OF(X509_EXTENSION) * exts);
1086
+
1087
+ // X509_REQ_get_extensions decodes the list of requested extensions in |req| and
1088
+ // returns a newly-allocated |STACK_OF(X509_EXTENSION)| containing the result.
1089
+ // It returns NULL on error, or if |req| did not request extensions.
1090
+ //
1091
+ // This function supports both pkcs-9-at-extensionRequest from RFC 2985 and the
1092
+ // Microsoft szOID_CERT_EXTENSIONS variant.
1093
+ OPENSSL_EXPORT STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req);
1094
+
1095
+ // X509_REQ_add_extensions_nid adds an attribute to |req| of type |nid|, to
1096
+ // request the certificate extensions in |exts|. It returns one on success and
1097
+ // zero on error. |nid| should be |NID_ext_req| or |NID_ms_ext_req|.
1098
+ OPENSSL_EXPORT int X509_REQ_add_extensions_nid(
1099
+ X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts, int nid);
1100
+
1101
+ // X509_REQ_add_extensions behaves like |X509_REQ_add_extensions_nid|, using the
1102
+ // standard |NID_ext_req| for the attribute type.
1103
+ OPENSSL_EXPORT int X509_REQ_add_extensions(
1104
+ X509_REQ *req, const STACK_OF(X509_EXTENSION) *exts);
1105
+
1106
+ // X509_REQ_get_attr_count returns the number of attributes in |req|.
892
1107
  OPENSSL_EXPORT int X509_REQ_get_attr_count(const X509_REQ *req);
1108
+
1109
+ // X509_REQ_get_attr_by_NID returns the index of the attribute in |req| of type
1110
+ // |nid|, or a negative number if not found. If found, callers can use
1111
+ // |X509_REQ_get_attr| to look up the attribute by index.
1112
+ //
1113
+ // If |lastpos| is non-negative, it begins searching at |lastpos| + 1. Callers
1114
+ // can thus loop over all matching attributes by first passing -1 and then
1115
+ // passing the previously-returned value until no match is returned.
893
1116
  OPENSSL_EXPORT int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid,
894
1117
  int lastpos);
1118
+
1119
+ // X509_REQ_get_attr_by_OBJ behaves like |X509_REQ_get_attr_by_NID| but looks
1120
+ // for attributes of type |obj|.
895
1121
  OPENSSL_EXPORT int X509_REQ_get_attr_by_OBJ(const X509_REQ *req,
896
- ASN1_OBJECT *obj, int lastpos);
1122
+ const ASN1_OBJECT *obj,
1123
+ int lastpos);
1124
+
1125
+ // X509_REQ_get_attr returns the attribute at index |loc| in |req|, or NULL if
1126
+ // out of bounds.
897
1127
  OPENSSL_EXPORT X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc);
1128
+
1129
+ // X509_REQ_delete_attr removes the attribute at index |loc| in |req|. It
1130
+ // returns the removed attribute to the caller, or NULL if |loc| was out of
1131
+ // bounds. If non-NULL, the caller must release the result with
1132
+ // |X509_ATTRIBUTE_free| when done. It is also safe, but not necessary, to call
1133
+ // |X509_ATTRIBUTE_free| if the result is NULL.
898
1134
  OPENSSL_EXPORT X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc);
1135
+
1136
+ // X509_REQ_add1_attr appends a copy of |attr| to |req|'s list of attributes. It
1137
+ // returns one on success and zero on error.
1138
+ //
1139
+ // TODO(https://crbug.com/boringssl/407): |attr| should be const.
899
1140
  OPENSSL_EXPORT int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr);
1141
+
1142
+ // X509_REQ_add1_attr_by_OBJ appends a new attribute to |req| with type |obj|.
1143
+ // It returns one on success and zero on error. The value is determined by
1144
+ // |X509_ATTRIBUTE_set1_data|.
1145
+ //
1146
+ // WARNING: The interpretation of |attrtype|, |data|, and |len| is complex and
1147
+ // error-prone. See |X509_ATTRIBUTE_set1_data| for details.
900
1148
  OPENSSL_EXPORT int X509_REQ_add1_attr_by_OBJ(X509_REQ *req,
901
- const ASN1_OBJECT *obj, int type,
902
- const unsigned char *bytes,
1149
+ const ASN1_OBJECT *obj,
1150
+ int attrtype,
1151
+ const unsigned char *data,
903
1152
  int len);
904
- OPENSSL_EXPORT int X509_REQ_add1_attr_by_NID(X509_REQ *req, int nid, int type,
905
- const unsigned char *bytes,
1153
+
1154
+ // X509_REQ_add1_attr_by_NID behaves like |X509_REQ_add1_attr_by_OBJ| except the
1155
+ // attribute type is determined by |nid|.
1156
+ OPENSSL_EXPORT int X509_REQ_add1_attr_by_NID(X509_REQ *req, int nid,
1157
+ int attrtype,
1158
+ const unsigned char *data,
906
1159
  int len);
1160
+
1161
+ // X509_REQ_add1_attr_by_txt behaves like |X509_REQ_add1_attr_by_OBJ| except the
1162
+ // attribute type is determined by calling |OBJ_txt2obj| with |attrname|.
907
1163
  OPENSSL_EXPORT int X509_REQ_add1_attr_by_txt(X509_REQ *req,
908
- const char *attrname, int type,
909
- const unsigned char *bytes,
1164
+ const char *attrname, int attrtype,
1165
+ const unsigned char *data,
910
1166
  int len);
911
1167
 
912
- OPENSSL_EXPORT int X509_CRL_set_version(X509_CRL *x, long version);
913
- OPENSSL_EXPORT int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name);
914
- OPENSSL_EXPORT int X509_CRL_set_lastUpdate(X509_CRL *x, const ASN1_TIME *tm);
915
- OPENSSL_EXPORT int X509_CRL_set_nextUpdate(X509_CRL *x, const ASN1_TIME *tm);
1168
+ // X509_CRL_set_version sets |crl|'s version to |version|, which should be one
1169
+ // of the |X509_CRL_VERSION_*| constants. It returns one on success and zero on
1170
+ // error.
1171
+ //
1172
+ // If unsure, use |X509_CRL_VERSION_2|. Note that, unlike certificates, CRL
1173
+ // versions are only defined up to v2. Callers should not use |X509_VERSION_3|.
1174
+ OPENSSL_EXPORT int X509_CRL_set_version(X509_CRL *crl, long version);
1175
+
1176
+ // X509_CRL_set_issuer_name sets |crl|'s issuer to a copy of |name|. It returns
1177
+ // one on success and zero on error.
1178
+ OPENSSL_EXPORT int X509_CRL_set_issuer_name(X509_CRL *crl, X509_NAME *name);
1179
+
916
1180
  OPENSSL_EXPORT int X509_CRL_sort(X509_CRL *crl);
1181
+
1182
+ // X509_CRL_up_ref adds one to the reference count of |crl| and returns one.
917
1183
  OPENSSL_EXPORT int X509_CRL_up_ref(X509_CRL *crl);
918
1184
 
1185
+ // X509_CRL_get0_signature sets |*out_sig| and |*out_alg| to the signature and
1186
+ // signature algorithm of |crl|, respectively. Either output pointer may be NULL
1187
+ // to ignore the value.
1188
+ //
1189
+ // This function outputs the outer signature algorithm, not the one in the
1190
+ // TBSCertList. CRLs with mismatched signature algorithms will successfully
1191
+ // parse, but they will be rejected when verifying.
919
1192
  OPENSSL_EXPORT void X509_CRL_get0_signature(const X509_CRL *crl,
920
- const ASN1_BIT_STRING **psig,
921
- const X509_ALGOR **palg);
1193
+ const ASN1_BIT_STRING **out_sig,
1194
+ const X509_ALGOR **out_alg);
1195
+
1196
+ // X509_CRL_get_signature_nid returns the NID corresponding to |crl|'s signature
1197
+ // algorithm, or |NID_undef| if the signature algorithm does not correspond to
1198
+ // a known NID.
922
1199
  OPENSSL_EXPORT int X509_CRL_get_signature_nid(const X509_CRL *crl);
923
- OPENSSL_EXPORT int i2d_re_X509_CRL_tbs(X509_CRL *req, unsigned char **pp);
924
1200
 
1201
+ // i2d_re_X509_CRL_tbs serializes the TBSCertList portion of |crl|, as described
1202
+ // in |i2d_SAMPLE|.
1203
+ //
1204
+ // This function re-encodes the TBSCertList and may not reflect |crl|'s original
1205
+ // encoding. It may be used to manually generate a signature for a new CRL. To
1206
+ // verify CRLs, use |i2d_X509_CRL_tbs| instead.
1207
+ OPENSSL_EXPORT int i2d_re_X509_CRL_tbs(X509_CRL *crl, unsigned char **outp);
1208
+
1209
+ // i2d_X509_CRL_tbs serializes the TBSCertList portion of |crl|, as described in
1210
+ // |i2d_SAMPLE|.
1211
+ //
1212
+ // This function preserves the original encoding of the TBSCertList and may not
1213
+ // reflect modifications made to |crl|. It may be used to manually verify the
1214
+ // signature of an existing CRL. To generate CRLs, use |i2d_re_X509_CRL_tbs|
1215
+ // instead.
1216
+ OPENSSL_EXPORT int i2d_X509_CRL_tbs(X509_CRL *crl, unsigned char **outp);
1217
+
1218
+ // X509_CRL_set1_signature_algo sets |crl|'s signature algorithm to |algo| and
1219
+ // returns one on success or zero on error. It updates both the signature field
1220
+ // of the TBSCertList structure, and the signatureAlgorithm field of the CRL.
1221
+ OPENSSL_EXPORT int X509_CRL_set1_signature_algo(X509_CRL *crl,
1222
+ const X509_ALGOR *algo);
1223
+
1224
+ // X509_CRL_set1_signature_value sets |crl|'s signature to a copy of the
1225
+ // |sig_len| bytes pointed by |sig|. It returns one on success and zero on
1226
+ // error.
1227
+ //
1228
+ // Due to a specification error, X.509 CRLs store signatures in ASN.1 BIT
1229
+ // STRINGs, but signature algorithms return byte strings rather than bit
1230
+ // strings. This function creates a BIT STRING containing a whole number of
1231
+ // bytes, with the bit order matching the DER encoding. This matches the
1232
+ // encoding used by all X.509 signature algorithms.
1233
+ OPENSSL_EXPORT int X509_CRL_set1_signature_value(X509_CRL *crl,
1234
+ const uint8_t *sig,
1235
+ size_t sig_len);
1236
+
1237
+ // X509_REVOKED_get0_serialNumber returns the serial number of the certificate
1238
+ // revoked by |revoked|.
925
1239
  OPENSSL_EXPORT const ASN1_INTEGER *X509_REVOKED_get0_serialNumber(
926
- const X509_REVOKED *x);
927
- OPENSSL_EXPORT int X509_REVOKED_set_serialNumber(X509_REVOKED *x,
928
- ASN1_INTEGER *serial);
1240
+ const X509_REVOKED *revoked);
1241
+
1242
+ // X509_REVOKED_set_serialNumber sets |revoked|'s serial number to |serial|. It
1243
+ // returns one on success or zero on error.
1244
+ OPENSSL_EXPORT int X509_REVOKED_set_serialNumber(X509_REVOKED *revoked,
1245
+ const ASN1_INTEGER *serial);
1246
+
1247
+ // X509_REVOKED_get0_revocationDate returns the revocation time of the
1248
+ // certificate revoked by |revoked|.
929
1249
  OPENSSL_EXPORT const ASN1_TIME *X509_REVOKED_get0_revocationDate(
930
- const X509_REVOKED *x);
931
- OPENSSL_EXPORT int X509_REVOKED_set_revocationDate(X509_REVOKED *r,
932
- ASN1_TIME *tm);
1250
+ const X509_REVOKED *revoked);
1251
+
1252
+ // X509_REVOKED_set_revocationDate sets |revoked|'s revocation time to |tm|. It
1253
+ // returns one on success or zero on error.
1254
+ OPENSSL_EXPORT int X509_REVOKED_set_revocationDate(X509_REVOKED *revoked,
1255
+ const ASN1_TIME *tm);
1256
+
1257
+ // X509_REVOKED_get0_extensions returns |r|'s extensions list, or NULL if |r|
1258
+ // omits it.
1259
+ OPENSSL_EXPORT const STACK_OF(X509_EXTENSION) *X509_REVOKED_get0_extensions(
1260
+ const X509_REVOKED *r);
933
1261
 
934
1262
  OPENSSL_EXPORT X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer,
935
1263
  EVP_PKEY *skey, const EVP_MD *md,
@@ -939,14 +1267,18 @@ OPENSSL_EXPORT int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey);
939
1267
 
940
1268
  OPENSSL_EXPORT int X509_check_private_key(X509 *x509, const EVP_PKEY *pkey);
941
1269
  OPENSSL_EXPORT int X509_chain_check_suiteb(int *perror_depth, X509 *x,
942
- STACK_OF(X509) * chain,
1270
+ STACK_OF(X509) *chain,
943
1271
  unsigned long flags);
944
1272
  OPENSSL_EXPORT int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk,
945
1273
  unsigned long flags);
946
- OPENSSL_EXPORT STACK_OF(X509) * X509_chain_up_ref(STACK_OF(X509) * chain);
1274
+
1275
+ // X509_chain_up_ref returns a newly-allocated |STACK_OF(X509)| containing a
1276
+ // shallow copy of |chain|, or NULL on error. That is, the return value has the
1277
+ // same contents as |chain|, and each |X509|'s reference count is incremented by
1278
+ // one.
1279
+ OPENSSL_EXPORT STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain);
947
1280
 
948
1281
  OPENSSL_EXPORT int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b);
949
- OPENSSL_EXPORT unsigned long X509_issuer_and_serial_hash(X509 *a);
950
1282
 
951
1283
  OPENSSL_EXPORT int X509_issuer_name_cmp(const X509 *a, const X509 *b);
952
1284
  OPENSSL_EXPORT unsigned long X509_issuer_name_hash(X509 *a);
@@ -964,18 +1296,16 @@ OPENSSL_EXPORT unsigned long X509_NAME_hash_old(X509_NAME *x);
964
1296
 
965
1297
  OPENSSL_EXPORT int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b);
966
1298
  OPENSSL_EXPORT int X509_CRL_match(const X509_CRL *a, const X509_CRL *b);
967
- #ifndef OPENSSL_NO_FP_API
968
1299
  OPENSSL_EXPORT int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag,
969
1300
  unsigned long cflag);
970
1301
  OPENSSL_EXPORT int X509_print_fp(FILE *bp, X509 *x);
971
1302
  OPENSSL_EXPORT int X509_CRL_print_fp(FILE *bp, X509_CRL *x);
972
1303
  OPENSSL_EXPORT int X509_REQ_print_fp(FILE *bp, X509_REQ *req);
973
- OPENSSL_EXPORT int X509_NAME_print_ex_fp(FILE *fp, X509_NAME *nm, int indent,
974
- unsigned long flags);
975
- #endif
1304
+ OPENSSL_EXPORT int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm,
1305
+ int indent, unsigned long flags);
976
1306
 
977
- OPENSSL_EXPORT int X509_NAME_print(BIO *bp, X509_NAME *name, int obase);
978
- OPENSSL_EXPORT int X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent,
1307
+ OPENSSL_EXPORT int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase);
1308
+ OPENSSL_EXPORT int X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent,
979
1309
  unsigned long flags);
980
1310
  OPENSSL_EXPORT int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag,
981
1311
  unsigned long cflag);
@@ -987,21 +1317,22 @@ OPENSSL_EXPORT int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag,
987
1317
  unsigned long cflag);
988
1318
  OPENSSL_EXPORT int X509_REQ_print(BIO *bp, X509_REQ *req);
989
1319
 
990
- OPENSSL_EXPORT int X509_NAME_entry_count(X509_NAME *name);
991
- OPENSSL_EXPORT int X509_NAME_get_text_by_NID(X509_NAME *name, int nid,
1320
+ OPENSSL_EXPORT int X509_NAME_entry_count(const X509_NAME *name);
1321
+ OPENSSL_EXPORT int X509_NAME_get_text_by_NID(const X509_NAME *name, int nid,
992
1322
  char *buf, int len);
993
- OPENSSL_EXPORT int X509_NAME_get_text_by_OBJ(X509_NAME *name,
1323
+ OPENSSL_EXPORT int X509_NAME_get_text_by_OBJ(const X509_NAME *name,
994
1324
  const ASN1_OBJECT *obj, char *buf,
995
1325
  int len);
996
1326
 
997
1327
  // NOTE: you should be passsing -1, not 0 as lastpos. The functions that use
998
1328
  // lastpos, search after that position on.
999
- OPENSSL_EXPORT int X509_NAME_get_index_by_NID(X509_NAME *name, int nid,
1329
+ OPENSSL_EXPORT int X509_NAME_get_index_by_NID(const X509_NAME *name, int nid,
1000
1330
  int lastpos);
1001
- OPENSSL_EXPORT int X509_NAME_get_index_by_OBJ(X509_NAME *name,
1331
+ OPENSSL_EXPORT int X509_NAME_get_index_by_OBJ(const X509_NAME *name,
1002
1332
  const ASN1_OBJECT *obj,
1003
1333
  int lastpos);
1004
- OPENSSL_EXPORT X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *name, int loc);
1334
+ OPENSSL_EXPORT X509_NAME_ENTRY *X509_NAME_get_entry(const X509_NAME *name,
1335
+ int loc);
1005
1336
  OPENSSL_EXPORT X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name,
1006
1337
  int loc);
1007
1338
  OPENSSL_EXPORT int X509_NAME_add_entry(X509_NAME *name, X509_NAME_ENTRY *ne,
@@ -1032,133 +1363,425 @@ OPENSSL_EXPORT int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne,
1032
1363
  OPENSSL_EXPORT int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type,
1033
1364
  const unsigned char *bytes,
1034
1365
  int len);
1035
- OPENSSL_EXPORT ASN1_OBJECT *X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne);
1036
- OPENSSL_EXPORT ASN1_STRING *X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne);
1366
+ OPENSSL_EXPORT ASN1_OBJECT *X509_NAME_ENTRY_get_object(
1367
+ const X509_NAME_ENTRY *ne);
1368
+ OPENSSL_EXPORT ASN1_STRING *X509_NAME_ENTRY_get_data(const X509_NAME_ENTRY *ne);
1037
1369
 
1038
- OPENSSL_EXPORT int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) * x);
1039
- OPENSSL_EXPORT int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) * x,
1370
+ // X509v3_get_ext_count returns the number of extensions in |x|.
1371
+ OPENSSL_EXPORT int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x);
1372
+
1373
+ // X509v3_get_ext_by_NID returns the index of the first extension in |x| with
1374
+ // type |nid|, or a negative number if not found. If found, callers can use
1375
+ // |X509v3_get_ext| to look up the extension by index.
1376
+ //
1377
+ // If |lastpos| is non-negative, it begins searching at |lastpos| + 1. Callers
1378
+ // can thus loop over all matching extensions by first passing -1 and then
1379
+ // passing the previously-returned value until no match is returned.
1380
+ OPENSSL_EXPORT int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x,
1040
1381
  int nid, int lastpos);
1041
- OPENSSL_EXPORT int X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) * x,
1382
+
1383
+ // X509v3_get_ext_by_OBJ behaves like |X509v3_get_ext_by_NID| but looks for
1384
+ // extensions matching |obj|.
1385
+ OPENSSL_EXPORT int X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *x,
1042
1386
  const ASN1_OBJECT *obj, int lastpos);
1043
- OPENSSL_EXPORT int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *
1044
- x,
1387
+
1388
+ // X509v3_get_ext_by_critical returns the index of the first extension in |x|
1389
+ // whose critical bit matches |crit|, or a negative number if no such extension
1390
+ // was found.
1391
+ //
1392
+ // If |lastpos| is non-negative, it begins searching at |lastpos| + 1. Callers
1393
+ // can thus loop over all matching extensions by first passing -1 and then
1394
+ // passing the previously-returned value until no match is returned.
1395
+ OPENSSL_EXPORT int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *x,
1045
1396
  int crit, int lastpos);
1046
- OPENSSL_EXPORT X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *
1047
- x,
1397
+
1398
+ // X509v3_get_ext returns the extension in |x| at index |loc|, or NULL if |loc|
1399
+ // is out of bounds.
1400
+ OPENSSL_EXPORT X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x,
1048
1401
  int loc);
1049
- OPENSSL_EXPORT X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) * x,
1402
+
1403
+ // X509v3_delete_ext removes the extension in |x| at index |loc| and returns the
1404
+ // removed extension, or NULL if |loc| was out of bounds. If an extension was
1405
+ // returned, the caller must release it with |X509_EXTENSION_free|.
1406
+ OPENSSL_EXPORT X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x,
1050
1407
  int loc);
1051
- OPENSSL_EXPORT STACK_OF(X509_EXTENSION) *
1052
- X509v3_add_ext(STACK_OF(X509_EXTENSION) * *x, X509_EXTENSION *ex, int loc);
1053
-
1054
- OPENSSL_EXPORT int X509_get_ext_count(X509 *x);
1055
- OPENSSL_EXPORT int X509_get_ext_by_NID(X509 *x, int nid, int lastpos);
1056
- OPENSSL_EXPORT int X509_get_ext_by_OBJ(X509 *x, ASN1_OBJECT *obj, int lastpos);
1057
- OPENSSL_EXPORT int X509_get_ext_by_critical(X509 *x, int crit, int lastpos);
1058
- OPENSSL_EXPORT X509_EXTENSION *X509_get_ext(X509 *x, int loc);
1408
+
1409
+ // X509v3_add_ext adds a copy of |ex| to the extension list in |*x|. If |*x| is
1410
+ // NULL, it allocates a new |STACK_OF(X509_EXTENSION)| to hold the copy and sets
1411
+ // |*x| to the new list. It returns |*x| on success and NULL on error. The
1412
+ // caller retains ownership of |ex| and can release it independently of |*x|.
1413
+ //
1414
+ // The new extension is inserted at index |loc|, shifting extensions to the
1415
+ // right. If |loc| is -1 or out of bounds, the new extension is appended to the
1416
+ // list.
1417
+ OPENSSL_EXPORT STACK_OF(X509_EXTENSION) *X509v3_add_ext(
1418
+ STACK_OF(X509_EXTENSION) **x, X509_EXTENSION *ex, int loc);
1419
+
1420
+ // X509_get_ext_count returns the number of extensions in |x|.
1421
+ OPENSSL_EXPORT int X509_get_ext_count(const X509 *x);
1422
+
1423
+ // X509_get_ext_by_NID behaves like |X509v3_get_ext_by_NID| but searches for
1424
+ // extensions in |x|.
1425
+ OPENSSL_EXPORT int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos);
1426
+
1427
+ // X509_get_ext_by_OBJ behaves like |X509v3_get_ext_by_OBJ| but searches for
1428
+ // extensions in |x|.
1429
+ OPENSSL_EXPORT int X509_get_ext_by_OBJ(const X509 *x, const ASN1_OBJECT *obj,
1430
+ int lastpos);
1431
+
1432
+ // X509_get_ext_by_critical behaves like |X509v3_get_ext_by_critical| but
1433
+ // searches for extensions in |x|.
1434
+ OPENSSL_EXPORT int X509_get_ext_by_critical(const X509 *x, int crit,
1435
+ int lastpos);
1436
+
1437
+ // X509_get_ext returns the extension in |x| at index |loc|, or NULL if |loc| is
1438
+ // out of bounds.
1439
+ OPENSSL_EXPORT X509_EXTENSION *X509_get_ext(const X509 *x, int loc);
1440
+
1441
+ // X509_delete_ext removes the extension in |x| at index |loc| and returns the
1442
+ // removed extension, or NULL if |loc| was out of bounds. If non-NULL, the
1443
+ // caller must release the result with |X509_EXTENSION_free|. It is also safe,
1444
+ // but not necessary, to call |X509_EXTENSION_free| if the result is NULL.
1059
1445
  OPENSSL_EXPORT X509_EXTENSION *X509_delete_ext(X509 *x, int loc);
1446
+
1447
+ // X509_add_ext adds a copy of |ex| to |x|. It returns one on success and zero
1448
+ // on failure. The caller retains ownership of |ex| and can release it
1449
+ // independently of |x|.
1450
+ //
1451
+ // The new extension is inserted at index |loc|, shifting extensions to the
1452
+ // right. If |loc| is -1 or out of bounds, the new extension is appended to the
1453
+ // list.
1060
1454
  OPENSSL_EXPORT int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc);
1061
- OPENSSL_EXPORT void *X509_get_ext_d2i(X509 *x, int nid, int *crit, int *idx);
1455
+
1456
+ // X509_get_ext_d2i behaves like |X509V3_get_d2i| but looks for the extension in
1457
+ // |x509|'s extension list.
1458
+ //
1459
+ // WARNING: This function is difficult to use correctly. See the documentation
1460
+ // for |X509V3_get_d2i| for details.
1461
+ OPENSSL_EXPORT void *X509_get_ext_d2i(const X509 *x509, int nid,
1462
+ int *out_critical, int *out_idx);
1463
+
1464
+ // X509_add1_ext_i2d behaves like |X509V3_add1_i2d| but adds the extension to
1465
+ // |x|'s extension list.
1466
+ //
1467
+ // WARNING: This function may return zero or -1 on error. The caller must also
1468
+ // ensure |value|'s type matches |nid|. See the documentation for
1469
+ // |X509V3_add1_i2d| for details.
1062
1470
  OPENSSL_EXPORT int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit,
1063
1471
  unsigned long flags);
1064
1472
 
1065
- OPENSSL_EXPORT int X509_CRL_get_ext_count(X509_CRL *x);
1066
- OPENSSL_EXPORT int X509_CRL_get_ext_by_NID(X509_CRL *x, int nid, int lastpos);
1067
- OPENSSL_EXPORT int X509_CRL_get_ext_by_OBJ(X509_CRL *x, ASN1_OBJECT *obj,
1473
+ // X509_CRL_get_ext_count returns the number of extensions in |x|.
1474
+ OPENSSL_EXPORT int X509_CRL_get_ext_count(const X509_CRL *x);
1475
+
1476
+ // X509_CRL_get_ext_by_NID behaves like |X509v3_get_ext_by_NID| but searches for
1477
+ // extensions in |x|.
1478
+ OPENSSL_EXPORT int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid,
1068
1479
  int lastpos);
1069
- OPENSSL_EXPORT int X509_CRL_get_ext_by_critical(X509_CRL *x, int crit,
1480
+
1481
+ // X509_CRL_get_ext_by_OBJ behaves like |X509v3_get_ext_by_OBJ| but searches for
1482
+ // extensions in |x|.
1483
+ OPENSSL_EXPORT int X509_CRL_get_ext_by_OBJ(const X509_CRL *x,
1484
+ const ASN1_OBJECT *obj, int lastpos);
1485
+
1486
+ // X509_CRL_get_ext_by_critical behaves like |X509v3_get_ext_by_critical| but
1487
+ // searches for extensions in |x|.
1488
+ OPENSSL_EXPORT int X509_CRL_get_ext_by_critical(const X509_CRL *x, int crit,
1070
1489
  int lastpos);
1071
- OPENSSL_EXPORT X509_EXTENSION *X509_CRL_get_ext(X509_CRL *x, int loc);
1490
+
1491
+ // X509_CRL_get_ext returns the extension in |x| at index |loc|, or NULL if
1492
+ // |loc| is out of bounds.
1493
+ OPENSSL_EXPORT X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc);
1494
+
1495
+ // X509_CRL_delete_ext removes the extension in |x| at index |loc| and returns
1496
+ // the removed extension, or NULL if |loc| was out of bounds. If non-NULL, the
1497
+ // caller must release the result with |X509_EXTENSION_free|. It is also safe,
1498
+ // but not necessary, to call |X509_EXTENSION_free| if the result is NULL.
1072
1499
  OPENSSL_EXPORT X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc);
1500
+
1501
+ // X509_CRL_add_ext adds a copy of |ex| to |x|. It returns one on success and
1502
+ // zero on failure. The caller retains ownership of |ex| and can release it
1503
+ // independently of |x|.
1504
+ //
1505
+ // The new extension is inserted at index |loc|, shifting extensions to the
1506
+ // right. If |loc| is -1 or out of bounds, the new extension is appended to the
1507
+ // list.
1073
1508
  OPENSSL_EXPORT int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc);
1074
- OPENSSL_EXPORT void *X509_CRL_get_ext_d2i(X509_CRL *x, int nid, int *crit,
1075
- int *idx);
1509
+
1510
+ // X509_CRL_get_ext_d2i behaves like |X509V3_get_d2i| but looks for the
1511
+ // extension in |crl|'s extension list.
1512
+ //
1513
+ // WARNING: This function is difficult to use correctly. See the documentation
1514
+ // for |X509V3_get_d2i| for details.
1515
+ OPENSSL_EXPORT void *X509_CRL_get_ext_d2i(const X509_CRL *crl, int nid,
1516
+ int *out_critical, int *out_idx);
1517
+
1518
+ // X509_CRL_add1_ext_i2d behaves like |X509V3_add1_i2d| but adds the extension
1519
+ // to |x|'s extension list.
1520
+ //
1521
+ // WARNING: This function may return zero or -1 on error. The caller must also
1522
+ // ensure |value|'s type matches |nid|. See the documentation for
1523
+ // |X509V3_add1_i2d| for details.
1076
1524
  OPENSSL_EXPORT int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value,
1077
1525
  int crit, unsigned long flags);
1078
1526
 
1079
- OPENSSL_EXPORT int X509_REVOKED_get_ext_count(X509_REVOKED *x);
1080
- OPENSSL_EXPORT int X509_REVOKED_get_ext_by_NID(X509_REVOKED *x, int nid,
1527
+ // X509_REVOKED_get_ext_count returns the number of extensions in |x|.
1528
+ OPENSSL_EXPORT int X509_REVOKED_get_ext_count(const X509_REVOKED *x);
1529
+
1530
+ // X509_REVOKED_get_ext_by_NID behaves like |X509v3_get_ext_by_NID| but searches
1531
+ // for extensions in |x|.
1532
+ OPENSSL_EXPORT int X509_REVOKED_get_ext_by_NID(const X509_REVOKED *x, int nid,
1533
+ int lastpos);
1534
+
1535
+ // X509_REVOKED_get_ext_by_OBJ behaves like |X509v3_get_ext_by_OBJ| but searches
1536
+ // for extensions in |x|.
1537
+ OPENSSL_EXPORT int X509_REVOKED_get_ext_by_OBJ(const X509_REVOKED *x,
1538
+ const ASN1_OBJECT *obj,
1081
1539
  int lastpos);
1082
- OPENSSL_EXPORT int X509_REVOKED_get_ext_by_OBJ(X509_REVOKED *x,
1083
- ASN1_OBJECT *obj, int lastpos);
1084
- OPENSSL_EXPORT int X509_REVOKED_get_ext_by_critical(X509_REVOKED *x, int crit,
1085
- int lastpos);
1086
- OPENSSL_EXPORT X509_EXTENSION *X509_REVOKED_get_ext(X509_REVOKED *x, int loc);
1540
+
1541
+ // X509_REVOKED_get_ext_by_critical behaves like |X509v3_get_ext_by_critical|
1542
+ // but searches for extensions in |x|.
1543
+ OPENSSL_EXPORT int X509_REVOKED_get_ext_by_critical(const X509_REVOKED *x,
1544
+ int crit, int lastpos);
1545
+
1546
+ // X509_REVOKED_get_ext returns the extension in |x| at index |loc|, or NULL if
1547
+ // |loc| is out of bounds.
1548
+ OPENSSL_EXPORT X509_EXTENSION *X509_REVOKED_get_ext(const X509_REVOKED *x,
1549
+ int loc);
1550
+
1551
+ // X509_REVOKED_delete_ext removes the extension in |x| at index |loc| and
1552
+ // returns the removed extension, or NULL if |loc| was out of bounds. If
1553
+ // non-NULL, the caller must release the result with |X509_EXTENSION_free|. It
1554
+ // is also safe, but not necessary, to call |X509_EXTENSION_free| if the result
1555
+ // is NULL.
1087
1556
  OPENSSL_EXPORT X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x,
1088
1557
  int loc);
1558
+
1559
+ // X509_REVOKED_add_ext adds a copy of |ex| to |x|. It returns one on success
1560
+ // and zero on failure. The caller retains ownership of |ex| and can release it
1561
+ // independently of |x|.
1562
+ //
1563
+ // The new extension is inserted at index |loc|, shifting extensions to the
1564
+ // right. If |loc| is -1 or out of bounds, the new extension is appended to the
1565
+ // list.
1089
1566
  OPENSSL_EXPORT int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex,
1090
1567
  int loc);
1091
- OPENSSL_EXPORT void *X509_REVOKED_get_ext_d2i(X509_REVOKED *x, int nid,
1092
- int *crit, int *idx);
1568
+
1569
+ // X509_REVOKED_get_ext_d2i behaves like |X509V3_get_d2i| but looks for the
1570
+ // extension in |revoked|'s extension list.
1571
+ //
1572
+ // WARNING: This function is difficult to use correctly. See the documentation
1573
+ // for |X509V3_get_d2i| for details.
1574
+ OPENSSL_EXPORT void *X509_REVOKED_get_ext_d2i(const X509_REVOKED *revoked,
1575
+ int nid, int *out_critical,
1576
+ int *out_idx);
1577
+
1578
+ // X509_REVOKED_add1_ext_i2d behaves like |X509V3_add1_i2d| but adds the
1579
+ // extension to |x|'s extension list.
1580
+ //
1581
+ // WARNING: This function may return zero or -1 on error. The caller must also
1582
+ // ensure |value|'s type matches |nid|. See the documentation for
1583
+ // |X509V3_add1_i2d| for details.
1093
1584
  OPENSSL_EXPORT int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid,
1094
1585
  void *value, int crit,
1095
1586
  unsigned long flags);
1096
1587
 
1588
+ // X509_EXTENSION_create_by_NID creates a new |X509_EXTENSION| with type |nid|,
1589
+ // value |data|, and critical bit |crit|. It returns the newly-allocated
1590
+ // |X509_EXTENSION| on success, and false on error. |nid| should be a |NID_*|
1591
+ // constant.
1592
+ //
1593
+ // If |ex| and |*ex| are both non-NULL, it modifies and returns |*ex| instead of
1594
+ // creating a new object. If |ex| is non-NULL, but |*ex| is NULL, it sets |*ex|
1595
+ // to the new |X509_EXTENSION|, in addition to returning the result.
1097
1596
  OPENSSL_EXPORT X509_EXTENSION *X509_EXTENSION_create_by_NID(
1098
- X509_EXTENSION **ex, int nid, int crit, ASN1_OCTET_STRING *data);
1597
+ X509_EXTENSION **ex, int nid, int crit, const ASN1_OCTET_STRING *data);
1598
+
1599
+ // X509_EXTENSION_create_by_OBJ behaves like |X509_EXTENSION_create_by_NID|, but
1600
+ // the extension type is determined by an |ASN1_OBJECT|.
1099
1601
  OPENSSL_EXPORT X509_EXTENSION *X509_EXTENSION_create_by_OBJ(
1100
1602
  X509_EXTENSION **ex, const ASN1_OBJECT *obj, int crit,
1101
- ASN1_OCTET_STRING *data);
1603
+ const ASN1_OCTET_STRING *data);
1604
+
1605
+ // X509_EXTENSION_set_object sets |ex|'s extension type to |obj|. It returns one
1606
+ // on success and zero on error.
1102
1607
  OPENSSL_EXPORT int X509_EXTENSION_set_object(X509_EXTENSION *ex,
1103
1608
  const ASN1_OBJECT *obj);
1609
+
1610
+ // X509_EXTENSION_set_critical sets |ex| to critical if |crit| is non-zero and
1611
+ // to non-critical if |crit| is zero.
1104
1612
  OPENSSL_EXPORT int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit);
1613
+
1614
+ // X509_EXTENSION_set_data set's |ex|'s extension value to a copy of |data|. It
1615
+ // returns one on success and zero on error.
1105
1616
  OPENSSL_EXPORT int X509_EXTENSION_set_data(X509_EXTENSION *ex,
1106
- ASN1_OCTET_STRING *data);
1617
+ const ASN1_OCTET_STRING *data);
1618
+
1619
+ // X509_EXTENSION_get_object returns |ex|'s extension type.
1107
1620
  OPENSSL_EXPORT ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex);
1621
+
1622
+ // X509_EXTENSION_get_data returns |ne|'s extension value.
1108
1623
  OPENSSL_EXPORT ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne);
1109
- OPENSSL_EXPORT int X509_EXTENSION_get_critical(X509_EXTENSION *ex);
1110
1624
 
1111
- OPENSSL_EXPORT int X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) * x);
1112
- OPENSSL_EXPORT int X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) * x,
1625
+ // X509_EXTENSION_get_critical returns one if |ex| is critical and zero
1626
+ // otherwise.
1627
+ OPENSSL_EXPORT int X509_EXTENSION_get_critical(const X509_EXTENSION *ex);
1628
+
1629
+ // X509at_get_attr_count returns the number of attributes in |x|.
1630
+ OPENSSL_EXPORT int X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) *x);
1631
+
1632
+ // X509at_get_attr_by_NID returns the index of the attribute in |x| of type
1633
+ // |nid|, or a negative number if not found. If found, callers can use
1634
+ // |X509at_get_attr| to look up the attribute by index.
1635
+ //
1636
+ // If |lastpos| is non-negative, it begins searching at |lastpos| + 1. Callers
1637
+ // can thus loop over all matching attributes by first passing -1 and then
1638
+ // passing the previously-returned value until no match is returned.
1639
+ OPENSSL_EXPORT int X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) *x,
1113
1640
  int nid, int lastpos);
1114
- OPENSSL_EXPORT int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) * sk,
1641
+
1642
+ // X509at_get_attr_by_OBJ behaves like |X509at_get_attr_by_NID| but looks for
1643
+ // attributes of type |obj|.
1644
+ OPENSSL_EXPORT int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk,
1115
1645
  const ASN1_OBJECT *obj, int lastpos);
1116
- OPENSSL_EXPORT X509_ATTRIBUTE *X509at_get_attr(const STACK_OF(X509_ATTRIBUTE) *
1117
- x,
1118
- int loc);
1119
- OPENSSL_EXPORT X509_ATTRIBUTE *X509at_delete_attr(STACK_OF(X509_ATTRIBUTE) * x,
1646
+
1647
+ // X509at_get_attr returns the attribute at index |loc| in |x|, or NULL if
1648
+ // out of bounds.
1649
+ OPENSSL_EXPORT X509_ATTRIBUTE *X509at_get_attr(
1650
+ const STACK_OF(X509_ATTRIBUTE) *x, int loc);
1651
+
1652
+ // X509at_delete_attr removes the attribute at index |loc| in |x|. It returns
1653
+ // the removed attribute to the caller, or NULL if |loc| was out of bounds. If
1654
+ // non-NULL, the caller must release the result with |X509_ATTRIBUTE_free| when
1655
+ // done. It is also safe, but not necessary, to call |X509_ATTRIBUTE_free| if
1656
+ // the result is NULL.
1657
+ OPENSSL_EXPORT X509_ATTRIBUTE *X509at_delete_attr(STACK_OF(X509_ATTRIBUTE) *x,
1120
1658
  int loc);
1121
- OPENSSL_EXPORT STACK_OF(X509_ATTRIBUTE) *
1122
- X509at_add1_attr(STACK_OF(X509_ATTRIBUTE) * *x, X509_ATTRIBUTE *attr);
1123
- OPENSSL_EXPORT STACK_OF(X509_ATTRIBUTE) *
1124
- X509at_add1_attr_by_OBJ(STACK_OF(X509_ATTRIBUTE) * *x,
1125
- const ASN1_OBJECT *obj, int type,
1126
- const unsigned char *bytes, int len);
1127
- OPENSSL_EXPORT STACK_OF(X509_ATTRIBUTE) *
1128
- X509at_add1_attr_by_NID(STACK_OF(X509_ATTRIBUTE) * *x, int nid, int type,
1129
- const unsigned char *bytes, int len);
1130
- OPENSSL_EXPORT STACK_OF(X509_ATTRIBUTE) *
1131
- X509at_add1_attr_by_txt(STACK_OF(X509_ATTRIBUTE) * *x, const char *attrname,
1132
- int type, const unsigned char *bytes, int len);
1133
- OPENSSL_EXPORT void *X509at_get0_data_by_OBJ(STACK_OF(X509_ATTRIBUTE) * x,
1134
- ASN1_OBJECT *obj, int lastpos,
1135
- int type);
1659
+
1660
+ // X509at_add1_attr appends a copy of |attr| to the attribute list in |*x|. If
1661
+ // |*x| is NULL, it allocates a new |STACK_OF(X509_ATTRIBUTE)| to hold the copy
1662
+ // and sets |*x| to the new list. It returns |*x| on success and NULL on error.
1663
+ // The caller retains ownership of |attr| and can release it independently of
1664
+ // |*x|.
1665
+ OPENSSL_EXPORT STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr(
1666
+ STACK_OF(X509_ATTRIBUTE) **x, X509_ATTRIBUTE *attr);
1667
+
1668
+ // X509at_add1_attr_by_OBJ behaves like |X509at_add1_attr|, but adds an
1669
+ // attribute created by |X509_ATTRIBUTE_create_by_OBJ|.
1670
+ OPENSSL_EXPORT STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_OBJ(
1671
+ STACK_OF(X509_ATTRIBUTE) **x, const ASN1_OBJECT *obj, int type,
1672
+ const unsigned char *bytes, int len);
1673
+
1674
+ // X509at_add1_attr_by_NID behaves like |X509at_add1_attr|, but adds an
1675
+ // attribute created by |X509_ATTRIBUTE_create_by_NID|.
1676
+ OPENSSL_EXPORT STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_NID(
1677
+ STACK_OF(X509_ATTRIBUTE) **x, int nid, int type, const unsigned char *bytes,
1678
+ int len);
1679
+
1680
+ // X509at_add1_attr_by_txt behaves like |X509at_add1_attr|, but adds an
1681
+ // attribute created by |X509_ATTRIBUTE_create_by_txt|.
1682
+ OPENSSL_EXPORT STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_txt(
1683
+ STACK_OF(X509_ATTRIBUTE) **x, const char *attrname, int type,
1684
+ const unsigned char *bytes, int len);
1685
+
1686
+ // X509_ATTRIBUTE_create_by_NID returns a newly-allocated |X509_ATTRIBUTE| of
1687
+ // type |nid|, or NULL on error. The value is determined as in
1688
+ // |X509_ATTRIBUTE_set1_data|.
1689
+ //
1690
+ // If |attr| is non-NULL, the resulting |X509_ATTRIBUTE| is also written to
1691
+ // |*attr|. If |*attr| was non-NULL when the function was called, |*attr| is
1692
+ // reused instead of creating a new object.
1693
+ //
1694
+ // WARNING: The interpretation of |attrtype|, |data|, and |len| is complex and
1695
+ // error-prone. See |X509_ATTRIBUTE_set1_data| for details.
1696
+ //
1697
+ // WARNING: The object reuse form is deprecated and may be removed in the
1698
+ // future. It also currently incorrectly appends to the reused object's value
1699
+ // set rather than overwriting it.
1136
1700
  OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(
1137
- X509_ATTRIBUTE **attr, int nid, int atrtype, const void *data, int len);
1701
+ X509_ATTRIBUTE **attr, int nid, int attrtype, const void *data, int len);
1702
+
1703
+ // X509_ATTRIBUTE_create_by_OBJ behaves like |X509_ATTRIBUTE_create_by_NID|
1704
+ // except the attribute's type is determined by |obj|.
1138
1705
  OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(
1139
- X509_ATTRIBUTE **attr, const ASN1_OBJECT *obj, int atrtype,
1706
+ X509_ATTRIBUTE **attr, const ASN1_OBJECT *obj, int attrtype,
1140
1707
  const void *data, int len);
1708
+
1709
+ // X509_ATTRIBUTE_create_by_txt behaves like |X509_ATTRIBUTE_create_by_NID|
1710
+ // except the attribute's type is determined by calling |OBJ_txt2obj| with
1711
+ // |attrname|.
1141
1712
  OPENSSL_EXPORT X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(
1142
- X509_ATTRIBUTE **attr, const char *atrname, int type,
1713
+ X509_ATTRIBUTE **attr, const char *attrname, int type,
1143
1714
  const unsigned char *bytes, int len);
1715
+
1716
+ // X509_ATTRIBUTE_set1_object sets |attr|'s type to |obj|. It returns one on
1717
+ // success and zero on error.
1144
1718
  OPENSSL_EXPORT int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr,
1145
1719
  const ASN1_OBJECT *obj);
1720
+
1721
+ // X509_ATTRIBUTE_set1_data appends a value to |attr|'s value set and returns
1722
+ // one on success or zero on error. The value is determined as follows:
1723
+ //
1724
+ // If |attrtype| is a |MBSTRING_*| constant, the value is an ASN.1 string. The
1725
+ // string is determined by decoding |len| bytes from |data| in the encoding
1726
+ // specified by |attrtype|, and then re-encoding it in a form appropriate for
1727
+ // |attr|'s type. If |len| is -1, |strlen(data)| is used instead. See
1728
+ // |ASN1_STRING_set_by_NID| for details.
1729
+ //
1730
+ // TODO(davidben): Document |ASN1_STRING_set_by_NID| so the reference is useful.
1731
+ //
1732
+ // Otherwise, if |len| is not -1, the value is an ASN.1 string. |attrtype| is an
1733
+ // |ASN1_STRING| type value and the |len| bytes from |data| are copied as the
1734
+ // type-specific representation of |ASN1_STRING|. See |ASN1_STRING| for details.
1735
+ //
1736
+ // WARNING: If this form is used to construct a negative INTEGER or ENUMERATED,
1737
+ // |attrtype| includes the |V_ASN1_NEG| flag for |ASN1_STRING|, but the function
1738
+ // forgets to clear the flag for |ASN1_TYPE|. This matches OpenSSL but is
1739
+ // probably a bug. For now, do not use this form with negative values.
1740
+ //
1741
+ // Otherwise, if |len| is -1, the value is constructed by passing |attrtype| and
1742
+ // |data| to |ASN1_TYPE_set1|. That is, |attrtype| is an |ASN1_TYPE| type value,
1743
+ // and |data| is cast to the corresponding pointer type.
1744
+ //
1745
+ // WARNING: Despite the name, this function appends to |attr|'s value set,
1746
+ // rather than overwriting it. To overwrite the value set, create a new
1747
+ // |X509_ATTRIBUTE| with |X509_ATTRIBUTE_new|.
1748
+ //
1749
+ // WARNING: If using the |MBSTRING_*| form, pass a length rather than relying on
1750
+ // |strlen|. In particular, |strlen| will not behave correctly if the input is
1751
+ // |MBSTRING_BMP| or |MBSTRING_UNIV|.
1752
+ //
1753
+ // WARNING: This function currently misinterprets |V_ASN1_OTHER| as an
1754
+ // |MBSTRING_*| constant. This matches OpenSSL but means it is impossible to
1755
+ // construct a value with a non-universal tag.
1146
1756
  OPENSSL_EXPORT int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype,
1147
1757
  const void *data, int len);
1758
+
1759
+ // X509_ATTRIBUTE_get0_data returns the |idx|th value of |attr| in a
1760
+ // type-specific representation to |attrtype|, or NULL if out of bounds or the
1761
+ // type does not match. |attrtype| is one of the type values in |ASN1_TYPE|. On
1762
+ // match, the return value uses the same representation as |ASN1_TYPE_set0|. See
1763
+ // |ASN1_TYPE| for details.
1148
1764
  OPENSSL_EXPORT void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx,
1149
- int atrtype, void *data);
1150
- OPENSSL_EXPORT int X509_ATTRIBUTE_count(X509_ATTRIBUTE *attr);
1765
+ int attrtype, void *unused);
1766
+
1767
+ // X509_ATTRIBUTE_count returns the number of values in |attr|.
1768
+ OPENSSL_EXPORT int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr);
1769
+
1770
+ // X509_ATTRIBUTE_get0_object returns the type of |attr|.
1151
1771
  OPENSSL_EXPORT ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr);
1772
+
1773
+ // X509_ATTRIBUTE_get0_type returns the |idx|th value in |attr|, or NULL if out
1774
+ // of bounds. Note this function returns one of |attr|'s values, not the type.
1152
1775
  OPENSSL_EXPORT ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr,
1153
1776
  int idx);
1154
1777
 
1155
1778
  OPENSSL_EXPORT int X509_verify_cert(X509_STORE_CTX *ctx);
1156
1779
 
1157
1780
  // lookup a cert from a X509 STACK
1158
- OPENSSL_EXPORT X509 *X509_find_by_issuer_and_serial(STACK_OF(X509) * sk,
1781
+ OPENSSL_EXPORT X509 *X509_find_by_issuer_and_serial(STACK_OF(X509) *sk,
1159
1782
  X509_NAME *name,
1160
1783
  ASN1_INTEGER *serial);
1161
- OPENSSL_EXPORT X509 *X509_find_by_subject(STACK_OF(X509) * sk, X509_NAME *name);
1784
+ OPENSSL_EXPORT X509 *X509_find_by_subject(STACK_OF(X509) *sk, X509_NAME *name);
1162
1785
 
1163
1786
  // PKCS#8 utilities
1164
1787
 
@@ -1174,13 +1797,36 @@ OPENSSL_EXPORT int PKCS8_pkey_get0(ASN1_OBJECT **ppkalg,
1174
1797
  const unsigned char **pk, int *ppklen,
1175
1798
  X509_ALGOR **pa, PKCS8_PRIV_KEY_INFO *p8);
1176
1799
 
1177
- OPENSSL_EXPORT int X509_PUBKEY_set0_param(X509_PUBKEY *pub,
1178
- const ASN1_OBJECT *aobj, int ptype,
1179
- void *pval, unsigned char *penc,
1180
- int penclen);
1181
- OPENSSL_EXPORT int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg,
1182
- const unsigned char **pk, int *ppklen,
1183
- X509_ALGOR **pa, X509_PUBKEY *pub);
1800
+ // X509_PUBKEY_set0_param sets |pub| to a key with AlgorithmIdentifier
1801
+ // determined by |obj|, |param_type|, and |param_value|, and an encoded
1802
+ // public key of |key|. On success, it takes ownership of all its parameters and
1803
+ // returns one. Otherwise, it returns zero. |key| must have been allocated by
1804
+ // |OPENSSL_malloc|.
1805
+ //
1806
+ // |obj|, |param_type|, and |param_value| are interpreted as in
1807
+ // |X509_ALGOR_set0|. See |X509_ALGOR_set0| for details.
1808
+ OPENSSL_EXPORT int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *obj,
1809
+ int param_type, void *param_value,
1810
+ uint8_t *key, int key_len);
1811
+
1812
+ // X509_PUBKEY_get0_param outputs fields of |pub| and returns one. If |out_obj|
1813
+ // is not NULL, it sets |*out_obj| to AlgorithmIdentifier's OID. If |out_key|
1814
+ // is not NULL, it sets |*out_key| and |*out_key_len| to the encoded public key.
1815
+ // If |out_alg| is not NULL, it sets |*out_alg| to the AlgorithmIdentifier.
1816
+ //
1817
+ // Note: X.509 SubjectPublicKeyInfo structures store the encoded public key as a
1818
+ // BIT STRING. |*out_key| and |*out_key_len| will silently pad the key with zero
1819
+ // bits if |pub| did not contain a whole number of bytes. Use
1820
+ // |X509_PUBKEY_get0_public_key| to preserve this information.
1821
+ OPENSSL_EXPORT int X509_PUBKEY_get0_param(ASN1_OBJECT **out_obj,
1822
+ const uint8_t **out_key,
1823
+ int *out_key_len,
1824
+ X509_ALGOR **out_alg,
1825
+ X509_PUBKEY *pub);
1826
+
1827
+ // X509_PUBKEY_get0_public_key returns |pub|'s encoded public key.
1828
+ OPENSSL_EXPORT const ASN1_BIT_STRING *X509_PUBKEY_get0_public_key(
1829
+ const X509_PUBKEY *pub);
1184
1830
 
1185
1831
  OPENSSL_EXPORT int X509_check_trust(X509 *x, int id, int flags);
1186
1832
  OPENSSL_EXPORT int X509_TRUST_get_count(void);
@@ -1190,24 +1836,507 @@ OPENSSL_EXPORT int X509_TRUST_add(int id, int flags,
1190
1836
  int (*ck)(X509_TRUST *, X509 *, int),
1191
1837
  char *name, int arg1, void *arg2);
1192
1838
  OPENSSL_EXPORT void X509_TRUST_cleanup(void);
1193
- OPENSSL_EXPORT int X509_TRUST_get_flags(X509_TRUST *xp);
1194
- OPENSSL_EXPORT char *X509_TRUST_get0_name(X509_TRUST *xp);
1195
- OPENSSL_EXPORT int X509_TRUST_get_trust(X509_TRUST *xp);
1839
+ OPENSSL_EXPORT int X509_TRUST_get_flags(const X509_TRUST *xp);
1840
+ OPENSSL_EXPORT char *X509_TRUST_get0_name(const X509_TRUST *xp);
1841
+ OPENSSL_EXPORT int X509_TRUST_get_trust(const X509_TRUST *xp);
1196
1842
 
1197
1843
 
1198
- typedef struct rsa_pss_params_st {
1844
+ struct rsa_pss_params_st {
1199
1845
  X509_ALGOR *hashAlgorithm;
1200
1846
  X509_ALGOR *maskGenAlgorithm;
1201
1847
  ASN1_INTEGER *saltLength;
1202
1848
  ASN1_INTEGER *trailerField;
1203
- } RSA_PSS_PARAMS;
1849
+ // OpenSSL caches the MGF hash on |RSA_PSS_PARAMS| in some cases. None of the
1850
+ // cases apply to BoringSSL, so this is always NULL, but Node expects the
1851
+ // field to be present.
1852
+ X509_ALGOR *maskHash;
1853
+ } /* RSA_PSS_PARAMS */;
1204
1854
 
1205
1855
  DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS)
1206
1856
 
1857
+ /*
1858
+ SSL_CTX -> X509_STORE
1859
+ -> X509_LOOKUP
1860
+ ->X509_LOOKUP_METHOD
1861
+ -> X509_LOOKUP
1862
+ ->X509_LOOKUP_METHOD
1863
+
1864
+ SSL -> X509_STORE_CTX
1865
+ ->X509_STORE
1866
+
1867
+ The X509_STORE holds the tables etc for verification stuff.
1868
+ A X509_STORE_CTX is used while validating a single certificate.
1869
+ The X509_STORE has X509_LOOKUPs for looking up certs.
1870
+ The X509_STORE then calls a function to actually verify the
1871
+ certificate chain.
1872
+ */
1873
+
1874
+ #define X509_LU_X509 1
1875
+ #define X509_LU_CRL 2
1876
+ #define X509_LU_PKEY 3
1877
+
1878
+ DEFINE_STACK_OF(X509_LOOKUP)
1879
+ DEFINE_STACK_OF(X509_OBJECT)
1880
+ DEFINE_STACK_OF(X509_VERIFY_PARAM)
1881
+
1882
+ typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *);
1883
+ typedef int (*X509_STORE_CTX_verify_fn)(X509_STORE_CTX *);
1884
+ typedef int (*X509_STORE_CTX_get_issuer_fn)(X509 **issuer, X509_STORE_CTX *ctx,
1885
+ X509 *x);
1886
+ typedef int (*X509_STORE_CTX_check_issued_fn)(X509_STORE_CTX *ctx, X509 *x,
1887
+ X509 *issuer);
1888
+ typedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx);
1889
+ typedef int (*X509_STORE_CTX_get_crl_fn)(X509_STORE_CTX *ctx, X509_CRL **crl,
1890
+ X509 *x);
1891
+ typedef int (*X509_STORE_CTX_check_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl);
1892
+ typedef int (*X509_STORE_CTX_cert_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl,
1893
+ X509 *x);
1894
+ typedef int (*X509_STORE_CTX_check_policy_fn)(X509_STORE_CTX *ctx);
1895
+ typedef STACK_OF(X509) *(*X509_STORE_CTX_lookup_certs_fn)(X509_STORE_CTX *ctx,
1896
+ X509_NAME *nm);
1897
+ typedef STACK_OF(X509_CRL) *(*X509_STORE_CTX_lookup_crls_fn)(
1898
+ X509_STORE_CTX *ctx, X509_NAME *nm);
1899
+ typedef int (*X509_STORE_CTX_cleanup_fn)(X509_STORE_CTX *ctx);
1900
+
1901
+ OPENSSL_EXPORT int X509_STORE_set_depth(X509_STORE *store, int depth);
1902
+
1903
+ OPENSSL_EXPORT void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth);
1904
+
1905
+ #define X509_STORE_CTX_set_app_data(ctx, data) \
1906
+ X509_STORE_CTX_set_ex_data(ctx, 0, data)
1907
+ #define X509_STORE_CTX_get_app_data(ctx) X509_STORE_CTX_get_ex_data(ctx, 0)
1908
+
1909
+ #define X509_L_FILE_LOAD 1
1910
+ #define X509_L_ADD_DIR 2
1911
+
1912
+ #define X509_LOOKUP_load_file(x, name, type) \
1913
+ X509_LOOKUP_ctrl((x), X509_L_FILE_LOAD, (name), (long)(type), NULL)
1914
+
1915
+ #define X509_LOOKUP_add_dir(x, name, type) \
1916
+ X509_LOOKUP_ctrl((x), X509_L_ADD_DIR, (name), (long)(type), NULL)
1917
+
1918
+ #define X509_V_OK 0
1919
+ #define X509_V_ERR_UNSPECIFIED 1
1920
+
1921
+ #define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2
1922
+ #define X509_V_ERR_UNABLE_TO_GET_CRL 3
1923
+ #define X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4
1924
+ #define X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5
1925
+ #define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6
1926
+ #define X509_V_ERR_CERT_SIGNATURE_FAILURE 7
1927
+ #define X509_V_ERR_CRL_SIGNATURE_FAILURE 8
1928
+ #define X509_V_ERR_CERT_NOT_YET_VALID 9
1929
+ #define X509_V_ERR_CERT_HAS_EXPIRED 10
1930
+ #define X509_V_ERR_CRL_NOT_YET_VALID 11
1931
+ #define X509_V_ERR_CRL_HAS_EXPIRED 12
1932
+ #define X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13
1933
+ #define X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14
1934
+ #define X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15
1935
+ #define X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16
1936
+ #define X509_V_ERR_OUT_OF_MEM 17
1937
+ #define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18
1938
+ #define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19
1939
+ #define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20
1940
+ #define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21
1941
+ #define X509_V_ERR_CERT_CHAIN_TOO_LONG 22
1942
+ #define X509_V_ERR_CERT_REVOKED 23
1943
+ #define X509_V_ERR_INVALID_CA 24
1944
+ #define X509_V_ERR_PATH_LENGTH_EXCEEDED 25
1945
+ #define X509_V_ERR_INVALID_PURPOSE 26
1946
+ #define X509_V_ERR_CERT_UNTRUSTED 27
1947
+ #define X509_V_ERR_CERT_REJECTED 28
1948
+ // These are 'informational' when looking for issuer cert
1949
+ #define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29
1950
+ #define X509_V_ERR_AKID_SKID_MISMATCH 30
1951
+ #define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31
1952
+ #define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32
1953
+
1954
+ #define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33
1955
+ #define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34
1956
+ #define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35
1957
+ #define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36
1958
+ #define X509_V_ERR_INVALID_NON_CA 37
1959
+ #define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38
1960
+ #define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39
1961
+ #define X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40
1962
+
1963
+ #define X509_V_ERR_INVALID_EXTENSION 41
1964
+ #define X509_V_ERR_INVALID_POLICY_EXTENSION 42
1965
+ #define X509_V_ERR_NO_EXPLICIT_POLICY 43
1966
+ #define X509_V_ERR_DIFFERENT_CRL_SCOPE 44
1967
+ #define X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE 45
1968
+
1969
+ #define X509_V_ERR_UNNESTED_RESOURCE 46
1970
+
1971
+ #define X509_V_ERR_PERMITTED_VIOLATION 47
1972
+ #define X509_V_ERR_EXCLUDED_VIOLATION 48
1973
+ #define X509_V_ERR_SUBTREE_MINMAX 49
1974
+ #define X509_V_ERR_APPLICATION_VERIFICATION 50
1975
+ #define X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE 51
1976
+ #define X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX 52
1977
+ #define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53
1978
+ #define X509_V_ERR_CRL_PATH_VALIDATION_ERROR 54
1979
+
1980
+ // Suite B mode algorithm violation
1981
+ #define X509_V_ERR_SUITE_B_INVALID_VERSION 56
1982
+ #define X509_V_ERR_SUITE_B_INVALID_ALGORITHM 57
1983
+ #define X509_V_ERR_SUITE_B_INVALID_CURVE 58
1984
+ #define X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM 59
1985
+ #define X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED 60
1986
+ #define X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 61
1987
+
1988
+ // Host, email and IP check errors
1989
+ #define X509_V_ERR_HOSTNAME_MISMATCH 62
1990
+ #define X509_V_ERR_EMAIL_MISMATCH 63
1991
+ #define X509_V_ERR_IP_ADDRESS_MISMATCH 64
1992
+
1993
+ // Caller error
1994
+ #define X509_V_ERR_INVALID_CALL 65
1995
+ // Issuer lookup error
1996
+ #define X509_V_ERR_STORE_LOOKUP 66
1997
+
1998
+ #define X509_V_ERR_NAME_CONSTRAINTS_WITHOUT_SANS 67
1999
+
2000
+ // Certificate verify flags
2001
+
2002
+ // Send issuer+subject checks to verify_cb
2003
+ #define X509_V_FLAG_CB_ISSUER_CHECK 0x1
2004
+ // Use check time instead of current time
2005
+ #define X509_V_FLAG_USE_CHECK_TIME 0x2
2006
+ // Lookup CRLs
2007
+ #define X509_V_FLAG_CRL_CHECK 0x4
2008
+ // Lookup CRLs for whole chain
2009
+ #define X509_V_FLAG_CRL_CHECK_ALL 0x8
2010
+ // Ignore unhandled critical extensions
2011
+ #define X509_V_FLAG_IGNORE_CRITICAL 0x10
2012
+ // Does nothing as its functionality has been enabled by default.
2013
+ #define X509_V_FLAG_X509_STRICT 0x00
2014
+ // Enable proxy certificate validation
2015
+ #define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40
2016
+ // Enable policy checking
2017
+ #define X509_V_FLAG_POLICY_CHECK 0x80
2018
+ // Policy variable require-explicit-policy
2019
+ #define X509_V_FLAG_EXPLICIT_POLICY 0x100
2020
+ // Policy variable inhibit-any-policy
2021
+ #define X509_V_FLAG_INHIBIT_ANY 0x200
2022
+ // Policy variable inhibit-policy-mapping
2023
+ #define X509_V_FLAG_INHIBIT_MAP 0x400
2024
+ // Notify callback that policy is OK
2025
+ #define X509_V_FLAG_NOTIFY_POLICY 0x800
2026
+ // Extended CRL features such as indirect CRLs, alternate CRL signing keys
2027
+ #define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000
2028
+ // Delta CRL support
2029
+ #define X509_V_FLAG_USE_DELTAS 0x2000
2030
+ // Check selfsigned CA signature
2031
+ #define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000
2032
+ // Use trusted store first
2033
+ #define X509_V_FLAG_TRUSTED_FIRST 0x8000
2034
+ // Suite B 128 bit only mode: not normally used
2035
+ #define X509_V_FLAG_SUITEB_128_LOS_ONLY 0x10000
2036
+ // Suite B 192 bit only mode
2037
+ #define X509_V_FLAG_SUITEB_192_LOS 0x20000
2038
+ // Suite B 128 bit mode allowing 192 bit algorithms
2039
+ #define X509_V_FLAG_SUITEB_128_LOS 0x30000
2040
+
2041
+ // Allow partial chains if at least one certificate is in trusted store
2042
+ #define X509_V_FLAG_PARTIAL_CHAIN 0x80000
2043
+
2044
+ // If the initial chain is not trusted, do not attempt to build an alternative
2045
+ // chain. Alternate chain checking was introduced in 1.0.2b. Setting this flag
2046
+ // will force the behaviour to match that of previous versions.
2047
+ #define X509_V_FLAG_NO_ALT_CHAINS 0x100000
2048
+
2049
+ #define X509_VP_FLAG_DEFAULT 0x1
2050
+ #define X509_VP_FLAG_OVERWRITE 0x2
2051
+ #define X509_VP_FLAG_RESET_FLAGS 0x4
2052
+ #define X509_VP_FLAG_LOCKED 0x8
2053
+ #define X509_VP_FLAG_ONCE 0x10
2054
+
2055
+ // Internal use: mask of policy related options
2056
+ #define X509_V_FLAG_POLICY_MASK \
2057
+ (X509_V_FLAG_POLICY_CHECK | X509_V_FLAG_EXPLICIT_POLICY | \
2058
+ X509_V_FLAG_INHIBIT_ANY | X509_V_FLAG_INHIBIT_MAP)
2059
+
2060
+ OPENSSL_EXPORT int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h,
2061
+ int type, X509_NAME *name);
2062
+ OPENSSL_EXPORT X509_OBJECT *X509_OBJECT_retrieve_by_subject(
2063
+ STACK_OF(X509_OBJECT) *h, int type, X509_NAME *name);
2064
+ OPENSSL_EXPORT X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h,
2065
+ X509_OBJECT *x);
2066
+ OPENSSL_EXPORT int X509_OBJECT_up_ref_count(X509_OBJECT *a);
2067
+ OPENSSL_EXPORT void X509_OBJECT_free_contents(X509_OBJECT *a);
2068
+ OPENSSL_EXPORT int X509_OBJECT_get_type(const X509_OBJECT *a);
2069
+ OPENSSL_EXPORT X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a);
2070
+ OPENSSL_EXPORT X509_STORE *X509_STORE_new(void);
2071
+ OPENSSL_EXPORT int X509_STORE_up_ref(X509_STORE *store);
2072
+ OPENSSL_EXPORT void X509_STORE_free(X509_STORE *v);
2073
+
2074
+ OPENSSL_EXPORT STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(X509_STORE *st);
2075
+ OPENSSL_EXPORT STACK_OF(X509) *X509_STORE_get1_certs(X509_STORE_CTX *st,
2076
+ X509_NAME *nm);
2077
+ OPENSSL_EXPORT STACK_OF(X509_CRL) *X509_STORE_get1_crls(X509_STORE_CTX *st,
2078
+ X509_NAME *nm);
2079
+ OPENSSL_EXPORT int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags);
2080
+ OPENSSL_EXPORT int X509_STORE_set_purpose(X509_STORE *ctx, int purpose);
2081
+ OPENSSL_EXPORT int X509_STORE_set_trust(X509_STORE *ctx, int trust);
2082
+ OPENSSL_EXPORT int X509_STORE_set1_param(X509_STORE *ctx,
2083
+ X509_VERIFY_PARAM *pm);
2084
+ OPENSSL_EXPORT X509_VERIFY_PARAM *X509_STORE_get0_param(X509_STORE *ctx);
2085
+
2086
+ OPENSSL_EXPORT void X509_STORE_set_verify(X509_STORE *ctx,
2087
+ X509_STORE_CTX_verify_fn verify);
2088
+ #define X509_STORE_set_verify_func(ctx, func) \
2089
+ X509_STORE_set_verify((ctx), (func))
2090
+ OPENSSL_EXPORT void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx,
2091
+ X509_STORE_CTX_verify_fn verify);
2092
+ OPENSSL_EXPORT X509_STORE_CTX_verify_fn X509_STORE_get_verify(X509_STORE *ctx);
2093
+ OPENSSL_EXPORT void X509_STORE_set_verify_cb(
2094
+ X509_STORE *ctx, X509_STORE_CTX_verify_cb verify_cb);
2095
+ #define X509_STORE_set_verify_cb_func(ctx, func) \
2096
+ X509_STORE_set_verify_cb((ctx), (func))
2097
+ OPENSSL_EXPORT X509_STORE_CTX_verify_cb
2098
+ X509_STORE_get_verify_cb(X509_STORE *ctx);
2099
+ OPENSSL_EXPORT void X509_STORE_set_get_issuer(
2100
+ X509_STORE *ctx, X509_STORE_CTX_get_issuer_fn get_issuer);
2101
+ OPENSSL_EXPORT X509_STORE_CTX_get_issuer_fn
2102
+ X509_STORE_get_get_issuer(X509_STORE *ctx);
2103
+ OPENSSL_EXPORT void X509_STORE_set_check_issued(
2104
+ X509_STORE *ctx, X509_STORE_CTX_check_issued_fn check_issued);
2105
+ OPENSSL_EXPORT X509_STORE_CTX_check_issued_fn
2106
+ X509_STORE_get_check_issued(X509_STORE *ctx);
2107
+ OPENSSL_EXPORT void X509_STORE_set_check_revocation(
2108
+ X509_STORE *ctx, X509_STORE_CTX_check_revocation_fn check_revocation);
2109
+ OPENSSL_EXPORT X509_STORE_CTX_check_revocation_fn
2110
+ X509_STORE_get_check_revocation(X509_STORE *ctx);
2111
+ OPENSSL_EXPORT void X509_STORE_set_get_crl(X509_STORE *ctx,
2112
+ X509_STORE_CTX_get_crl_fn get_crl);
2113
+ OPENSSL_EXPORT X509_STORE_CTX_get_crl_fn
2114
+ X509_STORE_get_get_crl(X509_STORE *ctx);
2115
+ OPENSSL_EXPORT void X509_STORE_set_check_crl(
2116
+ X509_STORE *ctx, X509_STORE_CTX_check_crl_fn check_crl);
2117
+ OPENSSL_EXPORT X509_STORE_CTX_check_crl_fn
2118
+ X509_STORE_get_check_crl(X509_STORE *ctx);
2119
+ OPENSSL_EXPORT void X509_STORE_set_cert_crl(
2120
+ X509_STORE *ctx, X509_STORE_CTX_cert_crl_fn cert_crl);
2121
+ OPENSSL_EXPORT X509_STORE_CTX_cert_crl_fn
2122
+ X509_STORE_get_cert_crl(X509_STORE *ctx);
2123
+ OPENSSL_EXPORT void X509_STORE_set_lookup_certs(
2124
+ X509_STORE *ctx, X509_STORE_CTX_lookup_certs_fn lookup_certs);
2125
+ OPENSSL_EXPORT X509_STORE_CTX_lookup_certs_fn
2126
+ X509_STORE_get_lookup_certs(X509_STORE *ctx);
2127
+ OPENSSL_EXPORT void X509_STORE_set_lookup_crls(
2128
+ X509_STORE *ctx, X509_STORE_CTX_lookup_crls_fn lookup_crls);
2129
+ #define X509_STORE_set_lookup_crls_cb(ctx, func) \
2130
+ X509_STORE_set_lookup_crls((ctx), (func))
2131
+ OPENSSL_EXPORT X509_STORE_CTX_lookup_crls_fn
2132
+ X509_STORE_get_lookup_crls(X509_STORE *ctx);
2133
+ OPENSSL_EXPORT void X509_STORE_set_cleanup(X509_STORE *ctx,
2134
+ X509_STORE_CTX_cleanup_fn cleanup);
2135
+ OPENSSL_EXPORT X509_STORE_CTX_cleanup_fn
2136
+ X509_STORE_get_cleanup(X509_STORE *ctx);
2137
+
2138
+ OPENSSL_EXPORT X509_STORE_CTX *X509_STORE_CTX_new(void);
2139
+
2140
+ OPENSSL_EXPORT int X509_STORE_CTX_get1_issuer(X509 **issuer,
2141
+ X509_STORE_CTX *ctx, X509 *x);
2142
+
2143
+ OPENSSL_EXPORT void X509_STORE_CTX_zero(X509_STORE_CTX *ctx);
2144
+ OPENSSL_EXPORT void X509_STORE_CTX_free(X509_STORE_CTX *ctx);
2145
+ OPENSSL_EXPORT int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store,
2146
+ X509 *x509, STACK_OF(X509) *chain);
2147
+ OPENSSL_EXPORT void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx,
2148
+ STACK_OF(X509) *sk);
2149
+ OPENSSL_EXPORT void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx);
2150
+
2151
+ OPENSSL_EXPORT X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx);
2152
+ OPENSSL_EXPORT X509 *X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx);
2153
+
2154
+ OPENSSL_EXPORT X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v,
2155
+ X509_LOOKUP_METHOD *m);
2156
+
2157
+ OPENSSL_EXPORT X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void);
2158
+ OPENSSL_EXPORT X509_LOOKUP_METHOD *X509_LOOKUP_file(void);
2159
+
2160
+ OPENSSL_EXPORT int X509_STORE_add_cert(X509_STORE *ctx, X509 *x);
2161
+ OPENSSL_EXPORT int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x);
2162
+
2163
+ OPENSSL_EXPORT int X509_STORE_get_by_subject(X509_STORE_CTX *vs, int type,
2164
+ X509_NAME *name, X509_OBJECT *ret);
2165
+
2166
+ OPENSSL_EXPORT int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc,
2167
+ long argl, char **ret);
2168
+
2169
+ #ifndef OPENSSL_NO_STDIO
2170
+ OPENSSL_EXPORT int X509_load_cert_file(X509_LOOKUP *ctx, const char *file,
2171
+ int type);
2172
+ OPENSSL_EXPORT int X509_load_crl_file(X509_LOOKUP *ctx, const char *file,
2173
+ int type);
2174
+ OPENSSL_EXPORT int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file,
2175
+ int type);
2176
+ #endif
1207
2177
 
2178
+ OPENSSL_EXPORT X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method);
2179
+ OPENSSL_EXPORT void X509_LOOKUP_free(X509_LOOKUP *ctx);
2180
+ OPENSSL_EXPORT int X509_LOOKUP_init(X509_LOOKUP *ctx);
2181
+ OPENSSL_EXPORT int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, int type,
2182
+ X509_NAME *name, X509_OBJECT *ret);
2183
+ OPENSSL_EXPORT int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, int type,
2184
+ X509_NAME *name,
2185
+ ASN1_INTEGER *serial,
2186
+ X509_OBJECT *ret);
2187
+ OPENSSL_EXPORT int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, int type,
2188
+ unsigned char *bytes, int len,
2189
+ X509_OBJECT *ret);
2190
+ OPENSSL_EXPORT int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, int type, char *str,
2191
+ int len, X509_OBJECT *ret);
2192
+ OPENSSL_EXPORT int X509_LOOKUP_shutdown(X509_LOOKUP *ctx);
2193
+
2194
+ #ifndef OPENSSL_NO_STDIO
2195
+ OPENSSL_EXPORT int X509_STORE_load_locations(X509_STORE *ctx, const char *file,
2196
+ const char *dir);
2197
+ OPENSSL_EXPORT int X509_STORE_set_default_paths(X509_STORE *ctx);
2198
+ #endif
1208
2199
 
1209
- #ifdef __cplusplus
1210
- }
2200
+ OPENSSL_EXPORT int X509_STORE_CTX_get_ex_new_index(long argl, void *argp,
2201
+ CRYPTO_EX_unused *unused,
2202
+ CRYPTO_EX_dup *dup_unused,
2203
+ CRYPTO_EX_free *free_func);
2204
+ OPENSSL_EXPORT int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx,
2205
+ void *data);
2206
+ OPENSSL_EXPORT void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx);
2207
+ OPENSSL_EXPORT int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx);
2208
+ OPENSSL_EXPORT void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s);
2209
+ OPENSSL_EXPORT int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx);
2210
+ OPENSSL_EXPORT X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx);
2211
+ OPENSSL_EXPORT X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx);
2212
+ OPENSSL_EXPORT X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx);
2213
+ OPENSSL_EXPORT X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(
2214
+ X509_STORE_CTX *ctx);
2215
+ OPENSSL_EXPORT STACK_OF(X509) *X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx);
2216
+ OPENSSL_EXPORT STACK_OF(X509) *X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx);
2217
+ OPENSSL_EXPORT STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx);
2218
+ OPENSSL_EXPORT void X509_STORE_CTX_set_cert(X509_STORE_CTX *c, X509 *x);
2219
+ OPENSSL_EXPORT void X509_STORE_CTX_set_chain(X509_STORE_CTX *c,
2220
+ STACK_OF(X509) *sk);
2221
+ OPENSSL_EXPORT STACK_OF(X509) *X509_STORE_CTX_get0_untrusted(
2222
+ X509_STORE_CTX *ctx);
2223
+ OPENSSL_EXPORT void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c,
2224
+ STACK_OF(X509_CRL) *sk);
2225
+ OPENSSL_EXPORT int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose);
2226
+ OPENSSL_EXPORT int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust);
2227
+ OPENSSL_EXPORT int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx,
2228
+ int def_purpose, int purpose,
2229
+ int trust);
2230
+ OPENSSL_EXPORT void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx,
2231
+ unsigned long flags);
2232
+ OPENSSL_EXPORT void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx,
2233
+ unsigned long flags, time_t t);
2234
+ OPENSSL_EXPORT void X509_STORE_CTX_set_verify_cb(
2235
+ X509_STORE_CTX *ctx, int (*verify_cb)(int, X509_STORE_CTX *));
2236
+
2237
+ OPENSSL_EXPORT X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(
2238
+ X509_STORE_CTX *ctx);
2239
+ OPENSSL_EXPORT int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx);
2240
+
2241
+ OPENSSL_EXPORT X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(
2242
+ X509_STORE_CTX *ctx);
2243
+ OPENSSL_EXPORT void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx,
2244
+ X509_VERIFY_PARAM *param);
2245
+ OPENSSL_EXPORT int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx,
2246
+ const char *name);
2247
+
2248
+ // X509_VERIFY_PARAM functions
2249
+
2250
+ OPENSSL_EXPORT X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void);
2251
+ OPENSSL_EXPORT void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param);
2252
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to,
2253
+ const X509_VERIFY_PARAM *from);
2254
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to,
2255
+ const X509_VERIFY_PARAM *from);
2256
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param,
2257
+ const char *name);
2258
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param,
2259
+ unsigned long flags);
2260
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param,
2261
+ unsigned long flags);
2262
+ OPENSSL_EXPORT unsigned long X509_VERIFY_PARAM_get_flags(
2263
+ X509_VERIFY_PARAM *param);
2264
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param,
2265
+ int purpose);
2266
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param,
2267
+ int trust);
2268
+ OPENSSL_EXPORT void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param,
2269
+ int depth);
2270
+ OPENSSL_EXPORT void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param,
2271
+ time_t t);
2272
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param,
2273
+ ASN1_OBJECT *policy);
2274
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_policies(
2275
+ X509_VERIFY_PARAM *param, STACK_OF(ASN1_OBJECT) *policies);
2276
+
2277
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param,
2278
+ const char *name,
2279
+ size_t namelen);
2280
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param,
2281
+ const char *name,
2282
+ size_t namelen);
2283
+ OPENSSL_EXPORT void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param,
2284
+ unsigned int flags);
2285
+ OPENSSL_EXPORT char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *);
2286
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param,
2287
+ const char *email,
2288
+ size_t emaillen);
2289
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param,
2290
+ const unsigned char *ip,
2291
+ size_t iplen);
2292
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param,
2293
+ const char *ipasc);
2294
+
2295
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param);
2296
+ OPENSSL_EXPORT const char *X509_VERIFY_PARAM_get0_name(
2297
+ const X509_VERIFY_PARAM *param);
2298
+
2299
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param);
2300
+ OPENSSL_EXPORT int X509_VERIFY_PARAM_get_count(void);
2301
+ OPENSSL_EXPORT const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id);
2302
+ OPENSSL_EXPORT const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(
2303
+ const char *name);
2304
+ OPENSSL_EXPORT void X509_VERIFY_PARAM_table_cleanup(void);
2305
+
2306
+ OPENSSL_EXPORT int X509_policy_check(X509_POLICY_TREE **ptree,
2307
+ int *pexplicit_policy,
2308
+ STACK_OF(X509) *certs,
2309
+ STACK_OF(ASN1_OBJECT) *policy_oids,
2310
+ unsigned int flags);
2311
+
2312
+ OPENSSL_EXPORT void X509_policy_tree_free(X509_POLICY_TREE *tree);
2313
+
2314
+ OPENSSL_EXPORT int X509_policy_tree_level_count(const X509_POLICY_TREE *tree);
2315
+ OPENSSL_EXPORT X509_POLICY_LEVEL *X509_policy_tree_get0_level(
2316
+ const X509_POLICY_TREE *tree, int i);
2317
+
2318
+ OPENSSL_EXPORT STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_policies(
2319
+ const X509_POLICY_TREE *tree);
2320
+
2321
+ OPENSSL_EXPORT STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_user_policies(
2322
+ const X509_POLICY_TREE *tree);
2323
+
2324
+ OPENSSL_EXPORT int X509_policy_level_node_count(X509_POLICY_LEVEL *level);
2325
+
2326
+ OPENSSL_EXPORT X509_POLICY_NODE *X509_policy_level_get0_node(
2327
+ X509_POLICY_LEVEL *level, int i);
2328
+
2329
+ OPENSSL_EXPORT const ASN1_OBJECT *X509_policy_node_get0_policy(
2330
+ const X509_POLICY_NODE *node);
2331
+
2332
+ OPENSSL_EXPORT STACK_OF(POLICYQUALINFO) *X509_policy_node_get0_qualifiers(
2333
+ const X509_POLICY_NODE *node);
2334
+ OPENSSL_EXPORT const X509_POLICY_NODE *X509_policy_node_get0_parent(
2335
+ const X509_POLICY_NODE *node);
2336
+
2337
+
2338
+ #if defined(__cplusplus)
2339
+ } // extern C
1211
2340
  #endif
1212
2341
 
1213
2342
  #if !defined(BORINGSSL_NO_CXX)
@@ -1220,6 +2349,7 @@ BORINGSSL_MAKE_DELETER(RSA_PSS_PARAMS, RSA_PSS_PARAMS_free)
1220
2349
  BORINGSSL_MAKE_DELETER(X509, X509_free)
1221
2350
  BORINGSSL_MAKE_UP_REF(X509, X509_up_ref)
1222
2351
  BORINGSSL_MAKE_DELETER(X509_ALGOR, X509_ALGOR_free)
2352
+ BORINGSSL_MAKE_DELETER(X509_ATTRIBUTE, X509_ATTRIBUTE_free)
1223
2353
  BORINGSSL_MAKE_DELETER(X509_CRL, X509_CRL_free)
1224
2354
  BORINGSSL_MAKE_UP_REF(X509_CRL, X509_CRL_up_ref)
1225
2355
  BORINGSSL_MAKE_DELETER(X509_CRL_METHOD, X509_CRL_METHOD_free)
@@ -1235,13 +2365,10 @@ BORINGSSL_MAKE_DELETER(X509_REQ, X509_REQ_free)
1235
2365
  BORINGSSL_MAKE_DELETER(X509_REVOKED, X509_REVOKED_free)
1236
2366
  BORINGSSL_MAKE_DELETER(X509_SIG, X509_SIG_free)
1237
2367
  BORINGSSL_MAKE_DELETER(X509_STORE, X509_STORE_free)
2368
+ BORINGSSL_MAKE_UP_REF(X509_STORE, X509_STORE_up_ref)
1238
2369
  BORINGSSL_MAKE_DELETER(X509_STORE_CTX, X509_STORE_CTX_free)
1239
2370
  BORINGSSL_MAKE_DELETER(X509_VERIFY_PARAM, X509_VERIFY_PARAM_free)
1240
2371
 
1241
- using ScopedX509_STORE_CTX =
1242
- internal::StackAllocated<X509_STORE_CTX, void, X509_STORE_CTX_zero,
1243
- X509_STORE_CTX_cleanup>;
1244
-
1245
2372
  BSSL_NAMESPACE_END
1246
2373
 
1247
2374
  } // extern C++