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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]