Commit Graph

747 Commits

Author SHA1 Message Date
Esun Kim 9bd7c4917a Fix unused-parameter warning 2021-01-19 18:18:09 -08:00
Ashitha Santhosh 4ca878799b Refactor [String/Header/Path]matchers in xds_api. 2021-01-15 12:32:54 -08:00
Yash Tibrewal ac4f4de196 xDS server config fetcher 2021-01-14 14:27:51 -08:00
ZhenLian e745f8cb55
Merge pull request #25018 from ZhenLian/zhen_dynamic_file_reloading_9
Support Default Root Certs in Tls Credentials
2021-01-07 09:40:31 -08:00
ZhenLian c48e39d5c2 Support Default Root Certs in Tls Credentials 2021-01-06 23:02:52 -08:00
Chuan Ren 06cc42eb85 Add support of implicit and explicit flows for external account creds 2021-01-05 13:20:42 -08:00
Mark D. Roth 393687c3b7
Merge pull request #24989 from renkelvin/base-fix
Url encode the request before calling STS backend
2021-01-05 12:51:34 -08:00
Chuan Ren 18ffe21abd Add support of url with query params to url creds 2020-12-21 16:43:34 -08:00
Chuan Ren 7cf95b881f Update external_account_credentials.cc 2020-12-21 10:45:44 -08:00
Chuan Ren d2aef5c27e Fix and improvements to aws creds 2020-12-14 15:09:59 -08:00
Yash Tibrewal c9e99945ec Add SANs matching for xDS credentials 2020-12-08 15:15:39 -08:00
ZhenLian 551009be68
Merge pull request #24805 from ZhenLian/zhen_dynamic_file_reloading_7
refactor PemKeyCertPair to take absl::string_view
2020-12-08 10:27:58 -08:00
AJ Heller 880a854f0e Convert URI parser to C++ #24701 2020-12-07 12:13:22 -08:00
ZhenLian de4e8a4680 refactor PemKeyCertPair 2020-12-07 12:10:45 -08:00
Esun Kim 6c440e820b
Merge pull request #24841 from veblush/tidy-google-readability-casting
[Clang-Tidy] google-readability-casting
2020-12-03 14:49:45 -08:00
Yash Tibrewal 096b2324e1 Experimental API for XdsServerCredentials 2020-12-01 12:47:52 -08:00
Esun Kim 2ff84ed8c2 C++ cast for void* 2020-11-30 17:29:15 -08:00
Esun Kim 75e3e660fd Fix google-readability-todo 2020-11-25 10:09:42 -08:00
ZhenLian d7d5ee1bff
Merge pull request #24600 from ZhenLian/zhen_dynamic_file_reloading_5
Add FileWatcher CertificateProvider
2020-11-20 13:02:36 -08:00
ZhenLian d74e43da95 Add File Watcher Certificate Provider API 2020-11-19 13:36:13 -08:00
Chuan Ren 1faf030cc4 Add aws-sourced external credentials 2020-11-19 11:20:35 -08:00
Chuan Ren bedaeb5265 Add aws signature v4 signer 2020-11-11 15:55:16 -08:00
Mark D. Roth 27e1c1c56d clang-tidy: enable google-readability-braces-around-statements 2020-11-06 13:41:44 -08:00
Chuan Ren 2b1265b42f Add file-sourced external credentials 2020-11-02 14:11:50 -08:00
ZhenLian 518ed1303c Add Credential Loading From Static Providers For TLS Credentials 2020-10-22 13:55:31 -07:00
Chuan Ren 4c93d36d08 Add url-sourced external credentials 2020-10-20 13:56:55 -07:00
Esun Kim e7434d385e Fix by tidy-modernize-use-override 2020-10-16 14:01:06 -07:00
Esun Kim 47dd5fd78e Fix by modernize-use-bool-literals 2020-10-16 10:14:45 -07:00
Mark D. Roth 012381235f
Merge pull request #24208 from renkelvin/base
[3PI Support] Add base external account credentials class
2020-10-13 10:27:14 -07:00
Chuan Ren 0cf672d42e Add implementation of base external account credentials 2020-10-12 16:18:11 -07:00
Yash Tibrewal 4013fd9dc9
Merge pull request #24313 from yashykt/xdscredscpp
C++ API to create Xds channel credentials
2020-10-08 22:27:21 -07:00
Yash Tibrewal c52cb09f47 Add experimental XdsCredentials with support for insecure channel_credentials and security_connector 2020-10-08 20:37:47 -07:00
Esun Kim 8e9e895ffc Replace grpc_shutdown_blocking with grpc_shutdown 2020-10-08 10:57:05 -07:00
Ashitha Santhosh 2cfb1bf2cf
Merge pull request #24159 from ashithasantosh/eval_flaky
Use TestEnvironment to fix flaky test.
2020-09-17 21:28:23 -07:00
Yash Tibrewal 11abbd3828 Add parsing logic for GoogleMeshCaConfig 2020-09-17 09:33:10 -07:00
Ashitha Santhosh 443c8aa8f1 Create TestEnvironment to fix flaky test. 2020-09-15 13:15:23 -07:00
ZhenLian 1a275d7eab Add tls_certificate_distributor implementation 2020-09-08 10:20:21 -07:00
Ashitha Santhosh b1fd4a45a4 Add EvaluateArgs test. 2020-08-27 13:00:56 -07:00
ashithasantosh 5820e833fc Add activation logic and endpoint getters. 2020-08-18 19:12:22 -07:00
Yash Tibrewal 55821f5cf8 Revert "Merge pull request #23786 from michaelywg/cel_create_activation"
This reverts commit fe59761648, reversing
changes made to 1856e224c3.
2020-08-17 14:01:53 -07:00
Michael Wang b8771966f1 Added tests for eval_args address/port getters. Implemented said getters and CreateActivation.
Added logging for unsupported attributes

fixed make issues by moving grpc_authorization_engine under grpc

changed inet_aton to inet_pton

fixed issue leftover from initial implementation of evalargs
2020-08-14 04:30:42 +00:00
Michael Wang d0311ac81a Basic class definition and constructor Cel eval engine
Merge remote-tracking branch 'upstream/master' into celeval_constructor

Iterate through policies and store CEL condition

git push origin ce Merge remote-tracking branch 'upstream/master' into celeval_constructor

added class and constructor comments for CelEvaluationEngine

CelEvaluationEngine class and constructor

Added cel_evaluation_engine to build

ran clang_tidy_code.sh

updated BUILD with cel_evaluation_engine

added rbac.upb.h/cc to BUILD

Rewrote cel_evaluation_engine code with upb conventions

removed unnecessary deps for cel_evaluation_engine in BUILD

Cel_evaluation_engine uses arenas to manage condition pointers

Used upb::Arena instead of upb_arena*, added temp_arena to save memory

Added action_allow_ member variable

Added fullstops to comments

initialize action_allow_

changed variable names to be more clear

removed unnecessary headers

correctly initialize the action_allow_ variable

changed constructor to use an initializer list

ran clang_tidy and clang_format scripts

added cel_engine_test

resolved merge conflicts and rewrote cel engine constructor to use new map api

changed variables to be more clear and made them const

changed syntax.upb.h so the build succeeds

changed syntax.upb.h so the build succeeds

changed version of upb in bazel_dpes

regenerated upb files with new upb version

added TODO regarding two-policy design

modified CelEvaluationEngine and tests to use two rbac policies

Made test messages consistent and added a case with too many policies

changed name from cel_engine to authorization_engine

fixed merge issues and updated authorization engine to v3 rbac

made constructor public and added namespace grpc_core
2020-08-04 18:23:21 +00:00
Karthik Ravi Shankar 1de0bfd9e2
Revert "Revert "Move create_channel and credentials from ::grpc_impl to ::grpc"" 2020-07-24 12:47:33 -07:00
Karthik Ravi Shankar f1bc43edf6
Revert "Move create_channel and credentials from ::grpc_impl to ::grpc" 2020-07-24 11:08:54 -07:00
Karthik Ravi Shankar 9ad399384a Merge branch 'master' into create-channel 2020-07-23 00:47:36 -07:00
Richard Belleville 089d90933a
Merge pull request #23203 from gnossen/python_google_default_creds
Implement compute_engine_channel_credentials in Python
2020-07-22 13:14:54 -07:00
Richard Belleville d40a91dde5 Don't check tenancy if credentials specified 2020-07-21 17:55:00 +00:00
Richard Belleville c4491121c6 Stop checking g_is_on_gce in security connector 2020-07-21 00:17:34 +00:00
Esun Kim 315caf5d05 Added grpc::testing::TestEnvironment 2020-07-19 19:38:31 -07:00
Karthik Ravi Shankar 1999b20c7d Merge branch 'master' into create-channel 2020-07-13 10:58:31 -07:00
Richard Belleville 535d0da0dd Complete synchronously 2020-07-10 19:05:56 +00:00
Richard Belleville 56ed8f3be4 Merge remote-tracking branch 'origin/master' into python_google_default_creds 2020-07-10 01:09:58 +00:00
Richard Belleville acbda9835e Reuse mdelem 2020-07-10 00:50:23 +00:00
Richard Belleville ff5f4bb6fc Add test 2020-07-10 00:31:23 +00:00
Richard Belleville 8412476a9b Add sunny day core API path 2020-07-09 21:49:06 +00:00
Richard Belleville d067b63d48 WIP 2020-07-08 23:09:57 +00:00
Mark D. Roth 9404f66f70 Replace most uses of gpr_asprintf() with absl calls. 2020-07-07 12:01:02 -07:00
Richard Belleville c8a8a6aea4 Get new core API design building 2020-07-07 00:18:42 +00:00
Karthik Ravi Shankar 331519496e Merge branch 'master' into create-channel 2020-07-01 15:15:39 -07:00
Esun Kim 62ac3f075a Added call to grpc::testing::TestEnvironment in tests 2020-07-01 11:37:57 -07:00
Karthik Ravi Shankar fa0c73146c Fix formatting issue 2020-06-29 17:28:11 -07:00
Karthik Ravi Shankar 0963497181 Fix fetch oauth2 test 2020-06-29 17:07:56 -07:00
Richard Belleville c10cae4659 Remove platform-specific assertion 2020-06-26 17:54:48 +00:00
Richard Belleville f2a0f47fbb Add test 2020-06-26 05:44:39 +00:00
jiangtaoli2016 e8f17c5f96 Fix SPIFFE ID check 2020-06-24 08:53:09 -07:00
Mark D. Roth 3bb427195e Revert "Merge pull request #23053 from grpc/revert-22772-gpr_strvec"
This reverts commit 4b7452bcdb, reversing
changes made to 133d0076b4.
2020-05-28 11:13:12 -07:00
Karthik Ravi Shankar f46c07f3f8
Revert "Remove gpr_strvec." 2020-05-26 17:25:45 -07:00
Mark D. Roth c2ef110303 Replace gpr_strvec with absl::StrJoin(). 2020-05-21 08:47:41 -07:00
ZhenLian 2252895011
Merge pull request #22863 from ZhenLian/zhen_tmp_branch
Expose Peer SPIFFE Identity
2020-05-08 09:24:00 -07:00
ZhenLian b98457ff79 fix first round of feedback 2020-05-07 23:04:13 -07:00
ZhenLian 9f92365657 Expose Peer SPIFFE Identity 2020-05-05 10:57:54 -07:00
ZhenLian d75de51e43 [10/n] remove hard-coded credential paths and rebuild the project 2020-04-29 10:51:56 -07:00
Mark D. Roth fc6f26c89b Remove grpc_core::StringView. 2020-04-27 07:46:13 -07:00
ZhenLian 096c276182 [4/n] Avoid using hardcoded test credentials 2020-04-14 11:47:19 -07:00
Mark D. Roth 41cfae4234 Revert "Merge pull request #19693 from apolcyn/control_plane_creds"
This reverts commit 162fccdb90, reversing
changes made to 228e7557fa.
2020-04-02 08:13:26 -07:00
ZhenLian 738272f3a8 [ImproveTLS] add a wrapper to error_detail in C core args 2020-03-18 09:35:39 -07:00
Zhen Lian cbc977204b [ImproveTLS] fix memory leak issue from users' perspective 2020-03-04 17:04:06 -08:00
Matthew Stevenson 006980a915 Merge remote-tracking branch 'upstream/master' into tls-documentation-1 2020-02-28 07:34:26 -08:00
Matthew Stevenson 786e6c3ed3 Fix build issues. 2020-02-27 11:07:12 -08:00
Matthew Stevenson ad9a9a7067 Remove unnecessary comments. 2020-02-27 10:18:57 -08:00
Matthew Stevenson 3c87fb610f Add comments to TlsFetchKeyMaterials API and add a test file for the TLS credentials options. 2020-02-27 10:01:14 -08:00
Moiz Haidry f53456210d Addressed Mark's comments 2020-02-27 09:03:52 -08:00
Moiz Haidry ede2ffc1a8 Addressed Mark's comments 2020-02-26 12:51:35 -08:00
Moiz Haidry 67565b767d CallCredentials debug string API 2020-02-25 16:09:03 -08:00
Vijay Pai f6b38f75a4
Revert "feat: add x-goog-user-project header from quota_project_id field" 2020-02-24 09:56:52 -08:00
Jiangtao Li ddd010781f
Merge pull request #21324 from tmatsuo/x-goog-user-project
feat: add x-goog-user-project header from quota_project_id field
2020-02-20 14:57:44 -08:00
Julien Boeuf f930322bf9 Add more tests for STS
- ensure that we don't crash if the token file is not readable.
- fixed the oauth2 token fetcher as well.
2020-02-13 16:08:45 -08:00
Mark D. Roth 568f490aef
Merge pull request #21256 from markdroth/json_new_api_security
Convert security code to use new JSON API
2020-01-30 11:08:26 -08:00
Mark D. Roth f961942266 Convert security code to use new JSON API 2020-01-30 07:44:22 -08:00
Zhen Lian 9ded19e24d fix first round of comments 2020-01-28 15:17:07 -08:00
Takashi Matsuo 9bed17b987 feat: add x-goog-user-project header from quota_project field 2020-01-28 13:36:36 -08:00
Zhen Lian ffcf4f477e [TLS Lib Clean-up] Add hostname check For tls library 2020-01-23 17:01:21 -08:00
Yang Gao 56972ae715
Merge pull request #21648 from yang-g/init_first
InitGoogleTest before grpc_init
2020-01-14 15:07:37 -08:00
yang-g 5bc57b64fe InitGoogleTest before grpc_init 2020-01-14 13:29:15 -08:00
Julien Boeuf 323e23a7c5 Fix STS credentials to ignore empty actor token path. 2020-01-13 11:24:15 -08:00
Yihua Zhang c8c284ed3a merge with upstream/master 2020-01-07 15:33:26 -08:00
Yihua Zhang e10d90ba27 add security level negotiation between call creds and channel. 2020-01-06 11:40:27 -08:00
Akshay Kumar db11b94f25 FullChainExperimental-01-200103 2020-01-03 22:37:18 -08:00
Yihua Zhang a6dbc7adb5 rename spiffe to tls 2019-12-05 16:03:37 -08:00
Juanli Shen 2693d34c30 Make StringView cmp compatible with absl 2019-12-03 13:47:12 -08:00
jboeuf 7fa653dbfb
Merge pull request #21277 from jboeuf/sts_creds_fix
Fixing bug where subject token was used instead of the actor token.
2019-11-27 11:30:49 -08:00
Jan Tattermusch 13843be76e
fix type 2019-11-26 21:07:42 +01:00
Jan Tattermusch eb137ea519 clang format 2019-11-25 07:46:05 -05:00
Jan Tattermusch 04796c8ccb fix //test/core/security:credentials_test under local bazel run 2019-11-25 13:37:57 +01:00
Julien Boeuf cedf76ee9a Fixing bug where subject token was used instead of the actor token. 2019-11-22 15:23:00 -08:00
ZhenLian 0748d57de3
Merge pull request #20873 from ZhenLian/zhen_design_writeup_3
[Exposing ALTS Context 1/2] Fill in context on TSI and Security Connector Layer
2019-11-08 08:54:04 -08:00
Esun Kim e45b60d1fe Fix unique_ptr<char> memory allocation mismatch 2019-11-07 17:53:59 -08:00
Zhen Lian ddf565db33 running clang-format -i on each modified files 2019-11-07 13:13:42 -08:00
Esun Kim b2b7fc9af8 Replaced grpc_core::UniquePtr with std::unique_ptr 2019-11-07 13:05:39 -08:00
Esun Kim 3a519a0b64 Replaced grpc_core New & Delete with C++ new & delete 2019-11-06 17:52:26 -08:00
Esun Kim de81f120b2 Abseilify StringView 2019-11-06 10:58:03 -08:00
Lidi Zheng c34bef4ca4 Format all Bazel files with buildifier 2019-11-05 14:03:52 -08:00
Yash Tibrewal 4b31415e61
Merge pull request #20892 from yashykt/removsched
Replace GRPC_CLOSURE_SCHED with ExecCtx::Run
2019-11-05 10:48:12 -08:00
Esun Kim 81df105ac8 Deprecate gpr_get/set_allocation_functions 2019-11-04 19:47:33 -08:00
Yash Tibrewal 3a189d7e08 test changes 2019-10-31 17:09:38 -07:00
Zhen Lian e8d570618e [Exposing ALTS Context 1/2] Fill in context on TSI and Security Connector Layer 2019-10-30 13:39:52 -07:00
Vijay Pai e0fdf40e9d
Merge pull request #20700 from vjpai/more_cpp_warning_removals_201910210916_17
Remove unused-parameter warnings, round 2 (17 of 19)
2019-10-28 11:26:58 -07:00
Jiangtao Li 57818b0d02
Merge pull request #20565 from coryan/fix-issue-16872
bug: remove racy code to detect GCE on Windows
2019-10-24 15:39:02 -07:00
Vijay Pai 2477b966e2 Remove unused-parameter warnings, round 2 (17 of 19) 2019-10-24 13:08:35 -07:00
Carlos O'Ryan 2144c719fc
Run clang_format_all_the_things.sh 2019-10-24 13:24:33 -04:00
Vijay Pai be6911d1d2
Merge pull request #20650 from vjpai/remove_warn_11
Remove unused parameter warnings (11 of 20)
2019-10-18 10:13:50 -07:00
Vijay Pai fb682f8c6e clang-format 2019-10-17 09:06:28 -07:00
Vijay Pai c3faf1c3b8 Remove unused parameter warning (12 of 20) 2019-10-17 08:51:34 -07:00
Vijay Pai 8ff71276f5 Remove unused parameter warning (11 of 20) 2019-10-17 08:51:29 -07:00
Carlos O'Ryan b3c4c49e36 bug: remove racy code to detect GCE on Windows
The code used to detect if a program was running on Windows by launching
a powershell script (which requires powershell to be installed), writing
the output to a file with a fixed name (which requires write permissions
in the local directory), and then reading the file (which may have
changed), and then deleting it (which may fail and introduces a race
with any other program running in the same directory).

This version reads a key from the Windows registry. That could fail if
the application does not have permissions to read the registry, but at
least does not crash when it does, and it is not inheritently racy.
2019-10-10 18:51:10 +00:00
yihuaz 6c2eb034f7
Merge pull request #20412 from yihuazhang/socket_mutator
Update grpc_ssl_peer_to_auth_context() to take in transport security type as a parameter
2019-10-02 11:25:12 -07:00
Yihua Zhang 9be983d40b fix tests. 2019-09-30 14:04:52 -07:00
Jan Tattermusch 8e79705d29 disable fuzzers on windows 2019-09-30 13:28:01 +02:00
Jan Tattermusch e682b32340 fixup core uses-polling 2019-09-30 13:27:58 +02:00
Jan Tattermusch 068340381f add uses_polling=False to selected core tests 2019-09-30 13:27:58 +02:00
Jan Tattermusch 6ebc1c616f set uses_polling=False for some bazel tests 2019-09-24 09:50:00 +02:00
Soheil Hassas Yeganeh 9b9764cb2a Fix build error in SSL fuzzer. 2019-09-16 15:10:02 -04:00
Hope Casey-Allen 59564ebd96 Fix warnings to unblock gcc8 support 2019-08-20 16:02:53 -07:00
Yihua Zhang ae863630d5 Add spiffe client-side credential reload 2019-08-12 14:12:13 -07:00
Alexander Polcyn 609107586a Add a way for tests with LeakDetector to free the control plane creds map 2019-07-22 20:40:34 -07:00
Alexander Polcyn 6898c23a5d Add experimental control plane creds C-core API 2019-07-22 16:03:02 -07:00
Julien Boeuf 109edca971 Adding C++ API and implementation for STS credentials:
- marked as experimental.
- also changed the name of a field in the options struct.
2019-07-09 22:28:44 -07:00
Soheil Hassas Yeganeh 39e982a263
Merge pull request #19488 from soheilhy/string-view2
Introduce string_view and use it for gpr_split_host_port
2019-07-01 13:53:16 -04:00
Yang Gao a0e76c0300
Merge pull request #19484 from yang-g/oauth
Update oauth2 token endpoints
2019-06-28 09:50:04 -07:00
Soheil Hassas Yeganeh ea63c00d38 Revert "Fix build failure in credential_test.cc"
This reverts commit dc858eea25.
2019-06-27 20:56:15 -04:00
Soheil Hassas Yeganeh dc858eea25 Fix build failure in credential_test.cc 2019-06-27 14:19:15 -04:00
yang-g 7a4b6b7e30 Update oauth2 token endpoints 2019-06-26 15:02:19 -07:00
Julien Boeuf 189c2c8c30 Adding support for STS Token Exchange Creds in core:
- IETF specification is available here:
https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-16
2019-06-26 12:48:05 -07:00
Esun Kim 90fbdc92f5 Roll-forward "Config migration"
This reverts commit 236ae12bb1.
2019-05-20 15:47:24 -07:00
Alexander Polcyn 236ae12bb1 Revert "Config migration"
This reverts commit 87905ae5ea.
2019-05-14 14:36:33 -07:00
Esun Kim 87905ae5ea Config migration 2019-05-09 12:29:38 -07:00
Yihua Zhang 57caf78407 fix ALPN issues. 2019-04-01 08:48:35 -07:00
Soheil Hassas Yeganeh 18b19105f2 Implement TCP_INQ for gRPC in Linux
TCP_INQ is a socket option we added to Linux to report pending bytes
on the socket as a control message.

Using TCP_INQ we can accurately decide whether to continue read or not.
Add an urgent parameter, when we do not want to wait for EPOLLIN.

This commit improves the latency of 1 RPC unary (minimal benchmark)
significantly:

  Before:
    l_50: 61.3584984733
    l_90: 94.8328711277
    l_99: 126.211351174
    l_999: 158.722406029

  After:
    l_50: 51.3546011488 (-16%)
    l_90: 72.3420731581 (-23%)
    l_99: 103.280218974 (-18%)
    l_999: 130.905689996 (-17%)
2019-03-06 22:15:53 -05:00
yang-g 456f748b2f Revert "Merge pull request #18146 from grpc/revert-17308-shutdown"
This reverts commit 9079e98dfc, reversing
changes made to 76a38bfcc2.
2019-02-25 10:11:06 -08:00
Yang Gao 4bc2ca4de6
Revert "Move grpc_shutdown internals to a detached thread" 2019-02-22 16:34:24 -08:00
yang-g 86b23adc7f Other comments 2019-02-15 16:26:31 -08:00
yang-g bc946d6c6d merge with head and resolve conflicts 2019-02-12 15:00:32 -08:00
Arjun Roy 195a30bb8b Grpc: Change grpc_handshake and grpc_handshake_mgr to use CPP implementations.
grpc_handshake is renamed to GrpcHandshake, using C++ class definitions
instead of C-style vtable classes. Update callers to use new interfaces.
We use RefCountedPtr to simplify reference tracking.
2019-02-11 11:35:08 -08:00
Chris Wilcox df6cf7c741 Add period at end of metadata.google.internal to prevent unnecessary DNS lookups. 2019-01-24 09:37:32 -08:00
yang-g cf806915fc Merge branch 'master' into shutdown 2018-12-21 13:36:30 -08:00
Mark D. Roth b96196f655
Merge pull request #17547 from markdroth/alignment_cleanup
Remove now-unnecessary workarounds for alignment issues.
2018-12-20 10:07:59 -08:00
yang-g 3c8d24ba2c merge with head and resolve conflict 2018-12-19 10:13:41 -08:00
Mark D. Roth 09a173b4b6 Remove now-unnecessary workarounds for alignment issues. 2018-12-18 15:09:48 -08:00
yang-g 038a71d826 Merge remote-tracking branch 'upstream/master' into gpr_test_util_to_grpc_test_util 2018-12-17 08:52:20 -08:00
Soheil Hassas Yeganeh 9decf48632 Move security credentials, connectors, and auth context to C++
This is to use `grpc_core::RefCount` to improve performnace.
This commit also replaces explicit C vtables, with C++ vtable
with its own compile time assertions and performance benefits.
It also makes use of `RefCountedPtr` wherever possible.
2018-12-13 10:38:12 -05:00
yang-g 67742ef63f Fix BUILD files. Manually edit bzl files 2018-12-06 14:37:52 -08:00
yang-g 991963efcc Merge branch 'master' into shutdown 2018-12-05 14:53:06 -08:00
Yihua Zhang 750e80ea1c bring back original network test for metadata server detection 2018-12-05 10:27:01 -08:00
yang-g e75fc243da change tests to use the new class instead of grpc_test_init 2018-11-30 08:57:38 -08:00
yang-g cdd698810b Move grpc_shutdown internals to a detached thread 2018-11-27 14:26:08 -08:00
yang-g a35f55fd70 move helper function into namespace 2018-10-26 14:28:52 -07:00
yang-g 83d74bf6fc Remove the internal cache for google_default_credentials 2018-10-26 14:04:36 -07:00
yihuaz e976f69972
Merge pull request #16963 from yihuazhang/security_connector_refactor_new
security connector refactor
2018-10-24 13:14:28 -07:00
Yihua Zhang 81bc942cd8 security connector refactor 2018-10-22 09:37:48 -07:00
Yihua Zhang bed575c8b1 Do not pass interested_parties during handshake 2018-10-12 16:05:51 -07:00
Yihua Zhang 70a6c790b9 Add changes in #16782 2018-10-05 10:17:09 -07:00
jiangtaoli2016 e361d0f691 Turn loading system root certificate as default 2018-09-04 15:23:20 -07:00
Chris Lamb fba18d8551 Fix a number of spelling errors. 2018-08-22 16:52:46 +01:00
tdbhacks bcd747d42d Added system roots feature to load roots from OS trust store
Added a flag-guarded feature that allows gRPC to load TLS/SSL
roots from the OS trust store. This is the Linux-specific
implementation of such feature.
2018-08-09 11:01:31 -07:00
Dan Rosart 477a1aec5a Don't segfault when product name from BIOS is empty
Somehow some Dell servers we're trying to run a gRPC client on have an empty product name in the BIOS. When gRPC tries to creadte default credentials, it checks whether it's running on GCE by strcmp()ing the contents of /sys/class/dmi/id/product_name to some magic strings. When it reads that file, it gets only a newline; in trim() it skips over the newline in both directions, and since end < start it returns nullptr. This causes a segfault in the strcmp() call. Since a machine without a product name clearly isn't GCE, change it to return false instead.
2018-07-03 13:13:37 -07:00
Dan Rosart f54fc5b53a Include port_platform in gcp_environment tests.
Both the Windows and Linux tests use platform-specific macros to
determine whether they should execute, but they weren't including the
file where those macros were defined, so they were always running the
else case of that check, which meant they weren't testing anything.
2018-06-27 16:57:11 -07:00
adelez 5bdd9a8cb9
Revert "Revert "Add suppressions to sanitizers for bazel builds"" 2018-06-15 16:31:21 -07:00
Nicolas Noble 43557fee0b
Revert "Add suppressions to sanitizers for bazel builds" 2018-06-14 10:49:11 -07:00
Adele Zhou 4cd659505c Add data param to grpc_cc_library 2018-06-13 15:36:28 -07:00
Yihua Zhang e145c52286 use a new gcp env check mechansim 2018-05-18 10:03:05 -07:00
Yihua Zhang cc93663910 Add ALTS fuzzer 2018-05-08 10:15:03 -07:00
Yihua Zhang 392dad7134 incorporate alts to google default creds 2018-05-03 20:12:20 -07:00
jiangtaoli2016 310d87d509 fix namespace of security_connector test functions 2018-04-27 08:49:02 -07:00
David Cowden 116fd29a36
gRPC core: strip zone-id from IPv6 hosts before TLS verification
When initiating a connection to an IPv6 peer using an address that is
not globally scoped, there may be ambiguity regarding which zone the
destination address applies to when multiple links of the same scope
are present. The scoped address architecture and zone-id syntax are
described in rfc4007 and rfc 6874, respectively:

  * https://tools.ietf.org/html/rfc4007#section-6
  * https://tools.ietf.org/html/rfc6874

This patch allows host name verification performed during TLS session
establishment, and on a per-call basis, to work correctly when the peer
presents a certificate with a non-global IPv6 address listed as one of
its alternate names. Whether arbitrary certificate authorities choose
issue certificates of this nature, or not, is outside the scope of gRPC.

The zone-id is separated from the address using a percent (%) character.
It is considered a system implementation detail and guidance suggests it
be stripped from any paths or addresses egressing a host because it is
irrelevant and meaningless otherwise. It would not make sense for a
server to present a certificate containing non-global IPv6 addresses
with zone-ids present nor would it work unless two hosts happened to
be using the same zone-id.

ssl_host_matches_name is prefixed with grpc_ because it has been
promoted to the global namespace for testing.

Resolves #14371
2018-04-26 12:25:38 -07:00
Yihua Zhang fe2fa0c1c8 Add C++ experimental API extensions for ALTS C stack 2018-04-16 15:11:32 -07:00
jiangtaoli2016 144f5559da cache default SSL root cert store 2018-03-23 11:28:48 -07:00
Yihua Zhang 04fb58efbd Add ALTS code to grpc/core 2018-03-08 06:49:24 -08:00
Sree Kuchibhotla ae277dd000
Revert "Add ALTS C stack to gRPC core" 2018-03-07 14:35:36 -08:00
Yihua Zhang eaf6486677 Add ALTS code to grpc/core 2018-03-06 21:40:45 -08:00
adelez 5d0480a88c
Merge pull request #14469 from adelez/foundry_integration
Add more bazel tests
2018-02-22 13:39:39 -08:00
Mark D. Roth 9b32d9c4f3
Merge pull request #14437 from yihuazhang/security_connector_replacement
Security connector replacement
2018-02-21 07:59:04 -08:00
Adele Zhou 1c805ec901 Add more bazel tests 2018-02-20 17:46:39 -08:00
Yihua Zhang 75f0a9fbd2 place security_connector in its own subdirectory 2018-02-20 10:09:47 -08:00
Adele Zhou a2013f86a0 Fix the fuzzer corpus path. 2018-02-16 22:16:38 -08:00
Noah Eisen 4d20a66685 Run clang fmt 2018-02-09 09:34:04 -08:00
Noah Eisen be82e64b3d Autofix c casts to c++ casts 2018-02-09 09:16:55 -08:00
Vijay Pai 18b9133f31 Merge branch 'master' into gpr_review 2018-02-08 12:18:09 -08:00
Vijay Pai d4d0a30c6f Privatize useful.h and avl.h 2018-02-02 09:16:44 -08:00
Vijay Pai 8a99fdb57e Move cmdline and subprocess from public gpr to test/core/util 2018-01-25 20:11:38 -08:00
Mark D. Roth dbdf495f61 Split lib/support into lib/gpr and lib/gpr++. 2018-01-18 11:21:12 -08:00
Jan Tattermusch 148700a8ea windows needs fflush after fprintf 2018-01-12 09:59:12 +01:00
Yash Tibrewal 8cf1470a51
Revert "Revert "All instances of exec_ctx being passed around in src/core removed"" 2017-12-06 09:47:54 -08:00
Yash Tibrewal ad4d2dde00
Revert "All instances of exec_ctx being passed around in src/core removed" 2017-12-06 09:05:05 -08:00
Yash Tibrewal 73bb67d054 Merge master into execctx 2017-12-05 17:49:11 -08:00
Dan Born 53d5503fac Pass a pollset_set to some client handshakers. 2017-12-04 18:01:47 -08:00
Yash Tibrewal c354269ba7 Remove _ prefixed variable names 2017-11-29 19:07:44 -08:00
Yash Tibrewal 81fc8c9c33 Fix tests to call grpc_init and grpc_shutdown before using exec_ctx 2017-11-28 13:23:36 -08:00
Yash Tibrewal a13a8c0f3e A few src/core fixes due to missing exec_ctx_finish 2017-11-21 19:38:09 -08:00
Yash Tibrewal 177039b2f8 Merge master 2017-11-16 19:31:28 -08:00
Yash Tibrewal 6c26b16fe0 Move ExecCtx to grpc_core namespace. Make exec_ctx a private static in ExecCtx and some minor changes 2017-11-14 18:11:22 -08:00
Yash Tibrewal 75122c2357 Address some PR comments 2017-11-14 01:36:28 -08:00
Craig Tiller be98d24841 clang-format after nullptr changes 2017-11-10 15:26:57 -08:00
Craig Tiller 4ac2b8e585 Enable clang-tidy as a sanity check, fix up all known failures 2017-11-10 14:14:17 -08:00
Yash Tibrewal 4e9265c828 Merge with master 2017-11-09 17:46:29 -08:00
Yash Tibrewal 40422d5fa6 Merge master 2017-11-06 14:43:31 -08:00
Craig Tiller 9ab26feb68 Merge github.com:grpc/grpc into 50 2017-11-06 09:45:55 -08:00
Julien Boeuf a274f341d5 Removing port 443 for the service name (used as audience) when the url is https. 2017-11-03 18:43:29 -07:00
Craig Tiller baa14a975e Update clang-format to 5.0 2017-11-03 09:09:36 -07:00
Yash Tibrewal 11a518995e LLVMfuzzer extern C 2017-10-31 15:15:41 -07:00
Yash Tibrewal 77532036b6 BUILD changes. test languauge to C++ 2017-10-31 11:11:18 -07:00
Yash Tibrewal 4d71636fcc some BUILD changes and designated initializers 2017-10-30 18:29:27 -07:00
Yash Tibrewal e586324627 BUILD files changes for bazel 2017-10-30 17:52:07 -07:00
Yash Tibrewal 39aed1ae8b Remove unnecessary extern Cs 2017-10-25 17:04:35 -07:00
Yash Tibrewal af922468dd ssl_credentials_tests C++ized 2017-10-25 16:29:49 -07:00
Yash Tibrewal 3318979a5f Merge branch 'master' into testc++ize 2017-10-25 16:26:03 -07:00
Yash Tibrewal 34a57d0346 rename all test core files to cc and a lot of C++ style conversions 2017-10-25 16:23:01 -07:00
Justin Burke 9b9a44e4dd Expose conversion of grpc to tsi cert pairs 2017-10-23 15:08:45 -07:00
Yash Tibrewal 0ee7574732 Removing instances of exec_ctx being passed around in functions in
src/core. exec_ctx is now a thread_local pointer of type ExecCtx instead of
grpc_exec_ctx which is initialized whenever ExecCtx is instantiated. ExecCtx
also keeps track of the previous exec_ctx so that nesting of exec_ctx is
allowed. This means that there is only one exec_ctx being used at any
time. Also, grpc_exec_ctx_finish is called in the destructor of the
object, and the previous exec_ctx is restored to avoid breaking current
functionality. The code still explicitly calls grpc_exec_ctx_finish
because removing all such instances causes the code to break.
2017-10-18 17:12:19 -07:00
Craig Tiller 1e868f0f95 Merge github.com:grpc/grpc into flowctl+millis 2017-09-29 11:18:26 -07:00
Mark D. Roth b4c01f9e29 Merge remote-tracking branch 'upstream/master' into plugin_credentials_api_fix 2017-09-25 12:36:30 -07:00
Craig Tiller 6a34067d16 Merge github.com:grpc/grpc into grpc_millis 2017-09-19 12:44:15 -07:00
Craig Tiller bbe282f600 Merge github.com:grpc/grpc into grpc_millis 2017-09-11 12:11:40 -07:00
Craig Tiller 4aac9a664a Merge github.com:grpc/grpc into pollset_kick_stats 2017-09-11 12:09:03 -07:00
Craig Tiller 55863ff527 Merge github.com:grpc/grpc into write_completion 2017-09-08 14:39:15 -07:00
Craig Tiller fabb513fe4 Merge 2017-09-08 11:45:11 -07:00
Craig Tiller 4f5acf73c9 Merge github.com:grpc/grpc into pollset_kick_stats 2017-09-08 11:38:41 -07:00
Mark D. Roth 0aee498525 Merge remote-tracking branch 'upstream/master' into plugin_credentials_api_fix 2017-09-08 08:01:29 -07:00
jiangtaoli2016 c88e1dee43 fix secure_endpoint_test 2017-09-07 09:54:28 -07:00
jiangtaoli2016 627691fd26 Fake zero-copy frame protector 2017-09-06 12:45:43 -07:00
Mark D. Roth 2caf021772 Change plugin credentials API to support both sync and async modes. 2017-09-01 15:04:13 -07:00
Craig Tiller ee090ec975 Merge github.com:grpc/grpc into wc 2017-09-01 10:30:11 -07:00
Craig Tiller 0ff222a23b Add pollset_kick stats 2017-09-01 09:41:43 -07:00
Craig Tiller 8fd40d5ed9 Merge github.com:grpc/grpc into wc 2017-08-31 10:54:11 -07:00
Jan Tattermusch 090cd46a6c Revert "Fake zero copy protector" 2017-08-31 15:42:17 +02:00
jiangtaoli2016 5899055cec Implement fake TSI zero-copy frame protector 2017-08-30 15:46:45 -07:00
Nicolas "Pixel" Noble 2bc5e3ac40 Moving visibility and package creation to the build system. 2017-08-30 19:18:37 +02:00
Craig Tiller d9b82bdecb Merge github.com:grpc/grpc into grpc_millis 2017-08-29 12:16:56 -07:00
Yuchen Zeng 309c9de041 Update credentials_test 2017-08-09 16:12:57 -07:00
Mark D. Roth e0778b2c18 Add cancellation to asynchronous security APIs. 2017-07-21 15:42:00 -07:00
Craig Tiller 764cdbaaf0 Merge github.com:grpc/grpc into write_completion 2017-07-17 16:32:50 -07:00