[openssl.org #1106]

2005-06-09 Thread via RT

Reply test
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


[openssl.org #1106]

2005-06-09 Thread via RT

Just a test request
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: 0.9.8 API/ABI compatibility with 0.9.7 ?

2005-06-09 Thread Mike Frysinger
On Thursday 09 June 2005 12:37 pm, Eduardo Pérez wrote:
> > see the fun people had in upgrading from 0.9.7e to 0.9.7[fg] on x86_64
> > linux
>
> Wow!!! I didn't know there were breakage even there.
> But, that wasn't made on purpose, was it?

no, i'm pretty sure it was just a simple mistake that is fixed in the current 
0.9.7 branch ... then again i really havent researched beyond fixing it in 
Gentoo ...

> Do you know if there are more people interested in keeping API/ABI
> compatible?

you're overlooking the fact that the soname is set to the full version of the 
library ... when you go to link with -lcrypto, the libname 
'libcrypto.so.0.9.7' is recorded in the NEEDED section of the elf instead of 
'libcrypto.so.0' ... so unless you have 0.9.8 install its library as 
'libcrypto.so.0.9.8' (which it wont), applications are going to break
-mike
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: 0.9.8 API/ABI compatibility with 0.9.7 ?

2005-06-09 Thread Richard Levitte - VMS Whacker
In message <[EMAIL PROTECTED]> on Thu, 9 Jun 2005 14:28:27 +, Eduardo Pérez 
<[EMAIL PROTECTED]> said:

eperez> On 2005-05-14 15:27:26 +, 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.

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.

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.

For a comparison, I suggest you compare the RSA structures in
crypto/rsa/rsa.h between 0.9.7 and 0.9.8.  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.

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
incompatibilites, we've really kept it low compared to what needs to
be done and what could be done.

Our version numbering is admitedly 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).

Cheers,
Richard

-
Please consider sponsoring my work on free software.
See http://www.free.lp.se/sponsoring.html for details.

-- 
Richard Levitte [EMAIL PROTECTED]
http://richard.levitte.org/

"When I became a man I put away childish things, including
 the fear of childishness and the desire to be very grown up."
-- C.S. Lewis
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: 0.9.8 API/ABI compatibility with 0.9.7 ?

2005-06-09 Thread Eduardo Pérez
On 2005-06-09 11:24:22 -0400, Mike Frysinger wrote:
> On Thursday 09 June 2005 10:28 am, Eduardo Pérez wrote:
> > On 2005-05-14 15:27:26 +, Eduardo Pérez wrote:
> > > I was wondering if openssl-0.9.8 is going to be API/ABI compatible
> > > with the current stable branch of openssl-0.9.7
> > > I think keeping API/ABI compatible is a good idea and makes programmer
> > > and users life easier.
> > > Anyway, if you are not going to keep API/ABI compatibility in
> > > openssl-0.9.8 with 0.9.7 I'd like to hear the reasoning behind that.
> >
> > I made a diff of the symbols in libssl and libcrypto in openssl 0.9.7
> > and 0.9.8 and found that libssl didn't remove any symbols from the
> > previous version and therefore may be backwards compatible if none of
> > the older symbols changed ABI/API
> 
> symbol name means nothing if it expects the arguments passed to it are of 
> different sizes

I know.

> see the fun people had in upgrading from 0.9.7e to 0.9.7[fg] on x86_64 linux

Wow!!! I didn't know there were breakage even there.
But, that wasn't made on purpose, was it?
Could you show me any reference to that? Why did that happen?
Isn't there any testing made prior to release?

Do you know if there are more people interested in keeping API/ABI
compatible?
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: 0.9.8 API/ABI compatibility with 0.9.7 ?

2005-06-09 Thread Mike Frysinger
On Thursday 09 June 2005 10:28 am, Eduardo Pérez wrote:
> On 2005-05-14 15:27:26 +, Eduardo Pérez wrote:
> > I was wondering if openssl-0.9.8 is going to be API/ABI compatible
> > with the current stable branch of openssl-0.9.7
> > I think keeping API/ABI compatible is a good idea and makes programmer
> > and users life easier.
> > Anyway, if you are not going to keep API/ABI compatibility in
> > openssl-0.9.8 with 0.9.7 I'd like to hear the reasoning behind that.
>
> I made a diff of the symbols in libssl and libcrypto in openssl 0.9.7
> and 0.9.8 and found that libssl didn't remove any symbols from the
> previous version and therefore may be backwards compatible if none of
> the older symbols changed ABI/API

symbol name means nothing if it expects the arguments passed to it are of 
different sizes

see the fun people had in upgrading from 0.9.7e to 0.9.7[fg] on x86_64 linux
-mike
__
OpenSSL Project http://www.openssl.org
Development Mailing List   openssl-dev@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: 0.9.8 API/ABI compatibility with 0.9.7 ?

2005-06-09 Thread Eduardo Pérez
On 2005-05-14 15:27:26 +, Eduardo Pérez wrote:
> I was wondering if openssl-0.9.8 is going to be API/ABI compatible
> with the current stable branch of openssl-0.9.7
> I think keeping API/ABI compatible is a good idea and makes programmer
> and users life easier.
> Anyway, if you are not going to keep API/ABI compatibility in
> openssl-0.9.8 with 0.9.7 I'd like to hear the reasoning behind that.

I made a diff of the symbols in libssl and libcrypto in openssl 0.9.7
and 0.9.8 and found that libssl didn't remove any symbols from the
previous version and therefore may be backwards compatible if none of
the older symbols changed ABI/API

In libcrypto I saw that in the newer version there are missing symbols
so it may not be API/ABI compatible if that symbols were supposed to be
public and used by applications.

It seems that openssl doesn't want to keep API/ABI compatibility
between minor versions, ignoring the tremendous help that it brings to
end users and distributions packagers, even knowing that compatibility
could be achieved at no cost.

Is this true?
--- libssl.so.0.9.7.symbols
+++ libssl.so.0.9.8.symbols
@@ -4,7 +4,47 @@
 BIO_new_ssl_connect
 BIO_ssl_copy_session_id
 BIO_ssl_shutdown
+check_srvr_ecc_cert_and_alg
 d2i_SSL_SESSION
+do_dtls1_write
+dtls1_accept
+dtls1_buffer_message
+dtls1_clear
+dtls1_clear_record_buffer
+dtls1_client_hello
+dtls1_connect
+dtls1_dispatch_alert
+dtls1_do_write
+dtls1_enc
+dtls1_free
+dtls1_get_ccs_header
+dtls1_get_message
+dtls1_get_message_header
+dtls1_get_record
+dtls1_new
+dtls1_output_cert_chain
+dtls1_read_bytes
+dtls1_read_failed
+dtls1_reset_seq_numbers
+dtls1_retransmit_message
+dtls1_send_certificate_request
+dtls1_send_change_cipher_spec
+dtls1_send_client_certificate
+dtls1_send_client_key_exchange
+dtls1_send_client_verify
+dtls1_send_finished
+dtls1_send_hello_request
+dtls1_send_server_certificate
+dtls1_send_server_done
+dtls1_send_server_hello
+dtls1_send_server_key_exchange
+dtls1_set_message_header
+dtls1_write_app_data_bytes
+dtls1_write_bytes
+dtlsv1_base_method
+DTLSv1_client_method
+DTLSv1_method
+DTLSv1_server_method
 ERR_load_SSL_strings
 _fini
 i2d_SSL_SESSION
@@ -46,26 +86,41 @@
 ssl3_callback_ctrl
 ssl3_cert_verify_mac
 ssl3_change_cipher_state
+ssl3_check_cert_and_algorithm
+ssl3_check_client_hello
 ssl3_choose_cipher
 ssl3_cleanup_key_block
 ssl3_clear
+ssl3_client_hello
 ssl3_comp_find
 ssl3_connect
 ssl3_ctrl
 ssl3_ctx_callback_ctrl
 ssl3_ctx_ctrl
 ssl3_dispatch_alert
+ssl3_do_change_cipher_spec
+ssl3_do_compress
+ssl3_do_uncompress
 ssl3_do_write
 ssl3_enc
 ssl3_final_finish_mac
 ssl3_finish_mac
 ssl3_free
 ssl3_generate_master_secret
+ssl3_get_certificate_request
+ssl3_get_cert_verify
 ssl3_get_cipher
 ssl3_get_cipher_by_char
+ssl3_get_client_certificate
+ssl3_get_client_hello
+ssl3_get_client_key_exchange
 ssl3_get_finished
+ssl3_get_key_exchange
 ssl3_get_message
 ssl3_get_req_cert_type
+ssl3_get_server_certificate
+ssl3_get_server_done
+ssl3_get_server_hello
 ssl3_init_finished_mac
 ssl3_mac
 ssl3_new
@@ -76,17 +131,28 @@
 ssl3_put_cipher_by_char
 ssl3_read
 ssl3_read_bytes
+ssl3_read_n
+ssl3_record_sequence_update
 ssl3_renegotiate
 ssl3_renegotiate_check
 ssl3_send_alert
+ssl3_send_certificate_request
 ssl3_send_change_cipher_spec
+ssl3_send_client_certificate
+ssl3_send_client_key_exchange
+ssl3_send_client_verify
 ssl3_send_finished
+ssl3_send_hello_request
 ssl3_send_server_certificate
+ssl3_send_server_done
+ssl3_send_server_hello
+ssl3_send_server_key_exchange
 ssl3_setup_buffers
 ssl3_setup_key_block
 ssl3_shutdown
 ssl3_write
 ssl3_write_bytes
+ssl3_write_pending
 SSL_accept
 SSL_add_client_CA
 SSL_add_dir_cert_subjects_to_stack
@@ -117,6 +183,7 @@
 ssl_clear_cipher_ctx
 SSL_COMP_add_compression_method
 SSL_COMP_get_compression_methods
+SSL_COMP_get_name
 SSL_connect
 SSL_copy_session_id
 ssl_create_cipher_list
@@ -157,6 +224,7 @@
 SSL_CTX_set_ssl_version
 SSL_CTX_set_timeout
 SSL_CTX_set_tmp_dh_callback
+SSL_CTX_set_tmp_ecdh_callback
 SSL_CTX_set_tmp_rsa_callback
 SSL_CTX_set_trust
 SSL_CTX_set_verify
@@ -184,6 +252,8 @@
 ssl_get_ciphers_by_id
 SSL_get_client_CA_list
 SSL_get_current_cipher
+SSL_get_current_compression
+SSL_get_current_expansion
 SSL_get_default_timeout
 SSL_get_error
 SSL_get_ex_data
@@ -236,6 +306,7 @@
 SSL_SESSION_free
 SSL_SESSION_get_ex_data
 SSL_SESSION_get_ex_new_index
+SSL_SESSION_get_id
 SSL_SESSION_get_time
 SSL_SESSION_get_timeout
 SSL_SESSION_hash
@@ -266,6 +337,7 @@
 SSL_set_shutdown
 SSL_set_ssl_method
 SSL_set_tmp_dh_callback
+SSL_set_tmp_ecdh_callback
 SSL_set_tmp_rsa_callback
 SSL_set_trust
 SSL_set_verify
@@ -278,6 +350,7 @@
 SSL_state_string_long
 ssl_undefined_const_function
 ssl_undefined_function
+ssl_undefined_void_function
 ssl_update_cache
 SSL_use_certificate
 SSL_use_certificate_ASN1
--- libcrypto.so.0.9.7.symbols
+++ libcrypto.so.0.9.8.symbols
@@ -2,6 +2,8 @@
 a2i_ASN1_ENUMERATED
 a2i_ASN1_INTEGER
 a2i_ASN1_STRING
+a2i_IPADDRESS
+a2i_IPADDRESS_NC
 ACCESS_DESCRIPTION_free
 ACC