pull/19778/head
Matthew Stevenson 5 years ago
parent d866d09b5c
commit f503a60855
  1. 8
      include/grpc/grpc_security.h
  2. 32
      src/cpp/common/tls_credentials_options.cc

@ -826,8 +826,8 @@ struct grpc_tls_credential_reload_arg {
grpc_tls_key_materials_config* key_materials_config;
grpc_ssl_certificate_config_reload_status status;
const char* error_details;
grpc_tls_credential_reload_config* config = nullptr;
void* context = nullptr;
grpc_tls_credential_reload_config* config;
void* context;
};
/** Create a grpc_tls_credential_reload_config instance.
@ -899,8 +899,8 @@ struct grpc_tls_server_authorization_check_arg {
const char* peer_cert;
grpc_status_code status;
const char* error_details;
grpc_tls_server_authorization_check_config* config = nullptr;
void* context = nullptr;
grpc_tls_server_authorization_check_config* config;
void* context;
};
/** Create a grpc_tls_server_authorization_check_config instance.

@ -57,9 +57,10 @@ void* TlsCredentialReloadArg::cb_user_data() const {
return c_arg_->cb_user_data;
}
/** This function creates a new TlsKeyMaterialsConfig instance whose fields are
* not shared with the corresponding key materials config fields of the
* TlsCredentialReloadArg instance. **/
bool TlsCredentialReloadArg::is_pem_key_cert_pair_list_empty() const {
return c_arg_->key_materials_config->pem_key_cert_pair_list().empty();
}
grpc_ssl_certificate_config_reload_status TlsCredentialReloadArg::status()
const {
return c_arg_->status;
@ -94,8 +95,29 @@ void TlsCredentialReloadArg::add_pem_key_cert_pair(
void TlsCredentialReloadArg::set_key_materials_config(
const std::shared_ptr<TlsKeyMaterialsConfig>& key_materials_config) {
c_arg_->key_materials_config =
ConvertToCKeyMaterialsConfig(key_materials_config);
if (key_materials_config == nullptr) {
c_arg_->key_materials_config = nullptr;
return;
}
::grpc_core::InlinedVector<::grpc_core::PemKeyCertPair, 1>
c_pem_key_cert_pair_list;
for (auto key_cert_pair = key_materials_config->pem_key_cert_pair_list().begin();
key_cert_pair != key_materials_config->pem_key_cert_pair_list().end();
key_cert_pair++) {
grpc_ssl_pem_key_cert_pair* ssl_pair =
(grpc_ssl_pem_key_cert_pair*)gpr_malloc(
sizeof(grpc_ssl_pem_key_cert_pair));
ssl_pair->private_key = gpr_strdup(key_cert_pair->private_key.c_str());
ssl_pair->cert_chain = gpr_strdup(key_cert_pair->cert_chain.c_str());
::grpc_core::PemKeyCertPair c_pem_key_cert_pair =
::grpc_core::PemKeyCertPair(ssl_pair);
c_pem_key_cert_pair_list.push_back(::std::move(c_pem_key_cert_pair));
}
::grpc_core::UniquePtr<char> c_pem_root_certs(
gpr_strdup(key_materials_config->pem_root_certs().c_str()));
c_arg_->key_materials_config->set_key_materials(std::move(c_pem_root_certs),
std::move(c_pem_key_cert_pair_list));
c_arg_->key_materials_config->set_version(key_materials_config->version());
}
void TlsCredentialReloadArg::set_status(

Loading…
Cancel
Save