See-also:
- CURLOPT_HEADEROPT (3)
- CURLOPT_HTTPAUTH (3)
+ TLS-backend:
+ - [name]
---
All curldown files *must* have all the headers present and at least one
If the man page is for section 3 (library related). The `Protocol` list must
contain at least one protocol, which can be `*` if the option is virtually for
everything. If `*` is used, it must be the only listed protocol. Recognized
-protocols are either URL schemes (in uppercase) or `TLS`.
+protocols are either URL schemes (in uppercase), `TLS` or `TCP`.
+
+If the `Protocol` list contains `TLS`, then there must also be a `TLS-backend`
+list, specifying `*` or a list of what TLS backends that work with this
+option. The available TLS backends are:
+
+- `BearSSL`
+- `GnuTLS`
+- `mbedTLS`
+- `OpenSSL` (also covers BoringSSL, libressl, quictls, AWS-LC and AmiSSL)
+- `rustls`
+- `Schannel`
+- `Secure Transport`
+- `wolfSSL`
+- `All`: all TLS backends
Following the header in the file, is the manual page using markdown-like
syntax:
- curl_ws_send (3)
- libcurl-ws (3)
Protocol:
- - Ws
+ - WS
---
# NAME
- curl_easy_setopt (3)
Protocol:
- TLS
+TLS-backend:
+ - All
---
# NAME
- curl_easy_setopt (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
+ - mbedTLS
+ - wolfSSL
---
# NAME
- curl_easy_setopt (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
+ - Schannel
+ - Secure Transport
---
# NAME
- curl_easy_setopt (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
---
# NAME
- curl_easy_setopt (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
---
# NAME
- curl_easy_setopt (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
---
# NAME
- curl_easy_setopt (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
---
# NAME
- curl_easy_setopt (3)
Protocol:
- TLS
+TLS-backend:
+ - BearSSL
+ - GnuTLS
+ - mbedTLS
+ - OpenSSL
+ - Schannel
+ - Secure Transport
+ - wolfSSL
---
# NAME
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - All
---
# NAME
- CURLOPT_CAPATH (3)
- CURLOPT_SSL_VERIFYHOST (3)
- CURLOPT_SSL_VERIFYPEER (3)
+TLS-backend:
+ - BearSSL
+ - OpenSSL
+ - mbedTLS
+ - rustls
+ - wolfSSL
+ - Secure Transport
+ - Schannel
---
# NAME
- CURLOPT_STDERR (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
+ - mbedTLS
+ - wolfSSL
---
# NAME
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
---
# NAME
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
+ - Schannel
+ - Secure Transport
---
# NAME
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - GnuTLS
+ - mbedTLS
+ - OpenSSL
---
# NAME
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - All
---
# NAME
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - All
---
# NAME
- CURLOPT_SSL_VERIFYSTATUS (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
---
# NAME
- CURLOPT_RANDOM_FILE (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
---
# NAME
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
---
# NAME
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
---
# NAME
- CURLOPT_SSLKEY (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - mbedTLS
+ - Schannel
+ - wolfSSL
---
# NAME
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
+ - wolfSSL
+ - mbedTLS
+ - Secure Transport
+ - Schannel
---
# NAME
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - All
---
# NAME
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - rustls
+ - Secure Transport
+ - Schannel
---
# NAME
- CURLOPT_STDERR (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
+ - mbedTLS
---
# NAME
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - GnuTLS
+ - mbedTLS
+ - OpenSSL
---
# NAME
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
---
# NAME
# AVAILABILITY
-Added in 7.71.0. This option is supported by the OpenSSL backends.
+Added in 7.71.0. This option is supported by the OpenSSL and GnuTLS backends.
# RETURN VALUE
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
---
# NAME
- CURLOPT_SSLKEY (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - mbedTLS
+ - Schannel
+ - wolfSSL
---
# NAME
- CURLOPT_PROXY_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
+ - mbedTLS
+ - wolfSSL
---
# NAME
- CURLOPT_SSLCERT (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
+ - mbedTLS
+ - Schannel
+ - Secure Transport
+ - wolfSSL
---
# NAME
- CURLOPT_SSLCERTTYPE (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
+ - mbedTLS
+ - Schannel
+ - Secure Transport
+ - wolfSSL
---
# NAME
- CURLOPT_SSLCERT_BLOB (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - Schannel
+ - Secure Transport
---
# NAME
- CURLOPT_SSLKEYTYPE (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - mbedTLS
+ - Schannel
+ - wolfSSL
---
# NAME
- CURLOPT_SSLKEYTYPE (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - BearSSL
+ - wolfSSL
---
# NAME
- CURLOPT_SSLKEY_BLOB (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
---
# NAME
- CURLOPT_USE_SSL (3)
Protocol:
- TLS
+TLS-backend:
+ - All
---
# NAME
- CURLOPT_TLS13_CIPHERS (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - BearSSL
+ - Schannel
+ - Secure Transport
+ - wolfSSL
+ - GnuTLS
---
# NAME
- CURLOPT_SSL_CIPHER_LIST (3)
Protocol:
- TLS
+TLS-backend:
+ - All
---
# NAME
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - All
---
# NAME
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - All
---
# NAME
- CURLOPT_TLS13_CIPHERS (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - rustls
+ - Schannel
---
# NAME
- CURLOPT_TLSAUTH_USERNAME (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
---
# NAME
- CURLOPT_TLSAUTH_USERNAME (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
---
# NAME
- CURLOPT_TLSAUTH_TYPE (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
---
# NAME
- CURLOPT_EGDSOCKET (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
---
# NAME
- CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 (3)
- CURLOPT_SSH_PUBLIC_KEYFILE (3)
Protocol:
- - SFP
+ - SFTP
- SCP
---
- CURLOPT_SSH_KEYDATA (3)
- CURLOPT_SSH_KNOWNHOSTS (3)
Protocol:
- - TLS
+ - SFTP
+ - SCP
---
# NAME
- CURLOPT_SSLKEY (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
+ - mbedTLS
+ - Schannel
+ - Secure Transport
+ - wolfSSL
---
# NAME
- CURLOPT_SSLKEY (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
+ - mbedTLS
+ - Schannel
+ - Secure Transport
+ - wolfSSL
---
# NAME
- CURLOPT_SSLKEY (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - Secure Transport
+ - Schannel
+ - mbedTLS
---
# NAME
- CURLOPT_SSLKEY (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
---
# NAME
- CURLOPT_SSLENGINE (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
---
# NAME
- CURLOPT_SSLKEY_BLOB (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - mbedTLS
+ - Schannel
+ - wolfSSL
---
# NAME
- CURLOPT_SSLKEY (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - BearSSL
+ - wolfSSL
---
# NAME
- CURLOPT_SSLKEYTYPE (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
---
# NAME
- CURLOPT_USE_SSL (3)
Protocol:
- TLS
+TLS-backend:
+ - All
---
# NAME
- CURLOPT_USE_SSL (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - BearSSL
+ - Schannel
+ - Secure Transport
+ - wolfSSL
+ - GnuTLS
---
# NAME
- CURLOPT_SSL_CTX_FUNCTION (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - wolfSSL
+ - mbedTLS
+ - BearSSL
---
# NAME
- CURLOPT_CAINFO (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - wolfSSL
+ - mbedTLS
+ - BearSSL
---
# NAME
- CURLOPT_TLS13_CIPHERS (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - wolfSSL
---
# NAME
- CURLOPT_SSL_OPTIONS (3)
Protocol:
- TLS
+TLS-backend:
+ - All
---
# NAME
- CURLOPT_SSL_OPTIONS (3)
Protocol:
- TLS
+TLS-backend:
+ - All
---
# NAME
- CURLOPT_TCP_FASTOPEN (3)
Protocol:
- TLS
+TLS-backend:
+ - Secure Transport
---
# NAME
- CURLOPT_SSL_CIPHER_LIST (3)
Protocol:
- TLS
+TLS-backend:
+ - All
---
# NAME
- CURLOPT_SSLVERSION (3)
Protocol:
- TLS
+TLS-backend:
+ - All
---
# NAME
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - All
---
# NAME
- CURLOPT_SSL_VERIFYHOST (3)
Protocol:
- TLS
+TLS-backend:
+ - All
---
# NAME
- CURLOPT_SSL_VERIFYPEER (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
---
# NAME
- CURLOPT_USE_SSL (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - rustls
+ - Schannel
---
# NAME
- CURLOPT_TLSAUTH_USERNAME (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
---
# NAME
- CURLOPT_TLSAUTH_USERNAME (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
---
# NAME
- CURLOPT_TLSAUTH_TYPE (3)
Protocol:
- TLS
+TLS-backend:
+ - OpenSSL
+ - GnuTLS
---
# NAME
return @o;
}
+my %knownprotos = (
+ 'DICT' => 1,
+ 'FILE' => 1,
+ 'FTP' => 1,
+ 'FTPS' => 1,
+ 'GOPHER' => 1,
+ 'GOPHERS' => 1,
+ 'HTTP' => 1,
+ 'HTTPS' => 1,
+ 'IMAP' => 1,
+ 'IMAPS' => 1,
+ 'LDAP' => 1,
+ 'LDAPS' => 1,
+ 'MQTT' => 1,
+ 'POP3' => 1,
+ 'POP3S' => 1,
+ 'RTMP' => 1,
+ 'RTMPS' => 1,
+ 'RTSP' => 1,
+ 'SCP' => 1,
+ 'SFTP' => 1,
+ 'SMB' => 1,
+ 'SMBS' => 1,
+ 'SMTP' => 1,
+ 'SMTPS' => 1,
+ 'TELNET' => 1,
+ 'TFTP' => 1,
+ 'WS' => 1,
+ 'WSS' => 1,
+ 'TLS' => 1,
+ 'TCP' => 1,
+ '*' => 1
+ );
+
+my %knowntls = (
+ 'BearSSL' => 1,
+ 'GnuTLS' => 1,
+ 'mbedTLS' => 1,
+ 'OpenSSL' => 1,
+ 'rustls' => 1,
+ 'Schannel' => 1,
+ 'Secure Transport' => 1,
+ 'wolfSSL' => 1,
+ 'All' => 1,
+ );
+
sub single {
my @seealso;
my @proto;
+ my @tls;
my $d;
my ($f)=@_;
my $copyright;
my $errors = 0;
my $fh;
my $line;
- my $salist;
- my $protolist;
+ my $list;
+ my $tlslist;
my $section;
my $source;
my $spdx;
$source=$1;
}
elsif(/^See-also: +(.*)/i) {
- $salist = 0;
+ $list = 1; # 1 for see-also
push @seealso, $1;
}
elsif(/^See-also: */i) {
print STDERR "$f:$line:1:ERROR: bad See-Also, needs list\n";
return 2;
}
- $salist = 1;
- $protolist = 0;
+ $list = 1; # 1 for see-also
}
elsif(/^Protocol:/i) {
- $salist = 0;
- $protolist = 1;
+ $list = 2; # 2 for protocol
+ }
+ elsif(/^TLS-backend:/i) {
+ $list = 3; # 3 for TLS backend
}
elsif(/^ +- (.*)/i) {
# the only lists we support are see-also and protocol
- if($salist) {
+ if($list == 1) {
push @seealso, $1;
}
- elsif($protolist) {
+ elsif($list == 2) {
push @proto, $1;
}
+ elsif($list == 3) {
+ push @tls, $1;
+ }
else {
print STDERR "$f:$line:1:ERROR: list item without owner?\n";
return 2;
print STDERR "$f:$line:1:ERROR: no 'SPDX-License-Identifier:' field present\n";
return 2;
}
- if(!$proto[0] && ($section == 3)) {
- printf STDERR "$f:$line:1:ERROR: missing Protocol:\n";
- exit 2;
+ if($section == 3) {
+ if(!$proto[0]) {
+ printf STDERR "$f:$line:1:ERROR: missing Protocol:\n";
+ exit 2;
+ }
+ my $tls = 0;
+ for my $p (@proto) {
+ if($p eq "TLS") {
+ $tls = 1;
+ }
+ if(!$knownprotos{$p}) {
+ printf STDERR "$f:$line:1:ERROR: invalid protocol used: $p:\n";
+ exit 2;
+ }
+ }
+ # This is for TLS, require TLS-backend:
+ if($tls) {
+ if(!$tls[0]) {
+ printf STDERR "$f:$line:1:ERROR: missing TLS-backend:\n";
+ exit 2;
+ }
+ for my $t (@tls) {
+ if(!$knowntls{$t}) {
+ printf STDERR "$f:$line:1:ERROR: invalid TLS backend: $t:\n";
+ exit 2;
+ }
+ }
+ }
}
last;
}