mirror of
https://github.com/curl/curl.git
synced 2026-08-24 21:43:32 +03:00
curl: support embedding a CA bundle
Add the ability to embed a CA bundle into the curl binary. It is used when no other runtime or build-time option set one. This helps curl-for-win macOS and Linux builds to run standalone, and also helps Windows builds to avoid picking up the CA bundle from an arbitrary (possibly world-writable) location (though this behaviour is not currently disablable). Usage: - cmake: `-DCURL_CA_EMBED=/path/to/curl-ca-bundle.crt` - autotools: `--with-ca-embed=/path/to/curl-ca-bundle.crt` - Makefile.mk: `CURL_CA_EMBED=/path/to/curl-ca-bundle.crt` Also add new command-line option `--dump-ca-embed` to dump the embedded CA bundle to standard output. Closes #14059
This commit is contained in:
parent
87aa4ebd82
commit
8a3740bc8e
26 changed files with 268 additions and 14 deletions
|
|
@ -88,7 +88,7 @@ CLEANFILES = tool_hugehelp.c
|
|||
# embedded text.
|
||||
NROFF=env LC_ALL=C @NROFF@ @MANOPT@ 2>/dev/null # figured out by the configure script
|
||||
|
||||
EXTRA_DIST = mkhelp.pl \
|
||||
EXTRA_DIST = mk-file-embed.pl mkhelp.pl \
|
||||
Makefile.mk curl.rc Makefile.inc CMakeLists.txt .checksrc
|
||||
|
||||
# Use absolute directory to disable VPATH
|
||||
|
|
@ -135,11 +135,25 @@ $(HUGE):
|
|||
echo '#include "tool_hugehelp.h"' >> $(HUGE)
|
||||
endif
|
||||
|
||||
# ignore tool_hugehelp.c since it is generated source code and it plays
|
||||
# by slightly different rules!
|
||||
CA_EMBED_CSOURCE = tool_ca_embed.c
|
||||
CURL_CFILES += $(CA_EMBED_CSOURCE)
|
||||
CLEANFILES += $(CA_EMBED_CSOURCE)
|
||||
if CURL_CA_EMBED_SET
|
||||
AM_CPPFLAGS += -DCURL_CA_EMBED
|
||||
MK_FILE_EMBED = $(top_srcdir)/src/mk-file-embed.pl
|
||||
$(CA_EMBED_CSOURCE): $(MK_FILE_EMBED)
|
||||
$(PERL) $(MK_FILE_EMBED) --var curl_ca_embed < $(CURL_CA_EMBED) > $(CA_EMBED_CSOURCE)
|
||||
else
|
||||
$(CA_EMBED_CSOURCE):
|
||||
echo 'extern const void *curl_ca_embed; const void *curl_ca_embed;' > $(CA_EMBED_CSOURCE)
|
||||
endif
|
||||
|
||||
# ignore generated C files since they play by slightly different rules!
|
||||
checksrc:
|
||||
$(CHECKSRC)(@PERL@ $(top_srcdir)/scripts/checksrc.pl -D$(srcdir) \
|
||||
-W$(srcdir)/tool_hugehelp.c $(srcdir)/*.[ch])
|
||||
-W$(srcdir)/$(HUGE) \
|
||||
-W$(srcdir)/$(CA_EMBED_CSOURCE) \
|
||||
$(srcdir)/*.[ch])
|
||||
|
||||
if DEBUGBUILD
|
||||
# for debug builds, we scan the sources on all regular make invokes
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue