grpc 0.13.1 → 0.14.1.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 (724) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +2098 -828
  3. data/include/grpc/byte_buffer.h +1 -1
  4. data/include/grpc/byte_buffer_reader.h +1 -20
  5. data/include/grpc/census.h +4 -4
  6. data/include/grpc/compression.h +6 -5
  7. data/include/grpc/grpc.h +31 -20
  8. data/include/grpc/grpc_security.h +17 -31
  9. data/include/grpc/grpc_security_constants.h +114 -0
  10. data/include/grpc/grpc_zookeeper.h +1 -1
  11. data/include/grpc/impl/codegen/alloc.h +1 -1
  12. data/include/grpc/impl/codegen/atm.h +1 -1
  13. data/include/grpc/impl/codegen/atm_gcc_atomic.h +1 -1
  14. data/include/grpc/impl/codegen/atm_gcc_sync.h +1 -1
  15. data/include/grpc/impl/codegen/atm_win32.h +1 -1
  16. data/include/grpc/impl/codegen/byte_buffer.h +1 -1
  17. data/{src/core/client_config/lb_policies/round_robin.h → include/grpc/impl/codegen/byte_buffer_reader.h} +19 -8
  18. data/include/grpc/impl/codegen/grpc_types.h +20 -3
  19. data/include/grpc/impl/codegen/log.h +9 -2
  20. data/include/grpc/impl/codegen/port_platform.h +102 -17
  21. data/include/grpc/impl/codegen/propagation_bits.h +3 -3
  22. data/include/grpc/impl/codegen/slice.h +3 -3
  23. data/include/grpc/impl/codegen/slice_buffer.h +3 -3
  24. data/include/grpc/impl/codegen/status.h +1 -1
  25. data/include/grpc/impl/codegen/sync_generic.h +1 -1
  26. data/include/grpc/impl/codegen/sync_posix.h +1 -1
  27. data/include/grpc/impl/codegen/sync_win32.h +1 -1
  28. data/include/grpc/impl/codegen/time.h +3 -3
  29. data/include/grpc/status.h +1 -1
  30. data/include/grpc/support/alloc.h +1 -1
  31. data/include/grpc/support/atm.h +1 -1
  32. data/include/grpc/support/atm_gcc_atomic.h +4 -4
  33. data/include/grpc/support/atm_gcc_sync.h +1 -1
  34. data/include/grpc/support/atm_win32.h +1 -1
  35. data/include/grpc/support/avl.h +1 -1
  36. data/include/grpc/support/cmdline.h +1 -1
  37. data/include/grpc/support/cpu.h +1 -1
  38. data/include/grpc/support/histogram.h +1 -1
  39. data/include/grpc/support/host_port.h +1 -1
  40. data/include/grpc/support/log.h +1 -1
  41. data/include/grpc/support/log_win32.h +1 -1
  42. data/include/grpc/support/port_platform.h +1 -1
  43. data/include/grpc/support/slice.h +1 -1
  44. data/include/grpc/support/slice_buffer.h +1 -1
  45. data/include/grpc/support/string_util.h +3 -1
  46. data/include/grpc/support/subprocess.h +2 -2
  47. data/include/grpc/support/sync.h +1 -1
  48. data/include/grpc/support/sync_generic.h +1 -1
  49. data/include/grpc/support/sync_posix.h +1 -1
  50. data/include/grpc/support/sync_win32.h +1 -1
  51. data/include/grpc/support/thd.h +1 -1
  52. data/include/grpc/support/time.h +1 -1
  53. data/include/grpc/support/tls.h +1 -1
  54. data/include/grpc/support/tls_gcc.h +45 -1
  55. data/include/grpc/support/tls_msvc.h +3 -3
  56. data/include/grpc/support/tls_pthread.h +1 -1
  57. data/include/grpc/support/useful.h +1 -1
  58. data/src/boringssl/err_data.c +258 -252
  59. data/src/core/{census → ext/census}/aggregation.h +3 -3
  60. data/src/core/{statistics → ext/census}/census_interface.h +3 -3
  61. data/src/core/{statistics → ext/census}/census_rpc_stats.h +4 -4
  62. data/src/core/{census → ext/census}/context.c +2 -2
  63. data/src/core/{census → ext/census}/grpc_context.c +2 -2
  64. data/src/core/{census → ext/census}/grpc_filter.c +30 -16
  65. data/src/core/{census → ext/census}/grpc_filter.h +4 -4
  66. data/src/core/ext/census/grpc_plugin.c +82 -0
  67. data/src/core/{census → ext/census}/initialize.c +1 -1
  68. data/src/core/{census → ext/census}/mlog.c +2 -2
  69. data/src/core/{census → ext/census}/mlog.h +4 -4
  70. data/src/core/{census → ext/census}/operation.c +0 -0
  71. data/src/core/{census → ext/census}/placeholders.c +0 -0
  72. data/src/core/{census → ext/census}/rpc_metric_id.h +3 -3
  73. data/src/core/{census → ext/census}/tracing.c +0 -0
  74. data/src/core/{surface → ext/client_config}/channel_connectivity.c +8 -21
  75. data/src/core/{channel → ext/client_config}/client_channel.c +80 -35
  76. data/src/core/{channel → ext/client_config}/client_channel.h +5 -5
  77. data/src/core/{client_config/subchannel_factory.c → ext/client_config/client_channel_factory.c} +14 -6
  78. data/src/core/ext/client_config/client_channel_factory.h +85 -0
  79. data/src/core/{client_config → ext/client_config}/client_config.c +4 -2
  80. data/src/core/{client_config → ext/client_config}/client_config.h +4 -4
  81. data/src/core/ext/client_config/client_config_plugin.c +95 -0
  82. data/src/core/{client_config → ext/client_config}/connector.c +2 -2
  83. data/src/core/{client_config → ext/client_config}/connector.h +7 -10
  84. data/src/core/{client_config → ext/client_config}/default_initial_connect_string.c +1 -1
  85. data/src/core/{client_config → ext/client_config}/initial_connect_string.c +1 -1
  86. data/src/core/{client_config → ext/client_config}/initial_connect_string.h +4 -4
  87. data/src/core/{client_config → ext/client_config}/lb_policy.c +12 -3
  88. data/src/core/{client_config → ext/client_config}/lb_policy.h +19 -6
  89. data/src/core/{client_config → ext/client_config}/lb_policy_factory.c +4 -3
  90. data/src/core/{client_config → ext/client_config}/lb_policy_factory.h +14 -9
  91. data/src/core/{client_config → ext/client_config}/lb_policy_registry.c +4 -9
  92. data/src/core/{client_config → ext/client_config}/lb_policy_registry.h +7 -6
  93. data/src/core/ext/client_config/parse_address.c +137 -0
  94. data/src/core/ext/client_config/parse_address.h +56 -0
  95. data/src/core/{client_config → ext/client_config}/resolver.c +1 -1
  96. data/src/core/{client_config → ext/client_config}/resolver.h +6 -6
  97. data/src/core/{client_config → ext/client_config}/resolver_factory.c +1 -1
  98. data/src/core/{client_config → ext/client_config}/resolver_factory.h +7 -7
  99. data/src/core/{client_config → ext/client_config}/resolver_registry.c +25 -11
  100. data/src/core/{client_config → ext/client_config}/resolver_registry.h +9 -5
  101. data/src/core/{client_config → ext/client_config}/subchannel.c +90 -126
  102. data/src/core/{client_config → ext/client_config}/subchannel.h +15 -15
  103. data/src/core/{channel → ext/client_config}/subchannel_call_holder.c +9 -8
  104. data/src/core/{channel → ext/client_config}/subchannel_call_holder.h +7 -7
  105. data/src/core/{client_config → ext/client_config}/subchannel_index.c +3 -2
  106. data/src/core/{client_config → ext/client_config}/subchannel_index.h +5 -5
  107. data/src/core/{client_config → ext/client_config}/uri_parser.c +69 -1
  108. data/src/core/{client_config → ext/client_config}/uri_parser.h +15 -3
  109. data/src/core/{client_config/lb_policies → ext/lb_policy/grpclb}/load_balancer_api.c +18 -9
  110. data/src/core/{client_config/lb_policies → ext/lb_policy/grpclb}/load_balancer_api.h +5 -5
  111. data/src/core/{proto → ext/lb_policy/grpclb/proto}/grpc/lb/v0/load_balancer.pb.c +1 -1
  112. data/src/core/{proto → ext/lb_policy/grpclb/proto}/grpc/lb/v0/load_balancer.pb.h +0 -0
  113. data/src/core/{client_config/lb_policies → ext/lb_policy/pick_first}/pick_first.c +95 -32
  114. data/src/core/{client_config/lb_policies → ext/lb_policy/round_robin}/round_robin.c +98 -34
  115. data/src/core/{client_config/resolvers → ext/resolver/dns/native}/dns_resolver.c +83 -39
  116. data/src/core/{client_config/resolvers → ext/resolver/sockaddr}/sockaddr_resolver.c +66 -169
  117. data/src/core/{transport/chttp2 → ext/transport/chttp2/alpn}/alpn.c +1 -1
  118. data/src/core/{transport/chttp2 → ext/transport/chttp2/alpn}/alpn.h +3 -3
  119. data/src/core/{surface → ext/transport/chttp2/client/insecure}/channel_create.c +65 -59
  120. data/src/core/{surface → ext/transport/chttp2/client/secure}/secure_channel_create.c +77 -69
  121. data/src/core/{surface → ext/transport/chttp2/server/insecure}/server_chttp2.c +8 -11
  122. data/src/core/{security → ext/transport/chttp2/server/secure}/server_secure_chttp2.c +14 -17
  123. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/bin_encoder.c +28 -74
  124. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/bin_encoder.h +5 -5
  125. data/src/core/ext/transport/chttp2/transport/chttp2_plugin.c +46 -0
  126. data/src/core/{transport → ext/transport/chttp2/transport}/chttp2_transport.c +551 -310
  127. data/src/core/{transport → ext/transport/chttp2/transport}/chttp2_transport.h +5 -5
  128. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame.h +3 -3
  129. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_data.c +30 -14
  130. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_data.h +10 -7
  131. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_goaway.c +2 -2
  132. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_goaway.h +5 -5
  133. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_ping.c +2 -2
  134. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_ping.h +5 -5
  135. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_rst_stream.c +9 -5
  136. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_rst_stream.h +8 -6
  137. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_settings.c +6 -6
  138. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_settings.h +5 -5
  139. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_window_update.c +11 -5
  140. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/frame_window_update.h +8 -6
  141. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_encoder.c +21 -12
  142. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_encoder.h +8 -6
  143. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_parser.c +42 -25
  144. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_parser.h +7 -7
  145. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_table.c +21 -11
  146. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/hpack_table.h +4 -4
  147. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/http2_errors.h +3 -3
  148. data/src/core/ext/transport/chttp2/transport/huffsyms.c +105 -0
  149. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/huffsyms.h +3 -3
  150. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/incoming_metadata.c +2 -2
  151. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/incoming_metadata.h +4 -4
  152. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/internal.h +81 -37
  153. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/parsing.c +54 -21
  154. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/status_conversion.c +1 -1
  155. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/status_conversion.h +4 -4
  156. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/stream_lists.c +10 -2
  157. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/stream_map.c +1 -1
  158. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/stream_map.h +3 -3
  159. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/timeout_encoding.c +4 -4
  160. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/timeout_encoding.h +4 -4
  161. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/varint.c +1 -1
  162. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/varint.h +3 -3
  163. data/src/core/{transport/chttp2 → ext/transport/chttp2/transport}/writing.c +30 -20
  164. data/src/core/{channel → lib/channel}/channel_args.c +3 -15
  165. data/src/core/{channel → lib/channel}/channel_args.h +11 -15
  166. data/src/core/{channel → lib/channel}/channel_stack.c +5 -3
  167. data/src/core/{channel → lib/channel}/channel_stack.h +13 -8
  168. data/src/core/lib/channel/channel_stack_builder.c +277 -0
  169. data/src/core/lib/channel/channel_stack_builder.h +161 -0
  170. data/src/core/{channel → lib/channel}/compress_filter.c +51 -16
  171. data/src/core/{channel → lib/channel}/compress_filter.h +6 -4
  172. data/src/core/{channel → lib/channel}/connected_channel.c +34 -24
  173. data/src/core/lib/channel/connected_channel.h +42 -0
  174. data/src/core/{channel → lib/channel}/context.h +3 -3
  175. data/src/core/{channel → lib/channel}/http_client_filter.c +24 -13
  176. data/src/core/{channel → lib/channel}/http_client_filter.h +4 -4
  177. data/src/core/{channel → lib/channel}/http_server_filter.c +39 -19
  178. data/src/core/{channel → lib/channel}/http_server_filter.h +4 -4
  179. data/src/core/{compression → lib/compression}/algorithm_metadata.h +4 -4
  180. data/src/core/{compression → lib/compression}/compression_algorithm.c +46 -9
  181. data/src/core/{compression → lib/compression}/message_compress.c +1 -1
  182. data/src/core/{compression → lib/compression}/message_compress.h +3 -3
  183. data/src/core/{debug → lib/debug}/trace.c +2 -2
  184. data/src/core/{debug → lib/debug}/trace.h +3 -3
  185. data/src/core/{httpcli → lib/http}/format_request.c +8 -8
  186. data/src/core/{httpcli → lib/http}/format_request.h +4 -4
  187. data/src/core/{httpcli → lib/http}/httpcli.c +24 -19
  188. data/src/core/{httpcli → lib/http}/httpcli.h +14 -33
  189. data/src/core/{httpcli → lib/http}/httpcli_security_connector.c +5 -5
  190. data/src/core/lib/http/parser.c +341 -0
  191. data/src/core/lib/http/parser.h +119 -0
  192. data/src/core/{iomgr → lib/iomgr}/closure.c +8 -2
  193. data/src/core/{iomgr → lib/iomgr}/closure.h +7 -4
  194. data/src/core/{iomgr → lib/iomgr}/endpoint.c +1 -1
  195. data/src/core/{iomgr → lib/iomgr}/endpoint.h +5 -5
  196. data/src/core/{iomgr → lib/iomgr}/endpoint_pair.h +4 -4
  197. data/src/core/{iomgr → lib/iomgr}/endpoint_pair_posix.c +8 -7
  198. data/src/core/{iomgr → lib/iomgr}/endpoint_pair_windows.c +4 -4
  199. data/src/core/lib/iomgr/ev_poll_and_epoll_posix.c +1936 -0
  200. data/src/core/lib/iomgr/ev_poll_and_epoll_posix.h +41 -0
  201. data/src/core/lib/iomgr/ev_posix.c +164 -0
  202. data/src/core/lib/iomgr/ev_posix.h +158 -0
  203. data/src/core/{iomgr → lib/iomgr}/exec_ctx.c +78 -3
  204. data/src/core/{iomgr → lib/iomgr}/exec_ctx.h +25 -10
  205. data/src/core/{iomgr → lib/iomgr}/executor.c +3 -3
  206. data/src/core/{iomgr → lib/iomgr}/executor.h +5 -5
  207. data/src/core/{iomgr → lib/iomgr}/iocp_windows.c +6 -6
  208. data/src/core/{iomgr → lib/iomgr}/iocp_windows.h +5 -5
  209. data/src/core/{iomgr → lib/iomgr}/iomgr.c +13 -10
  210. data/src/core/{iomgr → lib/iomgr}/iomgr.h +3 -3
  211. data/src/core/{iomgr → lib/iomgr}/iomgr_internal.h +5 -9
  212. data/src/core/{iomgr → lib/iomgr}/iomgr_posix.c +6 -6
  213. data/src/core/{iomgr → lib/iomgr}/iomgr_posix.h +4 -4
  214. data/src/core/{iomgr → lib/iomgr}/iomgr_windows.c +7 -4
  215. data/src/core/{iomgr → lib/iomgr}/pollset.h +11 -11
  216. data/src/core/{iomgr → lib/iomgr}/pollset_set.h +5 -5
  217. data/src/core/{iomgr → lib/iomgr}/pollset_set_windows.c +2 -2
  218. data/src/core/lib/iomgr/pollset_set_windows.h +39 -0
  219. data/src/core/{iomgr → lib/iomgr}/pollset_windows.c +7 -7
  220. data/src/core/{iomgr → lib/iomgr}/pollset_windows.h +8 -5
  221. data/src/core/{iomgr → lib/iomgr}/resolve_address.h +10 -9
  222. data/src/core/{iomgr → lib/iomgr}/resolve_address_posix.c +22 -22
  223. data/src/core/{iomgr → lib/iomgr}/resolve_address_windows.c +20 -12
  224. data/src/core/{iomgr → lib/iomgr}/sockaddr.h +5 -5
  225. data/src/core/{iomgr → lib/iomgr}/sockaddr_posix.h +5 -5
  226. data/src/core/{iomgr → lib/iomgr}/sockaddr_utils.c +9 -16
  227. data/src/core/{iomgr → lib/iomgr}/sockaddr_utils.h +4 -4
  228. data/src/core/{iomgr → lib/iomgr}/sockaddr_win32.h +6 -4
  229. data/src/core/{iomgr → lib/iomgr}/socket_utils_common_posix.c +29 -7
  230. data/src/core/{iomgr → lib/iomgr}/socket_utils_linux.c +2 -2
  231. data/src/core/{iomgr → lib/iomgr}/socket_utils_posix.c +1 -1
  232. data/src/core/{iomgr → lib/iomgr}/socket_utils_posix.h +14 -4
  233. data/src/core/{iomgr → lib/iomgr}/socket_windows.c +7 -5
  234. data/src/core/{iomgr → lib/iomgr}/socket_windows.h +6 -6
  235. data/src/core/{iomgr → lib/iomgr}/tcp_client.h +6 -6
  236. data/src/core/{iomgr → lib/iomgr}/tcp_client_posix.c +33 -18
  237. data/src/core/{iomgr → lib/iomgr}/tcp_client_windows.c +30 -20
  238. data/src/core/{iomgr → lib/iomgr}/tcp_posix.c +9 -10
  239. data/src/core/{iomgr → lib/iomgr}/tcp_posix.h +6 -6
  240. data/src/core/{iomgr → lib/iomgr}/tcp_server.h +6 -6
  241. data/src/core/{iomgr → lib/iomgr}/tcp_server_posix.c +24 -37
  242. data/src/core/{iomgr → lib/iomgr}/tcp_server_windows.c +8 -36
  243. data/src/core/{iomgr → lib/iomgr}/tcp_windows.c +27 -17
  244. data/src/core/{iomgr → lib/iomgr}/tcp_windows.h +5 -5
  245. data/src/core/{iomgr → lib/iomgr}/time_averaged_stats.c +1 -1
  246. data/src/core/{iomgr → lib/iomgr}/time_averaged_stats.h +3 -3
  247. data/src/core/{iomgr → lib/iomgr}/timer.c +31 -4
  248. data/src/core/{iomgr → lib/iomgr}/timer.h +6 -7
  249. data/src/core/{iomgr → lib/iomgr}/timer_heap.c +2 -2
  250. data/src/core/{iomgr → lib/iomgr}/timer_heap.h +4 -4
  251. data/src/core/{iomgr → lib/iomgr}/udp_server.c +13 -37
  252. data/src/core/{iomgr → lib/iomgr}/udp_server.h +11 -10
  253. data/src/core/lib/iomgr/unix_sockets_posix.c +89 -0
  254. data/src/core/{client_config/resolvers/sockaddr_resolver.h → lib/iomgr/unix_sockets_posix.h} +15 -11
  255. data/src/core/lib/iomgr/unix_sockets_posix_noop.c +59 -0
  256. data/src/core/{iomgr → lib/iomgr}/wakeup_fd_eventfd.c +2 -2
  257. data/src/core/{iomgr → lib/iomgr}/wakeup_fd_nospecial.c +1 -1
  258. data/src/core/{iomgr → lib/iomgr}/wakeup_fd_pipe.c +8 -3
  259. data/src/core/{iomgr → lib/iomgr}/wakeup_fd_pipe.h +4 -4
  260. data/src/core/{iomgr → lib/iomgr}/wakeup_fd_posix.c +2 -2
  261. data/src/core/{iomgr → lib/iomgr}/wakeup_fd_posix.h +3 -3
  262. data/src/core/{iomgr → lib/iomgr}/workqueue.h +10 -10
  263. data/src/core/{iomgr → lib/iomgr}/workqueue_posix.c +5 -6
  264. data/src/core/{iomgr → lib/iomgr}/workqueue_posix.h +5 -5
  265. data/src/core/{iomgr → lib/iomgr}/workqueue_windows.c +1 -1
  266. data/src/core/{iomgr → lib/iomgr}/workqueue_windows.h +3 -3
  267. data/src/core/{json → lib/json}/json.c +1 -1
  268. data/src/core/{json → lib/json}/json.h +4 -4
  269. data/src/core/{json → lib/json}/json_common.h +3 -3
  270. data/src/core/{json → lib/json}/json_reader.c +16 -4
  271. data/src/core/{json → lib/json}/json_reader.h +4 -4
  272. data/src/core/{json → lib/json}/json_string.c +4 -4
  273. data/src/core/{json → lib/json}/json_writer.c +1 -1
  274. data/src/core/{json → lib/json}/json_writer.h +4 -4
  275. data/src/core/{profiling → lib/profiling}/basic_timers.c +3 -2
  276. data/src/core/{profiling → lib/profiling}/stap_timers.c +2 -2
  277. data/src/core/{profiling → lib/profiling}/timers.h +3 -3
  278. data/src/core/{security → lib/security}/auth_filters.h +4 -4
  279. data/src/core/{security → lib/security}/b64.c +2 -2
  280. data/src/core/{security → lib/security}/b64.h +4 -4
  281. data/src/core/{security → lib/security}/client_auth_filter.c +16 -16
  282. data/src/core/{security → lib/security}/credentials.c +42 -26
  283. data/src/core/{security → lib/security}/credentials.h +11 -10
  284. data/src/core/{security → lib/security}/credentials_metadata.c +1 -1
  285. data/src/core/{security → lib/security}/credentials_posix.c +3 -3
  286. data/src/core/{security → lib/security}/credentials_win32.c +3 -3
  287. data/src/core/{security → lib/security}/google_default_credentials.c +10 -9
  288. data/src/core/{security → lib/security}/handshake.c +4 -4
  289. data/src/core/{security → lib/security}/handshake.h +6 -6
  290. data/src/core/{security → lib/security}/json_token.c +4 -4
  291. data/src/core/{security → lib/security}/json_token.h +4 -4
  292. data/src/core/{security → lib/security}/jwt_verifier.c +14 -14
  293. data/src/core/{security → lib/security}/jwt_verifier.h +5 -5
  294. data/src/core/{security → lib/security}/secure_endpoint.c +9 -8
  295. data/src/core/{security → lib/security}/secure_endpoint.h +4 -4
  296. data/src/core/{security → lib/security}/security_connector.c +53 -21
  297. data/src/core/{security → lib/security}/security_connector.h +8 -8
  298. data/src/core/{security → lib/security}/security_context.c +5 -5
  299. data/src/core/{security → lib/security}/security_context.h +5 -5
  300. data/src/core/{security → lib/security}/server_auth_filter.c +9 -9
  301. data/src/core/{support → lib/support}/alloc.c +5 -3
  302. data/src/core/{support → lib/support}/avl.c +1 -1
  303. data/src/core/lib/support/backoff.c +76 -0
  304. data/src/core/lib/support/backoff.h +68 -0
  305. data/src/core/{support → lib/support}/block_annotate.h +3 -3
  306. data/src/core/{support → lib/support}/cmdline.c +1 -1
  307. data/src/core/{support → lib/support}/cpu_iphone.c +0 -0
  308. data/src/core/{support → lib/support}/cpu_linux.c +2 -2
  309. data/src/core/{support → lib/support}/cpu_posix.c +2 -2
  310. data/src/core/{support → lib/support}/cpu_windows.c +0 -0
  311. data/src/core/{support → lib/support}/env.h +3 -3
  312. data/src/core/{support → lib/support}/env_linux.c +3 -3
  313. data/src/core/{support → lib/support}/env_posix.c +2 -2
  314. data/src/core/{support → lib/support}/env_win32.c +27 -21
  315. data/src/core/{support → lib/support}/histogram.c +1 -1
  316. data/src/core/{support → lib/support}/host_port.c +1 -1
  317. data/src/core/{support → lib/support}/load_file.c +4 -4
  318. data/src/core/{support → lib/support}/load_file.h +4 -4
  319. data/src/core/{support → lib/support}/log.c +33 -0
  320. data/src/core/{support → lib/support}/log_android.c +2 -2
  321. data/src/core/{support → lib/support}/log_linux.c +6 -5
  322. data/src/core/{support → lib/support}/log_posix.c +3 -3
  323. data/src/core/{support → lib/support}/log_win32.c +8 -22
  324. data/src/core/{support → lib/support}/murmur_hash.c +1 -1
  325. data/src/core/{support → lib/support}/murmur_hash.h +3 -3
  326. data/src/core/{support → lib/support}/slice.c +0 -0
  327. data/src/core/{support → lib/support}/slice_buffer.c +0 -0
  328. data/src/core/{support → lib/support}/stack_lockfree.c +7 -7
  329. data/src/core/{support → lib/support}/stack_lockfree.h +3 -3
  330. data/src/core/{support → lib/support}/string.c +1 -1
  331. data/src/core/{support → lib/support}/string.h +4 -4
  332. data/src/core/{support → lib/support}/string_posix.c +1 -1
  333. data/src/core/{support/string_win32.c → lib/support/string_util_win32.c} +23 -38
  334. data/src/core/lib/support/string_win32.c +83 -0
  335. data/src/core/{support → lib/support}/string_win32.h +3 -3
  336. data/src/core/{support → lib/support}/subprocess_posix.c +3 -3
  337. data/src/core/{support → lib/support}/subprocess_windows.c +3 -3
  338. data/src/core/{support → lib/support}/sync.c +2 -2
  339. data/src/core/{support → lib/support}/sync_posix.c +3 -3
  340. data/src/core/{support → lib/support}/sync_win32.c +1 -1
  341. data/src/core/{support → lib/support}/thd.c +0 -0
  342. data/src/core/{support → lib/support}/thd_internal.h +3 -3
  343. data/src/core/{support → lib/support}/thd_posix.c +4 -3
  344. data/src/core/{support → lib/support}/thd_win32.c +1 -1
  345. data/src/core/{support → lib/support}/time.c +2 -2
  346. data/src/core/{support → lib/support}/time_posix.c +12 -6
  347. data/src/core/{support → lib/support}/time_precise.c +0 -0
  348. data/src/core/{support → lib/support}/time_precise.h +3 -3
  349. data/src/core/{support → lib/support}/time_win32.c +7 -7
  350. data/src/core/{support → lib/support}/tls_pthread.c +0 -0
  351. data/src/core/{support → lib/support}/tmpfile.h +4 -4
  352. data/src/core/lib/support/tmpfile_msys.c +73 -0
  353. data/src/core/{support → lib/support}/tmpfile_posix.c +5 -5
  354. data/src/core/{support → lib/support}/tmpfile_win32.c +5 -5
  355. data/src/core/{support → lib/support}/wrap_memcpy.c +0 -0
  356. data/src/core/{surface → lib/surface}/alarm.c +3 -3
  357. data/src/core/{surface → lib/surface}/api_trace.c +1 -1
  358. data/src/core/{surface → lib/surface}/api_trace.h +4 -4
  359. data/src/core/{surface → lib/surface}/byte_buffer.c +3 -3
  360. data/src/core/{surface → lib/surface}/byte_buffer_reader.c +3 -3
  361. data/src/core/{surface → lib/surface}/call.c +145 -73
  362. data/src/core/{surface → lib/surface}/call.h +14 -7
  363. data/src/core/{surface → lib/surface}/call_details.c +1 -1
  364. data/src/core/{surface → lib/surface}/call_log_batch.c +2 -2
  365. data/src/core/{surface → lib/surface}/call_test_only.h +3 -3
  366. data/src/core/{surface → lib/surface}/channel.c +33 -34
  367. data/src/core/{surface → lib/surface}/channel.h +9 -9
  368. data/src/core/lib/surface/channel_init.c +140 -0
  369. data/src/core/lib/surface/channel_init.h +87 -0
  370. data/src/core/{surface → lib/surface}/channel_ping.c +4 -4
  371. data/src/core/lib/surface/channel_stack_type.c +54 -0
  372. data/src/core/{httpcli/parser.h → lib/surface/channel_stack_type.h} +22 -28
  373. data/src/core/{surface → lib/surface}/completion_queue.c +15 -11
  374. data/src/core/{surface → lib/surface}/completion_queue.h +4 -4
  375. data/src/core/{surface → lib/surface}/event_string.c +2 -2
  376. data/src/core/{surface → lib/surface}/event_string.h +3 -3
  377. data/src/core/lib/surface/init.c +217 -0
  378. data/src/core/{surface → lib/surface}/init.h +4 -3
  379. data/src/core/lib/surface/init_secure.c +89 -0
  380. data/src/core/{surface → lib/surface}/lame_client.c +31 -19
  381. data/src/core/{iomgr/pollset_set_windows.h → lib/surface/lame_client.h} +7 -5
  382. data/src/core/{surface → lib/surface}/metadata_array.c +1 -1
  383. data/src/core/{surface → lib/surface}/server.c +208 -183
  384. data/src/core/{surface → lib/surface}/server.h +6 -11
  385. data/src/core/{surface → lib/surface}/surface_trace.h +5 -5
  386. data/src/core/{surface → lib/surface}/validate_metadata.c +1 -1
  387. data/src/core/{surface → lib/surface}/version.c +2 -2
  388. data/src/core/{transport → lib/transport}/byte_stream.c +1 -1
  389. data/src/core/{transport → lib/transport}/byte_stream.h +4 -4
  390. data/src/core/{transport → lib/transport}/connectivity_state.c +2 -2
  391. data/src/core/{transport → lib/transport}/connectivity_state.h +4 -4
  392. data/src/core/{transport → lib/transport}/metadata.c +71 -19
  393. data/src/core/{transport → lib/transport}/metadata.h +11 -4
  394. data/src/core/{transport → lib/transport}/metadata_batch.c +2 -2
  395. data/src/core/{transport → lib/transport}/metadata_batch.h +4 -4
  396. data/src/core/{transport → lib/transport}/static_metadata.c +100 -32
  397. data/src/core/{transport → lib/transport}/static_metadata.h +58 -58
  398. data/src/core/{transport → lib/transport}/transport.c +25 -5
  399. data/src/core/{transport → lib/transport}/transport.h +41 -16
  400. data/src/core/{transport → lib/transport}/transport_impl.h +8 -5
  401. data/src/core/{transport → lib/transport}/transport_op_string.c +2 -2
  402. data/src/core/{tsi → lib/tsi}/fake_transport_security.c +18 -14
  403. data/src/core/{tsi → lib/tsi}/fake_transport_security.h +4 -4
  404. data/src/core/{tsi → lib/tsi}/ssl_transport_security.c +173 -63
  405. data/src/core/{tsi → lib/tsi}/ssl_transport_security.h +24 -6
  406. data/src/core/{tsi → lib/tsi}/ssl_types.h +3 -3
  407. data/src/core/{tsi → lib/tsi}/transport_security.c +12 -28
  408. data/src/core/{tsi → lib/tsi}/transport_security.h +4 -4
  409. data/src/core/{tsi → lib/tsi}/transport_security_interface.h +12 -3
  410. data/src/core/plugin_registry/grpc_plugin_registry.c +66 -0
  411. data/src/ruby/ext/grpc/extconf.rb +14 -20
  412. data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -3
  413. data/src/ruby/ext/grpc/rb_call.c +37 -4
  414. data/src/ruby/ext/grpc/rb_call_credentials.c +13 -3
  415. data/src/ruby/ext/grpc/rb_channel.c +2 -3
  416. data/src/ruby/ext/grpc/rb_channel_args.c +2 -3
  417. data/src/ruby/ext/grpc/rb_channel_credentials.c +31 -3
  418. data/src/ruby/ext/grpc/rb_completion_queue.c +2 -2
  419. data/src/ruby/ext/grpc/rb_event_thread.c +1 -1
  420. data/src/ruby/ext/grpc/rb_grpc.c +4 -2
  421. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +8 -0
  422. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +14 -2
  423. data/src/ruby/ext/grpc/rb_server.c +2 -3
  424. data/src/ruby/ext/grpc/rb_server_credentials.c +16 -13
  425. data/src/ruby/ext/grpc/rb_signal.c +70 -0
  426. data/src/ruby/ext/grpc/rb_signal.h +39 -0
  427. data/src/ruby/lib/grpc.rb +21 -13
  428. data/src/ruby/lib/grpc/core/time_consts.rb +2 -2
  429. data/src/ruby/lib/grpc/errors.rb +2 -2
  430. data/src/ruby/lib/grpc/generic/active_call.rb +10 -3
  431. data/src/ruby/lib/grpc/generic/bidi_call.rb +2 -2
  432. data/src/ruby/lib/grpc/generic/client_stub.rb +10 -7
  433. data/src/ruby/lib/grpc/generic/rpc_desc.rb +2 -2
  434. data/src/ruby/lib/grpc/generic/rpc_server.rb +21 -61
  435. data/src/ruby/lib/grpc/generic/service.rb +5 -15
  436. data/src/ruby/lib/grpc/grpc.rb +3 -3
  437. data/src/ruby/{bin/interop/interop_server.rb → lib/grpc/signals.rb} +39 -20
  438. data/src/ruby/lib/grpc/version.rb +2 -2
  439. data/src/ruby/pb/generate_proto_ruby.sh +9 -2
  440. data/src/ruby/pb/grpc/health/checker.rb +1 -1
  441. data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services.rb +28 -0
  442. data/src/ruby/pb/grpc/testing/metrics.rb +28 -0
  443. data/src/ruby/pb/grpc/testing/metrics_services.rb +27 -0
  444. data/src/ruby/pb/test/client.rb +12 -23
  445. data/src/ruby/pb/test/server.rb +1 -1
  446. data/src/ruby/spec/client_server_spec.rb +1 -1
  447. data/src/ruby/spec/generic/client_stub_spec.rb +18 -17
  448. data/src/ruby/spec/generic/rpc_server_spec.rb +23 -7
  449. data/src/ruby/spec/generic/service_spec.rb +0 -69
  450. data/src/ruby/{bin/interop/interop_client.rb → spec/pb/duplicate/codegen_spec.rb} +41 -21
  451. data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
  452. data/third_party/boringssl/crypto/asn1/a_bitstr.c +184 -176
  453. data/third_party/boringssl/crypto/asn1/a_bool.c +42 -44
  454. data/third_party/boringssl/crypto/asn1/a_bytes.c +236 -245
  455. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +173 -192
  456. data/third_party/boringssl/crypto/asn1/a_dup.c +43 -35
  457. data/third_party/boringssl/crypto/asn1/a_enum.c +107 -109
  458. data/third_party/boringssl/crypto/asn1/a_gentm.c +180 -181
  459. data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +73 -80
  460. data/third_party/boringssl/crypto/asn1/a_int.c +357 -353
  461. data/third_party/boringssl/crypto/asn1/a_mbstr.c +272 -253
  462. data/third_party/boringssl/crypto/asn1/a_object.c +293 -309
  463. data/third_party/boringssl/crypto/asn1/a_octet.c +13 -6
  464. data/third_party/boringssl/crypto/asn1/a_print.c +54 -52
  465. data/third_party/boringssl/crypto/asn1/a_strnid.c +179 -157
  466. data/third_party/boringssl/crypto/asn1/a_time.c +125 -129
  467. data/third_party/boringssl/crypto/asn1/a_type.c +79 -86
  468. data/third_party/boringssl/crypto/asn1/a_utctm.c +246 -255
  469. data/third_party/boringssl/crypto/asn1/a_utf8.c +159 -135
  470. data/third_party/boringssl/crypto/asn1/asn1_lib.c +361 -368
  471. data/third_party/boringssl/crypto/asn1/asn1_locl.h +11 -11
  472. data/third_party/boringssl/crypto/asn1/asn1_par.c +309 -351
  473. data/third_party/boringssl/crypto/asn1/asn_pack.c +30 -29
  474. data/third_party/boringssl/crypto/asn1/bio_asn1.c +375 -394
  475. data/third_party/boringssl/crypto/asn1/bio_ndef.c +146 -149
  476. data/third_party/boringssl/crypto/asn1/f_enum.c +128 -134
  477. data/third_party/boringssl/crypto/asn1/f_int.c +131 -139
  478. data/third_party/boringssl/crypto/asn1/f_string.c +125 -133
  479. data/third_party/boringssl/crypto/asn1/t_bitst.c +30 -29
  480. data/third_party/boringssl/crypto/asn1/t_pkey.c +45 -47
  481. data/third_party/boringssl/crypto/asn1/tasn_dec.c +1099 -1216
  482. data/third_party/boringssl/crypto/asn1/tasn_enc.c +556 -592
  483. data/third_party/boringssl/crypto/asn1/tasn_fre.c +175 -193
  484. data/third_party/boringssl/crypto/asn1/tasn_new.c +271 -288
  485. data/third_party/boringssl/crypto/asn1/tasn_prn.c +462 -508
  486. data/third_party/boringssl/crypto/asn1/tasn_typ.c +28 -21
  487. data/third_party/boringssl/crypto/asn1/x_bignum.c +62 -52
  488. data/third_party/boringssl/crypto/asn1/x_long.c +101 -86
  489. data/third_party/boringssl/crypto/bio/buffer.c +3 -3
  490. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +8 -68
  491. data/third_party/boringssl/crypto/bn/bn.c +1 -1
  492. data/third_party/boringssl/crypto/bn/bn_asn1.c +9 -22
  493. data/third_party/boringssl/crypto/bn/convert.c +9 -4
  494. data/third_party/boringssl/crypto/bn/div.c +0 -20
  495. data/third_party/boringssl/crypto/bn/exponentiation.c +22 -13
  496. data/third_party/boringssl/crypto/bn/generic.c +6 -242
  497. data/third_party/boringssl/crypto/bn/internal.h +9 -70
  498. data/third_party/boringssl/crypto/bn/montgomery.c +1 -2
  499. data/third_party/boringssl/crypto/bn/mul.c +6 -26
  500. data/third_party/boringssl/crypto/bn/rsaz_exp.c +21 -28
  501. data/third_party/boringssl/crypto/bytestring/asn1_compat.c +51 -0
  502. data/third_party/boringssl/crypto/bytestring/ber.c +128 -87
  503. data/third_party/boringssl/crypto/bytestring/cbb.c +37 -3
  504. data/third_party/boringssl/crypto/bytestring/internal.h +39 -10
  505. data/third_party/boringssl/crypto/chacha/chacha_vec.c +18 -13
  506. data/third_party/boringssl/crypto/cipher/e_aes.c +2 -2
  507. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +4 -9
  508. data/third_party/boringssl/crypto/cipher/tls_cbc.c +39 -10
  509. data/third_party/boringssl/crypto/conf/conf.c +9 -0
  510. data/third_party/boringssl/crypto/cpu-intel.c +1 -1
  511. data/third_party/boringssl/crypto/crypto.c +2 -0
  512. data/third_party/boringssl/crypto/curve25519/curve25519.c +125 -120
  513. data/third_party/boringssl/crypto/curve25519/internal.h +45 -0
  514. data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +225 -0
  515. data/third_party/boringssl/crypto/dh/check.c +32 -10
  516. data/third_party/boringssl/crypto/dh/dh.c +1 -1
  517. data/third_party/boringssl/crypto/digest/md32_common.h +0 -60
  518. data/third_party/boringssl/crypto/dsa/dsa.c +47 -21
  519. data/third_party/boringssl/crypto/dsa/dsa_asn1.c +249 -64
  520. data/third_party/boringssl/crypto/ec/ec.c +45 -31
  521. data/third_party/boringssl/crypto/ec/ec_asn1.c +315 -382
  522. data/third_party/boringssl/crypto/ec/ec_key.c +1 -4
  523. data/third_party/boringssl/crypto/ec/ec_montgomery.c +0 -9
  524. data/third_party/boringssl/crypto/ec/internal.h +1 -19
  525. data/third_party/boringssl/crypto/ec/oct.c +12 -0
  526. data/third_party/boringssl/crypto/ec/p224-64.c +4 -65
  527. data/third_party/boringssl/crypto/ec/p256-64.c +9 -71
  528. data/third_party/boringssl/crypto/ec/p256-x86_64-table.h +1 -6
  529. data/third_party/boringssl/crypto/ec/p256-x86_64.c +3 -13
  530. data/third_party/boringssl/crypto/ec/simple.c +0 -76
  531. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +1 -1
  532. data/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c +10 -24
  533. data/third_party/boringssl/crypto/evp/evp.c +4 -3
  534. data/third_party/boringssl/crypto/evp/evp_asn1.c +101 -0
  535. data/third_party/boringssl/crypto/evp/evp_ctx.c +22 -51
  536. data/third_party/boringssl/crypto/evp/internal.h +28 -27
  537. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +78 -249
  538. data/third_party/boringssl/crypto/evp/p_ec.c +19 -66
  539. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +74 -231
  540. data/third_party/boringssl/crypto/evp/p_rsa.c +90 -13
  541. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +49 -48
  542. data/third_party/boringssl/crypto/internal.h +16 -1
  543. data/third_party/boringssl/crypto/mem.c +2 -2
  544. data/third_party/boringssl/crypto/modes/ctr.c +2 -1
  545. data/third_party/boringssl/crypto/modes/gcm.c +5 -3
  546. data/third_party/boringssl/crypto/obj/obj_dat.h +6 -3
  547. data/third_party/boringssl/crypto/pem/pem_all.c +83 -102
  548. data/third_party/boringssl/crypto/pem/pem_info.c +286 -309
  549. data/third_party/boringssl/crypto/pem/pem_lib.c +690 -710
  550. data/third_party/boringssl/crypto/pem/pem_oth.c +15 -16
  551. data/third_party/boringssl/crypto/pem/pem_pk8.c +132 -119
  552. data/third_party/boringssl/crypto/pem/pem_pkey.c +144 -220
  553. data/third_party/boringssl/crypto/pem/pem_x509.c +3 -3
  554. data/third_party/boringssl/crypto/pem/pem_xaux.c +5 -4
  555. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +54 -60
  556. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +3 -1
  557. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +48 -50
  558. data/third_party/boringssl/crypto/rand/rand.c +2 -0
  559. data/third_party/boringssl/crypto/rsa/blinding.c +8 -48
  560. data/third_party/boringssl/crypto/rsa/internal.h +1 -9
  561. data/third_party/boringssl/crypto/rsa/padding.c +73 -77
  562. data/third_party/boringssl/crypto/rsa/rsa.c +1 -1
  563. data/third_party/boringssl/crypto/rsa/rsa_asn1.c +27 -46
  564. data/third_party/boringssl/crypto/rsa/rsa_impl.c +23 -34
  565. data/third_party/boringssl/crypto/test/scoped_types.h +3 -0
  566. data/third_party/boringssl/crypto/thread_win.c +15 -13
  567. data/third_party/boringssl/crypto/time_support.c +0 -6
  568. data/third_party/boringssl/crypto/x509/a_digest.c +26 -27
  569. data/third_party/boringssl/crypto/x509/a_sign.c +63 -64
  570. data/third_party/boringssl/crypto/x509/a_strex.c +482 -413
  571. data/third_party/boringssl/crypto/x509/a_verify.c +45 -51
  572. data/third_party/boringssl/crypto/x509/asn1_gen.c +715 -769
  573. data/third_party/boringssl/crypto/x509/by_dir.c +355 -393
  574. data/third_party/boringssl/crypto/x509/by_file.c +186 -206
  575. data/third_party/boringssl/crypto/x509/charmap.h +11 -11
  576. data/third_party/boringssl/crypto/x509/i2d_pr.c +21 -22
  577. data/third_party/boringssl/crypto/x509/t_crl.c +50 -51
  578. data/third_party/boringssl/crypto/x509/t_x509.c +414 -406
  579. data/third_party/boringssl/crypto/x509/t_x509a.c +44 -42
  580. data/third_party/boringssl/crypto/x509/vpm_int.h +13 -13
  581. data/third_party/boringssl/crypto/x509/x509_att.c +241 -219
  582. data/third_party/boringssl/crypto/x509/x509_cmp.c +343 -359
  583. data/third_party/boringssl/crypto/x509/x509_d2.c +36 -35
  584. data/third_party/boringssl/crypto/x509/x509_def.c +23 -13
  585. data/third_party/boringssl/crypto/x509/x509_ext.c +75 -75
  586. data/third_party/boringssl/crypto/x509/x509_lu.c +574 -612
  587. data/third_party/boringssl/crypto/x509/x509_obj.c +104 -115
  588. data/third_party/boringssl/crypto/x509/x509_r2x.c +40 -40
  589. data/third_party/boringssl/crypto/x509/x509_req.c +181 -174
  590. data/third_party/boringssl/crypto/x509/x509_set.c +71 -76
  591. data/third_party/boringssl/crypto/x509/x509_trs.c +193 -171
  592. data/third_party/boringssl/crypto/x509/x509_txt.c +135 -138
  593. data/third_party/boringssl/crypto/x509/x509_v3.c +174 -167
  594. data/third_party/boringssl/crypto/x509/x509_vfy.c +2079 -2130
  595. data/third_party/boringssl/crypto/x509/x509_vpm.c +486 -522
  596. data/third_party/boringssl/crypto/x509/x509cset.c +96 -99
  597. data/third_party/boringssl/crypto/x509/x509name.c +280 -275
  598. data/third_party/boringssl/crypto/x509/x509rset.c +15 -14
  599. data/third_party/boringssl/crypto/x509/x509spki.c +62 -60
  600. data/third_party/boringssl/crypto/x509/x509type.c +58 -60
  601. data/third_party/boringssl/crypto/x509/x_algor.c +70 -73
  602. data/third_party/boringssl/crypto/x509/x_all.c +282 -328
  603. data/third_party/boringssl/crypto/x509/x_attrib.c +36 -42
  604. data/third_party/boringssl/crypto/x509/x_crl.c +397 -418
  605. data/third_party/boringssl/crypto/x509/x_exten.c +5 -5
  606. data/third_party/boringssl/crypto/x509/x_info.c +30 -27
  607. data/third_party/boringssl/crypto/x509/x_name.c +387 -388
  608. data/third_party/boringssl/crypto/x509/x_pkey.c +32 -29
  609. data/third_party/boringssl/crypto/x509/x_pubkey.c +261 -280
  610. data/third_party/boringssl/crypto/x509/x_req.c +30 -33
  611. data/third_party/boringssl/crypto/x509/x_sig.c +2 -2
  612. data/third_party/boringssl/crypto/x509/x_spki.c +9 -7
  613. data/third_party/boringssl/crypto/x509/x_val.c +2 -2
  614. data/third_party/boringssl/crypto/x509/x_x509.c +120 -119
  615. data/third_party/boringssl/crypto/x509/x_x509a.c +99 -91
  616. data/third_party/boringssl/crypto/x509v3/ext_dat.h +57 -51
  617. data/third_party/boringssl/crypto/x509v3/pcy_cache.c +199 -214
  618. data/third_party/boringssl/crypto/x509v3/pcy_data.c +57 -64
  619. data/third_party/boringssl/crypto/x509v3/pcy_int.h +95 -90
  620. data/third_party/boringssl/crypto/x509v3/pcy_lib.c +86 -87
  621. data/third_party/boringssl/crypto/x509v3/pcy_map.c +61 -64
  622. data/third_party/boringssl/crypto/x509v3/pcy_node.c +108 -117
  623. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +676 -724
  624. data/third_party/boringssl/crypto/x509v3/v3_akey.c +128 -136
  625. data/third_party/boringssl/crypto/x509v3/v3_akeya.c +7 -6
  626. data/third_party/boringssl/crypto/x509v3/v3_alt.c +499 -507
  627. data/third_party/boringssl/crypto/x509v3/v3_bcons.c +54 -47
  628. data/third_party/boringssl/crypto/x509v3/v3_bitst.c +67 -67
  629. data/third_party/boringssl/crypto/x509v3/v3_conf.c +330 -328
  630. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +354 -338
  631. data/third_party/boringssl/crypto/x509v3/v3_crld.c +441 -496
  632. data/third_party/boringssl/crypto/x509v3/v3_enum.c +35 -33
  633. data/third_party/boringssl/crypto/x509v3/v3_extku.c +66 -63
  634. data/third_party/boringssl/crypto/x509v3/v3_genn.c +157 -159
  635. data/third_party/boringssl/crypto/x509v3/v3_ia5.c +45 -43
  636. data/third_party/boringssl/crypto/x509v3/v3_info.c +124 -112
  637. data/third_party/boringssl/crypto/x509v3/v3_int.c +30 -26
  638. data/third_party/boringssl/crypto/x509v3/v3_lib.c +231 -204
  639. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +353 -381
  640. data/third_party/boringssl/crypto/x509v3/v3_pci.c +252 -270
  641. data/third_party/boringssl/crypto/x509v3/v3_pcia.c +9 -8
  642. data/third_party/boringssl/crypto/x509v3/v3_pcons.c +58 -61
  643. data/third_party/boringssl/crypto/x509v3/v3_pku.c +35 -34
  644. data/third_party/boringssl/crypto/x509v3/v3_pmaps.c +72 -74
  645. data/third_party/boringssl/crypto/x509v3/v3_prn.c +146 -121
  646. data/third_party/boringssl/crypto/x509v3/v3_purp.c +651 -582
  647. data/third_party/boringssl/crypto/x509v3/v3_skey.c +76 -72
  648. data/third_party/boringssl/crypto/x509v3/v3_sxnet.c +139 -131
  649. data/third_party/boringssl/crypto/x509v3/v3_utl.c +1072 -1068
  650. data/third_party/boringssl/include/openssl/asn1.h +40 -38
  651. data/third_party/boringssl/include/openssl/base.h +10 -1
  652. data/third_party/boringssl/include/openssl/bio.h +10 -11
  653. data/third_party/boringssl/include/openssl/bn.h +12 -9
  654. data/third_party/boringssl/include/openssl/buf.h +1 -1
  655. data/third_party/boringssl/include/openssl/bytestring.h +29 -0
  656. data/third_party/boringssl/include/openssl/conf.h +25 -0
  657. data/third_party/boringssl/include/openssl/crypto.h +6 -1
  658. data/third_party/boringssl/include/openssl/curve25519.h +6 -3
  659. data/third_party/boringssl/include/openssl/dh.h +7 -3
  660. data/third_party/boringssl/include/openssl/dsa.h +108 -51
  661. data/third_party/boringssl/include/openssl/ec.h +46 -21
  662. data/third_party/boringssl/include/openssl/ec_key.h +78 -42
  663. data/third_party/boringssl/include/openssl/ecdsa.h +4 -4
  664. data/third_party/boringssl/include/openssl/err.h +3 -2
  665. data/third_party/boringssl/include/openssl/evp.h +120 -37
  666. data/third_party/boringssl/include/openssl/mem.h +4 -13
  667. data/third_party/boringssl/include/openssl/obj_mac.h +4 -0
  668. data/third_party/boringssl/include/openssl/pem.h +0 -9
  669. data/third_party/boringssl/include/openssl/pkcs8.h +6 -2
  670. data/third_party/boringssl/include/openssl/rand.h +3 -0
  671. data/third_party/boringssl/include/openssl/rsa.h +42 -42
  672. data/third_party/boringssl/include/openssl/ssl.h +115 -41
  673. data/third_party/boringssl/include/openssl/stack.h +0 -3
  674. data/third_party/boringssl/include/openssl/stack_macros.h +0 -256
  675. data/third_party/boringssl/include/openssl/tls1.h +1 -1
  676. data/third_party/boringssl/include/openssl/x509.h +0 -2
  677. data/third_party/boringssl/include/openssl/x509_vfy.h +5 -0
  678. data/third_party/boringssl/ssl/d1_both.c +102 -101
  679. data/third_party/boringssl/ssl/d1_clnt.c +145 -150
  680. data/third_party/boringssl/ssl/d1_lib.c +63 -62
  681. data/third_party/boringssl/ssl/d1_pkt.c +73 -71
  682. data/third_party/boringssl/ssl/d1_srvr.c +116 -125
  683. data/third_party/boringssl/ssl/dtls_record.c +3 -3
  684. data/third_party/boringssl/ssl/internal.h +210 -208
  685. data/third_party/boringssl/ssl/pqueue/pqueue.c +2 -2
  686. data/third_party/boringssl/ssl/s3_both.c +116 -130
  687. data/third_party/boringssl/ssl/s3_clnt.c +589 -740
  688. data/third_party/boringssl/ssl/s3_enc.c +52 -151
  689. data/third_party/boringssl/ssl/s3_lib.c +70 -76
  690. data/third_party/boringssl/ssl/s3_pkt.c +105 -144
  691. data/third_party/boringssl/ssl/s3_srvr.c +542 -806
  692. data/third_party/boringssl/ssl/ssl_aead_ctx.c +1 -1
  693. data/third_party/boringssl/ssl/ssl_cert.c +2 -2
  694. data/third_party/boringssl/ssl/ssl_cipher.c +7 -3
  695. data/third_party/boringssl/ssl/ssl_ecdh.c +374 -0
  696. data/third_party/boringssl/ssl/ssl_lib.c +260 -221
  697. data/third_party/boringssl/ssl/ssl_session.c +17 -17
  698. data/third_party/boringssl/ssl/t1_enc.c +128 -273
  699. data/third_party/boringssl/ssl/t1_lib.c +134 -258
  700. data/third_party/boringssl/ssl/test/test_config.h +2 -0
  701. data/third_party/boringssl/ssl/tls_record.c +52 -15
  702. metadata +385 -359
  703. data/src/core/channel/client_uchannel.c +0 -243
  704. data/src/core/channel/client_uchannel.h +0 -60
  705. data/src/core/channel/connected_channel.h +0 -51
  706. data/src/core/client_config/lb_policies/pick_first.h +0 -43
  707. data/src/core/client_config/resolvers/dns_resolver.h +0 -42
  708. data/src/core/client_config/subchannel_factory.h +0 -66
  709. data/src/core/httpcli/parser.c +0 -211
  710. data/src/core/iomgr/fd_posix.c +0 -451
  711. data/src/core/iomgr/fd_posix.h +0 -192
  712. data/src/core/iomgr/pollset_multipoller_with_epoll.c +0 -324
  713. data/src/core/iomgr/pollset_multipoller_with_poll_posix.c +0 -234
  714. data/src/core/iomgr/pollset_posix.c +0 -633
  715. data/src/core/iomgr/pollset_posix.h +0 -153
  716. data/src/core/iomgr/pollset_set_posix.c +0 -202
  717. data/src/core/iomgr/pollset_set_posix.h +0 -45
  718. data/src/core/surface/init.c +0 -174
  719. data/src/core/surface/init_secure.c +0 -42
  720. data/src/core/surface/server_create.c +0 -48
  721. data/src/core/transport/chttp2/huffsyms.c +0 -297
  722. data/src/ruby/bin/grpc_ruby_interop_client +0 -33
  723. data/src/ruby/bin/grpc_ruby_interop_server +0 -33
  724. data/third_party/boringssl/crypto/dsa/internal.h +0 -78
@@ -134,9 +134,6 @@ typedef struct stack_st {
134
134
  * STACK_OF:GENERAL_NAME
135
135
  * STACK_OF:GENERAL_NAMES
136
136
  * STACK_OF:GENERAL_SUBTREE
137
- * STACK_OF:MIME_HEADER
138
- * STACK_OF:PKCS7_RECIP_INFO
139
- * STACK_OF:PKCS7_SIGNER_INFO
140
137
  * STACK_OF:POLICYINFO
141
138
  * STACK_OF:POLICYQUALINFO
142
139
  * STACK_OF:POLICY_MAPPING
@@ -1430,262 +1430,6 @@
1430
1430
  copy_func), \
1431
1431
  CHECKED_CAST(void (*)(void *), void (*)(GENERAL_SUBTREE *), free_func)))
1432
1432
 
1433
- /* MIME_HEADER */
1434
- #define sk_MIME_HEADER_new(comp) \
1435
- ((STACK_OF(MIME_HEADER) *)sk_new(CHECKED_CAST( \
1436
- stack_cmp_func, int (*)(const MIME_HEADER **a, const MIME_HEADER **b), \
1437
- comp)))
1438
-
1439
- #define sk_MIME_HEADER_new_null() ((STACK_OF(MIME_HEADER) *)sk_new_null())
1440
-
1441
- #define sk_MIME_HEADER_num(sk) \
1442
- sk_num(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk))
1443
-
1444
- #define sk_MIME_HEADER_zero(sk) \
1445
- sk_zero(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk));
1446
-
1447
- #define sk_MIME_HEADER_value(sk, i) \
1448
- ((MIME_HEADER *)sk_value( \
1449
- CHECKED_CAST(_STACK *, const STACK_OF(MIME_HEADER) *, sk), (i)))
1450
-
1451
- #define sk_MIME_HEADER_set(sk, i, p) \
1452
- ((MIME_HEADER *)sk_set(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
1453
- (i), CHECKED_CAST(void *, MIME_HEADER *, p)))
1454
-
1455
- #define sk_MIME_HEADER_free(sk) \
1456
- sk_free(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk))
1457
-
1458
- #define sk_MIME_HEADER_pop_free(sk, free_func) \
1459
- sk_pop_free( \
1460
- CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
1461
- CHECKED_CAST(void (*)(void *), void (*)(MIME_HEADER *), free_func))
1462
-
1463
- #define sk_MIME_HEADER_insert(sk, p, where) \
1464
- sk_insert(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
1465
- CHECKED_CAST(void *, MIME_HEADER *, p), (where))
1466
-
1467
- #define sk_MIME_HEADER_delete(sk, where) \
1468
- ((MIME_HEADER *)sk_delete( \
1469
- CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), (where)))
1470
-
1471
- #define sk_MIME_HEADER_delete_ptr(sk, p) \
1472
- ((MIME_HEADER *)sk_delete_ptr( \
1473
- CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
1474
- CHECKED_CAST(void *, MIME_HEADER *, p)))
1475
-
1476
- #define sk_MIME_HEADER_find(sk, out_index, p) \
1477
- sk_find(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), (out_index), \
1478
- CHECKED_CAST(void *, MIME_HEADER *, p))
1479
-
1480
- #define sk_MIME_HEADER_shift(sk) \
1481
- ((MIME_HEADER *)sk_shift(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk)))
1482
-
1483
- #define sk_MIME_HEADER_push(sk, p) \
1484
- sk_push(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
1485
- CHECKED_CAST(void *, MIME_HEADER *, p))
1486
-
1487
- #define sk_MIME_HEADER_pop(sk) \
1488
- ((MIME_HEADER *)sk_pop(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk)))
1489
-
1490
- #define sk_MIME_HEADER_dup(sk) \
1491
- ((STACK_OF(MIME_HEADER) *)sk_dup( \
1492
- CHECKED_CAST(_STACK *, const STACK_OF(MIME_HEADER) *, sk)))
1493
-
1494
- #define sk_MIME_HEADER_sort(sk) \
1495
- sk_sort(CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk))
1496
-
1497
- #define sk_MIME_HEADER_is_sorted(sk) \
1498
- sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(MIME_HEADER) *, sk))
1499
-
1500
- #define sk_MIME_HEADER_set_cmp_func(sk, comp) \
1501
- ((int (*)(const MIME_HEADER **a, const MIME_HEADER **b))sk_set_cmp_func( \
1502
- CHECKED_CAST(_STACK *, STACK_OF(MIME_HEADER) *, sk), \
1503
- CHECKED_CAST(stack_cmp_func, \
1504
- int (*)(const MIME_HEADER **a, const MIME_HEADER **b), \
1505
- comp)))
1506
-
1507
- #define sk_MIME_HEADER_deep_copy(sk, copy_func, free_func) \
1508
- ((STACK_OF(MIME_HEADER) *)sk_deep_copy( \
1509
- CHECKED_CAST(const _STACK *, const STACK_OF(MIME_HEADER) *, sk), \
1510
- CHECKED_CAST(void *(*)(void *), MIME_HEADER *(*)(MIME_HEADER *), \
1511
- copy_func), \
1512
- CHECKED_CAST(void (*)(void *), void (*)(MIME_HEADER *), free_func)))
1513
-
1514
- /* PKCS7_RECIP_INFO */
1515
- #define sk_PKCS7_RECIP_INFO_new(comp) \
1516
- ((STACK_OF(PKCS7_RECIP_INFO) *)sk_new(CHECKED_CAST( \
1517
- stack_cmp_func, \
1518
- int (*)(const PKCS7_RECIP_INFO **a, const PKCS7_RECIP_INFO **b), comp)))
1519
-
1520
- #define sk_PKCS7_RECIP_INFO_new_null() \
1521
- ((STACK_OF(PKCS7_RECIP_INFO) *)sk_new_null())
1522
-
1523
- #define sk_PKCS7_RECIP_INFO_num(sk) \
1524
- sk_num(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk))
1525
-
1526
- #define sk_PKCS7_RECIP_INFO_zero(sk) \
1527
- sk_zero(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk));
1528
-
1529
- #define sk_PKCS7_RECIP_INFO_value(sk, i) \
1530
- ((PKCS7_RECIP_INFO *)sk_value( \
1531
- CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_RECIP_INFO) *, sk), (i)))
1532
-
1533
- #define sk_PKCS7_RECIP_INFO_set(sk, i, p) \
1534
- ((PKCS7_RECIP_INFO *)sk_set( \
1535
- CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), (i), \
1536
- CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p)))
1537
-
1538
- #define sk_PKCS7_RECIP_INFO_free(sk) \
1539
- sk_free(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk))
1540
-
1541
- #define sk_PKCS7_RECIP_INFO_pop_free(sk, free_func) \
1542
- sk_pop_free( \
1543
- CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
1544
- CHECKED_CAST(void (*)(void *), void (*)(PKCS7_RECIP_INFO *), free_func))
1545
-
1546
- #define sk_PKCS7_RECIP_INFO_insert(sk, p, where) \
1547
- sk_insert(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
1548
- CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p), (where))
1549
-
1550
- #define sk_PKCS7_RECIP_INFO_delete(sk, where) \
1551
- ((PKCS7_RECIP_INFO *)sk_delete( \
1552
- CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), (where)))
1553
-
1554
- #define sk_PKCS7_RECIP_INFO_delete_ptr(sk, p) \
1555
- ((PKCS7_RECIP_INFO *)sk_delete_ptr( \
1556
- CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
1557
- CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p)))
1558
-
1559
- #define sk_PKCS7_RECIP_INFO_find(sk, out_index, p) \
1560
- sk_find(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
1561
- (out_index), CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p))
1562
-
1563
- #define sk_PKCS7_RECIP_INFO_shift(sk) \
1564
- ((PKCS7_RECIP_INFO *)sk_shift( \
1565
- CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk)))
1566
-
1567
- #define sk_PKCS7_RECIP_INFO_push(sk, p) \
1568
- sk_push(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
1569
- CHECKED_CAST(void *, PKCS7_RECIP_INFO *, p))
1570
-
1571
- #define sk_PKCS7_RECIP_INFO_pop(sk) \
1572
- ((PKCS7_RECIP_INFO *)sk_pop( \
1573
- CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk)))
1574
-
1575
- #define sk_PKCS7_RECIP_INFO_dup(sk) \
1576
- ((STACK_OF(PKCS7_RECIP_INFO) *)sk_dup( \
1577
- CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_RECIP_INFO) *, sk)))
1578
-
1579
- #define sk_PKCS7_RECIP_INFO_sort(sk) \
1580
- sk_sort(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk))
1581
-
1582
- #define sk_PKCS7_RECIP_INFO_is_sorted(sk) \
1583
- sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_RECIP_INFO) *, sk))
1584
-
1585
- #define sk_PKCS7_RECIP_INFO_set_cmp_func(sk, comp) \
1586
- ((int (*)(const PKCS7_RECIP_INFO **a, const PKCS7_RECIP_INFO **b)) \
1587
- sk_set_cmp_func( \
1588
- CHECKED_CAST(_STACK *, STACK_OF(PKCS7_RECIP_INFO) *, sk), \
1589
- CHECKED_CAST(stack_cmp_func, int (*)(const PKCS7_RECIP_INFO **a, \
1590
- const PKCS7_RECIP_INFO **b), \
1591
- comp)))
1592
-
1593
- #define sk_PKCS7_RECIP_INFO_deep_copy(sk, copy_func, free_func) \
1594
- ((STACK_OF(PKCS7_RECIP_INFO) *)sk_deep_copy( \
1595
- CHECKED_CAST(const _STACK *, const STACK_OF(PKCS7_RECIP_INFO) *, sk), \
1596
- CHECKED_CAST(void *(*)(void *), \
1597
- PKCS7_RECIP_INFO *(*)(PKCS7_RECIP_INFO *), copy_func), \
1598
- CHECKED_CAST(void (*)(void *), void (*)(PKCS7_RECIP_INFO *), \
1599
- free_func)))
1600
-
1601
- /* PKCS7_SIGNER_INFO */
1602
- #define sk_PKCS7_SIGNER_INFO_new(comp) \
1603
- ((STACK_OF(PKCS7_SIGNER_INFO) *)sk_new(CHECKED_CAST( \
1604
- stack_cmp_func, \
1605
- int (*)(const PKCS7_SIGNER_INFO **a, const PKCS7_SIGNER_INFO **b), \
1606
- comp)))
1607
-
1608
- #define sk_PKCS7_SIGNER_INFO_new_null() \
1609
- ((STACK_OF(PKCS7_SIGNER_INFO) *)sk_new_null())
1610
-
1611
- #define sk_PKCS7_SIGNER_INFO_num(sk) \
1612
- sk_num(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk))
1613
-
1614
- #define sk_PKCS7_SIGNER_INFO_zero(sk) \
1615
- sk_zero(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk));
1616
-
1617
- #define sk_PKCS7_SIGNER_INFO_value(sk, i) \
1618
- ((PKCS7_SIGNER_INFO *)sk_value( \
1619
- CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_SIGNER_INFO) *, sk), (i)))
1620
-
1621
- #define sk_PKCS7_SIGNER_INFO_set(sk, i, p) \
1622
- ((PKCS7_SIGNER_INFO *)sk_set( \
1623
- CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), (i), \
1624
- CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p)))
1625
-
1626
- #define sk_PKCS7_SIGNER_INFO_free(sk) \
1627
- sk_free(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk))
1628
-
1629
- #define sk_PKCS7_SIGNER_INFO_pop_free(sk, free_func) \
1630
- sk_pop_free(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
1631
- CHECKED_CAST(void (*)(void *), void (*)(PKCS7_SIGNER_INFO *), \
1632
- free_func))
1633
-
1634
- #define sk_PKCS7_SIGNER_INFO_insert(sk, p, where) \
1635
- sk_insert(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
1636
- CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p), (where))
1637
-
1638
- #define sk_PKCS7_SIGNER_INFO_delete(sk, where) \
1639
- ((PKCS7_SIGNER_INFO *)sk_delete( \
1640
- CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), (where)))
1641
-
1642
- #define sk_PKCS7_SIGNER_INFO_delete_ptr(sk, p) \
1643
- ((PKCS7_SIGNER_INFO *)sk_delete_ptr( \
1644
- CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
1645
- CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p)))
1646
-
1647
- #define sk_PKCS7_SIGNER_INFO_find(sk, out_index, p) \
1648
- sk_find(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
1649
- (out_index), CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p))
1650
-
1651
- #define sk_PKCS7_SIGNER_INFO_shift(sk) \
1652
- ((PKCS7_SIGNER_INFO *)sk_shift( \
1653
- CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk)))
1654
-
1655
- #define sk_PKCS7_SIGNER_INFO_push(sk, p) \
1656
- sk_push(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
1657
- CHECKED_CAST(void *, PKCS7_SIGNER_INFO *, p))
1658
-
1659
- #define sk_PKCS7_SIGNER_INFO_pop(sk) \
1660
- ((PKCS7_SIGNER_INFO *)sk_pop( \
1661
- CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk)))
1662
-
1663
- #define sk_PKCS7_SIGNER_INFO_dup(sk) \
1664
- ((STACK_OF(PKCS7_SIGNER_INFO) *)sk_dup( \
1665
- CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_SIGNER_INFO) *, sk)))
1666
-
1667
- #define sk_PKCS7_SIGNER_INFO_sort(sk) \
1668
- sk_sort(CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk))
1669
-
1670
- #define sk_PKCS7_SIGNER_INFO_is_sorted(sk) \
1671
- sk_is_sorted(CHECKED_CAST(_STACK *, const STACK_OF(PKCS7_SIGNER_INFO) *, sk))
1672
-
1673
- #define sk_PKCS7_SIGNER_INFO_set_cmp_func(sk, comp) \
1674
- ((int (*)(const PKCS7_SIGNER_INFO **a, const PKCS7_SIGNER_INFO **b)) \
1675
- sk_set_cmp_func( \
1676
- CHECKED_CAST(_STACK *, STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
1677
- CHECKED_CAST(stack_cmp_func, int (*)(const PKCS7_SIGNER_INFO **a, \
1678
- const PKCS7_SIGNER_INFO **b), \
1679
- comp)))
1680
-
1681
- #define sk_PKCS7_SIGNER_INFO_deep_copy(sk, copy_func, free_func) \
1682
- ((STACK_OF(PKCS7_SIGNER_INFO) *)sk_deep_copy( \
1683
- CHECKED_CAST(const _STACK *, const STACK_OF(PKCS7_SIGNER_INFO) *, sk), \
1684
- CHECKED_CAST(void *(*)(void *), \
1685
- PKCS7_SIGNER_INFO *(*)(PKCS7_SIGNER_INFO *), copy_func), \
1686
- CHECKED_CAST(void (*)(void *), void (*)(PKCS7_SIGNER_INFO *), \
1687
- free_func)))
1688
-
1689
1433
  /* POLICYINFO */
1690
1434
  #define sk_POLICYINFO_new(comp) \
1691
1435
  ((STACK_OF(POLICYINFO) *)sk_new(CHECKED_CAST( \
@@ -218,7 +218,7 @@ extern "C" {
218
218
  /* ExtensionType value from RFC7685 */
219
219
  #define TLSEXT_TYPE_padding 21
220
220
 
221
- /* https://tools.ietf.org/html/draft-ietf-tls-session-hash-01 */
221
+ /* ExtensionType value from RFC7627 */
222
222
  #define TLSEXT_TYPE_extended_master_secret 23
223
223
 
224
224
  /* ExtensionType value from RFC4507 */
@@ -618,12 +618,10 @@ OPENSSL_EXPORT int X509_signature_print(BIO *bp,X509_ALGOR *alg, ASN1_STRING *si
618
618
 
619
619
  OPENSSL_EXPORT int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md);
620
620
  OPENSSL_EXPORT int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx);
621
- /* int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert); */
622
621
  OPENSSL_EXPORT int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md);
623
622
  OPENSSL_EXPORT int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx);
624
623
  OPENSSL_EXPORT int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md);
625
624
  OPENSSL_EXPORT int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx);
626
- /* int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl); */
627
625
  OPENSSL_EXPORT int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md);
628
626
 
629
627
  OPENSSL_EXPORT int X509_pubkey_digest(const X509 *data,const EVP_MD *type,
@@ -412,6 +412,11 @@ OPENSSL_EXPORT void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth);
412
412
  /* Allow partial chains if at least one certificate is in trusted store */
413
413
  #define X509_V_FLAG_PARTIAL_CHAIN 0x80000
414
414
 
415
+ /* If the initial chain is not trusted, do not attempt to build an alternative
416
+ * chain. Alternate chain checking was introduced in 1.0.2b. Setting this flag
417
+ * will force the behaviour to match that of previous versions. */
418
+ #define X509_V_FLAG_NO_ALT_CHAINS 0x100000
419
+
415
420
  #define X509_VP_FLAG_DEFAULT 0x1
416
421
  #define X509_VP_FLAG_OVERWRITE 0x2
417
422
  #define X509_VP_FLAG_RESET_FLAGS 0x4
@@ -301,8 +301,9 @@ static int dtls1_write_change_cipher_spec(SSL *ssl,
301
301
  }
302
302
 
303
303
  static const uint8_t kChangeCipherSpec[1] = {SSL3_MT_CCS};
304
- int ret = dtls1_write_bytes(ssl, SSL3_RT_CHANGE_CIPHER_SPEC, kChangeCipherSpec,
305
- sizeof(kChangeCipherSpec), use_epoch);
304
+ int ret =
305
+ dtls1_write_bytes(ssl, SSL3_RT_CHANGE_CIPHER_SPEC, kChangeCipherSpec,
306
+ sizeof(kChangeCipherSpec), use_epoch);
306
307
  if (ret <= 0) {
307
308
  return ret;
308
309
  }
@@ -410,17 +411,17 @@ err:
410
411
 
411
412
  /* dtls1_is_next_message_complete returns one if the next handshake message is
412
413
  * complete and zero otherwise. */
413
- static int dtls1_is_next_message_complete(SSL *s) {
414
- pitem *item = pqueue_peek(s->d1->buffered_messages);
414
+ static int dtls1_is_next_message_complete(SSL *ssl) {
415
+ pitem *item = pqueue_peek(ssl->d1->buffered_messages);
415
416
  if (item == NULL) {
416
417
  return 0;
417
418
  }
418
419
 
419
420
  hm_fragment *frag = (hm_fragment *)item->data;
420
- assert(s->d1->handshake_read_seq <= frag->msg_header.seq);
421
+ assert(ssl->d1->handshake_read_seq <= frag->msg_header.seq);
421
422
 
422
- return s->d1->handshake_read_seq == frag->msg_header.seq &&
423
- frag->reassembly == NULL;
423
+ return ssl->d1->handshake_read_seq == frag->msg_header.seq &&
424
+ frag->reassembly == NULL;
424
425
  }
425
426
 
426
427
  /* dtls1_discard_fragment_body discards a handshake fragment body of length
@@ -428,11 +429,11 @@ static int dtls1_is_next_message_complete(SSL *s) {
428
429
  *
429
430
  * TODO(davidben): This function will go away when ssl_read_bytes is gone from
430
431
  * the DTLS side. */
431
- static int dtls1_discard_fragment_body(SSL *s, size_t frag_len) {
432
+ static int dtls1_discard_fragment_body(SSL *ssl, size_t frag_len) {
432
433
  uint8_t discard[256];
433
434
  while (frag_len > 0) {
434
435
  size_t chunk = frag_len < sizeof(discard) ? frag_len : sizeof(discard);
435
- int ret = dtls1_read_bytes(s, SSL3_RT_HANDSHAKE, discard, chunk, 0);
436
+ int ret = dtls1_read_bytes(ssl, SSL3_RT_HANDSHAKE, discard, chunk, 0);
436
437
  if (ret != (int) chunk) {
437
438
  return 0;
438
439
  }
@@ -446,12 +447,12 @@ static int dtls1_discard_fragment_body(SSL *s, size_t frag_len) {
446
447
  * queue. Otherwise, it checks |msg_hdr| is consistent with the existing one. It
447
448
  * returns NULL on failure. The caller does not take ownership of the result. */
448
449
  static hm_fragment *dtls1_get_buffered_message(
449
- SSL *s, const struct hm_header_st *msg_hdr) {
450
+ SSL *ssl, const struct hm_header_st *msg_hdr) {
450
451
  uint8_t seq64be[8];
451
452
  memset(seq64be, 0, sizeof(seq64be));
452
453
  seq64be[6] = (uint8_t)(msg_hdr->seq >> 8);
453
454
  seq64be[7] = (uint8_t)msg_hdr->seq;
454
- pitem *item = pqueue_find(s->d1->buffered_messages, seq64be);
455
+ pitem *item = pqueue_find(ssl->d1->buffered_messages, seq64be);
455
456
 
456
457
  hm_fragment *frag;
457
458
  if (item == NULL) {
@@ -467,7 +468,7 @@ static hm_fragment *dtls1_get_buffered_message(
467
468
  dtls1_hm_fragment_free(frag);
468
469
  return NULL;
469
470
  }
470
- item = pqueue_insert(s->d1->buffered_messages, item);
471
+ item = pqueue_insert(ssl->d1->buffered_messages, item);
471
472
  /* |pqueue_insert| fails iff a duplicate item is inserted, but |item| cannot
472
473
  * be a duplicate. */
473
474
  assert(item != NULL);
@@ -479,7 +480,7 @@ static hm_fragment *dtls1_get_buffered_message(
479
480
  /* The new fragment must be compatible with the previous fragments from
480
481
  * this message. */
481
482
  OPENSSL_PUT_ERROR(SSL, SSL_R_FRAGMENT_MISMATCH);
482
- ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
483
+ ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
483
484
  return NULL;
484
485
  }
485
486
  }
@@ -487,29 +488,29 @@ static hm_fragment *dtls1_get_buffered_message(
487
488
  }
488
489
 
489
490
  /* dtls1_max_handshake_message_len returns the maximum number of bytes
490
- * permitted in a DTLS handshake message for |s|. The minimum is 16KB, but may
491
+ * permitted in a DTLS handshake message for |ssl|. The minimum is 16KB, but may
491
492
  * be greater if the maximum certificate list size requires it. */
492
- static size_t dtls1_max_handshake_message_len(const SSL *s) {
493
+ static size_t dtls1_max_handshake_message_len(const SSL *ssl) {
493
494
  size_t max_len = DTLS1_HM_HEADER_LENGTH + SSL3_RT_MAX_ENCRYPTED_LENGTH;
494
- if (max_len < s->max_cert_list) {
495
- return s->max_cert_list;
495
+ if (max_len < ssl->max_cert_list) {
496
+ return ssl->max_cert_list;
496
497
  }
497
498
  return max_len;
498
499
  }
499
500
 
500
501
  /* dtls1_process_fragment reads a handshake fragment and processes it. It
501
502
  * returns one if a fragment was successfully processed and 0 or -1 on error. */
502
- static int dtls1_process_fragment(SSL *s) {
503
+ static int dtls1_process_fragment(SSL *ssl) {
503
504
  /* Read handshake message header. */
504
505
  uint8_t header[DTLS1_HM_HEADER_LENGTH];
505
- int ret = dtls1_read_bytes(s, SSL3_RT_HANDSHAKE, header,
506
+ int ret = dtls1_read_bytes(ssl, SSL3_RT_HANDSHAKE, header,
506
507
  DTLS1_HM_HEADER_LENGTH, 0);
507
508
  if (ret <= 0) {
508
509
  return ret;
509
510
  }
510
511
  if (ret != DTLS1_HM_HEADER_LENGTH) {
511
512
  OPENSSL_PUT_ERROR(SSL, SSL_R_UNEXPECTED_MESSAGE);
512
- ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_UNEXPECTED_MESSAGE);
513
+ ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_UNEXPECTED_MESSAGE);
513
514
  return -1;
514
515
  }
515
516
 
@@ -518,30 +519,30 @@ static int dtls1_process_fragment(SSL *s) {
518
519
  dtls1_get_message_header(header, &msg_hdr);
519
520
 
520
521
  /* TODO(davidben): dtls1_read_bytes is the wrong abstraction for DTLS. There
521
- * should be no need to reach into |s->s3->rrec.length|. */
522
+ * should be no need to reach into |ssl->s3->rrec.length|. */
522
523
  const size_t frag_off = msg_hdr.frag_off;
523
524
  const size_t frag_len = msg_hdr.frag_len;
524
525
  const size_t msg_len = msg_hdr.msg_len;
525
526
  if (frag_off > msg_len || frag_off + frag_len < frag_off ||
526
527
  frag_off + frag_len > msg_len ||
527
- msg_len > dtls1_max_handshake_message_len(s) ||
528
- frag_len > s->s3->rrec.length) {
528
+ msg_len > dtls1_max_handshake_message_len(ssl) ||
529
+ frag_len > ssl->s3->rrec.length) {
529
530
  OPENSSL_PUT_ERROR(SSL, SSL_R_EXCESSIVE_MESSAGE_SIZE);
530
- ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
531
+ ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_ILLEGAL_PARAMETER);
531
532
  return -1;
532
533
  }
533
534
 
534
- if (msg_hdr.seq < s->d1->handshake_read_seq ||
535
- msg_hdr.seq > (unsigned)s->d1->handshake_read_seq +
535
+ if (msg_hdr.seq < ssl->d1->handshake_read_seq ||
536
+ msg_hdr.seq > (unsigned)ssl->d1->handshake_read_seq +
536
537
  kHandshakeBufferSize) {
537
538
  /* Ignore fragments from the past, or ones too far in the future. */
538
- if (!dtls1_discard_fragment_body(s, frag_len)) {
539
+ if (!dtls1_discard_fragment_body(ssl, frag_len)) {
539
540
  return -1;
540
541
  }
541
542
  return 1;
542
543
  }
543
544
 
544
- hm_fragment *frag = dtls1_get_buffered_message(s, &msg_hdr);
545
+ hm_fragment *frag = dtls1_get_buffered_message(ssl, &msg_hdr);
545
546
  if (frag == NULL) {
546
547
  return -1;
547
548
  }
@@ -549,7 +550,7 @@ static int dtls1_process_fragment(SSL *s) {
549
550
 
550
551
  if (frag->reassembly == NULL) {
551
552
  /* The message is already assembled. */
552
- if (!dtls1_discard_fragment_body(s, frag_len)) {
553
+ if (!dtls1_discard_fragment_body(ssl, frag_len)) {
553
554
  return -1;
554
555
  }
555
556
  return 1;
@@ -557,11 +558,11 @@ static int dtls1_process_fragment(SSL *s) {
557
558
  assert(msg_len > 0);
558
559
 
559
560
  /* Read the body of the fragment. */
560
- ret = dtls1_read_bytes(s, SSL3_RT_HANDSHAKE, frag->fragment + frag_off,
561
+ ret = dtls1_read_bytes(ssl, SSL3_RT_HANDSHAKE, frag->fragment + frag_off,
561
562
  frag_len, 0);
562
563
  if (ret != (int) frag_len) {
563
564
  OPENSSL_PUT_ERROR(SSL, ERR_R_INTERNAL_ERROR);
564
- ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_INTERNAL_ERROR);
565
+ ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_INTERNAL_ERROR);
565
566
  return -1;
566
567
  }
567
568
  dtls1_hm_fragment_mark(frag, frag_off, frag_off + frag_len);
@@ -572,7 +573,7 @@ static int dtls1_process_fragment(SSL *s) {
572
573
  /* dtls1_get_message reads a handshake message of message type |msg_type| (any
573
574
  * if |msg_type| == -1), maximum acceptable body length |max|. Read an entire
574
575
  * handshake message. Handshake messages arrive in fragments. */
575
- long dtls1_get_message(SSL *s, int st1, int stn, int msg_type, long max,
576
+ long dtls1_get_message(SSL *ssl, int st1, int stn, int msg_type, long max,
576
577
  enum ssl_hash_message_t hash_message, int *ok) {
577
578
  pitem *item = NULL;
578
579
  hm_fragment *frag = NULL;
@@ -580,26 +581,26 @@ long dtls1_get_message(SSL *s, int st1, int stn, int msg_type, long max,
580
581
 
581
582
  /* s3->tmp is used to store messages that are unexpected, caused
582
583
  * by the absence of an optional handshake message */
583
- if (s->s3->tmp.reuse_message) {
584
+ if (ssl->s3->tmp.reuse_message) {
584
585
  /* A ssl_dont_hash_message call cannot be combined with reuse_message; the
585
586
  * ssl_dont_hash_message would have to have been applied to the previous
586
587
  * call. */
587
588
  assert(hash_message == ssl_hash_message);
588
- s->s3->tmp.reuse_message = 0;
589
- if (msg_type >= 0 && s->s3->tmp.message_type != msg_type) {
589
+ ssl->s3->tmp.reuse_message = 0;
590
+ if (msg_type >= 0 && ssl->s3->tmp.message_type != msg_type) {
590
591
  al = SSL_AD_UNEXPECTED_MESSAGE;
591
592
  OPENSSL_PUT_ERROR(SSL, SSL_R_UNEXPECTED_MESSAGE);
592
593
  goto f_err;
593
594
  }
594
595
  *ok = 1;
595
- s->init_msg = (uint8_t *)s->init_buf->data + DTLS1_HM_HEADER_LENGTH;
596
- s->init_num = (int)s->s3->tmp.message_size;
597
- return s->init_num;
596
+ ssl->init_msg = (uint8_t *)ssl->init_buf->data + DTLS1_HM_HEADER_LENGTH;
597
+ ssl->init_num = (int)ssl->s3->tmp.message_size;
598
+ return ssl->init_num;
598
599
  }
599
600
 
600
601
  /* Process fragments until one is found. */
601
- while (!dtls1_is_next_message_complete(s)) {
602
- int ret = dtls1_process_fragment(s);
602
+ while (!dtls1_is_next_message_complete(ssl)) {
603
+ int ret = dtls1_process_fragment(ssl);
603
604
  if (ret <= 0) {
604
605
  *ok = 0;
605
606
  return ret;
@@ -607,10 +608,10 @@ long dtls1_get_message(SSL *s, int st1, int stn, int msg_type, long max,
607
608
  }
608
609
 
609
610
  /* Read out the next complete handshake message. */
610
- item = pqueue_pop(s->d1->buffered_messages);
611
+ item = pqueue_pop(ssl->d1->buffered_messages);
611
612
  assert(item != NULL);
612
613
  frag = (hm_fragment *)item->data;
613
- assert(s->d1->handshake_read_seq == frag->msg_header.seq);
614
+ assert(ssl->d1->handshake_read_seq == frag->msg_header.seq);
614
615
  assert(frag->reassembly == NULL);
615
616
 
616
617
  if (frag->msg_header.msg_len > (size_t)max) {
@@ -622,10 +623,10 @@ long dtls1_get_message(SSL *s, int st1, int stn, int msg_type, long max,
622
623
  size_t len;
623
624
  CBB cbb;
624
625
  CBB_zero(&cbb);
625
- if (!BUF_MEM_grow(s->init_buf,
626
- (size_t)frag->msg_header.msg_len +
627
- DTLS1_HM_HEADER_LENGTH) ||
628
- !CBB_init_fixed(&cbb, (uint8_t *)s->init_buf->data, s->init_buf->max) ||
626
+ if (!BUF_MEM_grow(ssl->init_buf, (size_t)frag->msg_header.msg_len +
627
+ DTLS1_HM_HEADER_LENGTH) ||
628
+ !CBB_init_fixed(&cbb, (uint8_t *)ssl->init_buf->data,
629
+ ssl->init_buf->max) ||
629
630
  !CBB_add_u8(&cbb, frag->msg_header.type) ||
630
631
  !CBB_add_u24(&cbb, frag->msg_header.msg_len) ||
631
632
  !CBB_add_u16(&cbb, frag->msg_header.seq) ||
@@ -639,38 +640,38 @@ long dtls1_get_message(SSL *s, int st1, int stn, int msg_type, long max,
639
640
  }
640
641
  assert(len == (size_t)frag->msg_header.msg_len + DTLS1_HM_HEADER_LENGTH);
641
642
 
642
- s->d1->handshake_read_seq++;
643
+ ssl->d1->handshake_read_seq++;
643
644
 
644
645
  /* TODO(davidben): This function has a lot of implicit outputs. Simplify the
645
646
  * |ssl_get_message| API. */
646
- s->s3->tmp.message_type = frag->msg_header.type;
647
- s->s3->tmp.message_size = frag->msg_header.msg_len;
648
- s->init_msg = (uint8_t *)s->init_buf->data + DTLS1_HM_HEADER_LENGTH;
649
- s->init_num = frag->msg_header.msg_len;
647
+ ssl->s3->tmp.message_type = frag->msg_header.type;
648
+ ssl->s3->tmp.message_size = frag->msg_header.msg_len;
649
+ ssl->init_msg = (uint8_t *)ssl->init_buf->data + DTLS1_HM_HEADER_LENGTH;
650
+ ssl->init_num = frag->msg_header.msg_len;
650
651
 
651
- if (msg_type >= 0 && s->s3->tmp.message_type != msg_type) {
652
+ if (msg_type >= 0 && ssl->s3->tmp.message_type != msg_type) {
652
653
  al = SSL_AD_UNEXPECTED_MESSAGE;
653
654
  OPENSSL_PUT_ERROR(SSL, SSL_R_UNEXPECTED_MESSAGE);
654
655
  goto f_err;
655
656
  }
656
- if (hash_message == ssl_hash_message && !ssl3_hash_current_message(s)) {
657
+ if (hash_message == ssl_hash_message && !ssl3_hash_current_message(ssl)) {
657
658
  goto err;
658
659
  }
659
- if (s->msg_callback) {
660
- s->msg_callback(0, s->version, SSL3_RT_HANDSHAKE, s->init_buf->data,
661
- s->init_num + DTLS1_HM_HEADER_LENGTH, s,
662
- s->msg_callback_arg);
660
+ if (ssl->msg_callback) {
661
+ ssl->msg_callback(0, ssl->version, SSL3_RT_HANDSHAKE, ssl->init_buf->data,
662
+ ssl->init_num + DTLS1_HM_HEADER_LENGTH, ssl,
663
+ ssl->msg_callback_arg);
663
664
  }
664
665
 
665
666
  pitem_free(item);
666
667
  dtls1_hm_fragment_free(frag);
667
668
 
668
- s->state = stn;
669
+ ssl->state = stn;
669
670
  *ok = 1;
670
- return s->init_num;
671
+ return ssl->init_num;
671
672
 
672
673
  f_err:
673
- ssl3_send_alert(s, SSL3_AL_FATAL, al);
674
+ ssl3_send_alert(ssl, SSL3_AL_FATAL, al);
674
675
  err:
675
676
  pitem_free(item);
676
677
  dtls1_hm_fragment_free(frag);
@@ -678,25 +679,25 @@ err:
678
679
  return -1;
679
680
  }
680
681
 
681
- int dtls1_read_failed(SSL *s, int code) {
682
+ int dtls1_read_failed(SSL *ssl, int code) {
682
683
  if (code > 0) {
683
684
  assert(0);
684
685
  return 1;
685
686
  }
686
687
 
687
- if (!dtls1_is_timer_expired(s)) {
688
+ if (!dtls1_is_timer_expired(ssl)) {
688
689
  /* not a timeout, none of our business, let higher layers handle this. In
689
690
  * fact, it's probably an error */
690
691
  return code;
691
692
  }
692
693
 
693
- if (!SSL_in_init(s)) {
694
+ if (!SSL_in_init(ssl)) {
694
695
  /* done, no need to send a retransmit */
695
- BIO_set_flags(SSL_get_rbio(s), BIO_FLAGS_READ);
696
+ BIO_set_flags(SSL_get_rbio(ssl), BIO_FLAGS_READ);
696
697
  return code;
697
698
  }
698
699
 
699
- return DTLSv1_handle_timeout(s);
700
+ return DTLSv1_handle_timeout(ssl);
700
701
  }
701
702
 
702
703
  static uint16_t dtls1_get_queue_priority(uint16_t seq, int is_ccs) {
@@ -713,47 +714,47 @@ static uint16_t dtls1_get_queue_priority(uint16_t seq, int is_ccs) {
713
714
  return seq * 2 - is_ccs;
714
715
  }
715
716
 
716
- static int dtls1_retransmit_message(SSL *s, hm_fragment *frag) {
717
+ static int dtls1_retransmit_message(SSL *ssl, hm_fragment *frag) {
717
718
  /* DTLS renegotiation is unsupported, so only epochs 0 (NULL cipher) and 1
718
719
  * (negotiated cipher) exist. */
719
- assert(s->d1->w_epoch == 0 || s->d1->w_epoch == 1);
720
- assert(frag->msg_header.epoch <= s->d1->w_epoch);
720
+ assert(ssl->d1->w_epoch == 0 || ssl->d1->w_epoch == 1);
721
+ assert(frag->msg_header.epoch <= ssl->d1->w_epoch);
721
722
  enum dtls1_use_epoch_t use_epoch = dtls1_use_current_epoch;
722
- if (s->d1->w_epoch == 1 && frag->msg_header.epoch == 0) {
723
+ if (ssl->d1->w_epoch == 1 && frag->msg_header.epoch == 0) {
723
724
  use_epoch = dtls1_use_previous_epoch;
724
725
  }
725
726
 
726
727
  /* TODO(davidben): This cannot handle non-blocking writes. */
727
728
  int ret;
728
729
  if (frag->msg_header.is_ccs) {
729
- ret = dtls1_write_change_cipher_spec(s, use_epoch);
730
+ ret = dtls1_write_change_cipher_spec(ssl, use_epoch);
730
731
  } else {
731
732
  /* Restore the message body.
732
733
  * TODO(davidben): Make this less stateful. */
733
- memcpy(s->init_buf->data, frag->fragment,
734
+ memcpy(ssl->init_buf->data, frag->fragment,
734
735
  frag->msg_header.msg_len + DTLS1_HM_HEADER_LENGTH);
735
- s->init_num = frag->msg_header.msg_len + DTLS1_HM_HEADER_LENGTH;
736
+ ssl->init_num = frag->msg_header.msg_len + DTLS1_HM_HEADER_LENGTH;
736
737
 
737
- dtls1_set_message_header(s, frag->msg_header.type,
738
+ dtls1_set_message_header(ssl, frag->msg_header.type,
738
739
  frag->msg_header.msg_len, frag->msg_header.seq,
739
740
  0, frag->msg_header.frag_len);
740
- ret = dtls1_do_handshake_write(s, use_epoch);
741
+ ret = dtls1_do_handshake_write(ssl, use_epoch);
741
742
  }
742
743
 
743
744
  /* TODO(davidben): Check return value? */
744
- (void)BIO_flush(SSL_get_wbio(s));
745
+ (void)BIO_flush(SSL_get_wbio(ssl));
745
746
  return ret;
746
747
  }
747
748
 
748
749
 
749
- int dtls1_retransmit_buffered_messages(SSL *s) {
750
- pqueue sent = s->d1->sent_messages;
750
+ int dtls1_retransmit_buffered_messages(SSL *ssl) {
751
+ pqueue sent = ssl->d1->sent_messages;
751
752
  piterator iter = pqueue_iterator(sent);
752
753
  pitem *item;
753
754
 
754
755
  for (item = pqueue_next(&iter); item != NULL; item = pqueue_next(&iter)) {
755
756
  hm_fragment *frag = (hm_fragment *)item->data;
756
- if (dtls1_retransmit_message(s, frag) <= 0) {
757
+ if (dtls1_retransmit_message(ssl, frag) <= 0) {
757
758
  return -1;
758
759
  }
759
760
  }
@@ -789,28 +790,28 @@ static int dtls1_buffer_change_cipher_spec(SSL *ssl, uint16_t seq) {
789
790
  return 1;
790
791
  }
791
792
 
792
- int dtls1_buffer_message(SSL *s) {
793
+ int dtls1_buffer_message(SSL *ssl) {
793
794
  /* this function is called immediately after a message has
794
795
  * been serialized */
795
- assert(s->init_off == 0);
796
+ assert(ssl->init_off == 0);
796
797
 
797
- hm_fragment *frag = dtls1_hm_fragment_new(s->init_num, 0);
798
+ hm_fragment *frag = dtls1_hm_fragment_new(ssl->init_num, 0);
798
799
  if (!frag) {
799
800
  return 0;
800
801
  }
801
802
 
802
- memcpy(frag->fragment, s->init_buf->data, s->init_num);
803
+ memcpy(frag->fragment, ssl->init_buf->data, ssl->init_num);
803
804
 
804
- assert(s->d1->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH ==
805
- (unsigned int)s->init_num);
805
+ assert(ssl->d1->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH ==
806
+ (unsigned int)ssl->init_num);
806
807
 
807
- frag->msg_header.msg_len = s->d1->w_msg_hdr.msg_len;
808
- frag->msg_header.seq = s->d1->w_msg_hdr.seq;
809
- frag->msg_header.type = s->d1->w_msg_hdr.type;
808
+ frag->msg_header.msg_len = ssl->d1->w_msg_hdr.msg_len;
809
+ frag->msg_header.seq = ssl->d1->w_msg_hdr.seq;
810
+ frag->msg_header.type = ssl->d1->w_msg_hdr.type;
810
811
  frag->msg_header.frag_off = 0;
811
- frag->msg_header.frag_len = s->d1->w_msg_hdr.msg_len;
812
+ frag->msg_header.frag_len = ssl->d1->w_msg_hdr.msg_len;
812
813
  frag->msg_header.is_ccs = 0;
813
- frag->msg_header.epoch = s->d1->w_epoch;
814
+ frag->msg_header.epoch = ssl->d1->w_epoch;
814
815
 
815
816
  uint16_t priority = dtls1_get_queue_priority(frag->msg_header.seq,
816
817
  0 /* handshake */);
@@ -825,37 +826,37 @@ int dtls1_buffer_message(SSL *s) {
825
826
  return 0;
826
827
  }
827
828
 
828
- pqueue_insert(s->d1->sent_messages, item);
829
+ pqueue_insert(ssl->d1->sent_messages, item);
829
830
  return 1;
830
831
  }
831
832
 
832
- int dtls1_send_change_cipher_spec(SSL *s, int a, int b) {
833
- if (s->state == a) {
833
+ int dtls1_send_change_cipher_spec(SSL *ssl, int a, int b) {
834
+ if (ssl->state == a) {
834
835
  /* Buffer the message to handle retransmits. */
835
- s->d1->handshake_write_seq = s->d1->next_handshake_write_seq;
836
- dtls1_buffer_change_cipher_spec(s, s->d1->handshake_write_seq);
837
- s->state = b;
836
+ ssl->d1->handshake_write_seq = ssl->d1->next_handshake_write_seq;
837
+ dtls1_buffer_change_cipher_spec(ssl, ssl->d1->handshake_write_seq);
838
+ ssl->state = b;
838
839
  }
839
840
 
840
- return dtls1_write_change_cipher_spec(s, dtls1_use_current_epoch);
841
+ return dtls1_write_change_cipher_spec(ssl, dtls1_use_current_epoch);
841
842
  }
842
843
 
843
844
  /* call this function when the buffered messages are no longer needed */
844
- void dtls1_clear_record_buffer(SSL *s) {
845
+ void dtls1_clear_record_buffer(SSL *ssl) {
845
846
  pitem *item;
846
847
 
847
- for (item = pqueue_pop(s->d1->sent_messages); item != NULL;
848
- item = pqueue_pop(s->d1->sent_messages)) {
848
+ for (item = pqueue_pop(ssl->d1->sent_messages); item != NULL;
849
+ item = pqueue_pop(ssl->d1->sent_messages)) {
849
850
  dtls1_hm_fragment_free((hm_fragment *)item->data);
850
851
  pitem_free(item);
851
852
  }
852
853
  }
853
854
 
854
855
  /* don't actually do the writing, wait till the MTU has been retrieved */
855
- void dtls1_set_message_header(SSL *s, uint8_t mt, unsigned long len,
856
+ void dtls1_set_message_header(SSL *ssl, uint8_t mt, unsigned long len,
856
857
  unsigned short seq_num, unsigned long frag_off,
857
858
  unsigned long frag_len) {
858
- struct hm_header_st *msg_hdr = &s->d1->w_msg_hdr;
859
+ struct hm_header_st *msg_hdr = &ssl->d1->w_msg_hdr;
859
860
 
860
861
  msg_hdr->type = mt;
861
862
  msg_hdr->msg_len = len;