grpc 1.9.1 → 1.10.0.pre1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (637) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +2654 -953
  3. data/etc/roots.pem +282 -683
  4. data/include/grpc/compression.h +9 -26
  5. data/include/grpc/grpc.h +10 -24
  6. data/include/grpc/grpc_security.h +7 -1
  7. data/include/grpc/impl/codegen/compression_types.h +5 -62
  8. data/include/grpc/impl/codegen/grpc_types.h +10 -6
  9. data/include/grpc/module.modulemap +1 -10
  10. data/include/grpc/support/alloc.h +3 -2
  11. data/include/grpc/support/log.h +1 -2
  12. data/{src/core/lib/gpr/thd_internal.h → include/grpc/support/thd_id.h} +23 -9
  13. data/src/boringssl/err_data.c +550 -496
  14. data/src/core/ext/census/grpc_context.cc +2 -1
  15. data/src/core/ext/filters/client_channel/backup_poller.cc +5 -4
  16. data/src/core/ext/filters/client_channel/channel_connectivity.cc +7 -7
  17. data/src/core/ext/filters/client_channel/client_channel.cc +162 -172
  18. data/src/core/ext/filters/client_channel/client_channel_factory.cc +4 -2
  19. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +10 -10
  20. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +18 -14
  21. data/src/core/ext/filters/client_channel/http_proxy.cc +3 -1
  22. data/src/core/ext/filters/client_channel/lb_policy.cc +21 -105
  23. data/src/core/ext/filters/client_channel/lb_policy.h +166 -170
  24. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +41 -36
  25. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1452 -1459
  26. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +3 -2
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +7 -8
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +27 -27
  30. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +279 -304
  31. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +358 -330
  32. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +30 -41
  33. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +7 -14
  34. data/src/core/ext/filters/client_channel/lb_policy_factory.cc +8 -21
  35. data/src/core/ext/filters/client_channel/lb_policy_factory.h +23 -27
  36. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +58 -33
  37. data/src/core/ext/filters/client_channel/lb_policy_registry.h +25 -12
  38. data/src/core/ext/filters/client_channel/parse_address.cc +10 -8
  39. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -2
  40. data/src/core/ext/filters/client_channel/resolver.cc +6 -52
  41. data/src/core/ext/filters/client_channel/resolver.h +98 -55
  42. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +266 -237
  43. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
  44. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +31 -27
  45. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +244 -207
  46. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +161 -148
  47. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +47 -31
  48. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +126 -126
  49. data/src/core/ext/filters/client_channel/resolver_factory.h +33 -32
  50. data/src/core/ext/filters/client_channel/resolver_registry.cc +110 -90
  51. data/src/core/ext/filters/client_channel/resolver_registry.h +49 -36
  52. data/src/core/ext/filters/client_channel/retry_throttle.cc +29 -22
  53. data/src/core/ext/filters/client_channel/subchannel.cc +173 -173
  54. data/src/core/ext/filters/client_channel/subchannel.h +38 -45
  55. data/src/core/ext/filters/client_channel/subchannel_index.cc +44 -40
  56. data/src/core/ext/filters/client_channel/uri_parser.cc +3 -3
  57. data/src/core/ext/filters/deadline/deadline_filter.cc +27 -18
  58. data/src/core/ext/filters/http/client/http_client_filter.cc +26 -23
  59. data/src/core/ext/filters/http/http_filters_plugin.cc +3 -2
  60. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +78 -110
  61. data/src/core/ext/filters/http/server/http_server_filter.cc +29 -26
  62. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +9 -11
  63. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +2 -1
  64. data/src/core/ext/filters/max_age/max_age_filter.cc +14 -14
  65. data/src/core/ext/filters/message_size/message_size_filter.cc +20 -18
  66. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -4
  67. data/src/core/ext/filters/workarounds/workaround_utils.cc +4 -4
  68. data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
  69. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +10 -10
  70. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +4 -4
  71. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +11 -12
  72. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +16 -13
  73. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +36 -9
  74. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +3 -0
  75. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +17 -14
  76. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -145
  77. data/src/core/ext/transport/chttp2/transport/flow_control.cc +16 -14
  78. data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -7
  79. data/src/core/ext/transport/chttp2/transport/frame_data.cc +35 -33
  80. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +27 -25
  81. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +12 -12
  82. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +16 -15
  83. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -19
  84. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +11 -11
  85. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +23 -22
  86. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +35 -35
  87. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +10 -7
  88. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +2 -2
  89. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  90. data/src/core/ext/transport/chttp2/transport/internal.h +1 -1
  91. data/src/core/ext/transport/chttp2/transport/parsing.cc +35 -39
  92. data/src/core/ext/transport/chttp2/transport/stream_map.cc +8 -7
  93. data/src/core/ext/transport/chttp2/transport/varint.cc +5 -5
  94. data/src/core/ext/transport/chttp2/transport/writing.cc +18 -18
  95. data/src/core/ext/transport/inproc/inproc_transport.cc +43 -23
  96. data/src/core/lib/{gpr → avl}/avl.cc +61 -57
  97. data/{include/grpc/support → src/core/lib/avl}/avl.h +25 -35
  98. data/src/core/lib/backoff/backoff.cc +6 -5
  99. data/src/core/lib/channel/channel_args.cc +23 -109
  100. data/src/core/lib/channel/channel_args.h +5 -31
  101. data/src/core/lib/channel/channel_stack.cc +11 -8
  102. data/src/core/lib/channel/channel_stack_builder.cc +10 -7
  103. data/src/core/lib/channel/connected_channel.cc +18 -17
  104. data/src/core/lib/channel/handshaker.cc +8 -8
  105. data/src/core/lib/channel/handshaker_registry.cc +3 -2
  106. data/src/core/lib/compression/algorithm_metadata.h +13 -6
  107. data/src/core/lib/compression/compression.cc +72 -183
  108. data/src/core/lib/compression/compression_internal.cc +274 -0
  109. data/src/core/lib/compression/compression_internal.h +86 -0
  110. data/src/core/lib/compression/message_compress.cc +15 -15
  111. data/src/core/lib/compression/message_compress.h +4 -3
  112. data/src/core/lib/compression/stream_compression_gzip.cc +8 -8
  113. data/src/core/lib/compression/stream_compression_identity.cc +1 -1
  114. data/src/core/lib/debug/stats.cc +10 -8
  115. data/src/core/lib/debug/stats_data.cc +2 -1
  116. data/src/core/lib/debug/trace.cc +3 -3
  117. data/src/core/lib/gpr/alloc.cc +7 -11
  118. data/src/core/lib/gpr/arena.cc +34 -12
  119. data/src/core/lib/gpr/atm.cc +2 -1
  120. data/src/core/lib/gpr/cpu_linux.cc +3 -3
  121. data/src/core/lib/gpr/cpu_posix.cc +2 -1
  122. data/src/core/lib/gpr/env.h +1 -1
  123. data/src/core/lib/gpr/env_linux.cc +1 -1
  124. data/src/core/lib/gpr/env_windows.cc +4 -4
  125. data/src/core/lib/gpr/fork.cc +16 -2
  126. data/src/core/lib/gpr/host_port.cc +5 -4
  127. data/{include/grpc/support → src/core/lib/gpr}/host_port.h +5 -13
  128. data/src/core/lib/gpr/log.cc +5 -4
  129. data/src/core/lib/gpr/log_linux.cc +1 -1
  130. data/src/core/lib/gpr/mpscq.cc +1 -0
  131. data/src/core/lib/gpr/murmur_hash.cc +4 -4
  132. data/src/core/lib/gpr/string.cc +19 -16
  133. data/src/core/lib/gpr/string_posix.cc +3 -3
  134. data/src/core/lib/gpr/sync_posix.cc +5 -9
  135. data/src/core/lib/gpr/thd.cc +3 -3
  136. data/{include/grpc/support → src/core/lib/gpr}/thd.h +20 -28
  137. data/src/core/lib/gpr/thd_posix.cc +6 -4
  138. data/src/core/lib/gpr/thd_windows.cc +3 -1
  139. data/src/core/lib/gpr/time.cc +6 -4
  140. data/src/core/lib/gpr/time_posix.cc +2 -2
  141. data/{include/grpc/support → src/core/lib/gpr}/tls.h +6 -6
  142. data/{include/grpc/support → src/core/lib/gpr}/tls_gcc.h +3 -3
  143. data/{include/grpc/support → src/core/lib/gpr}/tls_msvc.h +3 -3
  144. data/src/core/lib/gpr/tls_pthread.cc +1 -1
  145. data/{include/grpc/support → src/core/lib/gpr}/tls_pthread.h +3 -3
  146. data/{include/grpc/support → src/core/lib/gpr}/useful.h +3 -3
  147. data/src/core/lib/{gpr++ → gprpp}/abstract.h +3 -3
  148. data/src/core/lib/{gpr++ → gprpp}/atomic.h +5 -5
  149. data/src/core/lib/{gpr++ → gprpp}/atomic_with_atm.h +3 -3
  150. data/src/core/lib/{gpr++ → gprpp}/atomic_with_std.h +3 -3
  151. data/src/core/lib/{gpr++ → gprpp}/debug_location.h +3 -3
  152. data/src/core/lib/{gpr++ → gprpp}/inlined_vector.h +44 -22
  153. data/src/core/lib/{gpr++ → gprpp}/manual_constructor.h +2 -2
  154. data/src/core/lib/{gpr++ → gprpp}/memory.h +14 -5
  155. data/src/core/lib/{gpr++ → gprpp}/orphanable.h +39 -14
  156. data/src/core/lib/{gpr++ → gprpp}/ref_counted.h +42 -10
  157. data/src/core/lib/{gpr++ → gprpp}/ref_counted_ptr.h +18 -8
  158. data/src/core/lib/http/format_request.cc +3 -3
  159. data/src/core/lib/http/httpcli.cc +6 -7
  160. data/src/core/lib/http/httpcli_security_connector.cc +10 -10
  161. data/src/core/lib/http/parser.cc +16 -12
  162. data/src/core/lib/iomgr/call_combiner.cc +12 -13
  163. data/src/core/lib/iomgr/closure.h +4 -6
  164. data/src/core/lib/iomgr/combiner.cc +10 -21
  165. data/src/core/lib/iomgr/error.cc +50 -55
  166. data/src/core/lib/iomgr/ev_epoll1_linux.cc +41 -52
  167. data/src/core/lib/iomgr/ev_epollex_linux.cc +80 -28
  168. data/src/core/lib/iomgr/ev_epollsig_linux.cc +23 -30
  169. data/src/core/lib/iomgr/ev_poll_posix.cc +52 -46
  170. data/src/core/lib/iomgr/ev_posix.cc +47 -6
  171. data/src/core/lib/iomgr/exec_ctx.cc +10 -10
  172. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  173. data/src/core/lib/iomgr/executor.cc +16 -13
  174. data/src/core/lib/iomgr/fork_posix.cc +1 -3
  175. data/src/core/lib/iomgr/gethostname_host_name_max.cc +1 -1
  176. data/src/core/lib/iomgr/iocp_windows.cc +1 -2
  177. data/src/core/lib/iomgr/iomgr.cc +2 -2
  178. data/src/core/lib/iomgr/iomgr_uv.cc +2 -0
  179. data/src/core/lib/iomgr/iomgr_uv.h +1 -1
  180. data/src/core/lib/iomgr/is_epollexclusive_available.cc +5 -4
  181. data/src/core/lib/iomgr/load_file.cc +3 -3
  182. data/src/core/lib/iomgr/pollset_windows.cc +1 -1
  183. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -9
  184. data/src/core/lib/iomgr/resolve_address_uv.cc +2 -2
  185. data/src/core/lib/iomgr/resolve_address_windows.cc +3 -2
  186. data/src/core/lib/iomgr/resource_quota.cc +36 -34
  187. data/src/core/lib/iomgr/sockaddr_utils.cc +39 -23
  188. data/src/core/lib/iomgr/socket_factory_posix.cc +5 -5
  189. data/src/core/lib/iomgr/socket_mutator.cc +7 -7
  190. data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -4
  191. data/src/core/lib/iomgr/socket_utils_linux.cc +3 -2
  192. data/src/core/lib/iomgr/tcp_client_posix.cc +7 -6
  193. data/src/core/lib/iomgr/tcp_client_windows.cc +0 -1
  194. data/src/core/lib/iomgr/tcp_posix.cc +47 -55
  195. data/src/core/lib/iomgr/tcp_server_posix.cc +12 -10
  196. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -5
  197. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -3
  198. data/src/core/lib/iomgr/tcp_windows.cc +1 -1
  199. data/src/core/lib/iomgr/timer_generic.cc +16 -14
  200. data/src/core/lib/iomgr/timer_heap.cc +8 -7
  201. data/src/core/lib/iomgr/timer_manager.cc +4 -3
  202. data/src/core/lib/iomgr/udp_server.cc +24 -16
  203. data/src/core/lib/iomgr/unix_sockets_posix.cc +15 -10
  204. data/src/core/lib/iomgr/wakeup_fd_cv.cc +6 -5
  205. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +1 -2
  206. data/src/core/lib/json/json.cc +1 -1
  207. data/src/core/lib/json/json_reader.cc +8 -6
  208. data/src/core/lib/json/json_string.cc +19 -18
  209. data/src/core/lib/json/json_writer.cc +10 -8
  210. data/src/core/lib/profiling/basic_timers.cc +1 -1
  211. data/src/core/lib/profiling/timers.h +3 -20
  212. data/src/core/lib/security/context/security_context.cc +16 -14
  213. data/src/core/lib/security/credentials/composite/composite_credentials.cc +17 -14
  214. data/src/core/lib/security/credentials/credentials.cc +9 -8
  215. data/src/core/lib/security/credentials/credentials.h +1 -1
  216. data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
  217. data/src/core/lib/security/credentials/fake/fake_credentials.cc +12 -13
  218. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +7 -4
  219. data/src/core/lib/security/credentials/iam/iam_credentials.cc +5 -3
  220. data/src/core/lib/security/credentials/jwt/json_token.cc +4 -3
  221. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -7
  222. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +21 -18
  223. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +23 -18
  224. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +11 -7
  225. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +22 -21
  226. data/src/core/lib/security/{transport → security_connector}/security_connector.cc +46 -43
  227. data/src/core/lib/security/{transport → security_connector}/security_connector.h +3 -3
  228. data/src/core/lib/security/transport/client_auth_filter.cc +32 -34
  229. data/src/core/lib/security/transport/lb_targets_info.cc +7 -5
  230. data/src/core/lib/security/transport/secure_endpoint.cc +21 -21
  231. data/src/core/lib/security/transport/security_handshaker.cc +19 -18
  232. data/src/core/lib/security/transport/security_handshaker.h +1 -1
  233. data/src/core/lib/security/transport/server_auth_filter.cc +21 -21
  234. data/src/core/lib/slice/b64.cc +19 -16
  235. data/src/core/lib/slice/percent_encoding.cc +5 -5
  236. data/src/core/lib/slice/slice.cc +35 -33
  237. data/src/core/lib/slice/slice_buffer.cc +16 -14
  238. data/src/core/lib/slice/slice_hash_table.cc +3 -2
  239. data/src/core/lib/slice/slice_intern.cc +21 -25
  240. data/src/core/lib/slice/slice_string_helpers.cc +45 -9
  241. data/src/core/lib/slice/slice_string_helpers.h +6 -0
  242. data/src/core/lib/surface/byte_buffer.cc +2 -2
  243. data/src/core/lib/surface/byte_buffer_reader.cc +6 -3
  244. data/src/core/lib/surface/call.cc +171 -260
  245. data/src/core/lib/surface/call_test_only.h +1 -13
  246. data/src/core/lib/surface/channel.cc +20 -43
  247. data/src/core/lib/surface/channel_init.cc +7 -7
  248. data/src/core/lib/surface/channel_ping.cc +2 -2
  249. data/src/core/lib/surface/completion_queue.cc +69 -75
  250. data/src/core/lib/surface/init.cc +4 -5
  251. data/src/core/lib/surface/init_secure.cc +1 -1
  252. data/src/core/lib/surface/lame_client.cc +1 -1
  253. data/src/core/lib/surface/server.cc +64 -59
  254. data/src/core/lib/surface/version.cc +2 -2
  255. data/src/core/lib/transport/bdp_estimator.cc +6 -5
  256. data/src/core/lib/transport/byte_stream.cc +23 -14
  257. data/src/core/lib/transport/byte_stream.h +1 -1
  258. data/src/core/lib/transport/connectivity_state.cc +9 -13
  259. data/src/core/lib/transport/error_utils.cc +10 -7
  260. data/src/core/lib/transport/metadata.cc +27 -26
  261. data/src/core/lib/transport/metadata.h +1 -1
  262. data/src/core/lib/transport/pid_controller.cc +2 -1
  263. data/src/core/lib/transport/service_config.cc +5 -5
  264. data/src/core/lib/transport/static_metadata.cc +225 -222
  265. data/src/core/lib/transport/static_metadata.h +77 -76
  266. data/src/core/lib/transport/timeout_encoding.cc +3 -2
  267. data/src/core/lib/transport/transport.cc +6 -5
  268. data/src/core/lib/transport/transport_op_string.cc +0 -1
  269. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -4
  270. data/src/core/tsi/alts_transport_security.cc +61 -0
  271. data/src/core/tsi/{gts_transport_security.h → alts_transport_security.h} +16 -8
  272. data/src/core/tsi/fake_transport_security.cc +59 -43
  273. data/src/core/tsi/ssl_transport_security.cc +122 -107
  274. data/src/core/tsi/transport_security.cc +3 -3
  275. data/src/core/tsi/transport_security_adapter.cc +16 -10
  276. data/src/ruby/bin/apis/pubsub_demo.rb +1 -1
  277. data/src/ruby/ext/grpc/rb_channel.c +3 -4
  278. data/src/ruby/ext/grpc/rb_compression_options.c +13 -3
  279. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -76
  280. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +8 -120
  281. data/src/ruby/ext/grpc/rb_server.c +52 -28
  282. data/src/ruby/lib/grpc/generic/rpc_server.rb +7 -4
  283. data/src/ruby/lib/grpc/version.rb +1 -1
  284. data/src/ruby/pb/test/client.rb +1 -1
  285. data/src/ruby/pb/test/server.rb +1 -1
  286. data/src/ruby/spec/client_server_spec.rb +4 -2
  287. data/src/ruby/spec/generic/active_call_spec.rb +2 -1
  288. data/src/ruby/spec/generic/client_stub_spec.rb +32 -8
  289. data/src/ruby/spec/server_spec.rb +26 -7
  290. data/third_party/boringssl/crypto/asn1/a_bitstr.c +7 -2
  291. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +15 -0
  292. data/third_party/boringssl/crypto/asn1/a_gentm.c +1 -1
  293. data/third_party/boringssl/crypto/asn1/a_print.c +0 -28
  294. data/third_party/boringssl/crypto/asn1/a_strnid.c +3 -0
  295. data/third_party/boringssl/crypto/asn1/a_time.c +17 -9
  296. data/third_party/boringssl/crypto/asn1/a_utctm.c +1 -1
  297. data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -49
  298. data/third_party/boringssl/crypto/asn1/asn1_locl.h +1 -1
  299. data/third_party/boringssl/crypto/asn1/tasn_dec.c +9 -9
  300. data/third_party/boringssl/crypto/asn1/tasn_enc.c +0 -6
  301. data/third_party/boringssl/crypto/asn1/time_support.c +5 -5
  302. data/third_party/boringssl/crypto/base64/base64.c +65 -43
  303. data/third_party/boringssl/crypto/bio/bio.c +134 -110
  304. data/third_party/boringssl/crypto/bio/bio_mem.c +9 -9
  305. data/third_party/boringssl/crypto/bio/connect.c +17 -17
  306. data/third_party/boringssl/crypto/bio/fd.c +2 -1
  307. data/third_party/boringssl/crypto/bio/file.c +14 -14
  308. data/third_party/boringssl/crypto/bio/hexdump.c +15 -16
  309. data/third_party/boringssl/crypto/bio/internal.h +14 -14
  310. data/third_party/boringssl/crypto/bio/pair.c +45 -45
  311. data/third_party/boringssl/crypto/bio/printf.c +6 -10
  312. data/third_party/boringssl/crypto/{bn → bn_extra}/bn_asn1.c +9 -9
  313. data/third_party/boringssl/crypto/{bn → bn_extra}/convert.c +18 -223
  314. data/third_party/boringssl/crypto/buf/buf.c +20 -44
  315. data/third_party/boringssl/crypto/bytestring/ber.c +35 -35
  316. data/third_party/boringssl/crypto/bytestring/cbb.c +24 -24
  317. data/third_party/boringssl/crypto/bytestring/cbs.c +33 -37
  318. data/third_party/boringssl/crypto/bytestring/internal.h +38 -38
  319. data/third_party/boringssl/crypto/chacha/chacha.c +7 -7
  320. data/third_party/boringssl/crypto/{asn1/t_bitst.c → cipher_extra/cipher_extra.c} +49 -38
  321. data/third_party/boringssl/crypto/{cipher → cipher_extra}/derive_key.c +0 -2
  322. data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +281 -0
  323. data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +867 -0
  324. data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +326 -0
  325. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_null.c +0 -1
  326. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc2.c +22 -10
  327. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc4.c +0 -0
  328. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_ssl3.c +120 -64
  329. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_tls.c +220 -141
  330. data/third_party/boringssl/crypto/{asn1/x_bignum.c → cipher_extra/internal.h} +61 -86
  331. data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +482 -0
  332. data/third_party/boringssl/crypto/cmac/cmac.c +20 -20
  333. data/third_party/boringssl/crypto/conf/conf.c +32 -20
  334. data/third_party/boringssl/crypto/conf/internal.h +3 -3
  335. data/third_party/boringssl/crypto/cpu-aarch64-linux.c +5 -5
  336. data/third_party/boringssl/crypto/cpu-arm-linux.c +44 -41
  337. data/third_party/boringssl/crypto/cpu-intel.c +68 -43
  338. data/third_party/boringssl/crypto/cpu-ppc64le.c +5 -7
  339. data/third_party/boringssl/crypto/crypto.c +54 -32
  340. data/third_party/boringssl/crypto/curve25519/curve25519.c +269 -269
  341. data/third_party/boringssl/crypto/curve25519/internal.h +28 -8
  342. data/third_party/boringssl/crypto/curve25519/spake25519.c +180 -106
  343. data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +9 -9
  344. data/third_party/boringssl/crypto/dh/check.c +33 -34
  345. data/third_party/boringssl/crypto/dh/dh.c +72 -36
  346. data/third_party/boringssl/crypto/dh/dh_asn1.c +1 -1
  347. data/third_party/boringssl/crypto/dh/params.c +1 -161
  348. data/third_party/boringssl/crypto/digest_extra/digest_extra.c +240 -0
  349. data/third_party/boringssl/crypto/dsa/dsa.c +127 -87
  350. data/third_party/boringssl/crypto/dsa/dsa_asn1.c +1 -1
  351. data/third_party/boringssl/crypto/{ec → ec_extra}/ec_asn1.c +83 -70
  352. data/third_party/boringssl/crypto/ecdh/ecdh.c +1 -1
  353. data/third_party/boringssl/crypto/{ecdsa → ecdsa_extra}/ecdsa_asn1.c +86 -31
  354. data/third_party/boringssl/crypto/engine/engine.c +6 -6
  355. data/third_party/boringssl/crypto/err/err.c +197 -106
  356. data/third_party/boringssl/crypto/err/internal.h +58 -0
  357. data/third_party/boringssl/crypto/evp/digestsign.c +86 -14
  358. data/third_party/boringssl/crypto/evp/evp.c +6 -11
  359. data/third_party/boringssl/crypto/evp/evp_asn1.c +17 -17
  360. data/third_party/boringssl/crypto/evp/evp_ctx.c +15 -11
  361. data/third_party/boringssl/crypto/evp/internal.h +66 -51
  362. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +11 -11
  363. data/third_party/boringssl/crypto/evp/p_ec.c +10 -8
  364. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +11 -12
  365. data/third_party/boringssl/crypto/evp/p_ed25519.c +71 -0
  366. data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +190 -0
  367. data/third_party/boringssl/crypto/evp/p_rsa.c +50 -95
  368. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +28 -18
  369. data/third_party/boringssl/crypto/evp/pbkdf.c +49 -56
  370. data/third_party/boringssl/crypto/evp/print.c +5 -36
  371. data/third_party/boringssl/crypto/evp/scrypt.c +209 -0
  372. data/third_party/boringssl/crypto/ex_data.c +15 -45
  373. data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +100 -0
  374. data/third_party/boringssl/crypto/fipsmodule/bcm.c +679 -0
  375. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/internal.h +40 -27
  376. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/rsaz_exp.h +0 -0
  377. data/third_party/boringssl/crypto/{cipher → fipsmodule/cipher}/internal.h +34 -67
  378. data/third_party/boringssl/crypto/fipsmodule/delocate.h +88 -0
  379. data/third_party/boringssl/crypto/{des → fipsmodule/des}/internal.h +18 -4
  380. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/internal.h +18 -18
  381. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/md32_common.h +58 -64
  382. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/internal.h +58 -52
  383. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64-table.h +11 -11
  384. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64.h +32 -32
  385. data/third_party/boringssl/crypto/{rand/internal.h → fipsmodule/is_fips.c} +10 -15
  386. data/third_party/boringssl/crypto/{modes → fipsmodule/modes}/internal.h +112 -119
  387. data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +92 -0
  388. data/third_party/boringssl/crypto/{rsa → fipsmodule/rsa}/internal.h +36 -49
  389. data/third_party/boringssl/crypto/hkdf/hkdf.c +6 -6
  390. data/third_party/boringssl/crypto/internal.h +301 -233
  391. data/third_party/boringssl/crypto/lhash/lhash.c +26 -45
  392. data/third_party/boringssl/crypto/mem.c +76 -33
  393. data/third_party/boringssl/crypto/obj/obj.c +44 -28
  394. data/third_party/boringssl/crypto/obj/obj_dat.h +102 -34
  395. data/third_party/boringssl/crypto/obj/obj_xref.c +6 -6
  396. data/third_party/boringssl/crypto/pem/pem_info.c +3 -5
  397. data/third_party/boringssl/crypto/pem/pem_lib.c +1 -6
  398. data/third_party/boringssl/crypto/pem/pem_pk8.c +1 -0
  399. data/third_party/boringssl/crypto/pem/pem_pkey.c +1 -1
  400. data/third_party/boringssl/crypto/pem/pem_xaux.c +0 -2
  401. data/third_party/boringssl/crypto/pkcs7/internal.h +49 -0
  402. data/third_party/boringssl/crypto/pkcs7/pkcs7.c +166 -0
  403. data/third_party/boringssl/crypto/{x509/pkcs7.c → pkcs7/pkcs7_x509.c} +27 -147
  404. data/third_party/boringssl/crypto/pkcs8/internal.h +34 -16
  405. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +120 -39
  406. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +144 -857
  407. data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +789 -0
  408. data/third_party/boringssl/crypto/poly1305/internal.h +4 -3
  409. data/third_party/boringssl/crypto/poly1305/poly1305.c +14 -14
  410. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +11 -11
  411. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +41 -41
  412. data/third_party/boringssl/crypto/pool/internal.h +2 -2
  413. data/third_party/boringssl/crypto/pool/pool.c +15 -15
  414. data/third_party/boringssl/crypto/{rand → rand_extra}/deterministic.c +7 -7
  415. data/third_party/boringssl/crypto/rand_extra/forkunsafe.c +46 -0
  416. data/third_party/boringssl/crypto/{rand → rand_extra}/fuchsia.c +7 -7
  417. data/third_party/boringssl/crypto/rand_extra/rand_extra.c +70 -0
  418. data/third_party/boringssl/crypto/{rand → rand_extra}/windows.c +5 -5
  419. data/third_party/boringssl/crypto/refcount_c11.c +2 -2
  420. data/third_party/boringssl/crypto/refcount_lock.c +1 -1
  421. data/third_party/boringssl/crypto/{rsa → rsa_extra}/rsa_asn1.c +12 -120
  422. data/third_party/boringssl/crypto/stack/stack.c +13 -13
  423. data/third_party/boringssl/crypto/thread_none.c +1 -1
  424. data/third_party/boringssl/crypto/thread_pthread.c +1 -1
  425. data/third_party/boringssl/crypto/thread_win.c +40 -40
  426. data/third_party/boringssl/crypto/x509/a_sign.c +5 -12
  427. data/third_party/boringssl/crypto/x509/a_verify.c +6 -18
  428. data/third_party/boringssl/crypto/x509/algorithm.c +22 -6
  429. data/third_party/boringssl/crypto/x509/asn1_gen.c +30 -7
  430. data/third_party/boringssl/crypto/x509/by_dir.c +2 -2
  431. data/third_party/boringssl/crypto/x509/by_file.c +2 -2
  432. data/third_party/boringssl/crypto/x509/rsa_pss.c +5 -5
  433. data/third_party/boringssl/crypto/x509/t_x509.c +2 -1
  434. data/third_party/boringssl/crypto/x509/x509_def.c +5 -0
  435. data/third_party/boringssl/crypto/x509/x509_lu.c +35 -4
  436. data/third_party/boringssl/crypto/x509/x509_set.c +10 -0
  437. data/third_party/boringssl/crypto/x509/x509_vfy.c +20 -17
  438. data/third_party/boringssl/crypto/x509/x_name.c +13 -16
  439. data/third_party/boringssl/crypto/x509/x_x509.c +3 -3
  440. data/third_party/boringssl/crypto/x509/x_x509a.c +0 -7
  441. data/third_party/boringssl/crypto/x509v3/ext_dat.h +8 -0
  442. data/third_party/boringssl/crypto/x509v3/pcy_int.h +2 -2
  443. data/third_party/boringssl/crypto/x509v3/pcy_lib.c +0 -9
  444. data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -1
  445. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +25 -15
  446. data/third_party/boringssl/crypto/x509v3/v3_alt.c +21 -11
  447. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +9 -3
  448. data/third_party/boringssl/crypto/x509v3/v3_info.c +22 -14
  449. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +27 -11
  450. data/third_party/boringssl/crypto/x509v3/v3_pci.c +0 -33
  451. data/third_party/boringssl/crypto/x509v3/v3_utl.c +4 -4
  452. data/third_party/boringssl/include/openssl/aead.h +280 -191
  453. data/third_party/boringssl/include/openssl/aes.h +50 -50
  454. data/third_party/boringssl/include/openssl/arm_arch.h +12 -12
  455. data/third_party/boringssl/include/openssl/asn1.h +14 -77
  456. data/third_party/boringssl/include/openssl/asn1t.h +11 -15
  457. data/third_party/boringssl/include/openssl/base.h +78 -51
  458. data/third_party/boringssl/include/openssl/base64.h +68 -68
  459. data/third_party/boringssl/include/openssl/bio.h +472 -406
  460. data/third_party/boringssl/include/openssl/blowfish.h +1 -1
  461. data/third_party/boringssl/include/openssl/bn.h +454 -435
  462. data/third_party/boringssl/include/openssl/buf.h +27 -27
  463. data/third_party/boringssl/include/openssl/bytestring.h +282 -267
  464. data/third_party/boringssl/include/openssl/cast.h +2 -2
  465. data/third_party/boringssl/include/openssl/chacha.h +5 -5
  466. data/third_party/boringssl/include/openssl/cipher.h +209 -200
  467. data/third_party/boringssl/include/openssl/cmac.h +27 -27
  468. data/third_party/boringssl/include/openssl/conf.h +49 -46
  469. data/third_party/boringssl/include/openssl/cpu.h +60 -45
  470. data/third_party/boringssl/include/openssl/crypto.h +59 -35
  471. data/third_party/boringssl/include/openssl/curve25519.h +97 -92
  472. data/third_party/boringssl/include/openssl/des.h +25 -25
  473. data/third_party/boringssl/include/openssl/dh.h +98 -97
  474. data/third_party/boringssl/include/openssl/digest.h +143 -114
  475. data/third_party/boringssl/include/openssl/dsa.h +217 -202
  476. data/third_party/boringssl/include/openssl/ec.h +132 -131
  477. data/third_party/boringssl/include/openssl/ec_key.h +132 -128
  478. data/third_party/boringssl/include/openssl/ecdh.h +9 -9
  479. data/third_party/boringssl/include/openssl/ecdsa.h +66 -66
  480. data/third_party/boringssl/include/openssl/engine.h +38 -38
  481. data/third_party/boringssl/include/openssl/err.h +189 -219
  482. data/third_party/boringssl/include/openssl/evp.h +473 -397
  483. data/third_party/boringssl/include/openssl/ex_data.h +46 -56
  484. data/third_party/boringssl/include/openssl/hkdf.h +17 -17
  485. data/third_party/boringssl/include/openssl/hmac.h +55 -43
  486. data/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  487. data/third_party/boringssl/include/openssl/lhash.h +67 -67
  488. data/third_party/boringssl/include/openssl/lhash_macros.h +4 -4
  489. data/third_party/boringssl/include/openssl/md4.h +14 -14
  490. data/third_party/boringssl/include/openssl/md5.h +14 -14
  491. data/third_party/boringssl/include/openssl/mem.h +39 -33
  492. data/third_party/boringssl/include/openssl/nid.h +43 -0
  493. data/third_party/boringssl/include/openssl/obj.h +93 -87
  494. data/third_party/boringssl/include/openssl/opensslconf.h +8 -1
  495. data/third_party/boringssl/include/openssl/pem.h +2 -122
  496. data/third_party/boringssl/include/openssl/pkcs7.h +68 -2
  497. data/third_party/boringssl/include/openssl/pkcs8.h +81 -66
  498. data/third_party/boringssl/include/openssl/poly1305.h +11 -11
  499. data/third_party/boringssl/include/openssl/pool.h +29 -25
  500. data/third_party/boringssl/include/openssl/rand.h +48 -45
  501. data/third_party/boringssl/include/openssl/rc4.h +9 -9
  502. data/third_party/boringssl/include/openssl/ripemd.h +13 -13
  503. data/third_party/boringssl/include/openssl/rsa.h +371 -340
  504. data/third_party/boringssl/include/openssl/sha.h +71 -71
  505. data/third_party/boringssl/include/openssl/span.h +191 -0
  506. data/third_party/boringssl/include/openssl/ssl.h +2639 -2519
  507. data/third_party/boringssl/include/openssl/ssl3.h +39 -122
  508. data/third_party/boringssl/include/openssl/stack.h +355 -164
  509. data/third_party/boringssl/include/openssl/thread.h +43 -43
  510. data/third_party/boringssl/include/openssl/tls1.h +60 -63
  511. data/third_party/boringssl/include/openssl/type_check.h +10 -14
  512. data/third_party/boringssl/include/openssl/x509.h +41 -116
  513. data/third_party/boringssl/include/openssl/x509_vfy.h +17 -25
  514. data/third_party/boringssl/include/openssl/x509v3.h +27 -21
  515. data/third_party/boringssl/ssl/{bio_ssl.c → bio_ssl.cc} +9 -5
  516. data/third_party/boringssl/ssl/{custom_extensions.c → custom_extensions.cc} +19 -12
  517. data/third_party/boringssl/ssl/{d1_both.c → d1_both.cc} +224 -193
  518. data/third_party/boringssl/ssl/{d1_lib.c → d1_lib.cc} +86 -79
  519. data/third_party/boringssl/ssl/{d1_pkt.c → d1_pkt.cc} +55 -87
  520. data/third_party/boringssl/ssl/{d1_srtp.c → d1_srtp.cc} +12 -16
  521. data/third_party/boringssl/ssl/{dtls_method.c → dtls_method.cc} +33 -50
  522. data/third_party/boringssl/ssl/{dtls_record.c → dtls_record.cc} +76 -64
  523. data/third_party/boringssl/ssl/handshake.cc +547 -0
  524. data/third_party/boringssl/ssl/handshake_client.cc +1828 -0
  525. data/third_party/boringssl/ssl/handshake_server.cc +1672 -0
  526. data/third_party/boringssl/ssl/internal.h +2027 -1280
  527. data/third_party/boringssl/ssl/s3_both.cc +603 -0
  528. data/third_party/boringssl/ssl/{s3_lib.c → s3_lib.cc} +22 -10
  529. data/third_party/boringssl/ssl/{s3_pkt.c → s3_pkt.cc} +171 -75
  530. data/third_party/boringssl/ssl/ssl_aead_ctx.cc +415 -0
  531. data/third_party/boringssl/ssl/{ssl_asn1.c → ssl_asn1.cc} +257 -261
  532. data/third_party/boringssl/ssl/{ssl_buffer.c → ssl_buffer.cc} +81 -97
  533. data/third_party/boringssl/ssl/{ssl_cert.c → ssl_cert.cc} +304 -414
  534. data/third_party/boringssl/ssl/{ssl_cipher.c → ssl_cipher.cc} +427 -505
  535. data/third_party/boringssl/ssl/{ssl_file.c → ssl_file.cc} +24 -16
  536. data/third_party/boringssl/ssl/ssl_key_share.cc +245 -0
  537. data/third_party/boringssl/ssl/{ssl_lib.c → ssl_lib.cc} +665 -828
  538. data/third_party/boringssl/ssl/ssl_privkey.cc +518 -0
  539. data/third_party/boringssl/ssl/{ssl_session.c → ssl_session.cc} +596 -471
  540. data/third_party/boringssl/ssl/{ssl_stat.c → ssl_stat.cc} +5 -224
  541. data/third_party/boringssl/ssl/{ssl_transcript.c → ssl_transcript.cc} +117 -140
  542. data/third_party/boringssl/ssl/ssl_versions.cc +439 -0
  543. data/third_party/boringssl/ssl/{ssl_x509.c → ssl_x509.cc} +751 -267
  544. data/third_party/boringssl/ssl/{t1_enc.c → t1_enc.cc} +120 -161
  545. data/third_party/boringssl/ssl/{t1_lib.c → t1_lib.cc} +859 -966
  546. data/third_party/boringssl/ssl/{tls13_both.c → tls13_both.cc} +202 -284
  547. data/third_party/boringssl/ssl/tls13_client.cc +842 -0
  548. data/third_party/boringssl/ssl/{tls13_enc.c → tls13_enc.cc} +108 -90
  549. data/third_party/boringssl/ssl/tls13_server.cc +967 -0
  550. data/third_party/boringssl/ssl/{tls_method.c → tls_method.cc} +94 -73
  551. data/third_party/boringssl/ssl/tls_record.cc +675 -0
  552. metadata +117 -168
  553. data/include/grpc/support/cmdline.h +0 -88
  554. data/include/grpc/support/subprocess.h +0 -44
  555. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -29
  556. data/src/core/ext/filters/client_channel/resolver_factory.cc +0 -40
  557. data/src/core/lib/gpr/cmdline.cc +0 -330
  558. data/src/core/lib/gpr/subprocess_posix.cc +0 -99
  559. data/src/core/lib/gpr/subprocess_windows.cc +0 -126
  560. data/src/core/lib/surface/alarm.cc +0 -137
  561. data/src/core/lib/surface/alarm_internal.h +0 -40
  562. data/src/core/tsi/gts_transport_security.cc +0 -40
  563. data/third_party/boringssl/crypto/aes/aes.c +0 -1142
  564. data/third_party/boringssl/crypto/aes/internal.h +0 -87
  565. data/third_party/boringssl/crypto/aes/key_wrap.c +0 -138
  566. data/third_party/boringssl/crypto/aes/mode_wrappers.c +0 -112
  567. data/third_party/boringssl/crypto/asn1/x_long.c +0 -200
  568. data/third_party/boringssl/crypto/bn/add.c +0 -377
  569. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +0 -532
  570. data/third_party/boringssl/crypto/bn/bn.c +0 -365
  571. data/third_party/boringssl/crypto/bn/cmp.c +0 -239
  572. data/third_party/boringssl/crypto/bn/ctx.c +0 -313
  573. data/third_party/boringssl/crypto/bn/div.c +0 -728
  574. data/third_party/boringssl/crypto/bn/exponentiation.c +0 -1240
  575. data/third_party/boringssl/crypto/bn/gcd.c +0 -635
  576. data/third_party/boringssl/crypto/bn/generic.c +0 -707
  577. data/third_party/boringssl/crypto/bn/kronecker.c +0 -176
  578. data/third_party/boringssl/crypto/bn/montgomery.c +0 -409
  579. data/third_party/boringssl/crypto/bn/montgomery_inv.c +0 -207
  580. data/third_party/boringssl/crypto/bn/mul.c +0 -871
  581. data/third_party/boringssl/crypto/bn/prime.c +0 -861
  582. data/third_party/boringssl/crypto/bn/random.c +0 -343
  583. data/third_party/boringssl/crypto/bn/rsaz_exp.c +0 -254
  584. data/third_party/boringssl/crypto/bn/shift.c +0 -307
  585. data/third_party/boringssl/crypto/bn/sqrt.c +0 -506
  586. data/third_party/boringssl/crypto/cipher/aead.c +0 -156
  587. data/third_party/boringssl/crypto/cipher/cipher.c +0 -657
  588. data/third_party/boringssl/crypto/cipher/e_aes.c +0 -1771
  589. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +0 -276
  590. data/third_party/boringssl/crypto/cipher/e_des.c +0 -205
  591. data/third_party/boringssl/crypto/cipher/tls_cbc.c +0 -482
  592. data/third_party/boringssl/crypto/des/des.c +0 -771
  593. data/third_party/boringssl/crypto/digest/digest.c +0 -251
  594. data/third_party/boringssl/crypto/digest/digests.c +0 -358
  595. data/third_party/boringssl/crypto/ec/ec.c +0 -847
  596. data/third_party/boringssl/crypto/ec/ec_key.c +0 -479
  597. data/third_party/boringssl/crypto/ec/ec_montgomery.c +0 -303
  598. data/third_party/boringssl/crypto/ec/oct.c +0 -416
  599. data/third_party/boringssl/crypto/ec/p224-64.c +0 -1143
  600. data/third_party/boringssl/crypto/ec/p256-64.c +0 -1701
  601. data/third_party/boringssl/crypto/ec/p256-x86_64.c +0 -561
  602. data/third_party/boringssl/crypto/ec/simple.c +0 -1118
  603. data/third_party/boringssl/crypto/ec/util-64.c +0 -109
  604. data/third_party/boringssl/crypto/ec/wnaf.c +0 -458
  605. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +0 -479
  606. data/third_party/boringssl/crypto/hmac/hmac.c +0 -215
  607. data/third_party/boringssl/crypto/md4/md4.c +0 -236
  608. data/third_party/boringssl/crypto/md5/md5.c +0 -285
  609. data/third_party/boringssl/crypto/modes/cbc.c +0 -212
  610. data/third_party/boringssl/crypto/modes/cfb.c +0 -230
  611. data/third_party/boringssl/crypto/modes/ctr.c +0 -219
  612. data/third_party/boringssl/crypto/modes/gcm.c +0 -1071
  613. data/third_party/boringssl/crypto/modes/ofb.c +0 -95
  614. data/third_party/boringssl/crypto/modes/polyval.c +0 -94
  615. data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +0 -85
  616. data/third_party/boringssl/crypto/rand/rand.c +0 -244
  617. data/third_party/boringssl/crypto/rand/urandom.c +0 -335
  618. data/third_party/boringssl/crypto/rsa/blinding.c +0 -265
  619. data/third_party/boringssl/crypto/rsa/padding.c +0 -708
  620. data/third_party/boringssl/crypto/rsa/rsa.c +0 -830
  621. data/third_party/boringssl/crypto/rsa/rsa_impl.c +0 -1100
  622. data/third_party/boringssl/crypto/sha/sha1-altivec.c +0 -346
  623. data/third_party/boringssl/crypto/sha/sha1.c +0 -355
  624. data/third_party/boringssl/crypto/sha/sha256.c +0 -329
  625. data/third_party/boringssl/crypto/sha/sha512.c +0 -609
  626. data/third_party/boringssl/crypto/x509/x509type.c +0 -126
  627. data/third_party/boringssl/include/openssl/stack_macros.h +0 -3987
  628. data/third_party/boringssl/ssl/handshake_client.c +0 -1883
  629. data/third_party/boringssl/ssl/handshake_server.c +0 -1950
  630. data/third_party/boringssl/ssl/s3_both.c +0 -895
  631. data/third_party/boringssl/ssl/ssl_aead_ctx.c +0 -335
  632. data/third_party/boringssl/ssl/ssl_ecdh.c +0 -465
  633. data/third_party/boringssl/ssl/ssl_privkey.c +0 -683
  634. data/third_party/boringssl/ssl/ssl_privkey_cc.cc +0 -76
  635. data/third_party/boringssl/ssl/tls13_client.c +0 -712
  636. data/third_party/boringssl/ssl/tls13_server.c +0 -680
  637. data/third_party/boringssl/ssl/tls_record.c +0 -556
@@ -1,707 +0,0 @@
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/bn.h>
58
-
59
- #include <assert.h>
60
-
61
- #include "internal.h"
62
-
63
-
64
- /* This file has two other implementations: x86 assembly language in
65
- * asm/bn-586.pl and x86_64 inline assembly in asm/x86_64-gcc.c. */
66
- #if defined(OPENSSL_NO_ASM) || \
67
- !(defined(OPENSSL_X86) || (defined(OPENSSL_X86_64) && defined(__GNUC__)))
68
-
69
- #ifdef BN_ULLONG
70
- #define mul_add(r, a, w, c) \
71
- do { \
72
- BN_ULLONG t; \
73
- t = (BN_ULLONG)(w) * (a) + (r) + (c); \
74
- (r) = Lw(t); \
75
- (c) = Hw(t); \
76
- } while (0)
77
-
78
- #define mul(r, a, w, c) \
79
- do { \
80
- BN_ULLONG t; \
81
- t = (BN_ULLONG)(w) * (a) + (c); \
82
- (r) = Lw(t); \
83
- (c) = Hw(t); \
84
- } while (0)
85
-
86
- #define sqr(r0, r1, a) \
87
- do { \
88
- BN_ULLONG t; \
89
- t = (BN_ULLONG)(a) * (a); \
90
- (r0) = Lw(t); \
91
- (r1) = Hw(t); \
92
- } while (0)
93
-
94
- #else
95
-
96
- #define mul_add(r, a, w, c) \
97
- do { \
98
- BN_ULONG high, low, ret, tmp = (a); \
99
- ret = (r); \
100
- BN_UMULT_LOHI(low, high, w, tmp); \
101
- ret += (c); \
102
- (c) = (ret < (c)) ? 1 : 0; \
103
- (c) += high; \
104
- ret += low; \
105
- (c) += (ret < low) ? 1 : 0; \
106
- (r) = ret; \
107
- } while (0)
108
-
109
- #define mul(r, a, w, c) \
110
- do { \
111
- BN_ULONG high, low, ret, ta = (a); \
112
- BN_UMULT_LOHI(low, high, w, ta); \
113
- ret = low + (c); \
114
- (c) = high; \
115
- (c) += (ret < low) ? 1 : 0; \
116
- (r) = ret; \
117
- } while (0)
118
-
119
- #define sqr(r0, r1, a) \
120
- do { \
121
- BN_ULONG tmp = (a); \
122
- BN_UMULT_LOHI(r0, r1, tmp, tmp); \
123
- } while (0)
124
-
125
- #endif /* !BN_ULLONG */
126
-
127
- BN_ULONG bn_mul_add_words(BN_ULONG *rp, const BN_ULONG *ap, int num,
128
- BN_ULONG w) {
129
- BN_ULONG c1 = 0;
130
-
131
- assert(num >= 0);
132
- if (num <= 0) {
133
- return c1;
134
- }
135
-
136
- while (num & ~3) {
137
- mul_add(rp[0], ap[0], w, c1);
138
- mul_add(rp[1], ap[1], w, c1);
139
- mul_add(rp[2], ap[2], w, c1);
140
- mul_add(rp[3], ap[3], w, c1);
141
- ap += 4;
142
- rp += 4;
143
- num -= 4;
144
- }
145
-
146
- while (num) {
147
- mul_add(rp[0], ap[0], w, c1);
148
- ap++;
149
- rp++;
150
- num--;
151
- }
152
-
153
- return c1;
154
- }
155
-
156
- BN_ULONG bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG w) {
157
- BN_ULONG c1 = 0;
158
-
159
- assert(num >= 0);
160
- if (num <= 0) {
161
- return c1;
162
- }
163
-
164
- while (num & ~3) {
165
- mul(rp[0], ap[0], w, c1);
166
- mul(rp[1], ap[1], w, c1);
167
- mul(rp[2], ap[2], w, c1);
168
- mul(rp[3], ap[3], w, c1);
169
- ap += 4;
170
- rp += 4;
171
- num -= 4;
172
- }
173
- while (num) {
174
- mul(rp[0], ap[0], w, c1);
175
- ap++;
176
- rp++;
177
- num--;
178
- }
179
- return c1;
180
- }
181
-
182
- void bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n) {
183
- assert(n >= 0);
184
- if (n <= 0) {
185
- return;
186
- }
187
-
188
- while (n & ~3) {
189
- sqr(r[0], r[1], a[0]);
190
- sqr(r[2], r[3], a[1]);
191
- sqr(r[4], r[5], a[2]);
192
- sqr(r[6], r[7], a[3]);
193
- a += 4;
194
- r += 8;
195
- n -= 4;
196
- }
197
- while (n) {
198
- sqr(r[0], r[1], a[0]);
199
- a++;
200
- r += 2;
201
- n--;
202
- }
203
- }
204
-
205
- #ifdef BN_ULLONG
206
- BN_ULONG bn_add_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b,
207
- int n) {
208
- BN_ULLONG ll = 0;
209
-
210
- assert(n >= 0);
211
- if (n <= 0) {
212
- return (BN_ULONG)0;
213
- }
214
-
215
- while (n & ~3) {
216
- ll += (BN_ULLONG)a[0] + b[0];
217
- r[0] = (BN_ULONG)ll & BN_MASK2;
218
- ll >>= BN_BITS2;
219
- ll += (BN_ULLONG)a[1] + b[1];
220
- r[1] = (BN_ULONG)ll & BN_MASK2;
221
- ll >>= BN_BITS2;
222
- ll += (BN_ULLONG)a[2] + b[2];
223
- r[2] = (BN_ULONG)ll & BN_MASK2;
224
- ll >>= BN_BITS2;
225
- ll += (BN_ULLONG)a[3] + b[3];
226
- r[3] = (BN_ULONG)ll & BN_MASK2;
227
- ll >>= BN_BITS2;
228
- a += 4;
229
- b += 4;
230
- r += 4;
231
- n -= 4;
232
- }
233
- while (n) {
234
- ll += (BN_ULLONG)a[0] + b[0];
235
- r[0] = (BN_ULONG)ll & BN_MASK2;
236
- ll >>= BN_BITS2;
237
- a++;
238
- b++;
239
- r++;
240
- n--;
241
- }
242
- return (BN_ULONG)ll;
243
- }
244
-
245
- #else /* !BN_ULLONG */
246
-
247
- BN_ULONG bn_add_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b,
248
- int n) {
249
- BN_ULONG c, l, t;
250
-
251
- assert(n >= 0);
252
- if (n <= 0) {
253
- return (BN_ULONG)0;
254
- }
255
-
256
- c = 0;
257
- while (n & ~3) {
258
- t = a[0];
259
- t = (t + c) & BN_MASK2;
260
- c = (t < c);
261
- l = (t + b[0]) & BN_MASK2;
262
- c += (l < t);
263
- r[0] = l;
264
- t = a[1];
265
- t = (t + c) & BN_MASK2;
266
- c = (t < c);
267
- l = (t + b[1]) & BN_MASK2;
268
- c += (l < t);
269
- r[1] = l;
270
- t = a[2];
271
- t = (t + c) & BN_MASK2;
272
- c = (t < c);
273
- l = (t + b[2]) & BN_MASK2;
274
- c += (l < t);
275
- r[2] = l;
276
- t = a[3];
277
- t = (t + c) & BN_MASK2;
278
- c = (t < c);
279
- l = (t + b[3]) & BN_MASK2;
280
- c += (l < t);
281
- r[3] = l;
282
- a += 4;
283
- b += 4;
284
- r += 4;
285
- n -= 4;
286
- }
287
- while (n) {
288
- t = a[0];
289
- t = (t + c) & BN_MASK2;
290
- c = (t < c);
291
- l = (t + b[0]) & BN_MASK2;
292
- c += (l < t);
293
- r[0] = l;
294
- a++;
295
- b++;
296
- r++;
297
- n--;
298
- }
299
- return (BN_ULONG)c;
300
- }
301
-
302
- #endif /* !BN_ULLONG */
303
-
304
- BN_ULONG bn_sub_words(BN_ULONG *r, const BN_ULONG *a, const BN_ULONG *b,
305
- int n) {
306
- BN_ULONG t1, t2;
307
- int c = 0;
308
-
309
- assert(n >= 0);
310
- if (n <= 0) {
311
- return (BN_ULONG)0;
312
- }
313
-
314
- while (n & ~3) {
315
- t1 = a[0];
316
- t2 = b[0];
317
- r[0] = (t1 - t2 - c) & BN_MASK2;
318
- if (t1 != t2) {
319
- c = (t1 < t2);
320
- }
321
- t1 = a[1];
322
- t2 = b[1];
323
- r[1] = (t1 - t2 - c) & BN_MASK2;
324
- if (t1 != t2) {
325
- c = (t1 < t2);
326
- }
327
- t1 = a[2];
328
- t2 = b[2];
329
- r[2] = (t1 - t2 - c) & BN_MASK2;
330
- if (t1 != t2) {
331
- c = (t1 < t2);
332
- }
333
- t1 = a[3];
334
- t2 = b[3];
335
- r[3] = (t1 - t2 - c) & BN_MASK2;
336
- if (t1 != t2) {
337
- c = (t1 < t2);
338
- }
339
- a += 4;
340
- b += 4;
341
- r += 4;
342
- n -= 4;
343
- }
344
- while (n) {
345
- t1 = a[0];
346
- t2 = b[0];
347
- r[0] = (t1 - t2 - c) & BN_MASK2;
348
- if (t1 != t2) {
349
- c = (t1 < t2);
350
- }
351
- a++;
352
- b++;
353
- r++;
354
- n--;
355
- }
356
- return c;
357
- }
358
-
359
- /* mul_add_c(a,b,c0,c1,c2) -- c+=a*b for three word number c=(c2,c1,c0) */
360
- /* mul_add_c2(a,b,c0,c1,c2) -- c+=2*a*b for three word number c=(c2,c1,c0) */
361
- /* sqr_add_c(a,i,c0,c1,c2) -- c+=a[i]^2 for three word number c=(c2,c1,c0) */
362
- /* sqr_add_c2(a,i,c0,c1,c2) -- c+=2*a[i]*a[j] for three word number c=(c2,c1,c0) */
363
-
364
- #ifdef BN_ULLONG
365
-
366
- /* Keep in mind that additions to multiplication result can not overflow,
367
- * because its high half cannot be all-ones. */
368
- #define mul_add_c(a, b, c0, c1, c2) \
369
- do { \
370
- BN_ULONG hi; \
371
- BN_ULLONG t = (BN_ULLONG)(a) * (b); \
372
- t += (c0); /* no carry */ \
373
- (c0) = (BN_ULONG)Lw(t); \
374
- hi = (BN_ULONG)Hw(t); \
375
- (c1) = ((c1) + (hi)) & BN_MASK2; \
376
- if ((c1) < hi) { \
377
- (c2)++; \
378
- } \
379
- } while (0)
380
-
381
- #define mul_add_c2(a, b, c0, c1, c2) \
382
- do { \
383
- BN_ULONG hi; \
384
- BN_ULLONG t = (BN_ULLONG)(a) * (b); \
385
- BN_ULLONG tt = t + (c0); /* no carry */ \
386
- (c0) = (BN_ULONG)Lw(tt); \
387
- hi = (BN_ULONG)Hw(tt); \
388
- (c1) = ((c1) + hi) & BN_MASK2; \
389
- if ((c1) < hi) { \
390
- (c2)++; \
391
- } \
392
- t += (c0); /* no carry */ \
393
- (c0) = (BN_ULONG)Lw(t); \
394
- hi = (BN_ULONG)Hw(t); \
395
- (c1) = ((c1) + hi) & BN_MASK2; \
396
- if ((c1) < hi) { \
397
- (c2)++; \
398
- } \
399
- } while (0)
400
-
401
- #define sqr_add_c(a, i, c0, c1, c2) \
402
- do { \
403
- BN_ULONG hi; \
404
- BN_ULLONG t = (BN_ULLONG)(a)[i] * (a)[i]; \
405
- t += (c0); /* no carry */ \
406
- (c0) = (BN_ULONG)Lw(t); \
407
- hi = (BN_ULONG)Hw(t); \
408
- (c1) = ((c1) + hi) & BN_MASK2; \
409
- if ((c1) < hi) { \
410
- (c2)++; \
411
- } \
412
- } while (0)
413
-
414
- #define sqr_add_c2(a, i, j, c0, c1, c2) mul_add_c2((a)[i], (a)[j], c0, c1, c2)
415
-
416
- #else
417
-
418
- /* Keep in mind that additions to hi can not overflow, because the high word of
419
- * a multiplication result cannot be all-ones. */
420
- #define mul_add_c(a, b, c0, c1, c2) \
421
- do { \
422
- BN_ULONG ta = (a), tb = (b); \
423
- BN_ULONG lo, hi; \
424
- BN_UMULT_LOHI(lo, hi, ta, tb); \
425
- (c0) += lo; \
426
- hi += ((c0) < lo) ? 1 : 0; \
427
- (c1) += hi; \
428
- (c2) += ((c1) < hi) ? 1 : 0; \
429
- } while (0)
430
-
431
- #define mul_add_c2(a, b, c0, c1, c2) \
432
- do { \
433
- BN_ULONG ta = (a), tb = (b); \
434
- BN_ULONG lo, hi, tt; \
435
- BN_UMULT_LOHI(lo, hi, ta, tb); \
436
- (c0) += lo; \
437
- tt = hi + (((c0) < lo) ? 1 : 0); \
438
- (c1) += tt; \
439
- (c2) += ((c1) < tt) ? 1 : 0; \
440
- (c0) += lo; \
441
- hi += (c0 < lo) ? 1 : 0; \
442
- (c1) += hi; \
443
- (c2) += ((c1) < hi) ? 1 : 0; \
444
- } while (0)
445
-
446
- #define sqr_add_c(a, i, c0, c1, c2) \
447
- do { \
448
- BN_ULONG ta = (a)[i]; \
449
- BN_ULONG lo, hi; \
450
- BN_UMULT_LOHI(lo, hi, ta, ta); \
451
- (c0) += lo; \
452
- hi += (c0 < lo) ? 1 : 0; \
453
- (c1) += hi; \
454
- (c2) += ((c1) < hi) ? 1 : 0; \
455
- } while (0)
456
-
457
- #define sqr_add_c2(a, i, j, c0, c1, c2) mul_add_c2((a)[i], (a)[j], c0, c1, c2)
458
-
459
- #endif /* !BN_ULLONG */
460
-
461
- void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b) {
462
- BN_ULONG c1, c2, c3;
463
-
464
- c1 = 0;
465
- c2 = 0;
466
- c3 = 0;
467
- mul_add_c(a[0], b[0], c1, c2, c3);
468
- r[0] = c1;
469
- c1 = 0;
470
- mul_add_c(a[0], b[1], c2, c3, c1);
471
- mul_add_c(a[1], b[0], c2, c3, c1);
472
- r[1] = c2;
473
- c2 = 0;
474
- mul_add_c(a[2], b[0], c3, c1, c2);
475
- mul_add_c(a[1], b[1], c3, c1, c2);
476
- mul_add_c(a[0], b[2], c3, c1, c2);
477
- r[2] = c3;
478
- c3 = 0;
479
- mul_add_c(a[0], b[3], c1, c2, c3);
480
- mul_add_c(a[1], b[2], c1, c2, c3);
481
- mul_add_c(a[2], b[1], c1, c2, c3);
482
- mul_add_c(a[3], b[0], c1, c2, c3);
483
- r[3] = c1;
484
- c1 = 0;
485
- mul_add_c(a[4], b[0], c2, c3, c1);
486
- mul_add_c(a[3], b[1], c2, c3, c1);
487
- mul_add_c(a[2], b[2], c2, c3, c1);
488
- mul_add_c(a[1], b[3], c2, c3, c1);
489
- mul_add_c(a[0], b[4], c2, c3, c1);
490
- r[4] = c2;
491
- c2 = 0;
492
- mul_add_c(a[0], b[5], c3, c1, c2);
493
- mul_add_c(a[1], b[4], c3, c1, c2);
494
- mul_add_c(a[2], b[3], c3, c1, c2);
495
- mul_add_c(a[3], b[2], c3, c1, c2);
496
- mul_add_c(a[4], b[1], c3, c1, c2);
497
- mul_add_c(a[5], b[0], c3, c1, c2);
498
- r[5] = c3;
499
- c3 = 0;
500
- mul_add_c(a[6], b[0], c1, c2, c3);
501
- mul_add_c(a[5], b[1], c1, c2, c3);
502
- mul_add_c(a[4], b[2], c1, c2, c3);
503
- mul_add_c(a[3], b[3], c1, c2, c3);
504
- mul_add_c(a[2], b[4], c1, c2, c3);
505
- mul_add_c(a[1], b[5], c1, c2, c3);
506
- mul_add_c(a[0], b[6], c1, c2, c3);
507
- r[6] = c1;
508
- c1 = 0;
509
- mul_add_c(a[0], b[7], c2, c3, c1);
510
- mul_add_c(a[1], b[6], c2, c3, c1);
511
- mul_add_c(a[2], b[5], c2, c3, c1);
512
- mul_add_c(a[3], b[4], c2, c3, c1);
513
- mul_add_c(a[4], b[3], c2, c3, c1);
514
- mul_add_c(a[5], b[2], c2, c3, c1);
515
- mul_add_c(a[6], b[1], c2, c3, c1);
516
- mul_add_c(a[7], b[0], c2, c3, c1);
517
- r[7] = c2;
518
- c2 = 0;
519
- mul_add_c(a[7], b[1], c3, c1, c2);
520
- mul_add_c(a[6], b[2], c3, c1, c2);
521
- mul_add_c(a[5], b[3], c3, c1, c2);
522
- mul_add_c(a[4], b[4], c3, c1, c2);
523
- mul_add_c(a[3], b[5], c3, c1, c2);
524
- mul_add_c(a[2], b[6], c3, c1, c2);
525
- mul_add_c(a[1], b[7], c3, c1, c2);
526
- r[8] = c3;
527
- c3 = 0;
528
- mul_add_c(a[2], b[7], c1, c2, c3);
529
- mul_add_c(a[3], b[6], c1, c2, c3);
530
- mul_add_c(a[4], b[5], c1, c2, c3);
531
- mul_add_c(a[5], b[4], c1, c2, c3);
532
- mul_add_c(a[6], b[3], c1, c2, c3);
533
- mul_add_c(a[7], b[2], c1, c2, c3);
534
- r[9] = c1;
535
- c1 = 0;
536
- mul_add_c(a[7], b[3], c2, c3, c1);
537
- mul_add_c(a[6], b[4], c2, c3, c1);
538
- mul_add_c(a[5], b[5], c2, c3, c1);
539
- mul_add_c(a[4], b[6], c2, c3, c1);
540
- mul_add_c(a[3], b[7], c2, c3, c1);
541
- r[10] = c2;
542
- c2 = 0;
543
- mul_add_c(a[4], b[7], c3, c1, c2);
544
- mul_add_c(a[5], b[6], c3, c1, c2);
545
- mul_add_c(a[6], b[5], c3, c1, c2);
546
- mul_add_c(a[7], b[4], c3, c1, c2);
547
- r[11] = c3;
548
- c3 = 0;
549
- mul_add_c(a[7], b[5], c1, c2, c3);
550
- mul_add_c(a[6], b[6], c1, c2, c3);
551
- mul_add_c(a[5], b[7], c1, c2, c3);
552
- r[12] = c1;
553
- c1 = 0;
554
- mul_add_c(a[6], b[7], c2, c3, c1);
555
- mul_add_c(a[7], b[6], c2, c3, c1);
556
- r[13] = c2;
557
- c2 = 0;
558
- mul_add_c(a[7], b[7], c3, c1, c2);
559
- r[14] = c3;
560
- r[15] = c1;
561
- }
562
-
563
- void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b) {
564
- BN_ULONG c1, c2, c3;
565
-
566
- c1 = 0;
567
- c2 = 0;
568
- c3 = 0;
569
- mul_add_c(a[0], b[0], c1, c2, c3);
570
- r[0] = c1;
571
- c1 = 0;
572
- mul_add_c(a[0], b[1], c2, c3, c1);
573
- mul_add_c(a[1], b[0], c2, c3, c1);
574
- r[1] = c2;
575
- c2 = 0;
576
- mul_add_c(a[2], b[0], c3, c1, c2);
577
- mul_add_c(a[1], b[1], c3, c1, c2);
578
- mul_add_c(a[0], b[2], c3, c1, c2);
579
- r[2] = c3;
580
- c3 = 0;
581
- mul_add_c(a[0], b[3], c1, c2, c3);
582
- mul_add_c(a[1], b[2], c1, c2, c3);
583
- mul_add_c(a[2], b[1], c1, c2, c3);
584
- mul_add_c(a[3], b[0], c1, c2, c3);
585
- r[3] = c1;
586
- c1 = 0;
587
- mul_add_c(a[3], b[1], c2, c3, c1);
588
- mul_add_c(a[2], b[2], c2, c3, c1);
589
- mul_add_c(a[1], b[3], c2, c3, c1);
590
- r[4] = c2;
591
- c2 = 0;
592
- mul_add_c(a[2], b[3], c3, c1, c2);
593
- mul_add_c(a[3], b[2], c3, c1, c2);
594
- r[5] = c3;
595
- c3 = 0;
596
- mul_add_c(a[3], b[3], c1, c2, c3);
597
- r[6] = c1;
598
- r[7] = c2;
599
- }
600
-
601
- void bn_sqr_comba8(BN_ULONG *r, const BN_ULONG *a) {
602
- BN_ULONG c1, c2, c3;
603
-
604
- c1 = 0;
605
- c2 = 0;
606
- c3 = 0;
607
- sqr_add_c(a, 0, c1, c2, c3);
608
- r[0] = c1;
609
- c1 = 0;
610
- sqr_add_c2(a, 1, 0, c2, c3, c1);
611
- r[1] = c2;
612
- c2 = 0;
613
- sqr_add_c(a, 1, c3, c1, c2);
614
- sqr_add_c2(a, 2, 0, c3, c1, c2);
615
- r[2] = c3;
616
- c3 = 0;
617
- sqr_add_c2(a, 3, 0, c1, c2, c3);
618
- sqr_add_c2(a, 2, 1, c1, c2, c3);
619
- r[3] = c1;
620
- c1 = 0;
621
- sqr_add_c(a, 2, c2, c3, c1);
622
- sqr_add_c2(a, 3, 1, c2, c3, c1);
623
- sqr_add_c2(a, 4, 0, c2, c3, c1);
624
- r[4] = c2;
625
- c2 = 0;
626
- sqr_add_c2(a, 5, 0, c3, c1, c2);
627
- sqr_add_c2(a, 4, 1, c3, c1, c2);
628
- sqr_add_c2(a, 3, 2, c3, c1, c2);
629
- r[5] = c3;
630
- c3 = 0;
631
- sqr_add_c(a, 3, c1, c2, c3);
632
- sqr_add_c2(a, 4, 2, c1, c2, c3);
633
- sqr_add_c2(a, 5, 1, c1, c2, c3);
634
- sqr_add_c2(a, 6, 0, c1, c2, c3);
635
- r[6] = c1;
636
- c1 = 0;
637
- sqr_add_c2(a, 7, 0, c2, c3, c1);
638
- sqr_add_c2(a, 6, 1, c2, c3, c1);
639
- sqr_add_c2(a, 5, 2, c2, c3, c1);
640
- sqr_add_c2(a, 4, 3, c2, c3, c1);
641
- r[7] = c2;
642
- c2 = 0;
643
- sqr_add_c(a, 4, c3, c1, c2);
644
- sqr_add_c2(a, 5, 3, c3, c1, c2);
645
- sqr_add_c2(a, 6, 2, c3, c1, c2);
646
- sqr_add_c2(a, 7, 1, c3, c1, c2);
647
- r[8] = c3;
648
- c3 = 0;
649
- sqr_add_c2(a, 7, 2, c1, c2, c3);
650
- sqr_add_c2(a, 6, 3, c1, c2, c3);
651
- sqr_add_c2(a, 5, 4, c1, c2, c3);
652
- r[9] = c1;
653
- c1 = 0;
654
- sqr_add_c(a, 5, c2, c3, c1);
655
- sqr_add_c2(a, 6, 4, c2, c3, c1);
656
- sqr_add_c2(a, 7, 3, c2, c3, c1);
657
- r[10] = c2;
658
- c2 = 0;
659
- sqr_add_c2(a, 7, 4, c3, c1, c2);
660
- sqr_add_c2(a, 6, 5, c3, c1, c2);
661
- r[11] = c3;
662
- c3 = 0;
663
- sqr_add_c(a, 6, c1, c2, c3);
664
- sqr_add_c2(a, 7, 5, c1, c2, c3);
665
- r[12] = c1;
666
- c1 = 0;
667
- sqr_add_c2(a, 7, 6, c2, c3, c1);
668
- r[13] = c2;
669
- c2 = 0;
670
- sqr_add_c(a, 7, c3, c1, c2);
671
- r[14] = c3;
672
- r[15] = c1;
673
- }
674
-
675
- void bn_sqr_comba4(BN_ULONG *r, const BN_ULONG *a) {
676
- BN_ULONG c1, c2, c3;
677
-
678
- c1 = 0;
679
- c2 = 0;
680
- c3 = 0;
681
- sqr_add_c(a, 0, c1, c2, c3);
682
- r[0] = c1;
683
- c1 = 0;
684
- sqr_add_c2(a, 1, 0, c2, c3, c1);
685
- r[1] = c2;
686
- c2 = 0;
687
- sqr_add_c(a, 1, c3, c1, c2);
688
- sqr_add_c2(a, 2, 0, c3, c1, c2);
689
- r[2] = c3;
690
- c3 = 0;
691
- sqr_add_c2(a, 3, 0, c1, c2, c3);
692
- sqr_add_c2(a, 2, 1, c1, c2, c3);
693
- r[3] = c1;
694
- c1 = 0;
695
- sqr_add_c(a, 2, c2, c3, c1);
696
- sqr_add_c2(a, 3, 1, c2, c3, c1);
697
- r[4] = c2;
698
- c2 = 0;
699
- sqr_add_c2(a, 3, 2, c3, c1, c2);
700
- r[5] = c3;
701
- c3 = 0;
702
- sqr_add_c(a, 3, c1, c2, c3);
703
- r[6] = c1;
704
- r[7] = c2;
705
- }
706
-
707
- #endif