grpc 1.27.0.pre1 → 1.30.1

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 (972) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +8023 -11437
  3. data/include/grpc/grpc.h +2 -2
  4. data/include/grpc/grpc_security.h +30 -9
  5. data/include/grpc/grpc_security_constants.h +1 -0
  6. data/include/grpc/impl/codegen/grpc_types.h +24 -21
  7. data/include/grpc/impl/codegen/port_platform.h +13 -2
  8. data/include/grpc/impl/codegen/sync.h +5 -3
  9. data/include/grpc/impl/codegen/sync_abseil.h +36 -0
  10. data/include/grpc/module.modulemap +25 -37
  11. data/include/grpc/support/sync_abseil.h +26 -0
  12. data/src/core/ext/filters/client_channel/backend_metric.cc +7 -4
  13. data/src/core/ext/filters/client_channel/client_channel.cc +282 -249
  14. data/src/core/ext/filters/client_channel/client_channel_channelz.cc +31 -47
  15. data/src/core/ext/filters/client_channel/client_channel_channelz.h +1 -3
  16. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +3 -2
  17. data/src/core/ext/filters/client_channel/health/health_check_client.cc +7 -22
  18. data/src/core/ext/filters/client_channel/health/health_check_client.h +3 -3
  19. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +1 -1
  20. data/src/core/ext/filters/client_channel/http_proxy.cc +21 -11
  21. data/src/core/ext/filters/client_channel/lb_policy.cc +19 -18
  22. data/src/core/ext/filters/client_channel/lb_policy.h +42 -33
  23. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +83 -0
  24. data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +99 -0
  25. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +297 -0
  26. data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.h +83 -0
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +271 -465
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +8 -7
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +3 -2
  30. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +18 -21
  31. data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +871 -0
  32. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +10 -14
  33. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +5 -4
  34. data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +734 -0
  35. data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +148 -98
  36. data/src/core/ext/filters/client_channel/lb_policy/xds/eds.cc +938 -0
  37. data/src/core/ext/filters/client_channel/lb_policy/xds/lrs.cc +528 -0
  38. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -2
  39. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +834 -0
  40. data/src/core/ext/filters/client_channel/lb_policy_factory.h +3 -3
  41. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +49 -77
  42. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
  43. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +2 -1
  44. data/src/core/ext/filters/client_channel/parse_address.cc +22 -21
  45. data/src/core/ext/filters/client_channel/resolver.cc +5 -8
  46. data/src/core/ext/filters/client_channel/resolver.h +12 -14
  47. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +120 -132
  48. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.cc +35 -35
  49. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +8 -7
  50. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +17 -21
  51. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
  52. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +72 -117
  53. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +167 -121
  54. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +3 -2
  55. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +3 -2
  56. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +42 -45
  57. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +94 -103
  58. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +0 -4
  59. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +5 -5
  60. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +61 -10
  61. data/src/core/ext/filters/client_channel/resolver_factory.h +2 -2
  62. data/src/core/ext/filters/client_channel/resolver_registry.cc +6 -3
  63. data/src/core/ext/filters/client_channel/resolver_registry.h +8 -8
  64. data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +242 -300
  65. data/src/core/ext/filters/client_channel/resolver_result_parsing.h +21 -18
  66. data/src/core/ext/filters/client_channel/resolving_lb_policy.cc +56 -206
  67. data/src/core/ext/filters/client_channel/resolving_lb_policy.h +11 -14
  68. data/src/core/ext/filters/client_channel/server_address.h +3 -2
  69. data/src/core/ext/filters/client_channel/service_config.cc +144 -253
  70. data/src/core/ext/filters/client_channel/service_config.h +32 -109
  71. data/src/core/ext/filters/client_channel/service_config_call_data.h +68 -0
  72. data/src/core/ext/filters/client_channel/service_config_parser.cc +87 -0
  73. data/src/core/ext/filters/client_channel/service_config_parser.h +89 -0
  74. data/src/core/ext/filters/client_channel/subchannel.cc +54 -24
  75. data/src/core/ext/filters/client_channel/subchannel.h +35 -11
  76. data/src/core/ext/filters/client_channel/xds/xds_api.cc +1381 -301
  77. data/src/core/ext/filters/client_channel/xds/xds_api.h +211 -152
  78. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.cc +214 -359
  79. data/src/core/ext/filters/client_channel/xds/xds_bootstrap.h +28 -44
  80. data/src/core/ext/filters/client_channel/xds/xds_channel.h +3 -1
  81. data/src/core/ext/filters/client_channel/xds/xds_channel_secure.cc +16 -11
  82. data/src/core/ext/filters/client_channel/xds/xds_client.cc +1118 -472
  83. data/src/core/ext/filters/client_channel/xds/xds_client.h +116 -45
  84. data/src/core/ext/filters/client_channel/xds/xds_client_stats.cc +59 -135
  85. data/src/core/ext/filters/client_channel/xds/xds_client_stats.h +122 -137
  86. data/src/core/ext/filters/http/client/http_client_filter.cc +23 -28
  87. data/src/core/ext/filters/http/client_authority_filter.cc +4 -4
  88. data/src/core/ext/filters/http/http_filters_plugin.cc +27 -12
  89. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +258 -221
  90. data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +358 -0
  91. data/src/core/ext/filters/http/message_compress/message_decompress_filter.h +29 -0
  92. data/src/core/ext/filters/message_size/message_size_filter.cc +38 -44
  93. data/src/core/ext/filters/message_size/message_size_filter.h +5 -5
  94. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +7 -10
  95. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +4 -6
  96. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +26 -27
  97. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +1 -0
  98. data/src/core/ext/transport/chttp2/transport/flow_control.cc +3 -3
  99. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +2 -3
  100. data/src/core/ext/transport/chttp2/transport/frame_ping.h +2 -3
  101. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +2 -3
  102. data/src/core/ext/transport/chttp2/transport/frame_settings.h +2 -3
  103. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +2 -3
  104. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +29 -16
  105. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -3
  106. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +2 -3
  107. data/src/core/ext/transport/chttp2/transport/hpack_table.h +2 -2
  108. data/src/core/ext/transport/chttp2/transport/http2_settings.h +4 -5
  109. data/src/core/ext/transport/chttp2/transport/huffsyms.h +2 -3
  110. data/src/core/ext/transport/chttp2/transport/internal.h +14 -21
  111. data/src/core/ext/transport/chttp2/transport/stream_map.h +2 -3
  112. data/src/core/ext/transport/chttp2/transport/writing.cc +16 -9
  113. data/src/core/ext/transport/inproc/inproc_transport.cc +41 -42
  114. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +17 -0
  115. data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +30 -0
  116. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +27 -0
  117. data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +54 -0
  118. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.c +5 -205
  119. data/src/core/ext/upb-generated/envoy/api/v2/auth/cert.upb.h +5 -788
  120. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.c +114 -0
  121. data/src/core/ext/upb-generated/envoy/api/v2/auth/common.upb.h +418 -0
  122. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.c +72 -0
  123. data/src/core/ext/upb-generated/envoy/api/v2/auth/secret.upb.h +197 -0
  124. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.c +105 -0
  125. data/src/core/ext/upb-generated/envoy/api/v2/auth/tls.upb.h +378 -0
  126. data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.c +5 -362
  127. data/src/core/ext/upb-generated/envoy/api/v2/cds.upb.h +14 -1337
  128. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.c +403 -0
  129. data/src/core/ext/upb-generated/envoy/api/v2/cluster.upb.h +1447 -0
  130. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.c +30 -8
  131. data/src/core/ext/upb-generated/envoy/api/v2/cluster/circuit_breaker.upb.h +60 -0
  132. data/src/core/ext/upb-generated/envoy/api/v2/cluster/filter.upb.c +2 -0
  133. data/src/core/ext/upb-generated/envoy/api/v2/cluster/outlier_detection.upb.c +2 -0
  134. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.c +7 -4
  135. data/src/core/ext/upb-generated/envoy/api/v2/core/address.upb.h +6 -2
  136. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.c +35 -0
  137. data/src/core/ext/upb-generated/envoy/api/v2/core/backoff.upb.h +78 -0
  138. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.c +87 -23
  139. data/src/core/ext/upb-generated/envoy/api/v2/core/base.upb.h +262 -62
  140. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.c +20 -15
  141. data/src/core/ext/upb-generated/envoy/api/v2/core/config_source.upb.h +46 -32
  142. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.c +34 -0
  143. data/src/core/ext/upb-generated/envoy/api/v2/core/event_service_config.upb.h +72 -0
  144. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.c +27 -4
  145. data/src/core/ext/upb-generated/envoy/api/v2/core/grpc_service.upb.h +70 -0
  146. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.c +46 -25
  147. data/src/core/ext/upb-generated/envoy/api/v2/core/health_check.upb.h +98 -25
  148. data/src/core/ext/upb-generated/envoy/api/v2/core/http_uri.upb.c +2 -0
  149. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.c +77 -21
  150. data/src/core/ext/upb-generated/envoy/api/v2/core/protocol.upb.h +201 -4
  151. data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.c +34 -0
  152. data/src/core/ext/upb-generated/envoy/api/v2/core/socket_option.upb.h +89 -0
  153. data/src/core/ext/upb-generated/envoy/api/v2/discovery.upb.c +2 -0
  154. data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.c +8 -68
  155. data/src/core/ext/upb-generated/envoy/api/v2/eds.upb.h +14 -201
  156. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.c +92 -0
  157. data/src/core/ext/upb-generated/envoy/api/v2/endpoint.upb.h +240 -0
  158. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.c +2 -71
  159. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint.upb.h +3 -228
  160. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.c +91 -0
  161. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/endpoint_components.upb.h +266 -0
  162. data/src/core/ext/upb-generated/envoy/api/v2/endpoint/load_report.upb.c +2 -0
  163. data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.c +31 -0
  164. data/src/core/ext/upb-generated/envoy/api/v2/lds.upb.h +53 -0
  165. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.c +109 -0
  166. data/src/core/ext/upb-generated/envoy/api/v2/listener.upb.h +399 -0
  167. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.c +18 -0
  168. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener.upb.h +33 -0
  169. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.c +145 -0
  170. data/src/core/ext/upb-generated/envoy/api/v2/listener/listener_components.upb.h +527 -0
  171. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.c +43 -0
  172. data/src/core/ext/upb-generated/envoy/api/v2/listener/udp_listener_config.upb.h +112 -0
  173. data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.c +30 -0
  174. data/src/core/ext/upb-generated/envoy/api/v2/rds.upb.h +53 -0
  175. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.c +63 -0
  176. data/src/core/ext/upb-generated/envoy/api/v2/route.upb.h +199 -0
  177. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.c +18 -0
  178. data/src/core/ext/upb-generated/envoy/api/v2/route/route.upb.h +33 -0
  179. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.c +815 -0
  180. data/src/core/ext/upb-generated/envoy/api/v2/route/route_components.upb.h +3032 -0
  181. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.c +59 -0
  182. data/src/core/ext/upb-generated/envoy/api/v2/scoped_route.upb.h +134 -0
  183. data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.c +28 -0
  184. data/src/core/ext/upb-generated/envoy/api/v2/srds.upb.h +53 -0
  185. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.c +228 -0
  186. data/src/core/ext/upb-generated/envoy/config/filter/accesslog/v2/accesslog.upb.h +725 -0
  187. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.c +316 -0
  188. data/src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.upb.h +1132 -0
  189. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.c +33 -0
  190. data/src/core/ext/upb-generated/envoy/config/listener/v2/api_listener.upb.h +65 -0
  191. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.c +51 -0
  192. data/src/core/ext/upb-generated/envoy/config/trace/v2/http_tracer.upb.h +125 -0
  193. data/src/core/ext/upb-generated/envoy/service/discovery/v2/ads.upb.c +1 -0
  194. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.c +4 -2
  195. data/src/core/ext/upb-generated/envoy/service/load_stats/v2/lrs.upb.h +4 -0
  196. data/src/core/ext/upb-generated/envoy/type/http.upb.c +1 -0
  197. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.c +63 -0
  198. data/src/core/ext/upb-generated/envoy/type/matcher/regex.upb.h +144 -0
  199. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.c +53 -0
  200. data/src/core/ext/upb-generated/envoy/type/matcher/string.upb.h +133 -0
  201. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.c +88 -0
  202. data/src/core/ext/upb-generated/envoy/type/metadata/v2/metadata.upb.h +258 -0
  203. data/src/core/ext/upb-generated/envoy/type/percent.upb.c +1 -0
  204. data/src/core/ext/upb-generated/envoy/type/range.upb.c +12 -0
  205. data/src/core/ext/upb-generated/envoy/type/range.upb.h +27 -0
  206. data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.c +29 -0
  207. data/src/core/ext/upb-generated/envoy/type/semantic_version.upb.h +62 -0
  208. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.c +89 -0
  209. data/src/core/ext/upb-generated/envoy/type/tracing/v2/custom_tag.upb.h +249 -0
  210. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +9 -8
  211. data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +30 -24
  212. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +30 -27
  213. data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +64 -52
  214. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +48 -0
  215. data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +104 -0
  216. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +17 -0
  217. data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +30 -0
  218. data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +28 -0
  219. data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +65 -0
  220. data/src/core/ext/upb-generated/validate/validate.upb.c +44 -39
  221. data/src/core/ext/upb-generated/validate/validate.upb.h +155 -119
  222. data/src/core/lib/channel/channel_args.cc +15 -14
  223. data/src/core/lib/channel/channel_args.h +3 -1
  224. data/src/core/lib/channel/channel_stack.h +20 -13
  225. data/src/core/lib/channel/channel_trace.cc +32 -41
  226. data/src/core/lib/channel/channel_trace.h +3 -3
  227. data/src/core/lib/channel/channelz.cc +163 -254
  228. data/src/core/lib/channel/channelz.h +15 -17
  229. data/src/core/lib/channel/channelz_registry.cc +52 -77
  230. data/src/core/lib/channel/channelz_registry.h +4 -4
  231. data/src/core/lib/channel/connected_channel.cc +7 -5
  232. data/src/core/lib/channel/context.h +1 -1
  233. data/src/core/lib/channel/handshaker.cc +11 -13
  234. data/src/core/lib/channel/handshaker.h +4 -2
  235. data/src/core/lib/channel/handshaker_registry.cc +5 -17
  236. data/src/core/lib/channel/status_util.cc +2 -3
  237. data/src/core/lib/compression/message_compress.cc +5 -1
  238. data/src/core/lib/debug/stats.cc +21 -27
  239. data/src/core/lib/debug/stats.h +3 -1
  240. data/src/core/lib/gpr/spinlock.h +2 -3
  241. data/src/core/lib/gpr/string.cc +2 -26
  242. data/src/core/lib/gpr/string.h +0 -16
  243. data/src/core/lib/gpr/sync_abseil.cc +116 -0
  244. data/src/core/lib/gpr/sync_posix.cc +8 -5
  245. data/src/core/lib/gpr/sync_windows.cc +4 -2
  246. data/src/core/lib/gpr/time.cc +4 -0
  247. data/src/core/lib/gpr/time_posix.cc +1 -1
  248. data/src/core/lib/gprpp/atomic.h +6 -6
  249. data/src/core/lib/gprpp/fork.cc +1 -1
  250. data/src/core/lib/gprpp/host_port.cc +30 -36
  251. data/src/core/lib/gprpp/host_port.h +14 -17
  252. data/src/core/lib/gprpp/map.h +5 -11
  253. data/src/core/lib/gprpp/memory.h +2 -6
  254. data/src/core/lib/gprpp/ref_counted_ptr.h +5 -0
  255. data/src/core/lib/gprpp/sync.h +9 -0
  256. data/src/core/lib/http/format_request.cc +46 -65
  257. data/src/core/lib/http/httpcli.cc +2 -3
  258. data/src/core/lib/http/httpcli.h +2 -3
  259. data/src/core/lib/http/httpcli_security_connector.cc +5 -5
  260. data/src/core/lib/http/parser.h +2 -3
  261. data/src/core/lib/iomgr/buffer_list.cc +36 -35
  262. data/src/core/lib/iomgr/buffer_list.h +22 -21
  263. data/src/core/lib/iomgr/call_combiner.h +3 -2
  264. data/src/core/lib/iomgr/cfstream_handle.cc +3 -2
  265. data/src/core/lib/iomgr/closure.h +2 -3
  266. data/src/core/lib/iomgr/dualstack_socket_posix.cc +47 -0
  267. data/src/core/lib/iomgr/endpoint_cfstream.cc +2 -3
  268. data/src/core/lib/iomgr/endpoint_pair.h +2 -3
  269. data/src/core/lib/iomgr/error.cc +6 -9
  270. data/src/core/lib/iomgr/error.h +4 -5
  271. data/src/core/lib/iomgr/ev_apple.cc +356 -0
  272. data/src/core/lib/iomgr/ev_apple.h +43 -0
  273. data/src/core/lib/iomgr/ev_epoll1_linux.cc +20 -23
  274. data/src/core/lib/iomgr/ev_epollex_linux.cc +14 -7
  275. data/src/core/lib/iomgr/ev_poll_posix.cc +3 -3
  276. data/src/core/lib/iomgr/ev_posix.cc +2 -3
  277. data/src/core/lib/iomgr/exec_ctx.h +14 -2
  278. data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +84 -20
  279. data/src/core/lib/iomgr/load_file.cc +1 -0
  280. data/src/core/lib/iomgr/pollset_set_custom.cc +10 -10
  281. data/src/core/lib/iomgr/pollset_uv.h +32 -0
  282. data/src/core/lib/iomgr/port.h +1 -0
  283. data/src/core/lib/iomgr/python_util.h +46 -0
  284. data/src/core/lib/iomgr/resolve_address.h +4 -6
  285. data/src/core/lib/iomgr/resolve_address_custom.cc +29 -39
  286. data/src/core/lib/iomgr/resolve_address_custom.h +4 -2
  287. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -11
  288. data/src/core/lib/iomgr/resolve_address_windows.cc +8 -17
  289. data/src/core/lib/iomgr/resource_quota.cc +4 -6
  290. data/src/core/lib/iomgr/sockaddr_utils.cc +23 -29
  291. data/src/core/lib/iomgr/sockaddr_utils.h +9 -14
  292. data/src/core/lib/iomgr/socket_factory_posix.h +2 -3
  293. data/src/core/lib/iomgr/socket_mutator.h +2 -3
  294. data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -26
  295. data/src/core/lib/iomgr/socket_utils_posix.h +3 -0
  296. data/src/core/lib/iomgr/tcp_client_cfstream.cc +5 -7
  297. data/src/core/lib/iomgr/tcp_client_posix.cc +25 -22
  298. data/src/core/lib/iomgr/tcp_client_posix.h +6 -6
  299. data/src/core/lib/iomgr/tcp_client_windows.cc +2 -3
  300. data/src/core/lib/iomgr/tcp_custom.cc +2 -3
  301. data/src/core/lib/iomgr/tcp_posix.cc +2 -1
  302. data/src/core/lib/iomgr/tcp_server_custom.cc +5 -9
  303. data/src/core/lib/iomgr/tcp_server_posix.cc +5 -4
  304. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +5 -4
  305. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +8 -11
  306. data/src/core/lib/iomgr/tcp_uv.cc +3 -2
  307. data/src/core/lib/iomgr/time_averaged_stats.h +2 -3
  308. data/src/core/lib/iomgr/timer_generic.cc +2 -3
  309. data/src/core/lib/iomgr/timer_generic.h +39 -0
  310. data/src/core/lib/iomgr/timer_heap.h +2 -3
  311. data/src/core/lib/iomgr/udp_server.cc +9 -14
  312. data/src/core/lib/iomgr/work_serializer.cc +155 -0
  313. data/src/core/lib/iomgr/work_serializer.h +65 -0
  314. data/src/core/lib/json/json.h +210 -79
  315. data/src/core/lib/json/json_reader.cc +469 -455
  316. data/src/core/lib/json/json_writer.cc +174 -169
  317. data/src/core/lib/security/credentials/alts/check_gcp_environment.cc +1 -1
  318. data/src/core/lib/security/credentials/composite/composite_credentials.cc +12 -0
  319. data/src/core/lib/security/credentials/composite/composite_credentials.h +6 -3
  320. data/src/core/lib/security/credentials/credentials.cc +0 -84
  321. data/src/core/lib/security/credentials/credentials.h +8 -59
  322. data/src/core/lib/security/credentials/fake/fake_credentials.h +4 -0
  323. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +9 -12
  324. data/src/core/lib/security/credentials/iam/iam_credentials.cc +8 -6
  325. data/src/core/lib/security/credentials/iam/iam_credentials.h +4 -0
  326. data/src/core/lib/security/credentials/jwt/json_token.cc +26 -56
  327. data/src/core/lib/security/credentials/jwt/json_token.h +4 -6
  328. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +8 -18
  329. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +12 -0
  330. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +151 -168
  331. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +4 -6
  332. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +91 -60
  333. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +10 -4
  334. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +13 -0
  335. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +2 -0
  336. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +23 -13
  337. data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +40 -12
  338. data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +21 -6
  339. data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +7 -7
  340. data/src/core/lib/security/security_connector/load_system_roots_linux.cc +3 -2
  341. data/src/core/lib/security/security_connector/local/local_security_connector.cc +6 -8
  342. data/src/core/lib/security/security_connector/security_connector.h +1 -1
  343. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +20 -37
  344. data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +4 -6
  345. data/src/core/lib/security/security_connector/ssl_utils.cc +62 -13
  346. data/src/core/lib/security/security_connector/ssl_utils.h +12 -11
  347. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +101 -52
  348. data/src/core/lib/security/security_connector/tls/tls_security_connector.h +32 -6
  349. data/src/core/lib/security/transport/auth_filters.h +0 -5
  350. data/src/core/lib/security/transport/client_auth_filter.cc +1 -2
  351. data/src/core/lib/security/transport/security_handshaker.cc +2 -2
  352. data/src/core/lib/security/util/json_util.cc +22 -15
  353. data/src/core/lib/security/util/json_util.h +2 -2
  354. data/src/core/lib/slice/slice_intern.cc +2 -3
  355. data/src/core/lib/slice/slice_internal.h +14 -0
  356. data/src/core/lib/slice/slice_utils.h +9 -0
  357. data/src/core/lib/surface/byte_buffer_reader.cc +2 -47
  358. data/src/core/lib/surface/call.cc +2 -3
  359. data/src/core/lib/surface/call_log_batch.cc +50 -58
  360. data/src/core/lib/surface/channel.cc +53 -31
  361. data/src/core/lib/surface/channel.h +35 -4
  362. data/src/core/lib/surface/channel_ping.cc +2 -3
  363. data/src/core/lib/surface/completion_queue.cc +33 -33
  364. data/src/core/lib/surface/event_string.cc +18 -25
  365. data/src/core/lib/surface/event_string.h +3 -1
  366. data/src/core/lib/surface/init_secure.cc +1 -4
  367. data/src/core/lib/surface/server.cc +570 -369
  368. data/src/core/lib/surface/server.h +32 -0
  369. data/src/core/lib/surface/version.cc +2 -2
  370. data/src/core/lib/transport/byte_stream.h +7 -2
  371. data/src/core/lib/transport/connectivity_state.cc +7 -6
  372. data/src/core/lib/transport/connectivity_state.h +5 -3
  373. data/src/core/lib/transport/metadata.cc +3 -3
  374. data/src/core/lib/transport/metadata_batch.h +2 -3
  375. data/src/core/lib/transport/static_metadata.h +1 -1
  376. data/src/core/lib/transport/status_conversion.cc +6 -14
  377. data/src/core/lib/transport/transport.cc +2 -3
  378. data/src/core/lib/transport/transport.h +3 -2
  379. data/src/core/lib/transport/transport_op_string.cc +61 -102
  380. data/src/core/lib/uri/uri_parser.h +2 -3
  381. data/src/core/plugin_registry/grpc_plugin_registry.cc +20 -4
  382. data/src/core/tsi/alts/crypt/aes_gcm.cc +0 -2
  383. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +9 -2
  384. data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +8 -4
  385. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +33 -3
  386. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +9 -1
  387. data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.h +2 -3
  388. data/src/core/tsi/fake_transport_security.cc +10 -15
  389. data/src/core/tsi/ssl/session_cache/ssl_session.h +0 -2
  390. data/src/core/tsi/ssl/session_cache/ssl_session_boringssl.cc +1 -1
  391. data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +0 -2
  392. data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +1 -1
  393. data/src/core/tsi/ssl_transport_security.cc +54 -40
  394. data/src/core/tsi/ssl_transport_security.h +8 -8
  395. data/src/core/tsi/ssl_types.h +0 -2
  396. data/src/core/tsi/transport_security.h +6 -9
  397. data/src/core/tsi/transport_security_grpc.h +2 -3
  398. data/src/core/tsi/transport_security_interface.h +3 -3
  399. data/src/ruby/ext/grpc/rb_call.c +9 -1
  400. data/src/ruby/ext/grpc/rb_call_credentials.c +3 -2
  401. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -0
  402. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +6 -0
  403. data/src/ruby/lib/grpc/errors.rb +103 -42
  404. data/src/ruby/lib/grpc/generic/active_call.rb +2 -3
  405. data/src/ruby/lib/grpc/generic/interceptors.rb +4 -4
  406. data/src/ruby/lib/grpc/generic/rpc_server.rb +9 -10
  407. data/src/ruby/lib/grpc/generic/service.rb +5 -4
  408. data/src/ruby/lib/grpc/structs.rb +1 -1
  409. data/src/ruby/lib/grpc/version.rb +1 -1
  410. data/src/ruby/pb/generate_proto_ruby.sh +5 -3
  411. data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +11 -0
  412. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +16 -0
  413. data/src/ruby/spec/debug_message_spec.rb +134 -0
  414. data/src/ruby/spec/generic/service_spec.rb +2 -0
  415. data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +5 -0
  416. data/src/ruby/spec/pb/codegen/package_option_spec.rb +2 -0
  417. data/src/ruby/spec/support/services.rb +10 -4
  418. data/src/ruby/spec/testdata/ca.pem +18 -13
  419. data/src/ruby/spec/testdata/client.key +26 -14
  420. data/src/ruby/spec/testdata/client.pem +18 -12
  421. data/src/ruby/spec/testdata/server1.key +26 -14
  422. data/src/ruby/spec/testdata/server1.pem +20 -14
  423. data/third_party/abseil-cpp/absl/base/attributes.h +13 -1
  424. data/third_party/abseil-cpp/absl/base/config.h +55 -6
  425. data/third_party/abseil-cpp/absl/base/internal/atomic_hook.h +30 -9
  426. data/third_party/abseil-cpp/absl/base/internal/errno_saver.h +43 -0
  427. data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +9 -6
  428. data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +5 -1
  429. data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +2 -2
  430. data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +2 -3
  431. data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +3 -3
  432. data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +15 -13
  433. data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +12 -0
  434. data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +9 -0
  435. data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +37 -0
  436. data/third_party/abseil-cpp/absl/base/options.h +9 -12
  437. data/third_party/abseil-cpp/absl/numeric/int128.cc +2 -2
  438. data/third_party/abseil-cpp/absl/numeric/int128.h +1 -1
  439. data/third_party/abseil-cpp/absl/strings/ascii.cc +3 -3
  440. data/third_party/abseil-cpp/absl/strings/ascii.h +4 -3
  441. data/third_party/abseil-cpp/absl/strings/charconv.cc +0 -1
  442. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.cc +2 -2
  443. data/third_party/abseil-cpp/absl/strings/internal/charconv_bigint.h +4 -2
  444. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +388 -0
  445. data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +432 -0
  446. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +245 -0
  447. data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +209 -0
  448. data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +326 -0
  449. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +51 -0
  450. data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +415 -0
  451. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +493 -0
  452. data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +23 -0
  453. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.cc +72 -0
  454. data/third_party/abseil-cpp/absl/strings/internal/str_format/output.h +104 -0
  455. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +334 -0
  456. data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +333 -0
  457. data/third_party/abseil-cpp/absl/strings/numbers.cc +54 -5
  458. data/third_party/abseil-cpp/absl/strings/numbers.h +6 -3
  459. data/third_party/abseil-cpp/absl/strings/str_format.h +537 -0
  460. data/third_party/abseil-cpp/absl/strings/string_view.h +31 -24
  461. data/third_party/abseil-cpp/absl/time/civil_time.cc +175 -0
  462. data/third_party/abseil-cpp/absl/time/civil_time.h +538 -0
  463. data/third_party/abseil-cpp/absl/time/clock.cc +569 -0
  464. data/third_party/abseil-cpp/absl/time/clock.h +74 -0
  465. data/third_party/abseil-cpp/absl/time/duration.cc +922 -0
  466. data/third_party/abseil-cpp/absl/time/format.cc +153 -0
  467. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time.h +332 -0
  468. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +622 -0
  469. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +384 -0
  470. data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/zone_info_source.h +102 -0
  471. data/third_party/abseil-cpp/absl/time/internal/cctz/src/civil_time_detail.cc +94 -0
  472. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +140 -0
  473. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.h +52 -0
  474. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_format.cc +922 -0
  475. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.cc +45 -0
  476. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +76 -0
  477. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.cc +121 -0
  478. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_impl.h +93 -0
  479. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +958 -0
  480. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.h +138 -0
  481. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +308 -0
  482. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.h +55 -0
  483. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +187 -0
  484. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.cc +159 -0
  485. data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_posix.h +132 -0
  486. data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +122 -0
  487. data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +115 -0
  488. data/third_party/abseil-cpp/absl/time/internal/get_current_time_chrono.inc +31 -0
  489. data/third_party/abseil-cpp/absl/time/internal/get_current_time_posix.inc +24 -0
  490. data/third_party/abseil-cpp/absl/time/time.cc +499 -0
  491. data/third_party/abseil-cpp/absl/time/time.h +1584 -0
  492. data/{src/boringssl → third_party/boringssl-with-bazel}/err_data.c +329 -297
  493. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_bitstr.c +0 -0
  494. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_bool.c +0 -0
  495. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_d2i_fp.c +0 -0
  496. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_dup.c +0 -0
  497. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_enum.c +0 -0
  498. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_gentm.c +0 -0
  499. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_i2d_fp.c +0 -0
  500. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_int.c +0 -0
  501. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_mbstr.c +0 -0
  502. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_object.c +0 -0
  503. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_octet.c +0 -0
  504. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_print.c +0 -0
  505. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_strnid.c +0 -0
  506. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_time.c +3 -4
  507. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_type.c +0 -0
  508. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_utctm.c +0 -0
  509. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/a_utf8.c +0 -0
  510. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn1_lib.c +0 -0
  511. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn1_locl.h +0 -0
  512. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn1_par.c +0 -0
  513. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/asn_pack.c +0 -0
  514. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_enum.c +0 -0
  515. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_int.c +0 -0
  516. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/f_string.c +0 -0
  517. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_dec.c +0 -0
  518. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_enc.c +0 -0
  519. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_fre.c +0 -0
  520. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_new.c +0 -0
  521. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_typ.c +0 -0
  522. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/tasn_utl.c +0 -0
  523. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/asn1/time_support.c +0 -0
  524. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/base64/base64.c +0 -0
  525. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/bio.c +0 -0
  526. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/bio_mem.c +0 -0
  527. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/connect.c +3 -4
  528. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/fd.c +0 -1
  529. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/file.c +5 -6
  530. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/hexdump.c +0 -0
  531. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/internal.h +0 -0
  532. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/pair.c +0 -1
  533. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/printf.c +0 -0
  534. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/socket.c +0 -0
  535. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bio/socket_helper.c +0 -0
  536. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bn_extra/bn_asn1.c +0 -0
  537. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bn_extra/convert.c +0 -0
  538. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/buf/buf.c +10 -69
  539. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/asn1_compat.c +0 -0
  540. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/ber.c +0 -0
  541. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/cbb.c +41 -2
  542. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/cbs.c +60 -3
  543. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/internal.h +0 -0
  544. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/bytestring/unicode.c +0 -0
  545. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/chacha/chacha.c +0 -0
  546. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/chacha/internal.h +0 -0
  547. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/cipher_extra.c +0 -0
  548. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/derive_key.c +1 -1
  549. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_aesccm.c +0 -0
  550. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_aesctrhmac.c +0 -0
  551. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_aesgcmsiv.c +8 -0
  552. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_chacha20poly1305.c +0 -0
  553. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_null.c +0 -0
  554. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_rc2.c +0 -0
  555. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_rc4.c +0 -0
  556. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/e_tls.c +0 -0
  557. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/internal.h +0 -0
  558. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cipher_extra/tls_cbc.c +0 -0
  559. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cmac/cmac.c +0 -0
  560. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/conf.c +0 -0
  561. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/conf_def.h +0 -0
  562. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/conf/internal.h +0 -0
  563. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-aarch64-fuchsia.c +0 -0
  564. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-aarch64-linux.c +0 -0
  565. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-arm-linux.c +7 -6
  566. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-arm-linux.h +0 -0
  567. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-arm.c +0 -0
  568. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-intel.c +13 -4
  569. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/cpu-ppc64le.c +0 -0
  570. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/crypto.c +11 -0
  571. data/third_party/{boringssl/third_party/fiat → boringssl-with-bazel/src/crypto/curve25519}/curve25519.c +18 -26
  572. data/third_party/{boringssl/third_party/fiat → boringssl-with-bazel/src/crypto/curve25519}/curve25519_tables.h +13 -21
  573. data/third_party/{boringssl/third_party/fiat → boringssl-with-bazel/src/crypto/curve25519}/internal.h +14 -22
  574. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/curve25519/spake25519.c +1 -1
  575. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/check.c +3 -3
  576. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/dh.c +16 -2
  577. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/dh_asn1.c +0 -0
  578. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dh/params.c +0 -0
  579. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/digest_extra/digest_extra.c +0 -0
  580. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dsa/dsa.c +10 -0
  581. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/dsa/dsa_asn1.c +0 -0
  582. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ec_extra/ec_asn1.c +0 -0
  583. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ec_extra/ec_derive.c +2 -3
  584. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/hash_to_curve.c +425 -0
  585. data/third_party/boringssl-with-bazel/src/crypto/ec_extra/internal.h +78 -0
  586. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ecdh_extra/ecdh_extra.c +2 -2
  587. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ecdsa_extra/ecdsa_asn1.c +0 -0
  588. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/engine/engine.c +0 -0
  589. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/err/err.c +39 -38
  590. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/err/internal.h +0 -0
  591. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/digestsign.c +0 -0
  592. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp.c +0 -0
  593. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp_asn1.c +0 -0
  594. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/evp_ctx.c +0 -0
  595. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/internal.h +0 -0
  596. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_dsa_asn1.c +0 -0
  597. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ec.c +0 -1
  598. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ec_asn1.c +0 -0
  599. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ed25519.c +0 -0
  600. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_ed25519_asn1.c +0 -0
  601. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_rsa.c +14 -2
  602. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_rsa_asn1.c +0 -0
  603. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_x25519.c +0 -0
  604. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/p_x25519_asn1.c +1 -2
  605. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/pbkdf.c +0 -0
  606. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/print.c +0 -0
  607. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/scrypt.c +0 -0
  608. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/evp/sign.c +0 -0
  609. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/ex_data.c +0 -0
  610. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes.c +108 -0
  611. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/aes/aes_nohw.c +1282 -0
  612. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/aes/internal.h +5 -7
  613. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/aes/key_wrap.c +0 -0
  614. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/aes/mode_wrappers.c +0 -2
  615. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bcm.c +4 -1
  616. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/add.c +0 -0
  617. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/asm/x86_64-gcc.c +0 -0
  618. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/bn.c +0 -0
  619. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/bytes.c +0 -0
  620. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/cmp.c +0 -0
  621. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/ctx.c +0 -0
  622. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/div.c +0 -0
  623. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/div_extra.c +0 -0
  624. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/exponentiation.c +3 -3
  625. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/gcd.c +0 -0
  626. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/gcd_extra.c +0 -0
  627. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/generic.c +0 -0
  628. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/internal.h +14 -11
  629. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/jacobi.c +0 -0
  630. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/montgomery.c +8 -8
  631. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/montgomery_inv.c +0 -0
  632. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/mul.c +30 -154
  633. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/prime.c +11 -12
  634. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/random.c +0 -0
  635. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/rsaz_exp.c +0 -0
  636. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/rsaz_exp.h +0 -0
  637. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/shift.c +0 -0
  638. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/bn/sqrt.c +0 -0
  639. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/aead.c +0 -0
  640. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/cipher.c +0 -0
  641. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/e_aes.c +3 -5
  642. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/e_des.c +0 -0
  643. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/cipher/internal.h +0 -0
  644. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/delocate.h +0 -0
  645. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/des/des.c +0 -0
  646. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/des/internal.h +0 -0
  647. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/digest.c +0 -0
  648. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/digests.c +16 -0
  649. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/internal.h +0 -0
  650. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/digest/md32_common.h +0 -0
  651. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/ec.c +289 -117
  652. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/ec_key.c +14 -28
  653. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/ec_montgomery.c +96 -55
  654. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/felem.c +25 -7
  655. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/internal.h +432 -160
  656. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/oct.c +63 -71
  657. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p224-64.c +5 -14
  658. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256-x86_64-table.h +9497 -0
  659. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p256-x86_64.c +80 -99
  660. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/p256-x86_64.h +0 -0
  661. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256.c +736 -0
  662. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/p256_table.h +297 -0
  663. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/scalar.c +175 -0
  664. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/simple.c +125 -148
  665. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/simple_mul.c +270 -0
  666. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/util.c +0 -0
  667. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ec/wnaf.c +61 -18
  668. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ecdh/ecdh.c +2 -2
  669. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/ecdsa/ecdsa.c +20 -5
  670. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/fips_shared_support.c +0 -0
  671. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/hmac/hmac.c +0 -0
  672. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/is_fips.c +0 -0
  673. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md4/md4.c +0 -0
  674. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md5/internal.h +0 -0
  675. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/md5/md5.c +0 -0
  676. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/cbc.c +0 -0
  677. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/cfb.c +0 -0
  678. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/ctr.c +0 -0
  679. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/gcm.c +45 -193
  680. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +304 -0
  681. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/internal.h +8 -18
  682. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/ofb.c +0 -0
  683. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/modes/polyval.c +0 -0
  684. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/ctrdrbg.c +0 -0
  685. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.c +137 -0
  686. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/fork_detect.h +49 -0
  687. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/getrandom_fillin.h +64 -0
  688. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/internal.h +41 -5
  689. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/rand.c +32 -17
  690. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rand/urandom.c +24 -114
  691. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/blinding.c +4 -0
  692. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/internal.h +1 -0
  693. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/padding.c +0 -0
  694. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/rsa.c +58 -39
  695. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/rsa/rsa_impl.c +72 -49
  696. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/self_check/self_check.c +0 -0
  697. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/internal.h +0 -0
  698. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha1-altivec.c +0 -0
  699. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha1.c +0 -0
  700. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha256.c +0 -0
  701. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/sha/sha512.c +44 -35
  702. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/tls/internal.h +0 -0
  703. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/fipsmodule/tls/kdf.c +0 -0
  704. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/hkdf/hkdf.c +0 -0
  705. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/hrss/hrss.c +210 -311
  706. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/hrss/internal.h +0 -1
  707. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/internal.h +21 -1
  708. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/lhash/lhash.c +0 -0
  709. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/mem.c +99 -12
  710. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/obj/obj.c +16 -21
  711. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/obj/obj_dat.h +41 -6
  712. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/obj/obj_xref.c +0 -0
  713. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_all.c +0 -0
  714. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_info.c +0 -1
  715. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_lib.c +7 -7
  716. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_oth.c +0 -1
  717. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_pk8.c +0 -1
  718. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_pkey.c +0 -1
  719. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_x509.c +0 -0
  720. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pem/pem_xaux.c +0 -0
  721. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs7/internal.h +0 -0
  722. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs7/pkcs7.c +0 -0
  723. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs7/pkcs7_x509.c +1 -1
  724. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/internal.h +0 -0
  725. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/p5_pbev2.c +0 -0
  726. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/pkcs8.c +0 -0
  727. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pkcs8/pkcs8_x509.c +0 -0
  728. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/internal.h +0 -0
  729. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/poly1305.c +2 -2
  730. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/poly1305_arm.c +21 -20
  731. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/poly1305/poly1305_vec.c +34 -17
  732. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pool/internal.h +0 -0
  733. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/pool/pool.c +1 -2
  734. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/deterministic.c +6 -10
  735. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/forkunsafe.c +0 -0
  736. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/fuchsia.c +0 -0
  737. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/rand_extra.c +0 -0
  738. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rand_extra/windows.c +16 -0
  739. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rc4/rc4.c +0 -0
  740. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/refcount_c11.c +0 -0
  741. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/refcount_lock.c +0 -0
  742. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rsa_extra/rsa_asn1.c +0 -0
  743. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/rsa_extra/rsa_print.c +0 -0
  744. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/siphash/siphash.c +3 -1
  745. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/stack/stack.c +0 -0
  746. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread.c +0 -0
  747. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread_none.c +0 -0
  748. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread_pthread.c +4 -0
  749. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/thread_win.c +4 -0
  750. data/third_party/boringssl-with-bazel/src/crypto/trust_token/internal.h +278 -0
  751. data/third_party/boringssl-with-bazel/src/crypto/trust_token/pmbtoken.c +1474 -0
  752. data/third_party/boringssl-with-bazel/src/crypto/trust_token/trust_token.c +720 -0
  753. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_digest.c +0 -0
  754. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_sign.c +0 -0
  755. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_strex.c +0 -0
  756. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/a_verify.c +0 -1
  757. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/algorithm.c +0 -0
  758. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/asn1_gen.c +0 -0
  759. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/by_dir.c +1 -1
  760. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/by_file.c +0 -1
  761. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/charmap.h +0 -0
  762. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/i2d_pr.c +0 -0
  763. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/internal.h +0 -0
  764. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/rsa_pss.c +0 -0
  765. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_crl.c +0 -0
  766. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_req.c +0 -0
  767. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_x509.c +0 -0
  768. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/t_x509a.c +0 -0
  769. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/vpm_int.h +0 -0
  770. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509.c +0 -0
  771. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_att.c +0 -0
  772. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_cmp.c +0 -1
  773. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_d2.c +0 -0
  774. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_def.c +0 -0
  775. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_ext.c +0 -0
  776. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_lu.c +0 -0
  777. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_obj.c +1 -1
  778. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_r2x.c +0 -1
  779. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_req.c +0 -1
  780. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_set.c +16 -0
  781. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_trs.c +1 -2
  782. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_txt.c +0 -0
  783. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_v3.c +0 -0
  784. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_vfy.c +5 -1
  785. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509_vpm.c +3 -4
  786. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509cset.c +0 -0
  787. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509name.c +4 -3
  788. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509rset.c +0 -0
  789. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x509spki.c +0 -0
  790. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_algor.c +0 -0
  791. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_all.c +0 -1
  792. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_attrib.c +0 -0
  793. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_crl.c +0 -0
  794. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_exten.c +0 -0
  795. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_info.c +0 -0
  796. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_name.c +0 -0
  797. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_pkey.c +0 -0
  798. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_pubkey.c +0 -0
  799. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_req.c +0 -0
  800. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_sig.c +0 -0
  801. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_spki.c +0 -0
  802. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_val.c +0 -0
  803. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_x509.c +0 -0
  804. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509/x_x509a.c +0 -0
  805. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/ext_dat.h +0 -0
  806. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/internal.h +0 -0
  807. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_cache.c +0 -0
  808. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_data.c +0 -0
  809. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_int.h +0 -0
  810. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_lib.c +0 -0
  811. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_map.c +0 -0
  812. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_node.c +0 -0
  813. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/pcy_tree.c +0 -0
  814. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_akey.c +0 -0
  815. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_akeya.c +0 -0
  816. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_alt.c +3 -3
  817. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_bcons.c +0 -0
  818. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_bitst.c +0 -0
  819. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_conf.c +0 -0
  820. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_cpols.c +0 -0
  821. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_crld.c +0 -0
  822. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_enum.c +2 -2
  823. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_extku.c +0 -0
  824. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_genn.c +0 -0
  825. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ia5.c +0 -0
  826. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_info.c +4 -5
  827. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_int.c +0 -0
  828. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_lib.c +0 -0
  829. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ncons.c +0 -0
  830. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_ocsp.c +0 -0
  831. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pci.c +0 -0
  832. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pcia.c +0 -0
  833. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pcons.c +0 -0
  834. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pku.c +0 -0
  835. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_pmaps.c +0 -0
  836. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_prn.c +0 -0
  837. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_purp.c +2 -3
  838. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_skey.c +0 -0
  839. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_sxnet.c +0 -0
  840. data/third_party/{boringssl → boringssl-with-bazel/src}/crypto/x509v3/v3_utl.c +11 -12
  841. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/aead.h +0 -0
  842. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/aes.h +0 -0
  843. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/arm_arch.h +0 -0
  844. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1.h +0 -0
  845. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1_mac.h +0 -0
  846. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/asn1t.h +0 -0
  847. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/base.h +5 -1
  848. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/base64.h +0 -0
  849. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/bio.h +0 -0
  850. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/blowfish.h +0 -0
  851. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/bn.h +32 -20
  852. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/buf.h +9 -9
  853. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/buffer.h +0 -0
  854. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/bytestring.h +34 -0
  855. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cast.h +0 -0
  856. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/chacha.h +0 -0
  857. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cipher.h +0 -0
  858. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cmac.h +0 -0
  859. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/conf.h +0 -0
  860. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/cpu.h +0 -0
  861. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/crypto.h +9 -4
  862. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/curve25519.h +0 -0
  863. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/des.h +0 -0
  864. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/dh.h +20 -0
  865. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/digest.h +1 -0
  866. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/dsa.h +16 -0
  867. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/dtls1.h +0 -0
  868. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/e_os2.h +0 -0
  869. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ec.h +11 -4
  870. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ec_key.h +4 -2
  871. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ecdh.h +0 -0
  872. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ecdsa.h +6 -0
  873. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/engine.h +0 -0
  874. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/err.h +13 -9
  875. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/evp.h +20 -0
  876. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ex_data.h +0 -0
  877. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/hkdf.h +0 -0
  878. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/hmac.h +0 -0
  879. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/hrss.h +0 -0
  880. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/is_boringssl.h +0 -0
  881. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/lhash.h +0 -0
  882. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/md4.h +0 -0
  883. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/md5.h +0 -0
  884. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/mem.h +17 -2
  885. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/nid.h +14 -0
  886. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/obj.h +0 -0
  887. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/obj_mac.h +0 -0
  888. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/objects.h +0 -0
  889. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/opensslconf.h +0 -0
  890. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/opensslv.h +0 -0
  891. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ossl_typ.h +0 -0
  892. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pem.h +0 -0
  893. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs12.h +0 -0
  894. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs7.h +0 -0
  895. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pkcs8.h +0 -0
  896. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/poly1305.h +5 -7
  897. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/pool.h +0 -0
  898. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/rand.h +3 -17
  899. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/rc4.h +0 -0
  900. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ripemd.h +0 -0
  901. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/rsa.h +31 -0
  902. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/safestack.h +0 -0
  903. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/sha.h +26 -0
  904. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/siphash.h +0 -0
  905. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/span.h +0 -0
  906. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/srtp.h +0 -0
  907. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ssl.h +182 -97
  908. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/ssl3.h +0 -0
  909. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/stack.h +0 -0
  910. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/thread.h +0 -0
  911. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/tls1.h +1 -3
  912. data/third_party/boringssl-with-bazel/src/include/openssl/trust_token.h +291 -0
  913. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/type_check.h +0 -0
  914. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/x509.h +5 -3
  915. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/x509_vfy.h +1 -0
  916. data/third_party/{boringssl → boringssl-with-bazel/src}/include/openssl/x509v3.h +0 -0
  917. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/bio_ssl.cc +0 -0
  918. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_both.cc +0 -5
  919. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_lib.cc +3 -3
  920. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_pkt.cc +0 -1
  921. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/d1_srtp.cc +0 -0
  922. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/dtls_method.cc +13 -5
  923. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/dtls_record.cc +0 -0
  924. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handoff.cc +237 -51
  925. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handshake.cc +19 -7
  926. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handshake_client.cc +51 -32
  927. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/handshake_server.cc +12 -8
  928. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/internal.h +94 -71
  929. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/s3_both.cc +10 -10
  930. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/s3_lib.cc +4 -5
  931. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/s3_pkt.cc +21 -22
  932. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_aead_ctx.cc +0 -0
  933. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_asn1.cc +30 -2
  934. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_buffer.cc +34 -15
  935. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_cert.cc +4 -1
  936. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_cipher.cc +0 -1
  937. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_file.cc +0 -0
  938. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_key_share.cc +0 -0
  939. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_lib.cc +19 -15
  940. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_privkey.cc +13 -2
  941. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_session.cc +66 -6
  942. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_stat.cc +6 -0
  943. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_transcript.cc +0 -0
  944. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_versions.cc +1 -1
  945. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/ssl_x509.cc +0 -0
  946. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/t1_enc.cc +6 -2
  947. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/t1_lib.cc +53 -219
  948. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_both.cc +1 -1
  949. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_client.cc +101 -31
  950. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_enc.cc +28 -76
  951. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls13_server.cc +111 -104
  952. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls_method.cc +64 -26
  953. data/third_party/{boringssl → boringssl-with-bazel/src}/ssl/tls_record.cc +7 -2
  954. data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/curve25519_32.h +245 -175
  955. data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/curve25519_64.h +135 -75
  956. data/third_party/boringssl-with-bazel/src/third_party/fiat/p256_32.h +3147 -0
  957. data/third_party/{boringssl → boringssl-with-bazel/src}/third_party/fiat/p256_64.h +512 -503
  958. metadata +648 -503
  959. data/src/core/ext/filters/client_channel/lb_policy/xds/xds.cc +0 -1917
  960. data/src/core/lib/gprpp/inlined_vector.h +0 -246
  961. data/src/core/lib/gprpp/optional.h +0 -74
  962. data/src/core/lib/gprpp/string_view.h +0 -169
  963. data/src/core/lib/iomgr/logical_thread.cc +0 -103
  964. data/src/core/lib/iomgr/logical_thread.h +0 -52
  965. data/src/core/lib/json/json.cc +0 -94
  966. data/src/core/tsi/grpc_shadow_boringssl.h +0 -3297
  967. data/third_party/boringssl/crypto/fipsmodule/aes/aes.c +0 -860
  968. data/third_party/boringssl/crypto/fipsmodule/ec/p256-x86_64-table.h +0 -9501
  969. data/third_party/boringssl/crypto/fipsmodule/ec/scalar.c +0 -96
  970. data/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.c +0 -84
  971. data/third_party/boringssl/third_party/fiat/p256.c +0 -1063
  972. data/third_party/boringssl/third_party/fiat/p256_32.h +0 -3226
@@ -58,10 +58,6 @@ namespace absl {
58
58
  ABSL_NAMESPACE_BEGIN
59
59
  namespace base_internal {
60
60
 
61
- static once_flag init_system_info_once;
62
- static int num_cpus = 0;
63
- static double nominal_cpu_frequency = 1.0; // 0.0 might be dangerous.
64
-
65
61
  static int GetNumCPUs() {
66
62
  #if defined(__myriad2__)
67
63
  return 1;
@@ -265,21 +261,27 @@ static double GetNominalCPUFrequency() {
265
261
 
266
262
  #endif
267
263
 
268
- // InitializeSystemInfo() may be called before main() and before
269
- // malloc is properly initialized, therefore this must not allocate
270
- // memory.
271
- static void InitializeSystemInfo() {
272
- num_cpus = GetNumCPUs();
273
- nominal_cpu_frequency = GetNominalCPUFrequency();
274
- }
264
+ ABSL_CONST_INIT static once_flag init_num_cpus_once;
265
+ ABSL_CONST_INIT static int num_cpus = 0;
275
266
 
267
+ // NumCPUs() may be called before main() and before malloc is properly
268
+ // initialized, therefore this must not allocate memory.
276
269
  int NumCPUs() {
277
- base_internal::LowLevelCallOnce(&init_system_info_once, InitializeSystemInfo);
270
+ base_internal::LowLevelCallOnce(
271
+ &init_num_cpus_once, []() { num_cpus = GetNumCPUs(); });
278
272
  return num_cpus;
279
273
  }
280
274
 
275
+ // A default frequency of 0.0 might be dangerous if it is used in division.
276
+ ABSL_CONST_INIT static once_flag init_nominal_cpu_frequency_once;
277
+ ABSL_CONST_INIT static double nominal_cpu_frequency = 1.0;
278
+
279
+ // NominalCPUFrequency() may be called before main() and before malloc is
280
+ // properly initialized, therefore this must not allocate memory.
281
281
  double NominalCPUFrequency() {
282
- base_internal::LowLevelCallOnce(&init_system_info_once, InitializeSystemInfo);
282
+ base_internal::LowLevelCallOnce(
283
+ &init_nominal_cpu_frequency_once,
284
+ []() { nominal_cpu_frequency = GetNominalCPUFrequency(); });
283
285
  return nominal_cpu_frequency;
284
286
  }
285
287
 
@@ -113,6 +113,18 @@ void SetCurrentThreadIdentity(
113
113
  #endif
114
114
  }
115
115
 
116
+ #if ABSL_THREAD_IDENTITY_MODE == ABSL_THREAD_IDENTITY_MODE_USE_TLS || \
117
+ ABSL_THREAD_IDENTITY_MODE == ABSL_THREAD_IDENTITY_MODE_USE_CPP11
118
+
119
+ // Please see the comment on `CurrentThreadIdentityIfPresent` in
120
+ // thread_identity.h. Because DLLs cannot expose thread_local variables in
121
+ // headers, we opt for the correct-but-slower option of placing the definition
122
+ // of this function only in a translation unit inside DLL.
123
+ #if defined(ABSL_BUILD_DLL) || defined(ABSL_CONSUME_DLL)
124
+ ThreadIdentity* CurrentThreadIdentityIfPresent() { return thread_identity_ptr; }
125
+ #endif
126
+ #endif
127
+
116
128
  void ClearCurrentThreadIdentity() {
117
129
  #if ABSL_THREAD_IDENTITY_MODE == ABSL_THREAD_IDENTITY_MODE_USE_TLS || \
118
130
  ABSL_THREAD_IDENTITY_MODE == ABSL_THREAD_IDENTITY_MODE_USE_CPP11
@@ -30,6 +30,7 @@
30
30
  #include <atomic>
31
31
  #include <cstdint>
32
32
 
33
+ #include "absl/base/config.h"
33
34
  #include "absl/base/internal/per_thread_tls.h"
34
35
 
35
36
  namespace absl {
@@ -234,9 +235,17 @@ ABSL_CONST_INIT extern thread_local ThreadIdentity* thread_identity_ptr;
234
235
  #error Thread-local storage not detected on this platform
235
236
  #endif
236
237
 
238
+ // thread_local variables cannot be in headers exposed by DLLs. However, it is
239
+ // important for performance reasons in general that
240
+ // `CurrentThreadIdentityIfPresent` be inlined. This is not possible across a
241
+ // DLL boundary so, with DLLs, we opt to have the function not be inlined. Note
242
+ // that `CurrentThreadIdentityIfPresent` is declared above so we can exclude
243
+ // this entire inline definition when compiling as a DLL.
244
+ #if !defined(ABSL_BUILD_DLL) && !defined(ABSL_CONSUME_DLL)
237
245
  inline ThreadIdentity* CurrentThreadIdentityIfPresent() {
238
246
  return thread_identity_ptr;
239
247
  }
248
+ #endif
240
249
 
241
250
  #elif ABSL_THREAD_IDENTITY_MODE != \
242
251
  ABSL_THREAD_IDENTITY_MODE_USE_POSIX_SETSPECIFIC
@@ -21,7 +21,12 @@
21
21
  #endif
22
22
 
23
23
  #if defined(__powerpc__) || defined(__ppc__)
24
+ #ifdef __GLIBC__
24
25
  #include <sys/platform/ppc.h>
26
+ #elif defined(__FreeBSD__)
27
+ #include <sys/sysctl.h>
28
+ #include <sys/types.h>
29
+ #endif
25
30
  #endif
26
31
 
27
32
  #include "absl/base/internal/sysinfo.h"
@@ -57,11 +62,43 @@ double UnscaledCycleClock::Frequency() {
57
62
  #elif defined(__powerpc__) || defined(__ppc__)
58
63
 
59
64
  int64_t UnscaledCycleClock::Now() {
65
+ #ifdef __GLIBC__
60
66
  return __ppc_get_timebase();
67
+ #else
68
+ #ifdef __powerpc64__
69
+ int64_t tbr;
70
+ asm volatile("mfspr %0, 268" : "=r"(tbr));
71
+ return tbr;
72
+ #else
73
+ int32_t tbu, tbl, tmp;
74
+ asm volatile(
75
+ "0:\n"
76
+ "mftbu %[hi32]\n"
77
+ "mftb %[lo32]\n"
78
+ "mftbu %[tmp]\n"
79
+ "cmpw %[tmp],%[hi32]\n"
80
+ "bne 0b\n"
81
+ : [ hi32 ] "=r"(tbu), [ lo32 ] "=r"(tbl), [ tmp ] "=r"(tmp));
82
+ return (static_cast<int64_t>(tbu) << 32) | tbl;
83
+ #endif
84
+ #endif
61
85
  }
62
86
 
63
87
  double UnscaledCycleClock::Frequency() {
88
+ #ifdef __GLIBC__
64
89
  return __ppc_get_timebase_freq();
90
+ #elif defined(__FreeBSD__)
91
+ static once_flag init_timebase_frequency_once;
92
+ static double timebase_frequency = 0.0;
93
+ base_internal::LowLevelCallOnce(&init_timebase_frequency_once, [&]() {
94
+ size_t length = sizeof(timebase_frequency);
95
+ sysctlbyname("kern.timecounter.tc.timebase.frequency", &timebase_frequency,
96
+ &length, nullptr, 0);
97
+ });
98
+ return timebase_frequency;
99
+ #else
100
+ #error Must implement UnscaledCycleClock::Frequency()
101
+ #endif
65
102
  }
66
103
 
67
104
  #elif defined(__aarch64__)
@@ -66,7 +66,13 @@
66
66
  // NOTE: the defaults within this file all assume that Abseil can select the
67
67
  // proper Abseil implementation at compile-time, which will not be sufficient
68
68
  // to guarantee ABI stability to package managers.
69
- //
69
+
70
+ // Include a standard library header to allow configuration based on the
71
+ // standard library in use.
72
+ #ifdef __cplusplus
73
+ #include <ciso646>
74
+ #endif
75
+
70
76
  // -----------------------------------------------------------------------------
71
77
  // Type Compatibility Options
72
78
  // -----------------------------------------------------------------------------
@@ -117,14 +123,6 @@
117
123
  // compiler flags passed by the end user. For more info, see
118
124
  // https://abseil.io/about/design/dropin-types.
119
125
 
120
- // A value of 2 means to detect the C++ version being used to compile Abseil,
121
- // and use an alias only if a working std::optional is available. This option
122
- // should not be used when your program is not built from source -- for example,
123
- // if you are distributing Abseil in a binary package manager -- since in mode
124
- // 2, absl::optional will name a different template class, with a different
125
- // mangled name and binary layout, depending on the compiler flags passed by the
126
- // end user.
127
- //
128
126
  // User code should not inspect this macro. To check in the preprocessor if
129
127
  // absl::optional is a typedef of std::optional, use the feature macro
130
128
  // ABSL_USES_STD_OPTIONAL.
@@ -158,7 +156,6 @@
158
156
 
159
157
  #define ABSL_OPTION_USE_STD_STRING_VIEW 2
160
158
 
161
-
162
159
  // ABSL_OPTION_USE_STD_VARIANT
163
160
  //
164
161
  // This option controls whether absl::variant is implemented as an alias to
@@ -208,7 +205,7 @@
208
205
  // be changed to a new, unique identifier name. In particular "head" is not
209
206
  // allowed.
210
207
 
211
- #define ABSL_OPTION_USE_INLINE_NAMESPACE 0
212
- #define ABSL_OPTION_INLINE_NAMESPACE_NAME head
208
+ #define ABSL_OPTION_USE_INLINE_NAMESPACE 1
209
+ #define ABSL_OPTION_INLINE_NAMESPACE_NAME lts_2020_02_25
213
210
 
214
211
  #endif // ABSL_BASE_OPTIONS_H_
@@ -25,8 +25,8 @@
25
25
  namespace absl {
26
26
  ABSL_NAMESPACE_BEGIN
27
27
 
28
- const uint128 kuint128max = MakeUint128(std::numeric_limits<uint64_t>::max(),
29
- std::numeric_limits<uint64_t>::max());
28
+ ABSL_DLL const uint128 kuint128max = MakeUint128(
29
+ std::numeric_limits<uint64_t>::max(), std::numeric_limits<uint64_t>::max());
30
30
 
31
31
  namespace {
32
32
 
@@ -234,7 +234,7 @@ class
234
234
  // Prefer to use the constexpr `Uint128Max()`.
235
235
  //
236
236
  // TODO(absl-team) deprecate kuint128max once migration tool is released.
237
- extern const uint128 kuint128max;
237
+ ABSL_DLL extern const uint128 kuint128max;
238
238
 
239
239
  // allow uint128 to be logged
240
240
  std::ostream& operator<<(std::ostream& os, uint128 v);
@@ -57,7 +57,7 @@ namespace ascii_internal {
57
57
  // of these bits is tightly coupled to this implementation, the individual bits
58
58
  // are not named. Note that bitfields for all characters above ASCII 127 are
59
59
  // zero-initialized.
60
- const unsigned char kPropertyBits[256] = {
60
+ ABSL_DLL const unsigned char kPropertyBits[256] = {
61
61
  0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // 0x00
62
62
  0x40, 0x68, 0x48, 0x48, 0x48, 0x48, 0x40, 0x40,
63
63
  0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // 0x10
@@ -79,7 +79,7 @@ const unsigned char kPropertyBits[256] = {
79
79
  // Array of characters for the ascii_tolower() function. For values 'A'
80
80
  // through 'Z', return the lower-case character; otherwise, return the
81
81
  // identity of the passed character.
82
- const char kToLower[256] = {
82
+ ABSL_DLL const char kToLower[256] = {
83
83
  '\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07',
84
84
  '\x08', '\x09', '\x0a', '\x0b', '\x0c', '\x0d', '\x0e', '\x0f',
85
85
  '\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17',
@@ -117,7 +117,7 @@ const char kToLower[256] = {
117
117
  // Array of characters for the ascii_toupper() function. For values 'a'
118
118
  // through 'z', return the upper-case character; otherwise, return the
119
119
  // identity of the passed character.
120
- const char kToUpper[256] = {
120
+ ABSL_DLL const char kToUpper[256] = {
121
121
  '\x00', '\x01', '\x02', '\x03', '\x04', '\x05', '\x06', '\x07',
122
122
  '\x08', '\x09', '\x0a', '\x0b', '\x0c', '\x0d', '\x0e', '\x0f',
123
123
  '\x10', '\x11', '\x12', '\x13', '\x14', '\x15', '\x16', '\x17',
@@ -56,6 +56,7 @@
56
56
  #include <string>
57
57
 
58
58
  #include "absl/base/attributes.h"
59
+ #include "absl/base/config.h"
59
60
  #include "absl/strings/string_view.h"
60
61
 
61
62
  namespace absl {
@@ -63,13 +64,13 @@ ABSL_NAMESPACE_BEGIN
63
64
  namespace ascii_internal {
64
65
 
65
66
  // Declaration for an array of bitfields holding character information.
66
- extern const unsigned char kPropertyBits[256];
67
+ ABSL_DLL extern const unsigned char kPropertyBits[256];
67
68
 
68
69
  // Declaration for the array of characters to upper-case characters.
69
- extern const char kToUpper[256];
70
+ ABSL_DLL extern const char kToUpper[256];
70
71
 
71
72
  // Declaration for the array of characters to lower-case characters.
72
- extern const char kToLower[256];
73
+ ABSL_DLL extern const char kToLower[256];
73
74
 
74
75
  } // namespace ascii_internal
75
76
 
@@ -673,7 +673,6 @@ from_chars_result FromCharsImpl(const char* first, const char* last,
673
673
  EncodeResult(calculated, negative, &result, &value);
674
674
  return result;
675
675
  }
676
- return result;
677
676
  }
678
677
  } // namespace
679
678
 
@@ -158,12 +158,12 @@ const uint32_t* LargePowerOfFiveData(int i) {
158
158
  int LargePowerOfFiveSize(int i) { return 2 * i; }
159
159
  } // namespace
160
160
 
161
- const uint32_t kFiveToNth[14] = {
161
+ ABSL_DLL const uint32_t kFiveToNth[14] = {
162
162
  1, 5, 25, 125, 625, 3125, 15625,
163
163
  78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125,
164
164
  };
165
165
 
166
- const uint32_t kTenToNth[10] = {
166
+ ABSL_DLL const uint32_t kTenToNth[10] = {
167
167
  1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000,
168
168
  };
169
169
 
@@ -20,6 +20,7 @@
20
20
  #include <iostream>
21
21
  #include <string>
22
22
 
23
+ #include "absl/base/config.h"
23
24
  #include "absl/strings/ascii.h"
24
25
  #include "absl/strings/internal/charconv_parse.h"
25
26
  #include "absl/strings/string_view.h"
@@ -33,8 +34,9 @@ constexpr int kMaxSmallPowerOfFive = 13;
33
34
  // The largest power that 10 that can be raised to, and still fit in a uint32_t.
34
35
  constexpr int kMaxSmallPowerOfTen = 9;
35
36
 
36
- extern const uint32_t kFiveToNth[kMaxSmallPowerOfFive + 1];
37
- extern const uint32_t kTenToNth[kMaxSmallPowerOfTen + 1];
37
+ ABSL_DLL extern const uint32_t
38
+ kFiveToNth[kMaxSmallPowerOfFive + 1];
39
+ ABSL_DLL extern const uint32_t kTenToNth[kMaxSmallPowerOfTen + 1];
38
40
 
39
41
  // Large, fixed-width unsigned integer.
40
42
  //
@@ -0,0 +1,388 @@
1
+ //
2
+ // POSIX spec:
3
+ // http://pubs.opengroup.org/onlinepubs/009695399/functions/fprintf.html
4
+ //
5
+ #include "absl/strings/internal/str_format/arg.h"
6
+
7
+ #include <cassert>
8
+ #include <cerrno>
9
+ #include <cstdlib>
10
+ #include <string>
11
+ #include <type_traits>
12
+
13
+ #include "absl/base/port.h"
14
+ #include "absl/strings/internal/str_format/float_conversion.h"
15
+
16
+ namespace absl {
17
+ ABSL_NAMESPACE_BEGIN
18
+ namespace str_format_internal {
19
+ namespace {
20
+
21
+ const char kDigit[2][32] = { "0123456789abcdef", "0123456789ABCDEF" };
22
+
23
+ // Reduce *capacity by s.size(), clipped to a 0 minimum.
24
+ void ReducePadding(string_view s, size_t *capacity) {
25
+ *capacity = Excess(s.size(), *capacity);
26
+ }
27
+
28
+ // Reduce *capacity by n, clipped to a 0 minimum.
29
+ void ReducePadding(size_t n, size_t *capacity) {
30
+ *capacity = Excess(n, *capacity);
31
+ }
32
+
33
+ template <typename T>
34
+ struct MakeUnsigned : std::make_unsigned<T> {};
35
+ template <>
36
+ struct MakeUnsigned<absl::int128> {
37
+ using type = absl::uint128;
38
+ };
39
+ template <>
40
+ struct MakeUnsigned<absl::uint128> {
41
+ using type = absl::uint128;
42
+ };
43
+
44
+ template <typename T>
45
+ struct IsSigned : std::is_signed<T> {};
46
+ template <>
47
+ struct IsSigned<absl::int128> : std::true_type {};
48
+ template <>
49
+ struct IsSigned<absl::uint128> : std::false_type {};
50
+
51
+ class ConvertedIntInfo {
52
+ public:
53
+ template <typename T>
54
+ ConvertedIntInfo(T v, ConversionChar conv) {
55
+ using Unsigned = typename MakeUnsigned<T>::type;
56
+ auto u = static_cast<Unsigned>(v);
57
+ if (IsNeg(v)) {
58
+ is_neg_ = true;
59
+ u = Unsigned{} - u;
60
+ } else {
61
+ is_neg_ = false;
62
+ }
63
+ UnsignedToStringRight(u, conv);
64
+ }
65
+
66
+ string_view digits() const {
67
+ return {end() - size_, static_cast<size_t>(size_)};
68
+ }
69
+ bool is_neg() const { return is_neg_; }
70
+
71
+ private:
72
+ template <typename T, bool IsSigned>
73
+ struct IsNegImpl {
74
+ static bool Eval(T v) { return v < 0; }
75
+ };
76
+ template <typename T>
77
+ struct IsNegImpl<T, false> {
78
+ static bool Eval(T) {
79
+ return false;
80
+ }
81
+ };
82
+
83
+ template <typename T>
84
+ bool IsNeg(T v) {
85
+ return IsNegImpl<T, IsSigned<T>::value>::Eval(v);
86
+ }
87
+
88
+ template <typename T>
89
+ void UnsignedToStringRight(T u, ConversionChar conv) {
90
+ char *p = end();
91
+ switch (FormatConversionCharRadix(conv)) {
92
+ default:
93
+ case 10:
94
+ for (; u; u /= 10)
95
+ *--p = static_cast<char>('0' + static_cast<size_t>(u % 10));
96
+ break;
97
+ case 8:
98
+ for (; u; u /= 8)
99
+ *--p = static_cast<char>('0' + static_cast<size_t>(u % 8));
100
+ break;
101
+ case 16: {
102
+ const char *digits = kDigit[FormatConversionCharIsUpper(conv) ? 1 : 0];
103
+ for (; u; u /= 16) *--p = digits[static_cast<size_t>(u % 16)];
104
+ break;
105
+ }
106
+ }
107
+ size_ = static_cast<int>(end() - p);
108
+ }
109
+
110
+ const char *end() const { return storage_ + sizeof(storage_); }
111
+ char *end() { return storage_ + sizeof(storage_); }
112
+
113
+ bool is_neg_;
114
+ int size_;
115
+ // Max size: 128 bit value as octal -> 43 digits
116
+ char storage_[128 / 3 + 1];
117
+ };
118
+
119
+ // Note: 'o' conversions do not have a base indicator, it's just that
120
+ // the '#' flag is specified to modify the precision for 'o' conversions.
121
+ string_view BaseIndicator(const ConvertedIntInfo &info,
122
+ const ConversionSpec conv) {
123
+ bool alt = conv.flags().alt;
124
+ int radix = FormatConversionCharRadix(conv.conv());
125
+ if (conv.conv() == ConversionChar::p) alt = true; // always show 0x for %p.
126
+ // From the POSIX description of '#' flag:
127
+ // "For x or X conversion specifiers, a non-zero result shall have
128
+ // 0x (or 0X) prefixed to it."
129
+ if (alt && radix == 16 && !info.digits().empty()) {
130
+ if (FormatConversionCharIsUpper(conv.conv())) return "0X";
131
+ return "0x";
132
+ }
133
+ return {};
134
+ }
135
+
136
+ string_view SignColumn(bool neg, const ConversionSpec conv) {
137
+ if (FormatConversionCharIsSigned(conv.conv())) {
138
+ if (neg) return "-";
139
+ if (conv.flags().show_pos) return "+";
140
+ if (conv.flags().sign_col) return " ";
141
+ }
142
+ return {};
143
+ }
144
+
145
+ bool ConvertCharImpl(unsigned char v, const ConversionSpec conv,
146
+ FormatSinkImpl *sink) {
147
+ size_t fill = 0;
148
+ if (conv.width() >= 0) fill = conv.width();
149
+ ReducePadding(1, &fill);
150
+ if (!conv.flags().left) sink->Append(fill, ' ');
151
+ sink->Append(1, v);
152
+ if (conv.flags().left) sink->Append(fill, ' ');
153
+ return true;
154
+ }
155
+
156
+ bool ConvertIntImplInner(const ConvertedIntInfo &info,
157
+ const ConversionSpec conv, FormatSinkImpl *sink) {
158
+ // Print as a sequence of Substrings:
159
+ // [left_spaces][sign][base_indicator][zeroes][formatted][right_spaces]
160
+ size_t fill = 0;
161
+ if (conv.width() >= 0) fill = conv.width();
162
+
163
+ string_view formatted = info.digits();
164
+ ReducePadding(formatted, &fill);
165
+
166
+ string_view sign = SignColumn(info.is_neg(), conv);
167
+ ReducePadding(sign, &fill);
168
+
169
+ string_view base_indicator = BaseIndicator(info, conv);
170
+ ReducePadding(base_indicator, &fill);
171
+
172
+ int precision = conv.precision();
173
+ bool precision_specified = precision >= 0;
174
+ if (!precision_specified)
175
+ precision = 1;
176
+
177
+ if (conv.flags().alt && conv.conv() == ConversionChar::o) {
178
+ // From POSIX description of the '#' (alt) flag:
179
+ // "For o conversion, it increases the precision (if necessary) to
180
+ // force the first digit of the result to be zero."
181
+ if (formatted.empty() || *formatted.begin() != '0') {
182
+ int needed = static_cast<int>(formatted.size()) + 1;
183
+ precision = std::max(precision, needed);
184
+ }
185
+ }
186
+
187
+ size_t num_zeroes = Excess(formatted.size(), precision);
188
+ ReducePadding(num_zeroes, &fill);
189
+
190
+ size_t num_left_spaces = !conv.flags().left ? fill : 0;
191
+ size_t num_right_spaces = conv.flags().left ? fill : 0;
192
+
193
+ // From POSIX description of the '0' (zero) flag:
194
+ // "For d, i, o, u, x, and X conversion specifiers, if a precision
195
+ // is specified, the '0' flag is ignored."
196
+ if (!precision_specified && conv.flags().zero) {
197
+ num_zeroes += num_left_spaces;
198
+ num_left_spaces = 0;
199
+ }
200
+
201
+ sink->Append(num_left_spaces, ' ');
202
+ sink->Append(sign);
203
+ sink->Append(base_indicator);
204
+ sink->Append(num_zeroes, '0');
205
+ sink->Append(formatted);
206
+ sink->Append(num_right_spaces, ' ');
207
+ return true;
208
+ }
209
+
210
+ template <typename T>
211
+ bool ConvertIntImplInner(T v, const ConversionSpec conv, FormatSinkImpl *sink) {
212
+ ConvertedIntInfo info(v, conv.conv());
213
+ if (conv.flags().basic && (conv.conv() != ConversionChar::p)) {
214
+ if (info.is_neg()) sink->Append(1, '-');
215
+ if (info.digits().empty()) {
216
+ sink->Append(1, '0');
217
+ } else {
218
+ sink->Append(info.digits());
219
+ }
220
+ return true;
221
+ }
222
+ return ConvertIntImplInner(info, conv, sink);
223
+ }
224
+
225
+ template <typename T>
226
+ bool ConvertIntArg(T v, const ConversionSpec conv, FormatSinkImpl *sink) {
227
+ if (FormatConversionCharIsFloat(conv.conv())) {
228
+ return FormatConvertImpl(static_cast<double>(v), conv, sink).value;
229
+ }
230
+ if (conv.conv() == ConversionChar::c)
231
+ return ConvertCharImpl(static_cast<unsigned char>(v), conv, sink);
232
+ if (!FormatConversionCharIsIntegral(conv.conv())) return false;
233
+ if (!FormatConversionCharIsSigned(conv.conv()) && IsSigned<T>::value) {
234
+ using U = typename MakeUnsigned<T>::type;
235
+ return FormatConvertImpl(static_cast<U>(v), conv, sink).value;
236
+ }
237
+ return ConvertIntImplInner(v, conv, sink);
238
+ }
239
+
240
+ template <typename T>
241
+ bool ConvertFloatArg(T v, const ConversionSpec conv, FormatSinkImpl *sink) {
242
+ return FormatConversionCharIsFloat(conv.conv()) &&
243
+ ConvertFloatImpl(v, conv, sink);
244
+ }
245
+
246
+ inline bool ConvertStringArg(string_view v, const ConversionSpec conv,
247
+ FormatSinkImpl *sink) {
248
+ if (conv.conv() != ConversionChar::s) return false;
249
+ if (conv.flags().basic) {
250
+ sink->Append(v);
251
+ return true;
252
+ }
253
+ return sink->PutPaddedString(v, conv.width(), conv.precision(),
254
+ conv.flags().left);
255
+ }
256
+
257
+ } // namespace
258
+
259
+ // ==================== Strings ====================
260
+ ConvertResult<Conv::s> FormatConvertImpl(const std::string &v,
261
+ const ConversionSpec conv,
262
+ FormatSinkImpl *sink) {
263
+ return {ConvertStringArg(v, conv, sink)};
264
+ }
265
+
266
+ ConvertResult<Conv::s> FormatConvertImpl(string_view v,
267
+ const ConversionSpec conv,
268
+ FormatSinkImpl *sink) {
269
+ return {ConvertStringArg(v, conv, sink)};
270
+ }
271
+
272
+ ConvertResult<Conv::s | Conv::p> FormatConvertImpl(const char *v,
273
+ const ConversionSpec conv,
274
+ FormatSinkImpl *sink) {
275
+ if (conv.conv() == ConversionChar::p)
276
+ return {FormatConvertImpl(VoidPtr(v), conv, sink).value};
277
+ size_t len;
278
+ if (v == nullptr) {
279
+ len = 0;
280
+ } else if (conv.precision() < 0) {
281
+ len = std::strlen(v);
282
+ } else {
283
+ // If precision is set, we look for the NUL-terminator on the valid range.
284
+ len = std::find(v, v + conv.precision(), '\0') - v;
285
+ }
286
+ return {ConvertStringArg(string_view(v, len), conv, sink)};
287
+ }
288
+
289
+ // ==================== Raw pointers ====================
290
+ ConvertResult<Conv::p> FormatConvertImpl(VoidPtr v, const ConversionSpec conv,
291
+ FormatSinkImpl *sink) {
292
+ if (conv.conv() != ConversionChar::p) return {false};
293
+ if (!v.value) {
294
+ sink->Append("(nil)");
295
+ return {true};
296
+ }
297
+ return {ConvertIntImplInner(v.value, conv, sink)};
298
+ }
299
+
300
+ // ==================== Floats ====================
301
+ FloatingConvertResult FormatConvertImpl(float v, const ConversionSpec conv,
302
+ FormatSinkImpl *sink) {
303
+ return {ConvertFloatArg(v, conv, sink)};
304
+ }
305
+ FloatingConvertResult FormatConvertImpl(double v, const ConversionSpec conv,
306
+ FormatSinkImpl *sink) {
307
+ return {ConvertFloatArg(v, conv, sink)};
308
+ }
309
+ FloatingConvertResult FormatConvertImpl(long double v,
310
+ const ConversionSpec conv,
311
+ FormatSinkImpl *sink) {
312
+ return {ConvertFloatArg(v, conv, sink)};
313
+ }
314
+
315
+ // ==================== Chars ====================
316
+ IntegralConvertResult FormatConvertImpl(char v, const ConversionSpec conv,
317
+ FormatSinkImpl *sink) {
318
+ return {ConvertIntArg(v, conv, sink)};
319
+ }
320
+ IntegralConvertResult FormatConvertImpl(signed char v,
321
+ const ConversionSpec conv,
322
+ FormatSinkImpl *sink) {
323
+ return {ConvertIntArg(v, conv, sink)};
324
+ }
325
+ IntegralConvertResult FormatConvertImpl(unsigned char v,
326
+ const ConversionSpec conv,
327
+ FormatSinkImpl *sink) {
328
+ return {ConvertIntArg(v, conv, sink)};
329
+ }
330
+
331
+ // ==================== Ints ====================
332
+ IntegralConvertResult FormatConvertImpl(short v, // NOLINT
333
+ const ConversionSpec conv,
334
+ FormatSinkImpl *sink) {
335
+ return {ConvertIntArg(v, conv, sink)};
336
+ }
337
+ IntegralConvertResult FormatConvertImpl(unsigned short v, // NOLINT
338
+ const ConversionSpec conv,
339
+ FormatSinkImpl *sink) {
340
+ return {ConvertIntArg(v, conv, sink)};
341
+ }
342
+ IntegralConvertResult FormatConvertImpl(int v, const ConversionSpec conv,
343
+ FormatSinkImpl *sink) {
344
+ return {ConvertIntArg(v, conv, sink)};
345
+ }
346
+ IntegralConvertResult FormatConvertImpl(unsigned v, const ConversionSpec conv,
347
+ FormatSinkImpl *sink) {
348
+ return {ConvertIntArg(v, conv, sink)};
349
+ }
350
+ IntegralConvertResult FormatConvertImpl(long v, // NOLINT
351
+ const ConversionSpec conv,
352
+ FormatSinkImpl *sink) {
353
+ return {ConvertIntArg(v, conv, sink)};
354
+ }
355
+ IntegralConvertResult FormatConvertImpl(unsigned long v, // NOLINT
356
+ const ConversionSpec conv,
357
+ FormatSinkImpl *sink) {
358
+ return {ConvertIntArg(v, conv, sink)};
359
+ }
360
+ IntegralConvertResult FormatConvertImpl(long long v, // NOLINT
361
+ const ConversionSpec conv,
362
+ FormatSinkImpl *sink) {
363
+ return {ConvertIntArg(v, conv, sink)};
364
+ }
365
+ IntegralConvertResult FormatConvertImpl(unsigned long long v, // NOLINT
366
+ const ConversionSpec conv,
367
+ FormatSinkImpl *sink) {
368
+ return {ConvertIntArg(v, conv, sink)};
369
+ }
370
+ IntegralConvertResult FormatConvertImpl(absl::int128 v,
371
+ const ConversionSpec conv,
372
+ FormatSinkImpl *sink) {
373
+ return {ConvertIntArg(v, conv, sink)};
374
+ }
375
+ IntegralConvertResult FormatConvertImpl(absl::uint128 v,
376
+ const ConversionSpec conv,
377
+ FormatSinkImpl *sink) {
378
+ return {ConvertIntArg(v, conv, sink)};
379
+ }
380
+
381
+ ABSL_INTERNAL_FORMAT_DISPATCH_OVERLOADS_EXPAND_();
382
+
383
+
384
+
385
+ } // namespace str_format_internal
386
+
387
+ ABSL_NAMESPACE_END
388
+ } // namespace absl