4ad933de73814ed21d8b0e5659c9322bdd384cd5
[openssl.git] / STATUS
1
2   OpenSSL STATUS                           Last modified at
3   ______________                           $Date: 1999/04/16 11:32:33 $
4
5   DEVELOPMENT STATE
6
7     o  OpenSSL 0.9.3:  Under development...
8                        Proposed freeze  date: Mon May  8th, 1999
9                        Proposed release date: Mon May 17th, 1999
10     o  OpenSSL 0.9.2b: Released on March    22th, 1999
11     o  OpenSSL 0.9.1c: Released on December 23th, 1998
12
13   RELEASE SHOWSTOPPERS
14
15     o Compilation warnings: ctype-related int vs. char
16     o Compilation error: "unsigned long*" and "int*" under AIX
17     o Undefined BN symbols in assembler stuff on Solaris
18       (see posting "openssl-SNAP-19990308-2130 on Solaris-2.6 SC4" in openssl-dev)
19     o BN assembler code in r3000.s, mips*.s and pa-risc*.s is broken
20     o BSD/OS: assembler functions must not have leading underscores
21     o Niels Poppe reports that RSA fails with alpha.s
22         o exptest fails with irix64-*
23       (Don Badrak <dbadrak@geo.census.gov>: "Re: Problems to compile openssl
24           on IRIX 6.2", openssl-users)
25     o BN_add test fails on Caldera OpenLinux 1.3
26       (Marc Christensen <Marc.Christensen@m.cc.utah.edu>
27           "Compiles but fails big number test?", openssl-users)
28     o make test fails on AIX
29           (jvant@bsumail.idbsu.edu on openssl-users)
30  
31   AVAILABLE PATCHES
32
33     o OCSP (titchenert@certco.com) 
34     o unsigned vs. non-unsigned (levitte@stacken.kth.se)
35     o Install prefix for packagers (dharris@drh.net)
36     o getenv in ca.c and x509_def.c (jaltman@watsun.cc.columbia.edu)
37     o linux dynamic libs (colin@field.medicine.adelaide.edu.au)
38     o MingW support (niklas@canit.se)
39     o SPARC v8 assembler implementations of bn_asm.c
40       (appro@fy.chalmers.se)
41
42   IN PROGRESS
43
44     o Steve is currently working on (in no particular order):
45         Proper (or at least usable) certificate chain verification.
46         Documentation on X509 V3 extension code.
47         PKCS#12 code cleanup and enhancement.
48
49     o Mark is currently working on:
50         Folding in any changes that are in the C2Net code base that were
51         not in the original SSLeay-0.9.1.b release.  Plus other minor
52         tidying.
53
54     o Ralf is currently working on:
55         1. Support for SSL_set_default_verify_paths(),
56            SSL_load_verify_locations(), SSL_get_cert_store() and
57            SSL_set_cert_store() functions which work like their existing
58            SSL_CTX_xxx() variants but on a per connection basis. That's needed
59            to let us provide full-featured per-URL client verification in
60            mod_ssl or Apache-SSL.
61            => It still dumps core, so I suspend this and investigate
62               again for OpenSSL 0.9.3.
63         2. The perl/ stuff to make it really work the first time ;-)
64            => I'll investigate a few more hours for OpenSSL 0.9.2
65         3. The new documentation set in POD format under doc/
66            => I'll investigate a few more hours for OpenSSL 0.9.2
67         4. More cleanups to get rid of obsolete/old/ugly files in the
68            source tree which are not really needed.
69            => Done all which were possible with my personal knowledge
70
71     o Ben is currently working on:
72         1. Function Prototype Thought Police issues.
73         2. Integrated documentation.
74         3. New TLS Ciphersuites.
75         4. Anything else that takes his fancy.
76
77   NEEDS PATCH
78
79     o  broken demos
80     o  salzr@certco.com (Rich Salz): Bug in X509_name_print
81        <29E0A6D39ABED111A36000A0C99609CA2C2BA4@macertco-srv1.ma.certco.com>
82     o  Jean-Hugues ROYER <jhroyer@joher.com>: rsa_oaep.c with Watcom C
83     o  $(PERL) in */Makefile.ssl
84     o  "Sign the certificate?" - "n" creates empty certificate file
85     o  dubious declaration of crypt() in des.h
86
87   OPEN ISSUES
88
89     o  The Makefile hierarchy and build mechanism is still not a round thing:
90
91        1. The config vs. Configure scripts
92           It's the same nasty situation as for Apache with APACI vs.
93           src/Configure. It confuses.
94           Suggestion: Merge Configure and config into a single configure
95                       script with a Autoconf style interface ;-) and remove
96                       Configure and config. Or even let us use GNU Autoconf
97                       itself. Then we can avoid a lot of those platform checks
98                       which are currently in Configure.
99
100        2. The xxx.org -> xxx.h generation:
101           It's not obvious for which file xxx.org is the source.
102           Suggestion: Rename xxx.org to xxx.h.in (Autoconf style), this way
103                       one sees that xxx.h.in is the input for xxx.h
104
105           Status: Mark +1
106
107     o  The installation under "make install" produces a very
108        installation layout: $prefix/certs and $prefix/private dirs.  That's
109        not nice. Ralf suggests to move the two certs and private dirs either
110        to $prefix/etc/, $prefix/lib/ or $prefix/share. Alternatively
111        we could also not install the certs at all.
112
113        Status: Ralf +1 for both not installing the certs at all and
114                        moving it to $prefix/etc/. +0 for $prefix/lib/
115                        and $prefix/share.
116                Paul: why is it not nice?
117                Ralf: because it messes up the install dir when
118                      $prefix is not a dedicated area like /usr/local/ssl.
119                      When we move them to a standard subdir like
120                      etc/ lib/ or share/ we don't mess up things
121                      when $prefix is /usr or /usr/local, etc.
122                      Additionally it makes package vendors life
123                      easier....
124
125     o  Support for Shared Libraries has to be added at least
126        for the major Unix platforms. The details we can rip from the stuff
127        Ralf has done for the Apache src/Configure script. Ben wants the
128        solution to be really simple.
129
130        Status: Ralf will look how we can easily incorporate the
131                compiler PIC and linker DSO flags from Apache
132                into the OpenSSL Configure script.
133
134     o  The perl/ stuff needs a major overhaul. Currently it's
135        totally obsolete. Either we clean it up and enhance it to be up-to-date
136        with the C code or we also could replace it with the really nice
137        Net::SSLeay package we can find under
138        http://www.neuronio.pt/SSLeay.pm.html.  Ralf uses this package for a
139        longer time and it works fine and is a nice Perl module. Best would be
140        to convince the author to work for the OpenSSL project and create a
141        Net::OpenSSL or Crypt::OpenSSL package out of it and maintains it for
142        us.
143
144        Status: Ralf thinks we should both contact the author of Net::SSLeay
145                and look how much effort it is to bring Eric's perl/ stuff up
146                to date.
147                Paul +1
148
149     o The EVP and ASN1 stuff is a mess. Currently you have one EVP_CIPHER
150       structure for each cipher. This may make sense for things like DES but
151       for variable length ciphers like RC2 and RC4 it is NBG. Need a way to
152       use the EVP interface and set up the cipher parameters. The ASN1 stuff
153       is also foo wrt ciphers whose AlgorithmIdentifier has more than just
154       an IV in it (e.g. RC2, RC5). This also means that EVP_Seal and EVP_Open
155       don't work unless the key length matches the fixed value (some vendors
156       use a key length decided by the size of the RSA encrypted key and expect
157       RC2 to adapt).
158
159     o Properly initialize the PRNG in the absence of /dev/random.
160
161     o > NO_RSA (ejs@bfd.com)
162       > ./Configure -DNO_IDEA -DNO_RC5 -DNO_RC4 -DNO_RC2 -DNO_RSA -DNO_ERR linux-elf
163       > I tried for a whole day to do this and could not get it to work.  Linux
164       > machine, kernel 2.0.36 and 2.2.1, redhat 5.2 latest, gcc and egcs , no
165       > go.  I also noticed the even with -DNO_IDEA, _DNO_RC2, etc. the make
166       > still goes into those subdirectories and 'makes'.
167
168     o The "exported" header files should not use #include "foo.h", but
169       #include <foo.h> or even better #include <ssl/foo.h> or
170       #include <openssl/foo.h> in order to avoid filename clashes.
171
172     o ERR_error_string(..., buf) does not know how large buf is,
173       there should be ERR_error_string_n(..., buf, bufsize)
174       or similar.
175
176   WISHES
177
178     o  Damien Miller:
179        "How about making the each of the locations compile-time defined. I
180        would like to (for example) put binaries in /usr/bin, configuration
181        data, certs and keys in /etc/openssl/certs and /etc/openssl/keys, etc.
182        This would also be a great boon to binary package makers.  The
183        SSLeay-0.9.1b RPM already includes some patches which do some of this.
184        I can forward them if you wish."
185
186     o  Mats Nilsson <mats.nilsson@xware.se>:
187        "Add reference counting to all substructures of X509 etc. For instance,
188        X509_NAME lacks a reference counter, while EVP_PKEY has one.  I'm
189        making COM-wrappers for selected parts of SSLeay for a project of ours,
190        and has found this inconsistency in copy semantics annoying."
191