grpc 1.84.0 → 1.85.0.pre1

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 (1004) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +40 -27
  3. data/include/grpc/event_engine/memory_allocator.h +1 -0
  4. data/include/grpc/grpc.h +3 -0
  5. data/include/grpc/grpc_security_constants.h +2 -0
  6. data/include/grpc/impl/channel_arg_names.h +4 -0
  7. data/src/core/call/call_filters.h +10 -10
  8. data/src/core/{lib/security/authorization → call}/evaluate_args.cc +22 -1
  9. data/src/core/{lib/security/authorization → call}/evaluate_args.h +19 -5
  10. data/src/core/call/filter_fusion.h +15 -15
  11. data/src/core/call/interception_chain.h +3 -3
  12. data/src/core/call/metadata_batch.cc +1 -0
  13. data/src/core/call/metadata_batch.h +45 -33
  14. data/src/core/call/parsed_metadata.h +3 -3
  15. data/src/core/call/request_buffer.cc +6 -6
  16. data/src/core/call/request_buffer.h +1 -1
  17. data/src/core/channelz/channel_trace.cc +5 -5
  18. data/src/core/channelz/channel_trace.h +1 -1
  19. data/src/core/channelz/channelz.cc +9 -9
  20. data/src/core/channelz/channelz.h +12 -12
  21. data/src/core/channelz/channelz_registry.cc +10 -10
  22. data/src/core/channelz/ztrace_collector.h +5 -5
  23. data/src/core/client_channel/client_channel.cc +4 -4
  24. data/src/core/client_channel/client_channel_filter.cc +14 -14
  25. data/src/core/client_channel/global_subchannel_pool.cc +4 -4
  26. data/src/core/client_channel/subchannel.cc +24 -23
  27. data/src/core/client_channel/subchannel_stream_client.cc +5 -5
  28. data/src/core/credentials/call/external/aws_external_account_credentials.cc +7 -7
  29. data/src/core/credentials/call/external/aws_request_signer.cc +16 -0
  30. data/src/core/credentials/call/external/external_account_credentials.cc +4 -4
  31. data/src/core/credentials/call/regional_access_boundary_fetcher.cc +9 -9
  32. data/src/core/credentials/call/token_fetcher/token_fetcher_credentials.cc +4 -4
  33. data/src/core/credentials/transport/google_default/google_default_credentials.cc +3 -3
  34. data/src/core/credentials/transport/ssl/ssl_security_connector.cc +1 -1
  35. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.cc +9 -9
  36. data/src/core/credentials/transport/tls/grpc_tls_certificate_distributor.h +1 -1
  37. data/src/core/credentials/transport/tls/grpc_tls_certificate_provider.cc +6 -6
  38. data/src/core/credentials/transport/tls/grpc_tls_certificate_verifier.cc +3 -3
  39. data/src/core/credentials/transport/tls/grpc_tls_crl_provider.cc +4 -4
  40. data/src/core/credentials/transport/tls/ssl_utils.cc +10 -0
  41. data/src/core/credentials/transport/tls/tls_security_connector.cc +10 -10
  42. data/src/core/credentials/transport/tls/tls_security_connector.h +6 -6
  43. data/src/core/credentials/transport/tls/tls_utils.h +9 -0
  44. data/src/core/ext/filters/channel_idle/legacy_channel_idle_filter.cc +1 -1
  45. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +1 -1
  46. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.cc +2 -2
  47. data/src/core/ext/filters/gcp_authentication/gcp_authentication_filter.h +1 -1
  48. data/src/core/ext/filters/http/message_compress/compression_filter.cc +15 -0
  49. data/src/core/ext/filters/rbac/rbac_filter.h +1 -1
  50. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +5 -5
  51. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +30 -21
  52. data/src/core/ext/transport/chttp2/server/chttp2_server.h +5 -11
  53. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +14 -11
  54. data/src/core/ext/transport/chttp2/transport/flow_control.cc +1 -0
  55. data/src/core/ext/transport/chttp2/transport/flow_control.h +0 -4
  56. data/src/core/ext/transport/chttp2/transport/frame.h +9 -0
  57. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +12 -9
  58. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +4 -2
  59. data/src/core/ext/transport/chttp2/transport/http2_client_transport.cc +16 -18
  60. data/src/core/ext/transport/chttp2/transport/http2_client_transport.h +2 -1
  61. data/src/core/ext/transport/chttp2/transport/http2_server_transport.cc +277 -189
  62. data/src/core/ext/transport/chttp2/transport/http2_server_transport.h +40 -17
  63. data/src/core/ext/transport/chttp2/transport/http2_transport.cc +12 -24
  64. data/src/core/ext/transport/chttp2/transport/http2_transport.h +3 -29
  65. data/src/core/ext/transport/chttp2/transport/internal.h +2 -2
  66. data/src/core/ext/transport/chttp2/transport/parsing.cc +3 -2
  67. data/src/core/ext/transport/chttp2/transport/read_context.h +96 -3
  68. data/src/core/ext/transport/chttp2/transport/reclaimer.cc +32 -0
  69. data/src/core/ext/transport/chttp2/transport/reclaimer.h +64 -0
  70. data/src/core/ext/transport/chttp2/transport/security_frame.h +8 -8
  71. data/src/core/ext/transport/chttp2/transport/stream_data_queue.h +17 -9
  72. data/src/core/ext/transport/chttp2/transport/write_cycle.h +23 -3
  73. data/src/core/ext/transport/inproc/inproc_transport.cc +5 -5
  74. data/src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb.h +137 -73
  75. data/src/core/ext/upb-gen/grpc/channelz/v1/channelz.upb_minitable.c +45 -25
  76. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb.h +6 -6
  77. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb_minitable.c +4 -4
  78. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/altscontext.upb_minitable.h +5 -5
  79. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb.h +46 -26
  80. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb_minitable.c +17 -14
  81. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/handshaker.upb_minitable.h +5 -5
  82. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb.h +5 -5
  83. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb_minitable.c +3 -3
  84. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/gcp/transport_security_common.upb_minitable.h +5 -5
  85. data/src/core/ext/upb-gen/grpc/health/v1/health.upb.h +329 -0
  86. data/src/core/ext/upb-gen/grpc/health/v1/health.upb_minitable.c +128 -0
  87. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/health/v1/health.upb_minitable.h +8 -5
  88. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb.h +5 -5
  89. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb_minitable.c +3 -3
  90. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lb/v1/load_balancer.upb_minitable.h +5 -5
  91. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb.h +185 -23
  92. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb_minitable.c +20 -12
  93. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls.upb_minitable.h +5 -5
  94. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb.h +58 -42
  95. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb_minitable.c +17 -12
  96. data/src/core/ext/upb-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upb_minitable.h +5 -5
  97. data/src/core/ext/upbdefs-gen/grpc/channelz/v1/channelz.upbdefs.c +567 -549
  98. data/src/core/ext/upbdefs-gen/grpc/lookup/v1/rls_config.upbdefs.c +182 -0
  99. data/src/core/ext/upbdefs-gen/{src/proto/grpc → grpc}/lookup/v1/rls_config.upbdefs.h +14 -14
  100. data/src/core/filter/ext_proc/ext_proc_filter.cc +1603 -46
  101. data/src/core/filter/ext_proc/ext_proc_filter.h +55 -22
  102. data/src/core/filter/ext_proc/ext_proc_messages.cc +106 -51
  103. data/src/core/filter/ext_proc/ext_proc_messages.h +36 -9
  104. data/src/core/handshaker/handshaker.cc +4 -4
  105. data/src/core/handshaker/http_connect/http_connect_client_handshaker.cc +3 -3
  106. data/src/core/handshaker/security/pipelined_secure_endpoint.cc +10 -10
  107. data/src/core/handshaker/security/secure_endpoint.cc +13 -13
  108. data/src/core/handshaker/security/security_handshaker.cc +6 -6
  109. data/src/core/handshaker/tcp_connect/tcp_connect_handshaker.cc +4 -4
  110. data/src/core/lib/channel/channel_args.cc +20 -0
  111. data/src/core/lib/channel/channel_args.h +17 -17
  112. data/src/core/lib/channel/promise_based_filter.cc +2 -2
  113. data/src/core/lib/channel/promise_based_filter.h +66 -27
  114. data/src/core/lib/debug/trace_flags.cc +2 -0
  115. data/src/core/lib/debug/trace_flags.h +1 -0
  116. data/src/core/lib/event_engine/ares_resolver.cc +14 -14
  117. data/src/core/lib/event_engine/cf_engine/cf_engine.cc +7 -7
  118. data/src/core/lib/event_engine/cf_engine/cfsocket_listener.cc +4 -4
  119. data/src/core/lib/event_engine/default_event_engine.cc +5 -5
  120. data/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc +9 -9
  121. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +16 -14
  122. data/src/core/lib/event_engine/posix_engine/file_descriptor_collection.cc +6 -6
  123. data/src/core/lib/event_engine/posix_engine/grpc_polled_fd_posix.h +3 -3
  124. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +1 -1
  125. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +7 -7
  126. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +17 -17
  127. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +3 -3
  128. data/src/core/lib/event_engine/posix_engine/timer.cc +5 -5
  129. data/src/core/lib/event_engine/posix_engine/timer_manager.cc +5 -5
  130. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.cc +3 -3
  131. data/src/core/lib/event_engine/posix_engine/traced_buffer_list.h +1 -1
  132. data/src/core/lib/event_engine/thread_pool/thread_count.cc +1 -1
  133. data/src/core/lib/event_engine/thread_pool/thread_count.h +3 -3
  134. data/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc +50 -21
  135. data/src/core/lib/event_engine/thready_event_engine/thready_event_engine.cc +3 -3
  136. data/src/core/lib/event_engine/windows/grpc_polled_fd_windows.cc +3 -3
  137. data/src/core/lib/event_engine/windows/windows_engine.cc +15 -15
  138. data/src/core/lib/event_engine/windows/windows_listener.cc +6 -6
  139. data/src/core/lib/event_engine/work_queue/basic_work_queue.cc +6 -6
  140. data/src/core/lib/experiments/experiments.cc +48 -0
  141. data/src/core/lib/experiments/experiments.h +24 -0
  142. data/src/core/lib/iomgr/buffer_list.cc +3 -3
  143. data/src/core/lib/iomgr/buffer_list.h +1 -1
  144. data/src/core/lib/iomgr/combiner.cc +0 -1
  145. data/src/core/lib/iomgr/ev_apple.cc +4 -4
  146. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +2 -2
  147. data/src/core/lib/iomgr/tcp_client_posix.cc +3 -3
  148. data/src/core/lib/iomgr/tcp_posix.cc +7 -7
  149. data/src/core/lib/promise/activity.cc +1 -1
  150. data/src/core/lib/promise/activity.h +1 -1
  151. data/src/core/lib/promise/arena_promise.h +7 -7
  152. data/src/core/lib/promise/detail/promise_factory.h +8 -8
  153. data/src/core/lib/promise/detail/promise_like.h +4 -4
  154. data/src/core/lib/promise/inter_activity_latch.h +6 -6
  155. data/src/core/lib/promise/inter_activity_pipe.h +1 -1
  156. data/src/core/lib/promise/observable.h +3 -3
  157. data/src/core/lib/promise/party.cc +1 -1
  158. data/src/core/lib/promise/try_seq.h +2 -2
  159. data/src/core/lib/resource_quota/arena.h +3 -3
  160. data/src/core/lib/resource_quota/memory_quota.cc +16 -16
  161. data/src/core/lib/resource_quota/memory_quota.h +1 -1
  162. data/src/core/lib/resource_quota/thread_quota.cc +3 -3
  163. data/src/core/lib/security/authorization/audit_logging.cc +5 -5
  164. data/src/core/lib/security/authorization/authorization_engine.h +1 -1
  165. data/src/core/lib/security/authorization/grpc_authorization_engine.h +1 -1
  166. data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +1 -1
  167. data/src/core/lib/security/authorization/grpc_server_authz_filter.h +1 -1
  168. data/src/core/lib/security/authorization/matchers.h +1 -1
  169. data/src/core/lib/surface/call.cc +8 -7
  170. data/src/core/lib/surface/call.h +3 -3
  171. data/src/core/lib/surface/call_utils.h +4 -0
  172. data/src/core/lib/surface/channel.cc +1 -1
  173. data/src/core/lib/surface/channel.h +1 -1
  174. data/src/core/lib/surface/channel_init.cc +1 -1
  175. data/src/core/lib/surface/init.cc +7 -7
  176. data/src/core/lib/surface/lame_client.cc +1 -1
  177. data/src/core/lib/surface/legacy_channel.cc +2 -2
  178. data/src/core/lib/surface/version.cc +1 -1
  179. data/src/core/lib/transport/transport_framing_endpoint_extension.h +3 -3
  180. data/src/core/load_balancing/autosharding/autosharding.cc +931 -0
  181. data/src/core/load_balancing/autosharding/autosharding.h +78 -0
  182. data/src/core/load_balancing/grpclb/grpclb_client_stats.cc +2 -2
  183. data/src/core/load_balancing/grpclb/load_balancer_api.cc +1 -1
  184. data/src/core/load_balancing/grpclb/load_balancer_api.h +3 -1
  185. data/src/core/load_balancing/health_check_client.cc +7 -7
  186. data/src/core/load_balancing/lb_policy.cc +1 -1
  187. data/src/core/load_balancing/oob_backend_metric.cc +5 -5
  188. data/src/core/load_balancing/outlier_detection/outlier_detection.cc +2 -2
  189. data/src/core/load_balancing/ring_hash/ring_hash.cc +109 -37
  190. data/src/core/load_balancing/rls/rls.cc +23 -17
  191. data/src/core/load_balancing/weighted_round_robin/weighted_round_robin.cc +10 -10
  192. data/src/core/load_balancing/xds/cds.cc +6 -5
  193. data/src/core/load_balancing/xds/xds_cluster_impl.cc +2 -2
  194. data/src/core/load_balancing/xds/xds_override_host.cc +10 -10
  195. data/src/core/mitigation_engine/mitigation_engine.h +28 -4
  196. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -0
  197. data/src/core/resolver/dns/dns_resolver.cc +7 -7
  198. data/src/core/resolver/fake/fake_resolver.cc +5 -5
  199. data/src/core/resolver/google_c2p/google_c2p_resolver.cc +38 -30
  200. data/src/core/server/server.cc +30 -30
  201. data/src/core/server/server.h +4 -3
  202. data/src/core/server/server_config_selector_filter.cc +3 -3
  203. data/src/core/server/xds_server_config_fetcher_legacy.cc +15 -15
  204. data/src/core/telemetry/default_tcp_tracer.cc +1 -1
  205. data/src/core/telemetry/instrument.cc +30 -16
  206. data/src/core/telemetry/instrument.h +3 -3
  207. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +3 -3
  208. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +4 -4
  209. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +2 -2
  210. data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
  211. data/src/core/tsi/alts/handshaker/transport_security_common_api.h +1 -1
  212. data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +5 -5
  213. data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +3 -3
  214. data/src/core/tsi/ssl_transport_security.cc +46 -13
  215. data/src/core/tsi/ssl_transport_security.h +7 -0
  216. data/src/core/tsi/ssl_transport_security_utils.cc +16 -6
  217. data/src/core/util/event_log.cc +3 -3
  218. data/src/core/util/http_client/httpcli.cc +5 -5
  219. data/src/core/util/http_client/httpcli.h +1 -1
  220. data/src/core/util/json/json_object_loader.cc +7 -0
  221. data/src/core/util/json/json_object_loader.h +17 -2
  222. data/src/core/util/latent_see.cc +123 -36
  223. data/src/core/util/latent_see.h +14 -1
  224. data/src/core/util/mpscq.cc +1 -1
  225. data/src/core/util/notification.h +4 -4
  226. data/src/core/util/sync.h +20 -6
  227. data/src/core/util/table.h +20 -22
  228. data/src/core/util/work_serializer.cc +2 -2
  229. data/src/core/xds/grpc/blackboard.cc +4 -3
  230. data/src/core/xds/grpc/certificate_provider_store.cc +2 -2
  231. data/src/core/xds/grpc/streaming_call_promise_wrapper.cc +181 -0
  232. data/src/core/xds/grpc/streaming_call_promise_wrapper.h +213 -0
  233. data/src/core/xds/grpc/xds_bootstrap_grpc_builder.cc +2 -2
  234. data/src/core/xds/grpc/xds_client_grpc.cc +8 -8
  235. data/src/core/xds/grpc/xds_cluster_specifier_plugin.cc +2 -2
  236. data/src/core/xds/grpc/xds_endpoint.cc +1 -1
  237. data/src/core/xds/grpc/xds_endpoint_parser.cc +11 -0
  238. data/src/core/xds/grpc/xds_grpc_service_parser.cc +12 -10
  239. data/src/core/xds/grpc/xds_http_ext_proc_filter.cc +17 -14
  240. data/src/core/xds/grpc/xds_matcher.h +2 -2
  241. data/src/core/xds/grpc/xds_transport_grpc.cc +125 -85
  242. data/src/core/xds/grpc/xds_transport_grpc.h +19 -4
  243. data/src/core/xds/xds_client/lrs_client.cc +22 -19
  244. data/src/core/xds/xds_client/xds_client.cc +19 -16
  245. data/src/core/xds/xds_client/xds_transport.h +49 -3
  246. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
  247. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +3 -0
  248. data/src/ruby/lib/grpc/version.rb +1 -1
  249. data/src/ruby/pb/README.md +1 -1
  250. data/src/ruby/pb/generate_proto_ruby.sh +1 -1
  251. data/third_party/abseil-cpp/absl/algorithm/algorithm.h +34 -2
  252. data/third_party/abseil-cpp/absl/algorithm/container.h +345 -147
  253. data/third_party/abseil-cpp/absl/base/attributes.h +67 -44
  254. data/third_party/abseil-cpp/absl/base/call_once.h +1 -0
  255. data/third_party/abseil-cpp/absl/base/casts.cc +61 -0
  256. data/third_party/abseil-cpp/absl/base/casts.h +135 -2
  257. data/third_party/abseil-cpp/absl/base/config.h +63 -41
  258. data/third_party/abseil-cpp/absl/base/fast_type_id.h +30 -2
  259. data/third_party/abseil-cpp/absl/base/internal/dynamic_annotations.h +1 -1
  260. data/third_party/abseil-cpp/absl/base/internal/hardening.h +136 -0
  261. data/third_party/abseil-cpp/absl/base/internal/iterator_traits.h +6 -2
  262. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.cc +39 -4
  263. data/third_party/abseil-cpp/absl/base/internal/low_level_alloc.h +6 -0
  264. data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +77 -15
  265. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +3 -4
  266. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +26 -24
  267. data/third_party/abseil-cpp/absl/base/internal/spinlock.h +74 -29
  268. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +1 -11
  269. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +52 -0
  270. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +5 -1
  271. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +5 -0
  272. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock_config.h +1 -1
  273. data/third_party/abseil-cpp/absl/base/macros.h +76 -37
  274. data/third_party/abseil-cpp/absl/base/nullability.h +5 -5
  275. data/third_party/abseil-cpp/absl/base/optimization.h +4 -5
  276. data/third_party/abseil-cpp/absl/base/options.h +46 -18
  277. data/third_party/abseil-cpp/absl/base/policy_checks.h +5 -5
  278. data/third_party/abseil-cpp/absl/base/{internal/throw_delegate.cc → throw_delegate.cc} +9 -7
  279. data/third_party/abseil-cpp/absl/base/{internal/throw_delegate.h → throw_delegate.h} +4 -14
  280. data/third_party/abseil-cpp/absl/cleanup/cleanup.h +7 -2
  281. data/third_party/abseil-cpp/absl/cleanup/internal/cleanup.h +3 -2
  282. data/third_party/abseil-cpp/absl/container/btree_map.h +60 -10
  283. data/third_party/abseil-cpp/absl/container/btree_set.h +61 -15
  284. data/third_party/abseil-cpp/absl/container/fixed_array.h +19 -21
  285. data/third_party/abseil-cpp/absl/container/flat_hash_map.h +49 -27
  286. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +50 -26
  287. data/third_party/abseil-cpp/absl/container/inlined_vector.h +42 -36
  288. data/third_party/abseil-cpp/absl/container/internal/btree.h +32 -24
  289. data/third_party/abseil-cpp/absl/container/internal/btree_container.h +30 -22
  290. data/third_party/abseil-cpp/absl/container/internal/common.h +57 -5
  291. data/third_party/abseil-cpp/absl/container/internal/common_policy_traits.h +1 -1
  292. data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +40 -36
  293. data/third_party/abseil-cpp/absl/container/internal/container_memory.h +119 -39
  294. data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +14 -2
  295. data/third_party/abseil-cpp/absl/container/internal/hash_policy_traits.h +14 -22
  296. data/third_party/abseil-cpp/absl/container/internal/hashtable_control_bytes.h +52 -52
  297. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +7 -7
  298. data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +7 -7
  299. data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +32 -40
  300. data/third_party/abseil-cpp/absl/container/internal/layout.h +13 -13
  301. data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +95 -72
  302. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +633 -365
  303. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +1016 -749
  304. data/third_party/abseil-cpp/absl/container/internal/raw_hash_set_resize_impl.h +0 -1
  305. data/third_party/abseil-cpp/absl/container/node_hash_map.h +58 -35
  306. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.cc +23 -6
  307. data/third_party/abseil-cpp/absl/crc/internal/cpu_detect.h +7 -1
  308. data/third_party/abseil-cpp/absl/crc/internal/crc.cc +4 -6
  309. data/third_party/abseil-cpp/absl/crc/internal/crc32_x86_arm_combined_simd.h +41 -0
  310. data/third_party/abseil-cpp/absl/crc/internal/crc_internal.h +0 -16
  311. data/third_party/abseil-cpp/absl/crc/internal/crc_memcpy_x86_arm_combined.cc +5 -0
  312. data/third_party/abseil-cpp/absl/crc/internal/crc_x86_arm_combined.cc +304 -188
  313. data/third_party/abseil-cpp/absl/crc/internal/non_temporal_arm_intrinsics.h +4 -2
  314. data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +2 -2
  315. data/third_party/abseil-cpp/absl/debugging/internal/demangle_rust.h +8 -0
  316. data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +4 -4
  317. data/third_party/abseil-cpp/absl/debugging/internal/examine_stack.cc +15 -1
  318. data/third_party/abseil-cpp/absl/debugging/internal/examine_stack.h +7 -1
  319. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +12 -1
  320. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +6 -5
  321. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +13 -11
  322. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_generic-inl.inc +14 -7
  323. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +3 -2
  324. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +6 -1
  325. data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +14 -8
  326. data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +48 -38
  327. data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +4 -0
  328. data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +63 -118
  329. data/third_party/abseil-cpp/absl/debugging/stacktrace.h +7 -47
  330. data/third_party/abseil-cpp/absl/debugging/symbolize.cc +20 -2
  331. data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +83 -149
  332. data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +4 -17
  333. data/third_party/abseil-cpp/absl/debugging/symbolize_unimplemented.inc +4 -4
  334. data/third_party/abseil-cpp/absl/debugging/symbolize_win32.inc +2 -4
  335. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +8 -6
  336. data/third_party/abseil-cpp/absl/flags/declare.h +9 -0
  337. data/third_party/abseil-cpp/absl/flags/flag.h +2 -1
  338. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +1 -1
  339. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +19 -18
  340. data/third_party/abseil-cpp/absl/flags/internal/flag.h +33 -34
  341. data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +2 -2
  342. data/third_party/abseil-cpp/absl/flags/marshalling.cc +1 -16
  343. data/third_party/abseil-cpp/absl/flags/marshalling.h +2 -28
  344. data/third_party/abseil-cpp/absl/flags/reflection.cc +11 -7
  345. data/third_party/abseil-cpp/absl/flags/usage_config.cc +2 -2
  346. data/third_party/abseil-cpp/absl/functional/any_invocable.h +22 -19
  347. data/third_party/abseil-cpp/absl/functional/bind_front.h +7 -1
  348. data/third_party/abseil-cpp/absl/functional/function_ref.h +125 -20
  349. data/third_party/abseil-cpp/absl/functional/internal/any_invocable.h +43 -31
  350. data/third_party/abseil-cpp/absl/functional/internal/front_binder.h +4 -4
  351. data/third_party/abseil-cpp/absl/functional/internal/function_ref.h +44 -6
  352. data/third_party/abseil-cpp/absl/hash/hash.h +1 -1
  353. data/third_party/abseil-cpp/absl/hash/internal/city.cc +39 -51
  354. data/third_party/abseil-cpp/absl/hash/internal/hash.cc +379 -14
  355. data/third_party/abseil-cpp/absl/hash/internal/hash.h +457 -353
  356. data/third_party/abseil-cpp/absl/log/absl_vlog_is_on.h +0 -2
  357. data/third_party/abseil-cpp/absl/log/internal/check_impl.h +2 -1
  358. data/third_party/abseil-cpp/absl/log/internal/check_op.cc +4 -0
  359. data/third_party/abseil-cpp/absl/log/internal/check_op.h +128 -50
  360. data/third_party/abseil-cpp/absl/log/internal/conditions.h +38 -35
  361. data/third_party/abseil-cpp/absl/log/internal/log_impl.h +108 -110
  362. data/third_party/abseil-cpp/absl/log/internal/log_message.cc +10 -6
  363. data/third_party/abseil-cpp/absl/log/internal/log_message.h +19 -1
  364. data/third_party/abseil-cpp/absl/log/internal/log_sink_set.cc +4 -4
  365. data/third_party/abseil-cpp/absl/log/internal/nullstream.h +1 -1
  366. data/third_party/abseil-cpp/absl/log/internal/proto.cc +13 -0
  367. data/third_party/abseil-cpp/absl/log/internal/strip.h +30 -31
  368. data/third_party/abseil-cpp/absl/log/internal/structured_proto.cc +5 -5
  369. data/third_party/abseil-cpp/absl/log/internal/structured_proto.h +6 -5
  370. data/third_party/abseil-cpp/absl/log/internal/vlog_config.cc +30 -30
  371. data/third_party/abseil-cpp/absl/log/internal/vlog_config.h +0 -1
  372. data/third_party/abseil-cpp/absl/log/log.h +2 -2
  373. data/third_party/abseil-cpp/absl/log/log_entry.cc +263 -0
  374. data/third_party/abseil-cpp/absl/log/log_entry.h +2 -0
  375. data/third_party/abseil-cpp/absl/log/vlog_is_on.h +0 -2
  376. data/third_party/abseil-cpp/absl/memory/memory.h +55 -5
  377. data/third_party/abseil-cpp/absl/meta/type_traits.h +161 -56
  378. data/third_party/abseil-cpp/absl/numeric/int128.h +41 -21
  379. data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +16 -22
  380. data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +5 -7
  381. data/third_party/abseil-cpp/absl/numeric/internal/bits.h +32 -4
  382. data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +9 -9
  383. data/third_party/abseil-cpp/absl/random/beta_distribution.h +2 -2
  384. data/third_party/abseil-cpp/absl/random/bit_gen_ref.h +26 -53
  385. data/third_party/abseil-cpp/absl/random/discrete_distribution.h +1 -1
  386. data/third_party/abseil-cpp/absl/random/distributions.h +17 -17
  387. data/third_party/abseil-cpp/absl/random/exponential_distribution.h +1 -1
  388. data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +8 -21
  389. data/third_party/abseil-cpp/absl/random/internal/entropy_pool.cc +2 -2
  390. data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +1 -1
  391. data/third_party/abseil-cpp/absl/random/internal/generate_real.h +1 -1
  392. data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +2 -2
  393. data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +2 -2
  394. data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +6 -6
  395. data/third_party/abseil-cpp/absl/random/internal/platform.h +0 -13
  396. data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +6 -6
  397. data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +2 -2
  398. data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +6 -5
  399. data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +5 -31
  400. data/third_party/abseil-cpp/absl/random/internal/seed_material.h +2 -1
  401. data/third_party/abseil-cpp/absl/random/internal/traits.h +21 -0
  402. data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +23 -23
  403. data/third_party/abseil-cpp/absl/random/mocking_access.h +74 -0
  404. data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +1 -1
  405. data/third_party/abseil-cpp/absl/status/internal/status_internal.cc +63 -18
  406. data/third_party/abseil-cpp/absl/status/internal/status_internal.h +30 -4
  407. data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +225 -63
  408. data/third_party/abseil-cpp/absl/status/status.cc +66 -70
  409. data/third_party/abseil-cpp/absl/status/status.h +254 -23
  410. data/third_party/abseil-cpp/absl/status/status_payload_printer.h +3 -2
  411. data/third_party/abseil-cpp/absl/status/statusor.h +117 -137
  412. data/third_party/abseil-cpp/absl/strings/ascii.h +10 -6
  413. data/third_party/abseil-cpp/absl/strings/cord.cc +41 -17
  414. data/third_party/abseil-cpp/absl/strings/cord.h +26 -17
  415. data/third_party/abseil-cpp/absl/strings/cord_buffer.h +4 -2
  416. data/third_party/abseil-cpp/absl/strings/escaping.cc +305 -125
  417. data/third_party/abseil-cpp/absl/strings/escaping.h +12 -2
  418. data/third_party/abseil-cpp/absl/strings/internal/append_and_overwrite.h +93 -0
  419. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +2 -2
  420. data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +6 -6
  421. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +27 -21
  422. data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +11 -19
  423. data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.cc +6 -0
  424. data/third_party/abseil-cpp/absl/strings/internal/damerau_levenshtein_distance.h +1 -0
  425. data/third_party/abseil-cpp/absl/strings/internal/escaping.cc +0 -141
  426. data/third_party/abseil-cpp/absl/strings/internal/escaping.h +2 -24
  427. data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +31 -36
  428. data/third_party/abseil-cpp/absl/strings/internal/stl_type_traits.h +39 -39
  429. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +14 -22
  430. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +2 -2
  431. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +2 -4
  432. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +921 -231
  433. data/third_party/abseil-cpp/absl/strings/internal/str_join_internal.h +18 -16
  434. data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +16 -12
  435. data/third_party/abseil-cpp/absl/strings/internal/stringify_sink.h +12 -0
  436. data/third_party/abseil-cpp/absl/strings/numbers.cc +477 -8
  437. data/third_party/abseil-cpp/absl/strings/numbers.h +29 -12
  438. data/third_party/abseil-cpp/absl/strings/resize_and_overwrite.h +198 -0
  439. data/third_party/abseil-cpp/absl/strings/str_cat.cc +96 -91
  440. data/third_party/abseil-cpp/absl/strings/str_cat.h +53 -13
  441. data/third_party/abseil-cpp/absl/strings/str_split.h +14 -9
  442. data/third_party/abseil-cpp/absl/strings/string_view.h +10 -716
  443. data/third_party/abseil-cpp/absl/strings/substitute.cc +24 -24
  444. data/third_party/abseil-cpp/absl/strings/substitute.h +2 -2
  445. data/third_party/abseil-cpp/absl/synchronization/barrier.cc +1 -1
  446. data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +2 -2
  447. data/third_party/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc +24 -3
  448. data/third_party/abseil-cpp/absl/synchronization/internal/graphcycles.cc +30 -33
  449. data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -2
  450. data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +5 -0
  451. data/third_party/abseil-cpp/absl/synchronization/mutex.cc +41 -29
  452. data/third_party/abseil-cpp/absl/synchronization/mutex.h +199 -94
  453. data/third_party/abseil-cpp/absl/synchronization/notification.cc +5 -5
  454. data/third_party/abseil-cpp/absl/synchronization/notification.h +1 -1
  455. data/third_party/abseil-cpp/absl/time/clock.cc +29 -30
  456. data/third_party/abseil-cpp/absl/time/clock.h +3 -0
  457. data/third_party/abseil-cpp/absl/time/duration.cc +2 -2
  458. data/third_party/abseil-cpp/absl/time/format.cc +3 -10
  459. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +12 -0
  460. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +131 -91
  461. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +6 -103
  462. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.cc +185 -0
  463. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_name_win.h +37 -0
  464. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +10 -15
  465. data/third_party/abseil-cpp/absl/time/time.cc +4 -4
  466. data/third_party/abseil-cpp/absl/time/time.h +14 -13
  467. data/third_party/abseil-cpp/absl/types/compare.h +64 -63
  468. data/third_party/abseil-cpp/absl/types/internal/span.h +6 -6
  469. data/third_party/abseil-cpp/absl/types/optional.h +31 -4
  470. data/third_party/abseil-cpp/absl/types/optional_ref.h +295 -0
  471. data/third_party/{boringssl-with-bazel/crypto/x509/x_val.cc → abseil-cpp/absl/types/source_location.cc} +4 -14
  472. data/third_party/abseil-cpp/absl/types/source_location.h +172 -0
  473. data/third_party/abseil-cpp/absl/types/span.h +67 -38
  474. data/third_party/abseil-cpp/absl/types/variant.h +75 -18
  475. data/third_party/abseil-cpp/absl/utility/utility.h +112 -16
  476. data/third_party/boringssl-with-bazel/crypto/aes/aes.cc +3 -0
  477. data/third_party/boringssl-with-bazel/crypto/armv8_feature_parsing.h +67 -0
  478. data/third_party/boringssl-with-bazel/crypto/asn1/a_bitstr.cc +143 -105
  479. data/third_party/boringssl-with-bazel/crypto/asn1/a_bool.cc +5 -8
  480. data/third_party/boringssl-with-bazel/crypto/asn1/a_d2i_fp.cc +3 -3
  481. data/third_party/boringssl-with-bazel/crypto/asn1/a_dup.cc +6 -6
  482. data/third_party/boringssl-with-bazel/crypto/asn1/a_gentm.cc +33 -12
  483. data/third_party/boringssl-with-bazel/crypto/asn1/a_i2d_fp.cc +7 -6
  484. data/third_party/boringssl-with-bazel/crypto/asn1/a_int.cc +80 -52
  485. data/third_party/boringssl-with-bazel/crypto/asn1/a_mbstr.cc +7 -4
  486. data/third_party/boringssl-with-bazel/crypto/asn1/a_object.cc +70 -72
  487. data/third_party/boringssl-with-bazel/crypto/asn1/a_strex.cc +38 -42
  488. data/third_party/boringssl-with-bazel/crypto/asn1/a_strnid.cc +41 -39
  489. data/third_party/boringssl-with-bazel/crypto/asn1/a_time.cc +59 -35
  490. data/third_party/boringssl-with-bazel/crypto/asn1/a_type.cc +275 -15
  491. data/third_party/boringssl-with-bazel/crypto/asn1/a_utctm.cc +32 -13
  492. data/third_party/boringssl-with-bazel/crypto/asn1/asn1_lib.cc +128 -30
  493. data/third_party/boringssl-with-bazel/crypto/asn1/asn_pack.cc +10 -10
  494. data/third_party/boringssl-with-bazel/crypto/asn1/f_int.cc +1 -1
  495. data/third_party/boringssl-with-bazel/crypto/asn1/f_string.cc +1 -1
  496. data/third_party/boringssl-with-bazel/crypto/asn1/internal.h +261 -115
  497. data/third_party/boringssl-with-bazel/crypto/asn1/posix_time.cc +8 -5
  498. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_dec.cc +373 -725
  499. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_enc.cc +211 -526
  500. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_fre.cc +22 -19
  501. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_new.cc +26 -24
  502. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_typ.cc +19 -5
  503. data/third_party/boringssl-with-bazel/crypto/asn1/tasn_utl.cc +47 -51
  504. data/third_party/boringssl-with-bazel/crypto/base64/base64.cc +14 -15
  505. data/third_party/boringssl-with-bazel/crypto/bcm_support.h +7 -29
  506. data/third_party/boringssl-with-bazel/crypto/bio/bio.cc +234 -176
  507. data/third_party/boringssl-with-bazel/crypto/bio/bio_mem.cc +72 -86
  508. data/third_party/boringssl-with-bazel/crypto/bio/connect.cc +153 -199
  509. data/third_party/boringssl-with-bazel/crypto/bio/errno.cc +3 -1
  510. data/third_party/boringssl-with-bazel/crypto/bio/fd.cc +56 -55
  511. data/third_party/boringssl-with-bazel/crypto/bio/file.cc +70 -78
  512. data/third_party/boringssl-with-bazel/crypto/bio/hexdump.cc +6 -4
  513. data/third_party/boringssl-with-bazel/crypto/bio/internal.h +69 -17
  514. data/third_party/boringssl-with-bazel/crypto/bio/pair.cc +117 -136
  515. data/third_party/boringssl-with-bazel/crypto/bio/printf.cc +1 -1
  516. data/third_party/boringssl-with-bazel/crypto/bio/socket.cc +116 -50
  517. data/third_party/boringssl-with-bazel/crypto/bio/socket_helper.cc +53 -5
  518. data/third_party/boringssl-with-bazel/crypto/blake2/blake2.cc +9 -5
  519. data/third_party/boringssl-with-bazel/crypto/bn/bn_asn1.cc +2 -2
  520. data/third_party/boringssl-with-bazel/crypto/bn/convert.cc +56 -70
  521. data/third_party/boringssl-with-bazel/crypto/bn/div.cc +102 -0
  522. data/third_party/boringssl-with-bazel/crypto/bn/exponentiation.cc +26 -42
  523. data/third_party/boringssl-with-bazel/crypto/bn/sqrt.cc +93 -0
  524. data/third_party/boringssl-with-bazel/crypto/buf/buf.cc +6 -5
  525. data/third_party/boringssl-with-bazel/crypto/bytestring/asn1_compat.cc +6 -5
  526. data/third_party/boringssl-with-bazel/crypto/bytestring/ber.cc +22 -20
  527. data/third_party/boringssl-with-bazel/crypto/bytestring/cbb.cc +119 -59
  528. data/third_party/boringssl-with-bazel/crypto/bytestring/cbs.cc +115 -31
  529. data/third_party/boringssl-with-bazel/crypto/bytestring/internal.h +79 -24
  530. data/third_party/boringssl-with-bazel/crypto/bytestring/unicode.cc +2 -2
  531. data/third_party/boringssl-with-bazel/crypto/chacha/chacha.cc +5 -3
  532. data/third_party/boringssl-with-bazel/crypto/chacha/internal.h +23 -22
  533. data/third_party/boringssl-with-bazel/crypto/cipher/derive_key.cc +14 -18
  534. data/third_party/boringssl-with-bazel/crypto/cipher/e_aesctrhmac.cc +73 -58
  535. data/third_party/boringssl-with-bazel/crypto/cipher/e_aeseax.cc +132 -70
  536. data/third_party/boringssl-with-bazel/crypto/cipher/e_aesgcmsiv.cc +390 -249
  537. data/third_party/boringssl-with-bazel/crypto/cipher/e_chacha20poly1305.cc +200 -137
  538. data/third_party/boringssl-with-bazel/crypto/cipher/e_des.cc +45 -29
  539. data/third_party/boringssl-with-bazel/crypto/cipher/e_null.cc +9 -5
  540. data/third_party/boringssl-with-bazel/crypto/cipher/e_rc2.cc +43 -28
  541. data/third_party/boringssl-with-bazel/crypto/cipher/e_rc4.cc +7 -5
  542. data/third_party/boringssl-with-bazel/crypto/cipher/e_tls.cc +250 -237
  543. data/third_party/boringssl-with-bazel/crypto/cipher/get_cipher.cc +12 -12
  544. data/third_party/boringssl-with-bazel/crypto/cipher/internal.h +59 -59
  545. data/third_party/boringssl-with-bazel/crypto/cipher/tls_cbc.cc +111 -111
  546. data/third_party/boringssl-with-bazel/crypto/cms/cms.cc +48 -42
  547. data/third_party/boringssl-with-bazel/crypto/conf/conf.cc +69 -63
  548. data/third_party/boringssl-with-bazel/crypto/conf/internal.h +11 -12
  549. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_apple.cc +8 -5
  550. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_fuchsia.cc +6 -1
  551. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_linux.cc +7 -1
  552. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_openbsd.cc +7 -21
  553. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_sysreg.cc +15 -41
  554. data/third_party/boringssl-with-bazel/crypto/cpu_aarch64_win.cc +16 -3
  555. data/third_party/boringssl-with-bazel/crypto/cpu_arm_freebsd.cc +4 -2
  556. data/third_party/boringssl-with-bazel/crypto/cpu_arm_linux.cc +54 -31
  557. data/third_party/boringssl-with-bazel/crypto/cpu_arm_linux.h +79 -101
  558. data/third_party/boringssl-with-bazel/crypto/cpu_intel.cc +51 -45
  559. data/third_party/boringssl-with-bazel/crypto/crypto.cc +26 -55
  560. data/third_party/boringssl-with-bazel/crypto/curve25519/curve25519.cc +28 -25
  561. data/third_party/boringssl-with-bazel/crypto/curve25519/curve25519_tables.h +6 -6
  562. data/third_party/boringssl-with-bazel/crypto/curve25519/internal.h +14 -15
  563. data/third_party/boringssl-with-bazel/crypto/curve25519/spake25519.cc +23 -20
  564. data/third_party/boringssl-with-bazel/crypto/des/des.cc +27 -19
  565. data/third_party/boringssl-with-bazel/crypto/des/internal.h +4 -9
  566. data/third_party/boringssl-with-bazel/crypto/dh/dh_asn1.cc +34 -49
  567. data/third_party/boringssl-with-bazel/crypto/dh/params.cc +44 -41
  568. data/third_party/boringssl-with-bazel/crypto/digest/digest_extra.cc +87 -40
  569. data/third_party/boringssl-with-bazel/crypto/dsa/dsa.cc +237 -260
  570. data/third_party/boringssl-with-bazel/crypto/dsa/dsa_asn1.cc +100 -173
  571. data/third_party/boringssl-with-bazel/crypto/dsa/internal.h +23 -21
  572. data/third_party/boringssl-with-bazel/crypto/ec/ec_asn1.cc +181 -209
  573. data/third_party/boringssl-with-bazel/crypto/ec/ec_derive.cc +26 -28
  574. data/third_party/boringssl-with-bazel/crypto/ec/hash_to_curve.cc +265 -174
  575. data/third_party/boringssl-with-bazel/crypto/ec/internal.h +54 -18
  576. data/third_party/boringssl-with-bazel/crypto/ecdh/ecdh.cc +7 -5
  577. data/third_party/boringssl-with-bazel/crypto/ecdsa/ecdsa_asn1.cc +50 -70
  578. data/third_party/boringssl-with-bazel/crypto/ecdsa/ecdsa_p1363.cc +54 -0
  579. data/third_party/boringssl-with-bazel/crypto/engine/engine.cc +7 -7
  580. data/third_party/boringssl-with-bazel/crypto/err/err.cc +116 -105
  581. data/third_party/boringssl-with-bazel/crypto/err/internal.h +8 -21
  582. data/third_party/boringssl-with-bazel/crypto/evp/evp.cc +238 -166
  583. data/third_party/boringssl-with-bazel/crypto/evp/evp_asn1.cc +202 -234
  584. data/third_party/boringssl-with-bazel/crypto/evp/evp_ctx.cc +260 -159
  585. data/third_party/boringssl-with-bazel/crypto/evp/evp_kem.cc +82 -0
  586. data/third_party/boringssl-with-bazel/crypto/evp/internal.h +292 -137
  587. data/third_party/boringssl-with-bazel/crypto/evp/p_dh.cc +198 -25
  588. data/third_party/boringssl-with-bazel/crypto/evp/p_dsa.cc +333 -0
  589. data/third_party/boringssl-with-bazel/crypto/evp/p_ec.cc +427 -42
  590. data/third_party/boringssl-with-bazel/crypto/evp/p_ed25519.cc +270 -14
  591. data/third_party/boringssl-with-bazel/crypto/evp/p_hkdf.cc +70 -102
  592. data/third_party/boringssl-with-bazel/crypto/evp/p_mldsa.cc +549 -0
  593. data/third_party/boringssl-with-bazel/crypto/evp/p_mlkem.cc +485 -0
  594. data/third_party/boringssl-with-bazel/crypto/evp/p_rsa.cc +666 -158
  595. data/third_party/boringssl-with-bazel/crypto/evp/p_x25519.cc +290 -28
  596. data/third_party/boringssl-with-bazel/crypto/evp/p_xwing.cc +273 -0
  597. data/third_party/boringssl-with-bazel/crypto/evp/pbkdf.cc +14 -7
  598. data/third_party/boringssl-with-bazel/crypto/evp/print.cc +34 -89
  599. data/third_party/boringssl-with-bazel/crypto/evp/scrypt.cc +23 -21
  600. data/third_party/boringssl-with-bazel/crypto/evp/sign.cc +23 -42
  601. data/third_party/boringssl-with-bazel/crypto/ex_data.cc +40 -41
  602. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/aes.cc.inc +34 -28
  603. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/aes_nohw.cc.inc +119 -121
  604. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/cbc.cc.inc +16 -14
  605. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/cfb.cc.inc +12 -10
  606. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/ctr.cc.inc +7 -5
  607. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/gcm.cc.inc +39 -29
  608. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/gcm_nohw.cc.inc +15 -13
  609. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/internal.h +193 -177
  610. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/key_wrap.cc.inc +5 -3
  611. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/mode_wrappers.cc.inc +7 -3
  612. data/third_party/boringssl-with-bazel/crypto/fipsmodule/aes/ofb.cc.inc +7 -5
  613. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bcm.cc +24 -19
  614. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bcm_interface.h +512 -384
  615. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/add.cc.inc +7 -5
  616. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +63 -44
  617. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/bn.cc.inc +40 -37
  618. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/bytes.cc.inc +27 -22
  619. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/cmp.cc.inc +9 -7
  620. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/ctx.cc.inc +62 -126
  621. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/div.cc.inc +92 -167
  622. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/div_extra.cc.inc +15 -12
  623. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/exponentiation.cc.inc +96 -93
  624. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/gcd.cc.inc +73 -92
  625. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/gcd_extra.cc.inc +59 -71
  626. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/generic.cc.inc +54 -57
  627. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/internal.h +333 -255
  628. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/jacobi.cc.inc +12 -19
  629. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/montgomery.cc.inc +80 -95
  630. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/montgomery_inv.cc.inc +53 -96
  631. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/mul.cc.inc +58 -419
  632. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/prime.cc.inc +164 -213
  633. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/random.cc.inc +27 -26
  634. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/rsaz_exp.cc.inc +12 -10
  635. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/rsaz_exp.h +47 -49
  636. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/shift.cc.inc +14 -17
  637. data/third_party/boringssl-with-bazel/crypto/fipsmodule/bn/sqrt.cc.inc +19 -108
  638. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/aead.cc.inc +427 -105
  639. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/cipher.cc.inc +412 -212
  640. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/e_aes.cc.inc +230 -225
  641. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/e_aesccm.cc.inc +115 -84
  642. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cipher/internal.h +374 -27
  643. data/third_party/boringssl-with-bazel/crypto/fipsmodule/cmac/cmac.cc.inc +28 -23
  644. data/third_party/boringssl-with-bazel/crypto/fipsmodule/delocate.h +36 -40
  645. data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/check.cc.inc +68 -78
  646. data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/dh.cc.inc +154 -196
  647. data/third_party/boringssl-with-bazel/crypto/fipsmodule/dh/internal.h +24 -24
  648. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/digest.cc.inc +40 -69
  649. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/digests.cc.inc +13 -7
  650. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/internal.h +13 -11
  651. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digest/md32_common.h +86 -81
  652. data/third_party/boringssl-with-bazel/crypto/fipsmodule/digestsign/digestsign.cc.inc +38 -34
  653. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec.cc.inc +187 -196
  654. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec_key.cc.inc +196 -154
  655. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/ec_montgomery.cc.inc +65 -125
  656. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/felem.cc.inc +85 -22
  657. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/internal.h +281 -287
  658. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/oct.cc.inc +23 -22
  659. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256.cc.inc +514 -573
  660. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256_internal.h +193 -0
  661. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/scalar.cc.inc +44 -39
  662. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/simple.cc.inc +58 -90
  663. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/simple_mul.cc.inc +39 -34
  664. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/util.cc.inc +6 -3
  665. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/wnaf.cc.inc +23 -20
  666. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdh/ecdh.cc.inc +6 -3
  667. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +47 -37
  668. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ecdsa/internal.h +5 -10
  669. data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/internal.h +38 -0
  670. data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/jitter.cc.inc +463 -0
  671. data/third_party/boringssl-with-bazel/crypto/fipsmodule/entropy/sha512.cc.inc +329 -0
  672. data/third_party/boringssl-with-bazel/crypto/fipsmodule/hkdf/hkdf.cc.inc +8 -6
  673. data/third_party/boringssl-with-bazel/crypto/fipsmodule/hmac/hmac.cc.inc +19 -16
  674. data/third_party/boringssl-with-bazel/crypto/fipsmodule/keccak/internal.h +41 -15
  675. data/third_party/boringssl-with-bazel/crypto/fipsmodule/keccak/keccak.cc.inc +172 -44
  676. data/third_party/boringssl-with-bazel/crypto/fipsmodule/mldsa/fips_known_values.inc +5 -5
  677. data/third_party/boringssl-with-bazel/crypto/fipsmodule/mldsa/mldsa.cc.inc +1632 -766
  678. data/third_party/boringssl-with-bazel/crypto/fipsmodule/mlkem/fips_known_values.inc +5 -5
  679. data/third_party/boringssl-with-bazel/crypto/fipsmodule/mlkem/mlkem.cc.inc +740 -436
  680. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/android_entropy_client.cc.inc +82 -0
  681. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/ctrdrbg.cc.inc +240 -53
  682. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/internal.h +41 -26
  683. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rand/rand.cc.inc +221 -218
  684. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/internal.h +64 -67
  685. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/padding.cc.inc +49 -57
  686. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/rsa.cc.inc +247 -234
  687. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/rsa_impl.cc.inc +392 -692
  688. data/third_party/boringssl-with-bazel/crypto/fipsmodule/self_check/fips.cc.inc +10 -10
  689. data/third_party/boringssl-with-bazel/crypto/fipsmodule/self_check/self_check.cc.inc +479 -449
  690. data/third_party/boringssl-with-bazel/crypto/fipsmodule/service_indicator/internal.h +34 -11
  691. data/third_party/boringssl-with-bazel/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +46 -43
  692. data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/internal.h +61 -70
  693. data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha1.cc.inc +27 -13
  694. data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha256.cc.inc +46 -30
  695. data/third_party/boringssl-with-bazel/crypto/fipsmodule/sha/sha512.cc.inc +47 -47
  696. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/address.h +98 -73
  697. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/fors.cc.inc +108 -98
  698. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/fors.h +14 -24
  699. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/merkle.cc.inc +94 -91
  700. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/merkle.h +19 -31
  701. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/params.h +156 -56
  702. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +318 -132
  703. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/thash.cc.inc +234 -81
  704. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/thash.h +20 -34
  705. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/wots.cc.inc +97 -96
  706. data/third_party/boringssl-with-bazel/crypto/fipsmodule/slhdsa/wots.h +10 -20
  707. data/third_party/boringssl-with-bazel/crypto/fipsmodule/tls/internal.h +2 -16
  708. data/third_party/boringssl-with-bazel/crypto/fipsmodule/tls/kdf.cc.inc +26 -26
  709. data/third_party/boringssl-with-bazel/crypto/fuzzer_mode.cc +5 -5
  710. data/third_party/boringssl-with-bazel/crypto/hpke/hpke.cc +461 -97
  711. data/third_party/boringssl-with-bazel/crypto/hrss/hrss.cc +153 -149
  712. data/third_party/boringssl-with-bazel/crypto/hrss/internal.h +9 -13
  713. data/third_party/boringssl-with-bazel/crypto/internal.h +531 -394
  714. data/third_party/boringssl-with-bazel/crypto/kyber/internal.h +117 -12
  715. data/third_party/boringssl-with-bazel/crypto/kyber/kyber.cc +59 -58
  716. data/third_party/boringssl-with-bazel/crypto/lhash/internal.h +38 -37
  717. data/third_party/boringssl-with-bazel/crypto/lhash/lhash.cc +68 -65
  718. data/third_party/boringssl-with-bazel/crypto/md4/md4.cc +19 -6
  719. data/third_party/boringssl-with-bazel/crypto/md5/internal.h +6 -9
  720. data/third_party/boringssl-with-bazel/crypto/md5/md5.cc +18 -6
  721. data/third_party/boringssl-with-bazel/crypto/mem.cc +61 -65
  722. data/third_party/boringssl-with-bazel/crypto/mem_internal.h +671 -0
  723. data/third_party/boringssl-with-bazel/crypto/mldsa/mldsa.cc +238 -32
  724. data/third_party/boringssl-with-bazel/crypto/mlkem/mlkem.cc +21 -65
  725. data/third_party/boringssl-with-bazel/crypto/obj/obj.cc +132 -157
  726. data/third_party/boringssl-with-bazel/crypto/obj/obj_dat.h +79 -1
  727. data/third_party/boringssl-with-bazel/crypto/obj/obj_xref.cc +14 -11
  728. data/third_party/boringssl-with-bazel/crypto/params_internal.h +30 -0
  729. data/third_party/boringssl-with-bazel/crypto/pem/internal.h +20 -15
  730. data/third_party/boringssl-with-bazel/crypto/pem/pem_all.cc +20 -19
  731. data/third_party/boringssl-with-bazel/crypto/pem/pem_info.cc +72 -76
  732. data/third_party/boringssl-with-bazel/crypto/pem/pem_lib.cc +215 -217
  733. data/third_party/boringssl-with-bazel/crypto/pem/pem_oth.cc +6 -6
  734. data/third_party/boringssl-with-bazel/crypto/pem/pem_pk8.cc +13 -13
  735. data/third_party/boringssl-with-bazel/crypto/pem/pem_pkey.cc +11 -11
  736. data/third_party/boringssl-with-bazel/crypto/pkcs7/internal.h +12 -17
  737. data/third_party/boringssl-with-bazel/crypto/pkcs7/pkcs7.cc +29 -27
  738. data/third_party/boringssl-with-bazel/crypto/pkcs7/pkcs7_x509.cc +55 -49
  739. data/third_party/boringssl-with-bazel/crypto/pkcs8/internal.h +21 -26
  740. data/third_party/boringssl-with-bazel/crypto/pkcs8/p5_pbev2.cc +33 -31
  741. data/third_party/boringssl-with-bazel/crypto/pkcs8/pkcs8.cc +73 -81
  742. data/third_party/boringssl-with-bazel/crypto/pkcs8/pkcs8_x509.cc +139 -138
  743. data/third_party/boringssl-with-bazel/crypto/poly1305/internal.h +3 -7
  744. data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305.cc +5 -4
  745. data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305_arm.cc +43 -47
  746. data/third_party/boringssl-with-bazel/crypto/poly1305/poly1305_vec.cc +29 -26
  747. data/third_party/boringssl-with-bazel/crypto/pool/internal.h +64 -20
  748. data/third_party/boringssl-with-bazel/crypto/pool/pool.cc +177 -157
  749. data/third_party/boringssl-with-bazel/crypto/rand/deterministic.cc +9 -16
  750. data/third_party/boringssl-with-bazel/crypto/rand/fork_detect.cc +70 -42
  751. data/third_party/boringssl-with-bazel/crypto/rand/forkunsafe.cc +7 -7
  752. data/third_party/boringssl-with-bazel/crypto/rand/getentropy.cc +6 -13
  753. data/third_party/boringssl-with-bazel/crypto/rand/internal.h +16 -4
  754. data/third_party/boringssl-with-bazel/crypto/rand/ios.cc +4 -11
  755. data/third_party/boringssl-with-bazel/crypto/rand/rand.cc +11 -9
  756. data/third_party/boringssl-with-bazel/crypto/rand/trusty.cc +4 -11
  757. data/third_party/boringssl-with-bazel/crypto/rand/urandom.cc +16 -195
  758. data/third_party/boringssl-with-bazel/crypto/rand/windows.cc +12 -19
  759. data/third_party/boringssl-with-bazel/crypto/refcount.cc +7 -17
  760. data/third_party/boringssl-with-bazel/crypto/rsa/internal.h +22 -7
  761. data/third_party/boringssl-with-bazel/crypto/rsa/rsa_asn1.cc +199 -78
  762. data/third_party/boringssl-with-bazel/crypto/rsa/rsa_crypt.cc +49 -50
  763. data/third_party/boringssl-with-bazel/crypto/rsa/rsa_extra.cc +11 -0
  764. data/third_party/boringssl-with-bazel/crypto/rsa/rsa_print.cc +4 -6
  765. data/third_party/boringssl-with-bazel/crypto/sha/sha1.cc +3 -0
  766. data/third_party/boringssl-with-bazel/crypto/sha/sha256.cc +3 -1
  767. data/third_party/boringssl-with-bazel/crypto/sha/sha512.cc +6 -4
  768. data/third_party/boringssl-with-bazel/crypto/siphash/siphash.cc +2 -0
  769. data/third_party/boringssl-with-bazel/crypto/slhdsa/slhdsa.cc +43 -6
  770. data/third_party/boringssl-with-bazel/crypto/spake2plus/internal.h +31 -31
  771. data/third_party/boringssl-with-bazel/crypto/spake2plus/spake2plus.cc +1 -1
  772. data/third_party/boringssl-with-bazel/crypto/stack/stack.cc +89 -130
  773. data/third_party/boringssl-with-bazel/crypto/thread.cc +14 -14
  774. data/third_party/boringssl-with-bazel/crypto/thread_none.cc +10 -13
  775. data/third_party/boringssl-with-bazel/crypto/thread_pthread.cc +22 -35
  776. data/third_party/boringssl-with-bazel/crypto/thread_win.cc +29 -40
  777. data/third_party/boringssl-with-bazel/crypto/trust_token/internal.h +81 -88
  778. data/third_party/boringssl-with-bazel/crypto/trust_token/pmbtoken.cc +160 -144
  779. data/third_party/boringssl-with-bazel/crypto/trust_token/trust_token.cc +96 -80
  780. data/third_party/boringssl-with-bazel/crypto/trust_token/voprf.cc +90 -87
  781. data/third_party/boringssl-with-bazel/crypto/x509/a_digest.cc +5 -5
  782. data/third_party/boringssl-with-bazel/crypto/x509/a_sign.cc +51 -48
  783. data/third_party/boringssl-with-bazel/crypto/x509/a_verify.cc +30 -34
  784. data/third_party/boringssl-with-bazel/crypto/x509/algorithm.cc +47 -16
  785. data/third_party/boringssl-with-bazel/crypto/x509/asn1_gen.cc +41 -43
  786. data/third_party/boringssl-with-bazel/crypto/x509/by_dir.cc +183 -237
  787. data/third_party/boringssl-with-bazel/crypto/x509/by_file.cc +29 -30
  788. data/third_party/boringssl-with-bazel/crypto/x509/internal.h +276 -180
  789. data/third_party/boringssl-with-bazel/crypto/x509/name_print.cc +15 -13
  790. data/third_party/boringssl-with-bazel/crypto/x509/policy.cc +415 -525
  791. data/third_party/boringssl-with-bazel/crypto/x509/rsa_pss.cc +94 -271
  792. data/third_party/boringssl-with-bazel/crypto/x509/t_crl.cc +11 -8
  793. data/third_party/boringssl-with-bazel/crypto/x509/t_req.cc +26 -23
  794. data/third_party/boringssl-with-bazel/crypto/x509/t_x509.cc +26 -22
  795. data/third_party/boringssl-with-bazel/crypto/x509/t_x509a.cc +3 -1
  796. data/third_party/boringssl-with-bazel/crypto/x509/v3_akey.cc +69 -76
  797. data/third_party/boringssl-with-bazel/crypto/x509/v3_akeya.cc +2 -2
  798. data/third_party/boringssl-with-bazel/crypto/x509/v3_alt.cc +112 -69
  799. data/third_party/boringssl-with-bazel/crypto/x509/v3_bcons.cc +15 -14
  800. data/third_party/boringssl-with-bazel/crypto/x509/v3_bitst.cc +16 -18
  801. data/third_party/boringssl-with-bazel/crypto/x509/v3_conf.cc +62 -67
  802. data/third_party/boringssl-with-bazel/crypto/x509/v3_cpols.cc +143 -170
  803. data/third_party/boringssl-with-bazel/crypto/x509/v3_crld.cc +121 -165
  804. data/third_party/boringssl-with-bazel/crypto/x509/v3_enum.cc +13 -12
  805. data/third_party/boringssl-with-bazel/crypto/x509/v3_extku.cc +17 -34
  806. data/third_party/boringssl-with-bazel/crypto/x509/v3_genn.cc +20 -10
  807. data/third_party/boringssl-with-bazel/crypto/x509/v3_ia5.cc +22 -18
  808. data/third_party/boringssl-with-bazel/crypto/x509/v3_info.cc +45 -47
  809. data/third_party/boringssl-with-bazel/crypto/x509/v3_int.cc +35 -33
  810. data/third_party/boringssl-with-bazel/crypto/x509/v3_lib.cc +106 -61
  811. data/third_party/boringssl-with-bazel/crypto/x509/v3_ncons.cc +642 -358
  812. data/third_party/boringssl-with-bazel/crypto/x509/v3_ocsp.cc +25 -22
  813. data/third_party/boringssl-with-bazel/crypto/x509/v3_pcons.cc +15 -14
  814. data/third_party/boringssl-with-bazel/crypto/x509/v3_pmaps.cc +16 -15
  815. data/third_party/boringssl-with-bazel/crypto/x509/v3_prn.cc +6 -6
  816. data/third_party/boringssl-with-bazel/crypto/x509/v3_purp.cc +150 -137
  817. data/third_party/boringssl-with-bazel/crypto/x509/v3_skey.cc +23 -26
  818. data/third_party/boringssl-with-bazel/crypto/x509/v3_utl.cc +151 -178
  819. data/third_party/boringssl-with-bazel/crypto/x509/x509.cc +1 -1
  820. data/third_party/boringssl-with-bazel/crypto/x509/x509_att.cc +32 -30
  821. data/third_party/boringssl-with-bazel/crypto/x509/x509_cmp.cc +95 -88
  822. data/third_party/boringssl-with-bazel/crypto/x509/x509_d2.cc +9 -9
  823. data/third_party/boringssl-with-bazel/crypto/x509/x509_def.cc +6 -8
  824. data/third_party/boringssl-with-bazel/crypto/x509/x509_ext.cc +46 -24
  825. data/third_party/boringssl-with-bazel/crypto/x509/x509_lu.cc +211 -195
  826. data/third_party/boringssl-with-bazel/crypto/x509/x509_obj.cc +20 -16
  827. data/third_party/boringssl-with-bazel/crypto/x509/x509_req.cc +37 -46
  828. data/third_party/boringssl-with-bazel/crypto/x509/x509_set.cc +62 -90
  829. data/third_party/boringssl-with-bazel/crypto/x509/x509_trs.cc +18 -13
  830. data/third_party/boringssl-with-bazel/crypto/x509/x509_v3.cc +33 -33
  831. data/third_party/boringssl-with-bazel/crypto/x509/x509_vfy.cc +109 -110
  832. data/third_party/boringssl-with-bazel/crypto/x509/x509_vpm.cc +56 -47
  833. data/third_party/boringssl-with-bazel/crypto/x509/x509cset.cc +27 -40
  834. data/third_party/boringssl-with-bazel/crypto/x509/x509name.cc +77 -67
  835. data/third_party/boringssl-with-bazel/crypto/x509/x509rset.cc +5 -17
  836. data/third_party/boringssl-with-bazel/crypto/x509/x509spki.cc +13 -13
  837. data/third_party/boringssl-with-bazel/crypto/x509/x_algor.cc +131 -24
  838. data/third_party/boringssl-with-bazel/crypto/x509/x_all.cc +72 -39
  839. data/third_party/boringssl-with-bazel/crypto/x509/x_attrib.cc +10 -4
  840. data/third_party/boringssl-with-bazel/crypto/x509/x_crl.cc +77 -44
  841. data/third_party/boringssl-with-bazel/crypto/x509/x_exten.cc +6 -0
  842. data/third_party/boringssl-with-bazel/crypto/x509/x_name.cc +311 -383
  843. data/third_party/boringssl-with-bazel/crypto/x509/x_pubkey.cc +129 -82
  844. data/third_party/boringssl-with-bazel/crypto/x509/x_req.cc +11 -6
  845. data/third_party/boringssl-with-bazel/crypto/x509/x_sig.cc +4 -4
  846. data/third_party/boringssl-with-bazel/crypto/x509/x_spki.cc +11 -1
  847. data/third_party/boringssl-with-bazel/crypto/x509/x_x509.cc +285 -280
  848. data/third_party/boringssl-with-bazel/crypto/x509/x_x509a.cc +60 -60
  849. data/third_party/boringssl-with-bazel/crypto/xwing/xwing.cc +257 -0
  850. data/third_party/boringssl-with-bazel/gen/boringssl_prefix_symbols_internal_x86_64_win_asm.inc +301 -0
  851. data/third_party/boringssl-with-bazel/gen/boringssl_prefix_symbols_internal_x86_win_asm.inc +301 -0
  852. data/third_party/boringssl-with-bazel/gen/crypto/err_data.cc +526 -500
  853. data/third_party/boringssl-with-bazel/include/openssl/aead.h +286 -114
  854. data/third_party/boringssl-with-bazel/include/openssl/aes.h +43 -43
  855. data/third_party/boringssl-with-bazel/include/openssl/asm_base.h +29 -16
  856. data/third_party/boringssl-with-bazel/include/openssl/asn1.h +641 -631
  857. data/third_party/boringssl-with-bazel/include/openssl/asn1t.h +7 -9
  858. data/third_party/boringssl-with-bazel/include/openssl/base.h +34 -54
  859. data/third_party/boringssl-with-bazel/include/openssl/base64.h +30 -30
  860. data/third_party/boringssl-with-bazel/include/openssl/bio.h +373 -316
  861. data/third_party/boringssl-with-bazel/include/openssl/blake2.h +15 -11
  862. data/third_party/boringssl-with-bazel/include/openssl/blowfish.h +10 -3
  863. data/third_party/boringssl-with-bazel/include/openssl/bn.h +298 -306
  864. data/third_party/boringssl-with-bazel/include/openssl/buf.h +14 -14
  865. data/third_party/boringssl-with-bazel/include/openssl/bytestring.h +272 -207
  866. data/third_party/boringssl-with-bazel/include/openssl/cast.h +45 -8
  867. data/third_party/boringssl-with-bazel/include/openssl/chacha.h +3 -3
  868. data/third_party/boringssl-with-bazel/include/openssl/cipher.h +334 -152
  869. data/third_party/boringssl-with-bazel/include/openssl/cmac.h +13 -13
  870. data/third_party/boringssl-with-bazel/include/openssl/cms.h +35 -34
  871. data/third_party/boringssl-with-bazel/include/openssl/conf.h +15 -14
  872. data/third_party/boringssl-with-bazel/include/openssl/crypto.h +15 -13
  873. data/third_party/boringssl-with-bazel/include/openssl/ctrdrbg.h +49 -15
  874. data/third_party/boringssl-with-bazel/include/openssl/curve25519.h +24 -24
  875. data/third_party/boringssl-with-bazel/include/openssl/des.h +22 -16
  876. data/third_party/boringssl-with-bazel/include/openssl/dh.h +95 -95
  877. data/third_party/boringssl-with-bazel/include/openssl/digest.h +140 -71
  878. data/third_party/boringssl-with-bazel/include/openssl/dsa.h +101 -101
  879. data/third_party/boringssl-with-bazel/include/openssl/ec.h +143 -119
  880. data/third_party/boringssl-with-bazel/include/openssl/ec_key.h +97 -97
  881. data/third_party/boringssl-with-bazel/include/openssl/ecdh.h +9 -9
  882. data/third_party/boringssl-with-bazel/include/openssl/ecdsa.h +89 -46
  883. data/third_party/boringssl-with-bazel/include/openssl/engine.h +5 -5
  884. data/third_party/boringssl-with-bazel/include/openssl/err.h +73 -71
  885. data/third_party/boringssl-with-bazel/include/openssl/evp.h +824 -344
  886. data/third_party/boringssl-with-bazel/include/openssl/evp_errors.h +9 -2
  887. data/third_party/boringssl-with-bazel/include/openssl/ex_data.h +27 -32
  888. data/third_party/boringssl-with-bazel/include/openssl/hkdf.h +6 -6
  889. data/third_party/boringssl-with-bazel/include/openssl/hmac.h +31 -31
  890. data/third_party/boringssl-with-bazel/include/openssl/hpke.h +133 -117
  891. data/third_party/boringssl-with-bazel/include/openssl/hrss.h +14 -8
  892. data/third_party/boringssl-with-bazel/include/openssl/kdf.h +20 -19
  893. data/third_party/boringssl-with-bazel/include/openssl/lhash.h +4 -25
  894. data/third_party/boringssl-with-bazel/include/openssl/md4.h +14 -7
  895. data/third_party/boringssl-with-bazel/include/openssl/md5.h +7 -7
  896. data/third_party/boringssl-with-bazel/include/openssl/mem.h +38 -38
  897. data/third_party/boringssl-with-bazel/include/openssl/mldsa.h +380 -24
  898. data/third_party/boringssl-with-bazel/include/openssl/mlkem.h +43 -43
  899. data/third_party/boringssl-with-bazel/include/openssl/nid.h +1297 -2
  900. data/third_party/boringssl-with-bazel/include/openssl/obj.h +49 -49
  901. data/third_party/boringssl-with-bazel/include/openssl/opensslconf.h +30 -0
  902. data/third_party/boringssl-with-bazel/include/openssl/params.h +42 -0
  903. data/third_party/boringssl-with-bazel/include/openssl/pem.h +39 -30
  904. data/third_party/boringssl-with-bazel/include/openssl/pkcs7.h +40 -40
  905. data/third_party/boringssl-with-bazel/include/openssl/pkcs8.h +69 -63
  906. data/third_party/boringssl-with-bazel/include/openssl/poly1305.h +8 -5
  907. data/third_party/boringssl-with-bazel/include/openssl/pool.h +54 -25
  908. data/third_party/boringssl-with-bazel/include/openssl/posix_time.h +6 -6
  909. data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols.h +7866 -0
  910. data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols_internal_S.h +585 -0
  911. data/third_party/boringssl-with-bazel/include/openssl/prefix_symbols_internal_c.h +305 -0
  912. data/third_party/boringssl-with-bazel/include/openssl/rand.h +18 -18
  913. data/third_party/boringssl-with-bazel/include/openssl/rc4.h +4 -4
  914. data/third_party/boringssl-with-bazel/include/openssl/ripemd.h +15 -10
  915. data/third_party/boringssl-with-bazel/include/openssl/rsa.h +272 -235
  916. data/third_party/boringssl-with-bazel/include/openssl/service_indicator.h +4 -81
  917. data/third_party/boringssl-with-bazel/include/openssl/sha.h +43 -166
  918. data/third_party/boringssl-with-bazel/include/openssl/sha2.h +201 -0
  919. data/third_party/boringssl-with-bazel/include/openssl/slhdsa.h +100 -48
  920. data/third_party/boringssl-with-bazel/include/openssl/span.h +190 -75
  921. data/third_party/boringssl-with-bazel/include/openssl/ssl.h +2168 -1567
  922. data/third_party/boringssl-with-bazel/include/openssl/ssl3.h +11 -69
  923. data/third_party/boringssl-with-bazel/include/openssl/stack.h +135 -80
  924. data/third_party/boringssl-with-bazel/include/openssl/target.h +13 -1
  925. data/third_party/boringssl-with-bazel/include/openssl/thread.h +0 -10
  926. data/third_party/boringssl-with-bazel/include/openssl/tls1.h +31 -310
  927. data/third_party/boringssl-with-bazel/include/openssl/tls_prf.h +47 -0
  928. data/third_party/boringssl-with-bazel/include/openssl/trust_token.h +97 -92
  929. data/third_party/boringssl-with-bazel/include/openssl/type_check.h +1 -1
  930. data/third_party/boringssl-with-bazel/include/openssl/x509.h +1805 -1857
  931. data/third_party/boringssl-with-bazel/include/openssl/x509v3.h +1 -1
  932. data/third_party/boringssl-with-bazel/include/openssl/xwing.h +115 -0
  933. data/third_party/boringssl-with-bazel/ssl/bio_ssl.cc +24 -19
  934. data/third_party/boringssl-with-bazel/ssl/d1_both.cc +59 -57
  935. data/third_party/boringssl-with-bazel/ssl/d1_lib.cc +53 -42
  936. data/third_party/boringssl-with-bazel/ssl/d1_pkt.cc +4 -4
  937. data/third_party/boringssl-with-bazel/ssl/d1_srtp.cc +2 -2
  938. data/third_party/boringssl-with-bazel/ssl/dtls_method.cc +10 -10
  939. data/third_party/boringssl-with-bazel/ssl/dtls_record.cc +6 -6
  940. data/third_party/boringssl-with-bazel/ssl/encrypted_client_hello.cc +61 -71
  941. data/third_party/boringssl-with-bazel/ssl/extensions.cc +967 -366
  942. data/third_party/boringssl-with-bazel/ssl/handoff.cc +77 -38
  943. data/third_party/boringssl-with-bazel/ssl/handshake.cc +63 -30
  944. data/third_party/boringssl-with-bazel/ssl/handshake_client.cc +129 -85
  945. data/third_party/boringssl-with-bazel/ssl/handshake_server.cc +116 -68
  946. data/third_party/boringssl-with-bazel/ssl/internal.h +983 -1207
  947. data/third_party/boringssl-with-bazel/ssl/s3_both.cc +34 -29
  948. data/third_party/boringssl-with-bazel/ssl/s3_lib.cc +4 -3
  949. data/third_party/boringssl-with-bazel/ssl/s3_pkt.cc +12 -12
  950. data/third_party/boringssl-with-bazel/ssl/ssl_aead_ctx.cc +5 -5
  951. data/third_party/boringssl-with-bazel/ssl/ssl_asn1.cc +114 -59
  952. data/third_party/boringssl-with-bazel/ssl/ssl_buffer.cc +17 -18
  953. data/third_party/boringssl-with-bazel/ssl/ssl_cert.cc +99 -61
  954. data/third_party/boringssl-with-bazel/ssl/ssl_cipher.cc +143 -134
  955. data/third_party/boringssl-with-bazel/ssl/ssl_credential.cc +188 -90
  956. data/third_party/boringssl-with-bazel/ssl/ssl_file.cc +132 -225
  957. data/third_party/boringssl-with-bazel/ssl/ssl_key_share.cc +79 -7
  958. data/third_party/boringssl-with-bazel/ssl/ssl_lib.cc +698 -302
  959. data/third_party/boringssl-with-bazel/ssl/ssl_privkey.cc +102 -45
  960. data/third_party/boringssl-with-bazel/ssl/ssl_session.cc +117 -102
  961. data/third_party/boringssl-with-bazel/ssl/ssl_transcript.cc +3 -3
  962. data/third_party/boringssl-with-bazel/ssl/ssl_versions.cc +24 -24
  963. data/third_party/boringssl-with-bazel/ssl/ssl_x509.cc +184 -170
  964. data/third_party/boringssl-with-bazel/ssl/t1_enc.cc +12 -10
  965. data/third_party/boringssl-with-bazel/ssl/tls13_both.cc +86 -54
  966. data/third_party/boringssl-with-bazel/ssl/tls13_client.cc +176 -90
  967. data/third_party/boringssl-with-bazel/ssl/tls13_enc.cc +166 -112
  968. data/third_party/boringssl-with-bazel/ssl/tls13_server.cc +188 -97
  969. data/third_party/boringssl-with-bazel/ssl/tls_method.cc +23 -23
  970. data/third_party/boringssl-with-bazel/ssl/tls_record.cc +17 -14
  971. data/third_party/boringssl-with-bazel/third_party/fiat/bedrock_unverified_bareminimum.c.inc +47 -0
  972. data/third_party/boringssl-with-bazel/third_party/fiat/bedrock_unverified_platform.c.inc +137 -0
  973. data/third_party/boringssl-with-bazel/third_party/fiat/curve25519_64_adx.h +37 -33
  974. data/third_party/boringssl-with-bazel/third_party/fiat/p256_64.h +4 -93
  975. data/third_party/boringssl-with-bazel/third_party/fiat/p256_64_msvc.h +4 -69
  976. data/third_party/boringssl-with-bazel/third_party/fiat/p256_field_32.br.c.inc +71 -0
  977. data/third_party/boringssl-with-bazel/third_party/fiat/p256_field_64.br.c.inc +84 -0
  978. data/third_party/boringssl-with-bazel/third_party/fiat/p256_point.br.c.inc +166 -0
  979. metadata +77 -52
  980. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +0 -240
  981. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +0 -56
  982. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb.h +0 -157
  983. data/src/core/ext/upb-gen/src/proto/grpc/health/v1/health.upb_minitable.c +0 -72
  984. data/src/core/ext/upbdefs-gen/src/proto/grpc/lookup/v1/rls_config.upbdefs.c +0 -181
  985. data/third_party/abseil-cpp/absl/base/internal/identity.h +0 -39
  986. data/third_party/abseil-cpp/absl/base/internal/nullability_deprecated.h +0 -106
  987. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +0 -105
  988. data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +0 -50
  989. data/third_party/abseil-cpp/absl/strings/string_view.cc +0 -257
  990. data/third_party/boringssl-with-bazel/crypto/evp/p_dh_asn1.cc +0 -142
  991. data/third_party/boringssl-with-bazel/crypto/evp/p_dsa_asn1.cc +0 -279
  992. data/third_party/boringssl-with-bazel/crypto/evp/p_ec_asn1.cc +0 -286
  993. data/third_party/boringssl-with-bazel/crypto/evp/p_ed25519_asn1.cc +0 -225
  994. data/third_party/boringssl-with-bazel/crypto/evp/p_rsa_asn1.cc +0 -198
  995. data/third_party/boringssl-with-bazel/crypto/evp/p_x25519_asn1.cc +0 -237
  996. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p224-64.cc.inc +0 -1163
  997. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256-nistz.cc.inc +0 -741
  998. data/third_party/boringssl-with-bazel/crypto/fipsmodule/ec/p256-nistz.h +0 -207
  999. data/third_party/boringssl-with-bazel/crypto/fipsmodule/rsa/blinding.cc.inc +0 -147
  1000. data/third_party/boringssl-with-bazel/crypto/rand/getrandom_fillin.h +0 -64
  1001. data/third_party/boringssl-with-bazel/crypto/rand/passive.cc +0 -178
  1002. data/third_party/boringssl-with-bazel/crypto/x509/ext_dat.h +0 -92
  1003. data/third_party/boringssl-with-bazel/include/openssl/bcm_public.h +0 -82
  1004. data/third_party/boringssl-with-bazel/include/openssl/experimental/kyber.h +0 -146
@@ -54,130 +54,148 @@ struct cbs_st {
54
54
  #endif
55
55
  };
56
56
 
57
- // CBS_init sets |cbs| to point to |data|. It does not take ownership of
58
- // |data|.
57
+ // CBS_init sets `cbs` to point to `data`. It does not take ownership of
58
+ // `data`.
59
59
  OPENSSL_INLINE void CBS_init(CBS *cbs, const uint8_t *data, size_t len) {
60
60
  cbs->data = data;
61
61
  cbs->len = len;
62
62
  }
63
63
 
64
- // CBS_skip advances |cbs| by |len| bytes. It returns one on success and zero
64
+ // CBS_skip advances `cbs` by `len` bytes. It returns one on success and zero
65
65
  // otherwise.
66
66
  OPENSSL_EXPORT int CBS_skip(CBS *cbs, size_t len);
67
67
 
68
- // CBS_data returns a pointer to the contents of |cbs|.
68
+ // CBS_data returns a pointer to the contents of `cbs`.
69
69
  OPENSSL_INLINE const uint8_t *CBS_data(const CBS *cbs) { return cbs->data; }
70
70
 
71
- // CBS_len returns the number of bytes remaining in |cbs|.
71
+ // CBS_len returns the number of bytes remaining in `cbs`.
72
72
  OPENSSL_INLINE size_t CBS_len(const CBS *cbs) { return cbs->len; }
73
73
 
74
- // CBS_stow copies the current contents of |cbs| into |*out_ptr| and
75
- // |*out_len|. If |*out_ptr| is not NULL, the contents are freed with
74
+ // CBS_stow copies the current contents of `cbs` into `*out_ptr` and
75
+ // `*out_len`. If `*out_ptr` is not NULL, the contents are freed with
76
76
  // OPENSSL_free. It returns one on success and zero on allocation failure. On
77
- // success, |*out_ptr| should be freed with OPENSSL_free. If |cbs| is empty,
78
- // |*out_ptr| will be NULL.
77
+ // success, `*out_ptr` should be freed with OPENSSL_free. If `cbs` is empty,
78
+ // `*out_ptr` will be NULL.
79
79
  OPENSSL_EXPORT int CBS_stow(const CBS *cbs, uint8_t **out_ptr, size_t *out_len);
80
80
 
81
- // CBS_strdup copies the current contents of |cbs| into |*out_ptr| as a
82
- // NUL-terminated C string. If |*out_ptr| is not NULL, the contents are freed
81
+ // CBS_strdup copies the current contents of `cbs` into `*out_ptr` as a
82
+ // NUL-terminated C string. If `*out_ptr` is not NULL, the contents are freed
83
83
  // with OPENSSL_free. It returns one on success and zero on allocation
84
- // failure. On success, |*out_ptr| should be freed with OPENSSL_free.
84
+ // failure. On success, `*out_ptr` should be freed with OPENSSL_free.
85
85
  //
86
- // NOTE: If |cbs| contains NUL bytes, the string will be truncated. Call
87
- // |CBS_contains_zero_byte(cbs)| to check for NUL bytes.
86
+ // NOTE: If `cbs` contains NUL bytes, the string will be truncated. Call
87
+ // `CBS_contains_zero_byte(cbs)` to check for NUL bytes.
88
88
  OPENSSL_EXPORT int CBS_strdup(const CBS *cbs, char **out_ptr);
89
89
 
90
- // CBS_contains_zero_byte returns one if the current contents of |cbs| contains
90
+ // CBS_contains_zero_byte returns one if the current contents of `cbs` contains
91
91
  // a NUL byte and zero otherwise.
92
92
  OPENSSL_EXPORT int CBS_contains_zero_byte(const CBS *cbs);
93
93
 
94
- // CBS_mem_equal compares the current contents of |cbs| with the |len| bytes
95
- // starting at |data|. If they're equal, it returns one, otherwise zero. If the
94
+ // CBS_mem_equal compares the current contents of `cbs` with the `len` bytes
95
+ // starting at `data`. If they're equal, it returns one, otherwise zero. If the
96
96
  // lengths match, it uses a constant-time comparison.
97
97
  OPENSSL_EXPORT int CBS_mem_equal(const CBS *cbs, const uint8_t *data,
98
98
  size_t len);
99
99
 
100
- // CBS_get_u8 sets |*out| to the next uint8_t from |cbs| and advances |cbs|. It
100
+ // CBS_get_u8 sets `*out` to the next uint8_t from `cbs` and advances `cbs`. It
101
101
  // returns one on success and zero on error.
102
102
  OPENSSL_EXPORT int CBS_get_u8(CBS *cbs, uint8_t *out);
103
103
 
104
- // CBS_get_u16 sets |*out| to the next, big-endian uint16_t from |cbs| and
105
- // advances |cbs|. It returns one on success and zero on error.
104
+ // CBS_get_u16 sets `*out` to the next, big-endian uint16_t from `cbs` and
105
+ // advances `cbs`. It returns one on success and zero on error.
106
106
  OPENSSL_EXPORT int CBS_get_u16(CBS *cbs, uint16_t *out);
107
107
 
108
- // CBS_get_u16le sets |*out| to the next, little-endian uint16_t from |cbs| and
109
- // advances |cbs|. It returns one on success and zero on error.
108
+ // CBS_get_u16le sets `*out` to the next, little-endian uint16_t from `cbs` and
109
+ // advances `cbs`. It returns one on success and zero on error.
110
110
  OPENSSL_EXPORT int CBS_get_u16le(CBS *cbs, uint16_t *out);
111
111
 
112
- // CBS_get_u24 sets |*out| to the next, big-endian 24-bit value from |cbs| and
113
- // advances |cbs|. It returns one on success and zero on error.
112
+ // CBS_get_u24 sets `*out` to the next, big-endian 24-bit value from `cbs` and
113
+ // advances `cbs`. It returns one on success and zero on error.
114
114
  OPENSSL_EXPORT int CBS_get_u24(CBS *cbs, uint32_t *out);
115
115
 
116
- // CBS_get_u32 sets |*out| to the next, big-endian uint32_t value from |cbs|
117
- // and advances |cbs|. It returns one on success and zero on error.
116
+ // CBS_get_u32 sets `*out` to the next, big-endian uint32_t value from `cbs`
117
+ // and advances `cbs`. It returns one on success and zero on error.
118
118
  OPENSSL_EXPORT int CBS_get_u32(CBS *cbs, uint32_t *out);
119
119
 
120
- // CBS_get_u32le sets |*out| to the next, little-endian uint32_t value from
121
- // |cbs| and advances |cbs|. It returns one on success and zero on error.
120
+ // CBS_get_u32le sets `*out` to the next, little-endian uint32_t value from
121
+ // `cbs` and advances `cbs`. It returns one on success and zero on error.
122
122
  OPENSSL_EXPORT int CBS_get_u32le(CBS *cbs, uint32_t *out);
123
123
 
124
- // CBS_get_u64 sets |*out| to the next, big-endian uint64_t value from |cbs|
125
- // and advances |cbs|. It returns one on success and zero on error.
124
+ // CBS_get_u48 sets `*out` to the next, big-endian 48-bit value from `cbs` and
125
+ // advances `cbs`. It returns one on success and zero on error.
126
+ OPENSSL_EXPORT int CBS_get_u48(CBS *cbs, uint64_t *out);
127
+
128
+ // CBS_get_u64 sets `*out` to the next, big-endian uint64_t value from `cbs`
129
+ // and advances `cbs`. It returns one on success and zero on error.
126
130
  OPENSSL_EXPORT int CBS_get_u64(CBS *cbs, uint64_t *out);
127
131
 
128
- // CBS_get_u64le sets |*out| to the next, little-endian uint64_t value from
129
- // |cbs| and advances |cbs|. It returns one on success and zero on error.
132
+ // CBS_get_u64le sets `*out` to the next, little-endian uint64_t value from
133
+ // `cbs` and advances `cbs`. It returns one on success and zero on error.
130
134
  OPENSSL_EXPORT int CBS_get_u64le(CBS *cbs, uint64_t *out);
131
135
 
132
- // CBS_get_last_u8 sets |*out| to the last uint8_t from |cbs| and shortens
133
- // |cbs|. It returns one on success and zero on error.
136
+ // CBS_get_last_u8 sets `*out` to the last uint8_t from `cbs` and shortens
137
+ // `cbs`. It returns one on success and zero on error.
134
138
  OPENSSL_EXPORT int CBS_get_last_u8(CBS *cbs, uint8_t *out);
135
139
 
136
- // CBS_get_bytes sets |*out| to the next |len| bytes from |cbs| and advances
137
- // |cbs|. It returns one on success and zero on error.
140
+ // CBS_get_bytes sets `*out` to the next `len` bytes from `cbs` and advances
141
+ // `cbs`. It returns one on success and zero on error.
138
142
  OPENSSL_EXPORT int CBS_get_bytes(CBS *cbs, CBS *out, size_t len);
139
143
 
140
- // CBS_copy_bytes copies the next |len| bytes from |cbs| to |out| and advances
141
- // |cbs|. It returns one on success and zero on error.
144
+ // CBS_copy_bytes copies the next `len` bytes from `cbs` to `out` and advances
145
+ // `cbs`. It returns one on success and zero on error.
142
146
  OPENSSL_EXPORT int CBS_copy_bytes(CBS *cbs, uint8_t *out, size_t len);
143
147
 
144
- // CBS_get_u8_length_prefixed sets |*out| to the contents of an 8-bit,
145
- // length-prefixed value from |cbs| and advances |cbs| over it. It returns one
148
+ // CBS_get_u8_length_prefixed sets `*out` to the contents of an 8-bit,
149
+ // length-prefixed value from `cbs` and advances `cbs` over it. It returns one
146
150
  // on success and zero on error.
147
151
  OPENSSL_EXPORT int CBS_get_u8_length_prefixed(CBS *cbs, CBS *out);
148
152
 
149
- // CBS_get_u16_length_prefixed sets |*out| to the contents of a 16-bit,
150
- // big-endian, length-prefixed value from |cbs| and advances |cbs| over it. It
153
+ // CBS_get_u16_length_prefixed sets `*out` to the contents of a 16-bit,
154
+ // big-endian, length-prefixed value from `cbs` and advances `cbs` over it. It
151
155
  // returns one on success and zero on error.
152
156
  OPENSSL_EXPORT int CBS_get_u16_length_prefixed(CBS *cbs, CBS *out);
153
157
 
154
- // CBS_get_u24_length_prefixed sets |*out| to the contents of a 24-bit,
155
- // big-endian, length-prefixed value from |cbs| and advances |cbs| over it. It
158
+ // CBS_get_u24_length_prefixed sets `*out` to the contents of a 24-bit,
159
+ // big-endian, length-prefixed value from `cbs` and advances `cbs` over it. It
156
160
  // returns one on success and zero on error.
157
161
  OPENSSL_EXPORT int CBS_get_u24_length_prefixed(CBS *cbs, CBS *out);
158
162
 
159
- // CBS_get_until_first finds the first instance of |c| in |cbs|. If found, it
160
- // sets |*out| to the text before the match, advances |cbs| over it, and returns
161
- // one. Otherwise, it returns zero and leaves |cbs| unmodified.
163
+ // CBS_get_until_first finds the first instance of `c` in `cbs`. If found, it
164
+ // sets `*out` to the text before the match, advances `cbs` over it, and returns
165
+ // one. Otherwise, it returns zero and leaves `cbs` unmodified.
162
166
  OPENSSL_EXPORT int CBS_get_until_first(CBS *cbs, CBS *out, uint8_t c);
163
167
 
164
- // CBS_get_u64_decimal reads a decimal integer from |cbs| and writes it to
165
- // |*out|. It stops reading at the end of the string, or the first non-digit
168
+ // CBS_get_until_first_of finds the first byte in `cbs` matching one of the
169
+ // characters in `chars`, which is a NUL-terminated C string. If found, it sets
170
+ // `*out` to the text before the match, advances `cbs` over it, and returns one.
171
+ // Otherwise, it returns zero and leaves `cbs` unmodified.
172
+ OPENSSL_EXPORT int CBS_get_until_first_of(CBS *cbs, CBS *out,
173
+ const char *chars);
174
+
175
+ // CBS_get_until_first_not_of finds the first byte in `cbs` that does not match
176
+ // any of the characters in `chars`, which is a NUL-terminated C string. If
177
+ // found, it sets `*out` to the text before the match, advances `cbs` over it,
178
+ // and returns one. Otherwise, it returns zero and leaves `cbs` unmodified.
179
+ OPENSSL_EXPORT int CBS_get_until_first_not_of(CBS *cbs, CBS *out,
180
+ const char *chars);
181
+
182
+ // CBS_get_u64_decimal reads a decimal integer from `cbs` and writes it to
183
+ // `*out`. It stops reading at the end of the string, or the first non-digit
166
184
  // character. It returns one on success and zero on error. This function behaves
167
- // analogously to |strtoul| except it does not accept empty inputs, leading
185
+ // analogously to `strtoul` except it does not accept empty inputs, leading
168
186
  // zeros, or negative values.
169
187
  OPENSSL_EXPORT int CBS_get_u64_decimal(CBS *cbs, uint64_t *out);
170
188
 
171
189
 
172
190
  // Parsing ASN.1
173
191
  //
174
- // |CBS| may be used to parse DER structures. Rather than using a schema
192
+ // `CBS` may be used to parse DER structures. Rather than using a schema
175
193
  // compiler, the following functions act on tag-length-value elements in the
176
194
  // serialization itself. Thus the caller is responsible for looping over a
177
195
  // SEQUENCE, branching on CHOICEs or OPTIONAL fields, checking for trailing
178
- // data, and handling explict vs. implicit tagging.
196
+ // data, and handling explicit vs. implicit tagging.
179
197
  //
180
- // Tags are represented as |CBS_ASN1_TAG| values in memory. The upper few bits
198
+ // Tags are represented as `CBS_ASN1_TAG` values in memory. The upper few bits
181
199
  // store the class and constructed bit, and the remaining bits store the tag
182
200
  // number. Note this differs from the DER serialization, to support tag numbers
183
201
  // beyond 31. Consumers must use the constants defined below to decompose or
@@ -235,46 +253,51 @@ OPENSSL_EXPORT int CBS_get_u64_decimal(CBS *cbs, uint64_t *out);
235
253
  #define CBS_ASN1_UNIVERSALSTRING 0x1cu
236
254
  #define CBS_ASN1_BMPSTRING 0x1eu
237
255
 
238
- // CBS_get_asn1 sets |*out| to the contents of DER-encoded, ASN.1 element (not
239
- // including tag and length bytes) and advances |cbs| over it. The ASN.1
240
- // element must match |tag_value|. It returns one on success and zero
256
+ // CBS_get_asn1 sets `*out` to the contents of DER-encoded, ASN.1 element (not
257
+ // including tag and length bytes) and advances `cbs` over it. The ASN.1
258
+ // element must match `tag_value`. It returns one on success and zero
241
259
  // on error.
242
260
  OPENSSL_EXPORT int CBS_get_asn1(CBS *cbs, CBS *out, CBS_ASN1_TAG tag_value);
243
261
 
244
- // CBS_get_asn1_element acts like |CBS_get_asn1| but |out| will include the
262
+ // CBS_get_asn1_element acts like `CBS_get_asn1` but `out` will include the
245
263
  // ASN.1 header bytes too.
246
264
  OPENSSL_EXPORT int CBS_get_asn1_element(CBS *cbs, CBS *out,
247
265
  CBS_ASN1_TAG tag_value);
248
266
 
249
- // CBS_peek_asn1_tag looks ahead at the next ASN.1 tag and returns one
250
- // if the next ASN.1 element on |cbs| would have tag |tag_value|. If
251
- // |cbs| is empty or the tag does not match, it returns zero. Note: if
252
- // it returns one, CBS_get_asn1 may still fail if the rest of the
267
+ // CBS_peek_any_asn1_tag looks ahead at the next ASN.1 tag and returns it. If a
268
+ // tag could not be parsed, it returns zero, which is never a valid tag. Note:
269
+ // if it returns non-zero, `CBS_get_asn1` may still fail if the rest of the
253
270
  // element is malformed.
271
+ OPENSSL_EXPORT CBS_ASN1_TAG CBS_peek_any_asn1_tag(const CBS *cbs);
272
+
273
+ // CBS_peek_asn1_tag looks ahead at the next ASN.1 tag and returns one if the
274
+ // next ASN.1 element on `cbs` would have tag `tag_value`. If `cbs` is empty or
275
+ // the tag does not match, it returns zero. Note: if it returns one,
276
+ // `CBS_get_asn1` may still fail if the rest of the element is malformed.
254
277
  OPENSSL_EXPORT int CBS_peek_asn1_tag(const CBS *cbs, CBS_ASN1_TAG tag_value);
255
278
 
256
- // CBS_get_any_asn1 sets |*out| to contain the next ASN.1 element from |*cbs|
257
- // (not including tag and length bytes), sets |*out_tag| to the tag number, and
258
- // advances |*cbs|. It returns one on success and zero on error. Either of |out|
259
- // and |out_tag| may be NULL to ignore the value.
279
+ // CBS_get_any_asn1 sets `*out` to contain the next ASN.1 element from `*cbs`
280
+ // (not including tag and length bytes), sets `*out_tag` to the tag number, and
281
+ // advances `*cbs`. It returns one on success and zero on error. Either of `out`
282
+ // and `out_tag` may be NULL to ignore the value.
260
283
  OPENSSL_EXPORT int CBS_get_any_asn1(CBS *cbs, CBS *out,
261
284
  CBS_ASN1_TAG *out_tag);
262
285
 
263
- // CBS_get_any_asn1_element sets |*out| to contain the next ASN.1 element from
264
- // |*cbs| (including header bytes) and advances |*cbs|. It sets |*out_tag| to
265
- // the tag number and |*out_header_len| to the length of the ASN.1 header. Each
266
- // of |out|, |out_tag|, and |out_header_len| may be NULL to ignore the value.
286
+ // CBS_get_any_asn1_element sets `*out` to contain the next ASN.1 element from
287
+ // `*cbs` (including header bytes) and advances `*cbs`. It sets `*out_tag` to
288
+ // the tag number and `*out_header_len` to the length of the ASN.1 header. Each
289
+ // of `out`, `out_tag`, and `out_header_len` may be NULL to ignore the value.
267
290
  OPENSSL_EXPORT int CBS_get_any_asn1_element(CBS *cbs, CBS *out,
268
291
  CBS_ASN1_TAG *out_tag,
269
292
  size_t *out_header_len);
270
293
 
271
- // CBS_get_any_ber_asn1_element acts the same as |CBS_get_any_asn1_element| but
294
+ // CBS_get_any_ber_asn1_element acts the same as `CBS_get_any_asn1_element` but
272
295
  // also allows indefinite-length elements to be returned and does not enforce
273
- // that lengths are minimal. It sets |*out_indefinite| to one if the length was
274
- // indefinite and zero otherwise. If indefinite, |*out_header_len| and
275
- // |CBS_len(out)| will be equal as only the header is returned (although this is
276
- // also true for empty elements so |*out_indefinite| should be checked). If
277
- // |out_ber_found| is not NULL then it is set to one if any case of invalid DER
296
+ // that lengths are minimal. It sets `*out_indefinite` to one if the length was
297
+ // indefinite and zero otherwise. If indefinite, `*out_header_len` and
298
+ // `CBS_len(out)` will be equal as only the header is returned (although this is
299
+ // also true for empty elements so `*out_indefinite` should be checked). If
300
+ // `out_ber_found` is not NULL then it is set to one if any case of invalid DER
278
301
  // but valid BER is found, and to zero otherwise.
279
302
  //
280
303
  // This function will not successfully parse an end-of-contents (EOC) as an
@@ -286,14 +309,14 @@ OPENSSL_EXPORT int CBS_get_any_ber_asn1_element(CBS *cbs, CBS *out,
286
309
  int *out_ber_found,
287
310
  int *out_indefinite);
288
311
 
289
- // CBS_get_asn1_uint64 gets an ASN.1 INTEGER from |cbs| using |CBS_get_asn1|
290
- // and sets |*out| to its value. It returns one on success and zero on error,
312
+ // CBS_get_asn1_uint64 gets an ASN.1 INTEGER from `cbs` using `CBS_get_asn1`
313
+ // and sets `*out` to its value. It returns one on success and zero on error,
291
314
  // where error includes the integer being negative, or too large to represent
292
315
  // in 64 bits.
293
316
  OPENSSL_EXPORT int CBS_get_asn1_uint64(CBS *cbs, uint64_t *out);
294
317
 
295
- // CBS_get_asn1_uint64_with_tag gets an ASN.1 INTEGER from |cbs| using
296
- // |CBS_get_asn1| and sets |*out| to its value. |tag| is used to handle to
318
+ // CBS_get_asn1_uint64_with_tag gets an ASN.1 INTEGER from `cbs` using
319
+ // `CBS_get_asn1` and sets `*out` to its value. `tag` is used to handle to
297
320
  // handle implicitly tagged INTEGER fields. It returns one on success and zero
298
321
  // on error, where error includes the integer being negative, or too large to
299
322
  // represent in 64 bits.
@@ -301,35 +324,35 @@ OPENSSL_EXPORT int CBS_get_asn1_uint64_with_tag(CBS *cbs, uint64_t *out,
301
324
  CBS_ASN1_TAG tag);
302
325
 
303
326
 
304
- // CBS_get_asn1_int64 gets an ASN.1 INTEGER from |cbs| using |CBS_get_asn1|
305
- // and sets |*out| to its value. It returns one on success and zero on error,
327
+ // CBS_get_asn1_int64 gets an ASN.1 INTEGER from `cbs` using `CBS_get_asn1`
328
+ // and sets `*out` to its value. It returns one on success and zero on error,
306
329
  // where error includes the integer being too large to represent in 64 bits.
307
330
  OPENSSL_EXPORT int CBS_get_asn1_int64(CBS *cbs, int64_t *out);
308
331
 
309
- // CBS_get_asn1_int64_with_tag gets an ASN.1 INTEGER from |cbs| using
310
- // |CBS_get_asn1| and sets |*out| to its value. |tag| is used to handle to
332
+ // CBS_get_asn1_int64_with_tag gets an ASN.1 INTEGER from `cbs` using
333
+ // `CBS_get_asn1` and sets `*out` to its value. `tag` is used to handle to
311
334
  // handle implicitly tagged INTEGER fields. It returns one on success and zero
312
335
  // on error, where error includes the integer being too large to represent in 64
313
336
  // bits.
314
337
  OPENSSL_EXPORT int CBS_get_asn1_int64_with_tag(CBS *cbs, int64_t *out,
315
338
  CBS_ASN1_TAG tag);
316
339
 
317
- // CBS_get_asn1_bool gets an ASN.1 BOOLEAN from |cbs| and sets |*out| to zero
340
+ // CBS_get_asn1_bool gets an ASN.1 BOOLEAN from `cbs` and sets `*out` to zero
318
341
  // or one based on its value. It returns one on success or zero on error.
319
342
  OPENSSL_EXPORT int CBS_get_asn1_bool(CBS *cbs, int *out);
320
343
 
321
- // CBS_get_optional_asn1 gets an optional explicitly-tagged element from |cbs|
322
- // tagged with |tag| and sets |*out| to its contents, or ignores it if |out| is
323
- // NULL. If present and if |out_present| is not NULL, it sets |*out_present| to
344
+ // CBS_get_optional_asn1 gets an optional explicitly-tagged element from `cbs`
345
+ // tagged with `tag` and sets `*out` to its contents, or ignores it if `out` is
346
+ // NULL. If present and if `out_present` is not NULL, it sets `*out_present` to
324
347
  // one, otherwise zero. It returns one on success, whether or not the element
325
348
  // was present, and zero on decode failure.
326
349
  OPENSSL_EXPORT int CBS_get_optional_asn1(CBS *cbs, CBS *out, int *out_present,
327
350
  CBS_ASN1_TAG tag);
328
351
 
329
352
  // CBS_get_optional_asn1_octet_string gets an optional
330
- // explicitly-tagged OCTET STRING from |cbs|. If present, it sets
331
- // |*out| to the string and |*out_present| to one. Otherwise, it sets
332
- // |*out| to empty and |*out_present| to zero. |out_present| may be
353
+ // explicitly-tagged OCTET STRING from `cbs`. If present, it sets
354
+ // `*out` to the string and `*out_present` to one. Otherwise, it sets
355
+ // `*out` to empty and `*out_present` to zero. `out_present` may be
333
356
  // NULL. It returns one on success, whether or not the element was
334
357
  // present, and zero on decode failure.
335
358
  OPENSSL_EXPORT int CBS_get_optional_asn1_octet_string(CBS *cbs, CBS *out,
@@ -337,8 +360,8 @@ OPENSSL_EXPORT int CBS_get_optional_asn1_octet_string(CBS *cbs, CBS *out,
337
360
  CBS_ASN1_TAG tag);
338
361
 
339
362
  // CBS_get_optional_asn1_uint64 gets an optional explicitly-tagged
340
- // INTEGER from |cbs|. If present, it sets |*out| to the
341
- // value. Otherwise, it sets |*out| to |default_value|. It returns one
363
+ // INTEGER from `cbs`. If present, it sets `*out` to the
364
+ // value. Otherwise, it sets `*out` to `default_value`. It returns one
342
365
  // on success, whether or not the element was present, and zero on
343
366
  // decode failure.
344
367
  OPENSSL_EXPORT int CBS_get_optional_asn1_uint64(CBS *cbs, uint64_t *out,
@@ -346,92 +369,108 @@ OPENSSL_EXPORT int CBS_get_optional_asn1_uint64(CBS *cbs, uint64_t *out,
346
369
  uint64_t default_value);
347
370
 
348
371
  // CBS_get_optional_asn1_bool gets an optional, explicitly-tagged BOOLEAN from
349
- // |cbs|. If present, it sets |*out| to either zero or one, based on the
350
- // boolean. Otherwise, it sets |*out| to |default_value|. It returns one on
372
+ // `cbs`. If present, it sets `*out` to either zero or one, based on the
373
+ // boolean. Otherwise, it sets `*out` to `default_value`. It returns one on
351
374
  // success, whether or not the element was present, and zero on decode
352
375
  // failure.
353
376
  OPENSSL_EXPORT int CBS_get_optional_asn1_bool(CBS *cbs, int *out,
354
377
  CBS_ASN1_TAG tag,
355
378
  int default_value);
356
379
 
357
- // CBS_is_valid_asn1_bitstring returns one if |cbs| is a valid ASN.1 BIT STRING
380
+ // CBS_is_valid_asn1_bitstring returns one if `cbs` is a valid ASN.1 BIT STRING
358
381
  // body and zero otherwise.
359
382
  OPENSSL_EXPORT int CBS_is_valid_asn1_bitstring(const CBS *cbs);
360
383
 
361
- // CBS_asn1_bitstring_has_bit returns one if |cbs| is a valid ASN.1 BIT STRING
384
+ // CBS_asn1_bitstring_has_bit returns one if `cbs` is a valid ASN.1 BIT STRING
362
385
  // body and the specified bit is present and set. Otherwise, it returns zero.
363
- // |bit| is indexed starting from zero.
386
+ // `bit` is indexed starting from zero.
364
387
  OPENSSL_EXPORT int CBS_asn1_bitstring_has_bit(const CBS *cbs, unsigned bit);
365
388
 
366
- // CBS_is_valid_asn1_integer returns one if |cbs| is a valid ASN.1 INTEGER,
367
- // body and zero otherwise. On success, if |out_is_negative| is non-NULL,
368
- // |*out_is_negative| will be set to one if |cbs| is negative and zero
389
+ // CBS_is_valid_asn1_integer returns one if `cbs` is a valid ASN.1 INTEGER,
390
+ // body and zero otherwise. On success, if `out_is_negative` is non-NULL,
391
+ // `*out_is_negative` will be set to one if `cbs` is negative and zero
369
392
  // otherwise.
370
393
  OPENSSL_EXPORT int CBS_is_valid_asn1_integer(const CBS *cbs,
371
394
  int *out_is_negative);
372
395
 
373
- // CBS_is_unsigned_asn1_integer returns one if |cbs| is a valid non-negative
396
+ // CBS_is_unsigned_asn1_integer returns one if `cbs` is a valid non-negative
374
397
  // ASN.1 INTEGER body and zero otherwise.
375
398
  OPENSSL_EXPORT int CBS_is_unsigned_asn1_integer(const CBS *cbs);
376
399
 
377
- // CBS_is_valid_asn1_oid returns one if |cbs| is a valid DER-encoded ASN.1
400
+ // CBS_is_valid_asn1_oid returns one if `cbs` is a valid DER-encoded ASN.1
378
401
  // OBJECT IDENTIFIER contents (not including the element framing) and zero
379
402
  // otherwise. This function tolerates arbitrarily large OID components.
380
403
  OPENSSL_EXPORT int CBS_is_valid_asn1_oid(const CBS *cbs);
381
404
 
382
- // CBS_asn1_oid_to_text interprets |cbs| as DER-encoded ASN.1 OBJECT IDENTIFIER
405
+ // CBS_asn1_oid_to_text interprets `cbs` as DER-encoded ASN.1 OBJECT IDENTIFIER
383
406
  // contents (not including the element framing) and returns the ASCII
384
407
  // representation (e.g., "1.2.840.113554.4.1.72585") in a newly-allocated
385
408
  // string, or NULL on failure. The caller must release the result with
386
- // |OPENSSL_free|.
409
+ // `OPENSSL_free`.
387
410
  //
388
- // This function may fail if |cbs| is an invalid OBJECT IDENTIFIER, or if any
411
+ // This function may fail if `cbs` is an invalid OBJECT IDENTIFIER, or if any
389
412
  // OID components are too large.
390
413
  OPENSSL_EXPORT char *CBS_asn1_oid_to_text(const CBS *cbs);
391
414
 
415
+ // CBS_is_valid_asn1_relative_oid returns one if `cbs` is a valid DER-encoded
416
+ // ASN.1 RELATIVE-OID contents (not including the element framing) and zero
417
+ // otherwise. This function tolerates arbitrarily large OID components.
418
+ //
419
+ // (This is actually the same as `CBS_is_valid_asn1_oid`, but is also exposed
420
+ // under the relative_oid name for API symmetry.)
421
+ OPENSSL_EXPORT int CBS_is_valid_asn1_relative_oid(const CBS *cbs);
422
+
423
+ // CBS_asn1_relative_oid_to_text interprets `cbs` as DER-encoded ASN.1
424
+ // RELATIVE-OID contents (not including the element framing) and returns the
425
+ // ASCII representation (e.g., "32473.1") in a newly-allocated string, or NULL
426
+ // on failure. The caller must release the result with `OPENSSL_free`.
427
+ //
428
+ // This function may fail if `cbs` is an invalid RELATIVE-OID, or if any
429
+ // OID components are too large.
430
+ OPENSSL_EXPORT char *CBS_asn1_relative_oid_to_text(const CBS *cbs);
392
431
 
393
- // CBS_parse_generalized_time returns one if |cbs| is a valid DER-encoded, ASN.1
432
+ // CBS_parse_generalized_time returns one if `cbs` is a valid DER-encoded, ASN.1
394
433
  // GeneralizedTime body within the limitations imposed by RFC 5280, or zero
395
- // otherwise. If |allow_timezone_offset| is non-zero, four-digit timezone
434
+ // otherwise. If `allow_timezone_offset` is non-zero, four-digit timezone
396
435
  // offsets, which would not be allowed by DER, are permitted. On success, if
397
- // |out_tm| is non-NULL, |*out_tm| will be zeroed, and then set to the
398
- // corresponding time in UTC. This function does not compute |out_tm->tm_wday|
399
- // or |out_tm->tm_yday|.
436
+ // `out_tm` is non-NULL, `*out_tm` will be zeroed, and then set to the
437
+ // corresponding time in UTC. This function does not compute `out_tm->tm_wday`
438
+ // or `out_tm->tm_yday`.
400
439
  OPENSSL_EXPORT int CBS_parse_generalized_time(const CBS *cbs, struct tm *out_tm,
401
440
  int allow_timezone_offset);
402
441
 
403
- // CBS_parse_utc_time returns one if |cbs| is a valid DER-encoded, ASN.1
442
+ // CBS_parse_utc_time returns one if `cbs` is a valid DER-encoded, ASN.1
404
443
  // UTCTime body within the limitations imposed by RFC 5280, or zero otherwise.
405
- // If |allow_timezone_offset| is non-zero, four-digit timezone offsets, which
406
- // would not be allowed by DER, are permitted. On success, if |out_tm| is
407
- // non-NULL, |*out_tm| will be zeroed, and then set to the corresponding time
408
- // in UTC. This function does not compute |out_tm->tm_wday| or
409
- // |out_tm->tm_yday|.
444
+ // If `allow_timezone_offset` is non-zero, four-digit timezone offsets, which
445
+ // would not be allowed by DER, are permitted. On success, if `out_tm` is
446
+ // non-NULL, `*out_tm` will be zeroed, and then set to the corresponding time
447
+ // in UTC. This function does not compute `out_tm->tm_wday` or
448
+ // `out_tm->tm_yday`.
410
449
  OPENSSL_EXPORT int CBS_parse_utc_time(const CBS *cbs, struct tm *out_tm,
411
450
  int allow_timezone_offset);
412
451
 
413
452
  // CRYPTO ByteBuilder.
414
453
  //
415
- // |CBB| objects allow one to build length-prefixed serialisations. A |CBB|
454
+ // `CBB` objects allow one to build length-prefixed serialisations. A `CBB`
416
455
  // object is associated with a buffer and new buffers are created with
417
- // |CBB_init|. Several |CBB| objects can point at the same buffer when a
418
- // length-prefix is pending, however only a single |CBB| can be 'current' at
419
- // any one time. For example, if one calls |CBB_add_u8_length_prefixed| then
420
- // the new |CBB| points at the same buffer as the original. But if the original
421
- // |CBB| is used then the length prefix is written out and the new |CBB| must
456
+ // `CBB_init`. Several `CBB` objects can point at the same buffer when a
457
+ // length-prefix is pending, however only a single `CBB` can be 'current' at
458
+ // any one time. For example, if one calls `CBB_add_u8_length_prefixed` then
459
+ // the new `CBB` points at the same buffer as the original. But if the original
460
+ // `CBB` is used then the length prefix is written out and the new `CBB` must
422
461
  // not be used again.
423
462
  //
424
- // If one needs to force a length prefix to be written out because a |CBB| is
425
- // going out of scope, use |CBB_flush|. If an operation on a |CBB| fails, it is
426
- // in an undefined state and must not be used except to call |CBB_cleanup|.
463
+ // If one needs to force a length prefix to be written out because a `CBB` is
464
+ // going out of scope, use `CBB_flush`. If an operation on a `CBB` fails, it is
465
+ // in an undefined state and must not be used except to call `CBB_cleanup`.
427
466
 
428
467
  struct cbb_buffer_st {
429
468
  uint8_t *buf;
430
- // len is the number of valid bytes in |buf|.
469
+ // len is the number of valid bytes in `buf`.
431
470
  size_t len;
432
- // cap is the size of |buf|.
471
+ // cap is the size of `buf`.
433
472
  size_t cap;
434
- // can_resize is one iff |buf| is owned by this object. If not then |buf|
473
+ // can_resize is one iff `buf` is owned by this object. If not then `buf`
435
474
  // cannot be resized.
436
475
  unsigned can_resize : 1;
437
476
  // error is one if there was an error writing to this CBB. All future
@@ -440,12 +479,12 @@ struct cbb_buffer_st {
440
479
  };
441
480
 
442
481
  struct cbb_child_st {
443
- // base is a pointer to the buffer this |CBB| writes to.
482
+ // base is a pointer to the buffer this `CBB` writes to.
444
483
  struct cbb_buffer_st *base;
445
- // offset is the number of bytes from the start of |base->buf| to this |CBB|'s
484
+ // offset is the number of bytes from the start of `base->buf` to this `CBB`'s
446
485
  // pending length prefix.
447
486
  size_t offset;
448
- // pending_len_len contains the number of bytes in this |CBB|'s pending
487
+ // pending_len_len contains the number of bytes in this `CBB`'s pending
449
488
  // length-prefix, or zero if no length-prefix is pending.
450
489
  uint8_t pending_len_len;
451
490
  unsigned pending_is_asn1 : 1;
@@ -454,8 +493,8 @@ struct cbb_child_st {
454
493
  struct cbb_st {
455
494
  // child points to a child CBB if a length-prefix is pending.
456
495
  CBB *child;
457
- // is_child is one if this is a child |CBB| and zero if it is a top-level
458
- // |CBB|. This determines which arm of the union is valid.
496
+ // is_child is one if this is a child `CBB` and zero if it is a top-level
497
+ // `CBB`. This determines which arm of the union is valid.
459
498
  char is_child;
460
499
  union {
461
500
  struct cbb_buffer_st base;
@@ -463,187 +502,213 @@ struct cbb_st {
463
502
  } u;
464
503
  };
465
504
 
466
- // CBB_zero sets an uninitialised |cbb| to the zero state. It must be
467
- // initialised with |CBB_init| or |CBB_init_fixed| before use, but it is safe to
468
- // call |CBB_cleanup| without a successful |CBB_init|. This may be used for more
469
- // uniform cleanup of a |CBB|.
505
+ // CBB_zero sets an uninitialised `cbb` to the zero state. It must be
506
+ // initialised with `CBB_init` or `CBB_init_fixed` before use, but it is safe to
507
+ // call `CBB_cleanup` without a successful `CBB_init`. This may be used for more
508
+ // uniform cleanup of a `CBB`.
470
509
  OPENSSL_EXPORT void CBB_zero(CBB *cbb);
471
510
 
472
- // CBB_init initialises |cbb| with |initial_capacity|. Since a |CBB| grows as
473
- // needed, the |initial_capacity| is just a hint. It returns one on success or
511
+ // CBB_init initialises `cbb` with `initial_capacity`. Since a `CBB` grows as
512
+ // needed, the `initial_capacity` is just a hint. It returns one on success or
474
513
  // zero on allocation failure.
475
514
  OPENSSL_EXPORT int CBB_init(CBB *cbb, size_t initial_capacity);
476
515
 
477
- // CBB_init_fixed initialises |cbb| to write to |len| bytes at |buf|. Since
478
- // |buf| cannot grow, trying to write more than |len| bytes will cause CBB
516
+ // CBB_init_fixed initialises `cbb` to write to `len` bytes at `buf`. Since
517
+ // `buf` cannot grow, trying to write more than `len` bytes will cause CBB
479
518
  // functions to fail. This function is infallible and always returns one. It is
480
- // safe, but not necessary, to call |CBB_cleanup| on |cbb|.
519
+ // safe, but not necessary, to call `CBB_cleanup` on `cbb`.
481
520
  OPENSSL_EXPORT int CBB_init_fixed(CBB *cbb, uint8_t *buf, size_t len);
482
521
 
483
- // CBB_cleanup frees all resources owned by |cbb| and other |CBB| objects
522
+ // CBB_cleanup frees all resources owned by `cbb` and other `CBB` objects
484
523
  // writing to the same buffer. This should be used in an error case where a
485
524
  // serialisation is abandoned.
486
525
  //
487
- // This function can only be called on a "top level" |CBB|, i.e. one initialised
488
- // with |CBB_init| or |CBB_init_fixed|, or a |CBB| set to the zero state with
489
- // |CBB_zero|.
526
+ // This function can only be called on a "top level" `CBB`, i.e. one initialised
527
+ // with `CBB_init` or `CBB_init_fixed`, or a `CBB` set to the zero state with
528
+ // `CBB_zero`.
490
529
  OPENSSL_EXPORT void CBB_cleanup(CBB *cbb);
491
530
 
492
- // CBB_finish completes any pending length prefix and sets |*out_data| to a
493
- // malloced buffer and |*out_len| to the length of that buffer. The caller
531
+ // CBB_finish completes any pending length prefix and sets `*out_data` to a
532
+ // malloced buffer and `*out_len` to the length of that buffer. The caller
494
533
  // takes ownership of the buffer and, unless the buffer was fixed with
495
- // |CBB_init_fixed|, must call |OPENSSL_free| when done.
534
+ // `CBB_init_fixed`, must call `OPENSSL_free` when done.
496
535
  //
497
- // It can only be called on a "top level" |CBB|, i.e. one initialised with
498
- // |CBB_init| or |CBB_init_fixed|. It returns one on success and zero on
536
+ // It can only be called on a "top level" `CBB`, i.e. one initialised with
537
+ // `CBB_init` or `CBB_init_fixed`. It returns one on success and zero on
499
538
  // error.
500
539
  OPENSSL_EXPORT int CBB_finish(CBB *cbb, uint8_t **out_data, size_t *out_len);
501
540
 
502
541
  // CBB_flush causes any pending length prefixes to be written out and any child
503
- // |CBB| objects of |cbb| to be invalidated. This allows |cbb| to continue to be
504
- // used after the children go out of scope, e.g. when local |CBB| objects are
505
- // added as children to a |CBB| that persists after a function returns. This
542
+ // `CBB` objects of `cbb` to be invalidated. This allows `cbb` to continue to be
543
+ // used after the children go out of scope, e.g. when local `CBB` objects are
544
+ // added as children to a `CBB` that persists after a function returns. This
506
545
  // function returns one on success or zero on error.
507
546
  OPENSSL_EXPORT int CBB_flush(CBB *cbb);
508
547
 
509
- // CBB_data returns a pointer to the bytes written to |cbb|. It does not flush
510
- // |cbb|. The pointer is valid until the next operation to |cbb|.
548
+ // CBB_data returns a pointer to the bytes written to `cbb`. It does not flush
549
+ // `cbb`. The pointer is valid until the next operation to `cbb`.
511
550
  //
512
551
  // To avoid unfinalized length prefixes, it is a fatal error to call this on a
513
552
  // CBB with any active children.
514
- OPENSSL_EXPORT const uint8_t *CBB_data(const CBB *cbb);
553
+ OPENSSL_EXPORT uint8_t *CBB_data(const CBB *cbb);
515
554
 
516
- // CBB_len returns the number of bytes written to |cbb|. It does not flush
517
- // |cbb|.
555
+ // CBB_len returns the number of bytes written to `cbb`. It does not flush
556
+ // `cbb`.
518
557
  //
519
558
  // To avoid unfinalized length prefixes, it is a fatal error to call this on a
520
559
  // CBB with any active children.
521
560
  OPENSSL_EXPORT size_t CBB_len(const CBB *cbb);
522
561
 
523
- // CBB_add_u8_length_prefixed sets |*out_contents| to a new child of |cbb|. The
524
- // data written to |*out_contents| will be prefixed in |cbb| with an 8-bit
562
+ // CBB_add_u8_length_prefixed sets `*out_contents` to a new child of `cbb`. The
563
+ // data written to `*out_contents` will be prefixed in `cbb` with an 8-bit
525
564
  // length. It returns one on success or zero on error.
526
565
  OPENSSL_EXPORT int CBB_add_u8_length_prefixed(CBB *cbb, CBB *out_contents);
527
566
 
528
- // CBB_add_u16_length_prefixed sets |*out_contents| to a new child of |cbb|.
529
- // The data written to |*out_contents| will be prefixed in |cbb| with a 16-bit,
567
+ // CBB_add_u16_length_prefixed sets `*out_contents` to a new child of `cbb`.
568
+ // The data written to `*out_contents` will be prefixed in `cbb` with a 16-bit,
530
569
  // big-endian length. It returns one on success or zero on error.
531
570
  OPENSSL_EXPORT int CBB_add_u16_length_prefixed(CBB *cbb, CBB *out_contents);
532
571
 
533
- // CBB_add_u24_length_prefixed sets |*out_contents| to a new child of |cbb|.
534
- // The data written to |*out_contents| will be prefixed in |cbb| with a 24-bit,
572
+ // CBB_add_u24_length_prefixed sets `*out_contents` to a new child of `cbb`.
573
+ // The data written to `*out_contents` will be prefixed in `cbb` with a 24-bit,
535
574
  // big-endian length. It returns one on success or zero on error.
536
575
  OPENSSL_EXPORT int CBB_add_u24_length_prefixed(CBB *cbb, CBB *out_contents);
537
576
 
538
- // CBB_add_asn1 sets |*out_contents| to a |CBB| into which the contents of an
539
- // ASN.1 object can be written. The |tag| argument will be used as the tag for
577
+ // CBB_add_asn1 sets `*out_contents` to a `CBB` into which the contents of an
578
+ // ASN.1 object can be written. The `tag` argument will be used as the tag for
540
579
  // the object. It returns one on success or zero on error.
541
580
  OPENSSL_EXPORT int CBB_add_asn1(CBB *cbb, CBB *out_contents, CBS_ASN1_TAG tag);
542
581
 
543
- // CBB_add_bytes appends |len| bytes from |data| to |cbb|. It returns one on
582
+ // CBB_add_bytes appends `len` bytes from `data` to `cbb`. It returns one on
544
583
  // success and zero otherwise.
545
584
  OPENSSL_EXPORT int CBB_add_bytes(CBB *cbb, const uint8_t *data, size_t len);
546
585
 
547
- // CBB_add_zeros append |len| bytes with value zero to |cbb|. It returns one on
586
+ // CBB_add_zeros append `len` bytes with value zero to `cbb`. It returns one on
548
587
  // success and zero otherwise.
549
588
  OPENSSL_EXPORT int CBB_add_zeros(CBB *cbb, size_t len);
550
589
 
551
- // CBB_add_space appends |len| bytes to |cbb| and sets |*out_data| to point to
552
- // the beginning of that space. The caller must then write |len| bytes of
553
- // actual contents to |*out_data|. It returns one on success and zero
590
+ // CBB_add_space appends `len` bytes to `cbb` and sets `*out_data` to point to
591
+ // the beginning of that space. The caller must then write `len` bytes of
592
+ // actual contents to `*out_data`. It returns one on success and zero
554
593
  // otherwise.
555
594
  OPENSSL_EXPORT int CBB_add_space(CBB *cbb, uint8_t **out_data, size_t len);
556
595
 
557
- // CBB_reserve ensures |cbb| has room for |len| additional bytes and sets
558
- // |*out_data| to point to the beginning of that space. It returns one on
559
- // success and zero otherwise. The caller may write up to |len| bytes to
560
- // |*out_data| and call |CBB_did_write| to complete the write. |*out_data| is
561
- // valid until the next operation on |cbb| or an ancestor |CBB|.
596
+ // CBB_reserve ensures `cbb` has room for `len` additional bytes and sets
597
+ // `*out_data` to point to the beginning of that space. It returns one on
598
+ // success and zero otherwise. The caller may write up to `len` bytes to
599
+ // `*out_data` and call `CBB_did_write` to complete the write. `*out_data` is
600
+ // valid until the next operation on `cbb` or an ancestor `CBB`.
562
601
  OPENSSL_EXPORT int CBB_reserve(CBB *cbb, uint8_t **out_data, size_t len);
563
602
 
564
- // CBB_did_write advances |cbb| by |len| bytes, assuming the space has been
603
+ // CBB_did_write advances `cbb` by `len` bytes, assuming the space has been
565
604
  // written to by the caller. It returns one on success and zero on error.
566
605
  OPENSSL_EXPORT int CBB_did_write(CBB *cbb, size_t len);
567
606
 
568
- // CBB_add_u8 appends an 8-bit number from |value| to |cbb|. It returns one on
607
+ // CBB_add_u8 appends an 8-bit number from `value` to `cbb`. It returns one on
569
608
  // success and zero otherwise.
570
609
  OPENSSL_EXPORT int CBB_add_u8(CBB *cbb, uint8_t value);
571
610
 
572
- // CBB_add_u16 appends a 16-bit, big-endian number from |value| to |cbb|. It
611
+ // CBB_add_u16 appends a 16-bit, big-endian number from `value` to `cbb`. It
573
612
  // returns one on success and zero otherwise.
574
613
  OPENSSL_EXPORT int CBB_add_u16(CBB *cbb, uint16_t value);
575
614
 
576
- // CBB_add_u16le appends a 16-bit, little-endian number from |value| to |cbb|.
615
+ // CBB_add_u16le appends a 16-bit, little-endian number from `value` to `cbb`.
577
616
  // It returns one on success and zero otherwise.
578
617
  OPENSSL_EXPORT int CBB_add_u16le(CBB *cbb, uint16_t value);
579
618
 
580
- // CBB_add_u24 appends a 24-bit, big-endian number from |value| to |cbb|. It
619
+ // CBB_add_u24 appends a 24-bit, big-endian number from `value` to `cbb`. It
581
620
  // returns one on success and zero otherwise.
582
621
  OPENSSL_EXPORT int CBB_add_u24(CBB *cbb, uint32_t value);
583
622
 
584
- // CBB_add_u32 appends a 32-bit, big-endian number from |value| to |cbb|. It
623
+ // CBB_add_u32 appends a 32-bit, big-endian number from `value` to `cbb`. It
585
624
  // returns one on success and zero otherwise.
586
625
  OPENSSL_EXPORT int CBB_add_u32(CBB *cbb, uint32_t value);
587
626
 
588
- // CBB_add_u32le appends a 32-bit, little-endian number from |value| to |cbb|.
627
+ // CBB_add_u32le appends a 32-bit, little-endian number from `value` to `cbb`.
589
628
  // It returns one on success and zero otherwise.
590
629
  OPENSSL_EXPORT int CBB_add_u32le(CBB *cbb, uint32_t value);
591
630
 
592
- // CBB_add_u64 appends a 64-bit, big-endian number from |value| to |cbb|. It
631
+ // CBB_add_u64 appends a 64-bit, big-endian number from `value` to `cbb`. It
593
632
  // returns one on success and zero otherwise.
594
633
  OPENSSL_EXPORT int CBB_add_u64(CBB *cbb, uint64_t value);
595
634
 
596
- // CBB_add_u64le appends a 64-bit, little-endian number from |value| to |cbb|.
635
+ // CBB_add_u64le appends a 64-bit, little-endian number from `value` to `cbb`.
597
636
  // It returns one on success and zero otherwise.
598
637
  OPENSSL_EXPORT int CBB_add_u64le(CBB *cbb, uint64_t value);
599
638
 
600
- // CBB_discard_child discards the current unflushed child of |cbb|. Neither the
639
+ // CBB_discard discards the last `len` bytes written to `cbb`. The process will
640
+ // abort if `cbb` has an unflushed child, or its length is smaller than `len`.
641
+ OPENSSL_EXPORT void CBB_discard(CBB *cbb, size_t len);
642
+
643
+ // CBB_discard_child discards the current unflushed child of `cbb`. Neither the
601
644
  // child's contents nor the length prefix will be included in the output.
602
645
  OPENSSL_EXPORT void CBB_discard_child(CBB *cbb);
603
646
 
604
- // CBB_add_asn1_uint64 writes an ASN.1 INTEGER into |cbb| using |CBB_add_asn1|
605
- // and writes |value| in its contents. It returns one on success and zero on
647
+ // CBB_add_asn1_element adds an ASN.1 element with the specified tag and
648
+ // contents. It returns one on success and zero on error. This is a convenience
649
+ // function over `CBB_add_asn1` when the data is already available.
650
+ OPENSSL_EXPORT int CBB_add_asn1_element(CBB *cbb, CBS_ASN1_TAG tag,
651
+ const uint8_t *data, size_t data_len);
652
+
653
+ // CBB_add_asn1_uint64 writes an ASN.1 INTEGER into `cbb` using `CBB_add_asn1`
654
+ // and writes `value` in its contents. It returns one on success and zero on
606
655
  // error.
607
656
  OPENSSL_EXPORT int CBB_add_asn1_uint64(CBB *cbb, uint64_t value);
608
657
 
609
- // CBB_add_asn1_uint64_with_tag behaves like |CBB_add_asn1_uint64| but uses
610
- // |tag| as the tag instead of INTEGER. This is useful if the INTEGER type uses
658
+ // CBB_add_asn1_uint64_with_tag behaves like `CBB_add_asn1_uint64` but uses
659
+ // `tag` as the tag instead of INTEGER. This is useful if the INTEGER type uses
611
660
  // implicit tagging.
612
661
  OPENSSL_EXPORT int CBB_add_asn1_uint64_with_tag(CBB *cbb, uint64_t value,
613
662
  CBS_ASN1_TAG tag);
614
663
 
615
- // CBB_add_asn1_int64 writes an ASN.1 INTEGER into |cbb| using |CBB_add_asn1|
616
- // and writes |value| in its contents. It returns one on success and zero on
664
+ // CBB_add_asn1_int64 writes an ASN.1 INTEGER into `cbb` using `CBB_add_asn1`
665
+ // and writes `value` in its contents. It returns one on success and zero on
617
666
  // error.
618
667
  OPENSSL_EXPORT int CBB_add_asn1_int64(CBB *cbb, int64_t value);
619
668
 
620
- // CBB_add_asn1_int64_with_tag behaves like |CBB_add_asn1_int64| but uses |tag|
669
+ // CBB_add_asn1_int64_with_tag behaves like `CBB_add_asn1_int64` but uses `tag`
621
670
  // as the tag instead of INTEGER. This is useful if the INTEGER type uses
622
671
  // implicit tagging.
623
672
  OPENSSL_EXPORT int CBB_add_asn1_int64_with_tag(CBB *cbb, int64_t value,
624
673
  CBS_ASN1_TAG tag);
625
674
 
626
- // CBB_add_asn1_octet_string writes an ASN.1 OCTET STRING into |cbb| with the
675
+ // CBB_add_asn1_octet_string writes an ASN.1 OCTET STRING into `cbb` with the
627
676
  // given contents. It returns one on success and zero on error.
628
677
  OPENSSL_EXPORT int CBB_add_asn1_octet_string(CBB *cbb, const uint8_t *data,
629
678
  size_t data_len);
630
679
 
631
- // CBB_add_asn1_bool writes an ASN.1 BOOLEAN into |cbb| which is true iff
632
- // |value| is non-zero. It returns one on success and zero on error.
680
+ // CBB_add_asn1_bool writes an ASN.1 BOOLEAN into `cbb` which is true iff
681
+ // `value` is non-zero. It returns one on success and zero on error.
633
682
  OPENSSL_EXPORT int CBB_add_asn1_bool(CBB *cbb, int value);
634
683
 
635
- // CBB_add_asn1_oid_from_text decodes |len| bytes from |text| as an ASCII OID
684
+ // CBB_add_asn1_oid_from_text decodes `len` bytes from `text` as an ASCII OID
636
685
  // representation, e.g. "1.2.840.113554.4.1.72585", and writes the DER-encoded
637
- // contents to |cbb|. It returns one on success and zero on malloc failure or if
638
- // |text| was invalid. It does not include the OBJECT IDENTIFER framing, only
686
+ // contents to `cbb`. It returns one on success and zero on malloc failure or if
687
+ // `text` was invalid. It does not include the OBJECT IDENTIFIER framing, only
639
688
  // the element's contents.
640
689
  //
641
690
  // This function considers OID strings with components which do not fit in a
642
- // |uint64_t| to be invalid.
691
+ // `uint64_t` to be invalid.
643
692
  OPENSSL_EXPORT int CBB_add_asn1_oid_from_text(CBB *cbb, const char *text,
644
693
  size_t len);
645
694
 
646
- // CBB_flush_asn1_set_of calls |CBB_flush| on |cbb| and then reorders the
695
+ // CBB_add_asn1_relative_oid_from_text decodes `len` bytes from `text` as an
696
+ // ASCII RELATIVE-OID representation, e.g. "32473.1", and writes the
697
+ // DER-encoded contents to `cbb`. It returns one on success and zero on malloc
698
+ // failure or if `text` was invalid. It does not include any framing, only the
699
+ // element's contents.
700
+ //
701
+ // This function considers OID strings with components which do not fit in a
702
+ // `uint64_t` to be invalid.
703
+ OPENSSL_EXPORT int CBB_add_asn1_relative_oid_from_text(CBB *cbb,
704
+ const char *text,
705
+ size_t len);
706
+
707
+ // CBB_add_asn1_oid_component appends a single OID component to `cbb`.
708
+ // It returns one on success and zero on error.
709
+ OPENSSL_EXPORT int CBB_add_asn1_oid_component(CBB *cbb, uint64_t value);
710
+
711
+ // CBB_flush_asn1_set_of calls `CBB_flush` on `cbb` and then reorders the
647
712
  // contents for a DER-encoded ASN.1 SET OF type. It returns one on success and
648
713
  // zero on failure. DER canonicalizes SET OF contents by sorting
649
714
  // lexicographically by encoding. Call this function when encoding a SET OF
@@ -658,21 +723,21 @@ OPENSSL_EXPORT int CBB_flush_asn1_set_of(CBB *cbb);
658
723
  // These functions consider noncharacters (see section 23.7 from Unicode 15.0.0)
659
724
  // to be invalid code points and will treat them as an error condition.
660
725
 
661
- // The following functions read one Unicode code point from |cbs| with the
662
- // corresponding encoding and store it in |*out|. They return one on success and
726
+ // The following functions read one Unicode code point from `cbs` with the
727
+ // corresponding encoding and store it in `*out`. They return one on success and
663
728
  // zero on error.
664
729
  OPENSSL_EXPORT int CBS_get_utf8(CBS *cbs, uint32_t *out);
665
730
  OPENSSL_EXPORT int CBS_get_latin1(CBS *cbs, uint32_t *out);
666
731
  OPENSSL_EXPORT int CBS_get_ucs2_be(CBS *cbs, uint32_t *out);
667
732
  OPENSSL_EXPORT int CBS_get_utf32_be(CBS *cbs, uint32_t *out);
668
733
 
669
- // CBB_get_utf8_len returns the number of bytes needed to represent |u| in
734
+ // CBB_get_utf8_len returns the number of bytes needed to represent `u` in
670
735
  // UTF-8.
671
736
  OPENSSL_EXPORT size_t CBB_get_utf8_len(uint32_t u);
672
737
 
673
- // The following functions encode |u| to |cbb| with the corresponding
738
+ // The following functions encode `u` to `cbb` with the corresponding
674
739
  // encoding. They return one on success and zero on error. Error conditions
675
- // include |u| being an invalid code point, or |u| being unencodable in the
740
+ // include `u` being an invalid code point, or `u` being unencodable in the
676
741
  // specified encoding.
677
742
  OPENSSL_EXPORT int CBB_add_utf8(CBB *cbb, uint32_t u);
678
743
  OPENSSL_EXPORT int CBB_add_latin1(CBB *cbb, uint32_t u);