Support the Windows system certificate store.
authorTimothy B. Terriberry <tterribe@xiph.org>
Sun, 10 Feb 2013 04:09:41 +0000 (20:09 -0800)
committerRalph Giles <giles@thaumas.net>
Thu, 28 Feb 2013 02:12:53 +0000 (18:12 -0800)
commit9a866b1845fa88f5224bcd575cdb2461810800a3
treede211cd48f89cfbf69d1b1b6fdd7a7086a239873
parente4217fbe6ce7e945fdfbb6bff5d2eb1aac46bd04
Support the Windows system certificate store.

OpenSSL on Windows does not pull certificates from any well-known
 location (in fact most binaries continue to use the default Unix
 path, which usually doesn't even exist).
We could ship our own set of certificates (e.g., cloned from the
 Mozilla root list), but I don't want to be responsible for
 releasing libopusfile updates when things like DigiNotar
 fiasco [1] happen.
That approach also means that we would need to load, parse, and
 keep a copy of every certificate in the system for every SSL
 session.

OpenSSL has had patches sitting in their bugtracker which load
 certificates from the Crypto API's system certificate store.
However, those patches have been sitting around for several years,
 so movement on that front in the near future seems unlikely.
We don't care about using OpenSSL's builtin CAPI engine, though, so
 we can do the same thing with less than 200 lines of code.
This puts the maintenance burden on Windows Update, which will be
 far more timely and effective than getting people to upgrade
 libopusfile, and gets us on-demand loading of just the
 certificates we need.

[1] <https://bugzilla.mozilla.org/show_bug.cgi?id=682927>
Makefile.am
src/http.c
src/wincerts.c [new file with mode: 0644]