grpc 1.4.5 → 1.6.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 (928) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +1235 -1100
  3. data/etc/roots.pem +0 -412
  4. data/include/grpc/byte_buffer.h +10 -25
  5. data/include/grpc/byte_buffer_reader.h +10 -25
  6. data/include/grpc/census.h +10 -25
  7. data/include/grpc/compression.h +10 -25
  8. data/include/grpc/grpc.h +15 -26
  9. data/include/grpc/grpc_cronet.h +10 -25
  10. data/include/grpc/grpc_posix.h +10 -25
  11. data/include/grpc/grpc_security.h +10 -25
  12. data/include/grpc/grpc_security_constants.h +10 -25
  13. data/include/grpc/impl/codegen/atm.h +11 -25
  14. data/include/grpc/impl/codegen/atm_gcc_atomic.h +10 -25
  15. data/include/grpc/impl/codegen/atm_gcc_sync.h +10 -25
  16. data/include/grpc/impl/codegen/atm_windows.h +10 -25
  17. data/include/grpc/impl/codegen/byte_buffer_reader.h +11 -26
  18. data/include/grpc/impl/codegen/compression_types.h +12 -27
  19. data/include/grpc/impl/codegen/connectivity_state.h +10 -25
  20. data/include/grpc/impl/codegen/exec_ctx_fwd.h +10 -25
  21. data/include/grpc/impl/codegen/gpr_slice.h +10 -25
  22. data/include/grpc/impl/codegen/gpr_types.h +10 -25
  23. data/include/grpc/impl/codegen/grpc_types.h +42 -43
  24. data/include/grpc/impl/codegen/port_platform.h +10 -25
  25. data/include/grpc/impl/codegen/propagation_bits.h +10 -25
  26. data/include/grpc/impl/codegen/slice.h +13 -28
  27. data/include/grpc/impl/codegen/status.h +10 -25
  28. data/include/grpc/impl/codegen/sync.h +10 -25
  29. data/include/grpc/impl/codegen/sync_generic.h +10 -25
  30. data/include/grpc/impl/codegen/sync_posix.h +10 -25
  31. data/include/grpc/impl/codegen/sync_windows.h +10 -25
  32. data/include/grpc/load_reporting.h +10 -25
  33. data/include/grpc/slice.h +10 -25
  34. data/include/grpc/slice_buffer.h +10 -25
  35. data/include/grpc/status.h +10 -25
  36. data/include/grpc/support/alloc.h +10 -25
  37. data/include/grpc/support/atm.h +10 -25
  38. data/include/grpc/support/atm_gcc_atomic.h +10 -25
  39. data/include/grpc/support/atm_gcc_sync.h +10 -25
  40. data/include/grpc/support/atm_windows.h +10 -25
  41. data/include/grpc/support/avl.h +46 -49
  42. data/include/grpc/support/cmdline.h +10 -25
  43. data/include/grpc/support/cpu.h +10 -25
  44. data/include/grpc/support/histogram.h +10 -25
  45. data/include/grpc/support/host_port.h +10 -25
  46. data/include/grpc/support/log.h +10 -25
  47. data/include/grpc/support/log_windows.h +10 -25
  48. data/include/grpc/support/port_platform.h +10 -25
  49. data/include/grpc/support/string_util.h +10 -25
  50. data/include/grpc/support/subprocess.h +10 -25
  51. data/include/grpc/support/sync.h +10 -25
  52. data/include/grpc/support/sync_generic.h +10 -25
  53. data/include/grpc/support/sync_posix.h +10 -25
  54. data/include/grpc/support/sync_windows.h +10 -25
  55. data/include/grpc/support/thd.h +10 -25
  56. data/include/grpc/support/time.h +10 -25
  57. data/include/grpc/support/tls.h +10 -25
  58. data/include/grpc/support/tls_gcc.h +10 -25
  59. data/include/grpc/support/tls_msvc.h +10 -25
  60. data/include/grpc/support/tls_pthread.h +10 -25
  61. data/include/grpc/support/useful.h +10 -25
  62. data/include/grpc/support/workaround_list.h +11 -26
  63. data/src/boringssl/err_data.c +277 -259
  64. data/src/core/ext/census/aggregation.h +10 -25
  65. data/src/core/ext/census/base_resources.c +10 -25
  66. data/src/core/ext/census/base_resources.h +10 -25
  67. data/src/core/ext/census/census_interface.h +10 -25
  68. data/src/core/ext/census/census_rpc_stats.h +10 -25
  69. data/src/core/ext/census/context.c +10 -25
  70. data/src/core/ext/census/gen/census.pb.c +10 -25
  71. data/src/core/ext/census/gen/census.pb.h +10 -25
  72. data/src/core/ext/census/gen/trace_context.pb.c +10 -25
  73. data/src/core/ext/census/gen/trace_context.pb.h +10 -25
  74. data/src/core/ext/census/grpc_context.c +10 -25
  75. data/src/core/ext/census/grpc_filter.c +11 -26
  76. data/src/core/ext/census/grpc_filter.h +10 -25
  77. data/src/core/ext/census/grpc_plugin.c +10 -25
  78. data/src/core/ext/census/initialize.c +10 -25
  79. data/src/core/ext/census/intrusive_hash_map.c +10 -25
  80. data/src/core/ext/census/intrusive_hash_map.h +10 -25
  81. data/src/core/ext/census/intrusive_hash_map_internal.h +10 -25
  82. data/src/core/ext/census/mlog.c +10 -25
  83. data/src/core/ext/census/mlog.h +10 -25
  84. data/src/core/ext/census/operation.c +10 -25
  85. data/src/core/ext/census/placeholders.c +10 -25
  86. data/src/core/ext/census/resource.c +10 -25
  87. data/src/core/ext/census/resource.h +10 -25
  88. data/src/core/ext/census/rpc_metric_id.h +10 -25
  89. data/src/core/ext/census/trace_context.c +10 -25
  90. data/src/core/ext/census/trace_context.h +10 -25
  91. data/src/core/ext/census/trace_label.h +10 -25
  92. data/src/core/ext/census/trace_propagation.h +10 -25
  93. data/src/core/ext/census/trace_status.h +10 -25
  94. data/src/core/ext/census/trace_string.h +10 -25
  95. data/src/core/ext/census/tracing.c +10 -26
  96. data/src/core/ext/census/tracing.h +10 -25
  97. data/src/core/ext/filters/client_channel/channel_connectivity.c +20 -33
  98. data/src/core/ext/filters/client_channel/client_channel.c +617 -520
  99. data/src/core/ext/filters/client_channel/client_channel.h +15 -28
  100. data/src/core/ext/filters/client_channel/client_channel_factory.c +13 -31
  101. data/src/core/ext/filters/client_channel/client_channel_factory.h +10 -25
  102. data/src/core/ext/filters/client_channel/client_channel_plugin.c +16 -29
  103. data/src/core/ext/filters/client_channel/connector.c +10 -25
  104. data/src/core/ext/filters/client_channel/connector.h +10 -25
  105. data/src/core/ext/filters/client_channel/http_connect_handshaker.c +15 -30
  106. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +10 -25
  107. data/src/core/ext/filters/client_channel/http_proxy.c +112 -38
  108. data/src/core/ext/filters/client_channel/http_proxy.h +10 -25
  109. data/src/core/ext/filters/client_channel/lb_policy.c +32 -36
  110. data/src/core/ext/filters/client_channel/lb_policy.h +24 -27
  111. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.c +14 -30
  112. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +10 -25
  113. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.c +464 -279
  114. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +10 -25
  115. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +15 -28
  116. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.c +40 -48
  117. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.c +65 -49
  118. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +31 -31
  119. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.c +47 -32
  120. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +11 -26
  121. data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +13 -9
  122. data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +27 -21
  123. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +373 -136
  124. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +504 -279
  125. data/src/core/ext/filters/client_channel/lb_policy_factory.c +12 -31
  126. data/src/core/ext/filters/client_channel/lb_policy_factory.h +12 -27
  127. data/src/core/ext/filters/client_channel/lb_policy_registry.c +10 -25
  128. data/src/core/ext/filters/client_channel/lb_policy_registry.h +10 -25
  129. data/src/core/ext/filters/client_channel/parse_address.c +10 -25
  130. data/src/core/ext/filters/client_channel/parse_address.h +10 -25
  131. data/src/core/ext/filters/client_channel/proxy_mapper.c +10 -25
  132. data/src/core/ext/filters/client_channel/proxy_mapper.h +10 -25
  133. data/src/core/ext/filters/client_channel/proxy_mapper_registry.c +10 -25
  134. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +10 -25
  135. data/src/core/ext/filters/client_channel/resolver.c +33 -38
  136. data/src/core/ext/filters/client_channel/resolver.h +19 -30
  137. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.c +153 -50
  138. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +14 -27
  139. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.c +33 -30
  140. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.c +326 -116
  141. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +35 -36
  142. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c +60 -0
  143. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.c +19 -34
  144. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.c +254 -0
  145. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +60 -0
  146. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.c +16 -28
  147. data/src/core/ext/filters/client_channel/resolver_factory.c +10 -25
  148. data/src/core/ext/filters/client_channel/resolver_factory.h +10 -25
  149. data/src/core/ext/filters/client_channel/resolver_registry.c +10 -25
  150. data/src/core/ext/filters/client_channel/resolver_registry.h +10 -25
  151. data/src/core/ext/filters/client_channel/retry_throttle.c +23 -34
  152. data/src/core/ext/filters/client_channel/retry_throttle.h +10 -25
  153. data/src/core/ext/filters/client_channel/subchannel.c +33 -55
  154. data/src/core/ext/filters/client_channel/subchannel.h +16 -26
  155. data/src/core/ext/filters/client_channel/subchannel_index.c +55 -92
  156. data/src/core/ext/filters/client_channel/subchannel_index.h +26 -29
  157. data/src/core/ext/filters/client_channel/uri_parser.c +10 -25
  158. data/src/core/ext/filters/client_channel/uri_parser.h +10 -25
  159. data/src/core/ext/filters/deadline/deadline_filter.c +30 -45
  160. data/src/core/ext/filters/deadline/deadline_filter.h +10 -25
  161. data/src/core/ext/filters/http/client/http_client_filter.c +255 -294
  162. data/src/core/ext/filters/http/client/http_client_filter.h +10 -25
  163. data/src/core/ext/filters/http/http_filters_plugin.c +11 -26
  164. data/src/core/ext/filters/http/message_compress/message_compress_filter.c +133 -105
  165. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +10 -25
  166. data/src/core/ext/filters/http/server/http_server_filter.c +17 -32
  167. data/src/core/ext/filters/http/server/http_server_filter.h +10 -25
  168. data/src/core/ext/filters/load_reporting/load_reporting.c +11 -30
  169. data/src/core/ext/filters/load_reporting/load_reporting.h +10 -25
  170. data/src/core/ext/filters/load_reporting/load_reporting_filter.c +11 -26
  171. data/src/core/ext/filters/load_reporting/load_reporting_filter.h +10 -25
  172. data/src/core/ext/filters/max_age/max_age_filter.c +28 -43
  173. data/src/core/ext/filters/max_age/max_age_filter.h +10 -25
  174. data/src/core/ext/filters/message_size/message_size_filter.c +24 -37
  175. data/src/core/ext/filters/message_size/message_size_filter.h +10 -25
  176. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.c +16 -31
  177. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +10 -25
  178. data/src/core/ext/filters/workarounds/workaround_utils.c +12 -26
  179. data/src/core/ext/filters/workarounds/workaround_utils.h +11 -26
  180. data/src/core/ext/transport/chttp2/alpn/alpn.c +10 -25
  181. data/src/core/ext/transport/chttp2/alpn/alpn.h +10 -25
  182. data/src/core/ext/transport/chttp2/client/chttp2_connector.c +13 -28
  183. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +10 -25
  184. data/src/core/ext/transport/chttp2/client/insecure/channel_create.c +13 -30
  185. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c +12 -29
  186. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c +13 -30
  187. data/src/core/ext/transport/chttp2/server/chttp2_server.c +11 -26
  188. data/src/core/ext/transport/chttp2/server/chttp2_server.h +10 -25
  189. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c +10 -25
  190. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c +10 -25
  191. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c +10 -25
  192. data/src/core/ext/transport/chttp2/transport/bin_decoder.c +11 -25
  193. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +10 -25
  194. data/src/core/ext/transport/chttp2/transport/bin_encoder.c +10 -25
  195. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +10 -25
  196. data/src/core/ext/transport/chttp2/transport/chttp2_plugin.c +15 -27
  197. data/src/core/ext/transport/chttp2/transport/chttp2_transport.c +421 -443
  198. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +14 -25
  199. data/src/core/ext/transport/chttp2/transport/flow_control.c +500 -0
  200. data/src/core/ext/transport/chttp2/transport/frame.h +10 -25
  201. data/src/core/ext/transport/chttp2/transport/frame_data.c +20 -28
  202. data/src/core/ext/transport/chttp2/transport/frame_data.h +10 -25
  203. data/src/core/ext/transport/chttp2/transport/frame_goaway.c +10 -25
  204. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +10 -25
  205. data/src/core/ext/transport/chttp2/transport/frame_ping.c +11 -26
  206. data/src/core/ext/transport/chttp2/transport/frame_ping.h +10 -25
  207. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.c +11 -26
  208. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +10 -25
  209. data/src/core/ext/transport/chttp2/transport/frame_settings.c +16 -29
  210. data/src/core/ext/transport/chttp2/transport/frame_settings.h +10 -25
  211. data/src/core/ext/transport/chttp2/transport/frame_window_update.c +17 -33
  212. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +10 -25
  213. data/src/core/ext/transport/chttp2/transport/hpack_encoder.c +18 -31
  214. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +12 -25
  215. data/src/core/ext/transport/chttp2/transport/hpack_parser.c +15 -30
  216. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +10 -25
  217. data/src/core/ext/transport/chttp2/transport/hpack_table.c +10 -25
  218. data/src/core/ext/transport/chttp2/transport/hpack_table.h +10 -25
  219. data/src/core/ext/transport/chttp2/transport/http2_settings.c +10 -25
  220. data/src/core/ext/transport/chttp2/transport/http2_settings.h +10 -25
  221. data/src/core/ext/transport/chttp2/transport/huffsyms.c +10 -25
  222. data/src/core/ext/transport/chttp2/transport/huffsyms.h +10 -25
  223. data/src/core/ext/transport/chttp2/transport/incoming_metadata.c +10 -25
  224. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +10 -25
  225. data/src/core/ext/transport/chttp2/transport/internal.h +191 -179
  226. data/src/core/ext/transport/chttp2/transport/parsing.c +33 -102
  227. data/src/core/ext/transport/chttp2/transport/stream_lists.c +26 -28
  228. data/src/core/ext/transport/chttp2/transport/stream_map.c +10 -25
  229. data/src/core/ext/transport/chttp2/transport/stream_map.h +10 -25
  230. data/src/core/ext/transport/chttp2/transport/varint.c +14 -25
  231. data/src/core/ext/transport/chttp2/transport/varint.h +10 -25
  232. data/src/core/ext/transport/chttp2/transport/writing.c +164 -106
  233. data/src/core/ext/transport/inproc/inproc_plugin.c +29 -0
  234. data/src/core/ext/transport/inproc/inproc_transport.c +1303 -0
  235. data/src/core/ext/transport/inproc/inproc_transport.h +41 -0
  236. data/src/core/lib/channel/channel_args.c +52 -27
  237. data/src/core/lib/channel/channel_args.h +18 -27
  238. data/src/core/lib/channel/channel_stack.c +11 -26
  239. data/src/core/lib/channel/channel_stack.h +12 -27
  240. data/src/core/lib/channel/channel_stack_builder.c +11 -26
  241. data/src/core/lib/channel/channel_stack_builder.h +10 -25
  242. data/src/core/lib/channel/connected_channel.c +10 -25
  243. data/src/core/lib/channel/connected_channel.h +10 -25
  244. data/src/core/lib/channel/context.h +10 -25
  245. data/src/core/lib/channel/handshaker.c +14 -29
  246. data/src/core/lib/channel/handshaker.h +10 -25
  247. data/src/core/lib/channel/handshaker_factory.c +10 -25
  248. data/src/core/lib/channel/handshaker_factory.h +10 -25
  249. data/src/core/lib/channel/handshaker_registry.c +10 -25
  250. data/src/core/lib/channel/handshaker_registry.h +10 -25
  251. data/src/core/lib/compression/algorithm_metadata.h +10 -25
  252. data/src/core/lib/compression/compression.c +10 -25
  253. data/src/core/lib/compression/message_compress.c +10 -25
  254. data/src/core/lib/compression/message_compress.h +10 -25
  255. data/src/core/lib/compression/stream_compression.c +191 -0
  256. data/src/core/lib/compression/stream_compression.h +90 -0
  257. data/src/core/lib/debug/trace.c +28 -29
  258. data/src/core/lib/debug/trace.h +16 -30
  259. data/src/core/lib/http/format_request.c +10 -25
  260. data/src/core/lib/http/format_request.h +10 -25
  261. data/src/core/lib/http/httpcli.c +19 -35
  262. data/src/core/lib/http/httpcli.h +10 -25
  263. data/src/core/lib/http/httpcli_security_connector.c +17 -30
  264. data/src/core/lib/http/parser.c +11 -26
  265. data/src/core/lib/http/parser.h +10 -25
  266. data/src/core/lib/iomgr/closure.c +62 -25
  267. data/src/core/lib/iomgr/closure.h +81 -26
  268. data/src/core/lib/iomgr/combiner.c +103 -200
  269. data/src/core/lib/iomgr/combiner.h +14 -32
  270. data/src/core/lib/iomgr/endpoint.c +10 -29
  271. data/src/core/lib/iomgr/endpoint.h +10 -29
  272. data/src/core/lib/iomgr/endpoint_pair.h +10 -25
  273. data/src/core/lib/iomgr/endpoint_pair_posix.c +10 -25
  274. data/src/core/lib/iomgr/endpoint_pair_uv.c +10 -25
  275. data/src/core/lib/iomgr/endpoint_pair_windows.c +10 -25
  276. data/src/core/lib/iomgr/error.c +45 -46
  277. data/src/core/lib/iomgr/error.h +21 -34
  278. data/src/core/lib/iomgr/error_internal.h +10 -25
  279. data/src/core/lib/iomgr/ev_epoll1_linux.c +279 -179
  280. data/src/core/lib/iomgr/ev_epoll1_linux.h +10 -25
  281. data/src/core/lib/iomgr/ev_epoll_limited_pollers_linux.c +75 -264
  282. data/src/core/lib/iomgr/ev_epoll_limited_pollers_linux.h +10 -25
  283. data/src/core/lib/iomgr/ev_epoll_thread_pool_linux.c +44 -199
  284. data/src/core/lib/iomgr/ev_epoll_thread_pool_linux.h +10 -25
  285. data/src/core/lib/iomgr/ev_epollex_linux.c +184 -247
  286. data/src/core/lib/iomgr/ev_epollex_linux.h +10 -25
  287. data/src/core/lib/iomgr/ev_epollsig_linux.c +116 -323
  288. data/src/core/lib/iomgr/ev_epollsig_linux.h +10 -25
  289. data/src/core/lib/iomgr/ev_poll_posix.c +328 -184
  290. data/src/core/lib/iomgr/ev_poll_posix.h +10 -25
  291. data/src/core/lib/iomgr/ev_posix.c +25 -56
  292. data/src/core/lib/iomgr/ev_posix.h +15 -44
  293. data/src/core/lib/iomgr/ev_windows.c +11 -26
  294. data/src/core/lib/iomgr/exec_ctx.c +36 -45
  295. data/src/core/lib/iomgr/exec_ctx.h +10 -25
  296. data/src/core/lib/iomgr/executor.c +152 -127
  297. data/src/core/lib/iomgr/executor.h +18 -26
  298. data/src/core/lib/iomgr/gethostname.h +26 -0
  299. data/src/core/lib/iomgr/gethostname_fallback.c +27 -0
  300. data/src/core/lib/iomgr/gethostname_host_name_max.c +37 -0
  301. data/src/core/lib/iomgr/gethostname_sysconf.c +37 -0
  302. data/src/core/lib/iomgr/iocp_windows.c +10 -25
  303. data/src/core/lib/iomgr/iocp_windows.h +10 -25
  304. data/src/core/lib/iomgr/iomgr.c +17 -28
  305. data/src/core/lib/iomgr/iomgr.h +12 -27
  306. data/src/core/lib/iomgr/iomgr_internal.h +10 -25
  307. data/src/core/lib/iomgr/iomgr_posix.c +11 -26
  308. data/src/core/lib/iomgr/iomgr_posix.h +10 -25
  309. data/src/core/lib/iomgr/iomgr_uv.c +19 -26
  310. data/src/core/lib/iomgr/iomgr_uv.h +37 -0
  311. data/src/core/lib/iomgr/iomgr_windows.c +10 -25
  312. data/src/core/lib/iomgr/is_epollexclusive_available.c +10 -25
  313. data/src/core/lib/iomgr/is_epollexclusive_available.h +10 -25
  314. data/src/core/lib/iomgr/load_file.c +10 -25
  315. data/src/core/lib/iomgr/load_file.h +10 -25
  316. data/src/core/lib/iomgr/lockfree_event.c +22 -35
  317. data/src/core/lib/iomgr/lockfree_event.h +13 -27
  318. data/src/core/lib/iomgr/nameser.h +104 -0
  319. data/src/core/lib/iomgr/network_status_tracker.c +10 -25
  320. data/src/core/lib/iomgr/network_status_tracker.h +10 -25
  321. data/src/core/lib/iomgr/polling_entity.c +10 -25
  322. data/src/core/lib/iomgr/polling_entity.h +14 -34
  323. data/src/core/lib/iomgr/pollset.h +14 -25
  324. data/src/core/lib/iomgr/pollset_set.h +10 -25
  325. data/src/core/lib/iomgr/pollset_set_uv.c +10 -25
  326. data/src/core/lib/iomgr/pollset_set_windows.c +10 -25
  327. data/src/core/lib/iomgr/pollset_set_windows.h +10 -25
  328. data/src/core/lib/iomgr/pollset_uv.c +25 -26
  329. data/src/core/lib/iomgr/pollset_uv.h +10 -25
  330. data/src/core/lib/iomgr/pollset_windows.c +17 -27
  331. data/src/core/lib/iomgr/pollset_windows.h +10 -25
  332. data/src/core/lib/iomgr/port.h +24 -25
  333. data/src/core/lib/iomgr/resolve_address.h +10 -25
  334. data/src/core/lib/iomgr/resolve_address_posix.c +13 -28
  335. data/src/core/lib/iomgr/resolve_address_uv.c +31 -35
  336. data/src/core/lib/iomgr/resolve_address_windows.c +13 -28
  337. data/src/core/lib/iomgr/resource_quota.c +52 -67
  338. data/src/core/lib/iomgr/resource_quota.h +10 -25
  339. data/src/core/lib/iomgr/sockaddr.h +10 -25
  340. data/src/core/lib/iomgr/sockaddr_posix.h +10 -25
  341. data/src/core/lib/iomgr/sockaddr_utils.c +15 -25
  342. data/src/core/lib/iomgr/sockaddr_utils.h +12 -25
  343. data/src/core/lib/iomgr/sockaddr_windows.h +10 -25
  344. data/src/core/lib/iomgr/socket_factory_posix.c +13 -31
  345. data/src/core/lib/iomgr/socket_factory_posix.h +10 -25
  346. data/src/core/lib/iomgr/socket_mutator.c +14 -31
  347. data/src/core/lib/iomgr/socket_mutator.h +10 -25
  348. data/src/core/lib/iomgr/socket_utils.h +10 -25
  349. data/src/core/lib/iomgr/socket_utils_common_posix.c +10 -25
  350. data/src/core/lib/iomgr/socket_utils_linux.c +10 -25
  351. data/src/core/lib/iomgr/socket_utils_posix.c +10 -25
  352. data/src/core/lib/iomgr/socket_utils_posix.h +10 -25
  353. data/src/core/lib/iomgr/socket_utils_uv.c +10 -25
  354. data/src/core/lib/iomgr/socket_utils_windows.c +10 -25
  355. data/src/core/lib/iomgr/socket_windows.c +12 -27
  356. data/src/core/lib/iomgr/socket_windows.h +10 -25
  357. data/src/core/lib/iomgr/sys_epoll_wrapper.h +10 -25
  358. data/src/core/lib/iomgr/tcp_client.h +10 -25
  359. data/src/core/lib/iomgr/tcp_client_posix.c +21 -34
  360. data/src/core/lib/iomgr/tcp_client_posix.h +10 -25
  361. data/src/core/lib/iomgr/tcp_client_uv.c +18 -27
  362. data/src/core/lib/iomgr/tcp_client_windows.c +14 -29
  363. data/src/core/lib/iomgr/tcp_posix.c +36 -55
  364. data/src/core/lib/iomgr/tcp_posix.h +10 -25
  365. data/src/core/lib/iomgr/tcp_server.h +10 -25
  366. data/src/core/lib/iomgr/tcp_server_posix.c +16 -31
  367. data/src/core/lib/iomgr/tcp_server_utils_posix.h +10 -25
  368. data/src/core/lib/iomgr/tcp_server_utils_posix_common.c +11 -26
  369. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.c +10 -25
  370. data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.c +10 -25
  371. data/src/core/lib/iomgr/tcp_server_uv.c +103 -64
  372. data/src/core/lib/iomgr/tcp_server_windows.c +14 -29
  373. data/src/core/lib/iomgr/tcp_uv.c +41 -45
  374. data/src/core/lib/iomgr/tcp_uv.h +10 -25
  375. data/src/core/lib/iomgr/tcp_windows.c +39 -53
  376. data/src/core/lib/iomgr/tcp_windows.h +10 -25
  377. data/src/core/lib/iomgr/time_averaged_stats.c +10 -25
  378. data/src/core/lib/iomgr/time_averaged_stats.h +10 -25
  379. data/src/core/lib/iomgr/timer.h +18 -27
  380. data/src/core/lib/iomgr/timer_generic.c +91 -87
  381. data/src/core/lib/iomgr/timer_generic.h +10 -25
  382. data/src/core/lib/iomgr/timer_heap.c +10 -25
  383. data/src/core/lib/iomgr/timer_heap.h +10 -25
  384. data/src/core/lib/iomgr/timer_manager.c +178 -100
  385. data/src/core/lib/iomgr/timer_manager.h +10 -25
  386. data/src/core/lib/iomgr/timer_uv.c +23 -33
  387. data/src/core/lib/iomgr/timer_uv.h +10 -25
  388. data/src/core/lib/iomgr/udp_server.c +17 -32
  389. data/src/core/lib/iomgr/udp_server.h +10 -25
  390. data/src/core/lib/iomgr/unix_sockets_posix.c +10 -25
  391. data/src/core/lib/iomgr/unix_sockets_posix.h +10 -25
  392. data/src/core/lib/iomgr/unix_sockets_posix_noop.c +10 -25
  393. data/src/core/lib/iomgr/wakeup_fd_cv.c +10 -25
  394. data/src/core/lib/iomgr/wakeup_fd_cv.h +13 -28
  395. data/src/core/lib/iomgr/wakeup_fd_eventfd.c +10 -25
  396. data/src/core/lib/iomgr/wakeup_fd_nospecial.c +10 -25
  397. data/src/core/lib/iomgr/wakeup_fd_pipe.c +10 -25
  398. data/src/core/lib/iomgr/wakeup_fd_pipe.h +10 -25
  399. data/src/core/lib/iomgr/wakeup_fd_posix.c +10 -25
  400. data/src/core/lib/iomgr/wakeup_fd_posix.h +10 -25
  401. data/src/core/lib/json/json.c +10 -25
  402. data/src/core/lib/json/json.h +10 -25
  403. data/src/core/lib/json/json_common.h +10 -25
  404. data/src/core/lib/json/json_reader.c +11 -25
  405. data/src/core/lib/json/json_reader.h +10 -25
  406. data/src/core/lib/json/json_string.c +10 -25
  407. data/src/core/lib/json/json_writer.c +10 -25
  408. data/src/core/lib/json/json_writer.h +10 -25
  409. data/src/core/lib/profiling/basic_timers.c +10 -25
  410. data/src/core/lib/profiling/stap_timers.c +10 -25
  411. data/src/core/lib/profiling/timers.h +10 -25
  412. data/src/core/lib/security/context/security_context.c +32 -40
  413. data/src/core/lib/security/context/security_context.h +15 -26
  414. data/src/core/lib/security/credentials/composite/composite_credentials.c +76 -81
  415. data/src/core/lib/security/credentials/composite/composite_credentials.h +10 -25
  416. data/src/core/lib/security/credentials/credentials.c +29 -49
  417. data/src/core/lib/security/credentials/credentials.h +48 -61
  418. data/src/core/lib/security/credentials/credentials_metadata.c +34 -78
  419. data/src/core/lib/security/credentials/fake/fake_credentials.c +33 -56
  420. data/src/core/lib/security/credentials/fake/fake_credentials.h +12 -27
  421. data/src/core/lib/security/credentials/google_default/credentials_generic.c +10 -25
  422. data/src/core/lib/security/credentials/google_default/google_default_credentials.c +12 -27
  423. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +10 -25
  424. data/src/core/lib/security/credentials/iam/iam_credentials.c +40 -40
  425. data/src/core/lib/security/credentials/iam/iam_credentials.h +11 -26
  426. data/src/core/lib/security/credentials/jwt/json_token.c +10 -25
  427. data/src/core/lib/security/credentials/jwt/json_token.h +10 -25
  428. data/src/core/lib/security/credentials/jwt/jwt_credentials.c +45 -48
  429. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -26
  430. data/src/core/lib/security/credentials/jwt/jwt_verifier.c +53 -33
  431. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +10 -25
  432. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.c +155 -87
  433. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +24 -28
  434. data/src/core/lib/security/credentials/plugin/plugin_credentials.c +118 -82
  435. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +24 -27
  436. data/src/core/lib/security/credentials/ssl/ssl_credentials.c +13 -32
  437. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +10 -25
  438. data/src/core/lib/security/transport/auth_filters.h +10 -25
  439. data/src/core/lib/security/transport/client_auth_filter.c +217 -112
  440. data/src/core/lib/security/transport/lb_targets_info.c +16 -32
  441. data/src/core/lib/security/transport/lb_targets_info.h +10 -25
  442. data/src/core/lib/security/transport/secure_endpoint.c +29 -43
  443. data/src/core/lib/security/transport/secure_endpoint.h +10 -25
  444. data/src/core/lib/security/transport/security_connector.c +80 -61
  445. data/src/core/lib/security/transport/security_connector.h +35 -35
  446. data/src/core/lib/security/transport/security_handshaker.c +18 -33
  447. data/src/core/lib/security/transport/security_handshaker.h +10 -25
  448. data/src/core/lib/security/transport/server_auth_filter.c +62 -116
  449. data/src/core/lib/security/transport/tsi_error.c +10 -25
  450. data/src/core/lib/security/transport/tsi_error.h +10 -25
  451. data/src/core/lib/security/util/json_util.c +10 -25
  452. data/src/core/lib/security/util/json_util.h +10 -25
  453. data/src/core/lib/slice/b64.c +10 -25
  454. data/src/core/lib/slice/b64.h +10 -25
  455. data/src/core/lib/slice/percent_encoding.c +10 -25
  456. data/src/core/lib/slice/percent_encoding.h +10 -25
  457. data/src/core/lib/slice/slice.c +10 -25
  458. data/src/core/lib/slice/slice_buffer.c +10 -25
  459. data/src/core/lib/slice/slice_hash_table.c +48 -26
  460. data/src/core/lib/slice/slice_hash_table.h +26 -28
  461. data/src/core/lib/slice/slice_intern.c +10 -25
  462. data/src/core/lib/slice/slice_internal.h +10 -25
  463. data/src/core/lib/slice/slice_string_helpers.c +10 -25
  464. data/src/core/lib/slice/slice_string_helpers.h +10 -25
  465. data/src/core/lib/support/alloc.c +10 -25
  466. data/src/core/lib/support/arena.c +12 -27
  467. data/src/core/lib/support/arena.h +10 -25
  468. data/src/core/lib/support/atm.c +17 -32
  469. data/src/core/lib/support/atomic.h +10 -25
  470. data/src/core/lib/support/atomic_with_atm.h +10 -25
  471. data/src/core/lib/support/atomic_with_std.h +10 -25
  472. data/src/core/lib/support/avl.c +101 -101
  473. data/src/core/lib/support/backoff.c +10 -25
  474. data/src/core/lib/support/backoff.h +10 -25
  475. data/src/core/lib/support/block_annotate.h +10 -25
  476. data/src/core/lib/support/cmdline.c +10 -25
  477. data/src/core/lib/support/cpu_iphone.c +10 -25
  478. data/src/core/lib/support/cpu_linux.c +10 -25
  479. data/src/core/lib/support/cpu_posix.c +10 -25
  480. data/src/core/lib/support/cpu_windows.c +10 -25
  481. data/src/core/lib/support/env.h +16 -25
  482. data/src/core/lib/support/env_linux.c +30 -37
  483. data/src/core/lib/support/env_posix.c +15 -25
  484. data/src/core/lib/support/env_windows.c +15 -25
  485. data/src/core/lib/support/histogram.c +10 -25
  486. data/src/core/lib/support/host_port.c +10 -25
  487. data/src/core/lib/support/log.c +20 -29
  488. data/src/core/lib/support/log_android.c +10 -25
  489. data/src/core/lib/support/log_linux.c +13 -26
  490. data/src/core/lib/support/log_posix.c +10 -25
  491. data/src/core/lib/support/log_windows.c +10 -25
  492. data/src/core/lib/support/memory.h +10 -25
  493. data/src/core/lib/support/mpscq.c +11 -49
  494. data/src/core/lib/support/mpscq.h +11 -50
  495. data/src/core/lib/support/murmur_hash.c +12 -25
  496. data/src/core/lib/support/murmur_hash.h +10 -25
  497. data/src/core/lib/support/spinlock.h +10 -25
  498. data/src/core/lib/support/stack_lockfree.c +10 -25
  499. data/src/core/lib/support/stack_lockfree.h +10 -25
  500. data/src/core/lib/support/string.c +10 -25
  501. data/src/core/lib/support/string.h +10 -25
  502. data/src/core/lib/support/string_posix.c +10 -25
  503. data/src/core/lib/support/string_util_windows.c +10 -25
  504. data/src/core/lib/support/string_windows.c +10 -25
  505. data/src/core/lib/support/string_windows.h +10 -25
  506. data/src/core/lib/support/subprocess_posix.c +10 -25
  507. data/src/core/lib/support/subprocess_windows.c +10 -25
  508. data/src/core/lib/support/sync.c +10 -25
  509. data/src/core/lib/support/sync_posix.c +10 -25
  510. data/src/core/lib/support/sync_windows.c +10 -25
  511. data/src/core/lib/support/thd.c +10 -25
  512. data/src/core/lib/support/thd_internal.h +10 -25
  513. data/src/core/lib/support/thd_posix.c +10 -25
  514. data/src/core/lib/support/thd_windows.c +10 -25
  515. data/src/core/lib/support/time.c +10 -25
  516. data/src/core/lib/support/time_posix.c +10 -25
  517. data/src/core/lib/support/time_precise.c +18 -33
  518. data/src/core/lib/support/time_precise.h +10 -25
  519. data/src/core/lib/support/time_windows.c +10 -25
  520. data/src/core/lib/support/tls_pthread.c +10 -25
  521. data/src/core/lib/support/tmpfile.h +10 -25
  522. data/src/core/lib/support/tmpfile_msys.c +10 -25
  523. data/src/core/lib/support/tmpfile_posix.c +10 -25
  524. data/src/core/lib/support/tmpfile_windows.c +10 -25
  525. data/src/core/lib/support/wrap_memcpy.c +10 -25
  526. data/src/core/lib/surface/alarm.c +78 -35
  527. data/src/core/lib/surface/alarm_internal.h +40 -0
  528. data/src/core/lib/surface/api_trace.c +11 -26
  529. data/src/core/lib/surface/api_trace.h +10 -25
  530. data/src/core/lib/surface/byte_buffer.c +10 -25
  531. data/src/core/lib/surface/byte_buffer_reader.c +10 -25
  532. data/src/core/lib/surface/call.c +64 -84
  533. data/src/core/lib/surface/call.h +11 -26
  534. data/src/core/lib/surface/call_details.c +10 -25
  535. data/src/core/lib/surface/call_log_batch.c +10 -25
  536. data/src/core/lib/surface/call_test_only.h +10 -25
  537. data/src/core/lib/surface/channel.c +11 -26
  538. data/src/core/lib/surface/channel.h +11 -26
  539. data/src/core/lib/surface/channel_init.c +10 -25
  540. data/src/core/lib/surface/channel_init.h +10 -25
  541. data/src/core/lib/surface/channel_ping.c +12 -27
  542. data/src/core/lib/surface/channel_stack_type.c +10 -25
  543. data/src/core/lib/surface/channel_stack_type.h +10 -25
  544. data/src/core/lib/surface/completion_queue.c +442 -331
  545. data/src/core/lib/surface/completion_queue.h +16 -33
  546. data/src/core/lib/surface/completion_queue_factory.c +10 -25
  547. data/src/core/lib/surface/completion_queue_factory.h +10 -25
  548. data/src/core/lib/surface/event_string.c +10 -25
  549. data/src/core/lib/surface/event_string.h +10 -25
  550. data/src/core/lib/surface/init.c +38 -47
  551. data/src/core/lib/surface/init.h +10 -25
  552. data/src/core/lib/surface/init_secure.c +20 -27
  553. data/src/core/lib/surface/lame_client.cc +14 -29
  554. data/src/core/lib/surface/lame_client.h +10 -25
  555. data/src/core/lib/surface/metadata_array.c +10 -25
  556. data/src/core/lib/surface/server.c +128 -81
  557. data/src/core/lib/surface/server.h +10 -25
  558. data/src/core/lib/surface/validate_metadata.c +10 -25
  559. data/src/core/lib/surface/validate_metadata.h +10 -25
  560. data/src/core/lib/surface/version.c +11 -26
  561. data/src/core/lib/transport/bdp_estimator.c +19 -29
  562. data/src/core/lib/transport/bdp_estimator.h +16 -29
  563. data/src/core/lib/transport/byte_stream.c +127 -36
  564. data/src/core/lib/transport/byte_stream.h +88 -46
  565. data/src/core/lib/transport/connectivity_state.c +17 -31
  566. data/src/core/lib/transport/connectivity_state.h +10 -25
  567. data/src/core/lib/transport/error_utils.c +10 -25
  568. data/src/core/lib/transport/error_utils.h +10 -25
  569. data/src/core/lib/transport/http2_errors.h +10 -25
  570. data/src/core/lib/transport/metadata.c +87 -85
  571. data/src/core/lib/transport/metadata.h +15 -28
  572. data/src/core/lib/transport/metadata_batch.c +10 -25
  573. data/src/core/lib/transport/metadata_batch.h +10 -25
  574. data/src/core/lib/transport/pid_controller.c +10 -25
  575. data/src/core/lib/transport/pid_controller.h +10 -25
  576. data/src/core/lib/transport/service_config.c +11 -26
  577. data/src/core/lib/transport/service_config.h +10 -25
  578. data/src/core/lib/transport/static_metadata.c +12 -26
  579. data/src/core/lib/transport/static_metadata.h +10 -25
  580. data/src/core/lib/transport/status_conversion.c +10 -25
  581. data/src/core/lib/transport/status_conversion.h +10 -25
  582. data/src/core/lib/transport/timeout_encoding.c +10 -25
  583. data/src/core/lib/transport/timeout_encoding.h +10 -25
  584. data/src/core/lib/transport/transport.c +60 -53
  585. data/src/core/lib/transport/transport.h +36 -34
  586. data/src/core/lib/transport/transport_impl.h +10 -25
  587. data/src/core/lib/transport/transport_op_string.c +10 -28
  588. data/src/core/plugin_registry/grpc_plugin_registry.c +22 -25
  589. data/src/core/tsi/fake_transport_security.c +199 -94
  590. data/src/core/tsi/fake_transport_security.h +11 -26
  591. data/src/core/tsi/gts_transport_security.c +40 -0
  592. data/src/core/tsi/gts_transport_security.h +37 -0
  593. data/src/core/tsi/ssl_transport_security.c +13 -32
  594. data/src/core/tsi/ssl_transport_security.h +10 -25
  595. data/src/core/tsi/ssl_types.h +10 -25
  596. data/src/core/tsi/transport_security.c +48 -78
  597. data/src/core/tsi/transport_security.h +18 -27
  598. data/src/core/tsi/transport_security_adapter.c +17 -29
  599. data/src/core/tsi/transport_security_adapter.h +10 -25
  600. data/src/core/tsi/transport_security_grpc.c +64 -0
  601. data/src/core/tsi/transport_security_grpc.h +80 -0
  602. data/src/core/tsi/transport_security_interface.h +21 -27
  603. data/src/ruby/bin/apis/google/protobuf/empty.rb +10 -25
  604. data/src/ruby/bin/apis/pubsub_demo.rb +10 -25
  605. data/src/ruby/bin/apis/tech/pubsub/proto/pubsub.rb +10 -25
  606. data/src/ruby/bin/apis/tech/pubsub/proto/pubsub_services.rb +10 -25
  607. data/src/ruby/bin/math_client.rb +10 -25
  608. data/src/ruby/bin/math_server.rb +10 -25
  609. data/src/ruby/bin/math_services_pb.rb +10 -25
  610. data/src/ruby/bin/noproto_client.rb +10 -25
  611. data/src/ruby/bin/noproto_server.rb +10 -25
  612. data/src/ruby/ext/grpc/extconf.rb +10 -25
  613. data/src/ruby/ext/grpc/rb_byte_buffer.c +10 -25
  614. data/src/ruby/ext/grpc/rb_byte_buffer.h +10 -25
  615. data/src/ruby/ext/grpc/rb_call.c +44 -25
  616. data/src/ruby/ext/grpc/rb_call.h +10 -25
  617. data/src/ruby/ext/grpc/rb_call_credentials.c +10 -25
  618. data/src/ruby/ext/grpc/rb_call_credentials.h +10 -25
  619. data/src/ruby/ext/grpc/rb_channel.c +10 -25
  620. data/src/ruby/ext/grpc/rb_channel.h +10 -25
  621. data/src/ruby/ext/grpc/rb_channel_args.c +10 -25
  622. data/src/ruby/ext/grpc/rb_channel_args.h +10 -25
  623. data/src/ruby/ext/grpc/rb_channel_credentials.c +10 -25
  624. data/src/ruby/ext/grpc/rb_channel_credentials.h +10 -25
  625. data/src/ruby/ext/grpc/rb_completion_queue.c +10 -25
  626. data/src/ruby/ext/grpc/rb_completion_queue.h +10 -25
  627. data/src/ruby/ext/grpc/rb_compression_options.c +10 -25
  628. data/src/ruby/ext/grpc/rb_compression_options.h +10 -25
  629. data/src/ruby/ext/grpc/rb_event_thread.c +10 -25
  630. data/src/ruby/ext/grpc/rb_event_thread.h +10 -25
  631. data/src/ruby/ext/grpc/rb_grpc.c +10 -25
  632. data/src/ruby/ext/grpc/rb_grpc.h +10 -25
  633. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +10 -25
  634. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +16 -31
  635. data/src/ruby/ext/grpc/rb_loader.c +10 -25
  636. data/src/ruby/ext/grpc/rb_loader.h +10 -25
  637. data/src/ruby/ext/grpc/rb_server.c +10 -25
  638. data/src/ruby/ext/grpc/rb_server.h +10 -25
  639. data/src/ruby/ext/grpc/rb_server_credentials.c +10 -25
  640. data/src/ruby/ext/grpc/rb_server_credentials.h +10 -25
  641. data/src/ruby/lib/grpc.rb +10 -25
  642. data/src/ruby/lib/grpc/core/time_consts.rb +10 -25
  643. data/src/ruby/lib/grpc/errors.rb +16 -30
  644. data/src/ruby/lib/grpc/generic/active_call.rb +25 -27
  645. data/src/ruby/lib/grpc/generic/bidi_call.rb +17 -27
  646. data/src/ruby/lib/grpc/generic/client_stub.rb +10 -25
  647. data/src/ruby/lib/grpc/generic/rpc_desc.rb +10 -25
  648. data/src/ruby/lib/grpc/generic/rpc_server.rb +10 -25
  649. data/src/ruby/lib/grpc/generic/service.rb +10 -25
  650. data/src/ruby/lib/grpc/grpc.rb +10 -25
  651. data/src/ruby/lib/grpc/logconfig.rb +10 -25
  652. data/src/ruby/lib/grpc/notifier.rb +10 -25
  653. data/src/ruby/lib/grpc/version.rb +11 -26
  654. data/src/ruby/pb/generate_proto_ruby.sh +10 -25
  655. data/src/ruby/pb/grpc/health/checker.rb +10 -25
  656. data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +10 -25
  657. data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +10 -25
  658. data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +10 -25
  659. data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +10 -25
  660. data/src/ruby/pb/test/client.rb +10 -25
  661. data/src/ruby/pb/test/server.rb +10 -25
  662. data/src/ruby/spec/call_credentials_spec.rb +10 -25
  663. data/src/ruby/spec/call_spec.rb +43 -25
  664. data/src/ruby/spec/channel_connection_spec.rb +10 -25
  665. data/src/ruby/spec/channel_credentials_spec.rb +11 -26
  666. data/src/ruby/spec/channel_spec.rb +10 -25
  667. data/src/ruby/spec/client_auth_spec.rb +10 -25
  668. data/src/ruby/spec/client_server_spec.rb +66 -25
  669. data/src/ruby/spec/compression_options_spec.rb +10 -25
  670. data/src/ruby/spec/error_sanity_spec.rb +10 -25
  671. data/src/ruby/spec/generic/active_call_spec.rb +10 -25
  672. data/src/ruby/spec/generic/client_stub_spec.rb +146 -35
  673. data/src/ruby/spec/generic/rpc_desc_spec.rb +10 -25
  674. data/src/ruby/spec/generic/rpc_server_pool_spec.rb +10 -25
  675. data/src/ruby/spec/generic/rpc_server_spec.rb +124 -34
  676. data/src/ruby/spec/generic/service_spec.rb +10 -25
  677. data/src/ruby/spec/pb/duplicate/codegen_spec.rb +10 -25
  678. data/src/ruby/spec/pb/health/checker_spec.rb +10 -25
  679. data/src/ruby/spec/server_credentials_spec.rb +10 -25
  680. data/src/ruby/spec/server_spec.rb +10 -25
  681. data/src/ruby/spec/spec_helper.rb +10 -25
  682. data/src/ruby/spec/time_consts_spec.rb +10 -25
  683. data/third_party/boringssl/crypto/aes/key_wrap.c +138 -0
  684. data/third_party/boringssl/crypto/asn1/a_bitstr.c +6 -3
  685. data/third_party/boringssl/crypto/asn1/a_enum.c +4 -1
  686. data/third_party/boringssl/crypto/asn1/a_gentm.c +20 -15
  687. data/third_party/boringssl/crypto/asn1/a_int.c +7 -4
  688. data/third_party/boringssl/crypto/asn1/a_object.c +5 -2
  689. data/third_party/boringssl/crypto/asn1/a_time.c +0 -1
  690. data/third_party/boringssl/crypto/asn1/a_utctm.c +1 -2
  691. data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -2
  692. data/third_party/boringssl/crypto/asn1/asn1_locl.h +35 -0
  693. data/third_party/boringssl/crypto/asn1/tasn_dec.c +3 -1
  694. data/third_party/boringssl/crypto/asn1/tasn_enc.c +6 -3
  695. data/third_party/boringssl/crypto/asn1/tasn_new.c +12 -7
  696. data/third_party/boringssl/crypto/asn1/tasn_utl.c +22 -8
  697. data/third_party/boringssl/crypto/{time_support.c → asn1/time_support.c} +1 -1
  698. data/third_party/boringssl/crypto/asn1/x_long.c +5 -2
  699. data/third_party/boringssl/crypto/base64/base64.c +7 -5
  700. data/third_party/boringssl/crypto/bio/bio.c +24 -10
  701. data/third_party/boringssl/crypto/bio/bio_mem.c +12 -10
  702. data/third_party/boringssl/crypto/bio/connect.c +7 -18
  703. data/third_party/boringssl/crypto/bio/fd.c +3 -6
  704. data/third_party/boringssl/crypto/bio/file.c +6 -6
  705. data/third_party/boringssl/crypto/bio/hexdump.c +4 -2
  706. data/third_party/boringssl/crypto/bio/pair.c +30 -344
  707. data/third_party/boringssl/crypto/bio/socket.c +6 -7
  708. data/third_party/boringssl/crypto/bio/socket_helper.c +4 -3
  709. data/third_party/boringssl/crypto/bn/add.c +1 -1
  710. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +11 -10
  711. data/third_party/boringssl/crypto/bn/bn.c +6 -20
  712. data/third_party/boringssl/crypto/bn/cmp.c +14 -0
  713. data/third_party/boringssl/crypto/bn/convert.c +73 -2
  714. data/third_party/boringssl/crypto/bn/ctx.c +3 -1
  715. data/third_party/boringssl/crypto/bn/div.c +108 -51
  716. data/third_party/boringssl/crypto/bn/exponentiation.c +15 -33
  717. data/third_party/boringssl/crypto/bn/gcd.c +29 -22
  718. data/third_party/boringssl/crypto/bn/generic.c +71 -67
  719. data/third_party/boringssl/crypto/bn/internal.h +19 -6
  720. data/third_party/boringssl/crypto/bn/kronecker.c +1 -0
  721. data/third_party/boringssl/crypto/bn/montgomery.c +9 -10
  722. data/third_party/boringssl/crypto/bn/montgomery_inv.c +47 -0
  723. data/third_party/boringssl/crypto/bn/mul.c +11 -9
  724. data/third_party/boringssl/crypto/bn/random.c +6 -3
  725. data/third_party/boringssl/crypto/bn/rsaz_exp.c +0 -65
  726. data/third_party/boringssl/crypto/bn/rsaz_exp.h +0 -3
  727. data/third_party/boringssl/crypto/bn/shift.c +9 -1
  728. data/third_party/boringssl/crypto/bn/sqrt.c +3 -1
  729. data/third_party/boringssl/crypto/buf/buf.c +6 -4
  730. data/third_party/boringssl/crypto/bytestring/asn1_compat.c +2 -1
  731. data/third_party/boringssl/crypto/bytestring/ber.c +2 -1
  732. data/third_party/boringssl/crypto/bytestring/cbb.c +9 -7
  733. data/third_party/boringssl/crypto/bytestring/cbs.c +54 -2
  734. data/third_party/boringssl/crypto/chacha/chacha.c +1 -1
  735. data/third_party/boringssl/crypto/cipher/aead.c +3 -3
  736. data/third_party/boringssl/crypto/cipher/cipher.c +18 -13
  737. data/third_party/boringssl/crypto/cipher/e_aes.c +335 -281
  738. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +113 -137
  739. data/third_party/boringssl/crypto/cipher/e_null.c +2 -1
  740. data/third_party/boringssl/crypto/cipher/e_rc2.c +54 -49
  741. data/third_party/boringssl/crypto/cipher/e_ssl3.c +4 -3
  742. data/third_party/boringssl/crypto/cipher/e_tls.c +5 -5
  743. data/third_party/boringssl/crypto/cipher/tls_cbc.c +41 -112
  744. data/third_party/boringssl/crypto/cmac/cmac.c +6 -4
  745. data/third_party/boringssl/crypto/conf/conf.c +6 -3
  746. data/third_party/boringssl/crypto/cpu-arm-linux.c +2 -2
  747. data/third_party/boringssl/crypto/curve25519/curve25519.c +28 -34
  748. data/third_party/boringssl/crypto/curve25519/spake25519.c +7 -6
  749. data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +2 -1
  750. data/third_party/boringssl/crypto/des/des.c +1 -1
  751. data/third_party/boringssl/crypto/des/internal.h +58 -46
  752. data/third_party/boringssl/crypto/dh/dh.c +4 -8
  753. data/third_party/boringssl/crypto/digest/digest.c +5 -2
  754. data/third_party/boringssl/crypto/digest/digests.c +70 -33
  755. data/third_party/boringssl/crypto/digest/md32_common.h +39 -27
  756. data/third_party/boringssl/crypto/dsa/dsa.c +11 -19
  757. data/third_party/boringssl/crypto/ec/ec.c +1 -1
  758. data/third_party/boringssl/crypto/ec/ec_asn1.c +3 -2
  759. data/third_party/boringssl/crypto/ec/ec_key.c +1 -1
  760. data/third_party/boringssl/crypto/ec/ec_montgomery.c +6 -11
  761. data/third_party/boringssl/crypto/ec/oct.c +2 -14
  762. data/third_party/boringssl/crypto/ec/p224-64.c +78 -122
  763. data/third_party/boringssl/crypto/ec/p256-64.c +93 -133
  764. data/third_party/boringssl/crypto/ec/p256-x86_64.c +48 -61
  765. data/third_party/boringssl/crypto/ec/p256-x86_64.h +113 -0
  766. data/third_party/boringssl/crypto/ec/simple.c +2 -1
  767. data/third_party/boringssl/crypto/ec/wnaf.c +52 -43
  768. data/third_party/boringssl/crypto/ecdh/ecdh.c +4 -2
  769. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +17 -16
  770. data/third_party/boringssl/crypto/engine/engine.c +3 -1
  771. data/third_party/boringssl/crypto/err/err.c +5 -5
  772. data/third_party/boringssl/crypto/evp/evp.c +1 -1
  773. data/third_party/boringssl/crypto/evp/evp_asn1.c +1 -1
  774. data/third_party/boringssl/crypto/evp/evp_ctx.c +23 -29
  775. data/third_party/boringssl/crypto/evp/p_ec.c +2 -1
  776. data/third_party/boringssl/crypto/evp/p_rsa.c +9 -3
  777. data/third_party/boringssl/crypto/evp/pbkdf.c +3 -1
  778. data/third_party/boringssl/crypto/hkdf/hkdf.c +3 -1
  779. data/third_party/boringssl/crypto/hmac/hmac.c +4 -2
  780. data/third_party/boringssl/crypto/internal.h +81 -0
  781. data/third_party/boringssl/crypto/lhash/lhash.c +7 -13
  782. data/third_party/boringssl/crypto/md4/md4.c +20 -18
  783. data/third_party/boringssl/crypto/md5/md5.c +31 -21
  784. data/third_party/boringssl/crypto/mem.c +4 -10
  785. data/third_party/boringssl/crypto/modes/cbc.c +2 -6
  786. data/third_party/boringssl/crypto/modes/cfb.c +2 -2
  787. data/third_party/boringssl/crypto/modes/ctr.c +1 -1
  788. data/third_party/boringssl/crypto/modes/gcm.c +117 -334
  789. data/third_party/boringssl/crypto/modes/internal.h +107 -84
  790. data/third_party/boringssl/crypto/modes/ofb.c +3 -3
  791. data/third_party/boringssl/crypto/modes/polyval.c +94 -0
  792. data/third_party/boringssl/crypto/obj/obj.c +13 -8
  793. data/third_party/boringssl/crypto/obj/obj_dat.h +6109 -5187
  794. data/third_party/boringssl/crypto/obj/obj_xref.c +55 -57
  795. data/third_party/boringssl/crypto/pem/pem_lib.c +6 -3
  796. data/third_party/boringssl/crypto/pkcs8/internal.h +27 -8
  797. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +137 -352
  798. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +371 -364
  799. data/third_party/boringssl/crypto/poly1305/poly1305.c +12 -18
  800. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +2 -2
  801. data/third_party/boringssl/crypto/{newhope/reduce.c → pool/internal.h} +24 -21
  802. data/third_party/boringssl/crypto/pool/pool.c +200 -0
  803. data/third_party/boringssl/crypto/rand/deterministic.c +6 -5
  804. data/third_party/boringssl/crypto/rand/fuchsia.c +43 -0
  805. data/third_party/boringssl/crypto/rand/rand.c +7 -7
  806. data/third_party/boringssl/crypto/rand/urandom.c +136 -22
  807. data/third_party/boringssl/crypto/rand/windows.c +2 -2
  808. data/third_party/boringssl/crypto/rsa/blinding.c +2 -1
  809. data/third_party/boringssl/crypto/rsa/padding.c +11 -11
  810. data/third_party/boringssl/crypto/rsa/rsa.c +4 -4
  811. data/third_party/boringssl/crypto/rsa/rsa_asn1.c +7 -1
  812. data/third_party/boringssl/crypto/rsa/rsa_impl.c +41 -80
  813. data/third_party/boringssl/crypto/sha/sha1-altivec.c +346 -0
  814. data/third_party/boringssl/crypto/sha/sha1.c +60 -42
  815. data/third_party/boringssl/crypto/sha/sha256.c +4 -2
  816. data/third_party/boringssl/crypto/sha/sha512.c +9 -7
  817. data/third_party/boringssl/crypto/stack/stack.c +10 -7
  818. data/third_party/boringssl/crypto/thread_pthread.c +2 -2
  819. data/third_party/boringssl/crypto/thread_win.c +2 -2
  820. data/third_party/boringssl/crypto/x509/a_verify.c +1 -1
  821. data/third_party/boringssl/crypto/x509/asn1_gen.c +1 -1
  822. data/third_party/boringssl/crypto/x509/by_dir.c +1 -1
  823. data/third_party/boringssl/crypto/x509/t_x509.c +78 -38
  824. data/third_party/boringssl/crypto/x509/x509_cmp.c +8 -5
  825. data/third_party/boringssl/crypto/x509/x509_lu.c +6 -1
  826. data/third_party/boringssl/crypto/x509/x509_obj.c +4 -1
  827. data/third_party/boringssl/crypto/x509/x509_vfy.c +42 -8
  828. data/third_party/boringssl/crypto/x509/x509_vpm.c +8 -6
  829. data/third_party/boringssl/crypto/x509/x509name.c +4 -1
  830. data/third_party/boringssl/crypto/x509/x_crl.c +4 -2
  831. data/third_party/boringssl/crypto/x509/x_name.c +23 -13
  832. data/third_party/boringssl/crypto/x509/x_pkey.c +4 -1
  833. data/third_party/boringssl/crypto/x509/x_x509.c +42 -3
  834. data/third_party/boringssl/crypto/x509v3/pcy_int.h +2 -2
  835. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +2 -1
  836. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +1 -1
  837. data/third_party/boringssl/crypto/x509v3/v3_ia5.c +4 -1
  838. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +4 -1
  839. data/third_party/boringssl/crypto/x509v3/v3_pci.c +6 -3
  840. data/third_party/boringssl/crypto/x509v3/v3_purp.c +13 -21
  841. data/third_party/boringssl/crypto/x509v3/v3_utl.c +19 -33
  842. data/third_party/boringssl/include/openssl/aead.h +9 -20
  843. data/third_party/boringssl/include/openssl/aes.h +21 -9
  844. data/third_party/boringssl/include/openssl/asn1.h +9 -1
  845. data/third_party/boringssl/include/openssl/base.h +33 -6
  846. data/third_party/boringssl/include/openssl/bio.h +10 -103
  847. data/third_party/boringssl/include/openssl/bn.h +58 -42
  848. data/third_party/boringssl/include/openssl/bytestring.h +17 -0
  849. data/third_party/boringssl/include/openssl/cipher.h +4 -3
  850. data/third_party/boringssl/include/openssl/conf.h +4 -1
  851. data/third_party/boringssl/include/openssl/curve25519.h +13 -0
  852. data/third_party/boringssl/include/openssl/digest.h +5 -3
  853. data/third_party/boringssl/include/openssl/dsa.h +5 -5
  854. data/third_party/boringssl/include/openssl/ec.h +2 -2
  855. data/third_party/boringssl/include/openssl/ecdh.h +3 -4
  856. data/third_party/boringssl/include/openssl/ecdsa.h +10 -10
  857. data/third_party/boringssl/include/openssl/err.h +5 -5
  858. data/third_party/boringssl/include/openssl/evp.h +11 -7
  859. data/third_party/boringssl/include/openssl/lhash.h +2 -3
  860. data/third_party/boringssl/include/openssl/lhash_macros.h +56 -14
  861. data/third_party/boringssl/include/openssl/nid.h +2949 -2916
  862. data/third_party/boringssl/include/openssl/obj.h +1 -1
  863. data/third_party/boringssl/include/openssl/pkcs8.h +21 -42
  864. data/third_party/boringssl/include/openssl/pool.h +87 -0
  865. data/third_party/boringssl/include/openssl/rand.h +1 -1
  866. data/third_party/boringssl/include/openssl/rsa.h +4 -2
  867. data/third_party/boringssl/include/openssl/sha.h +0 -4
  868. data/third_party/boringssl/include/openssl/ssl.h +327 -662
  869. data/third_party/boringssl/include/openssl/ssl3.h +1 -21
  870. data/third_party/boringssl/include/openssl/stack.h +1 -0
  871. data/third_party/boringssl/include/openssl/stack_macros.h +85 -0
  872. data/third_party/boringssl/include/openssl/tls1.h +23 -52
  873. data/third_party/boringssl/include/openssl/type_check.h +4 -0
  874. data/third_party/boringssl/include/openssl/x509.h +10 -59
  875. data/third_party/boringssl/include/openssl/x509_vfy.h +7 -1
  876. data/third_party/boringssl/include/openssl/x509v3.h +4 -4
  877. data/third_party/boringssl/ssl/bio_ssl.c +175 -0
  878. data/third_party/boringssl/ssl/custom_extensions.c +24 -21
  879. data/third_party/boringssl/ssl/d1_both.c +259 -289
  880. data/third_party/boringssl/ssl/d1_lib.c +8 -20
  881. data/third_party/boringssl/ssl/d1_pkt.c +6 -15
  882. data/third_party/boringssl/ssl/dtls_method.c +22 -8
  883. data/third_party/boringssl/ssl/dtls_record.c +27 -2
  884. data/third_party/boringssl/ssl/handshake_client.c +460 -579
  885. data/third_party/boringssl/ssl/handshake_server.c +662 -644
  886. data/third_party/boringssl/ssl/internal.h +1009 -375
  887. data/third_party/boringssl/ssl/s3_both.c +312 -162
  888. data/third_party/boringssl/ssl/s3_lib.c +12 -128
  889. data/third_party/boringssl/ssl/s3_pkt.c +22 -30
  890. data/third_party/boringssl/ssl/ssl_aead_ctx.c +28 -22
  891. data/third_party/boringssl/ssl/ssl_asn1.c +210 -114
  892. data/third_party/boringssl/ssl/ssl_buffer.c +2 -1
  893. data/third_party/boringssl/ssl/ssl_cert.c +417 -219
  894. data/third_party/boringssl/ssl/ssl_cipher.c +191 -393
  895. data/third_party/boringssl/ssl/ssl_ecdh.c +19 -164
  896. data/third_party/boringssl/ssl/ssl_file.c +0 -11
  897. data/third_party/boringssl/ssl/ssl_lib.c +325 -652
  898. data/third_party/boringssl/ssl/{ssl_rsa.c → ssl_privkey.c} +21 -131
  899. data/third_party/boringssl/ssl/ssl_privkey_cc.cc +76 -0
  900. data/third_party/boringssl/ssl/ssl_session.c +206 -95
  901. data/third_party/boringssl/ssl/ssl_stat.c +18 -84
  902. data/third_party/boringssl/ssl/{s3_enc.c → ssl_transcript.c} +150 -157
  903. data/third_party/boringssl/ssl/ssl_x509.c +815 -0
  904. data/third_party/boringssl/ssl/t1_enc.c +188 -174
  905. data/third_party/boringssl/ssl/t1_lib.c +1064 -764
  906. data/third_party/boringssl/ssl/tls13_both.c +290 -96
  907. data/third_party/boringssl/ssl/tls13_client.c +344 -314
  908. data/third_party/boringssl/ssl/tls13_enc.c +239 -200
  909. data/third_party/boringssl/ssl/tls13_server.c +374 -366
  910. data/third_party/boringssl/ssl/tls_method.c +40 -5
  911. data/third_party/boringssl/ssl/tls_record.c +166 -71
  912. metadata +39 -25
  913. data/src/core/lib/iomgr/workqueue.h +0 -87
  914. data/src/core/lib/iomgr/workqueue_uv.c +0 -65
  915. data/src/core/lib/iomgr/workqueue_uv.h +0 -37
  916. data/src/core/lib/iomgr/workqueue_windows.c +0 -63
  917. data/src/core/lib/iomgr/workqueue_windows.h +0 -37
  918. data/third_party/boringssl/crypto/bio/buffer.c +0 -496
  919. data/third_party/boringssl/crypto/newhope/error_correction.c +0 -131
  920. data/third_party/boringssl/crypto/newhope/internal.h +0 -71
  921. data/third_party/boringssl/crypto/newhope/newhope.c +0 -174
  922. data/third_party/boringssl/crypto/newhope/ntt.c +0 -148
  923. data/third_party/boringssl/crypto/newhope/poly.c +0 -183
  924. data/third_party/boringssl/crypto/newhope/precomp.c +0 -306
  925. data/third_party/boringssl/crypto/obj/obj_xref.h +0 -96
  926. data/third_party/boringssl/crypto/pkcs8/p5_pbe.c +0 -151
  927. data/third_party/boringssl/include/openssl/newhope.h +0 -158
  928. data/third_party/boringssl/include/openssl/time_support.h +0 -91
@@ -60,6 +60,8 @@
60
60
 
61
61
  #include <openssl/mem.h>
62
62
 
63
+ #include "../internal.h"
64
+
63
65
 
64
66
  uint8_t *MD5(const uint8_t *data, size_t len, uint8_t *out) {
65
67
  MD5_CTX ctx;
@@ -78,7 +80,7 @@ uint8_t *MD5(const uint8_t *data, size_t len, uint8_t *out) {
78
80
  }
79
81
 
80
82
  int MD5_Init(MD5_CTX *md5) {
81
- memset(md5, 0, sizeof(MD5_CTX));
83
+ OPENSSL_memset(md5, 0, sizeof(MD5_CTX));
82
84
  md5->h[0] = 0x67452301UL;
83
85
  md5->h[1] = 0xefcdab89UL;
84
86
  md5->h[2] = 0x98badcfeUL;
@@ -122,32 +124,40 @@ void md5_block_data_order(uint32_t *state, const uint8_t *data, size_t num);
122
124
  * simplified to the code below. Wei attributes these optimizations
123
125
  * to Peter Gutmann's SHS code, and he attributes it to Rich Schroeppel.
124
126
  */
125
- #define F(b,c,d) ((((c) ^ (d)) & (b)) ^ (d))
126
- #define G(b,c,d) ((((b) ^ (c)) & (d)) ^ (c))
127
- #define H(b,c,d) ((b) ^ (c) ^ (d))
128
- #define I(b,c,d) (((~(d)) | (b)) ^ (c))
127
+ #define F(b, c, d) ((((c) ^ (d)) & (b)) ^ (d))
128
+ #define G(b, c, d) ((((b) ^ (c)) & (d)) ^ (c))
129
+ #define H(b, c, d) ((b) ^ (c) ^ (d))
130
+ #define I(b, c, d) (((~(d)) | (b)) ^ (c))
129
131
 
130
132
  #define ROTATE(a, n) (((a) << (n)) | ((a) >> (32 - (n))))
131
133
 
132
- #define R0(a,b,c,d,k,s,t) { \
133
- a+=((k)+(t)+F((b),(c),(d))); \
134
- a=ROTATE(a,s); \
135
- a+=b; };\
134
+ #define R0(a, b, c, d, k, s, t) \
135
+ do { \
136
+ (a) += ((k) + (t) + F((b), (c), (d))); \
137
+ (a) = ROTATE(a, s); \
138
+ (a) += (b); \
139
+ } while (0)
136
140
 
137
- #define R1(a,b,c,d,k,s,t) { \
138
- a+=((k)+(t)+G((b),(c),(d))); \
139
- a=ROTATE(a,s); \
140
- a+=b; };
141
+ #define R1(a, b, c, d, k, s, t) \
142
+ do { \
143
+ (a) += ((k) + (t) + G((b), (c), (d))); \
144
+ (a) = ROTATE(a, s); \
145
+ (a) += (b); \
146
+ } while (0)
141
147
 
142
- #define R2(a,b,c,d,k,s,t) { \
143
- a+=((k)+(t)+H((b),(c),(d))); \
144
- a=ROTATE(a,s); \
145
- a+=b; };
148
+ #define R2(a, b, c, d, k, s, t) \
149
+ do { \
150
+ (a) += ((k) + (t) + H((b), (c), (d))); \
151
+ (a) = ROTATE(a, s); \
152
+ (a) += (b); \
153
+ } while (0)
146
154
 
147
- #define R3(a,b,c,d,k,s,t) { \
148
- a+=((k)+(t)+I((b),(c),(d))); \
149
- a=ROTATE(a,s); \
150
- a+=b; };
155
+ #define R3(a, b, c, d, k, s, t) \
156
+ do { \
157
+ (a) += ((k) + (t) + I((b), (c), (d))); \
158
+ (a) = ROTATE(a, s); \
159
+ (a) += (b); \
160
+ } while (0)
151
161
 
152
162
  #ifndef md5_block_data_order
153
163
  #ifdef X
@@ -68,19 +68,13 @@
68
68
  #if defined(OPENSSL_WINDOWS)
69
69
  OPENSSL_MSVC_PRAGMA(warning(push, 3))
70
70
  #include <windows.h>
71
-
72
- /* Work around a clang-cl bug: SecureZeroMemory() below uses __stosb() but
73
- * windows.h only declares that intrinsic and then uses `#pragma intrinsic` for
74
- * it. clang-cl doesn't implement `#pragma intrinsic` yet; it instead defines
75
- * the function as an always-inline symbol in its intrin.h.
76
- * TODO(thakis): Remove this once http://llvm.org/PR19898 is fixed.
77
- */
78
- #include <intrin.h>
79
71
  OPENSSL_MSVC_PRAGMA(warning(pop))
80
72
  #else
81
73
  #include <strings.h>
82
74
  #endif
83
75
 
76
+ #include "internal.h"
77
+
84
78
 
85
79
  void *OPENSSL_realloc_clean(void *ptr, size_t old_size, size_t new_size) {
86
80
  if (ptr == NULL) {
@@ -102,7 +96,7 @@ void *OPENSSL_realloc_clean(void *ptr, size_t old_size, size_t new_size) {
102
96
  return NULL;
103
97
  }
104
98
 
105
- memcpy(ret, ptr, old_size);
99
+ OPENSSL_memcpy(ret, ptr, old_size);
106
100
  OPENSSL_cleanse(ptr, old_size);
107
101
  OPENSSL_free(ptr);
108
102
  return ret;
@@ -112,7 +106,7 @@ void OPENSSL_cleanse(void *ptr, size_t len) {
112
106
  #if defined(OPENSSL_WINDOWS)
113
107
  SecureZeroMemory(ptr, len);
114
108
  #else
115
- memset(ptr, 0, len);
109
+ OPENSSL_memset(ptr, 0, len);
116
110
 
117
111
  #if !defined(OPENSSL_NO_ASM)
118
112
  /* As best as we can tell, this is sufficient to break any optimisations that
@@ -52,10 +52,6 @@
52
52
  #include "internal.h"
53
53
 
54
54
 
55
- #ifndef STRICT_ALIGNMENT
56
- # define STRICT_ALIGNMENT 0
57
- #endif
58
-
59
55
  void CRYPTO_cbc128_encrypt(const uint8_t *in, uint8_t *out, size_t len,
60
56
  const void *key, uint8_t ivec[16],
61
57
  block128_f block) {
@@ -107,7 +103,7 @@ void CRYPTO_cbc128_encrypt(const uint8_t *in, uint8_t *out, size_t len,
107
103
  out += 16;
108
104
  }
109
105
 
110
- memcpy(ivec, iv, 16);
106
+ OPENSSL_memcpy(ivec, iv, 16);
111
107
  }
112
108
 
113
109
  void CRYPTO_cbc128_decrypt(const uint8_t *in, uint8_t *out, size_t len,
@@ -158,7 +154,7 @@ void CRYPTO_cbc128_decrypt(const uint8_t *in, uint8_t *out, size_t len,
158
154
  out += 16;
159
155
  }
160
156
  }
161
- memcpy(ivec, iv, 16);
157
+ OPENSSL_memcpy(ivec, iv, 16);
162
158
  } else {
163
159
  /* |out| is less than two blocks behind |in|. Decrypting an input block
164
160
  * directly to |out| would overwrite a ciphertext block before it is used as
@@ -167,7 +167,7 @@ static void cfbr_encrypt_block(const uint8_t *in, uint8_t *out, unsigned nbits,
167
167
  }
168
168
 
169
169
  /* fill in the first half of the new IV with the current IV */
170
- memcpy(ovec, ivec, 16);
170
+ OPENSSL_memcpy(ovec, ivec, 16);
171
171
  /* construct the new IV */
172
172
  (*block)(ivec, ivec, key);
173
173
  num = (nbits + 7) / 8;
@@ -186,7 +186,7 @@ static void cfbr_encrypt_block(const uint8_t *in, uint8_t *out, unsigned nbits,
186
186
  rem = nbits % 8;
187
187
  num = nbits / 8;
188
188
  if (rem == 0) {
189
- memcpy(ivec, ovec + num, 16);
189
+ OPENSSL_memcpy(ivec, ovec + num, 16);
190
190
  } else {
191
191
  for (n = 0; n < 16; ++n) {
192
192
  ivec[n] = ovec[n + num] << rem | ovec[n + num + 1] >> (8 - rem);
@@ -202,7 +202,7 @@ void CRYPTO_ctr128_encrypt_ctr32(const uint8_t *in, uint8_t *out,
202
202
  in += blocks;
203
203
  }
204
204
  if (len) {
205
- memset(ecount_buf, 0, 16);
205
+ OPENSSL_memset(ecount_buf, 0, 16);
206
206
  (*func)(ecount_buf, ecount_buf, 1, key, ivec);
207
207
  ++ctr32;
208
208
  PUTU32(ivec + 12, ctr32);
@@ -65,26 +65,18 @@
65
65
  #define GHASH_ASM
66
66
  #endif
67
67
 
68
- #if defined(BSWAP4) && STRICT_ALIGNMENT == 1
69
- /* redefine, because alignment is ensured */
70
- #undef GETU32
71
- #define GETU32(p) BSWAP4(*(const uint32_t *)(p))
72
- #undef PUTU32
73
- #define PUTU32(p, v) *(uint32_t *)(p) = BSWAP4(v)
74
- #endif
75
-
76
68
  #define PACK(s) ((size_t)(s) << (sizeof(size_t) * 8 - 16))
77
- #define REDUCE1BIT(V) \
78
- do { \
79
- if (sizeof(size_t) == 8) { \
80
- uint64_t T = UINT64_C(0xe100000000000000) & (0 - (V.lo & 1)); \
81
- V.lo = (V.hi << 63) | (V.lo >> 1); \
82
- V.hi = (V.hi >> 1) ^ T; \
83
- } else { \
84
- uint32_t T = 0xe1000000U & (0 - (uint32_t)(V.lo & 1)); \
85
- V.lo = (V.hi << 63) | (V.lo >> 1); \
86
- V.hi = (V.hi >> 1) ^ ((uint64_t)T << 32); \
87
- } \
69
+ #define REDUCE1BIT(V) \
70
+ do { \
71
+ if (sizeof(size_t) == 8) { \
72
+ uint64_t T = UINT64_C(0xe100000000000000) & (0 - ((V).lo & 1)); \
73
+ (V).lo = ((V).hi << 63) | ((V).lo >> 1); \
74
+ (V).hi = ((V).hi >> 1) ^ T; \
75
+ } else { \
76
+ uint32_t T = 0xe1000000U & (0 - (uint32_t)((V).lo & 1)); \
77
+ (V).lo = ((V).hi << 63) | ((V).lo >> 1); \
78
+ (V).hi = ((V).hi >> 1) ^ ((uint64_t)T << 32); \
79
+ } \
88
80
  } while (0)
89
81
 
90
82
  // kSizeTWithoutLower4Bits is a mask that can be used to zero the lower four
@@ -121,27 +113,10 @@ static void gcm_init_4bit(u128 Htable[16], uint64_t H[2]) {
121
113
  Htable[15].hi = V.hi ^ Htable[7].hi, Htable[15].lo = V.lo ^ Htable[7].lo;
122
114
 
123
115
  #if defined(GHASH_ASM) && defined(OPENSSL_ARM)
124
- /* ARM assembler expects specific dword order in Htable. */
125
- {
126
- int j;
127
- const union {
128
- long one;
129
- char little;
130
- } is_endian = {1};
131
-
132
- if (is_endian.little) {
133
- for (j = 0; j < 16; ++j) {
134
- V = Htable[j];
135
- Htable[j].hi = V.lo;
136
- Htable[j].lo = V.hi;
137
- }
138
- } else {
139
- for (j = 0; j < 16; ++j) {
140
- V = Htable[j];
141
- Htable[j].hi = V.lo << 32 | V.lo >> 32;
142
- Htable[j].lo = V.hi << 32 | V.hi >> 32;
143
- }
144
- }
116
+ for (int j = 0; j < 16; ++j) {
117
+ V = Htable[j];
118
+ Htable[j].hi = V.lo;
119
+ Htable[j].lo = V.hi;
145
120
  }
146
121
  #endif
147
122
  }
@@ -157,10 +132,6 @@ static void gcm_gmult_4bit(uint64_t Xi[2], const u128 Htable[16]) {
157
132
  u128 Z;
158
133
  int cnt = 15;
159
134
  size_t rem, nlo, nhi;
160
- const union {
161
- long one;
162
- char little;
163
- } is_endian = {1};
164
135
 
165
136
  nlo = ((const uint8_t *)Xi)[15];
166
137
  nhi = nlo >> 4;
@@ -203,26 +174,8 @@ static void gcm_gmult_4bit(uint64_t Xi[2], const u128 Htable[16]) {
203
174
  Z.lo ^= Htable[nlo].lo;
204
175
  }
205
176
 
206
- if (is_endian.little) {
207
- #ifdef BSWAP8
208
- Xi[0] = BSWAP8(Z.hi);
209
- Xi[1] = BSWAP8(Z.lo);
210
- #else
211
- uint8_t *p = (uint8_t *)Xi;
212
- uint32_t v;
213
- v = (uint32_t)(Z.hi >> 32);
214
- PUTU32(p, v);
215
- v = (uint32_t)(Z.hi);
216
- PUTU32(p + 4, v);
217
- v = (uint32_t)(Z.lo >> 32);
218
- PUTU32(p + 8, v);
219
- v = (uint32_t)(Z.lo);
220
- PUTU32(p + 12, v);
221
- #endif
222
- } else {
223
- Xi[0] = Z.hi;
224
- Xi[1] = Z.lo;
225
- }
177
+ Xi[0] = CRYPTO_bswap8(Z.hi);
178
+ Xi[1] = CRYPTO_bswap8(Z.lo);
226
179
  }
227
180
 
228
181
  /* Streamed gcm_mult_4bit, see CRYPTO_gcm128_[en|de]crypt for
@@ -230,15 +183,11 @@ static void gcm_gmult_4bit(uint64_t Xi[2], const u128 Htable[16]) {
230
183
  * performance improvement, at least not on x86[_64]. It's here
231
184
  * mostly as reference and a placeholder for possible future
232
185
  * non-trivial optimization[s]... */
233
- static void gcm_ghash_4bit(uint64_t Xi[2], const u128 Htable[16], const uint8_t *inp,
234
- size_t len) {
186
+ static void gcm_ghash_4bit(uint64_t Xi[2], const u128 Htable[16],
187
+ const uint8_t *inp, size_t len) {
235
188
  u128 Z;
236
189
  int cnt;
237
190
  size_t rem, nlo, nhi;
238
- const union {
239
- long one;
240
- char little;
241
- } is_endian = {1};
242
191
 
243
192
  do {
244
193
  cnt = 15;
@@ -285,26 +234,8 @@ static void gcm_ghash_4bit(uint64_t Xi[2], const u128 Htable[16], const uint8_t
285
234
  Z.lo ^= Htable[nlo].lo;
286
235
  }
287
236
 
288
- if (is_endian.little) {
289
- #ifdef BSWAP8
290
- Xi[0] = BSWAP8(Z.hi);
291
- Xi[1] = BSWAP8(Z.lo);
292
- #else
293
- uint8_t *p = (uint8_t *)Xi;
294
- uint32_t v;
295
- v = (uint32_t)(Z.hi >> 32);
296
- PUTU32(p, v);
297
- v = (uint32_t)(Z.hi);
298
- PUTU32(p + 4, v);
299
- v = (uint32_t)(Z.lo >> 32);
300
- PUTU32(p + 8, v);
301
- v = (uint32_t)(Z.lo);
302
- PUTU32(p + 12, v);
303
- #endif
304
- } else {
305
- Xi[0] = Z.hi;
306
- Xi[1] = Z.lo;
307
- }
237
+ Xi[0] = CRYPTO_bswap8(Z.hi);
238
+ Xi[1] = CRYPTO_bswap8(Z.lo);
308
239
  } while (inp += 16, len -= 16);
309
240
  }
310
241
  #else /* GHASH_ASM */
@@ -313,7 +244,7 @@ void gcm_ghash_4bit(uint64_t Xi[2], const u128 Htable[16], const uint8_t *inp,
313
244
  size_t len);
314
245
  #endif
315
246
 
316
- #define GCM_MUL(ctx, Xi) gcm_gmult_4bit(ctx->Xi.u, ctx->Htable)
247
+ #define GCM_MUL(ctx, Xi) gcm_gmult_4bit((ctx)->Xi.u, (ctx)->Htable)
317
248
  #if defined(GHASH_ASM)
318
249
  #define GHASH(ctx, in, len) gcm_ghash_4bit((ctx)->Xi.u, (ctx)->Htable, in, len)
319
250
  /* GHASH_CHUNK is "stride parameter" missioned to mitigate cache
@@ -324,19 +255,16 @@ void gcm_ghash_4bit(uint64_t Xi[2], const u128 Htable[16], const uint8_t *inp,
324
255
 
325
256
 
326
257
  #if defined(GHASH_ASM)
258
+
327
259
  #if defined(OPENSSL_X86) || defined(OPENSSL_X86_64)
328
- #define GHASH_ASM_X86_OR_64
329
260
  #define GCM_FUNCREF_4BIT
330
261
  void gcm_init_clmul(u128 Htable[16], const uint64_t Xi[2]);
331
262
  void gcm_gmult_clmul(uint64_t Xi[2], const u128 Htable[16]);
332
263
  void gcm_ghash_clmul(uint64_t Xi[2], const u128 Htable[16], const uint8_t *inp,
333
264
  size_t len);
334
265
 
335
- #if defined(OPENSSL_X86)
336
- #define gcm_init_avx gcm_init_clmul
337
- #define gcm_gmult_avx gcm_gmult_clmul
338
- #define gcm_ghash_avx gcm_ghash_clmul
339
- #else
266
+ #if defined(OPENSSL_X86_64)
267
+ #define GHASH_ASM_X86_64
340
268
  void gcm_init_avx(u128 Htable[16], const uint64_t Xi[2]);
341
269
  void gcm_gmult_avx(uint64_t Xi[2], const u128 Htable[16]);
342
270
  void gcm_ghash_avx(uint64_t Xi[2], const u128 Htable[16], const uint8_t *in,
@@ -358,11 +286,8 @@ size_t aesni_gcm_decrypt(const uint8_t *in, uint8_t *out, size_t len,
358
286
  void gcm_gmult_4bit_mmx(uint64_t Xi[2], const u128 Htable[16]);
359
287
  void gcm_ghash_4bit_mmx(uint64_t Xi[2], const u128 Htable[16], const uint8_t *inp,
360
288
  size_t len);
361
-
362
- void gcm_gmult_4bit_x86(uint64_t Xi[2], const u128 Htable[16]);
363
- void gcm_ghash_4bit_x86(uint64_t Xi[2], const u128 Htable[16], const uint8_t *inp,
364
- size_t len);
365
289
  #endif
290
+
366
291
  #elif defined(OPENSSL_ARM) || defined(OPENSSL_AARCH64)
367
292
  #include <openssl/arm_arch.h>
368
293
  #if __ARM_ARCH__ >= 7
@@ -418,103 +343,96 @@ void gcm_ghash_p8(uint64_t Xi[2], const u128 Htable[16], const uint8_t *inp,
418
343
 
419
344
  #ifdef GCM_FUNCREF_4BIT
420
345
  #undef GCM_MUL
421
- #define GCM_MUL(ctx, Xi) (*gcm_gmult_p)(ctx->Xi.u, ctx->Htable)
346
+ #define GCM_MUL(ctx, Xi) (*gcm_gmult_p)((ctx)->Xi.u, (ctx)->Htable)
422
347
  #ifdef GHASH
423
348
  #undef GHASH
424
- #define GHASH(ctx, in, len) (*gcm_ghash_p)(ctx->Xi.u, ctx->Htable, in, len)
349
+ #define GHASH(ctx, in, len) (*gcm_ghash_p)((ctx)->Xi.u, (ctx)->Htable, in, len)
425
350
  #endif
426
351
  #endif
427
352
 
428
- void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx, const void *key,
429
- block128_f block) {
430
- const union {
431
- long one;
432
- char little;
433
- } is_endian = {1};
353
+ void CRYPTO_ghash_init(gmult_func *out_mult, ghash_func *out_hash,
354
+ u128 *out_key, u128 out_table[16],
355
+ const uint8_t *gcm_key) {
356
+ union {
357
+ uint64_t u[2];
358
+ uint8_t c[16];
359
+ } H;
434
360
 
435
- memset(ctx, 0, sizeof(*ctx));
436
- ctx->block = block;
361
+ OPENSSL_memcpy(H.c, gcm_key, 16);
437
362
 
438
- (*block)(ctx->H.c, ctx->H.c, key);
363
+ /* H is stored in host byte order */
364
+ H.u[0] = CRYPTO_bswap8(H.u[0]);
365
+ H.u[1] = CRYPTO_bswap8(H.u[1]);
439
366
 
440
- if (is_endian.little) {
441
- /* H is stored in host byte order */
442
- #ifdef BSWAP8
443
- ctx->H.u[0] = BSWAP8(ctx->H.u[0]);
444
- ctx->H.u[1] = BSWAP8(ctx->H.u[1]);
445
- #else
446
- uint8_t *p = ctx->H.c;
447
- uint64_t hi, lo;
448
- hi = (uint64_t)GETU32(p) << 32 | GETU32(p + 4);
449
- lo = (uint64_t)GETU32(p + 8) << 32 | GETU32(p + 12);
450
- ctx->H.u[0] = hi;
451
- ctx->H.u[1] = lo;
452
- #endif
453
- }
367
+ OPENSSL_memcpy(out_key, H.c, 16);
454
368
 
455
- #if defined(GHASH_ASM_X86_OR_64)
369
+ #if defined(GHASH_ASM_X86_64)
456
370
  if (crypto_gcm_clmul_enabled()) {
457
371
  if (((OPENSSL_ia32cap_P[1] >> 22) & 0x41) == 0x41) { /* AVX+MOVBE */
458
- gcm_init_avx(ctx->Htable, ctx->H.u);
459
- ctx->gmult = gcm_gmult_avx;
460
- ctx->ghash = gcm_ghash_avx;
461
- } else {
462
- gcm_init_clmul(ctx->Htable, ctx->H.u);
463
- ctx->gmult = gcm_gmult_clmul;
464
- ctx->ghash = gcm_ghash_clmul;
372
+ gcm_init_avx(out_table, H.u);
373
+ *out_mult = gcm_gmult_avx;
374
+ *out_hash = gcm_ghash_avx;
375
+ return;
465
376
  }
377
+ gcm_init_clmul(out_table, H.u);
378
+ *out_mult = gcm_gmult_clmul;
379
+ *out_hash = gcm_ghash_clmul;
466
380
  return;
467
381
  }
468
- gcm_init_4bit(ctx->Htable, ctx->H.u);
469
- #if defined(GHASH_ASM_X86) /* x86 only */
470
- if (OPENSSL_ia32cap_P[0] & (1 << 25)) { /* check SSE bit */
471
- ctx->gmult = gcm_gmult_4bit_mmx;
472
- ctx->ghash = gcm_ghash_4bit_mmx;
473
- } else {
474
- ctx->gmult = gcm_gmult_4bit_x86;
475
- ctx->ghash = gcm_ghash_4bit_x86;
382
+ #elif defined(GHASH_ASM_X86)
383
+ if (crypto_gcm_clmul_enabled()) {
384
+ gcm_init_clmul(out_table, H.u);
385
+ *out_mult = gcm_gmult_clmul;
386
+ *out_hash = gcm_ghash_clmul;
387
+ return;
476
388
  }
477
- #else
478
- ctx->gmult = gcm_gmult_4bit;
479
- ctx->ghash = gcm_ghash_4bit;
480
- #endif
481
389
  #elif defined(GHASH_ASM_ARM)
482
390
  if (pmull_capable()) {
483
- gcm_init_v8(ctx->Htable, ctx->H.u);
484
- ctx->gmult = gcm_gmult_v8;
485
- ctx->ghash = gcm_ghash_v8;
486
- } else if (neon_capable()) {
487
- gcm_init_neon(ctx->Htable,ctx->H.u);
488
- ctx->gmult = gcm_gmult_neon;
489
- ctx->ghash = gcm_ghash_neon;
490
- } else {
491
- gcm_init_4bit(ctx->Htable, ctx->H.u);
492
- ctx->gmult = gcm_gmult_4bit;
493
- ctx->ghash = gcm_ghash_4bit;
391
+ gcm_init_v8(out_table, H.u);
392
+ *out_mult = gcm_gmult_v8;
393
+ *out_hash = gcm_ghash_v8;
394
+ return;
395
+ }
396
+
397
+ if (neon_capable()) {
398
+ gcm_init_neon(out_table, H.u);
399
+ *out_mult = gcm_gmult_neon;
400
+ *out_hash = gcm_ghash_neon;
401
+ return;
494
402
  }
495
403
  #elif defined(GHASH_ASM_PPC64LE)
496
404
  if (CRYPTO_is_PPC64LE_vcrypto_capable()) {
497
- gcm_init_p8(ctx->Htable, ctx->H.u);
498
- ctx->gmult = gcm_gmult_p8;
499
- ctx->ghash = gcm_ghash_p8;
500
- } else {
501
- gcm_init_4bit(ctx->Htable, ctx->H.u);
502
- ctx->gmult = gcm_gmult_4bit;
503
- ctx->ghash = gcm_ghash_4bit;
405
+ gcm_init_p8(out_table, H.u);
406
+ *out_mult = gcm_gmult_p8;
407
+ *out_hash = gcm_ghash_p8;
408
+ return;
504
409
  }
410
+ #endif
411
+
412
+ gcm_init_4bit(out_table, H.u);
413
+ #if defined(GHASH_ASM_X86)
414
+ *out_mult = gcm_gmult_4bit_mmx;
415
+ *out_hash = gcm_ghash_4bit_mmx;
505
416
  #else
506
- gcm_init_4bit(ctx->Htable, ctx->H.u);
507
- ctx->gmult = gcm_gmult_4bit;
508
- ctx->ghash = gcm_ghash_4bit;
417
+ *out_mult = gcm_gmult_4bit;
418
+ *out_hash = gcm_ghash_4bit;
509
419
  #endif
510
420
  }
511
421
 
422
+ void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx, const void *aes_key,
423
+ block128_f block) {
424
+ OPENSSL_memset(ctx, 0, sizeof(*ctx));
425
+ ctx->block = block;
426
+
427
+ uint8_t gcm_key[16];
428
+ OPENSSL_memset(gcm_key, 0, sizeof(gcm_key));
429
+ (*block)(gcm_key, gcm_key, aes_key);
430
+
431
+ CRYPTO_ghash_init(&ctx->gmult, &ctx->ghash, &ctx->H, ctx->Htable, gcm_key);
432
+ }
433
+
512
434
  void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const void *key,
513
435
  const uint8_t *iv, size_t len) {
514
- const union {
515
- long one;
516
- char little;
517
- } is_endian = {1};
518
436
  unsigned int ctr;
519
437
  #ifdef GCM_FUNCREF_4BIT
520
438
  void (*gcm_gmult_p)(uint64_t Xi[2], const u128 Htable[16]) = ctx->gmult;
@@ -530,7 +448,7 @@ void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const void *key,
530
448
  ctx->mres = 0;
531
449
 
532
450
  if (len == 12) {
533
- memcpy(ctx->Yi.c, iv, 12);
451
+ OPENSSL_memcpy(ctx->Yi.c, iv, 12);
534
452
  ctx->Yi.c[15] = 1;
535
453
  ctr = 1;
536
454
  } else {
@@ -551,39 +469,15 @@ void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const void *key,
551
469
  GCM_MUL(ctx, Yi);
552
470
  }
553
471
  len0 <<= 3;
554
- if (is_endian.little) {
555
- #ifdef BSWAP8
556
- ctx->Yi.u[1] ^= BSWAP8(len0);
557
- #else
558
- ctx->Yi.c[8] ^= (uint8_t)(len0 >> 56);
559
- ctx->Yi.c[9] ^= (uint8_t)(len0 >> 48);
560
- ctx->Yi.c[10] ^= (uint8_t)(len0 >> 40);
561
- ctx->Yi.c[11] ^= (uint8_t)(len0 >> 32);
562
- ctx->Yi.c[12] ^= (uint8_t)(len0 >> 24);
563
- ctx->Yi.c[13] ^= (uint8_t)(len0 >> 16);
564
- ctx->Yi.c[14] ^= (uint8_t)(len0 >> 8);
565
- ctx->Yi.c[15] ^= (uint8_t)(len0);
566
- #endif
567
- } else {
568
- ctx->Yi.u[1] ^= len0;
569
- }
472
+ ctx->Yi.u[1] ^= CRYPTO_bswap8(len0);
570
473
 
571
474
  GCM_MUL(ctx, Yi);
572
-
573
- if (is_endian.little) {
574
- ctr = GETU32(ctx->Yi.c + 12);
575
- } else {
576
- ctr = ctx->Yi.d[3];
577
- }
475
+ ctr = GETU32_aligned(ctx->Yi.c + 12);
578
476
  }
579
477
 
580
478
  (*ctx->block)(ctx->Yi.c, ctx->EK0.c, key);
581
479
  ++ctr;
582
- if (is_endian.little) {
583
- PUTU32(ctx->Yi.c + 12, ctr);
584
- } else {
585
- ctx->Yi.d[3] = ctr;
586
- }
480
+ PUTU32_aligned(ctx->Yi.c + 12, ctr);
587
481
  }
588
482
 
589
483
  int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const uint8_t *aad, size_t len) {
@@ -656,10 +550,6 @@ int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const uint8_t *aad, size_t len) {
656
550
  int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, const void *key,
657
551
  const unsigned char *in, unsigned char *out,
658
552
  size_t len) {
659
- const union {
660
- long one;
661
- char little;
662
- } is_endian = {1};
663
553
  unsigned int n, ctr;
664
554
  uint64_t mlen = ctx->len.u[1];
665
555
  block128_f block = ctx->block;
@@ -684,11 +574,7 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, const void *key,
684
574
  ctx->ares = 0;
685
575
  }
686
576
 
687
- if (is_endian.little) {
688
- ctr = GETU32(ctx->Yi.c + 12);
689
- } else {
690
- ctr = ctx->Yi.d[3];
691
- }
577
+ ctr = GETU32_aligned(ctx->Yi.c + 12);
692
578
 
693
579
  n = ctx->mres;
694
580
  if (n) {
@@ -709,11 +595,7 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, const void *key,
709
595
  if (n == 0) {
710
596
  (*block)(ctx->Yi.c, ctx->EKi.c, key);
711
597
  ++ctr;
712
- if (is_endian.little) {
713
- PUTU32(ctx->Yi.c + 12, ctr);
714
- } else {
715
- ctx->Yi.d[3] = ctr;
716
- }
598
+ PUTU32_aligned(ctx->Yi.c + 12, ctr);
717
599
  }
718
600
  ctx->Xi.c[n] ^= out[i] = in[i] ^ ctx->EKi.c[n];
719
601
  n = (n + 1) % 16;
@@ -735,11 +617,7 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, const void *key,
735
617
 
736
618
  (*block)(ctx->Yi.c, ctx->EKi.c, key);
737
619
  ++ctr;
738
- if (is_endian.little) {
739
- PUTU32(ctx->Yi.c + 12, ctr);
740
- } else {
741
- ctx->Yi.d[3] = ctr;
742
- }
620
+ PUTU32_aligned(ctx->Yi.c + 12, ctr);
743
621
  for (size_t i = 0; i < 16 / sizeof(size_t); ++i) {
744
622
  out_t[i] = in_t[i] ^ ctx->EKi.t[i];
745
623
  }
@@ -758,11 +636,7 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, const void *key,
758
636
 
759
637
  (*block)(ctx->Yi.c, ctx->EKi.c, key);
760
638
  ++ctr;
761
- if (is_endian.little) {
762
- PUTU32(ctx->Yi.c + 12, ctr);
763
- } else {
764
- ctx->Yi.d[3] = ctr;
765
- }
639
+ PUTU32_aligned(ctx->Yi.c + 12, ctr);
766
640
  for (size_t i = 0; i < 16 / sizeof(size_t); ++i) {
767
641
  out_t[i] = in_t[i] ^ ctx->EKi.t[i];
768
642
  }
@@ -779,11 +653,7 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, const void *key,
779
653
 
780
654
  (*block)(ctx->Yi.c, ctx->EKi.c, key);
781
655
  ++ctr;
782
- if (is_endian.little) {
783
- PUTU32(ctx->Yi.c + 12, ctr);
784
- } else {
785
- ctx->Yi.d[3] = ctr;
786
- }
656
+ PUTU32_aligned(ctx->Yi.c + 12, ctr);
787
657
  for (size_t i = 0; i < 16 / sizeof(size_t); ++i) {
788
658
  ctx->Xi.t[i] ^= out_t[i] = in_t[i] ^ ctx->EKi.t[i];
789
659
  }
@@ -796,11 +666,7 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, const void *key,
796
666
  if (len) {
797
667
  (*block)(ctx->Yi.c, ctx->EKi.c, key);
798
668
  ++ctr;
799
- if (is_endian.little) {
800
- PUTU32(ctx->Yi.c + 12, ctr);
801
- } else {
802
- ctx->Yi.d[3] = ctr;
803
- }
669
+ PUTU32_aligned(ctx->Yi.c + 12, ctr);
804
670
  while (len--) {
805
671
  ctx->Xi.c[n] ^= out[n] = in[n] ^ ctx->EKi.c[n];
806
672
  ++n;
@@ -814,10 +680,6 @@ int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, const void *key,
814
680
  int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, const void *key,
815
681
  const unsigned char *in, unsigned char *out,
816
682
  size_t len) {
817
- const union {
818
- long one;
819
- char little;
820
- } is_endian = {1};
821
683
  unsigned int n, ctr;
822
684
  uint64_t mlen = ctx->len.u[1];
823
685
  block128_f block = ctx->block;
@@ -842,11 +704,7 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, const void *key,
842
704
  ctx->ares = 0;
843
705
  }
844
706
 
845
- if (is_endian.little) {
846
- ctr = GETU32(ctx->Yi.c + 12);
847
- } else {
848
- ctr = ctx->Yi.d[3];
849
- }
707
+ ctr = GETU32_aligned(ctx->Yi.c + 12);
850
708
 
851
709
  n = ctx->mres;
852
710
  if (n) {
@@ -870,11 +728,7 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, const void *key,
870
728
  if (n == 0) {
871
729
  (*block)(ctx->Yi.c, ctx->EKi.c, key);
872
730
  ++ctr;
873
- if (is_endian.little) {
874
- PUTU32(ctx->Yi.c + 12, ctr);
875
- } else {
876
- ctx->Yi.d[3] = ctr;
877
- }
731
+ PUTU32_aligned(ctx->Yi.c + 12, ctr);
878
732
  }
879
733
  c = in[i];
880
734
  out[i] = c ^ ctx->EKi.c[n];
@@ -899,11 +753,7 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, const void *key,
899
753
 
900
754
  (*block)(ctx->Yi.c, ctx->EKi.c, key);
901
755
  ++ctr;
902
- if (is_endian.little) {
903
- PUTU32(ctx->Yi.c + 12, ctr);
904
- } else {
905
- ctx->Yi.d[3] = ctr;
906
- }
756
+ PUTU32_aligned(ctx->Yi.c + 12, ctr);
907
757
  for (size_t i = 0; i < 16 / sizeof(size_t); ++i) {
908
758
  out_t[i] = in_t[i] ^ ctx->EKi.t[i];
909
759
  }
@@ -922,11 +772,7 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, const void *key,
922
772
 
923
773
  (*block)(ctx->Yi.c, ctx->EKi.c, key);
924
774
  ++ctr;
925
- if (is_endian.little) {
926
- PUTU32(ctx->Yi.c + 12, ctr);
927
- } else {
928
- ctx->Yi.d[3] = ctr;
929
- }
775
+ PUTU32_aligned(ctx->Yi.c + 12, ctr);
930
776
  for (size_t i = 0; i < 16 / sizeof(size_t); ++i) {
931
777
  out_t[i] = in_t[i] ^ ctx->EKi.t[i];
932
778
  }
@@ -942,11 +788,7 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, const void *key,
942
788
 
943
789
  (*block)(ctx->Yi.c, ctx->EKi.c, key);
944
790
  ++ctr;
945
- if (is_endian.little) {
946
- PUTU32(ctx->Yi.c + 12, ctr);
947
- } else {
948
- ctx->Yi.d[3] = ctr;
949
- }
791
+ PUTU32_aligned(ctx->Yi.c + 12, ctr);
950
792
  for (size_t i = 0; i < 16 / sizeof(size_t); ++i) {
951
793
  size_t c = in_t[i];
952
794
  out_t[i] = c ^ ctx->EKi.t[i];
@@ -961,11 +803,7 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, const void *key,
961
803
  if (len) {
962
804
  (*block)(ctx->Yi.c, ctx->EKi.c, key);
963
805
  ++ctr;
964
- if (is_endian.little) {
965
- PUTU32(ctx->Yi.c + 12, ctr);
966
- } else {
967
- ctx->Yi.d[3] = ctr;
968
- }
806
+ PUTU32_aligned(ctx->Yi.c + 12, ctr);
969
807
  while (len--) {
970
808
  uint8_t c = in[n];
971
809
  ctx->Xi.c[n] ^= c;
@@ -981,10 +819,6 @@ int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, const void *key,
981
819
  int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
982
820
  const uint8_t *in, uint8_t *out, size_t len,
983
821
  ctr128_f stream) {
984
- const union {
985
- long one;
986
- char little;
987
- } is_endian = {1};
988
822
  unsigned int n, ctr;
989
823
  uint64_t mlen = ctx->len.u[1];
990
824
  #ifdef GCM_FUNCREF_4BIT
@@ -1034,21 +868,13 @@ int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
1034
868
  }
1035
869
  #endif
1036
870
 
1037
- if (is_endian.little) {
1038
- ctr = GETU32(ctx->Yi.c + 12);
1039
- } else {
1040
- ctr = ctx->Yi.d[3];
1041
- }
871
+ ctr = GETU32_aligned(ctx->Yi.c + 12);
1042
872
 
1043
873
  #if defined(GHASH)
1044
874
  while (len >= GHASH_CHUNK) {
1045
875
  (*stream)(in, out, GHASH_CHUNK / 16, key, ctx->Yi.c);
1046
876
  ctr += GHASH_CHUNK / 16;
1047
- if (is_endian.little) {
1048
- PUTU32(ctx->Yi.c + 12, ctr);
1049
- } else {
1050
- ctx->Yi.d[3] = ctr;
1051
- }
877
+ PUTU32_aligned(ctx->Yi.c + 12, ctr);
1052
878
  GHASH(ctx, out, GHASH_CHUNK);
1053
879
  out += GHASH_CHUNK;
1054
880
  in += GHASH_CHUNK;
@@ -1061,11 +887,7 @@ int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
1061
887
 
1062
888
  (*stream)(in, out, j, key, ctx->Yi.c);
1063
889
  ctr += (unsigned int)j;
1064
- if (is_endian.little) {
1065
- PUTU32(ctx->Yi.c + 12, ctr);
1066
- } else {
1067
- ctx->Yi.d[3] = ctr;
1068
- }
890
+ PUTU32_aligned(ctx->Yi.c + 12, ctr);
1069
891
  in += i;
1070
892
  len -= i;
1071
893
  #if defined(GHASH)
@@ -1084,11 +906,7 @@ int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
1084
906
  if (len) {
1085
907
  (*ctx->block)(ctx->Yi.c, ctx->EKi.c, key);
1086
908
  ++ctr;
1087
- if (is_endian.little) {
1088
- PUTU32(ctx->Yi.c + 12, ctr);
1089
- } else {
1090
- ctx->Yi.d[3] = ctr;
1091
- }
909
+ PUTU32_aligned(ctx->Yi.c + 12, ctr);
1092
910
  while (len--) {
1093
911
  ctx->Xi.c[n] ^= out[n] = in[n] ^ ctx->EKi.c[n];
1094
912
  ++n;
@@ -1102,10 +920,6 @@ int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
1102
920
  int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
1103
921
  const uint8_t *in, uint8_t *out, size_t len,
1104
922
  ctr128_f stream) {
1105
- const union {
1106
- long one;
1107
- char little;
1108
- } is_endian = {1};
1109
923
  unsigned int n, ctr;
1110
924
  uint64_t mlen = ctx->len.u[1];
1111
925
  #ifdef GCM_FUNCREF_4BIT
@@ -1157,22 +971,14 @@ int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
1157
971
  }
1158
972
  #endif
1159
973
 
1160
- if (is_endian.little) {
1161
- ctr = GETU32(ctx->Yi.c + 12);
1162
- } else {
1163
- ctr = ctx->Yi.d[3];
1164
- }
974
+ ctr = GETU32_aligned(ctx->Yi.c + 12);
1165
975
 
1166
976
  #if defined(GHASH)
1167
977
  while (len >= GHASH_CHUNK) {
1168
978
  GHASH(ctx, in, GHASH_CHUNK);
1169
979
  (*stream)(in, out, GHASH_CHUNK / 16, key, ctx->Yi.c);
1170
980
  ctr += GHASH_CHUNK / 16;
1171
- if (is_endian.little) {
1172
- PUTU32(ctx->Yi.c + 12, ctr);
1173
- } else {
1174
- ctx->Yi.d[3] = ctr;
1175
- }
981
+ PUTU32_aligned(ctx->Yi.c + 12, ctr);
1176
982
  out += GHASH_CHUNK;
1177
983
  in += GHASH_CHUNK;
1178
984
  len -= GHASH_CHUNK;
@@ -1198,11 +1004,7 @@ int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
1198
1004
  #endif
1199
1005
  (*stream)(in, out, j, key, ctx->Yi.c);
1200
1006
  ctr += (unsigned int)j;
1201
- if (is_endian.little) {
1202
- PUTU32(ctx->Yi.c + 12, ctr);
1203
- } else {
1204
- ctx->Yi.d[3] = ctr;
1205
- }
1007
+ PUTU32_aligned(ctx->Yi.c + 12, ctr);
1206
1008
  out += i;
1207
1009
  in += i;
1208
1010
  len -= i;
@@ -1210,11 +1012,7 @@ int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
1210
1012
  if (len) {
1211
1013
  (*ctx->block)(ctx->Yi.c, ctx->EKi.c, key);
1212
1014
  ++ctr;
1213
- if (is_endian.little) {
1214
- PUTU32(ctx->Yi.c + 12, ctr);
1215
- } else {
1216
- ctx->Yi.d[3] = ctr;
1217
- }
1015
+ PUTU32_aligned(ctx->Yi.c + 12, ctr);
1218
1016
  while (len--) {
1219
1017
  uint8_t c = in[n];
1220
1018
  ctx->Xi.c[n] ^= c;
@@ -1228,10 +1026,6 @@ int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, const void *key,
1228
1026
  }
1229
1027
 
1230
1028
  int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const uint8_t *tag, size_t len) {
1231
- const union {
1232
- long one;
1233
- char little;
1234
- } is_endian = {1};
1235
1029
  uint64_t alen = ctx->len.u[0] << 3;
1236
1030
  uint64_t clen = ctx->len.u[1] << 3;
1237
1031
  #ifdef GCM_FUNCREF_4BIT
@@ -1242,20 +1036,8 @@ int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const uint8_t *tag, size_t len) {
1242
1036
  GCM_MUL(ctx, Xi);
1243
1037
  }
1244
1038
 
1245
- if (is_endian.little) {
1246
- #ifdef BSWAP8
1247
- alen = BSWAP8(alen);
1248
- clen = BSWAP8(clen);
1249
- #else
1250
- uint8_t *p = ctx->len.c;
1251
-
1252
- ctx->len.u[0] = alen;
1253
- ctx->len.u[1] = clen;
1254
-
1255
- alen = (uint64_t)GETU32(p) << 32 | GETU32(p + 4);
1256
- clen = (uint64_t)GETU32(p + 8) << 32 | GETU32(p + 12);
1257
- #endif
1258
- }
1039
+ alen = CRYPTO_bswap8(alen);
1040
+ clen = CRYPTO_bswap8(clen);
1259
1041
 
1260
1042
  ctx->Xi.u[0] ^= alen;
1261
1043
  ctx->Xi.u[1] ^= clen;
@@ -1273,7 +1055,8 @@ int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const uint8_t *tag, size_t len) {
1273
1055
 
1274
1056
  void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len) {
1275
1057
  CRYPTO_gcm128_finish(ctx, NULL, 0);
1276
- memcpy(tag, ctx->Xi.c, len <= sizeof(ctx->Xi.c) ? len : sizeof(ctx->Xi.c));
1058
+ OPENSSL_memcpy(tag, ctx->Xi.c,
1059
+ len <= sizeof(ctx->Xi.c) ? len : sizeof(ctx->Xi.c));
1277
1060
  }
1278
1061
 
1279
1062
  #if defined(OPENSSL_X86) || defined(OPENSSL_X86_64)