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
@@ -56,7 +56,8 @@
56
56
 
57
57
  /* This file is generated by crypto/obj/objects.go. */
58
58
 
59
- #define NUM_NID 949
59
+
60
+ #define NUM_NID 959
60
61
 
61
62
  static const uint8_t kObjectData[] = {
62
63
  /* NID_rsadsi */
@@ -1811,6 +1812,8 @@ static const uint8_t kObjectData[] = {
1811
1812
  0x2b, 0x81, 0x04, 0x01, 0x0e, 0x02,
1812
1813
  /* NID_dhSinglePass_cofactorDH_sha512kdf_scheme */
1813
1814
  0x2b, 0x81, 0x04, 0x01, 0x0e, 0x03,
1815
+ /* NID_ED25519 */
1816
+ 0x2b, 0x65, 0x70,
1814
1817
  };
1815
1818
 
1816
1819
  static const ASN1_OBJECT kObjects[NUM_NID] = {
@@ -3440,6 +3443,17 @@ static const ASN1_OBJECT kObjects[NUM_NID] = {
3440
3443
  {"dh-std-kdf", "dh-std-kdf", NID_dh_std_kdf, 0, NULL, 0},
3441
3444
  {"dh-cofactor-kdf", "dh-cofactor-kdf", NID_dh_cofactor_kdf, 0, NULL, 0},
3442
3445
  {"X25519", "X25519", NID_X25519, 0, NULL, 0},
3446
+ {"ED25519", "ED25519", NID_ED25519, 3, &kObjectData[6175], 0},
3447
+ {"ChaCha20-Poly1305", "chacha20-poly1305", NID_chacha20_poly1305, 0, NULL,
3448
+ 0},
3449
+ {"KxRSA", "kx-rsa", NID_kx_rsa, 0, NULL, 0},
3450
+ {"KxECDHE", "kx-ecdhe", NID_kx_ecdhe, 0, NULL, 0},
3451
+ {"KxPSK", "kx-psk", NID_kx_psk, 0, NULL, 0},
3452
+ {"AuthRSA", "auth-rsa", NID_auth_rsa, 0, NULL, 0},
3453
+ {"AuthECDSA", "auth-ecdsa", NID_auth_ecdsa, 0, NULL, 0},
3454
+ {"AuthPSK", "auth-psk", NID_auth_psk, 0, NULL, 0},
3455
+ {"KxANY", "kx-any", NID_kx_any, 0, NULL, 0},
3456
+ {"AuthANY", "auth-any", NID_auth_any, 0, NULL, 0},
3443
3457
  };
3444
3458
 
3445
3459
  static const unsigned kNIDsInShortNameOrder[] = {
@@ -3470,6 +3484,10 @@ static const unsigned kNIDsInShortNameOrder[] = {
3470
3484
  426 /* AES-256-ECB */,
3471
3485
  428 /* AES-256-OFB */,
3472
3486
  914 /* AES-256-XTS */,
3487
+ 958 /* AuthANY */,
3488
+ 955 /* AuthECDSA */,
3489
+ 956 /* AuthPSK */,
3490
+ 954 /* AuthRSA */,
3473
3491
  91 /* BF-CBC */,
3474
3492
  93 /* BF-CFB */,
3475
3493
  92 /* BF-ECB */,
@@ -3501,6 +3519,7 @@ static const unsigned kNIDsInShortNameOrder[] = {
3501
3519
  13 /* CN */,
3502
3520
  141 /* CRLReason */,
3503
3521
  417 /* CSPName */,
3522
+ 950 /* ChaCha20-Poly1305 */,
3504
3523
  367 /* CrlID */,
3505
3524
  391 /* DC */,
3506
3525
  31 /* DES-CBC */,
@@ -3528,6 +3547,7 @@ static const unsigned kNIDsInShortNameOrder[] = {
3528
3547
  70 /* DSA-SHA1-old */,
3529
3548
  67 /* DSA-old */,
3530
3549
  297 /* DVCS */,
3550
+ 949 /* ED25519 */,
3531
3551
  99 /* GN */,
3532
3552
  855 /* HMAC */,
3533
3553
  780 /* HMAC-MD5 */,
@@ -3542,6 +3562,10 @@ static const unsigned kNIDsInShortNameOrder[] = {
3542
3562
  645 /* ITU-T */,
3543
3563
  646 /* JOINT-ISO-ITU-T */,
3544
3564
  773 /* KISA */,
3565
+ 957 /* KxANY */,
3566
+ 952 /* KxECDHE */,
3567
+ 953 /* KxPSK */,
3568
+ 951 /* KxRSA */,
3545
3569
  15 /* L */,
3546
3570
  856 /* LocalKeySet */,
3547
3571
  3 /* MD2 */,
@@ -4400,6 +4424,7 @@ static const unsigned kNIDsInLongNameOrder[] = {
4400
4424
  382 /* Directory */,
4401
4425
  392 /* Domain */,
4402
4426
  132 /* E-mail Protection */,
4427
+ 949 /* ED25519 */,
4403
4428
  389 /* Enterprises */,
4404
4429
  384 /* Experimental */,
4405
4430
  372 /* Extended OCSP Status */,
@@ -4564,6 +4589,10 @@ static const unsigned kNIDsInLongNameOrder[] = {
4564
4589
  484 /* associatedDomain */,
4565
4590
  485 /* associatedName */,
4566
4591
  501 /* audio */,
4592
+ 958 /* auth-any */,
4593
+ 955 /* auth-ecdsa */,
4594
+ 956 /* auth-psk */,
4595
+ 954 /* auth-rsa */,
4567
4596
  882 /* authorityRevocationList */,
4568
4597
  91 /* bf-cbc */,
4569
4598
  93 /* bf-cfb */,
@@ -4634,6 +4663,7 @@ static const unsigned kNIDsInLongNameOrder[] = {
4634
4663
  677 /* certicom-arc */,
4635
4664
  517 /* certificate extensions */,
4636
4665
  883 /* certificateRevocationList */,
4666
+ 950 /* chacha20-poly1305 */,
4637
4667
  54 /* challengePassword */,
4638
4668
  407 /* characteristic-two-field */,
4639
4669
  395 /* clearance */,
@@ -4976,6 +5006,10 @@ static const unsigned kNIDsInLongNameOrder[] = {
4976
5006
  646 /* joint-iso-itu-t */,
4977
5007
  150 /* keyBag */,
4978
5008
  773 /* kisa */,
5009
+ 957 /* kx-any */,
5010
+ 952 /* kx-ecdhe */,
5011
+ 953 /* kx-psk */,
5012
+ 951 /* kx-rsa */,
4979
5013
  477 /* lastModifiedBy */,
4980
5014
  476 /* lastModifiedTime */,
4981
5015
  157 /* localKeyID */,
@@ -5327,26 +5361,39 @@ static const unsigned kNIDsInLongNameOrder[] = {
5327
5361
  };
5328
5362
 
5329
5363
  static const unsigned kNIDsInOIDOrder[] = {
5330
- 434 /* 0.9 (OBJ_data) */, 182 /* 1.2 (OBJ_member_body) */,
5331
- 379 /* 1.3 (OBJ_org) */, 676 /* 1.3 (OBJ_identified_organization) */,
5332
- 11 /* 2.5 (OBJ_X500) */, 647 /* 2.23 (OBJ_international_organizations) */,
5333
- 380 /* 1.3.6 (OBJ_dod) */, 12 /* 2.5.4 (OBJ_X509) */,
5334
- 378 /* 2.5.8 (OBJ_X500algorithms) */, 81 /* 2.5.29 (OBJ_id_ce) */,
5335
- 512 /* 2.23.42 (OBJ_id_set) */, 678 /* 2.23.43 (OBJ_wap) */,
5336
- 435 /* 0.9.2342 (OBJ_pss) */, 183 /* 1.2.840 (OBJ_ISO_US) */,
5337
- 381 /* 1.3.6.1 (OBJ_iana) */, 677 /* 1.3.132 (OBJ_certicom_arc) */,
5364
+ 434 /* 0.9 (OBJ_data) */,
5365
+ 182 /* 1.2 (OBJ_member_body) */,
5366
+ 379 /* 1.3 (OBJ_org) */,
5367
+ 676 /* 1.3 (OBJ_identified_organization) */,
5368
+ 11 /* 2.5 (OBJ_X500) */,
5369
+ 647 /* 2.23 (OBJ_international_organizations) */,
5370
+ 380 /* 1.3.6 (OBJ_dod) */,
5371
+ 12 /* 2.5.4 (OBJ_X509) */,
5372
+ 378 /* 2.5.8 (OBJ_X500algorithms) */,
5373
+ 81 /* 2.5.29 (OBJ_id_ce) */,
5374
+ 512 /* 2.23.42 (OBJ_id_set) */,
5375
+ 678 /* 2.23.43 (OBJ_wap) */,
5376
+ 435 /* 0.9.2342 (OBJ_pss) */,
5377
+ 183 /* 1.2.840 (OBJ_ISO_US) */,
5378
+ 381 /* 1.3.6.1 (OBJ_iana) */,
5379
+ 949 /* 1.3.101.112 (OBJ_ED25519) */,
5380
+ 677 /* 1.3.132 (OBJ_certicom_arc) */,
5338
5381
  394 /* 2.5.1.5 (OBJ_selected_attribute_types) */,
5339
- 13 /* 2.5.4.3 (OBJ_commonName) */, 100 /* 2.5.4.4 (OBJ_surname) */,
5340
- 105 /* 2.5.4.5 (OBJ_serialNumber) */, 14 /* 2.5.4.6 (OBJ_countryName) */,
5382
+ 13 /* 2.5.4.3 (OBJ_commonName) */,
5383
+ 100 /* 2.5.4.4 (OBJ_surname) */,
5384
+ 105 /* 2.5.4.5 (OBJ_serialNumber) */,
5385
+ 14 /* 2.5.4.6 (OBJ_countryName) */,
5341
5386
  15 /* 2.5.4.7 (OBJ_localityName) */,
5342
5387
  16 /* 2.5.4.8 (OBJ_stateOrProvinceName) */,
5343
5388
  660 /* 2.5.4.9 (OBJ_streetAddress) */,
5344
5389
  17 /* 2.5.4.10 (OBJ_organizationName) */,
5345
5390
  18 /* 2.5.4.11 (OBJ_organizationalUnitName) */,
5346
- 106 /* 2.5.4.12 (OBJ_title) */, 107 /* 2.5.4.13 (OBJ_description) */,
5391
+ 106 /* 2.5.4.12 (OBJ_title) */,
5392
+ 107 /* 2.5.4.13 (OBJ_description) */,
5347
5393
  859 /* 2.5.4.14 (OBJ_searchGuide) */,
5348
5394
  860 /* 2.5.4.15 (OBJ_businessCategory) */,
5349
- 861 /* 2.5.4.16 (OBJ_postalAddress) */, 661 /* 2.5.4.17 (OBJ_postalCode) */,
5395
+ 861 /* 2.5.4.16 (OBJ_postalAddress) */,
5396
+ 661 /* 2.5.4.17 (OBJ_postalCode) */,
5350
5397
  862 /* 2.5.4.18 (OBJ_postOfficeBox) */,
5351
5398
  863 /* 2.5.4.19 (OBJ_physicalDeliveryOfficeName) */,
5352
5399
  864 /* 2.5.4.20 (OBJ_telephoneNumber) */,
@@ -5360,15 +5407,18 @@ static const unsigned kNIDsInOIDOrder[] = {
5360
5407
  872 /* 2.5.4.28 (OBJ_preferredDeliveryMethod) */,
5361
5408
  873 /* 2.5.4.29 (OBJ_presentationAddress) */,
5362
5409
  874 /* 2.5.4.30 (OBJ_supportedApplicationContext) */,
5363
- 875 /* 2.5.4.31 (OBJ_member) */, 876 /* 2.5.4.32 (OBJ_owner) */,
5364
- 877 /* 2.5.4.33 (OBJ_roleOccupant) */, 878 /* 2.5.4.34 (OBJ_seeAlso) */,
5410
+ 875 /* 2.5.4.31 (OBJ_member) */,
5411
+ 876 /* 2.5.4.32 (OBJ_owner) */,
5412
+ 877 /* 2.5.4.33 (OBJ_roleOccupant) */,
5413
+ 878 /* 2.5.4.34 (OBJ_seeAlso) */,
5365
5414
  879 /* 2.5.4.35 (OBJ_userPassword) */,
5366
5415
  880 /* 2.5.4.36 (OBJ_userCertificate) */,
5367
5416
  881 /* 2.5.4.37 (OBJ_cACertificate) */,
5368
5417
  882 /* 2.5.4.38 (OBJ_authorityRevocationList) */,
5369
5418
  883 /* 2.5.4.39 (OBJ_certificateRevocationList) */,
5370
5419
  884 /* 2.5.4.40 (OBJ_crossCertificatePair) */,
5371
- 173 /* 2.5.4.41 (OBJ_name) */, 99 /* 2.5.4.42 (OBJ_givenName) */,
5420
+ 173 /* 2.5.4.41 (OBJ_name) */,
5421
+ 99 /* 2.5.4.42 (OBJ_givenName) */,
5372
5422
  101 /* 2.5.4.43 (OBJ_initials) */,
5373
5423
  509 /* 2.5.4.44 (OBJ_generationQualifier) */,
5374
5424
  503 /* 2.5.4.45 (OBJ_x500UniqueIdentifier) */,
@@ -5380,7 +5430,8 @@ static const unsigned kNIDsInOIDOrder[] = {
5380
5430
  889 /* 2.5.4.51 (OBJ_houseIdentifier) */,
5381
5431
  890 /* 2.5.4.52 (OBJ_supportedAlgorithms) */,
5382
5432
  891 /* 2.5.4.53 (OBJ_deltaRevocationList) */,
5383
- 892 /* 2.5.4.54 (OBJ_dmdName) */, 510 /* 2.5.4.65 (OBJ_pseudonym) */,
5433
+ 892 /* 2.5.4.54 (OBJ_dmdName) */,
5434
+ 510 /* 2.5.4.65 (OBJ_pseudonym) */,
5384
5435
  400 /* 2.5.4.72 (OBJ_role) */,
5385
5436
  769 /* 2.5.29.9 (OBJ_subject_directory_attributes) */,
5386
5437
  82 /* 2.5.29.14 (OBJ_subject_key_identifier) */,
@@ -5389,7 +5440,8 @@ static const unsigned kNIDsInOIDOrder[] = {
5389
5440
  85 /* 2.5.29.17 (OBJ_subject_alt_name) */,
5390
5441
  86 /* 2.5.29.18 (OBJ_issuer_alt_name) */,
5391
5442
  87 /* 2.5.29.19 (OBJ_basic_constraints) */,
5392
- 88 /* 2.5.29.20 (OBJ_crl_number) */, 141 /* 2.5.29.21 (OBJ_crl_reason) */,
5443
+ 88 /* 2.5.29.20 (OBJ_crl_number) */,
5444
+ 141 /* 2.5.29.21 (OBJ_crl_reason) */,
5393
5445
  430 /* 2.5.29.23 (OBJ_hold_instruction_code) */,
5394
5446
  142 /* 2.5.29.24 (OBJ_invalidity_date) */,
5395
5447
  140 /* 2.5.29.27 (OBJ_delta_crl) */,
@@ -5405,16 +5457,26 @@ static const unsigned kNIDsInOIDOrder[] = {
5405
5457
  857 /* 2.5.29.46 (OBJ_freshest_crl) */,
5406
5458
  748 /* 2.5.29.54 (OBJ_inhibit_any_policy) */,
5407
5459
  402 /* 2.5.29.55 (OBJ_target_information) */,
5408
- 403 /* 2.5.29.56 (OBJ_no_rev_avail) */, 513 /* 2.23.42.0 (OBJ_set_ctype) */,
5409
- 514 /* 2.23.42.1 (OBJ_set_msgExt) */, 515 /* 2.23.42.3 (OBJ_set_attr) */,
5410
- 516 /* 2.23.42.5 (OBJ_set_policy) */, 517 /* 2.23.42.7 (OBJ_set_certExt) */,
5411
- 518 /* 2.23.42.8 (OBJ_set_brand) */, 679 /* 2.23.43.1 (OBJ_wap_wsg) */,
5412
- 382 /* 1.3.6.1.1 (OBJ_Directory) */, 383 /* 1.3.6.1.2 (OBJ_Management) */,
5413
- 384 /* 1.3.6.1.3 (OBJ_Experimental) */, 385 /* 1.3.6.1.4 (OBJ_Private) */,
5414
- 386 /* 1.3.6.1.5 (OBJ_Security) */, 387 /* 1.3.6.1.6 (OBJ_SNMPv2) */,
5415
- 388 /* 1.3.6.1.7 (OBJ_Mail) */, 376 /* 1.3.14.3.2 (OBJ_algorithm) */,
5416
- 395 /* 2.5.1.5.55 (OBJ_clearance) */, 19 /* 2.5.8.1.1 (OBJ_rsa) */,
5417
- 96 /* 2.5.8.3.100 (OBJ_mdc2WithRSA) */, 95 /* 2.5.8.3.101 (OBJ_mdc2) */,
5460
+ 403 /* 2.5.29.56 (OBJ_no_rev_avail) */,
5461
+ 513 /* 2.23.42.0 (OBJ_set_ctype) */,
5462
+ 514 /* 2.23.42.1 (OBJ_set_msgExt) */,
5463
+ 515 /* 2.23.42.3 (OBJ_set_attr) */,
5464
+ 516 /* 2.23.42.5 (OBJ_set_policy) */,
5465
+ 517 /* 2.23.42.7 (OBJ_set_certExt) */,
5466
+ 518 /* 2.23.42.8 (OBJ_set_brand) */,
5467
+ 679 /* 2.23.43.1 (OBJ_wap_wsg) */,
5468
+ 382 /* 1.3.6.1.1 (OBJ_Directory) */,
5469
+ 383 /* 1.3.6.1.2 (OBJ_Management) */,
5470
+ 384 /* 1.3.6.1.3 (OBJ_Experimental) */,
5471
+ 385 /* 1.3.6.1.4 (OBJ_Private) */,
5472
+ 386 /* 1.3.6.1.5 (OBJ_Security) */,
5473
+ 387 /* 1.3.6.1.6 (OBJ_SNMPv2) */,
5474
+ 388 /* 1.3.6.1.7 (OBJ_Mail) */,
5475
+ 376 /* 1.3.14.3.2 (OBJ_algorithm) */,
5476
+ 395 /* 2.5.1.5.55 (OBJ_clearance) */,
5477
+ 19 /* 2.5.8.1.1 (OBJ_rsa) */,
5478
+ 96 /* 2.5.8.3.100 (OBJ_mdc2WithRSA) */,
5479
+ 95 /* 2.5.8.3.101 (OBJ_mdc2) */,
5418
5480
  746 /* 2.5.29.32.0 (OBJ_any_policy) */,
5419
5481
  910 /* 2.5.29.37.0 (OBJ_anyExtendedKeyUsage) */,
5420
5482
  519 /* 2.23.42.0.0 (OBJ_setct_PANData) */,
@@ -5529,22 +5591,27 @@ static const unsigned kNIDsInOIDOrder[] = {
5529
5591
  638 /* 2.23.42.8.34 (OBJ_set_brand_AmericanExpress) */,
5530
5592
  639 /* 2.23.42.8.35 (OBJ_set_brand_JCB) */,
5531
5593
  805 /* 1.2.643.2.2 (OBJ_cryptopro) */,
5532
- 806 /* 1.2.643.2.9 (OBJ_cryptocom) */, 184 /* 1.2.840.10040 (OBJ_X9_57) */,
5594
+ 806 /* 1.2.643.2.9 (OBJ_cryptocom) */,
5595
+ 184 /* 1.2.840.10040 (OBJ_X9_57) */,
5533
5596
  405 /* 1.2.840.10045 (OBJ_ansi_X9_62) */,
5534
5597
  389 /* 1.3.6.1.4.1 (OBJ_Enterprises) */,
5535
5598
  504 /* 1.3.6.1.7.1 (OBJ_mime_mhs) */,
5536
5599
  104 /* 1.3.14.3.2.3 (OBJ_md5WithRSA) */,
5537
- 29 /* 1.3.14.3.2.6 (OBJ_des_ecb) */, 31 /* 1.3.14.3.2.7 (OBJ_des_cbc) */,
5600
+ 29 /* 1.3.14.3.2.6 (OBJ_des_ecb) */,
5601
+ 31 /* 1.3.14.3.2.7 (OBJ_des_cbc) */,
5538
5602
  45 /* 1.3.14.3.2.8 (OBJ_des_ofb64) */,
5539
5603
  30 /* 1.3.14.3.2.9 (OBJ_des_cfb64) */,
5540
5604
  377 /* 1.3.14.3.2.11 (OBJ_rsaSignature) */,
5541
- 67 /* 1.3.14.3.2.12 (OBJ_dsa_2) */, 66 /* 1.3.14.3.2.13 (OBJ_dsaWithSHA) */,
5605
+ 67 /* 1.3.14.3.2.12 (OBJ_dsa_2) */,
5606
+ 66 /* 1.3.14.3.2.13 (OBJ_dsaWithSHA) */,
5542
5607
  42 /* 1.3.14.3.2.15 (OBJ_shaWithRSAEncryption) */,
5543
- 32 /* 1.3.14.3.2.17 (OBJ_des_ede_ecb) */, 41 /* 1.3.14.3.2.18 (OBJ_sha) */,
5608
+ 32 /* 1.3.14.3.2.17 (OBJ_des_ede_ecb) */,
5609
+ 41 /* 1.3.14.3.2.18 (OBJ_sha) */,
5544
5610
  64 /* 1.3.14.3.2.26 (OBJ_sha1) */,
5545
5611
  70 /* 1.3.14.3.2.27 (OBJ_dsaWithSHA1_2) */,
5546
5612
  115 /* 1.3.14.3.2.29 (OBJ_sha1WithRSA) */,
5547
- 117 /* 1.3.36.3.2.1 (OBJ_ripemd160) */, 143 /* 1.3.101.1.4.1 (OBJ_sxnet) */,
5613
+ 117 /* 1.3.36.3.2.1 (OBJ_ripemd160) */,
5614
+ 143 /* 1.3.101.1.4.1 (OBJ_sxnet) */,
5548
5615
  721 /* 1.3.132.0.1 (OBJ_sect163k1) */,
5549
5616
  722 /* 1.3.132.0.2 (OBJ_sect163r1) */,
5550
5617
  728 /* 1.3.132.0.3 (OBJ_sect239k1) */,
@@ -5608,7 +5675,8 @@ static const unsigned kNIDsInOIDOrder[] = {
5608
5675
  816 /* 1.2.643.2.2.23 (OBJ_id_GostR3411_94_prf) */,
5609
5676
  817 /* 1.2.643.2.2.98 (OBJ_id_GostR3410_2001DH) */,
5610
5677
  818 /* 1.2.643.2.2.99 (OBJ_id_GostR3410_94DH) */,
5611
- 1 /* 1.2.840.113549 (OBJ_rsadsi) */, 185 /* 1.2.840.10040.4 (OBJ_X9cm) */,
5678
+ 1 /* 1.2.840.113549 (OBJ_rsadsi) */,
5679
+ 185 /* 1.2.840.10040.4 (OBJ_X9cm) */,
5612
5680
  127 /* 1.3.6.1.5.5.7 (OBJ_id_pkix) */,
5613
5681
  505 /* 1.3.6.1.7.1.1 (OBJ_mime_mhs_headings) */,
5614
5682
  506 /* 1.3.6.1.7.1.2 (OBJ_mime_mhs_bodies) */,
@@ -66,7 +66,7 @@ typedef struct {
66
66
  } nid_triple;
67
67
 
68
68
  static const nid_triple kTriples[] = {
69
- /* RSA PKCS#1. */
69
+ // RSA PKCS#1.
70
70
  {NID_md4WithRSAEncryption, NID_md4, NID_rsaEncryption},
71
71
  {NID_md5WithRSAEncryption, NID_md5, NID_rsaEncryption},
72
72
  {NID_sha1WithRSAEncryption, NID_sha1, NID_rsaEncryption},
@@ -74,21 +74,21 @@ static const nid_triple kTriples[] = {
74
74
  {NID_sha256WithRSAEncryption, NID_sha256, NID_rsaEncryption},
75
75
  {NID_sha384WithRSAEncryption, NID_sha384, NID_rsaEncryption},
76
76
  {NID_sha512WithRSAEncryption, NID_sha512, NID_rsaEncryption},
77
- /* DSA. */
77
+ // DSA.
78
78
  {NID_dsaWithSHA1, NID_sha1, NID_dsa},
79
79
  {NID_dsaWithSHA1_2, NID_sha1, NID_dsa_2},
80
80
  {NID_dsa_with_SHA224, NID_sha224, NID_dsa},
81
81
  {NID_dsa_with_SHA256, NID_sha256, NID_dsa},
82
- /* ECDSA. */
82
+ // ECDSA.
83
83
  {NID_ecdsa_with_SHA1, NID_sha1, NID_X9_62_id_ecPublicKey},
84
84
  {NID_ecdsa_with_SHA224, NID_sha224, NID_X9_62_id_ecPublicKey},
85
85
  {NID_ecdsa_with_SHA256, NID_sha256, NID_X9_62_id_ecPublicKey},
86
86
  {NID_ecdsa_with_SHA384, NID_sha384, NID_X9_62_id_ecPublicKey},
87
87
  {NID_ecdsa_with_SHA512, NID_sha512, NID_X9_62_id_ecPublicKey},
88
- /* For PSS the digest algorithm can vary and depends on the included
89
- * AlgorithmIdentifier. The digest "undef" indicates the public key method
90
- * should handle this explicitly. */
88
+ // The following algorithms use more complex (or simpler) parameters. The
89
+ // digest "undef" indicates the caller should handle this explicitly.
91
90
  {NID_rsassaPss, NID_undef, NID_rsaEncryption},
91
+ {NID_ED25519, NID_undef, NID_ED25519},
92
92
  };
93
93
 
94
94
  int OBJ_find_sigid_algs(int sign_nid, int *out_digest_nid, int *out_pkey_nid) {
@@ -297,7 +297,6 @@ int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc,
297
297
  unsigned char *kstr, int klen,
298
298
  pem_password_cb *cb, void *u)
299
299
  {
300
- EVP_CIPHER_CTX ctx;
301
300
  int i, ret = 0;
302
301
  unsigned char *data = NULL;
303
302
  const char *objstr = NULL;
@@ -374,8 +373,7 @@ int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc,
374
373
 
375
374
  ret = 1;
376
375
 
377
- err:
378
- OPENSSL_cleanse((char *)&ctx, sizeof(ctx));
379
- OPENSSL_cleanse(buf, PEM_BUFSIZE);
380
- return (ret);
376
+ err:
377
+ OPENSSL_cleanse(buf, PEM_BUFSIZE);
378
+ return ret;
381
379
  }
@@ -343,10 +343,7 @@ int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp,
343
343
  OPENSSL_cleanse(iv, sizeof(iv));
344
344
  OPENSSL_cleanse((char *)&ctx, sizeof(ctx));
345
345
  OPENSSL_cleanse(buf, PEM_BUFSIZE);
346
- if (data != NULL) {
347
- OPENSSL_cleanse(data, (unsigned int)dsize);
348
- OPENSSL_free(data);
349
- }
346
+ OPENSSL_free(data);
350
347
  return (ret);
351
348
  }
352
349
 
@@ -562,7 +559,6 @@ int PEM_write_bio(BIO *bp, const char *name, const char *header,
562
559
  EVP_EncodeFinal(&ctx, buf, &outl);
563
560
  if ((outl > 0) && (BIO_write(bp, (char *)buf, outl) != outl))
564
561
  goto err;
565
- OPENSSL_cleanse(buf, PEM_BUFSIZE * 8);
566
562
  OPENSSL_free(buf);
567
563
  buf = NULL;
568
564
  if ((BIO_write(bp, "-----END ", 9) != 9) ||
@@ -572,7 +568,6 @@ int PEM_write_bio(BIO *bp, const char *name, const char *header,
572
568
  return (i + outl);
573
569
  err:
574
570
  if (buf) {
575
- OPENSSL_cleanse(buf, PEM_BUFSIZE * 8);
576
571
  OPENSSL_free(buf);
577
572
  }
578
573
  OPENSSL_PUT_ERROR(PEM, reason);
@@ -176,6 +176,7 @@ EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb,
176
176
  }
177
177
  p8inf = PKCS8_decrypt(p8, psbuf, klen);
178
178
  X509_SIG_free(p8);
179
+ OPENSSL_cleanse(psbuf, klen);
179
180
  if (!p8inf)
180
181
  return NULL;
181
182
  ret = EVP_PKCS82PKEY(p8inf);
@@ -114,6 +114,7 @@ EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb,
114
114
  }
115
115
  p8inf = PKCS8_decrypt(p8, psbuf, klen);
116
116
  X509_SIG_free(p8);
117
+ OPENSSL_cleanse(psbuf, klen);
117
118
  if (!p8inf)
118
119
  goto p8err;
119
120
  ret = EVP_PKCS82PKEY(p8inf);
@@ -139,7 +140,6 @@ EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb,
139
140
 
140
141
  err:
141
142
  OPENSSL_free(nm);
142
- OPENSSL_cleanse(data, len);
143
143
  OPENSSL_free(data);
144
144
  return (ret);
145
145
  }
@@ -63,5 +63,3 @@
63
63
  #include <openssl/x509.h>
64
64
 
65
65
  IMPLEMENT_PEM_rw(X509_AUX, X509, PEM_STRING_X509_TRUSTED, X509_AUX)
66
- IMPLEMENT_PEM_rw(X509_CERT_PAIR, X509_CERT_PAIR, PEM_STRING_X509_PAIR,
67
- X509_CERT_PAIR)
@@ -0,0 +1,49 @@
1
+ /* Copyright (c) 2017, Google Inc.
2
+ *
3
+ * Permission to use, copy, modify, and/or distribute this software for any
4
+ * purpose with or without fee is hereby granted, provided that the above
5
+ * copyright notice and this permission notice appear in all copies.
6
+ *
7
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
10
+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
12
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
13
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
14
+
15
+ #ifndef OPENSSL_HEADER_PKCS7_INTERNAL_H
16
+ #define OPENSSL_HEADER_PKCS7_INTERNAL_H
17
+
18
+ #include <openssl/base.h>
19
+
20
+ #if defined(__cplusplus)
21
+ extern "C" {
22
+ #endif
23
+
24
+
25
+ // pkcs7_parse_header reads the non-certificate/non-CRL prefix of a PKCS#7
26
+ // SignedData blob from |cbs| and sets |*out| to point to the rest of the
27
+ // input. If the input is in BER format, then |*der_bytes| will be set to a
28
+ // pointer that needs to be freed by the caller once they have finished
29
+ // processing |*out| (which will be pointing into |*der_bytes|).
30
+ //
31
+ // It returns one on success or zero on error. On error, |*der_bytes| is
32
+ // NULL.
33
+ int pkcs7_parse_header(uint8_t **der_bytes, CBS *out, CBS *cbs);
34
+
35
+ // pkcs7_bundle writes a PKCS#7, SignedData structure to |out| and then calls
36
+ // |cb| with a CBB to which certificate or CRL data can be written, and the
37
+ // opaque context pointer, |arg|. The callback can return zero to indicate an
38
+ // error.
39
+ //
40
+ // pkcs7_bundle returns one on success or zero on error.
41
+ int pkcs7_bundle(CBB *out, int (*cb)(CBB *out, const void *arg),
42
+ const void *arg);
43
+
44
+
45
+ #if defined(__cplusplus)
46
+ } // extern C
47
+ #endif
48
+
49
+ #endif // OPENSSL_HEADER_PKCS7_INTERNAL_H
@@ -0,0 +1,166 @@
1
+ /* Copyright (c) 2014, Google Inc.
2
+ *
3
+ * Permission to use, copy, modify, and/or distribute this software for any
4
+ * purpose with or without fee is hereby granted, provided that the above
5
+ * copyright notice and this permission notice appear in all copies.
6
+ *
7
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
10
+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
12
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
13
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
14
+
15
+ #include <openssl/pkcs7.h>
16
+
17
+ #include <openssl/bytestring.h>
18
+ #include <openssl/err.h>
19
+ #include <openssl/mem.h>
20
+ #include <openssl/pool.h>
21
+ #include <openssl/stack.h>
22
+
23
+ #include "internal.h"
24
+ #include "../bytestring/internal.h"
25
+
26
+
27
+ // 1.2.840.113549.1.7.1
28
+ static const uint8_t kPKCS7Data[] = {0x2a, 0x86, 0x48, 0x86, 0xf7,
29
+ 0x0d, 0x01, 0x07, 0x01};
30
+
31
+ // 1.2.840.113549.1.7.2
32
+ static const uint8_t kPKCS7SignedData[] = {0x2a, 0x86, 0x48, 0x86, 0xf7,
33
+ 0x0d, 0x01, 0x07, 0x02};
34
+
35
+ // pkcs7_parse_header reads the non-certificate/non-CRL prefix of a PKCS#7
36
+ // SignedData blob from |cbs| and sets |*out| to point to the rest of the
37
+ // input. If the input is in BER format, then |*der_bytes| will be set to a
38
+ // pointer that needs to be freed by the caller once they have finished
39
+ // processing |*out| (which will be pointing into |*der_bytes|).
40
+ //
41
+ // It returns one on success or zero on error. On error, |*der_bytes| is
42
+ // NULL.
43
+ int pkcs7_parse_header(uint8_t **der_bytes, CBS *out, CBS *cbs) {
44
+ size_t der_len;
45
+ CBS in, content_info, content_type, wrapped_signed_data, signed_data;
46
+ uint64_t version;
47
+
48
+ // The input may be in BER format.
49
+ *der_bytes = NULL;
50
+ if (!CBS_asn1_ber_to_der(cbs, der_bytes, &der_len)) {
51
+ return 0;
52
+ }
53
+ if (*der_bytes != NULL) {
54
+ CBS_init(&in, *der_bytes, der_len);
55
+ } else {
56
+ CBS_init(&in, CBS_data(cbs), CBS_len(cbs));
57
+ }
58
+
59
+ // See https://tools.ietf.org/html/rfc2315#section-7
60
+ if (!CBS_get_asn1(&in, &content_info, CBS_ASN1_SEQUENCE) ||
61
+ !CBS_get_asn1(&content_info, &content_type, CBS_ASN1_OBJECT)) {
62
+ goto err;
63
+ }
64
+
65
+ if (!CBS_mem_equal(&content_type, kPKCS7SignedData,
66
+ sizeof(kPKCS7SignedData))) {
67
+ OPENSSL_PUT_ERROR(PKCS7, PKCS7_R_NOT_PKCS7_SIGNED_DATA);
68
+ goto err;
69
+ }
70
+
71
+ // See https://tools.ietf.org/html/rfc2315#section-9.1
72
+ if (!CBS_get_asn1(&content_info, &wrapped_signed_data,
73
+ CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 0) ||
74
+ !CBS_get_asn1(&wrapped_signed_data, &signed_data, CBS_ASN1_SEQUENCE) ||
75
+ !CBS_get_asn1_uint64(&signed_data, &version) ||
76
+ !CBS_get_asn1(&signed_data, NULL /* digests */, CBS_ASN1_SET) ||
77
+ !CBS_get_asn1(&signed_data, NULL /* content */, CBS_ASN1_SEQUENCE)) {
78
+ goto err;
79
+ }
80
+
81
+ if (version < 1) {
82
+ OPENSSL_PUT_ERROR(PKCS7, PKCS7_R_BAD_PKCS7_VERSION);
83
+ goto err;
84
+ }
85
+
86
+ CBS_init(out, CBS_data(&signed_data), CBS_len(&signed_data));
87
+ return 1;
88
+
89
+ err:
90
+ OPENSSL_free(*der_bytes);
91
+ *der_bytes = NULL;
92
+ return 0;
93
+ }
94
+
95
+ int PKCS7_get_raw_certificates(STACK_OF(CRYPTO_BUFFER) *out_certs, CBS *cbs,
96
+ CRYPTO_BUFFER_POOL *pool) {
97
+ CBS signed_data, certificates;
98
+ uint8_t *der_bytes = NULL;
99
+ int ret = 0;
100
+ const size_t initial_certs_len = sk_CRYPTO_BUFFER_num(out_certs);
101
+
102
+ if (!pkcs7_parse_header(&der_bytes, &signed_data, cbs)) {
103
+ return 0;
104
+ }
105
+
106
+ // See https://tools.ietf.org/html/rfc2315#section-9.1
107
+ if (!CBS_get_asn1(&signed_data, &certificates,
108
+ CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 0)) {
109
+ OPENSSL_PUT_ERROR(PKCS7, PKCS7_R_NO_CERTIFICATES_INCLUDED);
110
+ goto err;
111
+ }
112
+
113
+ while (CBS_len(&certificates) > 0) {
114
+ CBS cert;
115
+ if (!CBS_get_asn1_element(&certificates, &cert, CBS_ASN1_SEQUENCE)) {
116
+ goto err;
117
+ }
118
+
119
+ CRYPTO_BUFFER *buf = CRYPTO_BUFFER_new_from_CBS(&cert, pool);
120
+ if (buf == NULL ||
121
+ !sk_CRYPTO_BUFFER_push(out_certs, buf)) {
122
+ CRYPTO_BUFFER_free(buf);
123
+ goto err;
124
+ }
125
+ }
126
+
127
+ ret = 1;
128
+
129
+ err:
130
+ OPENSSL_free(der_bytes);
131
+
132
+ if (!ret) {
133
+ while (sk_CRYPTO_BUFFER_num(out_certs) != initial_certs_len) {
134
+ CRYPTO_BUFFER *buf = sk_CRYPTO_BUFFER_pop(out_certs);
135
+ CRYPTO_BUFFER_free(buf);
136
+ }
137
+ }
138
+
139
+ return ret;
140
+ }
141
+
142
+ int pkcs7_bundle(CBB *out, int (*cb)(CBB *out, const void *arg),
143
+ const void *arg) {
144
+ CBB outer_seq, oid, wrapped_seq, seq, version_bytes, digest_algos_set,
145
+ content_info;
146
+
147
+ // See https://tools.ietf.org/html/rfc2315#section-7
148
+ if (!CBB_add_asn1(out, &outer_seq, CBS_ASN1_SEQUENCE) ||
149
+ !CBB_add_asn1(&outer_seq, &oid, CBS_ASN1_OBJECT) ||
150
+ !CBB_add_bytes(&oid, kPKCS7SignedData, sizeof(kPKCS7SignedData)) ||
151
+ !CBB_add_asn1(&outer_seq, &wrapped_seq,
152
+ CBS_ASN1_CONTEXT_SPECIFIC | CBS_ASN1_CONSTRUCTED | 0) ||
153
+ // See https://tools.ietf.org/html/rfc2315#section-9.1
154
+ !CBB_add_asn1(&wrapped_seq, &seq, CBS_ASN1_SEQUENCE) ||
155
+ !CBB_add_asn1(&seq, &version_bytes, CBS_ASN1_INTEGER) ||
156
+ !CBB_add_u8(&version_bytes, 1) ||
157
+ !CBB_add_asn1(&seq, &digest_algos_set, CBS_ASN1_SET) ||
158
+ !CBB_add_asn1(&seq, &content_info, CBS_ASN1_SEQUENCE) ||
159
+ !CBB_add_asn1(&content_info, &oid, CBS_ASN1_OBJECT) ||
160
+ !CBB_add_bytes(&oid, kPKCS7Data, sizeof(kPKCS7Data)) ||
161
+ !cb(&seq, arg)) {
162
+ return 0;
163
+ }
164
+
165
+ return CBB_flush(out);
166
+ }