grpc 1.53.0 → 1.54.2

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 (695) 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 +2 -16
  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 +11 -3
  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 +137 -0
  44. data/src/core/ext/gcp/metadata_query.h +87 -0
  45. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +70 -55
  46. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +12 -8
  47. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +5 -1
  48. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +149 -60
  49. data/src/core/ext/transport/chttp2/transport/flow_control.cc +5 -2
  50. data/src/core/ext/transport/chttp2/transport/flow_control.h +2 -1
  51. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +4 -1
  52. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +118 -222
  53. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +295 -113
  54. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +2 -0
  55. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +2 -0
  56. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +466 -273
  57. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +7 -3
  58. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +14 -12
  59. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +9 -1
  60. data/src/core/ext/transport/chttp2/transport/internal.h +18 -3
  61. data/src/core/ext/transport/chttp2/transport/parsing.cc +9 -2
  62. data/src/core/ext/transport/chttp2/transport/writing.cc +10 -5
  63. data/src/core/ext/transport/inproc/inproc_transport.cc +20 -14
  64. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +5 -3
  65. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +22 -0
  66. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +5 -3
  67. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +22 -0
  68. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +23 -5
  69. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +94 -3
  70. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +23 -2
  71. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +120 -0
  72. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +6 -3
  73. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +22 -0
  74. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +24 -6
  75. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +111 -12
  76. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +9 -7
  77. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +27 -9
  78. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +0 -1
  79. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +11 -7
  80. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +56 -12
  81. 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
  82. 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
  83. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +5 -3
  84. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +24 -0
  85. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +13 -2
  86. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +49 -0
  87. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +24 -9
  88. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +66 -12
  89. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +191 -187
  90. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +139 -136
  91. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +31 -15
  92. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +5 -0
  93. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +12 -9
  94. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +15 -0
  95. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +54 -45
  96. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +135 -119
  97. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
  98. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +100 -97
  99. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +15 -18
  100. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +272 -264
  101. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +117 -117
  102. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +5 -5
  103. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +5 -5
  104. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +5 -5
  105. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +12 -9
  106. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +5 -0
  107. data/src/core/ext/xds/xds_channel_stack_modifier.cc +1 -2
  108. data/src/core/ext/xds/xds_client_stats.cc +29 -15
  109. data/src/core/ext/xds/xds_client_stats.h +24 -20
  110. data/src/core/ext/xds/xds_endpoint.cc +5 -2
  111. data/src/core/ext/xds/xds_endpoint.h +9 -1
  112. data/src/core/ext/xds/xds_http_rbac_filter.cc +1 -1
  113. data/src/core/ext/xds/xds_lb_policy_registry.cc +13 -0
  114. data/src/core/ext/xds/xds_transport_grpc.cc +1 -1
  115. data/src/core/{ext/filters/client_channel/resolver/dns/dns_resolver_selection.h → lib/backoff/random_early_detection.cc} +14 -12
  116. data/src/core/lib/backoff/random_early_detection.h +59 -0
  117. data/src/core/lib/channel/call_finalization.h +1 -1
  118. data/src/core/lib/channel/call_tracer.cc +51 -0
  119. data/src/core/lib/channel/call_tracer.h +101 -38
  120. data/src/core/lib/channel/connected_channel.cc +483 -1050
  121. data/src/core/lib/channel/context.h +8 -1
  122. data/src/core/lib/channel/promise_based_filter.cc +106 -42
  123. data/src/core/lib/channel/promise_based_filter.h +27 -13
  124. data/src/core/lib/channel/server_call_tracer_filter.cc +110 -0
  125. data/src/core/lib/config/config_vars.cc +151 -0
  126. data/src/core/lib/config/config_vars.h +127 -0
  127. data/src/core/lib/config/config_vars_non_generated.cc +51 -0
  128. data/src/core/lib/config/load_config.cc +66 -0
  129. data/src/core/lib/config/load_config.h +49 -0
  130. data/src/core/lib/debug/trace.cc +5 -6
  131. data/src/core/lib/debug/trace.h +0 -5
  132. data/src/core/lib/event_engine/event_engine.cc +37 -2
  133. data/src/core/lib/event_engine/handle_containers.h +7 -22
  134. data/src/core/lib/event_engine/memory_allocator_factory.h +47 -0
  135. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +0 -4
  136. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +3 -9
  137. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +48 -15
  138. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +8 -8
  139. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +6 -5
  140. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +6 -3
  141. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +27 -18
  142. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +0 -3
  143. data/src/core/lib/event_engine/resolved_address.cc +2 -1
  144. data/src/core/lib/event_engine/windows/win_socket.cc +0 -1
  145. data/src/core/lib/event_engine/windows/windows_endpoint.cc +129 -82
  146. data/src/core/lib/event_engine/windows/windows_endpoint.h +21 -5
  147. data/src/core/lib/event_engine/windows/windows_engine.cc +39 -18
  148. data/src/core/lib/event_engine/windows/windows_engine.h +2 -1
  149. data/src/core/lib/event_engine/windows/windows_listener.cc +370 -0
  150. data/src/core/lib/event_engine/windows/windows_listener.h +155 -0
  151. data/src/core/lib/experiments/config.cc +3 -10
  152. data/src/core/lib/experiments/experiments.cc +7 -0
  153. data/src/core/lib/experiments/experiments.h +9 -1
  154. data/src/core/lib/gpr/log.cc +15 -28
  155. data/src/core/lib/gprpp/fork.cc +8 -14
  156. data/src/core/lib/gprpp/orphanable.h +4 -3
  157. data/src/core/lib/gprpp/per_cpu.h +9 -3
  158. data/src/core/lib/gprpp/{thd_posix.cc → posix/thd.cc} +49 -37
  159. data/src/core/lib/gprpp/ref_counted.h +33 -34
  160. data/src/core/lib/gprpp/thd.h +16 -0
  161. data/src/core/lib/gprpp/time.cc +1 -0
  162. data/src/core/lib/gprpp/time.h +4 -4
  163. data/src/core/lib/gprpp/{thd_windows.cc → windows/thd.cc} +2 -2
  164. data/src/core/lib/iomgr/call_combiner.h +2 -2
  165. data/src/core/lib/iomgr/endpoint_cfstream.cc +4 -2
  166. data/src/core/lib/iomgr/endpoint_pair.h +2 -2
  167. data/src/core/lib/iomgr/endpoint_pair_posix.cc +2 -2
  168. data/src/core/lib/iomgr/endpoint_pair_windows.cc +1 -1
  169. data/src/core/lib/iomgr/ev_posix.cc +13 -53
  170. data/src/core/lib/iomgr/ev_posix.h +0 -3
  171. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +103 -76
  172. data/src/core/lib/iomgr/iomgr.cc +4 -8
  173. data/src/core/lib/iomgr/iomgr_windows.cc +8 -2
  174. data/src/core/lib/iomgr/pollset_set_windows.cc +9 -9
  175. data/src/core/lib/iomgr/pollset_windows.cc +1 -1
  176. data/src/core/lib/iomgr/socket_utils_common_posix.cc +16 -3
  177. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -2
  178. data/src/core/lib/iomgr/tcp_posix.cc +0 -1
  179. data/src/core/lib/iomgr/tcp_server_posix.cc +5 -16
  180. data/src/core/lib/iomgr/tcp_server_windows.cc +176 -9
  181. data/src/core/lib/iomgr/tcp_windows.cc +12 -8
  182. data/src/core/lib/load_balancing/lb_policy.cc +9 -13
  183. data/src/core/lib/load_balancing/lb_policy.h +4 -2
  184. data/src/core/lib/promise/activity.cc +22 -6
  185. data/src/core/lib/promise/activity.h +61 -24
  186. data/src/core/lib/promise/cancel_callback.h +77 -0
  187. data/src/core/lib/promise/detail/basic_seq.h +1 -1
  188. data/src/core/lib/promise/detail/promise_factory.h +4 -0
  189. data/src/core/lib/promise/for_each.h +176 -0
  190. data/src/core/lib/promise/if.h +9 -0
  191. data/src/core/lib/promise/interceptor_list.h +23 -2
  192. data/src/core/lib/promise/latch.h +89 -3
  193. data/src/core/lib/promise/loop.h +13 -9
  194. data/src/core/lib/promise/map.h +7 -0
  195. data/src/core/lib/promise/party.cc +286 -0
  196. data/src/core/lib/promise/party.h +499 -0
  197. data/src/core/lib/promise/pipe.h +197 -57
  198. data/src/core/lib/promise/poll.h +48 -0
  199. data/src/core/lib/promise/promise.h +2 -2
  200. data/src/core/lib/resource_quota/arena.cc +19 -3
  201. data/src/core/lib/resource_quota/arena.h +119 -5
  202. data/src/core/lib/resource_quota/memory_quota.cc +1 -1
  203. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +12 -35
  204. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -0
  205. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +0 -59
  206. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +10 -5
  207. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -1
  208. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +13 -0
  209. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +2 -0
  210. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +5 -9
  211. data/src/core/lib/security/security_connector/ssl_utils.cc +11 -25
  212. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +12 -0
  213. data/src/core/lib/security/transport/secure_endpoint.cc +4 -2
  214. data/src/core/lib/security/transport/server_auth_filter.cc +20 -2
  215. data/src/core/lib/slice/slice.cc +1 -1
  216. data/src/core/lib/surface/builtins.cc +2 -0
  217. data/src/core/lib/surface/call.cc +926 -1024
  218. data/src/core/lib/surface/call.h +10 -0
  219. data/src/core/lib/surface/lame_client.cc +1 -0
  220. data/src/core/lib/surface/validate_metadata.cc +43 -42
  221. data/src/core/lib/surface/validate_metadata.h +9 -0
  222. data/src/core/lib/surface/version.cc +2 -2
  223. data/src/core/lib/transport/batch_builder.cc +179 -0
  224. data/src/core/lib/transport/batch_builder.h +468 -0
  225. data/src/core/lib/transport/bdp_estimator.cc +7 -7
  226. data/src/core/lib/transport/bdp_estimator.h +10 -6
  227. data/src/core/lib/transport/custom_metadata.h +30 -0
  228. data/src/core/lib/transport/metadata_batch.cc +9 -6
  229. data/src/core/lib/transport/metadata_batch.h +168 -18
  230. data/src/core/lib/transport/parsed_metadata.h +19 -9
  231. data/src/core/lib/transport/timeout_encoding.cc +6 -1
  232. data/src/core/lib/transport/transport.cc +30 -2
  233. data/src/core/lib/transport/transport.h +70 -14
  234. data/src/core/lib/transport/transport_impl.h +7 -0
  235. data/src/core/lib/transport/transport_op_string.cc +52 -42
  236. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -2
  237. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +1 -0
  238. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +21 -4
  239. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +5 -0
  240. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
  241. data/src/core/tsi/ssl_transport_security.cc +4 -2
  242. data/src/ruby/lib/grpc/version.rb +1 -1
  243. data/third_party/abseil-cpp/absl/base/config.h +1 -1
  244. data/third_party/abseil-cpp/absl/flags/commandlineflag.cc +34 -0
  245. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +200 -0
  246. data/third_party/abseil-cpp/absl/flags/config.h +68 -0
  247. data/third_party/abseil-cpp/absl/flags/declare.h +73 -0
  248. data/third_party/abseil-cpp/absl/flags/flag.cc +38 -0
  249. data/third_party/abseil-cpp/absl/flags/flag.h +310 -0
  250. data/{src/core/lib/gprpp/global_config_custom.h → third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc} +11 -14
  251. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +68 -0
  252. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +615 -0
  253. data/third_party/abseil-cpp/absl/flags/internal/flag.h +800 -0
  254. data/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +116 -0
  255. data/third_party/abseil-cpp/absl/flags/internal/path_util.h +62 -0
  256. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +65 -0
  257. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +61 -0
  258. data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +60 -0
  259. data/third_party/abseil-cpp/absl/flags/internal/program_name.h +50 -0
  260. data/third_party/abseil-cpp/absl/flags/internal/registry.h +97 -0
  261. data/third_party/abseil-cpp/absl/flags/internal/sequence_lock.h +187 -0
  262. data/third_party/abseil-cpp/absl/flags/marshalling.cc +241 -0
  263. data/third_party/abseil-cpp/absl/flags/marshalling.h +356 -0
  264. data/third_party/abseil-cpp/absl/flags/reflection.cc +354 -0
  265. data/third_party/abseil-cpp/absl/flags/reflection.h +90 -0
  266. data/third_party/abseil-cpp/absl/flags/usage_config.cc +165 -0
  267. data/third_party/abseil-cpp/absl/flags/usage_config.h +135 -0
  268. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +12 -8
  269. data/third_party/boringssl-with-bazel/err_data.c +728 -712
  270. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +177 -177
  271. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +28 -55
  272. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +21 -23
  273. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +20 -23
  274. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +66 -185
  275. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +18 -21
  276. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +356 -311
  277. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +174 -194
  278. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +146 -210
  279. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +6 -9
  280. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +346 -526
  281. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +110 -131
  282. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +130 -116
  283. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +93 -60
  284. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +93 -181
  285. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +242 -305
  286. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +41 -18
  287. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +30 -33
  288. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +36 -33
  289. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +29 -26
  290. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +133 -88
  291. data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c +230 -0
  292. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +791 -791
  293. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +526 -526
  294. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +114 -135
  295. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +201 -207
  296. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +21 -26
  297. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +55 -68
  298. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +2 -4
  299. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +11 -7
  300. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +4 -4
  301. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +15 -9
  302. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +4 -4
  303. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +17 -10
  304. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -3
  305. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +0 -13
  306. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -6
  307. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +2 -0
  308. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +9 -5
  309. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +10 -23
  310. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +2 -6
  311. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +2 -1
  312. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +29 -28
  313. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +161 -201
  314. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +254 -39
  315. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +2 -2
  316. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +0 -2
  317. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +4 -4
  318. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +9 -8
  319. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +37 -75
  320. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +8 -10
  321. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/cipher → cipher_extra}/e_des.c +100 -78
  322. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +1 -0
  323. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +1 -0
  324. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +2 -0
  325. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +6 -12
  326. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -11
  327. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +6 -10
  328. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -1
  329. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +12 -0
  330. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +74 -0
  331. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_freebsd.c +62 -0
  332. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-fuchsia.c → cpu_aarch64_fuchsia.c} +8 -7
  333. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-linux.c → cpu_aarch64_linux.c} +6 -4
  334. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-win.c → cpu_aarch64_win.c} +4 -4
  335. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm.c → cpu_arm.c} +1 -1
  336. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +55 -0
  337. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.c → cpu_arm_linux.c} +11 -90
  338. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.h → cpu_arm_linux.h} +0 -38
  339. data/third_party/boringssl-with-bazel/src/crypto/{cpu-intel.c → cpu_intel.c} +1 -2
  340. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +25 -20
  341. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +16 -27
  342. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +17 -32
  343. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/des.c +232 -232
  344. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/internal.h +1 -1
  345. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +1 -0
  346. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +232 -29
  347. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +0 -3
  348. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +39 -16
  349. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +37 -7
  350. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +3 -3
  351. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +11 -36
  352. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +214 -99
  353. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +21 -5
  354. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +2 -4
  355. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +83 -60
  356. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +46 -12
  357. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +3 -3
  358. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +25 -23
  359. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +43 -9
  360. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +75 -44
  361. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +19 -25
  362. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +96 -45
  363. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +7 -8
  364. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +26 -23
  365. data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c +233 -0
  366. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +5 -5
  367. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +42 -25
  368. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +4 -5
  369. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +35 -47
  370. data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +135 -244
  371. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +2 -4
  372. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +15 -10
  373. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +29 -15
  374. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +0 -2
  375. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +13 -14
  376. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +3 -13
  377. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +13 -7
  378. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +9 -7
  379. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +35 -27
  380. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +16 -26
  381. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +88 -60
  382. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +4 -3
  383. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +0 -2
  384. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +1 -1
  385. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +1 -1
  386. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +99 -113
  387. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +0 -1
  388. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +5 -3
  389. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c +112 -168
  390. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +86 -31
  391. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +11 -6
  392. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +4 -5
  393. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +4 -5
  394. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +13 -0
  395. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +13 -5
  396. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +19 -108
  397. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +19 -15
  398. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +15 -16
  399. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +22 -21
  400. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c +3 -0
  401. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +79 -19
  402. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +102 -99
  403. data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +52 -46
  404. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +39 -0
  405. data/third_party/boringssl-with-bazel/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +55 -11
  406. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +2 -3
  407. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +21 -6
  408. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +56 -0
  409. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +5 -3
  410. data/third_party/boringssl-with-bazel/src/crypto/{evp → fipsmodule/digestsign}/digestsign.c +51 -15
  411. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +25 -25
  412. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +91 -17
  413. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +5 -5
  414. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +34 -12
  415. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +54 -23
  416. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +44 -60
  417. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64-table.h → p256-nistz-table.h} +1 -1
  418. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.c → p256-nistz.c} +60 -53
  419. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.h → p256-nistz.h} +5 -13
  420. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +48 -36
  421. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +2 -8
  422. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +2 -7
  423. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +2 -3
  424. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +0 -1
  425. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +8 -0
  426. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +42 -14
  427. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +6 -0
  428. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c +52 -24
  429. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +9 -15
  430. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +1 -4
  431. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +2 -4
  432. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +71 -43
  433. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +14 -16
  434. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -4
  435. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +31 -13
  436. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +16 -8
  437. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +3 -2
  438. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +2 -2
  439. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +9 -38
  440. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +73 -59
  441. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +11 -45
  442. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +0 -1
  443. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +22 -0
  444. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +63 -52
  445. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +107 -62
  446. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +58 -31
  447. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +41 -0
  448. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +523 -422
  449. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
  450. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +334 -0
  451. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +3 -12
  452. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +2 -0
  453. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +12 -8
  454. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +14 -12
  455. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +19 -6
  456. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +32 -14
  457. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +65 -29
  458. data/third_party/boringssl-with-bazel/src/crypto/internal.h +373 -18
  459. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +61 -0
  460. data/third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c +205 -0
  461. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +13 -1
  462. data/third_party/boringssl-with-bazel/src/crypto/mem.c +220 -13
  463. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +19 -7
  464. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +13 -1
  465. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +81 -90
  466. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +150 -245
  467. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +629 -613
  468. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +17 -17
  469. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +142 -149
  470. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +99 -131
  471. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +0 -1
  472. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +0 -1
  473. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +0 -1
  474. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +0 -3
  475. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -66
  476. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +31 -38
  477. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +2 -1
  478. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +18 -31
  479. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
  480. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +8 -1
  481. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +129 -5
  482. data/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c +0 -2
  483. data/third_party/boringssl-with-bazel/src/crypto/refcount_lock.c +3 -4
  484. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +8 -11
  485. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +61 -27
  486. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +10 -13
  487. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +10 -13
  488. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +66 -34
  489. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +190 -77
  490. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +81 -284
  491. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +109 -42
  492. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +22 -24
  493. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +54 -55
  494. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +32 -34
  495. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +32 -16
  496. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +465 -704
  497. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +284 -331
  498. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +183 -178
  499. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +11 -15
  500. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +67 -50
  501. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +153 -150
  502. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +786 -0
  503. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +95 -102
  504. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +72 -57
  505. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +12 -10
  506. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +227 -252
  507. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +52 -47
  508. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +3 -4
  509. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +230 -224
  510. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +161 -327
  511. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +37 -33
  512. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +14 -31
  513. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +55 -85
  514. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +534 -618
  515. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +129 -122
  516. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +116 -182
  517. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +132 -132
  518. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +181 -202
  519. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +64 -79
  520. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +175 -160
  521. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1865 -2050
  522. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +433 -462
  523. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +156 -163
  524. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +267 -263
  525. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +40 -15
  526. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +59 -63
  527. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +63 -67
  528. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +114 -144
  529. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +25 -26
  530. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +326 -415
  531. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +8 -7
  532. data/third_party/boringssl-with-bazel/src/crypto/x509/x_info.c +30 -28
  533. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +354 -370
  534. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +37 -32
  535. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +116 -119
  536. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +36 -26
  537. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +3 -4
  538. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +10 -13
  539. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +3 -4
  540. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +419 -261
  541. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +113 -105
  542. data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +11 -15
  543. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +78 -170
  544. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +126 -131
  545. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c +3 -4
  546. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +465 -469
  547. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c +56 -54
  548. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +46 -49
  549. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +309 -346
  550. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +341 -365
  551. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +429 -393
  552. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +29 -24
  553. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c +65 -59
  554. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +125 -121
  555. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +43 -42
  556. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +122 -125
  557. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c +50 -20
  558. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +247 -253
  559. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +386 -389
  560. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c +45 -32
  561. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c +57 -54
  562. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c +63 -67
  563. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +143 -136
  564. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +664 -707
  565. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +83 -75
  566. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1062 -1146
  567. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +8 -4
  568. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +28 -48
  569. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +211 -187
  570. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +26 -78
  571. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +19 -14
  572. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +21 -2
  573. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +49 -17
  574. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +99 -29
  575. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +49 -60
  576. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +2 -15
  577. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +16 -200
  578. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +34 -0
  579. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +82 -0
  580. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +32 -30
  581. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +7 -0
  582. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +4 -0
  583. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +48 -5
  584. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +37 -8
  585. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +1 -0
  586. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +33 -5
  587. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +22 -30
  588. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +1 -1
  589. data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +7 -0
  590. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +41 -16
  591. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +91 -0
  592. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +74 -8
  593. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +13 -0
  594. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +1 -0
  595. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +11 -15
  596. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +8 -0
  597. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +12 -1
  598. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +7 -4
  599. data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +96 -0
  600. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +13 -21
  601. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +139 -75
  602. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +1 -6
  603. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +384 -286
  604. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +5 -6
  605. data/third_party/boringssl-with-bazel/src/include/openssl/time.h +41 -0
  606. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +18 -7
  607. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +49 -23
  608. data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +0 -11
  609. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1592 -1074
  610. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +202 -205
  611. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +2 -2
  612. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +6 -13
  613. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +17 -18
  614. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +4 -5
  615. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +25 -33
  616. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +34 -20
  617. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +65 -34
  618. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +198 -54
  619. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +5 -5
  620. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +32 -28
  621. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +76 -44
  622. data/third_party/boringssl-with-bazel/src/ssl/internal.h +130 -98
  623. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +27 -11
  624. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
  625. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +91 -75
  626. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +8 -10
  627. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +39 -65
  628. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +1 -0
  629. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +5 -9
  630. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +30 -33
  631. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +77 -100
  632. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +120 -107
  633. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +164 -30
  634. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +150 -60
  635. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +22 -11
  636. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +22 -6
  637. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +15 -13
  638. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +5 -43
  639. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +7 -4
  640. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +2 -2
  641. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +22 -34
  642. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +2 -2
  643. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +16 -98
  644. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +1241 -657
  645. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +751 -398
  646. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +3551 -1938
  647. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +1272 -487
  648. metadata +105 -70
  649. data/src/core/ext/filters/client_channel/lb_call_state_internal.h +0 -39
  650. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +0 -30
  651. data/src/core/lib/gprpp/global_config.h +0 -93
  652. data/src/core/lib/gprpp/global_config_env.cc +0 -140
  653. data/src/core/lib/gprpp/global_config_env.h +0 -133
  654. data/src/core/lib/gprpp/global_config_generic.h +0 -40
  655. data/src/core/lib/promise/intra_activity_waiter.h +0 -55
  656. data/src/core/lib/security/security_connector/ssl_utils_config.cc +0 -32
  657. data/src/core/lib/security/security_connector/ssl_utils_config.h +0 -29
  658. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +0 -195
  659. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +0 -83
  660. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +0 -236
  661. data/third_party/boringssl-with-bazel/src/crypto/asn1/charmap.h +0 -15
  662. data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +0 -206
  663. data/third_party/boringssl-with-bazel/src/crypto/cpu-ppc64le.c +0 -38
  664. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1-altivec.c +0 -361
  665. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +0 -287
  666. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +0 -132
  667. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +0 -155
  668. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +0 -131
  669. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +0 -189
  670. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +0 -843
  671. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +0 -289
  672. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcia.c +0 -57
  673. /data/src/core/lib/gpr/{log_android.cc → android/log.cc} +0 -0
  674. /data/src/core/lib/gpr/{cpu_iphone.cc → iphone/cpu.cc} +0 -0
  675. /data/src/core/lib/gpr/{cpu_linux.cc → linux/cpu.cc} +0 -0
  676. /data/src/core/lib/gpr/{log_linux.cc → linux/log.cc} +0 -0
  677. /data/src/core/lib/gpr/{tmpfile_msys.cc → msys/tmpfile.cc} +0 -0
  678. /data/src/core/lib/gpr/{cpu_posix.cc → posix/cpu.cc} +0 -0
  679. /data/src/core/lib/gpr/{log_posix.cc → posix/log.cc} +0 -0
  680. /data/src/core/lib/gpr/{string_posix.cc → posix/string.cc} +0 -0
  681. /data/src/core/lib/gpr/{sync_posix.cc → posix/sync.cc} +0 -0
  682. /data/src/core/lib/gpr/{time_posix.cc → posix/time.cc} +0 -0
  683. /data/src/core/lib/gpr/{tmpfile_posix.cc → posix/tmpfile.cc} +0 -0
  684. /data/src/core/lib/gpr/{cpu_windows.cc → windows/cpu.cc} +0 -0
  685. /data/src/core/lib/gpr/{log_windows.cc → windows/log.cc} +0 -0
  686. /data/src/core/lib/gpr/{string_windows.cc → windows/string.cc} +0 -0
  687. /data/src/core/lib/gpr/{string_util_windows.cc → windows/string_util.cc} +0 -0
  688. /data/src/core/lib/gpr/{sync_windows.cc → windows/sync.cc} +0 -0
  689. /data/src/core/lib/gpr/{time_windows.cc → windows/time.cc} +0 -0
  690. /data/src/core/lib/gpr/{tmpfile_windows.cc → windows/tmpfile.cc} +0 -0
  691. /data/src/core/lib/gprpp/{env_linux.cc → linux/env.cc} +0 -0
  692. /data/src/core/lib/gprpp/{env_posix.cc → posix/env.cc} +0 -0
  693. /data/src/core/lib/gprpp/{stat_posix.cc → posix/stat.cc} +0 -0
  694. /data/src/core/lib/gprpp/{env_windows.cc → windows/env.cc} +0 -0
  695. /data/src/core/lib/gprpp/{stat_windows.cc → windows/stat.cc} +0 -0
@@ -71,13 +71,10 @@ static int trust_1oid(X509_TRUST *trust, X509 *x, int flags);
71
71
  static int trust_compat(X509_TRUST *trust, X509 *x, int flags);
72
72
 
73
73
  static int obj_trust(int id, X509 *x, int flags);
74
- static int (*default_trust) (int id, X509 *x, int flags) = obj_trust;
75
74
 
76
- /*
77
- * WARNING: the following table should be kept in order of trust and without
78
- * any gaps so we can just subtract the minimum trust value to get an index
79
- * into the table
80
- */
75
+ // WARNING: the following table should be kept in order of trust and without
76
+ // any gaps so we can just subtract the minimum trust value to get an index
77
+ // into the table
81
78
 
82
79
  static X509_TRUST trstandard[] = {
83
80
  {X509_TRUST_COMPAT, 0, trust_compat, (char *)"compatible", 0, NULL},
@@ -94,238 +91,220 @@ static X509_TRUST trstandard[] = {
94
91
  {X509_TRUST_OCSP_REQUEST, 0, trust_1oid, (char *)"OCSP request",
95
92
  NID_ad_OCSP, NULL},
96
93
  {X509_TRUST_TSA, 0, trust_1oidany, (char *)"TSA server", NID_time_stamp,
97
- NULL}
98
- };
94
+ NULL}};
99
95
 
100
- #define X509_TRUST_COUNT (sizeof(trstandard)/sizeof(X509_TRUST))
96
+ #define X509_TRUST_COUNT (sizeof(trstandard) / sizeof(X509_TRUST))
101
97
 
102
98
  static STACK_OF(X509_TRUST) *trtable = NULL;
103
99
 
104
- static int tr_cmp(const X509_TRUST **a, const X509_TRUST **b)
105
- {
106
- return (*a)->trust - (*b)->trust;
107
- }
108
-
109
- int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *,
110
- int) {
111
- int (*oldtrust) (int, X509 *, int);
112
- oldtrust = default_trust;
113
- default_trust = trust;
114
- return oldtrust;
100
+ static int tr_cmp(const X509_TRUST **a, const X509_TRUST **b) {
101
+ return (*a)->trust - (*b)->trust;
115
102
  }
116
103
 
117
- int X509_check_trust(X509 *x, int id, int flags)
118
- {
119
- X509_TRUST *pt;
120
- int idx;
121
- if (id == -1)
122
- return 1;
123
- /* We get this as a default value */
124
- if (id == 0) {
125
- int rv;
126
- rv = obj_trust(NID_anyExtendedKeyUsage, x, 0);
127
- if (rv != X509_TRUST_UNTRUSTED)
128
- return rv;
129
- return trust_compat(NULL, x, 0);
104
+ int X509_check_trust(X509 *x, int id, int flags) {
105
+ X509_TRUST *pt;
106
+ int idx;
107
+ if (id == -1) {
108
+ return 1;
109
+ }
110
+ // We get this as a default value
111
+ if (id == 0) {
112
+ int rv;
113
+ rv = obj_trust(NID_anyExtendedKeyUsage, x, 0);
114
+ if (rv != X509_TRUST_UNTRUSTED) {
115
+ return rv;
130
116
  }
131
- idx = X509_TRUST_get_by_id(id);
132
- if (idx == -1)
133
- return default_trust(id, x, flags);
134
- pt = X509_TRUST_get0(idx);
135
- return pt->check_trust(pt, x, flags);
117
+ return trust_compat(NULL, x, 0);
118
+ }
119
+ idx = X509_TRUST_get_by_id(id);
120
+ if (idx == -1) {
121
+ return obj_trust(id, x, flags);
122
+ }
123
+ pt = X509_TRUST_get0(idx);
124
+ return pt->check_trust(pt, x, flags);
136
125
  }
137
126
 
138
- int X509_TRUST_get_count(void)
139
- {
140
- if (!trtable)
141
- return X509_TRUST_COUNT;
142
- return sk_X509_TRUST_num(trtable) + X509_TRUST_COUNT;
127
+ int X509_TRUST_get_count(void) {
128
+ if (!trtable) {
129
+ return X509_TRUST_COUNT;
130
+ }
131
+ return sk_X509_TRUST_num(trtable) + X509_TRUST_COUNT;
143
132
  }
144
133
 
145
- X509_TRUST *X509_TRUST_get0(int idx)
146
- {
147
- if (idx < 0)
148
- return NULL;
149
- if (idx < (int)X509_TRUST_COUNT)
150
- return trstandard + idx;
151
- return sk_X509_TRUST_value(trtable, idx - X509_TRUST_COUNT);
134
+ X509_TRUST *X509_TRUST_get0(int idx) {
135
+ if (idx < 0) {
136
+ return NULL;
137
+ }
138
+ if (idx < (int)X509_TRUST_COUNT) {
139
+ return trstandard + idx;
140
+ }
141
+ return sk_X509_TRUST_value(trtable, idx - X509_TRUST_COUNT);
152
142
  }
153
143
 
154
- int X509_TRUST_get_by_id(int id)
155
- {
156
- X509_TRUST tmp;
157
- size_t idx;
158
-
159
- if ((id >= X509_TRUST_MIN) && (id <= X509_TRUST_MAX))
160
- return id - X509_TRUST_MIN;
161
- tmp.trust = id;
162
- if (!trtable)
163
- return -1;
164
- sk_X509_TRUST_sort(trtable);
165
- if (!sk_X509_TRUST_find(trtable, &idx, &tmp)) {
166
- return -1;
167
- }
168
- return idx + X509_TRUST_COUNT;
144
+ int X509_TRUST_get_by_id(int id) {
145
+ X509_TRUST tmp;
146
+ size_t idx;
147
+
148
+ if ((id >= X509_TRUST_MIN) && (id <= X509_TRUST_MAX)) {
149
+ return id - X509_TRUST_MIN;
150
+ }
151
+ tmp.trust = id;
152
+ if (!trtable) {
153
+ return -1;
154
+ }
155
+ sk_X509_TRUST_sort(trtable);
156
+ if (!sk_X509_TRUST_find(trtable, &idx, &tmp)) {
157
+ return -1;
158
+ }
159
+ return idx + X509_TRUST_COUNT;
169
160
  }
170
161
 
171
- int X509_TRUST_set(int *t, int trust)
172
- {
173
- if (X509_TRUST_get_by_id(trust) == -1) {
174
- OPENSSL_PUT_ERROR(X509, X509_R_INVALID_TRUST);
175
- return 0;
176
- }
177
- *t = trust;
178
- return 1;
162
+ int X509_TRUST_set(int *t, int trust) {
163
+ if (X509_TRUST_get_by_id(trust) == -1) {
164
+ OPENSSL_PUT_ERROR(X509, X509_R_INVALID_TRUST);
165
+ return 0;
166
+ }
167
+ *t = trust;
168
+ return 1;
179
169
  }
180
170
 
181
- int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int),
182
- char *name, int arg1, void *arg2)
183
- {
184
- int idx;
185
- X509_TRUST *trtmp;
186
- char *name_dup;
187
-
188
- /*
189
- * This is set according to what we change: application can't set it
190
- */
191
- flags &= ~X509_TRUST_DYNAMIC;
192
- /* This will always be set for application modified trust entries */
193
- flags |= X509_TRUST_DYNAMIC_NAME;
194
- /* Get existing entry if any */
195
- idx = X509_TRUST_get_by_id(id);
196
- /* Need a new entry */
197
- if (idx == -1) {
198
- if (!(trtmp = OPENSSL_malloc(sizeof(X509_TRUST)))) {
199
- OPENSSL_PUT_ERROR(X509, ERR_R_MALLOC_FAILURE);
200
- return 0;
201
- }
202
- trtmp->flags = X509_TRUST_DYNAMIC;
203
- } else
204
- trtmp = X509_TRUST_get0(idx);
205
-
206
- /* Duplicate the supplied name. */
207
- name_dup = OPENSSL_strdup(name);
208
- if (name_dup == NULL) {
209
- OPENSSL_PUT_ERROR(X509, ERR_R_MALLOC_FAILURE);
210
- if (idx == -1)
211
- OPENSSL_free(trtmp);
212
- return 0;
171
+ int X509_TRUST_add(int id, int flags, int (*ck)(X509_TRUST *, X509 *, int),
172
+ char *name, int arg1, void *arg2) {
173
+ int idx;
174
+ X509_TRUST *trtmp;
175
+ char *name_dup;
176
+
177
+ // This is set according to what we change: application can't set it
178
+ flags &= ~X509_TRUST_DYNAMIC;
179
+ // This will always be set for application modified trust entries
180
+ flags |= X509_TRUST_DYNAMIC_NAME;
181
+ // Get existing entry if any
182
+ idx = X509_TRUST_get_by_id(id);
183
+ // Need a new entry
184
+ if (idx == -1) {
185
+ if (!(trtmp = OPENSSL_malloc(sizeof(X509_TRUST)))) {
186
+ return 0;
213
187
  }
214
-
215
- /* OPENSSL_free existing name if dynamic */
216
- if (trtmp->flags & X509_TRUST_DYNAMIC_NAME)
217
- OPENSSL_free(trtmp->name);
218
- trtmp->name = name_dup;
219
- /* Keep the dynamic flag of existing entry */
220
- trtmp->flags &= X509_TRUST_DYNAMIC;
221
- /* Set all other flags */
222
- trtmp->flags |= flags;
223
-
224
- trtmp->trust = id;
225
- trtmp->check_trust = ck;
226
- trtmp->arg1 = arg1;
227
- trtmp->arg2 = arg2;
228
-
229
- /* If its a new entry manage the dynamic table */
188
+ trtmp->flags = X509_TRUST_DYNAMIC;
189
+ } else {
190
+ trtmp = X509_TRUST_get0(idx);
191
+ }
192
+
193
+ // Duplicate the supplied name.
194
+ name_dup = OPENSSL_strdup(name);
195
+ if (name_dup == NULL) {
230
196
  if (idx == -1) {
231
- if (!trtable && !(trtable = sk_X509_TRUST_new(tr_cmp))) {
232
- OPENSSL_PUT_ERROR(X509, ERR_R_MALLOC_FAILURE);
233
- trtable_free(trtmp);
234
- return 0;
235
- }
236
- if (!sk_X509_TRUST_push(trtable, trtmp)) {
237
- OPENSSL_PUT_ERROR(X509, ERR_R_MALLOC_FAILURE);
238
- trtable_free(trtmp);
239
- return 0;
240
- }
197
+ OPENSSL_free(trtmp);
241
198
  }
242
- return 1;
199
+ return 0;
200
+ }
201
+
202
+ // OPENSSL_free existing name if dynamic
203
+ if (trtmp->flags & X509_TRUST_DYNAMIC_NAME) {
204
+ OPENSSL_free(trtmp->name);
205
+ }
206
+ trtmp->name = name_dup;
207
+ // Keep the dynamic flag of existing entry
208
+ trtmp->flags &= X509_TRUST_DYNAMIC;
209
+ // Set all other flags
210
+ trtmp->flags |= flags;
211
+
212
+ trtmp->trust = id;
213
+ trtmp->check_trust = ck;
214
+ trtmp->arg1 = arg1;
215
+ trtmp->arg2 = arg2;
216
+
217
+ // If its a new entry manage the dynamic table
218
+ if (idx == -1) {
219
+ if (!trtable && !(trtable = sk_X509_TRUST_new(tr_cmp))) {
220
+ trtable_free(trtmp);
221
+ return 0;
222
+ }
223
+ if (!sk_X509_TRUST_push(trtable, trtmp)) {
224
+ trtable_free(trtmp);
225
+ return 0;
226
+ }
227
+ }
228
+ return 1;
243
229
  }
244
230
 
245
- static void trtable_free(X509_TRUST *p)
246
- {
247
- if (!p)
248
- return;
249
- if (p->flags & X509_TRUST_DYNAMIC) {
250
- if (p->flags & X509_TRUST_DYNAMIC_NAME)
251
- OPENSSL_free(p->name);
252
- OPENSSL_free(p);
231
+ static void trtable_free(X509_TRUST *p) {
232
+ if (!p) {
233
+ return;
234
+ }
235
+ if (p->flags & X509_TRUST_DYNAMIC) {
236
+ if (p->flags & X509_TRUST_DYNAMIC_NAME) {
237
+ OPENSSL_free(p->name);
253
238
  }
239
+ OPENSSL_free(p);
240
+ }
254
241
  }
255
242
 
256
- void X509_TRUST_cleanup(void)
257
- {
258
- unsigned int i;
259
- for (i = 0; i < X509_TRUST_COUNT; i++)
260
- trtable_free(trstandard + i);
261
- sk_X509_TRUST_pop_free(trtable, trtable_free);
262
- trtable = NULL;
243
+ void X509_TRUST_cleanup(void) {
244
+ unsigned int i;
245
+ for (i = 0; i < X509_TRUST_COUNT; i++) {
246
+ trtable_free(trstandard + i);
247
+ }
248
+ sk_X509_TRUST_pop_free(trtable, trtable_free);
249
+ trtable = NULL;
263
250
  }
264
251
 
265
- int X509_TRUST_get_flags(const X509_TRUST *xp)
266
- {
267
- return xp->flags;
268
- }
252
+ int X509_TRUST_get_flags(const X509_TRUST *xp) { return xp->flags; }
269
253
 
270
- char *X509_TRUST_get0_name(const X509_TRUST *xp)
271
- {
272
- return xp->name;
273
- }
254
+ char *X509_TRUST_get0_name(const X509_TRUST *xp) { return xp->name; }
274
255
 
275
- int X509_TRUST_get_trust(const X509_TRUST *xp)
276
- {
277
- return xp->trust;
278
- }
256
+ int X509_TRUST_get_trust(const X509_TRUST *xp) { return xp->trust; }
279
257
 
280
- static int trust_1oidany(X509_TRUST *trust, X509 *x, int flags)
281
- {
282
- if (x->aux && (x->aux->trust || x->aux->reject))
283
- return obj_trust(trust->arg1, x, flags);
284
- /*
285
- * we don't have any trust settings: for compatibility we return trusted
286
- * if it is self signed
287
- */
288
- return trust_compat(trust, x, flags);
258
+ static int trust_1oidany(X509_TRUST *trust, X509 *x, int flags) {
259
+ if (x->aux && (x->aux->trust || x->aux->reject)) {
260
+ return obj_trust(trust->arg1, x, flags);
261
+ }
262
+ // we don't have any trust settings: for compatibility we return trusted
263
+ // if it is self signed
264
+ return trust_compat(trust, x, flags);
289
265
  }
290
266
 
291
- static int trust_1oid(X509_TRUST *trust, X509 *x, int flags)
292
- {
293
- if (x->aux)
294
- return obj_trust(trust->arg1, x, flags);
295
- return X509_TRUST_UNTRUSTED;
267
+ static int trust_1oid(X509_TRUST *trust, X509 *x, int flags) {
268
+ if (x->aux) {
269
+ return obj_trust(trust->arg1, x, flags);
270
+ }
271
+ return X509_TRUST_UNTRUSTED;
296
272
  }
297
273
 
298
- static int trust_compat(X509_TRUST *trust, X509 *x, int flags)
299
- {
300
- if (!x509v3_cache_extensions(x))
301
- return X509_TRUST_UNTRUSTED;
302
- if (x->ex_flags & EXFLAG_SS)
303
- return X509_TRUST_TRUSTED;
304
- else
305
- return X509_TRUST_UNTRUSTED;
274
+ static int trust_compat(X509_TRUST *trust, X509 *x, int flags) {
275
+ if (!x509v3_cache_extensions(x)) {
276
+ return X509_TRUST_UNTRUSTED;
277
+ }
278
+ if (x->ex_flags & EXFLAG_SS) {
279
+ return X509_TRUST_TRUSTED;
280
+ } else {
281
+ return X509_TRUST_UNTRUSTED;
282
+ }
306
283
  }
307
284
 
308
- static int obj_trust(int id, X509 *x, int flags)
309
- {
310
- ASN1_OBJECT *obj;
311
- size_t i;
312
- X509_CERT_AUX *ax;
313
- ax = x->aux;
314
- if (!ax)
315
- return X509_TRUST_UNTRUSTED;
316
- if (ax->reject) {
317
- for (i = 0; i < sk_ASN1_OBJECT_num(ax->reject); i++) {
318
- obj = sk_ASN1_OBJECT_value(ax->reject, i);
319
- if (OBJ_obj2nid(obj) == id)
320
- return X509_TRUST_REJECTED;
321
- }
285
+ static int obj_trust(int id, X509 *x, int flags) {
286
+ ASN1_OBJECT *obj;
287
+ size_t i;
288
+ X509_CERT_AUX *ax;
289
+ ax = x->aux;
290
+ if (!ax) {
291
+ return X509_TRUST_UNTRUSTED;
292
+ }
293
+ if (ax->reject) {
294
+ for (i = 0; i < sk_ASN1_OBJECT_num(ax->reject); i++) {
295
+ obj = sk_ASN1_OBJECT_value(ax->reject, i);
296
+ if (OBJ_obj2nid(obj) == id) {
297
+ return X509_TRUST_REJECTED;
298
+ }
322
299
  }
323
- if (ax->trust) {
324
- for (i = 0; i < sk_ASN1_OBJECT_num(ax->trust); i++) {
325
- obj = sk_ASN1_OBJECT_value(ax->trust, i);
326
- if (OBJ_obj2nid(obj) == id)
327
- return X509_TRUST_TRUSTED;
328
- }
300
+ }
301
+ if (ax->trust) {
302
+ for (i = 0; i < sk_ASN1_OBJECT_num(ax->trust); i++) {
303
+ obj = sk_ASN1_OBJECT_value(ax->trust, i);
304
+ if (OBJ_obj2nid(obj) == id) {
305
+ return X509_TRUST_TRUSTED;
306
+ }
329
307
  }
330
- return X509_TRUST_UNTRUSTED;
308
+ }
309
+ return X509_TRUST_UNTRUSTED;
331
310
  }
@@ -56,149 +56,134 @@
56
56
 
57
57
  #include <openssl/x509.h>
58
58
 
59
- const char *X509_verify_cert_error_string(long err)
60
- {
61
- switch (err) {
59
+ const char *X509_verify_cert_error_string(long err) {
60
+ switch (err) {
62
61
  case X509_V_OK:
63
- return "ok";
62
+ return "ok";
64
63
  case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT:
65
- return "unable to get issuer certificate";
64
+ return "unable to get issuer certificate";
66
65
  case X509_V_ERR_UNABLE_TO_GET_CRL:
67
- return "unable to get certificate CRL";
66
+ return "unable to get certificate CRL";
68
67
  case X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE:
69
- return "unable to decrypt certificate's signature";
68
+ return "unable to decrypt certificate's signature";
70
69
  case X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE:
71
- return "unable to decrypt CRL's signature";
70
+ return "unable to decrypt CRL's signature";
72
71
  case X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY:
73
- return "unable to decode issuer public key";
72
+ return "unable to decode issuer public key";
74
73
  case X509_V_ERR_CERT_SIGNATURE_FAILURE:
75
- return "certificate signature failure";
74
+ return "certificate signature failure";
76
75
  case X509_V_ERR_CRL_SIGNATURE_FAILURE:
77
- return "CRL signature failure";
76
+ return "CRL signature failure";
78
77
  case X509_V_ERR_CERT_NOT_YET_VALID:
79
- return "certificate is not yet valid";
78
+ return "certificate is not yet valid";
80
79
  case X509_V_ERR_CRL_NOT_YET_VALID:
81
- return "CRL is not yet valid";
80
+ return "CRL is not yet valid";
82
81
  case X509_V_ERR_CERT_HAS_EXPIRED:
83
- return "certificate has expired";
82
+ return "certificate has expired";
84
83
  case X509_V_ERR_CRL_HAS_EXPIRED:
85
- return "CRL has expired";
84
+ return "CRL has expired";
86
85
  case X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD:
87
- return "format error in certificate's notBefore field";
86
+ return "format error in certificate's notBefore field";
88
87
  case X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD:
89
- return "format error in certificate's notAfter field";
88
+ return "format error in certificate's notAfter field";
90
89
  case X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD:
91
- return "format error in CRL's lastUpdate field";
90
+ return "format error in CRL's lastUpdate field";
92
91
  case X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD:
93
- return "format error in CRL's nextUpdate field";
92
+ return "format error in CRL's nextUpdate field";
94
93
  case X509_V_ERR_OUT_OF_MEM:
95
- return "out of memory";
94
+ return "out of memory";
96
95
  case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT:
97
- return "self signed certificate";
96
+ return "self signed certificate";
98
97
  case X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN:
99
- return "self signed certificate in certificate chain";
98
+ return "self signed certificate in certificate chain";
100
99
  case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY:
101
- return "unable to get local issuer certificate";
100
+ return "unable to get local issuer certificate";
102
101
  case X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE:
103
- return "unable to verify the first certificate";
102
+ return "unable to verify the first certificate";
104
103
  case X509_V_ERR_CERT_CHAIN_TOO_LONG:
105
- return "certificate chain too long";
104
+ return "certificate chain too long";
106
105
  case X509_V_ERR_CERT_REVOKED:
107
- return "certificate revoked";
106
+ return "certificate revoked";
108
107
  case X509_V_ERR_INVALID_CA:
109
- return "invalid CA certificate";
108
+ return "invalid CA certificate";
110
109
  case X509_V_ERR_INVALID_NON_CA:
111
- return "invalid non-CA certificate (has CA markings)";
110
+ return "invalid non-CA certificate (has CA markings)";
112
111
  case X509_V_ERR_PATH_LENGTH_EXCEEDED:
113
- return "path length constraint exceeded";
112
+ return "path length constraint exceeded";
114
113
  case X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED:
115
- return "proxy path length constraint exceeded";
114
+ return "proxy path length constraint exceeded";
116
115
  case X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED:
117
- return
118
- "proxy certificates not allowed, please set the appropriate flag";
116
+ return "proxy certificates not allowed, please set the appropriate flag";
119
117
  case X509_V_ERR_INVALID_PURPOSE:
120
- return "unsupported certificate purpose";
118
+ return "unsupported certificate purpose";
121
119
  case X509_V_ERR_CERT_UNTRUSTED:
122
- return "certificate not trusted";
120
+ return "certificate not trusted";
123
121
  case X509_V_ERR_CERT_REJECTED:
124
- return "certificate rejected";
122
+ return "certificate rejected";
125
123
  case X509_V_ERR_APPLICATION_VERIFICATION:
126
- return "application verification failure";
124
+ return "application verification failure";
127
125
  case X509_V_ERR_SUBJECT_ISSUER_MISMATCH:
128
- return "subject issuer mismatch";
126
+ return "subject issuer mismatch";
129
127
  case X509_V_ERR_AKID_SKID_MISMATCH:
130
- return "authority and subject key identifier mismatch";
128
+ return "authority and subject key identifier mismatch";
131
129
  case X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH:
132
- return "authority and issuer serial number mismatch";
130
+ return "authority and issuer serial number mismatch";
133
131
  case X509_V_ERR_KEYUSAGE_NO_CERTSIGN:
134
- return "key usage does not include certificate signing";
132
+ return "key usage does not include certificate signing";
135
133
  case X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER:
136
- return "unable to get CRL issuer certificate";
134
+ return "unable to get CRL issuer certificate";
137
135
  case X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION:
138
- return "unhandled critical extension";
136
+ return "unhandled critical extension";
139
137
  case X509_V_ERR_KEYUSAGE_NO_CRL_SIGN:
140
- return "key usage does not include CRL signing";
138
+ return "key usage does not include CRL signing";
141
139
  case X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE:
142
- return "key usage does not include digital signature";
140
+ return "key usage does not include digital signature";
143
141
  case X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION:
144
- return "unhandled critical CRL extension";
142
+ return "unhandled critical CRL extension";
145
143
  case X509_V_ERR_INVALID_EXTENSION:
146
- return "invalid or inconsistent certificate extension";
144
+ return "invalid or inconsistent certificate extension";
147
145
  case X509_V_ERR_INVALID_POLICY_EXTENSION:
148
- return "invalid or inconsistent certificate policy extension";
146
+ return "invalid or inconsistent certificate policy extension";
149
147
  case X509_V_ERR_NO_EXPLICIT_POLICY:
150
- return "no explicit policy";
148
+ return "no explicit policy";
151
149
  case X509_V_ERR_DIFFERENT_CRL_SCOPE:
152
- return "Different CRL scope";
150
+ return "Different CRL scope";
153
151
  case X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE:
154
- return "Unsupported extension feature";
152
+ return "Unsupported extension feature";
155
153
  case X509_V_ERR_UNNESTED_RESOURCE:
156
- return "RFC 3779 resource not subset of parent's resources";
154
+ return "RFC 3779 resource not subset of parent's resources";
157
155
 
158
156
  case X509_V_ERR_PERMITTED_VIOLATION:
159
- return "permitted subtree violation";
157
+ return "permitted subtree violation";
160
158
  case X509_V_ERR_EXCLUDED_VIOLATION:
161
- return "excluded subtree violation";
159
+ return "excluded subtree violation";
162
160
  case X509_V_ERR_SUBTREE_MINMAX:
163
- return "name constraints minimum and maximum not supported";
161
+ return "name constraints minimum and maximum not supported";
164
162
  case X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE:
165
- return "unsupported name constraint type";
163
+ return "unsupported name constraint type";
166
164
  case X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX:
167
- return "unsupported or invalid name constraint syntax";
165
+ return "unsupported or invalid name constraint syntax";
168
166
  case X509_V_ERR_UNSUPPORTED_NAME_SYNTAX:
169
- return "unsupported or invalid name syntax";
167
+ return "unsupported or invalid name syntax";
170
168
  case X509_V_ERR_CRL_PATH_VALIDATION_ERROR:
171
- return "CRL path validation error";
172
-
173
- case X509_V_ERR_SUITE_B_INVALID_VERSION:
174
- return "Suite B: certificate version invalid";
175
- case X509_V_ERR_SUITE_B_INVALID_ALGORITHM:
176
- return "Suite B: invalid public key algorithm";
177
- case X509_V_ERR_SUITE_B_INVALID_CURVE:
178
- return "Suite B: invalid ECC curve";
179
- case X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM:
180
- return "Suite B: invalid signature algorithm";
181
- case X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED:
182
- return "Suite B: curve not allowed for this LOS";
183
- case X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256:
184
- return "Suite B: cannot sign P-384 with P-256";
169
+ return "CRL path validation error";
185
170
 
186
171
  case X509_V_ERR_HOSTNAME_MISMATCH:
187
- return "Hostname mismatch";
172
+ return "Hostname mismatch";
188
173
  case X509_V_ERR_EMAIL_MISMATCH:
189
- return "Email address mismatch";
174
+ return "Email address mismatch";
190
175
  case X509_V_ERR_IP_ADDRESS_MISMATCH:
191
- return "IP address mismatch";
176
+ return "IP address mismatch";
192
177
 
193
178
  case X509_V_ERR_INVALID_CALL:
194
- return "Invalid certificate verification context";
179
+ return "Invalid certificate verification context";
195
180
  case X509_V_ERR_STORE_LOOKUP:
196
- return "Issuer certificate lookup error";
181
+ return "Issuer certificate lookup error";
197
182
 
198
183
  case X509_V_ERR_NAME_CONSTRAINTS_WITHOUT_SANS:
199
- return "Issuer has name constraints but leaf has no SANs";
184
+ return "Issuer has name constraints but leaf has no SANs";
200
185
 
201
186
  default:
202
- return "unknown certificate verification error";
203
- }
187
+ return "unknown certificate verification error";
188
+ }
204
189
  }