ckconfig.h   [plain text]


/*
	File:		ckconfig.h

	Contains:	Common config info.


	Copyright:	Copyright (c) 1998,2011,2014 Apple Inc.
                All rights reserved.

	Change History (most recent first):

	<7>	10/06/98	ap		Changed to compile with C++.

	To Do:
*/

/* Copyright (c) 1998,2011,2014 Apple Inc.  All Rights Reserved.
 *
 * NOTICE: USE OF THE MATERIALS ACCOMPANYING THIS NOTICE IS SUBJECT
 * TO THE TERMS OF THE SIGNED "FAST ELLIPTIC ENCRYPTION (FEE) REFERENCE
 * SOURCE CODE EVALUATION AGREEMENT" BETWEEN APPLE, INC. AND THE
 * ORIGINAL LICENSEE THAT OBTAINED THESE MATERIALS FROM APPLE,
 * INC.  ANY USE OF THESE MATERIALS NOT PERMITTED BY SUCH AGREEMENT WILL
 * EXPOSE YOU TO LIABILITY.
 ***************************************************************************
 */

#ifndef	_CK_CONFIG_H_
#define _CK_CONFIG_H_

/*
 * Common build flags.
 */
#define DEBUG_ENGINE	0

#define ENGINE_127_BITS	0	/* hard-coded 127 elliptic() */

/*
 * These flags are set en masse, one set per target in the XCode project file or 
 * Makefile. They determine what gets compiled into the library. Every flag
 * has to be defined for every configureation - preprocessors directives use
 * #if, not #ifdef. 
 */
 
#ifdef	CK_SECURITY_BUILD
/* 
 * Standard Security.framework build
 */
#define	CRYPTKIT_DER_ENABLE	    1	    /* DER encoding support */
#define	CRYPTKIT_LIBMD_DIGEST	    1	    /* use CommonCrypto digests */
#define CRYPTKIT_ELL_PROJ_ENABLE    1	    /* elliptic projection */
#define CRYPTKIT_ECDSA_ENABLE	    1	    /* ECDSA (requires ELL_PROJ_ENABLE) */
#define CRYPTKIT_CIPHERFILE_ENABLE  0	    /* cipherfile w/symmetric encryption */
#define CRYPTKIT_SYMMETRIC_ENABLE   0	    /* symmetric encryption */
#define CRYPTKIT_ASYMMETRIC_ENABLE  1	    /* asymmetric encryption */
#define CRYPTKIT_MD5_ENABLE	    1	    /* MD5 hash */
#define CRYPTKIT_SHA1_ENABLE	    1	    /* SHA1 hash - needed for GHMAX_LEGACY */
#define CRYPTKIT_HMAC_LEGACY	    1
#define CRYPTKIT_KEY_EXCHANGE	    0	    /* FEE key exchange */
#define CRYPTKIT_HIGH_LEVEL_SIG	    0	    /* high level one-shot signature */
#define CRYPTKIT_GIANT_STACK_ENABLE 0	    /* cache of giants */

#elif	defined(CK_STANDALONE_BUILD)
/*
 * Standalone library build
 */
#define	CRYPTKIT_DER_ENABLE	    0	    
#define	CRYPTKIT_LIBMD_DIGEST	    0	    
#define CRYPTKIT_ELL_PROJ_ENABLE    1	
#define CRYPTKIT_ECDSA_ENABLE	    1	   
#define CRYPTKIT_CIPHERFILE_ENABLE  1	
#define CRYPTKIT_SYMMETRIC_ENABLE   1	
#define CRYPTKIT_ASYMMETRIC_ENABLE  1	
#define CRYPTKIT_MD5_ENABLE	    1
#define CRYPTKIT_SHA1_ENABLE	    1
#define CRYPTKIT_HMAC_LEGACY	    0
#define CRYPTKIT_KEY_EXCHANGE	    1
#define CRYPTKIT_HIGH_LEVEL_SIG	    1
#define CRYPTKIT_GIANT_STACK_ENABLE 1

#elif	defined(CK_MINIMUM_SIG_BUILD)
/*
 * Standalone, just ElGamal signature and key generation
 */
#define	CRYPTKIT_DER_ENABLE	    0	    
#define	CRYPTKIT_LIBMD_DIGEST	    0	    
#define CRYPTKIT_ELL_PROJ_ENABLE    0
#define CRYPTKIT_ECDSA_ENABLE	    0	   
#define CRYPTKIT_CIPHERFILE_ENABLE  0
#define CRYPTKIT_SYMMETRIC_ENABLE   0	
#define CRYPTKIT_ASYMMETRIC_ENABLE  0
#define CRYPTKIT_MD5_ENABLE	    1
/* FIXME convert native ElGamal to use SHA1! */
#define CRYPTKIT_SHA1_ENABLE	    0
#define CRYPTKIT_HMAC_LEGACY	    0
#define CRYPTKIT_KEY_EXCHANGE	    0	
#define CRYPTKIT_HIGH_LEVEL_SIG	    0
#define CRYPTKIT_GIANT_STACK_ENABLE 1

#else

#error You must supply a build configuration. 
#endif

#endif	/* _CK_CONFIG_H_ */