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
@@ -72,7 +72,7 @@ extern "C" {
72
72
 
73
73
  typedef struct cast_key_st {
74
74
  uint32_t data[32];
75
- int short_key; /* Use reduced rounds for short key */
75
+ int short_key; // Use reduced rounds for short key
76
76
  } CAST_KEY;
77
77
 
78
78
  OPENSSL_EXPORT void CAST_set_key(CAST_KEY *key, size_t len,
@@ -93,4 +93,4 @@ OPENSSL_EXPORT void CAST_cfb64_encrypt(const uint8_t *in, uint8_t *out,
93
93
  }
94
94
  #endif
95
95
 
96
- #endif /* OPENSSL_HEADER_CAST_H */
96
+ #endif // OPENSSL_HEADER_CAST_H
@@ -22,16 +22,16 @@ extern "C" {
22
22
  #endif
23
23
 
24
24
 
25
- /* CRYPTO_chacha_20 encrypts |in_len| bytes from |in| with the given key and
26
- * nonce and writes the result to |out|. If |in| and |out| alias, they must be
27
- * equal. The initial block counter is specified by |counter|. */
25
+ // CRYPTO_chacha_20 encrypts |in_len| bytes from |in| with the given key and
26
+ // nonce and writes the result to |out|. If |in| and |out| alias, they must be
27
+ // equal. The initial block counter is specified by |counter|.
28
28
  OPENSSL_EXPORT void CRYPTO_chacha_20(uint8_t *out, const uint8_t *in,
29
29
  size_t in_len, const uint8_t key[32],
30
30
  const uint8_t nonce[12], uint32_t counter);
31
31
 
32
32
 
33
33
  #if defined(__cplusplus)
34
- } /* extern C */
34
+ } // extern C
35
35
  #endif
36
36
 
37
- #endif /* OPENSSL_HEADER_CHACHA_H */
37
+ #endif // OPENSSL_HEADER_CHACHA_H
@@ -64,19 +64,20 @@ extern "C" {
64
64
  #endif
65
65
 
66
66
 
67
- /* Ciphers. */
67
+ // Ciphers.
68
68
 
69
69
 
70
- /* Cipher primitives.
71
- *
72
- * The following functions return |EVP_CIPHER| objects that implement the named
73
- * cipher algorithm. */
70
+ // Cipher primitives.
71
+ //
72
+ // The following functions return |EVP_CIPHER| objects that implement the named
73
+ // cipher algorithm.
74
74
 
75
75
  OPENSSL_EXPORT const EVP_CIPHER *EVP_rc4(void);
76
76
 
77
77
  OPENSSL_EXPORT const EVP_CIPHER *EVP_des_cbc(void);
78
78
  OPENSSL_EXPORT const EVP_CIPHER *EVP_des_ecb(void);
79
79
  OPENSSL_EXPORT const EVP_CIPHER *EVP_des_ede(void);
80
+ OPENSSL_EXPORT const EVP_CIPHER *EVP_des_ede3(void);
80
81
  OPENSSL_EXPORT const EVP_CIPHER *EVP_des_ede_cbc(void);
81
82
  OPENSSL_EXPORT const EVP_CIPHER *EVP_des_ede3_cbc(void);
82
83
 
@@ -91,242 +92,246 @@ OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_256_ctr(void);
91
92
  OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_256_ofb(void);
92
93
  OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_256_xts(void);
93
94
 
94
- /* EVP_enc_null returns a 'cipher' that passes plaintext through as
95
- * ciphertext. */
95
+ // EVP_enc_null returns a 'cipher' that passes plaintext through as
96
+ // ciphertext.
96
97
  OPENSSL_EXPORT const EVP_CIPHER *EVP_enc_null(void);
97
98
 
98
- /* EVP_rc2_cbc returns a cipher that implements 128-bit RC2 in CBC mode. */
99
+ // EVP_rc2_cbc returns a cipher that implements 128-bit RC2 in CBC mode.
99
100
  OPENSSL_EXPORT const EVP_CIPHER *EVP_rc2_cbc(void);
100
101
 
101
- /* EVP_rc2_40_cbc returns a cipher that implements 40-bit RC2 in CBC mode. This
102
- * is obviously very, very weak and is included only in order to read PKCS#12
103
- * files, which often encrypt the certificate chain using this cipher. It is
104
- * deliberately not exported. */
102
+ // EVP_rc2_40_cbc returns a cipher that implements 40-bit RC2 in CBC mode. This
103
+ // is obviously very, very weak and is included only in order to read PKCS#12
104
+ // files, which often encrypt the certificate chain using this cipher. It is
105
+ // deliberately not exported.
105
106
  const EVP_CIPHER *EVP_rc2_40_cbc(void);
106
107
 
107
- /* EVP_get_cipherbynid returns the cipher corresponding to the given NID, or
108
- * NULL if no such cipher is known. */
108
+ // EVP_get_cipherbynid returns the cipher corresponding to the given NID, or
109
+ // NULL if no such cipher is known.
109
110
  OPENSSL_EXPORT const EVP_CIPHER *EVP_get_cipherbynid(int nid);
110
111
 
111
112
 
112
- /* Cipher context allocation.
113
- *
114
- * An |EVP_CIPHER_CTX| represents the state of an encryption or decryption in
115
- * progress. */
113
+ // Cipher context allocation.
114
+ //
115
+ // An |EVP_CIPHER_CTX| represents the state of an encryption or decryption in
116
+ // progress.
116
117
 
117
- /* EVP_CIPHER_CTX_init initialises an, already allocated, |EVP_CIPHER_CTX|. */
118
+ // EVP_CIPHER_CTX_init initialises an, already allocated, |EVP_CIPHER_CTX|.
118
119
  OPENSSL_EXPORT void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *ctx);
119
120
 
120
- /* EVP_CIPHER_CTX_new allocates a fresh |EVP_CIPHER_CTX|, calls
121
- * |EVP_CIPHER_CTX_init| and returns it, or NULL on allocation failure. */
121
+ // EVP_CIPHER_CTX_new allocates a fresh |EVP_CIPHER_CTX|, calls
122
+ // |EVP_CIPHER_CTX_init| and returns it, or NULL on allocation failure.
122
123
  OPENSSL_EXPORT EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void);
123
124
 
124
- /* EVP_CIPHER_CTX_cleanup frees any memory referenced by |ctx|. It returns
125
- * one. */
125
+ // EVP_CIPHER_CTX_cleanup frees any memory referenced by |ctx|. It returns
126
+ // one.
126
127
  OPENSSL_EXPORT int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *ctx);
127
128
 
128
- /* EVP_CIPHER_CTX_free calls |EVP_CIPHER_CTX_cleanup| on |ctx| and then frees
129
- * |ctx| itself. */
129
+ // EVP_CIPHER_CTX_free calls |EVP_CIPHER_CTX_cleanup| on |ctx| and then frees
130
+ // |ctx| itself.
130
131
  OPENSSL_EXPORT void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx);
131
132
 
132
- /* EVP_CIPHER_CTX_copy sets |out| to be a duplicate of the current state of
133
- * |in|. The |out| argument must have been previously initialised. */
133
+ // EVP_CIPHER_CTX_copy sets |out| to be a duplicate of the current state of
134
+ // |in|. The |out| argument must have been previously initialised.
134
135
  OPENSSL_EXPORT int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out,
135
136
  const EVP_CIPHER_CTX *in);
136
137
 
138
+ // EVP_CIPHER_CTX_reset calls |EVP_CIPHER_CTX_cleanup| followed by
139
+ // |EVP_CIPHER_CTX_init|.
140
+ OPENSSL_EXPORT void EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *ctx);
137
141
 
138
- /* Cipher context configuration. */
139
142
 
140
- /* EVP_CipherInit_ex configures |ctx| for a fresh encryption (or decryption, if
141
- * |enc| is zero) operation using |cipher|. If |ctx| has been previously
142
- * configured with a cipher then |cipher|, |key| and |iv| may be |NULL| and
143
- * |enc| may be -1 to reuse the previous values. The operation will use |key|
144
- * as the key and |iv| as the IV (if any). These should have the correct
145
- * lengths given by |EVP_CIPHER_key_length| and |EVP_CIPHER_iv_length|. It
146
- * returns one on success and zero on error. */
143
+ // Cipher context configuration.
144
+
145
+ // EVP_CipherInit_ex configures |ctx| for a fresh encryption (or decryption, if
146
+ // |enc| is zero) operation using |cipher|. If |ctx| has been previously
147
+ // configured with a cipher then |cipher|, |key| and |iv| may be |NULL| and
148
+ // |enc| may be -1 to reuse the previous values. The operation will use |key|
149
+ // as the key and |iv| as the IV (if any). These should have the correct
150
+ // lengths given by |EVP_CIPHER_key_length| and |EVP_CIPHER_iv_length|. It
151
+ // returns one on success and zero on error.
147
152
  OPENSSL_EXPORT int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx,
148
153
  const EVP_CIPHER *cipher, ENGINE *engine,
149
154
  const uint8_t *key, const uint8_t *iv,
150
155
  int enc);
151
156
 
152
- /* EVP_EncryptInit_ex calls |EVP_CipherInit_ex| with |enc| equal to one. */
157
+ // EVP_EncryptInit_ex calls |EVP_CipherInit_ex| with |enc| equal to one.
153
158
  OPENSSL_EXPORT int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx,
154
159
  const EVP_CIPHER *cipher, ENGINE *impl,
155
160
  const uint8_t *key, const uint8_t *iv);
156
161
 
157
- /* EVP_DecryptInit_ex calls |EVP_CipherInit_ex| with |enc| equal to zero. */
162
+ // EVP_DecryptInit_ex calls |EVP_CipherInit_ex| with |enc| equal to zero.
158
163
  OPENSSL_EXPORT int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx,
159
164
  const EVP_CIPHER *cipher, ENGINE *impl,
160
165
  const uint8_t *key, const uint8_t *iv);
161
166
 
162
167
 
163
- /* Cipher operations. */
168
+ // Cipher operations.
164
169
 
165
- /* EVP_EncryptUpdate encrypts |in_len| bytes from |in| to |out|. The number
166
- * of output bytes may be up to |in_len| plus the block length minus one and
167
- * |out| must have sufficient space. The number of bytes actually output is
168
- * written to |*out_len|. It returns one on success and zero otherwise. */
170
+ // EVP_EncryptUpdate encrypts |in_len| bytes from |in| to |out|. The number
171
+ // of output bytes may be up to |in_len| plus the block length minus one and
172
+ // |out| must have sufficient space. The number of bytes actually output is
173
+ // written to |*out_len|. It returns one on success and zero otherwise.
169
174
  OPENSSL_EXPORT int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, uint8_t *out,
170
175
  int *out_len, const uint8_t *in,
171
176
  int in_len);
172
177
 
173
- /* EVP_EncryptFinal_ex writes at most a block of ciphertext to |out| and sets
174
- * |*out_len| to the number of bytes written. If padding is enabled (the
175
- * default) then standard padding is applied to create the final block. If
176
- * padding is disabled (with |EVP_CIPHER_CTX_set_padding|) then any partial
177
- * block remaining will cause an error. The function returns one on success and
178
- * zero otherwise. */
178
+ // EVP_EncryptFinal_ex writes at most a block of ciphertext to |out| and sets
179
+ // |*out_len| to the number of bytes written. If padding is enabled (the
180
+ // default) then standard padding is applied to create the final block. If
181
+ // padding is disabled (with |EVP_CIPHER_CTX_set_padding|) then any partial
182
+ // block remaining will cause an error. The function returns one on success and
183
+ // zero otherwise.
179
184
  OPENSSL_EXPORT int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, uint8_t *out,
180
185
  int *out_len);
181
186
 
182
- /* EVP_DecryptUpdate decrypts |in_len| bytes from |in| to |out|. The number of
183
- * output bytes may be up to |in_len| plus the block length minus one and |out|
184
- * must have sufficient space. The number of bytes actually output is written
185
- * to |*out_len|. It returns one on success and zero otherwise. */
187
+ // EVP_DecryptUpdate decrypts |in_len| bytes from |in| to |out|. The number of
188
+ // output bytes may be up to |in_len| plus the block length minus one and |out|
189
+ // must have sufficient space. The number of bytes actually output is written
190
+ // to |*out_len|. It returns one on success and zero otherwise.
186
191
  OPENSSL_EXPORT int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, uint8_t *out,
187
192
  int *out_len, const uint8_t *in,
188
193
  int in_len);
189
194
 
190
- /* EVP_DecryptFinal_ex writes at most a block of ciphertext to |out| and sets
191
- * |*out_len| to the number of bytes written. If padding is enabled (the
192
- * default) then padding is removed from the final block.
193
- *
194
- * WARNING: it is unsafe to call this function with unauthenticated
195
- * ciphertext if padding is enabled. */
195
+ // EVP_DecryptFinal_ex writes at most a block of ciphertext to |out| and sets
196
+ // |*out_len| to the number of bytes written. If padding is enabled (the
197
+ // default) then padding is removed from the final block.
198
+ //
199
+ // WARNING: it is unsafe to call this function with unauthenticated
200
+ // ciphertext if padding is enabled.
196
201
  OPENSSL_EXPORT int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out,
197
202
  int *out_len);
198
203
 
199
- /* EVP_Cipher performs a one-shot encryption/decryption operation. No partial
200
- * blocks are maintained between calls. However, any internal cipher state is
201
- * still updated. For CBC-mode ciphers, the IV is updated to the final
202
- * ciphertext block. For stream ciphers, the stream is advanced past the bytes
203
- * used. It returns one on success and zero otherwise, unless |EVP_CIPHER_flags|
204
- * has |EVP_CIPH_FLAG_CUSTOM_CIPHER| set. Then it returns the number of bytes
205
- * written or -1 on error.
206
- *
207
- * WARNING: this differs from the usual return value convention when using
208
- * |EVP_CIPH_FLAG_CUSTOM_CIPHER|.
209
- *
210
- * TODO(davidben): The normal ciphers currently never fail, even if, e.g.,
211
- * |in_len| is not a multiple of the block size for CBC-mode decryption. The
212
- * input just gets rounded up while the output gets truncated. This should
213
- * either be officially documented or fail. */
204
+ // EVP_Cipher performs a one-shot encryption/decryption operation. No partial
205
+ // blocks are maintained between calls. However, any internal cipher state is
206
+ // still updated. For CBC-mode ciphers, the IV is updated to the final
207
+ // ciphertext block. For stream ciphers, the stream is advanced past the bytes
208
+ // used. It returns one on success and zero otherwise, unless |EVP_CIPHER_flags|
209
+ // has |EVP_CIPH_FLAG_CUSTOM_CIPHER| set. Then it returns the number of bytes
210
+ // written or -1 on error.
211
+ //
212
+ // WARNING: this differs from the usual return value convention when using
213
+ // |EVP_CIPH_FLAG_CUSTOM_CIPHER|.
214
+ //
215
+ // TODO(davidben): The normal ciphers currently never fail, even if, e.g.,
216
+ // |in_len| is not a multiple of the block size for CBC-mode decryption. The
217
+ // input just gets rounded up while the output gets truncated. This should
218
+ // either be officially documented or fail.
214
219
  OPENSSL_EXPORT int EVP_Cipher(EVP_CIPHER_CTX *ctx, uint8_t *out,
215
220
  const uint8_t *in, size_t in_len);
216
221
 
217
- /* EVP_CipherUpdate calls either |EVP_EncryptUpdate| or |EVP_DecryptUpdate|
218
- * depending on how |ctx| has been setup. */
222
+ // EVP_CipherUpdate calls either |EVP_EncryptUpdate| or |EVP_DecryptUpdate|
223
+ // depending on how |ctx| has been setup.
219
224
  OPENSSL_EXPORT int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, uint8_t *out,
220
225
  int *out_len, const uint8_t *in,
221
226
  int in_len);
222
227
 
223
- /* EVP_CipherFinal_ex calls either |EVP_EncryptFinal_ex| or
224
- * |EVP_DecryptFinal_ex| depending on how |ctx| has been setup. */
228
+ // EVP_CipherFinal_ex calls either |EVP_EncryptFinal_ex| or
229
+ // |EVP_DecryptFinal_ex| depending on how |ctx| has been setup.
225
230
  OPENSSL_EXPORT int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, uint8_t *out,
226
231
  int *out_len);
227
232
 
228
233
 
229
- /* Cipher context accessors. */
234
+ // Cipher context accessors.
230
235
 
231
- /* EVP_CIPHER_CTX_cipher returns the |EVP_CIPHER| underlying |ctx|, or NULL if
232
- * none has been set. */
236
+ // EVP_CIPHER_CTX_cipher returns the |EVP_CIPHER| underlying |ctx|, or NULL if
237
+ // none has been set.
233
238
  OPENSSL_EXPORT const EVP_CIPHER *EVP_CIPHER_CTX_cipher(
234
239
  const EVP_CIPHER_CTX *ctx);
235
240
 
236
- /* EVP_CIPHER_CTX_nid returns a NID identifying the |EVP_CIPHER| underlying
237
- * |ctx| (e.g. |NID_aes_128_gcm|). It will crash if no cipher has been
238
- * configured. */
241
+ // EVP_CIPHER_CTX_nid returns a NID identifying the |EVP_CIPHER| underlying
242
+ // |ctx| (e.g. |NID_aes_128_gcm|). It will crash if no cipher has been
243
+ // configured.
239
244
  OPENSSL_EXPORT int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx);
240
245
 
241
- /* EVP_CIPHER_CTX_block_size returns the block size, in bytes, of the cipher
242
- * underlying |ctx|, or one if the cipher is a stream cipher. It will crash if
243
- * no cipher has been configured. */
246
+ // EVP_CIPHER_CTX_block_size returns the block size, in bytes, of the cipher
247
+ // underlying |ctx|, or one if the cipher is a stream cipher. It will crash if
248
+ // no cipher has been configured.
244
249
  OPENSSL_EXPORT unsigned EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx);
245
250
 
246
- /* EVP_CIPHER_CTX_key_length returns the key size, in bytes, of the cipher
247
- * underlying |ctx| or zero if no cipher has been configured. */
251
+ // EVP_CIPHER_CTX_key_length returns the key size, in bytes, of the cipher
252
+ // underlying |ctx| or zero if no cipher has been configured.
248
253
  OPENSSL_EXPORT unsigned EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx);
249
254
 
250
- /* EVP_CIPHER_CTX_iv_length returns the IV size, in bytes, of the cipher
251
- * underlying |ctx|. It will crash if no cipher has been configured. */
255
+ // EVP_CIPHER_CTX_iv_length returns the IV size, in bytes, of the cipher
256
+ // underlying |ctx|. It will crash if no cipher has been configured.
252
257
  OPENSSL_EXPORT unsigned EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx);
253
258
 
254
- /* EVP_CIPHER_CTX_get_app_data returns the opaque, application data pointer for
255
- * |ctx|, or NULL if none has been set. */
259
+ // EVP_CIPHER_CTX_get_app_data returns the opaque, application data pointer for
260
+ // |ctx|, or NULL if none has been set.
256
261
  OPENSSL_EXPORT void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx);
257
262
 
258
- /* EVP_CIPHER_CTX_set_app_data sets the opaque, application data pointer for
259
- * |ctx| to |data|. */
263
+ // EVP_CIPHER_CTX_set_app_data sets the opaque, application data pointer for
264
+ // |ctx| to |data|.
260
265
  OPENSSL_EXPORT void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx,
261
266
  void *data);
262
267
 
263
- /* EVP_CIPHER_CTX_flags returns a value which is the OR of zero or more
264
- * |EVP_CIPH_*| flags. It will crash if no cipher has been configured. */
268
+ // EVP_CIPHER_CTX_flags returns a value which is the OR of zero or more
269
+ // |EVP_CIPH_*| flags. It will crash if no cipher has been configured.
265
270
  OPENSSL_EXPORT uint32_t EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx);
266
271
 
267
- /* EVP_CIPHER_CTX_mode returns one of the |EVP_CIPH_*| cipher mode values
268
- * enumerated below. It will crash if no cipher has been configured. */
272
+ // EVP_CIPHER_CTX_mode returns one of the |EVP_CIPH_*| cipher mode values
273
+ // enumerated below. It will crash if no cipher has been configured.
269
274
  OPENSSL_EXPORT uint32_t EVP_CIPHER_CTX_mode(const EVP_CIPHER_CTX *ctx);
270
275
 
271
- /* EVP_CIPHER_CTX_ctrl is an |ioctl| like function. The |command| argument
272
- * should be one of the |EVP_CTRL_*| values. The |arg| and |ptr| arguments are
273
- * specific to the command in question. */
276
+ // EVP_CIPHER_CTX_ctrl is an |ioctl| like function. The |command| argument
277
+ // should be one of the |EVP_CTRL_*| values. The |arg| and |ptr| arguments are
278
+ // specific to the command in question.
274
279
  OPENSSL_EXPORT int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int command,
275
280
  int arg, void *ptr);
276
281
 
277
- /* EVP_CIPHER_CTX_set_padding sets whether padding is enabled for |ctx| and
278
- * returns one. Pass a non-zero |pad| to enable padding (the default) or zero
279
- * to disable. */
282
+ // EVP_CIPHER_CTX_set_padding sets whether padding is enabled for |ctx| and
283
+ // returns one. Pass a non-zero |pad| to enable padding (the default) or zero
284
+ // to disable.
280
285
  OPENSSL_EXPORT int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *ctx, int pad);
281
286
 
282
- /* EVP_CIPHER_CTX_set_key_length sets the key length for |ctx|. This is only
283
- * valid for ciphers that can take a variable length key. It returns one on
284
- * success and zero on error. */
287
+ // EVP_CIPHER_CTX_set_key_length sets the key length for |ctx|. This is only
288
+ // valid for ciphers that can take a variable length key. It returns one on
289
+ // success and zero on error.
285
290
  OPENSSL_EXPORT int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *ctx,
286
291
  unsigned key_len);
287
292
 
288
293
 
289
- /* Cipher accessors. */
294
+ // Cipher accessors.
290
295
 
291
- /* EVP_CIPHER_nid returns a NID identifying |cipher|. (For example,
292
- * |NID_aes_128_gcm|.) */
296
+ // EVP_CIPHER_nid returns a NID identifying |cipher|. (For example,
297
+ // |NID_aes_128_gcm|.)
293
298
  OPENSSL_EXPORT int EVP_CIPHER_nid(const EVP_CIPHER *cipher);
294
299
 
295
- /* EVP_CIPHER_block_size returns the block size, in bytes, for |cipher|, or one
296
- * if |cipher| is a stream cipher. */
300
+ // EVP_CIPHER_block_size returns the block size, in bytes, for |cipher|, or one
301
+ // if |cipher| is a stream cipher.
297
302
  OPENSSL_EXPORT unsigned EVP_CIPHER_block_size(const EVP_CIPHER *cipher);
298
303
 
299
- /* EVP_CIPHER_key_length returns the key size, in bytes, for |cipher|. If
300
- * |cipher| can take a variable key length then this function returns the
301
- * default key length and |EVP_CIPHER_flags| will return a value with
302
- * |EVP_CIPH_VARIABLE_LENGTH| set. */
304
+ // EVP_CIPHER_key_length returns the key size, in bytes, for |cipher|. If
305
+ // |cipher| can take a variable key length then this function returns the
306
+ // default key length and |EVP_CIPHER_flags| will return a value with
307
+ // |EVP_CIPH_VARIABLE_LENGTH| set.
303
308
  OPENSSL_EXPORT unsigned EVP_CIPHER_key_length(const EVP_CIPHER *cipher);
304
309
 
305
- /* EVP_CIPHER_iv_length returns the IV size, in bytes, of |cipher|, or zero if
306
- * |cipher| doesn't take an IV. */
310
+ // EVP_CIPHER_iv_length returns the IV size, in bytes, of |cipher|, or zero if
311
+ // |cipher| doesn't take an IV.
307
312
  OPENSSL_EXPORT unsigned EVP_CIPHER_iv_length(const EVP_CIPHER *cipher);
308
313
 
309
- /* EVP_CIPHER_flags returns a value which is the OR of zero or more
310
- * |EVP_CIPH_*| flags. */
314
+ // EVP_CIPHER_flags returns a value which is the OR of zero or more
315
+ // |EVP_CIPH_*| flags.
311
316
  OPENSSL_EXPORT uint32_t EVP_CIPHER_flags(const EVP_CIPHER *cipher);
312
317
 
313
- /* EVP_CIPHER_mode returns one of the cipher mode values enumerated below. */
318
+ // EVP_CIPHER_mode returns one of the cipher mode values enumerated below.
314
319
  OPENSSL_EXPORT uint32_t EVP_CIPHER_mode(const EVP_CIPHER *cipher);
315
320
 
316
321
 
317
- /* Key derivation. */
322
+ // Key derivation.
318
323
 
319
- /* EVP_BytesToKey generates a key and IV for the cipher |type| by iterating
320
- * |md| |count| times using |data| and |salt|. On entry, the |key| and |iv|
321
- * buffers must have enough space to hold a key and IV for |type|. It returns
322
- * the length of the key on success or zero on error. */
324
+ // EVP_BytesToKey generates a key and IV for the cipher |type| by iterating
325
+ // |md| |count| times using |data| and |salt|. On entry, the |key| and |iv|
326
+ // buffers must have enough space to hold a key and IV for |type|. It returns
327
+ // the length of the key on success or zero on error.
323
328
  OPENSSL_EXPORT int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md,
324
329
  const uint8_t *salt, const uint8_t *data,
325
330
  size_t data_len, unsigned count, uint8_t *key,
326
331
  uint8_t *iv);
327
332
 
328
333
 
329
- /* Cipher modes (for |EVP_CIPHER_mode|). */
334
+ // Cipher modes (for |EVP_CIPHER_mode|).
330
335
 
331
336
  #define EVP_CIPH_STREAM_CIPHER 0x0
332
337
  #define EVP_CIPH_ECB_MODE 0x1
@@ -338,84 +343,87 @@ OPENSSL_EXPORT int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md,
338
343
  #define EVP_CIPH_XTS_MODE 0x7
339
344
 
340
345
 
341
- /* Cipher flags (for |EVP_CIPHER_flags|). */
346
+ // Cipher flags (for |EVP_CIPHER_flags|).
342
347
 
343
- /* EVP_CIPH_VARIABLE_LENGTH indicates that the cipher takes a variable length
344
- * key. */
348
+ // EVP_CIPH_VARIABLE_LENGTH indicates that the cipher takes a variable length
349
+ // key.
345
350
  #define EVP_CIPH_VARIABLE_LENGTH 0x40
346
351
 
347
- /* EVP_CIPH_ALWAYS_CALL_INIT indicates that the |init| function for the cipher
348
- * should always be called when initialising a new operation, even if the key
349
- * is NULL to indicate that the same key is being used. */
352
+ // EVP_CIPH_ALWAYS_CALL_INIT indicates that the |init| function for the cipher
353
+ // should always be called when initialising a new operation, even if the key
354
+ // is NULL to indicate that the same key is being used.
350
355
  #define EVP_CIPH_ALWAYS_CALL_INIT 0x80
351
356
 
352
- /* EVP_CIPH_CUSTOM_IV indicates that the cipher manages the IV itself rather
353
- * than keeping it in the |iv| member of |EVP_CIPHER_CTX|. */
357
+ // EVP_CIPH_CUSTOM_IV indicates that the cipher manages the IV itself rather
358
+ // than keeping it in the |iv| member of |EVP_CIPHER_CTX|.
354
359
  #define EVP_CIPH_CUSTOM_IV 0x100
355
360
 
356
- /* EVP_CIPH_CTRL_INIT indicates that EVP_CTRL_INIT should be used when
357
- * initialising an |EVP_CIPHER_CTX|. */
361
+ // EVP_CIPH_CTRL_INIT indicates that EVP_CTRL_INIT should be used when
362
+ // initialising an |EVP_CIPHER_CTX|.
358
363
  #define EVP_CIPH_CTRL_INIT 0x200
359
364
 
360
- /* EVP_CIPH_FLAG_CUSTOM_CIPHER indicates that the cipher manages blocking
361
- * itself. This causes EVP_(En|De)crypt_ex to be simple wrapper functions. */
365
+ // EVP_CIPH_FLAG_CUSTOM_CIPHER indicates that the cipher manages blocking
366
+ // itself. This causes EVP_(En|De)crypt_ex to be simple wrapper functions.
362
367
  #define EVP_CIPH_FLAG_CUSTOM_CIPHER 0x400
363
368
 
364
- /* EVP_CIPH_FLAG_AEAD_CIPHER specifies that the cipher is an AEAD. This is an
365
- * older version of the proper AEAD interface. See aead.h for the current
366
- * one. */
369
+ // EVP_CIPH_FLAG_AEAD_CIPHER specifies that the cipher is an AEAD. This is an
370
+ // older version of the proper AEAD interface. See aead.h for the current
371
+ // one.
367
372
  #define EVP_CIPH_FLAG_AEAD_CIPHER 0x800
368
373
 
369
- /* EVP_CIPH_CUSTOM_COPY indicates that the |ctrl| callback should be called
370
- * with |EVP_CTRL_COPY| at the end of normal |EVP_CIPHER_CTX_copy|
371
- * processing. */
374
+ // EVP_CIPH_CUSTOM_COPY indicates that the |ctrl| callback should be called
375
+ // with |EVP_CTRL_COPY| at the end of normal |EVP_CIPHER_CTX_copy|
376
+ // processing.
372
377
  #define EVP_CIPH_CUSTOM_COPY 0x1000
373
378
 
374
379
 
375
- /* Deprecated functions */
380
+ // Deprecated functions
376
381
 
377
- /* EVP_CipherInit acts like EVP_CipherInit_ex except that |EVP_CIPHER_CTX_init|
378
- * is called on |cipher| first, if |cipher| is not NULL. */
382
+ // EVP_CipherInit acts like EVP_CipherInit_ex except that |EVP_CIPHER_CTX_init|
383
+ // is called on |cipher| first, if |cipher| is not NULL.
379
384
  OPENSSL_EXPORT int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
380
385
  const uint8_t *key, const uint8_t *iv,
381
386
  int enc);
382
387
 
383
- /* EVP_EncryptInit calls |EVP_CipherInit| with |enc| equal to one. */
388
+ // EVP_EncryptInit calls |EVP_CipherInit| with |enc| equal to one.
384
389
  OPENSSL_EXPORT int EVP_EncryptInit(EVP_CIPHER_CTX *ctx,
385
390
  const EVP_CIPHER *cipher, const uint8_t *key,
386
391
  const uint8_t *iv);
387
392
 
388
- /* EVP_DecryptInit calls |EVP_CipherInit| with |enc| equal to zero. */
393
+ // EVP_DecryptInit calls |EVP_CipherInit| with |enc| equal to zero.
389
394
  OPENSSL_EXPORT int EVP_DecryptInit(EVP_CIPHER_CTX *ctx,
390
395
  const EVP_CIPHER *cipher, const uint8_t *key,
391
396
  const uint8_t *iv);
392
397
 
393
- /* EVP_add_cipher_alias does nothing and returns one. */
398
+ // EVP_add_cipher_alias does nothing and returns one.
394
399
  OPENSSL_EXPORT int EVP_add_cipher_alias(const char *a, const char *b);
395
400
 
396
- /* EVP_get_cipherbyname returns an |EVP_CIPHER| given a human readable name in
397
- * |name|, or NULL if the name is unknown. */
401
+ // EVP_get_cipherbyname returns an |EVP_CIPHER| given a human readable name in
402
+ // |name|, or NULL if the name is unknown.
398
403
  OPENSSL_EXPORT const EVP_CIPHER *EVP_get_cipherbyname(const char *name);
399
404
 
400
- /* These AEADs are deprecated AES-GCM implementations that set
401
- * |EVP_CIPH_FLAG_CUSTOM_CIPHER|. Use |EVP_aead_aes_128_gcm| and
402
- * |EVP_aead_aes_256_gcm| instead. */
405
+ // These AEADs are deprecated AES-GCM implementations that set
406
+ // |EVP_CIPH_FLAG_CUSTOM_CIPHER|. Use |EVP_aead_aes_128_gcm| and
407
+ // |EVP_aead_aes_256_gcm| instead.
403
408
  OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_128_gcm(void);
404
409
  OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_256_gcm(void);
405
410
 
406
- /* These are deprecated, 192-bit version of AES. */
411
+ // These are deprecated, 192-bit version of AES.
407
412
  OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_ecb(void);
408
413
  OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_cbc(void);
409
414
  OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_ctr(void);
410
415
  OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_gcm(void);
411
416
 
417
+ // EVP_aes_128_cfb128 is only available in decrepit.
418
+ OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_128_cfb128(void);
419
+
412
420
 
413
- /* Private functions. */
421
+ // Private functions.
414
422
 
415
- /* EVP_CIPH_NO_PADDING disables padding in block ciphers. */
423
+ // EVP_CIPH_NO_PADDING disables padding in block ciphers.
416
424
  #define EVP_CIPH_NO_PADDING 0x800
417
425
 
418
- /* EVP_CIPHER_CTX_ctrl commands. */
426
+ // EVP_CIPHER_CTX_ctrl commands.
419
427
  #define EVP_CTRL_INIT 0x0
420
428
  #define EVP_CTRL_SET_KEY_LENGTH 0x1
421
429
  #define EVP_CTRL_GET_RC2_KEY_BITS 0x2
@@ -431,15 +439,15 @@ OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_gcm(void);
431
439
  #define EVP_CTRL_GCM_SET_IV_FIXED 0x12
432
440
  #define EVP_CTRL_GCM_IV_GEN 0x13
433
441
  #define EVP_CTRL_AEAD_SET_MAC_KEY 0x17
434
- /* Set the GCM invocation field, decrypt only */
442
+ // Set the GCM invocation field, decrypt only
435
443
  #define EVP_CTRL_GCM_SET_IV_INV 0x18
436
444
 
437
- /* GCM TLS constants */
438
- /* Length of fixed part of IV derived from PRF */
445
+ // GCM TLS constants
446
+ // Length of fixed part of IV derived from PRF
439
447
  #define EVP_GCM_TLS_FIXED_IV_LEN 4
440
- /* Length of explicit part of IV part of TLS records */
448
+ // Length of explicit part of IV part of TLS records
441
449
  #define EVP_GCM_TLS_EXPLICIT_IV_LEN 8
442
- /* Length of tag for TLS */
450
+ // Length of tag for TLS
443
451
  #define EVP_GCM_TLS_TAG_LEN 16
444
452
 
445
453
  #define EVP_MAX_KEY_LENGTH 64
@@ -447,51 +455,51 @@ OPENSSL_EXPORT const EVP_CIPHER *EVP_aes_192_gcm(void);
447
455
  #define EVP_MAX_BLOCK_LENGTH 32
448
456
 
449
457
  struct evp_cipher_ctx_st {
450
- /* cipher contains the underlying cipher for this context. */
458
+ // cipher contains the underlying cipher for this context.
451
459
  const EVP_CIPHER *cipher;
452
460
 
453
- /* app_data is a pointer to opaque, user data. */
454
- void *app_data; /* application stuff */
461
+ // app_data is a pointer to opaque, user data.
462
+ void *app_data; // application stuff
455
463
 
456
- /* cipher_data points to the |cipher| specific state. */
464
+ // cipher_data points to the |cipher| specific state.
457
465
  void *cipher_data;
458
466
 
459
- /* key_len contains the length of the key, which may differ from
460
- * |cipher->key_len| if the cipher can take a variable key length. */
467
+ // key_len contains the length of the key, which may differ from
468
+ // |cipher->key_len| if the cipher can take a variable key length.
461
469
  unsigned key_len;
462
470
 
463
- /* encrypt is one if encrypting and zero if decrypting. */
471
+ // encrypt is one if encrypting and zero if decrypting.
464
472
  int encrypt;
465
473
 
466
- /* flags contains the OR of zero or more |EVP_CIPH_*| flags, above. */
474
+ // flags contains the OR of zero or more |EVP_CIPH_*| flags, above.
467
475
  uint32_t flags;
468
476
 
469
- /* oiv contains the original IV value. */
477
+ // oiv contains the original IV value.
470
478
  uint8_t oiv[EVP_MAX_IV_LENGTH];
471
479
 
472
- /* iv contains the current IV value, which may have been updated. */
480
+ // iv contains the current IV value, which may have been updated.
473
481
  uint8_t iv[EVP_MAX_IV_LENGTH];
474
482
 
475
- /* buf contains a partial block which is used by, for example, CTR mode to
476
- * store unused keystream bytes. */
483
+ // buf contains a partial block which is used by, for example, CTR mode to
484
+ // store unused keystream bytes.
477
485
  uint8_t buf[EVP_MAX_BLOCK_LENGTH];
478
486
 
479
- /* buf_len contains the number of bytes of a partial block contained in
480
- * |buf|. */
487
+ // buf_len contains the number of bytes of a partial block contained in
488
+ // |buf|.
481
489
  int buf_len;
482
490
 
483
- /* num contains the number of bytes of |iv| which are valid for modes that
484
- * manage partial blocks themselves. */
491
+ // num contains the number of bytes of |iv| which are valid for modes that
492
+ // manage partial blocks themselves.
485
493
  unsigned num;
486
494
 
487
- /* final_used is non-zero if the |final| buffer contains plaintext. */
495
+ // final_used is non-zero if the |final| buffer contains plaintext.
488
496
  int final_used;
489
497
 
490
- /* block_mask contains |cipher->block_size| minus one. (The block size
491
- * assumed to be a power of two.) */
498
+ // block_mask contains |cipher->block_size| minus one. (The block size
499
+ // assumed to be a power of two.)
492
500
  int block_mask;
493
501
 
494
- uint8_t final[EVP_MAX_BLOCK_LENGTH]; /* possible final block */
502
+ uint8_t final[EVP_MAX_BLOCK_LENGTH]; // possible final block
495
503
  } /* EVP_CIPHER_CTX */;
496
504
 
497
505
  typedef struct evp_cipher_info_st {
@@ -500,28 +508,28 @@ typedef struct evp_cipher_info_st {
500
508
  } EVP_CIPHER_INFO;
501
509
 
502
510
  struct evp_cipher_st {
503
- /* type contains a NID identifing the cipher. (e.g. NID_aes_128_gcm.) */
511
+ // type contains a NID identifing the cipher. (e.g. NID_aes_128_gcm.)
504
512
  int nid;
505
513
 
506
- /* block_size contains the block size, in bytes, of the cipher, or 1 for a
507
- * stream cipher. */
514
+ // block_size contains the block size, in bytes, of the cipher, or 1 for a
515
+ // stream cipher.
508
516
  unsigned block_size;
509
517
 
510
- /* key_len contains the key size, in bytes, for the cipher. If the cipher
511
- * takes a variable key size then this contains the default size. */
518
+ // key_len contains the key size, in bytes, for the cipher. If the cipher
519
+ // takes a variable key size then this contains the default size.
512
520
  unsigned key_len;
513
521
 
514
- /* iv_len contains the IV size, in bytes, or zero if inapplicable. */
522
+ // iv_len contains the IV size, in bytes, or zero if inapplicable.
515
523
  unsigned iv_len;
516
524
 
517
- /* ctx_size contains the size, in bytes, of the per-key context for this
518
- * cipher. */
525
+ // ctx_size contains the size, in bytes, of the per-key context for this
526
+ // cipher.
519
527
  unsigned ctx_size;
520
528
 
521
- /* flags contains the OR of a number of flags. See |EVP_CIPH_*|. */
529
+ // flags contains the OR of a number of flags. See |EVP_CIPH_*|.
522
530
  uint32_t flags;
523
531
 
524
- /* app_data is a pointer to opaque, user data. */
532
+ // app_data is a pointer to opaque, user data.
525
533
  void *app_data;
526
534
 
527
535
  int (*init)(EVP_CIPHER_CTX *ctx, const uint8_t *key, const uint8_t *iv,
@@ -530,9 +538,9 @@ struct evp_cipher_st {
530
538
  int (*cipher)(EVP_CIPHER_CTX *ctx, uint8_t *out, const uint8_t *in,
531
539
  size_t inl);
532
540
 
533
- /* cleanup, if non-NULL, releases memory associated with the context. It is
534
- * called if |EVP_CTRL_INIT| succeeds. Note that |init| may not have been
535
- * called at this point. */
541
+ // cleanup, if non-NULL, releases memory associated with the context. It is
542
+ // called if |EVP_CTRL_INIT| succeeds. Note that |init| may not have been
543
+ // called at this point.
536
544
  void (*cleanup)(EVP_CIPHER_CTX *);
537
545
 
538
546
  int (*ctrl)(EVP_CIPHER_CTX *, int type, int arg, void *ptr);
@@ -540,7 +548,7 @@ struct evp_cipher_st {
540
548
 
541
549
 
542
550
  #if defined(__cplusplus)
543
- } /* extern C */
551
+ } // extern C
544
552
 
545
553
  #if !defined(BORINGSSL_NO_CXX)
546
554
  extern "C++" {
@@ -585,5 +593,6 @@ using ScopedEVP_CIPHER_CTX =
585
593
  #define CIPHER_R_UNSUPPORTED_TAG_SIZE 122
586
594
  #define CIPHER_R_WRONG_FINAL_BLOCK_LENGTH 123
587
595
  #define CIPHER_R_NO_DIRECTION_SET 124
596
+ #define CIPHER_R_INVALID_NONCE 125
588
597
 
589
- #endif /* OPENSSL_HEADER_CIPHER_H */
598
+ #endif // OPENSSL_HEADER_CIPHER_H