grpc 1.53.0.pre2 → 1.54.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (685) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +80 -66
  3. data/include/grpc/event_engine/event_engine.h +30 -14
  4. data/include/grpc/grpc_security.h +4 -0
  5. data/include/grpc/impl/grpc_types.h +11 -2
  6. data/include/grpc/support/port_platform.h +4 -4
  7. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +11 -0
  8. data/src/core/ext/filters/client_channel/backend_metric.cc +6 -0
  9. data/src/core/ext/filters/client_channel/backup_poller.cc +2 -11
  10. data/src/core/ext/filters/client_channel/backup_poller.h +0 -3
  11. data/src/core/ext/filters/client_channel/client_channel.cc +848 -813
  12. data/src/core/ext/filters/client_channel/client_channel.h +131 -173
  13. data/src/core/ext/filters/client_channel/client_channel_internal.h +114 -0
  14. data/src/core/ext/filters/client_channel/config_selector.h +4 -3
  15. data/src/core/ext/filters/client_channel/http_proxy.cc +1 -1
  16. data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +6 -1
  17. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +17 -18
  18. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +134 -151
  19. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +1 -15
  20. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +14 -10
  21. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +68 -30
  22. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +13 -5
  23. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +8 -1
  24. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +2 -5
  25. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +2 -2
  26. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +30 -38
  27. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +4 -4
  28. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +20 -26
  29. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +31 -179
  30. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +1 -2
  31. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +1 -2
  32. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +4 -2
  33. data/src/core/ext/filters/client_channel/retry_filter.cc +95 -102
  34. data/src/core/ext/filters/client_channel/subchannel.cc +2 -4
  35. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +26 -27
  36. data/src/core/ext/filters/client_channel/subchannel_stream_client.h +8 -5
  37. data/src/core/ext/filters/http/client/http_client_filter.cc +3 -3
  38. data/src/core/ext/filters/http/http_filters_plugin.cc +1 -12
  39. data/src/core/ext/filters/http/message_compress/compression_filter.cc +27 -11
  40. data/src/core/ext/filters/message_size/message_size_filter.cc +141 -224
  41. data/src/core/ext/filters/message_size/message_size_filter.h +48 -3
  42. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +7 -6
  43. data/src/core/ext/gcp/metadata_query.cc +142 -0
  44. data/src/core/ext/gcp/metadata_query.h +82 -0
  45. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +70 -55
  46. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +149 -60
  47. data/src/core/ext/transport/chttp2/transport/flow_control.cc +5 -2
  48. data/src/core/ext/transport/chttp2/transport/flow_control.h +2 -1
  49. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -1
  50. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +42 -23
  51. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +5 -3
  52. data/src/core/ext/transport/chttp2/transport/internal.h +18 -3
  53. data/src/core/ext/transport/chttp2/transport/parsing.cc +9 -2
  54. data/src/core/ext/transport/chttp2/transport/writing.cc +10 -5
  55. data/src/core/ext/transport/inproc/inproc_transport.cc +20 -14
  56. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +5 -3
  57. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +22 -0
  58. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +5 -3
  59. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +22 -0
  60. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +23 -5
  61. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +94 -3
  62. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +23 -2
  63. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +120 -0
  64. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +6 -3
  65. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +22 -0
  66. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +24 -6
  67. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +111 -12
  68. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +9 -7
  69. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +27 -9
  70. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +0 -1
  71. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +11 -7
  72. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +56 -12
  73. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.c +5 -3
  74. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/client_side_weighted_round_robin/v3/client_side_weighted_round_robin.upb.h +24 -0
  75. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +5 -3
  76. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +24 -0
  77. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +13 -2
  78. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +49 -0
  79. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +24 -9
  80. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +66 -12
  81. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +191 -187
  82. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +139 -136
  83. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +31 -15
  84. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +5 -0
  85. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +12 -9
  86. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +15 -0
  87. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +54 -45
  88. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +135 -119
  89. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
  90. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +100 -97
  91. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +15 -18
  92. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +272 -264
  93. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +117 -117
  94. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +5 -5
  95. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +5 -5
  96. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +5 -5
  97. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +12 -9
  98. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +5 -0
  99. data/src/core/ext/xds/xds_channel_stack_modifier.cc +1 -2
  100. data/src/core/ext/xds/xds_client_stats.cc +29 -15
  101. data/src/core/ext/xds/xds_client_stats.h +24 -20
  102. data/src/core/ext/xds/xds_endpoint.cc +5 -2
  103. data/src/core/ext/xds/xds_endpoint.h +9 -1
  104. data/src/core/ext/xds/xds_http_rbac_filter.cc +1 -1
  105. data/src/core/ext/xds/xds_lb_policy_registry.cc +13 -0
  106. data/src/core/ext/xds/xds_transport_grpc.cc +1 -1
  107. data/src/core/{ext/filters/client_channel/resolver/dns/dns_resolver_selection.h → lib/backoff/random_early_detection.cc} +14 -12
  108. data/src/core/lib/backoff/random_early_detection.h +59 -0
  109. data/src/core/lib/channel/call_finalization.h +1 -1
  110. data/src/core/lib/channel/call_tracer.cc +51 -0
  111. data/src/core/lib/channel/call_tracer.h +101 -38
  112. data/src/core/lib/channel/connected_channel.cc +483 -1050
  113. data/src/core/lib/channel/context.h +8 -1
  114. data/src/core/lib/channel/promise_based_filter.cc +106 -42
  115. data/src/core/lib/channel/promise_based_filter.h +27 -13
  116. data/src/core/lib/channel/server_call_tracer_filter.cc +110 -0
  117. data/src/core/lib/config/config_vars.cc +151 -0
  118. data/src/core/lib/config/config_vars.h +127 -0
  119. data/src/core/lib/config/config_vars_non_generated.cc +51 -0
  120. data/src/core/lib/config/load_config.cc +66 -0
  121. data/src/core/lib/config/load_config.h +49 -0
  122. data/src/core/lib/debug/trace.cc +5 -6
  123. data/src/core/lib/debug/trace.h +0 -5
  124. data/src/core/lib/event_engine/event_engine.cc +37 -2
  125. data/src/core/lib/event_engine/handle_containers.h +7 -22
  126. data/src/core/lib/event_engine/memory_allocator_factory.h +47 -0
  127. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +0 -4
  128. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +3 -9
  129. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +48 -15
  130. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +8 -8
  131. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +6 -5
  132. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +6 -3
  133. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +27 -18
  134. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +0 -3
  135. data/src/core/lib/event_engine/resolved_address.cc +2 -1
  136. data/src/core/lib/event_engine/windows/win_socket.cc +0 -1
  137. data/src/core/lib/event_engine/windows/windows_endpoint.cc +129 -82
  138. data/src/core/lib/event_engine/windows/windows_endpoint.h +21 -5
  139. data/src/core/lib/event_engine/windows/windows_engine.cc +39 -18
  140. data/src/core/lib/event_engine/windows/windows_engine.h +2 -1
  141. data/src/core/lib/event_engine/windows/windows_listener.cc +370 -0
  142. data/src/core/lib/event_engine/windows/windows_listener.h +155 -0
  143. data/src/core/lib/experiments/config.cc +3 -10
  144. data/src/core/lib/experiments/experiments.cc +7 -0
  145. data/src/core/lib/experiments/experiments.h +9 -1
  146. data/src/core/lib/gpr/log.cc +15 -28
  147. data/src/core/lib/gprpp/fork.cc +8 -14
  148. data/src/core/lib/gprpp/orphanable.h +4 -3
  149. data/src/core/lib/gprpp/per_cpu.h +9 -3
  150. data/src/core/lib/gprpp/{thd_posix.cc → posix/thd.cc} +49 -37
  151. data/src/core/lib/gprpp/ref_counted.h +33 -34
  152. data/src/core/lib/gprpp/thd.h +16 -0
  153. data/src/core/lib/gprpp/time.cc +1 -0
  154. data/src/core/lib/gprpp/time.h +4 -4
  155. data/src/core/lib/gprpp/{thd_windows.cc → windows/thd.cc} +2 -2
  156. data/src/core/lib/iomgr/call_combiner.h +2 -2
  157. data/src/core/lib/iomgr/endpoint_cfstream.cc +4 -2
  158. data/src/core/lib/iomgr/endpoint_pair.h +2 -2
  159. data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -2
  160. data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
  161. data/src/core/lib/iomgr/ev_posix.cc +13 -53
  162. data/src/core/lib/iomgr/ev_posix.h +0 -3
  163. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +103 -76
  164. data/src/core/lib/iomgr/iomgr.cc +4 -8
  165. data/src/core/lib/iomgr/iomgr_windows.cc +8 -2
  166. data/src/core/lib/iomgr/pollset_set_windows.cc +9 -9
  167. data/src/core/lib/iomgr/pollset_windows.cc +1 -1
  168. data/src/core/lib/iomgr/socket_utils_common_posix.cc +16 -3
  169. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -2
  170. data/src/core/lib/iomgr/tcp_posix.cc +0 -1
  171. data/src/core/lib/iomgr/tcp_server_posix.cc +5 -16
  172. data/src/core/lib/iomgr/tcp_server_windows.cc +176 -9
  173. data/src/core/lib/iomgr/tcp_windows.cc +12 -8
  174. data/src/core/lib/load_balancing/lb_policy.cc +9 -13
  175. data/src/core/lib/load_balancing/lb_policy.h +4 -2
  176. data/src/core/lib/promise/activity.cc +22 -6
  177. data/src/core/lib/promise/activity.h +61 -24
  178. data/src/core/lib/promise/cancel_callback.h +77 -0
  179. data/src/core/lib/promise/detail/basic_seq.h +1 -1
  180. data/src/core/lib/promise/detail/promise_factory.h +4 -0
  181. data/src/core/lib/promise/for_each.h +176 -0
  182. data/src/core/lib/promise/if.h +9 -0
  183. data/src/core/lib/promise/interceptor_list.h +23 -2
  184. data/src/core/lib/promise/latch.h +89 -3
  185. data/src/core/lib/promise/loop.h +13 -9
  186. data/src/core/lib/promise/map.h +7 -0
  187. data/src/core/lib/promise/party.cc +286 -0
  188. data/src/core/lib/promise/party.h +499 -0
  189. data/src/core/lib/promise/pipe.h +197 -57
  190. data/src/core/lib/promise/poll.h +48 -0
  191. data/src/core/lib/promise/promise.h +2 -2
  192. data/src/core/lib/resource_quota/arena.cc +19 -3
  193. data/src/core/lib/resource_quota/arena.h +119 -5
  194. data/src/core/lib/resource_quota/memory_quota.cc +1 -1
  195. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +12 -35
  196. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -0
  197. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +0 -59
  198. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +10 -5
  199. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -1
  200. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +13 -0
  201. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +2 -0
  202. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +5 -9
  203. data/src/core/lib/security/security_connector/ssl_utils.cc +11 -25
  204. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +12 -0
  205. data/src/core/lib/security/transport/secure_endpoint.cc +4 -2
  206. data/src/core/lib/security/transport/server_auth_filter.cc +20 -2
  207. data/src/core/lib/slice/slice.cc +1 -1
  208. data/src/core/lib/surface/builtins.cc +2 -0
  209. data/src/core/lib/surface/call.cc +926 -1024
  210. data/src/core/lib/surface/call.h +10 -0
  211. data/src/core/lib/surface/lame_client.cc +1 -0
  212. data/src/core/lib/surface/version.cc +2 -2
  213. data/src/core/lib/transport/batch_builder.cc +179 -0
  214. data/src/core/lib/transport/batch_builder.h +468 -0
  215. data/src/core/lib/transport/bdp_estimator.cc +7 -7
  216. data/src/core/lib/transport/bdp_estimator.h +10 -6
  217. data/src/core/lib/transport/custom_metadata.h +30 -0
  218. data/src/core/lib/transport/metadata_batch.cc +9 -6
  219. data/src/core/lib/transport/metadata_batch.h +58 -16
  220. data/src/core/lib/transport/parsed_metadata.h +3 -3
  221. data/src/core/lib/transport/timeout_encoding.cc +6 -1
  222. data/src/core/lib/transport/transport.cc +30 -2
  223. data/src/core/lib/transport/transport.h +70 -14
  224. data/src/core/lib/transport/transport_impl.h +7 -0
  225. data/src/core/lib/transport/transport_op_string.cc +52 -42
  226. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -2
  227. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +1 -0
  228. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +21 -4
  229. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +5 -0
  230. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
  231. data/src/core/tsi/ssl_transport_security.cc +4 -2
  232. data/src/ruby/lib/grpc/version.rb +1 -1
  233. data/third_party/abseil-cpp/absl/base/config.h +1 -1
  234. data/third_party/abseil-cpp/absl/flags/commandlineflag.cc +34 -0
  235. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +200 -0
  236. data/third_party/abseil-cpp/absl/flags/config.h +68 -0
  237. data/third_party/abseil-cpp/absl/flags/declare.h +73 -0
  238. data/third_party/abseil-cpp/absl/flags/flag.cc +38 -0
  239. data/third_party/abseil-cpp/absl/flags/flag.h +310 -0
  240. data/{src/core/lib/gprpp/global_config_custom.h → third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc} +11 -14
  241. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +68 -0
  242. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +615 -0
  243. data/third_party/abseil-cpp/absl/flags/internal/flag.h +800 -0
  244. data/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +116 -0
  245. data/third_party/abseil-cpp/absl/flags/internal/path_util.h +62 -0
  246. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +65 -0
  247. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +61 -0
  248. data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +60 -0
  249. data/third_party/abseil-cpp/absl/flags/internal/program_name.h +50 -0
  250. data/third_party/abseil-cpp/absl/flags/internal/registry.h +97 -0
  251. data/third_party/abseil-cpp/absl/flags/internal/sequence_lock.h +187 -0
  252. data/third_party/abseil-cpp/absl/flags/marshalling.cc +241 -0
  253. data/third_party/abseil-cpp/absl/flags/marshalling.h +356 -0
  254. data/third_party/abseil-cpp/absl/flags/reflection.cc +354 -0
  255. data/third_party/abseil-cpp/absl/flags/reflection.h +90 -0
  256. data/third_party/abseil-cpp/absl/flags/usage_config.cc +165 -0
  257. data/third_party/abseil-cpp/absl/flags/usage_config.h +135 -0
  258. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +12 -8
  259. data/third_party/boringssl-with-bazel/err_data.c +728 -712
  260. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +177 -177
  261. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +28 -55
  262. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +21 -23
  263. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +20 -23
  264. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +66 -185
  265. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +18 -21
  266. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +356 -311
  267. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +174 -194
  268. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +146 -210
  269. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +6 -9
  270. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +346 -526
  271. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +110 -131
  272. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +130 -116
  273. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +93 -60
  274. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +93 -181
  275. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +242 -305
  276. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +41 -18
  277. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +30 -33
  278. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +36 -33
  279. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +29 -26
  280. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +133 -88
  281. data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c +230 -0
  282. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +791 -791
  283. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +526 -526
  284. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +114 -135
  285. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +201 -207
  286. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +21 -26
  287. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +55 -68
  288. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +2 -4
  289. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +11 -7
  290. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +4 -4
  291. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +15 -9
  292. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +4 -4
  293. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +17 -10
  294. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -3
  295. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +0 -13
  296. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -6
  297. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +2 -0
  298. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +9 -5
  299. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +10 -23
  300. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +2 -6
  301. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +2 -1
  302. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +29 -28
  303. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +161 -201
  304. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +254 -39
  305. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +2 -2
  306. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +0 -2
  307. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +4 -4
  308. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +9 -8
  309. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +37 -75
  310. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +8 -10
  311. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/cipher → cipher_extra}/e_des.c +100 -78
  312. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +1 -0
  313. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +1 -0
  314. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +2 -0
  315. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +6 -12
  316. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -11
  317. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +6 -10
  318. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -1
  319. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +12 -0
  320. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +74 -0
  321. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_freebsd.c +62 -0
  322. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-fuchsia.c → cpu_aarch64_fuchsia.c} +8 -7
  323. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-linux.c → cpu_aarch64_linux.c} +6 -4
  324. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-win.c → cpu_aarch64_win.c} +4 -4
  325. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm.c → cpu_arm.c} +1 -1
  326. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +55 -0
  327. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.c → cpu_arm_linux.c} +11 -90
  328. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.h → cpu_arm_linux.h} +0 -38
  329. data/third_party/boringssl-with-bazel/src/crypto/{cpu-intel.c → cpu_intel.c} +1 -2
  330. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +25 -20
  331. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +16 -27
  332. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +17 -32
  333. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/des.c +232 -232
  334. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/internal.h +1 -1
  335. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +1 -0
  336. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +232 -29
  337. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +0 -3
  338. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +39 -16
  339. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +37 -7
  340. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +3 -3
  341. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +11 -36
  342. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +214 -99
  343. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +21 -5
  344. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +2 -4
  345. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +83 -60
  346. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +46 -12
  347. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +3 -3
  348. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +25 -23
  349. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +43 -9
  350. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +75 -44
  351. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +19 -25
  352. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +96 -45
  353. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +7 -8
  354. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +26 -23
  355. data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c +233 -0
  356. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +5 -5
  357. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +42 -25
  358. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +4 -5
  359. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +35 -47
  360. data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +135 -244
  361. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +2 -4
  362. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +15 -10
  363. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +29 -15
  364. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +0 -2
  365. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +13 -14
  366. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +3 -13
  367. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +13 -7
  368. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +9 -7
  369. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +35 -27
  370. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +16 -26
  371. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +88 -60
  372. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +4 -3
  373. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +0 -2
  374. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +1 -1
  375. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +1 -1
  376. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +99 -113
  377. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +0 -1
  378. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +5 -3
  379. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c +112 -168
  380. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +86 -31
  381. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +11 -6
  382. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +4 -5
  383. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +4 -5
  384. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +13 -0
  385. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +13 -5
  386. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +19 -108
  387. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +19 -15
  388. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +15 -16
  389. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +22 -21
  390. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c +3 -0
  391. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +79 -19
  392. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +102 -99
  393. data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +52 -46
  394. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +39 -0
  395. data/third_party/boringssl-with-bazel/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +55 -11
  396. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +2 -3
  397. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +21 -6
  398. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +56 -0
  399. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +5 -3
  400. data/third_party/boringssl-with-bazel/src/crypto/{evp → fipsmodule/digestsign}/digestsign.c +51 -15
  401. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +25 -25
  402. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +91 -17
  403. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +5 -5
  404. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +34 -12
  405. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +54 -23
  406. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +44 -60
  407. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64-table.h → p256-nistz-table.h} +1 -1
  408. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.c → p256-nistz.c} +60 -53
  409. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.h → p256-nistz.h} +5 -13
  410. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +48 -36
  411. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +2 -8
  412. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +2 -7
  413. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +2 -3
  414. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +0 -1
  415. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +8 -0
  416. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +42 -14
  417. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +6 -0
  418. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c +52 -24
  419. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +9 -15
  420. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +1 -4
  421. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +2 -4
  422. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +71 -43
  423. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +14 -16
  424. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -4
  425. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +31 -13
  426. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +16 -8
  427. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +3 -2
  428. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +2 -2
  429. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +9 -38
  430. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +73 -59
  431. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +11 -45
  432. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +0 -1
  433. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +22 -0
  434. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +63 -52
  435. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +107 -62
  436. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +58 -31
  437. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +41 -0
  438. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +523 -422
  439. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
  440. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +334 -0
  441. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +3 -12
  442. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +2 -0
  443. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +12 -8
  444. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +14 -12
  445. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +19 -6
  446. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +32 -14
  447. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +65 -29
  448. data/third_party/boringssl-with-bazel/src/crypto/internal.h +373 -18
  449. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +61 -0
  450. data/third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c +205 -0
  451. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +13 -1
  452. data/third_party/boringssl-with-bazel/src/crypto/mem.c +220 -13
  453. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +19 -7
  454. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +13 -1
  455. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +81 -90
  456. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +150 -245
  457. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +629 -613
  458. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +17 -17
  459. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +142 -149
  460. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +99 -131
  461. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +0 -1
  462. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +0 -1
  463. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +0 -1
  464. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +0 -3
  465. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -66
  466. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +31 -38
  467. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +2 -1
  468. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +18 -31
  469. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
  470. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +8 -1
  471. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +129 -5
  472. data/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c +0 -2
  473. data/third_party/boringssl-with-bazel/src/crypto/refcount_lock.c +3 -4
  474. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +8 -11
  475. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +61 -27
  476. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +10 -13
  477. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +10 -13
  478. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +66 -34
  479. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +190 -77
  480. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +81 -284
  481. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +109 -42
  482. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +22 -24
  483. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +54 -55
  484. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +32 -34
  485. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +32 -16
  486. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +465 -704
  487. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +284 -331
  488. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +183 -178
  489. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +11 -15
  490. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +67 -50
  491. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +153 -150
  492. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +786 -0
  493. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +95 -102
  494. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +72 -57
  495. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +12 -10
  496. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +227 -252
  497. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +52 -47
  498. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +3 -4
  499. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +230 -224
  500. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +161 -327
  501. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +37 -33
  502. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +14 -31
  503. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +55 -85
  504. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +534 -618
  505. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +129 -122
  506. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +116 -182
  507. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +132 -132
  508. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +181 -202
  509. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +64 -79
  510. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +175 -160
  511. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1865 -2050
  512. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +433 -462
  513. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +156 -163
  514. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +267 -263
  515. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +40 -15
  516. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +59 -63
  517. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +63 -67
  518. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +114 -144
  519. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +25 -26
  520. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +326 -415
  521. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +8 -7
  522. data/third_party/boringssl-with-bazel/src/crypto/x509/x_info.c +30 -28
  523. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +354 -370
  524. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +37 -32
  525. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +116 -119
  526. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +36 -26
  527. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +3 -4
  528. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +10 -13
  529. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +3 -4
  530. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +419 -261
  531. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +113 -105
  532. data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +11 -15
  533. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +78 -170
  534. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +126 -131
  535. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c +3 -4
  536. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +465 -469
  537. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c +56 -54
  538. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +46 -49
  539. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +309 -346
  540. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +341 -365
  541. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +429 -393
  542. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +29 -24
  543. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c +65 -59
  544. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +125 -121
  545. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +43 -42
  546. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +122 -125
  547. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c +50 -20
  548. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +247 -253
  549. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +386 -389
  550. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c +45 -32
  551. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c +57 -54
  552. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c +63 -67
  553. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +143 -136
  554. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +664 -707
  555. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +83 -75
  556. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1062 -1146
  557. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +8 -4
  558. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +28 -48
  559. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +211 -187
  560. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +26 -78
  561. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +19 -14
  562. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +21 -2
  563. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +49 -17
  564. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +99 -29
  565. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +49 -60
  566. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +2 -15
  567. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +16 -200
  568. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +34 -0
  569. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +82 -0
  570. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +32 -30
  571. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +7 -0
  572. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +4 -0
  573. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +48 -5
  574. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +37 -8
  575. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +1 -0
  576. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +33 -5
  577. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +22 -30
  578. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +1 -1
  579. data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +7 -0
  580. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +41 -16
  581. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +91 -0
  582. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +74 -8
  583. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +13 -0
  584. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +1 -0
  585. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +11 -15
  586. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +8 -0
  587. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +12 -1
  588. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +7 -4
  589. data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +96 -0
  590. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +13 -21
  591. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +139 -75
  592. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +1 -6
  593. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +384 -286
  594. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +5 -6
  595. data/third_party/boringssl-with-bazel/src/include/openssl/time.h +41 -0
  596. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +18 -7
  597. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +49 -23
  598. data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +0 -11
  599. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1592 -1074
  600. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +202 -205
  601. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +2 -2
  602. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +6 -13
  603. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +17 -18
  604. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +4 -5
  605. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +25 -33
  606. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +34 -20
  607. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +65 -34
  608. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +198 -54
  609. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +5 -5
  610. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +32 -28
  611. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +76 -44
  612. data/third_party/boringssl-with-bazel/src/ssl/internal.h +130 -98
  613. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +27 -11
  614. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
  615. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +91 -75
  616. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +8 -10
  617. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +39 -65
  618. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +1 -0
  619. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +5 -9
  620. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +30 -33
  621. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +77 -100
  622. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +120 -107
  623. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +164 -30
  624. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +150 -60
  625. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +22 -11
  626. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +22 -6
  627. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +15 -13
  628. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +5 -43
  629. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +7 -4
  630. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +2 -2
  631. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +22 -34
  632. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +2 -2
  633. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +16 -98
  634. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +1241 -657
  635. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +751 -398
  636. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +3551 -1938
  637. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +1272 -487
  638. metadata +107 -72
  639. data/src/core/ext/filters/client_channel/lb_call_state_internal.h +0 -39
  640. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +0 -30
  641. data/src/core/lib/gprpp/global_config.h +0 -93
  642. data/src/core/lib/gprpp/global_config_env.cc +0 -140
  643. data/src/core/lib/gprpp/global_config_env.h +0 -133
  644. data/src/core/lib/gprpp/global_config_generic.h +0 -40
  645. data/src/core/lib/promise/intra_activity_waiter.h +0 -55
  646. data/src/core/lib/security/security_connector/ssl_utils_config.cc +0 -32
  647. data/src/core/lib/security/security_connector/ssl_utils_config.h +0 -29
  648. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +0 -195
  649. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +0 -83
  650. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +0 -236
  651. data/third_party/boringssl-with-bazel/src/crypto/asn1/charmap.h +0 -15
  652. data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +0 -206
  653. data/third_party/boringssl-with-bazel/src/crypto/cpu-ppc64le.c +0 -38
  654. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1-altivec.c +0 -361
  655. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +0 -287
  656. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +0 -132
  657. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +0 -155
  658. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +0 -131
  659. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +0 -189
  660. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +0 -843
  661. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +0 -289
  662. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcia.c +0 -57
  663. /data/src/core/lib/gpr/{log_android.cc → android/log.cc} +0 -0
  664. /data/src/core/lib/gpr/{cpu_iphone.cc → iphone/cpu.cc} +0 -0
  665. /data/src/core/lib/gpr/{cpu_linux.cc → linux/cpu.cc} +0 -0
  666. /data/src/core/lib/gpr/{log_linux.cc → linux/log.cc} +0 -0
  667. /data/src/core/lib/gpr/{tmpfile_msys.cc → msys/tmpfile.cc} +0 -0
  668. /data/src/core/lib/gpr/{cpu_posix.cc → posix/cpu.cc} +0 -0
  669. /data/src/core/lib/gpr/{log_posix.cc → posix/log.cc} +0 -0
  670. /data/src/core/lib/gpr/{string_posix.cc → posix/string.cc} +0 -0
  671. /data/src/core/lib/gpr/{sync_posix.cc → posix/sync.cc} +0 -0
  672. /data/src/core/lib/gpr/{time_posix.cc → posix/time.cc} +0 -0
  673. /data/src/core/lib/gpr/{tmpfile_posix.cc → posix/tmpfile.cc} +0 -0
  674. /data/src/core/lib/gpr/{cpu_windows.cc → windows/cpu.cc} +0 -0
  675. /data/src/core/lib/gpr/{log_windows.cc → windows/log.cc} +0 -0
  676. /data/src/core/lib/gpr/{string_windows.cc → windows/string.cc} +0 -0
  677. /data/src/core/lib/gpr/{string_util_windows.cc → windows/string_util.cc} +0 -0
  678. /data/src/core/lib/gpr/{sync_windows.cc → windows/sync.cc} +0 -0
  679. /data/src/core/lib/gpr/{time_windows.cc → windows/time.cc} +0 -0
  680. /data/src/core/lib/gpr/{tmpfile_windows.cc → windows/tmpfile.cc} +0 -0
  681. /data/src/core/lib/gprpp/{env_linux.cc → linux/env.cc} +0 -0
  682. /data/src/core/lib/gprpp/{env_posix.cc → posix/env.cc} +0 -0
  683. /data/src/core/lib/gprpp/{stat_posix.cc → posix/stat.cc} +0 -0
  684. /data/src/core/lib/gprpp/{env_windows.cc → windows/env.cc} +0 -0
  685. /data/src/core/lib/gprpp/{stat_windows.cc → windows/stat.cc} +0 -0
@@ -52,8 +52,8 @@
52
52
  * (eay@cryptsoft.com). This product includes software written by Tim
53
53
  * Hudson (tjh@cryptsoft.com). */
54
54
 
55
- #ifndef HEADER_X509V3_H
56
- #define HEADER_X509V3_H
55
+ #ifndef OPENSSL_HEADER_X509V3_H
56
+ #define OPENSSL_HEADER_X509V3_H
57
57
 
58
58
  #include <openssl/bio.h>
59
59
  #include <openssl/conf.h>
@@ -79,23 +79,25 @@ struct v3_ext_ctx;
79
79
 
80
80
  // Useful typedefs
81
81
 
82
+ typedef struct v3_ext_method X509V3_EXT_METHOD;
83
+
82
84
  typedef void *(*X509V3_EXT_NEW)(void);
83
85
  typedef void (*X509V3_EXT_FREE)(void *);
84
86
  typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long);
85
87
  typedef int (*X509V3_EXT_I2D)(void *, unsigned char **);
86
- typedef STACK_OF(CONF_VALUE) *(*X509V3_EXT_I2V)(
87
- const struct v3_ext_method *method, void *ext,
88
- STACK_OF(CONF_VALUE) *extlist);
89
- typedef void *(*X509V3_EXT_V2I)(const struct v3_ext_method *method,
90
- struct v3_ext_ctx *ctx,
91
- STACK_OF(CONF_VALUE) *values);
92
- typedef char *(*X509V3_EXT_I2S)(const struct v3_ext_method *method, void *ext);
93
- typedef void *(*X509V3_EXT_S2I)(const struct v3_ext_method *method,
94
- struct v3_ext_ctx *ctx, const char *str);
95
- typedef int (*X509V3_EXT_I2R)(const struct v3_ext_method *method, void *ext,
88
+ typedef STACK_OF(CONF_VALUE) *(*X509V3_EXT_I2V)(const X509V3_EXT_METHOD *method,
89
+ void *ext,
90
+ STACK_OF(CONF_VALUE) *extlist);
91
+ typedef void *(*X509V3_EXT_V2I)(const X509V3_EXT_METHOD *method,
92
+ const X509V3_CTX *ctx,
93
+ const STACK_OF(CONF_VALUE) *values);
94
+ typedef char *(*X509V3_EXT_I2S)(const X509V3_EXT_METHOD *method, void *ext);
95
+ typedef void *(*X509V3_EXT_S2I)(const X509V3_EXT_METHOD *method,
96
+ const X509V3_CTX *ctx, const char *str);
97
+ typedef int (*X509V3_EXT_I2R)(const X509V3_EXT_METHOD *method, void *ext,
96
98
  BIO *out, int indent);
97
- typedef void *(*X509V3_EXT_R2I)(const struct v3_ext_method *method,
98
- struct v3_ext_ctx *ctx, const char *str);
99
+ typedef void *(*X509V3_EXT_R2I)(const X509V3_EXT_METHOD *method,
100
+ const X509V3_CTX *ctx, const char *str);
99
101
 
100
102
  // V3 extension structure
101
103
 
@@ -125,28 +127,6 @@ struct v3_ext_method {
125
127
  void *usr_data; // Any extension specific data
126
128
  };
127
129
 
128
- typedef struct X509V3_CONF_METHOD_st {
129
- char *(*get_string)(void *db, const char *section, const char *value);
130
- STACK_OF(CONF_VALUE) *(*get_section)(void *db, const char *section);
131
- void (*free_string)(void *db, char *string);
132
- void (*free_section)(void *db, STACK_OF(CONF_VALUE) *section);
133
- } X509V3_CONF_METHOD;
134
-
135
- // Context specific info
136
- struct v3_ext_ctx {
137
- #define CTX_TEST 0x1
138
- int flags;
139
- X509 *issuer_cert;
140
- X509 *subject_cert;
141
- X509_REQ *subject_req;
142
- X509_CRL *crl;
143
- const X509V3_CONF_METHOD *db_meth;
144
- void *db;
145
- // Maybe more here
146
- };
147
-
148
- typedef struct v3_ext_method X509V3_EXT_METHOD;
149
-
150
130
  DEFINE_STACK_OF(X509V3_EXT_METHOD)
151
131
 
152
132
  // ext_flags values
@@ -317,20 +297,6 @@ typedef struct POLICY_CONSTRAINTS_st {
317
297
  ASN1_INTEGER *inhibitPolicyMapping;
318
298
  } POLICY_CONSTRAINTS;
319
299
 
320
- // Proxy certificate structures, see RFC 3820
321
- typedef struct PROXY_POLICY_st {
322
- ASN1_OBJECT *policyLanguage;
323
- ASN1_OCTET_STRING *policy;
324
- } PROXY_POLICY;
325
-
326
- typedef struct PROXY_CERT_INFO_EXTENSION_st {
327
- ASN1_INTEGER *pcPathLengthConstraint;
328
- PROXY_POLICY *proxyPolicy;
329
- } PROXY_CERT_INFO_EXTENSION;
330
-
331
- DECLARE_ASN1_FUNCTIONS(PROXY_POLICY)
332
- DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION)
333
-
334
300
  struct ISSUING_DIST_POINT_st {
335
301
  DIST_POINT_NAME *distpoint;
336
302
  int onlyuser;
@@ -356,30 +322,6 @@ struct ISSUING_DIST_POINT_st {
356
322
  // onlysomereasons present
357
323
  #define IDP_REASONS 0x40
358
324
 
359
- #define X509V3_conf_err(val) \
360
- ERR_add_error_data(6, "section:", (val)->section, ",name:", (val)->name, \
361
- ",value:", (val)->value);
362
-
363
- #define X509V3_set_ctx_test(ctx) \
364
- X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST)
365
- #define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL;
366
-
367
- #define EXT_BITSTRING(nid, table) \
368
- { \
369
- nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), 0, 0, 0, 0, 0, 0, \
370
- (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \
371
- (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, NULL, NULL, (void *)(table) \
372
- }
373
-
374
- #define EXT_IA5STRING(nid) \
375
- { \
376
- nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), 0, 0, 0, 0, \
377
- (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \
378
- (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, 0, 0, 0, 0, NULL \
379
- }
380
-
381
- #define EXT_END \
382
- { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
383
325
 
384
326
 
385
327
  // X509_PURPOSE stuff
@@ -396,9 +338,7 @@ struct ISSUING_DIST_POINT_st {
396
338
  #define EXFLAG_INVALID 0x80
397
339
  #define EXFLAG_SET 0x100
398
340
  #define EXFLAG_CRITICAL 0x200
399
- #define EXFLAG_PROXY 0x400
400
341
 
401
- #define EXFLAG_INVALID_POLICY 0x800
402
342
  #define EXFLAG_FRESHEST 0x1000
403
343
  // Self signed
404
344
  #define EXFLAG_SS 0x2000
@@ -460,28 +400,17 @@ typedef struct x509_purpose_st {
460
400
 
461
401
  DEFINE_STACK_OF(X509_PURPOSE)
462
402
 
463
- DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS)
403
+ DECLARE_ASN1_FUNCTIONS_const(BASIC_CONSTRAINTS)
464
404
 
405
+ // TODO(https://crbug.com/boringssl/407): This is not const because it contains
406
+ // an |X509_NAME|.
465
407
  DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID)
466
408
 
409
+ // TODO(https://crbug.com/boringssl/407): This is not const because it contains
410
+ // an |X509_NAME|.
467
411
  DECLARE_ASN1_FUNCTIONS(GENERAL_NAME)
468
412
  OPENSSL_EXPORT GENERAL_NAME *GENERAL_NAME_dup(GENERAL_NAME *a);
469
413
 
470
- // GENERAL_NAME_cmp returns zero if |a| and |b| are equal and a non-zero
471
- // value otherwise. Note this function does not provide a comparison suitable
472
- // for sorting.
473
- OPENSSL_EXPORT int GENERAL_NAME_cmp(const GENERAL_NAME *a,
474
- const GENERAL_NAME *b);
475
-
476
-
477
-
478
- OPENSSL_EXPORT ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method,
479
- X509V3_CTX *ctx,
480
- STACK_OF(CONF_VALUE) *nval);
481
- OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(
482
- X509V3_EXT_METHOD *method, ASN1_BIT_STRING *bits,
483
- STACK_OF(CONF_VALUE) *extlist);
484
-
485
414
  // i2v_GENERAL_NAME serializes |gen| as a |CONF_VALUE|. If |ret| is non-NULL, it
486
415
  // appends the value to |ret| and returns |ret| on success or NULL on error. If
487
416
  // it returns NULL, the caller is still responsible for freeing |ret|. If |ret|
@@ -492,9 +421,18 @@ OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(
492
421
  // human-readable print functions. If extracting a SAN list from a certificate,
493
422
  // look at |gen| directly.
494
423
  OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(
495
- X509V3_EXT_METHOD *method, GENERAL_NAME *gen, STACK_OF(CONF_VALUE) *ret);
496
- OPENSSL_EXPORT int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen);
424
+ const X509V3_EXT_METHOD *method, const GENERAL_NAME *gen,
425
+ STACK_OF(CONF_VALUE) *ret);
497
426
 
427
+ // GENERAL_NAME_print prints a human-readable representation of |gen| to |out|.
428
+ // It returns one on success and zero on error.
429
+ //
430
+ // TODO(davidben): Actually, it just returns one and doesn't check for I/O or
431
+ // allocation errors. But it should return zero on error.
432
+ OPENSSL_EXPORT int GENERAL_NAME_print(BIO *out, const GENERAL_NAME *gen);
433
+
434
+ // TODO(https://crbug.com/boringssl/407): This is not const because it contains
435
+ // an |X509_NAME|.
498
436
  DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES)
499
437
 
500
438
  // i2v_GENERAL_NAMES serializes |gen| as a list of |CONF_VALUE|s. If |ret| is
@@ -507,15 +445,14 @@ DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES)
507
445
  // human-readable print functions. If extracting a SAN list from a certificate,
508
446
  // look at |gen| directly.
509
447
  OPENSSL_EXPORT STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(
510
- X509V3_EXT_METHOD *method, GENERAL_NAMES *gen,
448
+ const X509V3_EXT_METHOD *method, const GENERAL_NAMES *gen,
511
449
  STACK_OF(CONF_VALUE) *extlist);
512
- OPENSSL_EXPORT GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method,
513
- X509V3_CTX *ctx,
514
- STACK_OF(CONF_VALUE) *nval);
450
+ OPENSSL_EXPORT GENERAL_NAMES *v2i_GENERAL_NAMES(
451
+ const X509V3_EXT_METHOD *method, const X509V3_CTX *ctx,
452
+ const STACK_OF(CONF_VALUE) *nval);
515
453
 
516
- DECLARE_ASN1_FUNCTIONS(OTHERNAME)
517
- DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME)
518
- OPENSSL_EXPORT int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b);
454
+ DECLARE_ASN1_FUNCTIONS_const(OTHERNAME)
455
+ DECLARE_ASN1_FUNCTIONS_const(EDIPARTYNAME)
519
456
  OPENSSL_EXPORT void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type,
520
457
  void *value);
521
458
  OPENSSL_EXPORT void *GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype);
@@ -526,23 +463,35 @@ OPENSSL_EXPORT int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen,
526
463
  ASN1_OBJECT **poid,
527
464
  ASN1_TYPE **pvalue);
528
465
 
529
- OPENSSL_EXPORT char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method,
530
- const ASN1_OCTET_STRING *ia5);
466
+ // i2s_ASN1_OCTET_STRING returns a human-readable representation of |oct| as a
467
+ // newly-allocated, NUL-terminated string, or NULL on error. |method| is
468
+ // ignored. The caller must release the result with |OPENSSL_free| when done.
469
+ OPENSSL_EXPORT char *i2s_ASN1_OCTET_STRING(const X509V3_EXT_METHOD *method,
470
+ const ASN1_OCTET_STRING *oct);
471
+
531
472
  OPENSSL_EXPORT ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(
532
- X509V3_EXT_METHOD *method, X509V3_CTX *ctx, const char *str);
473
+ const X509V3_EXT_METHOD *method, const X509V3_CTX *ctx, const char *str);
533
474
 
534
- DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE)
475
+ DECLARE_ASN1_FUNCTIONS_const(EXTENDED_KEY_USAGE)
535
476
  OPENSSL_EXPORT int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a);
536
477
 
537
- DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES)
538
- DECLARE_ASN1_FUNCTIONS(POLICYINFO)
539
- DECLARE_ASN1_FUNCTIONS(POLICYQUALINFO)
540
- DECLARE_ASN1_FUNCTIONS(USERNOTICE)
541
- DECLARE_ASN1_FUNCTIONS(NOTICEREF)
478
+ DECLARE_ASN1_FUNCTIONS_const(CERTIFICATEPOLICIES)
479
+ DECLARE_ASN1_FUNCTIONS_const(POLICYINFO)
480
+ DECLARE_ASN1_FUNCTIONS_const(POLICYQUALINFO)
481
+ DECLARE_ASN1_FUNCTIONS_const(USERNOTICE)
482
+ DECLARE_ASN1_FUNCTIONS_const(NOTICEREF)
542
483
 
484
+ // TODO(https://crbug.com/boringssl/407): This is not const because it contains
485
+ // an |X509_NAME|.
543
486
  DECLARE_ASN1_FUNCTIONS(CRL_DIST_POINTS)
487
+ // TODO(https://crbug.com/boringssl/407): This is not const because it contains
488
+ // an |X509_NAME|.
544
489
  DECLARE_ASN1_FUNCTIONS(DIST_POINT)
490
+ // TODO(https://crbug.com/boringssl/407): This is not const because it contains
491
+ // an |X509_NAME|.
545
492
  DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME)
493
+ // TODO(https://crbug.com/boringssl/407): This is not const because it contains
494
+ // an |X509_NAME|.
546
495
  DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT)
547
496
 
548
497
  OPENSSL_EXPORT int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn,
@@ -550,7 +499,11 @@ OPENSSL_EXPORT int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn,
550
499
 
551
500
  OPENSSL_EXPORT int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc);
552
501
 
502
+ // TODO(https://crbug.com/boringssl/407): This is not const because it contains
503
+ // an |X509_NAME|.
553
504
  DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION)
505
+ // TODO(https://crbug.com/boringssl/407): This is not const because it contains
506
+ // an |X509_NAME|.
554
507
  DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS)
555
508
 
556
509
  DECLARE_ASN1_ITEM(POLICY_MAPPING)
@@ -568,94 +521,148 @@ DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS)
568
521
 
569
522
  OPENSSL_EXPORT GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out,
570
523
  const X509V3_EXT_METHOD *method,
571
- X509V3_CTX *ctx, int gen_type,
524
+ const X509V3_CTX *ctx, int gen_type,
572
525
  const char *value, int is_nc);
573
526
 
574
527
  OPENSSL_EXPORT GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method,
575
- X509V3_CTX *ctx, CONF_VALUE *cnf);
528
+ const X509V3_CTX *ctx,
529
+ const CONF_VALUE *cnf);
576
530
  OPENSSL_EXPORT GENERAL_NAME *v2i_GENERAL_NAME_ex(
577
- GENERAL_NAME *out, const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
578
- CONF_VALUE *cnf, int is_nc);
531
+ GENERAL_NAME *out, const X509V3_EXT_METHOD *method, const X509V3_CTX *ctx,
532
+ const CONF_VALUE *cnf, int is_nc);
579
533
  OPENSSL_EXPORT void X509V3_conf_free(CONF_VALUE *val);
580
534
 
581
- // X509V3_EXT_conf_nid contains the only exposed instance of an LHASH in our
582
- // public headers. The |conf| pointer must be NULL but cryptography.io wraps
583
- // this function so we cannot, yet, replace the type with a dummy struct.
584
- OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf,
585
- X509V3_CTX *ctx, int ext_nid,
586
- const char *value);
587
535
 
588
- OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx,
589
- int ext_nid,
590
- const char *value);
591
- OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx,
536
+ // Deprecated config-based extension creation.
537
+ //
538
+ // The following functions allow specifying X.509 extensions using OpenSSL's
539
+ // config file syntax, from the OpenSSL command-line tool. They are retained,
540
+ // for now, for compatibility with legacy software but may be removed in the
541
+ // future. Construct the extensions using the typed C APIs instead.
542
+ //
543
+ // Callers should especially avoid these functions if passing in non-constant
544
+ // values. They use ad-hoc, string-based formats which are prone to injection
545
+ // vulnerabilities. For a CA, this means using them risks misissuance.
546
+ //
547
+ // These functions are not safe to use with untrusted inputs. The string formats
548
+ // may implicitly reference context information and, in OpenSSL (though not
549
+ // BoringSSL), one even allows reading arbitrary files. They additionally see
550
+ // much less testing and review than most of the library and may have bugs
551
+ // including memory leaks or crashes.
552
+
553
+ // v3_ext_ctx, aka |X509V3_CTX|, contains additional context information for
554
+ // constructing extensions. Some string formats reference additional values in
555
+ // these objects. It must be initialized with |X509V3_set_ctx| or
556
+ // |X509V3_set_ctx_test| before use.
557
+ struct v3_ext_ctx {
558
+ int flags;
559
+ const X509 *issuer_cert;
560
+ const X509 *subject_cert;
561
+ const X509_REQ *subject_req;
562
+ const X509_CRL *crl;
563
+ const CONF *db;
564
+ };
565
+
566
+ #define X509V3_CTX_TEST 0x1
567
+
568
+ // X509V3_set_ctx initializes |ctx| with the specified objects. Some string
569
+ // formats will reference fields in these objects. Each object may be NULL to
570
+ // omit it, in which case those formats cannot be used. |flags| should be zero,
571
+ // unless called via |X509V3_set_ctx_test|.
572
+ //
573
+ // |issuer|, |subject|, |req|, and |crl|, if non-NULL, must outlive |ctx|.
574
+ OPENSSL_EXPORT void X509V3_set_ctx(X509V3_CTX *ctx, const X509 *issuer,
575
+ const X509 *subject, const X509_REQ *req,
576
+ const X509_CRL *crl, int flags);
577
+
578
+ // X509V3_set_ctx_test calls |X509V3_set_ctx| without any reference objects and
579
+ // mocks out some features that use them. The resulting extensions may be
580
+ // incomplete and should be discarded. This can be used to partially validate
581
+ // syntax.
582
+ //
583
+ // TODO(davidben): Can we remove this?
584
+ #define X509V3_set_ctx_test(ctx) \
585
+ X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, X509V3_CTX_TEST)
586
+
587
+ // X509V3_set_nconf sets |ctx| to use |conf| as the config database. |ctx| must
588
+ // have previously been initialized by |X509V3_set_ctx| or
589
+ // |X509V3_set_ctx_test|. Some string formats will reference sections in |conf|.
590
+ // |conf| may be NULL, in which case these formats cannot be used. If non-NULL,
591
+ // |conf| must outlive |ctx|.
592
+ OPENSSL_EXPORT void X509V3_set_nconf(X509V3_CTX *ctx, const CONF *conf);
593
+
594
+ // X509V3_set_ctx_nodb calls |X509V3_set_nconf| with no config database.
595
+ #define X509V3_set_ctx_nodb(ctx) X509V3_set_nconf(ctx, NULL)
596
+
597
+ // X509V3_EXT_nconf constructs an extension of type specified by |name|, and
598
+ // value specified by |value|. It returns a newly-allocated |X509_EXTENSION|
599
+ // object on success, or NULL on error. |conf| and |ctx| specify additional
600
+ // information referenced by some formats. Either |conf| or |ctx| may be NULL,
601
+ // in which case features which use it will be disabled.
602
+ //
603
+ // If non-NULL, |ctx| must be initialized with |X509V3_set_ctx| or
604
+ // |X509V3_set_ctx_test|.
605
+ //
606
+ // Both |conf| and |ctx| provide a |CONF| object. When |ctx| is non-NULL, most
607
+ // features use the |ctx| copy, configured with |X509V3_set_ctx|, but some use
608
+ // |conf|. Callers should ensure the two match to avoid surprisingly behavior.
609
+ OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf(const CONF *conf,
610
+ const X509V3_CTX *ctx,
592
611
  const char *name,
593
612
  const char *value);
594
- OPENSSL_EXPORT int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx,
613
+
614
+ // X509V3_EXT_nconf_nid behaves like |X509V3_EXT_nconf|, except the extension
615
+ // type is specified as a NID.
616
+ OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_nconf_nid(const CONF *conf,
617
+ const X509V3_CTX *ctx,
618
+ int ext_nid,
619
+ const char *value);
620
+
621
+ // X509V3_EXT_conf_nid calls |X509V3_EXT_nconf_nid|. |conf| must be NULL.
622
+ //
623
+ // TODO(davidben): This is the only exposed instance of an LHASH in our public
624
+ // headers. cryptography.io wraps this function so we cannot, yet, replace the
625
+ // type with a dummy struct.
626
+ OPENSSL_EXPORT X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf,
627
+ const X509V3_CTX *ctx,
628
+ int ext_nid,
629
+ const char *value);
630
+
631
+ // X509V3_EXT_add_nconf_sk looks up the section named |section| in |conf|. For
632
+ // each |CONF_VALUE| in the section, it constructs an extension as in
633
+ // |X509V3_EXT_nconf|, taking |name| and |value| from the |CONF_VALUE|. Each new
634
+ // extension is appended to |*sk|. If |*sk| is non-NULL, and at least one
635
+ // extension is added, it sets |*sk| to a newly-allocated
636
+ // |STACK_OF(X509_EXTENSION)|. It returns one on success and zero on error.
637
+ OPENSSL_EXPORT int X509V3_EXT_add_nconf_sk(const CONF *conf,
638
+ const X509V3_CTX *ctx,
595
639
  const char *section,
596
640
  STACK_OF(X509_EXTENSION) **sk);
597
- OPENSSL_EXPORT int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx,
641
+
642
+ // X509V3_EXT_add_nconf adds extensions to |cert| as in
643
+ // |X509V3_EXT_add_nconf_sk|. It returns one on success and zero on error.
644
+ OPENSSL_EXPORT int X509V3_EXT_add_nconf(const CONF *conf, const X509V3_CTX *ctx,
598
645
  const char *section, X509 *cert);
599
- OPENSSL_EXPORT int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx,
646
+
647
+ // X509V3_EXT_REQ_add_nconf adds extensions to |req| as in
648
+ // |X509V3_EXT_add_nconf_sk|. It returns one on success and zero on error.
649
+ OPENSSL_EXPORT int X509V3_EXT_REQ_add_nconf(const CONF *conf,
650
+ const X509V3_CTX *ctx,
600
651
  const char *section, X509_REQ *req);
601
- OPENSSL_EXPORT int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx,
652
+
653
+ // X509V3_EXT_CRL_add_nconf adds extensions to |crl| as in
654
+ // |X509V3_EXT_add_nconf_sk|. It returns one on success and zero on error.
655
+ OPENSSL_EXPORT int X509V3_EXT_CRL_add_nconf(const CONF *conf,
656
+ const X509V3_CTX *ctx,
602
657
  const char *section, X509_CRL *crl);
603
658
 
604
- OPENSSL_EXPORT int X509V3_add_value_bool_nf(const char *name, int asn1_bool,
605
- STACK_OF(CONF_VALUE) **extlist);
606
- OPENSSL_EXPORT int X509V3_get_value_bool(const CONF_VALUE *value,
607
- int *asn1_bool);
608
- OPENSSL_EXPORT int X509V3_get_value_int(const CONF_VALUE *value,
609
- ASN1_INTEGER **aint);
610
- OPENSSL_EXPORT void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf);
611
-
612
- OPENSSL_EXPORT char *X509V3_get_string(X509V3_CTX *ctx, const char *name,
613
- const char *section);
614
- OPENSSL_EXPORT STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx,
615
- const char *section);
616
- OPENSSL_EXPORT void X509V3_string_free(X509V3_CTX *ctx, char *str);
617
- OPENSSL_EXPORT void X509V3_section_free(X509V3_CTX *ctx,
618
- STACK_OF(CONF_VALUE) *section);
619
- OPENSSL_EXPORT void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject,
620
- X509_REQ *req, X509_CRL *crl, int flags);
621
-
622
- // X509V3_add_value appends a |CONF_VALUE| containing |name| and |value| to
623
- // |*extlist|. It returns one on success and zero on error. If |*extlist| is
624
- // NULL, it sets |*extlist| to a newly-allocated |STACK_OF(CONF_VALUE)|
625
- // containing the result. Either |name| or |value| may be NULL to omit the
626
- // field.
627
- //
628
- // On failure, if |*extlist| was NULL, |*extlist| will remain NULL when the
629
- // function returns.
630
- OPENSSL_EXPORT int X509V3_add_value(const char *name, const char *value,
631
- STACK_OF(CONF_VALUE) **extlist);
632
-
633
- // X509V3_add_value_uchar behaves like |X509V3_add_value| but takes an
634
- // |unsigned char| pointer.
635
- OPENSSL_EXPORT int X509V3_add_value_uchar(const char *name,
636
- const unsigned char *value,
637
- STACK_OF(CONF_VALUE) **extlist);
638
-
639
- // X509V3_add_value_bool behaves like |X509V3_add_value| but stores the value
640
- // "TRUE" if |asn1_bool| is non-zero and "FALSE" otherwise.
641
- OPENSSL_EXPORT int X509V3_add_value_bool(const char *name, int asn1_bool,
642
- STACK_OF(CONF_VALUE) **extlist);
643
-
644
- // X509V3_add_value_bool behaves like |X509V3_add_value| but stores a string
645
- // representation of |aint|. Note this string representation may be decimal or
646
- // hexadecimal, depending on the size of |aint|.
647
- OPENSSL_EXPORT int X509V3_add_value_int(const char *name,
648
- const ASN1_INTEGER *aint,
649
- STACK_OF(CONF_VALUE) **extlist);
650
-
651
- OPENSSL_EXPORT char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth,
659
+
660
+ OPENSSL_EXPORT char *i2s_ASN1_INTEGER(const X509V3_EXT_METHOD *meth,
652
661
  const ASN1_INTEGER *aint);
653
- OPENSSL_EXPORT ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth,
662
+ OPENSSL_EXPORT ASN1_INTEGER *s2i_ASN1_INTEGER(const X509V3_EXT_METHOD *meth,
654
663
  const char *value);
655
- OPENSSL_EXPORT char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth,
664
+ OPENSSL_EXPORT char *i2s_ASN1_ENUMERATED(const X509V3_EXT_METHOD *meth,
656
665
  const ASN1_ENUMERATED *aint);
657
- OPENSSL_EXPORT char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth,
658
- const ASN1_ENUMERATED *aint);
659
666
  OPENSSL_EXPORT int X509V3_EXT_add(X509V3_EXT_METHOD *ext);
660
667
  OPENSSL_EXPORT int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist);
661
668
  OPENSSL_EXPORT int X509V3_EXT_add_alias(int nid_to, int nid_from);
@@ -665,7 +672,6 @@ OPENSSL_EXPORT const X509V3_EXT_METHOD *X509V3_EXT_get(
665
672
  const X509_EXTENSION *ext);
666
673
  OPENSSL_EXPORT const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid);
667
674
  OPENSSL_EXPORT int X509V3_add_standard_extensions(void);
668
- OPENSSL_EXPORT STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line);
669
675
 
670
676
  // X509V3_EXT_d2i decodes |ext| and returns a pointer to a newly-allocated
671
677
  // structure, with type dependent on the type of the extension. It returns NULL
@@ -796,12 +802,13 @@ OPENSSL_EXPORT int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid,
796
802
  // hexdump.
797
803
  #define X509V3_EXT_DUMP_UNKNOWN (3L << 16)
798
804
 
799
- OPENSSL_EXPORT void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val,
805
+ OPENSSL_EXPORT void X509V3_EXT_val_prn(BIO *out,
806
+ const STACK_OF(CONF_VALUE) *val,
800
807
  int indent, int ml);
801
- OPENSSL_EXPORT int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext,
808
+ OPENSSL_EXPORT int X509V3_EXT_print(BIO *out, const X509_EXTENSION *ext,
802
809
  unsigned long flag, int indent);
803
- OPENSSL_EXPORT int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag,
804
- int indent);
810
+ OPENSSL_EXPORT int X509V3_EXT_print_fp(FILE *out, const X509_EXTENSION *ext,
811
+ int flag, int indent);
805
812
 
806
813
  // X509V3_extensions_print prints |title|, followed by a human-readable
807
814
  // representation of |exts| to |out|. It returns one on success and zero on
@@ -814,7 +821,7 @@ OPENSSL_EXPORT int X509V3_extensions_print(BIO *out, const char *title,
814
821
 
815
822
  OPENSSL_EXPORT int X509_check_ca(X509 *x);
816
823
  OPENSSL_EXPORT int X509_check_purpose(X509 *x, int id, int ca);
817
- OPENSSL_EXPORT int X509_supported_extension(X509_EXTENSION *ex);
824
+ OPENSSL_EXPORT int X509_supported_extension(const X509_EXTENSION *ex);
818
825
  OPENSSL_EXPORT int X509_PURPOSE_set(int *p, int purpose);
819
826
  OPENSSL_EXPORT int X509_check_issued(X509 *issuer, X509 *subject);
820
827
  OPENSSL_EXPORT int X509_check_akid(X509 *issuer, AUTHORITY_KEYID *akid);
@@ -889,19 +896,16 @@ OPENSSL_EXPORT STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x);
889
896
  #define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0
890
897
  // Disable wildcard matching for dnsName fields and common name.
891
898
  #define X509_CHECK_FLAG_NO_WILDCARDS 0x2
892
- // Wildcards must not match a partial label.
893
- #define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4
894
- // Allow (non-partial) wildcards to match multiple labels.
895
- #define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8
896
- // Constraint verifier subdomain patterns to match a single labels.
897
- #define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10
899
+ // X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS does nothing, but is necessary in
900
+ // OpenSSL to enable standard wildcard matching. In BoringSSL, this behavior is
901
+ // always enabled.
902
+ #define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0
903
+ // Deprecated: this flag does nothing
904
+ #define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0
905
+ // Deprecated: this flag does nothing
906
+ #define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0
898
907
  // Skip the subject common name fallback if subjectAltNames is missing.
899
908
  #define X509_CHECK_FLAG_NEVER_CHECK_SUBJECT 0x20
900
- //
901
- // Match reference identifiers starting with "." to any sub-domain.
902
- // This is a non-public flag, turned on implicitly when the subject
903
- // reference identity is a DNS name.
904
- #define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000
905
909
 
906
910
  OPENSSL_EXPORT int X509_check_host(X509 *x, const char *chk, size_t chklen,
907
911
  unsigned int flags, char **peername);
@@ -914,13 +918,6 @@ OPENSSL_EXPORT int X509_check_ip_asc(X509 *x, const char *ipasc,
914
918
 
915
919
  OPENSSL_EXPORT ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc);
916
920
  OPENSSL_EXPORT ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc);
917
- OPENSSL_EXPORT int X509V3_NAME_from_section(X509_NAME *nm,
918
- STACK_OF(CONF_VALUE) *dn_sk,
919
- unsigned long chtype);
920
-
921
- OPENSSL_EXPORT void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node,
922
- int indent);
923
- DEFINE_STACK_OF(X509_POLICY_NODE)
924
921
 
925
922
  // BEGIN ERROR CODES
926
923
  // The following lines are auto generated by the script mkerr.pl. Any changes
@@ -1017,4 +1014,4 @@ BSSL_NAMESPACE_END
1017
1014
  #define X509V3_R_INVALID_VALUE 163
1018
1015
  #define X509V3_R_TRAILING_DATA_IN_EXTENSION 164
1019
1016
 
1020
- #endif
1017
+ #endif // OPENSSL_HEADER_X509V3_H
@@ -109,7 +109,7 @@ static long ssl_ctrl(BIO *bio, int cmd, long num, void *ptr) {
109
109
  // |bio->next_bio| with |ssl|'s rbio here, and on |BIO_CTRL_PUSH|. We call
110
110
  // into the corresponding |BIO| directly. (We can implement the upstream
111
111
  // behavior if it ends up necessary.)
112
- bio->shutdown = num;
112
+ bio->shutdown = static_cast<int>(num);
113
113
  bio->ptr = ptr;
114
114
  bio->init = 1;
115
115
  return 1;
@@ -118,7 +118,7 @@ static long ssl_ctrl(BIO *bio, int cmd, long num, void *ptr) {
118
118
  return bio->shutdown;
119
119
 
120
120
  case BIO_CTRL_SET_CLOSE:
121
- bio->shutdown = num;
121
+ bio->shutdown = static_cast<int>(num);
122
122
  return 1;
123
123
 
124
124
  case BIO_CTRL_WPENDING:
@@ -163,7 +163,6 @@ static UniquePtr<hm_fragment> dtls1_hm_fragment_new(
163
163
  frag->data =
164
164
  (uint8_t *)OPENSSL_malloc(DTLS1_HM_HEADER_LENGTH + msg_hdr->msg_len);
165
165
  if (frag->data == NULL) {
166
- OPENSSL_PUT_ERROR(SSL, ERR_R_MALLOC_FAILURE);
167
166
  return nullptr;
168
167
  }
169
168
 
@@ -174,7 +173,6 @@ static UniquePtr<hm_fragment> dtls1_hm_fragment_new(
174
173
  !CBB_add_u24(cbb.get(), 0 /* frag_off */) ||
175
174
  !CBB_add_u24(cbb.get(), msg_hdr->msg_len) ||
176
175
  !CBB_finish(cbb.get(), NULL, NULL)) {
177
- OPENSSL_PUT_ERROR(SSL, ERR_R_MALLOC_FAILURE);
178
176
  return nullptr;
179
177
  }
180
178
 
@@ -188,7 +186,6 @@ static UniquePtr<hm_fragment> dtls1_hm_fragment_new(
188
186
  size_t bitmask_len = (msg_hdr->msg_len + 7) / 8;
189
187
  frag->reassembly = (uint8_t *)OPENSSL_malloc(bitmask_len);
190
188
  if (frag->reassembly == NULL) {
191
- OPENSSL_PUT_ERROR(SSL, ERR_R_MALLOC_FAILURE);
192
189
  return nullptr;
193
190
  }
194
191
  OPENSSL_memset(frag->reassembly, 0, bitmask_len);
@@ -487,10 +484,7 @@ ssl_open_record_t dtls1_open_change_cipher_spec(SSL *ssl, size_t *out_consumed,
487
484
 
488
485
  // Sending handshake messages.
489
486
 
490
- void DTLS_OUTGOING_MESSAGE::Clear() {
491
- OPENSSL_free(data);
492
- data = nullptr;
493
- }
487
+ void DTLS_OUTGOING_MESSAGE::Clear() { data.Reset(); }
494
488
 
495
489
  void dtls_clear_outgoing_messages(SSL *ssl) {
496
490
  for (size_t i = 0; i < ssl->d1->outgoing_messages_len; i++) {
@@ -578,9 +572,7 @@ static bool add_outgoing(SSL *ssl, bool is_ccs, Array<uint8_t> data) {
578
572
 
579
573
  DTLS_OUTGOING_MESSAGE *msg =
580
574
  &ssl->d1->outgoing_messages[ssl->d1->outgoing_messages_len];
581
- size_t len;
582
- data.Release(&msg->data, &len);
583
- msg->len = len;
575
+ msg->data = std::move(data);
584
576
  msg->epoch = ssl->d1->w_epoch;
585
577
  msg->is_ccs = is_ccs;
586
578
 
@@ -665,7 +657,7 @@ static enum seal_result_t seal_next_message(SSL *ssl, uint8_t *out,
665
657
  // DTLS messages are serialized as a single fragment in |msg|.
666
658
  CBS cbs, body;
667
659
  struct hm_header_st hdr;
668
- CBS_init(&cbs, msg->data, msg->len);
660
+ CBS_init(&cbs, msg->data.data(), msg->data.size());
669
661
  if (!dtls1_parse_fragment(&cbs, &hdr, &body) ||
670
662
  hdr.frag_off != 0 ||
671
663
  hdr.frag_len != CBS_len(&body) ||
@@ -687,6 +679,7 @@ static enum seal_result_t seal_next_message(SSL *ssl, uint8_t *out,
687
679
 
688
680
  // Assemble a fragment, to be sealed in-place.
689
681
  ScopedCBB cbb;
682
+ CBB child;
690
683
  uint8_t *frag = out + prefix;
691
684
  size_t max_frag = max_out - prefix, frag_len;
692
685
  if (!CBB_init_fixed(cbb.get(), frag, max_frag) ||
@@ -694,8 +687,8 @@ static enum seal_result_t seal_next_message(SSL *ssl, uint8_t *out,
694
687
  !CBB_add_u24(cbb.get(), hdr.msg_len) ||
695
688
  !CBB_add_u16(cbb.get(), hdr.seq) ||
696
689
  !CBB_add_u24(cbb.get(), ssl->d1->outgoing_offset) ||
697
- !CBB_add_u24(cbb.get(), todo) ||
698
- !CBB_add_bytes(cbb.get(), CBS_data(&body), todo) ||
690
+ !CBB_add_u24_length_prefixed(cbb.get(), &child) ||
691
+ !CBB_add_bytes(&child, CBS_data(&body), todo) ||
699
692
  !CBB_finish(cbb.get(), NULL, &frag_len)) {
700
693
  OPENSSL_PUT_ERROR(SSL, ERR_R_INTERNAL_ERROR);
701
694
  return seal_error;