Mercurial > dropbear
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 +