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
@@ -46,70 +46,66 @@
46
46
  * OF THE POSSIBILITY OF SUCH DAMAGE.
47
47
  * ==================================================================== */
48
48
 
49
- #ifndef OPENSSL_HEADER_MD32_COMMON_H
50
- #define OPENSSL_HEADER_MD32_COMMON_H
51
-
52
49
  #include <openssl/base.h>
53
50
 
54
51
  #include <assert.h>
55
52
 
56
- #include "../internal.h"
53
+ #include "../../internal.h"
57
54
 
58
55
  #if defined(__cplusplus)
59
56
  extern "C" {
60
57
  #endif
61
58
 
62
59
 
63
- /* This is a generic 32-bit "collector" for message digest algorithms. It
64
- * collects input character stream into chunks of 32-bit values and invokes the
65
- * block function that performs the actual hash calculations. To make use of
66
- * this mechanism, the following macros must be defined before including
67
- * md32_common.h.
68
- *
69
- * One of |DATA_ORDER_IS_BIG_ENDIAN| or |DATA_ORDER_IS_LITTLE_ENDIAN| must be
70
- * defined to specify the byte order of the input stream.
71
- *
72
- * |HASH_CBLOCK| must be defined as the integer block size, in bytes.
73
- *
74
- * |HASH_CTX| must be defined as the name of the context structure, which must
75
- * have at least the following members:
76
- *
77
- * typedef struct <name>_state_st {
78
- * uint32_t h[<chaining length> / sizeof(uint32_t)];
79
- * uint32_t Nl, Nh;
80
- * uint8_t data[HASH_CBLOCK];
81
- * unsigned num;
82
- * ...
83
- * } <NAME>_CTX;
84
- *
85
- * <chaining length> is the output length of the hash in bytes, before
86
- * any truncation (e.g. 64 for SHA-224 and SHA-256, 128 for SHA-384 and
87
- * SHA-512).
88
- *
89
- * |HASH_UPDATE| must be defined as the name of the "Update" function to
90
- * generate.
91
- *
92
- * |HASH_TRANSFORM| must be defined as the the name of the "Transform"
93
- * function to generate.
94
- *
95
- * |HASH_FINAL| must be defined as the name of "Final" function to generate.
96
- *
97
- * |HASH_BLOCK_DATA_ORDER| must be defined as the name of the "Block" function.
98
- * That function must be implemented manually. It must be capable of operating
99
- * on *unaligned* input data in its original (data) byte order. It must have
100
- * this signature:
101
- *
102
- * void HASH_BLOCK_DATA_ORDER(uint32_t *state, const uint8_t *data,
103
- * size_t num);
104
- *
105
- * It must update the hash state |state| with |num| blocks of data from |data|,
106
- * where each block is |HASH_CBLOCK| bytes; i.e. |data| points to a array of
107
- * |HASH_CBLOCK * num| bytes. |state| points to the |h| member of a |HASH_CTX|,
108
- * and so will have |<chaining length> / sizeof(uint32_t)| elements.
109
- *
110
- * |HASH_MAKE_STRING(c, s)| must be defined as a block statement that converts
111
- * the hash state |c->h| into the output byte order, storing the result in |s|.
112
- */
60
+ // This is a generic 32-bit "collector" for message digest algorithms. It
61
+ // collects input character stream into chunks of 32-bit values and invokes the
62
+ // block function that performs the actual hash calculations. To make use of
63
+ // this mechanism, the following macros must be defined before including
64
+ // md32_common.h.
65
+ //
66
+ // One of |DATA_ORDER_IS_BIG_ENDIAN| or |DATA_ORDER_IS_LITTLE_ENDIAN| must be
67
+ // defined to specify the byte order of the input stream.
68
+ //
69
+ // |HASH_CBLOCK| must be defined as the integer block size, in bytes.
70
+ //
71
+ // |HASH_CTX| must be defined as the name of the context structure, which must
72
+ // have at least the following members:
73
+ //
74
+ // typedef struct <name>_state_st {
75
+ // uint32_t h[<chaining length> / sizeof(uint32_t)];
76
+ // uint32_t Nl, Nh;
77
+ // uint8_t data[HASH_CBLOCK];
78
+ // unsigned num;
79
+ // ...
80
+ // } <NAME>_CTX;
81
+ //
82
+ // <chaining length> is the output length of the hash in bytes, before
83
+ // any truncation (e.g. 64 for SHA-224 and SHA-256, 128 for SHA-384 and
84
+ // SHA-512).
85
+ //
86
+ // |HASH_UPDATE| must be defined as the name of the "Update" function to
87
+ // generate.
88
+ //
89
+ // |HASH_TRANSFORM| must be defined as the the name of the "Transform"
90
+ // function to generate.
91
+ //
92
+ // |HASH_FINAL| must be defined as the name of "Final" function to generate.
93
+ //
94
+ // |HASH_BLOCK_DATA_ORDER| must be defined as the name of the "Block" function.
95
+ // That function must be implemented manually. It must be capable of operating
96
+ // on *unaligned* input data in its original (data) byte order. It must have
97
+ // this signature:
98
+ //
99
+ // void HASH_BLOCK_DATA_ORDER(uint32_t *state, const uint8_t *data,
100
+ // size_t num);
101
+ //
102
+ // It must update the hash state |state| with |num| blocks of data from |data|,
103
+ // where each block is |HASH_CBLOCK| bytes; i.e. |data| points to a array of
104
+ // |HASH_CBLOCK * num| bytes. |state| points to the |h| member of a |HASH_CTX|,
105
+ // and so will have |<chaining length> / sizeof(uint32_t)| elements.
106
+ //
107
+ // |HASH_MAKE_STRING(c, s)| must be defined as a block statement that converts
108
+ // the hash state |c->h| into the output byte order, storing the result in |s|.
113
109
 
114
110
  #if !defined(DATA_ORDER_IS_BIG_ENDIAN) && !defined(DATA_ORDER_IS_LITTLE_ENDIAN)
115
111
  #error "DATA_ORDER must be defined!"
@@ -176,7 +172,7 @@ extern "C" {
176
172
  *((c)++) = (uint8_t)(((l) >> 24) & 0xff); \
177
173
  } while (0)
178
174
 
179
- #endif /* DATA_ORDER */
175
+ #endif // DATA_ORDER
180
176
 
181
177
  int HASH_UPDATE(HASH_CTX *c, const void *data_, size_t len) {
182
178
  const uint8_t *data = data_;
@@ -187,7 +183,7 @@ int HASH_UPDATE(HASH_CTX *c, const void *data_, size_t len) {
187
183
 
188
184
  uint32_t l = c->Nl + (((uint32_t)len) << 3);
189
185
  if (l < c->Nl) {
190
- /* Handle carries. */
186
+ // Handle carries.
191
187
  c->Nh++;
192
188
  }
193
189
  c->Nh += (uint32_t)(len >> 29);
@@ -202,7 +198,7 @@ int HASH_UPDATE(HASH_CTX *c, const void *data_, size_t len) {
202
198
  data += n;
203
199
  len -= n;
204
200
  c->num = 0;
205
- /* Keep |c->data| zeroed when unused. */
201
+ // Keep |c->data| zeroed when unused.
206
202
  OPENSSL_memset(c->data, 0, HASH_CBLOCK);
207
203
  } else {
208
204
  OPENSSL_memcpy(c->data + n, data, len);
@@ -233,14 +229,14 @@ void HASH_TRANSFORM(HASH_CTX *c, const uint8_t *data) {
233
229
 
234
230
 
235
231
  int HASH_FINAL(uint8_t *md, HASH_CTX *c) {
236
- /* |c->data| always has room for at least one byte. A full block would have
237
- * been consumed. */
232
+ // |c->data| always has room for at least one byte. A full block would have
233
+ // been consumed.
238
234
  size_t n = c->num;
239
235
  assert(n < HASH_CBLOCK);
240
236
  c->data[n] = 0x80;
241
237
  n++;
242
238
 
243
- /* Fill the block with zeros if there isn't room for a 64-bit length. */
239
+ // Fill the block with zeros if there isn't room for a 64-bit length.
244
240
  if (n > (HASH_CBLOCK - 8)) {
245
241
  OPENSSL_memset(c->data + n, 0, HASH_CBLOCK - n);
246
242
  n = 0;
@@ -248,7 +244,7 @@ int HASH_FINAL(uint8_t *md, HASH_CTX *c) {
248
244
  }
249
245
  OPENSSL_memset(c->data + n, 0, HASH_CBLOCK - 8 - n);
250
246
 
251
- /* Append a 64-bit length to the block and process it. */
247
+ // Append a 64-bit length to the block and process it.
252
248
  uint8_t *p = c->data + HASH_CBLOCK - 8;
253
249
  #if defined(DATA_ORDER_IS_BIG_ENDIAN)
254
250
  HOST_l2c(c->Nh, p);
@@ -268,7 +264,5 @@ int HASH_FINAL(uint8_t *md, HASH_CTX *c) {
268
264
 
269
265
 
270
266
  #if defined(__cplusplus)
271
- } /* extern C */
267
+ } // extern C
272
268
  #endif
273
-
274
- #endif /* OPENSSL_HEADER_MD32_COMMON_H */
@@ -88,28 +88,28 @@ struct ec_method_st {
88
88
  int (*point_get_affine_coordinates)(const EC_GROUP *, const EC_POINT *,
89
89
  BIGNUM *x, BIGNUM *y, BN_CTX *);
90
90
 
91
- /* Computes |r = g_scalar*generator + p_scalar*p| if |g_scalar| and |p_scalar|
92
- * are both non-null. Computes |r = g_scalar*generator| if |p_scalar| is null.
93
- * Computes |r = p_scalar*p| if g_scalar is null. At least one of |g_scalar|
94
- * and |p_scalar| must be non-null, and |p| must be non-null if |p_scalar| is
95
- * non-null. */
91
+ // Computes |r = g_scalar*generator + p_scalar*p| if |g_scalar| and |p_scalar|
92
+ // are both non-null. Computes |r = g_scalar*generator| if |p_scalar| is null.
93
+ // Computes |r = p_scalar*p| if g_scalar is null. At least one of |g_scalar|
94
+ // and |p_scalar| must be non-null, and |p| must be non-null if |p_scalar| is
95
+ // non-null.
96
96
  int (*mul)(const EC_GROUP *group, EC_POINT *r, const BIGNUM *g_scalar,
97
97
  const EC_POINT *p, const BIGNUM *p_scalar, BN_CTX *ctx);
98
98
 
99
- /* 'field_mul' and 'field_sqr' can be used by 'add' and 'dbl' so that the
100
- * same implementations of point operations can be used with different
101
- * optimized implementations of expensive field operations: */
99
+ // 'field_mul' and 'field_sqr' can be used by 'add' and 'dbl' so that the
100
+ // same implementations of point operations can be used with different
101
+ // optimized implementations of expensive field operations:
102
102
  int (*field_mul)(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
103
103
  const BIGNUM *b, BN_CTX *);
104
104
  int (*field_sqr)(const EC_GROUP *, BIGNUM *r, const BIGNUM *a, BN_CTX *);
105
105
 
106
106
  int (*field_encode)(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
107
- BN_CTX *); /* e.g. to Montgomery */
107
+ BN_CTX *); // e.g. to Montgomery
108
108
  int (*field_decode)(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
109
- BN_CTX *); /* e.g. from Montgomery */
109
+ BN_CTX *); // e.g. from Montgomery
110
110
  } /* EC_METHOD */;
111
111
 
112
- extern const EC_METHOD EC_GFp_mont_method;
112
+ const EC_METHOD *EC_GFp_mont_method(void);
113
113
 
114
114
  struct ec_group_st {
115
115
  const EC_METHOD *meth;
@@ -117,22 +117,22 @@ struct ec_group_st {
117
117
  EC_POINT *generator;
118
118
  BIGNUM order;
119
119
 
120
- int curve_name; /* optional NID for named curve */
120
+ int curve_name; // optional NID for named curve
121
121
 
122
- const BN_MONT_CTX *mont_data; /* data for ECDSA inverse */
122
+ const BN_MONT_CTX *order_mont; // data for ECDSA inverse
123
123
 
124
- /* The following members are handled by the method functions,
125
- * even if they appear generic */
124
+ // The following members are handled by the method functions,
125
+ // even if they appear generic
126
126
 
127
- BIGNUM field; /* For curves over GF(p), this is the modulus. */
127
+ BIGNUM field; // For curves over GF(p), this is the modulus.
128
128
 
129
- BIGNUM a, b; /* Curve coefficients. */
129
+ BIGNUM a, b; // Curve coefficients.
130
130
 
131
- int a_is_minus3; /* enable optimized point arithmetics for special case */
131
+ int a_is_minus3; // enable optimized point arithmetics for special case
132
132
 
133
- BN_MONT_CTX *mont; /* Montgomery structure. */
133
+ BN_MONT_CTX *mont; // Montgomery structure.
134
134
 
135
- BIGNUM one; /* The value one. */
135
+ BIGNUM one; // The value one.
136
136
  } /* EC_GROUP */;
137
137
 
138
138
  struct ec_point_st {
@@ -140,22 +140,22 @@ struct ec_point_st {
140
140
 
141
141
  BIGNUM X;
142
142
  BIGNUM Y;
143
- BIGNUM Z; /* Jacobian projective coordinates:
144
- * (X, Y, Z) represents (X/Z^2, Y/Z^3) if Z != 0 */
143
+ BIGNUM Z; // Jacobian projective coordinates:
144
+ // (X, Y, Z) represents (X/Z^2, Y/Z^3) if Z != 0
145
145
  } /* EC_POINT */;
146
146
 
147
147
  EC_GROUP *ec_group_new(const EC_METHOD *meth);
148
148
  int ec_group_copy(EC_GROUP *dest, const EC_GROUP *src);
149
149
 
150
- /* ec_group_get_mont_data returns a Montgomery context for operations in the
151
- * scalar field of |group|. It may return NULL in the case that |group| is not
152
- * a built-in group. */
153
- const BN_MONT_CTX *ec_group_get_mont_data(const EC_GROUP *group);
150
+ // ec_group_get_order_mont returns a Montgomery context for operations modulo
151
+ // |group|'s order. It may return NULL in the case that |group| is not a
152
+ // built-in group.
153
+ const BN_MONT_CTX *ec_group_get_order_mont(const EC_GROUP *group);
154
154
 
155
155
  int ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *g_scalar,
156
156
  const EC_POINT *p, const BIGNUM *p_scalar, BN_CTX *ctx);
157
157
 
158
- /* method functions in simple.c */
158
+ // method functions in simple.c
159
159
  int ec_GFp_simple_group_init(EC_GROUP *);
160
160
  void ec_GFp_simple_group_finish(EC_GROUP *);
161
161
  int ec_GFp_simple_group_copy(EC_GROUP *, const EC_GROUP *);
@@ -200,7 +200,7 @@ int ec_GFp_simple_field_mul(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
200
200
  int ec_GFp_simple_field_sqr(const EC_GROUP *, BIGNUM *r, const BIGNUM *a,
201
201
  BN_CTX *);
202
202
 
203
- /* method functions in montgomery.c */
203
+ // method functions in montgomery.c
204
204
  int ec_GFp_mont_group_init(EC_GROUP *);
205
205
  int ec_GFp_mont_group_set_curve(EC_GROUP *, const BIGNUM *p, const BIGNUM *a,
206
206
  const BIGNUM *b, BN_CTX *);
@@ -222,12 +222,12 @@ int ec_point_set_Jprojective_coordinates_GFp(const EC_GROUP *group,
222
222
 
223
223
  void ec_GFp_nistp_recode_scalar_bits(uint8_t *sign, uint8_t *digit, uint8_t in);
224
224
 
225
- extern const EC_METHOD EC_GFp_nistp224_method;
226
- extern const EC_METHOD EC_GFp_nistp256_method;
225
+ const EC_METHOD *EC_GFp_nistp224_method(void);
226
+ const EC_METHOD *EC_GFp_nistp256_method(void);
227
227
 
228
- /* EC_GFp_nistz256_method is a GFp method using montgomery multiplication, with
229
- * x86-64 optimized P256. See http://eprint.iacr.org/2013/816. */
230
- extern const EC_METHOD EC_GFp_nistz256_method;
228
+ // EC_GFp_nistz256_method is a GFp method using montgomery multiplication, with
229
+ // x86-64 optimized P256. See http://eprint.iacr.org/2013/816.
230
+ const EC_METHOD *EC_GFp_nistz256_method(void);
231
231
 
232
232
  struct ec_key_st {
233
233
  EC_GROUP *group;
@@ -235,6 +235,10 @@ struct ec_key_st {
235
235
  EC_POINT *pub_key;
236
236
  BIGNUM *priv_key;
237
237
 
238
+ // fixed_k may contain a specific value of 'k', to be used in ECDSA signing.
239
+ // This is only for the FIPS power-on tests.
240
+ BIGNUM *fixed_k;
241
+
238
242
  unsigned int enc_flag;
239
243
  point_conversion_form_t conv_form;
240
244
 
@@ -245,32 +249,34 @@ struct ec_key_st {
245
249
  CRYPTO_EX_DATA ex_data;
246
250
  } /* EC_KEY */;
247
251
 
248
- /* curve_data contains data about a built-in elliptic curve. */
249
- struct curve_data {
250
- /* comment is a human-readable string describing the curve. */
251
- const char *comment;
252
- /* param_len is the number of bytes needed to store a field element. */
253
- uint8_t param_len;
254
- /* data points to an array of 6*|param_len| bytes which hold the field
255
- * elements of the following (in big-endian order): prime, a, b, generator x,
256
- * generator y, order. */
257
- const uint8_t data[];
258
- };
259
-
260
252
  struct built_in_curve {
261
253
  int nid;
262
- uint8_t oid[8];
254
+ const uint8_t *oid;
263
255
  uint8_t oid_len;
264
- const struct curve_data *data;
256
+ // comment is a human-readable string describing the curve.
257
+ const char *comment;
258
+ // param_len is the number of bytes needed to store a field element.
259
+ uint8_t param_len;
260
+ // params points to an array of 6*|param_len| bytes which hold the field
261
+ // elements of the following (in big-endian order): prime, a, b, generator x,
262
+ // generator y, order.
263
+ const uint8_t *params;
265
264
  const EC_METHOD *method;
266
265
  };
267
266
 
268
- /* OPENSSL_built_in_curves is terminated with an entry where |nid| is
269
- * |NID_undef|. */
270
- extern const struct built_in_curve OPENSSL_built_in_curves[];
267
+ #define OPENSSL_NUM_BUILT_IN_CURVES 4
268
+
269
+ struct built_in_curves {
270
+ struct built_in_curve curves[OPENSSL_NUM_BUILT_IN_CURVES];
271
+ };
272
+
273
+ // OPENSSL_built_in_curves returns a pointer to static information about
274
+ // standard curves. The array is terminated with an entry where |nid| is
275
+ // |NID_undef|.
276
+ const struct built_in_curves *OPENSSL_built_in_curves(void);
271
277
 
272
278
  #if defined(__cplusplus)
273
- } /* extern C */
279
+ } // extern C
274
280
  #endif
275
281
 
276
- #endif /* OPENSSL_HEADER_EC_INTERNAL_H */
282
+ #endif // OPENSSL_HEADER_EC_INTERNAL_H
@@ -12,17 +12,17 @@
12
12
  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
13
13
  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
14
14
 
15
- /* This is the precomputed constant time access table for the code in
16
- * p256-x86_64.c, for the default generator. The table consists of 37
17
- * subtables, each subtable contains 64 affine points. The affine points are
18
- * encoded as eight uint64's, four for the x coordinate and four for the y.
19
- * Both values are in little-endian order. There are 37 tables because a
20
- * signed, 6-bit wNAF form of the scalar is used and ceil(256/(6 + 1)) = 37.
21
- * Within each table there are 64 values because the 6-bit wNAF value can take
22
- * 64 values, ignoring the sign bit, which is implemented by performing a
23
- * negation of the affine point when required. We would like to align it to 2MB
24
- * in order to increase the chances of using a large page but that appears to
25
- * lead to invalid ELF files being produced. */
15
+ // This is the precomputed constant time access table for the code in
16
+ // p256-x86_64.c, for the default generator. The table consists of 37
17
+ // subtables, each subtable contains 64 affine points. The affine points are
18
+ // encoded as eight uint64's, four for the x coordinate and four for the y.
19
+ // Both values are in little-endian order. There are 37 tables because a
20
+ // signed, 6-bit wNAF form of the scalar is used and ceil(256/(6 + 1)) = 37.
21
+ // Within each table there are 64 values because the 6-bit wNAF value can take
22
+ // 64 values, ignoring the sign bit, which is implemented by performing a
23
+ // negation of the affine point when required. We would like to align it to 2MB
24
+ // in order to increase the chances of using a large page but that appears to
25
+ // lead to invalid ELF files being produced.
26
26
 
27
27
  static const alignas(4096) BN_ULONG
28
28
  ecp_nistz256_precomputed[37][64 * sizeof(P256_POINT_AFFINE) /
@@ -27,30 +27,30 @@ extern "C" {
27
27
  #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && \
28
28
  !defined(OPENSSL_SMALL)
29
29
 
30
- /* P-256 field operations.
31
- *
32
- * An element mod P in P-256 is represented as a little-endian array of
33
- * |P256_LIMBS| |BN_ULONG|s, spanning the full range of values.
34
- *
35
- * The following functions take fully-reduced inputs mod P and give
36
- * fully-reduced outputs. They may be used in-place. */
30
+ // P-256 field operations.
31
+ //
32
+ // An element mod P in P-256 is represented as a little-endian array of
33
+ // |P256_LIMBS| |BN_ULONG|s, spanning the full range of values.
34
+ //
35
+ // The following functions take fully-reduced inputs mod P and give
36
+ // fully-reduced outputs. They may be used in-place.
37
37
 
38
38
  #define P256_LIMBS (256 / BN_BITS2)
39
39
 
40
- /* ecp_nistz256_neg sets |res| to -|a| mod P. */
40
+ // ecp_nistz256_neg sets |res| to -|a| mod P.
41
41
  void ecp_nistz256_neg(BN_ULONG res[P256_LIMBS], const BN_ULONG a[P256_LIMBS]);
42
42
 
43
- /* ecp_nistz256_mul_mont sets |res| to |a| * |b| * 2^-256 mod P. */
43
+ // ecp_nistz256_mul_mont sets |res| to |a| * |b| * 2^-256 mod P.
44
44
  void ecp_nistz256_mul_mont(BN_ULONG res[P256_LIMBS],
45
45
  const BN_ULONG a[P256_LIMBS],
46
46
  const BN_ULONG b[P256_LIMBS]);
47
47
 
48
- /* ecp_nistz256_sqr_mont sets |res| to |a| * |a| * 2^-256 mod P. */
48
+ // ecp_nistz256_sqr_mont sets |res| to |a| * |a| * 2^-256 mod P.
49
49
  void ecp_nistz256_sqr_mont(BN_ULONG res[P256_LIMBS],
50
50
  const BN_ULONG a[P256_LIMBS]);
51
51
 
52
- /* ecp_nistz256_from_mont sets |res| to |in|, converted from Montgomery domain
53
- * by multiplying with 1. */
52
+ // ecp_nistz256_from_mont sets |res| to |in|, converted from Montgomery domain
53
+ // by multiplying with 1.
54
54
  static inline void ecp_nistz256_from_mont(BN_ULONG res[P256_LIMBS],
55
55
  const BN_ULONG in[P256_LIMBS]) {
56
56
  static const BN_ULONG ONE[P256_LIMBS] = { 1 };
@@ -58,47 +58,47 @@ static inline void ecp_nistz256_from_mont(BN_ULONG res[P256_LIMBS],
58
58
  }
59
59
 
60
60
 
61
- /* P-256 point operations.
62
- *
63
- * The following functions may be used in-place. All coordinates are in the
64
- * Montgomery domain. */
61
+ // P-256 point operations.
62
+ //
63
+ // The following functions may be used in-place. All coordinates are in the
64
+ // Montgomery domain.
65
65
 
66
- /* A P256_POINT represents a P-256 point in Jacobian coordinates. */
66
+ // A P256_POINT represents a P-256 point in Jacobian coordinates.
67
67
  typedef struct {
68
68
  BN_ULONG X[P256_LIMBS];
69
69
  BN_ULONG Y[P256_LIMBS];
70
70
  BN_ULONG Z[P256_LIMBS];
71
71
  } P256_POINT;
72
72
 
73
- /* A P256_POINT_AFFINE represents a P-256 point in affine coordinates. Infinity
74
- * is encoded as (0, 0). */
73
+ // A P256_POINT_AFFINE represents a P-256 point in affine coordinates. Infinity
74
+ // is encoded as (0, 0).
75
75
  typedef struct {
76
76
  BN_ULONG X[P256_LIMBS];
77
77
  BN_ULONG Y[P256_LIMBS];
78
78
  } P256_POINT_AFFINE;
79
79
 
80
- /* ecp_nistz256_select_w5 sets |*val| to |in_t[index-1]| if 1 <= |index| <= 16
81
- * and all zeros (the point at infinity) if |index| is 0. This is done in
82
- * constant time. */
80
+ // ecp_nistz256_select_w5 sets |*val| to |in_t[index-1]| if 1 <= |index| <= 16
81
+ // and all zeros (the point at infinity) if |index| is 0. This is done in
82
+ // constant time.
83
83
  void ecp_nistz256_select_w5(P256_POINT *val, const P256_POINT in_t[16],
84
84
  int index);
85
85
 
86
- /* ecp_nistz256_select_w7 sets |*val| to |in_t[index-1]| if 1 <= |index| <= 64
87
- * and all zeros (the point at infinity) if |index| is 0. This is done in
88
- * constant time. */
86
+ // ecp_nistz256_select_w7 sets |*val| to |in_t[index-1]| if 1 <= |index| <= 64
87
+ // and all zeros (the point at infinity) if |index| is 0. This is done in
88
+ // constant time.
89
89
  void ecp_nistz256_select_w7(P256_POINT_AFFINE *val,
90
90
  const P256_POINT_AFFINE in_t[64], int index);
91
91
 
92
- /* ecp_nistz256_point_double sets |r| to |a| doubled. */
92
+ // ecp_nistz256_point_double sets |r| to |a| doubled.
93
93
  void ecp_nistz256_point_double(P256_POINT *r, const P256_POINT *a);
94
94
 
95
- /* ecp_nistz256_point_add adds |a| to |b| and places the result in |r|. */
95
+ // ecp_nistz256_point_add adds |a| to |b| and places the result in |r|.
96
96
  void ecp_nistz256_point_add(P256_POINT *r, const P256_POINT *a,
97
97
  const P256_POINT *b);
98
98
 
99
- /* ecp_nistz256_point_add_affine adds |a| to |b| and places the result in
100
- * |r|. |a| and |b| must not represent the same point unless they are both
101
- * infinity. */
99
+ // ecp_nistz256_point_add_affine adds |a| to |b| and places the result in
100
+ // |r|. |a| and |b| must not represent the same point unless they are both
101
+ // infinity.
102
102
  void ecp_nistz256_point_add_affine(P256_POINT *r, const P256_POINT *a,
103
103
  const P256_POINT_AFFINE *b);
104
104
 
@@ -107,7 +107,7 @@ void ecp_nistz256_point_add_affine(P256_POINT *r, const P256_POINT *a,
107
107
 
108
108
 
109
109
  #if defined(__cplusplus)
110
- } /* extern C++ */
110
+ } // extern C++
111
111
  #endif
112
112
 
113
- #endif /* OPENSSL_HEADER_EC_P256_X86_64_H */
113
+ #endif // OPENSSL_HEADER_EC_P256_X86_64_H