grpc 1.9.1 → 1.10.0.pre1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (637) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +2654 -953
  3. data/etc/roots.pem +282 -683
  4. data/include/grpc/compression.h +9 -26
  5. data/include/grpc/grpc.h +10 -24
  6. data/include/grpc/grpc_security.h +7 -1
  7. data/include/grpc/impl/codegen/compression_types.h +5 -62
  8. data/include/grpc/impl/codegen/grpc_types.h +10 -6
  9. data/include/grpc/module.modulemap +1 -10
  10. data/include/grpc/support/alloc.h +3 -2
  11. data/include/grpc/support/log.h +1 -2
  12. data/{src/core/lib/gpr/thd_internal.h → include/grpc/support/thd_id.h} +23 -9
  13. data/src/boringssl/err_data.c +550 -496
  14. data/src/core/ext/census/grpc_context.cc +2 -1
  15. data/src/core/ext/filters/client_channel/backup_poller.cc +5 -4
  16. data/src/core/ext/filters/client_channel/channel_connectivity.cc +7 -7
  17. data/src/core/ext/filters/client_channel/client_channel.cc +162 -172
  18. data/src/core/ext/filters/client_channel/client_channel_factory.cc +4 -2
  19. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +10 -10
  20. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +18 -14
  21. data/src/core/ext/filters/client_channel/http_proxy.cc +3 -1
  22. data/src/core/ext/filters/client_channel/lb_policy.cc +21 -105
  23. data/src/core/ext/filters/client_channel/lb_policy.h +166 -170
  24. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +41 -36
  25. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1452 -1459
  26. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +3 -2
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +7 -8
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +27 -27
  30. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +279 -304
  31. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +358 -330
  32. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +30 -41
  33. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +7 -14
  34. data/src/core/ext/filters/client_channel/lb_policy_factory.cc +8 -21
  35. data/src/core/ext/filters/client_channel/lb_policy_factory.h +23 -27
  36. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +58 -33
  37. data/src/core/ext/filters/client_channel/lb_policy_registry.h +25 -12
  38. data/src/core/ext/filters/client_channel/parse_address.cc +10 -8
  39. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -2
  40. data/src/core/ext/filters/client_channel/resolver.cc +6 -52
  41. data/src/core/ext/filters/client_channel/resolver.h +98 -55
  42. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +266 -237
  43. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
  44. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +31 -27
  45. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +244 -207
  46. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +161 -148
  47. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +47 -31
  48. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +126 -126
  49. data/src/core/ext/filters/client_channel/resolver_factory.h +33 -32
  50. data/src/core/ext/filters/client_channel/resolver_registry.cc +110 -90
  51. data/src/core/ext/filters/client_channel/resolver_registry.h +49 -36
  52. data/src/core/ext/filters/client_channel/retry_throttle.cc +29 -22
  53. data/src/core/ext/filters/client_channel/subchannel.cc +173 -173
  54. data/src/core/ext/filters/client_channel/subchannel.h +38 -45
  55. data/src/core/ext/filters/client_channel/subchannel_index.cc +44 -40
  56. data/src/core/ext/filters/client_channel/uri_parser.cc +3 -3
  57. data/src/core/ext/filters/deadline/deadline_filter.cc +27 -18
  58. data/src/core/ext/filters/http/client/http_client_filter.cc +26 -23
  59. data/src/core/ext/filters/http/http_filters_plugin.cc +3 -2
  60. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +78 -110
  61. data/src/core/ext/filters/http/server/http_server_filter.cc +29 -26
  62. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +9 -11
  63. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +2 -1
  64. data/src/core/ext/filters/max_age/max_age_filter.cc +14 -14
  65. data/src/core/ext/filters/message_size/message_size_filter.cc +20 -18
  66. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -4
  67. data/src/core/ext/filters/workarounds/workaround_utils.cc +4 -4
  68. data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
  69. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +10 -10
  70. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +4 -4
  71. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +11 -12
  72. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +16 -13
  73. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +36 -9
  74. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +3 -0
  75. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +17 -14
  76. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -145
  77. data/src/core/ext/transport/chttp2/transport/flow_control.cc +16 -14
  78. data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -7
  79. data/src/core/ext/transport/chttp2/transport/frame_data.cc +35 -33
  80. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +27 -25
  81. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +12 -12
  82. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +16 -15
  83. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -19
  84. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +11 -11
  85. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +23 -22
  86. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +35 -35
  87. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +10 -7
  88. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +2 -2
  89. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  90. data/src/core/ext/transport/chttp2/transport/internal.h +1 -1
  91. data/src/core/ext/transport/chttp2/transport/parsing.cc +35 -39
  92. data/src/core/ext/transport/chttp2/transport/stream_map.cc +8 -7
  93. data/src/core/ext/transport/chttp2/transport/varint.cc +5 -5
  94. data/src/core/ext/transport/chttp2/transport/writing.cc +18 -18
  95. data/src/core/ext/transport/inproc/inproc_transport.cc +43 -23
  96. data/src/core/lib/{gpr → avl}/avl.cc +61 -57
  97. data/{include/grpc/support → src/core/lib/avl}/avl.h +25 -35
  98. data/src/core/lib/backoff/backoff.cc +6 -5
  99. data/src/core/lib/channel/channel_args.cc +23 -109
  100. data/src/core/lib/channel/channel_args.h +5 -31
  101. data/src/core/lib/channel/channel_stack.cc +11 -8
  102. data/src/core/lib/channel/channel_stack_builder.cc +10 -7
  103. data/src/core/lib/channel/connected_channel.cc +18 -17
  104. data/src/core/lib/channel/handshaker.cc +8 -8
  105. data/src/core/lib/channel/handshaker_registry.cc +3 -2
  106. data/src/core/lib/compression/algorithm_metadata.h +13 -6
  107. data/src/core/lib/compression/compression.cc +72 -183
  108. data/src/core/lib/compression/compression_internal.cc +274 -0
  109. data/src/core/lib/compression/compression_internal.h +86 -0
  110. data/src/core/lib/compression/message_compress.cc +15 -15
  111. data/src/core/lib/compression/message_compress.h +4 -3
  112. data/src/core/lib/compression/stream_compression_gzip.cc +8 -8
  113. data/src/core/lib/compression/stream_compression_identity.cc +1 -1
  114. data/src/core/lib/debug/stats.cc +10 -8
  115. data/src/core/lib/debug/stats_data.cc +2 -1
  116. data/src/core/lib/debug/trace.cc +3 -3
  117. data/src/core/lib/gpr/alloc.cc +7 -11
  118. data/src/core/lib/gpr/arena.cc +34 -12
  119. data/src/core/lib/gpr/atm.cc +2 -1
  120. data/src/core/lib/gpr/cpu_linux.cc +3 -3
  121. data/src/core/lib/gpr/cpu_posix.cc +2 -1
  122. data/src/core/lib/gpr/env.h +1 -1
  123. data/src/core/lib/gpr/env_linux.cc +1 -1
  124. data/src/core/lib/gpr/env_windows.cc +4 -4
  125. data/src/core/lib/gpr/fork.cc +16 -2
  126. data/src/core/lib/gpr/host_port.cc +5 -4
  127. data/{include/grpc/support → src/core/lib/gpr}/host_port.h +5 -13
  128. data/src/core/lib/gpr/log.cc +5 -4
  129. data/src/core/lib/gpr/log_linux.cc +1 -1
  130. data/src/core/lib/gpr/mpscq.cc +1 -0
  131. data/src/core/lib/gpr/murmur_hash.cc +4 -4
  132. data/src/core/lib/gpr/string.cc +19 -16
  133. data/src/core/lib/gpr/string_posix.cc +3 -3
  134. data/src/core/lib/gpr/sync_posix.cc +5 -9
  135. data/src/core/lib/gpr/thd.cc +3 -3
  136. data/{include/grpc/support → src/core/lib/gpr}/thd.h +20 -28
  137. data/src/core/lib/gpr/thd_posix.cc +6 -4
  138. data/src/core/lib/gpr/thd_windows.cc +3 -1
  139. data/src/core/lib/gpr/time.cc +6 -4
  140. data/src/core/lib/gpr/time_posix.cc +2 -2
  141. data/{include/grpc/support → src/core/lib/gpr}/tls.h +6 -6
  142. data/{include/grpc/support → src/core/lib/gpr}/tls_gcc.h +3 -3
  143. data/{include/grpc/support → src/core/lib/gpr}/tls_msvc.h +3 -3
  144. data/src/core/lib/gpr/tls_pthread.cc +1 -1
  145. data/{include/grpc/support → src/core/lib/gpr}/tls_pthread.h +3 -3
  146. data/{include/grpc/support → src/core/lib/gpr}/useful.h +3 -3
  147. data/src/core/lib/{gpr++ → gprpp}/abstract.h +3 -3
  148. data/src/core/lib/{gpr++ → gprpp}/atomic.h +5 -5
  149. data/src/core/lib/{gpr++ → gprpp}/atomic_with_atm.h +3 -3
  150. data/src/core/lib/{gpr++ → gprpp}/atomic_with_std.h +3 -3
  151. data/src/core/lib/{gpr++ → gprpp}/debug_location.h +3 -3
  152. data/src/core/lib/{gpr++ → gprpp}/inlined_vector.h +44 -22
  153. data/src/core/lib/{gpr++ → gprpp}/manual_constructor.h +2 -2
  154. data/src/core/lib/{gpr++ → gprpp}/memory.h +14 -5
  155. data/src/core/lib/{gpr++ → gprpp}/orphanable.h +39 -14
  156. data/src/core/lib/{gpr++ → gprpp}/ref_counted.h +42 -10
  157. data/src/core/lib/{gpr++ → gprpp}/ref_counted_ptr.h +18 -8
  158. data/src/core/lib/http/format_request.cc +3 -3
  159. data/src/core/lib/http/httpcli.cc +6 -7
  160. data/src/core/lib/http/httpcli_security_connector.cc +10 -10
  161. data/src/core/lib/http/parser.cc +16 -12
  162. data/src/core/lib/iomgr/call_combiner.cc +12 -13
  163. data/src/core/lib/iomgr/closure.h +4 -6
  164. data/src/core/lib/iomgr/combiner.cc +10 -21
  165. data/src/core/lib/iomgr/error.cc +50 -55
  166. data/src/core/lib/iomgr/ev_epoll1_linux.cc +41 -52
  167. data/src/core/lib/iomgr/ev_epollex_linux.cc +80 -28
  168. data/src/core/lib/iomgr/ev_epollsig_linux.cc +23 -30
  169. data/src/core/lib/iomgr/ev_poll_posix.cc +52 -46
  170. data/src/core/lib/iomgr/ev_posix.cc +47 -6
  171. data/src/core/lib/iomgr/exec_ctx.cc +10 -10
  172. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  173. data/src/core/lib/iomgr/executor.cc +16 -13
  174. data/src/core/lib/iomgr/fork_posix.cc +1 -3
  175. data/src/core/lib/iomgr/gethostname_host_name_max.cc +1 -1
  176. data/src/core/lib/iomgr/iocp_windows.cc +1 -2
  177. data/src/core/lib/iomgr/iomgr.cc +2 -2
  178. data/src/core/lib/iomgr/iomgr_uv.cc +2 -0
  179. data/src/core/lib/iomgr/iomgr_uv.h +1 -1
  180. data/src/core/lib/iomgr/is_epollexclusive_available.cc +5 -4
  181. data/src/core/lib/iomgr/load_file.cc +3 -3
  182. data/src/core/lib/iomgr/pollset_windows.cc +1 -1
  183. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -9
  184. data/src/core/lib/iomgr/resolve_address_uv.cc +2 -2
  185. data/src/core/lib/iomgr/resolve_address_windows.cc +3 -2
  186. data/src/core/lib/iomgr/resource_quota.cc +36 -34
  187. data/src/core/lib/iomgr/sockaddr_utils.cc +39 -23
  188. data/src/core/lib/iomgr/socket_factory_posix.cc +5 -5
  189. data/src/core/lib/iomgr/socket_mutator.cc +7 -7
  190. data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -4
  191. data/src/core/lib/iomgr/socket_utils_linux.cc +3 -2
  192. data/src/core/lib/iomgr/tcp_client_posix.cc +7 -6
  193. data/src/core/lib/iomgr/tcp_client_windows.cc +0 -1
  194. data/src/core/lib/iomgr/tcp_posix.cc +47 -55
  195. data/src/core/lib/iomgr/tcp_server_posix.cc +12 -10
  196. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -5
  197. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -3
  198. data/src/core/lib/iomgr/tcp_windows.cc +1 -1
  199. data/src/core/lib/iomgr/timer_generic.cc +16 -14
  200. data/src/core/lib/iomgr/timer_heap.cc +8 -7
  201. data/src/core/lib/iomgr/timer_manager.cc +4 -3
  202. data/src/core/lib/iomgr/udp_server.cc +24 -16
  203. data/src/core/lib/iomgr/unix_sockets_posix.cc +15 -10
  204. data/src/core/lib/iomgr/wakeup_fd_cv.cc +6 -5
  205. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +1 -2
  206. data/src/core/lib/json/json.cc +1 -1
  207. data/src/core/lib/json/json_reader.cc +8 -6
  208. data/src/core/lib/json/json_string.cc +19 -18
  209. data/src/core/lib/json/json_writer.cc +10 -8
  210. data/src/core/lib/profiling/basic_timers.cc +1 -1
  211. data/src/core/lib/profiling/timers.h +3 -20
  212. data/src/core/lib/security/context/security_context.cc +16 -14
  213. data/src/core/lib/security/credentials/composite/composite_credentials.cc +17 -14
  214. data/src/core/lib/security/credentials/credentials.cc +9 -8
  215. data/src/core/lib/security/credentials/credentials.h +1 -1
  216. data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
  217. data/src/core/lib/security/credentials/fake/fake_credentials.cc +12 -13
  218. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +7 -4
  219. data/src/core/lib/security/credentials/iam/iam_credentials.cc +5 -3
  220. data/src/core/lib/security/credentials/jwt/json_token.cc +4 -3
  221. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -7
  222. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +21 -18
  223. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +23 -18
  224. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +11 -7
  225. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +22 -21
  226. data/src/core/lib/security/{transport → security_connector}/security_connector.cc +46 -43
  227. data/src/core/lib/security/{transport → security_connector}/security_connector.h +3 -3
  228. data/src/core/lib/security/transport/client_auth_filter.cc +32 -34
  229. data/src/core/lib/security/transport/lb_targets_info.cc +7 -5
  230. data/src/core/lib/security/transport/secure_endpoint.cc +21 -21
  231. data/src/core/lib/security/transport/security_handshaker.cc +19 -18
  232. data/src/core/lib/security/transport/security_handshaker.h +1 -1
  233. data/src/core/lib/security/transport/server_auth_filter.cc +21 -21
  234. data/src/core/lib/slice/b64.cc +19 -16
  235. data/src/core/lib/slice/percent_encoding.cc +5 -5
  236. data/src/core/lib/slice/slice.cc +35 -33
  237. data/src/core/lib/slice/slice_buffer.cc +16 -14
  238. data/src/core/lib/slice/slice_hash_table.cc +3 -2
  239. data/src/core/lib/slice/slice_intern.cc +21 -25
  240. data/src/core/lib/slice/slice_string_helpers.cc +45 -9
  241. data/src/core/lib/slice/slice_string_helpers.h +6 -0
  242. data/src/core/lib/surface/byte_buffer.cc +2 -2
  243. data/src/core/lib/surface/byte_buffer_reader.cc +6 -3
  244. data/src/core/lib/surface/call.cc +171 -260
  245. data/src/core/lib/surface/call_test_only.h +1 -13
  246. data/src/core/lib/surface/channel.cc +20 -43
  247. data/src/core/lib/surface/channel_init.cc +7 -7
  248. data/src/core/lib/surface/channel_ping.cc +2 -2
  249. data/src/core/lib/surface/completion_queue.cc +69 -75
  250. data/src/core/lib/surface/init.cc +4 -5
  251. data/src/core/lib/surface/init_secure.cc +1 -1
  252. data/src/core/lib/surface/lame_client.cc +1 -1
  253. data/src/core/lib/surface/server.cc +64 -59
  254. data/src/core/lib/surface/version.cc +2 -2
  255. data/src/core/lib/transport/bdp_estimator.cc +6 -5
  256. data/src/core/lib/transport/byte_stream.cc +23 -14
  257. data/src/core/lib/transport/byte_stream.h +1 -1
  258. data/src/core/lib/transport/connectivity_state.cc +9 -13
  259. data/src/core/lib/transport/error_utils.cc +10 -7
  260. data/src/core/lib/transport/metadata.cc +27 -26
  261. data/src/core/lib/transport/metadata.h +1 -1
  262. data/src/core/lib/transport/pid_controller.cc +2 -1
  263. data/src/core/lib/transport/service_config.cc +5 -5
  264. data/src/core/lib/transport/static_metadata.cc +225 -222
  265. data/src/core/lib/transport/static_metadata.h +77 -76
  266. data/src/core/lib/transport/timeout_encoding.cc +3 -2
  267. data/src/core/lib/transport/transport.cc +6 -5
  268. data/src/core/lib/transport/transport_op_string.cc +0 -1
  269. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -4
  270. data/src/core/tsi/alts_transport_security.cc +61 -0
  271. data/src/core/tsi/{gts_transport_security.h → alts_transport_security.h} +16 -8
  272. data/src/core/tsi/fake_transport_security.cc +59 -43
  273. data/src/core/tsi/ssl_transport_security.cc +122 -107
  274. data/src/core/tsi/transport_security.cc +3 -3
  275. data/src/core/tsi/transport_security_adapter.cc +16 -10
  276. data/src/ruby/bin/apis/pubsub_demo.rb +1 -1
  277. data/src/ruby/ext/grpc/rb_channel.c +3 -4
  278. data/src/ruby/ext/grpc/rb_compression_options.c +13 -3
  279. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -76
  280. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +8 -120
  281. data/src/ruby/ext/grpc/rb_server.c +52 -28
  282. data/src/ruby/lib/grpc/generic/rpc_server.rb +7 -4
  283. data/src/ruby/lib/grpc/version.rb +1 -1
  284. data/src/ruby/pb/test/client.rb +1 -1
  285. data/src/ruby/pb/test/server.rb +1 -1
  286. data/src/ruby/spec/client_server_spec.rb +4 -2
  287. data/src/ruby/spec/generic/active_call_spec.rb +2 -1
  288. data/src/ruby/spec/generic/client_stub_spec.rb +32 -8
  289. data/src/ruby/spec/server_spec.rb +26 -7
  290. data/third_party/boringssl/crypto/asn1/a_bitstr.c +7 -2
  291. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +15 -0
  292. data/third_party/boringssl/crypto/asn1/a_gentm.c +1 -1
  293. data/third_party/boringssl/crypto/asn1/a_print.c +0 -28
  294. data/third_party/boringssl/crypto/asn1/a_strnid.c +3 -0
  295. data/third_party/boringssl/crypto/asn1/a_time.c +17 -9
  296. data/third_party/boringssl/crypto/asn1/a_utctm.c +1 -1
  297. data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -49
  298. data/third_party/boringssl/crypto/asn1/asn1_locl.h +1 -1
  299. data/third_party/boringssl/crypto/asn1/tasn_dec.c +9 -9
  300. data/third_party/boringssl/crypto/asn1/tasn_enc.c +0 -6
  301. data/third_party/boringssl/crypto/asn1/time_support.c +5 -5
  302. data/third_party/boringssl/crypto/base64/base64.c +65 -43
  303. data/third_party/boringssl/crypto/bio/bio.c +134 -110
  304. data/third_party/boringssl/crypto/bio/bio_mem.c +9 -9
  305. data/third_party/boringssl/crypto/bio/connect.c +17 -17
  306. data/third_party/boringssl/crypto/bio/fd.c +2 -1
  307. data/third_party/boringssl/crypto/bio/file.c +14 -14
  308. data/third_party/boringssl/crypto/bio/hexdump.c +15 -16
  309. data/third_party/boringssl/crypto/bio/internal.h +14 -14
  310. data/third_party/boringssl/crypto/bio/pair.c +45 -45
  311. data/third_party/boringssl/crypto/bio/printf.c +6 -10
  312. data/third_party/boringssl/crypto/{bn → bn_extra}/bn_asn1.c +9 -9
  313. data/third_party/boringssl/crypto/{bn → bn_extra}/convert.c +18 -223
  314. data/third_party/boringssl/crypto/buf/buf.c +20 -44
  315. data/third_party/boringssl/crypto/bytestring/ber.c +35 -35
  316. data/third_party/boringssl/crypto/bytestring/cbb.c +24 -24
  317. data/third_party/boringssl/crypto/bytestring/cbs.c +33 -37
  318. data/third_party/boringssl/crypto/bytestring/internal.h +38 -38
  319. data/third_party/boringssl/crypto/chacha/chacha.c +7 -7
  320. data/third_party/boringssl/crypto/{asn1/t_bitst.c → cipher_extra/cipher_extra.c} +49 -38
  321. data/third_party/boringssl/crypto/{cipher → cipher_extra}/derive_key.c +0 -2
  322. data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +281 -0
  323. data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +867 -0
  324. data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +326 -0
  325. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_null.c +0 -1
  326. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc2.c +22 -10
  327. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc4.c +0 -0
  328. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_ssl3.c +120 -64
  329. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_tls.c +220 -141
  330. data/third_party/boringssl/crypto/{asn1/x_bignum.c → cipher_extra/internal.h} +61 -86
  331. data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +482 -0
  332. data/third_party/boringssl/crypto/cmac/cmac.c +20 -20
  333. data/third_party/boringssl/crypto/conf/conf.c +32 -20
  334. data/third_party/boringssl/crypto/conf/internal.h +3 -3
  335. data/third_party/boringssl/crypto/cpu-aarch64-linux.c +5 -5
  336. data/third_party/boringssl/crypto/cpu-arm-linux.c +44 -41
  337. data/third_party/boringssl/crypto/cpu-intel.c +68 -43
  338. data/third_party/boringssl/crypto/cpu-ppc64le.c +5 -7
  339. data/third_party/boringssl/crypto/crypto.c +54 -32
  340. data/third_party/boringssl/crypto/curve25519/curve25519.c +269 -269
  341. data/third_party/boringssl/crypto/curve25519/internal.h +28 -8
  342. data/third_party/boringssl/crypto/curve25519/spake25519.c +180 -106
  343. data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +9 -9
  344. data/third_party/boringssl/crypto/dh/check.c +33 -34
  345. data/third_party/boringssl/crypto/dh/dh.c +72 -36
  346. data/third_party/boringssl/crypto/dh/dh_asn1.c +1 -1
  347. data/third_party/boringssl/crypto/dh/params.c +1 -161
  348. data/third_party/boringssl/crypto/digest_extra/digest_extra.c +240 -0
  349. data/third_party/boringssl/crypto/dsa/dsa.c +127 -87
  350. data/third_party/boringssl/crypto/dsa/dsa_asn1.c +1 -1
  351. data/third_party/boringssl/crypto/{ec → ec_extra}/ec_asn1.c +83 -70
  352. data/third_party/boringssl/crypto/ecdh/ecdh.c +1 -1
  353. data/third_party/boringssl/crypto/{ecdsa → ecdsa_extra}/ecdsa_asn1.c +86 -31
  354. data/third_party/boringssl/crypto/engine/engine.c +6 -6
  355. data/third_party/boringssl/crypto/err/err.c +197 -106
  356. data/third_party/boringssl/crypto/err/internal.h +58 -0
  357. data/third_party/boringssl/crypto/evp/digestsign.c +86 -14
  358. data/third_party/boringssl/crypto/evp/evp.c +6 -11
  359. data/third_party/boringssl/crypto/evp/evp_asn1.c +17 -17
  360. data/third_party/boringssl/crypto/evp/evp_ctx.c +15 -11
  361. data/third_party/boringssl/crypto/evp/internal.h +66 -51
  362. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +11 -11
  363. data/third_party/boringssl/crypto/evp/p_ec.c +10 -8
  364. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +11 -12
  365. data/third_party/boringssl/crypto/evp/p_ed25519.c +71 -0
  366. data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +190 -0
  367. data/third_party/boringssl/crypto/evp/p_rsa.c +50 -95
  368. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +28 -18
  369. data/third_party/boringssl/crypto/evp/pbkdf.c +49 -56
  370. data/third_party/boringssl/crypto/evp/print.c +5 -36
  371. data/third_party/boringssl/crypto/evp/scrypt.c +209 -0
  372. data/third_party/boringssl/crypto/ex_data.c +15 -45
  373. data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +100 -0
  374. data/third_party/boringssl/crypto/fipsmodule/bcm.c +679 -0
  375. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/internal.h +40 -27
  376. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/rsaz_exp.h +0 -0
  377. data/third_party/boringssl/crypto/{cipher → fipsmodule/cipher}/internal.h +34 -67
  378. data/third_party/boringssl/crypto/fipsmodule/delocate.h +88 -0
  379. data/third_party/boringssl/crypto/{des → fipsmodule/des}/internal.h +18 -4
  380. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/internal.h +18 -18
  381. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/md32_common.h +58 -64
  382. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/internal.h +58 -52
  383. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64-table.h +11 -11
  384. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64.h +32 -32
  385. data/third_party/boringssl/crypto/{rand/internal.h → fipsmodule/is_fips.c} +10 -15
  386. data/third_party/boringssl/crypto/{modes → fipsmodule/modes}/internal.h +112 -119
  387. data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +92 -0
  388. data/third_party/boringssl/crypto/{rsa → fipsmodule/rsa}/internal.h +36 -49
  389. data/third_party/boringssl/crypto/hkdf/hkdf.c +6 -6
  390. data/third_party/boringssl/crypto/internal.h +301 -233
  391. data/third_party/boringssl/crypto/lhash/lhash.c +26 -45
  392. data/third_party/boringssl/crypto/mem.c +76 -33
  393. data/third_party/boringssl/crypto/obj/obj.c +44 -28
  394. data/third_party/boringssl/crypto/obj/obj_dat.h +102 -34
  395. data/third_party/boringssl/crypto/obj/obj_xref.c +6 -6
  396. data/third_party/boringssl/crypto/pem/pem_info.c +3 -5
  397. data/third_party/boringssl/crypto/pem/pem_lib.c +1 -6
  398. data/third_party/boringssl/crypto/pem/pem_pk8.c +1 -0
  399. data/third_party/boringssl/crypto/pem/pem_pkey.c +1 -1
  400. data/third_party/boringssl/crypto/pem/pem_xaux.c +0 -2
  401. data/third_party/boringssl/crypto/pkcs7/internal.h +49 -0
  402. data/third_party/boringssl/crypto/pkcs7/pkcs7.c +166 -0
  403. data/third_party/boringssl/crypto/{x509/pkcs7.c → pkcs7/pkcs7_x509.c} +27 -147
  404. data/third_party/boringssl/crypto/pkcs8/internal.h +34 -16
  405. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +120 -39
  406. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +144 -857
  407. data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +789 -0
  408. data/third_party/boringssl/crypto/poly1305/internal.h +4 -3
  409. data/third_party/boringssl/crypto/poly1305/poly1305.c +14 -14
  410. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +11 -11
  411. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +41 -41
  412. data/third_party/boringssl/crypto/pool/internal.h +2 -2
  413. data/third_party/boringssl/crypto/pool/pool.c +15 -15
  414. data/third_party/boringssl/crypto/{rand → rand_extra}/deterministic.c +7 -7
  415. data/third_party/boringssl/crypto/rand_extra/forkunsafe.c +46 -0
  416. data/third_party/boringssl/crypto/{rand → rand_extra}/fuchsia.c +7 -7
  417. data/third_party/boringssl/crypto/rand_extra/rand_extra.c +70 -0
  418. data/third_party/boringssl/crypto/{rand → rand_extra}/windows.c +5 -5
  419. data/third_party/boringssl/crypto/refcount_c11.c +2 -2
  420. data/third_party/boringssl/crypto/refcount_lock.c +1 -1
  421. data/third_party/boringssl/crypto/{rsa → rsa_extra}/rsa_asn1.c +12 -120
  422. data/third_party/boringssl/crypto/stack/stack.c +13 -13
  423. data/third_party/boringssl/crypto/thread_none.c +1 -1
  424. data/third_party/boringssl/crypto/thread_pthread.c +1 -1
  425. data/third_party/boringssl/crypto/thread_win.c +40 -40
  426. data/third_party/boringssl/crypto/x509/a_sign.c +5 -12
  427. data/third_party/boringssl/crypto/x509/a_verify.c +6 -18
  428. data/third_party/boringssl/crypto/x509/algorithm.c +22 -6
  429. data/third_party/boringssl/crypto/x509/asn1_gen.c +30 -7
  430. data/third_party/boringssl/crypto/x509/by_dir.c +2 -2
  431. data/third_party/boringssl/crypto/x509/by_file.c +2 -2
  432. data/third_party/boringssl/crypto/x509/rsa_pss.c +5 -5
  433. data/third_party/boringssl/crypto/x509/t_x509.c +2 -1
  434. data/third_party/boringssl/crypto/x509/x509_def.c +5 -0
  435. data/third_party/boringssl/crypto/x509/x509_lu.c +35 -4
  436. data/third_party/boringssl/crypto/x509/x509_set.c +10 -0
  437. data/third_party/boringssl/crypto/x509/x509_vfy.c +20 -17
  438. data/third_party/boringssl/crypto/x509/x_name.c +13 -16
  439. data/third_party/boringssl/crypto/x509/x_x509.c +3 -3
  440. data/third_party/boringssl/crypto/x509/x_x509a.c +0 -7
  441. data/third_party/boringssl/crypto/x509v3/ext_dat.h +8 -0
  442. data/third_party/boringssl/crypto/x509v3/pcy_int.h +2 -2
  443. data/third_party/boringssl/crypto/x509v3/pcy_lib.c +0 -9
  444. data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -1
  445. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +25 -15
  446. data/third_party/boringssl/crypto/x509v3/v3_alt.c +21 -11
  447. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +9 -3
  448. data/third_party/boringssl/crypto/x509v3/v3_info.c +22 -14
  449. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +27 -11
  450. data/third_party/boringssl/crypto/x509v3/v3_pci.c +0 -33
  451. data/third_party/boringssl/crypto/x509v3/v3_utl.c +4 -4
  452. data/third_party/boringssl/include/openssl/aead.h +280 -191
  453. data/third_party/boringssl/include/openssl/aes.h +50 -50
  454. data/third_party/boringssl/include/openssl/arm_arch.h +12 -12
  455. data/third_party/boringssl/include/openssl/asn1.h +14 -77
  456. data/third_party/boringssl/include/openssl/asn1t.h +11 -15
  457. data/third_party/boringssl/include/openssl/base.h +78 -51
  458. data/third_party/boringssl/include/openssl/base64.h +68 -68
  459. data/third_party/boringssl/include/openssl/bio.h +472 -406
  460. data/third_party/boringssl/include/openssl/blowfish.h +1 -1
  461. data/third_party/boringssl/include/openssl/bn.h +454 -435
  462. data/third_party/boringssl/include/openssl/buf.h +27 -27
  463. data/third_party/boringssl/include/openssl/bytestring.h +282 -267
  464. data/third_party/boringssl/include/openssl/cast.h +2 -2
  465. data/third_party/boringssl/include/openssl/chacha.h +5 -5
  466. data/third_party/boringssl/include/openssl/cipher.h +209 -200
  467. data/third_party/boringssl/include/openssl/cmac.h +27 -27
  468. data/third_party/boringssl/include/openssl/conf.h +49 -46
  469. data/third_party/boringssl/include/openssl/cpu.h +60 -45
  470. data/third_party/boringssl/include/openssl/crypto.h +59 -35
  471. data/third_party/boringssl/include/openssl/curve25519.h +97 -92
  472. data/third_party/boringssl/include/openssl/des.h +25 -25
  473. data/third_party/boringssl/include/openssl/dh.h +98 -97
  474. data/third_party/boringssl/include/openssl/digest.h +143 -114
  475. data/third_party/boringssl/include/openssl/dsa.h +217 -202
  476. data/third_party/boringssl/include/openssl/ec.h +132 -131
  477. data/third_party/boringssl/include/openssl/ec_key.h +132 -128
  478. data/third_party/boringssl/include/openssl/ecdh.h +9 -9
  479. data/third_party/boringssl/include/openssl/ecdsa.h +66 -66
  480. data/third_party/boringssl/include/openssl/engine.h +38 -38
  481. data/third_party/boringssl/include/openssl/err.h +189 -219
  482. data/third_party/boringssl/include/openssl/evp.h +473 -397
  483. data/third_party/boringssl/include/openssl/ex_data.h +46 -56
  484. data/third_party/boringssl/include/openssl/hkdf.h +17 -17
  485. data/third_party/boringssl/include/openssl/hmac.h +55 -43
  486. data/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  487. data/third_party/boringssl/include/openssl/lhash.h +67 -67
  488. data/third_party/boringssl/include/openssl/lhash_macros.h +4 -4
  489. data/third_party/boringssl/include/openssl/md4.h +14 -14
  490. data/third_party/boringssl/include/openssl/md5.h +14 -14
  491. data/third_party/boringssl/include/openssl/mem.h +39 -33
  492. data/third_party/boringssl/include/openssl/nid.h +43 -0
  493. data/third_party/boringssl/include/openssl/obj.h +93 -87
  494. data/third_party/boringssl/include/openssl/opensslconf.h +8 -1
  495. data/third_party/boringssl/include/openssl/pem.h +2 -122
  496. data/third_party/boringssl/include/openssl/pkcs7.h +68 -2
  497. data/third_party/boringssl/include/openssl/pkcs8.h +81 -66
  498. data/third_party/boringssl/include/openssl/poly1305.h +11 -11
  499. data/third_party/boringssl/include/openssl/pool.h +29 -25
  500. data/third_party/boringssl/include/openssl/rand.h +48 -45
  501. data/third_party/boringssl/include/openssl/rc4.h +9 -9
  502. data/third_party/boringssl/include/openssl/ripemd.h +13 -13
  503. data/third_party/boringssl/include/openssl/rsa.h +371 -340
  504. data/third_party/boringssl/include/openssl/sha.h +71 -71
  505. data/third_party/boringssl/include/openssl/span.h +191 -0
  506. data/third_party/boringssl/include/openssl/ssl.h +2639 -2519
  507. data/third_party/boringssl/include/openssl/ssl3.h +39 -122
  508. data/third_party/boringssl/include/openssl/stack.h +355 -164
  509. data/third_party/boringssl/include/openssl/thread.h +43 -43
  510. data/third_party/boringssl/include/openssl/tls1.h +60 -63
  511. data/third_party/boringssl/include/openssl/type_check.h +10 -14
  512. data/third_party/boringssl/include/openssl/x509.h +41 -116
  513. data/third_party/boringssl/include/openssl/x509_vfy.h +17 -25
  514. data/third_party/boringssl/include/openssl/x509v3.h +27 -21
  515. data/third_party/boringssl/ssl/{bio_ssl.c → bio_ssl.cc} +9 -5
  516. data/third_party/boringssl/ssl/{custom_extensions.c → custom_extensions.cc} +19 -12
  517. data/third_party/boringssl/ssl/{d1_both.c → d1_both.cc} +224 -193
  518. data/third_party/boringssl/ssl/{d1_lib.c → d1_lib.cc} +86 -79
  519. data/third_party/boringssl/ssl/{d1_pkt.c → d1_pkt.cc} +55 -87
  520. data/third_party/boringssl/ssl/{d1_srtp.c → d1_srtp.cc} +12 -16
  521. data/third_party/boringssl/ssl/{dtls_method.c → dtls_method.cc} +33 -50
  522. data/third_party/boringssl/ssl/{dtls_record.c → dtls_record.cc} +76 -64
  523. data/third_party/boringssl/ssl/handshake.cc +547 -0
  524. data/third_party/boringssl/ssl/handshake_client.cc +1828 -0
  525. data/third_party/boringssl/ssl/handshake_server.cc +1672 -0
  526. data/third_party/boringssl/ssl/internal.h +2027 -1280
  527. data/third_party/boringssl/ssl/s3_both.cc +603 -0
  528. data/third_party/boringssl/ssl/{s3_lib.c → s3_lib.cc} +22 -10
  529. data/third_party/boringssl/ssl/{s3_pkt.c → s3_pkt.cc} +171 -75
  530. data/third_party/boringssl/ssl/ssl_aead_ctx.cc +415 -0
  531. data/third_party/boringssl/ssl/{ssl_asn1.c → ssl_asn1.cc} +257 -261
  532. data/third_party/boringssl/ssl/{ssl_buffer.c → ssl_buffer.cc} +81 -97
  533. data/third_party/boringssl/ssl/{ssl_cert.c → ssl_cert.cc} +304 -414
  534. data/third_party/boringssl/ssl/{ssl_cipher.c → ssl_cipher.cc} +427 -505
  535. data/third_party/boringssl/ssl/{ssl_file.c → ssl_file.cc} +24 -16
  536. data/third_party/boringssl/ssl/ssl_key_share.cc +245 -0
  537. data/third_party/boringssl/ssl/{ssl_lib.c → ssl_lib.cc} +665 -828
  538. data/third_party/boringssl/ssl/ssl_privkey.cc +518 -0
  539. data/third_party/boringssl/ssl/{ssl_session.c → ssl_session.cc} +596 -471
  540. data/third_party/boringssl/ssl/{ssl_stat.c → ssl_stat.cc} +5 -224
  541. data/third_party/boringssl/ssl/{ssl_transcript.c → ssl_transcript.cc} +117 -140
  542. data/third_party/boringssl/ssl/ssl_versions.cc +439 -0
  543. data/third_party/boringssl/ssl/{ssl_x509.c → ssl_x509.cc} +751 -267
  544. data/third_party/boringssl/ssl/{t1_enc.c → t1_enc.cc} +120 -161
  545. data/third_party/boringssl/ssl/{t1_lib.c → t1_lib.cc} +859 -966
  546. data/third_party/boringssl/ssl/{tls13_both.c → tls13_both.cc} +202 -284
  547. data/third_party/boringssl/ssl/tls13_client.cc +842 -0
  548. data/third_party/boringssl/ssl/{tls13_enc.c → tls13_enc.cc} +108 -90
  549. data/third_party/boringssl/ssl/tls13_server.cc +967 -0
  550. data/third_party/boringssl/ssl/{tls_method.c → tls_method.cc} +94 -73
  551. data/third_party/boringssl/ssl/tls_record.cc +675 -0
  552. metadata +117 -168
  553. data/include/grpc/support/cmdline.h +0 -88
  554. data/include/grpc/support/subprocess.h +0 -44
  555. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -29
  556. data/src/core/ext/filters/client_channel/resolver_factory.cc +0 -40
  557. data/src/core/lib/gpr/cmdline.cc +0 -330
  558. data/src/core/lib/gpr/subprocess_posix.cc +0 -99
  559. data/src/core/lib/gpr/subprocess_windows.cc +0 -126
  560. data/src/core/lib/surface/alarm.cc +0 -137
  561. data/src/core/lib/surface/alarm_internal.h +0 -40
  562. data/src/core/tsi/gts_transport_security.cc +0 -40
  563. data/third_party/boringssl/crypto/aes/aes.c +0 -1142
  564. data/third_party/boringssl/crypto/aes/internal.h +0 -87
  565. data/third_party/boringssl/crypto/aes/key_wrap.c +0 -138
  566. data/third_party/boringssl/crypto/aes/mode_wrappers.c +0 -112
  567. data/third_party/boringssl/crypto/asn1/x_long.c +0 -200
  568. data/third_party/boringssl/crypto/bn/add.c +0 -377
  569. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +0 -532
  570. data/third_party/boringssl/crypto/bn/bn.c +0 -365
  571. data/third_party/boringssl/crypto/bn/cmp.c +0 -239
  572. data/third_party/boringssl/crypto/bn/ctx.c +0 -313
  573. data/third_party/boringssl/crypto/bn/div.c +0 -728
  574. data/third_party/boringssl/crypto/bn/exponentiation.c +0 -1240
  575. data/third_party/boringssl/crypto/bn/gcd.c +0 -635
  576. data/third_party/boringssl/crypto/bn/generic.c +0 -707
  577. data/third_party/boringssl/crypto/bn/kronecker.c +0 -176
  578. data/third_party/boringssl/crypto/bn/montgomery.c +0 -409
  579. data/third_party/boringssl/crypto/bn/montgomery_inv.c +0 -207
  580. data/third_party/boringssl/crypto/bn/mul.c +0 -871
  581. data/third_party/boringssl/crypto/bn/prime.c +0 -861
  582. data/third_party/boringssl/crypto/bn/random.c +0 -343
  583. data/third_party/boringssl/crypto/bn/rsaz_exp.c +0 -254
  584. data/third_party/boringssl/crypto/bn/shift.c +0 -307
  585. data/third_party/boringssl/crypto/bn/sqrt.c +0 -506
  586. data/third_party/boringssl/crypto/cipher/aead.c +0 -156
  587. data/third_party/boringssl/crypto/cipher/cipher.c +0 -657
  588. data/third_party/boringssl/crypto/cipher/e_aes.c +0 -1771
  589. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +0 -276
  590. data/third_party/boringssl/crypto/cipher/e_des.c +0 -205
  591. data/third_party/boringssl/crypto/cipher/tls_cbc.c +0 -482
  592. data/third_party/boringssl/crypto/des/des.c +0 -771
  593. data/third_party/boringssl/crypto/digest/digest.c +0 -251
  594. data/third_party/boringssl/crypto/digest/digests.c +0 -358
  595. data/third_party/boringssl/crypto/ec/ec.c +0 -847
  596. data/third_party/boringssl/crypto/ec/ec_key.c +0 -479
  597. data/third_party/boringssl/crypto/ec/ec_montgomery.c +0 -303
  598. data/third_party/boringssl/crypto/ec/oct.c +0 -416
  599. data/third_party/boringssl/crypto/ec/p224-64.c +0 -1143
  600. data/third_party/boringssl/crypto/ec/p256-64.c +0 -1701
  601. data/third_party/boringssl/crypto/ec/p256-x86_64.c +0 -561
  602. data/third_party/boringssl/crypto/ec/simple.c +0 -1118
  603. data/third_party/boringssl/crypto/ec/util-64.c +0 -109
  604. data/third_party/boringssl/crypto/ec/wnaf.c +0 -458
  605. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +0 -479
  606. data/third_party/boringssl/crypto/hmac/hmac.c +0 -215
  607. data/third_party/boringssl/crypto/md4/md4.c +0 -236
  608. data/third_party/boringssl/crypto/md5/md5.c +0 -285
  609. data/third_party/boringssl/crypto/modes/cbc.c +0 -212
  610. data/third_party/boringssl/crypto/modes/cfb.c +0 -230
  611. data/third_party/boringssl/crypto/modes/ctr.c +0 -219
  612. data/third_party/boringssl/crypto/modes/gcm.c +0 -1071
  613. data/third_party/boringssl/crypto/modes/ofb.c +0 -95
  614. data/third_party/boringssl/crypto/modes/polyval.c +0 -94
  615. data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +0 -85
  616. data/third_party/boringssl/crypto/rand/rand.c +0 -244
  617. data/third_party/boringssl/crypto/rand/urandom.c +0 -335
  618. data/third_party/boringssl/crypto/rsa/blinding.c +0 -265
  619. data/third_party/boringssl/crypto/rsa/padding.c +0 -708
  620. data/third_party/boringssl/crypto/rsa/rsa.c +0 -830
  621. data/third_party/boringssl/crypto/rsa/rsa_impl.c +0 -1100
  622. data/third_party/boringssl/crypto/sha/sha1-altivec.c +0 -346
  623. data/third_party/boringssl/crypto/sha/sha1.c +0 -355
  624. data/third_party/boringssl/crypto/sha/sha256.c +0 -329
  625. data/third_party/boringssl/crypto/sha/sha512.c +0 -609
  626. data/third_party/boringssl/crypto/x509/x509type.c +0 -126
  627. data/third_party/boringssl/include/openssl/stack_macros.h +0 -3987
  628. data/third_party/boringssl/ssl/handshake_client.c +0 -1883
  629. data/third_party/boringssl/ssl/handshake_server.c +0 -1950
  630. data/third_party/boringssl/ssl/s3_both.c +0 -895
  631. data/third_party/boringssl/ssl/ssl_aead_ctx.c +0 -335
  632. data/third_party/boringssl/ssl/ssl_ecdh.c +0 -465
  633. data/third_party/boringssl/ssl/ssl_privkey.c +0 -683
  634. data/third_party/boringssl/ssl/ssl_privkey_cc.cc +0 -76
  635. data/third_party/boringssl/ssl/tls13_client.c +0 -712
  636. data/third_party/boringssl/ssl/tls13_server.c +0 -680
  637. data/third_party/boringssl/ssl/tls_record.c +0 -556
@@ -0,0 +1,240 @@
1
+ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
2
+ * All rights reserved.
3
+ *
4
+ * This package is an SSL implementation written
5
+ * by Eric Young (eay@cryptsoft.com).
6
+ * The implementation was written so as to conform with Netscapes SSL.
7
+ *
8
+ * This library is free for commercial and non-commercial use as long as
9
+ * the following conditions are aheared to. The following conditions
10
+ * apply to all code found in this distribution, be it the RC4, RSA,
11
+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
12
+ * included with this distribution is covered by the same copyright terms
13
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
14
+ *
15
+ * Copyright remains Eric Young's, and as such any Copyright notices in
16
+ * the code are not to be removed.
17
+ * If this package is used in a product, Eric Young should be given attribution
18
+ * as the author of the parts of the library used.
19
+ * This can be in the form of a textual message at program startup or
20
+ * in documentation (online or textual) provided with the package.
21
+ *
22
+ * Redistribution and use in source and binary forms, with or without
23
+ * modification, are permitted provided that the following conditions
24
+ * are met:
25
+ * 1. Redistributions of source code must retain the copyright
26
+ * notice, this list of conditions and the following disclaimer.
27
+ * 2. Redistributions in binary form must reproduce the above copyright
28
+ * notice, this list of conditions and the following disclaimer in the
29
+ * documentation and/or other materials provided with the distribution.
30
+ * 3. All advertising materials mentioning features or use of this software
31
+ * must display the following acknowledgement:
32
+ * "This product includes cryptographic software written by
33
+ * Eric Young (eay@cryptsoft.com)"
34
+ * The word 'cryptographic' can be left out if the rouines from the library
35
+ * being used are not cryptographic related :-).
36
+ * 4. If you include any Windows specific code (or a derivative thereof) from
37
+ * the apps directory (application code) you must include an acknowledgement:
38
+ * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
39
+ *
40
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
41
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
43
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
44
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
45
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
46
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
47
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
48
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
49
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
50
+ * SUCH DAMAGE.
51
+ *
52
+ * The licence and distribution terms for any publically available version or
53
+ * derivative of this code cannot be changed. i.e. this code cannot simply be
54
+ * copied and put under another distribution licence
55
+ * [including the GNU Public Licence.] */
56
+
57
+ #include <openssl/digest.h>
58
+
59
+ #include <string.h>
60
+
61
+ #include <openssl/asn1.h>
62
+ #include <openssl/bytestring.h>
63
+ #include <openssl/nid.h>
64
+
65
+ #include "../internal.h"
66
+
67
+
68
+ struct nid_to_digest {
69
+ int nid;
70
+ const EVP_MD* (*md_func)(void);
71
+ const char *short_name;
72
+ const char *long_name;
73
+ };
74
+
75
+ static const struct nid_to_digest nid_to_digest_mapping[] = {
76
+ {NID_md4, EVP_md4, SN_md4, LN_md4},
77
+ {NID_md5, EVP_md5, SN_md5, LN_md5},
78
+ {NID_sha1, EVP_sha1, SN_sha1, LN_sha1},
79
+ {NID_sha224, EVP_sha224, SN_sha224, LN_sha224},
80
+ {NID_sha256, EVP_sha256, SN_sha256, LN_sha256},
81
+ {NID_sha384, EVP_sha384, SN_sha384, LN_sha384},
82
+ {NID_sha512, EVP_sha512, SN_sha512, LN_sha512},
83
+ {NID_md5_sha1, EVP_md5_sha1, SN_md5_sha1, LN_md5_sha1},
84
+ // As a remnant of signing |EVP_MD|s, OpenSSL returned the corresponding
85
+ // hash function when given a signature OID. To avoid unintended lax parsing
86
+ // of hash OIDs, this is no longer supported for lookup by OID or NID.
87
+ // Node.js, however, exposes |EVP_get_digestbyname|'s full behavior to
88
+ // consumers so we retain it there.
89
+ {NID_undef, EVP_sha1, SN_dsaWithSHA, LN_dsaWithSHA},
90
+ {NID_undef, EVP_sha1, SN_dsaWithSHA1, LN_dsaWithSHA1},
91
+ {NID_undef, EVP_sha1, SN_ecdsa_with_SHA1, NULL},
92
+ {NID_undef, EVP_md5, SN_md5WithRSAEncryption, LN_md5WithRSAEncryption},
93
+ {NID_undef, EVP_sha1, SN_sha1WithRSAEncryption, LN_sha1WithRSAEncryption},
94
+ {NID_undef, EVP_sha224, SN_sha224WithRSAEncryption,
95
+ LN_sha224WithRSAEncryption},
96
+ {NID_undef, EVP_sha256, SN_sha256WithRSAEncryption,
97
+ LN_sha256WithRSAEncryption},
98
+ {NID_undef, EVP_sha384, SN_sha384WithRSAEncryption,
99
+ LN_sha384WithRSAEncryption},
100
+ {NID_undef, EVP_sha512, SN_sha512WithRSAEncryption,
101
+ LN_sha512WithRSAEncryption},
102
+ };
103
+
104
+ const EVP_MD* EVP_get_digestbynid(int nid) {
105
+ if (nid == NID_undef) {
106
+ // Skip the |NID_undef| entries in |nid_to_digest_mapping|.
107
+ return NULL;
108
+ }
109
+
110
+ for (unsigned i = 0; i < OPENSSL_ARRAY_SIZE(nid_to_digest_mapping); i++) {
111
+ if (nid_to_digest_mapping[i].nid == nid) {
112
+ return nid_to_digest_mapping[i].md_func();
113
+ }
114
+ }
115
+
116
+ return NULL;
117
+ }
118
+
119
+ static const struct {
120
+ uint8_t oid[9];
121
+ uint8_t oid_len;
122
+ int nid;
123
+ } kMDOIDs[] = {
124
+ // 1.2.840.113549.2.4
125
+ { {0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x02, 0x04}, 8, NID_md4 },
126
+ // 1.2.840.113549.2.5
127
+ { {0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x02, 0x05}, 8, NID_md5 },
128
+ // 1.3.14.3.2.26
129
+ { {0x2b, 0x0e, 0x03, 0x02, 0x1a}, 5, NID_sha1 },
130
+ // 2.16.840.1.101.3.4.2.1
131
+ { {0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01}, 9, NID_sha256 },
132
+ // 2.16.840.1.101.3.4.2.2
133
+ { {0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02}, 9, NID_sha384 },
134
+ // 2.16.840.1.101.3.4.2.3
135
+ { {0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03}, 9, NID_sha512 },
136
+ // 2.16.840.1.101.3.4.2.4
137
+ { {0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x04}, 9, NID_sha224 },
138
+ };
139
+
140
+ static const EVP_MD *cbs_to_md(const CBS *cbs) {
141
+ for (size_t i = 0; i < OPENSSL_ARRAY_SIZE(kMDOIDs); i++) {
142
+ if (CBS_len(cbs) == kMDOIDs[i].oid_len &&
143
+ OPENSSL_memcmp(CBS_data(cbs), kMDOIDs[i].oid, kMDOIDs[i].oid_len) ==
144
+ 0) {
145
+ return EVP_get_digestbynid(kMDOIDs[i].nid);
146
+ }
147
+ }
148
+
149
+ return NULL;
150
+ }
151
+
152
+ const EVP_MD *EVP_get_digestbyobj(const ASN1_OBJECT *obj) {
153
+ // Handle objects with no corresponding OID.
154
+ if (obj->nid != NID_undef) {
155
+ return EVP_get_digestbynid(obj->nid);
156
+ }
157
+
158
+ CBS cbs;
159
+ CBS_init(&cbs, obj->data, obj->length);
160
+ return cbs_to_md(&cbs);
161
+ }
162
+
163
+ const EVP_MD *EVP_parse_digest_algorithm(CBS *cbs) {
164
+ CBS algorithm, oid;
165
+ if (!CBS_get_asn1(cbs, &algorithm, CBS_ASN1_SEQUENCE) ||
166
+ !CBS_get_asn1(&algorithm, &oid, CBS_ASN1_OBJECT)) {
167
+ OPENSSL_PUT_ERROR(DIGEST, DIGEST_R_DECODE_ERROR);
168
+ return NULL;
169
+ }
170
+
171
+ const EVP_MD *ret = cbs_to_md(&oid);
172
+ if (ret == NULL) {
173
+ OPENSSL_PUT_ERROR(DIGEST, DIGEST_R_UNKNOWN_HASH);
174
+ return NULL;
175
+ }
176
+
177
+ // The parameters, if present, must be NULL. Historically, whether the NULL
178
+ // was included or omitted was not well-specified. When parsing an
179
+ // AlgorithmIdentifier, we allow both. (Note this code is not used when
180
+ // verifying RSASSA-PKCS1-v1_5 signatures.)
181
+ if (CBS_len(&algorithm) > 0) {
182
+ CBS param;
183
+ if (!CBS_get_asn1(&algorithm, &param, CBS_ASN1_NULL) ||
184
+ CBS_len(&param) != 0 ||
185
+ CBS_len(&algorithm) != 0) {
186
+ OPENSSL_PUT_ERROR(DIGEST, DIGEST_R_DECODE_ERROR);
187
+ return NULL;
188
+ }
189
+ }
190
+
191
+ return ret;
192
+ }
193
+
194
+ int EVP_marshal_digest_algorithm(CBB *cbb, const EVP_MD *md) {
195
+ CBB algorithm, oid, null;
196
+ if (!CBB_add_asn1(cbb, &algorithm, CBS_ASN1_SEQUENCE) ||
197
+ !CBB_add_asn1(&algorithm, &oid, CBS_ASN1_OBJECT)) {
198
+ OPENSSL_PUT_ERROR(DIGEST, ERR_R_MALLOC_FAILURE);
199
+ return 0;
200
+ }
201
+
202
+ int found = 0;
203
+ int nid = EVP_MD_type(md);
204
+ for (size_t i = 0; i < OPENSSL_ARRAY_SIZE(kMDOIDs); i++) {
205
+ if (nid == kMDOIDs[i].nid) {
206
+ if (!CBB_add_bytes(&oid, kMDOIDs[i].oid, kMDOIDs[i].oid_len)) {
207
+ OPENSSL_PUT_ERROR(DIGEST, ERR_R_MALLOC_FAILURE);
208
+ return 0;
209
+ }
210
+ found = 1;
211
+ break;
212
+ }
213
+ }
214
+
215
+ if (!found) {
216
+ OPENSSL_PUT_ERROR(DIGEST, DIGEST_R_UNKNOWN_HASH);
217
+ return 0;
218
+ }
219
+
220
+ if (!CBB_add_asn1(&algorithm, &null, CBS_ASN1_NULL) ||
221
+ !CBB_flush(cbb)) {
222
+ OPENSSL_PUT_ERROR(DIGEST, ERR_R_MALLOC_FAILURE);
223
+ return 0;
224
+ }
225
+
226
+ return 1;
227
+ }
228
+
229
+ const EVP_MD *EVP_get_digestbyname(const char *name) {
230
+ for (unsigned i = 0; i < OPENSSL_ARRAY_SIZE(nid_to_digest_mapping); i++) {
231
+ const char *short_name = nid_to_digest_mapping[i].short_name;
232
+ const char *long_name = nid_to_digest_mapping[i].long_name;
233
+ if ((short_name && strcmp(short_name, name) == 0) ||
234
+ (long_name && strcmp(long_name, name) == 0)) {
235
+ return nid_to_digest_mapping[i].md_func();
236
+ }
237
+ }
238
+
239
+ return NULL;
240
+ }
@@ -72,14 +72,14 @@
72
72
  #include <openssl/sha.h>
73
73
  #include <openssl/thread.h>
74
74
 
75
- #include "../bn/internal.h"
75
+ #include "../fipsmodule/bn/internal.h"
76
76
  #include "../internal.h"
77
77
 
78
78
 
79
79
  #define OPENSSL_DSA_MAX_MODULUS_BITS 10000
80
80
 
81
- /* Primality test according to FIPS PUB 186[-1], Appendix 2.1: 50 rounds of
82
- * Rabin-Miller */
81
+ // Primality test according to FIPS PUB 186[-1], Appendix 2.1: 50 rounds of
82
+ // Rabin-Miller
83
83
  #define DSS_prime_checks 50
84
84
 
85
85
  static CRYPTO_EX_DATA_CLASS g_ex_data_class = CRYPTO_EX_DATA_CLASS_INIT;
@@ -153,6 +153,46 @@ void DSA_get0_pqg(const DSA *dsa, const BIGNUM **out_p, const BIGNUM **out_q,
153
153
  }
154
154
  }
155
155
 
156
+ int DSA_set0_key(DSA *dsa, BIGNUM *pub_key, BIGNUM *priv_key) {
157
+ if (dsa->pub_key == NULL && pub_key == NULL) {
158
+ return 0;
159
+ }
160
+
161
+ if (pub_key != NULL) {
162
+ BN_free(dsa->pub_key);
163
+ dsa->pub_key = pub_key;
164
+ }
165
+ if (priv_key != NULL) {
166
+ BN_free(dsa->priv_key);
167
+ dsa->priv_key = priv_key;
168
+ }
169
+
170
+ return 1;
171
+ }
172
+
173
+ int DSA_set0_pqg(DSA *dsa, BIGNUM *p, BIGNUM *q, BIGNUM *g) {
174
+ if ((dsa->p == NULL && p == NULL) ||
175
+ (dsa->q == NULL && q == NULL) ||
176
+ (dsa->g == NULL && g == NULL)) {
177
+ return 0;
178
+ }
179
+
180
+ if (p != NULL) {
181
+ BN_free(dsa->p);
182
+ dsa->p = p;
183
+ }
184
+ if (q != NULL) {
185
+ BN_free(dsa->q);
186
+ dsa->q = q;
187
+ }
188
+ if (g != NULL) {
189
+ BN_free(dsa->g);
190
+ dsa->g = g;
191
+ }
192
+
193
+ return 1;
194
+ }
195
+
156
196
  int DSA_generate_parameters_ex(DSA *dsa, unsigned bits, const uint8_t *seed_in,
157
197
  size_t seed_len, int *out_counter,
158
198
  unsigned long *out_h, BN_GENCB *cb) {
@@ -186,7 +226,7 @@ int DSA_generate_parameters_ex(DSA *dsa, unsigned bits, const uint8_t *seed_in,
186
226
  return 0;
187
227
  }
188
228
  if (seed_len > (size_t)qsize) {
189
- /* Only consume as much seed as is expected. */
229
+ // Only consume as much seed as is expected.
190
230
  seed_len = qsize;
191
231
  }
192
232
  OPENSSL_memcpy(seed, seed_in, seed_len);
@@ -217,9 +257,9 @@ int DSA_generate_parameters_ex(DSA *dsa, unsigned bits, const uint8_t *seed_in,
217
257
  }
218
258
 
219
259
  for (;;) {
220
- /* Find q. */
260
+ // Find q.
221
261
  for (;;) {
222
- /* step 1 */
262
+ // step 1
223
263
  if (!BN_GENCB_call(cb, 0, m++)) {
224
264
  goto err;
225
265
  }
@@ -230,12 +270,12 @@ int DSA_generate_parameters_ex(DSA *dsa, unsigned bits, const uint8_t *seed_in,
230
270
  goto err;
231
271
  }
232
272
  } else {
233
- /* If we come back through, use random seed next time. */
273
+ // If we come back through, use random seed next time.
234
274
  seed_in = NULL;
235
275
  }
236
276
  OPENSSL_memcpy(buf, seed, qsize);
237
277
  OPENSSL_memcpy(buf2, seed, qsize);
238
- /* precompute "SEED + 1" for step 7: */
278
+ // precompute "SEED + 1" for step 7:
239
279
  for (i = qsize - 1; i < qsize; i--) {
240
280
  buf[i]++;
241
281
  if (buf[i] != 0) {
@@ -243,7 +283,7 @@ int DSA_generate_parameters_ex(DSA *dsa, unsigned bits, const uint8_t *seed_in,
243
283
  }
244
284
  }
245
285
 
246
- /* step 2 */
286
+ // step 2
247
287
  if (!EVP_Digest(seed, qsize, md, NULL, evpmd, NULL) ||
248
288
  !EVP_Digest(buf, qsize, buf2, NULL, evpmd, NULL)) {
249
289
  goto err;
@@ -252,14 +292,14 @@ int DSA_generate_parameters_ex(DSA *dsa, unsigned bits, const uint8_t *seed_in,
252
292
  md[i] ^= buf2[i];
253
293
  }
254
294
 
255
- /* step 3 */
295
+ // step 3
256
296
  md[0] |= 0x80;
257
297
  md[qsize - 1] |= 0x01;
258
298
  if (!BN_bin2bn(md, qsize, q)) {
259
299
  goto err;
260
300
  }
261
301
 
262
- /* step 4 */
302
+ // step 4
263
303
  r = BN_is_prime_fasttest_ex(q, DSS_prime_checks, ctx, use_random_seed, cb);
264
304
  if (r > 0) {
265
305
  break;
@@ -268,17 +308,17 @@ int DSA_generate_parameters_ex(DSA *dsa, unsigned bits, const uint8_t *seed_in,
268
308
  goto err;
269
309
  }
270
310
 
271
- /* do a callback call */
272
- /* step 5 */
311
+ // do a callback call
312
+ // step 5
273
313
  }
274
314
 
275
315
  if (!BN_GENCB_call(cb, 2, 0) || !BN_GENCB_call(cb, 3, 0)) {
276
316
  goto err;
277
317
  }
278
318
 
279
- /* step 6 */
319
+ // step 6
280
320
  counter = 0;
281
- /* "offset = 2" */
321
+ // "offset = 2"
282
322
 
283
323
  n = (bits - 1) / 160;
284
324
 
@@ -287,11 +327,11 @@ int DSA_generate_parameters_ex(DSA *dsa, unsigned bits, const uint8_t *seed_in,
287
327
  goto err;
288
328
  }
289
329
 
290
- /* step 7 */
330
+ // step 7
291
331
  BN_zero(W);
292
- /* now 'buf' contains "SEED + offset - 1" */
332
+ // now 'buf' contains "SEED + offset - 1"
293
333
  for (k = 0; k <= n; k++) {
294
- /* obtain "SEED + offset + k" by incrementing: */
334
+ // obtain "SEED + offset + k" by incrementing:
295
335
  for (i = qsize - 1; i < qsize; i--) {
296
336
  buf[i]++;
297
337
  if (buf[i] != 0) {
@@ -303,7 +343,7 @@ int DSA_generate_parameters_ex(DSA *dsa, unsigned bits, const uint8_t *seed_in,
303
343
  goto err;
304
344
  }
305
345
 
306
- /* step 8 */
346
+ // step 8
307
347
  if (!BN_bin2bn(md, qsize, r0) ||
308
348
  !BN_lshift(r0, r0, (qsize << 3) * k) ||
309
349
  !BN_add(W, W, r0)) {
@@ -311,14 +351,14 @@ int DSA_generate_parameters_ex(DSA *dsa, unsigned bits, const uint8_t *seed_in,
311
351
  }
312
352
  }
313
353
 
314
- /* more of step 8 */
354
+ // more of step 8
315
355
  if (!BN_mask_bits(W, bits - 1) ||
316
356
  !BN_copy(X, W) ||
317
357
  !BN_add(X, X, test)) {
318
358
  goto err;
319
359
  }
320
360
 
321
- /* step 9 */
361
+ // step 9
322
362
  if (!BN_lshift1(r0, q) ||
323
363
  !BN_mod(c, X, r0, ctx) ||
324
364
  !BN_sub(r0, c, BN_value_one()) ||
@@ -326,23 +366,23 @@ int DSA_generate_parameters_ex(DSA *dsa, unsigned bits, const uint8_t *seed_in,
326
366
  goto err;
327
367
  }
328
368
 
329
- /* step 10 */
369
+ // step 10
330
370
  if (BN_cmp(p, test) >= 0) {
331
- /* step 11 */
371
+ // step 11
332
372
  r = BN_is_prime_fasttest_ex(p, DSS_prime_checks, ctx, 1, cb);
333
373
  if (r > 0) {
334
- goto end; /* found it */
374
+ goto end; // found it
335
375
  }
336
376
  if (r != 0) {
337
377
  goto err;
338
378
  }
339
379
  }
340
380
 
341
- /* step 13 */
381
+ // step 13
342
382
  counter++;
343
- /* "offset = offset + n + 1" */
383
+ // "offset = offset + n + 1"
344
384
 
345
- /* step 14 */
385
+ // step 14
346
386
  if (counter >= 4096) {
347
387
  break;
348
388
  }
@@ -353,8 +393,8 @@ end:
353
393
  goto err;
354
394
  }
355
395
 
356
- /* We now need to generate g */
357
- /* Set r0=(p-1)/q */
396
+ // We now need to generate g
397
+ // Set r0=(p-1)/q
358
398
  if (!BN_sub(test, p, BN_value_one()) ||
359
399
  !BN_div(r0, NULL, test, q, ctx)) {
360
400
  goto err;
@@ -366,7 +406,7 @@ end:
366
406
  }
367
407
 
368
408
  for (;;) {
369
- /* g=test^r0%p */
409
+ // g=test^r0%p
370
410
  if (!BN_mod_exp_mont(g, test, r0, p, ctx, mont)) {
371
411
  goto err;
372
412
  }
@@ -544,9 +584,9 @@ redo:
544
584
  }
545
585
 
546
586
  if (digest_len > BN_num_bytes(dsa->q)) {
547
- /* if the digest length is greater than the size of q use the
548
- * BN_num_bits(dsa->q) leftmost bits of the digest, see
549
- * fips 186-3, 4.2 */
587
+ // if the digest length is greater than the size of q use the
588
+ // BN_num_bits(dsa->q) leftmost bits of the digest, see
589
+ // fips 186-3, 4.2
550
590
  digest_len = BN_num_bytes(dsa->q);
551
591
  }
552
592
 
@@ -554,12 +594,12 @@ redo:
554
594
  goto err;
555
595
  }
556
596
 
557
- /* Compute s = inv(k) (m + xr) mod q */
597
+ // Compute s = inv(k) (m + xr) mod q
558
598
  if (!BN_mod_mul(&xr, dsa->priv_key, r, dsa->q, ctx)) {
559
- goto err; /* s = xr */
599
+ goto err; // s = xr
560
600
  }
561
601
  if (!BN_add(s, &xr, &m)) {
562
- goto err; /* s = m + xr */
602
+ goto err; // s = m + xr
563
603
  }
564
604
  if (BN_cmp(s, dsa->q) > 0) {
565
605
  if (!BN_sub(s, s, dsa->q)) {
@@ -570,8 +610,8 @@ redo:
570
610
  goto err;
571
611
  }
572
612
 
573
- /* Redo if r or s is zero as required by FIPS 186-3: this is
574
- * very unlikely. */
613
+ // Redo if r or s is zero as required by FIPS 186-3: this is
614
+ // very unlikely.
575
615
  if (BN_is_zero(r) || BN_is_zero(s)) {
576
616
  if (noredo) {
577
617
  reason = DSA_R_NEED_NEW_SETUP_VALUES;
@@ -624,7 +664,7 @@ int DSA_do_check_signature(int *out_valid, const uint8_t *digest,
624
664
  }
625
665
 
626
666
  i = BN_num_bits(dsa->q);
627
- /* fips 186-3 allows only different sizes for q */
667
+ // fips 186-3 allows only different sizes for q
628
668
  if (i != 160 && i != 224 && i != 256) {
629
669
  OPENSSL_PUT_ERROR(DSA, DSA_R_BAD_Q_VALUE);
630
670
  return 0;
@@ -655,17 +695,17 @@ int DSA_do_check_signature(int *out_valid, const uint8_t *digest,
655
695
  goto err;
656
696
  }
657
697
 
658
- /* Calculate W = inv(S) mod Q
659
- * save W in u2 */
698
+ // Calculate W = inv(S) mod Q
699
+ // save W in u2
660
700
  if (BN_mod_inverse(&u2, sig->s, dsa->q, ctx) == NULL) {
661
701
  goto err;
662
702
  }
663
703
 
664
- /* save M in u1 */
704
+ // save M in u1
665
705
  if (digest_len > (i >> 3)) {
666
- /* if the digest length is greater than the size of q use the
667
- * BN_num_bits(dsa->q) leftmost bits of the digest, see
668
- * fips 186-3, 4.2 */
706
+ // if the digest length is greater than the size of q use the
707
+ // BN_num_bits(dsa->q) leftmost bits of the digest, see
708
+ // fips 186-3, 4.2
669
709
  digest_len = (i >> 3);
670
710
  }
671
711
 
@@ -673,12 +713,12 @@ int DSA_do_check_signature(int *out_valid, const uint8_t *digest,
673
713
  goto err;
674
714
  }
675
715
 
676
- /* u1 = M * w mod q */
716
+ // u1 = M * w mod q
677
717
  if (!BN_mod_mul(&u1, &u1, &u2, dsa->q, ctx)) {
678
718
  goto err;
679
719
  }
680
720
 
681
- /* u2 = r * w mod q */
721
+ // u2 = r * w mod q
682
722
  if (!BN_mod_mul(&u2, sig->r, &u2, dsa->q, ctx)) {
683
723
  goto err;
684
724
  }
@@ -694,14 +734,14 @@ int DSA_do_check_signature(int *out_valid, const uint8_t *digest,
694
734
  goto err;
695
735
  }
696
736
 
697
- /* BN_copy(&u1,&t1); */
698
- /* let u1 = u1 mod q */
737
+ // BN_copy(&u1,&t1);
738
+ // let u1 = u1 mod q
699
739
  if (!BN_mod(&u1, &t1, dsa->q, ctx)) {
700
740
  goto err;
701
741
  }
702
742
 
703
- /* V is now in u1. If the signature is correct, it will be
704
- * equal to R. */
743
+ // V is now in u1. If the signature is correct, it will be
744
+ // equal to R.
705
745
  *out_valid = BN_ucmp(&u1, sig->r) == 0;
706
746
  ret = 1;
707
747
 
@@ -758,7 +798,7 @@ int DSA_check_signature(int *out_valid, const uint8_t *digest,
758
798
  goto err;
759
799
  }
760
800
 
761
- /* Ensure that the signature uses DER and doesn't have trailing garbage. */
801
+ // Ensure that the signature uses DER and doesn't have trailing garbage.
762
802
  int der_len = i2d_DSA_SIG(s, &der);
763
803
  if (der_len < 0 || (size_t)der_len != sig_len ||
764
804
  OPENSSL_memcmp(sig, der, sig_len)) {
@@ -773,8 +813,8 @@ err:
773
813
  return ret;
774
814
  }
775
815
 
776
- /* der_len_len returns the number of bytes needed to represent a length of |len|
777
- * in DER. */
816
+ // der_len_len returns the number of bytes needed to represent a length of |len|
817
+ // in DER.
778
818
  static size_t der_len_len(size_t len) {
779
819
  if (len < 0x80) {
780
820
  return 1;
@@ -789,18 +829,18 @@ static size_t der_len_len(size_t len) {
789
829
 
790
830
  int DSA_size(const DSA *dsa) {
791
831
  size_t order_len = BN_num_bytes(dsa->q);
792
- /* Compute the maximum length of an |order_len| byte integer. Defensively
793
- * assume that the leading 0x00 is included. */
832
+ // Compute the maximum length of an |order_len| byte integer. Defensively
833
+ // assume that the leading 0x00 is included.
794
834
  size_t integer_len = 1 /* tag */ + der_len_len(order_len + 1) + 1 + order_len;
795
835
  if (integer_len < order_len) {
796
836
  return 0;
797
837
  }
798
- /* A DSA signature is two INTEGERs. */
838
+ // A DSA signature is two INTEGERs.
799
839
  size_t value_len = 2 * integer_len;
800
840
  if (value_len < integer_len) {
801
841
  return 0;
802
842
  }
803
- /* Add the header. */
843
+ // Add the header.
804
844
  size_t ret = 1 /* tag */ + der_len_len(value_len) + value_len;
805
845
  if (ret < value_len) {
806
846
  return 0;
@@ -835,7 +875,7 @@ int DSA_sign_setup(const DSA *dsa, BN_CTX *ctx_in, BIGNUM **out_kinv,
835
875
  goto err;
836
876
  }
837
877
 
838
- /* Get random k */
878
+ // Get random k
839
879
  if (!BN_rand_range_ex(&k, 1, dsa->q)) {
840
880
  goto err;
841
881
  }
@@ -849,16 +889,16 @@ int DSA_sign_setup(const DSA *dsa, BN_CTX *ctx_in, BIGNUM **out_kinv,
849
889
  goto err;
850
890
  }
851
891
 
852
- /* Compute r = (g^k mod p) mod q */
892
+ // Compute r = (g^k mod p) mod q
853
893
  if (!BN_copy(&kq, &k)) {
854
894
  goto err;
855
895
  }
856
896
 
857
- /* We do not want timing information to leak the length of k,
858
- * so we compute g^k using an equivalent exponent of fixed length.
859
- *
860
- * (This is a kludge that we need because the BN_mod_exp_mont()
861
- * does not let us specify the desired timing behaviour.) */
897
+ // We do not want timing information to leak the length of k,
898
+ // so we compute g^k using an equivalent exponent of fixed length.
899
+ //
900
+ // (This is a kludge that we need because the BN_mod_exp_mont()
901
+ // does not let us specify the desired timing behaviour.)
862
902
 
863
903
  if (!BN_add(&kq, &kq, dsa->q)) {
864
904
  goto err;
@@ -875,8 +915,8 @@ int DSA_sign_setup(const DSA *dsa, BN_CTX *ctx_in, BIGNUM **out_kinv,
875
915
  goto err;
876
916
  }
877
917
 
878
- /* Compute part of 's = inv(k) (m + xr) mod q' using Fermat's Little
879
- * Theorem. */
918
+ // Compute part of 's = inv(k) (m + xr) mod q' using Fermat's Little
919
+ // Theorem.
880
920
  kinv = BN_new();
881
921
  if (kinv == NULL ||
882
922
  !bn_mod_inverse_prime(kinv, &k, dsa->q, ctx, dsa->method_mont_q)) {
@@ -908,44 +948,44 @@ err:
908
948
  }
909
949
 
910
950
  int DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_unused *unused,
911
- CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func) {
951
+ CRYPTO_EX_dup *dup_unused, CRYPTO_EX_free *free_func) {
912
952
  int index;
913
- if (!CRYPTO_get_ex_new_index(&g_ex_data_class, &index, argl, argp, dup_func,
953
+ if (!CRYPTO_get_ex_new_index(&g_ex_data_class, &index, argl, argp,
914
954
  free_func)) {
915
955
  return -1;
916
956
  }
917
957
  return index;
918
958
  }
919
959
 
920
- int DSA_set_ex_data(DSA *d, int idx, void *arg) {
921
- return CRYPTO_set_ex_data(&d->ex_data, idx, arg);
960
+ int DSA_set_ex_data(DSA *dsa, int idx, void *arg) {
961
+ return CRYPTO_set_ex_data(&dsa->ex_data, idx, arg);
922
962
  }
923
963
 
924
- void *DSA_get_ex_data(const DSA *d, int idx) {
925
- return CRYPTO_get_ex_data(&d->ex_data, idx);
964
+ void *DSA_get_ex_data(const DSA *dsa, int idx) {
965
+ return CRYPTO_get_ex_data(&dsa->ex_data, idx);
926
966
  }
927
967
 
928
- DH *DSA_dup_DH(const DSA *r) {
929
- DH *ret = NULL;
930
-
931
- if (r == NULL) {
932
- goto err;
968
+ DH *DSA_dup_DH(const DSA *dsa) {
969
+ if (dsa == NULL) {
970
+ return NULL;
933
971
  }
934
- ret = DH_new();
972
+
973
+ DH *ret = DH_new();
935
974
  if (ret == NULL) {
936
975
  goto err;
937
976
  }
938
- if (r->q != NULL) {
939
- ret->priv_length = BN_num_bits(r->q);
940
- if ((ret->q = BN_dup(r->q)) == NULL) {
977
+ if (dsa->q != NULL) {
978
+ ret->priv_length = BN_num_bits(dsa->q);
979
+ if ((ret->q = BN_dup(dsa->q)) == NULL) {
941
980
  goto err;
942
981
  }
943
982
  }
944
- if ((r->p != NULL && (ret->p = BN_dup(r->p)) == NULL) ||
945
- (r->g != NULL && (ret->g = BN_dup(r->g)) == NULL) ||
946
- (r->pub_key != NULL && (ret->pub_key = BN_dup(r->pub_key)) == NULL) ||
947
- (r->priv_key != NULL && (ret->priv_key = BN_dup(r->priv_key)) == NULL)) {
948
- goto err;
983
+ if ((dsa->p != NULL && (ret->p = BN_dup(dsa->p)) == NULL) ||
984
+ (dsa->g != NULL && (ret->g = BN_dup(dsa->g)) == NULL) ||
985
+ (dsa->pub_key != NULL && (ret->pub_key = BN_dup(dsa->pub_key)) == NULL) ||
986
+ (dsa->priv_key != NULL &&
987
+ (ret->priv_key = BN_dup(dsa->priv_key)) == NULL)) {
988
+ goto err;
949
989
  }
950
990
 
951
991
  return ret;