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
@@ -64,17 +64,17 @@ extern "C" {
64
64
  #endif
65
65
 
66
66
 
67
- /* Digest functions.
68
- *
69
- * An EVP_MD abstracts the details of a specific hash function allowing code to
70
- * deal with the concept of a "hash function" without needing to know exactly
71
- * which hash function it is. */
67
+ // Digest functions.
68
+ //
69
+ // An EVP_MD abstracts the details of a specific hash function allowing code to
70
+ // deal with the concept of a "hash function" without needing to know exactly
71
+ // which hash function it is.
72
72
 
73
73
 
74
- /* Hash algorithms.
75
- *
76
- * The following functions return |EVP_MD| objects that implement the named hash
77
- * function. */
74
+ // Hash algorithms.
75
+ //
76
+ // The following functions return |EVP_MD| objects that implement the named hash
77
+ // function.
78
78
 
79
79
  OPENSSL_EXPORT const EVP_MD *EVP_md4(void);
80
80
  OPENSSL_EXPORT const EVP_MD *EVP_md5(void);
@@ -84,192 +84,219 @@ OPENSSL_EXPORT const EVP_MD *EVP_sha256(void);
84
84
  OPENSSL_EXPORT const EVP_MD *EVP_sha384(void);
85
85
  OPENSSL_EXPORT const EVP_MD *EVP_sha512(void);
86
86
 
87
- /* EVP_md5_sha1 is a TLS-specific |EVP_MD| which computes the concatenation of
88
- * MD5 and SHA-1, as used in TLS 1.1 and below. */
87
+ // EVP_md5_sha1 is a TLS-specific |EVP_MD| which computes the concatenation of
88
+ // MD5 and SHA-1, as used in TLS 1.1 and below.
89
89
  OPENSSL_EXPORT const EVP_MD *EVP_md5_sha1(void);
90
90
 
91
- /* EVP_get_digestbynid returns an |EVP_MD| for the given NID, or NULL if no
92
- * such digest is known. */
91
+ // EVP_get_digestbynid returns an |EVP_MD| for the given NID, or NULL if no
92
+ // such digest is known.
93
93
  OPENSSL_EXPORT const EVP_MD *EVP_get_digestbynid(int nid);
94
94
 
95
- /* EVP_get_digestbyobj returns an |EVP_MD| for the given |ASN1_OBJECT|, or NULL
96
- * if no such digest is known. */
95
+ // EVP_get_digestbyobj returns an |EVP_MD| for the given |ASN1_OBJECT|, or NULL
96
+ // if no such digest is known.
97
97
  OPENSSL_EXPORT const EVP_MD *EVP_get_digestbyobj(const ASN1_OBJECT *obj);
98
98
 
99
99
 
100
- /* Digest contexts.
101
- *
102
- * An EVP_MD_CTX represents the state of a specific digest operation in
103
- * progress. */
100
+ // Digest contexts.
101
+ //
102
+ // An EVP_MD_CTX represents the state of a specific digest operation in
103
+ // progress.
104
104
 
105
- /* EVP_MD_CTX_init initialises an, already allocated, |EVP_MD_CTX|. This is the
106
- * same as setting the structure to zero. */
105
+ // EVP_MD_CTX_init initialises an, already allocated, |EVP_MD_CTX|. This is the
106
+ // same as setting the structure to zero.
107
107
  OPENSSL_EXPORT void EVP_MD_CTX_init(EVP_MD_CTX *ctx);
108
108
 
109
- /* EVP_MD_CTX_create allocates and initialises a fresh |EVP_MD_CTX| and returns
110
- * it, or NULL on allocation failure. */
111
- OPENSSL_EXPORT EVP_MD_CTX *EVP_MD_CTX_create(void);
109
+ // EVP_MD_CTX_new allocates and initialises a fresh |EVP_MD_CTX| and returns
110
+ // it, or NULL on allocation failure. The caller must use |EVP_MD_CTX_free| to
111
+ // release the resulting object.
112
+ OPENSSL_EXPORT EVP_MD_CTX *EVP_MD_CTX_new(void);
112
113
 
113
- /* EVP_MD_CTX_cleanup frees any resources owned by |ctx| and resets it to a
114
- * freshly initialised state. It does not free |ctx| itself. It returns one. */
114
+ // EVP_MD_CTX_cleanup frees any resources owned by |ctx| and resets it to a
115
+ // freshly initialised state. It does not free |ctx| itself. It returns one.
115
116
  OPENSSL_EXPORT int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx);
116
117
 
117
- /* EVP_MD_CTX_destroy calls |EVP_MD_CTX_cleanup| and then frees |ctx| itself. */
118
- OPENSSL_EXPORT void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx);
118
+ // EVP_MD_CTX_free calls |EVP_MD_CTX_cleanup| and then frees |ctx| itself.
119
+ OPENSSL_EXPORT void EVP_MD_CTX_free(EVP_MD_CTX *ctx);
119
120
 
120
- /* EVP_MD_CTX_copy_ex sets |out|, which must already be initialised, to be a
121
- * copy of |in|. It returns one on success and zero on error. */
121
+ // EVP_MD_CTX_copy_ex sets |out|, which must already be initialised, to be a
122
+ // copy of |in|. It returns one on success and zero on error.
122
123
  OPENSSL_EXPORT int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in);
123
124
 
125
+ // EVP_MD_CTX_reset calls |EVP_MD_CTX_cleanup| followed by |EVP_MD_CTX_init|.
126
+ OPENSSL_EXPORT void EVP_MD_CTX_reset(EVP_MD_CTX *ctx);
127
+
124
128
 
125
- /* Digest operations. */
129
+ // Digest operations.
126
130
 
127
- /* EVP_DigestInit_ex configures |ctx|, which must already have been
128
- * initialised, for a fresh hashing operation using |type|. It returns one on
129
- * success and zero otherwise. */
131
+ // EVP_DigestInit_ex configures |ctx|, which must already have been
132
+ // initialised, for a fresh hashing operation using |type|. It returns one on
133
+ // success and zero otherwise.
130
134
  OPENSSL_EXPORT int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type,
131
135
  ENGINE *engine);
132
136
 
133
- /* EVP_DigestInit acts like |EVP_DigestInit_ex| except that |ctx| is
134
- * initialised before use. */
137
+ // EVP_DigestInit acts like |EVP_DigestInit_ex| except that |ctx| is
138
+ // initialised before use.
135
139
  OPENSSL_EXPORT int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type);
136
140
 
137
- /* EVP_DigestUpdate hashes |len| bytes from |data| into the hashing operation
138
- * in |ctx|. It returns one. */
141
+ // EVP_DigestUpdate hashes |len| bytes from |data| into the hashing operation
142
+ // in |ctx|. It returns one.
139
143
  OPENSSL_EXPORT int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *data,
140
144
  size_t len);
141
145
 
142
- /* EVP_MAX_MD_SIZE is the largest digest size supported, in bytes.
143
- * Functions that output a digest generally require the buffer have
144
- * at least this much space. */
145
- #define EVP_MAX_MD_SIZE 64 /* SHA-512 is the longest so far. */
146
-
147
- /* EVP_MAX_MD_BLOCK_SIZE is the largest digest block size supported, in
148
- * bytes. */
149
- #define EVP_MAX_MD_BLOCK_SIZE 128 /* SHA-512 is the longest so far. */
150
-
151
- /* EVP_DigestFinal_ex finishes the digest in |ctx| and writes the output to
152
- * |md_out|. |EVP_MD_CTX_size| bytes are written, which is at most
153
- * |EVP_MAX_MD_SIZE|. If |out_size| is not NULL then |*out_size| is set to the
154
- * number of bytes written. It returns one. After this call, the hash cannot be
155
- * updated or finished again until |EVP_DigestInit_ex| is called to start
156
- * another hashing operation. */
146
+ // EVP_MAX_MD_SIZE is the largest digest size supported, in bytes.
147
+ // Functions that output a digest generally require the buffer have
148
+ // at least this much space.
149
+ #define EVP_MAX_MD_SIZE 64 // SHA-512 is the longest so far.
150
+
151
+ // EVP_MAX_MD_BLOCK_SIZE is the largest digest block size supported, in
152
+ // bytes.
153
+ #define EVP_MAX_MD_BLOCK_SIZE 128 // SHA-512 is the longest so far.
154
+
155
+ // EVP_DigestFinal_ex finishes the digest in |ctx| and writes the output to
156
+ // |md_out|. |EVP_MD_CTX_size| bytes are written, which is at most
157
+ // |EVP_MAX_MD_SIZE|. If |out_size| is not NULL then |*out_size| is set to the
158
+ // number of bytes written. It returns one. After this call, the hash cannot be
159
+ // updated or finished again until |EVP_DigestInit_ex| is called to start
160
+ // another hashing operation.
157
161
  OPENSSL_EXPORT int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, uint8_t *md_out,
158
162
  unsigned int *out_size);
159
163
 
160
- /* EVP_DigestFinal acts like |EVP_DigestFinal_ex| except that
161
- * |EVP_MD_CTX_cleanup| is called on |ctx| before returning. */
164
+ // EVP_DigestFinal acts like |EVP_DigestFinal_ex| except that
165
+ // |EVP_MD_CTX_cleanup| is called on |ctx| before returning.
162
166
  OPENSSL_EXPORT int EVP_DigestFinal(EVP_MD_CTX *ctx, uint8_t *md_out,
163
167
  unsigned int *out_size);
164
168
 
165
- /* EVP_Digest performs a complete hashing operation in one call. It hashes |len|
166
- * bytes from |data| and writes the digest to |md_out|. |EVP_MD_CTX_size| bytes
167
- * are written, which is at most |EVP_MAX_MD_SIZE|. If |out_size| is not NULL
168
- * then |*out_size| is set to the number of bytes written. It returns one on
169
- * success and zero otherwise. */
169
+ // EVP_Digest performs a complete hashing operation in one call. It hashes |len|
170
+ // bytes from |data| and writes the digest to |md_out|. |EVP_MD_CTX_size| bytes
171
+ // are written, which is at most |EVP_MAX_MD_SIZE|. If |out_size| is not NULL
172
+ // then |*out_size| is set to the number of bytes written. It returns one on
173
+ // success and zero otherwise.
170
174
  OPENSSL_EXPORT int EVP_Digest(const void *data, size_t len, uint8_t *md_out,
171
175
  unsigned int *md_out_size, const EVP_MD *type,
172
176
  ENGINE *impl);
173
177
 
174
178
 
175
- /* Digest function accessors.
176
- *
177
- * These functions allow code to learn details about an abstract hash
178
- * function. */
179
+ // Digest function accessors.
180
+ //
181
+ // These functions allow code to learn details about an abstract hash
182
+ // function.
179
183
 
180
- /* EVP_MD_type returns a NID identifying |md|. (For example, |NID_sha256|.) */
184
+ // EVP_MD_type returns a NID identifying |md|. (For example, |NID_sha256|.)
181
185
  OPENSSL_EXPORT int EVP_MD_type(const EVP_MD *md);
182
186
 
183
- /* EVP_MD_flags returns the flags for |md|, which is a set of |EVP_MD_FLAG_*|
184
- * values, ORed together. */
187
+ // EVP_MD_flags returns the flags for |md|, which is a set of |EVP_MD_FLAG_*|
188
+ // values, ORed together.
185
189
  OPENSSL_EXPORT uint32_t EVP_MD_flags(const EVP_MD *md);
186
190
 
187
- /* EVP_MD_size returns the digest size of |md|, in bytes. */
191
+ // EVP_MD_size returns the digest size of |md|, in bytes.
188
192
  OPENSSL_EXPORT size_t EVP_MD_size(const EVP_MD *md);
189
193
 
190
- /* EVP_MD_block_size returns the native block-size of |md|, in bytes. */
194
+ // EVP_MD_block_size returns the native block-size of |md|, in bytes.
191
195
  OPENSSL_EXPORT size_t EVP_MD_block_size(const EVP_MD *md);
192
196
 
193
- /* EVP_MD_FLAG_PKEY_DIGEST indicates the the digest function is used with a
194
- * specific public key in order to verify signatures. (For example,
195
- * EVP_dss1.) */
197
+ // EVP_MD_FLAG_PKEY_DIGEST indicates the the digest function is used with a
198
+ // specific public key in order to verify signatures. (For example,
199
+ // EVP_dss1.)
196
200
  #define EVP_MD_FLAG_PKEY_DIGEST 1
197
201
 
198
- /* EVP_MD_FLAG_DIGALGID_ABSENT indicates that the parameter type in an X.509
199
- * DigestAlgorithmIdentifier representing this digest function should be
200
- * undefined rather than NULL. */
202
+ // EVP_MD_FLAG_DIGALGID_ABSENT indicates that the parameter type in an X.509
203
+ // DigestAlgorithmIdentifier representing this digest function should be
204
+ // undefined rather than NULL.
201
205
  #define EVP_MD_FLAG_DIGALGID_ABSENT 2
202
206
 
203
207
 
204
- /* Deprecated functions. */
208
+ // Digest operation accessors.
205
209
 
206
- /* EVP_MD_CTX_copy sets |out|, which must /not/ be initialised, to be a copy of
207
- * |in|. It returns one on success and zero on error. */
208
- OPENSSL_EXPORT int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in);
210
+ // EVP_MD_CTX_md returns the underlying digest function, or NULL if one has not
211
+ // been set.
212
+ OPENSSL_EXPORT const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx);
209
213
 
210
- /* EVP_add_digest does nothing and returns one. It exists only for
211
- * compatibility with OpenSSL. */
212
- OPENSSL_EXPORT int EVP_add_digest(const EVP_MD *digest);
214
+ // EVP_MD_CTX_size returns the digest size of |ctx|, in bytes. It
215
+ // will crash if a digest hasn't been set on |ctx|.
216
+ OPENSSL_EXPORT size_t EVP_MD_CTX_size(const EVP_MD_CTX *ctx);
213
217
 
214
- /* EVP_get_digestbyname returns an |EVP_MD| given a human readable name in
215
- * |name|, or NULL if the name is unknown. */
216
- OPENSSL_EXPORT const EVP_MD *EVP_get_digestbyname(const char *);
218
+ // EVP_MD_CTX_block_size returns the block size of the digest function used by
219
+ // |ctx|, in bytes. It will crash if a digest hasn't been set on |ctx|.
220
+ OPENSSL_EXPORT size_t EVP_MD_CTX_block_size(const EVP_MD_CTX *ctx);
217
221
 
218
- /* EVP_dss1 returns the value of EVP_sha1(). This was provided by OpenSSL to
219
- * specifiy the original DSA signatures, which were fixed to use SHA-1. Note,
220
- * however, that attempting to sign or verify DSA signatures with the EVP
221
- * interface will always fail. */
222
- OPENSSL_EXPORT const EVP_MD *EVP_dss1(void);
222
+ // EVP_MD_CTX_type returns a NID describing the digest function used by |ctx|.
223
+ // (For example, |NID_sha256|.) It will crash if a digest hasn't been set on
224
+ // |ctx|.
225
+ OPENSSL_EXPORT int EVP_MD_CTX_type(const EVP_MD_CTX *ctx);
223
226
 
224
227
 
225
- /* Digest operation accessors. */
228
+ // ASN.1 functions.
229
+ //
230
+ // These functions allow code to parse and serialize AlgorithmIdentifiers for
231
+ // hash functions.
226
232
 
227
- /* EVP_MD_CTX_md returns the underlying digest function, or NULL if one has not
228
- * been set. */
229
- OPENSSL_EXPORT const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx);
233
+ // EVP_parse_digest_algorithm parses an AlgorithmIdentifier structure containing
234
+ // a hash function OID (for example, 2.16.840.1.101.3.4.2.1 is SHA-256) and
235
+ // advances |cbs|. The parameters field may either be omitted or a NULL. It
236
+ // returns the digest function or NULL on error.
237
+ OPENSSL_EXPORT const EVP_MD *EVP_parse_digest_algorithm(CBS *cbs);
230
238
 
231
- /* EVP_MD_CTX_size returns the digest size of |ctx|, in bytes. It
232
- * will crash if a digest hasn't been set on |ctx|. */
233
- OPENSSL_EXPORT size_t EVP_MD_CTX_size(const EVP_MD_CTX *ctx);
239
+ // EVP_marshal_digest_algorithm marshals |md| as an AlgorithmIdentifier
240
+ // structure and appends the result to |cbb|. It returns one on success and zero
241
+ // on error.
242
+ OPENSSL_EXPORT int EVP_marshal_digest_algorithm(CBB *cbb, const EVP_MD *md);
234
243
 
235
- /* EVP_MD_CTX_block_size returns the block size of the digest function used by
236
- * |ctx|, in bytes. It will crash if a digest hasn't been set on |ctx|. */
237
- OPENSSL_EXPORT size_t EVP_MD_CTX_block_size(const EVP_MD_CTX *ctx);
238
244
 
239
- /* EVP_MD_CTX_type returns a NID describing the digest function used by |ctx|.
240
- * (For example, |NID_sha256|.) It will crash if a digest hasn't been set on
241
- * |ctx|. */
242
- OPENSSL_EXPORT int EVP_MD_CTX_type(const EVP_MD_CTX *ctx);
245
+ // Deprecated functions.
246
+
247
+ // EVP_MD_CTX_copy sets |out|, which must /not/ be initialised, to be a copy of
248
+ // |in|. It returns one on success and zero on error.
249
+ OPENSSL_EXPORT int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in);
250
+
251
+ // EVP_add_digest does nothing and returns one. It exists only for
252
+ // compatibility with OpenSSL.
253
+ OPENSSL_EXPORT int EVP_add_digest(const EVP_MD *digest);
254
+
255
+ // EVP_get_digestbyname returns an |EVP_MD| given a human readable name in
256
+ // |name|, or NULL if the name is unknown.
257
+ OPENSSL_EXPORT const EVP_MD *EVP_get_digestbyname(const char *);
258
+
259
+ // EVP_dss1 returns the value of EVP_sha1(). This was provided by OpenSSL to
260
+ // specifiy the original DSA signatures, which were fixed to use SHA-1. Note,
261
+ // however, that attempting to sign or verify DSA signatures with the EVP
262
+ // interface will always fail.
263
+ OPENSSL_EXPORT const EVP_MD *EVP_dss1(void);
264
+
265
+ // EVP_MD_CTX_create calls |EVP_MD_CTX_new|.
266
+ OPENSSL_EXPORT EVP_MD_CTX *EVP_MD_CTX_create(void);
267
+
268
+ // EVP_MD_CTX_destroy calls |EVP_MD_CTX_free|.
269
+ OPENSSL_EXPORT void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx);
243
270
 
244
271
 
245
272
  struct evp_md_pctx_ops;
246
273
 
247
274
  struct env_md_ctx_st {
248
- /* digest is the underlying digest function, or NULL if not set. */
275
+ // digest is the underlying digest function, or NULL if not set.
249
276
  const EVP_MD *digest;
250
- /* md_data points to a block of memory that contains the hash-specific
251
- * context. */
277
+ // md_data points to a block of memory that contains the hash-specific
278
+ // context.
252
279
  void *md_data;
253
280
 
254
- /* pctx is an opaque (at this layer) pointer to additional context that
255
- * EVP_PKEY functions may store in this object. */
281
+ // pctx is an opaque (at this layer) pointer to additional context that
282
+ // EVP_PKEY functions may store in this object.
256
283
  EVP_PKEY_CTX *pctx;
257
284
 
258
- /* pctx_ops, if not NULL, points to a vtable that contains functions to
259
- * manipulate |pctx|. */
285
+ // pctx_ops, if not NULL, points to a vtable that contains functions to
286
+ // manipulate |pctx|.
260
287
  const struct evp_md_pctx_ops *pctx_ops;
261
288
  } /* EVP_MD_CTX */;
262
289
 
263
290
 
264
291
  #if defined(__cplusplus)
265
- } /* extern C */
292
+ } // extern C
266
293
 
267
294
  #if !defined(BORINGSSL_NO_CXX)
268
295
  extern "C++" {
269
296
 
270
297
  namespace bssl {
271
298
 
272
- BORINGSSL_MAKE_DELETER(EVP_MD_CTX, EVP_MD_CTX_destroy)
299
+ BORINGSSL_MAKE_DELETER(EVP_MD_CTX, EVP_MD_CTX_free)
273
300
 
274
301
  using ScopedEVP_MD_CTX =
275
302
  internal::StackAllocated<EVP_MD_CTX, int, EVP_MD_CTX_init,
@@ -283,5 +310,7 @@ using ScopedEVP_MD_CTX =
283
310
  #endif
284
311
 
285
312
  #define DIGEST_R_INPUT_NOT_INITIALIZED 100
313
+ #define DIGEST_R_DECODE_ERROR 101
314
+ #define DIGEST_R_UNKNOWN_HASH 102
286
315
 
287
- #endif /* OPENSSL_HEADER_DIGEST_H */
316
+ #endif // OPENSSL_HEADER_DIGEST_H
@@ -71,315 +71,330 @@ extern "C" {
71
71
  #endif
72
72
 
73
73
 
74
- /* DSA contains functions for signing and verifying with the Digital Signature
75
- * Algorithm. */
74
+ // DSA contains functions for signing and verifying with the Digital Signature
75
+ // Algorithm.
76
76
 
77
77
 
78
- /* Allocation and destruction. */
78
+ // Allocation and destruction.
79
79
 
80
- /* DSA_new returns a new, empty DSA object or NULL on error. */
80
+ // DSA_new returns a new, empty DSA object or NULL on error.
81
81
  OPENSSL_EXPORT DSA *DSA_new(void);
82
82
 
83
- /* DSA_free decrements the reference count of |dsa| and frees it if the
84
- * reference count drops to zero. */
83
+ // DSA_free decrements the reference count of |dsa| and frees it if the
84
+ // reference count drops to zero.
85
85
  OPENSSL_EXPORT void DSA_free(DSA *dsa);
86
86
 
87
- /* DSA_up_ref increments the reference count of |dsa| and returns one. */
87
+ // DSA_up_ref increments the reference count of |dsa| and returns one.
88
88
  OPENSSL_EXPORT int DSA_up_ref(DSA *dsa);
89
89
 
90
90
 
91
- /* Properties. */
91
+ // Properties.
92
92
 
93
- /* DSA_get0_key sets |*out_pub_key| and |*out_priv_key|, if non-NULL, to |dsa|'s
94
- * public and private key, respectively. If |dsa| is a public key, the private
95
- * key will be set to NULL. */
93
+ // DSA_get0_key sets |*out_pub_key| and |*out_priv_key|, if non-NULL, to |dsa|'s
94
+ // public and private key, respectively. If |dsa| is a public key, the private
95
+ // key will be set to NULL.
96
96
  OPENSSL_EXPORT void DSA_get0_key(const DSA *dsa, const BIGNUM **out_pub_key,
97
97
  const BIGNUM **out_priv_key);
98
98
 
99
- /* DSA_get0_pqg sets |*out_p|, |*out_q|, and |*out_g|, if non-NULL, to |dsa|'s
100
- * p, q, and g parameters, respectively. */
99
+ // DSA_get0_pqg sets |*out_p|, |*out_q|, and |*out_g|, if non-NULL, to |dsa|'s
100
+ // p, q, and g parameters, respectively.
101
101
  OPENSSL_EXPORT void DSA_get0_pqg(const DSA *dsa, const BIGNUM **out_p,
102
102
  const BIGNUM **out_q, const BIGNUM **out_g);
103
103
 
104
-
105
- /* Parameter generation. */
106
-
107
- /* DSA_generate_parameters_ex generates a set of DSA parameters by following
108
- * the procedure given in FIPS 186-4, appendix A.
109
- * (http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf)
110
- *
111
- * The larger prime will have a length of |bits| (e.g. 2048). The |seed| value
112
- * allows others to generate and verify the same parameters and should be
113
- * random input which is kept for reference. If |out_counter| or |out_h| are
114
- * not NULL then the counter and h value used in the generation are written to
115
- * them.
116
- *
117
- * The |cb| argument is passed to |BN_generate_prime_ex| and is thus called
118
- * during the generation process in order to indicate progress. See the
119
- * comments for that function for details. In addition to the calls made by
120
- * |BN_generate_prime_ex|, |DSA_generate_parameters_ex| will call it with
121
- * |event| equal to 2 and 3 at different stages of the process.
122
- *
123
- * It returns one on success and zero otherwise. */
104
+ // DSA_set0_key sets |dsa|'s public and private key to |pub_key| and |priv_key|,
105
+ // respectively, if non-NULL. On success, it takes ownership of each argument
106
+ // and returns one. Otherwise, it returns zero.
107
+ //
108
+ // |priv_key| may be NULL, but |pub_key| must either be non-NULL or already
109
+ // configured on |dsa|.
110
+ OPENSSL_EXPORT int DSA_set0_key(DSA *dsa, BIGNUM *pub_key, BIGNUM *priv_key);
111
+
112
+ // DSA_set0_pqg sets |dsa|'s parameters to |p|, |q|, and |g|, if non-NULL, and
113
+ // takes ownership of them. On success, it takes ownership of each argument and
114
+ // returns one. Otherwise, it returns zero.
115
+ //
116
+ // Each argument must either be non-NULL or already configured on |dsa|.
117
+ OPENSSL_EXPORT int DSA_set0_pqg(DSA *dsa, BIGNUM *p, BIGNUM *q, BIGNUM *g);
118
+
119
+
120
+ // Parameter generation.
121
+
122
+ // DSA_generate_parameters_ex generates a set of DSA parameters by following
123
+ // the procedure given in FIPS 186-4, appendix A.
124
+ // (http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf)
125
+ //
126
+ // The larger prime will have a length of |bits| (e.g. 2048). The |seed| value
127
+ // allows others to generate and verify the same parameters and should be
128
+ // random input which is kept for reference. If |out_counter| or |out_h| are
129
+ // not NULL then the counter and h value used in the generation are written to
130
+ // them.
131
+ //
132
+ // The |cb| argument is passed to |BN_generate_prime_ex| and is thus called
133
+ // during the generation process in order to indicate progress. See the
134
+ // comments for that function for details. In addition to the calls made by
135
+ // |BN_generate_prime_ex|, |DSA_generate_parameters_ex| will call it with
136
+ // |event| equal to 2 and 3 at different stages of the process.
137
+ //
138
+ // It returns one on success and zero otherwise.
124
139
  OPENSSL_EXPORT int DSA_generate_parameters_ex(DSA *dsa, unsigned bits,
125
140
  const uint8_t *seed,
126
141
  size_t seed_len, int *out_counter,
127
142
  unsigned long *out_h,
128
143
  BN_GENCB *cb);
129
144
 
130
- /* DSAparams_dup returns a freshly allocated |DSA| that contains a copy of the
131
- * parameters from |dsa|. It returns NULL on error. */
145
+ // DSAparams_dup returns a freshly allocated |DSA| that contains a copy of the
146
+ // parameters from |dsa|. It returns NULL on error.
132
147
  OPENSSL_EXPORT DSA *DSAparams_dup(const DSA *dsa);
133
148
 
134
149
 
135
- /* Key generation. */
150
+ // Key generation.
136
151
 
137
- /* DSA_generate_key generates a public/private key pair in |dsa|, which must
138
- * already have parameters setup. It returns one on success and zero on
139
- * error. */
152
+ // DSA_generate_key generates a public/private key pair in |dsa|, which must
153
+ // already have parameters setup. It returns one on success and zero on
154
+ // error.
140
155
  OPENSSL_EXPORT int DSA_generate_key(DSA *dsa);
141
156
 
142
157
 
143
- /* Signatures. */
158
+ // Signatures.
144
159
 
145
- /* DSA_SIG_st (aka |DSA_SIG|) contains a DSA signature as a pair of integers. */
160
+ // DSA_SIG_st (aka |DSA_SIG|) contains a DSA signature as a pair of integers.
146
161
  struct DSA_SIG_st {
147
162
  BIGNUM *r, *s;
148
163
  };
149
164
 
150
- /* DSA_SIG_new returns a freshly allocated, DIG_SIG structure or NULL on error.
151
- * Both |r| and |s| in the signature will be NULL. */
165
+ // DSA_SIG_new returns a freshly allocated, DIG_SIG structure or NULL on error.
166
+ // Both |r| and |s| in the signature will be NULL.
152
167
  OPENSSL_EXPORT DSA_SIG *DSA_SIG_new(void);
153
168
 
154
- /* DSA_SIG_free frees the contents of |sig| and then frees |sig| itself. */
169
+ // DSA_SIG_free frees the contents of |sig| and then frees |sig| itself.
155
170
  OPENSSL_EXPORT void DSA_SIG_free(DSA_SIG *sig);
156
171
 
157
- /* DSA_do_sign returns a signature of the hash in |digest| by the key in |dsa|
158
- * and returns an allocated, DSA_SIG structure, or NULL on error. */
172
+ // DSA_do_sign returns a signature of the hash in |digest| by the key in |dsa|
173
+ // and returns an allocated, DSA_SIG structure, or NULL on error.
159
174
  OPENSSL_EXPORT DSA_SIG *DSA_do_sign(const uint8_t *digest, size_t digest_len,
160
175
  DSA *dsa);
161
176
 
162
- /* DSA_do_verify verifies that |sig| is a valid signature, by the public key in
163
- * |dsa|, of the hash in |digest|. It returns one if so, zero if invalid and -1
164
- * on error.
165
- *
166
- * WARNING: do not use. This function returns -1 for error, 0 for invalid and 1
167
- * for valid. However, this is dangerously different to the usual OpenSSL
168
- * convention and could be a disaster if a user did |if (DSA_do_verify(...))|.
169
- * Because of this, |DSA_check_signature| is a safer version of this.
170
- *
171
- * TODO(fork): deprecate. */
177
+ // DSA_do_verify verifies that |sig| is a valid signature, by the public key in
178
+ // |dsa|, of the hash in |digest|. It returns one if so, zero if invalid and -1
179
+ // on error.
180
+ //
181
+ // WARNING: do not use. This function returns -1 for error, 0 for invalid and 1
182
+ // for valid. However, this is dangerously different to the usual OpenSSL
183
+ // convention and could be a disaster if a user did |if (DSA_do_verify(...))|.
184
+ // Because of this, |DSA_check_signature| is a safer version of this.
185
+ //
186
+ // TODO(fork): deprecate.
172
187
  OPENSSL_EXPORT int DSA_do_verify(const uint8_t *digest, size_t digest_len,
173
188
  DSA_SIG *sig, const DSA *dsa);
174
189
 
175
- /* DSA_do_check_signature sets |*out_valid| to zero. Then it verifies that |sig|
176
- * is a valid signature, by the public key in |dsa| of the hash in |digest|
177
- * and, if so, it sets |*out_valid| to one.
178
- *
179
- * It returns one if it was able to verify the signature as valid or invalid,
180
- * and zero on error. */
190
+ // DSA_do_check_signature sets |*out_valid| to zero. Then it verifies that |sig|
191
+ // is a valid signature, by the public key in |dsa| of the hash in |digest|
192
+ // and, if so, it sets |*out_valid| to one.
193
+ //
194
+ // It returns one if it was able to verify the signature as valid or invalid,
195
+ // and zero on error.
181
196
  OPENSSL_EXPORT int DSA_do_check_signature(int *out_valid, const uint8_t *digest,
182
197
  size_t digest_len, DSA_SIG *sig,
183
198
  const DSA *dsa);
184
199
 
185
200
 
186
- /* ASN.1 signatures.
187
- *
188
- * These functions also perform DSA signature operations, but deal with ASN.1
189
- * encoded signatures as opposed to raw |BIGNUM|s. If you don't know what
190
- * encoding a DSA signature is in, it's probably ASN.1. */
191
-
192
- /* DSA_sign signs |digest| with the key in |dsa| and writes the resulting
193
- * signature, in ASN.1 form, to |out_sig| and the length of the signature to
194
- * |*out_siglen|. There must be, at least, |DSA_size(dsa)| bytes of space in
195
- * |out_sig|. It returns one on success and zero otherwise.
196
- *
197
- * (The |type| argument is ignored.) */
201
+ // ASN.1 signatures.
202
+ //
203
+ // These functions also perform DSA signature operations, but deal with ASN.1
204
+ // encoded signatures as opposed to raw |BIGNUM|s. If you don't know what
205
+ // encoding a DSA signature is in, it's probably ASN.1.
206
+
207
+ // DSA_sign signs |digest| with the key in |dsa| and writes the resulting
208
+ // signature, in ASN.1 form, to |out_sig| and the length of the signature to
209
+ // |*out_siglen|. There must be, at least, |DSA_size(dsa)| bytes of space in
210
+ // |out_sig|. It returns one on success and zero otherwise.
211
+ //
212
+ // (The |type| argument is ignored.)
198
213
  OPENSSL_EXPORT int DSA_sign(int type, const uint8_t *digest, size_t digest_len,
199
214
  uint8_t *out_sig, unsigned int *out_siglen,
200
215
  DSA *dsa);
201
216
 
202
- /* DSA_verify verifies that |sig| is a valid, ASN.1 signature, by the public
203
- * key in |dsa|, of the hash in |digest|. It returns one if so, zero if invalid
204
- * and -1 on error.
205
- *
206
- * (The |type| argument is ignored.)
207
- *
208
- * WARNING: do not use. This function returns -1 for error, 0 for invalid and 1
209
- * for valid. However, this is dangerously different to the usual OpenSSL
210
- * convention and could be a disaster if a user did |if (DSA_do_verify(...))|.
211
- * Because of this, |DSA_check_signature| is a safer version of this.
212
- *
213
- * TODO(fork): deprecate. */
217
+ // DSA_verify verifies that |sig| is a valid, ASN.1 signature, by the public
218
+ // key in |dsa|, of the hash in |digest|. It returns one if so, zero if invalid
219
+ // and -1 on error.
220
+ //
221
+ // (The |type| argument is ignored.)
222
+ //
223
+ // WARNING: do not use. This function returns -1 for error, 0 for invalid and 1
224
+ // for valid. However, this is dangerously different to the usual OpenSSL
225
+ // convention and could be a disaster if a user did |if (DSA_do_verify(...))|.
226
+ // Because of this, |DSA_check_signature| is a safer version of this.
227
+ //
228
+ // TODO(fork): deprecate.
214
229
  OPENSSL_EXPORT int DSA_verify(int type, const uint8_t *digest,
215
230
  size_t digest_len, const uint8_t *sig,
216
231
  size_t sig_len, const DSA *dsa);
217
232
 
218
- /* DSA_check_signature sets |*out_valid| to zero. Then it verifies that |sig|
219
- * is a valid, ASN.1 signature, by the public key in |dsa|, of the hash in
220
- * |digest|. If so, it sets |*out_valid| to one.
221
- *
222
- * It returns one if it was able to verify the signature as valid or invalid,
223
- * and zero on error. */
233
+ // DSA_check_signature sets |*out_valid| to zero. Then it verifies that |sig|
234
+ // is a valid, ASN.1 signature, by the public key in |dsa|, of the hash in
235
+ // |digest|. If so, it sets |*out_valid| to one.
236
+ //
237
+ // It returns one if it was able to verify the signature as valid or invalid,
238
+ // and zero on error.
224
239
  OPENSSL_EXPORT int DSA_check_signature(int *out_valid, const uint8_t *digest,
225
240
  size_t digest_len, const uint8_t *sig,
226
241
  size_t sig_len, const DSA *dsa);
227
242
 
228
- /* DSA_size returns the size, in bytes, of an ASN.1 encoded, DSA signature
229
- * generated by |dsa|. Parameters must already have been setup in |dsa|. */
243
+ // DSA_size returns the size, in bytes, of an ASN.1 encoded, DSA signature
244
+ // generated by |dsa|. Parameters must already have been setup in |dsa|.
230
245
  OPENSSL_EXPORT int DSA_size(const DSA *dsa);
231
246
 
232
247
 
233
- /* ASN.1 encoding. */
248
+ // ASN.1 encoding.
234
249
 
235
- /* DSA_SIG_parse parses a DER-encoded DSA-Sig-Value structure from |cbs| and
236
- * advances |cbs|. It returns a newly-allocated |DSA_SIG| or NULL on error. */
250
+ // DSA_SIG_parse parses a DER-encoded DSA-Sig-Value structure from |cbs| and
251
+ // advances |cbs|. It returns a newly-allocated |DSA_SIG| or NULL on error.
237
252
  OPENSSL_EXPORT DSA_SIG *DSA_SIG_parse(CBS *cbs);
238
253
 
239
- /* DSA_SIG_marshal marshals |sig| as a DER-encoded DSA-Sig-Value and appends the
240
- * result to |cbb|. It returns one on success and zero on error. */
254
+ // DSA_SIG_marshal marshals |sig| as a DER-encoded DSA-Sig-Value and appends the
255
+ // result to |cbb|. It returns one on success and zero on error.
241
256
  OPENSSL_EXPORT int DSA_SIG_marshal(CBB *cbb, const DSA_SIG *sig);
242
257
 
243
- /* DSA_parse_public_key parses a DER-encoded DSA public key from |cbs| and
244
- * advances |cbs|. It returns a newly-allocated |DSA| or NULL on error. */
258
+ // DSA_parse_public_key parses a DER-encoded DSA public key from |cbs| and
259
+ // advances |cbs|. It returns a newly-allocated |DSA| or NULL on error.
245
260
  OPENSSL_EXPORT DSA *DSA_parse_public_key(CBS *cbs);
246
261
 
247
- /* DSA_marshal_public_key marshals |dsa| as a DER-encoded DSA public key and
248
- * appends the result to |cbb|. It returns one on success and zero on
249
- * failure. */
262
+ // DSA_marshal_public_key marshals |dsa| as a DER-encoded DSA public key and
263
+ // appends the result to |cbb|. It returns one on success and zero on
264
+ // failure.
250
265
  OPENSSL_EXPORT int DSA_marshal_public_key(CBB *cbb, const DSA *dsa);
251
266
 
252
- /* DSA_parse_private_key parses a DER-encoded DSA private key from |cbs| and
253
- * advances |cbs|. It returns a newly-allocated |DSA| or NULL on error. */
267
+ // DSA_parse_private_key parses a DER-encoded DSA private key from |cbs| and
268
+ // advances |cbs|. It returns a newly-allocated |DSA| or NULL on error.
254
269
  OPENSSL_EXPORT DSA *DSA_parse_private_key(CBS *cbs);
255
270
 
256
- /* DSA_marshal_private_key marshals |dsa| as a DER-encoded DSA private key and
257
- * appends the result to |cbb|. It returns one on success and zero on
258
- * failure. */
271
+ // DSA_marshal_private_key marshals |dsa| as a DER-encoded DSA private key and
272
+ // appends the result to |cbb|. It returns one on success and zero on
273
+ // failure.
259
274
  OPENSSL_EXPORT int DSA_marshal_private_key(CBB *cbb, const DSA *dsa);
260
275
 
261
- /* DSA_parse_parameters parses a DER-encoded Dss-Parms structure (RFC 3279)
262
- * from |cbs| and advances |cbs|. It returns a newly-allocated |DSA| or NULL on
263
- * error. */
276
+ // DSA_parse_parameters parses a DER-encoded Dss-Parms structure (RFC 3279)
277
+ // from |cbs| and advances |cbs|. It returns a newly-allocated |DSA| or NULL on
278
+ // error.
264
279
  OPENSSL_EXPORT DSA *DSA_parse_parameters(CBS *cbs);
265
280
 
266
- /* DSA_marshal_parameters marshals |dsa| as a DER-encoded Dss-Parms structure
267
- * (RFC 3447) and appends the result to |cbb|. It returns one on success and
268
- * zero on failure. */
281
+ // DSA_marshal_parameters marshals |dsa| as a DER-encoded Dss-Parms structure
282
+ // (RFC 3447) and appends the result to |cbb|. It returns one on success and
283
+ // zero on failure.
269
284
  OPENSSL_EXPORT int DSA_marshal_parameters(CBB *cbb, const DSA *dsa);
270
285
 
271
286
 
272
- /* Precomputation. */
287
+ // Precomputation.
273
288
 
274
- /* DSA_sign_setup precomputes the message independent part of the DSA signature
275
- * and writes them to |*out_kinv| and |*out_r|. Returns one on success, zero on
276
- * error.
277
- *
278
- * TODO(fork): decide what to do with this. Since making DSA* opaque there's no
279
- * way for the user to install them. Also, it forces the DSA* not to be const
280
- * when passing to the signing function. */
289
+ // DSA_sign_setup precomputes the message independent part of the DSA signature
290
+ // and writes them to |*out_kinv| and |*out_r|. Returns one on success, zero on
291
+ // error.
292
+ //
293
+ // TODO(fork): decide what to do with this. Since making DSA* opaque there's no
294
+ // way for the user to install them. Also, it forces the DSA* not to be const
295
+ // when passing to the signing function.
281
296
  OPENSSL_EXPORT int DSA_sign_setup(const DSA *dsa, BN_CTX *ctx,
282
297
  BIGNUM **out_kinv, BIGNUM **out_r);
283
298
 
284
299
 
285
- /* Conversion. */
300
+ // Conversion.
286
301
 
287
- /* DSA_dup_DH returns a |DH| constructed from the parameters of |dsa|. This is
288
- * sometimes needed when Diffie-Hellman parameters are stored in the form of
289
- * DSA parameters. It returns an allocated |DH| on success or NULL on error. */
302
+ // DSA_dup_DH returns a |DH| constructed from the parameters of |dsa|. This is
303
+ // sometimes needed when Diffie-Hellman parameters are stored in the form of
304
+ // DSA parameters. It returns an allocated |DH| on success or NULL on error.
290
305
  OPENSSL_EXPORT DH *DSA_dup_DH(const DSA *dsa);
291
306
 
292
307
 
293
- /* ex_data functions.
294
- *
295
- * See |ex_data.h| for details. */
308
+ // ex_data functions.
309
+ //
310
+ // See |ex_data.h| for details.
296
311
 
297
312
  OPENSSL_EXPORT int DSA_get_ex_new_index(long argl, void *argp,
298
313
  CRYPTO_EX_unused *unused,
299
- CRYPTO_EX_dup *dup_func,
314
+ CRYPTO_EX_dup *dup_unused,
300
315
  CRYPTO_EX_free *free_func);
301
- OPENSSL_EXPORT int DSA_set_ex_data(DSA *d, int idx, void *arg);
302
- OPENSSL_EXPORT void *DSA_get_ex_data(const DSA *d, int idx);
316
+ OPENSSL_EXPORT int DSA_set_ex_data(DSA *dsa, int idx, void *arg);
317
+ OPENSSL_EXPORT void *DSA_get_ex_data(const DSA *dsa, int idx);
303
318
 
304
319
 
305
- /* Deprecated functions. */
320
+ // Deprecated functions.
306
321
 
307
- /* d2i_DSA_SIG parses an ASN.1, DER-encoded, DSA signature from |len| bytes at
308
- * |*inp|. If |out_sig| is not NULL then, on exit, a pointer to the result is
309
- * in |*out_sig|. Note that, even if |*out_sig| is already non-NULL on entry, it
310
- * will not be written to. Rather, a fresh |DSA_SIG| is allocated and the
311
- * previous one is freed. On successful exit, |*inp| is advanced past the DER
312
- * structure. It returns the result or NULL on error.
313
- *
314
- * Use |DSA_SIG_parse| instead. */
322
+ // d2i_DSA_SIG parses an ASN.1, DER-encoded, DSA signature from |len| bytes at
323
+ // |*inp|. If |out_sig| is not NULL then, on exit, a pointer to the result is
324
+ // in |*out_sig|. Note that, even if |*out_sig| is already non-NULL on entry, it
325
+ // will not be written to. Rather, a fresh |DSA_SIG| is allocated and the
326
+ // previous one is freed. On successful exit, |*inp| is advanced past the DER
327
+ // structure. It returns the result or NULL on error.
328
+ //
329
+ // Use |DSA_SIG_parse| instead.
315
330
  OPENSSL_EXPORT DSA_SIG *d2i_DSA_SIG(DSA_SIG **out_sig, const uint8_t **inp,
316
331
  long len);
317
332
 
318
- /* i2d_DSA_SIG marshals |in| to an ASN.1, DER structure. If |outp| is not NULL
319
- * then the result is written to |*outp| and |*outp| is advanced just past the
320
- * output. It returns the number of bytes in the result, whether written or not,
321
- * or a negative value on error.
322
- *
323
- * Use |DSA_SIG_marshal| instead. */
333
+ // i2d_DSA_SIG marshals |in| to an ASN.1, DER structure. If |outp| is not NULL
334
+ // then the result is written to |*outp| and |*outp| is advanced just past the
335
+ // output. It returns the number of bytes in the result, whether written or not,
336
+ // or a negative value on error.
337
+ //
338
+ // Use |DSA_SIG_marshal| instead.
324
339
  OPENSSL_EXPORT int i2d_DSA_SIG(const DSA_SIG *in, uint8_t **outp);
325
340
 
326
- /* d2i_DSAPublicKey parses an ASN.1, DER-encoded, DSA public key from |len|
327
- * bytes at |*inp|. If |out| is not NULL then, on exit, a pointer to the result
328
- * is in |*out|. Note that, even if |*ou| is already non-NULL on entry, it will
329
- * not be written to. Rather, a fresh |DSA| is allocated and the previous one is
330
- * freed. On successful exit, |*inp| is advanced past the DER structure. It
331
- * returns the result or NULL on error.
332
- *
333
- * Use |DSA_parse_public_key| instead. */
341
+ // d2i_DSAPublicKey parses an ASN.1, DER-encoded, DSA public key from |len|
342
+ // bytes at |*inp|. If |out| is not NULL then, on exit, a pointer to the result
343
+ // is in |*out|. Note that, even if |*ou| is already non-NULL on entry, it will
344
+ // not be written to. Rather, a fresh |DSA| is allocated and the previous one is
345
+ // freed. On successful exit, |*inp| is advanced past the DER structure. It
346
+ // returns the result or NULL on error.
347
+ //
348
+ // Use |DSA_parse_public_key| instead.
334
349
  OPENSSL_EXPORT DSA *d2i_DSAPublicKey(DSA **out, const uint8_t **inp, long len);
335
350
 
336
- /* i2d_DSAPublicKey marshals a public key from |in| to an ASN.1, DER structure.
337
- * If |outp| is not NULL then the result is written to |*outp| and |*outp| is
338
- * advanced just past the output. It returns the number of bytes in the result,
339
- * whether written or not, or a negative value on error.
340
- *
341
- * Use |DSA_marshal_public_key| instead. */
351
+ // i2d_DSAPublicKey marshals a public key from |in| to an ASN.1, DER structure.
352
+ // If |outp| is not NULL then the result is written to |*outp| and |*outp| is
353
+ // advanced just past the output. It returns the number of bytes in the result,
354
+ // whether written or not, or a negative value on error.
355
+ //
356
+ // Use |DSA_marshal_public_key| instead.
342
357
  OPENSSL_EXPORT int i2d_DSAPublicKey(const DSA *in, uint8_t **outp);
343
358
 
344
- /* d2i_DSAPrivateKey parses an ASN.1, DER-encoded, DSA private key from |len|
345
- * bytes at |*inp|. If |out| is not NULL then, on exit, a pointer to the result
346
- * is in |*out|. Note that, even if |*out| is already non-NULL on entry, it will
347
- * not be written to. Rather, a fresh |DSA| is allocated and the previous one is
348
- * freed. On successful exit, |*inp| is advanced past the DER structure. It
349
- * returns the result or NULL on error.
350
- *
351
- * Use |DSA_parse_private_key| instead. */
359
+ // d2i_DSAPrivateKey parses an ASN.1, DER-encoded, DSA private key from |len|
360
+ // bytes at |*inp|. If |out| is not NULL then, on exit, a pointer to the result
361
+ // is in |*out|. Note that, even if |*out| is already non-NULL on entry, it will
362
+ // not be written to. Rather, a fresh |DSA| is allocated and the previous one is
363
+ // freed. On successful exit, |*inp| is advanced past the DER structure. It
364
+ // returns the result or NULL on error.
365
+ //
366
+ // Use |DSA_parse_private_key| instead.
352
367
  OPENSSL_EXPORT DSA *d2i_DSAPrivateKey(DSA **out, const uint8_t **inp, long len);
353
368
 
354
- /* i2d_DSAPrivateKey marshals a private key from |in| to an ASN.1, DER
355
- * structure. If |outp| is not NULL then the result is written to |*outp| and
356
- * |*outp| is advanced just past the output. It returns the number of bytes in
357
- * the result, whether written or not, or a negative value on error.
358
- *
359
- * Use |DSA_marshal_private_key| instead. */
369
+ // i2d_DSAPrivateKey marshals a private key from |in| to an ASN.1, DER
370
+ // structure. If |outp| is not NULL then the result is written to |*outp| and
371
+ // |*outp| is advanced just past the output. It returns the number of bytes in
372
+ // the result, whether written or not, or a negative value on error.
373
+ //
374
+ // Use |DSA_marshal_private_key| instead.
360
375
  OPENSSL_EXPORT int i2d_DSAPrivateKey(const DSA *in, uint8_t **outp);
361
376
 
362
- /* d2i_DSAparams parses ASN.1, DER-encoded, DSA parameters from |len| bytes at
363
- * |*inp|. If |out| is not NULL then, on exit, a pointer to the result is in
364
- * |*out|. Note that, even if |*out| is already non-NULL on entry, it will not
365
- * be written to. Rather, a fresh |DSA| is allocated and the previous one is
366
- * freed. On successful exit, |*inp| is advanced past the DER structure. It
367
- * returns the result or NULL on error.
368
- *
369
- * Use |DSA_parse_parameters| instead. */
377
+ // d2i_DSAparams parses ASN.1, DER-encoded, DSA parameters from |len| bytes at
378
+ // |*inp|. If |out| is not NULL then, on exit, a pointer to the result is in
379
+ // |*out|. Note that, even if |*out| is already non-NULL on entry, it will not
380
+ // be written to. Rather, a fresh |DSA| is allocated and the previous one is
381
+ // freed. On successful exit, |*inp| is advanced past the DER structure. It
382
+ // returns the result or NULL on error.
383
+ //
384
+ // Use |DSA_parse_parameters| instead.
370
385
  OPENSSL_EXPORT DSA *d2i_DSAparams(DSA **out, const uint8_t **inp, long len);
371
386
 
372
- /* i2d_DSAparams marshals DSA parameters from |in| to an ASN.1, DER structure.
373
- * If |outp| is not NULL then the result is written to |*outp| and |*outp| is
374
- * advanced just past the output. It returns the number of bytes in the result,
375
- * whether written or not, or a negative value on error.
376
- *
377
- * Use |DSA_marshal_parameters| instead. */
387
+ // i2d_DSAparams marshals DSA parameters from |in| to an ASN.1, DER structure.
388
+ // If |outp| is not NULL then the result is written to |*outp| and |*outp| is
389
+ // advanced just past the output. It returns the number of bytes in the result,
390
+ // whether written or not, or a negative value on error.
391
+ //
392
+ // Use |DSA_marshal_parameters| instead.
378
393
  OPENSSL_EXPORT int i2d_DSAparams(const DSA *in, uint8_t **outp);
379
394
 
380
- /* DSA_generate_parameters is a deprecated version of
381
- * |DSA_generate_parameters_ex| that creates and returns a |DSA*|. Don't use
382
- * it. */
395
+ // DSA_generate_parameters is a deprecated version of
396
+ // |DSA_generate_parameters_ex| that creates and returns a |DSA*|. Don't use
397
+ // it.
383
398
  OPENSSL_EXPORT DSA *DSA_generate_parameters(int bits, unsigned char *seed,
384
399
  int seed_len, int *counter_ret,
385
400
  unsigned long *h_ret,
@@ -390,17 +405,17 @@ OPENSSL_EXPORT DSA *DSA_generate_parameters(int bits, unsigned char *seed,
390
405
  struct dsa_st {
391
406
  long version;
392
407
  BIGNUM *p;
393
- BIGNUM *q; /* == 20 */
408
+ BIGNUM *q; // == 20
394
409
  BIGNUM *g;
395
410
 
396
- BIGNUM *pub_key; /* y public key */
397
- BIGNUM *priv_key; /* x private key */
411
+ BIGNUM *pub_key; // y public key
412
+ BIGNUM *priv_key; // x private key
398
413
 
399
- BIGNUM *kinv; /* Signing pre-calc */
400
- BIGNUM *r; /* Signing pre-calc */
414
+ BIGNUM *kinv; // Signing pre-calc
415
+ BIGNUM *r; // Signing pre-calc
401
416
 
402
417
  int flags;
403
- /* Normally used to cache montgomery values */
418
+ // Normally used to cache montgomery values
404
419
  CRYPTO_MUTEX method_mont_lock;
405
420
  BN_MONT_CTX *method_mont_p;
406
421
  BN_MONT_CTX *method_mont_q;
@@ -410,7 +425,7 @@ struct dsa_st {
410
425
 
411
426
 
412
427
  #if defined(__cplusplus)
413
- } /* extern C */
428
+ } // extern C
414
429
 
415
430
  extern "C++" {
416
431
 
@@ -421,7 +436,7 @@ BORINGSSL_MAKE_DELETER(DSA_SIG, DSA_SIG_free)
421
436
 
422
437
  } // namespace bssl
423
438
 
424
- } /* extern C++ */
439
+ } // extern C++
425
440
 
426
441
  #endif
427
442
 
@@ -433,4 +448,4 @@ BORINGSSL_MAKE_DELETER(DSA_SIG, DSA_SIG_free)
433
448
  #define DSA_R_DECODE_ERROR 105
434
449
  #define DSA_R_ENCODE_ERROR 106
435
450
 
436
- #endif /* OPENSSL_HEADER_DSA_H */
451
+ #endif // OPENSSL_HEADER_DSA_H