|
|
|
/*
|
|
|
|
*
|
|
|
|
* Copyright 2015, Google Inc.
|
|
|
|
* All rights reserved.
|
|
|
|
*
|
|
|
|
* Redistribution and use in source and binary forms, with or without
|
|
|
|
* modification, are permitted provided that the following conditions are
|
|
|
|
* met:
|
|
|
|
*
|
|
|
|
* * Redistributions of source code must retain the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer.
|
|
|
|
* * Redistributions in binary form must reproduce the above
|
|
|
|
* copyright notice, this list of conditions and the following disclaimer
|
|
|
|
* in the documentation and/or other materials provided with the
|
|
|
|
* distribution.
|
|
|
|
* * Neither the name of Google Inc. nor the names of its
|
|
|
|
* contributors may be used to endorse or promote products derived from
|
|
|
|
* this software without specific prior written permission.
|
|
|
|
*
|
|
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
|
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
|
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
|
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
|
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
|
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* opensslconf.h */
|
|
|
|
/* WARNING: Generated automatically from opensslconf.h.in by Configure. */
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
/* OpenSSL was configured with the following options: */
|
|
|
|
#ifndef OPENSSL_SYSNAME_WIN32
|
|
|
|
#define OPENSSL_SYSNAME_WIN32
|
|
|
|
#endif
|
|
|
|
#ifndef OPENSSL_DOING_MAKEDEPEND
|
|
|
|
|
|
|
|
#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128
|
|
|
|
#define OPENSSL_NO_EC_NISTP_64_GCC_128
|
|
|
|
#endif
|
|
|
|
#ifndef OPENSSL_NO_GMP
|
|
|
|
#define OPENSSL_NO_GMP
|
|
|
|
#endif
|
|
|
|
#ifndef OPENSSL_NO_JPAKE
|
|
|
|
#define OPENSSL_NO_JPAKE
|
|
|
|
#endif
|
|
|
|
#ifndef OPENSSL_NO_KRB5
|
|
|
|
#define OPENSSL_NO_KRB5
|
|
|
|
#endif
|
|
|
|
#ifndef OPENSSL_NO_LIBUNBOUND
|
|
|
|
#define OPENSSL_NO_LIBUNBOUND
|
|
|
|
#endif
|
|
|
|
#ifndef OPENSSL_NO_MD2
|
|
|
|
#define OPENSSL_NO_MD2
|
|
|
|
#endif
|
|
|
|
#ifndef OPENSSL_NO_RC5
|
|
|
|
#define OPENSSL_NO_RC5
|
|
|
|
#endif
|
|
|
|
#ifndef OPENSSL_NO_RFC3779
|
|
|
|
#define OPENSSL_NO_RFC3779
|
|
|
|
#endif
|
|
|
|
#ifndef OPENSSL_NO_SCTP
|
|
|
|
#define OPENSSL_NO_SCTP
|
|
|
|
#endif
|
|
|
|
#ifndef OPENSSL_NO_SSL_TRACE
|
|
|
|
#define OPENSSL_NO_SSL_TRACE
|
|
|
|
#endif
|
|
|
|
#ifndef OPENSSL_NO_STORE
|
|
|
|
#define OPENSSL_NO_STORE
|
|
|
|
#endif
|
|
|
|
#ifndef OPENSSL_NO_UNIT_TEST
|
|
|
|
#define OPENSSL_NO_UNIT_TEST
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* OPENSSL_DOING_MAKEDEPEND */
|
|
|
|
|
|
|
|
#ifndef OPENSSL_THREADS
|
|
|
|
#define OPENSSL_THREADS
|
|
|
|
#endif
|
|
|
|
#ifndef OPENSSL_NO_ASM
|
|
|
|
#define OPENSSL_NO_ASM
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* The OPENSSL_NO_* macros are also defined as NO_* if the application
|
|
|
|
asks for it. This is a transient feature that is provided for those
|
|
|
|
who haven't had the time to do the appropriate changes in their
|
|
|
|
applications. */
|
|
|
|
#ifdef OPENSSL_ALGORITHM_DEFINES
|
|
|
|
#if defined(OPENSSL_NO_EC_NISTP_64_GCC_128) && !defined(NO_EC_NISTP_64_GCC_128)
|
|
|
|
#define NO_EC_NISTP_64_GCC_128
|
|
|
|
#endif
|
|
|
|
#if defined(OPENSSL_NO_GMP) && !defined(NO_GMP)
|
|
|
|
#define NO_GMP
|
|
|
|
#endif
|
|
|
|
#if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE)
|
|
|
|
#define NO_JPAKE
|
|
|
|
#endif
|
|
|
|
#if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5)
|
|
|
|
#define NO_KRB5
|
|
|
|
#endif
|
|
|
|
#if defined(OPENSSL_NO_LIBUNBOUND) && !defined(NO_LIBUNBOUND)
|
|
|
|
#define NO_LIBUNBOUND
|
|
|
|
#endif
|
|
|
|
#if defined(OPENSSL_NO_MD2) && !defined(NO_MD2)
|
|
|
|
#define NO_MD2
|
|
|
|
#endif
|
|
|
|
#if defined(OPENSSL_NO_RC5) && !defined(NO_RC5)
|
|
|
|
#define NO_RC5
|
|
|
|
#endif
|
|
|
|
#if defined(OPENSSL_NO_RFC3779) && !defined(NO_RFC3779)
|
|
|
|
#define NO_RFC3779
|
|
|
|
#endif
|
|
|
|
#if defined(OPENSSL_NO_SCTP) && !defined(NO_SCTP)
|
|
|
|
#define NO_SCTP
|
|
|
|
#endif
|
|
|
|
#if defined(OPENSSL_NO_SSL_TRACE) && !defined(NO_SSL_TRACE)
|
|
|
|
#define NO_SSL_TRACE
|
|
|
|
#endif
|
|
|
|
#if defined(OPENSSL_NO_STORE) && !defined(NO_STORE)
|
|
|
|
#define NO_STORE
|
|
|
|
#endif
|
|
|
|
#if defined(OPENSSL_NO_UNIT_TEST) && !defined(NO_UNIT_TEST)
|
|
|
|
#define NO_UNIT_TEST
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* crypto/opensslconf.h.in */
|
|
|
|
|
|
|
|
/* Generate 80386 code? */
|
|
|
|
#undef I386_ONLY
|
|
|
|
|
|
|
|
#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
|
|
|
|
#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
|
|
|
|
#define ENGINESDIR "/usr/local/ssl/lib/engines"
|
|
|
|
#define OPENSSLDIR "/usr/local/ssl"
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#undef OPENSSL_UNISTD
|
|
|
|
#define OPENSSL_UNISTD <unistd.h>
|
|
|
|
|
|
|
|
#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
|
|
|
|
#define OPENSSL_EXPORT_VAR_AS_FUNCTION
|
|
|
|
|
|
|
|
#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
|
|
|
|
#define IDEA_INT unsigned int
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(HEADER_MD2_H) && !defined(MD2_INT)
|
|
|
|
#define MD2_INT unsigned int
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(HEADER_RC2_H) && !defined(RC2_INT)
|
|
|
|
/* I need to put in a mod for the alpha - eay */
|
|
|
|
#define RC2_INT unsigned int
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(HEADER_RC4_H)
|
|
|
|
#if !defined(RC4_INT)
|
|
|
|
/* using int types make the structure larger but make the code faster
|
|
|
|
* on most boxes I have tested - up to %20 faster. */
|
|
|
|
/*
|
|
|
|
* I don't know what does "most" mean, but declaring "int" is a must on:
|
|
|
|
* - Intel P6 because partial register stalls are very expensive;
|
|
|
|
* - elder Alpha because it lacks byte load/store instructions;
|
|
|
|
*/
|
|
|
|
#define RC4_INT unsigned int
|
|
|
|
#endif
|
|
|
|
#if !defined(RC4_CHUNK)
|
|
|
|
/*
|
|
|
|
* This enables code handling data aligned at natural CPU word
|
|
|
|
* boundary. See crypto/rc4/rc4_enc.c for further details.
|
|
|
|
*/
|
|
|
|
#undef RC4_CHUNK
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
|
|
|
|
/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
|
|
|
|
* %20 speed up (longs are 8 bytes, int's are 4). */
|
|
|
|
#ifndef DES_LONG
|
|
|
|
#define DES_LONG unsigned long
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
|
|
|
|
#define CONFIG_HEADER_BN_H
|
|
|
|
#define BN_LLONG
|
|
|
|
|
|
|
|
/* Should we define BN_DIV2W here? */
|
|
|
|
|
|
|
|
/* Only one for the following should be defined */
|
|
|
|
#undef SIXTY_FOUR_BIT_LONG
|
|
|
|
#undef SIXTY_FOUR_BIT
|
|
|
|
#define THIRTY_TWO_BIT
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)
|
|
|
|
#define CONFIG_HEADER_RC4_LOCL_H
|
|
|
|
/* if this is defined data[i] is used instead of *data, this is a %20
|
|
|
|
* speedup on x86 */
|
|
|
|
#define RC4_INDEX
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
|
|
|
|
#define CONFIG_HEADER_BF_LOCL_H
|
|
|
|
#undef BF_PTR
|
|
|
|
#endif /* HEADER_BF_LOCL_H */
|
|
|
|
|
|
|
|
#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
|
|
|
|
#define CONFIG_HEADER_DES_LOCL_H
|
|
|
|
#ifndef DES_DEFAULT_OPTIONS
|
|
|
|
/* the following is tweaked from a config script, that is why it is a
|
|
|
|
* protected undef/define */
|
|
|
|
#ifndef DES_PTR
|
|
|
|
#undef DES_PTR
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* This helps C compiler generate the correct code for multiple functional
|
|
|
|
* units. It reduces register dependancies at the expense of 2 more
|
|
|
|
* registers */
|
|
|
|
#ifndef DES_RISC1
|
|
|
|
#undef DES_RISC1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef DES_RISC2
|
|
|
|
#undef DES_RISC2
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(DES_RISC1) && defined(DES_RISC2)
|
|
|
|
YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED !!!!!
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* Unroll the inner loop, this sometimes helps, sometimes hinders.
|
|
|
|
* Very mucy CPU dependant */
|
|
|
|
#ifndef DES_UNROLL
|
|
|
|
#undef DES_UNROLL
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* These default values were supplied by
|
|
|
|
* Peter Gutman <pgut001@cs.auckland.ac.nz>
|
|
|
|
* They are only used if nothing else has been defined */
|
|
|
|
#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && \
|
|
|
|
!defined(DES_UNROLL)
|
|
|
|
/* Special defines which change the way the code is built depending on the
|
|
|
|
CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
|
|
|
|
even newer MIPS CPU's, but at the moment one size fits all for
|
|
|
|
optimization options. Older Sparc's work better with only UNROLL, but
|
|
|
|
there's no way to tell at compile time what it is you're running on */
|
|
|
|
|
|
|
|
#if defined(sun) /* Newer Sparc's */
|
|
|
|
#define DES_PTR
|
|
|
|
#define DES_RISC1
|
|
|
|
#define DES_UNROLL
|
|
|
|
#elif defined(__ultrix) /* Older MIPS */
|
|
|
|
#define DES_PTR
|
|
|
|
#define DES_RISC2
|
|
|
|
#define DES_UNROLL
|
|
|
|
#elif defined(__osf1__) /* Alpha */
|
|
|
|
#define DES_PTR
|
|
|
|
#define DES_RISC2
|
|
|
|
#elif defined(_AIX) /* RS6000 */
|
|
|
|
/* Unknown */
|
|
|
|
#elif defined(__hpux) /* HP-PA */
|
|
|
|
/* Unknown */
|
|
|
|
#elif defined(__aux) /* 68K */
|
|
|
|
/* Unknown */
|
|
|
|
#elif defined(__dgux) /* 88K (but P6 in latest boxes) */
|
|
|
|
#define DES_UNROLL
|
|
|
|
#elif defined(__sgi) /* Newer MIPS */
|
|
|
|
#define DES_PTR
|
|
|
|
#define DES_RISC2
|
|
|
|
#define DES_UNROLL
|
|
|
|
#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
|
|
|
|
#define DES_PTR
|
|
|
|
#define DES_RISC1
|
|
|
|
#define DES_UNROLL
|
|
|
|
#endif /* Systems-specific speed defines */
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* DES_DEFAULT_OPTIONS */
|
|
|
|
#endif /* HEADER_DES_LOCL_H */
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|