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
@@ -31,7 +31,7 @@ int BN_parse_asn1_unsigned(CBS *cbs, BIGNUM *ret) {
|
|
31
31
|
return 0;
|
32
32
|
}
|
33
33
|
|
34
|
-
|
34
|
+
// INTEGERs must be minimal.
|
35
35
|
if (CBS_data(&child)[0] == 0x00 &&
|
36
36
|
CBS_len(&child) > 1 &&
|
37
37
|
!(CBS_data(&child)[1] & 0x80)) {
|
@@ -50,16 +50,16 @@ int BN_parse_asn1_unsigned_buggy(CBS *cbs, BIGNUM *ret) {
|
|
50
50
|
return 0;
|
51
51
|
}
|
52
52
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
53
|
+
// This function intentionally does not reject negative numbers or non-minimal
|
54
|
+
// encodings. Estonian IDs issued between September 2014 to September 2015 are
|
55
|
+
// broken. See https://crbug.com/532048 and https://crbug.com/534766.
|
56
|
+
//
|
57
|
+
// TODO(davidben): Remove this code and callers in March 2016.
|
58
58
|
return BN_bin2bn(CBS_data(&child), CBS_len(&child), ret) != NULL;
|
59
59
|
}
|
60
60
|
|
61
61
|
int BN_marshal_asn1(CBB *cbb, const BIGNUM *bn) {
|
62
|
-
|
62
|
+
// Negative numbers are unsupported.
|
63
63
|
if (BN_is_negative(bn)) {
|
64
64
|
OPENSSL_PUT_ERROR(BN, BN_R_NEGATIVE_NUMBER);
|
65
65
|
return 0;
|
@@ -67,8 +67,8 @@ int BN_marshal_asn1(CBB *cbb, const BIGNUM *bn) {
|
|
67
67
|
|
68
68
|
CBB child;
|
69
69
|
if (!CBB_add_asn1(cbb, &child, CBS_ASN1_INTEGER) ||
|
70
|
-
|
71
|
-
|
70
|
+
// The number must be padded with a leading zero if the high bit would
|
71
|
+
// otherwise be set or if |bn| is zero.
|
72
72
|
(BN_num_bits(bn) % 8 == 0 && !CBB_add_u8(&child, 0x00)) ||
|
73
73
|
!BN_bn2cbb_padded(&child, BN_num_bytes(bn), bn) ||
|
74
74
|
!CBB_flush(cbb)) {
|
@@ -60,191 +60,14 @@
|
|
60
60
|
#include <ctype.h>
|
61
61
|
#include <limits.h>
|
62
62
|
#include <stdio.h>
|
63
|
-
#include <string.h>
|
64
63
|
|
65
64
|
#include <openssl/bio.h>
|
66
65
|
#include <openssl/bytestring.h>
|
67
66
|
#include <openssl/err.h>
|
68
67
|
#include <openssl/mem.h>
|
69
68
|
|
70
|
-
#include "internal.h"
|
69
|
+
#include "../fipsmodule/bn/internal.h"
|
71
70
|
|
72
|
-
BIGNUM *BN_bin2bn(const uint8_t *in, size_t len, BIGNUM *ret) {
|
73
|
-
size_t num_words;
|
74
|
-
unsigned m;
|
75
|
-
BN_ULONG word = 0;
|
76
|
-
BIGNUM *bn = NULL;
|
77
|
-
|
78
|
-
if (ret == NULL) {
|
79
|
-
ret = bn = BN_new();
|
80
|
-
}
|
81
|
-
|
82
|
-
if (ret == NULL) {
|
83
|
-
return NULL;
|
84
|
-
}
|
85
|
-
|
86
|
-
if (len == 0) {
|
87
|
-
ret->top = 0;
|
88
|
-
return ret;
|
89
|
-
}
|
90
|
-
|
91
|
-
num_words = ((len - 1) / BN_BYTES) + 1;
|
92
|
-
m = (len - 1) % BN_BYTES;
|
93
|
-
if (bn_wexpand(ret, num_words) == NULL) {
|
94
|
-
if (bn) {
|
95
|
-
BN_free(bn);
|
96
|
-
}
|
97
|
-
return NULL;
|
98
|
-
}
|
99
|
-
|
100
|
-
/* |bn_wexpand| must check bounds on |num_words| to write it into
|
101
|
-
* |ret->dmax|. */
|
102
|
-
assert(num_words <= INT_MAX);
|
103
|
-
ret->top = (int)num_words;
|
104
|
-
ret->neg = 0;
|
105
|
-
|
106
|
-
while (len--) {
|
107
|
-
word = (word << 8) | *(in++);
|
108
|
-
if (m-- == 0) {
|
109
|
-
ret->d[--num_words] = word;
|
110
|
-
word = 0;
|
111
|
-
m = BN_BYTES - 1;
|
112
|
-
}
|
113
|
-
}
|
114
|
-
|
115
|
-
/* need to call this due to clear byte at top if avoiding having the top bit
|
116
|
-
* set (-ve number) */
|
117
|
-
bn_correct_top(ret);
|
118
|
-
return ret;
|
119
|
-
}
|
120
|
-
|
121
|
-
BIGNUM *BN_le2bn(const uint8_t *in, size_t len, BIGNUM *ret) {
|
122
|
-
BIGNUM *bn = NULL;
|
123
|
-
if (ret == NULL) {
|
124
|
-
bn = BN_new();
|
125
|
-
ret = bn;
|
126
|
-
}
|
127
|
-
|
128
|
-
if (ret == NULL) {
|
129
|
-
return NULL;
|
130
|
-
}
|
131
|
-
|
132
|
-
if (len == 0) {
|
133
|
-
ret->top = 0;
|
134
|
-
ret->neg = 0;
|
135
|
-
return ret;
|
136
|
-
}
|
137
|
-
|
138
|
-
/* Reserve enough space in |ret|. */
|
139
|
-
size_t num_words = ((len - 1) / BN_BYTES) + 1;
|
140
|
-
if (!bn_wexpand(ret, num_words)) {
|
141
|
-
BN_free(bn);
|
142
|
-
return NULL;
|
143
|
-
}
|
144
|
-
ret->top = num_words;
|
145
|
-
|
146
|
-
/* Make sure the top bytes will be zeroed. */
|
147
|
-
ret->d[num_words - 1] = 0;
|
148
|
-
|
149
|
-
/* We only support little-endian platforms, so we can simply memcpy the
|
150
|
-
* internal representation. */
|
151
|
-
OPENSSL_memcpy(ret->d, in, len);
|
152
|
-
|
153
|
-
bn_correct_top(ret);
|
154
|
-
return ret;
|
155
|
-
}
|
156
|
-
|
157
|
-
size_t BN_bn2bin(const BIGNUM *in, uint8_t *out) {
|
158
|
-
size_t n, i;
|
159
|
-
BN_ULONG l;
|
160
|
-
|
161
|
-
n = i = BN_num_bytes(in);
|
162
|
-
while (i--) {
|
163
|
-
l = in->d[i / BN_BYTES];
|
164
|
-
*(out++) = (unsigned char)(l >> (8 * (i % BN_BYTES))) & 0xff;
|
165
|
-
}
|
166
|
-
return n;
|
167
|
-
}
|
168
|
-
|
169
|
-
int BN_bn2le_padded(uint8_t *out, size_t len, const BIGNUM *in) {
|
170
|
-
/* If we don't have enough space, fail out. */
|
171
|
-
size_t num_bytes = BN_num_bytes(in);
|
172
|
-
if (len < num_bytes) {
|
173
|
-
return 0;
|
174
|
-
}
|
175
|
-
|
176
|
-
/* We only support little-endian platforms, so we can simply memcpy into the
|
177
|
-
* internal representation. */
|
178
|
-
OPENSSL_memcpy(out, in->d, num_bytes);
|
179
|
-
|
180
|
-
/* Pad out the rest of the buffer with zeroes. */
|
181
|
-
OPENSSL_memset(out + num_bytes, 0, len - num_bytes);
|
182
|
-
|
183
|
-
return 1;
|
184
|
-
}
|
185
|
-
|
186
|
-
/* constant_time_select_ulong returns |x| if |v| is 1 and |y| if |v| is 0. Its
|
187
|
-
* behavior is undefined if |v| takes any other value. */
|
188
|
-
static BN_ULONG constant_time_select_ulong(int v, BN_ULONG x, BN_ULONG y) {
|
189
|
-
BN_ULONG mask = v;
|
190
|
-
mask--;
|
191
|
-
|
192
|
-
return (~mask & x) | (mask & y);
|
193
|
-
}
|
194
|
-
|
195
|
-
/* constant_time_le_size_t returns 1 if |x| <= |y| and 0 otherwise. |x| and |y|
|
196
|
-
* must not have their MSBs set. */
|
197
|
-
static int constant_time_le_size_t(size_t x, size_t y) {
|
198
|
-
return ((x - y - 1) >> (sizeof(size_t) * 8 - 1)) & 1;
|
199
|
-
}
|
200
|
-
|
201
|
-
/* read_word_padded returns the |i|'th word of |in|, if it is not out of
|
202
|
-
* bounds. Otherwise, it returns 0. It does so without branches on the size of
|
203
|
-
* |in|, however it necessarily does not have the same memory access pattern. If
|
204
|
-
* the access would be out of bounds, it reads the last word of |in|. |in| must
|
205
|
-
* not be zero. */
|
206
|
-
static BN_ULONG read_word_padded(const BIGNUM *in, size_t i) {
|
207
|
-
/* Read |in->d[i]| if valid. Otherwise, read the last word. */
|
208
|
-
BN_ULONG l = in->d[constant_time_select_ulong(
|
209
|
-
constant_time_le_size_t(in->dmax, i), in->dmax - 1, i)];
|
210
|
-
|
211
|
-
/* Clamp to zero if above |d->top|. */
|
212
|
-
return constant_time_select_ulong(constant_time_le_size_t(in->top, i), 0, l);
|
213
|
-
}
|
214
|
-
|
215
|
-
int BN_bn2bin_padded(uint8_t *out, size_t len, const BIGNUM *in) {
|
216
|
-
/* Special case for |in| = 0. Just branch as the probability is negligible. */
|
217
|
-
if (BN_is_zero(in)) {
|
218
|
-
OPENSSL_memset(out, 0, len);
|
219
|
-
return 1;
|
220
|
-
}
|
221
|
-
|
222
|
-
/* Check if the integer is too big. This case can exit early in non-constant
|
223
|
-
* time. */
|
224
|
-
if ((size_t)in->top > (len + (BN_BYTES - 1)) / BN_BYTES) {
|
225
|
-
return 0;
|
226
|
-
}
|
227
|
-
if ((len % BN_BYTES) != 0) {
|
228
|
-
BN_ULONG l = read_word_padded(in, len / BN_BYTES);
|
229
|
-
if (l >> (8 * (len % BN_BYTES)) != 0) {
|
230
|
-
return 0;
|
231
|
-
}
|
232
|
-
}
|
233
|
-
|
234
|
-
/* Write the bytes out one by one. Serialization is done without branching on
|
235
|
-
* the bits of |in| or on |in->top|, but if the routine would otherwise read
|
236
|
-
* out of bounds, the memory access pattern can't be fixed. However, for an
|
237
|
-
* RSA key of size a multiple of the word size, the probability of BN_BYTES
|
238
|
-
* leading zero octets is low.
|
239
|
-
*
|
240
|
-
* See Falko Stenzke, "Manger's Attack revisited", ICICS 2010. */
|
241
|
-
size_t i = len;
|
242
|
-
while (i--) {
|
243
|
-
BN_ULONG l = read_word_padded(in, i / BN_BYTES);
|
244
|
-
*(out++) = (uint8_t)(l >> (8 * (i % BN_BYTES))) & 0xff;
|
245
|
-
}
|
246
|
-
return 1;
|
247
|
-
}
|
248
71
|
|
249
72
|
int BN_bn2cbb_padded(CBB *out, size_t len, const BIGNUM *in) {
|
250
73
|
uint8_t *ptr;
|
@@ -273,7 +96,7 @@ char *BN_bn2hex(const BIGNUM *bn) {
|
|
273
96
|
int z = 0;
|
274
97
|
for (int i = bn->top - 1; i >= 0; i--) {
|
275
98
|
for (int j = BN_BITS2 - 8; j >= 0; j -= 8) {
|
276
|
-
|
99
|
+
// strip leading zeros
|
277
100
|
int v = ((int)(bn->d[i] >> (long)j)) & 0xff;
|
278
101
|
if (z || v != 0) {
|
279
102
|
*(p++) = hextable[v >> 4];
|
@@ -287,20 +110,20 @@ char *BN_bn2hex(const BIGNUM *bn) {
|
|
287
110
|
return buf;
|
288
111
|
}
|
289
112
|
|
290
|
-
|
113
|
+
// decode_hex decodes |in_len| bytes of hex data from |in| and updates |bn|.
|
291
114
|
static int decode_hex(BIGNUM *bn, const char *in, int in_len) {
|
292
115
|
if (in_len > INT_MAX/4) {
|
293
116
|
OPENSSL_PUT_ERROR(BN, BN_R_BIGNUM_TOO_LONG);
|
294
117
|
return 0;
|
295
118
|
}
|
296
|
-
|
297
|
-
if (bn_expand(bn, in_len * 4)
|
119
|
+
// |in_len| is the number of hex digits.
|
120
|
+
if (!bn_expand(bn, in_len * 4)) {
|
298
121
|
return 0;
|
299
122
|
}
|
300
123
|
|
301
124
|
int i = 0;
|
302
125
|
while (in_len > 0) {
|
303
|
-
|
126
|
+
// Decode one |BN_ULONG| at a time.
|
304
127
|
int todo = BN_BYTES * 2;
|
305
128
|
if (todo > in_len) {
|
306
129
|
todo = in_len;
|
@@ -320,7 +143,7 @@ static int decode_hex(BIGNUM *bn, const char *in, int in_len) {
|
|
320
143
|
hex = c - 'A' + 10;
|
321
144
|
} else {
|
322
145
|
hex = 0;
|
323
|
-
|
146
|
+
// This shouldn't happen. The caller checks |isxdigit|.
|
324
147
|
assert(0);
|
325
148
|
}
|
326
149
|
word = (word << 4) | hex;
|
@@ -334,12 +157,12 @@ static int decode_hex(BIGNUM *bn, const char *in, int in_len) {
|
|
334
157
|
return 1;
|
335
158
|
}
|
336
159
|
|
337
|
-
|
160
|
+
// decode_dec decodes |in_len| bytes of decimal data from |in| and updates |bn|.
|
338
161
|
static int decode_dec(BIGNUM *bn, const char *in, int in_len) {
|
339
162
|
int i, j;
|
340
163
|
BN_ULONG l = 0;
|
341
164
|
|
342
|
-
|
165
|
+
// Decode |BN_DEC_NUM| digits at a time.
|
343
166
|
j = BN_DEC_NUM - (in_len % BN_DEC_NUM);
|
344
167
|
if (j == BN_DEC_NUM) {
|
345
168
|
j = 0;
|
@@ -384,7 +207,7 @@ static int bn_x2bn(BIGNUM **outp, const char *in, decode_func decode, char_test_
|
|
384
207
|
return num;
|
385
208
|
}
|
386
209
|
|
387
|
-
|
210
|
+
// in is the start of the hex digits, and it is 'i' long
|
388
211
|
if (*outp == NULL) {
|
389
212
|
ret = BN_new();
|
390
213
|
if (ret == NULL) {
|
@@ -420,8 +243,8 @@ int BN_hex2bn(BIGNUM **outp, const char *in) {
|
|
420
243
|
}
|
421
244
|
|
422
245
|
char *BN_bn2dec(const BIGNUM *a) {
|
423
|
-
|
424
|
-
|
246
|
+
// It is easier to print strings little-endian, so we assemble it in reverse
|
247
|
+
// and fix at the end.
|
425
248
|
BIGNUM *copy = NULL;
|
426
249
|
CBB cbb;
|
427
250
|
if (!CBB_init(&cbb, 16) ||
|
@@ -467,7 +290,7 @@ char *BN_bn2dec(const BIGNUM *a) {
|
|
467
290
|
goto cbb_err;
|
468
291
|
}
|
469
292
|
|
470
|
-
|
293
|
+
// Reverse the buffer.
|
471
294
|
for (size_t i = 0; i < len/2; i++) {
|
472
295
|
uint8_t tmp = data[i];
|
473
296
|
data[i] = data[len - 1 - i];
|
@@ -526,7 +349,7 @@ int BN_print(BIO *bp, const BIGNUM *a) {
|
|
526
349
|
|
527
350
|
for (i = a->top - 1; i >= 0; i--) {
|
528
351
|
for (j = BN_BITS2 - 4; j >= 0; j -= 4) {
|
529
|
-
|
352
|
+
// strip leading zeros
|
530
353
|
v = ((int)(a->d[i] >> (long)j)) & 0x0f;
|
531
354
|
if (z || v != 0) {
|
532
355
|
if (BIO_write(bp, &hextable[v], 1) != 1) {
|
@@ -557,40 +380,12 @@ int BN_print_fp(FILE *fp, const BIGNUM *a) {
|
|
557
380
|
return ret;
|
558
381
|
}
|
559
382
|
|
560
|
-
BN_ULONG BN_get_word(const BIGNUM *bn) {
|
561
|
-
switch (bn->top) {
|
562
|
-
case 0:
|
563
|
-
return 0;
|
564
|
-
case 1:
|
565
|
-
return bn->d[0];
|
566
|
-
default:
|
567
|
-
return BN_MASK2;
|
568
|
-
}
|
569
|
-
}
|
570
|
-
|
571
|
-
int BN_get_u64(const BIGNUM *bn, uint64_t *out) {
|
572
|
-
switch (bn->top) {
|
573
|
-
case 0:
|
574
|
-
*out = 0;
|
575
|
-
return 1;
|
576
|
-
case 1:
|
577
|
-
*out = bn->d[0];
|
578
|
-
return 1;
|
579
|
-
#if defined(OPENSSL_32_BIT)
|
580
|
-
case 2:
|
581
|
-
*out = (uint64_t) bn->d[0] | (((uint64_t) bn->d[1]) << 32);
|
582
|
-
return 1;
|
583
|
-
#endif
|
584
|
-
default:
|
585
|
-
return 0;
|
586
|
-
}
|
587
|
-
}
|
588
383
|
|
589
384
|
size_t BN_bn2mpi(const BIGNUM *in, uint8_t *out) {
|
590
385
|
const size_t bits = BN_num_bits(in);
|
591
386
|
const size_t bytes = (bits + 7) / 8;
|
592
|
-
|
593
|
-
|
387
|
+
// If the number of bits is a multiple of 8, i.e. if the MSB is set,
|
388
|
+
// prefix with a zero byte.
|
594
389
|
int extend = 0;
|
595
390
|
if (bytes != 0 && (bits & 0x07) == 0) {
|
596
391
|
extend = 1;
|
@@ -600,8 +395,8 @@ size_t BN_bn2mpi(const BIGNUM *in, uint8_t *out) {
|
|
600
395
|
if (len < bytes ||
|
601
396
|
4 + len < len ||
|
602
397
|
(len & 0xffffffff) != len) {
|
603
|
-
|
604
|
-
|
398
|
+
// If we cannot represent the number then we emit zero as the interface
|
399
|
+
// doesn't allow an error to be signalled.
|
605
400
|
if (out) {
|
606
401
|
OPENSSL_memset(out, 0, 4);
|
607
402
|
}
|
@@ -82,44 +82,30 @@ void BUF_MEM_free(BUF_MEM *buf) {
|
|
82
82
|
return;
|
83
83
|
}
|
84
84
|
|
85
|
-
|
86
|
-
OPENSSL_cleanse(buf->data, buf->max);
|
87
|
-
OPENSSL_free(buf->data);
|
88
|
-
}
|
89
|
-
|
85
|
+
OPENSSL_free(buf->data);
|
90
86
|
OPENSSL_free(buf);
|
91
87
|
}
|
92
88
|
|
93
|
-
|
89
|
+
int BUF_MEM_reserve(BUF_MEM *buf, size_t cap) {
|
94
90
|
if (buf->max >= cap) {
|
95
91
|
return 1;
|
96
92
|
}
|
97
93
|
|
98
94
|
size_t n = cap + 3;
|
99
95
|
if (n < cap) {
|
100
|
-
|
96
|
+
// overflow
|
101
97
|
OPENSSL_PUT_ERROR(BUF, ERR_R_MALLOC_FAILURE);
|
102
98
|
return 0;
|
103
99
|
}
|
104
100
|
n = n / 3;
|
105
101
|
size_t alloc_size = n * 4;
|
106
102
|
if (alloc_size / 4 != n) {
|
107
|
-
|
103
|
+
// overflow
|
108
104
|
OPENSSL_PUT_ERROR(BUF, ERR_R_MALLOC_FAILURE);
|
109
105
|
return 0;
|
110
106
|
}
|
111
107
|
|
112
|
-
char *new_buf;
|
113
|
-
if (buf->data == NULL) {
|
114
|
-
new_buf = OPENSSL_malloc(alloc_size);
|
115
|
-
} else {
|
116
|
-
if (clean) {
|
117
|
-
new_buf = OPENSSL_realloc_clean(buf->data, buf->max, alloc_size);
|
118
|
-
} else {
|
119
|
-
new_buf = OPENSSL_realloc(buf->data, alloc_size);
|
120
|
-
}
|
121
|
-
}
|
122
|
-
|
108
|
+
char *new_buf = OPENSSL_realloc(buf->data, alloc_size);
|
123
109
|
if (new_buf == NULL) {
|
124
110
|
OPENSSL_PUT_ERROR(BUF, ERR_R_MALLOC_FAILURE);
|
125
111
|
return 0;
|
@@ -130,12 +116,8 @@ static int buf_mem_reserve(BUF_MEM *buf, size_t cap, int clean) {
|
|
130
116
|
return 1;
|
131
117
|
}
|
132
118
|
|
133
|
-
|
134
|
-
|
135
|
-
}
|
136
|
-
|
137
|
-
static size_t buf_mem_grow(BUF_MEM *buf, size_t len, int clean) {
|
138
|
-
if (!buf_mem_reserve(buf, len, clean)) {
|
119
|
+
size_t BUF_MEM_grow(BUF_MEM *buf, size_t len) {
|
120
|
+
if (!BUF_MEM_reserve(buf, len)) {
|
139
121
|
return 0;
|
140
122
|
}
|
141
123
|
if (buf->length < len) {
|
@@ -145,20 +127,16 @@ static size_t buf_mem_grow(BUF_MEM *buf, size_t len, int clean) {
|
|
145
127
|
return len;
|
146
128
|
}
|
147
129
|
|
148
|
-
size_t BUF_MEM_grow(BUF_MEM *buf, size_t len) {
|
149
|
-
return buf_mem_grow(buf, len, 0 /* don't clear old buffer contents. */);
|
150
|
-
}
|
151
|
-
|
152
130
|
size_t BUF_MEM_grow_clean(BUF_MEM *buf, size_t len) {
|
153
|
-
return
|
131
|
+
return BUF_MEM_grow(buf, len);
|
154
132
|
}
|
155
133
|
|
156
|
-
char *BUF_strdup(const char *
|
157
|
-
if (
|
134
|
+
char *BUF_strdup(const char *str) {
|
135
|
+
if (str == NULL) {
|
158
136
|
return NULL;
|
159
137
|
}
|
160
138
|
|
161
|
-
return BUF_strndup(
|
139
|
+
return BUF_strndup(str, strlen(str));
|
162
140
|
}
|
163
141
|
|
164
142
|
size_t BUF_strnlen(const char *str, size_t max_len) {
|
@@ -173,19 +151,19 @@ size_t BUF_strnlen(const char *str, size_t max_len) {
|
|
173
151
|
return i;
|
174
152
|
}
|
175
153
|
|
176
|
-
char *BUF_strndup(const char *
|
154
|
+
char *BUF_strndup(const char *str, size_t size) {
|
177
155
|
char *ret;
|
178
156
|
size_t alloc_size;
|
179
157
|
|
180
|
-
if (
|
158
|
+
if (str == NULL) {
|
181
159
|
return NULL;
|
182
160
|
}
|
183
161
|
|
184
|
-
size = BUF_strnlen(
|
162
|
+
size = BUF_strnlen(str, size);
|
185
163
|
|
186
164
|
alloc_size = size + 1;
|
187
165
|
if (alloc_size < size) {
|
188
|
-
|
166
|
+
// overflow
|
189
167
|
OPENSSL_PUT_ERROR(BUF, ERR_R_MALLOC_FAILURE);
|
190
168
|
return NULL;
|
191
169
|
}
|
@@ -195,7 +173,7 @@ char *BUF_strndup(const char *buf, size_t size) {
|
|
195
173
|
return NULL;
|
196
174
|
}
|
197
175
|
|
198
|
-
OPENSSL_memcpy(ret,
|
176
|
+
OPENSSL_memcpy(ret, str, size);
|
199
177
|
ret[size] = '\0';
|
200
178
|
return ret;
|
201
179
|
}
|
@@ -223,19 +201,17 @@ size_t BUF_strlcat(char *dst, const char *src, size_t dst_size) {
|
|
223
201
|
return l + BUF_strlcpy(dst, src, dst_size);
|
224
202
|
}
|
225
203
|
|
226
|
-
void *BUF_memdup(const void *data, size_t
|
227
|
-
|
228
|
-
|
229
|
-
if (dst_size == 0) {
|
204
|
+
void *BUF_memdup(const void *data, size_t size) {
|
205
|
+
if (size == 0) {
|
230
206
|
return NULL;
|
231
207
|
}
|
232
208
|
|
233
|
-
ret = OPENSSL_malloc(
|
209
|
+
void *ret = OPENSSL_malloc(size);
|
234
210
|
if (ret == NULL) {
|
235
211
|
OPENSSL_PUT_ERROR(BUF, ERR_R_MALLOC_FAILURE);
|
236
212
|
return NULL;
|
237
213
|
}
|
238
214
|
|
239
|
-
OPENSSL_memcpy(ret, data,
|
215
|
+
OPENSSL_memcpy(ret, data, size);
|
240
216
|
return ret;
|
241
217
|
}
|