grpc 1.9.1 → 1.10.0.pre1

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 (637) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +2654 -953
  3. data/etc/roots.pem +282 -683
  4. data/include/grpc/compression.h +9 -26
  5. data/include/grpc/grpc.h +10 -24
  6. data/include/grpc/grpc_security.h +7 -1
  7. data/include/grpc/impl/codegen/compression_types.h +5 -62
  8. data/include/grpc/impl/codegen/grpc_types.h +10 -6
  9. data/include/grpc/module.modulemap +1 -10
  10. data/include/grpc/support/alloc.h +3 -2
  11. data/include/grpc/support/log.h +1 -2
  12. data/{src/core/lib/gpr/thd_internal.h → include/grpc/support/thd_id.h} +23 -9
  13. data/src/boringssl/err_data.c +550 -496
  14. data/src/core/ext/census/grpc_context.cc +2 -1
  15. data/src/core/ext/filters/client_channel/backup_poller.cc +5 -4
  16. data/src/core/ext/filters/client_channel/channel_connectivity.cc +7 -7
  17. data/src/core/ext/filters/client_channel/client_channel.cc +162 -172
  18. data/src/core/ext/filters/client_channel/client_channel_factory.cc +4 -2
  19. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +10 -10
  20. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +18 -14
  21. data/src/core/ext/filters/client_channel/http_proxy.cc +3 -1
  22. data/src/core/ext/filters/client_channel/lb_policy.cc +21 -105
  23. data/src/core/ext/filters/client_channel/lb_policy.h +166 -170
  24. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +41 -36
  25. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1452 -1459
  26. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +3 -2
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +7 -8
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +27 -27
  30. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +279 -304
  31. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +358 -330
  32. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +30 -41
  33. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +7 -14
  34. data/src/core/ext/filters/client_channel/lb_policy_factory.cc +8 -21
  35. data/src/core/ext/filters/client_channel/lb_policy_factory.h +23 -27
  36. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +58 -33
  37. data/src/core/ext/filters/client_channel/lb_policy_registry.h +25 -12
  38. data/src/core/ext/filters/client_channel/parse_address.cc +10 -8
  39. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -2
  40. data/src/core/ext/filters/client_channel/resolver.cc +6 -52
  41. data/src/core/ext/filters/client_channel/resolver.h +98 -55
  42. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +266 -237
  43. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
  44. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +31 -27
  45. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +244 -207
  46. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +161 -148
  47. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +47 -31
  48. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +126 -126
  49. data/src/core/ext/filters/client_channel/resolver_factory.h +33 -32
  50. data/src/core/ext/filters/client_channel/resolver_registry.cc +110 -90
  51. data/src/core/ext/filters/client_channel/resolver_registry.h +49 -36
  52. data/src/core/ext/filters/client_channel/retry_throttle.cc +29 -22
  53. data/src/core/ext/filters/client_channel/subchannel.cc +173 -173
  54. data/src/core/ext/filters/client_channel/subchannel.h +38 -45
  55. data/src/core/ext/filters/client_channel/subchannel_index.cc +44 -40
  56. data/src/core/ext/filters/client_channel/uri_parser.cc +3 -3
  57. data/src/core/ext/filters/deadline/deadline_filter.cc +27 -18
  58. data/src/core/ext/filters/http/client/http_client_filter.cc +26 -23
  59. data/src/core/ext/filters/http/http_filters_plugin.cc +3 -2
  60. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +78 -110
  61. data/src/core/ext/filters/http/server/http_server_filter.cc +29 -26
  62. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +9 -11
  63. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +2 -1
  64. data/src/core/ext/filters/max_age/max_age_filter.cc +14 -14
  65. data/src/core/ext/filters/message_size/message_size_filter.cc +20 -18
  66. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -4
  67. data/src/core/ext/filters/workarounds/workaround_utils.cc +4 -4
  68. data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
  69. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +10 -10
  70. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +4 -4
  71. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +11 -12
  72. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +16 -13
  73. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +36 -9
  74. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +3 -0
  75. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +17 -14
  76. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -145
  77. data/src/core/ext/transport/chttp2/transport/flow_control.cc +16 -14
  78. data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -7
  79. data/src/core/ext/transport/chttp2/transport/frame_data.cc +35 -33
  80. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +27 -25
  81. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +12 -12
  82. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +16 -15
  83. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -19
  84. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +11 -11
  85. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +23 -22
  86. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +35 -35
  87. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +10 -7
  88. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +2 -2
  89. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  90. data/src/core/ext/transport/chttp2/transport/internal.h +1 -1
  91. data/src/core/ext/transport/chttp2/transport/parsing.cc +35 -39
  92. data/src/core/ext/transport/chttp2/transport/stream_map.cc +8 -7
  93. data/src/core/ext/transport/chttp2/transport/varint.cc +5 -5
  94. data/src/core/ext/transport/chttp2/transport/writing.cc +18 -18
  95. data/src/core/ext/transport/inproc/inproc_transport.cc +43 -23
  96. data/src/core/lib/{gpr → avl}/avl.cc +61 -57
  97. data/{include/grpc/support → src/core/lib/avl}/avl.h +25 -35
  98. data/src/core/lib/backoff/backoff.cc +6 -5
  99. data/src/core/lib/channel/channel_args.cc +23 -109
  100. data/src/core/lib/channel/channel_args.h +5 -31
  101. data/src/core/lib/channel/channel_stack.cc +11 -8
  102. data/src/core/lib/channel/channel_stack_builder.cc +10 -7
  103. data/src/core/lib/channel/connected_channel.cc +18 -17
  104. data/src/core/lib/channel/handshaker.cc +8 -8
  105. data/src/core/lib/channel/handshaker_registry.cc +3 -2
  106. data/src/core/lib/compression/algorithm_metadata.h +13 -6
  107. data/src/core/lib/compression/compression.cc +72 -183
  108. data/src/core/lib/compression/compression_internal.cc +274 -0
  109. data/src/core/lib/compression/compression_internal.h +86 -0
  110. data/src/core/lib/compression/message_compress.cc +15 -15
  111. data/src/core/lib/compression/message_compress.h +4 -3
  112. data/src/core/lib/compression/stream_compression_gzip.cc +8 -8
  113. data/src/core/lib/compression/stream_compression_identity.cc +1 -1
  114. data/src/core/lib/debug/stats.cc +10 -8
  115. data/src/core/lib/debug/stats_data.cc +2 -1
  116. data/src/core/lib/debug/trace.cc +3 -3
  117. data/src/core/lib/gpr/alloc.cc +7 -11
  118. data/src/core/lib/gpr/arena.cc +34 -12
  119. data/src/core/lib/gpr/atm.cc +2 -1
  120. data/src/core/lib/gpr/cpu_linux.cc +3 -3
  121. data/src/core/lib/gpr/cpu_posix.cc +2 -1
  122. data/src/core/lib/gpr/env.h +1 -1
  123. data/src/core/lib/gpr/env_linux.cc +1 -1
  124. data/src/core/lib/gpr/env_windows.cc +4 -4
  125. data/src/core/lib/gpr/fork.cc +16 -2
  126. data/src/core/lib/gpr/host_port.cc +5 -4
  127. data/{include/grpc/support → src/core/lib/gpr}/host_port.h +5 -13
  128. data/src/core/lib/gpr/log.cc +5 -4
  129. data/src/core/lib/gpr/log_linux.cc +1 -1
  130. data/src/core/lib/gpr/mpscq.cc +1 -0
  131. data/src/core/lib/gpr/murmur_hash.cc +4 -4
  132. data/src/core/lib/gpr/string.cc +19 -16
  133. data/src/core/lib/gpr/string_posix.cc +3 -3
  134. data/src/core/lib/gpr/sync_posix.cc +5 -9
  135. data/src/core/lib/gpr/thd.cc +3 -3
  136. data/{include/grpc/support → src/core/lib/gpr}/thd.h +20 -28
  137. data/src/core/lib/gpr/thd_posix.cc +6 -4
  138. data/src/core/lib/gpr/thd_windows.cc +3 -1
  139. data/src/core/lib/gpr/time.cc +6 -4
  140. data/src/core/lib/gpr/time_posix.cc +2 -2
  141. data/{include/grpc/support → src/core/lib/gpr}/tls.h +6 -6
  142. data/{include/grpc/support → src/core/lib/gpr}/tls_gcc.h +3 -3
  143. data/{include/grpc/support → src/core/lib/gpr}/tls_msvc.h +3 -3
  144. data/src/core/lib/gpr/tls_pthread.cc +1 -1
  145. data/{include/grpc/support → src/core/lib/gpr}/tls_pthread.h +3 -3
  146. data/{include/grpc/support → src/core/lib/gpr}/useful.h +3 -3
  147. data/src/core/lib/{gpr++ → gprpp}/abstract.h +3 -3
  148. data/src/core/lib/{gpr++ → gprpp}/atomic.h +5 -5
  149. data/src/core/lib/{gpr++ → gprpp}/atomic_with_atm.h +3 -3
  150. data/src/core/lib/{gpr++ → gprpp}/atomic_with_std.h +3 -3
  151. data/src/core/lib/{gpr++ → gprpp}/debug_location.h +3 -3
  152. data/src/core/lib/{gpr++ → gprpp}/inlined_vector.h +44 -22
  153. data/src/core/lib/{gpr++ → gprpp}/manual_constructor.h +2 -2
  154. data/src/core/lib/{gpr++ → gprpp}/memory.h +14 -5
  155. data/src/core/lib/{gpr++ → gprpp}/orphanable.h +39 -14
  156. data/src/core/lib/{gpr++ → gprpp}/ref_counted.h +42 -10
  157. data/src/core/lib/{gpr++ → gprpp}/ref_counted_ptr.h +18 -8
  158. data/src/core/lib/http/format_request.cc +3 -3
  159. data/src/core/lib/http/httpcli.cc +6 -7
  160. data/src/core/lib/http/httpcli_security_connector.cc +10 -10
  161. data/src/core/lib/http/parser.cc +16 -12
  162. data/src/core/lib/iomgr/call_combiner.cc +12 -13
  163. data/src/core/lib/iomgr/closure.h +4 -6
  164. data/src/core/lib/iomgr/combiner.cc +10 -21
  165. data/src/core/lib/iomgr/error.cc +50 -55
  166. data/src/core/lib/iomgr/ev_epoll1_linux.cc +41 -52
  167. data/src/core/lib/iomgr/ev_epollex_linux.cc +80 -28
  168. data/src/core/lib/iomgr/ev_epollsig_linux.cc +23 -30
  169. data/src/core/lib/iomgr/ev_poll_posix.cc +52 -46
  170. data/src/core/lib/iomgr/ev_posix.cc +47 -6
  171. data/src/core/lib/iomgr/exec_ctx.cc +10 -10
  172. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  173. data/src/core/lib/iomgr/executor.cc +16 -13
  174. data/src/core/lib/iomgr/fork_posix.cc +1 -3
  175. data/src/core/lib/iomgr/gethostname_host_name_max.cc +1 -1
  176. data/src/core/lib/iomgr/iocp_windows.cc +1 -2
  177. data/src/core/lib/iomgr/iomgr.cc +2 -2
  178. data/src/core/lib/iomgr/iomgr_uv.cc +2 -0
  179. data/src/core/lib/iomgr/iomgr_uv.h +1 -1
  180. data/src/core/lib/iomgr/is_epollexclusive_available.cc +5 -4
  181. data/src/core/lib/iomgr/load_file.cc +3 -3
  182. data/src/core/lib/iomgr/pollset_windows.cc +1 -1
  183. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -9
  184. data/src/core/lib/iomgr/resolve_address_uv.cc +2 -2
  185. data/src/core/lib/iomgr/resolve_address_windows.cc +3 -2
  186. data/src/core/lib/iomgr/resource_quota.cc +36 -34
  187. data/src/core/lib/iomgr/sockaddr_utils.cc +39 -23
  188. data/src/core/lib/iomgr/socket_factory_posix.cc +5 -5
  189. data/src/core/lib/iomgr/socket_mutator.cc +7 -7
  190. data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -4
  191. data/src/core/lib/iomgr/socket_utils_linux.cc +3 -2
  192. data/src/core/lib/iomgr/tcp_client_posix.cc +7 -6
  193. data/src/core/lib/iomgr/tcp_client_windows.cc +0 -1
  194. data/src/core/lib/iomgr/tcp_posix.cc +47 -55
  195. data/src/core/lib/iomgr/tcp_server_posix.cc +12 -10
  196. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -5
  197. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -3
  198. data/src/core/lib/iomgr/tcp_windows.cc +1 -1
  199. data/src/core/lib/iomgr/timer_generic.cc +16 -14
  200. data/src/core/lib/iomgr/timer_heap.cc +8 -7
  201. data/src/core/lib/iomgr/timer_manager.cc +4 -3
  202. data/src/core/lib/iomgr/udp_server.cc +24 -16
  203. data/src/core/lib/iomgr/unix_sockets_posix.cc +15 -10
  204. data/src/core/lib/iomgr/wakeup_fd_cv.cc +6 -5
  205. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +1 -2
  206. data/src/core/lib/json/json.cc +1 -1
  207. data/src/core/lib/json/json_reader.cc +8 -6
  208. data/src/core/lib/json/json_string.cc +19 -18
  209. data/src/core/lib/json/json_writer.cc +10 -8
  210. data/src/core/lib/profiling/basic_timers.cc +1 -1
  211. data/src/core/lib/profiling/timers.h +3 -20
  212. data/src/core/lib/security/context/security_context.cc +16 -14
  213. data/src/core/lib/security/credentials/composite/composite_credentials.cc +17 -14
  214. data/src/core/lib/security/credentials/credentials.cc +9 -8
  215. data/src/core/lib/security/credentials/credentials.h +1 -1
  216. data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
  217. data/src/core/lib/security/credentials/fake/fake_credentials.cc +12 -13
  218. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +7 -4
  219. data/src/core/lib/security/credentials/iam/iam_credentials.cc +5 -3
  220. data/src/core/lib/security/credentials/jwt/json_token.cc +4 -3
  221. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -7
  222. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +21 -18
  223. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +23 -18
  224. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +11 -7
  225. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +22 -21
  226. data/src/core/lib/security/{transport → security_connector}/security_connector.cc +46 -43
  227. data/src/core/lib/security/{transport → security_connector}/security_connector.h +3 -3
  228. data/src/core/lib/security/transport/client_auth_filter.cc +32 -34
  229. data/src/core/lib/security/transport/lb_targets_info.cc +7 -5
  230. data/src/core/lib/security/transport/secure_endpoint.cc +21 -21
  231. data/src/core/lib/security/transport/security_handshaker.cc +19 -18
  232. data/src/core/lib/security/transport/security_handshaker.h +1 -1
  233. data/src/core/lib/security/transport/server_auth_filter.cc +21 -21
  234. data/src/core/lib/slice/b64.cc +19 -16
  235. data/src/core/lib/slice/percent_encoding.cc +5 -5
  236. data/src/core/lib/slice/slice.cc +35 -33
  237. data/src/core/lib/slice/slice_buffer.cc +16 -14
  238. data/src/core/lib/slice/slice_hash_table.cc +3 -2
  239. data/src/core/lib/slice/slice_intern.cc +21 -25
  240. data/src/core/lib/slice/slice_string_helpers.cc +45 -9
  241. data/src/core/lib/slice/slice_string_helpers.h +6 -0
  242. data/src/core/lib/surface/byte_buffer.cc +2 -2
  243. data/src/core/lib/surface/byte_buffer_reader.cc +6 -3
  244. data/src/core/lib/surface/call.cc +171 -260
  245. data/src/core/lib/surface/call_test_only.h +1 -13
  246. data/src/core/lib/surface/channel.cc +20 -43
  247. data/src/core/lib/surface/channel_init.cc +7 -7
  248. data/src/core/lib/surface/channel_ping.cc +2 -2
  249. data/src/core/lib/surface/completion_queue.cc +69 -75
  250. data/src/core/lib/surface/init.cc +4 -5
  251. data/src/core/lib/surface/init_secure.cc +1 -1
  252. data/src/core/lib/surface/lame_client.cc +1 -1
  253. data/src/core/lib/surface/server.cc +64 -59
  254. data/src/core/lib/surface/version.cc +2 -2
  255. data/src/core/lib/transport/bdp_estimator.cc +6 -5
  256. data/src/core/lib/transport/byte_stream.cc +23 -14
  257. data/src/core/lib/transport/byte_stream.h +1 -1
  258. data/src/core/lib/transport/connectivity_state.cc +9 -13
  259. data/src/core/lib/transport/error_utils.cc +10 -7
  260. data/src/core/lib/transport/metadata.cc +27 -26
  261. data/src/core/lib/transport/metadata.h +1 -1
  262. data/src/core/lib/transport/pid_controller.cc +2 -1
  263. data/src/core/lib/transport/service_config.cc +5 -5
  264. data/src/core/lib/transport/static_metadata.cc +225 -222
  265. data/src/core/lib/transport/static_metadata.h +77 -76
  266. data/src/core/lib/transport/timeout_encoding.cc +3 -2
  267. data/src/core/lib/transport/transport.cc +6 -5
  268. data/src/core/lib/transport/transport_op_string.cc +0 -1
  269. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -4
  270. data/src/core/tsi/alts_transport_security.cc +61 -0
  271. data/src/core/tsi/{gts_transport_security.h → alts_transport_security.h} +16 -8
  272. data/src/core/tsi/fake_transport_security.cc +59 -43
  273. data/src/core/tsi/ssl_transport_security.cc +122 -107
  274. data/src/core/tsi/transport_security.cc +3 -3
  275. data/src/core/tsi/transport_security_adapter.cc +16 -10
  276. data/src/ruby/bin/apis/pubsub_demo.rb +1 -1
  277. data/src/ruby/ext/grpc/rb_channel.c +3 -4
  278. data/src/ruby/ext/grpc/rb_compression_options.c +13 -3
  279. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -76
  280. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +8 -120
  281. data/src/ruby/ext/grpc/rb_server.c +52 -28
  282. data/src/ruby/lib/grpc/generic/rpc_server.rb +7 -4
  283. data/src/ruby/lib/grpc/version.rb +1 -1
  284. data/src/ruby/pb/test/client.rb +1 -1
  285. data/src/ruby/pb/test/server.rb +1 -1
  286. data/src/ruby/spec/client_server_spec.rb +4 -2
  287. data/src/ruby/spec/generic/active_call_spec.rb +2 -1
  288. data/src/ruby/spec/generic/client_stub_spec.rb +32 -8
  289. data/src/ruby/spec/server_spec.rb +26 -7
  290. data/third_party/boringssl/crypto/asn1/a_bitstr.c +7 -2
  291. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +15 -0
  292. data/third_party/boringssl/crypto/asn1/a_gentm.c +1 -1
  293. data/third_party/boringssl/crypto/asn1/a_print.c +0 -28
  294. data/third_party/boringssl/crypto/asn1/a_strnid.c +3 -0
  295. data/third_party/boringssl/crypto/asn1/a_time.c +17 -9
  296. data/third_party/boringssl/crypto/asn1/a_utctm.c +1 -1
  297. data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -49
  298. data/third_party/boringssl/crypto/asn1/asn1_locl.h +1 -1
  299. data/third_party/boringssl/crypto/asn1/tasn_dec.c +9 -9
  300. data/third_party/boringssl/crypto/asn1/tasn_enc.c +0 -6
  301. data/third_party/boringssl/crypto/asn1/time_support.c +5 -5
  302. data/third_party/boringssl/crypto/base64/base64.c +65 -43
  303. data/third_party/boringssl/crypto/bio/bio.c +134 -110
  304. data/third_party/boringssl/crypto/bio/bio_mem.c +9 -9
  305. data/third_party/boringssl/crypto/bio/connect.c +17 -17
  306. data/third_party/boringssl/crypto/bio/fd.c +2 -1
  307. data/third_party/boringssl/crypto/bio/file.c +14 -14
  308. data/third_party/boringssl/crypto/bio/hexdump.c +15 -16
  309. data/third_party/boringssl/crypto/bio/internal.h +14 -14
  310. data/third_party/boringssl/crypto/bio/pair.c +45 -45
  311. data/third_party/boringssl/crypto/bio/printf.c +6 -10
  312. data/third_party/boringssl/crypto/{bn → bn_extra}/bn_asn1.c +9 -9
  313. data/third_party/boringssl/crypto/{bn → bn_extra}/convert.c +18 -223
  314. data/third_party/boringssl/crypto/buf/buf.c +20 -44
  315. data/third_party/boringssl/crypto/bytestring/ber.c +35 -35
  316. data/third_party/boringssl/crypto/bytestring/cbb.c +24 -24
  317. data/third_party/boringssl/crypto/bytestring/cbs.c +33 -37
  318. data/third_party/boringssl/crypto/bytestring/internal.h +38 -38
  319. data/third_party/boringssl/crypto/chacha/chacha.c +7 -7
  320. data/third_party/boringssl/crypto/{asn1/t_bitst.c → cipher_extra/cipher_extra.c} +49 -38
  321. data/third_party/boringssl/crypto/{cipher → cipher_extra}/derive_key.c +0 -2
  322. data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +281 -0
  323. data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +867 -0
  324. data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +326 -0
  325. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_null.c +0 -1
  326. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc2.c +22 -10
  327. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc4.c +0 -0
  328. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_ssl3.c +120 -64
  329. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_tls.c +220 -141
  330. data/third_party/boringssl/crypto/{asn1/x_bignum.c → cipher_extra/internal.h} +61 -86
  331. data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +482 -0
  332. data/third_party/boringssl/crypto/cmac/cmac.c +20 -20
  333. data/third_party/boringssl/crypto/conf/conf.c +32 -20
  334. data/third_party/boringssl/crypto/conf/internal.h +3 -3
  335. data/third_party/boringssl/crypto/cpu-aarch64-linux.c +5 -5
  336. data/third_party/boringssl/crypto/cpu-arm-linux.c +44 -41
  337. data/third_party/boringssl/crypto/cpu-intel.c +68 -43
  338. data/third_party/boringssl/crypto/cpu-ppc64le.c +5 -7
  339. data/third_party/boringssl/crypto/crypto.c +54 -32
  340. data/third_party/boringssl/crypto/curve25519/curve25519.c +269 -269
  341. data/third_party/boringssl/crypto/curve25519/internal.h +28 -8
  342. data/third_party/boringssl/crypto/curve25519/spake25519.c +180 -106
  343. data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +9 -9
  344. data/third_party/boringssl/crypto/dh/check.c +33 -34
  345. data/third_party/boringssl/crypto/dh/dh.c +72 -36
  346. data/third_party/boringssl/crypto/dh/dh_asn1.c +1 -1
  347. data/third_party/boringssl/crypto/dh/params.c +1 -161
  348. data/third_party/boringssl/crypto/digest_extra/digest_extra.c +240 -0
  349. data/third_party/boringssl/crypto/dsa/dsa.c +127 -87
  350. data/third_party/boringssl/crypto/dsa/dsa_asn1.c +1 -1
  351. data/third_party/boringssl/crypto/{ec → ec_extra}/ec_asn1.c +83 -70
  352. data/third_party/boringssl/crypto/ecdh/ecdh.c +1 -1
  353. data/third_party/boringssl/crypto/{ecdsa → ecdsa_extra}/ecdsa_asn1.c +86 -31
  354. data/third_party/boringssl/crypto/engine/engine.c +6 -6
  355. data/third_party/boringssl/crypto/err/err.c +197 -106
  356. data/third_party/boringssl/crypto/err/internal.h +58 -0
  357. data/third_party/boringssl/crypto/evp/digestsign.c +86 -14
  358. data/third_party/boringssl/crypto/evp/evp.c +6 -11
  359. data/third_party/boringssl/crypto/evp/evp_asn1.c +17 -17
  360. data/third_party/boringssl/crypto/evp/evp_ctx.c +15 -11
  361. data/third_party/boringssl/crypto/evp/internal.h +66 -51
  362. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +11 -11
  363. data/third_party/boringssl/crypto/evp/p_ec.c +10 -8
  364. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +11 -12
  365. data/third_party/boringssl/crypto/evp/p_ed25519.c +71 -0
  366. data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +190 -0
  367. data/third_party/boringssl/crypto/evp/p_rsa.c +50 -95
  368. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +28 -18
  369. data/third_party/boringssl/crypto/evp/pbkdf.c +49 -56
  370. data/third_party/boringssl/crypto/evp/print.c +5 -36
  371. data/third_party/boringssl/crypto/evp/scrypt.c +209 -0
  372. data/third_party/boringssl/crypto/ex_data.c +15 -45
  373. data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +100 -0
  374. data/third_party/boringssl/crypto/fipsmodule/bcm.c +679 -0
  375. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/internal.h +40 -27
  376. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/rsaz_exp.h +0 -0
  377. data/third_party/boringssl/crypto/{cipher → fipsmodule/cipher}/internal.h +34 -67
  378. data/third_party/boringssl/crypto/fipsmodule/delocate.h +88 -0
  379. data/third_party/boringssl/crypto/{des → fipsmodule/des}/internal.h +18 -4
  380. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/internal.h +18 -18
  381. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/md32_common.h +58 -64
  382. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/internal.h +58 -52
  383. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64-table.h +11 -11
  384. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64.h +32 -32
  385. data/third_party/boringssl/crypto/{rand/internal.h → fipsmodule/is_fips.c} +10 -15
  386. data/third_party/boringssl/crypto/{modes → fipsmodule/modes}/internal.h +112 -119
  387. data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +92 -0
  388. data/third_party/boringssl/crypto/{rsa → fipsmodule/rsa}/internal.h +36 -49
  389. data/third_party/boringssl/crypto/hkdf/hkdf.c +6 -6
  390. data/third_party/boringssl/crypto/internal.h +301 -233
  391. data/third_party/boringssl/crypto/lhash/lhash.c +26 -45
  392. data/third_party/boringssl/crypto/mem.c +76 -33
  393. data/third_party/boringssl/crypto/obj/obj.c +44 -28
  394. data/third_party/boringssl/crypto/obj/obj_dat.h +102 -34
  395. data/third_party/boringssl/crypto/obj/obj_xref.c +6 -6
  396. data/third_party/boringssl/crypto/pem/pem_info.c +3 -5
  397. data/third_party/boringssl/crypto/pem/pem_lib.c +1 -6
  398. data/third_party/boringssl/crypto/pem/pem_pk8.c +1 -0
  399. data/third_party/boringssl/crypto/pem/pem_pkey.c +1 -1
  400. data/third_party/boringssl/crypto/pem/pem_xaux.c +0 -2
  401. data/third_party/boringssl/crypto/pkcs7/internal.h +49 -0
  402. data/third_party/boringssl/crypto/pkcs7/pkcs7.c +166 -0
  403. data/third_party/boringssl/crypto/{x509/pkcs7.c → pkcs7/pkcs7_x509.c} +27 -147
  404. data/third_party/boringssl/crypto/pkcs8/internal.h +34 -16
  405. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +120 -39
  406. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +144 -857
  407. data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +789 -0
  408. data/third_party/boringssl/crypto/poly1305/internal.h +4 -3
  409. data/third_party/boringssl/crypto/poly1305/poly1305.c +14 -14
  410. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +11 -11
  411. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +41 -41
  412. data/third_party/boringssl/crypto/pool/internal.h +2 -2
  413. data/third_party/boringssl/crypto/pool/pool.c +15 -15
  414. data/third_party/boringssl/crypto/{rand → rand_extra}/deterministic.c +7 -7
  415. data/third_party/boringssl/crypto/rand_extra/forkunsafe.c +46 -0
  416. data/third_party/boringssl/crypto/{rand → rand_extra}/fuchsia.c +7 -7
  417. data/third_party/boringssl/crypto/rand_extra/rand_extra.c +70 -0
  418. data/third_party/boringssl/crypto/{rand → rand_extra}/windows.c +5 -5
  419. data/third_party/boringssl/crypto/refcount_c11.c +2 -2
  420. data/third_party/boringssl/crypto/refcount_lock.c +1 -1
  421. data/third_party/boringssl/crypto/{rsa → rsa_extra}/rsa_asn1.c +12 -120
  422. data/third_party/boringssl/crypto/stack/stack.c +13 -13
  423. data/third_party/boringssl/crypto/thread_none.c +1 -1
  424. data/third_party/boringssl/crypto/thread_pthread.c +1 -1
  425. data/third_party/boringssl/crypto/thread_win.c +40 -40
  426. data/third_party/boringssl/crypto/x509/a_sign.c +5 -12
  427. data/third_party/boringssl/crypto/x509/a_verify.c +6 -18
  428. data/third_party/boringssl/crypto/x509/algorithm.c +22 -6
  429. data/third_party/boringssl/crypto/x509/asn1_gen.c +30 -7
  430. data/third_party/boringssl/crypto/x509/by_dir.c +2 -2
  431. data/third_party/boringssl/crypto/x509/by_file.c +2 -2
  432. data/third_party/boringssl/crypto/x509/rsa_pss.c +5 -5
  433. data/third_party/boringssl/crypto/x509/t_x509.c +2 -1
  434. data/third_party/boringssl/crypto/x509/x509_def.c +5 -0
  435. data/third_party/boringssl/crypto/x509/x509_lu.c +35 -4
  436. data/third_party/boringssl/crypto/x509/x509_set.c +10 -0
  437. data/third_party/boringssl/crypto/x509/x509_vfy.c +20 -17
  438. data/third_party/boringssl/crypto/x509/x_name.c +13 -16
  439. data/third_party/boringssl/crypto/x509/x_x509.c +3 -3
  440. data/third_party/boringssl/crypto/x509/x_x509a.c +0 -7
  441. data/third_party/boringssl/crypto/x509v3/ext_dat.h +8 -0
  442. data/third_party/boringssl/crypto/x509v3/pcy_int.h +2 -2
  443. data/third_party/boringssl/crypto/x509v3/pcy_lib.c +0 -9
  444. data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -1
  445. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +25 -15
  446. data/third_party/boringssl/crypto/x509v3/v3_alt.c +21 -11
  447. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +9 -3
  448. data/third_party/boringssl/crypto/x509v3/v3_info.c +22 -14
  449. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +27 -11
  450. data/third_party/boringssl/crypto/x509v3/v3_pci.c +0 -33
  451. data/third_party/boringssl/crypto/x509v3/v3_utl.c +4 -4
  452. data/third_party/boringssl/include/openssl/aead.h +280 -191
  453. data/third_party/boringssl/include/openssl/aes.h +50 -50
  454. data/third_party/boringssl/include/openssl/arm_arch.h +12 -12
  455. data/third_party/boringssl/include/openssl/asn1.h +14 -77
  456. data/third_party/boringssl/include/openssl/asn1t.h +11 -15
  457. data/third_party/boringssl/include/openssl/base.h +78 -51
  458. data/third_party/boringssl/include/openssl/base64.h +68 -68
  459. data/third_party/boringssl/include/openssl/bio.h +472 -406
  460. data/third_party/boringssl/include/openssl/blowfish.h +1 -1
  461. data/third_party/boringssl/include/openssl/bn.h +454 -435
  462. data/third_party/boringssl/include/openssl/buf.h +27 -27
  463. data/third_party/boringssl/include/openssl/bytestring.h +282 -267
  464. data/third_party/boringssl/include/openssl/cast.h +2 -2
  465. data/third_party/boringssl/include/openssl/chacha.h +5 -5
  466. data/third_party/boringssl/include/openssl/cipher.h +209 -200
  467. data/third_party/boringssl/include/openssl/cmac.h +27 -27
  468. data/third_party/boringssl/include/openssl/conf.h +49 -46
  469. data/third_party/boringssl/include/openssl/cpu.h +60 -45
  470. data/third_party/boringssl/include/openssl/crypto.h +59 -35
  471. data/third_party/boringssl/include/openssl/curve25519.h +97 -92
  472. data/third_party/boringssl/include/openssl/des.h +25 -25
  473. data/third_party/boringssl/include/openssl/dh.h +98 -97
  474. data/third_party/boringssl/include/openssl/digest.h +143 -114
  475. data/third_party/boringssl/include/openssl/dsa.h +217 -202
  476. data/third_party/boringssl/include/openssl/ec.h +132 -131
  477. data/third_party/boringssl/include/openssl/ec_key.h +132 -128
  478. data/third_party/boringssl/include/openssl/ecdh.h +9 -9
  479. data/third_party/boringssl/include/openssl/ecdsa.h +66 -66
  480. data/third_party/boringssl/include/openssl/engine.h +38 -38
  481. data/third_party/boringssl/include/openssl/err.h +189 -219
  482. data/third_party/boringssl/include/openssl/evp.h +473 -397
  483. data/third_party/boringssl/include/openssl/ex_data.h +46 -56
  484. data/third_party/boringssl/include/openssl/hkdf.h +17 -17
  485. data/third_party/boringssl/include/openssl/hmac.h +55 -43
  486. data/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  487. data/third_party/boringssl/include/openssl/lhash.h +67 -67
  488. data/third_party/boringssl/include/openssl/lhash_macros.h +4 -4
  489. data/third_party/boringssl/include/openssl/md4.h +14 -14
  490. data/third_party/boringssl/include/openssl/md5.h +14 -14
  491. data/third_party/boringssl/include/openssl/mem.h +39 -33
  492. data/third_party/boringssl/include/openssl/nid.h +43 -0
  493. data/third_party/boringssl/include/openssl/obj.h +93 -87
  494. data/third_party/boringssl/include/openssl/opensslconf.h +8 -1
  495. data/third_party/boringssl/include/openssl/pem.h +2 -122
  496. data/third_party/boringssl/include/openssl/pkcs7.h +68 -2
  497. data/third_party/boringssl/include/openssl/pkcs8.h +81 -66
  498. data/third_party/boringssl/include/openssl/poly1305.h +11 -11
  499. data/third_party/boringssl/include/openssl/pool.h +29 -25
  500. data/third_party/boringssl/include/openssl/rand.h +48 -45
  501. data/third_party/boringssl/include/openssl/rc4.h +9 -9
  502. data/third_party/boringssl/include/openssl/ripemd.h +13 -13
  503. data/third_party/boringssl/include/openssl/rsa.h +371 -340
  504. data/third_party/boringssl/include/openssl/sha.h +71 -71
  505. data/third_party/boringssl/include/openssl/span.h +191 -0
  506. data/third_party/boringssl/include/openssl/ssl.h +2639 -2519
  507. data/third_party/boringssl/include/openssl/ssl3.h +39 -122
  508. data/third_party/boringssl/include/openssl/stack.h +355 -164
  509. data/third_party/boringssl/include/openssl/thread.h +43 -43
  510. data/third_party/boringssl/include/openssl/tls1.h +60 -63
  511. data/third_party/boringssl/include/openssl/type_check.h +10 -14
  512. data/third_party/boringssl/include/openssl/x509.h +41 -116
  513. data/third_party/boringssl/include/openssl/x509_vfy.h +17 -25
  514. data/third_party/boringssl/include/openssl/x509v3.h +27 -21
  515. data/third_party/boringssl/ssl/{bio_ssl.c → bio_ssl.cc} +9 -5
  516. data/third_party/boringssl/ssl/{custom_extensions.c → custom_extensions.cc} +19 -12
  517. data/third_party/boringssl/ssl/{d1_both.c → d1_both.cc} +224 -193
  518. data/third_party/boringssl/ssl/{d1_lib.c → d1_lib.cc} +86 -79
  519. data/third_party/boringssl/ssl/{d1_pkt.c → d1_pkt.cc} +55 -87
  520. data/third_party/boringssl/ssl/{d1_srtp.c → d1_srtp.cc} +12 -16
  521. data/third_party/boringssl/ssl/{dtls_method.c → dtls_method.cc} +33 -50
  522. data/third_party/boringssl/ssl/{dtls_record.c → dtls_record.cc} +76 -64
  523. data/third_party/boringssl/ssl/handshake.cc +547 -0
  524. data/third_party/boringssl/ssl/handshake_client.cc +1828 -0
  525. data/third_party/boringssl/ssl/handshake_server.cc +1672 -0
  526. data/third_party/boringssl/ssl/internal.h +2027 -1280
  527. data/third_party/boringssl/ssl/s3_both.cc +603 -0
  528. data/third_party/boringssl/ssl/{s3_lib.c → s3_lib.cc} +22 -10
  529. data/third_party/boringssl/ssl/{s3_pkt.c → s3_pkt.cc} +171 -75
  530. data/third_party/boringssl/ssl/ssl_aead_ctx.cc +415 -0
  531. data/third_party/boringssl/ssl/{ssl_asn1.c → ssl_asn1.cc} +257 -261
  532. data/third_party/boringssl/ssl/{ssl_buffer.c → ssl_buffer.cc} +81 -97
  533. data/third_party/boringssl/ssl/{ssl_cert.c → ssl_cert.cc} +304 -414
  534. data/third_party/boringssl/ssl/{ssl_cipher.c → ssl_cipher.cc} +427 -505
  535. data/third_party/boringssl/ssl/{ssl_file.c → ssl_file.cc} +24 -16
  536. data/third_party/boringssl/ssl/ssl_key_share.cc +245 -0
  537. data/third_party/boringssl/ssl/{ssl_lib.c → ssl_lib.cc} +665 -828
  538. data/third_party/boringssl/ssl/ssl_privkey.cc +518 -0
  539. data/third_party/boringssl/ssl/{ssl_session.c → ssl_session.cc} +596 -471
  540. data/third_party/boringssl/ssl/{ssl_stat.c → ssl_stat.cc} +5 -224
  541. data/third_party/boringssl/ssl/{ssl_transcript.c → ssl_transcript.cc} +117 -140
  542. data/third_party/boringssl/ssl/ssl_versions.cc +439 -0
  543. data/third_party/boringssl/ssl/{ssl_x509.c → ssl_x509.cc} +751 -267
  544. data/third_party/boringssl/ssl/{t1_enc.c → t1_enc.cc} +120 -161
  545. data/third_party/boringssl/ssl/{t1_lib.c → t1_lib.cc} +859 -966
  546. data/third_party/boringssl/ssl/{tls13_both.c → tls13_both.cc} +202 -284
  547. data/third_party/boringssl/ssl/tls13_client.cc +842 -0
  548. data/third_party/boringssl/ssl/{tls13_enc.c → tls13_enc.cc} +108 -90
  549. data/third_party/boringssl/ssl/tls13_server.cc +967 -0
  550. data/third_party/boringssl/ssl/{tls_method.c → tls_method.cc} +94 -73
  551. data/third_party/boringssl/ssl/tls_record.cc +675 -0
  552. metadata +117 -168
  553. data/include/grpc/support/cmdline.h +0 -88
  554. data/include/grpc/support/subprocess.h +0 -44
  555. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -29
  556. data/src/core/ext/filters/client_channel/resolver_factory.cc +0 -40
  557. data/src/core/lib/gpr/cmdline.cc +0 -330
  558. data/src/core/lib/gpr/subprocess_posix.cc +0 -99
  559. data/src/core/lib/gpr/subprocess_windows.cc +0 -126
  560. data/src/core/lib/surface/alarm.cc +0 -137
  561. data/src/core/lib/surface/alarm_internal.h +0 -40
  562. data/src/core/tsi/gts_transport_security.cc +0 -40
  563. data/third_party/boringssl/crypto/aes/aes.c +0 -1142
  564. data/third_party/boringssl/crypto/aes/internal.h +0 -87
  565. data/third_party/boringssl/crypto/aes/key_wrap.c +0 -138
  566. data/third_party/boringssl/crypto/aes/mode_wrappers.c +0 -112
  567. data/third_party/boringssl/crypto/asn1/x_long.c +0 -200
  568. data/third_party/boringssl/crypto/bn/add.c +0 -377
  569. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +0 -532
  570. data/third_party/boringssl/crypto/bn/bn.c +0 -365
  571. data/third_party/boringssl/crypto/bn/cmp.c +0 -239
  572. data/third_party/boringssl/crypto/bn/ctx.c +0 -313
  573. data/third_party/boringssl/crypto/bn/div.c +0 -728
  574. data/third_party/boringssl/crypto/bn/exponentiation.c +0 -1240
  575. data/third_party/boringssl/crypto/bn/gcd.c +0 -635
  576. data/third_party/boringssl/crypto/bn/generic.c +0 -707
  577. data/third_party/boringssl/crypto/bn/kronecker.c +0 -176
  578. data/third_party/boringssl/crypto/bn/montgomery.c +0 -409
  579. data/third_party/boringssl/crypto/bn/montgomery_inv.c +0 -207
  580. data/third_party/boringssl/crypto/bn/mul.c +0 -871
  581. data/third_party/boringssl/crypto/bn/prime.c +0 -861
  582. data/third_party/boringssl/crypto/bn/random.c +0 -343
  583. data/third_party/boringssl/crypto/bn/rsaz_exp.c +0 -254
  584. data/third_party/boringssl/crypto/bn/shift.c +0 -307
  585. data/third_party/boringssl/crypto/bn/sqrt.c +0 -506
  586. data/third_party/boringssl/crypto/cipher/aead.c +0 -156
  587. data/third_party/boringssl/crypto/cipher/cipher.c +0 -657
  588. data/third_party/boringssl/crypto/cipher/e_aes.c +0 -1771
  589. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +0 -276
  590. data/third_party/boringssl/crypto/cipher/e_des.c +0 -205
  591. data/third_party/boringssl/crypto/cipher/tls_cbc.c +0 -482
  592. data/third_party/boringssl/crypto/des/des.c +0 -771
  593. data/third_party/boringssl/crypto/digest/digest.c +0 -251
  594. data/third_party/boringssl/crypto/digest/digests.c +0 -358
  595. data/third_party/boringssl/crypto/ec/ec.c +0 -847
  596. data/third_party/boringssl/crypto/ec/ec_key.c +0 -479
  597. data/third_party/boringssl/crypto/ec/ec_montgomery.c +0 -303
  598. data/third_party/boringssl/crypto/ec/oct.c +0 -416
  599. data/third_party/boringssl/crypto/ec/p224-64.c +0 -1143
  600. data/third_party/boringssl/crypto/ec/p256-64.c +0 -1701
  601. data/third_party/boringssl/crypto/ec/p256-x86_64.c +0 -561
  602. data/third_party/boringssl/crypto/ec/simple.c +0 -1118
  603. data/third_party/boringssl/crypto/ec/util-64.c +0 -109
  604. data/third_party/boringssl/crypto/ec/wnaf.c +0 -458
  605. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +0 -479
  606. data/third_party/boringssl/crypto/hmac/hmac.c +0 -215
  607. data/third_party/boringssl/crypto/md4/md4.c +0 -236
  608. data/third_party/boringssl/crypto/md5/md5.c +0 -285
  609. data/third_party/boringssl/crypto/modes/cbc.c +0 -212
  610. data/third_party/boringssl/crypto/modes/cfb.c +0 -230
  611. data/third_party/boringssl/crypto/modes/ctr.c +0 -219
  612. data/third_party/boringssl/crypto/modes/gcm.c +0 -1071
  613. data/third_party/boringssl/crypto/modes/ofb.c +0 -95
  614. data/third_party/boringssl/crypto/modes/polyval.c +0 -94
  615. data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +0 -85
  616. data/third_party/boringssl/crypto/rand/rand.c +0 -244
  617. data/third_party/boringssl/crypto/rand/urandom.c +0 -335
  618. data/third_party/boringssl/crypto/rsa/blinding.c +0 -265
  619. data/third_party/boringssl/crypto/rsa/padding.c +0 -708
  620. data/third_party/boringssl/crypto/rsa/rsa.c +0 -830
  621. data/third_party/boringssl/crypto/rsa/rsa_impl.c +0 -1100
  622. data/third_party/boringssl/crypto/sha/sha1-altivec.c +0 -346
  623. data/third_party/boringssl/crypto/sha/sha1.c +0 -355
  624. data/third_party/boringssl/crypto/sha/sha256.c +0 -329
  625. data/third_party/boringssl/crypto/sha/sha512.c +0 -609
  626. data/third_party/boringssl/crypto/x509/x509type.c +0 -126
  627. data/third_party/boringssl/include/openssl/stack_macros.h +0 -3987
  628. data/third_party/boringssl/ssl/handshake_client.c +0 -1883
  629. data/third_party/boringssl/ssl/handshake_server.c +0 -1950
  630. data/third_party/boringssl/ssl/s3_both.c +0 -895
  631. data/third_party/boringssl/ssl/ssl_aead_ctx.c +0 -335
  632. data/third_party/boringssl/ssl/ssl_ecdh.c +0 -465
  633. data/third_party/boringssl/ssl/ssl_privkey.c +0 -683
  634. data/third_party/boringssl/ssl/ssl_privkey_cc.cc +0 -76
  635. data/third_party/boringssl/ssl/tls13_client.c +0 -712
  636. data/third_party/boringssl/ssl/tls13_server.c +0 -680
  637. data/third_party/boringssl/ssl/tls_record.c +0 -556
@@ -118,87 +118,77 @@ extern "C" {
118
118
  #endif
119
119
 
120
120
 
121
- /* ex_data is a mechanism for associating arbitrary extra data with objects.
122
- * For each type of object that supports ex_data, different users can be
123
- * assigned indexes in which to store their data. Each index has callback
124
- * functions that are called when an object of that type is freed or
125
- * duplicated. */
121
+ // ex_data is a mechanism for associating arbitrary extra data with objects.
122
+ // For each type of object that supports ex_data, different users can be
123
+ // assigned indexes in which to store their data. Each index has callback
124
+ // functions that are called when an object of that type is freed or
125
+ // duplicated.
126
126
 
127
127
 
128
128
  typedef struct crypto_ex_data_st CRYPTO_EX_DATA;
129
129
 
130
130
 
131
- /* Type-specific functions.
132
- *
133
- * Each type that supports ex_data provides three functions: */
131
+ // Type-specific functions.
132
+ //
133
+ // Each type that supports ex_data provides three functions:
134
134
 
135
- #if 0 /* Sample */
135
+ #if 0 // Sample
136
136
 
137
- /* TYPE_get_ex_new_index allocates a new index for |TYPE|. See the
138
- * descriptions of the callback typedefs for details of when they are
139
- * called. Any of the callback arguments may be NULL. The |argl| and |argp|
140
- * arguments are opaque values that are passed to the callbacks. It returns the
141
- * new index or a negative number on error.
142
- *
143
- * TODO(fork): this should follow the standard calling convention. */
137
+ // TYPE_get_ex_new_index allocates a new index for |TYPE|. An optional
138
+ // |free_func| argument may be provided which is called when the owning object
139
+ // is destroyed. See |CRYPTO_EX_free| for details. The |argl| and |argp|
140
+ // arguments are opaque values that are passed to the callback. It returns the
141
+ // new index or a negative number on error.
144
142
  OPENSSL_EXPORT int TYPE_get_ex_new_index(long argl, void *argp,
145
143
  CRYPTO_EX_unused *unused,
146
- CRYPTO_EX_dup *dup_func,
144
+ CRYPTO_EX_dup *dup_unused,
147
145
  CRYPTO_EX_free *free_func);
148
146
 
149
- /* TYPE_set_ex_data sets an extra data pointer on |t|. The |index| argument
150
- * should have been returned from a previous call to |TYPE_get_ex_new_index|. */
147
+ // TYPE_set_ex_data sets an extra data pointer on |t|. The |index| argument
148
+ // should have been returned from a previous call to |TYPE_get_ex_new_index|.
151
149
  OPENSSL_EXPORT int TYPE_set_ex_data(TYPE *t, int index, void *arg);
152
150
 
153
- /* TYPE_get_ex_data returns an extra data pointer for |t|, or NULL if no such
154
- * pointer exists. The |index| argument should have been returned from a
155
- * previous call to |TYPE_get_ex_new_index|. */
151
+ // TYPE_get_ex_data returns an extra data pointer for |t|, or NULL if no such
152
+ // pointer exists. The |index| argument should have been returned from a
153
+ // previous call to |TYPE_get_ex_new_index|.
156
154
  OPENSSL_EXPORT void *TYPE_get_ex_data(const TYPE *t, int index);
157
155
 
158
- #endif /* Sample */
156
+ #endif // Sample
159
157
 
160
158
 
161
- /* Callback types. */
159
+ // Callback types.
162
160
 
163
- /* CRYPTO_EX_free is a callback function that is called when an object of the
164
- * class with extra data pointers is being destroyed. For example, if this
165
- * callback has been passed to |SSL_get_ex_new_index| then it may be called each
166
- * time an |SSL*| is destroyed.
167
- *
168
- * The callback is passed the new object (i.e. the |SSL*|) in |parent|. The
169
- * arguments |argl| and |argp| contain opaque values that were given to
170
- * |CRYPTO_get_ex_new_index|. The callback should return one on success, but
171
- * the value is ignored.
172
- *
173
- * This callback may be called with a NULL value for |ptr| if |parent| has no
174
- * value set for this index. However, the callbacks may also be skipped entirely
175
- * if no extra data pointers are set on |parent| at all. */
161
+ // CRYPTO_EX_free is a callback function that is called when an object of the
162
+ // class with extra data pointers is being destroyed. For example, if this
163
+ // callback has been passed to |SSL_get_ex_new_index| then it may be called each
164
+ // time an |SSL*| is destroyed.
165
+ //
166
+ // The callback is passed the new object (i.e. the |SSL*|) in |parent|. The
167
+ // arguments |argl| and |argp| contain opaque values that were given to
168
+ // |CRYPTO_get_ex_new_index|. The callback should return one on success, but
169
+ // the value is ignored.
170
+ //
171
+ // This callback may be called with a NULL value for |ptr| if |parent| has no
172
+ // value set for this index. However, the callbacks may also be skipped entirely
173
+ // if no extra data pointers are set on |parent| at all.
176
174
  typedef void CRYPTO_EX_free(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
177
175
  int index, long argl, void *argp);
178
176
 
179
- /* CRYPTO_EX_dup is a callback function that is called when an object of the
180
- * class is being copied and thus the ex_data linked to it also needs to be
181
- * copied. On entry, |*from_d| points to the data for this index from the
182
- * original object. When the callback returns, |*from_d| will be set as the
183
- * data for this index in |to|.
184
- *
185
- * This callback may be called with a NULL value for |*from_d| if |from| has no
186
- * value set for this index. However, the callbacks may also be skipped entirely
187
- * if no extra data pointers are set on |from| at all. */
188
- typedef int CRYPTO_EX_dup(CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from,
189
- void **from_d, int index, long argl, void *argp);
190
-
191
177
 
192
- /* Deprecated functions. */
178
+ // Deprecated functions.
193
179
 
194
- /* CRYPTO_cleanup_all_ex_data does nothing. */
180
+ // CRYPTO_cleanup_all_ex_data does nothing.
195
181
  OPENSSL_EXPORT void CRYPTO_cleanup_all_ex_data(void);
196
182
 
183
+ // CRYPTO_EX_dup is a legacy callback function type which is ignored.
184
+ typedef int CRYPTO_EX_dup(CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from,
185
+ void **from_d, int index, long argl, void *argp);
186
+
197
187
 
198
- /* Private structures. */
188
+ // Private structures.
199
189
 
200
- /* CRYPTO_EX_unused is a placeholder for an unused callback. It is aliased to
201
- * int to ensure non-NULL callers fail to compile rather than fail silently. */
190
+ // CRYPTO_EX_unused is a placeholder for an unused callback. It is aliased to
191
+ // int to ensure non-NULL callers fail to compile rather than fail silently.
202
192
  typedef int CRYPTO_EX_unused;
203
193
 
204
194
  struct crypto_ex_data_st {
@@ -207,7 +197,7 @@ struct crypto_ex_data_st {
207
197
 
208
198
 
209
199
  #if defined(__cplusplus)
210
- } /* extern C */
200
+ } // extern C
211
201
  #endif
212
202
 
213
- #endif /* OPENSSL_HEADER_EX_DATA_H */
203
+ #endif // OPENSSL_HEADER_EX_DATA_H
@@ -22,33 +22,33 @@ extern "C" {
22
22
  #endif
23
23
 
24
24
 
25
- /* HKDF. */
25
+ // HKDF.
26
26
 
27
27
 
28
- /* HKDF computes HKDF (as specified by RFC 5869) of initial keying material
29
- * |secret| with |salt| and |info| using |digest|, and outputs |out_len| bytes
30
- * to |out_key|. It returns one on success and zero on error.
31
- *
32
- * HKDF is an Extract-and-Expand algorithm. It does not do any key stretching,
33
- * and as such, is not suited to be used alone to generate a key from a
34
- * password. */
28
+ // HKDF computes HKDF (as specified by RFC 5869) of initial keying material
29
+ // |secret| with |salt| and |info| using |digest|, and outputs |out_len| bytes
30
+ // to |out_key|. It returns one on success and zero on error.
31
+ //
32
+ // HKDF is an Extract-and-Expand algorithm. It does not do any key stretching,
33
+ // and as such, is not suited to be used alone to generate a key from a
34
+ // password.
35
35
  OPENSSL_EXPORT int HKDF(uint8_t *out_key, size_t out_len, const EVP_MD *digest,
36
36
  const uint8_t *secret, size_t secret_len,
37
37
  const uint8_t *salt, size_t salt_len,
38
38
  const uint8_t *info, size_t info_len);
39
39
 
40
- /* HKDF_extract computes a HKDF PRK (as specified by RFC 5869) from initial
41
- * keying material |secret| and salt |salt| using |digest|, and outputs
42
- * |out_len| bytes to |out_key|. The maximum output size is |EVP_MAX_MD_SIZE|.
43
- * It returns one on success and zero on error. */
40
+ // HKDF_extract computes a HKDF PRK (as specified by RFC 5869) from initial
41
+ // keying material |secret| and salt |salt| using |digest|, and outputs
42
+ // |out_len| bytes to |out_key|. The maximum output size is |EVP_MAX_MD_SIZE|.
43
+ // It returns one on success and zero on error.
44
44
  OPENSSL_EXPORT int HKDF_extract(uint8_t *out_key, size_t *out_len,
45
45
  const EVP_MD *digest, const uint8_t *secret,
46
46
  size_t secret_len, const uint8_t *salt,
47
47
  size_t salt_len);
48
48
 
49
- /* HKDF_expand computes a HKDF OKM (as specified by RFC 5869) of length
50
- * |out_len| from the PRK |prk| and info |info| using |digest|, and outputs
51
- * the result to |out_key|. It returns one on success and zero on error. */
49
+ // HKDF_expand computes a HKDF OKM (as specified by RFC 5869) of length
50
+ // |out_len| from the PRK |prk| and info |info| using |digest|, and outputs
51
+ // the result to |out_key|. It returns one on success and zero on error.
52
52
  OPENSSL_EXPORT int HKDF_expand(uint8_t *out_key, size_t out_len,
53
53
  const EVP_MD *digest, const uint8_t *prk,
54
54
  size_t prk_len, const uint8_t *info,
@@ -56,9 +56,9 @@ OPENSSL_EXPORT int HKDF_expand(uint8_t *out_key, size_t out_len,
56
56
 
57
57
 
58
58
  #if defined(__cplusplus)
59
- } /* extern C */
59
+ } // extern C
60
60
  #endif
61
61
 
62
62
  #define HKDF_R_OUTPUT_TOO_LARGE 100
63
63
 
64
- #endif /* OPENSSL_HEADER_HKDF_H */
64
+ #endif // OPENSSL_HEADER_HKDF_H
@@ -66,84 +66,94 @@ extern "C" {
66
66
  #endif
67
67
 
68
68
 
69
- /* HMAC contains functions for constructing PRFs from Merkle–Damgård hash
70
- * functions using HMAC. */
69
+ // HMAC contains functions for constructing PRFs from Merkle–Damgård hash
70
+ // functions using HMAC.
71
71
 
72
72
 
73
- /* One-shot operation. */
73
+ // One-shot operation.
74
74
 
75
- /* HMAC calculates the HMAC of |data_len| bytes of |data|, using the given key
76
- * and hash function, and writes the result to |out|. On entry, |out| must
77
- * contain at least |EVP_MD_size| bytes of space. The actual length of the
78
- * result is written to |*out_len|. An output size of |EVP_MAX_MD_SIZE| will
79
- * always be large enough. It returns |out| or NULL on error. */
75
+ // HMAC calculates the HMAC of |data_len| bytes of |data|, using the given key
76
+ // and hash function, and writes the result to |out|. On entry, |out| must
77
+ // contain at least |EVP_MD_size| bytes of space. The actual length of the
78
+ // result is written to |*out_len|. An output size of |EVP_MAX_MD_SIZE| will
79
+ // always be large enough. It returns |out| or NULL on error.
80
80
  OPENSSL_EXPORT uint8_t *HMAC(const EVP_MD *evp_md, const void *key,
81
81
  size_t key_len, const uint8_t *data,
82
82
  size_t data_len, uint8_t *out,
83
83
  unsigned int *out_len);
84
84
 
85
85
 
86
- /* Incremental operation. */
86
+ // Incremental operation.
87
87
 
88
- /* HMAC_CTX_init initialises |ctx| for use in an HMAC operation. It's assumed
89
- * that HMAC_CTX objects will be allocated on the stack thus no allocation
90
- * function is provided. If needed, allocate |sizeof(HMAC_CTX)| and call
91
- * |HMAC_CTX_init| on it. */
88
+ // HMAC_CTX_init initialises |ctx| for use in an HMAC operation. It's assumed
89
+ // that HMAC_CTX objects will be allocated on the stack thus no allocation
90
+ // function is provided.
92
91
  OPENSSL_EXPORT void HMAC_CTX_init(HMAC_CTX *ctx);
93
92
 
94
- /* HMAC_CTX_cleanup frees data owned by |ctx|. */
93
+ // HMAC_CTX_new allocates and initialises a new |HMAC_CTX| and returns it, or
94
+ // NULL on allocation failure. The caller must use |HMAC_CTX_free| to release
95
+ // the resulting object.
96
+ OPENSSL_EXPORT HMAC_CTX *HMAC_CTX_new(void);
97
+
98
+ // HMAC_CTX_cleanup frees data owned by |ctx|. It does not free |ctx| itself.
95
99
  OPENSSL_EXPORT void HMAC_CTX_cleanup(HMAC_CTX *ctx);
96
100
 
97
- /* HMAC_Init_ex sets up an initialised |HMAC_CTX| to use |md| as the hash
98
- * function and |key| as the key. For a non-initial call, |md| may be NULL, in
99
- * which case the previous hash function will be used. If the hash function has
100
- * not changed and |key| is NULL, |ctx| reuses the previous key. It returns one
101
- * on success or zero otherwise.
102
- *
103
- * WARNING: NULL and empty keys are ambiguous on non-initial calls. Passing NULL
104
- * |key| but repeating the previous |md| reuses the previous key rather than the
105
- * empty key. */
101
+ // HMAC_CTX_free calls |HMAC_CTX_cleanup| and then frees |ctx| itself.
102
+ OPENSSL_EXPORT void HMAC_CTX_free(HMAC_CTX *ctx);
103
+
104
+ // HMAC_Init_ex sets up an initialised |HMAC_CTX| to use |md| as the hash
105
+ // function and |key| as the key. For a non-initial call, |md| may be NULL, in
106
+ // which case the previous hash function will be used. If the hash function has
107
+ // not changed and |key| is NULL, |ctx| reuses the previous key. It returns one
108
+ // on success or zero otherwise.
109
+ //
110
+ // WARNING: NULL and empty keys are ambiguous on non-initial calls. Passing NULL
111
+ // |key| but repeating the previous |md| reuses the previous key rather than the
112
+ // empty key.
106
113
  OPENSSL_EXPORT int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, size_t key_len,
107
114
  const EVP_MD *md, ENGINE *impl);
108
115
 
109
- /* HMAC_Update hashes |data_len| bytes from |data| into the current HMAC
110
- * operation in |ctx|. It returns one. */
116
+ // HMAC_Update hashes |data_len| bytes from |data| into the current HMAC
117
+ // operation in |ctx|. It returns one.
111
118
  OPENSSL_EXPORT int HMAC_Update(HMAC_CTX *ctx, const uint8_t *data,
112
119
  size_t data_len);
113
120
 
114
- /* HMAC_Final completes the HMAC operation in |ctx| and writes the result to
115
- * |out| and the sets |*out_len| to the length of the result. On entry, |out|
116
- * must contain at least |HMAC_size| bytes of space. An output size of
117
- * |EVP_MAX_MD_SIZE| will always be large enough. It returns one on success or
118
- * zero on error. */
121
+ // HMAC_Final completes the HMAC operation in |ctx| and writes the result to
122
+ // |out| and the sets |*out_len| to the length of the result. On entry, |out|
123
+ // must contain at least |HMAC_size| bytes of space. An output size of
124
+ // |EVP_MAX_MD_SIZE| will always be large enough. It returns one on success or
125
+ // zero on error.
119
126
  OPENSSL_EXPORT int HMAC_Final(HMAC_CTX *ctx, uint8_t *out,
120
127
  unsigned int *out_len);
121
128
 
122
129
 
123
- /* Utility functions. */
130
+ // Utility functions.
124
131
 
125
- /* HMAC_size returns the size, in bytes, of the HMAC that will be produced by
126
- * |ctx|. On entry, |ctx| must have been setup with |HMAC_Init_ex|. */
132
+ // HMAC_size returns the size, in bytes, of the HMAC that will be produced by
133
+ // |ctx|. On entry, |ctx| must have been setup with |HMAC_Init_ex|.
127
134
  OPENSSL_EXPORT size_t HMAC_size(const HMAC_CTX *ctx);
128
135
 
129
- /* HMAC_CTX_copy_ex sets |dest| equal to |src|. On entry, |dest| must have been
130
- * initialised by calling |HMAC_CTX_init|. It returns one on success and zero
131
- * on error. */
136
+ // HMAC_CTX_copy_ex sets |dest| equal to |src|. On entry, |dest| must have been
137
+ // initialised by calling |HMAC_CTX_init|. It returns one on success and zero
138
+ // on error.
132
139
  OPENSSL_EXPORT int HMAC_CTX_copy_ex(HMAC_CTX *dest, const HMAC_CTX *src);
133
140
 
141
+ // HMAC_CTX_reset calls |HMAC_CTX_cleanup| followed by |HMAC_CTX_init|.
142
+ OPENSSL_EXPORT void HMAC_CTX_reset(HMAC_CTX *ctx);
134
143
 
135
- /* Deprecated functions. */
144
+
145
+ // Deprecated functions.
136
146
 
137
147
  OPENSSL_EXPORT int HMAC_Init(HMAC_CTX *ctx, const void *key, int key_len,
138
148
  const EVP_MD *md);
139
149
 
140
- /* HMAC_CTX_copy calls |HMAC_CTX_init| on |dest| and then sets it equal to
141
- * |src|. On entry, |dest| must /not/ be initialised for an operation with
142
- * |HMAC_Init_ex|. It returns one on success and zero on error. */
150
+ // HMAC_CTX_copy calls |HMAC_CTX_init| on |dest| and then sets it equal to
151
+ // |src|. On entry, |dest| must /not/ be initialised for an operation with
152
+ // |HMAC_Init_ex|. It returns one on success and zero on error.
143
153
  OPENSSL_EXPORT int HMAC_CTX_copy(HMAC_CTX *dest, const HMAC_CTX *src);
144
154
 
145
155
 
146
- /* Private functions */
156
+ // Private functions
147
157
 
148
158
  struct hmac_ctx_st {
149
159
  const EVP_MD *md;
@@ -154,13 +164,15 @@ struct hmac_ctx_st {
154
164
 
155
165
 
156
166
  #if defined(__cplusplus)
157
- } /* extern C */
167
+ } // extern C
158
168
 
159
169
  #if !defined(BORINGSSL_NO_CXX)
160
170
  extern "C++" {
161
171
 
162
172
  namespace bssl {
163
173
 
174
+ BORINGSSL_MAKE_DELETER(HMAC_CTX, HMAC_CTX_free)
175
+
164
176
  using ScopedHMAC_CTX =
165
177
  internal::StackAllocated<HMAC_CTX, void, HMAC_CTX_init, HMAC_CTX_cleanup>;
166
178
 
@@ -171,4 +183,4 @@ using ScopedHMAC_CTX =
171
183
 
172
184
  #endif
173
185
 
174
- #endif /* OPENSSL_HEADER_HMAC_H */
186
+ #endif // OPENSSL_HEADER_HMAC_H
@@ -0,0 +1,16 @@
1
+ /* Copyright (c) 2017, Google Inc.
2
+ *
3
+ * Permission to use, copy, modify, and/or distribute this software for any
4
+ * purpose with or without fee is hereby granted, provided that the above
5
+ * copyright notice and this permission notice appear in all copies.
6
+ *
7
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
10
+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
12
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
13
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
14
+
15
+ // This header is provided in order to catch include path errors in consuming
16
+ // BoringSSL.
@@ -65,24 +65,24 @@ extern "C" {
65
65
  #endif
66
66
 
67
67
 
68
- /* lhash is a traditional, chaining hash table that automatically expands and
69
- * contracts as needed. One should not use the lh_* functions directly, rather
70
- * use the type-safe macro wrappers:
71
- *
72
- * A hash table of a specific type of object has type |LHASH_OF(type)|. This
73
- * can be defined (once) with |DEFINE_LHASH_OF(type)| and declared where needed
74
- * with |DECLARE_LHASH_OF(type)|. For example:
75
- *
76
- * struct foo {
77
- * int bar;
78
- * };
79
- *
80
- * DEFINE_LHASH_OF(struct foo);
81
- *
82
- * Although note that the hash table will contain /pointers/ to |foo|.
83
- *
84
- * A macro will be defined for each of the lh_* functions below. For
85
- * LHASH_OF(foo), the macros would be lh_foo_new, lh_foo_num_items etc. */
68
+ // lhash is a traditional, chaining hash table that automatically expands and
69
+ // contracts as needed. One should not use the lh_* functions directly, rather
70
+ // use the type-safe macro wrappers:
71
+ //
72
+ // A hash table of a specific type of object has type |LHASH_OF(type)|. This
73
+ // can be defined (once) with |DEFINE_LHASH_OF(type)| and declared where needed
74
+ // with |DECLARE_LHASH_OF(type)|. For example:
75
+ //
76
+ // struct foo {
77
+ // int bar;
78
+ // };
79
+ //
80
+ // DEFINE_LHASH_OF(struct foo);
81
+ //
82
+ // Although note that the hash table will contain /pointers/ to |foo|.
83
+ //
84
+ // A macro will be defined for each of the lh_* functions below. For
85
+ // LHASH_OF(foo), the macros would be lh_foo_new, lh_foo_num_items etc.
86
86
 
87
87
 
88
88
  #define LHASH_OF(type) struct lhash_st_##type
@@ -91,101 +91,101 @@ extern "C" {
91
91
 
92
92
  #define DECLARE_LHASH_OF(type) LHASH_OF(type);
93
93
 
94
- /* The make_macros.sh script in this directory parses the following lines and
95
- * generates the lhash_macros.h file that contains macros for the following
96
- * types of stacks:
97
- *
98
- * LHASH_OF:ASN1_OBJECT
99
- * LHASH_OF:CONF_VALUE
100
- * LHASH_OF:CRYPTO_BUFFER
101
- * LHASH_OF:SSL_SESSION */
94
+ // The make_macros.sh script in this directory parses the following lines and
95
+ // generates the lhash_macros.h file that contains macros for the following
96
+ // types of stacks:
97
+ //
98
+ // LHASH_OF:ASN1_OBJECT
99
+ // LHASH_OF:CONF_VALUE
100
+ // LHASH_OF:CRYPTO_BUFFER
101
+ // LHASH_OF:SSL_SESSION
102
102
 
103
103
  #define IN_LHASH_H
104
104
  #include <openssl/lhash_macros.h>
105
105
  #undef IN_LHASH_H
106
106
 
107
107
 
108
- /* lhash_item_st is an element of a hash chain. It points to the opaque data
109
- * for this element and to the next item in the chain. The linked-list is NULL
110
- * terminated. */
108
+ // lhash_item_st is an element of a hash chain. It points to the opaque data
109
+ // for this element and to the next item in the chain. The linked-list is NULL
110
+ // terminated.
111
111
  typedef struct lhash_item_st {
112
112
  void *data;
113
113
  struct lhash_item_st *next;
114
- /* hash contains the cached, hash value of |data|. */
114
+ // hash contains the cached, hash value of |data|.
115
115
  uint32_t hash;
116
116
  } LHASH_ITEM;
117
117
 
118
- /* lhash_cmp_func is a comparison function that returns a value equal, or not
119
- * equal, to zero depending on whether |*a| is equal, or not equal to |*b|,
120
- * respectively. Note the difference between this and |stack_cmp_func| in that
121
- * this takes pointers to the objects directly. */
118
+ // lhash_cmp_func is a comparison function that returns a value equal, or not
119
+ // equal, to zero depending on whether |*a| is equal, or not equal to |*b|,
120
+ // respectively. Note the difference between this and |stack_cmp_func| in that
121
+ // this takes pointers to the objects directly.
122
122
  typedef int (*lhash_cmp_func)(const void *a, const void *b);
123
123
 
124
- /* lhash_hash_func is a function that maps an object to a uniformly distributed
125
- * uint32_t. */
124
+ // lhash_hash_func is a function that maps an object to a uniformly distributed
125
+ // uint32_t.
126
126
  typedef uint32_t (*lhash_hash_func)(const void *a);
127
127
 
128
128
  typedef struct lhash_st {
129
- /* num_items contains the total number of items in the hash table. */
129
+ // num_items contains the total number of items in the hash table.
130
130
  size_t num_items;
131
- /* buckets is an array of |num_buckets| pointers. Each points to the head of
132
- * a chain of LHASH_ITEM objects that have the same hash value, mod
133
- * |num_buckets|. */
131
+ // buckets is an array of |num_buckets| pointers. Each points to the head of
132
+ // a chain of LHASH_ITEM objects that have the same hash value, mod
133
+ // |num_buckets|.
134
134
  LHASH_ITEM **buckets;
135
- /* num_buckets contains the length of |buckets|. This value is always >=
136
- * kMinNumBuckets. */
135
+ // num_buckets contains the length of |buckets|. This value is always >=
136
+ // kMinNumBuckets.
137
137
  size_t num_buckets;
138
- /* callback_depth contains the current depth of |lh_doall| or |lh_doall_arg|
139
- * calls. If non-zero then this suppresses resizing of the |buckets| array,
140
- * which would otherwise disrupt the iteration. */
138
+ // callback_depth contains the current depth of |lh_doall| or |lh_doall_arg|
139
+ // calls. If non-zero then this suppresses resizing of the |buckets| array,
140
+ // which would otherwise disrupt the iteration.
141
141
  unsigned callback_depth;
142
142
 
143
143
  lhash_cmp_func comp;
144
144
  lhash_hash_func hash;
145
145
  } _LHASH;
146
146
 
147
- /* lh_new returns a new, empty hash table or NULL on error. */
147
+ // lh_new returns a new, empty hash table or NULL on error.
148
148
  OPENSSL_EXPORT _LHASH *lh_new(lhash_hash_func hash, lhash_cmp_func comp);
149
149
 
150
- /* lh_free frees the hash table itself but none of the elements. See
151
- * |lh_doall|. */
150
+ // lh_free frees the hash table itself but none of the elements. See
151
+ // |lh_doall|.
152
152
  OPENSSL_EXPORT void lh_free(_LHASH *lh);
153
153
 
154
- /* lh_num_items returns the number of items in |lh|. */
154
+ // lh_num_items returns the number of items in |lh|.
155
155
  OPENSSL_EXPORT size_t lh_num_items(const _LHASH *lh);
156
156
 
157
- /* lh_retrieve finds an element equal to |data| in the hash table and returns
158
- * it. If no such element exists, it returns NULL. */
157
+ // lh_retrieve finds an element equal to |data| in the hash table and returns
158
+ // it. If no such element exists, it returns NULL.
159
159
  OPENSSL_EXPORT void *lh_retrieve(const _LHASH *lh, const void *data);
160
160
 
161
- /* lh_insert inserts |data| into the hash table. If an existing element is
162
- * equal to |data| (with respect to the comparison function) then |*old_data|
163
- * will be set to that value and it will be replaced. Otherwise, or in the
164
- * event of an error, |*old_data| will be set to NULL. It returns one on
165
- * success or zero in the case of an allocation error. */
161
+ // lh_insert inserts |data| into the hash table. If an existing element is
162
+ // equal to |data| (with respect to the comparison function) then |*old_data|
163
+ // will be set to that value and it will be replaced. Otherwise, or in the
164
+ // event of an error, |*old_data| will be set to NULL. It returns one on
165
+ // success or zero in the case of an allocation error.
166
166
  OPENSSL_EXPORT int lh_insert(_LHASH *lh, void **old_data, void *data);
167
167
 
168
- /* lh_delete removes an element equal to |data| from the hash table and returns
169
- * it. If no such element is found, it returns NULL. */
168
+ // lh_delete removes an element equal to |data| from the hash table and returns
169
+ // it. If no such element is found, it returns NULL.
170
170
  OPENSSL_EXPORT void *lh_delete(_LHASH *lh, const void *data);
171
171
 
172
- /* lh_doall calls |func| on each element of the hash table.
173
- * TODO(fork): rename this */
172
+ // lh_doall calls |func| on each element of the hash table.
173
+ // TODO(fork): rename this
174
174
  OPENSSL_EXPORT void lh_doall(_LHASH *lh, void (*func)(void *));
175
175
 
176
- /* lh_doall_arg calls |func| on each element of the hash table and also passes
177
- * |arg| as the second argument.
178
- * TODO(fork): rename this */
176
+ // lh_doall_arg calls |func| on each element of the hash table and also passes
177
+ // |arg| as the second argument.
178
+ // TODO(fork): rename this
179
179
  OPENSSL_EXPORT void lh_doall_arg(_LHASH *lh, void (*func)(void *, void *),
180
180
  void *arg);
181
181
 
182
- /* lh_strhash is the default hash function which processes NUL-terminated
183
- * strings. */
182
+ // lh_strhash is the default hash function which processes NUL-terminated
183
+ // strings.
184
184
  OPENSSL_EXPORT uint32_t lh_strhash(const char *c);
185
185
 
186
186
 
187
187
  #if defined(__cplusplus)
188
- } /* extern C */
188
+ } // extern C
189
189
  #endif
190
190
 
191
- #endif /* OPENSSL_HEADER_LHASH_H */
191
+ #endif // OPENSSL_HEADER_LHASH_H