|
|
@ -40,9 +40,6 @@ |
|
|
|
#include "src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h" |
|
|
|
#include "src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h" |
|
|
|
#include "src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h" |
|
|
|
#include "src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h" |
|
|
|
|
|
|
|
|
|
|
|
#define GRPC_ARG_XDS_CERTIFICATE_PROVIDER \ |
|
|
|
|
|
|
|
"grpc.internal.xds_certificate_provider" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace grpc_core { |
|
|
|
namespace grpc_core { |
|
|
|
|
|
|
|
|
|
|
|
class XdsCertificateProvider : public grpc_tls_certificate_provider { |
|
|
|
class XdsCertificateProvider : public grpc_tls_certificate_provider { |
|
|
@ -50,15 +47,6 @@ class XdsCertificateProvider : public grpc_tls_certificate_provider { |
|
|
|
XdsCertificateProvider(); |
|
|
|
XdsCertificateProvider(); |
|
|
|
~XdsCertificateProvider() override; |
|
|
|
~XdsCertificateProvider() override; |
|
|
|
|
|
|
|
|
|
|
|
static absl::string_view ChannelArgName() { |
|
|
|
|
|
|
|
return GRPC_ARG_XDS_CERTIFICATE_PROVIDER; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int ChannelArgsCompare(const XdsCertificateProvider* a, |
|
|
|
|
|
|
|
const XdsCertificateProvider* b) { |
|
|
|
|
|
|
|
return QsortCompare(a, b); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RefCountedPtr<grpc_tls_certificate_distributor> distributor() const override { |
|
|
|
RefCountedPtr<grpc_tls_certificate_distributor> distributor() const override { |
|
|
|
return distributor_; |
|
|
|
return distributor_; |
|
|
|
} |
|
|
|
} |
|
|
@ -86,10 +74,13 @@ class XdsCertificateProvider : public grpc_tls_certificate_provider { |
|
|
|
void UpdateSubjectAlternativeNameMatchers( |
|
|
|
void UpdateSubjectAlternativeNameMatchers( |
|
|
|
const std::string& cluster, std::vector<StringMatcher> matchers); |
|
|
|
const std::string& cluster, std::vector<StringMatcher> matchers); |
|
|
|
|
|
|
|
|
|
|
|
grpc_arg MakeChannelArg() const; |
|
|
|
static absl::string_view ChannelArgName() { |
|
|
|
|
|
|
|
return "grpc.internal.xds_certificate_provider"; |
|
|
|
static RefCountedPtr<XdsCertificateProvider> GetFromChannelArgs( |
|
|
|
} |
|
|
|
const grpc_channel_args* args); |
|
|
|
static int ChannelArgsCompare(const XdsCertificateProvider* a, |
|
|
|
|
|
|
|
const XdsCertificateProvider* b) { |
|
|
|
|
|
|
|
return a->Compare(b); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private: |
|
|
|
private: |
|
|
|
class ClusterCertificateState { |
|
|
|
class ClusterCertificateState { |
|
|
|