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.
- checksums.yaml +4 -4
- data/Makefile +2654 -953
- data/etc/roots.pem +282 -683
- data/include/grpc/compression.h +9 -26
- data/include/grpc/grpc.h +10 -24
- data/include/grpc/grpc_security.h +7 -1
- data/include/grpc/impl/codegen/compression_types.h +5 -62
- data/include/grpc/impl/codegen/grpc_types.h +10 -6
- data/include/grpc/module.modulemap +1 -10
- data/include/grpc/support/alloc.h +3 -2
- data/include/grpc/support/log.h +1 -2
- data/{src/core/lib/gpr/thd_internal.h → include/grpc/support/thd_id.h} +23 -9
- data/src/boringssl/err_data.c +550 -496
- data/src/core/ext/census/grpc_context.cc +2 -1
- data/src/core/ext/filters/client_channel/backup_poller.cc +5 -4
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +7 -7
- data/src/core/ext/filters/client_channel/client_channel.cc +162 -172
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +4 -2
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +10 -10
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +18 -14
- data/src/core/ext/filters/client_channel/http_proxy.cc +3 -1
- data/src/core/ext/filters/client_channel/lb_policy.cc +21 -105
- data/src/core/ext/filters/client_channel/lb_policy.h +166 -170
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +41 -36
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +1452 -1459
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +3 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +7 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +27 -27
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +279 -304
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +358 -330
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +30 -41
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +7 -14
- data/src/core/ext/filters/client_channel/lb_policy_factory.cc +8 -21
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +23 -27
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +58 -33
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +25 -12
- data/src/core/ext/filters/client_channel/parse_address.cc +10 -8
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver.cc +6 -52
- data/src/core/ext/filters/client_channel/resolver.h +98 -55
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +266 -237
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +5 -5
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +31 -27
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +244 -207
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +161 -148
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +47 -31
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +126 -126
- data/src/core/ext/filters/client_channel/resolver_factory.h +33 -32
- data/src/core/ext/filters/client_channel/resolver_registry.cc +110 -90
- data/src/core/ext/filters/client_channel/resolver_registry.h +49 -36
- data/src/core/ext/filters/client_channel/retry_throttle.cc +29 -22
- data/src/core/ext/filters/client_channel/subchannel.cc +173 -173
- data/src/core/ext/filters/client_channel/subchannel.h +38 -45
- data/src/core/ext/filters/client_channel/subchannel_index.cc +44 -40
- data/src/core/ext/filters/client_channel/uri_parser.cc +3 -3
- data/src/core/ext/filters/deadline/deadline_filter.cc +27 -18
- data/src/core/ext/filters/http/client/http_client_filter.cc +26 -23
- data/src/core/ext/filters/http/http_filters_plugin.cc +3 -2
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +78 -110
- data/src/core/ext/filters/http/server/http_server_filter.cc +29 -26
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +9 -11
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +2 -1
- data/src/core/ext/filters/max_age/max_age_filter.cc +14 -14
- data/src/core/ext/filters/message_size/message_size_filter.cc +20 -18
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +4 -4
- data/src/core/ext/filters/workarounds/workaround_utils.cc +4 -4
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +10 -10
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +4 -4
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +11 -12
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +16 -13
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +36 -9
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +3 -0
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +17 -14
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +139 -145
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +16 -14
- data/src/core/ext/transport/chttp2/transport/flow_control.h +8 -7
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +35 -33
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +27 -25
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +12 -12
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +16 -15
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +19 -19
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +11 -11
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +23 -22
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +35 -35
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +10 -7
- data/src/core/ext/transport/chttp2/transport/http2_settings.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/internal.h +1 -1
- data/src/core/ext/transport/chttp2/transport/parsing.cc +35 -39
- data/src/core/ext/transport/chttp2/transport/stream_map.cc +8 -7
- data/src/core/ext/transport/chttp2/transport/varint.cc +5 -5
- data/src/core/ext/transport/chttp2/transport/writing.cc +18 -18
- data/src/core/ext/transport/inproc/inproc_transport.cc +43 -23
- data/src/core/lib/{gpr → avl}/avl.cc +61 -57
- data/{include/grpc/support → src/core/lib/avl}/avl.h +25 -35
- data/src/core/lib/backoff/backoff.cc +6 -5
- data/src/core/lib/channel/channel_args.cc +23 -109
- data/src/core/lib/channel/channel_args.h +5 -31
- data/src/core/lib/channel/channel_stack.cc +11 -8
- data/src/core/lib/channel/channel_stack_builder.cc +10 -7
- data/src/core/lib/channel/connected_channel.cc +18 -17
- data/src/core/lib/channel/handshaker.cc +8 -8
- data/src/core/lib/channel/handshaker_registry.cc +3 -2
- data/src/core/lib/compression/algorithm_metadata.h +13 -6
- data/src/core/lib/compression/compression.cc +72 -183
- data/src/core/lib/compression/compression_internal.cc +274 -0
- data/src/core/lib/compression/compression_internal.h +86 -0
- data/src/core/lib/compression/message_compress.cc +15 -15
- data/src/core/lib/compression/message_compress.h +4 -3
- data/src/core/lib/compression/stream_compression_gzip.cc +8 -8
- data/src/core/lib/compression/stream_compression_identity.cc +1 -1
- data/src/core/lib/debug/stats.cc +10 -8
- data/src/core/lib/debug/stats_data.cc +2 -1
- data/src/core/lib/debug/trace.cc +3 -3
- data/src/core/lib/gpr/alloc.cc +7 -11
- data/src/core/lib/gpr/arena.cc +34 -12
- data/src/core/lib/gpr/atm.cc +2 -1
- data/src/core/lib/gpr/cpu_linux.cc +3 -3
- data/src/core/lib/gpr/cpu_posix.cc +2 -1
- data/src/core/lib/gpr/env.h +1 -1
- data/src/core/lib/gpr/env_linux.cc +1 -1
- data/src/core/lib/gpr/env_windows.cc +4 -4
- data/src/core/lib/gpr/fork.cc +16 -2
- data/src/core/lib/gpr/host_port.cc +5 -4
- data/{include/grpc/support → src/core/lib/gpr}/host_port.h +5 -13
- data/src/core/lib/gpr/log.cc +5 -4
- data/src/core/lib/gpr/log_linux.cc +1 -1
- data/src/core/lib/gpr/mpscq.cc +1 -0
- data/src/core/lib/gpr/murmur_hash.cc +4 -4
- data/src/core/lib/gpr/string.cc +19 -16
- data/src/core/lib/gpr/string_posix.cc +3 -3
- data/src/core/lib/gpr/sync_posix.cc +5 -9
- data/src/core/lib/gpr/thd.cc +3 -3
- data/{include/grpc/support → src/core/lib/gpr}/thd.h +20 -28
- data/src/core/lib/gpr/thd_posix.cc +6 -4
- data/src/core/lib/gpr/thd_windows.cc +3 -1
- data/src/core/lib/gpr/time.cc +6 -4
- data/src/core/lib/gpr/time_posix.cc +2 -2
- data/{include/grpc/support → src/core/lib/gpr}/tls.h +6 -6
- data/{include/grpc/support → src/core/lib/gpr}/tls_gcc.h +3 -3
- data/{include/grpc/support → src/core/lib/gpr}/tls_msvc.h +3 -3
- data/src/core/lib/gpr/tls_pthread.cc +1 -1
- data/{include/grpc/support → src/core/lib/gpr}/tls_pthread.h +3 -3
- data/{include/grpc/support → src/core/lib/gpr}/useful.h +3 -3
- data/src/core/lib/{gpr++ → gprpp}/abstract.h +3 -3
- data/src/core/lib/{gpr++ → gprpp}/atomic.h +5 -5
- data/src/core/lib/{gpr++ → gprpp}/atomic_with_atm.h +3 -3
- data/src/core/lib/{gpr++ → gprpp}/atomic_with_std.h +3 -3
- data/src/core/lib/{gpr++ → gprpp}/debug_location.h +3 -3
- data/src/core/lib/{gpr++ → gprpp}/inlined_vector.h +44 -22
- data/src/core/lib/{gpr++ → gprpp}/manual_constructor.h +2 -2
- data/src/core/lib/{gpr++ → gprpp}/memory.h +14 -5
- data/src/core/lib/{gpr++ → gprpp}/orphanable.h +39 -14
- data/src/core/lib/{gpr++ → gprpp}/ref_counted.h +42 -10
- data/src/core/lib/{gpr++ → gprpp}/ref_counted_ptr.h +18 -8
- data/src/core/lib/http/format_request.cc +3 -3
- data/src/core/lib/http/httpcli.cc +6 -7
- data/src/core/lib/http/httpcli_security_connector.cc +10 -10
- data/src/core/lib/http/parser.cc +16 -12
- data/src/core/lib/iomgr/call_combiner.cc +12 -13
- data/src/core/lib/iomgr/closure.h +4 -6
- data/src/core/lib/iomgr/combiner.cc +10 -21
- data/src/core/lib/iomgr/error.cc +50 -55
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +41 -52
- data/src/core/lib/iomgr/ev_epollex_linux.cc +80 -28
- data/src/core/lib/iomgr/ev_epollsig_linux.cc +23 -30
- data/src/core/lib/iomgr/ev_poll_posix.cc +52 -46
- data/src/core/lib/iomgr/ev_posix.cc +47 -6
- data/src/core/lib/iomgr/exec_ctx.cc +10 -10
- data/src/core/lib/iomgr/exec_ctx.h +1 -1
- data/src/core/lib/iomgr/executor.cc +16 -13
- data/src/core/lib/iomgr/fork_posix.cc +1 -3
- data/src/core/lib/iomgr/gethostname_host_name_max.cc +1 -1
- data/src/core/lib/iomgr/iocp_windows.cc +1 -2
- data/src/core/lib/iomgr/iomgr.cc +2 -2
- data/src/core/lib/iomgr/iomgr_uv.cc +2 -0
- data/src/core/lib/iomgr/iomgr_uv.h +1 -1
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +5 -4
- data/src/core/lib/iomgr/load_file.cc +3 -3
- data/src/core/lib/iomgr/pollset_windows.cc +1 -1
- data/src/core/lib/iomgr/resolve_address_posix.cc +10 -9
- data/src/core/lib/iomgr/resolve_address_uv.cc +2 -2
- data/src/core/lib/iomgr/resolve_address_windows.cc +3 -2
- data/src/core/lib/iomgr/resource_quota.cc +36 -34
- data/src/core/lib/iomgr/sockaddr_utils.cc +39 -23
- data/src/core/lib/iomgr/socket_factory_posix.cc +5 -5
- data/src/core/lib/iomgr/socket_mutator.cc +7 -7
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +7 -4
- data/src/core/lib/iomgr/socket_utils_linux.cc +3 -2
- data/src/core/lib/iomgr/tcp_client_posix.cc +7 -6
- data/src/core/lib/iomgr/tcp_client_windows.cc +0 -1
- data/src/core/lib/iomgr/tcp_posix.cc +47 -55
- data/src/core/lib/iomgr/tcp_server_posix.cc +12 -10
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +7 -5
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +4 -3
- data/src/core/lib/iomgr/tcp_windows.cc +1 -1
- data/src/core/lib/iomgr/timer_generic.cc +16 -14
- data/src/core/lib/iomgr/timer_heap.cc +8 -7
- data/src/core/lib/iomgr/timer_manager.cc +4 -3
- data/src/core/lib/iomgr/udp_server.cc +24 -16
- data/src/core/lib/iomgr/unix_sockets_posix.cc +15 -10
- data/src/core/lib/iomgr/wakeup_fd_cv.cc +6 -5
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +1 -2
- data/src/core/lib/json/json.cc +1 -1
- data/src/core/lib/json/json_reader.cc +8 -6
- data/src/core/lib/json/json_string.cc +19 -18
- data/src/core/lib/json/json_writer.cc +10 -8
- data/src/core/lib/profiling/basic_timers.cc +1 -1
- data/src/core/lib/profiling/timers.h +3 -20
- data/src/core/lib/security/context/security_context.cc +16 -14
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +17 -14
- data/src/core/lib/security/credentials/credentials.cc +9 -8
- data/src/core/lib/security/credentials/credentials.h +1 -1
- data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +12 -13
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +7 -4
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +5 -3
- data/src/core/lib/security/credentials/jwt/json_token.cc +4 -3
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +7 -7
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +21 -18
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +23 -18
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +11 -7
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +22 -21
- data/src/core/lib/security/{transport → security_connector}/security_connector.cc +46 -43
- data/src/core/lib/security/{transport → security_connector}/security_connector.h +3 -3
- data/src/core/lib/security/transport/client_auth_filter.cc +32 -34
- data/src/core/lib/security/transport/lb_targets_info.cc +7 -5
- data/src/core/lib/security/transport/secure_endpoint.cc +21 -21
- data/src/core/lib/security/transport/security_handshaker.cc +19 -18
- data/src/core/lib/security/transport/security_handshaker.h +1 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +21 -21
- data/src/core/lib/slice/b64.cc +19 -16
- data/src/core/lib/slice/percent_encoding.cc +5 -5
- data/src/core/lib/slice/slice.cc +35 -33
- data/src/core/lib/slice/slice_buffer.cc +16 -14
- data/src/core/lib/slice/slice_hash_table.cc +3 -2
- data/src/core/lib/slice/slice_intern.cc +21 -25
- data/src/core/lib/slice/slice_string_helpers.cc +45 -9
- data/src/core/lib/slice/slice_string_helpers.h +6 -0
- data/src/core/lib/surface/byte_buffer.cc +2 -2
- data/src/core/lib/surface/byte_buffer_reader.cc +6 -3
- data/src/core/lib/surface/call.cc +171 -260
- data/src/core/lib/surface/call_test_only.h +1 -13
- data/src/core/lib/surface/channel.cc +20 -43
- data/src/core/lib/surface/channel_init.cc +7 -7
- data/src/core/lib/surface/channel_ping.cc +2 -2
- data/src/core/lib/surface/completion_queue.cc +69 -75
- data/src/core/lib/surface/init.cc +4 -5
- data/src/core/lib/surface/init_secure.cc +1 -1
- data/src/core/lib/surface/lame_client.cc +1 -1
- data/src/core/lib/surface/server.cc +64 -59
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +6 -5
- data/src/core/lib/transport/byte_stream.cc +23 -14
- data/src/core/lib/transport/byte_stream.h +1 -1
- data/src/core/lib/transport/connectivity_state.cc +9 -13
- data/src/core/lib/transport/error_utils.cc +10 -7
- data/src/core/lib/transport/metadata.cc +27 -26
- data/src/core/lib/transport/metadata.h +1 -1
- data/src/core/lib/transport/pid_controller.cc +2 -1
- data/src/core/lib/transport/service_config.cc +5 -5
- data/src/core/lib/transport/static_metadata.cc +225 -222
- data/src/core/lib/transport/static_metadata.h +77 -76
- data/src/core/lib/transport/timeout_encoding.cc +3 -2
- data/src/core/lib/transport/transport.cc +6 -5
- data/src/core/lib/transport/transport_op_string.cc +0 -1
- data/src/core/plugin_registry/grpc_plugin_registry.cc +4 -4
- data/src/core/tsi/alts_transport_security.cc +61 -0
- data/src/core/tsi/{gts_transport_security.h → alts_transport_security.h} +16 -8
- data/src/core/tsi/fake_transport_security.cc +59 -43
- data/src/core/tsi/ssl_transport_security.cc +122 -107
- data/src/core/tsi/transport_security.cc +3 -3
- data/src/core/tsi/transport_security_adapter.cc +16 -10
- data/src/ruby/bin/apis/pubsub_demo.rb +1 -1
- data/src/ruby/ext/grpc/rb_channel.c +3 -4
- data/src/ruby/ext/grpc/rb_compression_options.c +13 -3
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +4 -76
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +8 -120
- data/src/ruby/ext/grpc/rb_server.c +52 -28
- data/src/ruby/lib/grpc/generic/rpc_server.rb +7 -4
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/test/client.rb +1 -1
- data/src/ruby/pb/test/server.rb +1 -1
- data/src/ruby/spec/client_server_spec.rb +4 -2
- data/src/ruby/spec/generic/active_call_spec.rb +2 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +32 -8
- data/src/ruby/spec/server_spec.rb +26 -7
- data/third_party/boringssl/crypto/asn1/a_bitstr.c +7 -2
- data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +15 -0
- data/third_party/boringssl/crypto/asn1/a_gentm.c +1 -1
- data/third_party/boringssl/crypto/asn1/a_print.c +0 -28
- data/third_party/boringssl/crypto/asn1/a_strnid.c +3 -0
- data/third_party/boringssl/crypto/asn1/a_time.c +17 -9
- data/third_party/boringssl/crypto/asn1/a_utctm.c +1 -1
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +5 -49
- data/third_party/boringssl/crypto/asn1/asn1_locl.h +1 -1
- data/third_party/boringssl/crypto/asn1/tasn_dec.c +9 -9
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +0 -6
- data/third_party/boringssl/crypto/asn1/time_support.c +5 -5
- data/third_party/boringssl/crypto/base64/base64.c +65 -43
- data/third_party/boringssl/crypto/bio/bio.c +134 -110
- data/third_party/boringssl/crypto/bio/bio_mem.c +9 -9
- data/third_party/boringssl/crypto/bio/connect.c +17 -17
- data/third_party/boringssl/crypto/bio/fd.c +2 -1
- data/third_party/boringssl/crypto/bio/file.c +14 -14
- data/third_party/boringssl/crypto/bio/hexdump.c +15 -16
- data/third_party/boringssl/crypto/bio/internal.h +14 -14
- data/third_party/boringssl/crypto/bio/pair.c +45 -45
- data/third_party/boringssl/crypto/bio/printf.c +6 -10
- data/third_party/boringssl/crypto/{bn → bn_extra}/bn_asn1.c +9 -9
- data/third_party/boringssl/crypto/{bn → bn_extra}/convert.c +18 -223
- data/third_party/boringssl/crypto/buf/buf.c +20 -44
- data/third_party/boringssl/crypto/bytestring/ber.c +35 -35
- data/third_party/boringssl/crypto/bytestring/cbb.c +24 -24
- data/third_party/boringssl/crypto/bytestring/cbs.c +33 -37
- data/third_party/boringssl/crypto/bytestring/internal.h +38 -38
- data/third_party/boringssl/crypto/chacha/chacha.c +7 -7
- data/third_party/boringssl/crypto/{asn1/t_bitst.c → cipher_extra/cipher_extra.c} +49 -38
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/derive_key.c +0 -2
- data/third_party/boringssl/crypto/cipher_extra/e_aesctrhmac.c +281 -0
- data/third_party/boringssl/crypto/cipher_extra/e_aesgcmsiv.c +867 -0
- data/third_party/boringssl/crypto/cipher_extra/e_chacha20poly1305.c +326 -0
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_null.c +0 -1
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc2.c +22 -10
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_rc4.c +0 -0
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_ssl3.c +120 -64
- data/third_party/boringssl/crypto/{cipher → cipher_extra}/e_tls.c +220 -141
- data/third_party/boringssl/crypto/{asn1/x_bignum.c → cipher_extra/internal.h} +61 -86
- data/third_party/boringssl/crypto/cipher_extra/tls_cbc.c +482 -0
- data/third_party/boringssl/crypto/cmac/cmac.c +20 -20
- data/third_party/boringssl/crypto/conf/conf.c +32 -20
- data/third_party/boringssl/crypto/conf/internal.h +3 -3
- data/third_party/boringssl/crypto/cpu-aarch64-linux.c +5 -5
- data/third_party/boringssl/crypto/cpu-arm-linux.c +44 -41
- data/third_party/boringssl/crypto/cpu-intel.c +68 -43
- data/third_party/boringssl/crypto/cpu-ppc64le.c +5 -7
- data/third_party/boringssl/crypto/crypto.c +54 -32
- data/third_party/boringssl/crypto/curve25519/curve25519.c +269 -269
- data/third_party/boringssl/crypto/curve25519/internal.h +28 -8
- data/third_party/boringssl/crypto/curve25519/spake25519.c +180 -106
- data/third_party/boringssl/crypto/curve25519/x25519-x86_64.c +9 -9
- data/third_party/boringssl/crypto/dh/check.c +33 -34
- data/third_party/boringssl/crypto/dh/dh.c +72 -36
- data/third_party/boringssl/crypto/dh/dh_asn1.c +1 -1
- data/third_party/boringssl/crypto/dh/params.c +1 -161
- data/third_party/boringssl/crypto/digest_extra/digest_extra.c +240 -0
- data/third_party/boringssl/crypto/dsa/dsa.c +127 -87
- data/third_party/boringssl/crypto/dsa/dsa_asn1.c +1 -1
- data/third_party/boringssl/crypto/{ec → ec_extra}/ec_asn1.c +83 -70
- data/third_party/boringssl/crypto/ecdh/ecdh.c +1 -1
- data/third_party/boringssl/crypto/{ecdsa → ecdsa_extra}/ecdsa_asn1.c +86 -31
- data/third_party/boringssl/crypto/engine/engine.c +6 -6
- data/third_party/boringssl/crypto/err/err.c +197 -106
- data/third_party/boringssl/crypto/err/internal.h +58 -0
- data/third_party/boringssl/crypto/evp/digestsign.c +86 -14
- data/third_party/boringssl/crypto/evp/evp.c +6 -11
- data/third_party/boringssl/crypto/evp/evp_asn1.c +17 -17
- data/third_party/boringssl/crypto/evp/evp_ctx.c +15 -11
- data/third_party/boringssl/crypto/evp/internal.h +66 -51
- data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +11 -11
- data/third_party/boringssl/crypto/evp/p_ec.c +10 -8
- data/third_party/boringssl/crypto/evp/p_ec_asn1.c +11 -12
- data/third_party/boringssl/crypto/evp/p_ed25519.c +71 -0
- data/third_party/boringssl/crypto/evp/p_ed25519_asn1.c +190 -0
- data/third_party/boringssl/crypto/evp/p_rsa.c +50 -95
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +28 -18
- data/third_party/boringssl/crypto/evp/pbkdf.c +49 -56
- data/third_party/boringssl/crypto/evp/print.c +5 -36
- data/third_party/boringssl/crypto/evp/scrypt.c +209 -0
- data/third_party/boringssl/crypto/ex_data.c +15 -45
- data/third_party/boringssl/crypto/fipsmodule/aes/internal.h +100 -0
- data/third_party/boringssl/crypto/fipsmodule/bcm.c +679 -0
- data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/internal.h +40 -27
- data/third_party/boringssl/crypto/{bn → fipsmodule/bn}/rsaz_exp.h +0 -0
- data/third_party/boringssl/crypto/{cipher → fipsmodule/cipher}/internal.h +34 -67
- data/third_party/boringssl/crypto/fipsmodule/delocate.h +88 -0
- data/third_party/boringssl/crypto/{des → fipsmodule/des}/internal.h +18 -4
- data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/internal.h +18 -18
- data/third_party/boringssl/crypto/{digest → fipsmodule/digest}/md32_common.h +58 -64
- data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/internal.h +58 -52
- data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64-table.h +11 -11
- data/third_party/boringssl/crypto/{ec → fipsmodule/ec}/p256-x86_64.h +32 -32
- data/third_party/boringssl/crypto/{rand/internal.h → fipsmodule/is_fips.c} +10 -15
- data/third_party/boringssl/crypto/{modes → fipsmodule/modes}/internal.h +112 -119
- data/third_party/boringssl/crypto/fipsmodule/rand/internal.h +92 -0
- data/third_party/boringssl/crypto/{rsa → fipsmodule/rsa}/internal.h +36 -49
- data/third_party/boringssl/crypto/hkdf/hkdf.c +6 -6
- data/third_party/boringssl/crypto/internal.h +301 -233
- data/third_party/boringssl/crypto/lhash/lhash.c +26 -45
- data/third_party/boringssl/crypto/mem.c +76 -33
- data/third_party/boringssl/crypto/obj/obj.c +44 -28
- data/third_party/boringssl/crypto/obj/obj_dat.h +102 -34
- data/third_party/boringssl/crypto/obj/obj_xref.c +6 -6
- data/third_party/boringssl/crypto/pem/pem_info.c +3 -5
- data/third_party/boringssl/crypto/pem/pem_lib.c +1 -6
- data/third_party/boringssl/crypto/pem/pem_pk8.c +1 -0
- data/third_party/boringssl/crypto/pem/pem_pkey.c +1 -1
- data/third_party/boringssl/crypto/pem/pem_xaux.c +0 -2
- data/third_party/boringssl/crypto/pkcs7/internal.h +49 -0
- data/third_party/boringssl/crypto/pkcs7/pkcs7.c +166 -0
- data/third_party/boringssl/crypto/{x509/pkcs7.c → pkcs7/pkcs7_x509.c} +27 -147
- data/third_party/boringssl/crypto/pkcs8/internal.h +34 -16
- data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +120 -39
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +144 -857
- data/third_party/boringssl/crypto/pkcs8/pkcs8_x509.c +789 -0
- data/third_party/boringssl/crypto/poly1305/internal.h +4 -3
- data/third_party/boringssl/crypto/poly1305/poly1305.c +14 -14
- data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +11 -11
- data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +41 -41
- data/third_party/boringssl/crypto/pool/internal.h +2 -2
- data/third_party/boringssl/crypto/pool/pool.c +15 -15
- data/third_party/boringssl/crypto/{rand → rand_extra}/deterministic.c +7 -7
- data/third_party/boringssl/crypto/rand_extra/forkunsafe.c +46 -0
- data/third_party/boringssl/crypto/{rand → rand_extra}/fuchsia.c +7 -7
- data/third_party/boringssl/crypto/rand_extra/rand_extra.c +70 -0
- data/third_party/boringssl/crypto/{rand → rand_extra}/windows.c +5 -5
- data/third_party/boringssl/crypto/refcount_c11.c +2 -2
- data/third_party/boringssl/crypto/refcount_lock.c +1 -1
- data/third_party/boringssl/crypto/{rsa → rsa_extra}/rsa_asn1.c +12 -120
- data/third_party/boringssl/crypto/stack/stack.c +13 -13
- data/third_party/boringssl/crypto/thread_none.c +1 -1
- data/third_party/boringssl/crypto/thread_pthread.c +1 -1
- data/third_party/boringssl/crypto/thread_win.c +40 -40
- data/third_party/boringssl/crypto/x509/a_sign.c +5 -12
- data/third_party/boringssl/crypto/x509/a_verify.c +6 -18
- data/third_party/boringssl/crypto/x509/algorithm.c +22 -6
- data/third_party/boringssl/crypto/x509/asn1_gen.c +30 -7
- data/third_party/boringssl/crypto/x509/by_dir.c +2 -2
- data/third_party/boringssl/crypto/x509/by_file.c +2 -2
- data/third_party/boringssl/crypto/x509/rsa_pss.c +5 -5
- data/third_party/boringssl/crypto/x509/t_x509.c +2 -1
- data/third_party/boringssl/crypto/x509/x509_def.c +5 -0
- data/third_party/boringssl/crypto/x509/x509_lu.c +35 -4
- data/third_party/boringssl/crypto/x509/x509_set.c +10 -0
- data/third_party/boringssl/crypto/x509/x509_vfy.c +20 -17
- data/third_party/boringssl/crypto/x509/x_name.c +13 -16
- data/third_party/boringssl/crypto/x509/x_x509.c +3 -3
- data/third_party/boringssl/crypto/x509/x_x509a.c +0 -7
- data/third_party/boringssl/crypto/x509v3/ext_dat.h +8 -0
- data/third_party/boringssl/crypto/x509v3/pcy_int.h +2 -2
- data/third_party/boringssl/crypto/x509v3/pcy_lib.c +0 -9
- data/third_party/boringssl/crypto/x509v3/pcy_node.c +1 -1
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +25 -15
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +21 -11
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +9 -3
- data/third_party/boringssl/crypto/x509v3/v3_info.c +22 -14
- data/third_party/boringssl/crypto/x509v3/v3_ncons.c +27 -11
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +0 -33
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +4 -4
- data/third_party/boringssl/include/openssl/aead.h +280 -191
- data/third_party/boringssl/include/openssl/aes.h +50 -50
- data/third_party/boringssl/include/openssl/arm_arch.h +12 -12
- data/third_party/boringssl/include/openssl/asn1.h +14 -77
- data/third_party/boringssl/include/openssl/asn1t.h +11 -15
- data/third_party/boringssl/include/openssl/base.h +78 -51
- data/third_party/boringssl/include/openssl/base64.h +68 -68
- data/third_party/boringssl/include/openssl/bio.h +472 -406
- data/third_party/boringssl/include/openssl/blowfish.h +1 -1
- data/third_party/boringssl/include/openssl/bn.h +454 -435
- data/third_party/boringssl/include/openssl/buf.h +27 -27
- data/third_party/boringssl/include/openssl/bytestring.h +282 -267
- data/third_party/boringssl/include/openssl/cast.h +2 -2
- data/third_party/boringssl/include/openssl/chacha.h +5 -5
- data/third_party/boringssl/include/openssl/cipher.h +209 -200
- data/third_party/boringssl/include/openssl/cmac.h +27 -27
- data/third_party/boringssl/include/openssl/conf.h +49 -46
- data/third_party/boringssl/include/openssl/cpu.h +60 -45
- data/third_party/boringssl/include/openssl/crypto.h +59 -35
- data/third_party/boringssl/include/openssl/curve25519.h +97 -92
- data/third_party/boringssl/include/openssl/des.h +25 -25
- data/third_party/boringssl/include/openssl/dh.h +98 -97
- data/third_party/boringssl/include/openssl/digest.h +143 -114
- data/third_party/boringssl/include/openssl/dsa.h +217 -202
- data/third_party/boringssl/include/openssl/ec.h +132 -131
- data/third_party/boringssl/include/openssl/ec_key.h +132 -128
- data/third_party/boringssl/include/openssl/ecdh.h +9 -9
- data/third_party/boringssl/include/openssl/ecdsa.h +66 -66
- data/third_party/boringssl/include/openssl/engine.h +38 -38
- data/third_party/boringssl/include/openssl/err.h +189 -219
- data/third_party/boringssl/include/openssl/evp.h +473 -397
- data/third_party/boringssl/include/openssl/ex_data.h +46 -56
- data/third_party/boringssl/include/openssl/hkdf.h +17 -17
- data/third_party/boringssl/include/openssl/hmac.h +55 -43
- data/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
- data/third_party/boringssl/include/openssl/lhash.h +67 -67
- data/third_party/boringssl/include/openssl/lhash_macros.h +4 -4
- data/third_party/boringssl/include/openssl/md4.h +14 -14
- data/third_party/boringssl/include/openssl/md5.h +14 -14
- data/third_party/boringssl/include/openssl/mem.h +39 -33
- data/third_party/boringssl/include/openssl/nid.h +43 -0
- data/third_party/boringssl/include/openssl/obj.h +93 -87
- data/third_party/boringssl/include/openssl/opensslconf.h +8 -1
- data/third_party/boringssl/include/openssl/pem.h +2 -122
- data/third_party/boringssl/include/openssl/pkcs7.h +68 -2
- data/third_party/boringssl/include/openssl/pkcs8.h +81 -66
- data/third_party/boringssl/include/openssl/poly1305.h +11 -11
- data/third_party/boringssl/include/openssl/pool.h +29 -25
- data/third_party/boringssl/include/openssl/rand.h +48 -45
- data/third_party/boringssl/include/openssl/rc4.h +9 -9
- data/third_party/boringssl/include/openssl/ripemd.h +13 -13
- data/third_party/boringssl/include/openssl/rsa.h +371 -340
- data/third_party/boringssl/include/openssl/sha.h +71 -71
- data/third_party/boringssl/include/openssl/span.h +191 -0
- data/third_party/boringssl/include/openssl/ssl.h +2639 -2519
- data/third_party/boringssl/include/openssl/ssl3.h +39 -122
- data/third_party/boringssl/include/openssl/stack.h +355 -164
- data/third_party/boringssl/include/openssl/thread.h +43 -43
- data/third_party/boringssl/include/openssl/tls1.h +60 -63
- data/third_party/boringssl/include/openssl/type_check.h +10 -14
- data/third_party/boringssl/include/openssl/x509.h +41 -116
- data/third_party/boringssl/include/openssl/x509_vfy.h +17 -25
- data/third_party/boringssl/include/openssl/x509v3.h +27 -21
- data/third_party/boringssl/ssl/{bio_ssl.c → bio_ssl.cc} +9 -5
- data/third_party/boringssl/ssl/{custom_extensions.c → custom_extensions.cc} +19 -12
- data/third_party/boringssl/ssl/{d1_both.c → d1_both.cc} +224 -193
- data/third_party/boringssl/ssl/{d1_lib.c → d1_lib.cc} +86 -79
- data/third_party/boringssl/ssl/{d1_pkt.c → d1_pkt.cc} +55 -87
- data/third_party/boringssl/ssl/{d1_srtp.c → d1_srtp.cc} +12 -16
- data/third_party/boringssl/ssl/{dtls_method.c → dtls_method.cc} +33 -50
- data/third_party/boringssl/ssl/{dtls_record.c → dtls_record.cc} +76 -64
- data/third_party/boringssl/ssl/handshake.cc +547 -0
- data/third_party/boringssl/ssl/handshake_client.cc +1828 -0
- data/third_party/boringssl/ssl/handshake_server.cc +1672 -0
- data/third_party/boringssl/ssl/internal.h +2027 -1280
- data/third_party/boringssl/ssl/s3_both.cc +603 -0
- data/third_party/boringssl/ssl/{s3_lib.c → s3_lib.cc} +22 -10
- data/third_party/boringssl/ssl/{s3_pkt.c → s3_pkt.cc} +171 -75
- data/third_party/boringssl/ssl/ssl_aead_ctx.cc +415 -0
- data/third_party/boringssl/ssl/{ssl_asn1.c → ssl_asn1.cc} +257 -261
- data/third_party/boringssl/ssl/{ssl_buffer.c → ssl_buffer.cc} +81 -97
- data/third_party/boringssl/ssl/{ssl_cert.c → ssl_cert.cc} +304 -414
- data/third_party/boringssl/ssl/{ssl_cipher.c → ssl_cipher.cc} +427 -505
- data/third_party/boringssl/ssl/{ssl_file.c → ssl_file.cc} +24 -16
- data/third_party/boringssl/ssl/ssl_key_share.cc +245 -0
- data/third_party/boringssl/ssl/{ssl_lib.c → ssl_lib.cc} +665 -828
- data/third_party/boringssl/ssl/ssl_privkey.cc +518 -0
- data/third_party/boringssl/ssl/{ssl_session.c → ssl_session.cc} +596 -471
- data/third_party/boringssl/ssl/{ssl_stat.c → ssl_stat.cc} +5 -224
- data/third_party/boringssl/ssl/{ssl_transcript.c → ssl_transcript.cc} +117 -140
- data/third_party/boringssl/ssl/ssl_versions.cc +439 -0
- data/third_party/boringssl/ssl/{ssl_x509.c → ssl_x509.cc} +751 -267
- data/third_party/boringssl/ssl/{t1_enc.c → t1_enc.cc} +120 -161
- data/third_party/boringssl/ssl/{t1_lib.c → t1_lib.cc} +859 -966
- data/third_party/boringssl/ssl/{tls13_both.c → tls13_both.cc} +202 -284
- data/third_party/boringssl/ssl/tls13_client.cc +842 -0
- data/third_party/boringssl/ssl/{tls13_enc.c → tls13_enc.cc} +108 -90
- data/third_party/boringssl/ssl/tls13_server.cc +967 -0
- data/third_party/boringssl/ssl/{tls_method.c → tls_method.cc} +94 -73
- data/third_party/boringssl/ssl/tls_record.cc +675 -0
- metadata +117 -168
- data/include/grpc/support/cmdline.h +0 -88
- data/include/grpc/support/subprocess.h +0 -44
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -29
- data/src/core/ext/filters/client_channel/resolver_factory.cc +0 -40
- data/src/core/lib/gpr/cmdline.cc +0 -330
- data/src/core/lib/gpr/subprocess_posix.cc +0 -99
- data/src/core/lib/gpr/subprocess_windows.cc +0 -126
- data/src/core/lib/surface/alarm.cc +0 -137
- data/src/core/lib/surface/alarm_internal.h +0 -40
- data/src/core/tsi/gts_transport_security.cc +0 -40
- data/third_party/boringssl/crypto/aes/aes.c +0 -1142
- data/third_party/boringssl/crypto/aes/internal.h +0 -87
- data/third_party/boringssl/crypto/aes/key_wrap.c +0 -138
- data/third_party/boringssl/crypto/aes/mode_wrappers.c +0 -112
- data/third_party/boringssl/crypto/asn1/x_long.c +0 -200
- data/third_party/boringssl/crypto/bn/add.c +0 -377
- data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +0 -532
- data/third_party/boringssl/crypto/bn/bn.c +0 -365
- data/third_party/boringssl/crypto/bn/cmp.c +0 -239
- data/third_party/boringssl/crypto/bn/ctx.c +0 -313
- data/third_party/boringssl/crypto/bn/div.c +0 -728
- data/third_party/boringssl/crypto/bn/exponentiation.c +0 -1240
- data/third_party/boringssl/crypto/bn/gcd.c +0 -635
- data/third_party/boringssl/crypto/bn/generic.c +0 -707
- data/third_party/boringssl/crypto/bn/kronecker.c +0 -176
- data/third_party/boringssl/crypto/bn/montgomery.c +0 -409
- data/third_party/boringssl/crypto/bn/montgomery_inv.c +0 -207
- data/third_party/boringssl/crypto/bn/mul.c +0 -871
- data/third_party/boringssl/crypto/bn/prime.c +0 -861
- data/third_party/boringssl/crypto/bn/random.c +0 -343
- data/third_party/boringssl/crypto/bn/rsaz_exp.c +0 -254
- data/third_party/boringssl/crypto/bn/shift.c +0 -307
- data/third_party/boringssl/crypto/bn/sqrt.c +0 -506
- data/third_party/boringssl/crypto/cipher/aead.c +0 -156
- data/third_party/boringssl/crypto/cipher/cipher.c +0 -657
- data/third_party/boringssl/crypto/cipher/e_aes.c +0 -1771
- data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +0 -276
- data/third_party/boringssl/crypto/cipher/e_des.c +0 -205
- data/third_party/boringssl/crypto/cipher/tls_cbc.c +0 -482
- data/third_party/boringssl/crypto/des/des.c +0 -771
- data/third_party/boringssl/crypto/digest/digest.c +0 -251
- data/third_party/boringssl/crypto/digest/digests.c +0 -358
- data/third_party/boringssl/crypto/ec/ec.c +0 -847
- data/third_party/boringssl/crypto/ec/ec_key.c +0 -479
- data/third_party/boringssl/crypto/ec/ec_montgomery.c +0 -303
- data/third_party/boringssl/crypto/ec/oct.c +0 -416
- data/third_party/boringssl/crypto/ec/p224-64.c +0 -1143
- data/third_party/boringssl/crypto/ec/p256-64.c +0 -1701
- data/third_party/boringssl/crypto/ec/p256-x86_64.c +0 -561
- data/third_party/boringssl/crypto/ec/simple.c +0 -1118
- data/third_party/boringssl/crypto/ec/util-64.c +0 -109
- data/third_party/boringssl/crypto/ec/wnaf.c +0 -458
- data/third_party/boringssl/crypto/ecdsa/ecdsa.c +0 -479
- data/third_party/boringssl/crypto/hmac/hmac.c +0 -215
- data/third_party/boringssl/crypto/md4/md4.c +0 -236
- data/third_party/boringssl/crypto/md5/md5.c +0 -285
- data/third_party/boringssl/crypto/modes/cbc.c +0 -212
- data/third_party/boringssl/crypto/modes/cfb.c +0 -230
- data/third_party/boringssl/crypto/modes/ctr.c +0 -219
- data/third_party/boringssl/crypto/modes/gcm.c +0 -1071
- data/third_party/boringssl/crypto/modes/ofb.c +0 -95
- data/third_party/boringssl/crypto/modes/polyval.c +0 -94
- data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +0 -85
- data/third_party/boringssl/crypto/rand/rand.c +0 -244
- data/third_party/boringssl/crypto/rand/urandom.c +0 -335
- data/third_party/boringssl/crypto/rsa/blinding.c +0 -265
- data/third_party/boringssl/crypto/rsa/padding.c +0 -708
- data/third_party/boringssl/crypto/rsa/rsa.c +0 -830
- data/third_party/boringssl/crypto/rsa/rsa_impl.c +0 -1100
- data/third_party/boringssl/crypto/sha/sha1-altivec.c +0 -346
- data/third_party/boringssl/crypto/sha/sha1.c +0 -355
- data/third_party/boringssl/crypto/sha/sha256.c +0 -329
- data/third_party/boringssl/crypto/sha/sha512.c +0 -609
- data/third_party/boringssl/crypto/x509/x509type.c +0 -126
- data/third_party/boringssl/include/openssl/stack_macros.h +0 -3987
- data/third_party/boringssl/ssl/handshake_client.c +0 -1883
- data/third_party/boringssl/ssl/handshake_server.c +0 -1950
- data/third_party/boringssl/ssl/s3_both.c +0 -895
- data/third_party/boringssl/ssl/ssl_aead_ctx.c +0 -335
- data/third_party/boringssl/ssl/ssl_ecdh.c +0 -465
- data/third_party/boringssl/ssl/ssl_privkey.c +0 -683
- data/third_party/boringssl/ssl/ssl_privkey_cc.cc +0 -76
- data/third_party/boringssl/ssl/tls13_client.c +0 -712
- data/third_party/boringssl/ssl/tls13_server.c +0 -680
- data/third_party/boringssl/ssl/tls_record.c +0 -556
@@ -124,6 +124,8 @@
|
|
124
124
|
#include "internal.h"
|
125
125
|
|
126
126
|
|
127
|
+
using namespace bssl;
|
128
|
+
|
127
129
|
static const SRTP_PROTECTION_PROFILE kSRTPProfiles[] = {
|
128
130
|
{
|
129
131
|
"SRTP_AES128_CM_SHA1_80", SRTP_AES128_CM_SHA1_80,
|
@@ -143,9 +145,7 @@ static const SRTP_PROTECTION_PROFILE kSRTPProfiles[] = {
|
|
143
145
|
static int find_profile_by_name(const char *profile_name,
|
144
146
|
const SRTP_PROTECTION_PROFILE **pptr,
|
145
147
|
size_t len) {
|
146
|
-
const SRTP_PROTECTION_PROFILE *p;
|
147
|
-
|
148
|
-
p = kSRTPProfiles;
|
148
|
+
const SRTP_PROTECTION_PROFILE *p = kSRTPProfiles;
|
149
149
|
while (p->name) {
|
150
150
|
if (len == strlen(p->name) && !strncmp(p->name, profile_name, len)) {
|
151
151
|
*pptr = p;
|
@@ -160,9 +160,9 @@ static int find_profile_by_name(const char *profile_name,
|
|
160
160
|
|
161
161
|
static int ssl_ctx_make_profiles(const char *profiles_string,
|
162
162
|
STACK_OF(SRTP_PROTECTION_PROFILE) **out) {
|
163
|
-
STACK_OF(SRTP_PROTECTION_PROFILE)
|
164
|
-
sk_SRTP_PROTECTION_PROFILE_new_null();
|
165
|
-
if (profiles ==
|
163
|
+
UniquePtr<STACK_OF(SRTP_PROTECTION_PROFILE)> profiles(
|
164
|
+
sk_SRTP_PROTECTION_PROFILE_new_null());
|
165
|
+
if (profiles == nullptr) {
|
166
166
|
OPENSSL_PUT_ERROR(SSL, SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES);
|
167
167
|
return 0;
|
168
168
|
}
|
@@ -176,11 +176,11 @@ static int ssl_ctx_make_profiles(const char *profiles_string,
|
|
176
176
|
if (!find_profile_by_name(ptr, &profile,
|
177
177
|
col ? (size_t)(col - ptr) : strlen(ptr))) {
|
178
178
|
OPENSSL_PUT_ERROR(SSL, SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE);
|
179
|
-
|
179
|
+
return 0;
|
180
180
|
}
|
181
181
|
|
182
|
-
if (!sk_SRTP_PROTECTION_PROFILE_push(profiles, profile)) {
|
183
|
-
|
182
|
+
if (!sk_SRTP_PROTECTION_PROFILE_push(profiles.get(), profile)) {
|
183
|
+
return 0;
|
184
184
|
}
|
185
185
|
|
186
186
|
if (col) {
|
@@ -189,12 +189,8 @@ static int ssl_ctx_make_profiles(const char *profiles_string,
|
|
189
189
|
} while (col);
|
190
190
|
|
191
191
|
sk_SRTP_PROTECTION_PROFILE_free(*out);
|
192
|
-
*out = profiles;
|
192
|
+
*out = profiles.release();
|
193
193
|
return 1;
|
194
|
-
|
195
|
-
err:
|
196
|
-
sk_SRTP_PROTECTION_PROFILE_free(profiles);
|
197
|
-
return 0;
|
198
194
|
}
|
199
195
|
|
200
196
|
int SSL_CTX_set_srtp_profiles(SSL_CTX *ctx, const char *profiles) {
|
@@ -226,11 +222,11 @@ const SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *ssl) {
|
|
226
222
|
}
|
227
223
|
|
228
224
|
int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles) {
|
229
|
-
|
225
|
+
// This API inverts its return value.
|
230
226
|
return !SSL_CTX_set_srtp_profiles(ctx, profiles);
|
231
227
|
}
|
232
228
|
|
233
229
|
int SSL_set_tlsext_use_srtp(SSL *ssl, const char *profiles) {
|
234
|
-
|
230
|
+
// This API inverts its return value.
|
235
231
|
return !SSL_set_srtp_profiles(ssl, profiles);
|
236
232
|
}
|
@@ -66,49 +66,27 @@
|
|
66
66
|
#include "internal.h"
|
67
67
|
|
68
68
|
|
69
|
-
|
70
|
-
uint16_t wire_version) {
|
71
|
-
switch (wire_version) {
|
72
|
-
case DTLS1_VERSION:
|
73
|
-
/* DTLS 1.0 maps to TLS 1.1, not TLS 1.0. */
|
74
|
-
*out_version = TLS1_1_VERSION;
|
75
|
-
return 1;
|
76
|
-
case DTLS1_2_VERSION:
|
77
|
-
*out_version = TLS1_2_VERSION;
|
78
|
-
return 1;
|
79
|
-
}
|
80
|
-
|
81
|
-
return 0;
|
82
|
-
}
|
83
|
-
|
84
|
-
static uint16_t dtls1_version_to_wire(uint16_t version) {
|
85
|
-
switch (version) {
|
86
|
-
case TLS1_1_VERSION:
|
87
|
-
/* DTLS 1.0 maps to TLS 1.1, not TLS 1.0. */
|
88
|
-
return DTLS1_VERSION;
|
89
|
-
case TLS1_2_VERSION:
|
90
|
-
return DTLS1_2_VERSION;
|
91
|
-
}
|
92
|
-
|
93
|
-
/* It is an error to use this function with an invalid version. */
|
94
|
-
assert(0);
|
95
|
-
return 0;
|
96
|
-
}
|
69
|
+
using namespace bssl;
|
97
70
|
|
98
71
|
static int dtls1_supports_cipher(const SSL_CIPHER *cipher) {
|
99
72
|
return cipher->algorithm_enc != SSL_eNULL;
|
100
73
|
}
|
101
74
|
|
102
|
-
static void
|
103
|
-
|
104
|
-
|
75
|
+
static void dtls1_on_handshake_complete(SSL *ssl) {
|
76
|
+
// Stop the reply timer left by the last flight we sent.
|
77
|
+
dtls1_stop_timer(ssl);
|
78
|
+
// If the final flight had a reply, we know the peer has received it. If not,
|
79
|
+
// we must leave the flight around for post-handshake retransmission.
|
80
|
+
if (ssl->d1->flight_has_reply) {
|
81
|
+
dtls_clear_outgoing_messages(ssl);
|
82
|
+
}
|
83
|
+
}
|
105
84
|
|
106
|
-
static int dtls1_set_read_state(SSL *ssl,
|
107
|
-
|
108
|
-
if (dtls_has_incoming_messages(ssl)) {
|
85
|
+
static int dtls1_set_read_state(SSL *ssl, UniquePtr<SSLAEADContext> aead_ctx) {
|
86
|
+
// Cipher changes are illegal when there are buffered incoming messages.
|
87
|
+
if (dtls_has_incoming_messages(ssl) || ssl->d1->has_change_cipher_spec) {
|
109
88
|
OPENSSL_PUT_ERROR(SSL, SSL_R_BUFFERED_MESSAGES_ON_CIPHER_CHANGE);
|
110
89
|
ssl3_send_alert(ssl, SSL3_AL_FATAL, SSL_AD_UNEXPECTED_MESSAGE);
|
111
|
-
SSL_AEAD_CTX_free(aead_ctx);
|
112
90
|
return 0;
|
113
91
|
}
|
114
92
|
|
@@ -116,33 +94,30 @@ static int dtls1_set_read_state(SSL *ssl, SSL_AEAD_CTX *aead_ctx) {
|
|
116
94
|
OPENSSL_memset(&ssl->d1->bitmap, 0, sizeof(ssl->d1->bitmap));
|
117
95
|
OPENSSL_memset(ssl->s3->read_sequence, 0, sizeof(ssl->s3->read_sequence));
|
118
96
|
|
119
|
-
|
120
|
-
ssl->s3->aead_read_ctx = aead_ctx;
|
97
|
+
Delete(ssl->s3->aead_read_ctx);
|
98
|
+
ssl->s3->aead_read_ctx = aead_ctx.release();
|
121
99
|
return 1;
|
122
100
|
}
|
123
101
|
|
124
|
-
static int dtls1_set_write_state(SSL *ssl,
|
102
|
+
static int dtls1_set_write_state(SSL *ssl, UniquePtr<SSLAEADContext> aead_ctx) {
|
125
103
|
ssl->d1->w_epoch++;
|
126
104
|
OPENSSL_memcpy(ssl->d1->last_write_sequence, ssl->s3->write_sequence,
|
127
105
|
sizeof(ssl->s3->write_sequence));
|
128
106
|
OPENSSL_memset(ssl->s3->write_sequence, 0, sizeof(ssl->s3->write_sequence));
|
129
107
|
|
130
|
-
|
131
|
-
ssl->
|
108
|
+
Delete(ssl->d1->last_aead_write_ctx);
|
109
|
+
ssl->d1->last_aead_write_ctx = ssl->s3->aead_write_ctx;
|
110
|
+
ssl->s3->aead_write_ctx = aead_ctx.release();
|
132
111
|
return 1;
|
133
112
|
}
|
134
113
|
|
135
114
|
static const SSL_PROTOCOL_METHOD kDTLSProtocolMethod = {
|
136
115
|
1 /* is_dtls */,
|
137
|
-
TLS1_1_VERSION,
|
138
|
-
TLS1_2_VERSION,
|
139
|
-
dtls1_version_from_wire,
|
140
|
-
dtls1_version_to_wire,
|
141
116
|
dtls1_new,
|
142
117
|
dtls1_free,
|
143
118
|
dtls1_get_message,
|
144
|
-
|
145
|
-
|
119
|
+
dtls1_read_message,
|
120
|
+
dtls1_next_message,
|
146
121
|
dtls1_read_app_data,
|
147
122
|
dtls1_read_change_cipher_spec,
|
148
123
|
dtls1_read_close_notify,
|
@@ -155,8 +130,7 @@ static const SSL_PROTOCOL_METHOD kDTLSProtocolMethod = {
|
|
155
130
|
dtls1_add_change_cipher_spec,
|
156
131
|
dtls1_add_alert,
|
157
132
|
dtls1_flush_flight,
|
158
|
-
|
159
|
-
dtls1_received_flight,
|
133
|
+
dtls1_on_handshake_complete,
|
160
134
|
dtls1_set_read_state,
|
161
135
|
dtls1_set_write_state,
|
162
136
|
};
|
@@ -170,7 +144,16 @@ const SSL_METHOD *DTLS_method(void) {
|
|
170
144
|
return &kMethod;
|
171
145
|
}
|
172
146
|
|
173
|
-
|
147
|
+
const SSL_METHOD *DTLS_with_buffers_method(void) {
|
148
|
+
static const SSL_METHOD kMethod = {
|
149
|
+
0,
|
150
|
+
&kDTLSProtocolMethod,
|
151
|
+
&ssl_noop_x509_method,
|
152
|
+
};
|
153
|
+
return &kMethod;
|
154
|
+
}
|
155
|
+
|
156
|
+
// Legacy version-locked methods.
|
174
157
|
|
175
158
|
const SSL_METHOD *DTLSv1_2_method(void) {
|
176
159
|
static const SSL_METHOD kMethod = {
|
@@ -190,7 +173,7 @@ const SSL_METHOD *DTLSv1_method(void) {
|
|
190
173
|
return &kMethod;
|
191
174
|
}
|
192
175
|
|
193
|
-
|
176
|
+
// Legacy side-specific methods.
|
194
177
|
|
195
178
|
const SSL_METHOD *DTLSv1_2_server_method(void) {
|
196
179
|
return DTLSv1_2_method();
|
@@ -121,8 +121,10 @@
|
|
121
121
|
#include "../crypto/internal.h"
|
122
122
|
|
123
123
|
|
124
|
-
|
125
|
-
|
124
|
+
namespace bssl {
|
125
|
+
|
126
|
+
// to_u64_be treats |in| as a 8-byte big-endian integer and returns the value as
|
127
|
+
// a |uint64_t|.
|
126
128
|
static uint64_t to_u64_be(const uint8_t in[8]) {
|
127
129
|
uint64_t ret = 0;
|
128
130
|
unsigned i;
|
@@ -133,8 +135,8 @@ static uint64_t to_u64_be(const uint8_t in[8]) {
|
|
133
135
|
return ret;
|
134
136
|
}
|
135
137
|
|
136
|
-
|
137
|
-
|
138
|
+
// dtls1_bitmap_should_discard returns one if |seq_num| has been seen in
|
139
|
+
// |bitmap| or is stale. Otherwise it returns zero.
|
138
140
|
static int dtls1_bitmap_should_discard(DTLS1_BITMAP *bitmap,
|
139
141
|
const uint8_t seq_num[8]) {
|
140
142
|
const unsigned kWindowSize = sizeof(bitmap->map) * 8;
|
@@ -147,15 +149,15 @@ static int dtls1_bitmap_should_discard(DTLS1_BITMAP *bitmap,
|
|
147
149
|
return idx >= kWindowSize || (bitmap->map & (((uint64_t)1) << idx));
|
148
150
|
}
|
149
151
|
|
150
|
-
|
151
|
-
|
152
|
-
|
152
|
+
// dtls1_bitmap_record updates |bitmap| to record receipt of sequence number
|
153
|
+
// |seq_num|. It slides the window forward if needed. It is an error to call
|
154
|
+
// this function on a stale sequence number.
|
153
155
|
static void dtls1_bitmap_record(DTLS1_BITMAP *bitmap,
|
154
156
|
const uint8_t seq_num[8]) {
|
155
157
|
const unsigned kWindowSize = sizeof(bitmap->map) * 8;
|
156
158
|
|
157
159
|
uint64_t seq_num_u = to_u64_be(seq_num);
|
158
|
-
|
160
|
+
// Shift the window if necessary.
|
159
161
|
if (seq_num_u > bitmap->max_seq_num) {
|
160
162
|
uint64_t shift = seq_num_u - bitmap->max_seq_num;
|
161
163
|
if (shift >= kWindowSize) {
|
@@ -172,16 +174,15 @@ static void dtls1_bitmap_record(DTLS1_BITMAP *bitmap,
|
|
172
174
|
}
|
173
175
|
}
|
174
176
|
|
175
|
-
enum ssl_open_record_t dtls_open_record(SSL *ssl, uint8_t *out_type,
|
177
|
+
enum ssl_open_record_t dtls_open_record(SSL *ssl, uint8_t *out_type,
|
178
|
+
Span<uint8_t> *out,
|
176
179
|
size_t *out_consumed,
|
177
|
-
uint8_t *out_alert, uint8_t
|
178
|
-
size_t in_len) {
|
180
|
+
uint8_t *out_alert, Span<uint8_t> in) {
|
179
181
|
*out_consumed = 0;
|
180
182
|
|
181
|
-
CBS cbs;
|
182
|
-
CBS_init(&cbs, in, in_len);
|
183
|
+
CBS cbs = CBS(in);
|
183
184
|
|
184
|
-
|
185
|
+
// Decode the record.
|
185
186
|
uint8_t type;
|
186
187
|
uint16_t version;
|
187
188
|
uint8_t sequence[8];
|
@@ -190,45 +191,59 @@ enum ssl_open_record_t dtls_open_record(SSL *ssl, uint8_t *out_type, CBS *out,
|
|
190
191
|
!CBS_get_u16(&cbs, &version) ||
|
191
192
|
!CBS_copy_bytes(&cbs, sequence, 8) ||
|
192
193
|
!CBS_get_u16_length_prefixed(&cbs, &body) ||
|
193
|
-
(ssl->s3->have_version && version != ssl->version) ||
|
194
|
-
(version >> 8) != DTLS1_VERSION_MAJOR ||
|
195
194
|
CBS_len(&body) > SSL3_RT_MAX_ENCRYPTED_LENGTH) {
|
196
|
-
|
197
|
-
*out_consumed =
|
195
|
+
// The record header was incomplete or malformed. Drop the entire packet.
|
196
|
+
*out_consumed = in.size();
|
197
|
+
return ssl_open_record_discard;
|
198
|
+
}
|
199
|
+
|
200
|
+
bool version_ok;
|
201
|
+
if (ssl->s3->aead_read_ctx->is_null_cipher()) {
|
202
|
+
// Only check the first byte. Enforcing beyond that can prevent decoding
|
203
|
+
// version negotiation failure alerts.
|
204
|
+
version_ok = (version >> 8) == DTLS1_VERSION_MAJOR;
|
205
|
+
} else {
|
206
|
+
version_ok = version == ssl->s3->aead_read_ctx->RecordVersion();
|
207
|
+
}
|
208
|
+
|
209
|
+
if (!version_ok) {
|
210
|
+
// The record header was incomplete or malformed. Drop the entire packet.
|
211
|
+
*out_consumed = in.size();
|
198
212
|
return ssl_open_record_discard;
|
199
213
|
}
|
200
214
|
|
201
|
-
ssl_do_msg_callback(ssl, 0 /* read */, SSL3_RT_HEADER,
|
202
|
-
DTLS1_RT_HEADER_LENGTH);
|
215
|
+
ssl_do_msg_callback(ssl, 0 /* read */, SSL3_RT_HEADER,
|
216
|
+
in.subspan(0, DTLS1_RT_HEADER_LENGTH));
|
203
217
|
|
204
218
|
uint16_t epoch = (((uint16_t)sequence[0]) << 8) | sequence[1];
|
205
219
|
if (epoch != ssl->d1->r_epoch ||
|
206
220
|
dtls1_bitmap_should_discard(&ssl->d1->bitmap, sequence)) {
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
*out_consumed =
|
221
|
+
// Drop this record. It's from the wrong epoch or is a replay. Note that if
|
222
|
+
// |epoch| is the next epoch, the record could be buffered for later. For
|
223
|
+
// simplicity, drop it and expect retransmit to handle it later; DTLS must
|
224
|
+
// handle packet loss anyway.
|
225
|
+
*out_consumed = in.size() - CBS_len(&cbs);
|
212
226
|
return ssl_open_record_discard;
|
213
227
|
}
|
214
228
|
|
215
|
-
|
216
|
-
if (!
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
229
|
+
// discard the body in-place.
|
230
|
+
if (!ssl->s3->aead_read_ctx->Open(
|
231
|
+
out, type, version, sequence,
|
232
|
+
MakeSpan(const_cast<uint8_t *>(CBS_data(&body)), CBS_len(&body)))) {
|
233
|
+
// Bad packets are silently dropped in DTLS. See section 4.2.1 of RFC 6347.
|
234
|
+
// Clear the error queue of any errors decryption may have added. Drop the
|
235
|
+
// entire packet as it must not have come from the peer.
|
236
|
+
//
|
237
|
+
// TODO(davidben): This doesn't distinguish malloc failures from encryption
|
238
|
+
// failures.
|
224
239
|
ERR_clear_error();
|
225
|
-
*out_consumed =
|
240
|
+
*out_consumed = in.size() - CBS_len(&cbs);
|
226
241
|
return ssl_open_record_discard;
|
227
242
|
}
|
228
|
-
*out_consumed =
|
243
|
+
*out_consumed = in.size() - CBS_len(&cbs);
|
229
244
|
|
230
|
-
|
231
|
-
if (
|
245
|
+
// Check the plaintext length.
|
246
|
+
if (out->size() > SSL3_RT_MAX_PLAIN_LENGTH) {
|
232
247
|
OPENSSL_PUT_ERROR(SSL, SSL_R_DATA_LENGTH_TOO_LONG);
|
233
248
|
*out_alert = SSL_AD_RECORD_OVERFLOW;
|
234
249
|
return ssl_open_record_error;
|
@@ -236,11 +251,11 @@ enum ssl_open_record_t dtls_open_record(SSL *ssl, uint8_t *out_type, CBS *out,
|
|
236
251
|
|
237
252
|
dtls1_bitmap_record(&ssl->d1->bitmap, sequence);
|
238
253
|
|
239
|
-
|
240
|
-
|
254
|
+
// TODO(davidben): Limit the number of empty records as in TLS? This is only
|
255
|
+
// useful if we also limit discarded packets.
|
241
256
|
|
242
257
|
if (type == SSL3_RT_ALERT) {
|
243
|
-
return ssl_process_alert(ssl, out_alert,
|
258
|
+
return ssl_process_alert(ssl, out_alert, *out);
|
244
259
|
}
|
245
260
|
|
246
261
|
ssl->s3->warning_alert_count = 0;
|
@@ -249,13 +264,11 @@ enum ssl_open_record_t dtls_open_record(SSL *ssl, uint8_t *out_type, CBS *out,
|
|
249
264
|
return ssl_open_record_success;
|
250
265
|
}
|
251
266
|
|
252
|
-
static const
|
253
|
-
|
267
|
+
static const SSLAEADContext *get_write_aead(const SSL *ssl,
|
268
|
+
enum dtls1_use_epoch_t use_epoch) {
|
254
269
|
if (use_epoch == dtls1_use_previous_epoch) {
|
255
|
-
|
256
|
-
|
257
|
-
assert(ssl->d1->w_epoch == 1);
|
258
|
-
return NULL;
|
270
|
+
assert(ssl->d1->w_epoch >= 1);
|
271
|
+
return ssl->d1->last_aead_write_ctx;
|
259
272
|
}
|
260
273
|
|
261
274
|
return ssl->s3->aead_write_ctx;
|
@@ -263,13 +276,12 @@ static const SSL_AEAD_CTX *get_write_aead(const SSL *ssl,
|
|
263
276
|
|
264
277
|
size_t dtls_max_seal_overhead(const SSL *ssl,
|
265
278
|
enum dtls1_use_epoch_t use_epoch) {
|
266
|
-
return DTLS1_RT_HEADER_LENGTH +
|
267
|
-
SSL_AEAD_CTX_max_overhead(get_write_aead(ssl, use_epoch));
|
279
|
+
return DTLS1_RT_HEADER_LENGTH + get_write_aead(ssl, use_epoch)->MaxOverhead();
|
268
280
|
}
|
269
281
|
|
270
282
|
size_t dtls_seal_prefix_len(const SSL *ssl, enum dtls1_use_epoch_t use_epoch) {
|
271
283
|
return DTLS1_RT_HEADER_LENGTH +
|
272
|
-
|
284
|
+
get_write_aead(ssl, use_epoch)->ExplicitNonceLen();
|
273
285
|
}
|
274
286
|
|
275
287
|
int dtls_seal_record(SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out,
|
@@ -282,16 +294,14 @@ int dtls_seal_record(SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out,
|
|
282
294
|
return 0;
|
283
295
|
}
|
284
296
|
|
285
|
-
|
297
|
+
// Determine the parameters for the current epoch.
|
286
298
|
uint16_t epoch = ssl->d1->w_epoch;
|
287
|
-
|
299
|
+
SSLAEADContext *aead = ssl->s3->aead_write_ctx;
|
288
300
|
uint8_t *seq = ssl->s3->write_sequence;
|
289
301
|
if (use_epoch == dtls1_use_previous_epoch) {
|
290
|
-
|
291
|
-
* (negotiated cipher) exist. */
|
292
|
-
assert(ssl->d1->w_epoch == 1);
|
302
|
+
assert(ssl->d1->w_epoch >= 1);
|
293
303
|
epoch = ssl->d1->w_epoch - 1;
|
294
|
-
aead =
|
304
|
+
aead = ssl->d1->last_aead_write_ctx;
|
295
305
|
seq = ssl->d1->last_write_sequence;
|
296
306
|
}
|
297
307
|
|
@@ -302,18 +312,18 @@ int dtls_seal_record(SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out,
|
|
302
312
|
|
303
313
|
out[0] = type;
|
304
314
|
|
305
|
-
uint16_t
|
306
|
-
out[1] =
|
307
|
-
out[2] =
|
315
|
+
uint16_t record_version = ssl->s3->aead_write_ctx->RecordVersion();
|
316
|
+
out[1] = record_version >> 8;
|
317
|
+
out[2] = record_version & 0xff;
|
308
318
|
|
309
319
|
out[3] = epoch >> 8;
|
310
320
|
out[4] = epoch & 0xff;
|
311
321
|
OPENSSL_memcpy(&out[5], &seq[2], 6);
|
312
322
|
|
313
323
|
size_t ciphertext_len;
|
314
|
-
if (!
|
315
|
-
|
316
|
-
|
324
|
+
if (!aead->Seal(out + DTLS1_RT_HEADER_LENGTH, &ciphertext_len,
|
325
|
+
max_out - DTLS1_RT_HEADER_LENGTH, type, record_version,
|
326
|
+
&out[3] /* seq */, in, in_len) ||
|
317
327
|
!ssl_record_sequence_update(&seq[2], 6)) {
|
318
328
|
return 0;
|
319
329
|
}
|
@@ -327,8 +337,10 @@ int dtls_seal_record(SSL *ssl, uint8_t *out, size_t *out_len, size_t max_out,
|
|
327
337
|
|
328
338
|
*out_len = DTLS1_RT_HEADER_LENGTH + ciphertext_len;
|
329
339
|
|
330
|
-
ssl_do_msg_callback(ssl, 1 /* write */, SSL3_RT_HEADER,
|
331
|
-
DTLS1_RT_HEADER_LENGTH);
|
340
|
+
ssl_do_msg_callback(ssl, 1 /* write */, SSL3_RT_HEADER,
|
341
|
+
MakeSpan(out, DTLS1_RT_HEADER_LENGTH));
|
332
342
|
|
333
343
|
return 1;
|
334
344
|
}
|
345
|
+
|
346
|
+
} // namespace bssl
|