--- /dev/null
+/*
+ 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_ */