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