You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by as...@apache.org on 2023/01/13 17:00:53 UTC
[qpid-proton] branch main updated: PROTON-2663: Add a constructor to ssl_client_options class
This is an automated email from the ASF dual-hosted git repository.
astitcher pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/qpid-proton.git
The following commit(s) were added to refs/heads/main by this push:
new b29223752 PROTON-2663: Add a constructor to ssl_client_options class
b29223752 is described below
commit b292237524dbe9f8df4d53bc68295f5b45aa915c
Author: Marko Hrastovec <ma...@gmail.com>
AuthorDate: Wed Dec 21 09:39:53 2022 +0100
PROTON-2663: Add a constructor to ssl_client_options class
Previously there was no way for the C++ API to specify an SSL
certificate whilst leaving the system trusted certificate db
---
cpp/include/proton/ssl.hpp | 4 ++++
cpp/libqpid-proton-cpp.syms | 1 +
cpp/src/ssl_options.cpp | 6 ++++++
3 files changed, 11 insertions(+)
diff --git a/cpp/include/proton/ssl.hpp b/cpp/include/proton/ssl.hpp
index cbec87672..d978fcb8e 100644
--- a/cpp/include/proton/ssl.hpp
+++ b/cpp/include/proton/ssl.hpp
@@ -163,6 +163,10 @@ class ssl_client_options {
enum ssl::verify_mode = ssl::VERIFY_PEER_NAME);
/// Create SSL client with a client certificate.
+ PN_CPP_EXTERN ssl_client_options(const ssl_certificate&,
+ enum ssl::verify_mode = ssl::VERIFY_PEER_NAME);
+
+ /// Create SSL client with a client certificate and a custom certificate trust database.
PN_CPP_EXTERN ssl_client_options(const ssl_certificate&, const std::string &trust_db,
enum ssl::verify_mode = ssl::VERIFY_PEER_NAME);
diff --git a/cpp/libqpid-proton-cpp.syms b/cpp/libqpid-proton-cpp.syms
index c24e89811..c380a3827 100644
--- a/cpp/libqpid-proton-cpp.syms
+++ b/cpp/libqpid-proton-cpp.syms
@@ -475,6 +475,7 @@ proton::ssl_certificate::ssl_certificate(std::string const&, std::string const&)
proton::ssl_certificate::ssl_certificate(std::string const&, std::string const&, std::string const&)
proton::ssl_client_options::ssl_client_options()
+proton::ssl_client_options::ssl_client_options(proton::ssl_certificate&, proton::ssl::verify_mode)
proton::ssl_client_options::ssl_client_options(proton::ssl_certificate&, std::string const&, proton::ssl::verify_mode)
proton::ssl_client_options::ssl_client_options(std::string const&, proton::ssl::verify_mode)
diff --git a/cpp/src/ssl_options.cpp b/cpp/src/ssl_options.cpp
index f74f014ed..40f5e08f3 100644
--- a/cpp/src/ssl_options.cpp
+++ b/cpp/src/ssl_options.cpp
@@ -131,6 +131,12 @@ ssl_client_options::ssl_client_options(const std::string &trust_db, enum ssl::ve
set_client_verify_mode(dom, mode);
}
+ssl_client_options::ssl_client_options(const ssl_certificate &cert, enum ssl::verify_mode mode) : impl_(new impl) {
+ pn_ssl_domain_t* dom = impl_->pn_domain();
+ set_cred(dom, cert.certdb_main_, cert.certdb_extra_, cert.passwd_, cert.pw_set_);
+ set_client_verify_mode(dom, mode);
+}
+
ssl_client_options::ssl_client_options(const ssl_certificate &cert, const std::string &trust_db, enum ssl::verify_mode mode) : impl_(new impl) {
pn_ssl_domain_t* dom = impl_->pn_domain();
set_cred(dom, cert.certdb_main_, cert.certdb_extra_, cert.passwd_, cert.pw_set_);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org