comparison changes @ 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 5d99163f7e32
children 39d5d58461d6
comparison
equal deleted inserted replaced
143:5d99163f7e32 191:1c15b283127b
1 April 19th, 2005
2 v1.02
3 -- Added LTC_TEST support to gcm_test()
4 -- "pt/ct" can now be NULL in gcm_process() if you are processing zero bytes
5 -- Optimized GCM by removing the "double copy" handling of the plaintext/aad
6 -- Richard Outerbridge pointed out that x86_prof won't build on MACOS and that the manual
7 erroneously refers to "mycrypt" all over the place. Fixed.
8
9 April 17th, 2005
10 v1.01
11 ** Secure Science Corporation has supported this release cycle by sponsoring the development time taken. Their
12 continuing support of this project has helped me maintain a steady pace in order to keep LibTomCrypt up to date,
13 stable and more efficient.
14 -----------------------------------------------------------------------------------------------------
15 -- Updated base64_decode.c so if there are more than 3 '=' signs it would stop parsing
16 -- Merged in latest mpi that fixed a few bugs here and there
17 -- Updated OAEP encoder/decoder to catch when the hash output is too large
18 Cleaned up PSS code too
19 -- Andy Bontoft fixed a bug in my demos/tests/makefile.msvc ... seems "dsa_test.c" isn't an object
20 afterall. Thanks.
21 -- Made invalid ECC key sizes (configuration) not hard fault the program (it returns an error code now)
22 -- SAFER has been re-enabled after I was pointed to http://www.ciphersbyritter.com/NEWS2/95032301.HTM
23 [Mark Kotiaho]
24 -- Added CCM mode to the encauth list (now has EAX, OCB and CCM, c'est un treo magnifique!)
25 -- Added missing ASN.1 header to the RSA keys ... oops... now the rsa_export/import are FULLY compatible
26 with other libs like OpenSSL (comment: Test vectors would go a long way RSA...)
27 -- Manually merged in fix to the prime_random_ex() LTM function that ensures the 2nd MSB is set properly. Now
28 When you say "I want a 1024/8 byte RSA key" the MSB bit of the modulus is set as expected. Note I generally
29 don't view this as a "huge issue" but it's just one less nit to worry about. [Bryan Klisch]
30 -- A new CVS has been setup on my Athlon64 box... if you want developer access send me an email (and at this point the email would have to be awesome).
31 -- Updated API for ECB and CBC shell code. Now can process N whole blocks in one call (like $DEITY intended)
32 -- Introduced a new "hardware accel" framework that can be used to speed up cipher ECB, CBC and CTR mode
33 calls. Later on dependent code (e.g. OMAC, CCM) will be re-written to use the generic cbc/ctr functions. But now
34 if you [say] call ctr_encrypt() with a cipher descriptor that has hardware CTR it will automatically
35 be used (e.g. no code rewrites)
36 -- Now ships with 20% more love.
37 -- x86_prof now uses ECB shell code (hint: accelerators) and outputs cycles per BLOCK not byte. This will make it a bit
38 easier to compare hardware vs. software cipher implementations. It also emits timings for CBC and CTR modes
39 -- [Peter LaDow] fixed a typo w.r.t. XREALLOC macro (spelling counts kids!)
40 -- Fixed bug with __x86_64__ where ROL64/ROR64 with LTC_NO_ROLC would be the 32-bit versions instead...
41 -- Shipping with preliminary GCM code (disabled). It's buggy (stack overflow hidden somewhere). If anyone can spot it let me know.
42 -- Added Pelican MAC [it's an AES based fast MAC] to the list of supported MACs
43 -- Added LTC_FAST [and you can disable by defining LTC_NO_FAST] so that CBC and CTR mode XOR whole words [e.g. 32 or 64 bits] at a time
44 instead of one byte. On my AMD64 this reduced the overhead for AES-128-CBC from 4.56 cycles/byte to around 1 cycle/byte. This requires
45 that you either allow unaligned read/writes [e.g. x86_32/x86_64] or align all your data. It won't go out of it's way to ensure
46 aligned access. Only enabled for x86_* platforms by default since they allow unaligned read/writes.
47 -- Added LTC_FAST support to PMAC (drops the cycle/byte by about 9 cycles on my AMD64) [note: I later rewrote this prior to release]
48 -- Updated "profiled" target to work with the new directory layout
49 -- Added [demo only] optimized RC5-CTR code to x86_prof demo to show off how to make an accelerator
50 [This has been removed prior to release... It may re-appear later]
51 -- Added CCM acelerator callbacks to the list [now supports ECB, CTR, CBC and now CCM].
52 -- Added chapter to manual about accelerators (you know you want it)
53 -- Added "bswap" optimizations to x86 LOAD/STORE with big endian. Can be disabled by defining LTC_NO_BSWAP
54 -- LTC_NO_ASM is now the official "disable all non-portable stuff" macro. When defined it will make the code endian-neutral,
55 disable any form of ASM and disable LTC_FAST load/stores. Essentially build the library with this defined if you're having
56 trouble building the library (old GCCs for instance dislike the ROLc macro)
57 -- Added tomcrypt_mac.h and moved MAC/encMAC functions from tomcrypt_hash.h into it
58 -- Added "done" function to ciphers and the five chaining modes [and things like omac/pmac/etc]
59 -- Changed install group to "wheel" from "root".
60 -- Replaced // comments with /**/ so it will build on older UNIX-like platforms
61 -- x86_prof builds and runs with IntelCC fine now
62 -- Added "stest" build to intel CC to test static linked from within the dir (so you don't have to install to test)
63 -- Moved testing/benchmark into testprof directory and build it as part of the build. Now you can link against libtomcrypt_prof.a to get
64 testing info (hint: hardware developers ;-) )
65 -- Added CCM to tv_gen
66 -- Added demos to MSVC makefile
67 -- Removed -funroll-all-loops from GCC makefile and replaced with -funroll-loops which is a bit more sane (P4 ain't got much cache for the IDATA)
68 -- Fixed GCM prior to release and re-enabled it. It has not been optimized but it does conform when compiled with optimizations.
69 -- I've since optimized GCM and CCM. They're close in speed but GCM is more flexible imho (though EAX is more flexible than both)
70 -- For kicks I optimized the ECC code to use projective points. Gets between 3.21x (Prescott P4) to 4.53x (AMD64) times faster than before at 160-bit keys and the
71 speedup grows as the keysize grows. Basically removing most practical reasons to "not use the ECC code". Enjoy.
72 -- Added LTC_FAST support to OMAC/PMAC and doubled it's speed on my amd64 [faster on the P4 too I guess]
73 -- Added GCM to tv_gen
74 -- Removed "makefile.cygwin_dll" as it's not really used by anyone and not worth the effort (hell I hardly maintain the MSVC makefiles ...)
75 -- Updated a few files in the "misc" directory to have correct @file comments for doxygen
76 -- Removed "profile" target since it was slower anyways (go figure...)
77
78 December 31st, 2004
79 v1.00
80 -- Added "r,s == 0" check to dsa_verify_hash()
81 -- Added "multi block" helpers for hash, hmac, pmac and omac routines so you can process multiple non-adjacent
82 blocks of data with one call (added demos/multi.c to make sure they work)
83 -- Note these are not documented but they do have doxygen comments inside them
84 -- Also I don't use them in other functions (like pkcs_5_2()) because I didn't have the time. Job for the new LTC maintainer ;-)
85 -- Added tweaked Anubis test vectors and made it default (undefined ANUBIS_TWEAK to get original Anubis)
86 -- Merged in fix for mp_prime_random_ex() to deal with MSB and LSB "bugs"
87 -- Removed tim_exptmod() completely, updated several RSA functions (notably v15 and the decrypt/verify) so they
88 don't require a prng now
89 -- This release brought to you by the fine tunes of Macy Gray. We miss you.
90
91 December 23rd, 2004
92 v1.00rc1
93 -- Renamed "mycrypt_*" to "tomcrypt_*" to be more specific and professional
94 Now just include "tomcrypt.h" instead of "mycrypt.h" to get LTC ;-)
95 -- Cleaned up makefiles to ensure all headers are correctly installed
96 -- Added "rotate by constant" macros for portable, x86-32 and x86-64
97 You can disable this new code with LTC_NO_ROLC which is useful for older GCCs
98 -- Cleaned up detection of x86-64 so it works for ROL/ROR macros
99 -- Fixed rsa_import() so that it would detect multi-prime RSA keys and error appropriately
100 -- Sorted the source files by category and updated the makefiles appropriately
101 -- Added LTC_DER define so you can trim out DER code if not required
102 -- Fixed up RSA's decrypt functions changing "res" to "stat" to be more in sync
103 with the signature variables nomenclature. (no code change just renamed the arguments)
104 -- Removed all labels starting with __ and replaced with LBL_ to avoid namespace conflicts (Randy Howard)
105 -- Merged in LTM fix to mp_prime_random_ex() which zap'ed the most significant byte if the bit size
106 requested was a multiple of eight.
107 -- Made RSA_TIMING off by default as it's not terribly useful [and likely to be deprecated]
108 -- Renamed SMALL_CODE, CLEAN_STACK and NO_FILE to have a LTC_ prefix to avoid namespace collisions
109 with other programs. e.g. SMALL_CODE => LTC_SMALL_CODE
110 -- Zed Shaw pointed out that on certain systems installing libs as "root" isn't possible as the super-user
111 is not root. Now the makefiles allow this to be changed easily.
112 -- Renamed "struct _*_descriptor" to "struct ltc_*_descriptor" to avoid using a leading _
113 Also renamed _ARGCHK to LTC_ARGCHK
114 -- Zed Shaw pointed out that I still defined the prng structs in tomcrypt_prng.h even if they
115 weren't defined. This made undef'ing FORTUNA break the build.
116 -- Added LTC_NO_ASM to disable inline asm macros [ROL/ROR/etc]
117 -- Changed RSA decrypt functions to change the output length variable name from "keylen" to "outlen" to make
118 it more consistent.
119 -- Added the 64-bit Khazad block cipher [NESSIE]
120 -- Added the 128-bit Anubis block cipher [with key support for 128...320 bit keys] [NESSIE]
121 -- Changes to several MAC functions to rename input arguments to more sensible names
122 -- Removed FAST_PK support from dh_sys.c
123 -- Declared deskey() from des.c as static instead of a global
124 -- Added pretty much all practical GCC warning tests to the GCC [related] makefiles. These additional
125 warnings can easily be disabled for those with older copies of GCC [or even non GNU cc's]
126 -- Added doxygen @ tags to the code... phew that was a hell of a lot of [repetitive] work
127 -- Also added pre-configured Doxygen script.
128 -- Cleaned up quite a few functions [ciphers, pk, etc] to make the parameters naming style consistent
129 E.g. ciphers keys are called "skey" consistently now. The input to PK encryption is called "in", etc.
130 These changes require no code changes on the behalf of developers fortunately
131 -- Started a SAFER+ optimizer [does encrypt only] which shaves a good 30 or so cycles/byte on my AMD64
132 at an expense of huge code. It's in notes/etc/saferp_optimizer.c
133 -- DSA sign/verify now uses DER encoded output/inputs and no LTC style headers.
134 -- Matt Johnston found a missing semi-colon in mp_exptmod(). Fix has been merged in.
135
1 October 29th, 2004 136 October 29th, 2004
2 v0.99 -- Merged in the latest version of LTM which includes all of the recent bug fixes 137 v0.99 -- Merged in the latest version of LTM which includes all of the recent bug fixes
3 -- Deprecated LTMSSE and removed it (to be replaced with TFM later on) 138 -- Deprecated LTMSSE and removed it (to be replaced with TFM later on)
4 -- Stefan Arentz pointed out that mp_s_rmap should be extern 139 -- Stefan Arentz pointed out that mp_s_rmap should be extern
5 -- Kristian Gj�steen pointed out that there are typos in the 140 -- Kristian Gj�steen pointed out that there are typos in the