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