mirror of
https://github.com/curl/curl.git
synced 2026-08-26 01:03: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
56
src/mk-file-embed.pl
Executable file
56
src/mk-file-embed.pl
Executable file
|
|
@ -0,0 +1,56 @@
|
|||
#!/usr/bin/env perl
|
||||
#***************************************************************************
|
||||
# _ _ ____ _
|
||||
# Project ___| | | | _ \| |
|
||||
# / __| | | | |_) | |
|
||||
# | (__| |_| | _ <| |___
|
||||
# \___|\___/|_| \_\_____|
|
||||
#
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# This software is licensed as described in the file COPYING, which
|
||||
# you should have received as part of this distribution. The terms
|
||||
# are also available at https://curl.se/docs/copyright.html.
|
||||
#
|
||||
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
# copies of the Software, and permit persons to whom the Software is
|
||||
# furnished to do so, under the terms of the COPYING file.
|
||||
#
|
||||
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
# KIND, either express or implied.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
###########################################################################
|
||||
|
||||
my $varname = "var";
|
||||
if($ARGV[0] eq "--var") {
|
||||
shift;
|
||||
$varname = shift @ARGV;
|
||||
}
|
||||
|
||||
print <<HEAD
|
||||
/*
|
||||
* NEVER EVER edit this manually, fix the mk-file-embed.pl script instead!
|
||||
*/
|
||||
extern const unsigned char ${varname}[];
|
||||
const unsigned char ${varname}[] = {
|
||||
HEAD
|
||||
;
|
||||
|
||||
while (<STDIN>) {
|
||||
my $line = $_;
|
||||
foreach my $n (split //, $line) {
|
||||
my $ord = ord($n);
|
||||
printf("%s,", $ord);
|
||||
if($ord == 10) {
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print <<ENDLINE
|
||||
0
|
||||
};
|
||||
ENDLINE
|
||||
;
|
||||
Loading…
Add table
Add a link
Reference in a new issue