OpenSSL STATUS Last modified at ______________ $Date: 1999/03/14 01:16:42 $ DEVELOPMENT STATE o OpenSSL 0.9.2: Freezed! - No more feature commits, please. - Commit bugfixes and cleanups only, please. - Already successfully tested platform: o FreeBSD 2.2.7 Ben Laurie OK o FreeBSD 3.1 Ralf S. Engelschall OK o Solaris 2.6 Ralf S. Engelschall OK except for ctype warns o Linux RH 5.1 Steve Henson OK o Linux 2.0 RH 5.2 Ralf S. Engelschall OK o Linux 2.2 RH 5.2 Peter 'Luna' Altberg OK o WinNT,95 VC++ 5 Steve Henson OK Proposed release time: Monday, March 15th 1999 o OpenSSL 0.9.1c: Released on December 23th, 1998 RELEASE SHOWSTOPPERS o Compilation warnings: ctype-related int vs. char o Compilation error: "unsigned long*" and "int*" under AIX o Why are NULL ciphers in front of the cipher spec? (see my posting "Bug?!: Cipher Suite and NULL Ciphers" in openssl-dev) o A Linux alpha user reported: "alpha.s does not have bn_div_word()" (see posting "ALPHA error" in openssl-dev) o Undefined BN symbols in assembler stuff on Solaris (see posting "openssl-SNAP-19990308-2130 on Solaris-2.6 SC4" in openssl-dev) AVAILABLE PATCHES o Solaris AS error (kenji@miyake.org) o getenv in ca.c and x509_def.c (jaltman@watsun.cc.columbia.edu) o s3_lib.c - export clients (levitte@stacken.kth.se) o linux dynamic libs (colin@field.medicine.adelaide.edu.au) o MingW support (niklas@canit.se) o crypto/des/enc_read.c bugfix (mike@cs.mun.ca) IN PROGRESS o Steve is currently working on: X509 V3 extension code including: 1. Support for the more common PKIX extensions. 2. Proper (or at least usable) certificate chain verification. 3. Support in standard applications (req, x509, ca). 4. Documentation on how all the above works. Next on the list is probably PKCS#12 integration. o Mark is currently working on: Folding in any changes that are in the C2Net code base that were not in the original SSLeay-0.9.1.b release. Plus other minor tidying. o Ralf is currently working on: 1. Support for SSL_set_default_verify_paths(), SSL_load_verify_locations(), SSL_get_cert_store() and SSL_set_cert_store() functions which work like their existing SSL_CTX_xxx() variants but on a per connection basis. That's needed to let us provide full-featured per-URL client verification in mod_ssl or Apache-SSL. => It still dumps core, so I suspend this and investigate again for OpenSSL 0.9.3. 2. The perl/ stuff to make it really work the first time ;-) => I'll investigate a few more hours for OpenSSL 0.9.2 3. The new documentation set in POD format under doc/ => I'll investigate a few more hours for OpenSSL 0.9.2 4. More cleanups to get rid of obsolete/old/ugly files in the source tree which are not really needed. => Done all which were possible with my personal knowledge o Ben is currently working on: 1. Function Prototype Thought Police issues. 2. Integrated documentation. 3. New TLS Ciphersuites. 4. Anything else that takes his fancy. NEEDS PATCH OPEN ISSUES o The Makefile hierarchy and build mechanism is still not a round thing: 1. The config vs. Configure scripts It's the same nasty situation as for Apache with APACI vs. src/Configure. It confuses. Suggestion: Merge Configure and config into a single configure script with a Autoconf style interface ;-) and remove Configure and config. Or even let us use GNU Autoconf itself. Then we can avoid a lot of those platform checks which are currently in Configure. 2. The xxx.org -> xxx.h generation: It's not obvious for which file xxx.org is the source. Suggestion: Rename xxx.org to xxx.h.in (Autoconf style), this way one sees that xxx.h.in is the input for xxx.h Status: Mark +1 o The installation under "make install" produces a very installation layout: $prefix/certs and $prefix/private dirs. That's not nice. Ralf suggests to move the two certs and private dirs either to $prefix/etc/, $prefix/lib/ or $prefix/share. Alternatively we could also not install the certs at all. Status: Ralf +1 for both not installing the certs at all and moving it to $prefix/etc/. +0 for $prefix/lib/ and $prefix/share. Paul: why is it not nice? Ralf: because it messes up the install dir when $prefix is not a dedicated area like /usr/local/ssl. When we move them to a standard subdir like etc/ lib/ or share/ we don't mess up things when $prefix is /usr or /usr/local, etc. Additionally it makes package vendors life easier.... o Support for Shared Libraries has to be added at least for the major Unix platforms. The details we can rip from the stuff Ralf has done for the Apache src/Configure script. Ben wants the solution to be really simple. Status: Ralf will look how we can easily incorporate the compiler PIC and linker DSO flags from Apache into the OpenSSL Configure script. o The perl/ stuff needs a major overhaul. Currently it's totally obsolete. Either we clean it up and enhance it to be up-to-date with the C code or we also could replace it with the really nice Net::SSLeay package we can find under http://www.neuronio.pt/SSLeay.pm.html. Ralf uses this package for a longer time and it works fine and is a nice Perl module. Best would be to convince the author to work for the OpenSSL project and create a Net::OpenSSL or Crypt::OpenSSL package out of it and maintains it for us. Status: Ralf thinks we should both contact the author of Net::SSLeay and look how much effort it is to bring Eric's perl/ stuff up to date. Paul +1 o The EVP and ASN1 stuff is a mess. Currently you have one EVP_CIPHER structure for each cipher. This may make sense for things like DES but for variable length ciphers like RC2 and RC4 it is NBG. Need a way to use the EVP interface and set up the cipher parameters. The ASN1 stuff is also foo wrt ciphers whose AlgorithmIdentifier has more than just an IV in it (e.g. RC2, RC5). This also means that EVP_Seal and EVP_Open don't work unless the key length matches the fixed value (some vendors use a key length decided by the size of the RSA encrypted key and expect RC2 to adapt). o Properly initialize the PRNG in the absence of /dev/random. o > NO_RSA (ejs@bfd.com) > ./Configure -DNO_IDEA -DNO_RC5 -DNO_RC4 -DNO_RC2 -DNO_RSA -DNO_ERR linux-elf > I tried for a whole day to do this and could not get it to work. Linux > machine, kernel 2.0.36 and 2.2.1, redhat 5.2 latest, gcc and egcs , no > go. I also noticed the even with -DNO_IDEA, _DNO_RC2, etc. the make > still goes into those subdirectories and 'makes'. WISHES o Damien Miller: "How about making the each of the locations compile-time defined. I would like to (for example) put binaries in /usr/bin, configuration data, certs and keys in /etc/openssl/certs and /etc/openssl/keys, etc. This would also be a great boon to binary package makers. The SSLeay-0.9.1b RPM already includes some patches which do some of this. I can forward them if you wish." o Mats Nilsson : "Add reference counting to all substructures of X509 etc. For instance, X509_NAME lacks a reference counter, while EVP_PKEY has one. I'm making COM-wrappers for selected parts of SSLeay for a project of ours, and has found this inconsistency in copy semantics annoying."