grpc 1.9.1 → 1.10.0.pre1

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

Potentially problematic release.


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

Files changed (637) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +2654 -953
  3. data/etc/roots.pem +282 -683
  4. data/include/grpc/compression.h +9 -26
  5. data/include/grpc/grpc.h +10 -24
  6. data/include/grpc/grpc_security.h +7 -1
  7. data/include/grpc/impl/codegen/compression_types.h +5 -62
  8. data/include/grpc/impl/codegen/grpc_types.h +10 -6
  9. data/include/grpc/module.modulemap +1 -10
  10. data/include/grpc/support/alloc.h +3 -2
  11. data/include/grpc/support/log.h +1 -2
  12. data/{src/core/lib/gpr/thd_internal.h → include/grpc/support/thd_id.h} +23 -9
  13. data/src/boringssl/err_data.c +550 -496
  14. data/src/core/ext/census/grpc_context.cc +2 -1
  15. data/src/core/ext/filters/client_channel/backup_poller.cc +5 -4
  16. data/src/core/ext/filters/client_channel/channel_connectivity.cc +7 -7
  17. data/src/core/ext/filters/client_channel/client_channel.cc +162 -172
  18. data/src/core/ext/filters/client_channel/client_channel_factory.cc +4 -2
  19. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +10 -10
  20. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +18 -14
  21. data/src/core/ext/filters/client_channel/http_proxy.cc +3 -1
  22. data/src/core/ext/filters/client_channel/lb_policy.cc +21 -105
  23. data/src/core/ext/filters/client_channel/lb_policy.h +166 -170
  24. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +41 -36
  25. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1452 -1459
  26. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +3 -2
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +7 -8
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +27 -27
  30. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +279 -304
  31. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +358 -330
  32. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +30 -41
  33. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +7 -14
  34. data/src/core/ext/filters/client_channel/lb_policy_factory.cc +8 -21
  35. data/src/core/ext/filters/client_channel/lb_policy_factory.h +23 -27
  36. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +58 -33
  37. data/src/core/ext/filters/client_channel/lb_policy_registry.h +25 -12
  38. data/src/core/ext/filters/client_channel/parse_address.cc +10 -8
  39. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -2
  40. data/src/core/ext/filters/client_channel/resolver.cc +6 -52
  41. data/src/core/ext/filters/client_channel/resolver.h +98 -55
  42. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +266 -237
  43. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
  44. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +31 -27
  45. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +244 -207
  46. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +161 -148
  47. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +47 -31
  48. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +126 -126
  49. data/src/core/ext/filters/client_channel/resolver_factory.h +33 -32
  50. data/src/core/ext/filters/client_channel/resolver_registry.cc +110 -90
  51. data/src/core/ext/filters/client_channel/resolver_registry.h +49 -36
  52. data/src/core/ext/filters/client_channel/retry_throttle.cc +29 -22
  53. data/src/core/ext/filters/client_channel/subchannel.cc +173 -173
  54. data/src/core/ext/filters/client_channel/subchannel.h +38 -45
  55. data/src/core/ext/filters/client_channel/subchannel_index.cc +44 -40
  56. data/src/core/ext/filters/client_channel/uri_parser.cc +3 -3
  57. data/src/core/ext/filters/deadline/deadline_filter.cc +27 -18
  58. data/src/core/ext/filters/http/client/http_client_filter.cc +26 -23
  59. data/src/core/ext/filters/http/http_filters_plugin.cc +3 -2
  60. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +78 -110
  61. data/src/core/ext/filters/http/server/http_server_filter.cc +29 -26
  62. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +9 -11
  63. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +2 -1
  64. data/src/core/ext/filters/max_age/max_age_filter.cc +14 -14
  65. data/src/core/ext/filters/message_size/message_size_filter.cc +20 -18
  66. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -4
  67. data/src/core/ext/filters/workarounds/workaround_utils.cc +4 -4
  68. data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
  69. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +10 -10
  70. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +4 -4
  71. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +11 -12
  72. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +16 -13
  73. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +36 -9
  74. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +3 -0
  75. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +17 -14
  76. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -145
  77. data/src/core/ext/transport/chttp2/transport/flow_control.cc +16 -14
  78. data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -7
  79. data/src/core/ext/transport/chttp2/transport/frame_data.cc +35 -33
  80. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +27 -25
  81. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +12 -12
  82. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +16 -15
  83. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -19
  84. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +11 -11
  85. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +23 -22
  86. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +35 -35
  87. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +10 -7
  88. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +2 -2
  89. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  90. data/src/core/ext/transport/chttp2/transport/internal.h +1 -1
  91. data/src/core/ext/transport/chttp2/transport/parsing.cc +35 -39
  92. data/src/core/ext/transport/chttp2/transport/stream_map.cc +8 -7
  93. data/src/core/ext/transport/chttp2/transport/varint.cc +5 -5
  94. data/src/core/ext/transport/chttp2/transport/writing.cc +18 -18
  95. data/src/core/ext/transport/inproc/inproc_transport.cc +43 -23
  96. data/src/core/lib/{gpr → avl}/avl.cc +61 -57
  97. data/{include/grpc/support → src/core/lib/avl}/avl.h +25 -35
  98. data/src/core/lib/backoff/backoff.cc +6 -5
  99. data/src/core/lib/channel/channel_args.cc +23 -109
  100. data/src/core/lib/channel/channel_args.h +5 -31
  101. data/src/core/lib/channel/channel_stack.cc +11 -8
  102. data/src/core/lib/channel/channel_stack_builder.cc +10 -7
  103. data/src/core/lib/channel/connected_channel.cc +18 -17
  104. data/src/core/lib/channel/handshaker.cc +8 -8
  105. data/src/core/lib/channel/handshaker_registry.cc +3 -2
  106. data/src/core/lib/compression/algorithm_metadata.h +13 -6
  107. data/src/core/lib/compression/compression.cc +72 -183
  108. data/src/core/lib/compression/compression_internal.cc +274 -0
  109. data/src/core/lib/compression/compression_internal.h +86 -0
  110. data/src/core/lib/compression/message_compress.cc +15 -15
  111. data/src/core/lib/compression/message_compress.h +4 -3
  112. data/src/core/lib/compression/stream_compression_gzip.cc +8 -8
  113. data/src/core/lib/compression/stream_compression_identity.cc +1 -1
  114. data/src/core/lib/debug/stats.cc +10 -8
  115. data/src/core/lib/debug/stats_data.cc +2 -1
  116. data/src/core/lib/debug/trace.cc +3 -3
  117. data/src/core/lib/gpr/alloc.cc +7 -11
  118. data/src/core/lib/gpr/arena.cc +34 -12
  119. data/src/core/lib/gpr/atm.cc +2 -1
  120. data/src/core/lib/gpr/cpu_linux.cc +3 -3
  121. data/src/core/lib/gpr/cpu_posix.cc +2 -1
  122. data/src/core/lib/gpr/env.h +1 -1
  123. data/src/core/lib/gpr/env_linux.cc +1 -1
  124. data/src/core/lib/gpr/env_windows.cc +4 -4
  125. data/src/core/lib/gpr/fork.cc +16 -2
  126. data/src/core/lib/gpr/host_port.cc +5 -4
  127. data/{include/grpc/support → src/core/lib/gpr}/host_port.h +5 -13
  128. data/src/core/lib/gpr/log.cc +5 -4
  129. data/src/core/lib/gpr/log_linux.cc +1 -1
  130. data/src/core/lib/gpr/mpscq.cc +1 -0
  131. data/src/core/lib/gpr/murmur_hash.cc +4 -4
  132. data/src/core/lib/gpr/string.cc +19 -16
  133. data/src/core/lib/gpr/string_posix.cc +3 -3
  134. data/src/core/lib/gpr/sync_posix.cc +5 -9
  135. data/src/core/lib/gpr/thd.cc +3 -3
  136. data/{include/grpc/support → src/core/lib/gpr}/thd.h +20 -28
  137. data/src/core/lib/gpr/thd_posix.cc +6 -4
  138. data/src/core/lib/gpr/thd_windows.cc +3 -1
  139. data/src/core/lib/gpr/time.cc +6 -4
  140. data/src/core/lib/gpr/time_posix.cc +2 -2
  141. data/{include/grpc/support → src/core/lib/gpr}/tls.h +6 -6
  142. data/{include/grpc/support → src/core/lib/gpr}/tls_gcc.h +3 -3
  143. data/{include/grpc/support → src/core/lib/gpr}/tls_msvc.h +3 -3
  144. data/src/core/lib/gpr/tls_pthread.cc +1 -1
  145. data/{include/grpc/support → src/core/lib/gpr}/tls_pthread.h +3 -3
  146. data/{include/grpc/support → src/core/lib/gpr}/useful.h +3 -3
  147. data/src/core/lib/{gpr++ → gprpp}/abstract.h +3 -3
  148. data/src/core/lib/{gpr++ → gprpp}/atomic.h +5 -5
  149. data/src/core/lib/{gpr++ → gprpp}/atomic_with_atm.h +3 -3
  150. data/src/core/lib/{gpr++ → gprpp}/atomic_with_std.h +3 -3
  151. data/src/core/lib/{gpr++ → gprpp}/debug_location.h +3 -3
  152. data/src/core/lib/{gpr++ → gprpp}/inlined_vector.h +44 -22
  153. data/src/core/lib/{gpr++ → gprpp}/manual_constructor.h +2 -2
  154. data/src/core/lib/{gpr++ → gprpp}/memory.h +14 -5
  155. data/src/core/lib/{gpr++ → gprpp}/orphanable.h +39 -14
  156. data/src/core/lib/{gpr++ → gprpp}/ref_counted.h +42 -10
  157. data/src/core/lib/{gpr++ → gprpp}/ref_counted_ptr.h +18 -8
  158. data/src/core/lib/http/format_request.cc +3 -3
  159. data/src/core/lib/http/httpcli.cc +6 -7
  160. data/src/core/lib/http/httpcli_security_connector.cc +10 -10
  161. data/src/core/lib/http/parser.cc +16 -12
  162. data/src/core/lib/iomgr/call_combiner.cc +12 -13
  163. data/src/core/lib/iomgr/closure.h +4 -6
  164. data/src/core/lib/iomgr/combiner.cc +10 -21
  165. data/src/core/lib/iomgr/error.cc +50 -55
  166. data/src/core/lib/iomgr/ev_epoll1_linux.cc +41 -52
  167. data/src/core/lib/iomgr/ev_epollex_linux.cc +80 -28
  168. data/src/core/lib/iomgr/ev_epollsig_linux.cc +23 -30
  169. data/src/core/lib/iomgr/ev_poll_posix.cc +52 -46
  170. data/src/core/lib/iomgr/ev_posix.cc +47 -6
  171. data/src/core/lib/iomgr/exec_ctx.cc +10 -10
  172. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  173. data/src/core/lib/iomgr/executor.cc +16 -13
  174. data/src/core/lib/iomgr/fork_posix.cc +1 -3
  175. data/src/core/lib/iomgr/gethostname_host_name_max.cc +1 -1
  176. data/src/core/lib/iomgr/iocp_windows.cc +1 -2
  177. data/src/core/lib/iomgr/iomgr.cc +2 -2
  178. data/src/core/lib/iomgr/iomgr_uv.cc +2 -0
  179. data/src/core/lib/iomgr/iomgr_uv.h +1 -1
  180. data/src/core/lib/iomgr/is_epollexclusive_available.cc +5 -4
  181. data/src/core/lib/iomgr/load_file.cc +3 -3
  182. data/src/core/lib/iomgr/pollset_windows.cc +1 -1
  183. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -9
  184. data/src/core/lib/iomgr/resolve_address_uv.cc +2 -2
  185. data/src/core/lib/iomgr/resolve_address_windows.cc +3 -2
  186. data/src/core/lib/iomgr/resource_quota.cc +36 -34
  187. data/src/core/lib/iomgr/sockaddr_utils.cc +39 -23
  188. data/src/core/lib/iomgr/socket_factory_posix.cc +5 -5
  189. data/src/core/lib/iomgr/socket_mutator.cc +7 -7
  190. data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -4
  191. data/src/core/lib/iomgr/socket_utils_linux.cc +3 -2
  192. data/src/core/lib/iomgr/tcp_client_posix.cc +7 -6
  193. data/src/core/lib/iomgr/tcp_client_windows.cc +0 -1
  194. data/src/core/lib/iomgr/tcp_posix.cc +47 -55
  195. data/src/core/lib/iomgr/tcp_server_posix.cc +12 -10
  196. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -5
  197. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -3
  198. data/src/core/lib/iomgr/tcp_windows.cc +1 -1
  199. data/src/core/lib/iomgr/timer_generic.cc +16 -14
  200. data/src/core/lib/iomgr/timer_heap.cc +8 -7
  201. data/src/core/lib/iomgr/timer_manager.cc +4 -3
  202. data/src/core/lib/iomgr/udp_server.cc +24 -16
  203. data/src/core/lib/iomgr/unix_sockets_posix.cc +15 -10
  204. data/src/core/lib/iomgr/wakeup_fd_cv.cc +6 -5
  205. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +1 -2
  206. data/src/core/lib/json/json.cc +1 -1
  207. data/src/core/lib/json/json_reader.cc +8 -6
  208. data/src/core/lib/json/json_string.cc +19 -18
  209. data/src/core/lib/json/json_writer.cc +10 -8
  210. data/src/core/lib/profiling/basic_timers.cc +1 -1
  211. data/src/core/lib/profiling/timers.h +3 -20
  212. data/src/core/lib/security/context/security_context.cc +16 -14
  213. data/src/core/lib/security/credentials/composite/composite_credentials.cc +17 -14
  214. data/src/core/lib/security/credentials/credentials.cc +9 -8
  215. data/src/core/lib/security/credentials/credentials.h +1 -1
  216. data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
  217. data/src/core/lib/security/credentials/fake/fake_credentials.cc +12 -13
  218. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +7 -4
  219. data/src/core/lib/security/credentials/iam/iam_credentials.cc +5 -3
  220. data/src/core/lib/security/credentials/jwt/json_token.cc +4 -3
  221. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -7
  222. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +21 -18
  223. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +23 -18
  224. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +11 -7
  225. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +22 -21
  226. data/src/core/lib/security/{transport → security_connector}/security_connector.cc +46 -43
  227. data/src/core/lib/security/{transport → security_connector}/security_connector.h +3 -3
  228. data/src/core/lib/security/transport/client_auth_filter.cc +32 -34
  229. data/src/core/lib/security/transport/lb_targets_info.cc +7 -5
  230. data/src/core/lib/security/transport/secure_endpoint.cc +21 -21
  231. data/src/core/lib/security/transport/security_handshaker.cc +19 -18
  232. data/src/core/lib/security/transport/security_handshaker.h +1 -1
  233. data/src/core/lib/security/transport/server_auth_filter.cc +21 -21
  234. data/src/core/lib/slice/b64.cc +19 -16
  235. data/src/core/lib/slice/percent_encoding.cc +5 -5
  236. data/src/core/lib/slice/slice.cc +35 -33
  237. data/src/core/lib/slice/slice_buffer.cc +16 -14
  238. data/src/core/lib/slice/slice_hash_table.cc +3 -2
  239. data/src/core/lib/slice/slice_intern.cc +21 -25
  240. data/src/core/lib/slice/slice_string_helpers.cc +45 -9
  241. data/src/core/lib/slice/slice_string_helpers.h +6 -0
  242. data/src/core/lib/surface/byte_buffer.cc +2 -2
  243. data/src/core/lib/surface/byte_buffer_reader.cc +6 -3
  244. data/src/core/lib/surface/call.cc +171 -260
  245. data/src/core/lib/surface/call_test_only.h +1 -13
  246. data/src/core/lib/surface/channel.cc +20 -43
  247. data/src/core/lib/surface/channel_init.cc +7 -7
  248. data/src/core/lib/surface/channel_ping.cc +2 -2
  249. data/src/core/lib/surface/completion_queue.cc +69 -75
  250. data/src/core/lib/surface/init.cc +4 -5
  251. data/src/core/lib/surface/init_secure.cc +1 -1
  252. data/src/core/lib/surface/lame_client.cc +1 -1
  253. data/src/core/lib/surface/server.cc +64 -59
  254. data/src/core/lib/surface/version.cc +2 -2
  255. data/src/core/lib/transport/bdp_estimator.cc +6 -5
  256. data/src/core/lib/transport/byte_stream.cc +23 -14
  257. data/src/core/lib/transport/byte_stream.h +1 -1
  258. data/src/core/lib/transport/connectivity_state.cc +9 -13
  259. data/src/core/lib/transport/error_utils.cc +10 -7
  260. data/src/core/lib/transport/metadata.cc +27 -26
  261. data/src/core/lib/transport/metadata.h +1 -1
  262. data/src/core/lib/transport/pid_controller.cc +2 -1
  263. data/src/core/lib/transport/service_config.cc +5 -5
  264. data/src/core/lib/transport/static_metadata.cc +225 -222
  265. data/src/core/lib/transport/static_metadata.h +77 -76
  266. data/src/core/lib/transport/timeout_encoding.cc +3 -2
  267. data/src/core/lib/transport/transport.cc +6 -5
  268. data/src/core/lib/transport/transport_op_string.cc +0 -1
  269. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -4
  270. data/src/core/tsi/alts_transport_security.cc +61 -0
  271. data/src/core/tsi/{gts_transport_security.h → alts_transport_security.h} +16 -8
  272. data/src/core/tsi/fake_transport_security.cc +59 -43
  273. data/src/core/tsi/ssl_transport_security.cc +122 -107
  274. data/src/core/tsi/transport_security.cc +3 -3
  275. data/src/core/tsi/transport_security_adapter.cc +16 -10
  276. data/src/ruby/bin/apis/pubsub_demo.rb +1 -1
  277. data/src/ruby/ext/grpc/rb_channel.c +3 -4
  278. data/src/ruby/ext/grpc/rb_compression_options.c +13 -3
  279. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -76
  280. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +8 -120
  281. data/src/ruby/ext/grpc/rb_server.c +52 -28
  282. data/src/ruby/lib/grpc/generic/rpc_server.rb +7 -4
  283. data/src/ruby/lib/grpc/version.rb +1 -1
  284. data/src/ruby/pb/test/client.rb +1 -1
  285. data/src/ruby/pb/test/server.rb +1 -1
  286. data/src/ruby/spec/client_server_spec.rb +4 -2
  287. data/src/ruby/spec/generic/active_call_spec.rb +2 -1
  288. data/src/ruby/spec/generic/client_stub_spec.rb +32 -8
  289. data/src/ruby/spec/server_spec.rb +26 -7
  290. data/third_party/boringssl/crypto/asn1/a_bitstr.c +7 -2
  291. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +15 -0
  292. data/third_party/boringssl/crypto/asn1/a_gentm.c +1 -1
  293. data/third_party/boringssl/crypto/asn1/a_print.c +0 -28
  294. data/third_party/boringssl/crypto/asn1/a_strnid.c +3 -0
  295. data/third_party/boringssl/crypto/asn1/a_time.c +17 -9
  296. data/third_party/boringssl/crypto/asn1/a_utctm.c +1 -1
  297. data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -49
  298. data/third_party/boringssl/crypto/asn1/asn1_locl.h +1 -1
  299. data/third_party/boringssl/crypto/asn1/tasn_dec.c +9 -9
  300. data/third_party/boringssl/crypto/asn1/tasn_enc.c +0 -6
  301. data/third_party/boringssl/crypto/asn1/time_support.c +5 -5
  302. data/third_party/boringssl/crypto/base64/base64.c +65 -43
  303. data/third_party/boringssl/crypto/bio/bio.c +134 -110
  304. data/third_party/boringssl/crypto/bio/bio_mem.c +9 -9
  305. data/third_party/boringssl/crypto/bio/connect.c +17 -17
  306. data/third_party/boringssl/crypto/bio/fd.c +2 -1
  307. data/third_party/boringssl/crypto/bio/file.c +14 -14
  308. data/third_party/boringssl/crypto/bio/hexdump.c +15 -16
  309. data/third_party/boringssl/crypto/bio/internal.h +14 -14
  310. data/third_party/boringssl/crypto/bio/pair.c +45 -45
  311. data/third_party/boringssl/crypto/bio/printf.c +6 -10
  312. data/third_party/boringssl/crypto/{bn → bn_extra}/bn_asn1.c +9 -9
  313. data/third_party/boringssl/crypto/{bn → bn_extra}/convert.c +18 -223
  314. data/third_party/boringssl/crypto/buf/buf.c +20 -44
  315. data/third_party/boringssl/crypto/bytestring/ber.c +35 -35
  316. data/third_party/boringssl/crypto/bytestring/cbb.c +24 -24
  317. data/third_party/boringssl/crypto/bytestring/cbs.c +33 -37
  318. data/third_party/boringssl/crypto/bytestring/internal.h +38 -38
  319. data/third_party/boringssl/crypto/chacha/chacha.c +7 -7
  320. data/third_party/boringssl/crypto/{asn1/t_bitst.c → cipher_extra/cipher_extra.c} +49 -38
  321. data/third_party/boringssl/crypto/{cipher → cipher_extra}/derive_key.c +0 -2
  322. data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +281 -0
  323. data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +867 -0
  324. data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +326 -0
  325. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_null.c +0 -1
  326. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc2.c +22 -10
  327. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc4.c +0 -0
  328. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_ssl3.c +120 -64
  329. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_tls.c +220 -141
  330. data/third_party/boringssl/crypto/{asn1/x_bignum.c → cipher_extra/internal.h} +61 -86
  331. data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +482 -0
  332. data/third_party/boringssl/crypto/cmac/cmac.c +20 -20
  333. data/third_party/boringssl/crypto/conf/conf.c +32 -20
  334. data/third_party/boringssl/crypto/conf/internal.h +3 -3
  335. data/third_party/boringssl/crypto/cpu-aarch64-linux.c +5 -5
  336. data/third_party/boringssl/crypto/cpu-arm-linux.c +44 -41
  337. data/third_party/boringssl/crypto/cpu-intel.c +68 -43
  338. data/third_party/boringssl/crypto/cpu-ppc64le.c +5 -7
  339. data/third_party/boringssl/crypto/crypto.c +54 -32
  340. data/third_party/boringssl/crypto/curve25519/curve25519.c +269 -269
  341. data/third_party/boringssl/crypto/curve25519/internal.h +28 -8
  342. data/third_party/boringssl/crypto/curve25519/spake25519.c +180 -106
  343. data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +9 -9
  344. data/third_party/boringssl/crypto/dh/check.c +33 -34
  345. data/third_party/boringssl/crypto/dh/dh.c +72 -36
  346. data/third_party/boringssl/crypto/dh/dh_asn1.c +1 -1
  347. data/third_party/boringssl/crypto/dh/params.c +1 -161
  348. data/third_party/boringssl/crypto/digest_extra/digest_extra.c +240 -0
  349. data/third_party/boringssl/crypto/dsa/dsa.c +127 -87
  350. data/third_party/boringssl/crypto/dsa/dsa_asn1.c +1 -1
  351. data/third_party/boringssl/crypto/{ec → ec_extra}/ec_asn1.c +83 -70
  352. data/third_party/boringssl/crypto/ecdh/ecdh.c +1 -1
  353. data/third_party/boringssl/crypto/{ecdsa → ecdsa_extra}/ecdsa_asn1.c +86 -31
  354. data/third_party/boringssl/crypto/engine/engine.c +6 -6
  355. data/third_party/boringssl/crypto/err/err.c +197 -106
  356. data/third_party/boringssl/crypto/err/internal.h +58 -0
  357. data/third_party/boringssl/crypto/evp/digestsign.c +86 -14
  358. data/third_party/boringssl/crypto/evp/evp.c +6 -11
  359. data/third_party/boringssl/crypto/evp/evp_asn1.c +17 -17
  360. data/third_party/boringssl/crypto/evp/evp_ctx.c +15 -11
  361. data/third_party/boringssl/crypto/evp/internal.h +66 -51
  362. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +11 -11
  363. data/third_party/boringssl/crypto/evp/p_ec.c +10 -8
  364. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +11 -12
  365. data/third_party/boringssl/crypto/evp/p_ed25519.c +71 -0
  366. data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +190 -0
  367. data/third_party/boringssl/crypto/evp/p_rsa.c +50 -95
  368. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +28 -18
  369. data/third_party/boringssl/crypto/evp/pbkdf.c +49 -56
  370. data/third_party/boringssl/crypto/evp/print.c +5 -36
  371. data/third_party/boringssl/crypto/evp/scrypt.c +209 -0
  372. data/third_party/boringssl/crypto/ex_data.c +15 -45
  373. data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +100 -0
  374. data/third_party/boringssl/crypto/fipsmodule/bcm.c +679 -0
  375. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/internal.h +40 -27
  376. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/rsaz_exp.h +0 -0
  377. data/third_party/boringssl/crypto/{cipher → fipsmodule/cipher}/internal.h +34 -67
  378. data/third_party/boringssl/crypto/fipsmodule/delocate.h +88 -0
  379. data/third_party/boringssl/crypto/{des → fipsmodule/des}/internal.h +18 -4
  380. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/internal.h +18 -18
  381. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/md32_common.h +58 -64
  382. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/internal.h +58 -52
  383. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64-table.h +11 -11
  384. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64.h +32 -32
  385. data/third_party/boringssl/crypto/{rand/internal.h → fipsmodule/is_fips.c} +10 -15
  386. data/third_party/boringssl/crypto/{modes → fipsmodule/modes}/internal.h +112 -119
  387. data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +92 -0
  388. data/third_party/boringssl/crypto/{rsa → fipsmodule/rsa}/internal.h +36 -49
  389. data/third_party/boringssl/crypto/hkdf/hkdf.c +6 -6
  390. data/third_party/boringssl/crypto/internal.h +301 -233
  391. data/third_party/boringssl/crypto/lhash/lhash.c +26 -45
  392. data/third_party/boringssl/crypto/mem.c +76 -33
  393. data/third_party/boringssl/crypto/obj/obj.c +44 -28
  394. data/third_party/boringssl/crypto/obj/obj_dat.h +102 -34
  395. data/third_party/boringssl/crypto/obj/obj_xref.c +6 -6
  396. data/third_party/boringssl/crypto/pem/pem_info.c +3 -5
  397. data/third_party/boringssl/crypto/pem/pem_lib.c +1 -6
  398. data/third_party/boringssl/crypto/pem/pem_pk8.c +1 -0
  399. data/third_party/boringssl/crypto/pem/pem_pkey.c +1 -1
  400. data/third_party/boringssl/crypto/pem/pem_xaux.c +0 -2
  401. data/third_party/boringssl/crypto/pkcs7/internal.h +49 -0
  402. data/third_party/boringssl/crypto/pkcs7/pkcs7.c +166 -0
  403. data/third_party/boringssl/crypto/{x509/pkcs7.c → pkcs7/pkcs7_x509.c} +27 -147
  404. data/third_party/boringssl/crypto/pkcs8/internal.h +34 -16
  405. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +120 -39
  406. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +144 -857
  407. data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +789 -0
  408. data/third_party/boringssl/crypto/poly1305/internal.h +4 -3
  409. data/third_party/boringssl/crypto/poly1305/poly1305.c +14 -14
  410. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +11 -11
  411. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +41 -41
  412. data/third_party/boringssl/crypto/pool/internal.h +2 -2
  413. data/third_party/boringssl/crypto/pool/pool.c +15 -15
  414. data/third_party/boringssl/crypto/{rand → rand_extra}/deterministic.c +7 -7
  415. data/third_party/boringssl/crypto/rand_extra/forkunsafe.c +46 -0
  416. data/third_party/boringssl/crypto/{rand → rand_extra}/fuchsia.c +7 -7
  417. data/third_party/boringssl/crypto/rand_extra/rand_extra.c +70 -0
  418. data/third_party/boringssl/crypto/{rand → rand_extra}/windows.c +5 -5
  419. data/third_party/boringssl/crypto/refcount_c11.c +2 -2
  420. data/third_party/boringssl/crypto/refcount_lock.c +1 -1
  421. data/third_party/boringssl/crypto/{rsa → rsa_extra}/rsa_asn1.c +12 -120
  422. data/third_party/boringssl/crypto/stack/stack.c +13 -13
  423. data/third_party/boringssl/crypto/thread_none.c +1 -1
  424. data/third_party/boringssl/crypto/thread_pthread.c +1 -1
  425. data/third_party/boringssl/crypto/thread_win.c +40 -40
  426. data/third_party/boringssl/crypto/x509/a_sign.c +5 -12
  427. data/third_party/boringssl/crypto/x509/a_verify.c +6 -18
  428. data/third_party/boringssl/crypto/x509/algorithm.c +22 -6
  429. data/third_party/boringssl/crypto/x509/asn1_gen.c +30 -7
  430. data/third_party/boringssl/crypto/x509/by_dir.c +2 -2
  431. data/third_party/boringssl/crypto/x509/by_file.c +2 -2
  432. data/third_party/boringssl/crypto/x509/rsa_pss.c +5 -5
  433. data/third_party/boringssl/crypto/x509/t_x509.c +2 -1
  434. data/third_party/boringssl/crypto/x509/x509_def.c +5 -0
  435. data/third_party/boringssl/crypto/x509/x509_lu.c +35 -4
  436. data/third_party/boringssl/crypto/x509/x509_set.c +10 -0
  437. data/third_party/boringssl/crypto/x509/x509_vfy.c +20 -17
  438. data/third_party/boringssl/crypto/x509/x_name.c +13 -16
  439. data/third_party/boringssl/crypto/x509/x_x509.c +3 -3
  440. data/third_party/boringssl/crypto/x509/x_x509a.c +0 -7
  441. data/third_party/boringssl/crypto/x509v3/ext_dat.h +8 -0
  442. data/third_party/boringssl/crypto/x509v3/pcy_int.h +2 -2
  443. data/third_party/boringssl/crypto/x509v3/pcy_lib.c +0 -9
  444. data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -1
  445. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +25 -15
  446. data/third_party/boringssl/crypto/x509v3/v3_alt.c +21 -11
  447. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +9 -3
  448. data/third_party/boringssl/crypto/x509v3/v3_info.c +22 -14
  449. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +27 -11
  450. data/third_party/boringssl/crypto/x509v3/v3_pci.c +0 -33
  451. data/third_party/boringssl/crypto/x509v3/v3_utl.c +4 -4
  452. data/third_party/boringssl/include/openssl/aead.h +280 -191
  453. data/third_party/boringssl/include/openssl/aes.h +50 -50
  454. data/third_party/boringssl/include/openssl/arm_arch.h +12 -12
  455. data/third_party/boringssl/include/openssl/asn1.h +14 -77
  456. data/third_party/boringssl/include/openssl/asn1t.h +11 -15
  457. data/third_party/boringssl/include/openssl/base.h +78 -51
  458. data/third_party/boringssl/include/openssl/base64.h +68 -68
  459. data/third_party/boringssl/include/openssl/bio.h +472 -406
  460. data/third_party/boringssl/include/openssl/blowfish.h +1 -1
  461. data/third_party/boringssl/include/openssl/bn.h +454 -435
  462. data/third_party/boringssl/include/openssl/buf.h +27 -27
  463. data/third_party/boringssl/include/openssl/bytestring.h +282 -267
  464. data/third_party/boringssl/include/openssl/cast.h +2 -2
  465. data/third_party/boringssl/include/openssl/chacha.h +5 -5
  466. data/third_party/boringssl/include/openssl/cipher.h +209 -200
  467. data/third_party/boringssl/include/openssl/cmac.h +27 -27
  468. data/third_party/boringssl/include/openssl/conf.h +49 -46
  469. data/third_party/boringssl/include/openssl/cpu.h +60 -45
  470. data/third_party/boringssl/include/openssl/crypto.h +59 -35
  471. data/third_party/boringssl/include/openssl/curve25519.h +97 -92
  472. data/third_party/boringssl/include/openssl/des.h +25 -25
  473. data/third_party/boringssl/include/openssl/dh.h +98 -97
  474. data/third_party/boringssl/include/openssl/digest.h +143 -114
  475. data/third_party/boringssl/include/openssl/dsa.h +217 -202
  476. data/third_party/boringssl/include/openssl/ec.h +132 -131
  477. data/third_party/boringssl/include/openssl/ec_key.h +132 -128
  478. data/third_party/boringssl/include/openssl/ecdh.h +9 -9
  479. data/third_party/boringssl/include/openssl/ecdsa.h +66 -66
  480. data/third_party/boringssl/include/openssl/engine.h +38 -38
  481. data/third_party/boringssl/include/openssl/err.h +189 -219
  482. data/third_party/boringssl/include/openssl/evp.h +473 -397
  483. data/third_party/boringssl/include/openssl/ex_data.h +46 -56
  484. data/third_party/boringssl/include/openssl/hkdf.h +17 -17
  485. data/third_party/boringssl/include/openssl/hmac.h +55 -43
  486. data/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  487. data/third_party/boringssl/include/openssl/lhash.h +67 -67
  488. data/third_party/boringssl/include/openssl/lhash_macros.h +4 -4
  489. data/third_party/boringssl/include/openssl/md4.h +14 -14
  490. data/third_party/boringssl/include/openssl/md5.h +14 -14
  491. data/third_party/boringssl/include/openssl/mem.h +39 -33
  492. data/third_party/boringssl/include/openssl/nid.h +43 -0
  493. data/third_party/boringssl/include/openssl/obj.h +93 -87
  494. data/third_party/boringssl/include/openssl/opensslconf.h +8 -1
  495. data/third_party/boringssl/include/openssl/pem.h +2 -122
  496. data/third_party/boringssl/include/openssl/pkcs7.h +68 -2
  497. data/third_party/boringssl/include/openssl/pkcs8.h +81 -66
  498. data/third_party/boringssl/include/openssl/poly1305.h +11 -11
  499. data/third_party/boringssl/include/openssl/pool.h +29 -25
  500. data/third_party/boringssl/include/openssl/rand.h +48 -45
  501. data/third_party/boringssl/include/openssl/rc4.h +9 -9
  502. data/third_party/boringssl/include/openssl/ripemd.h +13 -13
  503. data/third_party/boringssl/include/openssl/rsa.h +371 -340
  504. data/third_party/boringssl/include/openssl/sha.h +71 -71
  505. data/third_party/boringssl/include/openssl/span.h +191 -0
  506. data/third_party/boringssl/include/openssl/ssl.h +2639 -2519
  507. data/third_party/boringssl/include/openssl/ssl3.h +39 -122
  508. data/third_party/boringssl/include/openssl/stack.h +355 -164
  509. data/third_party/boringssl/include/openssl/thread.h +43 -43
  510. data/third_party/boringssl/include/openssl/tls1.h +60 -63
  511. data/third_party/boringssl/include/openssl/type_check.h +10 -14
  512. data/third_party/boringssl/include/openssl/x509.h +41 -116
  513. data/third_party/boringssl/include/openssl/x509_vfy.h +17 -25
  514. data/third_party/boringssl/include/openssl/x509v3.h +27 -21
  515. data/third_party/boringssl/ssl/{bio_ssl.c → bio_ssl.cc} +9 -5
  516. data/third_party/boringssl/ssl/{custom_extensions.c → custom_extensions.cc} +19 -12
  517. data/third_party/boringssl/ssl/{d1_both.c → d1_both.cc} +224 -193
  518. data/third_party/boringssl/ssl/{d1_lib.c → d1_lib.cc} +86 -79
  519. data/third_party/boringssl/ssl/{d1_pkt.c → d1_pkt.cc} +55 -87
  520. data/third_party/boringssl/ssl/{d1_srtp.c → d1_srtp.cc} +12 -16
  521. data/third_party/boringssl/ssl/{dtls_method.c → dtls_method.cc} +33 -50
  522. data/third_party/boringssl/ssl/{dtls_record.c → dtls_record.cc} +76 -64
  523. data/third_party/boringssl/ssl/handshake.cc +547 -0
  524. data/third_party/boringssl/ssl/handshake_client.cc +1828 -0
  525. data/third_party/boringssl/ssl/handshake_server.cc +1672 -0
  526. data/third_party/boringssl/ssl/internal.h +2027 -1280
  527. data/third_party/boringssl/ssl/s3_both.cc +603 -0
  528. data/third_party/boringssl/ssl/{s3_lib.c → s3_lib.cc} +22 -10
  529. data/third_party/boringssl/ssl/{s3_pkt.c → s3_pkt.cc} +171 -75
  530. data/third_party/boringssl/ssl/ssl_aead_ctx.cc +415 -0
  531. data/third_party/boringssl/ssl/{ssl_asn1.c → ssl_asn1.cc} +257 -261
  532. data/third_party/boringssl/ssl/{ssl_buffer.c → ssl_buffer.cc} +81 -97
  533. data/third_party/boringssl/ssl/{ssl_cert.c → ssl_cert.cc} +304 -414
  534. data/third_party/boringssl/ssl/{ssl_cipher.c → ssl_cipher.cc} +427 -505
  535. data/third_party/boringssl/ssl/{ssl_file.c → ssl_file.cc} +24 -16
  536. data/third_party/boringssl/ssl/ssl_key_share.cc +245 -0
  537. data/third_party/boringssl/ssl/{ssl_lib.c → ssl_lib.cc} +665 -828
  538. data/third_party/boringssl/ssl/ssl_privkey.cc +518 -0
  539. data/third_party/boringssl/ssl/{ssl_session.c → ssl_session.cc} +596 -471
  540. data/third_party/boringssl/ssl/{ssl_stat.c → ssl_stat.cc} +5 -224
  541. data/third_party/boringssl/ssl/{ssl_transcript.c → ssl_transcript.cc} +117 -140
  542. data/third_party/boringssl/ssl/ssl_versions.cc +439 -0
  543. data/third_party/boringssl/ssl/{ssl_x509.c → ssl_x509.cc} +751 -267
  544. data/third_party/boringssl/ssl/{t1_enc.c → t1_enc.cc} +120 -161
  545. data/third_party/boringssl/ssl/{t1_lib.c → t1_lib.cc} +859 -966
  546. data/third_party/boringssl/ssl/{tls13_both.c → tls13_both.cc} +202 -284
  547. data/third_party/boringssl/ssl/tls13_client.cc +842 -0
  548. data/third_party/boringssl/ssl/{tls13_enc.c → tls13_enc.cc} +108 -90
  549. data/third_party/boringssl/ssl/tls13_server.cc +967 -0
  550. data/third_party/boringssl/ssl/{tls_method.c → tls_method.cc} +94 -73
  551. data/third_party/boringssl/ssl/tls_record.cc +675 -0
  552. metadata +117 -168
  553. data/include/grpc/support/cmdline.h +0 -88
  554. data/include/grpc/support/subprocess.h +0 -44
  555. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -29
  556. data/src/core/ext/filters/client_channel/resolver_factory.cc +0 -40
  557. data/src/core/lib/gpr/cmdline.cc +0 -330
  558. data/src/core/lib/gpr/subprocess_posix.cc +0 -99
  559. data/src/core/lib/gpr/subprocess_windows.cc +0 -126
  560. data/src/core/lib/surface/alarm.cc +0 -137
  561. data/src/core/lib/surface/alarm_internal.h +0 -40
  562. data/src/core/tsi/gts_transport_security.cc +0 -40
  563. data/third_party/boringssl/crypto/aes/aes.c +0 -1142
  564. data/third_party/boringssl/crypto/aes/internal.h +0 -87
  565. data/third_party/boringssl/crypto/aes/key_wrap.c +0 -138
  566. data/third_party/boringssl/crypto/aes/mode_wrappers.c +0 -112
  567. data/third_party/boringssl/crypto/asn1/x_long.c +0 -200
  568. data/third_party/boringssl/crypto/bn/add.c +0 -377
  569. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +0 -532
  570. data/third_party/boringssl/crypto/bn/bn.c +0 -365
  571. data/third_party/boringssl/crypto/bn/cmp.c +0 -239
  572. data/third_party/boringssl/crypto/bn/ctx.c +0 -313
  573. data/third_party/boringssl/crypto/bn/div.c +0 -728
  574. data/third_party/boringssl/crypto/bn/exponentiation.c +0 -1240
  575. data/third_party/boringssl/crypto/bn/gcd.c +0 -635
  576. data/third_party/boringssl/crypto/bn/generic.c +0 -707
  577. data/third_party/boringssl/crypto/bn/kronecker.c +0 -176
  578. data/third_party/boringssl/crypto/bn/montgomery.c +0 -409
  579. data/third_party/boringssl/crypto/bn/montgomery_inv.c +0 -207
  580. data/third_party/boringssl/crypto/bn/mul.c +0 -871
  581. data/third_party/boringssl/crypto/bn/prime.c +0 -861
  582. data/third_party/boringssl/crypto/bn/random.c +0 -343
  583. data/third_party/boringssl/crypto/bn/rsaz_exp.c +0 -254
  584. data/third_party/boringssl/crypto/bn/shift.c +0 -307
  585. data/third_party/boringssl/crypto/bn/sqrt.c +0 -506
  586. data/third_party/boringssl/crypto/cipher/aead.c +0 -156
  587. data/third_party/boringssl/crypto/cipher/cipher.c +0 -657
  588. data/third_party/boringssl/crypto/cipher/e_aes.c +0 -1771
  589. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +0 -276
  590. data/third_party/boringssl/crypto/cipher/e_des.c +0 -205
  591. data/third_party/boringssl/crypto/cipher/tls_cbc.c +0 -482
  592. data/third_party/boringssl/crypto/des/des.c +0 -771
  593. data/third_party/boringssl/crypto/digest/digest.c +0 -251
  594. data/third_party/boringssl/crypto/digest/digests.c +0 -358
  595. data/third_party/boringssl/crypto/ec/ec.c +0 -847
  596. data/third_party/boringssl/crypto/ec/ec_key.c +0 -479
  597. data/third_party/boringssl/crypto/ec/ec_montgomery.c +0 -303
  598. data/third_party/boringssl/crypto/ec/oct.c +0 -416
  599. data/third_party/boringssl/crypto/ec/p224-64.c +0 -1143
  600. data/third_party/boringssl/crypto/ec/p256-64.c +0 -1701
  601. data/third_party/boringssl/crypto/ec/p256-x86_64.c +0 -561
  602. data/third_party/boringssl/crypto/ec/simple.c +0 -1118
  603. data/third_party/boringssl/crypto/ec/util-64.c +0 -109
  604. data/third_party/boringssl/crypto/ec/wnaf.c +0 -458
  605. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +0 -479
  606. data/third_party/boringssl/crypto/hmac/hmac.c +0 -215
  607. data/third_party/boringssl/crypto/md4/md4.c +0 -236
  608. data/third_party/boringssl/crypto/md5/md5.c +0 -285
  609. data/third_party/boringssl/crypto/modes/cbc.c +0 -212
  610. data/third_party/boringssl/crypto/modes/cfb.c +0 -230
  611. data/third_party/boringssl/crypto/modes/ctr.c +0 -219
  612. data/third_party/boringssl/crypto/modes/gcm.c +0 -1071
  613. data/third_party/boringssl/crypto/modes/ofb.c +0 -95
  614. data/third_party/boringssl/crypto/modes/polyval.c +0 -94
  615. data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +0 -85
  616. data/third_party/boringssl/crypto/rand/rand.c +0 -244
  617. data/third_party/boringssl/crypto/rand/urandom.c +0 -335
  618. data/third_party/boringssl/crypto/rsa/blinding.c +0 -265
  619. data/third_party/boringssl/crypto/rsa/padding.c +0 -708
  620. data/third_party/boringssl/crypto/rsa/rsa.c +0 -830
  621. data/third_party/boringssl/crypto/rsa/rsa_impl.c +0 -1100
  622. data/third_party/boringssl/crypto/sha/sha1-altivec.c +0 -346
  623. data/third_party/boringssl/crypto/sha/sha1.c +0 -355
  624. data/third_party/boringssl/crypto/sha/sha256.c +0 -329
  625. data/third_party/boringssl/crypto/sha/sha512.c +0 -609
  626. data/third_party/boringssl/crypto/x509/x509type.c +0 -126
  627. data/third_party/boringssl/include/openssl/stack_macros.h +0 -3987
  628. data/third_party/boringssl/ssl/handshake_client.c +0 -1883
  629. data/third_party/boringssl/ssl/handshake_server.c +0 -1950
  630. data/third_party/boringssl/ssl/s3_both.c +0 -895
  631. data/third_party/boringssl/ssl/ssl_aead_ctx.c +0 -335
  632. data/third_party/boringssl/ssl/ssl_ecdh.c +0 -465
  633. data/third_party/boringssl/ssl/ssl_privkey.c +0 -683
  634. data/third_party/boringssl/ssl/ssl_privkey_cc.cc +0 -76
  635. data/third_party/boringssl/ssl/tls13_client.c +0 -712
  636. data/third_party/boringssl/ssl/tls13_server.c +0 -680
  637. data/third_party/boringssl/ssl/tls_record.c +0 -556
@@ -75,287 +75,287 @@ extern "C" {
75
75
  #endif
76
76
 
77
77
 
78
- /* Low-level operations on elliptic curves. */
78
+ // Low-level operations on elliptic curves.
79
79
 
80
80
 
81
- /* point_conversion_form_t enumerates forms, as defined in X9.62 (ECDSA), for
82
- * the encoding of a elliptic curve point (x,y) */
81
+ // point_conversion_form_t enumerates forms, as defined in X9.62 (ECDSA), for
82
+ // the encoding of a elliptic curve point (x,y)
83
83
  typedef enum {
84
- /* POINT_CONVERSION_COMPRESSED indicates that the point is encoded as z||x,
85
- * where the octet z specifies which solution of the quadratic equation y
86
- * is. */
84
+ // POINT_CONVERSION_COMPRESSED indicates that the point is encoded as z||x,
85
+ // where the octet z specifies which solution of the quadratic equation y
86
+ // is.
87
87
  POINT_CONVERSION_COMPRESSED = 2,
88
88
 
89
- /* POINT_CONVERSION_UNCOMPRESSED indicates that the point is encoded as
90
- * z||x||y, where z is the octet 0x04. */
89
+ // POINT_CONVERSION_UNCOMPRESSED indicates that the point is encoded as
90
+ // z||x||y, where z is the octet 0x04.
91
91
  POINT_CONVERSION_UNCOMPRESSED = 4,
92
92
 
93
- /* POINT_CONVERSION_HYBRID indicates that the point is encoded as z||x||y,
94
- * where z specifies which solution of the quadratic equation y is. This is
95
- * not supported by the code and has never been observed in use.
96
- *
97
- * TODO(agl): remove once node.js no longer references this. */
93
+ // POINT_CONVERSION_HYBRID indicates that the point is encoded as z||x||y,
94
+ // where z specifies which solution of the quadratic equation y is. This is
95
+ // not supported by the code and has never been observed in use.
96
+ //
97
+ // TODO(agl): remove once node.js no longer references this.
98
98
  POINT_CONVERSION_HYBRID = 6,
99
99
  } point_conversion_form_t;
100
100
 
101
101
 
102
- /* Elliptic curve groups. */
102
+ // Elliptic curve groups.
103
103
 
104
- /* EC_GROUP_new_by_curve_name returns a fresh EC_GROUP object for the elliptic
105
- * curve specified by |nid|, or NULL on error.
106
- *
107
- * The supported NIDs are:
108
- * NID_secp224r1,
109
- * NID_X9_62_prime256v1,
110
- * NID_secp384r1,
111
- * NID_secp521r1 */
104
+ // EC_GROUP_new_by_curve_name returns a fresh EC_GROUP object for the elliptic
105
+ // curve specified by |nid|, or NULL on error.
106
+ //
107
+ // The supported NIDs are:
108
+ // NID_secp224r1,
109
+ // NID_X9_62_prime256v1,
110
+ // NID_secp384r1,
111
+ // NID_secp521r1
112
112
  OPENSSL_EXPORT EC_GROUP *EC_GROUP_new_by_curve_name(int nid);
113
113
 
114
- /* EC_GROUP_free frees |group| and the data that it points to. */
114
+ // EC_GROUP_free frees |group| and the data that it points to.
115
115
  OPENSSL_EXPORT void EC_GROUP_free(EC_GROUP *group);
116
116
 
117
- /* EC_GROUP_dup returns a fresh |EC_GROUP| which is equal to |a| or NULL on
118
- * error. */
117
+ // EC_GROUP_dup returns a fresh |EC_GROUP| which is equal to |a| or NULL on
118
+ // error.
119
119
  OPENSSL_EXPORT EC_GROUP *EC_GROUP_dup(const EC_GROUP *a);
120
120
 
121
- /* EC_GROUP_cmp returns zero if |a| and |b| are the same group and non-zero
122
- * otherwise. */
121
+ // EC_GROUP_cmp returns zero if |a| and |b| are the same group and non-zero
122
+ // otherwise.
123
123
  OPENSSL_EXPORT int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b,
124
124
  BN_CTX *ignored);
125
125
 
126
- /* EC_GROUP_get0_generator returns a pointer to the internal |EC_POINT| object
127
- * in |group| that specifies the generator for the group. */
126
+ // EC_GROUP_get0_generator returns a pointer to the internal |EC_POINT| object
127
+ // in |group| that specifies the generator for the group.
128
128
  OPENSSL_EXPORT const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group);
129
129
 
130
- /* EC_GROUP_get0_order returns a pointer to the internal |BIGNUM| object in
131
- * |group| that specifies the order of the group. */
130
+ // EC_GROUP_get0_order returns a pointer to the internal |BIGNUM| object in
131
+ // |group| that specifies the order of the group.
132
132
  OPENSSL_EXPORT const BIGNUM *EC_GROUP_get0_order(const EC_GROUP *group);
133
133
 
134
- /* EC_GROUP_get_cofactor sets |*cofactor| to the cofactor of |group| using
135
- * |ctx|, if it's not NULL. It returns one on success and zero otherwise. */
134
+ // EC_GROUP_get_cofactor sets |*cofactor| to the cofactor of |group| using
135
+ // |ctx|, if it's not NULL. It returns one on success and zero otherwise.
136
136
  OPENSSL_EXPORT int EC_GROUP_get_cofactor(const EC_GROUP *group,
137
137
  BIGNUM *cofactor, BN_CTX *ctx);
138
138
 
139
- /* EC_GROUP_get_curve_GFp gets various parameters about a group. It sets
140
- * |*out_p| to the order of the coordinate field and |*out_a| and |*out_b| to
141
- * the parameters of the curve when expressed as y² = x³ + ax + b. Any of the
142
- * output parameters can be NULL. It returns one on success and zero on
143
- * error. */
139
+ // EC_GROUP_get_curve_GFp gets various parameters about a group. It sets
140
+ // |*out_p| to the order of the coordinate field and |*out_a| and |*out_b| to
141
+ // the parameters of the curve when expressed as y² = x³ + ax + b. Any of the
142
+ // output parameters can be NULL. It returns one on success and zero on
143
+ // error.
144
144
  OPENSSL_EXPORT int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *out_p,
145
145
  BIGNUM *out_a, BIGNUM *out_b,
146
146
  BN_CTX *ctx);
147
147
 
148
- /* EC_GROUP_get_curve_name returns a NID that identifies |group|. */
148
+ // EC_GROUP_get_curve_name returns a NID that identifies |group|.
149
149
  OPENSSL_EXPORT int EC_GROUP_get_curve_name(const EC_GROUP *group);
150
150
 
151
- /* EC_GROUP_get_degree returns the number of bits needed to represent an
152
- * element of the field underlying |group|. */
151
+ // EC_GROUP_get_degree returns the number of bits needed to represent an
152
+ // element of the field underlying |group|.
153
153
  OPENSSL_EXPORT unsigned EC_GROUP_get_degree(const EC_GROUP *group);
154
154
 
155
155
 
156
- /* Points on elliptic curves. */
156
+ // Points on elliptic curves.
157
157
 
158
- /* EC_POINT_new returns a fresh |EC_POINT| object in the given group, or NULL
159
- * on error. */
158
+ // EC_POINT_new returns a fresh |EC_POINT| object in the given group, or NULL
159
+ // on error.
160
160
  OPENSSL_EXPORT EC_POINT *EC_POINT_new(const EC_GROUP *group);
161
161
 
162
- /* EC_POINT_free frees |point| and the data that it points to. */
162
+ // EC_POINT_free frees |point| and the data that it points to.
163
163
  OPENSSL_EXPORT void EC_POINT_free(EC_POINT *point);
164
164
 
165
- /* EC_POINT_clear_free clears the data that |point| points to, frees it and
166
- * then frees |point| itself. */
165
+ // EC_POINT_clear_free clears the data that |point| points to, frees it and
166
+ // then frees |point| itself.
167
167
  OPENSSL_EXPORT void EC_POINT_clear_free(EC_POINT *point);
168
168
 
169
- /* EC_POINT_copy sets |*dest| equal to |*src|. It returns one on success and
170
- * zero otherwise. */
169
+ // EC_POINT_copy sets |*dest| equal to |*src|. It returns one on success and
170
+ // zero otherwise.
171
171
  OPENSSL_EXPORT int EC_POINT_copy(EC_POINT *dest, const EC_POINT *src);
172
172
 
173
- /* EC_POINT_dup returns a fresh |EC_POINT| that contains the same values as
174
- * |src|, or NULL on error. */
173
+ // EC_POINT_dup returns a fresh |EC_POINT| that contains the same values as
174
+ // |src|, or NULL on error.
175
175
  OPENSSL_EXPORT EC_POINT *EC_POINT_dup(const EC_POINT *src,
176
176
  const EC_GROUP *group);
177
177
 
178
- /* EC_POINT_set_to_infinity sets |point| to be the "point at infinity" for the
179
- * given group. */
178
+ // EC_POINT_set_to_infinity sets |point| to be the "point at infinity" for the
179
+ // given group.
180
180
  OPENSSL_EXPORT int EC_POINT_set_to_infinity(const EC_GROUP *group,
181
181
  EC_POINT *point);
182
182
 
183
- /* EC_POINT_is_at_infinity returns one iff |point| is the point at infinity and
184
- * zero otherwise. */
183
+ // EC_POINT_is_at_infinity returns one iff |point| is the point at infinity and
184
+ // zero otherwise.
185
185
  OPENSSL_EXPORT int EC_POINT_is_at_infinity(const EC_GROUP *group,
186
186
  const EC_POINT *point);
187
187
 
188
- /* EC_POINT_is_on_curve returns one if |point| is an element of |group| and
189
- * and zero otherwise or when an error occurs. This is different from OpenSSL,
190
- * which returns -1 on error. If |ctx| is non-NULL, it may be used. */
188
+ // EC_POINT_is_on_curve returns one if |point| is an element of |group| and
189
+ // and zero otherwise or when an error occurs. This is different from OpenSSL,
190
+ // which returns -1 on error. If |ctx| is non-NULL, it may be used.
191
191
  OPENSSL_EXPORT int EC_POINT_is_on_curve(const EC_GROUP *group,
192
192
  const EC_POINT *point, BN_CTX *ctx);
193
193
 
194
- /* EC_POINT_cmp returns zero if |a| is equal to |b|, greater than zero if
195
- * not equal and -1 on error. If |ctx| is not NULL, it may be used. */
194
+ // EC_POINT_cmp returns zero if |a| is equal to |b|, greater than zero if
195
+ // not equal and -1 on error. If |ctx| is not NULL, it may be used.
196
196
  OPENSSL_EXPORT int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a,
197
197
  const EC_POINT *b, BN_CTX *ctx);
198
198
 
199
- /* EC_POINT_make_affine converts |point| to affine form, internally. It returns
200
- * one on success and zero otherwise. If |ctx| is not NULL, it may be used. */
199
+ // EC_POINT_make_affine converts |point| to affine form, internally. It returns
200
+ // one on success and zero otherwise. If |ctx| is not NULL, it may be used.
201
201
  OPENSSL_EXPORT int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point,
202
202
  BN_CTX *ctx);
203
203
 
204
- /* EC_POINTs_make_affine converts |num| points from |points| to affine form,
205
- * internally. It returns one on success and zero otherwise. If |ctx| is not
206
- * NULL, it may be used. */
204
+ // EC_POINTs_make_affine converts |num| points from |points| to affine form,
205
+ // internally. It returns one on success and zero otherwise. If |ctx| is not
206
+ // NULL, it may be used.
207
207
  OPENSSL_EXPORT int EC_POINTs_make_affine(const EC_GROUP *group, size_t num,
208
208
  EC_POINT *points[], BN_CTX *ctx);
209
209
 
210
210
 
211
- /* Point conversion. */
211
+ // Point conversion.
212
212
 
213
- /* EC_POINT_get_affine_coordinates_GFp sets |x| and |y| to the affine value of
214
- * |point| using |ctx|, if it's not NULL. It returns one on success and zero
215
- * otherwise. */
213
+ // EC_POINT_get_affine_coordinates_GFp sets |x| and |y| to the affine value of
214
+ // |point| using |ctx|, if it's not NULL. It returns one on success and zero
215
+ // otherwise.
216
216
  OPENSSL_EXPORT int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group,
217
217
  const EC_POINT *point,
218
218
  BIGNUM *x, BIGNUM *y,
219
219
  BN_CTX *ctx);
220
220
 
221
- /* EC_POINT_set_affine_coordinates_GFp sets the value of |point| to be
222
- * (|x|, |y|). The |ctx| argument may be used if not NULL. It returns one
223
- * on success or zero on error. Note that, unlike with OpenSSL, it's
224
- * considered an error if the point is not on the curve. */
221
+ // EC_POINT_set_affine_coordinates_GFp sets the value of |point| to be
222
+ // (|x|, |y|). The |ctx| argument may be used if not NULL. It returns one
223
+ // on success or zero on error. Note that, unlike with OpenSSL, it's
224
+ // considered an error if the point is not on the curve.
225
225
  OPENSSL_EXPORT int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group,
226
226
  EC_POINT *point,
227
227
  const BIGNUM *x,
228
228
  const BIGNUM *y,
229
229
  BN_CTX *ctx);
230
230
 
231
- /* EC_POINT_point2oct serialises |point| into the X9.62 form given by |form|
232
- * into, at most, |len| bytes at |buf|. It returns the number of bytes written
233
- * or zero on error if |buf| is non-NULL, else the number of bytes needed. The
234
- * |ctx| argument may be used if not NULL. */
231
+ // EC_POINT_point2oct serialises |point| into the X9.62 form given by |form|
232
+ // into, at most, |len| bytes at |buf|. It returns the number of bytes written
233
+ // or zero on error if |buf| is non-NULL, else the number of bytes needed. The
234
+ // |ctx| argument may be used if not NULL.
235
235
  OPENSSL_EXPORT size_t EC_POINT_point2oct(const EC_GROUP *group,
236
236
  const EC_POINT *point,
237
237
  point_conversion_form_t form,
238
238
  uint8_t *buf, size_t len, BN_CTX *ctx);
239
239
 
240
- /* EC_POINT_point2cbb behaves like |EC_POINT_point2oct| but appends the
241
- * serialised point to |cbb|. It returns one on success and zero on error. */
240
+ // EC_POINT_point2cbb behaves like |EC_POINT_point2oct| but appends the
241
+ // serialised point to |cbb|. It returns one on success and zero on error.
242
242
  OPENSSL_EXPORT int EC_POINT_point2cbb(CBB *out, const EC_GROUP *group,
243
243
  const EC_POINT *point,
244
244
  point_conversion_form_t form,
245
245
  BN_CTX *ctx);
246
246
 
247
- /* EC_POINT_oct2point sets |point| from |len| bytes of X9.62 format
248
- * serialisation in |buf|. It returns one on success and zero otherwise. The
249
- * |ctx| argument may be used if not NULL. */
247
+ // EC_POINT_oct2point sets |point| from |len| bytes of X9.62 format
248
+ // serialisation in |buf|. It returns one on success and zero otherwise. The
249
+ // |ctx| argument may be used if not NULL.
250
250
  OPENSSL_EXPORT int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *point,
251
251
  const uint8_t *buf, size_t len,
252
252
  BN_CTX *ctx);
253
253
 
254
- /* EC_POINT_set_compressed_coordinates_GFp sets |point| to equal the point with
255
- * the given |x| coordinate and the y coordinate specified by |y_bit| (see
256
- * X9.62). It returns one on success and zero otherwise. */
254
+ // EC_POINT_set_compressed_coordinates_GFp sets |point| to equal the point with
255
+ // the given |x| coordinate and the y coordinate specified by |y_bit| (see
256
+ // X9.62). It returns one on success and zero otherwise.
257
257
  OPENSSL_EXPORT int EC_POINT_set_compressed_coordinates_GFp(
258
258
  const EC_GROUP *group, EC_POINT *point, const BIGNUM *x, int y_bit,
259
259
  BN_CTX *ctx);
260
260
 
261
261
 
262
- /* Group operations. */
262
+ // Group operations.
263
263
 
264
- /* EC_POINT_add sets |r| equal to |a| plus |b|. It returns one on success and
265
- * zero otherwise. If |ctx| is not NULL, it may be used. */
264
+ // EC_POINT_add sets |r| equal to |a| plus |b|. It returns one on success and
265
+ // zero otherwise. If |ctx| is not NULL, it may be used.
266
266
  OPENSSL_EXPORT int EC_POINT_add(const EC_GROUP *group, EC_POINT *r,
267
267
  const EC_POINT *a, const EC_POINT *b,
268
268
  BN_CTX *ctx);
269
269
 
270
- /* EC_POINT_dbl sets |r| equal to |a| plus |a|. It returns one on success and
271
- * zero otherwise. If |ctx| is not NULL, it may be used. */
270
+ // EC_POINT_dbl sets |r| equal to |a| plus |a|. It returns one on success and
271
+ // zero otherwise. If |ctx| is not NULL, it may be used.
272
272
  OPENSSL_EXPORT int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r,
273
273
  const EC_POINT *a, BN_CTX *ctx);
274
274
 
275
- /* EC_POINT_invert sets |a| equal to minus |a|. It returns one on success and
276
- * zero otherwise. If |ctx| is not NULL, it may be used. */
275
+ // EC_POINT_invert sets |a| equal to minus |a|. It returns one on success and
276
+ // zero otherwise. If |ctx| is not NULL, it may be used.
277
277
  OPENSSL_EXPORT int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a,
278
278
  BN_CTX *ctx);
279
279
 
280
- /* EC_POINT_mul sets r = generator*n + q*m. It returns one on success and zero
281
- * otherwise. If |ctx| is not NULL, it may be used. */
280
+ // EC_POINT_mul sets r = generator*n + q*m. It returns one on success and zero
281
+ // otherwise. If |ctx| is not NULL, it may be used.
282
282
  OPENSSL_EXPORT int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r,
283
283
  const BIGNUM *n, const EC_POINT *q,
284
284
  const BIGNUM *m, BN_CTX *ctx);
285
285
 
286
286
 
287
- /* Deprecated functions. */
288
-
289
- /* EC_GROUP_new_curve_GFp creates a new, arbitrary elliptic curve group based
290
- * on the equation y² = x³ + a·x + b. It returns the new group or NULL on
291
- * error.
292
- *
293
- * This new group has no generator. It is an error to use a generator-less group
294
- * with any functions except for |EC_GROUP_free|, |EC_POINT_new|,
295
- * |EC_POINT_set_affine_coordinates_GFp|, and |EC_GROUP_set_generator|.
296
- *
297
- * |EC_GROUP|s returned by this function will always compare as unequal via
298
- * |EC_GROUP_cmp| (even to themselves). |EC_GROUP_get_curve_name| will always
299
- * return |NID_undef|.
300
- *
301
- * Avoid using arbitrary curves and use |EC_GROUP_new_by_curve_name| instead. */
287
+ // Deprecated functions.
288
+
289
+ // EC_GROUP_new_curve_GFp creates a new, arbitrary elliptic curve group based
290
+ // on the equation y² = x³ + a·x + b. It returns the new group or NULL on
291
+ // error.
292
+ //
293
+ // This new group has no generator. It is an error to use a generator-less group
294
+ // with any functions except for |EC_GROUP_free|, |EC_POINT_new|,
295
+ // |EC_POINT_set_affine_coordinates_GFp|, and |EC_GROUP_set_generator|.
296
+ //
297
+ // |EC_GROUP|s returned by this function will always compare as unequal via
298
+ // |EC_GROUP_cmp| (even to themselves). |EC_GROUP_get_curve_name| will always
299
+ // return |NID_undef|.
300
+ //
301
+ // Avoid using arbitrary curves and use |EC_GROUP_new_by_curve_name| instead.
302
302
  OPENSSL_EXPORT EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p,
303
303
  const BIGNUM *a,
304
304
  const BIGNUM *b, BN_CTX *ctx);
305
305
 
306
- /* EC_GROUP_set_generator sets the generator for |group| to |generator|, which
307
- * must have the given order and cofactor. It may only be used with |EC_GROUP|
308
- * objects returned by |EC_GROUP_new_curve_GFp| and may only be used once on
309
- * each group. */
306
+ // EC_GROUP_set_generator sets the generator for |group| to |generator|, which
307
+ // must have the given order and cofactor. It may only be used with |EC_GROUP|
308
+ // objects returned by |EC_GROUP_new_curve_GFp| and may only be used once on
309
+ // each group.
310
310
  OPENSSL_EXPORT int EC_GROUP_set_generator(EC_GROUP *group,
311
311
  const EC_POINT *generator,
312
312
  const BIGNUM *order,
313
313
  const BIGNUM *cofactor);
314
314
 
315
- /* EC_GROUP_get_order sets |*order| to the order of |group|, if it's not
316
- * NULL. It returns one on success and zero otherwise. |ctx| is ignored. Use
317
- * |EC_GROUP_get0_order| instead. */
315
+ // EC_GROUP_get_order sets |*order| to the order of |group|, if it's not
316
+ // NULL. It returns one on success and zero otherwise. |ctx| is ignored. Use
317
+ // |EC_GROUP_get0_order| instead.
318
318
  OPENSSL_EXPORT int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order,
319
319
  BN_CTX *ctx);
320
320
 
321
- /* EC_GROUP_set_asn1_flag does nothing. */
321
+ // EC_GROUP_set_asn1_flag does nothing.
322
322
  OPENSSL_EXPORT void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag);
323
323
 
324
324
  #define OPENSSL_EC_NAMED_CURVE 0
325
325
 
326
326
  typedef struct ec_method_st EC_METHOD;
327
327
 
328
- /* EC_GROUP_method_of returns NULL. */
328
+ // EC_GROUP_method_of returns NULL.
329
329
  OPENSSL_EXPORT const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group);
330
330
 
331
- /* EC_METHOD_get_field_type returns NID_X9_62_prime_field. */
331
+ // EC_METHOD_get_field_type returns NID_X9_62_prime_field.
332
332
  OPENSSL_EXPORT int EC_METHOD_get_field_type(const EC_METHOD *meth);
333
333
 
334
- /* EC_GROUP_set_point_conversion_form aborts the process if |form| is not
335
- * |POINT_CONVERSION_UNCOMPRESSED| and otherwise does nothing. */
334
+ // EC_GROUP_set_point_conversion_form aborts the process if |form| is not
335
+ // |POINT_CONVERSION_UNCOMPRESSED| and otherwise does nothing.
336
336
  OPENSSL_EXPORT void EC_GROUP_set_point_conversion_form(
337
337
  EC_GROUP *group, point_conversion_form_t form);
338
338
 
339
- /* EC_builtin_curve describes a supported elliptic curve. */
339
+ // EC_builtin_curve describes a supported elliptic curve.
340
340
  typedef struct {
341
341
  int nid;
342
342
  const char *comment;
343
343
  } EC_builtin_curve;
344
344
 
345
- /* EC_get_builtin_curves writes at most |max_num_curves| elements to
346
- * |out_curves| and returns the total number that it would have written, had
347
- * |max_num_curves| been large enough.
348
- *
349
- * The |EC_builtin_curve| items describe the supported elliptic curves. */
345
+ // EC_get_builtin_curves writes at most |max_num_curves| elements to
346
+ // |out_curves| and returns the total number that it would have written, had
347
+ // |max_num_curves| been large enough.
348
+ //
349
+ // The |EC_builtin_curve| items describe the supported elliptic curves.
350
350
  OPENSSL_EXPORT size_t EC_get_builtin_curves(EC_builtin_curve *out_curves,
351
351
  size_t max_num_curves);
352
352
 
353
- /* Old code expects to get EC_KEY from ec.h. */
353
+ // Old code expects to get EC_KEY from ec.h.
354
354
  #include <openssl/ec_key.h>
355
355
 
356
356
 
357
357
  #if defined(__cplusplus)
358
- } /* extern C */
358
+ } // extern C
359
359
 
360
360
  extern "C++" {
361
361
 
@@ -366,7 +366,7 @@ BORINGSSL_MAKE_DELETER(EC_GROUP, EC_GROUP_free)
366
366
 
367
367
  } // namespace bssl
368
368
 
369
- } /* extern C++ */
369
+ } // extern C++
370
370
 
371
371
  #endif
372
372
 
@@ -402,5 +402,6 @@ BORINGSSL_MAKE_DELETER(EC_GROUP, EC_GROUP_free)
402
402
  #define EC_R_ENCODE_ERROR 129
403
403
  #define EC_R_GROUP_MISMATCH 130
404
404
  #define EC_R_INVALID_COFACTOR 131
405
+ #define EC_R_PUBLIC_KEY_VALIDATION_FAILED 132
405
406
 
406
- #endif /* OPENSSL_HEADER_EC_H */
407
+ #endif // OPENSSL_HEADER_EC_H
@@ -79,157 +79,165 @@ extern "C" {
79
79
  #endif
80
80
 
81
81
 
82
- /* ec_key.h contains functions that handle elliptic-curve points that are
83
- * public/private keys. */
82
+ // ec_key.h contains functions that handle elliptic-curve points that are
83
+ // public/private keys.
84
84
 
85
85
 
86
- /* EC key objects. */
86
+ // EC key objects.
87
87
 
88
- /* EC_KEY_new returns a fresh |EC_KEY| object or NULL on error. */
88
+ // EC_KEY_new returns a fresh |EC_KEY| object or NULL on error.
89
89
  OPENSSL_EXPORT EC_KEY *EC_KEY_new(void);
90
90
 
91
- /* EC_KEY_new_method acts the same as |EC_KEY_new|, but takes an explicit
92
- * |ENGINE|. */
91
+ // EC_KEY_new_method acts the same as |EC_KEY_new|, but takes an explicit
92
+ // |ENGINE|.
93
93
  OPENSSL_EXPORT EC_KEY *EC_KEY_new_method(const ENGINE *engine);
94
94
 
95
- /* EC_KEY_new_by_curve_name returns a fresh EC_KEY for group specified by |nid|
96
- * or NULL on error. */
95
+ // EC_KEY_new_by_curve_name returns a fresh EC_KEY for group specified by |nid|
96
+ // or NULL on error.
97
97
  OPENSSL_EXPORT EC_KEY *EC_KEY_new_by_curve_name(int nid);
98
98
 
99
- /* EC_KEY_free frees all the data owned by |key| and |key| itself. */
99
+ // EC_KEY_free frees all the data owned by |key| and |key| itself.
100
100
  OPENSSL_EXPORT void EC_KEY_free(EC_KEY *key);
101
101
 
102
- /* EC_KEY_copy sets |dst| equal to |src| and returns |dst| or NULL on error. */
102
+ // EC_KEY_copy sets |dst| equal to |src| and returns |dst| or NULL on error.
103
103
  OPENSSL_EXPORT EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src);
104
104
 
105
- /* EC_KEY_dup returns a fresh copy of |src| or NULL on error. */
105
+ // EC_KEY_dup returns a fresh copy of |src| or NULL on error.
106
106
  OPENSSL_EXPORT EC_KEY *EC_KEY_dup(const EC_KEY *src);
107
107
 
108
- /* EC_KEY_up_ref increases the reference count of |key| and returns one. */
108
+ // EC_KEY_up_ref increases the reference count of |key| and returns one.
109
109
  OPENSSL_EXPORT int EC_KEY_up_ref(EC_KEY *key);
110
110
 
111
- /* EC_KEY_is_opaque returns one if |key| is opaque and doesn't expose its key
112
- * material. Otherwise it return zero. */
111
+ // EC_KEY_is_opaque returns one if |key| is opaque and doesn't expose its key
112
+ // material. Otherwise it return zero.
113
113
  OPENSSL_EXPORT int EC_KEY_is_opaque(const EC_KEY *key);
114
114
 
115
- /* EC_KEY_get0_group returns a pointer to the |EC_GROUP| object inside |key|. */
115
+ // EC_KEY_get0_group returns a pointer to the |EC_GROUP| object inside |key|.
116
116
  OPENSSL_EXPORT const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key);
117
117
 
118
- /* EC_KEY_set_group sets the |EC_GROUP| object that |key| will use to |group|.
119
- * It returns one on success and zero otherwise. */
118
+ // EC_KEY_set_group sets the |EC_GROUP| object that |key| will use to |group|.
119
+ // It returns one on success and zero otherwise.
120
120
  OPENSSL_EXPORT int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group);
121
121
 
122
- /* EC_KEY_get0_private_key returns a pointer to the private key inside |key|. */
122
+ // EC_KEY_get0_private_key returns a pointer to the private key inside |key|.
123
123
  OPENSSL_EXPORT const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key);
124
124
 
125
- /* EC_KEY_set_private_key sets the private key of |key| to |priv|. It returns
126
- * one on success and zero otherwise. */
125
+ // EC_KEY_set_private_key sets the private key of |key| to |priv|. It returns
126
+ // one on success and zero otherwise.
127
127
  OPENSSL_EXPORT int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv);
128
128
 
129
- /* EC_KEY_get0_public_key returns a pointer to the public key point inside
130
- * |key|. */
129
+ // EC_KEY_get0_public_key returns a pointer to the public key point inside
130
+ // |key|.
131
131
  OPENSSL_EXPORT const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key);
132
132
 
133
- /* EC_KEY_set_public_key sets the public key of |key| to |pub|, by copying it.
134
- * It returns one on success and zero otherwise. */
133
+ // EC_KEY_set_public_key sets the public key of |key| to |pub|, by copying it.
134
+ // It returns one on success and zero otherwise.
135
135
  OPENSSL_EXPORT int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub);
136
136
 
137
137
  #define EC_PKEY_NO_PARAMETERS 0x001
138
138
  #define EC_PKEY_NO_PUBKEY 0x002
139
139
 
140
- /* EC_KEY_get_enc_flags returns the encoding flags for |key|, which is a
141
- * bitwise-OR of |EC_PKEY_*| values. */
140
+ // EC_KEY_get_enc_flags returns the encoding flags for |key|, which is a
141
+ // bitwise-OR of |EC_PKEY_*| values.
142
142
  OPENSSL_EXPORT unsigned EC_KEY_get_enc_flags(const EC_KEY *key);
143
143
 
144
- /* EC_KEY_set_enc_flags sets the encoding flags for |key|, which is a
145
- * bitwise-OR of |EC_PKEY_*| values. */
144
+ // EC_KEY_set_enc_flags sets the encoding flags for |key|, which is a
145
+ // bitwise-OR of |EC_PKEY_*| values.
146
146
  OPENSSL_EXPORT void EC_KEY_set_enc_flags(EC_KEY *key, unsigned flags);
147
147
 
148
- /* EC_KEY_get_conv_form returns the conversation form that will be used by
149
- * |key|. */
148
+ // EC_KEY_get_conv_form returns the conversation form that will be used by
149
+ // |key|.
150
150
  OPENSSL_EXPORT point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key);
151
151
 
152
- /* EC_KEY_set_conv_form sets the conversion form to be used by |key|. */
152
+ // EC_KEY_set_conv_form sets the conversion form to be used by |key|.
153
153
  OPENSSL_EXPORT void EC_KEY_set_conv_form(EC_KEY *key,
154
154
  point_conversion_form_t cform);
155
155
 
156
- /* EC_KEY_check_key performs several checks on |key| (possibly including an
157
- * expensive check that the public key is in the primary subgroup). It returns
158
- * one if all checks pass and zero otherwise. If it returns zero then detail
159
- * about the problem can be found on the error stack. */
156
+ // EC_KEY_check_key performs several checks on |key| (possibly including an
157
+ // expensive check that the public key is in the primary subgroup). It returns
158
+ // one if all checks pass and zero otherwise. If it returns zero then detail
159
+ // about the problem can be found on the error stack.
160
160
  OPENSSL_EXPORT int EC_KEY_check_key(const EC_KEY *key);
161
161
 
162
- /* EC_KEY_set_public_key_affine_coordinates sets the public key in |key| to
163
- * (|x|, |y|). It returns one on success and zero otherwise. */
162
+ // EC_KEY_check_fips performs a signing pairwise consistency test (FIPS 140-2
163
+ // 4.9.2). It returns one if it passes and zero otherwise.
164
+ OPENSSL_EXPORT int EC_KEY_check_fips(const EC_KEY *key);
165
+
166
+ // EC_KEY_set_public_key_affine_coordinates sets the public key in |key| to
167
+ // (|x|, |y|). It returns one on success and zero otherwise.
164
168
  OPENSSL_EXPORT int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key,
165
169
  BIGNUM *x,
166
170
  BIGNUM *y);
167
171
 
168
172
 
169
- /* Key generation. */
173
+ // Key generation.
170
174
 
171
- /* EC_KEY_generate_key generates a random, private key, calculates the
172
- * corresponding public key and stores both in |key|. It returns one on success
173
- * or zero otherwise. */
175
+ // EC_KEY_generate_key generates a random, private key, calculates the
176
+ // corresponding public key and stores both in |key|. It returns one on success
177
+ // or zero otherwise.
174
178
  OPENSSL_EXPORT int EC_KEY_generate_key(EC_KEY *key);
175
179
 
180
+ // EC_KEY_generate_key_fips behaves like |EC_KEY_generate_key| but performs
181
+ // additional checks for FIPS compliance.
182
+ OPENSSL_EXPORT int EC_KEY_generate_key_fips(EC_KEY *key);
183
+
176
184
 
177
- /* Serialisation. */
185
+ // Serialisation.
178
186
 
179
- /* EC_KEY_parse_private_key parses a DER-encoded ECPrivateKey structure (RFC
180
- * 5915) from |cbs| and advances |cbs|. It returns a newly-allocated |EC_KEY| or
181
- * NULL on error. If |group| is non-null, the parameters field of the
182
- * ECPrivateKey may be omitted (but must match |group| if present). Otherwise,
183
- * the parameters field is required. */
187
+ // EC_KEY_parse_private_key parses a DER-encoded ECPrivateKey structure (RFC
188
+ // 5915) from |cbs| and advances |cbs|. It returns a newly-allocated |EC_KEY| or
189
+ // NULL on error. If |group| is non-null, the parameters field of the
190
+ // ECPrivateKey may be omitted (but must match |group| if present). Otherwise,
191
+ // the parameters field is required.
184
192
  OPENSSL_EXPORT EC_KEY *EC_KEY_parse_private_key(CBS *cbs,
185
193
  const EC_GROUP *group);
186
194
 
187
- /* EC_KEY_marshal_private_key marshals |key| as a DER-encoded ECPrivateKey
188
- * structure (RFC 5915) and appends the result to |cbb|. It returns one on
189
- * success and zero on failure. |enc_flags| is a combination of |EC_PKEY_*|
190
- * values and controls whether corresponding fields are omitted. */
195
+ // EC_KEY_marshal_private_key marshals |key| as a DER-encoded ECPrivateKey
196
+ // structure (RFC 5915) and appends the result to |cbb|. It returns one on
197
+ // success and zero on failure. |enc_flags| is a combination of |EC_PKEY_*|
198
+ // values and controls whether corresponding fields are omitted.
191
199
  OPENSSL_EXPORT int EC_KEY_marshal_private_key(CBB *cbb, const EC_KEY *key,
192
200
  unsigned enc_flags);
193
201
 
194
- /* EC_KEY_parse_curve_name parses a DER-encoded OBJECT IDENTIFIER as a curve
195
- * name from |cbs| and advances |cbs|. It returns a newly-allocated |EC_GROUP|
196
- * or NULL on error. */
202
+ // EC_KEY_parse_curve_name parses a DER-encoded OBJECT IDENTIFIER as a curve
203
+ // name from |cbs| and advances |cbs|. It returns a newly-allocated |EC_GROUP|
204
+ // or NULL on error.
197
205
  OPENSSL_EXPORT EC_GROUP *EC_KEY_parse_curve_name(CBS *cbs);
198
206
 
199
- /* EC_KEY_marshal_curve_name marshals |group| as a DER-encoded OBJECT IDENTIFIER
200
- * and appends the result to |cbb|. It returns one on success and zero on
201
- * failure. */
207
+ // EC_KEY_marshal_curve_name marshals |group| as a DER-encoded OBJECT IDENTIFIER
208
+ // and appends the result to |cbb|. It returns one on success and zero on
209
+ // failure.
202
210
  OPENSSL_EXPORT int EC_KEY_marshal_curve_name(CBB *cbb, const EC_GROUP *group);
203
211
 
204
- /* EC_KEY_parse_parameters parses a DER-encoded ECParameters structure (RFC
205
- * 5480) from |cbs| and advances |cbs|. It returns a newly-allocated |EC_GROUP|
206
- * or NULL on error. It supports the namedCurve and specifiedCurve options, but
207
- * use of specifiedCurve is deprecated. Use |EC_KEY_parse_curve_name|
208
- * instead. */
212
+ // EC_KEY_parse_parameters parses a DER-encoded ECParameters structure (RFC
213
+ // 5480) from |cbs| and advances |cbs|. It returns a newly-allocated |EC_GROUP|
214
+ // or NULL on error. It supports the namedCurve and specifiedCurve options, but
215
+ // use of specifiedCurve is deprecated. Use |EC_KEY_parse_curve_name|
216
+ // instead.
209
217
  OPENSSL_EXPORT EC_GROUP *EC_KEY_parse_parameters(CBS *cbs);
210
218
 
211
219
 
212
- /* ex_data functions.
213
- *
214
- * These functions are wrappers. See |ex_data.h| for details. */
220
+ // ex_data functions.
221
+ //
222
+ // These functions are wrappers. See |ex_data.h| for details.
215
223
 
216
224
  OPENSSL_EXPORT int EC_KEY_get_ex_new_index(long argl, void *argp,
217
225
  CRYPTO_EX_unused *unused,
218
- CRYPTO_EX_dup *dup_func,
226
+ CRYPTO_EX_dup *dup_unused,
219
227
  CRYPTO_EX_free *free_func);
220
228
  OPENSSL_EXPORT int EC_KEY_set_ex_data(EC_KEY *r, int idx, void *arg);
221
229
  OPENSSL_EXPORT void *EC_KEY_get_ex_data(const EC_KEY *r, int idx);
222
230
 
223
231
 
224
- /* ECDSA method. */
232
+ // ECDSA method.
225
233
 
226
- /* ECDSA_FLAG_OPAQUE specifies that this ECDSA_METHOD does not expose its key
227
- * material. This may be set if, for instance, it is wrapping some other crypto
228
- * API, like a platform key store. */
234
+ // ECDSA_FLAG_OPAQUE specifies that this ECDSA_METHOD does not expose its key
235
+ // material. This may be set if, for instance, it is wrapping some other crypto
236
+ // API, like a platform key store.
229
237
  #define ECDSA_FLAG_OPAQUE 1
230
238
 
231
- /* ecdsa_method_st is a structure of function pointers for implementing ECDSA.
232
- * See engine.h. */
239
+ // ecdsa_method_st is a structure of function pointers for implementing ECDSA.
240
+ // See engine.h.
233
241
  struct ecdsa_method_st {
234
242
  struct openssl_method_common_st common;
235
243
 
@@ -238,89 +246,85 @@ struct ecdsa_method_st {
238
246
  int (*init)(EC_KEY *key);
239
247
  int (*finish)(EC_KEY *key);
240
248
 
241
- /* group_order_size returns the number of bytes needed to represent the order
242
- * of the group. This is used to calculate the maximum size of an ECDSA
243
- * signature in |ECDSA_size|. */
249
+ // group_order_size returns the number of bytes needed to represent the order
250
+ // of the group. This is used to calculate the maximum size of an ECDSA
251
+ // signature in |ECDSA_size|.
244
252
  size_t (*group_order_size)(const EC_KEY *key);
245
253
 
246
- /* sign matches the arguments and behaviour of |ECDSA_sign|. */
254
+ // sign matches the arguments and behaviour of |ECDSA_sign|.
247
255
  int (*sign)(const uint8_t *digest, size_t digest_len, uint8_t *sig,
248
256
  unsigned int *sig_len, EC_KEY *eckey);
249
257
 
250
- /* Ignored. Set this to NULL. */
251
- int (*verify)(const uint8_t *digest, size_t digest_len, const uint8_t *sig,
252
- size_t sig_len, EC_KEY *eckey);
253
-
254
258
  int flags;
255
259
  };
256
260
 
257
261
 
258
- /* Deprecated functions. */
262
+ // Deprecated functions.
259
263
 
260
- /* EC_KEY_set_asn1_flag does nothing. */
264
+ // EC_KEY_set_asn1_flag does nothing.
261
265
  OPENSSL_EXPORT void EC_KEY_set_asn1_flag(EC_KEY *key, int flag);
262
266
 
263
- /* d2i_ECPrivateKey parses an ASN.1, DER-encoded, private key from |len| bytes
264
- * at |*inp|. If |out_key| is not NULL then, on exit, a pointer to the result
265
- * is in |*out_key|. Note that, even if |*out_key| is already non-NULL on entry,
266
- * it * will not be written to. Rather, a fresh |EC_KEY| is allocated and the
267
- * previous * one is freed. On successful exit, |*inp| is advanced past the DER
268
- * structure. It returns the result or NULL on error.
269
- *
270
- * On input, if |*out_key| is non-NULL and has a group configured, the
271
- * parameters field may be omitted but must match that group if present.
272
- *
273
- * Use |EC_KEY_parse_private_key| instead. */
267
+ // d2i_ECPrivateKey parses an ASN.1, DER-encoded, private key from |len| bytes
268
+ // at |*inp|. If |out_key| is not NULL then, on exit, a pointer to the result
269
+ // is in |*out_key|. Note that, even if |*out_key| is already non-NULL on entry,
270
+ // it * will not be written to. Rather, a fresh |EC_KEY| is allocated and the
271
+ // previous * one is freed. On successful exit, |*inp| is advanced past the DER
272
+ // structure. It returns the result or NULL on error.
273
+ //
274
+ // On input, if |*out_key| is non-NULL and has a group configured, the
275
+ // parameters field may be omitted but must match that group if present.
276
+ //
277
+ // Use |EC_KEY_parse_private_key| instead.
274
278
  OPENSSL_EXPORT EC_KEY *d2i_ECPrivateKey(EC_KEY **out_key, const uint8_t **inp,
275
279
  long len);
276
280
 
277
- /* i2d_ECPrivateKey marshals an EC private key from |key| to an ASN.1, DER
278
- * structure. If |outp| is not NULL then the result is written to |*outp| and
279
- * |*outp| is advanced just past the output. It returns the number of bytes in
280
- * the result, whether written or not, or a negative value on error.
281
- *
282
- * Use |EC_KEY_marshal_private_key| instead. */
281
+ // i2d_ECPrivateKey marshals an EC private key from |key| to an ASN.1, DER
282
+ // structure. If |outp| is not NULL then the result is written to |*outp| and
283
+ // |*outp| is advanced just past the output. It returns the number of bytes in
284
+ // the result, whether written or not, or a negative value on error.
285
+ //
286
+ // Use |EC_KEY_marshal_private_key| instead.
283
287
  OPENSSL_EXPORT int i2d_ECPrivateKey(const EC_KEY *key, uint8_t **outp);
284
288
 
285
- /* d2i_ECParameters parses an ASN.1, DER-encoded, set of EC parameters from
286
- * |len| bytes at |*inp|. If |out_key| is not NULL then, on exit, a pointer to
287
- * the result is in |*out_key|. Note that, even if |*out_key| is already
288
- * non-NULL on entry, it will not be written to. Rather, a fresh |EC_KEY| is
289
- * allocated and the previous one is freed. On successful exit, |*inp| is
290
- * advanced past the DER structure. It returns the result or NULL on error.
291
- *
292
- * Use |EC_KEY_parse_parameters| or |EC_KEY_parse_curve_name| instead. */
289
+ // d2i_ECParameters parses an ASN.1, DER-encoded, set of EC parameters from
290
+ // |len| bytes at |*inp|. If |out_key| is not NULL then, on exit, a pointer to
291
+ // the result is in |*out_key|. Note that, even if |*out_key| is already
292
+ // non-NULL on entry, it will not be written to. Rather, a fresh |EC_KEY| is
293
+ // allocated and the previous one is freed. On successful exit, |*inp| is
294
+ // advanced past the DER structure. It returns the result or NULL on error.
295
+ //
296
+ // Use |EC_KEY_parse_parameters| or |EC_KEY_parse_curve_name| instead.
293
297
  OPENSSL_EXPORT EC_KEY *d2i_ECParameters(EC_KEY **out_key, const uint8_t **inp,
294
298
  long len);
295
299
 
296
- /* i2d_ECParameters marshals EC parameters from |key| to an ASN.1, DER
297
- * structure. If |outp| is not NULL then the result is written to |*outp| and
298
- * |*outp| is advanced just past the output. It returns the number of bytes in
299
- * the result, whether written or not, or a negative value on error.
300
- *
301
- * Use |EC_KEY_marshal_curve_name| instead. */
300
+ // i2d_ECParameters marshals EC parameters from |key| to an ASN.1, DER
301
+ // structure. If |outp| is not NULL then the result is written to |*outp| and
302
+ // |*outp| is advanced just past the output. It returns the number of bytes in
303
+ // the result, whether written or not, or a negative value on error.
304
+ //
305
+ // Use |EC_KEY_marshal_curve_name| instead.
302
306
  OPENSSL_EXPORT int i2d_ECParameters(const EC_KEY *key, uint8_t **outp);
303
307
 
304
- /* o2i_ECPublicKey parses an EC point from |len| bytes at |*inp| into
305
- * |*out_key|. Note that this differs from the d2i format in that |*out_key|
306
- * must be non-NULL with a group set. On successful exit, |*inp| is advanced by
307
- * |len| bytes. It returns |*out_key| or NULL on error.
308
- *
309
- * Use |EC_POINT_oct2point| instead. */
308
+ // o2i_ECPublicKey parses an EC point from |len| bytes at |*inp| into
309
+ // |*out_key|. Note that this differs from the d2i format in that |*out_key|
310
+ // must be non-NULL with a group set. On successful exit, |*inp| is advanced by
311
+ // |len| bytes. It returns |*out_key| or NULL on error.
312
+ //
313
+ // Use |EC_POINT_oct2point| instead.
310
314
  OPENSSL_EXPORT EC_KEY *o2i_ECPublicKey(EC_KEY **out_key, const uint8_t **inp,
311
315
  long len);
312
316
 
313
- /* i2o_ECPublicKey marshals an EC point from |key|. If |outp| is not NULL then
314
- * the result is written to |*outp| and |*outp| is advanced just past the
315
- * output. It returns the number of bytes in the result, whether written or
316
- * not, or a negative value on error.
317
- *
318
- * Use |EC_POINT_point2cbb| instead. */
317
+ // i2o_ECPublicKey marshals an EC point from |key|. If |outp| is not NULL then
318
+ // the result is written to |*outp| and |*outp| is advanced just past the
319
+ // output. It returns the number of bytes in the result, whether written or
320
+ // not, or a negative value on error.
321
+ //
322
+ // Use |EC_POINT_point2cbb| instead.
319
323
  OPENSSL_EXPORT int i2o_ECPublicKey(const EC_KEY *key, unsigned char **outp);
320
324
 
321
325
 
322
326
  #if defined(__cplusplus)
323
- } /* extern C */
327
+ } // extern C
324
328
 
325
329
  extern "C++" {
326
330
 
@@ -330,8 +334,8 @@ BORINGSSL_MAKE_DELETER(EC_KEY, EC_KEY_free)
330
334
 
331
335
  } // namespace bssl
332
336
 
333
- } /* extern C++ */
337
+ } // extern C++
334
338
 
335
339
  #endif
336
340
 
337
- #endif /* OPENSSL_HEADER_EC_KEY_H */
341
+ #endif // OPENSSL_HEADER_EC_KEY_H