/* * Global variables/defines. * * Copyright (C) 2011-2013 Simon Ruderich * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef TLSPROXY_H #define TLSPROXY_H #include #include #include #include #include #include "log.h" /* Length for path arrays. */ #define TLSPROXY_MAX_PATH_LENGTH 1024 /* Paths to necessary TLS files: the CA and the server key. */ #define PROXY_CA_FILE "proxy-ca.pem" #define PROXY_KEY_FILE "proxy-key.pem" /* Path to special "invalid" certificate send to the client when an error * occurs. */ #define PROXY_INVALID_CERT_FILE "proxy-invalid.pem" /* The server certificate for the given hostname is stored in * "./certificate-hostname-proxy.pem" - we use this for the connection to the * client. */ #define PROXY_SERVER_CERT_FORMAT "./certificate-%s-proxy.pem" /* The remote server certificate for the given hostname is stored in * "./certificate-hostname-proxy.pem" - we make sure the server sends this * certificate. */ #define STORED_SERVER_CERT_FORMAT "./certificate-%s-server.pem" /* Proxy hostname and port if specified on the command line. */ char *global_proxy_host; char *global_proxy_port; /* Passphrase for authentication of this proxy. Used with the -a option. */ char *http_digest_authorization; /* Log level, command line option. */ int global_log_level; /* Passthrough connections if no certificate is stored for this hostname? * Specified on the command line. */ int global_passthrough_unknown; /* "Global" GnuTLS data used by all threads, read only. */ gnutls_priority_t global_tls_priority_cache; gnutls_dh_params_t global_tls_dh_params; /* Very simple compile time asserts. No good error message though. */ #define ct_assert(x) { \ int unused[(x) ? 1 : -1]; \ (void)unused; \ } #endif