17 #ifndef GRPC_CORE_LIB_SECURITY_CREDENTIALS_TLS_GRPC_TLS_CERTIFICATE_DISTRIBUTOR_H
18 #define GRPC_CORE_LIB_SECURITY_CREDENTIALS_TLS_GRPC_TLS_CERTIFICATE_DISTRIBUTOR_H
26 #include "absl/container/inlined_vector.h"
27 #include "absl/types/optional.h"
54 absl::optional<absl::string_view> root_certs,
55 absl::optional<grpc_core::PemKeyCertPairList> key_cert_pairs) = 0;
81 const std::string& cert_name, absl::optional<std::string> pem_root_certs,
82 absl::optional<grpc_core::PemKeyCertPairList> pem_key_cert_pairs);
98 absl::optional<grpc_error_handle> root_cert_error,
99 absl::optional<grpc_error_handle> identity_cert_error);
127 std::function<
void(std::string,
bool,
bool)> callback) {
129 watch_status_callback_ = std::move(callback);
144 std::unique_ptr<TlsCertificatesWatcherInterface>
watcher,
145 absl::optional<std::string> root_cert_name,
146 absl::optional<std::string> identity_cert_name);
156 std::unique_ptr<TlsCertificatesWatcherInterface>
watcher;
157 absl::optional<std::string> root_cert_name;
158 absl::optional<std::string> identity_cert_name;
166 struct CertificateInfo {
168 std::string pem_root_certs;
178 std::set<TlsCertificatesWatcherInterface*> root_cert_watchers;
182 std::set<TlsCertificatesWatcherInterface*> identity_cert_watchers;
190 root_cert_error =
error;
194 identity_cert_error =
error;
204 std::map<TlsCertificatesWatcherInterface*, WatcherInfo> watchers_;
207 std::function<void(std::string,
bool,
bool)> watch_status_callback_;
210 std::map<std::string, CertificateInfo> certificate_info_map_;
ClusterWatcher * watcher
Definition: cds.cc:112
Definition: ref_counted.h:282
Definition: grpc_tls_certificate_distributor.h:40
virtual void OnError(grpc_error_handle root_cert_error, grpc_error_handle identity_cert_error)=0
virtual void OnCertificatesChanged(absl::optional< absl::string_view > root_certs, absl::optional< grpc_core::PemKeyCertPairList > key_cert_pairs)=0
virtual ~TlsCertificatesWatcherInterface()=default
#define GRPC_ERROR_NONE
The following "special" errors can be propagated without allocating memory.
Definition: error.h:228
#define GRPC_ERROR_UNREF(err)
Definition: error.h:254
grpc_error_handle error
Definition: lame_client.cc:54
absl::InlinedVector< grpc_core::PemKeyCertPair, 1 > PemKeyCertPairList
Definition: ssl_utils.h:184
Definition: error_internal.h:41
Definition: grpc_tls_certificate_distributor.h:37
bool HasKeyCertPairs(const std::string &identity_cert_name)
Definition: grpc_tls_certificate_distributor.cc:94
void SetError(grpc_error_handle error)
Definition: grpc_tls_certificate_distributor.cc:155
void SetErrorForCert(const std::string &cert_name, absl::optional< grpc_error_handle > root_cert_error, absl::optional< grpc_error_handle > identity_cert_error)
Definition: grpc_tls_certificate_distributor.cc:102
bool HasRootCerts(const std::string &root_cert_name)
Definition: grpc_tls_certificate_distributor.cc:86
void CancelTlsCertificatesWatch(TlsCertificatesWatcherInterface *watcher)
Definition: grpc_tls_certificate_distributor.cc:263
void SetKeyMaterials(const std::string &cert_name, absl::optional< std::string > pem_root_certs, absl::optional< grpc_core::PemKeyCertPairList > pem_key_cert_pairs)
Definition: grpc_tls_certificate_distributor.cc:27
void SetWatchStatusCallback(std::function< void(std::string, bool, bool)> callback)
Definition: grpc_tls_certificate_distributor.h:126
void WatchTlsCertificates(std::unique_ptr< TlsCertificatesWatcherInterface > watcher, absl::optional< std::string > root_cert_name, absl::optional< std::string > identity_cert_name)
Definition: grpc_tls_certificate_distributor.cc:176
Definition: grpc_tls_certificate_distributor.h:31
grpc_core::PemKeyCertPairList pem_key_cert_pairs
Definition: grpc_tls_certificate_distributor.h:32