]> git.ipfire.org Git - thirdparty/squid.git/commit - src/ssl/Makefile.am
Author: Alex Rousskov, Andrew Balabohin, Christos Tsantilas
authorChristos Tsantilas <chtsanti@users.sourceforge.net>
Thu, 18 Nov 2010 08:01:53 +0000 (10:01 +0200)
committerChristos Tsantilas <chtsanti@users.sourceforge.net>
Thu, 18 Nov 2010 08:01:53 +0000 (10:01 +0200)
commit95d2589c9c45dcbb5c405a4fbaed53675eeb5a2e
treeb559d4a5ff157e9d8ec828dce1869b31b634d7da
parentbbe59692411b1dea7640a0f1f1b62f0d02cb0bd1
Author: Alex Rousskov, Andrew Balabohin, Christos Tsantilas
Dynamic SSL certificate generartion

This patch implements dynamic SSL certificate generartion in Squid.When
used with SSL Bump, the feature allows Squid to dynamically
generate (using a configurable CA certificate) and cache SSL
certificates for the proxied hosts.

A description for this feature can be found at:
   http://wiki.squid-cache.org/Features/DynamicSslCert

A first version of the patch posted by Alex, some months before:
  http://www.squid-cache.org/mail-archive/squid-dev/201003/0201.html

Some words about the patch:

  * ssl related source files moved under the src/ssl directory

  * Introduce the TidyPointer class similar to std::auto_ptr, which implements
    a  pointer that deletes the object it points to when the pointer's owner
    or context is gone. It  is designed to avoid memory leaks  in the presence
    of exceptions and processing short cuts.

  * Implements ssl context cache to use with generated ssl contexts. The
    Ssl::LocalContextStorage class stores the hostname/ssl context pairs for
    a local listening address/port. The  Ssl::GlobalContextStorage class used
    to store Ssl::LocalContextStorages per local listening address and handles
    squid shutdown/configure/reconfigure

  * Ssl::Helper class implements the squid part of the ssl_crtd helpers.

  * The ssl_crtd helper implemented in ssl_crtd.cc and certificate_db.* files

  * The Ssl::CertificateDb class (certificate_db.* files)  implements  a
    database of certificates on disk files. It is used by ssl_crtd helper to
    manipulate generated certificates.

  * The ssl related files included in the libraries libsslutil.a which
    contains common classes and functions and the libsquidssl.a which has
    squid related ssl objects and functions

  * Use the Ssl namespace for new ssl code

This is a Measurement Factory Project.
36 files changed:
configure.in
src/Makefile.am
src/ProtoPort.cc
src/ProtoPort.h
src/acl/Certificate.h
src/acl/CertificateData.h
src/acl/SslErrorData.h
src/base/Makefile.am
src/base/TidyPointer.h [new file with mode: 0644]
src/cache_cf.cc
src/cf.data.pre
src/client_side.cc
src/client_side.h
src/client_side_request.cc
src/comm.cc
src/fde.h
src/helper.cc
src/helper.h
src/main.cc
src/squid.h
src/ssl/Config.cc [new file with mode: 0644]
src/ssl/Config.h [new file with mode: 0644]
src/ssl/Makefile.am [new file with mode: 0644]
src/ssl/certificate_db.cc [new file with mode: 0644]
src/ssl/certificate_db.h [new file with mode: 0644]
src/ssl/context_storage.cc [new file with mode: 0644]
src/ssl/context_storage.h [new file with mode: 0644]
src/ssl/crtd_message.cc [new file with mode: 0644]
src/ssl/crtd_message.h [new file with mode: 0644]
src/ssl/gadgets.cc [new file with mode: 0644]
src/ssl/gadgets.h [new file with mode: 0644]
src/ssl/helper.cc [new file with mode: 0644]
src/ssl/helper.h [new file with mode: 0644]
src/ssl/ssl_crtd.cc [new file with mode: 0644]
src/ssl/ssl_support.cc [moved from src/ssl_support.cc with 94% similarity]
src/ssl/ssl_support.h [moved from src/ssl_support.h with 84% similarity]