awesome-grpc-that-works 0.12.2 → 0.14.0.dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.yardopts +1 -0
- data/Makefile +5783 -22121
- data/include/grpc/byte_buffer.h +2 -83
- data/include/grpc/census.h +173 -121
- data/include/grpc/compression.h +14 -38
- data/include/grpc/grpc.h +85 -434
- data/include/grpc/grpc_security.h +76 -46
- data/include/grpc/grpc_zookeeper.h +1 -1
- data/include/grpc/impl/codegen/alloc.h +74 -0
- data/include/grpc/impl/codegen/atm.h +92 -0
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +72 -0
- data/include/grpc/impl/codegen/atm_gcc_sync.h +87 -0
- data/include/grpc/impl/codegen/atm_win32.h +125 -0
- data/include/grpc/impl/codegen/byte_buffer.h +121 -0
- data/include/grpc/impl/codegen/compression_types.h +73 -0
- data/include/grpc/impl/codegen/connectivity_state.h +59 -0
- data/include/grpc/impl/codegen/grpc_types.h +378 -0
- data/include/grpc/impl/codegen/log.h +110 -0
- data/include/grpc/impl/codegen/port_platform.h +370 -0
- data/include/grpc/impl/codegen/propagation_bits.h +67 -0
- data/include/grpc/impl/codegen/slice.h +182 -0
- data/include/grpc/impl/codegen/slice_buffer.h +105 -0
- data/include/grpc/impl/codegen/status.h +163 -0
- data/include/grpc/impl/codegen/sync.h +316 -0
- data/include/grpc/impl/codegen/sync_generic.h +55 -0
- data/{src/core/census/context.h → include/grpc/impl/codegen/sync_posix.h} +11 -11
- data/include/grpc/impl/codegen/sync_win32.h +49 -0
- data/include/grpc/impl/codegen/time.h +130 -0
- data/include/grpc/status.h +2 -126
- data/include/grpc/support/alloc.h +2 -35
- data/include/grpc/support/atm.h +2 -55
- data/include/grpc/support/atm_gcc_atomic.h +5 -38
- data/include/grpc/support/atm_gcc_sync.h +2 -50
- data/include/grpc/support/atm_win32.h +2 -88
- data/include/grpc/support/avl.h +10 -9
- data/include/grpc/support/cmdline.h +15 -13
- data/include/grpc/support/cpu.h +5 -3
- data/include/grpc/support/histogram.h +23 -20
- data/include/grpc/support/host_port.h +5 -3
- data/include/grpc/support/log.h +2 -71
- data/include/grpc/support/log_win32.h +2 -2
- data/include/grpc/support/port_platform.h +2 -319
- data/include/grpc/support/slice.h +2 -145
- data/include/grpc/support/slice_buffer.h +2 -65
- data/include/grpc/support/string_util.h +3 -3
- data/include/grpc/support/subprocess.h +8 -6
- data/include/grpc/support/sync.h +2 -278
- data/include/grpc/support/sync_generic.h +2 -18
- data/include/grpc/support/sync_posix.h +2 -10
- data/include/grpc/support/sync_win32.h +2 -12
- data/include/grpc/support/thd.h +11 -11
- data/include/grpc/support/time.h +2 -91
- data/include/grpc/support/tls.h +1 -1
- data/include/grpc/support/tls_gcc.h +1 -1
- data/include/grpc/support/tls_msvc.h +1 -1
- data/include/grpc/support/tls_pthread.h +2 -2
- data/include/grpc/support/useful.h +3 -1
- data/src/boringssl/err_data.c +1252 -0
- data/src/core/census/context.c +471 -8
- data/src/core/census/grpc_filter.c +5 -5
- data/src/core/census/initialize.c +4 -7
- data/src/core/census/mlog.c +600 -0
- data/src/core/census/mlog.h +95 -0
- data/src/core/census/operation.c +2 -2
- data/src/core/census/placeholders.c +109 -0
- data/src/core/census/rpc_metric_id.h +6 -6
- data/src/core/census/tracing.c +1 -1
- data/src/core/channel/channel_args.c +71 -9
- data/src/core/channel/channel_args.h +7 -1
- data/src/core/channel/channel_stack.c +1 -1
- data/src/core/channel/client_channel.c +33 -30
- data/src/core/channel/client_uchannel.c +3 -3
- data/src/core/channel/compress_filter.c +8 -8
- data/src/core/channel/http_client_filter.c +4 -4
- data/src/core/channel/http_server_filter.c +11 -11
- data/src/core/channel/subchannel_call_holder.c +11 -11
- data/src/core/client_config/connector.c +3 -2
- data/src/core/client_config/connector.h +2 -2
- data/src/core/client_config/lb_policies/load_balancer_api.c +163 -0
- data/src/core/client_config/lb_policies/load_balancer_api.h +85 -0
- data/src/core/client_config/lb_policies/pick_first.c +57 -40
- data/src/core/client_config/lb_policies/round_robin.c +14 -15
- data/src/core/client_config/lb_policy.c +3 -3
- data/src/core/client_config/lb_policy.h +3 -2
- data/src/core/client_config/resolvers/dns_resolver.c +3 -3
- data/src/core/client_config/resolvers/sockaddr_resolver.c +5 -5
- data/src/core/client_config/subchannel.c +84 -39
- data/src/core/client_config/subchannel.h +15 -6
- data/src/core/client_config/subchannel_index.c +261 -0
- data/src/core/client_config/subchannel_index.h +77 -0
- data/src/core/compression/{algorithm.c → compression_algorithm.c} +3 -3
- data/src/core/httpcli/format_request.c +1 -1
- data/src/core/httpcli/httpcli.c +18 -16
- data/src/core/httpcli/httpcli.h +3 -2
- data/src/core/httpcli/httpcli_security_connector.c +9 -10
- data/src/core/httpcli/parser.c +7 -7
- data/src/core/httpcli/parser.h +1 -1
- data/src/core/iomgr/closure.c +7 -7
- data/src/core/iomgr/closure.h +6 -5
- data/src/core/iomgr/exec_ctx.c +12 -8
- data/src/core/iomgr/exec_ctx.h +12 -5
- data/src/core/iomgr/executor.c +4 -4
- data/src/core/iomgr/executor.h +2 -2
- data/src/core/iomgr/fd_posix.c +32 -19
- data/src/core/iomgr/fd_posix.h +7 -4
- data/src/core/iomgr/iocp_windows.c +7 -9
- data/src/core/iomgr/iomgr.c +2 -2
- data/src/core/iomgr/pollset.h +9 -10
- data/src/core/iomgr/pollset_multipoller_with_epoll.c +71 -5
- data/src/core/iomgr/pollset_multipoller_with_poll_posix.c +9 -5
- data/src/core/iomgr/pollset_posix.c +44 -49
- data/src/core/iomgr/pollset_posix.h +14 -8
- data/src/core/iomgr/pollset_set.h +3 -9
- data/src/core/iomgr/pollset_set_posix.c +23 -3
- data/src/core/iomgr/pollset_set_posix.h +2 -18
- data/src/core/iomgr/pollset_set_windows.c +3 -3
- data/src/core/iomgr/pollset_set_windows.h +2 -2
- data/src/core/iomgr/pollset_windows.c +29 -37
- data/src/core/iomgr/pollset_windows.h +1 -5
- data/src/core/iomgr/resolve_address_posix.c +2 -2
- data/src/core/iomgr/resolve_address_windows.c +2 -2
- data/src/core/iomgr/sockaddr_utils.c +6 -6
- data/src/core/iomgr/sockaddr_win32.h +1 -6
- data/src/core/iomgr/tcp_client_posix.c +14 -12
- data/src/core/iomgr/tcp_client_windows.c +4 -4
- data/src/core/iomgr/tcp_posix.c +18 -10
- data/src/core/iomgr/tcp_posix.h +7 -1
- data/src/core/iomgr/tcp_server.h +40 -20
- data/src/core/iomgr/tcp_server_posix.c +106 -49
- data/src/core/iomgr/tcp_server_windows.c +98 -49
- data/src/core/iomgr/tcp_windows.c +11 -15
- data/src/core/iomgr/timer.c +10 -11
- data/src/core/iomgr/timer.h +22 -2
- data/src/core/iomgr/timer_heap.c +10 -10
- data/src/core/iomgr/timer_heap.h +2 -2
- data/src/core/iomgr/udp_server.c +7 -16
- data/src/core/iomgr/udp_server.h +2 -9
- data/src/core/iomgr/workqueue.h +2 -4
- data/src/core/iomgr/workqueue_posix.c +4 -3
- data/src/core/iomgr/workqueue_posix.h +3 -1
- data/src/core/json/json_reader.c +11 -12
- data/src/core/json/json_reader.h +4 -4
- data/src/core/json/json_string.c +19 -19
- data/src/core/json/json_writer.c +7 -9
- data/src/core/profiling/basic_timers.c +1 -1
- data/src/core/proto/grpc/lb/v0/load_balancer.pb.c +119 -0
- data/src/core/proto/grpc/lb/v0/load_balancer.pb.h +182 -0
- data/src/core/security/{base64.c → b64.c} +10 -10
- data/src/core/security/{base64.h → b64.h} +1 -1
- data/src/core/security/client_auth_filter.c +4 -5
- data/src/core/security/credentials.c +17 -10
- data/src/core/security/credentials.h +3 -3
- data/src/core/security/google_default_credentials.c +27 -22
- data/src/core/security/handshake.c +21 -12
- data/src/core/security/handshake.h +2 -1
- data/src/core/security/json_token.c +14 -8
- data/src/core/security/jwt_verifier.c +4 -3
- data/src/core/security/secure_endpoint.c +16 -16
- data/src/core/security/security_connector.c +131 -81
- data/src/core/security/security_connector.h +47 -27
- data/src/core/security/security_context.c +8 -3
- data/src/core/security/server_auth_filter.c +5 -5
- data/src/core/security/server_secure_chttp2.c +36 -37
- data/src/core/statistics/census_interface.h +2 -2
- data/src/core/statistics/census_rpc_stats.h +3 -3
- data/src/core/support/alloc.c +1 -1
- data/src/core/support/avl.c +2 -2
- data/src/core/support/cpu_posix.c +2 -2
- data/src/core/support/env_linux.c +28 -1
- data/src/core/support/env_win32.c +15 -7
- data/src/core/support/histogram.c +5 -5
- data/src/core/support/{file.c → load_file.c} +2 -2
- data/src/core/support/{file.h → load_file.h} +4 -12
- data/src/core/support/log_posix.c +1 -1
- data/src/core/support/log_win32.c +4 -3
- data/src/core/support/murmur_hash.c +11 -11
- data/src/core/support/murmur_hash.h +1 -1
- data/src/core/support/slice.c +11 -11
- data/src/core/support/slice_buffer.c +6 -6
- data/src/core/support/stack_lockfree.c +20 -10
- data/src/core/support/string.c +15 -15
- data/src/core/support/string.h +5 -5
- data/src/core/support/string_win32.c +5 -5
- data/src/core/support/subprocess_windows.c +141 -0
- data/src/core/support/sync.c +4 -4
- data/src/core/support/sync_posix.c +2 -2
- data/src/core/support/sync_win32.c +10 -5
- data/src/core/support/time.c +29 -29
- data/src/core/support/time_posix.c +15 -6
- data/src/core/support/time_precise.c +2 -2
- data/src/core/support/time_win32.c +18 -9
- data/src/core/support/tls_pthread.c +1 -1
- data/src/core/support/tmpfile.h +55 -0
- data/src/core/support/{file_posix.c → tmpfile_posix.c} +2 -2
- data/src/core/support/{file_win32.c → tmpfile_win32.c} +2 -2
- data/src/core/support/wrap_memcpy.c +53 -0
- data/src/core/surface/alarm.c +84 -0
- data/src/core/surface/byte_buffer_reader.c +1 -1
- data/src/core/surface/call.c +175 -116
- data/src/core/surface/call.h +2 -2
- data/src/core/surface/call_test_only.h +2 -2
- data/src/core/surface/channel.c +9 -9
- data/src/core/surface/channel.h +1 -1
- data/src/core/surface/channel_connectivity.c +3 -3
- data/src/core/surface/channel_create.c +4 -4
- data/src/core/surface/channel_ping.c +2 -2
- data/src/core/surface/completion_queue.c +84 -53
- data/src/core/surface/completion_queue.h +1 -1
- data/src/core/surface/init.c +11 -5
- data/src/core/surface/lame_client.c +2 -3
- data/src/core/surface/secure_channel_create.c +9 -10
- data/src/core/surface/server.c +30 -30
- data/src/core/surface/server_chttp2.c +8 -8
- data/src/core/surface/server_create.c +1 -4
- data/src/core/surface/validate_metadata.c +4 -4
- data/src/core/surface/version.c +2 -2
- data/src/core/transport/byte_stream.c +8 -6
- data/src/core/transport/byte_stream.h +6 -5
- data/src/core/transport/chttp2/bin_encoder.c +29 -29
- data/src/core/transport/chttp2/frame_data.c +29 -26
- data/src/core/transport/chttp2/frame_data.h +6 -6
- data/src/core/transport/chttp2/frame_goaway.c +30 -30
- data/src/core/transport/chttp2/frame_goaway.h +6 -6
- data/src/core/transport/chttp2/frame_ping.c +6 -6
- data/src/core/transport/chttp2/frame_ping.h +5 -5
- data/src/core/transport/chttp2/frame_rst_stream.c +18 -19
- data/src/core/transport/chttp2/frame_rst_stream.h +4 -4
- data/src/core/transport/chttp2/frame_settings.c +30 -30
- data/src/core/transport/chttp2/frame_settings.h +13 -13
- data/src/core/transport/chttp2/frame_window_update.c +17 -18
- data/src/core/transport/chttp2/frame_window_update.h +5 -7
- data/src/core/transport/chttp2/hpack_encoder.c +69 -73
- data/src/core/transport/chttp2/hpack_encoder.h +16 -16
- data/src/core/transport/chttp2/hpack_parser.c +167 -167
- data/src/core/transport/chttp2/hpack_parser.h +16 -16
- data/src/core/transport/chttp2/hpack_table.c +13 -13
- data/src/core/transport/chttp2/hpack_table.h +11 -11
- data/src/core/transport/chttp2/internal.h +103 -87
- data/src/core/transport/chttp2/parsing.c +25 -25
- data/src/core/transport/chttp2/stream_lists.c +38 -1
- data/src/core/transport/chttp2/stream_map.c +13 -14
- data/src/core/transport/chttp2/stream_map.h +6 -7
- data/src/core/transport/chttp2/timeout_encoding.c +19 -16
- data/src/core/transport/chttp2/varint.c +8 -9
- data/src/core/transport/chttp2/varint.h +7 -8
- data/src/core/transport/chttp2/writing.c +25 -22
- data/src/core/transport/chttp2_transport.c +147 -100
- data/src/core/transport/connectivity_state.c +6 -6
- data/src/core/transport/metadata.c +18 -18
- data/src/core/transport/metadata.h +5 -5
- data/src/core/transport/static_metadata.c +32 -33
- data/src/core/transport/static_metadata.h +8 -8
- data/src/core/transport/transport.c +6 -5
- data/src/core/transport/transport.h +17 -1
- data/src/core/tsi/fake_transport_security.c +7 -7
- data/src/core/tsi/ssl_transport_security.c +6 -4
- data/src/core/{iomgr/timer_internal.h → tsi/ssl_types.h} +19 -25
- data/src/ruby/ext/grpc/extconf.rb +52 -14
- data/src/ruby/ext/grpc/rb_byte_buffer.c +3 -1
- data/src/ruby/ext/grpc/rb_call.c +7 -3
- data/src/ruby/ext/grpc/rb_call_credentials.c +4 -0
- data/src/ruby/ext/grpc/rb_channel.c +4 -2
- data/src/ruby/ext/grpc/rb_channel_args.c +3 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.c +3 -1
- data/src/ruby/ext/grpc/rb_completion_queue.c +3 -1
- data/src/ruby/ext/grpc/rb_event_thread.c +5 -0
- data/src/ruby/ext/grpc/rb_grpc.c +28 -19
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +562 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +846 -0
- data/src/ruby/ext/grpc/rb_loader.c +72 -0
- data/src/ruby/ext/grpc/rb_loader.h +40 -0
- data/src/ruby/ext/grpc/rb_server.c +3 -1
- data/src/ruby/ext/grpc/rb_server_credentials.c +4 -2
- data/src/ruby/lib/grpc/core/time_consts.rb +2 -2
- data/src/ruby/lib/grpc/errors.rb +2 -2
- data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
- data/src/ruby/lib/grpc/generic/rpc_desc.rb +1 -1
- data/src/ruby/lib/grpc/generic/rpc_server.rb +1 -1
- data/src/ruby/lib/grpc/grpc.rb +34 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/README.md +2 -2
- data/src/ruby/pb/generate_proto_ruby.sh +2 -2
- data/src/ruby/pb/grpc/health/checker.rb +11 -11
- data/src/ruby/pb/grpc/health/v1/health.rb +28 -0
- data/src/ruby/pb/grpc/health/{v1alpha → v1}/health_services.rb +4 -4
- data/src/ruby/spec/client_server_spec.rb +2 -1
- data/src/ruby/spec/pb/health/checker_spec.rb +23 -37
- data/third_party/boringssl/crypto/aes/aes.c +1142 -0
- data/third_party/boringssl/crypto/aes/internal.h +87 -0
- data/third_party/boringssl/crypto/aes/mode_wrappers.c +108 -0
- data/third_party/boringssl/crypto/asn1/a_bitstr.c +255 -0
- data/third_party/boringssl/crypto/asn1/a_bool.c +112 -0
- data/third_party/boringssl/crypto/asn1/a_bytes.c +317 -0
- data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +286 -0
- data/third_party/boringssl/crypto/asn1/a_dup.c +103 -0
- data/third_party/boringssl/crypto/asn1/a_enum.c +183 -0
- data/third_party/boringssl/crypto/asn1/a_gentm.c +255 -0
- data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +154 -0
- data/third_party/boringssl/crypto/asn1/a_int.c +456 -0
- data/third_party/boringssl/crypto/asn1/a_mbstr.c +390 -0
- data/third_party/boringssl/crypto/asn1/a_object.c +412 -0
- data/third_party/boringssl/crypto/asn1/a_octet.c +70 -0
- data/third_party/boringssl/crypto/asn1/a_print.c +119 -0
- data/third_party/boringssl/crypto/asn1/a_strnid.c +286 -0
- data/third_party/boringssl/crypto/asn1/a_time.c +221 -0
- data/third_party/boringssl/crypto/asn1/a_type.c +160 -0
- data/third_party/boringssl/crypto/asn1/a_utctm.c +342 -0
- data/third_party/boringssl/crypto/asn1/a_utf8.c +210 -0
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +510 -0
- data/third_party/boringssl/crypto/asn1/asn1_locl.h +73 -0
- data/third_party/boringssl/crypto/asn1/asn1_par.c +444 -0
- data/third_party/boringssl/crypto/asn1/asn_pack.c +104 -0
- data/third_party/boringssl/crypto/asn1/bio_asn1.c +496 -0
- data/third_party/boringssl/crypto/asn1/bio_ndef.c +254 -0
- data/third_party/boringssl/crypto/asn1/f_enum.c +206 -0
- data/third_party/boringssl/crypto/asn1/f_int.c +210 -0
- data/third_party/boringssl/crypto/asn1/f_string.c +204 -0
- data/third_party/boringssl/crypto/asn1/t_bitst.c +102 -0
- data/third_party/boringssl/crypto/asn1/t_pkey.c +112 -0
- data/third_party/boringssl/crypto/asn1/tasn_dec.c +1342 -0
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +695 -0
- data/third_party/boringssl/crypto/asn1/tasn_fre.c +264 -0
- data/third_party/boringssl/crypto/asn1/tasn_new.c +398 -0
- data/third_party/boringssl/crypto/asn1/tasn_prn.c +642 -0
- data/third_party/boringssl/crypto/asn1/tasn_typ.c +137 -0
- data/third_party/boringssl/crypto/asn1/tasn_utl.c +266 -0
- data/third_party/boringssl/crypto/asn1/x_bignum.c +143 -0
- data/third_party/boringssl/crypto/asn1/x_long.c +182 -0
- data/third_party/boringssl/crypto/base64/base64.c +478 -0
- data/third_party/boringssl/crypto/bio/bio.c +608 -0
- data/third_party/boringssl/crypto/bio/bio_mem.c +327 -0
- data/third_party/boringssl/crypto/bio/buffer.c +496 -0
- data/third_party/boringssl/crypto/bio/connect.c +544 -0
- data/third_party/boringssl/crypto/bio/fd.c +270 -0
- data/third_party/boringssl/crypto/bio/file.c +349 -0
- data/third_party/boringssl/crypto/bio/hexdump.c +192 -0
- data/third_party/boringssl/crypto/bio/internal.h +108 -0
- data/third_party/boringssl/crypto/bio/pair.c +803 -0
- data/third_party/boringssl/crypto/bio/printf.c +119 -0
- data/third_party/boringssl/crypto/bio/socket.c +195 -0
- data/third_party/boringssl/crypto/bio/socket_helper.c +113 -0
- data/third_party/boringssl/crypto/bn/add.c +377 -0
- data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +599 -0
- data/third_party/boringssl/crypto/bn/bn.c +341 -0
- data/third_party/boringssl/crypto/bn/bn_asn1.c +93 -0
- data/third_party/boringssl/crypto/bn/cmp.c +200 -0
- data/third_party/boringssl/crypto/bn/convert.c +597 -0
- data/third_party/boringssl/crypto/bn/ctx.c +311 -0
- data/third_party/boringssl/crypto/bn/div.c +625 -0
- data/third_party/boringssl/crypto/bn/exponentiation.c +1544 -0
- data/third_party/boringssl/crypto/bn/gcd.c +711 -0
- data/third_party/boringssl/crypto/bn/generic.c +1019 -0
- data/third_party/boringssl/crypto/bn/internal.h +294 -0
- data/third_party/boringssl/crypto/bn/kronecker.c +175 -0
- data/third_party/boringssl/crypto/bn/montgomery.c +561 -0
- data/third_party/boringssl/crypto/bn/mul.c +888 -0
- data/third_party/boringssl/crypto/bn/prime.c +845 -0
- data/third_party/boringssl/crypto/bn/random.c +326 -0
- data/third_party/boringssl/crypto/bn/rsaz_exp.c +326 -0
- data/third_party/boringssl/crypto/bn/rsaz_exp.h +56 -0
- data/third_party/boringssl/crypto/bn/shift.c +299 -0
- data/third_party/boringssl/crypto/bn/sqrt.c +505 -0
- data/third_party/boringssl/crypto/buf/buf.c +235 -0
- data/third_party/boringssl/crypto/bytestring/ber.c +221 -0
- data/third_party/boringssl/crypto/bytestring/cbb.c +411 -0
- data/third_party/boringssl/crypto/bytestring/cbs.c +415 -0
- data/third_party/boringssl/crypto/bytestring/internal.h +46 -0
- data/third_party/boringssl/crypto/chacha/chacha_generic.c +140 -0
- data/third_party/boringssl/crypto/chacha/chacha_vec.c +323 -0
- data/third_party/boringssl/crypto/cipher/aead.c +167 -0
- data/third_party/boringssl/crypto/cipher/cipher.c +652 -0
- data/third_party/boringssl/crypto/cipher/derive_key.c +154 -0
- data/third_party/boringssl/crypto/cipher/e_aes.c +1767 -0
- data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +311 -0
- data/third_party/boringssl/crypto/cipher/e_des.c +207 -0
- data/third_party/boringssl/crypto/cipher/e_null.c +85 -0
- data/third_party/boringssl/crypto/cipher/e_rc2.c +443 -0
- data/third_party/boringssl/crypto/cipher/e_rc4.c +87 -0
- data/third_party/boringssl/crypto/cipher/e_ssl3.c +463 -0
- data/third_party/boringssl/crypto/cipher/e_tls.c +673 -0
- data/third_party/boringssl/crypto/cipher/internal.h +164 -0
- data/third_party/boringssl/crypto/cipher/tls_cbc.c +495 -0
- data/third_party/boringssl/crypto/cmac/cmac.c +239 -0
- data/third_party/boringssl/crypto/conf/conf.c +778 -0
- data/third_party/boringssl/crypto/conf/conf_def.h +127 -0
- data/third_party/boringssl/crypto/conf/internal.h +31 -0
- data/third_party/boringssl/crypto/cpu-arm.c +199 -0
- data/third_party/boringssl/crypto/cpu-intel.c +261 -0
- data/third_party/boringssl/crypto/crypto.c +140 -0
- data/third_party/boringssl/crypto/curve25519/curve25519.c +4897 -0
- data/third_party/boringssl/crypto/des/des.c +771 -0
- data/third_party/boringssl/crypto/des/internal.h +212 -0
- data/third_party/boringssl/crypto/dh/check.c +180 -0
- data/third_party/boringssl/crypto/dh/dh.c +463 -0
- data/third_party/boringssl/crypto/dh/dh_asn1.c +84 -0
- data/third_party/boringssl/crypto/dh/internal.h +80 -0
- data/third_party/boringssl/crypto/dh/params.c +301 -0
- data/third_party/boringssl/crypto/digest/digest.c +248 -0
- data/third_party/boringssl/crypto/digest/digests.c +321 -0
- data/third_party/boringssl/crypto/digest/internal.h +112 -0
- data/third_party/boringssl/crypto/digest/md32_common.h +322 -0
- data/third_party/boringssl/crypto/directory.h +66 -0
- data/third_party/boringssl/crypto/directory_posix.c +108 -0
- data/third_party/boringssl/crypto/directory_win.c +144 -0
- data/third_party/boringssl/crypto/dsa/dsa.c +908 -0
- data/third_party/boringssl/crypto/dsa/dsa_asn1.c +150 -0
- data/third_party/boringssl/crypto/dsa/internal.h +78 -0
- data/third_party/boringssl/crypto/ec/ec.c +889 -0
- data/third_party/boringssl/crypto/ec/ec_asn1.c +586 -0
- data/third_party/boringssl/crypto/ec/ec_key.c +482 -0
- data/third_party/boringssl/crypto/ec/ec_montgomery.c +280 -0
- data/third_party/boringssl/crypto/ec/internal.h +318 -0
- data/third_party/boringssl/crypto/ec/oct.c +416 -0
- data/third_party/boringssl/crypto/ec/p224-64.c +1305 -0
- data/third_party/boringssl/crypto/ec/p256-64.c +1878 -0
- data/third_party/boringssl/crypto/ec/p256-x86_64-table.h +9548 -0
- data/third_party/boringssl/crypto/ec/p256-x86_64.c +596 -0
- data/third_party/boringssl/crypto/ec/simple.c +1313 -0
- data/third_party/boringssl/crypto/ec/util-64.c +183 -0
- data/third_party/boringssl/crypto/ec/wnaf.c +449 -0
- data/third_party/boringssl/crypto/ecdh/ecdh.c +153 -0
- data/third_party/boringssl/crypto/ecdsa/ecdsa.c +496 -0
- data/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c +240 -0
- data/third_party/boringssl/crypto/engine/engine.c +96 -0
- data/third_party/boringssl/crypto/err/err.c +756 -0
- data/third_party/boringssl/crypto/evp/algorithm.c +153 -0
- data/third_party/boringssl/crypto/evp/digestsign.c +159 -0
- data/third_party/boringssl/crypto/evp/evp.c +411 -0
- data/third_party/boringssl/crypto/evp/evp_asn1.c +179 -0
- data/third_party/boringssl/crypto/evp/evp_ctx.c +477 -0
- data/third_party/boringssl/crypto/evp/internal.h +278 -0
- data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +588 -0
- data/third_party/boringssl/crypto/evp/p_ec.c +283 -0
- data/third_party/boringssl/crypto/evp/p_ec_asn1.c +562 -0
- data/third_party/boringssl/crypto/evp/p_rsa.c +596 -0
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +737 -0
- data/third_party/boringssl/crypto/evp/pbkdf.c +151 -0
- data/third_party/boringssl/crypto/evp/sign.c +151 -0
- data/third_party/boringssl/crypto/ex_data.c +294 -0
- data/third_party/boringssl/crypto/hkdf/hkdf.c +89 -0
- data/third_party/boringssl/crypto/hmac/hmac.c +213 -0
- data/third_party/boringssl/crypto/internal.h +532 -0
- data/third_party/boringssl/crypto/lhash/lhash.c +346 -0
- data/third_party/boringssl/crypto/md4/md4.c +225 -0
- data/third_party/boringssl/crypto/md5/md5.c +275 -0
- data/third_party/boringssl/crypto/mem.c +200 -0
- data/third_party/boringssl/crypto/modes/cbc.c +216 -0
- data/third_party/boringssl/crypto/modes/cfb.c +231 -0
- data/third_party/boringssl/crypto/modes/ctr.c +226 -0
- data/third_party/boringssl/crypto/modes/gcm.c +1252 -0
- data/third_party/boringssl/crypto/modes/internal.h +370 -0
- data/third_party/boringssl/crypto/modes/ofb.c +108 -0
- data/third_party/boringssl/crypto/obj/obj.c +664 -0
- data/third_party/boringssl/crypto/obj/obj_dat.h +5257 -0
- data/third_party/boringssl/crypto/obj/obj_xref.c +124 -0
- data/third_party/boringssl/crypto/obj/obj_xref.h +96 -0
- data/third_party/boringssl/crypto/pem/pem_all.c +281 -0
- data/third_party/boringssl/crypto/pem/pem_info.c +404 -0
- data/third_party/boringssl/crypto/pem/pem_lib.c +835 -0
- data/third_party/boringssl/crypto/pem/pem_oth.c +89 -0
- data/third_party/boringssl/crypto/pem/pem_pk8.c +244 -0
- data/third_party/boringssl/crypto/pem/pem_pkey.c +312 -0
- data/third_party/boringssl/crypto/pem/pem_x509.c +65 -0
- data/third_party/boringssl/crypto/pem/pem_xaux.c +66 -0
- data/third_party/boringssl/crypto/pkcs8/internal.h +83 -0
- data/third_party/boringssl/crypto/pkcs8/p5_pbe.c +150 -0
- data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +440 -0
- data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +85 -0
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +1217 -0
- data/third_party/boringssl/crypto/poly1305/poly1305.c +331 -0
- data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +301 -0
- data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +892 -0
- data/third_party/boringssl/crypto/rand/internal.h +32 -0
- data/third_party/boringssl/crypto/rand/rand.c +239 -0
- data/third_party/boringssl/crypto/rand/urandom.c +223 -0
- data/third_party/boringssl/crypto/rand/windows.c +56 -0
- data/third_party/boringssl/crypto/rc4/rc4.c +283 -0
- data/third_party/boringssl/crypto/refcount_c11.c +67 -0
- data/third_party/boringssl/crypto/refcount_lock.c +53 -0
- data/third_party/boringssl/crypto/rsa/blinding.c +462 -0
- data/third_party/boringssl/crypto/rsa/internal.h +164 -0
- data/third_party/boringssl/crypto/rsa/padding.c +711 -0
- data/third_party/boringssl/crypto/rsa/rsa.c +808 -0
- data/third_party/boringssl/crypto/rsa/rsa_asn1.c +473 -0
- data/third_party/boringssl/crypto/rsa/rsa_impl.c +1138 -0
- data/third_party/boringssl/crypto/sha/sha1.c +337 -0
- data/third_party/boringssl/crypto/sha/sha256.c +327 -0
- data/third_party/boringssl/crypto/sha/sha512.c +607 -0
- data/third_party/boringssl/crypto/stack/stack.c +386 -0
- data/third_party/boringssl/crypto/test/scoped_types.h +137 -0
- data/third_party/boringssl/crypto/test/test_util.h +35 -0
- data/third_party/boringssl/crypto/thread.c +101 -0
- data/third_party/boringssl/crypto/thread_none.c +55 -0
- data/third_party/boringssl/crypto/thread_pthread.c +167 -0
- data/third_party/boringssl/crypto/thread_win.c +282 -0
- data/third_party/boringssl/crypto/time_support.c +212 -0
- data/third_party/boringssl/crypto/x509/a_digest.c +97 -0
- data/third_party/boringssl/crypto/x509/a_sign.c +136 -0
- data/third_party/boringssl/crypto/x509/a_strex.c +564 -0
- data/third_party/boringssl/crypto/x509/a_verify.c +133 -0
- data/third_party/boringssl/crypto/x509/asn1_gen.c +873 -0
- data/third_party/boringssl/crypto/x509/by_dir.c +491 -0
- data/third_party/boringssl/crypto/x509/by_file.c +295 -0
- data/third_party/boringssl/crypto/x509/charmap.h +15 -0
- data/third_party/boringssl/crypto/x509/i2d_pr.c +84 -0
- data/third_party/boringssl/crypto/x509/pkcs7.c +353 -0
- data/third_party/boringssl/crypto/x509/t_crl.c +129 -0
- data/third_party/boringssl/crypto/x509/t_req.c +246 -0
- data/third_party/boringssl/crypto/x509/t_x509.c +500 -0
- data/third_party/boringssl/crypto/x509/t_x509a.c +109 -0
- data/third_party/boringssl/crypto/x509/vpm_int.h +70 -0
- data/third_party/boringssl/crypto/x509/x509.c +152 -0
- data/third_party/boringssl/crypto/x509/x509_att.c +353 -0
- data/third_party/boringssl/crypto/x509/x509_cmp.c +490 -0
- data/third_party/boringssl/crypto/x509/x509_d2.c +105 -0
- data/third_party/boringssl/crypto/x509/x509_def.c +88 -0
- data/third_party/boringssl/crypto/x509/x509_ext.c +206 -0
- data/third_party/boringssl/crypto/x509/x509_lu.c +738 -0
- data/third_party/boringssl/crypto/x509/x509_obj.c +191 -0
- data/third_party/boringssl/crypto/x509/x509_r2x.c +113 -0
- data/third_party/boringssl/crypto/x509/x509_req.c +315 -0
- data/third_party/boringssl/crypto/x509/x509_set.c +154 -0
- data/third_party/boringssl/crypto/x509/x509_trs.c +304 -0
- data/third_party/boringssl/crypto/x509/x509_txt.c +209 -0
- data/third_party/boringssl/crypto/x509/x509_v3.c +271 -0
- data/third_party/boringssl/crypto/x509/x509_vfy.c +2456 -0
- data/third_party/boringssl/crypto/x509/x509_vpm.c +672 -0
- data/third_party/boringssl/crypto/x509/x509cset.c +172 -0
- data/third_party/boringssl/crypto/x509/x509name.c +381 -0
- data/third_party/boringssl/crypto/x509/x509rset.c +80 -0
- data/third_party/boringssl/crypto/x509/x509spki.c +135 -0
- data/third_party/boringssl/crypto/x509/x509type.c +128 -0
- data/third_party/boringssl/crypto/x509/x_algor.c +154 -0
- data/third_party/boringssl/crypto/x509/x_all.c +547 -0
- data/third_party/boringssl/crypto/x509/x_attrib.c +117 -0
- data/third_party/boringssl/crypto/x509/x_crl.c +560 -0
- data/third_party/boringssl/crypto/x509/x_exten.c +75 -0
- data/third_party/boringssl/crypto/x509/x_info.c +95 -0
- data/third_party/boringssl/crypto/x509/x_name.c +538 -0
- data/third_party/boringssl/crypto/x509/x_pkey.c +100 -0
- data/third_party/boringssl/crypto/x509/x_pubkey.c +384 -0
- data/third_party/boringssl/crypto/x509/x_req.c +112 -0
- data/third_party/boringssl/crypto/x509/x_sig.c +69 -0
- data/third_party/boringssl/crypto/x509/x_spki.c +78 -0
- data/third_party/boringssl/crypto/x509/x_val.c +69 -0
- data/third_party/boringssl/crypto/x509/x_x509.c +227 -0
- data/third_party/boringssl/crypto/x509/x_x509a.c +197 -0
- data/third_party/boringssl/crypto/x509v3/ext_dat.h +129 -0
- data/third_party/boringssl/crypto/x509v3/pcy_cache.c +299 -0
- data/third_party/boringssl/crypto/x509v3/pcy_data.c +137 -0
- data/third_party/boringssl/crypto/x509v3/pcy_int.h +212 -0
- data/third_party/boringssl/crypto/x509v3/pcy_lib.c +165 -0
- data/third_party/boringssl/crypto/x509v3/pcy_map.c +133 -0
- data/third_party/boringssl/crypto/x509v3/pcy_node.c +197 -0
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +876 -0
- data/third_party/boringssl/crypto/x509v3/v3_akey.c +212 -0
- data/third_party/boringssl/crypto/x509v3/v3_akeya.c +71 -0
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +622 -0
- data/third_party/boringssl/crypto/x509v3/v3_bcons.c +126 -0
- data/third_party/boringssl/crypto/x509v3/v3_bitst.c +141 -0
- data/third_party/boringssl/crypto/x509v3/v3_conf.c +459 -0
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +475 -0
- data/third_party/boringssl/crypto/x509v3/v3_crld.c +616 -0
- data/third_party/boringssl/crypto/x509v3/v3_enum.c +98 -0
- data/third_party/boringssl/crypto/x509v3/v3_extku.c +145 -0
- data/third_party/boringssl/crypto/x509v3/v3_genn.c +252 -0
- data/third_party/boringssl/crypto/x509v3/v3_ia5.c +117 -0
- data/third_party/boringssl/crypto/x509v3/v3_info.c +200 -0
- data/third_party/boringssl/crypto/x509v3/v3_int.c +87 -0
- data/third_party/boringssl/crypto/x509v3/v3_lib.c +335 -0
- data/third_party/boringssl/crypto/x509v3/v3_ncons.c +510 -0
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +335 -0
- data/third_party/boringssl/crypto/x509v3/v3_pcia.c +56 -0
- data/third_party/boringssl/crypto/x509v3/v3_pcons.c +142 -0
- data/third_party/boringssl/crypto/x509v3/v3_pku.c +109 -0
- data/third_party/boringssl/crypto/x509v3/v3_pmaps.c +156 -0
- data/third_party/boringssl/crypto/x509v3/v3_prn.c +207 -0
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +805 -0
- data/third_party/boringssl/crypto/x509v3/v3_skey.c +148 -0
- data/third_party/boringssl/crypto/x509v3/v3_sxnet.c +266 -0
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +1322 -0
- data/third_party/boringssl/include/openssl/aead.h +346 -0
- data/third_party/boringssl/include/openssl/aes.h +158 -0
- data/third_party/boringssl/include/openssl/arm_arch.h +127 -0
- data/third_party/boringssl/include/openssl/asn1.h +1168 -0
- data/third_party/boringssl/include/openssl/asn1_mac.h +75 -0
- data/third_party/boringssl/include/openssl/asn1t.h +906 -0
- data/third_party/boringssl/include/openssl/base.h +261 -0
- data/third_party/boringssl/include/openssl/base64.h +184 -0
- data/third_party/boringssl/include/openssl/bio.h +902 -0
- data/third_party/boringssl/include/openssl/blowfish.h +93 -0
- data/third_party/boringssl/include/openssl/bn.h +885 -0
- data/third_party/boringssl/include/openssl/buf.h +118 -0
- data/third_party/boringssl/include/openssl/buffer.h +18 -0
- data/third_party/boringssl/include/openssl/bytestring.h +360 -0
- data/third_party/boringssl/include/openssl/cast.h +96 -0
- data/third_party/boringssl/include/openssl/chacha.h +37 -0
- data/third_party/boringssl/include/openssl/cipher.h +571 -0
- data/third_party/boringssl/include/openssl/cmac.h +76 -0
- data/third_party/boringssl/include/openssl/conf.h +145 -0
- data/third_party/boringssl/include/openssl/cpu.h +184 -0
- data/third_party/boringssl/include/openssl/crypto.h +68 -0
- data/third_party/boringssl/include/openssl/curve25519.h +88 -0
- data/third_party/boringssl/include/openssl/des.h +177 -0
- data/third_party/boringssl/include/openssl/dh.h +238 -0
- data/third_party/boringssl/include/openssl/digest.h +258 -0
- data/third_party/boringssl/include/openssl/dsa.h +343 -0
- data/third_party/boringssl/include/openssl/dtls1.h +16 -0
- data/third_party/boringssl/include/openssl/ec.h +355 -0
- data/third_party/boringssl/include/openssl/ec_key.h +280 -0
- data/third_party/boringssl/include/openssl/ecdh.h +102 -0
- data/third_party/boringssl/include/openssl/ecdsa.h +206 -0
- data/third_party/boringssl/include/openssl/engine.h +98 -0
- data/third_party/boringssl/include/openssl/err.h +487 -0
- data/third_party/boringssl/include/openssl/evp.h +750 -0
- data/third_party/boringssl/include/openssl/ex_data.h +213 -0
- data/third_party/boringssl/include/openssl/hkdf.h +44 -0
- data/third_party/boringssl/include/openssl/hmac.h +160 -0
- data/third_party/boringssl/include/openssl/lhash.h +192 -0
- data/third_party/boringssl/include/openssl/lhash_macros.h +132 -0
- data/third_party/boringssl/include/openssl/md4.h +102 -0
- data/third_party/boringssl/include/openssl/md5.h +107 -0
- data/third_party/boringssl/include/openssl/mem.h +140 -0
- data/third_party/boringssl/include/openssl/obj.h +198 -0
- data/third_party/boringssl/include/openssl/obj_mac.h +4140 -0
- data/third_party/boringssl/include/openssl/objects.h +18 -0
- data/third_party/boringssl/include/openssl/opensslfeatures.h +60 -0
- data/third_party/boringssl/include/openssl/opensslv.h +18 -0
- data/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
- data/third_party/boringssl/include/openssl/pem.h +521 -0
- data/third_party/boringssl/include/openssl/pkcs12.h +18 -0
- data/third_party/boringssl/include/openssl/pkcs7.h +16 -0
- data/third_party/boringssl/include/openssl/pkcs8.h +220 -0
- data/third_party/boringssl/include/openssl/poly1305.h +51 -0
- data/third_party/boringssl/include/openssl/pqueue.h +146 -0
- data/third_party/boringssl/include/openssl/rand.h +113 -0
- data/third_party/boringssl/include/openssl/rc4.h +90 -0
- data/third_party/boringssl/include/openssl/rsa.h +637 -0
- data/third_party/boringssl/include/openssl/safestack.h +16 -0
- data/third_party/boringssl/include/openssl/sha.h +256 -0
- data/third_party/boringssl/include/openssl/srtp.h +18 -0
- data/third_party/boringssl/include/openssl/ssl.h +4466 -0
- data/third_party/boringssl/include/openssl/ssl3.h +441 -0
- data/third_party/boringssl/include/openssl/stack.h +298 -0
- data/third_party/boringssl/include/openssl/stack_macros.h +4190 -0
- data/third_party/boringssl/include/openssl/thread.h +173 -0
- data/third_party/boringssl/include/openssl/time_support.h +90 -0
- data/third_party/boringssl/include/openssl/tls1.h +653 -0
- data/third_party/boringssl/include/openssl/type_check.h +91 -0
- data/third_party/boringssl/include/openssl/x509.h +1258 -0
- data/third_party/boringssl/include/openssl/x509_vfy.h +611 -0
- data/third_party/boringssl/include/openssl/x509v3.h +798 -0
- data/third_party/boringssl/ssl/custom_extensions.c +257 -0
- data/third_party/boringssl/ssl/d1_both.c +880 -0
- data/third_party/boringssl/ssl/d1_clnt.c +566 -0
- data/third_party/boringssl/ssl/d1_lib.c +340 -0
- data/third_party/boringssl/ssl/d1_meth.c +130 -0
- data/third_party/boringssl/ssl/d1_pkt.c +578 -0
- data/third_party/boringssl/ssl/d1_srtp.c +234 -0
- data/third_party/boringssl/ssl/d1_srvr.c +485 -0
- data/third_party/boringssl/ssl/dtls_record.c +308 -0
- data/third_party/boringssl/ssl/internal.h +1276 -0
- data/third_party/boringssl/ssl/pqueue/pqueue.c +197 -0
- data/third_party/boringssl/ssl/s3_both.c +571 -0
- data/third_party/boringssl/ssl/s3_clnt.c +2241 -0
- data/third_party/boringssl/ssl/s3_enc.c +494 -0
- data/third_party/boringssl/ssl/s3_lib.c +587 -0
- data/third_party/boringssl/ssl/s3_meth.c +166 -0
- data/third_party/boringssl/ssl/s3_pkt.c +732 -0
- data/third_party/boringssl/ssl/s3_srvr.c +2536 -0
- data/third_party/boringssl/ssl/ssl_aead_ctx.c +300 -0
- data/third_party/boringssl/ssl/ssl_asn1.c +718 -0
- data/third_party/boringssl/ssl/ssl_buffer.c +319 -0
- data/third_party/boringssl/ssl/ssl_cert.c +539 -0
- data/third_party/boringssl/ssl/ssl_cipher.c +2003 -0
- data/third_party/boringssl/ssl/ssl_file.c +633 -0
- data/third_party/boringssl/ssl/ssl_lib.c +2653 -0
- data/third_party/boringssl/ssl/ssl_rsa.c +423 -0
- data/third_party/boringssl/ssl/ssl_session.c +764 -0
- data/third_party/boringssl/ssl/ssl_stat.c +591 -0
- data/third_party/boringssl/ssl/t1_enc.c +708 -0
- data/third_party/boringssl/ssl/t1_lib.c +2905 -0
- data/third_party/boringssl/ssl/test/async_bio.h +45 -0
- data/third_party/boringssl/ssl/test/packeted_bio.h +44 -0
- data/third_party/boringssl/ssl/test/scoped_types.h +28 -0
- data/third_party/boringssl/ssl/test/test_config.h +108 -0
- data/third_party/boringssl/ssl/tls_record.c +342 -0
- data/third_party/nanopb/pb.h +547 -0
- data/third_party/nanopb/pb_common.c +97 -0
- data/third_party/nanopb/pb_common.h +42 -0
- data/third_party/nanopb/pb_decode.c +1319 -0
- data/third_party/nanopb/pb_decode.h +149 -0
- data/third_party/nanopb/pb_encode.c +690 -0
- data/third_party/nanopb/pb_encode.h +154 -0
- data/third_party/zlib/adler32.c +179 -0
- data/third_party/zlib/compress.c +80 -0
- data/third_party/zlib/crc32.c +425 -0
- data/third_party/zlib/crc32.h +441 -0
- data/third_party/zlib/deflate.c +1967 -0
- data/third_party/zlib/deflate.h +346 -0
- data/third_party/zlib/gzclose.c +25 -0
- data/third_party/zlib/gzguts.h +209 -0
- data/third_party/zlib/gzlib.c +634 -0
- data/third_party/zlib/gzread.c +594 -0
- data/third_party/zlib/gzwrite.c +577 -0
- data/third_party/zlib/infback.c +640 -0
- data/third_party/zlib/inffast.c +340 -0
- data/third_party/zlib/inffast.h +11 -0
- data/third_party/zlib/inffixed.h +94 -0
- data/third_party/zlib/inflate.c +1512 -0
- data/third_party/zlib/inflate.h +122 -0
- data/third_party/zlib/inftrees.c +306 -0
- data/third_party/zlib/inftrees.h +62 -0
- data/third_party/zlib/trees.c +1226 -0
- data/third_party/zlib/trees.h +128 -0
- data/third_party/zlib/uncompr.c +59 -0
- data/third_party/zlib/zconf.h +511 -0
- data/third_party/zlib/zlib.h +1768 -0
- data/third_party/zlib/zutil.c +324 -0
- data/third_party/zlib/zutil.h +253 -0
- metadata +504 -20
- data/Rakefile +0 -63
- data/src/ruby/pb/grpc/health/v1alpha/health.rb +0 -29
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
*
|
3
|
-
* Copyright 2015, Google Inc.
|
3
|
+
* Copyright 2015-2016, Google Inc.
|
4
4
|
* All rights reserved.
|
5
5
|
*
|
6
6
|
* Redistribution and use in source and binary forms, with or without
|
@@ -41,6 +41,7 @@
|
|
41
41
|
void grpc_do_security_handshake(grpc_exec_ctx *exec_ctx,
|
42
42
|
tsi_handshaker *handshaker,
|
43
43
|
grpc_security_connector *connector,
|
44
|
+
bool is_client_side,
|
44
45
|
grpc_endpoint *nonsecure_endpoint,
|
45
46
|
grpc_security_handshake_done_cb cb,
|
46
47
|
void *user_data);
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
*
|
3
|
-
* Copyright 2015, Google Inc.
|
3
|
+
* Copyright 2015-2016, Google Inc.
|
4
4
|
* All rights reserved.
|
5
5
|
*
|
6
6
|
* Redistribution and use in source and binary forms, with or without
|
@@ -39,7 +39,7 @@
|
|
39
39
|
#include <grpc/support/log.h>
|
40
40
|
#include <grpc/support/string_util.h>
|
41
41
|
|
42
|
-
#include "src/core/security/
|
42
|
+
#include "src/core/security/b64.h"
|
43
43
|
#include "src/core/support/string.h"
|
44
44
|
|
45
45
|
#include <openssl/bio.h>
|
@@ -49,7 +49,13 @@
|
|
49
49
|
/* --- Constants. --- */
|
50
50
|
|
51
51
|
/* 1 hour max. */
|
52
|
-
|
52
|
+
gpr_timespec grpc_max_auth_token_lifetime() {
|
53
|
+
gpr_timespec out;
|
54
|
+
out.tv_sec = 3600;
|
55
|
+
out.tv_nsec = 0;
|
56
|
+
out.clock_type = GPR_TIMESPAN;
|
57
|
+
return out;
|
58
|
+
}
|
53
59
|
|
54
60
|
#define GRPC_JWT_RSA_SHA256_ALGORITHM "RS256"
|
55
61
|
#define GRPC_JWT_TYPE "JWT"
|
@@ -211,12 +217,12 @@ static char *encoded_jwt_claim(const grpc_auth_json_key *json_key,
|
|
211
217
|
gpr_timespec expiration = gpr_time_add(now, token_lifetime);
|
212
218
|
char now_str[GPR_LTOA_MIN_BUFSIZE];
|
213
219
|
char expiration_str[GPR_LTOA_MIN_BUFSIZE];
|
214
|
-
if (gpr_time_cmp(token_lifetime, grpc_max_auth_token_lifetime) > 0) {
|
220
|
+
if (gpr_time_cmp(token_lifetime, grpc_max_auth_token_lifetime()) > 0) {
|
215
221
|
gpr_log(GPR_INFO, "Cropping token lifetime to maximum allowed value.");
|
216
|
-
expiration = gpr_time_add(now, grpc_max_auth_token_lifetime);
|
222
|
+
expiration = gpr_time_add(now, grpc_max_auth_token_lifetime());
|
217
223
|
}
|
218
|
-
|
219
|
-
|
224
|
+
int64_ttoa(now.tv_sec, now_str);
|
225
|
+
int64_ttoa(expiration.tv_sec, expiration_str);
|
220
226
|
|
221
227
|
child =
|
222
228
|
create_child(NULL, json, "iss", json_key->client_email, GRPC_JSON_STRING);
|
@@ -251,7 +257,7 @@ static char *dot_concat_and_free_strings(char *str1, char *str2) {
|
|
251
257
|
memcpy(current, str2, str2_len);
|
252
258
|
current += str2_len;
|
253
259
|
GPR_ASSERT(current >= result);
|
254
|
-
GPR_ASSERT((
|
260
|
+
GPR_ASSERT((uintptr_t)(current - result) == result_len);
|
255
261
|
*current = '\0';
|
256
262
|
gpr_free(str1);
|
257
263
|
gpr_free(str2);
|
@@ -37,7 +37,8 @@
|
|
37
37
|
#include <string.h>
|
38
38
|
|
39
39
|
#include "src/core/httpcli/httpcli.h"
|
40
|
-
#include "src/core/security/
|
40
|
+
#include "src/core/security/b64.h"
|
41
|
+
#include "src/core/tsi/ssl_types.h"
|
41
42
|
|
42
43
|
#include <grpc/support/alloc.h>
|
43
44
|
#include <grpc/support/log.h>
|
@@ -442,8 +443,8 @@ static BIGNUM *bignum_from_base64(const char *b64) {
|
|
442
443
|
gpr_log(GPR_ERROR, "Invalid base64 for big num.");
|
443
444
|
return NULL;
|
444
445
|
}
|
445
|
-
result =
|
446
|
-
|
446
|
+
result = BN_bin2bn(GPR_SLICE_START_PTR(bin),
|
447
|
+
TSI_SIZE_AS_SIZE(GPR_SLICE_LENGTH(bin)), NULL);
|
447
448
|
gpr_slice_unref(bin);
|
448
449
|
return result;
|
449
450
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
*
|
3
|
-
* Copyright 2015, Google Inc.
|
3
|
+
* Copyright 2015-2016, Google Inc.
|
4
4
|
* All rights reserved.
|
5
5
|
*
|
6
6
|
* Redistribution and use in source and binary forms, with or without
|
@@ -117,8 +117,8 @@ static void secure_endpoint_unref(grpc_exec_ctx *exec_ctx,
|
|
117
117
|
static void secure_endpoint_ref(secure_endpoint *ep) { gpr_ref(&ep->ref); }
|
118
118
|
#endif
|
119
119
|
|
120
|
-
static void flush_read_staging_buffer(secure_endpoint *ep,
|
121
|
-
|
120
|
+
static void flush_read_staging_buffer(secure_endpoint *ep, uint8_t **cur,
|
121
|
+
uint8_t **end) {
|
122
122
|
gpr_slice_buffer_add(ep->read_buffer, ep->read_staging_buffer);
|
123
123
|
ep->read_staging_buffer = gpr_slice_malloc(STAGING_BUFFER_SIZE);
|
124
124
|
*cur = GPR_SLICE_START_PTR(ep->read_staging_buffer);
|
@@ -126,7 +126,7 @@ static void flush_read_staging_buffer(secure_endpoint *ep, gpr_uint8 **cur,
|
|
126
126
|
}
|
127
127
|
|
128
128
|
static void call_read_cb(grpc_exec_ctx *exec_ctx, secure_endpoint *ep,
|
129
|
-
|
129
|
+
bool success) {
|
130
130
|
if (grpc_trace_secure_endpoint) {
|
131
131
|
size_t i;
|
132
132
|
for (i = 0; i < ep->read_buffer->count; i++) {
|
@@ -137,17 +137,17 @@ static void call_read_cb(grpc_exec_ctx *exec_ctx, secure_endpoint *ep,
|
|
137
137
|
}
|
138
138
|
}
|
139
139
|
ep->read_buffer = NULL;
|
140
|
-
grpc_exec_ctx_enqueue(exec_ctx, ep->read_cb, success);
|
140
|
+
grpc_exec_ctx_enqueue(exec_ctx, ep->read_cb, success, NULL);
|
141
141
|
SECURE_ENDPOINT_UNREF(exec_ctx, ep, "read");
|
142
142
|
}
|
143
143
|
|
144
|
-
static void on_read(grpc_exec_ctx *exec_ctx, void *user_data,
|
144
|
+
static void on_read(grpc_exec_ctx *exec_ctx, void *user_data, bool success) {
|
145
145
|
unsigned i;
|
146
|
-
|
146
|
+
uint8_t keep_looping = 0;
|
147
147
|
tsi_result result = TSI_OK;
|
148
148
|
secure_endpoint *ep = (secure_endpoint *)user_data;
|
149
|
-
|
150
|
-
|
149
|
+
uint8_t *cur = GPR_SLICE_START_PTR(ep->read_staging_buffer);
|
150
|
+
uint8_t *end = GPR_SLICE_END_PTR(ep->read_staging_buffer);
|
151
151
|
|
152
152
|
if (!success) {
|
153
153
|
gpr_slice_buffer_reset_and_unref(ep->read_buffer);
|
@@ -158,7 +158,7 @@ static void on_read(grpc_exec_ctx *exec_ctx, void *user_data, int success) {
|
|
158
158
|
/* TODO(yangg) check error, maybe bail out early */
|
159
159
|
for (i = 0; i < ep->source_buffer.count; i++) {
|
160
160
|
gpr_slice encrypted = ep->source_buffer.slices[i];
|
161
|
-
|
161
|
+
uint8_t *message_bytes = GPR_SLICE_START_PTR(encrypted);
|
162
162
|
size_t message_size = GPR_SLICE_LENGTH(encrypted);
|
163
163
|
|
164
164
|
while (message_size > 0 || keep_looping) {
|
@@ -234,8 +234,8 @@ static void endpoint_read(grpc_exec_ctx *exec_ctx, grpc_endpoint *secure_ep,
|
|
234
234
|
&ep->on_read);
|
235
235
|
}
|
236
236
|
|
237
|
-
static void flush_write_staging_buffer(secure_endpoint *ep,
|
238
|
-
|
237
|
+
static void flush_write_staging_buffer(secure_endpoint *ep, uint8_t **cur,
|
238
|
+
uint8_t **end) {
|
239
239
|
gpr_slice_buffer_add(&ep->output_buffer, ep->write_staging_buffer);
|
240
240
|
ep->write_staging_buffer = gpr_slice_malloc(STAGING_BUFFER_SIZE);
|
241
241
|
*cur = GPR_SLICE_START_PTR(ep->write_staging_buffer);
|
@@ -247,8 +247,8 @@ static void endpoint_write(grpc_exec_ctx *exec_ctx, grpc_endpoint *secure_ep,
|
|
247
247
|
unsigned i;
|
248
248
|
tsi_result result = TSI_OK;
|
249
249
|
secure_endpoint *ep = (secure_endpoint *)secure_ep;
|
250
|
-
|
251
|
-
|
250
|
+
uint8_t *cur = GPR_SLICE_START_PTR(ep->write_staging_buffer);
|
251
|
+
uint8_t *end = GPR_SLICE_END_PTR(ep->write_staging_buffer);
|
252
252
|
|
253
253
|
gpr_slice_buffer_reset_and_unref(&ep->output_buffer);
|
254
254
|
|
@@ -263,7 +263,7 @@ static void endpoint_write(grpc_exec_ctx *exec_ctx, grpc_endpoint *secure_ep,
|
|
263
263
|
|
264
264
|
for (i = 0; i < slices->count; i++) {
|
265
265
|
gpr_slice plain = slices->slices[i];
|
266
|
-
|
266
|
+
uint8_t *message_bytes = GPR_SLICE_START_PTR(plain);
|
267
267
|
size_t message_size = GPR_SLICE_LENGTH(plain);
|
268
268
|
while (message_size > 0) {
|
269
269
|
size_t protected_buffer_size_to_send = (size_t)(end - cur);
|
@@ -315,7 +315,7 @@ static void endpoint_write(grpc_exec_ctx *exec_ctx, grpc_endpoint *secure_ep,
|
|
315
315
|
if (result != TSI_OK) {
|
316
316
|
/* TODO(yangg) do different things according to the error type? */
|
317
317
|
gpr_slice_buffer_reset_and_unref(&ep->output_buffer);
|
318
|
-
grpc_exec_ctx_enqueue(exec_ctx, cb,
|
318
|
+
grpc_exec_ctx_enqueue(exec_ctx, cb, false, NULL);
|
319
319
|
return;
|
320
320
|
}
|
321
321
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
*
|
3
|
-
* Copyright 2015, Google Inc.
|
3
|
+
* Copyright 2015-2016, Google Inc.
|
4
4
|
* All rights reserved.
|
5
5
|
*
|
6
6
|
* Redistribution and use in source and binary forms, with or without
|
@@ -33,22 +33,23 @@
|
|
33
33
|
|
34
34
|
#include "src/core/security/security_connector.h"
|
35
35
|
|
36
|
+
#include <stdbool.h>
|
36
37
|
#include <string.h>
|
37
38
|
|
39
|
+
#include <grpc/support/alloc.h>
|
40
|
+
#include <grpc/support/host_port.h>
|
41
|
+
#include <grpc/support/log.h>
|
42
|
+
#include <grpc/support/slice_buffer.h>
|
43
|
+
#include <grpc/support/string_util.h>
|
44
|
+
|
38
45
|
#include "src/core/security/credentials.h"
|
39
46
|
#include "src/core/security/handshake.h"
|
40
47
|
#include "src/core/security/secure_endpoint.h"
|
41
48
|
#include "src/core/security/security_context.h"
|
42
49
|
#include "src/core/support/env.h"
|
43
|
-
#include "src/core/support/
|
50
|
+
#include "src/core/support/load_file.h"
|
44
51
|
#include "src/core/support/string.h"
|
45
52
|
#include "src/core/transport/chttp2/alpn.h"
|
46
|
-
|
47
|
-
#include <grpc/support/alloc.h>
|
48
|
-
#include <grpc/support/host_port.h>
|
49
|
-
#include <grpc/support/log.h>
|
50
|
-
#include <grpc/support/slice_buffer.h>
|
51
|
-
#include <grpc/support/string_util.h>
|
52
53
|
#include "src/core/tsi/fake_transport_security.h"
|
53
54
|
#include "src/core/tsi/ssl_transport_security.h"
|
54
55
|
|
@@ -61,6 +62,14 @@ static const char *installed_roots_path =
|
|
61
62
|
INSTALL_PREFIX "/share/grpc/roots.pem";
|
62
63
|
#endif
|
63
64
|
|
65
|
+
/* -- Overridden default roots. -- */
|
66
|
+
|
67
|
+
static grpc_ssl_roots_override_callback ssl_roots_override_cb = NULL;
|
68
|
+
|
69
|
+
void grpc_set_ssl_roots_override_callback(grpc_ssl_roots_override_callback cb) {
|
70
|
+
ssl_roots_override_cb = cb;
|
71
|
+
}
|
72
|
+
|
64
73
|
/* -- Cipher suites. -- */
|
65
74
|
|
66
75
|
/* Defines the cipher suites that we accept by default. All these cipher suites
|
@@ -102,31 +111,39 @@ const tsi_peer_property *tsi_peer_get_property_by_name(const tsi_peer *peer,
|
|
102
111
|
return NULL;
|
103
112
|
}
|
104
113
|
|
105
|
-
void
|
106
|
-
|
114
|
+
void grpc_server_security_connector_shutdown(
|
115
|
+
grpc_exec_ctx *exec_ctx, grpc_server_security_connector *connector) {
|
107
116
|
grpc_security_connector_handshake_list *tmp;
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
117
|
+
gpr_mu_lock(&connector->mu);
|
118
|
+
while (connector->handshaking_handshakes) {
|
119
|
+
tmp = connector->handshaking_handshakes;
|
120
|
+
grpc_security_handshake_shutdown(
|
121
|
+
exec_ctx, connector->handshaking_handshakes->handshake);
|
122
|
+
connector->handshaking_handshakes = tmp->next;
|
123
|
+
gpr_free(tmp);
|
124
|
+
}
|
125
|
+
gpr_mu_unlock(&connector->mu);
|
126
|
+
}
|
127
|
+
|
128
|
+
void grpc_channel_security_connector_do_handshake(
|
129
|
+
grpc_exec_ctx *exec_ctx, grpc_channel_security_connector *sc,
|
130
|
+
grpc_endpoint *nonsecure_endpoint, grpc_security_handshake_done_cb cb,
|
131
|
+
void *user_data) {
|
132
|
+
if (sc == NULL || nonsecure_endpoint == NULL) {
|
133
|
+
cb(exec_ctx, user_data, GRPC_SECURITY_ERROR, NULL, NULL);
|
134
|
+
} else {
|
135
|
+
sc->do_handshake(exec_ctx, sc, nonsecure_endpoint, cb, user_data);
|
118
136
|
}
|
119
137
|
}
|
120
138
|
|
121
|
-
void
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
void *user_data) {
|
139
|
+
void grpc_server_security_connector_do_handshake(
|
140
|
+
grpc_exec_ctx *exec_ctx, grpc_server_security_connector *sc,
|
141
|
+
grpc_tcp_server_acceptor *acceptor, grpc_endpoint *nonsecure_endpoint,
|
142
|
+
grpc_security_handshake_done_cb cb, void *user_data) {
|
126
143
|
if (sc == NULL || nonsecure_endpoint == NULL) {
|
127
144
|
cb(exec_ctx, user_data, GRPC_SECURITY_ERROR, NULL, NULL);
|
128
145
|
} else {
|
129
|
-
sc->
|
146
|
+
sc->do_handshake(exec_ctx, sc, acceptor, nonsecure_endpoint, cb, user_data);
|
130
147
|
}
|
131
148
|
}
|
132
149
|
|
@@ -194,12 +211,17 @@ static void *connector_pointer_arg_copy(void *p) {
|
|
194
211
|
return GRPC_SECURITY_CONNECTOR_REF(p, "connector_pointer_arg");
|
195
212
|
}
|
196
213
|
|
214
|
+
static int connector_pointer_cmp(void *a, void *b) { return GPR_ICMP(a, b); }
|
215
|
+
|
216
|
+
static const grpc_arg_pointer_vtable connector_pointer_vtable = {
|
217
|
+
connector_pointer_arg_copy, connector_pointer_arg_destroy,
|
218
|
+
connector_pointer_cmp};
|
219
|
+
|
197
220
|
grpc_arg grpc_security_connector_to_arg(grpc_security_connector *sc) {
|
198
221
|
grpc_arg result;
|
199
222
|
result.type = GRPC_ARG_POINTER;
|
200
223
|
result.key = GRPC_SECURITY_CONNECTOR_ARG;
|
201
|
-
result.value.pointer.
|
202
|
-
result.value.pointer.copy = connector_pointer_arg_copy;
|
224
|
+
result.value.pointer.vtable = &connector_pointer_vtable;
|
203
225
|
result.value.pointer.p = sc;
|
204
226
|
return result;
|
205
227
|
}
|
@@ -235,7 +257,8 @@ static void fake_channel_destroy(grpc_security_connector *sc) {
|
|
235
257
|
}
|
236
258
|
|
237
259
|
static void fake_server_destroy(grpc_security_connector *sc) {
|
238
|
-
|
260
|
+
grpc_server_security_connector *c = (grpc_server_security_connector *)sc;
|
261
|
+
gpr_mu_destroy(&c->mu);
|
239
262
|
gpr_free(sc);
|
240
263
|
}
|
241
264
|
|
@@ -285,50 +308,52 @@ static void fake_channel_check_call_host(grpc_exec_ctx *exec_ctx,
|
|
285
308
|
}
|
286
309
|
|
287
310
|
static void fake_channel_do_handshake(grpc_exec_ctx *exec_ctx,
|
288
|
-
|
311
|
+
grpc_channel_security_connector *sc,
|
289
312
|
grpc_endpoint *nonsecure_endpoint,
|
290
313
|
grpc_security_handshake_done_cb cb,
|
291
314
|
void *user_data) {
|
292
|
-
grpc_do_security_handshake(exec_ctx, tsi_create_fake_handshaker(1), sc,
|
293
|
-
nonsecure_endpoint, cb, user_data);
|
315
|
+
grpc_do_security_handshake(exec_ctx, tsi_create_fake_handshaker(1), &sc->base,
|
316
|
+
true, nonsecure_endpoint, cb, user_data);
|
294
317
|
}
|
295
318
|
|
296
319
|
static void fake_server_do_handshake(grpc_exec_ctx *exec_ctx,
|
297
|
-
|
320
|
+
grpc_server_security_connector *sc,
|
321
|
+
grpc_tcp_server_acceptor *acceptor,
|
298
322
|
grpc_endpoint *nonsecure_endpoint,
|
299
323
|
grpc_security_handshake_done_cb cb,
|
300
324
|
void *user_data) {
|
301
|
-
grpc_do_security_handshake(exec_ctx, tsi_create_fake_handshaker(0), sc,
|
302
|
-
nonsecure_endpoint, cb, user_data);
|
325
|
+
grpc_do_security_handshake(exec_ctx, tsi_create_fake_handshaker(0), &sc->base,
|
326
|
+
false, nonsecure_endpoint, cb, user_data);
|
303
327
|
}
|
304
328
|
|
305
329
|
static grpc_security_connector_vtable fake_channel_vtable = {
|
306
|
-
fake_channel_destroy,
|
330
|
+
fake_channel_destroy, fake_check_peer};
|
307
331
|
|
308
|
-
static grpc_security_connector_vtable fake_server_vtable = {
|
309
|
-
|
332
|
+
static grpc_security_connector_vtable fake_server_vtable = {fake_server_destroy,
|
333
|
+
fake_check_peer};
|
310
334
|
|
311
335
|
grpc_channel_security_connector *grpc_fake_channel_security_connector_create(
|
312
336
|
grpc_call_credentials *request_metadata_creds) {
|
313
337
|
grpc_channel_security_connector *c = gpr_malloc(sizeof(*c));
|
314
338
|
memset(c, 0, sizeof(*c));
|
315
339
|
gpr_ref_init(&c->base.refcount, 1);
|
316
|
-
c->base.is_client_side = 1;
|
317
340
|
c->base.url_scheme = GRPC_FAKE_SECURITY_URL_SCHEME;
|
318
341
|
c->base.vtable = &fake_channel_vtable;
|
319
|
-
c->request_metadata_creds =
|
320
|
-
grpc_call_credentials_ref(request_metadata_creds);
|
342
|
+
c->request_metadata_creds = grpc_call_credentials_ref(request_metadata_creds);
|
321
343
|
c->check_call_host = fake_channel_check_call_host;
|
344
|
+
c->do_handshake = fake_channel_do_handshake;
|
322
345
|
return c;
|
323
346
|
}
|
324
347
|
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
c
|
330
|
-
c->
|
331
|
-
c->
|
348
|
+
grpc_server_security_connector *grpc_fake_server_security_connector_create(
|
349
|
+
void) {
|
350
|
+
grpc_server_security_connector *c =
|
351
|
+
gpr_malloc(sizeof(grpc_server_security_connector));
|
352
|
+
memset(c, 0, sizeof(*c));
|
353
|
+
gpr_ref_init(&c->base.refcount, 1);
|
354
|
+
c->base.vtable = &fake_server_vtable;
|
355
|
+
c->base.url_scheme = GRPC_FAKE_SECURITY_URL_SCHEME;
|
356
|
+
c->do_handshake = fake_server_do_handshake;
|
332
357
|
gpr_mu_init(&c->mu);
|
333
358
|
return c;
|
334
359
|
}
|
@@ -343,7 +368,7 @@ typedef struct {
|
|
343
368
|
} grpc_ssl_channel_security_connector;
|
344
369
|
|
345
370
|
typedef struct {
|
346
|
-
|
371
|
+
grpc_server_security_connector base;
|
347
372
|
tsi_ssl_handshaker_factory *handshaker_factory;
|
348
373
|
} grpc_ssl_server_security_connector;
|
349
374
|
|
@@ -366,12 +391,12 @@ static void ssl_server_destroy(grpc_security_connector *sc) {
|
|
366
391
|
if (c->handshaker_factory != NULL) {
|
367
392
|
tsi_ssl_handshaker_factory_destroy(c->handshaker_factory);
|
368
393
|
}
|
369
|
-
gpr_mu_destroy(&
|
394
|
+
gpr_mu_destroy(&c->base.mu);
|
370
395
|
gpr_free(sc);
|
371
396
|
}
|
372
397
|
|
373
398
|
static grpc_security_status ssl_create_handshaker(
|
374
|
-
tsi_ssl_handshaker_factory *handshaker_factory,
|
399
|
+
tsi_ssl_handshaker_factory *handshaker_factory, bool is_client,
|
375
400
|
const char *peer_name, tsi_handshaker **handshaker) {
|
376
401
|
tsi_result result = TSI_OK;
|
377
402
|
if (handshaker_factory == NULL) return GRPC_SECURITY_ERROR;
|
@@ -386,7 +411,7 @@ static grpc_security_status ssl_create_handshaker(
|
|
386
411
|
}
|
387
412
|
|
388
413
|
static void ssl_channel_do_handshake(grpc_exec_ctx *exec_ctx,
|
389
|
-
|
414
|
+
grpc_channel_security_connector *sc,
|
390
415
|
grpc_endpoint *nonsecure_endpoint,
|
391
416
|
grpc_security_handshake_done_cb cb,
|
392
417
|
void *user_data) {
|
@@ -394,20 +419,21 @@ static void ssl_channel_do_handshake(grpc_exec_ctx *exec_ctx,
|
|
394
419
|
(grpc_ssl_channel_security_connector *)sc;
|
395
420
|
tsi_handshaker *handshaker;
|
396
421
|
grpc_security_status status = ssl_create_handshaker(
|
397
|
-
c->handshaker_factory,
|
422
|
+
c->handshaker_factory, true,
|
398
423
|
c->overridden_target_name != NULL ? c->overridden_target_name
|
399
424
|
: c->target_name,
|
400
425
|
&handshaker);
|
401
426
|
if (status != GRPC_SECURITY_OK) {
|
402
427
|
cb(exec_ctx, user_data, status, NULL, NULL);
|
403
428
|
} else {
|
404
|
-
grpc_do_security_handshake(exec_ctx, handshaker, sc,
|
405
|
-
user_data);
|
429
|
+
grpc_do_security_handshake(exec_ctx, handshaker, &sc->base, true,
|
430
|
+
nonsecure_endpoint, cb, user_data);
|
406
431
|
}
|
407
432
|
}
|
408
433
|
|
409
434
|
static void ssl_server_do_handshake(grpc_exec_ctx *exec_ctx,
|
410
|
-
|
435
|
+
grpc_server_security_connector *sc,
|
436
|
+
grpc_tcp_server_acceptor *acceptor,
|
411
437
|
grpc_endpoint *nonsecure_endpoint,
|
412
438
|
grpc_security_handshake_done_cb cb,
|
413
439
|
void *user_data) {
|
@@ -415,12 +441,12 @@ static void ssl_server_do_handshake(grpc_exec_ctx *exec_ctx,
|
|
415
441
|
(grpc_ssl_server_security_connector *)sc;
|
416
442
|
tsi_handshaker *handshaker;
|
417
443
|
grpc_security_status status =
|
418
|
-
ssl_create_handshaker(c->handshaker_factory,
|
444
|
+
ssl_create_handshaker(c->handshaker_factory, false, NULL, &handshaker);
|
419
445
|
if (status != GRPC_SECURITY_OK) {
|
420
446
|
cb(exec_ctx, user_data, status, NULL, NULL);
|
421
447
|
} else {
|
422
|
-
grpc_do_security_handshake(exec_ctx, handshaker, sc,
|
423
|
-
user_data);
|
448
|
+
grpc_do_security_handshake(exec_ctx, handshaker, &sc->base, false,
|
449
|
+
nonsecure_endpoint, cb, user_data);
|
424
450
|
}
|
425
451
|
}
|
426
452
|
|
@@ -500,9 +526,10 @@ static grpc_security_status ssl_check_peer(grpc_security_connector *sc,
|
|
500
526
|
return GRPC_SECURITY_OK;
|
501
527
|
}
|
502
528
|
|
503
|
-
static void ssl_channel_check_peer(
|
504
|
-
|
505
|
-
|
529
|
+
static void ssl_channel_check_peer(grpc_exec_ctx *exec_ctx,
|
530
|
+
grpc_security_connector *sc, tsi_peer peer,
|
531
|
+
grpc_security_peer_check_cb cb,
|
532
|
+
void *user_data) {
|
506
533
|
grpc_ssl_channel_security_connector *c =
|
507
534
|
(grpc_ssl_channel_security_connector *)sc;
|
508
535
|
grpc_security_status status;
|
@@ -516,9 +543,10 @@ static void ssl_channel_check_peer(
|
|
516
543
|
tsi_peer_destruct(&peer);
|
517
544
|
}
|
518
545
|
|
519
|
-
static void ssl_server_check_peer(
|
520
|
-
|
521
|
-
|
546
|
+
static void ssl_server_check_peer(grpc_exec_ctx *exec_ctx,
|
547
|
+
grpc_security_connector *sc, tsi_peer peer,
|
548
|
+
grpc_security_peer_check_cb cb,
|
549
|
+
void *user_data) {
|
522
550
|
grpc_auth_context *auth_context = NULL;
|
523
551
|
grpc_security_status status = ssl_check_peer(sc, NULL, &peer, &auth_context);
|
524
552
|
tsi_peer_destruct(&peer);
|
@@ -589,28 +617,49 @@ static void ssl_channel_check_call_host(grpc_exec_ctx *exec_ctx,
|
|
589
617
|
}
|
590
618
|
|
591
619
|
static grpc_security_connector_vtable ssl_channel_vtable = {
|
592
|
-
ssl_channel_destroy,
|
620
|
+
ssl_channel_destroy, ssl_channel_check_peer};
|
593
621
|
|
594
622
|
static grpc_security_connector_vtable ssl_server_vtable = {
|
595
|
-
ssl_server_destroy,
|
623
|
+
ssl_server_destroy, ssl_server_check_peer};
|
596
624
|
|
597
|
-
static gpr_slice
|
625
|
+
static gpr_slice compute_default_pem_root_certs_once(void) {
|
626
|
+
gpr_slice result = gpr_empty_slice();
|
598
627
|
|
599
|
-
static void init_default_pem_root_certs(void) {
|
600
628
|
/* First try to load the roots from the environment. */
|
601
629
|
char *default_root_certs_path =
|
602
630
|
gpr_getenv(GRPC_DEFAULT_SSL_ROOTS_FILE_PATH_ENV_VAR);
|
603
|
-
if (default_root_certs_path
|
604
|
-
|
605
|
-
} else {
|
606
|
-
default_pem_root_certs = gpr_load_file(default_root_certs_path, 0, NULL);
|
631
|
+
if (default_root_certs_path != NULL) {
|
632
|
+
result = gpr_load_file(default_root_certs_path, 0, NULL);
|
607
633
|
gpr_free(default_root_certs_path);
|
608
634
|
}
|
609
635
|
|
636
|
+
/* Try overridden roots if needed. */
|
637
|
+
grpc_ssl_roots_override_result ovrd_res = GRPC_SSL_ROOTS_OVERRIDE_FAIL;
|
638
|
+
if (GPR_SLICE_IS_EMPTY(result) && ssl_roots_override_cb != NULL) {
|
639
|
+
char *pem_root_certs = NULL;
|
640
|
+
ovrd_res = ssl_roots_override_cb(&pem_root_certs);
|
641
|
+
if (ovrd_res == GRPC_SSL_ROOTS_OVERRIDE_OK) {
|
642
|
+
GPR_ASSERT(pem_root_certs != NULL);
|
643
|
+
result = gpr_slice_new(pem_root_certs, strlen(pem_root_certs), gpr_free);
|
644
|
+
}
|
645
|
+
}
|
646
|
+
|
610
647
|
/* Fall back to installed certs if needed. */
|
611
|
-
if (GPR_SLICE_IS_EMPTY(
|
612
|
-
|
648
|
+
if (GPR_SLICE_IS_EMPTY(result) &&
|
649
|
+
ovrd_res != GRPC_SSL_ROOTS_OVERRIDE_FAIL_PERMANENTLY) {
|
650
|
+
result = gpr_load_file(installed_roots_path, 0, NULL);
|
613
651
|
}
|
652
|
+
return result;
|
653
|
+
}
|
654
|
+
|
655
|
+
static gpr_slice default_pem_root_certs;
|
656
|
+
|
657
|
+
static void init_default_pem_root_certs(void) {
|
658
|
+
default_pem_root_certs = compute_default_pem_root_certs_once();
|
659
|
+
}
|
660
|
+
|
661
|
+
gpr_slice grpc_get_default_ssl_roots_for_testing(void) {
|
662
|
+
return compute_default_pem_root_certs_once();
|
614
663
|
}
|
615
664
|
|
616
665
|
size_t grpc_get_default_ssl_roots(const unsigned char **pem_root_certs) {
|
@@ -665,11 +714,11 @@ grpc_security_status grpc_ssl_channel_security_connector_create(
|
|
665
714
|
|
666
715
|
gpr_ref_init(&c->base.base.refcount, 1);
|
667
716
|
c->base.base.vtable = &ssl_channel_vtable;
|
668
|
-
c->base.base.is_client_side = 1;
|
669
717
|
c->base.base.url_scheme = GRPC_SSL_URL_SCHEME;
|
670
718
|
c->base.request_metadata_creds =
|
671
719
|
grpc_call_credentials_ref(request_metadata_creds);
|
672
720
|
c->base.check_call_host = ssl_channel_check_call_host;
|
721
|
+
c->base.do_handshake = ssl_channel_do_handshake;
|
673
722
|
gpr_split_host_port(target_name, &c->target_name, &port);
|
674
723
|
gpr_free(port);
|
675
724
|
if (overridden_target_name != NULL) {
|
@@ -700,7 +749,7 @@ error:
|
|
700
749
|
}
|
701
750
|
|
702
751
|
grpc_security_status grpc_ssl_server_security_connector_create(
|
703
|
-
const grpc_ssl_server_config *config,
|
752
|
+
const grpc_ssl_server_config *config, grpc_server_security_connector **sc) {
|
704
753
|
size_t num_alpn_protocols = grpc_chttp2_num_alpn_versions();
|
705
754
|
const unsigned char **alpn_protocol_strings =
|
706
755
|
gpr_malloc(sizeof(const char *) * num_alpn_protocols);
|
@@ -724,9 +773,9 @@ grpc_security_status grpc_ssl_server_security_connector_create(
|
|
724
773
|
c = gpr_malloc(sizeof(grpc_ssl_server_security_connector));
|
725
774
|
memset(c, 0, sizeof(grpc_ssl_server_security_connector));
|
726
775
|
|
727
|
-
gpr_ref_init(&c->base.refcount, 1);
|
728
|
-
c->base.url_scheme = GRPC_SSL_URL_SCHEME;
|
729
|
-
c->base.vtable = &ssl_server_vtable;
|
776
|
+
gpr_ref_init(&c->base.base.refcount, 1);
|
777
|
+
c->base.base.url_scheme = GRPC_SSL_URL_SCHEME;
|
778
|
+
c->base.base.vtable = &ssl_server_vtable;
|
730
779
|
result = tsi_create_ssl_server_handshaker_factory(
|
731
780
|
(const unsigned char **)config->pem_private_keys,
|
732
781
|
config->pem_private_keys_sizes,
|
@@ -739,11 +788,12 @@ grpc_security_status grpc_ssl_server_security_connector_create(
|
|
739
788
|
if (result != TSI_OK) {
|
740
789
|
gpr_log(GPR_ERROR, "Handshaker factory creation failed with %s.",
|
741
790
|
tsi_result_to_string(result));
|
742
|
-
ssl_server_destroy(&c->base);
|
791
|
+
ssl_server_destroy(&c->base.base);
|
743
792
|
*sc = NULL;
|
744
793
|
goto error;
|
745
794
|
}
|
746
795
|
gpr_mu_init(&c->base.mu);
|
796
|
+
c->base.do_handshake = ssl_server_do_handshake;
|
747
797
|
*sc = &c->base;
|
748
798
|
gpr_free((void *)alpn_protocol_strings);
|
749
799
|
gpr_free(alpn_protocol_string_lengths);
|