diff src/headers/tomcrypt_custom.h @ 191:1c15b283127b libtomcrypt-orig

Import of libtomcrypt 1.02 with manual path rename rearrangement etc
author Matt Johnston <matt@ucc.asn.au>
date Fri, 06 May 2005 13:23:02 +0000
parents
children 9cc34777b479 39d5d58461d6
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/headers/tomcrypt_custom.h	Fri May 06 13:23:02 2005 +0000
@@ -0,0 +1,196 @@
+/* This header is meant to be included before mycrypt.h in projects where
+ * you don't want to throw all the defines in a makefile. 
+ */
+#ifndef TOMCRYPT_CUSTOM_H_
+#define TOMCRYPT_CUSTOM_H_
+
+/* macros for various libc functions you can change for embedded targets */
+#define XMALLOC  malloc
+#define XREALLOC realloc
+#define XCALLOC  calloc
+#define XFREE    free
+
+#define XMEMSET  memset
+#define XMEMCPY  memcpy
+
+#define XCLOCK   clock
+#define XCLOCKS_PER_SEC CLOCKS_PER_SEC
+
+/* Use small code where possible */
+/* #define LTC_SMALL_CODE */
+
+/* Enable self-test test vector checking */
+#define LTC_TEST
+
+/* clean the stack of functions which put private information on stack */
+/* #define LTC_CLEAN_STACK */
+
+/* disable all file related functions */
+/* #define LTC_NO_FILE */
+
+/* disable all forms of ASM */
+/* #define LTC_NO_ASM */
+
+/* disable FAST mode */
+/* #define LTC_NO_FAST */
+
+/* disable BSWAP on x86 */
+/* #define LTC_NO_BSWAP */
+
+/* ---> Symmetric Block Ciphers <--- */
+#define BLOWFISH
+#define RC2
+#define RC5
+#define RC6
+#define SAFERP
+#define RIJNDAEL
+#define XTEA
+/* _TABLES tells it to use tables during setup, _SMALL means to use the smaller scheduled key format
+ * (saves 4KB of ram), _ALL_TABLES enables all tables during setup */
+#define TWOFISH
+#define TWOFISH_TABLES
+/* #define TWOFISH_ALL_TABLES */
+/* #define TWOFISH_SMALL */
+/* DES includes EDE triple-DES */
+#define DES
+#define CAST5
+#define NOEKEON
+#define SKIPJACK
+#define SAFER
+#define KHAZAD
+#define ANUBIS
+#define ANUBIS_TWEAK
+
+
+/* ---> Block Cipher Modes of Operation <--- */
+#define CFB
+#define OFB
+#define ECB
+#define CBC
+#define CTR
+
+/* ---> One-Way Hash Functions <--- */
+#define CHC_HASH
+#define WHIRLPOOL
+#define SHA512
+#define SHA384
+#define SHA256
+#define SHA224
+#define TIGER
+#define SHA1
+#define MD5
+#define MD4
+#define MD2
+#define RIPEMD128
+#define RIPEMD160
+
+/* ---> MAC functions <--- */
+#define HMAC
+#define OMAC
+#define PMAC
+#define PELICAN
+
+#if defined(PELICAN) && !defined(RIJNDAEL)
+   #error Pelican-MAC requires RIJNDAEL
+#endif
+
+/* ---> Encrypt + Authenticate Modes <--- */
+#define EAX_MODE
+#if defined(EAX_MODE) && !(defined(CTR) && defined(OMAC))
+   #error EAX_MODE requires CTR and OMAC mode
+#endif
+
+#define OCB_MODE
+#define CCM_MODE
+
+#define GCM_MODE
+/* Use 64KiB tables */
+#define GCM_TABLES 
+
+/* Various tidbits of modern neatoness */
+#define BASE64
+
+/* --> Pseudo Random Number Generators <--- */
+/* Yarrow */
+#define YARROW
+/* which descriptor of AES to use?  */
+/* 0 = rijndael_enc 1 = aes_enc, 2 = rijndael [full], 3 = aes [full] */
+#define YARROW_AES 0
+
+#if defined(YARROW) && !defined(CTR)
+   #error YARROW requires CTR chaining mode to be defined!
+#endif
+
+/* a PRNG that simply reads from an available system source */
+#define SPRNG
+
+/* The RC4 stream cipher */
+#define RC4
+
+/* Fortuna PRNG */
+#define FORTUNA
+/* reseed every N calls to the read function */
+#define FORTUNA_WD    10
+/* number of pools (4..32) can save a bit of ram by lowering the count */
+#define FORTUNA_POOLS 32
+
+/* Greg's SOBER128 PRNG ;-0 */
+#define SOBER128
+
+/* the *nix style /dev/random device */
+#define DEVRANDOM
+/* try /dev/urandom before trying /dev/random */
+#define TRY_URANDOM_FIRST
+
+/* ---> Public Key Crypto <--- */
+#define MRSA
+
+/* Digital Signature Algorithm */
+#define MDSA
+/* Max diff between group and modulus size in bytes */
+#define MDSA_DELTA     512
+/* Max DSA group size in bytes (default allows 4k-bit groups) */
+#define MDSA_MAX_GROUP 512
+
+/* Diffie-Hellman */
+#define MDH
+/* Supported Key Sizes */
+#define DH768
+#define DH1024
+#define DH1280
+#define DH1536
+#define DH1792
+#define DH2048
+#define DH2560
+#define DH3072
+#define DH4096
+
+/* ECC */
+#define MECC
+/* Supported Key Sizes */
+#define ECC160
+#define ECC192
+#define ECC224
+#define ECC256
+#define ECC384
+#define ECC521
+
+/* Include the MPI functionality?  (required by the PK algorithms) */
+#define MPI
+
+/* PKCS #1 (RSA) and #5 (Password Handling) stuff */
+#define PKCS_1
+#define PKCS_5
+
+/* Include ASN.1 DER (required by DSA/RSA) */
+#define LTC_DER
+#if defined(LTC_DER) && !defined(MPI) 
+   #error ASN.1 DER requires MPI functionality
+#endif
+
+#if (defined(MDSA) || defined(MRSA)) && !defined(LTC_DER)
+   #error RSA/DSA requires ASN.1 DER functionality, make sure LTC_DER is enabled
+#endif
+
+#endif
+