# Secure Sockets Layer (SSL) Parameters

> The SSL parameters in structure `mco_ssl_params_t` are defined as follows in file `mcossl.h`:

>         typedef struct mco_ssl_params_t_ {
>             const char *cipher_list;
>             long max_cert_list;
>             long options;
>             void *tmp_dh;
>             int verify_mode;
>             int verify_depth;
>             void *certificate;
>             void *private_key;
>             const char *certificate_file;
>             const char *private_key_file;

>         } mco_ssl_params_t;

> Definitions:

> cipher_list | A string containing the list of ciphers for the SSL engine
> max_cert_list | Maximum size of the peer's certificate chain in bytes
> options | SSL options. A combination of the `MCO_SSL_OPT_*` flags:
> MCO_SSL_OPT_NO_SSLV2 | Disable SSL 2
> MCO_SSL_OPT_NO_SSLV3 | Disable SSL 3
> MCO_SSL_OPT_NO_TLSV1_0 | Disable TLS 1.0
> MCO_SSL_OPT_NO_TLSV1_1 | Disable TLS 1.1
> MCO_SSL_OPT_NO_TLSV1_2 | Disable TLS 1.2
> MCO_SSL_OPT_NO_COMPRESSION | Disable compression
> MCO_SSL_OPT_SINGLE_DH_USE | Always create a new key when using ephemeral DH parameters
> tmp_dh | PEM-encoded DH parameters for the ephemeral DH key exchange
> verify_mode | Peer verification mode. A combination of `MCO_SSL_VERIFY_*` flags:
> MCO_SSL_VERIFY_NONE | Disable peer verification
> MCO_SSL_VERIFY_PEER | Enable peer verification
> MCO_SSL_VERIFY_FAIL_IF_NO_PEER_CERT | Fail verification if the peer does not send a certificate
> MCO_SSL_VERIFY_CLIENT_ONCE | Only request the client's certificate on the initial handshake
> verify_depth | Maximum depth for the certificate chain verification
> certificate | PEM-encoded certificate
> private_key | PEM-encoded private key
> certificate_file | Path to the PEM-encoded certificate file
> private_key_file | Path to the PEM-encoded private key file