class axl::io::SslCtx

#include <axl_io_SslCtx.h>

class SslCtx: public axl::sl::Handle
{
public:
    // methods

    bool
    create(const SSL_METHOD* method = SSLv23_method());

    long
    getOptions();

    long
    setOptions(long options);

    long
    clearOptions(long options);

    void
    setInfoCallback(SslInfoCallbackFunc* callbackFunc);

    int
    getVerifyDepth();

    void
    setVerifyDepth(int depth);

    int
    getVerifyMode();

    void
    setVerifyMode(int mode);

    void
    setVerify(
        int mode,
        SslVerifyCallbackFunc* callbackFunc
        );

    bool
    loadVerifyLocations(
        const sl::StringRef& caFileName,
        const sl::StringRef& caDir = sl::StringRef()
        );

    bool
    setTmpDh(DH* dh);

    void
    setTmpDhCallback(SslTmpDhCallbackFunc* callback);

    bool
    setTmpEcdh(EC_KEY* ecKey);

    bool
    setCipherList(const sl::StringRef& listString);

    X509*
    getCertificate() const;

    bool
    useCertificate(const X509* cert);

    bool
    useCertificateFile(
        const sl::StringRef& fileName,
        int fileType = SSL_FILETYPE_PEM
        );

    EVP_PKEY*
    getPrivateKey() const;

    bool
    usePrivateKey(const EVP_PKEY* key);

    bool
    usePrivateKeyFile(
        const sl::StringRef& fileName,
        int fileType = SSL_FILETYPE_PEM
        );

    bool
    addExtraChainCertificate(const X509* cert);

    void
    clearExtraChainCertificates();
};

Inherited Members

public:
    // typedefs

    typedef T H;

    // methods

    operator T() const;

    T
    operator->() const;

    const Handle&
    operator=(T h);

    bool
    isOpen() const;

    void
    close();

    void
    attach(T h);

    T
    detach();

    T*
    p();

    static
    T
    getInvalidHandle();