On 2005-06-09 19:54:13 +0200, Richard Levitte - VMS Whacker wrote:
> In message <[EMAIL PROTECTED]> on Thu, 9 Jun 2005 14:28:27 +0000, Eduardo 
> Pérez <[EMAIL PROTECTED]> said:
> eperez> On 2005-05-14 15:27:26 +0000, Eduardo Pérez wrote:
> eperez> > I was wondering if openssl-0.9.8 is going to be API/ABI
> eperez> > compatible with the current stable branch of openssl-0.9.7
> eperez> > I think keeping API/ABI compatible is a good idea and makes
> eperez> > programmer and users life easier.
> eperez> > Anyway, if you are not going to keep API/ABI compatibility
> eperez> > in openssl-0.9.8 with 0.9.7 I'd like to hear the reasoning
> eperez> > behind that.
> 
> 0.9.8 and 0.9.7 aren't compatible in certain areas.  The biggest
> changes have nothing to do with function and variable symbols.  If you
> want to look at the real incompatibilities, you need to compare the
> different structures.  I'll get into that below.

That's other problem.
Internal structures shouldn't be exposed through a stable API.

> eperez> In libcrypto I saw that in the newer version there are missing
> eperez> symbols so it may not be API/ABI compatible if that symbols
> eperez> were supposed to be public and used by applications.
> 
> Those I saw in your diff were ECC symbols.  ECC is still quite
> experimental in 0.9.7 and has evolved quite a lot in 0.9.8.

So, if there weren't any external application users, it may not cause
problems to anyone, may it?

> eperez> It seems that openssl doesn't want to keep API/ABI
> eperez> compatibility between minor versions, ignoring the tremendous
> eperez> help that it brings to end users and distributions packagers,
> eperez> even knowing that compatibility could be achieved at no cost.
> 
> I think you're making quite a harsch conclusion.  One of the bigger
> problems with the foundation of OpenSSL is the open nature of almost
> all structures.  To keep API/ABI compatibility, those would have to be
> frozen, but that would effectively stop all development that includes
> new methods with extended data, or certain security fixes, or...
> unless you want *really ugly* and *really insecure* hacks in OpenSSL.
> Trust me.

That doesn't need to be true. The http://www.gtk.org/ people keep
API/ABI compatibility from 2.0 (they are now at 2.6) and they add new
methods and extended data every release.

> For a comparison, I suggest you compare the RSA structures in
> crypto/rsa/rsa.h between 0.9.7 and 0.9.8.

If those RSA structures where only accessible through public methods
there wouldn't be any problem with any change on them.

> I suggest you compare
> simple little constants like EVP_MAX_KEY_LENGTH and EVP_MAX_BLOCK_LENGTH
> between 0.9.6 and 0.9.7.

Sure, to keep API/ABI compatibility those constants shouldn't change
their value between compatible releases.

> The biggest change that's needed in OpenSSL is to hide all the
> structures and all constants and have them available through functions
> (creator, destructors and information functions).  So speaking of
> incompatibilities, we've really kept it low compared to what needs to
> be done and what could be done.

So is there any plans to make internal structures only accessible from
public methods?

> Our version numbering is admittedly weird.  Basically, we've treated
> '0.9.' as a prefix to signal that "this isn't a 1.0 yet, and drastic
> changes can be expected", and effectively trated the next digit as a
> classic major version.  This is reflected in the soname we give the
> shared libraries.  We probably should do some drastic changes in our
> version numbering (which is quite a lesson to me personally.  I've
> been reluctant to make a move to 1.0 because OpenSSL hasn't felt ready
> for that).

When do you feel OpenSSL will be ready for a 1.0 release and API/ABI
stabilization?
Is there any roadmap of the work that needs to be done?
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to