Skip to content

Commit 6ac9952

Browse files
Tom St Denissjaeckel
authored andcommitted
added libtomcrypt-1.01
1 parent bfc2f5b commit 6ac9952

259 files changed

Lines changed: 7197 additions & 2280 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

LICENSE

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
LibTomCrypt is public domain. As should all quality software be.
22

3-
All of the software was either written by or donated to Tom St Denis for the purposes
4-
of this project. The only exception is the SAFER.C source which has no known
5-
license status (assumed copyrighted) which is why SAFER.C is shipped as disabled.
6-
73
Tom St Denis
84

95

TODO

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

changes

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,72 @@
1+
April 17th, 2005
2+
v1.01
3+
** Secure Science Corporation has supported this release cycle by sponsoring the development time taken. Their
4+
continuing support of this project has helped me maintain a steady pace in order to keep LibTomCrypt up to date,
5+
stable and more efficient.
6+
-----------------------------------------------------------------------------------------------------
7+
-- Updated base64_decode.c so if there are more than 3 '=' signs it would stop parsing
8+
-- Merged in latest mpi that fixed a few bugs here and there
9+
-- Updated OAEP encoder/decoder to catch when the hash output is too large
10+
Cleaned up PSS code too
11+
-- Andy Bontoft fixed a bug in my demos/tests/makefile.msvc ... seems "dsa_test.c" isn't an object
12+
afterall. Thanks.
13+
-- Made invalid ECC key sizes (configuration) not hard fault the program (it returns an error code now)
14+
-- SAFER has been re-enabled after I was pointed to http://www.ciphersbyritter.com/NEWS2/95032301.HTM
15+
[Mark Kotiaho]
16+
-- Added CCM mode to the encauth list (now has EAX, OCB and CCM, c'est un treo magnifique!)
17+
-- Added missing ASN.1 header to the RSA keys ... oops... now the rsa_export/import are FULLY compatible
18+
with other libs like OpenSSL (comment: Test vectors would go a long way RSA...)
19+
-- Manually merged in fix to the prime_random_ex() LTM function that ensures the 2nd MSB is set properly. Now
20+
When you say "I want a 1024/8 byte RSA key" the MSB bit of the modulus is set as expected. Note I generally
21+
don't view this as a "huge issue" but it's just one less nit to worry about. [Bryan Klisch]
22+
-- 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).
23+
-- Updated API for ECB and CBC shell code. Now can process N whole blocks in one call (like $DEITY intended)
24+
-- Introduced a new "hardware accel" framework that can be used to speed up cipher ECB, CBC and CTR mode
25+
calls. Later on dependent code (e.g. OMAC, CCM) will be re-written to use the generic cbc/ctr functions. But now
26+
if you [say] call ctr_encrypt() with a cipher descriptor that has hardware CTR it will automatically
27+
be used (e.g. no code rewrites)
28+
-- Now ships with 20% more love.
29+
-- x86_prof now uses ECB shell code (hint: accelerators) and outputs cycles per BLOCK not byte. This will make it a bit
30+
easier to compare hardware vs. software cipher implementations. It also emits timings for CBC and CTR modes
31+
-- [Peter LaDow] fixed a typo w.r.t. XREALLOC macro (spelling counts kids!)
32+
-- Fixed bug with __x86_64__ where ROL64/ROR64 with LTC_NO_ROLC would be the 32-bit versions instead...
33+
-- Shipping with preliminary GCM code (disabled). It's buggy (stack overflow hidden somewhere). If anyone can spot it let me know.
34+
-- Added Pelican MAC [it's an AES based fast MAC] to the list of supported MACs
35+
-- 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
36+
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
37+
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
38+
aligned access. Only enabled for x86_* platforms by default since they allow unaligned read/writes.
39+
-- 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]
40+
-- Updated "profiled" target to work with the new directory layout
41+
-- Added [demo only] optimized RC5-CTR code to x86_prof demo to show off how to make an accelerator
42+
[This has been removed prior to release... It may re-appear later]
43+
-- Added CCM acelerator callbacks to the list [now supports ECB, CTR, CBC and now CCM].
44+
-- Added chapter to manual about accelerators (you know you want it)
45+
-- Added "bswap" optimizations to x86 LOAD/STORE with big endian. Can be disabled by defining LTC_NO_BSWAP
46+
-- LTC_NO_ASM is now the official "disable all non-portable stuff" macro. When defined it will make the code endian-neutral,
47+
disable any form of ASM and disable LTC_FAST load/stores. Essentially build the library with this defined if you're having
48+
trouble building the library (old GCCs for instance dislike the ROLc macro)
49+
-- Added tomcrypt_mac.h and moved MAC/encMAC functions from tomcrypt_hash.h into it
50+
-- Added "done" function to ciphers and the five chaining modes [and things like omac/pmac/etc]
51+
-- Changed install group to "wheel" from "root".
52+
-- Replaced // comments with /**/ so it will build on older UNIX-like platforms
53+
-- x86_prof builds and runs with IntelCC fine now
54+
-- Added "stest" build to intel CC to test static linked from within the dir (so you don't have to install to test)
55+
-- Moved testing/benchmark into testprof directory and build it as part of the build. Now you can link against libtomcrypt_prof.a to get
56+
testing info (hint: hardware developers ;-) )
57+
-- Added CCM to tv_gen
58+
-- Added demos to MSVC makefile
59+
-- 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)
60+
-- Fixed GCM prior to release and re-enabled it. It has not been optimized but it does conform when compiled with optimizations.
61+
-- 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)
62+
-- 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
63+
speedup grows as the keysize grows. Basically removing most practical reasons to "not use the ECC code". Enjoy.
64+
-- Added LTC_FAST support to OMAC/PMAC and doubled it's speed on my amd64 [faster on the P4 too I guess]
65+
-- Added GCM to tv_gen
66+
-- Removed "makefile.cygwin_dll" as it's not really used by anyone and not worth the effort (hell I hardly maintain the MSVC makefiles ...)
67+
-- Updated a few files in the "misc" directory to have correct @file comments for doxygen
68+
-- Removed "profile" target since it was slower anyways (go figure...)
69+
170
December 31st, 2004
271
v1.00
372
-- Added "r,s == 0" check to dsa_verify_hash()

0 commit comments

Comments
 (0)