25 #include "./internal/export.hpp"
26 #include "./internal/config.hpp"
29 #include <proton/ssl.h>
41 ssl(pn_ssl_t* s) : object_(s) {}
44 #if PN_CPP_HAS_DELETED_FUNCTIONS
64 NEW = PN_SSL_RESUME_NEW,
65 REUSED = PN_SSL_RESUME_REUSED
72 PN_CPP_EXTERN std::string cipher()
const;
76 PN_CPP_EXTERN std::string protocol()
const;
79 PN_CPP_EXTERN
int ssf()
const;
82 PN_CPP_EXTERN std::string remote_subject()
const;
85 PN_CPP_EXTERN
void resume_session_id(
const std::string& session_id);
92 pn_ssl_t*
const object_;
108 PN_CPP_EXTERN
ssl_certificate(
const std::string &certdb_main,
const std::string &certdb_extra);
111 PN_CPP_EXTERN
ssl_certificate(
const std::string &certdb_main,
const std::string &certdb_extra,
const std::string &passwd);
115 std::string certdb_main_;
116 std::string certdb_extra_;
126 class ssl_domain_impl;
133 PN_CPP_EXTERN ssl_domain(
const ssl_domain&);
134 PN_CPP_EXTERN ssl_domain& operator=(
const ssl_domain&);
135 PN_CPP_EXTERN ~ssl_domain();
138 ssl_domain(
bool is_server);
139 pn_ssl_domain_t *pn_domain();
142 ssl_domain_impl *impl_;
158 const std::string &advertise_db = std::string(),
168 using internal::ssl_domain::pn_domain;
193 using internal::ssl_domain::pn_domain;
Options for creating a connection.
Definition: connection_options.hpp:66
Unsettled API - An SSL certificate.
Definition: ssl.hpp:100
ssl_certificate(const std::string &certdb_main)
Create an SSL certificate.
ssl_certificate(const std::string &certdb_main, const std::string &certdb_extra)
Create an SSL certificate.
ssl_certificate(const std::string &certdb_main, const std::string &certdb_extra, const std::string &passwd)
Create an SSL certificate.
Unsettled API - SSL configuration for outbound connections.
Definition: ssl.hpp:176
ssl_client_options(const std::string &trust_db, enum ssl::verify_mode=ssl::VERIFY_PEER_NAME)
Create SSL client options (no client certificate).
ssl_client_options()
SSL connections restricted to available anonymous cipher suites on the platform.
ssl_client_options(ssl_certificate &, const std::string &trust_db, enum ssl::verify_mode=ssl::VERIFY_PEER_NAME)
Create SSL client options with a client certificate.
Unsettled API - SSL configuration for inbound connections.
Definition: ssl.hpp:149
ssl_server_options()
Server SSL options restricted to available anonymous cipher suites on the platform.
ssl_server_options(ssl_certificate &cert)
Server SSL options based on the supplied X.509 certificate specifier.
ssl_server_options(ssl_certificate &cert, const std::string &trust_db, const std::string &advertise_db=std::string(), enum ssl::verify_mode mode=ssl::VERIFY_PEER)
Server SSL options requiring connecting clients to provide a client certificate.
SSL information.
Definition: ssl.hpp:39
resume_status
Outcome specifier for an attempted session resume.
Definition: ssl.hpp:62
@ REUSED
Session resumed from previous session.
Definition: ssl.hpp:65
@ UNKNOWN
Session resume state unknown or not supported.
Definition: ssl.hpp:63
@ NEW
Session renegotiated, not resumed.
Definition: ssl.hpp:64
verify_mode
Determines the level of peer validation.
Definition: ssl.hpp:52
@ VERIFY_PEER_NAME
Require valid certificate and matching name.
Definition: ssl.hpp:58
@ ANONYMOUS_PEER
Do not require a certificate or cipher authorization.
Definition: ssl.hpp:56
@ VERIFY_PEER
Require peer to provide a valid identifying certificate.
Definition: ssl.hpp:54
A network channel supporting an AMQP connection.
Definition: transport.hpp:37
The main Proton namespace.
Definition: annotation_key.hpp:33