/*
 *
 *    Copyright (c) 2011-2015 Nest Labs, Inc.
 *    All rights reserved.
 *
 *    This document is the property of Nest. It is considered
 *    confidential and proprietary information.
 *
 *    This document may not be reproduced or transmitted in any form,
 *    in whole or in part, without the express written permission of
 *    Nest.
 *
 *    Description:
 *        Configuration options for emssl
 *
 *        NOTE: Unlike in OpenSSL, this file is generated by hand with the specific set
 *        of options required for Topaz.
 */

/* OpenSSL options
 */

#ifndef OPENSSL_CONF_H
#define OPENSSL_CONF_H

#ifndef OPENSSL_NO_ENGINE
#define OPENSSL_NO_ENGINE
#endif

#ifndef OPENSSL_NO_ERR
#define OPENSSL_NO_ERR
#endif

#ifndef OPENSSL_SMALL_FOOTPRINT
#define OPENSSL_SMALL_FOOTPRINT
#endif

#ifndef OPENSSL_NO_SHA512
#define OPENSSL_NO_SHA512
#endif

#ifndef OPENSSL_NO_SHA0
#define OPENSSL_NO_SHA0
#endif

#ifndef OPENSSL_NO_LOCKING
#define OPENSSL_NO_LOCKING
#endif

#ifndef OPENSSL_NO_LHASH
#define OPENSSL_NO_LHASH
#endif

#ifndef OPENSSL_NO_RSA
#define OPENSSL_NO_RSA
#endif

#ifndef OPENSSL_NO_DSA
#define OPENSSL_NO_DSA
#endif

#ifndef OPENSSL_NO_DEPRECATED
#define OPENSSL_NO_DEPRECATED
#endif

#ifndef OPENSSL_NO_FP_API
#define OPENSSL_NO_FP_API
#endif

#ifndef L_ENDIAN
#define L_ENDIAN
#endif

#ifndef NO_SYSLOG
#define NO_SYSLOG
#endif

#ifndef NO_CHMOD
#define NO_CHMOD
#endif

#ifndef TERMIOS
#define TERMIOS
#endif

#ifndef OPENSSL_EXPERIMENTAL_JPAKE
#define OPENSSL_EXPERIMENTAL_JPAKE
#endif

#ifndef THIRTY_TWO_BIT
#define THIRTY_TWO_BIT
#endif

#ifndef BN_LLONG
#define BN_LLONG
#endif

#ifndef OPENSSL_NO_EC2M
#define OPENSSL_NO_EC2M
#endif

#ifndef OPENSSL_BN_ASM_MONT
#define OPENSSL_BN_ASM_MONT
#endif

#ifndef OPENSSL_NO_UNIT_TEST
#define OPENSSL_NO_UNIT_TEST
#endif

/* emssl-specific compilation options
 */

#ifndef DISABLE_UNUSED_EC_FUNCTS
#define DISABLE_UNUSED_EC_FUNCTS
#endif

#ifndef SIMPLIFIED_MAKE_AFFINE
#define SIMPLIFIED_MAKE_AFFINE
#endif

#ifndef NO_ECPOINT_MULTIPLY_PRECOMP
#define NO_ECPOINT_MULTIPLY_PRECOMP
#endif

#ifndef NO_TIME_BN_RAND
#define NO_TIME_BN_RAND
#endif

#ifndef FORCE_SIMPLE_EC_METHOD
/* #define FORCE_SIMPLE_EC_METHOD */
#endif

#ifndef SIMPLE_EC_NO_FIELD_ENCODE_DECODE
/* #define SIMPLE_EC_NO_FIELD_ENCODE_DECODE */
#endif

#endif

