grpc 1.53.2 → 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 (693) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +78 -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/support/port_platform.h +4 -4
  6. data/src/core/ext/filters/backend_metrics/backend_metric_filter.cc +11 -0
  7. data/src/core/ext/filters/client_channel/backend_metric.cc +6 -0
  8. data/src/core/ext/filters/client_channel/backup_poller.cc +2 -11
  9. data/src/core/ext/filters/client_channel/backup_poller.h +0 -3
  10. data/src/core/ext/filters/client_channel/client_channel.cc +848 -813
  11. data/src/core/ext/filters/client_channel/client_channel.h +131 -173
  12. data/src/core/ext/filters/client_channel/client_channel_internal.h +114 -0
  13. data/src/core/ext/filters/client_channel/config_selector.h +4 -3
  14. data/src/core/ext/filters/client_channel/lb_policy/backend_metric_data.h +6 -1
  15. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +17 -18
  16. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +134 -151
  17. data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2 -16
  18. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +14 -10
  19. data/src/core/ext/filters/client_channel/lb_policy/weighted_round_robin/weighted_round_robin.cc +68 -30
  20. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +11 -3
  21. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +8 -1
  22. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +2 -5
  23. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_override_host.cc +2 -2
  24. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +30 -38
  25. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +4 -4
  26. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +20 -26
  27. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +31 -179
  28. data/src/core/ext/filters/client_channel/resolver/polling_resolver.cc +1 -2
  29. data/src/core/ext/filters/client_channel/resolver/polling_resolver.h +1 -2
  30. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +4 -2
  31. data/src/core/ext/filters/client_channel/retry_filter.cc +95 -102
  32. data/src/core/ext/filters/client_channel/subchannel.cc +2 -4
  33. data/src/core/ext/filters/client_channel/subchannel_stream_client.cc +26 -27
  34. data/src/core/ext/filters/client_channel/subchannel_stream_client.h +8 -5
  35. data/src/core/ext/filters/http/client/http_client_filter.cc +3 -3
  36. data/src/core/ext/filters/http/http_filters_plugin.cc +1 -12
  37. data/src/core/ext/filters/http/message_compress/compression_filter.cc +27 -11
  38. data/src/core/ext/filters/message_size/message_size_filter.cc +141 -224
  39. data/src/core/ext/filters/message_size/message_size_filter.h +48 -3
  40. data/src/core/ext/filters/stateful_session/stateful_session_filter.cc +7 -6
  41. data/src/core/ext/gcp/metadata_query.cc +142 -0
  42. data/src/core/ext/gcp/metadata_query.h +82 -0
  43. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +70 -55
  44. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +8 -12
  45. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -5
  46. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +116 -58
  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_encoder.cc +222 -118
  51. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +113 -295
  52. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +0 -2
  53. data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +0 -2
  54. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +277 -451
  55. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +1 -3
  56. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +12 -14
  57. data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +1 -9
  58. data/src/core/ext/transport/chttp2/transport/internal.h +16 -3
  59. data/src/core/ext/transport/chttp2/transport/parsing.cc +3 -2
  60. data/src/core/ext/transport/chttp2/transport/writing.cc +10 -5
  61. data/src/core/ext/transport/inproc/inproc_transport.cc +20 -14
  62. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +5 -3
  63. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +22 -0
  64. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +5 -3
  65. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +22 -0
  66. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +23 -5
  67. data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +94 -3
  68. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +23 -2
  69. data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +120 -0
  70. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +6 -3
  71. data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +22 -0
  72. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +24 -6
  73. data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +111 -12
  74. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +9 -7
  75. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +27 -9
  76. data/src/core/ext/upb-generated/envoy/config/trace/v3/opentelemetry.upb.c +0 -1
  77. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +11 -7
  78. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +56 -12
  79. 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
  80. 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
  81. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.c +5 -3
  82. data/src/core/ext/upb-generated/envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.upb.h +24 -0
  83. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +13 -2
  84. data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +49 -0
  85. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +24 -9
  86. data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +66 -12
  87. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +191 -187
  88. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +139 -136
  89. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +31 -15
  90. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +5 -0
  91. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +12 -9
  92. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +15 -0
  93. data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +54 -45
  94. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +135 -119
  95. data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +5 -0
  96. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +100 -97
  97. data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opentelemetry.upbdefs.c +15 -18
  98. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +272 -264
  99. data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +117 -117
  100. data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +5 -5
  101. data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +5 -5
  102. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +5 -5
  103. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +12 -9
  104. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +5 -0
  105. data/src/core/ext/xds/xds_channel_stack_modifier.cc +1 -2
  106. data/src/core/ext/xds/xds_client_stats.cc +29 -15
  107. data/src/core/ext/xds/xds_client_stats.h +24 -20
  108. data/src/core/ext/xds/xds_endpoint.cc +5 -2
  109. data/src/core/ext/xds/xds_endpoint.h +9 -1
  110. data/src/core/ext/xds/xds_http_rbac_filter.cc +1 -1
  111. data/src/core/ext/xds/xds_lb_policy_registry.cc +13 -0
  112. data/src/core/ext/xds/xds_transport_grpc.cc +1 -1
  113. data/src/core/lib/channel/call_finalization.h +1 -1
  114. data/src/core/lib/channel/call_tracer.cc +51 -0
  115. data/src/core/lib/channel/call_tracer.h +101 -38
  116. data/src/core/lib/channel/connected_channel.cc +483 -1050
  117. data/src/core/lib/channel/context.h +8 -1
  118. data/src/core/lib/channel/promise_based_filter.cc +106 -42
  119. data/src/core/lib/channel/promise_based_filter.h +27 -13
  120. data/src/core/lib/channel/server_call_tracer_filter.cc +110 -0
  121. data/src/core/lib/config/config_vars.cc +151 -0
  122. data/src/core/lib/config/config_vars.h +127 -0
  123. data/src/core/lib/config/config_vars_non_generated.cc +51 -0
  124. data/src/core/lib/config/load_config.cc +66 -0
  125. data/src/core/lib/config/load_config.h +49 -0
  126. data/src/core/lib/debug/trace.cc +5 -6
  127. data/src/core/lib/debug/trace.h +0 -5
  128. data/src/core/lib/event_engine/event_engine.cc +37 -2
  129. data/src/core/lib/event_engine/handle_containers.h +7 -22
  130. data/src/core/lib/event_engine/memory_allocator_factory.h +47 -0
  131. data/src/core/lib/event_engine/posix_engine/ev_poll_posix.cc +0 -4
  132. data/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc +3 -9
  133. data/src/core/lib/event_engine/posix_engine/posix_endpoint.cc +48 -15
  134. data/src/core/lib/event_engine/posix_engine/posix_endpoint.h +8 -8
  135. data/src/core/lib/event_engine/posix_engine/posix_engine.cc +6 -5
  136. data/src/core/lib/event_engine/posix_engine/posix_engine.h +0 -1
  137. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.cc +6 -32
  138. data/src/core/lib/event_engine/posix_engine/posix_engine_listener.h +0 -3
  139. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.cc +27 -18
  140. data/src/core/lib/event_engine/posix_engine/tcp_socket_utils.h +0 -3
  141. data/src/core/lib/event_engine/resolved_address.cc +2 -1
  142. data/src/core/lib/event_engine/windows/win_socket.cc +0 -1
  143. data/src/core/lib/event_engine/windows/windows_endpoint.cc +129 -82
  144. data/src/core/lib/event_engine/windows/windows_endpoint.h +21 -5
  145. data/src/core/lib/event_engine/windows/windows_engine.cc +39 -18
  146. data/src/core/lib/event_engine/windows/windows_engine.h +2 -1
  147. data/src/core/lib/event_engine/windows/windows_listener.cc +370 -0
  148. data/src/core/lib/event_engine/windows/windows_listener.h +155 -0
  149. data/src/core/lib/experiments/config.cc +3 -10
  150. data/src/core/lib/experiments/experiments.cc +7 -0
  151. data/src/core/lib/experiments/experiments.h +9 -1
  152. data/src/core/lib/gpr/log.cc +15 -28
  153. data/src/core/lib/gprpp/fork.cc +8 -14
  154. data/src/core/lib/gprpp/orphanable.h +4 -3
  155. data/src/core/lib/gprpp/per_cpu.h +9 -3
  156. data/src/core/lib/gprpp/{thd_posix.cc → posix/thd.cc} +49 -37
  157. data/src/core/lib/gprpp/ref_counted.h +33 -34
  158. data/src/core/lib/gprpp/thd.h +16 -0
  159. data/src/core/lib/gprpp/time.cc +1 -0
  160. data/src/core/lib/gprpp/time.h +4 -4
  161. data/src/core/lib/gprpp/{thd_windows.cc → windows/thd.cc} +2 -2
  162. data/src/core/lib/iomgr/call_combiner.h +2 -2
  163. data/src/core/lib/iomgr/endpoint_cfstream.cc +4 -2
  164. data/src/core/lib/iomgr/ev_posix.cc +13 -53
  165. data/src/core/lib/iomgr/ev_posix.h +0 -3
  166. data/src/core/lib/iomgr/event_engine_shims/endpoint.cc +103 -76
  167. data/src/core/lib/iomgr/iomgr.cc +4 -8
  168. data/src/core/lib/iomgr/iomgr_windows.cc +8 -2
  169. data/src/core/lib/iomgr/pollset_set_windows.cc +9 -9
  170. data/src/core/lib/iomgr/pollset_windows.cc +1 -1
  171. data/src/core/lib/iomgr/socket_utils_common_posix.cc +16 -3
  172. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -2
  173. data/src/core/lib/iomgr/tcp_posix.cc +0 -1
  174. data/src/core/lib/iomgr/tcp_server_posix.cc +19 -55
  175. data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -12
  176. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +0 -21
  177. data/src/core/lib/iomgr/tcp_server_windows.cc +176 -9
  178. data/src/core/lib/iomgr/tcp_windows.cc +12 -8
  179. data/src/core/lib/load_balancing/lb_policy.cc +9 -13
  180. data/src/core/lib/load_balancing/lb_policy.h +4 -2
  181. data/src/core/lib/promise/activity.cc +22 -6
  182. data/src/core/lib/promise/activity.h +61 -24
  183. data/src/core/lib/promise/cancel_callback.h +77 -0
  184. data/src/core/lib/promise/detail/basic_seq.h +1 -1
  185. data/src/core/lib/promise/detail/promise_factory.h +4 -0
  186. data/src/core/lib/promise/for_each.h +176 -0
  187. data/src/core/lib/promise/if.h +9 -0
  188. data/src/core/lib/promise/interceptor_list.h +23 -2
  189. data/src/core/lib/promise/latch.h +89 -3
  190. data/src/core/lib/promise/loop.h +13 -9
  191. data/src/core/lib/promise/map.h +7 -0
  192. data/src/core/lib/promise/party.cc +286 -0
  193. data/src/core/lib/promise/party.h +499 -0
  194. data/src/core/lib/promise/pipe.h +197 -57
  195. data/src/core/lib/promise/poll.h +48 -0
  196. data/src/core/lib/promise/promise.h +2 -2
  197. data/src/core/lib/resource_quota/arena.cc +19 -3
  198. data/src/core/lib/resource_quota/arena.h +119 -5
  199. data/src/core/lib/resource_quota/memory_quota.cc +1 -1
  200. data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +12 -35
  201. data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +1 -0
  202. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +0 -59
  203. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +10 -5
  204. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +1 -1
  205. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +13 -0
  206. data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +2 -0
  207. data/src/core/lib/security/security_connector/load_system_roots_supported.cc +5 -9
  208. data/src/core/lib/security/security_connector/ssl_utils.cc +11 -25
  209. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +12 -0
  210. data/src/core/lib/security/transport/secure_endpoint.cc +4 -2
  211. data/src/core/lib/security/transport/server_auth_filter.cc +20 -2
  212. data/src/core/lib/slice/slice.cc +1 -1
  213. data/src/core/lib/surface/builtins.cc +2 -0
  214. data/src/core/lib/surface/call.cc +926 -1024
  215. data/src/core/lib/surface/call.h +10 -0
  216. data/src/core/lib/surface/lame_client.cc +1 -0
  217. data/src/core/lib/surface/validate_metadata.cc +42 -43
  218. data/src/core/lib/surface/validate_metadata.h +0 -9
  219. data/src/core/lib/surface/version.cc +2 -2
  220. data/src/core/lib/transport/batch_builder.cc +179 -0
  221. data/src/core/lib/transport/batch_builder.h +468 -0
  222. data/src/core/lib/transport/bdp_estimator.cc +7 -7
  223. data/src/core/lib/transport/bdp_estimator.h +10 -6
  224. data/src/core/lib/transport/custom_metadata.h +30 -0
  225. data/src/core/lib/transport/metadata_batch.cc +5 -2
  226. data/src/core/lib/transport/metadata_batch.h +17 -113
  227. data/src/core/lib/transport/parsed_metadata.h +6 -16
  228. data/src/core/lib/transport/timeout_encoding.cc +6 -1
  229. data/src/core/lib/transport/transport.cc +30 -2
  230. data/src/core/lib/transport/transport.h +70 -14
  231. data/src/core/lib/transport/transport_impl.h +7 -0
  232. data/src/core/lib/transport/transport_op_string.cc +52 -42
  233. data/src/core/plugin_registry/grpc_plugin_registry.cc +2 -2
  234. data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +1 -0
  235. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +21 -4
  236. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +5 -0
  237. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +1 -1
  238. data/src/core/tsi/ssl_transport_security.cc +4 -2
  239. data/src/ruby/lib/grpc/version.rb +1 -1
  240. data/third_party/abseil-cpp/absl/base/config.h +1 -1
  241. data/third_party/abseil-cpp/absl/flags/commandlineflag.cc +34 -0
  242. data/third_party/abseil-cpp/absl/flags/commandlineflag.h +200 -0
  243. data/third_party/abseil-cpp/absl/flags/config.h +68 -0
  244. data/third_party/abseil-cpp/absl/flags/declare.h +73 -0
  245. data/third_party/abseil-cpp/absl/flags/flag.cc +38 -0
  246. data/third_party/abseil-cpp/absl/flags/flag.h +310 -0
  247. data/{src/core/lib/gprpp/global_config_custom.h → third_party/abseil-cpp/absl/flags/internal/commandlineflag.cc} +11 -14
  248. data/third_party/abseil-cpp/absl/flags/internal/commandlineflag.h +68 -0
  249. data/third_party/abseil-cpp/absl/flags/internal/flag.cc +615 -0
  250. data/third_party/abseil-cpp/absl/flags/internal/flag.h +800 -0
  251. data/third_party/abseil-cpp/absl/flags/internal/flag_msvc.inc +116 -0
  252. data/third_party/abseil-cpp/absl/flags/internal/path_util.h +62 -0
  253. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.cc +65 -0
  254. data/third_party/abseil-cpp/absl/flags/internal/private_handle_accessor.h +61 -0
  255. data/third_party/abseil-cpp/absl/flags/internal/program_name.cc +60 -0
  256. data/third_party/abseil-cpp/absl/flags/internal/program_name.h +50 -0
  257. data/third_party/abseil-cpp/absl/flags/internal/registry.h +97 -0
  258. data/third_party/abseil-cpp/absl/flags/internal/sequence_lock.h +187 -0
  259. data/third_party/abseil-cpp/absl/flags/marshalling.cc +241 -0
  260. data/third_party/abseil-cpp/absl/flags/marshalling.h +356 -0
  261. data/third_party/abseil-cpp/absl/flags/reflection.cc +354 -0
  262. data/third_party/abseil-cpp/absl/flags/reflection.h +90 -0
  263. data/third_party/abseil-cpp/absl/flags/usage_config.cc +165 -0
  264. data/third_party/abseil-cpp/absl/flags/usage_config.h +135 -0
  265. data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +12 -8
  266. data/third_party/boringssl-with-bazel/err_data.c +728 -712
  267. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +177 -177
  268. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +28 -55
  269. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +21 -23
  270. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_dup.c +20 -23
  271. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +66 -185
  272. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_i2d_fp.c +18 -21
  273. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_int.c +356 -311
  274. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +174 -194
  275. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +146 -210
  276. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_octet.c +6 -9
  277. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strex.c +346 -526
  278. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +110 -131
  279. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +130 -116
  280. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +93 -60
  281. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +93 -181
  282. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +242 -305
  283. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +41 -18
  284. data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +30 -33
  285. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +36 -33
  286. data/third_party/boringssl-with-bazel/src/crypto/asn1/f_string.c +29 -26
  287. data/third_party/boringssl-with-bazel/src/crypto/asn1/internal.h +133 -88
  288. data/third_party/boringssl-with-bazel/src/crypto/asn1/posix_time.c +230 -0
  289. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +791 -791
  290. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +526 -526
  291. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +114 -135
  292. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +201 -207
  293. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +21 -26
  294. data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +55 -68
  295. data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +2 -4
  296. data/third_party/boringssl-with-bazel/src/crypto/bio/bio.c +11 -7
  297. data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +4 -4
  298. data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +15 -9
  299. data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +4 -4
  300. data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +17 -10
  301. data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -3
  302. data/third_party/boringssl-with-bazel/src/crypto/bio/printf.c +0 -13
  303. data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -6
  304. data/third_party/boringssl-with-bazel/src/crypto/bio/socket_helper.c +2 -0
  305. data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +9 -5
  306. data/third_party/boringssl-with-bazel/src/crypto/bn_extra/convert.c +10 -23
  307. data/third_party/boringssl-with-bazel/src/crypto/buf/buf.c +2 -6
  308. data/third_party/boringssl-with-bazel/src/crypto/bytestring/asn1_compat.c +2 -1
  309. data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +29 -28
  310. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +161 -201
  311. data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +254 -39
  312. data/third_party/boringssl-with-bazel/src/crypto/bytestring/internal.h +2 -2
  313. data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +0 -2
  314. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/derive_key.c +4 -4
  315. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesctrhmac.c +9 -8
  316. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_aesgcmsiv.c +37 -75
  317. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_chacha20poly1305.c +8 -10
  318. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/cipher → cipher_extra}/e_des.c +100 -78
  319. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_null.c +1 -0
  320. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc2.c +1 -0
  321. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_rc4.c +2 -0
  322. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +6 -12
  323. data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -11
  324. data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +6 -10
  325. data/third_party/boringssl-with-bazel/src/crypto/conf/conf_def.h +0 -1
  326. data/third_party/boringssl-with-bazel/src/crypto/conf/internal.h +12 -0
  327. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_apple.c +74 -0
  328. data/third_party/boringssl-with-bazel/src/crypto/cpu_aarch64_freebsd.c +62 -0
  329. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-fuchsia.c → cpu_aarch64_fuchsia.c} +8 -7
  330. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-linux.c → cpu_aarch64_linux.c} +6 -4
  331. data/third_party/boringssl-with-bazel/src/crypto/{cpu-aarch64-win.c → cpu_aarch64_win.c} +4 -4
  332. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm.c → cpu_arm.c} +1 -1
  333. data/third_party/boringssl-with-bazel/src/crypto/cpu_arm_freebsd.c +55 -0
  334. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.c → cpu_arm_linux.c} +11 -90
  335. data/third_party/boringssl-with-bazel/src/crypto/{cpu-arm-linux.h → cpu_arm_linux.h} +0 -38
  336. data/third_party/boringssl-with-bazel/src/crypto/{cpu-intel.c → cpu_intel.c} +1 -2
  337. data/third_party/boringssl-with-bazel/src/crypto/crypto.c +25 -20
  338. data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +16 -27
  339. data/third_party/boringssl-with-bazel/src/crypto/curve25519/spake25519.c +17 -32
  340. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/des.c +232 -232
  341. data/third_party/boringssl-with-bazel/src/crypto/{fipsmodule/des → des}/internal.h +1 -1
  342. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/dh_asn1.c +1 -0
  343. data/third_party/boringssl-with-bazel/src/crypto/dh_extra/params.c +232 -29
  344. data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +0 -3
  345. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +39 -16
  346. data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa_asn1.c +37 -7
  347. data/third_party/boringssl-with-bazel/src/crypto/dsa/internal.h +3 -3
  348. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/ec_asn1.c +11 -36
  349. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +214 -99
  350. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +21 -5
  351. data/third_party/boringssl-with-bazel/src/crypto/ecdsa_extra/ecdsa_asn1.c +2 -4
  352. data/third_party/boringssl-with-bazel/src/crypto/err/err.c +83 -60
  353. data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +46 -12
  354. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +3 -3
  355. data/third_party/boringssl-with-bazel/src/crypto/evp/evp_ctx.c +25 -23
  356. data/third_party/boringssl-with-bazel/src/crypto/evp/internal.h +43 -9
  357. data/third_party/boringssl-with-bazel/src/crypto/evp/p_dsa_asn1.c +75 -44
  358. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec.c +19 -25
  359. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ec_asn1.c +96 -45
  360. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519.c +7 -8
  361. data/third_party/boringssl-with-bazel/src/crypto/evp/p_ed25519_asn1.c +26 -23
  362. data/third_party/boringssl-with-bazel/src/crypto/evp/p_hkdf.c +233 -0
  363. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa.c +5 -5
  364. data/third_party/boringssl-with-bazel/src/crypto/evp/p_rsa_asn1.c +42 -25
  365. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519.c +4 -5
  366. data/third_party/boringssl-with-bazel/src/crypto/evp/p_x25519_asn1.c +35 -47
  367. data/third_party/boringssl-with-bazel/src/crypto/evp/print.c +135 -244
  368. data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +2 -4
  369. data/third_party/boringssl-with-bazel/src/crypto/evp/sign.c +15 -10
  370. data/third_party/boringssl-with-bazel/src/crypto/ex_data.c +29 -15
  371. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +0 -2
  372. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +13 -14
  373. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/internal.h +3 -13
  374. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/key_wrap.c +13 -7
  375. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/mode_wrappers.c +9 -7
  376. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +35 -27
  377. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bn.c +16 -26
  378. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/bytes.c +88 -60
  379. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/cmp.c +4 -3
  380. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/ctx.c +0 -2
  381. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +1 -1
  382. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div_extra.c +1 -1
  383. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/exponentiation.c +99 -113
  384. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd.c +0 -1
  385. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +5 -3
  386. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/generic.c +112 -168
  387. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +86 -31
  388. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery.c +11 -6
  389. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/montgomery_inv.c +4 -5
  390. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/mul.c +4 -5
  391. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +13 -0
  392. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/random.c +13 -5
  393. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.c +19 -108
  394. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/rsaz_exp.h +19 -15
  395. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/shift.c +15 -16
  396. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +22 -21
  397. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/aead.c +3 -0
  398. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +79 -19
  399. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +102 -99
  400. data/third_party/boringssl-with-bazel/src/crypto/{cipher_extra → fipsmodule/cipher}/e_aesccm.c +52 -46
  401. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/internal.h +39 -0
  402. data/third_party/boringssl-with-bazel/src/crypto/{cmac → fipsmodule/cmac}/cmac.c +55 -11
  403. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/check.c +2 -3
  404. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/dh.c +21 -6
  405. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/dh/internal.h +56 -0
  406. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +5 -3
  407. data/third_party/boringssl-with-bazel/src/crypto/{evp → fipsmodule/digestsign}/digestsign.c +51 -15
  408. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +25 -25
  409. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +91 -17
  410. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_montgomery.c +5 -5
  411. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +34 -12
  412. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/oct.c +54 -23
  413. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p224-64.c +44 -60
  414. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64-table.h → p256-nistz-table.h} +1 -1
  415. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.c → p256-nistz.c} +60 -53
  416. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/{p256-x86_64.h → p256-nistz.h} +5 -13
  417. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +48 -36
  418. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +2 -8
  419. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple.c +2 -7
  420. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +2 -3
  421. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/wnaf.c +0 -1
  422. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdh/ecdh.c +8 -0
  423. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +42 -14
  424. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +6 -0
  425. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/hmac/hmac.c +52 -24
  426. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +9 -15
  427. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +1 -4
  428. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +2 -4
  429. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +71 -43
  430. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +14 -16
  431. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +1 -4
  432. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/ctrdrbg.c +31 -13
  433. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +16 -8
  434. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +3 -2
  435. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +2 -2
  436. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +9 -38
  437. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +73 -59
  438. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +11 -45
  439. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/blinding.c +0 -1
  440. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/internal.h +22 -0
  441. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/padding.c +63 -52
  442. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +107 -62
  443. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +58 -31
  444. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +41 -0
  445. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +523 -422
  446. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/internal.h +89 -0
  447. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/service_indicator/service_indicator.c +334 -0
  448. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/internal.h +3 -12
  449. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +2 -0
  450. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +12 -8
  451. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +14 -12
  452. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/tls/kdf.c +19 -6
  453. data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +32 -14
  454. data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +65 -29
  455. data/third_party/boringssl-with-bazel/src/crypto/internal.h +373 -18
  456. data/third_party/boringssl-with-bazel/src/crypto/kyber/internal.h +61 -0
  457. data/third_party/boringssl-with-bazel/src/crypto/kyber/keccak.c +205 -0
  458. data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +13 -1
  459. data/third_party/boringssl-with-bazel/src/crypto/mem.c +220 -13
  460. data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +19 -7
  461. data/third_party/boringssl-with-bazel/src/crypto/obj/obj_dat.h +13 -1
  462. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +81 -90
  463. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +150 -245
  464. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +629 -613
  465. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_oth.c +17 -17
  466. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +142 -149
  467. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +99 -131
  468. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_x509.c +0 -1
  469. data/third_party/boringssl-with-bazel/src/crypto/pem/pem_xaux.c +0 -1
  470. data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +0 -1
  471. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +0 -3
  472. data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +36 -66
  473. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +31 -38
  474. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_arm.c +2 -1
  475. data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305_vec.c +18 -31
  476. data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +1 -0
  477. data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +8 -1
  478. data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +129 -5
  479. data/third_party/boringssl-with-bazel/src/crypto/refcount_c11.c +0 -2
  480. data/third_party/boringssl-with-bazel/src/crypto/refcount_lock.c +3 -4
  481. data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +8 -11
  482. data/third_party/boringssl-with-bazel/src/crypto/stack/stack.c +61 -27
  483. data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +10 -13
  484. data/third_party/boringssl-with-bazel/src/crypto/thread_win.c +10 -13
  485. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +66 -34
  486. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +190 -77
  487. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +81 -284
  488. data/third_party/boringssl-with-bazel/src/crypto/trust_token/voprf.c +109 -42
  489. data/third_party/boringssl-with-bazel/src/crypto/x509/a_digest.c +22 -24
  490. data/third_party/boringssl-with-bazel/src/crypto/x509/a_sign.c +54 -55
  491. data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +32 -34
  492. data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +32 -16
  493. data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +465 -704
  494. data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +284 -331
  495. data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +183 -178
  496. data/third_party/boringssl-with-bazel/src/crypto/x509/i2d_pr.c +11 -15
  497. data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +67 -50
  498. data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +153 -150
  499. data/third_party/boringssl-with-bazel/src/crypto/x509/policy.c +786 -0
  500. data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +95 -102
  501. data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +72 -57
  502. data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +12 -10
  503. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +227 -252
  504. data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +52 -47
  505. data/third_party/boringssl-with-bazel/src/crypto/x509/x509.c +3 -4
  506. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +230 -224
  507. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +161 -327
  508. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_d2.c +37 -33
  509. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_def.c +14 -31
  510. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +55 -85
  511. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +534 -618
  512. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +129 -122
  513. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +116 -182
  514. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +132 -132
  515. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +181 -202
  516. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_txt.c +64 -79
  517. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +175 -160
  518. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +1865 -2050
  519. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +433 -462
  520. data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +156 -163
  521. data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +267 -263
  522. data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +40 -15
  523. data/third_party/boringssl-with-bazel/src/crypto/x509/x509spki.c +59 -63
  524. data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +63 -67
  525. data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +114 -144
  526. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +25 -26
  527. data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +326 -415
  528. data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +8 -7
  529. data/third_party/boringssl-with-bazel/src/crypto/x509/x_info.c +30 -28
  530. data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +354 -370
  531. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pkey.c +37 -32
  532. data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +116 -119
  533. data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +36 -26
  534. data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +3 -4
  535. data/third_party/boringssl-with-bazel/src/crypto/x509/x_spki.c +10 -13
  536. data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +3 -4
  537. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +419 -261
  538. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +113 -105
  539. data/third_party/boringssl-with-bazel/src/crypto/x509v3/ext_dat.h +11 -15
  540. data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +78 -170
  541. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +126 -131
  542. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akeya.c +3 -4
  543. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +465 -469
  544. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bcons.c +56 -54
  545. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +46 -49
  546. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +309 -346
  547. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +341 -365
  548. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +429 -393
  549. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +29 -24
  550. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_extku.c +65 -59
  551. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_genn.c +125 -121
  552. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ia5.c +43 -42
  553. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_info.c +122 -125
  554. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_int.c +50 -20
  555. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +247 -253
  556. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +386 -389
  557. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ocsp.c +45 -32
  558. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcons.c +57 -54
  559. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pmaps.c +63 -67
  560. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +143 -136
  561. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +664 -707
  562. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +83 -75
  563. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +1062 -1146
  564. data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +8 -4
  565. data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +28 -48
  566. data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +211 -187
  567. data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +26 -78
  568. data/third_party/boringssl-with-bazel/src/include/openssl/base.h +19 -14
  569. data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +21 -2
  570. data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +49 -17
  571. data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +99 -29
  572. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +49 -60
  573. data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +2 -15
  574. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +16 -200
  575. data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +34 -0
  576. data/third_party/boringssl-with-bazel/src/include/openssl/ctrdrbg.h +82 -0
  577. data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +32 -30
  578. data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +7 -0
  579. data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +4 -0
  580. data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +48 -5
  581. data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +37 -8
  582. data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +1 -0
  583. data/third_party/boringssl-with-bazel/src/include/openssl/err.h +33 -5
  584. data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +22 -30
  585. data/third_party/boringssl-with-bazel/src/include/openssl/ex_data.h +1 -1
  586. data/third_party/boringssl-with-bazel/src/include/openssl/hmac.h +7 -0
  587. data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +41 -16
  588. data/third_party/boringssl-with-bazel/src/include/openssl/kdf.h +91 -0
  589. data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +74 -8
  590. data/third_party/boringssl-with-bazel/src/include/openssl/nid.h +13 -0
  591. data/third_party/boringssl-with-bazel/src/include/openssl/opensslconf.h +1 -0
  592. data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +11 -15
  593. data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +8 -0
  594. data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +12 -1
  595. data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +7 -4
  596. data/third_party/boringssl-with-bazel/src/include/openssl/service_indicator.h +96 -0
  597. data/third_party/boringssl-with-bazel/src/include/openssl/span.h +13 -21
  598. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +139 -75
  599. data/third_party/boringssl-with-bazel/src/include/openssl/ssl3.h +1 -6
  600. data/third_party/boringssl-with-bazel/src/include/openssl/stack.h +384 -286
  601. data/third_party/boringssl-with-bazel/src/include/openssl/thread.h +5 -6
  602. data/third_party/boringssl-with-bazel/src/include/openssl/time.h +41 -0
  603. data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +18 -7
  604. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +49 -23
  605. data/third_party/boringssl-with-bazel/src/include/openssl/type_check.h +0 -11
  606. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1592 -1074
  607. data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +202 -205
  608. data/third_party/boringssl-with-bazel/src/ssl/bio_ssl.cc +2 -2
  609. data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +6 -13
  610. data/third_party/boringssl-with-bazel/src/ssl/d1_pkt.cc +17 -18
  611. data/third_party/boringssl-with-bazel/src/ssl/dtls_method.cc +4 -5
  612. data/third_party/boringssl-with-bazel/src/ssl/dtls_record.cc +25 -33
  613. data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +34 -20
  614. data/third_party/boringssl-with-bazel/src/ssl/extensions.cc +65 -34
  615. data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +198 -54
  616. data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +5 -5
  617. data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +32 -28
  618. data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +76 -44
  619. data/third_party/boringssl-with-bazel/src/ssl/internal.h +130 -98
  620. data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +27 -11
  621. data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +2 -2
  622. data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +91 -75
  623. data/third_party/boringssl-with-bazel/src/ssl/ssl_aead_ctx.cc +8 -10
  624. data/third_party/boringssl-with-bazel/src/ssl/ssl_asn1.cc +39 -65
  625. data/third_party/boringssl-with-bazel/src/ssl/ssl_buffer.cc +1 -0
  626. data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +5 -9
  627. data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +30 -33
  628. data/third_party/boringssl-with-bazel/src/ssl/ssl_file.cc +77 -100
  629. data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +120 -107
  630. data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +164 -30
  631. data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +150 -60
  632. data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +22 -11
  633. data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +22 -6
  634. data/third_party/boringssl-with-bazel/src/ssl/t1_enc.cc +15 -13
  635. data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +5 -43
  636. data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +7 -4
  637. data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +2 -2
  638. data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +22 -34
  639. data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +2 -2
  640. data/third_party/boringssl-with-bazel/src/ssl/tls_record.cc +16 -98
  641. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_32.h +1241 -657
  642. data/third_party/boringssl-with-bazel/src/third_party/fiat/curve25519_64.h +751 -398
  643. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +3551 -1938
  644. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_64.h +1272 -487
  645. metadata +103 -70
  646. data/src/core/ext/filters/client_channel/lb_call_state_internal.h +0 -39
  647. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.cc +0 -30
  648. data/src/core/ext/filters/client_channel/resolver/dns/dns_resolver_selection.h +0 -29
  649. data/src/core/lib/gprpp/global_config.h +0 -93
  650. data/src/core/lib/gprpp/global_config_env.cc +0 -140
  651. data/src/core/lib/gprpp/global_config_env.h +0 -133
  652. data/src/core/lib/gprpp/global_config_generic.h +0 -40
  653. data/src/core/lib/promise/intra_activity_waiter.h +0 -55
  654. data/src/core/lib/security/security_connector/ssl_utils_config.cc +0 -32
  655. data/src/core/lib/security/security_connector/ssl_utils_config.h +0 -29
  656. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_enum.c +0 -195
  657. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +0 -83
  658. data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +0 -236
  659. data/third_party/boringssl-with-bazel/src/crypto/asn1/charmap.h +0 -15
  660. data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +0 -206
  661. data/third_party/boringssl-with-bazel/src/crypto/cpu-ppc64le.c +0 -38
  662. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1-altivec.c +0 -361
  663. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +0 -287
  664. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +0 -132
  665. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +0 -155
  666. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +0 -131
  667. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +0 -189
  668. data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +0 -843
  669. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +0 -289
  670. data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pcia.c +0 -57
  671. /data/src/core/lib/gpr/{log_android.cc → android/log.cc} +0 -0
  672. /data/src/core/lib/gpr/{cpu_iphone.cc → iphone/cpu.cc} +0 -0
  673. /data/src/core/lib/gpr/{cpu_linux.cc → linux/cpu.cc} +0 -0
  674. /data/src/core/lib/gpr/{log_linux.cc → linux/log.cc} +0 -0
  675. /data/src/core/lib/gpr/{tmpfile_msys.cc → msys/tmpfile.cc} +0 -0
  676. /data/src/core/lib/gpr/{cpu_posix.cc → posix/cpu.cc} +0 -0
  677. /data/src/core/lib/gpr/{log_posix.cc → posix/log.cc} +0 -0
  678. /data/src/core/lib/gpr/{string_posix.cc → posix/string.cc} +0 -0
  679. /data/src/core/lib/gpr/{sync_posix.cc → posix/sync.cc} +0 -0
  680. /data/src/core/lib/gpr/{time_posix.cc → posix/time.cc} +0 -0
  681. /data/src/core/lib/gpr/{tmpfile_posix.cc → posix/tmpfile.cc} +0 -0
  682. /data/src/core/lib/gpr/{cpu_windows.cc → windows/cpu.cc} +0 -0
  683. /data/src/core/lib/gpr/{log_windows.cc → windows/log.cc} +0 -0
  684. /data/src/core/lib/gpr/{string_windows.cc → windows/string.cc} +0 -0
  685. /data/src/core/lib/gpr/{string_util_windows.cc → windows/string_util.cc} +0 -0
  686. /data/src/core/lib/gpr/{sync_windows.cc → windows/sync.cc} +0 -0
  687. /data/src/core/lib/gpr/{time_windows.cc → windows/time.cc} +0 -0
  688. /data/src/core/lib/gpr/{tmpfile_windows.cc → windows/tmpfile.cc} +0 -0
  689. /data/src/core/lib/gprpp/{env_linux.cc → linux/env.cc} +0 -0
  690. /data/src/core/lib/gprpp/{env_posix.cc → posix/env.cc} +0 -0
  691. /data/src/core/lib/gprpp/{stat_posix.cc → posix/stat.cc} +0 -0
  692. /data/src/core/lib/gprpp/{env_windows.cc → windows/env.cc} +0 -0
  693. /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
  }