The attached patch implements the SSL abstraction layer utilizing either
the OpenSSL or GnuTLS library.
The newly introduced option "--with-ssl" for the configure script specifies
the SSL library. For example "./configure --with-ssl=gnutls" generates
the Makefile that will build against the GnuTLS library. If the "--with-ssl"
option is not given then by default OpenSSL would be used.
The OpenSSL specific context data structures originally exported by the
SSL abstraction layer interface were replaced by handles. As a result the
internals of the utilized SSL implementation need no longer be known
by the caller.
The interface of the initialization functions ssl_sha1_init and
ssl_md5_init changed in order to pass back the handle refering to the newly
allocated context data structure. The ssl_sh1_final and ssl_md5_final take
care of releasing the context data.
The same principle applies for the added functions ssl_rc4_init and
The ssl_init and ssl_deint functions are responsible for initializing
respectively deinitializing the used SSL library.
As a bonus I filled the stub functions ssl_sig_ok and ssl_certs_ok with life.
The configure script was adapted to support the selection of the SSL library.
The patch has not yet been widely tested.
Your feedback is highly appreciated.
Thomas Gaugler (thomas at dadie dot net)