iostream-openssl.h revision 3faa1040e5a3f9f35ffad29110216094ab2f5880
e98de01b5644c88b6053e2921eb5e9a506fe263fTimo Sirainen /* Used as logging prefix, e.g. "client" or "server" */
e98de01b5644c88b6053e2921eb5e9a506fe263fTimo Sirainen /* copied settings */
e98de01b5644c88b6053e2921eb5e9a506fe263fTimo Sirainen bool verbose, verbose_invalid_cert, require_valid_cert;
3faa1040e5a3f9f35ffad29110216094ab2f5880Timo Sirainenstruct istream *openssl_i_stream_create_ssl(struct ssl_iostream *ssl_io);
3faa1040e5a3f9f35ffad29110216094ab2f5880Timo Sirainenstruct ostream *openssl_o_stream_create_ssl(struct ssl_iostream *ssl_io);
3faa1040e5a3f9f35ffad29110216094ab2f5880Timo Sirainenint openssl_iostream_context_init_client(const char *source,
3faa1040e5a3f9f35ffad29110216094ab2f5880Timo Sirainenint openssl_iostream_context_init_server(const char *source,
3faa1040e5a3f9f35ffad29110216094ab2f5880Timo Sirainenvoid openssl_iostream_context_deinit(struct ssl_iostream_context *ctx);
3faa1040e5a3f9f35ffad29110216094ab2f5880Timo Sirainenint openssl_iostream_load_key(const struct ssl_iostream_settings *set,
e98de01b5644c88b6053e2921eb5e9a506fe263fTimo Sirainenconst char *ssl_iostream_get_use_certificate_error(const char *cert);
831f3bcdde51fa388462eda1daa555e90651ca2eTimo Sirainenint openssl_cert_match_name(SSL *ssl, const char *verify_name);
6a4212e6d7c41de83bcac63edec3118e6a7a0f68Timo Sirainenint openssl_get_protocol_options(const char *protocols);
6a4212e6d7c41de83bcac63edec3118e6a7a0f68Timo Sirainen (SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1)
21fed972adb354b92771eefad27f8ac8cbd5dd45Timo Sirainen/* Sync plain_input/plain_output streams with BIOs. Returns TRUE if at least
21fed972adb354b92771eefad27f8ac8cbd5dd45Timo Sirainen one byte was read/written. */
3faa1040e5a3f9f35ffad29110216094ab2f5880Timo Sirainenbool openssl_iostream_bio_sync(struct ssl_iostream *ssl_io);
21fed972adb354b92771eefad27f8ac8cbd5dd45Timo Sirainen/* Call when there's more data available in plain_input/plain_output.
21fed972adb354b92771eefad27f8ac8cbd5dd45Timo Sirainen Returns 1 if it's ok to continue with SSL_read/SSL_write, 0 if not
21fed972adb354b92771eefad27f8ac8cbd5dd45Timo Sirainen (still handshaking), -1 if error occurred. */
3faa1040e5a3f9f35ffad29110216094ab2f5880Timo Sirainenint openssl_iostream_more(struct ssl_iostream *ssl_io);
21fed972adb354b92771eefad27f8ac8cbd5dd45Timo Sirainen/* Returns 1 if the operation should be retried (we read/wrote more data),
21fed972adb354b92771eefad27f8ac8cbd5dd45Timo Sirainen 0 if the operation should retried later once more data has been
21fed972adb354b92771eefad27f8ac8cbd5dd45Timo Sirainen read/written, -1 if a fatal error occurred (errno is set). */
3faa1040e5a3f9f35ffad29110216094ab2f5880Timo Sirainenint openssl_iostream_handle_error(struct ssl_iostream *ssl_io, int ret,
3faa1040e5a3f9f35ffad29110216094ab2f5880Timo Sirainenint openssl_iostream_handle_write_error(struct ssl_iostream *ssl_io, int ret,
3faa1040e5a3f9f35ffad29110216094ab2f5880Timo Sirainenconst char *openssl_iostream_error(void);
3faa1040e5a3f9f35ffad29110216094ab2f5880Timo Sirainenconst char *openssl_iostream_key_load_error(void);
3faa1040e5a3f9f35ffad29110216094ab2f5880Timo Sirainenint openssl_iostream_generate_params(buffer_t *output);
3faa1040e5a3f9f35ffad29110216094ab2f5880Timo Sirainenint openssl_iostream_context_import_params(struct ssl_iostream_context *ctx,