1656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* apps/apps.h */ 2656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 3656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * All rights reserved. 4656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 5656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This package is an SSL implementation written 6656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * by Eric Young (eay@cryptsoft.com). 7656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * The implementation was written so as to conform with Netscapes SSL. 8656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 9656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This library is free for commercial and non-commercial use as long as 10656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the following conditions are aheared to. The following conditions 11656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * apply to all code found in this distribution, be it the RC4, RSA, 12656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * lhash, DES, etc., code; not just the SSL code. The SSL documentation 13656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * included with this distribution is covered by the same copyright terms 14656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * except that the holder is Tim Hudson (tjh@cryptsoft.com). 15656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 16656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Copyright remains Eric Young's, and as such any Copyright notices in 17656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the code are not to be removed. 18656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * If this package is used in a product, Eric Young should be given attribution 19656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * as the author of the parts of the library used. 20656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This can be in the form of a textual message at program startup or 21656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * in documentation (online or textual) provided with the package. 22656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 23656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Redistribution and use in source and binary forms, with or without 24656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * modification, are permitted provided that the following conditions 25656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * are met: 26656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 1. Redistributions of source code must retain the copyright 27656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer. 28656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 29656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer in the 30656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * documentation and/or other materials provided with the distribution. 31656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 3. All advertising materials mentioning features or use of this software 32656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * must display the following acknowledgement: 33656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes cryptographic software written by 34656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Eric Young (eay@cryptsoft.com)" 35656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * The word 'cryptographic' can be left out if the rouines from the library 36656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * being used are not cryptographic related :-). 37656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 4. If you include any Windows specific code (or a derivative thereof) from 38656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the apps directory (application code) you must include an acknowledgement: 39656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 40656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 41656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 42656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 43656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 44656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 45656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 46656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 47656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 48656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 49656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 50656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 51656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * SUCH DAMAGE. 52656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 53656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * The licence and distribution terms for any publically available version or 54656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * derivative of this code cannot be changed. i.e. this code cannot simply be 55656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * copied and put under another distribution licence 56656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * [including the GNU Public Licence.] 57656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 58656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* ==================================================================== 59656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. 60656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 61656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Redistribution and use in source and binary forms, with or without 62656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * modification, are permitted provided that the following conditions 63656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * are met: 64656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 65656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 1. Redistributions of source code must retain the above copyright 66656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer. 67656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 68656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 69656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * notice, this list of conditions and the following disclaimer in 70656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * the documentation and/or other materials provided with the 71656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * distribution. 72656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 73656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 3. All advertising materials mentioning features or use of this 74656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * software must display the following acknowledgment: 75656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes software developed by the OpenSSL Project 76656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" 77656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 78656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to 79656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * endorse or promote products derived from this software without 80656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * prior written permission. For written permission, please contact 81656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * openssl-core@openssl.org. 82656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 83656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 5. Products derived from this software may not be called "OpenSSL" 84656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * nor may "OpenSSL" appear in their names without prior written 85656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * permission of the OpenSSL Project. 86656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 87656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 6. Redistributions of any form whatsoever must retain the following 88656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * acknowledgment: 89656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * "This product includes software developed by the OpenSSL Project 90656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * for use in the OpenSSL Toolkit (http://www.openssl.org/)" 91656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 92656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY 93656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 94656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 95656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR 96656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 97656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 98656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 99656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 100656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 101656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 102656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 103656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * OF THE POSSIBILITY OF SUCH DAMAGE. 104656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ==================================================================== 105656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 106656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This product includes cryptographic software written by Eric Young 107656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * (eay@cryptsoft.com). This product includes software written by Tim 108656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Hudson (tjh@cryptsoft.com). 109656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 110656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 112656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef HEADER_APPS_H 113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define HEADER_APPS_H 114656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 115656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include "e_os.h" 116656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 117656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/bio.h> 118656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/x509.h> 119656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/lhash.h> 120656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/conf.h> 121656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/txt_db.h> 122656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_ENGINE 123656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/engine.h> 124656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 125656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_OCSP 126656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/ocsp.h> 127656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 128656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <openssl/ossl_typ.h> 129656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 130656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint app_RAND_load_file(const char *file, BIO *bio_e, int dont_warn); 131656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint app_RAND_write_file(const char *file, BIO *bio_e); 132656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* When `file' is NULL, use defaults. 133656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * `bio_e' is for error messages. */ 134656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid app_RAND_allow_write_file(void); 135656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectlong app_RAND_load_files(char *file); /* `file' is a list of files to read, 136656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * separated by LIST_SEPARATOR_CHAR 137656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * (see e_os.h). The string is 138656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * destroyed! */ 139656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 140656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef MONOLITH 141656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 142656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define MAIN(a,v) main(a,v) 143656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 144656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef NON_MAIN 145656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectCONF *config=NULL; 146656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectBIO *bio_err=NULL; 147656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 148656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectextern CONF *config; 149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectextern BIO *bio_err; 150656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 151656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 152656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 154656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define MAIN(a,v) PROG(a,v) 155656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectextern CONF *config; 156656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectextern char *default_config_file; 157656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectextern BIO *bio_err; 158656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 159656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 160656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 161656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_SYS_NETWARE 162656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#include <signal.h> 163656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 164656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 165656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef SIGPIPE 166656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define do_pipe_sig() signal(SIGPIPE,SIG_IGN) 167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 168656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define do_pipe_sig() 169656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 170656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 171221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifdef OPENSSL_NO_COMP 172221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define zlib_cleanup() 173221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#else 174221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define zlib_cleanup() COMP_zlib_cleanup() 175221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif 176221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 177656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#if defined(MONOLITH) && !defined(OPENSSL_C) 178656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define apps_startup() \ 179656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project do_pipe_sig() 180656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define apps_shutdown() 181656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 182656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# ifndef OPENSSL_NO_ENGINE 183221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom# define apps_startup() \ 184221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom do { do_pipe_sig(); CRYPTO_malloc_init(); \ 185656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ERR_load_crypto_strings(); OpenSSL_add_all_algorithms(); \ 186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ENGINE_load_builtin_engines(); setup_ui_method(); } while(0) 187656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define apps_shutdown() \ 188656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project do { CONF_modules_unload(1); destroy_ui_method(); \ 189221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom OBJ_cleanup(); EVP_cleanup(); ENGINE_cleanup(); \ 190221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom CRYPTO_cleanup_all_ex_data(); ERR_remove_thread_state(NULL); \ 191221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ERR_free_strings(); zlib_cleanup();} while(0) 192656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# else 193221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom# define apps_startup() \ 194221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom do { do_pipe_sig(); CRYPTO_malloc_init(); \ 195656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ERR_load_crypto_strings(); OpenSSL_add_all_algorithms(); \ 196656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project setup_ui_method(); } while(0) 197656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define apps_shutdown() \ 198656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project do { CONF_modules_unload(1); destroy_ui_method(); \ 199221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom OBJ_cleanup(); EVP_cleanup(); \ 200221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom CRYPTO_cleanup_all_ex_data(); ERR_remove_thread_state(NULL); \ 201221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom ERR_free_strings(); zlib_cleanup(); } while(0) 202656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# endif 203656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 204656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 205656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef OPENSSL_SYSNAME_WIN32 206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define openssl_fdset(a,b) FD_SET((unsigned int)a, b) 207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#else 208656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project# define openssl_fdset(a,b) FD_SET(a, b) 209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 211221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 212656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct args_st 213656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 214656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char **data; 215656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int count; 216656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } ARGS; 217656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 218656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define PW_MIN_LENGTH 4 219656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct pw_cb_data 220656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 221656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const void *password; 222656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const char *prompt_info; 223656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } PW_CB_DATA; 224656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 225656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint password_callback(char *buf, int bufsiz, int verify, 226656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project PW_CB_DATA *cb_data); 227656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 228656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint setup_ui_method(void); 229656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid destroy_ui_method(void); 230656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 231656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint should_retry(int i); 232656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint args_from_file(char *file, int *argc, char **argv[]); 233656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint str2fmt(char *s); 234656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid program_name(char *in,char *out,int size); 235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint chopup_args(ARGS *arg,char *buf, int *argc, char **argv[]); 236656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifdef HEADER_X509_H 237656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint dump_cert_text(BIO *out, X509 *x); 238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid print_name(BIO *out, const char *title, X509_NAME *nm, unsigned long lflags); 239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint set_cert_ex(unsigned long *flags, const char *arg); 241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint set_name_ex(unsigned long *flags, const char *arg); 242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint set_ext_copy(int *copy_type, const char *arg); 243656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint copy_extensions(X509 *x, X509_REQ *req, int copy_type); 244656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint app_passwd(BIO *err, char *arg1, char *arg2, char **pass1, char **pass2); 245656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint add_oid_section(BIO *err, CONF *conf); 246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509 *load_cert(BIO *err, const char *file, int format, 247656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const char *pass, ENGINE *e, const char *cert_descrip); 248656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectEVP_PKEY *load_key(BIO *err, const char *file, int format, int maybe_stdin, 249656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const char *pass, ENGINE *e, const char *key_descrip); 250656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectEVP_PKEY *load_pubkey(BIO *err, const char *file, int format, int maybe_stdin, 251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const char *pass, ENGINE *e, const char *key_descrip); 252656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectSTACK_OF(X509) *load_certs(BIO *err, const char *file, int format, 253656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project const char *pass, ENGINE *e, const char *cert_descrip); 254221304ee937bc0910948a8be1320cb8cc4eb6d36Brian CarlstromSTACK_OF(X509_CRL) *load_crls(BIO *err, const char *file, int format, 255221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom const char *pass, ENGINE *e, const char *cert_descrip); 256656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_STORE *setup_verify(BIO *bp, char *CAfile, char *CApath); 257656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_ENGINE 258656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectENGINE *setup_engine(BIO *err, const char *engine, int debug); 259656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 260656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 261656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#ifndef OPENSSL_NO_OCSP 262656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectOCSP_RESPONSE *process_responder(BIO *err, OCSP_REQUEST *req, 263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project char *host, char *path, char *port, int use_ssl, 264221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom STACK_OF(CONF_VALUE) *headers, 265656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int req_timeout); 266656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#endif 267656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 268656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint load_config(BIO *err, CONF *cnf); 269656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectchar *make_config_name(void); 270656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 271656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* Functions defined in ca.c and also used in ocsp.c */ 272656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint unpack_revinfo(ASN1_TIME **prevtm, int *preason, ASN1_OBJECT **phold, 273656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ASN1_GENERALIZEDTIME **pinvtm, const char *str); 274656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 275656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DB_type 0 276656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DB_exp_date 1 277656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DB_rev_date 2 278656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DB_serial 3 /* index - unique */ 279656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DB_file 4 280656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DB_name 5 /* index - unique when active and not disabled */ 281656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DB_NUMBER 6 282656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 283656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DB_TYPE_REV 'R' 284656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DB_TYPE_EXP 'E' 285656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define DB_TYPE_VAL 'V' 286656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 287656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct db_attr_st 288656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 289656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int unique_subject; 290656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } DB_ATTR; 291656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projecttypedef struct ca_db_st 292656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project { 293656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project DB_ATTR attributes; 294656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project TXT_DB *db; 295656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project } CA_DB; 296656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 297656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectBIGNUM *load_serial(char *serialfile, int create, ASN1_INTEGER **retai); 298656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint save_serial(char *serialfile, char *suffix, BIGNUM *serial, ASN1_INTEGER **retai); 299656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint rotate_serial(char *serialfile, char *new_suffix, char *old_suffix); 300656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint rand_serial(BIGNUM *b, ASN1_INTEGER *ai); 301656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectCA_DB *load_index(char *dbfile, DB_ATTR *dbattr); 302656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint index_index(CA_DB *db); 303656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint save_index(const char *dbfile, const char *suffix, CA_DB *db); 304656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint rotate_index(const char *dbfile, const char *new_suffix, const char *old_suffix); 305656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid free_index(CA_DB *db); 306221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define index_name_cmp_noconst(a, b) \ 307221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom index_name_cmp((const OPENSSL_CSTRING *)CHECKED_PTR_OF(OPENSSL_STRING, a), \ 308221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom (const OPENSSL_CSTRING *)CHECKED_PTR_OF(OPENSSL_STRING, b)) 309221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromint index_name_cmp(const OPENSSL_CSTRING *a, const OPENSSL_CSTRING *b); 310656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint parse_yesno(const char *str, int def); 311656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 312656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source ProjectX509_NAME *parse_name(char *str, long chtype, int multirdn); 313656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectint args_verify(char ***pargs, int *pargc, 314656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project int *badarg, BIO *err, X509_VERIFY_PARAM **pm); 315656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectvoid policies_print(BIO *out, X509_STORE_CTX *ctx); 316221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromint bio_to_mem(unsigned char **out, int maxlen, BIO *in); 317221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromint pkey_ctrl_string(EVP_PKEY_CTX *ctx, char *value); 318221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromint init_gen_str(BIO *err, EVP_PKEY_CTX **pctx, 319221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom const char *algname, ENGINE *e, int do_param); 320392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstromint do_X509_sign(BIO *err, X509 *x, EVP_PKEY *pkey, const EVP_MD *md, 321392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom STACK_OF(OPENSSL_STRING) *sigopts); 322392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstromint do_X509_REQ_sign(BIO *err, X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md, 323392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom STACK_OF(OPENSSL_STRING) *sigopts); 324392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstromint do_X509_CRL_sign(BIO *err, X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md, 325392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom STACK_OF(OPENSSL_STRING) *sigopts); 326221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#ifndef OPENSSL_NO_PSK 327221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromextern char *psk_key; 328221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#endif 329e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#ifndef OPENSSL_NO_JPAKE 330e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modaduguvoid jpake_client_auth(BIO *out, BIO *conn, const char *secret); 331e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modaduguvoid jpake_server_auth(BIO *out, BIO *conn, const char *secret); 332e45f106cb6b47af1f21efe76e933bdea2f5dd1caNagendra Modadugu#endif 333656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 334392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#if !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_NEXTPROTONEG) 335392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstromunsigned char *next_protos_parse(unsigned short *outlen, const char *in); 336392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#endif /* !OPENSSL_NO_TLSEXT && !OPENSSL_NO_NEXTPROTONEG */ 337392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 338656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define FORMAT_UNDEF 0 339656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define FORMAT_ASN1 1 340656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define FORMAT_TEXT 2 341656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define FORMAT_PEM 3 342656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define FORMAT_NETSCAPE 4 343656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define FORMAT_PKCS12 5 344656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define FORMAT_SMIME 6 345656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define FORMAT_ENGINE 7 346656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define FORMAT_IISSGC 8 /* XXX this stupid macro helps us to avoid 347656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * adding yet another param to load_*key() */ 348221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define FORMAT_PEMRSA 9 /* PEM RSAPubicKey format */ 349221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define FORMAT_ASN1RSA 10 /* DER RSAPubicKey format */ 350221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define FORMAT_MSBLOB 11 /* MS Key blob format */ 351221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define FORMAT_PVK 12 /* MS PVK file format */ 352656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 353656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define EXT_COPY_NONE 0 354656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define EXT_COPY_ADD 1 355656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define EXT_COPY_ALL 2 356656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 357656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define NETSCAPE_CERT_HDR "certificate" 358656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 359656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define APP_PASS_LEN 1024 360656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 361656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define SERIAL_RAND_BITS 64 362656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 363221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromint app_isdir(const char *); 364221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromint raw_read_stdin(void *,int); 365221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromint raw_write_stdout(const void *,int); 366221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom 367221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define TM_START 0 368221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstrom#define TM_STOP 1 369221304ee937bc0910948a8be1320cb8cc4eb6d36Brian Carlstromdouble app_tminterval (int stop,int usertime); 370bf9ac266e34f910ace31880ea92b8deaf6212aa6Kristian Monsen 371392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom#define OPENSSL_NO_SSL_INTERN 372392aa7cc7d2b122614c5393c3e357da07fd07af3Brian Carlstrom 373bf9ac266e34f910ace31880ea92b8deaf6212aa6Kristian Monsen#endif 374