14.2.1: 2 - Cleaned up old autotools cruft (thanks to Anìbal Monsalve Salazar). 3 - Different automake approach to compiling separate components. 4 - Fixed C++ header installation problem. 5 64.2.0: 7 - Added OpenMP support (initially for RSA CRT). 8 - Added SHA-224 and HMAC-SHA-224. 9 - Added RIPEMD-128/160/256/320 (thanks to Jeff Johnson). 10 - Added MD4 (thanks to Jeff Johnson). 11 - Applied RedHat/Debian/Gentoo patches for 4.1.2. 12 - Improved gcc compilation flags for sparc. 13 - Started work on MinGW compatibility. 14 - Major overhaul of the C++ API; be warned that the code is still 15 tricky in certain places. 16 - Added synchronization methods to Object class; there's also a 17 macro allowing the use of synchronized (...) { }. 18 - Added Runnable interface and Thread class; the latter provides 19 basic support conform to the Java API. 20 - Added collections. 21 224.1.2: 23 - Fixed Cygwin DLL missing symbols problem. 24 - Fixed GNU-stack assembler section on some platforms (Debian-ARM). 25 - Fixed problem cause by include of <asm/byteorder.h>. 26 - Fixed SHA-384 and SHA-512 code Visual C++ compatibility. 27 - Improved detection of IBM ICU library version; has to be >= 2.8. 28 294.1.1: 30 - Fixed shared library version info. 31 324.1.0: 33 - Added SHA-384 and SHA-512 algorithms. 34 - Added HMAC-SHA-384 and HMAC-SHA-512 algorithms. 35 - Added generic SSE2 optimization for the above algorithms. 36 - Added more digest algorithms for PKCS#1 EMSA. 37 - Optimized swap32 and swap64 routines on Linux. 38 - Fixed missing definition in mpopt.h for s390x. 39 - Fixed nostackexec configuration bug. 40 - Fixed problem in Date::toString. 41 - Fixed deadlock problem which occured in certain cases where security 42 or crypto SPI constructor called getInstance for another security or 43 crypto SPI. 44 - Fixed a bug in the generic CBC encryption code; when called with 45 nblocks == 1, the feedback was set incorrectly. 46 - Fixed a bug in mpbsubmod; sometimes it takes multiple additions of 47 the modulus to get a positive number. 48 - Fixed PowerPC 64-bit configuration problem on Linux. 49 504.0.0: 51 - Added a C++ API interface, modeled after Java's security & crypto API. 52 - Added the new GNU noexecstack feature. 53 - Added more x86_64 and s390x assembler routines. 54 - Modified i2osp, so that it only requires as many octets as there are 55 significant bytes in the multi-precision integers. 56 - Fixed a bug in the creation of rsa keypairs; code was not correctly 57 migrated to new calling sequence. The code now implements the method 58 described in IEEE P.1363. 59 - Fixed another bug in mpextgcd_w which sometimes returned incorrect 60 results. 61 - Fixed a bug in mprshiftlsz, which didn't work correctly when size = 1. 62 - Fixed a configuration problem on Tru64 Unix. 63 643.1.0: 65 - Added wiping of private key components of keypairs before freeing. 66 - Fixed bug in mpextgcd_w which sometimes returned incorrect result. 67 - Fixed error in PowerPC 64-bit assembler symbol definitions. 68 693.0.0: 70 - Cleaned up installed header files. 71 - Modified the API so that all keys can be passed as arrays of bytes. 72 - Modified the API so that all key sizes are given in bits. 73 - Modified the multi-precision integer library to work better on 64-bit 74 machines. 75 - Modified the assembly source generation mechanism, employing the m4 76 macro processor. 77 - Added multi-precision integer vectorized assembler routines for 78 Itanium. 79 - Added multi-precision integer assembler routines for PowerPC 64-bit. 80 - Added multi-precision integer assembler routines for Alpha. 81 - Added multi-precision integer assembler routines for Opteron. 82 - Added multi-precision integer assembler routines for IBM zSeries 64-bit. 83 - Added multi-precision integer assembler routines for M68K. 84 - Added Jeff Johnson's python bindings. 85 - Added new unit tests. 86 - Added new benchmarking programs. 87 882.3.0pre: 89 - Modified the header files so that the library now uses self-contained autoconf-generated configuration files; a program employing BeeCrypt can now use the symbols already tested and defined instead of having to regenerate them (thus also eliminating the risk of inconsistencies). 90 - Added the AES algorithm, with assembler routines for i586 and powerpc. 91 - Added the DSA signature algorithm. 92 - Added PowerPC assembler routines for blowfish. 93 - Added Pentium4 SSE2 assembler multiplication routines. 94 - Fixed the RSA CRT algorithm. 95 - Fixed the gas/i386 mp32even and mp32odd routines. 96 - Fixed a bug in modular inverse computation; thanks to Jeff Johnson of RedHat for pointing this out. 97 - Fixed a bug in testing the result of a gcd operation in the mp32prndconone routine. 98 - Fixed an ugly bug in base64 decoding. 99 - Fixed compatibility with the latest automake & autoconf versions. 100 - Replaces CPU optimization mechanism in configure script. 101 1022.1.0: 103 - Added support for automake, autoheader and libtool, which should make compiling the library even easier. 104 - Changed DHAES API to conform to IEEE P.1363 submission and to allow for uneven key splitting. 105 - Improved PKCS#5 padding routines. 106 - Added a hash reset to the hashFunctionContextInit function. This was pointed out by Marko Kreen. 107 - Fixed problem with configuring on i486-pc-linux-gnu. This was pointed out Steve O'Neill. 108 - Fixed problem in the C version of mp32sub where carry would sometimes be missed. This was pointed out by Jon Sturgeon. 109 - Revised entropy gathering system to do timeouts & asynchronous I/O where possible, to avoid hangs in case there's no noise on the audio device (i.e. digital silence), or when no data is available on devices such as /dev/random. 110 - Changed mp32opt i386 assembler routines for slight performance improvement. 111 - Changed mp32opt powerpc assembler routines for slight performance improvement. 112 - Changed mp32opt sparcv9 assembler routines for slight performance improvement. 113 - Added sparcv8 assembler routines for multi-precision integer multiplication. 114 - Added arm assembler routines for multi-precision integer multiplication. 115 - Added prototype 64-bit ia64 assembler routines for multi-precision integer operations. 116 - Started writing the long-awaited documentation. 117 1182.0.0: 119 - Changed mp32barrett struct and operations to be multithread-safe; this required a change in API. 120 - Changed hashFunction struct to incorporate internal block size parameter. 121 - Changed HMAC algorithm and file names to match names in RFC 2104. 122 - Changed SHA-1 C code for slightly faster results. 123 - Changed detection of entropy devices. 124 - Changed most void-returning functions to return int for error conditions. 125 - Changed beecrypt-java class names in javaglue. 126 - Added RSA keypair generation. 127 - Added RSA private & public key operations. 128 - Added SHA-256 hash function. 129 - Added HMAC-MD5 and HMAC-SHA-256 keyed hash functions. 130 - Added PKCS#5 padding. 131 - Added DHAES encryption scheme. 132 - Added Microsoft Visual C support, added Makefile.mak for this purpose. 133 - Added Solaris/Sparc Forte C 64 bit support. 134 - Added configure --disable-optimized option (disables assembler & processor-specific optimizations). 135 - Fixed bug in SHA-1 assembler code for Pentium, where local variables were used below the current stack pointer; this could cause a problem if the routine was interrupted. This was pointed out by Richard Clayton. 136 - Fixed bug in (certain cases of) modular inverse computation. 137 - Fixed buffer overrun in base64 encoding. This was pointed out by Jon Sturgeon. 138 - Fixed various minor bugs. 139 - Renamed text files to match automake conventions. 140 1411.1.2: 142 - Fixed bugs in discrete logarithm domain parameter generator. The code to make a generator of order q and (p-1) was wrong. This was pointed out by Susumu Yamamoto. 143 - Added MD5 hash function. 144 1451.1.1: 146 - Changed autoconfig script for easier porting. 147 - Changed sources for easier compilation on Microsoft Visual C++; no assembler-optimization on this platform yet. 148 - Fixed bug in javaglue when passing null IV to blockcipher. 149 - Shared library is now linked dynamically, with shared object name and version. 150 - Tested on Alpha Linux. 151 - Tested on Alpha FreeBSD. 152 - Added support for Compaq Alpha Tru64 Unix. 153 - Added initial support for QNX. 154 1551.1.0: 156 - Added glue for interfacing from BeeCrypt Java Cryptography Provider. 157 - Changed blockcipher struct to support interfacing with Java. 158 - Added better blockcipher IV handling. 159 - Multi-pass block processing is now possible with blockEncrypt/blockDecrypt. 160 - Updated config.sub and config.guess to latest version from sources.redhat.com 161 - Changed opening of entropy devices to blocking read-only mode instead of non-blocking read-write. 162 - Added win32 'wincrypt' entropy source. 163 - Added win32 'console' entropy source. 164 - Added FreeBSD support. 165 - Added PowerPC assembler optimized multiprecision subtraction routines. 166 - Added initial ia64 support. 167 - Added initial Darwin support (everything compiles, but the shared library doesn't build yet). 168 1691.0.2: 170 - Fixed Windows 2000 entropy bug; instead of using the first waveIn device, entropy now uses WAVE_MAPPER. 171 - Added sparcv9 mp32addsqrtrc GNU assembler routine. 172 - Added more hashFunctionContext and keyedHashFunctionContext functions. 173 1741.0.1: 175 - Added a sliding window modular exponentiation, about 30% faster than left-to-right exponentiation. 176 - Fixed bugs in fips180opt.gas.i586.s (Linux SHA-1 assembler code for Pentium/Pentium Pro) - the Windows/Metrowerks version was okay. 177 1781.0.0: 179 - Added Win32 support; compiled as DLL with MetroWerks CodeWarrior Pro 5, it runs fine on Windows 95, 98, NT 4.0 (if you have a soundcard with a microphone port). Note that there is a know issue on Windows 2000, see BUGS. 180 - Global code overhaul to support Win32 181 - Added more assembler routines, including SHA-1 for Pentium Pro (60% faster) 182 - Added cleanup function to randomGenerator 183 - Added missing functions in endianness.c 184 - Fixed bug in entropy.c where devices might stay open 185 - Eliminated mutex.h include file; it was more clear to do everything conditionally than to expand the macros in this file to encompass the Win32 API calls. 186 1870.9.5: 188 - Added PowerPC assembler optimization for multiprecision integers, 80% faster on our PowerMac 7200/90 189 - Fixed /dev/random entropy provider 190 - Changed name SHA1 to SHA-1 in fips180 for consistency 191 1920.9.4a: 193 - Added missing file 'blowfishopt.o' 194 1950.9.4: 196 - Changes to configure script, to distinguish between different processors of the x86 family 197 - Changes to blowfish code, 586/686 assembler optimization added, 30% faster on Pentium/PentiumPro 198 - Changes to blowfish code, eliminated static blowfishSetupEncrypt; incorporated into regular encrypt 199 - Changes to Makefile to selectively use blowfish assember code, depending on cpu type 200 - Added missing routines 'mp32bzero' and 'mp32bnpowmod' to mp32barrett.c 201 - Fixed 'const register' to 'register const' in mp32.c 202 - Minor fixes in included header files 203 2040.9.3: 205 - Initial public release 206