opencl-announce Mailing List for Botan
Brought to you by:
randombit
You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
(3) |
May
(2) |
Jun
(1) |
Jul
(4) |
Aug
(4) |
Sep
(1) |
Oct
(2) |
Nov
(3) |
Dec
(1) |
| 2003 |
Jan
(2) |
Feb
(1) |
Mar
|
Apr
(5) |
May
(5) |
Jun
(1) |
Jul
(1) |
Aug
|
Sep
|
Oct
(1) |
Nov
(2) |
Dec
|
| 2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(2) |
Dec
|
|
From: Jack L. <ll...@ra...> - 2004-11-06 18:03:54
|
I've released Botan 1.4.3 today, fixing the broken installation procedures in
1.4.2, which affected all systems. Also, a bad iteraction with Solaris's
install has been fixed (I think); even if I got it wrong this release, it will
be much easier to handle odd install programs in the future. If it turns out
that it's still broken, set your PATH so install points to the one in /usr/ucb
(thanks to Buck Huppmann for that tip; I had forgotten about the ucb utils
included in Solaris), and let me know so I can get it right next time.
By request, I've split SecureAllocator into two classes; Allocator, which
provides just the basic interface, and Pooling_Allocator, which does the pool
management. This will make it much easier to write allocators which want to
handle their own pool management. Unless you are using a custom allocator you
shouldn't notice the difference.
I've also made some tweaks so the memory locking allocator actually stands a
reasonable chance of being used, and so the locking allocator isn't so quick to
free it's memory (useful for the common case of starting as root, allocating
memory, and then dropping privs). If for whatever reason you want to avoid
using the locking allocator entirely, use set_default_allocator("malloc") to
revert to the older behavior. I suspect this will nead further changes to
prevent too much memory from being held up in the case of a long running
process, but I didn't want to spend too much time playing with it, given that
1.4.2 was somewhat busted.
Jack
|
|
From: Jack L. <ll...@ra...> - 2004-11-01 18:38:12
|
Botan 1.4.2 was released yesterday, forgot to send an announcement. A major flaw in the CRL handling code is fixed. If your application is making use of X.509 CRLs, I strongly suggest an upgrade -- 1.4.[01] and some versions of 1.2.x have a bug which causes them to silently fail to process CRL data, meaning revoked certificates will not be rejected. Obviously, if you don't use CRLs, this bug doesn't affect you. Also a number of portability problems have been fixed, including issues on Solaris, OpenBSD, and others. There are some issues remaining on System V-derived Unices; it seems GNU's install and SysV's install are don't support the same flags, and I didn't have time to work out a solution before the release. Finally, the Engine modules can now provide implementations for ciphers, hashes, and MACs in addition to public key operations. This will be useful for engines for devices like VIA's Padlock or the Hifn chips that provide DES/AES/SHA-1 as well as PK ops. The OpenSSL engine has been extended to provide some ciphers and hashes (RC4, DES, 3DES, AES, MD5, SHA-1, etc), though there are limitations due to OpenSSL's interface. For example, even if the OpenSSL engine is loaded, only ciphers "AES-128", "AES-192", and "AES-256" will be provided by OpenSSL; if you use plain "AES" it uses Botan's implementation. This is because in OpenSSL, the three AES key lengths are distinct EVP algorithms, and changing the EVP cipher in use on the fly is somewhat hard to code for. The new interface also allows Engines to provide full modes (ie, 3DES/CBC/PKCS7), but the OpenSSL engine doesn't suport this; I implemented it, and the code was sufficiently complicated and cumbersome that it wasn't worth it, considering that the gains are minimal compared to using Botan's filter objects with the OpenSSL provided primitives. However, it will be useful for pure hardware devices, as the overhead for a PCI message would make sending a single block at a time to a hardware chip prohibitive. Regards, Jack |
|
From: Jack L. <ll...@ra...> - 2004-10-15 14:08:18
|
Hi all, Botan 1.4.1 has been released. Actually, it was released last Sunday and I totally blanked on sending out an announce message. This release is primarily build fixes, and a few API cleanups. If you're using PK_Verifier or the KDF classes and are annoyed by the poor interface of those, you might check 1.4.1 for some improvements. Also, the copy_key functions added in 1.4.0 (X509::copy_key and PKCS::copy_key) where completely broken in that release. They're fixed and happy now. Tested on Linux/x86+amd64+alpha and MacOS X 10.2. Windows should be fine, but I don't have a Windows box with development tools installed at the moment, so I can't be certain. In addition to the usual tarballs, I've built RPMs for Fedora Core 2, and the SRPM should be buildable on any recent RPM-based distro. -Jack |
|
From: Jack L. <ll...@ra...> - 2004-06-26 09:01:10
|
I've released Botan 1.4.0; it can be found at the usual places. No RPMs right
now, I'll try to get to that later this weekend. Unfortunately, I forgot to
copy over my nicely written announce message, forcing me to write up something
on the spot at nearly 5 AM. So if this doesn't make much sense, I apologize.
Compared to 1.3.14 there are a few minor changes but nothing particularly
interesting. Major changes compared to 1.2.8:
- Support for hardware/alternate software backends for PK operations,
including AEP crypto cards (supported because AEP very nicely sent me a
card for free), GNU MP, and OpenSSL's BN library
- Much better GUI support (callbacks and such)
Compared to the 1.0->1.2 jump, the really major changes in this release are
small -- in many ways it's just a cleanup job. There have been some somewhat
large changes, you can find porting notes in doc/porting.txt
This release has been tested on:
- Linux/x86: GCC 2.95.3/3.0.4/3.1/3.2/3.3.3/3.4.0, ICC 7.1, KAI C++ 4.0e
- Windows/x86: Visual C++ 7.0, GCC 3.3.1
- Linux/amd64: GCC 3.2.2
- Linux/s390: GCC 3.4.0
- MacOS X/PPC: GCC 2.95.3
I've also tested 1.3.14 on a number of other systems (Linux/ia64 with GCC and
ICC, Solaris with GCC and Sun C++ on x86 and SPARC, Tru64/Alpha with GCC and
Compaq C++, a few others), 1.4.0 should work just fine on all of these. There
are some problems with *BSD systems that I'll have to sort out in the next
release. If you run into build or runtime problems on any system you care
about, please let me know.
I expect 1.4.x will provide a stable base for applications over at least the
next year and a half. Looking (very far) forward, the next stable tree
(tenatively 2.0.0) will have sufficiently major new features that not only will
it simply take a long time to get it all implemented and tested, but I would
like to take some more time for other, neglected or never started projects.
Regards,
Jack
|
|
From: Jack L. <ll...@ra...> - 2004-06-12 10:31:08
|
Botan 1.3.14 is now available. This is the first release candidate for 1.4.0,
so I would strongly suggest that you check your applications against this
release. The release plan is as follows: if I don't hear of any problems that
are major enough to require a second release candidate, then I will release
1.4.0 in two weeks, on June 26. If there are any problems that prevent 1.4.0
from being released, then I will release 1.3.15 on that day, with 1.4.0
following on July 17.
For those currently using 1.2.x: check doc/porting.txt in the
distribution. Several changes have been made that may cause your programs to
not compile. If your program fails to compile or run correctly against 1.3.14,
and the reason is not clearly described in the porting document, send me a
testcase as soon as possible. Differences between 1.2.x and 1.4.0 are fairly
small (much smaller than the 1.0->1.2 changes), but they will likely impact at
least a few applications. If there is a change (even one documented in the
porting guide) that is an absolute showstopper for you, let me know. I can't
guarantee that I will provide a workaround, but I'll at least consider it.
Now, as to what's new in this release. AEP Systems kindly provided me with an
AEP2000 crypto accelerator so I could write a driver for Botan. If you have the
drivers installed (RedHat includes them in the hwcrypto package), include the
eng_aep module when configuring Botan to add support for the card - everything
will work fine even if you don't have the hardware, but Botan will
automatically use it if it's available. Justin Karneges submitted a mutex
module using Qt, which is now included. New modules for Win32 were added,
providing high-resolution timers and memory locking. And of course there are
various bug fixes, optimizations, and minor new features; check the changelog
for details. The documentation has been updated, and, as far as I know,
reflects the current API completely.
I've fixed some configure and build problems on Solaris, S/390 Linux, OpenBSD,
MacOS X, and Sun's C++ compiler.
I've tested this release on Linux/x86 with various GCC versions (2.95.3 through
3.4.0), KAI C++ (3.4g and 4.0e) and ICC 7.1, as well as Visual C++ on Win2K,
and on Linux/390, Linux/amd64, MacOS X 10.2, Solaris/x86, and Solaris/SPARC
using various GCC flavors, as well as Sun's C++ compiler on both Solaris
machines.
Known issues:
* FreeBSD 5 prior to 5.2.1 has major libc-related build problems. Apparently
5.2.1 is fixed, if someone can confirm I would appreciate it (only have
access to 4.10 and 5.1 systems). 4.10 is mostly working but needs some
help.
* Some, but not all, GCC 2.95.x installs have problems with std::make_pair at
points, removing the std:: fixes it. This seems to be limited to
vendor-modified versions, stock 2.95.3 is OK.
* Older GCC versions (2.95.x, 3.0) fail badly on Alpha with any optimization,
producing code that crashes or creates incorrect results. Use -O0 or get a
fixed compiler.
I would recommend you build the library and run the validation suite on any
platform with any compiler you care about using, especially the proprietary
Unix compilers (Compaq C++, MIPSpro, aCC, etc), as I don't have access to any
systems with those compilers right now, and any Windows compilers you use (I
only have Visual C++ 7.0).
Regards,
Jack Lloyd
|
|
From: Jack L. <ll...@ra...> - 2004-05-15 18:01:46
|
Botan 1.3.13 is out with minor bugfixes. The compilation problem with 1.3.12 was fixed, and support for Cygwin is much better than previous releases. I have only tested with a very recent (last week) Cygwin with the MinGW libraries installed, if you have an older version that you are planning on using with Botan at some point, I would recommend checking it and seeing if there are any fixes necessary. One problem that I noticed on Cygwin was that the check application will fail if the GnuMP engine is used; the OpenSSL engine works fine. Other than that it's looking pretty good, though. Another (related) change was the the autoconfiguration code has been fixed up a fair bit, so it should pull in most of the modules that it can use on your system. The exception is the compression and engine modules, because they require external (non-OS) libraries. -Jack |
|
From: Jack L. <ll...@ra...> - 2004-05-02 18:29:50
|
I've finally released Botan 1.3.12, mostly a bug fix release. There were a number of minor CRL handling bugs, and it's now possible to remove expired certificates from a CRL. There were also a few minor bugs in the PKCS #10 request code. I've renamed about half a dozen functions in X509_Certificate and PKCS10_Request; right now the old versions are still there, but I'll be removing them prior to 1.4.0, I think (check doc/deprecated.txt). Also the Hex_Decoder bug pointed out on the list has been fixed, and a large number of grammatical errors in the API doc (pointed out by Ken Perano), have been corrected. At this point I'm still hoping to release 1.4.0 sometime in late June or early July. It may end up slipping to August, but no later than that. The amount of time I have to work on Botan has been pretty limited since I started working fulltime, but, looking over the 1.3.x changelog, I've realized there hasn't been much in the way of new features; 1.3 has mostly been a massive internal cleanup with relatively few user-visible changes. I would kind of like there to be at least one new major feature in 1.4.0 that wasn't in 1.2.x, and I'm open to suggestions. Currently, I have the following possibilities: - ECDSA - OCSP - OpenPGP - CMS (S/MIME without the MIME) Anyone have any thoughts on any or all of the above? Would anyone use any of these if they were available? Any other things people would like to see? Etc... -Jack |
|
From: Jack L. <ll...@ra...> - 2003-11-04 16:51:57
|
I have (re-)learned a valuable lesson about release QA with 1.3.0; it didn't even pass the built-in validation tests. Specifically, if PKCS8::load_key was handed an unencrypted private key, it would go into an infinite loop. I have thus both a) added the missing two lines of code so the keys load and b) added failsafes so the PKCS #8 loader will give up after a few bad tries so this can't happen again. In addition, the 1.3.0 configure script would (for GCC) set the optimization flags at -O, which is a little below the optimal range. This has also been fixed. Other than the bug fixes, the only changes have been generalizations in few parts of the DER encoder and a small cleanup related to the PEM encoder. My current project-of-the-week (or quarter, more likely) is support for CMS (RFC 3369), thus the DER/PEM changes. This is going to take a while, but I think it will be a useful thing to have, since it provides a good default message/file encryption scheme (ie, if you don't have a reason to use a particular format, use CMS). Probably 1.3.2 will support for a few simple CMS operations, but it will probably be at least a month or two before a decent and featurful design forms. I will be in Virginia interviewing for a job Wednesday and Thursday, so any problems will probably not be resolved until the weekend. Regards, Jack |
|
From: Jack L. <ll...@ra...> - 2003-11-03 03:36:03
|
The first release of the new development tree, 1.3.0, is available. I've removed a few algorithms (CS-Cipher, SHARK, ThreeWay, MD5-MAC, and EMAC); most are rarely, if ever, used, and some are patented as well. I also killed off a few random functions and constructors I didn't feel were too useful. Support for GCC pre-3.0 is officially deprecated (but not removed); there have been some hacks and workarounds in place specifically to support 2.95.x that I wouldn't mind removing. Given that modern Linux, *BSD, and OS X systems all seem to be using at least 3.0.4, now seems as good a time as any. The primary interface for loading PKCS #8 private key files has been changed around somewhat, necessitating a complete redesign of how it works internally (meaning there are probably bugs). Before, opening an encrypted private key was all or nothing - either the passphrase was right, and it worked, or it was wrong, and you would have to do the whole thing over again with another passphrase. Now it will keep asking you for passphrases until one works, or you (more properly, the User_Interface object that represents you) says "forget it" and cancels the action. Speaking of that, there is a new User_Interface hierarchy that handles talking to 'you'. It's basically just a way to glue together Botan and whatever form of GUI or console interface you happen to be using, in the (thankfully rare) places where that is useful. The default UI doesn't even talk to you, it first just tries to give the passphrase passed to it's constructor, and if that doesn't work, then it cancels the action. This is a) for compatibility with how 1.2.x did it, and b) because I don't even want to touch UI issues if I can help it, thankyouverymuch. The looks-minor-but-isn't change in this release is that you no longer have to tell Botan if an object is PEM encoded or not - it can figure it out on it's own. This includes X.509 public keys, certificates, and CRLs, PKCS #8 private keys, and PKCS #10 certificate requests. This is (or at least can be) more handy than it probably sounds like. For most people, who have just been using the default of PEM, the only change is that now your application will read BER encoded data where it couldn't before. If you were telling it PEM or RAW_BER explicitly, just remove it and everything will work just like it did (except better). Jack |
|
From: Jack L. <ll...@ra...> - 2003-10-31 20:07:47
|
After nearly 4 months (!) since the release of 1.2.6, Botan 1.2.7 has finally been released, fixing various minor bugs and adding support for configuration files. Bugs fixed include: * X509_CA would miss one of the key usage values when encoding the extension * RSA certificates and keys using the X.500 RSA OID can now be read * The enum NON_REPUDIATION has been misspelled since forever * A latent bug in the OID lookup code was fixed The primary new feature of this release is the ability to read configuration files (which look rather like Windows .INI files or OpenSSL configs). This lets you change options or add new OIDs and algorithm aliases without having to recompile anything. This is handy. An example config is included with the release, and the syntax and usage is explained in the API doc. The option x509/default_to_ca was renamed x509/v1_assume_ca, which matches the meaning of the option somewhat better. The module tm_hw_ia32 has been replaced with tm_hard, which is a generalized version for reading several different CPU timers. In addition to the previously supported x86 and x86-64 timers, it can read the processor counters on SPARCv9 and Alpha systems. Creating a public/private key object by passing a DataSource& to the constructor is now deprecated. Use the load_key variants instead. This is probably (hopefully, maybe) the last 1.2.x release. There are some things I want to change/add/fix/tear-up-and-redesign, but for stability reasons I'm going to do them starting in the 1.3.x development tree; I expect 1.3.0 will be released RSN. The RPMs for this release are built in RedHat 9 (versus the RedHat 7.3 system used previously for building binary RPMs). This release has been tested on Linux/x86, FreeBSD/x86, Linux/x86-64, Linux/Alpha, MacOS X/PowerPC, and Solaris/SPARC. Jack |
|
From: Jack L. <ll...@ac...> - 2003-07-04 16:02:50
|
Hi, I have released Botan 1.2.6 today, mostly just removing some useless or poorly designed interfaces. However, there is one nice new feature which is available; the mp_asm64 module, which lets BigInt use 64-bit words on any system that supports a 64x64->128 bit multiply. Using it on native 64-bit machines results in some very impressive performance increases (details below). The module should work with GCC on Alpha, IA-64, x86-64, MIPS-64, and PPC-64, though I have only tested it on Alpha and IA-64 so far. It may also work on other compilers for those systems which support GCC's inline asm syntax, though I haven't tried it. If possible, please test this on any 64-bit systems you have access to, and let me know how well it works (if at all). The only system-dependent code is a line or two for each system in the module's mp_impl.h file, so any problems should be easy to find and fix. Any contributions to let this work on other 64-bit systems (zSeries, SPARCv9, SH5, HPPA-64, MMIX, etc) will be most welcome. On an EV67 Alpha with GCC 2.96, the speed increase for RSA and DH ranges from 40% for 512-bit keys to over 350% (!) for 4096-bit keys. DSA sees a similar speedup, though since generally DSA keys are limited to 1024 bits, DSA will tend to be only twice as fast with this module. On an Itanium 2 with GCC 3.2.2, the speedup was less dramatic, though still pretty good - 20% to 150% for RSA and DH (512-4096 bit keys), and 20% to 80% for DSA (512-1024 bit keys). Lastly... well, I feel pretty stupid to bring this up here, but I'm looking for a job. If anyone on this list (or their company) is looking for someone to do security-related work (design, development, audit, or penetration testing), please consider me for the job (contact me offlist if interested). FYI, I will be offline until next Monday, July 7, so don't expect any responses to email until then. Have a good holiday weekend (for those in the US), and a good weekend in general (for everyone else), -Jack |
|
From: Jack L. <ll...@ac...> - 2003-06-22 17:44:48
|
Botan 1.2.5 was released this afternoon, fixing many bugs. In particular, compilation problems affecting Visual Studio .NET and CodeWarrior 8 were fixed, several memory leaks were plugged, two major errors in SSL3-MAC were fixed, a potential denial of service vulnerability in X509_Store was removed, and various minor bugs in the MPI code were also fixed. Three poorly designed functions in X509:: and PKCS8:: have been deprecated (check doc/deprecated.txt for details). The x509opt.h, primes.h, and desx.h headers have been removed, and their contents moved into other headers (desx.h was already empty in 1.2.[0-4]). In VS .NET, two warnings are disabled via #pragma in config.h (both warnings are, as far as I can determine, useless). In any case, with those two warnings blocked and a bunch of minor source changes, Botan compiles cleanly with the /W3 flag (unless, of course, I messed up). I haven't tried using CodeWarrior 8, but the three problems that were reported in 1.2.4 have been fixed, so it seems likely it will build there as well. This release also has a major revamping of the memory allocation system, which is now simpler, faster (the validation suite, as a whole, runs about 15% faster thanks to this change), and has less overhead. In addition, it's much easier to write a custom allocation system, because all of the housekeeping that each allocator had been forced to do is collected in the SecureAllocator base class (both the malloc and mmap based allocators are less than half the size they were in 1.2.4). The alloc_mlock module has been completely removed, replaced by the ml_unix module. This moves the memory locking allocator into the library itself, which simply calls the locking functions (which are, right now, either stubs or implemented in the ml_unix module). This will make it very easy to support other locking functions in the future. All the bugs I know of are fixed in this release, so please let me know if you run into any problems. -Jack |
|
From: Jack L. <ll...@ac...> - 2003-05-29 18:49:40
|
I recently found out that NR would reject good signatures every once in a while (1/256 of the time, specifically). This was due to a bad interaction between NR and the EMSA1 encoding function which is is typically used with. This bug did not affect DSA, and while in theory it could affect RSA, that is exceedingly unlikely (I think). Upgrading is pretty optional, unless you're using NR, in which case it would be a good idea. -Jack |
|
From: Jack L. <ll...@ac...> - 2003-05-20 17:59:51
|
Botan 1.2.3 was released this afternoon. As I noted in an earlier mail, it
turns out that there were several serious bugs in Botan 1.2.2. Most
notably, trying to generate a DSA key would result in an Internal_Error
exception being thrown by the library. This has been fixed, and I have
added tests in the check application to ensure it never happens again.
In addition, there were several bugs in the X.509 code which I didn't find
until recently. These were:
*) All certificates created by X509_CA before 1.2.3 have an invalid
encoding of the authorityKeyIdentifier. I never caught this because
OpenSSL's x509 utility apparently works around this particular bad
encoding. I apologize to anyone who now has ill-formed certificates
due to this.
*) If a root CA had a subjectAlternativeName entry, OR a PKCS#9 email
address attribute in it's distinguished name, it would be rejected by
X509_Store as not being a self-signed certificate.
*) Fixed a BER decoding error - even when reading a *valid* X.509
authorityKeyIdentifier, there was a bug that resulted in it not being
read correctly (it would be flagged as an error and ignored).
In other changes, I cleaned up some of the examples, and added a new one,
ca.cpp, which implements a (very) simple certificate authority. A new check
in PBKDF2 prevents a fairly obscure error message if an empty passphrase is
supplied to it, and there are new versions of X509::load_key and
PKCS8::load_key that take a filename.
X509_CA now generates 128 bit serial numbers instead of 80; this is to
prevent any possibility of duplicate serial numbers being generated by a
CA. Now, if a CA generated a billion new certificates every second, it
would still take roughly 500 years before it generated two with the same
serial number.
I've also added a bit of documentation about something that I think is
going to be pretty important in the future, Certificate_Store, which is
basically a generic interface to something that keeps certificates (a
database, a web server, etc). X509_Store doesn't support this abstraction
as well as it should right now, but I'm planning on extending it in the
development branch.
Regards,
Jack
|
|
From: Jack L. <ll...@ac...> - 2003-05-14 03:25:13
|
Hi, Botan 1.2.2 was released today, and, barring any bugs being found, I think that's it for the 1.2.x versions. The support for Windows is nearly as solid as it is for Unix, surely good enough that people can use Botan seriously on both platforms. And so, at this point I am taking an extended vacation from further work on Botan. I've been feeling a tad burned out, and in addition to having a number of other projects that I'd like to work on, I really need to find a job. However, please don't read this the wrong way: I am still maintaining Botan, I'm happy to answer any questions or to fix bugs as they are found, and eventually I will start working on it again. It's simply that I'm not going to be starting the 1.3.x development tree for a least a few months, maybe longer. It's now 11:30 local time, and I'm off to hit the bars. Later, Jack |
|
From: Jack L. <ll...@ac...> - 2003-05-14 03:23:06
|
Hi All, Botan 1.2.2 was released about 5 minutes ago. The primary changes were in the area of the modules, especially the entropy gathering modules. First, the general changes: - There is an attack on RSA and RW implementations using the CRT, that if any hardware or software error occurs during a signature operation, the private key will be revealed. To prevent this, RSA and RW now check their results to make sure that no error has occured. - The Global_RNG::seed() function has changed. - The library initialization routines now use a somewhat more complicated method of seeding the RNG, but it should allow much greater flexibility. - A few minor locking bugs were fixed This release, like 1.2.1, is primarily oriented towards Windows users, but because of the new checks to prevent problems with RSA/RW, I would suggest that all users upgrade to 1.2.2 as soon as possible. I am not currently aware of any bugs in the MPI implementation (the last bugs I found in it were in 0.8.x), but it's probable that some latent bugs do exist. Changes and additions in the modules: - Another Win32 entropy source is available, which uses various Win32 APIs to gather information about processes running on the system. [1] - The BeOS and generic Unix entropy sources were both improved significantly. - A file descriptor leak in the EGD entropy source was fixed. - The Win32 CryptoAPI entropy source will query multiple providers until it finds one that works. By default, it will first try to access the Intel i810 hardware RNG [2], and if that fails, will fall back to the standard software PRNG. [1]: This entropy source will not run on NT4, but everything else (including Win95), is fine. [2]: This module has not actually been tested on a system that has an i810 RNG, since the only x86 machine I have is an Athlon. If someone could test that it actually reads the i810 RNG when it is available, I would appreciate it. Because I'm a bit pressed for time, this release is only available from botan.randombit.net, not off sourceforge (which is the typical distribution site for stable releases). 1.2.2 will be up on sourceforge starting tommorow afternoon (EST). As always, let me know if you run into any problems building or running Botan on your system. Regards, Jack |
|
From: Jack L. <ll...@ac...> - 2003-05-06 21:56:12
|
Botan 1.2.1 was released today. This release is primarily intended to let Botan build out of the box on Windows systems, particularly those using Visual C++ 7. The configure.pl script now runs on Windows, and the VC7 makefiles it generates work significantly better. There is a section of the documentation telling you all of the details, called "Building The Library (MS Windows)". The Windows build procedure has been tested using Visual C++ 7 on Windows 2000. The procedure is basically as follows: >perl configure.pl msvc-windows-<whatever> --modules=es_capi >nmake check For my builds, I used ActiveState Perl 5.8.0, but 5.6.1 or 5.005 should also work fine. Please let me know if any kind of problems building Botan on Windows show up, since (AFAIK) they are all fixed as of 1.2.1. The only new features in this release are the addition of a CBC padding mechanism compatible with the one specified in ANSI X9.23 (this is only useful if you happen to be doing crypto stuff for a bank), and an entropy source that uses the Win32 CryptoAPI. The entropy source is particularly important, because previously each Win32 application would have to have it's own code to supply entropy for the library. Besides these two new pieces of code, the only changes made were to fix compilation problems with Visual C++. If you're not using Botan on Windows, there is relatively little reason to upgrade to 1.2.1. However, if you do continue to use 1.2.0, I would recommend you be careful about avoiding the small number of functions which were removed or renamed in 1.2.1. Regards, Jack |
|
From: Jack L. <ll...@ac...> - 2003-04-28 21:50:21
|
After a good 8 months of work, Botan 1.2.0 is available for download. The changes in this release, compared to the last 1.1.x development release, are minimal. But in comparison to the previous stable version, 1.2.0 is an incredible upgrade. The following new features are now available: * X.509v3 certificates and CRLs (including issue and validation) * PKCS #10 certificate requests (issue and processing) * PKCS #8 private key storage, with PKCS #5 v2.0 encryption * Optional blinding in private key operations, to prevent timing attacks * The ability to get an object of any cipher with a single function call * A configuration API for controlling all library options * EAX, a new cipher mode which encrypts and authenticates messages * New crypto algorithms: HAS-160, WiderWake4+1, OMAC There are many other useful new features not listed, along with a huge number of optimizations and cleanups. In particular, the public key algorithms should be significantly faster, even when blinding is enabled. There are, for various reasons, some source level incompatabilities between the 1.0.x and 1.2.0 releases. Most of the cases are relatively obscure, but feel free to contact me if you run into problems upgrading. I believe this release to be stable, and it should run on a wide variety of systems. Please send me an email if you run into build problems, or if you successfully run Botan on a less common system (IRIX, AIX, BeOS, etc). For MS Windows users: Botan is still less than perfect for using on Windows right now. The next release, 1.2.1, will be easier to build on Windows, and will offer, at the very least, an EntropySource that uses CAPI. Regards, Jack Lloyd |
|
From: Jack L. <ll...@ac...> - 2003-04-22 13:11:01
|
Botan 1.1.13 is a second release candidate for Botan 1.2.0. Mostly just
some final cleanups before 1.2.0, along with adding EAX mode, a new
authenticated cipher mode designed by Wagner, Rogaway, and Bellare
(authenticated cipher mode means you don't have to use a MAC, the cipher
mode will handle both privacy and authenticity).
New features in this release:
- Added EAX mode
- Added OMAC, a secure CBC-MAC
- The removeFromCRL code is now processed correctly in X.509 CRLs
- Support for various X.509 attributes required by RFC 3280 (mostly
useless things like title, psuedonym, surname, given name, etc).
- A new toggle for the memory allocators
Bug fixes in this release:
- Skipjack's word ordering was reversed [1]
- Diffie-Hellman would sometimes not do blinding
- Removed the 'es_pthr' module, it looks to be at least possibly buggy
Misc:
- Optimized OFB and CTR modes (~5% improvement)
- Moved Rijndael from rijndael.h to aes.h, renamed AES
- Removed the 'no_timer' LibraryInitializer option
[1]: At this point, most implementations of Skipjack are probably 'wrong',
but I figured it was better to go along with the official NIST specs.
The 1998 test vectors are wrong, NIST published a clarification last
year to that effect.
|
|
From: Jack L. <ll...@ac...> - 2003-04-15 19:41:50
|
Botan 1.1.12 was released this afternoon. It's a fairly small release; a few minor bug fixes and some random cleanups. I did spend a couple of days working on the documentation, so that has improved a bit (for example, all of Pipe's public functions are now documented). Also the tutorial has been extended pretty significantly (though some of the material overlaps with stuff in the API doc). Aside from fixing any bugs that might be found, the only change I'm expecting between 1.1.12 and 1.2.0 is the addition of a working VC++7 workspace file. I'm currently thinking 1.2.0 will be released around Friday afternoon. -Jack |
|
From: Jack L. <ll...@ac...> - 2003-04-07 13:29:44
|
A few days of steady hacking has produced Botan 1.1.11, the latest release on the devel tree. Primarily, this release adds support for PKCS #10 certificate requests (including generating new ones). As a side affect, quite a bit of X509_CA has changed - it is much more sensible to be signing PKCS #10 requests, than random blobs of user information + a key. The old constructor for creating a new root CA has also disappeared; this operation is now handled by a function which creates a new self-signed certificate (for use by a CA or end-entity). X509_Store has seen various overhauls, mostly in the search code. Searching can now also be done by DNS name (potentially useful for stuff done without user interaction). I also added some hooks for a remote certificate store (such as the HTTP certstore that's in draft status right now), but since I haven't implemented a backend yet (and probably won't for a while)... <shrug> I changed a few X509_Certificate function names to be a little more sensible/consistent, which is basically gratuitous breakage, but it _is the devel tree so once again... <shrug> A couple of new examples were added, and I updated the documentation (in some places). I'll add that I've been up all night, and so there is a reasonable chance there is something seriously broken in the release. As it stands now, 1.1.12 will probably be out next week or so, to fix any remaining problems (in particular the Windows stuff), followed by 1.2.0 around the last week of April. -Jack |
|
From: Jack L. <ll...@ac...> - 2003-04-03 17:35:01
|
Hi, A new development release of Botan, 1.1.10, is out. This is largely a cleanup release - there was lots of duplicated and/or dirty code in the X.509 stuff in particular. New features include the ability to create new CRLs, and some support for more distinguished name attributes and CRL/cert extensions. A new pthreads-based entropy source was also added, which might be useful in cases where no other usable entropy source can be found, but pthreads are available (such as on OpenVMS, perhaps). On the downside, it's very slow (on the order of 1 to 2 seconds for a slow poll on a fast machine). It won't be used for seeing the RNG unless there is really nothing else that works. As it has recently been shown that timing attacks are actually practical, blinding has been added for RSA, Rabin-Williams, Diffie-Hellman, and ElGamal private key operations. By default, blinding is on; you can disable it by setting an option at runtime. I'm starting to feel comfortable with doing a new stable release based on 1.1.x; with luck 1.2.0 should be out within the month. Given that, I would highly recommend that you try out this release and let me know about any problems you encounter. Currently the main issues I'm seeing are that building Botan on Windows is mostly manual, and that the documentation is several releases out of date. The only major feature I'm planning on adding before 1.2.0 is PKCS #10 certificate requests (and this is iffy, it may wait until the next release cycle); if there is something you were hoping to see in 1.2.0 that's not in 1.1.10, you should let me know now. As an aside, I've recently become unemployed. While this is great for Botan's development in the short term, I would rather have a job, so if you happen to know someone who needs someone to do crypto/security work, I would like to hear from you. Regards, Jack |
|
From: Jack L. <ll...@ac...> - 2003-02-25 22:11:56
|
This release is fairly minor, the major change is there is now support for reading X.509 CRLs (they cannot be produced yet, probably that will come in the next release). There were also some fixes in the path validation algorithm, and in the name comparison algorithm. Note that the X.500 name comparsion algorithm only works on simple cases (ie it won't work on T.61 strings or UTF-8 strings, though in both of these cases Botan will outright reject the certificate so it's not an actual probably yet). Also, gcc < 3.0 doesn't have a working <cctype> header; on those systems a simple (non-compliant) name comparison method will be used. This probably won't be a problem in practice, as most other software also uses the simple method. If you're using X.509 certificates with Botan, I would recommend you upgrade to this release, as the bugs in the path validation algorithm have potential security implications. Other than that, there were some code cleanups which probably don't really affect anything, and some documentations updates to reflect the new CRL stuff (though CRLs are not fully documented yet). If you want to start reading CRLs immediately and don't know where to start, the x509test package shows how to read and process them. -Jack |
|
From: Jack L. <ll...@ac...> - 2003-01-29 16:00:37
|
Hello, Botan 1.1.8 was released today, fixing several bugs in the X.509 code. In particular, there were several omissions or problems with how the certificate path validation algorithm worked before this release. (A new testsuite to test the path validation is available on the downloads page). There were also problems handling expiration dates > January, 2038, which have been fixed. The validation algorithm now returns an error code which states the nature of the problem found (signature error, cert expired, etc). Lastly, lots of previously hard-coded policy decisions (mainly related to what extensions to included, and whether or not to mark them critical) have now been made configurable at run time. -Jack |
|
From: Jack L. <ll...@ac...> - 2003-01-12 20:25:01
|
Botan 1.0.2 has a couple of bug fixes, both very obscure, but potentially fatal to an application if they're triggered. Botan 1.1.7 has one of these bug fixes (the other was fixed back in October), and adds the SSLv3 MAC and PRF algorithms. I modified the SHA-384 and SHA-512 classes so they share most of their code; saves about 75K on x86 (they take up a lot of code and most of it was identical). Lastly I updated the documentation (a bit) and added a new tutorial (which is incomplete). Let me know if you have problems building or using either release. Regards, Jack |