aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cpp/server/server_credentials.cc
diff options
context:
space:
mode:
authorGravatar Craig Tiller <craig.tiller@gmail.com>2015-01-21 13:48:14 -0800
committerGravatar Craig Tiller <craig.tiller@gmail.com>2015-01-21 13:48:14 -0800
commit85eea08ba8109dc9bd2b798146a5140342505f77 (patch)
tree8a33956a1cb59f341ccad15354892f6fa3a2b309 /src/cpp/server/server_credentials.cc
parent7e3d7120ba2b9fb7f3e58c8d6e506c68abf650c6 (diff)
parent073d7b6cd9963378f69a087d935d4157b3068a4b (diff)
Merge pull request #141 from jboeuf/ssl_server_creds_integration
Changing the SSL (Server) Credentials API.
Diffstat (limited to 'src/cpp/server/server_credentials.cc')
-rw-r--r--src/cpp/server/server_credentials.cc23
1 files changed, 7 insertions, 16 deletions
diff --git a/src/cpp/server/server_credentials.cc b/src/cpp/server/server_credentials.cc
index b82a2d821a..ce0271b6a0 100644
--- a/src/cpp/server/server_credentials.cc
+++ b/src/cpp/server/server_credentials.cc
@@ -48,23 +48,14 @@ grpc_server_credentials *ServerCredentials::GetRawCreds() { return creds_; }
std::shared_ptr<ServerCredentials> ServerCredentialsFactory::SslCredentials(
const SslServerCredentialsOptions &options) {
- const unsigned char *pem_root_certs =
- options.pem_root_certs.empty() ? nullptr
- : reinterpret_cast<const unsigned char *>(
- options.pem_root_certs.c_str());
- const unsigned char *pem_private_key =
- options.pem_private_key.empty() ? nullptr
- : reinterpret_cast<const unsigned char *>(
- options.pem_private_key.c_str());
- const unsigned char *pem_cert_chain =
- options.pem_cert_chain.empty() ? nullptr
- : reinterpret_cast<const unsigned char *>(
- options.pem_cert_chain.c_str());
-
+ std::vector<grpc_ssl_pem_key_cert_pair> pem_key_cert_pairs;
+ for (const auto &key_cert_pair : options.pem_key_cert_pairs) {
+ pem_key_cert_pairs.push_back(
+ {key_cert_pair.private_key.c_str(), key_cert_pair.cert_chain.c_str()});
+ }
grpc_server_credentials *c_creds = grpc_ssl_server_credentials_create(
- pem_root_certs, options.pem_root_certs.size(), pem_private_key,
- options.pem_private_key.size(), pem_cert_chain,
- options.pem_cert_chain.size());
+ options.pem_root_certs.empty() ? nullptr : options.pem_root_certs.c_str(),
+ &pem_key_cert_pairs[0], pem_key_cert_pairs.size());
return std::shared_ptr<ServerCredentials>(new ServerCredentials(c_creds));
}