| 1628 | |
| 1629 | #ifdef CPPHTTPLIB_OPENSSL_SUPPORT |
| 1630 | class SSLServer : public Server { |
| 1631 | public: |
| 1632 | SSLServer(const char *cert_path, const char *private_key_path, |
| 1633 | const char *client_ca_cert_file_path = nullptr, |
| 1634 | const char *client_ca_cert_dir_path = nullptr, |
| 1635 | const char *private_key_password = nullptr); |
| 1636 | |
| 1637 | SSLServer(X509 *cert, EVP_PKEY *private_key, |
| 1638 | X509_STORE *client_ca_cert_store = nullptr); |
| 1639 | |
| 1640 | SSLServer( |
| 1641 | const std::function<bool(SSL_CTX &ssl_ctx)> &setup_ssl_ctx_callback); |
| 1642 | |
| 1643 | ~SSLServer() override; |
| 1644 | |
| 1645 | bool is_valid() const override; |
| 1646 | |
| 1647 | SSL_CTX *ssl_context() const; |
| 1648 | |
| 1649 | private: |
| 1650 | bool process_and_close_socket(socket_t sock) override; |
| 1651 | |
| 1652 | SSL_CTX *ctx_; |
| 1653 | std::mutex ctx_mutex_; |
| 1654 | }; |
| 1655 | |
| 1656 | class SSLClient : public ClientImpl { |
| 1657 | public: |
nothing calls this directly
no outgoing calls
no test coverage detected