grpc 1.32.0 → 1.35.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 (938) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +1078 -3049
  3. data/etc/roots.pem +257 -573
  4. data/include/grpc/compression.h +1 -1
  5. data/include/grpc/grpc.h +15 -7
  6. data/include/grpc/grpc_security.h +222 -171
  7. data/include/grpc/impl/codegen/atm_windows.h +4 -0
  8. data/include/grpc/impl/codegen/byte_buffer.h +1 -1
  9. data/include/grpc/impl/codegen/grpc_types.h +10 -8
  10. data/include/grpc/impl/codegen/log.h +0 -2
  11. data/include/grpc/impl/codegen/port_platform.h +22 -55
  12. data/include/grpc/impl/codegen/sync_windows.h +4 -0
  13. data/include/grpc/slice_buffer.h +3 -3
  14. data/include/grpc/support/sync.h +3 -3
  15. data/include/grpc/support/time.h +7 -7
  16. data/src/core/ext/filters/client_channel/backend_metric.cc +2 -4
  17. data/src/core/ext/filters/client_channel/client_channel.cc +2776 -1529
  18. data/src/core/ext/filters/client_channel/client_channel.h +0 -4
  19. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +1 -1
  20. data/src/core/ext/filters/client_channel/config_selector.cc +0 -4
  21. data/src/core/ext/filters/client_channel/config_selector.h +40 -8
  22. data/src/core/ext/filters/client_channel/dynamic_filters.cc +186 -0
  23. data/src/core/ext/filters/client_channel/dynamic_filters.h +99 -0
  24. data/src/core/ext/filters/client_channel/health/health_check_client.cc +10 -7
  25. data/src/core/ext/filters/client_channel/health/health_check_client.h +4 -4
  26. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +5 -6
  27. data/src/core/ext/filters/client_channel/http_proxy.cc +21 -20
  28. data/src/core/ext/filters/client_channel/lb_policy.cc +6 -2
  29. data/src/core/ext/filters/client_channel/lb_policy.h +6 -7
  30. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +48 -35
  31. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +7 -5
  32. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +4 -3
  33. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +1 -1
  34. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +201 -190
  35. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -1
  36. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +3 -3
  37. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +1 -1
  38. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +4 -4
  39. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +50 -20
  40. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +5 -5
  41. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +14 -34
  42. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +6 -6
  43. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +341 -127
  44. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +52 -24
  45. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +24 -0
  46. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +812 -0
  47. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +722 -0
  48. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +1262 -0
  49. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +8 -1
  50. data/src/core/ext/filters/client_channel/resolver.cc +3 -1
  51. data/src/core/ext/filters/client_channel/resolver.h +4 -1
  52. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +9 -16
  53. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -32
  54. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +3 -3
  55. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +454 -16
  56. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -0
  57. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +7 -10
  58. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +3 -3
  59. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -1
  60. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +34 -27
  61. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +618 -366
  62. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.h +28 -0
  63. data/src/core/ext/filters/client_channel/resolver_factory.h +6 -6
  64. data/src/core/ext/filters/client_channel/resolver_registry.cc +40 -39
  65. data/src/core/ext/filters/client_channel/resolver_registry.h +2 -2
  66. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +29 -74
  67. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +12 -10
  68. data/src/core/ext/filters/client_channel/retry_throttle.cc +5 -3
  69. data/src/core/ext/filters/client_channel/retry_throttle.h +4 -2
  70. data/src/core/ext/filters/client_channel/server_address.cc +80 -0
  71. data/src/core/ext/filters/client_channel/server_address.h +21 -36
  72. data/src/core/ext/filters/client_channel/service_config.cc +18 -13
  73. data/src/core/ext/filters/client_channel/service_config.h +8 -5
  74. data/src/core/ext/filters/client_channel/service_config_call_data.h +19 -1
  75. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +2 -2
  76. data/src/core/ext/filters/client_channel/service_config_parser.cc +8 -6
  77. data/src/core/ext/filters/client_channel/service_config_parser.h +8 -5
  78. data/src/core/ext/filters/client_channel/subchannel.cc +51 -64
  79. data/src/core/ext/filters/client_channel/subchannel.h +14 -20
  80. data/src/core/ext/filters/client_channel/subchannel_interface.h +41 -5
  81. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +6 -2
  82. data/src/core/ext/filters/deadline/deadline_filter.cc +87 -79
  83. data/src/core/ext/filters/deadline/deadline_filter.h +7 -11
  84. data/src/core/ext/filters/http/client/http_client_filter.cc +1 -1
  85. data/src/core/ext/filters/http/client_authority_filter.cc +6 -6
  86. data/src/core/ext/filters/http/http_filters_plugin.cc +6 -3
  87. data/src/core/ext/filters/http/server/http_server_filter.cc +3 -3
  88. data/src/core/ext/filters/max_age/max_age_filter.cc +1 -1
  89. data/src/core/ext/filters/message_size/message_size_filter.cc +3 -2
  90. data/src/core/ext/filters/message_size/message_size_filter.h +2 -1
  91. data/src/core/ext/filters/workarounds/workaround_utils.cc +1 -1
  92. data/src/core/ext/transport/chttp2/client/authority.cc +3 -3
  93. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +1 -1
  94. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +20 -8
  95. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +21 -10
  96. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +26 -14
  97. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +185 -79
  98. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +12 -5
  99. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -7
  100. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +28 -42
  101. data/src/core/ext/transport/chttp2/transport/flow_control.cc +10 -2
  102. data/src/core/ext/transport/chttp2/transport/flow_control.h +13 -3
  103. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -1
  104. data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -1
  105. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +6 -6
  106. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +12 -8
  107. data/src/core/ext/transport/chttp2/transport/internal.h +5 -1
  108. data/src/core/ext/transport/chttp2/transport/parsing.cc +18 -3
  109. data/src/core/ext/transport/chttp2/transport/writing.cc +2 -3
  110. data/src/core/ext/transport/inproc/inproc_transport.cc +42 -8
  111. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +1 -0
  112. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +1 -1
  113. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +7 -0
  114. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +52 -32
  115. data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +199 -34
  116. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +13 -13
  117. data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +44 -17
  118. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +177 -99
  119. data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +642 -202
  120. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +3 -3
  121. data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +13 -5
  122. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +22 -22
  123. data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +47 -21
  124. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +36 -24
  125. data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +133 -39
  126. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +4 -4
  127. data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +15 -6
  128. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +45 -44
  129. data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +200 -78
  130. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +31 -24
  131. data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +107 -47
  132. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +1 -1
  133. data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +7 -0
  134. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +53 -0
  135. data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +149 -0
  136. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +74 -28
  137. data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +248 -43
  138. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +39 -39
  139. data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +157 -89
  140. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +4 -4
  141. data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +17 -9
  142. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +63 -39
  143. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +254 -60
  144. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +1 -1
  145. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +7 -0
  146. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +2 -2
  147. data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +9 -2
  148. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +36 -0
  149. data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +92 -0
  150. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +13 -13
  151. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +59 -36
  152. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +16 -16
  153. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +61 -29
  154. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +26 -26
  155. data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +101 -66
  156. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +2 -2
  157. data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +11 -3
  158. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +46 -26
  159. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +179 -68
  160. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +39 -22
  161. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +149 -48
  162. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +2 -2
  163. data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +13 -0
  164. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +21 -17
  165. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +96 -33
  166. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +7 -7
  167. data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +38 -22
  168. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +321 -194
  169. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +1228 -443
  170. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +8 -7
  171. data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +34 -10
  172. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +3 -3
  173. data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +17 -3
  174. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +132 -80
  175. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +516 -166
  176. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +1 -0
  177. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +24 -25
  178. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +96 -71
  179. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +12 -8
  180. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +46 -8
  181. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +71 -29
  182. data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +296 -63
  183. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +1 -1
  184. data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +7 -0
  185. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +1 -1
  186. data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +7 -0
  187. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +41 -31
  188. data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +165 -64
  189. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +1 -1
  190. data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +7 -0
  191. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +1 -1
  192. data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +7 -0
  193. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +7 -7
  194. data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +31 -16
  195. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +1 -1
  196. data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +7 -0
  197. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +1 -1
  198. data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +7 -0
  199. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +5 -5
  200. data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +25 -11
  201. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +1 -1
  202. data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +7 -0
  203. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +1 -1
  204. data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +7 -0
  205. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +6 -6
  206. data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +29 -8
  207. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +4 -3
  208. data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +22 -3
  209. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +3 -3
  210. data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +19 -0
  211. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +7 -7
  212. data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +46 -3
  213. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +8 -8
  214. data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +41 -8
  215. data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +1 -0
  216. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +3 -3
  217. data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +15 -2
  218. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +3 -3
  219. data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +19 -0
  220. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +1 -1
  221. data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +7 -0
  222. data/src/core/ext/upb-generated/google/api/annotations.upb.h +1 -0
  223. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +242 -0
  224. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +830 -0
  225. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +34 -34
  226. data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +142 -59
  227. data/src/core/ext/upb-generated/google/api/http.upb.c +3 -3
  228. data/src/core/ext/upb-generated/google/api/http.upb.h +25 -6
  229. data/src/core/ext/upb-generated/google/protobuf/any.upb.c +1 -1
  230. data/src/core/ext/upb-generated/google/protobuf/any.upb.h +7 -0
  231. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +90 -90
  232. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +455 -292
  233. data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +1 -1
  234. data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +7 -0
  235. data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +1 -1
  236. data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +7 -0
  237. data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +4 -4
  238. data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +22 -3
  239. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +1 -1
  240. data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +7 -0
  241. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +9 -9
  242. data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +55 -0
  243. data/src/core/ext/upb-generated/google/rpc/status.upb.c +1 -1
  244. data/src/core/ext/upb-generated/google/rpc/status.upb.h +10 -3
  245. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +4 -4
  246. data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +11 -3
  247. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +41 -41
  248. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +149 -76
  249. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +5 -5
  250. data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +21 -6
  251. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +2 -2
  252. data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +13 -0
  253. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +17 -17
  254. data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +82 -25
  255. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +3 -3
  256. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +19 -0
  257. data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +31 -0
  258. data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +64 -0
  259. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +1 -0
  260. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +2 -2
  261. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +9 -2
  262. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +1 -1
  263. data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +7 -0
  264. data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.c +28 -0
  265. data/src/core/ext/upb-generated/udpa/core/v1/authority.upb.h +60 -0
  266. data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.c +52 -0
  267. data/src/core/ext/upb-generated/udpa/core/v1/collection_entry.upb.h +143 -0
  268. data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.c +42 -0
  269. data/src/core/ext/upb-generated/udpa/core/v1/context_params.upb.h +84 -0
  270. data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.c +36 -0
  271. data/src/core/ext/upb-generated/udpa/core/v1/resource.upb.h +94 -0
  272. data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.c +54 -0
  273. data/src/core/ext/upb-generated/udpa/core/v1/resource_locator.upb.h +173 -0
  274. data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.c +36 -0
  275. data/src/core/ext/upb-generated/udpa/core/v1/resource_name.upb.h +92 -0
  276. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +3 -3
  277. data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +7 -0
  278. data/src/core/ext/upb-generated/validate/validate.upb.c +64 -64
  279. data/src/core/ext/upb-generated/validate/validate.upb.h +296 -157
  280. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +38 -0
  281. data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +30 -0
  282. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +41 -0
  283. data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +35 -0
  284. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +254 -0
  285. data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +105 -0
  286. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +100 -0
  287. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +45 -0
  288. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +558 -0
  289. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +145 -0
  290. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +53 -0
  291. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +35 -0
  292. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +133 -0
  293. data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +35 -0
  294. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +127 -0
  295. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +65 -0
  296. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +56 -0
  297. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +35 -0
  298. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +266 -0
  299. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +125 -0
  300. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +143 -0
  301. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +55 -0
  302. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +56 -0
  303. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +35 -0
  304. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +66 -0
  305. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +40 -0
  306. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +263 -0
  307. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +100 -0
  308. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +233 -0
  309. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +70 -0
  310. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +56 -0
  311. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +35 -0
  312. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +228 -0
  313. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +80 -0
  314. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +46 -0
  315. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +35 -0
  316. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +59 -0
  317. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +35 -0
  318. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +55 -0
  319. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +35 -0
  320. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +110 -0
  321. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +50 -0
  322. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +113 -0
  323. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +50 -0
  324. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +146 -0
  325. data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +55 -0
  326. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +50 -0
  327. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +35 -0
  328. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +190 -0
  329. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +55 -0
  330. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +185 -0
  331. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +65 -0
  332. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +62 -0
  333. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +40 -0
  334. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +97 -0
  335. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +40 -0
  336. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +915 -0
  337. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +280 -0
  338. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +71 -0
  339. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +45 -0
  340. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +64 -0
  341. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +40 -0
  342. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +511 -0
  343. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +115 -0
  344. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +48 -0
  345. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +30 -0
  346. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +166 -0
  347. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +55 -0
  348. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +105 -0
  349. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +45 -0
  350. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +249 -0
  351. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +60 -0
  352. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +72 -0
  353. data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +35 -0
  354. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +60 -0
  355. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +35 -0
  356. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +152 -0
  357. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +60 -0
  358. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +83 -0
  359. data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +35 -0
  360. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +82 -0
  361. data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +35 -0
  362. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +83 -0
  363. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +40 -0
  364. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +86 -0
  365. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +35 -0
  366. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +74 -0
  367. data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +35 -0
  368. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +64 -0
  369. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +40 -0
  370. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +54 -0
  371. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +35 -0
  372. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +53 -0
  373. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +35 -0
  374. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +73 -0
  375. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +45 -0
  376. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +72 -0
  377. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +40 -0
  378. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +81 -0
  379. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +45 -0
  380. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +92 -0
  381. data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +65 -0
  382. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +95 -0
  383. data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +55 -0
  384. data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +34 -0
  385. data/src/core/ext/{upb-generated/gogoproto/gogo.upb.h → upbdefs-generated/envoy/type/v3/http.upbdefs.h} +10 -9
  386. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +59 -0
  387. data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +40 -0
  388. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +54 -0
  389. data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +45 -0
  390. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +47 -0
  391. data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +35 -0
  392. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +40 -0
  393. data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +30 -0
  394. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +61 -0
  395. data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +45 -0
  396. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +39 -0
  397. data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +35 -0
  398. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +386 -0
  399. data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +165 -0
  400. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +40 -0
  401. data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +35 -0
  402. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +37 -0
  403. data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +35 -0
  404. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +65 -0
  405. data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +50 -0
  406. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +40 -0
  407. data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +35 -0
  408. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +66 -0
  409. data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +75 -0
  410. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +42 -0
  411. data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +35 -0
  412. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +70 -0
  413. data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +45 -0
  414. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +56 -0
  415. data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +35 -0
  416. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +33 -0
  417. data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +30 -0
  418. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +49 -0
  419. data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +35 -0
  420. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +43 -0
  421. data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +35 -0
  422. data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.c +42 -0
  423. data/src/core/ext/upbdefs-generated/udpa/core/v1/authority.upbdefs.h +35 -0
  424. data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.c +62 -0
  425. data/src/core/ext/upbdefs-generated/udpa/core/v1/collection_entry.upbdefs.h +40 -0
  426. data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.c +45 -0
  427. data/src/core/ext/upbdefs-generated/udpa/core/v1/context_params.upbdefs.h +40 -0
  428. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.c +49 -0
  429. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource.upbdefs.h +35 -0
  430. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.c +68 -0
  431. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_locator.upbdefs.h +40 -0
  432. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.c +51 -0
  433. data/src/core/ext/upbdefs-generated/udpa/core/v1/resource_name.upbdefs.h +35 -0
  434. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +307 -0
  435. data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +145 -0
  436. data/src/core/ext/xds/certificate_provider_factory.h +61 -0
  437. data/src/core/ext/xds/certificate_provider_registry.cc +103 -0
  438. data/src/core/ext/xds/certificate_provider_registry.h +57 -0
  439. data/src/core/ext/xds/certificate_provider_store.cc +87 -0
  440. data/src/core/ext/xds/certificate_provider_store.h +112 -0
  441. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +144 -0
  442. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +69 -0
  443. data/src/core/ext/xds/xds_api.cc +687 -767
  444. data/src/core/ext/xds/xds_api.h +207 -98
  445. data/src/core/ext/xds/xds_bootstrap.cc +172 -25
  446. data/src/core/ext/xds/xds_bootstrap.h +23 -8
  447. data/src/core/ext/xds/xds_certificate_provider.cc +299 -0
  448. data/src/core/ext/xds/xds_certificate_provider.h +112 -0
  449. data/src/core/ext/xds/xds_channel_args.h +6 -3
  450. data/src/core/ext/xds/xds_client.cc +617 -494
  451. data/src/core/ext/xds/xds_client.h +118 -58
  452. data/src/core/ext/xds/xds_client_stats.cc +59 -16
  453. data/src/core/ext/xds/xds_client_stats.h +35 -7
  454. data/src/core/ext/xds/xds_server_config_fetcher.cc +131 -0
  455. data/src/core/lib/channel/channel_args.cc +9 -8
  456. data/src/core/lib/channel/channel_args.h +0 -1
  457. data/src/core/lib/channel/channel_trace.cc +4 -2
  458. data/src/core/lib/channel/channel_trace.h +1 -1
  459. data/src/core/lib/channel/channelz.cc +23 -59
  460. data/src/core/lib/channel/channelz.h +13 -22
  461. data/src/core/lib/channel/channelz_registry.cc +12 -11
  462. data/src/core/lib/channel/channelz_registry.h +3 -1
  463. data/src/core/lib/channel/handshaker.cc +2 -2
  464. data/src/core/lib/channel/handshaker.h +2 -2
  465. data/src/core/lib/compression/compression.cc +8 -4
  466. data/src/core/lib/compression/compression_args.cc +3 -2
  467. data/src/core/lib/compression/compression_internal.cc +10 -5
  468. data/src/core/lib/compression/compression_internal.h +2 -1
  469. data/src/core/lib/compression/stream_compression_identity.cc +1 -3
  470. data/src/core/lib/debug/stats.h +2 -2
  471. data/src/core/lib/debug/stats_data.cc +1 -0
  472. data/src/core/lib/debug/stats_data.h +13 -13
  473. data/src/core/lib/gpr/alloc.cc +3 -2
  474. data/src/core/lib/gpr/cpu_iphone.cc +10 -2
  475. data/src/core/lib/gpr/log.cc +53 -16
  476. data/src/core/lib/gpr/log_linux.cc +19 -3
  477. data/src/core/lib/gpr/log_posix.cc +15 -1
  478. data/src/core/lib/gpr/log_windows.cc +18 -4
  479. data/src/core/lib/gpr/murmur_hash.cc +1 -1
  480. data/src/core/lib/gpr/spinlock.h +10 -2
  481. data/src/core/lib/gpr/string.cc +23 -22
  482. data/src/core/lib/gpr/string.h +5 -6
  483. data/src/core/lib/gpr/sync.cc +4 -4
  484. data/src/core/lib/gpr/time.cc +12 -12
  485. data/src/core/lib/gpr/time_precise.cc +5 -2
  486. data/src/core/lib/gpr/time_precise.h +6 -2
  487. data/src/core/lib/gpr/tls.h +4 -0
  488. data/src/core/lib/gpr/tls_msvc.h +2 -0
  489. data/src/core/lib/gpr/tls_stdcpp.h +48 -0
  490. data/src/core/lib/gpr/useful.h +5 -4
  491. data/src/core/lib/gprpp/arena.h +3 -2
  492. data/src/core/lib/gprpp/dual_ref_counted.h +331 -0
  493. data/src/core/lib/gprpp/examine_stack.cc +43 -0
  494. data/src/core/lib/gprpp/examine_stack.h +46 -0
  495. data/src/core/lib/gprpp/fork.cc +2 -2
  496. data/src/core/lib/gprpp/manual_constructor.h +1 -1
  497. data/src/core/lib/gprpp/orphanable.h +4 -8
  498. data/src/core/lib/gprpp/ref_counted.h +91 -68
  499. data/src/core/lib/gprpp/ref_counted_ptr.h +166 -7
  500. data/src/core/lib/{security/authorization/mock_cel/statusor.h → gprpp/stat.h} +13 -25
  501. data/src/core/lib/gprpp/stat_posix.cc +49 -0
  502. data/src/core/lib/gprpp/stat_windows.cc +48 -0
  503. data/src/core/lib/gprpp/thd.h +2 -2
  504. data/src/core/lib/gprpp/thd_posix.cc +42 -37
  505. data/src/core/lib/gprpp/thd_windows.cc +3 -1
  506. data/src/core/lib/http/httpcli.cc +1 -1
  507. data/src/core/lib/http/httpcli.h +2 -3
  508. data/src/core/lib/http/httpcli_security_connector.cc +1 -1
  509. data/src/core/lib/http/parser.cc +47 -27
  510. data/src/core/lib/iomgr/call_combiner.cc +8 -5
  511. data/src/core/lib/iomgr/combiner.cc +2 -1
  512. data/src/core/lib/iomgr/endpoint.h +1 -1
  513. data/src/core/lib/iomgr/endpoint_cfstream.cc +9 -5
  514. data/src/core/lib/iomgr/error.cc +17 -12
  515. data/src/core/lib/iomgr/error_internal.h +1 -1
  516. data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -13
  517. data/src/core/lib/iomgr/ev_epollex_linux.cc +25 -17
  518. data/src/core/lib/iomgr/ev_poll_posix.cc +9 -7
  519. data/src/core/lib/iomgr/exec_ctx.cc +1 -1
  520. data/src/core/lib/iomgr/exec_ctx.h +16 -12
  521. data/src/core/lib/iomgr/executor.cc +2 -1
  522. data/src/core/lib/iomgr/executor.h +1 -1
  523. data/src/core/lib/iomgr/executor/mpmcqueue.h +5 -5
  524. data/src/core/lib/iomgr/executor/threadpool.h +4 -4
  525. data/src/core/lib/iomgr/iomgr.cc +1 -1
  526. data/src/core/lib/iomgr/load_file.h +1 -1
  527. data/src/core/lib/iomgr/lockfree_event.cc +19 -14
  528. data/src/core/lib/iomgr/lockfree_event.h +2 -2
  529. data/src/core/lib/iomgr/parse_address.cc +127 -43
  530. data/src/core/lib/iomgr/parse_address.h +32 -8
  531. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +2 -1
  532. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +1 -1
  533. data/src/core/lib/iomgr/pollset_set_custom.cc +1 -1
  534. data/src/core/lib/iomgr/python_util.h +4 -4
  535. data/src/core/lib/iomgr/resolve_address.cc +4 -4
  536. data/src/core/lib/iomgr/resolve_address_posix.cc +1 -5
  537. data/src/core/lib/iomgr/resource_quota.cc +4 -4
  538. data/src/core/lib/iomgr/sockaddr_utils.cc +10 -10
  539. data/src/core/lib/iomgr/sockaddr_utils.h +1 -1
  540. data/src/core/lib/iomgr/socket_factory_posix.cc +3 -2
  541. data/src/core/lib/iomgr/socket_mutator.cc +3 -2
  542. data/src/core/lib/iomgr/tcp_client.cc +3 -3
  543. data/src/core/lib/iomgr/tcp_client_custom.cc +7 -6
  544. data/src/core/lib/iomgr/tcp_custom.cc +22 -17
  545. data/src/core/lib/iomgr/tcp_posix.cc +12 -8
  546. data/src/core/lib/iomgr/tcp_server_custom.cc +28 -22
  547. data/src/core/lib/iomgr/timer_custom.cc +5 -5
  548. data/src/core/lib/iomgr/timer_generic.cc +3 -3
  549. data/src/core/lib/iomgr/timer_manager.cc +2 -2
  550. data/src/core/lib/iomgr/udp_server.cc +1 -2
  551. data/src/core/lib/iomgr/udp_server.h +1 -2
  552. data/src/core/lib/iomgr/unix_sockets_posix.cc +32 -21
  553. data/src/core/lib/iomgr/unix_sockets_posix.h +5 -0
  554. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +7 -0
  555. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +2 -2
  556. data/src/core/lib/json/json.h +12 -2
  557. data/src/core/lib/json/json_reader.cc +8 -4
  558. data/src/core/lib/json/json_util.cc +58 -0
  559. data/src/core/lib/json/json_util.h +204 -0
  560. data/src/core/lib/json/json_writer.cc +2 -1
  561. data/src/core/lib/security/authorization/evaluate_args.cc +5 -10
  562. data/src/core/lib/security/authorization/evaluate_args.h +1 -1
  563. data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +3 -1
  564. data/src/core/lib/security/authorization/mock_cel/cel_expression.h +5 -4
  565. data/src/core/lib/security/authorization/mock_cel/cel_value.h +4 -0
  566. data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +6 -6
  567. data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +10 -9
  568. data/src/core/lib/security/context/security_context.cc +4 -3
  569. data/src/core/lib/security/context/security_context.h +3 -1
  570. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
  571. data/src/core/lib/security/credentials/credentials.cc +7 -7
  572. data/src/core/lib/security/credentials/credentials.h +3 -3
  573. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +413 -0
  574. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +80 -0
  575. data/src/core/lib/security/credentials/external/aws_request_signer.cc +213 -0
  576. data/src/core/lib/security/credentials/external/aws_request_signer.h +72 -0
  577. data/src/core/lib/security/credentials/external/external_account_credentials.cc +497 -0
  578. data/src/core/lib/security/credentials/external/external_account_credentials.h +120 -0
  579. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +135 -0
  580. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +48 -0
  581. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +213 -0
  582. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +58 -0
  583. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -1
  584. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +18 -12
  585. data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +64 -0
  586. data/src/core/lib/security/credentials/jwt/json_token.cc +6 -3
  587. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +4 -3
  588. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +8 -4
  589. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +39 -46
  590. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -4
  591. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +1 -1
  592. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +5 -5
  593. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +1 -1
  594. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +346 -0
  595. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +213 -0
  596. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +399 -0
  597. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +138 -0
  598. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +78 -150
  599. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +57 -187
  600. data/src/core/lib/security/credentials/tls/tls_credentials.cc +16 -12
  601. data/src/core/lib/security/credentials/tls/tls_credentials.h +2 -2
  602. data/src/core/lib/security/credentials/tls/tls_utils.cc +91 -0
  603. data/src/core/lib/security/credentials/tls/tls_utils.h +38 -0
  604. data/src/core/lib/security/credentials/xds/xds_credentials.cc +175 -0
  605. data/src/core/lib/security/credentials/xds/xds_credentials.h +69 -0
  606. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +1 -1
  607. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +9 -13
  608. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +121 -0
  609. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +87 -0
  610. data/src/core/lib/security/security_connector/load_system_roots.h +4 -0
  611. data/src/core/lib/security/security_connector/load_system_roots_linux.h +2 -0
  612. data/src/core/lib/security/security_connector/local/local_security_connector.cc +3 -3
  613. data/src/core/lib/security/security_connector/security_connector.cc +4 -3
  614. data/src/core/lib/security/security_connector/security_connector.h +4 -2
  615. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +4 -4
  616. data/src/core/lib/security/security_connector/ssl_utils.cc +2 -2
  617. data/src/core/lib/security/security_connector/ssl_utils.h +19 -19
  618. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +342 -279
  619. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +105 -61
  620. data/src/core/lib/security/transport/secure_endpoint.cc +2 -2
  621. data/src/core/lib/security/transport/security_handshaker.cc +3 -3
  622. data/src/core/lib/security/transport/server_auth_filter.cc +2 -1
  623. data/src/core/lib/security/util/json_util.h +1 -0
  624. data/src/core/lib/slice/slice.cc +7 -4
  625. data/src/core/lib/slice/slice_buffer.cc +2 -1
  626. data/src/core/lib/slice/slice_intern.cc +6 -7
  627. data/src/core/lib/slice/slice_internal.h +2 -2
  628. data/src/core/lib/surface/call.cc +41 -32
  629. data/src/core/lib/surface/call_details.cc +8 -8
  630. data/src/core/lib/surface/channel.cc +25 -41
  631. data/src/core/lib/surface/channel.h +9 -3
  632. data/src/core/lib/surface/channel_init.cc +1 -1
  633. data/src/core/lib/surface/completion_queue.cc +30 -24
  634. data/src/core/lib/surface/completion_queue.h +16 -16
  635. data/src/core/lib/surface/init.cc +32 -14
  636. data/src/core/lib/surface/lame_client.cc +20 -46
  637. data/src/core/lib/surface/lame_client.h +4 -0
  638. data/src/core/lib/surface/server.cc +63 -17
  639. data/src/core/lib/surface/server.h +39 -7
  640. data/src/core/lib/surface/validate_metadata.h +3 -0
  641. data/src/core/lib/surface/version.cc +2 -2
  642. data/src/core/lib/transport/authority_override.cc +6 -4
  643. data/src/core/lib/transport/authority_override.h +7 -2
  644. data/src/core/lib/transport/bdp_estimator.cc +1 -1
  645. data/src/core/lib/transport/bdp_estimator.h +2 -1
  646. data/src/core/lib/transport/byte_stream.h +3 -3
  647. data/src/core/lib/transport/connectivity_state.h +11 -9
  648. data/src/core/lib/transport/error_utils.h +1 -1
  649. data/src/core/lib/transport/metadata.cc +11 -1
  650. data/src/core/lib/transport/metadata.h +2 -2
  651. data/src/core/lib/transport/metadata_batch.h +4 -4
  652. data/src/core/lib/transport/static_metadata.cc +1 -1
  653. data/src/core/lib/transport/status_metadata.cc +4 -3
  654. data/src/core/lib/transport/timeout_encoding.cc +4 -4
  655. data/src/core/lib/transport/transport.cc +5 -3
  656. data/src/core/lib/transport/transport.h +8 -8
  657. data/src/core/lib/uri/uri_parser.cc +131 -249
  658. data/src/core/lib/uri/uri_parser.h +57 -21
  659. data/src/core/plugin_registry/grpc_plugin_registry.cc +41 -20
  660. data/src/core/tsi/alts/crypt/gsec.cc +5 -4
  661. data/src/core/tsi/alts/frame_protector/frame_handler.cc +8 -6
  662. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
  663. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +27 -26
  664. data/src/core/tsi/alts/zero_copy_frame_protector/alts_iovec_record_protocol.cc +8 -6
  665. data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +4 -4
  666. data/src/core/tsi/fake_transport_security.cc +6 -3
  667. data/src/core/tsi/local_transport_security.cc +5 -1
  668. data/src/core/tsi/local_transport_security.h +6 -7
  669. data/src/core/tsi/ssl/session_cache/ssl_session.h +3 -0
  670. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
  671. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +4 -1
  672. data/src/core/tsi/ssl_transport_security.cc +78 -58
  673. data/src/core/tsi/ssl_transport_security.h +9 -6
  674. data/src/core/tsi/transport_security.cc +10 -8
  675. data/src/core/tsi/transport_security_interface.h +1 -1
  676. data/src/ruby/ext/grpc/extconf.rb +1 -1
  677. data/src/ruby/ext/grpc/rb_event_thread.c +2 -0
  678. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +36 -16
  679. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +70 -40
  680. data/src/ruby/lib/grpc/version.rb +1 -1
  681. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +28 -0
  682. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +18 -0
  683. data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -6
  684. data/third_party/abseil-cpp/absl/algorithm/container.h +59 -22
  685. data/third_party/abseil-cpp/absl/base/attributes.h +99 -38
  686. data/third_party/abseil-cpp/absl/base/call_once.h +1 -1
  687. data/third_party/abseil-cpp/absl/base/casts.h +9 -6
  688. data/third_party/abseil-cpp/absl/base/config.h +60 -17
  689. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +428 -335
  690. data/third_party/abseil-cpp/absl/base/internal/bits.h +17 -16
  691. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +5 -0
  692. data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +398 -0
  693. data/third_party/abseil-cpp/absl/base/internal/invoke.h +4 -4
  694. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +1 -1
  695. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +29 -1
  696. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +2 -2
  697. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +7 -5
  698. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +25 -38
  699. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +19 -25
  700. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +8 -0
  701. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +28 -5
  702. data/third_party/abseil-cpp/absl/base/internal/sysinfo.h +8 -0
  703. data/third_party/abseil-cpp/absl/base/internal/tsan_mutex_interface.h +3 -1
  704. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +2 -2
  705. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +3 -3
  706. data/third_party/abseil-cpp/absl/base/macros.h +36 -109
  707. data/third_party/abseil-cpp/absl/base/optimization.h +61 -1
  708. data/third_party/abseil-cpp/absl/base/options.h +31 -4
  709. data/third_party/abseil-cpp/absl/base/policy_checks.h +1 -1
  710. data/third_party/abseil-cpp/absl/base/thread_annotations.h +94 -39
  711. data/third_party/abseil-cpp/absl/container/fixed_array.h +42 -25
  712. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +606 -0
  713. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +2 -1
  714. data/third_party/abseil-cpp/absl/container/inlined_vector.h +33 -36
  715. data/third_party/abseil-cpp/absl/container/internal/common.h +6 -2
  716. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +33 -8
  717. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +49 -29
  718. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +15 -0
  719. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +24 -7
  720. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +2 -1
  721. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +35 -11
  722. data/third_party/abseil-cpp/absl/container/internal/have_sse.h +10 -9
  723. data/third_party/abseil-cpp/absl/container/internal/layout.h +7 -5
  724. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +197 -0
  725. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +55 -34
  726. data/third_party/abseil-cpp/absl/debugging/internal/address_is_readable.cc +5 -4
  727. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +66 -16
  728. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +4 -0
  729. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_arm-inl.inc +13 -4
  730. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +43 -24
  731. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +12 -3
  732. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_win32-inl.inc +10 -2
  733. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +22 -1
  734. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +0 -21
  735. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +12 -1
  736. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +101 -0
  737. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +100 -20
  738. data/third_party/abseil-cpp/absl/functional/bind_front.h +184 -0
  739. data/third_party/abseil-cpp/absl/functional/function_ref.h +1 -1
  740. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +95 -0
  741. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +2 -2
  742. data/third_party/abseil-cpp/absl/hash/hash.h +6 -5
  743. data/third_party/abseil-cpp/absl/hash/internal/hash.h +73 -65
  744. data/third_party/abseil-cpp/absl/memory/memory.h +4 -0
  745. data/third_party/abseil-cpp/absl/meta/type_traits.h +2 -8
  746. data/third_party/abseil-cpp/absl/numeric/int128.cc +13 -27
  747. data/third_party/abseil-cpp/absl/numeric/int128.h +16 -15
  748. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +51 -0
  749. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +399 -0
  750. data/third_party/abseil-cpp/absl/status/status.cc +4 -6
  751. data/third_party/abseil-cpp/absl/status/status.h +502 -113
  752. data/third_party/abseil-cpp/absl/status/status_payload_printer.cc +5 -10
  753. data/third_party/abseil-cpp/absl/status/statusor.cc +71 -0
  754. data/third_party/abseil-cpp/absl/status/statusor.h +760 -0
  755. data/third_party/abseil-cpp/absl/strings/charconv.cc +2 -2
  756. data/third_party/abseil-cpp/absl/strings/cord.cc +91 -112
  757. data/third_party/abseil-cpp/absl/strings/cord.h +360 -205
  758. data/third_party/abseil-cpp/absl/strings/escaping.cc +9 -9
  759. data/third_party/abseil-cpp/absl/strings/internal/char_map.h +1 -1
  760. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +1 -1
  761. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +2 -2
  762. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +2 -2
  763. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +45 -23
  764. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +222 -136
  765. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +136 -64
  766. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +1 -1
  767. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +14 -21
  768. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +7 -14
  769. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +31 -7
  770. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +147 -135
  771. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +999 -87
  772. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +3 -3
  773. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +4 -12
  774. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +8 -6
  775. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +13 -11
  776. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +2 -2
  777. data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
  778. data/third_party/abseil-cpp/absl/strings/str_cat.h +1 -1
  779. data/third_party/abseil-cpp/absl/strings/str_format.h +289 -13
  780. data/third_party/abseil-cpp/absl/strings/str_split.cc +2 -2
  781. data/third_party/abseil-cpp/absl/strings/str_split.h +1 -0
  782. data/third_party/abseil-cpp/absl/strings/string_view.h +26 -19
  783. data/third_party/abseil-cpp/absl/strings/substitute.cc +5 -5
  784. data/third_party/abseil-cpp/absl/strings/substitute.h +32 -29
  785. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +3 -3
  786. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +3 -3
  787. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +28 -28
  788. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +4 -16
  789. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +1 -1
  790. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +8 -0
  791. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -2
  792. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +75 -64
  793. data/third_party/abseil-cpp/absl/synchronization/mutex.h +15 -6
  794. data/third_party/abseil-cpp/absl/time/civil_time.cc +9 -9
  795. data/third_party/abseil-cpp/absl/time/clock.cc +3 -3
  796. data/third_party/abseil-cpp/absl/time/duration.cc +90 -59
  797. data/third_party/abseil-cpp/absl/time/format.cc +43 -36
  798. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +26 -16
  799. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +4 -2
  800. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +1 -1
  801. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +136 -29
  802. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +13 -21
  803. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +1 -1
  804. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +136 -129
  805. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +4 -5
  806. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +8 -7
  807. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +6 -6
  808. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -1
  809. data/third_party/abseil-cpp/absl/time/time.h +15 -16
  810. data/third_party/abseil-cpp/absl/types/internal/variant.h +4 -4
  811. data/third_party/abseil-cpp/absl/types/optional.h +9 -9
  812. data/third_party/abseil-cpp/absl/types/span.h +49 -36
  813. data/third_party/abseil-cpp/absl/utility/utility.h +2 -2
  814. data/third_party/address_sorting/include/address_sorting/address_sorting.h +2 -0
  815. data/third_party/boringssl-with-bazel/err_data.c +469 -463
  816. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +0 -6
  817. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +2 -0
  818. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +9 -43
  819. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +55 -4
  820. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +34 -0
  821. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +4 -0
  822. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +6 -2
  823. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +173 -35
  824. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +2 -0
  825. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +4 -0
  826. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +30 -10
  827. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +56 -22
  828. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +8 -2
  829. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +98 -11
  830. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +51 -6
  831. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +118 -49
  832. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +267 -95
  833. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +210 -34
  834. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +766 -0
  835. data/third_party/boringssl-with-bazel/src/crypto/x509/a_strex.c +3 -3
  836. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +6 -4
  837. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +3 -3
  838. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +1 -1
  839. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +7 -2
  840. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +21 -18
  841. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -1
  842. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +24 -3
  843. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +3 -3
  844. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +67 -67
  845. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +3 -3
  846. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +29 -35
  847. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +13 -2
  848. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +9 -8
  849. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +10 -10
  850. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +2 -2
  851. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +28 -40
  852. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +3 -1
  853. data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +1 -4
  854. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +5 -3
  855. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +14 -14
  856. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +7 -3
  857. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +2 -2
  858. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +1 -1
  859. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +1 -1
  860. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +55 -8
  861. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -1
  862. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +24 -0
  863. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +7 -5
  864. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +0 -1
  865. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +6 -3
  866. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +4 -0
  867. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +6 -0
  868. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +1 -1
  869. data/third_party/boringssl-with-bazel/src/include/openssl/des.h +6 -0
  870. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +12 -0
  871. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +9 -0
  872. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +4 -1
  873. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +3 -0
  874. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +202 -134
  875. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +64 -3
  876. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +4 -0
  877. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +42 -14
  878. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +188 -78
  879. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +482 -432
  880. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +18 -5
  881. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +35 -0
  882. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +18 -18
  883. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +2 -3
  884. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +1 -1
  885. data/third_party/boringssl-with-bazel/src/ssl/internal.h +45 -10
  886. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +42 -1
  887. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +8 -9
  888. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +67 -0
  889. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +11 -14
  890. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +216 -11
  891. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +1 -2
  892. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +57 -19
  893. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +135 -41
  894. data/third_party/upb/third_party/wyhash/wyhash.h +145 -0
  895. data/third_party/upb/upb/decode.c +248 -167
  896. data/third_party/upb/upb/decode.h +20 -1
  897. data/third_party/upb/upb/decode.int.h +163 -0
  898. data/third_party/upb/upb/decode_fast.c +1040 -0
  899. data/third_party/upb/upb/decode_fast.h +126 -0
  900. data/third_party/upb/upb/def.c +2178 -0
  901. data/third_party/upb/upb/def.h +315 -0
  902. data/third_party/upb/upb/def.hpp +439 -0
  903. data/third_party/upb/upb/encode.c +227 -169
  904. data/third_party/upb/upb/encode.h +27 -2
  905. data/third_party/upb/upb/json_decode.c +1443 -0
  906. data/third_party/upb/upb/json_decode.h +23 -0
  907. data/third_party/upb/upb/json_encode.c +713 -0
  908. data/third_party/upb/upb/json_encode.h +36 -0
  909. data/third_party/upb/upb/msg.c +167 -88
  910. data/third_party/upb/upb/msg.h +174 -34
  911. data/third_party/upb/upb/port_def.inc +74 -61
  912. data/third_party/upb/upb/port_undef.inc +3 -7
  913. data/third_party/upb/upb/reflection.c +408 -0
  914. data/third_party/upb/upb/reflection.h +168 -0
  915. data/third_party/upb/upb/table.c +34 -197
  916. data/third_party/upb/upb/table.int.h +14 -5
  917. data/third_party/upb/upb/text_encode.c +421 -0
  918. data/third_party/upb/upb/text_encode.h +38 -0
  919. data/third_party/upb/upb/upb.c +18 -41
  920. data/third_party/upb/upb/upb.h +36 -7
  921. data/third_party/upb/upb/upb.hpp +4 -4
  922. data/third_party/upb/upb/upb.int.h +29 -0
  923. metadata +288 -54
  924. data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +0 -946
  925. data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +0 -537
  926. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +0 -1141
  927. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +0 -485
  928. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +0 -68
  929. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +0 -354
  930. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +0 -142
  931. data/src/core/ext/upb-generated/gogoproto/gogo.upb.c +0 -17
  932. data/src/core/ext/xds/xds_channel.h +0 -46
  933. data/src/core/ext/xds/xds_channel_secure.cc +0 -103
  934. data/src/core/lib/gprpp/map.h +0 -53
  935. data/third_party/abseil-cpp/absl/base/dynamic_annotations.cc +0 -129
  936. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pku.c +0 -110
  937. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_sxnet.c +0 -274
  938. data/third_party/upb/upb/port.c +0 -26
@@ -8,7 +8,7 @@
8
8
  * are met:
9
9
  *
10
10
  * 1. Redistributions of source code must retain the above copyright
11
- * notice, this list of conditions and the following disclaimer.
11
+ * notice, this list of conditions and the following disclaimer.
12
12
  *
13
13
  * 2. Redistributions in binary form must reproduce the above copyright
14
14
  * notice, this list of conditions and the following disclaimer in
@@ -57,158 +57,152 @@
57
57
 
58
58
  #include <openssl/bio.h>
59
59
  #include <openssl/conf.h>
60
- #include <openssl/x509.h>
61
60
  #include <openssl/lhash.h>
61
+ #include <openssl/x509.h>
62
62
 
63
63
  #ifdef __cplusplus
64
64
  extern "C" {
65
65
  #endif
66
66
 
67
67
 
68
- /* Legacy X.509 library.
69
- *
70
- * This header is part of OpenSSL's X.509 implementation. It is retained for
71
- * compatibility but otherwise underdocumented and not actively maintained. In
72
- * the future, a replacement library will be available. Meanwhile, minimize
73
- * dependencies on this header where possible. */
68
+ // Legacy X.509 library.
69
+ //
70
+ // This header is part of OpenSSL's X.509 implementation. It is retained for
71
+ // compatibility but otherwise underdocumented and not actively maintained. In
72
+ // the future, a replacement library will be available. Meanwhile, minimize
73
+ // dependencies on this header where possible.
74
74
 
75
75
 
76
- /* Forward reference */
76
+ // Forward reference
77
77
  struct v3_ext_method;
78
78
  struct v3_ext_ctx;
79
79
 
80
- /* Useful typedefs */
80
+ // Useful typedefs
81
81
 
82
- typedef void * (*X509V3_EXT_NEW)(void);
82
+ typedef void *(*X509V3_EXT_NEW)(void);
83
83
  typedef void (*X509V3_EXT_FREE)(void *);
84
- typedef void * (*X509V3_EXT_D2I)(void *, const unsigned char ** , long);
84
+ typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long);
85
85
  typedef int (*X509V3_EXT_I2D)(void *, unsigned char **);
86
- typedef STACK_OF(CONF_VALUE) *
87
- (*X509V3_EXT_I2V)(const struct v3_ext_method *method, void *ext,
88
- STACK_OF(CONF_VALUE) *extlist);
89
- typedef void * (*X509V3_EXT_V2I)(const struct v3_ext_method *method,
90
- struct v3_ext_ctx *ctx,
91
- STACK_OF(CONF_VALUE) *values);
92
- typedef char * (*X509V3_EXT_I2S)(const struct v3_ext_method *method, void *ext);
93
- typedef void * (*X509V3_EXT_S2I)(const struct v3_ext_method *method,
94
- struct v3_ext_ctx *ctx, const char *str);
86
+ typedef STACK_OF(CONF_VALUE) *(*X509V3_EXT_I2V)(
87
+ const struct v3_ext_method *method, void *ext,
88
+ STACK_OF(CONF_VALUE) *extlist);
89
+ typedef void *(*X509V3_EXT_V2I)(const struct v3_ext_method *method,
90
+ struct v3_ext_ctx *ctx,
91
+ STACK_OF(CONF_VALUE) *values);
92
+ typedef char *(*X509V3_EXT_I2S)(const struct v3_ext_method *method, void *ext);
93
+ typedef void *(*X509V3_EXT_S2I)(const struct v3_ext_method *method,
94
+ struct v3_ext_ctx *ctx, const char *str);
95
95
  typedef int (*X509V3_EXT_I2R)(const struct v3_ext_method *method, void *ext,
96
- BIO *out, int indent);
97
- typedef void * (*X509V3_EXT_R2I)(const struct v3_ext_method *method,
98
- struct v3_ext_ctx *ctx, const char *str);
96
+ BIO *out, int indent);
97
+ typedef void *(*X509V3_EXT_R2I)(const struct v3_ext_method *method,
98
+ struct v3_ext_ctx *ctx, const char *str);
99
99
 
100
- /* V3 extension structure */
100
+ // V3 extension structure
101
101
 
102
102
  struct v3_ext_method {
103
- int ext_nid;
104
- int ext_flags;
105
- /* If this is set the following four fields are ignored */
106
- ASN1_ITEM_EXP *it;
107
- /* Old style ASN1 calls */
108
- X509V3_EXT_NEW ext_new;
109
- X509V3_EXT_FREE ext_free;
110
- X509V3_EXT_D2I d2i;
111
- X509V3_EXT_I2D i2d;
112
-
113
- /* The following pair is used for string extensions */
114
- X509V3_EXT_I2S i2s;
115
- X509V3_EXT_S2I s2i;
116
-
117
- /* The following pair is used for multi-valued extensions */
118
- X509V3_EXT_I2V i2v;
119
- X509V3_EXT_V2I v2i;
120
-
121
- /* The following are used for raw extensions */
122
- X509V3_EXT_I2R i2r;
123
- X509V3_EXT_R2I r2i;
124
-
125
- void *usr_data; /* Any extension specific data */
103
+ int ext_nid;
104
+ int ext_flags;
105
+ // If this is set the following four fields are ignored
106
+ ASN1_ITEM_EXP *it;
107
+ // Old style ASN1 calls
108
+ X509V3_EXT_NEW ext_new;
109
+ X509V3_EXT_FREE ext_free;
110
+ X509V3_EXT_D2I d2i;
111
+ X509V3_EXT_I2D i2d;
112
+
113
+ // The following pair is used for string extensions
114
+ X509V3_EXT_I2S i2s;
115
+ X509V3_EXT_S2I s2i;
116
+
117
+ // The following pair is used for multi-valued extensions
118
+ X509V3_EXT_I2V i2v;
119
+ X509V3_EXT_V2I v2i;
120
+
121
+ // The following are used for raw extensions
122
+ X509V3_EXT_I2R i2r;
123
+ X509V3_EXT_R2I r2i;
124
+
125
+ void *usr_data; // Any extension specific data
126
126
  };
127
127
 
128
128
  typedef struct X509V3_CONF_METHOD_st {
129
- char * (*get_string)(void *db, char *section, char *value);
130
- STACK_OF(CONF_VALUE) * (*get_section)(void *db, char *section);
131
- void (*free_string)(void *db, char * string);
132
- void (*free_section)(void *db, STACK_OF(CONF_VALUE) *section);
129
+ char *(*get_string)(void *db, const char *section, const char *value);
130
+ STACK_OF(CONF_VALUE) *(*get_section)(void *db, const char *section);
131
+ void (*free_string)(void *db, char *string);
132
+ void (*free_section)(void *db, STACK_OF(CONF_VALUE) *section);
133
133
  } X509V3_CONF_METHOD;
134
134
 
135
- /* Context specific info */
135
+ // Context specific info
136
136
  struct v3_ext_ctx {
137
137
  #define CTX_TEST 0x1
138
- int flags;
139
- X509 *issuer_cert;
140
- X509 *subject_cert;
141
- X509_REQ *subject_req;
142
- X509_CRL *crl;
143
- const X509V3_CONF_METHOD *db_meth;
144
- void *db;
145
- /* Maybe more here */
138
+ int flags;
139
+ X509 *issuer_cert;
140
+ X509 *subject_cert;
141
+ X509_REQ *subject_req;
142
+ X509_CRL *crl;
143
+ const X509V3_CONF_METHOD *db_meth;
144
+ void *db;
145
+ // Maybe more here
146
146
  };
147
147
 
148
148
  typedef struct v3_ext_method X509V3_EXT_METHOD;
149
149
 
150
150
  DEFINE_STACK_OF(X509V3_EXT_METHOD)
151
151
 
152
- /* ext_flags values */
153
- #define X509V3_EXT_DYNAMIC 0x1
154
- #define X509V3_EXT_CTX_DEP 0x2
155
- #define X509V3_EXT_MULTILINE 0x4
152
+ // ext_flags values
153
+ #define X509V3_EXT_DYNAMIC 0x1
154
+ #define X509V3_EXT_CTX_DEP 0x2
155
+ #define X509V3_EXT_MULTILINE 0x4
156
156
 
157
157
  typedef BIT_STRING_BITNAME ENUMERATED_NAMES;
158
158
 
159
159
  struct BASIC_CONSTRAINTS_st {
160
- int ca;
161
- ASN1_INTEGER *pathlen;
160
+ int ca;
161
+ ASN1_INTEGER *pathlen;
162
162
  };
163
163
 
164
164
 
165
- typedef struct PKEY_USAGE_PERIOD_st {
166
- ASN1_GENERALIZEDTIME *notBefore;
167
- ASN1_GENERALIZEDTIME *notAfter;
168
- } PKEY_USAGE_PERIOD;
169
-
170
165
  typedef struct otherName_st {
171
- ASN1_OBJECT *type_id;
172
- ASN1_TYPE *value;
166
+ ASN1_OBJECT *type_id;
167
+ ASN1_TYPE *value;
173
168
  } OTHERNAME;
174
169
 
175
170
  typedef struct EDIPartyName_st {
176
- ASN1_STRING *nameAssigner;
177
- ASN1_STRING *partyName;
171
+ ASN1_STRING *nameAssigner;
172
+ ASN1_STRING *partyName;
178
173
  } EDIPARTYNAME;
179
174
 
180
175
  typedef struct GENERAL_NAME_st {
181
-
182
- #define GEN_OTHERNAME 0
183
- #define GEN_EMAIL 1
184
- #define GEN_DNS 2
185
- #define GEN_X400 3
186
- #define GEN_DIRNAME 4
187
- #define GEN_EDIPARTY 5
188
- #define GEN_URI 6
189
- #define GEN_IPADD 7
190
- #define GEN_RID 8
191
-
192
- int type;
193
- union {
194
- char *ptr;
195
- OTHERNAME *otherName; /* otherName */
196
- ASN1_IA5STRING *rfc822Name;
197
- ASN1_IA5STRING *dNSName;
198
- ASN1_TYPE *x400Address;
199
- X509_NAME *directoryName;
200
- EDIPARTYNAME *ediPartyName;
201
- ASN1_IA5STRING *uniformResourceIdentifier;
202
- ASN1_OCTET_STRING *iPAddress;
203
- ASN1_OBJECT *registeredID;
204
-
205
- /* Old names */
206
- ASN1_OCTET_STRING *ip; /* iPAddress */
207
- X509_NAME *dirn; /* dirn */
208
- ASN1_IA5STRING *ia5;/* rfc822Name, dNSName, uniformResourceIdentifier */
209
- ASN1_OBJECT *rid; /* registeredID */
210
- ASN1_TYPE *other; /* x400Address */
211
- } d;
176
+ #define GEN_OTHERNAME 0
177
+ #define GEN_EMAIL 1
178
+ #define GEN_DNS 2
179
+ #define GEN_X400 3
180
+ #define GEN_DIRNAME 4
181
+ #define GEN_EDIPARTY 5
182
+ #define GEN_URI 6
183
+ #define GEN_IPADD 7
184
+ #define GEN_RID 8
185
+
186
+ int type;
187
+ union {
188
+ char *ptr;
189
+ OTHERNAME *otherName; // otherName
190
+ ASN1_IA5STRING *rfc822Name;
191
+ ASN1_IA5STRING *dNSName;
192
+ ASN1_TYPE *x400Address;
193
+ X509_NAME *directoryName;
194
+ EDIPARTYNAME *ediPartyName;
195
+ ASN1_IA5STRING *uniformResourceIdentifier;
196
+ ASN1_OCTET_STRING *iPAddress;
197
+ ASN1_OBJECT *registeredID;
198
+
199
+ // Old names
200
+ ASN1_OCTET_STRING *ip; // iPAddress
201
+ X509_NAME *dirn; // dirn
202
+ ASN1_IA5STRING *ia5; // rfc822Name, dNSName, uniformResourceIdentifier
203
+ ASN1_OBJECT *rid; // registeredID
204
+ ASN1_TYPE *other; // x400Address
205
+ } d;
212
206
  } GENERAL_NAME;
213
207
 
214
208
  DEFINE_STACK_OF(GENERAL_NAME)
@@ -219,8 +213,8 @@ typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES;
219
213
  DEFINE_STACK_OF(GENERAL_NAMES)
220
214
 
221
215
  typedef struct ACCESS_DESCRIPTION_st {
222
- ASN1_OBJECT *method;
223
- GENERAL_NAME *location;
216
+ ASN1_OBJECT *method;
217
+ GENERAL_NAME *location;
224
218
  } ACCESS_DESCRIPTION;
225
219
 
226
220
  DEFINE_STACK_OF(ACCESS_DESCRIPTION)
@@ -231,34 +225,34 @@ typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS;
231
225
  typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE;
232
226
 
233
227
  typedef struct DIST_POINT_NAME_st {
234
- int type;
235
- union {
236
- GENERAL_NAMES *fullname;
237
- STACK_OF(X509_NAME_ENTRY) *relativename;
238
- } name;
239
- /* If relativename then this contains the full distribution point name */
240
- X509_NAME *dpname;
228
+ int type;
229
+ union {
230
+ GENERAL_NAMES *fullname;
231
+ STACK_OF(X509_NAME_ENTRY) *relativename;
232
+ } name;
233
+ // If relativename then this contains the full distribution point name
234
+ X509_NAME *dpname;
241
235
  } DIST_POINT_NAME;
242
- /* All existing reasons */
243
- #define CRLDP_ALL_REASONS 0x807f
244
-
245
- #define CRL_REASON_NONE (-1)
246
- #define CRL_REASON_UNSPECIFIED 0
247
- #define CRL_REASON_KEY_COMPROMISE 1
248
- #define CRL_REASON_CA_COMPROMISE 2
249
- #define CRL_REASON_AFFILIATION_CHANGED 3
250
- #define CRL_REASON_SUPERSEDED 4
251
- #define CRL_REASON_CESSATION_OF_OPERATION 5
252
- #define CRL_REASON_CERTIFICATE_HOLD 6
253
- #define CRL_REASON_REMOVE_FROM_CRL 8
254
- #define CRL_REASON_PRIVILEGE_WITHDRAWN 9
255
- #define CRL_REASON_AA_COMPROMISE 10
236
+ // All existing reasons
237
+ #define CRLDP_ALL_REASONS 0x807f
238
+
239
+ #define CRL_REASON_NONE (-1)
240
+ #define CRL_REASON_UNSPECIFIED 0
241
+ #define CRL_REASON_KEY_COMPROMISE 1
242
+ #define CRL_REASON_CA_COMPROMISE 2
243
+ #define CRL_REASON_AFFILIATION_CHANGED 3
244
+ #define CRL_REASON_SUPERSEDED 4
245
+ #define CRL_REASON_CESSATION_OF_OPERATION 5
246
+ #define CRL_REASON_CERTIFICATE_HOLD 6
247
+ #define CRL_REASON_REMOVE_FROM_CRL 8
248
+ #define CRL_REASON_PRIVILEGE_WITHDRAWN 9
249
+ #define CRL_REASON_AA_COMPROMISE 10
256
250
 
257
251
  struct DIST_POINT_st {
258
- DIST_POINT_NAME *distpoint;
259
- ASN1_BIT_STRING *reasons;
260
- GENERAL_NAMES *CRLissuer;
261
- int dp_reasons;
252
+ DIST_POINT_NAME *distpoint;
253
+ ASN1_BIT_STRING *reasons;
254
+ GENERAL_NAMES *CRLissuer;
255
+ int dp_reasons;
262
256
  };
263
257
 
264
258
  typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS;
@@ -267,51 +261,36 @@ DEFINE_STACK_OF(DIST_POINT)
267
261
  DECLARE_ASN1_SET_OF(DIST_POINT)
268
262
 
269
263
  struct AUTHORITY_KEYID_st {
270
- ASN1_OCTET_STRING *keyid;
271
- GENERAL_NAMES *issuer;
272
- ASN1_INTEGER *serial;
264
+ ASN1_OCTET_STRING *keyid;
265
+ GENERAL_NAMES *issuer;
266
+ ASN1_INTEGER *serial;
273
267
  };
274
268
 
275
- /* Strong extranet structures */
276
-
277
- typedef struct SXNET_ID_st {
278
- ASN1_INTEGER *zone;
279
- ASN1_OCTET_STRING *user;
280
- } SXNETID;
281
-
282
- DEFINE_STACK_OF(SXNETID)
283
- DECLARE_ASN1_SET_OF(SXNETID)
284
-
285
- typedef struct SXNET_st {
286
- ASN1_INTEGER *version;
287
- STACK_OF(SXNETID) *ids;
288
- } SXNET;
289
-
290
269
  typedef struct NOTICEREF_st {
291
- ASN1_STRING *organization;
292
- STACK_OF(ASN1_INTEGER) *noticenos;
270
+ ASN1_STRING *organization;
271
+ STACK_OF(ASN1_INTEGER) *noticenos;
293
272
  } NOTICEREF;
294
273
 
295
274
  typedef struct USERNOTICE_st {
296
- NOTICEREF *noticeref;
297
- ASN1_STRING *exptext;
275
+ NOTICEREF *noticeref;
276
+ ASN1_STRING *exptext;
298
277
  } USERNOTICE;
299
278
 
300
279
  typedef struct POLICYQUALINFO_st {
301
- ASN1_OBJECT *pqualid;
302
- union {
303
- ASN1_IA5STRING *cpsuri;
304
- USERNOTICE *usernotice;
305
- ASN1_TYPE *other;
306
- } d;
280
+ ASN1_OBJECT *pqualid;
281
+ union {
282
+ ASN1_IA5STRING *cpsuri;
283
+ USERNOTICE *usernotice;
284
+ ASN1_TYPE *other;
285
+ } d;
307
286
  } POLICYQUALINFO;
308
287
 
309
288
  DEFINE_STACK_OF(POLICYQUALINFO)
310
289
  DECLARE_ASN1_SET_OF(POLICYQUALINFO)
311
290
 
312
291
  typedef struct POLICYINFO_st {
313
- ASN1_OBJECT *policyid;
314
- STACK_OF(POLICYQUALINFO) *qualifiers;
292
+ ASN1_OBJECT *policyid;
293
+ STACK_OF(POLICYQUALINFO) *qualifiers;
315
294
  } POLICYINFO;
316
295
 
317
296
  typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES;
@@ -320,8 +299,8 @@ DEFINE_STACK_OF(POLICYINFO)
320
299
  DECLARE_ASN1_SET_OF(POLICYINFO)
321
300
 
322
301
  typedef struct POLICY_MAPPING_st {
323
- ASN1_OBJECT *issuerDomainPolicy;
324
- ASN1_OBJECT *subjectDomainPolicy;
302
+ ASN1_OBJECT *issuerDomainPolicy;
303
+ ASN1_OBJECT *subjectDomainPolicy;
325
304
  } POLICY_MAPPING;
326
305
 
327
306
  DEFINE_STACK_OF(POLICY_MAPPING)
@@ -329,209 +308,181 @@ DEFINE_STACK_OF(POLICY_MAPPING)
329
308
  typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS;
330
309
 
331
310
  typedef struct GENERAL_SUBTREE_st {
332
- GENERAL_NAME *base;
333
- ASN1_INTEGER *minimum;
334
- ASN1_INTEGER *maximum;
311
+ GENERAL_NAME *base;
312
+ ASN1_INTEGER *minimum;
313
+ ASN1_INTEGER *maximum;
335
314
  } GENERAL_SUBTREE;
336
315
 
337
316
  DEFINE_STACK_OF(GENERAL_SUBTREE)
338
317
 
339
318
  struct NAME_CONSTRAINTS_st {
340
- STACK_OF(GENERAL_SUBTREE) *permittedSubtrees;
341
- STACK_OF(GENERAL_SUBTREE) *excludedSubtrees;
319
+ STACK_OF(GENERAL_SUBTREE) *permittedSubtrees;
320
+ STACK_OF(GENERAL_SUBTREE) *excludedSubtrees;
342
321
  };
343
322
 
344
323
  typedef struct POLICY_CONSTRAINTS_st {
345
- ASN1_INTEGER *requireExplicitPolicy;
346
- ASN1_INTEGER *inhibitPolicyMapping;
324
+ ASN1_INTEGER *requireExplicitPolicy;
325
+ ASN1_INTEGER *inhibitPolicyMapping;
347
326
  } POLICY_CONSTRAINTS;
348
327
 
349
- /* Proxy certificate structures, see RFC 3820 */
350
- typedef struct PROXY_POLICY_st
351
- {
352
- ASN1_OBJECT *policyLanguage;
353
- ASN1_OCTET_STRING *policy;
354
- } PROXY_POLICY;
328
+ // Proxy certificate structures, see RFC 3820
329
+ typedef struct PROXY_POLICY_st {
330
+ ASN1_OBJECT *policyLanguage;
331
+ ASN1_OCTET_STRING *policy;
332
+ } PROXY_POLICY;
355
333
 
356
- typedef struct PROXY_CERT_INFO_EXTENSION_st
357
- {
358
- ASN1_INTEGER *pcPathLengthConstraint;
359
- PROXY_POLICY *proxyPolicy;
360
- } PROXY_CERT_INFO_EXTENSION;
334
+ typedef struct PROXY_CERT_INFO_EXTENSION_st {
335
+ ASN1_INTEGER *pcPathLengthConstraint;
336
+ PROXY_POLICY *proxyPolicy;
337
+ } PROXY_CERT_INFO_EXTENSION;
361
338
 
362
339
  DECLARE_ASN1_FUNCTIONS(PROXY_POLICY)
363
340
  DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION)
364
341
 
365
- struct ISSUING_DIST_POINT_st
366
- {
367
- DIST_POINT_NAME *distpoint;
368
- int onlyuser;
369
- int onlyCA;
370
- ASN1_BIT_STRING *onlysomereasons;
371
- int indirectCRL;
372
- int onlyattr;
373
- };
374
-
375
- /* Values in idp_flags field */
376
- /* IDP present */
377
- #define IDP_PRESENT 0x1
378
- /* IDP values inconsistent */
379
- #define IDP_INVALID 0x2
380
- /* onlyuser true */
381
- #define IDP_ONLYUSER 0x4
382
- /* onlyCA true */
383
- #define IDP_ONLYCA 0x8
384
- /* onlyattr true */
385
- #define IDP_ONLYATTR 0x10
386
- /* indirectCRL true */
387
- #define IDP_INDIRECT 0x20
388
- /* onlysomereasons present */
389
- #define IDP_REASONS 0x40
390
-
391
- #define X509V3_conf_err(val) ERR_add_error_data(6, "section:", (val)->section, \
392
- ",name:", (val)->name, ",value:", (val)->value);
342
+ struct ISSUING_DIST_POINT_st {
343
+ DIST_POINT_NAME *distpoint;
344
+ int onlyuser;
345
+ int onlyCA;
346
+ ASN1_BIT_STRING *onlysomereasons;
347
+ int indirectCRL;
348
+ int onlyattr;
349
+ };
350
+
351
+ // Values in idp_flags field
352
+ // IDP present
353
+ #define IDP_PRESENT 0x1
354
+ // IDP values inconsistent
355
+ #define IDP_INVALID 0x2
356
+ // onlyuser true
357
+ #define IDP_ONLYUSER 0x4
358
+ // onlyCA true
359
+ #define IDP_ONLYCA 0x8
360
+ // onlyattr true
361
+ #define IDP_ONLYATTR 0x10
362
+ // indirectCRL true
363
+ #define IDP_INDIRECT 0x20
364
+ // onlysomereasons present
365
+ #define IDP_REASONS 0x40
366
+
367
+ #define X509V3_conf_err(val) \
368
+ ERR_add_error_data(6, "section:", (val)->section, ",name:", (val)->name, \
369
+ ",value:", (val)->value);
393
370
 
394
371
  #define X509V3_set_ctx_test(ctx) \
395
- X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST)
372
+ X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST)
396
373
  #define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL;
397
374
 
398
- #define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \
399
- 0,0,0,0, \
400
- 0,0, \
401
- (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \
402
- (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \
403
- NULL, NULL, \
404
- (void *)(table)}
405
-
406
- #define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \
407
- 0,0,0,0, \
408
- (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \
409
- (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \
410
- 0,0,0,0, \
411
- NULL}
412
-
413
- #define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
414
-
415
-
416
- /* X509_PURPOSE stuff */
417
-
418
- #define EXFLAG_BCONS 0x1
419
- #define EXFLAG_KUSAGE 0x2
420
- #define EXFLAG_XKUSAGE 0x4
421
- #define EXFLAG_NSCERT 0x8
422
-
423
- #define EXFLAG_CA 0x10
424
- /* Really self issued not necessarily self signed */
425
- #define EXFLAG_SI 0x20
426
- #define EXFLAG_V1 0x40
427
- #define EXFLAG_INVALID 0x80
428
- #define EXFLAG_SET 0x100
429
- #define EXFLAG_CRITICAL 0x200
430
- #define EXFLAG_PROXY 0x400
431
-
432
- #define EXFLAG_INVALID_POLICY 0x800
433
- #define EXFLAG_FRESHEST 0x1000
434
- /* Self signed */
435
- #define EXFLAG_SS 0x2000
436
-
437
- #define KU_DIGITAL_SIGNATURE 0x0080
438
- #define KU_NON_REPUDIATION 0x0040
439
- #define KU_KEY_ENCIPHERMENT 0x0020
440
- #define KU_DATA_ENCIPHERMENT 0x0010
441
- #define KU_KEY_AGREEMENT 0x0008
442
- #define KU_KEY_CERT_SIGN 0x0004
443
- #define KU_CRL_SIGN 0x0002
444
- #define KU_ENCIPHER_ONLY 0x0001
445
- #define KU_DECIPHER_ONLY 0x8000
446
-
447
- #define NS_SSL_CLIENT 0x80
448
- #define NS_SSL_SERVER 0x40
449
- #define NS_SMIME 0x20
450
- #define NS_OBJSIGN 0x10
451
- #define NS_SSL_CA 0x04
452
- #define NS_SMIME_CA 0x02
453
- #define NS_OBJSIGN_CA 0x01
454
- #define NS_ANY_CA (NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA)
455
-
456
- #define XKU_SSL_SERVER 0x1
457
- #define XKU_SSL_CLIENT 0x2
458
- #define XKU_SMIME 0x4
459
- #define XKU_CODE_SIGN 0x8
460
- #define XKU_SGC 0x10
461
- #define XKU_OCSP_SIGN 0x20
462
- #define XKU_TIMESTAMP 0x40
463
- #define XKU_DVCS 0x80
464
- #define XKU_ANYEKU 0x100
465
-
466
- #define X509_PURPOSE_DYNAMIC 0x1
467
- #define X509_PURPOSE_DYNAMIC_NAME 0x2
375
+ #define EXT_BITSTRING(nid, table) \
376
+ { \
377
+ nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), 0, 0, 0, 0, 0, 0, \
378
+ (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \
379
+ (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, NULL, NULL, (void *)(table) \
380
+ }
381
+
382
+ #define EXT_IA5STRING(nid) \
383
+ { \
384
+ nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), 0, 0, 0, 0, \
385
+ (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \
386
+ (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, 0, 0, 0, 0, NULL \
387
+ }
388
+
389
+ #define EXT_END \
390
+ { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
391
+
392
+
393
+ // X509_PURPOSE stuff
394
+
395
+ #define EXFLAG_BCONS 0x1
396
+ #define EXFLAG_KUSAGE 0x2
397
+ #define EXFLAG_XKUSAGE 0x4
398
+ #define EXFLAG_NSCERT 0x8
399
+
400
+ #define EXFLAG_CA 0x10
401
+ // Really self issued not necessarily self signed
402
+ #define EXFLAG_SI 0x20
403
+ #define EXFLAG_V1 0x40
404
+ #define EXFLAG_INVALID 0x80
405
+ #define EXFLAG_SET 0x100
406
+ #define EXFLAG_CRITICAL 0x200
407
+ #define EXFLAG_PROXY 0x400
408
+
409
+ #define EXFLAG_INVALID_POLICY 0x800
410
+ #define EXFLAG_FRESHEST 0x1000
411
+ // Self signed
412
+ #define EXFLAG_SS 0x2000
413
+
414
+ #define KU_DIGITAL_SIGNATURE 0x0080
415
+ #define KU_NON_REPUDIATION 0x0040
416
+ #define KU_KEY_ENCIPHERMENT 0x0020
417
+ #define KU_DATA_ENCIPHERMENT 0x0010
418
+ #define KU_KEY_AGREEMENT 0x0008
419
+ #define KU_KEY_CERT_SIGN 0x0004
420
+ #define KU_CRL_SIGN 0x0002
421
+ #define KU_ENCIPHER_ONLY 0x0001
422
+ #define KU_DECIPHER_ONLY 0x8000
423
+
424
+ #define NS_SSL_CLIENT 0x80
425
+ #define NS_SSL_SERVER 0x40
426
+ #define NS_SMIME 0x20
427
+ #define NS_OBJSIGN 0x10
428
+ #define NS_SSL_CA 0x04
429
+ #define NS_SMIME_CA 0x02
430
+ #define NS_OBJSIGN_CA 0x01
431
+ #define NS_ANY_CA (NS_SSL_CA | NS_SMIME_CA | NS_OBJSIGN_CA)
432
+
433
+ #define XKU_SSL_SERVER 0x1
434
+ #define XKU_SSL_CLIENT 0x2
435
+ #define XKU_SMIME 0x4
436
+ #define XKU_CODE_SIGN 0x8
437
+ #define XKU_SGC 0x10
438
+ #define XKU_OCSP_SIGN 0x20
439
+ #define XKU_TIMESTAMP 0x40
440
+ #define XKU_DVCS 0x80
441
+ #define XKU_ANYEKU 0x100
442
+
443
+ #define X509_PURPOSE_DYNAMIC 0x1
444
+ #define X509_PURPOSE_DYNAMIC_NAME 0x2
468
445
 
469
446
  typedef struct x509_purpose_st {
470
- int purpose;
471
- int trust; /* Default trust ID */
472
- int flags;
473
- int (*check_purpose)(const struct x509_purpose_st *,
474
- const X509 *, int);
475
- char *name;
476
- char *sname;
477
- void *usr_data;
447
+ int purpose;
448
+ int trust; // Default trust ID
449
+ int flags;
450
+ int (*check_purpose)(const struct x509_purpose_st *, const X509 *, int);
451
+ char *name;
452
+ char *sname;
453
+ void *usr_data;
478
454
  } X509_PURPOSE;
479
455
 
480
- #define X509_PURPOSE_SSL_CLIENT 1
481
- #define X509_PURPOSE_SSL_SERVER 2
482
- #define X509_PURPOSE_NS_SSL_SERVER 3
483
- #define X509_PURPOSE_SMIME_SIGN 4
484
- #define X509_PURPOSE_SMIME_ENCRYPT 5
485
- #define X509_PURPOSE_CRL_SIGN 6
486
- #define X509_PURPOSE_ANY 7
487
- #define X509_PURPOSE_OCSP_HELPER 8
488
- #define X509_PURPOSE_TIMESTAMP_SIGN 9
489
-
490
- #define X509_PURPOSE_MIN 1
491
- #define X509_PURPOSE_MAX 9
492
-
493
- /* Flags for X509V3_EXT_print() */
494
-
495
- #define X509V3_EXT_UNKNOWN_MASK (0xfL << 16)
496
- /* Return error for unknown extensions */
497
- #define X509V3_EXT_DEFAULT 0
498
- /* Print error for unknown extensions */
499
- #define X509V3_EXT_ERROR_UNKNOWN (1L << 16)
500
- /* ASN1 parse unknown extensions */
501
- #define X509V3_EXT_PARSE_UNKNOWN (2L << 16)
502
- /* BIO_dump unknown extensions */
503
- #define X509V3_EXT_DUMP_UNKNOWN (3L << 16)
504
-
505
- /* Flags for X509V3_add1_i2d */
506
-
507
- #define X509V3_ADD_OP_MASK 0xfL
508
- #define X509V3_ADD_DEFAULT 0L
509
- #define X509V3_ADD_APPEND 1L
510
- #define X509V3_ADD_REPLACE 2L
511
- #define X509V3_ADD_REPLACE_EXISTING 3L
512
- #define X509V3_ADD_KEEP_EXISTING 4L
513
- #define X509V3_ADD_DELETE 5L
514
- #define X509V3_ADD_SILENT 0x10
456
+ #define X509_PURPOSE_SSL_CLIENT 1
457
+ #define X509_PURPOSE_SSL_SERVER 2
458
+ #define X509_PURPOSE_NS_SSL_SERVER 3
459
+ #define X509_PURPOSE_SMIME_SIGN 4
460
+ #define X509_PURPOSE_SMIME_ENCRYPT 5
461
+ #define X509_PURPOSE_CRL_SIGN 6
462
+ #define X509_PURPOSE_ANY 7
463
+ #define X509_PURPOSE_OCSP_HELPER 8
464
+ #define X509_PURPOSE_TIMESTAMP_SIGN 9
465
+
466
+ #define X509_PURPOSE_MIN 1
467
+ #define X509_PURPOSE_MAX 9
468
+
469
+ // Flags for X509V3_add1_i2d
470
+
471
+ #define X509V3_ADD_OP_MASK 0xfL
472
+ #define X509V3_ADD_DEFAULT 0L
473
+ #define X509V3_ADD_APPEND 1L
474
+ #define X509V3_ADD_REPLACE 2L
475
+ #define X509V3_ADD_REPLACE_EXISTING 3L
476
+ #define X509V3_ADD_KEEP_EXISTING 4L
477
+ #define X509V3_ADD_DELETE 5L
478
+ #define X509V3_ADD_SILENT 0x10
515
479
 
516
480
  DEFINE_STACK_OF(X509_PURPOSE)
517
481
 
518
482
  DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS)
519
483
 
520
- DECLARE_ASN1_FUNCTIONS(SXNET)
521
- DECLARE_ASN1_FUNCTIONS(SXNETID)
522
-
523
- int SXNET_add_id_asc(SXNET **psx, char *zone, char *user, int userlen);
524
- int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, char *user, int userlen);
525
- int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, char *user, int userlen);
526
-
527
- ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, char *zone);
528
- ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone);
529
- ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone);
530
-
531
484
  DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID)
532
485
 
533
- DECLARE_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD)
534
-
535
486
  DECLARE_ASN1_FUNCTIONS(GENERAL_NAME)
536
487
  OPENSSL_EXPORT GENERAL_NAME *GENERAL_NAME_dup(GENERAL_NAME *a);
537
488
  OPENSSL_EXPORT int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b);
@@ -539,36 +490,45 @@ OPENSSL_EXPORT int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b);
539
490
 
540
491
 
541
492
  OPENSSL_EXPORT ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
542
- X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval);
543
- OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
544
- ASN1_BIT_STRING *bits,
545
- STACK_OF(CONF_VALUE) *extlist);
546
-
547
- OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, GENERAL_NAME *gen, STACK_OF(CONF_VALUE) *ret);
493
+ X509V3_CTX *ctx,
494
+ STACK_OF(CONF_VALUE) *nval);
495
+ OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(
496
+ X509V3_EXT_METHOD *method, ASN1_BIT_STRING *bits,
497
+ STACK_OF(CONF_VALUE) *extlist);
498
+
499
+ OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(
500
+ X509V3_EXT_METHOD *method, GENERAL_NAME *gen, STACK_OF(CONF_VALUE) *ret);
548
501
  OPENSSL_EXPORT int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen);
549
502
 
550
503
  DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES)
551
504
 
552
- OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method,
553
- GENERAL_NAMES *gen, STACK_OF(CONF_VALUE) *extlist);
505
+ OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(
506
+ X509V3_EXT_METHOD *method, GENERAL_NAMES *gen,
507
+ STACK_OF(CONF_VALUE) *extlist);
554
508
  OPENSSL_EXPORT GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method,
555
- X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval);
509
+ X509V3_CTX *ctx,
510
+ STACK_OF(CONF_VALUE) *nval);
556
511
 
557
512
  DECLARE_ASN1_FUNCTIONS(OTHERNAME)
558
513
  DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME)
559
514
  OPENSSL_EXPORT int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b);
560
- OPENSSL_EXPORT void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value);
561
- OPENSSL_EXPORT void *GENERAL_NAME_get0_value(GENERAL_NAME *a, int *ptype);
515
+ OPENSSL_EXPORT void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type,
516
+ void *value);
517
+ OPENSSL_EXPORT void *GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype);
562
518
  OPENSSL_EXPORT int GENERAL_NAME_set0_othername(GENERAL_NAME *gen,
563
- ASN1_OBJECT *oid, ASN1_TYPE *value);
564
- OPENSSL_EXPORT int GENERAL_NAME_get0_otherName(GENERAL_NAME *gen,
565
- ASN1_OBJECT **poid, ASN1_TYPE **pvalue);
519
+ ASN1_OBJECT *oid,
520
+ ASN1_TYPE *value);
521
+ OPENSSL_EXPORT int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen,
522
+ ASN1_OBJECT **poid,
523
+ ASN1_TYPE **pvalue);
566
524
 
567
- OPENSSL_EXPORT char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, ASN1_OCTET_STRING *ia5);
568
- OPENSSL_EXPORT ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, char *str);
525
+ OPENSSL_EXPORT char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method,
526
+ const ASN1_OCTET_STRING *ia5);
527
+ OPENSSL_EXPORT ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(
528
+ X509V3_EXT_METHOD *method, X509V3_CTX *ctx, char *str);
569
529
 
570
530
  DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE)
571
- OPENSSL_EXPORT int i2a_ACCESS_DESCRIPTION(BIO *bp, ACCESS_DESCRIPTION* a);
531
+ OPENSSL_EXPORT int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a);
572
532
 
573
533
  DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES)
574
534
  DECLARE_ASN1_FUNCTIONS(POLICYINFO)
@@ -581,7 +541,8 @@ DECLARE_ASN1_FUNCTIONS(DIST_POINT)
581
541
  DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME)
582
542
  DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT)
583
543
 
584
- OPENSSL_EXPORT int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, X509_NAME *iname);
544
+ OPENSSL_EXPORT int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn,
545
+ X509_NAME *iname);
585
546
 
586
547
  OPENSSL_EXPORT int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc);
587
548
 
@@ -602,53 +563,71 @@ DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS)
602
563
  DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS)
603
564
 
604
565
  OPENSSL_EXPORT GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out,
605
- const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
606
- int gen_type, char *value, int is_nc);
607
-
608
- OPENSSL_EXPORT GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
609
- CONF_VALUE *cnf);
610
- OPENSSL_EXPORT GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out,
611
- const X509V3_EXT_METHOD *method,
612
- X509V3_CTX *ctx, CONF_VALUE *cnf, int is_nc);
566
+ const X509V3_EXT_METHOD *method,
567
+ X509V3_CTX *ctx, int gen_type,
568
+ char *value, int is_nc);
569
+
570
+ OPENSSL_EXPORT GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method,
571
+ X509V3_CTX *ctx, CONF_VALUE *cnf);
572
+ OPENSSL_EXPORT GENERAL_NAME *v2i_GENERAL_NAME_ex(
573
+ GENERAL_NAME *out, const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
574
+ CONF_VALUE *cnf, int is_nc);
613
575
  OPENSSL_EXPORT void X509V3_conf_free(CONF_VALUE *val);
614
576
 
615
577
  // X509V3_EXT_conf_nid contains the only exposed instance of an LHASH in our
616
578
  // public headers. The |conf| pointer must be NULL but cryptography.io wraps
617
579
  // this function so we cannot, yet, replace the type with a dummy struct.
618
- OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, int ext_nid, char *value);
619
-
620
- OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, char *value);
621
- OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, char *name, char *value);
622
- OPENSSL_EXPORT int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, char *section, STACK_OF(X509_EXTENSION) **sk);
623
- OPENSSL_EXPORT int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509 *cert);
624
- OPENSSL_EXPORT int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509_REQ *req);
625
- OPENSSL_EXPORT int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, X509_CRL *crl);
580
+ OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf,
581
+ X509V3_CTX *ctx, int ext_nid,
582
+ char *value);
583
+
584
+ OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx,
585
+ int ext_nid, char *value);
586
+ OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx,
587
+ char *name, char *value);
588
+ OPENSSL_EXPORT int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx,
589
+ char *section,
590
+ STACK_OF(X509_EXTENSION) **sk);
591
+ OPENSSL_EXPORT int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx,
592
+ char *section, X509 *cert);
593
+ OPENSSL_EXPORT int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx,
594
+ char *section, X509_REQ *req);
595
+ OPENSSL_EXPORT int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx,
596
+ char *section, X509_CRL *crl);
626
597
 
627
598
  OPENSSL_EXPORT int X509V3_add_value_bool_nf(char *name, int asn1_bool,
628
- STACK_OF(CONF_VALUE) **extlist);
599
+ STACK_OF(CONF_VALUE) **extlist);
629
600
  OPENSSL_EXPORT int X509V3_get_value_bool(CONF_VALUE *value, int *asn1_bool);
630
601
  OPENSSL_EXPORT int X509V3_get_value_int(CONF_VALUE *value, ASN1_INTEGER **aint);
631
602
  OPENSSL_EXPORT void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf);
632
603
 
633
- OPENSSL_EXPORT char * X509V3_get_string(X509V3_CTX *ctx, char *name, char *section);
634
- OPENSSL_EXPORT STACK_OF(CONF_VALUE) * X509V3_get_section(X509V3_CTX *ctx, char *section);
604
+ OPENSSL_EXPORT char *X509V3_get_string(X509V3_CTX *ctx, char *name,
605
+ char *section);
606
+ OPENSSL_EXPORT STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx,
607
+ char *section);
635
608
  OPENSSL_EXPORT void X509V3_string_free(X509V3_CTX *ctx, char *str);
636
- OPENSSL_EXPORT void X509V3_section_free( X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section);
609
+ OPENSSL_EXPORT void X509V3_section_free(X509V3_CTX *ctx,
610
+ STACK_OF(CONF_VALUE) *section);
637
611
  OPENSSL_EXPORT void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject,
638
- X509_REQ *req, X509_CRL *crl, int flags);
612
+ X509_REQ *req, X509_CRL *crl, int flags);
639
613
 
640
614
  OPENSSL_EXPORT int X509V3_add_value(const char *name, const char *value,
641
- STACK_OF(CONF_VALUE) **extlist);
642
- OPENSSL_EXPORT int X509V3_add_value_uchar(const char *name, const unsigned char *value,
643
- STACK_OF(CONF_VALUE) **extlist);
615
+ STACK_OF(CONF_VALUE) **extlist);
616
+ OPENSSL_EXPORT int X509V3_add_value_uchar(const char *name,
617
+ const unsigned char *value,
618
+ STACK_OF(CONF_VALUE) **extlist);
644
619
  OPENSSL_EXPORT int X509V3_add_value_bool(const char *name, int asn1_bool,
645
- STACK_OF(CONF_VALUE) **extlist);
620
+ STACK_OF(CONF_VALUE) **extlist);
646
621
  OPENSSL_EXPORT int X509V3_add_value_int(const char *name, ASN1_INTEGER *aint,
647
- STACK_OF(CONF_VALUE) **extlist);
648
- OPENSSL_EXPORT char * i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, ASN1_INTEGER *aint);
649
- OPENSSL_EXPORT ASN1_INTEGER * s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, char *value);
650
- OPENSSL_EXPORT char * i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint);
651
- OPENSSL_EXPORT char * i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint);
622
+ STACK_OF(CONF_VALUE) **extlist);
623
+ OPENSSL_EXPORT char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth,
624
+ ASN1_INTEGER *aint);
625
+ OPENSSL_EXPORT ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth,
626
+ char *value);
627
+ OPENSSL_EXPORT char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth,
628
+ ASN1_ENUMERATED *aint);
629
+ OPENSSL_EXPORT char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth,
630
+ ASN1_ENUMERATED *aint);
652
631
  OPENSSL_EXPORT int X509V3_EXT_add(X509V3_EXT_METHOD *ext);
653
632
  OPENSSL_EXPORT int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist);
654
633
  OPENSSL_EXPORT int X509V3_EXT_add_alias(int nid_to, int nid_from);
@@ -659,19 +638,46 @@ OPENSSL_EXPORT const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid);
659
638
  OPENSSL_EXPORT int X509V3_add_standard_extensions(void);
660
639
  OPENSSL_EXPORT STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line);
661
640
  OPENSSL_EXPORT void *X509V3_EXT_d2i(X509_EXTENSION *ext);
662
- OPENSSL_EXPORT void *X509V3_get_d2i(STACK_OF(X509_EXTENSION) *x, int nid, int *crit, int *idx);
641
+ OPENSSL_EXPORT void *X509V3_get_d2i(STACK_OF(X509_EXTENSION) *x, int nid,
642
+ int *crit, int *idx);
663
643
  OPENSSL_EXPORT int X509V3_EXT_free(int nid, void *ext_data);
664
644
 
665
645
 
666
- OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc);
667
- OPENSSL_EXPORT int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, int crit, unsigned long flags);
668
-
669
- OPENSSL_EXPORT void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent,
670
- int ml);
671
- OPENSSL_EXPORT int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int indent);
672
- OPENSSL_EXPORT int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent);
673
-
674
- OPENSSL_EXPORT int X509V3_extensions_print(BIO *out, const char *title, STACK_OF(X509_EXTENSION) *exts, unsigned long flag, int indent);
646
+ OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit,
647
+ void *ext_struc);
648
+ OPENSSL_EXPORT int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid,
649
+ void *value, int crit, unsigned long flags);
650
+
651
+ #define X509V3_EXT_UNKNOWN_MASK (0xfL << 16)
652
+
653
+ // X509V3_EXT_DEFAULT causes unknown extensions or syntax errors to return
654
+ // failure.
655
+ #define X509V3_EXT_DEFAULT 0
656
+ // X509V3_EXT_ERROR_UNKNOWN causes unknown extensions or syntax errors to print
657
+ // as "<Not Supported>" or "<Parse Error>", respectively.
658
+ #define X509V3_EXT_ERROR_UNKNOWN (1L << 16)
659
+ // X509V3_EXT_PARSE_UNKNOWN is deprecated and behaves like
660
+ // |X509V3_EXT_DUMP_UNKNOWN|.
661
+ #define X509V3_EXT_PARSE_UNKNOWN (2L << 16)
662
+ // X509V3_EXT_DUMP_UNKNOWN causes unknown extensions to be displayed as a
663
+ // hexdump.
664
+ #define X509V3_EXT_DUMP_UNKNOWN (3L << 16)
665
+
666
+ OPENSSL_EXPORT void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val,
667
+ int indent, int ml);
668
+ OPENSSL_EXPORT int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext,
669
+ unsigned long flag, int indent);
670
+ OPENSSL_EXPORT int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag,
671
+ int indent);
672
+
673
+ // X509V3_extensions_print prints |title|, followed by a human-readable
674
+ // representation of |exts| to |out|. It returns one on success and zero on
675
+ // error. The output is indented by |indent| spaces. |flag| is one of the
676
+ // |X509V3_EXT_*| constants and controls printing of unknown extensions and
677
+ // syntax errors.
678
+ OPENSSL_EXPORT int X509V3_extensions_print(BIO *out, const char *title,
679
+ const STACK_OF(X509_EXTENSION) *exts,
680
+ unsigned long flag, int indent);
675
681
 
676
682
  OPENSSL_EXPORT int X509_check_ca(X509 *x);
677
683
  OPENSSL_EXPORT int X509_check_purpose(X509 *x, int id, int ca);
@@ -684,68 +690,112 @@ OPENSSL_EXPORT uint32_t X509_get_extension_flags(X509 *x);
684
690
  OPENSSL_EXPORT uint32_t X509_get_key_usage(X509 *x);
685
691
  OPENSSL_EXPORT uint32_t X509_get_extended_key_usage(X509 *x);
686
692
 
693
+ // X509_get0_subject_key_id returns |x509|'s subject key identifier, if present.
694
+ // (See RFC5280, section 4.2.1.2.) It returns NULL if the extension is not
695
+ // present or if some extension in |x509| was invalid.
696
+ //
697
+ // Note that decoding an |X509| object will not check for invalid extensions. To
698
+ // detect the error case, call |X509_get_extensions_flags| and check the
699
+ // |EXFLAG_INVALID| bit.
700
+ OPENSSL_EXPORT const ASN1_OCTET_STRING *X509_get0_subject_key_id(X509 *x509);
701
+
702
+ // X509_get0_authority_key_id returns keyIdentifier of |x509|'s authority key
703
+ // identifier, if the extension and field are present. (See RFC5280,
704
+ // section 4.2.1.1.) It returns NULL if the extension is not present, if it is
705
+ // present but lacks a keyIdentifier field, or if some extension in |x509| was
706
+ // invalid.
707
+ //
708
+ // Note that decoding an |X509| object will not check for invalid extensions. To
709
+ // detect the error case, call |X509_get_extensions_flags| and check the
710
+ // |EXFLAG_INVALID| bit.
711
+ OPENSSL_EXPORT const ASN1_OCTET_STRING *X509_get0_authority_key_id(X509 *x509);
712
+
713
+ // X509_get0_authority_issuer returns the authorityCertIssuer of |x509|'s
714
+ // authority key identifier, if the extension and field are present. (See
715
+ // RFC5280, section 4.2.1.1.) It returns NULL if the extension is not present,
716
+ // if it is present but lacks a authorityCertIssuer field, or if some extension
717
+ // in |x509| was invalid.
718
+ //
719
+ // Note that decoding an |X509| object will not check for invalid extensions. To
720
+ // detect the error case, call |X509_get_extensions_flags| and check the
721
+ // |EXFLAG_INVALID| bit.
722
+ OPENSSL_EXPORT const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x509);
723
+
724
+ // X509_get0_authority_serial returns the authorityCertSerialNumber of |x509|'s
725
+ // authority key identifier, if the extension and field are present. (See
726
+ // RFC5280, section 4.2.1.1.) It returns NULL if the extension is not present,
727
+ // if it is present but lacks a authorityCertSerialNumber field, or if some
728
+ // extension in |x509| was invalid.
729
+ //
730
+ // Note that decoding an |X509| object will not check for invalid extensions. To
731
+ // detect the error case, call |X509_get_extensions_flags| and check the
732
+ // |EXFLAG_INVALID| bit.
733
+ OPENSSL_EXPORT const ASN1_INTEGER *X509_get0_authority_serial(X509 *x509);
734
+
687
735
  OPENSSL_EXPORT int X509_PURPOSE_get_count(void);
688
- OPENSSL_EXPORT X509_PURPOSE * X509_PURPOSE_get0(int idx);
736
+ OPENSSL_EXPORT X509_PURPOSE *X509_PURPOSE_get0(int idx);
689
737
  OPENSSL_EXPORT int X509_PURPOSE_get_by_sname(char *sname);
690
738
  OPENSSL_EXPORT int X509_PURPOSE_get_by_id(int id);
691
739
  OPENSSL_EXPORT int X509_PURPOSE_add(int id, int trust, int flags,
692
- int (*ck)(const X509_PURPOSE *, const X509 *, int),
693
- char *name, char *sname, void *arg);
694
- OPENSSL_EXPORT char *X509_PURPOSE_get0_name(X509_PURPOSE *xp);
695
- OPENSSL_EXPORT char *X509_PURPOSE_get0_sname(X509_PURPOSE *xp);
696
- OPENSSL_EXPORT int X509_PURPOSE_get_trust(X509_PURPOSE *xp);
740
+ int (*ck)(const X509_PURPOSE *,
741
+ const X509 *, int),
742
+ char *name, char *sname, void *arg);
743
+ OPENSSL_EXPORT char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp);
744
+ OPENSSL_EXPORT char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp);
745
+ OPENSSL_EXPORT int X509_PURPOSE_get_trust(const X509_PURPOSE *xp);
697
746
  OPENSSL_EXPORT void X509_PURPOSE_cleanup(void);
698
- OPENSSL_EXPORT int X509_PURPOSE_get_id(X509_PURPOSE *);
747
+ OPENSSL_EXPORT int X509_PURPOSE_get_id(const X509_PURPOSE *);
699
748
 
700
749
  OPENSSL_EXPORT STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x);
701
750
  OPENSSL_EXPORT STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x);
702
751
  OPENSSL_EXPORT void X509_email_free(STACK_OF(OPENSSL_STRING) *sk);
703
752
  OPENSSL_EXPORT STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x);
704
- /* Flags for X509_check_* functions */
753
+ // Flags for X509_check_* functions
705
754
 
706
- /* Deprecated: this flag does nothing */
707
- #define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0
708
- /* Disable wildcard matching for dnsName fields and common name. */
709
- #define X509_CHECK_FLAG_NO_WILDCARDS 0x2
710
- /* Wildcards must not match a partial label. */
755
+ // Deprecated: this flag does nothing
756
+ #define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0
757
+ // Disable wildcard matching for dnsName fields and common name.
758
+ #define X509_CHECK_FLAG_NO_WILDCARDS 0x2
759
+ // Wildcards must not match a partial label.
711
760
  #define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4
712
- /* Allow (non-partial) wildcards to match multiple labels. */
761
+ // Allow (non-partial) wildcards to match multiple labels.
713
762
  #define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8
714
- /* Constraint verifier subdomain patterns to match a single labels. */
763
+ // Constraint verifier subdomain patterns to match a single labels.
715
764
  #define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10
716
- /* Skip the subject common name fallback if subjectAltNames is missing. */
765
+ // Skip the subject common name fallback if subjectAltNames is missing.
717
766
  #define X509_CHECK_FLAG_NEVER_CHECK_SUBJECT 0x20
718
- /*
719
- * Match reference identifiers starting with "." to any sub-domain.
720
- * This is a non-public flag, turned on implicitly when the subject
721
- * reference identity is a DNS name.
722
- */
767
+ //
768
+ // Match reference identifiers starting with "." to any sub-domain.
769
+ // This is a non-public flag, turned on implicitly when the subject
770
+ // reference identity is a DNS name.
723
771
  #define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000
724
772
 
725
773
  OPENSSL_EXPORT int X509_check_host(X509 *x, const char *chk, size_t chklen,
726
- unsigned int flags, char **peername);
774
+ unsigned int flags, char **peername);
727
775
  OPENSSL_EXPORT int X509_check_email(X509 *x, const char *chk, size_t chklen,
728
- unsigned int flags);
729
- OPENSSL_EXPORT int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen,
730
- unsigned int flags);
731
- OPENSSL_EXPORT int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags);
776
+ unsigned int flags);
777
+ OPENSSL_EXPORT int X509_check_ip(X509 *x, const unsigned char *chk,
778
+ size_t chklen, unsigned int flags);
779
+ OPENSSL_EXPORT int X509_check_ip_asc(X509 *x, const char *ipasc,
780
+ unsigned int flags);
732
781
 
733
782
  OPENSSL_EXPORT ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc);
734
783
  OPENSSL_EXPORT ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc);
735
784
  OPENSSL_EXPORT int a2i_ipadd(unsigned char *ipout, const char *ipasc);
736
- OPENSSL_EXPORT int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE)*dn_sk,
737
- unsigned long chtype);
785
+ OPENSSL_EXPORT int X509V3_NAME_from_section(X509_NAME *nm,
786
+ STACK_OF(CONF_VALUE) *dn_sk,
787
+ unsigned long chtype);
738
788
 
739
- OPENSSL_EXPORT void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent);
789
+ OPENSSL_EXPORT void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node,
790
+ int indent);
740
791
  DEFINE_STACK_OF(X509_POLICY_NODE)
741
792
 
742
- /* BEGIN ERROR CODES */
743
- /* The following lines are auto generated by the script mkerr.pl. Any changes
744
- * made after this point may be overwritten when the script is next run.
745
- */
793
+ // BEGIN ERROR CODES
794
+ // The following lines are auto generated by the script mkerr.pl. Any changes
795
+ // made after this point may be overwritten when the script is next run.
746
796
 
747
797
 
748
- #ifdef __cplusplus
798
+ #ifdef __cplusplus
749
799
  }
750
800
 
751
801
  extern "C++" {
@@ -761,7 +811,7 @@ BORINGSSL_MAKE_DELETER(POLICYINFO, POLICYINFO_free)
761
811
 
762
812
  BSSL_NAMESPACE_END
763
813
 
764
- } /* extern C++ */
814
+ } // extern C++
765
815
  #endif
766
816
 
767
817
  #define X509V3_R_BAD_IP_ADDRESS 100