gRPC is currently getting formatted with two different clang-format implementations, and due to some weirdness they have different include file orderings. This change introduces clang-format configuration to ensure that the two systems align - it's *highly* expected that this will need some maintenance going forward as the two systems evolve.
Closes#40905
PiperOrigin-RevId: 819606209
This includes the following moves from src/core/lib/security:
- certificate_provider/* → src/core/credentials/transport/tls/
- context/* → split between src/core/call/security_context* and src/core/transport/auth_context*
- credentials/
- composite/ → split between src/core/credentials/call/composite/ and src/core/credentials/transport/composite/
- alts, google_default, insecure, local, ssl, tls, xds → src/core/credentials/transport/
- fake/ → split between test/core/test_util/test_call_creds* and src/core/credentials/transport/fake
- external, iam, jwt, oauth2, plugin, token_fetcher → src/core/credentials/call/
- call_creds_utils.* → src/core/credentials/call/
- channel_creds_registry* → src/core/credentials/transport/
- credentials.* → split between src/core/credentials/call/call_credentials.* and src/core/credentials/transport/transport_credentials.*
- security_connector/
- alts, fake, insecure, local, ssl, tls → src/core/credentials/transport/
- security_connector* → src/core/credentials/transport/
- ssl_utils*, load_system_roots* → src/core/credentials/transport/tls/
- transport/ → src/core/filter/auth/
- util/* → src/core/credentials/call/
The only thing left in src/core/lib/security is the authz code, which I will move in a separate PR.
I have also moved the tests from test/core/security into a similar structure. Some specific notes:
- I have removed print_google_default_creds_token.cc, since it does not appear in any build file and appears to be completely unused.
- I moved secure_endpoint_test.cc to test/core/handshaker, to match where the implementation lives in the tree.
Closes#38825
PiperOrigin-RevId: 731487339
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.
As opposed to a flat directory, we now have the following structure:
- security
-context
- credentials
- composite
- fake
- google_default
- iam
- jwt
- oauth2
- plugin
- ssl
- transport
- util
We have not refactored the test code yet but this PR is already large
enough...
- We always do the processing asynchronously but maintain a synchronous
API for the implementor of the processor.
- there are a lot of string copies right now. Having a StringPiece
object in grpc++ would really help with that (as we would use it for
C++ metadata).
- Please review the API carefully and if you're happy with it, I'll
proceed with tests.
- Right now it is a global function: would be better to have this per
(secure) port.
- Changed the interface of the auth_context slightly to make it more
friendly.
- Positive tests pass. Still need some work on error case (have a
negative case as well).
- Fixing cpp auth context tests so that they use the shiny new C API.