Added README.NSS to describe the current NSS situation.

This commit is contained in:
Daniel Stenberg 2008-06-24 08:52:35 +00:00
parent d92945bb8a
commit a81a16beac
2 changed files with 35 additions and 1 deletions

View File

@ -26,7 +26,8 @@ DSP = curllib.dsp
VCPROJ = curllib.vcproj
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 \
$(DSP) curllib.dsw config-win32.h config-win32ce.h config-riscos.h \

33
lib/README.NSS Normal file
View File

@ -0,0 +1,33 @@
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.