Commit Graph

119 Commits

Author SHA1 Message Date
David Chamberlin 5b724c09c5 [tls] Add copy constructor for TlsCredentialsOptions (#35499)
<!--

If you know who should review your pull request, please assign it to that
person, otherwise the pull request would get assigned randomly.

If your pull request is for a specific language, please add the appropriate
lang label.

-->

Closes #35499

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35499 from dawidcha:cred_opts_copy_constr 330165930f
PiperOrigin-RevId: 599977221
2024-01-19 17:21:50 -08:00
Luwei Ge dd12460018 [tls] Add set min/max TLS version APIs to TLS credentials APIs. (#34861)
Address #28382. This is a recreation of #31368 except e2e tests are not handled here (yet).

Closes #34861

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/34861 from rockspore:tls_version f9a1215ac1
PiperOrigin-RevId: 589847110
2023-12-11 09:27:44 -08:00
Matthew Stevenson 07985907f2
[tls] Fix ownership bugs in TlsCredentialsOptions and grpc_tls_credentials_options. (#34758)
Currently it is very easy to use the `TlsCredentialsOptions` in such a
way that it produces a memory leak. For example, the code block
```
{
  TlsCredentialsOptions options;
}
```
produces a memory leak. This PR fixes up the ownership bugs in this
class and its `grpc_tls_credentials_options`, the C-core analogue.
2023-10-27 08:09:04 -07:00
Gregory Cooke 9969d820b5
[TLS - Revocation] Crl Provider (#34715)
This reverts commit 7af5efcfd3.
2023-10-19 11:33:41 -07:00
apolcyn 7af5efcfd3
Revert "[TLS - Revocation] Crl Provider (#33786)" (#34713)
This reverts commit 0f0396ae92.
2023-10-17 13:53:36 -07:00
Gregory Cooke 0f0396ae92
[TLS - Revocation] Crl Provider (#33786)
The basic APIs for the CRL Reloading features.
This adds external types to represent CRL Providers, CRLs, and
CertificateInfo.
Internally we will use `CrlImpl` - this layer is needed to hide OpenSSL
details from the user.

GRFC - https://github.com/grpc/proposal/pull/382

Things Done
* Add external API for `CrlProvider`, `Crl`, `CertInfo` (`CertInfo` is
used during CRL lookup rather than passing the entire certificate).
* Add code paths in `ssl_transport_security` to utilize CRL providers
* Add `StaticCrlProvider`
* Refactor `crl_ssl_transport_security_test.cc` so it is more extensible
and can be used with providers
2023-10-17 13:03:52 -04:00
Gregory Cooke a4f345ff96
TlsCreds: Support revocation of intermediate in chain. (#32544)
This PR is a small code change with a lot of new test data.
[In OpenSSL, there are two flags that configure CRL checks. Coping
relevant
section:](https://www.openssl.org/docs/man1.0.2/man3/X509_VERIFY_PARAM_get_depth.html)

> - X509_V_FLAG_CRL_CHECK enables CRL checking for the certificate chain
leaf certificate. An error occurs if a suitable CRL cannot be found.
> - X509_V_FLAG_CRL_CHECK_ALL enables CRL checking for the entire
certificate chain.

We currently only set `X509_V_FLAG_CRL_CHECK`, so we will only ever
check if the leaf certificate is revoked. We should check the whole
chain. I am open to making this a user configuration if we want to do it
that way, but we certainly need to be able to check the whole chain.

So, this PR contains the small code change in
`ssl_transport_security.cc` to use the `X509_V_FLAG_CRL_CHECK_ALL` flag.
Then the rest of the changes are in tests. I've added all the necessary
files to have a chain built that looks as follows
`Root CA -> Revoked Intermediate CA -> Leaf Certificate`, and added a
test for this case as well.
You can verify that on master this new test will fail (i.e. the
handshake will succeed even though the intermediate CA is revoked) by
checking out this branch, running `git checkout master --
./src/core/tsi/ssl_transport_security.cc`, then running the test.

I also slightly reorganized test/core/tsi/test_creds/ so that the CRLs
are in their own directory, which is the way our API intends to accept
CRLs.
2023-03-23 11:34:59 -04:00
Yijie Ma f99b8b5bc4
Convert c-style comments to C++-style comments (#31923)
* baseline

* fix clang-tidy

* manually revert these files

* manually fixup at eof

* revert 2 more files

* change check_deprecated_grpc++.py

* change end2end_defs.include template

* fix check_include_guards.py

* untrack tools/distrib/python/convert_cstyle_comments_to_cpp.py

not yet ready to be submitted

* fix

yapf check_include_guards.py
remove a space...

* fix version.cc.template

* fix version_info.h.template
2022-12-22 23:01:53 -08:00
aeitzman d934aabb09
Added url validation for aws metadata endpoints in aws external account (#31626)
* Added url validation for aws metadata endpoints in aws external account

* addressing review comments

* fix error message back

* Fix broken test
2022-11-12 11:56:33 -08:00
Craig Tiller c2ab8c99bb
Revert "Revert "[c++] Move environment functions to C++ (#30937)" (#30986)" (#30988)
This reverts commit 96264e07b8.
2022-09-14 14:19:36 -07:00
Craig Tiller 96264e07b8
Revert "[c++] Move environment functions to C++ (#30937)" (#30986)
This reverts commit 74c0d6fe3f.
2022-09-14 11:53:55 -07:00
Craig Tiller 74c0d6fe3f
[c++] Move environment functions to C++ (#30937)
* [gprpp] Move env to C++

* move headers/impl

* Automated change: Fix sanity tests

* fix

* fix

* Automated change: Fix sanity tests

* Update http_proxy.cc

* fix

* fix

* rename

* fix merge

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-09-14 10:17:15 -07:00
krestofur 1cdcd88fb1
Add experimental API for CRL checking support to gRPC C++ TlsCredentials (#28407) 2022-01-26 20:23:48 -08:00
ZhenLian 2e14f6fa70
Support Custom Post-handshake Verification in TlsCredentials (#25631)
* custom verification refactoring - post-handshake verification
2021-11-10 13:45:52 -08:00
Craig Tiller ea389c00c2
Adjust include order per style guide (#27175)
Introduce clang-format configuration to sort includes closer to our rules.
2021-09-08 12:14:44 -07:00
bojeil-google 33b80f16ec Applies clang_format_code.sh to address sanity check tests. 2021-02-08 15:42:40 -08:00
Bassam Ojeil a8e061bf88 Removes experimental namespace from ExternalAccountCredentials tests. 2021-02-08 14:22:04 -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
ZhenLian d74e43da95 Add File Watcher Certificate Provider API 2020-11-19 13:36:13 -08:00
ZhenLian 518ed1303c Add Credential Loading From Static Providers For TLS Credentials 2020-10-22 13:55:31 -07: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 44f721eeb0 Merge branch 'master' into create-channel 2020-06-30 15:52:24 -07:00
Esun Kim 165ee5007a Replaced grpc::string with std::string 2020-06-29 17:56:36 -07:00
Karthik Ravi Shankar 59b41d50fa Formatting fixes 2020-06-29 14:37:52 -07:00
Karthik Ravi Shankar bf551af394 Fix credentials test. 2020-06-29 13:02:01 -07:00
jiangtaoli2016 12a6435557 TlsCredentialsOption API optimization 2020-05-11 22:46:11 -07:00
Matthew Stevenson a37d5f14b0 Remove flaky test introduced in PR 21932. 2020-05-07 07:22:29 -07:00
Mark D. Roth 09b42371e7 Remove grpc_core::InlinedVector<> and grpc_core::Optional<>. 2020-04-23 11:24:41 -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 864e232edf Update TlsServerCredentials to initialize C-core. 2020-02-28 13:23:51 -08:00
Matthew Stevenson 77377fa931 Removed server builder and ssl creds stuff. 2020-02-19 14:35:59 -08:00
Matthew Stevenson b344c90fe1 ssl creds 2020-02-13 15:35:58 -08:00
Matthew Stevenson 924aace7dc Version 4. 2020-02-06 08:51:41 -08:00
Matthew Stevenson ceae5835e6 Merge remote-tracking branch 'upstream/master' into tls-credentials-1 2020-02-06 08:42:26 -08:00
Matthew Stevenson d869bed623 Added in server builder. 2020-02-05 15:56:16 -08:00
matthewstevenson88 ee7ae056e5
Revert "Updates to TLS credentials, version 3" 2020-02-05 13:52:46 -08:00
Matthew Stevenson f557437b51 Add back changes. 2020-01-30 15:26:51 -08:00
Matthew Stevenson 3818f81fb8 Update from master. 2020-01-30 08:43:16 -08:00
Matthew Stevenson 840b0f9cb9 Merge branch 'master' of https://github.com/grpc/grpc into tls-credentials-1 2020-01-30 08:42:22 -08:00
Matthew Stevenson 47c755520c Remove TestEnvironment. 2020-01-30 08:13:32 -08:00
Matthew Stevenson 1f13c17a28 Adding back in grpc_init. 2020-01-30 06:42:31 -08:00
Matthew Stevenson 0b51d535f3 Remove grpc_init. 2020-01-29 18:42:29 -08:00
Matthew Stevenson e392d0ac7d experiment test 2020-01-29 15:36:44 -08:00
matthewstevenson88 9e0b87f523
Revert "Updates to TLS credentials, version 2" 2020-01-29 12:24:21 -08:00
Matthew Stevenson e18defc303 Fix attempt #2. 2020-01-27 12:47:32 -08:00
Matthew Stevenson 4d61655409 Merge remote-tracking branch 'upstream/master' into tls-credentials-1 2020-01-23 14:31:17 -08:00