On Tue, 2008-05-27 at 10:40 -0400, James Carlson wrote:
> Shi-Ying Irene Huang writes:
> >       This fast-track increments the version of GnuTLS in Solaris
> >       from 1.6.3 to 2.2.4.
> 
> What I can't quite tell from this document is whether applications
> compiled against 1.6.3 will work with 2.2.4.
> 
> Are there incompatible changes being made?  If so, then what is the
> impact of those changes?  What depends on them and how will they
> coordinate?

To adapt to changes in the TLS extension specifications for SRP, the
GnuTLS API had to be modified.  This means breaking the
API and ABI backwards compatibility.  

Generally, most applications does not need to be modified.  Just
re-compile them against the latest GnuTLS release, and it should work
fine.

Applications that use the SRP features needs to be
modified.  Below is a list of the modified APIs and discussion of what
the minimal things you need to modify in your application to make it
work with GnuTLS 2.2.4.

Note that GnuTLS 2.2.4 also introduces new APIs -- such as
gnutls_set_priority() that is superior to
gnutls_set_default_priority() -- that you may want to start using.
However, using those new APIs is not required to use GnuTLS 2.2.4 since
the old functions are still supported.  

> What breaks?

XML related changes
-------------------

The function `gnutls_x509_crt_to_xml' has been removed.  It has been
deprecated and only returned an error code since GnuTLS version
1.2.11.  

TLS Authorization related changes
---------------------------------

Everything related to TLS authorizations have been removed, they were
only stub functions that returned an error code:

 GNUTLS_SUPPLEMENTAL_AUTHZ_DATA
 gnutls_authz_data_format_type_t
 gnutls_authz_recv_callback_func
 gnutls_authz_send_callback_func
 gnutls_authz_enable
 gnutls_authz_send_x509_attr_cert
 gnutls_authz_send_saml_assertion
 gnutls_authz_send_x509_attr_cert_url
 gnutls_authz_send_saml_assertion_url

SRP related changes
-------------------

The callback gnutls_srp_client_credentials_function has a new
prototype, and its semantic has changed.  You need to rewrite the
callback, see the updated function documentation and SRP example code
(doc/examples/ex-client-srp.c and doc/examples/ex-serv-srp.c) for more
information.

The alert codes GNUTLS_A_MISSING_SRP_USERNAME and
GNUTLS_A_UNKNOWN_SRP_USERNAME are no longer used by the SRP
specification, instead the GNUTLS_A_UNKNOWN_PSK_IDENTITY alert is
used.  There are #define's to map the old names to the new.  You may
run into problems if you have a switch-case with cases for both SRP
alerts, since they are now mapped to the same value.  The solution is
to drop the SRP alerts from such switch cases, as they are now
deprecated in favor of GNUTLS_A_UNKNOWN_PSK_IDENTITY.


> >         Note:
> >          The "extra" GnuTLS libraries -- which contains OpenPGP and TLS/IA 
> >          support, LZO compression, the OpenSSL compatibility library -- 
> >          and the self tests and command line tools are distributed under 
> >          the GNU General Public License version 3.0 (or later), therefore,
> >          we remove them.  
> 
> Yikes.  Subordinating system architecture and open source
> compatibility to legal review seems like a long-term mistake.
> 
> Is anyone looking at this problem?  Or will Open Solaris (despite the
> best efforts of the Indiana team and the ARC "gang of four") just
> drift away from Linux as more things become GPLv3?
> 
Sun's legal people tole me that "???Sun prefers not to use GPL v3, Sun prefers 
to 
use GPL v2". Once legal people allow us to ship libraries or applications in 
GPL v3,
we will enable the "extra" libraries.

Jeff


Reply via email to