PUSHSSL(2)                                             PUSHSSL(2)

     NAME
          pushssl - attach SSL version 2 encryption to a communication
          channel

     SYNOPSIS
          #include <u.h>
          #include <libc.h>

          int pushssl(int fd, char *alg, char *secin, char *secout,
          int *cfd)

     DESCRIPTION
          Pushssl opens an ssl(3) device, connects it to the communi-
          cations channel fd, and starts up encryption and message
          authentication as specified in alg. The algorithms are sepa-
          rated by a space and either can be first.  See ssl(3) for
          the possible algorithms.  Secin and secout contain the
          encryption keys for the two directions.  If either is nil,
          the other is used in both directions.  If cfd is non-nil,
          the SSL control channel is opened and its fd returned.

          Pushssl returns a file descriptor for the SSL data channel.
          Anything written to this descriptor will get encrypted and
          authenticated and then written to the file descriptor, fd.
          Pushssl closes the original file descriptor fd on success.

     SOURCE
          /sys/src/libc/9sys

     SEE ALSO
          dial(2), ssl(3),

     DIAGNOSTICS
          return -1 on failure.