grpc 1.69.0 → 1.70.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (640) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +251 -249
  3. data/include/grpc/support/atm.h +0 -13
  4. data/src/core/call/request_buffer.cc +224 -0
  5. data/src/core/call/request_buffer.h +192 -0
  6. data/src/core/client_channel/client_channel.cc +2 -3
  7. data/src/core/client_channel/client_channel_args.h +21 -0
  8. data/src/core/client_channel/client_channel_filter.h +1 -3
  9. data/src/core/client_channel/retry_interceptor.cc +406 -0
  10. data/src/core/client_channel/retry_interceptor.h +157 -0
  11. data/src/core/client_channel/retry_service_config.h +13 -0
  12. data/src/core/client_channel/retry_throttle.cc +33 -18
  13. data/src/core/client_channel/retry_throttle.h +3 -3
  14. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +596 -94
  15. data/src/core/ext/transport/chttp2/server/chttp2_server.h +189 -13
  16. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +1 -0
  17. data/src/core/ext/transport/chttp2/transport/frame_security.cc +1 -3
  18. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +40 -1
  19. data/src/core/ext/upb-gen/envoy/admin/v3/config_dump_shared.upb.h +3 -1
  20. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb.h +66 -36
  21. data/src/core/ext/upb-gen/envoy/config/cluster/v3/cluster.upb_minitable.c +19 -17
  22. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb.h +116 -0
  23. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.c +31 -5
  24. data/src/core/ext/upb-gen/envoy/config/core/v3/base.upb_minitable.h +2 -0
  25. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb.h +67 -6
  26. data/src/core/ext/upb-gen/envoy/config/core/v3/protocol.upb_minitable.c +12 -8
  27. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb.h +151 -0
  28. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.c +60 -0
  29. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_cmsg_headers.upb_minitable.h +32 -0
  30. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb.h +228 -21
  31. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.c +65 -17
  32. data/src/core/ext/upb-gen/envoy/config/core/v3/socket_option.upb_minitable.h +6 -0
  33. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb.h +7 -106
  34. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.c +7 -28
  35. data/src/core/ext/upb-gen/envoy/config/listener/v3/listener_components.upb_minitable.h +0 -2
  36. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb.h +85 -0
  37. data/src/core/ext/upb-gen/envoy/config/listener/v3/quic_config.upb_minitable.c +25 -3
  38. data/src/core/ext/upb-gen/envoy/config/overload/v3/overload.upb.h +2 -1
  39. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb.h +152 -0
  40. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.c +40 -10
  41. data/src/core/ext/upb-gen/envoy/config/rbac/v3/rbac.upb_minitable.h +2 -0
  42. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb.h +135 -4
  43. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.c +41 -9
  44. data/src/core/ext/upb-gen/envoy/config/route/v3/route_components.upb_minitable.h +2 -0
  45. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb.h +0 -2
  46. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.c +0 -1
  47. data/src/core/ext/upb-gen/envoy/config/trace/v3/trace.upb_minitable.h +0 -1
  48. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +16 -0
  49. data/src/core/ext/upb-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb_minitable.c +3 -2
  50. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +60 -0
  51. data/src/core/ext/upb-gen/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb_minitable.c +13 -2
  52. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb.h +0 -1
  53. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upb_minitable.c +0 -1
  54. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +102 -24
  55. data/src/core/ext/upb-gen/envoy/extensions/transport_sockets/tls/v3/tls.upb_minitable.c +28 -19
  56. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb.h +251 -18
  57. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.c +41 -16
  58. data/src/core/ext/upb-gen/envoy/service/discovery/v3/discovery.upb_minitable.h +2 -0
  59. data/src/core/ext/upb-gen/envoy/service/status/v3/csds.upb.h +2 -1
  60. data/src/core/ext/upbdefs-gen/envoy/admin/v3/config_dump_shared.upbdefs.c +11 -10
  61. data/src/core/ext/upbdefs-gen/envoy/config/cluster/v3/cluster.upbdefs.c +418 -413
  62. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.c +161 -153
  63. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/base.upbdefs.h +5 -0
  64. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/protocol.upbdefs.c +267 -261
  65. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.c +46 -0
  66. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_cmsg_headers.upbdefs.h +33 -0
  67. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.c +29 -19
  68. data/src/core/ext/upbdefs-gen/envoy/config/core/v3/socket_option.upbdefs.h +15 -0
  69. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.c +58 -65
  70. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/listener_components.upbdefs.h +0 -5
  71. data/src/core/ext/upbdefs-gen/envoy/config/listener/v3/quic_config.upbdefs.c +73 -63
  72. data/src/core/ext/upbdefs-gen/envoy/config/overload/v3/overload.upbdefs.c +49 -48
  73. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.c +117 -100
  74. data/src/core/ext/upbdefs-gen/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
  75. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.c +905 -897
  76. data/src/core/ext/upbdefs-gen/envoy/config/route/v3/route_components.upbdefs.h +5 -0
  77. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/trace.upbdefs.c +15 -18
  78. data/src/core/ext/upbdefs-gen/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +460 -457
  79. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/http_11_proxy/v3/upstream_http_11_connect.upbdefs.c +16 -19
  80. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +95 -95
  81. data/src/core/ext/upbdefs-gen/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +202 -191
  82. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.c +148 -135
  83. data/src/core/ext/upbdefs-gen/envoy/service/discovery/v3/discovery.upbdefs.h +5 -0
  84. data/src/core/ext/upbdefs-gen/envoy/service/status/v3/csds.upbdefs.c +23 -22
  85. data/src/core/filter/filter_args.h +112 -0
  86. data/src/core/handshaker/http_connect/http_connect_handshaker.cc +1 -1
  87. data/src/core/lib/channel/promise_based_filter.h +5 -79
  88. data/src/core/lib/debug/trace_flags.cc +2 -0
  89. data/src/core/lib/debug/trace_flags.h +1 -0
  90. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +14 -0
  91. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +7 -2
  92. data/src/core/lib/event_engine/posix_engine/posix_engine.h +0 -2
  93. data/src/core/lib/event_engine/windows/windows_engine.cc +1 -0
  94. data/src/core/lib/experiments/experiments.cc +90 -39
  95. data/src/core/lib/experiments/experiments.h +43 -24
  96. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +1 -1
  97. data/src/core/lib/promise/activity.cc +2 -0
  98. data/src/core/lib/promise/activity.h +29 -8
  99. data/src/core/lib/promise/map.h +42 -0
  100. data/src/core/lib/promise/party.cc +36 -1
  101. data/src/core/lib/promise/party.h +13 -5
  102. data/src/core/lib/promise/sleep.h +1 -0
  103. data/src/core/lib/promise/status_flag.h +10 -0
  104. data/src/core/lib/resource_quota/arena.h +8 -0
  105. data/src/core/lib/resource_quota/connection_quota.h +4 -0
  106. data/src/core/lib/surface/call_utils.h +2 -0
  107. data/src/core/lib/surface/client_call.cc +43 -35
  108. data/src/core/lib/surface/client_call.h +5 -0
  109. data/src/core/lib/surface/event_string.cc +7 -1
  110. data/src/core/lib/surface/init_internally.h +13 -2
  111. data/src/core/lib/surface/server_call.cc +100 -85
  112. data/src/core/lib/surface/version.cc +2 -2
  113. data/src/core/lib/transport/call_filters.cc +10 -4
  114. data/src/core/lib/transport/call_filters.h +8 -0
  115. data/src/core/lib/transport/call_spine.cc +36 -71
  116. data/src/core/lib/transport/call_spine.h +131 -7
  117. data/src/core/lib/transport/call_state.h +132 -39
  118. data/src/core/lib/transport/interception_chain.cc +8 -0
  119. data/src/core/lib/transport/interception_chain.h +9 -0
  120. data/src/core/load_balancing/endpoint_list.cc +10 -0
  121. data/src/core/load_balancing/endpoint_list.h +13 -6
  122. data/src/core/load_balancing/lb_policy.h +0 -8
  123. data/src/core/load_balancing/pick_first/pick_first.cc +89 -56
  124. data/src/core/load_balancing/ring_hash/ring_hash.cc +158 -70
  125. data/src/core/load_balancing/ring_hash/ring_hash.h +4 -11
  126. data/src/core/load_balancing/round_robin/round_robin.cc +9 -14
  127. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +12 -15
  128. data/src/core/resolver/dns/c_ares/dns_resolver_ares.cc +4 -4
  129. data/src/core/resolver/xds/xds_dependency_manager.cc +139 -135
  130. data/src/core/resolver/xds/xds_dependency_manager.h +24 -18
  131. data/src/core/resolver/xds/xds_resolver.cc +28 -47
  132. data/src/core/server/server.cc +290 -24
  133. data/src/core/server/server.h +199 -61
  134. data/src/core/server/xds_server_config_fetcher.cc +78 -142
  135. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -1
  136. data/src/core/util/backoff.cc +15 -4
  137. data/src/core/util/http_client/httpcli.cc +66 -18
  138. data/src/core/util/http_client/httpcli.h +14 -4
  139. data/src/core/util/matchers.h +5 -10
  140. data/src/core/util/ref_counted.h +1 -0
  141. data/src/core/util/ref_counted_ptr.h +1 -1
  142. data/src/core/util/useful.h +9 -11
  143. data/src/core/xds/grpc/xds_endpoint_parser.cc +54 -23
  144. data/src/core/xds/grpc/xds_metadata.h +8 -0
  145. data/src/core/xds/xds_client/xds_api.cc +0 -223
  146. data/src/core/xds/xds_client/xds_api.h +1 -133
  147. data/src/core/xds/xds_client/xds_client.cc +599 -466
  148. data/src/core/xds/xds_client/xds_client.h +107 -26
  149. data/src/core/xds/xds_client/xds_resource_type_impl.h +10 -5
  150. data/src/ruby/ext/grpc/extconf.rb +1 -0
  151. data/src/ruby/lib/grpc/version.rb +1 -1
  152. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_bitstr.c → a_bitstr.cc} +3 -2
  153. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_d2i_fp.c → a_d2i_fp.cc} +1 -1
  154. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_dup.c → a_dup.cc} +1 -1
  155. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_i2d_fp.c → a_i2d_fp.cc} +1 -1
  156. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_int.c → a_int.cc} +2 -1
  157. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_mbstr.c → a_mbstr.cc} +9 -7
  158. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_object.c → a_object.cc} +1 -1
  159. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_strnid.c → a_strnid.cc} +7 -4
  160. data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_type.c → a_type.cc} +4 -4
  161. data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn1_lib.c → asn1_lib.cc} +4 -4
  162. data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn_pack.c → asn_pack.cc} +2 -2
  163. data/third_party/boringssl-with-bazel/src/crypto/asn1/{posix_time.c → posix_time.cc} +2 -2
  164. data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_dec.c → tasn_dec.cc} +4 -3
  165. data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_enc.c → tasn_enc.cc} +9 -6
  166. data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_fre.c → tasn_fre.cc} +14 -20
  167. data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_new.c → tasn_new.cc} +7 -6
  168. data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_utl.c → tasn_utl.cc} +13 -10
  169. data/third_party/boringssl-with-bazel/src/crypto/base64/{base64.c → base64.cc} +9 -12
  170. data/third_party/boringssl-with-bazel/src/crypto/bcm_support.h +7 -1
  171. data/third_party/boringssl-with-bazel/src/crypto/bio/{bio.c → bio.cc} +32 -58
  172. data/third_party/boringssl-with-bazel/src/crypto/bio/{bio_mem.c → bio_mem.cc} +8 -7
  173. data/third_party/boringssl-with-bazel/src/crypto/bio/{connect.c → connect.cc} +24 -16
  174. data/third_party/boringssl-with-bazel/src/crypto/bio/{file.c → file.cc} +3 -3
  175. data/third_party/boringssl-with-bazel/src/crypto/bio/{pair.c → pair.cc} +22 -20
  176. data/third_party/boringssl-with-bazel/src/crypto/bio/{printf.c → printf.cc} +2 -2
  177. data/third_party/boringssl-with-bazel/src/crypto/bio/{socket_helper.c → socket_helper.cc} +1 -1
  178. data/third_party/boringssl-with-bazel/src/crypto/blake2/{blake2.c → blake2.cc} +2 -2
  179. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/{bn_asn1.c → bn_asn1.cc} +1 -1
  180. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/{convert.c → convert.cc} +21 -21
  181. data/third_party/boringssl-with-bazel/src/crypto/buf/{buf.c → buf.cc} +6 -3
  182. data/third_party/boringssl-with-bazel/src/crypto/bytestring/{asn1_compat.c → asn1_compat.cc} +1 -1
  183. data/third_party/boringssl-with-bazel/src/crypto/bytestring/{ber.c → ber.cc} +1 -1
  184. data/third_party/boringssl-with-bazel/src/crypto/bytestring/{cbb.c → cbb.cc} +33 -49
  185. data/third_party/boringssl-with-bazel/src/crypto/bytestring/{cbs.c → cbs.cc} +20 -27
  186. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +1 -1
  187. data/third_party/boringssl-with-bazel/src/crypto/bytestring/{unicode.c → unicode.cc} +1 -1
  188. data/third_party/boringssl-with-bazel/src/crypto/chacha/{chacha.c → chacha.cc} +1 -1
  189. data/third_party/boringssl-with-bazel/src/crypto/chacha/internal.h +1 -1
  190. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_aesctrhmac.c → e_aesctrhmac.cc} +1 -1
  191. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_aesgcmsiv.c → e_aesgcmsiv.cc} +23 -26
  192. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_chacha20poly1305.c → e_chacha20poly1305.cc} +1 -8
  193. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_des.c → e_des.cc} +61 -49
  194. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_null.c → e_null.cc} +12 -9
  195. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_rc2.c → e_rc2.cc} +23 -19
  196. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_rc4.c → e_rc4.cc} +10 -8
  197. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{e_tls.c → e_tls.cc} +2 -1
  198. data/third_party/boringssl-with-bazel/src/crypto/conf/{conf.c → conf.cc} +17 -14
  199. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +1 -1
  200. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_apple.c → cpu_aarch64_apple.cc} +2 -2
  201. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_fuchsia.c → cpu_aarch64_fuchsia.cc} +2 -2
  202. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_linux.c → cpu_aarch64_linux.cc} +2 -2
  203. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_openbsd.c → cpu_aarch64_openbsd.cc} +4 -4
  204. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_sysreg.c → cpu_aarch64_sysreg.cc} +3 -2
  205. data/third_party/boringssl-with-bazel/src/crypto/{cpu_aarch64_win.c → cpu_aarch64_win.cc} +2 -2
  206. data/third_party/boringssl-with-bazel/src/crypto/{cpu_arm_freebsd.c → cpu_arm_freebsd.cc} +3 -3
  207. data/third_party/boringssl-with-bazel/src/crypto/{cpu_arm_linux.c → cpu_arm_linux.cc} +5 -5
  208. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_linux.h +1 -1
  209. data/third_party/boringssl-with-bazel/src/crypto/{cpu_intel.c → cpu_intel.cc} +47 -32
  210. data/third_party/boringssl-with-bazel/src/crypto/{crypto.c → crypto.cc} +6 -11
  211. data/third_party/boringssl-with-bazel/src/crypto/curve25519/{curve25519.c → curve25519.cc} +28 -31
  212. data/third_party/boringssl-with-bazel/src/crypto/curve25519/{curve25519_64_adx.c → curve25519_64_adx.cc} +1 -1
  213. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519_tables.h +1 -1
  214. data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
  215. data/third_party/boringssl-with-bazel/src/crypto/curve25519/{spake25519.c → spake25519.cc} +20 -16
  216. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/{dh_asn1.c → dh_asn1.cc} +2 -2
  217. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/{digest_extra.c → digest_extra.cc} +113 -31
  218. data/third_party/boringssl-with-bazel/src/crypto/dsa/{dsa.c → dsa.cc} +153 -154
  219. data/third_party/boringssl-with-bazel/src/crypto/dsa/{dsa_asn1.c → dsa_asn1.cc} +2 -2
  220. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +1 -3
  221. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/{ec_asn1.c → ec_asn1.cc} +35 -0
  222. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/{ec_derive.c → ec_derive.cc} +1 -1
  223. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/{hash_to_curve.c → hash_to_curve.cc} +66 -64
  224. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +1 -1
  225. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/{ecdsa_asn1.c → ecdsa_asn1.cc} +15 -25
  226. data/third_party/boringssl-with-bazel/src/crypto/engine/{engine.c → engine.cc} +12 -8
  227. data/third_party/boringssl-with-bazel/src/crypto/err/{err.c → err.cc} +24 -27
  228. data/third_party/boringssl-with-bazel/src/crypto/err/internal.h +1 -1
  229. data/third_party/boringssl-with-bazel/src/crypto/evp/{evp.c → evp.cc} +8 -9
  230. data/third_party/boringssl-with-bazel/src/crypto/evp/{evp_ctx.c → evp_ctx.cc} +7 -8
  231. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_dh.c → p_dh.cc} +23 -14
  232. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_dh_asn1.c → p_dh_asn1.cc} +38 -21
  233. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_dsa_asn1.c → p_dsa_asn1.cc} +19 -24
  234. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_ec.c → p_ec.cc} +20 -23
  235. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_ec_asn1.c → p_ec_asn1.cc} +20 -20
  236. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_ed25519.c → p_ed25519.cc} +22 -19
  237. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_ed25519_asn1.c → p_ed25519_asn1.cc} +14 -13
  238. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_hkdf.c → p_hkdf.cc} +18 -14
  239. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_rsa.c → p_rsa.cc} +38 -37
  240. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_rsa_asn1.c → p_rsa_asn1.cc} +16 -18
  241. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_x25519.c → p_x25519.cc} +22 -19
  242. data/third_party/boringssl-with-bazel/src/crypto/evp/{p_x25519_asn1.c → p_x25519_asn1.cc} +18 -17
  243. data/third_party/boringssl-with-bazel/src/crypto/evp/{pbkdf.c → pbkdf.cc} +2 -2
  244. data/third_party/boringssl-with-bazel/src/crypto/evp/{print.c → print.cc} +4 -5
  245. data/third_party/boringssl-with-bazel/src/crypto/evp/{scrypt.c → scrypt.cc} +7 -5
  246. data/third_party/boringssl-with-bazel/src/crypto/{ex_data.c → ex_data.cc} +3 -4
  247. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{aes_nohw.c.inc → aes_nohw.cc.inc} +1 -1
  248. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +1 -5
  249. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{key_wrap.c.inc → key_wrap.cc.inc} +1 -1
  250. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/{bcm.c → bcm.cc} +96 -101
  251. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm_interface.h +165 -12
  252. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{add.c.inc → add.cc.inc} +1 -0
  253. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/asm/{x86_64-gcc.c.inc → x86_64-gcc.cc.inc} +4 -4
  254. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{bn.c.inc → bn.cc.inc} +12 -24
  255. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{ctx.c.inc → ctx.cc.inc} +5 -7
  256. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{div.c.inc → div.cc.inc} +29 -38
  257. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{div_extra.c.inc → div_extra.cc.inc} +1 -1
  258. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{exponentiation.c.inc → exponentiation.cc.inc} +22 -22
  259. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{gcd.c.inc → gcd.cc.inc} +3 -6
  260. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{gcd_extra.c.inc → gcd_extra.cc.inc} +33 -25
  261. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{montgomery.c.inc → montgomery.cc.inc} +10 -17
  262. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{mul.c.inc → mul.cc.inc} +11 -15
  263. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{prime.c.inc → prime.cc.inc} +31 -34
  264. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{shift.c.inc → shift.cc.inc} +3 -4
  265. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{aead.c.inc → aead.cc.inc} +18 -10
  266. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{cipher.c.inc → cipher.cc.inc} +6 -9
  267. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{e_aes.c.inc → e_aes.cc.inc} +46 -54
  268. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cmac/{cmac.c.inc → cmac.cc.inc} +6 -6
  269. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/delocate.h +14 -10
  270. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/{dh.c.inc → dh.cc.inc} +15 -19
  271. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +1 -3
  272. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/{digest.c.inc → digest.cc.inc} +17 -13
  273. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/{digests.c.inc → digests.cc.inc} +29 -113
  274. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digestsign/{digestsign.c.inc → digestsign.cc.inc} +3 -3
  275. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/builtin_curves.h +1 -1
  276. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec.c.inc → ec.cc.inc} +10 -15
  277. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec_key.c.inc → ec_key.cc.inc} +12 -14
  278. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{felem.c.inc → felem.cc.inc} +1 -1
  279. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{oct.c.inc → oct.cc.inc} +5 -6
  280. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p224-64.c.inc → p224-64.cc.inc} +1 -1
  281. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-nistz-table.h +1 -1
  282. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-nistz.c.inc → p256-nistz.cc.inc} +15 -13
  283. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256.c.inc → p256.cc.inc} +1 -1
  284. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +1 -1
  285. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{scalar.c.inc → scalar.cc.inc} +1 -1
  286. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{simple_mul.c.inc → simple_mul.cc.inc} +1 -1
  287. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{util.c.inc → util.cc.inc} +1 -1
  288. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{wnaf.c.inc → wnaf.cc.inc} +24 -15
  289. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/{ecdh.c.inc → ecdh.cc.inc} +14 -5
  290. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/{ecdsa.c.inc → ecdsa.cc.inc} +6 -7
  291. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +1 -1
  292. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/{fips_shared_support.c → fips_shared_support.cc} +2 -3
  293. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hkdf/{hkdf.c.inc → hkdf.cc.inc} +1 -1
  294. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/{hmac.c.inc → hmac.cc.inc} +3 -2
  295. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{gcm.c.inc → gcm.cc.inc} +69 -21
  296. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{gcm_nohw.c.inc → gcm_nohw.cc.inc} +1 -1
  297. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +53 -33
  298. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{polyval.c.inc → polyval.cc.inc} +2 -3
  299. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/{ctrdrbg.c.inc → ctrdrbg.cc.inc} +5 -4
  300. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +1 -1
  301. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/{rand.c.inc → rand.cc.inc} +20 -18
  302. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{blinding.c.inc → blinding.cc.inc} +5 -4
  303. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{padding.c.inc → padding.cc.inc} +21 -21
  304. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{rsa.c.inc → rsa.cc.inc} +77 -73
  305. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/{rsa_impl.c.inc → rsa_impl.cc.inc} +50 -53
  306. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/{fips.c.inc → fips.cc.inc} +14 -6
  307. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/{self_check.c.inc → self_check.cc.inc} +56 -52
  308. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/{service_indicator.c.inc → service_indicator.cc.inc} +10 -11
  309. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +2 -4
  310. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha1.c.inc → sha1.cc.inc} +26 -33
  311. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha256.c.inc → sha256.cc.inc} +37 -55
  312. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/{sha512.c.inc → sha512.cc.inc} +48 -76
  313. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/internal.h +1 -1
  314. data/third_party/boringssl-with-bazel/src/crypto/hpke/{hpke.c → hpke.cc} +7 -4
  315. data/third_party/boringssl-with-bazel/src/crypto/hrss/{hrss.c → hrss.cc} +53 -110
  316. data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +1 -1
  317. data/third_party/boringssl-with-bazel/src/crypto/internal.h +191 -248
  318. data/third_party/boringssl-with-bazel/src/crypto/keccak/internal.h +1 -1
  319. data/third_party/boringssl-with-bazel/src/crypto/keccak/{keccak.c → keccak.cc} +1 -1
  320. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +1 -1
  321. data/third_party/boringssl-with-bazel/src/crypto/kyber/{kyber.c → kyber.cc} +1 -1
  322. data/third_party/boringssl-with-bazel/src/crypto/lhash/{lhash.c → lhash.cc} +8 -7
  323. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/md4/md4.c.inc → md4/md4.cc} +8 -12
  324. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/md5 → md5}/internal.h +1 -1
  325. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/md5/md5.c.inc → md5/md5.cc} +4 -3
  326. data/third_party/boringssl-with-bazel/src/crypto/{mem.c → mem.cc} +34 -22
  327. data/third_party/boringssl-with-bazel/src/crypto/mldsa/internal.h +4 -1
  328. data/third_party/boringssl-with-bazel/src/crypto/mldsa/{mldsa.c → mldsa.cc} +646 -543
  329. data/third_party/boringssl-with-bazel/src/crypto/mlkem/internal.h +1 -1
  330. data/third_party/boringssl-with-bazel/src/crypto/mlkem/mlkem.cc +8 -8
  331. data/third_party/boringssl-with-bazel/src/crypto/obj/{obj.c → obj.cc} +27 -30
  332. data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_info.c → pem_info.cc} +2 -2
  333. data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_lib.c → pem_lib.cc} +3 -4
  334. data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_oth.c → pem_oth.cc} +1 -1
  335. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +1 -1
  336. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/{pkcs7.c → pkcs7.cc} +5 -5
  337. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/{pkcs7_x509.c → pkcs7_x509.cc} +26 -25
  338. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +2 -2
  339. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/{p5_pbev2.c → p5_pbev2.cc} +2 -2
  340. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/{pkcs8.c → pkcs8.cc} +159 -158
  341. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/{pkcs8_x509.c → pkcs8_x509.cc} +90 -97
  342. data/third_party/boringssl-with-bazel/src/crypto/poly1305/internal.h +1 -1
  343. data/third_party/boringssl-with-bazel/src/crypto/poly1305/{poly1305.c → poly1305.cc} +3 -3
  344. data/third_party/boringssl-with-bazel/src/crypto/poly1305/{poly1305_arm.c → poly1305_arm.cc} +4 -2
  345. data/third_party/boringssl-with-bazel/src/crypto/poly1305/{poly1305_vec.c → poly1305_vec.cc} +14 -11
  346. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -1
  347. data/third_party/boringssl-with-bazel/src/crypto/pool/{pool.c → pool.cc} +12 -11
  348. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{deterministic.c → deterministic.cc} +2 -2
  349. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{fork_detect.c → fork_detect.cc} +11 -12
  350. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{forkunsafe.c → forkunsafe.cc} +2 -2
  351. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{getentropy.c → getentropy.cc} +1 -1
  352. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/getrandom_fillin.h +1 -1
  353. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{ios.c → ios.cc} +1 -1
  354. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{passive.c → passive.cc} +22 -18
  355. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{rand_extra.c → rand_extra.cc} +1 -1
  356. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/sysrand_internal.h +1 -1
  357. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{trusty.c → trusty.cc} +1 -1
  358. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{urandom.c → urandom.cc} +7 -7
  359. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/{windows.c → windows.cc} +1 -1
  360. data/third_party/boringssl-with-bazel/src/crypto/{refcount.c → refcount.cc} +1 -1
  361. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/{rsa_asn1.c → rsa_asn1.cc} +2 -2
  362. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/{rsa_crypt.c → rsa_crypt.cc} +81 -78
  363. data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_extra.cc +17 -0
  364. data/third_party/boringssl-with-bazel/src/crypto/sha/sha1.cc +52 -0
  365. data/third_party/boringssl-with-bazel/src/crypto/sha/sha256.cc +87 -0
  366. data/third_party/boringssl-with-bazel/src/crypto/sha/sha512.cc +104 -0
  367. data/third_party/boringssl-with-bazel/src/crypto/siphash/{siphash.c → siphash.cc} +1 -1
  368. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/address.h +123 -0
  369. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/fors.cc +169 -0
  370. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/fors.h +58 -0
  371. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/internal.h +63 -0
  372. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/merkle.cc +161 -0
  373. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/merkle.h +70 -0
  374. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/params.h +83 -0
  375. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/slhdsa.cc +307 -0
  376. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/thash.cc +173 -0
  377. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/thash.h +85 -0
  378. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/wots.cc +171 -0
  379. data/third_party/boringssl-with-bazel/src/crypto/slhdsa/wots.h +50 -0
  380. data/third_party/boringssl-with-bazel/src/crypto/stack/{stack.c → stack.cc} +10 -6
  381. data/third_party/boringssl-with-bazel/src/crypto/{thread_none.c → thread_none.cc} +1 -1
  382. data/third_party/boringssl-with-bazel/src/crypto/{thread_pthread.c → thread_pthread.cc} +9 -8
  383. data/third_party/boringssl-with-bazel/src/crypto/{thread_win.c → thread_win.cc} +21 -17
  384. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +1 -1
  385. data/third_party/boringssl-with-bazel/src/crypto/trust_token/{pmbtoken.c → pmbtoken.cc} +146 -158
  386. data/third_party/boringssl-with-bazel/src/crypto/trust_token/{trust_token.c → trust_token.cc} +19 -21
  387. data/third_party/boringssl-with-bazel/src/crypto/trust_token/{voprf.c → voprf.cc} +165 -169
  388. data/third_party/boringssl-with-bazel/src/crypto/x509/{a_digest.c → a_digest.cc} +1 -1
  389. data/third_party/boringssl-with-bazel/src/crypto/x509/{a_sign.c → a_sign.cc} +37 -34
  390. data/third_party/boringssl-with-bazel/src/crypto/x509/{a_verify.c → a_verify.cc} +1 -1
  391. data/third_party/boringssl-with-bazel/src/crypto/x509/{algorithm.c → algorithm.cc} +1 -1
  392. data/third_party/boringssl-with-bazel/src/crypto/x509/{asn1_gen.c → asn1_gen.cc} +5 -6
  393. data/third_party/boringssl-with-bazel/src/crypto/x509/{by_dir.c → by_dir.cc} +7 -6
  394. data/third_party/boringssl-with-bazel/src/crypto/x509/{policy.c → policy.cc} +188 -178
  395. data/third_party/boringssl-with-bazel/src/crypto/x509/{rsa_pss.c → rsa_pss.cc} +48 -44
  396. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_akey.c → v3_akey.cc} +4 -2
  397. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_alt.c → v3_alt.cc} +5 -5
  398. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_bcons.c → v3_bcons.cc} +3 -1
  399. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_bitst.c → v3_bitst.cc} +6 -3
  400. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_conf.c → v3_conf.cc} +5 -5
  401. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_cpols.c → v3_cpols.cc} +47 -41
  402. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_crld.c → v3_crld.cc} +3 -2
  403. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_enum.c → v3_enum.cc} +5 -2
  404. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_extku.c → v3_extku.cc} +3 -1
  405. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_genn.c → v3_genn.cc} +7 -7
  406. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_ia5.c → v3_ia5.cc} +3 -2
  407. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_info.c → v3_info.cc} +4 -2
  408. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_int.c → v3_int.cc} +3 -1
  409. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_lib.c → v3_lib.cc} +9 -6
  410. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_ncons.c → v3_ncons.cc} +3 -3
  411. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_ocsp.c → v3_ocsp.cc} +4 -1
  412. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_pcons.c → v3_pcons.cc} +3 -3
  413. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_pmaps.c → v3_pmaps.cc} +3 -3
  414. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_prn.c → v3_prn.cc} +2 -1
  415. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_purp.c → v3_purp.cc} +16 -8
  416. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_skey.c → v3_skey.cc} +6 -3
  417. data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_utl.c → v3_utl.cc} +15 -10
  418. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_att.c → x509_att.cc} +3 -2
  419. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_lu.c → x509_lu.cc} +6 -5
  420. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_v3.c → x509_v3.cc} +2 -2
  421. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_vfy.c → x509_vfy.cc} +216 -212
  422. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_vpm.c → x509_vpm.cc} +55 -13
  423. data/third_party/boringssl-with-bazel/src/crypto/x509/{x509spki.c → x509spki.cc} +3 -3
  424. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_all.c → x_all.cc} +10 -6
  425. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_crl.c → x_crl.cc} +6 -6
  426. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_name.c → x_name.cc} +39 -32
  427. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_pubkey.c → x_pubkey.cc} +4 -2
  428. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_x509.c → x_x509.cc} +48 -44
  429. data/third_party/boringssl-with-bazel/src/crypto/x509/{x_x509a.c → x_x509a.cc} +4 -2
  430. data/third_party/boringssl-with-bazel/src/gen/crypto/{err_data.c → err_data.cc} +359 -358
  431. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -1
  432. data/third_party/boringssl-with-bazel/src/include/openssl/asm_base.h +1 -1
  433. data/third_party/boringssl-with-bazel/src/include/openssl/asn1_mac.h +1 -1
  434. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +237 -275
  435. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +12 -5
  436. data/third_party/boringssl-with-bazel/src/include/openssl/bcm_public.h +82 -0
  437. data/third_party/boringssl-with-bazel/src/include/openssl/blake2.h +1 -1
  438. data/third_party/boringssl-with-bazel/src/include/openssl/buffer.h +1 -1
  439. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +1 -1
  440. data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
  441. data/third_party/boringssl-with-bazel/src/include/openssl/cmac.h +1 -1
  442. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +1 -1
  443. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +13 -2
  444. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +1 -1
  445. data/third_party/boringssl-with-bazel/src/include/openssl/curve25519.h +1 -1
  446. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -0
  447. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +6 -1
  448. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +4 -0
  449. data/third_party/boringssl-with-bazel/src/include/openssl/dtls1.h +1 -1
  450. data/third_party/boringssl-with-bazel/src/include/openssl/e_os2.h +1 -1
  451. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +17 -1
  452. data/third_party/boringssl-with-bazel/src/include/openssl/engine.h +1 -1
  453. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +1 -1
  454. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/kyber.h +1 -1
  455. data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +1 -1
  456. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +1 -1
  457. data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +1 -1
  458. data/third_party/boringssl-with-bazel/src/include/openssl/is_boringssl.h +1 -1
  459. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +1 -1
  460. data/third_party/boringssl-with-bazel/src/include/openssl/mldsa.h +8 -8
  461. data/third_party/boringssl-with-bazel/src/include/openssl/mlkem.h +1 -1
  462. data/third_party/boringssl-with-bazel/src/include/openssl/obj_mac.h +1 -1
  463. data/third_party/boringssl-with-bazel/src/include/openssl/objects.h +1 -1
  464. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +1 -1
  465. data/third_party/boringssl-with-bazel/src/include/openssl/opensslv.h +1 -1
  466. data/third_party/boringssl-with-bazel/src/include/openssl/ossl_typ.h +1 -1
  467. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs12.h +1 -1
  468. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +1 -1
  469. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +2 -2
  470. data/third_party/boringssl-with-bazel/src/include/openssl/poly1305.h +1 -1
  471. data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +1 -1
  472. data/third_party/boringssl-with-bazel/src/include/openssl/posix_time.h +1 -1
  473. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +1 -1
  474. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +10 -5
  475. data/third_party/boringssl-with-bazel/src/include/openssl/safestack.h +1 -1
  476. data/third_party/boringssl-with-bazel/src/include/openssl/sha.h +2 -40
  477. data/third_party/boringssl-with-bazel/src/include/openssl/siphash.h +1 -1
  478. data/third_party/boringssl-with-bazel/src/include/openssl/slhdsa.h +133 -0
  479. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +6 -1
  480. data/third_party/boringssl-with-bazel/src/include/openssl/srtp.h +1 -1
  481. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +160 -116
  482. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +1 -0
  483. data/third_party/boringssl-with-bazel/src/include/openssl/target.h +1 -1
  484. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +2 -2
  485. data/third_party/boringssl-with-bazel/src/include/openssl/time.h +1 -1
  486. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +1 -1
  487. data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +1 -1
  488. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +1 -1
  489. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3_errors.h +2 -2
  490. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +2 -6
  491. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +667 -322
  492. data/third_party/boringssl-with-bazel/src/ssl/d1_lib.cc +116 -119
  493. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +163 -21
  494. data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +4 -12
  495. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +94 -49
  496. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +296 -198
  497. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +23 -14
  498. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +363 -343
  499. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +48 -58
  500. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +44 -36
  501. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +145 -159
  502. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +65 -58
  503. data/third_party/boringssl-with-bazel/src/ssl/internal.h +910 -356
  504. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +29 -41
  505. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +13 -11
  506. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +2 -2
  507. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +90 -183
  508. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +38 -64
  509. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +1 -1
  510. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +103 -44
  511. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +210 -220
  512. data/third_party/boringssl-with-bazel/src/ssl/ssl_credential.cc +70 -12
  513. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +20 -17
  514. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +146 -169
  515. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +15 -16
  516. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +79 -95
  517. data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -9
  518. data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +91 -16
  519. data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +30 -16
  520. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +51 -56
  521. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +22 -25
  522. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +43 -27
  523. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +63 -59
  524. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +204 -121
  525. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +86 -59
  526. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +51 -62
  527. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +37 -25
  528. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +6 -0
  529. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +6 -0
  530. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64_adx.h +4 -1
  531. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +1 -1
  532. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +3 -0
  533. metadata +339 -339
  534. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb.h +0 -426
  535. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.c +0 -87
  536. data/src/core/ext/upb-gen/envoy/config/trace/v3/opencensus.upb_minitable.h +0 -32
  537. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb.h +0 -408
  538. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.c +0 -124
  539. data/src/core/ext/upb-gen/opencensus/proto/trace/v1/trace_config.upb_minitable.h +0 -38
  540. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.c +0 -108
  541. data/src/core/ext/upbdefs-gen/envoy/config/trace/v3/opencensus.upbdefs.h +0 -33
  542. data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.c +0 -67
  543. data/src/core/ext/upbdefs-gen/opencensus/proto/trace/v1/trace_config.upbdefs.h +0 -48
  544. data/src/core/util/atm.cc +0 -34
  545. data/third_party/boringssl-with-bazel/src/crypto/dilithium/dilithium.c +0 -1539
  546. data/third_party/boringssl-with-bazel/src/crypto/dilithium/internal.h +0 -58
  547. data/third_party/boringssl-with-bazel/src/crypto/spx/address.c +0 -101
  548. data/third_party/boringssl-with-bazel/src/crypto/spx/address.h +0 -50
  549. data/third_party/boringssl-with-bazel/src/crypto/spx/fors.c +0 -133
  550. data/third_party/boringssl-with-bazel/src/crypto/spx/fors.h +0 -54
  551. data/third_party/boringssl-with-bazel/src/crypto/spx/merkle.c +0 -150
  552. data/third_party/boringssl-with-bazel/src/crypto/spx/merkle.h +0 -61
  553. data/third_party/boringssl-with-bazel/src/crypto/spx/params.h +0 -71
  554. data/third_party/boringssl-with-bazel/src/crypto/spx/spx.c +0 -140
  555. data/third_party/boringssl-with-bazel/src/crypto/spx/spx_util.c +0 -53
  556. data/third_party/boringssl-with-bazel/src/crypto/spx/spx_util.h +0 -44
  557. data/third_party/boringssl-with-bazel/src/crypto/spx/thash.c +0 -136
  558. data/third_party/boringssl-with-bazel/src/crypto/spx/thash.h +0 -70
  559. data/third_party/boringssl-with-bazel/src/crypto/spx/wots.c +0 -135
  560. data/third_party/boringssl-with-bazel/src/crypto/spx/wots.h +0 -45
  561. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/dilithium.h +0 -129
  562. data/third_party/boringssl-with-bazel/src/include/openssl/experimental/spx.h +0 -90
  563. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_bool.c → a_bool.cc} +0 -0
  564. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_gentm.c → a_gentm.cc} +0 -0
  565. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_octet.c → a_octet.cc} +0 -0
  566. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_strex.c → a_strex.cc} +0 -0
  567. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_time.c → a_time.cc} +0 -0
  568. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{a_utctm.c → a_utctm.cc} +0 -0
  569. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn1_par.c → asn1_par.cc} +0 -0
  570. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{f_int.c → f_int.cc} +0 -0
  571. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{f_string.c → f_string.cc} +0 -0
  572. /data/third_party/boringssl-with-bazel/src/crypto/asn1/{tasn_typ.c → tasn_typ.cc} +0 -0
  573. /data/third_party/boringssl-with-bazel/src/crypto/bio/{errno.c → errno.cc} +0 -0
  574. /data/third_party/boringssl-with-bazel/src/crypto/bio/{fd.c → fd.cc} +0 -0
  575. /data/third_party/boringssl-with-bazel/src/crypto/bio/{hexdump.c → hexdump.cc} +0 -0
  576. /data/third_party/boringssl-with-bazel/src/crypto/bio/{socket.c → socket.cc} +0 -0
  577. /data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{cipher_extra.c → cipher_extra.cc} +0 -0
  578. /data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{derive_key.c → derive_key.cc} +0 -0
  579. /data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/{tls_cbc.c → tls_cbc.cc} +0 -0
  580. /data/third_party/boringssl-with-bazel/src/crypto/des/{des.c → des.cc} +0 -0
  581. /data/third_party/boringssl-with-bazel/src/crypto/dh_extra/{params.c → params.cc} +0 -0
  582. /data/third_party/boringssl-with-bazel/src/crypto/ecdh_extra/{ecdh_extra.c → ecdh_extra.cc} +0 -0
  583. /data/third_party/boringssl-with-bazel/src/crypto/evp/{evp_asn1.c → evp_asn1.cc} +0 -0
  584. /data/third_party/boringssl-with-bazel/src/crypto/evp/{sign.c → sign.cc} +0 -0
  585. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{aes.c.inc → aes.cc.inc} +0 -0
  586. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/{mode_wrappers.c.inc → mode_wrappers.cc.inc} +0 -0
  587. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{bytes.c.inc → bytes.cc.inc} +0 -0
  588. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{cmp.c.inc → cmp.cc.inc} +0 -0
  589. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{generic.c.inc → generic.cc.inc} +0 -0
  590. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{jacobi.c.inc → jacobi.cc.inc} +0 -0
  591. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{montgomery_inv.c.inc → montgomery_inv.cc.inc} +0 -0
  592. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{random.c.inc → random.cc.inc} +0 -0
  593. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{rsaz_exp.c.inc → rsaz_exp.cc.inc} +0 -0
  594. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/{sqrt.c.inc → sqrt.cc.inc} +0 -0
  595. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/{e_aesccm.c.inc → e_aesccm.cc.inc} +0 -0
  596. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/{check.c.inc → check.cc.inc} +0 -0
  597. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{ec_montgomery.c.inc → ec_montgomery.cc.inc} +0 -0
  598. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{simple.c.inc → simple.cc.inc} +0 -0
  599. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{cbc.c.inc → cbc.cc.inc} +0 -0
  600. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{cfb.c.inc → cfb.cc.inc} +0 -0
  601. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{ctr.c.inc → ctr.cc.inc} +0 -0
  602. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/{ofb.c.inc → ofb.cc.inc} +0 -0
  603. /data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/{kdf.c.inc → kdf.cc.inc} +0 -0
  604. /data/third_party/boringssl-with-bazel/src/crypto/obj/{obj_xref.c → obj_xref.cc} +0 -0
  605. /data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_all.c → pem_all.cc} +0 -0
  606. /data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_pk8.c → pem_pk8.cc} +0 -0
  607. /data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_pkey.c → pem_pkey.cc} +0 -0
  608. /data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_x509.c → pem_x509.cc} +0 -0
  609. /data/third_party/boringssl-with-bazel/src/crypto/pem/{pem_xaux.c → pem_xaux.cc} +0 -0
  610. /data/third_party/boringssl-with-bazel/src/crypto/rc4/{rc4.c → rc4.cc} +0 -0
  611. /data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/{rsa_print.c → rsa_print.cc} +0 -0
  612. /data/third_party/boringssl-with-bazel/src/crypto/{thread.c → thread.cc} +0 -0
  613. /data/third_party/boringssl-with-bazel/src/crypto/x509/{by_file.c → by_file.cc} +0 -0
  614. /data/third_party/boringssl-with-bazel/src/crypto/x509/{i2d_pr.c → i2d_pr.cc} +0 -0
  615. /data/third_party/boringssl-with-bazel/src/crypto/x509/{name_print.c → name_print.cc} +0 -0
  616. /data/third_party/boringssl-with-bazel/src/crypto/x509/{t_crl.c → t_crl.cc} +0 -0
  617. /data/third_party/boringssl-with-bazel/src/crypto/x509/{t_req.c → t_req.cc} +0 -0
  618. /data/third_party/boringssl-with-bazel/src/crypto/x509/{t_x509.c → t_x509.cc} +0 -0
  619. /data/third_party/boringssl-with-bazel/src/crypto/x509/{t_x509a.c → t_x509a.cc} +0 -0
  620. /data/third_party/boringssl-with-bazel/src/crypto/x509/{v3_akeya.c → v3_akeya.cc} +0 -0
  621. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509.c → x509.cc} +0 -0
  622. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_cmp.c → x509_cmp.cc} +0 -0
  623. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_d2.c → x509_d2.cc} +0 -0
  624. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_def.c → x509_def.cc} +0 -0
  625. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_ext.c → x509_ext.cc} +0 -0
  626. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_obj.c → x509_obj.cc} +0 -0
  627. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_req.c → x509_req.cc} +0 -0
  628. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_set.c → x509_set.cc} +0 -0
  629. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_trs.c → x509_trs.cc} +0 -0
  630. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509_txt.c → x509_txt.cc} +0 -0
  631. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509cset.c → x509cset.cc} +0 -0
  632. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509name.c → x509name.cc} +0 -0
  633. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x509rset.c → x509rset.cc} +0 -0
  634. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_algor.c → x_algor.cc} +0 -0
  635. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_attrib.c → x_attrib.cc} +0 -0
  636. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_exten.c → x_exten.cc} +0 -0
  637. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_req.c → x_req.cc} +0 -0
  638. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_sig.c → x_sig.cc} +0 -0
  639. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_spki.c → x_spki.cc} +0 -0
  640. /data/third_party/boringssl-with-bazel/src/crypto/x509/{x_val.c → x_val.cc} +0 -0
@@ -242,12 +242,13 @@ OPENSSL_EXPORT int SSL_is_server(const SSL *ssl);
242
242
  // SSL_is_dtls returns one if |ssl| is a DTLS connection and zero otherwise.
243
243
  OPENSSL_EXPORT int SSL_is_dtls(const SSL *ssl);
244
244
 
245
+ // SSL_is_quic returns one if |ssl| is a QUIC connection and zero otherwise.
246
+ OPENSSL_EXPORT int SSL_is_quic(const SSL *ssl);
247
+
245
248
  // SSL_set_bio configures |ssl| to read from |rbio| and write to |wbio|. |ssl|
246
249
  // takes ownership of the two |BIO|s. If |rbio| and |wbio| are the same, |ssl|
247
- // only takes ownership of one reference.
248
- //
249
- // In DTLS, |rbio| must be non-blocking to properly handle timeouts and
250
- // retransmits.
250
+ // only takes ownership of one reference. See |SSL_set0_rbio| and
251
+ // |SSL_set0_wbio| for requirements on |rbio| and |wbio|, respectively.
251
252
  //
252
253
  // If |rbio| is the same as the currently configured |BIO| for reading, that
253
254
  // side is left untouched and is not freed.
@@ -263,14 +264,19 @@ OPENSSL_EXPORT int SSL_is_dtls(const SSL *ssl);
263
264
  OPENSSL_EXPORT void SSL_set_bio(SSL *ssl, BIO *rbio, BIO *wbio);
264
265
 
265
266
  // SSL_set0_rbio configures |ssl| to read from |rbio|. It takes ownership of
266
- // |rbio|.
267
+ // |rbio|. |rbio| may be a custom |BIO|, in which case it must implement
268
+ // |BIO_read| with |BIO_meth_set_read|. In DTLS, |rbio| must be non-blocking to
269
+ // properly handle timeouts and retransmits.
267
270
  //
268
271
  // Note that, although this function and |SSL_set0_wbio| may be called on the
269
272
  // same |BIO|, each call takes a reference. Use |BIO_up_ref| to balance this.
270
273
  OPENSSL_EXPORT void SSL_set0_rbio(SSL *ssl, BIO *rbio);
271
274
 
272
275
  // SSL_set0_wbio configures |ssl| to write to |wbio|. It takes ownership of
273
- // |wbio|.
276
+ // |wbio|. |wbio| may be a custom |BIO|, in which case it must implement
277
+ // |BIO_write| with |BIO_meth_set_write|. It must additionally implement
278
+ // |BIO_flush| with |BIO_meth_set_ctrl| and |BIO_CTRL_FLUSH|. If flushing is
279
+ // unnecessary with |wbio|, |BIO_flush| should return one and do nothing.
274
280
  //
275
281
  // Note that, although this function and |SSL_set0_rbio| may be called on the
276
282
  // same |BIO|, each call takes a reference. Use |BIO_up_ref| to balance this.
@@ -329,11 +335,19 @@ OPENSSL_EXPORT int SSL_set_wfd(SSL *ssl, int fd);
329
335
  // returns <= 0. The caller should pass the value into |SSL_get_error| to
330
336
  // determine how to proceed.
331
337
  //
332
- // In DTLS, the caller must drive retransmissions. Whenever |SSL_get_error|
333
- // signals |SSL_ERROR_WANT_READ|, use |DTLSv1_get_timeout| to determine the
334
- // current timeout. If it expires before the next retry, call
335
- // |DTLSv1_handle_timeout|. Note that DTLS handshake retransmissions use fresh
336
- // sequence numbers, so it is not sufficient to replay packets at the transport.
338
+ // In DTLS, the caller must drive retransmissions and timeouts. After calling
339
+ // this function, the caller must use |DTLSv1_get_timeout| to determine the
340
+ // current timeout, if any. If it expires before the application next calls into
341
+ // |ssl|, call |DTLSv1_handle_timeout|. Note that DTLS handshake retransmissions
342
+ // use fresh sequence numbers, so it is not sufficient to replay packets at the
343
+ // transport.
344
+ //
345
+ // After the DTLS handshake, some retransmissions may remain. If |ssl| wrote
346
+ // last in the handshake, it may need to retransmit the final flight in case of
347
+ // packet loss. Additionally, in DTLS 1.3, it may need to retransmit
348
+ // post-handshake messages. To handle these, the caller must always be prepared
349
+ // to receive packets and process them with |SSL_read|, even when the
350
+ // application protocol would otherwise not read from the connection.
337
351
  //
338
352
  // TODO(davidben): Ensure 0 is only returned on transport EOF.
339
353
  // https://crbug.com/466303.
@@ -352,6 +366,12 @@ OPENSSL_EXPORT int SSL_accept(SSL *ssl);
352
366
  // returns the number of bytes read. Otherwise, it returns <= 0. The caller
353
367
  // should pass the value into |SSL_get_error| to determine how to proceed.
354
368
  //
369
+ // In DTLS 1.3, the caller must also drive timeouts from retransmitting the
370
+ // final flight of the handshake, as well as post-handshake messages. After
371
+ // calling this function, the caller must use |DTLSv1_get_timeout| to determine
372
+ // the current timeout, if any. If it expires before the application next calls
373
+ // into |ssl|, call |DTLSv1_handle_timeout|.
374
+ //
355
375
  // TODO(davidben): Ensure 0 is only returned on transport EOF.
356
376
  // https://crbug.com/466303.
357
377
  OPENSSL_EXPORT int SSL_read(SSL *ssl, void *buf, int num);
@@ -478,16 +498,12 @@ OPENSSL_EXPORT int SSL_get_error(const SSL *ssl, int ret_code);
478
498
  #define SSL_ERROR_NONE 0
479
499
 
480
500
  // SSL_ERROR_SSL indicates the operation failed within the library. The caller
481
- // may inspect the error queue for more information.
501
+ // may inspect the error queue (see |ERR_get_error|) for more information.
482
502
  #define SSL_ERROR_SSL 1
483
503
 
484
504
  // SSL_ERROR_WANT_READ indicates the operation failed attempting to read from
485
505
  // the transport. The caller may retry the operation when the transport is ready
486
506
  // for reading.
487
- //
488
- // If signaled by a DTLS handshake, the caller must also call
489
- // |DTLSv1_get_timeout| and |DTLSv1_handle_timeout| as appropriate. See
490
- // |SSL_do_handshake|.
491
507
  #define SSL_ERROR_WANT_READ 2
492
508
 
493
509
  // SSL_ERROR_WANT_WRITE indicates the operation failed attempting to write to
@@ -600,28 +616,29 @@ OPENSSL_EXPORT int SSL_set_mtu(SSL *ssl, unsigned mtu);
600
616
  // DTLSv1_set_initial_timeout_duration sets the initial duration for a DTLS
601
617
  // handshake timeout.
602
618
  //
603
- // This duration overrides the default of 1 second, which is the strong
604
- // recommendation of RFC 6347 (see section 4.2.4.1). However, there may exist
605
- // situations where a shorter timeout would be beneficial, such as for
606
- // time-sensitive applications.
619
+ // This duration overrides the default of 400 milliseconds, which is
620
+ // recommendation of RFC 9147 for real-time protocols.
607
621
  OPENSSL_EXPORT void DTLSv1_set_initial_timeout_duration(SSL *ssl,
608
- unsigned duration_ms);
622
+ uint32_t duration_ms);
609
623
 
610
- // DTLSv1_get_timeout queries the next DTLS handshake timeout. If there is a
611
- // timeout in progress, it sets |*out| to the time remaining and returns one.
612
- // Otherwise, it returns zero.
624
+ // DTLSv1_get_timeout queries the running DTLS timers. If there are any in
625
+ // progress, it sets |*out| to the time remaining until the first timer expires
626
+ // and returns one. Otherwise, it returns zero. Timers may be scheduled both
627
+ // during and after the handshake.
613
628
  //
614
629
  // When the timeout expires, call |DTLSv1_handle_timeout| to handle the
615
630
  // retransmit behavior.
616
631
  //
617
- // NOTE: This function must be queried again whenever the handshake state
618
- // machine changes, including when |DTLSv1_handle_timeout| is called.
632
+ // NOTE: This function must be queried again whenever the state machine changes,
633
+ // including when |DTLSv1_handle_timeout| is called.
619
634
  OPENSSL_EXPORT int DTLSv1_get_timeout(const SSL *ssl, struct timeval *out);
620
635
 
621
- // DTLSv1_handle_timeout is called when a DTLS handshake timeout expires. If no
622
- // timeout had expired, it returns 0. Otherwise, it retransmits the previous
623
- // flight of handshake messages and returns 1. If too many timeouts had expired
624
- // without progress or an error occurs, it returns -1.
636
+ // DTLSv1_handle_timeout is called when a DTLS timeout expires. If no timeout
637
+ // had expired, it returns 0. Otherwise, it handles the timeout and returns 1 on
638
+ // success or -1 on error.
639
+ //
640
+ // This function may write to the transport (e.g. to retransmit messages) or
641
+ // update |ssl|'s internal state and schedule an updated timer.
625
642
  //
626
643
  // The caller's external timer should be compatible with the one |ssl| queries
627
644
  // within some fudge factor. Otherwise, the call will be a no-op, but
@@ -629,12 +646,16 @@ OPENSSL_EXPORT int DTLSv1_get_timeout(const SSL *ssl, struct timeval *out);
629
646
  //
630
647
  // If the function returns -1, checking if |SSL_get_error| returns
631
648
  // |SSL_ERROR_WANT_WRITE| may be used to determine if the retransmit failed due
632
- // to a non-fatal error at the write |BIO|. However, the operation may not be
633
- // retried until the next timeout fires.
649
+ // to a non-fatal error at the write |BIO|. In this case, when the |BIO| is
650
+ // writable, the operation may be retried by calling the original function,
651
+ // |SSL_do_handshake| or |SSL_read|.
634
652
  //
635
653
  // WARNING: This function breaks the usual return value convention.
636
654
  //
637
- // TODO(davidben): This |SSL_ERROR_WANT_WRITE| behavior is kind of bizarre.
655
+ // TODO(davidben): We can make this function entirely optional by just checking
656
+ // the timers in |SSL_do_handshake| or |SSL_read|. Then timers behave like any
657
+ // other retry condition: rerun the operation and the library will make what
658
+ // progress it can.
638
659
  OPENSSL_EXPORT int DTLSv1_handle_timeout(SSL *ssl);
639
660
 
640
661
 
@@ -651,17 +672,7 @@ OPENSSL_EXPORT int DTLSv1_handle_timeout(SSL *ssl);
651
672
 
652
673
  #define DTLS1_VERSION 0xfeff
653
674
  #define DTLS1_2_VERSION 0xfefd
654
- // DTLS1_3_EXPERIMENTAL_VERSION gates experimental, in-progress code for DTLS
655
- // 1.3.
656
- //
657
- // WARNING: Do not use this value. BoringSSL's DTLS 1.3 implementation is still
658
- // under development. The code enabled by this value is neither stable nor
659
- // secure. It does not correspond to any real protocol. It is also incompatible
660
- // with other DTLS implementations, and it is not compatible with future or past
661
- // versions of BoringSSL.
662
- //
663
- // When the DTLS 1.3 implementation is complete, this symbol will be replaced.
664
- #define DTLS1_3_EXPERIMENTAL_VERSION 0xfc25
675
+ #define DTLS1_3_VERSION 0xfefc
665
676
 
666
677
  // SSL_CTX_set_min_proto_version sets the minimum protocol version for |ctx| to
667
678
  // |version|. If |version| is zero, the default minimum version is used. It
@@ -864,8 +875,9 @@ OPENSSL_EXPORT void SSL_CTX_set0_buffer_pool(SSL_CTX *ctx,
864
875
  // |SSL_CTX| and |SSL| objects maintain lists of credentials in preference
865
876
  // order. During the handshake, BoringSSL will select the first usable
866
877
  // credential from the list. Non-credential APIs, such as
867
- // |SSL_CTX_use_certificate|, configure a "default credential", which is
868
- // appended to this list if configured.
878
+ // |SSL_CTX_use_certificate|, configure a "legacy credential", which is
879
+ // appended to this list if configured. Using the legacy credential is the same
880
+ // as configuring an equivalent credential with the |SSL_CREDENTIAL| API.
869
881
  //
870
882
  // When selecting credentials, BoringSSL considers the credential's type, its
871
883
  // cryptographic capabilities, and capabilities advertised by the peer. This
@@ -969,7 +981,7 @@ OPENSSL_EXPORT int SSL_CTX_add1_credential(SSL_CTX *ctx, SSL_CREDENTIAL *cred);
969
981
  OPENSSL_EXPORT int SSL_add1_credential(SSL *ssl, SSL_CREDENTIAL *cred);
970
982
 
971
983
  // SSL_certs_clear removes all credentials configured on |ssl|. It also removes
972
- // the certificate chain and private key on the default credential.
984
+ // the certificate chain and private key on the legacy credential.
973
985
  OPENSSL_EXPORT void SSL_certs_clear(SSL *ssl);
974
986
 
975
987
  // SSL_get0_selected_credential returns the credential in use in the current
@@ -1000,8 +1012,9 @@ OPENSSL_EXPORT const SSL_CREDENTIAL *SSL_get0_selected_credential(
1000
1012
  // than return an error. Additionally, overwriting a previously-configured
1001
1013
  // certificate and key pair only works if the certificate is configured first.
1002
1014
  //
1003
- // Each of these functions configures the default credential. To select between
1004
- // multiple certificates, see |SSL_CREDENTIAL_new_x509| and related APIs.
1015
+ // Each of these functions configures the single "legacy credential" on the
1016
+ // |SSL_CTX| or |SSL|. To select between multiple certificates, use
1017
+ // |SSL_CREDENTIAL_new_x509| and other APIs to configure a list of credentials.
1005
1018
 
1006
1019
  // SSL_CTX_use_certificate sets |ctx|'s leaf certificate to |x509|. It returns
1007
1020
  // one on success and zero on failure. If |ctx| has a private key which is
@@ -1138,9 +1151,8 @@ SSL_get0_peer_verify_algorithms(const SSL *ssl, const uint16_t **out_sigalgs);
1138
1151
  // The behavior of this function is undefined except during the callbacks set by
1139
1152
  // by |SSL_CTX_set_cert_cb| and |SSL_CTX_set_client_cert_cb| or when the
1140
1153
  // handshake is paused because of them.
1141
- OPENSSL_EXPORT size_t
1142
- SSL_get0_peer_delegation_algorithms(const SSL *ssl,
1143
- const uint16_t **out_sigalgs);
1154
+ OPENSSL_EXPORT size_t SSL_get0_peer_delegation_algorithms(
1155
+ const SSL *ssl, const uint16_t **out_sigalgs);
1144
1156
 
1145
1157
  // SSL_CTX_get0_certificate returns |ctx|'s leaf certificate.
1146
1158
  OPENSSL_EXPORT X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx);
@@ -1198,8 +1210,7 @@ OPENSSL_EXPORT int SSL_CTX_set_ocsp_response(SSL_CTX *ctx,
1198
1210
  // SSL_set_ocsp_response sets the OCSP response that is sent to clients which
1199
1211
  // request it. It returns one on success and zero on error. The caller retains
1200
1212
  // ownership of |response|.
1201
- OPENSSL_EXPORT int SSL_set_ocsp_response(SSL *ssl,
1202
- const uint8_t *response,
1213
+ OPENSSL_EXPORT int SSL_set_ocsp_response(SSL *ssl, const uint8_t *response,
1203
1214
  size_t response_len);
1204
1215
 
1205
1216
  // SSL_SIGN_* are signature algorithm values as defined in TLS 1.3.
@@ -1359,8 +1370,7 @@ OPENSSL_EXPORT int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, const uint8_t *der,
1359
1370
  #define SSL_FILETYPE_ASN1 2
1360
1371
 
1361
1372
  OPENSSL_EXPORT int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx,
1362
- const char *file,
1363
- int type);
1373
+ const char *file, int type);
1364
1374
  OPENSSL_EXPORT int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file,
1365
1375
  int type);
1366
1376
 
@@ -1503,6 +1513,24 @@ OPENSSL_EXPORT void SSL_CTX_set_private_key_method(
1503
1513
  OPENSSL_EXPORT int SSL_CREDENTIAL_set_private_key_method(
1504
1514
  SSL_CREDENTIAL *cred, const SSL_PRIVATE_KEY_METHOD *key_method);
1505
1515
 
1516
+ // SSL_CREDENTIAL_set_must_match_issuer sets the flag that this credential
1517
+ // should be considered only when it matches a peer request for a particular
1518
+ // issuer via a negotiation mechanism (such as the certificate_authorities
1519
+ // extension).
1520
+ OPENSSL_EXPORT void SSL_CREDENTIAL_set_must_match_issuer(SSL_CREDENTIAL *cred);
1521
+
1522
+ // SSL_CREDENTIAL_clear_must_match_issuer clears the flag requiring issuer
1523
+ // matching, indicating this credential should be considered regardless of peer
1524
+ // issuer matching requests. (This is the default).
1525
+ OPENSSL_EXPORT void SSL_CREDENTIAL_clear_must_match_issuer(
1526
+ SSL_CREDENTIAL *cred);
1527
+
1528
+ // SSL_CREDENTIAL_must_match_issuer returns the value of the flag indicating
1529
+ // that this credential should be considered only when it matches a peer request
1530
+ // for a particular issuer via a negotiation mechanism (such as the
1531
+ // certificate_authorities extension).
1532
+ OPENSSL_EXPORT int SSL_CREDENTIAL_must_match_issuer(const SSL_CREDENTIAL *cred);
1533
+
1506
1534
  // SSL_can_release_private_key returns one if |ssl| will no longer call into the
1507
1535
  // private key and zero otherwise. If the function returns one, the caller can
1508
1536
  // release state associated with the private key.
@@ -1822,8 +1850,8 @@ OPENSSL_EXPORT STACK_OF(X509) *SSL_get_peer_full_cert_chain(const SSL *ssl);
1822
1850
  // verification. The caller does not take ownership of the result.
1823
1851
  //
1824
1852
  // This is the |CRYPTO_BUFFER| variant of |SSL_get_peer_full_cert_chain|.
1825
- OPENSSL_EXPORT const STACK_OF(CRYPTO_BUFFER) *
1826
- SSL_get0_peer_certificates(const SSL *ssl);
1853
+ OPENSSL_EXPORT const STACK_OF(CRYPTO_BUFFER) *SSL_get0_peer_certificates(
1854
+ const SSL *ssl);
1827
1855
 
1828
1856
  // SSL_get0_signed_cert_timestamp_list sets |*out| and |*out_len| to point to
1829
1857
  // |*out_len| bytes of SCT information from the server. This is only valid if
@@ -1937,8 +1965,9 @@ OPENSSL_EXPORT int SSL_SESSION_to_bytes_for_ticket(const SSL_SESSION *in,
1937
1965
 
1938
1966
  // SSL_SESSION_from_bytes parses |in_len| bytes from |in| as an SSL_SESSION. It
1939
1967
  // returns a newly-allocated |SSL_SESSION| on success or NULL on error.
1940
- OPENSSL_EXPORT SSL_SESSION *SSL_SESSION_from_bytes(
1941
- const uint8_t *in, size_t in_len, const SSL_CTX *ctx);
1968
+ OPENSSL_EXPORT SSL_SESSION *SSL_SESSION_from_bytes(const uint8_t *in,
1969
+ size_t in_len,
1970
+ const SSL_CTX *ctx);
1942
1971
 
1943
1972
  // SSL_SESSION_get_version returns a string describing the TLS or DTLS version
1944
1973
  // |session| was established at. For example, "TLSv1.2" or "DTLSv1".
@@ -2000,7 +2029,7 @@ OPENSSL_EXPORT X509 *SSL_SESSION_get0_peer(const SSL_SESSION *session);
2000
2029
  // unverified list of certificates as sent by the peer, not the final chain
2001
2030
  // built during verification. The caller does not take ownership of the result.
2002
2031
  OPENSSL_EXPORT const STACK_OF(CRYPTO_BUFFER) *
2003
- SSL_SESSION_get0_peer_certificates(const SSL_SESSION *session);
2032
+ SSL_SESSION_get0_peer_certificates(const SSL_SESSION *session);
2004
2033
 
2005
2034
  // SSL_SESSION_get0_signed_cert_timestamp_list sets |*out| and |*out_len| to
2006
2035
  // point to |*out_len| bytes of SCT information stored in |session|. This is
@@ -2188,7 +2217,7 @@ OPENSSL_EXPORT void SSL_SESSION_get0_peer_sha256(const SSL_SESSION *session,
2188
2217
  // SSL_SESS_CACHE_NO_INTERNAL, on a server, disables the internal session
2189
2218
  // cache.
2190
2219
  #define SSL_SESS_CACHE_NO_INTERNAL \
2191
- (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP | SSL_SESS_CACHE_NO_INTERNAL_STORE)
2220
+ (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP | SSL_SESS_CACHE_NO_INTERNAL_STORE)
2192
2221
 
2193
2222
  // SSL_CTX_set_session_cache_mode sets the session cache mode bits for |ctx| to
2194
2223
  // |mode|. It returns the previous value.
@@ -2433,21 +2462,22 @@ OPENSSL_EXPORT int SSL_CTX_set_tlsext_ticket_keys(SSL_CTX *ctx, const void *in,
2433
2462
  // When encrypting a new ticket, |encrypt| will be one. It writes a public
2434
2463
  // 16-byte key name to |key_name| and a fresh IV to |iv|. The output IV length
2435
2464
  // must match |EVP_CIPHER_CTX_iv_length| of the cipher selected. In this mode,
2436
- // |callback| returns 1 on success and -1 on error.
2465
+ // |callback| returns 1 on success, 0 to decline sending a ticket, and -1 on
2466
+ // error.
2437
2467
  //
2438
2468
  // When decrypting a ticket, |encrypt| will be zero. |key_name| will point to a
2439
2469
  // 16-byte key name and |iv| points to an IV. The length of the IV consumed must
2440
2470
  // match |EVP_CIPHER_CTX_iv_length| of the cipher selected. In this mode,
2441
- // |callback| returns -1 to abort the handshake, 0 if decrypting the ticket
2442
- // failed, and 1 or 2 on success. If it returns 2, the ticket will be renewed.
2443
- // This may be used to re-key the ticket.
2471
+ // |callback| returns -1 to abort the handshake, 0 if the ticket key was
2472
+ // unrecognized, and 1 or 2 on success. If it returns 2, the ticket will be
2473
+ // renewed. This may be used to re-key the ticket.
2444
2474
  //
2445
2475
  // WARNING: |callback| wildly breaks the usual return value convention and is
2446
2476
  // called in two different modes.
2447
2477
  OPENSSL_EXPORT int SSL_CTX_set_tlsext_ticket_key_cb(
2448
- SSL_CTX *ctx, int (*callback)(SSL *ssl, uint8_t *key_name, uint8_t *iv,
2449
- EVP_CIPHER_CTX *ctx, HMAC_CTX *hmac_ctx,
2450
- int encrypt));
2478
+ SSL_CTX *ctx,
2479
+ int (*callback)(SSL *ssl, uint8_t *key_name, uint8_t *iv,
2480
+ EVP_CIPHER_CTX *ctx, HMAC_CTX *hmac_ctx, int encrypt));
2451
2481
 
2452
2482
  // ssl_ticket_aead_result_t enumerates the possible results from decrypting a
2453
2483
  // ticket with an |SSL_TICKET_AEAD_METHOD|.
@@ -2477,7 +2507,8 @@ struct ssl_ticket_aead_method_st {
2477
2507
  // seal encrypts and authenticates |in_len| bytes from |in|, writes, at most,
2478
2508
  // |max_out_len| bytes to |out|, and puts the number of bytes written in
2479
2509
  // |*out_len|. The |in| and |out| buffers may be equal but will not otherwise
2480
- // alias. It returns one on success or zero on error.
2510
+ // alias. It returns one on success or zero on error. If the function returns
2511
+ // but |*out_len| is zero, BoringSSL will skip sending a ticket.
2481
2512
  int (*seal)(SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out_len,
2482
2513
  const uint8_t *in, size_t in_len);
2483
2514
 
@@ -2810,8 +2841,7 @@ OPENSSL_EXPORT int SSL_CTX_set1_param(SSL_CTX *ctx,
2810
2841
 
2811
2842
  // SSL_set1_param sets verification parameters from |param|. It returns one on
2812
2843
  // success and zero on failure. The caller retains ownership of |param|.
2813
- OPENSSL_EXPORT int SSL_set1_param(SSL *ssl,
2814
- const X509_VERIFY_PARAM *param);
2844
+ OPENSSL_EXPORT int SSL_set1_param(SSL *ssl, const X509_VERIFY_PARAM *param);
2815
2845
 
2816
2846
  // SSL_CTX_get0_param returns |ctx|'s |X509_VERIFY_PARAM| for certificate
2817
2847
  // verification. The caller must not release the returned pointer but may call
@@ -2979,6 +3009,12 @@ OPENSSL_EXPORT void SSL_CTX_set_client_CA_list(SSL_CTX *ctx,
2979
3009
  OPENSSL_EXPORT void SSL_set0_client_CAs(SSL *ssl,
2980
3010
  STACK_OF(CRYPTO_BUFFER) *name_list);
2981
3011
 
3012
+ // SSL_set0_CA_names sets |ssl|'s CA name list for the certificate authorities
3013
+ // extension to |name_list|, which should contain DER-encoded distinguished
3014
+ // names (RFC 5280). It takes ownership of |name_list|.
3015
+ OPENSSL_EXPORT void SSL_set0_CA_names(SSL *ssl,
3016
+ STACK_OF(CRYPTO_BUFFER) *name_list);
3017
+
2982
3018
  // SSL_CTX_set0_client_CAs sets |ctx|'s client certificate CA list to
2983
3019
  // |name_list|, which should contain DER-encoded distinguished names (RFC 5280).
2984
3020
  // It takes ownership of |name_list|.
@@ -3002,12 +3038,12 @@ OPENSSL_EXPORT STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *ssl);
3002
3038
  //
3003
3039
  // The returned stack is owned by |ssl|, as are its contents. It should not be
3004
3040
  // used past the point where the handshake is restarted after the callback.
3005
- OPENSSL_EXPORT const STACK_OF(CRYPTO_BUFFER) *
3006
- SSL_get0_server_requested_CAs(const SSL *ssl);
3041
+ OPENSSL_EXPORT const STACK_OF(CRYPTO_BUFFER) *SSL_get0_server_requested_CAs(
3042
+ const SSL *ssl);
3007
3043
 
3008
3044
  // SSL_CTX_get_client_CA_list returns |ctx|'s client certificate CA list.
3009
- OPENSSL_EXPORT STACK_OF(X509_NAME) *
3010
- SSL_CTX_get_client_CA_list(const SSL_CTX *ctx);
3045
+ OPENSSL_EXPORT STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(
3046
+ const SSL_CTX *ctx);
3011
3047
 
3012
3048
  // SSL_add_client_CA appends |x509|'s subject to the client certificate CA list.
3013
3049
  // It returns one on success or zero on error. The caller retains ownership of
@@ -3162,8 +3198,9 @@ OPENSSL_EXPORT int SSL_set_alpn_protos(SSL *ssl, const uint8_t *protos,
3162
3198
  // |SSL_get_pending_cipher| to query the cipher suite. This may be used to
3163
3199
  // implement HTTP/2's cipher suite constraints.
3164
3200
  OPENSSL_EXPORT void SSL_CTX_set_alpn_select_cb(
3165
- SSL_CTX *ctx, int (*cb)(SSL *ssl, const uint8_t **out, uint8_t *out_len,
3166
- const uint8_t *in, unsigned in_len, void *arg),
3201
+ SSL_CTX *ctx,
3202
+ int (*cb)(SSL *ssl, const uint8_t **out, uint8_t *out_len,
3203
+ const uint8_t *in, unsigned in_len, void *arg),
3167
3204
  void *arg);
3168
3205
 
3169
3206
  // SSL_get0_alpn_selected gets the selected ALPN protocol (if any) from |ssl|.
@@ -3328,8 +3365,9 @@ OPENSSL_EXPORT void SSL_CTX_set_next_protos_advertised_cb(
3328
3365
  // the client to offer NPN in the ClientHello. Callers thus should not configure
3329
3366
  // this callback in TLS client contexts that are not intended to use NPN.
3330
3367
  OPENSSL_EXPORT void SSL_CTX_set_next_proto_select_cb(
3331
- SSL_CTX *ctx, int (*cb)(SSL *ssl, uint8_t **out, uint8_t *out_len,
3332
- const uint8_t *in, unsigned in_len, void *arg),
3368
+ SSL_CTX *ctx,
3369
+ int (*cb)(SSL *ssl, uint8_t **out, uint8_t *out_len, const uint8_t *in,
3370
+ unsigned in_len, void *arg),
3333
3371
  void *arg);
3334
3372
 
3335
3373
  // SSL_get0_next_proto_negotiated sets |*out_data| and |*out_len| to point to
@@ -3445,10 +3483,10 @@ DEFINE_CONST_STACK_OF(SRTP_PROTECTION_PROFILE)
3445
3483
  #define SRTP_AES128_CM_SHA1_32 0x0002
3446
3484
  #define SRTP_AES128_F8_SHA1_80 0x0003
3447
3485
  #define SRTP_AES128_F8_SHA1_32 0x0004
3448
- #define SRTP_NULL_SHA1_80 0x0005
3449
- #define SRTP_NULL_SHA1_32 0x0006
3450
- #define SRTP_AEAD_AES_128_GCM 0x0007
3451
- #define SRTP_AEAD_AES_256_GCM 0x0008
3486
+ #define SRTP_NULL_SHA1_80 0x0005
3487
+ #define SRTP_NULL_SHA1_32 0x0006
3488
+ #define SRTP_AEAD_AES_128_GCM 0x0007
3489
+ #define SRTP_AEAD_AES_256_GCM 0x0008
3452
3490
 
3453
3491
  // SSL_CTX_set_srtp_profiles enables SRTP for all SSL objects created from
3454
3492
  // |ctx|. |profile| contains a colon-separated list of profile names. It returns
@@ -4393,18 +4431,18 @@ OPENSSL_EXPORT int SSL_set_handshake_hints(SSL *ssl, const uint8_t *hints,
4393
4431
 
4394
4432
  // SSL_CTX_set_msg_callback installs |cb| as the message callback for |ctx|.
4395
4433
  // This callback will be called when sending or receiving low-level record
4396
- // headers, complete handshake messages, ChangeCipherSpec, and alerts.
4397
- // |write_p| is one for outgoing messages and zero for incoming messages.
4434
+ // headers, complete handshake messages, ChangeCipherSpec, alerts, and DTLS
4435
+ // ACKs. |write_p| is one for outgoing messages and zero for incoming messages.
4398
4436
  //
4399
4437
  // For each record header, |cb| is called with |version| = 0 and |content_type|
4400
4438
  // = |SSL3_RT_HEADER|. The |len| bytes from |buf| contain the header. Note that
4401
4439
  // this does not include the record body. If the record is sealed, the length
4402
4440
  // in the header is the length of the ciphertext.
4403
4441
  //
4404
- // For each handshake message, ChangeCipherSpec, and alert, |version| is the
4405
- // protocol version and |content_type| is the corresponding record type. The
4406
- // |len| bytes from |buf| contain the handshake message, one-byte
4407
- // ChangeCipherSpec body, and two-byte alert, respectively.
4442
+ // For each handshake message, ChangeCipherSpec, alert, and DTLS ACK, |version|
4443
+ // is the protocol version and |content_type| is the corresponding record type.
4444
+ // The |len| bytes from |buf| contain the handshake message, one-byte
4445
+ // ChangeCipherSpec body, two-byte alert, and ACK respectively.
4408
4446
  //
4409
4447
  // In connections that enable ECH, |cb| is additionally called with
4410
4448
  // |content_type| = |SSL3_RT_CLIENT_HELLO_INNER| for each ClientHelloInner that
@@ -4609,6 +4647,8 @@ struct ssl_early_callback_ctx {
4609
4647
  size_t random_len;
4610
4648
  const uint8_t *session_id;
4611
4649
  size_t session_id_len;
4650
+ const uint8_t *dtls_cookie;
4651
+ size_t dtls_cookie_len;
4612
4652
  const uint8_t *cipher_suites;
4613
4653
  size_t cipher_suites_len;
4614
4654
  const uint8_t *compression_methods;
@@ -4761,8 +4801,9 @@ OPENSSL_EXPORT int SSL_was_key_usage_invalid(const SSL *ssl);
4761
4801
  // a server (respectively, client) handshake completes, fails, or is paused.
4762
4802
  // The |value| argument is one if the handshake succeeded and <= 0
4763
4803
  // otherwise.
4764
- OPENSSL_EXPORT void SSL_CTX_set_info_callback(
4765
- SSL_CTX *ctx, void (*cb)(const SSL *ssl, int type, int value));
4804
+ OPENSSL_EXPORT void SSL_CTX_set_info_callback(SSL_CTX *ctx,
4805
+ void (*cb)(const SSL *ssl,
4806
+ int type, int value));
4766
4807
 
4767
4808
  // SSL_CTX_get_info_callback returns the callback set by
4768
4809
  // |SSL_CTX_set_info_callback|.
@@ -4772,8 +4813,9 @@ OPENSSL_EXPORT void (*SSL_CTX_get_info_callback(SSL_CTX *ctx))(const SSL *ssl,
4772
4813
 
4773
4814
  // SSL_set_info_callback configures a callback to be run at various events
4774
4815
  // during a connection's lifetime. See |SSL_CTX_set_info_callback|.
4775
- OPENSSL_EXPORT void SSL_set_info_callback(
4776
- SSL *ssl, void (*cb)(const SSL *ssl, int type, int value));
4816
+ OPENSSL_EXPORT void SSL_set_info_callback(SSL *ssl,
4817
+ void (*cb)(const SSL *ssl, int type,
4818
+ int value));
4777
4819
 
4778
4820
  // SSL_get_info_callback returns the callback set by |SSL_set_info_callback|.
4779
4821
  OPENSSL_EXPORT void (*SSL_get_info_callback(const SSL *ssl))(const SSL *ssl,
@@ -5178,16 +5220,16 @@ OPENSSL_EXPORT int SSL_set1_sigalgs_list(SSL *ssl, const char *str);
5178
5220
 
5179
5221
  #define SSL_get_cipher(ssl) SSL_CIPHER_get_name(SSL_get_current_cipher(ssl))
5180
5222
  #define SSL_get_cipher_bits(ssl, out_alg_bits) \
5181
- SSL_CIPHER_get_bits(SSL_get_current_cipher(ssl), out_alg_bits)
5223
+ SSL_CIPHER_get_bits(SSL_get_current_cipher(ssl), out_alg_bits)
5182
5224
  #define SSL_get_cipher_version(ssl) \
5183
- SSL_CIPHER_get_version(SSL_get_current_cipher(ssl))
5225
+ SSL_CIPHER_get_version(SSL_get_current_cipher(ssl))
5184
5226
  #define SSL_get_cipher_name(ssl) \
5185
- SSL_CIPHER_get_name(SSL_get_current_cipher(ssl))
5227
+ SSL_CIPHER_get_name(SSL_get_current_cipher(ssl))
5186
5228
  #define SSL_get_time(session) SSL_SESSION_get_time(session)
5187
5229
  #define SSL_set_time(session, time) SSL_SESSION_set_time((session), (time))
5188
5230
  #define SSL_get_timeout(session) SSL_SESSION_get_timeout(session)
5189
5231
  #define SSL_set_timeout(session, timeout) \
5190
- SSL_SESSION_set_timeout((session), (timeout))
5232
+ SSL_SESSION_set_timeout((session), (timeout))
5191
5233
 
5192
5234
  struct ssl_comp_st {
5193
5235
  int id;
@@ -5288,19 +5330,19 @@ OPENSSL_EXPORT int SSL_want(const SSL *ssl);
5288
5330
  #define SSL_want_read(ssl) (SSL_want(ssl) == SSL_READING)
5289
5331
  #define SSL_want_write(ssl) (SSL_want(ssl) == SSL_WRITING)
5290
5332
 
5291
- // SSL_get_finished writes up to |count| bytes of the Finished message sent by
5292
- // |ssl| to |buf|. It returns the total untruncated length or zero if none has
5293
- // been sent yet. At TLS 1.3 and later, it returns zero.
5294
- //
5295
- // Use |SSL_get_tls_unique| instead.
5333
+ // SSL_get_finished writes up to |count| bytes of the Finished message sent by
5334
+ // |ssl| to |buf|. It returns the total untruncated length or zero if none has
5335
+ // been sent yet. At TLS 1.3 and later, it returns zero.
5336
+ //
5337
+ // Use |SSL_get_tls_unique| instead.
5296
5338
  OPENSSL_EXPORT size_t SSL_get_finished(const SSL *ssl, void *buf, size_t count);
5297
5339
 
5298
- // SSL_get_peer_finished writes up to |count| bytes of the Finished message
5299
- // received from |ssl|'s peer to |buf|. It returns the total untruncated length
5300
- // or zero if none has been received yet. At TLS 1.3 and later, it returns
5301
- // zero.
5302
- //
5303
- // Use |SSL_get_tls_unique| instead.
5340
+ // SSL_get_peer_finished writes up to |count| bytes of the Finished message
5341
+ // received from |ssl|'s peer to |buf|. It returns the total untruncated length
5342
+ // or zero if none has been received yet. At TLS 1.3 and later, it returns
5343
+ // zero.
5344
+ //
5345
+ // Use |SSL_get_tls_unique| instead.
5304
5346
  OPENSSL_EXPORT size_t SSL_get_peer_finished(const SSL *ssl, void *buf,
5305
5347
  size_t count);
5306
5348
 
@@ -5776,7 +5818,7 @@ OPENSSL_EXPORT int SSL_set_compliance_policy(
5776
5818
  #define SSL_CTX_set_session_cache_mode SSL_CTX_set_session_cache_mode
5777
5819
  #define SSL_CTX_set_tlsext_servername_arg SSL_CTX_set_tlsext_servername_arg
5778
5820
  #define SSL_CTX_set_tlsext_servername_callback \
5779
- SSL_CTX_set_tlsext_servername_callback
5821
+ SSL_CTX_set_tlsext_servername_callback
5780
5822
  #define SSL_CTX_set_tlsext_ticket_key_cb SSL_CTX_set_tlsext_ticket_key_cb
5781
5823
  #define SSL_CTX_set_tlsext_ticket_keys SSL_CTX_set_tlsext_ticket_keys
5782
5824
  #define SSL_CTX_set_tmp_dh SSL_CTX_set_tmp_dh
@@ -5794,7 +5836,7 @@ OPENSSL_EXPORT int SSL_set_compliance_policy(
5794
5836
  #define SSL_get_negotiated_group SSL_get_negotiated_group
5795
5837
  #define SSL_get_options SSL_get_options
5796
5838
  #define SSL_get_secure_renegotiation_support \
5797
- SSL_get_secure_renegotiation_support
5839
+ SSL_get_secure_renegotiation_support
5798
5840
  #define SSL_need_tmp_RSA SSL_need_tmp_RSA
5799
5841
  #define SSL_num_renegotiations SSL_num_renegotiations
5800
5842
  #define SSL_session_reused SSL_session_reused
@@ -5814,7 +5856,7 @@ OPENSSL_EXPORT int SSL_set_compliance_policy(
5814
5856
  #define SSL_set_tmp_rsa SSL_set_tmp_rsa
5815
5857
  #define SSL_total_renegotiations SSL_total_renegotiations
5816
5858
 
5817
- #endif // !defined(BORINGSSL_PREFIX)
5859
+ #endif // !defined(BORINGSSL_PREFIX)
5818
5860
 
5819
5861
 
5820
5862
  #if defined(__cplusplus)
@@ -5894,9 +5936,12 @@ OPENSSL_EXPORT bool SSL_serialize_handback(const SSL *ssl, CBB *out);
5894
5936
  OPENSSL_EXPORT bool SSL_apply_handback(SSL *ssl, Span<const uint8_t> handback);
5895
5937
 
5896
5938
  // SSL_get_traffic_secrets sets |*out_read_traffic_secret| and
5897
- // |*out_write_traffic_secret| to reference the TLS 1.3 traffic secrets for
5898
- // |ssl|. This function is only valid on TLS 1.3 connections that have
5899
- // completed the handshake. It returns true on success and false on error.
5939
+ // |*out_write_traffic_secret| to reference the current TLS 1.3 traffic secrets
5940
+ // for |ssl|. It returns true on success and false on error.
5941
+ //
5942
+ // This function is only valid on TLS 1.3 connections that have completed the
5943
+ // handshake. It is not valid for QUIC or DTLS, where multiple traffic secrets
5944
+ // may be active at a time.
5900
5945
  OPENSSL_EXPORT bool SSL_get_traffic_secrets(
5901
5946
  const SSL *ssl, Span<const uint8_t> *out_read_traffic_secret,
5902
5947
  Span<const uint8_t> *out_write_traffic_secret);
@@ -6101,7 +6146,6 @@ BSSL_NAMESPACE_END
6101
6146
  #define SSL_R_WRONG_VERSION_ON_EARLY_DATA 278
6102
6147
  #define SSL_R_UNEXPECTED_EXTENSION_ON_EARLY_DATA 279
6103
6148
  #define SSL_R_NO_SUPPORTED_VERSIONS_ENABLED 280
6104
- #define SSL_R_APPLICATION_DATA_INSTEAD_OF_HANDSHAKE 281
6105
6149
  #define SSL_R_EMPTY_HELLO_RETRY_REQUEST 282
6106
6150
  #define SSL_R_EARLY_DATA_NOT_IN_USE 283
6107
6151
  #define SSL_R_HANDSHAKE_NOT_COMPLETE 284
@@ -266,6 +266,7 @@ extern "C" {
266
266
  #define SSL3_RT_ALERT 21
267
267
  #define SSL3_RT_HANDSHAKE 22
268
268
  #define SSL3_RT_APPLICATION_DATA 23
269
+ #define SSL3_RT_ACK 26
269
270
 
270
271
  // Pseudo content type for SSL/TLS header info
271
272
  #define SSL3_RT_HEADER 0x100
@@ -1,4 +1,4 @@
1
- /* Copyright (c) 2023, Google Inc.
1
+ /* Copyright 2023 The BoringSSL Authors
2
2
  *
3
3
  * Permission to use, copy, modify, and/or distribute this software for any
4
4
  * purpose with or without fee is hereby granted, provided that the above
@@ -79,8 +79,8 @@ typedef uint32_t CRYPTO_refcount_t;
79
79
  // Deprecated functions.
80
80
  //
81
81
  // Historically, OpenSSL required callers to provide locking callbacks.
82
- // BoringSSL is thread-safe by default, but some old code calls these functions
83
- // and so no-op implementations are provided.
82
+ // BoringSSL does not use external callbacks for locking, but some old code
83
+ // calls these functions and so no-op implementations are provided.
84
84
 
85
85
  // These defines do nothing but are provided to make old code easier to
86
86
  // compile.
@@ -1,4 +1,4 @@
1
- /* Copyright (c) 2024, Google Inc.
1
+ /* Copyright 2024 The BoringSSL Authors
2
2
  *
3
3
  * Permission to use, copy, modify, and/or distribute this software for any
4
4
  * purpose with or without fee is hereby granted, provided that the above
@@ -1,4 +1,4 @@
1
- /* Copyright (c) 2020, Google Inc.
1
+ /* Copyright 2020 The BoringSSL Authors
2
2
  *
3
3
  * Permission to use, copy, modify, and/or distribute this software for any
4
4
  * purpose with or without fee is hereby granted, provided that the above
@@ -1,4 +1,4 @@
1
- /* Copyright (c) 2021, Google Inc.
1
+ /* Copyright 2021 The BoringSSL Authors
2
2
  *
3
3
  * Permission to use, copy, modify, and/or distribute this software for any
4
4
  * purpose with or without fee is hereby granted, provided that the above
@@ -1,4 +1,4 @@
1
- /* Copyright (c) 2023, Google Inc.
1
+ /* Copyright 2023 The BoringSSL Authors
2
2
  *
3
3
  * Permission to use, copy, modify, and/or distribute this software for any
4
4
  * purpose with or without fee is hereby granted, provided that the above
@@ -1,5 +1,5 @@
1
- /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
2
- * project 1999. */
1
+ /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project
2
+ * 1999. */
3
3
  /* ====================================================================
4
4
  * Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved.
5
5
  *