mod_ssl.h revision f367c0bc73c39f48669bbdcf02dfa6bbf1dbc306
b565cd55a13dbccc4e66c344316da525c961e4caTill Mossakowski** _ __ ___ ___ __| | ___ ___| | mod_ssl
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder** | '_ ` _ \ / _ \ / _` | / __/ __| | Apache Interface to OpenSSL
b565cd55a13dbccc4e66c344316da525c961e4caTill Mossakowski** | | | | | | (_) | (_| | \__ \__ \ | www.modssl.org
b565cd55a13dbccc4e66c344316da525c961e4caTill Mossakowski** |_| |_| |_|\___/ \__,_|___|___/___/_| ftp.modssl.org
b565cd55a13dbccc4e66c344316da525c961e4caTill Mossakowski** Global header
b565cd55a13dbccc4e66c344316da525c961e4caTill Mossakowski/* ====================================================================
b565cd55a13dbccc4e66c344316da525c961e4caTill Mossakowski * The Apache Software License, Version 1.1
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * Copyright (c) 2000-2001 The Apache Software Foundation. All rights
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * Redistribution and use in source and binary forms, with or without
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * modification, are permitted provided that the following conditions
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * 1. Redistributions of source code must retain the above copyright
b565cd55a13dbccc4e66c344316da525c961e4caTill Mossakowski * notice, this list of conditions and the following disclaimer.
b1f59a4ea7c96f4c03a4d7cfcb9c5e66871cfbbbChristian Maeder * 2. Redistributions in binary form must reproduce the above copyright
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * notice, this list of conditions and the following disclaimer in
b565cd55a13dbccc4e66c344316da525c961e4caTill Mossakowski * the documentation and/or other materials provided with the
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * distribution.
b565cd55a13dbccc4e66c344316da525c961e4caTill Mossakowski * 3. The end-user documentation included with the redistribution,
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * if any, must include the following acknowledgment:
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * "This product includes software developed by the
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * Apache Software Foundation (http://www.apache.org/)."
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * Alternately, this acknowledgment may appear in the software itself,
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * if and wherever such third-party acknowledgments normally appear.
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * 4. The names "Apache" and "Apache Software Foundation" must
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * not be used to endorse or promote products derived from this
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * software without prior written permission. For written
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * permission, please contact apache@apache.org.
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * 5. Products derived from this software may not be called "Apache",
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * nor may "Apache" appear in their name, without prior written
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * permission of the Apache Software Foundation.
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * SUCH DAMAGE.
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder * ====================================================================
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder /* ``The Apache Group: a collection
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder of talented individuals who are
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder trying to perfect the art of
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder never finishing something.''
179581802dda2f071129f542a2c10e28b35c45b9Christian Maeder -- Rob Hartill */
#ifdef SSL_EXPERIMENTAL
#ifndef SSL_EXPERIMENTAL_PERDIRCA_IGNORE
#define SSL_EXPERIMENTAL_PERDIRCA
#ifndef SSL_EXPERIMENTAL_PROXY_IGNORE
#define SSL_EXPERIMENTAL_PROXY
#ifdef SSL_ENGINE
#ifndef SSL_EXPERIMENTAL_ENGINE_IGNORE
#define SSL_EXPERIMENTAL_ENGINE
#include "httpd.h"
#include "http_config.h"
#include "http_core.h"
#include "http_log.h"
#include "http_main.h"
#include "http_connection.h"
#include "http_request.h"
#include "http_protocol.h"
#include "util_script.h"
#include "util_filter.h"
#include "mpm.h"
#include "apr_strings.h"
#include "apr_tables.h"
#include "apr_lib.h"
#include "apr_fnmatch.h"
#include "apr_strings.h"
#include "apr_dbm.h"
#include "apr_optional.h"
#include <ssl.h>
#include <err.h>
#include <x509.h>
#include <x509v3.h>
#include <pem.h>
#include <crypto.h>
#include <evp.h>
#include <rand.h>
#ifdef SSL_EXPERIMENTAL_ENGINE
#include <engine.h>
#include "ssl_expr.h"
#include "ssl_util_ssl.h"
#include "ssl_util_table.h"
#ifndef FALSE
#define FALSE (0)
#ifndef TRUE
#ifndef PFALSE
#ifndef PTRUE
#ifndef UNSET
#ifndef NUL
#ifndef RAND_MAX
#include <limits.h>
#ifndef BOOL
#define BOOL unsigned int
#ifndef UCHAR
#define UCHAR unsigned char
#define myConnConfig(c) \
#ifndef SSL_SESSION_CACHE_TIMEOUT
#if defined(DBM_SUFFIX)
} ssl_ds_array;
} ssl_ds_table;
typedef int ssl_algo_t;
#define SSL_ALGO_UNKNOWN (0)
#define SSL_AIDX_RSA (0)
#define SSL_TKP_GEN (0)
#define SSL_TKPIDX_RSA512 (0)
#define SSL_OPT_NONE (0)
#define SSL_OPT_ALL (SSL_OPT_STDENVVARS|SSL_OPT_COMPATENVVAR|SSL_OPT_EXPORTCERTDATA|SSL_OPT_FAKEBASICAUTH|SSL_OPT_STRICTREQUIRE|SSL_OPT_OPTRENEGOTIATE)
typedef int ssl_opt_t;
#define SSL_PROTOCOL_NONE (0)
typedef int ssl_proto_t;
SSL_CVERIFY_NONE = 0,
} ssl_verify_t;
#ifndef X509_V_ERR_CERT_UNTRUSTED
SSL_PPTYPE_BUILTIN = 0,
typedef unsigned int ssl_pathcheck_t;
SSL_SCMODE_NONE = 0,
} ssl_scmode_t;
SSL_MUTEXMODE_NONE = 0,
char *cpExpr;
} ssl_rsctx_t;
} ssl_rssrc_t;
char *cpPath;
int nBytes;
long int nData;
unsigned char *cpData;
} ssl_asn1_t;
} SSLFilterRec;
const char *client_dn;
const char *verify_info;
const char *verify_error;
int verify_depth;
} SSLConnRec;
int nInitCount;
int nSessionCacheMode;
char *szSessionCacheDataFile;
char *szMutexFile;
#ifdef SSL_EXPERIMENTAL_ENGINE
char *szCryptoDevice;
} rCtx;
const char *szCertificateChain;
const char *szCACertificatePath;
const char *szCACertificateFile;
const char *szLogFile;
const char *szCipherSuite;
int nLogLevel;
int nVerifyDepth;
int nSessionCacheTimeout;
const char *szPassPhraseDialogPath;
const char *szCARevocationPath;
const char *szCARevocationFile;
#ifdef SSL_EXPERIMENTAL_PROXY
int bProxyVerify;
int nProxyVerifyDepth;
const char *szProxyCACertificatePath;
const char *szProxyCACertificateFile;
const char *szProxyClientCertificateFile;
const char *szProxyClientCertificatePath;
const char *szProxyCipherSuite;
char *szCipherSuite;
int nVerifyDepth;
#ifdef SSL_EXPERIMENTAL_PERDIRCA
char *szCACertificatePath;
char *szCACertificateFile;
#ifdef SSL_EXPERIMENTAL_PROXY
void ssl_init_SSLLibrary(void);
void ssl_hook_TimeoutConnection(int);
int ssl_pphrase_Handle_CB(char *, int, int, void *);
void ssl_die(void);
void ssl_var_register(void);
void ssl_util_strupper(char *);