Commit a81a16be authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Added README.NSS to describe the current NSS situation.

parent d92945bb
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -26,7 +26,8 @@ DSP = curllib.dsp
VCPROJ = curllib.vcproj
VCPROJ = curllib.vcproj


DOCS = README.encoding README.memoryleak README.ares README.curlx	\
DOCS = README.encoding README.memoryleak README.ares README.curlx	\
 README.hostip README.multi_socket README.httpauth README.pipelining
 README.hostip README.multi_socket README.httpauth README.pipelining    \
 README.NSS


EXTRA_DIST = Makefile.b32 Makefile.m32 Makefile.vc6 Makefile.riscos	\
EXTRA_DIST = Makefile.b32 Makefile.m32 Makefile.vc6 Makefile.riscos	\
 $(DSP) curllib.dsw config-win32.h config-win32ce.h config-riscos.h	\
 $(DSP) curllib.dsw config-win32.h config-win32ce.h config-riscos.h	\

lib/README.NSS

0 → 100644
+33 −0
Original line number Original line Diff line number Diff line
                               libcurl with NSS
                               ================

Author: Daniel Stenberg
Date:   June 24, 2008

NSS home => http://www.mozilla.org/projects/security/pki/nss/

libcurl can be built to use the NSS libraries for SSL/TLS. Invoke configure
--without-ssl --with-nss.

The source code in lib/nss.c currently cause a compiler warning due to the
lack of a prototype. The prototype is provided by the public header provided
by NSS called "base64.h". But since we use a private header in libcurl named
identically, we cannot include the NSS one.

This problem persists because:

* NSS doesn't use a properly established separate subdir for their include
  files. Instead different distros have put them in /usr/include/nss and
  /usr/include/nss3 etc.

* The pkg-config output for NSS provides a full -I path to the nss include dir,
  so we cannot #include <nss/base64.h> or <nss3/base64.h>. This too may be due
  to how distros do it.

* I tried getting the (all new in June 2008) NSS 3.12 tarball to check how it
  behaves out-of-box but this wouldn't even build - complaining on missing
  files that aren't included in the tarball. The tarball doesn't even include
  build instuctions but you must hunt them down on their web site.

Due to these design problems we may of course get further similar problems in
the future, but I hope we can work them out somehow along the way.