1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648 |
- July 1st, 2018
- v1.18.2
-
-
-
-
-
-
-
-
-
-
- January 22nd, 2018
- v1.18.1
-
-
-
-
-
-
-
-
-
- October 10th, 2017
- v1.18.0
-
-
-
-
-
-
-
- thanks to Raphaël Jamet
-
-
-
- the hash algorithms from overflowing
-
- from a dynamic language like Python, as shown in his pyTomCrypt
-
- in OpenSSL/GnuTLS compatible format
-
-
-
- XTS mode and RSA private key operations with keys without CRT parameters
-
-
-
- against Google's "Wycheproof" and Kudelski Security's "CDF"
-
-
- Mac OS X, Windows (32&64bit, Cygwin, MingW & MSVC) ...
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- May 12th, 2007
- v1.17
- another to silence MSVC warnings.
-
-
-
-
-
-
-
-
-
-
-
- December 16th, 2006
- v1.16
- so the code should be considered frozen now.
-
- at runtime.
-
-
-
-
-
-
-
- would return CRYPT_OK to the caller
-
- bug? Also fixed. :-)
-
-
- but they're not as easy to parse and I got a lot of other things to do. Regression!
-
- All of the errors were in cleaning up from heap failures. So they were not likely to be triggered in normal usage
- Made similar fixes to the RSA and DSA code (my bad)
-
-
-
-
- November 17th, 2006
- v1.15
- Fortunately sha256_init cannot fail (as of v1.14) :-)
-
-
-
-
- smaller than the block size of the cipher, e.g. if you have a 4-byte buffer and you tell pmac_done that you want
- a 4-byte TAG it will store 4 bytes but return an outlen of 5.
-
-
-
- (update: I had to fix it to include the digestInfo and what not. Bad Andreas, bad! hehehe)
-
-
-
-
-
-
-
- Valgrind to debug your code (reported by Andreas Lange)
-
-
- hashes defined.
-
-
- parameter you pass to ctr_start(), otherwise it will be LTC compliant (e.g. encrypt then increment)
-
-
-
-
- hybrid compressed)
-
-
-
-
-
-
-
- to mask it with 0xFF. Thanks. Fixed.
- August 0x1E, 0x07D6
- v1.14
-
-
- Decoder [non-flexi decoder that is] is more strict now and requires a match.
-
- nobody reads it. :-)
-
-
-
- Shaved 4 cycles on a Prescott (Intel P4)
- Requires you align your gcm_state on a 16 byte boundary, see gcm_memory() for more info
-
-
-
-
-
-
- June 17th, 2006
- v1.13
- if I ever make fortuna pluggable
-
-
- they're unsigned long
-
-
- do this (most do though).
-
- May 29th, 2006
- v1.12
-
-
-
-
-
-
-
- (Thanks to John Kirk from Demonware)
-
- ECC point multiplier. It's fast, it's sexy and what's more it's hella fast [did I mention it's fast?]
- You can tune it somewhat with FP_LUT (default to 8) for look-up width.
- Read section 8.2 of the manual for more info.
- It is disabled by default, you'll have to build LTC with it defined to get it.
-
- April 4th, 2006
- v1.11
-
-
-
-
-
- Actually shaved a good chunk of time off and made the code smaller. By default with TFM the stock LTC point add/dbl functions
- will be totally omitted (ECC-256 make key times on a Prescott for old vs. new are 11.03M vs. 9.59M cycles)
-
-
-
-
-
-
-
-
-
-
- build LTC out of the box with c99 (note: it'll be slower as there is no asm in this case)
-
-
- February 11th, 2006
- v1.10
-
-
-
-
- ++ re-released as the rsa fix was incorrect (bad John bad ... hehehe) and I missed some NULLs in the static descriptor entry for ciphers
- January 26th, 2006
- v1.09
-
- configurations. Tunable [see tomcrypt_custom.h]
-
-
-
-
-
-
- November 24th, 2005
- v1.08
-
-
-
-
-
-
-
-
- November 18th, 2005
- v1.07
- I added support to set the mode of the counter at init time
-
-
-
-
-
-
-
- to it. Note this code has been disabled not because it doesn't work but because it hasn't been thoroughly
- analyzed. It does carry some advantages over RSA (slightly smaller public key, faster decrypt) but also
- some annoying "setup" issues like the primes are smaller which makes ECM factoring more plausible.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ECC point add/dbl/mul code linked in. Yeah space savings! Rah Rah Rah.
-
- build time (e.g. LTC_PTHREAD == pthreads)
-
-
-
-
-
- their structure in advance (thanks to MSVC for finding 3 bugs in it just prior to release! ... don't ask)
- August 1st, 2005
- v1.06
-
-
-
-
-
-
-
- Note that rsa_export() **ONLY** writes PKCS #1 formats
-
-
-
-
-
-
-
-
-
-
- June 27th, 2005
- v1.05
-
-
-
-
-
- All functions call *_is_valid() before using a descriptor index which means the respective table must be unlocked before
- it can be accessed. However, during the operation [e.g. CCM] if the descriptor has been altered the results will be
- undefined.
-
-
- June 15th, 2005
- v1.04
-
-
-
- This makes the ecc export format incompatible with 1.03 [it shouldn't change in the future]
-
- June 9th, 2005
- v1.03
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- one algorithm (say AES or SHA-256). Defines are LTC_NO_CIPHERS, LTC_NO_MODES, LTC_NO_HASHES, LTC_NO_MACS,
- LTC_NO_PRNGS, LTC_NO_PK, LTC_NO_PKCS
-
-
-
-
-
-
-
-
- is to be installed as
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Michael Brown - Solaris 10/uSPARCII
- Richard Outerbridge - MacOS
- Martin Carpenter - Solaris 8/uSPARCII [Thanks for cleaning up the scripts]
- Greg Rose - ... SunOS 5.8/SPARC [... what's with the SPARCS?]
- Matt Johnston - MacOS X [Thanks for pointing out GCC 4 problems with -Os]
- April 19th, 2005
- v1.02
-
-
-
-
- erroneously refers to "mycrypt" all over the place. Fixed.
- April 17th, 2005
- v1.01
- ** Secure Science Corporation has supported this release cycle by sponsoring the development time taken. Their
- continuing support of this project has helped me maintain a steady pace in order to keep LibTomCrypt up to date,
- stable and more efficient.
-
-
-
-
- Cleaned up PSS code too
-
- afterall. Thanks.
-
-
- [Mark Kotiaho]
-
-
- with other libs like OpenSSL (comment: Test vectors would go a long way RSA...)
-
- When you say "I want a 1024/8 byte RSA key" the MSB bit of the modulus is set as expected. Note I generally
- don't view this as a "huge issue" but it's just one less nit to worry about. [Bryan Klisch]
-
-
-
- calls. Later on dependent code (e.g. OMAC, CCM) will be re-written to use the generic cbc/ctr functions. But now
- if you [say] call ctr_encrypt() with a cipher descriptor that has hardware CTR it will automatically
- be used (e.g. no code rewrites)
-
-
- easier to compare hardware vs. software cipher implementations. It also emits timings for CBC and CTR modes
-
-
-
-
-
- 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
- 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
- aligned access. Only enabled for x86_* platforms by default since they allow unaligned read/writes.
-
-
-
- [This has been removed prior to release... It may re-appear later]
-
-
-
-
- disable any form of ASM and disable LTC_FAST load/stores. Essentially build the library with this defined if you're having
- trouble building the library (old GCCs for instance dislike the ROLc macro)
-
-
-
-
-
-
-
- testing info (hint: hardware developers ;-) )
-
-
-
-
-
-
- speedup grows as the keysize grows. Basically removing most practical reasons to "not use the ECC code". Enjoy.
-
-
-
-
-
- December 31st, 2004
- v1.00
-
-
- blocks of data with one call (added demos/multi.c to make sure they work)
-
-
-
-
-
- don't require a prng now
-
- December 23rd, 2004
- v1.00rc1
-
- Now just include "tomcrypt.h" instead of "mycrypt.h" to get LTC ;-)
-
-
- You can disable this new code with LTC_NO_ROLC which is useful for older GCCs
-
-
-
-
-
- with the signature variables nomenclature. (no code change just renamed the arguments)
-
-
- requested was a multiple of eight.
-
-
- with other programs. e.g. SMALL_CODE => LTC_SMALL_CODE
-
- is not root. Now the makefiles allow this to be changed easily.
-
- Also renamed _ARGCHK to LTC_ARGCHK
-
- weren't defined. This made undef'ing FORTUNA break the build.
-
-
- it more consistent.
-
-
-
-
-
-
- warnings can easily be disabled for those with older copies of GCC [or even non GNU cc's]
-
-
-
- E.g. ciphers keys are called "skey" consistently now. The input to PK encryption is called "in", etc.
- These changes require no code changes on the behalf of developers fortunately
-
- at an expense of huge code. It's in notes/etc/saferp_optimizer.c
-
-
- October 29th, 2004
- v0.99
-
-
-
- "test" makefile and minor issues in Yarrow and Sober [just cosmetics really]
-
- so changed the PRNG api to use "pexport" and "pimport"
-
-
-
-
-
-
-
- of the library.
-
-
- compatible with other crypto libs that use the format.
-
-
- mycrypt_custom.h and added -DSMALL_CODE to the default makefile
-
- (AFAIK not a security fix, just warm fuzzies)
-
-
- ++ Minor update, switch RSA to use the PKCS style CRT
- August 6th, 2004
- v0.98
-
-
-
-
-
- a stream cipher easily.
-
- entropy that was spread over all the pools isn't entirely lost when you export/import.
-
- PKCS #1 v2.0 padding. (updated other rsa_* functions)
-
-
- bytes. Also removed the % from the key setup to speed it up a bit.
-
-
-
- on non-i386 platforms by accident.
-
-
- reseed mechanism.
-
- the exported state for any given PRNG.
-
- that used to result in negative zeroes when you multiplied zero by a negative integer.
- (patch due to "Wolfgang Ehrhardt" <Wolfgang.Ehrhardt@munich.netsurf.de>)
-
- if any of the higher level functions fail [before you get to the padding] the result will be in
- a known state]. Applied to both v2 and v1.5 padding helpers.
-
-
-
- tinkering with.
-
- ++ New note, in order to use the optimized LOAD/STORE macros your platform
- must support unaligned 32/64 bit load/stores. The x86s support this
- but some [ARM for instance] do not. If your platform cannot perform
- unaligned operations you must use the endian neutral code which is safe for
- any sort of platform.
- July 23rd, 2004
- v0.97b
-
- descriptors directly in that function]
-
- (roughly 3x faster on a P4 Northwood). By default it will compile as ISO C portable
- code (when LTMSSE is undefined).
-
- Thanks to "Stefan Arentz" <stefan at organicnetwork.net>
-
- fix pkcs_5_2(). It now matches the output of another crypto library. Whoops... hehehe
-
-
-
- you'll have to do the XOR yourself.
-
- ++ API change for the PRNGs there now is a done() function per PRNG. You
- should call it when you are done with a prng state. So far it's
- not absolutely required (won't cause problems) but is a good idea to
- start.
- June 23rd, 2004
- v0.97a ++ Fixed several potentially crippling bugs... [read on]
-
- buffer overflows. [Zhi Chen]
-
-
-
-
- some C compilers.
-
- ++ This update has been tested with GCC [v3.3.3], ICC [v8] and MSVC [v6+SP6]
- all on a x86 P4 [GCC/ICC tested in Gentoo Linux, MSVC in WinXP]
- ++ Outcome: The bug Zhi Chen pointed out has been fixed. So have the bugs
- that Matt Johnston found.
- June 19th, 2004
- v0.97
-
-
-
-
-
-
-
- arrays (e.g. > 100 bytes or so). Only in non-critical functions (e.g. eax_init())
-
- an incorrect output size (too large). Fixed.
-
-
-
- rsa_verify_hash()
-
-
-
- May 30th, 2004
- v0.96
-
-
-
-
-
- from libtommath. I changed this to ltc_tommath.h to avoid any such problems.
-
-
-
-
-
-
-
-
-
-
- added #define RSA_TIMING which can turn on/off this feature.
-
-
-
- you're going to have to undefine SMALL_CODE ;-)
-
-
- May 12th, 2004
- v0.95
- the transforms are circulant. AES dropped 5KB and WHIRLPOOL dropped 13KB
- using the default build options on the x86.
-
- CLEAN_STACK has been defined.
-
-
-
-
-
-
-
-
-
-
-
-
-
- Feb 20th, 2004
- v0.94
-
-
- verifies against his test vectors. Hazaa for co-operation!
-
-
-
-
-
- shrunk some stack variables, removed non-required stack variables and added proper
- error conversion from MPI to LTC codes. I also spotted a few "off by one" error
- checking which could have been used to force the code to read past the end of
- the buffer (in theory, haven't checked if it would work) by a few bytes.
-
- also modded it so it stores in the output provided to the function (that is not on
- the local stack) which saves memory and time.
-
-
- Athlon XP [for comparison, SHA-512 clocks in at 77 cycles per byte]. This code uses the
- teams new sbox design (not the original NESSIE one).
-
- Jan 25th, 2004
- v0.93
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Dec 24th, 2003
- v0.92
-
-
- is included [speedup: slight, about 4k cycles on my Athlon].
-
- With both optimizations [e.g. TWOFISH_ALL_TABLES defined] a 128-bit Twofish key can now be scheduled
- in 26,000 cycles on my Athlon XP [as opposed to 49,000 before] when optimized for size.
-
-
- (e.g. not PK_PRIVATE or PK_PUBLIC)
-
-
-
- will return CRYPT_INVALID_HASH [to match what ecc_encrypt_key() will do]
-
-
- interface between the LTC PRNG's and the LTM generic prng prototype]. I also use a variable number of tests
- depending on the input size. This nicely speeds up most prime generation/testing within the library.
-
-
-
-
- I also optimized the compression functions of all but MD2 to not perform input copies when avoidable.
-
-
-
- demos/x86_prof.c]
-
- compares. Any fault (e.g. bug in code, compiler) in the routines is likely to show through. Doesn't
- stress test the key gen though...
-
- The code now builds with any config. Thanks.
-
-
- Updated HMAC code to use them too. Hazaa!
-
-
- conversion [now returns CRYPT_MEM, will fix it up better later]
-
-
- problems on platforms where CHAR_BIT != 8
-
-
- /dev/random].
-
-
-
- would not support that (does now just like the new OMAC code).
-
-
-
-
- on my Athlon (35 cycles per byte or 410.4Mbit/sec at 1795Mhz)
-
- Sept 25th, 2003
- v0.91
-
-
-
-
-
- Fixes another potential memory leak.
- Sept 7th, 2003
- v0.90
-
- when not required.
- == By default the KR code is not enabled [it's only a demo anyways!]
-
-
- buffer overflows. (API CHANGE)
-
-
- configuration of LibTomMath. Check out these comparisons on a 1.3Ghz Athlon XP, optimized for size,
- 768-bit, 4 vs. 10
- 1024-bit, 8 vs. 18
- 1280-bit, 12 vs. 34
- 1536-bit, 20 vs. 56
- 1792-bit 28 vs. 88
- 2048-bit, 40 vs. 124
- 2560-bit, 71 vs. 234
- 3072-bit, 113 vs. 386
- 4096-bit, 283 vs. 916
- Times are all in milliseconds for key generation. New primes times on the left. This makes the code binary
- incompatible with previous releases. However, this addition is long overdue as LibTomMath has supported DR
- reductions for quite some time.
-
-
- July 15th, 2003
- v0.89
-
-
- mp_prime_next_prime() from LibTomMath
-
- or cygwin.
- Jul 10th, 2003
- v0.88
-
- ciphers like blowfish and AES to be 32-bits. E.g. when unsigned long is 64-bits.
-
-
-
-
-
-
- Jun 19th, 2003
- v0.87
-
-
-
- Jun 15th, 2003
- v0.86
-
-
-
-
-
- with the global "errno"
-
-
-
- Jun 11th, 2003
- v0.85
-
-
-
- Jun 1st, 2003
- v0.84
-
- PK import routines to read past the end of the buffer.
-
-
- test from LibTomMath now
-
-
-
- Mar 29th, 2003
- v0.83
-
-
- buffer overflow.
-
- errors now.
-
- Mar 15th, 2003
- v0.82
-
-
-
- same fix to the rsa_sign_hash
-
- structures when being called. E.g. the indexes to the pad/ivs are not out of bounds
-
-
-
- Jan 16th, 2003
- v0.81
-
- operations on 521-bit keys now (translates to about 8ms on my Athlon XP). I also now use barrett reduction
- as much as possible. This sped the routine up quite a bit.
-
-
- (fix due to Mika Bostr?m)
-
-
- The makefile doesn't include any build options anymore
-
-
- Dec 16th, 2002
- v0.80
- with the digit shifting. In v0.79 I simply truncated without zeroing. It didn't cause problems during my
- testing but I fixed it up none the less.
-
-
- but the fixed code is more readable.
-
- also made the #define FAST_PK speed up signatures as well. Essentially FAST_PK tells the DH sub-system to
- limit any private exponent to 256-bits. Note that when FAST_PK is defined does not make the library
- binary or source incompatible with a copy of the library with it undefined.
-
-
- compatible with the previous release... sorry! I've performed the same fix to the ecc code as well.
-
-
-
- testing to ensure that in the loop that searches for the next candidate that the step never grows beyond
- 65000. Should have been testing for MP_DIGIT_MAX
-
- you include mycrypt.h. This allows you to add libtomcrypt to a project without completely changing your make
- system around. Note that you should use the makefile it writes to at least build the library initially.
-
-
-
-
- Dec 14th, 2002
- v0.79
- *_verify_hash functions. This prevents malformed packets from performing buffer overflows. I've also trimmed
- the packet header size [by 4 bytes].
-
-
-
-
-
-
-
- and is ever-so-slightly faster than before.
-
-
- sized numbers]. Also added a "low mem" variant that doesn't use more than 20KB [upto 4096 bit nums] of
- heap todo the calculation. Both are #define'able controlled
-
-
- not being used.
-
- often!]
-
-
- so they export as "unsigned" types saving 1 byte per bignum outputted. Not a lot but heck why not.
-
- Nov 28th, 2002
- v0.78
-
-
-
-
- Thanks to Jean-Luc Cooke for the "buzzword conformance" suggestion.
-
- are all that is to remain.
-
- bug where improperly made key packets could result in reading passed the end of the buffer. This means
- the code is no longer source compatible but still binary compatible.
-
-
- Nov 26th, 2002
- v0.77
- compared to the 121Mbit/sec before. It is 288 bytes bigger than before.
-
-
-
-
- step and the "rand_prime" function uses a modified sieve that avoids alot of un-needed bignum work.
-
- that a invalid value could have caused segfaults, etc...
-
- with v0.76. Essentially insteading of exporting the setting index like before I export the key size. Now
- if you ever re-configure which key settings are supported the lib will still be able to make use of your
- keys.
-
- rest. It achieves a rate of 425Mbit/sec with the new code compared to 314Mbit/sec before. The new blowfish
- object file is 7,813 bytes compared to 8,663 before and is 850 bytes smaller. So the code is both smaller and
- faster!
-
- and the code is only 78 bytes larger than the previous copy.
-
-
-
- Nov 25th, 2002
- v0.76
- downto 265KB using GCC 3.2 on my x86 box.
-
-
-
- correctly. I found this by temporarily changing one of the bytes of the test vectors. All the
- hashes check out [the demos/test.c would still have reported an error, just the wrong one].
-
- Nov 24th, 2002
- v0.75
-
- not be closed.
-
- In the next release "-Wconversion" will be enabled which will deal with all implicit casts.
- Nov 22nd, 2002 [later in the day]
- v0.74
-
-
-
-
-
- Nov 22nd, 2002
- v0.73
-
-
-
- able todo since the SPRNG has no state...
-
-
- and like it :-). This way the built library is a tad smaller
-
- Nov 21th, 2002
- v0.72
- The math still worked out fine because in effect it was performing a Fermat test. Tested the new code and it
- works properly
-
-
-
-
- to
- Nov 19th, 2002
- v0.71
- but I really need the help! See my website http://tom.iahu.ca/help_tom.html for more details. Please help
- if you can!
-
-
- In windows you can either use GCC 2.95.3 or try your luck with 3.2 It seems that
- "-fomit-frame-pointer" is broken in the windows build [but not the linux x86 build???]
- If you simply must use 3.2 then I suggest you limit the optimizations to simply "-O2"
-
- CRYPT_ERROR
-
-
- getting me motivated to make some much needed updates to the library!
-
-
-
-
- required nor a good a idea [double free].
-
-
- and count # of ops performed. This is more suitable than say encrypting 10 million blocks on a slow processor
- where it could take minutes!
-
-
- provides PKCS support...
-
-
-
-
-
-
- function
- -- check out my CV at http://tom.iahu.ca/cv.html
-
-
-
-
-
- Nov 12th, 2002
- v0.70
-
-
-
-
-
-
-
- would be from the developer themselves.
-
- too well as a block cipher.
-
-
-
- In future releases functions will return things other than CRYPT_ERROR on error to give more useful
- thread safe error reporting. The manual will be updated to reflect this. For this release all
- errors are returned as CRYPT_ERROR (except as noted) but in future releases this will change.
-
- Nov 11th, 2002
- v0.69
-
- Nov 8th, 2002
- v0.68
-
-
-
-
- respective ciphers can use.
-
- Oct 16th, 2002
- v0.67
- header files "*.h" from the base of this project into your global include path.
-
-
-
- move the first argument to the next to last.
-
-
- associated with. That is a 1024-bit DH key will have a 1025-bit prime as the modulus
-
-
-
-
-
-
-
-
- Returns int now instead of void.
- Sept 24th, 2002
- v0.66
- tests meaning its possible to run on RNG less platforms
-
-
- time.
-
- Code ships in unix LF format by default now too... will still build in MSVC and all... but if you want
- to read the stuff you'll have to convert it
-
- Sept 20th, 2002
- v0.65
- importantly he pointed out the math lib is not really required. He's also tested the lib on 18
- different platforms. According to him with only a few troubles [lack of /dev/random, etc] the
- library worked as it was supposed to. You can find the list at
- http://www.bitkeeper.com/Products.BitKeeper.Platforms.html
-
-
-
- Sept 19th, 2002
- v0.64
-
-
-
-
- of all the build time options. Useful for debugging since you can send that to me and I will know what
- exactly you had set for the mycrypt_cfg.h file.
-
- configure the library for your platform. Using this I boosted RC5 from 660Mbit/sec to 785Mbit/sec on my
- Athlon box. See "mycrypt_cfg.h" for more information.
- Sept 11th, 2002
- v0.63
-
-
- Aug 29th, 2002
- v0.62
- Aug 9th, 2002
- v0.61
- Aug 8th, 2002
- v0.60
- Aug 7th, 2002
- v0.59
-
-
- Aug 3rd, 2002
- v0.58
-
-
- now they only make one call to ctr_encrypt()/ctr_decrypt().
- Aug 2nd, 2002
- v0.57
-
- key size. By default rsa_encrypt() will choose to use a 256-bit key but the cipher can turn that
- down if required.
-
-
- N then your modulus must be of length 1+3N. So to sign a message with say SHA-384 [48 bytes] you need a
- 145 byte (1160 bits) modulus. This is all in the manual now.
-
- cipher/hash call
-
- ++ (added just after I uploaded...)
- MD4 process() now handles input buffers > 64 bytes
- Aug 1st, 2002
- v0.56
-
-
- to mess up.
-
-
-
- can use them with less confusion.
- July 29th, 2002
- v0.55
- library. Use AES or something else cuz I really hate Blowfish at this stage....
-
- July 19th, 2002
- v0.54
-
- July 18th, 2002
- v0.53
-
- with an invalid index ever now.
-
- July 12th, 2002
- v0.52
- all the routines...
-
-
-
-
-
- the CTR code from v0.52 will be incompatible [binary wise] with previous releases but it makes more
- sense this way.
-
- must have {} braces around it.
-
-
- be part of the table...
-
-
-
- changed the "g_func()" to be called indirectly. I forgot to actually return the return of the Twofish
- g_func() function which caused it not to work... [does now :-)]
- July 11th, 2002
- v0.51
-
-
-
- July 10th, 2002
- v0.50
- a bug where the SAFER+ name was "safer" but should have been "safer+".
-
-
-
- placed in ROM not RAM now.
-
-
- alot of variables it will clean up better. Functions like the ecb serpent and twofish code will now have their
- stacks cleaned and the rest of the code is getting much more straightforward.
-
-
- For example, the MD5/SHA1 code now uses all of the test vectors from the RFC/FIPS spec.
-
-
-
-
- June 19th, 2002
- v0.46
- June 8th, 2002
- v0.45
- undefined behaviour.
-
-
- Apr 4th, 2002
- v0.44
- Mar 22nd, 2002
- v0.43
-
-
- Mar 10th, 2002
- v0.42
- Mar 3rd, 2002
- v0.41
-
-
-
- Feb 11th, 2002
- v0.40
-
-
- Feb 5th, 2002
- v0.39
- January 24th, 2002
- v0.38
-
- in the rest of my crypto lib
- January 23rd, 2002
- v0.37
- use the next lower key supported. (mainly for the PK code). So you can now use SHA-1 with
- Twofish, etc...
-
- This will speed up the TWOFISH_SMALL implementation by increasing the code size by 1024 bytes.
-
-
- binary wise incompatible with previous releases while the API has not changed at all.
- January 22nd, 2002
- v0.36
-
- about 190 bytes of ram for the key storage compared to the 4,200 bytes the normal
- variant requires.
-
- January 19th, 2002
- v0.35
- you used an ID=0 [i.e blowfish or sha256] in any routine. Now it checks for that and will
- return an error like it should
-
- encode a symmetric key for multiple recipients.
-
- Originally I wanted to ensure that the keys were smaller than the order of the field used
- However, the bias is so insignifcant using full sizes. For example, with a ECC-192 key the order
- is about 2^191.99, so instead I rounded down and used a 184-bit secret key. Now I simply use a full 192-bit
- key the code will work just the same except that some 192-bit keys will be duplicates which is not a big
- deal since 1/2^192 is a very small bias!
-
- key settings you wish to support without including the data for all other key settings. I put the #defines
- in a new file called "mycrypt_cfg.h"
-
-
- use what ever remaining hash/cipher combo is left [after you #undef them] at build time. He also suggested
- a fix to remove unused structures from the symmetric_key and hash_state unions.
-
- encrypt messages any size block at a time.
-
-
-
-
-
- January 18th, 2002
- v0.34
- padding with the rsa_sign() function you cannot use sha512 with a key less than 1536 bits for signatures.
-
- January 17th, 2002
- v0.33
- work with the padding scheme and large symmetric keys.
-
-
-
-
-
- if you want a 1024-bit prime it would make a 1023-bit one. Now it ensures that the prime
- it makes is always greater than 2^(8n) (n == bytes in prime). This doesn't have a huge
- impact on security but I corrected it just the same.
-
-
- I "AND" with 0xFFFFFFFF. That forces only the lower 32-bits to have information in it. On x86 platforms
- most compilers optimize out the AND operation since its a nop.
- January 16th, 2002
- v0.32
-
- basically to remove some of the #defines to clean it up
-
- the PK message formats *incompatible* with previous releases.
-
-
-
- January 15th, 2002
- v0.31
- compatible with previous releases.
-
- rsa_exptmod() function itself if you're not careful. That's fixed now. Fixed another bug in
- rsa_exptmod() where if it knows the buffer you passed is too small it wouldn't free all used
- memory.
-
-
-
- January 14th, 2002
- v0.30
- Basically if you added entropy to the pool in small increments it could in fact
- cancel out. Now I hash the pool with the new data which is way smarter.
- January 12th, 2002
- v0.29
- easier to follow and debug. Actually I've already fixed a memory leak in dh_shared_secret().
-
- operation fails so it wouldn't normally turn up in the course of a program
-
- January 11th, 2002
- v0.28
- changed.
-
- are errors [insufficient memory, etc..] it will be reported. This makes the code fairly more
- robust and likely to catch any errors.
-
- does trial divisions against more primes before the Rabin Miller steps
-
-
- I should note that there is not alot of concrete information about the cipher. "Ansi C" versions
- I found did not address endianess and were not even portable!. This code is portable and to the
- best of my knowledge implements the Xtea algorithm as per the [short] X-Tea paper.
-
- January 9th, 2002
- v0.27
- platforms where 'd' != 100 [for example].
-
- a negative len to get a "3 mod 4" style prime... oops
-
- January 8th, 2002
- v0.26
- the output
-
-
- I added a work around that catches the error and continues normally.
- January 8th, 2002
- v0.25
-
- January 7th, 2002
- v0.24
-
- Should compile with MSVC with less errors
-
- so you can easily build the library with other tool chains
- by compiling the files in the root
-
- "unsigned long" so 16-bit platforms will like this library more.
- January 5th, 2002
- v0.23
- January 4th, 2002
- v0.22
-
-
- Basically if the message has exactly 56 bytes left to be
- compressed I handled them incorrectly.
- January 4th, 2002
- v0.21
- point add and double routines. I also extract the bits more
- efficiently in "ecc_mulmod()" now.
-
- makes a random integer and increments by two until a prime is found
- This is faster since it doesn't require alot of calls to the PRNG and
- it doesn't require loading huge integers over and over. rand_prime()
- can also make primes congruent to 3 mod 4 [i.e for a blum integer]
-
-
- divisor than the dividend.
- January 4th, 2002
- v0.20
- v0.19
-
-
- January 3rd, 2002
- v0.18
-
-
-
-
- error checking now
-
- January 2nd, 2002
- v0.17
-
- slows down the test routines alot but what are you gonna do?
-
- values of p. I replaced it with a slow function. Once the author of MPI fixes his faster routine
- I will switch back.
-
- January 1st, 2002 [whoa new year!]
- v0.16
-
- December 31st, 2001
- v0.15
- find a 1792 and 2048-bit strong prime but what the heck
-
- ECC over GF(2^w) later on....
-
-
- December 30th, 2001
- v0.14
- for the cipher used. It was defaulting to making a 256-bit IV...
-
-
- December 30th, 2001
- v0.13
-
-
-
- in other routines. All calls to zeromem let the compiler determine the size
- of the data to wipe.
- December 29th, 2001
- v0.12
- be a bit more stable [if you want to write your own bignum
- routines with the library that is...]
-
-
-
- removed. Basically I was too lazy todo 64-bit math before
- [don't ask why... I can't remember]. Anyways the hashes
- support the size of 2^64 bits [if you ever use that many bits in a message
- that's just wierd...]
-
- prevent the internal state of the hash being leaked accidently [i.e stack problems]
- December 29th, 2001
- v0.11
- ciphers, hashs, modes of operation, prngs, and even PK algorithms
- For example, the library with rijndael+ctr+sha1+ECC is 91KB compared
- to the 246kb the full library takes.
-
- the RSA packet routines.
-
- for example....
- December 28th, 2001
- v0.10
- clear and professional
-
- except its faster since the numbers are smaller. For example,
- A comparable 256-bit ECC key provides as much security as expected
- from a DH key over 1024-bits.
-
-
- random string if you made the key short. For instance if you wanted
- a 512-bit DH key it would make a 768-bit one but only make up 512-bits
- for the exponent... now it makes the full 768 bits [or whatever the case
- is]
-
- keys by mistake.
- December 25th, 2001
- v0.09
- how to use the library to make a command line tool which
- allows the user to encode/decode a file with any
- hash (on the passphrase) and cipher in CTR mode.
-
-
- December 24th, 2001
- v0.08
- BIG endian not little.
-
- to open /dev/random and if that fails it uses either the
- MS CSP or the clock drift RNG. It also allows callbacks
- since the drift RNG is slow (about 3.5 bytes/sec)
-
- v0.07
- negotiate shared secrets
- [see the manual for a complete example!]
-
- could be corrupt.
-
- December 22nd, 2001
- v0.06
- the hash functions [just source code cleaning]
-
-
- would fail to catch all buffer overruns
-
- routines for kicks...
-
- clear up the purpose of each function.
-
- following a suggestion from a sci.crypt reader....
- v0.05
- where unsigned long is not 32-bits
-
- manual "crypt.pdf" provided.
-
- easy to port to other LCC platforms by changing a few lines.
-
-
- clash with the *nix package "crypt".
- v0.04
- where if the key was not a multiple of 4 bytes it would
- not get loaded correctly.
- December 21st, 2001
- v0.03
- v0.02
-
- v0.01
- /* $Source: /cvs/libtom/libtomcrypt/changes,v $ */
- /* $Revision: 1.288 $ */
- /* $Date: 2007/05/12 14:37:41 $ */
|