# Adding SSL support to Mosaic

H1: Mosaic-2.5

The modifications were done such that they fitted in with the way
the current {{http}} support is implemented. The implementation
was straight forward as the code is nicely structured and almost
all the reading and writing to the network is in one place.

H2: libwww2/HTTPS.c

This adds the support for {{https}} ... it is a modified copy of
the standard {{HTTP.c}} with the usual {{SSL}} client modifications.

H2: libwww2/Makefile
    
Simply add the new source module HTTPS.c

H2: libwww2/tcp.h

Modified the {{NETCLOSE}}, {{NETREAD}}, and {{NETWRITE}} macros to 
be aware of {{SSL}} connections and to use {{ssl_read()}}, {{ssl_write()}}
when appropriate.

H2: libwww2/HTTCP.c

Catch a {{read()}} loop that wasn't using {{NETREAD}}.

H2: libwww2/HTAccess.c

Register the support for {{https}}.

H2: libwww2/HTUtils.h

Add in {{HTTPS_TCP_PORT}} define.

H1: Mosaic-2.6b1

Forward fitting the patches from Mosaic-2.5 took about 10 minutes as nothing
has really changed in this area between the two releases. The introduction
of support for {{mailto}} to Mosaic-2.6b1 was the main reason that I've 
upgraded to the current beta release. The other is to finally have the
ability to edit the URL in the top header line ... something that once
you start using it you will find too painful to live without :-)

If you don't have Mosaic-2.6b1 then I strongly suggest that you get 
hold of it {{B:now}}.

There are also a number of little changes done when Eric complained that
I missed changing HTTP to HTTPS in some of the error messages.

H1: Mosaic-2.6b2

Nothing major here ... see comments for Mosaic-2.6b1 and Mosaic-2.5

H1: Mosaic-2.7b2

Just the normal changes here ... however now that there is a nice 
interface for indicating the "security" on a page I've made some
additions to use it.

H2: src/pixmaps/lock_ssl.xpm 

Added this icon (simply a padlock with SSL as the text ...)

H2: src/pixmaps.c

Load the lock_ssl.xpm into {{securitySSL}}.

H2: src/pixmaps.h

Added #include "pixmaps/lock_ssl.xpm"

H2: libwww2/HTAAUtil.h

Added an extra enum {{HTAA_SSL}} to represent {{SSL}} security.

H2: libwww2/HTAAUtil.c

Adding {{HTAA_SSL}} stuff ... two little additions for string to enum
and enum to string as per the other security enums.

H2: src/gui.c

Tie the user interface stuff into the new icon for displaying the
right icon at the right time and also including a few details
in terms of subject and issuer of the certificate that matches
the page.

