grpc 1.37.1 → 1.38.0.pre1

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 (544) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +64 -58
  3. data/include/grpc/event_engine/README.md +38 -0
  4. data/include/grpc/event_engine/channel_args.h +28 -0
  5. data/include/grpc/event_engine/event_engine.h +336 -0
  6. data/include/grpc/event_engine/port.h +39 -0
  7. data/include/grpc/event_engine/slice_allocator.h +81 -0
  8. data/include/grpc/grpc.h +2 -2
  9. data/include/grpc/grpc_security_constants.h +14 -0
  10. data/include/grpc/impl/codegen/grpc_types.h +11 -0
  11. data/include/grpc/impl/codegen/port_platform.h +5 -0
  12. data/include/grpc/module.modulemap +14 -14
  13. data/src/core/ext/filters/client_channel/backup_poller.cc +3 -3
  14. data/src/core/ext/filters/client_channel/channel_connectivity.cc +177 -202
  15. data/src/core/ext/filters/client_channel/client_channel.cc +628 -3101
  16. data/src/core/ext/filters/client_channel/client_channel.h +489 -55
  17. data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -1
  18. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +4 -1
  19. data/src/core/ext/filters/client_channel/config_selector.h +1 -1
  20. data/src/core/ext/filters/client_channel/connector.h +1 -1
  21. data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -10
  22. data/src/core/ext/filters/client_channel/dynamic_filters.h +3 -3
  23. data/src/core/ext/filters/client_channel/health/health_check_client.cc +26 -27
  24. data/src/core/ext/filters/client_channel/health/health_check_client.h +27 -26
  25. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +24 -21
  26. data/src/core/ext/filters/client_channel/lb_policy.cc +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy.h +4 -4
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +6 -6
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +46 -43
  30. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +1 -1
  31. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +2 -1
  32. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +5 -5
  33. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +14 -12
  34. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +4 -4
  35. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +1 -1
  36. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +15 -15
  37. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +36 -30
  38. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +23 -23
  39. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +31 -46
  40. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +84 -61
  41. data/src/core/ext/filters/client_channel/lb_policy_factory.h +1 -1
  42. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +4 -4
  43. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
  44. data/src/core/ext/filters/client_channel/resolver.h +2 -2
  45. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +23 -15
  46. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +1 -1
  47. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +3 -3
  48. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
  49. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +14 -14
  50. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +33 -24
  51. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +1 -1
  52. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +1 -1
  53. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +1 -1
  54. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +17 -9
  55. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +20 -28
  56. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +7 -5
  57. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +13 -11
  58. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +1 -1
  59. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +43 -28
  60. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +32 -239
  61. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +20 -49
  62. data/src/core/ext/filters/client_channel/retry_filter.cc +2188 -0
  63. data/src/core/ext/filters/client_channel/retry_filter.h +30 -0
  64. data/src/core/ext/filters/client_channel/retry_service_config.cc +287 -0
  65. data/src/core/ext/filters/client_channel/retry_service_config.h +90 -0
  66. data/src/core/ext/filters/client_channel/server_address.cc +1 -1
  67. data/src/core/ext/filters/client_channel/service_config.cc +15 -14
  68. data/src/core/ext/filters/client_channel/service_config.h +7 -6
  69. data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +5 -4
  70. data/src/core/ext/filters/client_channel/service_config_parser.cc +6 -6
  71. data/src/core/ext/filters/client_channel/service_config_parser.h +7 -4
  72. data/src/core/ext/filters/client_channel/subchannel.cc +17 -16
  73. data/src/core/ext/filters/client_channel/subchannel.h +7 -6
  74. data/src/core/ext/filters/client_idle/client_idle_filter.cc +16 -15
  75. data/src/core/ext/filters/deadline/deadline_filter.cc +10 -10
  76. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +19 -18
  77. data/src/core/ext/filters/fault_injection/service_config_parser.cc +5 -5
  78. data/src/core/ext/filters/fault_injection/service_config_parser.h +1 -1
  79. data/src/core/ext/filters/http/client/http_client_filter.cc +28 -21
  80. data/src/core/ext/filters/http/client_authority_filter.cc +3 -3
  81. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +23 -22
  82. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +21 -21
  83. data/src/core/ext/filters/http/server/http_server_filter.cc +27 -23
  84. data/src/core/ext/filters/max_age/max_age_filter.cc +12 -10
  85. data/src/core/ext/filters/message_size/message_size_filter.cc +14 -11
  86. data/src/core/ext/filters/message_size/message_size_filter.h +1 -1
  87. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -3
  88. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +7 -7
  89. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
  90. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +2 -2
  91. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +1 -1
  92. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -3
  93. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +44 -45
  94. data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
  95. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -4
  96. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +2 -2
  97. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +3 -4
  98. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +129 -116
  99. data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -5
  100. data/src/core/ext/transport/chttp2/transport/context_list.h +4 -4
  101. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  102. data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -8
  103. data/src/core/ext/transport/chttp2/transport/frame_data.cc +8 -8
  104. data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -10
  105. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +7 -8
  106. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +6 -6
  107. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +7 -8
  108. data/src/core/ext/transport/chttp2/transport/frame_ping.h +7 -6
  109. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +7 -7
  110. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +6 -6
  111. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +6 -5
  112. data/src/core/ext/transport/chttp2/transport/frame_settings.h +6 -6
  113. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +4 -6
  114. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +4 -6
  115. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +237 -208
  116. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -10
  117. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +4 -3
  118. data/src/core/ext/transport/chttp2/transport/hpack_table.h +4 -4
  119. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  120. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +2 -2
  121. data/src/core/ext/transport/chttp2/transport/internal.h +31 -27
  122. data/src/core/ext/transport/chttp2/transport/parsing.cc +63 -56
  123. data/src/core/ext/transport/chttp2/transport/writing.cc +7 -3
  124. data/src/core/ext/transport/inproc/inproc_transport.cc +30 -29
  125. data/src/core/ext/xds/certificate_provider_factory.h +1 -1
  126. data/src/core/ext/xds/certificate_provider_store.h +3 -3
  127. data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +3 -3
  128. data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +2 -2
  129. data/src/core/ext/xds/xds_api.cc +101 -93
  130. data/src/core/ext/xds/xds_api.h +6 -6
  131. data/src/core/ext/xds/xds_bootstrap.cc +97 -159
  132. data/src/core/ext/xds/xds_bootstrap.h +19 -24
  133. data/src/core/ext/xds/xds_certificate_provider.cc +4 -4
  134. data/src/core/ext/xds/xds_certificate_provider.h +4 -4
  135. data/src/core/ext/xds/xds_channel_args.h +5 -2
  136. data/src/core/ext/xds/xds_client.cc +310 -178
  137. data/src/core/ext/xds/xds_client.h +41 -27
  138. data/src/core/ext/xds/xds_client_stats.h +3 -2
  139. data/src/core/ext/xds/xds_server_config_fetcher.cc +34 -20
  140. data/src/core/lib/{iomgr → address_utils}/parse_address.cc +17 -17
  141. data/src/core/lib/{iomgr → address_utils}/parse_address.h +7 -7
  142. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +3 -20
  143. data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +6 -11
  144. data/src/core/lib/channel/channel_stack.cc +10 -9
  145. data/src/core/lib/channel/channel_stack.h +10 -9
  146. data/src/core/lib/channel/channel_stack_builder.cc +2 -2
  147. data/src/core/lib/channel/channel_stack_builder.h +1 -1
  148. data/src/core/lib/channel/channelz.cc +21 -13
  149. data/src/core/lib/channel/connected_channel.cc +4 -4
  150. data/src/core/lib/channel/handshaker.cc +7 -6
  151. data/src/core/lib/channel/handshaker.h +5 -5
  152. data/src/core/lib/event_engine/slice_allocator.cc +59 -0
  153. data/src/core/lib/event_engine/sockaddr.cc +38 -0
  154. data/src/core/lib/gprpp/ref_counted.h +28 -14
  155. data/src/core/lib/gprpp/status_helper.cc +407 -0
  156. data/src/core/lib/gprpp/status_helper.h +180 -0
  157. data/src/core/lib/http/httpcli.cc +11 -11
  158. data/src/core/lib/http/httpcli_security_connector.cc +11 -7
  159. data/src/core/lib/http/parser.cc +16 -16
  160. data/src/core/lib/http/parser.h +4 -4
  161. data/src/core/lib/iomgr/buffer_list.cc +7 -9
  162. data/src/core/lib/iomgr/buffer_list.h +4 -5
  163. data/src/core/lib/iomgr/call_combiner.cc +15 -12
  164. data/src/core/lib/iomgr/call_combiner.h +12 -14
  165. data/src/core/lib/iomgr/cfstream_handle.cc +3 -3
  166. data/src/core/lib/iomgr/cfstream_handle.h +1 -1
  167. data/src/core/lib/iomgr/closure.h +7 -6
  168. data/src/core/lib/iomgr/combiner.cc +14 -12
  169. data/src/core/lib/iomgr/combiner.h +2 -2
  170. data/src/core/lib/iomgr/endpoint.cc +1 -1
  171. data/src/core/lib/iomgr/endpoint.h +2 -2
  172. data/src/core/lib/iomgr/endpoint_cfstream.cc +11 -13
  173. data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
  174. data/src/core/lib/iomgr/error.cc +167 -61
  175. data/src/core/lib/iomgr/error.h +217 -106
  176. data/src/core/lib/iomgr/error_cfstream.cc +3 -2
  177. data/src/core/lib/iomgr/error_cfstream.h +2 -2
  178. data/src/core/lib/iomgr/error_internal.h +5 -1
  179. data/src/core/lib/iomgr/ev_apple.cc +5 -5
  180. data/src/core/lib/iomgr/ev_epoll1_linux.cc +19 -19
  181. data/src/core/lib/iomgr/ev_epollex_linux.cc +48 -45
  182. data/src/core/lib/iomgr/ev_poll_posix.cc +26 -23
  183. data/src/core/lib/iomgr/ev_posix.cc +9 -8
  184. data/src/core/lib/iomgr/ev_posix.h +9 -9
  185. data/src/core/lib/iomgr/exec_ctx.cc +4 -4
  186. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  187. data/src/core/lib/iomgr/executor.cc +8 -8
  188. data/src/core/lib/iomgr/executor.h +2 -2
  189. data/src/core/lib/iomgr/iomgr.cc +1 -1
  190. data/src/core/lib/iomgr/iomgr.h +1 -1
  191. data/src/core/lib/iomgr/iomgr_custom.cc +1 -1
  192. data/src/core/lib/iomgr/iomgr_internal.cc +2 -2
  193. data/src/core/lib/iomgr/iomgr_internal.h +3 -3
  194. data/src/core/lib/iomgr/iomgr_posix.cc +1 -1
  195. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +2 -2
  196. data/src/core/lib/iomgr/iomgr_windows.cc +1 -1
  197. data/src/core/lib/iomgr/load_file.cc +4 -4
  198. data/src/core/lib/iomgr/load_file.h +2 -2
  199. data/src/core/lib/iomgr/lockfree_event.cc +5 -5
  200. data/src/core/lib/iomgr/lockfree_event.h +1 -1
  201. data/src/core/lib/iomgr/pollset.cc +5 -5
  202. data/src/core/lib/iomgr/pollset.h +9 -9
  203. data/src/core/lib/iomgr/pollset_custom.cc +5 -5
  204. data/src/core/lib/iomgr/pollset_windows.cc +5 -5
  205. data/src/core/lib/iomgr/port.h +1 -1
  206. data/src/core/lib/iomgr/python_util.h +1 -1
  207. data/src/core/lib/iomgr/resolve_address.cc +3 -3
  208. data/src/core/lib/iomgr/resolve_address.h +6 -6
  209. data/src/core/lib/iomgr/resolve_address_custom.cc +10 -9
  210. data/src/core/lib/iomgr/resolve_address_custom.h +3 -3
  211. data/src/core/lib/iomgr/resolve_address_posix.cc +3 -3
  212. data/src/core/lib/iomgr/resolve_address_windows.cc +4 -4
  213. data/src/core/lib/iomgr/resource_quota.cc +11 -10
  214. data/src/core/lib/iomgr/socket_utils_common_posix.cc +22 -20
  215. data/src/core/lib/iomgr/socket_utils_posix.h +20 -20
  216. data/src/core/lib/iomgr/tcp_client_cfstream.cc +4 -4
  217. data/src/core/lib/iomgr/tcp_client_custom.cc +5 -6
  218. data/src/core/lib/iomgr/tcp_client_posix.cc +15 -17
  219. data/src/core/lib/iomgr/tcp_client_posix.h +3 -4
  220. data/src/core/lib/iomgr/tcp_client_windows.cc +5 -5
  221. data/src/core/lib/iomgr/tcp_custom.cc +14 -16
  222. data/src/core/lib/iomgr/tcp_custom.h +13 -12
  223. data/src/core/lib/iomgr/tcp_posix.cc +36 -34
  224. data/src/core/lib/iomgr/tcp_server.cc +6 -6
  225. data/src/core/lib/iomgr/tcp_server.h +12 -11
  226. data/src/core/lib/iomgr/tcp_server_custom.cc +23 -21
  227. data/src/core/lib/iomgr/tcp_server_posix.cc +22 -21
  228. data/src/core/lib/iomgr/tcp_server_utils_posix.h +13 -12
  229. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +19 -17
  230. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +9 -9
  231. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
  232. data/src/core/lib/iomgr/tcp_server_windows.cc +26 -25
  233. data/src/core/lib/iomgr/tcp_uv.cc +25 -23
  234. data/src/core/lib/iomgr/tcp_windows.cc +13 -13
  235. data/src/core/lib/iomgr/tcp_windows.h +2 -2
  236. data/src/core/lib/iomgr/timer_custom.cc +2 -1
  237. data/src/core/lib/iomgr/timer_custom.h +1 -1
  238. data/src/core/lib/iomgr/timer_generic.cc +6 -6
  239. data/src/core/lib/iomgr/udp_server.cc +21 -20
  240. data/src/core/lib/iomgr/unix_sockets_posix.cc +3 -3
  241. data/src/core/lib/iomgr/unix_sockets_posix.h +2 -2
  242. data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +10 -7
  243. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
  244. data/src/core/lib/iomgr/wakeup_fd_pipe.cc +4 -4
  245. data/src/core/lib/iomgr/wakeup_fd_posix.cc +3 -3
  246. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
  247. data/src/core/lib/iomgr/work_serializer.h +17 -1
  248. data/src/core/lib/json/json.h +1 -1
  249. data/src/core/lib/json/json_reader.cc +4 -4
  250. data/src/core/lib/matchers/matchers.cc +39 -39
  251. data/src/core/lib/matchers/matchers.h +28 -28
  252. data/src/core/lib/security/credentials/composite/composite_credentials.cc +4 -4
  253. data/src/core/lib/security/credentials/composite/composite_credentials.h +2 -2
  254. data/src/core/lib/security/credentials/credentials.h +2 -2
  255. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +17 -13
  256. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +13 -11
  257. data/src/core/lib/security/credentials/external/aws_request_signer.cc +2 -1
  258. data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
  259. data/src/core/lib/security/credentials/external/external_account_credentials.cc +15 -12
  260. data/src/core/lib/security/credentials/external/external_account_credentials.h +9 -8
  261. data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -4
  262. data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
  263. data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +8 -8
  264. data/src/core/lib/security/credentials/external/url_external_account_credentials.h +9 -7
  265. data/src/core/lib/security/credentials/fake/fake_credentials.cc +2 -2
  266. data/src/core/lib/security/credentials/fake/fake_credentials.h +2 -2
  267. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +9 -9
  268. data/src/core/lib/security/credentials/iam/iam_credentials.cc +2 -2
  269. data/src/core/lib/security/credentials/iam/iam_credentials.h +2 -2
  270. data/src/core/lib/security/credentials/jwt/json_token.cc +2 -2
  271. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +3 -3
  272. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +2 -2
  273. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +7 -5
  274. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +21 -19
  275. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +5 -5
  276. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +5 -5
  277. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -2
  278. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +8 -7
  279. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +9 -9
  280. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +19 -13
  281. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +4 -0
  282. data/src/core/lib/security/credentials/xds/xds_credentials.cc +3 -3
  283. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +13 -3
  284. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +13 -3
  285. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +2 -2
  286. data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +12 -2
  287. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +1 -1
  288. data/src/core/lib/security/security_connector/local/local_security_connector.cc +14 -4
  289. data/src/core/lib/security/security_connector/security_connector.h +9 -4
  290. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +16 -6
  291. data/src/core/lib/security/security_connector/ssl_utils.cc +22 -4
  292. data/src/core/lib/security/security_connector/ssl_utils.h +4 -4
  293. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +56 -60
  294. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +66 -48
  295. data/src/core/lib/security/transport/client_auth_filter.cc +18 -10
  296. data/src/core/lib/security/transport/secure_endpoint.cc +4 -4
  297. data/src/core/lib/security/transport/security_handshaker.cc +33 -32
  298. data/src/core/lib/security/transport/server_auth_filter.cc +19 -13
  299. data/src/core/lib/security/transport/tsi_error.cc +2 -1
  300. data/src/core/lib/security/transport/tsi_error.h +2 -1
  301. data/src/core/lib/security/util/json_util.cc +2 -2
  302. data/src/core/lib/security/util/json_util.h +1 -1
  303. data/src/core/lib/surface/call.cc +46 -45
  304. data/src/core/lib/surface/call.h +2 -2
  305. data/src/core/lib/surface/channel.cc +6 -6
  306. data/src/core/lib/surface/channel.h +3 -2
  307. data/src/core/lib/surface/channel_ping.cc +1 -1
  308. data/src/core/lib/surface/completion_queue.cc +46 -47
  309. data/src/core/lib/surface/completion_queue.h +2 -1
  310. data/src/core/lib/surface/lame_client.cc +11 -11
  311. data/src/core/lib/surface/lame_client.h +1 -1
  312. data/src/core/lib/surface/server.cc +28 -22
  313. data/src/core/lib/surface/server.h +16 -15
  314. data/src/core/lib/surface/validate_metadata.cc +7 -7
  315. data/src/core/lib/surface/validate_metadata.h +3 -2
  316. data/src/core/lib/surface/version.cc +4 -2
  317. data/src/core/lib/transport/byte_stream.cc +5 -5
  318. data/src/core/lib/transport/byte_stream.h +8 -8
  319. data/src/core/lib/transport/connectivity_state.cc +1 -1
  320. data/src/core/lib/transport/error_utils.cc +19 -8
  321. data/src/core/lib/transport/error_utils.h +11 -5
  322. data/src/core/lib/transport/metadata_batch.cc +37 -37
  323. data/src/core/lib/transport/metadata_batch.h +19 -18
  324. data/src/core/lib/transport/transport.cc +4 -3
  325. data/src/core/lib/transport/transport.h +4 -4
  326. data/src/core/lib/transport/transport_op_string.cc +5 -5
  327. data/src/core/tsi/alts/crypt/gsec.h +4 -0
  328. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +5 -4
  329. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +7 -6
  330. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
  331. data/src/core/tsi/ssl_transport_security.cc +32 -14
  332. data/src/core/tsi/ssl_transport_security.h +3 -4
  333. data/src/ruby/bin/math_services_pb.rb +1 -1
  334. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +1 -1
  335. data/src/ruby/lib/grpc/version.rb +1 -1
  336. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
  337. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
  338. data/third_party/abseil-cpp/absl/algorithm/container.h +3 -3
  339. data/third_party/abseil-cpp/absl/base/attributes.h +24 -4
  340. data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
  341. data/third_party/abseil-cpp/absl/base/config.h +37 -9
  342. data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +24 -10
  343. data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
  344. data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
  345. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
  346. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
  347. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
  348. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
  349. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +14 -5
  350. data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
  351. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
  352. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
  353. data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +11 -11
  354. data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
  355. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -1
  356. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +5 -2
  357. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +43 -42
  358. data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
  359. data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
  360. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +1 -3
  361. data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
  362. data/third_party/abseil-cpp/absl/base/macros.h +11 -0
  363. data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
  364. data/third_party/abseil-cpp/absl/base/options.h +1 -1
  365. data/third_party/abseil-cpp/absl/base/port.h +0 -1
  366. data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
  367. data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -2
  368. data/third_party/abseil-cpp/absl/container/inlined_vector.h +5 -3
  369. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
  370. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +5 -1
  371. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +2 -1
  372. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
  373. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +141 -66
  374. data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
  375. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +14 -1
  376. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +136 -136
  377. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +16 -12
  378. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
  379. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +3 -12
  380. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
  381. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +3 -5
  382. data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
  383. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +2 -2
  384. data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
  385. data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
  386. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +25 -10
  387. data/third_party/abseil-cpp/absl/hash/internal/hash.h +86 -37
  388. data/third_party/abseil-cpp/absl/hash/internal/wyhash.cc +111 -0
  389. data/third_party/abseil-cpp/absl/hash/internal/wyhash.h +48 -0
  390. data/third_party/abseil-cpp/absl/meta/type_traits.h +16 -2
  391. data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
  392. data/third_party/abseil-cpp/absl/numeric/int128.cc +3 -3
  393. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
  394. data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
  395. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
  396. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
  397. data/third_party/abseil-cpp/absl/status/status.cc +29 -22
  398. data/third_party/abseil-cpp/absl/status/status.h +81 -20
  399. data/third_party/abseil-cpp/absl/status/statusor.h +3 -3
  400. data/third_party/abseil-cpp/absl/strings/charconv.cc +5 -5
  401. data/third_party/abseil-cpp/absl/strings/cord.cc +326 -371
  402. data/third_party/abseil-cpp/absl/strings/cord.h +182 -64
  403. data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
  404. data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +6 -6
  405. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +83 -0
  406. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +387 -17
  407. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
  408. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +897 -0
  409. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +589 -0
  410. data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +114 -0
  411. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
  412. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -0
  413. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +15 -1
  414. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +19 -4
  415. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
  416. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
  417. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
  418. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +14 -0
  419. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +14 -0
  420. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +15 -40
  421. data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
  422. data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
  423. data/third_party/abseil-cpp/absl/strings/match.h +16 -6
  424. data/third_party/abseil-cpp/absl/strings/numbers.cc +132 -4
  425. data/third_party/abseil-cpp/absl/strings/numbers.h +10 -10
  426. data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
  427. data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
  428. data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
  429. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
  430. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
  431. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
  432. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +1 -65
  433. data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
  434. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
  435. data/third_party/abseil-cpp/absl/synchronization/mutex.h +79 -62
  436. data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
  437. data/third_party/abseil-cpp/absl/time/clock.h +2 -2
  438. data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
  439. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
  440. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
  441. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +4 -4
  442. data/third_party/abseil-cpp/absl/time/time.cc +4 -3
  443. data/third_party/abseil-cpp/absl/time/time.h +26 -24
  444. data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
  445. data/third_party/abseil-cpp/absl/types/variant.h +9 -4
  446. data/third_party/boringssl-with-bazel/err_data.c +477 -461
  447. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +1 -1
  448. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +1 -1
  449. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +18 -8
  450. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +1 -2
  451. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_locl.h +5 -0
  452. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +1 -1
  453. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +1 -1
  454. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
  455. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
  456. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
  457. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
  458. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
  459. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +1 -1
  460. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +11 -3
  461. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +25 -2
  462. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
  463. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +4 -43
  464. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
  465. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
  466. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
  467. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +104 -93
  468. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
  469. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +43 -46
  470. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +43 -46
  471. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
  472. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
  473. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
  474. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
  475. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
  476. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
  477. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +26 -7
  478. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
  479. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +14 -9
  480. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +45 -48
  481. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +38 -43
  482. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +37 -45
  483. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +103 -42
  484. data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +58 -37
  485. data/third_party/boringssl-with-bazel/src/crypto/internal.h +65 -0
  486. data/third_party/boringssl-with-bazel/src/crypto/mem.c +14 -0
  487. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +3 -3
  488. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +1 -1
  489. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +95 -48
  490. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
  491. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
  492. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +19 -0
  493. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
  494. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +19 -25
  495. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
  496. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +39 -89
  497. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
  498. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1 -1
  499. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -17
  500. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
  501. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +5 -0
  502. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
  503. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
  504. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +2 -4
  505. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +1 -1
  506. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
  507. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +0 -3
  508. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +120 -41
  509. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +9 -0
  510. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +0 -8
  511. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
  512. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
  513. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +19 -0
  514. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
  515. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -38
  516. data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
  517. data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +24 -5
  518. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +2 -0
  519. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +9 -1
  520. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
  521. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +185 -17
  522. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +1 -0
  523. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +416 -121
  524. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +2 -0
  525. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +5 -0
  526. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +444 -0
  527. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +244 -1
  528. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +43 -12
  529. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +149 -8
  530. data/third_party/boringssl-with-bazel/src/ssl/internal.h +220 -46
  531. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +7 -1
  532. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
  533. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +23 -26
  534. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +74 -15
  535. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +98 -64
  536. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +34 -4
  537. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +205 -100
  538. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
  539. metadata +68 -45
  540. data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
  541. data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
  542. data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
  543. data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
  544. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
@@ -54,63 +54,46 @@
54
54
  * copied and put under another distribution licence
55
55
  * [including the GNU Public Licence.] */
56
56
 
57
- #include <openssl/asn1.h>
58
- #include <openssl/bn.h>
59
- #include <openssl/digest.h>
60
- #include <openssl/err.h>
61
- #include <openssl/evp.h>
62
- #include <openssl/obj.h>
63
- #include <openssl/x509.h>
57
+ #ifndef OPENSSL_HEADER_EVP_ERRORS_H
58
+ #define OPENSSL_HEADER_EVP_ERRORS_H
64
59
 
65
- X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey)
66
- {
67
- X509 *ret = NULL;
68
- X509_CINF *xi = NULL;
69
- X509_NAME *xn;
70
- EVP_PKEY *pubkey = NULL;
71
- int res;
60
+ #define EVP_R_BUFFER_TOO_SMALL 100
61
+ #define EVP_R_COMMAND_NOT_SUPPORTED 101
62
+ #define EVP_R_DECODE_ERROR 102
63
+ #define EVP_R_DIFFERENT_KEY_TYPES 103
64
+ #define EVP_R_DIFFERENT_PARAMETERS 104
65
+ #define EVP_R_ENCODE_ERROR 105
66
+ #define EVP_R_EXPECTING_AN_EC_KEY_KEY 106
67
+ #define EVP_R_EXPECTING_AN_RSA_KEY 107
68
+ #define EVP_R_EXPECTING_A_DSA_KEY 108
69
+ #define EVP_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 109
70
+ #define EVP_R_INVALID_DIGEST_LENGTH 110
71
+ #define EVP_R_INVALID_DIGEST_TYPE 111
72
+ #define EVP_R_INVALID_KEYBITS 112
73
+ #define EVP_R_INVALID_MGF1_MD 113
74
+ #define EVP_R_INVALID_OPERATION 114
75
+ #define EVP_R_INVALID_PADDING_MODE 115
76
+ #define EVP_R_INVALID_PSS_SALTLEN 116
77
+ #define EVP_R_KEYS_NOT_SET 117
78
+ #define EVP_R_MISSING_PARAMETERS 118
79
+ #define EVP_R_NO_DEFAULT_DIGEST 119
80
+ #define EVP_R_NO_KEY_SET 120
81
+ #define EVP_R_NO_MDC2_SUPPORT 121
82
+ #define EVP_R_NO_NID_FOR_CURVE 122
83
+ #define EVP_R_NO_OPERATION_SET 123
84
+ #define EVP_R_NO_PARAMETERS_SET 124
85
+ #define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 125
86
+ #define EVP_R_OPERATON_NOT_INITIALIZED 126
87
+ #define EVP_R_UNKNOWN_PUBLIC_KEY_TYPE 127
88
+ #define EVP_R_UNSUPPORTED_ALGORITHM 128
89
+ #define EVP_R_UNSUPPORTED_PUBLIC_KEY_TYPE 129
90
+ #define EVP_R_NOT_A_PRIVATE_KEY 130
91
+ #define EVP_R_INVALID_SIGNATURE 131
92
+ #define EVP_R_MEMORY_LIMIT_EXCEEDED 132
93
+ #define EVP_R_INVALID_PARAMETERS 133
94
+ #define EVP_R_INVALID_PEER_KEY 134
95
+ #define EVP_R_NOT_XOF_OR_INVALID_LENGTH 135
96
+ #define EVP_R_EMPTY_PSK 136
97
+ #define EVP_R_INVALID_BUFFER_SIZE 137
72
98
 
73
- if ((ret = X509_new()) == NULL) {
74
- OPENSSL_PUT_ERROR(X509, ERR_R_MALLOC_FAILURE);
75
- return NULL;
76
- }
77
-
78
- /* duplicate the request */
79
- xi = ret->cert_info;
80
-
81
- if (sk_X509_ATTRIBUTE_num(r->req_info->attributes) != 0) {
82
- if ((xi->version = ASN1_INTEGER_new()) == NULL)
83
- goto err;
84
- if (!ASN1_INTEGER_set(xi->version, 2))
85
- goto err;
86
- /*
87
- * xi->extensions=ri->attributes; <- bad, should not ever be done
88
- * ri->attributes=NULL;
89
- */
90
- }
91
-
92
- xn = X509_REQ_get_subject_name(r);
93
- if (X509_set_subject_name(ret, xn) == 0)
94
- goto err;
95
- if (X509_set_issuer_name(ret, xn) == 0)
96
- goto err;
97
-
98
- if (X509_gmtime_adj(xi->validity->notBefore, 0) == NULL)
99
- goto err;
100
- if (X509_gmtime_adj(xi->validity->notAfter, (long)60 * 60 * 24 * days) ==
101
- NULL)
102
- goto err;
103
-
104
- pubkey = X509_REQ_get_pubkey(r);
105
- res = X509_set_pubkey(ret, pubkey);
106
- EVP_PKEY_free(pubkey);
107
-
108
- if (!res || !X509_sign(ret, pkey, EVP_md5()))
109
- goto err;
110
- if (0) {
111
- err:
112
- X509_free(ret);
113
- ret = NULL;
114
- }
115
- return (ret);
116
- }
99
+ #endif // OPENSSL_HEADER_EVP_ERRORS_H
@@ -91,10 +91,16 @@ OPENSSL_EXPORT ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *obj);
91
91
  // less than, equal to or greater than |b|, respectively.
92
92
  OPENSSL_EXPORT int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b);
93
93
 
94
- // OBJ_get0_data returns a pointer to the DER representation of |obj|.
94
+ // OBJ_get0_data returns a pointer to the DER representation of |obj|. This is
95
+ // the contents of the DER-encoded identifier, not including the tag and length.
96
+ // If |obj| does not have an associated object identifier (i.e. it is a nid-only
97
+ // value), this value is the empty string.
95
98
  OPENSSL_EXPORT const uint8_t *OBJ_get0_data(const ASN1_OBJECT *obj);
96
99
 
97
- // OBJ_length returns the length of the DER representation of |obj|.
100
+ // OBJ_length returns the length of the DER representation of |obj|. This is the
101
+ // contents of the DER-encoded identifier, not including the tag and length. If
102
+ // |obj| does not have an associated object identifier (i.e. it is a nid-only
103
+ // value), this value is the empty string.
98
104
  OPENSSL_EXPORT size_t OBJ_length(const ASN1_OBJECT *obj);
99
105
 
100
106
 
@@ -124,9 +130,22 @@ OPENSSL_EXPORT int OBJ_txt2nid(const char *s);
124
130
 
125
131
  // Getting information about nids.
126
132
 
127
- // OBJ_nid2obj returns the ASN1_OBJECT corresponding to |nid|, or NULL if |nid|
128
- // is unknown.
129
- OPENSSL_EXPORT const ASN1_OBJECT *OBJ_nid2obj(int nid);
133
+ // OBJ_nid2obj returns the |ASN1_OBJECT| corresponding to |nid|, or NULL if
134
+ // |nid| is unknown.
135
+ //
136
+ // This function returns a static, immutable |ASN1_OBJECT|. Although the output
137
+ // is not const, callers may not mutate it. It is also not necessary to release
138
+ // the object with |ASN1_OBJECT_free|.
139
+ //
140
+ // However, functions like |X509_ALGOR_set0| expect to take ownership of a
141
+ // possibly dynamically-allocated |ASN1_OBJECT|. |ASN1_OBJECT_free| is a no-op
142
+ // for static |ASN1_OBJECT|s, so |OBJ_nid2obj| is compatible with such
143
+ // functions.
144
+ //
145
+ // Callers are encouraged to store the result of this function in a const
146
+ // pointer. However, if using functions like |X509_ALGOR_set0|, callers may use
147
+ // a non-const pointer and manage ownership.
148
+ OPENSSL_EXPORT ASN1_OBJECT *OBJ_nid2obj(int nid);
130
149
 
131
150
  // OBJ_nid2sn returns the short name for |nid|, or NULL if |nid| is unknown.
132
151
  OPENSSL_EXPORT const char *OBJ_nid2sn(int nid);
@@ -101,6 +101,7 @@ typedef struct {
101
101
  typedef void PKCS7_ENVELOPE;
102
102
  typedef void PKCS7_DIGEST;
103
103
  typedef void PKCS7_ENCRYPT;
104
+ typedef void PKCS7_SIGNER_INFO;
104
105
 
105
106
  typedef struct {
106
107
  uint8_t *ber_bytes;
@@ -183,6 +184,7 @@ OPENSSL_EXPORT int PKCS7_type_is_signedAndEnveloped(const PKCS7 *p7);
183
184
  #define PKCS7_NOATTR 0x100
184
185
  #define PKCS7_NOSMIMECAP 0x200
185
186
  #define PKCS7_STREAM 0x1000
187
+ #define PKCS7_PARTIAL 0x4000
186
188
 
187
189
  // PKCS7_sign assembles |certs| into a PKCS#7 signed data ContentInfo with
188
190
  // external data and no signatures. It returns a newly-allocated |PKCS7| on
@@ -175,7 +175,9 @@ OPENSSL_EXPORT int i2d_PKCS12_fp(FILE *fp, const PKCS12 *p12);
175
175
  //
176
176
  // Note if |p12| does not contain a private key, both |*out_pkey| and
177
177
  // |*out_cert| will be set to NULL and all certificates will be returned via
178
- // |*out_ca_certs|.
178
+ // |*out_ca_certs|. Also note this function differs from OpenSSL in that extra
179
+ // certificates are returned in the order they appear in the file. OpenSSL 1.1.1
180
+ // returns them in reverse order, but this will be fixed in OpenSSL 3.0.
179
181
  //
180
182
  // It returns one on success and zero on error.
181
183
  //
@@ -206,6 +208,12 @@ OPENSSL_EXPORT int PKCS12_verify_mac(const PKCS12 *p12, const char *password,
206
208
  // Each of |key_nid|, |cert_nid|, |iterations|, and |mac_iterations| may be zero
207
209
  // to use defaults, which are |NID_pbe_WithSHA1And3_Key_TripleDES_CBC|,
208
210
  // |NID_pbe_WithSHA1And40BitRC2_CBC|, 2048, and one, respectively.
211
+ //
212
+ // |key_nid| or |cert_nid| may also be -1 to disable encryption of the key or
213
+ // certificate, respectively. This option is not recommended and is only
214
+ // implemented for compatibility with external packages. Note the output still
215
+ // requires a password for the MAC. Unencrypted keys in PKCS#12 are also not
216
+ // widely supported and may not open in other implementations.
209
217
  OPENSSL_EXPORT PKCS12 *PKCS12_create(const char *password, const char *name,
210
218
  const EVP_PKEY *pkey, X509 *cert,
211
219
  const STACK_OF(X509) *chain, int key_nid,
@@ -103,8 +103,8 @@ OPENSSL_EXPORT RAND_METHOD *RAND_OpenSSL(void);
103
103
  // RAND_get_rand_method returns |RAND_SSLeay()|.
104
104
  OPENSSL_EXPORT const RAND_METHOD *RAND_get_rand_method(void);
105
105
 
106
- // RAND_set_rand_method does nothing.
107
- OPENSSL_EXPORT void RAND_set_rand_method(const RAND_METHOD *);
106
+ // RAND_set_rand_method returns one.
107
+ OPENSSL_EXPORT int RAND_set_rand_method(const RAND_METHOD *);
108
108
 
109
109
 
110
110
  #if defined(__cplusplus)
@@ -567,6 +567,11 @@ OPENSSL_EXPORT int SSL_get_error(const SSL *ssl, int ret_code);
567
567
  // See also |ssl_renegotiate_explicit|.
568
568
  #define SSL_ERROR_WANT_RENEGOTIATE 19
569
569
 
570
+ // SSL_ERROR_HANDSHAKE_HINTS_READY indicates the handshake has progressed enough
571
+ // for |SSL_serialize_handshake_hints| to be called. See also
572
+ // |SSL_request_handshake_hints|.
573
+ #define SSL_ERROR_HANDSHAKE_HINTS_READY 20
574
+
570
575
  // SSL_error_description returns a string representation of |err|, where |err|
571
576
  // is one of the |SSL_ERROR_*| constants returned by |SSL_get_error|, or NULL
572
577
  // if the value is unrecognized.
@@ -2723,8 +2728,9 @@ OPENSSL_EXPORT SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx);
2723
2728
 
2724
2729
  // SSL_CTX_set_alpn_protos sets the client ALPN protocol list on |ctx| to
2725
2730
  // |protos|. |protos| must be in wire-format (i.e. a series of non-empty, 8-bit
2726
- // length-prefixed strings). It returns zero on success and one on failure.
2727
- // Configuring this list enables ALPN on a client.
2731
+ // length-prefixed strings), or the empty string to disable ALPN. It returns
2732
+ // zero on success and one on failure. Configuring a non-empty string enables
2733
+ // ALPN on a client.
2728
2734
  //
2729
2735
  // WARNING: this function is dangerous because it breaks the usual return value
2730
2736
  // convention.
@@ -2733,8 +2739,9 @@ OPENSSL_EXPORT int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const uint8_t *protos,
2733
2739
 
2734
2740
  // SSL_set_alpn_protos sets the client ALPN protocol list on |ssl| to |protos|.
2735
2741
  // |protos| must be in wire-format (i.e. a series of non-empty, 8-bit
2736
- // length-prefixed strings). It returns zero on success and one on failure.
2737
- // Configuring this list enables ALPN on a client.
2742
+ // length-prefixed strings), or the empty string to disable ALPN. It returns
2743
+ // zero on success and one on failure. Configuring a non-empty string enables
2744
+ // ALPN on a client.
2738
2745
  //
2739
2746
  // WARNING: this function is dangerous because it breaks the usual return value
2740
2747
  // convention.
@@ -3575,7 +3582,7 @@ OPENSSL_EXPORT const char *SSL_early_data_reason_string(
3575
3582
  enum ssl_early_data_reason_t reason);
3576
3583
 
3577
3584
 
3578
- // Encrypted Client Hello.
3585
+ // Encrypted ClientHello.
3579
3586
  //
3580
3587
  // ECH is a mechanism for encrypting the entire ClientHello message in TLS 1.3.
3581
3588
  // This can prevent observers from seeing cleartext information about the
@@ -3589,6 +3596,72 @@ OPENSSL_EXPORT const char *SSL_early_data_reason_string(
3589
3596
  // as part of this connection.
3590
3597
  OPENSSL_EXPORT void SSL_set_enable_ech_grease(SSL *ssl, int enable);
3591
3598
 
3599
+ // SSL_ECH_SERVER_CONFIG_LIST_new returns a newly-allocated
3600
+ // |SSL_ECH_SERVER_CONFIG_LIST| or NULL on error.
3601
+ OPENSSL_EXPORT SSL_ECH_SERVER_CONFIG_LIST *SSL_ECH_SERVER_CONFIG_LIST_new(void);
3602
+
3603
+ // SSL_ECH_SERVER_CONFIG_LIST_up_ref increments the reference count of |list|.
3604
+ OPENSSL_EXPORT void SSL_ECH_SERVER_CONFIG_LIST_up_ref(
3605
+ SSL_ECH_SERVER_CONFIG_LIST *list);
3606
+
3607
+ // SSL_ECH_SERVER_CONFIG_LIST_free releases memory associated with |list|.
3608
+ OPENSSL_EXPORT void SSL_ECH_SERVER_CONFIG_LIST_free(
3609
+ SSL_ECH_SERVER_CONFIG_LIST *list);
3610
+
3611
+ // SSL_ECH_SERVER_CONFIG_LIST_add appends an ECHConfig in |ech_config| and its
3612
+ // corresponding private key in |private_key| to |list|. When |is_retry_config|
3613
+ // is non-zero, this config will be returned to the client on configuration
3614
+ // mismatch. It returns one on success and zero on error. See also
3615
+ // |SSL_CTX_set1_ech_server_config_list|.
3616
+ //
3617
+ // This function should be called successively to register each ECHConfig in
3618
+ // decreasing order of preference. This configuration must be completed before
3619
+ // setting |list| on an |SSL_CTX| with |SSL_CTX_set1_ech_server_config_list|.
3620
+ // After that point, |list| is immutable; no more ECHConfig values may be added.
3621
+ OPENSSL_EXPORT int SSL_ECH_SERVER_CONFIG_LIST_add(
3622
+ SSL_ECH_SERVER_CONFIG_LIST *list, int is_retry_config,
3623
+ const uint8_t *ech_config, size_t ech_config_len,
3624
+ const uint8_t *private_key, size_t private_key_len);
3625
+
3626
+ // SSL_CTX_set1_ech_server_config_list atomically sets the refcounted |list|
3627
+ // onto |ctx|, releasing the old list. |SSL| objects associated with |ctx|, as
3628
+ // servers, will use |list| to decrypt incoming encrypted ClientHello messages.
3629
+ // It returns one on success, and zero on failure.
3630
+ //
3631
+ // If |list| does not contain any retry configs, this function will fail. Retry
3632
+ // configs are marked as such when they are added to |list| with
3633
+ // |SSL_ECH_SERVER_CONFIG_LIST_add|.
3634
+ //
3635
+ // Once |list| has been passed to this function, it is immutable. Unlike most
3636
+ // |SSL_CTX| configuration functions, this function may be called even if |ctx|
3637
+ // already has associated connections on multiple threads. This may be used to
3638
+ // rotate keys in a long-lived server process.
3639
+ //
3640
+ // The configured ECHConfig values should also be advertised out-of-band via DNS
3641
+ // (see draft-ietf-dnsop-svcb-https). Before advertising an ECHConfig in DNS,
3642
+ // deployments should ensure all instances of the service are configured with
3643
+ // the ECHConfig and corresponding private key.
3644
+ //
3645
+ // Only the most recent fully-deployed ECHConfigs should be advertised in DNS.
3646
+ // |list| may contain a newer set if those ECHConfigs are mid-deployment. It
3647
+ // should also contain older sets, until the DNS change has rolled out and the
3648
+ // old records have expired from caches.
3649
+ //
3650
+ // If there is a mismatch, |SSL| objects associated with |ctx| will complete the
3651
+ // handshake using the cleartext ClientHello and send updated ECHConfig values
3652
+ // to the client. The client will then retry to recover, but with a latency
3653
+ // penalty. This recovery flow depends on the public name in the ECHConfig.
3654
+ // Before advertising an ECHConfig in DNS, deployments must ensure all instances
3655
+ // of the service can present a valid certificate for the public name.
3656
+ //
3657
+ // BoringSSL negotiates ECH before certificate selection callbacks are called,
3658
+ // including |SSL_CTX_set_select_certificate_cb|. If ECH is negotiated, the
3659
+ // reported |SSL_CLIENT_HELLO| structure and |SSL_get_servername| function will
3660
+ // transparently reflect the inner ClientHello. Callers should select parameters
3661
+ // based on these values to correctly handle ECH as well as the recovery flow.
3662
+ OPENSSL_EXPORT int SSL_CTX_set1_ech_server_config_list(
3663
+ SSL_CTX *ctx, SSL_ECH_SERVER_CONFIG_LIST *list);
3664
+
3592
3665
 
3593
3666
  // Alerts.
3594
3667
  //
@@ -3725,6 +3798,101 @@ OPENSSL_EXPORT uint64_t SSL_get_read_sequence(const SSL *ssl);
3725
3798
  OPENSSL_EXPORT uint64_t SSL_get_write_sequence(const SSL *ssl);
3726
3799
 
3727
3800
 
3801
+ // Handshake hints.
3802
+ //
3803
+ // *** EXPERIMENTAL — DO NOT USE WITHOUT CHECKING ***
3804
+ //
3805
+ // Some server deployments make asynchronous RPC calls in both ClientHello
3806
+ // dispatch and private key operations. In TLS handshakes where the private key
3807
+ // operation occurs in the first round-trip, this results in two consecutive RPC
3808
+ // round-trips. Handshake hints allow the RPC service to predicte a signature.
3809
+ // If correctly predicted, this can skip the second RPC call.
3810
+ //
3811
+ // First, the server installs a certificate selection callback (see
3812
+ // |SSL_CTX_set_select_certificate_cb|). When that is called, it performs the
3813
+ // RPC as before, but includes the ClientHello and a capabilities string from
3814
+ // |SSL_serialize_capabilities|.
3815
+ //
3816
+ // Next, the RPC service creates its own |SSL| object, applies the results of
3817
+ // certificate selection, calls |SSL_request_handshake_hints|, and runs the
3818
+ // handshake. If this successfully computes handshake hints (see
3819
+ // |SSL_serialize_handshake_hints|), the RPC server should send the hints
3820
+ // alongside any certificate selection results.
3821
+ //
3822
+ // Finally, the server calls |SSL_set_handshake_hints| and applies any
3823
+ // configuration from the RPC server. It then completes the handshake as before.
3824
+ // If the hints apply, BoringSSL will use the predicted signature and skip the
3825
+ // private key callbacks. Otherwise, BoringSSL will call private key callbacks
3826
+ // to generate a signature as before.
3827
+ //
3828
+ // Callers should synchronize configuration across the two services.
3829
+ // Configuration mismatches and some cases of version skew are not fatal, but
3830
+ // may result in the hints not applying. Additionally, some handshake flows use
3831
+ // the private key in later round-trips, such as TLS 1.3 HelloRetryRequest. In
3832
+ // those cases, BoringSSL will not predict a signature as there is no benefit.
3833
+ // Callers must allow for handshakes to complete without a predicted signature.
3834
+ //
3835
+ // For now, only TLS 1.3 is hinted. TLS 1.2 will work, but the hints will be
3836
+ // empty.
3837
+
3838
+ // SSL_serialize_capabilities writes an opaque byte string to |out| describing
3839
+ // some of |ssl|'s capabilities. It returns one on success and zero on error.
3840
+ //
3841
+ // This string is used by BoringSSL internally to reduce the impact of version
3842
+ // skew.
3843
+ OPENSSL_EXPORT int SSL_serialize_capabilities(const SSL *ssl, CBB *out);
3844
+
3845
+ // SSL_request_handshake_hints configures |ssl| to generate a handshake hint for
3846
+ // |client_hello|. It returns one on success and zero on error. |client_hello|
3847
+ // should contain a serialized ClientHello structure, from the |client_hello|
3848
+ // and |client_hello_len| fields of the |SSL_CLIENT_HELLO| structure.
3849
+ // |capabilities| should contain the output of |SSL_serialize_capabilities|.
3850
+ //
3851
+ // When configured, |ssl| will perform no I/O (so there is no need to configure
3852
+ // |BIO|s). For QUIC, the caller should still configure an |SSL_QUIC_METHOD|,
3853
+ // but the callbacks themselves will never be called and may be left NULL or
3854
+ // report failure. |SSL_provide_quic_data| also should not be called.
3855
+ //
3856
+ // If hint generation is successful, |SSL_do_handshake| will stop the handshake
3857
+ // early with |SSL_get_error| returning |SSL_ERROR_HANDSHAKE_HINTS_READY|. At
3858
+ // this point, the caller should run |SSL_serialize_handshake_hints| to extract
3859
+ // the resulting hints.
3860
+ //
3861
+ // Hint generation may fail if, e.g., |ssl| was unable to process the
3862
+ // ClientHello. Callers should then complete the certificate selection RPC and
3863
+ // continue the original handshake with no hint. It will likely fail, but this
3864
+ // reports the correct alert to the client and is more robust in case of
3865
+ // mismatch.
3866
+ OPENSSL_EXPORT int SSL_request_handshake_hints(SSL *ssl,
3867
+ const uint8_t *client_hello,
3868
+ size_t client_hello_len,
3869
+ const uint8_t *capabilities,
3870
+ size_t capabilities_len);
3871
+
3872
+ // SSL_serialize_handshake_hints writes an opaque byte string to |out|
3873
+ // containing the handshake hints computed by |out|. It returns one on success
3874
+ // and zero on error. This function should only be called if
3875
+ // |SSL_request_handshake_hints| was configured and the handshake terminated
3876
+ // with |SSL_ERROR_HANDSHAKE_HINTS_READY|.
3877
+ //
3878
+ // This string may be passed to |SSL_set_handshake_hints| on another |SSL| to
3879
+ // avoid an extra signature call.
3880
+ OPENSSL_EXPORT int SSL_serialize_handshake_hints(const SSL *ssl, CBB *out);
3881
+
3882
+ // SSL_set_handshake_hints configures |ssl| to use |hints| as handshake hints.
3883
+ // It returns one on success and zero on error. The handshake will then continue
3884
+ // as before, but apply predicted values from |hints| where applicable.
3885
+ //
3886
+ // Hints may contain connection and session secrets, so they must not leak and
3887
+ // must come from a source trusted to terminate the connection. However, they
3888
+ // will not change |ssl|'s configuration. The caller is responsible for
3889
+ // serializing and applying options from the RPC server as needed. This ensures
3890
+ // |ssl|'s behavior is self-consistent and consistent with the caller's local
3891
+ // decisions.
3892
+ OPENSSL_EXPORT int SSL_set_handshake_hints(SSL *ssl, const uint8_t *hints,
3893
+ size_t hints_len);
3894
+
3895
+
3728
3896
  // Obscure functions.
3729
3897
 
3730
3898
  // SSL_CTX_set_msg_callback installs |cb| as the message callback for |ctx|.
@@ -4798,18 +4966,6 @@ OPENSSL_EXPORT int SSL_CTX_set_tlsext_status_arg(SSL_CTX *ctx, void *arg);
4798
4966
  // name and remove this one.
4799
4967
  OPENSSL_EXPORT uint16_t SSL_CIPHER_get_value(const SSL_CIPHER *cipher);
4800
4968
 
4801
- // SSL_CTX_set_ignore_tls13_downgrade does nothing.
4802
- OPENSSL_EXPORT void SSL_CTX_set_ignore_tls13_downgrade(SSL_CTX *ctx,
4803
- int ignore);
4804
-
4805
- // SSL_set_ignore_tls13_downgrade does nothing.
4806
- OPENSSL_EXPORT void SSL_set_ignore_tls13_downgrade(SSL *ssl, int ignore);
4807
-
4808
- // SSL_is_tls13_downgrade returns zero. Historically, this function returned
4809
- // whether the TLS 1.3 downgrade signal would have been enforced if not
4810
- // disabled. The TLS 1.3 downgrade signal is now always enforced.
4811
- OPENSSL_EXPORT int SSL_is_tls13_downgrade(const SSL *ssl);
4812
-
4813
4969
 
4814
4970
  // Nodejs compatibility section (hidden).
4815
4971
  //
@@ -4972,6 +5128,10 @@ BSSL_NAMESPACE_BEGIN
4972
5128
  BORINGSSL_MAKE_DELETER(SSL, SSL_free)
4973
5129
  BORINGSSL_MAKE_DELETER(SSL_CTX, SSL_CTX_free)
4974
5130
  BORINGSSL_MAKE_UP_REF(SSL_CTX, SSL_CTX_up_ref)
5131
+ BORINGSSL_MAKE_DELETER(SSL_ECH_SERVER_CONFIG_LIST,
5132
+ SSL_ECH_SERVER_CONFIG_LIST_free)
5133
+ BORINGSSL_MAKE_UP_REF(SSL_ECH_SERVER_CONFIG_LIST,
5134
+ SSL_ECH_SERVER_CONFIG_LIST_up_ref)
4975
5135
  BORINGSSL_MAKE_DELETER(SSL_SESSION, SSL_SESSION_free)
4976
5136
  BORINGSSL_MAKE_UP_REF(SSL_SESSION, SSL_SESSION_up_ref)
4977
5137
 
@@ -5088,6 +5248,7 @@ OPENSSL_EXPORT bool SSL_get_traffic_secrets(
5088
5248
  const SSL *ssl, Span<const uint8_t> *out_read_traffic_secret,
5089
5249
  Span<const uint8_t> *out_write_traffic_secret);
5090
5250
 
5251
+
5091
5252
  BSSL_NAMESPACE_END
5092
5253
 
5093
5254
  } // extern C++
@@ -5305,6 +5466,13 @@ BSSL_NAMESPACE_END
5305
5466
  #define SSL_R_NO_APPLICATION_PROTOCOL 307
5306
5467
  #define SSL_R_NEGOTIATED_ALPS_WITHOUT_ALPN 308
5307
5468
  #define SSL_R_ALPS_MISMATCH_ON_EARLY_DATA 309
5469
+ #define SSL_R_ECH_SERVER_CONFIG_AND_PRIVATE_KEY_MISMATCH 310
5470
+ #define SSL_R_ECH_SERVER_CONFIG_UNSUPPORTED_EXTENSION 311
5471
+ #define SSL_R_UNSUPPORTED_ECH_SERVER_CONFIG 312
5472
+ #define SSL_R_ECH_SERVER_WOULD_HAVE_NO_RETRY_CONFIGS 313
5473
+ #define SSL_R_INVALID_CLIENT_HELLO_INNER 314
5474
+ #define SSL_R_INVALID_ALPN_PROTOCOL_LIST 315
5475
+ #define SSL_R_COULD_NOT_PARSE_HINTS 316
5308
5476
  #define SSL_R_SSLV3_ALERT_CLOSE_NOTIFY 1000
5309
5477
  #define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010
5310
5478
  #define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020