ssl-proxy.c revision 42a6ae32e417eb19b48ef312b988d0a527b85ed7
76b43e4417bab52e913da39b5f5bc2a130d3f149Timo Sirainen/* Copyright (c) 2002-2012 Dovecot authors, see the included COPYING file */
df02611c44e9432e7961223bf9bfa3fb233b1789Timo Sirainen
df02611c44e9432e7961223bf9bfa3fb233b1789Timo Sirainen#include "lib.h"
df02611c44e9432e7961223bf9bfa3fb233b1789Timo Sirainen#include "ssl-proxy.h"
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen
df02611c44e9432e7961223bf9bfa3fb233b1789Timo Sirainenbool ssl_initialized = FALSE;
3320f4770d1f6c2cdd10f3c4ca5a324beb335339Timo Sirainen
df02611c44e9432e7961223bf9bfa3fb233b1789Timo Sirainen#ifndef HAVE_SSL
b039dabf4c53f72454e795930e7643b6e0e625f9Timo Sirainen
df02611c44e9432e7961223bf9bfa3fb233b1789Timo Sirainen/* no SSL support */
df02611c44e9432e7961223bf9bfa3fb233b1789Timo Sirainen
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainenint ssl_proxy_alloc(int fd ATTR_UNUSED, const struct ip_addr *ip ATTR_UNUSED,
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen pool_t set_pool ATTR_UNUSED,
df02611c44e9432e7961223bf9bfa3fb233b1789Timo Sirainen const struct login_settings *set ATTR_UNUSED,
39afc7584d935b2dc7332c21966a7b20da03f1ecTimo Sirainen struct ssl_proxy **proxy_r ATTR_UNUSED)
df02611c44e9432e7961223bf9bfa3fb233b1789Timo Sirainen{
df02611c44e9432e7961223bf9bfa3fb233b1789Timo Sirainen i_error("Dovecot wasn't built with SSL support");
8e371a3ce32bd64288786855b8ce0cb63f19f7d1Timo Sirainen return -1;
8e371a3ce32bd64288786855b8ce0cb63f19f7d1Timo Sirainen}
8e371a3ce32bd64288786855b8ce0cb63f19f7d1Timo Sirainen
b039dabf4c53f72454e795930e7643b6e0e625f9Timo Sirainenint ssl_proxy_client_alloc(int fd ATTR_UNUSED, struct ip_addr *ip ATTR_UNUSED,
8e371a3ce32bd64288786855b8ce0cb63f19f7d1Timo Sirainen pool_t set_pool ATTR_UNUSED,
df02611c44e9432e7961223bf9bfa3fb233b1789Timo Sirainen const struct login_settings *set ATTR_UNUSED,
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen ssl_handshake_callback_t *callback ATTR_UNUSED,
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen void *context ATTR_UNUSED,
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen struct ssl_proxy **proxy_r ATTR_UNUSED)
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen{
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen i_error("Dovecot wasn't built with SSL support");
3320f4770d1f6c2cdd10f3c4ca5a324beb335339Timo Sirainen return -1;
39afc7584d935b2dc7332c21966a7b20da03f1ecTimo Sirainen}
39afc7584d935b2dc7332c21966a7b20da03f1ecTimo Sirainen
39afc7584d935b2dc7332c21966a7b20da03f1ecTimo Sirainenvoid ssl_proxy_start(struct ssl_proxy *proxy ATTR_UNUSED)
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen{
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen}
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainenvoid ssl_proxy_set_client(struct ssl_proxy *proxy ATTR_UNUSED,
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen struct client *client ATTR_UNUSED)
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen{
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen}
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainenbool ssl_proxy_has_valid_client_cert(const struct ssl_proxy *proxy ATTR_UNUSED)
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen{
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen return FALSE;
82b990b0bb2a1dad5c2634a508a5ad87715db402Timo Sirainen}
3320f4770d1f6c2cdd10f3c4ca5a324beb335339Timo Sirainen
1f6c210c30992e95b806d2f517e2b3625ed941c5Timo Sirainenbool ssl_proxy_has_broken_client_cert(struct ssl_proxy *proxy ATTR_UNUSED)
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen{
3320f4770d1f6c2cdd10f3c4ca5a324beb335339Timo Sirainen return FALSE;
3320f4770d1f6c2cdd10f3c4ca5a324beb335339Timo Sirainen}
3320f4770d1f6c2cdd10f3c4ca5a324beb335339Timo Sirainen
3320f4770d1f6c2cdd10f3c4ca5a324beb335339Timo Sirainenint ssl_proxy_cert_match_name(struct ssl_proxy *proxy ATTR_UNUSED,
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen const char *verify_name ATTR_UNUSED)
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen{
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen return -1;
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen}
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainenconst char *ssl_proxy_get_peer_name(struct ssl_proxy *proxy ATTR_UNUSED)
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen{
3320f4770d1f6c2cdd10f3c4ca5a324beb335339Timo Sirainen return NULL;
39afc7584d935b2dc7332c21966a7b20da03f1ecTimo Sirainen}
39afc7584d935b2dc7332c21966a7b20da03f1ecTimo Sirainen
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainenbool ssl_proxy_is_handshaked(const struct ssl_proxy *proxy ATTR_UNUSED)
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen{
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen return FALSE;
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen}
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainenconst char *ssl_proxy_get_last_error(const struct ssl_proxy *proxy ATTR_UNUSED)
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen{
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen return NULL;
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen}
3320f4770d1f6c2cdd10f3c4ca5a324beb335339Timo Sirainen
3320f4770d1f6c2cdd10f3c4ca5a324beb335339Timo Sirainenconst char *ssl_proxy_get_security_string(struct ssl_proxy *proxy ATTR_UNUSED)
1f6c210c30992e95b806d2f517e2b3625ed941c5Timo Sirainen{
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen return "";
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen}
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainenconst char *ssl_proxy_get_compression(struct ssl_proxy *proxy ATTR_UNUSED)
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen{
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen return NULL;
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen}
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainenvoid ssl_proxy_free(struct ssl_proxy **proxy ATTR_UNUSED) {}
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainenunsigned int ssl_proxy_get_count(void)
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen{
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen return 0;
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen}
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainenvoid ssl_proxy_init(void) {}
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainenvoid ssl_proxy_deinit(void) {}
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen#endif
cb1fd563e6000153d1be76fd8722a096bd144b77Timo Sirainen