The unified diff between revisions [42edf60b..] and [494bb21e..] is displayed below. It can also be downloaded as a raw diff.
#
#
# delete "doc"
#
# delete "doc/crypt.pdf"
#
# delete "makefile"
#
# delete "src/misc/mpi/mpi.c"
#
# rename "doc/footer.html"
# to "doc/footer.html"
#
# rename "doc/header.html"
# to "doc/header.html"
#
# add_dir "doc"
#
# add_file "Makefile.in"
# content [614d14564e7a7c0ce719492a15b58da29a4c239d]
#
# patch "src/ciphers/aes/aes.c"
# from [acf0b0f144e6af631cd392c3c6b26b815e6dc583]
# to [2b4241346e0b72c826331a558b790b5154659390]
#
# patch "src/ciphers/des.c"
# from [564b40e4830f1c4ba7ae99082a0dc9ad977c2e18]
# to [061580d86b86d272ef888272b8e604f70d7eec9a]
#
# patch "src/ciphers/twofish/twofish.c"
# from [87568f99da6c907c787c9f87e03cd930fff264fe]
# to [cc01e431050c57f8fbe010bb7b71514a824e7f0d]
#
# patch "src/headers/tomcrypt.h"
# from [c7e9f7da84b55a66a7a0577b322a77e33eebe8e3]
# to [bceecf59bf6a6fd02640e37dc21590c4327c88f2]
#
# patch "src/headers/tomcrypt_custom.h"
# from [68365604caa219cc3f6e70a4006964d45acce4b5]
# to [baa9c701e90b3de1330da7c185a90cb5256ebc44]
#
# patch "src/misc/crypt/crypt.c"
# from [a5886363be53f8ab1e30d0312fb3cd5a2d3134e6]
# to [3e6e49ccaf2067e1ebe1df669eb58a927c43a6a0]
#
============================================================
--- Makefile.in 614d14564e7a7c0ce719492a15b58da29a4c239d
+++ Makefile.in 614d14564e7a7c0ce719492a15b58da29a4c239d
@@ -0,0 +1,259 @@
+# MAKEFILE for linux GCC
+#
+# Tom St Denis
+# Modified by Clay Culver
+
+# The version
+VERSION=1.02
+
+VPATH=@srcdir@
+srcdir=@srcdir@
+
+# Compiler and Linker Names
+#CC=gcc
+#LD=ld
+
+# Archiver [makes .a files]
+#AR=ar
+#ARFLAGS=r
+
+# Compilation flags. Note the += does not write over the user's CFLAGS!
+# The rest of the flags come from the parent Dropbear makefile
+CFLAGS += -c -I$(srcdir)/src/headers/ -I$(srcdir)/../
+
+# additional warnings (newer GCC 3.4 and higher)
+#CFLAGS += -Wsystem-headers -Wdeclaration-after-statement -Wbad-function-cast -Wcast-align -Wstrict-prototypes -Wmissing-prototypes \
+# -Wmissing-declarations -Wpointer-arith
+
+# optimize for SPEED
+#CFLAGS += -O3 -funroll-loops
+
+# add -fomit-frame-pointer. hinders debugging!
+CFLAGS += -fomit-frame-pointer
+
+# optimize for SIZE
+#CFLAGS += -Os -DLTC_SMALL_CODE
+
+# older GCCs can't handle the "rotate with immediate" ROLc/RORc/etc macros
+# define this to help
+#CFLAGS += -DLTC_NO_ROLC
+
+# compile for DEBUGING (required for ccmalloc checking!!!)
+#CFLAGS += -g3 -DLTC_NO_ASM
+
+#Output filenames for various targets.
+LIBNAME=libtomcrypt.a
+LIBTEST=testprof/libtomcrypt_prof.a
+HASH=hashsum
+CRYPT=encrypt
+SMALL=small
+PROF=x86_prof
+TV=tv_gen
+MULTI=multi
+TIMING=timing
+TEST=test
+
+#LIBPATH-The directory for libtomcrypt to be installed to.
+#INCPATH-The directory to install the header files for libtomcrypt.
+#DATAPATH-The directory to install the pdf docs.
+DESTDIR=
+LIBPATH=/usr/lib
+INCPATH=/usr/include
+DATAPATH=/usr/share/doc/libtomcrypt/pdf
+
+#Who do we install as?
+USER=root
+GROUP=wheel
+
+#List of objects to compile.
+
+#Leave MPI built-in or force developer to link against libtommath?
+#MPIOBJECT=src/misc/mpi/mpi.o
+#Dropbear uses libtommath
+MPIOBJECT=
+
+OBJECTS=src/ciphers/aes/aes_enc.o $(MPIOBJECT) src/ciphers/aes/aes.o \
+src/ciphers/blowfish.o src/ciphers/des.o \
+src/ciphers/twofish/twofish.o \
+src/hashes/helper/hash_memory.o src/hashes/helper/hash_memory_multi.o \
+src/hashes/md5.o src/hashes/sha1.o src/hashes/sha2/sha256.o \
+src/hashes/sha2/sha512.o src/hashes/whirl/whirl.o src/mac/hmac/hmac_done.o \
+src/mac/hmac/hmac_file.o src/mac/hmac/hmac_init.o src/mac/hmac/hmac_memory.o \
+src/mac/hmac/hmac_memory_multi.o src/mac/hmac/hmac_process.o src/mac/hmac/hmac_test.o \
+src/misc/base64/base64_decode.o \
+src/misc/base64/base64_encode.o src/misc/burn_stack.o src/misc/crypt/crypt.o \
+src/misc/crypt/crypt_argchk.o src/misc/crypt/crypt_cipher_descriptor.o \
+src/misc/crypt/crypt_cipher_is_valid.o src/misc/crypt/crypt_find_cipher.o \
+src/misc/crypt/crypt_find_cipher_any.o src/misc/crypt/crypt_find_cipher_id.o \
+src/misc/crypt/crypt_find_hash.o src/misc/crypt/crypt_find_hash_any.o \
+src/misc/crypt/crypt_find_hash_id.o src/misc/crypt/crypt_find_prng.o \
+src/misc/crypt/crypt_hash_descriptor.o src/misc/crypt/crypt_hash_is_valid.o \
+src/misc/crypt/crypt_prng_descriptor.o src/misc/crypt/crypt_prng_is_valid.o \
+src/misc/crypt/crypt_register_cipher.o src/misc/crypt/crypt_register_hash.o \
+src/misc/crypt/crypt_register_prng.o src/misc/crypt/crypt_unregister_cipher.o \
+src/misc/crypt/crypt_unregister_hash.o src/misc/crypt/crypt_unregister_prng.o \
+src/misc/error_to_string.o src/misc/mpi/is_prime.o src/misc/mpi/mpi_to_ltc_error.o \
+src/misc/mpi/rand_prime.o src/misc/zeromem.o \
+src/modes/cbc/cbc_decrypt.o src/modes/cbc/cbc_done.o src/modes/cbc/cbc_encrypt.o \
+src/modes/cbc/cbc_getiv.o src/modes/cbc/cbc_setiv.o src/modes/cbc/cbc_start.o \
+src/modes/ctr/ctr_decrypt.o src/modes/ctr/ctr_done.o src/modes/ctr/ctr_encrypt.o \
+src/modes/ctr/ctr_getiv.o src/modes/ctr/ctr_setiv.o src/modes/ctr/ctr_start.o \
+src/modes/ecb/ecb_decrypt.o src/modes/ecb/ecb_done.o src/modes/ecb/ecb_encrypt.o \
+src/modes/ofb/ofb_start.o src/pk/asn1/der/der_decode_integer.o \
+src/prngs/rng_get_bytes.o \
+src/prngs/rng_make_prng.o src/prngs/sober128.o src/prngs/sprng.o src/prngs/yarrow.o
+
+HEADERS=src/headers/tommath_superclass.h src/headers/tomcrypt_cfg.h \
+src/headers/tomcrypt_mac.h src/headers/tomcrypt_macros.h \
+src/headers/tomcrypt_custom.h src/headers/tomcrypt_argchk.h \
+src/headers/tomcrypt_cipher.h src/headers/tomcrypt_pk.h \
+src/headers/tommath_class.h src/headers/ltc_tommath.h src/headers/tomcrypt_hash.h \
+src/headers/tomcrypt_misc.h src/headers/tomcrypt.h src/headers/tomcrypt_pkcs.h \
+src/headers/tomcrypt_prng.h testprof/tomcrypt_test.h
+
+TESTOBJECTS=demos/test.o
+HASHOBJECTS=demos/hashsum.o
+CRYPTOBJECTS=demos/encrypt.o
+SMALLOBJECTS=demos/small.o
+TVS=demos/tv_gen.o
+MULTIS=demos/multi.o
+TIMINGS=demos/timing.o
+TESTS=demos/test.o
+
+#Files left over from making the crypt.pdf.
+LEFTOVERS=*.dvi *.log *.aux *.toc *.idx *.ilg *.ind *.out
+
+#Compressed filenames
+COMPRESSED=crypt-$(VERSION).tar.bz2 crypt-$(VERSION).zip
+
+#The default rule for make builds the libtomcrypt library.
+default:library
+
+#ciphers come in two flavours... enc+dec and enc
+src/ciphers/aes/aes_enc.o: src/ciphers/aes/aes.c src/ciphers/aes/aes_tab.c
+ $(CC) $(CFLAGS) -DENCRYPT_ONLY -c src/ciphers/aes/aes.c -o src/ciphers/aes/aes_enc.o
+
+#These are the rules to make certain object files.
+src/ciphers/aes/aes.o: src/ciphers/aes/aes.c src/ciphers/aes/aes_tab.c
+src/ciphers/twofish/twofish.o: src/ciphers/twofish/twofish.c src/ciphers/twofish/twofish_tab.c
+src/hashes/whirl/whirl.o: src/hashes/whirl/whirl.c src/hashes/whirl/whirltab.c
+src/pk/ecc/ecc.o: src/pk/ecc/ecc.c src/pk/ecc/ecc_sys.c
+src/pk/dh/dh.o: src/pk/dh/dh.c src/pk/dh/dh_sys.c
+src/hashes/sha2/sha512.o: src/hashes/sha2/sha512.c src/hashes/sha2/sha384.c
+src/hashes/sha2/sha256.o: src/hashes/sha2/sha256.c src/hashes/sha2/sha224.c
+
+#This rule makes the libtomcrypt library.
+#library: $(LIBTEST) $(LIBNAME)
+# Dropbear doesn't want test programs, since it relies on yarrow etc.
+library: $(LIBNAME)
+
+$(LIBTEST):
+ cd testprof ; CFLAGS="$(CFLAGS)" make
+
+$(LIBNAME): $(OBJECTS)
+ $(AR) $(ARFLAGS) $@ $(OBJECTS)
+ $(RANLIB) $(LIBNAME)
+
+#This rule makes the hash program included with libtomcrypt
+hashsum: library $(HASHOBJECTS)
+ $(CC) $(HASHOBJECTS) $(LIBNAME) -o $(HASH) $(WARN)
+
+#makes the crypt program
+crypt: library $(CRYPTOBJECTS)
+ $(CC) $(CRYPTOBJECTS) $(LIBNAME) -o $(CRYPT) $(WARN)
+
+#makes the small program
+small: library $(SMALLOBJECTS)
+ $(CC) $(SMALLOBJECTS) $(LIBNAME) -o $(SMALL) $(WARN)
+
+tv_gen: library $(TVS)
+ $(CC) $(TVS) $(LIBNAME) $(EXTRALIBS) -o $(TV)
+
+multi: library $(MULTIS)
+ $(CC) $(MULTIS) $(LIBNAME) -o $(MULTI)
+
+timing: library $(TIMINGS)
+ $(CC) $(TIMINGS) $(LIBTEST) $(LIBNAME) -o $(TIMING)
+
+test: library $(TESTS)
+ $(CC) $(TESTS) $(LIBTEST) $(LIBNAME) -o $(TEST)
+
+
+#This rule installs the library and the header files. This must be run
+#as root in order to have a high enough permission to write to the correct
+#directories and to set the owner and group to root.
+install: library docs
+ install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(LIBPATH)
+ install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(INCPATH)
+ install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(DATAPATH)
+ install -g $(GROUP) -o $(USER) $(LIBNAME) $(DESTDIR)$(LIBPATH)
+ install -g $(GROUP) -o $(USER) $(HEADERS) $(DESTDIR)$(INCPATH)
+ install -g $(GROUP) -o $(USER) doc/crypt.pdf $(DESTDIR)$(DATAPATH)
+
+install_lib: library
+ install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(LIBPATH)
+ install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(INCPATH)
+ install -g $(GROUP) -o $(USER) $(LIBNAME) $(DESTDIR)$(LIBPATH)
+ install -g $(GROUP) -o $(USER) $(HEADERS) $(DESTDIR)$(INCPATH)
+
+#This rule cleans the source tree of all compiled code, not including the pdf
+#documentation.
+clean:
+ rm -f `find . -type f | grep "[.]o" | xargs`
+ rm -f `find . -type f | grep "[.]lo" | xargs`
+ rm -f `find . -type f | grep "[.]a" | xargs`
+ rm -f `find . -type f | grep "[.]la" | xargs`
+ rm -f `find . -type f | grep "[.]obj" | xargs`
+ rm -f `find . -type f | grep "[.]lib" | xargs`
+ rm -f `find . -type f | grep "[.]exe" | xargs`
+ rm -f `find . -type f | grep "[.]gcda" | xargs`
+ rm -f `find . -type f | grep "[.]gcno" | xargs`
+ rm -f `find . -type f | grep "[.]il" | xargs`
+ rm -f `find . -type f | grep "[.]dyn" | xargs`
+ rm -f `find . -type f | grep "[.]dpi" | xargs`
+ rm -rf `find . -type d | grep "[.]libs" | xargs`
+ rm -f crypt.aux crypt.dvi crypt.idx crypt.ilg crypt.ind crypt.log crypt.toc
+ rm -f $(TV) $(PROF) $(SMALL) $(CRYPT) $(HASHSUM) $(MULTI) $(TIMING) $(TEST)
+ rm -rf doc/doxygen
+ rm -f doc/*.pdf
+
+#build the doxy files (requires Doxygen, tetex and patience)
+doxy:
+ doxygen
+ cd doc/doxygen/latex ; make ; mv -f refman.pdf ../../.
+ echo The huge doxygen PDF should be available as doc/refman.pdf
+
+#This builds the crypt.pdf file. Note that the rm -f *.pdf has been removed
+#from the clean command! This is because most people would like to keep the
+#nice pre-compiled crypt.pdf that comes with libtomcrypt! We only need to
+#delete it if we are rebuilding it.
+docs: crypt.tex
+ rm -f doc/crypt.pdf $(LEFTOVERS)
+ echo "hello" > crypt.ind
+ latex crypt > /dev/null
+ latex crypt > /dev/null
+ makeindex crypt.idx > /dev/null
+ latex crypt > /dev/null
+ dvipdf crypt
+ mv -ivf crypt.pdf doc/crypt.pdf
+ rm -f $(LEFTOVERS)
+
+docdvi: crypt.tex
+ echo hello > crypt.ind
+ latex crypt > /dev/null
+ latex crypt > /dev/null
+ makeindex crypt.idx
+ latex crypt > /dev/null
+
+#zipup the project (take that!)
+no_oops: clean
+ cd .. ; cvs commit
+
+zipup: no_oops docs
+ cd .. ; rm -rf crypt* libtomcrypt-$(VERSION) ; mkdir libtomcrypt-$(VERSION) ; \
+ cp -R ./libtomcrypt/* ./libtomcrypt-$(VERSION)/ ; \
+ cd libtomcrypt-$(VERSION) ; rm -rf `find . -type d | grep CVS | xargs` ; cd .. ; \
+ tar -cjvf crypt-$(VERSION).tar.bz2 libtomcrypt-$(VERSION) ; \
+ zip -9r crypt-$(VERSION).zip libtomcrypt-$(VERSION) ; \
+ gpg -b -a crypt-$(VERSION).tar.bz2 ; gpg -b -a crypt-$(VERSION).zip ; \
+ mv -fv crypt* ~ ; rm -rf libtomcrypt-$(VERSION)
============================================================
--- src/ciphers/aes/aes.c acf0b0f144e6af631cd392c3c6b26b815e6dc583
+++ src/ciphers/aes/aes.c 2b4241346e0b72c826331a558b790b5154659390
@@ -43,6 +43,7 @@
#define ECB_TEST rijndael_test
#define ECB_KS rijndael_keysize
+#if 0
const struct ltc_cipher_descriptor rijndael_desc =
{
"rijndael",
@@ -51,6 +52,7 @@ const struct ltc_cipher_descriptor rijnd
SETUP, ECB_ENC, ECB_DEC, ECB_TEST, ECB_DONE, ECB_KS,
NULL, NULL, NULL, NULL, NULL, NULL, NULL
};
+#endif
const struct ltc_cipher_descriptor aes_desc =
{
============================================================
--- src/ciphers/des.c 564b40e4830f1c4ba7ae99082a0dc9ad977c2e18
+++ src/ciphers/des.c 061580d86b86d272ef888272b8e604f70d7eec9a
@@ -20,6 +20,7 @@
#define EN0 0
#define DE1 1
+#if 0
const struct ltc_cipher_descriptor des_desc =
{
"des",
@@ -33,6 +34,7 @@ const struct ltc_cipher_descriptor des_d
&des_keysize,
NULL, NULL, NULL, NULL, NULL, NULL, NULL
};
+#endif
const struct ltc_cipher_descriptor des3_desc =
{
@@ -1518,6 +1520,7 @@ static void desfunc(ulong32 *block, cons
}
#endif
+#if 0
/**
Initialize the DES block cipher
@param key The symmetric key you wish to pass
@@ -1544,6 +1547,7 @@ int des_setup(const unsigned char *key,
return CRYPT_OK;
}
+#endif
/**
Initialize the 3DES-EDE block cipher
@@ -1577,6 +1581,7 @@ int des3_setup(const unsigned char *key,
return CRYPT_OK;
}
+#if 0
/**
Encrypts a block of text with DES
@param pt The input plaintext (8 bytes)
@@ -1614,6 +1619,7 @@ void des_ecb_decrypt(const unsigned char
STORE32H(work[0],pt+0);
STORE32H(work[1],pt+4);
}
+#endif
/**
Encrypts a block of text with 3DES-EDE
@@ -1658,6 +1664,7 @@ void des3_ecb_decrypt(const unsigned cha
STORE32H(work[1],pt+4);
}
+#if 0
/**
Performs a self-test of the DES block cipher
@return CRYPT_OK if functional, CRYPT_NOP if self-test has been disabled
@@ -1804,6 +1811,7 @@ int des_test(void)
return CRYPT_OK;
#endif
}
+#endif
int des3_test(void)
{
@@ -1841,12 +1849,14 @@ int des3_test(void)
#endif
}
+#if 0
/** Terminate the context
@param skey The scheduled key
*/
void des_done(symmetric_key *skey)
{
}
+#endif
/** Terminate the context
@param skey The scheduled key
@@ -1856,6 +1866,7 @@ void des3_done(symmetric_key *skey)
}
+#if 0
/**
Gets suitable key size
@param keysize [in/out] The length of the recommended key (in bytes). This function will store the suitable size back in this variable.
@@ -1870,6 +1881,7 @@ int des_keysize(int *keysize)
*keysize = 8;
return CRYPT_OK;
}
+#endif
/**
Gets suitable key size
============================================================
--- src/ciphers/twofish/twofish.c 87568f99da6c907c787c9f87e03cd930fff264fe
+++ src/ciphers/twofish/twofish.c cc01e431050c57f8fbe010bb7b71514a824e7f0d
@@ -43,12 +43,14 @@ const struct ltc_cipher_descriptor twofi
#define RS_POLY 0x14D
/* The 4x4 MDS Linear Transform */
+#if 0
static const unsigned char MDS[4][4] = {
{ 0x01, 0xEF, 0x5B, 0x5B },
{ 0x5B, 0xEF, 0xEF, 0x01 },
{ 0xEF, 0x5B, 0x01, 0xEF },
{ 0xEF, 0x01, 0xEF, 0x5B }
};
+#endif
/* The 4x8 RS Linear Transform */
static const unsigned char RS[4][8] = {
============================================================
--- src/headers/tomcrypt.h c7e9f7da84b55a66a7a0577b322a77e33eebe8e3
+++ src/headers/tomcrypt.h bceecf59bf6a6fd02640e37dc21590c4327c88f2
@@ -23,7 +23,8 @@ extern "C" {
#define MAXBLOCKSIZE 128
/* descriptor table size */
-#define TAB_SIZE 32
+/* Dropbear change - this should be smaller, saves some size */
+#define TAB_SIZE 4
/* error codes [will be expanded in future releases] */
enum {
============================================================
--- src/headers/tomcrypt_custom.h 68365604caa219cc3f6e70a4006964d45acce4b5
+++ src/headers/tomcrypt_custom.h baa9c701e90b3de1330da7c185a90cb5256ebc44
@@ -1,6 +1,9 @@
#ifndef TOMCRYPT_CUSTOM_H_
#define TOMCRYPT_CUSTOM_H_
+/* this will sort out which stuff based on the user-config in options.h */
+#include "../options.h"
+
/* macros for various libc functions you can change for embedded targets */
#define XMALLOC malloc
#define XREALLOC realloc
@@ -13,13 +16,13 @@
#define XCLOCK clock
#define XCLOCKS_PER_SEC CLOCKS_PER_SEC
-/* Use small code where possible */
-/* #define LTC_SMALL_CODE */
+#ifdef DROPBEAR_SMALL_CODE
+#define LTC_SMALL_CODE
+#endif
/* Enable self-test test vector checking */
-#ifndef LTC_NO_TEST
- #define LTC_TEST
-#endif
+/* Not for dropbear */
+//#define LTC_TEST
/* clean the stack of functions which put private information on stack */
/* #define LTC_CLEAN_STACK */
@@ -36,217 +39,51 @@
/* disable BSWAP on x86 */
/* #define LTC_NO_BSWAP */
-/* ---> Symmetric Block Ciphers <--- */
-#ifndef LTC_NO_CIPHERS
+#ifdef DROPBEAR_BLOWFISH_CBC
#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
-#ifndef LTC_NO_TABLES
- #define TWOFISH_TABLES
- /* #define TWOFISH_ALL_TABLES */
-#else
- #define TWOFISH_SMALL
#endif
-/* #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
-#endif /* LTC_NO_CIPHERS */
+#ifdef DROPBEAR_AES128_CBC
+#define RIJNDAEL
+#endif
+#ifdef DROPBEAR_TWOFISH128_CBC
+#define TWOFISH
-/* ---> Block Cipher Modes of Operation <--- */
-#ifndef LTC_NO_MODES
+/* enabling just TWOFISH_SMALL will make the binary ~1kB smaller, turning on
+ * TWOFISH_TABLES will make it a few kB bigger, but perhaps reduces runtime
+ * memory usage? */
+#define TWOFISH_SMALL
+/*#define TWOFISH_TABLES*/
+#endif
-#define CFB
-#define OFB
-#define ECB
+#ifdef DROPBEAR_3DES_CBC
+#define DES
+#endif
#define CBC
-#define CTR
-#endif /* LTC_NO_MODES */
-
-/* ---> One-Way Hash Functions <--- */
-#ifndef LTC_NO_HASHES
-
-#define CHC_HASH
-#define WHIRLPOOL
+#if defined(DROPBEAR_DSS) && defined(DSS_PROTOK)
#define SHA512
-#define SHA384
-#define SHA256
-#define SHA224
-#define TIGER
-#define SHA1
-#define MD5
-#define MD4
-#define MD2
-#define RIPEMD128
-#define RIPEMD160
-
-#endif /* LTC_NO_HASHES */
-
-/* ---> MAC functions <--- */
-#ifndef LTC_NO_MACS
-
-#define HMAC
-#define OMAC
-#define PMAC
-#define PELICAN
-
-#if defined(PELICAN) && !defined(RIJNDAEL)
- #error Pelican-MAC requires RIJNDAEL
#endif
-/* ---> Encrypt + Authenticate Modes <--- */
+#define SHA1
-#define EAX_MODE
-#if defined(EAX_MODE) && !(defined(CTR) && defined(OMAC))
- #error EAX_MODE requires CTR and OMAC mode
+#ifdef DROPBEAR_MD5_HMAC
+#define MD5
#endif
-#define OCB_MODE
-#define CCM_MODE
+#define HMAC
-#define GCM_MODE
-
-/* Use 64KiB tables */
-#ifndef LTC_NO_TABLES
- #define GCM_TABLES
-#endif
-
-#endif /* LTC_NO_MACS */
-
/* Various tidbits of modern neatoness */
#define BASE64
-/* --> Pseudo Random Number Generators <--- */
-#ifndef LTC_NO_PRNGS
-
-/* 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
-
-#endif /* LTC_NO_PRNGS */
-
-/* ---> Public Key Crypto <--- */
-#ifndef LTC_NO_PK
-
-#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 ECC192
-#define ECC224
-#define ECC256
-#define ECC384
-#define ECC521
-
-/* Include the MPI functionality? (required by the PK algorithms) */
-#define MPI
-
-#endif /* LTC_NO_PK */
-
-/* PKCS #1 (RSA) and #5 (Password Handling) stuff */
-#ifndef LTC_NO_PKCS
-
-#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 /* LTC_NO_PKCS */
-
-#endif
-
-
-/* THREAD management */
-
-#ifdef LTC_PTHREAD
-
-#include <pthread.h>
-
-#define LTC_MUTEX_GLOBAL(x) pthread_mutex_t x = PTHREAD_MUTEX_INITIALIZER;
-#define LTC_MUTEX_PROTO(x) extern pthread_mutex_t x;
-#define LTC_MUTEX_LOCK(x) pthread_mutex_lock(x);
-#define LTC_MUTEX_UNLOCK(x) pthread_mutex_unlock(x);
-
-#else
-
/* default no functions */
#define LTC_MUTEX_GLOBAL(x)
#define LTC_MUTEX_PROTO(x)
#define LTC_MUTEX_LOCK(x)
#define LTC_MUTEX_UNLOCK(x)
+#define FORTUNA_POOLS 0
#endif
============================================================
--- src/misc/crypt/crypt.c a5886363be53f8ab1e30d0312fb3cd5a2d3134e6
+++ src/misc/crypt/crypt.c 3e6e49ccaf2067e1ebe1df669eb58a927c43a6a0
@@ -15,6 +15,7 @@
Build strings, Tom St Denis
*/
+/*
const char *crypt_build_settings =
"LibTomCrypt " SCRYPT " (Tom St Denis, tomstdenis@gmail.com)\n"
"LibTomCrypt is public domain software.\n"
@@ -308,6 +309,7 @@ const char *crypt_build_settings =
"\n"
"\n\n\n"
;
+ */
/* $Source: /cvs/libtom/libtomcrypt/src/misc/crypt/crypt.c,v $ */