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
@@ -74,65 +74,57 @@
74
74
  typedef STACK_OF(X509_NAME_ENTRY) STACK_OF_X509_NAME_ENTRY;
75
75
  DEFINE_STACK_OF(STACK_OF_X509_NAME_ENTRY)
76
76
 
77
- /*
78
- * Maximum length of X509_NAME: much larger than anything we should
79
- * ever see in practice.
80
- */
77
+ // Maximum length of X509_NAME: much larger than anything we should
78
+ // ever see in practice.
81
79
 
82
80
  #define X509_NAME_MAX (1024 * 1024)
83
81
 
84
- static int x509_name_ex_d2i(ASN1_VALUE **val,
85
- const unsigned char **in, long len,
86
- const ASN1_ITEM *it,
87
- int tag, int aclass, char opt, ASN1_TLC *ctx);
82
+ static int x509_name_ex_d2i(ASN1_VALUE **val, const unsigned char **in,
83
+ long len, const ASN1_ITEM *it, int opt,
84
+ ASN1_TLC *ctx);
88
85
 
89
86
  static int x509_name_ex_i2d(ASN1_VALUE **val, unsigned char **out,
90
- const ASN1_ITEM *it, int tag, int aclass);
87
+ const ASN1_ITEM *it);
91
88
  static int x509_name_ex_new(ASN1_VALUE **val, const ASN1_ITEM *it);
92
89
  static void x509_name_ex_free(ASN1_VALUE **val, const ASN1_ITEM *it);
93
90
 
94
91
  static int x509_name_encode(X509_NAME *a);
95
92
  static int x509_name_canon(X509_NAME *a);
96
93
  static int asn1_string_canon(ASN1_STRING *out, ASN1_STRING *in);
97
- static int i2d_name_canon(STACK_OF(STACK_OF_X509_NAME_ENTRY) * intname,
94
+ static int i2d_name_canon(STACK_OF(STACK_OF_X509_NAME_ENTRY) *intname,
98
95
  unsigned char **in);
99
96
 
100
97
  ASN1_SEQUENCE(X509_NAME_ENTRY) = {
101
- ASN1_SIMPLE(X509_NAME_ENTRY, object, ASN1_OBJECT),
102
- ASN1_SIMPLE(X509_NAME_ENTRY, value, ASN1_PRINTABLE)
98
+ ASN1_SIMPLE(X509_NAME_ENTRY, object, ASN1_OBJECT),
99
+ ASN1_SIMPLE(X509_NAME_ENTRY, value, ASN1_PRINTABLE),
103
100
  } ASN1_SEQUENCE_END(X509_NAME_ENTRY)
104
101
 
105
- IMPLEMENT_ASN1_FUNCTIONS(X509_NAME_ENTRY)
106
- IMPLEMENT_ASN1_DUP_FUNCTION(X509_NAME_ENTRY)
102
+ IMPLEMENT_ASN1_FUNCTIONS_const(X509_NAME_ENTRY)
103
+ IMPLEMENT_ASN1_DUP_FUNCTION_const(X509_NAME_ENTRY)
107
104
 
108
- /*
109
- * For the "Name" type we need a SEQUENCE OF { SET OF X509_NAME_ENTRY } so
110
- * declare two template wrappers for this
111
- */
105
+ // For the "Name" type we need a SEQUENCE OF { SET OF X509_NAME_ENTRY } so
106
+ // declare two template wrappers for this
112
107
 
113
- ASN1_ITEM_TEMPLATE(X509_NAME_ENTRIES) =
114
- ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SET_OF, 0, RDNS, X509_NAME_ENTRY)
108
+ ASN1_ITEM_TEMPLATE(X509_NAME_ENTRIES) = ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SET_OF,
109
+ 0, RDNS,
110
+ X509_NAME_ENTRY)
115
111
  ASN1_ITEM_TEMPLATE_END(X509_NAME_ENTRIES)
116
112
 
117
113
  ASN1_ITEM_TEMPLATE(X509_NAME_INTERNAL) =
118
- ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, Name, X509_NAME_ENTRIES)
114
+ ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, Name, X509_NAME_ENTRIES)
119
115
  ASN1_ITEM_TEMPLATE_END(X509_NAME_INTERNAL)
120
116
 
121
- /*
122
- * Normally that's where it would end: we'd have two nested STACK structures
123
- * representing the ASN1. Unfortunately X509_NAME uses a completely different
124
- * form and caches encodings so we have to process the internal form and
125
- * convert to the external form.
126
- */
117
+ // Normally that's where it would end: we'd have two nested STACK structures
118
+ // representing the ASN1. Unfortunately X509_NAME uses a completely different
119
+ // form and caches encodings so we have to process the internal form and
120
+ // convert to the external form.
127
121
 
128
122
  static const ASN1_EXTERN_FUNCS x509_name_ff = {
129
- NULL,
130
123
  x509_name_ex_new,
131
124
  x509_name_ex_free,
132
- 0, /* Default clear behaviour is OK */
125
+ 0, // Default clear behaviour is OK
133
126
  x509_name_ex_d2i,
134
127
  x509_name_ex_i2d,
135
- NULL,
136
128
  };
137
129
 
138
130
  IMPLEMENT_EXTERN_ASN1(X509_NAME, V_ASN1_SEQUENCE, x509_name_ff)
@@ -141,404 +133,396 @@ IMPLEMENT_ASN1_FUNCTIONS(X509_NAME)
141
133
 
142
134
  IMPLEMENT_ASN1_DUP_FUNCTION(X509_NAME)
143
135
 
144
- static int x509_name_ex_new(ASN1_VALUE **val, const ASN1_ITEM *it)
145
- {
146
- X509_NAME *ret = NULL;
147
- ret = OPENSSL_malloc(sizeof(X509_NAME));
148
- if (!ret)
149
- goto memerr;
150
- if ((ret->entries = sk_X509_NAME_ENTRY_new_null()) == NULL)
151
- goto memerr;
152
- if ((ret->bytes = BUF_MEM_new()) == NULL)
153
- goto memerr;
154
- ret->canon_enc = NULL;
155
- ret->canon_enclen = 0;
156
- ret->modified = 1;
157
- *val = (ASN1_VALUE *)ret;
158
- return 1;
159
-
160
- memerr:
161
- OPENSSL_PUT_ERROR(X509, ERR_R_MALLOC_FAILURE);
162
- if (ret) {
163
- if (ret->entries)
164
- sk_X509_NAME_ENTRY_free(ret->entries);
165
- OPENSSL_free(ret);
136
+ static int x509_name_ex_new(ASN1_VALUE **val, const ASN1_ITEM *it) {
137
+ X509_NAME *ret = NULL;
138
+ ret = OPENSSL_malloc(sizeof(X509_NAME));
139
+ if (!ret) {
140
+ goto memerr;
141
+ }
142
+ if ((ret->entries = sk_X509_NAME_ENTRY_new_null()) == NULL) {
143
+ goto memerr;
144
+ }
145
+ if ((ret->bytes = BUF_MEM_new()) == NULL) {
146
+ goto memerr;
147
+ }
148
+ ret->canon_enc = NULL;
149
+ ret->canon_enclen = 0;
150
+ ret->modified = 1;
151
+ *val = (ASN1_VALUE *)ret;
152
+ return 1;
153
+
154
+ memerr:
155
+ if (ret) {
156
+ if (ret->entries) {
157
+ sk_X509_NAME_ENTRY_free(ret->entries);
166
158
  }
167
- return 0;
159
+ OPENSSL_free(ret);
160
+ }
161
+ return 0;
168
162
  }
169
163
 
170
- static void x509_name_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it)
171
- {
172
- X509_NAME *a;
173
- if (!pval || !*pval)
174
- return;
175
- a = (X509_NAME *)*pval;
176
-
177
- BUF_MEM_free(a->bytes);
178
- sk_X509_NAME_ENTRY_pop_free(a->entries, X509_NAME_ENTRY_free);
179
- if (a->canon_enc)
180
- OPENSSL_free(a->canon_enc);
181
- OPENSSL_free(a);
182
- *pval = NULL;
164
+ static void x509_name_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it) {
165
+ X509_NAME *a;
166
+ if (!pval || !*pval) {
167
+ return;
168
+ }
169
+ a = (X509_NAME *)*pval;
170
+
171
+ BUF_MEM_free(a->bytes);
172
+ sk_X509_NAME_ENTRY_pop_free(a->entries, X509_NAME_ENTRY_free);
173
+ if (a->canon_enc) {
174
+ OPENSSL_free(a->canon_enc);
175
+ }
176
+ OPENSSL_free(a);
177
+ *pval = NULL;
183
178
  }
184
179
 
185
- static void local_sk_X509_NAME_ENTRY_free(STACK_OF(X509_NAME_ENTRY) *ne)
186
- {
187
- sk_X509_NAME_ENTRY_free(ne);
180
+ static void local_sk_X509_NAME_ENTRY_free(STACK_OF(X509_NAME_ENTRY) *ne) {
181
+ sk_X509_NAME_ENTRY_free(ne);
188
182
  }
189
183
 
190
- static void local_sk_X509_NAME_ENTRY_pop_free(STACK_OF(X509_NAME_ENTRY) *ne)
191
- {
192
- sk_X509_NAME_ENTRY_pop_free(ne, X509_NAME_ENTRY_free);
184
+ static void local_sk_X509_NAME_ENTRY_pop_free(STACK_OF(X509_NAME_ENTRY) *ne) {
185
+ sk_X509_NAME_ENTRY_pop_free(ne, X509_NAME_ENTRY_free);
193
186
  }
194
187
 
195
- static int x509_name_ex_d2i(ASN1_VALUE **val,
196
- const unsigned char **in, long len,
197
- const ASN1_ITEM *it, int tag, int aclass,
198
- char opt, ASN1_TLC *ctx)
199
- {
200
- const unsigned char *p = *in, *q;
201
- STACK_OF(STACK_OF_X509_NAME_ENTRY) *intname = NULL;
202
- X509_NAME *nm = NULL;
203
- size_t i, j;
204
- int ret;
205
- STACK_OF(X509_NAME_ENTRY) *entries;
206
- X509_NAME_ENTRY *entry;
207
- /* Bound the size of an X509_NAME we are willing to parse. */
208
- if (len > X509_NAME_MAX) {
209
- len = X509_NAME_MAX;
210
- }
211
- q = p;
212
-
213
- /* Get internal representation of Name */
214
- ASN1_VALUE *intname_val = NULL;
215
- ret = ASN1_item_ex_d2i(&intname_val,
216
- &p, len, ASN1_ITEM_rptr(X509_NAME_INTERNAL),
217
- tag, aclass, opt, ctx);
218
- if (ret <= 0)
219
- return ret;
220
- intname = (STACK_OF(STACK_OF_X509_NAME_ENTRY) *)intname_val;
221
-
222
- if (*val)
223
- x509_name_ex_free(val, NULL);
224
- ASN1_VALUE *nm_val = NULL;
225
- if (!x509_name_ex_new(&nm_val, NULL))
226
- goto err;
227
- nm = (X509_NAME *)nm_val;
228
- /* We've decoded it: now cache encoding */
229
- if (!BUF_MEM_grow(nm->bytes, p - q))
188
+ static int x509_name_ex_d2i(ASN1_VALUE **val, const unsigned char **in,
189
+ long len, const ASN1_ITEM *it, int opt,
190
+ ASN1_TLC *ctx) {
191
+ const unsigned char *p = *in, *q;
192
+ STACK_OF(STACK_OF_X509_NAME_ENTRY) *intname = NULL;
193
+ X509_NAME *nm = NULL;
194
+ size_t i, j;
195
+ int ret;
196
+ STACK_OF(X509_NAME_ENTRY) *entries;
197
+ X509_NAME_ENTRY *entry;
198
+ // Bound the size of an X509_NAME we are willing to parse.
199
+ if (len > X509_NAME_MAX) {
200
+ len = X509_NAME_MAX;
201
+ }
202
+ q = p;
203
+
204
+ // Get internal representation of Name
205
+ ASN1_VALUE *intname_val = NULL;
206
+ ret = ASN1_item_ex_d2i(&intname_val, &p, len,
207
+ ASN1_ITEM_rptr(X509_NAME_INTERNAL), /*tag=*/-1,
208
+ /*aclass=*/0, opt, /*buf=*/NULL);
209
+ if (ret <= 0) {
210
+ return ret;
211
+ }
212
+ intname = (STACK_OF(STACK_OF_X509_NAME_ENTRY) *)intname_val;
213
+
214
+ if (*val) {
215
+ x509_name_ex_free(val, NULL);
216
+ }
217
+ ASN1_VALUE *nm_val = NULL;
218
+ if (!x509_name_ex_new(&nm_val, NULL)) {
219
+ goto err;
220
+ }
221
+ nm = (X509_NAME *)nm_val;
222
+ // We've decoded it: now cache encoding
223
+ if (!BUF_MEM_grow(nm->bytes, p - q)) {
224
+ goto err;
225
+ }
226
+ OPENSSL_memcpy(nm->bytes->data, q, p - q);
227
+
228
+ // Convert internal representation to X509_NAME structure
229
+ for (i = 0; i < sk_STACK_OF_X509_NAME_ENTRY_num(intname); i++) {
230
+ entries = sk_STACK_OF_X509_NAME_ENTRY_value(intname, i);
231
+ for (j = 0; j < sk_X509_NAME_ENTRY_num(entries); j++) {
232
+ entry = sk_X509_NAME_ENTRY_value(entries, j);
233
+ entry->set = i;
234
+ if (!sk_X509_NAME_ENTRY_push(nm->entries, entry)) {
230
235
  goto err;
231
- OPENSSL_memcpy(nm->bytes->data, q, p - q);
232
-
233
- /* Convert internal representation to X509_NAME structure */
234
- for (i = 0; i < sk_STACK_OF_X509_NAME_ENTRY_num(intname); i++) {
235
- entries = sk_STACK_OF_X509_NAME_ENTRY_value(intname, i);
236
- for (j = 0; j < sk_X509_NAME_ENTRY_num(entries); j++) {
237
- entry = sk_X509_NAME_ENTRY_value(entries, j);
238
- entry->set = i;
239
- if (!sk_X509_NAME_ENTRY_push(nm->entries, entry))
240
- goto err;
241
- (void)sk_X509_NAME_ENTRY_set(entries, j, NULL);
242
- }
236
+ }
237
+ (void)sk_X509_NAME_ENTRY_set(entries, j, NULL);
243
238
  }
244
- ret = x509_name_canon(nm);
245
- if (!ret)
246
- goto err;
247
- sk_STACK_OF_X509_NAME_ENTRY_pop_free(intname,
248
- local_sk_X509_NAME_ENTRY_free);
249
- nm->modified = 0;
250
- *val = (ASN1_VALUE *)nm;
251
- *in = p;
252
- return ret;
253
- err:
254
- X509_NAME_free(nm);
255
- sk_STACK_OF_X509_NAME_ENTRY_pop_free(intname,
256
- local_sk_X509_NAME_ENTRY_pop_free);
257
- OPENSSL_PUT_ERROR(X509, ERR_R_ASN1_LIB);
258
- return 0;
239
+ }
240
+ ret = x509_name_canon(nm);
241
+ if (!ret) {
242
+ goto err;
243
+ }
244
+ sk_STACK_OF_X509_NAME_ENTRY_pop_free(intname, local_sk_X509_NAME_ENTRY_free);
245
+ nm->modified = 0;
246
+ *val = (ASN1_VALUE *)nm;
247
+ *in = p;
248
+ return ret;
249
+ err:
250
+ X509_NAME_free(nm);
251
+ sk_STACK_OF_X509_NAME_ENTRY_pop_free(intname,
252
+ local_sk_X509_NAME_ENTRY_pop_free);
253
+ OPENSSL_PUT_ERROR(X509, ERR_R_ASN1_LIB);
254
+ return 0;
259
255
  }
260
256
 
261
257
  static int x509_name_ex_i2d(ASN1_VALUE **val, unsigned char **out,
262
- const ASN1_ITEM *it, int tag, int aclass)
263
- {
264
- X509_NAME *a = (X509_NAME *)*val;
265
- if (a->modified &&
266
- (!x509_name_encode(a) ||
267
- !x509_name_canon(a))) {
268
- return -1;
269
- }
270
- int ret = a->bytes->length;
271
- if (out != NULL) {
272
- OPENSSL_memcpy(*out, a->bytes->data, ret);
273
- *out += ret;
274
- }
275
- return ret;
258
+ const ASN1_ITEM *it) {
259
+ X509_NAME *a = (X509_NAME *)*val;
260
+ if (a->modified && (!x509_name_encode(a) || !x509_name_canon(a))) {
261
+ return -1;
262
+ }
263
+ int ret = a->bytes->length;
264
+ if (out != NULL) {
265
+ OPENSSL_memcpy(*out, a->bytes->data, ret);
266
+ *out += ret;
267
+ }
268
+ return ret;
276
269
  }
277
270
 
278
- static int x509_name_encode(X509_NAME *a)
279
- {
280
- int len;
281
- unsigned char *p;
282
- STACK_OF(X509_NAME_ENTRY) *entries = NULL;
283
- X509_NAME_ENTRY *entry;
284
- int set = -1;
285
- size_t i;
286
- STACK_OF(STACK_OF_X509_NAME_ENTRY) *intname =
287
- sk_STACK_OF_X509_NAME_ENTRY_new_null();
288
- if (!intname)
289
- goto memerr;
290
- for (i = 0; i < sk_X509_NAME_ENTRY_num(a->entries); i++) {
291
- entry = sk_X509_NAME_ENTRY_value(a->entries, i);
292
- if (entry->set != set) {
293
- entries = sk_X509_NAME_ENTRY_new_null();
294
- if (!entries)
295
- goto memerr;
296
- if (!sk_STACK_OF_X509_NAME_ENTRY_push(intname, entries)) {
297
- sk_X509_NAME_ENTRY_free(entries);
298
- goto memerr;
299
- }
300
- set = entry->set;
301
- }
302
- if (!sk_X509_NAME_ENTRY_push(entries, entry))
303
- goto memerr;
271
+ static int x509_name_encode(X509_NAME *a) {
272
+ int len;
273
+ unsigned char *p;
274
+ STACK_OF(X509_NAME_ENTRY) *entries = NULL;
275
+ X509_NAME_ENTRY *entry;
276
+ int set = -1;
277
+ size_t i;
278
+ STACK_OF(STACK_OF_X509_NAME_ENTRY) *intname =
279
+ sk_STACK_OF_X509_NAME_ENTRY_new_null();
280
+ if (!intname) {
281
+ goto err;
282
+ }
283
+ for (i = 0; i < sk_X509_NAME_ENTRY_num(a->entries); i++) {
284
+ entry = sk_X509_NAME_ENTRY_value(a->entries, i);
285
+ if (entry->set != set) {
286
+ entries = sk_X509_NAME_ENTRY_new_null();
287
+ if (!entries) {
288
+ goto err;
289
+ }
290
+ if (!sk_STACK_OF_X509_NAME_ENTRY_push(intname, entries)) {
291
+ sk_X509_NAME_ENTRY_free(entries);
292
+ goto err;
293
+ }
294
+ set = entry->set;
304
295
  }
305
- ASN1_VALUE *intname_val = (ASN1_VALUE *)intname;
306
- len =
307
- ASN1_item_ex_i2d(&intname_val, NULL, ASN1_ITEM_rptr(X509_NAME_INTERNAL),
308
- /*tag=*/-1, /*aclass=*/0);
309
- if (len <= 0) {
296
+ if (!sk_X509_NAME_ENTRY_push(entries, entry)) {
310
297
  goto err;
311
298
  }
312
- if (!BUF_MEM_grow(a->bytes, len))
313
- goto memerr;
314
- p = (unsigned char *)a->bytes->data;
315
- if (ASN1_item_ex_i2d(&intname_val, &p, ASN1_ITEM_rptr(X509_NAME_INTERNAL),
316
- /*tag=*/-1, /*aclass=*/0) <= 0) {
317
- goto err;
318
- }
319
- sk_STACK_OF_X509_NAME_ENTRY_pop_free(intname,
320
- local_sk_X509_NAME_ENTRY_free);
321
- a->modified = 0;
322
- return 1;
323
- memerr:
324
- OPENSSL_PUT_ERROR(X509, ERR_R_MALLOC_FAILURE);
299
+ }
300
+ ASN1_VALUE *intname_val = (ASN1_VALUE *)intname;
301
+ len = ASN1_item_ex_i2d(&intname_val, NULL, ASN1_ITEM_rptr(X509_NAME_INTERNAL),
302
+ /*tag=*/-1, /*aclass=*/0);
303
+ if (len <= 0) {
304
+ goto err;
305
+ }
306
+ if (!BUF_MEM_grow(a->bytes, len)) {
307
+ goto err;
308
+ }
309
+ p = (unsigned char *)a->bytes->data;
310
+ if (ASN1_item_ex_i2d(&intname_val, &p, ASN1_ITEM_rptr(X509_NAME_INTERNAL),
311
+ /*tag=*/-1, /*aclass=*/0) <= 0) {
312
+ goto err;
313
+ }
314
+ sk_STACK_OF_X509_NAME_ENTRY_pop_free(intname, local_sk_X509_NAME_ENTRY_free);
315
+ a->modified = 0;
316
+ return 1;
325
317
  err:
326
- sk_STACK_OF_X509_NAME_ENTRY_pop_free(intname,
327
- local_sk_X509_NAME_ENTRY_free);
328
- return 0;
318
+ sk_STACK_OF_X509_NAME_ENTRY_pop_free(intname, local_sk_X509_NAME_ENTRY_free);
319
+ return 0;
329
320
  }
330
321
 
331
- /*
332
- * This function generates the canonical encoding of the Name structure. In
333
- * it all strings are converted to UTF8, leading, trailing and multiple
334
- * spaces collapsed, converted to lower case and the leading SEQUENCE header
335
- * removed. In future we could also normalize the UTF8 too. By doing this
336
- * comparison of Name structures can be rapidly perfomed by just using
337
- * OPENSSL_memcmp() of the canonical encoding. By omitting the leading SEQUENCE name
338
- * constraints of type dirName can also be checked with a simple OPENSSL_memcmp().
339
- */
340
-
341
- static int x509_name_canon(X509_NAME *a)
342
- {
343
- unsigned char *p;
344
- STACK_OF(STACK_OF_X509_NAME_ENTRY) *intname = NULL;
345
- STACK_OF(X509_NAME_ENTRY) *entries = NULL;
346
- X509_NAME_ENTRY *entry, *tmpentry = NULL;
347
- int set = -1, ret = 0, len;
348
- size_t i;
349
-
350
- if (a->canon_enc) {
351
- OPENSSL_free(a->canon_enc);
352
- a->canon_enc = NULL;
322
+ // This function generates the canonical encoding of the Name structure. In
323
+ // it all strings are converted to UTF8, leading, trailing and multiple
324
+ // spaces collapsed, converted to lower case and the leading SEQUENCE header
325
+ // removed. In future we could also normalize the UTF8 too. By doing this
326
+ // comparison of Name structures can be rapidly perfomed by just using
327
+ // OPENSSL_memcmp() of the canonical encoding. By omitting the leading SEQUENCE
328
+ // name constraints of type dirName can also be checked with a simple
329
+ // OPENSSL_memcmp().
330
+
331
+ static int x509_name_canon(X509_NAME *a) {
332
+ unsigned char *p;
333
+ STACK_OF(STACK_OF_X509_NAME_ENTRY) *intname = NULL;
334
+ STACK_OF(X509_NAME_ENTRY) *entries = NULL;
335
+ X509_NAME_ENTRY *entry, *tmpentry = NULL;
336
+ int set = -1, ret = 0, len;
337
+ size_t i;
338
+
339
+ if (a->canon_enc) {
340
+ OPENSSL_free(a->canon_enc);
341
+ a->canon_enc = NULL;
342
+ }
343
+ // Special case: empty X509_NAME => null encoding
344
+ if (sk_X509_NAME_ENTRY_num(a->entries) == 0) {
345
+ a->canon_enclen = 0;
346
+ return 1;
347
+ }
348
+ intname = sk_STACK_OF_X509_NAME_ENTRY_new_null();
349
+ if (!intname) {
350
+ goto err;
351
+ }
352
+ for (i = 0; i < sk_X509_NAME_ENTRY_num(a->entries); i++) {
353
+ entry = sk_X509_NAME_ENTRY_value(a->entries, i);
354
+ if (entry->set != set) {
355
+ entries = sk_X509_NAME_ENTRY_new_null();
356
+ if (!entries) {
357
+ goto err;
358
+ }
359
+ if (!sk_STACK_OF_X509_NAME_ENTRY_push(intname, entries)) {
360
+ sk_X509_NAME_ENTRY_free(entries);
361
+ goto err;
362
+ }
363
+ set = entry->set;
353
364
  }
354
- /* Special case: empty X509_NAME => null encoding */
355
- if (sk_X509_NAME_ENTRY_num(a->entries) == 0) {
356
- a->canon_enclen = 0;
357
- return 1;
365
+ tmpentry = X509_NAME_ENTRY_new();
366
+ if (tmpentry == NULL) {
367
+ goto err;
358
368
  }
359
- intname = sk_STACK_OF_X509_NAME_ENTRY_new_null();
360
- if (!intname)
361
- goto err;
362
- for (i = 0; i < sk_X509_NAME_ENTRY_num(a->entries); i++) {
363
- entry = sk_X509_NAME_ENTRY_value(a->entries, i);
364
- if (entry->set != set) {
365
- entries = sk_X509_NAME_ENTRY_new_null();
366
- if (!entries)
367
- goto err;
368
- if (!sk_STACK_OF_X509_NAME_ENTRY_push(intname, entries)) {
369
- sk_X509_NAME_ENTRY_free(entries);
370
- goto err;
371
- }
372
- set = entry->set;
373
- }
374
- tmpentry = X509_NAME_ENTRY_new();
375
- if (tmpentry == NULL)
376
- goto err;
377
- tmpentry->object = OBJ_dup(entry->object);
378
- if (!asn1_string_canon(tmpentry->value, entry->value))
379
- goto err;
380
- if (!sk_X509_NAME_ENTRY_push(entries, tmpentry))
381
- goto err;
382
- tmpentry = NULL;
369
+ tmpentry->object = OBJ_dup(entry->object);
370
+ if (!asn1_string_canon(tmpentry->value, entry->value)) {
371
+ goto err;
383
372
  }
373
+ if (!sk_X509_NAME_ENTRY_push(entries, tmpentry)) {
374
+ goto err;
375
+ }
376
+ tmpentry = NULL;
377
+ }
384
378
 
385
- /* Finally generate encoding */
379
+ // Finally generate encoding
386
380
 
387
- len = i2d_name_canon(intname, NULL);
388
- if (len < 0) {
389
- goto err;
390
- }
391
- a->canon_enclen = len;
381
+ len = i2d_name_canon(intname, NULL);
382
+ if (len < 0) {
383
+ goto err;
384
+ }
385
+ a->canon_enclen = len;
392
386
 
393
- p = OPENSSL_malloc(a->canon_enclen);
387
+ p = OPENSSL_malloc(a->canon_enclen);
394
388
 
395
- if (!p)
396
- goto err;
389
+ if (!p) {
390
+ goto err;
391
+ }
397
392
 
398
- a->canon_enc = p;
393
+ a->canon_enc = p;
399
394
 
400
- i2d_name_canon(intname, &p);
395
+ i2d_name_canon(intname, &p);
401
396
 
402
- ret = 1;
397
+ ret = 1;
403
398
 
404
- err:
399
+ err:
405
400
 
406
- if (tmpentry)
407
- X509_NAME_ENTRY_free(tmpentry);
408
- if (intname)
409
- sk_STACK_OF_X509_NAME_ENTRY_pop_free(intname,
410
- local_sk_X509_NAME_ENTRY_pop_free);
411
- return ret;
401
+ if (tmpentry) {
402
+ X509_NAME_ENTRY_free(tmpentry);
403
+ }
404
+ if (intname) {
405
+ sk_STACK_OF_X509_NAME_ENTRY_pop_free(intname,
406
+ local_sk_X509_NAME_ENTRY_pop_free);
407
+ }
408
+ return ret;
412
409
  }
413
410
 
414
- /* Bitmap of all the types of string that will be canonicalized. */
411
+ // Bitmap of all the types of string that will be canonicalized.
415
412
 
416
- #define ASN1_MASK_CANON \
417
- (B_ASN1_UTF8STRING | B_ASN1_BMPSTRING | B_ASN1_UNIVERSALSTRING \
418
- | B_ASN1_PRINTABLESTRING | B_ASN1_T61STRING | B_ASN1_IA5STRING \
419
- | B_ASN1_VISIBLESTRING)
413
+ #define ASN1_MASK_CANON \
414
+ (B_ASN1_UTF8STRING | B_ASN1_BMPSTRING | B_ASN1_UNIVERSALSTRING | \
415
+ B_ASN1_PRINTABLESTRING | B_ASN1_T61STRING | B_ASN1_IA5STRING | \
416
+ B_ASN1_VISIBLESTRING)
420
417
 
421
- static int asn1_string_canon(ASN1_STRING *out, ASN1_STRING *in)
422
- {
423
- unsigned char *to, *from;
424
- int len, i;
418
+ static int asn1_string_canon(ASN1_STRING *out, ASN1_STRING *in) {
419
+ unsigned char *to, *from;
420
+ int len, i;
425
421
 
426
- /* If type not in bitmask just copy string across */
427
- if (!(ASN1_tag2bit(in->type) & ASN1_MASK_CANON)) {
428
- if (!ASN1_STRING_copy(out, in))
429
- return 0;
430
- return 1;
422
+ // If type not in bitmask just copy string across
423
+ if (!(ASN1_tag2bit(in->type) & ASN1_MASK_CANON)) {
424
+ if (!ASN1_STRING_copy(out, in)) {
425
+ return 0;
431
426
  }
427
+ return 1;
428
+ }
432
429
 
433
- out->type = V_ASN1_UTF8STRING;
434
- out->length = ASN1_STRING_to_UTF8(&out->data, in);
435
- if (out->length == -1)
436
- return 0;
430
+ out->type = V_ASN1_UTF8STRING;
431
+ out->length = ASN1_STRING_to_UTF8(&out->data, in);
432
+ if (out->length == -1) {
433
+ return 0;
434
+ }
437
435
 
438
- to = out->data;
439
- from = to;
436
+ to = out->data;
437
+ from = to;
440
438
 
441
- len = out->length;
439
+ len = out->length;
442
440
 
443
- /*
444
- * Convert string in place to canonical form. Ultimately we may need to
445
- * handle a wider range of characters but for now ignore anything with
446
- * MSB set and rely on the isspace() and tolower() functions.
447
- */
441
+ // Convert string in place to canonical form.
448
442
 
449
- /* Ignore leading spaces */
450
- while ((len > 0) && !(*from & 0x80) && isspace(*from)) {
451
- from++;
452
- len--;
453
- }
443
+ // Ignore leading spaces
444
+ while ((len > 0) && OPENSSL_isspace(*from)) {
445
+ from++;
446
+ len--;
447
+ }
454
448
 
455
- to = from + len;
449
+ to = from + len;
456
450
 
457
- /* Ignore trailing spaces */
458
- while ((len > 0) && !(to[-1] & 0x80) && isspace(to[-1])) {
459
- to--;
460
- len--;
461
- }
451
+ // Ignore trailing spaces
452
+ while ((len > 0) && OPENSSL_isspace(to[-1])) {
453
+ to--;
454
+ len--;
455
+ }
462
456
 
463
- to = out->data;
464
-
465
- i = 0;
466
- while (i < len) {
467
- /* If MSB set just copy across */
468
- if (*from & 0x80) {
469
- *to++ = *from++;
470
- i++;
471
- }
472
- /* Collapse multiple spaces */
473
- else if (isspace(*from)) {
474
- /* Copy one space across */
475
- *to++ = ' ';
476
- /*
477
- * Ignore subsequent spaces. Note: don't need to check len here
478
- * because we know the last character is a non-space so we can't
479
- * overflow.
480
- */
481
- do {
482
- from++;
483
- i++;
484
- }
485
- while (!(*from & 0x80) && isspace(*from));
486
- } else {
487
- *to++ = OPENSSL_tolower(*from);
488
- from++;
489
- i++;
490
- }
457
+ to = out->data;
458
+
459
+ i = 0;
460
+ while (i < len) {
461
+ // Collapse multiple spaces
462
+ if (OPENSSL_isspace(*from)) {
463
+ // Copy one space across
464
+ *to++ = ' ';
465
+ // Ignore subsequent spaces. Note: don't need to check len here
466
+ // because we know the last character is a non-space so we can't
467
+ // overflow.
468
+ do {
469
+ from++;
470
+ i++;
471
+ } while (OPENSSL_isspace(*from));
472
+ } else {
473
+ *to++ = OPENSSL_tolower(*from);
474
+ from++;
475
+ i++;
491
476
  }
477
+ }
492
478
 
493
- out->length = to - out->data;
494
-
495
- return 1;
479
+ out->length = to - out->data;
496
480
 
481
+ return 1;
497
482
  }
498
483
 
499
- static int i2d_name_canon(STACK_OF(STACK_OF_X509_NAME_ENTRY) * _intname,
500
- unsigned char **in)
501
- {
502
- int len, ltmp;
503
- size_t i;
504
- ASN1_VALUE *v;
505
- STACK_OF(ASN1_VALUE) *intname = (STACK_OF(ASN1_VALUE) *)_intname;
506
-
507
- len = 0;
508
- for (i = 0; i < sk_ASN1_VALUE_num(intname); i++) {
509
- v = sk_ASN1_VALUE_value(intname, i);
510
- ltmp = ASN1_item_ex_i2d(&v, in, ASN1_ITEM_rptr(X509_NAME_ENTRIES),
511
- /*tag=*/-1, /*aclass=*/0);
512
- if (ltmp < 0)
513
- return ltmp;
514
- len += ltmp;
484
+ static int i2d_name_canon(STACK_OF(STACK_OF_X509_NAME_ENTRY) *_intname,
485
+ unsigned char **in) {
486
+ int len, ltmp;
487
+ size_t i;
488
+ ASN1_VALUE *v;
489
+ STACK_OF(ASN1_VALUE) *intname = (STACK_OF(ASN1_VALUE) *)_intname;
490
+
491
+ len = 0;
492
+ for (i = 0; i < sk_ASN1_VALUE_num(intname); i++) {
493
+ v = sk_ASN1_VALUE_value(intname, i);
494
+ ltmp = ASN1_item_ex_i2d(&v, in, ASN1_ITEM_rptr(X509_NAME_ENTRIES),
495
+ /*tag=*/-1, /*aclass=*/0);
496
+ if (ltmp < 0) {
497
+ return ltmp;
515
498
  }
516
- return len;
499
+ len += ltmp;
500
+ }
501
+ return len;
517
502
  }
518
503
 
519
- int X509_NAME_set(X509_NAME **xn, X509_NAME *name)
520
- {
521
- if ((name = X509_NAME_dup(name)) == NULL)
522
- return 0;
523
- X509_NAME_free(*xn);
524
- *xn = name;
525
- return 1;
504
+ int X509_NAME_set(X509_NAME **xn, X509_NAME *name) {
505
+ if ((name = X509_NAME_dup(name)) == NULL) {
506
+ return 0;
507
+ }
508
+ X509_NAME_free(*xn);
509
+ *xn = name;
510
+ return 1;
526
511
  }
527
512
 
528
- int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne)
529
- {
530
- return ne->set;
531
- }
513
+ int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne) { return ne->set; }
532
514
 
533
515
  int X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder,
534
- size_t *pderlen)
535
- {
536
- /* Make sure encoding is valid */
537
- if (i2d_X509_NAME(nm, NULL) <= 0)
538
- return 0;
539
- if (pder != NULL)
540
- *pder = (unsigned char *)nm->bytes->data;
541
- if (pderlen != NULL)
542
- *pderlen = nm->bytes->length;
543
- return 1;
516
+ size_t *pderlen) {
517
+ // Make sure encoding is valid
518
+ if (i2d_X509_NAME(nm, NULL) <= 0) {
519
+ return 0;
520
+ }
521
+ if (pder != NULL) {
522
+ *pder = (unsigned char *)nm->bytes->data;
523
+ }
524
+ if (pderlen != NULL) {
525
+ *pderlen = nm->bytes->length;
526
+ }
527
+ return 1;
544
528
  }