diff mycrypt_custom.h @ 143:5d99163f7e32 libtomcrypt-orig

import of libtomcrypt 0.99
author Matt Johnston <matt@ucc.asn.au>
date Sun, 19 Dec 2004 11:34:45 +0000
parents 6362d3854bb4
children 7ed585a2c53b
line wrap: on
line diff
--- a/mycrypt_custom.h	Tue Jun 15 14:07:21 2004 +0000
+++ b/mycrypt_custom.h	Sun Dec 19 11:34:45 2004 +0000
@@ -5,29 +5,29 @@
 #ifndef MYCRYPT_CUSTOM_H_
 #define MYCRYPT_CUSTOM_H_
 
-#ifdef CRYPT
-	#error mycrypt_custom.h should be included before mycrypt.h
-#endif
+/* macros for various libc functions you can change for embedded targets */
+#define XMALLOC  malloc
+#define XREALLOC realloc
+#define XCALLOC  calloc
+#define XFREE    free
 
-/* macros for various libc functions */
-#define XMALLOC malloc
-#define XREALLOC realloc
-#define XCALLOC calloc
-#define XFREE free
-#define XCLOCK clock
+#define XMEMSET  memset
+#define XMEMCPY  memcpy
+
+#define XCLOCK   clock
 #define XCLOCKS_PER_SEC CLOCKS_PER_SEC
 
 /* Use small code where possible */
-#define SMALL_CODE
+// #define SMALL_CODE
 
 /* Enable self-test test vector checking */
 #define LTC_TEST
 
 /* clean the stack of functions which put private information on stack */
-//#define CLEAN_STACK
+// #define CLEAN_STACK
 
 /* disable all file related functions */
-//#define NO_FILE
+// #define NO_FILE
 
 /* various ciphers */
 #define BLOWFISH
@@ -37,16 +37,23 @@
 #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
+// #define TWOFISH_ALL_TABLES
+// #define TWOFISH_SMALL
+/* DES includes EDE triple-DES */
 #define DES
 #define CAST5
 #define NOEKEON
 #define SKIPJACK
+/* SAFER code isn't public domain.  It appears to be free to use 
+ * but has been disabled by default to avoid any such problems 
+ */
+//#define SAFER
 
-/* modes of operation */
+/* block cipher modes of operation */
 #define CFB
 #define OFB
 #define ECB
@@ -54,6 +61,7 @@
 #define CTR
 
 /* hash functions */
+#define CHC_HASH
 #define WHIRLPOOL
 #define SHA512
 #define SHA384
@@ -78,21 +86,48 @@
 
 /* Various tidbits of modern neatoness */
 #define BASE64
+
+/* 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
+
 #define SPRNG
 #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
+
 #define DEVRANDOM
 #define TRY_URANDOM_FIRST
 
 /* Public Key Neatoness */
 #define MRSA
-#define RSA_TIMING                   // enable RSA side channel timing prevention 
+/* enable RSA side channel timing prevention */
+#define RSA_TIMING
+
+/* 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
-#define MECC
+/* Supported Key Sizes */
 #define DH768
 #define DH1024
 #define DH1280
@@ -102,19 +137,23 @@
 #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 and 5 stuff */
+/* PKCS #1 (RSA) and #5 (Password Handling) stuff */
 #define PKCS_1
 #define PKCS_5
 
-#include <mycrypt.h>
-
 #endif