A process is provided that allows an exportable SSL client to negotiate an
encrypted session using strong encryption with a server if the server is
allowed to use strong encryption. With this process, the SSL client is
normally limited to export strength encryption. But, when it is
communicating with an approved server, it is able to expand the available
set of encryption algorithms to include stronger algorithms/key lengths.
The process involves performing an SSL handshake twice. The process begins
when a client, i.e. a user, wants to establish a session with a server.
The client first initiates a network connection to the server. The first
handshake between an export client and an approved server results in an
SSL session that uses export strength encryption. This establishes a
connection using an exportable cipher suite. The client examines the
server's certificate obtained as part of the first handshake. If the
server is not approved, the SSL session transfers application data that
are protected by the export cipher. If the server is approved, then the
client initiates a second handshake, this time allowing stronger cipher
suites. The result of the second handshake is an SSL session that uses
strong encryption. The SSL session may then be used to transfer
application data that are protected by the strong cipher suite. At this
point, the process is complete.