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
@@ -42,15 +42,15 @@ ENGINE *ENGINE_new(void) {
|
|
42
42
|
}
|
43
43
|
|
44
44
|
void ENGINE_free(ENGINE *engine) {
|
45
|
-
|
45
|
+
// Methods are currently required to be static so are not unref'ed.
|
46
46
|
OPENSSL_free(engine);
|
47
47
|
}
|
48
48
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
49
|
+
// set_method takes a pointer to a method and its given size and sets
|
50
|
+
// |*out_member| to point to it. This function might want to be extended in the
|
51
|
+
// future to support making a copy of the method so that a stable ABI for
|
52
|
+
// ENGINEs can be supported. But, for the moment, all *_METHODS must be
|
53
|
+
// static.
|
54
54
|
static int set_method(void **out_member, const void *method, size_t method_size,
|
55
55
|
size_t compiled_size) {
|
56
56
|
const struct openssl_method_common_st *common = method;
|
@@ -123,32 +123,64 @@ OPENSSL_MSVC_PRAGMA(warning(pop))
|
|
123
123
|
#include <openssl/thread.h>
|
124
124
|
|
125
125
|
#include "../internal.h"
|
126
|
+
#include "./internal.h"
|
127
|
+
|
128
|
+
|
129
|
+
struct err_error_st {
|
130
|
+
// file contains the filename where the error occurred.
|
131
|
+
const char *file;
|
132
|
+
// data contains a NUL-terminated string with optional data. It must be freed
|
133
|
+
// with |OPENSSL_free|.
|
134
|
+
char *data;
|
135
|
+
// packed contains the error library and reason, as packed by ERR_PACK.
|
136
|
+
uint32_t packed;
|
137
|
+
// line contains the line number where the error occurred.
|
138
|
+
uint16_t line;
|
139
|
+
// mark indicates a reversion point in the queue. See |ERR_pop_to_mark|.
|
140
|
+
unsigned mark : 1;
|
141
|
+
};
|
126
142
|
|
143
|
+
// ERR_STATE contains the per-thread, error queue.
|
144
|
+
typedef struct err_state_st {
|
145
|
+
// errors contains the ERR_NUM_ERRORS most recent errors, organised as a ring
|
146
|
+
// buffer.
|
147
|
+
struct err_error_st errors[ERR_NUM_ERRORS];
|
148
|
+
// top contains the index one past the most recent error. If |top| equals
|
149
|
+
// |bottom| then the queue is empty.
|
150
|
+
unsigned top;
|
151
|
+
// bottom contains the index of the last error in the queue.
|
152
|
+
unsigned bottom;
|
153
|
+
|
154
|
+
// to_free, if not NULL, contains a pointer owned by this structure that was
|
155
|
+
// previously a |data| pointer of one of the elements of |errors|.
|
156
|
+
void *to_free;
|
157
|
+
} ERR_STATE;
|
127
158
|
|
128
159
|
extern const uint32_t kOpenSSLReasonValues[];
|
129
160
|
extern const size_t kOpenSSLReasonValuesLen;
|
130
161
|
extern const char kOpenSSLReasonStringData[];
|
131
162
|
|
132
|
-
|
133
|
-
static void err_clear_data(struct err_error_st *error) {
|
134
|
-
if ((error->flags & ERR_FLAG_MALLOCED) != 0) {
|
135
|
-
OPENSSL_free(error->data);
|
136
|
-
}
|
137
|
-
error->data = NULL;
|
138
|
-
error->flags &= ~ERR_FLAG_MALLOCED;
|
139
|
-
}
|
140
|
-
|
141
|
-
/* err_clear clears the given queued error. */
|
163
|
+
// err_clear clears the given queued error.
|
142
164
|
static void err_clear(struct err_error_st *error) {
|
143
|
-
|
165
|
+
OPENSSL_free(error->data);
|
144
166
|
OPENSSL_memset(error, 0, sizeof(struct err_error_st));
|
145
167
|
}
|
146
168
|
|
147
|
-
|
169
|
+
static void err_copy(struct err_error_st *dst, const struct err_error_st *src) {
|
170
|
+
err_clear(dst);
|
171
|
+
dst->file = src->file;
|
172
|
+
if (src->data != NULL) {
|
173
|
+
dst->data = OPENSSL_strdup(src->data);
|
174
|
+
}
|
175
|
+
dst->packed = src->packed;
|
176
|
+
dst->line = src->line;
|
177
|
+
}
|
178
|
+
|
179
|
+
// global_next_library contains the next custom library value to return.
|
148
180
|
static int global_next_library = ERR_NUM_LIBS;
|
149
181
|
|
150
|
-
|
151
|
-
|
182
|
+
// global_next_library_mutex protects |global_next_library| from concurrent
|
183
|
+
// updates.
|
152
184
|
static struct CRYPTO_STATIC_MUTEX global_next_library_mutex =
|
153
185
|
CRYPTO_STATIC_MUTEX_INIT;
|
154
186
|
|
@@ -159,15 +191,14 @@ static void err_state_free(void *statep) {
|
|
159
191
|
return;
|
160
192
|
}
|
161
193
|
|
162
|
-
unsigned i;
|
163
|
-
for (i = 0; i < ERR_NUM_ERRORS; i++) {
|
194
|
+
for (unsigned i = 0; i < ERR_NUM_ERRORS; i++) {
|
164
195
|
err_clear(&state->errors[i]);
|
165
196
|
}
|
166
197
|
OPENSSL_free(state->to_free);
|
167
198
|
OPENSSL_free(state);
|
168
199
|
}
|
169
200
|
|
170
|
-
|
201
|
+
// err_get_state gets the ERR_STATE object for the current thread.
|
171
202
|
static ERR_STATE *err_get_state(void) {
|
172
203
|
ERR_STATE *state = CRYPTO_get_thread_local(OPENSSL_THREAD_LOCAL_ERR);
|
173
204
|
if (state == NULL) {
|
@@ -199,7 +230,7 @@ static uint32_t get_error_values(int inc, int top, const char **file, int *line,
|
|
199
230
|
|
200
231
|
if (top) {
|
201
232
|
assert(!inc);
|
202
|
-
|
233
|
+
// last error
|
203
234
|
i = state->top;
|
204
235
|
} else {
|
205
236
|
i = (state->bottom + 1) % ERR_NUM_ERRORS;
|
@@ -227,20 +258,19 @@ static uint32_t get_error_values(int inc, int top, const char **file, int *line,
|
|
227
258
|
} else {
|
228
259
|
*data = error->data;
|
229
260
|
if (flags != NULL) {
|
230
|
-
*flags =
|
261
|
+
*flags = ERR_FLAG_STRING;
|
231
262
|
}
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
263
|
+
// If this error is being removed, take ownership of data from
|
264
|
+
// the error. The semantics are such that the caller doesn't
|
265
|
+
// take ownership either. Instead the error system takes
|
266
|
+
// ownership and retains it until the next call that affects the
|
267
|
+
// error queue.
|
237
268
|
if (inc) {
|
238
|
-
if (error->
|
269
|
+
if (error->data != NULL) {
|
239
270
|
OPENSSL_free(state->to_free);
|
240
271
|
state->to_free = error->data;
|
241
272
|
}
|
242
273
|
error->data = NULL;
|
243
|
-
error->flags = 0;
|
244
274
|
}
|
245
275
|
}
|
246
276
|
}
|
@@ -342,13 +372,13 @@ char *ERR_error_string(uint32_t packed_error, char *ret) {
|
|
342
372
|
static char buf[ERR_ERROR_STRING_BUF_LEN];
|
343
373
|
|
344
374
|
if (ret == NULL) {
|
345
|
-
|
375
|
+
// TODO(fork): remove this.
|
346
376
|
ret = buf;
|
347
377
|
}
|
348
378
|
|
349
379
|
#if !defined(NDEBUG)
|
350
|
-
|
351
|
-
|
380
|
+
// This is aimed to help catch callers who don't provide
|
381
|
+
// |ERR_ERROR_STRING_BUF_LEN| bytes of space.
|
352
382
|
OPENSSL_memset(ret, 0, ERR_ERROR_STRING_BUF_LEN);
|
353
383
|
#endif
|
354
384
|
|
@@ -386,15 +416,15 @@ void ERR_error_string_n(uint32_t packed_error, char *buf, size_t len) {
|
|
386
416
|
packed_error, lib_str, reason_str);
|
387
417
|
|
388
418
|
if (strlen(buf) == len - 1) {
|
389
|
-
|
390
|
-
|
419
|
+
// output may be truncated; make sure we always have 5 colon-separated
|
420
|
+
// fields, i.e. 4 colons.
|
391
421
|
static const unsigned num_colons = 4;
|
392
422
|
unsigned i;
|
393
423
|
char *s = buf;
|
394
424
|
|
395
425
|
if (len <= num_colons) {
|
396
|
-
|
397
|
-
|
426
|
+
// In this situation it's not possible to ensure that the correct number
|
427
|
+
// of colons are included in the output.
|
398
428
|
return;
|
399
429
|
}
|
400
430
|
|
@@ -403,10 +433,10 @@ void ERR_error_string_n(uint32_t packed_error, char *buf, size_t len) {
|
|
403
433
|
char *last_pos = &buf[len - 1] - num_colons + i;
|
404
434
|
|
405
435
|
if (colon == NULL || colon > last_pos) {
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
436
|
+
// set colon |i| at last possible position (buf[len-1] is the
|
437
|
+
// terminating 0). If we're setting this colon, then all whole of the
|
438
|
+
// rest of the string must be colons in order to have the correct
|
439
|
+
// number.
|
410
440
|
OPENSSL_memset(last_pos, ':', num_colons - i);
|
411
441
|
break;
|
412
442
|
}
|
@@ -431,25 +461,25 @@ static int err_string_cmp(const void *a, const void *b) {
|
|
431
461
|
}
|
432
462
|
}
|
433
463
|
|
434
|
-
|
435
|
-
|
464
|
+
// err_string_lookup looks up the string associated with |lib| and |key| in
|
465
|
+
// |values| and |string_data|. It returns the string or NULL if not found.
|
436
466
|
static const char *err_string_lookup(uint32_t lib, uint32_t key,
|
437
467
|
const uint32_t *values,
|
438
468
|
size_t num_values,
|
439
469
|
const char *string_data) {
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
470
|
+
// |values| points to data in err_data.h, which is generated by
|
471
|
+
// err_data_generate.go. It's an array of uint32_t values. Each value has the
|
472
|
+
// following structure:
|
473
|
+
// | lib | key | offset |
|
474
|
+
// |6 bits| 11 bits | 15 bits |
|
475
|
+
//
|
476
|
+
// The |lib| value is a library identifier: one of the |ERR_LIB_*| values.
|
477
|
+
// The |key| is a reason code, depending on the context.
|
478
|
+
// The |offset| is the number of bytes from the start of |string_data| where
|
479
|
+
// the (NUL terminated) string for this value can be found.
|
480
|
+
//
|
481
|
+
// Values are sorted based on treating the |lib| and |key| part as an
|
482
|
+
// unsigned integer.
|
453
483
|
if (lib >= (1 << 6) || key >= (1 << 11)) {
|
454
484
|
return NULL;
|
455
485
|
}
|
@@ -465,38 +495,38 @@ static const char *err_string_lookup(uint32_t lib, uint32_t key,
|
|
465
495
|
|
466
496
|
static const char *const kLibraryNames[ERR_NUM_LIBS] = {
|
467
497
|
"invalid library (0)",
|
468
|
-
"unknown library",
|
469
|
-
"system library",
|
470
|
-
"bignum routines",
|
471
|
-
"RSA routines",
|
472
|
-
"Diffie-Hellman routines",
|
473
|
-
"public key routines",
|
474
|
-
"memory buffer routines",
|
475
|
-
"object identifier routines",
|
476
|
-
"PEM routines",
|
477
|
-
"DSA routines",
|
478
|
-
"X.509 certificate routines",
|
479
|
-
"ASN.1 encoding routines",
|
480
|
-
"configuration file routines",
|
481
|
-
"common libcrypto routines",
|
482
|
-
"elliptic curve routines",
|
483
|
-
"SSL routines",
|
484
|
-
"BIO routines",
|
485
|
-
"PKCS7 routines",
|
486
|
-
"PKCS8 routines",
|
487
|
-
"X509 V3 routines",
|
488
|
-
"random number generator",
|
489
|
-
"ENGINE routines",
|
490
|
-
"OCSP routines",
|
491
|
-
"UI routines",
|
492
|
-
"COMP routines",
|
493
|
-
"ECDSA routines",
|
494
|
-
"ECDH routines",
|
495
|
-
"HMAC routines",
|
496
|
-
"Digest functions",
|
497
|
-
"Cipher functions",
|
498
|
-
"HKDF functions",
|
499
|
-
"User defined functions",
|
498
|
+
"unknown library", // ERR_LIB_NONE
|
499
|
+
"system library", // ERR_LIB_SYS
|
500
|
+
"bignum routines", // ERR_LIB_BN
|
501
|
+
"RSA routines", // ERR_LIB_RSA
|
502
|
+
"Diffie-Hellman routines", // ERR_LIB_DH
|
503
|
+
"public key routines", // ERR_LIB_EVP
|
504
|
+
"memory buffer routines", // ERR_LIB_BUF
|
505
|
+
"object identifier routines", // ERR_LIB_OBJ
|
506
|
+
"PEM routines", // ERR_LIB_PEM
|
507
|
+
"DSA routines", // ERR_LIB_DSA
|
508
|
+
"X.509 certificate routines", // ERR_LIB_X509
|
509
|
+
"ASN.1 encoding routines", // ERR_LIB_ASN1
|
510
|
+
"configuration file routines", // ERR_LIB_CONF
|
511
|
+
"common libcrypto routines", // ERR_LIB_CRYPTO
|
512
|
+
"elliptic curve routines", // ERR_LIB_EC
|
513
|
+
"SSL routines", // ERR_LIB_SSL
|
514
|
+
"BIO routines", // ERR_LIB_BIO
|
515
|
+
"PKCS7 routines", // ERR_LIB_PKCS7
|
516
|
+
"PKCS8 routines", // ERR_LIB_PKCS8
|
517
|
+
"X509 V3 routines", // ERR_LIB_X509V3
|
518
|
+
"random number generator", // ERR_LIB_RAND
|
519
|
+
"ENGINE routines", // ERR_LIB_ENGINE
|
520
|
+
"OCSP routines", // ERR_LIB_OCSP
|
521
|
+
"UI routines", // ERR_LIB_UI
|
522
|
+
"COMP routines", // ERR_LIB_COMP
|
523
|
+
"ECDSA routines", // ERR_LIB_ECDSA
|
524
|
+
"ECDH routines", // ERR_LIB_ECDH
|
525
|
+
"HMAC routines", // ERR_LIB_HMAC
|
526
|
+
"Digest functions", // ERR_LIB_DIGEST
|
527
|
+
"Cipher functions", // ERR_LIB_CIPHER
|
528
|
+
"HKDF functions", // ERR_LIB_HKDF
|
529
|
+
"User defined functions", // ERR_LIB_USER
|
500
530
|
};
|
501
531
|
|
502
532
|
const char *ERR_lib_error_string(uint32_t packed_error) {
|
@@ -555,8 +585,8 @@ void ERR_print_errors_cb(ERR_print_errors_callback_t callback, void *ctx) {
|
|
555
585
|
int line, flags;
|
556
586
|
uint32_t packed_error;
|
557
587
|
|
558
|
-
|
559
|
-
|
588
|
+
// thread_hash is the least-significant bits of the |ERR_STATE| pointer value
|
589
|
+
// for this thread.
|
560
590
|
const unsigned long thread_hash = (uintptr_t) err_get_state();
|
561
591
|
|
562
592
|
for (;;) {
|
@@ -585,24 +615,20 @@ void ERR_print_errors_fp(FILE *file) {
|
|
585
615
|
ERR_print_errors_cb(print_errors_to_file, file);
|
586
616
|
}
|
587
617
|
|
588
|
-
|
589
|
-
|
590
|
-
static void err_set_error_data(char *data, int flags) {
|
618
|
+
// err_set_error_data sets the data on the most recent error.
|
619
|
+
static void err_set_error_data(char *data) {
|
591
620
|
ERR_STATE *const state = err_get_state();
|
592
621
|
struct err_error_st *error;
|
593
622
|
|
594
623
|
if (state == NULL || state->top == state->bottom) {
|
595
|
-
|
596
|
-
OPENSSL_free(data);
|
597
|
-
}
|
624
|
+
OPENSSL_free(data);
|
598
625
|
return;
|
599
626
|
}
|
600
627
|
|
601
628
|
error = &state->errors[state->top];
|
602
629
|
|
603
|
-
|
630
|
+
OPENSSL_free(error->data);
|
604
631
|
error->data = data;
|
605
|
-
error->flags = flags;
|
606
632
|
}
|
607
633
|
|
608
634
|
void ERR_put_error(int library, int unused, int reason, const char *file,
|
@@ -634,9 +660,9 @@ void ERR_put_error(int library, int unused, int reason, const char *file,
|
|
634
660
|
error->packed = ERR_PACK(library, reason);
|
635
661
|
}
|
636
662
|
|
637
|
-
|
638
|
-
|
639
|
-
|
663
|
+
// ERR_add_error_data_vdata takes a variable number of const char* pointers,
|
664
|
+
// concatenates them and sets the result as the data on the most recent
|
665
|
+
// error.
|
640
666
|
static void err_add_error_vdata(unsigned num, va_list args) {
|
641
667
|
size_t alloced, new_len, len = 0, substr_len;
|
642
668
|
char *buf;
|
@@ -661,7 +687,7 @@ static void err_add_error_vdata(unsigned num, va_list args) {
|
|
661
687
|
char *new_buf;
|
662
688
|
|
663
689
|
if (alloced + 20 + 1 < alloced) {
|
664
|
-
|
690
|
+
// overflow.
|
665
691
|
OPENSSL_free(buf);
|
666
692
|
return;
|
667
693
|
}
|
@@ -680,7 +706,7 @@ static void err_add_error_vdata(unsigned num, va_list args) {
|
|
680
706
|
}
|
681
707
|
|
682
708
|
buf[len] = 0;
|
683
|
-
err_set_error_data(buf
|
709
|
+
err_set_error_data(buf);
|
684
710
|
}
|
685
711
|
|
686
712
|
void ERR_add_error_data(unsigned count, ...) {
|
@@ -695,9 +721,9 @@ void ERR_add_error_dataf(const char *format, ...) {
|
|
695
721
|
char *buf;
|
696
722
|
static const unsigned buf_len = 256;
|
697
723
|
|
698
|
-
|
699
|
-
|
700
|
-
|
724
|
+
// A fixed-size buffer is used because va_copy (which would be needed in
|
725
|
+
// order to call vsnprintf twice and measure the buffer) wasn't defined until
|
726
|
+
// C99.
|
701
727
|
buf = OPENSSL_malloc(buf_len + 1);
|
702
728
|
if (buf == NULL) {
|
703
729
|
return;
|
@@ -708,7 +734,7 @@ void ERR_add_error_dataf(const char *format, ...) {
|
|
708
734
|
buf[buf_len] = 0;
|
709
735
|
va_end(ap);
|
710
736
|
|
711
|
-
err_set_error_data(buf
|
737
|
+
err_set_error_data(buf);
|
712
738
|
}
|
713
739
|
|
714
740
|
int ERR_set_mark(void) {
|
@@ -717,7 +743,7 @@ int ERR_set_mark(void) {
|
|
717
743
|
if (state == NULL || state->bottom == state->top) {
|
718
744
|
return 0;
|
719
745
|
}
|
720
|
-
state->errors[state->top].
|
746
|
+
state->errors[state->top].mark = 1;
|
721
747
|
return 1;
|
722
748
|
}
|
723
749
|
|
@@ -731,8 +757,8 @@ int ERR_pop_to_mark(void) {
|
|
731
757
|
while (state->bottom != state->top) {
|
732
758
|
struct err_error_st *error = &state->errors[state->top];
|
733
759
|
|
734
|
-
if (
|
735
|
-
error->
|
760
|
+
if (error->mark) {
|
761
|
+
error->mark = 0;
|
736
762
|
return 1;
|
737
763
|
}
|
738
764
|
|
@@ -754,3 +780,68 @@ void ERR_free_strings(void) {}
|
|
754
780
|
void ERR_load_BIO_strings(void) {}
|
755
781
|
|
756
782
|
void ERR_load_ERR_strings(void) {}
|
783
|
+
|
784
|
+
struct err_save_state_st {
|
785
|
+
struct err_error_st *errors;
|
786
|
+
size_t num_errors;
|
787
|
+
};
|
788
|
+
|
789
|
+
void ERR_SAVE_STATE_free(ERR_SAVE_STATE *state) {
|
790
|
+
if (state == NULL) {
|
791
|
+
return;
|
792
|
+
}
|
793
|
+
for (size_t i = 0; i < state->num_errors; i++) {
|
794
|
+
err_clear(&state->errors[i]);
|
795
|
+
}
|
796
|
+
OPENSSL_free(state->errors);
|
797
|
+
OPENSSL_free(state);
|
798
|
+
}
|
799
|
+
|
800
|
+
ERR_SAVE_STATE *ERR_save_state(void) {
|
801
|
+
ERR_STATE *const state = err_get_state();
|
802
|
+
if (state == NULL || state->top == state->bottom) {
|
803
|
+
return NULL;
|
804
|
+
}
|
805
|
+
|
806
|
+
ERR_SAVE_STATE *ret = OPENSSL_malloc(sizeof(ERR_SAVE_STATE));
|
807
|
+
if (ret == NULL) {
|
808
|
+
return NULL;
|
809
|
+
}
|
810
|
+
|
811
|
+
// Errors are stored in the range (bottom, top].
|
812
|
+
size_t num_errors = state->top >= state->bottom
|
813
|
+
? state->top - state->bottom
|
814
|
+
: ERR_NUM_ERRORS + state->top - state->bottom;
|
815
|
+
assert(num_errors < ERR_NUM_ERRORS);
|
816
|
+
ret->errors = OPENSSL_malloc(num_errors * sizeof(struct err_error_st));
|
817
|
+
if (ret->errors == NULL) {
|
818
|
+
OPENSSL_free(ret);
|
819
|
+
return NULL;
|
820
|
+
}
|
821
|
+
OPENSSL_memset(ret->errors, 0, num_errors * sizeof(struct err_error_st));
|
822
|
+
ret->num_errors = num_errors;
|
823
|
+
|
824
|
+
for (size_t i = 0; i < num_errors; i++) {
|
825
|
+
size_t j = (state->bottom + i + 1) % ERR_NUM_ERRORS;
|
826
|
+
err_copy(&ret->errors[i], &state->errors[j]);
|
827
|
+
}
|
828
|
+
return ret;
|
829
|
+
}
|
830
|
+
|
831
|
+
void ERR_restore_state(const ERR_SAVE_STATE *state) {
|
832
|
+
if (state == NULL || state->num_errors == 0) {
|
833
|
+
ERR_clear_error();
|
834
|
+
return;
|
835
|
+
}
|
836
|
+
|
837
|
+
ERR_STATE *const dst = err_get_state();
|
838
|
+
if (dst == NULL) {
|
839
|
+
return;
|
840
|
+
}
|
841
|
+
|
842
|
+
for (size_t i = 0; i < state->num_errors; i++) {
|
843
|
+
err_copy(&dst->errors[i], &state->errors[i]);
|
844
|
+
}
|
845
|
+
dst->top = state->num_errors - 1;
|
846
|
+
dst->bottom = ERR_NUM_ERRORS - 1;
|
847
|
+
}
|