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