grpc 1.9.1 → 1.10.0.pre1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (637) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +2654 -953
  3. data/etc/roots.pem +282 -683
  4. data/include/grpc/compression.h +9 -26
  5. data/include/grpc/grpc.h +10 -24
  6. data/include/grpc/grpc_security.h +7 -1
  7. data/include/grpc/impl/codegen/compression_types.h +5 -62
  8. data/include/grpc/impl/codegen/grpc_types.h +10 -6
  9. data/include/grpc/module.modulemap +1 -10
  10. data/include/grpc/support/alloc.h +3 -2
  11. data/include/grpc/support/log.h +1 -2
  12. data/{src/core/lib/gpr/thd_internal.h → include/grpc/support/thd_id.h} +23 -9
  13. data/src/boringssl/err_data.c +550 -496
  14. data/src/core/ext/census/grpc_context.cc +2 -1
  15. data/src/core/ext/filters/client_channel/backup_poller.cc +5 -4
  16. data/src/core/ext/filters/client_channel/channel_connectivity.cc +7 -7
  17. data/src/core/ext/filters/client_channel/client_channel.cc +162 -172
  18. data/src/core/ext/filters/client_channel/client_channel_factory.cc +4 -2
  19. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +10 -10
  20. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +18 -14
  21. data/src/core/ext/filters/client_channel/http_proxy.cc +3 -1
  22. data/src/core/ext/filters/client_channel/lb_policy.cc +21 -105
  23. data/src/core/ext/filters/client_channel/lb_policy.h +166 -170
  24. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +41 -36
  25. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1452 -1459
  26. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -1
  27. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +3 -2
  28. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +7 -8
  29. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +27 -27
  30. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +279 -304
  31. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +358 -330
  32. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +30 -41
  33. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +7 -14
  34. data/src/core/ext/filters/client_channel/lb_policy_factory.cc +8 -21
  35. data/src/core/ext/filters/client_channel/lb_policy_factory.h +23 -27
  36. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +58 -33
  37. data/src/core/ext/filters/client_channel/lb_policy_registry.h +25 -12
  38. data/src/core/ext/filters/client_channel/parse_address.cc +10 -8
  39. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -2
  40. data/src/core/ext/filters/client_channel/resolver.cc +6 -52
  41. data/src/core/ext/filters/client_channel/resolver.h +98 -55
  42. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +266 -237
  43. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
  44. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +31 -27
  45. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +244 -207
  46. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +161 -148
  47. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +47 -31
  48. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +126 -126
  49. data/src/core/ext/filters/client_channel/resolver_factory.h +33 -32
  50. data/src/core/ext/filters/client_channel/resolver_registry.cc +110 -90
  51. data/src/core/ext/filters/client_channel/resolver_registry.h +49 -36
  52. data/src/core/ext/filters/client_channel/retry_throttle.cc +29 -22
  53. data/src/core/ext/filters/client_channel/subchannel.cc +173 -173
  54. data/src/core/ext/filters/client_channel/subchannel.h +38 -45
  55. data/src/core/ext/filters/client_channel/subchannel_index.cc +44 -40
  56. data/src/core/ext/filters/client_channel/uri_parser.cc +3 -3
  57. data/src/core/ext/filters/deadline/deadline_filter.cc +27 -18
  58. data/src/core/ext/filters/http/client/http_client_filter.cc +26 -23
  59. data/src/core/ext/filters/http/http_filters_plugin.cc +3 -2
  60. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +78 -110
  61. data/src/core/ext/filters/http/server/http_server_filter.cc +29 -26
  62. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +9 -11
  63. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +2 -1
  64. data/src/core/ext/filters/max_age/max_age_filter.cc +14 -14
  65. data/src/core/ext/filters/message_size/message_size_filter.cc +20 -18
  66. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -4
  67. data/src/core/ext/filters/workarounds/workaround_utils.cc +4 -4
  68. data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
  69. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +10 -10
  70. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +4 -4
  71. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +11 -12
  72. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +16 -13
  73. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +36 -9
  74. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +3 -0
  75. data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +17 -14
  76. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -145
  77. data/src/core/ext/transport/chttp2/transport/flow_control.cc +16 -14
  78. data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -7
  79. data/src/core/ext/transport/chttp2/transport/frame_data.cc +35 -33
  80. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +27 -25
  81. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +12 -12
  82. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +16 -15
  83. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -19
  84. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +11 -11
  85. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +23 -22
  86. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +35 -35
  87. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +10 -7
  88. data/src/core/ext/transport/chttp2/transport/http2_settings.cc +2 -2
  89. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
  90. data/src/core/ext/transport/chttp2/transport/internal.h +1 -1
  91. data/src/core/ext/transport/chttp2/transport/parsing.cc +35 -39
  92. data/src/core/ext/transport/chttp2/transport/stream_map.cc +8 -7
  93. data/src/core/ext/transport/chttp2/transport/varint.cc +5 -5
  94. data/src/core/ext/transport/chttp2/transport/writing.cc +18 -18
  95. data/src/core/ext/transport/inproc/inproc_transport.cc +43 -23
  96. data/src/core/lib/{gpr → avl}/avl.cc +61 -57
  97. data/{include/grpc/support → src/core/lib/avl}/avl.h +25 -35
  98. data/src/core/lib/backoff/backoff.cc +6 -5
  99. data/src/core/lib/channel/channel_args.cc +23 -109
  100. data/src/core/lib/channel/channel_args.h +5 -31
  101. data/src/core/lib/channel/channel_stack.cc +11 -8
  102. data/src/core/lib/channel/channel_stack_builder.cc +10 -7
  103. data/src/core/lib/channel/connected_channel.cc +18 -17
  104. data/src/core/lib/channel/handshaker.cc +8 -8
  105. data/src/core/lib/channel/handshaker_registry.cc +3 -2
  106. data/src/core/lib/compression/algorithm_metadata.h +13 -6
  107. data/src/core/lib/compression/compression.cc +72 -183
  108. data/src/core/lib/compression/compression_internal.cc +274 -0
  109. data/src/core/lib/compression/compression_internal.h +86 -0
  110. data/src/core/lib/compression/message_compress.cc +15 -15
  111. data/src/core/lib/compression/message_compress.h +4 -3
  112. data/src/core/lib/compression/stream_compression_gzip.cc +8 -8
  113. data/src/core/lib/compression/stream_compression_identity.cc +1 -1
  114. data/src/core/lib/debug/stats.cc +10 -8
  115. data/src/core/lib/debug/stats_data.cc +2 -1
  116. data/src/core/lib/debug/trace.cc +3 -3
  117. data/src/core/lib/gpr/alloc.cc +7 -11
  118. data/src/core/lib/gpr/arena.cc +34 -12
  119. data/src/core/lib/gpr/atm.cc +2 -1
  120. data/src/core/lib/gpr/cpu_linux.cc +3 -3
  121. data/src/core/lib/gpr/cpu_posix.cc +2 -1
  122. data/src/core/lib/gpr/env.h +1 -1
  123. data/src/core/lib/gpr/env_linux.cc +1 -1
  124. data/src/core/lib/gpr/env_windows.cc +4 -4
  125. data/src/core/lib/gpr/fork.cc +16 -2
  126. data/src/core/lib/gpr/host_port.cc +5 -4
  127. data/{include/grpc/support → src/core/lib/gpr}/host_port.h +5 -13
  128. data/src/core/lib/gpr/log.cc +5 -4
  129. data/src/core/lib/gpr/log_linux.cc +1 -1
  130. data/src/core/lib/gpr/mpscq.cc +1 -0
  131. data/src/core/lib/gpr/murmur_hash.cc +4 -4
  132. data/src/core/lib/gpr/string.cc +19 -16
  133. data/src/core/lib/gpr/string_posix.cc +3 -3
  134. data/src/core/lib/gpr/sync_posix.cc +5 -9
  135. data/src/core/lib/gpr/thd.cc +3 -3
  136. data/{include/grpc/support → src/core/lib/gpr}/thd.h +20 -28
  137. data/src/core/lib/gpr/thd_posix.cc +6 -4
  138. data/src/core/lib/gpr/thd_windows.cc +3 -1
  139. data/src/core/lib/gpr/time.cc +6 -4
  140. data/src/core/lib/gpr/time_posix.cc +2 -2
  141. data/{include/grpc/support → src/core/lib/gpr}/tls.h +6 -6
  142. data/{include/grpc/support → src/core/lib/gpr}/tls_gcc.h +3 -3
  143. data/{include/grpc/support → src/core/lib/gpr}/tls_msvc.h +3 -3
  144. data/src/core/lib/gpr/tls_pthread.cc +1 -1
  145. data/{include/grpc/support → src/core/lib/gpr}/tls_pthread.h +3 -3
  146. data/{include/grpc/support → src/core/lib/gpr}/useful.h +3 -3
  147. data/src/core/lib/{gpr++ → gprpp}/abstract.h +3 -3
  148. data/src/core/lib/{gpr++ → gprpp}/atomic.h +5 -5
  149. data/src/core/lib/{gpr++ → gprpp}/atomic_with_atm.h +3 -3
  150. data/src/core/lib/{gpr++ → gprpp}/atomic_with_std.h +3 -3
  151. data/src/core/lib/{gpr++ → gprpp}/debug_location.h +3 -3
  152. data/src/core/lib/{gpr++ → gprpp}/inlined_vector.h +44 -22
  153. data/src/core/lib/{gpr++ → gprpp}/manual_constructor.h +2 -2
  154. data/src/core/lib/{gpr++ → gprpp}/memory.h +14 -5
  155. data/src/core/lib/{gpr++ → gprpp}/orphanable.h +39 -14
  156. data/src/core/lib/{gpr++ → gprpp}/ref_counted.h +42 -10
  157. data/src/core/lib/{gpr++ → gprpp}/ref_counted_ptr.h +18 -8
  158. data/src/core/lib/http/format_request.cc +3 -3
  159. data/src/core/lib/http/httpcli.cc +6 -7
  160. data/src/core/lib/http/httpcli_security_connector.cc +10 -10
  161. data/src/core/lib/http/parser.cc +16 -12
  162. data/src/core/lib/iomgr/call_combiner.cc +12 -13
  163. data/src/core/lib/iomgr/closure.h +4 -6
  164. data/src/core/lib/iomgr/combiner.cc +10 -21
  165. data/src/core/lib/iomgr/error.cc +50 -55
  166. data/src/core/lib/iomgr/ev_epoll1_linux.cc +41 -52
  167. data/src/core/lib/iomgr/ev_epollex_linux.cc +80 -28
  168. data/src/core/lib/iomgr/ev_epollsig_linux.cc +23 -30
  169. data/src/core/lib/iomgr/ev_poll_posix.cc +52 -46
  170. data/src/core/lib/iomgr/ev_posix.cc +47 -6
  171. data/src/core/lib/iomgr/exec_ctx.cc +10 -10
  172. data/src/core/lib/iomgr/exec_ctx.h +1 -1
  173. data/src/core/lib/iomgr/executor.cc +16 -13
  174. data/src/core/lib/iomgr/fork_posix.cc +1 -3
  175. data/src/core/lib/iomgr/gethostname_host_name_max.cc +1 -1
  176. data/src/core/lib/iomgr/iocp_windows.cc +1 -2
  177. data/src/core/lib/iomgr/iomgr.cc +2 -2
  178. data/src/core/lib/iomgr/iomgr_uv.cc +2 -0
  179. data/src/core/lib/iomgr/iomgr_uv.h +1 -1
  180. data/src/core/lib/iomgr/is_epollexclusive_available.cc +5 -4
  181. data/src/core/lib/iomgr/load_file.cc +3 -3
  182. data/src/core/lib/iomgr/pollset_windows.cc +1 -1
  183. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -9
  184. data/src/core/lib/iomgr/resolve_address_uv.cc +2 -2
  185. data/src/core/lib/iomgr/resolve_address_windows.cc +3 -2
  186. data/src/core/lib/iomgr/resource_quota.cc +36 -34
  187. data/src/core/lib/iomgr/sockaddr_utils.cc +39 -23
  188. data/src/core/lib/iomgr/socket_factory_posix.cc +5 -5
  189. data/src/core/lib/iomgr/socket_mutator.cc +7 -7
  190. data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -4
  191. data/src/core/lib/iomgr/socket_utils_linux.cc +3 -2
  192. data/src/core/lib/iomgr/tcp_client_posix.cc +7 -6
  193. data/src/core/lib/iomgr/tcp_client_windows.cc +0 -1
  194. data/src/core/lib/iomgr/tcp_posix.cc +47 -55
  195. data/src/core/lib/iomgr/tcp_server_posix.cc +12 -10
  196. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -5
  197. data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -3
  198. data/src/core/lib/iomgr/tcp_windows.cc +1 -1
  199. data/src/core/lib/iomgr/timer_generic.cc +16 -14
  200. data/src/core/lib/iomgr/timer_heap.cc +8 -7
  201. data/src/core/lib/iomgr/timer_manager.cc +4 -3
  202. data/src/core/lib/iomgr/udp_server.cc +24 -16
  203. data/src/core/lib/iomgr/unix_sockets_posix.cc +15 -10
  204. data/src/core/lib/iomgr/wakeup_fd_cv.cc +6 -5
  205. data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +1 -2
  206. data/src/core/lib/json/json.cc +1 -1
  207. data/src/core/lib/json/json_reader.cc +8 -6
  208. data/src/core/lib/json/json_string.cc +19 -18
  209. data/src/core/lib/json/json_writer.cc +10 -8
  210. data/src/core/lib/profiling/basic_timers.cc +1 -1
  211. data/src/core/lib/profiling/timers.h +3 -20
  212. data/src/core/lib/security/context/security_context.cc +16 -14
  213. data/src/core/lib/security/credentials/composite/composite_credentials.cc +17 -14
  214. data/src/core/lib/security/credentials/credentials.cc +9 -8
  215. data/src/core/lib/security/credentials/credentials.h +1 -1
  216. data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
  217. data/src/core/lib/security/credentials/fake/fake_credentials.cc +12 -13
  218. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +7 -4
  219. data/src/core/lib/security/credentials/iam/iam_credentials.cc +5 -3
  220. data/src/core/lib/security/credentials/jwt/json_token.cc +4 -3
  221. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -7
  222. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +21 -18
  223. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +23 -18
  224. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +11 -7
  225. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +22 -21
  226. data/src/core/lib/security/{transport → security_connector}/security_connector.cc +46 -43
  227. data/src/core/lib/security/{transport → security_connector}/security_connector.h +3 -3
  228. data/src/core/lib/security/transport/client_auth_filter.cc +32 -34
  229. data/src/core/lib/security/transport/lb_targets_info.cc +7 -5
  230. data/src/core/lib/security/transport/secure_endpoint.cc +21 -21
  231. data/src/core/lib/security/transport/security_handshaker.cc +19 -18
  232. data/src/core/lib/security/transport/security_handshaker.h +1 -1
  233. data/src/core/lib/security/transport/server_auth_filter.cc +21 -21
  234. data/src/core/lib/slice/b64.cc +19 -16
  235. data/src/core/lib/slice/percent_encoding.cc +5 -5
  236. data/src/core/lib/slice/slice.cc +35 -33
  237. data/src/core/lib/slice/slice_buffer.cc +16 -14
  238. data/src/core/lib/slice/slice_hash_table.cc +3 -2
  239. data/src/core/lib/slice/slice_intern.cc +21 -25
  240. data/src/core/lib/slice/slice_string_helpers.cc +45 -9
  241. data/src/core/lib/slice/slice_string_helpers.h +6 -0
  242. data/src/core/lib/surface/byte_buffer.cc +2 -2
  243. data/src/core/lib/surface/byte_buffer_reader.cc +6 -3
  244. data/src/core/lib/surface/call.cc +171 -260
  245. data/src/core/lib/surface/call_test_only.h +1 -13
  246. data/src/core/lib/surface/channel.cc +20 -43
  247. data/src/core/lib/surface/channel_init.cc +7 -7
  248. data/src/core/lib/surface/channel_ping.cc +2 -2
  249. data/src/core/lib/surface/completion_queue.cc +69 -75
  250. data/src/core/lib/surface/init.cc +4 -5
  251. data/src/core/lib/surface/init_secure.cc +1 -1
  252. data/src/core/lib/surface/lame_client.cc +1 -1
  253. data/src/core/lib/surface/server.cc +64 -59
  254. data/src/core/lib/surface/version.cc +2 -2
  255. data/src/core/lib/transport/bdp_estimator.cc +6 -5
  256. data/src/core/lib/transport/byte_stream.cc +23 -14
  257. data/src/core/lib/transport/byte_stream.h +1 -1
  258. data/src/core/lib/transport/connectivity_state.cc +9 -13
  259. data/src/core/lib/transport/error_utils.cc +10 -7
  260. data/src/core/lib/transport/metadata.cc +27 -26
  261. data/src/core/lib/transport/metadata.h +1 -1
  262. data/src/core/lib/transport/pid_controller.cc +2 -1
  263. data/src/core/lib/transport/service_config.cc +5 -5
  264. data/src/core/lib/transport/static_metadata.cc +225 -222
  265. data/src/core/lib/transport/static_metadata.h +77 -76
  266. data/src/core/lib/transport/timeout_encoding.cc +3 -2
  267. data/src/core/lib/transport/transport.cc +6 -5
  268. data/src/core/lib/transport/transport_op_string.cc +0 -1
  269. data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -4
  270. data/src/core/tsi/alts_transport_security.cc +61 -0
  271. data/src/core/tsi/{gts_transport_security.h → alts_transport_security.h} +16 -8
  272. data/src/core/tsi/fake_transport_security.cc +59 -43
  273. data/src/core/tsi/ssl_transport_security.cc +122 -107
  274. data/src/core/tsi/transport_security.cc +3 -3
  275. data/src/core/tsi/transport_security_adapter.cc +16 -10
  276. data/src/ruby/bin/apis/pubsub_demo.rb +1 -1
  277. data/src/ruby/ext/grpc/rb_channel.c +3 -4
  278. data/src/ruby/ext/grpc/rb_compression_options.c +13 -3
  279. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -76
  280. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +8 -120
  281. data/src/ruby/ext/grpc/rb_server.c +52 -28
  282. data/src/ruby/lib/grpc/generic/rpc_server.rb +7 -4
  283. data/src/ruby/lib/grpc/version.rb +1 -1
  284. data/src/ruby/pb/test/client.rb +1 -1
  285. data/src/ruby/pb/test/server.rb +1 -1
  286. data/src/ruby/spec/client_server_spec.rb +4 -2
  287. data/src/ruby/spec/generic/active_call_spec.rb +2 -1
  288. data/src/ruby/spec/generic/client_stub_spec.rb +32 -8
  289. data/src/ruby/spec/server_spec.rb +26 -7
  290. data/third_party/boringssl/crypto/asn1/a_bitstr.c +7 -2
  291. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +15 -0
  292. data/third_party/boringssl/crypto/asn1/a_gentm.c +1 -1
  293. data/third_party/boringssl/crypto/asn1/a_print.c +0 -28
  294. data/third_party/boringssl/crypto/asn1/a_strnid.c +3 -0
  295. data/third_party/boringssl/crypto/asn1/a_time.c +17 -9
  296. data/third_party/boringssl/crypto/asn1/a_utctm.c +1 -1
  297. data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -49
  298. data/third_party/boringssl/crypto/asn1/asn1_locl.h +1 -1
  299. data/third_party/boringssl/crypto/asn1/tasn_dec.c +9 -9
  300. data/third_party/boringssl/crypto/asn1/tasn_enc.c +0 -6
  301. data/third_party/boringssl/crypto/asn1/time_support.c +5 -5
  302. data/third_party/boringssl/crypto/base64/base64.c +65 -43
  303. data/third_party/boringssl/crypto/bio/bio.c +134 -110
  304. data/third_party/boringssl/crypto/bio/bio_mem.c +9 -9
  305. data/third_party/boringssl/crypto/bio/connect.c +17 -17
  306. data/third_party/boringssl/crypto/bio/fd.c +2 -1
  307. data/third_party/boringssl/crypto/bio/file.c +14 -14
  308. data/third_party/boringssl/crypto/bio/hexdump.c +15 -16
  309. data/third_party/boringssl/crypto/bio/internal.h +14 -14
  310. data/third_party/boringssl/crypto/bio/pair.c +45 -45
  311. data/third_party/boringssl/crypto/bio/printf.c +6 -10
  312. data/third_party/boringssl/crypto/{bn → bn_extra}/bn_asn1.c +9 -9
  313. data/third_party/boringssl/crypto/{bn → bn_extra}/convert.c +18 -223
  314. data/third_party/boringssl/crypto/buf/buf.c +20 -44
  315. data/third_party/boringssl/crypto/bytestring/ber.c +35 -35
  316. data/third_party/boringssl/crypto/bytestring/cbb.c +24 -24
  317. data/third_party/boringssl/crypto/bytestring/cbs.c +33 -37
  318. data/third_party/boringssl/crypto/bytestring/internal.h +38 -38
  319. data/third_party/boringssl/crypto/chacha/chacha.c +7 -7
  320. data/third_party/boringssl/crypto/{asn1/t_bitst.c → cipher_extra/cipher_extra.c} +49 -38
  321. data/third_party/boringssl/crypto/{cipher → cipher_extra}/derive_key.c +0 -2
  322. data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +281 -0
  323. data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +867 -0
  324. data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +326 -0
  325. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_null.c +0 -1
  326. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc2.c +22 -10
  327. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc4.c +0 -0
  328. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_ssl3.c +120 -64
  329. data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_tls.c +220 -141
  330. data/third_party/boringssl/crypto/{asn1/x_bignum.c → cipher_extra/internal.h} +61 -86
  331. data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +482 -0
  332. data/third_party/boringssl/crypto/cmac/cmac.c +20 -20
  333. data/third_party/boringssl/crypto/conf/conf.c +32 -20
  334. data/third_party/boringssl/crypto/conf/internal.h +3 -3
  335. data/third_party/boringssl/crypto/cpu-aarch64-linux.c +5 -5
  336. data/third_party/boringssl/crypto/cpu-arm-linux.c +44 -41
  337. data/third_party/boringssl/crypto/cpu-intel.c +68 -43
  338. data/third_party/boringssl/crypto/cpu-ppc64le.c +5 -7
  339. data/third_party/boringssl/crypto/crypto.c +54 -32
  340. data/third_party/boringssl/crypto/curve25519/curve25519.c +269 -269
  341. data/third_party/boringssl/crypto/curve25519/internal.h +28 -8
  342. data/third_party/boringssl/crypto/curve25519/spake25519.c +180 -106
  343. data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +9 -9
  344. data/third_party/boringssl/crypto/dh/check.c +33 -34
  345. data/third_party/boringssl/crypto/dh/dh.c +72 -36
  346. data/third_party/boringssl/crypto/dh/dh_asn1.c +1 -1
  347. data/third_party/boringssl/crypto/dh/params.c +1 -161
  348. data/third_party/boringssl/crypto/digest_extra/digest_extra.c +240 -0
  349. data/third_party/boringssl/crypto/dsa/dsa.c +127 -87
  350. data/third_party/boringssl/crypto/dsa/dsa_asn1.c +1 -1
  351. data/third_party/boringssl/crypto/{ec → ec_extra}/ec_asn1.c +83 -70
  352. data/third_party/boringssl/crypto/ecdh/ecdh.c +1 -1
  353. data/third_party/boringssl/crypto/{ecdsa → ecdsa_extra}/ecdsa_asn1.c +86 -31
  354. data/third_party/boringssl/crypto/engine/engine.c +6 -6
  355. data/third_party/boringssl/crypto/err/err.c +197 -106
  356. data/third_party/boringssl/crypto/err/internal.h +58 -0
  357. data/third_party/boringssl/crypto/evp/digestsign.c +86 -14
  358. data/third_party/boringssl/crypto/evp/evp.c +6 -11
  359. data/third_party/boringssl/crypto/evp/evp_asn1.c +17 -17
  360. data/third_party/boringssl/crypto/evp/evp_ctx.c +15 -11
  361. data/third_party/boringssl/crypto/evp/internal.h +66 -51
  362. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +11 -11
  363. data/third_party/boringssl/crypto/evp/p_ec.c +10 -8
  364. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +11 -12
  365. data/third_party/boringssl/crypto/evp/p_ed25519.c +71 -0
  366. data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +190 -0
  367. data/third_party/boringssl/crypto/evp/p_rsa.c +50 -95
  368. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +28 -18
  369. data/third_party/boringssl/crypto/evp/pbkdf.c +49 -56
  370. data/third_party/boringssl/crypto/evp/print.c +5 -36
  371. data/third_party/boringssl/crypto/evp/scrypt.c +209 -0
  372. data/third_party/boringssl/crypto/ex_data.c +15 -45
  373. data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +100 -0
  374. data/third_party/boringssl/crypto/fipsmodule/bcm.c +679 -0
  375. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/internal.h +40 -27
  376. data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/rsaz_exp.h +0 -0
  377. data/third_party/boringssl/crypto/{cipher → fipsmodule/cipher}/internal.h +34 -67
  378. data/third_party/boringssl/crypto/fipsmodule/delocate.h +88 -0
  379. data/third_party/boringssl/crypto/{des → fipsmodule/des}/internal.h +18 -4
  380. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/internal.h +18 -18
  381. data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/md32_common.h +58 -64
  382. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/internal.h +58 -52
  383. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64-table.h +11 -11
  384. data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64.h +32 -32
  385. data/third_party/boringssl/crypto/{rand/internal.h → fipsmodule/is_fips.c} +10 -15
  386. data/third_party/boringssl/crypto/{modes → fipsmodule/modes}/internal.h +112 -119
  387. data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +92 -0
  388. data/third_party/boringssl/crypto/{rsa → fipsmodule/rsa}/internal.h +36 -49
  389. data/third_party/boringssl/crypto/hkdf/hkdf.c +6 -6
  390. data/third_party/boringssl/crypto/internal.h +301 -233
  391. data/third_party/boringssl/crypto/lhash/lhash.c +26 -45
  392. data/third_party/boringssl/crypto/mem.c +76 -33
  393. data/third_party/boringssl/crypto/obj/obj.c +44 -28
  394. data/third_party/boringssl/crypto/obj/obj_dat.h +102 -34
  395. data/third_party/boringssl/crypto/obj/obj_xref.c +6 -6
  396. data/third_party/boringssl/crypto/pem/pem_info.c +3 -5
  397. data/third_party/boringssl/crypto/pem/pem_lib.c +1 -6
  398. data/third_party/boringssl/crypto/pem/pem_pk8.c +1 -0
  399. data/third_party/boringssl/crypto/pem/pem_pkey.c +1 -1
  400. data/third_party/boringssl/crypto/pem/pem_xaux.c +0 -2
  401. data/third_party/boringssl/crypto/pkcs7/internal.h +49 -0
  402. data/third_party/boringssl/crypto/pkcs7/pkcs7.c +166 -0
  403. data/third_party/boringssl/crypto/{x509/pkcs7.c → pkcs7/pkcs7_x509.c} +27 -147
  404. data/third_party/boringssl/crypto/pkcs8/internal.h +34 -16
  405. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +120 -39
  406. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +144 -857
  407. data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +789 -0
  408. data/third_party/boringssl/crypto/poly1305/internal.h +4 -3
  409. data/third_party/boringssl/crypto/poly1305/poly1305.c +14 -14
  410. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +11 -11
  411. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +41 -41
  412. data/third_party/boringssl/crypto/pool/internal.h +2 -2
  413. data/third_party/boringssl/crypto/pool/pool.c +15 -15
  414. data/third_party/boringssl/crypto/{rand → rand_extra}/deterministic.c +7 -7
  415. data/third_party/boringssl/crypto/rand_extra/forkunsafe.c +46 -0
  416. data/third_party/boringssl/crypto/{rand → rand_extra}/fuchsia.c +7 -7
  417. data/third_party/boringssl/crypto/rand_extra/rand_extra.c +70 -0
  418. data/third_party/boringssl/crypto/{rand → rand_extra}/windows.c +5 -5
  419. data/third_party/boringssl/crypto/refcount_c11.c +2 -2
  420. data/third_party/boringssl/crypto/refcount_lock.c +1 -1
  421. data/third_party/boringssl/crypto/{rsa → rsa_extra}/rsa_asn1.c +12 -120
  422. data/third_party/boringssl/crypto/stack/stack.c +13 -13
  423. data/third_party/boringssl/crypto/thread_none.c +1 -1
  424. data/third_party/boringssl/crypto/thread_pthread.c +1 -1
  425. data/third_party/boringssl/crypto/thread_win.c +40 -40
  426. data/third_party/boringssl/crypto/x509/a_sign.c +5 -12
  427. data/third_party/boringssl/crypto/x509/a_verify.c +6 -18
  428. data/third_party/boringssl/crypto/x509/algorithm.c +22 -6
  429. data/third_party/boringssl/crypto/x509/asn1_gen.c +30 -7
  430. data/third_party/boringssl/crypto/x509/by_dir.c +2 -2
  431. data/third_party/boringssl/crypto/x509/by_file.c +2 -2
  432. data/third_party/boringssl/crypto/x509/rsa_pss.c +5 -5
  433. data/third_party/boringssl/crypto/x509/t_x509.c +2 -1
  434. data/third_party/boringssl/crypto/x509/x509_def.c +5 -0
  435. data/third_party/boringssl/crypto/x509/x509_lu.c +35 -4
  436. data/third_party/boringssl/crypto/x509/x509_set.c +10 -0
  437. data/third_party/boringssl/crypto/x509/x509_vfy.c +20 -17
  438. data/third_party/boringssl/crypto/x509/x_name.c +13 -16
  439. data/third_party/boringssl/crypto/x509/x_x509.c +3 -3
  440. data/third_party/boringssl/crypto/x509/x_x509a.c +0 -7
  441. data/third_party/boringssl/crypto/x509v3/ext_dat.h +8 -0
  442. data/third_party/boringssl/crypto/x509v3/pcy_int.h +2 -2
  443. data/third_party/boringssl/crypto/x509v3/pcy_lib.c +0 -9
  444. data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -1
  445. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +25 -15
  446. data/third_party/boringssl/crypto/x509v3/v3_alt.c +21 -11
  447. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +9 -3
  448. data/third_party/boringssl/crypto/x509v3/v3_info.c +22 -14
  449. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +27 -11
  450. data/third_party/boringssl/crypto/x509v3/v3_pci.c +0 -33
  451. data/third_party/boringssl/crypto/x509v3/v3_utl.c +4 -4
  452. data/third_party/boringssl/include/openssl/aead.h +280 -191
  453. data/third_party/boringssl/include/openssl/aes.h +50 -50
  454. data/third_party/boringssl/include/openssl/arm_arch.h +12 -12
  455. data/third_party/boringssl/include/openssl/asn1.h +14 -77
  456. data/third_party/boringssl/include/openssl/asn1t.h +11 -15
  457. data/third_party/boringssl/include/openssl/base.h +78 -51
  458. data/third_party/boringssl/include/openssl/base64.h +68 -68
  459. data/third_party/boringssl/include/openssl/bio.h +472 -406
  460. data/third_party/boringssl/include/openssl/blowfish.h +1 -1
  461. data/third_party/boringssl/include/openssl/bn.h +454 -435
  462. data/third_party/boringssl/include/openssl/buf.h +27 -27
  463. data/third_party/boringssl/include/openssl/bytestring.h +282 -267
  464. data/third_party/boringssl/include/openssl/cast.h +2 -2
  465. data/third_party/boringssl/include/openssl/chacha.h +5 -5
  466. data/third_party/boringssl/include/openssl/cipher.h +209 -200
  467. data/third_party/boringssl/include/openssl/cmac.h +27 -27
  468. data/third_party/boringssl/include/openssl/conf.h +49 -46
  469. data/third_party/boringssl/include/openssl/cpu.h +60 -45
  470. data/third_party/boringssl/include/openssl/crypto.h +59 -35
  471. data/third_party/boringssl/include/openssl/curve25519.h +97 -92
  472. data/third_party/boringssl/include/openssl/des.h +25 -25
  473. data/third_party/boringssl/include/openssl/dh.h +98 -97
  474. data/third_party/boringssl/include/openssl/digest.h +143 -114
  475. data/third_party/boringssl/include/openssl/dsa.h +217 -202
  476. data/third_party/boringssl/include/openssl/ec.h +132 -131
  477. data/third_party/boringssl/include/openssl/ec_key.h +132 -128
  478. data/third_party/boringssl/include/openssl/ecdh.h +9 -9
  479. data/third_party/boringssl/include/openssl/ecdsa.h +66 -66
  480. data/third_party/boringssl/include/openssl/engine.h +38 -38
  481. data/third_party/boringssl/include/openssl/err.h +189 -219
  482. data/third_party/boringssl/include/openssl/evp.h +473 -397
  483. data/third_party/boringssl/include/openssl/ex_data.h +46 -56
  484. data/third_party/boringssl/include/openssl/hkdf.h +17 -17
  485. data/third_party/boringssl/include/openssl/hmac.h +55 -43
  486. data/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  487. data/third_party/boringssl/include/openssl/lhash.h +67 -67
  488. data/third_party/boringssl/include/openssl/lhash_macros.h +4 -4
  489. data/third_party/boringssl/include/openssl/md4.h +14 -14
  490. data/third_party/boringssl/include/openssl/md5.h +14 -14
  491. data/third_party/boringssl/include/openssl/mem.h +39 -33
  492. data/third_party/boringssl/include/openssl/nid.h +43 -0
  493. data/third_party/boringssl/include/openssl/obj.h +93 -87
  494. data/third_party/boringssl/include/openssl/opensslconf.h +8 -1
  495. data/third_party/boringssl/include/openssl/pem.h +2 -122
  496. data/third_party/boringssl/include/openssl/pkcs7.h +68 -2
  497. data/third_party/boringssl/include/openssl/pkcs8.h +81 -66
  498. data/third_party/boringssl/include/openssl/poly1305.h +11 -11
  499. data/third_party/boringssl/include/openssl/pool.h +29 -25
  500. data/third_party/boringssl/include/openssl/rand.h +48 -45
  501. data/third_party/boringssl/include/openssl/rc4.h +9 -9
  502. data/third_party/boringssl/include/openssl/ripemd.h +13 -13
  503. data/third_party/boringssl/include/openssl/rsa.h +371 -340
  504. data/third_party/boringssl/include/openssl/sha.h +71 -71
  505. data/third_party/boringssl/include/openssl/span.h +191 -0
  506. data/third_party/boringssl/include/openssl/ssl.h +2639 -2519
  507. data/third_party/boringssl/include/openssl/ssl3.h +39 -122
  508. data/third_party/boringssl/include/openssl/stack.h +355 -164
  509. data/third_party/boringssl/include/openssl/thread.h +43 -43
  510. data/third_party/boringssl/include/openssl/tls1.h +60 -63
  511. data/third_party/boringssl/include/openssl/type_check.h +10 -14
  512. data/third_party/boringssl/include/openssl/x509.h +41 -116
  513. data/third_party/boringssl/include/openssl/x509_vfy.h +17 -25
  514. data/third_party/boringssl/include/openssl/x509v3.h +27 -21
  515. data/third_party/boringssl/ssl/{bio_ssl.c → bio_ssl.cc} +9 -5
  516. data/third_party/boringssl/ssl/{custom_extensions.c → custom_extensions.cc} +19 -12
  517. data/third_party/boringssl/ssl/{d1_both.c → d1_both.cc} +224 -193
  518. data/third_party/boringssl/ssl/{d1_lib.c → d1_lib.cc} +86 -79
  519. data/third_party/boringssl/ssl/{d1_pkt.c → d1_pkt.cc} +55 -87
  520. data/third_party/boringssl/ssl/{d1_srtp.c → d1_srtp.cc} +12 -16
  521. data/third_party/boringssl/ssl/{dtls_method.c → dtls_method.cc} +33 -50
  522. data/third_party/boringssl/ssl/{dtls_record.c → dtls_record.cc} +76 -64
  523. data/third_party/boringssl/ssl/handshake.cc +547 -0
  524. data/third_party/boringssl/ssl/handshake_client.cc +1828 -0
  525. data/third_party/boringssl/ssl/handshake_server.cc +1672 -0
  526. data/third_party/boringssl/ssl/internal.h +2027 -1280
  527. data/third_party/boringssl/ssl/s3_both.cc +603 -0
  528. data/third_party/boringssl/ssl/{s3_lib.c → s3_lib.cc} +22 -10
  529. data/third_party/boringssl/ssl/{s3_pkt.c → s3_pkt.cc} +171 -75
  530. data/third_party/boringssl/ssl/ssl_aead_ctx.cc +415 -0
  531. data/third_party/boringssl/ssl/{ssl_asn1.c → ssl_asn1.cc} +257 -261
  532. data/third_party/boringssl/ssl/{ssl_buffer.c → ssl_buffer.cc} +81 -97
  533. data/third_party/boringssl/ssl/{ssl_cert.c → ssl_cert.cc} +304 -414
  534. data/third_party/boringssl/ssl/{ssl_cipher.c → ssl_cipher.cc} +427 -505
  535. data/third_party/boringssl/ssl/{ssl_file.c → ssl_file.cc} +24 -16
  536. data/third_party/boringssl/ssl/ssl_key_share.cc +245 -0
  537. data/third_party/boringssl/ssl/{ssl_lib.c → ssl_lib.cc} +665 -828
  538. data/third_party/boringssl/ssl/ssl_privkey.cc +518 -0
  539. data/third_party/boringssl/ssl/{ssl_session.c → ssl_session.cc} +596 -471
  540. data/third_party/boringssl/ssl/{ssl_stat.c → ssl_stat.cc} +5 -224
  541. data/third_party/boringssl/ssl/{ssl_transcript.c → ssl_transcript.cc} +117 -140
  542. data/third_party/boringssl/ssl/ssl_versions.cc +439 -0
  543. data/third_party/boringssl/ssl/{ssl_x509.c → ssl_x509.cc} +751 -267
  544. data/third_party/boringssl/ssl/{t1_enc.c → t1_enc.cc} +120 -161
  545. data/third_party/boringssl/ssl/{t1_lib.c → t1_lib.cc} +859 -966
  546. data/third_party/boringssl/ssl/{tls13_both.c → tls13_both.cc} +202 -284
  547. data/third_party/boringssl/ssl/tls13_client.cc +842 -0
  548. data/third_party/boringssl/ssl/{tls13_enc.c → tls13_enc.cc} +108 -90
  549. data/third_party/boringssl/ssl/tls13_server.cc +967 -0
  550. data/third_party/boringssl/ssl/{tls_method.c → tls_method.cc} +94 -73
  551. data/third_party/boringssl/ssl/tls_record.cc +675 -0
  552. metadata +117 -168
  553. data/include/grpc/support/cmdline.h +0 -88
  554. data/include/grpc/support/subprocess.h +0 -44
  555. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -29
  556. data/src/core/ext/filters/client_channel/resolver_factory.cc +0 -40
  557. data/src/core/lib/gpr/cmdline.cc +0 -330
  558. data/src/core/lib/gpr/subprocess_posix.cc +0 -99
  559. data/src/core/lib/gpr/subprocess_windows.cc +0 -126
  560. data/src/core/lib/surface/alarm.cc +0 -137
  561. data/src/core/lib/surface/alarm_internal.h +0 -40
  562. data/src/core/tsi/gts_transport_security.cc +0 -40
  563. data/third_party/boringssl/crypto/aes/aes.c +0 -1142
  564. data/third_party/boringssl/crypto/aes/internal.h +0 -87
  565. data/third_party/boringssl/crypto/aes/key_wrap.c +0 -138
  566. data/third_party/boringssl/crypto/aes/mode_wrappers.c +0 -112
  567. data/third_party/boringssl/crypto/asn1/x_long.c +0 -200
  568. data/third_party/boringssl/crypto/bn/add.c +0 -377
  569. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +0 -532
  570. data/third_party/boringssl/crypto/bn/bn.c +0 -365
  571. data/third_party/boringssl/crypto/bn/cmp.c +0 -239
  572. data/third_party/boringssl/crypto/bn/ctx.c +0 -313
  573. data/third_party/boringssl/crypto/bn/div.c +0 -728
  574. data/third_party/boringssl/crypto/bn/exponentiation.c +0 -1240
  575. data/third_party/boringssl/crypto/bn/gcd.c +0 -635
  576. data/third_party/boringssl/crypto/bn/generic.c +0 -707
  577. data/third_party/boringssl/crypto/bn/kronecker.c +0 -176
  578. data/third_party/boringssl/crypto/bn/montgomery.c +0 -409
  579. data/third_party/boringssl/crypto/bn/montgomery_inv.c +0 -207
  580. data/third_party/boringssl/crypto/bn/mul.c +0 -871
  581. data/third_party/boringssl/crypto/bn/prime.c +0 -861
  582. data/third_party/boringssl/crypto/bn/random.c +0 -343
  583. data/third_party/boringssl/crypto/bn/rsaz_exp.c +0 -254
  584. data/third_party/boringssl/crypto/bn/shift.c +0 -307
  585. data/third_party/boringssl/crypto/bn/sqrt.c +0 -506
  586. data/third_party/boringssl/crypto/cipher/aead.c +0 -156
  587. data/third_party/boringssl/crypto/cipher/cipher.c +0 -657
  588. data/third_party/boringssl/crypto/cipher/e_aes.c +0 -1771
  589. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +0 -276
  590. data/third_party/boringssl/crypto/cipher/e_des.c +0 -205
  591. data/third_party/boringssl/crypto/cipher/tls_cbc.c +0 -482
  592. data/third_party/boringssl/crypto/des/des.c +0 -771
  593. data/third_party/boringssl/crypto/digest/digest.c +0 -251
  594. data/third_party/boringssl/crypto/digest/digests.c +0 -358
  595. data/third_party/boringssl/crypto/ec/ec.c +0 -847
  596. data/third_party/boringssl/crypto/ec/ec_key.c +0 -479
  597. data/third_party/boringssl/crypto/ec/ec_montgomery.c +0 -303
  598. data/third_party/boringssl/crypto/ec/oct.c +0 -416
  599. data/third_party/boringssl/crypto/ec/p224-64.c +0 -1143
  600. data/third_party/boringssl/crypto/ec/p256-64.c +0 -1701
  601. data/third_party/boringssl/crypto/ec/p256-x86_64.c +0 -561
  602. data/third_party/boringssl/crypto/ec/simple.c +0 -1118
  603. data/third_party/boringssl/crypto/ec/util-64.c +0 -109
  604. data/third_party/boringssl/crypto/ec/wnaf.c +0 -458
  605. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +0 -479
  606. data/third_party/boringssl/crypto/hmac/hmac.c +0 -215
  607. data/third_party/boringssl/crypto/md4/md4.c +0 -236
  608. data/third_party/boringssl/crypto/md5/md5.c +0 -285
  609. data/third_party/boringssl/crypto/modes/cbc.c +0 -212
  610. data/third_party/boringssl/crypto/modes/cfb.c +0 -230
  611. data/third_party/boringssl/crypto/modes/ctr.c +0 -219
  612. data/third_party/boringssl/crypto/modes/gcm.c +0 -1071
  613. data/third_party/boringssl/crypto/modes/ofb.c +0 -95
  614. data/third_party/boringssl/crypto/modes/polyval.c +0 -94
  615. data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +0 -85
  616. data/third_party/boringssl/crypto/rand/rand.c +0 -244
  617. data/third_party/boringssl/crypto/rand/urandom.c +0 -335
  618. data/third_party/boringssl/crypto/rsa/blinding.c +0 -265
  619. data/third_party/boringssl/crypto/rsa/padding.c +0 -708
  620. data/third_party/boringssl/crypto/rsa/rsa.c +0 -830
  621. data/third_party/boringssl/crypto/rsa/rsa_impl.c +0 -1100
  622. data/third_party/boringssl/crypto/sha/sha1-altivec.c +0 -346
  623. data/third_party/boringssl/crypto/sha/sha1.c +0 -355
  624. data/third_party/boringssl/crypto/sha/sha256.c +0 -329
  625. data/third_party/boringssl/crypto/sha/sha512.c +0 -609
  626. data/third_party/boringssl/crypto/x509/x509type.c +0 -126
  627. data/third_party/boringssl/include/openssl/stack_macros.h +0 -3987
  628. data/third_party/boringssl/ssl/handshake_client.c +0 -1883
  629. data/third_party/boringssl/ssl/handshake_server.c +0 -1950
  630. data/third_party/boringssl/ssl/s3_both.c +0 -895
  631. data/third_party/boringssl/ssl/ssl_aead_ctx.c +0 -335
  632. data/third_party/boringssl/ssl/ssl_ecdh.c +0 -465
  633. data/third_party/boringssl/ssl/ssl_privkey.c +0 -683
  634. data/third_party/boringssl/ssl/ssl_privkey_cc.cc +0 -76
  635. data/third_party/boringssl/ssl/tls13_client.c +0 -712
  636. data/third_party/boringssl/ssl/tls13_server.c +0 -680
  637. data/third_party/boringssl/ssl/tls_record.c +0 -556
@@ -64,59 +64,59 @@ extern "C" {
64
64
  #endif
65
65
 
66
66
 
67
- /* Memory and string functions, see also mem.h. */
67
+ // Memory and string functions, see also mem.h.
68
68
 
69
69
 
70
- /* buf_mem_st (aka |BUF_MEM|) is a generic buffer object used by OpenSSL. */
70
+ // buf_mem_st (aka |BUF_MEM|) is a generic buffer object used by OpenSSL.
71
71
  struct buf_mem_st {
72
- size_t length; /* current number of bytes */
72
+ size_t length; // current number of bytes
73
73
  char *data;
74
- size_t max; /* size of buffer */
74
+ size_t max; // size of buffer
75
75
  };
76
76
 
77
- /* BUF_MEM_new creates a new BUF_MEM which has no allocated data buffer. */
77
+ // BUF_MEM_new creates a new BUF_MEM which has no allocated data buffer.
78
78
  OPENSSL_EXPORT BUF_MEM *BUF_MEM_new(void);
79
79
 
80
- /* BUF_MEM_free frees |buf->data| if needed and then frees |buf| itself. */
80
+ // BUF_MEM_free frees |buf->data| if needed and then frees |buf| itself.
81
81
  OPENSSL_EXPORT void BUF_MEM_free(BUF_MEM *buf);
82
82
 
83
- /* BUF_MEM_reserve ensures |buf| has capacity |cap| and allocates memory if
84
- * needed. It returns one on success and zero on error. */
83
+ // BUF_MEM_reserve ensures |buf| has capacity |cap| and allocates memory if
84
+ // needed. It returns one on success and zero on error.
85
85
  OPENSSL_EXPORT int BUF_MEM_reserve(BUF_MEM *buf, size_t cap);
86
86
 
87
- /* BUF_MEM_grow ensures that |buf| has length |len| and allocates memory if
88
- * needed. If the length of |buf| increased, the new bytes are filled with
89
- * zeros. It returns the length of |buf|, or zero if there's an error. */
87
+ // BUF_MEM_grow ensures that |buf| has length |len| and allocates memory if
88
+ // needed. If the length of |buf| increased, the new bytes are filled with
89
+ // zeros. It returns the length of |buf|, or zero if there's an error.
90
90
  OPENSSL_EXPORT size_t BUF_MEM_grow(BUF_MEM *buf, size_t len);
91
91
 
92
- /* BUF_MEM_grow_clean acts the same as |BUF_MEM_grow|, but clears the previous
93
- * contents of memory if reallocing. */
94
- OPENSSL_EXPORT size_t BUF_MEM_grow_clean(BUF_MEM *str, size_t len);
92
+ // BUF_MEM_grow_clean calls |BUF_MEM_grow|. BoringSSL always zeros memory
93
+ // allocated memory on free.
94
+ OPENSSL_EXPORT size_t BUF_MEM_grow_clean(BUF_MEM *buf, size_t len);
95
95
 
96
- /* BUF_strdup returns an allocated, duplicate of |str|. */
96
+ // BUF_strdup returns an allocated, duplicate of |str|.
97
97
  OPENSSL_EXPORT char *BUF_strdup(const char *str);
98
98
 
99
- /* BUF_strnlen returns the number of characters in |str|, excluding the NUL
100
- * byte, but at most |max_len|. This function never reads more than |max_len|
101
- * bytes from |str|. */
99
+ // BUF_strnlen returns the number of characters in |str|, excluding the NUL
100
+ // byte, but at most |max_len|. This function never reads more than |max_len|
101
+ // bytes from |str|.
102
102
  OPENSSL_EXPORT size_t BUF_strnlen(const char *str, size_t max_len);
103
103
 
104
- /* BUF_strndup returns an allocated, duplicate of |str|, which is, at most,
105
- * |size| bytes. The result is always NUL terminated. */
104
+ // BUF_strndup returns an allocated, duplicate of |str|, which is, at most,
105
+ // |size| bytes. The result is always NUL terminated.
106
106
  OPENSSL_EXPORT char *BUF_strndup(const char *str, size_t size);
107
107
 
108
- /* BUF_memdup returns an allocated, duplicate of |size| bytes from |data|. */
108
+ // BUF_memdup returns an allocated, duplicate of |size| bytes from |data|.
109
109
  OPENSSL_EXPORT void *BUF_memdup(const void *data, size_t size);
110
110
 
111
- /* BUF_strlcpy acts like strlcpy(3). */
111
+ // BUF_strlcpy acts like strlcpy(3).
112
112
  OPENSSL_EXPORT size_t BUF_strlcpy(char *dst, const char *src, size_t dst_size);
113
113
 
114
- /* BUF_strlcat acts like strlcat(3). */
115
- OPENSSL_EXPORT size_t BUF_strlcat(char *dst, const char *src, size_t size);
114
+ // BUF_strlcat acts like strlcat(3).
115
+ OPENSSL_EXPORT size_t BUF_strlcat(char *dst, const char *src, size_t dst_size);
116
116
 
117
117
 
118
118
  #if defined(__cplusplus)
119
- } /* extern C */
119
+ } // extern C
120
120
 
121
121
  extern "C++" {
122
122
 
@@ -126,8 +126,8 @@ BORINGSSL_MAKE_DELETER(BUF_MEM, BUF_MEM_free)
126
126
 
127
127
  } // namespace bssl
128
128
 
129
- } /* extern C++ */
129
+ } // extern C++
130
130
 
131
131
  #endif
132
132
 
133
- #endif /* OPENSSL_HEADER_BUFFER_H */
133
+ #endif // OPENSSL_HEADER_BUFFER_H
@@ -17,275 +17,290 @@
17
17
 
18
18
  #include <openssl/base.h>
19
19
 
20
+ #include <openssl/span.h>
21
+
20
22
  #if defined(__cplusplus)
21
23
  extern "C" {
22
24
  #endif
23
25
 
24
26
 
25
- /* Bytestrings are used for parsing and building TLS and ASN.1 messages.
26
- *
27
- * A "CBS" (CRYPTO ByteString) represents a string of bytes in memory and
28
- * provides utility functions for safely parsing length-prefixed structures
29
- * like TLS and ASN.1 from it.
30
- *
31
- * A "CBB" (CRYPTO ByteBuilder) is a memory buffer that grows as needed and
32
- * provides utility functions for building length-prefixed messages. */
27
+ // Bytestrings are used for parsing and building TLS and ASN.1 messages.
28
+ //
29
+ // A "CBS" (CRYPTO ByteString) represents a string of bytes in memory and
30
+ // provides utility functions for safely parsing length-prefixed structures
31
+ // like TLS and ASN.1 from it.
32
+ //
33
+ // A "CBB" (CRYPTO ByteBuilder) is a memory buffer that grows as needed and
34
+ // provides utility functions for building length-prefixed messages.
33
35
 
34
36
 
35
- /* CRYPTO ByteString */
37
+ // CRYPTO ByteString
36
38
 
37
39
  struct cbs_st {
38
40
  const uint8_t *data;
39
41
  size_t len;
42
+
43
+ #if !defined(BORINGSSL_NO_CXX)
44
+ // Allow implicit conversions to and from bssl::Span<const uint8_t>.
45
+ cbs_st(bssl::Span<const uint8_t> span)
46
+ : data(span.data()), len(span.size()) {}
47
+ operator bssl::Span<const uint8_t>() const {
48
+ return bssl::MakeConstSpan(data, len);
49
+ }
50
+
51
+ // Defining any constructors requires we explicitly default the others.
52
+ cbs_st() = default;
53
+ cbs_st(const cbs_st &) = default;
54
+ #endif
40
55
  };
41
56
 
42
- /* CBS_init sets |cbs| to point to |data|. It does not take ownership of
43
- * |data|. */
57
+ // CBS_init sets |cbs| to point to |data|. It does not take ownership of
58
+ // |data|.
44
59
  OPENSSL_EXPORT void CBS_init(CBS *cbs, const uint8_t *data, size_t len);
45
60
 
46
- /* CBS_skip advances |cbs| by |len| bytes. It returns one on success and zero
47
- * otherwise. */
61
+ // CBS_skip advances |cbs| by |len| bytes. It returns one on success and zero
62
+ // otherwise.
48
63
  OPENSSL_EXPORT int CBS_skip(CBS *cbs, size_t len);
49
64
 
50
- /* CBS_data returns a pointer to the contents of |cbs|. */
65
+ // CBS_data returns a pointer to the contents of |cbs|.
51
66
  OPENSSL_EXPORT const uint8_t *CBS_data(const CBS *cbs);
52
67
 
53
- /* CBS_len returns the number of bytes remaining in |cbs|. */
68
+ // CBS_len returns the number of bytes remaining in |cbs|.
54
69
  OPENSSL_EXPORT size_t CBS_len(const CBS *cbs);
55
70
 
56
- /* CBS_stow copies the current contents of |cbs| into |*out_ptr| and
57
- * |*out_len|. If |*out_ptr| is not NULL, the contents are freed with
58
- * OPENSSL_free. It returns one on success and zero on allocation failure. On
59
- * success, |*out_ptr| should be freed with OPENSSL_free. If |cbs| is empty,
60
- * |*out_ptr| will be NULL. */
71
+ // CBS_stow copies the current contents of |cbs| into |*out_ptr| and
72
+ // |*out_len|. If |*out_ptr| is not NULL, the contents are freed with
73
+ // OPENSSL_free. It returns one on success and zero on allocation failure. On
74
+ // success, |*out_ptr| should be freed with OPENSSL_free. If |cbs| is empty,
75
+ // |*out_ptr| will be NULL.
61
76
  OPENSSL_EXPORT int CBS_stow(const CBS *cbs, uint8_t **out_ptr, size_t *out_len);
62
77
 
63
- /* CBS_strdup copies the current contents of |cbs| into |*out_ptr| as a
64
- * NUL-terminated C string. If |*out_ptr| is not NULL, the contents are freed
65
- * with OPENSSL_free. It returns one on success and zero on allocation
66
- * failure. On success, |*out_ptr| should be freed with OPENSSL_free.
67
- *
68
- * NOTE: If |cbs| contains NUL bytes, the string will be truncated. Call
69
- * |CBS_contains_zero_byte(cbs)| to check for NUL bytes. */
78
+ // CBS_strdup copies the current contents of |cbs| into |*out_ptr| as a
79
+ // NUL-terminated C string. If |*out_ptr| is not NULL, the contents are freed
80
+ // with OPENSSL_free. It returns one on success and zero on allocation
81
+ // failure. On success, |*out_ptr| should be freed with OPENSSL_free.
82
+ //
83
+ // NOTE: If |cbs| contains NUL bytes, the string will be truncated. Call
84
+ // |CBS_contains_zero_byte(cbs)| to check for NUL bytes.
70
85
  OPENSSL_EXPORT int CBS_strdup(const CBS *cbs, char **out_ptr);
71
86
 
72
- /* CBS_contains_zero_byte returns one if the current contents of |cbs| contains
73
- * a NUL byte and zero otherwise. */
87
+ // CBS_contains_zero_byte returns one if the current contents of |cbs| contains
88
+ // a NUL byte and zero otherwise.
74
89
  OPENSSL_EXPORT int CBS_contains_zero_byte(const CBS *cbs);
75
90
 
76
- /* CBS_mem_equal compares the current contents of |cbs| with the |len| bytes
77
- * starting at |data|. If they're equal, it returns one, otherwise zero. If the
78
- * lengths match, it uses a constant-time comparison. */
91
+ // CBS_mem_equal compares the current contents of |cbs| with the |len| bytes
92
+ // starting at |data|. If they're equal, it returns one, otherwise zero. If the
93
+ // lengths match, it uses a constant-time comparison.
79
94
  OPENSSL_EXPORT int CBS_mem_equal(const CBS *cbs, const uint8_t *data,
80
95
  size_t len);
81
96
 
82
- /* CBS_get_u8 sets |*out| to the next uint8_t from |cbs| and advances |cbs|. It
83
- * returns one on success and zero on error. */
97
+ // CBS_get_u8 sets |*out| to the next uint8_t from |cbs| and advances |cbs|. It
98
+ // returns one on success and zero on error.
84
99
  OPENSSL_EXPORT int CBS_get_u8(CBS *cbs, uint8_t *out);
85
100
 
86
- /* CBS_get_u16 sets |*out| to the next, big-endian uint16_t from |cbs| and
87
- * advances |cbs|. It returns one on success and zero on error. */
101
+ // CBS_get_u16 sets |*out| to the next, big-endian uint16_t from |cbs| and
102
+ // advances |cbs|. It returns one on success and zero on error.
88
103
  OPENSSL_EXPORT int CBS_get_u16(CBS *cbs, uint16_t *out);
89
104
 
90
- /* CBS_get_u24 sets |*out| to the next, big-endian 24-bit value from |cbs| and
91
- * advances |cbs|. It returns one on success and zero on error. */
105
+ // CBS_get_u24 sets |*out| to the next, big-endian 24-bit value from |cbs| and
106
+ // advances |cbs|. It returns one on success and zero on error.
92
107
  OPENSSL_EXPORT int CBS_get_u24(CBS *cbs, uint32_t *out);
93
108
 
94
- /* CBS_get_u32 sets |*out| to the next, big-endian uint32_t value from |cbs|
95
- * and advances |cbs|. It returns one on success and zero on error. */
109
+ // CBS_get_u32 sets |*out| to the next, big-endian uint32_t value from |cbs|
110
+ // and advances |cbs|. It returns one on success and zero on error.
96
111
  OPENSSL_EXPORT int CBS_get_u32(CBS *cbs, uint32_t *out);
97
112
 
98
- /* CBS_get_last_u8 sets |*out| to the last uint8_t from |cbs| and shortens
99
- * |cbs|. It returns one on success and zero on error. */
113
+ // CBS_get_last_u8 sets |*out| to the last uint8_t from |cbs| and shortens
114
+ // |cbs|. It returns one on success and zero on error.
100
115
  OPENSSL_EXPORT int CBS_get_last_u8(CBS *cbs, uint8_t *out);
101
116
 
102
- /* CBS_get_bytes sets |*out| to the next |len| bytes from |cbs| and advances
103
- * |cbs|. It returns one on success and zero on error. */
117
+ // CBS_get_bytes sets |*out| to the next |len| bytes from |cbs| and advances
118
+ // |cbs|. It returns one on success and zero on error.
104
119
  OPENSSL_EXPORT int CBS_get_bytes(CBS *cbs, CBS *out, size_t len);
105
120
 
106
- /* CBS_copy_bytes copies the next |len| bytes from |cbs| to |out| and advances
107
- * |cbs|. It returns one on success and zero on error. */
121
+ // CBS_copy_bytes copies the next |len| bytes from |cbs| to |out| and advances
122
+ // |cbs|. It returns one on success and zero on error.
108
123
  OPENSSL_EXPORT int CBS_copy_bytes(CBS *cbs, uint8_t *out, size_t len);
109
124
 
110
- /* CBS_get_u8_length_prefixed sets |*out| to the contents of an 8-bit,
111
- * length-prefixed value from |cbs| and advances |cbs| over it. It returns one
112
- * on success and zero on error. */
125
+ // CBS_get_u8_length_prefixed sets |*out| to the contents of an 8-bit,
126
+ // length-prefixed value from |cbs| and advances |cbs| over it. It returns one
127
+ // on success and zero on error.
113
128
  OPENSSL_EXPORT int CBS_get_u8_length_prefixed(CBS *cbs, CBS *out);
114
129
 
115
- /* CBS_get_u16_length_prefixed sets |*out| to the contents of a 16-bit,
116
- * big-endian, length-prefixed value from |cbs| and advances |cbs| over it. It
117
- * returns one on success and zero on error. */
130
+ // CBS_get_u16_length_prefixed sets |*out| to the contents of a 16-bit,
131
+ // big-endian, length-prefixed value from |cbs| and advances |cbs| over it. It
132
+ // returns one on success and zero on error.
118
133
  OPENSSL_EXPORT int CBS_get_u16_length_prefixed(CBS *cbs, CBS *out);
119
134
 
120
- /* CBS_get_u24_length_prefixed sets |*out| to the contents of a 24-bit,
121
- * big-endian, length-prefixed value from |cbs| and advances |cbs| over it. It
122
- * returns one on success and zero on error. */
135
+ // CBS_get_u24_length_prefixed sets |*out| to the contents of a 24-bit,
136
+ // big-endian, length-prefixed value from |cbs| and advances |cbs| over it. It
137
+ // returns one on success and zero on error.
123
138
  OPENSSL_EXPORT int CBS_get_u24_length_prefixed(CBS *cbs, CBS *out);
124
139
 
125
140
 
126
- /* Parsing ASN.1 */
127
-
128
- /* The following values are tag numbers for UNIVERSAL elements. */
129
- #define CBS_ASN1_BOOLEAN 0x1
130
- #define CBS_ASN1_INTEGER 0x2
131
- #define CBS_ASN1_BITSTRING 0x3
132
- #define CBS_ASN1_OCTETSTRING 0x4
133
- #define CBS_ASN1_NULL 0x5
134
- #define CBS_ASN1_OBJECT 0x6
135
- #define CBS_ASN1_ENUMERATED 0xa
136
- #define CBS_ASN1_UTF8STRING 0xc
137
- #define CBS_ASN1_SEQUENCE (0x10 | CBS_ASN1_CONSTRUCTED)
138
- #define CBS_ASN1_SET (0x11 | CBS_ASN1_CONSTRUCTED)
139
- #define CBS_ASN1_NUMERICSTRING 0x12
140
- #define CBS_ASN1_PRINTABLESTRING 0x13
141
- #define CBS_ASN1_T16STRING 0x14
142
- #define CBS_ASN1_VIDEOTEXSTRING 0x15
143
- #define CBS_ASN1_IA5STRING 0x16
144
- #define CBS_ASN1_UTCTIME 0x17
145
- #define CBS_ASN1_GENERALIZEDTIME 0x18
146
- #define CBS_ASN1_GRAPHICSTRING 0x19
147
- #define CBS_ASN1_VISIBLESTRING 0x1a
148
- #define CBS_ASN1_GENERALSTRING 0x1b
149
- #define CBS_ASN1_UNIVERSALSTRING 0x1c
150
- #define CBS_ASN1_BMPSTRING 0x1e
151
-
152
- /* CBS_ASN1_CONSTRUCTED may be ORed into a tag to toggle the constructed
153
- * bit. |CBS| and |CBB| APIs consider the constructed bit to be part of the
154
- * tag. */
155
- #define CBS_ASN1_CONSTRUCTED 0x20
156
-
157
- /* The following values specify the constructed bit or tag class and may be ORed
158
- * into a tag number to produce the final tag. If none is used, the tag will be
159
- * UNIVERSAL.
160
- *
161
- * Note that although they currently match the DER serialization, consumers must
162
- * use these bits rather than make assumptions about the representation. This is
163
- * to allow for tag numbers beyond 31 in the future. */
164
- #define CBS_ASN1_APPLICATION 0x40
165
- #define CBS_ASN1_CONTEXT_SPECIFIC 0x80
166
- #define CBS_ASN1_PRIVATE 0xc0
167
-
168
- /* CBS_ASN1_CLASS_MASK may be ANDed with a tag to query its class. */
169
- #define CBS_ASN1_CLASS_MASK 0xc0
170
-
171
- /* CBS_ASN1_TAG_NUMBER_MASK may be ANDed with a tag to query its number. */
172
- #define CBS_ASN1_TAG_NUMBER_MASK 0x1f
173
-
174
- /* CBS_get_asn1 sets |*out| to the contents of DER-encoded, ASN.1 element (not
175
- * including tag and length bytes) and advances |cbs| over it. The ASN.1
176
- * element must match |tag_value|. It returns one on success and zero
177
- * on error.
178
- *
179
- * Tag numbers greater than 30 are not supported (i.e. short form only). */
141
+ // Parsing ASN.1
142
+
143
+ // The following values are tag numbers for UNIVERSAL elements.
144
+ #define CBS_ASN1_BOOLEAN 0x1u
145
+ #define CBS_ASN1_INTEGER 0x2u
146
+ #define CBS_ASN1_BITSTRING 0x3u
147
+ #define CBS_ASN1_OCTETSTRING 0x4u
148
+ #define CBS_ASN1_NULL 0x5u
149
+ #define CBS_ASN1_OBJECT 0x6u
150
+ #define CBS_ASN1_ENUMERATED 0xau
151
+ #define CBS_ASN1_UTF8STRING 0xcu
152
+ #define CBS_ASN1_SEQUENCE (0x10u | CBS_ASN1_CONSTRUCTED)
153
+ #define CBS_ASN1_SET (0x11u | CBS_ASN1_CONSTRUCTED)
154
+ #define CBS_ASN1_NUMERICSTRING 0x12u
155
+ #define CBS_ASN1_PRINTABLESTRING 0x13u
156
+ #define CBS_ASN1_T61STRING 0x14u
157
+ #define CBS_ASN1_VIDEOTEXSTRING 0x15u
158
+ #define CBS_ASN1_IA5STRING 0x16u
159
+ #define CBS_ASN1_UTCTIME 0x17u
160
+ #define CBS_ASN1_GENERALIZEDTIME 0x18u
161
+ #define CBS_ASN1_GRAPHICSTRING 0x19u
162
+ #define CBS_ASN1_VISIBLESTRING 0x1au
163
+ #define CBS_ASN1_GENERALSTRING 0x1bu
164
+ #define CBS_ASN1_UNIVERSALSTRING 0x1cu
165
+ #define CBS_ASN1_BMPSTRING 0x1eu
166
+
167
+ // CBS_ASN1_CONSTRUCTED may be ORed into a tag to toggle the constructed
168
+ // bit. |CBS| and |CBB| APIs consider the constructed bit to be part of the
169
+ // tag.
170
+ #define CBS_ASN1_CONSTRUCTED 0x20u
171
+
172
+ // The following values specify the constructed bit or tag class and may be ORed
173
+ // into a tag number to produce the final tag. If none is used, the tag will be
174
+ // UNIVERSAL.
175
+ //
176
+ // Note that although they currently match the DER serialization, consumers must
177
+ // use these bits rather than make assumptions about the representation. This is
178
+ // to allow for tag numbers beyond 31 in the future.
179
+ #define CBS_ASN1_APPLICATION 0x40u
180
+ #define CBS_ASN1_CONTEXT_SPECIFIC 0x80u
181
+ #define CBS_ASN1_PRIVATE 0xc0u
182
+
183
+ // CBS_ASN1_CLASS_MASK may be ANDed with a tag to query its class.
184
+ #define CBS_ASN1_CLASS_MASK 0xc0u
185
+
186
+ // CBS_ASN1_TAG_NUMBER_MASK may be ANDed with a tag to query its number.
187
+ #define CBS_ASN1_TAG_NUMBER_MASK 0x1fu
188
+
189
+ // CBS_get_asn1 sets |*out| to the contents of DER-encoded, ASN.1 element (not
190
+ // including tag and length bytes) and advances |cbs| over it. The ASN.1
191
+ // element must match |tag_value|. It returns one on success and zero
192
+ // on error.
193
+ //
194
+ // Tag numbers greater than 30 are not supported (i.e. short form only).
180
195
  OPENSSL_EXPORT int CBS_get_asn1(CBS *cbs, CBS *out, unsigned tag_value);
181
196
 
182
- /* CBS_get_asn1_element acts like |CBS_get_asn1| but |out| will include the
183
- * ASN.1 header bytes too. */
197
+ // CBS_get_asn1_element acts like |CBS_get_asn1| but |out| will include the
198
+ // ASN.1 header bytes too.
184
199
  OPENSSL_EXPORT int CBS_get_asn1_element(CBS *cbs, CBS *out, unsigned tag_value);
185
200
 
186
- /* CBS_peek_asn1_tag looks ahead at the next ASN.1 tag and returns one
187
- * if the next ASN.1 element on |cbs| would have tag |tag_value|. If
188
- * |cbs| is empty or the tag does not match, it returns zero. Note: if
189
- * it returns one, CBS_get_asn1 may still fail if the rest of the
190
- * element is malformed. */
201
+ // CBS_peek_asn1_tag looks ahead at the next ASN.1 tag and returns one
202
+ // if the next ASN.1 element on |cbs| would have tag |tag_value|. If
203
+ // |cbs| is empty or the tag does not match, it returns zero. Note: if
204
+ // it returns one, CBS_get_asn1 may still fail if the rest of the
205
+ // element is malformed.
191
206
  OPENSSL_EXPORT int CBS_peek_asn1_tag(const CBS *cbs, unsigned tag_value);
192
207
 
193
- /* CBS_get_any_asn1 sets |*out| to contain the next ASN.1 element from |*cbs|
194
- * (not including tag and length bytes), sets |*out_tag| to the tag number, and
195
- * advances |*cbs|. It returns one on success and zero on error. Either of |out|
196
- * and |out_tag| may be NULL to ignore the value.
197
- *
198
- * Tag numbers greater than 30 are not supported (i.e. short form only). */
208
+ // CBS_get_any_asn1 sets |*out| to contain the next ASN.1 element from |*cbs|
209
+ // (not including tag and length bytes), sets |*out_tag| to the tag number, and
210
+ // advances |*cbs|. It returns one on success and zero on error. Either of |out|
211
+ // and |out_tag| may be NULL to ignore the value.
212
+ //
213
+ // Tag numbers greater than 30 are not supported (i.e. short form only).
199
214
  OPENSSL_EXPORT int CBS_get_any_asn1(CBS *cbs, CBS *out, unsigned *out_tag);
200
215
 
201
- /* CBS_get_any_asn1_element sets |*out| to contain the next ASN.1 element from
202
- * |*cbs| (including header bytes) and advances |*cbs|. It sets |*out_tag| to
203
- * the tag number and |*out_header_len| to the length of the ASN.1 header. Each
204
- * of |out|, |out_tag|, and |out_header_len| may be NULL to ignore the value.
205
- *
206
- * Tag numbers greater than 30 are not supported (i.e. short form only). */
216
+ // CBS_get_any_asn1_element sets |*out| to contain the next ASN.1 element from
217
+ // |*cbs| (including header bytes) and advances |*cbs|. It sets |*out_tag| to
218
+ // the tag number and |*out_header_len| to the length of the ASN.1 header. Each
219
+ // of |out|, |out_tag|, and |out_header_len| may be NULL to ignore the value.
220
+ //
221
+ // Tag numbers greater than 30 are not supported (i.e. short form only).
207
222
  OPENSSL_EXPORT int CBS_get_any_asn1_element(CBS *cbs, CBS *out,
208
223
  unsigned *out_tag,
209
224
  size_t *out_header_len);
210
225
 
211
- /* CBS_get_any_ber_asn1_element acts the same as |CBS_get_any_asn1_element| but
212
- * also allows indefinite-length elements to be returned. In that case,
213
- * |*out_header_len| and |CBS_len(out)| will both be two as only the header is
214
- * returned, otherwise it behaves the same as the previous function. */
226
+ // CBS_get_any_ber_asn1_element acts the same as |CBS_get_any_asn1_element| but
227
+ // also allows indefinite-length elements to be returned. In that case,
228
+ // |*out_header_len| and |CBS_len(out)| will both be two as only the header is
229
+ // returned, otherwise it behaves the same as the previous function.
215
230
  OPENSSL_EXPORT int CBS_get_any_ber_asn1_element(CBS *cbs, CBS *out,
216
231
  unsigned *out_tag,
217
232
  size_t *out_header_len);
218
233
 
219
- /* CBS_get_asn1_uint64 gets an ASN.1 INTEGER from |cbs| using |CBS_get_asn1|
220
- * and sets |*out| to its value. It returns one on success and zero on error,
221
- * where error includes the integer being negative, or too large to represent
222
- * in 64 bits. */
234
+ // CBS_get_asn1_uint64 gets an ASN.1 INTEGER from |cbs| using |CBS_get_asn1|
235
+ // and sets |*out| to its value. It returns one on success and zero on error,
236
+ // where error includes the integer being negative, or too large to represent
237
+ // in 64 bits.
223
238
  OPENSSL_EXPORT int CBS_get_asn1_uint64(CBS *cbs, uint64_t *out);
224
239
 
225
- /* CBS_get_optional_asn1 gets an optional explicitly-tagged element from |cbs|
226
- * tagged with |tag| and sets |*out| to its contents. If present and if
227
- * |out_present| is not NULL, it sets |*out_present| to one, otherwise zero. It
228
- * returns one on success, whether or not the element was present, and zero on
229
- * decode failure. */
240
+ // CBS_get_optional_asn1 gets an optional explicitly-tagged element from |cbs|
241
+ // tagged with |tag| and sets |*out| to its contents. If present and if
242
+ // |out_present| is not NULL, it sets |*out_present| to one, otherwise zero. It
243
+ // returns one on success, whether or not the element was present, and zero on
244
+ // decode failure.
230
245
  OPENSSL_EXPORT int CBS_get_optional_asn1(CBS *cbs, CBS *out, int *out_present,
231
246
  unsigned tag);
232
247
 
233
- /* CBS_get_optional_asn1_octet_string gets an optional
234
- * explicitly-tagged OCTET STRING from |cbs|. If present, it sets
235
- * |*out| to the string and |*out_present| to one. Otherwise, it sets
236
- * |*out| to empty and |*out_present| to zero. |out_present| may be
237
- * NULL. It returns one on success, whether or not the element was
238
- * present, and zero on decode failure. */
248
+ // CBS_get_optional_asn1_octet_string gets an optional
249
+ // explicitly-tagged OCTET STRING from |cbs|. If present, it sets
250
+ // |*out| to the string and |*out_present| to one. Otherwise, it sets
251
+ // |*out| to empty and |*out_present| to zero. |out_present| may be
252
+ // NULL. It returns one on success, whether or not the element was
253
+ // present, and zero on decode failure.
239
254
  OPENSSL_EXPORT int CBS_get_optional_asn1_octet_string(CBS *cbs, CBS *out,
240
255
  int *out_present,
241
256
  unsigned tag);
242
257
 
243
- /* CBS_get_optional_asn1_uint64 gets an optional explicitly-tagged
244
- * INTEGER from |cbs|. If present, it sets |*out| to the
245
- * value. Otherwise, it sets |*out| to |default_value|. It returns one
246
- * on success, whether or not the element was present, and zero on
247
- * decode failure. */
258
+ // CBS_get_optional_asn1_uint64 gets an optional explicitly-tagged
259
+ // INTEGER from |cbs|. If present, it sets |*out| to the
260
+ // value. Otherwise, it sets |*out| to |default_value|. It returns one
261
+ // on success, whether or not the element was present, and zero on
262
+ // decode failure.
248
263
  OPENSSL_EXPORT int CBS_get_optional_asn1_uint64(CBS *cbs, uint64_t *out,
249
264
  unsigned tag,
250
265
  uint64_t default_value);
251
266
 
252
- /* CBS_get_optional_asn1_bool gets an optional, explicitly-tagged BOOLEAN from
253
- * |cbs|. If present, it sets |*out| to either zero or one, based on the
254
- * boolean. Otherwise, it sets |*out| to |default_value|. It returns one on
255
- * success, whether or not the element was present, and zero on decode
256
- * failure. */
267
+ // CBS_get_optional_asn1_bool gets an optional, explicitly-tagged BOOLEAN from
268
+ // |cbs|. If present, it sets |*out| to either zero or one, based on the
269
+ // boolean. Otherwise, it sets |*out| to |default_value|. It returns one on
270
+ // success, whether or not the element was present, and zero on decode
271
+ // failure.
257
272
  OPENSSL_EXPORT int CBS_get_optional_asn1_bool(CBS *cbs, int *out, unsigned tag,
258
273
  int default_value);
259
274
 
260
- /* CBS_is_valid_asn1_bitstring returns one if |cbs| is a valid ASN.1 BIT STRING
261
- * and zero otherwise. */
275
+ // CBS_is_valid_asn1_bitstring returns one if |cbs| is a valid ASN.1 BIT STRING
276
+ // and zero otherwise.
262
277
  OPENSSL_EXPORT int CBS_is_valid_asn1_bitstring(const CBS *cbs);
263
278
 
264
- /* CBS_asn1_bitstring_has_bit returns one if |cbs| is a valid ASN.1 BIT STRING
265
- * and the specified bit is present and set. Otherwise, it returns zero. |bit|
266
- * is indexed starting from zero. */
279
+ // CBS_asn1_bitstring_has_bit returns one if |cbs| is a valid ASN.1 BIT STRING
280
+ // and the specified bit is present and set. Otherwise, it returns zero. |bit|
281
+ // is indexed starting from zero.
267
282
  OPENSSL_EXPORT int CBS_asn1_bitstring_has_bit(const CBS *cbs, unsigned bit);
268
283
 
269
284
 
270
- /* CRYPTO ByteBuilder.
271
- *
272
- * |CBB| objects allow one to build length-prefixed serialisations. A |CBB|
273
- * object is associated with a buffer and new buffers are created with
274
- * |CBB_init|. Several |CBB| objects can point at the same buffer when a
275
- * length-prefix is pending, however only a single |CBB| can be 'current' at
276
- * any one time. For example, if one calls |CBB_add_u8_length_prefixed| then
277
- * the new |CBB| points at the same buffer as the original. But if the original
278
- * |CBB| is used then the length prefix is written out and the new |CBB| must
279
- * not be used again.
280
- *
281
- * If one needs to force a length prefix to be written out because a |CBB| is
282
- * going out of scope, use |CBB_flush|. If an operation on a |CBB| fails, it is
283
- * in an undefined state and must not be used except to call |CBB_cleanup|. */
285
+ // CRYPTO ByteBuilder.
286
+ //
287
+ // |CBB| objects allow one to build length-prefixed serialisations. A |CBB|
288
+ // object is associated with a buffer and new buffers are created with
289
+ // |CBB_init|. Several |CBB| objects can point at the same buffer when a
290
+ // length-prefix is pending, however only a single |CBB| can be 'current' at
291
+ // any one time. For example, if one calls |CBB_add_u8_length_prefixed| then
292
+ // the new |CBB| points at the same buffer as the original. But if the original
293
+ // |CBB| is used then the length prefix is written out and the new |CBB| must
294
+ // not be used again.
295
+ //
296
+ // If one needs to force a length prefix to be written out because a |CBB| is
297
+ // going out of scope, use |CBB_flush|. If an operation on a |CBB| fails, it is
298
+ // in an undefined state and must not be used except to call |CBB_cleanup|.
284
299
 
285
300
  struct cbb_buffer_st {
286
301
  uint8_t *buf;
287
- size_t len; /* The number of valid bytes. */
288
- size_t cap; /* The size of buf. */
302
+ size_t len; // The number of valid bytes.
303
+ size_t cap; // The size of buf.
289
304
  char can_resize; /* One iff |buf| is owned by this object. If not then |buf|
290
305
  cannot be resized. */
291
306
  char error; /* One iff there was an error writing to this CBB. All future
@@ -294,147 +309,147 @@ struct cbb_buffer_st {
294
309
 
295
310
  struct cbb_st {
296
311
  struct cbb_buffer_st *base;
297
- /* child points to a child CBB if a length-prefix is pending. */
312
+ // child points to a child CBB if a length-prefix is pending.
298
313
  CBB *child;
299
- /* offset is the number of bytes from the start of |base->buf| to this |CBB|'s
300
- * pending length prefix. */
314
+ // offset is the number of bytes from the start of |base->buf| to this |CBB|'s
315
+ // pending length prefix.
301
316
  size_t offset;
302
- /* pending_len_len contains the number of bytes in this |CBB|'s pending
303
- * length-prefix, or zero if no length-prefix is pending. */
317
+ // pending_len_len contains the number of bytes in this |CBB|'s pending
318
+ // length-prefix, or zero if no length-prefix is pending.
304
319
  uint8_t pending_len_len;
305
320
  char pending_is_asn1;
306
- /* is_top_level is true iff this is a top-level |CBB| (as opposed to a child
307
- * |CBB|). Top-level objects are valid arguments for |CBB_finish|. */
321
+ // is_top_level is true iff this is a top-level |CBB| (as opposed to a child
322
+ // |CBB|). Top-level objects are valid arguments for |CBB_finish|.
308
323
  char is_top_level;
309
324
  };
310
325
 
311
- /* CBB_zero sets an uninitialised |cbb| to the zero state. It must be
312
- * initialised with |CBB_init| or |CBB_init_fixed| before use, but it is safe to
313
- * call |CBB_cleanup| without a successful |CBB_init|. This may be used for more
314
- * uniform cleanup of a |CBB|. */
326
+ // CBB_zero sets an uninitialised |cbb| to the zero state. It must be
327
+ // initialised with |CBB_init| or |CBB_init_fixed| before use, but it is safe to
328
+ // call |CBB_cleanup| without a successful |CBB_init|. This may be used for more
329
+ // uniform cleanup of a |CBB|.
315
330
  OPENSSL_EXPORT void CBB_zero(CBB *cbb);
316
331
 
317
- /* CBB_init initialises |cbb| with |initial_capacity|. Since a |CBB| grows as
318
- * needed, the |initial_capacity| is just a hint. It returns one on success or
319
- * zero on error. */
332
+ // CBB_init initialises |cbb| with |initial_capacity|. Since a |CBB| grows as
333
+ // needed, the |initial_capacity| is just a hint. It returns one on success or
334
+ // zero on error.
320
335
  OPENSSL_EXPORT int CBB_init(CBB *cbb, size_t initial_capacity);
321
336
 
322
- /* CBB_init_fixed initialises |cbb| to write to |len| bytes at |buf|. Since
323
- * |buf| cannot grow, trying to write more than |len| bytes will cause CBB
324
- * functions to fail. It returns one on success or zero on error. */
337
+ // CBB_init_fixed initialises |cbb| to write to |len| bytes at |buf|. Since
338
+ // |buf| cannot grow, trying to write more than |len| bytes will cause CBB
339
+ // functions to fail. It returns one on success or zero on error.
325
340
  OPENSSL_EXPORT int CBB_init_fixed(CBB *cbb, uint8_t *buf, size_t len);
326
341
 
327
- /* CBB_cleanup frees all resources owned by |cbb| and other |CBB| objects
328
- * writing to the same buffer. This should be used in an error case where a
329
- * serialisation is abandoned.
330
- *
331
- * This function can only be called on a "top level" |CBB|, i.e. one initialised
332
- * with |CBB_init| or |CBB_init_fixed|, or a |CBB| set to the zero state with
333
- * |CBB_zero|. */
342
+ // CBB_cleanup frees all resources owned by |cbb| and other |CBB| objects
343
+ // writing to the same buffer. This should be used in an error case where a
344
+ // serialisation is abandoned.
345
+ //
346
+ // This function can only be called on a "top level" |CBB|, i.e. one initialised
347
+ // with |CBB_init| or |CBB_init_fixed|, or a |CBB| set to the zero state with
348
+ // |CBB_zero|.
334
349
  OPENSSL_EXPORT void CBB_cleanup(CBB *cbb);
335
350
 
336
- /* CBB_finish completes any pending length prefix and sets |*out_data| to a
337
- * malloced buffer and |*out_len| to the length of that buffer. The caller
338
- * takes ownership of the buffer and, unless the buffer was fixed with
339
- * |CBB_init_fixed|, must call |OPENSSL_free| when done.
340
- *
341
- * It can only be called on a "top level" |CBB|, i.e. one initialised with
342
- * |CBB_init| or |CBB_init_fixed|. It returns one on success and zero on
343
- * error. */
351
+ // CBB_finish completes any pending length prefix and sets |*out_data| to a
352
+ // malloced buffer and |*out_len| to the length of that buffer. The caller
353
+ // takes ownership of the buffer and, unless the buffer was fixed with
354
+ // |CBB_init_fixed|, must call |OPENSSL_free| when done.
355
+ //
356
+ // It can only be called on a "top level" |CBB|, i.e. one initialised with
357
+ // |CBB_init| or |CBB_init_fixed|. It returns one on success and zero on
358
+ // error.
344
359
  OPENSSL_EXPORT int CBB_finish(CBB *cbb, uint8_t **out_data, size_t *out_len);
345
360
 
346
- /* CBB_flush causes any pending length prefixes to be written out and any child
347
- * |CBB| objects of |cbb| to be invalidated. This allows |cbb| to continue to be
348
- * used after the children go out of scope, e.g. when local |CBB| objects are
349
- * added as children to a |CBB| that persists after a function returns. This
350
- * function returns one on success or zero on error. */
361
+ // CBB_flush causes any pending length prefixes to be written out and any child
362
+ // |CBB| objects of |cbb| to be invalidated. This allows |cbb| to continue to be
363
+ // used after the children go out of scope, e.g. when local |CBB| objects are
364
+ // added as children to a |CBB| that persists after a function returns. This
365
+ // function returns one on success or zero on error.
351
366
  OPENSSL_EXPORT int CBB_flush(CBB *cbb);
352
367
 
353
- /* CBB_data returns a pointer to the bytes written to |cbb|. It does not flush
354
- * |cbb|. The pointer is valid until the next operation to |cbb|.
355
- *
356
- * To avoid unfinalized length prefixes, it is a fatal error to call this on a
357
- * CBB with any active children. */
368
+ // CBB_data returns a pointer to the bytes written to |cbb|. It does not flush
369
+ // |cbb|. The pointer is valid until the next operation to |cbb|.
370
+ //
371
+ // To avoid unfinalized length prefixes, it is a fatal error to call this on a
372
+ // CBB with any active children.
358
373
  OPENSSL_EXPORT const uint8_t *CBB_data(const CBB *cbb);
359
374
 
360
- /* CBB_len returns the number of bytes written to |cbb|. It does not flush
361
- * |cbb|.
362
- *
363
- * To avoid unfinalized length prefixes, it is a fatal error to call this on a
364
- * CBB with any active children. */
375
+ // CBB_len returns the number of bytes written to |cbb|. It does not flush
376
+ // |cbb|.
377
+ //
378
+ // To avoid unfinalized length prefixes, it is a fatal error to call this on a
379
+ // CBB with any active children.
365
380
  OPENSSL_EXPORT size_t CBB_len(const CBB *cbb);
366
381
 
367
- /* CBB_add_u8_length_prefixed sets |*out_contents| to a new child of |cbb|. The
368
- * data written to |*out_contents| will be prefixed in |cbb| with an 8-bit
369
- * length. It returns one on success or zero on error. */
382
+ // CBB_add_u8_length_prefixed sets |*out_contents| to a new child of |cbb|. The
383
+ // data written to |*out_contents| will be prefixed in |cbb| with an 8-bit
384
+ // length. It returns one on success or zero on error.
370
385
  OPENSSL_EXPORT int CBB_add_u8_length_prefixed(CBB *cbb, CBB *out_contents);
371
386
 
372
- /* CBB_add_u16_length_prefixed sets |*out_contents| to a new child of |cbb|.
373
- * The data written to |*out_contents| will be prefixed in |cbb| with a 16-bit,
374
- * big-endian length. It returns one on success or zero on error. */
387
+ // CBB_add_u16_length_prefixed sets |*out_contents| to a new child of |cbb|.
388
+ // The data written to |*out_contents| will be prefixed in |cbb| with a 16-bit,
389
+ // big-endian length. It returns one on success or zero on error.
375
390
  OPENSSL_EXPORT int CBB_add_u16_length_prefixed(CBB *cbb, CBB *out_contents);
376
391
 
377
- /* CBB_add_u24_length_prefixed sets |*out_contents| to a new child of |cbb|.
378
- * The data written to |*out_contents| will be prefixed in |cbb| with a 24-bit,
379
- * big-endian length. It returns one on success or zero on error. */
392
+ // CBB_add_u24_length_prefixed sets |*out_contents| to a new child of |cbb|.
393
+ // The data written to |*out_contents| will be prefixed in |cbb| with a 24-bit,
394
+ // big-endian length. It returns one on success or zero on error.
380
395
  OPENSSL_EXPORT int CBB_add_u24_length_prefixed(CBB *cbb, CBB *out_contents);
381
396
 
382
- /* CBB_add_asn1 sets |*out_contents| to a |CBB| into which the contents of an
383
- * ASN.1 object can be written. The |tag| argument will be used as the tag for
384
- * the object. Passing in |tag| number 31 will return in an error since only
385
- * single octet identifiers are supported. It returns one on success or zero
386
- * on error. */
397
+ // CBB_add_asn1 sets |*out_contents| to a |CBB| into which the contents of an
398
+ // ASN.1 object can be written. The |tag| argument will be used as the tag for
399
+ // the object. Passing in |tag| number 31 will return in an error since only
400
+ // single octet identifiers are supported. It returns one on success or zero
401
+ // on error.
387
402
  OPENSSL_EXPORT int CBB_add_asn1(CBB *cbb, CBB *out_contents, unsigned tag);
388
403
 
389
- /* CBB_add_bytes appends |len| bytes from |data| to |cbb|. It returns one on
390
- * success and zero otherwise. */
404
+ // CBB_add_bytes appends |len| bytes from |data| to |cbb|. It returns one on
405
+ // success and zero otherwise.
391
406
  OPENSSL_EXPORT int CBB_add_bytes(CBB *cbb, const uint8_t *data, size_t len);
392
407
 
393
- /* CBB_add_space appends |len| bytes to |cbb| and sets |*out_data| to point to
394
- * the beginning of that space. The caller must then write |len| bytes of
395
- * actual contents to |*out_data|. It returns one on success and zero
396
- * otherwise. */
408
+ // CBB_add_space appends |len| bytes to |cbb| and sets |*out_data| to point to
409
+ // the beginning of that space. The caller must then write |len| bytes of
410
+ // actual contents to |*out_data|. It returns one on success and zero
411
+ // otherwise.
397
412
  OPENSSL_EXPORT int CBB_add_space(CBB *cbb, uint8_t **out_data, size_t len);
398
413
 
399
- /* CBB_reserve ensures |cbb| has room for |len| additional bytes and sets
400
- * |*out_data| to point to the beginning of that space. It returns one on
401
- * success and zero otherwise. The caller may write up to |len| bytes to
402
- * |*out_data| and call |CBB_did_write| to complete the write. |*out_data| is
403
- * valid until the next operation on |cbb| or an ancestor |CBB|. */
414
+ // CBB_reserve ensures |cbb| has room for |len| additional bytes and sets
415
+ // |*out_data| to point to the beginning of that space. It returns one on
416
+ // success and zero otherwise. The caller may write up to |len| bytes to
417
+ // |*out_data| and call |CBB_did_write| to complete the write. |*out_data| is
418
+ // valid until the next operation on |cbb| or an ancestor |CBB|.
404
419
  OPENSSL_EXPORT int CBB_reserve(CBB *cbb, uint8_t **out_data, size_t len);
405
420
 
406
- /* CBB_did_write advances |cbb| by |len| bytes, assuming the space has been
407
- * written to by the caller. It returns one on success and zero on error. */
421
+ // CBB_did_write advances |cbb| by |len| bytes, assuming the space has been
422
+ // written to by the caller. It returns one on success and zero on error.
408
423
  OPENSSL_EXPORT int CBB_did_write(CBB *cbb, size_t len);
409
424
 
410
- /* CBB_add_u8 appends an 8-bit number from |value| to |cbb|. It returns one on
411
- * success and zero otherwise. */
425
+ // CBB_add_u8 appends an 8-bit number from |value| to |cbb|. It returns one on
426
+ // success and zero otherwise.
412
427
  OPENSSL_EXPORT int CBB_add_u8(CBB *cbb, uint8_t value);
413
428
 
414
- /* CBB_add_u16 appends a 16-bit, big-endian number from |value| to |cbb|. It
415
- * returns one on success and zero otherwise. */
429
+ // CBB_add_u16 appends a 16-bit, big-endian number from |value| to |cbb|. It
430
+ // returns one on success and zero otherwise.
416
431
  OPENSSL_EXPORT int CBB_add_u16(CBB *cbb, uint16_t value);
417
432
 
418
- /* CBB_add_u24 appends a 24-bit, big-endian number from |value| to |cbb|. It
419
- * returns one on success and zero otherwise. */
433
+ // CBB_add_u24 appends a 24-bit, big-endian number from |value| to |cbb|. It
434
+ // returns one on success and zero otherwise.
420
435
  OPENSSL_EXPORT int CBB_add_u24(CBB *cbb, uint32_t value);
421
436
 
422
- /* CBB_add_u32 appends a 32-bit, big-endian number from |value| to |cbb|. It
423
- * returns one on success and zero otherwise. */
437
+ // CBB_add_u32 appends a 32-bit, big-endian number from |value| to |cbb|. It
438
+ // returns one on success and zero otherwise.
424
439
  OPENSSL_EXPORT int CBB_add_u32(CBB *cbb, uint32_t value);
425
440
 
426
- /* CBB_discard_child discards the current unflushed child of |cbb|. Neither the
427
- * child's contents nor the length prefix will be included in the output. */
441
+ // CBB_discard_child discards the current unflushed child of |cbb|. Neither the
442
+ // child's contents nor the length prefix will be included in the output.
428
443
  OPENSSL_EXPORT void CBB_discard_child(CBB *cbb);
429
444
 
430
- /* CBB_add_asn1_uint64 writes an ASN.1 INTEGER into |cbb| using |CBB_add_asn1|
431
- * and writes |value| in its contents. It returns one on success and zero on
432
- * error. */
445
+ // CBB_add_asn1_uint64 writes an ASN.1 INTEGER into |cbb| using |CBB_add_asn1|
446
+ // and writes |value| in its contents. It returns one on success and zero on
447
+ // error.
433
448
  OPENSSL_EXPORT int CBB_add_asn1_uint64(CBB *cbb, uint64_t value);
434
449
 
435
450
 
436
451
  #if defined(__cplusplus)
437
- } /* extern C */
452
+ } // extern C
438
453
 
439
454
 
440
455
  #if !defined(BORINGSSL_NO_CXX)
@@ -451,4 +466,4 @@ using ScopedCBB = internal::StackAllocated<CBB, void, CBB_zero, CBB_cleanup>;
451
466
 
452
467
  #endif
453
468
 
454
- #endif /* OPENSSL_HEADER_BYTESTRING_H */
469
+ #endif // OPENSSL_HEADER_BYTESTRING_H