Arguments: socket
This function is not available in all versions. Generally, you must
have an Enterprise license to use this function. Also, you must have
the OpenSSL libraries installed for this facility to work. Note that
shared library versions of the OpenSSL libraries (required by Allegro
CL) are not available on all platforms. The SSL functionality is in
the ssl module. To ensure it is loaded, evaluate
(require :ssl)
. Calling this function automatically
loads the module.
This function creates a new ssl socket stream that communicates using SSL via the given socket. Once this function is called and an ssl socket stream is returned, no I/O calls should be done directly to socket.
The secure connection isn't negotiated until the first byte is sent through the ssl socket stream to the underlying stream (and this will usually occur when the first force-output is done to the ssl socket stream).
When that first write is done a negotiation process is begun that involves reads and writes. This negoitation process will not occur if the ssl socket on the other end of the connection it's sitting waiting for data to arrive. Thus if you create two connected sockets in a single Lisp process, and make one the client and the other the server, and then write to the client side the Lisp will hang since the server side socket isn't being read. You can make this work if use the lisp mp package to cause the server socket to be read at the same time that the write to the client socket is being done.
See make-ssl-server-stream. See also socket.htm for information on sockets. For information on Secure Sockets, see the section Secure Socket Layer (SSL) in that document.
The documentation is described in introduction.htm and the index is in index.htm.
Copyright (c) 1998-2000, Franz Inc. Berkeley, CA., USA. All rights reserved.
Created 2000.10.5.